summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--meta-selftest/conf/layer.conf2
-rw-r--r--meta-selftest/lib/oeqa/runtime/cases/virgl.py4
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-patch-overrides.bb8
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-patch-overrides/qemuarm/arm.patch5
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-patch-overrides/qemux86/x86.patch5
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-patch-overrides/source1
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-test-ignored.bb9
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-test-ignored/devtool-test-ignored.patch7
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-test-ignored/devtool-test-ignored.patch.expected16
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-test-ignored/devtool-test-ignored.tar.gzbin0 -> 205 bytes
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-test-long-filename.bb9
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-test-long-filename/0001-I-ll-patch-you-only-if-devtool-lets-me-to-do-it-corr.patch7
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-test-long-filename/0001-I-ll-patch-you-only-if-devtool-lets-me-to-do-it-corr.patch.expected16
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-test-long-filename/devtool-test-long-filename.tar.gzbin0 -> 180 bytes
-rw-r--r--meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded1
-rw-r--r--meta-selftest/recipes-test/git-submodule-test/git-submodule-test.bb8
-rw-r--r--meta-selftest/recipes-test/nopackages/selftest-nopackages.bb6
-rw-r--r--meta-selftest/recipes-test/recipetool/files/selftest-replaceme-src-globfile1
-rw-r--r--meta-selftest/recipes-test/recipetool/selftest-recipetool-appendfile.bb2
-rw-r--r--meta-selftest/recipes-test/selftest-chown/selftest-chown.bb25
-rw-r--r--meta-selftest/recipes-test/selftest-ed/selftest-ed_0.5.bb2
-rw-r--r--meta-selftest/recipes-test/selftest-ed/selftest-ed_1.14.1.bb2
-rw-r--r--meta-selftest/recipes-test/sysroot-test/sysroot-test-arch1_1.0.bb14
-rw-r--r--meta-selftest/recipes-test/sysroot-test/sysroot-test-arch2_1.0.bb14
-rw-r--r--meta-selftest/recipes-test/sysroot-test/sysroot-test_1.0.bb6
-rw-r--r--meta-skeleton/conf/layer.conf2
-rw-r--r--meta-skeleton/recipes-baremetal/baremetal-examples/baremetal-helloworld_git.bb95
-rw-r--r--meta/classes/archiver.bbclass33
-rw-r--r--meta/classes/autotools.bbclass4
-rw-r--r--meta/classes/baremetal-image.bbclass99
-rw-r--r--meta/classes/base.bbclass46
-rw-r--r--meta/classes/buildhistory.bbclass76
-rw-r--r--meta/classes/buildstats.bbclass4
-rw-r--r--meta/classes/cmake.bbclass58
-rw-r--r--meta/classes/cml1.bbclass28
-rw-r--r--meta/classes/core-image.bbclass2
-rw-r--r--meta/classes/cve-check.bbclass94
-rw-r--r--meta/classes/deploy.bbclass1
-rw-r--r--meta/classes/devtool-source.bbclass4
-rw-r--r--meta/classes/externalsrc.bbclass2
-rw-r--r--meta/classes/features_check.bbclass125
-rw-r--r--meta/classes/fontcache.bbclass2
-rw-r--r--meta/classes/go-mod.bbclass20
-rw-r--r--meta/classes/go.bbclass2
-rw-r--r--meta/classes/grub-efi-cfg.bbclass6
-rw-r--r--meta/classes/gtk-icon-cache.bbclass24
-rw-r--r--meta/classes/gtk-immodules-cache.bbclass1
-rw-r--r--meta/classes/image-artifact-names.bbclass15
-rw-r--r--meta/classes/image-live.bbclass2
-rw-r--r--meta/classes/image-prelink.bbclass17
-rw-r--r--meta/classes/image.bbclass16
-rw-r--r--meta/classes/image_types.bbclass11
-rw-r--r--meta/classes/image_types_wic.bbclass15
-rw-r--r--meta/classes/insane.bbclass119
-rw-r--r--meta/classes/kernel-artifact-names.bbclass8
-rw-r--r--meta/classes/kernel-devicetree.bbclass2
-rw-r--r--meta/classes/kernel-fitimage.bbclass73
-rw-r--r--meta/classes/kernel-yocto.bbclass326
-rw-r--r--meta/classes/kernel.bbclass105
-rw-r--r--meta/classes/kernelsrc.bbclass2
-rw-r--r--meta/classes/license_image.bbclass11
-rw-r--r--meta/classes/linuxloader.bbclass31
-rw-r--r--meta/classes/meson.bbclass7
-rw-r--r--meta/classes/mime-xdg.bbclass2
-rw-r--r--meta/classes/mime.bbclass13
-rw-r--r--meta/classes/multilib.bbclass28
-rw-r--r--meta/classes/nativesdk.bbclass3
-rw-r--r--meta/classes/nopackages.bbclass1
-rw-r--r--meta/classes/package.bbclass176
-rw-r--r--meta/classes/package_deb.bbclass5
-rw-r--r--meta/classes/package_ipk.bbclass2
-rw-r--r--meta/classes/package_rpm.bbclass28
-rw-r--r--meta/classes/package_tar.bbclass6
-rw-r--r--meta/classes/packagefeed-stability.bbclass252
-rw-r--r--meta/classes/populate_sdk_base.bbclass15
-rw-r--r--meta/classes/populate_sdk_ext.bbclass26
-rw-r--r--meta/classes/ptest.bbclass2
-rw-r--r--meta/classes/pypi.bbclass4
-rw-r--r--meta/classes/python3native.bbclass2
-rw-r--r--meta/classes/qemuboot.bbclass30
-rw-r--r--meta/classes/relocatable.bbclass20
-rw-r--r--meta/classes/reproducible_build.bbclass97
-rw-r--r--meta/classes/rootfs-postcommands.bbclass20
-rw-r--r--meta/classes/rootfs_rpm.bbclass2
-rw-r--r--meta/classes/rootfsdebugfiles.bbclass2
-rw-r--r--meta/classes/sanity.bbclass50
-rw-r--r--meta/classes/sign_rpm.bbclass1
-rw-r--r--meta/classes/siteinfo.bbclass5
-rw-r--r--meta/classes/spdx.bbclass360
-rw-r--r--meta/classes/sstate.bbclass29
-rw-r--r--meta/classes/staging.bbclass15
-rw-r--r--meta/classes/testexport.bbclass8
-rw-r--r--meta/classes/testimage.bbclass28
-rw-r--r--meta/classes/uboot-sign.bbclass11
-rw-r--r--meta/classes/uninative.bbclass15
-rw-r--r--meta/classes/utils.bbclass19
-rw-r--r--meta/classes/vala.bbclass2
-rw-r--r--meta/classes/waf.bbclass19
-rw-r--r--meta/conf/abi_version.conf10
-rw-r--r--meta/conf/bitbake.conf48
-rw-r--r--meta/conf/distro/defaultsetup.conf5
-rw-r--r--meta/conf/distro/include/distro_alias.inc8
-rw-r--r--meta/conf/distro/include/maintainers.inc214
-rw-r--r--meta/conf/distro/include/ptest-packagelists.inc8
-rw-r--r--meta/conf/distro/include/security_flags.inc10
-rw-r--r--meta/conf/distro/include/tcmode-default.inc20
-rw-r--r--meta/conf/distro/include/yocto-uninative.inc10
-rw-r--r--meta/conf/documentation.conf15
-rw-r--r--meta/conf/layer.conf17
-rw-r--r--meta/conf/licenses.conf6
-rw-r--r--meta/conf/local.conf.sample12
-rw-r--r--meta/conf/local.conf.sample.extended5
-rw-r--r--meta/conf/machine/include/arm/arch-arm64.inc17
-rw-r--r--meta/conf/machine/include/arm/arch-armv4.inc2
-rw-r--r--meta/conf/machine/include/arm/arch-armv5.inc2
-rw-r--r--meta/conf/machine/include/arm/arch-armv6.inc2
-rwxr-xr-xmeta/conf/machine/include/arm/arch-armv6m.inc19
-rw-r--r--meta/conf/machine/include/arm/arch-armv7a.inc4
-rw-r--r--meta/conf/machine/include/arm/arch-armv7ve.inc2
-rw-r--r--meta/conf/machine/include/arm/arch-armv8-2a.inc19
-rw-r--r--meta/conf/machine/include/arm/arch-armv8a.inc2
-rw-r--r--meta/conf/machine/include/arm/armv8-2a/tune-cortexa65.inc16
-rw-r--r--meta/conf/machine/include/arm/armv8-2a/tune-cortexa65ae.inc16
-rw-r--r--meta/conf/machine/include/arm/armv8-2a/tune-cortexa75-cortexa55.inc20
-rw-r--r--meta/conf/machine/include/arm/armv8-2a/tune-cortexa75.inc16
-rw-r--r--meta/conf/machine/include/arm/armv8-2a/tune-cortexa76-cortexa55.inc20
-rw-r--r--meta/conf/machine/include/arm/armv8-2a/tune-cortexa76.inc16
-rw-r--r--meta/conf/machine/include/arm/armv8-2a/tune-cortexa76ae.inc16
-rw-r--r--meta/conf/machine/include/arm/armv8-2a/tune-cortexa77.inc16
-rw-r--r--meta/conf/machine/include/arm/armv8-2a/tune-neoversee1.inc16
-rw-r--r--meta/conf/machine/include/arm/armv8-2a/tune-neoversen1.inc17
-rw-r--r--meta/conf/machine/include/arm/armv8a/tune-cortexa34.inc20
-rw-r--r--meta/conf/machine/include/arm/armv8a/tune-cortexa73-cortexa35.inc21
-rw-r--r--meta/conf/machine/include/arm/armv8a/tune-cortexa73.inc16
-rw-r--r--meta/conf/machine/include/mips/arch-mips.inc18
-rw-r--r--meta/conf/machine/include/qemuboot-mips.inc4
-rw-r--r--meta/conf/machine/include/qemuboot-x86.inc4
-rw-r--r--meta/conf/machine/include/riscv/qemuriscv.inc5
-rw-r--r--meta/conf/machine/include/riscv/tune-riscv.inc4
-rw-r--r--meta/conf/machine/include/tune-arm1136jf-s.inc4
-rw-r--r--meta/conf/machine/include/tune-arm1176jz-s.inc4
-rw-r--r--meta/conf/machine/include/tune-arm920t.inc2
-rw-r--r--meta/conf/machine/include/tune-arm926ejs.inc2
-rw-r--r--meta/conf/machine/include/tune-arm9tdmi.inc2
-rw-r--r--meta/conf/machine/include/tune-cortex-m0.inc11
-rw-r--r--meta/conf/machine/include/tune-cortex-m0plus.inc11
-rw-r--r--meta/conf/machine/include/tune-cortexa15.inc2
-rw-r--r--meta/conf/machine/include/tune-cortexa17.inc2
-rw-r--r--meta/conf/machine/include/tune-cortexa32.inc3
-rw-r--r--meta/conf/machine/include/tune-cortexa35.inc4
-rw-r--r--meta/conf/machine/include/tune-cortexa5.inc2
-rw-r--r--meta/conf/machine/include/tune-cortexa53.inc6
-rw-r--r--meta/conf/machine/include/tune-cortexa55.inc13
-rw-r--r--meta/conf/machine/include/tune-cortexa57-cortexa53.inc14
-rw-r--r--meta/conf/machine/include/tune-cortexa57.inc17
-rw-r--r--meta/conf/machine/include/tune-cortexa7.inc2
-rw-r--r--meta/conf/machine/include/tune-cortexa72-cortexa53.inc16
-rw-r--r--meta/conf/machine/include/tune-cortexa72.inc2
-rw-r--r--meta/conf/machine/include/tune-cortexa73-cortexa53.inc19
-rw-r--r--meta/conf/machine/include/tune-cortexa8.inc2
-rw-r--r--meta/conf/machine/include/tune-cortexa9.inc2
-rw-r--r--meta/conf/machine/include/tune-ep9312.inc5
-rw-r--r--meta/conf/machine/include/tune-iwmmxt.inc2
-rw-r--r--meta/conf/machine/include/tune-mips64r6.inc2
-rw-r--r--meta/conf/machine/include/tune-strongarm1100.inc2
-rw-r--r--meta/conf/machine/include/tune-supersparc.inc4
-rw-r--r--meta/conf/machine/include/tune-thunderx.inc2
-rw-r--r--meta/conf/machine/include/tune-xscale.inc2
-rw-r--r--meta/conf/machine/include/x86-base.inc2
-rw-r--r--meta/conf/machine/include/x86/arch-x86.inc12
-rw-r--r--meta/conf/machine/qemuarm.conf7
-rw-r--r--meta/conf/machine/qemuarm64.conf11
-rw-r--r--meta/conf/machine/qemuarmv5.conf7
-rw-r--r--meta/conf/machine/qemumips.conf4
-rw-r--r--meta/conf/machine/qemumips64.conf2
-rw-r--r--meta/conf/machine/qemuppc.conf4
-rw-r--r--meta/conf/multilib.conf2
-rw-r--r--meta/conf/sanity.conf2
-rw-r--r--meta/files/common-licenses/BSD-2-Clause-Patent47
-rw-r--r--meta/files/common-licenses/PSF-2.049
-rw-r--r--meta/files/common-licenses/Unlicense24
-rw-r--r--meta/files/common-licenses/bzip2-1.0.6 (renamed from meta/files/common-licenses/bzip2)0
-rw-r--r--meta/files/toolchain-shar-extract.sh18
-rw-r--r--meta/lib/bblayers/templates/example.bb4
-rw-r--r--meta/lib/oe/buildhistory_analysis.py65
-rw-r--r--meta/lib/oe/classextend.py34
-rw-r--r--meta/lib/oe/manifest.py144
-rw-r--r--meta/lib/oe/package_manager.py1856
-rw-r--r--meta/lib/oe/package_manager/__init__.py551
-rw-r--r--meta/lib/oe/package_manager/deb/__init__.py492
-rw-r--r--meta/lib/oe/package_manager/deb/manifest.py26
-rw-r--r--meta/lib/oe/package_manager/deb/rootfs.py210
-rw-r--r--meta/lib/oe/package_manager/deb/sdk.py96
-rw-r--r--meta/lib/oe/package_manager/ipk/__init__.py507
-rw-r--r--meta/lib/oe/package_manager/ipk/manifest.py73
-rw-r--r--meta/lib/oe/package_manager/ipk/rootfs.py387
-rw-r--r--meta/lib/oe/package_manager/ipk/sdk.py96
-rw-r--r--meta/lib/oe/package_manager/rpm/__init__.py404
-rw-r--r--meta/lib/oe/package_manager/rpm/manifest.py54
-rw-r--r--meta/lib/oe/package_manager/rpm/rootfs.py148
-rw-r--r--meta/lib/oe/package_manager/rpm/sdk.py114
-rw-r--r--meta/lib/oe/packagegroup.py8
-rw-r--r--meta/lib/oe/patch.py15
-rw-r--r--meta/lib/oe/prservice.py69
-rw-r--r--meta/lib/oe/recipeutils.py32
-rw-r--r--meta/lib/oe/reproducible.py104
-rw-r--r--meta/lib/oe/rootfs.py624
-rw-r--r--meta/lib/oe/sdk.py285
-rw-r--r--meta/lib/oe/sstatesig.py84
-rw-r--r--meta/lib/oe/terminal.py5
-rw-r--r--meta/lib/oe/utils.py39
-rw-r--r--meta/lib/oeqa/core/context.py38
-rw-r--r--meta/lib/oeqa/core/loader.py2
-rw-r--r--meta/lib/oeqa/core/runner.py33
-rw-r--r--meta/lib/oeqa/core/target/qemu.py10
-rw-r--r--meta/lib/oeqa/core/target/ssh.py9
-rw-r--r--meta/lib/oeqa/core/utils/concurrencytest.py33
-rw-r--r--meta/lib/oeqa/files/buildhistory_filelist1.txt9214
-rw-r--r--meta/lib/oeqa/files/buildhistory_filelist2.txt9217
-rw-r--r--meta/lib/oeqa/manual/bsp-hw.json46
-rw-r--r--meta/lib/oeqa/runtime/cases/apt.py2
-rw-r--r--meta/lib/oeqa/runtime/cases/buildcpio.py3
-rw-r--r--meta/lib/oeqa/runtime/cases/date.py4
-rw-r--r--meta/lib/oeqa/runtime/cases/logrotate.py4
-rw-r--r--meta/lib/oeqa/runtime/cases/ltp.py7
-rw-r--r--meta/lib/oeqa/runtime/cases/multilib.py11
-rw-r--r--meta/lib/oeqa/runtime/cases/parselogs.py9
-rw-r--r--meta/lib/oeqa/runtime/cases/ptest.py26
-rw-r--r--meta/lib/oeqa/runtime/cases/rtc.py38
-rw-r--r--meta/lib/oeqa/runtime/cases/terminal.py18
-rw-r--r--meta/lib/oeqa/runtime/cases/weston.py56
-rw-r--r--meta/lib/oeqa/runtime/cases/x32lib.py17
-rw-r--r--meta/lib/oeqa/runtime/context.py5
-rw-r--r--meta/lib/oeqa/runtime/decorator/package.py34
-rw-r--r--meta/lib/oeqa/sdk/case.py2
-rw-r--r--meta/lib/oeqa/sdk/cases/assimp.py2
-rw-r--r--meta/lib/oeqa/sdk/cases/buildcpio.py3
-rw-r--r--meta/lib/oeqa/sdk/cases/buildepoxy.py2
-rw-r--r--meta/lib/oeqa/sdk/cases/buildgalculator.py4
-rw-r--r--meta/lib/oeqa/sdk/cases/buildlzip.py2
-rw-r--r--meta/lib/oeqa/sdkext/cases/devtool.py6
-rw-r--r--meta/lib/oeqa/sdkext/testsdk.py10
-rw-r--r--meta/lib/oeqa/selftest/cases/archiver.py87
-rw-r--r--meta/lib/oeqa/selftest/cases/containerimage.py3
-rw-r--r--meta/lib/oeqa/selftest/cases/devtool.py88
-rw-r--r--meta/lib/oeqa/selftest/cases/diffoscope/A/file.txt1
-rw-r--r--meta/lib/oeqa/selftest/cases/diffoscope/B/file.txt1
-rw-r--r--meta/lib/oeqa/selftest/cases/imagefeatures.py108
-rw-r--r--meta/lib/oeqa/selftest/cases/incompatible_lic.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/meta_ide.py2
-rw-r--r--meta/lib/oeqa/selftest/cases/oelib/buildhistory.py46
-rw-r--r--meta/lib/oeqa/selftest/cases/oescripts.py4
-rw-r--r--meta/lib/oeqa/selftest/cases/package.py23
-rw-r--r--meta/lib/oeqa/selftest/cases/prservice.py8
-rw-r--r--meta/lib/oeqa/selftest/cases/recipetool.py23
-rw-r--r--meta/lib/oeqa/selftest/cases/reproducible.py28
-rw-r--r--meta/lib/oeqa/selftest/cases/runcmd.py25
-rw-r--r--meta/lib/oeqa/selftest/cases/runtime_test.py23
-rw-r--r--meta/lib/oeqa/selftest/cases/signing.py4
-rw-r--r--meta/lib/oeqa/selftest/cases/sstatetests.py5
-rw-r--r--meta/lib/oeqa/selftest/cases/sysroot.py37
-rw-r--r--meta/lib/oeqa/selftest/cases/tinfoil.py18
-rw-r--r--meta/lib/oeqa/selftest/cases/wic.py323
-rw-r--r--meta/lib/oeqa/selftest/context.py65
-rw-r--r--meta/lib/oeqa/targetcontrol.py13
-rw-r--r--meta/lib/oeqa/utils/commands.py27
-rw-r--r--meta/lib/oeqa/utils/package_manager.py4
-rw-r--r--meta/lib/oeqa/utils/qemurunner.py38
-rw-r--r--meta/lib/oeqa/utils/qemutinyrunner.py2
-rw-r--r--meta/recipes-bsp/alsa-state/alsa-state.bb2
-rw-r--r--meta/recipes-bsp/gnu-efi/gnu-efi_3.0.12.bb (renamed from meta/recipes-bsp/gnu-efi/gnu-efi_3.0.11.bb)6
-rw-r--r--meta/recipes-bsp/grub/files/CVE-2020-10713.patch73
-rw-r--r--meta/recipes-bsp/grub/grub-efi_2.04.bb28
-rw-r--r--meta/recipes-bsp/grub/grub2.inc7
-rw-r--r--meta/recipes-bsp/grub/grub_2.04.bb5
-rw-r--r--meta/recipes-bsp/libacpi/files/0001-libacpi-Fix-build-witth-fno-commom.patch68
-rw-r--r--meta/recipes-bsp/libacpi/libacpi_0.2.bb4
-rw-r--r--meta/recipes-bsp/opensbi/files/0001-Makefile-Don-t-specify-mabi-or-march.patch13
-rw-r--r--meta/recipes-bsp/opensbi/files/0001-build-Use-ffreestanding.patch28
-rw-r--r--meta/recipes-bsp/opensbi/opensbi_0.8.bb (renamed from meta/recipes-bsp/opensbi/opensbi_0.5.bb)25
-rw-r--r--meta/recipes-bsp/pciutils/pciutils_3.7.0.bb (renamed from meta/recipes-bsp/pciutils/pciutils_3.6.4.bb)3
-rw-r--r--meta/recipes-bsp/u-boot/libubootenv_0.3.1.bb (renamed from meta/recipes-bsp/u-boot/libubootenv_0.2.bb)11
-rw-r--r--meta/recipes-bsp/u-boot/u-boot-common.inc2
-rw-r--r--meta/recipes-bsp/u-boot/u-boot-tools.inc (renamed from meta/recipes-bsp/u-boot/u-boot-tools_2020.01.bb)3
-rw-r--r--meta/recipes-bsp/u-boot/u-boot-tools_2020.07.bb2
-rw-r--r--meta/recipes-bsp/u-boot/u-boot.inc158
-rw-r--r--meta/recipes-bsp/u-boot/u-boot_2020.07.bb (renamed from meta/recipes-bsp/u-boot/u-boot_2020.01.bb)0
-rw-r--r--meta/recipes-bsp/usbutils/usbutils_012.bb2
-rw-r--r--meta/recipes-connectivity/avahi/avahi-ui_0.7.bb54
-rw-r--r--meta/recipes-connectivity/avahi/avahi.inc86
-rw-r--r--meta/recipes-connectivity/avahi/avahi_0.7.bb81
-rw-r--r--meta/recipes-connectivity/avahi/avahi_0.8.bb187
-rw-r--r--meta/recipes-connectivity/avahi/files/fix-CVE-2017-6519.patch48
-rw-r--r--meta/recipes-connectivity/bind/bind-9.16.7/0001-avoid-start-failure-with-bind-user.patch (renamed from meta/recipes-connectivity/bind/bind/0001-avoid-start-failure-with-bind-user.patch)0
-rw-r--r--meta/recipes-connectivity/bind/bind-9.16.7/0001-named-lwresd-V-and-start-log-hide-build-options.patch35
-rw-r--r--meta/recipes-connectivity/bind/bind-9.16.7/bind-ensure-searching-for-json-headers-searches-sysr.patch (renamed from meta/recipes-connectivity/bind/bind/bind-ensure-searching-for-json-headers-searches-sysr.patch)14
-rw-r--r--meta/recipes-connectivity/bind/bind-9.16.7/bind9 (renamed from meta/recipes-connectivity/bind/bind/bind9)0
-rw-r--r--meta/recipes-connectivity/bind/bind-9.16.7/conf.patch (renamed from meta/recipes-connectivity/bind/bind/conf.patch)0
-rw-r--r--meta/recipes-connectivity/bind/bind-9.16.7/generate-rndc-key.sh (renamed from meta/recipes-connectivity/bind/bind/generate-rndc-key.sh)2
-rw-r--r--meta/recipes-connectivity/bind/bind-9.16.7/init.d-add-support-for-read-only-rootfs.patch (renamed from meta/recipes-connectivity/bind/bind/init.d-add-support-for-read-only-rootfs.patch)0
-rw-r--r--meta/recipes-connectivity/bind/bind-9.16.7/make-etc-initd-bind-stop-work.patch (renamed from meta/recipes-connectivity/bind/bind/make-etc-initd-bind-stop-work.patch)0
-rw-r--r--meta/recipes-connectivity/bind/bind-9.16.7/named.service (renamed from meta/recipes-connectivity/bind/bind/named.service)0
-rw-r--r--meta/recipes-connectivity/bind/bind/0001-configure.in-remove-useless-L-use_openssl-lib.patch30
-rw-r--r--meta/recipes-connectivity/bind/bind/0001-named-lwresd-V-and-start-log-hide-build-options.patch34
-rw-r--r--meta/recipes-connectivity/bind/bind_9.16.7.bb (renamed from meta/recipes-connectivity/bind/bind_9.11.13.bb)42
-rw-r--r--meta/recipes-connectivity/bluez5/bluez5.inc6
-rw-r--r--meta/recipes-connectivity/bluez5/bluez5_5.54.bb (renamed from meta/recipes-connectivity/bluez5/bluez5_5.53.bb)4
-rw-r--r--meta/recipes-connectivity/connman/connman-gnome_0.7.bb2
-rw-r--r--meta/recipes-connectivity/connman/connman.inc6
-rw-r--r--meta/recipes-connectivity/connman/connman/0001-gweb-fix-segfault-with-musl-v1.1.21.patch34
-rw-r--r--meta/recipes-connectivity/connman/connman/0002-resolve-musl-does-not-implement-res_ninit.patch20
-rw-r--r--meta/recipes-connectivity/connman/connman_1.37.bb17
-rw-r--r--meta/recipes-connectivity/connman/connman_1.38.bb16
-rw-r--r--meta/recipes-connectivity/dhcp/dhcp.inc148
-rw-r--r--meta/recipes-connectivity/dhcp/dhcp/0001-define-macro-_PATH_DHCPD_CONF-and-_PATH_DHCLIENT_CON.patch27
-rw-r--r--meta/recipes-connectivity/dhcp/dhcp/0001-workaround-busybox-limitation-in-linux-dhclient-script.patch65
-rw-r--r--meta/recipes-connectivity/dhcp/dhcp/0002-dhclient-dbus.patch117
-rw-r--r--meta/recipes-connectivity/dhcp/dhcp/0003-link-with-lcrypto.patch35
-rw-r--r--meta/recipes-connectivity/dhcp/dhcp/0004-Fix-out-of-tree-builds.patch95
-rw-r--r--meta/recipes-connectivity/dhcp/dhcp/0005-dhcp-client-fix-invoke-dhclient-script-failed-on-Rea.patch36
-rw-r--r--meta/recipes-connectivity/dhcp/dhcp/0007-Add-configure-argument-to-make-the-libxml2-dependenc.patch62
-rw-r--r--meta/recipes-connectivity/dhcp/dhcp/0009-remove-dhclient-script-bash-dependency.patch28
-rw-r--r--meta/recipes-connectivity/dhcp/dhcp/0012-dhcp-correct-the-intention-for-xml2-lib-search.patch34
-rw-r--r--meta/recipes-connectivity/dhcp/dhcp/0013-fixup_use_libbind.patch64
-rw-r--r--meta/recipes-connectivity/dhcp/dhcp_4.4.2.bb21
-rw-r--r--meta/recipes-connectivity/dhcp/files/default-relay12
-rw-r--r--meta/recipes-connectivity/dhcp/files/default-server7
-rw-r--r--meta/recipes-connectivity/dhcp/files/dhclient-systemd-wrapper39
-rw-r--r--meta/recipes-connectivity/dhcp/files/dhclient.conf50
-rw-r--r--meta/recipes-connectivity/dhcp/files/dhclient.service13
-rw-r--r--meta/recipes-connectivity/dhcp/files/dhcpd.conf108
-rw-r--r--meta/recipes-connectivity/dhcp/files/dhcpd.service15
-rw-r--r--meta/recipes-connectivity/dhcp/files/dhcpd6.service15
-rw-r--r--meta/recipes-connectivity/dhcp/files/dhcrelay.service10
-rw-r--r--meta/recipes-connectivity/dhcp/files/init-relay44
-rw-r--r--meta/recipes-connectivity/dhcp/files/init-server44
-rw-r--r--meta/recipes-connectivity/dhcpcd/dhcpcd_9.2.0.bb56
-rw-r--r--meta/recipes-connectivity/dhcpcd/files/0001-remove-INCLUDEDIR-to-prevent-build-issues.patch45
-rw-r--r--meta/recipes-connectivity/dhcpcd/files/dhcpcd.service11
-rw-r--r--meta/recipes-connectivity/dhcpcd/files/dhcpcd@.service16
-rw-r--r--meta/recipes-connectivity/inetutils/inetutils/0001-ftpd-telnetd-Fix-multiple-definitions-of-errcatch-an.patch58
-rw-r--r--meta/recipes-connectivity/inetutils/inetutils_1.9.4.bb7
-rw-r--r--meta/recipes-connectivity/iproute2/iproute2/0001-devlink.c-add-missing-include.patch24
-rw-r--r--meta/recipes-connectivity/iproute2/iproute2/0001-libc-compat.h-add-musl-workaround.patch10
-rw-r--r--meta/recipes-connectivity/iproute2/iproute2_5.8.0.bb (renamed from meta/recipes-connectivity/iproute2/iproute2_5.5.0.bb)8
-rw-r--r--meta/recipes-connectivity/iw/iw_5.8.bb (renamed from meta/recipes-connectivity/iw/iw_5.4.bb)4
-rw-r--r--meta/recipes-connectivity/kea/files/0001-keactrl.in-create-var-lib-kea-and-var-run-kea-folder.patch39
-rw-r--r--meta/recipes-connectivity/kea/files/fix-multilib-conflict.patch55
-rw-r--r--meta/recipes-connectivity/kea/files/fix_pid_keactrl.patch22
-rw-r--r--meta/recipes-connectivity/kea/files/kea-dhcp-ddns-server46
-rw-r--r--meta/recipes-connectivity/kea/files/kea-dhcp-ddns.service13
-rw-r--r--meta/recipes-connectivity/kea/files/kea-dhcp4-server46
-rw-r--r--meta/recipes-connectivity/kea/files/kea-dhcp4.service13
-rw-r--r--meta/recipes-connectivity/kea/files/kea-dhcp6-server47
-rw-r--r--meta/recipes-connectivity/kea/files/kea-dhcp6.service13
-rw-r--r--meta/recipes-connectivity/kea/kea_1.7.10.bb73
-rw-r--r--meta/recipes-connectivity/libuv/libuv_1.39.0.bb19
-rw-r--r--meta/recipes-connectivity/nfs-utils/nfs-utils/0001-cacheio-use-intmax_t-for-formatted-IO.patch38
-rw-r--r--meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-server.service1
-rw-r--r--meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.1.bb (renamed from meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.3.bb)32
-rw-r--r--meta/recipes-connectivity/openssh/openssh/sshd.socket1
-rw-r--r--meta/recipes-connectivity/openssh/openssh/sshd@.service3
-rw-r--r--meta/recipes-connectivity/openssh/openssh/sshdgenkeys.service1
-rw-r--r--meta/recipes-connectivity/openssh/openssh_8.3p1.bb (renamed from meta/recipes-connectivity/openssh/openssh_8.2p1.bb)13
-rw-r--r--meta/recipes-connectivity/openssl/openssl/CVE-2019-1551.patch758
-rw-r--r--meta/recipes-connectivity/openssl/openssl_1.1.1g.bb (renamed from meta/recipes-connectivity/openssl/openssl_1.1.1d.bb)14
-rw-r--r--meta/recipes-connectivity/ppp/ppp/0001-Fix-build-with-musl.patch69
-rw-r--r--meta/recipes-connectivity/ppp/ppp/0001-ppp-Fix-compilation-errors-in-Makefile.patch30
-rw-r--r--meta/recipes-connectivity/ppp/ppp/0001-pppoe-include-netinet-in.h-before-linux-in.h.patch54
-rw-r--r--meta/recipes-connectivity/ppp/ppp/cifdefroute.patch297
-rw-r--r--meta/recipes-connectivity/ppp/ppp/makefile-remove-hard-usr-reference.patch32
-rw-r--r--meta/recipes-connectivity/ppp/ppp/makefile.patch72
-rw-r--r--meta/recipes-connectivity/ppp/ppp/ppp-2.4.7-DES-openssl.patch84
-rw-r--r--meta/recipes-connectivity/ppp/ppp_2.4.8.bb (renamed from meta/recipes-connectivity/ppp/ppp_2.4.7.bb)10
-rw-r--r--meta/recipes-connectivity/resolvconf/resolvconf_1.83.bb (renamed from meta/recipes-connectivity/resolvconf/resolvconf_1.82.bb)2
-rw-r--r--meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/dropbear_rsa_host_keybin0 -> 805 bytes
-rw-r--r--meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ecdsa_key9
-rw-r--r--meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ecdsa_key.pub1
-rw-r--r--meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ed25519_key7
-rw-r--r--meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ed25519_key.pub1
-rw-r--r--meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_rsa_key38
-rw-r--r--meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_rsa_key.pub1
-rw-r--r--meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys_1.0.bb19
-rw-r--r--meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch151
-rw-r--r--meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch62
-rw-r--r--meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0003-WPS-UPnP-Handle-HTTP-initiation-failures-for-events-.patch50
-rw-r--r--meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb11
-rw-r--r--meta/recipes-core/base-passwd/base-passwd_3.5.29.bb2
-rw-r--r--meta/recipes-core/busybox/busybox-inittab_1.32.0.bb (renamed from meta/recipes-core/busybox/busybox-inittab_1.31.0.bb)0
-rw-r--r--meta/recipes-core/busybox/busybox.inc55
-rw-r--r--meta/recipes-core/busybox/busybox/0001-Remove-stime-function-calls.patch85
-rw-r--r--meta/recipes-core/busybox/busybox/0001-Remove-syscall-wrappers-around-clock_gettime-closes-.patch120
-rw-r--r--meta/recipes-core/busybox/busybox/0001-date-Use-64-prefix-syscall-if-we-have-to.patch53
-rw-r--r--meta/recipes-core/busybox/busybox/0001-hwclock-make-glibc-2.31-compatible.patch83
-rw-r--r--meta/recipes-core/busybox/busybox/0001-sysctl-ignore-EIO-of-stable_secret-below-proc-sys-ne.patch40
-rw-r--r--meta/recipes-core/busybox/busybox/0001-time-Use-64-prefix-syscall-if-we-have-to.patch43
-rw-r--r--meta/recipes-core/busybox/busybox/0003-runsv-Use-64-prefix-syscall-if-we-have-to.patch46
-rw-r--r--meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch26
-rw-r--r--meta/recipes-core/busybox/busybox/defconfig1
-rw-r--r--meta/recipes-core/busybox/busybox/pgrep.cfg1
-rw-r--r--meta/recipes-core/busybox/busybox/rev.cfg1
-rw-r--r--meta/recipes-core/busybox/busybox_1.32.0.bb (renamed from meta/recipes-core/busybox/busybox_1.31.1.bb)13
-rw-r--r--meta/recipes-core/coreutils/coreutils/0001-ls-restore-8.31-behavior-on-removed-directories.patch99
-rw-r--r--meta/recipes-core/coreutils/coreutils/fix-selinux-flask.patch13
-rw-r--r--meta/recipes-core/coreutils/coreutils/remove-usr-local-lib-from-m4.patch23
-rwxr-xr-xmeta/recipes-core/coreutils/coreutils/run-ptest17
-rw-r--r--meta/recipes-core/coreutils/coreutils/strtod_fix_clash_with_strtold.patch56
-rw-r--r--meta/recipes-core/coreutils/coreutils_8.32.bb (renamed from meta/recipes-core/coreutils/coreutils_8.31.bb)74
-rw-r--r--meta/recipes-core/dbus/dbus-test_1.12.20.bb (renamed from meta/recipes-core/dbus/dbus-test_1.12.16.bb)42
-rw-r--r--meta/recipes-core/dbus/dbus.inc34
-rw-r--r--meta/recipes-core/dbus/dbus_1.12.20.bb (renamed from meta/recipes-core/dbus/dbus_1.12.16.bb)39
-rw-r--r--meta/recipes-core/dropbear/dropbear.inc2
-rw-r--r--meta/recipes-core/dropbear/dropbear/dropbear-disable-weak-ciphers.patch39
-rw-r--r--meta/recipes-core/dropbear/dropbear/dropbearkey.service1
-rw-r--r--meta/recipes-core/dropbear/dropbear_2019.78.bb4
-rw-r--r--meta/recipes-core/dropbear/dropbear_2020.80.bb3
-rw-r--r--meta/recipes-core/ell/ell_0.33.bb (renamed from meta/recipes-core/ell/ell_0.28.bb)3
-rw-r--r--meta/recipes-core/expat/expat/0001-Add-output-of-tests-result.patch83
-rw-r--r--meta/recipes-core/expat/expat/run-ptest23
-rw-r--r--meta/recipes-core/expat/expat_2.2.9.bb14
-rw-r--r--meta/recipes-core/gettext/gettext-0.20.1/0001-msgmerge-Fix-behaviour-of-for-msgfmt-on-PO-files-wit.patch87
-rw-r--r--meta/recipes-core/gettext/gettext-0.20.1/add-with-bisonlocaledir.patch58
-rw-r--r--meta/recipes-core/gettext/gettext-0.20.1/cr-statement.c-timsort.h-fix-formatting-issues.patch71
-rw-r--r--meta/recipes-core/gettext/gettext-0.21/0001-init-env.in-do-not-add-C-CXX-parameters.patch29
-rw-r--r--meta/recipes-core/gettext/gettext-0.21/0001-msgmerge-29-Add-executable-file-mode-bits.patch23
-rw-r--r--meta/recipes-core/gettext/gettext-0.21/0001-tests-autopoint-3-unset-MAKEFLAGS.patch (renamed from meta/recipes-core/gettext/gettext-0.20.1/0001-tests-autopoint-3-unset-MAKEFLAGS.patch)0
-rw-r--r--meta/recipes-core/gettext/gettext-0.21/mingw.patch28
-rw-r--r--meta/recipes-core/gettext/gettext-0.21/parallel.patch (renamed from meta/recipes-core/gettext/gettext-0.20.1/parallel.patch)0
-rw-r--r--meta/recipes-core/gettext/gettext-0.21/run-ptest (renamed from meta/recipes-core/gettext/gettext-0.20.1/run-ptest)0
-rw-r--r--meta/recipes-core/gettext/gettext-0.21/serial-tests-config.patch (renamed from meta/recipes-core/gettext/gettext-0.20.1/serial-tests-config.patch)0
-rw-r--r--meta/recipes-core/gettext/gettext-0.21/use-pkgconfig.patch (renamed from meta/recipes-core/gettext/gettext-0.20.1/use-pkgconfig.patch)50
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/COPYING (renamed from meta/recipes-core/gettext/gettext-minimal-0.20.1/COPYING)0
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/Makefile.in.in (renamed from meta/recipes-core/gettext/gettext-minimal-0.20.1/Makefile.in.in)19
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/gettext.m4 (renamed from meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/gettext.m4)8
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/host-cpu-c-abi.m4 (renamed from meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/host-cpu-c-abi.m4)45
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/iconv.m4 (renamed from meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/iconv.m4)2
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/intlmacosx.m4 (renamed from meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/intlmacosx.m4)33
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/lib-ld.m4 (renamed from meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/lib-ld.m4)2
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/lib-link.m4 (renamed from meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/lib-link.m4)154
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/lib-prefix.m4 (renamed from meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/lib-prefix.m4)203
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/nls.m4 (renamed from meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/nls.m4)10
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/po.m4 (renamed from meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/po.m4)8
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/progtest.m4 (renamed from meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/progtest.m4)8
-rwxr-xr-xmeta/recipes-core/gettext/gettext-minimal-0.21/config.rpath (renamed from meta/recipes-core/gettext/gettext-minimal-0.20.1/config.rpath)2
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-0.21/remove-potcdate.sin (renamed from meta/recipes-core/gettext/gettext-minimal-0.20.1/remove-potcdate.sin)0
-rw-r--r--meta/recipes-core/gettext/gettext-minimal-native_0.21.bb (renamed from meta/recipes-core/gettext/gettext-minimal-native_0.20.1.bb)0
-rw-r--r--meta/recipes-core/gettext/gettext_0.21.bb (renamed from meta/recipes-core/gettext/gettext_0.20.1.bb)18
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-ignore-return-value-of-write.patch6
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch10
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch7
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch6
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch11
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch22
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch3
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch10
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch14
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/Enable-more-tests-while-cross-compiling.patch32
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux2
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch10
-rw-r--r--meta/recipes-core/glib-2.0/glib-2.0_2.64.5.bb (renamed from meta/recipes-core/glib-2.0/glib-2.0_2.62.4.bb)3
-rw-r--r--meta/recipes-core/glib-2.0/glib.inc13
-rw-r--r--meta/recipes-core/glib-networking/glib-networking/run-ptest3
-rw-r--r--meta/recipes-core/glib-networking/glib-networking_2.64.3.bb (renamed from meta/recipes-core/glib-networking/glib-networking_2.62.3.bb)13
-rw-r--r--meta/recipes-core/glibc/cross-localedef-native_2.32.bb (renamed from meta/recipes-core/glibc/cross-localedef-native_2.31.bb)18
-rw-r--r--meta/recipes-core/glibc/glibc-common.inc2
-rw-r--r--meta/recipes-core/glibc/glibc-locale_2.32.bb (renamed from meta/recipes-core/glibc/glibc-locale_2.31.bb)0
-rw-r--r--meta/recipes-core/glibc/glibc-mtrace_2.32.bb (renamed from meta/recipes-core/glibc/glibc-mtrace_2.31.bb)0
-rw-r--r--meta/recipes-core/glibc/glibc-package.inc9
-rw-r--r--meta/recipes-core/glibc/glibc-scripts_2.32.bb (renamed from meta/recipes-core/glibc/glibc-scripts_2.31.bb)0
-rw-r--r--meta/recipes-core/glibc/glibc-testsuite_2.32.bb (renamed from meta/recipes-core/glibc/glibc-testsuite_2.31.bb)0
-rw-r--r--meta/recipes-core/glibc/glibc-version.inc8
-rw-r--r--meta/recipes-core/glibc/glibc.inc5
-rw-r--r--meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-from-util-linux.patch7
-rw-r--r--meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-to-build.patch52
-rw-r--r--meta/recipes-core/glibc/glibc/0002-localedef-fix-ups-hardlink-to-make-it-compile.patch7
-rw-r--r--meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch14
-rw-r--r--meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch12
-rw-r--r--meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch28
-rw-r--r--meta/recipes-core/glibc/glibc/0006-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch7
-rw-r--r--meta/recipes-core/glibc/glibc/0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch48
-rw-r--r--meta/recipes-core/glibc/glibc/0008-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch7
-rw-r--r--meta/recipes-core/glibc/glibc/0009-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch (renamed from meta/recipes-core/glibc/glibc/0010-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch)7
-rw-r--r--meta/recipes-core/glibc/glibc/0010-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch (renamed from meta/recipes-core/glibc/glibc/0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch)9
-rw-r--r--meta/recipes-core/glibc/glibc/0011-Quote-from-bug-1443-which-explains-what-the-patch-do.patch (renamed from meta/recipes-core/glibc/glibc/0012-Quote-from-bug-1443-which-explains-what-the-patch-do.patch)8
-rw-r--r--meta/recipes-core/glibc/glibc/0012-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch (renamed from meta/recipes-core/glibc/glibc/0013-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch)7
-rw-r--r--meta/recipes-core/glibc/glibc/0013-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch (renamed from meta/recipes-core/glibc/glibc/0014-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch)9
-rw-r--r--meta/recipes-core/glibc/glibc/0014-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch (renamed from meta/recipes-core/glibc/glibc/0015-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch)7
-rw-r--r--meta/recipes-core/glibc/glibc/0015-yes-within-the-path-sets-wrong-config-variables.patch (renamed from meta/recipes-core/glibc/glibc/0017-yes-within-the-path-sets-wrong-config-variables.patch)11
-rw-r--r--meta/recipes-core/glibc/glibc/0016-Add-unused-attribute.patch31
-rw-r--r--meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch (renamed from meta/recipes-core/glibc/glibc/0018-timezone-re-written-tzselect-as-posix-sh.patch)7
-rw-r--r--meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch (renamed from meta/recipes-core/glibc/glibc/0019-Remove-bash-dependency-for-nscd-init-script.patch)7
-rw-r--r--meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch (renamed from meta/recipes-core/glibc/glibc/0020-eglibc-Cross-building-and-testing-instructions.patch)7
-rw-r--r--meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch (renamed from meta/recipes-core/glibc/glibc/0021-eglibc-Help-bootstrap-cross-toolchain.patch)9
-rw-r--r--meta/recipes-core/glibc/glibc/0020-eglibc-Resolve-__fpscr_values-on-SH4.patch (renamed from meta/recipes-core/glibc/glibc/0022-eglibc-Resolve-__fpscr_values-on-SH4.patch)7
-rw-r--r--meta/recipes-core/glibc/glibc/0021-eglibc-Forward-port-cross-locale-generation-support.patch (renamed from meta/recipes-core/glibc/glibc/0023-eglibc-Forward-port-cross-locale-generation-support.patch)17
-rw-r--r--meta/recipes-core/glibc/glibc/0022-Define-DUMMY_LOCALE_T-if-not-defined.patch (renamed from meta/recipes-core/glibc/glibc/0024-Define-DUMMY_LOCALE_T-if-not-defined.patch)7
-rw-r--r--meta/recipes-core/glibc/glibc/0023-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch (renamed from meta/recipes-core/glibc/glibc/0025-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch)8
-rw-r--r--meta/recipes-core/glibc/glibc/0024-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch (renamed from meta/recipes-core/glibc/glibc/0026-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch)9
-rw-r--r--meta/recipes-core/glibc/glibc/0025-intl-Emit-no-lines-in-bison-generated-files.patch (renamed from meta/recipes-core/glibc/glibc/0027-intl-Emit-no-lines-in-bison-generated-files.patch)7
-rw-r--r--meta/recipes-core/glibc/glibc/0026-inject-file-assembly-directives.patch (renamed from meta/recipes-core/glibc/glibc/0028-inject-file-assembly-directives.patch)77
-rw-r--r--meta/recipes-core/glibc/glibc/0027-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch (renamed from meta/recipes-core/glibc/glibc/0029-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch)7
-rw-r--r--meta/recipes-core/glibc/glibc/0028-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch (renamed from meta/recipes-core/glibc/glibc/0009-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch)8
-rw-r--r--meta/recipes-core/glibc/glibc/0029-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch70
-rw-r--r--meta/recipes-core/glibc/glibc/0030-powerpc-Do-not-ask-compiler-for-finding-arch.patch51
-rw-r--r--meta/recipes-core/glibc/glibc_2.32.bb (renamed from meta/recipes-core/glibc/glibc_2.31.bb)49
-rw-r--r--meta/recipes-core/images/build-appliance-image_15.0.0.bb4
-rw-r--r--meta/recipes-core/images/core-image-minimal-initramfs.bb5
-rw-r--r--meta/recipes-core/images/core-image-minimal.bb2
-rw-r--r--meta/recipes-core/images/core-image-tiny-initramfs.bb1
-rw-r--r--meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb2
-rwxr-xr-xmeta/recipes-core/initrdscripts/initramfs-framework/init13
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-framework/rootfs4
-rw-r--r--meta/recipes-core/initrdscripts/initramfs-framework/udev3
-rw-r--r--meta/recipes-core/initscripts/init-system-helpers_1.58.bb41
-rwxr-xr-xmeta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh80
-rw-r--r--meta/recipes-core/initscripts/initscripts_1.0.bb3
-rw-r--r--meta/recipes-core/kbd/kbd/0001-Use-DATADIR-and-append-i386-to-fix-libkbdfile-test08.patch45
-rw-r--r--meta/recipes-core/kbd/kbd/0001-analyze.l-add-missing-string-format.patch24
-rw-r--r--meta/recipes-core/kbd/kbd/fix_cflags.patch25
-rw-r--r--meta/recipes-core/kbd/kbd/run-ptest4
-rw-r--r--meta/recipes-core/kbd/kbd/set-proper-path-of-resources.patch99
-rw-r--r--meta/recipes-core/kbd/kbd_2.2.0.bb72
-rw-r--r--meta/recipes-core/kbd/kbd_2.3.0.bb38
-rw-r--r--meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.17.bb (renamed from meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.14.bb)0
-rw-r--r--meta/recipes-core/libxcrypt/libxcrypt.inc12
-rw-r--r--meta/recipes-core/libxcrypt/libxcrypt_4.4.17.bb (renamed from meta/recipes-core/libxcrypt/libxcrypt_4.4.14.bb)0
-rw-r--r--meta/recipes-core/libxml/libxml2/CVE-2020-24977.patch41
-rw-r--r--meta/recipes-core/libxml/libxml2_2.9.10.bb3
-rw-r--r--meta/recipes-core/meta/build-sysroots.bb4
-rw-r--r--meta/recipes-core/meta/buildtools-extended-tarball.bb4
-rw-r--r--meta/recipes-core/meta/buildtools-tarball.bb28
-rw-r--r--meta/recipes-core/meta/cve-update-db-native.bb130
-rw-r--r--meta/recipes-core/meta/nativesdk-sdk-provides-dummy.bb2
-rw-r--r--meta/recipes-core/meta/signing-keys.bb2
-rw-r--r--meta/recipes-core/meta/testexport-tarball.bb2
-rw-r--r--meta/recipes-core/meta/uninative-tarball.bb1
-rw-r--r--meta/recipes-core/meta/wic-tools.bb4
-rw-r--r--meta/recipes-core/musl/libucontext/0001-pass-LDFLAGS-to-link-step.patch31
-rw-r--r--meta/recipes-core/musl/libucontext_git.bb50
-rw-r--r--meta/recipes-core/musl/musl.inc2
-rw-r--r--meta/recipes-core/musl/musl/0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch11
-rw-r--r--meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch15
-rw-r--r--meta/recipes-core/musl/musl_git.bb35
-rw-r--r--meta/recipes-core/ncurses/files/config.cache4
-rw-r--r--meta/recipes-core/ncurses/ncurses.inc10
-rw-r--r--meta/recipes-core/ncurses/ncurses_6.1+20191019.bb13
-rw-r--r--meta/recipes-core/ncurses/ncurses_6.2.bb13
-rw-r--r--meta/recipes-core/netbase/netbase_6.1.bb (renamed from meta/recipes-core/netbase/netbase_6.0.bb)4
-rw-r--r--meta/recipes-core/newlib/libgloss_3.3.0.bb (renamed from meta/recipes-core/newlib/libgloss_3.2.0.bb)0
-rw-r--r--meta/recipes-core/newlib/newlib.inc3
-rw-r--r--meta/recipes-core/newlib/newlib_3.3.0.bb (renamed from meta/recipes-core/newlib/newlib_3.2.0.bb)0
-rw-r--r--meta/recipes-core/os-release/os-release.bb14
-rw-r--r--meta/recipes-core/ovmf/ovmf/0001-ovmf-Update-to-latest.patch (renamed from meta/recipes-core/ovmf/ovmf/0004-ovmf-Update-to-latest.patch)16
-rw-r--r--meta/recipes-core/ovmf/ovmf_git.bb11
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-base.bb8
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb5
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb14
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-go-sdk-target.bb3
-rwxr-xr-xmeta/recipes-core/psplash/files/psplash-init8
-rw-r--r--meta/recipes-core/psplash/files/psplash-start.service12
-rw-r--r--meta/recipes-core/psplash/files/psplash-systemd.service13
-rw-r--r--meta/recipes-core/psplash/psplash_git.bb52
-rw-r--r--meta/recipes-core/readline/readline.inc8
-rw-r--r--meta/recipes-core/sysfsutils/sysfsutils_2.1.0.bb2
-rw-r--r--meta/recipes-core/systemd/systemd-boot_246.2.bb (renamed from meta/recipes-core/systemd/systemd-boot_244.3.bb)0
-rw-r--r--meta/recipes-core/systemd/systemd-conf/wired.network1
-rw-r--r--meta/recipes-core/systemd/systemd-conf_246.1.bb (renamed from meta/recipes-core/systemd/systemd-conf_244.3.bb)0
-rw-r--r--meta/recipes-core/systemd/systemd-serialgetty.bb4
-rw-r--r--meta/recipes-core/systemd/systemd-serialgetty/serial-getty@.service11
-rw-r--r--meta/recipes-core/systemd/systemd.inc4
-rw-r--r--meta/recipes-core/systemd/systemd/0001-Handle-missing-gshadow.patch162
-rw-r--r--meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch46
-rw-r--r--meta/recipes-core/systemd/systemd/0001-do-not-disable-buffer-in-writing-files.patch210
-rw-r--r--meta/recipes-core/systemd/systemd/0001-systemd.pc.in-use-ROOTPREFIX-without-suffixed-slash.patch37
-rw-r--r--meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch42
-rw-r--r--meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch54
-rw-r--r--meta/recipes-core/systemd/systemd/0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch8
-rw-r--r--meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch206
-rw-r--r--meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch175
-rw-r--r--meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch32
-rw-r--r--meta/recipes-core/systemd/systemd/0010-fix-missing-of-__register_atfork-for-non-glibc-build.patch12
-rw-r--r--meta/recipes-core/systemd/systemd/0011-Use-uintmax_t-for-handling-rlim_t.patch32
-rw-r--r--meta/recipes-core/systemd/systemd/0014-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch8
-rw-r--r--meta/recipes-core/systemd/systemd/0015-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch26
-rw-r--r--meta/recipes-core/systemd/systemd/0016-Define-glibc-compatible-basename-for-non-glibc-syste.patch10
-rw-r--r--meta/recipes-core/systemd/systemd/0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch14
-rw-r--r--meta/recipes-core/systemd/systemd/0018-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch20
-rw-r--r--meta/recipes-core/systemd/systemd/0021-Handle-missing-LOCK_EX.patch23
-rw-r--r--meta/recipes-core/systemd/systemd/0022-Fix-incompatible-pointer-type-struct-sockaddr_un.patch37
-rw-r--r--meta/recipes-core/systemd/systemd/0022-Use-INT_MAX-instead-of-TIME_T_MAX-for-timerfd_settim.patch31
-rw-r--r--meta/recipes-core/systemd/systemd_246.6.bb (renamed from meta/recipes-core/systemd/systemd_244.3.bb)109
-rw-r--r--meta/recipes-core/sysvinit/sysvinit-inittab/start_getty4
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch16
-rw-r--r--meta/recipes-core/sysvinit/sysvinit/install.patch7
-rwxr-xr-xmeta/recipes-core/sysvinit/sysvinit/rc9
-rw-r--r--meta/recipes-core/sysvinit/sysvinit_2.97.bb (renamed from meta/recipes-core/sysvinit/sysvinit_2.96.bb)7
-rw-r--r--meta/recipes-core/util-linux/util-linux/0001-hwclock-fix-for-glibc-2.31-settimeofday.patch112
-rw-r--r--meta/recipes-core/util-linux/util-linux/0001-lsblk-force-to-print-PKNAME-for-partition.patch36
-rw-r--r--meta/recipes-core/util-linux/util-linux_2.34.bb14
-rw-r--r--meta/recipes-core/util-linux/util-linux_2.36.bb (renamed from meta/recipes-core/util-linux/util-linux.inc)25
-rw-r--r--meta/recipes-core/volatile-binds/files/volatile-binds.service.in1
-rw-r--r--meta/recipes-devtools/apt/apt-native.inc74
-rw-r--r--meta/recipes-devtools/apt/apt-native_1.2.31.bb7
-rw-r--r--meta/recipes-devtools/apt/apt-package.inc94
-rw-r--r--meta/recipes-devtools/apt/apt.inc39
-rw-r--r--meta/recipes-devtools/apt/apt/0001-CMakeLists.txt-avoid-changing-install-paths-based-on.patch29
-rw-r--r--meta/recipes-devtools/apt/apt/0001-Disable-documentation-directory-altogether.patch27
-rw-r--r--meta/recipes-devtools/apt/apt/0001-Do-not-configure-packages-on-installation.patch48
-rw-r--r--meta/recipes-devtools/apt/apt/0001-Do-not-init-tables-from-dpkg-configuration.patch29
-rw-r--r--meta/recipes-devtools/apt/apt/0001-Fix-musl-build.patch (renamed from meta/recipes-devtools/apt/apt/0001-apt-1.2.12-Fix-musl-build.patch)43
-rw-r--r--meta/recipes-devtools/apt/apt/0001-Include-array.h-for-std-array.patch35
-rw-r--r--meta/recipes-devtools/apt/apt/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch120
-rw-r--r--meta/recipes-devtools/apt/apt/0001-environment.mak-musl-based-systems-can-generate-shar.patch29
-rw-r--r--meta/recipes-devtools/apt/apt/disable-configure-in-makefile.patch18
-rw-r--r--meta/recipes-devtools/apt/apt/disable-test.patch72
-rw-r--r--meta/recipes-devtools/apt/apt/fix-gcc-4.6-null-not-defined.patch14
-rw-r--r--meta/recipes-devtools/apt/apt/gcc_4.x_Revert-avoid-changing-the-global-LC_TIME-for-Release.patch80
-rw-r--r--meta/recipes-devtools/apt/apt/gcc_4.x_Revert-use-de-localed-std-put_time-instead-rolling-o.patch46
-rw-r--r--meta/recipes-devtools/apt/apt/gcc_4.x_apt-pkg-contrib-strutl.cc-Include-array-header.patch33
-rw-r--r--meta/recipes-devtools/apt/apt/makerace.patch23
-rw-r--r--meta/recipes-devtools/apt/apt/no-nls-dpkg.patch28
-rw-r--r--meta/recipes-devtools/apt/apt/noconfigure.patch37
-rw-r--r--meta/recipes-devtools/apt/apt/nodoc.patch18
-rwxr-xr-xmeta/recipes-devtools/apt/apt/triehash728
-rw-r--r--meta/recipes-devtools/apt/apt/truncate-filename.patch35
-rw-r--r--meta/recipes-devtools/apt/apt/use-host.patch15
-rw-r--r--meta/recipes-devtools/apt/apt_1.2.31.bb20
-rw-r--r--meta/recipes-devtools/apt/apt_1.8.2.1.bb106
-rw-r--r--meta/recipes-devtools/apt/files/apt.conf42
-rw-r--r--meta/recipes-devtools/apt/files/db_linking_hack.patch29
-rw-r--r--meta/recipes-devtools/apt/files/environment.patch15
-rw-r--r--meta/recipes-devtools/apt/files/no-curl.patch54
-rw-r--r--meta/recipes-devtools/autoconf/autoconf.inc10
-rw-r--r--meta/recipes-devtools/autoconf/autoconf_2.69.bb25
-rw-r--r--meta/recipes-devtools/automake/automake/automake-replace-w-option-in-shebangs-with-modern-use-warnings.patch18
-rw-r--r--meta/recipes-devtools/automake/automake_1.16.2.bb (renamed from meta/recipes-devtools/automake/automake_1.16.1.bb)4
-rw-r--r--meta/recipes-devtools/binutils/binutils-2.35.inc (renamed from meta/recipes-devtools/binutils/binutils-2.34.inc)29
-rw-r--r--meta/recipes-devtools/binutils/binutils-cross-canadian_2.35.bb (renamed from meta/recipes-devtools/binutils/binutils-cross-canadian_2.34.bb)0
-rw-r--r--meta/recipes-devtools/binutils/binutils-cross-testsuite_2.35.bb (renamed from meta/recipes-devtools/binutils/binutils-cross-testsuite_2.34.bb)0
-rw-r--r--meta/recipes-devtools/binutils/binutils-cross_2.35.bb (renamed from meta/recipes-devtools/binutils/binutils-cross_2.34.bb)0
-rw-r--r--meta/recipes-devtools/binutils/binutils-crosssdk_2.35.bb (renamed from meta/recipes-devtools/binutils/binutils-crosssdk_2.34.bb)0
-rw-r--r--meta/recipes-devtools/binutils/binutils.inc22
-rw-r--r--meta/recipes-devtools/binutils/binutils/0001-binutils-crosssdk-Generate-relocatable-SDKs.patch31
-rw-r--r--meta/recipes-devtools/binutils/binutils/0002-binutils-cross-Do-not-generate-linker-script-directo.patch10
-rw-r--r--meta/recipes-devtools/binutils/binutils/0003-binutils-nativesdk-Search-for-alternative-ld.so.conf.patch27
-rw-r--r--meta/recipes-devtools/binutils/binutils/0004-configure-widen-the-regexp-for-SH-architectures.patch15
-rw-r--r--meta/recipes-devtools/binutils/binutils/0005-Point-scripts-location-to-libdir.patch15
-rw-r--r--meta/recipes-devtools/binutils/binutils/0006-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch14
-rw-r--r--meta/recipes-devtools/binutils/binutils/0007-Use-libtool-2.4.patch7115
-rw-r--r--meta/recipes-devtools/binutils/binutils/0007-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch (renamed from meta/recipes-devtools/binutils/binutils/0008-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch)13
-rw-r--r--meta/recipes-devtools/binutils/binutils/0008-warn-for-uses-of-system-directories-when-cross-linki.patch (renamed from meta/recipes-devtools/binutils/binutils/0009-warn-for-uses-of-system-directories-when-cross-linki.patch)72
-rw-r--r--meta/recipes-devtools/binutils/binutils/0009-Change-default-emulation-for-mips64-linux.patch (renamed from meta/recipes-devtools/binutils/binutils/0011-Change-default-emulation-for-mips64-linux.patch)15
-rw-r--r--meta/recipes-devtools/binutils/binutils/0010-Add-support-for-Netlogic-XLP.patch (renamed from meta/recipes-devtools/binutils/binutils/0012-Add-support-for-Netlogic-XLP.patch)55
-rw-r--r--meta/recipes-devtools/binutils/binutils/0011-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch37
-rw-r--r--meta/recipes-devtools/binutils/binutils/0012-Detect-64-bit-MIPS-targets.patch (renamed from meta/recipes-devtools/binutils/binutils/0014-Detect-64-bit-MIPS-targets.patch)9
-rw-r--r--meta/recipes-devtools/binutils/binutils/0013-Use-libtool-2.4.patch23153
-rw-r--r--meta/recipes-devtools/binutils/binutils/0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch33
-rw-r--r--meta/recipes-devtools/binutils/binutils/0014-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch (renamed from meta/recipes-devtools/binutils/binutils/0010-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch)9
-rw-r--r--meta/recipes-devtools/binutils/binutils/0015-sync-with-OE-libtool-changes.patch9
-rw-r--r--meta/recipes-devtools/binutils/binutils/0016-Check-for-clang-before-checking-gcc-version.patch48
-rw-r--r--meta/recipes-devtools/binutils/binutils_2.35.bb (renamed from meta/recipes-devtools/binutils/binutils_2.34.bb)5
-rw-r--r--meta/recipes-devtools/bison/bison/dont-depend-on-help2man.patch.patch44
-rw-r--r--meta/recipes-devtools/bison/bison_3.7.2.bb (renamed from meta/recipes-devtools/bison/bison_3.5.1.bb)9
-rw-r--r--meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb (renamed from meta/recipes-devtools/bootchart2/bootchart2_0.14.8.bb)3
-rw-r--r--meta/recipes-devtools/btrfs-tools/btrfs-tools_5.7.bb (renamed from meta/recipes-devtools/btrfs-tools/btrfs-tools_5.4.1.bb)4
-rw-r--r--meta/recipes-devtools/build-compare/build-compare_git.bb31
-rw-r--r--meta/recipes-devtools/build-compare/files/Ignore-DWARF-sections.patch37
-rw-r--r--meta/recipes-devtools/ccache/ccache_3.7.11.bb (renamed from meta/recipes-devtools/ccache/ccache.inc)4
-rw-r--r--meta/recipes-devtools/ccache/ccache_3.7.7.bb7
-rw-r--r--meta/recipes-devtools/cdrtools/cdrtools-native_3.01.bb8
-rw-r--r--meta/recipes-devtools/cmake/cmake-native_3.18.2.bb (renamed from meta/recipes-devtools/cmake/cmake-native_3.16.1.bb)3
-rw-r--r--meta/recipes-devtools/cmake/cmake.inc11
-rw-r--r--meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch4
-rw-r--r--meta/recipes-devtools/cmake/cmake/0002-cmake-Prevent-the-detection-of-Qt5.patch18
-rw-r--r--meta/recipes-devtools/cmake/cmake/0003-cmake-support-OpenEmbedded-Qt4-tool-binary-names.patch2
-rw-r--r--meta/recipes-devtools/cmake/cmake/0004-Fail-silently-if-system-Qt-installation-is-broken.patch2
-rw-r--r--meta/recipes-devtools/cmake/cmake/0005-Disable-use-of-ext2fs-ext2_fs.h-by-cmake-s-internal-.patch15
-rw-r--r--meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake2
-rw-r--r--meta/recipes-devtools/cmake/cmake_3.18.2.bb (renamed from meta/recipes-devtools/cmake/cmake_3.16.1.bb)4
-rw-r--r--meta/recipes-devtools/createrepo-c/createrepo-c_0.16.0.bb (renamed from meta/recipes-devtools/createrepo-c/createrepo-c_0.15.7.bb)2
-rw-r--r--meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.26.bb (renamed from meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.24.bb)4
-rw-r--r--meta/recipes-devtools/distcc/distcc_3.3.3.bb1
-rw-r--r--meta/recipes-devtools/distcc/files/0001-Fix-build-with-gcc-10-which-defaults-to-fno-common-c.patch34
-rw-r--r--meta/recipes-devtools/dnf/dnf/0001-dnf-write-the-log-lock-to-root.patch29
-rw-r--r--meta/recipes-devtools/dnf/dnf/0001-set-python-path-for-completion_helper.patch24
-rw-r--r--meta/recipes-devtools/dnf/dnf_4.2.23.bb (renamed from meta/recipes-devtools/dnf/dnf_4.2.2.bb)4
-rw-r--r--meta/recipes-devtools/dosfstools/dosfstools_4.1.bb2
-rw-r--r--meta/recipes-devtools/dpkg/dpkg.inc14
-rw-r--r--meta/recipes-devtools/dpkg/dpkg/0001-Add-support-for-riscv32-CPU.patch39
-rw-r--r--meta/recipes-devtools/dpkg/dpkg/0001-build.c-ignore-return-of-1-from-tar-cf.patch53
-rw-r--r--meta/recipes-devtools/dpkg/dpkg/tweak-options-require-tar-1.27.patch27
-rw-r--r--meta/recipes-devtools/dpkg/dpkg_1.20.5.bb (renamed from meta/recipes-devtools/dpkg/dpkg_1.19.7.bb)13
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-fix-up-check-for-hardlinks-always-false-if-inode-0xF.patch55
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-misc-create_inode.c-set-dir-s-mode-correctly.patch41
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs/e2fsprogs-fix-missing-check-for-permission-denied.patch2
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch2
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.6.bb (renamed from meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.4.bb)4
-rw-r--r--meta/recipes-devtools/elfutils/elfutils_0.180.bb (renamed from meta/recipes-devtools/elfutils/elfutils_0.178.bb)23
-rw-r--r--meta/recipes-devtools/elfutils/files/0001-musl-obstack-fts.patch11
-rw-r--r--meta/recipes-devtools/elfutils/files/0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch27
-rw-r--r--meta/recipes-devtools/elfutils/files/0002-musl-libs.patch17
-rw-r--r--meta/recipes-devtools/elfutils/files/0003-musl-utils.patch7
-rw-r--r--meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch7
-rw-r--r--meta/recipes-devtools/elfutils/files/0015-config-eu.am-do-not-use-Werror.patch36
-rw-r--r--meta/recipes-devtools/elfutils/files/debian/0001-Ignore-differences-between-mips-machine-identifiers.patch34
-rw-r--r--meta/recipes-devtools/elfutils/files/debian/0001-fix-compile-failure-with-debian-patches.patch48
-rw-r--r--meta/recipes-devtools/elfutils/files/debian/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch171
-rw-r--r--meta/recipes-devtools/elfutils/files/debian/0003-Add-mips-n64-relocation-format-hack.patch229
-rw-r--r--meta/recipes-devtools/elfutils/files/debian/arm_backend.diff624
-rw-r--r--meta/recipes-devtools/elfutils/files/debian/disable_werror.patch20
-rw-r--r--meta/recipes-devtools/elfutils/files/debian/hppa_backend.diff828
-rw-r--r--meta/recipes-devtools/elfutils/files/debian/hurd_path.patch17
-rw-r--r--meta/recipes-devtools/elfutils/files/debian/ignore_strmerge.diff14
-rw-r--r--meta/recipes-devtools/elfutils/files/debian/kfreebsd_path.patch20
-rw-r--r--meta/recipes-devtools/elfutils/files/debian/mips_backend.diff724
-rw-r--r--meta/recipes-devtools/elfutils/files/debian/mips_cfi.patch129
-rw-r--r--meta/recipes-devtools/elfutils/files/debian/mips_readelf_w.patch31
-rw-r--r--meta/recipes-devtools/elfutils/files/debian/testsuite-ignore-elflint.diff52
-rw-r--r--meta/recipes-devtools/fdisk/gptfdisk/0001-gptcurses-correctly-include-curses.h.patch27
-rw-r--r--meta/recipes-devtools/fdisk/gptfdisk_1.0.5.bb (renamed from meta/recipes-devtools/fdisk/gptfdisk_1.0.4.bb)8
-rw-r--r--meta/recipes-devtools/file/file_5.39.bb (renamed from meta/recipes-devtools/file/file_5.38.bb)15
-rw-r--r--meta/recipes-devtools/flex/flex/check-funcs.patch67
-rw-r--r--meta/recipes-devtools/flex/flex_2.6.4.bb1
-rw-r--r--meta/recipes-devtools/gcc/gcc-10.2.inc (renamed from meta/recipes-devtools/gcc/gcc-9.2.inc)64
-rw-r--r--meta/recipes-devtools/gcc/gcc-9.2/0020-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch54
-rw-r--r--meta/recipes-devtools/gcc/gcc-9.2/0030-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch79
-rw-r--r--meta/recipes-devtools/gcc/gcc-9.2/0037-Fix-up-libsanitizer-build-with-master-glibc.patch70
-rw-r--r--meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-14250.patch44
-rw-r--r--meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-15847_1.patch521
-rw-r--r--meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-15847_2.patch77
-rw-r--r--meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-15847_3.patch62
-rw-r--r--meta/recipes-devtools/gcc/gcc-9.2/re-PR-target-91102-aarch64-ICE-on-Linux-kernel-with-.patch95
-rw-r--r--meta/recipes-devtools/gcc/gcc-configure-common.inc1
-rw-r--r--meta/recipes-devtools/gcc/gcc-cross-canadian.inc31
-rw-r--r--meta/recipes-devtools/gcc/gcc-cross-canadian_10.2.bb (renamed from meta/recipes-devtools/gcc/gcc-cross-canadian_9.2.bb)0
-rw-r--r--meta/recipes-devtools/gcc/gcc-cross.inc4
-rw-r--r--meta/recipes-devtools/gcc/gcc-cross_10.2.bb (renamed from meta/recipes-devtools/gcc/gcc-cross_9.2.bb)0
-rw-r--r--meta/recipes-devtools/gcc/gcc-crosssdk_10.2.bb (renamed from meta/recipes-devtools/gcc/gcc-crosssdk_9.2.bb)0
-rw-r--r--meta/recipes-devtools/gcc/gcc-runtime.inc23
-rw-r--r--meta/recipes-devtools/gcc/gcc-runtime_10.2.bb (renamed from meta/recipes-devtools/gcc/gcc-runtime_9.2.bb)0
-rw-r--r--meta/recipes-devtools/gcc/gcc-sanitizers_10.2.bb (renamed from meta/recipes-devtools/gcc/gcc-sanitizers_9.2.bb)0
-rw-r--r--meta/recipes-devtools/gcc/gcc-source_10.2.bb (renamed from meta/recipes-devtools/gcc/gcc-source_9.2.bb)0
-rw-r--r--meta/recipes-devtools/gcc/gcc-target.inc18
-rw-r--r--meta/recipes-devtools/gcc/gcc/0001-aarch64-Fix-up-__aarch64_cas16_acq_rel-fallback.patch66
-rw-r--r--meta/recipes-devtools/gcc/gcc/0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch202
-rw-r--r--meta/recipes-devtools/gcc/gcc/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch)15
-rw-r--r--meta/recipes-devtools/gcc/gcc/0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch607
-rw-r--r--meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0002-gcc-poison-system-directories.patch)47
-rw-r--r--meta/recipes-devtools/gcc/gcc/0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch658
-rw-r--r--meta/recipes-devtools/gcc/gcc/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch)11
-rw-r--r--meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0004-64-bit-multilib-hack.patch)15
-rw-r--r--meta/recipes-devtools/gcc/gcc/0005-optional-libstdc.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0005-optional-libstdc.patch)29
-rw-r--r--meta/recipes-devtools/gcc/gcc/0006-COLLECT_GCC_OPTIONS.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0006-COLLECT_GCC_OPTIONS.patch)11
-rw-r--r--meta/recipes-devtools/gcc/gcc/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch)20
-rw-r--r--meta/recipes-devtools/gcc/gcc/0008-fortran-cross-compile-hack.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0008-fortran-cross-compile-hack.patch)15
-rw-r--r--meta/recipes-devtools/gcc/gcc/0009-cpp-honor-sysroot.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0009-cpp-honor-sysroot.patch)13
-rw-r--r--meta/recipes-devtools/gcc/gcc/0010-MIPS64-Default-to-N64-ABI.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0010-MIPS64-Default-to-N64-ABI.patch)11
-rw-r--r--meta/recipes-devtools/gcc/gcc/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch)28
-rw-r--r--meta/recipes-devtools/gcc/gcc/0012-gcc-Fix-argument-list-too-long-error.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0012-gcc-Fix-argument-list-too-long-error.patch)17
-rw-r--r--meta/recipes-devtools/gcc/gcc/0013-Disable-sdt.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0013-Disable-sdt.patch)23
-rw-r--r--meta/recipes-devtools/gcc/gcc/0014-libtool.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0014-libtool.patch)9
-rw-r--r--meta/recipes-devtools/gcc/gcc/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch)11
-rw-r--r--meta/recipes-devtools/gcc/gcc/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch)25
-rw-r--r--meta/recipes-devtools/gcc/gcc/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch)11
-rw-r--r--meta/recipes-devtools/gcc/gcc/0018-export-CPP.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0018-export-CPP.patch)9
-rw-r--r--meta/recipes-devtools/gcc/gcc/0019-Ensure-target-gcc-headers-can-be-included.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0019-Ensure-target-gcc-headers-can-be-included.patch)16
-rw-r--r--meta/recipes-devtools/gcc/gcc/0020-Don-t-search-host-directory-during-relink-if-inst_pr.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0021-Don-t-search-host-directory-during-relink-if-inst_pr.patch)11
-rw-r--r--meta/recipes-devtools/gcc/gcc/0021-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0022-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch)9
-rw-r--r--meta/recipes-devtools/gcc/gcc/0022-aarch64-Add-support-for-musl-ldso.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0023-aarch64-Add-support-for-musl-ldso.patch)9
-rw-r--r--meta/recipes-devtools/gcc/gcc/0023-libcc1-fix-libcc1-s-install-path-and-rpath.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0024-libcc1-fix-libcc1-s-install-path-and-rpath.patch)9
-rw-r--r--meta/recipes-devtools/gcc/gcc/0024-handle-sysroot-support-for-nativesdk-gcc.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0025-handle-sysroot-support-for-nativesdk-gcc.patch)112
-rw-r--r--meta/recipes-devtools/gcc/gcc/0025-Search-target-sysroot-gcc-version-specific-dirs-with.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0026-Search-target-sysroot-gcc-version-specific-dirs-with.patch)13
-rw-r--r--meta/recipes-devtools/gcc/gcc/0026-Fix-various-_FOR_BUILD-and-related-variables.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0027-Fix-various-_FOR_BUILD-and-related-variables.patch)27
-rw-r--r--meta/recipes-devtools/gcc/gcc/0027-nios2-Define-MUSL_DYNAMIC_LINKER.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0028-nios2-Define-MUSL_DYNAMIC_LINKER.patch)9
-rw-r--r--meta/recipes-devtools/gcc/gcc/0028-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0029-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch)15
-rw-r--r--meta/recipes-devtools/gcc/gcc/0029-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0031-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch)9
-rw-r--r--meta/recipes-devtools/gcc/gcc/0030-sync-gcc-stddef.h-with-musl.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0033-sync-gcc-stddef.h-with-musl.patch)9
-rw-r--r--meta/recipes-devtools/gcc/gcc/0031-fix-segmentation-fault-in-precompiled-header-generat.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0034-fix-segmentation-fault-in-precompiled-header-generat.patch)11
-rw-r--r--meta/recipes-devtools/gcc/gcc/0032-Fix-for-testsuite-failure.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0035-Fix-for-testsuite-failure.patch)9
-rw-r--r--meta/recipes-devtools/gcc/gcc/0033-Re-introduce-spe-commandline-options.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0036-Re-introduce-spe-commandline-options.patch)11
-rw-r--r--meta/recipes-devtools/gcc/gcc/0034-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch (renamed from meta/recipes-devtools/gcc/gcc-9.2/0032-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch)29
-rw-r--r--meta/recipes-devtools/gcc/gcc/0035-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch182
-rw-r--r--meta/recipes-devtools/gcc/gcc/0036-mingw32-Enable-operation_not_supported.patch26
-rw-r--r--meta/recipes-devtools/gcc/gcc/0037-libatomic-Do-not-enforce-march-on-aarch64.patch42
-rw-r--r--meta/recipes-devtools/gcc/gcc_10.2.bb (renamed from meta/recipes-devtools/gcc/gcc_9.2.bb)0
-rw-r--r--meta/recipes-devtools/gcc/libgcc-initial_10.2.bb (renamed from meta/recipes-devtools/gcc/libgcc-initial_9.2.bb)0
-rw-r--r--meta/recipes-devtools/gcc/libgcc_10.2.bb (renamed from meta/recipes-devtools/gcc/libgcc_9.2.bb)0
-rw-r--r--meta/recipes-devtools/gcc/libgfortran_10.2.bb (renamed from meta/recipes-devtools/gcc/libgfortran_9.2.bb)0
-rw-r--r--meta/recipes-devtools/gdb/gdb-9.2.inc (renamed from meta/recipes-devtools/gdb/gdb-9.1.inc)4
-rw-r--r--meta/recipes-devtools/gdb/gdb-cross-canadian_9.2.bb (renamed from meta/recipes-devtools/gdb/gdb-cross-canadian_9.1.bb)0
-rw-r--r--meta/recipes-devtools/gdb/gdb-cross_9.2.bb (renamed from meta/recipes-devtools/gdb/gdb-cross_9.1.bb)0
-rw-r--r--meta/recipes-devtools/gdb/gdb_9.2.bb (renamed from meta/recipes-devtools/gdb/gdb_9.1.bb)0
-rw-r--r--meta/recipes-devtools/git/git.inc2
-rw-r--r--meta/recipes-devtools/git/git_2.24.1.bb11
-rw-r--r--meta/recipes-devtools/git/git_2.28.0.bb9
-rw-r--r--meta/recipes-devtools/glide/glide_0.13.3.bb4
-rw-r--r--meta/recipes-devtools/gnu-config/gnu-config_git.bb4
-rw-r--r--meta/recipes-devtools/go/go-1.13/0009-ld-replace-glibc-dynamic-linker-with-musl.patch134
-rw-r--r--meta/recipes-devtools/go/go-1.15.inc (renamed from meta/recipes-devtools/go/go-1.13.inc)9
-rw-r--r--meta/recipes-devtools/go/go-1.15/0001-allow-CC-and-CXX-to-have-multiple-words.patch (renamed from meta/recipes-devtools/go/go-1.13/0001-allow-CC-and-CXX-to-have-multiple-words.patch)7
-rw-r--r--meta/recipes-devtools/go/go-1.15/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch (renamed from meta/recipes-devtools/go/go-1.13/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch)37
-rw-r--r--meta/recipes-devtools/go/go-1.15/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch (renamed from meta/recipes-devtools/go/go-1.13/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch)11
-rw-r--r--meta/recipes-devtools/go/go-1.15/0004-ld-add-soname-to-shareable-objects.patch (renamed from meta/recipes-devtools/go/go-1.13/0004-ld-add-soname-to-shareable-objects.patch)11
-rw-r--r--meta/recipes-devtools/go/go-1.15/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch (renamed from meta/recipes-devtools/go/go-1.13/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch)9
-rw-r--r--meta/recipes-devtools/go/go-1.15/0006-cmd-dist-separate-host-and-target-builds.patch (renamed from meta/recipes-devtools/go/go-1.13/0006-cmd-dist-separate-host-and-target-builds.patch)37
-rw-r--r--meta/recipes-devtools/go/go-1.15/0007-cmd-go-make-GOROOT-precious-by-default.patch (renamed from meta/recipes-devtools/go/go-1.13/0007-cmd-go-make-GOROOT-precious-by-default.patch)25
-rw-r--r--meta/recipes-devtools/go/go-1.15/0008-use-GOBUILDMODE-to-set-buildmode.patch (renamed from meta/recipes-devtools/go/go-1.13/0008-use-GOBUILDMODE-to-set-buildmode.patch)9
-rw-r--r--meta/recipes-devtools/go/go-binary-native_1.15.2.bb46
-rw-r--r--meta/recipes-devtools/go/go-cross-canadian_1.15.bb (renamed from meta/recipes-devtools/go/go-cross-canadian_1.13.bb)0
-rw-r--r--meta/recipes-devtools/go/go-cross_1.15.bb (renamed from meta/recipes-devtools/go/go-cross_1.13.bb)0
-rw-r--r--meta/recipes-devtools/go/go-crosssdk_1.15.bb (renamed from meta/recipes-devtools/go/go-crosssdk_1.13.bb)0
-rw-r--r--meta/recipes-devtools/go/go-dep/0001-Update-sys-module-to-latest.patch145574
-rw-r--r--meta/recipes-devtools/go/go-dep_0.5.4.bb5
-rw-r--r--meta/recipes-devtools/go/go-native_1.13.bb2
-rw-r--r--meta/recipes-devtools/go/go-native_1.15.bb (renamed from meta/recipes-devtools/go/go-native.inc)6
-rw-r--r--meta/recipes-devtools/go/go-runtime_1.15.bb (renamed from meta/recipes-devtools/go/go-runtime_1.13.bb)1
-rw-r--r--meta/recipes-devtools/go/go-target.inc4
-rw-r--r--meta/recipes-devtools/go/go_1.15.bb (renamed from meta/recipes-devtools/go/go_1.13.bb)9
-rw-r--r--meta/recipes-devtools/help2man/help2man-native_1.47.11.bb24
-rw-r--r--meta/recipes-devtools/help2man/help2man_1.47.15.bb22
-rw-r--r--meta/recipes-devtools/jquery/jquery_3.4.1.bb31
-rw-r--r--meta/recipes-devtools/jquery/jquery_3.5.1.bb33
-rw-r--r--meta/recipes-devtools/json-c/json-c/add-disable-werror-option-to-configure.patch45
-rw-r--r--meta/recipes-devtools/json-c/json-c_0.15.bb (renamed from meta/recipes-devtools/json-c/json-c_0.13.1.bb)12
-rw-r--r--meta/recipes-devtools/libcomps/libcomps/0001-Add-crc32.c-to-sources-list.patch9
-rw-r--r--meta/recipes-devtools/libcomps/libcomps/0001-Make-__comps_objmrtree_all-static-inline.patch35
-rw-r--r--meta/recipes-devtools/libcomps/libcomps/0002-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch (renamed from meta/recipes-devtools/libcomps/libcomps/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch)12
-rw-r--r--meta/recipes-devtools/libcomps/libcomps_0.1.15.bb (renamed from meta/recipes-devtools/libcomps/libcomps_git.bb)6
-rw-r--r--meta/recipes-devtools/libdnf/libdnf/0001-Add-WITH_TESTS-option.patch12
-rw-r--r--meta/recipes-devtools/libdnf/libdnf/0001-Look-fo-sphinx-only-if-documentation-is-actually-ena.patch42
-rw-r--r--meta/recipes-devtools/libdnf/libdnf/0001-include-stdexcept-for-runtime_error.patch65
-rw-r--r--meta/recipes-devtools/libdnf/libdnf/enable_test_data_dir_set.patch26
-rw-r--r--meta/recipes-devtools/libdnf/libdnf_0.48.0.bb (renamed from meta/recipes-devtools/libdnf/libdnf_0.28.1.bb)12
-rw-r--r--meta/recipes-devtools/libedit/libedit_20191231-3.1.bb6
-rw-r--r--meta/recipes-devtools/libmodulemd/libmodulemd-v1/0001-spec_tmpl.sh-use-bin-sh-not-usr-bin-sh.patch22
-rw-r--r--meta/recipes-devtools/libmodulemd/libmodulemd-v1_git.bb25
-rw-r--r--meta/recipes-devtools/libmodulemd/libmodulemd/0001-modulemd-generate-the-manpage-only-if-the-feature-is.patch28
-rw-r--r--meta/recipes-devtools/libmodulemd/libmodulemd_git.bb26
-rw-r--r--meta/recipes-devtools/librepo/librepo_1.12.1.bb (renamed from meta/recipes-devtools/librepo/librepo_1.11.2.bb)2
-rw-r--r--meta/recipes-devtools/libtool/libtool-cross_2.4.6.bb2
-rw-r--r--meta/recipes-devtools/llvm/llvm_git.bb6
-rw-r--r--meta/recipes-devtools/log4cplus/log4cplus_2.0.5.bb19
-rw-r--r--meta/recipes-devtools/make/make.inc4
-rw-r--r--meta/recipes-devtools/make/make/0001-glob-Do-not-assume-glibc-glob-internals.patch70
-rw-r--r--meta/recipes-devtools/make/make/0001-m4-getloadavg.m4-restrict-AIX-specific-test-on-AIX.patch38
-rw-r--r--meta/recipes-devtools/make/make/0001-makeinst-Do-not-undef-POSIX-on-clang-arm.patch38
-rw-r--r--meta/recipes-devtools/make/make/0001-src-dir.c-fix-buffer-overflow-warning.patch41
-rw-r--r--meta/recipes-devtools/make/make/0002-glob-Do-not-assume-glibc-glob-internals.patch38
-rw-r--r--meta/recipes-devtools/make/make/0002-modules-fcntl-allow-being-detected-by-importing-proj.patch33
-rw-r--r--meta/recipes-devtools/make/make/0002-w32-compat-dirent.c-follow-header.patch36
-rw-r--r--meta/recipes-devtools/make/make/0003-posixfcn-fcntl-gnulib-make-emulated.patch79
-rw-r--r--meta/recipes-devtools/make/make_4.2.1.bb12
-rw-r--r--meta/recipes-devtools/make/make_4.3.bb18
-rw-r--r--meta/recipes-devtools/meson/meson.inc7
-rw-r--r--meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch14
-rw-r--r--meta/recipes-devtools/meson/meson/0001-gnome.py-prefix-g-i-paths-with-PKG_CONFIG_SYSROOT_DI.patch37
-rw-r--r--meta/recipes-devtools/meson/meson/0001-mesonbuild-environment.py-check-environment-for-vari.patch26
-rw-r--r--meta/recipes-devtools/meson/meson/0001-modules-python.py-do-not-substitute-python-s-install.patch11
-rw-r--r--meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch6
-rw-r--r--meta/recipes-devtools/meson/meson/0002-gobject-introspection-determine-g-ir-scanner-and-g-i.patch40
-rw-r--r--meta/recipes-devtools/meson/meson/0003-native_bindir.patch28
-rw-r--r--meta/recipes-devtools/meson/meson/disable-rpath-handling.patch29
-rw-r--r--meta/recipes-devtools/meson/meson_0.55.1.bb (renamed from meta/recipes-devtools/meson/meson_0.53.1.bb)0
-rw-r--r--meta/recipes-devtools/meson/nativesdk-meson_0.55.1.bb (renamed from meta/recipes-devtools/meson/nativesdk-meson_0.53.1.bb)0
-rw-r--r--meta/recipes-devtools/mtd/mtd-utils_git.bb8
-rw-r--r--meta/recipes-devtools/mtools/mtools/disable-hardcoded-configs.patch6
-rw-r--r--meta/recipes-devtools/mtools/mtools_4.0.24.bb (renamed from meta/recipes-devtools/mtools/mtools_4.0.23.bb)6
-rw-r--r--meta/recipes-devtools/nasm/nasm/0001-stdlib-Add-strlcat.patch28
-rw-r--r--meta/recipes-devtools/nasm/nasm/0002-Add-debug-prefix-map-option.patch133
-rw-r--r--meta/recipes-devtools/nasm/nasm/CVE-2018-19755.patch116
-rw-r--r--meta/recipes-devtools/nasm/nasm/CVE-2019-14248.patch43
-rw-r--r--meta/recipes-devtools/nasm/nasm_2.15.05.bb (renamed from meta/recipes-devtools/nasm/nasm_2.14.02.bb)10
-rw-r--r--meta/recipes-devtools/ninja/ninja/fix-musl.patch46
-rw-r--r--meta/recipes-devtools/ninja/ninja_1.10.1.bb (renamed from meta/recipes-devtools/ninja/ninja_1.9.0.bb)6
-rw-r--r--meta/recipes-devtools/opkg-utils/opkg-utils/fix-reproducibility.patch32
-rw-r--r--meta/recipes-devtools/opkg-utils/opkg-utils_0.4.3.bb (renamed from meta/recipes-devtools/opkg-utils/opkg-utils_0.4.2.bb)13
-rw-r--r--meta/recipes-devtools/opkg/opkg-keyrings_1.0.bb5
-rw-r--r--meta/recipes-devtools/opkg/opkg_0.4.3.bb (renamed from meta/recipes-devtools/opkg/opkg_0.4.2.bb)4
-rw-r--r--meta/recipes-devtools/packagegroups/packagegroup-core-device-devel.bb16
-rw-r--r--meta/recipes-devtools/patchelf/patchelf/fix-adjusting-startPage.patch45
-rw-r--r--meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch18
-rw-r--r--meta/recipes-devtools/patchelf/patchelf_0.12.bb (renamed from meta/recipes-devtools/patchelf/patchelf_0.10.bb)8
-rw-r--r--meta/recipes-devtools/perl/files/0001-enc2xs-Add-environment-variable-to-suppress-comments.patch30
-rw-r--r--meta/recipes-devtools/perl/files/0001-tests-adjust-to-correctly-exclude-unbuilt-extensions.patch27
-rw-r--r--meta/recipes-devtools/perl/files/determinism.patch13
-rw-r--r--meta/recipes-devtools/perl/files/perl-cross-makefile.patch29
-rw-r--r--meta/recipes-devtools/perl/files/perl-rdepends.txt2492
-rw-r--r--meta/recipes-devtools/perl/files/racefix.patch24
-rw-r--r--meta/recipes-devtools/perl/libmodule-build-perl_0.4231.bb (renamed from meta/recipes-devtools/perl/libmodule-build-perl_0.4229.bb)29
-rw-r--r--meta/recipes-devtools/perl/perl_5.32.0.bb (renamed from meta/recipes-devtools/perl/perl_5.30.1.bb)28
-rw-r--r--meta/recipes-devtools/pkgconf/pkgconf_1.7.3.bb (renamed from meta/recipes-devtools/pkgconf/pkgconf_1.6.3.bb)3
-rw-r--r--meta/recipes-devtools/pseudo/files/0001-Add-statx.patch106
-rw-r--r--meta/recipes-devtools/pseudo/files/0001-maketables-wrappers-use-Python-3.patch34
-rw-r--r--meta/recipes-devtools/pseudo/files/0001-realpath.c-Remove-trailing-slashes.patch57
-rw-r--r--meta/recipes-devtools/pseudo/files/0006-xattr-adjust-for-attr-2.4.48-release.patch48
-rw-r--r--meta/recipes-devtools/pseudo/files/moreretries.patch19
-rw-r--r--meta/recipes-devtools/pseudo/files/toomanyfiles.patch71
-rw-r--r--meta/recipes-devtools/pseudo/pseudo.inc2
-rw-r--r--meta/recipes-devtools/pseudo/pseudo_git.bb10
-rw-r--r--meta/recipes-devtools/python-numpy/files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch11
-rw-r--r--meta/recipes-devtools/python-numpy/files/0001-numpy-random-setup.py-remove-the-detection-of-x86-ta.patch32
-rw-r--r--meta/recipes-devtools/python-numpy/python-numpy.inc11
-rw-r--r--meta/recipes-devtools/python-numpy/python3-numpy_1.19.1.bb (renamed from meta/recipes-devtools/python-numpy/python3-numpy_1.17.4.bb)0
-rw-r--r--meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch12
-rw-r--r--meta/recipes-devtools/python/python-cython.inc40
-rw-r--r--meta/recipes-devtools/python/python-extras.inc2
-rw-r--r--meta/recipes-devtools/python/python-gitdb.inc5
-rw-r--r--meta/recipes-devtools/python/python-pbr.inc4
-rw-r--r--meta/recipes-devtools/python/python-pycryptodome.inc26
-rw-r--r--meta/recipes-devtools/python/python-pyparsing.inc22
-rw-r--r--meta/recipes-devtools/python/python-six.inc2
-rw-r--r--meta/recipes-devtools/python/python-smmap.inc5
-rw-r--r--meta/recipes-devtools/python/python-subunit.inc6
-rw-r--r--meta/recipes-devtools/python/python-testtools.inc6
-rw-r--r--meta/recipes-devtools/python/python3-cython_0.29.21.bb18
-rw-r--r--meta/recipes-devtools/python/python3-dbusmock_0.19.bb17
-rw-r--r--meta/recipes-devtools/python/python3-docutils_0.16.bb (renamed from meta/recipes-devtools/python/python3-docutils_0.15.bb)6
-rw-r--r--meta/recipes-devtools/python/python3-git_3.1.7.bb (renamed from meta/recipes-devtools/python/python3-git_3.0.5.bb)3
-rw-r--r--meta/recipes-devtools/python/python3-gitdb_2.0.6.bb3
-rw-r--r--meta/recipes-devtools/python/python3-gitdb_4.0.5.bb4
-rw-r--r--meta/recipes-devtools/python/python3-iniparse_0.4.bb2
-rw-r--r--meta/recipes-devtools/python/python3-jinja2/run-ptest3
-rw-r--r--meta/recipes-devtools/python/python3-jinja2_2.11.2.bb45
-rw-r--r--meta/recipes-devtools/python/python3-libarchive-c_2.9.bb6
-rw-r--r--meta/recipes-devtools/python/python3-magic_0.4.18.bb (renamed from meta/recipes-devtools/python/python3-magic_0.4.15.bb)9
-rw-r--r--meta/recipes-devtools/python/python3-mako_1.1.3.bb (renamed from meta/recipes-devtools/python/python3-mako_1.1.0.bb)5
-rw-r--r--meta/recipes-devtools/python/python3-markupsafe/run-ptest3
-rw-r--r--meta/recipes-devtools/python/python3-markupsafe_1.1.1.bb28
-rw-r--r--meta/recipes-devtools/python/python3-pbr/0001-change-shebang-to-python3.patch42
-rw-r--r--meta/recipes-devtools/python/python3-pip/0001-change-shebang-to-python3.patch60
-rw-r--r--meta/recipes-devtools/python/python3-pip_20.0.2.bb4
-rw-r--r--meta/recipes-devtools/python/python3-pycairo_1.19.1.bb (renamed from meta/recipes-devtools/python/python3-pycairo_1.19.0.bb)4
-rw-r--r--meta/recipes-devtools/python/python3-pycryptodome_3.9.8.bb5
-rw-r--r--meta/recipes-devtools/python/python3-pycryptodomex_3.9.8.bb9
-rw-r--r--meta/recipes-devtools/python/python3-pyelftools_0.26.bb14
-rw-r--r--meta/recipes-devtools/python/python3-pygments_2.6.1.bb (renamed from meta/recipes-devtools/python/python3-pygments_2.5.2.bb)4
-rw-r--r--meta/recipes-devtools/python/python3-pygobject_3.36.1.bb (renamed from meta/recipes-devtools/python/python3-pygobject_3.34.0.bb)4
-rw-r--r--meta/recipes-devtools/python/python3-pyparsing_2.4.7.bb3
-rw-r--r--meta/recipes-devtools/python/python3-scons-native_3.1.2.bb (renamed from meta/recipes-devtools/python/python3-scons-native_3.1.1.bb)3
-rw-r--r--meta/recipes-devtools/python/python3-scons_3.1.1.bb29
-rw-r--r--meta/recipes-devtools/python/python3-scons_3.1.2.bb33
-rw-r--r--meta/recipes-devtools/python/python3-setuptools/0001-change-shebang-to-python3.patch25
-rw-r--r--meta/recipes-devtools/python/python3-setuptools_45.0.0.bb6
-rw-r--r--meta/recipes-devtools/python/python3-setuptools_49.6.0.bb (renamed from meta/recipes-devtools/python/python-setuptools.inc)23
-rw-r--r--meta/recipes-devtools/python/python3-six_1.14.0.bb5
-rw-r--r--meta/recipes-devtools/python/python3-six_1.15.0.bb5
-rw-r--r--meta/recipes-devtools/python/python3-smmap_3.0.4.bb (renamed from meta/recipes-devtools/python/python3-smmap_2.0.5.bb)1
-rw-r--r--meta/recipes-devtools/python/python3-subunit_1.4.0.bb (renamed from meta/recipes-devtools/python/python3-subunit_1.3.0.bb)0
-rw-r--r--meta/recipes-devtools/python/python3-testtools_2.4.0.bb (renamed from meta/recipes-devtools/python/python3-testtools_2.3.0.bb)0
-rw-r--r--meta/recipes-devtools/python/python3/0001-Don-t-search-system-for-headers-libraries.patch27
-rw-r--r--meta/recipes-devtools/python/python3/0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch20
-rw-r--r--meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch2
-rw-r--r--meta/recipes-devtools/python/python3/0001-setup.py-pass-missing-libraries-to-Extension-for-mul.patch2
-rw-r--r--meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch2
-rw-r--r--meta/recipes-devtools/python/python3/get_module_deps3.py20
-rw-r--r--meta/recipes-devtools/python/python3/python3-manifest.json66
-rw-r--r--meta/recipes-devtools/python/python3_3.8.5.bb (renamed from meta/recipes-devtools/python/python3_3.8.1.bb)46
-rw-r--r--meta/recipes-devtools/qemu/qemu-native.inc5
-rw-r--r--meta/recipes-devtools/qemu/qemu-native_5.1.0.bb (renamed from meta/recipes-devtools/qemu/qemu-native_4.2.0.bb)0
-rw-r--r--meta/recipes-devtools/qemu/qemu-system-native_5.1.0.bb (renamed from meta/recipes-devtools/qemu/qemu-system-native_4.2.0.bb)4
-rw-r--r--meta/recipes-devtools/qemu/qemu.inc37
-rw-r--r--meta/recipes-devtools/qemu/qemu/0001-Add-enable-disable-udev.patch29
-rw-r--r--meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch18
-rw-r--r--meta/recipes-devtools/qemu/qemu/0001-qemu-Do-not-include-file-if-not-exists.patch31
-rw-r--r--meta/recipes-devtools/qemu/qemu/0001-target-mips-Increase-number-of-TLB-entries-on-the-34.patch59
-rw-r--r--meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch18
-rw-r--r--meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch10
-rw-r--r--meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch10
-rw-r--r--meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch18
-rw-r--r--meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch56
-rw-r--r--meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch10
-rw-r--r--meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch10
-rw-r--r--meta/recipes-devtools/qemu/qemu/0009-Fix-webkitgtk-builds.patch86
-rw-r--r--meta/recipes-devtools/qemu/qemu/0010-configure-Add-pkg-config-handling-for-libgcrypt.patch14
-rw-r--r--meta/recipes-devtools/qemu/qemu/0011-hw-i386-pc-fix-regression-in-parsing-vga-cmdline-par.patch54
-rw-r--r--meta/recipes-devtools/qemu/qemu/0012-fix-libcap-header-issue-on-some-distro.patch86
-rw-r--r--meta/recipes-devtools/qemu/qemu/0013-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch74
-rw-r--r--meta/recipes-devtools/qemu/qemu/CVE-2019-15890.patch48
-rw-r--r--meta/recipes-devtools/qemu/qemu/find_datadir.patch39
-rw-r--r--meta/recipes-devtools/qemu/qemu/usb-fix-setup_len-init.patch89
-rw-r--r--meta/recipes-devtools/qemu/qemu_5.1.0.bb (renamed from meta/recipes-devtools/qemu/qemu_4.2.0.bb)5
-rw-r--r--meta/recipes-devtools/rpm/files/0001-Bump-up-the-limit-of-signature-header-to-64MB.patch62
-rw-r--r--meta/recipes-devtools/rpm/files/0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch28
-rw-r--r--meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch14
-rw-r--r--meta/recipes-devtools/rpm/files/0001-Split-binary-package-building-into-a-separate-functi.patch84
-rw-r--r--meta/recipes-devtools/rpm/files/0001-lib-transaction.c-fix-file-conflicts-for-MIPS64-N32.patch60
-rw-r--r--meta/recipes-devtools/rpm/files/0001-mono-find-provides-requires-do-not-use-monodis-from-.patch58
-rw-r--r--meta/recipes-devtools/rpm/files/0001-rpmfc.c-do-not-run-file-classification-in-parallel.patch65
-rw-r--r--meta/recipes-devtools/rpm/files/0002-Run-binary-package-creation-via-thread-pools.patch127
-rw-r--r--meta/recipes-devtools/rpm/files/0003-rpmstrpool.c-make-operations-over-string-pools-threa.patch207
-rw-r--r--meta/recipes-devtools/rpm/files/0004-build-pack.c-remove-static-local-variables-from-buil.patch336
-rw-r--r--meta/recipes-devtools/rpm/files/environment.d-rpm.sh1
-rw-r--r--meta/recipes-devtools/rpm/rpm_4.15.1.bb (renamed from meta/recipes-devtools/rpm/rpm_4.14.2.1.bb)45
-rw-r--r--meta/recipes-devtools/rsync/files/CVE-2016-9840.patch75
-rw-r--r--meta/recipes-devtools/rsync/files/CVE-2016-9841.patch228
-rw-r--r--meta/recipes-devtools/rsync/files/CVE-2016-9842.patch33
-rw-r--r--meta/recipes-devtools/rsync/files/CVE-2016-9843.patch53
-rw-r--r--meta/recipes-devtools/rsync/files/makefile-no-rebuild.patch29
-rw-r--r--meta/recipes-devtools/rsync/rsync_3.2.3.bb (renamed from meta/recipes-devtools/rsync/rsync_3.1.3.bb)19
-rw-r--r--meta/recipes-devtools/ruby/ruby_2.7.1.bb (renamed from meta/recipes-devtools/ruby/ruby_2.7.0.bb)18
-rw-r--r--meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts.service2
-rw-r--r--meta/recipes-devtools/squashfs-tools/files/0001-squashfs-tools-fix-build-failure-against-gcc-10.patch45
-rw-r--r--meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb1
-rw-r--r--meta/recipes-devtools/strace/strace/0001-strace-fix-reproducibilty-issues.patch39
-rw-r--r--meta/recipes-devtools/strace/strace/0001-xlat-Mark-IPPROTO_MAX-last-in-IPPROTO_-constants.patch70
-rw-r--r--meta/recipes-devtools/strace/strace_5.8.bb (renamed from meta/recipes-devtools/strace/strace_5.5.bb)7
-rw-r--r--meta/recipes-devtools/subversion/subversion_1.14.0.bb (renamed from meta/recipes-devtools/subversion/subversion_1.13.0.bb)7
-rw-r--r--meta/recipes-devtools/syslinux/syslinux/0010-Workaround-multiple-definition-of-symbol-errors.patch97
-rw-r--r--meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb1
-rw-r--r--meta/recipes-devtools/unifdef/unifdef_2.12.bb (renamed from meta/recipes-devtools/unifdef/unifdef_2.11.bb)9
-rw-r--r--meta/recipes-devtools/vala/vala/0001-git-version-gen-don-t-append-dirty-if-we-re-not-in-g.patch55
-rw-r--r--meta/recipes-devtools/vala/vala_0.46.6.bb8
-rw-r--r--meta/recipes-devtools/vala/vala_0.48.9.bb5
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/0001-memcheck-tests-Fix-timerfd-syscall-test.patch98
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/0001-memcheck-vgtests-remove-fullpath-after-flags.patch (renamed from meta/recipes-devtools/valgrind/valgrind/0001-adjust-path-filter-for-2-memcheck-tests.patch)30
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/0001-tests-Make-pthread_detatch-call-portable-across-plat.patch87
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/0004-Fix-out-of-tree-builds.patch85
-rw-r--r--meta/recipes-devtools/valgrind/valgrind/0004-pth_atfork1.c-Define-error-API-for-musl.patch37
-rw-r--r--meta/recipes-devtools/valgrind/valgrind_3.16.1.bb (renamed from meta/recipes-devtools/valgrind/valgrind_3.15.0.bb)28
-rw-r--r--meta/recipes-extended/acpica/acpica_20200717.bb (renamed from meta/recipes-extended/acpica/acpica_20191213.bb)6
-rw-r--r--meta/recipes-extended/asciidoc/asciidoc_9.0.2.bb (renamed from meta/recipes-extended/asciidoc/asciidoc_8.6.9.bb)7
-rw-r--r--meta/recipes-extended/bash/bash/bash-CVE-2019-18276.patch386
-rw-r--r--meta/recipes-extended/bash/bash_5.0.bb8
-rw-r--r--meta/recipes-extended/bzip2/bzip2/Makefile.am1
-rw-r--r--meta/recipes-extended/bzip2/bzip2_1.0.8.bb31
-rw-r--r--meta/recipes-extended/cpio/cpio-2.13/0002-src-global.c-Remove-superfluous-declaration-of-progr.patch28
-rw-r--r--meta/recipes-extended/cpio/cpio_2.13.bb7
-rw-r--r--meta/recipes-extended/cups/cups.inc19
-rw-r--r--meta/recipes-extended/cups/cups/cups-volatiles.conf1
-rw-r--r--meta/recipes-extended/cups/cups/volatiles.99_cups2
-rw-r--r--meta/recipes-extended/cups/cups_2.3.1.bb6
-rw-r--r--meta/recipes-extended/cups/cups_2.3.3.bb6
-rw-r--r--meta/recipes-extended/ed/ed_1.16.bb (renamed from meta/recipes-extended/ed/ed_1.15.bb)8
-rw-r--r--meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch10
-rw-r--r--meta/recipes-extended/ethtool/ethtool_5.8.bb (renamed from meta/recipes-extended/ethtool/ethtool_5.4.bb)12
-rw-r--r--meta/recipes-extended/gawk/gawk_5.1.0.bb (renamed from meta/recipes-extended/gawk/gawk_5.0.1.bb)4
-rw-r--r--meta/recipes-extended/ghostscript/files/do-not-check-local-libpng-source.patch37
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14869-0001.patch70
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript/CVE-2020-15900.patch54
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript/aarch64/objarch.h40
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript/arm/objarch.h40
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript/armeb/objarch.h40
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript/ghostscript-9.02-genarch.patch38
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript/i586/objarch.h41
l---------meta/recipes-extended/ghostscript/ghostscript/i6861
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript/microblaze/objarch.h40
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript/microblazeel/objarch.h40
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript/mipsarchn32eb/objarch.h40
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript/mipsarchn32el/objarch.h40
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript/mipsarchn64eb/objarch.h40
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript/mipsarchn64el/objarch.h40
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript/mipsarcho32eb/objarch.h40
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript/mipsarcho32el/objarch.h40
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript/nios2/objarch.h40
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript/powerpc/objarch.h40
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript/powerpc64/objarch.h40
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript/powerpc64le/objarch.h40
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript/x86-64/objarch.h40
-rw-r--r--meta/recipes-extended/ghostscript/ghostscript_9.52.bb (renamed from meta/recipes-extended/ghostscript/ghostscript_9.50.bb)26
-rw-r--r--meta/recipes-extended/groff/files/0001-Make-manpages-mulitlib-identical.patch27
-rw-r--r--meta/recipes-extended/groff/groff_1.22.4.bb1
-rw-r--r--meta/recipes-extended/images/core-image-testmaster-initramfs.bb1
-rw-r--r--meta/recipes-extended/iptables/iptables/0001-build-resolve-iptables-apply-not-getting-installed.patch45
-rw-r--r--meta/recipes-extended/iptables/iptables_1.8.5.bb (renamed from meta/recipes-extended/iptables/iptables_1.8.4.bb)9
-rw-r--r--meta/recipes-extended/iputils/iputils/0001-ninfod-change-variable-name-to-avoid-colliding-with-.patch51
-rw-r--r--meta/recipes-extended/iputils/iputils/0001-ninfod-fix-systemd-Documentation-url-error.patch28
-rw-r--r--meta/recipes-extended/iputils/iputils_s20200821.bb (renamed from meta/recipes-extended/iputils/iputils_s20190709.bb)13
-rw-r--r--meta/recipes-extended/less/less_562.bb (renamed from meta/recipes-extended/less/less_551.bb)4
-rw-r--r--meta/recipes-extended/libarchive/libarchive_3.4.3.bb (renamed from meta/recipes-extended/libarchive/libarchive_3.4.1.bb)4
-rw-r--r--meta/recipes-extended/libidn/libidn/0001-idn-format-security-warnings.patch181
-rw-r--r--meta/recipes-extended/libidn/libidn/avoid_AM_PROG_MKDIR_P_warning_error_with_automake_1.12.patch34
-rw-r--r--meta/recipes-extended/libidn/libidn/dont-depend-on-help2man.patch23
-rw-r--r--meta/recipes-extended/libidn/libidn/libidn_fix_for_automake-1.12.patch35
-rw-r--r--meta/recipes-extended/libidn/libidn_1.35.bb42
-rw-r--r--meta/recipes-extended/libnsl/libnsl2_git.bb4
-rw-r--r--meta/recipes-extended/libpipeline/libpipeline_1.5.3.bb (renamed from meta/recipes-extended/libpipeline/libpipeline_1.5.2.bb)3
-rw-r--r--meta/recipes-extended/libsolv/libsolv_0.7.14.bb (renamed from meta/recipes-extended/libsolv/libsolv_0.7.10.bb)4
-rw-r--r--meta/recipes-extended/libtirpc/libtirpc/0001-xdr_float-do-not-include-bits-endian.h.patch34
-rw-r--r--meta/recipes-extended/libtirpc/libtirpc_1.2.6.bb (renamed from meta/recipes-extended/libtirpc/libtirpc_1.2.5.bb)10
-rw-r--r--meta/recipes-extended/logrotate/logrotate/0001-Update-the-manual.patch (renamed from meta/recipes-extended/logrotate/logrotate/update-the-manual.patch)15
-rw-r--r--meta/recipes-extended/logrotate/logrotate/act-as-mv-when-rotate.patch27
-rw-r--r--meta/recipes-extended/logrotate/logrotate/disable-check-different-filesystems.patch16
-rw-r--r--meta/recipes-extended/logrotate/logrotate_3.17.0.bb (renamed from meta/recipes-extended/logrotate/logrotate_3.15.1.bb)12
-rw-r--r--meta/recipes-extended/lsb/lsb-release/0001-Remove-timestamp-from-manpage.patch27
-rw-r--r--meta/recipes-extended/lsb/lsb-release_1.4.bb1
-rw-r--r--meta/recipes-extended/ltp/ltp/0001-Add-more-musl-exclusions.patch58
-rw-r--r--meta/recipes-extended/ltp/ltp/0001-Remove-OOM-tests-from-runtest-mm.patch34
-rw-r--r--meta/recipes-extended/ltp/ltp/0001-build-Add-option-to-select-libc-implementation.patch127
-rw-r--r--meta/recipes-extended/ltp/ltp/0001-mkswap01.sh-Add-udevadm-trigger-before-swap-verifica.patch35
-rw-r--r--meta/recipes-extended/ltp/ltp/0001-nm01-Remove-prefix-zeros-of-the-addresses-output-by-.patch43
-rw-r--r--meta/recipes-extended/ltp/ltp/0001-ptrace01-Fix-missing-format-string.patch33
-rw-r--r--meta/recipes-extended/ltp/ltp/0001-sigwaitinfo-Do-not-run-invalid-undefined-test-cases.patch69
-rw-r--r--meta/recipes-extended/ltp/ltp/0001-syscalls-Check-for-time64-unsafe-syscalls-before-usi.patch104
-rw-r--r--meta/recipes-extended/ltp/ltp/0001-syscalls-copy_file_range02-Expect-EFBIG-in-subcase-m.patch57
-rw-r--r--meta/recipes-extended/ltp/ltp/0001-testcases-fix-an-absent-format-string-issue.patch24
-rw-r--r--meta/recipes-extended/ltp/ltp/0002-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch47
-rw-r--r--meta/recipes-extended/ltp/ltp/0003-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch55
-rw-r--r--meta/recipes-extended/ltp/ltp/0004-guard-mallocopt-with-__GLIBC__.patch4
-rw-r--r--meta/recipes-extended/ltp/ltp/0006-rt_tgsigqueueinfo-disable-test-on-musl.patch35
-rw-r--r--meta/recipes-extended/ltp/ltp/0008-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch41
-rw-r--r--meta/recipes-extended/ltp/ltp/0009-open_posix_testsuite-mmap24-2-Relax-condition-a-bit.patch68
-rw-r--r--meta/recipes-extended/ltp/ltp_20200515.bb (renamed from meta/recipes-extended/ltp/ltp_20190930.bb)52
-rw-r--r--meta/recipes-extended/man-db/man-db_2.9.3.bb (renamed from meta/recipes-extended/man-db/man-db_2.9.0.bb)3
-rw-r--r--meta/recipes-extended/man-pages/man-pages_5.08.bb (renamed from meta/recipes-extended/man-pages/man-pages_5.05.bb)5
-rw-r--r--meta/recipes-extended/mc/files/0001-Add-option-to-control-configure-args.patch99
-rw-r--r--meta/recipes-extended/mc/files/0001-Ticket-3629-configure.ac-drop-bundled-gettext.patch110
-rw-r--r--meta/recipes-extended/mc/mc_4.8.25.bb (renamed from meta/recipes-extended/mc/mc_4.8.23.bb)5
-rw-r--r--meta/recipes-extended/mdadm/mdadm_4.1.bb6
-rw-r--r--meta/recipes-extended/minicom/minicom/0001-Drop-superfluous-global-variable-definitions.patch35
-rw-r--r--meta/recipes-extended/minicom/minicom/0002-Drop-superfluous-global-variable-definitions.patch37
-rw-r--r--meta/recipes-extended/minicom/minicom/0003-Drop-superfluous-global-variable-definitions.patch42
-rw-r--r--meta/recipes-extended/minicom/minicom_2.7.1.bb3
-rw-r--r--meta/recipes-extended/msmtp/msmtp_1.8.12.bb (renamed from meta/recipes-extended/msmtp/msmtp_1.8.7.bb)3
-rw-r--r--meta/recipes-extended/net-tools/net-tools/0001-lib-inet6.c-INET6_rresolve-various-fixes.patch87
-rw-r--r--meta/recipes-extended/net-tools/net-tools/Add_missing_headers.patch15
-rw-r--r--meta/recipes-extended/net-tools/net-tools/Bug_443075-ifconfig.c-pointtopoint_spelling.patch26
-rw-r--r--meta/recipes-extended/net-tools/net-tools/Bug_541172-netstat.c-exit-codes.patch22
-rw-r--r--meta/recipes-extended/net-tools/net-tools/ifconfig-interface-0-del-IP-will-remove-the-aliased-.patch32
-rw-r--r--meta/recipes-extended/net-tools/net-tools/musl-fixes.patch100
-rw-r--r--meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp1.patch635
-rw-r--r--meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp2-quiet.patch28
-rw-r--r--meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp3-addrs.patch363
-rw-r--r--meta/recipes-extended/net-tools/net-tools/net-tools-fix-building-with-linux-4.8.patch52
-rw-r--r--meta/recipes-extended/net-tools/net-tools_1.60-20181103.bb110
-rw-r--r--meta/recipes-extended/net-tools/net-tools_1.60-26.bb131
-rw-r--r--meta/recipes-extended/newt/files/0002-don-t-ignore-CFLAGS-when-building-snack.patch29
-rw-r--r--meta/recipes-extended/newt/files/pie-flags.patch41
-rw-r--r--meta/recipes-extended/newt/libnewt_0.52.21.bb4
-rw-r--r--meta/recipes-extended/packagegroups/packagegroup-core-base-utils.bb4
-rw-r--r--meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb10
-rw-r--r--meta/recipes-extended/pam/libpam/pam.d/common-password5
-rw-r--r--meta/recipes-extended/pam/libpam_1.3.1.bb5
-rw-r--r--meta/recipes-extended/parted/files/run-ptest2
-rw-r--r--meta/recipes-extended/parted/parted_3.3.bb4
-rw-r--r--meta/recipes-extended/pbzip2/pbzip2_1.1.13.bb4
-rw-r--r--meta/recipes-extended/psmisc/psmisc.inc2
-rw-r--r--meta/recipes-extended/rpcbind/rpcbind_1.2.5.bb5
-rw-r--r--meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb10
-rw-r--r--meta/recipes-extended/shadow/shadow-sysroot_4.6.bb5
-rw-r--r--meta/recipes-extended/stress-ng/stress-ng/no_daddr_t.patch32
-rw-r--r--meta/recipes-extended/stress-ng/stress-ng_0.11.21.bb (renamed from meta/recipes-extended/stress-ng/stress-ng_0.11.00.bb)6
-rw-r--r--meta/recipes-extended/sudo/sudo.inc2
-rw-r--r--meta/recipes-extended/sudo/sudo/0001-Include-sys-types.h-for-id_t-definition.patch34
-rw-r--r--meta/recipes-extended/sudo/sudo_1.9.3.bb (renamed from meta/recipes-extended/sudo/sudo_1.8.31.bb)7
-rw-r--r--meta/recipes-extended/sysklogd/files/0001-Drop-libcompat-to-simplify-build-deps-and-really-fix.patch127
-rw-r--r--meta/recipes-extended/sysklogd/files/0001-Makefile.am-fixup-issue-17.patch43
-rw-r--r--meta/recipes-extended/sysklogd/files/0001-Remove-__BEGIN_DECLS-__END_DECLS.patch44
-rw-r--r--meta/recipes-extended/sysklogd/files/0002-include-sys-types.h-for-off_t.patch29
-rwxr-xr-xmeta/recipes-extended/sysklogd/files/sysklogd22
-rw-r--r--meta/recipes-extended/sysklogd/sysklogd.inc17
-rw-r--r--meta/recipes-extended/sysklogd/sysklogd_2.0.3.bb3
-rw-r--r--meta/recipes-extended/sysklogd/sysklogd_2.1.2.bb3
-rw-r--r--meta/recipes-extended/sysstat/sysstat.inc2
-rw-r--r--meta/recipes-extended/sysstat/sysstat_12.4.0.bb (renamed from meta/recipes-extended/sysstat/sysstat_12.2.1.bb)3
-rw-r--r--meta/recipes-extended/timezone/timezone.inc8
-rw-r--r--meta/recipes-extended/timezone/tzdata.bb20
-rw-r--r--meta/recipes-extended/watchdog/watchdog/0001-Include-linux-param.h-for-EXEC_PAGESIZE-definition.patch32
-rw-r--r--meta/recipes-extended/watchdog/watchdog/0001-wd_keepalive.service-use-run-instead-of-var-run.patch30
-rw-r--r--meta/recipes-extended/watchdog/watchdog_5.16.bb (renamed from meta/recipes-extended/watchdog/watchdog_5.15.bb)8
-rw-r--r--meta/recipes-extended/wget/wget/0002-improve-reproducibility.patch9
-rw-r--r--meta/recipes-extended/xinetd/xinetd/0001-configure-Use-HAVE_SYS_RESOURCE_H-to-guard-sys-resou.patch100
-rw-r--r--meta/recipes-extended/xinetd/xinetd/Disable-services-from-inetd.conf-if-a-service-with-t.patch86
-rw-r--r--meta/recipes-extended/xinetd/xinetd/Various-fixes-from-the-previous-maintainer.patch79
-rw-r--r--meta/recipes-extended/xinetd/xinetd/xinetd-CVE-2013-4342.patch34
-rw-r--r--meta/recipes-extended/xinetd/xinetd/xinetd-should-be-able-to-listen-on-IPv6-even-in-ine.patch112
-rw-r--r--meta/recipes-extended/xinetd/xinetd/xinetd.conf11
-rw-r--r--meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb47
-rw-r--r--meta/recipes-extended/xinetd/xinetd_2.3.15.bb77
-rw-r--r--meta/recipes-extended/xz/xz_5.2.5.bb (renamed from meta/recipes-extended/xz/xz_5.2.4.bb)4
-rw-r--r--meta/recipes-gnome/epiphany/epiphany_3.36.4.bb (renamed from meta/recipes-gnome/epiphany/epiphany_3.34.4.bb)5
-rw-r--r--meta/recipes-gnome/gcr/gcr/0001-meson-Make-sure-gcr-oids.h-is-built.patch36
-rw-r--r--meta/recipes-gnome/gcr/gcr/0001-meson.build-correctly-set-internal-vapi-dependencies.patch45
-rw-r--r--meta/recipes-gnome/gcr/gcr_3.36.0.bb (renamed from meta/recipes-gnome/gcr/gcr_3.34.0.bb)17
-rw-r--r--meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.40.0.bb15
-rw-r--r--meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch6
-rw-r--r--meta/recipes-gnome/gnome/adwaita-icon-theme_3.36.1.bb (renamed from meta/recipes-gnome/gnome/adwaita-icon-theme_3.34.3.bb)8
-rw-r--r--meta/recipes-gnome/gnome/gconf/python3.patch60
-rw-r--r--meta/recipes-gnome/gnome/gconf_3.2.6.bb3
-rw-r--r--meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Fix-build-reproducibility.patch50
-rw-r--r--meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Port-cross-compilation-support-to-meson.patch163
-rw-r--r--meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch8
-rw-r--r--meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-gir-add-a-dependency-for-g-ir-compiler-for-building-.patch33
-rw-r--r--meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-a-lib-dirs-envvar-option.patch70
-rw-r--r--meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-meson.build-disable-tests-when-cross-compiling.patch26
-rw-r--r--meta/recipes-gnome/gobject-introspection/gobject-introspection/0003-giscanner-add-use-binary-wrapper-option.patch49
-rw-r--r--meta/recipes-gnome/gobject-introspection/gobject-introspection/0004-giscanner-add-a-use-ldd-wrapper-option.patch45
-rw-r--r--meta/recipes-gnome/gobject-introspection/gobject-introspection/0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch39
-rw-r--r--meta/recipes-gnome/gobject-introspection/gobject-introspection_1.64.1.bb (renamed from meta/recipes-gnome/gobject-introspection/gobject-introspection_1.62.0.bb)29
-rw-r--r--meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.36.1.bb (renamed from meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.34.0.bb)4
-rw-r--r--meta/recipes-gnome/gtk+/gtk+3.inc14
-rw-r--r--meta/recipes-gnome/gtk+/gtk+3/sort-resources.patch19
-rw-r--r--meta/recipes-gnome/gtk+/gtk+3_3.24.22.bb (renamed from meta/recipes-gnome/gtk+/gtk+3_3.24.13.bb)6
-rw-r--r--meta/recipes-gnome/gtk-doc/gtk-doc_1.32.bb12
-rw-r--r--meta/recipes-gnome/json-glib/json-glib/0001-scanner-use-macro-instead-of-cast-to-convert-pointer.patch33
-rw-r--r--meta/recipes-gnome/json-glib/json-glib_1.4.4.bb6
-rw-r--r--meta/recipes-gnome/libdazzle/libdazzle_3.36.0.bb (renamed from meta/recipes-gnome/libdazzle/libdazzle_3.34.1.bb)4
-rw-r--r--meta/recipes-gnome/libhandy/libhandy_git.bb21
-rw-r--r--meta/recipes-gnome/libnotify/libnotify_0.7.9.bb (renamed from meta/recipes-gnome/libnotify/libnotify_0.7.8.bb)10
-rw-r--r--meta/recipes-gnome/librsvg/librsvg_2.40.21.bb (renamed from meta/recipes-gnome/librsvg/librsvg_2.40.20.bb)5
-rw-r--r--meta/recipes-gnome/libsecret/files/0001-meson-add-option-introspection.patch137
-rw-r--r--meta/recipes-gnome/libsecret/libsecret_0.20.3.bb (renamed from meta/recipes-gnome/libsecret/libsecret_0.20.1.bb)17
-rw-r--r--meta/recipes-graphics/cairo/cairo_1.16.0.bb10
-rw-r--r--meta/recipes-graphics/clutter/clutter-1.0.inc6
-rw-r--r--meta/recipes-graphics/clutter/clutter-1.0/run-installed-tests-with-tap-output.patch16
-rw-r--r--meta/recipes-graphics/clutter/clutter-1.0_1.26.4.bb (renamed from meta/recipes-graphics/clutter/clutter-1.0_1.26.2.bb)4
-rw-r--r--meta/recipes-graphics/cogl/cogl-1.0.inc4
-rw-r--r--meta/recipes-graphics/cogl/cogl-1.0/0001-configure.ac-don-t-require-eglmesaext.h.patch92
-rw-r--r--meta/recipes-graphics/cogl/cogl-1.0_1.22.4.bb6
-rw-r--r--meta/recipes-graphics/cogl/cogl-1.0_1.22.8.bb6
-rw-r--r--meta/recipes-graphics/drm/files/0001-xf86drm.c-fix-build-failure.patch87
-rw-r--r--meta/recipes-graphics/drm/libdrm/musl-ioctl.patch35
-rw-r--r--meta/recipes-graphics/drm/libdrm_2.4.102.bb (renamed from meta/recipes-graphics/drm/libdrm_2.4.100.bb)8
-rw-r--r--meta/recipes-graphics/freetype/freetype_2.10.2.bb (renamed from meta/recipes-graphics/freetype/freetype_2.10.1.bb)6
-rw-r--r--meta/recipes-graphics/glew/glew/0001-Fixed-compilation-with-current-mesa-versions.patch73
-rw-r--r--meta/recipes-graphics/glew/glew_2.2.0.bb (renamed from meta/recipes-graphics/glew/glew_2.1.0.bb)11
-rw-r--r--meta/recipes-graphics/harfbuzz/harfbuzz/0001-Do-not-disable-introspection-in-cross-builds.patch27
-rw-r--r--meta/recipes-graphics/harfbuzz/harfbuzz/0001-src-hb-gobject-enums.cc.tmpl-write-out-only-the-file.patch28
-rw-r--r--meta/recipes-graphics/harfbuzz/harfbuzz/version-race.patch121
-rw-r--r--meta/recipes-graphics/harfbuzz/harfbuzz_2.6.4.bb41
-rw-r--r--meta/recipes-graphics/harfbuzz/harfbuzz_2.7.2.bb52
-rw-r--r--meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb49
-rw-r--r--meta/recipes-graphics/images/core-image-weston.bb2
-rw-r--r--meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.5.bb (renamed from meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.4.bb)8
-rw-r--r--meta/recipes-graphics/kmscube/kmscube/detect-gst_bo_map-_unmap-and-use-it-or-avoid-it.patch117
-rw-r--r--meta/recipes-graphics/kmscube/kmscube_git.bb5
-rw-r--r--meta/recipes-graphics/libepoxy/libepoxy_1.5.4.bb10
-rw-r--r--meta/recipes-graphics/libsdl2/libsdl2/0001-Fixed-bug-4538-validate-image-size-when-loading-BMP-.patch34
-rw-r--r--meta/recipes-graphics/libsdl2/libsdl2/0001-configure-check-for-build-dir-when-building-version-.patch53
-rw-r--r--meta/recipes-graphics/libsdl2/libsdl2/0002-Fixed-bug-4797-SDL-fails-to-compile-with-Mesa-Master.patch41
-rw-r--r--meta/recipes-graphics/libsdl2/libsdl2_2.0.12.bb (renamed from meta/recipes-graphics/libsdl2/libsdl2_2.0.10.bb)19
-rw-r--r--meta/recipes-graphics/libva/libva-initial_2.8.0.bb8
-rw-r--r--meta/recipes-graphics/libva/libva-utils_2.8.0.bb (renamed from meta/recipes-graphics/libva/libva-utils_2.6.0.bb)6
-rw-r--r--meta/recipes-graphics/libva/libva.inc27
-rw-r--r--meta/recipes-graphics/libva/libva_2.6.1.bb43
-rw-r--r--meta/recipes-graphics/libva/libva_2.8.0.bb23
-rw-r--r--meta/recipes-graphics/matchbox-wm/matchbox-wm/0001-Fix-build-with-gcc-10.patch41
-rw-r--r--meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.2.bb3
-rw-r--r--meta/recipes-graphics/menu-cache/files/0001-Support-gcc10-compilation.patch111
-rw-r--r--meta/recipes-graphics/menu-cache/menu-cache_1.1.0.bb6
-rw-r--r--meta/recipes-graphics/mesa/files/0001-futex.h-Define-__NR_futex-if-it-does-not-exist.patch31
-rw-r--r--meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch16
-rw-r--r--meta/recipes-graphics/mesa/files/0005-vc4-use-intmax_t-for-formatted-output-of-timespec-me.patch16
-rw-r--r--meta/recipes-graphics/mesa/mesa-gl_19.3.4.bb10
-rw-r--r--meta/recipes-graphics/mesa/mesa-gl_20.1.8.bb15
-rw-r--r--meta/recipes-graphics/mesa/mesa.inc47
-rw-r--r--meta/recipes-graphics/mesa/mesa_19.3.4.bb25
-rw-r--r--meta/recipes-graphics/mesa/mesa_20.1.8.bb2
-rw-r--r--meta/recipes-graphics/pango/pango/0001-Fix-build-reproducibility.patch31
-rw-r--r--meta/recipes-graphics/pango/pango_1.46.2.bb (renamed from meta/recipes-graphics/pango/pango_1.44.7.bb)6
-rw-r--r--meta/recipes-graphics/piglit/piglit_git.bb2
-rw-r--r--meta/recipes-graphics/startup-notification/startup-notification-0.12/time_t.patch108
-rw-r--r--meta/recipes-graphics/startup-notification/startup-notification_0.12.bb1
-rw-r--r--meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb2
-rw-r--r--meta/recipes-graphics/virglrenderer/virglrenderer_0.8.2.bb4
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-demos/0001-Don-t-build-demos-with-questionably-licensed-data.patch13
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-demos_git.bb8
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-headers_1.2.135.0.bb (renamed from meta/recipes-graphics/vulkan/vulkan-headers_1.1.126.0.bb)5
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-loader_1.2.135.0.bb (renamed from meta/recipes-graphics/vulkan/vulkan-loader_1.1.126.0.bb)4
-rw-r--r--meta/recipes-graphics/vulkan/vulkan-tools_1.2.135.0.bb (renamed from meta/recipes-graphics/vulkan/vulkan-tools_1.1.126.0.bb)4
-rw-r--r--meta/recipes-graphics/waffle/waffle_1.6.1.bb (renamed from meta/recipes-graphics/waffle/waffle_1.6.0.bb)4
-rw-r--r--meta/recipes-graphics/wayland/libinput/0001-adjust-for-64bit-time_t-for-32bit-architectures.patch386
-rw-r--r--meta/recipes-graphics/wayland/libinput/run-ptest9
-rw-r--r--meta/recipes-graphics/wayland/libinput_1.16.1.bb (renamed from meta/recipes-graphics/wayland/libinput_1.14.3.bb)23
-rw-r--r--meta/recipes-graphics/wayland/wayland-protocols_1.20.bb (renamed from meta/recipes-graphics/wayland/wayland-protocols_1.18.bb)4
-rw-r--r--meta/recipes-graphics/wayland/wayland/0001-build-Fix-strndup-detection-on-MinGW.patch7
-rw-r--r--meta/recipes-graphics/wayland/wayland/run-ptest17
-rw-r--r--meta/recipes-graphics/wayland/wayland_1.18.0.bb14
-rw-r--r--meta/recipes-graphics/wayland/weston-init.bb21
-rw-r--r--meta/recipes-graphics/wayland/weston-init/qemuall/weston.ini2
-rw-r--r--meta/recipes-graphics/wayland/weston-init/qemux86/weston.ini0
-rw-r--r--meta/recipes-graphics/wayland/weston-init/weston-autologin11
-rw-r--r--meta/recipes-graphics/wayland/weston-init/weston.env (renamed from meta/recipes-graphics/wayland/weston-init/qemux86-64/weston.ini)0
-rw-r--r--meta/recipes-graphics/wayland/weston-init/weston.ini7
-rw-r--r--meta/recipes-graphics/wayland/weston-init/weston@.service70
-rw-r--r--meta/recipes-graphics/wayland/weston-init/weston@.socket10
-rw-r--r--meta/recipes-graphics/wayland/weston/0001-tests-include-fcntl.h-for-open-O_RDWR-O_CLOEXEC-and-.patch47
-rw-r--r--meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch27
-rw-r--r--meta/recipes-graphics/wayland/weston/dont-use-plane-add-prop.patch23
-rw-r--r--meta/recipes-graphics/wayland/weston_9.0.0.bb (renamed from meta/recipes-graphics/wayland/weston_8.0.0.bb)31
-rw-r--r--meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb4
-rw-r--r--meta/recipes-graphics/xorg-app/xev/diet-x11.patch35
-rw-r--r--meta/recipes-graphics/xorg-app/xev_1.2.4.bb (renamed from meta/recipes-graphics/xorg-app/xev_1.2.3.bb)3
-rw-r--r--meta/recipes-graphics/xorg-app/xinit/0001-Make-manpage-multilib-identical.patch28
-rw-r--r--meta/recipes-graphics/xorg-app/xinit_1.4.1.bb5
-rw-r--r--meta/recipes-graphics/xorg-app/xkbcomp_1.4.3.bb (renamed from meta/recipes-graphics/xorg-app/xkbcomp_1.4.2.bb)4
-rw-r--r--meta/recipes-graphics/xorg-app/xorg-app-common.inc2
-rw-r--r--meta/recipes-graphics/xorg-app/xrandr_1.5.1.bb2
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.30.0.bb (renamed from meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.29.0.bb)4
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-Sync-i915_pciids-upto-8717c6b7414f.patch505
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-i810-Avoid-duplicate-definition-of-I810PatternROP.patch27
-rw-r--r--meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb5
-rw-r--r--meta/recipes-graphics/xorg-driver/xorg-driver-common.inc1
-rw-r--r--meta/recipes-graphics/xorg-font/encodings_1.0.5.bb6
-rw-r--r--meta/recipes-graphics/xorg-font/font-alias-1.0.4/nocompiler.patch (renamed from meta/recipes-graphics/xorg-font/font-alias-1.0.3/nocompiler.patch)24
-rw-r--r--meta/recipes-graphics/xorg-font/font-alias_1.0.4.bb (renamed from meta/recipes-graphics/xorg-font/font-alias_1.0.3.bb)11
-rw-r--r--meta/recipes-graphics/xorg-font/xorg-font-common.inc2
-rw-r--r--meta/recipes-graphics/xorg-lib/libx11_1.6.12.bb (renamed from meta/recipes-graphics/xorg-lib/libx11_1.6.9.bb)3
-rw-r--r--meta/recipes-graphics/xorg-lib/libxcb/xcbincludedir.patch28
-rw-r--r--meta/recipes-graphics/xorg-lib/libxcb_1.14.bb (renamed from meta/recipes-graphics/xorg-lib/libxcb_1.13.1.bb)6
-rw-r--r--meta/recipes-graphics/xorg-lib/libxt_1.2.0.bb4
-rw-r--r--meta/recipes-graphics/xorg-lib/libxxf86vm_1.1.4.bb2
-rw-r--r--meta/recipes-graphics/xorg-lib/pixman/0001-test-utils-Check-for-FE_INVALID-definition-before-us.patch33
-rw-r--r--meta/recipes-graphics/xorg-lib/pixman_0.40.0.bb (renamed from meta/recipes-graphics/xorg-lib/pixman_0.38.4.bb)5
-rw-r--r--meta/recipes-graphics/xorg-lib/xkeyboard-config_2.30.bb (renamed from meta/recipes-graphics/xorg-lib/xkeyboard-config_2.28.bb)3
-rw-r--r--meta/recipes-graphics/xorg-proto/xcb-proto_1.14.bb (renamed from meta/recipes-graphics/xorg-proto/xcb-proto_1.13.bb)5
-rw-r--r--meta/recipes-graphics/xorg-proto/xorgproto/legacy.patch97
-rw-r--r--meta/recipes-graphics/xorg-proto/xorgproto_2020.1.bb (renamed from meta/recipes-graphics/xorg-proto/xorgproto_2019.2.bb)9
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xorg.inc2
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-Avoid-duplicate-definitions-of-IOPortBase.patch45
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch34
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.9.bb (renamed from meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.7.bb)7
-rw-r--r--meta/recipes-kernel/blktrace/blktrace/make-btt-scripts-python3-ready.patch197
-rw-r--r--meta/recipes-kernel/blktrace/blktrace_git.bb1
-rw-r--r--meta/recipes-kernel/cryptodev/cryptodev-linux_1.11.bb (renamed from meta/recipes-kernel/cryptodev/cryptodev-linux_1.10.bb)0
-rw-r--r--meta/recipes-kernel/cryptodev/cryptodev-module_1.11.bb (renamed from meta/recipes-kernel/cryptodev/cryptodev-module_1.10.bb)5
-rw-r--r--meta/recipes-kernel/cryptodev/cryptodev-tests_1.11.bb (renamed from meta/recipes-kernel/cryptodev/cryptodev-tests_1.10.bb)0
-rw-r--r--meta/recipes-kernel/cryptodev/cryptodev.inc2
-rw-r--r--meta/recipes-kernel/dtc/dtc_1.6.0.bb (renamed from meta/recipes-kernel/dtc/dtc_1.5.1.bb)2
-rw-r--r--meta/recipes-kernel/kern-tools/kern-tools-native_git.bb2
-rw-r--r--meta/recipes-kernel/kexec/kexec-tools/0001-kexec-Fix-build-with-fno-common.patch78
-rw-r--r--meta/recipes-kernel/kexec/kexec-tools_2.0.20.bb1
-rw-r--r--meta/recipes-kernel/kmod/kmod.inc10
-rw-r--r--meta/recipes-kernel/kmod/kmod/0001-build-Stop-using-dolt.patch28
-rw-r--r--meta/recipes-kernel/kmod/kmod_git.bb2
-rw-r--r--meta/recipes-kernel/linux-firmware/linux-firmware_20200817.bb (renamed from meta/recipes-kernel/linux-firmware/linux-firmware_20200117.bb)90
-rw-r--r--meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc20
-rw-r--r--meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-if_ether-move-muslc-ethhdr-protection-to-uapi-file.patch31
-rw-r--r--meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-include-linux-stddef.h-in-swab.h-uapi-header.patch10
-rw-r--r--meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-libc-compat.h-prevent-redefinition-of-struct-ethhdr.patch30
-rw-r--r--meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.8.bb (renamed from meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.4.bb)8
-rw-r--r--meta/recipes-kernel/linux/kernel-devsrc.bb26
-rw-r--r--meta/recipes-kernel/linux/linux-yocto-dev.bb6
-rw-r--r--meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb8
-rw-r--r--meta/recipes-kernel/linux/linux-yocto-rt_5.8.bb (renamed from meta/recipes-kernel/linux/linux-yocto-rt_5.2.bb)14
-rw-r--r--meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb8
-rw-r--r--meta/recipes-kernel/linux/linux-yocto-tiny_5.8.bb (renamed from meta/recipes-kernel/linux/linux-yocto-tiny_5.2.bb)16
-rw-r--r--meta/recipes-kernel/linux/linux-yocto.inc2
-rw-r--r--meta/recipes-kernel/linux/linux-yocto_5.2.bb54
-rw-r--r--meta/recipes-kernel/linux/linux-yocto_5.4.bb28
-rw-r--r--meta/recipes-kernel/linux/linux-yocto_5.8.bb55
-rw-r--r--meta/recipes-kernel/lttng/babeltrace2/0001-Make-manpages-multilib-identical.patch28
-rw-r--r--meta/recipes-kernel/lttng/babeltrace2/0001-tests-do-not-run-test-applications-from-.libs.patch28
-rwxr-xr-xmeta/recipes-kernel/lttng/babeltrace2/run-ptest9
-rw-r--r--meta/recipes-kernel/lttng/babeltrace2_2.0.3.bb93
-rw-r--r--meta/recipes-kernel/lttng/babeltrace_1.5.8.bb4
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0001-Kconfig-fix-dependency-issue-when-building-in-tree-w.patch54
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0002-fix-Move-mmutrace.h-into-the-mmu-sub-directory-v5.9.patch41
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0003-fix-KVM-x86-mmu-Make-kvm_mmu_page-definition-and-acc.patch39
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0004-fix-ext4-limit-the-length-of-per-inode-prealloc-list.patch84
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0005-fix-ext4-indicate-via-a-block-bitmap-read-is-prefetc.patch63
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0006-fix-removal-of-smp_-read_barrier_depends-v5.9.patch391
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0007-fix-writeback-Drop-I_DIRTY_TIME_EXPIRE-v5.9.patch59
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0008-fix-writeback-Fix-sync-livelock-due-to-b_dirty_time-.patch117
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0009-fix-version-ranges-for-ext4_discard_preallocations-a.patch52
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0010-Fix-system-call-filter-table.patch918
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules_2.12.2.bb (renamed from meta/recipes-kernel/lttng/lttng-modules_2.11.1.bb)21
-rw-r--r--meta/recipes-kernel/lttng/lttng-platforms.inc17
-rw-r--r--meta/recipes-kernel/lttng/lttng-tools/0001-tests-regression-disable-the-tools-live-tests.patch15
-rw-r--r--meta/recipes-kernel/lttng/lttng-tools/x32.patch36
-rw-r--r--meta/recipes-kernel/lttng/lttng-tools_2.12.2.bb (renamed from meta/recipes-kernel/lttng/lttng-tools_2.11.2.bb)20
-rw-r--r--meta/recipes-kernel/lttng/lttng-ust_2.12.0.bb (renamed from meta/recipes-kernel/lttng/lttng-ust_2.11.0.bb)6
-rw-r--r--meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb11
-rw-r--r--meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb2
-rw-r--r--meta/recipes-kernel/perf/perf.bb9
-rw-r--r--meta/recipes-kernel/powertop/powertop_2.13.bb (renamed from meta/recipes-kernel/powertop/powertop_2.10.bb)18
-rw-r--r--meta/recipes-kernel/systemtap/systemtap_git.inc4
-rw-r--r--meta/recipes-kernel/wireless-regdb/wireless-regdb_2020.04.29.bb (renamed from meta/recipes-kernel/wireless-regdb/wireless-regdb_2019.06.03.bb)3
-rw-r--r--meta/recipes-multimedia/alsa/alsa-lib/0001-Fix-alsa-sound-.h-for-external-programs.patch7104
-rw-r--r--meta/recipes-multimedia/alsa/alsa-lib/0001-configure.ac-remove-an-unnecessary-libtool-fix.patch50
-rw-r--r--meta/recipes-multimedia/alsa/alsa-lib/0001-uapi-Move-typedefs-from-uapi-to-sound.patch137
-rw-r--r--meta/recipes-multimedia/alsa/alsa-lib/0001-ucm-Use-strncmp-to-avoid-access-out-of-boundary.patch41
-rw-r--r--meta/recipes-multimedia/alsa/alsa-lib/0002-ucm-return-always-at-least-NULL-if-no-list-is-availa.patch45
-rw-r--r--meta/recipes-multimedia/alsa/alsa-lib/0003-namehint-correct-the-args-check.patch34
-rw-r--r--meta/recipes-multimedia/alsa/alsa-lib/0004-namehint-improve-the-previous-patch-check-the-return.patch31
-rw-r--r--meta/recipes-multimedia/alsa/alsa-lib/0005-ucm-Do-not-fail-to-parse-configs-on-cards-with-an-em.patch86
-rw-r--r--meta/recipes-multimedia/alsa/alsa-lib_1.2.3.2.bb (renamed from meta/recipes-multimedia/alsa/alsa-lib_1.2.1.2.bb)14
-rw-r--r--meta/recipes-multimedia/alsa/alsa-plugins_1.2.2.bb (renamed from meta/recipes-multimedia/alsa/alsa-plugins_1.2.1.bb)23
-rw-r--r--meta/recipes-multimedia/alsa/alsa-tools_1.2.2.bb (renamed from meta/recipes-multimedia/alsa/alsa-tools_1.1.7.bb)4
-rw-r--r--meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.3.bb (renamed from meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.1.bb)11
-rw-r--r--meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.1.2.bb23
-rw-r--r--meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.3.bb20
-rw-r--r--meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.3.bb (renamed from meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.1.bb)2
-rw-r--r--meta/recipes-multimedia/alsa/alsa-utils.inc (renamed from meta/recipes-multimedia/alsa/alsa-utils_1.2.1.bb)3
-rw-r--r--meta/recipes-multimedia/alsa/alsa-utils_1.2.3.bb2
-rw-r--r--meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.1.bb (renamed from meta/recipes-multimedia/ffmpeg/ffmpeg_4.2.2.bb)5
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-examples_1.16.0.bb1
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-validate_1.16.2.bb (renamed from meta/recipes-multimedia/gstreamer/gst-validate_1.16.1.bb)4
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.2.bb4
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qmlgl-ensure-Qt-defines-GLsync-to-fix-compile-on-som.patch70
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch56
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.2.bb2
-rw-r--r--meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb2
-rw-r--r--meta/recipes-multimedia/libpng/libpng_1.6.37.bb2
-rw-r--r--meta/recipes-multimedia/libtiff/tiff_4.1.0.bb2
-rw-r--r--meta/recipes-multimedia/libvorbis/libvorbis/CVE-2017-14160.patch34
-rw-r--r--meta/recipes-multimedia/libvorbis/libvorbis/CVE-2018-10392.patch34
-rw-r--r--meta/recipes-multimedia/libvorbis/libvorbis_1.3.7.bb (renamed from meta/recipes-multimedia/libvorbis/libvorbis_1.3.6.bb)10
-rw-r--r--meta/recipes-multimedia/mpg123/mpg123/sdl2.patch14
-rw-r--r--meta/recipes-multimedia/mpg123/mpg123_1.26.3.bb (renamed from meta/recipes-multimedia/mpg123/mpg123_1.25.13.bb)8
-rw-r--r--meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap-arm-Adjust-inline-asm-constraints.patch114
-rw-r--r--meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap_neon-use-register-r12-instead-of-r7.patch48
-rw-r--r--meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb8
-rw-r--r--meta/recipes-multimedia/x264/x264_git.bb4
-rw-r--r--meta/recipes-rt/rt-tests/rt-tests-1.1/0001-gzip-with-n-for-build-reproducibilty.patch62
-rw-r--r--meta/recipes-rt/rt-tests/rt-tests.inc4
-rw-r--r--meta/recipes-rt/rt-tests/rt-tests_1.1.bb1
-rw-r--r--meta/recipes-sato/images/core-image-sato-ptest-fast.bb3
-rw-r--r--meta/recipes-sato/images/core-image-sato-sdk-ptest.bb3
-rw-r--r--meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.2.bb2
-rw-r--r--meta/recipes-sato/puzzles/puzzles_git.bb2
-rw-r--r--meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc2
-rw-r--r--meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb2
-rw-r--r--meta/recipes-sato/webkit/libwpe_1.7.1.bb (renamed from meta/recipes-sato/webkit/libwpe_1.4.0.1.bb)2
-rw-r--r--meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-with-musl.patch30
-rw-r--r--meta/recipes-sato/webkit/webkitgtk/0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch8
-rw-r--r--meta/recipes-sato/webkit/webkitgtk/0001-clang-11-fix-build-errors-due-to-WWc-11-narrowing.patch66
-rw-r--r--meta/recipes-sato/webkit/webkitgtk/x32_support.patch30
-rw-r--r--meta/recipes-sato/webkit/webkitgtk_2.28.4.bb (renamed from meta/recipes-sato/webkit/webkitgtk_2.26.4.bb)24
-rw-r--r--meta/recipes-sato/webkit/wpebackend-fdo_1.7.1.bb (renamed from meta/recipes-sato/webkit/wpebackend-fdo_1.4.1.bb)6
-rw-r--r--meta/recipes-support/apr/apr-util_1.6.1.bb10
-rw-r--r--meta/recipes-support/apr/apr/0001-Add-option-to-disable-timed-dependant-tests.patch69
-rw-r--r--meta/recipes-support/apr/apr_1.7.0.bb7
-rw-r--r--meta/recipes-support/atk/at-spi2-atk_2.34.2.bb (renamed from meta/recipes-support/atk/at-spi2-atk_2.32.0.bb)12
-rw-r--r--meta/recipes-support/atk/at-spi2-core/0001-Fix-source-reproducibility.patch32
-rw-r--r--meta/recipes-support/atk/at-spi2-core_2.36.1.bb (renamed from meta/recipes-support/atk/at-spi2-core_2.32.1.bb)11
-rw-r--r--meta/recipes-support/atk/atk/0001-meson.build-enable-introspection-for-cross-compile.patch29
-rw-r--r--meta/recipes-support/atk/atk_2.36.0.bb (renamed from meta/recipes-support/atk/atk_2.32.0.bb)5
-rw-r--r--meta/recipes-support/attr/attr.inc1
-rw-r--r--meta/recipes-support/bash-completion/bash-completion_2.11.bb (renamed from meta/recipes-support/bash-completion/bash-completion_2.10.bb)4
-rw-r--r--meta/recipes-support/bmap-tools/bmap-tools_3.5.bb4
-rw-r--r--meta/recipes-support/boost/bjam-native_1.72.0.bb20
-rw-r--r--meta/recipes-support/boost/boost-1.74.0.inc (renamed from meta/recipes-support/boost/boost-1.72.0.inc)3
-rw-r--r--meta/recipes-support/boost/boost-build-native_4.3.0.bb25
-rw-r--r--meta/recipes-support/boost/boost.inc53
-rw-r--r--meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch23
-rw-r--r--meta/recipes-support/boost/boost/0001-fiber-libs-Define-SYS_futex-if-it-does-not-exist.patch54
-rw-r--r--meta/recipes-support/boost/boost_1.74.0.bb (renamed from meta/recipes-support/boost/boost_1.72.0.bb)1
-rw-r--r--meta/recipes-support/boost/files/0001-Build-debug-version-of-bjam.patch38
-rw-r--r--meta/recipes-support/boost/files/0001-build.sh-use-DNDEBUG-also-in-debug-builds.patch27
-rw-r--r--meta/recipes-support/ca-certificates/ca-certificates_20200601.bb (renamed from meta/recipes-support/ca-certificates/ca-certificates_20190110.bb)5
-rw-r--r--meta/recipes-support/curl/curl_7.72.0.bb (renamed from meta/recipes-support/curl/curl_7.68.0.bb)17
-rw-r--r--meta/recipes-support/db/db_5.3.28.bb5
-rw-r--r--meta/recipes-support/debianutils/debianutils_4.11.1.bb (renamed from meta/recipes-support/debianutils/debianutils_4.9.1.bb)23
-rw-r--r--meta/recipes-support/diffoscope/diffoscope_160.bb (renamed from meta/recipes-support/diffoscope/diffoscope_136.bb)3
-rw-r--r--meta/recipes-support/enchant/enchant2_2.2.9.bb (renamed from meta/recipes-support/enchant/enchant2_2.2.7.bb)3
-rw-r--r--meta/recipes-support/fribidi/fribidi_1.0.10.bb (renamed from meta/recipes-support/fribidi/fribidi_1.0.8.bb)8
-rw-r--r--meta/recipes-support/gdbm/files/gdbm-fix-link-failure-against-gcc-10.patch47
-rw-r--r--meta/recipes-support/gdbm/gdbm_1.18.1.bb5
-rw-r--r--meta/recipes-support/gnupg/gnupg/0001-configure.ac-use-a-custom-value-for-the-location-of-.patch6
-rw-r--r--meta/recipes-support/gnupg/gnupg/0003-dirmngr-uses-libgpg-error.patch16
-rw-r--r--meta/recipes-support/gnupg/gnupg/relocate.patch20
-rw-r--r--meta/recipes-support/gnupg/gnupg_2.2.23.bb (renamed from meta/recipes-support/gnupg/gnupg_2.2.19.bb)3
-rw-r--r--meta/recipes-support/gnutls/gnutls/0001-Modied-the-license-to-GPLv2.1-to-keep-with-LICENSE-f.patch90
-rw-r--r--meta/recipes-support/gnutls/gnutls/CVE-2020-24659.patch117
-rw-r--r--meta/recipes-support/gnutls/gnutls_3.6.14.bb (renamed from meta/recipes-support/gnutls/gnutls_3.6.11.1.bb)5
-rw-r--r--meta/recipes-support/gnutls/libtasn1_4.16.0.bb2
-rw-r--r--meta/recipes-support/gpgme/gpgme/0008-do-not-auto-check-var-PYTHON.patch12
-rw-r--r--meta/recipes-support/gpgme/gpgme_1.14.0.bb (renamed from meta/recipes-support/gpgme/gpgme_1.13.1.bb)9
-rw-r--r--meta/recipes-support/icu/icu/0001-Fix-big-endian-build.patch28
-rw-r--r--meta/recipes-support/icu/icu/0001-icu-Added-armeb-support.patch6
-rw-r--r--meta/recipes-support/icu/icu/filter.json2
-rw-r--r--meta/recipes-support/icu/icu/icu-pkgdata-large-cmd.patch49
-rw-r--r--meta/recipes-support/icu/icu_65.1.bb35
-rw-r--r--meta/recipes-support/icu/icu_67.1.bb (renamed from meta/recipes-support/icu/icu.inc)66
-rw-r--r--meta/recipes-support/iso-codes/iso-codes_4.5.0.bb (renamed from meta/recipes-support/iso-codes/iso-codes_4.4.bb)4
-rw-r--r--meta/recipes-support/libcap-ng/libcap-ng-python_0.7.11.bb (renamed from meta/recipes-support/libcap-ng/libcap-ng-python_0.7.10.bb)0
-rw-r--r--meta/recipes-support/libcap-ng/libcap-ng.inc6
-rw-r--r--meta/recipes-support/libcap-ng/libcap-ng/0001-configure.ac-add-library-if-header-found.patch31
-rw-r--r--meta/recipes-support/libcap-ng/libcap-ng/0002-Wrap-pthread_atfork-usage-in-HAVE_PTHREAD_H.patch25
-rw-r--r--meta/recipes-support/libcap-ng/libcap-ng/python.patch18
-rw-r--r--meta/recipes-support/libcap-ng/libcap-ng_0.7.11.bb (renamed from meta/recipes-support/libcap-ng/libcap-ng_0.7.10.bb)0
-rw-r--r--meta/recipes-support/libcap/files/0001-tests-do-not-statically-link-a-test.patch32
-rw-r--r--meta/recipes-support/libcap/files/0002-tests-do-not-run-target-executables.patch15
-rw-r--r--meta/recipes-support/libcap/libcap_2.43.bb (renamed from meta/recipes-support/libcap/libcap_2.31.bb)5
-rw-r--r--meta/recipes-support/libcheck/libcheck_0.15.2.bb (renamed from meta/recipes-support/libcheck/libcheck_0.14.0.bb)3
-rw-r--r--meta/recipes-support/libevdev/libevdev/determinism.patch53
-rw-r--r--meta/recipes-support/libevdev/libevdev_1.9.1.bb (renamed from meta/recipes-support/libevdev/libevdev_1.8.0.bb)6
-rw-r--r--meta/recipes-support/libevent/libevent_2.1.12.bb (renamed from meta/recipes-support/libevent/libevent_2.1.11.bb)3
-rw-r--r--meta/recipes-support/libexif/libexif/CVE-2016-6328.patch64
-rw-r--r--meta/recipes-support/libexif/libexif/CVE-2017-7544.patch40
-rw-r--r--meta/recipes-support/libexif/libexif/CVE-2018-20030.patch115
-rw-r--r--meta/recipes-support/libexif/libexif_0.6.21.bb17
-rw-r--r--meta/recipes-support/libexif/libexif_0.6.22.bb21
-rw-r--r--meta/recipes-support/libffi/libffi/0001-ffi_powerpc.h-fix-build-failure-with-powerpc7.patch62
-rw-r--r--meta/recipes-support/libffi/libffi_3.3.bb3
-rw-r--r--meta/recipes-support/libgcrypt/libgcrypt_1.8.6.bb (renamed from meta/recipes-support/libgcrypt/libgcrypt_1.8.5.bb)3
-rw-r--r--meta/recipes-support/libgpg-error/libgpg-error/0001-Do-not-fail-when-testing-config-scripts.patch27
-rw-r--r--meta/recipes-support/libgpg-error/libgpg-error/libgpg-error-1.36-gawk5-support.patch144
-rw-r--r--meta/recipes-support/libgpg-error/libgpg-error_1.36.bb72
-rw-r--r--meta/recipes-support/libgpg-error/libgpg-error_1.39.bb40
-rw-r--r--meta/recipes-support/libical/libical_3.0.8.bb (renamed from meta/recipes-support/libical/libical_3.0.7.bb)4
-rw-r--r--meta/recipes-support/libjitterentropy/files/0001-Make-man-pages-reproducible.patch2
-rw-r--r--meta/recipes-support/libjitterentropy/files/0001-Makefile-cleanup-install-for-rebuilds.patch2
-rw-r--r--meta/recipes-support/libksba/libksba/ksba-add-pkgconfig-support.patch130
-rw-r--r--meta/recipes-support/libksba/libksba_1.4.0.bb (renamed from meta/recipes-support/libksba/libksba_1.3.5.bb)3
-rw-r--r--meta/recipes-support/libmpc/libmpc_1.2.0.bb (renamed from meta/recipes-support/libmpc/libmpc_1.1.0.bb)3
-rw-r--r--meta/recipes-support/libnl/libnl_3.5.0.bb2
-rw-r--r--meta/recipes-support/libpcre/libpcre/out-of-tree.patch26
-rw-r--r--meta/recipes-support/libpcre/libpcre2/pcre-cross.patch65
-rw-r--r--meta/recipes-support/libpcre/libpcre2_10.35.bb (renamed from meta/recipes-support/libpcre/libpcre2_10.34.bb)15
-rw-r--r--meta/recipes-support/libpcre/libpcre_8.44.bb (renamed from meta/recipes-support/libpcre/libpcre_8.43.bb)9
-rw-r--r--meta/recipes-support/libproxy/libproxy/CVE-2020-25219.patch61
-rw-r--r--meta/recipes-support/libproxy/libproxy_0.4.15.bb1
-rw-r--r--meta/recipes-support/libpsl/libpsl/0001-Makefile.am-use-PYTHON-when-invoking-psl-make-dafsa.patch50
-rw-r--r--meta/recipes-support/libpsl/libpsl/0001-gtk-doc-do-not-include-tree_index.sgml.patch28
-rw-r--r--meta/recipes-support/libpsl/libpsl_0.21.1.bb (renamed from meta/recipes-support/libpsl/libpsl_0.21.0.bb)7
-rw-r--r--meta/recipes-support/libsoup/libsoup-2.4_2.70.0.bb (renamed from meta/recipes-support/libsoup/libsoup-2.4_2.68.3.bb)6
-rw-r--r--meta/recipes-support/libunwind/libunwind/0001-Fix-compilation-with-fno-common.patch448
-rw-r--r--meta/recipes-support/libunwind/libunwind/musl-header-conflict.patch27
-rw-r--r--meta/recipes-support/libunwind/libunwind/sigset_t.patch28
-rw-r--r--meta/recipes-support/libunwind/libunwind_1.4.0.bb (renamed from meta/recipes-support/libunwind/libunwind_1.3.1.bb)6
-rw-r--r--meta/recipes-support/liburcu/liburcu_0.12.1.bb (renamed from meta/recipes-support/liburcu/liburcu_0.11.1.bb)4
-rw-r--r--meta/recipes-support/libusb/libusb1/no-dll.patch19
-rw-r--r--meta/recipes-support/libusb/libusb1_1.0.23.bb (renamed from meta/recipes-support/libusb/libusb1_1.0.22.bb)5
-rw-r--r--meta/recipes-support/libyaml/libyaml_0.2.5.bb (renamed from meta/recipes-support/libyaml/libyaml_0.2.2.bb)6
-rw-r--r--meta/recipes-support/lz4/lz4_1.9.2.bb2
-rw-r--r--meta/recipes-support/mpfr/mpfr_4.1.0.bb (renamed from meta/recipes-support/mpfr/mpfr_4.0.2.bb)3
-rw-r--r--meta/recipes-support/nettle/nettle-3.6/Add-target-to-only-build-tests-not-run-them.patch (renamed from meta/recipes-support/nettle/nettle-3.5.1/Add-target-to-only-build-tests-not-run-them.patch)31
-rw-r--r--meta/recipes-support/nettle/nettle-3.6/check-header-files-of-openssl-only-if-enable_.patch (renamed from meta/recipes-support/nettle/nettle-3.5.1/check-header-files-of-openssl-only-if-enable_.patch)0
-rw-r--r--meta/recipes-support/nettle/nettle-3.6/dlopen-test.patch (renamed from meta/recipes-support/nettle/nettle-3.5.1/dlopen-test.patch)16
-rw-r--r--meta/recipes-support/nettle/nettle-3.6/run-ptest (renamed from meta/recipes-support/nettle/nettle-3.5.1/run-ptest)0
-rw-r--r--meta/recipes-support/nettle/nettle_3.6.bb (renamed from meta/recipes-support/nettle/nettle_3.5.1.bb)5
-rw-r--r--meta/recipes-support/nspr/nspr/0001-md-Fix-build-with-musl.patch31
-rw-r--r--meta/recipes-support/nspr/nspr/0002-Add-nios2-support.patch102
-rw-r--r--meta/recipes-support/nspr/nspr/Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch103
-rw-r--r--meta/recipes-support/nspr/nspr/fix-build-on-x86_64.patch52
-rw-r--r--meta/recipes-support/nspr/nspr/nspr.pc.in11
-rw-r--r--meta/recipes-support/nspr/nspr/remove-rpath-from-tests.patch26
-rw-r--r--meta/recipes-support/nspr/nspr/remove-srcdir-from-configure-in.patch19
-rw-r--r--meta/recipes-support/nspr/nspr_4.25.bb197
-rw-r--r--meta/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch52
-rw-r--r--meta/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch48
-rw-r--r--meta/recipes-support/nss/nss/blank-cert9.dbbin28672 -> 0 bytes
-rw-r--r--meta/recipes-support/nss/nss/blank-key4.dbbin36864 -> 0 bytes
-rw-r--r--meta/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch33
-rw-r--r--meta/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch110
-rw-r--r--meta/recipes-support/nss/nss/nss-fix-nsinstall-build.patch36
-rw-r--r--meta/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch26
-rw-r--r--meta/recipes-support/nss/nss/nss.pc.in11
-rw-r--r--meta/recipes-support/nss/nss/pqg.c-ULL_addend.patch23
-rw-r--r--meta/recipes-support/nss/nss/signlibs.sh20
-rw-r--r--meta/recipes-support/nss/nss/system-pkcs11.txt5
-rw-r--r--meta/recipes-support/nss/nss_3.50.bb273
-rw-r--r--meta/recipes-support/p11-kit/p11-kit_0.23.21.bb (renamed from meta/recipes-support/p11-kit/p11-kit_0.23.20.bb)4
-rw-r--r--meta/recipes-support/pinentry/pinentry_1.1.0.bb1
-rw-r--r--meta/recipes-support/popt/popt/disable_tests.patch21
-rw-r--r--meta/recipes-support/popt/popt/pkgconfig_fix.patch15
-rw-r--r--meta/recipes-support/popt/popt/popt_fix_for_automake-1.12.patch21
-rw-r--r--meta/recipes-support/popt/popt_1.16.bb22
-rw-r--r--meta/recipes-support/popt/popt_1.18.bb15
-rw-r--r--meta/recipes-support/ptest-runner/ptest-runner_2.4.0.bb (renamed from meta/recipes-support/ptest-runner/ptest-runner_2.3.2.bb)5
-rw-r--r--meta/recipes-support/re2c/re2c_1.0.1.bb14
-rw-r--r--meta/recipes-support/re2c/re2c_2.0.3.bb14
-rw-r--r--meta/recipes-support/rng-tools/rng-tools/0001-rngd-fix-debug-to-also-filter-syslog-calls.patch46
-rw-r--r--meta/recipes-support/rng-tools/rng-tools/a4b6d9ce64f132e463b9091d0536913ddaf11516.patch42
-rw-r--r--meta/recipes-support/rng-tools/rng-tools/dab16a5fd4efde8ef569b358e19b1fcbc7d0d938.patch51
-rw-r--r--meta/recipes-support/rng-tools/rng-tools/rngd.service21
-rw-r--r--meta/recipes-support/rng-tools/rng-tools_6.10.bb (renamed from meta/recipes-support/rng-tools/rng-tools_6.9.bb)19
-rw-r--r--meta/recipes-support/serf/serf_1.3.9.bb2
-rw-r--r--meta/recipes-support/shared-mime-info/shared-mime-info_git.bb27
-rw-r--r--meta/recipes-support/sqlite/sqlite3_3.33.0.bb (renamed from meta/recipes-support/sqlite/sqlite3_3.31.1.bb)6
-rw-r--r--meta/recipes-support/vim/files/no-path-adjust.patch27
-rw-r--r--meta/recipes-support/vim/vim.inc8
-rw-r--r--meta/recipes-support/vim/vim_8.2.bb5
-rw-r--r--meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch (renamed from meta/recipes-support/vte/vte/0002-Add-W_EXITCODE-macro-for-non-glibc-systems.patch)0
-rw-r--r--meta/recipes-support/vte/vte/0001-app.cc-use-old-school-asignment-to-avoid-gcc-4.8-err.patch27
-rw-r--r--meta/recipes-support/vte/vte_0.60.3.bb (renamed from meta/recipes-support/vte/vte_0.58.3.bb)16
-rw-r--r--meta/site/common7
-rw-r--r--meta/site/common-glibc3
-rw-r--r--meta/site/common-musl5
-rwxr-xr-xscripts/buildall-qemu120
-rwxr-xr-xscripts/buildhistory-collect-srcrevs1
-rwxr-xr-xscripts/buildhistory-diff9
-rwxr-xr-xscripts/contrib/bb-perf/buildstats-plot.sh78
-rwxr-xr-xscripts/contrib/bb-perf/buildstats.sh139
-rwxr-xr-xscripts/contrib/graph-tool100
-rwxr-xr-xscripts/install-buildtools345
-rw-r--r--scripts/lib/checklayer/__init__.py24
-rw-r--r--scripts/lib/devtool/__init__.py9
-rw-r--r--scripts/lib/devtool/deploy.py12
-rw-r--r--scripts/lib/devtool/standard.py3
-rw-r--r--scripts/lib/devtool/upgrade.py12
-rw-r--r--scripts/lib/recipetool/create.py11
-rw-r--r--scripts/lib/recipetool/edit.py2
-rw-r--r--scripts/lib/resulttool/log.py21
-rw-r--r--scripts/lib/resulttool/report.py1
-rw-r--r--scripts/lib/resulttool/resultutils.py22
-rw-r--r--scripts/lib/wic/engine.py12
-rw-r--r--scripts/lib/wic/filemap.py75
-rw-r--r--scripts/lib/wic/help.py29
-rw-r--r--scripts/lib/wic/ksparser.py59
-rw-r--r--scripts/lib/wic/misc.py19
-rw-r--r--scripts/lib/wic/partition.py25
-rw-r--r--scripts/lib/wic/pluginbase.py11
-rw-r--r--scripts/lib/wic/plugins/imager/direct.py21
-rw-r--r--scripts/lib/wic/plugins/source/bootimg-efi.py60
-rw-r--r--scripts/lib/wic/plugins/source/bootimg-partition.py2
-rw-r--r--scripts/lib/wic/plugins/source/rootfs.py133
-rw-r--r--scripts/multilib_header_wrapper.h21
-rwxr-xr-xscripts/oe-build-perf-report8
-rwxr-xr-xscripts/oe-buildenv-internal11
-rwxr-xr-xscripts/oe-publish-sdk8
-rw-r--r--scripts/postinst-intercepts/update_font_cache2
-rw-r--r--scripts/postinst-intercepts/update_udev_hwdb16
-rw-r--r--scripts/pybootchartgui/pybootchartgui/parsing.py6
-rwxr-xr-xscripts/runqemu105
-rwxr-xr-xscripts/runqemu-extract-sdk2
-rwxr-xr-xscripts/tiny/ksize.py12
-rwxr-xr-xscripts/yocto-check-layer15
1610 files changed, 215494 insertions, 47227 deletions
diff --git a/.gitignore b/.gitignore
index d0e6b2fb89..b66d371aac 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,7 @@ pstage/
scripts/oe-git-proxy-socks
sources/
meta-*/
+buildtools/
!meta-skeleton
!meta-selftest
hob-image-*.bb
diff --git a/meta-selftest/conf/layer.conf b/meta-selftest/conf/layer.conf
index 08181a88cc..37570aa833 100644
--- a/meta-selftest/conf/layer.conf
+++ b/meta-selftest/conf/layer.conf
@@ -9,4 +9,4 @@ BBFILE_COLLECTIONS += "selftest"
BBFILE_PATTERN_selftest = "^${LAYERDIR}/"
BBFILE_PRIORITY_selftest = "5"
-LAYERSERIES_COMPAT_selftest = "zeus"
+LAYERSERIES_COMPAT_selftest = "gatesgarth"
diff --git a/meta-selftest/lib/oeqa/runtime/cases/virgl.py b/meta-selftest/lib/oeqa/runtime/cases/virgl.py
index c0abfd1b16..144decdd6b 100644
--- a/meta-selftest/lib/oeqa/runtime/cases/virgl.py
+++ b/meta-selftest/lib/oeqa/runtime/cases/virgl.py
@@ -9,10 +9,10 @@ class VirglTest(OERuntimeTestCase):
def test_kernel_driver(self):
status, output = self.target.run('dmesg|grep virgl')
self.assertEqual(status, 0, "Checking for virgl driver in dmesg returned non-zero: %d\n%s" % (status, output))
- self.assertIn("virgl 3d acceleration enabled", output, "virgl acceleration seems to be disabled:\n%s" %(output))
+ self.assertIn("features: +virgl", output, "virgl acceleration seems to be disabled:\n%s" %(output))
@OETestDepends(['virgl.VirglTest.test_kernel_driver'])
def test_kmscube(self):
- status, output = self.target.run('kmscube', timeout=30)
+ status, output = self.target.run('kmscube')
self.assertEqual(status, 0, "kmscube exited with non-zero status %d and output:\n%s" %(status, output))
self.assertIn('renderer: "virgl"', output, "kmscube does not seem to use virgl:\n%s" %(output))
diff --git a/meta-selftest/recipes-test/devtool/devtool-patch-overrides.bb b/meta-selftest/recipes-test/devtool/devtool-patch-overrides.bb
new file mode 100644
index 0000000000..d36c9edee4
--- /dev/null
+++ b/meta-selftest/recipes-test/devtool/devtool-patch-overrides.bb
@@ -0,0 +1,8 @@
+SUMMARY = "devtool test for overrides and patches"
+LICENSE = "CLOSED"
+INHIBIT_DEFAULT_DEPS = "1"
+EXCLUDE_FROM_WORLD = "1"
+
+SRC_URI = "file://source;subdir=${BP}"
+SRC_URI_append_qemuarm = " file://arm.patch;striplevel=0"
+SRC_URI_append_qemux86 = " file://x86.patch;striplevel=0"
diff --git a/meta-selftest/recipes-test/devtool/devtool-patch-overrides/qemuarm/arm.patch b/meta-selftest/recipes-test/devtool/devtool-patch-overrides/qemuarm/arm.patch
new file mode 100644
index 0000000000..e33a2753f9
--- /dev/null
+++ b/meta-selftest/recipes-test/devtool/devtool-patch-overrides/qemuarm/arm.patch
@@ -0,0 +1,5 @@
+--- source.orig 2020-10-06 13:26:10.792688630 +0100
++++ source 2020-10-06 13:26:18.853424694 +0100
+@@ -1 +1 @@
+-This is a test for something
++This is a test for qemuarm
diff --git a/meta-selftest/recipes-test/devtool/devtool-patch-overrides/qemux86/x86.patch b/meta-selftest/recipes-test/devtool/devtool-patch-overrides/qemux86/x86.patch
new file mode 100644
index 0000000000..1a0a175fa8
--- /dev/null
+++ b/meta-selftest/recipes-test/devtool/devtool-patch-overrides/qemux86/x86.patch
@@ -0,0 +1,5 @@
+--- source.orig 2020-10-06 13:26:10.792688630 +0100
++++ source 2020-10-06 13:26:18.853424694 +0100
+@@ -1 +1 @@
+-This is a test for something
++This is a test for qemux86
diff --git a/meta-selftest/recipes-test/devtool/devtool-patch-overrides/source b/meta-selftest/recipes-test/devtool/devtool-patch-overrides/source
new file mode 100644
index 0000000000..cc14ce627c
--- /dev/null
+++ b/meta-selftest/recipes-test/devtool/devtool-patch-overrides/source
@@ -0,0 +1 @@
+This is a test for something
diff --git a/meta-selftest/recipes-test/devtool/devtool-test-ignored.bb b/meta-selftest/recipes-test/devtool/devtool-test-ignored.bb
new file mode 100644
index 0000000000..6a3d58c884
--- /dev/null
+++ b/meta-selftest/recipes-test/devtool/devtool-test-ignored.bb
@@ -0,0 +1,9 @@
+LICENSE = "CLOSED"
+INHIBIT_DEFAULT_DEPS = "1"
+
+SRC_URI = "file://${BPN}.tar.gz \
+ file://${BPN}.patch"
+
+S = "${WORKDIR}/${BPN}"
+
+EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-selftest/recipes-test/devtool/devtool-test-ignored/devtool-test-ignored.patch b/meta-selftest/recipes-test/devtool/devtool-test-ignored/devtool-test-ignored.patch
new file mode 100644
index 0000000000..96ea0eb4e3
--- /dev/null
+++ b/meta-selftest/recipes-test/devtool/devtool-test-ignored/devtool-test-ignored.patch
@@ -0,0 +1,7 @@
+diff --git a/ignored b/ignored
+index a579759..e3d7b43 100644
+--- a/ignored
++++ b/ignored
+@@ -1 +1 @@
+-I'm so ignored
++# I'm so ignored
diff --git a/meta-selftest/recipes-test/devtool/devtool-test-ignored/devtool-test-ignored.patch.expected b/meta-selftest/recipes-test/devtool/devtool-test-ignored/devtool-test-ignored.patch.expected
new file mode 100644
index 0000000000..68ec6d9875
--- /dev/null
+++ b/meta-selftest/recipes-test/devtool/devtool-test-ignored/devtool-test-ignored.patch.expected
@@ -0,0 +1,16 @@
+From 3a286343cc5cadd83f41d524ee3606ae51df9ee7 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Thu, 28 May 2020 01:32:31 +0200
+Subject: [PATCH] meta-selftest: add test of .gitignore in tarball
+
+---
+ ignored | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ignored b/ignored
+index a579759..e3d7b43 100644
+--- a/ignored
++++ b/ignored
+@@ -1 +1 @@
+-I'm so ignored
++# I'm so ignored
diff --git a/meta-selftest/recipes-test/devtool/devtool-test-ignored/devtool-test-ignored.tar.gz b/meta-selftest/recipes-test/devtool/devtool-test-ignored/devtool-test-ignored.tar.gz
new file mode 100644
index 0000000000..b2e9935eb9
--- /dev/null
+++ b/meta-selftest/recipes-test/devtool/devtool-test-ignored/devtool-test-ignored.tar.gz
Binary files differ
diff --git a/meta-selftest/recipes-test/devtool/devtool-test-long-filename.bb b/meta-selftest/recipes-test/devtool/devtool-test-long-filename.bb
new file mode 100644
index 0000000000..3ec22cae7f
--- /dev/null
+++ b/meta-selftest/recipes-test/devtool/devtool-test-long-filename.bb
@@ -0,0 +1,9 @@
+LICENSE = "CLOSED"
+INHIBIT_DEFAULT_DEPS = "1"
+
+SRC_URI = "file://${BPN}.tar.gz \
+ file://0001-I-ll-patch-you-only-if-devtool-lets-me-to-do-it-corr.patch"
+
+S = "${WORKDIR}/${BPN}"
+
+EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-selftest/recipes-test/devtool/devtool-test-long-filename/0001-I-ll-patch-you-only-if-devtool-lets-me-to-do-it-corr.patch b/meta-selftest/recipes-test/devtool/devtool-test-long-filename/0001-I-ll-patch-you-only-if-devtool-lets-me-to-do-it-corr.patch
new file mode 100644
index 0000000000..6aaf409ebc
--- /dev/null
+++ b/meta-selftest/recipes-test/devtool/devtool-test-long-filename/0001-I-ll-patch-you-only-if-devtool-lets-me-to-do-it-corr.patch
@@ -0,0 +1,7 @@
+diff --git a/patch-me b/patch-me
+index a20b29a..5e35d1b 100644
+--- a/patch-me
++++ b/patch-me
+@@ -1 +1 @@
+-please
++NO
diff --git a/meta-selftest/recipes-test/devtool/devtool-test-long-filename/0001-I-ll-patch-you-only-if-devtool-lets-me-to-do-it-corr.patch.expected b/meta-selftest/recipes-test/devtool/devtool-test-long-filename/0001-I-ll-patch-you-only-if-devtool-lets-me-to-do-it-corr.patch.expected
new file mode 100644
index 0000000000..1bf25a61d0
--- /dev/null
+++ b/meta-selftest/recipes-test/devtool/devtool-test-long-filename/0001-I-ll-patch-you-only-if-devtool-lets-me-to-do-it-corr.patch.expected
@@ -0,0 +1,16 @@
+From 45ba3d107ea60777a6b6e134fd00fe5009749177 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Thu, 28 May 2020 02:03:39 +0200
+Subject: [PATCH] meta-selftest: add test for .patch file with long filename
+
+---
+ patch-me | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/patch-me b/patch-me
+index a20b29a..5e35d1b 100644
+--- a/patch-me
++++ b/patch-me
+@@ -1 +1 @@
+-please
++NO
diff --git a/meta-selftest/recipes-test/devtool/devtool-test-long-filename/devtool-test-long-filename.tar.gz b/meta-selftest/recipes-test/devtool/devtool-test-long-filename/devtool-test-long-filename.tar.gz
new file mode 100644
index 0000000000..ab6242aae7
--- /dev/null
+++ b/meta-selftest/recipes-test/devtool/devtool-test-long-filename/devtool-test-long-filename.tar.gz
Binary files differ
diff --git a/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded b/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded
index 66e45c7e84..d75df0c8c7 100644
--- a/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded
+++ b/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded
@@ -9,7 +9,6 @@ SRC_URI = "http://www.ivarch.com/programs/sources/pv-${PV}.tar.gz \
UPSTREAM_CHECK_URI = "http://www.ivarch.com/programs/pv.shtml"
RECIPE_NO_UPDATE_REASON = "This recipe is used to test devtool upgrade feature"
-SRC_URI[md5sum] = "062bca5ff33df1dd09472e7fc3bbe332"
SRC_URI[sha256sum] = "9dd45391806b0ed215abee4c5ac1597d018c386fe9c1f5afd2f6bc3b07fd82c3"
S = "${WORKDIR}/pv-${PV}"
diff --git a/meta-selftest/recipes-test/git-submodule-test/git-submodule-test.bb b/meta-selftest/recipes-test/git-submodule-test/git-submodule-test.bb
new file mode 100644
index 0000000000..08089b4186
--- /dev/null
+++ b/meta-selftest/recipes-test/git-submodule-test/git-submodule-test.bb
@@ -0,0 +1,8 @@
+SUMMARY = "Test recipe for fetching git submodules"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+INHIBIT_DEFAULT_DEPS = "1"
+
+SRC_URI = "gitsm://git.yoctoproject.org/git-submodule-test"
+SRCREV = "a2885dd7d25380d23627e7544b7bbb55014b16ee"
diff --git a/meta-selftest/recipes-test/nopackages/selftest-nopackages.bb b/meta-selftest/recipes-test/nopackages/selftest-nopackages.bb
new file mode 100644
index 0000000000..154df910e4
--- /dev/null
+++ b/meta-selftest/recipes-test/nopackages/selftest-nopackages.bb
@@ -0,0 +1,6 @@
+SUMMARY = "Test recipe for nopackages bbclass"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+INHIBIT_DEFAULT_DEPS = "1"
+inherit nopackages
diff --git a/meta-selftest/recipes-test/recipetool/files/selftest-replaceme-src-globfile b/meta-selftest/recipes-test/recipetool/files/selftest-replaceme-src-globfile
deleted file mode 100644
index 1e20a2b03e..0000000000
--- a/meta-selftest/recipes-test/recipetool/files/selftest-replaceme-src-globfile
+++ /dev/null
@@ -1 +0,0 @@
-A file matched by a glob in SRC_URI
diff --git a/meta-selftest/recipes-test/recipetool/selftest-recipetool-appendfile.bb b/meta-selftest/recipes-test/recipetool/selftest-recipetool-appendfile.bb
index 7375c47933..b5f976708f 100644
--- a/meta-selftest/recipes-test/recipetool/selftest-recipetool-appendfile.bb
+++ b/meta-selftest/recipes-test/recipetool/selftest-recipetool-appendfile.bb
@@ -10,7 +10,6 @@ SRC_URI = "file://installscript.sh \
file://file1 \
file://add-file.patch \
file://subdir \
- file://selftest-replaceme-src-glob* \
file://selftest-replaceme-inst-globfile \
file://selftest-replaceme-inst-todir-globfile \
file://selftest-replaceme-inst-func"
@@ -27,7 +26,6 @@ do_install() {
install -m 0644 ${WORKDIR}/selftest-replaceme-todir ${D}${datadir}
install -m 0644 ${WORKDIR}/file1 ${D}${datadir}/selftest-replaceme-renamed
install -m 0644 ${WORKDIR}/subdir/fileinsubdir ${D}${datadir}/selftest-replaceme-subdir
- install -m 0644 ${WORKDIR}/selftest-replaceme-src-globfile ${D}${datadir}/selftest-replaceme-src-globfile
cp ${WORKDIR}/selftest-replaceme-inst-glob* ${D}${datadir}/selftest-replaceme-inst-globfile
cp ${WORKDIR}/selftest-replaceme-inst-todir-glob* ${D}${datadir}
install -d ${D}${sysconfdir}
diff --git a/meta-selftest/recipes-test/selftest-chown/selftest-chown.bb b/meta-selftest/recipes-test/selftest-chown/selftest-chown.bb
new file mode 100644
index 0000000000..87bf9438b8
--- /dev/null
+++ b/meta-selftest/recipes-test/selftest-chown/selftest-chown.bb
@@ -0,0 +1,25 @@
+SUMMARY = "selftest chown"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+LICENSE = "MIT"
+
+S = "${WORKDIR}"
+
+inherit useradd allarch
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "-u 1234 -M test"
+TESTDIR = "${D}${sysconfdir}/selftest-chown"
+
+do_install() {
+ install -d ${TESTDIR}
+ install -d ${TESTDIR}/dir
+ touch ${TESTDIR}/file
+ ln -s ./file ${TESTDIR}/symlink
+
+ chown test:test ${TESTDIR}/file
+ chown -R test:test ${TESTDIR}/dir
+ chown -h test:test ${TESTDIR}/symlink
+}
+
+FILES_${PN} = "${sysconfdir}/selftest-chown/*"
diff --git a/meta-selftest/recipes-test/selftest-ed/selftest-ed_0.5.bb b/meta-selftest/recipes-test/selftest-ed/selftest-ed_0.5.bb
index 8e0d1cdd8e..4f713f5c0e 100644
--- a/meta-selftest/recipes-test/selftest-ed/selftest-ed_0.5.bb
+++ b/meta-selftest/recipes-test/selftest-ed/selftest-ed_0.5.bb
@@ -20,3 +20,5 @@ EXTRA_OECONF = "'CC=${CC}' 'CXX=${CXX}' 'CFLAGS=${CFLAGS}' 'CXXFLAGS=${CXXFLAGS}
CONFIGUREOPTS_remove = "--disable-dependency-tracking"
CONFIGUREOPTS_remove = "--disable-silent-rules"
EXTRA_OECONF_remove = "--disable-static"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-selftest/recipes-test/selftest-ed/selftest-ed_1.14.1.bb b/meta-selftest/recipes-test/selftest-ed/selftest-ed_1.14.1.bb
index 8a2b565ce5..08fb415d9d 100644
--- a/meta-selftest/recipes-test/selftest-ed/selftest-ed_1.14.1.bb
+++ b/meta-selftest/recipes-test/selftest-ed/selftest-ed_1.14.1.bb
@@ -34,3 +34,5 @@ do_install() {
rm -f ${D}${infodir}/dir
fi
}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-selftest/recipes-test/sysroot-test/sysroot-test-arch1_1.0.bb b/meta-selftest/recipes-test/sysroot-test/sysroot-test-arch1_1.0.bb
new file mode 100644
index 0000000000..36a682c53d
--- /dev/null
+++ b/meta-selftest/recipes-test/sysroot-test/sysroot-test-arch1_1.0.bb
@@ -0,0 +1,14 @@
+LICENSE = "CLOSED"
+
+PROVIDES = "virtual/sysroot-test"
+INHIBIT_DEFAULT_DEPS = "1"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+TESTSTRING ?= "1"
+
+do_install() {
+ install -d ${D}${includedir}
+ echo "# test ${TESTSTRING}" > ${D}${includedir}/sysroot-test.h
+}
+
+EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-selftest/recipes-test/sysroot-test/sysroot-test-arch2_1.0.bb b/meta-selftest/recipes-test/sysroot-test/sysroot-test-arch2_1.0.bb
new file mode 100644
index 0000000000..67172f3cab
--- /dev/null
+++ b/meta-selftest/recipes-test/sysroot-test/sysroot-test-arch2_1.0.bb
@@ -0,0 +1,14 @@
+LICENSE = "CLOSED"
+
+PROVIDES = "virtual/sysroot-test"
+INHIBIT_DEFAULT_DEPS = "1"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+TESTSTRING ?= "2"
+
+do_install() {
+ install -d ${D}${includedir}
+ echo "# test ${TESTSTRING}" > ${D}${includedir}/sysroot-test.h
+}
+
+EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-selftest/recipes-test/sysroot-test/sysroot-test_1.0.bb b/meta-selftest/recipes-test/sysroot-test/sysroot-test_1.0.bb
new file mode 100644
index 0000000000..560487c159
--- /dev/null
+++ b/meta-selftest/recipes-test/sysroot-test/sysroot-test_1.0.bb
@@ -0,0 +1,6 @@
+SUMMARY = "Virtual provider sysroot test"
+LICENSE = "CLOSED"
+INHIBIT_DEFAULT_DEPS = "1"
+DEPENDS = "virtual/sysroot-test"
+
+EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-skeleton/conf/layer.conf b/meta-skeleton/conf/layer.conf
index 7d7381a700..cea5c74f8b 100644
--- a/meta-skeleton/conf/layer.conf
+++ b/meta-skeleton/conf/layer.conf
@@ -14,4 +14,4 @@ LAYERVERSION_skeleton = "1"
LAYERDEPENDS_skeleton = "core"
-LAYERSERIES_COMPAT_skeleton = "zeus"
+LAYERSERIES_COMPAT_skeleton = "gatesgarth"
diff --git a/meta-skeleton/recipes-baremetal/baremetal-examples/baremetal-helloworld_git.bb b/meta-skeleton/recipes-baremetal/baremetal-examples/baremetal-helloworld_git.bb
index d8633702fc..7a580bd885 100644
--- a/meta-skeleton/recipes-baremetal/baremetal-examples/baremetal-helloworld_git.bb
+++ b/meta-skeleton/recipes-baremetal/baremetal-examples/baremetal-helloworld_git.bb
@@ -8,12 +8,21 @@ PV = "0.1+git${SRCPV}"
SRC_URI = "git://github.com/aehs29/baremetal-helloqemu.git;protocol=https;branch=master"
-S = "${WORKDIR}/git/"
+S = "${WORKDIR}/git"
-# These examples are not meant to be built when using either musl or glibc
-COMPATIBLE_HOST_libc-musl_class-target = "null"
-COMPATIBLE_HOST_libc-glibc_class-target = "null"
+# The following variables should be set to accomodate each application
+BAREMETAL_BINNAME ?= "hello_baremetal_${MACHINE}"
+IMAGE_LINK_NAME ?= "baremetal-helloworld-image-${MACHINE}"
+IMAGE_NAME_SUFFIX ?= ""
+
+# Baremetal-Image creates the proper wiring, assumes the output is provided in
+# binary and ELF format, installed on ${base_libdir}/firmware/ , we want a
+# package to be created since we might have some way of updating the baremetal
+# firmware from Linux
+inherit baremetal-image
+
+# These parameters are app specific for this example
# This will be translated automatically to the architecture and
# machine that QEMU uses on OE, e.g. -machine virt -cpu cortex-a57
# but the examples can also be run on other architectures/machines
@@ -25,81 +34,17 @@ BAREMETAL_QEMUARCH_qemuarmv5 = "versatile"
BAREMETAL_QEMUARCH_qemuarm = "arm"
BAREMETAL_QEMUARCH_qemuarm64 = "aarch64"
-
EXTRA_OEMAKE_append = " QEMUARCH=${BAREMETAL_QEMUARCH} V=1"
-do_install(){
- install -d ${D}/${datadir}
- install -m 755 ${B}build/hello_baremetal_${BAREMETAL_QEMUARCH}.bin ${D}/${datadir}/hello_baremetal_${MACHINE}.bin
- install -m 755 ${B}build/hello_baremetal_${BAREMETAL_QEMUARCH}.elf ${D}/${datadir}/hello_baremetal_${MACHINE}.elf
-}
-# Borrowed from meta-freertos
-inherit rootfs-postcommands
-inherit deploy
-do_deploy[dirs] = "${DEPLOYDIR} ${DEPLOY_DIR_IMAGE}"
-do_rootfs[dirs] = "${DEPLOYDIR} ${DEPLOY_DIR_IMAGE}"
-DEPLOYDIR = "${IMGDEPLOYDIR}"
-IMAGE_LINK_NAME ?= "baremetal-helloworld-image-${MACHINE}"
-IMAGE_NAME_SUFFIX ?= ""
-
-do_deploy(){
- install ${D}/${datadir}/hello_baremetal_${MACHINE}.bin ${DEPLOYDIR}/${IMAGE_LINK_NAME}.bin
- install ${D}/${datadir}/hello_baremetal_${MACHINE}.elf ${DEPLOYDIR}/${IMAGE_LINK_NAME}.elf
-}
-
-do_image(){
- :
+# Install binaries on the proper location for baremetal-image to fetch and deploy
+do_install(){
+ install -d ${D}/${base_libdir}/firmware
+ install -m 755 ${B}build/hello_baremetal_${BAREMETAL_QEMUARCH}.bin ${D}/${base_libdir}/firmware/${BAREMETAL_BINNAME}.bin
+ install -m 755 ${B}build/hello_baremetal_${BAREMETAL_QEMUARCH}.elf ${D}/${base_libdir}/firmware/${BAREMETAL_BINNAME}.elf
}
FILES_${PN} += " \
- ${datadir}/hello_baremetal_${MACHINE}.bin \
- ${datadir}/hello_baremetal_${MACHINE}.elf \
+ ${base_libdir}/firmware/${BAREMETAL_BINNAME}.bin \
+ ${base_libdir}/firmware/${BAREMETAL_BINNAME}.elf \
"
-
-python do_rootfs(){
- from oe.utils import execute_pre_post_process
- from pathlib import Path
-
- # Write empty manifest testdate file
- deploy_dir = d.getVar('DEPLOYDIR')
- link_name = d.getVar('IMAGE_LINK_NAME')
- manifest_name = d.getVar('IMAGE_MANIFEST')
-
- Path(manifest_name).touch()
- if os.path.exists(manifest_name) and link_name:
- manifest_link = deploy_dir + "/" + link_name + ".manifest"
- if os.path.lexists(manifest_link):
- os.remove(manifest_link)
- os.symlink(os.path.basename(manifest_name), manifest_link)
- execute_pre_post_process(d, d.getVar('ROOTFS_POSTPROCESS_COMMAND'))
-}
-
-# QEMU generic FreeRTOS parameters
-QB_DEFAULT_KERNEL = "${IMAGE_LINK_NAME}.bin"
-QB_MEM = "-m 256"
-QB_OPT_APPEND = "-nographic"
-QB_DEFAULT_FSTYPE = "bin"
-QB_DTB = ""
-
-# This next part is necessary to trick the build system into thinking
-# its building an image recipe so it generates the qemuboot.conf
-addtask do_deploy after do_write_qemuboot_conf before do_build
-addtask do_rootfs before do_deploy after do_install
-addtask do_image after do_rootfs before do_build
-inherit qemuboot
-
-# Based on image.bbclass to make sure we build qemu
-python(){
- # do_addto_recipe_sysroot doesnt exist for all recipes, but we need it to have
- # /usr/bin on recipe-sysroot (qemu) populated
- def extraimage_getdepends(task):
- deps = ""
- for dep in (d.getVar('EXTRA_IMAGEDEPENDS') or "").split():
- # Make sure we only add it for qemu
- if 'qemu' in dep:
- deps += " %s:%s" % (dep, task)
- return deps
- d.appendVarFlag('do_image', 'depends', extraimage_getdepends('do_addto_recipe_sysroot'))
- d.appendVarFlag('do_image', 'depends', extraimage_getdepends('do_populate_sysroot'))
-}
diff --git a/meta/classes/archiver.bbclass b/meta/classes/archiver.bbclass
index 013195df7d..598298ef6f 100644
--- a/meta/classes/archiver.bbclass
+++ b/meta/classes/archiver.bbclass
@@ -32,7 +32,7 @@
# directory suitable for direct use as a mirror. Duplicate sources are
# ignored.
# 12) Source mirror exclusions:
-# ARCHIVE_MIRROR_EXCLUDE is a list of prefixes to exclude from the mirror.
+# ARCHIVER_MIRROR_EXCLUDE is a list of prefixes to exclude from the mirror.
# This may be used for sources which you are already publishing yourself
# (e.g. if the URI starts with 'https://mysite.com/' and your mirror is
# going to be published to the same site). It may also be used to exclude
@@ -53,7 +53,7 @@ ARCHIVER_MODE[recipe] ?= "0"
ARCHIVER_MODE[mirror] ?= "split"
DEPLOY_DIR_SRC ?= "${DEPLOY_DIR}/sources"
-ARCHIVER_TOPDIR ?= "${WORKDIR}/deploy-sources"
+ARCHIVER_TOPDIR ?= "${WORKDIR}/archiver-sources"
ARCHIVER_OUTDIR = "${ARCHIVER_TOPDIR}/${TARGET_SYS}/${PF}/"
ARCHIVER_RPMTOPDIR ?= "${WORKDIR}/deploy-sources-rpm"
ARCHIVER_RPMOUTDIR = "${ARCHIVER_RPMTOPDIR}/${TARGET_SYS}/${PF}/"
@@ -193,7 +193,13 @@ python do_ar_original() {
del decoded[5][param]
encoded = bb.fetch2.encodeurl(decoded)
urls[i] = encoded
- fetch = bb.fetch2.Fetch(urls, d)
+
+ # Cleanup SRC_URI before call bb.fetch2.Fetch() since now SRC_URI is in the
+ # variable "urls", otherwise there might be errors like:
+ # The SRCREV_FORMAT variable must be set when multiple SCMs are used
+ ld = bb.data.createCopy(d)
+ ld.setVar('SRC_URI', '')
+ fetch = bb.fetch2.Fetch(urls, ld)
tarball_suffix = {}
for url in fetch.urls:
local = fetch.localpath(url).rstrip("/");
@@ -339,13 +345,12 @@ python do_ar_mirror() {
fetcher = bb.fetch2.Fetch(src_uri, d)
- for url in fetcher.urls:
- if is_excluded(url):
- bb.note('Skipping excluded url: %s' % (url))
+ for ud in fetcher.expanded_urldata():
+ if is_excluded(ud.url):
+ bb.note('Skipping excluded url: %s' % (ud.url))
continue
- bb.note('Archiving url: %s' % (url))
- ud = fetcher.ud[url]
+ bb.note('Archiving url: %s' % (ud.url))
ud.setup_localpath(d)
localpath = None
@@ -359,9 +364,9 @@ python do_ar_mirror() {
break
if len(ud.mirrortarballs) and not localpath:
- bb.warn('Mirror tarballs are listed for a source but none are present.' \
+ bb.warn('Mirror tarballs are listed for a source but none are present. ' \
'Falling back to original download.\n' \
- 'SRC_URI = %s' % (url))
+ 'SRC_URI = %s' % (ud.url))
# Check original download
if not localpath:
@@ -370,7 +375,7 @@ python do_ar_mirror() {
if not localpath or not os.path.exists(localpath):
bb.fatal('Original download is missing for a source.\n' \
- 'SRC_URI = %s' % (url))
+ 'SRC_URI = %s' % (ud.url))
# We now have an appropriate localpath
bb.note('Copying source mirror')
@@ -577,13 +582,15 @@ do_deploy_archives[sstate-outputdirs] = "${DEPLOY_DIR_SRC}"
addtask do_deploy_archives_setscene
addtask do_ar_original after do_unpack
-addtask do_unpack_and_patch after do_patch
+addtask do_unpack_and_patch after do_patch do_preconfigure
addtask do_ar_patched after do_unpack_and_patch
addtask do_ar_configured after do_unpack_and_patch
addtask do_ar_mirror after do_fetch
addtask do_dumpdata
addtask do_ar_recipe
-addtask do_deploy_archives before do_build
+addtask do_deploy_archives
+do_build[recrdeptask] += "do_deploy_archives"
+do_populate_sdk[recrdeptask] += "do_deploy_archives"
python () {
# Add tasks in the correct order, specifically for linux-yocto to avoid race condition.
diff --git a/meta/classes/autotools.bbclass b/meta/classes/autotools.bbclass
index 6c2a33ac72..70804b82b4 100644
--- a/meta/classes/autotools.bbclass
+++ b/meta/classes/autotools.bbclass
@@ -5,7 +5,7 @@ def autotools_dep_prepend(d):
pn = d.getVar('PN')
deps = ''
- if pn in ['autoconf-native', 'automake-native', 'help2man-native']:
+ if pn in ['autoconf-native', 'automake-native']:
return deps
deps += 'autoconf-native automake-native '
@@ -90,7 +90,7 @@ oe_runconf () {
cfgscript=`python3 -c "import os; print(os.path.relpath(os.path.dirname('${CONFIGURE_SCRIPT}'), '.'))"`/$cfgscript_name
if [ -x "$cfgscript" ] ; then
bbnote "Running $cfgscript ${CONFIGUREOPTS} ${EXTRA_OECONF} $@"
- if ! ${CACHED_CONFIGUREVARS} CONFIG_SHELL=/bin/bash $cfgscript ${CONFIGUREOPTS} ${EXTRA_OECONF} "$@"; then
+ if ! CONFIG_SHELL=/bin/bash ${CACHED_CONFIGUREVARS} $cfgscript ${CONFIGUREOPTS} ${EXTRA_OECONF} "$@"; then
bbnote "The following config.log files may provide further information."
bbnote `find ${B} -ignore_readdir_race -type f -name config.log`
bbfatal_log "configure failed"
diff --git a/meta/classes/baremetal-image.bbclass b/meta/classes/baremetal-image.bbclass
new file mode 100644
index 0000000000..90d58f2615
--- /dev/null
+++ b/meta/classes/baremetal-image.bbclass
@@ -0,0 +1,99 @@
+# Baremetal image class
+#
+# This class is meant to be inherited by recipes for baremetal/RTOS applications
+# It contains code that would be used by all of them, every recipe just needs to
+# override certain variables.
+#
+# For scalability purposes, code within this class focuses on the "image" wiring
+# to satisfy the OpenEmbedded image creation and testing infrastructure.
+#
+# See meta-skeleton for a working example.
+
+
+# Toolchain should be baremetal or newlib based.
+# TCLIBC="baremetal" or TCLIBC="newlib"
+COMPATIBLE_HOST_libc-musl_class-target = "null"
+COMPATIBLE_HOST_libc-glibc_class-target = "null"
+
+
+inherit rootfs-postcommands
+
+# Set some defaults, but these should be overriden by each recipe if required
+IMGDEPLOYDIR ?= "${WORKDIR}/deploy-${PN}-image-complete"
+BAREMETAL_BINNAME ?= "hello_baremetal_${MACHINE}"
+IMAGE_LINK_NAME ?= "baremetal-helloworld-image-${MACHINE}"
+IMAGE_NAME_SUFFIX ?= ""
+
+do_rootfs[dirs] = "${IMGDEPLOYDIR} ${DEPLOY_DIR_IMAGE}"
+
+do_image(){
+ install ${D}/${base_libdir}/firmware/${BAREMETAL_BINNAME}.bin ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.bin
+ install ${D}/${base_libdir}/firmware/${BAREMETAL_BINNAME}.elf ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.elf
+}
+
+do_image_complete(){
+ :
+}
+
+python do_rootfs(){
+ from oe.utils import execute_pre_post_process
+ from pathlib import Path
+
+ # Write empty manifest file to satisfy test infrastructure
+ deploy_dir = d.getVar('IMGDEPLOYDIR')
+ link_name = d.getVar('IMAGE_LINK_NAME')
+ manifest_name = d.getVar('IMAGE_MANIFEST')
+
+ Path(manifest_name).touch()
+ if os.path.exists(manifest_name) and link_name:
+ manifest_link = deploy_dir + "/" + link_name + ".manifest"
+ if os.path.lexists(manifest_link):
+ os.remove(manifest_link)
+ os.symlink(os.path.basename(manifest_name), manifest_link)
+ execute_pre_post_process(d, d.getVar('ROOTFS_POSTPROCESS_COMMAND'))
+}
+
+
+# Assure binaries, manifest and qemubootconf are populated on DEPLOY_DIR_IMAGE
+do_image_complete[dirs] = "${TOPDIR}"
+do_image_complete[umask] = "022"
+SSTATETASKS += "do_image_complete"
+SSTATE_SKIP_CREATION_task-image-complete = '1'
+do_image_complete[sstate-inputdirs] = "${IMGDEPLOYDIR}"
+do_image_complete[sstate-outputdirs] = "${DEPLOY_DIR_IMAGE}"
+do_image_complete[stamp-extra-info] = "${MACHINE_ARCH}"
+addtask do_image_complete after do_image before do_build
+
+python do_image_complete_setscene () {
+ sstate_setscene(d)
+}
+addtask do_image_complete_setscene
+
+# QEMU generic Baremetal/RTOS parameters
+QB_DEFAULT_KERNEL ?= "${IMAGE_LINK_NAME}.bin"
+QB_MEM ?= "-m 256"
+QB_DEFAULT_FSTYPE ?= "bin"
+QB_DTB ?= ""
+QB_OPT_APPEND = "-nographic"
+
+# This next part is necessary to trick the build system into thinking
+# its building an image recipe so it generates the qemuboot.conf
+addtask do_rootfs before do_image after do_install
+addtask do_image after do_rootfs before do_image_complete
+addtask do_image_complete after do_image before do_build
+inherit qemuboot
+
+# Based on image.bbclass to make sure we build qemu
+python(){
+ # do_addto_recipe_sysroot doesnt exist for all recipes, but we need it to have
+ # /usr/bin on recipe-sysroot (qemu) populated
+ def extraimage_getdepends(task):
+ deps = ""
+ for dep in (d.getVar('EXTRA_IMAGEDEPENDS') or "").split():
+ # Make sure we only add it for qemu
+ if 'qemu' in dep:
+ deps += " %s:%s" % (dep, task)
+ return deps
+ d.appendVarFlag('do_image', 'depends', extraimage_getdepends('do_addto_recipe_sysroot'))
+ d.appendVarFlag('do_image', 'depends', extraimage_getdepends('do_populate_sysroot'))
+}
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index 7bfb1d1912..5a0b0c6b3e 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -388,12 +388,22 @@ python () {
oe.utils.features_backfill("DISTRO_FEATURES", d)
oe.utils.features_backfill("MACHINE_FEATURES", d)
+ if d.getVar("S")[-1] == '/':
+ bb.warn("Recipe %s sets S variable with trailing slash '%s', remove it" % (d.getVar("PN"), d.getVar("S")))
+ if d.getVar("B")[-1] == '/':
+ bb.warn("Recipe %s sets B variable with trailing slash '%s', remove it" % (d.getVar("PN"), d.getVar("B")))
+
+ if os.path.normpath(d.getVar("WORKDIR")) != os.path.normpath(d.getVar("S")):
+ d.appendVar("PSEUDO_IGNORE_PATHS", ",${S}")
+ if os.path.normpath(d.getVar("WORKDIR")) != os.path.normpath(d.getVar("B")):
+ d.appendVar("PSEUDO_IGNORE_PATHS", ",${B}")
+
# Handle PACKAGECONFIG
#
# These take the form:
#
# PACKAGECONFIG ??= "<default options>"
- # PACKAGECONFIG[foo] = "--enable-foo,--disable-foo,foo_depends,foo_runtime_depends,foo_runtime_recommends"
+ # PACKAGECONFIG[foo] = "--enable-foo,--disable-foo,foo_depends,foo_runtime_depends,foo_runtime_recommends,foo_conflict_packageconfig"
pkgconfigflags = d.getVarFlags("PACKAGECONFIG") or {}
if pkgconfigflags:
pkgconfig = (d.getVar('PACKAGECONFIG') or "").split()
@@ -440,8 +450,8 @@ python () {
for flag, flagval in sorted(pkgconfigflags.items()):
items = flagval.split(",")
num = len(items)
- if num > 5:
- bb.error("%s: PACKAGECONFIG[%s] Only enable,disable,depend,rdepend,rrecommend can be specified!"
+ if num > 6:
+ bb.error("%s: PACKAGECONFIG[%s] Only enable,disable,depend,rdepend,rrecommend,conflict_packageconfig can be specified!"
% (d.getVar('PN'), flag))
if flag in pkgconfig:
@@ -455,6 +465,20 @@ python () {
extraconf.append(items[0])
elif num >= 2 and items[1]:
extraconf.append(items[1])
+
+ if num >= 6 and items[5]:
+ conflicts = set(items[5].split())
+ invalid = conflicts.difference(set(pkgconfigflags.keys()))
+ if invalid:
+ bb.error("%s: PACKAGECONFIG[%s] Invalid conflict package config%s '%s' specified."
+ % (d.getVar('PN'), flag, 's' if len(invalid) > 1 else '', ' '.join(invalid)))
+
+ if flag in pkgconfig:
+ intersec = conflicts.intersection(set(pkgconfig))
+ if intersec:
+ bb.fatal("%s: PACKAGECONFIG[%s] Conflict package config%s '%s' set in PACKAGECONFIG."
+ % (d.getVar('PN'), flag, 's' if len(intersec) > 1 else '', ' '.join(intersec)))
+
appendVar('DEPENDS', extradeps)
appendVar('RDEPENDS_${PN}', extrardeps)
appendVar('RRECOMMENDS_${PN}', extrarrecs)
@@ -556,8 +580,7 @@ python () {
if unskipped_pkgs:
for pkg in skipped_pkgs:
bb.debug(1, "Skipping the package %s at do_rootfs because of incompatible license(s): %s" % (pkg, ' '.join(skipped_pkgs[pkg])))
- mlprefix = d.getVar('MLPREFIX')
- d.setVar('LICENSE_EXCLUSION-' + mlprefix + pkg, ' '.join(skipped_pkgs[pkg]))
+ d.setVar('LICENSE_EXCLUSION-' + pkg, ' '.join(skipped_pkgs[pkg]))
for pkg in unskipped_pkgs:
bb.debug(1, "Including the package %s" % pkg)
else:
@@ -570,19 +593,6 @@ python () {
bb.debug(1, "Skipping recipe %s because of incompatible license(s): %s" % (pn, ' '.join(incompatible_lic)))
raise bb.parse.SkipRecipe("it has incompatible license(s): %s" % ' '.join(incompatible_lic))
- # Try to verify per-package (LICENSE_<pkg>) values. LICENSE should be a
- # superset of all per-package licenses. We do not do advanced (pattern)
- # matching of license expressions - just check that all license strings
- # in LICENSE_<pkg> are found in LICENSE.
- license_set = oe.license.list_licenses(license)
- for pkg in d.getVar('PACKAGES').split():
- pkg_license = d.getVar('LICENSE_' + pkg)
- if pkg_license:
- unlisted = oe.license.list_licenses(pkg_license) - license_set
- if unlisted:
- bb.warn("LICENSE_%s includes licenses (%s) that are not "
- "listed in LICENSE" % (pkg, ' '.join(unlisted)))
-
needsrcrev = False
srcuri = d.getVar('SRC_URI')
for uri in srcuri.split():
diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass
index eb7295570d..6d04d8cfb9 100644
--- a/meta/classes/buildhistory.bbclass
+++ b/meta/classes/buildhistory.bbclass
@@ -7,6 +7,8 @@
# Copyright (C) 2007-2011 Koen Kooi <koen@openembedded.org>
#
+inherit image-artifact-names
+
BUILDHISTORY_FEATURES ?= "image package sdk"
BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory"
BUILDHISTORY_DIR_IMAGE = "${BUILDHISTORY_DIR}/images/${MACHINE_ARCH}/${TCLIBC}/${IMAGE_BASENAME}"
@@ -88,8 +90,7 @@ buildhistory_emit_sysroot() {
python buildhistory_emit_pkghistory() {
if d.getVar('BB_CURRENTTASK') in ['populate_sysroot', 'populate_sysroot_setscene']:
bb.build.exec_func("buildhistory_emit_sysroot", d)
-
- if not d.getVar('BB_CURRENTTASK') in ['packagedata', 'packagedata_setscene']:
+ elif not d.getVar('BB_CURRENTTASK') in ['packagedata', 'packagedata_setscene']:
return 0
if not "package" in (d.getVar('BUILDHISTORY_FEATURES') or "").split():
@@ -113,6 +114,8 @@ python buildhistory_emit_pkghistory() {
self.packages = ""
self.srcrev = ""
self.layer = ""
+ self.config = ""
+ self.src_uri = ""
class PackageInfo:
@@ -225,8 +228,9 @@ python buildhistory_emit_pkghistory() {
break
except IOError as e:
if e.errno == errno.ENOENT:
- # Probably a -cross recipe, just ignore
- return 0
+ if not bb.data.inherits_class('native', d):
+ # Probably a -cross recipe, just ignore
+ return 0
else:
raise
@@ -254,22 +258,19 @@ python buildhistory_emit_pkghistory() {
rcpinfo.depends = sortlist(oe.utils.squashspaces(d.getVar('DEPENDS') or ""))
rcpinfo.packages = packages
rcpinfo.layer = layer
+ rcpinfo.config = sortlist(oe.utils.squashspaces(d.getVar('PACKAGECONFIG') or ""))
+ rcpinfo.src_uri = oe.utils.squashspaces(d.getVar('SRC_URI') or "")
write_recipehistory(rcpinfo, d)
- pkgdest = d.getVar('PKGDEST')
+ bb.build.exec_func("read_subpackage_metadata", d)
+
for pkg in packagelist:
- pkgdata = {}
- with open(os.path.join(pkgdata_dir, 'runtime', pkg)) as f:
- for line in f.readlines():
- item = line.rstrip('\n').split(': ', 1)
- key = item[0]
- if key.endswith('_' + pkg):
- key = key[:-len(pkg)-1]
- pkgdata[key] = item[1].encode('latin-1').decode('unicode_escape')
-
- pkge = pkgdata.get('PKGE', '0')
- pkgv = pkgdata['PKGV']
- pkgr = pkgdata['PKGR']
+ localdata = d.createCopy()
+ localdata.setVar('OVERRIDES', d.getVar("OVERRIDES", False) + ":" + pkg)
+
+ pkge = localdata.getVar("PKGE") or '0'
+ pkgv = localdata.getVar("PKGV")
+ pkgr = localdata.getVar("PKGR")
#
# Find out what the last version was
# Make sure the version did not decrease
@@ -286,31 +287,31 @@ python buildhistory_emit_pkghistory() {
pkginfo = PackageInfo(pkg)
# Apparently the version can be different on a per-package basis (see Python)
- pkginfo.pe = pkgdata.get('PE', '0')
- pkginfo.pv = pkgdata['PV']
- pkginfo.pr = pkgdata['PR']
- pkginfo.pkg = pkgdata['PKG']
+ pkginfo.pe = localdata.getVar("PE") or '0'
+ pkginfo.pv = localdata.getVar("PV")
+ pkginfo.pr = localdata.getVar("PR")
+ pkginfo.pkg = localdata.getVar("PKG")
pkginfo.pkge = pkge
pkginfo.pkgv = pkgv
pkginfo.pkgr = pkgr
- pkginfo.rprovides = sortpkglist(oe.utils.squashspaces(pkgdata.get('RPROVIDES', "")))
- pkginfo.rdepends = sortpkglist(oe.utils.squashspaces(pkgdata.get('RDEPENDS', "")))
- pkginfo.rrecommends = sortpkglist(oe.utils.squashspaces(pkgdata.get('RRECOMMENDS', "")))
- pkginfo.rsuggests = sortpkglist(oe.utils.squashspaces(pkgdata.get('RSUGGESTS', "")))
- pkginfo.rreplaces = sortpkglist(oe.utils.squashspaces(pkgdata.get('RREPLACES', "")))
- pkginfo.rconflicts = sortpkglist(oe.utils.squashspaces(pkgdata.get('RCONFLICTS', "")))
- pkginfo.files = oe.utils.squashspaces(pkgdata.get('FILES', ""))
+ pkginfo.rprovides = sortpkglist(oe.utils.squashspaces(localdata.getVar("RPROVIDES") or ""))
+ pkginfo.rdepends = sortpkglist(oe.utils.squashspaces(localdata.getVar("RDEPENDS") or ""))
+ pkginfo.rrecommends = sortpkglist(oe.utils.squashspaces(localdata.getVar("RRECOMMENDS") or ""))
+ pkginfo.rsuggests = sortpkglist(oe.utils.squashspaces(localdata.getVar("RSUGGESTS") or ""))
+ pkginfo.replaces = sortpkglist(oe.utils.squashspaces(localdata.getVar("RREPLACES") or ""))
+ pkginfo.rconflicts = sortpkglist(oe.utils.squashspaces(localdata.getVar("RCONFLICTS") or ""))
+ pkginfo.files = oe.utils.squashspaces(localdata.getVar("FILES") or "")
for filevar in pkginfo.filevars:
- pkginfo.filevars[filevar] = pkgdata.get(filevar, "")
+ pkginfo.filevars[filevar] = localdata.getVar(filevar) or ""
# Gather information about packaged files
- val = pkgdata.get('FILES_INFO', '')
+ val = localdata.getVar('FILES_INFO') or ''
dictval = json.loads(val)
filelist = list(dictval.keys())
filelist.sort()
pkginfo.filelist = " ".join([shlex.quote(x) for x in filelist])
- pkginfo.size = int(pkgdata['PKGSIZE'])
+ pkginfo.size = int(localdata.getVar('PKGSIZE') or '0')
write_pkghistory(pkginfo, d)
@@ -368,6 +369,8 @@ def write_recipehistory(rcpinfo, d):
f.write(u"DEPENDS = %s\n" % rcpinfo.depends)
f.write(u"PACKAGES = %s\n" % rcpinfo.packages)
f.write(u"LAYER = %s\n" % rcpinfo.layer)
+ f.write(u"CONFIG = %s\n" % rcpinfo.config)
+ f.write(u"SRC_URI = %s\n" % rcpinfo.src_uri)
write_latest_srcrev(d, pkghistdir)
@@ -426,8 +429,8 @@ def buildhistory_list_installed(d, rootfs_type="image"):
from oe.sdk import sdk_list_installed_packages
from oe.utils import format_pkg_list
- process_list = [('file', 'bh_installed_pkgs.txt'),\
- ('deps', 'bh_installed_pkgs_deps.txt')]
+ process_list = [('file', 'bh_installed_pkgs_%s.txt' % os.getpid()),\
+ ('deps', 'bh_installed_pkgs_deps_%s.txt' % os.getpid())]
if rootfs_type == "image":
pkgs = image_list_installed_packages(d)
@@ -457,9 +460,10 @@ buildhistory_get_installed() {
# Get list of installed packages
pkgcache="$1/installed-packages.tmp"
- cat ${WORKDIR}/bh_installed_pkgs.txt | sort > $pkgcache && rm ${WORKDIR}/bh_installed_pkgs.txt
+ cat ${WORKDIR}/bh_installed_pkgs_${PID}.txt | sort > $pkgcache && rm ${WORKDIR}/bh_installed_pkgs_${PID}.txt
cat $pkgcache | awk '{ print $1 }' > $1/installed-package-names.txt
+
if [ -s $pkgcache ] ; then
cat $pkgcache | awk '{ print $2 }' | xargs -n1 basename > $1/installed-packages.txt
else
@@ -468,8 +472,8 @@ buildhistory_get_installed() {
# Produce dependency graph
# First, quote each name to handle characters that cause issues for dot
- sed 's:\([^| ]*\):"\1":g' ${WORKDIR}/bh_installed_pkgs_deps.txt > $1/depends.tmp &&
- rm ${WORKDIR}/bh_installed_pkgs_deps.txt
+ sed 's:\([^| ]*\):"\1":g' ${WORKDIR}/bh_installed_pkgs_deps_${PID}.txt > $1/depends.tmp &&
+ rm ${WORKDIR}/bh_installed_pkgs_deps_${PID}.txt
# Remove lines with rpmlib(...) and config(...) dependencies, change the
# delimiter from pipe to "->", set the style for recommend lines and
# turn versioned dependencies into edge labels.
diff --git a/meta/classes/buildstats.bbclass b/meta/classes/buildstats.bbclass
index 2590c60c63..6f87187233 100644
--- a/meta/classes/buildstats.bbclass
+++ b/meta/classes/buildstats.bbclass
@@ -80,8 +80,6 @@ def get_buildtimedata(var, d):
return timediff, cpuperc
def write_task_data(status, logfile, e, d):
- bn = d.getVar('BUILDNAME')
- bsdir = os.path.join(d.getVar('BUILDSTATS_BASE'), bn)
with open(os.path.join(logfile), "a") as f:
elapsedtime = get_timedata("__timedata_task", d, e.time)
if elapsedtime:
@@ -138,7 +136,7 @@ python run_buildstats () {
if x:
f.write(x + " ")
f.write("\n")
- f.write("Build Started: %0.2f \n" % time.time())
+ f.write("Build Started: %0.2f \n" % d.getVar('__timedata_build', False)[0])
elif isinstance(e, bb.event.BuildCompleted):
build_time = os.path.join(bsdir, "build_stats")
diff --git a/meta/classes/cmake.bbclass b/meta/classes/cmake.bbclass
index d91cf20130..7c055e8a3d 100644
--- a/meta/classes/cmake.bbclass
+++ b/meta/classes/cmake.bbclass
@@ -21,23 +21,6 @@ python() {
d.setVarFlag("do_compile", "progress", r"outof:^\[(\d+)/(\d+)\]\s+")
else:
bb.fatal("Unknown CMake Generator %s" % generator)
-
- # C/C++ Compiler (without cpu arch/tune arguments)
- if not d.getVar('OECMAKE_C_COMPILER'):
- cc_list = d.getVar('CC').split()
- if cc_list[0] == 'ccache':
- d.setVar('OECMAKE_C_COMPILER_LAUNCHER', cc_list[0])
- d.setVar('OECMAKE_C_COMPILER', cc_list[1])
- else:
- d.setVar('OECMAKE_C_COMPILER', cc_list[0])
-
- if not d.getVar('OECMAKE_CXX_COMPILER'):
- cxx_list = d.getVar('CXX').split()
- if cxx_list[0] == 'ccache':
- d.setVar('OECMAKE_CXX_COMPILER_LAUNCHER', cxx_list[0])
- d.setVar('OECMAKE_CXX_COMPILER', cxx_list[1])
- else:
- d.setVar('OECMAKE_CXX_COMPILER', cxx_list[0])
}
OECMAKE_AR ?= "${AR}"
@@ -51,8 +34,23 @@ OECMAKE_CXX_LINK_FLAGS ?= "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} ${CXXFLAGS} ${LD
CXXFLAGS += "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS}"
CFLAGS += "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS}"
-OECMAKE_C_COMPILER_LAUNCHER ?= ""
-OECMAKE_CXX_COMPILER_LAUNCHER ?= ""
+def oecmake_map_compiler(compiler, d):
+ args = d.getVar(compiler).split()
+ if args[0] == "ccache":
+ return args[1], args[0]
+ return args[0], ""
+
+# C/C++ Compiler (without cpu arch/tune arguments)
+OECMAKE_C_COMPILER ?= "${@oecmake_map_compiler('CC', d)[0]}"
+OECMAKE_C_COMPILER_LAUNCHER ?= "${@oecmake_map_compiler('CC', d)[1]}"
+OECMAKE_CXX_COMPILER ?= "${@oecmake_map_compiler('CXX', d)[0]}"
+OECMAKE_CXX_COMPILER_LAUNCHER ?= "${@oecmake_map_compiler('CXX', d)[1]}"
+
+# clear compiler vars for allarch to avoid sig hash difference
+OECMAKE_C_COMPILER_allarch = ""
+OECMAKE_C_COMPILER_LAUNCHER_allarch = ""
+OECMAKE_CXX_COMPILER_allarch = ""
+OECMAKE_CXX_COMPILER_LAUNCHER_allarch = ""
OECMAKE_RPATH ?= ""
OECMAKE_PERLNATIVE_DIR ??= ""
@@ -70,15 +68,22 @@ CMAKE_BUILD_PARALLEL_LEVEL_task-install = "${@oe.utils.parallel_make(d, True)}"
OECMAKE_TARGET_COMPILE ?= "all"
OECMAKE_TARGET_INSTALL ?= "install"
+def map_host_os_to_system_name(host_os):
+ if host_os.startswith('mingw'):
+ return 'Windows'
+ if host_os.startswith('linux'):
+ return 'Linux'
+ return host_os
+
# CMake expects target architectures in the format of uname(2),
# which do not always match TARGET_ARCH, so all the necessary
# conversions should happen here.
-def map_target_arch_to_uname_arch(target_arch):
- if target_arch == "powerpc":
+def map_host_arch_to_uname_arch(host_arch):
+ if host_arch == "powerpc":
return "ppc"
- if target_arch == "powerpc64":
+ if host_arch == "powerpc64":
return "ppc64"
- return target_arch
+ return host_arch
cmake_do_generate_toolchain_file() {
if [ "${BUILD_SYS}" = "${HOST_SYS}" ]; then
@@ -88,8 +93,8 @@ cmake_do_generate_toolchain_file() {
# CMake system name must be something like "Linux".
# This is important for cross-compiling.
$cmake_crosscompiling
-set( CMAKE_SYSTEM_NAME `echo ${TARGET_OS} | sed -e 's/^./\u&/' -e 's/^\(Linux\).*/\1/'` )
-set( CMAKE_SYSTEM_PROCESSOR ${@map_target_arch_to_uname_arch(d.getVar('TARGET_ARCH'))} )
+set( CMAKE_SYSTEM_NAME ${@map_host_os_to_system_name(d.getVar('HOST_OS'))} )
+set( CMAKE_SYSTEM_PROCESSOR ${@map_host_arch_to_uname_arch(d.getVar('HOST_ARCH'))} )
set( CMAKE_C_COMPILER ${OECMAKE_C_COMPILER} )
set( CMAKE_CXX_COMPILER ${OECMAKE_CXX_COMPILER} )
set( CMAKE_C_COMPILER_LAUNCHER ${OECMAKE_C_COMPILER_LAUNCHER} )
@@ -175,6 +180,9 @@ cmake_do_configure() {
-DCMAKE_INSTALL_LIBDIR:PATH=${@os.path.relpath(d.getVar('libdir'), d.getVar('prefix') + '/')} \
-DCMAKE_INSTALL_INCLUDEDIR:PATH=${@os.path.relpath(d.getVar('includedir'), d.getVar('prefix') + '/')} \
-DCMAKE_INSTALL_DATAROOTDIR:PATH=${@os.path.relpath(d.getVar('datadir'), d.getVar('prefix') + '/')} \
+ -DPYTHON_EXECUTABLE:PATH=${PYTHON} \
+ -DPython_EXECUTABLE:PATH=${PYTHON} \
+ -DPython3_EXECUTABLE:PATH=${PYTHON} \
-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
-DCMAKE_INSTALL_SO_NO_EXE=0 \
-DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain.cmake \
diff --git a/meta/classes/cml1.bbclass b/meta/classes/cml1.bbclass
index c7f6723cb3..9b9866f4c3 100644
--- a/meta/classes/cml1.bbclass
+++ b/meta/classes/cml1.bbclass
@@ -1,3 +1,13 @@
+# returns all the elements from the src uri that are .cfg files
+def find_cfgs(d):
+ sources=src_patches(d, True)
+ sources_list=[]
+ for s in sources:
+ if s.endswith('.cfg'):
+ sources_list.append(s)
+
+ return sources_list
+
cml1_do_configure() {
set -e
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
@@ -17,12 +27,16 @@ CROSS_CURSES_INC = '-DCURSES_LOC="<curses.h>"'
TERMINFO = "${STAGING_DATADIR_NATIVE}/terminfo"
KCONFIG_CONFIG_COMMAND ??= "menuconfig"
+KCONFIG_CONFIG_ROOTDIR ??= "${B}"
python do_menuconfig() {
import shutil
+ config = os.path.join(d.getVar('KCONFIG_CONFIG_ROOTDIR'), ".config")
+ configorig = os.path.join(d.getVar('KCONFIG_CONFIG_ROOTDIR'), ".config.orig")
+
try:
- mtime = os.path.getmtime(".config")
- shutil.copy(".config", ".config.orig")
+ mtime = os.path.getmtime(config)
+ shutil.copy(config, configorig)
except OSError:
mtime = 0
@@ -32,7 +46,7 @@ python do_menuconfig() {
# FIXME this check can be removed when the minimum bitbake version has been bumped
if hasattr(bb.build, 'write_taint'):
try:
- newmtime = os.path.getmtime(".config")
+ newmtime = os.path.getmtime(config)
except OSError:
newmtime = 0
@@ -42,7 +56,7 @@ python do_menuconfig() {
}
do_menuconfig[depends] += "ncurses-native:do_populate_sysroot"
do_menuconfig[nostamp] = "1"
-do_menuconfig[dirs] = "${B}"
+do_menuconfig[dirs] = "${KCONFIG_CONFIG_ROOTDIR}"
addtask menuconfig after do_configure
python do_diffconfig() {
@@ -51,8 +65,8 @@ python do_diffconfig() {
workdir = d.getVar('WORKDIR')
fragment = workdir + '/fragment.cfg'
- configorig = '.config.orig'
- config = '.config'
+ configorig = os.path.join(d.getVar('KCONFIG_CONFIG_ROOTDIR'), ".config.orig")
+ config = os.path.join(d.getVar('KCONFIG_CONFIG_ROOTDIR'), ".config")
try:
md5newconfig = bb.utils.md5_file(configorig)
@@ -75,5 +89,5 @@ python do_diffconfig() {
}
do_diffconfig[nostamp] = "1"
-do_diffconfig[dirs] = "${B}"
+do_diffconfig[dirs] = "${KCONFIG_CONFIG_ROOTDIR}"
addtask diffconfig
diff --git a/meta/classes/core-image.bbclass b/meta/classes/core-image.bbclass
index 94f112c397..88ca272145 100644
--- a/meta/classes/core-image.bbclass
+++ b/meta/classes/core-image.bbclass
@@ -26,6 +26,7 @@
# - debug-tweaks - makes an image suitable for development, e.g. allowing passwordless root logins
# - empty-root-password
# - allow-empty-password
+# - allow-root-login
# - post-install-logging
# - dev-pkgs - development packages (headers, etc.) for all installed packages in the rootfs
# - dbg-pkgs - debug symbol packages for all installed packages in the rootfs
@@ -33,6 +34,7 @@
# - bash-completion-pkgs - bash-completion packages for recipes using bash-completion bbclass
# - ptest-pkgs - ptest packages for all ptest-enabled recipes
# - read-only-rootfs - tweaks an image to support read-only rootfs
+# - stateless-rootfs - systemctl-native not run, image populated by systemd at runtime
# - splash - bootup splash screen
#
FEATURE_PACKAGES_x11 = "packagegroup-core-x11"
diff --git a/meta/classes/cve-check.bbclass b/meta/classes/cve-check.bbclass
index 74124364b2..25cefda92e 100644
--- a/meta/classes/cve-check.bbclass
+++ b/meta/classes/cve-check.bbclass
@@ -27,25 +27,59 @@ CVE_VERSION ??= "${PV}"
CVE_CHECK_DB_DIR ?= "${DL_DIR}/CVE_CHECK"
CVE_CHECK_DB_FILE ?= "${CVE_CHECK_DB_DIR}/nvdcve_1.1.db"
+CVE_CHECK_DB_FILE_LOCK ?= "${CVE_CHECK_DB_FILE}.lock"
CVE_CHECK_LOG ?= "${T}/cve.log"
CVE_CHECK_TMP_FILE ?= "${TMPDIR}/cve_check"
+CVE_CHECK_SUMMARY_DIR ?= "${LOG_DIR}/cve"
+CVE_CHECK_SUMMARY_FILE_NAME ?= "cve-summary"
+CVE_CHECK_SUMMARY_FILE ?= "${CVE_CHECK_SUMMARY_DIR}/${CVE_CHECK_SUMMARY_FILE_NAME}"
CVE_CHECK_DIR ??= "${DEPLOY_DIR}/cve"
+CVE_CHECK_RECIPE_FILE ?= "${CVE_CHECK_DIR}/${PN}"
CVE_CHECK_MANIFEST ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cve"
CVE_CHECK_COPY_FILES ??= "1"
CVE_CHECK_CREATE_MANIFEST ??= "1"
+CVE_CHECK_REPORT_PATCHED ??= "1"
+
# Whitelist for packages (PN)
CVE_CHECK_PN_WHITELIST ?= ""
# Whitelist for CVE. If a CVE is found, then it is considered patched.
# The value is a string containing space separated CVE values:
-#
+#
# CVE_CHECK_WHITELIST = 'CVE-2014-2524 CVE-2018-1234'
-#
+#
CVE_CHECK_WHITELIST ?= ""
+python cve_save_summary_handler () {
+ import shutil
+ import datetime
+
+ cve_tmp_file = d.getVar("CVE_CHECK_TMP_FILE")
+
+ cve_summary_name = d.getVar("CVE_CHECK_SUMMARY_FILE_NAME")
+ cvelogpath = d.getVar("CVE_CHECK_SUMMARY_DIR")
+ bb.utils.mkdirhier(cvelogpath)
+
+ timestamp = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
+ cve_summary_file = os.path.join(cvelogpath, "%s-%s.txt" % (cve_summary_name, timestamp))
+
+ if os.path.exists(cve_tmp_file):
+ shutil.copyfile(cve_tmp_file, cve_summary_file)
+
+ if cve_summary_file and os.path.exists(cve_summary_file):
+ cvefile_link = os.path.join(cvelogpath, cve_summary_name)
+
+ if os.path.exists(os.path.realpath(cvefile_link)):
+ os.remove(cvefile_link)
+ os.symlink(os.path.basename(cve_summary_file), cvefile_link)
+}
+
+addhandler cve_save_summary_handler
+cve_save_summary_handler[eventmask] = "bb.event.BuildCompleted"
+
python do_cve_check () {
"""
Check recipe for patched and unpatched CVEs
@@ -56,17 +90,17 @@ python do_cve_check () {
patched_cves = get_patches_cves(d)
except FileNotFoundError:
bb.fatal("Failure in searching patches")
- patched, unpatched = check_cves(d, patched_cves)
+ whitelisted, patched, unpatched = check_cves(d, patched_cves)
if patched or unpatched:
cve_data = get_cve_info(d, patched + unpatched)
- cve_write_data(d, patched, unpatched, cve_data)
+ cve_write_data(d, patched, unpatched, whitelisted, cve_data)
else:
bb.note("No CVE database found, skipping CVE check")
}
-addtask cve_check before do_build
-do_cve_check[depends] = "cve-update-db-native:do_populate_cve_db"
+addtask cve_check before do_build after do_fetch
+do_cve_check[depends] = "cve-update-db-native:do_fetch"
do_cve_check[nostamp] = "1"
python cve_check_cleanup () {
@@ -87,7 +121,7 @@ python cve_check_write_rootfs_manifest () {
import shutil
if d.getVar("CVE_CHECK_COPY_FILES") == "1":
- deploy_file = os.path.join(d.getVar("CVE_CHECK_DIR"), d.getVar("PN"))
+ deploy_file = d.getVar("CVE_CHECK_RECIPE_FILE")
if os.path.exists(deploy_file):
bb.utils.remove(deploy_file)
@@ -179,13 +213,13 @@ def check_cves(d, patched_cves):
products = d.getVar("CVE_PRODUCT").split()
# If this has been unset then we're not scanning for CVEs here (for example, image recipes)
if not products:
- return ([], [])
+ return ([], [], [])
pv = d.getVar("CVE_VERSION").split("+git")[0]
# If the recipe has been whitlisted we return empty lists
if d.getVar("PN") in d.getVar("CVE_CHECK_PN_WHITELIST").split():
bb.note("Recipe has been whitelisted, skipping check")
- return ([], [])
+ return ([], [], [])
old_cve_whitelist = d.getVar("CVE_CHECK_CVE_WHITELIST")
if old_cve_whitelist:
@@ -221,7 +255,7 @@ def check_cves(d, patched_cves):
(_, _, _, version_start, operator_start, version_end, operator_end) = row
#bb.debug(2, "Evaluating row " + str(row))
- if (operator_start == '=' and pv == version_start):
+ if (operator_start == '=' and pv == version_start) or version_start == '-':
vulnerable = True
else:
if operator_start:
@@ -263,7 +297,7 @@ def check_cves(d, patched_cves):
conn.close()
- return (list(patched_cves), cves_unpatched)
+ return (list(cve_whitelist), list(patched_cves), cves_unpatched)
def get_cve_info(d, cves):
"""
@@ -287,7 +321,7 @@ def get_cve_info(d, cves):
conn.close()
return cve_data
-def cve_write_data(d, patched, unpatched, cve_data):
+def cve_write_data(d, patched, unpatched, whitelisted, cve_data):
"""
Write CVE information in WORKDIR; and to CVE_CHECK_DIR, and
CVE manifest if enabled.
@@ -300,10 +334,15 @@ def cve_write_data(d, patched, unpatched, cve_data):
bb.utils.mkdirhier(os.path.dirname(cve_file))
for cve in sorted(cve_data):
+ is_patched = cve in patched
+ if is_patched and (d.getVar("CVE_CHECK_REPORT_PATCHED") != "1"):
+ continue
write_string += "PACKAGE NAME: %s\n" % d.getVar("PN")
- write_string += "PACKAGE VERSION: %s\n" % d.getVar("PV")
+ write_string += "PACKAGE VERSION: %s%s\n" % (d.getVar("EXTENDPE"), d.getVar("PV"))
write_string += "CVE: %s\n" % cve
- if cve in patched:
+ if cve in whitelisted:
+ write_string += "CVE STATUS: Whitelisted\n"
+ elif is_patched:
write_string += "CVE STATUS: Patched\n"
else:
unpatched_cves.append(cve)
@@ -317,17 +356,20 @@ def cve_write_data(d, patched, unpatched, cve_data):
if unpatched_cves:
bb.warn("Found unpatched CVE (%s), for more information check %s" % (" ".join(unpatched_cves),cve_file))
- with open(cve_file, "w") as f:
- bb.note("Writing file %s with CVE information" % cve_file)
- f.write(write_string)
-
- if d.getVar("CVE_CHECK_COPY_FILES") == "1":
- cve_dir = d.getVar("CVE_CHECK_DIR")
- bb.utils.mkdirhier(cve_dir)
- deploy_file = os.path.join(cve_dir, d.getVar("PN"))
- with open(deploy_file, "w") as f:
+ if write_string:
+ with open(cve_file, "w") as f:
+ bb.note("Writing file %s with CVE information" % cve_file)
f.write(write_string)
- if d.getVar("CVE_CHECK_CREATE_MANIFEST") == "1":
- with open(d.getVar("CVE_CHECK_TMP_FILE"), "a") as f:
- f.write("%s" % write_string)
+ if d.getVar("CVE_CHECK_COPY_FILES") == "1":
+ deploy_file = d.getVar("CVE_CHECK_RECIPE_FILE")
+ bb.utils.mkdirhier(os.path.dirname(deploy_file))
+ with open(deploy_file, "w") as f:
+ f.write(write_string)
+
+ if d.getVar("CVE_CHECK_CREATE_MANIFEST") == "1":
+ cvelogpath = d.getVar("CVE_CHECK_SUMMARY_DIR")
+ bb.utils.mkdirhier(cvelogpath)
+
+ with open(d.getVar("CVE_CHECK_TMP_FILE"), "a") as f:
+ f.write("%s" % write_string)
diff --git a/meta/classes/deploy.bbclass b/meta/classes/deploy.bbclass
index 6d52908783..737c26122b 100644
--- a/meta/classes/deploy.bbclass
+++ b/meta/classes/deploy.bbclass
@@ -8,4 +8,5 @@ python do_deploy_setscene () {
}
addtask do_deploy_setscene
do_deploy[dirs] = "${DEPLOYDIR} ${B}"
+do_deploy[cleandirs] = "${DEPLOYDIR}"
do_deploy[stamp-extra-info] = "${MACHINE_ARCH}"
diff --git a/meta/classes/devtool-source.bbclass b/meta/classes/devtool-source.bbclass
index 280d6009f3..41900e651f 100644
--- a/meta/classes/devtool-source.bbclass
+++ b/meta/classes/devtool-source.bbclass
@@ -199,6 +199,7 @@ python devtool_post_patch() {
# Run do_patch function with the override applied
localdata = bb.data.createCopy(d)
localdata.setVar('OVERRIDES', ':'.join(no_overrides))
+ localdata.setVar('FILESOVERRIDES', ':'.join(no_overrides))
bb.build.exec_func('do_patch', localdata)
rm_patches()
# Now we need to reconcile the dev branch with the no-overrides one
@@ -216,7 +217,8 @@ python devtool_post_patch() {
# Reset back to the initial commit on a new branch
bb.process.run('git checkout %s -b devtool-override-%s' % (initial_rev, override), cwd=srcsubdir)
# Run do_patch function with the override applied
- localdata.appendVar('OVERRIDES', ':%s' % override)
+ localdata.setVar('OVERRIDES', ':'.join(no_overrides + [override]))
+ localdata.setVar('FILESOVERRIDES', ':'.join(no_overrides + [override]))
bb.build.exec_func('do_patch', localdata)
rm_patches()
# Now we need to reconcile the new branch with the no-overrides one
diff --git a/meta/classes/externalsrc.bbclass b/meta/classes/externalsrc.bbclass
index d200129987..dd09395788 100644
--- a/meta/classes/externalsrc.bbclass
+++ b/meta/classes/externalsrc.bbclass
@@ -85,7 +85,7 @@ python () {
if task.endswith("_setscene"):
# sstate is never going to work for external source trees, disable it
bb.build.deltask(task, d)
- else:
+ elif os.path.realpath(d.getVar('S')) == os.path.realpath(d.getVar('B')):
# Since configure will likely touch ${S}, ensure only we lock so one task has access at a time
d.appendVarFlag(task, "lockfiles", " ${S}/singletask.lock")
diff --git a/meta/classes/features_check.bbclass b/meta/classes/features_check.bbclass
index 876d32e315..b3c8047861 100644
--- a/meta/classes/features_check.bbclass
+++ b/meta/classes/features_check.bbclass
@@ -1,23 +1,13 @@
-# Allow checking of required and conflicting DISTRO_FEATURES
+# Allow checking of required and conflicting features
#
-# ANY_OF_DISTRO_FEATURES: ensure at least one item on this list is included
-# in DISTRO_FEATURES.
-# REQUIRED_DISTRO_FEATURES: ensure every item on this list is included
-# in DISTRO_FEATURES.
-# CONFLICT_DISTRO_FEATURES: ensure no item in this list is included in
-# DISTRO_FEATURES.
-# ANY_OF_MACHINE_FEATURES: ensure at least one item on this list is included
-# in MACHINE_FEATURES.
-# REQUIRED_MACHINE_FEATURES: ensure every item on this list is included
-# in MACHINE_FEATURES.
-# CONFLICT_MACHINE_FEATURES: ensure no item in this list is included in
-# MACHINE_FEATURES.
-# ANY_OF_COMBINED_FEATURES: ensure at least one item on this list is included
-# in COMBINED_FEATURES.
-# REQUIRED_COMBINED_FEATURES: ensure every item on this list is included
-# in COMBINED_FEATURES.
-# CONFLICT_COMBINED_FEATURES: ensure no item in this list is included in
-# COMBINED_FEATURES.
+# xxx = [DISTRO,MACHINE,COMBINED]
+#
+# ANY_OF_xxx_FEATURES: ensure at least one item on this list is included
+# in xxx_FEATURES.
+# REQUIRED_xxx_FEATURES: ensure every item on this list is included
+# in xxx_FEATURES.
+# CONFLICT_xxx_FEATURES: ensure no item in this list is included in
+# xxx_FEATURES.
#
# Copyright 2019 (C) Texas Instruments Inc.
# Copyright 2013 (C) O.S. Systems Software LTDA.
@@ -26,63 +16,42 @@ python () {
if d.getVar('PARSE_ALL_RECIPES', False):
return
- # Assume at least one var is set.
- distro_features = set((d.getVar('DISTRO_FEATURES') or '').split())
-
- any_of_distro_features = set((d.getVar('ANY_OF_DISTRO_FEATURES') or '').split())
- if any_of_distro_features:
- if set.isdisjoint(any_of_distro_features, distro_features):
- raise bb.parse.SkipRecipe("one of '%s' needs to be in DISTRO_FEATURES" % ' '.join(any_of_distro_features))
-
- required_distro_features = set((d.getVar('REQUIRED_DISTRO_FEATURES') or '').split())
- if required_distro_features:
- missing = set.difference(required_distro_features, distro_features)
- if missing:
- raise bb.parse.SkipRecipe("missing required distro feature%s '%s' (not in DISTRO_FEATURES)" % ('s' if len(missing) > 1 else '', ' '.join(missing)))
-
- conflict_distro_features = set((d.getVar('CONFLICT_DISTRO_FEATURES') or '').split())
- if conflict_distro_features:
- conflicts = set.intersection(conflict_distro_features, distro_features)
- if conflicts:
- raise bb.parse.SkipRecipe("conflicting distro feature%s '%s' (in DISTRO_FEATURES)" % ('s' if len(conflicts) > 1 else '', ' '.join(conflicts)))
-
- # Assume at least one var is set.
- machine_features = set((d.getVar('MACHINE_FEATURES') or '').split())
-
- any_of_machine_features = set((d.getVar('ANY_OF_MACHINE_FEATURES') or '').split())
- if any_of_machine_features:
- if set.isdisjoint(any_of_machine_features, machine_features):
- raise bb.parse.SkipRecipe("one of '%s' needs to be in MACHINE_FEATURES" % ' '.join(any_of_machine_features))
-
- required_machine_features = set((d.getVar('REQUIRED_MACHINE_FEATURES') or '').split())
- if required_machine_features:
- missing = set.difference(required_machine_features, machine_features)
- if missing:
- raise bb.parse.SkipRecipe("missing required machine feature%s '%s' (not in MACHINE_FEATURES)" % ('s' if len(missing) > 1 else '', ' '.join(missing)))
-
- conflict_machine_features = set((d.getVar('CONFLICT_MACHINE_FEATURES') or '').split())
- if conflict_machine_features:
- conflicts = set.intersection(conflict_machine_features, machine_features)
- if conflicts:
- raise bb.parse.SkipRecipe("conflicting machine feature%s '%s' (in MACHINE_FEATURES)" % ('s' if len(conflicts) > 1 else '', ' '.join(conflicts)))
-
- # Assume at least one var is set.
- combined_features = set((d.getVar('COMBINED_FEATURES') or '').split())
-
- any_of_combined_features = set((d.getVar('ANY_OF_COMBINED_FEATURES') or '').split())
- if any_of_combined_features:
- if set.isdisjoint(any_of_combined_features, combined_features):
- raise bb.parse.SkipRecipe("one of '%s' needs to be in COMBINED_FEATURES" % ' '.join(any_of_combined_features))
-
- required_combined_features = set((d.getVar('REQUIRED_COMBINED_FEATURES') or '').split())
- if required_combined_features:
- missing = set.difference(required_combined_features, combined_features)
- if missing:
- raise bb.parse.SkipRecipe("missing required machine feature%s '%s' (not in COMBINED_FEATURES)" % ('s' if len(missing) > 1 else '', ' '.join(missing)))
-
- conflict_combined_features = set((d.getVar('CONFLICT_COMBINED_FEATURES') or '').split())
- if conflict_combined_features:
- conflicts = set.intersection(conflict_combined_features, combined_features)
- if conflicts:
- raise bb.parse.SkipRecipe("conflicting machine feature%s '%s' (in COMBINED_FEATURES)" % ('s' if len(conflicts) > 1 else '', ' '.join(conflicts)))
+ unused = True
+
+ for kind in ['DISTRO', 'MACHINE', 'COMBINED']:
+ if d.getVar('ANY_OF_' + kind + '_FEATURES') is None and \
+ d.overridedata.get('ANY_OF_' + kind + '_FEATURES') is None and \
+ d.getVar('REQUIRED_' + kind + '_FEATURES') is None and \
+ d.overridedata.get('REQUIRED_' + kind + '_FEATURES') is None and \
+ d.getVar('CONFLICT_' + kind + '_FEATURES') is None and \
+ d.overridedata.get('CONFLICT_' + kind + '_FEATURES') is None:
+ continue
+
+ unused = False
+
+ # Assume at least one var is set.
+ features = set((d.getVar(kind + '_FEATURES') or '').split())
+
+ any_of_features = set((d.getVar('ANY_OF_' + kind + '_FEATURES') or '').split())
+ if any_of_features:
+ if set.isdisjoint(any_of_features, features):
+ raise bb.parse.SkipRecipe("one of '%s' needs to be in %s_FEATURES"
+ % (' '.join(any_of_features), kind))
+
+ required_features = set((d.getVar('REQUIRED_' + kind + '_FEATURES') or '').split())
+ if required_features:
+ missing = set.difference(required_features, features)
+ if missing:
+ raise bb.parse.SkipRecipe("missing required %s feature%s '%s' (not in %s_FEATURES)"
+ % (kind.lower(), 's' if len(missing) > 1 else '', ' '.join(missing), kind))
+
+ conflict_features = set((d.getVar('CONFLICT_' + kind + '_FEATURES') or '').split())
+ if conflict_features:
+ conflicts = set.intersection(conflict_features, features)
+ if conflicts:
+ raise bb.parse.SkipRecipe("conflicting %s feature%s '%s' (in %s_FEATURES)"
+ % (kind.lower(), 's' if len(conflicts) > 1 else '', ' '.join(conflicts), kind))
+
+ if unused:
+ bb.warn("Recipe inherits features_check but doesn't use it")
}
diff --git a/meta/classes/fontcache.bbclass b/meta/classes/fontcache.bbclass
index 97e7f17f00..624a420a0d 100644
--- a/meta/classes/fontcache.bbclass
+++ b/meta/classes/fontcache.bbclass
@@ -7,7 +7,7 @@ PACKAGE_WRITE_DEPS += "qemu-native"
inherit qemu
FONT_PACKAGES ??= "${PN}"
-FONT_EXTRA_RDEPENDS ?= "fontconfig-utils"
+FONT_EXTRA_RDEPENDS ?= "${MLPREFIX}fontconfig-utils"
FONTCONFIG_CACHE_DIR ?= "${localstatedir}/cache/fontconfig"
FONTCONFIG_CACHE_PARAMS ?= "-v"
# You can change this to e.g. FC_DEBUG=16 to debug fc-cache issues,
diff --git a/meta/classes/go-mod.bbclass b/meta/classes/go-mod.bbclass
new file mode 100644
index 0000000000..cabb04d0ec
--- /dev/null
+++ b/meta/classes/go-mod.bbclass
@@ -0,0 +1,20 @@
+# Handle Go Modules support
+#
+# When using Go Modules, the the current working directory MUST be at or below
+# the location of the 'go.mod' file when the go tool is used, and there is no
+# way to tell it to look elsewhere. It will automatically look upwards for the
+# file, but not downwards.
+#
+# To support this use case, we provide the `GO_WORKDIR` variable, which defaults
+# to `GO_IMPORT` but allows for easy override.
+#
+# Copyright 2020 (C) O.S. Systems Software LTDA.
+
+# The '-modcacherw' option ensures we have write access to the cached objects so
+# we avoid errors during clean task as well as when removing the TMPDIR.
+GOBUILDFLAGS_append = " -modcacherw"
+
+inherit go
+
+GO_WORKDIR ?= "${GO_IMPORT}"
+do_compile[dirs] += "${B}/src/${GO_WORKDIR}"
diff --git a/meta/classes/go.bbclass b/meta/classes/go.bbclass
index c99689ac59..a9e31b50ea 100644
--- a/meta/classes/go.bbclass
+++ b/meta/classes/go.bbclass
@@ -41,7 +41,7 @@ GO_EXTLDFLAGS ?= "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} ${GO_RPATH_LINK} ${LDFLAGS
GO_LINKMODE ?= ""
GO_LINKMODE_class-nativesdk = "--linkmode=external"
GO_LDFLAGS ?= '-ldflags="${GO_RPATH} ${GO_LINKMODE} -extldflags '${GO_EXTLDFLAGS}'"'
-export GOBUILDFLAGS ?= "-v ${GO_LDFLAGS}"
+export GOBUILDFLAGS ?= "-v ${GO_LDFLAGS} -trimpath"
export GOPATH_OMIT_IN_ACTIONID ?= "1"
export GOPTESTBUILDFLAGS ?= "${GOBUILDFLAGS} -c"
export GOPTESTFLAGS ?= ""
diff --git a/meta/classes/grub-efi-cfg.bbclass b/meta/classes/grub-efi-cfg.bbclass
index 8b5ff20c72..3a2cdd698b 100644
--- a/meta/classes/grub-efi-cfg.bbclass
+++ b/meta/classes/grub-efi-cfg.bbclass
@@ -88,6 +88,12 @@ python build_efi_cfg() {
for label in labels.split():
localdata = d.createCopy()
+ overrides = localdata.getVar('OVERRIDES')
+ if not overrides:
+ bb.fatal('OVERRIDES not defined')
+
+ localdata.setVar('OVERRIDES', 'grub_' + label + ':' + overrides)
+
for btype in btypes:
cfgfile.write('\nmenuentry \'%s%s\'{\n' % (label, btype[0]))
lb = label
diff --git a/meta/classes/gtk-icon-cache.bbclass b/meta/classes/gtk-icon-cache.bbclass
index 91cb4ad409..340a283851 100644
--- a/meta/classes/gtk-icon-cache.bbclass
+++ b/meta/classes/gtk-icon-cache.bbclass
@@ -1,6 +1,15 @@
FILES_${PN} += "${datadir}/icons/hicolor"
-DEPENDS +=" ${@['hicolor-icon-theme', '']['${BPN}' == 'hicolor-icon-theme']} gtk+3-native"
+#gtk+3 reqiure GTK3DISTROFEATURES, DEPENDS on it make all the
+#recipes inherit this class require GTK3DISTROFEATURES
+inherit features_check
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+DEPENDS +=" ${@['hicolor-icon-theme', '']['${BPN}' == 'hicolor-icon-theme']} \
+ ${@['gdk-pixbuf', '']['${BPN}' == 'gdk-pixbuf']} \
+ ${@['gtk+3', '']['${BPN}' == 'gtk+3']} \
+ gtk+3-native \
+"
PACKAGE_WRITE_DEPS += "gtk+3-native gdk-pixbuf-native"
@@ -48,9 +57,18 @@ python populate_packages_append () {
bb.note("adding hicolor-icon-theme dependency to %s" % pkg)
rdepends = ' ' + d.getVar('MLPREFIX', False) + "hicolor-icon-theme"
d.appendVar('RDEPENDS_%s' % pkg, rdepends)
-
+
+ #gtk_icon_cache_postinst depend on gdk-pixbuf and gtk+3
+ bb.note("adding gdk-pixbuf dependency to %s" % pkg)
+ rdepends = ' ' + d.getVar('MLPREFIX', False) + "gdk-pixbuf"
+ d.appendVar('RDEPENDS_%s' % pkg, rdepends)
+
+ bb.note("adding gtk+3 dependency to %s" % pkg)
+ rdepends = ' ' + d.getVar('MLPREFIX', False) + "gtk+3"
+ d.appendVar('RDEPENDS_%s' % pkg, rdepends)
+
bb.note("adding gtk-icon-cache postinst and postrm scripts to %s" % pkg)
-
+
postinst = d.getVar('pkg_postinst_%s' % pkg)
if not postinst:
postinst = '#!/bin/sh\n'
diff --git a/meta/classes/gtk-immodules-cache.bbclass b/meta/classes/gtk-immodules-cache.bbclass
index 9bb0af8b26..8e783fb493 100644
--- a/meta/classes/gtk-immodules-cache.bbclass
+++ b/meta/classes/gtk-immodules-cache.bbclass
@@ -22,6 +22,7 @@ else
gtk-query-immodules-2.0 > ${libdir}/gtk-2.0/2.10.0/immodules.cache
fi
if [ ! -z `which gtk-query-immodules-3.0` ]; then
+ mkdir -p ${libdir}/gtk-3.0/3.0.0
gtk-query-immodules-3.0 > ${libdir}/gtk-3.0/3.0.0/immodules.cache
fi
fi
diff --git a/meta/classes/image-artifact-names.bbclass b/meta/classes/image-artifact-names.bbclass
new file mode 100644
index 0000000000..3ac8dd731a
--- /dev/null
+++ b/meta/classes/image-artifact-names.bbclass
@@ -0,0 +1,15 @@
+##################################################################
+# Specific image creation and rootfs population info.
+##################################################################
+
+IMAGE_BASENAME ?= "${PN}"
+IMAGE_VERSION_SUFFIX ?= "-${DATETIME}"
+IMAGE_VERSION_SUFFIX[vardepsexclude] += "DATETIME"
+IMAGE_NAME ?= "${IMAGE_BASENAME}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
+IMAGE_LINK_NAME ?= "${IMAGE_BASENAME}-${MACHINE}"
+
+# IMAGE_NAME is the base name for everything produced when building images.
+# The actual image that contains the rootfs has an additional suffix (.rootfs
+# by default) followed by additional suffices which describe the format (.ext4,
+# .ext4.xz, etc.).
+IMAGE_NAME_SUFFIX ??= ".rootfs"
diff --git a/meta/classes/image-live.bbclass b/meta/classes/image-live.bbclass
index 54058b350d..9ea5ddc312 100644
--- a/meta/classes/image-live.bbclass
+++ b/meta/classes/image-live.bbclass
@@ -22,7 +22,7 @@
# ${HDDIMG_ID} - FAT image volume-id
# ${ROOTFS} - indicates a filesystem image to include as the root filesystem (optional)
-inherit live-vm-common
+inherit live-vm-common image-artifact-names
do_bootimg[depends] += "dosfstools-native:do_populate_sysroot \
mtools-native:do_populate_sysroot \
diff --git a/meta/classes/image-prelink.bbclass b/meta/classes/image-prelink.bbclass
index 04dd57c940..ebf6e6d7ee 100644
--- a/meta/classes/image-prelink.bbclass
+++ b/meta/classes/image-prelink.bbclass
@@ -17,6 +17,16 @@ prelink_image () {
pre_prelink_size=`du -ks ${IMAGE_ROOTFS} | awk '{size = $1 ; print size }'`
echo "Size before prelinking $pre_prelink_size."
+ # The filesystem may not contain sysconfdir so establish what is present
+ # to enable cleanup after temporary creation of sysconfdir if needed
+ presentdir="${IMAGE_ROOTFS}${sysconfdir}"
+ while [ "${IMAGE_ROOTFS}" != "${presentdir}" ] ; do
+ [ ! -d "${presentdir}" ] || break
+ presentdir=`dirname "${presentdir}"`
+ done
+
+ mkdir -p "${IMAGE_ROOTFS}${sysconfdir}"
+
# We need a prelink conf on the filesystem, add one if it's missing
if [ ! -e ${IMAGE_ROOTFS}${sysconfdir}/prelink.conf ]; then
cp ${STAGING_ETCDIR_NATIVE}/prelink.conf \
@@ -59,6 +69,13 @@ prelink_image () {
rm $ldsoconf
fi
+ # Remove any directories temporarily created for sysconfdir
+ cleanupdir="${IMAGE_ROOTFS}${sysconfdir}"
+ while [ "${presentdir}" != "${cleanupdir}" ] ; do
+ rmdir "${cleanupdir}"
+ cleanupdir=`dirname ${cleanupdir}`
+ done
+
pre_prelink_size=`du -ks ${IMAGE_ROOTFS} | awk '{size = $1 ; print size }'`
echo "Size after prelinking $pre_prelink_size."
}
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index 07aa1f1fa5..045f4494c8 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -62,10 +62,7 @@ def check_image_features(d):
valid_features = (d.getVarFlag('IMAGE_FEATURES', 'validitems') or "").split()
valid_features += d.getVarFlags('COMPLEMENTARY_GLOB').keys()
for var in d:
- if var.startswith("PACKAGE_GROUP_"):
- bb.warn("PACKAGE_GROUP is deprecated, please use FEATURE_PACKAGES instead")
- valid_features.append(var[14:])
- elif var.startswith("FEATURE_PACKAGES_"):
+ if var.startswith("FEATURE_PACKAGES_"):
valid_features.append(var[17:])
valid_features.sort()
@@ -124,7 +121,7 @@ python () {
def rootfs_variables(d):
from oe.rootfs import variable_depends
variables = ['IMAGE_DEVICE_TABLE','IMAGE_DEVICE_TABLES','BUILD_IMAGES_FROM_FEEDS','IMAGE_TYPES_MASKED','IMAGE_ROOTFS_ALIGNMENT','IMAGE_OVERHEAD_FACTOR','IMAGE_ROOTFS_SIZE','IMAGE_ROOTFS_EXTRA_SPACE',
- 'IMAGE_ROOTFS_MAXSIZE','IMAGE_NAME','IMAGE_LINK_NAME','IMAGE_MANIFEST','DEPLOY_DIR_IMAGE','IMAGE_FSTYPES','IMAGE_INSTALL_COMPLEMENTARY','IMAGE_LINGUAS', 'IMAGE_LINGUAS_COMPLEMENTARY',
+ 'IMAGE_ROOTFS_MAXSIZE','IMAGE_NAME','IMAGE_LINK_NAME','IMAGE_MANIFEST','DEPLOY_DIR_IMAGE','IMAGE_FSTYPES','IMAGE_INSTALL_COMPLEMENTARY','IMAGE_LINGUAS', 'IMAGE_LINGUAS_COMPLEMENTARY', 'IMAGE_LOCALES_ARCHIVE',
'MULTILIBRE_ALLOW_REP','MULTILIB_TEMP_ROOTFS','MULTILIB_VARIANTS','MULTILIBS','ALL_MULTILIB_PACKAGE_ARCHS','MULTILIB_GLOBAL_VARIANTS','BAD_RECOMMENDATIONS','NO_RECOMMENDATIONS',
'PACKAGE_ARCHS','PACKAGE_CLASSES','TARGET_VENDOR','TARGET_ARCH','TARGET_OS','OVERRIDES','BBEXTENDVARIANT','FEED_DEPLOYDIR_BASE_URI','INTERCEPT_DIR','USE_DEVFS',
'CONVERSIONTYPES', 'IMAGE_GEN_DEBUGFS', 'ROOTFS_RO_UNNEEDED', 'IMGDEPLOYDIR', 'PACKAGE_EXCLUDE_COMPLEMENTARY', 'REPRODUCIBLE_TIMESTAMP_ROOTFS', 'IMAGE_INSTALL_DEBUGFS']
@@ -176,6 +173,9 @@ IMAGE_LINGUAS ?= "de-de fr-fr en-gb"
LINGUAS_INSTALL ?= "${@" ".join(map(lambda s: "locale-base-%s" % s, d.getVar('IMAGE_LINGUAS').split()))}"
+# per default create a locale archive
+IMAGE_LOCALES_ARCHIVE ?= '1'
+
# Prefer image, but use the fallback files for lookups if the image ones
# aren't yet available.
PSEUDO_PASSWD = "${IMAGE_ROOTFS}:${STAGING_DIR_NATIVE}"
@@ -551,14 +551,14 @@ def get_rootfs_size(d):
if rootfs_maxsize:
rootfs_maxsize_int = int(rootfs_maxsize)
if base_size > rootfs_maxsize_int:
- bb.fatal("The rootfs size %d(K) overrides IMAGE_ROOTFS_MAXSIZE: %d(K)" % \
+ bb.fatal("The rootfs size %d(K) exceeds IMAGE_ROOTFS_MAXSIZE: %d(K)" % \
(base_size, rootfs_maxsize_int))
# Check the initramfs size against INITRAMFS_MAXSIZE (if set)
if image_fstypes == initramfs_fstypes != '' and initramfs_maxsize:
initramfs_maxsize_int = int(initramfs_maxsize)
if base_size > initramfs_maxsize_int:
- bb.error("The initramfs size %d(K) overrides INITRAMFS_MAXSIZE: %d(K)" % \
+ bb.error("The initramfs size %d(K) exceeds INITRAMFS_MAXSIZE: %d(K)" % \
(base_size, initramfs_maxsize_int))
bb.error("You can set INITRAMFS_MAXSIZE a larger value. Usually, it should")
bb.fatal("be less than 1/2 of ram size, or you may fail to boot it.\n")
@@ -654,7 +654,7 @@ reproducible_final_image_task () {
if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then
if [ "$REPRODUCIBLE_TIMESTAMP_ROOTFS" = "" ]; then
REPRODUCIBLE_TIMESTAMP_ROOTFS=`git -C "${COREBASE}" log -1 --pretty=%ct 2>/dev/null` || true
- if [ "${REPRODUCIBLE_TIMESTAMP_ROOTFS}" = "" ]; then
+ if [ "$REPRODUCIBLE_TIMESTAMP_ROOTFS" = "" ]; then
REPRODUCIBLE_TIMESTAMP_ROOTFS=`stat -c%Y ${@bb.utils.which(d.getVar("BBPATH"), "conf/bitbake.conf")}`
fi
fi
diff --git a/meta/classes/image_types.bbclass b/meta/classes/image_types.bbclass
index f82f1d8862..66884af8e0 100644
--- a/meta/classes/image_types.bbclass
+++ b/meta/classes/image_types.bbclass
@@ -1,9 +1,3 @@
-# IMAGE_NAME is the base name for everything produced when building images.
-# The actual image that contains the rootfs has an additional suffix (.rootfs
-# by default) followed by additional suffices which describe the format (.ext4,
-# .ext4.xz, etc.).
-IMAGE_NAME_SUFFIX ??= ".rootfs"
-
# The default aligment of the size of the rootfs is set to 1KiB. In case
# you're using the SD card emulation of a QEMU system simulator you may
# set this value to 2048 (2MiB alignment).
@@ -231,7 +225,8 @@ IMAGE_CMD_f2fs () {
EXTRA_IMAGECMD = ""
-inherit siteinfo kernel-arch
+inherit siteinfo kernel-arch image-artifact-names
+
JFFS2_ENDIANNESS ?= "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', '-l', '-b', d)}"
JFFS2_ERASEBLOCK ?= "0x40000"
EXTRA_IMAGECMD_jffs2 ?= "--pad ${JFFS2_ENDIANNESS} --eraseblock=${JFFS2_ERASEBLOCK} --no-cleanmarkers"
@@ -273,7 +268,7 @@ IMAGE_TYPES = " \
ubi ubifs multiubi \
tar tar.gz tar.bz2 tar.xz tar.lz4 tar.zst \
cpio cpio.gz cpio.xz cpio.lzma cpio.lz4 \
- wic wic.gz wic.bz2 wic.lzma \
+ wic wic.gz wic.bz2 wic.lzma wic.zst \
container \
f2fs \
"
diff --git a/meta/classes/image_types_wic.bbclass b/meta/classes/image_types_wic.bbclass
index b83308b45c..286e0f5d54 100644
--- a/meta/classes/image_types_wic.bbclass
+++ b/meta/classes/image_types_wic.bbclass
@@ -1,10 +1,11 @@
# The WICVARS variable is used to define list of bitbake variables used in wic code
# variables from this list is written to <image>.env file
WICVARS ?= "\
- BBLAYERS IMGDEPLOYDIR DEPLOY_DIR_IMAGE FAKEROOTCMD IMAGE_BASENAME IMAGE_BOOT_FILES \
+ BBLAYERS IMGDEPLOYDIR DEPLOY_DIR_IMAGE FAKEROOTCMD IMAGE_BASENAME IMAGE_EFI_BOOT_FILES IMAGE_BOOT_FILES \
IMAGE_LINK_NAME IMAGE_ROOTFS INITRAMFS_FSTYPES INITRD INITRD_LIVE ISODIR RECIPE_SYSROOT_NATIVE \
ROOTFS_SIZE STAGING_DATADIR STAGING_DIR STAGING_LIBDIR TARGET_SYS \
- KERNEL_IMAGETYPE MACHINE INITRAMFS_IMAGE INITRAMFS_IMAGE_BUNDLE INITRAMFS_LINK_NAME APPEND"
+ KERNEL_IMAGETYPE MACHINE INITRAMFS_IMAGE INITRAMFS_IMAGE_BUNDLE INITRAMFS_LINK_NAME APPEND \
+ ASSUME_PROVIDED PSEUDO_IGNORE_PATHS"
inherit ${@bb.utils.contains('INITRAMFS_IMAGE_BUNDLE', '1', 'kernel-artifact-names', '', d)}
@@ -32,13 +33,14 @@ IMAGE_CMD_wic () {
if [ -z "$wks" ]; then
bbfatal "No kickstart files from WKS_FILES were found: ${WKS_FILES}. Please set WKS_FILE or WKS_FILES appropriately."
fi
-
- BUILDDIR="${TOPDIR}" wic create "$wks" --vars "${STAGING_DIR}/${MACHINE}/imgdata/" -e "${IMAGE_BASENAME}" -o "$build_wic/" ${WIC_CREATE_EXTRA_ARGS}
+ BUILDDIR="${TOPDIR}" PSEUDO_UNLOAD=1 wic create "$wks" --vars "${STAGING_DIR}/${MACHINE}/imgdata/" -e "${IMAGE_BASENAME}" -o "$build_wic/" ${WIC_CREATE_EXTRA_ARGS}
mv "$build_wic/$(basename "${wks%.wks}")"*.direct "$out${IMAGE_NAME_SUFFIX}.wic"
}
IMAGE_CMD_wic[vardepsexclude] = "WKS_FULL_PATH WKS_FILES TOPDIR"
do_image_wic[cleandirs] = "${WORKDIR}/build-wic"
+PSEUDO_IGNORE_PATHS .= ",${WORKDIR}/build-wic"
+
# Rebuild when the wks file or vars in WICVARS change
USING_WIC = "${@bb.utils.contains_any('IMAGE_FSTYPES', 'wic ' + ' '.join('wic.%s' % c for c in '${CONVERSIONTYPES}'.split()), '1', '', d)}"
WKS_FILE_CHECKSUM = "${@'${WKS_FULL_PATH}:%s' % os.path.exists('${WKS_FULL_PATH}') if '${USING_WIC}' else ''}"
@@ -86,6 +88,10 @@ python do_write_wks_template () {
bb.utils.copyfile(wks_file, "%s/%s" % (depdir, basename + '-' + os.path.basename(wks_file)))
}
+do_flush_pseudodb() {
+ ${FAKEROOTENV} ${FAKEROOTCMD} -S
+}
+
python () {
if d.getVar('USING_WIC'):
wks_file_u = d.getVar('WKS_FULL_PATH', False)
@@ -139,6 +145,7 @@ python do_rootfs_wicenv () {
depdir = d.getVar('IMGDEPLOYDIR')
bb.utils.copyfile(os.path.join(outdir, basename) + '.env', os.path.join(depdir, basename) + '.env')
}
+addtask do_flush_pseudodb after do_rootfs before do_image do_image_qa
addtask do_rootfs_wicenv after do_image before do_image_wic
do_rootfs_wicenv[vardeps] += "${WICVARS}"
do_rootfs_wicenv[prefuncs] = 'set_image_size'
diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
index 478240fa57..c6dff9659c 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -22,20 +22,22 @@ QA_SANE = "True"
# Elect whether a given type of error is a warning or error, they may
# have been set by other files.
-WARN_QA ?= "ldflags useless-rpaths rpaths staticdev libdir xorg-driver-abi \
- textrel already-stripped incompatible-license files-invalid \
- installed-vs-shipped compile-host-path install-host-path \
- pn-overrides infodir build-deps src-uri-bad \
- unknown-configure-option symlink-to-sysroot multilib \
+WARN_QA ?= " libdir xorg-driver-abi \
+ textrel incompatible-license files-invalid \
+ infodir build-deps src-uri-bad symlink-to-sysroot multilib \
invalid-packageconfig host-user-contaminated uppercase-pn patch-fuzz \
- mime mime-xdg \
+ mime mime-xdg unlisted-pkg-lics unhandled-features-check \
+ missing-update-alternatives \
"
ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch pkgconfig la \
perms dep-cmp pkgvarcheck perm-config perm-line perm-link \
split-strip packages-list pkgv-undefined var-undefined \
version-going-backwards expanded-d invalid-chars \
license-checksum dev-elf file-rdeps configure-unsafe \
- configure-gettext perllocalpod \
+ configure-gettext perllocalpod shebang-size \
+ already-stripped installed-vs-shipped ldflags compile-host-path \
+ install-host-path pn-overrides unknown-configure-option \
+ useless-rpaths rpaths staticdev \
"
# Add usrmerge QA check based on distro feature
ERROR_QA_append = "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', ' usrmerge', '', d)}"
@@ -83,6 +85,29 @@ def package_qa_add_message(messages, section, new_msg):
else:
messages[section] = messages[section] + "\n" + new_msg
+QAPATHTEST[shebang-size] = "package_qa_check_shebang_size"
+def package_qa_check_shebang_size(path, name, d, elf, messages):
+ if os.path.islink(path) or elf:
+ return
+
+ try:
+ with open(path, 'rb') as f:
+ stanza = f.readline(130)
+ except IOError:
+ return
+
+ if stanza.startswith(b'#!'):
+ #Shebang not found
+ try:
+ stanza = stanza.decode("utf-8")
+ except UnicodeDecodeError:
+ #If it is not a text file, it is not a script
+ return
+
+ if len(stanza) > 129:
+ package_qa_add_message(messages, "shebang-size", "%s: %s maximum shebang size exceeded, the maximum size is 128." % (name, package_qa_clean_path(path, d)))
+ return
+
QAPATHTEST[libexec] = "package_qa_check_libexec"
def package_qa_check_libexec(path,name, d, elf, messages):
@@ -340,14 +365,14 @@ def package_qa_check_arch(path,name,d, elf, messages):
target_os == "linux-gnu_ilp32" or re.match(r'mips64.*32', d.getVar('DEFAULTTUNE')))
is_bpf = (oe.qa.elf_machine_to_string(elf.machine()) == "BPF")
if not ((machine == elf.machine()) or is_32 or is_bpf):
- package_qa_add_message(messages, "arch", "Architecture did not match (%s, expected %s) on %s" % \
- (oe.qa.elf_machine_to_string(elf.machine()), oe.qa.elf_machine_to_string(machine), package_qa_clean_path(path,d)))
+ package_qa_add_message(messages, "arch", "Architecture did not match (%s, expected %s) in %s" % \
+ (oe.qa.elf_machine_to_string(elf.machine()), oe.qa.elf_machine_to_string(machine), package_qa_clean_path(path, d, name)))
elif not ((bits == elf.abiSize()) or is_32 or is_bpf):
- package_qa_add_message(messages, "arch", "Bit size did not match (%d to %d) %s on %s" % \
- (bits, elf.abiSize(), bpn, package_qa_clean_path(path,d)))
+ package_qa_add_message(messages, "arch", "Bit size did not match (%d, expected %d) in %s" % \
+ (elf.abiSize(), bits, package_qa_clean_path(path, d, name)))
elif not ((littleendian == elf.isLittleEndian()) or is_bpf):
- package_qa_add_message(messages, "arch", "Endiannes did not match (%d to %d) on %s" % \
- (littleendian, elf.isLittleEndian(), package_qa_clean_path(path,d)))
+ package_qa_add_message(messages, "arch", "Endiannes did not match (%d, expected %d) in %s" % \
+ (elf.isLittleEndian(), littleendian, package_qa_clean_path(path,d, name)))
QAPATHTEST[desktop] = "package_qa_check_desktop"
def package_qa_check_desktop(path, name, d, elf, messages):
@@ -414,12 +439,13 @@ def package_qa_hash_style(path, name, d, elf, messages):
for line in phdrs.split("\n"):
if "SYMTAB" in line:
has_syms = True
- if "GNU_HASH" or "DT_MIPS_XHASH" in line:
+ if "GNU_HASH" in line or "DT_MIPS_XHASH" in line:
sane = True
if ("[mips32]" in line or "[mips64]" in line) and d.getVar('TCLIBC') == "musl":
sane = True
if has_syms and not sane:
- package_qa_add_message(messages, "ldflags", "No GNU_HASH in the ELF binary %s, didn't pass LDFLAGS?" % path)
+ path = package_qa_clean_path(path, d, name)
+ package_qa_add_message(messages, "ldflags", "File %s in package %s doesn't have GNU_HASH (didn't pass LDFLAGS?)" % (path, name))
QAPATHTEST[buildpaths] = "package_qa_check_buildpaths"
@@ -435,10 +461,6 @@ def package_qa_check_buildpaths(path, name, d, elf, messages):
if os.path.islink(path):
return
- # Ignore ipk and deb's CONTROL dir
- if path.find(name + "/CONTROL/") != -1 or path.find(name + "/DEBIAN/") != -1:
- return
-
tmpdir = bytes(d.getVar('TMPDIR'), encoding="utf-8")
with open(path, 'rb') as f:
file_content = f.read()
@@ -688,12 +710,13 @@ def package_qa_walk(warnfuncs, errorfuncs, package, d):
warnings = {}
errors = {}
for path in pkgfiles[package]:
- elf = oe.qa.ELFFile(path)
- try:
- elf.open()
- except (IOError, oe.qa.NotELFFileError):
- # IOError can happen if the packaging control files disappear,
- elf = None
+ elf = None
+ if os.path.isfile(path):
+ elf = oe.qa.ELFFile(path)
+ try:
+ elf.open()
+ except oe.qa.NotELFFileError:
+ elf = None
for func in warnfuncs:
func(path, package, d, elf, warnings)
for func in errorfuncs:
@@ -874,6 +897,25 @@ def package_qa_check_expanded_d(package, d, messages):
sane = False
return sane
+QAPKGTEST[unlisted-pkg-lics] = "package_qa_check_unlisted_pkg_lics"
+def package_qa_check_unlisted_pkg_lics(package, d, messages):
+ """
+ Check that all licenses for a package are among the licenses for the recipe.
+ """
+ pkg_lics = d.getVar('LICENSE_' + package)
+ if not pkg_lics:
+ return True
+
+ recipe_lics_set = oe.license.list_licenses(d.getVar('LICENSE'))
+ unlisted = oe.license.list_licenses(pkg_lics) - recipe_lics_set
+ if not unlisted:
+ return True
+
+ package_qa_add_message(messages, "unlisted-pkg-lics",
+ "LICENSE_%s includes licenses (%s) that are not "
+ "listed in LICENSE" % (package, ' '.join(unlisted)))
+ return False
+
def package_qa_check_encoding(keys, encode, d):
def check_encoding(key, enc):
sane = True
@@ -937,6 +979,24 @@ def package_qa_check_src_uri(pn, d, messages):
if re.search(r"github\.com/.+/.+/archive/.+", url):
package_qa_handle_error("src-uri-bad", "%s: SRC_URI uses unstable GitHub archives" % pn, d)
+QARECIPETEST[unhandled-features-check] = "package_qa_check_unhandled_features_check"
+def package_qa_check_unhandled_features_check(pn, d, messages):
+ if not bb.data.inherits_class('features_check', d):
+ var_set = False
+ for kind in ['DISTRO', 'MACHINE', 'COMBINED']:
+ for var in ['ANY_OF_' + kind + '_FEATURES', 'REQUIRED_' + kind + '_FEATURES', 'CONFLICT_' + kind + '_FEATURES']:
+ if d.getVar(var) is not None or d.overridedata.get(var) is not None:
+ var_set = True
+ if var_set:
+ package_qa_handle_error("unhandled-features-check", "%s: recipe doesn't inherit features_check" % pn, d)
+
+QARECIPETEST[missing-update-alternatives] = "package_qa_check_missing_update_alternatives"
+def package_qa_check_missing_update_alternatives(pn, d, messages):
+ # Look at all packages and find out if any of those sets ALTERNATIVE variable
+ # without inheriting update-alternatives class
+ for pkg in (d.getVar('PACKAGES') or '').split():
+ if d.getVar('ALTERNATIVE_%s' % pkg) and not bb.data.inherits_class('update-alternatives', d):
+ package_qa_handle_error("missing-update-alternatives", "%s: recipe defines ALTERNATIVE_%s but doesn't inherit update-alternatives. This might fail during do_rootfs later!" % (pn, pkg), d)
# The PACKAGE FUNC to scan each package
python do_package_qa () {
@@ -981,7 +1041,14 @@ python do_package_qa () {
pkgfiles = {}
for pkg in packages:
pkgfiles[pkg] = []
- for walkroot, dirs, files in os.walk(os.path.join(pkgdest, pkg)):
+ pkgdir = os.path.join(pkgdest, pkg)
+ for walkroot, dirs, files in os.walk(pkgdir):
+ # Don't walk into top-level CONTROL or DEBIAN directories as these
+ # are temporary directories created by do_package.
+ if walkroot == pkgdir:
+ for control in ("CONTROL", "DEBIAN"):
+ if control in dirs:
+ dirs.remove(control)
for file in files:
pkgfiles[pkg].append(os.path.join(walkroot, file))
diff --git a/meta/classes/kernel-artifact-names.bbclass b/meta/classes/kernel-artifact-names.bbclass
index bbeecba7bd..a65cdddb3e 100644
--- a/meta/classes/kernel-artifact-names.bbclass
+++ b/meta/classes/kernel-artifact-names.bbclass
@@ -1,3 +1,11 @@
+##################################################################
+# Specific kernel creation info
+# for recipes/bbclasses which need to reuse some of the kernel
+# artifacts, but aren't kernel recipes themselves
+##################################################################
+
+inherit image-artifact-names
+
KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}"
diff --git a/meta/classes/kernel-devicetree.bbclass b/meta/classes/kernel-devicetree.bbclass
index 522c46575d..81dda8003f 100644
--- a/meta/classes/kernel-devicetree.bbclass
+++ b/meta/classes/kernel-devicetree.bbclass
@@ -52,7 +52,7 @@ do_configure_append() {
do_compile_append() {
for dtbf in ${KERNEL_DEVICETREE}; do
dtb=`normalize_dtb "$dtbf"`
- oe_runmake $dtb
+ oe_runmake $dtb CC="${KERNEL_CC} $cc_extra " LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS}
done
}
diff --git a/meta/classes/kernel-fitimage.bbclass b/meta/classes/kernel-fitimage.bbclass
index 72b05ff8d1..bb2f3c4ccc 100644
--- a/meta/classes/kernel-fitimage.bbclass
+++ b/meta/classes/kernel-fitimage.bbclass
@@ -56,6 +56,22 @@ FIT_HASH_ALG ?= "sha256"
# fitImage Signature Algo
FIT_SIGN_ALG ?= "rsa2048"
+# Generate keys for signing fitImage
+FIT_GENERATE_KEYS ?= "0"
+
+# Size of private key in number of bits
+FIT_SIGN_NUMBITS ?= "2048"
+
+# args to openssl genrsa (Default is just the public exponent)
+FIT_KEY_GENRSA_ARGS ?= "-F4"
+
+# args to openssl req (Default is -batch for non interactive mode and
+# -new for new certificate)
+FIT_KEY_REQ_ARGS ?= "-batch -new"
+
+# Standard format for public key certificate
+FIT_KEY_SIGN_PKCS ?= "-x509"
+
#
# Emit the fitImage ITS header
#
@@ -257,12 +273,21 @@ fitimage_emit_section_config() {
# Test if we have any DTBs at all
sep=""
conf_desc=""
+ conf_node="conf@"
kernel_line=""
fdt_line=""
ramdisk_line=""
setup_line=""
default_line=""
+ # conf node name is selected based on dtb ID if it is present,
+ # otherwise its selected based on kernel ID
+ if [ -n "${3}" ]; then
+ conf_node=$conf_node${3}
+ else
+ conf_node=$conf_node${2}
+ fi
+
if [ -n "${2}" ]; then
conf_desc="Linux kernel"
sep=", "
@@ -287,12 +312,18 @@ fitimage_emit_section_config() {
fi
if [ "${6}" = "1" ]; then
- default_line="default = \"conf@${3}\";"
+ # default node is selected based on dtb ID if it is present,
+ # otherwise its selected based on kernel ID
+ if [ -n "${3}" ]; then
+ default_line="default = \"conf@${3}\";"
+ else
+ default_line="default = \"conf@${2}\";"
+ fi
fi
cat << EOF >> ${1}
${default_line}
- conf@${3} {
+ $conf_node {
description = "${6} ${conf_desc}";
${kernel_line}
${fdt_line}
@@ -434,6 +465,13 @@ fitimage_assemble() {
#
fitimage_emit_section_maint ${1} confstart
+ # kernel-fitimage.bbclass currently only supports a single kernel (no less or
+ # more) to be added to the FIT image along with 0 or more device trees and
+ # 0 or 1 ramdisk.
+ # If a device tree is to be part of the FIT image, then select
+ # the default configuration to be used is based on the dtbcount. If there is
+ # no dtb present than select the default configuation to be based on
+ # the kernelcount.
if [ -n "${DTBS}" ]; then
i=1
for DTB in ${DTBS}; do
@@ -445,6 +483,9 @@ fitimage_assemble() {
fi
i=`expr ${i} + 1`
done
+ else
+ defaultconfigcount=1
+ fitimage_emit_section_config ${1} "${kernelcount}" "" "${ramdiskcount}" "${setupcount}" "${defaultconfigcount}"
fi
fitimage_emit_section_maint ${1} sectend
@@ -497,6 +538,34 @@ do_assemble_fitimage_initramfs() {
addtask assemble_fitimage_initramfs before do_deploy after do_bundle_initramfs
+do_generate_rsa_keys() {
+ if [ "${UBOOT_SIGN_ENABLE}" = "0" ] && [ "${FIT_GENERATE_KEYS}" = "1" ]; then
+ bbwarn "FIT_GENERATE_KEYS is set to 1 eventhough UBOOT_SIGN_ENABLE is set to 0. The keys will not be generated as they won't be used."
+ fi
+
+ if [ "${UBOOT_SIGN_ENABLE}" = "1" ] && [ "${FIT_GENERATE_KEYS}" = "1" ]; then
+
+ # Generate keys only if they don't already exist
+ if [ ! -f "${UBOOT_SIGN_KEYDIR}/${UBOOT_SIGN_KEYNAME}".key ] || \
+ [ ! -f "${UBOOT_SIGN_KEYDIR}/${UBOOT_SIGN_KEYNAME}".crt]; then
+
+ # make directory if it does not already exist
+ mkdir -p "${UBOOT_SIGN_KEYDIR}"
+
+ echo "Generating RSA private key for signing fitImage"
+ openssl genrsa ${FIT_KEY_GENRSA_ARGS} -out \
+ "${UBOOT_SIGN_KEYDIR}/${UBOOT_SIGN_KEYNAME}".key \
+ "${FIT_SIGN_NUMBITS}"
+
+ echo "Generating certificate for signing fitImage"
+ openssl req ${FIT_KEY_REQ_ARGS} "${FIT_KEY_SIGN_PKCS}" \
+ -key "${UBOOT_SIGN_KEYDIR}/${UBOOT_SIGN_KEYNAME}".key \
+ -out "${UBOOT_SIGN_KEYDIR}/${UBOOT_SIGN_KEYNAME}".crt
+ fi
+ fi
+}
+
+addtask generate_rsa_keys before do_assemble_fitimage after do_compile
kernel_do_deploy[vardepsexclude] = "DATETIME"
kernel_do_deploy_append() {
diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
index 44863adc27..35587dd564 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -1,5 +1,5 @@
# remove tasks that modify the source tree in case externalsrc is inherited
-SRCTREECOVEREDTASKS += "do_kernel_configme do_validate_branches do_kernel_configcheck do_kernel_checkout do_fetch do_unpack do_patch"
+SRCTREECOVEREDTASKS += "do_validate_branches do_kernel_configcheck do_kernel_checkout do_fetch do_unpack do_patch"
PATCH_GIT_USER_EMAIL ?= "kernel-yocto@oe"
PATCH_GIT_USER_NAME ?= "OpenEmbedded"
@@ -18,6 +18,7 @@ SRCREV_FORMAT ?= "meta_machine"
KCONF_AUDIT_LEVEL ?= "1"
KCONF_BSP_AUDIT_LEVEL ?= "0"
KMETA_AUDIT ?= "yes"
+KMETA_AUDIT_WERROR ?= ""
# returns local (absolute) path names for all valid patches in the
# src_uri
@@ -85,8 +86,30 @@ def get_machine_branch(d, default):
return default
+# returns a list of all directories that are on FILESEXTRAPATHS (and
+# hence available to the build) that contain .scc or .cfg files
+def get_dirs_with_fragments(d):
+ extrapaths = []
+ extrafiles = []
+ extrapathsvalue = (d.getVar("FILESEXTRAPATHS") or "")
+ # Remove default flag which was used for checking
+ extrapathsvalue = extrapathsvalue.replace("__default:", "")
+ extrapaths = extrapathsvalue.split(":")
+ for path in extrapaths:
+ if path + ":True" not in extrafiles:
+ extrafiles.append(path + ":" + str(os.path.exists(path)))
+
+ return " ".join(extrafiles)
+
do_kernel_metadata() {
set +e
+
+ if [ -n "$1" ]; then
+ mode="$1"
+ else
+ mode="patch"
+ fi
+
cd ${S}
export KMETA=${KMETA}
@@ -120,47 +143,59 @@ do_kernel_metadata() {
if [ -n "${KBUILD_DEFCONFIG}" ]; then
if [ -f "${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG}" ]; then
if [ -f "${WORKDIR}/defconfig" ]; then
- # If the two defconfig's are different, warn that we didn't overwrite the
- # one already placed in WORKDIR by the fetcher.
+ # If the two defconfig's are different, warn that we overwrote the
+ # one already placed in WORKDIR
cmp "${WORKDIR}/defconfig" "${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG}"
if [ $? -ne 0 ]; then
- bbwarn "defconfig detected in WORKDIR. ${KBUILD_DEFCONFIG} skipped"
- else
- cp -f ${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG} ${WORKDIR}/defconfig
+ bbdebug 1 "detected SRC_URI or unpatched defconfig in WORKDIR. ${KBUILD_DEFCONFIG} copied over it"
fi
+ cp -f ${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG} ${WORKDIR}/defconfig
else
cp -f ${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG} ${WORKDIR}/defconfig
fi
- sccs="${WORKDIR}/defconfig"
+ in_tree_defconfig="${WORKDIR}/defconfig"
else
- bbfatal "A KBUILD_DEFCONFIG '${KBUILD_DEFCONFIG}' was specified, but not present in the source tree"
+ bbfatal "A KBUILD_DEFCONFIG '${KBUILD_DEFCONFIG}' was specified, but not present in the source tree (${S}/arch/${ARCH}/configs/)"
fi
fi
- # was anyone trying to patch the kernel meta data ?, we need to do
- # this here, since the scc commands migrate the .cfg fragments to the
- # kernel source tree, where they'll be used later.
- check_git_config
- patches="${@" ".join(find_patches(d,'kernel-meta'))}"
- for p in $patches; do
- (
- cd ${WORKDIR}/kernel-meta
- git am -s $p
- )
- done
+ if [ "$mode" = "patch" ]; then
+ # was anyone trying to patch the kernel meta data ?, we need to do
+ # this here, since the scc commands migrate the .cfg fragments to the
+ # kernel source tree, where they'll be used later.
+ check_git_config
+ patches="${@" ".join(find_patches(d,'kernel-meta'))}"
+ for p in $patches; do
+ (
+ cd ${WORKDIR}/kernel-meta
+ git am -s $p
+ )
+ done
+ fi
sccs_from_src_uri="${@" ".join(find_sccs(d))}"
patches="${@" ".join(find_patches(d,''))}"
feat_dirs="${@" ".join(find_kernel_feature_dirs(d))}"
- # a quick check to make sure we don't have duplicate defconfigs
- # If there's a defconfig in the SRC_URI, did we also have one from
- # the KBUILD_DEFCONFIG processing above ?
- if [ -n "$sccs" ]; then
- # we did have a defconfig from above. remove any that might be in the src_uri
- sccs_from_src_uri=$(echo $sccs_from_src_uri | awk '{ if ($0!="defconfig") { print $0 } }' RS=' ')
+ # a quick check to make sure we don't have duplicate defconfigs If
+ # there's a defconfig in the SRC_URI, did we also have one from the
+ # KBUILD_DEFCONFIG processing above ?
+ src_uri_defconfig=$(echo $sccs_from_src_uri | awk '(match($0, "defconfig") != 0) { print $0 }' RS=' ')
+ # drop and defconfig's from the src_uri variable, we captured it just above here if it existed
+ sccs_from_src_uri=$(echo $sccs_from_src_uri | awk '(match($0, "defconfig") == 0) { print $0 }' RS=' ')
+
+ if [ -n "$in_tree_defconfig" ]; then
+ sccs_defconfig=$in_tree_defconfig
+ if [ -n "$src_uri_defconfig" ]; then
+ bbwarn "[NOTE]: defconfig was supplied both via KBUILD_DEFCONFIG and SRC_URI. Dropping SRC_URI defconfig"
+ fi
+ else
+ # if we didn't have an in-tree one, make our defconfig the one
+ # from the src_uri. Note: there may not have been one from the
+ # src_uri, so this can be an empty variable.
+ sccs_defconfig=$src_uri_defconfig
fi
- sccs="$sccs $sccs_from_src_uri"
+ sccs="$sccs_from_src_uri"
# check for feature directories/repos/branches that were part of the
# SRC_URI. If they were supplied, we convert them into include directives
@@ -187,11 +222,10 @@ do_kernel_metadata() {
# expand kernel features into their full path equivalents
bsp_definition=$(spp ${includes} --find -DKMACHINE=${KMACHINE} -DKTYPE=${LINUX_KERNEL_TYPE})
if [ -z "$bsp_definition" ]; then
- echo "$sccs" | grep -q defconfig
- if [ $? -ne 0 ]; then
+ if [ -z "$sccs_defconfig" ]; then
bbfatal_log "Could not locate BSP definition for ${KMACHINE}/${LINUX_KERNEL_TYPE} and no defconfig was provided"
fi
-
+ else
# if the bsp definition has "define KMETA_EXTERNAL_BSP t",
# then we need to set a flag that will instruct the next
# steps to use the BSP as both configuration and patches.
@@ -202,13 +236,40 @@ do_kernel_metadata() {
fi
meta_dir=$(kgit --meta)
- # run1: pull all the configuration fragments, no matter where they come from
- elements="`echo -n ${bsp_definition} ${sccs} ${patches} ${KERNEL_FEATURES}`"
- if [ -n "${elements}" ]; then
- echo "${bsp_definition}" > ${S}/${meta_dir}/bsp_definition
- scc --force -o ${S}/${meta_dir}:cfg,merge,meta ${includes} ${bsp_definition} ${sccs} ${patches} ${KERNEL_FEATURES}
- if [ $? -ne 0 ]; then
- bbfatal_log "Could not generate configuration queue for ${KMACHINE}."
+ KERNEL_FEATURES_FINAL=""
+ if [ -n "${KERNEL_FEATURES}" ]; then
+ for feature in ${KERNEL_FEATURES}; do
+ feature_found=f
+ for d in $includes; do
+ path_to_check=$(echo $d | sed 's/^-I//')
+ if [ "$feature_found" = "f" ] && [ -e "$path_to_check/$feature" ]; then
+ feature_found=t
+ fi
+ done
+ if [ "$feature_found" = "f" ]; then
+ if [ -n "${KERNEL_DANGLING_FEATURES_WARN_ONLY}" ]; then
+ bbwarn "Feature '$feature' not found, but KERNEL_DANGLING_FEATURES_WARN_ONLY is set"
+ bbwarn "This may cause runtime issues, dropping feature and allowing configuration to continue"
+ else
+ bberror "Feature '$feature' not found, this will cause configuration failures."
+ bberror "Check the SRC_URI for meta-data repositories or directories that may be missing"
+ bbfatal_log "Set KERNEL_DANGLING_FEATURES_WARN_ONLY to ignore this issue"
+ fi
+ else
+ KERNEL_FEATURES_FINAL="$KERNEL_FEATURES_FINAL $feature"
+ fi
+ done
+ fi
+
+ if [ "$mode" = "config" ]; then
+ # run1: pull all the configuration fragments, no matter where they come from
+ elements="`echo -n ${bsp_definition} $sccs_defconfig ${sccs} ${patches} $KERNEL_FEATURES_FINAL`"
+ if [ -n "${elements}" ]; then
+ echo "${bsp_definition}" > ${S}/${meta_dir}/bsp_definition
+ scc --force -o ${S}/${meta_dir}:cfg,merge,meta ${includes} $sccs_defconfig $bsp_definition $sccs $patches $KERNEL_FEATURES_FINAL
+ if [ $? -ne 0 ]; then
+ bbfatal_log "Could not generate configuration queue for ${KMACHINE}."
+ fi
fi
fi
@@ -219,12 +280,14 @@ do_kernel_metadata() {
sccs="${bsp_definition} ${sccs}"
fi
- # run2: only generate patches for elements that have been passed on the SRC_URI
- elements="`echo -n ${sccs} ${patches} ${KERNEL_FEATURES}`"
- if [ -n "${elements}" ]; then
- scc --force -o ${S}/${meta_dir}:patch --cmds patch ${includes} ${sccs} ${patches} ${KERNEL_FEATURES}
- if [ $? -ne 0 ]; then
- bbfatal_log "Could not generate configuration queue for ${KMACHINE}."
+ if [ "$mode" = "patch" ]; then
+ # run2: only generate patches for elements that have been passed on the SRC_URI
+ elements="`echo -n ${sccs} ${patches} $KERNEL_FEATURES_FINAL`"
+ if [ -n "${elements}" ]; then
+ scc --force -o ${S}/${meta_dir}:patch --cmds patch ${includes} ${sccs} ${patches} $KERNEL_FEATURES_FINAL
+ if [ $? -ne 0 ]; then
+ bbfatal_log "Could not generate configuration queue for ${KMACHINE}."
+ fi
fi
fi
}
@@ -317,16 +380,20 @@ do_kernel_checkout() {
}
do_kernel_checkout[dirs] = "${S}"
-addtask kernel_checkout before do_kernel_metadata after do_unpack
+addtask kernel_checkout before do_kernel_metadata after do_symlink_kernsrc
addtask kernel_metadata after do_validate_branches do_unpack before do_patch
do_kernel_metadata[depends] = "kern-tools-native:do_populate_sysroot"
+do_kernel_metadata[file-checksums] = " ${@get_dirs_with_fragments(d)}"
do_validate_branches[depends] = "kern-tools-native:do_populate_sysroot"
do_kernel_configme[depends] += "virtual/${TARGET_PREFIX}binutils:do_populate_sysroot"
do_kernel_configme[depends] += "virtual/${TARGET_PREFIX}gcc:do_populate_sysroot"
do_kernel_configme[depends] += "bc-native:do_populate_sysroot bison-native:do_populate_sysroot"
+do_kernel_configme[depends] += "kern-tools-native:do_populate_sysroot"
do_kernel_configme[dirs] += "${S} ${B}"
do_kernel_configme() {
+ do_kernel_metadata config
+
# translate the kconfig_mode into something that merge_config.sh
# understands
case ${KCONFIG_MODE} in
@@ -369,6 +436,67 @@ do_kernel_configme() {
}
addtask kernel_configme before do_configure after do_patch
+addtask config_analysis
+
+do_config_analysis[depends] = "virtual/kernel:do_configure"
+do_config_analysis[depends] += "kern-tools-native:do_populate_sysroot"
+
+CONFIG_AUDIT_FILE ?= "${WORKDIR}/config-audit.txt"
+CONFIG_ANALYSIS_FILE ?= "${WORKDIR}/config-analysis.txt"
+
+python do_config_analysis() {
+ import re, string, sys, subprocess
+
+ s = d.getVar('S')
+
+ env = os.environ.copy()
+ env['PATH'] = "%s:%s%s" % (d.getVar('PATH'), s, "/scripts/util/")
+ env['LD'] = d.getVar('KERNEL_LD')
+ env['CC'] = d.getVar('KERNEL_CC')
+ env['ARCH'] = d.getVar('ARCH')
+ env['srctree'] = s
+
+ # read specific symbols from the kernel recipe or from local.conf
+ # i.e.: CONFIG_ANALYSIS_pn-linux-yocto-dev = 'NF_CONNTRACK LOCALVERSION'
+ config = d.getVar( 'CONFIG_ANALYSIS' )
+ if not config:
+ config = [ "" ]
+ else:
+ config = config.split()
+
+ for c in config:
+ for action in ["analysis","audit"]:
+ if action == "analysis":
+ try:
+ analysis = subprocess.check_output(['symbol_why.py', '--dotconfig', '{}'.format( d.getVar('B') + '/.config' ), '--blame', c], cwd=s, env=env ).decode('utf-8')
+ except subprocess.CalledProcessError as e:
+ bb.fatal( "config analysis failed: %s" % e.output.decode('utf-8'))
+
+ outfile = d.getVar( 'CONFIG_ANALYSIS_FILE' )
+
+ if action == "audit":
+ try:
+ analysis = subprocess.check_output(['symbol_why.py', '--dotconfig', '{}'.format( d.getVar('B') + '/.config' ), '--summary', '--extended', '--sanity', c], cwd=s, env=env ).decode('utf-8')
+ except subprocess.CalledProcessError as e:
+ bb.fatal( "config analysis failed: %s" % e.output.decode('utf-8'))
+
+ outfile = d.getVar( 'CONFIG_AUDIT_FILE' )
+
+ if c:
+ outdir = os.path.dirname( outfile )
+ outname = os.path.basename( outfile )
+ outfile = outdir + '/'+ c + '-' + outname
+
+ if config and os.path.isfile(outfile):
+ os.remove(outfile)
+
+ with open(outfile, 'w+') as f:
+ f.write( analysis )
+
+ bb.warn( "Configuration {} executed, see: {} for details".format(action,outfile ))
+ if c:
+ bb.warn( analysis )
+}
python do_kernel_configcheck() {
import re, string, sys, subprocess
@@ -378,59 +506,99 @@ python do_kernel_configcheck() {
# meta-series for processing
kmeta = d.getVar("KMETA") or "meta"
if not os.path.exists(kmeta):
- kmeta = "." + kmeta
+ kmeta = subprocess.check_output(['kgit', '--meta'], cwd=d.getVar('S')).decode('utf-8').rstrip()
s = d.getVar('S')
env = os.environ.copy()
env['PATH'] = "%s:%s%s" % (d.getVar('PATH'), s, "/scripts/util/")
- env['LD'] = "${KERNEL_LD}"
+ env['LD'] = d.getVar('KERNEL_LD')
+ env['CC'] = d.getVar('KERNEL_CC')
+ env['ARCH'] = d.getVar('ARCH')
+ env['srctree'] = s
try:
configs = subprocess.check_output(['scc', '--configs', '-o', s + '/.kernel-meta'], env=env).decode('utf-8')
except subprocess.CalledProcessError as e:
bb.fatal( "Cannot gather config fragments for audit: %s" % e.output.decode("utf-8") )
- try:
- subprocess.check_call(['kconf_check', '--report', '-o',
- '%s/%s/cfg' % (s, kmeta), d.getVar('B') + '/.config', s, configs], cwd=s, env=env)
- except subprocess.CalledProcessError:
- # The configuration gathering can return different exit codes, but
- # we interpret them based on the KCONF_AUDIT_LEVEL variable, so we catch
- # everything here, and let the run continue.
- pass
-
config_check_visibility = int(d.getVar("KCONF_AUDIT_LEVEL") or 0)
bsp_check_visibility = int(d.getVar("KCONF_BSP_AUDIT_LEVEL") or 0)
+ kmeta_audit_werror = d.getVar("KMETA_AUDIT_WERROR") or ""
+ warnings_detected = False
+
+ # if config check visibility is "1", that's the lowest level of audit. So
+ # we add the --classify option to the run, since classification will
+ # streamline the output to only report options that could be boot issues,
+ # or are otherwise required for proper operation.
+ extra_params = ""
+ if config_check_visibility == 1:
+ extra_params = "--classify"
+
+ # category #1: mismatches
+ try:
+ analysis = subprocess.check_output(['symbol_why.py', '--dotconfig', '{}'.format( d.getVar('B') + '/.config' ), '--mismatches', extra_params], cwd=s, env=env ).decode('utf-8')
+ except subprocess.CalledProcessError as e:
+ bb.fatal( "config analysis failed: %s" % e.output.decode('utf-8'))
+
+ if analysis:
+ outfile = "{}/{}/cfg/mismatch.txt".format( s, kmeta )
+ if os.path.isfile(outfile):
+ os.remove(outfile)
+ with open(outfile, 'w+') as f:
+ f.write( analysis )
- # if config check visibility is non-zero, report dropped configuration values
- mismatch_file = d.expand("${S}/%s/cfg/mismatch.txt" % kmeta)
- if os.path.exists(mismatch_file):
- if config_check_visibility:
- with open (mismatch_file, "r") as myfile:
+ if config_check_visibility and os.stat(outfile).st_size > 0:
+ with open (outfile, "r") as myfile:
results = myfile.read()
bb.warn( "[kernel config]: specified values did not make it into the kernel's final configuration:\n\n%s" % results)
+ warnings_detected = True
+
+ # category #2: invalid fragment elements
+ extra_params = ""
+ if bsp_check_visibility > 1:
+ extra_params = "--strict"
+ try:
+ analysis = subprocess.check_output(['symbol_why.py', '--dotconfig', '{}'.format( d.getVar('B') + '/.config' ), '--invalid', extra_params], cwd=s, env=env ).decode('utf-8')
+ except subprocess.CalledProcessError as e:
+ bb.fatal( "config analysis failed: %s" % e.output.decode('utf-8'))
- if bsp_check_visibility:
- invalid_file = d.expand("${S}/%s/cfg/invalid.cfg" % kmeta)
- if os.path.exists(invalid_file) and os.stat(invalid_file).st_size > 0:
- with open (invalid_file, "r") as myfile:
+ if analysis:
+ outfile = "{}/{}/cfg/invalid.txt".format(s,kmeta)
+ if os.path.isfile(outfile):
+ os.remove(outfile)
+ with open(outfile, 'w+') as f:
+ f.write( analysis )
+
+ if bsp_check_visibility and os.stat(outfile).st_size > 0:
+ with open (outfile, "r") as myfile:
results = myfile.read()
- bb.warn( "[kernel config]: This BSP sets config options that are not offered anywhere within this kernel:\n\n%s" % results)
- errors_file = d.expand("${S}/%s/cfg/fragment_errors.txt" % kmeta)
- if os.path.exists(errors_file) and os.stat(errors_file).st_size > 0:
- with open (errors_file, "r") as myfile:
- results = myfile.read()
- bb.warn( "[kernel config]: This BSP contains fragments with errors:\n\n%s" % results)
-
- # if the audit level is greater than two, we report if a fragment has overriden
- # a value from a base fragment. This is really only used for new kernel introduction
- if bsp_check_visibility > 2:
- redefinition_file = d.expand("${S}/%s/cfg/redefinition.txt" % kmeta)
- if os.path.exists(redefinition_file) and os.stat(redefinition_file).st_size > 0:
- with open (redefinition_file, "r") as myfile:
+ bb.warn( "[kernel config]: This BSP contains fragments with warnings:\n\n%s" % results)
+ warnings_detected = True
+
+ # category #3: redefined options (this is pretty verbose and is debug only)
+ try:
+ analysis = subprocess.check_output(['symbol_why.py', '--dotconfig', '{}'.format( d.getVar('B') + '/.config' ), '--sanity'], cwd=s, env=env ).decode('utf-8')
+ except subprocess.CalledProcessError as e:
+ bb.fatal( "config analysis failed: %s" % e.output.decode('utf-8'))
+
+ if analysis:
+ outfile = "{}/{}/cfg/redefinition.txt".format(s,kmeta)
+ if os.path.isfile(outfile):
+ os.remove(outfile)
+ with open(outfile, 'w+') as f:
+ f.write( analysis )
+
+ # if the audit level is greater than two, we report if a fragment has overriden
+ # a value from a base fragment. This is really only used for new kernel introduction
+ if bsp_check_visibility > 2 and os.stat(outfile).st_size > 0:
+ with open (outfile, "r") as myfile:
results = myfile.read()
bb.warn( "[kernel config]: This BSP has configuration options defined in more than one config, with differing values:\n\n%s" % results)
+ warnings_detected = True
+
+ if warnings_detected and kmeta_audit_werror:
+ bb.fatal( "configuration warnings detected, werror is set, promoting to fatal" )
}
# Ensure that the branches (BSP and meta) are on the locations specified by
@@ -488,6 +656,12 @@ python () {
# If diffconfig is available, ensure it runs after kernel_configme
if 'do_diffconfig' in d:
bb.build.addtask('do_diffconfig', None, 'do_kernel_configme', d)
+
+ externalsrc = d.getVar('EXTERNALSRC')
+ if externalsrc:
+ # If we deltask do_patch, do_kernel_configme is left without
+ # dependencies and runs too early
+ d.setVarFlag('do_kernel_configme', 'deps', (d.getVarFlag('do_kernel_configme', 'deps', False) or []) + ['do_unpack'])
}
# extra tasks
diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index 15219c596f..78def5bbc1 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -4,10 +4,12 @@ KERNEL_PACKAGE_NAME ??= "kernel"
KERNEL_DEPLOYSUBDIR ??= "${@ "" if (d.getVar("KERNEL_PACKAGE_NAME") == "kernel") else d.getVar("KERNEL_PACKAGE_NAME") }"
PROVIDES += "${@ "virtual/kernel" if (d.getVar("KERNEL_PACKAGE_NAME") == "kernel") else "" }"
-DEPENDS += "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}gcc kmod-native bc-native lzop-native bison-native"
+DEPENDS += "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}gcc kmod-native bc-native bison-native"
+DEPENDS += "${@bb.utils.contains("INITRAMFS_FSTYPES", "cpio.lzo", "lzop-native", "", d)}"
+DEPENDS += "${@bb.utils.contains("INITRAMFS_FSTYPES", "cpio.lz4", "lz4-native", "", d)}"
PACKAGE_WRITE_DEPS += "depmodwrapper-cross"
-do_deploy[depends] += "depmodwrapper-cross:do_populate_sysroot"
+do_deploy[depends] += "depmodwrapper-cross:do_populate_sysroot gzip-native:do_populate_sysroot"
do_clean[depends] += "make-mod-scripts:do_clean"
CVE_PRODUCT ?= "linux_kernel"
@@ -94,6 +96,25 @@ python __anonymous () {
d.appendVar('RDEPENDS_%s-image' % kname, ' %s-image-%s' % (kname, typelower))
d.setVar('PKG_%s-image-%s' % (kname,typelower), '%s-image-%s-${KERNEL_VERSION_PKG_NAME}' % (kname, typelower))
d.setVar('ALLOW_EMPTY_%s-image-%s' % (kname, typelower), '1')
+ d.setVar('pkg_postinst_%s-image-%s' % (kname,typelower), """set +e
+if [ -n "$D" ]; then
+ ln -sf %s-${KERNEL_VERSION} $D/${KERNEL_IMAGEDEST}/%s > /dev/null 2>&1
+else
+ ln -sf %s-${KERNEL_VERSION} ${KERNEL_IMAGEDEST}/%s > /dev/null 2>&1
+ if [ $? -ne 0 ]; then
+ echo "Filesystem on ${KERNEL_IMAGEDEST}/ doesn't support symlinks, falling back to copied image (%s)."
+ install -m 0644 ${KERNEL_IMAGEDEST}/%s-${KERNEL_VERSION} ${KERNEL_IMAGEDEST}/%s
+ fi
+fi
+set -e
+""" % (type, type, type, type, type, type, type))
+ d.setVar('pkg_postrm_%s-image-%s' % (kname,typelower), """set +e
+if [ -f "${KERNEL_IMAGEDEST}/%s" -o -L "${KERNEL_IMAGEDEST}/%s" ]; then
+ rm -f ${KERNEL_IMAGEDEST}/%s > /dev/null 2>&1
+fi
+set -e
+""" % (type, type, type))
+
image = d.getVar('INITRAMFS_IMAGE')
# If the INTIRAMFS_IMAGE is set but the INITRAMFS_IMAGE_BUNDLE is set to 0,
@@ -151,7 +172,10 @@ python do_symlink_kernsrc () {
shutil.move(s, kernsrc)
os.symlink(kernsrc, s)
}
-addtask symlink_kernsrc before do_configure after do_unpack
+# do_patch is normally ordered before do_configure, but
+# externalsrc.bbclass deletes do_patch, breaking the dependency of
+# do_configure on do_symlink_kernsrc.
+addtask symlink_kernsrc before do_patch do_configure after do_unpack
inherit kernel-arch deploy
@@ -191,6 +215,8 @@ UBOOT_LOADADDRESS ?= "${UBOOT_ENTRYPOINT}"
KERNEL_EXTRA_ARGS ?= ""
EXTRA_OEMAKE = " HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}""
+EXTRA_OEMAKE += " HOSTCXX="${BUILD_CXX} ${BUILD_CXXFLAGS} ${BUILD_LDFLAGS}""
+
KERNEL_ALT_IMAGETYPE ??= ""
copy_initramfs() {
@@ -210,7 +236,7 @@ copy_initramfs() {
;;
*lz4)
echo "lz4 decompressing image"
- lz4 -df ${B}/usr/${INITRAMFS_IMAGE_NAME}.$img
+ lz4 -df ${B}/usr/${INITRAMFS_IMAGE_NAME}.$img ${B}/usr/${INITRAMFS_IMAGE_NAME}.cpio
break
;;
*lzo)
@@ -294,14 +320,10 @@ kernel_do_compile() {
# kernel sources do not use do_unpack, so SOURCE_DATE_EPOCH may not
# be set....
if [ "${SOURCE_DATE_EPOCH}" = "" -o "${SOURCE_DATE_EPOCH}" = "0" ]; then
- olddir=`pwd`
- cd ${S}
- SOURCE_DATE_EPOCH=`git log -1 --pretty=%ct`
- # git repo not guaranteed, so fall back to REPRODUCIBLE_TIMESTAMP_ROOTFS
- if [ $? -ne 0 ]; then
- SOURCE_DATE_EPOCH=${REPRODUCIBLE_TIMESTAMP_ROOTFS}
- fi
- cd $olddir
+ # The source directory is not necessarily a git repository, so we
+ # specify the git-dir to ensure that git does not query a
+ # repository in any parent directory.
+ SOURCE_DATE_EPOCH=`git --git-dir="${S}/.git" log -1 --pretty=%ct 2>/dev/null || echo "${REPRODUCIBLE_TIMESTAMP_ROOTFS}"`
fi
ts=`LC_ALL=C date -d @$SOURCE_DATE_EPOCH`
@@ -335,6 +357,21 @@ kernel_do_compile() {
do_compile_kernelmodules() {
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
+ if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then
+ # kernel sources do not use do_unpack, so SOURCE_DATE_EPOCH may not
+ # be set....
+ if [ "${SOURCE_DATE_EPOCH}" = "" -o "${SOURCE_DATE_EPOCH}" = "0" ]; then
+ # The source directory is not necessarily a git repository, so we
+ # specify the git-dir to ensure that git does not query a
+ # repository in any parent directory.
+ SOURCE_DATE_EPOCH=`git --git-dir="${S}/.git" log -1 --pretty=%ct 2>/dev/null || echo "${REPRODUCIBLE_TIMESTAMP_ROOTFS}"`
+ fi
+
+ ts=`LC_ALL=C date -d @$SOURCE_DATE_EPOCH`
+ export KBUILD_BUILD_TIMESTAMP="$ts"
+ export KCONFIG_NOTIMESTAMP=1
+ bbnote "KBUILD_BUILD_TIMESTAMP: $ts"
+ fi
if (grep -q -i -e '^CONFIG_MODULES=y$' ${B}/.config); then
cc_extra=$(get_cc_option)
oe_runmake -C ${B} ${PARALLEL_MAKE} modules CC="${KERNEL_CC} $cc_extra " LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS}
@@ -373,10 +410,7 @@ kernel_do_install() {
install -d ${D}/${KERNEL_IMAGEDEST}
install -d ${D}/boot
for imageType in ${KERNEL_IMAGETYPES} ; do
- install -m 0644 ${KERNEL_OUTPUT_DIR}/${imageType} ${D}/${KERNEL_IMAGEDEST}/${imageType}-${KERNEL_VERSION}
- if [ "${KERNEL_PACKAGE_NAME}" = "kernel" ]; then
- ln -sf ${imageType}-${KERNEL_VERSION} ${D}/${KERNEL_IMAGEDEST}/${imageType}
- fi
+ install -m 0644 ${KERNEL_OUTPUT_DIR}/$imageType ${D}/${KERNEL_IMAGEDEST}/$imageType-${KERNEL_VERSION}
done
install -m 0644 System.map ${D}/boot/System.map-${KERNEL_VERSION}
install -m 0644 .config ${D}/boot/config-${KERNEL_VERSION}
@@ -385,7 +419,6 @@ kernel_do_install() {
install -d ${D}${sysconfdir}/modules-load.d
install -d ${D}${sysconfdir}/modprobe.d
}
-do_install[prefuncs] += "package_get_auto_pr"
# Must be ran no earlier than after do_kernel_checkout or else Makefile won't be in ${S}/Makefile
do_kernel_version_sanity_check() {
@@ -452,7 +485,7 @@ do_shared_workdir () {
# Copy files required for module builds
cp System.map $kerneldir/System.map-${KERNEL_VERSION}
- cp Module.symvers $kerneldir/
+ [ -e Module.symvers ] && cp Module.symvers $kerneldir/
cp .config $kerneldir/
mkdir -p $kerneldir/include/config
cp include/config/kernel.release $kerneldir/include/config/kernel.release
@@ -570,9 +603,9 @@ RDEPENDS_${KERNEL_PACKAGE_NAME} = "${KERNEL_PACKAGE_NAME}-base"
# Allow machines to override this dependency if kernel image files are
# not wanted in images as standard
RDEPENDS_${KERNEL_PACKAGE_NAME}-base ?= "${KERNEL_PACKAGE_NAME}-image"
-PKG_${KERNEL_PACKAGE_NAME}-image = "${KERNEL_PACKAGE_NAME}-image-${@legitimize_package_name('${KERNEL_VERSION}')}"
+PKG_${KERNEL_PACKAGE_NAME}-image = "${KERNEL_PACKAGE_NAME}-image-${@legitimize_package_name(d.getVar('KERNEL_VERSION'))}"
RDEPENDS_${KERNEL_PACKAGE_NAME}-image += "${@oe.utils.conditional('KERNEL_IMAGETYPE', 'vmlinux', '${KERNEL_PACKAGE_NAME}-vmlinux', '', d)}"
-PKG_${KERNEL_PACKAGE_NAME}-base = "${KERNEL_PACKAGE_NAME}-${@legitimize_package_name('${KERNEL_VERSION}')}"
+PKG_${KERNEL_PACKAGE_NAME}-base = "${KERNEL_PACKAGE_NAME}-${@legitimize_package_name(d.getVar('KERNEL_VERSION'))}"
RPROVIDES_${KERNEL_PACKAGE_NAME}-base += "${KERNEL_PACKAGE_NAME}-${KERNEL_VERSION}"
ALLOW_EMPTY_${KERNEL_PACKAGE_NAME} = "1"
ALLOW_EMPTY_${KERNEL_PACKAGE_NAME}-base = "1"
@@ -686,16 +719,22 @@ kernel_do_deploy() {
fi
for imageType in ${KERNEL_IMAGETYPES} ; do
- base_name=${imageType}-${KERNEL_IMAGE_NAME}
- install -m 0644 ${KERNEL_OUTPUT_DIR}/${imageType} $deployDir/${base_name}.bin
- symlink_name=${imageType}-${KERNEL_IMAGE_LINK_NAME}
- ln -sf ${base_name}.bin $deployDir/${symlink_name}.bin
- ln -sf ${base_name}.bin $deployDir/${imageType}
+ baseName=$imageType-${KERNEL_IMAGE_NAME}
+ install -m 0644 ${KERNEL_OUTPUT_DIR}/$imageType $deployDir/$baseName.bin
+ ln -sf $baseName.bin $deployDir/$imageType-${KERNEL_IMAGE_LINK_NAME}.bin
+ ln -sf $baseName.bin $deployDir/$imageType
done
if [ ${MODULE_TARBALL_DEPLOY} = "1" ] && (grep -q -i -e '^CONFIG_MODULES=y$' .config); then
mkdir -p ${D}${root_prefix}/lib
- tar -cvzf $deployDir/modules-${MODULE_TARBALL_NAME}.tgz -C ${D}${root_prefix} lib
+ if [ -n "${SOURCE_DATE_EPOCH}" ]; then
+ TAR_ARGS="--sort=name --clamp-mtime --mtime=@${SOURCE_DATE_EPOCH}"
+ else
+ TAR_ARGS=""
+ fi
+ TAR_ARGS="$TAR_ARGS --owner=0 --group=0"
+ tar $TAR_ARGS -cv -C ${D}${root_prefix} lib | gzip -9n > $deployDir/modules-${MODULE_TARBALL_NAME}.tgz
+
ln -sf modules-${MODULE_TARBALL_NAME}.tgz $deployDir/modules-${MODULE_TARBALL_LINK_NAME}.tgz
fi
@@ -704,16 +743,16 @@ kernel_do_deploy() {
if [ "$imageType" = "fitImage" ] ; then
continue
fi
- initramfs_base_name=${imageType}-${INITRAMFS_NAME}
- initramfs_symlink_name=${imageType}-${INITRAMFS_LINK_NAME}
- install -m 0644 ${KERNEL_OUTPUT_DIR}/${imageType}.initramfs $deployDir/${initramfs_base_name}.bin
- ln -sf ${initramfs_base_name}.bin $deployDir/${initramfs_symlink_name}.bin
+ initramfsBaseName=$imageType-${INITRAMFS_NAME}
+ install -m 0644 ${KERNEL_OUTPUT_DIR}/$imageType.initramfs $deployDir/$initramfsBaseName.bin
+ ln -sf $initramfsBaseName.bin $deployDir/$imageType-${INITRAMFS_LINK_NAME}.bin
done
fi
}
-do_deploy[cleandirs] = "${DEPLOYDIR}"
-do_deploy[dirs] = "${DEPLOYDIR} ${B}"
-do_deploy[prefuncs] += "package_get_auto_pr"
+
+# We deploy to filenames that include PKGV and PKGR, read the saved data to
+# ensure we get the right values for both
+do_deploy[prefuncs] += "read_subpackage_metadata"
addtask deploy after do_populate_sysroot do_packagedata
diff --git a/meta/classes/kernelsrc.bbclass b/meta/classes/kernelsrc.bbclass
index 675d40ec9a..a951ba3325 100644
--- a/meta/classes/kernelsrc.bbclass
+++ b/meta/classes/kernelsrc.bbclass
@@ -1,7 +1,7 @@
S = "${STAGING_KERNEL_DIR}"
deltask do_fetch
deltask do_unpack
-do_patch[depends] += "virtual/kernel:do_patch"
+do_patch[depends] += "virtual/kernel:do_shared_workdir"
do_patch[noexec] = "1"
do_package[depends] += "virtual/kernel:do_populate_sysroot"
KERNEL_VERSION = "${@get_kernelversion_file("${STAGING_KERNEL_BUILDDIR}")}"
diff --git a/meta/classes/license_image.bbclass b/meta/classes/license_image.bbclass
index a8c72da3cb..702e9f9c55 100644
--- a/meta/classes/license_image.bbclass
+++ b/meta/classes/license_image.bbclass
@@ -200,6 +200,17 @@ def license_deployed_manifest(d):
image_license_manifest = os.path.join(lic_manifest_dir, 'image_license.manifest')
write_license_files(d, image_license_manifest, man_dic, rootfs=False)
+ link_name = d.getVar('IMAGE_LINK_NAME')
+ if link_name:
+ lic_manifest_symlink_dir = os.path.join(d.getVar('LICENSE_DIRECTORY'),
+ link_name)
+ # remove old symlink
+ if os.path.islink(lic_manifest_symlink_dir):
+ os.unlink(lic_manifest_symlink_dir)
+
+ # create the image dir symlink
+ os.symlink(lic_manifest_dir, lic_manifest_symlink_dir)
+
def get_deployed_dependencies(d):
"""
Get all the deployed dependencies of an image
diff --git a/meta/classes/linuxloader.bbclass b/meta/classes/linuxloader.bbclass
index e2876cec7a..720e5dfad4 100644
--- a/meta/classes/linuxloader.bbclass
+++ b/meta/classes/linuxloader.bbclass
@@ -1,27 +1,33 @@
-def get_musl_loader(d):
+def get_musl_loader_arch(d):
import re
- dynamic_loader = None
+ ldso_arch = None
targetarch = d.getVar("TARGET_ARCH")
if targetarch.startswith("microblaze"):
- dynamic_loader = "${base_libdir}/ld-musl-microblaze${@bb.utils.contains('TUNE_FEATURES', 'bigendian', '', 'el' ,d)}.so.1"
+ ldso_arch = "microblaze${@bb.utils.contains('TUNE_FEATURES', 'bigendian', '', 'el', d)}"
elif targetarch.startswith("mips"):
- dynamic_loader = "${base_libdir}/ld-musl-mips${ABIEXTENSION}${MIPSPKGSFX_BYTE}${MIPSPKGSFX_R6}${MIPSPKGSFX_ENDIAN}${@['', '-sf'][d.getVar('TARGET_FPU') == 'soft']}.so.1"
+ ldso_arch = "mips${ABIEXTENSION}${MIPSPKGSFX_BYTE}${MIPSPKGSFX_R6}${MIPSPKGSFX_ENDIAN}${@['', '-sf'][d.getVar('TARGET_FPU') == 'soft']}"
elif targetarch == "powerpc":
- dynamic_loader = "${base_libdir}/ld-musl-powerpc${@['', '-sf'][d.getVar('TARGET_FPU') == 'soft']}.so.1"
+ ldso_arch = "powerpc${@['', '-sf'][d.getVar('TARGET_FPU') == 'soft']}"
elif targetarch == "powerpc64":
- dynamic_loader = "${base_libdir}/ld-musl-powerpc64.so.1"
+ ldso_arch = "powerpc64"
elif targetarch == "x86_64":
- dynamic_loader = "${base_libdir}/ld-musl-x86_64.so.1"
+ ldso_arch = "x86_64"
elif re.search("i.86", targetarch):
- dynamic_loader = "${base_libdir}/ld-musl-i386.so.1"
+ ldso_arch = "i386"
elif targetarch.startswith("arm"):
- dynamic_loader = "${base_libdir}/ld-musl-arm${ARMPKGSFX_ENDIAN}${ARMPKGSFX_EABI}.so.1"
+ ldso_arch = "arm${ARMPKGSFX_ENDIAN}${ARMPKGSFX_EABI}"
elif targetarch.startswith("aarch64"):
- dynamic_loader = "${base_libdir}/ld-musl-aarch64${ARMPKGSFX_ENDIAN_64}.so.1"
+ ldso_arch = "aarch64${ARMPKGSFX_ENDIAN_64}"
elif targetarch.startswith("riscv64"):
- dynamic_loader = "${base_libdir}/ld-musl-riscv64${@['', '-sf'][d.getVar('TARGET_FPU') == 'soft']}.so.1"
- return dynamic_loader
+ ldso_arch = "riscv64${@['', '-sf'][d.getVar('TARGET_FPU') == 'soft']}"
+ elif targetarch.startswith("riscv32"):
+ ldso_arch = "riscv32${@['', '-sf'][d.getVar('TARGET_FPU') == 'soft']}"
+ return ldso_arch
+
+def get_musl_loader(d):
+ import re
+ return "/lib/ld-musl-" + get_musl_loader_arch(d) + ".so.1"
def get_glibc_loader(d):
import re
@@ -62,4 +68,5 @@ def get_linuxloader(d):
get_linuxloader[vardepvalue] = "${@get_linuxloader(d)}"
get_musl_loader[vardepvalue] = "${@get_musl_loader(d)}"
+get_musl_loader_arch[vardepvalue] = "${@get_musl_loader_arch(d)}"
get_glibc_loader[vardepvalue] = "${@get_glibc_loader(d)}"
diff --git a/meta/classes/meson.bbclass b/meta/classes/meson.bbclass
index 06034e8b47..83aa854b7e 100644
--- a/meta/classes/meson.bbclass
+++ b/meta/classes/meson.bbclass
@@ -68,6 +68,9 @@ def meson_operating_system(var, d):
os = d.getVar(var)
if "mingw" in os:
return "windows"
+ # avoid e.g 'linux-gnueabi'
+ elif "linux" in os:
+ return "linux"
else:
return os
@@ -95,6 +98,7 @@ strip = ${@meson_array('STRIP', d)}
readelf = ${@meson_array('READELF', d)}
pkgconfig = 'pkg-config'
llvm-config = 'llvm-config${LLVMVERSION}'
+cups-config = 'cups-config'
[properties]
needs_exe_wrapper = true
@@ -164,7 +168,8 @@ meson_do_configure_prepend_class-native() {
python meson_do_qa_configure() {
import re
warn_re = re.compile(r"^WARNING: Cross property (.+) is using default value (.+)$", re.MULTILINE)
- log = open(d.expand("${B}/meson-logs/meson-log.txt")).read()
+ with open(d.expand("${B}/meson-logs/meson-log.txt")) as logfile:
+ log = logfile.read()
for (prop, value) in warn_re.findall(log):
bb.warn("Meson cross property %s used without explicit assignment, defaulting to %s" % (prop, value))
}
diff --git a/meta/classes/mime-xdg.bbclass b/meta/classes/mime-xdg.bbclass
index 63169e990d..642a5b7595 100644
--- a/meta/classes/mime-xdg.bbclass
+++ b/meta/classes/mime-xdg.bbclass
@@ -8,7 +8,7 @@ PACKAGE_WRITE_DEPS += "desktop-file-utils-native"
DESKTOPDIR = "${datadir}/applications"
# There are recipes out there installing their .desktop files as absolute
-# symlinks. For us these are dangling and cannot be introspected for "MymeType"
+# symlinks. For us these are dangling and cannot be introspected for "MimeType"
# easily. By addding package-names to MIME_XDG_PACKAGES, packager can force
# proper update-desktop-database handling. Note that all introspection is
# skipped for MIME_XDG_PACKAGES not empty
diff --git a/meta/classes/mime.bbclass b/meta/classes/mime.bbclass
index c9072adf3b..bb99bc35cb 100644
--- a/meta/classes/mime.bbclass
+++ b/meta/classes/mime.bbclass
@@ -24,7 +24,18 @@ if [ "x$D" != "x" ]; then
mimedir=${MIMEDIR}
else
echo "Updating MIME database... this may take a while."
- update-mime-database $D${MIMEDIR}
+ # $D${MIMEDIR}/packages belong to package shared-mime-info-data,
+ # packages like libfm-mime depend on shared-mime-info-data.
+ # after shared-mime-info-data uninstalled, $D${MIMEDIR}/packages
+ # is removed, but update-mime-database need this dir to update
+ # database, workaround to create one and remove it later
+ if [ ! -d $D${MIMEDIR}/packages ]; then
+ mkdir -p $D${MIMEDIR}/packages
+ update-mime-database $D${MIMEDIR}
+ rmdir --ignore-fail-on-non-empty $D${MIMEDIR}/packages
+ else
+ update-mime-database $D${MIMEDIR}
+fi
fi
}
diff --git a/meta/classes/multilib.bbclass b/meta/classes/multilib.bbclass
index ee677da1e2..9f726e4537 100644
--- a/meta/classes/multilib.bbclass
+++ b/meta/classes/multilib.bbclass
@@ -91,13 +91,12 @@ addhandler multilib_virtclass_handler
multilib_virtclass_handler[eventmask] = "bb.event.RecipePreFinalise"
python __anonymous () {
- variant = d.getVar("BBEXTENDVARIANT")
-
- import oe.classextend
+ if bb.data.inherits_class('image', d):
+ variant = d.getVar("BBEXTENDVARIANT")
+ import oe.classextend
- clsextend = oe.classextend.ClassExtender(variant, d)
+ clsextend = oe.classextend.ClassExtender(variant, d)
- if bb.data.inherits_class('image', d):
clsextend.map_depends_variable("PACKAGE_INSTALL")
clsextend.map_depends_variable("LINGUAS_INSTALL")
clsextend.map_depends_variable("RDEPENDS")
@@ -109,6 +108,22 @@ python __anonymous () {
bb.build.deltask('do_populate_sdk', d)
bb.build.deltask('do_populate_sdk_ext', d)
return
+}
+
+python multilib_virtclass_handler_postkeyexp () {
+ cls = d.getVar("BBEXTENDCURR")
+ variant = d.getVar("BBEXTENDVARIANT")
+ if cls != "multilib" or not variant:
+ return
+
+ variant = d.getVar("BBEXTENDVARIANT")
+
+ import oe.classextend
+
+ clsextend = oe.classextend.ClassExtender(variant, d)
+
+ if bb.data.inherits_class('image', d):
+ return
clsextend.map_depends_variable("DEPENDS")
clsextend.map_variable("PROVIDES")
@@ -129,6 +144,9 @@ python __anonymous () {
reset_alternative_priority(d)
}
+addhandler multilib_virtclass_handler_postkeyexp
+multilib_virtclass_handler_postkeyexp[eventmask] = "bb.event.RecipePostKeyExpansion"
+
def reset_alternative_priority(d):
if not bb.data.inherits_class('update-alternatives', d):
return
diff --git a/meta/classes/nativesdk.bbclass b/meta/classes/nativesdk.bbclass
index 7b75710726..7f2692c51a 100644
--- a/meta/classes/nativesdk.bbclass
+++ b/meta/classes/nativesdk.bbclass
@@ -9,6 +9,7 @@ NATIVESDKLIBC ?= "libc-glibc"
LIBCOVERRIDE = ":${NATIVESDKLIBC}"
CLASSOVERRIDE = "class-nativesdk"
MACHINEOVERRIDES = ""
+MACHINE_FEATURES = ""
MULTILIBS = ""
@@ -57,7 +58,7 @@ EXTRA_OECONF_GCC_FLOAT = ""
CPPFLAGS = "${BUILDSDK_CPPFLAGS}"
CFLAGS = "${BUILDSDK_CFLAGS}"
-CXXFLAGS = "${BUILDSDK_CFLAGS}"
+CXXFLAGS = "${BUILDSDK_CXXFLAGS}"
LDFLAGS = "${BUILDSDK_LDFLAGS}"
# Change to place files in SDKPATH
diff --git a/meta/classes/nopackages.bbclass b/meta/classes/nopackages.bbclass
index 559f5078bd..7a4f632d71 100644
--- a/meta/classes/nopackages.bbclass
+++ b/meta/classes/nopackages.bbclass
@@ -2,6 +2,7 @@ deltask do_package
deltask do_package_write_rpm
deltask do_package_write_ipk
deltask do_package_write_deb
+deltask do_package_write_tar
deltask do_package_qa
deltask do_packagedata
deltask do_package_setscene
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index d4c6a90e84..e6236c0bb2 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -7,7 +7,7 @@
#
# There are the following default steps but PACKAGEFUNCS can be extended:
#
-# a) package_get_auto_pr - get PRAUTO from remote PR service
+# a) package_convert_pr_autoinc - convert AUTOINC in PKGV to ${PRSERV_PV_AUTOINC}
#
# b) perform_packagecopy - Copy D into PKGD
#
@@ -245,6 +245,8 @@ python () {
deps = ""
for dep in (d.getVar('PACKAGE_DEPENDS') or "").split():
deps += " %s:do_populate_sysroot" % dep
+ if d.getVar('PACKAGE_MINIDEBUGINFO') == '1':
+ deps += ' xz-native:do_populate_sysroot'
d.appendVarFlag('do_package', 'depends', deps)
# shlibs requires any DEPENDS to have already packaged for the *.list files
@@ -459,6 +461,83 @@ def splitstaticdebuginfo(file, dvar, debugstaticdir, debugstaticlibdir, debugsta
return (file, sources)
+def inject_minidebuginfo(file, dvar, debugdir, debuglibdir, debugappend, debugsrcdir, d):
+ # Extract just the symbols from debuginfo into minidebuginfo,
+ # compress it with xz and inject it back into the binary in a .gnu_debugdata section.
+ # https://sourceware.org/gdb/onlinedocs/gdb/MiniDebugInfo.html
+
+ import subprocess
+
+ readelf = d.getVar('READELF')
+ nm = d.getVar('NM')
+ objcopy = d.getVar('OBJCOPY')
+
+ minidebuginfodir = d.expand('${WORKDIR}/minidebuginfo')
+
+ src = file[len(dvar):]
+ dest = debuglibdir + os.path.dirname(src) + debugdir + "/" + os.path.basename(src) + debugappend
+ debugfile = dvar + dest
+ minidebugfile = minidebuginfodir + src + '.minidebug'
+ bb.utils.mkdirhier(os.path.dirname(minidebugfile))
+
+ # If we didn't produce debuginfo for any reason, we can't produce minidebuginfo either
+ # so skip it.
+ if not os.path.exists(debugfile):
+ bb.debug(1, 'ELF file {} has no debuginfo, skipping minidebuginfo injection'.format(file))
+ return
+
+ # Find non-allocated PROGBITS, NOTE, and NOBITS sections in the debuginfo.
+ # We will exclude all of these from minidebuginfo to save space.
+ remove_section_names = []
+ for line in subprocess.check_output([readelf, '-W', '-S', debugfile], universal_newlines=True).splitlines():
+ fields = line.split()
+ if len(fields) < 8:
+ continue
+ name = fields[0]
+ type = fields[1]
+ flags = fields[7]
+ # .debug_ sections will be removed by objcopy -S so no need to explicitly remove them
+ if name.startswith('.debug_'):
+ continue
+ if 'A' not in flags and type in ['PROGBITS', 'NOTE', 'NOBITS']:
+ remove_section_names.append(name)
+
+ # List dynamic symbols in the binary. We can exclude these from minidebuginfo
+ # because they are always present in the binary.
+ dynsyms = set()
+ for line in subprocess.check_output([nm, '-D', file, '--format=posix', '--defined-only'], universal_newlines=True).splitlines():
+ dynsyms.add(line.split()[0])
+
+ # Find all function symbols from debuginfo which aren't in the dynamic symbols table.
+ # These are the ones we want to keep in minidebuginfo.
+ keep_symbols_file = minidebugfile + '.symlist'
+ found_any_symbols = False
+ with open(keep_symbols_file, 'w') as f:
+ for line in subprocess.check_output([nm, debugfile, '--format=sysv', '--defined-only'], universal_newlines=True).splitlines():
+ fields = line.split('|')
+ if len(fields) < 7:
+ continue
+ name = fields[0].strip()
+ type = fields[3].strip()
+ if type == 'FUNC' and name not in dynsyms:
+ f.write('{}\n'.format(name))
+ found_any_symbols = True
+
+ if not found_any_symbols:
+ bb.debug(1, 'ELF file {} contains no symbols, skipping minidebuginfo injection'.format(file))
+ return
+
+ bb.utils.remove(minidebugfile)
+ bb.utils.remove(minidebugfile + '.xz')
+
+ subprocess.check_call([objcopy, '-S'] +
+ ['--remove-section={}'.format(s) for s in remove_section_names] +
+ ['--keep-symbols={}'.format(keep_symbols_file), debugfile, minidebugfile])
+
+ subprocess.check_call(['xz', '--keep', minidebugfile])
+
+ subprocess.check_call([objcopy, '--add-section', '.gnu_debugdata={}.xz'.format(minidebugfile), file])
+
def copydebugsources(debugsrcdir, sources, d):
# The debug src information written out to sourcefile is further processed
# and copied to the destination here.
@@ -535,7 +614,7 @@ def copydebugsources(debugsrcdir, sources, d):
# Package data handling routines
#
-def get_package_mapping (pkg, basepkg, d):
+def get_package_mapping (pkg, basepkg, d, depversions=None):
import oe.packagedata
data = oe.packagedata.read_subpkgdata(pkg, d)
@@ -546,6 +625,14 @@ def get_package_mapping (pkg, basepkg, d):
if bb.data.inherits_class('allarch', d) and not d.getVar('MULTILIB_VARIANTS') \
and data[key] == basepkg:
return pkg
+ if depversions == []:
+ # Avoid returning a mapping if the renamed package rprovides its original name
+ rprovkey = "RPROVIDES_%s" % pkg
+ if rprovkey in data:
+ if pkg in bb.utils.explode_dep_versions2(data[rprovkey]):
+ bb.note("%s rprovides %s, not replacing the latter" % (data[key], pkg))
+ return pkg
+ # Do map to rewritten package name
return data[key]
return pkg
@@ -566,8 +653,10 @@ def runtime_mapping_rename (varname, pkg, d):
new_depends = {}
deps = bb.utils.explode_dep_versions2(d.getVar(varname) or "")
- for depend in deps:
- new_depend = get_package_mapping(depend, pkg, d)
+ for depend, depversions in deps.items():
+ new_depend = get_package_mapping(depend, pkg, d, depversions)
+ if depend != new_depend:
+ bb.note("package name mapping done: %s -> %s" % (depend, new_depend))
new_depends[new_depend] = deps[depend]
d.setVar(varname, bb.utils.join_deps(new_depends, commasep=False))
@@ -575,12 +664,20 @@ def runtime_mapping_rename (varname, pkg, d):
#bb.note("%s after: %s" % (varname, d.getVar(varname)))
#
-# Package functions suitable for inclusion in PACKAGEFUNCS
+# Used by do_packagedata (and possibly other routines post do_package)
#
+package_get_auto_pr[vardepsexclude] = "BB_TASKDEPDATA"
python package_get_auto_pr() {
import oe.prservice
- import re
+
+ def get_do_package_hash(pn):
+ if d.getVar("BB_RUNTASK") != "do_package":
+ taskdepdata = d.getVar("BB_TASKDEPDATA", False)
+ for dep in taskdepdata:
+ if taskdepdata[dep][1] == "do_package" and taskdepdata[dep][0] == pn:
+ return taskdepdata[dep][6]
+ return None
# Support per recipe PRSERV_HOST
pn = d.getVar('PN')
@@ -592,15 +689,22 @@ python package_get_auto_pr() {
# PR Server not active, handle AUTOINC
if not d.getVar('PRSERV_HOST'):
- if 'AUTOINC' in pkgv:
- d.setVar("PKGV", pkgv.replace("AUTOINC", "0"))
+ d.setVar("PRSERV_PV_AUTOINC", "0")
return
auto_pr = None
pv = d.getVar("PV")
version = d.getVar("PRAUTOINX")
pkgarch = d.getVar("PACKAGE_ARCH")
- checksum = d.getVar("BB_TASKHASH")
+ checksum = get_do_package_hash(pn)
+
+ # If do_package isn't in the dependencies, we can't get the checksum...
+ if not checksum:
+ bb.warn('Task %s requested do_package unihash, but it was not available.' % d.getVar('BB_RUNTASK'))
+ #taskdepdata = d.getVar("BB_TASKDEPDATA", False)
+ #for dep in taskdepdata:
+ # bb.warn('%s:%s = %s' % (taskdepdata[dep][0], taskdepdata[dep][1], taskdepdata[dep][6]))
+ return
if d.getVar('PRSERV_LOCKDOWN'):
auto_pr = d.getVar('PRAUTO_' + version + '_' + pkgarch) or d.getVar('PRAUTO_' + version) or None
@@ -618,7 +722,7 @@ python package_get_auto_pr() {
srcpv = bb.fetch2.get_srcrev(d)
base_ver = "AUTOINC-%s" % version[:version.find(srcpv)]
value = conn.getPR(base_ver, pkgarch, srcpv)
- d.setVar("PKGV", pkgv.replace("AUTOINC", str(value)))
+ d.setVar("PRSERV_PV_AUTOINC", str(value))
auto_pr = conn.getPR(version, pkgarch, checksum)
except Exception as e:
@@ -628,6 +732,22 @@ python package_get_auto_pr() {
d.setVar('PRAUTO',str(auto_pr))
}
+#
+# Package functions suitable for inclusion in PACKAGEFUNCS
+#
+
+python package_convert_pr_autoinc() {
+ pkgv = d.getVar("PKGV")
+
+ # Adjust pkgv as necessary...
+ if 'AUTOINC' in pkgv:
+ d.setVar("PKGV", pkgv.replace("AUTOINC", "${PRSERV_PV_AUTOINC}"))
+
+ # Change PRSERV_PV_AUTOINC and EXTENDPRAUTO usage to special values
+ d.setVar('PRSERV_PV_AUTOINC', '@PRSERV_PV_AUTOINC@')
+ d.setVar('EXTENDPRAUTO', '@EXTENDPRAUTO@')
+}
+
LOCALEBASEPN ??= "${PN}"
python package_do_split_locales() {
@@ -950,7 +1070,7 @@ python split_and_strip_files () {
dvar = d.getVar('PKGD')
pn = d.getVar('PN')
- targetos = d.getVar('TARGET_OS')
+ hostos = d.getVar('HOST_OS')
oldcwd = os.getcwd()
os.chdir(dvar)
@@ -1105,7 +1225,7 @@ python split_and_strip_files () {
if (d.getVar('INHIBIT_PACKAGE_DEBUG_SPLIT') != '1'):
results = oe.utils.multiprocess_launch(splitdebuginfo, list(elffiles), d, extraargs=(dvar, debugdir, debuglibdir, debugappend, debugsrcdir, d))
- if debugsrcdir and not targetos.startswith("mingw"):
+ if debugsrcdir and not hostos.startswith("mingw"):
if (d.getVar('PACKAGE_DEBUG_STATIC_SPLIT') == '1'):
results = oe.utils.multiprocess_launch(splitstaticdebuginfo, staticlibs, d, extraargs=(dvar, debugstaticdir, debugstaticlibdir, debugstaticappend, debugsrcdir, d))
else:
@@ -1185,6 +1305,11 @@ python split_and_strip_files () {
oe.utils.multiprocess_launch(oe.package.runstrip, sfiles, d)
+ # Build "minidebuginfo" and reinject it back into the stripped binaries
+ if d.getVar('PACKAGE_MINIDEBUGINFO') == '1':
+ oe.utils.multiprocess_launch(inject_minidebuginfo, list(elffiles), d,
+ extraargs=(dvar, debugdir, debuglibdir, debugappend, debugsrcdir, d))
+
#
# End of strip
#
@@ -1414,7 +1539,7 @@ EXPORT_FUNCTIONS package_name_hook
PKGDESTWORK = "${WORKDIR}/pkgdata"
-PKGDATA_VARS = "PN PE PV PR PKGE PKGV PKGR LICENSE DESCRIPTION SUMMARY RDEPENDS RPROVIDES RRECOMMENDS RSUGGESTS RREPLACES RCONFLICTS SECTION PKG ALLOW_EMPTY FILES CONFFILES FILES_INFO pkg_postinst pkg_postrm pkg_preinst pkg_prerm"
+PKGDATA_VARS = "PN PE PV PR PKGE PKGV PKGR LICENSE DESCRIPTION SUMMARY RDEPENDS RPROVIDES RRECOMMENDS RSUGGESTS RREPLACES RCONFLICTS SECTION PKG ALLOW_EMPTY FILES CONFFILES FILES_INFO PACKAGE_ADD_METADATA pkg_postinst pkg_postrm pkg_preinst pkg_prerm"
python emit_pkgdata() {
from glob import glob
@@ -1544,7 +1669,7 @@ fi
# Symlinks needed for rprovides lookup
rprov = d.getVar('RPROVIDES_%s' % pkg) or d.getVar('RPROVIDES')
if rprov:
- for p in rprov.strip().split():
+ for p in bb.utils.explode_deps(rprov):
subdata_sym = pkgdatadir + "/runtime-rprovides/%s/%s" % (p, pkg)
bb.utils.mkdirhier(os.path.dirname(subdata_sym))
oe.path.symlink("../../runtime/%s" % pkg, subdata_sym, True)
@@ -1667,7 +1792,7 @@ python package_do_shlibs() {
else:
shlib_pkgs = packages.split()
- targetos = d.getVar('TARGET_OS')
+ hostos = d.getVar('HOST_OS')
workdir = d.getVar('WORKDIR')
@@ -1818,9 +1943,9 @@ python package_do_shlibs() {
soname = None
if cpath.islink(file):
continue
- if targetos == "darwin" or targetos == "darwin8":
+ if hostos == "darwin" or hostos == "darwin8":
darwin_so(file, needed, sonames, renames, pkgver)
- elif targetos.startswith("mingw"):
+ elif hostos.startswith("mingw"):
mingw_dll(file, needed, sonames, renames, pkgver)
elif os.access(file, os.X_OK) or lib_re.match(file):
linuxlist.append(file)
@@ -1842,7 +1967,7 @@ python package_do_shlibs() {
shlibs_file = os.path.join(shlibswork_dir, pkg + ".list")
if len(sonames):
with open(shlibs_file, 'w') as fd:
- for s in sonames:
+ for s in sorted(sonames):
if s[0] in shlib_provider and s[1] in shlib_provider[s[0]]:
(old_pkg, old_pkgver) = shlib_provider[s[0]][s[1]]
if old_pkg != pkg:
@@ -2169,7 +2294,7 @@ python package_depchains() {
# Since bitbake can't determine which variables are accessed during package
# iteration, we need to list them here:
-PACKAGEVARS = "FILES RDEPENDS RRECOMMENDS SUMMARY DESCRIPTION RSUGGESTS RPROVIDES RCONFLICTS PKG ALLOW_EMPTY pkg_postinst pkg_postrm pkg_postinst_ontarget INITSCRIPT_NAME INITSCRIPT_PARAMS DEBIAN_NOAUTONAME ALTERNATIVE PKGE PKGV PKGR USERADD_PARAM GROUPADD_PARAM CONFFILES SYSTEMD_SERVICE LICENSE SECTION pkg_preinst pkg_prerm RREPLACES GROUPMEMS_PARAM SYSTEMD_AUTO_ENABLE SKIP_FILEDEPS PRIVATE_LIBS"
+PACKAGEVARS = "FILES RDEPENDS RRECOMMENDS SUMMARY DESCRIPTION RSUGGESTS RPROVIDES RCONFLICTS PKG ALLOW_EMPTY pkg_postinst pkg_postrm pkg_postinst_ontarget INITSCRIPT_NAME INITSCRIPT_PARAMS DEBIAN_NOAUTONAME ALTERNATIVE PKGE PKGV PKGR USERADD_PARAM GROUPADD_PARAM CONFFILES SYSTEMD_SERVICE LICENSE SECTION pkg_preinst pkg_prerm RREPLACES GROUPMEMS_PARAM SYSTEMD_AUTO_ENABLE SKIP_FILEDEPS PRIVATE_LIBS PACKAGE_ADD_METADATA"
def gen_packagevar(d, pkgvars="PACKAGEVARS"):
ret = []
@@ -2241,7 +2366,7 @@ python do_package () {
package_qa_handle_error("var-undefined", msg, d)
return
- bb.build.exec_func("package_get_auto_pr", d)
+ bb.build.exec_func("package_convert_pr_autoinc", d)
###########################################################################
# Optimisations
@@ -2313,9 +2438,20 @@ addtask do_package_setscene
# Copy from PKGDESTWORK to tempdirectory as tempdirectory can be cleaned at both
# do_package_setscene and do_packagedata_setscene leading to races
python do_packagedata () {
+ bb.build.exec_func("package_get_auto_pr", d)
+
src = d.expand("${PKGDESTWORK}")
dest = d.expand("${WORKDIR}/pkgdata-pdata-input")
oe.path.copyhardlinktree(src, dest)
+
+ bb.build.exec_func("packagedata_translate_pr_autoinc", d)
+}
+
+# Translate the EXTENDPRAUTO and AUTOINC to the final values
+packagedata_translate_pr_autoinc() {
+ find ${WORKDIR}/pkgdata-pdata-input -type f | xargs --no-run-if-empty \
+ sed -e 's,@PRSERV_PV_AUTOINC@,${PRSERV_PV_AUTOINC},g' \
+ -e 's,@EXTENDPRAUTO@,${EXTENDPRAUTO},g' -i
}
addtask packagedata before do_build after do_package
diff --git a/meta/classes/package_deb.bbclass b/meta/classes/package_deb.bbclass
index 790b26aef2..cb723fc1d6 100644
--- a/meta/classes/package_deb.bbclass
+++ b/meta/classes/package_deb.bbclass
@@ -283,8 +283,9 @@ def deb_write_pkg(pkg, d):
# Otherwise allarch packages may change depending on override configuration
deb_write_pkg[vardepsexclude] = "OVERRIDES"
-# Indirect references to these vars
-do_package_write_deb[vardeps] += "PKGV PKGR PKGV DESCRIPTION SECTION PRIORITY MAINTAINER DPKG_ARCH PN HOMEPAGE"
+# Have to list any variables referenced as X_<pkg> that aren't in pkgdata here
+DEBEXTRAVARS = "PKGV PKGR PKGV DESCRIPTION SECTION PRIORITY MAINTAINER DPKG_ARCH PN HOMEPAGE PACKAGE_ADD_METADATA_DEB"
+do_package_write_deb[vardeps] += "${@gen_packagevar(d, 'DEBEXTRAVARS')}"
SSTATETASKS += "do_package_write_deb"
do_package_write_deb[sstate-inputdirs] = "${PKGWRITEDIRDEB}"
diff --git a/meta/classes/package_ipk.bbclass b/meta/classes/package_ipk.bbclass
index c008559e4a..79cb36c513 100644
--- a/meta/classes/package_ipk.bbclass
+++ b/meta/classes/package_ipk.bbclass
@@ -238,7 +238,7 @@ def ipk_write_pkg(pkg, d):
bb.utils.unlockfile(lf)
# Have to list any variables referenced as X_<pkg> that aren't in pkgdata here
-IPKEXTRAVARS = "PRIORITY MAINTAINER PACKAGE_ARCH HOMEPAGE"
+IPKEXTRAVARS = "PRIORITY MAINTAINER PACKAGE_ARCH HOMEPAGE PACKAGE_ADD_METADATA_IPK"
ipk_write_pkg[vardeps] += "${@gen_packagevar(d, 'IPKEXTRAVARS')}"
# Otherwise allarch packages may change depending on override configuration
diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass
index 9145717f98..53b4700cdd 100644
--- a/meta/classes/package_rpm.bbclass
+++ b/meta/classes/package_rpm.bbclass
@@ -286,16 +286,18 @@ python write_specfile () {
# Construct the SPEC file...
srcname = d.getVar('PN')
- srcsummary = (d.getVar('SUMMARY') or d.getVar('DESCRIPTION') or ".")
- srcversion = d.getVar('PKGV').replace('-', '+')
- srcrelease = d.getVar('PKGR')
- srcepoch = (d.getVar('PKGE') or "")
- srclicense = d.getVar('LICENSE')
- srcsection = d.getVar('SECTION')
- srcmaintainer = d.getVar('MAINTAINER')
- srchomepage = d.getVar('HOMEPAGE')
- srcdescription = d.getVar('DESCRIPTION') or "."
- srccustomtagschunk = get_package_additional_metadata("rpm", d)
+ localdata = bb.data.createCopy(d)
+ localdata.setVar('OVERRIDES', d.getVar("OVERRIDES", False) + ":" + srcname)
+ srcsummary = (localdata.getVar('SUMMARY') or localdata.getVar('DESCRIPTION') or ".")
+ srcversion = localdata.getVar('PKGV').replace('-', '+')
+ srcrelease = localdata.getVar('PKGR')
+ srcepoch = (localdata.getVar('PKGE') or "")
+ srclicense = localdata.getVar('LICENSE')
+ srcsection = localdata.getVar('SECTION')
+ srcmaintainer = localdata.getVar('MAINTAINER')
+ srchomepage = localdata.getVar('HOMEPAGE')
+ srcdescription = localdata.getVar('DESCRIPTION') or "."
+ srccustomtagschunk = get_package_additional_metadata("rpm", localdata)
srcdepends = d.getVar('DEPENDS')
srcrdepends = []
@@ -555,7 +557,7 @@ python write_specfile () {
print_deps(srcrrecommends, "Recommends", spec_preamble_top, d)
print_deps(srcrsuggests, "Suggests", spec_preamble_top, d)
- print_deps(srcrprovides + (" /bin/sh" if srcname.startswith("nativesdk-") else ""), "Provides", spec_preamble_top, d)
+ print_deps(srcrprovides, "Provides", spec_preamble_top, d)
print_deps(srcrobsoletes, "Obsoletes", spec_preamble_top, d)
print_deps(srcrconflicts, "Conflicts", spec_preamble_top, d)
@@ -621,6 +623,10 @@ python write_specfile () {
# Otherwise allarch packages may change depending on override configuration
write_specfile[vardepsexclude] = "OVERRIDES"
+# Have to list any variables referenced as X_<pkg> that aren't in pkgdata here
+RPMEXTRAVARS = "PACKAGE_ADD_METADATA_RPM"
+write_specfile[vardeps] += "${@gen_packagevar(d, 'RPMEXTRAVARS')}"
+
python do_package_rpm () {
workdir = d.getVar('WORKDIR')
tmpdir = d.getVar('TMPDIR')
diff --git a/meta/classes/package_tar.bbclass b/meta/classes/package_tar.bbclass
index ce3ab4c8e2..d6c1b306fc 100644
--- a/meta/classes/package_tar.bbclass
+++ b/meta/classes/package_tar.bbclass
@@ -57,10 +57,8 @@ python do_package_tar () {
python () {
if d.getVar('PACKAGES') != '':
- deps = (d.getVarFlag('do_package_write_tar', 'depends') or "").split()
- deps.append('tar-native:do_populate_sysroot')
- deps.append('virtual/fakeroot-native:do_populate_sysroot')
- d.setVarFlag('do_package_write_tar', 'depends', " ".join(deps))
+ deps = ' tar-native:do_populate_sysroot virtual/fakeroot-native:do_populate_sysroot'
+ d.appendVarFlag('do_package_write_tar', 'depends', deps)
d.setVarFlag('do_package_write_tar', 'fakeroot', "1")
}
diff --git a/meta/classes/packagefeed-stability.bbclass b/meta/classes/packagefeed-stability.bbclass
deleted file mode 100644
index 5648602564..0000000000
--- a/meta/classes/packagefeed-stability.bbclass
+++ /dev/null
@@ -1,252 +0,0 @@
-# Class to avoid copying packages into the feed if they haven't materially changed
-#
-# Copyright (C) 2015 Intel Corporation
-# Released under the MIT license (see COPYING.MIT for details)
-#
-# This class effectively intercepts packages as they are written out by
-# do_package_write_*, causing them to be written into a different
-# directory where we can compare them to whatever older packages might
-# be in the "real" package feed directory, and avoid copying the new
-# package to the feed if it has not materially changed. The idea is to
-# avoid unnecessary churn in the packages when dependencies trigger task
-# reexecution (and thus repackaging). Enabling the class is simple:
-#
-# INHERIT += "packagefeed-stability"
-#
-# Caveats:
-# 1) Latest PR values in the build system may not match those in packages
-# seen on the target (naturally)
-# 2) If you rebuild from sstate without the existing package feed present,
-# you will lose the "state" of the package feed i.e. the preserved old
-# package versions. Not the end of the world, but would negate the
-# entire purpose of this class.
-#
-# Note that running -c cleanall on a recipe will purposely delete the old
-# package files so they will definitely be copied the next time.
-
-python() {
- if bb.data.inherits_class('native', d) or bb.data.inherits_class('cross', d):
- return
- # Package backend agnostic intercept
- # This assumes that the package_write task is called package_write_<pkgtype>
- # and that the directory in which packages should be written is
- # pointed to by the variable DEPLOY_DIR_<PKGTYPE>
- for pkgclass in (d.getVar('PACKAGE_CLASSES') or '').split():
- if pkgclass.startswith('package_'):
- pkgtype = pkgclass.split('_', 1)[1]
- pkgwritefunc = 'do_package_write_%s' % pkgtype
- sstate_outputdirs = d.getVarFlag(pkgwritefunc, 'sstate-outputdirs', False)
- deploydirvar = 'DEPLOY_DIR_%s' % pkgtype.upper()
- deploydirvarref = '${' + deploydirvar + '}'
- pkgcomparefunc = 'do_package_compare_%s' % pkgtype
-
- if bb.data.inherits_class('image', d):
- d.appendVarFlag('do_rootfs', 'recrdeptask', ' ' + pkgcomparefunc)
-
- if bb.data.inherits_class('populate_sdk_base', d):
- d.appendVarFlag('do_populate_sdk', 'recrdeptask', ' ' + pkgcomparefunc)
-
- if bb.data.inherits_class('populate_sdk_ext', d):
- d.appendVarFlag('do_populate_sdk_ext', 'recrdeptask', ' ' + pkgcomparefunc)
-
- d.appendVarFlag('do_build', 'recrdeptask', ' ' + pkgcomparefunc)
-
- if d.getVarFlag(pkgwritefunc, 'noexec') or not d.getVarFlag(pkgwritefunc, 'task'):
- # Packaging is disabled for this recipe, we shouldn't do anything
- continue
-
- if deploydirvarref in sstate_outputdirs:
- deplor_dir_pkgtype = d.expand(deploydirvarref + '-prediff')
- # Set intermediate output directory
- d.setVarFlag(pkgwritefunc, 'sstate-outputdirs', sstate_outputdirs.replace(deploydirvarref, deplor_dir_pkgtype))
- # Update SSTATE_DUPWHITELIST to avoid shared location conflicted error
- d.appendVar('SSTATE_DUPWHITELIST', ' %s' % deplor_dir_pkgtype)
-
- d.setVar(pkgcomparefunc, d.getVar('do_package_compare', False))
- d.setVarFlags(pkgcomparefunc, d.getVarFlags('do_package_compare', False))
- d.appendVarFlag(pkgcomparefunc, 'depends', ' build-compare-native:do_populate_sysroot')
- bb.build.addtask(pkgcomparefunc, 'do_build', 'do_packagedata ' + pkgwritefunc, d)
-}
-
-# This isn't the real task function - it's a template that we use in the
-# anonymous python code above
-fakeroot python do_package_compare () {
- currenttask = d.getVar('BB_CURRENTTASK')
- pkgtype = currenttask.rsplit('_', 1)[1]
- package_compare_impl(pkgtype, d)
-}
-
-def package_compare_impl(pkgtype, d):
- import errno
- import fnmatch
- import glob
- import subprocess
- import oe.sstatesig
-
- pn = d.getVar('PN')
- deploydir = d.getVar('DEPLOY_DIR_%s' % pkgtype.upper())
- prepath = deploydir + '-prediff/'
-
- # Find out PKGR values are
- pkgdatadir = d.getVar('PKGDATA_DIR')
- packages = []
- try:
- with open(os.path.join(pkgdatadir, pn), 'r') as f:
- for line in f:
- if line.startswith('PACKAGES:'):
- packages = line.split(':', 1)[1].split()
- break
- except IOError as e:
- if e.errno == errno.ENOENT:
- pass
-
- if not packages:
- bb.debug(2, '%s: no packages, nothing to do' % pn)
- return
-
- pkgrvalues = {}
- rpkgnames = {}
- rdepends = {}
- pkgvvalues = {}
- for pkg in packages:
- with open(os.path.join(pkgdatadir, 'runtime', pkg), 'r') as f:
- for line in f:
- if line.startswith('PKGR:'):
- pkgrvalues[pkg] = line.split(':', 1)[1].strip()
- if line.startswith('PKGV:'):
- pkgvvalues[pkg] = line.split(':', 1)[1].strip()
- elif line.startswith('PKG_%s:' % pkg):
- rpkgnames[pkg] = line.split(':', 1)[1].strip()
- elif line.startswith('RDEPENDS_%s:' % pkg):
- rdepends[pkg] = line.split(':', 1)[1].strip()
-
- # Prepare a list of the runtime package names for packages that were
- # actually produced
- rpkglist = []
- for pkg, rpkg in rpkgnames.items():
- if os.path.exists(os.path.join(pkgdatadir, 'runtime', pkg + '.packaged')):
- rpkglist.append((rpkg, pkg))
- rpkglist.sort(key=lambda x: len(x[0]), reverse=True)
-
- pvu = d.getVar('PV', False)
- if '$' + '{SRCPV}' in pvu:
- pvprefix = pvu.split('$' + '{SRCPV}', 1)[0]
- else:
- pvprefix = None
-
- pkgwritetask = 'package_write_%s' % pkgtype
- files = []
- docopy = False
- manifest, _ = oe.sstatesig.sstate_get_manifest_filename(pkgwritetask, d)
- mlprefix = d.getVar('MLPREFIX')
- # Copy recipe's all packages if one of the packages are different to make
- # they have the same PR.
- with open(manifest, 'r') as f:
- for line in f:
- if line.startswith(prepath):
- srcpath = line.rstrip()
- if os.path.isfile(srcpath):
- destpath = os.path.join(deploydir, os.path.relpath(srcpath, prepath))
-
- # This is crude but should work assuming the output
- # package file name starts with the package name
- # and rpkglist is sorted by length (descending)
- pkgbasename = os.path.basename(destpath)
- pkgname = None
- for rpkg, pkg in rpkglist:
- if mlprefix and pkgtype == 'rpm' and rpkg.startswith(mlprefix):
- rpkg = rpkg[len(mlprefix):]
- if pkgbasename.startswith(rpkg):
- pkgr = pkgrvalues[pkg]
- destpathspec = destpath.replace(pkgr, '*')
- if pvprefix:
- pkgv = pkgvvalues[pkg]
- if pkgv.startswith(pvprefix):
- pkgvsuffix = pkgv[len(pvprefix):]
- if '+' in pkgvsuffix:
- newpkgv = pvprefix + '*+' + pkgvsuffix.split('+', 1)[1]
- destpathspec = destpathspec.replace(pkgv, newpkgv)
- pkgname = pkg
- break
- else:
- bb.warn('Unable to map %s back to package' % pkgbasename)
- destpathspec = destpath
-
- oldfile = None
- if not docopy:
- oldfiles = glob.glob(destpathspec)
- if oldfiles:
- oldfile = oldfiles[-1]
- result = subprocess.call(['pkg-diff.sh', oldfile, srcpath])
- if result != 0:
- docopy = True
- bb.note("%s and %s are different, will copy packages" % (oldfile, srcpath))
- else:
- docopy = True
- bb.note("No old packages found for %s, will copy packages" % pkgname)
-
- files.append((pkgname, pkgbasename, srcpath, destpath))
-
- # Remove all the old files and copy again if docopy
- if docopy:
- bb.note('Copying packages for recipe %s' % pn)
- pcmanifest = os.path.join(prepath, d.expand('pkg-compare-manifest-${MULTIMACH_TARGET_SYS}-${PN}'))
- try:
- with open(pcmanifest, 'r') as f:
- for line in f:
- fn = line.rstrip()
- if fn:
- try:
- os.remove(fn)
- bb.note('Removed old package %s' % fn)
- except OSError as e:
- if e.errno == errno.ENOENT:
- pass
- except IOError as e:
- if e.errno == errno.ENOENT:
- pass
-
- # Create new manifest
- with open(pcmanifest, 'w') as f:
- for pkgname, pkgbasename, srcpath, destpath in files:
- destdir = os.path.dirname(destpath)
- bb.utils.mkdirhier(destdir)
- # Remove allarch rpm pkg if it is already existed (for
- # multilib), they're identical in theory, but sstate.bbclass
- # copies it again, so keep align with that.
- if os.path.exists(destpath) and pkgtype == 'rpm' \
- and d.getVar('PACKAGE_ARCH') == 'all':
- os.unlink(destpath)
- if (os.stat(srcpath).st_dev == os.stat(destdir).st_dev):
- # Use a hard link to save space
- os.link(srcpath, destpath)
- else:
- shutil.copyfile(srcpath, destpath)
- f.write('%s\n' % destpath)
- else:
- bb.note('Not copying packages for recipe %s' % pn)
-
-do_cleansstate[postfuncs] += "pfs_cleanpkgs"
-python pfs_cleanpkgs () {
- import errno
- for pkgclass in (d.getVar('PACKAGE_CLASSES') or '').split():
- if pkgclass.startswith('package_'):
- pkgtype = pkgclass.split('_', 1)[1]
- deploydir = d.getVar('DEPLOY_DIR_%s' % pkgtype.upper())
- prepath = deploydir + '-prediff'
- pcmanifest = os.path.join(prepath, d.expand('pkg-compare-manifest-${MULTIMACH_TARGET_SYS}-${PN}'))
- try:
- with open(pcmanifest, 'r') as f:
- for line in f:
- fn = line.rstrip()
- if fn:
- try:
- os.remove(fn)
- except OSError as e:
- if e.errno == errno.ENOENT:
- pass
- os.remove(pcmanifest)
- except IOError as e:
- if e.errno == errno.ENOENT:
- pass
-}
diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass
index 3248bb01c3..49b1833265 100644
--- a/meta/classes/populate_sdk_base.bbclass
+++ b/meta/classes/populate_sdk_base.bbclass
@@ -1,4 +1,4 @@
-inherit meta image-postinst-intercepts
+inherit meta image-postinst-intercepts image-artifact-names
# Wildcards specifying complementary packages to install for every package that has been explicitly
# installed into the rootfs
@@ -49,6 +49,8 @@ TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${SDK_VERSION}"
# Default archived SDK's suffix
SDK_ARCHIVE_TYPE ?= "tar.xz"
+SDK_XZ_COMPRESSION_LEVEL ?= "-9"
+SDK_XZ_OPTIONS ?= "${XZ_DEFAULTS} ${SDK_XZ_COMPRESSION_LEVEL}"
# To support different sdk type according to SDK_ARCHIVE_TYPE, now support zip and tar.xz
python () {
@@ -56,10 +58,10 @@ python () {
d.setVar('SDK_ARCHIVE_DEPENDS', 'zip-native')
# SDK_ARCHIVE_CMD used to generate archived sdk ${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE} from input dir ${SDK_OUTPUT}/${SDKPATH} to output dir ${SDKDEPLOYDIR}
# recommand to cd into input dir first to avoid archive with buildpath
- d.setVar('SDK_ARCHIVE_CMD', 'cd ${SDK_OUTPUT}/${SDKPATH}; zip -r ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE} .')
+ d.setVar('SDK_ARCHIVE_CMD', 'cd ${SDK_OUTPUT}/${SDKPATH}; zip -r -y ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE} .')
else:
d.setVar('SDK_ARCHIVE_DEPENDS', 'xz-native')
- d.setVar('SDK_ARCHIVE_CMD', 'cd ${SDK_OUTPUT}/${SDKPATH}; tar ${SDKTAROPTS} -cf - . | xz -T 0 -9 > ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE}')
+ d.setVar('SDK_ARCHIVE_CMD', 'cd ${SDK_OUTPUT}/${SDKPATH}; tar ${SDKTAROPTS} -cf - . | xz ${SDK_XZ_OPTIONS} > ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE}')
}
SDK_RDEPENDS = "${TOOLCHAIN_TARGET_TASK} ${TOOLCHAIN_HOST_TASK}"
@@ -176,6 +178,8 @@ do_populate_sdk[sstate-inputdirs] = "${SDKDEPLOYDIR}"
do_populate_sdk[sstate-outputdirs] = "${SDK_DEPLOY}"
do_populate_sdk[stamp-extra-info] = "${MACHINE_ARCH}${SDKMACHINE}"
+PSEUDO_IGNORE_PATHS .= ",${SDKDEPLOYDIR}"
+
fakeroot create_sdk_files() {
cp ${COREBASE}/scripts/relocate_sdk.py ${SDK_OUTPUT}/${SDKPATH}/
@@ -183,6 +187,11 @@ fakeroot create_sdk_files() {
# Escape special characters like '+' and '.' in the SDKPATH
escaped_sdkpath=$(echo ${SDKPATH} |sed -e "s:[\+\.]:\\\\\\\\\0:g")
sed -i -e "s:##DEFAULT_INSTALL_DIR##:$escaped_sdkpath:" ${SDK_OUTPUT}/${SDKPATH}/relocate_sdk.py
+
+ mkdir -p ${SDK_OUTPUT}/${SDKPATHNATIVE}${sysconfdir}/
+ echo '${SDKPATHNATIVE}${libdir_nativesdk}
+${SDKPATHNATIVE}${base_libdir_nativesdk}
+include /etc/ld.so.conf' > ${SDK_OUTPUT}/${SDKPATHNATIVE}${sysconfdir}/ld.so.conf
}
python check_sdk_sysroots() {
diff --git a/meta/classes/populate_sdk_ext.bbclass b/meta/classes/populate_sdk_ext.bbclass
index 57fd29b1bb..6f35b612c2 100644
--- a/meta/classes/populate_sdk_ext.bbclass
+++ b/meta/classes/populate_sdk_ext.bbclass
@@ -310,8 +310,9 @@ python copy_buildsystem () {
if os.path.exists(builddir + '/conf/auto.conf'):
with open(builddir + '/conf/auto.conf', 'r') as f:
oldlines += f.readlines()
- with open(builddir + '/conf/local.conf', 'r') as f:
- oldlines += f.readlines()
+ if os.path.exists(builddir + '/conf/local.conf'):
+ with open(builddir + '/conf/local.conf', 'r') as f:
+ oldlines += f.readlines()
(updated, newlines) = bb.utils.edit_metadata(oldlines, varlist, handle_var)
with open(baseoutpath + '/conf/local.conf', 'w') as f:
@@ -388,9 +389,13 @@ python copy_buildsystem () {
bb.utils.mkdirhier(os.path.join(baseoutpath, 'cache'))
shutil.copyfile(builddir + '/cache/bb_unihashes.dat', baseoutpath + '/cache/bb_unihashes.dat')
- # Write a templateconf.cfg
- with open(baseoutpath + '/conf/templateconf.cfg', 'w') as f:
- f.write('meta/conf\n')
+ # Use templateconf.cfg file from builddir if exists
+ if os.path.exists(builddir + '/conf/templateconf.cfg'):
+ shutil.copyfile(builddir + '/conf/templateconf.cfg', baseoutpath + '/conf/templateconf.cfg')
+ else:
+ # Write a templateconf.cfg
+ with open(baseoutpath + '/conf/templateconf.cfg', 'w') as f:
+ f.write('meta/conf\n')
# Ensure any variables set from the external environment (by way of
# BB_ENV_EXTRAWHITE) are set in the SDK's configuration
@@ -517,12 +522,18 @@ python copy_buildsystem () {
# sdk_ext_postinst() below) thus the checksum we take here would always
# be different.
manifest_file_list = ['conf/*']
+ esdk_manifest_excludes = (d.getVar('ESDK_MANIFEST_EXCLUDES') or '').split()
+ esdk_manifest_excludes_list = []
+ for exclude_item in esdk_manifest_excludes:
+ esdk_manifest_excludes_list += glob.glob(os.path.join(baseoutpath, exclude_item))
manifest_file = os.path.join(baseoutpath, 'conf', 'sdk-conf-manifest')
with open(manifest_file, 'w') as f:
for item in manifest_file_list:
for fn in glob.glob(os.path.join(baseoutpath, item)):
if fn == manifest_file:
continue
+ if fn in esdk_manifest_excludes_list:
+ continue
chksum = bb.utils.sha256_file(fn)
f.write('%s\t%s\n' % (chksum, os.path.relpath(fn, baseoutpath)))
}
@@ -649,7 +660,10 @@ sdk_ext_postinst() {
# Make sure when the user sets up the environment, they also get
# the buildtools-tarball tools in their path.
+ echo "# Save and reset OECORE_NATIVE_SYSROOT as buildtools may change it" >> $env_setup_script
+ echo "SAVED=\"\$OECORE_NATIVE_SYSROOT\"" >> $env_setup_script
echo ". $target_sdk_dir/buildtools/environment-setup*" >> $env_setup_script
+ echo "OECORE_NATIVE_SYSROOT=\"\$SAVED\"" >> $env_setup_script
fi
# Allow bitbake environment setup to be ran as part of this sdk.
@@ -672,7 +686,7 @@ sdk_ext_postinst() {
# current working directory when first ran, nor will it set $1 when
# sourcing a script. That is why this has to look so ugly.
LOGFILE="$target_sdk_dir/preparing_build_system.log"
- sh -c ". buildtools/environment-setup* > $LOGFILE && cd $target_sdk_dir/`dirname ${oe_init_build_env_path}` && set $target_sdk_dir && . $target_sdk_dir/${oe_init_build_env_path} $target_sdk_dir >> $LOGFILE && python $target_sdk_dir/ext-sdk-prepare.py $LOGFILE '${SDK_INSTALL_TARGETS}'" || { echo "printf 'ERROR: this SDK was not fully installed and needs reinstalling\n'" >> $env_setup_script ; exit 1 ; }
+ sh -c ". buildtools/environment-setup* > $LOGFILE && cd $target_sdk_dir/`dirname ${oe_init_build_env_path}` && set $target_sdk_dir && . $target_sdk_dir/${oe_init_build_env_path} $target_sdk_dir >> $LOGFILE && python3 $target_sdk_dir/ext-sdk-prepare.py $LOGFILE '${SDK_INSTALL_TARGETS}'" || { echo "printf 'ERROR: this SDK was not fully installed and needs reinstalling\n'" >> $env_setup_script ; exit 1 ; }
fi
if [ -e $target_sdk_dir/ext-sdk-prepare.py ]; then
rm $target_sdk_dir/ext-sdk-prepare.py
diff --git a/meta/classes/ptest.bbclass b/meta/classes/ptest.bbclass
index fa4c36ec76..47611edea2 100644
--- a/meta/classes/ptest.bbclass
+++ b/meta/classes/ptest.bbclass
@@ -6,7 +6,7 @@ PTEST_PATH ?= "${libdir}/${BPN}/ptest"
PTEST_BUILD_HOST_FILES ?= "Makefile"
PTEST_BUILD_HOST_PATTERN ?= ""
-FILES_${PN}-ptest = "${PTEST_PATH}"
+FILES_${PN}-ptest += "${PTEST_PATH}"
SECTION_${PN}-ptest = "devel"
ALLOW_EMPTY_${PN}-ptest = "1"
PTEST_ENABLED = "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', '1', '0', d)}"
diff --git a/meta/classes/pypi.bbclass b/meta/classes/pypi.bbclass
index e5d7ab3ce1..87b4c85fc0 100644
--- a/meta/classes/pypi.bbclass
+++ b/meta/classes/pypi.bbclass
@@ -22,5 +22,5 @@ SECTION = "devel/python"
SRC_URI += "${PYPI_SRC_URI}"
S = "${WORKDIR}/${PYPI_PACKAGE}-${PV}"
-UPSTREAM_CHECK_URI ?= "https://pypi.python.org/pypi/${PYPI_PACKAGE}/"
-UPSTREAM_CHECK_REGEX ?= "/${PYPI_PACKAGE}/(?P<pver>(\d+[\.\-_]*)+)"
+UPSTREAM_CHECK_URI ?= "https://pypi.org/project/${PYPI_PACKAGE}/"
+UPSTREAM_CHECK_REGEX ?= "/${PYPI_PACKAGE}/(?P<pver>(\d+[\.\-_]*)+)/"
diff --git a/meta/classes/python3native.bbclass b/meta/classes/python3native.bbclass
index 182c11aa2e..d98fb4c758 100644
--- a/meta/classes/python3native.bbclass
+++ b/meta/classes/python3native.bbclass
@@ -1,8 +1,6 @@
inherit python3-dir
PYTHON="${STAGING_BINDIR_NATIVE}/python3-native/python3"
-# PYTHON_EXECUTABLE is used by cmake
-PYTHON_EXECUTABLE="${PYTHON}"
EXTRANATIVEPATH += "python3-native"
DEPENDS_append = " python3-native "
diff --git a/meta/classes/qemuboot.bbclass b/meta/classes/qemuboot.bbclass
index 15a9e63f2b..824676216e 100644
--- a/meta/classes/qemuboot.bbclass
+++ b/meta/classes/qemuboot.bbclass
@@ -4,7 +4,7 @@
#
# QB_SYSTEM_NAME: qemu name, e.g., "qemu-system-i386"
#
-# QB_OPT_APPEND: options to append to qemu, e.g., "-show-cursor"
+# QB_OPT_APPEND: options to append to qemu, e.g., "-device usb-mouse"
#
# QB_DEFAULT_KERNEL: default kernel to boot, e.g., "bzImage"
#
@@ -29,6 +29,9 @@
# QB_AUDIO_OPT: qemu audio option, e.g., "-soundhw ac97,es1370", used
# when QB_AUDIO_DRV is set.
#
+# QB_RNG: Pass-through for host random number generator, it can speedup boot
+# in system mode, where system is experiencing entropy starvation
+#
# QB_KERNEL_ROOT: kernel's root, e.g., /dev/vda
#
# QB_NETWORK_DEVICE: network device, e.g., "-device virtio-net-pci,netdev=net0,mac=@MAC@",
@@ -36,6 +39,9 @@
# Note, runqemu will replace @MAC@ with a predefined mac, you can set
# a custom one, but that may cause conflicts when multiple qemus are
# running on the same host.
+# Note: If more than one interface of type -device virtio-net-device gets added,
+# QB_NETWORK_DEVICE_prepend might be used, since Qemu enumerates the eth*
+# devices in reverse order to -device arguments.
#
# QB_TAP_OPT: netowrk option for 'tap' mode, e.g.,
# "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no"
@@ -43,6 +49,15 @@
#
# QB_SLIRP_OPT: network option for SLIRP mode, e.g., -netdev user,id=net0"
#
+# QB_CMDLINE_IP_SLIRP: If QB_NETWORK_DEVICE adds more than one network interface to qemu, usually the
+# ip= kernel comand line argument needs to be changed accordingly. Details are documented
+# in the kernel docuemntation https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt
+# Example to configure only the first interface: "ip=eth0:dhcp"
+# QB_CMDLINE_IP_TAP: This parameter is similar to the QB_CMDLINE_IP_SLIRP parameter. Since the tap interface requires
+# static IP configuration @CLIENT@ and @GATEWAY@ place holders are replaced by the IP and the gateway
+# address of the qemu guest by runqemu.
+# Example: "ip=192.168.7.@CLIENT@::192.168.7.@GATEWAY@:255.255.255.0::eth0"
+#
# QB_ROOTFS_OPT: used as rootfs, e.g.,
# "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0"
# Note, runqemu will replace "@ROOTFS@" with the one which is used, such as core-image-minimal-qemuarm64.ext4.
@@ -53,6 +68,10 @@
# " -device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon"
# Note, runqemu will replace "@PORT@" with the port number which is used.
#
+# QB_ROOTFS_EXTRA_OPT: extra options to be appended to the rootfs device in case there is none specified by QB_ROOTFS_OPT.
+# Can be used to automatically determine the image from the other variables
+# but define things link 'bootindex' when booting from EFI or 'readonly' when using squashfs
+# without the need to specify a dedicated qemu configuration
# Usage:
# IMAGE_CLASSES += "qemuboot"
# See "runqemu help" for more info
@@ -61,15 +80,20 @@ QB_MEM ?= "-m 256"
QB_SERIAL_OPT ?= "-serial mon:stdio -serial null"
QB_DEFAULT_KERNEL ?= "${KERNEL_IMAGETYPE}"
QB_DEFAULT_FSTYPE ?= "ext4"
-QB_OPT_APPEND ?= "-show-cursor"
+QB_RNG ?= "-object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0"
+QB_OPT_APPEND ?= ""
QB_NETWORK_DEVICE ?= "-device virtio-net-pci,netdev=net0,mac=@MAC@"
+QB_CMDLINE_IP_SLIRP ?= "ip=dhcp"
+QB_CMDLINE_IP_TAP ?= "ip=192.168.7.@CLIENT@::192.168.7.@GATEWAY@:255.255.255.0"
+QB_ROOTFS_EXTRA_OPT ?= ""
# This should be kept align with ROOT_VM
QB_DRIVE_TYPE ?= "/dev/sd"
+inherit image-artifact-names
+
# Create qemuboot.conf
addtask do_write_qemuboot_conf after do_rootfs before do_image
-IMGDEPLOYDIR ?= "${WORKDIR}/deploy-${PN}-image-complete"
def qemuboot_vars(d):
build_vars = ['MACHINE', 'TUNE_ARCH', 'DEPLOY_DIR_IMAGE',
diff --git a/meta/classes/relocatable.bbclass b/meta/classes/relocatable.bbclass
index 582812c1cf..af04be5cca 100644
--- a/meta/classes/relocatable.bbclass
+++ b/meta/classes/relocatable.bbclass
@@ -6,13 +6,15 @@ python relocatable_binaries_preprocess() {
rpath_replace(d.expand('${SYSROOT_DESTDIR}'), d)
}
-relocatable_native_pcfiles () {
- if [ -d ${SYSROOT_DESTDIR}${libdir}/pkgconfig ]; then
- rel=${@os.path.relpath(d.getVar('base_prefix'), d.getVar('libdir') + "/pkgconfig")}
- sed -i -e "s:${base_prefix}:\${pcfiledir}/$rel:g" ${SYSROOT_DESTDIR}${libdir}/pkgconfig/*.pc
- fi
- if [ -d ${SYSROOT_DESTDIR}${datadir}/pkgconfig ]; then
- rel=${@os.path.relpath(d.getVar('base_prefix'), d.getVar('datadir') + "/pkgconfig")}
- sed -i -e "s:${base_prefix}:\${pcfiledir}/$rel:g" ${SYSROOT_DESTDIR}${datadir}/pkgconfig/*.pc
- fi
+relocatable_native_pcfiles() {
+ for dir in ${libdir}/pkgconfig ${datadir}/pkgconfig; do
+ files_template=${SYSROOT_DESTDIR}$dir/*.pc
+ # Expand to any files matching $files_template
+ files=$(echo $files_template)
+ # $files_template and $files will differ if any files were found
+ if [ "$files_template" != "$files" ]; then
+ rel=$(realpath -m --relative-to=$dir ${base_prefix})
+ sed -i -e "s:${base_prefix}:\${pcfiledir}/$rel:g" $files
+ fi
+ done
}
diff --git a/meta/classes/reproducible_build.bbclass b/meta/classes/reproducible_build.bbclass
index 750eb950f2..2f3bd90b07 100644
--- a/meta/classes/reproducible_build.bbclass
+++ b/meta/classes/reproducible_build.bbclass
@@ -70,99 +70,16 @@ do_deploy_source_date_epoch[sstate-plaindirs] = "${SDE_DEPLOYDIR}"
addtask do_deploy_source_date_epoch_setscene
addtask do_deploy_source_date_epoch before do_configure after do_patch
-def get_source_date_epoch_from_known_files(d, sourcedir):
- source_date_epoch = None
- newest_file = None
- known_files = set(["NEWS", "ChangeLog", "Changelog", "CHANGES"])
- for file in known_files:
- filepath = os.path.join(sourcedir, file)
- if os.path.isfile(filepath):
- mtime = int(os.lstat(filepath).st_mtime)
- # There may be more than one "known_file" present, if so, use the youngest one
- if not source_date_epoch or mtime > source_date_epoch:
- source_date_epoch = mtime
- newest_file = filepath
- if newest_file:
- bb.debug(1, "SOURCE_DATE_EPOCH taken from: %s" % newest_file)
- return source_date_epoch
+python create_source_date_epoch_stamp() {
+ import oe.reproducible
-def find_git_folder(d, sourcedir):
- # First guess: WORKDIR/git
- # This is the default git fetcher unpack path
- workdir = d.getVar('WORKDIR')
- gitpath = os.path.join(workdir, "git/.git")
- if os.path.isdir(gitpath):
- return gitpath
-
- # Second guess: ${S}
- gitpath = os.path.join(sourcedir, ".git")
- if os.path.isdir(gitpath):
- return gitpath
-
- # Perhaps there was a subpath or destsuffix specified.
- # Go looking in the WORKDIR
- exclude = set(["build", "image", "license-destdir", "patches", "pseudo",
- "recipe-sysroot", "recipe-sysroot-native", "sysroot-destdir", "temp"])
- for root, dirs, files in os.walk(workdir, topdown=True):
- dirs[:] = [d for d in dirs if d not in exclude]
- if '.git' in dirs:
- return root
-
- bb.warn("Failed to find a git repository in WORKDIR: %s" % workdir)
- return None
-
-def get_source_date_epoch_from_git(d, sourcedir):
- source_date_epoch = None
- if "git://" in d.getVar('SRC_URI'):
- gitpath = find_git_folder(d, sourcedir)
- if gitpath:
- import subprocess
- source_date_epoch = int(subprocess.check_output(['git','log','-1','--pretty=%ct'], cwd=gitpath))
- bb.debug(1, "git repository: %s" % gitpath)
- return source_date_epoch
-
-def get_source_date_epoch_from_youngest_file(d, sourcedir):
- if sourcedir == d.getVar('WORKDIR'):
- # These sources are almost certainly not from a tarball
- return None
-
- # Do it the hard way: check all files and find the youngest one...
- source_date_epoch = None
- newest_file = None
- for root, dirs, files in os.walk(sourcedir, topdown=True):
- files = [f for f in files if not f[0] == '.']
-
- for fname in files:
- filename = os.path.join(root, fname)
- try:
- mtime = int(os.lstat(filename).st_mtime)
- except ValueError:
- mtime = 0
- if not source_date_epoch or mtime > source_date_epoch:
- source_date_epoch = mtime
- newest_file = filename
-
- if newest_file:
- bb.debug(1, "Newest file found: %s" % newest_file)
- return source_date_epoch
-
-def fixed_source_date_epoch():
- bb.debug(1, "No tarball or git repo found to determine SOURCE_DATE_EPOCH")
- return 0
-
-python do_create_source_date_epoch_stamp() {
epochfile = d.getVar('SDE_FILE')
+ # If it exists we need to regenerate as the sources may have changed
if os.path.isfile(epochfile):
- bb.debug(1, "Reusing SOURCE_DATE_EPOCH from: %s" % epochfile)
- return
+ bb.debug(1, "Deleting existing SOURCE_DATE_EPOCH from: %s" % epochfile)
+ os.remove(epochfile)
- sourcedir = d.getVar('S')
- source_date_epoch = (
- get_source_date_epoch_from_git(d, sourcedir) or
- get_source_date_epoch_from_known_files(d, sourcedir) or
- get_source_date_epoch_from_youngest_file(d, sourcedir) or
- fixed_source_date_epoch() # Last resort
- )
+ source_date_epoch = oe.reproducible.get_source_date_epoch(d, d.getVar('S'))
bb.debug(1, "SOURCE_DATE_EPOCH: %d" % source_date_epoch)
bb.utils.mkdirhier(d.getVar('SDE_DIR'))
@@ -197,5 +114,5 @@ BB_HASHBASE_WHITELIST += "SOURCE_DATE_EPOCH"
python () {
if d.getVar('BUILD_REPRODUCIBLE_BINARIES') == '1':
- d.appendVarFlag("do_unpack", "postfuncs", " do_create_source_date_epoch_stamp")
+ d.appendVarFlag("do_unpack", "postfuncs", " create_source_date_epoch_stamp")
}
diff --git a/meta/classes/rootfs-postcommands.bbclass b/meta/classes/rootfs-postcommands.bbclass
index 2f171836fa..1f27a3d07a 100644
--- a/meta/classes/rootfs-postcommands.bbclass
+++ b/meta/classes/rootfs-postcommands.bbclass
@@ -1,6 +1,6 @@
# Zap the root password if debug-tweaks feature is not enabled
-ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains_any("IMAGE_FEATURES", [ 'debug-tweaks', 'empty-root-password' ], "", "zap_empty_root_password ; ",d)}'
+ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains_any("IMAGE_FEATURES", [ 'debug-tweaks', 'empty-root-password' ], "", "zap_empty_root_password; ",d)}'
# Allow dropbear/openssh to accept logins from accounts with an empty password string if debug-tweaks or allow-empty-password is enabled
ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains_any("IMAGE_FEATURES", [ 'debug-tweaks', 'allow-empty-password' ], "ssh_allow_empty_password; ", "",d)}'
@@ -12,7 +12,7 @@ ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains_any("IMAGE_FEATURES", [ 'deb
ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains_any("IMAGE_FEATURES", [ 'debug-tweaks', 'post-install-logging' ], "postinst_enable_logging; ", "",d)}'
# Create /etc/timestamp during image construction to give a reasonably sane default time setting
-ROOTFS_POSTPROCESS_COMMAND += "rootfs_update_timestamp ; "
+ROOTFS_POSTPROCESS_COMMAND += "rootfs_update_timestamp; "
# Tweak the mount options for rootfs in /etc/fstab if read-only-rootfs is enabled
ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("IMAGE_FEATURES", "read-only-rootfs", "read_only_rootfs_hook; ", "",d)}'
@@ -26,7 +26,7 @@ ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("IMAGE_FEATURES", "read-only
APPEND_append = '${@bb.utils.contains("IMAGE_FEATURES", "read-only-rootfs", " ro", "", d)}'
# Generates test data file with data store variables expanded in json format
-ROOTFS_POSTPROCESS_COMMAND += "write_image_test_data ; "
+ROOTFS_POSTPROCESS_COMMAND += "write_image_test_data; "
# Write manifest
IMAGE_MANIFEST = "${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.manifest"
@@ -39,6 +39,8 @@ ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("DISTRO_FEATURES", "systemd"
ROOTFS_POSTPROCESS_COMMAND += 'empty_var_volatile;'
+inherit image-artifact-names
+
# Sort the user and group entries in /etc by ID in order to make the content
# deterministic. Package installs are not deterministic, causing the ordering
# of entries to change between builds. In case that this isn't desired,
@@ -308,12 +310,16 @@ rootfs_check_host_user_contaminated () {
HOST_USER_UID="$(PSEUDO_UNLOAD=1 id -u)"
HOST_USER_GID="$(PSEUDO_UNLOAD=1 id -g)"
- find "${IMAGE_ROOTFS}" -wholename "${IMAGE_ROOTFS}/home" -prune \
- -user "$HOST_USER_UID" -o -group "$HOST_USER_GID" >"$contaminated"
+ find "${IMAGE_ROOTFS}" -path "${IMAGE_ROOTFS}/home" -prune -o \
+ -user "$HOST_USER_UID" -print -o -group "$HOST_USER_GID" -print >"$contaminated"
+
+ sed -e "s,${IMAGE_ROOTFS},," $contaminated | while read line; do
+ bbwarn "Path in the rootfs is owned by the same user or group as the user running bitbake:" $line `ls -lan ${IMAGE_ROOTFS}/$line`
+ done
if [ -s "$contaminated" ]; then
- echo "WARNING: Paths in the rootfs are owned by the same user or group as the user running bitbake. See the logfile for the specific paths."
- cat "$contaminated" | sed "s,^, ,"
+ bbwarn "/etc/passwd:" `cat ${IMAGE_ROOTFS}/etc/passwd`
+ bbwarn "/etc/group:" `cat ${IMAGE_ROOTFS}/etc/group`
fi
}
diff --git a/meta/classes/rootfs_rpm.bbclass b/meta/classes/rootfs_rpm.bbclass
index 51f89ea990..82584f386c 100644
--- a/meta/classes/rootfs_rpm.bbclass
+++ b/meta/classes/rootfs_rpm.bbclass
@@ -9,7 +9,7 @@ export STAGING_INCDIR
export STAGING_LIBDIR
# Add 100Meg of extra space for dnf
-IMAGE_ROOTFS_EXTRA_SPACE_append = "${@bb.utils.contains("PACKAGE_INSTALL", "dnf", " + 102400", "" ,d)}"
+IMAGE_ROOTFS_EXTRA_SPACE_append = "${@bb.utils.contains("PACKAGE_INSTALL", "dnf", " + 102400", "", d)}"
# Dnf is python based, so be sure python3-native is available to us.
EXTRANATIVEPATH += "python3-native"
diff --git a/meta/classes/rootfsdebugfiles.bbclass b/meta/classes/rootfsdebugfiles.bbclass
index e2ba4e3647..85c7ec7434 100644
--- a/meta/classes/rootfsdebugfiles.bbclass
+++ b/meta/classes/rootfsdebugfiles.bbclass
@@ -28,7 +28,7 @@
ROOTFS_DEBUG_FILES ?= ""
ROOTFS_DEBUG_FILES[doc] = "Lists additional files or directories to be installed with 'cp -a' in the format 'source1 target1;source2 target2;...'"
-ROOTFS_POSTPROCESS_COMMAND += "rootfs_debug_files ;"
+ROOTFS_POSTPROCESS_COMMAND += "rootfs_debug_files;"
rootfs_debug_files () {
#!/bin/sh -e
echo "${ROOTFS_DEBUG_FILES}" | sed -e 's/;/\n/g' | while read source target mode; do
diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass
index cca5cdad17..3262d08fbf 100644
--- a/meta/classes/sanity.bbclass
+++ b/meta/classes/sanity.bbclass
@@ -511,14 +511,38 @@ def check_make_version(sanity_data):
return None
-# Check if we're running on WSL (Windows Subsystem for Linux). Its known not to
-# work but we should tell the user that upfront.
+# Check if we're running on WSL (Windows Subsystem for Linux).
+# WSLv1 is known not to work but WSLv2 should work properly as
+# long as the VHDX file is optimized often, let the user know
+# upfront.
+# More information on installing WSLv2 at:
+# https://docs.microsoft.com/en-us/windows/wsl/wsl2-install
def check_wsl(d):
with open("/proc/version", "r") as f:
verdata = f.readlines()
for l in verdata:
if "Microsoft" in l:
- return "OpenEmbedded doesn't work under WSL at this time, sorry"
+ return "OpenEmbedded doesn't work under WSLv1, please upgrade to WSLv2 if you want to run builds on Windows"
+ elif "microsoft" in l:
+ bb.warn("You are running bitbake under WSLv2, this works properly but you should optimize your VHDX file eventually to avoid running out of storage space")
+ return None
+
+# Require at least gcc version 6.0.
+#
+# This can be fixed on CentOS-7 with devtoolset-6+
+# https://www.softwarecollections.org/en/scls/rhscl/devtoolset-6/
+#
+# A less invasive fix is with scripts/install-buildtools (or with user
+# built buildtools-extended-tarball)
+#
+def check_gcc_version(sanity_data):
+ from distutils.version import LooseVersion
+ import subprocess
+
+ build_cc, version = oe.utils.get_host_compiler_version(sanity_data)
+ if build_cc.strip() == "gcc":
+ if LooseVersion(version) < LooseVersion("6.0"):
+ return "Your version of gcc is older than 6.0 and will break builds. Please install a newer version of gcc (you could use the project's buildtools-extended-tarball or use scripts/install-buildtools).\n"
return None
# Tar version 1.24 and onwards handle overwriting symlinks correctly
@@ -532,10 +556,8 @@ def check_tar_version(sanity_data):
except subprocess.CalledProcessError as e:
return "Unable to execute tar --version, exit code %d\n%s\n" % (e.returncode, e.output)
version = result.split()[3]
- if LooseVersion(version) < LooseVersion("1.24"):
- return "Your version of tar is older than 1.24 and has bugs which will break builds. Please install a newer version of tar (1.28+).\n"
if LooseVersion(version) < LooseVersion("1.28"):
- return "Your version of tar is older than 1.28 and does not have the support needed to enable reproducible builds. Please install a newer version of tar (you could use the projects buildtools-tarball from our last release).\n"
+ return "Your version of tar is older than 1.28 and does not have the support needed to enable reproducible builds. Please install a newer version of tar (you could use the project's buildtools-tarball from our last release or use scripts/install-buildtools).\n"
return None
# We use git parameters and functionality only found in 1.7.8 or later
@@ -597,6 +619,9 @@ def sanity_handle_abichanges(status, d):
f.write(current_abi)
elif int(abi) <= 11 and current_abi == "12":
status.addresult("The layout of TMPDIR changed for Recipe Specific Sysroots.\nConversion doesn't make sense and this change will rebuild everything so please delete TMPDIR (%s).\n" % d.getVar("TMPDIR"))
+ elif int(abi) <= 13 and current_abi == "14":
+ status.addresult("TMPDIR changed to include path filtering from the pseudo database.\nIt is recommended to use a clean TMPDIR with the new pseudo path filtering so TMPDIR (%s) would need to be removed to continue.\n" % d.getVar("TMPDIR"))
+
elif (abi != current_abi):
# Code to convert from one ABI to another could go here if possible.
status.addresult("Error, TMPDIR has changed its layout version number (%s to %s) and you need to either rebuild, revert or adjust it at your own risk.\n" % (abi, current_abi))
@@ -634,6 +659,7 @@ def check_sanity_version_change(status, d):
except ImportError as e:
status.addresult('Your Python 3 is not a full install. Please install the module %s (see the Getting Started guide for further information).\n' % e.name)
+ status.addresult(check_gcc_version(d))
status.addresult(check_make_version(d))
status.addresult(check_patch_version(d))
status.addresult(check_tar_version(d))
@@ -746,8 +772,8 @@ def check_sanity_everybuild(status, d):
# Check the Python version, we now have a minimum of Python 3.4
import sys
- if sys.hexversion < 0x03040000:
- status.addresult('The system requires at least Python 3.4 to run. Please update your Python interpreter.\n')
+ if sys.hexversion < 0x030500F0:
+ status.addresult('The system requires at least Python 3.5 to run. Please update your Python interpreter.\n')
# Check the bitbake version meets minimum requirements
from distutils.version import LooseVersion
@@ -761,6 +787,12 @@ def check_sanity_everybuild(status, d):
if "." in paths or "./" in paths or "" in paths:
status.addresult("PATH contains '.', './' or '' (empty element), which will break the build, please remove this.\nParsed PATH is " + str(paths) + "\n")
+ # Check whether 'inherit' directive is found (used for a class to inherit)
+ # in conf file it's supposed to be uppercase INHERIT
+ inherit = d.getVar('inherit')
+ if inherit:
+ status.addresult("Please don't use inherit directive in your local.conf. The directive is supposed to be used in classes and recipes only to inherit of bbclasses. Here INHERIT should be used.\n")
+
# Check that the DISTRO is valid, if set
# need to take into account DISTRO renaming DISTRO
distro = d.getVar('DISTRO')
@@ -806,7 +838,7 @@ def check_sanity_everybuild(status, d):
# If SDK_VENDOR looks like "-my-sdk" then the triples are badly formed so fail early
sdkvendor = d.getVar("SDK_VENDOR")
if not (sdkvendor.startswith("-") and sdkvendor.count("-") == 1):
- status.addresult("SDK_VENDOR should be of the form '-foosdk' with a single dash\n")
+ status.addresult("SDK_VENDOR should be of the form '-foosdk' with a single dash; found '%s'\n" % sdkvendor)
check_supported_distro(d)
diff --git a/meta/classes/sign_rpm.bbclass b/meta/classes/sign_rpm.bbclass
index 64ae7ce30e..73a55a512d 100644
--- a/meta/classes/sign_rpm.bbclass
+++ b/meta/classes/sign_rpm.bbclass
@@ -64,6 +64,7 @@ python sign_rpm () {
d.getVar('RPM_FSK_PATH'),
d.getVar('RPM_FSK_PASSWORD'))
}
+sign_rpm[vardepsexclude] += "RPM_GPG_SIGN_CHUNK"
do_package_index[depends] += "signing-keys:do_deploy"
do_rootfs[depends] += "signing-keys:do_populate_sysroot"
diff --git a/meta/classes/siteinfo.bbclass b/meta/classes/siteinfo.bbclass
index 1a048c053f..0bd1f36805 100644
--- a/meta/classes/siteinfo.bbclass
+++ b/meta/classes/siteinfo.bbclass
@@ -45,6 +45,7 @@ def siteinfo_data_for_machine(arch, os, d):
"mipsisa32r6": "endian-big bit-32 mips-common",
"mipsisa32r6el": "endian-little bit-32 mips-common",
"powerpc": "endian-big bit-32 powerpc-common",
+ "powerpcle": "endian-little bit-32 powerpc-common",
"nios2": "endian-little bit-32 nios2-common",
"powerpc64": "endian-big bit-64 powerpc-common",
"powerpc64le": "endian-little bit-64 powerpc-common",
@@ -54,7 +55,9 @@ def siteinfo_data_for_machine(arch, os, d):
"riscv32": "endian-little bit-32 riscv-common",
"riscv64": "endian-little bit-64 riscv-common",
"sh3": "endian-little bit-32 sh-common",
+ "sh3eb": "endian-big bit-32 sh-common",
"sh4": "endian-little bit-32 sh-common",
+ "sh4eb": "endian-big bit-32 sh-common",
"sparc": "endian-big bit-32",
"viac3": "endian-little bit-32 ix86-common",
"x86_64": "endian-little", # bitinfo specified in targetinfo
@@ -100,6 +103,8 @@ def siteinfo_data_for_machine(arch, os, d):
"mipsisa64r6el-linux-gnun32": "mipsisa32r6el-linux bit-32",
"powerpc-linux": "powerpc32-linux",
"powerpc-linux-musl": "powerpc-linux powerpc32-linux",
+ "powerpcle-linux": "powerpc32-linux",
+ "powerpcle-linux-musl": "powerpc-linux powerpc32-linux",
"powerpc-linux-gnuspe": "powerpc-linux powerpc32-linux",
"powerpc-linux-muslspe": "powerpc-linux powerpc32-linux",
"powerpc64-linux-gnuspe": "powerpc-linux powerpc64-linux",
diff --git a/meta/classes/spdx.bbclass b/meta/classes/spdx.bbclass
deleted file mode 100644
index fb78e274a8..0000000000
--- a/meta/classes/spdx.bbclass
+++ /dev/null
@@ -1,360 +0,0 @@
-# This class integrates real-time license scanning, generation of SPDX standard
-# output and verifiying license info during the building process.
-# It is a combination of efforts from the OE-Core, SPDX and Fossology projects.
-#
-# For more information on FOSSology:
-# http://www.fossology.org
-#
-# For more information on FOSSologySPDX commandline:
-# https://github.com/spdx-tools/fossology-spdx/wiki/Fossology-SPDX-Web-API
-#
-# For more information on SPDX:
-# http://www.spdx.org
-#
-
-# SPDX file will be output to the path which is defined as[SPDX_MANIFEST_DIR]
-# in ./meta/conf/licenses.conf.
-
-SPDXSSTATEDIR = "${WORKDIR}/spdx_sstate_dir"
-
-# If ${S} isn't actually the top-level source directory, set SPDX_S to point at
-# the real top-level directory.
-SPDX_S ?= "${S}"
-
-python do_spdx () {
- import os, sys
- import json, shutil
-
- info = {}
- info['workdir'] = d.getVar('WORKDIR')
- info['sourcedir'] = d.getVar('SPDX_S')
- info['pn'] = d.getVar('PN')
- info['pv'] = d.getVar('PV')
- info['spdx_version'] = d.getVar('SPDX_VERSION')
- info['data_license'] = d.getVar('DATA_LICENSE')
-
- sstatedir = d.getVar('SPDXSSTATEDIR')
- sstatefile = os.path.join(sstatedir, info['pn'] + info['pv'] + ".spdx")
-
- manifest_dir = d.getVar('SPDX_MANIFEST_DIR')
- info['outfile'] = os.path.join(manifest_dir, info['pn'] + ".spdx" )
-
- info['spdx_temp_dir'] = d.getVar('SPDX_TEMP_DIR')
- info['tar_file'] = os.path.join(info['workdir'], info['pn'] + ".tar.gz" )
-
- # Make sure important dirs exist
- try:
- bb.utils.mkdirhier(manifest_dir)
- bb.utils.mkdirhier(sstatedir)
- bb.utils.mkdirhier(info['spdx_temp_dir'])
- except OSError as e:
- bb.error("SPDX: Could not set up required directories: " + str(e))
- return
-
- ## get everything from cache. use it to decide if
- ## something needs to be rerun
- cur_ver_code = get_ver_code(info['sourcedir'])
- cache_cur = False
- if os.path.exists(sstatefile):
- ## cache for this package exists. read it in
- cached_spdx = get_cached_spdx(sstatefile)
-
- if cached_spdx['PackageVerificationCode'] == cur_ver_code:
- bb.warn("SPDX: Verification code for " + info['pn']
- + "is same as cache's. do nothing")
- cache_cur = True
- else:
- local_file_info = setup_foss_scan(info, True, cached_spdx['Files'])
- else:
- local_file_info = setup_foss_scan(info, False, None)
-
- if cache_cur:
- spdx_file_info = cached_spdx['Files']
- foss_package_info = cached_spdx['Package']
- foss_license_info = cached_spdx['Licenses']
- else:
- ## setup fossology command
- foss_server = d.getVar('FOSS_SERVER')
- foss_flags = d.getVar('FOSS_WGET_FLAGS')
- foss_full_spdx = d.getVar('FOSS_FULL_SPDX') == "true" or False
- foss_command = "wget %s --post-file=%s %s"\
- % (foss_flags, info['tar_file'], foss_server)
-
- foss_result = run_fossology(foss_command, foss_full_spdx)
- if foss_result is not None:
- (foss_package_info, foss_file_info, foss_license_info) = foss_result
- spdx_file_info = create_spdx_doc(local_file_info, foss_file_info)
- ## write to cache
- write_cached_spdx(sstatefile, cur_ver_code, foss_package_info,
- spdx_file_info, foss_license_info)
- else:
- bb.error("SPDX: Could not communicate with FOSSology server. Command was: " + foss_command)
- return
-
- ## Get document and package level information
- spdx_header_info = get_header_info(info, cur_ver_code, foss_package_info)
-
- ## CREATE MANIFEST
- create_manifest(info, spdx_header_info, spdx_file_info, foss_license_info)
-
- ## clean up the temp stuff
- shutil.rmtree(info['spdx_temp_dir'], ignore_errors=True)
- if os.path.exists(info['tar_file']):
- remove_file(info['tar_file'])
-}
-addtask spdx after do_patch before do_configure
-
-def create_manifest(info, header, files, licenses):
- import codecs
- with codecs.open(info['outfile'], mode='w', encoding='utf-8') as f:
- # Write header
- f.write(header + '\n')
-
- # Write file data
- for chksum, block in files.iteritems():
- f.write("FileName: " + block['FileName'] + '\n')
- for key, value in block.iteritems():
- if not key == 'FileName':
- f.write(key + ": " + value + '\n')
- f.write('\n')
-
- # Write license data
- for id, block in licenses.iteritems():
- f.write("LicenseID: " + id + '\n')
- for key, value in block.iteritems():
- f.write(key + ": " + value + '\n')
- f.write('\n')
-
-def get_cached_spdx(sstatefile):
- import json
- import codecs
- cached_spdx_info = {}
- with codecs.open(sstatefile, mode='r', encoding='utf-8') as f:
- try:
- cached_spdx_info = json.load(f)
- except ValueError as e:
- cached_spdx_info = None
- return cached_spdx_info
-
-def write_cached_spdx(sstatefile, ver_code, package_info, files, license_info):
- import json
- import codecs
- spdx_doc = {}
- spdx_doc['PackageVerificationCode'] = ver_code
- spdx_doc['Files'] = {}
- spdx_doc['Files'] = files
- spdx_doc['Package'] = {}
- spdx_doc['Package'] = package_info
- spdx_doc['Licenses'] = {}
- spdx_doc['Licenses'] = license_info
- with codecs.open(sstatefile, mode='w', encoding='utf-8') as f:
- f.write(json.dumps(spdx_doc))
-
-def setup_foss_scan(info, cache, cached_files):
- import errno, shutil
- import tarfile
- file_info = {}
- cache_dict = {}
-
- for f_dir, f in list_files(info['sourcedir']):
- full_path = os.path.join(f_dir, f)
- abs_path = os.path.join(info['sourcedir'], full_path)
- dest_dir = os.path.join(info['spdx_temp_dir'], f_dir)
- dest_path = os.path.join(info['spdx_temp_dir'], full_path)
-
- checksum = hash_file(abs_path)
- if not checksum is None:
- file_info[checksum] = {}
- ## retain cache information if it exists
- if cache and checksum in cached_files:
- file_info[checksum] = cached_files[checksum]
- ## have the file included in what's sent to the FOSSology server
- else:
- file_info[checksum]['FileName'] = full_path
- try:
- bb.utils.mkdirhier(dest_dir)
- shutil.copyfile(abs_path, dest_path)
- except OSError as e:
- bb.warn("SPDX: mkdirhier failed: " + str(e))
- except shutil.Error as e:
- bb.warn("SPDX: copyfile failed: " + str(e))
- except IOError as e:
- bb.warn("SPDX: copyfile failed: " + str(e))
- else:
- bb.warn("SPDX: Could not get checksum for file: " + f)
-
- with tarfile.open(info['tar_file'], "w:gz") as tar:
- tar.add(info['spdx_temp_dir'], arcname=os.path.basename(info['spdx_temp_dir']))
-
- return file_info
-
-def remove_file(file_name):
- try:
- os.remove(file_name)
- except OSError as e:
- pass
-
-def list_files(dir):
- for root, subFolders, files in os.walk(dir):
- for f in files:
- rel_root = os.path.relpath(root, dir)
- yield rel_root, f
- return
-
-def hash_file(file_name):
- from bb.utils import sha1_file
- return sha1_file(file_name)
-
-def hash_string(data):
- import hashlib
- sha1 = hashlib.sha1()
- sha1.update(data.encode('utf-8'))
- return sha1.hexdigest()
-
-def run_fossology(foss_command, full_spdx):
- import string, re
- import subprocess
-
- try:
- foss_output = subprocess.check_output(foss_command.split(),
- stderr=subprocess.STDOUT).decode('utf-8')
- except subprocess.CalledProcessError as e:
- return None
-
- foss_output = foss_output.replace('\r', '')
-
- # Package info
- package_info = {}
- if full_spdx:
- # All mandatory, only one occurrence
- package_info['PackageCopyrightText'] = re.findall('PackageCopyrightText: (.*?</text>)', foss_output, re.S)[0]
- package_info['PackageLicenseDeclared'] = re.findall('PackageLicenseDeclared: (.*)', foss_output)[0]
- package_info['PackageLicenseConcluded'] = re.findall('PackageLicenseConcluded: (.*)', foss_output)[0]
- # These may be more than one
- package_info['PackageLicenseInfoFromFiles'] = re.findall('PackageLicenseInfoFromFiles: (.*)', foss_output)
- else:
- DEFAULT = "NOASSERTION"
- package_info['PackageCopyrightText'] = "<text>" + DEFAULT + "</text>"
- package_info['PackageLicenseDeclared'] = DEFAULT
- package_info['PackageLicenseConcluded'] = DEFAULT
- package_info['PackageLicenseInfoFromFiles'] = []
-
- # File info
- file_info = {}
- records = []
- # FileName is also in PackageFileName, so we match on FileType as well.
- records = re.findall('FileName:.*?FileType:.*?</text>', foss_output, re.S)
- for rec in records:
- chksum = re.findall('FileChecksum: SHA1: (.*)\n', rec)[0]
- file_info[chksum] = {}
- file_info[chksum]['FileCopyrightText'] = re.findall('FileCopyrightText: '
- + '(.*?</text>)', rec, re.S )[0]
- fields = ['FileName', 'FileType', 'LicenseConcluded', 'LicenseInfoInFile']
- for field in fields:
- file_info[chksum][field] = re.findall(field + ': (.*)', rec)[0]
-
- # Licenses
- license_info = {}
- licenses = []
- licenses = re.findall('LicenseID:.*?LicenseName:.*?\n', foss_output, re.S)
- for lic in licenses:
- license_id = re.findall('LicenseID: (.*)\n', lic)[0]
- license_info[license_id] = {}
- license_info[license_id]['ExtractedText'] = re.findall('ExtractedText: (.*?</text>)', lic, re.S)[0]
- license_info[license_id]['LicenseName'] = re.findall('LicenseName: (.*)', lic)[0]
-
- return (package_info, file_info, license_info)
-
-def create_spdx_doc(file_info, scanned_files):
- import json
- ## push foss changes back into cache
- for chksum, lic_info in scanned_files.iteritems():
- if chksum in file_info:
- file_info[chksum]['FileType'] = lic_info['FileType']
- file_info[chksum]['FileChecksum: SHA1'] = chksum
- file_info[chksum]['LicenseInfoInFile'] = lic_info['LicenseInfoInFile']
- file_info[chksum]['LicenseConcluded'] = lic_info['LicenseConcluded']
- file_info[chksum]['FileCopyrightText'] = lic_info['FileCopyrightText']
- else:
- bb.warn("SPDX: " + lic_info['FileName'] + " : " + chksum
- + " : is not in the local file info: "
- + json.dumps(lic_info, indent=1))
- return file_info
-
-def get_ver_code(dirname):
- chksums = []
- for f_dir, f in list_files(dirname):
- path = os.path.join(dirname, f_dir, f)
- hash = hash_file(path)
- if not hash is None:
- chksums.append(hash)
- else:
- bb.warn("SPDX: Could not hash file: " + path)
- ver_code_string = ''.join(chksums).lower()
- ver_code = hash_string(ver_code_string)
- return ver_code
-
-def get_header_info(info, spdx_verification_code, package_info):
- """
- Put together the header SPDX information.
- Eventually this needs to become a lot less
- of a hardcoded thing.
- """
- from datetime import datetime
- import os
- head = []
- DEFAULT = "NOASSERTION"
-
- package_checksum = hash_file(info['tar_file'])
- if package_checksum is None:
- package_checksum = DEFAULT
-
- ## document level information
- head.append("## SPDX Document Information")
- head.append("SPDXVersion: " + info['spdx_version'])
- head.append("DataLicense: " + info['data_license'])
- head.append("DocumentComment: <text>SPDX for "
- + info['pn'] + " version " + info['pv'] + "</text>")
- head.append("")
-
- ## Creator information
- ## Note that this does not give time in UTC.
- now = datetime.now().strftime('%Y-%m-%dT%H:%M:%SZ')
- head.append("## Creation Information")
- ## Tools are supposed to have a version, but FOSSology+SPDX provides none.
- head.append("Creator: Tool: FOSSology+SPDX")
- head.append("Created: " + now)
- head.append("CreatorComment: <text>UNO</text>")
- head.append("")
-
- ## package level information
- head.append("## Package Information")
- head.append("PackageName: " + info['pn'])
- head.append("PackageVersion: " + info['pv'])
- head.append("PackageFileName: " + os.path.basename(info['tar_file']))
- head.append("PackageSupplier: Person:" + DEFAULT)
- head.append("PackageDownloadLocation: " + DEFAULT)
- head.append("PackageSummary: <text></text>")
- head.append("PackageOriginator: Person:" + DEFAULT)
- head.append("PackageChecksum: SHA1: " + package_checksum)
- head.append("PackageVerificationCode: " + spdx_verification_code)
- head.append("PackageDescription: <text>" + info['pn']
- + " version " + info['pv'] + "</text>")
- head.append("")
- head.append("PackageCopyrightText: "
- + package_info['PackageCopyrightText'])
- head.append("")
- head.append("PackageLicenseDeclared: "
- + package_info['PackageLicenseDeclared'])
- head.append("PackageLicenseConcluded: "
- + package_info['PackageLicenseConcluded'])
-
- for licref in package_info['PackageLicenseInfoFromFiles']:
- head.append("PackageLicenseInfoFromFiles: " + licref)
- head.append("")
-
- ## header for file level
- head.append("## File Information")
- head.append("")
-
- return '\n'.join(head)
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index 0beeb33707..a8ae75101d 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -355,6 +355,9 @@ def sstate_installpkg(ss, d):
d.setVar('SSTATE_INSTDIR', sstateinst)
if bb.utils.to_boolean(d.getVar("SSTATE_VERIFY_SIG"), False):
+ if not os.path.isfile(sstatepkg + '.sig'):
+ bb.warn("No signature file for sstate package %s, skipping acceleration..." % sstatepkg)
+ return False
signer = get_signer(d, 'local')
if not signer.verify(sstatepkg + '.sig'):
bb.warn("Cannot verify signature on sstate package %s, skipping acceleration..." % sstatepkg)
@@ -690,7 +693,10 @@ def sstate_package(ss, d):
if not os.path.exists(siginfo):
bb.siggen.dump_this_task(siginfo, d)
else:
- os.utime(siginfo, None)
+ try:
+ os.utime(siginfo, None)
+ except PermissionError:
+ pass
return
@@ -730,10 +736,11 @@ def pstaging_fetch(sstatefetch, d):
localdata.setVar('SRC_URI', srcuri)
try:
fetcher = bb.fetch2.Fetch([srcuri], localdata, cache=False)
+ fetcher.checkstatus()
fetcher.download()
except bb.fetch2.BBFetchException:
- break
+ pass
def sstate_setscene(d):
shared_state = sstate_state_fromvars(d)
@@ -776,11 +783,11 @@ sstate_task_postfunc[dirs] = "${WORKDIR}"
sstate_create_package () {
# Exit early if it already exists
if [ -e ${SSTATE_PKG} ]; then
- touch ${SSTATE_PKG}
+ [ ! -w ${SSTATE_PKG} ] || touch ${SSTATE_PKG}
return
fi
- mkdir -p `dirname ${SSTATE_PKG}`
+ mkdir --mode=0775 -p `dirname ${SSTATE_PKG}`
TFILE=`mktemp ${SSTATE_PKG}.XXXXXXXX`
# Use pigz if available
@@ -810,7 +817,7 @@ sstate_create_package () {
else
rm $TFILE
fi
- touch ${SSTATE_PKG}
+ [ ! -w ${SSTATE_PKG} ] || touch ${SSTATE_PKG}
}
python sstate_sign_package () {
@@ -840,7 +847,7 @@ python sstate_report_unihash() {
sstate_unpack_package () {
tar -xvzf ${SSTATE_PKG}
# update .siginfo atime on local/NFS mirror
- [ -w ${SSTATE_PKG}.siginfo ] && [ -h ${SSTATE_PKG}.siginfo ] && touch -a ${SSTATE_PKG}.siginfo
+ [ -O ${SSTATE_PKG}.siginfo ] && [ -w ${SSTATE_PKG}.siginfo ] && [ -h ${SSTATE_PKG}.siginfo ] && touch -a ${SSTATE_PKG}.siginfo
# Use "! -w ||" to return true for read only files
[ ! -w ${SSTATE_PKG} ] || touch --no-dereference ${SSTATE_PKG}
[ ! -w ${SSTATE_PKG}.sig ] || [ ! -e ${SSTATE_PKG}.sig ] || touch --no-dereference ${SSTATE_PKG}.sig
@@ -966,10 +973,6 @@ def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, summary=True,
if len(tasklist) >= min_tasks:
bb.event.fire(bb.event.ProcessFinished(msg), d)
- # Likely checking an individual task hash again for multiconfig sharing of sstate tasks so skip reporting
- if len(sq_data['hash']) == 1:
- return found
-
inheritlist = d.getVar("INHERIT")
if "toaster" in inheritlist:
evdata = {'missed': [], 'found': []};
@@ -1126,7 +1129,11 @@ python sstate_eventhandler() {
if not os.path.exists(siginfo):
bb.siggen.dump_this_task(siginfo, d)
else:
- os.utime(siginfo, None)
+ try:
+ os.utime(siginfo, None)
+ except PermissionError:
+ pass
+
}
SSTATE_PRUNE_OBSOLETEWORKDIR ?= "1"
diff --git a/meta/classes/staging.bbclass b/meta/classes/staging.bbclass
index 5dab42745f..f0a619b35b 100644
--- a/meta/classes/staging.bbclass
+++ b/meta/classes/staging.bbclass
@@ -93,6 +93,7 @@ SYSROOT_PREPROCESS_FUNCS ?= ""
SYSROOT_DESTDIR = "${WORKDIR}/sysroot-destdir"
python do_populate_sysroot () {
+ # SYSROOT 'version' 2
bb.build.exec_func("sysroot_stage_all", d)
bb.build.exec_func("sysroot_strip", d)
for f in (d.getVar('SYSROOT_PREPROCESS_FUNCS') or '').split():
@@ -277,11 +278,13 @@ python extend_recipe_sysroot() {
start = None
configuredeps = []
+ owntaskdeps = []
for dep in taskdepdata:
data = taskdepdata[dep]
if data[1] == mytaskname and data[0] == pn:
start = dep
- break
+ elif data[0] == pn:
+ owntaskdeps.append(data[1])
if start is None:
bb.fatal("Couldn't find ourself in BB_TASKDEPDATA?")
@@ -427,7 +430,7 @@ python extend_recipe_sysroot() {
# Was likely already uninstalled
continue
potential.append(l)
- # We need to ensure not other task needs this dependency. We hold the sysroot
+ # We need to ensure no other task needs this dependency. We hold the sysroot
# lock so we ca search the indexes to check
if potential:
for i in glob.glob(depdir + "/index.*"):
@@ -435,6 +438,11 @@ python extend_recipe_sysroot() {
continue
with open(i, "r") as f:
for l in f:
+ if l.startswith("TaskDeps:"):
+ prevtasks = l.split()[1:]
+ if mytaskname in prevtasks:
+ # We're a dependency of this task so we can clear items out the sysroot
+ break
l = l.strip()
if l in potential:
potential.remove(l)
@@ -588,6 +596,7 @@ python extend_recipe_sysroot() {
os.symlink(manifests[dep], depdir + "/" + c + ".complete")
with open(taskindex, "w") as f:
+ f.write("TaskDeps: " + " ".join(owntaskdeps) + "\n")
for l in sorted(installed):
f.write(l + "\n")
@@ -605,7 +614,7 @@ python staging_taskhandler() {
bbtasks = e.tasklist
for task in bbtasks:
deps = d.getVarFlag(task, "depends")
- if deps and "populate_sysroot" in deps:
+ if task == "do_configure" or (deps and "populate_sysroot" in deps):
d.appendVarFlag(task, "prefuncs", " extend_recipe_sysroot")
}
staging_taskhandler[eventmask] = "bb.event.RecipeTaskPreProcess"
diff --git a/meta/classes/testexport.bbclass b/meta/classes/testexport.bbclass
index 59cbaefbf9..1b0fb44a4a 100644
--- a/meta/classes/testexport.bbclass
+++ b/meta/classes/testexport.bbclass
@@ -137,7 +137,7 @@ def copy_needed_files(d, tc):
shutil.rmtree(os.path.join(subdir, dir))
# Create tar file for common parts of testexport
- create_tarball(d, "testexport.tar.gz", d.getVar("TEST_EXPORT_DIR"))
+ testexport_create_tarball(d, "testexport.tar.gz", d.getVar("TEST_EXPORT_DIR"))
# Copy packages needed for runtime testing
package_extraction(d, tc.suites)
@@ -146,7 +146,7 @@ def copy_needed_files(d, tc):
export_pkg_dir = os.path.join(d.getVar("TEST_EXPORT_DIR"), "packages")
oe.path.copytree(test_pkg_dir, export_pkg_dir)
# Create tar file for packages needed by the DUT
- create_tarball(d, "testexport_packages_%s.tar.gz" % d.getVar("MACHINE"), export_pkg_dir)
+ testexport_create_tarball(d, "testexport_packages_%s.tar.gz" % d.getVar("MACHINE"), export_pkg_dir)
# Copy SDK
if d.getVar("TEST_EXPORT_SDK_ENABLED") == "1":
@@ -159,11 +159,11 @@ def copy_needed_files(d, tc):
shutil.copy2(tarball_path, export_sdk_dir)
# Create tar file for the sdk
- create_tarball(d, "testexport_sdk_%s.tar.gz" % d.getVar("SDK_ARCH"), export_sdk_dir)
+ testexport_create_tarball(d, "testexport_sdk_%s.tar.gz" % d.getVar("SDK_ARCH"), export_sdk_dir)
bb.plain("Exported tests to: %s" % export_path)
-def create_tarball(d, tar_name, src_dir):
+def testexport_create_tarball(d, tar_name, src_dir):
import tarfile
diff --git a/meta/classes/testimage.bbclass b/meta/classes/testimage.bbclass
index 01d8598604..e3feef02f8 100644
--- a/meta/classes/testimage.bbclass
+++ b/meta/classes/testimage.bbclass
@@ -3,6 +3,8 @@
# Released under the MIT license (see COPYING.MIT)
inherit metadata_scm
+inherit image-artifact-names
+
# testimage.bbclass enables testing of qemu images using python unittests.
# Most of the tests are commands run on target image over ssh.
# To use it add testimage to global inherit and call your target image with -c testimage
@@ -31,6 +33,7 @@ TESTIMAGE_AUTO ??= "0"
# TEST_LOG_DIR contains a command ssh log and may contain infromation about what command is running, output and return codes and for qemu a boot log till login.
# Booting is handled by this class, and it's not a test in itself.
# TEST_QEMUBOOT_TIMEOUT can be used to set the maximum time in seconds the launch code will wait for the login prompt.
+# TEST_OVERALL_TIMEOUT can be used to set the maximum time in seconds the tests will be allowed to run (defaults to no limit).
# TEST_QEMUPARAMS can be used to pass extra parameters to qemu, e.g. "-m 1024" for setting the amount of ram to 1 GB.
# TEST_RUNQEMUPARAMS can be used to pass extra parameters to runqemu, e.g. "gl" to enable OpenGL acceleration.
@@ -75,6 +78,7 @@ DEFAULT_TEST_SUITES_remove_qemumips64 = "${MIPSREMOVE}"
TEST_SUITES ?= "${DEFAULT_TEST_SUITES}"
TEST_QEMUBOOT_TIMEOUT ?= "1000"
+TEST_OVERALL_TIMEOUT ?= ""
TEST_TARGET ?= "qemu"
TEST_QEMUPARAMS ?= ""
TEST_RUNQEMUPARAMS ?= ""
@@ -204,7 +208,11 @@ def testimage_main(d):
"""
Catch SIGTERM from worker in order to stop qemu.
"""
- raise RuntimeError
+ os.kill(os.getpid(), signal.SIGINT)
+
+ def handle_test_timeout(timeout):
+ bb.warn("Global test timeout reached (%s seconds), stopping the tests." %(timeout))
+ os.kill(os.getpid(), signal.SIGINT)
testimage_sanity(d)
@@ -275,11 +283,14 @@ def testimage_main(d):
# Get use_kvm
kvm = oe.types.qemu_use_kvm(d.getVar('QEMU_USE_KVM'), d.getVar('TARGET_ARCH'))
+ # Get OVMF
+ ovmf = d.getVar("QEMU_USE_OVMF")
+
slirp = False
if d.getVar("QEMU_USE_SLIRP"):
slirp = True
- # TODO: We use the current implementatin of qemu runner because of
+ # TODO: We use the current implementation of qemu runner because of
# time constrains, qemu runner really needs a refactor too.
target_kwargs = { 'machine' : machine,
'rootfs' : rootfs,
@@ -293,6 +304,7 @@ def testimage_main(d):
'slirp' : slirp,
'dump_dir' : d.getVar("TESTIMAGE_DUMP_DIR"),
'serial_ports': len(d.getVar("SERIAL_CONSOLES").split()),
+ 'ovmf' : ovmf,
}
if d.getVar("TESTIMAGE_BOOT_PATTERNS"):
@@ -307,6 +319,7 @@ def testimage_main(d):
target_kwargs['powercontrol_extra_args'] = d.getVar("TEST_POWERCONTROL_EXTRA_ARGS") or ""
target_kwargs['serialcontrol_cmd'] = d.getVar("TEST_SERIALCONTROL_CMD") or None
target_kwargs['serialcontrol_extra_args'] = d.getVar("TEST_SERIALCONTROL_EXTRA_ARGS") or ""
+ target_kwargs['testimage_dump_target'] = d.getVar("testimage_dump_target") or ""
def export_ssh_agent(d):
import os
@@ -359,10 +372,15 @@ def testimage_main(d):
# We need to check if runqemu ends unexpectedly
# or if the worker send us a SIGTERM
tc.target.start(params=d.getVar("TEST_QEMUPARAMS"), runqemuparams=d.getVar("TEST_RUNQEMUPARAMS"))
+ import threading
+ try:
+ threading.Timer(int(d.getVar("TEST_OVERALL_TIMEOUT")), handle_test_timeout, (int(d.getVar("TEST_OVERALL_TIMEOUT")),)).start()
+ except ValueError:
+ pass
results = tc.runTests()
- except (RuntimeError, BlockingIOError) as err:
- if isinstance(err, RuntimeError):
- bb.error('testimage received SIGTERM, shutting down...')
+ except (KeyboardInterrupt, BlockingIOError) as err:
+ if isinstance(err, KeyboardInterrupt):
+ bb.error('testimage interrupted, shutting down...')
else:
bb.error('runqemu failed, shutting down...')
if results:
diff --git a/meta/classes/uboot-sign.bbclass b/meta/classes/uboot-sign.bbclass
index 982ed46d01..713196df41 100644
--- a/meta/classes/uboot-sign.bbclass
+++ b/meta/classes/uboot-sign.bbclass
@@ -117,15 +117,16 @@ do_install_append() {
fi
}
+do_deploy_prepend_pn-${UBOOT_PN}() {
+ if [ "${UBOOT_SIGN_ENABLE}" = "1" -a -n "${UBOOT_DTB_BINARY}" ]; then
+ concat_dtb
+ fi
+}
+
python () {
if d.getVar('UBOOT_SIGN_ENABLE') == '1' and d.getVar('PN') == d.getVar('UBOOT_PN') and d.getVar('UBOOT_DTB_BINARY'):
kernel_pn = d.getVar('PREFERRED_PROVIDER_virtual/kernel')
# Make "bitbake u-boot -cdeploy" deploys the signed u-boot.dtb
d.appendVarFlag('do_deploy', 'depends', ' %s:do_deploy' % kernel_pn)
-
- # kernerl's do_deploy is a litle special, so we can't use
- # do_deploy_append, otherwise it would override
- # kernel_do_deploy.
- d.appendVarFlag('do_deploy', 'prefuncs', ' concat_dtb')
}
diff --git a/meta/classes/uninative.bbclass b/meta/classes/uninative.bbclass
index 70799bbf6d..1e19917a97 100644
--- a/meta/classes/uninative.bbclass
+++ b/meta/classes/uninative.bbclass
@@ -56,12 +56,17 @@ python uninative_event_fetchloader() {
# Our games with path manipulation of DL_DIR mean standard PREMIRRORS don't work
# and we can't easily put 'chksum' into the url path from a url parameter with
# the current fetcher url handling
- ownmirror = d.getVar('SOURCE_MIRROR_URL')
- if ownmirror:
- localdata.appendVar("PREMIRRORS", " ${UNINATIVE_URL}${UNINATIVE_TARBALL} ${SOURCE_MIRROR_URL}/uninative/%s/${UNINATIVE_TARBALL}" % chksum)
+ premirrors = bb.fetch2.mirror_from_string(localdata.getVar("PREMIRRORS"))
+ for line in premirrors:
+ try:
+ (find, replace) = line
+ except ValueError:
+ continue
+ if find.startswith("http"):
+ localdata.appendVar("PREMIRRORS", " ${UNINATIVE_URL}${UNINATIVE_TARBALL} %s/uninative/%s/${UNINATIVE_TARBALL}" % (replace, chksum))
srcuri = d.expand("${UNINATIVE_URL}${UNINATIVE_TARBALL};sha256sum=%s" % chksum)
- bb.note("Fetching uninative binary shim from %s" % srcuri)
+ bb.note("Fetching uninative binary shim %s (will check PREMIRRORS first)" % srcuri)
fetcher = bb.fetch2.Fetch([srcuri], localdata, cache=False)
fetcher.download()
@@ -84,7 +89,7 @@ python uninative_event_fetchloader() {
# ldd output is "ldd (Ubuntu GLIBC 2.23-0ubuntu10) 2.23", extract last option from first line
glibcver = subprocess.check_output(["ldd", "--version"]).decode('utf-8').split('\n')[0].split()[-1]
if bb.utils.vercmp_string(d.getVar("UNINATIVE_MAXGLIBCVERSION"), glibcver) < 0:
- raise RuntimeError("Your host glibc verson (%s) is newer than that in uninative (%s). Disabling uninative so that sstate is not corrupted." % (glibcver, d.getVar("UNINATIVE_MAXGLIBCVERSION")))
+ raise RuntimeError("Your host glibc version (%s) is newer than that in uninative (%s). Disabling uninative so that sstate is not corrupted." % (glibcver, d.getVar("UNINATIVE_MAXGLIBCVERSION")))
cmd = d.expand("\
mkdir -p ${UNINATIVE_STAGING_DIR}-uninative; \
diff --git a/meta/classes/utils.bbclass b/meta/classes/utils.bbclass
index cd3d05709e..120bcc64a6 100644
--- a/meta/classes/utils.bbclass
+++ b/meta/classes/utils.bbclass
@@ -1,22 +1,3 @@
-def machine_paths(d):
- """List any existing machine specific filespath directories"""
- machine = d.getVar("MACHINE")
- filespathpkg = d.getVar("FILESPATHPKG").split(":")
- for basepath in d.getVar("FILESPATHBASE").split(":"):
- for pkgpath in filespathpkg:
- machinepath = os.path.join(basepath, pkgpath, machine)
- if os.path.isdir(machinepath):
- yield machinepath
-
-def is_machine_specific(d):
- """Determine whether the current recipe is machine specific"""
- machinepaths = set(machine_paths(d))
- srcuri = d.getVar("SRC_URI").split()
- for url in srcuri:
- fetcher = bb.fetch2.Fetch([srcuri], d)
- if url.startswith("file://"):
- if any(fetcher.localpath(url).startswith(mp + "/") for mp in machinepaths):
- return True
oe_soinstall() {
# Purpose: Install shared library file and
diff --git a/meta/classes/vala.bbclass b/meta/classes/vala.bbclass
index 615eb379ad..bcaf68c5a7 100644
--- a/meta/classes/vala.bbclass
+++ b/meta/classes/vala.bbclass
@@ -8,7 +8,7 @@ DEPENDS_append = " vala-native ${VALADEPENDS}"
# Our patched version of Vala looks in STAGING_DATADIR for .vapi files
export STAGING_DATADIR
# Upstream Vala >= 0.11 looks in XDG_DATA_DIRS for .vapi files
-export XDG_DATA_DIRS = "${STAGING_DATADIR}"
+export XDG_DATA_DIRS = "${STAGING_DATADIR}:${STAGING_LIBDIR}"
# Package additional files
FILES_${PN}-dev += "\
diff --git a/meta/classes/waf.bbclass b/meta/classes/waf.bbclass
index 900244004e..188119f356 100644
--- a/meta/classes/waf.bbclass
+++ b/meta/classes/waf.bbclass
@@ -1,10 +1,20 @@
# avoids build breaks when using no-static-libs.inc
DISABLE_STATIC = ""
+# What Python interpretter to use. Defaults to Python 3 but can be
+# overridden if required.
+WAF_PYTHON ?= "python3"
+
B = "${WORKDIR}/build"
+do_configure[cleandirs] += "${B}"
EXTRA_OECONF_append = " ${PACKAGECONFIG_CONFARGS}"
+EXTRA_OEWAF_BUILD ??= ""
+# In most cases, you want to pass the same arguments to `waf build` and `waf
+# install`, but you can override it if necessary
+EXTRA_OEWAF_INSTALL ??= "${EXTRA_OEWAF_BUILD}"
+
def waflock_hash(d):
# Calculates the hash used for the waf lock file. This should include
# all of the user controllable inputs passed to waf configure. Note
@@ -35,9 +45,10 @@ python waf_preconfigure() {
import subprocess
from distutils.version import StrictVersion
subsrcdir = d.getVar('S')
+ python = d.getVar('WAF_PYTHON')
wafbin = os.path.join(subsrcdir, 'waf')
try:
- result = subprocess.check_output([wafbin, '--version'], cwd=subsrcdir, stderr=subprocess.STDOUT)
+ result = subprocess.check_output([python, wafbin, '--version'], cwd=subsrcdir, stderr=subprocess.STDOUT)
version = result.decode('utf-8').split()[1]
if StrictVersion(version) >= StrictVersion("1.8.7"):
d.setVar("WAF_EXTRA_CONF", "--bindir=${bindir} --libdir=${libdir}")
@@ -50,16 +61,16 @@ python waf_preconfigure() {
do_configure[prefuncs] += "waf_preconfigure"
waf_do_configure() {
- (cd ${S} && ./waf configure -o ${B} --prefix=${prefix} ${WAF_EXTRA_CONF} ${EXTRA_OECONF})
+ (cd ${S} && ${WAF_PYTHON} ./waf configure -o ${B} --prefix=${prefix} ${WAF_EXTRA_CONF} ${EXTRA_OECONF})
}
do_compile[progress] = "outof:^\[\s*(\d+)/\s*(\d+)\]\s+"
waf_do_compile() {
- (cd ${S} && ./waf build ${@oe.utils.parallel_make_argument(d, '-j%d', limit=64)})
+ (cd ${S} && ${WAF_PYTHON} ./waf build ${@oe.utils.parallel_make_argument(d, '-j%d', limit=64)} ${EXTRA_OEWAF_BUILD})
}
waf_do_install() {
- (cd ${S} && ./waf install --destdir=${D})
+ (cd ${S} && ${WAF_PYTHON} ./waf install --destdir=${D} ${EXTRA_OEWAF_INSTALL})
}
EXPORT_FUNCTIONS do_configure do_compile do_install
diff --git a/meta/conf/abi_version.conf b/meta/conf/abi_version.conf
index 4964880108..5318a10190 100644
--- a/meta/conf/abi_version.conf
+++ b/meta/conf/abi_version.conf
@@ -4,4 +4,12 @@
# that breaks the format and have been previously discussed on the mailing list
# with general agreement from the core team.
#
-OELAYOUT_ABI = "12"
+OELAYOUT_ABI = "14"
+
+#
+# HASHEQUIV_HASH_VERSION is injected into the output hash calculation used by
+# hashequiv. Changing this means previous hashes will no longer match, allowing
+# a reset of the equivalence, for example when reproducibility issues break the
+# existing match data. Distros can also append to this value for the same effect.
+#
+HASHEQUIV_HASH_VERSION = "3"
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 954c06b313..1b5cde2cbb 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -208,6 +208,7 @@ PF = "${PN}-${EXTENDPE}${PV}-${PR}"
EXTENDPE = "${@['','${PE}_'][int(d.getVar('PE') or 0) > 0]}"
P = "${PN}-${PV}"
+PRSERV_PV_AUTOINC = "AUTOINC"
PRAUTO = ""
EXTENDPRAUTO = "${@['.${PRAUTO}', ''][not d.getVar('PRAUTO')]}"
PRAUTOINX = "${PF}"
@@ -252,7 +253,7 @@ This package contains symbolic links, header files, and \
related items necessary for software development."
SUMMARY_${PN}-staticdev ?= "${SUMMARY} - Development files (Static Libraries)"
-DESCRIPTION_${PN}-staticdev?= "${DESCRIPTION} \
+DESCRIPTION_${PN}-staticdev ?= "${DESCRIPTION} \
This package contains static libraries for software development."
SUMMARY_${PN}-doc ?= "${SUMMARY} - Documentation files"
@@ -267,7 +268,7 @@ HOMEPAGE = ""
# Ensure that -dev packages recommend the corresponding -dev packages of their
# deps, and the same for -dbg.
-DEPCHAIN_PRE = ""
+DEPCHAIN_PRE = ""
DEPCHAIN_POST = "-dev -dbg"
DEPENDS = ""
@@ -356,8 +357,11 @@ FILESYSTEM_PERMS_TABLES ?= "${@'files/fs-perms.txt' if oe.types.boolean(d.getVar
# General work and output directories for the build system.
##################################################################
+TCMODE ?= "default"
+TCLIBC ?= "glibc"
TMPDIR ?= "${TOPDIR}/tmp"
-CACHE = "${TMPDIR}/cache${@['', '/' + str(d.getVar('MACHINE'))][bool(d.getVar('MACHINE'))]}${@['', '/' + str(d.getVar('SDKMACHINE'))][bool(d.getVar('SDKMACHINE'))]}"
+
+CACHE = "${TMPDIR}/cache/${TCMODE}-${TCLIBC}${@['', '/' + str(d.getVar('MACHINE'))][bool(d.getVar('MACHINE'))]}${@['', '/' + str(d.getVar('SDKMACHINE'))][bool(d.getVar('SDKMACHINE'))]}"
# The persistent cache should be shared by all builds
PERSISTENT_DIR = "${TOPDIR}/cache"
LOG_DIR = "${TMPDIR}/log"
@@ -451,11 +455,6 @@ STAGING_KERNEL_BUILDDIR = "${TMPDIR}/work-shared/${MACHINE}/kernel-build-artifac
##################################################################
IMAGE_ROOTFS = "${WORKDIR}/rootfs"
-IMAGE_BASENAME = "${PN}"
-IMAGE_VERSION_SUFFIX = "-${DATETIME}"
-IMAGE_VERSION_SUFFIX[vardepsexclude] += "DATETIME"
-IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
-IMAGE_LINK_NAME = "${IMAGE_BASENAME}-${MACHINE}"
# This option allows for a percentage overage of the actual image size rather than a
# fixed extra space, this is space needed for initial startup and basic operations.
@@ -489,7 +488,8 @@ HOSTTOOLS += " \
fgrep file find flock g++ gawk gcc getconf getopt git grep gunzip gzip \
head hostname iconv id install ld ldd ln ls make md5sum mkdir mknod \
mktemp mv nm objcopy objdump od patch perl pr printf pwd \
- python3 ranlib readelf readlink realpath rm rmdir rpcgen sed seq sh sha256sum \
+ python3 ranlib readelf readlink realpath rm rmdir rpcgen sed seq sh \
+ sha1sum sha224sum sha256sum sha384sum sha512sum \
sleep sort split stat strings strip tail tar tee test touch tr true uname \
uniq wc wget which xargs \
"
@@ -685,13 +685,15 @@ SRC_URI = ""
PSEUDO_LOCALSTATEDIR ?= "${WORKDIR}/pseudo/"
PSEUDO_PASSWD ?= "${STAGING_DIR_TARGET}:${PSEUDO_SYSROOT}"
PSEUDO_SYSROOT = "${COMPONENTS_DIR}/${BUILD_ARCH}/pseudo-native"
+PSEUDO_IGNORE_PATHS = "/usr/,/etc/,/lib,/dev/,${T},${WORKDIR}/recipe-sysroot,${SSTATE_DIR},${STAMPS_DIR},${WORKDIR}/pkgdata-sysroot,${TMPDIR}/sstate-control,${DEPLOY_DIR},${WORKDIR}/deploy-,${TMPDIR}/buildstats,${WORKDIR}/sstate-build-package_,${WORKDIR}/sstate-install-package_,${WORKDIR}/sstate-build-image_complete,${TMPDIR}/sysroots-components,${BUILDHISTORY_DIR},${TMPDIR}/pkgdata,${TOPDIR}/cache,${COREBASE}/scripts,${COREBASE}/meta"
+
export PSEUDO_DISABLED = "1"
#export PSEUDO_PREFIX = "${STAGING_DIR_NATIVE}${prefix_native}"
#export PSEUDO_BINDIR = "${STAGING_DIR_NATIVE}${bindir_native}"
#export PSEUDO_LIBDIR = "${STAGING_DIR_NATIVE}$PSEUDOBINDIR/../lib/pseudo/lib
-FAKEROOTBASEENV = "PSEUDO_BINDIR=${PSEUDO_SYSROOT}${bindir_native} PSEUDO_LIBDIR=${PSEUDO_SYSROOT}${prefix_native}/lib/pseudo/lib PSEUDO_PREFIX=${PSEUDO_SYSROOT}${prefix_native} PSEUDO_DISABLED=1"
+FAKEROOTBASEENV = "PSEUDO_BINDIR=${PSEUDO_SYSROOT}${bindir_native} PSEUDO_LIBDIR=${PSEUDO_SYSROOT}${prefix_native}/lib/pseudo/lib PSEUDO_PREFIX=${PSEUDO_SYSROOT}${prefix_native} PSEUDO_IGNORE_PATHS=${PSEUDO_IGNORE_PATHS} PSEUDO_DISABLED=1"
FAKEROOTCMD = "${PSEUDO_SYSROOT}${bindir_native}/pseudo"
-FAKEROOTENV = "PSEUDO_PREFIX=${PSEUDO_SYSROOT}${prefix_native} PSEUDO_LOCALSTATEDIR=${PSEUDO_LOCALSTATEDIR} PSEUDO_PASSWD=${PSEUDO_PASSWD} PSEUDO_NOSYMLINKEXP=1 PSEUDO_DISABLED=0"
+FAKEROOTENV = "PSEUDO_PREFIX=${PSEUDO_SYSROOT}${prefix_native} PSEUDO_LOCALSTATEDIR=${PSEUDO_LOCALSTATEDIR} PSEUDO_PASSWD=${PSEUDO_PASSWD} PSEUDO_NOSYMLINKEXP=1 PSEUDO_IGNORE_PATHS=${PSEUDO_IGNORE_PATHS} PSEUDO_DISABLED=0"
FAKEROOTNOENV = "PSEUDO_UNLOAD=1"
FAKEROOTDIRS = "${PSEUDO_LOCALSTATEDIR}"
PREFERRED_PROVIDER_virtual/fakeroot-native ?= "pseudo-native"
@@ -701,7 +703,7 @@ PREFERRED_PROVIDER_virtual/fakeroot-native ?= "pseudo-native"
##################################################################
# Pre-build configuration output
-BUILDCFG_HEADER = "Build Configuration:"
+BUILDCFG_HEADER = "Build Configuration${@" (mc:${BB_CURRENT_MC})" if d.getVar("BBMULTICONFIG") else ""}:"
BUILDCFG_VARS = "BB_VERSION BUILD_SYS NATIVELSBSTRING TARGET_SYS MACHINE DISTRO DISTRO_VERSION TUNE_FEATURES TARGET_FPU"
BUILDCFG_VARS[type] = "list"
BUILDCFG_NEEDEDVARS = "TARGET_ARCH TARGET_OS"
@@ -717,6 +719,10 @@ export PKG_CONFIG_DISABLE_UNINSTALLED = "yes"
export PKG_CONFIG_SYSTEM_LIBRARY_PATH = "${base_libdir}:${libdir}"
export PKG_CONFIG_SYSTEM_INCLUDE_PATH = "${includedir}"
+# Don't allow git to chdir up past WORKDIR so that it doesn't detect the OE
+# repository when building a recipe
+export GIT_CEILING_DIRECTORIES = "${WORKDIR}"
+
###
### Config file processing
###
@@ -794,7 +800,10 @@ BB_NUMBER_THREADS ?= "${@oe.utils.cpu_count()}"
PARALLEL_MAKE ?= "-j ${@oe.utils.cpu_count()}"
# Default parallelism and resource usage for xz
-XZ_DEFAULTS ?= "--memlimit=50% --threads=${@oe.utils.cpu_count()}"
+XZ_MEMLIMIT ?= "50%"
+XZ_THREADS ?= "${@oe.utils.cpu_count(at_least=2)}"
+XZ_DEFAULTS ?= "--memlimit=${XZ_MEMLIMIT} --threads=${XZ_THREADS}"
+XZ_DEFAULTS[vardepsexclude] += "XZ_MEMLIMIT XZ_THREADS"
##################################################################
# Magic Cookie for SANITY CHECK
@@ -825,8 +834,8 @@ DISTRO_FEATURES_NATIVESDK ?= "x11"
# Normally target distro features will not be applied to native builds:
# Native distro features on this list will use the target feature value
-DISTRO_FEATURES_FILTER_NATIVE ?= "api-documentation"
-DISTRO_FEATURES_FILTER_NATIVESDK ?= "api-documentation"
+DISTRO_FEATURES_FILTER_NATIVE ?= "api-documentation opengl"
+DISTRO_FEATURES_FILTER_NATIVESDK ?= "api-documentation opengl"
DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit gobject-introspection-data ldconfig"
MACHINE_FEATURES_BACKFILL = "rtc qemu-usermode"
@@ -866,16 +875,17 @@ BB_CONSOLELOG ?= "${LOG_DIR}/cooker/${MACHINE}/${DATETIME}.log"
# Setup our default hash policy
BB_SIGNATURE_HANDLER ?= "OEBasicHash"
-BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH BBSERVER DL_DIR \
- SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM \
+BB_HASHEXCLUDE_COMMON ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH BBSERVER DL_DIR \
+ THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL \
USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST \
STAMPS_DIR PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE \
CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_NOHASHDIR LICENSE_PATH SDKPKGSUFFIX \
WARN_QA ERROR_QA WORKDIR STAMPCLEAN PKGDATA_DIR BUILD_ARCH SSTATE_PKGARCH \
BB_WORKERCONTEXT BB_LIMITEDDEPS BB_UNIHASH extend_recipe_sysroot DEPLOY_DIR \
SSTATE_HASHEQUIV_METHOD SSTATE_HASHEQUIV_REPORT_TASKDATA \
- SSTATE_HASHEQUIV_OWNER CCACHE_TOP_DIR BB_HASHSERVE"
-BB_HASHCONFIG_WHITELIST ?= "${BB_HASHBASE_WHITELIST} DATE TIME SSH_AGENT_PID \
+ SSTATE_HASHEQUIV_OWNER CCACHE_TOP_DIR BB_HASHSERVE GIT_CEILING_DIRECTORIES"
+BB_HASHBASE_WHITELIST ?= "${BB_HASHEXCLUDE_COMMON} PSEUDO_IGNORE_PATHS BUILDHISTORY_DIR SSTATE_DIR "
+BB_HASHCONFIG_WHITELIST ?= "${BB_HASHEXCLUDE_COMMON} DATE TIME SSH_AGENT_PID \
SSH_AUTH_SOCK PSEUDO_BUILD BB_ENV_EXTRAWHITE DISABLE_SANITY_CHECKS \
PARALLEL_MAKE BB_NUMBER_THREADS BB_ORIGENV BB_INVALIDCONF BBINCLUDED \
GIT_PROXY_COMMAND ALL_PROXY all_proxy NO_PROXY no_proxy FTP_PROXY ftp_proxy \
diff --git a/meta/conf/distro/defaultsetup.conf b/meta/conf/distro/defaultsetup.conf
index 66fd246526..b36a4ffffe 100644
--- a/meta/conf/distro/defaultsetup.conf
+++ b/meta/conf/distro/defaultsetup.conf
@@ -3,10 +3,7 @@ include conf/distro/include/default-versions.inc
include conf/distro/include/default-distrovars.inc
include conf/distro/include/maintainers.inc
-TCMODE ?= "default"
require conf/distro/include/tcmode-${TCMODE}.inc
-
-TCLIBC ?= "glibc"
require conf/distro/include/tclibc-${TCLIBC}.inc
require conf/distro/include/uninative-flags.inc
@@ -15,8 +12,6 @@ require conf/distro/include/uninative-flags.inc
TCLIBCAPPEND ?= "-${TCLIBC}"
TMPDIR .= "${TCLIBCAPPEND}"
-CACHE = "${TMPDIR}/cache/${TCMODE}-${TCLIBC}${@['', '/' + str(d.getVar('MACHINE'))][bool(d.getVar('MACHINE'))]}${@['', '/' + str(d.getVar('SDKMACHINE'))][bool(d.getVar('SDKMACHINE'))]}"
-
USER_CLASSES ?= ""
PACKAGE_CLASSES ?= "package_ipk"
INHERIT_BLACKLIST = "blacklist"
diff --git a/meta/conf/distro/include/distro_alias.inc b/meta/conf/distro/include/distro_alias.inc
index 79ebcaee29..b4dfcfc5f5 100644
--- a/meta/conf/distro/include/distro_alias.inc
+++ b/meta/conf/distro/include/distro_alias.inc
@@ -15,13 +15,13 @@ DISTRO_PN_ALIAS_pn-alsa-utils-scripts = "OE-Core"
DISTRO_PN_ALIAS_pn-atk = "Fedora=atk OpenSuSE=atk"
DISTRO_PN_ALIAS_pn-avahi-ui = "Ubuntu=avahi-discover Debian=avahi-discover"
DISTRO_PN_ALIAS_pn-babeltrace = "OSPDT"
+DISTRO_PN_ALIAS_pn-babeltrace2 = "OSPDT"
DISTRO_PN_ALIAS_pn-bjam = "OpenSuSE=boost-jam Debian=bjam"
DISTRO_PN_ALIAS_pn-blktool = "Debian=blktool Mandriva=blktool"
DISTRO_PN_ALIAS_pn-bluez5 = "Fedora=bluez Opensuse=bluez"
DISTRO_PN_ALIAS_pn-bootchart2 = "Fedora=bootchart2 Opensuse=bootchart"
DISTRO_PN_ALIAS_pn-btrfs-tools = "Debian=btrfs-tools Fedora=btrfs-progs"
DISTRO_PN_ALIAS_pn-build-appliance-image = "OSPDT"
-DISTRO_PN_ALIAS_pn-build-compare = "Opensuse=build-compare Fedora=build-compare"
DISTRO_PN_ALIAS_pn-builder = "OE-Core"
DISTRO_PN_ALIAS_pn-buildtools-tarball = "OE-Core"
DISTRO_PN_ALIAS_pn-cdrtools = "OpenSUSE=cdrtools OSPDT"
@@ -81,10 +81,6 @@ DISTRO_PN_ALIAS_pn-encodings = "Ubuntu=xfonts-encodings Mandriva=x11-font-encodi
DISTRO_PN_ALIAS_pn-font-alias = "Fedora=xorg-x11-fonts-base Mandriva=x11-font-alias Meego=xorg-x11-fonts"
DISTRO_PN_ALIAS_pn-font-util = "Meego=xorg-x11-font-utils Fedora=xorg-x11-font-utils Ubuntu=xfonts-utils Mandriva=x11-font-util Debian=xfonts-utils"
DISTRO_PN_ALIAS_pn-formfactor = "OE-Core"
-DISTRO_PN_ALIAS_pn-gcc-cross-initial = "OE-Core"
-DISTRO_PN_ALIAS_pn-gcc-cross-initial-i586 = "OE-Core"
-DISTRO_PN_ALIAS_pn-gcc-crosssdk-initial = "OE-Core"
-DISTRO_PN_ALIAS_pn-gcc-crosssdk-initial-x86_64 = "OE-Core"
DISTRO_PN_ALIAS_pn-gccmakedep = "Mandriva=gccmakedep Ubuntu=xutils-dev"
DISTRO_PN_ALIAS_pn-gcc-runtime = "Ubuntu=gcc Fedora=gcc"
DISTRO_PN_ALIAS_pn-gcc-sanitizers = "Ubuntu=gcc Fedora=gcc"
@@ -101,8 +97,6 @@ DISTRO_PN_ALIAS_pn-gnome-desktop-testing = "Debian=gnome-desktop-testing Fedora=
DISTRO_PN_ALIAS_pn-gnu-config = "OpenedHand"
DISTRO_PN_ALIAS_pn-gptfdisk = "Fedora=gdisk Ubuntu=gdisk"
DISTRO_PN_ALIAS_pn-grub-efi = "Debian=grub-efi Fedora=grub2-efi"
-DISTRO_PN_ALIAS_pn-grub-efi-i586 = "Debian=grub-efi Fedora=grub2-efi"
-DISTRO_PN_ALIAS_pn-grub-efi-x86-64 = "Debian=grub-efi Fedora=grub2-efi"
DISTRO_PN_ALIAS_pn-gst-player = "Ubuntu=gst-player Fedora=gstreamer-player"
DISTRO_PN_ALIAS_pn-gst-plugin-bluetooth = "Ubuntu=libgstreamer-plugins-base Fedora=gstreamer-plugins-base"
DISTRO_PN_ALIAS_pn-gstreamer1.0 = "Debian=gstreamer1.0 Ubuntu=gstreamer1.0"
diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
index 5f1dae9a34..7935f968c7 100644
--- a/meta/conf/distro/include/maintainers.inc
+++ b/meta/conf/distro/include/maintainers.inc
@@ -2,7 +2,7 @@
#
# This file contains a list of recipe maintainers.
#
-# Please submit any patches against recipes in meta to the
+# Please submit any patches against recipes in meta to the
# OE-Core mail list (openembedded-core@lists.openembedded.org)
# For recipes in meta-yocto please use the Poky list (poky@yoctoproject.org)
#
@@ -28,9 +28,9 @@
# Please keep this list in alphabetical order.
#
RECIPE_MAINTAINER_pn-acl = "Chen Qi <Qi.Chen@windriver.com>"
-RECIPE_MAINTAINER_pn-acpica = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-acpid = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-adwaita-icon-theme = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-acpica = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-acpid = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-adwaita-icon-theme = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-alsa-lib = "Tanu Kaskinen <tanuk@iki.fi>"
RECIPE_MAINTAINER_pn-alsa-plugins = "Tanu Kaskinen <tanuk@iki.fi>"
RECIPE_MAINTAINER_pn-alsa-state = "Tanu Kaskinen <tanuk@iki.fi>"
@@ -43,22 +43,21 @@ RECIPE_MAINTAINER_pn-apmd = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-apr = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-apr-util = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-apt = "Aníbal Limón <limon.anibal@gmail.com>"
-RECIPE_MAINTAINER_pn-apt-native = "Aníbal Limón <limon.anibal@gmail.com>"
RECIPE_MAINTAINER_pn-argp-standalone = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-asciidoc = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-aspell = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-assimp = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-at = "Chen Qi <Qi.Chen@windriver.com>"
-RECIPE_MAINTAINER_pn-at-spi2-atk = "Anuj Mittal <anuj.mittal@intel.com>"
-RECIPE_MAINTAINER_pn-at-spi2-core = "Anuj Mittal <anuj.mittal@intel.com>"
-RECIPE_MAINTAINER_pn-atk = "Anuj Mittal <anuj.mittal@intel.com>"
+RECIPE_MAINTAINER_pn-at-spi2-atk = "Tim Orling <timothy.t.orling@linux.intel.com>"
+RECIPE_MAINTAINER_pn-at-spi2-core = "Tim Orling <timothy.t.orling@linux.intel.com>"
+RECIPE_MAINTAINER_pn-atk = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-attr = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-autoconf = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-autoconf-archive = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-automake = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-avahi = "Yi Zhao <yi.zhao@windriver.com>"
-RECIPE_MAINTAINER_pn-avahi-ui = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-babeltrace = "Alexander Kanavin <alex.kanavin@gmail.com>"
+RECIPE_MAINTAINER_pn-babeltrace2 = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-base-files = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-base-passwd = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-bash = "Hongxu Jia <hongxu.jia@windriver.com>"
@@ -71,17 +70,16 @@ RECIPE_MAINTAINER_pn-binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "Khem R
RECIPE_MAINTAINER_pn-binutils-cross-testsuite = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-binutils-crosssdk-${SDK_SYS} = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-bison = "Chen Qi <Qi.Chen@windriver.com>"
-RECIPE_MAINTAINER_pn-bjam-native = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-blktool = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-blktrace = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-bluez5 = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-bmap-tools = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-boost = "Alexander Kanavin <alex.kanavin@gmail.com>"
+RECIPE_MAINTAINER_pn-boost-build-native = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-bootchart2 = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-bsd-headers = "Khem Raj <raj.khem@gmail.com>"
-RECIPE_MAINTAINER_pn-btrfs-tools = "Alexander Kanavin <alex.kanavin@gmail.com>"
+RECIPE_MAINTAINER_pn-btrfs-tools = "Wang Mingyu <wangmy@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-build-appliance-image = "Richard Purdie <richard.purdie@linuxfoundation.org>"
-RECIPE_MAINTAINER_pn-build-compare = "Paul Eggleton <paul.eggleton@linux.intel.com>"
RECIPE_MAINTAINER_pn-build-sysroots = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-builder = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-buildtools-extended-tarball = "Richard Purdie <richard.purdie@linuxfoundation.org>"
@@ -95,15 +93,15 @@ RECIPE_MAINTAINER_pn-cantarell-fonts = "Alexander Kanavin <alex.kanavin@gmail.co
RECIPE_MAINTAINER_pn-ccache = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-cdrtools-native = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-chrpath = "Yi Zhao <yi.zhao@windriver.com>"
-RECIPE_MAINTAINER_pn-clutter-1.0 = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-clutter-gst-3.0 = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-clutter-gtk-1.0 = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-clutter-1.0 = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-clutter-gst-3.0 = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-clutter-gtk-1.0 = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-cmake = "Pascal Bach <pascal.bach@siemens.com>"
RECIPE_MAINTAINER_pn-cmake-native = "Pascal Bach <pascal.bach@siemens.com>"
-RECIPE_MAINTAINER_pn-cogl-1.0 = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-cogl-1.0 = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-connman = "Changhyeok Bae <changhyeok.bae@gmail.com>"
-RECIPE_MAINTAINER_pn-connman-conf = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-connman-gnome = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-connman-conf = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-connman-gnome = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-consolekit = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-core-image-base = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-core-image-minimal = "Richard Purdie <richard.purdie@linuxfoundation.org>"
@@ -134,18 +132,18 @@ RECIPE_MAINTAINER_pn-cryptodev-module = "Robert Yang <liezhi.yang@windriver.com>
RECIPE_MAINTAINER_pn-cryptodev-tests = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-cups = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-curl = "Armin Kuster <akuster808@gmail.com>"
-RECIPE_MAINTAINER_pn-cve-update-db-native = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-cwautomacros = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-db = "Mark Hatle <mark.hatle@windriver.com>"
+RECIPE_MAINTAINER_pn-cve-update-db-native = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-cwautomacros = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-db = "Unassigned <unassigned@yoctoproject.org>"
RECIPE_MAINTAINER_pn-dbus = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-dbus-glib = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-dbus-test = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-dbus-wait = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-debianutils = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-dejagnu = "Nathan Rossi <nathan@nathanrossi.com>"
-RECIPE_MAINTAINER_pn-depmodwrapper-cross = "Mark Hatle <mark.hatle@windriver.com>"
+RECIPE_MAINTAINER_pn-depmodwrapper-cross = "Unassigned <unassigned@yoctoproject.org>"
RECIPE_MAINTAINER_pn-desktop-file-utils = "Alexander Kanavin <alex.kanavin@gmail.com>"
-RECIPE_MAINTAINER_pn-dhcp = "Hongxu Jia <hongxu.jia@windriver.com>"
+RECIPE_MAINTAINER_pn-dhcpcd = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-diffoscope = "Joshua Watt <JPEWhacker@gmail.com>"
RECIPE_MAINTAINER_pn-diffstat = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-diffutils = "Chen Qi <Qi.Chen@windriver.com>"
@@ -159,14 +157,14 @@ RECIPE_MAINTAINER_pn-dos2unix = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-dosfstools = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-dpkg = "Aníbal Limón <limon.anibal@gmail.com>"
RECIPE_MAINTAINER_pn-dropbear = "Yi Zhao <yi.zhao@windriver.com>"
-RECIPE_MAINTAINER_pn-dtc = "Alexander Kanavin <alex.kanavin@gmail.com>"
+RECIPE_MAINTAINER_pn-dtc = "Wang Mingyu <wangmy@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-dwarfsrcfiles = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-e2fsprogs = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-ed = "Alexander Kanavin <alex.kanavin@gmail.com>"
-RECIPE_MAINTAINER_pn-efivar = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-efibootmgr = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-elfutils = "Hongxu Jia <hongxu.jia@windriver.com>"
-RECIPE_MAINTAINER_pn-ell = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
+RECIPE_MAINTAINER_pn-efivar = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-efibootmgr = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-elfutils = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
+RECIPE_MAINTAINER_pn-ell = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-enchant2 = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-encodings = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-epiphany = "Alexander Kanavin <alex.kanavin@gmail.com>"
@@ -181,10 +179,10 @@ RECIPE_MAINTAINER_pn-flac = "Tanu Kaskinen <tanuk@iki.fi>"
RECIPE_MAINTAINER_pn-flex = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-font-alias = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-font-util = "Armin Kuster <akuster808@gmail.com>"
-RECIPE_MAINTAINER_pn-fontconfig = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-formfactor = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-freetype = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-fribidi = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-fontconfig = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-formfactor = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-freetype = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-fribidi = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-fts = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-gawk = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-gcc = "Khem Raj <raj.khem@gmail.com>"
@@ -193,14 +191,14 @@ RECIPE_MAINTAINER_pn-gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "Khem Raj <r
RECIPE_MAINTAINER_pn-gcc-crosssdk-${SDK_SYS} = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-gcc-runtime = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-gcc-sanitizers = "Khem Raj <raj.khem@gmail.com>"
-RECIPE_MAINTAINER_pn-gcc-source-9.2.0 = "Khem Raj <raj.khem@gmail.com>"
-RECIPE_MAINTAINER_pn-gconf = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-gcc-source-10.2.0 = "Khem Raj <raj.khem@gmail.com>"
+RECIPE_MAINTAINER_pn-gconf = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-gcr = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-gdb = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-gdb-cross-${TARGET_ARCH} = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-gdbm = "Alexander Kanavin <alex.kanavin@gmail.com>"
-RECIPE_MAINTAINER_pn-gdk-pixbuf = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-gdk-pixbuf = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-gettext = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-gettext-minimal-native = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-ghostscript = "Hongxu Jia <hongxu.jia@windriver.com>"
@@ -215,12 +213,13 @@ RECIPE_MAINTAINER_pn-glibc-scripts = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-glibc-testsuite = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-glide = "Otavio Salvador <otavio.salvador@ossystems.com.br>"
RECIPE_MAINTAINER_pn-gmp = "Khem Raj <raj.khem@gmail.com>"
-RECIPE_MAINTAINER_pn-gnome-desktop-testing = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-gnome-desktop-testing = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-gnu-config = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-gnu-efi = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-gnupg = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-gnutls = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-go = "Khem Raj <raj.khem@gmail.com>"
+RECIPE_MAINTAINER_pn-go-binary-native = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-go-cross-${TUNE_PKGARCH} = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-go-cross-canadian-${TRANSLATED_TARGET_ARCH} = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-go-crosssdk-${SDK_SYS} = "Khem Raj <raj.khem@gmail.com>"
@@ -251,20 +250,22 @@ RECIPE_MAINTAINER_pn-gstreamer1.0-plugins-ugly = "Anuj Mittal <anuj.mittal@intel
RECIPE_MAINTAINER_pn-gstreamer1.0-python = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-gstreamer1.0-rtsp-server = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-gstreamer1.0-vaapi = "Anuj Mittal <anuj.mittal@intel.com>"
-RECIPE_MAINTAINER_pn-gtk+3 = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-gtk+3 = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-gtk-doc = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-gzip = "Denys Dmytriyenko <denys@ti.com>"
RECIPE_MAINTAINER_pn-harfbuzz = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-hdparm = "Denys Dmytriyenko <denys@ti.com>"
-RECIPE_MAINTAINER_pn-help2man-native = "Hongxu Jia <hongxu.jia@windriver.com>"
+RECIPE_MAINTAINER_pn-help2man = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-hicolor-icon-theme = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-hwlatdetect = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-i2c-tools = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-icecc-create-env = "Joshua Watt <JPEWhacker@gmail.com>"
RECIPE_MAINTAINER_pn-icu = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-ifupdown = "Anuj Mittal <anuj.mittal@intel.com>"
+RECIPE_MAINTAINER_pn-igt-gpu-tools = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-inetutils = "Tom Rini <trini@konsulko.com>"
RECIPE_MAINTAINER_pn-init-ifupdown = "Anuj Mittal <anuj.mittal@intel.com>"
+RECIPE_MAINTAINER_pn-init-system-helpers = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-initramfs-boot = "Otavio Salvador <otavio.salvador@ossystems.com.br>"
RECIPE_MAINTAINER_pn-initramfs-framework = "Otavio Salvador <otavio.salvador@ossystems.com.br>"
RECIPE_MAINTAINER_pn-initramfs-live-boot = "Anuj Mittal <anuj.mittal@intel.com>"
@@ -278,7 +279,7 @@ RECIPE_MAINTAINER_pn-intltool = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-iproute2 = "Changhyeok Bae <changhyeok.bae@gmail.com>"
RECIPE_MAINTAINER_pn-iptables = "Changhyeok Bae <changhyeok.bae@gmail.com>"
RECIPE_MAINTAINER_pn-iputils = "Changhyeok Bae <changhyeok.bae@gmail.com>"
-RECIPE_MAINTAINER_pn-iso-codes = "Alexander Kanavin <alex.kanavin@gmail.com>"
+RECIPE_MAINTAINER_pn-iso-codes = "Wang Mingyu <wangmy@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-itstool = "Andreas Müller <schnitzeltony@gmail.com>"
RECIPE_MAINTAINER_pn-iw = "Changhyeok Bae <changhyeok.bae@gmail.com>"
RECIPE_MAINTAINER_pn-libjpeg-turbo = "Anuj Mittal <anuj.mittal@intel.com>"
@@ -286,6 +287,7 @@ RECIPE_MAINTAINER_pn-json-c = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-json-glib = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-jquery = "Joshua Watt <JPEWhacker@gmail.com>"
RECIPE_MAINTAINER_pn-kbd = "Alexander Kanavin <alex.kanavin@gmail.com>"
+RECIPE_MAINTAINER_pn-kea = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-kern-tools-native = "Bruce Ashfield <bruce.ashfield@gmail.com>"
RECIPE_MAINTAINER_pn-kernel-devsrc = "Bruce Ashfield <bruce.ashfield@gmail.com>"
RECIPE_MAINTAINER_pn-kexec-tools = "Armin Kuster <akuster808@gmail.com>"
@@ -334,22 +336,22 @@ RECIPE_MAINTAINER_pn-libgcc-initial = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-libgcrypt = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-libgfortran = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-libgloss = "Alejandro Hernandez <aehs29@gmail.com>"
-RECIPE_MAINTAINER_pn-libglu = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-libglu = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-libgpg-error = "Hongxu Jia <hongxu.jia@windriver.com>"
-RECIPE_MAINTAINER_pn-libgudev = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-libical = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-libgudev = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-libhandy = "Alexander Kanavin <alex.kanavin@gmail.com>"
+RECIPE_MAINTAINER_pn-libical = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-libice = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libid3tag = "Tanu Kaskinen <tanuk@iki.fi>"
-RECIPE_MAINTAINER_pn-libidn = "Alexander Kanavin <alex.kanavin@gmail.com>"
-RECIPE_MAINTAINER_pn-libidn2 = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-libinput = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-libjitterentropy = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-libidn2 = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-libinput = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-libjitterentropy = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-libksba = "Alexander Kanavin <alex.kanavin@gmail.com>"
-RECIPE_MAINTAINER_pn-libmatchbox = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-libmatchbox = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-libmnl = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-libmpc = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-libmodule-build-perl = "Tim Orling <timothy.t.orling@linux.intel.com>"
-RECIPE_MAINTAINER_pn-libmodulemd-v1 = "Alexander Kanavin <alex.kanavin@gmail.com>"
+RECIPE_MAINTAINER_pn-libmodulemd = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libnewt = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-libnl = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libnotify = "Anuj Mittal <anuj.mittal@intel.com>"
@@ -360,15 +362,15 @@ RECIPE_MAINTAINER_pn-libogg = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libomxil = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libpam = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libpcap = "Anuj Mittal <anuj.mittal@intel.com>"
-RECIPE_MAINTAINER_pn-libpciaccess = "Alexander Kanavin <alex.kanavin@gmail.com>"
+RECIPE_MAINTAINER_pn-libpciaccess = "Wang Mingyu <wangmy@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-libpcre = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-libpcre2 = "Armin Kuster <akuster808@gmail.com>"
-RECIPE_MAINTAINER_pn-libpipeline = "Alexander Kanavin <alex.kanavin@gmail.com>"
+RECIPE_MAINTAINER_pn-libpipeline = "Wang Mingyu <wangmy@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-libpng = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libproxy = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libpthread-stubs = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libpsl = "Anuj Mittal <anuj.mittal@intel.com>"
-RECIPE_MAINTAINER_pn-librepo = "Alexander Kanavin <alex.kanavin@gmail.com>"
+RECIPE_MAINTAINER_pn-librepo = "Wang Mingyu <wangmy@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-librsvg = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libsamplerate0 = "Tanu Kaskinen <tanuk@iki.fi>"
RECIPE_MAINTAINER_pn-libsdl2 = "Yi Zhao <yi.zhao@windriver.com>"
@@ -389,13 +391,15 @@ RECIPE_MAINTAINER_pn-libtool-native = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-libucontext = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-libunistring = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libunwind = "Bruce Ashfield <bruce.ashfield@gmail.com>"
-RECIPE_MAINTAINER_pn-liburcu = "Alexander Kanavin <alex.kanavin@gmail.com>"
+RECIPE_MAINTAINER_pn-liburcu = "Wang Mingyu <wangmy@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-liburi-perl = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-libusb1 = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libubootenv = "Stefano Babic <sbabic@denx.de>"
+RECIPE_MAINTAINER_pn-libuv = "Armin Kuster <akuster@mvista.com>"
RECIPE_MAINTAINER_pn-libva = "Anuj Mittal <anuj.mittal@intel.com>"
+RECIPE_MAINTAINER_pn-libva-initial = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libva-utils = "Anuj Mittal <anuj.mittal@intel.com>"
-RECIPE_MAINTAINER_pn-libvorbis = "Tanu Kaskinen <tanuk@iki.fi>"
+RECIPE_MAINTAINER_pn-libvorbis = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-libwebp = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libwpe = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libx11 = "Armin Kuster <akuster808@gmail.com>"
@@ -436,7 +440,7 @@ RECIPE_MAINTAINER_pn-libxtst = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libxv = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libxvmc = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libxxf86vm = "Armin Kuster <akuster808@gmail.com>"
-RECIPE_MAINTAINER_pn-libyaml = "Alexander Kanavin <alex.kanavin@gmail.com>"
+RECIPE_MAINTAINER_pn-libyaml = "Wang Mingyu <wangmy@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-lighttpd = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-linux-dummy = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-linux-firmware = "Otavio Salvador <otavio.salvador@ossystems.com.br>"
@@ -447,9 +451,10 @@ RECIPE_MAINTAINER_pn-linux-yocto-rt = "Bruce Ashfield <bruce.ashfield@gmail.com>
RECIPE_MAINTAINER_pn-linux-yocto-tiny = "Bruce Ashfield <bruce.ashfield@gmail.com>"
RECIPE_MAINTAINER_pn-llvm = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-logrotate = "Yi Zhao <yi.zhao@windriver.com>"
+RECIPE_MAINTAINER_pn-log4cplus = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-lrzsz = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-lsb-release = "Hongxu Jia <hongxu.jia@windriver.com>"
-RECIPE_MAINTAINER_pn-lsof = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-lsof = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-ltp = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-lttng-modules = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-lttng-tools = "Richard Purdie <richard.purdie@linuxfoundation.org>"
@@ -466,18 +471,18 @@ RECIPE_MAINTAINER_pn-makedevs = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-make-mod-scripts = "Bruce Ashfield <bruce.ashfield@gmail.com>"
RECIPE_MAINTAINER_pn-man-db = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-man-pages = "Hongxu Jia <hongxu.jia@windriver.com>"
-RECIPE_MAINTAINER_pn-matchbox-config-gtk = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-matchbox-desktop = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-matchbox-keyboard = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-matchbox-panel-2 = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-matchbox-session = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-matchbox-session-sato = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-matchbox-terminal = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-matchbox-theme-sato = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-matchbox-wm = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-mc = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-mdadm = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-menu-cache = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-matchbox-config-gtk = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-matchbox-desktop = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-matchbox-keyboard = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-matchbox-panel-2 = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-matchbox-session = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-matchbox-session-sato = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-matchbox-terminal = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-matchbox-theme-sato = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-matchbox-wm = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-mc = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-mdadm = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-menu-cache = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-mesa = "Otavio Salvador <otavio.salvador@ossystems.com.br>"
RECIPE_MAINTAINER_pn-mesa-demos = "Otavio Salvador <otavio.salvador@ossystems.com.br>"
RECIPE_MAINTAINER_pn-mesa-gl = "Otavio Salvador <otavio.salvador@ossystems.com.br>"
@@ -500,7 +505,7 @@ RECIPE_MAINTAINER_pn-modutils-initscripts = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-mpeg2dec = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-mpfr = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-mpg123 = "Alexander Kanavin <alex.kanavin@gmail.com>"
-RECIPE_MAINTAINER_pn-msmtp = "Alexander Kanavin <alex.kanavin@gmail.com>"
+RECIPE_MAINTAINER_pn-msmtp = "Wang Mingyu <wangmy@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-mtd-utils = "Denys Dmytriyenko <denys@ti.com>"
RECIPE_MAINTAINER_pn-mtdev = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-mtools = "Anuj Mittal <anuj.mittal@intel.com>"
@@ -513,7 +518,7 @@ RECIPE_MAINTAINER_pn-nativesdk-buildtools-perl-dummy = "Richard Purdie <richard.
RECIPE_MAINTAINER_pn-nativesdk-icecc-toolchain = "Joshua Watt <JPEWhacker@gmail.com>"
RECIPE_MAINTAINER_pn-nativesdk-libtool = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-nativesdk-meson = "Alexander Kanavin <alex.kanavin@gmail.com>"
-RECIPE_MAINTAINER_pn-nativesdk-packagegroup-sdk-host = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-nativesdk-packagegroup-sdk-host = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-nativesdk-qemu-helper = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-nativesdk-sdk-provides-dummy = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-newlib = "Alejandro Hernandez <aehs29@gmail.com>"
@@ -526,10 +531,8 @@ RECIPE_MAINTAINER_pn-nfs-export-root = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-nfs-utils = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-ninja = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-npth = "Alexander Kanavin <alex.kanavin@gmail.com>"
-RECIPE_MAINTAINER_pn-nspr = "Armin Kuster <akuster808@gmail.com>"
-RECIPE_MAINTAINER_pn-nss = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-nss-myhostname = "Anuj Mittal <anuj.mittal@intel.com>"
-RECIPE_MAINTAINER_pn-ofono = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-ofono = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-opensbi = "Alistair Francis <alistair.francis@wdc.com>"
RECIPE_MAINTAINER_pn-openssh = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-openssl = "Alexander Kanavin <alex.kanavin@gmail.com>"
@@ -538,12 +541,12 @@ RECIPE_MAINTAINER_pn-opkg-arch-config = "Alejandro del Castillo <alejandro.delca
RECIPE_MAINTAINER_pn-opkg-keyrings = "Alejandro del Castillo <alejandro.delcastillo@ni.com>"
RECIPE_MAINTAINER_pn-opkg-utils = "Alejandro del Castillo <alejandro.delcastillo@ni.com>"
RECIPE_MAINTAINER_pn-orc = "Anuj Mittal <anuj.mittal@intel.com>"
-RECIPE_MAINTAINER_pn-os-release = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-os-release = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-ovmf = "Ricardo Neri <ricardo.neri-calderon@linux.intel.com>"
RECIPE_MAINTAINER_pn-ovmf-shell-image = "Ricardo Neri <ricardo.neri-calderon@linux.intel.com>"
RECIPE_MAINTAINER_pn-p11-kit = "Alexander Kanavin <alex.kanavin@gmail.com>"
-RECIPE_MAINTAINER_pn-package-index = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-pango = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-package-index = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-pango = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-parted = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-patch = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-patchelf = "Richard Purdie <richard.purdie@linuxfoundation.org>"
@@ -552,50 +555,58 @@ RECIPE_MAINTAINER_pn-pciutils = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-pcmanfm = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-perf = "Bruce Ashfield <bruce.ashfield@gmail.com>"
RECIPE_MAINTAINER_pn-perl = "Alexander Kanavin <alex.kanavin@gmail.com>"
-RECIPE_MAINTAINER_pn-piglit = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-piglit = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-pigz = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-pinentry = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-pixman = "Anuj Mittal <anuj.mittal@intel.com>"
-RECIPE_MAINTAINER_pn-pkgconf = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-pkgconfig = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-pm-utils = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-pkgconf = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-pkgconfig = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-pm-utils = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-pointercal-xinput = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-pong-clock = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-popt = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-powertop = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-ppp = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-ppp-dialin = "Hongxu Jia <hongxu.jia@windriver.com>"
-RECIPE_MAINTAINER_pn-prelink = "Mark Hatle <mark.hatle@windriver.com>"
+RECIPE_MAINTAINER_pn-prelink = "Mark Hatle <mark.hatle@kernel.crashing.org>"
RECIPE_MAINTAINER_pn-procps = "Alexander Kanavin <alex.kanavin@gmail.com>"
-RECIPE_MAINTAINER_pn-pseudo = "Mark Hatle <mark.hatle@windriver.com>"
+RECIPE_MAINTAINER_pn-pseudo = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-psmisc = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-psplash = "Yi Zhao <yi.zhao@windriver.com>"
-RECIPE_MAINTAINER_pn-ptest-runner = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-ptest-runner = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-pulseaudio = "Tanu Kaskinen <tanuk@iki.fi>"
RECIPE_MAINTAINER_pn-pulseaudio-client-conf-sato = "Tanu Kaskinen <tanuk@iki.fi>"
RECIPE_MAINTAINER_pn-puzzles = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-python3 = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
RECIPE_MAINTAINER_pn-python3-async = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
-RECIPE_MAINTAINER_pn-python3-dbus = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
+RECIPE_MAINTAINER_pn-python3-cython = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
+RECIPE_MAINTAINER_pn-python3-dbus = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
+RECIPE_MAINTAINER_pn-python3-dbusmock = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
RECIPE_MAINTAINER_pn-python3-docutils = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
+RECIPE_MAINTAINER_pn-python3-pycryptodome = "Joshua Watt <JPEWhacker@gmail.com>"
+RECIPE_MAINTAINER_pn-python3-pycryptodomex = "Joshua Watt <JPEWhacker@gmail.com>"
RECIPE_MAINTAINER_pn-python3-extras = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
RECIPE_MAINTAINER_pn-python3-git = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
RECIPE_MAINTAINER_pn-python3-gitdb = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
RECIPE_MAINTAINER_pn-python3-iniparse = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
+RECIPE_MAINTAINER_pn-python3-jinja2 = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-python3-libarchive-c = "Joshua Watt <JPEWhacker@gmail.com>"
RECIPE_MAINTAINER_pn-python3-magic = "Joshua Watt <JPEWhacker@gmail.com>"
RECIPE_MAINTAINER_pn-python3-mako = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
+RECIPE_MAINTAINER_pn-python3-markupsafe = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-python3-nose = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
RECIPE_MAINTAINER_pn-python3-numpy = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
-RECIPE_MAINTAINER_pn-python3-pbr = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
-RECIPE_MAINTAINER_pn-python3-pip = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
-RECIPE_MAINTAINER_pn-python3-pycairo = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
+RECIPE_MAINTAINER_pn-python3-pbr = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
+RECIPE_MAINTAINER_pn-python3-pip = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
+RECIPE_MAINTAINER_pn-python3-pycairo = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
+RECIPE_MAINTAINER_pn-python3-pyelftools = "Joshua Watt <JPEWhacker@gmail.com>"
RECIPE_MAINTAINER_pn-python3-pygments = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
-RECIPE_MAINTAINER_pn-python3-pygobject = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
+RECIPE_MAINTAINER_pn-python3-pygobject = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
+RECIPE_MAINTAINER_pn-python3-pyparsing = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
RECIPE_MAINTAINER_pn-python3-scons = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-scons-native = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-setuptools = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
-RECIPE_MAINTAINER_pn-python3-six = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
+RECIPE_MAINTAINER_pn-python3-six = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-python3-smmap = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
RECIPE_MAINTAINER_pn-python3-subunit = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
RECIPE_MAINTAINER_pn-python3-testtools = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
@@ -614,13 +625,13 @@ RECIPE_MAINTAINER_pn-rgb = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-rpcbind = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-rng-tools = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-rpcsvc-proto = "Khem Raj <raj.khem@gmail.com>"
-RECIPE_MAINTAINER_pn-rpm = "Mark Hatle <mark.hatle@windriver.com>"
+RECIPE_MAINTAINER_pn-rpm = "Unassigned <unassigned@yoctoproject.org>"
RECIPE_MAINTAINER_pn-rsync = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-rt-tests = "Alexander Kanavin <alex.kanavin@gmail.com>"
-RECIPE_MAINTAINER_pn-ruby = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-run-postinsts = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-ruby = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-run-postinsts = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-rxvt-unicode = "Armin Kuster <akuster808@gmail.com>"
-RECIPE_MAINTAINER_pn-sato-screenshot = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-sato-screenshot = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-sbc = "Tanu Kaskinen <tanuk@iki.fi>"
RECIPE_MAINTAINER_pn-screen = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-sed = "Chen Qi <Qi.Chen@windriver.com>"
@@ -639,6 +650,7 @@ RECIPE_MAINTAINER_pn-speex = "Tanu Kaskinen <tanuk@iki.fi>"
RECIPE_MAINTAINER_pn-speexdsp = "Tanu Kaskinen <tanuk@iki.fi>"
RECIPE_MAINTAINER_pn-sqlite3 = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-squashfs-tools = "Robert Yang <liezhi.yang@windriver.com>"
+RECIPE_MAINTAINER_pn-ssh-pregen-hostkeys = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-startup-notification = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-strace = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-stress-ng = "Anuj Mittal <anuj.mittal@intel.com>"
@@ -660,8 +672,8 @@ RECIPE_MAINTAINER_pn-systemd-systemctl-native = "Chen Qi <Qi.Chen@windriver.com>
RECIPE_MAINTAINER_pn-systemtap = "Victor Kamensky <kamensky@cisco.com>"
RECIPE_MAINTAINER_pn-systemtap-native = "Victor Kamensky <kamensky@cisco.com>"
RECIPE_MAINTAINER_pn-systemtap-uprobes = "Victor Kamensky <kamensky@cisco.com>"
-RECIPE_MAINTAINER_pn-sysvinit = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-sysvinit-inittab = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-sysvinit = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-sysvinit-inittab = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-taglib = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-tar = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-tcf-agent = "Anuj Mittal <anuj.mittal@intel.com>"
@@ -677,12 +689,12 @@ RECIPE_MAINTAINER_pn-tzcode-native = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-tzdata = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-u-boot = "Marek Vasut <marek.vasut@gmail.com>"
RECIPE_MAINTAINER_pn-u-boot-tools = "Marek Vasut <marek.vasut@gmail.com>"
-RECIPE_MAINTAINER_pn-udev-extraconf = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-unfs3 = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-unifdef = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-udev-extraconf = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-unfs3 = "Ross Burton <ross.burton@arm.com>"
+RECIPE_MAINTAINER_pn-unifdef = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-uninative-tarball = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-unzip = "Denys Dmytriyenko <denys@ti.com>"
-RECIPE_MAINTAINER_pn-update-rc.d = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-update-rc.d = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-usbinit = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-usbutils = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-util-linux = "Chen Qi <Qi.Chen@windriver.com>"
@@ -695,11 +707,11 @@ RECIPE_MAINTAINER_pn-vim-tiny = "Tom Rini <trini@konsulko.com>"
RECIPE_MAINTAINER_pn-virglrenderer = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-volatile-binds = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-vte = "Anuj Mittal <anuj.mittal@intel.com>"
-RECIPE_MAINTAINER_pn-vulkan-demos = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-vulkan-demos = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-vulkan-headers = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-vulkan-loader = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-vulkan-tools = "Anuj Mittal <anuj.mittal@intel.com>"
-RECIPE_MAINTAINER_pn-waffle = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-waffle = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-watchdog = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-watchdog-config = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-wayland = "Denys Dmytriyenko <denys@ti.com>"
@@ -739,7 +751,7 @@ RECIPE_MAINTAINER_pn-xf86-video-intel = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-xf86-video-vesa = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-xf86-video-vmware = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-xhost = "Armin Kuster <akuster808@gmail.com>"
-RECIPE_MAINTAINER_pn-xinetd = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-xinetd = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-xinit = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-xinput = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-xinput-calibrator = "Armin Kuster <akuster808@gmail.com>"
diff --git a/meta/conf/distro/include/ptest-packagelists.inc b/meta/conf/distro/include/ptest-packagelists.inc
index 6e770853b8..ce13368c2e 100644
--- a/meta/conf/distro/include/ptest-packagelists.inc
+++ b/meta/conf/distro/include/ptest-packagelists.inc
@@ -21,7 +21,6 @@ PTESTS_FAST = "\
gettext-ptest \
gzip-ptest \
json-glib-ptest \
- kbd-ptest \
libconvert-asn1-perl-ptest \
liberror-perl-ptest \
libmodule-build-perl-ptest \
@@ -44,14 +43,16 @@ PTESTS_FAST = "\
opkg-ptest \
pango-ptest \
parted-ptest \
+ qemu-ptest \
quilt-ptest \
sed-ptest \
slang-ptest \
+ wayland-ptest \
zlib-ptest \
"
+PTESTS_FAST_remove_mips64 = "qemu-ptest"
#PTESTS_PROBLEMS = "\
-# qemu-ptest \ # Doesn't run any tests?
# ruby-ptest \ # Timeout
# clutter-1.0-ptest \ # Doesn't build due to depends on cogl-1.0
# lz4-ptest \ # Needs a rewrite
@@ -63,12 +64,15 @@ PTESTS_FAST = "\
PTESTS_SLOW = "\
babeltrace-ptest \
+ babeltrace2-ptest \
busybox-ptest \
+ coreutils-ptest \
dbus-test-ptest \
e2fsprogs-ptest \
glib-2.0-ptest \
gstreamer1.0-ptest \
libevent-ptest \
+ libinput-ptest \
lttng-tools-ptest \
openssh-ptest \
openssl-ptest \
diff --git a/meta/conf/distro/include/security_flags.inc b/meta/conf/distro/include/security_flags.inc
index aaf04e9e59..4e64eb99f9 100644
--- a/meta/conf/distro/include/security_flags.inc
+++ b/meta/conf/distro/include/security_flags.inc
@@ -26,8 +26,8 @@ SECURITY_STACK_PROTECTOR ?= "-fstack-protector-strong"
SECURITY_CFLAGS ?= "${SECURITY_STACK_PROTECTOR} ${SECURITY_PIE_CFLAGS} ${lcl_maybe_fortify} ${SECURITY_STRINGFORMAT}"
SECURITY_NO_PIE_CFLAGS ?= "${SECURITY_STACK_PROTECTOR} ${lcl_maybe_fortify} ${SECURITY_STRINGFORMAT}"
-SECURITY_LDFLAGS ?= "${SECURITY_STACK_PROTECTOR} -Wl,-z,relro,-z,now"
-SECURITY_X_LDFLAGS ?= "${SECURITY_STACK_PROTECTOR} -Wl,-z,relro"
+SECURITY_LDFLAGS ?= "-Wl,-z,relro,-z,now"
+SECURITY_X_LDFLAGS ?= "-Wl,-z,relro"
# powerpc does not get on with pie for reasons not looked into as yet
GCCPIE_powerpc = ""
@@ -40,10 +40,6 @@ SECURITY_CFLAGS_pn-glibc-testsuite = ""
SECURITY_CFLAGS_pn-gcc-runtime = ""
SECURITY_CFLAGS_pn-grub = ""
SECURITY_CFLAGS_pn-grub-efi = ""
-SECURITY_CFLAGS_pn-grub-efi-native = ""
-SECURITY_CFLAGS_pn-grub-efi-x86-native = ""
-SECURITY_CFLAGS_pn-grub-efi-i586-native = ""
-SECURITY_CFLAGS_pn-grub-efi-x86-64-native = ""
SECURITY_CFLAGS_pn-mkelfimage_x86 = ""
SECURITY_CFLAGS_pn-valgrind = "${SECURITY_NOPIE_CFLAGS}"
@@ -57,6 +53,8 @@ SECURITY_STRINGFORMAT_pn-gcc = ""
TARGET_CC_ARCH_append_class-target = " ${SECURITY_CFLAGS}"
TARGET_LDFLAGS_append_class-target = " ${SECURITY_LDFLAGS}"
+TARGET_CC_ARCH_append_class-cross-canadian = " ${SECURITY_CFLAGS}"
+TARGET_LDFLAGS_append_class-cross-canadian = " ${SECURITY_LDFLAGS}"
SECURITY_STACK_PROTECTOR_pn-gcc-runtime = ""
SECURITY_STACK_PROTECTOR_pn-glibc = ""
diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc
index e957e3a9bb..50e8a20f35 100644
--- a/meta/conf/distro/include/tcmode-default.inc
+++ b/meta/conf/distro/include/tcmode-default.inc
@@ -16,23 +16,21 @@ PREFERRED_PROVIDER_virtual/${SDK_PREFIX}compilerlibs = "nativesdk-gcc-runtime"
# Default libc config
PREFERRED_PROVIDER_virtual/gettext ??= "gettext"
-GCCVERSION ?= "9.%"
+GCCVERSION ?= "10.%"
SDKGCCVERSION ?= "${GCCVERSION}"
-BINUVERSION ?= "2.34%"
+BINUVERSION ?= "2.35%"
GDBVERSION ?= "9.%"
-GLIBCVERSION ?= "2.31"
-LINUXLIBCVERSION ?= "5.4%"
-QEMUVERSION ?= "4.2%"
-GOVERSION ?= "1.13%"
+GLIBCVERSION ?= "2.32"
+LINUXLIBCVERSION ?= "5.8%"
+QEMUVERSION ?= "5.1%"
+GOVERSION ?= "1.15%"
# This can not use wildcards like 8.0.% since it is also used in mesa to denote
# llvm version being used, so always bump it with llvm recipe version bump
-LLVMVERSION ?= "9.0.1"
+LLVMVERSION ?= "10.0.1"
PREFERRED_VERSION_gcc ?= "${GCCVERSION}"
PREFERRED_VERSION_gcc-cross-${TARGET_ARCH} ?= "${GCCVERSION}"
-PREFERRED_VERSION_gcc-cross-initial-${TARGET_ARCH} ?= "${GCCVERSION}"
PREFERRED_VERSION_gcc-crosssdk-${SDK_SYS} ?= "${SDKGCCVERSION}"
-PREFERRED_VERSION_gcc-crosssdk-initial-${SDK_SYS} ?= "${SDKGCCVERSION}"
PREFERRED_VERSION_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} ?= "${GCCVERSION}"
PREFERRED_VERSION_gcc-runtime ?= "${GCCVERSION}"
PREFERRED_VERSION_gcc-sanitizers ?= "${GCCVERSION}"
@@ -66,6 +64,10 @@ PREFERRED_VERSION_qemu ?= "${QEMUVERSION}"
PREFERRED_VERSION_qemu-native ?= "${QEMUVERSION}"
PREFERRED_VERSION_nativesdk-qemu ?= "${QEMUVERSION}"
+# Bootstrap Go using a binary release from golang.org. If you want to bootstrap
+# from source using the C-implemented Go 1.4 (only supports x86-64 hosts) then use
+# go-native.
+PREFERRED_PROVIDER_go-native ?= "go-binary-native"
PREFERRED_VERSION_virtual/${TARGET_PREFIX}go ?= "${GOVERSION}"
PREFERRED_VERSION_go-cross-${TUNE_PKGARCH} ?= "${GOVERSION}"
PREFERRED_VERSION_go-crosssdk-${SDK_ARCH} ?= "${GOVERSION}"
diff --git a/meta/conf/distro/include/yocto-uninative.inc b/meta/conf/distro/include/yocto-uninative.inc
index ad75d3e2a3..69b6edee5f 100644
--- a/meta/conf/distro/include/yocto-uninative.inc
+++ b/meta/conf/distro/include/yocto-uninative.inc
@@ -6,9 +6,9 @@
# to the distro running on the build machine.
#
-UNINATIVE_MAXGLIBCVERSION = "2.30"
+UNINATIVE_MAXGLIBCVERSION = "2.32"
-UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/2.7/"
-UNINATIVE_CHECKSUM[aarch64] ?= "e76a45886ee8a0b3904b761c17ac8ff91edf9811ee455f1832d10763ba794dfc"
-UNINATIVE_CHECKSUM[i686] ?= "810d027dfb1c7675226afbcec07808770516c969ee7378f6d8240281083f8924"
-UNINATIVE_CHECKSUM[x86_64] ?= "9498d8bba047499999a7310ac2576d0796461184965351a56f6d32c888a1f216"
+UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/2.9/"
+UNINATIVE_CHECKSUM[aarch64] ?= "9f25a667aee225b1dd65c4aea73e01983e825b1cb9b56937932a1ee328b45f81"
+UNINATIVE_CHECKSUM[i686] ?= "cae5d73245d95b07cf133b780ba3f6c8d0adca3ffc4e7e7fab999961d5e24d36"
+UNINATIVE_CHECKSUM[x86_64] ?= "d07916b95c419c81541a19c8ef0ed8cbd78ae18437ff28a4c8a60ef40518e423"
diff --git a/meta/conf/documentation.conf b/meta/conf/documentation.conf
index 0b21d1f63e..eee3c43ff2 100644
--- a/meta/conf/documentation.conf
+++ b/meta/conf/documentation.conf
@@ -64,6 +64,9 @@ ALTERNATIVE[doc] = "Lists commands in a package that need an alternative binary
ALTERNATIVE_LINK_NAME[doc] = "Used by the alternatives system to map duplicated commands to actual locations."
ALTERNATIVE_PRIORITY[doc] = "Used by the alternatives system to create default priorities for duplicated commands."
ALTERNATIVE_TARGET[doc] = "Used by the alternatives system to create default link locations for duplicated commands."
+ANY_OF_COMBINED_FEATURES[doc] = "When a recipe inherits the features_check class, at least one item in this variable must be included in COMBINED_FEATURES."
+ANY_OF_DISTRO_FEATURES[doc] = "When a recipe inherits the features_check class, at least one item in this variable must be included in DISTRO_FEATURES."
+ANY_OF_MACHINE_FEATURES[doc] = "When a recipe inherits the features_check class, at least one item in this variable must be included in MACHINE_FEATURES."
ASSUME_PROVIDED[doc] = "List of packages (recipes actually) that are assumed to be implicitly available. BitBake does not build these packages."
ASSUME_SHLIBS[doc] = "List of shlib:package[_version] mappings. Useful for lib packages in ASSUME_PROVIDED, for which automatic shlib dependency tracking does not work."
AUTHOR[doc] = "Email address used to contact the original author(s) in order to send patches and forward bugs."
@@ -114,11 +117,12 @@ COMPATIBLE_MACHINE[doc] = "A regular expression that resolves to one or more tar
COMPLEMENTARY_GLOB[doc] = "Defines wildcards to match when installing a list of complementary packages for all the packages installed in an image."
CONFFILES[doc] = "Identifies editable or configurable files that are part of a package."
CONFIG_SITE[doc] = "A list of files that contains autoconf test results relevant to the current build. This variable is used by the Autotools utilities when running configure."
-CONFLICT_DISTRO_FEATURES[doc] = "When a recipe inherits the features_check class, this variable identifies distribution features that would be in conflict should the recipe be built."
+CONFLICT_COMBINED_FEATURES[doc] = "When a recipe inherits the features_check class, no item in this variable can be included in COMBINED_FEATURES."
+CONFLICT_DISTRO_FEATURES[doc] = "When a recipe inherits the features_check class, no item in this variable can be included in DISTRO_FEATURES."
+CONFLICT_MACHINE_FEATURES[doc] = "When a recipe inherits the features_check class, no item in this variable can be included in MACHINE_FEATURES."
CORE_IMAGE_EXTRA_INSTALL[doc] = "Specifies the list of packages to be added to the image. You should only set this variable in the conf/local.conf file in the Build Directory."
COREBASE[doc] = "Specifies the parent directory of the OpenEmbedded Core Metadata layer (i.e. meta)."
CONF_VERSION[doc] = "Tracks the version of local.conf. Increased each time build/conf/ changes incompatibly."
-CVSDIR[doc] = "The directory where cvs checkouts will be stored in."
#D
@@ -178,7 +182,6 @@ FULL_OPTIMIZATION[doc]= "The options to pass in TARGET_CFLAGS and CFLAGS when co
#G
-GITDIR[doc] = "The directory where Git clones will be stored."
GROUPADD_PARAM[doc] = "When a recipe inherits the useradd class, this variable specifies for a package what parameters should be passed to the groupadd command if you wish to add a group to the system when the package is installed."
GROUPMEMS_PARAM[doc] = "When a recipe inherits the useradd class, this variable specifies for a package what parameters should be passed to the groupmems command if you wish to modify the members of a group when the package is installed."
GRUB_GFXSERIAL[doc] = "Configures the GNU GRand Unified Bootloader (GRUB) to have graphics and serial in the boot menu."
@@ -308,7 +311,6 @@ PACKAGE_BEFORE_PN[doc] = "Enables easily adding packages to PACKAGES before ${PN
PACKAGE_CLASSES[doc] = "This variable specifies the package manager to use when packaging data. It is set in the conf/local.conf file in the Build Directory."
PACKAGE_EXCLUDE[doc] = "Packages to exclude from the installation. If a listed package is required, an error is generated."
PACKAGE_EXTRA_ARCHS[doc] = "Specifies the list of architectures compatible with the device CPU. This variable is useful when you build for several different devices that use miscellaneous processors."
-PACKAGE_GROUP[doc] = "Defines one or more packages to include in an image when a specific item is included in IMAGE_FEATURES."
PACKAGE_INSTALL[doc] = "List of the packages to be installed into the image. The variable is generally not user-defined and uses IMAGE_INSTALL as part of the list."
PACKAGE_INSTALL_ATTEMPTONLY[doc] = "List of packages attempted to be installed. If a listed package fails to install, the build system does not generate an error. This variable is generally not user-defined."
PACKAGECONFIG[doc] = "This variable provides a means of enabling or disabling features of a recipe on a per-recipe basis."
@@ -347,7 +349,9 @@ QMAKE_PROFILES[doc] = "Specifies your own subset of .pro files to be built for u
RCONFLICTS[doc] = "The list of packages that conflict with another package. Note that the package will not be installed if the conflicting packages are not first removed."
RDEPENDS[doc] = "Lists a package's runtime dependencies (i.e. other packages) that must be installed for the package to be built. They must be the names of other packages as listed in the PACKAGES variable, not recipe names (PN)."
-REQUIRED_DISTRO_FEATURES[doc] = "When a recipe inherits the features_check class, this variable identifies distribution features that must exist in the current configuration in order for the OpenEmbedded build system to build the recipe."
+REQUIRED_COMBINED_FEATURES[doc] = "When a recipe inherits the features_check class, all items in this variable must be included in COMBINED_FEATURES."
+REQUIRED_DISTRO_FEATURES[doc] = "When a recipe inherits the features_check class, all items in this variable must be included in DISTRO_FEATURES."
+REQUIRED_MACHINE_FEATURES[doc] = "When a recipe inherits the features_check class, all items in this variable must be included in MACHINE_FEATURES."
RM_WORK_EXCLUDE[doc] = "With rm_work enabled, this variable specifies a list of packages whose work directories should not be removed."
ROOTFS[doc] = "Indicates a filesystem image to include as the root filesystem."
ROOTFS_POSTPROCESS_COMMAND[doc] = "Added by classes to run post processing commands once the OpenEmbedded build system has created the root filesystem."
@@ -393,7 +397,6 @@ STAGING_KERNEL_DIR[doc] = "The directory with kernel headers that are required t
STAMP[doc] = "Specifies the base path used to create recipe stamp files. The path to an actual stamp file is constructed by evaluating this string and then appending additional information."
STAMPS_DIR[doc] = "Specifies the base directory in which the OpenEmbedded build system places stamps."
SUMMARY[doc] = "The short (80 characters or less) summary of the binary package for packaging systems such as opkg, rpm or dpkg. By default, SUMMARY is used to define the DESCRIPTION variable if DESCRIPTION is not set in the recipe."
-SVNDIR[doc] = "The directory where Subversion checkouts will be stored."
SYSLINUX_DEFAULT_CONSOLE[doc] = "Specifies the kernel boot default console."
SYSLINUX_OPTS[doc] = "Lists additional options to add to the syslinux file."
SYSLINUX_SERIAL[doc] = "Specifies the alternate serial port or turns it off."
diff --git a/meta/conf/layer.conf b/meta/conf/layer.conf
index fcdf9ae5a3..2d9cd05695 100644
--- a/meta/conf/layer.conf
+++ b/meta/conf/layer.conf
@@ -7,12 +7,12 @@ BBFILE_COLLECTIONS += "core"
BBFILE_PATTERN_core = "^${LAYERDIR}/"
BBFILE_PRIORITY_core = "5"
-LAYERSERIES_CORENAMES = "zeus"
+LAYERSERIES_CORENAMES = "gatesgarth"
# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
-LAYERVERSION_core = "11"
-LAYERSERIES_COMPAT_core = "warrior zeus"
+LAYERVERSION_core = "12"
+LAYERSERIES_COMPAT_core = "gatesgarth"
BBLAYERS_LAYERINDEX_NAME_core = "openembedded-core"
@@ -43,6 +43,8 @@ SIGGEN_EXCLUDERECIPES_ABISAFE += " \
opkg-utils \
gstreamer1.0-meta-base \
ca-certificates \
+ shared-mime-info \
+ desktop-file-utils \
"
SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
@@ -69,6 +71,7 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
grub-efi->grub-bootconf \
liberation-fonts->fontconfig \
cantarell-fonts->fontconfig \
+ ttf-bitstream-vera->fontconfig \
gnome-icon-theme->librsvg \
font-alias->font-util \
systemd-boot->systemd-bootconf \
@@ -78,6 +81,8 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
weston-init->kbd \
connman->xl2tpd \
lttng-tools->lttng-modules \
+ adwaita-icon-theme->gdk-pixbuf \
+ adwaita-icon-theme->gtk+3 \
"
# Avoid adding bison-native to the sysroot without a specific
@@ -86,7 +91,7 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
# dependency incidentally. This improves determinism and avoids build
# failures when people switch to external toolchains.
SSTATE_EXCLUDEDEPS_SYSROOT += ".*->bison-native"
-# Nothing needs to depend on libc-initial/gcc-cross-initial
+# Nothing needs to depend on libc-initial
# base-passwd/shadow-sysroot don't need their dependencies
SSTATE_EXCLUDEDEPS_SYSROOT += "\
.*->.*-initial.* \
@@ -97,4 +102,6 @@ SSTATE_EXCLUDEDEPS_SYSROOT += "\
SSTATE_EXCLUDEDEPS_SYSROOT += ".*->autoconf-archive-native"
# We need to keep bitbake tools in PATH
-PATH := "${@os.path.dirname(bb.utils.which(d.getVar('PATH'),'bitbake'))}:${HOSTTOOLS_DIR}"
+# Avoid empty path entries
+BITBAKEPATH := "${@os.path.dirname(bb.utils.which(d.getVar('PATH'),'bitbake'))}"
+PATH := "${@'${BITBAKEPATH}:' if '${BITBAKEPATH}' is not '' else ''}${HOSTTOOLS_DIR}"
diff --git a/meta/conf/licenses.conf b/meta/conf/licenses.conf
index 751424d1b6..5b309eb385 100644
--- a/meta/conf/licenses.conf
+++ b/meta/conf/licenses.conf
@@ -45,9 +45,11 @@ SPDXLICENSEMAP[MIT-style] = "MIT"
#Openssl variations
SPDXLICENSEMAP[openssl] = "OpenSSL"
+#PSF variations
+SPDXLICENSEMAP[PSF] = "PSF-2.0"
+SPDXLICENSEMAP[PSFv2] = "PSF-2.0"
+
#Python variations
-SPDXLICENSEMAP[PSF] = "Python-2.0"
-SPDXLICENSEMAP[PSFv2] = "Python-2.0"
SPDXLICENSEMAP[Python-2] = "Python-2.0"
#Apache variations
diff --git a/meta/conf/local.conf.sample b/meta/conf/local.conf.sample
index 783d2c4c16..22d43b20d4 100644
--- a/meta/conf/local.conf.sample
+++ b/meta/conf/local.conf.sample
@@ -170,7 +170,7 @@ PATCHRESOLVE = "noop"
# shutdown the build. If there is less that 100MB or 1K inodes, perform a hard abort
# of the build. The reason for this is that running completely out of space can corrupt
# files and damages the build in ways which may not be easily recoverable.
-# It's necesary to monitor /tmp, if there is no space left the build will fail
+# It's necessary to monitor /tmp, if there is no space left the build will fail
# with very exotic errors.
BB_DISKMON_DIRS ??= "\
STOPTASKS,${TMPDIR},1G,100K \
@@ -226,6 +226,16 @@ PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
#BB_HASHSERVE = "auto"
#BB_SIGNATURE_HANDLER = "OEEquivHash"
+#
+# Memory Resident Bitbake
+#
+# Bitbake's server component can stay in memory after the UI for the current command
+# has completed. This means subsequent commands can run faster since there is no need
+# for bitbake to reload cache files and so on. Number is in seconds, after which the
+# server will shut down.
+#
+#BB_SERVER_TIMEOUT = "60"
+
# CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to
# track the version of this file when it was generated. This can safely be ignored if
# this doesn't mean anything to you.
diff --git a/meta/conf/local.conf.sample.extended b/meta/conf/local.conf.sample.extended
index 443b4e83f9..420b09b7d7 100644
--- a/meta/conf/local.conf.sample.extended
+++ b/meta/conf/local.conf.sample.extended
@@ -129,9 +129,6 @@
#This enable mklibs library size optimization will be for all the images.
#MKLIBS_OPTIMIZED_IMAGES ?= "all"
-# Uncomment this if your host distribution provides the help2man tool.
-#ASSUME_PROVIDED += "help2man-native"
-
# This value is currently used by pseudo to determine if the recipe should
# build both the 32-bit and 64-bit wrapper libraries on a 64-bit build system.
#
@@ -310,7 +307,7 @@
# will correct this condition.
#
# By default the system looks in the BBPATH for files/passwd and files/group
-# the default can be overriden by spefying USERADD_UID/GID_TABLES.
+# the default can be overridden by specifying USERADD_UID/GID_TABLES.
#
#USERADDEXTENSION = "useradd-staticids"
#USERADD_UID_TABLES = "files/passwd"
diff --git a/meta/conf/machine/include/arm/arch-arm64.inc b/meta/conf/machine/include/arm/arch-arm64.inc
index 53f4566815..eab3323ec6 100644
--- a/meta/conf/machine/include/arm/arch-arm64.inc
+++ b/meta/conf/machine/include/arm/arch-arm64.inc
@@ -3,15 +3,18 @@ DEFAULTTUNE ?= "aarch64"
require conf/machine/include/arm/arch-armv7ve.inc
TUNEVALID[aarch64] = "Enable instructions for aarch64"
+TUNECONFLICTS[aarch64] = "armv4 armv5 armv6 armv7 armv7a"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', 'aarch64:', '' ,d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', 'aarch64:', '', d)}"
# Little Endian base configs
AVAILTUNES += "aarch64 aarch64_be"
ARMPKGARCH_tune-aarch64 ?= "aarch64"
-ARMPKGARCH_tune-aarch64_be ?= "aarch64_be"
+ARMPKGARCH_tune-aarch64_be ?= "aarch64"
TUNE_FEATURES_tune-aarch64 = "aarch64"
TUNE_FEATURES_tune-aarch64_be = "${TUNE_FEATURES_tune-aarch64} bigendian"
+TUNE_PKGARCH_64_tune-aarch64 = "aarch64"
+TUNE_PKGARCH_64_tune-aarch64_be = "aarch64_be"
BASE_LIB_tune-aarch64 = "lib64"
BASE_LIB_tune-aarch64_be = "lib64"
@@ -20,7 +23,7 @@ PACKAGE_EXTRA_ARCHS_tune-aarch64_be = "aarch64_be"
ARMPKGSFX_ENDIAN_64 = "${@bb.utils.contains('TUNE_FEATURES', 'bigendian', '_be', '', d)}"
TUNE_ARCH_64 = "aarch64${ARMPKGSFX_ENDIAN_64}"
-TUNE_PKGARCH_64 = "aarch64${ARMPKGSFX_ENDIAN_64}"
+TUNE_PKGARCH_64 = "${ARMPKGARCH}${ARMPKGSFX_ENDIAN_64}"
ABIEXTENSION_64 = ""
TARGET_FPU_64 = ""
@@ -30,7 +33,7 @@ TUNE_PKGARCH_32 = "${ARMPKGARCH}${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}${ARMPKGSFX_EA
ABIEXTENSION_32 = "eabi"
TARGET_FPU_32 = "${@d.getVar('TUNE_CCARGS_MFLOAT') or 'soft'}"
-TUNE_ARCH = "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '${TUNE_ARCH_64}', '${TUNE_ARCH_32}' ,d)}"
-TUNE_PKGARCH = "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '${TUNE_PKGARCH_64}', '${TUNE_PKGARCH_32}' ,d)}"
-ABIEXTENSION = "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '${ABIEXTENSION_64}', '${ABIEXTENSION_32}' ,d)}"
-TARGET_FPU = "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '${TARGET_FPU_64}', '${TARGET_FPU_32}' ,d)}"
+TUNE_ARCH = "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '${TUNE_ARCH_64}', '${TUNE_ARCH_32}', d)}"
+TUNE_PKGARCH = "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '${TUNE_PKGARCH_64}', '${TUNE_PKGARCH_32}', d)}"
+ABIEXTENSION = "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '${ABIEXTENSION_64}', '${ABIEXTENSION_32}', d)}"
+TARGET_FPU = "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '${TARGET_FPU_64}', '${TARGET_FPU_32}', d)}"
diff --git a/meta/conf/machine/include/arm/arch-armv4.inc b/meta/conf/machine/include/arm/arch-armv4.inc
index 47a7ad2830..fac2bdf952 100644
--- a/meta/conf/machine/include/arm/arch-armv4.inc
+++ b/meta/conf/machine/include/arm/arch-armv4.inc
@@ -10,7 +10,7 @@ FIX_V4BX_ARMV4 = "${@bb.utils.contains('TUNE_FEATURES', 'armv4', '--fix-v4bx', '
FIX_V4BX_ARMV5 = "${@bb.utils.contains('TUNE_FEATURES', 'armv5', '', '${FIX_V4BX_ARMV4}', d)}"
FIX_V4BX = "${@bb.utils.contains('TUNE_FEATURES', 'thumb', '', '${FIX_V4BX_ARMV5}', d)}"
TARGET_LD_KERNEL_ARCH += "${FIX_V4BX}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv4', 'armv4:', '' ,d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv4', 'armv4:', '', d)}"
require conf/machine/include/arm/arch-arm.inc
require conf/machine/include/arm/feature-arm-thumb.inc
diff --git a/meta/conf/machine/include/arm/arch-armv5.inc b/meta/conf/machine/include/arm/arch-armv5.inc
index f9068af9de..52d8590165 100644
--- a/meta/conf/machine/include/arm/arch-armv5.inc
+++ b/meta/conf/machine/include/arm/arch-armv5.inc
@@ -3,7 +3,7 @@ DEFAULTTUNE ?= "armv5"
TUNEVALID[armv5] = "Enable instructions for ARMv5"
TUNECONFLICTS[armv5] = "armv4"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv5', ' -march=armv5t${ARMPKGSFX_DSP}', '', d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv5', 'armv5:', '' ,d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv5', 'armv5:', '', d)}"
require conf/machine/include/arm/arch-armv4.inc
require conf/machine/include/arm/feature-arm-vfp.inc
diff --git a/meta/conf/machine/include/arm/arch-armv6.inc b/meta/conf/machine/include/arm/arch-armv6.inc
index 6c838e999c..7531890e2e 100644
--- a/meta/conf/machine/include/arm/arch-armv6.inc
+++ b/meta/conf/machine/include/arm/arch-armv6.inc
@@ -3,7 +3,7 @@ DEFAULTTUNE ?= "armv6hf"
TUNEVALID[armv6] = "Enable instructions for ARMv6"
TUNECONFLICTS[armv6] = "armv4 armv5"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv6', ' -march=armv6', '', d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv6', 'armv6:', '' ,d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv6', 'armv6:', '', d)}"
require conf/machine/include/arm/arch-armv5-dsp.inc
diff --git a/meta/conf/machine/include/arm/arch-armv6m.inc b/meta/conf/machine/include/arm/arch-armv6m.inc
new file mode 100755
index 0000000000..739550d005
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv6m.inc
@@ -0,0 +1,19 @@
+# Tuning for ARMV6-m defined in ARM v6-M ArchitectureReference Manual
+# at https://static.docs.arm.com/ddi0419/d/DDI0419D_armv6m_arm.pdf
+DEFAULTTUNE ?= "armv6m"
+
+TUNEVALID[armv6m] = "Enable instructions for ARMv6-m"
+TUNECONFLICTS[armv6m] = "armv4 armv5 armv6 armv7a"
+
+# Use armv6s-m instead of armv6-m to avoid gcc bug "SVC is not permitted on this architecture".
+# SVC is a valid instruction.
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv6m', ' -march=armv6s-m', '', d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv6m', 'armv6m:', '', d)}"
+
+require conf/machine/include/arm/arch-armv5.inc
+
+# Little Endian
+AVAILTUNES += "armv6m"
+ARMPKGARCH_tune-armv6m = "armv6m"
+TUNE_FEATURES_tune-armv6m = "armv6m"
+PACKAGE_EXTRA_ARCHS_tune-armv6m = "armv6m"
diff --git a/meta/conf/machine/include/arm/arch-armv7a.inc b/meta/conf/machine/include/arm/arch-armv7a.inc
index 199e63f98a..ce87af5306 100644
--- a/meta/conf/machine/include/arm/arch-armv7a.inc
+++ b/meta/conf/machine/include/arm/arch-armv7a.inc
@@ -4,7 +4,7 @@ ARM_INSTRUCTION_SET ?= "thumb"
TUNEVALID[armv7a] = "Enable instructions for ARMv7-a"
TUNECONFLICTS[armv7a] = "armv4 armv5 armv6 armv7"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7a', ' -march=armv7-a', '', d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7a', 'armv7a:', '' ,d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7a', 'armv7a:', '', d)}"
require conf/machine/include/arm/arch-armv6.inc
require conf/machine/include/arm/feature-arm-neon.inc
@@ -120,7 +120,7 @@ PACKAGE_EXTRA_ARCHS_tune-armv7atb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7
PACKAGE_EXTRA_ARCHS_tune-armv7ab-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ab-vfpv3d16} armv7ab-vfpv3"
PACKAGE_EXTRA_ARCHS_tune-armv7atb-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7atb-vfpv3d16} armv7ab-vfpv3 armv7at2b-vfpv3"
PACKAGE_EXTRA_ARCHS_tune-armv7ab-vfpv4d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ab} armv7ab-vfpv4d16"
-PACKAGE_EXTRA_ARCHS_tune-armv7atb-vfp43d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7atb} armv7ab-vfpv4d16 armv7at2b-vfpv4d16"
+PACKAGE_EXTRA_ARCHS_tune-armv7atb-vfpv4d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7atb} armv7ab-vfpv4d16 armv7at2b-vfpv4d16"
PACKAGE_EXTRA_ARCHS_tune-armv7ab-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ab} armv7ab-neon"
PACKAGE_EXTRA_ARCHS_tune-armv7atb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7atb} armv7ab-neon armv7at2b-neon"
PACKAGE_EXTRA_ARCHS_tune-armv7ab-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ab-neon} armv7ab-neon-vfpv4"
diff --git a/meta/conf/machine/include/arm/arch-armv7ve.inc b/meta/conf/machine/include/arm/arch-armv7ve.inc
index fc172d0cb0..d9d92f612b 100644
--- a/meta/conf/machine/include/arm/arch-armv7ve.inc
+++ b/meta/conf/machine/include/arm/arch-armv7ve.inc
@@ -3,7 +3,7 @@ DEFAULTTUNE ?= "armv7vethf"
TUNEVALID[armv7ve] = "Enable instructions for ARMv7ve"
TUNECONFLICTS[armv7ve] = "armv4 armv5 armv6 armv7 armv7a"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', ' -march=armv7ve', '', d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', 'armv7ve:', '' ,d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', 'armv7ve:', '', d)}"
require conf/machine/include/arm/arch-armv7a.inc
diff --git a/meta/conf/machine/include/arm/arch-armv8-2a.inc b/meta/conf/machine/include/arm/arch-armv8-2a.inc
new file mode 100644
index 0000000000..4129689cf9
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv8-2a.inc
@@ -0,0 +1,19 @@
+DEFAULTTUNE ?= "armv8-2a"
+
+TUNEVALID[armv8-2a] = "Enable instructions for ARMv8-a"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-2a', ' -march=armv8.2-a', '', d)}"
+# TUNE crypto will be handled by arch-armv8a.inc below
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-2a', 'armv8-2a:', '', d)}"
+
+require conf/machine/include/arm/arch-armv8a.inc
+
+# Little Endian base configs
+AVAILTUNES += "armv8-2a armv8-2a-crypto"
+ARMPKGARCH_tune-armv8-2a ?= "armv8-2a"
+ARMPKGARCH_tune-armv8-2a-crypto ?= "armv8-2a"
+TUNE_FEATURES_tune-armv8-2a = "aarch64 armv8-2a"
+TUNE_FEATURES_tune-armv8-2a-crypto = "${TUNE_FEATURES_tune-armv8-2a} crypto"
+PACKAGE_EXTRA_ARCHS_tune-armv8-2a = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8-2a"
+PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a} armv8-2a-crypto"
+BASE_LIB_tune-armv8-2a = "lib64"
+BASE_LIB_tune-armv8-2a-crypto = "lib64"
diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc
index f810a1e8fc..6e92bdb7a4 100644
--- a/meta/conf/machine/include/arm/arch-armv8a.inc
+++ b/meta/conf/machine/include/arm/arch-armv8a.inc
@@ -6,7 +6,7 @@ TUNEVALID[crc] = "Enable instructions for ARMv8-a Cyclic Redundancy Check (CRC)"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'crc', '+crc', '', d)}"
TUNEVALID[crypto] = "Enable instructions for ARMv8-a cryptographic"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'crypto', '+crypto', '', d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', 'armv8a:', '' ,d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', 'armv8a:', '', d)}"
require conf/machine/include/arm/arch-arm64.inc
diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa65.inc b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa65.inc
new file mode 100644
index 0000000000..427e58947f
--- /dev/null
+++ b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa65.inc
@@ -0,0 +1,16 @@
+#
+# Tune Settings for Cortex-A65
+#
+DEFAULTTUNE ?= "cortexa65"
+
+TUNEVALID[cortexa65] = "Enable Cortex-A65 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa65', ' -mcpu=cortex-a65', '', d)}"
+
+require conf/machine/include/arm/arch-armv8-2a.inc
+
+# Little Endian base configs
+AVAILTUNES += "cortexa65"
+ARMPKGARCH_tune-cortexa65 = "cortexa65"
+TUNE_FEATURES_tune-cortexa65 = "${TUNE_FEATURES_tune-armv8-2a-crypto} cortexa65"
+PACKAGE_EXTRA_ARCHS_tune-cortexa65 = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa65"
+BASE_LIB_tune-cortexa65 = "lib64"
diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa65ae.inc b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa65ae.inc
new file mode 100644
index 0000000000..aea47d0778
--- /dev/null
+++ b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa65ae.inc
@@ -0,0 +1,16 @@
+#
+# Tune Settings for Cortex-A65AE
+#
+DEFAULTTUNE ?= "cortexa65ae"
+
+TUNEVALID[cortexa65ae] = "Enable Cortex-A65AE specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa65ae', ' -mcpu=cortex-a65ae', '', d)}"
+
+require conf/machine/include/arm/arch-armv8-2a.inc
+
+# Little Endian base configs
+AVAILTUNES += "cortexa65ae"
+ARMPKGARCH_tune-cortexa65ae = "cortexa65ae"
+TUNE_FEATURES_tune-cortexa65ae = "${TUNE_FEATURES_tune-armv8-2a-crypto} cortexa65ae"
+PACKAGE_EXTRA_ARCHS_tune-cortexa65ae = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa65ae"
+BASE_LIB_tune-cortexa65ae = "lib64"
diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa75-cortexa55.inc b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa75-cortexa55.inc
new file mode 100644
index 0000000000..9c45fe9c96
--- /dev/null
+++ b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa75-cortexa55.inc
@@ -0,0 +1,20 @@
+#
+# Tune Settings for big.LITTLE Cortex-A75 - Cortex-A55
+#
+DEFAULTTUNE ?= "cortexa75-cortexa55"
+
+TUNEVALID[cortexa75-cortexa55] = "Enable big.LITTLE Cortex-A75.Cortex-A55 specific processor optimizations"
+MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "cortexa75-cortexa55", "cortexa75-cortexa55:", "", d)}"
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa75-cortexa55", " -mcpu=cortex-a75.cortex-a55", "", d)}"
+
+require conf/machine/include/arm/arch-armv8-2a.inc
+
+AVAILTUNES += "cortexa75-cortexa55 cortexa75-cortexa55-crypto"
+ARMPKGARCH_tune-cortexa75-cortexa55 = "cortexa75-cortexa55"
+ARMPKGARCH_tune-cortexa75-cortexa55-crypto = "cortexa75-cortexa55-crypto"
+TUNE_FEATURES_tune-cortexa75-cortexa55 = "${TUNE_FEATURES_tune-armv8-2a} cortexa75-cortexa55"
+TUNE_FEATURES_tune-cortexa75-cortexa55-crypto = "${TUNE_FEATURES_tune-cortexa75-cortexa55} crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa75-cortexa55 = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a} cortexa75-cortexa55"
+PACKAGE_EXTRA_ARCHS_tune-cortexa75-cortexa55-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa75-cortexa55 cortexa75-cortexa55-crypto"
+BASE_LIB_tune-cortexa75-cortexa55 = "lib64"
+BASE_LIB_tune-cortexa75-cortexa55-crypto = "lib64"
diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa75.inc b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa75.inc
new file mode 100644
index 0000000000..d019450da7
--- /dev/null
+++ b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa75.inc
@@ -0,0 +1,16 @@
+#
+# Tune Settings for Cortex-A75
+#
+DEFAULTTUNE ?= "cortexa75"
+
+TUNEVALID[cortexa75] = "Enable Cortex-A75 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa75', ' -mcpu=cortex-a75', '', d)}"
+
+require conf/machine/include/arm/arch-armv8-2a.inc
+
+# Little Endian base configs
+AVAILTUNES += "cortexa75"
+ARMPKGARCH_tune-cortexa75 = "cortexa75"
+TUNE_FEATURES_tune-cortexa75 = "${TUNE_FEATURES_tune-armv8-2a-crypto} cortexa75"
+PACKAGE_EXTRA_ARCHS_tune-cortexa75 = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa75"
+BASE_LIB_tune-cortexa75 = "lib64"
diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa76-cortexa55.inc b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa76-cortexa55.inc
new file mode 100644
index 0000000000..cae8ffed74
--- /dev/null
+++ b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa76-cortexa55.inc
@@ -0,0 +1,20 @@
+#
+# Tune Settings for big.LITTLE Cortex-A76 - Cortex-A55
+#
+DEFAULTTUNE ?= "cortexa76-cortexa55"
+
+TUNEVALID[cortexa76-cortexa55] = "Enable big.LITTLE Cortex-A76.Cortex-A55 specific processor optimizations"
+MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "cortexa76-cortexa55", "cortexa76-cortexa55:", "", d)}"
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa76-cortexa55", " -mcpu=cortex-a76.cortex-a55", "", d)}"
+
+require conf/machine/include/arm/arch-armv8-2a.inc
+
+AVAILTUNES += "cortexa76-cortexa55 cortexa76-cortexa55-crypto"
+ARMPKGARCH_tune-cortexa76-cortexa55 = "cortexa76-cortexa55"
+ARMPKGARCH_tune-cortexa76-cortexa55-crypto = "cortexa76-cortexa55-crypto"
+TUNE_FEATURES_tune-cortexa76-cortexa55 = "${TUNE_FEATURES_tune-armv8-2a} cortexa76-cortexa55"
+TUNE_FEATURES_tune-cortexa76-cortexa55-crypto = "${TUNE_FEATURES_tune-cortexa76-cortexa55} crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa76-cortexa55 = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a} cortexa76-cortexa55"
+PACKAGE_EXTRA_ARCHS_tune-cortexa76-cortexa55-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa76-cortexa55 cortexa76-cortexa55-crypto"
+BASE_LIB_tune-cortexa76-cortexa55 = "lib64"
+BASE_LIB_tune-cortexa76-cortexa55-crypto = "lib64"
diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa76.inc b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa76.inc
new file mode 100644
index 0000000000..ae3661a0c4
--- /dev/null
+++ b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa76.inc
@@ -0,0 +1,16 @@
+#
+# Tune Settings for Cortex-A76
+#
+DEFAULTTUNE ?= "cortexa76"
+
+TUNEVALID[cortexa76] = "Enable Cortex-A76 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa76', ' -mcpu=cortex-a76', '', d)}"
+
+require conf/machine/include/arm/arch-armv8-2a.inc
+
+# Little Endian base configs
+AVAILTUNES += "cortexa76"
+ARMPKGARCH_tune-cortexa76 = "cortexa76"
+TUNE_FEATURES_tune-cortexa76 = "${TUNE_FEATURES_tune-armv8-2a-crypto} cortexa76"
+PACKAGE_EXTRA_ARCHS_tune-cortexa76 = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa76"
+BASE_LIB_tune-cortexa76 = "lib64"
diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa76ae.inc b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa76ae.inc
new file mode 100644
index 0000000000..8d5a0ef5e2
--- /dev/null
+++ b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa76ae.inc
@@ -0,0 +1,16 @@
+#
+# Tune Settings for Cortex-A76AE
+#
+DEFAULTTUNE ?= "cortexa76ae"
+
+TUNEVALID[cortexa76ae] = "Enable Cortex-A76AE specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa76ae', ' -mcpu=cortex-a76ae', '', d)}"
+
+require conf/machine/include/arm/arch-armv8-2a.inc
+
+# Little Endian base configs
+AVAILTUNES += "cortexa76ae"
+ARMPKGARCH_tune-cortexa76ae = "cortexa76ae"
+TUNE_FEATURES_tune-cortexa76ae = "${TUNE_FEATURES_tune-armv8-2a-crypto} cortexa76ae"
+PACKAGE_EXTRA_ARCHS_tune-cortexa76ae = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa76ae"
+BASE_LIB_tune-cortexa76ae = "lib64"
diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa77.inc b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa77.inc
new file mode 100644
index 0000000000..048fa319e2
--- /dev/null
+++ b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa77.inc
@@ -0,0 +1,16 @@
+#
+# Tune Settings for Cortex-A77
+#
+DEFAULTTUNE ?= "cortexa77"
+
+TUNEVALID[cortexa77] = "Enable Cortex-A77 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa77', ' -mcpu=cortex-a77', '', d)}"
+
+require conf/machine/include/arm/arch-armv8-2a.inc
+
+# Little Endian base configs
+AVAILTUNES += "cortexa77"
+ARMPKGARCH_tune-cortexa77 = "cortexa77"
+TUNE_FEATURES_tune-cortexa77 = "${TUNE_FEATURES_tune-armv8-2a-crypto} cortexa77"
+PACKAGE_EXTRA_ARCHS_tune-cortexa77 = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa77"
+BASE_LIB_tune-cortexa77 = "lib64"
diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-neoversee1.inc b/meta/conf/machine/include/arm/armv8-2a/tune-neoversee1.inc
new file mode 100644
index 0000000000..b82c9acb6c
--- /dev/null
+++ b/meta/conf/machine/include/arm/armv8-2a/tune-neoversee1.inc
@@ -0,0 +1,16 @@
+#
+# Tune Settings for Neoverse-E1
+#
+DEFAULTTUNE ?= "neoversee1"
+
+TUNEVALID[neoversee1] = "Enable Neoverse-E1 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'neoversee1', ' -mcpu=neoverse-e1', '', d)}"
+
+require conf/machine/include/arm/arch-armv8-2a.inc
+
+# Little Endian base configs
+AVAILTUNES += "neoversee1"
+ARMPKGARCH_tune-neoversee1 = "neoversee1"
+TUNE_FEATURES_tune-neoversee1 = "${TUNE_FEATURES_tune-armv8-2a-crypto} neoversee1"
+PACKAGE_EXTRA_ARCHS_tune-neoversee1 = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} neoversee1"
+BASE_LIB_tune-neoversee1 = "lib64"
diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-neoversen1.inc b/meta/conf/machine/include/arm/armv8-2a/tune-neoversen1.inc
new file mode 100644
index 0000000000..6c6e889c0f
--- /dev/null
+++ b/meta/conf/machine/include/arm/armv8-2a/tune-neoversen1.inc
@@ -0,0 +1,17 @@
+#
+# Tune Settings for Neoverse-N1
+#
+DEFAULTTUNE ?= "neoversen1"
+
+TUNEVALID[neoversen1] = "Enable Neoverse-N1 specific processor optimizations"
+# Note: Neoverse was called Ares, and GCC will accept "ares" in place of "neoverse-n1"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'neoversen1', ' -mcpu=neoverse-n1', '', d)}"
+
+require conf/machine/include/arm/arch-armv8-2a.inc
+
+# Little Endian base configs
+AVAILTUNES += "neoversen1"
+ARMPKGARCH_tune-neoversen1 = "neoversen1"
+TUNE_FEATURES_tune-neoversen1 = "${TUNE_FEATURES_tune-armv8-2a-crypto} neoversen1"
+PACKAGE_EXTRA_ARCHS_tune-neoversen1 = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} neoversen1"
+BASE_LIB_tune-neoversen1 = "lib64"
diff --git a/meta/conf/machine/include/arm/armv8a/tune-cortexa34.inc b/meta/conf/machine/include/arm/armv8a/tune-cortexa34.inc
new file mode 100644
index 0000000000..f7d4c87df8
--- /dev/null
+++ b/meta/conf/machine/include/arm/armv8a/tune-cortexa34.inc
@@ -0,0 +1,20 @@
+#
+# Tune Settings for Cortex-A34
+#
+DEFAULTTUNE ?= "cortexa34"
+
+TUNEVALID[cortexa34] = "Enable Cortex-A34 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa34', ' -mcpu=cortex-a34', '', d)}"
+
+require conf/machine/include/arm/arch-armv8a.inc
+
+# Little Endian base configs
+AVAILTUNES += "cortexa34 cortexa34-crypto"
+ARMPKGARCH_tune-cortexa34 = "cortexa34"
+ARMPKGARCH_tune-cortexa34-crypto = "cortexa34"
+TUNE_FEATURES_tune-cortexa34 = "${TUNE_FEATURES_tune-armv8a-crc} cortexa34"
+TUNE_FEATURES_tune-cortexa34-crypto = "${TUNE_FEATURES_tune-cortexa34} crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa34 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa34"
+PACKAGE_EXTRA_ARCHS_tune-cortexa34-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa34 cortexa34-crypto"
+BASE_LIB_tune-cortexa34 = "lib64"
+BASE_LIB_tune-cortexa34-crypto = "lib64"
diff --git a/meta/conf/machine/include/arm/armv8a/tune-cortexa73-cortexa35.inc b/meta/conf/machine/include/arm/armv8a/tune-cortexa73-cortexa35.inc
new file mode 100644
index 0000000000..927296c222
--- /dev/null
+++ b/meta/conf/machine/include/arm/armv8a/tune-cortexa73-cortexa35.inc
@@ -0,0 +1,21 @@
+#
+# Tune Settings for big.LITTLE Cortex-A73 - Cortex-A35
+#
+DEFAULTTUNE ?= "cortexa73-cortexa35"
+
+TUNEVALID[cortexa73-cortexa35] = "Enable big.LITTLE Cortex-A73.Cortex-A35 specific processor optimizations"
+MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "cortexa73-cortexa35", "cortexa73-cortexa35:", "", d)}"
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa73-cortexa35", " -mcpu=cortex-a73.cortex-a35", "", d)}"
+
+require conf/machine/include/arm/arch-armv8a.inc
+
+# cortexa73.cortexa35 implies crc support
+AVAILTUNES += "cortexa73-cortexa35 cortexa73-cortexa35-crypto"
+ARMPKGARCH_tune-cortexa73-cortexa35 = "cortexa73-cortexa35"
+ARMPKGARCH_tune-cortexa73-cortexa35-crypto = "cortexa73-cortexa35-crypto"
+TUNE_FEATURES_tune-cortexa73-cortexa35 = "${TUNE_FEATURES_tune-armv8a-crc} cortexa73-cortexa35"
+TUNE_FEATURES_tune-cortexa73-cortexa35-crypto = "${TUNE_FEATURES_tune-cortexa73-cortexa35} crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa73-cortexa35 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa73-cortexa35"
+PACKAGE_EXTRA_ARCHS_tune-cortexa73-cortexa35-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa73-cortexa35 cortexa73-cortexa35-crypto"
+BASE_LIB_tune-cortexa73-cortexa35 = "lib64"
+BASE_LIB_tune-cortexa73-cortexa35-crypto = "lib64"
diff --git a/meta/conf/machine/include/arm/armv8a/tune-cortexa73.inc b/meta/conf/machine/include/arm/armv8a/tune-cortexa73.inc
new file mode 100644
index 0000000000..ed2deb96b0
--- /dev/null
+++ b/meta/conf/machine/include/arm/armv8a/tune-cortexa73.inc
@@ -0,0 +1,16 @@
+#
+# Tune Settings for Cortex-A73
+#
+DEFAULTTUNE ?= "cortexa73"
+
+TUNEVALID[cortexa73] = "Enable Cortex-A73 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa73', ' -mcpu=cortex-a73', '', d)}"
+
+require conf/machine/include/arm/arch-armv8a.inc
+
+# Little Endian base configs
+AVAILTUNES += "cortexa73"
+ARMPKGARCH_tune-cortexa73 = "cortexa73"
+TUNE_FEATURES_tune-cortexa73 = "${TUNE_FEATURES_tune-armv8a-crc-crypto} cortexa73"
+PACKAGE_EXTRA_ARCHS_tune-cortexa73 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa73"
+BASE_LIB_tune-cortexa73 = "lib64"
diff --git a/meta/conf/machine/include/mips/arch-mips.inc b/meta/conf/machine/include/mips/arch-mips.inc
index 2f625119cb..cb1a4c443c 100644
--- a/meta/conf/machine/include/mips/arch-mips.inc
+++ b/meta/conf/machine/include/mips/arch-mips.inc
@@ -17,7 +17,7 @@ TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'o32', ' -mabi=32', '', d)
TUNEVALID[n32] = "MIPS64 n32 ABI"
TUNECONFLICTS[n32] = "o32 n64"
-ABIEXTENSION .= "${@bb.utils.filter('TUNE_FEATURES', 'n32' ,d)}"
+ABIEXTENSION .= "${@bb.utils.filter('TUNE_FEATURES', 'n32', d)}"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'n32', ' -mabi=n32', '', d)}"
# user mode qemu doesn't support mips64 n32: "Invalid ELF image for this architecture"
@@ -52,13 +52,13 @@ TUNE_ARCH = "mips${MIPSPKGSFX_32R6}${MIPSPKGSFX_64R6}${MIPSPKGSFX_BYTE}${MIPSPKG
TUNE_PKGARCH = "${MIPSPKGSFX_VARIANT_tune-${DEFAULTTUNE}}${MIPSPKGSFX_FPU}${MIPSPKGSFX_ABI}"
# Various Global Machine Overrides
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'n64', 'mipsarchn64${MIPSPKGSFX_ENDIAN2}:', '' ,d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'o32', 'mipsarcho32${MIPSPKGSFX_ENDIAN2}:', '' ,d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'n32', 'mipsarchn32${MIPSPKGSFX_ENDIAN2}:', '' ,d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'n64', 'mipsarchn64:', '' ,d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'o32', 'mipsarcho32:', '' ,d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'n32', 'mipsarchn32:', '' ,d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'r6', 'mipsarchr6:', '' ,d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'n64', 'mipsarchn64${MIPSPKGSFX_ENDIAN2}:', '', d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'o32', 'mipsarcho32${MIPSPKGSFX_ENDIAN2}:', '', d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'n32', 'mipsarchn32${MIPSPKGSFX_ENDIAN2}:', '', d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'n64', 'mipsarchn64:', '', d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'o32', 'mipsarcho32:', '', d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'n32', 'mipsarchn32:', '', d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'r6', 'mipsarchr6:', '', d)}"
MACHINEOVERRIDES =. "mipsarch${MIPSPKGSFX_ENDIAN2}:"
MACHINEOVERRIDES =. "mipsarch:"
@@ -135,7 +135,7 @@ PACKAGE_EXTRA_ARCHS_tune-mips64-o32 = "mips mips64-o32"
TUNE_FEATURES_tune-mips64el-o32 = "o32 fpu-hard"
BASE_LIB_tune-mips64el-o32 = "lib"
MIPSPKGSFX_VARIANT_tune-mips64el-o32 = "${TUNE_ARCH}"
-PACKAGE_EXTRA_ARCHS_tune-mips64el-o32 = "mipsel mips64el-o32 mips64el-o32"
+PACKAGE_EXTRA_ARCHS_tune-mips64el-o32 = "mipsel mips64el-o32"
# MIPS 64 o32 and Soft Float
AVAILTUNES += "mips64-nf-o32 mips64el-nf-o32"
diff --git a/meta/conf/machine/include/qemuboot-mips.inc b/meta/conf/machine/include/qemuboot-mips.inc
index f1f7c2ae20..230f032c53 100644
--- a/meta/conf/machine/include/qemuboot-mips.inc
+++ b/meta/conf/machine/include/qemuboot-mips.inc
@@ -2,9 +2,7 @@
IMAGE_CLASSES += "qemuboot"
QB_MACHINE = "-machine malta"
QB_KERNEL_CMDLINE_APPEND = "console=ttyS0 console=tty"
-QB_OPT_APPEND = "-show-cursor -usb -device usb-tablet"
-# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
-QB_OPT_APPEND += "-object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0"
+QB_OPT_APPEND = "-usb -device usb-tablet"
# For graphics to work we need to define the VGA device as well as the necessary USB devices
QB_OPT_APPEND += "-vga std"
diff --git a/meta/conf/machine/include/qemuboot-x86.inc b/meta/conf/machine/include/qemuboot-x86.inc
index 5dcc8b6f6b..2a4760c717 100644
--- a/meta/conf/machine/include/qemuboot-x86.inc
+++ b/meta/conf/machine/include/qemuboot-x86.inc
@@ -9,7 +9,5 @@ QB_CPU_KVM_x86-64 = "-cpu core2duo"
QB_AUDIO_DRV = "alsa"
QB_AUDIO_OPT = "-soundhw ac97,es1370"
QB_KERNEL_CMDLINE_APPEND = "oprofile.timer=1"
-QB_OPT_APPEND = "-show-cursor -usb -device usb-tablet"
-# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
-QB_OPT_APPEND += "-object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0"
+QB_OPT_APPEND = "-usb -device usb-tablet"
diff --git a/meta/conf/machine/include/riscv/qemuriscv.inc b/meta/conf/machine/include/riscv/qemuriscv.inc
index a42346f361..0e88c91aa6 100644
--- a/meta/conf/machine/include/riscv/qemuriscv.inc
+++ b/meta/conf/machine/include/riscv/qemuriscv.inc
@@ -18,7 +18,7 @@ WKS_FILE ?= "qemuriscv.wks"
MACHINE_EXTRA_RRECOMMENDS += " kernel-modules"
EXTRA_IMAGEDEPENDS += "opensbi"
-RISCV_SBI_PLAT ?= "qemu/virt"
+RISCV_SBI_PLAT ?= "generic"
RISCV_SBI_PAYLOAD ?= "${KERNEL_IMAGETYPE}-${MACHINE}.bin"
UBOOT_ENTRYPOINT_riscv32 = "0x80400000"
@@ -33,6 +33,3 @@ QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@"
QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0"
QB_SERIAL_OPT = "-device virtio-serial-device -chardev null,id=virtcon -device virtconsole,chardev=virtcon"
QB_TCPSERIAL_OPT = " -device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon"
-# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
-QB_OPT_APPEND = " -object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-device,rng=rng0"
-
diff --git a/meta/conf/machine/include/riscv/tune-riscv.inc b/meta/conf/machine/include/riscv/tune-riscv.inc
index 741eeb34db..028548bf56 100644
--- a/meta/conf/machine/include/riscv/tune-riscv.inc
+++ b/meta/conf/machine/include/riscv/tune-riscv.inc
@@ -24,10 +24,10 @@ PACKAGE_EXTRA_ARCHS_tune-riscv32 = "riscv32"
# No float
TUNE_FEATURES_tune-riscv64nf = "${TUNE_FEATURES_tune-riscv64} riscv64nf"
TUNE_ARCH_tune-riscv64nf = "riscv64"
-TUNE_PKGARCH_tune-riscv64nf = "riscv64"
+TUNE_PKGARCH_tune-riscv64nf = "riscv64nf"
PACKAGE_EXTRA_ARCHS_tune-riscv64nf = "riscv64nf"
TUNE_FEATURES_tune-riscv32nf = "${TUNE_FEATURES_tune-riscv32} riscv32nf"
TUNE_ARCH_tune-riscv32nf = "riscv32"
-TUNE_PKGARCH_tune-riscv32nf = "riscv32"
+TUNE_PKGARCH_tune-riscv32nf = "riscv32nf"
PACKAGE_EXTRA_ARCHS_tune-riscv32nf = "riscv32nf"
diff --git a/meta/conf/machine/include/tune-arm1136jf-s.inc b/meta/conf/machine/include/tune-arm1136jf-s.inc
index b25995d495..2bb8c7c154 100644
--- a/meta/conf/machine/include/tune-arm1136jf-s.inc
+++ b/meta/conf/machine/include/tune-arm1136jf-s.inc
@@ -4,13 +4,13 @@ require conf/machine/include/arm/arch-armv6.inc
TUNEVALID[arm1136jfs] = "Enable arm1136jfs specific processor optimizations"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'arm1136jfs', ' -mcpu=arm1136jf-s', '', d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'arm1136jfs', 'armv6:', '' ,d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'arm1136jfs', 'armv6:', '', d)}"
AVAILTUNES += "arm1136jfs arm1136jfshf"
ARMPKGARCH_tune-arm1136jfs = "arm1136jfs"
ARMPKGARCH_tune-arm1136jfshf = "arm1136jfs"
# mcpu is used so don't use armv6 as we don't want march
-TUNE_FEATURES_tune-arm1136jfs = "arm arm1136jfs"
+TUNE_FEATURES_tune-arm1136jfs = "arm vfp arm1136jfs"
TUNE_FEATURES_tune-arm1136jfshf = "${TUNE_FEATURES_tune-arm1136jfs} callconvention-hard"
PACKAGE_EXTRA_ARCHS_tune-arm1136jfs = "${PACKAGE_EXTRA_ARCHS_tune-armv6} arm1136jfs-vfp"
PACKAGE_EXTRA_ARCHS_tune-arm1136jfshf = "${PACKAGE_EXTRA_ARCHS_tune-armv6hf} arm1136jfshf-vfp"
diff --git a/meta/conf/machine/include/tune-arm1176jz-s.inc b/meta/conf/machine/include/tune-arm1176jz-s.inc
index c741e80521..a74781f5e6 100644
--- a/meta/conf/machine/include/tune-arm1176jz-s.inc
+++ b/meta/conf/machine/include/tune-arm1176jz-s.inc
@@ -4,12 +4,12 @@ require conf/machine/include/arm/arch-armv6.inc
TUNEVALID[arm1176jzs] = "Enable arm1176jzs specific processor optimizations"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'arm1176jzs', ' -mcpu=arm1176jz-s', '', d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'arm1176jzs', 'armv6:', '' ,d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'arm1176jzs', 'armv6:', '', d)}"
AVAILTUNES += "arm1176jzs"
ARMPKGARCH_tune-arm1176jzs = "arm1176jzs"
TUNE_FEATURES_tune-arm1176jzs = "arm thumb arm1176jzs"
-PACKAGE_EXTRA_ARCHS_tune-arm1176jzs = "${PACKAGE_EXTRA_ARCHS_tune-armv6tb-novfp} arm1176jzs arm1176jzst"
+PACKAGE_EXTRA_ARCHS_tune-arm1176jzs = "${PACKAGE_EXTRA_ARCHS_tune-armv6t-novfp} arm1176jzs arm1176jzst"
AVAILTUNES += "arm1176jzs-be"
ARMPKGARCH_tune-arm1176jzs-be = "${ARMPKGARCH_tune-arm1176jzs}"
diff --git a/meta/conf/machine/include/tune-arm920t.inc b/meta/conf/machine/include/tune-arm920t.inc
index 42e8ed2b51..62a1a7e858 100644
--- a/meta/conf/machine/include/tune-arm920t.inc
+++ b/meta/conf/machine/include/tune-arm920t.inc
@@ -4,7 +4,7 @@ require conf/machine/include/arm/arch-armv4.inc
TUNEVALID[arm920t] = "Enable arm920t specific processor optimizations"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'arm920t', ' -mcpu=arm920t', '', d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'arm920t', 'armv4:', '' ,d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'arm920t', 'armv4:', '', d)}"
AVAILTUNES += "arm920t"
ARMPKGARCH_tune-arm920t = "arm920t"
diff --git a/meta/conf/machine/include/tune-arm926ejs.inc b/meta/conf/machine/include/tune-arm926ejs.inc
index 563d53bc4e..5f090ba2f8 100644
--- a/meta/conf/machine/include/tune-arm926ejs.inc
+++ b/meta/conf/machine/include/tune-arm926ejs.inc
@@ -4,7 +4,7 @@ require conf/machine/include/arm/arch-armv5-dsp.inc
TUNEVALID[arm926ejs] = "Enable arm926ejs specific processor optimizations"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'arm926ejs', ' -mcpu=arm926ej-s', '', d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'arm926ejs', 'armv5:', '' ,d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'arm926ejs', 'armv5:', '', d)}"
AVAILTUNES += "arm926ejs"
ARMPKGARCH_tune-arm926ejs = "arm926ejs"
diff --git a/meta/conf/machine/include/tune-arm9tdmi.inc b/meta/conf/machine/include/tune-arm9tdmi.inc
index e03a8b86a0..6160664fd0 100644
--- a/meta/conf/machine/include/tune-arm9tdmi.inc
+++ b/meta/conf/machine/include/tune-arm9tdmi.inc
@@ -4,7 +4,7 @@ require conf/machine/include/arm/arch-armv4.inc
TUNEVALID[arm9tdmi] = "Enable arm9tdmi specific processor optimizations"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'arm9tdmi', ' -mcpu=arm9tdmi', '', d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'arm9tdmi', 'armv4:', '' ,d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'arm9tdmi', 'armv4:', '', d)}"
AVAILTUNES += "arm9tdmi"
ARMPKGARCH_tune-arm9tdmi = "arm9tdmi"
diff --git a/meta/conf/machine/include/tune-cortex-m0.inc b/meta/conf/machine/include/tune-cortex-m0.inc
new file mode 100644
index 0000000000..a59c8af941
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortex-m0.inc
@@ -0,0 +1,11 @@
+DEFAULTTUNE ?= "cortexm0"
+require conf/machine/include/arm/arch-armv6m.inc
+
+TUNEVALID[cortexm0] = "Enable Cortex-M0 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm0', ' -mcpu=cortex-m0', '', d)}"
+AVAILTUNES += "cortexm0"
+
+ARMPKGARCH_tune-cortexm0 = "cortexm0"
+TUNE_FEATURES_tune-cortexm0 = "${TUNE_FEATURES_tune-armv6m} cortexm0"
+
+PACKAGE_EXTRA_ARCHS_tune-cortexm0 = "${PACKAGE_EXTRA_ARCHS_tune-armv6m} cortexm0"
diff --git a/meta/conf/machine/include/tune-cortex-m0plus.inc b/meta/conf/machine/include/tune-cortex-m0plus.inc
new file mode 100644
index 0000000000..1c7512b061
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortex-m0plus.inc
@@ -0,0 +1,11 @@
+DEFAULTTUNE ?= "cortexm0-plus"
+require conf/machine/include/arm/arch-armv6m.inc
+
+TUNEVALID[cortexm0-plus] = "Enable Cortex-M0 Plus specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm0-plus', ' -mcpu=cortex-m0plus', '', d)}"
+AVAILTUNES += "cortexm0-plus"
+
+ARMPKGARCH_tune-cortexm0-plus = "cortexm0-plus"
+TUNE_FEATURES_tune-cortexm0-plus = "${TUNE_FEATURES_tune-armv6m} cortexm0-plus"
+
+PACKAGE_EXTRA_ARCHS_tune-cortexm0-plus = "${PACKAGE_EXTRA_ARCHS_tune-armv6m} cortexm0-plus"
diff --git a/meta/conf/machine/include/tune-cortexa15.inc b/meta/conf/machine/include/tune-cortexa15.inc
index d53403af35..0457c2d9fa 100644
--- a/meta/conf/machine/include/tune-cortexa15.inc
+++ b/meta/conf/machine/include/tune-cortexa15.inc
@@ -4,7 +4,7 @@ require conf/machine/include/arm/arch-armv7ve.inc
TUNEVALID[cortexa15] = "Enable Cortex-A15 specific processor optimizations"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa15', ' -mcpu=cortex-a15', '', d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'cortexa15', 'armv7ve:', '' ,d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'cortexa15', 'armv7ve:', '', d)}"
# Little Endian base configs
AVAILTUNES += "cortexa15 cortexa15t cortexa15-neon cortexa15t-neon cortexa15-neon-vfpv4 cortexa15t-neon-vfpv4"
diff --git a/meta/conf/machine/include/tune-cortexa17.inc b/meta/conf/machine/include/tune-cortexa17.inc
index 3ffc02bf9f..6a2107f653 100644
--- a/meta/conf/machine/include/tune-cortexa17.inc
+++ b/meta/conf/machine/include/tune-cortexa17.inc
@@ -4,7 +4,7 @@ require conf/machine/include/arm/arch-armv7ve.inc
TUNEVALID[cortexa17] = "Enable Cortex-A17 specific processor optimizations"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa17', ' -mcpu=cortex-a17', '', d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'cortexa17', 'armv7ve:', '' ,d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'cortexa17', 'armv7ve:', '', d)}"
# Little Endian base configs
AVAILTUNES += "cortexa17 cortexa17t cortexa17-neon cortexa17t-neon cortexa17-neon-vfpv4 cortexa17t-neon-vfpv4"
diff --git a/meta/conf/machine/include/tune-cortexa32.inc b/meta/conf/machine/include/tune-cortexa32.inc
index 3ab1addd91..e86de6ccb7 100644
--- a/meta/conf/machine/include/tune-cortexa32.inc
+++ b/meta/conf/machine/include/tune-cortexa32.inc
@@ -1,6 +1,5 @@
DEFAULTTUNE ?= "cortexa32"
-
TUNEVALID[cortexa32] = "Enable Cortex-A32 specific processor optimizations"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa32', ' -mcpu=cortex-a32', '', d)}"
@@ -11,7 +10,7 @@ AVAILTUNES += "cortexa32 cortexa32-crypto"
ARMPKGARCH_tune-cortexa32 = "cortexa32"
ARMPKGARCH_tune-cortexa32-crypto = "cortexa32"
TUNE_FEATURES_tune-cortexa32 = "armv8a cortexa32 crc"
-TUNE_FEATURES_tune-cortexa32-crypto = "armv8a cortexa32 crc crypto"
+TUNE_FEATURES_tune-cortexa32-crypto = "${TUNE_FEATURES_tune-cortexa32} crypto"
PACKAGE_EXTRA_ARCHS_tune-cortexa32 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa32"
PACKAGE_EXTRA_ARCHS_tune-cortexa32-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa32 cortexa32-crypto"
BASE_LIB_tune-cortexa32 = "lib"
diff --git a/meta/conf/machine/include/tune-cortexa35.inc b/meta/conf/machine/include/tune-cortexa35.inc
index d6df6cd6bd..cb3ad4c11e 100644
--- a/meta/conf/machine/include/tune-cortexa35.inc
+++ b/meta/conf/machine/include/tune-cortexa35.inc
@@ -9,8 +9,8 @@ require conf/machine/include/arm/arch-armv8a.inc
AVAILTUNES += "cortexa35 cortexa35-crypto"
ARMPKGARCH_tune-cortexa35 = "cortexa35"
ARMPKGARCH_tune-cortexa35-crypto = "cortexa35"
-TUNE_FEATURES_tune-cortexa35 = "aarch64 cortexa35 crc"
-TUNE_FEATURES_tune-cortexa35-crypto = "aarch64 cortexa35 crc crypto"
+TUNE_FEATURES_tune-cortexa35 = "${TUNE_FEATURES_tune-armv8a-crc} cortexa35"
+TUNE_FEATURES_tune-cortexa35-crypto = "${TUNE_FEATURES_tune-cortexa35} crypto"
PACKAGE_EXTRA_ARCHS_tune-cortexa35 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa35"
PACKAGE_EXTRA_ARCHS_tune-cortexa35-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa35 cortexa35-crypto"
BASE_LIB_tune-cortexa35 = "lib64"
diff --git a/meta/conf/machine/include/tune-cortexa5.inc b/meta/conf/machine/include/tune-cortexa5.inc
index 496739e454..923b758c41 100644
--- a/meta/conf/machine/include/tune-cortexa5.inc
+++ b/meta/conf/machine/include/tune-cortexa5.inc
@@ -4,7 +4,7 @@ require conf/machine/include/arm/arch-armv7a.inc
TUNEVALID[cortexa5] = "Enable Cortex-A5 specific processor optimizations"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa5', ' -mcpu=cortex-a5', '', d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'cortexa5', 'armv7a:', '' ,d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'cortexa5', 'armv7a:', '', d)}"
# Little Endian base configs
AVAILTUNES += "cortexa5 cortexa5t cortexa5-neon cortexa5t-neon cortexa5-neon-vfpv4 cortexa5t-neon-vfpv4"
diff --git a/meta/conf/machine/include/tune-cortexa53.inc b/meta/conf/machine/include/tune-cortexa53.inc
index 6c0b443eaf..7f8863a2fa 100644
--- a/meta/conf/machine/include/tune-cortexa53.inc
+++ b/meta/conf/machine/include/tune-cortexa53.inc
@@ -8,9 +8,9 @@ require conf/machine/include/arm/arch-armv8a.inc
# Little Endian base configs
AVAILTUNES += "cortexa53 cortexa53-crypto"
ARMPKGARCH_tune-cortexa53 = "cortexa53"
-ARMPKGARCH_tune-cortexa53-crypto = "cortexa53"
-TUNE_FEATURES_tune-cortexa53 = "aarch64 cortexa53 crc"
-TUNE_FEATURES_tune-cortexa53-crypto = "aarch64 cortexa53 crc crypto"
+ARMPKGARCH_tune-cortexa53-crypto = "cortexa53-crypto"
+TUNE_FEATURES_tune-cortexa53 = "${TUNE_FEATURES_tune-armv8a-crc} cortexa53"
+TUNE_FEATURES_tune-cortexa53-crypto = "${TUNE_FEATURES_tune-cortexa53} crypto"
PACKAGE_EXTRA_ARCHS_tune-cortexa53 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa53"
PACKAGE_EXTRA_ARCHS_tune-cortexa53-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa53 cortexa53-crypto"
BASE_LIB_tune-cortexa53 = "lib64"
diff --git a/meta/conf/machine/include/tune-cortexa55.inc b/meta/conf/machine/include/tune-cortexa55.inc
new file mode 100644
index 0000000000..e9629738f3
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexa55.inc
@@ -0,0 +1,13 @@
+DEFAULTTUNE ?= "cortexa55"
+
+TUNEVALID[cortexa55] = "Enable Cortex-A55 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa55', ' -mcpu=cortex-a55', '', d)}"
+
+require conf/machine/include/arm/arch-armv8-2a.inc
+
+# Little Endian base configs
+AVAILTUNES += "cortexa55"
+ARMPKGARCH_tune-cortexa55 = "cortexa55"
+TUNE_FEATURES_tune-cortexa55 = "${TUNE_FEATURES_tune-armv8-2a-crypto} cortexa55"
+PACKAGE_EXTRA_ARCHS_tune-cortexa55 = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa55"
+BASE_LIB_tune-cortexa55 = "lib64"
diff --git a/meta/conf/machine/include/tune-cortexa57-cortexa53.inc b/meta/conf/machine/include/tune-cortexa57-cortexa53.inc
index d05e93f51e..d329d6199f 100644
--- a/meta/conf/machine/include/tune-cortexa57-cortexa53.inc
+++ b/meta/conf/machine/include/tune-cortexa57-cortexa53.inc
@@ -1,18 +1,14 @@
DEFAULTTUNE ?= "cortexa57-cortexa53"
-require conf/machine/include/arm/arch-armv8a.inc
TUNEVALID[cortexa57-cortexa53] = "Enable big.LITTLE Cortex-A57.Cortex-A53 specific processor optimizations"
-TUNECONFLICTS[aarch64] = "armv4 armv5 armv6 armv7 armv7a"
-
-TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "aarch64", " -march=armv8-a", "" ,d)}"
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa57-cortexa53", " -mcpu=cortex-a57.cortex-a53", "", d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "cortexa57-cortexa53", "cortexa57-cortexa53:", "", d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "cortexa57-cortexa53", "cortexa57-cortexa53:", "" ,d)}"
-
-TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa57-cortexa53", " -mtune=cortex-a57.cortex-a53", "", d)}"
+require conf/machine/include/arm/arch-armv8a.inc
# Little Endian base configs
AVAILTUNES += "cortexa57-cortexa53"
ARMPKGARCH_tune-cortexa57-cortexa53 = "cortexa57-cortexa53"
-TUNE_FEATURES_tune-cortexa57-cortexa53 = "${TUNE_FEATURES_tune-aarch64} cortexa57-cortexa53"
-PACKAGE_EXTRA_ARCHS_tune-cortexa57-cortexa53 = "${PACKAGE_EXTRA_ARCHS_tune-aarch64} cortexa57-cortexa53"
+TUNE_FEATURES_tune-cortexa57-cortexa53 = "${TUNE_FEATURES_tune-armv8a-crc} cortexa57-cortexa53"
+PACKAGE_EXTRA_ARCHS_tune-cortexa57-cortexa53 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa57-cortexa53"
BASE_LIB_tune-cortexa57-cortexa53 = "lib64"
diff --git a/meta/conf/machine/include/tune-cortexa57.inc b/meta/conf/machine/include/tune-cortexa57.inc
new file mode 100644
index 0000000000..91fa6685f5
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexa57.inc
@@ -0,0 +1,17 @@
+DEFAULTTUNE ?= "cortexa57"
+
+TUNEVALID[cortexa57] = "Enable Cortex-A57 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa57', ' -mcpu=cortex-a57', '', d)}"
+
+require conf/machine/include/arm/arch-armv8a.inc
+
+# Little Endian base configs
+AVAILTUNES += "cortexa57 cortexa57-crypto"
+ARMPKGARCH_tune-cortexa57 = "cortexa57"
+ARMPKGARCH_tune-cortexa57-crypto = "cortexa57-crypto"
+TUNE_FEATURES_tune-cortexa57 = "${TUNE_FEATURES_tune-armv8a-crc} cortexa57"
+TUNE_FEATURES_tune-cortexa57-crypto = "${TUNE_FEATURES_tune-cortexa57} crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa57 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa57"
+PACKAGE_EXTRA_ARCHS_tune-cortexa57-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa57 cortexa57-crypto"
+BASE_LIB_tune-cortexa57 = "lib64"
+BASE_LIB_tune-cortexa57-crypto = "lib64"
diff --git a/meta/conf/machine/include/tune-cortexa7.inc b/meta/conf/machine/include/tune-cortexa7.inc
index 34a77b4788..05081dcbd8 100644
--- a/meta/conf/machine/include/tune-cortexa7.inc
+++ b/meta/conf/machine/include/tune-cortexa7.inc
@@ -4,7 +4,7 @@ require conf/machine/include/arm/arch-armv7ve.inc
TUNEVALID[cortexa7] = "Enable Cortex-A7 specific processor optimizations"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa7', ' -mcpu=cortex-a7', '', d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'cortexa7', 'armv7ve:', '' ,d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'cortexa7', 'armv7ve:', '', d)}"
# Little Endian base configs
AVAILTUNES += "cortexa7 cortexa7t cortexa7-neon cortexa7t-neon cortexa7-neon-vfpv4 cortexa7t-neon-vfpv4"
diff --git a/meta/conf/machine/include/tune-cortexa72-cortexa53.inc b/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
index 0d43531be7..98e8ebacff 100644
--- a/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
+++ b/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
@@ -1,21 +1,17 @@
DEFAULTTUNE ?= "cortexa72-cortexa53"
-require conf/machine/include/arm/arch-armv8a.inc
-
TUNEVALID[cortexa72-cortexa53] = "Enable big.LITTLE Cortex-A72.Cortex-A53 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa72-cortexa53", " -mcpu=cortex-a72.cortex-a53", "", d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "cortexa72-cortexa53", "cortexa72-cortexa53:", "", d)}"
-TUNECONFLICTS[aarch64] = "armv4 armv5 armv6 armv7 armv7a"
-
-MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "cortexa72-cortexa53", "cortexa72-cortexa53:", "" ,d)}"
-
-TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa72-cortexa53", " -mtune=cortex-a72.cortex-a53", "", d)}"
+require conf/machine/include/arm/arch-armv8a.inc
# cortexa72.cortexa53 implies crc support
AVAILTUNES += "cortexa72-cortexa53 cortexa72-cortexa53-crypto"
ARMPKGARCH_tune-cortexa72-cortexa53 = "cortexa72-cortexa53"
-ARMPKGARCH_tune-cortexa72-cortexa53-crypto = "cortexa72-cortexa53"
-TUNE_FEATURES_tune-cortexa72-cortexa53 = "${TUNE_FEATURES_tune-armv8a-crc}"
-TUNE_FEATURES_tune-cortexa72-cortexa53-crypto = "${TUNE_FEATURES_tune-armv8a-crc-crypto}"
+ARMPKGARCH_tune-cortexa72-cortexa53-crypto = "cortexa72-cortexa53-crypto"
+TUNE_FEATURES_tune-cortexa72-cortexa53 = "${TUNE_FEATURES_tune-armv8a-crc} cortexa72-cortexa53"
+TUNE_FEATURES_tune-cortexa72-cortexa53-crypto = "${TUNE_FEATURES_tune-cortexa72-cortexa53} crypto"
PACKAGE_EXTRA_ARCHS_tune-cortexa72-cortexa53 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa72-cortexa53"
PACKAGE_EXTRA_ARCHS_tune-cortexa72-cortexa53-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa72-cortexa53 cortexa72-cortexa53-crypto"
BASE_LIB_tune-cortexa72-cortexa53 = "lib64"
diff --git a/meta/conf/machine/include/tune-cortexa72.inc b/meta/conf/machine/include/tune-cortexa72.inc
index 00f7745a22..b3f68ab6e3 100644
--- a/meta/conf/machine/include/tune-cortexa72.inc
+++ b/meta/conf/machine/include/tune-cortexa72.inc
@@ -8,6 +8,6 @@ require conf/machine/include/arm/arch-armv8a.inc
# Little Endian base configs
AVAILTUNES += "cortexa72"
ARMPKGARCH_tune-cortexa72 = "cortexa72"
-TUNE_FEATURES_tune-cortexa72 = "aarch64 cortexa72 crc crypto"
+TUNE_FEATURES_tune-cortexa72 = "${TUNE_FEATURES_tune-armv8a-crc-crypto} cortexa72"
PACKAGE_EXTRA_ARCHS_tune-cortexa72 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa72"
BASE_LIB_tune-cortexa72 = "lib64"
diff --git a/meta/conf/machine/include/tune-cortexa73-cortexa53.inc b/meta/conf/machine/include/tune-cortexa73-cortexa53.inc
new file mode 100644
index 0000000000..3750f0762d
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexa73-cortexa53.inc
@@ -0,0 +1,19 @@
+DEFAULTTUNE ?= "cortexa73-cortexa53"
+
+TUNEVALID[cortexa73-cortexa53] = "Enable big.LITTLE Cortex-A73.Cortex-A53 specific processor optimizations"
+MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "cortexa73-cortexa53", "cortexa73-cortexa53:", "", d)}"
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa73-cortexa53", " -mcpu=cortex-a73.cortex-a53", "", d)}"
+
+require conf/machine/include/arm/arch-armv8a.inc
+
+# cortexa73.cortexa53 implies crc support
+AVAILTUNES += "cortexa73-cortexa53 cortexa73-cortexa53-crypto"
+ARMPKGARCH_tune-cortexa73-cortexa53 = "cortexa73-cortexa53"
+ARMPKGARCH_tune-cortexa73-cortexa53-crypto = "cortexa73-cortexa53-crypto"
+TUNE_FEATURES_tune-cortexa73-cortexa53 = "${TUNE_FEATURES_tune-armv8a-crc} cortexa73-cortexa53"
+TUNE_FEATURES_tune-cortexa73-cortexa53-crypto = "${TUNE_FEATURES_tune-cortexa73-cortexa53} crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa73-cortexa53 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa73-cortexa53"
+PACKAGE_EXTRA_ARCHS_tune-cortexa73-cortexa53-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa73-cortexa53 cortexa73-cortexa53-crypto"
+BASE_LIB_tune-cortexa73-cortexa53 = "lib64"
+BASE_LIB_tune-cortexa73-cortexa53-crypto = "lib64"
+
diff --git a/meta/conf/machine/include/tune-cortexa8.inc b/meta/conf/machine/include/tune-cortexa8.inc
index 6551ba4952..f27bfb8d67 100644
--- a/meta/conf/machine/include/tune-cortexa8.inc
+++ b/meta/conf/machine/include/tune-cortexa8.inc
@@ -4,7 +4,7 @@ require conf/machine/include/arm/arch-armv7a.inc
TUNEVALID[cortexa8] = "Enable Cortex-A8 specific processor optimizations"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa8', ' -mcpu=cortex-a8', '', d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'cortexa8', 'armv7a:', '' ,d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'cortexa8', 'armv7a:', '', d)}"
# Little Endian base configs
AVAILTUNES += "cortexa8 cortexa8t cortexa8-neon cortexa8t-neon"
diff --git a/meta/conf/machine/include/tune-cortexa9.inc b/meta/conf/machine/include/tune-cortexa9.inc
index ecc7908cd7..0eb8f3b9d3 100644
--- a/meta/conf/machine/include/tune-cortexa9.inc
+++ b/meta/conf/machine/include/tune-cortexa9.inc
@@ -4,7 +4,7 @@ require conf/machine/include/arm/arch-armv7a.inc
TUNEVALID[cortexa9] = "Enable Cortex-A9 specific processor optimizations"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa9', ' -mcpu=cortex-a9', '', d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'cortexa9', 'armv7a:', '' ,d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'cortexa9', 'armv7a:', '', d)}"
# Little Endian base configs
AVAILTUNES += "cortexa9 cortexa9t cortexa9-neon cortexa9t-neon"
diff --git a/meta/conf/machine/include/tune-ep9312.inc b/meta/conf/machine/include/tune-ep9312.inc
index be20eb363b..5e1a0e5791 100644
--- a/meta/conf/machine/include/tune-ep9312.inc
+++ b/meta/conf/machine/include/tune-ep9312.inc
@@ -4,10 +4,9 @@ require conf/machine/include/arm/arch-armv4.inc
TUNEVALID[ep9312] = "Enable Cirrus Logic EP9312 specific processor optimizations"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'ep9312', ' -march=ep9312 -mcpu=ep9312', '', d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'ep9312', 'armv4:', '' ,d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'ep9312', 'armv4:', '', d)}"
AVAILTUNES += "ep9312"
ARMPKGARCH_tune-ep9312 = "ep9312"
-# this tune does not include TUNE_FEATURES_tune-armv4t, so there is no armv4 TUNE_FEATURES => no 't' in ARMPKGSFX_THUMB
TUNE_FEATURES_tune-ep9312 = "thumb ep9312"
-PACKAGE_EXTRA_ARCHS_tune-ep9312 = "${PACKAGE_EXTRA_ARCHS_tune-armv4t} ep9312"
+PACKAGE_EXTRA_ARCHS_tune-ep9312 = "${PACKAGE_EXTRA_ARCHS_tune-armv4t} ep9312t"
diff --git a/meta/conf/machine/include/tune-iwmmxt.inc b/meta/conf/machine/include/tune-iwmmxt.inc
index 9a6cd23c99..81ff4c9ae2 100644
--- a/meta/conf/machine/include/tune-iwmmxt.inc
+++ b/meta/conf/machine/include/tune-iwmmxt.inc
@@ -7,7 +7,7 @@ require conf/machine/include/arm/arch-armv5-dsp.inc
TUNEVALID[iwmmxt] = "Enable Intel PXA27x specific processor optimizations"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'iwmmxt', ' -mcpu=iwmmxt', '', d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'iwmmxt', 'armv5:', '' ,d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'iwmmxt', 'armv5:', '', d)}"
AVAILTUNES += "iwmmxt"
ARMPKGARCH_tune-iwmmxt = "iwmmxt"
diff --git a/meta/conf/machine/include/tune-mips64r6.inc b/meta/conf/machine/include/tune-mips64r6.inc
index 4fe3eedf1b..e53239a38b 100644
--- a/meta/conf/machine/include/tune-mips64r6.inc
+++ b/meta/conf/machine/include/tune-mips64r6.inc
@@ -24,7 +24,7 @@ AVAILTUNES += "mipsisa64r6-nf mipsisa64r6el-nf"
TUNE_FEATURES_tune-mipsisa64r6-nf = "bigendian r6 n64 mipsisa64r6"
MIPSPKGSFX_VARIANT_tune-mipsisa64r6-nf = "${TUNE_ARCH}"
BASE_LIB_tune-mipsisa64r6-nf = "lib64"
-PACKAGE_EXTRA_ARCHS_tune-mipsisa64r6-nf = "mipsisa64r6"
+PACKAGE_EXTRA_ARCHS_tune-mipsisa64r6-nf = "mipsisa64r6-nf"
TUNE_FEATURES_tune-mipsisa64r6el-nf = "r6 n64 mipsisa64r6"
MIPSPKGSFX_VARIANT_tune-mipsisa64r6el-nf = "${TUNE_ARCH}"
diff --git a/meta/conf/machine/include/tune-strongarm1100.inc b/meta/conf/machine/include/tune-strongarm1100.inc
index e978e925d2..9479965843 100644
--- a/meta/conf/machine/include/tune-strongarm1100.inc
+++ b/meta/conf/machine/include/tune-strongarm1100.inc
@@ -4,7 +4,7 @@ require conf/machine/include/arm/arch-armv4.inc
TUNEVALID[strongarm] = "Enable Strongarm 1100 series processor optimizations"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'strongarm', ' -mcpu=strongarm1100', '', d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'strongarm', 'armv4:', '' ,d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'strongarm', 'armv4:', '', d)}"
AVAILTUNES += "strongarm"
ARMPKGARCH_tune-strongarm = "strongarm"
diff --git a/meta/conf/machine/include/tune-supersparc.inc b/meta/conf/machine/include/tune-supersparc.inc
deleted file mode 100644
index 0faa361f18..0000000000
--- a/meta/conf/machine/include/tune-supersparc.inc
+++ /dev/null
@@ -1,4 +0,0 @@
-TUNE_ARCH = "sparc"
-
-TUNE_CCARGS = "-mcpu=supersparc"
-TUNE_PKGARCH = "supersparc"
diff --git a/meta/conf/machine/include/tune-thunderx.inc b/meta/conf/machine/include/tune-thunderx.inc
index aa4d0501d4..d1aaf4891e 100644
--- a/meta/conf/machine/include/tune-thunderx.inc
+++ b/meta/conf/machine/include/tune-thunderx.inc
@@ -8,7 +8,7 @@ TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'thunderx', ' -mcpu=thunde
require conf/machine/include/arm/arch-armv8a.inc
ARMPKGARCH_tune-thunderx ?= "thunderx"
-ARMPKGARCH_tune-thunderx_be ?= "thunderx_be"
+ARMPKGARCH_tune-thunderx_be ?= "thunderx"
TUNE_FEATURES_tune-thunderx = "${TUNE_FEATURES_tune-aarch64} thunderx"
TUNE_FEATURES_tune-thunderx_be = "${TUNE_FEATURES_tune-thunderx} bigendian"
diff --git a/meta/conf/machine/include/tune-xscale.inc b/meta/conf/machine/include/tune-xscale.inc
index 19d5e13e61..aeac365284 100644
--- a/meta/conf/machine/include/tune-xscale.inc
+++ b/meta/conf/machine/include/tune-xscale.inc
@@ -4,7 +4,7 @@ require conf/machine/include/arm/arch-armv5-dsp.inc
TUNEVALID[xscale] = "Enable PXA255/PXA26x Xscale specific processor optimizations"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'xscale', ' -mcpu=xscale', '', d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'xscale', 'armv5:', '' ,d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'xscale', 'armv5:', '', d)}"
AVAILTUNES += "xscale"
ARMPKGARCH_tune-xscale = "xscale"
diff --git a/meta/conf/machine/include/x86-base.inc b/meta/conf/machine/include/x86-base.inc
index a72714711d..a3169b7405 100644
--- a/meta/conf/machine/include/x86-base.inc
+++ b/meta/conf/machine/include/x86-base.inc
@@ -18,7 +18,7 @@ SERIAL_CONSOLES ?= "115200;ttyS0"
# kernel-related variables
#
PREFERRED_PROVIDER_virtual/kernel ??= "linux-yocto"
-PREFERRED_VERSION_linux-yocto ??= "5.4%"
+PREFERRED_VERSION_linux-yocto ??= "5.8%"
#
# XSERVER subcomponents, used to build the XSERVER variable
diff --git a/meta/conf/machine/include/x86/arch-x86.inc b/meta/conf/machine/include/x86/arch-x86.inc
index 70814b8d4d..2edb360b7d 100644
--- a/meta/conf/machine/include/x86/arch-x86.inc
+++ b/meta/conf/machine/include/x86/arch-x86.inc
@@ -12,26 +12,26 @@ TUNE_PKGARCH = "${TUNE_PKGARCH_tune-${DEFAULTTUNE}}"
# ELF32 ABI
TUNEVALID[m32] = "IA32 ELF32 standard ABI"
TUNECONFLICTS[m32] = "m64 mx32"
-TUNE_ARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'm32', '${X86ARCH32}', '' ,d)}"
+TUNE_ARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'm32', '${X86ARCH32}', '', d)}"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'm32', ' -m32', '', d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'm32', 'x86:', '' ,d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'm32', 'x86:', '', d)}"
# x32 ABI
TUNEVALID[mx32] = "IA32e (x86_64) ELF32 standard ABI"
TUNECONFLICTS[mx32] = "m64 m32"
-TUNE_ARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'mx32', '${X86ARCH64}', '' ,d)}"
-ABIEXTENSION .= "${@bb.utils.contains('TUNE_FEATURES', 'mx32', 'x32', '' ,d)}"
+TUNE_ARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'mx32', '${X86ARCH64}', '', d)}"
+ABIEXTENSION .= "${@bb.utils.contains('TUNE_FEATURES', 'mx32', 'x32', '', d)}"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mx32', ' -mx32', '', d)}"
TUNE_LDARGS += "${@bb.utils.contains('TUNE_FEATURES', 'mx32', '-m elf32_x86_64', '', d)}"
TUNE_ASARGS += "${@bb.utils.contains('TUNE_FEATURES', 'mx32', '-x32', '', d)}"
# user mode qemu doesn't support x32
MACHINE_FEATURES_BACKFILL_CONSIDERED_append = " ${@bb.utils.contains('TUNE_FEATURES', 'mx32', 'qemu-usermode', '', d)}"
-MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'mx32', 'x86-x32:', '' ,d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'mx32', 'x86-x32:', '', d)}"
# ELF64 ABI
TUNEVALID[m64] = "IA32e (x86_64) ELF64 standard ABI"
TUNECONFLICTS[m64] = "m32 mx32"
-TUNE_ARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'm64', '${X86ARCH64}', '' ,d)}"
+TUNE_ARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'm64', '${X86ARCH64}', '', d)}"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'm64', ' -m64', '', d)}"
# Default Tune configurations
diff --git a/meta/conf/machine/qemuarm.conf b/meta/conf/machine/qemuarm.conf
index 367fcef019..702b850cbb 100644
--- a/meta/conf/machine/qemuarm.conf
+++ b/meta/conf/machine/qemuarm.conf
@@ -7,7 +7,10 @@ require conf/machine/include/qemu.inc
KERNEL_IMAGETYPE = "zImage"
+UBOOT_MACHINE ?= "qemu_arm_defconfig"
+
SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;hvc0"
+SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
# For runqemu
QB_SYSTEM_NAME = "qemu-system-arm"
@@ -16,10 +19,8 @@ QB_CPU = "-cpu cortex-a15"
# Standard Serial console
QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0"
# For graphics to work we need to define the VGA device as well as the necessary USB devices
-QB_OPT_APPEND = "-show-cursor -device VGA,edid=on"
+QB_OPT_APPEND = "-device VGA,edid=on"
QB_OPT_APPEND += "-device qemu-xhci -device usb-tablet -device usb-kbd"
-# Add the virtio RNG
-QB_OPT_APPEND += "-object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0"
# Virtio Networking support
QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no"
QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@"
diff --git a/meta/conf/machine/qemuarm64.conf b/meta/conf/machine/qemuarm64.conf
index ec2a887bdd..2f61eb0aed 100644
--- a/meta/conf/machine/qemuarm64.conf
+++ b/meta/conf/machine/qemuarm64.conf
@@ -2,25 +2,26 @@
#@NAME: QEMU ARMv8 machine
#@DESCRIPTION: Machine configuration for running an ARMv8 system on QEMU
-require conf/machine/include/arm/arch-armv8a.inc
+require conf/machine/include/tune-cortexa57.inc
require conf/machine/include/qemu.inc
KERNEL_IMAGETYPE = "Image"
+UBOOT_MACHINE ?= "qemu_arm64_defconfig"
+
SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;hvc0"
+SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
# For runqemu
QB_SYSTEM_NAME = "qemu-system-aarch64"
QB_MACHINE = "-machine virt"
QB_CPU = "-cpu cortex-a57"
-QB_CPU_KVM = "-cpu host"
+QB_CPU_KVM = "-cpu host -machine gic-version=3"
# Standard Serial console
QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0"
# For graphics to work we need to define the VGA device as well as the necessary USB devices
-QB_OPT_APPEND = "-show-cursor -device VGA,edid=on"
+QB_OPT_APPEND = "-device VGA,edid=on"
QB_OPT_APPEND += "-device qemu-xhci -device usb-tablet -device usb-kbd"
-# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
-QB_OPT_APPEND += "-object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0"
# Virtio Networking support
QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no"
QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@"
diff --git a/meta/conf/machine/qemuarmv5.conf b/meta/conf/machine/qemuarmv5.conf
index 7f72048065..7e8c9e1fa6 100644
--- a/meta/conf/machine/qemuarmv5.conf
+++ b/meta/conf/machine/qemuarmv5.conf
@@ -4,7 +4,6 @@
require conf/machine/include/qemu.inc
require conf/machine/include/tune-arm926ejs.inc
-#require conf/machine/include/tune-arm1136jf-s.inc
KERNEL_IMAGETYPE = "zImage"
@@ -14,10 +13,8 @@ SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;ttyAMA1"
QB_SYSTEM_NAME = "qemu-system-arm"
QB_MACHINE = "-machine versatilepb"
QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0,115200 console=tty"
-QB_OPT_APPEND = "-show-cursor -usb -device usb-tablet"
-# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
-QB_OPT_APPEND += "-object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0"
-PREFERRED_VERSION_linux-yocto ??= "5.4%"
+QB_OPT_APPEND = "-usb -device usb-tablet"
+PREFERRED_VERSION_linux-yocto ??= "5.8%"
QB_DTB = "${@oe.utils.version_less_or_equal('PREFERRED_VERSION_linux-yocto', '4.7', '', 'zImage-versatile-pb.dtb', d)}"
KMACHINE_qemuarmv5 = "qemuarm"
diff --git a/meta/conf/machine/qemumips.conf b/meta/conf/machine/qemumips.conf
index 31ad754483..1373e4cba0 100644
--- a/meta/conf/machine/qemumips.conf
+++ b/meta/conf/machine/qemumips.conf
@@ -9,6 +9,10 @@ require conf/machine/include/qemuboot-mips.inc
KERNEL_IMAGETYPE = "vmlinux"
KERNEL_ALT_IMAGETYPE = "vmlinux.bin"
+UBOOT_MACHINE ?= "qemu_mips_defconfig"
+
SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1"
QB_SYSTEM_NAME = "qemu-system-mips"
+
+QB_CPU = "-cpu 34Kf"
diff --git a/meta/conf/machine/qemumips64.conf b/meta/conf/machine/qemumips64.conf
index 6d5174665f..1e77486491 100644
--- a/meta/conf/machine/qemumips64.conf
+++ b/meta/conf/machine/qemumips64.conf
@@ -11,6 +11,8 @@ QB_CPU = "-cpu MIPS64R2-generic"
KERNEL_IMAGETYPE = "vmlinux"
KERNEL_ALT_IMAGETYPE = "vmlinux.bin"
+UBOOT_MACHINE ?= "qemu_mips64_defconfig"
+
SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1"
QB_SYSTEM_NAME = "qemu-system-mips64"
diff --git a/meta/conf/machine/qemuppc.conf b/meta/conf/machine/qemuppc.conf
index bd88eeb12a..a84594f335 100644
--- a/meta/conf/machine/qemuppc.conf
+++ b/meta/conf/machine/qemuppc.conf
@@ -16,7 +16,5 @@ QB_SYSTEM_NAME = "qemu-system-ppc"
QB_MACHINE = "-machine mac99"
QB_CPU = "-cpu G4"
QB_KERNEL_CMDLINE_APPEND = "console=tty console=ttyS0"
-QB_OPT_APPEND = "-show-cursor -usb -device usb-tablet"
-# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
-QB_OPT_APPEND += "-object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0"
+QB_OPT_APPEND = "-usb -device usb-tablet"
QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no"
diff --git a/meta/conf/multilib.conf b/meta/conf/multilib.conf
index 58f2ac5c86..d231107f8b 100644
--- a/meta/conf/multilib.conf
+++ b/meta/conf/multilib.conf
@@ -30,4 +30,4 @@ PKG_CONFIG_PATH[vardepvalueexclude] = ":${WORKDIR}/recipe-sysroot/${datadir}/pkg
# These recipes don't need multilib variants, the ${BPN} PROVDES/RPROVDES
# ${MLPREFIX}${BPN}
-NON_MULTILIB_RECIPES = "grub grub-efi make-mod-scripts ovmf"
+NON_MULTILIB_RECIPES = "grub grub-efi make-mod-scripts ovmf u-boot"
diff --git a/meta/conf/sanity.conf b/meta/conf/sanity.conf
index 8b2f655394..8ae548941b 100644
--- a/meta/conf/sanity.conf
+++ b/meta/conf/sanity.conf
@@ -3,7 +3,7 @@
# See sanity.bbclass
#
# Expert users can confirm their sanity with "touch conf/sanity.conf"
-BB_MIN_VERSION = "1.43.2"
+BB_MIN_VERSION = "1.47.0"
SANITY_ABIFILE = "${TMPDIR}/abi_version"
diff --git a/meta/files/common-licenses/BSD-2-Clause-Patent b/meta/files/common-licenses/BSD-2-Clause-Patent
new file mode 100644
index 0000000000..1184c02957
--- /dev/null
+++ b/meta/files/common-licenses/BSD-2-Clause-Patent
@@ -0,0 +1,47 @@
+Copyright (c) <YEAR> <COPYRIGHT HOLDERS>
+
+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.
+
+Subject to the terms and conditions of this license, each copyright holder
+and contributor hereby grants to those receiving rights under this license
+a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+(except for failure to satisfy the conditions of this license) patent license
+to make, have made, use, offer to sell, sell, import, and otherwise transfer
+this software, where such license applies only to those patent claims, already
+acquired or hereafter acquired, licensable by such copyright holder or contributor
+that are necessarily infringed by:
+
+(a) their Contribution(s) (the licensed copyrights of copyright holders and
+non-copyrightable additions of contributors, in source or binary form) alone;
+or
+
+(b) combination of their Contribution(s) with the work of authorship to which
+such Contribution(s) was added by such copyright holder or contributor, if,
+at the time the Contribution is added, such addition causes such combination
+to be necessarily infringed. The patent license shall not apply to any other
+combinations which include the Contribution.
+
+Except as expressly stated above, no rights or licenses from any copyright
+holder or contributor is granted under this license, whether expressly, by
+implication, estoppel or otherwise.
+
+DISCLAIMER
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT HOLDERS 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/meta/files/common-licenses/PSF-2.0 b/meta/files/common-licenses/PSF-2.0
new file mode 100644
index 0000000000..4e673e93fc
--- /dev/null
+++ b/meta/files/common-licenses/PSF-2.0
@@ -0,0 +1,49 @@
+
+PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
+--------------------------------------------
+
+1. This LICENSE AGREEMENT is between the Python Software Foundation
+("PSF"), and the Individual or Organization ("Licensee") accessing and
+otherwise using this software ("Python") in source or binary form and
+its associated documentation.
+
+2. Subject to the terms and conditions of this License Agreement, PSF
+hereby grants Licensee a nonexclusive, royalty-free, world-wide
+license to reproduce, analyze, test, perform and/or display publicly,
+prepare derivative works, distribute, and otherwise use Python
+alone or in any derivative version, provided, however, that PSF's
+License Agreement and PSF's notice of copyright, i.e., "Copyright (c)
+2001, 2002, 2003, 2004, 2005, 2006 Python Software Foundation; All Rights
+Reserved" are retained in Python alone or in any derivative version
+prepared by Licensee.
+
+3. In the event Licensee prepares a derivative work that is based on
+or incorporates Python or any part thereof, and wants to make
+the derivative work available to others as provided herein, then
+Licensee hereby agrees to include in any such work a brief summary of
+the changes made to Python.
+
+4. PSF is making Python available to Licensee on an "AS IS"
+basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
+FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
+A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
+OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+6. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+7. Nothing in this License Agreement shall be deemed to create any
+relationship of agency, partnership, or joint venture between PSF and
+Licensee. This License Agreement does not grant permission to use PSF
+trademarks or trade name in a trademark sense to endorse or promote
+products or services of Licensee, or any third party.
+
+8. By copying, installing or otherwise using Python, Licensee
+agrees to be bound by the terms and conditions of this License
+Agreement.
diff --git a/meta/files/common-licenses/Unlicense b/meta/files/common-licenses/Unlicense
new file mode 100644
index 0000000000..68a49daad8
--- /dev/null
+++ b/meta/files/common-licenses/Unlicense
@@ -0,0 +1,24 @@
+This is free and unencumbered software released into the public domain.
+
+Anyone is free to copy, modify, publish, use, compile, sell, or
+distribute this software, either in source code form or as a compiled
+binary, for any purpose, commercial or non-commercial, and by any
+means.
+
+In jurisdictions that recognize copyright laws, the author or authors
+of this software dedicate any and all copyright interest in the
+software to the public domain. We make this dedication for the benefit
+of the public at large and to the detriment of our heirs and
+successors. We intend this dedication to be an overt act of
+relinquishment in perpetuity of all present and future rights to this
+software under copyright law.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+For more information, please refer to <http://unlicense.org/>
diff --git a/meta/files/common-licenses/bzip2 b/meta/files/common-licenses/bzip2-1.0.6
index 8ec599dc3b..8ec599dc3b 100644
--- a/meta/files/common-licenses/bzip2
+++ b/meta/files/common-licenses/bzip2-1.0.6
diff --git a/meta/files/toolchain-shar-extract.sh b/meta/files/toolchain-shar-extract.sh
index 4c4b4deb4c..bea6d4189a 100644
--- a/meta/files/toolchain-shar-extract.sh
+++ b/meta/files/toolchain-shar-extract.sh
@@ -1,13 +1,13 @@
#!/bin/sh
-[ -z "$ENVCLEANED" ] && exec /usr/bin/env -i ENVCLEANED=1 HOME="$HOME" \
- LC_ALL=en_US.UTF-8 \
- TERM=$TERM \
- ICECC_PATH="$ICECC_PATH" \
- http_proxy="$http_proxy" https_proxy="$https_proxy" ftp_proxy="$ftp_proxy" \
- no_proxy="$no_proxy" all_proxy="$all_proxy" GIT_PROXY_COMMAND="$GIT_PROXY_COMMAND" "$0" "$@"
-[ -f /etc/environment ] && . /etc/environment
-export PATH=`echo "$PATH" | sed -e 's/:\.//' -e 's/::/:/'`
+export LC_ALL=en_US.UTF-8
+#Make sure at least one python is installed
+INIT_PYTHON=$(which python3 2>/dev/null )
+[ -z "$INIT_PYTHON" ] && INIT_PYTHON=$(which python2 2>/dev/null)
+[ -z "$INIT_PYTHON" ] && echo "Error: The SDK needs a python installed" && exit 1
+
+# Remove invalid PATH elements first (maybe from a previously setup toolchain now deleted
+PATH=`$INIT_PYTHON -c 'import os; print(":".join(e for e in os.environ["PATH"].split(":") if os.path.exists(e)))'`
tweakpath () {
case ":${PATH}:" in
@@ -26,7 +26,7 @@ tweakpath /sbin
INST_ARCH=$(uname -m | sed -e "s/i[3-6]86/ix86/" -e "s/x86[-_]64/x86_64/")
SDK_ARCH=$(echo @SDK_ARCH@ | sed -e "s/i[3-6]86/ix86/" -e "s/x86[-_]64/x86_64/")
-INST_GCC_VER=$(gcc --version | sed -ne 's/.* \([0-9]\+\.[0-9]\+\)\.[0-9]\+.*/\1/p')
+INST_GCC_VER=$(gcc --version 2>/dev/null | sed -ne 's/.* \([0-9]\+\.[0-9]\+\)\.[0-9]\+.*/\1/p')
SDK_GCC_VER='@SDK_GCC_VER@'
verlte () {
diff --git a/meta/lib/bblayers/templates/example.bb b/meta/lib/bblayers/templates/example.bb
index c4b873d593..facaae35d2 100644
--- a/meta/lib/bblayers/templates/example.bb
+++ b/meta/lib/bblayers/templates/example.bb
@@ -2,10 +2,12 @@ SUMMARY = "bitbake-layers recipe"
DESCRIPTION = "Recipe created by bitbake-layers"
LICENSE = "MIT"
-python do_build() {
+python do_display_banner() {
bb.plain("***********************************************");
bb.plain("* *");
bb.plain("* Example recipe created by bitbake-layers *");
bb.plain("* *");
bb.plain("***********************************************");
}
+
+addtask display_banner before do_build
diff --git a/meta/lib/oe/buildhistory_analysis.py b/meta/lib/oe/buildhistory_analysis.py
index 5b28774c98..2d6fa1779e 100644
--- a/meta/lib/oe/buildhistory_analysis.py
+++ b/meta/lib/oe/buildhistory_analysis.py
@@ -213,6 +213,7 @@ class FileChange:
changetype_perms = 'P'
changetype_ownergroup = 'O'
changetype_link = 'L'
+ changetype_move = 'M'
def __init__(self, path, changetype, oldvalue = None, newvalue = None):
self.path = path
@@ -251,10 +252,11 @@ class FileChange:
return '%s changed owner/group from %s to %s' % (self.path, self.oldvalue, self.newvalue)
elif self.changetype == self.changetype_link:
return '%s changed symlink target from %s to %s' % (self.path, self.oldvalue, self.newvalue)
+ elif self.changetype == self.changetype_move:
+ return '%s moved to %s' % (self.path, self.oldvalue)
else:
return '%s changed (unknown)' % self.path
-
def blob_to_dict(blob):
alines = [line for line in blob.data_stream.read().decode('utf-8').splitlines()]
adict = {}
@@ -281,11 +283,14 @@ def file_list_to_dict(lines):
adict[path] = splitv[0:3]
return adict
+numeric_removal = str.maketrans('0123456789', 'XXXXXXXXXX')
def compare_file_lists(alines, blines, compare_ownership=True):
adict = file_list_to_dict(alines)
bdict = file_list_to_dict(blines)
filechanges = []
+ additions = []
+ removals = []
for path, splitv in adict.items():
newsplitv = bdict.pop(path, None)
if newsplitv:
@@ -318,11 +323,65 @@ def compare_file_lists(alines, blines, compare_ownership=True):
if oldvalue != newvalue:
filechanges.append(FileChange(path, FileChange.changetype_link, oldvalue, newvalue))
else:
- filechanges.append(FileChange(path, FileChange.changetype_remove))
+ removals.append(path)
# Whatever is left over has been added
for path in bdict:
- filechanges.append(FileChange(path, FileChange.changetype_add))
+ additions.append(path)
+
+ # Rather than print additions and removals, its nicer to print file 'moves'
+ # where names or paths are similar.
+ revmap_remove = {}
+ for removal in removals:
+ translated = removal.translate(numeric_removal)
+ if translated not in revmap_remove:
+ revmap_remove[translated] = []
+ revmap_remove[translated].append(removal)
+
+ #
+ # We want to detect renames of large trees of files like
+ # /lib/modules/5.4.40-yocto-standard to /lib/modules/5.4.43-yocto-standard
+ #
+ renames = {}
+ for addition in additions.copy():
+ if addition not in additions:
+ continue
+ translated = addition.translate(numeric_removal)
+ if translated in revmap_remove:
+ if len(revmap_remove[translated]) != 1:
+ continue
+ removal = revmap_remove[translated][0]
+ commondir = addition.split("/")
+ commondir2 = removal.split("/")
+ idx = None
+ for i in range(len(commondir)):
+ if commondir[i] != commondir2[i]:
+ idx = i
+ break
+ commondir = "/".join(commondir[:i+1])
+ commondir2 = "/".join(commondir2[:i+1])
+ # If the common parent is in one dict and not the other its likely a rename
+ # so iterate through those files and process as such
+ if commondir2 not in bdict and commondir not in adict:
+ if commondir not in renames:
+ renames[commondir] = commondir2
+ for addition2 in additions.copy():
+ if addition2.startswith(commondir):
+ removal2 = addition2.replace(commondir, commondir2)
+ if removal2 in removals:
+ additions.remove(addition2)
+ removals.remove(removal2)
+ continue
+ filechanges.append(FileChange(removal, FileChange.changetype_move, addition))
+ additions.remove(addition)
+ removals.remove(removal)
+ for rename in renames:
+ filechanges.append(FileChange(renames[rename], FileChange.changetype_move, rename))
+
+ for addition in additions:
+ filechanges.append(FileChange(addition, FileChange.changetype_add))
+ for removal in removals:
+ filechanges.append(FileChange(removal, FileChange.changetype_remove))
return filechanges
diff --git a/meta/lib/oe/classextend.py b/meta/lib/oe/classextend.py
index f02fbe9fba..d3d8fbe724 100644
--- a/meta/lib/oe/classextend.py
+++ b/meta/lib/oe/classextend.py
@@ -4,11 +4,21 @@
import collections
+def get_packages(d):
+ pkgs = d.getVar("PACKAGES_NONML")
+ extcls = d.getVar("EXTENDERCLASS")
+ return extcls.rename_packages_internal(pkgs)
+
+def get_depends(varprefix, d):
+ extcls = d.getVar("EXTENDERCLASS")
+ return extcls.map_depends_variable(varprefix + "_NONML")
+
class ClassExtender(object):
def __init__(self, extname, d):
self.extname = extname
self.d = d
self.pkgs_mapping = []
+ self.d.setVar("EXTENDERCLASS", self)
def extend_name(self, name):
if name.startswith("kernel-") or name == "virtual/kernel":
@@ -24,7 +34,7 @@ class ClassExtender(object):
if not subs.startswith(self.extname):
return "virtual/" + self.extname + "-" + subs
return name
- if name.startswith("/"):
+ if name.startswith("/") or (name.startswith("${") and name.endswith("}")):
return name
if not name.startswith(self.extname):
return self.extname + "-" + name
@@ -89,8 +99,13 @@ class ClassExtender(object):
for dep in deps:
newdeps[self.map_depends(dep)] = deps[dep]
- self.d.setVar(varname, bb.utils.join_deps(newdeps, False).replace("EXTENDPKGV", "${EXTENDPKGV}"))
+ if not varname.endswith("_NONML"):
+ self.d.renameVar(varname, varname + "_NONML")
+ self.d.setVar(varname, "${@oe.classextend.get_depends('%s', d)}" % varname)
+ self.d.appendVarFlag(varname, "vardeps", " " + varname + "_NONML")
+ ret = bb.utils.join_deps(newdeps, False).replace("EXTENDPKGV", "${EXTENDPKGV}")
self.d.setVar("EXTENDPKGV", orig)
+ return ret
def map_packagevars(self):
for pkg in (self.d.getVar("PACKAGES").split() + [""]):
@@ -109,10 +124,23 @@ class ClassExtender(object):
continue
self.pkgs_mapping.append([pkg, self.extend_name(pkg)])
- self.d.setVar("PACKAGES", " ".join([row[1] for row in self.pkgs_mapping]))
+ self.d.renameVar("PACKAGES", "PACKAGES_NONML")
+ self.d.setVar("PACKAGES", "${@oe.classextend.get_packages(d)}")
+
+ def rename_packages_internal(self, pkgs):
+ self.pkgs_mapping = []
+ for pkg in (self.d.expand(pkgs) or "").split():
+ if pkg.startswith(self.extname):
+ self.pkgs_mapping.append([pkg.split(self.extname + "-")[1], pkg])
+ continue
+ self.pkgs_mapping.append([pkg, self.extend_name(pkg)])
+
+ return " ".join([row[1] for row in self.pkgs_mapping])
def rename_package_variables(self, variables):
for pkg_mapping in self.pkgs_mapping:
+ if pkg_mapping[0].startswith("${") and pkg_mapping[0].endswith("}"):
+ continue
for subs in variables:
self.d.renameVar("%s_%s" % (subs, pkg_mapping[0]), "%s_%s" % (subs, pkg_mapping[1]))
diff --git a/meta/lib/oe/manifest.py b/meta/lib/oe/manifest.py
index f7c88f9a09..47bd622412 100644
--- a/meta/lib/oe/manifest.py
+++ b/meta/lib/oe/manifest.py
@@ -7,7 +7,6 @@ import os
import re
import bb
-
class Manifest(object, metaclass=ABCMeta):
"""
This is an abstract class. Do not instantiate this directly.
@@ -189,149 +188,12 @@ class Manifest(object, metaclass=ABCMeta):
return installed_pkgs
-class RpmManifest(Manifest):
- """
- Returns a dictionary object with mip and mlp packages.
- """
- def _split_multilib(self, pkg_list):
- pkgs = dict()
-
- for pkg in pkg_list.split():
- pkg_type = self.PKG_TYPE_MUST_INSTALL
-
- ml_variants = self.d.getVar('MULTILIB_VARIANTS').split()
-
- for ml_variant in ml_variants:
- if pkg.startswith(ml_variant + '-'):
- pkg_type = self.PKG_TYPE_MULTILIB
-
- if not pkg_type in pkgs:
- pkgs[pkg_type] = pkg
- else:
- pkgs[pkg_type] += " " + pkg
-
- return pkgs
-
- def create_initial(self):
- pkgs = dict()
-
- with open(self.initial_manifest, "w+") as manifest:
- manifest.write(self.initial_manifest_file_header)
-
- for var in self.var_maps[self.manifest_type]:
- if var in self.vars_to_split:
- split_pkgs = self._split_multilib(self.d.getVar(var))
- if split_pkgs is not None:
- pkgs = dict(list(pkgs.items()) + list(split_pkgs.items()))
- else:
- pkg_list = self.d.getVar(var)
- if pkg_list is not None:
- pkgs[self.var_maps[self.manifest_type][var]] = self.d.getVar(var)
-
- for pkg_type in pkgs:
- for pkg in pkgs[pkg_type].split():
- manifest.write("%s,%s\n" % (pkg_type, pkg))
-
- def create_final(self):
- pass
-
- def create_full(self, pm):
- pass
-
-
-class OpkgManifest(Manifest):
- """
- Returns a dictionary object with mip and mlp packages.
- """
- def _split_multilib(self, pkg_list):
- pkgs = dict()
-
- for pkg in pkg_list.split():
- pkg_type = self.PKG_TYPE_MUST_INSTALL
-
- ml_variants = self.d.getVar('MULTILIB_VARIANTS').split()
-
- for ml_variant in ml_variants:
- if pkg.startswith(ml_variant + '-'):
- pkg_type = self.PKG_TYPE_MULTILIB
-
- if not pkg_type in pkgs:
- pkgs[pkg_type] = pkg
- else:
- pkgs[pkg_type] += " " + pkg
-
- return pkgs
-
- def create_initial(self):
- pkgs = dict()
-
- with open(self.initial_manifest, "w+") as manifest:
- manifest.write(self.initial_manifest_file_header)
-
- for var in self.var_maps[self.manifest_type]:
- if var in self.vars_to_split:
- split_pkgs = self._split_multilib(self.d.getVar(var))
- if split_pkgs is not None:
- pkgs = dict(list(pkgs.items()) + list(split_pkgs.items()))
- else:
- pkg_list = self.d.getVar(var)
- if pkg_list is not None:
- pkgs[self.var_maps[self.manifest_type][var]] = self.d.getVar(var)
-
- for pkg_type in sorted(pkgs):
- for pkg in sorted(pkgs[pkg_type].split()):
- manifest.write("%s,%s\n" % (pkg_type, pkg))
-
- def create_final(self):
- pass
-
- def create_full(self, pm):
- if not os.path.exists(self.initial_manifest):
- self.create_initial()
-
- initial_manifest = self.parse_initial_manifest()
- pkgs_to_install = list()
- for pkg_type in initial_manifest:
- pkgs_to_install += initial_manifest[pkg_type]
- if len(pkgs_to_install) == 0:
- return
-
- output = pm.dummy_install(pkgs_to_install)
-
- with open(self.full_manifest, 'w+') as manifest:
- pkg_re = re.compile('^Installing ([^ ]+) [^ ].*')
- for line in set(output.split('\n')):
- m = pkg_re.match(line)
- if m:
- manifest.write(m.group(1) + '\n')
-
- return
-
-
-class DpkgManifest(Manifest):
- def create_initial(self):
- with open(self.initial_manifest, "w+") as manifest:
- manifest.write(self.initial_manifest_file_header)
-
- for var in self.var_maps[self.manifest_type]:
- pkg_list = self.d.getVar(var)
-
- if pkg_list is None:
- continue
-
- for pkg in pkg_list.split():
- manifest.write("%s,%s\n" %
- (self.var_maps[self.manifest_type][var], pkg))
-
- def create_final(self):
- pass
-
- def create_full(self, pm):
- pass
-
def create_manifest(d, final_manifest=False, manifest_dir=None,
manifest_type=Manifest.MANIFEST_TYPE_IMAGE):
+ from oe.package_manager.rpm.manifest import RpmManifest
+ from oe.package_manager.ipk.manifest import OpkgManifest
+ from oe.package_manager.deb.manifest import DpkgManifest
manifest_map = {'rpm': RpmManifest,
'ipk': OpkgManifest,
'deb': DpkgManifest}
diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py
deleted file mode 100644
index 2ea8046332..0000000000
--- a/meta/lib/oe/package_manager.py
+++ /dev/null
@@ -1,1856 +0,0 @@
-#
-# SPDX-License-Identifier: GPL-2.0-only
-#
-
-from abc import ABCMeta, abstractmethod
-import os
-import glob
-import subprocess
-import shutil
-import re
-import collections
-import bb
-import tempfile
-import oe.utils
-import oe.path
-import string
-from oe.gpg_sign import get_signer
-import hashlib
-import fnmatch
-
-# this can be used by all PM backends to create the index files in parallel
-def create_index(arg):
- index_cmd = arg
-
- bb.note("Executing '%s' ..." % index_cmd)
- result = subprocess.check_output(index_cmd, stderr=subprocess.STDOUT, shell=True).decode("utf-8")
- if result:
- bb.note(result)
-
-def opkg_query(cmd_output):
- """
- This method parse the output from the package managerand return
- a dictionary with the information of the packages. This is used
- when the packages are in deb or ipk format.
- """
- verregex = re.compile(r' \([=<>]* [^ )]*\)')
- output = dict()
- pkg = ""
- arch = ""
- ver = ""
- filename = ""
- dep = []
- pkgarch = ""
- for line in cmd_output.splitlines():
- line = line.rstrip()
- if ':' in line:
- if line.startswith("Package: "):
- pkg = line.split(": ")[1]
- elif line.startswith("Architecture: "):
- arch = line.split(": ")[1]
- elif line.startswith("Version: "):
- ver = line.split(": ")[1]
- elif line.startswith("File: ") or line.startswith("Filename:"):
- filename = line.split(": ")[1]
- if "/" in filename:
- filename = os.path.basename(filename)
- elif line.startswith("Depends: "):
- depends = verregex.sub('', line.split(": ")[1])
- for depend in depends.split(", "):
- dep.append(depend)
- elif line.startswith("Recommends: "):
- recommends = verregex.sub('', line.split(": ")[1])
- for recommend in recommends.split(", "):
- dep.append("%s [REC]" % recommend)
- elif line.startswith("PackageArch: "):
- pkgarch = line.split(": ")[1]
-
- # When there is a blank line save the package information
- elif not line:
- # IPK doesn't include the filename
- if not filename:
- filename = "%s_%s_%s.ipk" % (pkg, ver, arch)
- if pkg:
- output[pkg] = {"arch":arch, "ver":ver,
- "filename":filename, "deps": dep, "pkgarch":pkgarch }
- pkg = ""
- arch = ""
- ver = ""
- filename = ""
- dep = []
- pkgarch = ""
-
- if pkg:
- if not filename:
- filename = "%s_%s_%s.ipk" % (pkg, ver, arch)
- output[pkg] = {"arch":arch, "ver":ver,
- "filename":filename, "deps": dep }
-
- return output
-
-def failed_postinsts_abort(pkgs, log_path):
- bb.fatal("""Postinstall scriptlets of %s have failed. If the intention is to defer them to first boot,
-then please place them into pkg_postinst_ontarget_${PN} ().
-Deferring to first boot via 'exit 1' is no longer supported.
-Details of the failure are in %s.""" %(pkgs, log_path))
-
-def generate_locale_archive(d, rootfs, target_arch, localedir):
- # Pretty sure we don't need this for locale archive generation but
- # keeping it to be safe...
- locale_arch_options = { \
- "arc": ["--uint32-align=4", "--little-endian"],
- "arceb": ["--uint32-align=4", "--big-endian"],
- "arm": ["--uint32-align=4", "--little-endian"],
- "armeb": ["--uint32-align=4", "--big-endian"],
- "aarch64": ["--uint32-align=4", "--little-endian"],
- "aarch64_be": ["--uint32-align=4", "--big-endian"],
- "sh4": ["--uint32-align=4", "--big-endian"],
- "powerpc": ["--uint32-align=4", "--big-endian"],
- "powerpc64": ["--uint32-align=4", "--big-endian"],
- "powerpc64le": ["--uint32-align=4", "--little-endian"],
- "mips": ["--uint32-align=4", "--big-endian"],
- "mipsisa32r6": ["--uint32-align=4", "--big-endian"],
- "mips64": ["--uint32-align=4", "--big-endian"],
- "mipsisa64r6": ["--uint32-align=4", "--big-endian"],
- "mipsel": ["--uint32-align=4", "--little-endian"],
- "mipsisa32r6el": ["--uint32-align=4", "--little-endian"],
- "mips64el": ["--uint32-align=4", "--little-endian"],
- "mipsisa64r6el": ["--uint32-align=4", "--little-endian"],
- "riscv64": ["--uint32-align=4", "--little-endian"],
- "riscv32": ["--uint32-align=4", "--little-endian"],
- "i586": ["--uint32-align=4", "--little-endian"],
- "i686": ["--uint32-align=4", "--little-endian"],
- "x86_64": ["--uint32-align=4", "--little-endian"]
- }
- if target_arch in locale_arch_options:
- arch_options = locale_arch_options[target_arch]
- else:
- bb.error("locale_arch_options not found for target_arch=" + target_arch)
- bb.fatal("unknown arch:" + target_arch + " for locale_arch_options")
-
- # Need to set this so cross-localedef knows where the archive is
- env = dict(os.environ)
- env["LOCALEARCHIVE"] = oe.path.join(localedir, "locale-archive")
-
- for name in sorted(os.listdir(localedir)):
- path = os.path.join(localedir, name)
- if os.path.isdir(path):
- cmd = ["cross-localedef", "--verbose"]
- cmd += arch_options
- cmd += ["--add-to-archive", path]
- subprocess.check_output(cmd, env=env, stderr=subprocess.STDOUT)
-
-class Indexer(object, metaclass=ABCMeta):
- def __init__(self, d, deploy_dir):
- self.d = d
- self.deploy_dir = deploy_dir
-
- @abstractmethod
- def write_index(self):
- pass
-
-
-class RpmIndexer(Indexer):
- def write_index(self):
- self.do_write_index(self.deploy_dir)
-
- def do_write_index(self, deploy_dir):
- if self.d.getVar('PACKAGE_FEED_SIGN') == '1':
- signer = get_signer(self.d, self.d.getVar('PACKAGE_FEED_GPG_BACKEND'))
- else:
- signer = None
-
- createrepo_c = bb.utils.which(os.environ['PATH'], "createrepo_c")
- result = create_index("%s --update -q %s" % (createrepo_c, deploy_dir))
- if result:
- bb.fatal(result)
-
- # Sign repomd
- if signer:
- sig_type = self.d.getVar('PACKAGE_FEED_GPG_SIGNATURE_TYPE')
- is_ascii_sig = (sig_type.upper() != "BIN")
- signer.detach_sign(os.path.join(deploy_dir, 'repodata', 'repomd.xml'),
- self.d.getVar('PACKAGE_FEED_GPG_NAME'),
- self.d.getVar('PACKAGE_FEED_GPG_PASSPHRASE_FILE'),
- armor=is_ascii_sig)
-
-class RpmSubdirIndexer(RpmIndexer):
- def write_index(self):
- bb.note("Generating package index for %s" %(self.deploy_dir))
- self.do_write_index(self.deploy_dir)
- for entry in os.walk(self.deploy_dir):
- if os.path.samefile(self.deploy_dir, entry[0]):
- for dir in entry[1]:
- if dir != 'repodata':
- dir_path = oe.path.join(self.deploy_dir, dir)
- bb.note("Generating package index for %s" %(dir_path))
- self.do_write_index(dir_path)
-
-class OpkgIndexer(Indexer):
- def write_index(self):
- arch_vars = ["ALL_MULTILIB_PACKAGE_ARCHS",
- "SDK_PACKAGE_ARCHS",
- ]
-
- opkg_index_cmd = bb.utils.which(os.getenv('PATH'), "opkg-make-index")
- if self.d.getVar('PACKAGE_FEED_SIGN') == '1':
- signer = get_signer(self.d, self.d.getVar('PACKAGE_FEED_GPG_BACKEND'))
- else:
- signer = None
-
- if not os.path.exists(os.path.join(self.deploy_dir, "Packages")):
- open(os.path.join(self.deploy_dir, "Packages"), "w").close()
-
- index_cmds = set()
- index_sign_files = set()
- for arch_var in arch_vars:
- archs = self.d.getVar(arch_var)
- if archs is None:
- continue
-
- for arch in archs.split():
- pkgs_dir = os.path.join(self.deploy_dir, arch)
- pkgs_file = os.path.join(pkgs_dir, "Packages")
-
- if not os.path.isdir(pkgs_dir):
- continue
-
- if not os.path.exists(pkgs_file):
- open(pkgs_file, "w").close()
-
- index_cmds.add('%s --checksum md5 --checksum sha256 -r %s -p %s -m %s' %
- (opkg_index_cmd, pkgs_file, pkgs_file, pkgs_dir))
-
- index_sign_files.add(pkgs_file)
-
- if len(index_cmds) == 0:
- bb.note("There are no packages in %s!" % self.deploy_dir)
- return
-
- oe.utils.multiprocess_launch(create_index, index_cmds, self.d)
-
- if signer:
- feed_sig_type = self.d.getVar('PACKAGE_FEED_GPG_SIGNATURE_TYPE')
- is_ascii_sig = (feed_sig_type.upper() != "BIN")
- for f in index_sign_files:
- signer.detach_sign(f,
- self.d.getVar('PACKAGE_FEED_GPG_NAME'),
- self.d.getVar('PACKAGE_FEED_GPG_PASSPHRASE_FILE'),
- armor=is_ascii_sig)
-
-
-class DpkgIndexer(Indexer):
- def _create_configs(self):
- bb.utils.mkdirhier(self.apt_conf_dir)
- bb.utils.mkdirhier(os.path.join(self.apt_conf_dir, "lists", "partial"))
- bb.utils.mkdirhier(os.path.join(self.apt_conf_dir, "apt.conf.d"))
- bb.utils.mkdirhier(os.path.join(self.apt_conf_dir, "preferences.d"))
-
- with open(os.path.join(self.apt_conf_dir, "preferences"),
- "w") as prefs_file:
- pass
- with open(os.path.join(self.apt_conf_dir, "sources.list"),
- "w+") as sources_file:
- pass
-
- with open(self.apt_conf_file, "w") as apt_conf:
- with open(os.path.join(self.d.expand("${STAGING_ETCDIR_NATIVE}"),
- "apt", "apt.conf.sample")) as apt_conf_sample:
- for line in apt_conf_sample.read().split("\n"):
- line = re.sub(r"#ROOTFS#", "/dev/null", line)
- line = re.sub(r"#APTCONF#", self.apt_conf_dir, line)
- apt_conf.write(line + "\n")
-
- def write_index(self):
- self.apt_conf_dir = os.path.join(self.d.expand("${APTCONF_TARGET}"),
- "apt-ftparchive")
- self.apt_conf_file = os.path.join(self.apt_conf_dir, "apt.conf")
- self._create_configs()
-
- os.environ['APT_CONFIG'] = self.apt_conf_file
-
- pkg_archs = self.d.getVar('PACKAGE_ARCHS')
- if pkg_archs is not None:
- arch_list = pkg_archs.split()
- sdk_pkg_archs = self.d.getVar('SDK_PACKAGE_ARCHS')
- if sdk_pkg_archs is not None:
- for a in sdk_pkg_archs.split():
- if a not in pkg_archs:
- arch_list.append(a)
-
- all_mlb_pkg_arch_list = (self.d.getVar('ALL_MULTILIB_PACKAGE_ARCHS') or "").split()
- arch_list.extend(arch for arch in all_mlb_pkg_arch_list if arch not in arch_list)
-
- apt_ftparchive = bb.utils.which(os.getenv('PATH'), "apt-ftparchive")
- gzip = bb.utils.which(os.getenv('PATH'), "gzip")
-
- index_cmds = []
- deb_dirs_found = False
- for arch in arch_list:
- arch_dir = os.path.join(self.deploy_dir, arch)
- if not os.path.isdir(arch_dir):
- continue
-
- cmd = "cd %s; PSEUDO_UNLOAD=1 %s packages . > Packages;" % (arch_dir, apt_ftparchive)
-
- cmd += "%s -fcn Packages > Packages.gz;" % gzip
-
- with open(os.path.join(arch_dir, "Release"), "w+") as release:
- release.write("Label: %s\n" % arch)
-
- cmd += "PSEUDO_UNLOAD=1 %s release . >> Release" % apt_ftparchive
-
- index_cmds.append(cmd)
-
- deb_dirs_found = True
-
- if not deb_dirs_found:
- bb.note("There are no packages in %s" % self.deploy_dir)
- return
-
- oe.utils.multiprocess_launch(create_index, index_cmds, self.d)
- if self.d.getVar('PACKAGE_FEED_SIGN') == '1':
- raise NotImplementedError('Package feed signing not implementd for dpkg')
-
-
-
-class PkgsList(object, metaclass=ABCMeta):
- def __init__(self, d, rootfs_dir):
- self.d = d
- self.rootfs_dir = rootfs_dir
-
- @abstractmethod
- def list_pkgs(self):
- pass
-
-class RpmPkgsList(PkgsList):
- def list_pkgs(self):
- return RpmPM(self.d, self.rootfs_dir, self.d.getVar('TARGET_VENDOR'), needfeed=False).list_installed()
-
-class OpkgPkgsList(PkgsList):
- def __init__(self, d, rootfs_dir, config_file):
- super(OpkgPkgsList, self).__init__(d, rootfs_dir)
-
- self.opkg_cmd = bb.utils.which(os.getenv('PATH'), "opkg")
- self.opkg_args = "-f %s -o %s " % (config_file, rootfs_dir)
- self.opkg_args += self.d.getVar("OPKG_ARGS")
-
- def list_pkgs(self, format=None):
- cmd = "%s %s status" % (self.opkg_cmd, self.opkg_args)
-
- # opkg returns success even when it printed some
- # "Collected errors:" report to stderr. Mixing stderr into
- # stdout then leads to random failures later on when
- # parsing the output. To avoid this we need to collect both
- # output streams separately and check for empty stderr.
- p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
- cmd_output, cmd_stderr = p.communicate()
- cmd_output = cmd_output.decode("utf-8")
- cmd_stderr = cmd_stderr.decode("utf-8")
- if p.returncode or cmd_stderr:
- bb.fatal("Cannot get the installed packages list. Command '%s' "
- "returned %d and stderr:\n%s" % (cmd, p.returncode, cmd_stderr))
-
- return opkg_query(cmd_output)
-
-
-class DpkgPkgsList(PkgsList):
-
- def list_pkgs(self):
- cmd = [bb.utils.which(os.getenv('PATH'), "dpkg-query"),
- "--admindir=%s/var/lib/dpkg" % self.rootfs_dir,
- "-W"]
-
- cmd.append("-f=Package: ${Package}\nArchitecture: ${PackageArch}\nVersion: ${Version}\nFile: ${Package}_${Version}_${Architecture}.deb\nDepends: ${Depends}\nRecommends: ${Recommends}\n\n")
-
- try:
- cmd_output = subprocess.check_output(cmd, stderr=subprocess.STDOUT).strip().decode("utf-8")
- except subprocess.CalledProcessError as e:
- bb.fatal("Cannot get the installed packages list. Command '%s' "
- "returned %d:\n%s" % (' '.join(cmd), e.returncode, e.output.decode("utf-8")))
-
- return opkg_query(cmd_output)
-
-
-class PackageManager(object, metaclass=ABCMeta):
- """
- This is an abstract class. Do not instantiate this directly.
- """
-
- def __init__(self, d, target_rootfs):
- self.d = d
- self.target_rootfs = target_rootfs
- self.deploy_dir = None
- self.deploy_lock = None
- self._initialize_intercepts()
-
- def _initialize_intercepts(self):
- bb.note("Initializing intercept dir for %s" % self.target_rootfs)
- # As there might be more than one instance of PackageManager operating at the same time
- # we need to isolate the intercept_scripts directories from each other,
- # hence the ugly hash digest in dir name.
- self.intercepts_dir = os.path.join(self.d.getVar('WORKDIR'), "intercept_scripts-%s" %
- (hashlib.sha256(self.target_rootfs.encode()).hexdigest()))
-
- postinst_intercepts = (self.d.getVar("POSTINST_INTERCEPTS") or "").split()
- if not postinst_intercepts:
- postinst_intercepts_path = self.d.getVar("POSTINST_INTERCEPTS_PATH")
- if not postinst_intercepts_path:
- postinst_intercepts_path = self.d.getVar("POSTINST_INTERCEPTS_DIR") or self.d.expand("${COREBASE}/scripts/postinst-intercepts")
- postinst_intercepts = oe.path.which_wild('*', postinst_intercepts_path)
-
- bb.debug(1, 'Collected intercepts:\n%s' % ''.join(' %s\n' % i for i in postinst_intercepts))
- bb.utils.remove(self.intercepts_dir, True)
- bb.utils.mkdirhier(self.intercepts_dir)
- for intercept in postinst_intercepts:
- bb.utils.copyfile(intercept, os.path.join(self.intercepts_dir, os.path.basename(intercept)))
-
- @abstractmethod
- def _handle_intercept_failure(self, failed_script):
- pass
-
- def _postpone_to_first_boot(self, postinst_intercept_hook):
- with open(postinst_intercept_hook) as intercept:
- registered_pkgs = None
- for line in intercept.read().split("\n"):
- m = re.match(r"^##PKGS:(.*)", line)
- if m is not None:
- registered_pkgs = m.group(1).strip()
- break
-
- if registered_pkgs is not None:
- bb.note("If an image is being built, the postinstalls for the following packages "
- "will be postponed for first boot: %s" %
- registered_pkgs)
-
- # call the backend dependent handler
- self._handle_intercept_failure(registered_pkgs)
-
-
- def run_intercepts(self, populate_sdk=None):
- intercepts_dir = self.intercepts_dir
-
- bb.note("Running intercept scripts:")
- os.environ['D'] = self.target_rootfs
- os.environ['STAGING_DIR_NATIVE'] = self.d.getVar('STAGING_DIR_NATIVE')
- for script in os.listdir(intercepts_dir):
- script_full = os.path.join(intercepts_dir, script)
-
- if script == "postinst_intercept" or not os.access(script_full, os.X_OK):
- continue
-
- # we do not want to run any multilib variant of this
- if script.startswith("delay_to_first_boot"):
- self._postpone_to_first_boot(script_full)
- continue
-
- if populate_sdk == 'host' and self.d.getVar('SDK_OS') == 'mingw32':
- bb.note("The postinstall intercept hook '%s' could not be executed due to missing wine support, details in %s/log.do_%s"
- % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK')))
- continue
-
- bb.note("> Executing %s intercept ..." % script)
-
- try:
- output = subprocess.check_output(script_full, stderr=subprocess.STDOUT)
- if output: bb.note(output.decode("utf-8"))
- except subprocess.CalledProcessError as e:
- bb.note("Exit code %d. Output:\n%s" % (e.returncode, e.output.decode("utf-8")))
- if populate_sdk == 'host':
- bb.fatal("The postinstall intercept hook '%s' failed, details in %s/log.do_%s" % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK')))
- elif populate_sdk == 'target':
- if "qemuwrapper: qemu usermode is not supported" in e.output.decode("utf-8"):
- bb.note("The postinstall intercept hook '%s' could not be executed due to missing qemu usermode support, details in %s/log.do_%s"
- % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK')))
- else:
- bb.fatal("The postinstall intercept hook '%s' failed, details in %s/log.do_%s" % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK')))
- else:
- if "qemuwrapper: qemu usermode is not supported" in e.output.decode("utf-8"):
- bb.note("The postinstall intercept hook '%s' could not be executed due to missing qemu usermode support, details in %s/log.do_%s"
- % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK')))
- self._postpone_to_first_boot(script_full)
- else:
- bb.fatal("The postinstall intercept hook '%s' failed, details in %s/log.do_%s" % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK')))
-
- @abstractmethod
- def update(self):
- """
- Update the package manager package database.
- """
- pass
-
- @abstractmethod
- def install(self, pkgs, attempt_only=False):
- """
- Install a list of packages. 'pkgs' is a list object. If 'attempt_only' is
- True, installation failures are ignored.
- """
- pass
-
- @abstractmethod
- def remove(self, pkgs, with_dependencies=True):
- """
- Remove a list of packages. 'pkgs' is a list object. If 'with_dependencies'
- is False, then any dependencies are left in place.
- """
- pass
-
- @abstractmethod
- def write_index(self):
- """
- This function creates the index files
- """
- pass
-
- @abstractmethod
- def remove_packaging_data(self):
- pass
-
- @abstractmethod
- def list_installed(self):
- pass
-
- @abstractmethod
- def extract(self, pkg):
- """
- Returns the path to a tmpdir where resides the contents of a package.
- Deleting the tmpdir is responsability of the caller.
- """
- pass
-
- @abstractmethod
- def insert_feeds_uris(self, feed_uris, feed_base_paths, feed_archs):
- """
- Add remote package feeds into repository manager configuration. The parameters
- for the feeds are set by feed_uris, feed_base_paths and feed_archs.
- See http://www.yoctoproject.org/docs/current/ref-manual/ref-manual.html#var-PACKAGE_FEED_URIS
- for their description.
- """
- pass
-
- def install_glob(self, globs, sdk=False):
- """
- Install all packages that match a glob.
- """
- # TODO don't have sdk here but have a property on the superclass
- # (and respect in install_complementary)
- if sdk:
- pkgdatadir = self.d.expand("${TMPDIR}/pkgdata/${SDK_SYS}")
- else:
- pkgdatadir = self.d.getVar("PKGDATA_DIR")
-
- try:
- bb.note("Installing globbed packages...")
- cmd = ["oe-pkgdata-util", "-p", pkgdatadir, "list-pkgs", globs]
- pkgs = subprocess.check_output(cmd, stderr=subprocess.STDOUT).decode("utf-8")
- self.install(pkgs.split(), attempt_only=True)
- except subprocess.CalledProcessError as e:
- # Return code 1 means no packages matched
- if e.returncode != 1:
- bb.fatal("Could not compute globbed packages list. Command "
- "'%s' returned %d:\n%s" %
- (' '.join(cmd), e.returncode, e.output.decode("utf-8")))
-
- def install_complementary(self, globs=None):
- """
- Install complementary packages based upon the list of currently installed
- packages e.g. locales, *-dev, *-dbg, etc. This will only attempt to install
- these packages, if they don't exist then no error will occur. Note: every
- backend needs to call this function explicitly after the normal package
- installation
- """
- if globs is None:
- globs = self.d.getVar('IMAGE_INSTALL_COMPLEMENTARY')
- split_linguas = set()
-
- for translation in self.d.getVar('IMAGE_LINGUAS').split():
- split_linguas.add(translation)
- split_linguas.add(translation.split('-')[0])
-
- split_linguas = sorted(split_linguas)
-
- for lang in split_linguas:
- globs += " *-locale-%s" % lang
- for complementary_linguas in (self.d.getVar('IMAGE_LINGUAS_COMPLEMENTARY') or "").split():
- globs += (" " + complementary_linguas) % lang
-
- if globs is None:
- return
-
- # we need to write the list of installed packages to a file because the
- # oe-pkgdata-util reads it from a file
- with tempfile.NamedTemporaryFile(mode="w+", prefix="installed-pkgs") as installed_pkgs:
- pkgs = self.list_installed()
- output = oe.utils.format_pkg_list(pkgs, "arch")
- installed_pkgs.write(output)
- installed_pkgs.flush()
-
- cmd = ["oe-pkgdata-util",
- "-p", self.d.getVar('PKGDATA_DIR'), "glob", installed_pkgs.name,
- globs]
- exclude = self.d.getVar('PACKAGE_EXCLUDE_COMPLEMENTARY')
- if exclude:
- cmd.extend(['--exclude=' + '|'.join(exclude.split())])
- try:
- bb.note("Installing complementary packages ...")
- bb.note('Running %s' % cmd)
- complementary_pkgs = subprocess.check_output(cmd, stderr=subprocess.STDOUT).decode("utf-8")
- self.install(complementary_pkgs.split(), attempt_only=True)
- except subprocess.CalledProcessError as e:
- bb.fatal("Could not compute complementary packages list. Command "
- "'%s' returned %d:\n%s" %
- (' '.join(cmd), e.returncode, e.output.decode("utf-8")))
-
- target_arch = self.d.getVar('TARGET_ARCH')
- localedir = oe.path.join(self.target_rootfs, self.d.getVar("libdir"), "locale")
- if os.path.exists(localedir) and os.listdir(localedir):
- generate_locale_archive(self.d, self.target_rootfs, target_arch, localedir)
- # And now delete the binary locales
- self.remove(fnmatch.filter(self.list_installed(), "glibc-binary-localedata-*"), False)
-
- def deploy_dir_lock(self):
- if self.deploy_dir is None:
- raise RuntimeError("deploy_dir is not set!")
-
- lock_file_name = os.path.join(self.deploy_dir, "deploy.lock")
-
- self.deploy_lock = bb.utils.lockfile(lock_file_name)
-
- def deploy_dir_unlock(self):
- if self.deploy_lock is None:
- return
-
- bb.utils.unlockfile(self.deploy_lock)
-
- self.deploy_lock = None
-
- def construct_uris(self, uris, base_paths):
- """
- Construct URIs based on the following pattern: uri/base_path where 'uri'
- and 'base_path' correspond to each element of the corresponding array
- argument leading to len(uris) x len(base_paths) elements on the returned
- array
- """
- def _append(arr1, arr2, sep='/'):
- res = []
- narr1 = [a.rstrip(sep) for a in arr1]
- narr2 = [a.rstrip(sep).lstrip(sep) for a in arr2]
- for a1 in narr1:
- if arr2:
- for a2 in narr2:
- res.append("%s%s%s" % (a1, sep, a2))
- else:
- res.append(a1)
- return res
- return _append(uris, base_paths)
-
-def create_packages_dir(d, subrepo_dir, deploydir, taskname, filterbydependencies):
- """
- Go through our do_package_write_X dependencies and hardlink the packages we depend
- upon into the repo directory. This prevents us seeing other packages that may
- have been built that we don't depend upon and also packages for architectures we don't
- support.
- """
- import errno
-
- taskdepdata = d.getVar("BB_TASKDEPDATA", False)
- mytaskname = d.getVar("BB_RUNTASK")
- pn = d.getVar("PN")
- seendirs = set()
- multilibs = {}
-
- bb.utils.remove(subrepo_dir, recurse=True)
- bb.utils.mkdirhier(subrepo_dir)
-
- # Detect bitbake -b usage
- nodeps = d.getVar("BB_LIMITEDDEPS") or False
- if nodeps or not filterbydependencies:
- oe.path.symlink(deploydir, subrepo_dir, True)
- return
-
- start = None
- for dep in taskdepdata:
- data = taskdepdata[dep]
- if data[1] == mytaskname and data[0] == pn:
- start = dep
- break
- if start is None:
- bb.fatal("Couldn't find ourself in BB_TASKDEPDATA?")
- pkgdeps = set()
- start = [start]
- seen = set(start)
- # Support direct dependencies (do_rootfs -> do_package_write_X)
- # or indirect dependencies within PN (do_populate_sdk_ext -> do_rootfs -> do_package_write_X)
- while start:
- next = []
- for dep2 in start:
- for dep in taskdepdata[dep2][3]:
- if taskdepdata[dep][0] != pn:
- if "do_" + taskname in dep:
- pkgdeps.add(dep)
- elif dep not in seen:
- next.append(dep)
- seen.add(dep)
- start = next
-
- for dep in pkgdeps:
- c = taskdepdata[dep][0]
- manifest, d2 = oe.sstatesig.find_sstate_manifest(c, taskdepdata[dep][2], taskname, d, multilibs)
- if not manifest:
- bb.fatal("No manifest generated from: %s in %s" % (c, taskdepdata[dep][2]))
- if not os.path.exists(manifest):
- continue
- with open(manifest, "r") as f:
- for l in f:
- l = l.strip()
- deploydir = os.path.normpath(deploydir)
- if bb.data.inherits_class('packagefeed-stability', d):
- dest = l.replace(deploydir + "-prediff", "")
- else:
- dest = l.replace(deploydir, "")
- dest = subrepo_dir + dest
- if l.endswith("/"):
- if dest not in seendirs:
- bb.utils.mkdirhier(dest)
- seendirs.add(dest)
- continue
- # Try to hardlink the file, copy if that fails
- destdir = os.path.dirname(dest)
- if destdir not in seendirs:
- bb.utils.mkdirhier(destdir)
- seendirs.add(destdir)
- try:
- os.link(l, dest)
- except OSError as err:
- if err.errno == errno.EXDEV:
- bb.utils.copyfile(l, dest)
- else:
- raise
-
-class RpmPM(PackageManager):
- def __init__(self,
- d,
- target_rootfs,
- target_vendor,
- task_name='target',
- arch_var=None,
- os_var=None,
- rpm_repo_workdir="oe-rootfs-repo",
- filterbydependencies=True,
- needfeed=True):
- super(RpmPM, self).__init__(d, target_rootfs)
- self.target_vendor = target_vendor
- self.task_name = task_name
- if arch_var == None:
- self.archs = self.d.getVar('ALL_MULTILIB_PACKAGE_ARCHS').replace("-","_")
- else:
- self.archs = self.d.getVar(arch_var).replace("-","_")
- if task_name == "host":
- self.primary_arch = self.d.getVar('SDK_ARCH')
- else:
- self.primary_arch = self.d.getVar('MACHINE_ARCH')
-
- if needfeed:
- self.rpm_repo_dir = oe.path.join(self.d.getVar('WORKDIR'), rpm_repo_workdir)
- create_packages_dir(self.d, oe.path.join(self.rpm_repo_dir, "rpm"), d.getVar("DEPLOY_DIR_RPM"), "package_write_rpm", filterbydependencies)
-
- self.saved_packaging_data = self.d.expand('${T}/saved_packaging_data/%s' % self.task_name)
- if not os.path.exists(self.d.expand('${T}/saved_packaging_data')):
- bb.utils.mkdirhier(self.d.expand('${T}/saved_packaging_data'))
- self.packaging_data_dirs = ['etc/rpm', 'etc/rpmrc', 'etc/dnf', 'var/lib/rpm', 'var/lib/dnf', 'var/cache/dnf']
- self.solution_manifest = self.d.expand('${T}/saved/%s_solution' %
- self.task_name)
- if not os.path.exists(self.d.expand('${T}/saved')):
- bb.utils.mkdirhier(self.d.expand('${T}/saved'))
-
- def _configure_dnf(self):
- # libsolv handles 'noarch' internally, we don't need to specify it explicitly
- archs = [i for i in reversed(self.archs.split()) if i not in ["any", "all", "noarch"]]
- # This prevents accidental matching against libsolv's built-in policies
- if len(archs) <= 1:
- archs = archs + ["bogusarch"]
- # This architecture needs to be upfront so that packages using it are properly prioritized
- archs = ["sdk_provides_dummy_target"] + archs
- confdir = "%s/%s" %(self.target_rootfs, "etc/dnf/vars/")
- bb.utils.mkdirhier(confdir)
- open(confdir + "arch", 'w').write(":".join(archs))
- distro_codename = self.d.getVar('DISTRO_CODENAME')
- open(confdir + "releasever", 'w').write(distro_codename if distro_codename is not None else '')
-
- open(oe.path.join(self.target_rootfs, "etc/dnf/dnf.conf"), 'w').write("")
-
-
- def _configure_rpm(self):
- # We need to configure rpm to use our primary package architecture as the installation architecture,
- # and to make it compatible with other package architectures that we use.
- # Otherwise it will refuse to proceed with packages installation.
- platformconfdir = "%s/%s" %(self.target_rootfs, "etc/rpm/")
- rpmrcconfdir = "%s/%s" %(self.target_rootfs, "etc/")
- bb.utils.mkdirhier(platformconfdir)
- open(platformconfdir + "platform", 'w').write("%s-pc-linux" % self.primary_arch)
- with open(rpmrcconfdir + "rpmrc", 'w') as f:
- f.write("arch_compat: %s: %s\n" % (self.primary_arch, self.archs if len(self.archs) > 0 else self.primary_arch))
- f.write("buildarch_compat: %s: noarch\n" % self.primary_arch)
-
- open(platformconfdir + "macros", 'w').write("%_transaction_color 7\n")
- if self.d.getVar('RPM_PREFER_ELF_ARCH'):
- open(platformconfdir + "macros", 'a').write("%%_prefer_color %s" % (self.d.getVar('RPM_PREFER_ELF_ARCH')))
- else:
- open(platformconfdir + "macros", 'a').write("%_prefer_color 7")
-
- if self.d.getVar('RPM_SIGN_PACKAGES') == '1':
- signer = get_signer(self.d, self.d.getVar('RPM_GPG_BACKEND'))
- pubkey_path = oe.path.join(self.d.getVar('B'), 'rpm-key')
- signer.export_pubkey(pubkey_path, self.d.getVar('RPM_GPG_NAME'))
- rpm_bin = bb.utils.which(os.getenv('PATH'), "rpmkeys")
- cmd = [rpm_bin, '--root=%s' % self.target_rootfs, '--import', pubkey_path]
- try:
- subprocess.check_output(cmd, stderr=subprocess.STDOUT)
- except subprocess.CalledProcessError as e:
- bb.fatal("Importing GPG key failed. Command '%s' "
- "returned %d:\n%s" % (' '.join(cmd), e.returncode, e.output.decode("utf-8")))
-
- def create_configs(self):
- self._configure_dnf()
- self._configure_rpm()
-
- def write_index(self):
- lockfilename = self.d.getVar('DEPLOY_DIR_RPM') + "/rpm.lock"
- lf = bb.utils.lockfile(lockfilename, False)
- RpmIndexer(self.d, self.rpm_repo_dir).write_index()
- bb.utils.unlockfile(lf)
-
- def insert_feeds_uris(self, feed_uris, feed_base_paths, feed_archs):
- from urllib.parse import urlparse
-
- if feed_uris == "":
- return
-
- gpg_opts = ''
- if self.d.getVar('PACKAGE_FEED_SIGN') == '1':
- gpg_opts += 'repo_gpgcheck=1\n'
- gpg_opts += 'gpgkey=file://%s/pki/packagefeed-gpg/PACKAGEFEED-GPG-KEY-%s-%s\n' % (self.d.getVar('sysconfdir'), self.d.getVar('DISTRO'), self.d.getVar('DISTRO_CODENAME'))
-
- if self.d.getVar('RPM_SIGN_PACKAGES') != '1':
- gpg_opts += 'gpgcheck=0\n'
-
- bb.utils.mkdirhier(oe.path.join(self.target_rootfs, "etc", "yum.repos.d"))
- remote_uris = self.construct_uris(feed_uris.split(), feed_base_paths.split())
- for uri in remote_uris:
- repo_base = "oe-remote-repo" + "-".join(urlparse(uri).path.split("/"))
- if feed_archs is not None:
- for arch in feed_archs.split():
- repo_uri = uri + "/" + arch
- repo_id = "oe-remote-repo" + "-".join(urlparse(repo_uri).path.split("/"))
- repo_name = "OE Remote Repo:" + " ".join(urlparse(repo_uri).path.split("/"))
- open(oe.path.join(self.target_rootfs, "etc", "yum.repos.d", repo_base + ".repo"), 'a').write(
- "[%s]\nname=%s\nbaseurl=%s\n%s\n" % (repo_id, repo_name, repo_uri, gpg_opts))
- else:
- repo_name = "OE Remote Repo:" + " ".join(urlparse(uri).path.split("/"))
- repo_uri = uri
- open(oe.path.join(self.target_rootfs, "etc", "yum.repos.d", repo_base + ".repo"), 'w').write(
- "[%s]\nname=%s\nbaseurl=%s\n%s" % (repo_base, repo_name, repo_uri, gpg_opts))
-
- def _prepare_pkg_transaction(self):
- os.environ['D'] = self.target_rootfs
- os.environ['OFFLINE_ROOT'] = self.target_rootfs
- os.environ['IPKG_OFFLINE_ROOT'] = self.target_rootfs
- os.environ['OPKG_OFFLINE_ROOT'] = self.target_rootfs
- os.environ['INTERCEPT_DIR'] = self.intercepts_dir
- os.environ['NATIVE_ROOT'] = self.d.getVar('STAGING_DIR_NATIVE')
-
-
- def install(self, pkgs, attempt_only = False):
- if len(pkgs) == 0:
- return
- self._prepare_pkg_transaction()
-
- bad_recommendations = self.d.getVar('BAD_RECOMMENDATIONS')
- package_exclude = self.d.getVar('PACKAGE_EXCLUDE')
- exclude_pkgs = (bad_recommendations.split() if bad_recommendations else []) + (package_exclude.split() if package_exclude else [])
-
- output = self._invoke_dnf((["--skip-broken"] if attempt_only else []) +
- (["-x", ",".join(exclude_pkgs)] if len(exclude_pkgs) > 0 else []) +
- (["--setopt=install_weak_deps=False"] if self.d.getVar('NO_RECOMMENDATIONS') == "1" else []) +
- (["--nogpgcheck"] if self.d.getVar('RPM_SIGN_PACKAGES') != '1' else ["--setopt=gpgcheck=True"]) +
- ["install"] +
- pkgs)
-
- failed_scriptlets_pkgnames = collections.OrderedDict()
- for line in output.splitlines():
- if line.startswith("Error in POSTIN scriptlet in rpm package"):
- failed_scriptlets_pkgnames[line.split()[-1]] = True
-
- if len(failed_scriptlets_pkgnames) > 0:
- failed_postinsts_abort(list(failed_scriptlets_pkgnames.keys()), self.d.expand("${T}/log.do_${BB_CURRENTTASK}"))
-
- def remove(self, pkgs, with_dependencies = True):
- if not pkgs:
- return
-
- self._prepare_pkg_transaction()
-
- if with_dependencies:
- self._invoke_dnf(["remove"] + pkgs)
- else:
- cmd = bb.utils.which(os.getenv('PATH'), "rpm")
- args = ["-e", "-v", "--nodeps", "--root=%s" %self.target_rootfs]
-
- try:
- bb.note("Running %s" % ' '.join([cmd] + args + pkgs))
- output = subprocess.check_output([cmd] + args + pkgs, stderr=subprocess.STDOUT).decode("utf-8")
- bb.note(output)
- except subprocess.CalledProcessError as e:
- bb.fatal("Could not invoke rpm. Command "
- "'%s' returned %d:\n%s" % (' '.join([cmd] + args + pkgs), e.returncode, e.output.decode("utf-8")))
-
- def upgrade(self):
- self._prepare_pkg_transaction()
- self._invoke_dnf(["upgrade"])
-
- def autoremove(self):
- self._prepare_pkg_transaction()
- self._invoke_dnf(["autoremove"])
-
- def remove_packaging_data(self):
- self._invoke_dnf(["clean", "all"])
- for dir in self.packaging_data_dirs:
- bb.utils.remove(oe.path.join(self.target_rootfs, dir), True)
-
- def backup_packaging_data(self):
- # Save the packaging dirs for increment rpm image generation
- if os.path.exists(self.saved_packaging_data):
- bb.utils.remove(self.saved_packaging_data, True)
- for i in self.packaging_data_dirs:
- source_dir = oe.path.join(self.target_rootfs, i)
- target_dir = oe.path.join(self.saved_packaging_data, i)
- if os.path.isdir(source_dir):
- shutil.copytree(source_dir, target_dir, symlinks=True)
- elif os.path.isfile(source_dir):
- shutil.copy2(source_dir, target_dir)
-
- def recovery_packaging_data(self):
- # Move the rpmlib back
- if os.path.exists(self.saved_packaging_data):
- for i in self.packaging_data_dirs:
- target_dir = oe.path.join(self.target_rootfs, i)
- if os.path.exists(target_dir):
- bb.utils.remove(target_dir, True)
- source_dir = oe.path.join(self.saved_packaging_data, i)
- if os.path.isdir(source_dir):
- shutil.copytree(source_dir, target_dir, symlinks=True)
- elif os.path.isfile(source_dir):
- shutil.copy2(source_dir, target_dir)
-
- def list_installed(self):
- output = self._invoke_dnf(["repoquery", "--installed", "--queryformat", "Package: %{name} %{arch} %{version} %{name}-%{version}-%{release}.%{arch}.rpm\nDependencies:\n%{requires}\nRecommendations:\n%{recommends}\nDependenciesEndHere:\n"],
- print_output = False)
- packages = {}
- current_package = None
- current_deps = None
- current_state = "initial"
- for line in output.splitlines():
- if line.startswith("Package:"):
- package_info = line.split(" ")[1:]
- current_package = package_info[0]
- package_arch = package_info[1]
- package_version = package_info[2]
- package_rpm = package_info[3]
- packages[current_package] = {"arch":package_arch, "ver":package_version, "filename":package_rpm}
- current_deps = []
- elif line.startswith("Dependencies:"):
- current_state = "dependencies"
- elif line.startswith("Recommendations"):
- current_state = "recommendations"
- elif line.startswith("DependenciesEndHere:"):
- current_state = "initial"
- packages[current_package]["deps"] = current_deps
- elif len(line) > 0:
- if current_state == "dependencies":
- current_deps.append(line)
- elif current_state == "recommendations":
- current_deps.append("%s [REC]" % line)
-
- return packages
-
- def update(self):
- self._invoke_dnf(["makecache", "--refresh"])
-
- def _invoke_dnf(self, dnf_args, fatal = True, print_output = True ):
- os.environ['RPM_ETCCONFIGDIR'] = self.target_rootfs
-
- dnf_cmd = bb.utils.which(os.getenv('PATH'), "dnf")
- standard_dnf_args = ["-v", "--rpmverbosity=info", "-y",
- "-c", oe.path.join(self.target_rootfs, "etc/dnf/dnf.conf"),
- "--setopt=reposdir=%s" %(oe.path.join(self.target_rootfs, "etc/yum.repos.d")),
- "--installroot=%s" % (self.target_rootfs),
- "--setopt=logdir=%s" % (self.d.getVar('T'))
- ]
- if hasattr(self, "rpm_repo_dir"):
- standard_dnf_args.append("--repofrompath=oe-repo,%s" % (self.rpm_repo_dir))
- cmd = [dnf_cmd] + standard_dnf_args + dnf_args
- bb.note('Running %s' % ' '.join(cmd))
- try:
- output = subprocess.check_output(cmd,stderr=subprocess.STDOUT).decode("utf-8")
- if print_output:
- bb.debug(1, output)
- return output
- except subprocess.CalledProcessError as e:
- if print_output:
- (bb.note, bb.fatal)[fatal]("Could not invoke dnf. Command "
- "'%s' returned %d:\n%s" % (' '.join(cmd), e.returncode, e.output.decode("utf-8")))
- else:
- (bb.note, bb.fatal)[fatal]("Could not invoke dnf. Command "
- "'%s' returned %d:" % (' '.join(cmd), e.returncode))
- return e.output.decode("utf-8")
-
- def dump_install_solution(self, pkgs):
- open(self.solution_manifest, 'w').write(" ".join(pkgs))
- return pkgs
-
- def load_old_install_solution(self):
- if not os.path.exists(self.solution_manifest):
- return []
- with open(self.solution_manifest, 'r') as fd:
- return fd.read().split()
-
- def _script_num_prefix(self, path):
- files = os.listdir(path)
- numbers = set()
- numbers.add(99)
- for f in files:
- numbers.add(int(f.split("-")[0]))
- return max(numbers) + 1
-
- def save_rpmpostinst(self, pkg):
- bb.note("Saving postinstall script of %s" % (pkg))
- cmd = bb.utils.which(os.getenv('PATH'), "rpm")
- args = ["-q", "--root=%s" % self.target_rootfs, "--queryformat", "%{postin}", pkg]
-
- try:
- output = subprocess.check_output([cmd] + args,stderr=subprocess.STDOUT).decode("utf-8")
- except subprocess.CalledProcessError as e:
- bb.fatal("Could not invoke rpm. Command "
- "'%s' returned %d:\n%s" % (' '.join([cmd] + args), e.returncode, e.output.decode("utf-8")))
-
- # may need to prepend #!/bin/sh to output
-
- target_path = oe.path.join(self.target_rootfs, self.d.expand('${sysconfdir}/rpm-postinsts/'))
- bb.utils.mkdirhier(target_path)
- num = self._script_num_prefix(target_path)
- saved_script_name = oe.path.join(target_path, "%d-%s" % (num, pkg))
- open(saved_script_name, 'w').write(output)
- os.chmod(saved_script_name, 0o755)
-
- def _handle_intercept_failure(self, registered_pkgs):
- rpm_postinsts_dir = self.target_rootfs + self.d.expand('${sysconfdir}/rpm-postinsts/')
- bb.utils.mkdirhier(rpm_postinsts_dir)
-
- # Save the package postinstalls in /etc/rpm-postinsts
- for pkg in registered_pkgs.split():
- self.save_rpmpostinst(pkg)
-
- def extract(self, pkg):
- output = self._invoke_dnf(["repoquery", "--queryformat", "%{location}", pkg])
- pkg_name = output.splitlines()[-1]
- if not pkg_name.endswith(".rpm"):
- bb.fatal("dnf could not find package %s in repository: %s" %(pkg, output))
- pkg_path = oe.path.join(self.rpm_repo_dir, pkg_name)
-
- cpio_cmd = bb.utils.which(os.getenv("PATH"), "cpio")
- rpm2cpio_cmd = bb.utils.which(os.getenv("PATH"), "rpm2cpio")
-
- if not os.path.isfile(pkg_path):
- bb.fatal("Unable to extract package for '%s'."
- "File %s doesn't exists" % (pkg, pkg_path))
-
- tmp_dir = tempfile.mkdtemp()
- current_dir = os.getcwd()
- os.chdir(tmp_dir)
-
- try:
- cmd = "%s %s | %s -idmv" % (rpm2cpio_cmd, pkg_path, cpio_cmd)
- output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
- except subprocess.CalledProcessError as e:
- bb.utils.remove(tmp_dir, recurse=True)
- bb.fatal("Unable to extract %s package. Command '%s' "
- "returned %d:\n%s" % (pkg_path, cmd, e.returncode, e.output.decode("utf-8")))
- except OSError as e:
- bb.utils.remove(tmp_dir, recurse=True)
- bb.fatal("Unable to extract %s package. Command '%s' "
- "returned %d:\n%s at %s" % (pkg_path, cmd, e.errno, e.strerror, e.filename))
-
- bb.note("Extracted %s to %s" % (pkg_path, tmp_dir))
- os.chdir(current_dir)
-
- return tmp_dir
-
-
-class OpkgDpkgPM(PackageManager):
- def __init__(self, d, target_rootfs):
- """
- This is an abstract class. Do not instantiate this directly.
- """
- super(OpkgDpkgPM, self).__init__(d, target_rootfs)
-
- def package_info(self, pkg, cmd):
- """
- Returns a dictionary with the package info.
-
- This method extracts the common parts for Opkg and Dpkg
- """
-
- try:
- output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).decode("utf-8")
- except subprocess.CalledProcessError as e:
- bb.fatal("Unable to list available packages. Command '%s' "
- "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
- return opkg_query(output)
-
- def extract(self, pkg, pkg_info):
- """
- Returns the path to a tmpdir where resides the contents of a package.
-
- Deleting the tmpdir is responsability of the caller.
-
- This method extracts the common parts for Opkg and Dpkg
- """
-
- ar_cmd = bb.utils.which(os.getenv("PATH"), "ar")
- tar_cmd = bb.utils.which(os.getenv("PATH"), "tar")
- pkg_path = pkg_info[pkg]["filepath"]
-
- if not os.path.isfile(pkg_path):
- bb.fatal("Unable to extract package for '%s'."
- "File %s doesn't exists" % (pkg, pkg_path))
-
- tmp_dir = tempfile.mkdtemp()
- current_dir = os.getcwd()
- os.chdir(tmp_dir)
- data_tar = 'data.tar.xz'
-
- try:
- cmd = [ar_cmd, 'x', pkg_path]
- output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
- cmd = [tar_cmd, 'xf', data_tar]
- output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
- except subprocess.CalledProcessError as e:
- bb.utils.remove(tmp_dir, recurse=True)
- bb.fatal("Unable to extract %s package. Command '%s' "
- "returned %d:\n%s" % (pkg_path, ' '.join(cmd), e.returncode, e.output.decode("utf-8")))
- except OSError as e:
- bb.utils.remove(tmp_dir, recurse=True)
- bb.fatal("Unable to extract %s package. Command '%s' "
- "returned %d:\n%s at %s" % (pkg_path, ' '.join(cmd), e.errno, e.strerror, e.filename))
-
- bb.note("Extracted %s to %s" % (pkg_path, tmp_dir))
- bb.utils.remove(os.path.join(tmp_dir, "debian-binary"))
- bb.utils.remove(os.path.join(tmp_dir, "control.tar.gz"))
- os.chdir(current_dir)
-
- return tmp_dir
-
- def _handle_intercept_failure(self, registered_pkgs):
- self.mark_packages("unpacked", registered_pkgs.split())
-
-class OpkgPM(OpkgDpkgPM):
- def __init__(self, d, target_rootfs, config_file, archs, task_name='target', ipk_repo_workdir="oe-rootfs-repo", filterbydependencies=True, prepare_index=True):
- super(OpkgPM, self).__init__(d, target_rootfs)
-
- self.config_file = config_file
- self.pkg_archs = archs
- self.task_name = task_name
-
- self.deploy_dir = oe.path.join(self.d.getVar('WORKDIR'), ipk_repo_workdir)
- self.deploy_lock_file = os.path.join(self.deploy_dir, "deploy.lock")
- self.opkg_cmd = bb.utils.which(os.getenv('PATH'), "opkg")
- self.opkg_args = "--volatile-cache -f %s -t %s -o %s " % (self.config_file, self.d.expand('${T}/ipktemp/') ,target_rootfs)
- self.opkg_args += self.d.getVar("OPKG_ARGS")
-
- if prepare_index:
- create_packages_dir(self.d, self.deploy_dir, d.getVar("DEPLOY_DIR_IPK"), "package_write_ipk", filterbydependencies)
-
- opkg_lib_dir = self.d.getVar('OPKGLIBDIR')
- if opkg_lib_dir[0] == "/":
- opkg_lib_dir = opkg_lib_dir[1:]
-
- self.opkg_dir = os.path.join(target_rootfs, opkg_lib_dir, "opkg")
-
- bb.utils.mkdirhier(self.opkg_dir)
-
- self.saved_opkg_dir = self.d.expand('${T}/saved/%s' % self.task_name)
- if not os.path.exists(self.d.expand('${T}/saved')):
- bb.utils.mkdirhier(self.d.expand('${T}/saved'))
-
- self.from_feeds = (self.d.getVar('BUILD_IMAGES_FROM_FEEDS') or "") == "1"
- if self.from_feeds:
- self._create_custom_config()
- else:
- self._create_config()
-
- self.indexer = OpkgIndexer(self.d, self.deploy_dir)
-
- def mark_packages(self, status_tag, packages=None):
- """
- This function will change a package's status in /var/lib/opkg/status file.
- If 'packages' is None then the new_status will be applied to all
- packages
- """
- status_file = os.path.join(self.opkg_dir, "status")
-
- with open(status_file, "r") as sf:
- with open(status_file + ".tmp", "w+") as tmp_sf:
- if packages is None:
- tmp_sf.write(re.sub(r"Package: (.*?)\n((?:[^\n]+\n)*?)Status: (.*)(?:unpacked|installed)",
- r"Package: \1\n\2Status: \3%s" % status_tag,
- sf.read()))
- else:
- if type(packages).__name__ != "list":
- raise TypeError("'packages' should be a list object")
-
- status = sf.read()
- for pkg in packages:
- status = re.sub(r"Package: %s\n((?:[^\n]+\n)*?)Status: (.*)(?:unpacked|installed)" % pkg,
- r"Package: %s\n\1Status: \2%s" % (pkg, status_tag),
- status)
-
- tmp_sf.write(status)
-
- os.rename(status_file + ".tmp", status_file)
-
- def _create_custom_config(self):
- bb.note("Building from feeds activated!")
-
- with open(self.config_file, "w+") as config_file:
- priority = 1
- for arch in self.pkg_archs.split():
- config_file.write("arch %s %d\n" % (arch, priority))
- priority += 5
-
- for line in (self.d.getVar('IPK_FEED_URIS') or "").split():
- feed_match = re.match(r"^[ \t]*(.*)##([^ \t]*)[ \t]*$", line)
-
- if feed_match is not None:
- feed_name = feed_match.group(1)
- feed_uri = feed_match.group(2)
-
- bb.note("Add %s feed with URL %s" % (feed_name, feed_uri))
-
- config_file.write("src/gz %s %s\n" % (feed_name, feed_uri))
-
- """
- Allow to use package deploy directory contents as quick devel-testing
- feed. This creates individual feed configs for each arch subdir of those
- specified as compatible for the current machine.
- NOTE: Development-helper feature, NOT a full-fledged feed.
- """
- if (self.d.getVar('FEED_DEPLOYDIR_BASE_URI') or "") != "":
- for arch in self.pkg_archs.split():
- cfg_file_name = os.path.join(self.target_rootfs,
- self.d.getVar("sysconfdir"),
- "opkg",
- "local-%s-feed.conf" % arch)
-
- with open(cfg_file_name, "w+") as cfg_file:
- cfg_file.write("src/gz local-%s %s/%s" %
- (arch,
- self.d.getVar('FEED_DEPLOYDIR_BASE_URI'),
- arch))
-
- if self.d.getVar('OPKGLIBDIR') != '/var/lib':
- # There is no command line option for this anymore, we need to add
- # info_dir and status_file to config file, if OPKGLIBDIR doesn't have
- # the default value of "/var/lib" as defined in opkg:
- # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_LISTS_DIR VARDIR "/lib/opkg/lists"
- # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_INFO_DIR VARDIR "/lib/opkg/info"
- # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_STATUS_FILE VARDIR "/lib/opkg/status"
- cfg_file.write("option info_dir %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR'), 'opkg', 'info'))
- cfg_file.write("option lists_dir %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR'), 'opkg', 'lists'))
- cfg_file.write("option status_file %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR'), 'opkg', 'status'))
-
-
- def _create_config(self):
- with open(self.config_file, "w+") as config_file:
- priority = 1
- for arch in self.pkg_archs.split():
- config_file.write("arch %s %d\n" % (arch, priority))
- priority += 5
-
- config_file.write("src oe file:%s\n" % self.deploy_dir)
-
- for arch in self.pkg_archs.split():
- pkgs_dir = os.path.join(self.deploy_dir, arch)
- if os.path.isdir(pkgs_dir):
- config_file.write("src oe-%s file:%s\n" %
- (arch, pkgs_dir))
-
- if self.d.getVar('OPKGLIBDIR') != '/var/lib':
- # There is no command line option for this anymore, we need to add
- # info_dir and status_file to config file, if OPKGLIBDIR doesn't have
- # the default value of "/var/lib" as defined in opkg:
- # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_LISTS_DIR VARDIR "/lib/opkg/lists"
- # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_INFO_DIR VARDIR "/lib/opkg/info"
- # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_STATUS_FILE VARDIR "/lib/opkg/status"
- config_file.write("option info_dir %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR'), 'opkg', 'info'))
- config_file.write("option lists_dir %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR'), 'opkg', 'lists'))
- config_file.write("option status_file %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR'), 'opkg', 'status'))
-
- def insert_feeds_uris(self, feed_uris, feed_base_paths, feed_archs):
- if feed_uris == "":
- return
-
- rootfs_config = os.path.join('%s/etc/opkg/base-feeds.conf'
- % self.target_rootfs)
-
- os.makedirs('%s/etc/opkg' % self.target_rootfs, exist_ok=True)
-
- feed_uris = self.construct_uris(feed_uris.split(), feed_base_paths.split())
- archs = self.pkg_archs.split() if feed_archs is None else feed_archs.split()
-
- with open(rootfs_config, "w+") as config_file:
- uri_iterator = 0
- for uri in feed_uris:
- if archs:
- for arch in archs:
- if (feed_archs is None) and (not os.path.exists(oe.path.join(self.deploy_dir, arch))):
- continue
- bb.note('Adding opkg feed url-%s-%d (%s)' %
- (arch, uri_iterator, uri))
- config_file.write("src/gz uri-%s-%d %s/%s\n" %
- (arch, uri_iterator, uri, arch))
- else:
- bb.note('Adding opkg feed url-%d (%s)' %
- (uri_iterator, uri))
- config_file.write("src/gz uri-%d %s\n" %
- (uri_iterator, uri))
-
- uri_iterator += 1
-
- def update(self):
- self.deploy_dir_lock()
-
- cmd = "%s %s update" % (self.opkg_cmd, self.opkg_args)
-
- try:
- subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT)
- except subprocess.CalledProcessError as e:
- self.deploy_dir_unlock()
- bb.fatal("Unable to update the package index files. Command '%s' "
- "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
-
- self.deploy_dir_unlock()
-
- def install(self, pkgs, attempt_only=False):
- if not pkgs:
- return
-
- cmd = "%s %s" % (self.opkg_cmd, self.opkg_args)
- for exclude in (self.d.getVar("PACKAGE_EXCLUDE") or "").split():
- cmd += " --add-exclude %s" % exclude
- for bad_recommendation in (self.d.getVar("BAD_RECOMMENDATIONS") or "").split():
- cmd += " --add-ignore-recommends %s" % bad_recommendation
- cmd += " install "
- cmd += " ".join(pkgs)
-
- os.environ['D'] = self.target_rootfs
- os.environ['OFFLINE_ROOT'] = self.target_rootfs
- os.environ['IPKG_OFFLINE_ROOT'] = self.target_rootfs
- os.environ['OPKG_OFFLINE_ROOT'] = self.target_rootfs
- os.environ['INTERCEPT_DIR'] = self.intercepts_dir
- os.environ['NATIVE_ROOT'] = self.d.getVar('STAGING_DIR_NATIVE')
-
- try:
- bb.note("Installing the following packages: %s" % ' '.join(pkgs))
- bb.note(cmd)
- output = subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT).decode("utf-8")
- bb.note(output)
- failed_pkgs = []
- for line in output.split('\n'):
- if line.endswith("configuration required on target."):
- bb.warn(line)
- failed_pkgs.append(line.split(".")[0])
- if failed_pkgs:
- failed_postinsts_abort(failed_pkgs, self.d.expand("${T}/log.do_${BB_CURRENTTASK}"))
- except subprocess.CalledProcessError as e:
- (bb.fatal, bb.warn)[attempt_only]("Unable to install packages. "
- "Command '%s' returned %d:\n%s" %
- (cmd, e.returncode, e.output.decode("utf-8")))
-
- def remove(self, pkgs, with_dependencies=True):
- if not pkgs:
- return
-
- if with_dependencies:
- cmd = "%s %s --force-remove --force-removal-of-dependent-packages remove %s" % \
- (self.opkg_cmd, self.opkg_args, ' '.join(pkgs))
- else:
- cmd = "%s %s --force-depends remove %s" % \
- (self.opkg_cmd, self.opkg_args, ' '.join(pkgs))
-
- try:
- bb.note(cmd)
- output = subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT).decode("utf-8")
- bb.note(output)
- except subprocess.CalledProcessError as e:
- bb.fatal("Unable to remove packages. Command '%s' "
- "returned %d:\n%s" % (e.cmd, e.returncode, e.output.decode("utf-8")))
-
- def write_index(self):
- self.deploy_dir_lock()
-
- result = self.indexer.write_index()
-
- self.deploy_dir_unlock()
-
- if result is not None:
- bb.fatal(result)
-
- def remove_packaging_data(self):
- bb.utils.remove(self.opkg_dir, True)
- # create the directory back, it's needed by PM lock
- bb.utils.mkdirhier(self.opkg_dir)
-
- def remove_lists(self):
- if not self.from_feeds:
- bb.utils.remove(os.path.join(self.opkg_dir, "lists"), True)
-
- def list_installed(self):
- return OpkgPkgsList(self.d, self.target_rootfs, self.config_file).list_pkgs()
-
- def dummy_install(self, pkgs):
- """
- The following function dummy installs pkgs and returns the log of output.
- """
- if len(pkgs) == 0:
- return
-
- # Create an temp dir as opkg root for dummy installation
- temp_rootfs = self.d.expand('${T}/opkg')
- opkg_lib_dir = self.d.getVar('OPKGLIBDIR')
- if opkg_lib_dir[0] == "/":
- opkg_lib_dir = opkg_lib_dir[1:]
- temp_opkg_dir = os.path.join(temp_rootfs, opkg_lib_dir, 'opkg')
- bb.utils.mkdirhier(temp_opkg_dir)
-
- opkg_args = "-f %s -o %s " % (self.config_file, temp_rootfs)
- opkg_args += self.d.getVar("OPKG_ARGS")
-
- cmd = "%s %s update" % (self.opkg_cmd, opkg_args)
- try:
- subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
- except subprocess.CalledProcessError as e:
- bb.fatal("Unable to update. Command '%s' "
- "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
-
- # Dummy installation
- cmd = "%s %s --noaction install %s " % (self.opkg_cmd,
- opkg_args,
- ' '.join(pkgs))
- try:
- output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
- except subprocess.CalledProcessError as e:
- bb.fatal("Unable to dummy install packages. Command '%s' "
- "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
-
- bb.utils.remove(temp_rootfs, True)
-
- return output
-
- def backup_packaging_data(self):
- # Save the opkglib for increment ipk image generation
- if os.path.exists(self.saved_opkg_dir):
- bb.utils.remove(self.saved_opkg_dir, True)
- shutil.copytree(self.opkg_dir,
- self.saved_opkg_dir,
- symlinks=True)
-
- def recover_packaging_data(self):
- # Move the opkglib back
- if os.path.exists(self.saved_opkg_dir):
- if os.path.exists(self.opkg_dir):
- bb.utils.remove(self.opkg_dir, True)
-
- bb.note('Recover packaging data')
- shutil.copytree(self.saved_opkg_dir,
- self.opkg_dir,
- symlinks=True)
-
- def package_info(self, pkg):
- """
- Returns a dictionary with the package info.
- """
- cmd = "%s %s info %s" % (self.opkg_cmd, self.opkg_args, pkg)
- pkg_info = super(OpkgPM, self).package_info(pkg, cmd)
-
- pkg_arch = pkg_info[pkg]["arch"]
- pkg_filename = pkg_info[pkg]["filename"]
- pkg_info[pkg]["filepath"] = \
- os.path.join(self.deploy_dir, pkg_arch, pkg_filename)
-
- return pkg_info
-
- def extract(self, pkg):
- """
- Returns the path to a tmpdir where resides the contents of a package.
-
- Deleting the tmpdir is responsability of the caller.
- """
- pkg_info = self.package_info(pkg)
- if not pkg_info:
- bb.fatal("Unable to get information for package '%s' while "
- "trying to extract the package." % pkg)
-
- tmp_dir = super(OpkgPM, self).extract(pkg, pkg_info)
- bb.utils.remove(os.path.join(tmp_dir, "data.tar.xz"))
-
- return tmp_dir
-
-class DpkgPM(OpkgDpkgPM):
- def __init__(self, d, target_rootfs, archs, base_archs, apt_conf_dir=None, deb_repo_workdir="oe-rootfs-repo", filterbydependencies=True):
- super(DpkgPM, self).__init__(d, target_rootfs)
- self.deploy_dir = oe.path.join(self.d.getVar('WORKDIR'), deb_repo_workdir)
-
- create_packages_dir(self.d, self.deploy_dir, d.getVar("DEPLOY_DIR_DEB"), "package_write_deb", filterbydependencies)
-
- if apt_conf_dir is None:
- self.apt_conf_dir = self.d.expand("${APTCONF_TARGET}/apt")
- else:
- self.apt_conf_dir = apt_conf_dir
- self.apt_conf_file = os.path.join(self.apt_conf_dir, "apt.conf")
- self.apt_get_cmd = bb.utils.which(os.getenv('PATH'), "apt-get")
- self.apt_cache_cmd = bb.utils.which(os.getenv('PATH'), "apt-cache")
-
- self.apt_args = d.getVar("APT_ARGS")
-
- self.all_arch_list = archs.split()
- all_mlb_pkg_arch_list = (self.d.getVar('ALL_MULTILIB_PACKAGE_ARCHS') or "").split()
- self.all_arch_list.extend(arch for arch in all_mlb_pkg_arch_list if arch not in self.all_arch_list)
-
- self._create_configs(archs, base_archs)
-
- self.indexer = DpkgIndexer(self.d, self.deploy_dir)
-
- def mark_packages(self, status_tag, packages=None):
- """
- This function will change a package's status in /var/lib/dpkg/status file.
- If 'packages' is None then the new_status will be applied to all
- packages
- """
- status_file = self.target_rootfs + "/var/lib/dpkg/status"
-
- with open(status_file, "r") as sf:
- with open(status_file + ".tmp", "w+") as tmp_sf:
- if packages is None:
- tmp_sf.write(re.sub(r"Package: (.*?)\n((?:[^\n]+\n)*?)Status: (.*)(?:unpacked|installed)",
- r"Package: \1\n\2Status: \3%s" % status_tag,
- sf.read()))
- else:
- if type(packages).__name__ != "list":
- raise TypeError("'packages' should be a list object")
-
- status = sf.read()
- for pkg in packages:
- status = re.sub(r"Package: %s\n((?:[^\n]+\n)*?)Status: (.*)(?:unpacked|installed)" % pkg,
- r"Package: %s\n\1Status: \2%s" % (pkg, status_tag),
- status)
-
- tmp_sf.write(status)
-
- os.rename(status_file + ".tmp", status_file)
-
- def run_pre_post_installs(self, package_name=None):
- """
- Run the pre/post installs for package "package_name". If package_name is
- None, then run all pre/post install scriptlets.
- """
- info_dir = self.target_rootfs + "/var/lib/dpkg/info"
- ControlScript = collections.namedtuple("ControlScript", ["suffix", "name", "argument"])
- control_scripts = [
- ControlScript(".preinst", "Preinstall", "install"),
- ControlScript(".postinst", "Postinstall", "configure")]
- status_file = self.target_rootfs + "/var/lib/dpkg/status"
- installed_pkgs = []
-
- with open(status_file, "r") as status:
- for line in status.read().split('\n'):
- m = re.match(r"^Package: (.*)", line)
- if m is not None:
- installed_pkgs.append(m.group(1))
-
- if package_name is not None and not package_name in installed_pkgs:
- return
-
- os.environ['D'] = self.target_rootfs
- os.environ['OFFLINE_ROOT'] = self.target_rootfs
- os.environ['IPKG_OFFLINE_ROOT'] = self.target_rootfs
- os.environ['OPKG_OFFLINE_ROOT'] = self.target_rootfs
- os.environ['INTERCEPT_DIR'] = self.intercepts_dir
- os.environ['NATIVE_ROOT'] = self.d.getVar('STAGING_DIR_NATIVE')
-
- for pkg_name in installed_pkgs:
- for control_script in control_scripts:
- p_full = os.path.join(info_dir, pkg_name + control_script.suffix)
- if os.path.exists(p_full):
- try:
- bb.note("Executing %s for package: %s ..." %
- (control_script.name.lower(), pkg_name))
- output = subprocess.check_output([p_full, control_script.argument],
- stderr=subprocess.STDOUT).decode("utf-8")
- bb.note(output)
- except subprocess.CalledProcessError as e:
- bb.warn("%s for package %s failed with %d:\n%s" %
- (control_script.name, pkg_name, e.returncode,
- e.output.decode("utf-8")))
- failed_postinsts_abort([pkg_name], self.d.expand("${T}/log.do_${BB_CURRENTTASK}"))
-
- def update(self):
- os.environ['APT_CONFIG'] = self.apt_conf_file
-
- self.deploy_dir_lock()
-
- cmd = "%s update" % self.apt_get_cmd
-
- try:
- subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT)
- except subprocess.CalledProcessError as e:
- bb.fatal("Unable to update the package index files. Command '%s' "
- "returned %d:\n%s" % (e.cmd, e.returncode, e.output.decode("utf-8")))
-
- self.deploy_dir_unlock()
-
- def install(self, pkgs, attempt_only=False):
- if attempt_only and len(pkgs) == 0:
- return
-
- os.environ['APT_CONFIG'] = self.apt_conf_file
-
- cmd = "%s %s install --force-yes --allow-unauthenticated %s" % \
- (self.apt_get_cmd, self.apt_args, ' '.join(pkgs))
-
- try:
- bb.note("Installing the following packages: %s" % ' '.join(pkgs))
- subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT)
- except subprocess.CalledProcessError as e:
- (bb.fatal, bb.warn)[attempt_only]("Unable to install packages. "
- "Command '%s' returned %d:\n%s" %
- (cmd, e.returncode, e.output.decode("utf-8")))
-
- # rename *.dpkg-new files/dirs
- for root, dirs, files in os.walk(self.target_rootfs):
- for dir in dirs:
- new_dir = re.sub(r"\.dpkg-new", "", dir)
- if dir != new_dir:
- os.rename(os.path.join(root, dir),
- os.path.join(root, new_dir))
-
- for file in files:
- new_file = re.sub(r"\.dpkg-new", "", file)
- if file != new_file:
- os.rename(os.path.join(root, file),
- os.path.join(root, new_file))
-
-
- def remove(self, pkgs, with_dependencies=True):
- if not pkgs:
- return
-
- if with_dependencies:
- os.environ['APT_CONFIG'] = self.apt_conf_file
- cmd = "%s purge %s" % (self.apt_get_cmd, ' '.join(pkgs))
- else:
- cmd = "%s --admindir=%s/var/lib/dpkg --instdir=%s" \
- " -P --force-depends %s" % \
- (bb.utils.which(os.getenv('PATH'), "dpkg"),
- self.target_rootfs, self.target_rootfs, ' '.join(pkgs))
-
- try:
- subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT)
- except subprocess.CalledProcessError as e:
- bb.fatal("Unable to remove packages. Command '%s' "
- "returned %d:\n%s" % (e.cmd, e.returncode, e.output.decode("utf-8")))
-
- def write_index(self):
- self.deploy_dir_lock()
-
- result = self.indexer.write_index()
-
- self.deploy_dir_unlock()
-
- if result is not None:
- bb.fatal(result)
-
- def insert_feeds_uris(self, feed_uris, feed_base_paths, feed_archs):
- if feed_uris == "":
- return
-
- sources_conf = os.path.join("%s/etc/apt/sources.list"
- % self.target_rootfs)
- arch_list = []
-
- if feed_archs is None:
- for arch in self.all_arch_list:
- if not os.path.exists(os.path.join(self.deploy_dir, arch)):
- continue
- arch_list.append(arch)
- else:
- arch_list = feed_archs.split()
-
- feed_uris = self.construct_uris(feed_uris.split(), feed_base_paths.split())
-
- with open(sources_conf, "w+") as sources_file:
- for uri in feed_uris:
- if arch_list:
- for arch in arch_list:
- bb.note('Adding dpkg channel at (%s)' % uri)
- sources_file.write("deb %s/%s ./\n" %
- (uri, arch))
- else:
- bb.note('Adding dpkg channel at (%s)' % uri)
- sources_file.write("deb %s ./\n" % uri)
-
- def _create_configs(self, archs, base_archs):
- base_archs = re.sub(r"_", r"-", base_archs)
-
- if os.path.exists(self.apt_conf_dir):
- bb.utils.remove(self.apt_conf_dir, True)
-
- bb.utils.mkdirhier(self.apt_conf_dir)
- bb.utils.mkdirhier(self.apt_conf_dir + "/lists/partial/")
- bb.utils.mkdirhier(self.apt_conf_dir + "/apt.conf.d/")
- bb.utils.mkdirhier(self.apt_conf_dir + "/preferences.d/")
-
- arch_list = []
- for arch in self.all_arch_list:
- if not os.path.exists(os.path.join(self.deploy_dir, arch)):
- continue
- arch_list.append(arch)
-
- with open(os.path.join(self.apt_conf_dir, "preferences"), "w+") as prefs_file:
- priority = 801
- for arch in arch_list:
- prefs_file.write(
- "Package: *\n"
- "Pin: release l=%s\n"
- "Pin-Priority: %d\n\n" % (arch, priority))
-
- priority += 5
-
- pkg_exclude = self.d.getVar('PACKAGE_EXCLUDE') or ""
- for pkg in pkg_exclude.split():
- prefs_file.write(
- "Package: %s\n"
- "Pin: release *\n"
- "Pin-Priority: -1\n\n" % pkg)
-
- arch_list.reverse()
-
- with open(os.path.join(self.apt_conf_dir, "sources.list"), "w+") as sources_file:
- for arch in arch_list:
- sources_file.write("deb file:%s/ ./\n" %
- os.path.join(self.deploy_dir, arch))
-
- base_arch_list = base_archs.split()
- multilib_variants = self.d.getVar("MULTILIB_VARIANTS");
- for variant in multilib_variants.split():
- localdata = bb.data.createCopy(self.d)
- variant_tune = localdata.getVar("DEFAULTTUNE_virtclass-multilib-" + variant, False)
- orig_arch = localdata.getVar("DPKG_ARCH")
- localdata.setVar("DEFAULTTUNE", variant_tune)
- variant_arch = localdata.getVar("DPKG_ARCH")
- if variant_arch not in base_arch_list:
- base_arch_list.append(variant_arch)
-
- with open(self.apt_conf_file, "w+") as apt_conf:
- with open(self.d.expand("${STAGING_ETCDIR_NATIVE}/apt/apt.conf.sample")) as apt_conf_sample:
- for line in apt_conf_sample.read().split("\n"):
- match_arch = re.match(r" Architecture \".*\";$", line)
- architectures = ""
- if match_arch:
- for base_arch in base_arch_list:
- architectures += "\"%s\";" % base_arch
- apt_conf.write(" Architectures {%s};\n" % architectures);
- apt_conf.write(" Architecture \"%s\";\n" % base_archs)
- else:
- line = re.sub(r"#ROOTFS#", self.target_rootfs, line)
- line = re.sub(r"#APTCONF#", self.apt_conf_dir, line)
- apt_conf.write(line + "\n")
-
- target_dpkg_dir = "%s/var/lib/dpkg" % self.target_rootfs
- bb.utils.mkdirhier(os.path.join(target_dpkg_dir, "info"))
-
- bb.utils.mkdirhier(os.path.join(target_dpkg_dir, "updates"))
-
- if not os.path.exists(os.path.join(target_dpkg_dir, "status")):
- open(os.path.join(target_dpkg_dir, "status"), "w+").close()
- if not os.path.exists(os.path.join(target_dpkg_dir, "available")):
- open(os.path.join(target_dpkg_dir, "available"), "w+").close()
-
- def remove_packaging_data(self):
- bb.utils.remove(os.path.join(self.target_rootfs,
- self.d.getVar('opkglibdir')), True)
- bb.utils.remove(self.target_rootfs + "/var/lib/dpkg/", True)
-
- def fix_broken_dependencies(self):
- os.environ['APT_CONFIG'] = self.apt_conf_file
-
- cmd = "%s %s -f install" % (self.apt_get_cmd, self.apt_args)
-
- try:
- subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT)
- except subprocess.CalledProcessError as e:
- bb.fatal("Cannot fix broken dependencies. Command '%s' "
- "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
-
- def list_installed(self):
- return DpkgPkgsList(self.d, self.target_rootfs).list_pkgs()
-
- def package_info(self, pkg):
- """
- Returns a dictionary with the package info.
- """
- cmd = "%s show %s" % (self.apt_cache_cmd, pkg)
- pkg_info = super(DpkgPM, self).package_info(pkg, cmd)
-
- pkg_arch = pkg_info[pkg]["pkgarch"]
- pkg_filename = pkg_info[pkg]["filename"]
- pkg_info[pkg]["filepath"] = \
- os.path.join(self.deploy_dir, pkg_arch, pkg_filename)
-
- return pkg_info
-
- def extract(self, pkg):
- """
- Returns the path to a tmpdir where resides the contents of a package.
-
- Deleting the tmpdir is responsability of the caller.
- """
- pkg_info = self.package_info(pkg)
- if not pkg_info:
- bb.fatal("Unable to get information for package '%s' while "
- "trying to extract the package." % pkg)
-
- tmp_dir = super(DpkgPM, self).extract(pkg, pkg_info)
- bb.utils.remove(os.path.join(tmp_dir, "data.tar.xz"))
-
- return tmp_dir
-
-def generate_index_files(d):
- classes = d.getVar('PACKAGE_CLASSES').replace("package_", "").split()
-
- indexer_map = {
- "rpm": (RpmSubdirIndexer, d.getVar('DEPLOY_DIR_RPM')),
- "ipk": (OpkgIndexer, d.getVar('DEPLOY_DIR_IPK')),
- "deb": (DpkgIndexer, d.getVar('DEPLOY_DIR_DEB'))
- }
-
- result = None
-
- for pkg_class in classes:
- if not pkg_class in indexer_map:
- continue
-
- if os.path.exists(indexer_map[pkg_class][1]):
- result = indexer_map[pkg_class][0](d, indexer_map[pkg_class][1]).write_index()
-
- if result is not None:
- bb.fatal(result)
diff --git a/meta/lib/oe/package_manager/__init__.py b/meta/lib/oe/package_manager/__init__.py
new file mode 100644
index 0000000000..42225a3b2e
--- /dev/null
+++ b/meta/lib/oe/package_manager/__init__.py
@@ -0,0 +1,551 @@
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+
+from abc import ABCMeta, abstractmethod
+import os
+import glob
+import subprocess
+import shutil
+import re
+import collections
+import bb
+import tempfile
+import oe.utils
+import oe.path
+import string
+from oe.gpg_sign import get_signer
+import hashlib
+import fnmatch
+
+# this can be used by all PM backends to create the index files in parallel
+def create_index(arg):
+ index_cmd = arg
+
+ bb.note("Executing '%s' ..." % index_cmd)
+ result = subprocess.check_output(index_cmd, stderr=subprocess.STDOUT, shell=True).decode("utf-8")
+ if result:
+ bb.note(result)
+
+def opkg_query(cmd_output):
+ """
+ This method parse the output from the package managerand return
+ a dictionary with the information of the packages. This is used
+ when the packages are in deb or ipk format.
+ """
+ verregex = re.compile(r' \([=<>]* [^ )]*\)')
+ output = dict()
+ pkg = ""
+ arch = ""
+ ver = ""
+ filename = ""
+ dep = []
+ prov = []
+ pkgarch = ""
+ for line in cmd_output.splitlines()+['']:
+ line = line.rstrip()
+ if ':' in line:
+ if line.startswith("Package: "):
+ pkg = line.split(": ")[1]
+ elif line.startswith("Architecture: "):
+ arch = line.split(": ")[1]
+ elif line.startswith("Version: "):
+ ver = line.split(": ")[1]
+ elif line.startswith("File: ") or line.startswith("Filename:"):
+ filename = line.split(": ")[1]
+ if "/" in filename:
+ filename = os.path.basename(filename)
+ elif line.startswith("Depends: "):
+ depends = verregex.sub('', line.split(": ")[1])
+ for depend in depends.split(", "):
+ dep.append(depend)
+ elif line.startswith("Recommends: "):
+ recommends = verregex.sub('', line.split(": ")[1])
+ for recommend in recommends.split(", "):
+ dep.append("%s [REC]" % recommend)
+ elif line.startswith("PackageArch: "):
+ pkgarch = line.split(": ")[1]
+ elif line.startswith("Provides: "):
+ provides = verregex.sub('', line.split(": ")[1])
+ for provide in provides.split(", "):
+ prov.append(provide)
+
+ # When there is a blank line save the package information
+ elif not line:
+ # IPK doesn't include the filename
+ if not filename:
+ filename = "%s_%s_%s.ipk" % (pkg, ver, arch)
+ if pkg:
+ output[pkg] = {"arch":arch, "ver":ver,
+ "filename":filename, "deps": dep, "pkgarch":pkgarch, "provs": prov}
+ pkg = ""
+ arch = ""
+ ver = ""
+ filename = ""
+ dep = []
+ prov = []
+ pkgarch = ""
+
+ return output
+
+def failed_postinsts_abort(pkgs, log_path):
+ bb.fatal("""Postinstall scriptlets of %s have failed. If the intention is to defer them to first boot,
+then please place them into pkg_postinst_ontarget_${PN} ().
+Deferring to first boot via 'exit 1' is no longer supported.
+Details of the failure are in %s.""" %(pkgs, log_path))
+
+def generate_locale_archive(d, rootfs, target_arch, localedir):
+ # Pretty sure we don't need this for locale archive generation but
+ # keeping it to be safe...
+ locale_arch_options = { \
+ "arc": ["--uint32-align=4", "--little-endian"],
+ "arceb": ["--uint32-align=4", "--big-endian"],
+ "arm": ["--uint32-align=4", "--little-endian"],
+ "armeb": ["--uint32-align=4", "--big-endian"],
+ "aarch64": ["--uint32-align=4", "--little-endian"],
+ "aarch64_be": ["--uint32-align=4", "--big-endian"],
+ "sh4": ["--uint32-align=4", "--big-endian"],
+ "powerpc": ["--uint32-align=4", "--big-endian"],
+ "powerpc64": ["--uint32-align=4", "--big-endian"],
+ "powerpc64le": ["--uint32-align=4", "--little-endian"],
+ "mips": ["--uint32-align=4", "--big-endian"],
+ "mipsisa32r6": ["--uint32-align=4", "--big-endian"],
+ "mips64": ["--uint32-align=4", "--big-endian"],
+ "mipsisa64r6": ["--uint32-align=4", "--big-endian"],
+ "mipsel": ["--uint32-align=4", "--little-endian"],
+ "mipsisa32r6el": ["--uint32-align=4", "--little-endian"],
+ "mips64el": ["--uint32-align=4", "--little-endian"],
+ "mipsisa64r6el": ["--uint32-align=4", "--little-endian"],
+ "riscv64": ["--uint32-align=4", "--little-endian"],
+ "riscv32": ["--uint32-align=4", "--little-endian"],
+ "i586": ["--uint32-align=4", "--little-endian"],
+ "i686": ["--uint32-align=4", "--little-endian"],
+ "x86_64": ["--uint32-align=4", "--little-endian"]
+ }
+ if target_arch in locale_arch_options:
+ arch_options = locale_arch_options[target_arch]
+ else:
+ bb.error("locale_arch_options not found for target_arch=" + target_arch)
+ bb.fatal("unknown arch:" + target_arch + " for locale_arch_options")
+
+ # Need to set this so cross-localedef knows where the archive is
+ env = dict(os.environ)
+ env["LOCALEARCHIVE"] = oe.path.join(localedir, "locale-archive")
+
+ for name in sorted(os.listdir(localedir)):
+ path = os.path.join(localedir, name)
+ if os.path.isdir(path):
+ cmd = ["cross-localedef", "--verbose"]
+ cmd += arch_options
+ cmd += ["--add-to-archive", path]
+ subprocess.check_output(cmd, env=env, stderr=subprocess.STDOUT)
+
+class Indexer(object, metaclass=ABCMeta):
+ def __init__(self, d, deploy_dir):
+ self.d = d
+ self.deploy_dir = deploy_dir
+
+ @abstractmethod
+ def write_index(self):
+ pass
+
+class PkgsList(object, metaclass=ABCMeta):
+ def __init__(self, d, rootfs_dir):
+ self.d = d
+ self.rootfs_dir = rootfs_dir
+
+ @abstractmethod
+ def list_pkgs(self):
+ pass
+
+class PackageManager(object, metaclass=ABCMeta):
+ """
+ This is an abstract class. Do not instantiate this directly.
+ """
+
+ def __init__(self, d, target_rootfs):
+ self.d = d
+ self.target_rootfs = target_rootfs
+ self.deploy_dir = None
+ self.deploy_lock = None
+ self._initialize_intercepts()
+
+ def _initialize_intercepts(self):
+ bb.note("Initializing intercept dir for %s" % self.target_rootfs)
+ # As there might be more than one instance of PackageManager operating at the same time
+ # we need to isolate the intercept_scripts directories from each other,
+ # hence the ugly hash digest in dir name.
+ self.intercepts_dir = os.path.join(self.d.getVar('WORKDIR'), "intercept_scripts-%s" %
+ (hashlib.sha256(self.target_rootfs.encode()).hexdigest()))
+
+ postinst_intercepts = (self.d.getVar("POSTINST_INTERCEPTS") or "").split()
+ if not postinst_intercepts:
+ postinst_intercepts_path = self.d.getVar("POSTINST_INTERCEPTS_PATH")
+ if not postinst_intercepts_path:
+ postinst_intercepts_path = self.d.getVar("POSTINST_INTERCEPTS_DIR") or self.d.expand("${COREBASE}/scripts/postinst-intercepts")
+ postinst_intercepts = oe.path.which_wild('*', postinst_intercepts_path)
+
+ bb.debug(1, 'Collected intercepts:\n%s' % ''.join(' %s\n' % i for i in postinst_intercepts))
+ bb.utils.remove(self.intercepts_dir, True)
+ bb.utils.mkdirhier(self.intercepts_dir)
+ for intercept in postinst_intercepts:
+ bb.utils.copyfile(intercept, os.path.join(self.intercepts_dir, os.path.basename(intercept)))
+
+ @abstractmethod
+ def _handle_intercept_failure(self, failed_script):
+ pass
+
+ def _postpone_to_first_boot(self, postinst_intercept_hook):
+ with open(postinst_intercept_hook) as intercept:
+ registered_pkgs = None
+ for line in intercept.read().split("\n"):
+ m = re.match(r"^##PKGS:(.*)", line)
+ if m is not None:
+ registered_pkgs = m.group(1).strip()
+ break
+
+ if registered_pkgs is not None:
+ bb.note("If an image is being built, the postinstalls for the following packages "
+ "will be postponed for first boot: %s" %
+ registered_pkgs)
+
+ # call the backend dependent handler
+ self._handle_intercept_failure(registered_pkgs)
+
+
+ def run_intercepts(self, populate_sdk=None):
+ intercepts_dir = self.intercepts_dir
+
+ bb.note("Running intercept scripts:")
+ os.environ['D'] = self.target_rootfs
+ os.environ['STAGING_DIR_NATIVE'] = self.d.getVar('STAGING_DIR_NATIVE')
+ for script in os.listdir(intercepts_dir):
+ script_full = os.path.join(intercepts_dir, script)
+
+ if script == "postinst_intercept" or not os.access(script_full, os.X_OK):
+ continue
+
+ # we do not want to run any multilib variant of this
+ if script.startswith("delay_to_first_boot"):
+ self._postpone_to_first_boot(script_full)
+ continue
+
+ if populate_sdk == 'host' and self.d.getVar('SDK_OS') == 'mingw32':
+ bb.note("The postinstall intercept hook '%s' could not be executed due to missing wine support, details in %s/log.do_%s"
+ % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK')))
+ continue
+
+ bb.note("> Executing %s intercept ..." % script)
+
+ try:
+ output = subprocess.check_output(script_full, stderr=subprocess.STDOUT)
+ if output: bb.note(output.decode("utf-8"))
+ except subprocess.CalledProcessError as e:
+ bb.note("Exit code %d. Output:\n%s" % (e.returncode, e.output.decode("utf-8")))
+ if populate_sdk == 'host':
+ bb.fatal("The postinstall intercept hook '%s' failed, details in %s/log.do_%s" % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK')))
+ elif populate_sdk == 'target':
+ if "qemuwrapper: qemu usermode is not supported" in e.output.decode("utf-8"):
+ bb.note("The postinstall intercept hook '%s' could not be executed due to missing qemu usermode support, details in %s/log.do_%s"
+ % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK')))
+ else:
+ bb.fatal("The postinstall intercept hook '%s' failed, details in %s/log.do_%s" % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK')))
+ else:
+ if "qemuwrapper: qemu usermode is not supported" in e.output.decode("utf-8"):
+ bb.note("The postinstall intercept hook '%s' could not be executed due to missing qemu usermode support, details in %s/log.do_%s"
+ % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK')))
+ self._postpone_to_first_boot(script_full)
+ else:
+ bb.fatal("The postinstall intercept hook '%s' failed, details in %s/log.do_%s" % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK')))
+
+ @abstractmethod
+ def update(self):
+ """
+ Update the package manager package database.
+ """
+ pass
+
+ @abstractmethod
+ def install(self, pkgs, attempt_only=False):
+ """
+ Install a list of packages. 'pkgs' is a list object. If 'attempt_only' is
+ True, installation failures are ignored.
+ """
+ pass
+
+ @abstractmethod
+ def remove(self, pkgs, with_dependencies=True):
+ """
+ Remove a list of packages. 'pkgs' is a list object. If 'with_dependencies'
+ is False, then any dependencies are left in place.
+ """
+ pass
+
+ @abstractmethod
+ def write_index(self):
+ """
+ This function creates the index files
+ """
+ pass
+
+ @abstractmethod
+ def remove_packaging_data(self):
+ pass
+
+ @abstractmethod
+ def list_installed(self):
+ pass
+
+ @abstractmethod
+ def extract(self, pkg):
+ """
+ Returns the path to a tmpdir where resides the contents of a package.
+ Deleting the tmpdir is responsability of the caller.
+ """
+ pass
+
+ @abstractmethod
+ def insert_feeds_uris(self, feed_uris, feed_base_paths, feed_archs):
+ """
+ Add remote package feeds into repository manager configuration. The parameters
+ for the feeds are set by feed_uris, feed_base_paths and feed_archs.
+ See http://www.yoctoproject.org/docs/current/ref-manual/ref-manual.html#var-PACKAGE_FEED_URIS
+ for their description.
+ """
+ pass
+
+ def install_glob(self, globs, sdk=False):
+ """
+ Install all packages that match a glob.
+ """
+ # TODO don't have sdk here but have a property on the superclass
+ # (and respect in install_complementary)
+ if sdk:
+ pkgdatadir = self.d.expand("${TMPDIR}/pkgdata/${SDK_SYS}")
+ else:
+ pkgdatadir = self.d.getVar("PKGDATA_DIR")
+
+ try:
+ bb.note("Installing globbed packages...")
+ cmd = ["oe-pkgdata-util", "-p", pkgdatadir, "list-pkgs", globs]
+ pkgs = subprocess.check_output(cmd, stderr=subprocess.STDOUT).decode("utf-8")
+ self.install(pkgs.split(), attempt_only=True)
+ except subprocess.CalledProcessError as e:
+ # Return code 1 means no packages matched
+ if e.returncode != 1:
+ bb.fatal("Could not compute globbed packages list. Command "
+ "'%s' returned %d:\n%s" %
+ (' '.join(cmd), e.returncode, e.output.decode("utf-8")))
+
+ def install_complementary(self, globs=None):
+ """
+ Install complementary packages based upon the list of currently installed
+ packages e.g. locales, *-dev, *-dbg, etc. This will only attempt to install
+ these packages, if they don't exist then no error will occur. Note: every
+ backend needs to call this function explicitly after the normal package
+ installation
+ """
+ if globs is None:
+ globs = self.d.getVar('IMAGE_INSTALL_COMPLEMENTARY')
+ split_linguas = set()
+
+ for translation in self.d.getVar('IMAGE_LINGUAS').split():
+ split_linguas.add(translation)
+ split_linguas.add(translation.split('-')[0])
+
+ split_linguas = sorted(split_linguas)
+
+ for lang in split_linguas:
+ globs += " *-locale-%s" % lang
+ for complementary_linguas in (self.d.getVar('IMAGE_LINGUAS_COMPLEMENTARY') or "").split():
+ globs += (" " + complementary_linguas) % lang
+
+ if globs is None:
+ return
+
+ # we need to write the list of installed packages to a file because the
+ # oe-pkgdata-util reads it from a file
+ with tempfile.NamedTemporaryFile(mode="w+", prefix="installed-pkgs") as installed_pkgs:
+ pkgs = self.list_installed()
+
+ provided_pkgs = set()
+ for pkg in pkgs.values():
+ provided_pkgs |= set(pkg.get('provs', []))
+
+ output = oe.utils.format_pkg_list(pkgs, "arch")
+ installed_pkgs.write(output)
+ installed_pkgs.flush()
+
+ cmd = ["oe-pkgdata-util",
+ "-p", self.d.getVar('PKGDATA_DIR'), "glob", installed_pkgs.name,
+ globs]
+ exclude = self.d.getVar('PACKAGE_EXCLUDE_COMPLEMENTARY')
+ if exclude:
+ cmd.extend(['--exclude=' + '|'.join(exclude.split())])
+ try:
+ bb.note('Running %s' % cmd)
+ complementary_pkgs = subprocess.check_output(cmd, stderr=subprocess.STDOUT).decode("utf-8")
+ complementary_pkgs = set(complementary_pkgs.split())
+ skip_pkgs = sorted(complementary_pkgs & provided_pkgs)
+ install_pkgs = sorted(complementary_pkgs - provided_pkgs)
+ bb.note("Installing complementary packages ... %s (skipped already provided packages %s)" % (
+ ' '.join(install_pkgs),
+ ' '.join(skip_pkgs)))
+ self.install(install_pkgs, attempt_only=True)
+ except subprocess.CalledProcessError as e:
+ bb.fatal("Could not compute complementary packages list. Command "
+ "'%s' returned %d:\n%s" %
+ (' '.join(cmd), e.returncode, e.output.decode("utf-8")))
+
+ if self.d.getVar('IMAGE_LOCALES_ARCHIVE') == '1':
+ target_arch = self.d.getVar('TARGET_ARCH')
+ localedir = oe.path.join(self.target_rootfs, self.d.getVar("libdir"), "locale")
+ if os.path.exists(localedir) and os.listdir(localedir):
+ generate_locale_archive(self.d, self.target_rootfs, target_arch, localedir)
+ # And now delete the binary locales
+ self.remove(fnmatch.filter(self.list_installed(), "glibc-binary-localedata-*"), False)
+
+ def deploy_dir_lock(self):
+ if self.deploy_dir is None:
+ raise RuntimeError("deploy_dir is not set!")
+
+ lock_file_name = os.path.join(self.deploy_dir, "deploy.lock")
+
+ self.deploy_lock = bb.utils.lockfile(lock_file_name)
+
+ def deploy_dir_unlock(self):
+ if self.deploy_lock is None:
+ return
+
+ bb.utils.unlockfile(self.deploy_lock)
+
+ self.deploy_lock = None
+
+ def construct_uris(self, uris, base_paths):
+ """
+ Construct URIs based on the following pattern: uri/base_path where 'uri'
+ and 'base_path' correspond to each element of the corresponding array
+ argument leading to len(uris) x len(base_paths) elements on the returned
+ array
+ """
+ def _append(arr1, arr2, sep='/'):
+ res = []
+ narr1 = [a.rstrip(sep) for a in arr1]
+ narr2 = [a.rstrip(sep).lstrip(sep) for a in arr2]
+ for a1 in narr1:
+ if arr2:
+ for a2 in narr2:
+ res.append("%s%s%s" % (a1, sep, a2))
+ else:
+ res.append(a1)
+ return res
+ return _append(uris, base_paths)
+
+def create_packages_dir(d, subrepo_dir, deploydir, taskname, filterbydependencies):
+ """
+ Go through our do_package_write_X dependencies and hardlink the packages we depend
+ upon into the repo directory. This prevents us seeing other packages that may
+ have been built that we don't depend upon and also packages for architectures we don't
+ support.
+ """
+ import errno
+
+ taskdepdata = d.getVar("BB_TASKDEPDATA", False)
+ mytaskname = d.getVar("BB_RUNTASK")
+ pn = d.getVar("PN")
+ seendirs = set()
+ multilibs = {}
+
+ bb.utils.remove(subrepo_dir, recurse=True)
+ bb.utils.mkdirhier(subrepo_dir)
+
+ # Detect bitbake -b usage
+ nodeps = d.getVar("BB_LIMITEDDEPS") or False
+ if nodeps or not filterbydependencies:
+ oe.path.symlink(deploydir, subrepo_dir, True)
+ return
+
+ start = None
+ for dep in taskdepdata:
+ data = taskdepdata[dep]
+ if data[1] == mytaskname and data[0] == pn:
+ start = dep
+ break
+ if start is None:
+ bb.fatal("Couldn't find ourself in BB_TASKDEPDATA?")
+ pkgdeps = set()
+ start = [start]
+ seen = set(start)
+ # Support direct dependencies (do_rootfs -> do_package_write_X)
+ # or indirect dependencies within PN (do_populate_sdk_ext -> do_rootfs -> do_package_write_X)
+ while start:
+ next = []
+ for dep2 in start:
+ for dep in taskdepdata[dep2][3]:
+ if taskdepdata[dep][0] != pn:
+ if "do_" + taskname in dep:
+ pkgdeps.add(dep)
+ elif dep not in seen:
+ next.append(dep)
+ seen.add(dep)
+ start = next
+
+ for dep in pkgdeps:
+ c = taskdepdata[dep][0]
+ manifest, d2 = oe.sstatesig.find_sstate_manifest(c, taskdepdata[dep][2], taskname, d, multilibs)
+ if not manifest:
+ bb.fatal("No manifest generated from: %s in %s" % (c, taskdepdata[dep][2]))
+ if not os.path.exists(manifest):
+ continue
+ with open(manifest, "r") as f:
+ for l in f:
+ l = l.strip()
+ deploydir = os.path.normpath(deploydir)
+ if bb.data.inherits_class('packagefeed-stability', d):
+ dest = l.replace(deploydir + "-prediff", "")
+ else:
+ dest = l.replace(deploydir, "")
+ dest = subrepo_dir + dest
+ if l.endswith("/"):
+ if dest not in seendirs:
+ bb.utils.mkdirhier(dest)
+ seendirs.add(dest)
+ continue
+ # Try to hardlink the file, copy if that fails
+ destdir = os.path.dirname(dest)
+ if destdir not in seendirs:
+ bb.utils.mkdirhier(destdir)
+ seendirs.add(destdir)
+ try:
+ os.link(l, dest)
+ except OSError as err:
+ if err.errno == errno.EXDEV:
+ bb.utils.copyfile(l, dest)
+ else:
+ raise
+
+
+def generate_index_files(d):
+ from oe.package_manager.rpm import RpmSubdirIndexer
+ from oe.package_manager.ipk import OpkgIndexer
+ from oe.package_manager.deb import DpkgIndexer
+
+ classes = d.getVar('PACKAGE_CLASSES').replace("package_", "").split()
+
+ indexer_map = {
+ "rpm": (RpmSubdirIndexer, d.getVar('DEPLOY_DIR_RPM')),
+ "ipk": (OpkgIndexer, d.getVar('DEPLOY_DIR_IPK')),
+ "deb": (DpkgIndexer, d.getVar('DEPLOY_DIR_DEB'))
+ }
+
+ result = None
+
+ for pkg_class in classes:
+ if not pkg_class in indexer_map:
+ continue
+
+ if os.path.exists(indexer_map[pkg_class][1]):
+ result = indexer_map[pkg_class][0](d, indexer_map[pkg_class][1]).write_index()
+
+ if result is not None:
+ bb.fatal(result)
diff --git a/meta/lib/oe/package_manager/deb/__init__.py b/meta/lib/oe/package_manager/deb/__init__.py
new file mode 100644
index 0000000000..72155b178c
--- /dev/null
+++ b/meta/lib/oe/package_manager/deb/__init__.py
@@ -0,0 +1,492 @@
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+
+import re
+import subprocess
+from oe.package_manager import *
+
+class DpkgIndexer(Indexer):
+ def _create_configs(self):
+ bb.utils.mkdirhier(self.apt_conf_dir)
+ bb.utils.mkdirhier(os.path.join(self.apt_conf_dir, "lists", "partial"))
+ bb.utils.mkdirhier(os.path.join(self.apt_conf_dir, "apt.conf.d"))
+ bb.utils.mkdirhier(os.path.join(self.apt_conf_dir, "preferences.d"))
+
+ with open(os.path.join(self.apt_conf_dir, "preferences"),
+ "w") as prefs_file:
+ pass
+ with open(os.path.join(self.apt_conf_dir, "sources.list"),
+ "w+") as sources_file:
+ pass
+
+ with open(self.apt_conf_file, "w") as apt_conf:
+ with open(os.path.join(self.d.expand("${STAGING_ETCDIR_NATIVE}"),
+ "apt", "apt.conf.sample")) as apt_conf_sample:
+ for line in apt_conf_sample.read().split("\n"):
+ line = re.sub(r"#ROOTFS#", "/dev/null", line)
+ line = re.sub(r"#APTCONF#", self.apt_conf_dir, line)
+ apt_conf.write(line + "\n")
+
+ def write_index(self):
+ self.apt_conf_dir = os.path.join(self.d.expand("${APTCONF_TARGET}"),
+ "apt-ftparchive")
+ self.apt_conf_file = os.path.join(self.apt_conf_dir, "apt.conf")
+ self._create_configs()
+
+ os.environ['APT_CONFIG'] = self.apt_conf_file
+
+ pkg_archs = self.d.getVar('PACKAGE_ARCHS')
+ if pkg_archs is not None:
+ arch_list = pkg_archs.split()
+ sdk_pkg_archs = self.d.getVar('SDK_PACKAGE_ARCHS')
+ if sdk_pkg_archs is not None:
+ for a in sdk_pkg_archs.split():
+ if a not in pkg_archs:
+ arch_list.append(a)
+
+ all_mlb_pkg_arch_list = (self.d.getVar('ALL_MULTILIB_PACKAGE_ARCHS') or "").split()
+ arch_list.extend(arch for arch in all_mlb_pkg_arch_list if arch not in arch_list)
+
+ apt_ftparchive = bb.utils.which(os.getenv('PATH'), "apt-ftparchive")
+ gzip = bb.utils.which(os.getenv('PATH'), "gzip")
+
+ index_cmds = []
+ deb_dirs_found = False
+ for arch in arch_list:
+ arch_dir = os.path.join(self.deploy_dir, arch)
+ if not os.path.isdir(arch_dir):
+ continue
+
+ cmd = "cd %s; PSEUDO_UNLOAD=1 %s packages . > Packages;" % (arch_dir, apt_ftparchive)
+
+ cmd += "%s -fcn Packages > Packages.gz;" % gzip
+
+ with open(os.path.join(arch_dir, "Release"), "w+") as release:
+ release.write("Label: %s\n" % arch)
+
+ cmd += "PSEUDO_UNLOAD=1 %s release . >> Release" % apt_ftparchive
+
+ index_cmds.append(cmd)
+
+ deb_dirs_found = True
+
+ if not deb_dirs_found:
+ bb.note("There are no packages in %s" % self.deploy_dir)
+ return
+
+ oe.utils.multiprocess_launch(create_index, index_cmds, self.d)
+ if self.d.getVar('PACKAGE_FEED_SIGN') == '1':
+ raise NotImplementedError('Package feed signing not implementd for dpkg')
+
+class DpkgPkgsList(PkgsList):
+
+ def list_pkgs(self):
+ cmd = [bb.utils.which(os.getenv('PATH'), "dpkg-query"),
+ "--admindir=%s/var/lib/dpkg" % self.rootfs_dir,
+ "-W"]
+
+ cmd.append("-f=Package: ${Package}\nArchitecture: ${PackageArch}\nVersion: ${Version}\nFile: ${Package}_${Version}_${Architecture}.deb\nDepends: ${Depends}\nRecommends: ${Recommends}\nProvides: ${Provides}\n\n")
+
+ try:
+ cmd_output = subprocess.check_output(cmd, stderr=subprocess.STDOUT).strip().decode("utf-8")
+ except subprocess.CalledProcessError as e:
+ bb.fatal("Cannot get the installed packages list. Command '%s' "
+ "returned %d:\n%s" % (' '.join(cmd), e.returncode, e.output.decode("utf-8")))
+
+ return opkg_query(cmd_output)
+
+class OpkgDpkgPM(PackageManager):
+ def __init__(self, d, target_rootfs):
+ """
+ This is an abstract class. Do not instantiate this directly.
+ """
+ super(OpkgDpkgPM, self).__init__(d, target_rootfs)
+
+ def package_info(self, pkg, cmd):
+ """
+ Returns a dictionary with the package info.
+
+ This method extracts the common parts for Opkg and Dpkg
+ """
+
+ try:
+ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).decode("utf-8")
+ except subprocess.CalledProcessError as e:
+ bb.fatal("Unable to list available packages. Command '%s' "
+ "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
+ return opkg_query(output)
+
+ def extract(self, pkg, pkg_info):
+ """
+ Returns the path to a tmpdir where resides the contents of a package.
+
+ Deleting the tmpdir is responsability of the caller.
+
+ This method extracts the common parts for Opkg and Dpkg
+ """
+
+ ar_cmd = bb.utils.which(os.getenv("PATH"), "ar")
+ tar_cmd = bb.utils.which(os.getenv("PATH"), "tar")
+ pkg_path = pkg_info[pkg]["filepath"]
+
+ if not os.path.isfile(pkg_path):
+ bb.fatal("Unable to extract package for '%s'."
+ "File %s doesn't exists" % (pkg, pkg_path))
+
+ tmp_dir = tempfile.mkdtemp()
+ current_dir = os.getcwd()
+ os.chdir(tmp_dir)
+ data_tar = 'data.tar.xz'
+
+ try:
+ cmd = [ar_cmd, 'x', pkg_path]
+ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
+ cmd = [tar_cmd, 'xf', data_tar]
+ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
+ except subprocess.CalledProcessError as e:
+ bb.utils.remove(tmp_dir, recurse=True)
+ bb.fatal("Unable to extract %s package. Command '%s' "
+ "returned %d:\n%s" % (pkg_path, ' '.join(cmd), e.returncode, e.output.decode("utf-8")))
+ except OSError as e:
+ bb.utils.remove(tmp_dir, recurse=True)
+ bb.fatal("Unable to extract %s package. Command '%s' "
+ "returned %d:\n%s at %s" % (pkg_path, ' '.join(cmd), e.errno, e.strerror, e.filename))
+
+ bb.note("Extracted %s to %s" % (pkg_path, tmp_dir))
+ bb.utils.remove(os.path.join(tmp_dir, "debian-binary"))
+ bb.utils.remove(os.path.join(tmp_dir, "control.tar.gz"))
+ os.chdir(current_dir)
+
+ return tmp_dir
+
+ def _handle_intercept_failure(self, registered_pkgs):
+ self.mark_packages("unpacked", registered_pkgs.split())
+
+class DpkgPM(OpkgDpkgPM):
+ def __init__(self, d, target_rootfs, archs, base_archs, apt_conf_dir=None, deb_repo_workdir="oe-rootfs-repo", filterbydependencies=True):
+ super(DpkgPM, self).__init__(d, target_rootfs)
+ self.deploy_dir = oe.path.join(self.d.getVar('WORKDIR'), deb_repo_workdir)
+
+ create_packages_dir(self.d, self.deploy_dir, d.getVar("DEPLOY_DIR_DEB"), "package_write_deb", filterbydependencies)
+
+ if apt_conf_dir is None:
+ self.apt_conf_dir = self.d.expand("${APTCONF_TARGET}/apt")
+ else:
+ self.apt_conf_dir = apt_conf_dir
+ self.apt_conf_file = os.path.join(self.apt_conf_dir, "apt.conf")
+ self.apt_get_cmd = bb.utils.which(os.getenv('PATH'), "apt-get")
+ self.apt_cache_cmd = bb.utils.which(os.getenv('PATH'), "apt-cache")
+
+ self.apt_args = d.getVar("APT_ARGS")
+
+ self.all_arch_list = archs.split()
+ all_mlb_pkg_arch_list = (self.d.getVar('ALL_MULTILIB_PACKAGE_ARCHS') or "").split()
+ self.all_arch_list.extend(arch for arch in all_mlb_pkg_arch_list if arch not in self.all_arch_list)
+
+ self._create_configs(archs, base_archs)
+
+ self.indexer = DpkgIndexer(self.d, self.deploy_dir)
+
+ def mark_packages(self, status_tag, packages=None):
+ """
+ This function will change a package's status in /var/lib/dpkg/status file.
+ If 'packages' is None then the new_status will be applied to all
+ packages
+ """
+ status_file = self.target_rootfs + "/var/lib/dpkg/status"
+
+ with open(status_file, "r") as sf:
+ with open(status_file + ".tmp", "w+") as tmp_sf:
+ if packages is None:
+ tmp_sf.write(re.sub(r"Package: (.*?)\n((?:[^\n]+\n)*?)Status: (.*)(?:unpacked|installed)",
+ r"Package: \1\n\2Status: \3%s" % status_tag,
+ sf.read()))
+ else:
+ if type(packages).__name__ != "list":
+ raise TypeError("'packages' should be a list object")
+
+ status = sf.read()
+ for pkg in packages:
+ status = re.sub(r"Package: %s\n((?:[^\n]+\n)*?)Status: (.*)(?:unpacked|installed)" % pkg,
+ r"Package: %s\n\1Status: \2%s" % (pkg, status_tag),
+ status)
+
+ tmp_sf.write(status)
+
+ os.rename(status_file + ".tmp", status_file)
+
+ def run_pre_post_installs(self, package_name=None):
+ """
+ Run the pre/post installs for package "package_name". If package_name is
+ None, then run all pre/post install scriptlets.
+ """
+ info_dir = self.target_rootfs + "/var/lib/dpkg/info"
+ ControlScript = collections.namedtuple("ControlScript", ["suffix", "name", "argument"])
+ control_scripts = [
+ ControlScript(".preinst", "Preinstall", "install"),
+ ControlScript(".postinst", "Postinstall", "configure")]
+ status_file = self.target_rootfs + "/var/lib/dpkg/status"
+ installed_pkgs = []
+
+ with open(status_file, "r") as status:
+ for line in status.read().split('\n'):
+ m = re.match(r"^Package: (.*)", line)
+ if m is not None:
+ installed_pkgs.append(m.group(1))
+
+ if package_name is not None and not package_name in installed_pkgs:
+ return
+
+ os.environ['D'] = self.target_rootfs
+ os.environ['OFFLINE_ROOT'] = self.target_rootfs
+ os.environ['IPKG_OFFLINE_ROOT'] = self.target_rootfs
+ os.environ['OPKG_OFFLINE_ROOT'] = self.target_rootfs
+ os.environ['INTERCEPT_DIR'] = self.intercepts_dir
+ os.environ['NATIVE_ROOT'] = self.d.getVar('STAGING_DIR_NATIVE')
+
+ for pkg_name in installed_pkgs:
+ for control_script in control_scripts:
+ p_full = os.path.join(info_dir, pkg_name + control_script.suffix)
+ if os.path.exists(p_full):
+ try:
+ bb.note("Executing %s for package: %s ..." %
+ (control_script.name.lower(), pkg_name))
+ output = subprocess.check_output([p_full, control_script.argument],
+ stderr=subprocess.STDOUT).decode("utf-8")
+ bb.note(output)
+ except subprocess.CalledProcessError as e:
+ bb.warn("%s for package %s failed with %d:\n%s" %
+ (control_script.name, pkg_name, e.returncode,
+ e.output.decode("utf-8")))
+ failed_postinsts_abort([pkg_name], self.d.expand("${T}/log.do_${BB_CURRENTTASK}"))
+
+ def update(self):
+ os.environ['APT_CONFIG'] = self.apt_conf_file
+
+ self.deploy_dir_lock()
+
+ cmd = "%s update" % self.apt_get_cmd
+
+ try:
+ subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT)
+ except subprocess.CalledProcessError as e:
+ bb.fatal("Unable to update the package index files. Command '%s' "
+ "returned %d:\n%s" % (e.cmd, e.returncode, e.output.decode("utf-8")))
+
+ self.deploy_dir_unlock()
+
+ def install(self, pkgs, attempt_only=False):
+ if attempt_only and len(pkgs) == 0:
+ return
+
+ os.environ['APT_CONFIG'] = self.apt_conf_file
+
+ cmd = "%s %s install --force-yes --allow-unauthenticated --no-remove %s" % \
+ (self.apt_get_cmd, self.apt_args, ' '.join(pkgs))
+
+ try:
+ bb.note("Installing the following packages: %s" % ' '.join(pkgs))
+ subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT)
+ except subprocess.CalledProcessError as e:
+ (bb.fatal, bb.warn)[attempt_only]("Unable to install packages. "
+ "Command '%s' returned %d:\n%s" %
+ (cmd, e.returncode, e.output.decode("utf-8")))
+
+ # rename *.dpkg-new files/dirs
+ for root, dirs, files in os.walk(self.target_rootfs):
+ for dir in dirs:
+ new_dir = re.sub(r"\.dpkg-new", "", dir)
+ if dir != new_dir:
+ os.rename(os.path.join(root, dir),
+ os.path.join(root, new_dir))
+
+ for file in files:
+ new_file = re.sub(r"\.dpkg-new", "", file)
+ if file != new_file:
+ os.rename(os.path.join(root, file),
+ os.path.join(root, new_file))
+
+
+ def remove(self, pkgs, with_dependencies=True):
+ if not pkgs:
+ return
+
+ if with_dependencies:
+ os.environ['APT_CONFIG'] = self.apt_conf_file
+ cmd = "%s purge %s" % (self.apt_get_cmd, ' '.join(pkgs))
+ else:
+ cmd = "%s --admindir=%s/var/lib/dpkg --instdir=%s" \
+ " -P --force-depends %s" % \
+ (bb.utils.which(os.getenv('PATH'), "dpkg"),
+ self.target_rootfs, self.target_rootfs, ' '.join(pkgs))
+
+ try:
+ subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT)
+ except subprocess.CalledProcessError as e:
+ bb.fatal("Unable to remove packages. Command '%s' "
+ "returned %d:\n%s" % (e.cmd, e.returncode, e.output.decode("utf-8")))
+
+ def write_index(self):
+ self.deploy_dir_lock()
+
+ result = self.indexer.write_index()
+
+ self.deploy_dir_unlock()
+
+ if result is not None:
+ bb.fatal(result)
+
+ def insert_feeds_uris(self, feed_uris, feed_base_paths, feed_archs):
+ if feed_uris == "":
+ return
+
+ sources_conf = os.path.join("%s/etc/apt/sources.list"
+ % self.target_rootfs)
+ arch_list = []
+
+ if feed_archs is None:
+ for arch in self.all_arch_list:
+ if not os.path.exists(os.path.join(self.deploy_dir, arch)):
+ continue
+ arch_list.append(arch)
+ else:
+ arch_list = feed_archs.split()
+
+ feed_uris = self.construct_uris(feed_uris.split(), feed_base_paths.split())
+
+ with open(sources_conf, "w+") as sources_file:
+ for uri in feed_uris:
+ if arch_list:
+ for arch in arch_list:
+ bb.note('Adding dpkg channel at (%s)' % uri)
+ sources_file.write("deb %s/%s ./\n" %
+ (uri, arch))
+ else:
+ bb.note('Adding dpkg channel at (%s)' % uri)
+ sources_file.write("deb %s ./\n" % uri)
+
+ def _create_configs(self, archs, base_archs):
+ base_archs = re.sub(r"_", r"-", base_archs)
+
+ if os.path.exists(self.apt_conf_dir):
+ bb.utils.remove(self.apt_conf_dir, True)
+
+ bb.utils.mkdirhier(self.apt_conf_dir)
+ bb.utils.mkdirhier(self.apt_conf_dir + "/lists/partial/")
+ bb.utils.mkdirhier(self.apt_conf_dir + "/apt.conf.d/")
+ bb.utils.mkdirhier(self.apt_conf_dir + "/preferences.d/")
+
+ arch_list = []
+ for arch in self.all_arch_list:
+ if not os.path.exists(os.path.join(self.deploy_dir, arch)):
+ continue
+ arch_list.append(arch)
+
+ with open(os.path.join(self.apt_conf_dir, "preferences"), "w+") as prefs_file:
+ priority = 801
+ for arch in arch_list:
+ prefs_file.write(
+ "Package: *\n"
+ "Pin: release l=%s\n"
+ "Pin-Priority: %d\n\n" % (arch, priority))
+
+ priority += 5
+
+ pkg_exclude = self.d.getVar('PACKAGE_EXCLUDE') or ""
+ for pkg in pkg_exclude.split():
+ prefs_file.write(
+ "Package: %s\n"
+ "Pin: release *\n"
+ "Pin-Priority: -1\n\n" % pkg)
+
+ arch_list.reverse()
+
+ with open(os.path.join(self.apt_conf_dir, "sources.list"), "w+") as sources_file:
+ for arch in arch_list:
+ sources_file.write("deb file:%s/ ./\n" %
+ os.path.join(self.deploy_dir, arch))
+
+ base_arch_list = base_archs.split()
+ multilib_variants = self.d.getVar("MULTILIB_VARIANTS");
+ for variant in multilib_variants.split():
+ localdata = bb.data.createCopy(self.d)
+ variant_tune = localdata.getVar("DEFAULTTUNE_virtclass-multilib-" + variant, False)
+ orig_arch = localdata.getVar("DPKG_ARCH")
+ localdata.setVar("DEFAULTTUNE", variant_tune)
+ variant_arch = localdata.getVar("DPKG_ARCH")
+ if variant_arch not in base_arch_list:
+ base_arch_list.append(variant_arch)
+
+ with open(self.apt_conf_file, "w+") as apt_conf:
+ with open(self.d.expand("${STAGING_ETCDIR_NATIVE}/apt/apt.conf.sample")) as apt_conf_sample:
+ for line in apt_conf_sample.read().split("\n"):
+ match_arch = re.match(r" Architecture \".*\";$", line)
+ architectures = ""
+ if match_arch:
+ for base_arch in base_arch_list:
+ architectures += "\"%s\";" % base_arch
+ apt_conf.write(" Architectures {%s};\n" % architectures);
+ apt_conf.write(" Architecture \"%s\";\n" % base_archs)
+ else:
+ line = re.sub(r"#ROOTFS#", self.target_rootfs, line)
+ line = re.sub(r"#APTCONF#", self.apt_conf_dir, line)
+ apt_conf.write(line + "\n")
+
+ target_dpkg_dir = "%s/var/lib/dpkg" % self.target_rootfs
+ bb.utils.mkdirhier(os.path.join(target_dpkg_dir, "info"))
+
+ bb.utils.mkdirhier(os.path.join(target_dpkg_dir, "updates"))
+
+ if not os.path.exists(os.path.join(target_dpkg_dir, "status")):
+ open(os.path.join(target_dpkg_dir, "status"), "w+").close()
+ if not os.path.exists(os.path.join(target_dpkg_dir, "available")):
+ open(os.path.join(target_dpkg_dir, "available"), "w+").close()
+
+ def remove_packaging_data(self):
+ bb.utils.remove(self.target_rootfs + self.d.getVar('opkglibdir'), True)
+ bb.utils.remove(self.target_rootfs + "/var/lib/dpkg/", True)
+
+ def fix_broken_dependencies(self):
+ os.environ['APT_CONFIG'] = self.apt_conf_file
+
+ cmd = "%s %s --allow-unauthenticated -f install" % (self.apt_get_cmd, self.apt_args)
+
+ try:
+ subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT)
+ except subprocess.CalledProcessError as e:
+ bb.fatal("Cannot fix broken dependencies. Command '%s' "
+ "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
+
+ def list_installed(self):
+ return DpkgPkgsList(self.d, self.target_rootfs).list_pkgs()
+
+ def package_info(self, pkg):
+ """
+ Returns a dictionary with the package info.
+ """
+ cmd = "%s show %s" % (self.apt_cache_cmd, pkg)
+ pkg_info = super(DpkgPM, self).package_info(pkg, cmd)
+
+ pkg_arch = pkg_info[pkg]["pkgarch"]
+ pkg_filename = pkg_info[pkg]["filename"]
+ pkg_info[pkg]["filepath"] = \
+ os.path.join(self.deploy_dir, pkg_arch, pkg_filename)
+
+ return pkg_info
+
+ def extract(self, pkg):
+ """
+ Returns the path to a tmpdir where resides the contents of a package.
+
+ Deleting the tmpdir is responsability of the caller.
+ """
+ pkg_info = self.package_info(pkg)
+ if not pkg_info:
+ bb.fatal("Unable to get information for package '%s' while "
+ "trying to extract the package." % pkg)
+
+ tmp_dir = super(DpkgPM, self).extract(pkg, pkg_info)
+ bb.utils.remove(os.path.join(tmp_dir, "data.tar.xz"))
+
+ return tmp_dir
diff --git a/meta/lib/oe/package_manager/deb/manifest.py b/meta/lib/oe/package_manager/deb/manifest.py
new file mode 100644
index 0000000000..0b12036644
--- /dev/null
+++ b/meta/lib/oe/package_manager/deb/manifest.py
@@ -0,0 +1,26 @@
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+
+from oe.manifest import Manifest
+
+class DpkgManifest(Manifest):
+ def create_initial(self):
+ with open(self.initial_manifest, "w+") as manifest:
+ manifest.write(self.initial_manifest_file_header)
+
+ for var in self.var_maps[self.manifest_type]:
+ pkg_list = self.d.getVar(var)
+
+ if pkg_list is None:
+ continue
+
+ for pkg in pkg_list.split():
+ manifest.write("%s,%s\n" %
+ (self.var_maps[self.manifest_type][var], pkg))
+
+ def create_final(self):
+ pass
+
+ def create_full(self, pm):
+ pass
diff --git a/meta/lib/oe/package_manager/deb/rootfs.py b/meta/lib/oe/package_manager/deb/rootfs.py
new file mode 100644
index 0000000000..819f67eda5
--- /dev/null
+++ b/meta/lib/oe/package_manager/deb/rootfs.py
@@ -0,0 +1,210 @@
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+
+import re
+import shutil
+from oe.rootfs import Rootfs
+from oe.manifest import Manifest
+from oe.utils import execute_pre_post_process
+from oe.package_manager.deb.manifest import DpkgManifest
+from oe.package_manager.deb import DpkgPM
+
+class DpkgOpkgRootfs(Rootfs):
+ def __init__(self, d, progress_reporter=None, logcatcher=None):
+ super(DpkgOpkgRootfs, self).__init__(d, progress_reporter, logcatcher)
+
+ def _get_pkgs_postinsts(self, status_file):
+ def _get_pkg_depends_list(pkg_depends):
+ pkg_depends_list = []
+ # filter version requirements like libc (>= 1.1)
+ for dep in pkg_depends.split(', '):
+ m_dep = re.match(r"^(.*) \(.*\)$", dep)
+ if m_dep:
+ dep = m_dep.group(1)
+ pkg_depends_list.append(dep)
+
+ return pkg_depends_list
+
+ pkgs = {}
+ pkg_name = ""
+ pkg_status_match = False
+ pkg_depends = ""
+
+ with open(status_file) as status:
+ data = status.read()
+ status.close()
+ for line in data.split('\n'):
+ m_pkg = re.match(r"^Package: (.*)", line)
+ m_status = re.match(r"^Status:.*unpacked", line)
+ m_depends = re.match(r"^Depends: (.*)", line)
+
+ #Only one of m_pkg, m_status or m_depends is not None at time
+ #If m_pkg is not None, we started a new package
+ if m_pkg is not None:
+ #Get Package name
+ pkg_name = m_pkg.group(1)
+ #Make sure we reset other variables
+ pkg_status_match = False
+ pkg_depends = ""
+ elif m_status is not None:
+ #New status matched
+ pkg_status_match = True
+ elif m_depends is not None:
+ #New depends macthed
+ pkg_depends = m_depends.group(1)
+ else:
+ pass
+
+ #Now check if we can process package depends and postinst
+ if "" != pkg_name and pkg_status_match:
+ pkgs[pkg_name] = _get_pkg_depends_list(pkg_depends)
+ else:
+ #Not enough information
+ pass
+
+ # remove package dependencies not in postinsts
+ pkg_names = list(pkgs.keys())
+ for pkg_name in pkg_names:
+ deps = pkgs[pkg_name][:]
+
+ for d in deps:
+ if d not in pkg_names:
+ pkgs[pkg_name].remove(d)
+
+ return pkgs
+
+ def _get_delayed_postinsts_common(self, status_file):
+ def _dep_resolve(graph, node, resolved, seen):
+ seen.append(node)
+
+ for edge in graph[node]:
+ if edge not in resolved:
+ if edge in seen:
+ raise RuntimeError("Packages %s and %s have " \
+ "a circular dependency in postinsts scripts." \
+ % (node, edge))
+ _dep_resolve(graph, edge, resolved, seen)
+
+ resolved.append(node)
+
+ pkg_list = []
+
+ pkgs = None
+ if not self.d.getVar('PACKAGE_INSTALL').strip():
+ bb.note("Building empty image")
+ else:
+ pkgs = self._get_pkgs_postinsts(status_file)
+ if pkgs:
+ root = "__packagegroup_postinst__"
+ pkgs[root] = list(pkgs.keys())
+ _dep_resolve(pkgs, root, pkg_list, [])
+ pkg_list.remove(root)
+
+ if len(pkg_list) == 0:
+ return None
+
+ return pkg_list
+
+ def _save_postinsts_common(self, dst_postinst_dir, src_postinst_dir):
+ if bb.utils.contains("IMAGE_FEATURES", "package-management",
+ True, False, self.d):
+ return
+ num = 0
+ for p in self._get_delayed_postinsts():
+ bb.utils.mkdirhier(dst_postinst_dir)
+
+ if os.path.exists(os.path.join(src_postinst_dir, p + ".postinst")):
+ shutil.copy(os.path.join(src_postinst_dir, p + ".postinst"),
+ os.path.join(dst_postinst_dir, "%03d-%s" % (num, p)))
+
+ num += 1
+
+class DpkgRootfs(DpkgOpkgRootfs):
+ def __init__(self, d, manifest_dir, progress_reporter=None, logcatcher=None):
+ super(DpkgRootfs, self).__init__(d, progress_reporter, logcatcher)
+ self.log_check_regex = '^E:'
+ self.log_check_expected_regexes = \
+ [
+ "^E: Unmet dependencies."
+ ]
+
+ bb.utils.remove(self.image_rootfs, True)
+ bb.utils.remove(self.d.getVar('MULTILIB_TEMP_ROOTFS'), True)
+ self.manifest = DpkgManifest(d, manifest_dir)
+ self.pm = DpkgPM(d, d.getVar('IMAGE_ROOTFS'),
+ d.getVar('PACKAGE_ARCHS'),
+ d.getVar('DPKG_ARCH'))
+
+
+ def _create(self):
+ pkgs_to_install = self.manifest.parse_initial_manifest()
+ deb_pre_process_cmds = self.d.getVar('DEB_PREPROCESS_COMMANDS')
+ deb_post_process_cmds = self.d.getVar('DEB_POSTPROCESS_COMMANDS')
+
+ alt_dir = self.d.expand("${IMAGE_ROOTFS}/var/lib/dpkg/alternatives")
+ bb.utils.mkdirhier(alt_dir)
+
+ # update PM index files
+ self.pm.write_index()
+
+ execute_pre_post_process(self.d, deb_pre_process_cmds)
+
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+ # Don't support incremental, so skip that
+ self.progress_reporter.next_stage()
+
+ self.pm.update()
+
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
+ for pkg_type in self.install_order:
+ if pkg_type in pkgs_to_install:
+ self.pm.install(pkgs_to_install[pkg_type],
+ [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY])
+ self.pm.fix_broken_dependencies()
+
+ if self.progress_reporter:
+ # Don't support attemptonly, so skip that
+ self.progress_reporter.next_stage()
+ self.progress_reporter.next_stage()
+
+ self.pm.install_complementary()
+
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
+ self._setup_dbg_rootfs(['/var/lib/dpkg'])
+
+ self.pm.fix_broken_dependencies()
+
+ self.pm.mark_packages("installed")
+
+ self.pm.run_pre_post_installs()
+
+ execute_pre_post_process(self.d, deb_post_process_cmds)
+
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
+ @staticmethod
+ def _depends_list():
+ return ['DEPLOY_DIR_DEB', 'DEB_SDK_ARCH', 'APTCONF_TARGET', 'APT_ARGS', 'DPKG_ARCH', 'DEB_PREPROCESS_COMMANDS', 'DEB_POSTPROCESS_COMMANDS']
+
+ def _get_delayed_postinsts(self):
+ status_file = self.image_rootfs + "/var/lib/dpkg/status"
+ return self._get_delayed_postinsts_common(status_file)
+
+ def _save_postinsts(self):
+ dst_postinst_dir = self.d.expand("${IMAGE_ROOTFS}${sysconfdir}/deb-postinsts")
+ src_postinst_dir = self.d.expand("${IMAGE_ROOTFS}/var/lib/dpkg/info")
+ return self._save_postinsts_common(dst_postinst_dir, src_postinst_dir)
+
+ def _log_check(self):
+ self._log_check_warn()
+ self._log_check_error()
+
+ def _cleanup(self):
+ pass
diff --git a/meta/lib/oe/package_manager/deb/sdk.py b/meta/lib/oe/package_manager/deb/sdk.py
new file mode 100644
index 0000000000..b25eb70b00
--- /dev/null
+++ b/meta/lib/oe/package_manager/deb/sdk.py
@@ -0,0 +1,96 @@
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+
+import glob
+import shutil
+from oe.utils import execute_pre_post_process
+from oe.sdk import Sdk
+from oe.manifest import Manifest
+from oe.package_manager.deb import DpkgPM
+
+class DpkgSdk(Sdk):
+ def __init__(self, d, manifest_dir=None):
+ super(DpkgSdk, self).__init__(d, manifest_dir)
+
+ self.target_conf_dir = os.path.join(self.d.getVar("APTCONF_TARGET"), "apt")
+ self.host_conf_dir = os.path.join(self.d.getVar("APTCONF_TARGET"), "apt-sdk")
+
+ from oe.package_manager.deb.manifest import DpkgManifest
+
+ self.target_manifest = DpkgManifest(d, self.manifest_dir,
+ Manifest.MANIFEST_TYPE_SDK_TARGET)
+ self.host_manifest = DpkgManifest(d, self.manifest_dir,
+ Manifest.MANIFEST_TYPE_SDK_HOST)
+
+ deb_repo_workdir = "oe-sdk-repo"
+ if "sdk_ext" in d.getVar("BB_RUNTASK"):
+ deb_repo_workdir = "oe-sdk-ext-repo"
+
+ self.target_pm = DpkgPM(d, self.sdk_target_sysroot,
+ self.d.getVar("PACKAGE_ARCHS"),
+ self.d.getVar("DPKG_ARCH"),
+ self.target_conf_dir,
+ deb_repo_workdir=deb_repo_workdir)
+
+ self.host_pm = DpkgPM(d, self.sdk_host_sysroot,
+ self.d.getVar("SDK_PACKAGE_ARCHS"),
+ self.d.getVar("DEB_SDK_ARCH"),
+ self.host_conf_dir,
+ deb_repo_workdir=deb_repo_workdir)
+
+ def _copy_apt_dir_to(self, dst_dir):
+ staging_etcdir_native = self.d.getVar("STAGING_ETCDIR_NATIVE")
+
+ self.remove(dst_dir, True)
+
+ shutil.copytree(os.path.join(staging_etcdir_native, "apt"), dst_dir)
+
+ def _populate_sysroot(self, pm, manifest):
+ pkgs_to_install = manifest.parse_initial_manifest()
+
+ pm.write_index()
+ pm.update()
+
+ for pkg_type in self.install_order:
+ if pkg_type in pkgs_to_install:
+ pm.install(pkgs_to_install[pkg_type],
+ [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY])
+
+ def _populate(self):
+ execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_PRE_TARGET_COMMAND"))
+
+ bb.note("Installing TARGET packages")
+ self._populate_sysroot(self.target_pm, self.target_manifest)
+
+ self.target_pm.install_complementary(self.d.getVar('SDKIMAGE_INSTALL_COMPLEMENTARY'))
+
+ self.target_pm.run_intercepts(populate_sdk='target')
+
+ execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_TARGET_COMMAND"))
+
+ self._copy_apt_dir_to(os.path.join(self.sdk_target_sysroot, "etc", "apt"))
+
+ if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
+ self.target_pm.remove_packaging_data()
+
+ bb.note("Installing NATIVESDK packages")
+ self._populate_sysroot(self.host_pm, self.host_manifest)
+ self.install_locales(self.host_pm)
+
+ self.host_pm.run_intercepts(populate_sdk='host')
+
+ execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_HOST_COMMAND"))
+
+ self._copy_apt_dir_to(os.path.join(self.sdk_output, self.sdk_native_path,
+ "etc", "apt"))
+
+ if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
+ self.host_pm.remove_packaging_data()
+
+ native_dpkg_state_dir = os.path.join(self.sdk_output, self.sdk_native_path,
+ "var", "lib", "dpkg")
+ self.mkdirhier(native_dpkg_state_dir)
+ for f in glob.glob(os.path.join(self.sdk_output, "var", "lib", "dpkg", "*")):
+ self.movefile(f, native_dpkg_state_dir)
+ self.remove(os.path.join(self.sdk_output, "var"), True)
diff --git a/meta/lib/oe/package_manager/ipk/__init__.py b/meta/lib/oe/package_manager/ipk/__init__.py
new file mode 100644
index 0000000000..9603993a59
--- /dev/null
+++ b/meta/lib/oe/package_manager/ipk/__init__.py
@@ -0,0 +1,507 @@
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+
+import re
+import shutil
+import subprocess
+from oe.package_manager import *
+
+class OpkgIndexer(Indexer):
+ def write_index(self):
+ arch_vars = ["ALL_MULTILIB_PACKAGE_ARCHS",
+ "SDK_PACKAGE_ARCHS",
+ ]
+
+ opkg_index_cmd = bb.utils.which(os.getenv('PATH'), "opkg-make-index")
+ if self.d.getVar('PACKAGE_FEED_SIGN') == '1':
+ signer = get_signer(self.d, self.d.getVar('PACKAGE_FEED_GPG_BACKEND'))
+ else:
+ signer = None
+
+ if not os.path.exists(os.path.join(self.deploy_dir, "Packages")):
+ open(os.path.join(self.deploy_dir, "Packages"), "w").close()
+
+ index_cmds = set()
+ index_sign_files = set()
+ for arch_var in arch_vars:
+ archs = self.d.getVar(arch_var)
+ if archs is None:
+ continue
+
+ for arch in archs.split():
+ pkgs_dir = os.path.join(self.deploy_dir, arch)
+ pkgs_file = os.path.join(pkgs_dir, "Packages")
+
+ if not os.path.isdir(pkgs_dir):
+ continue
+
+ if not os.path.exists(pkgs_file):
+ open(pkgs_file, "w").close()
+
+ index_cmds.add('%s --checksum md5 --checksum sha256 -r %s -p %s -m %s' %
+ (opkg_index_cmd, pkgs_file, pkgs_file, pkgs_dir))
+
+ index_sign_files.add(pkgs_file)
+
+ if len(index_cmds) == 0:
+ bb.note("There are no packages in %s!" % self.deploy_dir)
+ return
+
+ oe.utils.multiprocess_launch(create_index, index_cmds, self.d)
+
+ if signer:
+ feed_sig_type = self.d.getVar('PACKAGE_FEED_GPG_SIGNATURE_TYPE')
+ is_ascii_sig = (feed_sig_type.upper() != "BIN")
+ for f in index_sign_files:
+ signer.detach_sign(f,
+ self.d.getVar('PACKAGE_FEED_GPG_NAME'),
+ self.d.getVar('PACKAGE_FEED_GPG_PASSPHRASE_FILE'),
+ armor=is_ascii_sig)
+
+class OpkgPkgsList(PkgsList):
+ def __init__(self, d, rootfs_dir, config_file):
+ super(OpkgPkgsList, self).__init__(d, rootfs_dir)
+
+ self.opkg_cmd = bb.utils.which(os.getenv('PATH'), "opkg")
+ self.opkg_args = "-f %s -o %s " % (config_file, rootfs_dir)
+ self.opkg_args += self.d.getVar("OPKG_ARGS")
+
+ def list_pkgs(self, format=None):
+ cmd = "%s %s status" % (self.opkg_cmd, self.opkg_args)
+
+ # opkg returns success even when it printed some
+ # "Collected errors:" report to stderr. Mixing stderr into
+ # stdout then leads to random failures later on when
+ # parsing the output. To avoid this we need to collect both
+ # output streams separately and check for empty stderr.
+ p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
+ cmd_output, cmd_stderr = p.communicate()
+ cmd_output = cmd_output.decode("utf-8")
+ cmd_stderr = cmd_stderr.decode("utf-8")
+ if p.returncode or cmd_stderr:
+ bb.fatal("Cannot get the installed packages list. Command '%s' "
+ "returned %d and stderr:\n%s" % (cmd, p.returncode, cmd_stderr))
+
+ return opkg_query(cmd_output)
+
+
+
+class OpkgDpkgPM(PackageManager):
+ def __init__(self, d, target_rootfs):
+ """
+ This is an abstract class. Do not instantiate this directly.
+ """
+ super(OpkgDpkgPM, self).__init__(d, target_rootfs)
+
+ def package_info(self, pkg, cmd):
+ """
+ Returns a dictionary with the package info.
+
+ This method extracts the common parts for Opkg and Dpkg
+ """
+
+ try:
+ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).decode("utf-8")
+ except subprocess.CalledProcessError as e:
+ bb.fatal("Unable to list available packages. Command '%s' "
+ "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
+ return opkg_query(output)
+
+ def extract(self, pkg, pkg_info):
+ """
+ Returns the path to a tmpdir where resides the contents of a package.
+
+ Deleting the tmpdir is responsability of the caller.
+
+ This method extracts the common parts for Opkg and Dpkg
+ """
+
+ ar_cmd = bb.utils.which(os.getenv("PATH"), "ar")
+ tar_cmd = bb.utils.which(os.getenv("PATH"), "tar")
+ pkg_path = pkg_info[pkg]["filepath"]
+
+ if not os.path.isfile(pkg_path):
+ bb.fatal("Unable to extract package for '%s'."
+ "File %s doesn't exists" % (pkg, pkg_path))
+
+ tmp_dir = tempfile.mkdtemp()
+ current_dir = os.getcwd()
+ os.chdir(tmp_dir)
+ data_tar = 'data.tar.xz'
+
+ try:
+ cmd = [ar_cmd, 'x', pkg_path]
+ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
+ cmd = [tar_cmd, 'xf', data_tar]
+ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
+ except subprocess.CalledProcessError as e:
+ bb.utils.remove(tmp_dir, recurse=True)
+ bb.fatal("Unable to extract %s package. Command '%s' "
+ "returned %d:\n%s" % (pkg_path, ' '.join(cmd), e.returncode, e.output.decode("utf-8")))
+ except OSError as e:
+ bb.utils.remove(tmp_dir, recurse=True)
+ bb.fatal("Unable to extract %s package. Command '%s' "
+ "returned %d:\n%s at %s" % (pkg_path, ' '.join(cmd), e.errno, e.strerror, e.filename))
+
+ bb.note("Extracted %s to %s" % (pkg_path, tmp_dir))
+ bb.utils.remove(os.path.join(tmp_dir, "debian-binary"))
+ bb.utils.remove(os.path.join(tmp_dir, "control.tar.gz"))
+ os.chdir(current_dir)
+
+ return tmp_dir
+
+ def _handle_intercept_failure(self, registered_pkgs):
+ self.mark_packages("unpacked", registered_pkgs.split())
+
+class OpkgPM(OpkgDpkgPM):
+ def __init__(self, d, target_rootfs, config_file, archs, task_name='target', ipk_repo_workdir="oe-rootfs-repo", filterbydependencies=True, prepare_index=True):
+ super(OpkgPM, self).__init__(d, target_rootfs)
+
+ self.config_file = config_file
+ self.pkg_archs = archs
+ self.task_name = task_name
+
+ self.deploy_dir = oe.path.join(self.d.getVar('WORKDIR'), ipk_repo_workdir)
+ self.deploy_lock_file = os.path.join(self.deploy_dir, "deploy.lock")
+ self.opkg_cmd = bb.utils.which(os.getenv('PATH'), "opkg")
+ self.opkg_args = "--volatile-cache -f %s -t %s -o %s " % (self.config_file, self.d.expand('${T}/ipktemp/') ,target_rootfs)
+ self.opkg_args += self.d.getVar("OPKG_ARGS")
+
+ if prepare_index:
+ create_packages_dir(self.d, self.deploy_dir, d.getVar("DEPLOY_DIR_IPK"), "package_write_ipk", filterbydependencies)
+
+ opkg_lib_dir = self.d.getVar('OPKGLIBDIR')
+ if opkg_lib_dir[0] == "/":
+ opkg_lib_dir = opkg_lib_dir[1:]
+
+ self.opkg_dir = os.path.join(target_rootfs, opkg_lib_dir, "opkg")
+
+ bb.utils.mkdirhier(self.opkg_dir)
+
+ self.saved_opkg_dir = self.d.expand('${T}/saved/%s' % self.task_name)
+ if not os.path.exists(self.d.expand('${T}/saved')):
+ bb.utils.mkdirhier(self.d.expand('${T}/saved'))
+
+ self.from_feeds = (self.d.getVar('BUILD_IMAGES_FROM_FEEDS') or "") == "1"
+ if self.from_feeds:
+ self._create_custom_config()
+ else:
+ self._create_config()
+
+ self.indexer = OpkgIndexer(self.d, self.deploy_dir)
+
+ def mark_packages(self, status_tag, packages=None):
+ """
+ This function will change a package's status in /var/lib/opkg/status file.
+ If 'packages' is None then the new_status will be applied to all
+ packages
+ """
+ status_file = os.path.join(self.opkg_dir, "status")
+
+ with open(status_file, "r") as sf:
+ with open(status_file + ".tmp", "w+") as tmp_sf:
+ if packages is None:
+ tmp_sf.write(re.sub(r"Package: (.*?)\n((?:[^\n]+\n)*?)Status: (.*)(?:unpacked|installed)",
+ r"Package: \1\n\2Status: \3%s" % status_tag,
+ sf.read()))
+ else:
+ if type(packages).__name__ != "list":
+ raise TypeError("'packages' should be a list object")
+
+ status = sf.read()
+ for pkg in packages:
+ status = re.sub(r"Package: %s\n((?:[^\n]+\n)*?)Status: (.*)(?:unpacked|installed)" % pkg,
+ r"Package: %s\n\1Status: \2%s" % (pkg, status_tag),
+ status)
+
+ tmp_sf.write(status)
+
+ os.rename(status_file + ".tmp", status_file)
+
+ def _create_custom_config(self):
+ bb.note("Building from feeds activated!")
+
+ with open(self.config_file, "w+") as config_file:
+ priority = 1
+ for arch in self.pkg_archs.split():
+ config_file.write("arch %s %d\n" % (arch, priority))
+ priority += 5
+
+ for line in (self.d.getVar('IPK_FEED_URIS') or "").split():
+ feed_match = re.match(r"^[ \t]*(.*)##([^ \t]*)[ \t]*$", line)
+
+ if feed_match is not None:
+ feed_name = feed_match.group(1)
+ feed_uri = feed_match.group(2)
+
+ bb.note("Add %s feed with URL %s" % (feed_name, feed_uri))
+
+ config_file.write("src/gz %s %s\n" % (feed_name, feed_uri))
+
+ """
+ Allow to use package deploy directory contents as quick devel-testing
+ feed. This creates individual feed configs for each arch subdir of those
+ specified as compatible for the current machine.
+ NOTE: Development-helper feature, NOT a full-fledged feed.
+ """
+ if (self.d.getVar('FEED_DEPLOYDIR_BASE_URI') or "") != "":
+ for arch in self.pkg_archs.split():
+ cfg_file_name = os.path.join(self.target_rootfs,
+ self.d.getVar("sysconfdir"),
+ "opkg",
+ "local-%s-feed.conf" % arch)
+
+ with open(cfg_file_name, "w+") as cfg_file:
+ cfg_file.write("src/gz local-%s %s/%s" %
+ (arch,
+ self.d.getVar('FEED_DEPLOYDIR_BASE_URI'),
+ arch))
+
+ if self.d.getVar('OPKGLIBDIR') != '/var/lib':
+ # There is no command line option for this anymore, we need to add
+ # info_dir and status_file to config file, if OPKGLIBDIR doesn't have
+ # the default value of "/var/lib" as defined in opkg:
+ # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_LISTS_DIR VARDIR "/lib/opkg/lists"
+ # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_INFO_DIR VARDIR "/lib/opkg/info"
+ # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_STATUS_FILE VARDIR "/lib/opkg/status"
+ cfg_file.write("option info_dir %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR'), 'opkg', 'info'))
+ cfg_file.write("option lists_dir %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR'), 'opkg', 'lists'))
+ cfg_file.write("option status_file %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR'), 'opkg', 'status'))
+
+
+ def _create_config(self):
+ with open(self.config_file, "w+") as config_file:
+ priority = 1
+ for arch in self.pkg_archs.split():
+ config_file.write("arch %s %d\n" % (arch, priority))
+ priority += 5
+
+ config_file.write("src oe file:%s\n" % self.deploy_dir)
+
+ for arch in self.pkg_archs.split():
+ pkgs_dir = os.path.join(self.deploy_dir, arch)
+ if os.path.isdir(pkgs_dir):
+ config_file.write("src oe-%s file:%s\n" %
+ (arch, pkgs_dir))
+
+ if self.d.getVar('OPKGLIBDIR') != '/var/lib':
+ # There is no command line option for this anymore, we need to add
+ # info_dir and status_file to config file, if OPKGLIBDIR doesn't have
+ # the default value of "/var/lib" as defined in opkg:
+ # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_LISTS_DIR VARDIR "/lib/opkg/lists"
+ # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_INFO_DIR VARDIR "/lib/opkg/info"
+ # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_STATUS_FILE VARDIR "/lib/opkg/status"
+ config_file.write("option info_dir %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR'), 'opkg', 'info'))
+ config_file.write("option lists_dir %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR'), 'opkg', 'lists'))
+ config_file.write("option status_file %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR'), 'opkg', 'status'))
+
+ def insert_feeds_uris(self, feed_uris, feed_base_paths, feed_archs):
+ if feed_uris == "":
+ return
+
+ rootfs_config = os.path.join('%s/etc/opkg/base-feeds.conf'
+ % self.target_rootfs)
+
+ os.makedirs('%s/etc/opkg' % self.target_rootfs, exist_ok=True)
+
+ feed_uris = self.construct_uris(feed_uris.split(), feed_base_paths.split())
+ archs = self.pkg_archs.split() if feed_archs is None else feed_archs.split()
+
+ with open(rootfs_config, "w+") as config_file:
+ uri_iterator = 0
+ for uri in feed_uris:
+ if archs:
+ for arch in archs:
+ if (feed_archs is None) and (not os.path.exists(oe.path.join(self.deploy_dir, arch))):
+ continue
+ bb.note('Adding opkg feed url-%s-%d (%s)' %
+ (arch, uri_iterator, uri))
+ config_file.write("src/gz uri-%s-%d %s/%s\n" %
+ (arch, uri_iterator, uri, arch))
+ else:
+ bb.note('Adding opkg feed url-%d (%s)' %
+ (uri_iterator, uri))
+ config_file.write("src/gz uri-%d %s\n" %
+ (uri_iterator, uri))
+
+ uri_iterator += 1
+
+ def update(self):
+ self.deploy_dir_lock()
+
+ cmd = "%s %s update" % (self.opkg_cmd, self.opkg_args)
+
+ try:
+ subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT)
+ except subprocess.CalledProcessError as e:
+ self.deploy_dir_unlock()
+ bb.fatal("Unable to update the package index files. Command '%s' "
+ "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
+
+ self.deploy_dir_unlock()
+
+ def install(self, pkgs, attempt_only=False):
+ if not pkgs:
+ return
+
+ cmd = "%s %s" % (self.opkg_cmd, self.opkg_args)
+ for exclude in (self.d.getVar("PACKAGE_EXCLUDE") or "").split():
+ cmd += " --add-exclude %s" % exclude
+ for bad_recommendation in (self.d.getVar("BAD_RECOMMENDATIONS") or "").split():
+ cmd += " --add-ignore-recommends %s" % bad_recommendation
+ cmd += " install "
+ cmd += " ".join(pkgs)
+
+ os.environ['D'] = self.target_rootfs
+ os.environ['OFFLINE_ROOT'] = self.target_rootfs
+ os.environ['IPKG_OFFLINE_ROOT'] = self.target_rootfs
+ os.environ['OPKG_OFFLINE_ROOT'] = self.target_rootfs
+ os.environ['INTERCEPT_DIR'] = self.intercepts_dir
+ os.environ['NATIVE_ROOT'] = self.d.getVar('STAGING_DIR_NATIVE')
+
+ try:
+ bb.note("Installing the following packages: %s" % ' '.join(pkgs))
+ bb.note(cmd)
+ output = subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT).decode("utf-8")
+ bb.note(output)
+ failed_pkgs = []
+ for line in output.split('\n'):
+ if line.endswith("configuration required on target."):
+ bb.warn(line)
+ failed_pkgs.append(line.split(".")[0])
+ if failed_pkgs:
+ failed_postinsts_abort(failed_pkgs, self.d.expand("${T}/log.do_${BB_CURRENTTASK}"))
+ except subprocess.CalledProcessError as e:
+ (bb.fatal, bb.warn)[attempt_only]("Unable to install packages. "
+ "Command '%s' returned %d:\n%s" %
+ (cmd, e.returncode, e.output.decode("utf-8")))
+
+ def remove(self, pkgs, with_dependencies=True):
+ if not pkgs:
+ return
+
+ if with_dependencies:
+ cmd = "%s %s --force-remove --force-removal-of-dependent-packages remove %s" % \
+ (self.opkg_cmd, self.opkg_args, ' '.join(pkgs))
+ else:
+ cmd = "%s %s --force-depends remove %s" % \
+ (self.opkg_cmd, self.opkg_args, ' '.join(pkgs))
+
+ try:
+ bb.note(cmd)
+ output = subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT).decode("utf-8")
+ bb.note(output)
+ except subprocess.CalledProcessError as e:
+ bb.fatal("Unable to remove packages. Command '%s' "
+ "returned %d:\n%s" % (e.cmd, e.returncode, e.output.decode("utf-8")))
+
+ def write_index(self):
+ self.deploy_dir_lock()
+
+ result = self.indexer.write_index()
+
+ self.deploy_dir_unlock()
+
+ if result is not None:
+ bb.fatal(result)
+
+ def remove_packaging_data(self):
+ bb.utils.remove(self.opkg_dir, True)
+ # create the directory back, it's needed by PM lock
+ bb.utils.mkdirhier(self.opkg_dir)
+
+ def remove_lists(self):
+ if not self.from_feeds:
+ bb.utils.remove(os.path.join(self.opkg_dir, "lists"), True)
+
+ def list_installed(self):
+ return OpkgPkgsList(self.d, self.target_rootfs, self.config_file).list_pkgs()
+
+ def dummy_install(self, pkgs):
+ """
+ The following function dummy installs pkgs and returns the log of output.
+ """
+ if len(pkgs) == 0:
+ return
+
+ # Create an temp dir as opkg root for dummy installation
+ temp_rootfs = self.d.expand('${T}/opkg')
+ opkg_lib_dir = self.d.getVar('OPKGLIBDIR')
+ if opkg_lib_dir[0] == "/":
+ opkg_lib_dir = opkg_lib_dir[1:]
+ temp_opkg_dir = os.path.join(temp_rootfs, opkg_lib_dir, 'opkg')
+ bb.utils.mkdirhier(temp_opkg_dir)
+
+ opkg_args = "-f %s -o %s " % (self.config_file, temp_rootfs)
+ opkg_args += self.d.getVar("OPKG_ARGS")
+
+ cmd = "%s %s update" % (self.opkg_cmd, opkg_args)
+ try:
+ subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
+ except subprocess.CalledProcessError as e:
+ bb.fatal("Unable to update. Command '%s' "
+ "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
+
+ # Dummy installation
+ cmd = "%s %s --noaction install %s " % (self.opkg_cmd,
+ opkg_args,
+ ' '.join(pkgs))
+ try:
+ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
+ except subprocess.CalledProcessError as e:
+ bb.fatal("Unable to dummy install packages. Command '%s' "
+ "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
+
+ bb.utils.remove(temp_rootfs, True)
+
+ return output
+
+ def backup_packaging_data(self):
+ # Save the opkglib for increment ipk image generation
+ if os.path.exists(self.saved_opkg_dir):
+ bb.utils.remove(self.saved_opkg_dir, True)
+ shutil.copytree(self.opkg_dir,
+ self.saved_opkg_dir,
+ symlinks=True)
+
+ def recover_packaging_data(self):
+ # Move the opkglib back
+ if os.path.exists(self.saved_opkg_dir):
+ if os.path.exists(self.opkg_dir):
+ bb.utils.remove(self.opkg_dir, True)
+
+ bb.note('Recover packaging data')
+ shutil.copytree(self.saved_opkg_dir,
+ self.opkg_dir,
+ symlinks=True)
+
+ def package_info(self, pkg):
+ """
+ Returns a dictionary with the package info.
+ """
+ cmd = "%s %s info %s" % (self.opkg_cmd, self.opkg_args, pkg)
+ pkg_info = super(OpkgPM, self).package_info(pkg, cmd)
+
+ pkg_arch = pkg_info[pkg]["arch"]
+ pkg_filename = pkg_info[pkg]["filename"]
+ pkg_info[pkg]["filepath"] = \
+ os.path.join(self.deploy_dir, pkg_arch, pkg_filename)
+
+ return pkg_info
+
+ def extract(self, pkg):
+ """
+ Returns the path to a tmpdir where resides the contents of a package.
+
+ Deleting the tmpdir is responsability of the caller.
+ """
+ pkg_info = self.package_info(pkg)
+ if not pkg_info:
+ bb.fatal("Unable to get information for package '%s' while "
+ "trying to extract the package." % pkg)
+
+ tmp_dir = super(OpkgPM, self).extract(pkg, pkg_info)
+ bb.utils.remove(os.path.join(tmp_dir, "data.tar.xz"))
+
+ return tmp_dir
diff --git a/meta/lib/oe/package_manager/ipk/manifest.py b/meta/lib/oe/package_manager/ipk/manifest.py
new file mode 100644
index 0000000000..69676903ab
--- /dev/null
+++ b/meta/lib/oe/package_manager/ipk/manifest.py
@@ -0,0 +1,73 @@
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+
+from oe.manifest import Manifest
+
+class OpkgManifest(Manifest):
+ """
+ Returns a dictionary object with mip and mlp packages.
+ """
+ def _split_multilib(self, pkg_list):
+ pkgs = dict()
+
+ for pkg in pkg_list.split():
+ pkg_type = self.PKG_TYPE_MUST_INSTALL
+
+ ml_variants = self.d.getVar('MULTILIB_VARIANTS').split()
+
+ for ml_variant in ml_variants:
+ if pkg.startswith(ml_variant + '-'):
+ pkg_type = self.PKG_TYPE_MULTILIB
+
+ if not pkg_type in pkgs:
+ pkgs[pkg_type] = pkg
+ else:
+ pkgs[pkg_type] += " " + pkg
+
+ return pkgs
+
+ def create_initial(self):
+ pkgs = dict()
+
+ with open(self.initial_manifest, "w+") as manifest:
+ manifest.write(self.initial_manifest_file_header)
+
+ for var in self.var_maps[self.manifest_type]:
+ if var in self.vars_to_split:
+ split_pkgs = self._split_multilib(self.d.getVar(var))
+ if split_pkgs is not None:
+ pkgs = dict(list(pkgs.items()) + list(split_pkgs.items()))
+ else:
+ pkg_list = self.d.getVar(var)
+ if pkg_list is not None:
+ pkgs[self.var_maps[self.manifest_type][var]] = self.d.getVar(var)
+
+ for pkg_type in sorted(pkgs):
+ for pkg in sorted(pkgs[pkg_type].split()):
+ manifest.write("%s,%s\n" % (pkg_type, pkg))
+
+ def create_final(self):
+ pass
+
+ def create_full(self, pm):
+ if not os.path.exists(self.initial_manifest):
+ self.create_initial()
+
+ initial_manifest = self.parse_initial_manifest()
+ pkgs_to_install = list()
+ for pkg_type in initial_manifest:
+ pkgs_to_install += initial_manifest[pkg_type]
+ if len(pkgs_to_install) == 0:
+ return
+
+ output = pm.dummy_install(pkgs_to_install)
+
+ with open(self.full_manifest, 'w+') as manifest:
+ pkg_re = re.compile('^Installing ([^ ]+) [^ ].*')
+ for line in set(output.split('\n')):
+ m = pkg_re.match(line)
+ if m:
+ manifest.write(m.group(1) + '\n')
+
+ return
diff --git a/meta/lib/oe/package_manager/ipk/rootfs.py b/meta/lib/oe/package_manager/ipk/rootfs.py
new file mode 100644
index 0000000000..63b4a59c40
--- /dev/null
+++ b/meta/lib/oe/package_manager/ipk/rootfs.py
@@ -0,0 +1,387 @@
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+
+import re
+import filecmp
+import shutil
+from oe.rootfs import Rootfs
+from oe.manifest import Manifest
+from oe.utils import execute_pre_post_process
+from oe.package_manager.ipk.manifest import OpkgManifest
+from oe.package_manager.ipk import OpkgPM
+
+class DpkgOpkgRootfs(Rootfs):
+ def __init__(self, d, progress_reporter=None, logcatcher=None):
+ super(DpkgOpkgRootfs, self).__init__(d, progress_reporter, logcatcher)
+
+ def _get_pkgs_postinsts(self, status_file):
+ def _get_pkg_depends_list(pkg_depends):
+ pkg_depends_list = []
+ # filter version requirements like libc (>= 1.1)
+ for dep in pkg_depends.split(', '):
+ m_dep = re.match(r"^(.*) \(.*\)$", dep)
+ if m_dep:
+ dep = m_dep.group(1)
+ pkg_depends_list.append(dep)
+
+ return pkg_depends_list
+
+ pkgs = {}
+ pkg_name = ""
+ pkg_status_match = False
+ pkg_depends = ""
+
+ with open(status_file) as status:
+ data = status.read()
+ status.close()
+ for line in data.split('\n'):
+ m_pkg = re.match(r"^Package: (.*)", line)
+ m_status = re.match(r"^Status:.*unpacked", line)
+ m_depends = re.match(r"^Depends: (.*)", line)
+
+ #Only one of m_pkg, m_status or m_depends is not None at time
+ #If m_pkg is not None, we started a new package
+ if m_pkg is not None:
+ #Get Package name
+ pkg_name = m_pkg.group(1)
+ #Make sure we reset other variables
+ pkg_status_match = False
+ pkg_depends = ""
+ elif m_status is not None:
+ #New status matched
+ pkg_status_match = True
+ elif m_depends is not None:
+ #New depends macthed
+ pkg_depends = m_depends.group(1)
+ else:
+ pass
+
+ #Now check if we can process package depends and postinst
+ if "" != pkg_name and pkg_status_match:
+ pkgs[pkg_name] = _get_pkg_depends_list(pkg_depends)
+ else:
+ #Not enough information
+ pass
+
+ # remove package dependencies not in postinsts
+ pkg_names = list(pkgs.keys())
+ for pkg_name in pkg_names:
+ deps = pkgs[pkg_name][:]
+
+ for d in deps:
+ if d not in pkg_names:
+ pkgs[pkg_name].remove(d)
+
+ return pkgs
+
+ def _get_delayed_postinsts_common(self, status_file):
+ def _dep_resolve(graph, node, resolved, seen):
+ seen.append(node)
+
+ for edge in graph[node]:
+ if edge not in resolved:
+ if edge in seen:
+ raise RuntimeError("Packages %s and %s have " \
+ "a circular dependency in postinsts scripts." \
+ % (node, edge))
+ _dep_resolve(graph, edge, resolved, seen)
+
+ resolved.append(node)
+
+ pkg_list = []
+
+ pkgs = None
+ if not self.d.getVar('PACKAGE_INSTALL').strip():
+ bb.note("Building empty image")
+ else:
+ pkgs = self._get_pkgs_postinsts(status_file)
+ if pkgs:
+ root = "__packagegroup_postinst__"
+ pkgs[root] = list(pkgs.keys())
+ _dep_resolve(pkgs, root, pkg_list, [])
+ pkg_list.remove(root)
+
+ if len(pkg_list) == 0:
+ return None
+
+ return pkg_list
+
+ def _save_postinsts_common(self, dst_postinst_dir, src_postinst_dir):
+ if bb.utils.contains("IMAGE_FEATURES", "package-management",
+ True, False, self.d):
+ return
+ num = 0
+ for p in self._get_delayed_postinsts():
+ bb.utils.mkdirhier(dst_postinst_dir)
+
+ if os.path.exists(os.path.join(src_postinst_dir, p + ".postinst")):
+ shutil.copy(os.path.join(src_postinst_dir, p + ".postinst"),
+ os.path.join(dst_postinst_dir, "%03d-%s" % (num, p)))
+
+ num += 1
+
+class OpkgRootfs(DpkgOpkgRootfs):
+ def __init__(self, d, manifest_dir, progress_reporter=None, logcatcher=None):
+ super(OpkgRootfs, self).__init__(d, progress_reporter, logcatcher)
+ self.log_check_regex = '(exit 1|Collected errors)'
+
+ self.manifest = OpkgManifest(d, manifest_dir)
+ self.opkg_conf = self.d.getVar("IPKGCONF_TARGET")
+ self.pkg_archs = self.d.getVar("ALL_MULTILIB_PACKAGE_ARCHS")
+
+ self.inc_opkg_image_gen = self.d.getVar('INC_IPK_IMAGE_GEN') or ""
+ if self._remove_old_rootfs():
+ bb.utils.remove(self.image_rootfs, True)
+ self.pm = OpkgPM(d,
+ self.image_rootfs,
+ self.opkg_conf,
+ self.pkg_archs)
+ else:
+ self.pm = OpkgPM(d,
+ self.image_rootfs,
+ self.opkg_conf,
+ self.pkg_archs)
+ self.pm.recover_packaging_data()
+
+ bb.utils.remove(self.d.getVar('MULTILIB_TEMP_ROOTFS'), True)
+
+ def _prelink_file(self, root_dir, filename):
+ bb.note('prelink %s in %s' % (filename, root_dir))
+ prelink_cfg = oe.path.join(root_dir,
+ self.d.expand('${sysconfdir}/prelink.conf'))
+ if not os.path.exists(prelink_cfg):
+ shutil.copy(self.d.expand('${STAGING_DIR_NATIVE}${sysconfdir_native}/prelink.conf'),
+ prelink_cfg)
+
+ cmd_prelink = self.d.expand('${STAGING_DIR_NATIVE}${sbindir_native}/prelink')
+ self._exec_shell_cmd([cmd_prelink,
+ '--root',
+ root_dir,
+ '-amR',
+ '-N',
+ '-c',
+ self.d.expand('${sysconfdir}/prelink.conf')])
+
+ '''
+ Compare two files with the same key twice to see if they are equal.
+ If they are not equal, it means they are duplicated and come from
+ different packages.
+ 1st: Comapre them directly;
+ 2nd: While incremental image creation is enabled, one of the
+ files could be probaly prelinked in the previous image
+ creation and the file has been changed, so we need to
+ prelink the other one and compare them.
+ '''
+ def _file_equal(self, key, f1, f2):
+
+ # Both of them are not prelinked
+ if filecmp.cmp(f1, f2):
+ return True
+
+ if bb.data.inherits_class('image-prelink', self.d):
+ if self.image_rootfs not in f1:
+ self._prelink_file(f1.replace(key, ''), f1)
+
+ if self.image_rootfs not in f2:
+ self._prelink_file(f2.replace(key, ''), f2)
+
+ # Both of them are prelinked
+ if filecmp.cmp(f1, f2):
+ return True
+
+ # Not equal
+ return False
+
+ """
+ This function was reused from the old implementation.
+ See commit: "image.bbclass: Added variables for multilib support." by
+ Lianhao Lu.
+ """
+ def _multilib_sanity_test(self, dirs):
+
+ allow_replace = self.d.getVar("MULTILIBRE_ALLOW_REP")
+ if allow_replace is None:
+ allow_replace = ""
+
+ allow_rep = re.compile(re.sub(r"\|$", r"", allow_replace))
+ error_prompt = "Multilib check error:"
+
+ files = {}
+ for dir in dirs:
+ for root, subfolders, subfiles in os.walk(dir):
+ for file in subfiles:
+ item = os.path.join(root, file)
+ key = str(os.path.join("/", os.path.relpath(item, dir)))
+
+ valid = True
+ if key in files:
+ #check whether the file is allow to replace
+ if allow_rep.match(key):
+ valid = True
+ else:
+ if os.path.exists(files[key]) and \
+ os.path.exists(item) and \
+ not self._file_equal(key, files[key], item):
+ valid = False
+ bb.fatal("%s duplicate files %s %s is not the same\n" %
+ (error_prompt, item, files[key]))
+
+ #pass the check, add to list
+ if valid:
+ files[key] = item
+
+ def _multilib_test_install(self, pkgs):
+ ml_temp = self.d.getVar("MULTILIB_TEMP_ROOTFS")
+ bb.utils.mkdirhier(ml_temp)
+
+ dirs = [self.image_rootfs]
+
+ for variant in self.d.getVar("MULTILIB_VARIANTS").split():
+ ml_target_rootfs = os.path.join(ml_temp, variant)
+
+ bb.utils.remove(ml_target_rootfs, True)
+
+ ml_opkg_conf = os.path.join(ml_temp,
+ variant + "-" + os.path.basename(self.opkg_conf))
+
+ ml_pm = OpkgPM(self.d, ml_target_rootfs, ml_opkg_conf, self.pkg_archs, prepare_index=False)
+
+ ml_pm.update()
+ ml_pm.install(pkgs)
+
+ dirs.append(ml_target_rootfs)
+
+ self._multilib_sanity_test(dirs)
+
+ '''
+ While ipk incremental image generation is enabled, it will remove the
+ unneeded pkgs by comparing the old full manifest in previous existing
+ image and the new full manifest in the current image.
+ '''
+ def _remove_extra_packages(self, pkgs_initial_install):
+ if self.inc_opkg_image_gen == "1":
+ # Parse full manifest in previous existing image creation session
+ old_full_manifest = self.manifest.parse_full_manifest()
+
+ # Create full manifest for the current image session, the old one
+ # will be replaced by the new one.
+ self.manifest.create_full(self.pm)
+
+ # Parse full manifest in current image creation session
+ new_full_manifest = self.manifest.parse_full_manifest()
+
+ pkg_to_remove = list()
+ for pkg in old_full_manifest:
+ if pkg not in new_full_manifest:
+ pkg_to_remove.append(pkg)
+
+ if pkg_to_remove != []:
+ bb.note('decremental removed: %s' % ' '.join(pkg_to_remove))
+ self.pm.remove(pkg_to_remove)
+
+ '''
+ Compare with previous existing image creation, if some conditions
+ triggered, the previous old image should be removed.
+ The conditions include any of 'PACKAGE_EXCLUDE, NO_RECOMMENDATIONS
+ and BAD_RECOMMENDATIONS' has been changed.
+ '''
+ def _remove_old_rootfs(self):
+ if self.inc_opkg_image_gen != "1":
+ return True
+
+ vars_list_file = self.d.expand('${T}/vars_list')
+
+ old_vars_list = ""
+ if os.path.exists(vars_list_file):
+ old_vars_list = open(vars_list_file, 'r+').read()
+
+ new_vars_list = '%s:%s:%s\n' % \
+ ((self.d.getVar('BAD_RECOMMENDATIONS') or '').strip(),
+ (self.d.getVar('NO_RECOMMENDATIONS') or '').strip(),
+ (self.d.getVar('PACKAGE_EXCLUDE') or '').strip())
+ open(vars_list_file, 'w+').write(new_vars_list)
+
+ if old_vars_list != new_vars_list:
+ return True
+
+ return False
+
+ def _create(self):
+ pkgs_to_install = self.manifest.parse_initial_manifest()
+ opkg_pre_process_cmds = self.d.getVar('OPKG_PREPROCESS_COMMANDS')
+ opkg_post_process_cmds = self.d.getVar('OPKG_POSTPROCESS_COMMANDS')
+
+ # update PM index files
+ self.pm.write_index()
+
+ execute_pre_post_process(self.d, opkg_pre_process_cmds)
+
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+ # Steps are a bit different in order, skip next
+ self.progress_reporter.next_stage()
+
+ self.pm.update()
+
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
+ if self.inc_opkg_image_gen == "1":
+ self._remove_extra_packages(pkgs_to_install)
+
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
+ for pkg_type in self.install_order:
+ if pkg_type in pkgs_to_install:
+ # For multilib, we perform a sanity test before final install
+ # If sanity test fails, it will automatically do a bb.fatal()
+ # and the installation will stop
+ if pkg_type == Manifest.PKG_TYPE_MULTILIB:
+ self._multilib_test_install(pkgs_to_install[pkg_type])
+
+ self.pm.install(pkgs_to_install[pkg_type],
+ [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY])
+
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
+ self.pm.install_complementary()
+
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
+ opkg_lib_dir = self.d.getVar('OPKGLIBDIR')
+ opkg_dir = os.path.join(opkg_lib_dir, 'opkg')
+ self._setup_dbg_rootfs([opkg_dir])
+
+ execute_pre_post_process(self.d, opkg_post_process_cmds)
+
+ if self.inc_opkg_image_gen == "1":
+ self.pm.backup_packaging_data()
+
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
+ @staticmethod
+ def _depends_list():
+ return ['IPKGCONF_SDK', 'IPK_FEED_URIS', 'DEPLOY_DIR_IPK', 'IPKGCONF_TARGET', 'INC_IPK_IMAGE_GEN', 'OPKG_ARGS', 'OPKGLIBDIR', 'OPKG_PREPROCESS_COMMANDS', 'OPKG_POSTPROCESS_COMMANDS', 'OPKGLIBDIR']
+
+ def _get_delayed_postinsts(self):
+ status_file = os.path.join(self.image_rootfs,
+ self.d.getVar('OPKGLIBDIR').strip('/'),
+ "opkg", "status")
+ return self._get_delayed_postinsts_common(status_file)
+
+ def _save_postinsts(self):
+ dst_postinst_dir = self.d.expand("${IMAGE_ROOTFS}${sysconfdir}/ipk-postinsts")
+ src_postinst_dir = self.d.expand("${IMAGE_ROOTFS}${OPKGLIBDIR}/opkg/info")
+ return self._save_postinsts_common(dst_postinst_dir, src_postinst_dir)
+
+ def _log_check(self):
+ self._log_check_warn()
+ self._log_check_error()
+
+ def _cleanup(self):
+ self.pm.remove_lists()
diff --git a/meta/lib/oe/package_manager/ipk/sdk.py b/meta/lib/oe/package_manager/ipk/sdk.py
new file mode 100644
index 0000000000..47c0a92c1b
--- /dev/null
+++ b/meta/lib/oe/package_manager/ipk/sdk.py
@@ -0,0 +1,96 @@
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+
+import glob
+import shutil
+from oe.utils import execute_pre_post_process
+from oe.sdk import Sdk
+from oe.manifest import Manifest
+from oe.package_manager.ipk import OpkgPM
+
+class OpkgSdk(Sdk):
+ def __init__(self, d, manifest_dir=None):
+ super(OpkgSdk, self).__init__(d, manifest_dir)
+
+ self.target_conf = self.d.getVar("IPKGCONF_TARGET")
+ self.host_conf = self.d.getVar("IPKGCONF_SDK")
+
+ from oe.package_manager.ipk.manifest import OpkgManifest
+ self.target_manifest = OpkgManifest(d, self.manifest_dir,
+ Manifest.MANIFEST_TYPE_SDK_TARGET)
+ self.host_manifest = OpkgManifest(d, self.manifest_dir,
+ Manifest.MANIFEST_TYPE_SDK_HOST)
+
+ ipk_repo_workdir = "oe-sdk-repo"
+ if "sdk_ext" in d.getVar("BB_RUNTASK"):
+ ipk_repo_workdir = "oe-sdk-ext-repo"
+
+ self.target_pm = OpkgPM(d, self.sdk_target_sysroot, self.target_conf,
+ self.d.getVar("ALL_MULTILIB_PACKAGE_ARCHS"),
+ ipk_repo_workdir=ipk_repo_workdir)
+
+ self.host_pm = OpkgPM(d, self.sdk_host_sysroot, self.host_conf,
+ self.d.getVar("SDK_PACKAGE_ARCHS"),
+ ipk_repo_workdir=ipk_repo_workdir)
+
+ def _populate_sysroot(self, pm, manifest):
+ pkgs_to_install = manifest.parse_initial_manifest()
+
+ if (self.d.getVar('BUILD_IMAGES_FROM_FEEDS') or "") != "1":
+ pm.write_index()
+
+ pm.update()
+
+ for pkg_type in self.install_order:
+ if pkg_type in pkgs_to_install:
+ pm.install(pkgs_to_install[pkg_type],
+ [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY])
+
+ def _populate(self):
+ execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_PRE_TARGET_COMMAND"))
+
+ bb.note("Installing TARGET packages")
+ self._populate_sysroot(self.target_pm, self.target_manifest)
+
+ self.target_pm.install_complementary(self.d.getVar('SDKIMAGE_INSTALL_COMPLEMENTARY'))
+
+ self.target_pm.run_intercepts(populate_sdk='target')
+
+ execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_TARGET_COMMAND"))
+
+ if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
+ self.target_pm.remove_packaging_data()
+
+ bb.note("Installing NATIVESDK packages")
+ self._populate_sysroot(self.host_pm, self.host_manifest)
+ self.install_locales(self.host_pm)
+
+ self.host_pm.run_intercepts(populate_sdk='host')
+
+ execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_HOST_COMMAND"))
+
+ if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
+ self.host_pm.remove_packaging_data()
+
+ target_sysconfdir = os.path.join(self.sdk_target_sysroot, self.sysconfdir)
+ host_sysconfdir = os.path.join(self.sdk_host_sysroot, self.sysconfdir)
+
+ self.mkdirhier(target_sysconfdir)
+ shutil.copy(self.target_conf, target_sysconfdir)
+ os.chmod(os.path.join(target_sysconfdir,
+ os.path.basename(self.target_conf)), 0o644)
+
+ self.mkdirhier(host_sysconfdir)
+ shutil.copy(self.host_conf, host_sysconfdir)
+ os.chmod(os.path.join(host_sysconfdir,
+ os.path.basename(self.host_conf)), 0o644)
+
+ native_opkg_state_dir = os.path.join(self.sdk_output, self.sdk_native_path,
+ self.d.getVar('localstatedir_nativesdk').strip('/'),
+ "lib", "opkg")
+ self.mkdirhier(native_opkg_state_dir)
+ for f in glob.glob(os.path.join(self.sdk_output, "var", "lib", "opkg", "*")):
+ self.movefile(f, native_opkg_state_dir)
+
+ self.remove(os.path.join(self.sdk_output, "var"), True)
diff --git a/meta/lib/oe/package_manager/rpm/__init__.py b/meta/lib/oe/package_manager/rpm/__init__.py
new file mode 100644
index 0000000000..c91f61ae5c
--- /dev/null
+++ b/meta/lib/oe/package_manager/rpm/__init__.py
@@ -0,0 +1,404 @@
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+
+import shutil
+import subprocess
+from oe.package_manager import *
+
+class RpmIndexer(Indexer):
+ def write_index(self):
+ self.do_write_index(self.deploy_dir)
+
+ def do_write_index(self, deploy_dir):
+ if self.d.getVar('PACKAGE_FEED_SIGN') == '1':
+ signer = get_signer(self.d, self.d.getVar('PACKAGE_FEED_GPG_BACKEND'))
+ else:
+ signer = None
+
+ createrepo_c = bb.utils.which(os.environ['PATH'], "createrepo_c")
+ result = create_index("%s --update -q %s" % (createrepo_c, deploy_dir))
+ if result:
+ bb.fatal(result)
+
+ # Sign repomd
+ if signer:
+ sig_type = self.d.getVar('PACKAGE_FEED_GPG_SIGNATURE_TYPE')
+ is_ascii_sig = (sig_type.upper() != "BIN")
+ signer.detach_sign(os.path.join(deploy_dir, 'repodata', 'repomd.xml'),
+ self.d.getVar('PACKAGE_FEED_GPG_NAME'),
+ self.d.getVar('PACKAGE_FEED_GPG_PASSPHRASE_FILE'),
+ armor=is_ascii_sig)
+
+class RpmSubdirIndexer(RpmIndexer):
+ def write_index(self):
+ bb.note("Generating package index for %s" %(self.deploy_dir))
+ self.do_write_index(self.deploy_dir)
+ for entry in os.walk(self.deploy_dir):
+ if os.path.samefile(self.deploy_dir, entry[0]):
+ for dir in entry[1]:
+ if dir != 'repodata':
+ dir_path = oe.path.join(self.deploy_dir, dir)
+ bb.note("Generating package index for %s" %(dir_path))
+ self.do_write_index(dir_path)
+
+
+class RpmPkgsList(PkgsList):
+ def list_pkgs(self):
+ return RpmPM(self.d, self.rootfs_dir, self.d.getVar('TARGET_VENDOR'), needfeed=False).list_installed()
+
+class RpmPM(PackageManager):
+ def __init__(self,
+ d,
+ target_rootfs,
+ target_vendor,
+ task_name='target',
+ arch_var=None,
+ os_var=None,
+ rpm_repo_workdir="oe-rootfs-repo",
+ filterbydependencies=True,
+ needfeed=True):
+ super(RpmPM, self).__init__(d, target_rootfs)
+ self.target_vendor = target_vendor
+ self.task_name = task_name
+ if arch_var == None:
+ self.archs = self.d.getVar('ALL_MULTILIB_PACKAGE_ARCHS').replace("-","_")
+ else:
+ self.archs = self.d.getVar(arch_var).replace("-","_")
+ if task_name == "host":
+ self.primary_arch = self.d.getVar('SDK_ARCH')
+ else:
+ self.primary_arch = self.d.getVar('MACHINE_ARCH')
+
+ if needfeed:
+ self.rpm_repo_dir = oe.path.join(self.d.getVar('WORKDIR'), rpm_repo_workdir)
+ create_packages_dir(self.d, oe.path.join(self.rpm_repo_dir, "rpm"), d.getVar("DEPLOY_DIR_RPM"), "package_write_rpm", filterbydependencies)
+
+ self.saved_packaging_data = self.d.expand('${T}/saved_packaging_data/%s' % self.task_name)
+ if not os.path.exists(self.d.expand('${T}/saved_packaging_data')):
+ bb.utils.mkdirhier(self.d.expand('${T}/saved_packaging_data'))
+ self.packaging_data_dirs = ['etc/rpm', 'etc/rpmrc', 'etc/dnf', 'var/lib/rpm', 'var/lib/dnf', 'var/cache/dnf']
+ self.solution_manifest = self.d.expand('${T}/saved/%s_solution' %
+ self.task_name)
+ if not os.path.exists(self.d.expand('${T}/saved')):
+ bb.utils.mkdirhier(self.d.expand('${T}/saved'))
+
+ def _configure_dnf(self):
+ # libsolv handles 'noarch' internally, we don't need to specify it explicitly
+ archs = [i for i in reversed(self.archs.split()) if i not in ["any", "all", "noarch"]]
+ # This prevents accidental matching against libsolv's built-in policies
+ if len(archs) <= 1:
+ archs = archs + ["bogusarch"]
+ # This architecture needs to be upfront so that packages using it are properly prioritized
+ archs = ["sdk_provides_dummy_target"] + archs
+ confdir = "%s/%s" %(self.target_rootfs, "etc/dnf/vars/")
+ bb.utils.mkdirhier(confdir)
+ open(confdir + "arch", 'w').write(":".join(archs))
+ distro_codename = self.d.getVar('DISTRO_CODENAME')
+ open(confdir + "releasever", 'w').write(distro_codename if distro_codename is not None else '')
+
+ open(oe.path.join(self.target_rootfs, "etc/dnf/dnf.conf"), 'w').write("")
+
+
+ def _configure_rpm(self):
+ # We need to configure rpm to use our primary package architecture as the installation architecture,
+ # and to make it compatible with other package architectures that we use.
+ # Otherwise it will refuse to proceed with packages installation.
+ platformconfdir = "%s/%s" %(self.target_rootfs, "etc/rpm/")
+ rpmrcconfdir = "%s/%s" %(self.target_rootfs, "etc/")
+ bb.utils.mkdirhier(platformconfdir)
+ open(platformconfdir + "platform", 'w').write("%s-pc-linux" % self.primary_arch)
+ with open(rpmrcconfdir + "rpmrc", 'w') as f:
+ f.write("arch_compat: %s: %s\n" % (self.primary_arch, self.archs if len(self.archs) > 0 else self.primary_arch))
+ f.write("buildarch_compat: %s: noarch\n" % self.primary_arch)
+
+ open(platformconfdir + "macros", 'w').write("%_transaction_color 7\n")
+ if self.d.getVar('RPM_PREFER_ELF_ARCH'):
+ open(platformconfdir + "macros", 'a').write("%%_prefer_color %s" % (self.d.getVar('RPM_PREFER_ELF_ARCH')))
+
+ if self.d.getVar('RPM_SIGN_PACKAGES') == '1':
+ signer = get_signer(self.d, self.d.getVar('RPM_GPG_BACKEND'))
+ pubkey_path = oe.path.join(self.d.getVar('B'), 'rpm-key')
+ signer.export_pubkey(pubkey_path, self.d.getVar('RPM_GPG_NAME'))
+ rpm_bin = bb.utils.which(os.getenv('PATH'), "rpmkeys")
+ cmd = [rpm_bin, '--root=%s' % self.target_rootfs, '--import', pubkey_path]
+ try:
+ subprocess.check_output(cmd, stderr=subprocess.STDOUT)
+ except subprocess.CalledProcessError as e:
+ bb.fatal("Importing GPG key failed. Command '%s' "
+ "returned %d:\n%s" % (' '.join(cmd), e.returncode, e.output.decode("utf-8")))
+
+ def create_configs(self):
+ self._configure_dnf()
+ self._configure_rpm()
+
+ def write_index(self):
+ lockfilename = self.d.getVar('DEPLOY_DIR_RPM') + "/rpm.lock"
+ lf = bb.utils.lockfile(lockfilename, False)
+ RpmIndexer(self.d, self.rpm_repo_dir).write_index()
+ bb.utils.unlockfile(lf)
+
+ def insert_feeds_uris(self, feed_uris, feed_base_paths, feed_archs):
+ from urllib.parse import urlparse
+
+ if feed_uris == "":
+ return
+
+ gpg_opts = ''
+ if self.d.getVar('PACKAGE_FEED_SIGN') == '1':
+ gpg_opts += 'repo_gpgcheck=1\n'
+ gpg_opts += 'gpgkey=file://%s/pki/packagefeed-gpg/PACKAGEFEED-GPG-KEY-%s-%s\n' % (self.d.getVar('sysconfdir'), self.d.getVar('DISTRO'), self.d.getVar('DISTRO_CODENAME'))
+
+ if self.d.getVar('RPM_SIGN_PACKAGES') != '1':
+ gpg_opts += 'gpgcheck=0\n'
+
+ bb.utils.mkdirhier(oe.path.join(self.target_rootfs, "etc", "yum.repos.d"))
+ remote_uris = self.construct_uris(feed_uris.split(), feed_base_paths.split())
+ for uri in remote_uris:
+ repo_base = "oe-remote-repo" + "-".join(urlparse(uri).path.split("/"))
+ if feed_archs is not None:
+ for arch in feed_archs.split():
+ repo_uri = uri + "/" + arch
+ repo_id = "oe-remote-repo" + "-".join(urlparse(repo_uri).path.split("/"))
+ repo_name = "OE Remote Repo:" + " ".join(urlparse(repo_uri).path.split("/"))
+ open(oe.path.join(self.target_rootfs, "etc", "yum.repos.d", repo_base + ".repo"), 'a').write(
+ "[%s]\nname=%s\nbaseurl=%s\n%s\n" % (repo_id, repo_name, repo_uri, gpg_opts))
+ else:
+ repo_name = "OE Remote Repo:" + " ".join(urlparse(uri).path.split("/"))
+ repo_uri = uri
+ open(oe.path.join(self.target_rootfs, "etc", "yum.repos.d", repo_base + ".repo"), 'w').write(
+ "[%s]\nname=%s\nbaseurl=%s\n%s" % (repo_base, repo_name, repo_uri, gpg_opts))
+
+ def _prepare_pkg_transaction(self):
+ os.environ['D'] = self.target_rootfs
+ os.environ['OFFLINE_ROOT'] = self.target_rootfs
+ os.environ['IPKG_OFFLINE_ROOT'] = self.target_rootfs
+ os.environ['OPKG_OFFLINE_ROOT'] = self.target_rootfs
+ os.environ['INTERCEPT_DIR'] = self.intercepts_dir
+ os.environ['NATIVE_ROOT'] = self.d.getVar('STAGING_DIR_NATIVE')
+
+
+ def install(self, pkgs, attempt_only = False):
+ if len(pkgs) == 0:
+ return
+ self._prepare_pkg_transaction()
+
+ bad_recommendations = self.d.getVar('BAD_RECOMMENDATIONS')
+ package_exclude = self.d.getVar('PACKAGE_EXCLUDE')
+ exclude_pkgs = (bad_recommendations.split() if bad_recommendations else []) + (package_exclude.split() if package_exclude else [])
+
+ output = self._invoke_dnf((["--skip-broken"] if attempt_only else []) +
+ (["-x", ",".join(exclude_pkgs)] if len(exclude_pkgs) > 0 else []) +
+ (["--setopt=install_weak_deps=False"] if self.d.getVar('NO_RECOMMENDATIONS') == "1" else []) +
+ (["--nogpgcheck"] if self.d.getVar('RPM_SIGN_PACKAGES') != '1' else ["--setopt=gpgcheck=True"]) +
+ ["install"] +
+ pkgs)
+
+ failed_scriptlets_pkgnames = collections.OrderedDict()
+ for line in output.splitlines():
+ if line.startswith("Error in POSTIN scriptlet in rpm package"):
+ failed_scriptlets_pkgnames[line.split()[-1]] = True
+
+ if len(failed_scriptlets_pkgnames) > 0:
+ failed_postinsts_abort(list(failed_scriptlets_pkgnames.keys()), self.d.expand("${T}/log.do_${BB_CURRENTTASK}"))
+
+ def remove(self, pkgs, with_dependencies = True):
+ if not pkgs:
+ return
+
+ self._prepare_pkg_transaction()
+
+ if with_dependencies:
+ self._invoke_dnf(["remove"] + pkgs)
+ else:
+ cmd = bb.utils.which(os.getenv('PATH'), "rpm")
+ args = ["-e", "-v", "--nodeps", "--root=%s" %self.target_rootfs]
+
+ try:
+ bb.note("Running %s" % ' '.join([cmd] + args + pkgs))
+ output = subprocess.check_output([cmd] + args + pkgs, stderr=subprocess.STDOUT).decode("utf-8")
+ bb.note(output)
+ except subprocess.CalledProcessError as e:
+ bb.fatal("Could not invoke rpm. Command "
+ "'%s' returned %d:\n%s" % (' '.join([cmd] + args + pkgs), e.returncode, e.output.decode("utf-8")))
+
+ def upgrade(self):
+ self._prepare_pkg_transaction()
+ self._invoke_dnf(["upgrade"])
+
+ def autoremove(self):
+ self._prepare_pkg_transaction()
+ self._invoke_dnf(["autoremove"])
+
+ def remove_packaging_data(self):
+ self._invoke_dnf(["clean", "all"])
+ for dir in self.packaging_data_dirs:
+ bb.utils.remove(oe.path.join(self.target_rootfs, dir), True)
+
+ def backup_packaging_data(self):
+ # Save the packaging dirs for increment rpm image generation
+ if os.path.exists(self.saved_packaging_data):
+ bb.utils.remove(self.saved_packaging_data, True)
+ for i in self.packaging_data_dirs:
+ source_dir = oe.path.join(self.target_rootfs, i)
+ target_dir = oe.path.join(self.saved_packaging_data, i)
+ if os.path.isdir(source_dir):
+ shutil.copytree(source_dir, target_dir, symlinks=True)
+ elif os.path.isfile(source_dir):
+ shutil.copy2(source_dir, target_dir)
+
+ def recovery_packaging_data(self):
+ # Move the rpmlib back
+ if os.path.exists(self.saved_packaging_data):
+ for i in self.packaging_data_dirs:
+ target_dir = oe.path.join(self.target_rootfs, i)
+ if os.path.exists(target_dir):
+ bb.utils.remove(target_dir, True)
+ source_dir = oe.path.join(self.saved_packaging_data, i)
+ if os.path.isdir(source_dir):
+ shutil.copytree(source_dir, target_dir, symlinks=True)
+ elif os.path.isfile(source_dir):
+ shutil.copy2(source_dir, target_dir)
+
+ def list_installed(self):
+ output = self._invoke_dnf(["repoquery", "--installed", "--queryformat", "Package: %{name} %{arch} %{version} %{name}-%{version}-%{release}.%{arch}.rpm\nDependencies:\n%{requires}\nRecommendations:\n%{recommends}\nDependenciesEndHere:\n"],
+ print_output = False)
+ packages = {}
+ current_package = None
+ current_deps = None
+ current_state = "initial"
+ for line in output.splitlines():
+ if line.startswith("Package:"):
+ package_info = line.split(" ")[1:]
+ current_package = package_info[0]
+ package_arch = package_info[1]
+ package_version = package_info[2]
+ package_rpm = package_info[3]
+ packages[current_package] = {"arch":package_arch, "ver":package_version, "filename":package_rpm}
+ current_deps = []
+ elif line.startswith("Dependencies:"):
+ current_state = "dependencies"
+ elif line.startswith("Recommendations"):
+ current_state = "recommendations"
+ elif line.startswith("DependenciesEndHere:"):
+ current_state = "initial"
+ packages[current_package]["deps"] = current_deps
+ elif len(line) > 0:
+ if current_state == "dependencies":
+ current_deps.append(line)
+ elif current_state == "recommendations":
+ current_deps.append("%s [REC]" % line)
+
+ return packages
+
+ def update(self):
+ self._invoke_dnf(["makecache", "--refresh"])
+
+ def _invoke_dnf(self, dnf_args, fatal = True, print_output = True ):
+ os.environ['RPM_ETCCONFIGDIR'] = self.target_rootfs
+
+ dnf_cmd = bb.utils.which(os.getenv('PATH'), "dnf")
+ standard_dnf_args = ["-v", "--rpmverbosity=info", "-y",
+ "-c", oe.path.join(self.target_rootfs, "etc/dnf/dnf.conf"),
+ "--setopt=reposdir=%s" %(oe.path.join(self.target_rootfs, "etc/yum.repos.d")),
+ "--installroot=%s" % (self.target_rootfs),
+ "--setopt=logdir=%s" % (self.d.getVar('T'))
+ ]
+ if hasattr(self, "rpm_repo_dir"):
+ standard_dnf_args.append("--repofrompath=oe-repo,%s" % (self.rpm_repo_dir))
+ cmd = [dnf_cmd] + standard_dnf_args + dnf_args
+ bb.note('Running %s' % ' '.join(cmd))
+ try:
+ output = subprocess.check_output(cmd,stderr=subprocess.STDOUT).decode("utf-8")
+ if print_output:
+ bb.debug(1, output)
+ return output
+ except subprocess.CalledProcessError as e:
+ if print_output:
+ (bb.note, bb.fatal)[fatal]("Could not invoke dnf. Command "
+ "'%s' returned %d:\n%s" % (' '.join(cmd), e.returncode, e.output.decode("utf-8")))
+ else:
+ (bb.note, bb.fatal)[fatal]("Could not invoke dnf. Command "
+ "'%s' returned %d:" % (' '.join(cmd), e.returncode))
+ return e.output.decode("utf-8")
+
+ def dump_install_solution(self, pkgs):
+ open(self.solution_manifest, 'w').write(" ".join(pkgs))
+ return pkgs
+
+ def load_old_install_solution(self):
+ if not os.path.exists(self.solution_manifest):
+ return []
+ with open(self.solution_manifest, 'r') as fd:
+ return fd.read().split()
+
+ def _script_num_prefix(self, path):
+ files = os.listdir(path)
+ numbers = set()
+ numbers.add(99)
+ for f in files:
+ numbers.add(int(f.split("-")[0]))
+ return max(numbers) + 1
+
+ def save_rpmpostinst(self, pkg):
+ bb.note("Saving postinstall script of %s" % (pkg))
+ cmd = bb.utils.which(os.getenv('PATH'), "rpm")
+ args = ["-q", "--root=%s" % self.target_rootfs, "--queryformat", "%{postin}", pkg]
+
+ try:
+ output = subprocess.check_output([cmd] + args,stderr=subprocess.STDOUT).decode("utf-8")
+ except subprocess.CalledProcessError as e:
+ bb.fatal("Could not invoke rpm. Command "
+ "'%s' returned %d:\n%s" % (' '.join([cmd] + args), e.returncode, e.output.decode("utf-8")))
+
+ # may need to prepend #!/bin/sh to output
+
+ target_path = oe.path.join(self.target_rootfs, self.d.expand('${sysconfdir}/rpm-postinsts/'))
+ bb.utils.mkdirhier(target_path)
+ num = self._script_num_prefix(target_path)
+ saved_script_name = oe.path.join(target_path, "%d-%s" % (num, pkg))
+ open(saved_script_name, 'w').write(output)
+ os.chmod(saved_script_name, 0o755)
+
+ def _handle_intercept_failure(self, registered_pkgs):
+ rpm_postinsts_dir = self.target_rootfs + self.d.expand('${sysconfdir}/rpm-postinsts/')
+ bb.utils.mkdirhier(rpm_postinsts_dir)
+
+ # Save the package postinstalls in /etc/rpm-postinsts
+ for pkg in registered_pkgs.split():
+ self.save_rpmpostinst(pkg)
+
+ def extract(self, pkg):
+ output = self._invoke_dnf(["repoquery", "--queryformat", "%{location}", pkg])
+ pkg_name = output.splitlines()[-1]
+ if not pkg_name.endswith(".rpm"):
+ bb.fatal("dnf could not find package %s in repository: %s" %(pkg, output))
+ pkg_path = oe.path.join(self.rpm_repo_dir, pkg_name)
+
+ cpio_cmd = bb.utils.which(os.getenv("PATH"), "cpio")
+ rpm2cpio_cmd = bb.utils.which(os.getenv("PATH"), "rpm2cpio")
+
+ if not os.path.isfile(pkg_path):
+ bb.fatal("Unable to extract package for '%s'."
+ "File %s doesn't exists" % (pkg, pkg_path))
+
+ tmp_dir = tempfile.mkdtemp()
+ current_dir = os.getcwd()
+ os.chdir(tmp_dir)
+
+ try:
+ cmd = "%s %s | %s -idmv" % (rpm2cpio_cmd, pkg_path, cpio_cmd)
+ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
+ except subprocess.CalledProcessError as e:
+ bb.utils.remove(tmp_dir, recurse=True)
+ bb.fatal("Unable to extract %s package. Command '%s' "
+ "returned %d:\n%s" % (pkg_path, cmd, e.returncode, e.output.decode("utf-8")))
+ except OSError as e:
+ bb.utils.remove(tmp_dir, recurse=True)
+ bb.fatal("Unable to extract %s package. Command '%s' "
+ "returned %d:\n%s at %s" % (pkg_path, cmd, e.errno, e.strerror, e.filename))
+
+ bb.note("Extracted %s to %s" % (pkg_path, tmp_dir))
+ os.chdir(current_dir)
+
+ return tmp_dir
diff --git a/meta/lib/oe/package_manager/rpm/manifest.py b/meta/lib/oe/package_manager/rpm/manifest.py
new file mode 100644
index 0000000000..a75f6bdabf
--- /dev/null
+++ b/meta/lib/oe/package_manager/rpm/manifest.py
@@ -0,0 +1,54 @@
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+
+from oe.manifest import Manifest
+
+class RpmManifest(Manifest):
+ """
+ Returns a dictionary object with mip and mlp packages.
+ """
+ def _split_multilib(self, pkg_list):
+ pkgs = dict()
+
+ for pkg in pkg_list.split():
+ pkg_type = self.PKG_TYPE_MUST_INSTALL
+
+ ml_variants = self.d.getVar('MULTILIB_VARIANTS').split()
+
+ for ml_variant in ml_variants:
+ if pkg.startswith(ml_variant + '-'):
+ pkg_type = self.PKG_TYPE_MULTILIB
+
+ if not pkg_type in pkgs:
+ pkgs[pkg_type] = pkg
+ else:
+ pkgs[pkg_type] += " " + pkg
+
+ return pkgs
+
+ def create_initial(self):
+ pkgs = dict()
+
+ with open(self.initial_manifest, "w+") as manifest:
+ manifest.write(self.initial_manifest_file_header)
+
+ for var in self.var_maps[self.manifest_type]:
+ if var in self.vars_to_split:
+ split_pkgs = self._split_multilib(self.d.getVar(var))
+ if split_pkgs is not None:
+ pkgs = dict(list(pkgs.items()) + list(split_pkgs.items()))
+ else:
+ pkg_list = self.d.getVar(var)
+ if pkg_list is not None:
+ pkgs[self.var_maps[self.manifest_type][var]] = self.d.getVar(var)
+
+ for pkg_type in pkgs:
+ for pkg in pkgs[pkg_type].split():
+ manifest.write("%s,%s\n" % (pkg_type, pkg))
+
+ def create_final(self):
+ pass
+
+ def create_full(self, pm):
+ pass
diff --git a/meta/lib/oe/package_manager/rpm/rootfs.py b/meta/lib/oe/package_manager/rpm/rootfs.py
new file mode 100644
index 0000000000..2de5752b91
--- /dev/null
+++ b/meta/lib/oe/package_manager/rpm/rootfs.py
@@ -0,0 +1,148 @@
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+
+from oe.rootfs import Rootfs
+from oe.manifest import Manifest
+from oe.utils import execute_pre_post_process
+from oe.package_manager.rpm.manifest import RpmManifest
+from oe.package_manager.rpm import RpmPM
+
+class RpmRootfs(Rootfs):
+ def __init__(self, d, manifest_dir, progress_reporter=None, logcatcher=None):
+ super(RpmRootfs, self).__init__(d, progress_reporter, logcatcher)
+ self.log_check_regex = r'(unpacking of archive failed|Cannot find package'\
+ r'|exit 1|ERROR: |Error: |Error |ERROR '\
+ r'|Failed |Failed: |Failed$|Failed\(\d+\):)'
+
+ self.manifest = RpmManifest(d, manifest_dir)
+
+ self.pm = RpmPM(d,
+ d.getVar('IMAGE_ROOTFS'),
+ self.d.getVar('TARGET_VENDOR')
+ )
+
+ self.inc_rpm_image_gen = self.d.getVar('INC_RPM_IMAGE_GEN')
+ if self.inc_rpm_image_gen != "1":
+ bb.utils.remove(self.image_rootfs, True)
+ else:
+ self.pm.recovery_packaging_data()
+ bb.utils.remove(self.d.getVar('MULTILIB_TEMP_ROOTFS'), True)
+
+ self.pm.create_configs()
+
+ '''
+ While rpm incremental image generation is enabled, it will remove the
+ unneeded pkgs by comparing the new install solution manifest and the
+ old installed manifest.
+ '''
+ def _create_incremental(self, pkgs_initial_install):
+ if self.inc_rpm_image_gen == "1":
+
+ pkgs_to_install = list()
+ for pkg_type in pkgs_initial_install:
+ pkgs_to_install += pkgs_initial_install[pkg_type]
+
+ installed_manifest = self.pm.load_old_install_solution()
+ solution_manifest = self.pm.dump_install_solution(pkgs_to_install)
+
+ pkg_to_remove = list()
+ for pkg in installed_manifest:
+ if pkg not in solution_manifest:
+ pkg_to_remove.append(pkg)
+
+ self.pm.update()
+
+ bb.note('incremental update -- upgrade packages in place ')
+ self.pm.upgrade()
+ if pkg_to_remove != []:
+ bb.note('incremental removed: %s' % ' '.join(pkg_to_remove))
+ self.pm.remove(pkg_to_remove)
+
+ self.pm.autoremove()
+
+ def _create(self):
+ pkgs_to_install = self.manifest.parse_initial_manifest()
+ rpm_pre_process_cmds = self.d.getVar('RPM_PREPROCESS_COMMANDS')
+ rpm_post_process_cmds = self.d.getVar('RPM_POSTPROCESS_COMMANDS')
+
+ # update PM index files
+ self.pm.write_index()
+
+ execute_pre_post_process(self.d, rpm_pre_process_cmds)
+
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
+ if self.inc_rpm_image_gen == "1":
+ self._create_incremental(pkgs_to_install)
+
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
+ self.pm.update()
+
+ pkgs = []
+ pkgs_attempt = []
+ for pkg_type in pkgs_to_install:
+ if pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY:
+ pkgs_attempt += pkgs_to_install[pkg_type]
+ else:
+ pkgs += pkgs_to_install[pkg_type]
+
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
+ self.pm.install(pkgs)
+
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
+ self.pm.install(pkgs_attempt, True)
+
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
+ self.pm.install_complementary()
+
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
+ self._setup_dbg_rootfs(['/etc', '/var/lib/rpm', '/var/cache/dnf', '/var/lib/dnf'])
+
+ execute_pre_post_process(self.d, rpm_post_process_cmds)
+
+ if self.inc_rpm_image_gen == "1":
+ self.pm.backup_packaging_data()
+
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
+
+ @staticmethod
+ def _depends_list():
+ return ['DEPLOY_DIR_RPM', 'INC_RPM_IMAGE_GEN', 'RPM_PREPROCESS_COMMANDS',
+ 'RPM_POSTPROCESS_COMMANDS', 'RPM_PREFER_ELF_ARCH']
+
+ def _get_delayed_postinsts(self):
+ postinst_dir = self.d.expand("${IMAGE_ROOTFS}${sysconfdir}/rpm-postinsts")
+ if os.path.isdir(postinst_dir):
+ files = os.listdir(postinst_dir)
+ for f in files:
+ bb.note('Delayed package scriptlet: %s' % f)
+ return files
+
+ return None
+
+ def _save_postinsts(self):
+ # this is just a stub. For RPM, the failed postinstalls are
+ # already saved in /etc/rpm-postinsts
+ pass
+
+ def _log_check(self):
+ self._log_check_warn()
+ self._log_check_error()
+
+ def _cleanup(self):
+ if bb.utils.contains("IMAGE_FEATURES", "package-management", True, False, self.d):
+ self.pm._invoke_dnf(["clean", "all"])
diff --git a/meta/lib/oe/package_manager/rpm/sdk.py b/meta/lib/oe/package_manager/rpm/sdk.py
new file mode 100644
index 0000000000..b14b155a85
--- /dev/null
+++ b/meta/lib/oe/package_manager/rpm/sdk.py
@@ -0,0 +1,114 @@
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+
+import glob
+from oe.utils import execute_pre_post_process
+from oe.sdk import Sdk
+from oe.manifest import Manifest
+from oe.package_manager.rpm import RpmPM
+
+class RpmSdk(Sdk):
+ def __init__(self, d, manifest_dir=None, rpm_workdir="oe-sdk-repo"):
+ super(RpmSdk, self).__init__(d, manifest_dir)
+
+ from oe.package_manager.rpm.manifest import RpmManifest
+ self.target_manifest = RpmManifest(d, self.manifest_dir,
+ Manifest.MANIFEST_TYPE_SDK_TARGET)
+ self.host_manifest = RpmManifest(d, self.manifest_dir,
+ Manifest.MANIFEST_TYPE_SDK_HOST)
+
+ rpm_repo_workdir = "oe-sdk-repo"
+ if "sdk_ext" in d.getVar("BB_RUNTASK"):
+ rpm_repo_workdir = "oe-sdk-ext-repo"
+
+ self.target_pm = RpmPM(d,
+ self.sdk_target_sysroot,
+ self.d.getVar('TARGET_VENDOR'),
+ 'target',
+ rpm_repo_workdir=rpm_repo_workdir
+ )
+
+ self.host_pm = RpmPM(d,
+ self.sdk_host_sysroot,
+ self.d.getVar('SDK_VENDOR'),
+ 'host',
+ "SDK_PACKAGE_ARCHS",
+ "SDK_OS",
+ rpm_repo_workdir=rpm_repo_workdir
+ )
+
+ def _populate_sysroot(self, pm, manifest):
+ pkgs_to_install = manifest.parse_initial_manifest()
+
+ pm.create_configs()
+ pm.write_index()
+ pm.update()
+
+ pkgs = []
+ pkgs_attempt = []
+ for pkg_type in pkgs_to_install:
+ if pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY:
+ pkgs_attempt += pkgs_to_install[pkg_type]
+ else:
+ pkgs += pkgs_to_install[pkg_type]
+
+ pm.install(pkgs)
+
+ pm.install(pkgs_attempt, True)
+
+ def _populate(self):
+ execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_PRE_TARGET_COMMAND"))
+
+ bb.note("Installing TARGET packages")
+ self._populate_sysroot(self.target_pm, self.target_manifest)
+
+ self.target_pm.install_complementary(self.d.getVar('SDKIMAGE_INSTALL_COMPLEMENTARY'))
+
+ self.target_pm.run_intercepts(populate_sdk='target')
+
+ execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_TARGET_COMMAND"))
+
+ if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
+ self.target_pm.remove_packaging_data()
+
+ bb.note("Installing NATIVESDK packages")
+ self._populate_sysroot(self.host_pm, self.host_manifest)
+ self.install_locales(self.host_pm)
+
+ self.host_pm.run_intercepts(populate_sdk='host')
+
+ execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_HOST_COMMAND"))
+
+ if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
+ self.host_pm.remove_packaging_data()
+
+ # Move host RPM library data
+ native_rpm_state_dir = os.path.join(self.sdk_output,
+ self.sdk_native_path,
+ self.d.getVar('localstatedir_nativesdk').strip('/'),
+ "lib",
+ "rpm"
+ )
+ self.mkdirhier(native_rpm_state_dir)
+ for f in glob.glob(os.path.join(self.sdk_output,
+ "var",
+ "lib",
+ "rpm",
+ "*")):
+ self.movefile(f, native_rpm_state_dir)
+
+ self.remove(os.path.join(self.sdk_output, "var"), True)
+
+ # Move host sysconfig data
+ native_sysconf_dir = os.path.join(self.sdk_output,
+ self.sdk_native_path,
+ self.d.getVar('sysconfdir',
+ True).strip('/'),
+ )
+ self.mkdirhier(native_sysconf_dir)
+ for f in glob.glob(os.path.join(self.sdk_output, "etc", "rpm*")):
+ self.movefile(f, native_sysconf_dir)
+ for f in glob.glob(os.path.join(self.sdk_output, "etc", "dnf", "*")):
+ self.movefile(f, native_sysconf_dir)
+ self.remove(os.path.join(self.sdk_output, "etc"), True)
diff --git a/meta/lib/oe/packagegroup.py b/meta/lib/oe/packagegroup.py
index 2419cbb6d3..8fcaecde82 100644
--- a/meta/lib/oe/packagegroup.py
+++ b/meta/lib/oe/packagegroup.py
@@ -5,17 +5,11 @@
import itertools
def is_optional(feature, d):
- packages = d.getVar("FEATURE_PACKAGES_%s" % feature)
- if packages:
- return bool(d.getVarFlag("FEATURE_PACKAGES_%s" % feature, "optional"))
- else:
- return bool(d.getVarFlag("PACKAGE_GROUP_%s" % feature, "optional"))
+ return bool(d.getVarFlag("FEATURE_PACKAGES_%s" % feature, "optional"))
def packages(features, d):
for feature in features:
packages = d.getVar("FEATURE_PACKAGES_%s" % feature)
- if not packages:
- packages = d.getVar("PACKAGE_GROUP_%s" % feature)
for pkg in (packages or "").split():
yield pkg
diff --git a/meta/lib/oe/patch.py b/meta/lib/oe/patch.py
index 2b1eee1003..40755fbb03 100644
--- a/meta/lib/oe/patch.py
+++ b/meta/lib/oe/patch.py
@@ -41,7 +41,7 @@ def runcmd(args, dir = None):
(exitstatus, output) = subprocess.getstatusoutput(cmd)
if exitstatus != 0:
raise CmdError(cmd, exitstatus >> 8, output)
- if " fuzz " in output:
+ if " fuzz " in output and "Hunk " in output:
# Drop patch fuzz info with header and footer to log file so
# insane.bbclass can handle to throw error/warning
bb.note("--- Patch fuzz start ---\n%s\n--- Patch fuzz end ---" % format(output))
@@ -416,7 +416,7 @@ class GitApplyTree(PatchTree):
date = newdate
if not subject:
subject = newsubject
- if subject and outlines and not outlines[0].strip() == subject:
+ if subject and not (outlines and outlines[0].strip() == subject):
outlines.insert(0, '%s\n\n' % subject.strip())
# Write out commit message to a file
@@ -439,7 +439,6 @@ class GitApplyTree(PatchTree):
def extractPatches(tree, startcommit, outdir, paths=None):
import tempfile
import shutil
- import re
tempdir = tempfile.mkdtemp(prefix='oepatch')
try:
shellcmd = ["git", "format-patch", "--no-signature", "--no-numbered", startcommit, "-o", tempdir]
@@ -455,13 +454,10 @@ class GitApplyTree(PatchTree):
try:
with open(srcfile, 'r', encoding=encoding) as f:
for line in f:
- checkline = line
- if checkline.startswith('Subject: '):
- checkline = re.sub(r'\[.+?\]\s*', '', checkline[9:])
- if checkline.startswith(GitApplyTree.patch_line_prefix):
+ if line.startswith(GitApplyTree.patch_line_prefix):
outfile = line.split()[-1].strip()
continue
- if checkline.startswith(GitApplyTree.ignore_commit_prefix):
+ if line.startswith(GitApplyTree.ignore_commit_prefix):
continue
patchlines.append(line)
except UnicodeDecodeError:
@@ -508,8 +504,7 @@ class GitApplyTree(PatchTree):
with open(commithook, 'w') as f:
# NOTE: the formatting here is significant; if you change it you'll also need to
# change other places which read it back
- f.write('echo >> $1\n')
- f.write('echo "%s: $PATCHFILE" >> $1\n' % GitApplyTree.patch_line_prefix)
+ f.write('echo "\n%s: $PATCHFILE" >> $1' % GitApplyTree.patch_line_prefix)
os.chmod(commithook, 0o755)
shutil.copy2(commithook, applyhook)
try:
diff --git a/meta/lib/oe/prservice.py b/meta/lib/oe/prservice.py
index b1132ccb11..2d3c9c7e50 100644
--- a/meta/lib/oe/prservice.py
+++ b/meta/lib/oe/prservice.py
@@ -3,6 +3,10 @@
#
def prserv_make_conn(d, check = False):
+ # Otherwise this fails when called from recipes which e.g. inherit python3native (which sets _PYTHON_SYSCONFIGDATA_NAME) with:
+ # No module named '_sysconfigdata'
+ if '_PYTHON_SYSCONFIGDATA_NAME' in os.environ:
+ del os.environ['_PYTHON_SYSCONFIGDATA_NAME']
import prserv.serv
host_params = list([_f for _f in (d.getVar("PRSERV_HOST") or '').split(':') if _f])
try:
@@ -79,41 +83,40 @@ def prserv_export_tofile(d, metainfo, datainfo, lockdown, nomax=False):
df = d.getVar('PRSERV_DUMPFILE')
#write data
lf = bb.utils.lockfile("%s.lock" % df)
- f = open(df, "a")
- if metainfo:
- #dump column info
- f.write("#PR_core_ver = \"%s\"\n\n" % metainfo['core_ver']);
- f.write("#Table: %s\n" % metainfo['tbl_name'])
- f.write("#Columns:\n")
- f.write("#name \t type \t notn \t dflt \t pk\n")
- f.write("#----------\t --------\t --------\t --------\t ----\n")
- for i in range(len(metainfo['col_info'])):
- f.write("#%10s\t %8s\t %8s\t %8s\t %4s\n" %
- (metainfo['col_info'][i]['name'],
- metainfo['col_info'][i]['type'],
- metainfo['col_info'][i]['notnull'],
- metainfo['col_info'][i]['dflt_value'],
- metainfo['col_info'][i]['pk']))
- f.write("\n")
+ with open(df, "a") as f:
+ if metainfo:
+ #dump column info
+ f.write("#PR_core_ver = \"%s\"\n\n" % metainfo['core_ver']);
+ f.write("#Table: %s\n" % metainfo['tbl_name'])
+ f.write("#Columns:\n")
+ f.write("#name \t type \t notn \t dflt \t pk\n")
+ f.write("#----------\t --------\t --------\t --------\t ----\n")
+ for i in range(len(metainfo['col_info'])):
+ f.write("#%10s\t %8s\t %8s\t %8s\t %4s\n" %
+ (metainfo['col_info'][i]['name'],
+ metainfo['col_info'][i]['type'],
+ metainfo['col_info'][i]['notnull'],
+ metainfo['col_info'][i]['dflt_value'],
+ metainfo['col_info'][i]['pk']))
+ f.write("\n")
- if lockdown:
- f.write("PRSERV_LOCKDOWN = \"1\"\n\n")
+ if lockdown:
+ f.write("PRSERV_LOCKDOWN = \"1\"\n\n")
- if datainfo:
- idx = {}
- for i in range(len(datainfo)):
- pkgarch = datainfo[i]['pkgarch']
- value = datainfo[i]['value']
- if pkgarch not in idx:
- idx[pkgarch] = i
- elif value > datainfo[idx[pkgarch]]['value']:
- idx[pkgarch] = i
- f.write("PRAUTO$%s$%s$%s = \"%s\"\n" %
- (str(datainfo[i]['version']), pkgarch, str(datainfo[i]['checksum']), str(value)))
- if not nomax:
- for i in idx:
- f.write("PRAUTO_%s_%s = \"%s\"\n" % (str(datainfo[idx[i]]['version']),str(datainfo[idx[i]]['pkgarch']),str(datainfo[idx[i]]['value'])))
- f.close()
+ if datainfo:
+ idx = {}
+ for i in range(len(datainfo)):
+ pkgarch = datainfo[i]['pkgarch']
+ value = datainfo[i]['value']
+ if pkgarch not in idx:
+ idx[pkgarch] = i
+ elif value > datainfo[idx[pkgarch]]['value']:
+ idx[pkgarch] = i
+ f.write("PRAUTO$%s$%s$%s = \"%s\"\n" %
+ (str(datainfo[i]['version']), pkgarch, str(datainfo[i]['checksum']), str(value)))
+ if not nomax:
+ for i in idx:
+ f.write("PRAUTO_%s_%s = \"%s\"\n" % (str(datainfo[idx[i]]['version']),str(datainfo[idx[i]]['pkgarch']),str(datainfo[idx[i]]['value'])))
bb.utils.unlockfile(lf)
def prserv_check_avail(d):
diff --git a/meta/lib/oe/recipeutils.py b/meta/lib/oe/recipeutils.py
index f53c2b7126..ef69ef207f 100644
--- a/meta/lib/oe/recipeutils.py
+++ b/meta/lib/oe/recipeutils.py
@@ -24,7 +24,7 @@ from collections import OrderedDict, defaultdict
from bb.utils import vercmp_string
# Help us to find places to insert values
-recipe_progression = ['SUMMARY', 'DESCRIPTION', 'HOMEPAGE', 'BUGTRACKER', 'SECTION', 'LICENSE', 'LICENSE_FLAGS', 'LIC_FILES_CHKSUM', 'PROVIDES', 'DEPENDS', 'PR', 'PV', 'SRCREV', 'SRCPV', 'SRC_URI', 'S', 'do_fetch()', 'do_unpack()', 'do_patch()', 'EXTRA_OECONF', 'EXTRA_OECMAKE', 'EXTRA_OESCONS', 'do_configure()', 'EXTRA_OEMAKE', 'do_compile()', 'do_install()', 'do_populate_sysroot()', 'INITSCRIPT', 'USERADD', 'GROUPADD', 'PACKAGES', 'FILES', 'RDEPENDS', 'RRECOMMENDS', 'RSUGGESTS', 'RPROVIDES', 'RREPLACES', 'RCONFLICTS', 'ALLOW_EMPTY', 'populate_packages()', 'do_package()', 'do_deploy()']
+recipe_progression = ['SUMMARY', 'DESCRIPTION', 'AUTHOR', 'HOMEPAGE', 'BUGTRACKER', 'SECTION', 'LICENSE', 'LICENSE_FLAGS', 'LIC_FILES_CHKSUM', 'PROVIDES', 'DEPENDS', 'PR', 'PV', 'SRCREV', 'SRCPV', 'SRC_URI', 'S', 'do_fetch()', 'do_unpack()', 'do_patch()', 'EXTRA_OECONF', 'EXTRA_OECMAKE', 'EXTRA_OESCONS', 'do_configure()', 'EXTRA_OEMAKE', 'do_compile()', 'do_install()', 'do_populate_sysroot()', 'INITSCRIPT', 'USERADD', 'GROUPADD', 'PACKAGES', 'FILES', 'RDEPENDS', 'RRECOMMENDS', 'RSUGGESTS', 'RPROVIDES', 'RREPLACES', 'RCONFLICTS', 'ALLOW_EMPTY', 'populate_packages()', 'do_package()', 'do_deploy()', 'BBCLASSEXTEND']
# Variables that sometimes are a bit long but shouldn't be wrapped
nowrap_vars = ['SUMMARY', 'HOMEPAGE', 'BUGTRACKER', r'SRC_URI\[(.+\.)?md5sum\]', r'SRC_URI\[(.+\.)?sha256sum\]']
list_vars = ['SRC_URI', 'LIC_FILES_CHKSUM']
@@ -563,6 +563,23 @@ def get_bbfile_path(d, destdir, extrapathhint=None):
confdata = bb.cookerdata.parse_config_file(destlayerconf, confdata)
pn = d.getVar('PN')
+ # Parse BBFILES_DYNAMIC and append to BBFILES
+ bbfiles_dynamic = (confdata.getVar('BBFILES_DYNAMIC') or "").split()
+ collections = (confdata.getVar('BBFILE_COLLECTIONS') or "").split()
+ invalid = []
+ for entry in bbfiles_dynamic:
+ parts = entry.split(":", 1)
+ if len(parts) != 2:
+ invalid.append(entry)
+ continue
+ l, f = parts
+ invert = l[0] == "!"
+ if invert:
+ l = l[1:]
+ if (l in collections and not invert) or (l not in collections and invert):
+ confdata.appendVar("BBFILES", " " + f)
+ if invalid:
+ return None
bbfilespecs = (confdata.getVar('BBFILES') or '').split()
if destdir == destlayerdir:
for bbfilespec in bbfilespecs:
@@ -1061,7 +1078,6 @@ def get_recipe_upgrade_status(recipes=None):
data_copy_list = []
copy_vars = ('SRC_URI',
'PV',
- 'GITDIR',
'DL_DIR',
'PN',
'CACHE',
@@ -1077,6 +1093,18 @@ def get_recipe_upgrade_status(recipes=None):
'RECIPE_UPSTREAM_VERSION',
'RECIPE_UPSTREAM_DATE',
'CHECK_DATE',
+ 'FETCHCMD_bzr',
+ 'FETCHCMD_ccrc',
+ 'FETCHCMD_cvs',
+ 'FETCHCMD_git',
+ 'FETCHCMD_hg',
+ 'FETCHCMD_npm',
+ 'FETCHCMD_osc',
+ 'FETCHCMD_p4',
+ 'FETCHCMD_repo',
+ 'FETCHCMD_s3',
+ 'FETCHCMD_svn',
+ 'FETCHCMD_wget',
)
with bb.tinfoil.Tinfoil() as tinfoil:
diff --git a/meta/lib/oe/reproducible.py b/meta/lib/oe/reproducible.py
new file mode 100644
index 0000000000..421bb12f54
--- /dev/null
+++ b/meta/lib/oe/reproducible.py
@@ -0,0 +1,104 @@
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+import os
+import subprocess
+import bb
+
+def get_source_date_epoch_from_known_files(d, sourcedir):
+ source_date_epoch = None
+ newest_file = None
+ known_files = set(["NEWS", "ChangeLog", "Changelog", "CHANGES"])
+ for file in known_files:
+ filepath = os.path.join(sourcedir, file)
+ if os.path.isfile(filepath):
+ mtime = int(os.lstat(filepath).st_mtime)
+ # There may be more than one "known_file" present, if so, use the youngest one
+ if not source_date_epoch or mtime > source_date_epoch:
+ source_date_epoch = mtime
+ newest_file = filepath
+ if newest_file:
+ bb.debug(1, "SOURCE_DATE_EPOCH taken from: %s" % newest_file)
+ return source_date_epoch
+
+def find_git_folder(d, sourcedir):
+ # First guess: WORKDIR/git
+ # This is the default git fetcher unpack path
+ workdir = d.getVar('WORKDIR')
+ gitpath = os.path.join(workdir, "git/.git")
+ if os.path.isdir(gitpath):
+ return gitpath
+
+ # Second guess: ${S}
+ gitpath = os.path.join(sourcedir, ".git")
+ if os.path.isdir(gitpath):
+ return gitpath
+
+ # Perhaps there was a subpath or destsuffix specified.
+ # Go looking in the WORKDIR
+ exclude = set(["build", "image", "license-destdir", "patches", "pseudo",
+ "recipe-sysroot", "recipe-sysroot-native", "sysroot-destdir", "temp"])
+ for root, dirs, files in os.walk(workdir, topdown=True):
+ dirs[:] = [d for d in dirs if d not in exclude]
+ if '.git' in dirs:
+ return root
+
+ bb.warn("Failed to find a git repository in WORKDIR: %s" % workdir)
+ return None
+
+def get_source_date_epoch_from_git(d, sourcedir):
+ if not "git://" in d.getVar('SRC_URI'):
+ return None
+
+ gitpath = find_git_folder(d, sourcedir)
+ if not gitpath:
+ return None
+
+ # Check that the repository has a valid HEAD; it may not if subdir is used
+ # in SRC_URI
+ p = subprocess.run(['git', '--git-dir', gitpath, 'rev-parse', 'HEAD'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+ if p.returncode != 0:
+ bb.debug(1, "%s does not have a valid HEAD: %s" % (gitpath, p.stdout.decode('utf-8')))
+ return None
+
+ bb.debug(1, "git repository: %s" % gitpath)
+ p = subprocess.run(['git', '--git-dir', gitpath, 'log', '-1', '--pretty=%ct'], check=True, stdout=subprocess.PIPE)
+ return int(p.stdout.decode('utf-8'))
+
+def get_source_date_epoch_from_youngest_file(d, sourcedir):
+ if sourcedir == d.getVar('WORKDIR'):
+ # These sources are almost certainly not from a tarball
+ return None
+
+ # Do it the hard way: check all files and find the youngest one...
+ source_date_epoch = None
+ newest_file = None
+ for root, dirs, files in os.walk(sourcedir, topdown=True):
+ files = [f for f in files if not f[0] == '.']
+
+ for fname in files:
+ filename = os.path.join(root, fname)
+ try:
+ mtime = int(os.lstat(filename).st_mtime)
+ except ValueError:
+ mtime = 0
+ if not source_date_epoch or mtime > source_date_epoch:
+ source_date_epoch = mtime
+ newest_file = filename
+
+ if newest_file:
+ bb.debug(1, "Newest file found: %s" % newest_file)
+ return source_date_epoch
+
+def fixed_source_date_epoch():
+ bb.debug(1, "No tarball or git repo found to determine SOURCE_DATE_EPOCH")
+ return 0
+
+def get_source_date_epoch(d, sourcedir):
+ return (
+ get_source_date_epoch_from_git(d, sourcedir) or
+ get_source_date_epoch_from_known_files(d, sourcedir) or
+ get_source_date_epoch_from_youngest_file(d, sourcedir) or
+ fixed_source_date_epoch() # Last resort
+ )
+
diff --git a/meta/lib/oe/rootfs.py b/meta/lib/oe/rootfs.py
index cd65e62030..4e09eae6b9 100644
--- a/meta/lib/oe/rootfs.py
+++ b/meta/lib/oe/rootfs.py
@@ -6,12 +6,16 @@ from oe.utils import execute_pre_post_process
from oe.package_manager import *
from oe.manifest import *
import oe.path
-import filecmp
import shutil
import os
import subprocess
import re
-
+from oe.package_manager.rpm.manifest import RpmManifest
+from oe.package_manager.ipk.manifest import OpkgManifest
+from oe.package_manager.deb.manifest import DpkgManifest
+from oe.package_manager.rpm import RpmPkgsList
+from oe.package_manager.ipk import OpkgPkgsList
+from oe.package_manager.deb import DpkgPkgsList
class Rootfs(object, metaclass=ABCMeta):
"""
@@ -51,6 +55,8 @@ class Rootfs(object, metaclass=ABCMeta):
excludes = [ 'log_check', r'^\+' ]
if hasattr(self, 'log_check_expected_regexes'):
excludes.extend(self.log_check_expected_regexes)
+ # Insert custom log_check excludes
+ excludes += [x for x in (self.d.getVar("IMAGE_LOG_CHECK_EXCLUDES") or "").split(" ") if x]
excludes = [re.compile(x) for x in excludes]
r = re.compile(match)
log_path = self.d.expand("${T}/log.do_rootfs")
@@ -297,9 +303,9 @@ class Rootfs(object, metaclass=ABCMeta):
def _run_ldconfig(self):
if self.d.getVar('LDCONFIGDEPEND'):
- bb.note("Executing: ldconfig -r" + self.image_rootfs + "-c new -v")
+ bb.note("Executing: ldconfig -r " + self.image_rootfs + " -c new -v -X")
self._exec_shell_cmd(['ldconfig', '-r', self.image_rootfs, '-c',
- 'new', '-v'])
+ 'new', '-v', '-X'])
def _check_for_kernel_modules(self, modules_dir):
for root, dirs, files in os.walk(modules_dir, topdown=True):
@@ -353,611 +359,10 @@ class Rootfs(object, metaclass=ABCMeta):
self.image_rootfs, "-D", devtable])
-class RpmRootfs(Rootfs):
- def __init__(self, d, manifest_dir, progress_reporter=None, logcatcher=None):
- super(RpmRootfs, self).__init__(d, progress_reporter, logcatcher)
- self.log_check_regex = r'(unpacking of archive failed|Cannot find package'\
- r'|exit 1|ERROR: |Error: |Error |ERROR '\
- r'|Failed |Failed: |Failed$|Failed\(\d+\):)'
- self.manifest = RpmManifest(d, manifest_dir)
-
- self.pm = RpmPM(d,
- d.getVar('IMAGE_ROOTFS'),
- self.d.getVar('TARGET_VENDOR')
- )
-
- self.inc_rpm_image_gen = self.d.getVar('INC_RPM_IMAGE_GEN')
- if self.inc_rpm_image_gen != "1":
- bb.utils.remove(self.image_rootfs, True)
- else:
- self.pm.recovery_packaging_data()
- bb.utils.remove(self.d.getVar('MULTILIB_TEMP_ROOTFS'), True)
-
- self.pm.create_configs()
-
- '''
- While rpm incremental image generation is enabled, it will remove the
- unneeded pkgs by comparing the new install solution manifest and the
- old installed manifest.
- '''
- def _create_incremental(self, pkgs_initial_install):
- if self.inc_rpm_image_gen == "1":
-
- pkgs_to_install = list()
- for pkg_type in pkgs_initial_install:
- pkgs_to_install += pkgs_initial_install[pkg_type]
-
- installed_manifest = self.pm.load_old_install_solution()
- solution_manifest = self.pm.dump_install_solution(pkgs_to_install)
-
- pkg_to_remove = list()
- for pkg in installed_manifest:
- if pkg not in solution_manifest:
- pkg_to_remove.append(pkg)
-
- self.pm.update()
-
- bb.note('incremental update -- upgrade packages in place ')
- self.pm.upgrade()
- if pkg_to_remove != []:
- bb.note('incremental removed: %s' % ' '.join(pkg_to_remove))
- self.pm.remove(pkg_to_remove)
-
- self.pm.autoremove()
-
- def _create(self):
- pkgs_to_install = self.manifest.parse_initial_manifest()
- rpm_pre_process_cmds = self.d.getVar('RPM_PREPROCESS_COMMANDS')
- rpm_post_process_cmds = self.d.getVar('RPM_POSTPROCESS_COMMANDS')
-
- # update PM index files
- self.pm.write_index()
-
- execute_pre_post_process(self.d, rpm_pre_process_cmds)
-
- if self.progress_reporter:
- self.progress_reporter.next_stage()
-
- if self.inc_rpm_image_gen == "1":
- self._create_incremental(pkgs_to_install)
-
- if self.progress_reporter:
- self.progress_reporter.next_stage()
-
- self.pm.update()
-
- pkgs = []
- pkgs_attempt = []
- for pkg_type in pkgs_to_install:
- if pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY:
- pkgs_attempt += pkgs_to_install[pkg_type]
- else:
- pkgs += pkgs_to_install[pkg_type]
-
- if self.progress_reporter:
- self.progress_reporter.next_stage()
-
- self.pm.install(pkgs)
-
- if self.progress_reporter:
- self.progress_reporter.next_stage()
-
- self.pm.install(pkgs_attempt, True)
-
- if self.progress_reporter:
- self.progress_reporter.next_stage()
-
- self.pm.install_complementary()
-
- if self.progress_reporter:
- self.progress_reporter.next_stage()
-
- self._setup_dbg_rootfs(['/etc', '/var/lib/rpm', '/var/cache/dnf', '/var/lib/dnf'])
-
- execute_pre_post_process(self.d, rpm_post_process_cmds)
-
- if self.inc_rpm_image_gen == "1":
- self.pm.backup_packaging_data()
-
- if self.progress_reporter:
- self.progress_reporter.next_stage()
-
-
- @staticmethod
- def _depends_list():
- return ['DEPLOY_DIR_RPM', 'INC_RPM_IMAGE_GEN', 'RPM_PREPROCESS_COMMANDS',
- 'RPM_POSTPROCESS_COMMANDS', 'RPM_PREFER_ELF_ARCH']
-
- def _get_delayed_postinsts(self):
- postinst_dir = self.d.expand("${IMAGE_ROOTFS}${sysconfdir}/rpm-postinsts")
- if os.path.isdir(postinst_dir):
- files = os.listdir(postinst_dir)
- for f in files:
- bb.note('Delayed package scriptlet: %s' % f)
- return files
-
- return None
-
- def _save_postinsts(self):
- # this is just a stub. For RPM, the failed postinstalls are
- # already saved in /etc/rpm-postinsts
- pass
-
- def _log_check(self):
- self._log_check_warn()
- self._log_check_error()
-
- def _cleanup(self):
- if bb.utils.contains("IMAGE_FEATURES", "package-management", True, False, self.d):
- self.pm._invoke_dnf(["clean", "all"])
-
-
-class DpkgOpkgRootfs(Rootfs):
- def __init__(self, d, progress_reporter=None, logcatcher=None):
- super(DpkgOpkgRootfs, self).__init__(d, progress_reporter, logcatcher)
-
- def _get_pkgs_postinsts(self, status_file):
- def _get_pkg_depends_list(pkg_depends):
- pkg_depends_list = []
- # filter version requirements like libc (>= 1.1)
- for dep in pkg_depends.split(', '):
- m_dep = re.match(r"^(.*) \(.*\)$", dep)
- if m_dep:
- dep = m_dep.group(1)
- pkg_depends_list.append(dep)
-
- return pkg_depends_list
-
- pkgs = {}
- pkg_name = ""
- pkg_status_match = False
- pkg_depends = ""
-
- with open(status_file) as status:
- data = status.read()
- status.close()
- for line in data.split('\n'):
- m_pkg = re.match(r"^Package: (.*)", line)
- m_status = re.match(r"^Status:.*unpacked", line)
- m_depends = re.match(r"^Depends: (.*)", line)
-
- #Only one of m_pkg, m_status or m_depends is not None at time
- #If m_pkg is not None, we started a new package
- if m_pkg is not None:
- #Get Package name
- pkg_name = m_pkg.group(1)
- #Make sure we reset other variables
- pkg_status_match = False
- pkg_depends = ""
- elif m_status is not None:
- #New status matched
- pkg_status_match = True
- elif m_depends is not None:
- #New depends macthed
- pkg_depends = m_depends.group(1)
- else:
- pass
-
- #Now check if we can process package depends and postinst
- if "" != pkg_name and pkg_status_match:
- pkgs[pkg_name] = _get_pkg_depends_list(pkg_depends)
- else:
- #Not enough information
- pass
-
- # remove package dependencies not in postinsts
- pkg_names = list(pkgs.keys())
- for pkg_name in pkg_names:
- deps = pkgs[pkg_name][:]
-
- for d in deps:
- if d not in pkg_names:
- pkgs[pkg_name].remove(d)
-
- return pkgs
-
- def _get_delayed_postinsts_common(self, status_file):
- def _dep_resolve(graph, node, resolved, seen):
- seen.append(node)
-
- for edge in graph[node]:
- if edge not in resolved:
- if edge in seen:
- raise RuntimeError("Packages %s and %s have " \
- "a circular dependency in postinsts scripts." \
- % (node, edge))
- _dep_resolve(graph, edge, resolved, seen)
-
- resolved.append(node)
-
- pkg_list = []
-
- pkgs = None
- if not self.d.getVar('PACKAGE_INSTALL').strip():
- bb.note("Building empty image")
- else:
- pkgs = self._get_pkgs_postinsts(status_file)
- if pkgs:
- root = "__packagegroup_postinst__"
- pkgs[root] = list(pkgs.keys())
- _dep_resolve(pkgs, root, pkg_list, [])
- pkg_list.remove(root)
-
- if len(pkg_list) == 0:
- return None
-
- return pkg_list
-
- def _save_postinsts_common(self, dst_postinst_dir, src_postinst_dir):
- if bb.utils.contains("IMAGE_FEATURES", "package-management",
- True, False, self.d):
- return
- num = 0
- for p in self._get_delayed_postinsts():
- bb.utils.mkdirhier(dst_postinst_dir)
-
- if os.path.exists(os.path.join(src_postinst_dir, p + ".postinst")):
- shutil.copy(os.path.join(src_postinst_dir, p + ".postinst"),
- os.path.join(dst_postinst_dir, "%03d-%s" % (num, p)))
-
- num += 1
-
-class DpkgRootfs(DpkgOpkgRootfs):
- def __init__(self, d, manifest_dir, progress_reporter=None, logcatcher=None):
- super(DpkgRootfs, self).__init__(d, progress_reporter, logcatcher)
- self.log_check_regex = '^E:'
- self.log_check_expected_regexes = \
- [
- "^E: Unmet dependencies."
- ]
-
- bb.utils.remove(self.image_rootfs, True)
- bb.utils.remove(self.d.getVar('MULTILIB_TEMP_ROOTFS'), True)
- self.manifest = DpkgManifest(d, manifest_dir)
- self.pm = DpkgPM(d, d.getVar('IMAGE_ROOTFS'),
- d.getVar('PACKAGE_ARCHS'),
- d.getVar('DPKG_ARCH'))
-
-
- def _create(self):
- pkgs_to_install = self.manifest.parse_initial_manifest()
- deb_pre_process_cmds = self.d.getVar('DEB_PREPROCESS_COMMANDS')
- deb_post_process_cmds = self.d.getVar('DEB_POSTPROCESS_COMMANDS')
-
- alt_dir = self.d.expand("${IMAGE_ROOTFS}/var/lib/dpkg/alternatives")
- bb.utils.mkdirhier(alt_dir)
-
- # update PM index files
- self.pm.write_index()
-
- execute_pre_post_process(self.d, deb_pre_process_cmds)
-
- if self.progress_reporter:
- self.progress_reporter.next_stage()
- # Don't support incremental, so skip that
- self.progress_reporter.next_stage()
-
- self.pm.update()
-
- if self.progress_reporter:
- self.progress_reporter.next_stage()
-
- for pkg_type in self.install_order:
- if pkg_type in pkgs_to_install:
- self.pm.install(pkgs_to_install[pkg_type],
- [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY])
- self.pm.fix_broken_dependencies()
-
- if self.progress_reporter:
- # Don't support attemptonly, so skip that
- self.progress_reporter.next_stage()
- self.progress_reporter.next_stage()
-
- self.pm.install_complementary()
-
- if self.progress_reporter:
- self.progress_reporter.next_stage()
-
- self._setup_dbg_rootfs(['/var/lib/dpkg'])
-
- self.pm.fix_broken_dependencies()
-
- self.pm.mark_packages("installed")
-
- self.pm.run_pre_post_installs()
-
- execute_pre_post_process(self.d, deb_post_process_cmds)
-
- if self.progress_reporter:
- self.progress_reporter.next_stage()
-
- @staticmethod
- def _depends_list():
- return ['DEPLOY_DIR_DEB', 'DEB_SDK_ARCH', 'APTCONF_TARGET', 'APT_ARGS', 'DPKG_ARCH', 'DEB_PREPROCESS_COMMANDS', 'DEB_POSTPROCESS_COMMANDS']
-
- def _get_delayed_postinsts(self):
- status_file = self.image_rootfs + "/var/lib/dpkg/status"
- return self._get_delayed_postinsts_common(status_file)
-
- def _save_postinsts(self):
- dst_postinst_dir = self.d.expand("${IMAGE_ROOTFS}${sysconfdir}/deb-postinsts")
- src_postinst_dir = self.d.expand("${IMAGE_ROOTFS}/var/lib/dpkg/info")
- return self._save_postinsts_common(dst_postinst_dir, src_postinst_dir)
-
- def _log_check(self):
- self._log_check_warn()
- self._log_check_error()
-
- def _cleanup(self):
- pass
-
-
-class OpkgRootfs(DpkgOpkgRootfs):
- def __init__(self, d, manifest_dir, progress_reporter=None, logcatcher=None):
- super(OpkgRootfs, self).__init__(d, progress_reporter, logcatcher)
- self.log_check_regex = '(exit 1|Collected errors)'
-
- self.manifest = OpkgManifest(d, manifest_dir)
- self.opkg_conf = self.d.getVar("IPKGCONF_TARGET")
- self.pkg_archs = self.d.getVar("ALL_MULTILIB_PACKAGE_ARCHS")
-
- self.inc_opkg_image_gen = self.d.getVar('INC_IPK_IMAGE_GEN') or ""
- if self._remove_old_rootfs():
- bb.utils.remove(self.image_rootfs, True)
- self.pm = OpkgPM(d,
- self.image_rootfs,
- self.opkg_conf,
- self.pkg_archs)
- else:
- self.pm = OpkgPM(d,
- self.image_rootfs,
- self.opkg_conf,
- self.pkg_archs)
- self.pm.recover_packaging_data()
-
- bb.utils.remove(self.d.getVar('MULTILIB_TEMP_ROOTFS'), True)
-
- def _prelink_file(self, root_dir, filename):
- bb.note('prelink %s in %s' % (filename, root_dir))
- prelink_cfg = oe.path.join(root_dir,
- self.d.expand('${sysconfdir}/prelink.conf'))
- if not os.path.exists(prelink_cfg):
- shutil.copy(self.d.expand('${STAGING_DIR_NATIVE}${sysconfdir_native}/prelink.conf'),
- prelink_cfg)
-
- cmd_prelink = self.d.expand('${STAGING_DIR_NATIVE}${sbindir_native}/prelink')
- self._exec_shell_cmd([cmd_prelink,
- '--root',
- root_dir,
- '-amR',
- '-N',
- '-c',
- self.d.expand('${sysconfdir}/prelink.conf')])
-
- '''
- Compare two files with the same key twice to see if they are equal.
- If they are not equal, it means they are duplicated and come from
- different packages.
- 1st: Comapre them directly;
- 2nd: While incremental image creation is enabled, one of the
- files could be probaly prelinked in the previous image
- creation and the file has been changed, so we need to
- prelink the other one and compare them.
- '''
- def _file_equal(self, key, f1, f2):
-
- # Both of them are not prelinked
- if filecmp.cmp(f1, f2):
- return True
-
- if bb.data.inherits_class('image-prelink', self.d):
- if self.image_rootfs not in f1:
- self._prelink_file(f1.replace(key, ''), f1)
-
- if self.image_rootfs not in f2:
- self._prelink_file(f2.replace(key, ''), f2)
-
- # Both of them are prelinked
- if filecmp.cmp(f1, f2):
- return True
-
- # Not equal
- return False
-
- """
- This function was reused from the old implementation.
- See commit: "image.bbclass: Added variables for multilib support." by
- Lianhao Lu.
- """
- def _multilib_sanity_test(self, dirs):
-
- allow_replace = self.d.getVar("MULTILIBRE_ALLOW_REP")
- if allow_replace is None:
- allow_replace = ""
-
- allow_rep = re.compile(re.sub(r"\|$", r"", allow_replace))
- error_prompt = "Multilib check error:"
-
- files = {}
- for dir in dirs:
- for root, subfolders, subfiles in os.walk(dir):
- for file in subfiles:
- item = os.path.join(root, file)
- key = str(os.path.join("/", os.path.relpath(item, dir)))
-
- valid = True
- if key in files:
- #check whether the file is allow to replace
- if allow_rep.match(key):
- valid = True
- else:
- if os.path.exists(files[key]) and \
- os.path.exists(item) and \
- not self._file_equal(key, files[key], item):
- valid = False
- bb.fatal("%s duplicate files %s %s is not the same\n" %
- (error_prompt, item, files[key]))
-
- #pass the check, add to list
- if valid:
- files[key] = item
-
- def _multilib_test_install(self, pkgs):
- ml_temp = self.d.getVar("MULTILIB_TEMP_ROOTFS")
- bb.utils.mkdirhier(ml_temp)
-
- dirs = [self.image_rootfs]
-
- for variant in self.d.getVar("MULTILIB_VARIANTS").split():
- ml_target_rootfs = os.path.join(ml_temp, variant)
-
- bb.utils.remove(ml_target_rootfs, True)
-
- ml_opkg_conf = os.path.join(ml_temp,
- variant + "-" + os.path.basename(self.opkg_conf))
-
- ml_pm = OpkgPM(self.d, ml_target_rootfs, ml_opkg_conf, self.pkg_archs, prepare_index=False)
-
- ml_pm.update()
- ml_pm.install(pkgs)
-
- dirs.append(ml_target_rootfs)
-
- self._multilib_sanity_test(dirs)
-
- '''
- While ipk incremental image generation is enabled, it will remove the
- unneeded pkgs by comparing the old full manifest in previous existing
- image and the new full manifest in the current image.
- '''
- def _remove_extra_packages(self, pkgs_initial_install):
- if self.inc_opkg_image_gen == "1":
- # Parse full manifest in previous existing image creation session
- old_full_manifest = self.manifest.parse_full_manifest()
-
- # Create full manifest for the current image session, the old one
- # will be replaced by the new one.
- self.manifest.create_full(self.pm)
-
- # Parse full manifest in current image creation session
- new_full_manifest = self.manifest.parse_full_manifest()
-
- pkg_to_remove = list()
- for pkg in old_full_manifest:
- if pkg not in new_full_manifest:
- pkg_to_remove.append(pkg)
-
- if pkg_to_remove != []:
- bb.note('decremental removed: %s' % ' '.join(pkg_to_remove))
- self.pm.remove(pkg_to_remove)
-
- '''
- Compare with previous existing image creation, if some conditions
- triggered, the previous old image should be removed.
- The conditions include any of 'PACKAGE_EXCLUDE, NO_RECOMMENDATIONS
- and BAD_RECOMMENDATIONS' has been changed.
- '''
- def _remove_old_rootfs(self):
- if self.inc_opkg_image_gen != "1":
- return True
-
- vars_list_file = self.d.expand('${T}/vars_list')
-
- old_vars_list = ""
- if os.path.exists(vars_list_file):
- old_vars_list = open(vars_list_file, 'r+').read()
-
- new_vars_list = '%s:%s:%s\n' % \
- ((self.d.getVar('BAD_RECOMMENDATIONS') or '').strip(),
- (self.d.getVar('NO_RECOMMENDATIONS') or '').strip(),
- (self.d.getVar('PACKAGE_EXCLUDE') or '').strip())
- open(vars_list_file, 'w+').write(new_vars_list)
-
- if old_vars_list != new_vars_list:
- return True
-
- return False
-
- def _create(self):
- pkgs_to_install = self.manifest.parse_initial_manifest()
- opkg_pre_process_cmds = self.d.getVar('OPKG_PREPROCESS_COMMANDS')
- opkg_post_process_cmds = self.d.getVar('OPKG_POSTPROCESS_COMMANDS')
-
- # update PM index files
- self.pm.write_index()
-
- execute_pre_post_process(self.d, opkg_pre_process_cmds)
-
- if self.progress_reporter:
- self.progress_reporter.next_stage()
- # Steps are a bit different in order, skip next
- self.progress_reporter.next_stage()
-
- self.pm.update()
-
- if self.progress_reporter:
- self.progress_reporter.next_stage()
-
- if self.inc_opkg_image_gen == "1":
- self._remove_extra_packages(pkgs_to_install)
-
- if self.progress_reporter:
- self.progress_reporter.next_stage()
-
- for pkg_type in self.install_order:
- if pkg_type in pkgs_to_install:
- # For multilib, we perform a sanity test before final install
- # If sanity test fails, it will automatically do a bb.fatal()
- # and the installation will stop
- if pkg_type == Manifest.PKG_TYPE_MULTILIB:
- self._multilib_test_install(pkgs_to_install[pkg_type])
-
- self.pm.install(pkgs_to_install[pkg_type],
- [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY])
-
- if self.progress_reporter:
- self.progress_reporter.next_stage()
-
- self.pm.install_complementary()
-
- if self.progress_reporter:
- self.progress_reporter.next_stage()
-
- opkg_lib_dir = self.d.getVar('OPKGLIBDIR')
- opkg_dir = os.path.join(opkg_lib_dir, 'opkg')
- self._setup_dbg_rootfs([opkg_dir])
-
- execute_pre_post_process(self.d, opkg_post_process_cmds)
-
- if self.inc_opkg_image_gen == "1":
- self.pm.backup_packaging_data()
-
- if self.progress_reporter:
- self.progress_reporter.next_stage()
-
- @staticmethod
- def _depends_list():
- return ['IPKGCONF_SDK', 'IPK_FEED_URIS', 'DEPLOY_DIR_IPK', 'IPKGCONF_TARGET', 'INC_IPK_IMAGE_GEN', 'OPKG_ARGS', 'OPKGLIBDIR', 'OPKG_PREPROCESS_COMMANDS', 'OPKG_POSTPROCESS_COMMANDS', 'OPKGLIBDIR']
-
- def _get_delayed_postinsts(self):
- status_file = os.path.join(self.image_rootfs,
- self.d.getVar('OPKGLIBDIR').strip('/'),
- "opkg", "status")
- return self._get_delayed_postinsts_common(status_file)
-
- def _save_postinsts(self):
- dst_postinst_dir = self.d.expand("${IMAGE_ROOTFS}${sysconfdir}/ipk-postinsts")
- src_postinst_dir = self.d.expand("${IMAGE_ROOTFS}${OPKGLIBDIR}/opkg/info")
- return self._save_postinsts_common(dst_postinst_dir, src_postinst_dir)
-
- def _log_check(self):
- self._log_check_warn()
- self._log_check_error()
-
- def _cleanup(self):
- self.pm.remove_lists()
-
def get_class_for_type(imgtype):
+ from oe.package_manager.rpm.rootfs import RpmRootfs
+ from oe.package_manager.ipk.rootfs import OpkgRootfs
+ from oe.package_manager.deb.rootfs import DpkgRootfs
return {"rpm": RpmRootfs,
"ipk": OpkgRootfs,
"deb": DpkgRootfs}[imgtype]
@@ -970,6 +375,9 @@ def variable_depends(d, manifest_dir=None):
def create_rootfs(d, manifest_dir=None, progress_reporter=None, logcatcher=None):
env_bkp = os.environ.copy()
+ from oe.package_manager.rpm.rootfs import RpmRootfs
+ from oe.package_manager.ipk.rootfs import OpkgRootfs
+ from oe.package_manager.deb.rootfs import DpkgRootfs
img_type = d.getVar('IMAGE_PKGTYPE')
if img_type == "rpm":
RpmRootfs(d, manifest_dir, progress_reporter, logcatcher).create()
diff --git a/meta/lib/oe/sdk.py b/meta/lib/oe/sdk.py
index d02a274812..fdcadcb8de 100644
--- a/meta/lib/oe/sdk.py
+++ b/meta/lib/oe/sdk.py
@@ -7,8 +7,6 @@ from oe.utils import execute_pre_post_process
from oe.manifest import *
from oe.package_manager import *
import os
-import shutil
-import glob
import traceback
class Sdk(object, metaclass=ABCMeta):
@@ -110,283 +108,6 @@ class Sdk(object, metaclass=ABCMeta):
pass
-class RpmSdk(Sdk):
- def __init__(self, d, manifest_dir=None, rpm_workdir="oe-sdk-repo"):
- super(RpmSdk, self).__init__(d, manifest_dir)
-
- self.target_manifest = RpmManifest(d, self.manifest_dir,
- Manifest.MANIFEST_TYPE_SDK_TARGET)
- self.host_manifest = RpmManifest(d, self.manifest_dir,
- Manifest.MANIFEST_TYPE_SDK_HOST)
-
- rpm_repo_workdir = "oe-sdk-repo"
- if "sdk_ext" in d.getVar("BB_RUNTASK"):
- rpm_repo_workdir = "oe-sdk-ext-repo"
-
- self.target_pm = RpmPM(d,
- self.sdk_target_sysroot,
- self.d.getVar('TARGET_VENDOR'),
- 'target',
- rpm_repo_workdir=rpm_repo_workdir
- )
-
- self.host_pm = RpmPM(d,
- self.sdk_host_sysroot,
- self.d.getVar('SDK_VENDOR'),
- 'host',
- "SDK_PACKAGE_ARCHS",
- "SDK_OS",
- rpm_repo_workdir=rpm_repo_workdir
- )
-
- def _populate_sysroot(self, pm, manifest):
- pkgs_to_install = manifest.parse_initial_manifest()
-
- pm.create_configs()
- pm.write_index()
- pm.update()
-
- pkgs = []
- pkgs_attempt = []
- for pkg_type in pkgs_to_install:
- if pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY:
- pkgs_attempt += pkgs_to_install[pkg_type]
- else:
- pkgs += pkgs_to_install[pkg_type]
-
- pm.install(pkgs)
-
- pm.install(pkgs_attempt, True)
-
- def _populate(self):
- execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_PRE_TARGET_COMMAND"))
-
- bb.note("Installing TARGET packages")
- self._populate_sysroot(self.target_pm, self.target_manifest)
-
- self.target_pm.install_complementary(self.d.getVar('SDKIMAGE_INSTALL_COMPLEMENTARY'))
-
- self.target_pm.run_intercepts(populate_sdk='target')
-
- execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_TARGET_COMMAND"))
-
- if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
- self.target_pm.remove_packaging_data()
-
- bb.note("Installing NATIVESDK packages")
- self._populate_sysroot(self.host_pm, self.host_manifest)
- self.install_locales(self.host_pm)
-
- self.host_pm.run_intercepts(populate_sdk='host')
-
- execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_HOST_COMMAND"))
-
- if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
- self.host_pm.remove_packaging_data()
-
- # Move host RPM library data
- native_rpm_state_dir = os.path.join(self.sdk_output,
- self.sdk_native_path,
- self.d.getVar('localstatedir_nativesdk').strip('/'),
- "lib",
- "rpm"
- )
- self.mkdirhier(native_rpm_state_dir)
- for f in glob.glob(os.path.join(self.sdk_output,
- "var",
- "lib",
- "rpm",
- "*")):
- self.movefile(f, native_rpm_state_dir)
-
- self.remove(os.path.join(self.sdk_output, "var"), True)
-
- # Move host sysconfig data
- native_sysconf_dir = os.path.join(self.sdk_output,
- self.sdk_native_path,
- self.d.getVar('sysconfdir',
- True).strip('/'),
- )
- self.mkdirhier(native_sysconf_dir)
- for f in glob.glob(os.path.join(self.sdk_output, "etc", "rpm*")):
- self.movefile(f, native_sysconf_dir)
- for f in glob.glob(os.path.join(self.sdk_output, "etc", "dnf", "*")):
- self.movefile(f, native_sysconf_dir)
- self.remove(os.path.join(self.sdk_output, "etc"), True)
-
-
-class OpkgSdk(Sdk):
- def __init__(self, d, manifest_dir=None):
- super(OpkgSdk, self).__init__(d, manifest_dir)
-
- self.target_conf = self.d.getVar("IPKGCONF_TARGET")
- self.host_conf = self.d.getVar("IPKGCONF_SDK")
-
- self.target_manifest = OpkgManifest(d, self.manifest_dir,
- Manifest.MANIFEST_TYPE_SDK_TARGET)
- self.host_manifest = OpkgManifest(d, self.manifest_dir,
- Manifest.MANIFEST_TYPE_SDK_HOST)
-
- ipk_repo_workdir = "oe-sdk-repo"
- if "sdk_ext" in d.getVar("BB_RUNTASK"):
- ipk_repo_workdir = "oe-sdk-ext-repo"
-
- self.target_pm = OpkgPM(d, self.sdk_target_sysroot, self.target_conf,
- self.d.getVar("ALL_MULTILIB_PACKAGE_ARCHS"),
- ipk_repo_workdir=ipk_repo_workdir)
-
- self.host_pm = OpkgPM(d, self.sdk_host_sysroot, self.host_conf,
- self.d.getVar("SDK_PACKAGE_ARCHS"),
- ipk_repo_workdir=ipk_repo_workdir)
-
- def _populate_sysroot(self, pm, manifest):
- pkgs_to_install = manifest.parse_initial_manifest()
-
- if (self.d.getVar('BUILD_IMAGES_FROM_FEEDS') or "") != "1":
- pm.write_index()
-
- pm.update()
-
- for pkg_type in self.install_order:
- if pkg_type in pkgs_to_install:
- pm.install(pkgs_to_install[pkg_type],
- [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY])
-
- def _populate(self):
- execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_PRE_TARGET_COMMAND"))
-
- bb.note("Installing TARGET packages")
- self._populate_sysroot(self.target_pm, self.target_manifest)
-
- self.target_pm.install_complementary(self.d.getVar('SDKIMAGE_INSTALL_COMPLEMENTARY'))
-
- self.target_pm.run_intercepts(populate_sdk='target')
-
- execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_TARGET_COMMAND"))
-
- if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
- self.target_pm.remove_packaging_data()
-
- bb.note("Installing NATIVESDK packages")
- self._populate_sysroot(self.host_pm, self.host_manifest)
- self.install_locales(self.host_pm)
-
- self.host_pm.run_intercepts(populate_sdk='host')
-
- execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_HOST_COMMAND"))
-
- if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
- self.host_pm.remove_packaging_data()
-
- target_sysconfdir = os.path.join(self.sdk_target_sysroot, self.sysconfdir)
- host_sysconfdir = os.path.join(self.sdk_host_sysroot, self.sysconfdir)
-
- self.mkdirhier(target_sysconfdir)
- shutil.copy(self.target_conf, target_sysconfdir)
- os.chmod(os.path.join(target_sysconfdir,
- os.path.basename(self.target_conf)), 0o644)
-
- self.mkdirhier(host_sysconfdir)
- shutil.copy(self.host_conf, host_sysconfdir)
- os.chmod(os.path.join(host_sysconfdir,
- os.path.basename(self.host_conf)), 0o644)
-
- native_opkg_state_dir = os.path.join(self.sdk_output, self.sdk_native_path,
- self.d.getVar('localstatedir_nativesdk').strip('/'),
- "lib", "opkg")
- self.mkdirhier(native_opkg_state_dir)
- for f in glob.glob(os.path.join(self.sdk_output, "var", "lib", "opkg", "*")):
- self.movefile(f, native_opkg_state_dir)
-
- self.remove(os.path.join(self.sdk_output, "var"), True)
-
-
-class DpkgSdk(Sdk):
- def __init__(self, d, manifest_dir=None):
- super(DpkgSdk, self).__init__(d, manifest_dir)
-
- self.target_conf_dir = os.path.join(self.d.getVar("APTCONF_TARGET"), "apt")
- self.host_conf_dir = os.path.join(self.d.getVar("APTCONF_TARGET"), "apt-sdk")
-
- self.target_manifest = DpkgManifest(d, self.manifest_dir,
- Manifest.MANIFEST_TYPE_SDK_TARGET)
- self.host_manifest = DpkgManifest(d, self.manifest_dir,
- Manifest.MANIFEST_TYPE_SDK_HOST)
-
- deb_repo_workdir = "oe-sdk-repo"
- if "sdk_ext" in d.getVar("BB_RUNTASK"):
- deb_repo_workdir = "oe-sdk-ext-repo"
-
- self.target_pm = DpkgPM(d, self.sdk_target_sysroot,
- self.d.getVar("PACKAGE_ARCHS"),
- self.d.getVar("DPKG_ARCH"),
- self.target_conf_dir,
- deb_repo_workdir=deb_repo_workdir)
-
- self.host_pm = DpkgPM(d, self.sdk_host_sysroot,
- self.d.getVar("SDK_PACKAGE_ARCHS"),
- self.d.getVar("DEB_SDK_ARCH"),
- self.host_conf_dir,
- deb_repo_workdir=deb_repo_workdir)
-
- def _copy_apt_dir_to(self, dst_dir):
- staging_etcdir_native = self.d.getVar("STAGING_ETCDIR_NATIVE")
-
- self.remove(dst_dir, True)
-
- shutil.copytree(os.path.join(staging_etcdir_native, "apt"), dst_dir)
-
- def _populate_sysroot(self, pm, manifest):
- pkgs_to_install = manifest.parse_initial_manifest()
-
- pm.write_index()
- pm.update()
-
- for pkg_type in self.install_order:
- if pkg_type in pkgs_to_install:
- pm.install(pkgs_to_install[pkg_type],
- [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY])
-
- def _populate(self):
- execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_PRE_TARGET_COMMAND"))
-
- bb.note("Installing TARGET packages")
- self._populate_sysroot(self.target_pm, self.target_manifest)
-
- self.target_pm.install_complementary(self.d.getVar('SDKIMAGE_INSTALL_COMPLEMENTARY'))
-
- self.target_pm.run_intercepts(populate_sdk='target')
-
- execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_TARGET_COMMAND"))
-
- self._copy_apt_dir_to(os.path.join(self.sdk_target_sysroot, "etc", "apt"))
-
- if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
- self.target_pm.remove_packaging_data()
-
- bb.note("Installing NATIVESDK packages")
- self._populate_sysroot(self.host_pm, self.host_manifest)
- self.install_locales(self.host_pm)
-
- self.host_pm.run_intercepts(populate_sdk='host')
-
- execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_HOST_COMMAND"))
-
- self._copy_apt_dir_to(os.path.join(self.sdk_output, self.sdk_native_path,
- "etc", "apt"))
-
- if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
- self.host_pm.remove_packaging_data()
-
- native_dpkg_state_dir = os.path.join(self.sdk_output, self.sdk_native_path,
- "var", "lib", "dpkg")
- self.mkdirhier(native_dpkg_state_dir)
- for f in glob.glob(os.path.join(self.sdk_output, "var", "lib", "dpkg", "*")):
- self.movefile(f, native_dpkg_state_dir)
- self.remove(os.path.join(self.sdk_output, "var"), True)
-
-
-
def sdk_list_installed_packages(d, target, rootfs_dir=None):
if rootfs_dir is None:
sdk_output = d.getVar('SDK_OUTPUT')
@@ -394,6 +115,9 @@ def sdk_list_installed_packages(d, target, rootfs_dir=None):
rootfs_dir = [sdk_output, os.path.join(sdk_output, target_path)][target is True]
+ from oe.package_manager.rpm import RpmPkgsList
+ from oe.package_manager.ipk import OpkgPkgsList
+ from oe.package_manager.deb import DpkgPkgsList
img_type = d.getVar('IMAGE_PKGTYPE')
if img_type == "rpm":
arch_var = ["SDK_PACKAGE_ARCHS", None][target is True]
@@ -409,6 +133,9 @@ def populate_sdk(d, manifest_dir=None):
env_bkp = os.environ.copy()
img_type = d.getVar('IMAGE_PKGTYPE')
+ from oe.package_manager.rpm.sdk import RpmSdk
+ from oe.package_manager.ipk.sdk import OpkgSdk
+ from oe.package_manager.deb.sdk import DpkgSdk
if img_type == "rpm":
RpmSdk(d, manifest_dir).populate()
elif img_type == "ipk":
diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py
index 4325b66a9e..4b8f264012 100644
--- a/meta/lib/oe/sstatesig.py
+++ b/meta/lib/oe/sstatesig.py
@@ -2,9 +2,10 @@
# SPDX-License-Identifier: GPL-2.0-only
#
import bb.siggen
+import bb.runqueue
import oe
-def sstate_rundepfilter(siggen, fn, recipename, task, dep, depname, dataCache):
+def sstate_rundepfilter(siggen, fn, recipename, task, dep, depname, dataCaches):
# Return True if we should keep the dependency, False to drop it
def isNative(x):
return x.endswith("-native")
@@ -12,23 +13,26 @@ def sstate_rundepfilter(siggen, fn, recipename, task, dep, depname, dataCache):
return "-cross-" in x
def isNativeSDK(x):
return x.startswith("nativesdk-")
- def isKernel(fn):
- inherits = " ".join(dataCache.inherits[fn])
+ def isKernel(mc, fn):
+ inherits = " ".join(dataCaches[mc].inherits[fn])
return inherits.find("/module-base.bbclass") != -1 or inherits.find("/linux-kernel-base.bbclass") != -1
- def isPackageGroup(fn):
- inherits = " ".join(dataCache.inherits[fn])
+ def isPackageGroup(mc, fn):
+ inherits = " ".join(dataCaches[mc].inherits[fn])
return "/packagegroup.bbclass" in inherits
- def isAllArch(fn):
- inherits = " ".join(dataCache.inherits[fn])
+ def isAllArch(mc, fn):
+ inherits = " ".join(dataCaches[mc].inherits[fn])
return "/allarch.bbclass" in inherits
- def isImage(fn):
- return "/image.bbclass" in " ".join(dataCache.inherits[fn])
-
- # (Almost) always include our own inter-task dependencies.
- # The exception is the special do_kernel_configme->do_unpack_and_patch
- # dependency from archiver.bbclass.
- if recipename == depname:
- if task == "do_kernel_configme" and dep.endswith(".do_unpack_and_patch"):
+ def isImage(mc, fn):
+ return "/image.bbclass" in " ".join(dataCaches[mc].inherits[fn])
+
+ depmc, _, deptaskname, depmcfn = bb.runqueue.split_tid_mcfn(dep)
+ mc, _ = bb.runqueue.split_mc(fn)
+
+ # (Almost) always include our own inter-task dependencies (unless it comes
+ # from a mcdepends). The exception is the special
+ # do_kernel_configme->do_unpack_and_patch dependency from archiver.bbclass.
+ if recipename == depname and depmc == mc:
+ if task == "do_kernel_configme" and deptaskname == "do_unpack_and_patch":
return False
return True
@@ -47,11 +51,11 @@ def sstate_rundepfilter(siggen, fn, recipename, task, dep, depname, dataCache):
# Only target packages beyond here
# allarch packagegroups are assumed to have well behaved names which don't change between architecures/tunes
- if isPackageGroup(fn) and isAllArch(fn) and not isNative(depname):
+ if isPackageGroup(mc, fn) and isAllArch(mc, fn) and not isNative(depname):
return False
# Exclude well defined machine specific configurations which don't change ABI
- if depname in siggen.abisaferecipes and not isImage(fn):
+ if depname in siggen.abisaferecipes and not isImage(mc, fn):
return False
# Kernel modules are well namespaced. We don't want to depend on the kernel's checksum
@@ -59,10 +63,9 @@ def sstate_rundepfilter(siggen, fn, recipename, task, dep, depname, dataCache):
# is machine specific.
# Therefore if we're not a kernel or a module recipe (inheriting the kernel classes)
# and we reccomend a kernel-module, we exclude the dependency.
- depfn = dep.rsplit(":", 1)[0]
- if dataCache and isKernel(depfn) and not isKernel(fn):
- for pkg in dataCache.runrecs[fn]:
- if " ".join(dataCache.runrecs[fn][pkg]).find("kernel-module-") != -1:
+ if dataCaches and isKernel(depmc, depmcfn) and not isKernel(mc, fn):
+ for pkg in dataCaches[mc].runrecs[fn]:
+ if " ".join(dataCaches[mc].runrecs[fn][pkg]).find("kernel-module-") != -1:
return False
# Default to keep dependencies
@@ -87,10 +90,12 @@ class SignatureGeneratorOEBasic(bb.siggen.SignatureGeneratorBasic):
self.abisaferecipes = (data.getVar("SIGGEN_EXCLUDERECIPES_ABISAFE") or "").split()
self.saferecipedeps = (data.getVar("SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS") or "").split()
pass
- def rundep_check(self, fn, recipename, task, dep, depname, dataCache = None):
- return sstate_rundepfilter(self, fn, recipename, task, dep, depname, dataCache)
+ def rundep_check(self, fn, recipename, task, dep, depname, dataCaches = None):
+ return sstate_rundepfilter(self, fn, recipename, task, dep, depname, dataCaches)
class SignatureGeneratorOEBasicHashMixIn(object):
+ supports_multiconfig_datacaches = True
+
def init_rundepcheck(self, data):
self.abisaferecipes = (data.getVar("SIGGEN_EXCLUDERECIPES_ABISAFE") or "").split()
self.saferecipedeps = (data.getVar("SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS") or "").split()
@@ -126,8 +131,8 @@ class SignatureGeneratorOEBasicHashMixIn(object):
newsafedeps.append(a1 + "->" + a2)
self.saferecipedeps = newsafedeps
- def rundep_check(self, fn, recipename, task, dep, depname, dataCache = None):
- return sstate_rundepfilter(self, fn, recipename, task, dep, depname, dataCache)
+ def rundep_check(self, fn, recipename, task, dep, depname, dataCaches = None):
+ return sstate_rundepfilter(self, fn, recipename, task, dep, depname, dataCaches)
def get_taskdata(self):
return (self.lockedpnmap, self.lockedhashfn, self.lockedhashes) + super().get_taskdata()
@@ -142,41 +147,41 @@ class SignatureGeneratorOEBasicHashMixIn(object):
self.dump_lockedsigs(sigfile)
return super(bb.siggen.SignatureGeneratorBasicHash, self).dump_sigs(dataCache, options)
- def prep_taskhash(self, tid, deps, dataCache):
- super().prep_taskhash(tid, deps, dataCache)
+ def prep_taskhash(self, tid, deps, dataCaches):
+ super().prep_taskhash(tid, deps, dataCaches)
if hasattr(self, "extramethod"):
- (_, _, _, fn) = bb.runqueue.split_tid_mcfn(tid)
- inherits = " ".join(dataCache.inherits[fn])
+ (mc, _, _, fn) = bb.runqueue.split_tid_mcfn(tid)
+ inherits = " ".join(dataCaches[mc].inherits[fn])
if inherits.find("/native.bbclass") != -1 or inherits.find("/cross.bbclass") != -1:
self.extramethod[tid] = ":" + self.buildarch
- def get_taskhash(self, tid, deps, dataCache):
+ def get_taskhash(self, tid, deps, dataCaches):
if tid in self.lockedhashes:
if self.lockedhashes[tid]:
return self.lockedhashes[tid]
else:
- return super().get_taskhash(tid, deps, dataCache)
+ return super().get_taskhash(tid, deps, dataCaches)
- # get_taskhash will call get_unihash internally in the parent class, we
+ # get_taskhash will call get_unihash internally in the parent class, we
# need to disable our filter of it whilst this runs else
# incorrect hashes can be calculated.
self._internal = True
- h = super().get_taskhash(tid, deps, dataCache)
+ h = super().get_taskhash(tid, deps, dataCaches)
self._internal = False
(mc, _, task, fn) = bb.runqueue.split_tid_mcfn(tid)
- recipename = dataCache.pkg_fn[fn]
+ recipename = dataCaches[mc].pkg_fn[fn]
self.lockedpnmap[fn] = recipename
- self.lockedhashfn[fn] = dataCache.hashfn[fn]
+ self.lockedhashfn[fn] = dataCaches[mc].hashfn[fn]
unlocked = False
if recipename in self.unlockedrecipes:
unlocked = True
else:
def recipename_from_dep(dep):
- fn = bb.runqueue.fn_from_tid(dep)
- return dataCache.pkg_fn[fn]
+ (depmc, _, _, depfn) = bb.runqueue.split_tid_mcfn(dep)
+ return dataCaches[depmc].pkg_fn[depfn]
# If any unlocked recipe is in the direct dependencies then the
# current recipe should be unlocked as well.
@@ -477,11 +482,16 @@ def OEOuthashBasic(path, sigfile, task, d):
h = hashlib.sha256()
prev_dir = os.getcwd()
include_owners = os.environ.get('PSEUDO_DISABLED') == '0'
+ if "package_write_" in task or task == "package_qa":
+ include_owners = False
+ extra_content = d.getVar('HASHEQUIV_HASH_VERSION')
try:
os.chdir(path)
update_hash("OEOuthashBasic\n")
+ if extra_content:
+ update_hash(extra_content + "\n")
# It is only currently useful to get equivalent hashes for things that
# can be restored from sstate. Since the sstate object is named using
diff --git a/meta/lib/oe/terminal.py b/meta/lib/oe/terminal.py
index a1daa2bed6..eb10a6e33e 100644
--- a/meta/lib/oe/terminal.py
+++ b/meta/lib/oe/terminal.py
@@ -207,7 +207,10 @@ def spawn_preferred(sh_cmd, title=None, env=None, d=None):
spawn(terminal.name, sh_cmd, title, env, d)
break
except UnsupportedTerminal:
- continue
+ pass
+ except:
+ bb.warn("Terminal %s is supported but did not start" % (terminal.name))
+ # when we've run out of options
else:
raise NoSupportedTerminals(get_cmd_list())
diff --git a/meta/lib/oe/utils.py b/meta/lib/oe/utils.py
index e350b05ddf..468c76f30f 100644
--- a/meta/lib/oe/utils.py
+++ b/meta/lib/oe/utils.py
@@ -248,9 +248,9 @@ def trim_version(version, num_parts=2):
trimmed = ".".join(parts[:num_parts])
return trimmed
-def cpu_count():
- import multiprocessing
- return multiprocessing.cpu_count()
+def cpu_count(at_least=1):
+ cpus = len(os.sched_getaffinity(0))
+ return max(cpus, at_least)
def execute_pre_post_process(d, cmds):
if cmds is None:
@@ -372,6 +372,37 @@ def format_pkg_list(pkg_dict, ret_format=None):
return output_str
+
+# Helper function to get the host compiler version
+# Do not assume the compiler is gcc
+def get_host_compiler_version(d, taskcontextonly=False):
+ import re, subprocess
+
+ if taskcontextonly and d.getVar('BB_WORKERCONTEXT') != '1':
+ return
+
+ compiler = d.getVar("BUILD_CC")
+ # Get rid of ccache since it is not present when parsing.
+ if compiler.startswith('ccache '):
+ compiler = compiler[7:]
+ try:
+ env = os.environ.copy()
+ # datastore PATH does not contain session PATH as set by environment-setup-...
+ # this breaks the install-buildtools use-case
+ # env["PATH"] = d.getVar("PATH")
+ output = subprocess.check_output("%s --version" % compiler, \
+ shell=True, env=env, stderr=subprocess.STDOUT).decode("utf-8")
+ except subprocess.CalledProcessError as e:
+ bb.fatal("Error running %s --version: %s" % (compiler, e.output.decode("utf-8")))
+
+ match = re.match(r".* (\d+\.\d+)\.\d+.*", output.split('\n')[0])
+ if not match:
+ bb.fatal("Can't get compiler version from %s --version output" % compiler)
+
+ version = match.group(1)
+ return compiler, version
+
+
def host_gcc_version(d, taskcontextonly=False):
import re, subprocess
@@ -390,7 +421,7 @@ def host_gcc_version(d, taskcontextonly=False):
except subprocess.CalledProcessError as e:
bb.fatal("Error running %s --version: %s" % (compiler, e.output.decode("utf-8")))
- match = re.match(r".* (\d\.\d)\.\d.*", output.split('\n')[0])
+ match = re.match(r".* (\d+\.\d+)\.\d+.*", output.split('\n')[0])
if not match:
bb.fatal("Can't get compiler version from %s --version output" % compiler)
diff --git a/meta/lib/oeqa/core/context.py b/meta/lib/oeqa/core/context.py
index 16320af115..7d3fa3b84a 100644
--- a/meta/lib/oeqa/core/context.py
+++ b/meta/lib/oeqa/core/context.py
@@ -100,22 +100,27 @@ class OETestContextExecutor(object):
name = 'core'
help = 'core test component example'
description = 'executes core test suite example'
+ datetime = time.strftime("%Y%m%d%H%M%S")
default_cases = [os.path.join(os.path.abspath(os.path.dirname(__file__)),
'cases/example')]
default_test_data = os.path.join(default_cases[0], 'data.json')
default_tests = None
+ default_json_result_dir = None
def register_commands(self, logger, subparsers):
self.parser = subparsers.add_parser(self.name, help=self.help,
description=self.description, group='components')
- self.default_output_log = '%s-results-%s.log' % (self.name,
- time.strftime("%Y%m%d%H%M%S"))
+ self.default_output_log = '%s-results-%s.log' % (self.name, self.datetime)
self.parser.add_argument('--output-log', action='store',
default=self.default_output_log,
help="results output log, default: %s" % self.default_output_log)
+ self.parser.add_argument('--json-result-dir', action='store',
+ default=self.default_json_result_dir,
+ help="json result output dir, default: %s" % self.default_json_result_dir)
+
group = self.parser.add_mutually_exclusive_group()
group.add_argument('--run-tests', action='store', nargs='+',
default=self.default_tests,
@@ -151,6 +156,8 @@ class OETestContextExecutor(object):
fh = logging.FileHandler(args.output_log)
fh.setFormatter(formatter)
logger.addHandler(fh)
+ if getattr(args, 'verbose', False):
+ logger.setLevel('DEBUG')
return logger
@@ -178,6 +185,22 @@ class OETestContextExecutor(object):
self.module_paths = args.CASES_PATHS
+ def _get_json_result_dir(self, args):
+ return args.json_result_dir
+
+ def _get_configuration(self):
+ td = self.tc_kwargs['init']['td']
+ configuration = {'TEST_TYPE': self.name,
+ 'MACHINE': td.get("MACHINE"),
+ 'DISTRO': td.get("DISTRO"),
+ 'IMAGE_BASENAME': td.get("IMAGE_BASENAME"),
+ 'DATETIME': td.get("DATETIME")}
+ return configuration
+
+ def _get_result_id(self, configuration):
+ return '%s_%s_%s_%s' % (configuration['TEST_TYPE'], configuration['IMAGE_BASENAME'],
+ configuration['MACHINE'], self.datetime)
+
def _pre_run(self):
pass
@@ -196,7 +219,16 @@ class OETestContextExecutor(object):
else:
self._pre_run()
rc = self.tc.runTests(**self.tc_kwargs['run'])
- rc.logDetails()
+
+ json_result_dir = self._get_json_result_dir(args)
+ if json_result_dir:
+ configuration = self._get_configuration()
+ rc.logDetails(json_result_dir,
+ configuration,
+ self._get_result_id(configuration))
+ else:
+ rc.logDetails()
+
rc.logSummary(self.name)
output_link = os.path.join(os.path.dirname(args.output_log),
diff --git a/meta/lib/oeqa/core/loader.py b/meta/lib/oeqa/core/loader.py
index 0d7970d49e..11978213b8 100644
--- a/meta/lib/oeqa/core/loader.py
+++ b/meta/lib/oeqa/core/loader.py
@@ -46,7 +46,7 @@ def _built_modules_dict(modules):
for module in modules:
# Assumption: package and module names do not contain upper case
# characters, whereas class names do
- m = re.match(r'^(\w+)(?:\.(\w[^.]*)(?:\.([^.]+))?)?$', module, flags=re.ASCII)
+ m = re.match(r'^([0-9a-z_.]+)(?:\.(\w[^.]*)(?:\.([^.]+))?)?$', module, flags=re.ASCII)
if not m:
continue
diff --git a/meta/lib/oeqa/core/runner.py b/meta/lib/oeqa/core/runner.py
index f656e1a9c5..d50690ab37 100644
--- a/meta/lib/oeqa/core/runner.py
+++ b/meta/lib/oeqa/core/runner.py
@@ -182,8 +182,10 @@ class OETestResult(_TestResult):
(status, log) = self._getTestResultDetails(case)
t = ""
+ duration = 0
if case.id() in self.starttime and case.id() in self.endtime:
- t = " (" + "{0:.2f}".format(self.endtime[case.id()] - self.starttime[case.id()]) + "s)"
+ duration = self.endtime[case.id()] - self.starttime[case.id()]
+ t = " (" + "{0:.2f}".format(duration) + "s)"
if status not in logs:
logs[status] = []
@@ -191,6 +193,22 @@ class OETestResult(_TestResult):
report = {'status': status}
if log:
report['log'] = log
+ if duration:
+ report['duration'] = duration
+
+ alltags = []
+ # pull tags from the case class
+ if hasattr(case, "__oeqa_testtags"):
+ alltags.extend(getattr(case, "__oeqa_testtags"))
+ # pull tags from the method itself
+ test_name = case._testMethodName
+ if hasattr(case, test_name):
+ method = getattr(case, test_name)
+ if hasattr(method, "__oeqa_testtags"):
+ alltags.extend(getattr(method, "__oeqa_testtags"))
+ if alltags:
+ report['oetags'] = alltags
+
if dump_streams and case.id() in self.logged_output:
(stdout, stderr) = self.logged_output[case.id()]
report['stdout'] = stdout
@@ -319,10 +337,17 @@ class OETestResultJSONHelper(object):
the_file.write(file_content)
def dump_testresult_file(self, write_dir, configuration, result_id, test_result):
- bb.utils.mkdirhier(write_dir)
- lf = bb.utils.lockfile(os.path.join(write_dir, 'jsontestresult.lock'))
+ try:
+ import bb
+ has_bb = True
+ bb.utils.mkdirhier(write_dir)
+ lf = bb.utils.lockfile(os.path.join(write_dir, 'jsontestresult.lock'))
+ except ImportError:
+ has_bb = False
+ os.makedirs(write_dir, exist_ok=True)
test_results = self._get_existing_testresults_if_available(write_dir)
test_results[result_id] = {'configuration': configuration, 'result': test_result}
json_testresults = json.dumps(test_results, sort_keys=True, indent=4)
self._write_file(write_dir, self.testresult_filename, json_testresults)
- bb.utils.unlockfile(lf)
+ if has_bb:
+ bb.utils.unlockfile(lf)
diff --git a/meta/lib/oeqa/core/target/qemu.py b/meta/lib/oeqa/core/target/qemu.py
index 059106e915..0f29414df5 100644
--- a/meta/lib/oeqa/core/target/qemu.py
+++ b/meta/lib/oeqa/core/target/qemu.py
@@ -12,6 +12,7 @@ from collections import defaultdict
from .ssh import OESSHTarget
from oeqa.utils.qemurunner import QemuRunner
+from oeqa.utils.dump import TargetDumper
supported_fstypes = ['ext3', 'ext4', 'cpio.gz', 'wic']
@@ -20,7 +21,7 @@ class OEQemuTarget(OESSHTarget):
port=None, machine='', rootfs='', kernel='', kvm=False, slirp=False,
dump_dir='', dump_host_cmds='', display='', bootlog='',
tmpdir='', dir_image='', boottime=60, serial_ports=2,
- boot_patterns = defaultdict(str), **kwargs):
+ boot_patterns = defaultdict(str), ovmf=False, **kwargs):
super(OEQemuTarget, self).__init__(logger, None, server_ip, timeout,
user, port)
@@ -31,6 +32,7 @@ class OEQemuTarget(OESSHTarget):
self.rootfs = rootfs
self.kernel = kernel
self.kvm = kvm
+ self.ovmf = ovmf
self.use_slirp = slirp
self.boot_patterns = boot_patterns
@@ -39,7 +41,11 @@ class OEQemuTarget(OESSHTarget):
logfile=bootlog, boottime=boottime,
use_kvm=kvm, use_slirp=slirp, dump_dir=dump_dir,
dump_host_cmds=dump_host_cmds, logger=logger,
- serial_ports=serial_ports, boot_patterns = boot_patterns)
+ serial_ports=serial_ports, boot_patterns = boot_patterns,
+ use_ovmf=ovmf)
+ dump_target_cmds = kwargs.get("testimage_dump_target")
+ self.target_dumper = TargetDumper(dump_target_cmds, dump_dir, self.runner)
+ self.target_dumper.create_dir("qemu")
def start(self, params=None, extra_bootparams=None, runqemuparams=''):
if self.use_slirp and not self.server_ip:
diff --git a/meta/lib/oeqa/core/target/ssh.py b/meta/lib/oeqa/core/target/ssh.py
index 090b40a814..461448dbc5 100644
--- a/meta/lib/oeqa/core/target/ssh.py
+++ b/meta/lib/oeqa/core/target/ssh.py
@@ -88,6 +88,8 @@ class OESSHTarget(OETarget):
status, output = self._run(sshCmd, processTimeout, True)
self.logger.debug('Command: %s\nOutput: %s\n' % (command, output))
+ if (status == 255) and (('No route to host') in output):
+ self.target_dumper.dump_target()
return (status, output)
def copyTo(self, localSrc, remoteDst):
@@ -107,13 +109,16 @@ class OESSHTarget(OETarget):
scpCmd = self.scp + [localSrc, remotePath]
return self._run(scpCmd, ignore_status=False)
- def copyFrom(self, remoteSrc, localDst):
+ def copyFrom(self, remoteSrc, localDst, warn_on_failure=False):
"""
Copy file from target.
"""
remotePath = '%s@%s:%s' % (self.user, self.ip, remoteSrc)
scpCmd = self.scp + [remotePath, localDst]
- return self._run(scpCmd, ignore_status=False)
+ (status, output) = self._run(scpCmd, ignore_status=warn_on_failure)
+ if warn_on_failure and status:
+ self.logger.warning("Copy returned non-zero exit status %d:\n%s" % (status, output))
+ return (status, output)
def copyDirTo(self, localSrc, remoteDst):
"""
diff --git a/meta/lib/oeqa/core/utils/concurrencytest.py b/meta/lib/oeqa/core/utils/concurrencytest.py
index fac59f765a..b2eb68fb02 100644
--- a/meta/lib/oeqa/core/utils/concurrencytest.py
+++ b/meta/lib/oeqa/core/utils/concurrencytest.py
@@ -77,14 +77,17 @@ class ProxyTestResult:
# a very basic TestResult proxy, in order to modify add* calls
def __init__(self, target):
self.result = target
+ self.failed_tests = 0
def _addResult(self, method, test, *args, exception = False, **kwargs):
return method(test, *args, **kwargs)
def addError(self, test, err = None, **kwargs):
+ self.failed_tests += 1
self._addResult(self.result.addError, test, err, exception = True, **kwargs)
def addFailure(self, test, err = None, **kwargs):
+ self.failed_tests += 1
self._addResult(self.result.addFailure, test, err, exception = True, **kwargs)
def addSuccess(self, test, **kwargs):
@@ -96,6 +99,9 @@ class ProxyTestResult:
def addUnexpectedSuccess(self, test, **kwargs):
self._addResult(self.result.addUnexpectedSuccess, test, **kwargs)
+ def wasSuccessful(self):
+ return self.failed_tests == 0
+
def __getattr__(self, attr):
return getattr(self.result, attr)
@@ -177,10 +183,11 @@ class dummybuf(object):
#
class ConcurrentTestSuite(unittest.TestSuite):
- def __init__(self, suite, processes, setupfunc):
+ def __init__(self, suite, processes, setupfunc, removefunc):
super(ConcurrentTestSuite, self).__init__([suite])
self.processes = processes
self.setupfunc = setupfunc
+ self.removefunc = removefunc
def run(self, result):
tests, totaltests = fork_for_tests(self.processes, self)
@@ -231,22 +238,6 @@ class ConcurrentTestSuite(unittest.TestSuite):
finally:
queue.put(test)
-def removebuilddir(d):
- delay = 5
- while delay and os.path.exists(d + "/bitbake.lock"):
- time.sleep(1)
- delay = delay - 1
- # Deleting these directories takes a lot of time, use autobuilder
- # clobberdir if its available
- clobberdir = os.path.expanduser("~/yocto-autobuilder-helper/janitor/clobberdir")
- if os.path.exists(clobberdir):
- try:
- subprocess.check_call([clobberdir, d])
- return
- except subprocess.CalledProcessError:
- pass
- bb.utils.prunedir(d, ionice=True)
-
def fork_for_tests(concurrency_num, suite):
result = []
if 'BUILDDIR' in os.environ:
@@ -287,11 +278,11 @@ def fork_for_tests(concurrency_num, suite):
# as per default in parent code
subunit_client.buffer = True
subunit_result = AutoTimingTestResultDecorator(subunit_client)
- process_suite.run(ExtraResultsEncoderTestResult(subunit_result))
+ unittest_result = process_suite.run(ExtraResultsEncoderTestResult(subunit_result))
if ourpid != os.getpid():
os._exit(0)
- if newbuilddir:
- removebuilddir(newbuilddir)
+ if newbuilddir and unittest_result.wasSuccessful():
+ suite.removefunc(newbuilddir)
except:
# Don't do anything with process children
if ourpid != os.getpid():
@@ -307,7 +298,7 @@ def fork_for_tests(concurrency_num, suite):
sys.stderr.write(traceback.format_exc())
finally:
if newbuilddir:
- removebuilddir(newbuilddir)
+ suite.removefunc(newbuilddir)
stream.flush()
os._exit(1)
stream.flush()
diff --git a/meta/lib/oeqa/files/buildhistory_filelist1.txt b/meta/lib/oeqa/files/buildhistory_filelist1.txt
new file mode 100644
index 0000000000..8d882895ad
--- /dev/null
+++ b/meta/lib/oeqa/files/buildhistory_filelist1.txt
@@ -0,0 +1,9214 @@
+drwxr-xr-x root root 4096 ./bin
+lrwxrwxrwx root root 19 ./bin/ash -> /bin/busybox.nosuid
+lrwxrwxrwx root root 25 ./bin/base64 -> /usr/bin/base64.coreutils
+-rwxr-xr-x root root 1190872 ./bin/bash.bash
+lrwxrwxrwx root root 14 ./bin/bash -> /bin/bash.bash
+lrwxrwxrwx root root 14 ./bin/busybox -> busybox.nosuid
+-rwxr-xr-x root root 613008 ./bin/busybox.nosuid
+-rwsr-xr-x root root 59440 ./bin/busybox.suid
+lrwxrwxrwx root root 18 ./bin/cat -> /bin/cat.coreutils
+-rwxr-xr-x root root 47336 ./bin/cat.coreutils
+lrwxrwxrwx root root 21 ./bin/chattr -> /bin/chattr.e2fsprogs
+-rwxr-xr-x root root 14312 ./bin/chattr.e2fsprogs
+lrwxrwxrwx root root 20 ./bin/chgrp -> /bin/chgrp.coreutils
+-rwxr-xr-x root root 75944 ./bin/chgrp.coreutils
+lrwxrwxrwx root root 20 ./bin/chmod -> /bin/chmod.coreutils
+-rwxr-xr-x root root 71880 ./bin/chmod.coreutils
+lrwxrwxrwx root root 20 ./bin/chown -> /bin/chown.coreutils
+-rwxr-xr-x root root 80040 ./bin/chown.coreutils
+lrwxrwxrwx root root 17 ./bin/cp -> /bin/cp.coreutils
+-rwxr-xr-x root root 137416 ./bin/cp.coreutils
+lrwxrwxrwx root root 19 ./bin/cpio -> /bin/busybox.nosuid
+lrwxrwxrwx root root 19 ./bin/date -> /bin/date.coreutils
+-rwxr-xr-x root root 121032 ./bin/date.coreutils
+lrwxrwxrwx root root 17 ./bin/dd -> /bin/dd.coreutils
+-rwxr-xr-x root root 88272 ./bin/dd.coreutils
+lrwxrwxrwx root root 21 ./bin/df -> /usr/bin/df.coreutils
+lrwxrwxrwx root root 21 ./bin/dmesg -> /bin/dmesg.util-linux
+-rwxr-xr-x root root 84256 ./bin/dmesg.util-linux
+lrwxrwxrwx root root 19 ./bin/dnsdomainname -> /bin/busybox.nosuid
+lrwxrwxrwx root root 19 ./bin/dumpkmap -> /bin/busybox.nosuid
+lrwxrwxrwx root root 19 ./bin/echo -> /bin/echo.coreutils
+-rwxr-xr-x root root 39064 ./bin/echo.coreutils
+lrwxrwxrwx root root 15 ./bin/egrep -> /bin/egrep.grep
+-rwxr-xr-x root root 28 ./bin/egrep.grep
+lrwxrwxrwx root root 20 ./bin/false -> /bin/false.coreutils
+-rwxr-xr-x root root 39064 ./bin/false.coreutils
+lrwxrwxrwx root root 15 ./bin/fgrep -> /bin/fgrep.grep
+-rwxr-xr-x root root 28 ./bin/fgrep.grep
+lrwxrwxrwx root root 22 ./bin/getopt -> /bin/getopt.util-linux
+-rwxr-xr-x root root 22576 ./bin/getopt.util-linux
+lrwxrwxrwx root root 14 ./bin/grep -> /bin/grep.grep
+-rwxr-xr-x root root 244016 ./bin/grep.grep
+lrwxrwxrwx root root 19 ./bin/gunzip -> /bin/busybox.nosuid
+lrwxrwxrwx root root 19 ./bin/gzip -> /bin/busybox.nosuid
+lrwxrwxrwx root root 23 ./bin/hostname -> /bin/hostname.coreutils
+-rwxr-xr-x root root 43176 ./bin/hostname.coreutils
+lrwxrwxrwx root root 16 ./bin/kill -> /bin/kill.procps
+-rwxr-xr-x root root 47712 ./bin/kill.coreutils
+-rwxr-xr-x root root 30760 ./bin/kill.procps
+-rwxr-xr-x root root 38960 ./bin/kill.util-linux
+-rwxr-xr-x root root 141456 ./bin/kmod
+lrwxrwxrwx root root 17 ./bin/ln -> /bin/ln.coreutils
+-rwxr-xr-x root root 75984 ./bin/ln.coreutils
+lrwxrwxrwx root root 17 ./bin/login -> /bin/login.shadow
+-rwxr-xr-x root root 73120 ./bin/login.shadow
+lrwxrwxrwx root root 17 ./bin/ls -> /bin/ls.coreutils
+-rwxr-xr-x root root 162448 ./bin/ls.coreutils
+lrwxrwxrwx root root 15 ./bin/lsmod -> /bin/lsmod.kmod
+lrwxrwxrwx root root 4 ./bin/lsmod.kmod -> kmod
+lrwxrwxrwx root root 20 ./bin/mkdir -> /bin/mkdir.coreutils
+-rwxr-xr-x root root 67752 ./bin/mkdir.coreutils
+lrwxrwxrwx root root 20 ./bin/mknod -> /bin/mknod.coreutils
+-rwxr-xr-x root root 47272 ./bin/mknod.coreutils
+lrwxrwxrwx root root 25 ./bin/mktemp -> /usr/bin/mktemp.coreutils
+lrwxrwxrwx root root 20 ./bin/more -> /bin/more.util-linux
+-rwxr-xr-x root root 42976 ./bin/more.util-linux
+lrwxrwxrwx root root 21 ./bin/mount -> /bin/mount.util-linux
+lrwxrwxrwx root root 26 ./bin/mountpoint -> /bin/mountpoint.util-linux
+-rwxr-xr-x root root 14304 ./bin/mountpoint.sysvinit
+-rwxr-xr-x root root 18480 ./bin/mountpoint.util-linux
+-rwsr-xr-x root root 55344 ./bin/mount.util-linux
+lrwxrwxrwx root root 17 ./bin/mv -> /bin/mv.coreutils
+-rwxr-xr-x root root 145616 ./bin/mv.coreutils
+lrwxrwxrwx root root 19 ./bin/netstat -> /bin/busybox.nosuid
+lrwxrwxrwx root root 23 ./bin/nice -> /usr/bin/nice.coreutils
+lrwxrwxrwx root root 19 ./bin/pidof -> /bin/pidof.sysvinit
+-rwxr-xr-x root root 22568 ./bin/pidof.procps
+lrwxrwxrwx root root 14 ./bin/pidof.sysvinit -> /sbin/killall5
+lrwxrwxrwx root root 17 ./bin/ping6 -> /bin/busybox.suid
+lrwxrwxrwx root root 17 ./bin/ping -> /bin/busybox.suid
+lrwxrwxrwx root root 27 ./bin/printenv -> /usr/bin/printenv.coreutils
+lrwxrwxrwx root root 14 ./bin/ps -> /bin/ps.procps
+-rwxr-xr-x root root 137496 ./bin/ps.procps
+lrwxrwxrwx root root 18 ./bin/pwd -> /bin/pwd.coreutils
+-rwxr-xr-x root root 47272 ./bin/pwd.coreutils
+lrwxrwxrwx root root 17 ./bin/rm -> /bin/rm.coreutils
+-rwxr-xr-x root root 75976 ./bin/rm.coreutils
+lrwxrwxrwx root root 20 ./bin/rmdir -> /bin/rmdir.coreutils
+-rwxr-xr-x root root 55464 ./bin/rmdir.coreutils
+lrwxrwxrwx root root 19 ./bin/run-parts -> /bin/busybox.nosuid
+lrwxrwxrwx root root 12 ./bin/sed -> /bin/sed.sed
+-rwxr-xr-x root root 190896 ./bin/sed.sed
+lrwxrwxrwx root root 14 ./bin/sh -> /bin/bash.bash
+lrwxrwxrwx root root 20 ./bin/sleep -> /bin/sleep.coreutils
+-rwxr-xr-x root root 43176 ./bin/sleep.coreutils
+-rwxr-xr-x root root 1736 ./bin/start_getty
+lrwxrwxrwx root root 19 ./bin/stat -> /bin/stat.coreutils
+-rwxr-xr-x root root 96456 ./bin/stat.coreutils
+lrwxrwxrwx root root 19 ./bin/stty -> /bin/stty.coreutils
+-rwxr-xr-x root root 92360 ./bin/stty.coreutils
+lrwxrwxrwx root root 14 ./bin/su -> /bin/su.shadow
+-rwsr-xr-x root root 60992 ./bin/su.shadow
+lrwxrwxrwx root root 19 ./bin/sync -> /bin/sync.coreutils
+-rwxr-xr-x root root 43176 ./bin/sync.coreutils
+lrwxrwxrwx root root 19 ./bin/tar -> /bin/busybox.nosuid
+lrwxrwxrwx root root 20 ./bin/touch -> /bin/touch.coreutils
+-rwxr-xr-x root root 108744 ./bin/touch.coreutils
+lrwxrwxrwx root root 19 ./bin/true -> /bin/true.coreutils
+-rwxr-xr-x root root 39064 ./bin/true.coreutils
+lrwxrwxrwx root root 22 ./bin/umount -> /bin/umount.util-linux
+-rwsr-xr-x root root 34864 ./bin/umount.util-linux
+lrwxrwxrwx root root 20 ./bin/uname -> /bin/uname.coreutils
+-rwxr-xr-x root root 43208 ./bin/uname.coreutils
+lrwxrwxrwx root root 19 ./bin/usleep -> /bin/busybox.nosuid
+lrwxrwxrwx root root 19 ./bin/vi -> /bin/busybox.nosuid
+lrwxrwxrwx root root 17 ./bin/watch -> /bin/watch.procps
+-rwxr-xr-x root root 27016 ./bin/watch.procps
+lrwxrwxrwx root root 19 ./bin/zcat -> /bin/busybox.nosuid
+drwxr-xr-x root root 4096 ./boot
+drwxr-xr-x root root 4096 ./dev
+drwxr-xr-x root root 4096 ./etc
+-rw-r--r-- root root 45 ./etc/bash_completion
+drwxr-xr-x root root 4096 ./etc/bash_completion.d
+-rw-r--r-- root root 447 ./etc/bindresvport.blacklist
+-rw-r--r-- root root 506 ./etc/build
+-rw-r--r-- root root 2370 ./etc/busybox.links.nosuid
+-rw-r--r-- root root 91 ./etc/busybox.links.suid
+drwxr-xr-x root root 4096 ./etc/ca-certificates
+-rw-r--r-- root root 5340 ./etc/ca-certificates.conf
+drwxr-xr-x root root 4096 ./etc/ca-certificates/update.d
+drwxr-xr-x root root 4096 ./etc/dbus-1
+-rw-r--r-- root root 838 ./etc/dbus-1/session.conf
+-rw-r--r-- root root 833 ./etc/dbus-1/system.conf
+drwxr-xr-x root root 4096 ./etc/default
+-rwxr-xr-x root root 93 ./etc/default/devpts
+-rw-r--r-- root root 36 ./etc/default/mountall
+-rw-r--r-- root root 52 ./etc/default/postinst
+-rw-r--r-- root root 1040 ./etc/default/rcS
+-rw-r--r-- root root 117 ./etc/default/useradd
+drwxr-xr-x root root 4096 ./etc/default/volatiles
+-rw-r--r-- root root 1637 ./etc/default/volatiles/00_core
+-rw-r--r-- root root 36 ./etc/default/volatiles/01_bootlogd
+-rw-r--r-- root root 48 ./etc/default/volatiles/99_dbus
+drwxr-xr-x root root 4096 ./etc/depmod.d
+-rw-r--r-- root root 685 ./etc/e2scrub.conf
+drwxr-xr-x root root 4096 ./etc/fonts
+drwxr-xr-x root root 4096 ./etc/fonts/conf.d
+lrwxrwxrwx root root 63 ./etc/fonts/conf.d/10-hinting-slight.conf -> ../../../usr/share/fontconfig/conf.avail/10-hinting-slight.conf
+lrwxrwxrwx root root 67 ./etc/fonts/conf.d/10-scale-bitmap-fonts.conf -> ../../../usr/share/fontconfig/conf.avail/10-scale-bitmap-fonts.conf
+lrwxrwxrwx root root 66 ./etc/fonts/conf.d/20-unhint-small-vera.conf -> ../../../usr/share/fontconfig/conf.avail/20-unhint-small-vera.conf
+lrwxrwxrwx root root 63 ./etc/fonts/conf.d/30-metric-aliases.conf -> ../../../usr/share/fontconfig/conf.avail/30-metric-aliases.conf
+lrwxrwxrwx root root 57 ./etc/fonts/conf.d/40-nonlatin.conf -> ../../../usr/share/fontconfig/conf.avail/40-nonlatin.conf
+lrwxrwxrwx root root 56 ./etc/fonts/conf.d/45-generic.conf -> ../../../usr/share/fontconfig/conf.avail/45-generic.conf
+lrwxrwxrwx root root 54 ./etc/fonts/conf.d/45-latin.conf -> ../../../usr/share/fontconfig/conf.avail/45-latin.conf
+lrwxrwxrwx root root 58 ./etc/fonts/conf.d/49-sansserif.conf -> ../../../usr/share/fontconfig/conf.avail/49-sansserif.conf
+lrwxrwxrwx root root 53 ./etc/fonts/conf.d/50-user.conf -> ../../../usr/share/fontconfig/conf.avail/50-user.conf
+lrwxrwxrwx root root 54 ./etc/fonts/conf.d/51-local.conf -> ../../../usr/share/fontconfig/conf.avail/51-local.conf
+lrwxrwxrwx root root 56 ./etc/fonts/conf.d/60-generic.conf -> ../../../usr/share/fontconfig/conf.avail/60-generic.conf
+lrwxrwxrwx root root 54 ./etc/fonts/conf.d/60-latin.conf -> ../../../usr/share/fontconfig/conf.avail/60-latin.conf
+lrwxrwxrwx root root 62 ./etc/fonts/conf.d/65-fonts-persian.conf -> ../../../usr/share/fontconfig/conf.avail/65-fonts-persian.conf
+lrwxrwxrwx root root 57 ./etc/fonts/conf.d/65-nonlatin.conf -> ../../../usr/share/fontconfig/conf.avail/65-nonlatin.conf
+lrwxrwxrwx root root 56 ./etc/fonts/conf.d/69-unifont.conf -> ../../../usr/share/fontconfig/conf.avail/69-unifont.conf
+lrwxrwxrwx root root 58 ./etc/fonts/conf.d/80-delicious.conf -> ../../../usr/share/fontconfig/conf.avail/80-delicious.conf
+lrwxrwxrwx root root 58 ./etc/fonts/conf.d/90-synthetic.conf -> ../../../usr/share/fontconfig/conf.avail/90-synthetic.conf
+-rw-r--r-- root root 978 ./etc/fonts/conf.d/README
+-rw-r--r-- root root 2532 ./etc/fonts/fonts.conf
+-rw-r--r-- root root 650 ./etc/fstab
+-rw-r--r-- root root 501 ./etc/group
+-r-------- root root 420 ./etc/gshadow
+-rw-r--r-- root root 26 ./etc/host.conf
+-rw-r--r-- root root 11 ./etc/hostname
+-rw-r--r-- root root 258 ./etc/hosts
+drwxr-xr-x root root 4096 ./etc/init.d
+-rwxr-xr-x root root 492 ./etc/init.d/banner.sh
+-rwxr-xr-x root root 1997 ./etc/init.d/bootlogd
+-rwxr-xr-x root root 2017 ./etc/init.d/bootmisc.sh
+-rwxr-xr-x root root 3591 ./etc/init.d/checkroot.sh
+-rwxr-xr-x root root 2893 ./etc/init.d/dbus-1
+-rwxr-xr-x root root 526 ./etc/init.d/devpts.sh
+-rwxr-xr-x root root 352 ./etc/init.d/dmesg.sh
+-rw-r--r-- root root 2141 ./etc/init.d/functions
+-rwxr-xr-x root root 510 ./etc/init.d/halt
+-rwxr-xr-x root root 580 ./etc/init.d/hostname.sh
+-rwxr-xr-x root root 2541 ./etc/init.d/hwclock.sh
+-rwxr-xr-x root root 1773 ./etc/init.d/mdmonitor
+-rwxr-xr-x root root 1223 ./etc/init.d/modutils.sh
+-rwxr-xr-x root root 869 ./etc/init.d/mountall.sh
+-rwxr-xr-x root root 1589 ./etc/init.d/mountnfs.sh
+-rwxr-xr-x root root 1956 ./etc/init.d/networking
+-rwxr-xr-x root root 7823 ./etc/init.d/populate-volatile.sh
+-rwxr-xr-x root root 4457 ./etc/init.d/rc
+-rwxr-xr-x root root 525 ./etc/init.d/rcS
+-rwxr-xr-x root root 1273 ./etc/init.d/read-only-rootfs-hook.sh
+-rwxr-xr-x root root 289 ./etc/init.d/reboot
+-rwxr-xr-x root root 585 ./etc/init.d/rmnologin.sh
+-rwxr-xr-x root root 25 ./etc/init.d/run-postinsts
+-rwxr-xr-x root root 429 ./etc/init.d/save-rtc.sh
+-rwxr-xr-x root root 438 ./etc/init.d/sendsigs
+-rwxr-xr-x root root 578 ./etc/init.d/single
+lrwxrwxrwx root root 8 ./etc/init.d/stop-bootlogd -> bootlogd
+-rwxr-xr-x root root 1046 ./etc/init.d/sysfs.sh
+-rwxr-xr-x root root 2066 ./etc/init.d/syslog
+-rwxr-xr-x root root 2779 ./etc/init.d/udev
+-rwxr-xr-x root root 540 ./etc/init.d/umountfs
+-rwxr-xr-x root root 711 ./etc/init.d/umountnfs.sh
+-rwxr-xr-x root root 1473 ./etc/init.d/urandom
+-rw-r--r-- root root 1140 ./etc/inittab
+-rw-r--r-- root root 1633 ./etc/inputrc
+drwxr-xr-x root root 4096 ./etc/iproute2
+-rw-r--r-- root root 85 ./etc/iproute2/bpf_pinning
+-rw-r--r-- root root 81 ./etc/iproute2/ematch_map
+-rw-r--r-- root root 31 ./etc/iproute2/group
+-rw-r--r-- root root 262 ./etc/iproute2/nl_protos
+-rw-r--r-- root root 331 ./etc/iproute2/rt_dsfield
+-rw-r--r-- root root 201 ./etc/iproute2/rt_protos
+-rw-r--r-- root root 112 ./etc/iproute2/rt_realms
+-rw-r--r-- root root 92 ./etc/iproute2/rt_scopes
+-rw-r--r-- root root 87 ./etc/iproute2/rt_tables
+drwxr-xr-x root root 4096 ./etc/iptables
+-rw-r--r-- root root 0 ./etc/iptables/ip6tables.rules
+-rw-r--r-- root root 0 ./etc/iptables/iptables.rules
+-rw-r--r-- root root 58 ./etc/issue
+-rw-r--r-- root root 55 ./etc/issue.net
+-rw-r--r-- root root 18635 ./etc/ld.so.cache
+-rw-r--r-- root root 33 ./etc/ld.so.conf
+-rw-r--r-- root root 827 ./etc/limits
+-rw-r--r-- root root 2006 ./etc/login.access
+-rw-r--r-- root root 12001 ./etc/login.defs
+-rw-r--r-- root root 121 ./etc/logrotate-dmesg.conf
+-rw-r--r-- root root 2687 ./etc/mdadm.conf
+-rw-r--r-- root root 812 ./etc/mke2fs.conf
+drwxr-xr-x root root 4096 ./etc/modprobe.d
+-rw-r--r-- root root 0 ./etc/motd
+lrwxrwxrwx root root 12 ./etc/mtab -> /proc/mounts
+-rw-r--r-- root root 767 ./etc/netconfig
+drwxr-xr-x root root 4096 ./etc/network
+drwxr-xr-x root root 4096 ./etc/network/if-down.d
+drwxr-xr-x root root 4096 ./etc/network/if-post-down.d
+drwxr-xr-x root root 4096 ./etc/network/if-pre-up.d
+-rwxr-xr-x root root 809 ./etc/network/if-pre-up.d/nfsroot
+drwxr-xr-x root root 4096 ./etc/network/if-up.d
+-rw-r--r-- root root 132 ./etc/network/interfaces
+-rw-r--r-- root root 0 ./etc/network/nm-disabled-eth0
+-rw-r--r-- root root 465 ./etc/nsswitch.conf
+-rw-r--r-- root root 767 ./etc/passwd
+-rw-r--r-- root root 984 ./etc/profile
+drwxr-xr-x root root 4096 ./etc/profile.d
+-rw-r--r-- root root 729 ./etc/profile.d/bash_completion.sh
+-rw-r--r-- root root 1107 ./etc/profile.d/gawk.csh
+-rw-r--r-- root root 757 ./etc/profile.d/gawk.sh
+-rw-r--r-- root root 2932 ./etc/protocols
+drwxr-xr-x root root 4096 ./etc/rc0.d
+lrwxrwxrwx root root 16 ./etc/rc0.d/K20dbus-1 -> ../init.d/dbus-1
+lrwxrwxrwx root root 20 ./etc/rc0.d/K20hwclock.sh -> ../init.d/hwclock.sh
+lrwxrwxrwx root root 16 ./etc/rc0.d/K20syslog -> ../init.d/syslog
+lrwxrwxrwx root root 20 ./etc/rc0.d/K80networking -> ../init.d/networking
+lrwxrwxrwx root root 18 ./etc/rc0.d/S20sendsigs -> ../init.d/sendsigs
+lrwxrwxrwx root root 21 ./etc/rc0.d/S25save-rtc.sh -> ../init.d/save-rtc.sh
+lrwxrwxrwx root root 22 ./etc/rc0.d/S31umountnfs.sh -> ../init.d/umountnfs.sh
+lrwxrwxrwx root root 17 ./etc/rc0.d/S38urandom -> ../init.d/urandom
+lrwxrwxrwx root root 18 ./etc/rc0.d/S40umountfs -> ../init.d/umountfs
+lrwxrwxrwx root root 14 ./etc/rc0.d/S90halt -> ../init.d/halt
+drwxr-xr-x root root 4096 ./etc/rc1.d
+lrwxrwxrwx root root 16 ./etc/rc1.d/K20dbus-1 -> ../init.d/dbus-1
+lrwxrwxrwx root root 20 ./etc/rc1.d/K20hwclock.sh -> ../init.d/hwclock.sh
+lrwxrwxrwx root root 16 ./etc/rc1.d/K20syslog -> ../init.d/syslog
+lrwxrwxrwx root root 20 ./etc/rc1.d/K80networking -> ../init.d/networking
+lrwxrwxrwx root root 22 ./etc/rc1.d/S31umountnfs.sh -> ../init.d/umountnfs.sh
+drwxr-xr-x root root 4096 ./etc/rc2.d
+lrwxrwxrwx root root 20 ./etc/rc2.d/S01networking -> ../init.d/networking
+lrwxrwxrwx root root 16 ./etc/rc2.d/S02dbus-1 -> ../init.d/dbus-1
+lrwxrwxrwx root root 21 ./etc/rc2.d/S15mountnfs.sh -> ../init.d/mountnfs.sh
+lrwxrwxrwx root root 20 ./etc/rc2.d/S20hwclock.sh -> ../init.d/hwclock.sh
+lrwxrwxrwx root root 16 ./etc/rc2.d/S20syslog -> ../init.d/syslog
+lrwxrwxrwx root root 22 ./etc/rc2.d/S99rmnologin.sh -> ../init.d/rmnologin.sh
+lrwxrwxrwx root root 23 ./etc/rc2.d/S99stop-bootlogd -> ../init.d/stop-bootlogd
+drwxr-xr-x root root 4096 ./etc/rc3.d
+lrwxrwxrwx root root 20 ./etc/rc3.d/S01networking -> ../init.d/networking
+lrwxrwxrwx root root 16 ./etc/rc3.d/S02dbus-1 -> ../init.d/dbus-1
+lrwxrwxrwx root root 21 ./etc/rc3.d/S15mountnfs.sh -> ../init.d/mountnfs.sh
+lrwxrwxrwx root root 20 ./etc/rc3.d/S20hwclock.sh -> ../init.d/hwclock.sh
+lrwxrwxrwx root root 16 ./etc/rc3.d/S20syslog -> ../init.d/syslog
+lrwxrwxrwx root root 22 ./etc/rc3.d/S99rmnologin.sh -> ../init.d/rmnologin.sh
+lrwxrwxrwx root root 23 ./etc/rc3.d/S99stop-bootlogd -> ../init.d/stop-bootlogd
+drwxr-xr-x root root 4096 ./etc/rc4.d
+lrwxrwxrwx root root 20 ./etc/rc4.d/S01networking -> ../init.d/networking
+lrwxrwxrwx root root 21 ./etc/rc4.d/S15mountnfs.sh -> ../init.d/mountnfs.sh
+lrwxrwxrwx root root 20 ./etc/rc4.d/S20hwclock.sh -> ../init.d/hwclock.sh
+lrwxrwxrwx root root 16 ./etc/rc4.d/S20syslog -> ../init.d/syslog
+lrwxrwxrwx root root 22 ./etc/rc4.d/S99rmnologin.sh -> ../init.d/rmnologin.sh
+lrwxrwxrwx root root 23 ./etc/rc4.d/S99stop-bootlogd -> ../init.d/stop-bootlogd
+drwxr-xr-x root root 4096 ./etc/rc5.d
+lrwxrwxrwx root root 20 ./etc/rc5.d/S01networking -> ../init.d/networking
+lrwxrwxrwx root root 16 ./etc/rc5.d/S02dbus-1 -> ../init.d/dbus-1
+lrwxrwxrwx root root 21 ./etc/rc5.d/S15mountnfs.sh -> ../init.d/mountnfs.sh
+lrwxrwxrwx root root 20 ./etc/rc5.d/S20hwclock.sh -> ../init.d/hwclock.sh
+lrwxrwxrwx root root 16 ./etc/rc5.d/S20syslog -> ../init.d/syslog
+lrwxrwxrwx root root 22 ./etc/rc5.d/S99rmnologin.sh -> ../init.d/rmnologin.sh
+lrwxrwxrwx root root 23 ./etc/rc5.d/S99stop-bootlogd -> ../init.d/stop-bootlogd
+drwxr-xr-x root root 4096 ./etc/rc6.d
+lrwxrwxrwx root root 16 ./etc/rc6.d/K20dbus-1 -> ../init.d/dbus-1
+lrwxrwxrwx root root 20 ./etc/rc6.d/K20hwclock.sh -> ../init.d/hwclock.sh
+lrwxrwxrwx root root 16 ./etc/rc6.d/K20syslog -> ../init.d/syslog
+lrwxrwxrwx root root 20 ./etc/rc6.d/K80networking -> ../init.d/networking
+lrwxrwxrwx root root 18 ./etc/rc6.d/S20sendsigs -> ../init.d/sendsigs
+lrwxrwxrwx root root 21 ./etc/rc6.d/S25save-rtc.sh -> ../init.d/save-rtc.sh
+lrwxrwxrwx root root 22 ./etc/rc6.d/S31umountnfs.sh -> ../init.d/umountnfs.sh
+lrwxrwxrwx root root 17 ./etc/rc6.d/S38urandom -> ../init.d/urandom
+lrwxrwxrwx root root 18 ./etc/rc6.d/S40umountfs -> ../init.d/umountfs
+lrwxrwxrwx root root 16 ./etc/rc6.d/S90reboot -> ../init.d/reboot
+drwxr-xr-x root root 4096 ./etc/rcS.d
+lrwxrwxrwx root root 19 ./etc/rcS.d/S02banner.sh -> ../init.d/banner.sh
+lrwxrwxrwx root root 18 ./etc/rcS.d/S02sysfs.sh -> ../init.d/sysfs.sh
+lrwxrwxrwx root root 21 ./etc/rcS.d/S03mountall.sh -> ../init.d/mountall.sh
+lrwxrwxrwx root root 14 ./etc/rcS.d/S04udev -> ../init.d/udev
+lrwxrwxrwx root root 21 ./etc/rcS.d/S05modutils.sh -> ../init.d/modutils.sh
+lrwxrwxrwx root root 22 ./etc/rcS.d/S06checkroot.sh -> ../init.d/checkroot.sh
+lrwxrwxrwx root root 19 ./etc/rcS.d/S06devpts.sh -> ../init.d/devpts.sh
+lrwxrwxrwx root root 18 ./etc/rcS.d/S07bootlogd -> ../init.d/bootlogd
+lrwxrwxrwx root root 34 ./etc/rcS.d/S29read-only-rootfs-hook.sh -> ../init.d/read-only-rootfs-hook.sh
+lrwxrwxrwx root root 21 ./etc/rcS.d/S36bootmisc.sh -> ../init.d/bootmisc.sh
+lrwxrwxrwx root root 30 ./etc/rcS.d/S37populate-volatile.sh -> ../init.d/populate-volatile.sh
+lrwxrwxrwx root root 18 ./etc/rcS.d/S38dmesg.sh -> ../init.d/dmesg.sh
+lrwxrwxrwx root root 17 ./etc/rcS.d/S38urandom -> ../init.d/urandom
+lrwxrwxrwx root root 21 ./etc/rcS.d/S39hostname.sh -> ../init.d/hostname.sh
+-rw-r--r-- root root 887 ./etc/rpc
+-r-------- root root 1848 ./etc/securetty
+-rw-r--r-- root root 14464 ./etc/services
+-r-------- root root 404 ./etc/shadow
+-rw-r--r-- root root 52 ./etc/shells
+drwxr-xr-x root root 4096 ./etc/skel
+-rwxr-xr-x root root 410 ./etc/skel/.bashrc
+-rwxr-xr-x root root 241 ./etc/skel/.profile
+drwxr-xr-x root root 4096 ./etc/ssl
+drwxr-xr-x root root 16384 ./etc/ssl/certs
+lrwxrwxrwx root root 45 ./etc/ssl/certs/02265526.0 -> Entrust_Root_Certification_Authority_-_G2.pem
+lrwxrwxrwx root root 36 ./etc/ssl/certs/03179a64.0 -> Staat_der_Nederlanden_EV_Root_CA.pem
+lrwxrwxrwx root root 27 ./etc/ssl/certs/062cdee6.0 -> GlobalSign_Root_CA_-_R3.pem
+lrwxrwxrwx root root 25 ./etc/ssl/certs/064e0aa9.0 -> QuoVadis_Root_CA_2_G3.pem
+lrwxrwxrwx root root 50 ./etc/ssl/certs/06dc52d5.0 -> SSL.com_EV_Root_Certification_Authority_RSA_R2.pem
+lrwxrwxrwx root root 20 ./etc/ssl/certs/080911ac.0 -> QuoVadis_Root_CA.pem
+lrwxrwxrwx root root 54 ./etc/ssl/certs/09789157.0 -> Starfield_Services_Root_Certificate_Authority_-_G2.pem
+lrwxrwxrwx root root 16 ./etc/ssl/certs/0b1b94ef.0 -> CFCA_EV_ROOT.pem
+lrwxrwxrwx root root 44 ./etc/ssl/certs/0bf05006.0 -> SSL.com_Root_Certification_Authority_ECC.pem
+lrwxrwxrwx root root 34 ./etc/ssl/certs/0c4c9b6c.0 -> Global_Chambersign_Root_-_2008.pem
+lrwxrwxrwx root root 26 ./etc/ssl/certs/0f6fa695.0 -> GDCA_TrustAUTH_R5_ROOT.pem
+lrwxrwxrwx root root 46 ./etc/ssl/certs/106f3e4d.0 -> Entrust_Root_Certification_Authority_-_EC1.pem
+lrwxrwxrwx root root 49 ./etc/ssl/certs/116bf586.0 -> GeoTrust_Primary_Certification_Authority_-_G2.pem
+lrwxrwxrwx root root 35 ./etc/ssl/certs/128805a3.0 -> EE_Certification_Centre_Root_CA.pem
+lrwxrwxrwx root root 26 ./etc/ssl/certs/157753a5.0 -> AddTrust_External_Root.pem
+lrwxrwxrwx root root 59 ./etc/ssl/certs/1636090b.0 -> Hellenic_Academic_and_Research_Institutions_RootCA_2011.pem
+lrwxrwxrwx root root 23 ./etc/ssl/certs/18856ac4.0 -> SecureSign_RootCA11.pem
+lrwxrwxrwx root root 31 ./etc/ssl/certs/1d3472b9.0 -> GlobalSign_ECC_Root_CA_-_R5.pem
+lrwxrwxrwx root root 37 ./etc/ssl/certs/1e08bfd1.0 -> IdenTrust_Public_Sector_Root_CA_1.pem
+lrwxrwxrwx root root 32 ./etc/ssl/certs/1e09d511.0 -> T-TeleSec_GlobalRoot_Class_2.pem
+lrwxrwxrwx root root 38 ./etc/ssl/certs/244b5494.0 -> DigiCert_High_Assurance_EV_Root_CA.pem
+lrwxrwxrwx root root 20 ./etc/ssl/certs/2ae6433e.0 -> CA_Disig_Root_R2.pem
+lrwxrwxrwx root root 26 ./etc/ssl/certs/2b349938.0 -> AffirmTrust_Commercial.pem
+lrwxrwxrwx root root 22 ./etc/ssl/certs/2c543cd1.0 -> GeoTrust_Global_CA.pem
+lrwxrwxrwx root root 26 ./etc/ssl/certs/2e4eed3c.0 -> thawte_Primary_Root_CA.pem
+lrwxrwxrwx root root 18 ./etc/ssl/certs/2e5ac55d.0 -> DST_Root_CA_X3.pem
+lrwxrwxrwx root root 59 ./etc/ssl/certs/32888f65.0 -> Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem
+lrwxrwxrwx root root 10 ./etc/ssl/certs/349f2832.0 -> EC-ACC.pem
+lrwxrwxrwx root root 27 ./etc/ssl/certs/3513523f.0 -> DigiCert_Global_Root_CA.pem
+lrwxrwxrwx root root 61 ./etc/ssl/certs/3bde41ac.0 -> Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem
+lrwxrwxrwx root root 26 ./etc/ssl/certs/3e44d2f7.0 -> TrustCor_RootCert_CA-2.pem
+lrwxrwxrwx root root 27 ./etc/ssl/certs/3e45d192.0 -> Hongkong_Post_Root_CA_1.pem
+lrwxrwxrwx root root 31 ./etc/ssl/certs/40193066.0 -> Certum_Trusted_Network_CA_2.pem
+lrwxrwxrwx root root 16 ./etc/ssl/certs/4042bcee.0 -> ISRG_Root_X1.pem
+lrwxrwxrwx root root 34 ./etc/ssl/certs/40547a79.0 -> COMODO_Certification_Authority.pem
+lrwxrwxrwx root root 43 ./etc/ssl/certs/4304c5e5.0 -> Network_Solutions_Certificate_Authority.pem
+lrwxrwxrwx root root 44 ./etc/ssl/certs/480720ec.0 -> GeoTrust_Primary_Certification_Authority.pem
+lrwxrwxrwx root root 29 ./etc/ssl/certs/48bec511.0 -> Certum_Trusted_Network_CA.pem
+lrwxrwxrwx root root 27 ./etc/ssl/certs/4a6481c9.0 -> GlobalSign_Root_CA_-_R2.pem
+lrwxrwxrwx root root 45 ./etc/ssl/certs/4bfab552.0 -> Starfield_Root_Certificate_Authority_-_G2.pem
+lrwxrwxrwx root root 26 ./etc/ssl/certs/4f316efb.0 -> SwissSign_Gold_CA_-_G2.pem
+lrwxrwxrwx root root 35 ./etc/ssl/certs/5273a94c.0 -> E-Tugra_Certification_Authority.pem
+lrwxrwxrwx root root 32 ./etc/ssl/certs/5443e9e3.0 -> T-TeleSec_GlobalRoot_Class_3.pem
+lrwxrwxrwx root root 27 ./etc/ssl/certs/54657681.0 -> Buypass_Class_2_Root_CA.pem
+lrwxrwxrwx root root 28 ./etc/ssl/certs/57bcb2da.0 -> SwissSign_Silver_CA_-_G2.pem
+lrwxrwxrwx root root 38 ./etc/ssl/certs/5a4d6896.0 -> Staat_der_Nederlanden_Root_CA_-_G3.pem
+lrwxrwxrwx root root 22 ./etc/ssl/certs/5ad8a5d6.0 -> GlobalSign_Root_CA.pem
+lrwxrwxrwx root root 38 ./etc/ssl/certs/5c44d531.0 -> Staat_der_Nederlanden_Root_CA_-_G2.pem
+lrwxrwxrwx root root 26 ./etc/ssl/certs/5cd81ad7.0 -> TeliaSonera_Root_CA_v1.pem
+lrwxrwxrwx root root 26 ./etc/ssl/certs/5d3033c5.0 -> TrustCor_RootCert_CA-1.pem
+lrwxrwxrwx root root 23 ./etc/ssl/certs/5f15c80c.0 -> TWCA_Global_Root_CA.pem
+lrwxrwxrwx root root 27 ./etc/ssl/certs/607986c7.0 -> DigiCert_Global_Root_G2.pem
+lrwxrwxrwx root root 15 ./etc/ssl/certs/6410666e.0 -> Taiwan_GRCA.pem
+lrwxrwxrwx root root 29 ./etc/ssl/certs/653b494a.0 -> Baltimore_CyberTrust_Root.pem
+lrwxrwxrwx root root 40 ./etc/ssl/certs/6b99d060.0 -> Entrust_Root_Certification_Authority.pem
+lrwxrwxrwx root root 20 ./etc/ssl/certs/6d41d539.0 -> Amazon_Root_CA_2.pem
+lrwxrwxrwx root root 44 ./etc/ssl/certs/6fa5da56.0 -> SSL.com_Root_Certification_Authority_RSA.pem
+lrwxrwxrwx root root 24 ./etc/ssl/certs/706f604c.0 -> XRamp_Global_CA_Root.pem
+lrwxrwxrwx root root 25 ./etc/ssl/certs/749e9e03.0 -> QuoVadis_Root_CA_1_G3.pem
+lrwxrwxrwx root root 28 ./etc/ssl/certs/75d1b2ed.0 -> DigiCert_Trusted_Root_G4.pem
+lrwxrwxrwx root root 26 ./etc/ssl/certs/76cb8f92.0 -> Cybertrust_Global_Root.pem
+lrwxrwxrwx root root 22 ./etc/ssl/certs/76faf6c0.0 -> QuoVadis_Root_CA_3.pem
+lrwxrwxrwx root root 63 ./etc/ssl/certs/7719f463.0 -> Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem
+lrwxrwxrwx root root 35 ./etc/ssl/certs/773e07ad.0 -> OISTE_WISeKey_Global_Root_GC_CA.pem
+lrwxrwxrwx root root 18 ./etc/ssl/certs/7aaf71c0.0 -> TrustCor_ECA-1.pem
+lrwxrwxrwx root root 64 ./etc/ssl/certs/7d0b38bd.0 -> VeriSign_Class_3_Public_Primary_Certification_Authority_-_G4.pem
+lrwxrwxrwx root root 31 ./etc/ssl/certs/7f3d5d1d.0 -> DigiCert_Assured_ID_Root_G3.pem
+lrwxrwxrwx root root 30 ./etc/ssl/certs/812e17de.0 -> Deutsche_Telekom_Root_CA_2.pem
+lrwxrwxrwx root root 34 ./etc/ssl/certs/8160b96c.0 -> Microsec_e-Szigno_Root_CA_2009.pem
+lrwxrwxrwx root root 27 ./etc/ssl/certs/8867006a.0 -> GeoTrust_Universal_CA_2.pem
+lrwxrwxrwx root root 20 ./etc/ssl/certs/8cb5ee0f.0 -> Amazon_Root_CA_3.pem
+lrwxrwxrwx root root 20 ./etc/ssl/certs/8d86cdd1.0 -> certSIGN_ROOT_CA.pem
+lrwxrwxrwx root root 34 ./etc/ssl/certs/930ac5d2.0 -> Actalis_Authentication_Root_CA.pem
+lrwxrwxrwx root root 26 ./etc/ssl/certs/93bc0acc.0 -> AffirmTrust_Networking.pem
+lrwxrwxrwx root root 48 ./etc/ssl/certs/988a38cb.0 -> NetLock_Arany_=Class_Gold=_Főtanúsítvány.pem
+lrwxrwxrwx root root 26 ./etc/ssl/certs/9c2e7d30.0 -> Sonera_Class_2_Root_CA.pem
+lrwxrwxrwx root root 27 ./etc/ssl/certs/9c8dfbd4.0 -> AffirmTrust_Premium_ECC.pem
+lrwxrwxrwx root root 31 ./etc/ssl/certs/9d04f354.0 -> DigiCert_Assured_ID_Root_G2.pem
+lrwxrwxrwx root root 24 ./etc/ssl/certs/9f0f5fd6.0 -> Certinomis_-_Root_CA.pem
+lrwxrwxrwx root root 13 ./etc/ssl/certs/a94d09e5.0 -> ACCVRAIZ1.pem
+lrwxrwxrwx root root 56 ./etc/ssl/certs/ACCVRAIZ1.pem -> ../../../usr/share/ca-certificates/mozilla/ACCVRAIZ1.crt
+lrwxrwxrwx root root 63 ./etc/ssl/certs/AC_RAIZ_FNMT-RCM.pem -> ../../../usr/share/ca-certificates/mozilla/AC_RAIZ_FNMT-RCM.crt
+lrwxrwxrwx root root 77 ./etc/ssl/certs/Actalis_Authentication_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Actalis_Authentication_Root_CA.crt
+lrwxrwxrwx root root 25 ./etc/ssl/certs/ad088e1d.0 -> GeoTrust_Universal_CA.pem
+lrwxrwxrwx root root 69 ./etc/ssl/certs/AddTrust_External_Root.pem -> ../../../usr/share/ca-certificates/mozilla/AddTrust_External_Root.crt
+lrwxrwxrwx root root 45 ./etc/ssl/certs/aee5f10d.0 -> Entrust.net_Premium_2048_Secure_Server_CA.pem
+lrwxrwxrwx root root 69 ./etc/ssl/certs/AffirmTrust_Commercial.pem -> ../../../usr/share/ca-certificates/mozilla/AffirmTrust_Commercial.crt
+lrwxrwxrwx root root 69 ./etc/ssl/certs/AffirmTrust_Networking.pem -> ../../../usr/share/ca-certificates/mozilla/AffirmTrust_Networking.crt
+lrwxrwxrwx root root 70 ./etc/ssl/certs/AffirmTrust_Premium_ECC.pem -> ../../../usr/share/ca-certificates/mozilla/AffirmTrust_Premium_ECC.crt
+lrwxrwxrwx root root 66 ./etc/ssl/certs/AffirmTrust_Premium.pem -> ../../../usr/share/ca-certificates/mozilla/AffirmTrust_Premium.crt
+lrwxrwxrwx root root 63 ./etc/ssl/certs/Amazon_Root_CA_1.pem -> ../../../usr/share/ca-certificates/mozilla/Amazon_Root_CA_1.crt
+lrwxrwxrwx root root 63 ./etc/ssl/certs/Amazon_Root_CA_2.pem -> ../../../usr/share/ca-certificates/mozilla/Amazon_Root_CA_2.crt
+lrwxrwxrwx root root 63 ./etc/ssl/certs/Amazon_Root_CA_3.pem -> ../../../usr/share/ca-certificates/mozilla/Amazon_Root_CA_3.crt
+lrwxrwxrwx root root 63 ./etc/ssl/certs/Amazon_Root_CA_4.pem -> ../../../usr/share/ca-certificates/mozilla/Amazon_Root_CA_4.crt
+lrwxrwxrwx root root 68 ./etc/ssl/certs/Atos_TrustedRoot_2011.pem -> ../../../usr/share/ca-certificates/mozilla/Atos_TrustedRoot_2011.crt
+lrwxrwxrwx root root 104 ./etc/ssl/certs/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem -> ../../../usr/share/ca-certificates/mozilla/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.crt
+lrwxrwxrwx root root 31 ./etc/ssl/certs/b0e59380.0 -> GlobalSign_ECC_Root_CA_-_R4.pem
+lrwxrwxrwx root root 31 ./etc/ssl/certs/b1159c4c.0 -> DigiCert_Assured_ID_Root_CA.pem
+lrwxrwxrwx root root 35 ./etc/ssl/certs/b1b8a7f3.0 -> OISTE_WISeKey_Global_Root_GA_CA.pem
+lrwxrwxrwx root root 64 ./etc/ssl/certs/b204d74a.0 -> VeriSign_Class_3_Public_Primary_Certification_Authority_-_G5.pem
+lrwxrwxrwx root root 20 ./etc/ssl/certs/b66938e9.0 -> Secure_Global_CA.pem
+lrwxrwxrwx root root 23 ./etc/ssl/certs/b727005e.0 -> AffirmTrust_Premium.pem
+lrwxrwxrwx root root 37 ./etc/ssl/certs/b7a5b843.0 -> TWCA_Root_Certification_Authority.pem
+lrwxrwxrwx root root 31 ./etc/ssl/certs/ba89ed3b.0 -> thawte_Primary_Root_CA_-_G3.pem
+lrwxrwxrwx root root 72 ./etc/ssl/certs/Baltimore_CyberTrust_Root.pem -> ../../../usr/share/ca-certificates/mozilla/Baltimore_CyberTrust_Root.crt
+lrwxrwxrwx root root 70 ./etc/ssl/certs/Buypass_Class_2_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Buypass_Class_2_Root_CA.crt
+lrwxrwxrwx root root 70 ./etc/ssl/certs/Buypass_Class_3_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Buypass_Class_3_Root_CA.crt
+lrwxrwxrwx root root 51 ./etc/ssl/certs/c01cdfa2.0 -> VeriSign_Universal_Root_Certification_Authority.pem
+lrwxrwxrwx root root 31 ./etc/ssl/certs/c089bbbd.0 -> thawte_Primary_Root_CA_-_G2.pem
+lrwxrwxrwx root root 64 ./etc/ssl/certs/c0ff1f52.0 -> Verisign_Class_3_Public_Primary_Certification_Authority_-_G3.pem
+lrwxrwxrwx root root 34 ./etc/ssl/certs/c28a8a30.0 -> D-TRUST_Root_Class_3_CA_2_2009.pem
+lrwxrwxrwx root root 36 ./etc/ssl/certs/c47d9980.0 -> Chambers_of_Commerce_Root_-_2008.pem
+lrwxrwxrwx root root 37 ./etc/ssl/certs/ca6e4ad9.0 -> ePKI_Root_Certification_Authority.pem
+-rw-r--r-- root root 200061 ./etc/ssl/certs/ca-certificates.crt
+lrwxrwxrwx root root 63 ./etc/ssl/certs/CA_Disig_Root_R2.pem -> ../../../usr/share/ca-certificates/mozilla/CA_Disig_Root_R2.crt
+lrwxrwxrwx root root 44 ./etc/ssl/certs/cbf06781.0 -> Go_Daddy_Root_Certificate_Authority_-_G2.pem
+lrwxrwxrwx root root 14 ./etc/ssl/certs/cc450945.0 -> Izenpe.com.pem
+lrwxrwxrwx root root 34 ./etc/ssl/certs/cd58d51e.0 -> Security_Communication_RootCA2.pem
+lrwxrwxrwx root root 20 ./etc/ssl/certs/cd8c0d63.0 -> AC_RAIZ_FNMT-RCM.pem
+lrwxrwxrwx root root 20 ./etc/ssl/certs/ce5e74ef.0 -> Amazon_Root_CA_1.pem
+lrwxrwxrwx root root 55 ./etc/ssl/certs/Certigna.pem -> ../../../usr/share/ca-certificates/mozilla/Certigna.crt
+lrwxrwxrwx root root 67 ./etc/ssl/certs/Certinomis_-_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Certinomis_-_Root_CA.crt
+lrwxrwxrwx root root 74 ./etc/ssl/certs/Certplus_Class_2_Primary_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Certplus_Class_2_Primary_CA.crt
+lrwxrwxrwx root root 63 ./etc/ssl/certs/certSIGN_ROOT_CA.pem -> ../../../usr/share/ca-certificates/mozilla/certSIGN_ROOT_CA.crt
+lrwxrwxrwx root root 74 ./etc/ssl/certs/Certum_Trusted_Network_CA_2.pem -> ../../../usr/share/ca-certificates/mozilla/Certum_Trusted_Network_CA_2.crt
+lrwxrwxrwx root root 72 ./etc/ssl/certs/Certum_Trusted_Network_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Certum_Trusted_Network_CA.crt
+lrwxrwxrwx root root 59 ./etc/ssl/certs/CFCA_EV_ROOT.pem -> ../../../usr/share/ca-certificates/mozilla/CFCA_EV_ROOT.crt
+lrwxrwxrwx root root 79 ./etc/ssl/certs/Chambers_of_Commerce_Root_-_2008.pem -> ../../../usr/share/ca-certificates/mozilla/Chambers_of_Commerce_Root_-_2008.crt
+lrwxrwxrwx root root 71 ./etc/ssl/certs/Comodo_AAA_Services_root.pem -> ../../../usr/share/ca-certificates/mozilla/Comodo_AAA_Services_root.crt
+lrwxrwxrwx root root 77 ./etc/ssl/certs/COMODO_Certification_Authority.pem -> ../../../usr/share/ca-certificates/mozilla/COMODO_Certification_Authority.crt
+lrwxrwxrwx root root 81 ./etc/ssl/certs/COMODO_ECC_Certification_Authority.pem -> ../../../usr/share/ca-certificates/mozilla/COMODO_ECC_Certification_Authority.crt
+lrwxrwxrwx root root 81 ./etc/ssl/certs/COMODO_RSA_Certification_Authority.pem -> ../../../usr/share/ca-certificates/mozilla/COMODO_RSA_Certification_Authority.crt
+lrwxrwxrwx root root 69 ./etc/ssl/certs/Cybertrust_Global_Root.pem -> ../../../usr/share/ca-certificates/mozilla/Cybertrust_Global_Root.crt
+lrwxrwxrwx root root 37 ./etc/ssl/certs/d4dae3dd.0 -> D-TRUST_Root_Class_3_CA_2_EV_2009.pem
+lrwxrwxrwx root root 38 ./etc/ssl/certs/d6325660.0 -> COMODO_RSA_Certification_Authority.pem
+lrwxrwxrwx root root 22 ./etc/ssl/certs/d7e8dc79.0 -> QuoVadis_Root_CA_2.pem
+lrwxrwxrwx root root 23 ./etc/ssl/certs/d853d49e.0 -> Trustis_FPS_Root_CA.pem
+lrwxrwxrwx root root 27 ./etc/ssl/certs/dc4d6a89.0 -> GlobalSign_Root_CA_-_R6.pem
+lrwxrwxrwx root root 27 ./etc/ssl/certs/dd8e9d41.0 -> DigiCert_Global_Root_G3.pem
+lrwxrwxrwx root root 20 ./etc/ssl/certs/de6d66f3.0 -> Amazon_Root_CA_4.pem
+lrwxrwxrwx root root 26 ./etc/ssl/certs/def36a68.0 -> LuxTrust_Global_Root_2.pem
+lrwxrwxrwx root root 73 ./etc/ssl/certs/Deutsche_Telekom_Root_CA_2.pem -> ../../../usr/share/ca-certificates/mozilla/Deutsche_Telekom_Root_CA_2.crt
+lrwxrwxrwx root root 74 ./etc/ssl/certs/DigiCert_Assured_ID_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_CA.crt
+lrwxrwxrwx root root 74 ./etc/ssl/certs/DigiCert_Assured_ID_Root_G2.pem -> ../../../usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_G2.crt
+lrwxrwxrwx root root 74 ./etc/ssl/certs/DigiCert_Assured_ID_Root_G3.pem -> ../../../usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_G3.crt
+lrwxrwxrwx root root 70 ./etc/ssl/certs/DigiCert_Global_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/DigiCert_Global_Root_CA.crt
+lrwxrwxrwx root root 70 ./etc/ssl/certs/DigiCert_Global_Root_G2.pem -> ../../../usr/share/ca-certificates/mozilla/DigiCert_Global_Root_G2.crt
+lrwxrwxrwx root root 70 ./etc/ssl/certs/DigiCert_Global_Root_G3.pem -> ../../../usr/share/ca-certificates/mozilla/DigiCert_Global_Root_G3.crt
+lrwxrwxrwx root root 81 ./etc/ssl/certs/DigiCert_High_Assurance_EV_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/DigiCert_High_Assurance_EV_Root_CA.crt
+lrwxrwxrwx root root 71 ./etc/ssl/certs/DigiCert_Trusted_Root_G4.pem -> ../../../usr/share/ca-certificates/mozilla/DigiCert_Trusted_Root_G4.crt
+lrwxrwxrwx root root 61 ./etc/ssl/certs/DST_Root_CA_X3.pem -> ../../../usr/share/ca-certificates/mozilla/DST_Root_CA_X3.crt
+lrwxrwxrwx root root 77 ./etc/ssl/certs/D-TRUST_Root_Class_3_CA_2_2009.pem -> ../../../usr/share/ca-certificates/mozilla/D-TRUST_Root_Class_3_CA_2_2009.crt
+lrwxrwxrwx root root 80 ./etc/ssl/certs/D-TRUST_Root_Class_3_CA_2_EV_2009.pem -> ../../../usr/share/ca-certificates/mozilla/D-TRUST_Root_Class_3_CA_2_EV_2009.crt
+lrwxrwxrwx root root 12 ./etc/ssl/certs/e113c810.0 -> Certigna.pem
+lrwxrwxrwx root root 25 ./etc/ssl/certs/e18bfb83.0 -> QuoVadis_Root_CA_3_G3.pem
+lrwxrwxrwx root root 49 ./etc/ssl/certs/e2799e36.0 -> GeoTrust_Primary_Certification_Authority_-_G3.pem
+lrwxrwxrwx root root 25 ./etc/ssl/certs/e36a6752.0 -> Atos_TrustedRoot_2011.pem
+lrwxrwxrwx root root 35 ./etc/ssl/certs/e73d606e.0 -> OISTE_WISeKey_Global_Root_GB_CA.pem
+lrwxrwxrwx root root 27 ./etc/ssl/certs/e8de2f56.0 -> Buypass_Class_3_Root_CA.pem
+lrwxrwxrwx root root 53 ./etc/ssl/certs/EC-ACC.pem -> ../../../usr/share/ca-certificates/mozilla/EC-ACC.crt
+lrwxrwxrwx root root 28 ./etc/ssl/certs/ee64a828.0 -> Comodo_AAA_Services_root.pem
+lrwxrwxrwx root root 78 ./etc/ssl/certs/EE_Certification_Centre_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/EE_Certification_Centre_Root_CA.crt
+lrwxrwxrwx root root 38 ./etc/ssl/certs/eed8c118.0 -> COMODO_ECC_Certification_Authority.pem
+lrwxrwxrwx root root 34 ./etc/ssl/certs/ef954a4e.0 -> IdenTrust_Commercial_Root_CA_1.pem
+lrwxrwxrwx root root 88 ./etc/ssl/certs/Entrust.net_Premium_2048_Secure_Server_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Entrust.net_Premium_2048_Secure_Server_CA.crt
+lrwxrwxrwx root root 89 ./etc/ssl/certs/Entrust_Root_Certification_Authority_-_EC1.pem -> ../../../usr/share/ca-certificates/mozilla/Entrust_Root_Certification_Authority_-_EC1.crt
+lrwxrwxrwx root root 88 ./etc/ssl/certs/Entrust_Root_Certification_Authority_-_G2.pem -> ../../../usr/share/ca-certificates/mozilla/Entrust_Root_Certification_Authority_-_G2.crt
+lrwxrwxrwx root root 83 ./etc/ssl/certs/Entrust_Root_Certification_Authority.pem -> ../../../usr/share/ca-certificates/mozilla/Entrust_Root_Certification_Authority.crt
+lrwxrwxrwx root root 80 ./etc/ssl/certs/ePKI_Root_Certification_Authority.pem -> ../../../usr/share/ca-certificates/mozilla/ePKI_Root_Certification_Authority.crt
+lrwxrwxrwx root root 78 ./etc/ssl/certs/E-Tugra_Certification_Authority.pem -> ../../../usr/share/ca-certificates/mozilla/E-Tugra_Certification_Authority.crt
+lrwxrwxrwx root root 31 ./etc/ssl/certs/f060240e.0 -> Certplus_Class_2_Primary_CA.pem
+lrwxrwxrwx root root 23 ./etc/ssl/certs/f081611a.0 -> Go_Daddy_Class_2_CA.pem
+lrwxrwxrwx root root 47 ./etc/ssl/certs/f0c70a8d.0 -> SSL.com_EV_Root_Certification_Authority_ECC.pem
+lrwxrwxrwx root root 41 ./etc/ssl/certs/f30dd6ad.0 -> USERTrust_ECC_Certification_Authority.pem
+lrwxrwxrwx root root 34 ./etc/ssl/certs/f3377b1b.0 -> Security_Communication_Root_CA.pem
+lrwxrwxrwx root root 24 ./etc/ssl/certs/f387163d.0 -> Starfield_Class_2_CA.pem
+lrwxrwxrwx root root 18 ./etc/ssl/certs/f39fc864.0 -> SecureTrust_CA.pem
+lrwxrwxrwx root root 41 ./etc/ssl/certs/fc5a8f99.0 -> USERTrust_RSA_Certification_Authority.pem
+lrwxrwxrwx root root 19 ./etc/ssl/certs/fe8a2cd8.0 -> SZAFIR_ROOT_CA2.pem
+lrwxrwxrwx root root 49 ./etc/ssl/certs/ff34af3f.0 -> TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem
+lrwxrwxrwx root root 69 ./etc/ssl/certs/GDCA_TrustAUTH_R5_ROOT.pem -> ../../../usr/share/ca-certificates/mozilla/GDCA_TrustAUTH_R5_ROOT.crt
+lrwxrwxrwx root root 65 ./etc/ssl/certs/GeoTrust_Global_CA.pem -> ../../../usr/share/ca-certificates/mozilla/GeoTrust_Global_CA.crt
+lrwxrwxrwx root root 92 ./etc/ssl/certs/GeoTrust_Primary_Certification_Authority_-_G2.pem -> ../../../usr/share/ca-certificates/mozilla/GeoTrust_Primary_Certification_Authority_-_G2.crt
+lrwxrwxrwx root root 92 ./etc/ssl/certs/GeoTrust_Primary_Certification_Authority_-_G3.pem -> ../../../usr/share/ca-certificates/mozilla/GeoTrust_Primary_Certification_Authority_-_G3.crt
+lrwxrwxrwx root root 87 ./etc/ssl/certs/GeoTrust_Primary_Certification_Authority.pem -> ../../../usr/share/ca-certificates/mozilla/GeoTrust_Primary_Certification_Authority.crt
+lrwxrwxrwx root root 70 ./etc/ssl/certs/GeoTrust_Universal_CA_2.pem -> ../../../usr/share/ca-certificates/mozilla/GeoTrust_Universal_CA_2.crt
+lrwxrwxrwx root root 68 ./etc/ssl/certs/GeoTrust_Universal_CA.pem -> ../../../usr/share/ca-certificates/mozilla/GeoTrust_Universal_CA.crt
+lrwxrwxrwx root root 77 ./etc/ssl/certs/Global_Chambersign_Root_-_2008.pem -> ../../../usr/share/ca-certificates/mozilla/Global_Chambersign_Root_-_2008.crt
+lrwxrwxrwx root root 74 ./etc/ssl/certs/GlobalSign_ECC_Root_CA_-_R4.pem -> ../../../usr/share/ca-certificates/mozilla/GlobalSign_ECC_Root_CA_-_R4.crt
+lrwxrwxrwx root root 74 ./etc/ssl/certs/GlobalSign_ECC_Root_CA_-_R5.pem -> ../../../usr/share/ca-certificates/mozilla/GlobalSign_ECC_Root_CA_-_R5.crt
+lrwxrwxrwx root root 65 ./etc/ssl/certs/GlobalSign_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/GlobalSign_Root_CA.crt
+lrwxrwxrwx root root 70 ./etc/ssl/certs/GlobalSign_Root_CA_-_R2.pem -> ../../../usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R2.crt
+lrwxrwxrwx root root 70 ./etc/ssl/certs/GlobalSign_Root_CA_-_R3.pem -> ../../../usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R3.crt
+lrwxrwxrwx root root 70 ./etc/ssl/certs/GlobalSign_Root_CA_-_R6.pem -> ../../../usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R6.crt
+lrwxrwxrwx root root 66 ./etc/ssl/certs/Go_Daddy_Class_2_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Go_Daddy_Class_2_CA.crt
+lrwxrwxrwx root root 87 ./etc/ssl/certs/Go_Daddy_Root_Certificate_Authority_-_G2.pem -> ../../../usr/share/ca-certificates/mozilla/Go_Daddy_Root_Certificate_Authority_-_G2.crt
+lrwxrwxrwx root root 106 ./etc/ssl/certs/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem -> ../../../usr/share/ca-certificates/mozilla/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.crt
+lrwxrwxrwx root root 102 ./etc/ssl/certs/Hellenic_Academic_and_Research_Institutions_RootCA_2011.pem -> ../../../usr/share/ca-certificates/mozilla/Hellenic_Academic_and_Research_Institutions_RootCA_2011.crt
+lrwxrwxrwx root root 102 ./etc/ssl/certs/Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem -> ../../../usr/share/ca-certificates/mozilla/Hellenic_Academic_and_Research_Institutions_RootCA_2015.crt
+lrwxrwxrwx root root 70 ./etc/ssl/certs/Hongkong_Post_Root_CA_1.pem -> ../../../usr/share/ca-certificates/mozilla/Hongkong_Post_Root_CA_1.crt
+lrwxrwxrwx root root 77 ./etc/ssl/certs/IdenTrust_Commercial_Root_CA_1.pem -> ../../../usr/share/ca-certificates/mozilla/IdenTrust_Commercial_Root_CA_1.crt
+lrwxrwxrwx root root 80 ./etc/ssl/certs/IdenTrust_Public_Sector_Root_CA_1.pem -> ../../../usr/share/ca-certificates/mozilla/IdenTrust_Public_Sector_Root_CA_1.crt
+lrwxrwxrwx root root 59 ./etc/ssl/certs/ISRG_Root_X1.pem -> ../../../usr/share/ca-certificates/mozilla/ISRG_Root_X1.crt
+lrwxrwxrwx root root 57 ./etc/ssl/certs/Izenpe.com.pem -> ../../../usr/share/ca-certificates/mozilla/Izenpe.com.crt
+lrwxrwxrwx root root 69 ./etc/ssl/certs/LuxTrust_Global_Root_2.pem -> ../../../usr/share/ca-certificates/mozilla/LuxTrust_Global_Root_2.crt
+lrwxrwxrwx root root 77 ./etc/ssl/certs/Microsec_e-Szigno_Root_CA_2009.pem -> ../../../usr/share/ca-certificates/mozilla/Microsec_e-Szigno_Root_CA_2009.crt
+lrwxrwxrwx root root 91 ./etc/ssl/certs/NetLock_Arany_=Class_Gold=_Főtanúsítvány.pem -> ../../../usr/share/ca-certificates/mozilla/NetLock_Arany_=Class_Gold=_Főtanúsítvány.crt
+lrwxrwxrwx root root 86 ./etc/ssl/certs/Network_Solutions_Certificate_Authority.pem -> ../../../usr/share/ca-certificates/mozilla/Network_Solutions_Certificate_Authority.crt
+lrwxrwxrwx root root 78 ./etc/ssl/certs/OISTE_WISeKey_Global_Root_GA_CA.pem -> ../../../usr/share/ca-certificates/mozilla/OISTE_WISeKey_Global_Root_GA_CA.crt
+lrwxrwxrwx root root 78 ./etc/ssl/certs/OISTE_WISeKey_Global_Root_GB_CA.pem -> ../../../usr/share/ca-certificates/mozilla/OISTE_WISeKey_Global_Root_GB_CA.crt
+lrwxrwxrwx root root 78 ./etc/ssl/certs/OISTE_WISeKey_Global_Root_GC_CA.pem -> ../../../usr/share/ca-certificates/mozilla/OISTE_WISeKey_Global_Root_GC_CA.crt
+lrwxrwxrwx root root 68 ./etc/ssl/certs/QuoVadis_Root_CA_1_G3.pem -> ../../../usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_1_G3.crt
+lrwxrwxrwx root root 68 ./etc/ssl/certs/QuoVadis_Root_CA_2_G3.pem -> ../../../usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_2_G3.crt
+lrwxrwxrwx root root 65 ./etc/ssl/certs/QuoVadis_Root_CA_2.pem -> ../../../usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_2.crt
+lrwxrwxrwx root root 68 ./etc/ssl/certs/QuoVadis_Root_CA_3_G3.pem -> ../../../usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_3_G3.crt
+lrwxrwxrwx root root 65 ./etc/ssl/certs/QuoVadis_Root_CA_3.pem -> ../../../usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_3.crt
+lrwxrwxrwx root root 63 ./etc/ssl/certs/QuoVadis_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/QuoVadis_Root_CA.crt
+lrwxrwxrwx root root 63 ./etc/ssl/certs/Secure_Global_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Secure_Global_CA.crt
+lrwxrwxrwx root root 66 ./etc/ssl/certs/SecureSign_RootCA11.pem -> ../../../usr/share/ca-certificates/mozilla/SecureSign_RootCA11.crt
+lrwxrwxrwx root root 61 ./etc/ssl/certs/SecureTrust_CA.pem -> ../../../usr/share/ca-certificates/mozilla/SecureTrust_CA.crt
+lrwxrwxrwx root root 77 ./etc/ssl/certs/Security_Communication_RootCA2.pem -> ../../../usr/share/ca-certificates/mozilla/Security_Communication_RootCA2.crt
+lrwxrwxrwx root root 77 ./etc/ssl/certs/Security_Communication_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Security_Communication_Root_CA.crt
+lrwxrwxrwx root root 69 ./etc/ssl/certs/Sonera_Class_2_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Sonera_Class_2_Root_CA.crt
+lrwxrwxrwx root root 90 ./etc/ssl/certs/SSL.com_EV_Root_Certification_Authority_ECC.pem -> ../../../usr/share/ca-certificates/mozilla/SSL.com_EV_Root_Certification_Authority_ECC.crt
+lrwxrwxrwx root root 93 ./etc/ssl/certs/SSL.com_EV_Root_Certification_Authority_RSA_R2.pem -> ../../../usr/share/ca-certificates/mozilla/SSL.com_EV_Root_Certification_Authority_RSA_R2.crt
+lrwxrwxrwx root root 87 ./etc/ssl/certs/SSL.com_Root_Certification_Authority_ECC.pem -> ../../../usr/share/ca-certificates/mozilla/SSL.com_Root_Certification_Authority_ECC.crt
+lrwxrwxrwx root root 87 ./etc/ssl/certs/SSL.com_Root_Certification_Authority_RSA.pem -> ../../../usr/share/ca-certificates/mozilla/SSL.com_Root_Certification_Authority_RSA.crt
+lrwxrwxrwx root root 79 ./etc/ssl/certs/Staat_der_Nederlanden_EV_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Staat_der_Nederlanden_EV_Root_CA.crt
+lrwxrwxrwx root root 81 ./etc/ssl/certs/Staat_der_Nederlanden_Root_CA_-_G2.pem -> ../../../usr/share/ca-certificates/mozilla/Staat_der_Nederlanden_Root_CA_-_G2.crt
+lrwxrwxrwx root root 81 ./etc/ssl/certs/Staat_der_Nederlanden_Root_CA_-_G3.pem -> ../../../usr/share/ca-certificates/mozilla/Staat_der_Nederlanden_Root_CA_-_G3.crt
+lrwxrwxrwx root root 67 ./etc/ssl/certs/Starfield_Class_2_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Starfield_Class_2_CA.crt
+lrwxrwxrwx root root 88 ./etc/ssl/certs/Starfield_Root_Certificate_Authority_-_G2.pem -> ../../../usr/share/ca-certificates/mozilla/Starfield_Root_Certificate_Authority_-_G2.crt
+lrwxrwxrwx root root 97 ./etc/ssl/certs/Starfield_Services_Root_Certificate_Authority_-_G2.pem -> ../../../usr/share/ca-certificates/mozilla/Starfield_Services_Root_Certificate_Authority_-_G2.crt
+lrwxrwxrwx root root 69 ./etc/ssl/certs/SwissSign_Gold_CA_-_G2.pem -> ../../../usr/share/ca-certificates/mozilla/SwissSign_Gold_CA_-_G2.crt
+lrwxrwxrwx root root 71 ./etc/ssl/certs/SwissSign_Silver_CA_-_G2.pem -> ../../../usr/share/ca-certificates/mozilla/SwissSign_Silver_CA_-_G2.crt
+lrwxrwxrwx root root 62 ./etc/ssl/certs/SZAFIR_ROOT_CA2.pem -> ../../../usr/share/ca-certificates/mozilla/SZAFIR_ROOT_CA2.crt
+lrwxrwxrwx root root 58 ./etc/ssl/certs/Taiwan_GRCA.pem -> ../../../usr/share/ca-certificates/mozilla/Taiwan_GRCA.crt
+lrwxrwxrwx root root 69 ./etc/ssl/certs/TeliaSonera_Root_CA_v1.pem -> ../../../usr/share/ca-certificates/mozilla/TeliaSonera_Root_CA_v1.crt
+lrwxrwxrwx root root 74 ./etc/ssl/certs/thawte_Primary_Root_CA_-_G2.pem -> ../../../usr/share/ca-certificates/mozilla/thawte_Primary_Root_CA_-_G2.crt
+lrwxrwxrwx root root 74 ./etc/ssl/certs/thawte_Primary_Root_CA_-_G3.pem -> ../../../usr/share/ca-certificates/mozilla/thawte_Primary_Root_CA_-_G3.crt
+lrwxrwxrwx root root 69 ./etc/ssl/certs/thawte_Primary_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/thawte_Primary_Root_CA.crt
+lrwxrwxrwx root root 61 ./etc/ssl/certs/TrustCor_ECA-1.pem -> ../../../usr/share/ca-certificates/mozilla/TrustCor_ECA-1.crt
+lrwxrwxrwx root root 69 ./etc/ssl/certs/TrustCor_RootCert_CA-1.pem -> ../../../usr/share/ca-certificates/mozilla/TrustCor_RootCert_CA-1.crt
+lrwxrwxrwx root root 69 ./etc/ssl/certs/TrustCor_RootCert_CA-2.pem -> ../../../usr/share/ca-certificates/mozilla/TrustCor_RootCert_CA-2.crt
+lrwxrwxrwx root root 66 ./etc/ssl/certs/Trustis_FPS_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Trustis_FPS_Root_CA.crt
+lrwxrwxrwx root root 75 ./etc/ssl/certs/T-TeleSec_GlobalRoot_Class_2.pem -> ../../../usr/share/ca-certificates/mozilla/T-TeleSec_GlobalRoot_Class_2.crt
+lrwxrwxrwx root root 75 ./etc/ssl/certs/T-TeleSec_GlobalRoot_Class_3.pem -> ../../../usr/share/ca-certificates/mozilla/T-TeleSec_GlobalRoot_Class_3.crt
+lrwxrwxrwx root root 92 ./etc/ssl/certs/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem -> ../../../usr/share/ca-certificates/mozilla/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.crt
+lrwxrwxrwx root root 66 ./etc/ssl/certs/TWCA_Global_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/TWCA_Global_Root_CA.crt
+lrwxrwxrwx root root 80 ./etc/ssl/certs/TWCA_Root_Certification_Authority.pem -> ../../../usr/share/ca-certificates/mozilla/TWCA_Root_Certification_Authority.crt
+lrwxrwxrwx root root 84 ./etc/ssl/certs/USERTrust_ECC_Certification_Authority.pem -> ../../../usr/share/ca-certificates/mozilla/USERTrust_ECC_Certification_Authority.crt
+lrwxrwxrwx root root 84 ./etc/ssl/certs/USERTrust_RSA_Certification_Authority.pem -> ../../../usr/share/ca-certificates/mozilla/USERTrust_RSA_Certification_Authority.crt
+lrwxrwxrwx root root 107 ./etc/ssl/certs/Verisign_Class_3_Public_Primary_Certification_Authority_-_G3.pem -> ../../../usr/share/ca-certificates/mozilla/Verisign_Class_3_Public_Primary_Certification_Authority_-_G3.crt
+lrwxrwxrwx root root 107 ./etc/ssl/certs/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G4.pem -> ../../../usr/share/ca-certificates/mozilla/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G4.crt
+lrwxrwxrwx root root 107 ./etc/ssl/certs/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G5.pem -> ../../../usr/share/ca-certificates/mozilla/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G5.crt
+lrwxrwxrwx root root 94 ./etc/ssl/certs/VeriSign_Universal_Root_Certification_Authority.pem -> ../../../usr/share/ca-certificates/mozilla/VeriSign_Universal_Root_Certification_Authority.crt
+lrwxrwxrwx root root 67 ./etc/ssl/certs/XRamp_Global_CA_Root.pem -> ../../../usr/share/ca-certificates/mozilla/XRamp_Global_CA_Root.crt
+-rw-r--r-- root root 10909 ./etc/ssl/openssl.cnf
+drwxr-xr-x root root 4096 ./etc/ssl/private
+-rw-r--r-- root root 2128 ./etc/sysctl.conf
+-rw-r--r-- root root 69 ./etc/syslog.conf
+-rw-r--r-- root root 651 ./etc/syslog-startup.conf
+drwxr-xr-x root root 4096 ./etc/terminfo
+drwxr-xr-x root root 4096 ./etc/terminfo/a
+-rw-r--r-- root root 1481 ./etc/terminfo/a/ansi
+drwxr-xr-x root root 4096 ./etc/terminfo/d
+-rw-r--r-- root root 308 ./etc/terminfo/d/dumb
+drwxr-xr-x root root 4096 ./etc/terminfo/l
+-rw-r--r-- root root 1730 ./etc/terminfo/l/linux
+drwxr-xr-x root root 4096 ./etc/terminfo/r
+-rw-r--r-- root root 2222 ./etc/terminfo/r/rxvt
+drwxr-xr-x root root 4096 ./etc/terminfo/s
+-rw-r--r-- root root 1573 ./etc/terminfo/s/screen
+-rw-r--r-- root root 1687 ./etc/terminfo/s/screen-256color
+-rw-r--r-- root root 1004 ./etc/terminfo/s/sun
+drwxr-xr-x root root 4096 ./etc/terminfo/v
+-rw-r--r-- root root 1190 ./etc/terminfo/v/vt100
+-rw-r--r-- root root 1184 ./etc/terminfo/v/vt102
+-rw-r--r-- root root 1377 ./etc/terminfo/v/vt200
+-rw-r--r-- root root 1377 ./etc/terminfo/v/vt220
+-rw-r--r-- root root 470 ./etc/terminfo/v/vt52
+drwxr-xr-x root root 4096 ./etc/terminfo/x
+-rw-r--r-- root root 3780 ./etc/terminfo/x/xterm-256color
+-rw-r--r-- root root 1551 ./etc/terminfo/x/xterm-color
+-rw-r--r-- root root 2240 ./etc/terminfo/x/xterm-xfree86
+lrwxrwxrwx root root 11 ./etc/terminfo/x/xterm -> xterm-color
+-rw-r--r-- root root 15 ./etc/timestamp
+drwxr-xr-x root root 4096 ./etc/udev
+drwxr-xr-x root root 4096 ./etc/udev/rules.d
+-rw-r--r-- root root 0 ./etc/udev/rules.d/80-net-name-slot.rules
+-rw-r--r-- root root 885 ./etc/udev/rules.d/local.rules
+-rw-r--r-- root root 49 ./etc/udev/udev.conf
+drwxr-xr-x root root 4096 ./etc/udhcpc.d
+-rwxr-xr-x root root 2652 ./etc/udhcpc.d/50default
+-rw-r--r-- root root 15 ./etc/version
+-rw-r--r-- root root 642 ./etc/xattr.conf
+drwxr-xr-x root root 4096 ./home
+drwx------ root root 4096 ./home/root
+drwxr-xr-x root root 4096 ./lib
+drwxr-xr-x root root 4096 ./lib/depmod.d
+-rw-r--r-- root root 71 ./lib/depmod.d/search.conf
+-rwxr-xr-x root root 177712 ./lib/ld-2.31.so
+lrwxrwxrwx root root 10 ./lib/ld-linux-x86-64.so.2 -> ld-2.31.so
+-rwxr-xr-x root root 18696 ./lib/libanl-2.31.so
+lrwxrwxrwx root root 14 ./lib/libanl.so.1 -> libanl-2.31.so
+-rwxr-xr-x root root 326600 ./lib/libblkid.so.1.1.0
+lrwxrwxrwx root root 17 ./lib/libblkid.so.1 -> libblkid.so.1.1.0
+-rwxr-xr-x root root 14296 ./lib/libBrokenLocale-2.31.so
+lrwxrwxrwx root root 23 ./lib/libBrokenLocale.so.1 -> libBrokenLocale-2.31.so
+-rwxr-xr-x root root 1806504 ./lib/libc-2.31.so
+-rwxr-xr-x root root 26512 ./lib/libcap-ng.so.0.0.0
+lrwxrwxrwx root root 18 ./lib/libcap-ng.so.0 -> libcap-ng.so.0.0.0
+-rw-r--r-- root root 39152 ./lib/libcap.so.2.33
+lrwxrwxrwx root root 14 ./lib/libcap.so.2 -> libcap.so.2.33
+lrwxrwxrwx root root 11 ./lib/libcap.so -> libcap.so.2
+-rwxr-xr-x root root 18320 ./lib/libcom_err.so.2.1
+lrwxrwxrwx root root 17 ./lib/libcom_err.so.2 -> libcom_err.so.2.1
+lrwxrwxrwx root root 15 ./lib/libcom_err.so -> libcom_err.so.2
+lrwxrwxrwx root root 12 ./lib/libc.so.6 -> libc-2.31.so
+-rwxr-xr-x root root 14360 ./lib/libdl-2.31.so
+lrwxrwxrwx root root 13 ./lib/libdl.so.2 -> libdl-2.31.so
+-rwxr-xr-x root root 44616 ./lib/libe2p.so.2.3
+lrwxrwxrwx root root 13 ./lib/libe2p.so.2 -> libe2p.so.2.3
+lrwxrwxrwx root root 11 ./lib/libe2p.so -> libe2p.so.2
+-rwxr-xr-x root root 426264 ./lib/libext2fs.so.2.4
+lrwxrwxrwx root root 16 ./lib/libext2fs.so.2 -> libext2fs.so.2.4
+lrwxrwxrwx root root 14 ./lib/libext2fs.so -> libext2fs.so.2
+-rwxr-xr-x root root 440104 ./lib/libfdisk.so.1.1.0
+lrwxrwxrwx root root 17 ./lib/libfdisk.so.1 -> libfdisk.so.1.1.0
+-rw-r--r-- root root 132 ./lib/libgcc_s.so
+-rw-r--r-- root root 100248 ./lib/libgcc_s.so.1
+-rwxr-xr-x root root 1312800 ./lib/libm-2.31.so
+-rwxr-xr-x root root 379432 ./lib/libmount.so.1.1.0
+lrwxrwxrwx root root 17 ./lib/libmount.so.1 -> libmount.so.1.1.0
+lrwxrwxrwx root root 12 ./lib/libm.so.6 -> libm-2.31.so
+-rwxr-xr-x root root 174104 ./lib/libmvec-2.31.so
+lrwxrwxrwx root root 15 ./lib/libmvec.so.1 -> libmvec-2.31.so
+-rwxr-xr-x root root 157512 ./lib/libncurses.so.5.9
+lrwxrwxrwx root root 17 ./lib/libncurses.so.5 -> libncurses.so.5.9
+-rwxr-xr-x root root 210760 ./lib/libncursesw.so.5.9
+lrwxrwxrwx root root 18 ./lib/libncursesw.so.5 -> libncursesw.so.5.9
+-rwxr-xr-x root root 92184 ./lib/libnsl-2.31.so
+lrwxrwxrwx root root 14 ./lib/libnsl.so.1 -> libnsl-2.31.so
+-rwxr-xr-x root root 35288 ./lib/libnss_compat-2.31.so
+lrwxrwxrwx root root 21 ./lib/libnss_compat.so.2 -> libnss_compat-2.31.so
+-rwxr-xr-x root root 30752 ./lib/libnss_db-2.31.so
+lrwxrwxrwx root root 17 ./lib/libnss_db.so.2 -> libnss_db-2.31.so
+-rwxr-xr-x root root 22560 ./lib/libnss_dns-2.31.so
+lrwxrwxrwx root root 18 ./lib/libnss_dns.so.2 -> libnss_dns-2.31.so
+-rwxr-xr-x root root 51232 ./lib/libnss_files-2.31.so
+lrwxrwxrwx root root 20 ./lib/libnss_files.so.2 -> libnss_files-2.31.so
+-rwxr-xr-x root root 22560 ./lib/libnss_hesiod-2.31.so
+lrwxrwxrwx root root 21 ./lib/libnss_hesiod.so.2 -> libnss_hesiod-2.31.so
+-rwxr-xr-x root root 113296 ./lib/libpthread-2.31.so
+lrwxrwxrwx root root 18 ./lib/libpthread.so.0 -> libpthread-2.31.so
+-rwxr-xr-x root root 88320 ./lib/libresolv-2.31.so
+lrwxrwxrwx root root 17 ./lib/libresolv.so.2 -> libresolv-2.31.so
+-rwxr-xr-x root root 39328 ./lib/librt-2.31.so
+lrwxrwxrwx root root 13 ./lib/librt.so.1 -> librt-2.31.so
+-rwxr-xr-x root root 227432 ./lib/libsmartcols.so.1.1.0
+lrwxrwxrwx root root 21 ./lib/libsmartcols.so.1 -> libsmartcols.so.1.1.0
+-rwxr-xr-x root root 34704 ./lib/libss.so.2.0
+lrwxrwxrwx root root 12 ./lib/libss.so.2 -> libss.so.2.0
+lrwxrwxrwx root root 10 ./lib/libss.so -> libss.so.2
+-rwxr-xr-x root root 35416 ./lib/libthread_db-1.0.so
+lrwxrwxrwx root root 19 ./lib/libthread_db.so.1 -> libthread_db-1.0.so
+-rwxr-xr-x root root 175208 ./lib/libtinfo.so.5.9
+lrwxrwxrwx root root 15 ./lib/libtinfo.so.5 -> libtinfo.so.5.9
+-rwxr-xr-x root root 157912 ./lib/libudev.so.1.6.3
+lrwxrwxrwx root root 16 ./lib/libudev.so.1 -> libudev.so.1.6.3
+-rwxr-xr-x root root 14360 ./lib/libutil-2.31.so
+lrwxrwxrwx root root 15 ./lib/libutil.so.1 -> libutil-2.31.so
+-rwxr-xr-x root root 30752 ./lib/libuuid.so.1.3.0
+lrwxrwxrwx root root 16 ./lib/libuuid.so.1 -> libuuid.so.1.3.0
+-rwxr-xr-x root root 39816 ./lib/libwrap.so.0.7.6
+lrwxrwxrwx root root 16 ./lib/libwrap.so.0 -> libwrap.so.0.7.6
+-rwxr-xr-x root root 100312 ./lib/libz.so.1.2.11
+lrwxrwxrwx root root 14 ./lib/libz.so.1 -> libz.so.1.2.11
+drwxr-xr-x root root 4096 ./lib/modprobe.d
+drwxr-xr-x root root 4096 ./lib/modules
+drwxr-xr-x root root 4096 ./lib/modules/5.4.40-yocto-standard
+drwxr-xr-x root root 4096 ./lib/modules/5.4.40-yocto-standard/kernel
+drwxr-xr-x root root 4096 ./lib/modules/5.4.40-yocto-standard/kernel/drivers
+drwxr-xr-x root root 4096 ./lib/modules/5.4.40-yocto-standard/kernel/drivers/video
+drwxr-xr-x root root 4096 ./lib/modules/5.4.40-yocto-standard/kernel/drivers/video/fbdev
+-rw-r--r-- root root 46440 ./lib/modules/5.4.40-yocto-standard/kernel/drivers/video/fbdev/uvesafb.ko
+drwxr-xr-x root root 4096 ./lib/modules/5.4.40-yocto-standard/kernel/net
+drwxr-xr-x root root 4096 ./lib/modules/5.4.40-yocto-standard/kernel/net/ipv4
+drwxr-xr-x root root 4096 ./lib/modules/5.4.40-yocto-standard/kernel/net/ipv4/netfilter
+-rw-r--r-- root root 6912 ./lib/modules/5.4.40-yocto-standard/kernel/net/ipv4/netfilter/iptable_filter.ko
+-rw-r--r-- root root 6272 ./lib/modules/5.4.40-yocto-standard/kernel/net/ipv4/netfilter/iptable_nat.ko
+-rw-r--r-- root root 32144 ./lib/modules/5.4.40-yocto-standard/kernel/net/ipv4/netfilter/ip_tables.ko
+-rw-r--r-- root root 6160 ./lib/modules/5.4.40-yocto-standard/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko
+drwxr-xr-x root root 4096 ./lib/modules/5.4.40-yocto-standard/kernel/net/ipv6
+drwxr-xr-x root root 4096 ./lib/modules/5.4.40-yocto-standard/kernel/net/ipv6/netfilter
+-rw-r--r-- root root 6928 ./lib/modules/5.4.40-yocto-standard/kernel/net/ipv6/netfilter/ip6table_filter.ko
+-rw-r--r-- root root 32640 ./lib/modules/5.4.40-yocto-standard/kernel/net/ipv6/netfilter/ip6_tables.ko
+-rw-r--r-- root root 16472 ./lib/modules/5.4.40-yocto-standard/kernel/net/ipv6/netfilter/nf_defrag_ipv6.ko
+drwxr-xr-x root root 4096 ./lib/modules/5.4.40-yocto-standard/kernel/net/netfilter
+-rw-r--r-- root root 164400 ./lib/modules/5.4.40-yocto-standard/kernel/net/netfilter/nf_conntrack.ko
+-rw-r--r-- root root 45776 ./lib/modules/5.4.40-yocto-standard/kernel/net/netfilter/nf_nat.ko
+-rw-r--r-- root root 49480 ./lib/modules/5.4.40-yocto-standard/kernel/net/netfilter/x_tables.ko
+-rw-r--r-- root root 199 ./lib/modules/5.4.40-yocto-standard/modules.alias
+-rw-r--r-- root root 443 ./lib/modules/5.4.40-yocto-standard/modules.alias.bin
+-rw-r--r-- root root 9285 ./lib/modules/5.4.40-yocto-standard/modules.builtin
+-rw-r--r-- root root 10874 ./lib/modules/5.4.40-yocto-standard/modules.builtin.bin
+-rw-r--r-- root root 68434 ./lib/modules/5.4.40-yocto-standard/modules.builtin.modinfo
+-rw-r--r-- root root 1099 ./lib/modules/5.4.40-yocto-standard/modules.dep
+-rw-r--r-- root root 1794 ./lib/modules/5.4.40-yocto-standard/modules.dep.bin
+-rw-r--r-- root root 0 ./lib/modules/5.4.40-yocto-standard/modules.devname
+-rw-r--r-- root root 17785 ./lib/modules/5.4.40-yocto-standard/modules.order
+-rw-r--r-- root root 55 ./lib/modules/5.4.40-yocto-standard/modules.softdep
+-rw-r--r-- root root 7817 ./lib/modules/5.4.40-yocto-standard/modules.symbols
+-rw-r--r-- root root 9233 ./lib/modules/5.4.40-yocto-standard/modules.symbols.bin
+drwxr-xr-x root root 4096 ./lib/udev
+-rwxr-xr-x root root 104640 ./lib/udev/ata_id
+-rwxr-xr-x root root 116936 ./lib/udev/cdrom_id
+-rwxr-xr-x root root 100552 ./lib/udev/collect
+-rwxr-xr-x root root 14296 ./lib/udev/mtd_probe
+drwxr-xr-x root root 4096 ./lib/udev/rules.d
+-rw-r--r-- root root 321 ./lib/udev/rules.d/01-md-raid-creating.rules
+-rw-r--r-- root root 121 ./lib/udev/rules.d/50-firmware.rules
+-rw-r--r-- root root 3677 ./lib/udev/rules.d/50-udev-default.rules
+-rw-r--r-- root root 620 ./lib/udev/rules.d/60-block.rules
+-rw-r--r-- root root 1071 ./lib/udev/rules.d/60-cdrom_id.rules
+-rw-r--r-- root root 413 ./lib/udev/rules.d/60-drm.rules
+-rw-r--r-- root root 974 ./lib/udev/rules.d/60-evdev.rules
+-rw-r--r-- root root 282 ./lib/udev/rules.d/60-input-id.rules
+-rw-r--r-- root root 616 ./lib/udev/rules.d/60-persistent-alsa.rules
+-rw-r--r-- root root 2710 ./lib/udev/rules.d/60-persistent-input.rules
+-rw-r--r-- root root 6521 ./lib/udev/rules.d/60-persistent-storage.rules
+-rw-r--r-- root root 1509 ./lib/udev/rules.d/60-persistent-storage-tape.rules
+-rw-r--r-- root root 769 ./lib/udev/rules.d/60-persistent-v4l.rules
+-rw-r--r-- root root 727 ./lib/udev/rules.d/60-sensor.rules
+-rw-r--r-- root root 1190 ./lib/udev/rules.d/60-serial.rules
+-rw-r--r-- root root 2134 ./lib/udev/rules.d/63-md-raid-arrays.rules
+-rw-r--r-- root root 387 ./lib/udev/rules.d/64-btrfs-dm.rules
+-rw-r--r-- root root 574 ./lib/udev/rules.d/64-btrfs.rules
+-rw-r--r-- root root 1444 ./lib/udev/rules.d/64-md-raid-assembly.rules
+-rw-r--r-- root root 846 ./lib/udev/rules.d/69-md-clustered-confirm-device.rules
+-rw-r--r-- root root 432 ./lib/udev/rules.d/70-joystick.rules
+-rw-r--r-- root root 734 ./lib/udev/rules.d/70-mouse.rules
+-rw-r--r-- root root 473 ./lib/udev/rules.d/70-touchpad.rules
+-rw-r--r-- root root 452 ./lib/udev/rules.d/75-net-description.rules
+-rw-r--r-- root root 174 ./lib/udev/rules.d/75-probe_mtd.rules
+-rw-r--r-- root root 4816 ./lib/udev/rules.d/78-sound-card.rules
+-rw-r--r-- root root 615 ./lib/udev/rules.d/80-drivers.rules
+-rw-r--r-- root root 491 ./lib/udev/rules.d/80-net-name-slot.rules
+-rwxr-xr-x root root 109304 ./lib/udev/scsi_id
+-rwxr-xr-x root root 67776 ./lib/udev/v4l_id
+drwxr-xr-x root root 4096 ./media
+drwxr-xr-x root root 4096 ./mnt
+dr-xr-xr-x root root 4096 ./proc
+drwxr-xr-x root root 4096 ./run
+drwxr-xr-x root root 4096 ./sbin
+-rwxr-xr-x root root 64736 ./sbin/agetty
+-rwxr-xr-x root root 34792 ./sbin/badblocks
+lrwxrwxrwx root root 22 ./sbin/blkid -> /sbin/blkid.util-linux
+-rwxr-xr-x root root 120912 ./sbin/blkid.util-linux
+lrwxrwxrwx root root 25 ./sbin/blockdev -> /sbin/blockdev.util-linux
+-rwxr-xr-x root root 63536 ./sbin/blockdev.util-linux
+-rwxr-xr-x root root 22736 ./sbin/bootlogd
+-rwxr-xr-x root root 104568 ./sbin/bridge
+-rwxr-xr-x root root 96664 ./sbin/cfdisk
+-rwxr-xr-x root root 38952 ./sbin/ctrlaltdel
+-rwxr-xr-x root root 239064 ./sbin/debugfs
+lrwxrwxrwx root root 11 ./sbin/depmod.kmod -> ../bin/kmod
+lrwxrwxrwx root root 17 ./sbin/depmod -> /sbin/depmod.kmod
+-rwxr-xr-x root root 30768 ./sbin/dumpe2fs
+-rwxr-xr-x root root 14376 ./sbin/e2freefrag
+-rwxr-xr-x root root 330808 ./sbin/e2fsck
+-rwxr-xr-x root root 38952 ./sbin/e2image
+-rwxr-xr-x root root 30768 ./sbin/e2mmpstatus
+-rwxr-xr-x root root 22560 ./sbin/e2undo
+-rwxr-xr-x root root 26656 ./sbin/e4crypt
+-rwxr-xr-x root root 34776 ./sbin/e4defrag
+lrwxrwxrwx root root 22 ./sbin/fdisk -> /sbin/fdisk.util-linux
+-rwxr-xr-x root root 149600 ./sbin/fdisk.util-linux
+-rwxr-xr-x root root 18416 ./sbin/filefrag
+-rwxr-xr-x root root 330808 ./sbin/fsck.ext2
+-rwxr-xr-x root root 330808 ./sbin/fsck.ext3
+-rwxr-xr-x root root 330808 ./sbin/fsck.ext4
+lrwxrwxrwx root root 21 ./sbin/fsck -> /sbin/fsck.util-linux
+-rwxr-xr-x root root 55392 ./sbin/fsck.util-linux
+-rwxr-xr-x root root 14296 ./sbin/fstab-decode
+lrwxrwxrwx root root 23 ./sbin/fstrim -> /sbin/fstrim.util-linux
+-rwxr-xr-x root root 71728 ./sbin/fstrim.util-linux
+lrwxrwxrwx root root 12 ./sbin/getty -> /sbin/agetty
+lrwxrwxrwx root root 19 ./sbin/halt -> /sbin/halt.sysvinit
+-rwsr-xr-- root shutdown 22512 ./sbin/halt.sysvinit
+lrwxrwxrwx root root 24 ./sbin/hwclock -> /sbin/hwclock.util-linux
+-rwxr-xr-x root root 80048 ./sbin/hwclock.util-linux
+-rwxr-xr-x root root 3109 ./sbin/ifcfg
+lrwxrwxrwx root root 19 ./sbin/ifconfig -> /bin/busybox.nosuid
+lrwxrwxrwx root root 19 ./sbin/ifdown -> /bin/busybox.nosuid
+lrwxrwxrwx root root 19 ./sbin/ifup -> /bin/busybox.nosuid
+lrwxrwxrwx root root 19 ./sbin/init -> /sbin/init.sysvinit
+-rwxr-xr-x root root 47944 ./sbin/init.sysvinit
+lrwxrwxrwx root root 11 ./sbin/insmod.kmod -> ../bin/kmod
+lrwxrwxrwx root root 17 ./sbin/insmod -> /sbin/insmod.kmod
+-rwxr-xr-x root root 619960 ./sbin/ip.iproute2
+lrwxrwxrwx root root 17 ./sbin/ip -> /sbin/ip.iproute2
+-rwxr-xr-x root root 26664 ./sbin/killall5
+lrwxrwxrwx root root 19 ./sbin/klogd -> /bin/busybox.nosuid
+-rwxr-xr-x root root 887640 ./sbin/ldconfig
+lrwxrwxrwx root root 19 ./sbin/loadkmap -> /bin/busybox.nosuid
+lrwxrwxrwx root root 19 ./sbin/logread -> /bin/busybox.nosuid
+-rwxr-xr-x root root 14296 ./sbin/logsave
+lrwxrwxrwx root root 24 ./sbin/losetup -> /sbin/losetup.util-linux
+-rwxr-xr-x root root 112808 ./sbin/losetup.util-linux
+lrwxrwxrwx root root 15 ./sbin/lsmod -> /bin/lsmod.kmod
+-rwxr-xr-x root root 595280 ./sbin/mdadm
+-rwxr-xr-x root root 328880 ./sbin/mdmon
+-rwxr-xr-x root root 137512 ./sbin/mke2fs.e2fsprogs
+lrwxrwxrwx root root 22 ./sbin/mke2fs -> /sbin/mke2fs.e2fsprogs
+-rwxr-xr-x root root 137512 ./sbin/mkfs.ext2.e2fsprogs
+lrwxrwxrwx root root 25 ./sbin/mkfs.ext2 -> /sbin/mkfs.ext2.e2fsprogs
+-rwxr-xr-x root root 137512 ./sbin/mkfs.ext3
+-rwxr-xr-x root root 137512 ./sbin/mkfs.ext4
+-rwxr-xr-x root root 14296 ./sbin/mklost+found
+lrwxrwxrwx root root 23 ./sbin/mkswap -> /sbin/mkswap.util-linux
+-rwxr-xr-x root root 104504 ./sbin/mkswap.util-linux
+lrwxrwxrwx root root 11 ./sbin/modinfo.kmod -> ../bin/kmod
+lrwxrwxrwx root root 18 ./sbin/modinfo -> /sbin/modinfo.kmod
+lrwxrwxrwx root root 11 ./sbin/modprobe.kmod -> ../bin/kmod
+lrwxrwxrwx root root 19 ./sbin/modprobe -> /sbin/modprobe.kmod
+lrwxrwxrwx root root 20 ./sbin/nologin -> /sbin/nologin.shadow
+-rwxr-xr-x root root 14296 ./sbin/nologin.shadow
+-rwxr-xr-x root root 14384 ./sbin/nologin.util-linux
+lrwxrwxrwx root root 27 ./sbin/pivot_root -> /sbin/pivot_root.util-linux
+-rwxr-xr-x root root 14384 ./sbin/pivot_root.util-linux
+-rwxr-xr-x root root 2460 ./sbin/populate-extfs.sh
+lrwxrwxrwx root root 23 ./sbin/poweroff -> /sbin/poweroff.sysvinit
+lrwxrwxrwx root root 13 ./sbin/poweroff.sysvinit -> halt.sysvinit
+lrwxrwxrwx root root 21 ./sbin/reboot -> /sbin/reboot.sysvinit
+lrwxrwxrwx root root 13 ./sbin/reboot.sysvinit -> halt.sysvinit
+lrwxrwxrwx root root 11 ./sbin/rmmod.kmod -> ../bin/kmod
+lrwxrwxrwx root root 16 ./sbin/rmmod -> /sbin/rmmod.kmod
+lrwxrwxrwx root root 19 ./sbin/route -> /bin/busybox.nosuid
+-rwxr-xr-x root root 208 ./sbin/routef
+-rwxr-xr-x root root 1656 ./sbin/routel
+-rwxr-xr-x root root 75832 ./sbin/rtmon
+-rwxr-xr-x root root 70 ./sbin/rtpr
+lrwxrwxrwx root root 23 ./sbin/runlevel -> /sbin/runlevel.sysvinit
+-rwxr-xr-x root root 14304 ./sbin/runlevel.sysvinit
+lrwxrwxrwx root root 19 ./sbin/setconsole -> /bin/busybox.nosuid
+lrwxrwxrwx root root 23 ./sbin/shutdown -> /sbin/shutdown.sysvinit
+-rwsr-xr-- root shutdown 30744 ./sbin/shutdown.sysvinit
+lrwxrwxrwx root root 19 ./sbin/start-stop-daemon -> /bin/busybox.nosuid
+lrwxrwxrwx root root 24 ./sbin/sulogin -> /sbin/sulogin.util-linux
+-rwxr-xr-x root root 47152 ./sbin/sulogin.util-linux
+lrwxrwxrwx root root 24 ./sbin/swapoff -> /sbin/swapoff.util-linux
+-rwxr-xr-x root root 22576 ./sbin/swapoff.util-linux
+lrwxrwxrwx root root 23 ./sbin/swapon -> /sbin/swapon.util-linux
+-rwxr-xr-x root root 51248 ./sbin/swapon.util-linux
+lrwxrwxrwx root root 28 ./sbin/switch_root -> /sbin/switch_root.util-linux
+-rwxr-xr-x root root 14384 ./sbin/switch_root.util-linux
+-rwxr-xr-x root root 30768 ./sbin/sysctl.procps
+lrwxrwxrwx root root 19 ./sbin/sysctl -> /sbin/sysctl.procps
+lrwxrwxrwx root root 19 ./sbin/syslogd -> /bin/busybox.nosuid
+lrwxrwxrwx root root 4 ./sbin/telinit -> init
+lrwxrwxrwx root root 16 ./sbin/udevadm -> /usr/bin/udevadm
+-rwxr-xr-x root root 334168 ./sbin/udevd
+lrwxrwxrwx root root 19 ./sbin/udhcpc -> /bin/busybox.nosuid
+-rwxr-xr-x root root 133264 ./sbin/v86d
+lrwxrwxrwx root root 17 ./sbin/vigr -> /sbin/vigr.shadow
+lrwxrwxrwx root root 11 ./sbin/vigr.shadow -> vipw.shadow
+lrwxrwxrwx root root 17 ./sbin/vipw -> /sbin/vipw.shadow
+-rwxr-xr-x root root 61496 ./sbin/vipw.shadow
+dr-xr-xr-x root root 4096 ./sys
+drwxrwxrwt root root 4096 ./tmp
+drwxr-xr-x root root 4096 ./usr
+drwxr-xr-x root root 20480 ./usr/bin
+lrwxrwxrwx root root 36 ./usr/bin/addr2line -> /usr/bin/x86_64-poky-linux-addr2line
+-rwxr-xr-x root root 43208 ./usr/bin/arch.coreutils
+lrwxrwxrwx root root 23 ./usr/bin/arch -> /usr/bin/arch.coreutils
+lrwxrwxrwx root root 29 ./usr/bin/ar -> /usr/bin/x86_64-poky-linux-ar
+lrwxrwxrwx root root 29 ./usr/bin/as -> /usr/bin/x86_64-poky-linux-as
+-rwxr-xr-x root root 14288 ./usr/bin/attr
+lrwxrwxrwx root root 13 ./usr/bin/awk -> /usr/bin/gawk
+-rwxr-xr-x root root 63680 ./usr/bin/b2sum
+-rwxr-xr-x root root 47264 ./usr/bin/base32
+-rwxr-xr-x root root 47272 ./usr/bin/base64.coreutils
+-rwxr-xr-x root root 43176 ./usr/bin/basename.coreutils
+lrwxrwxrwx root root 27 ./usr/bin/basename -> /usr/bin/basename.coreutils
+-rwxr-xr-x root root 59552 ./usr/bin/basenc
+-rwxr-xr-x root root 96928 ./usr/bin/bc.bc
+lrwxrwxrwx root root 14 ./usr/bin/bc -> /usr/bin/bc.bc
+lrwxrwxrwx root root 19 ./usr/bin/[[ -> /bin/busybox.nosuid
+-rwxr-xr-x root root 455224 ./usr/bin/bison
+-rwxr-xr-x root root 933632 ./usr/bin/btrfs
+lrwxrwxrwx root root 5 ./usr/bin/btrfsck -> btrfs
+-rwxr-xr-x root root 527560 ./usr/bin/btrfs-convert
+-rwxr-xr-x root root 490760 ./usr/bin/btrfs-find-root
+-rwxr-xr-x root root 519360 ./usr/bin/btrfs-image
+-rwxr-xr-x root root 498888 ./usr/bin/btrfs-map-logical
+-rwxr-xr-x root root 494792 ./usr/bin/btrfs-select-super
+-rwxr-xr-x root root 494784 ./usr/bin/btrfstune
+lrwxrwxrwx root root 11 ./usr/bin/bunzip2.bzip2 -> bzip2.bzip2
+lrwxrwxrwx root root 22 ./usr/bin/bunzip2 -> /usr/bin/bunzip2.bzip2
+lrwxrwxrwx root root 11 ./usr/bin/bzcat.bzip2 -> bzip2.bzip2
+lrwxrwxrwx root root 20 ./usr/bin/bzcat -> /usr/bin/bzcat.bzip2
+lrwxrwxrwx root root 6 ./usr/bin/bzcmp -> bzdiff
+-rwxr-xr-x root root 2140 ./usr/bin/bzdiff
+lrwxrwxrwx root root 6 ./usr/bin/bzegrep -> bzgrep
+lrwxrwxrwx root root 6 ./usr/bin/bzfgrep -> bzgrep
+-rwxr-xr-x root root 2054 ./usr/bin/bzgrep
+-rwxr-xr-x root root 38952 ./usr/bin/bzip2.bzip2
+-rwxr-xr-x root root 14296 ./usr/bin/bzip2recover
+lrwxrwxrwx root root 20 ./usr/bin/bzip2 -> /usr/bin/bzip2.bzip2
+lrwxrwxrwx root root 6 ./usr/bin/bzless -> bzmore
+-rwxr-xr-x root root 1259 ./usr/bin/bzmore
+lrwxrwxrwx root root 23 ./usr/bin/cal -> /usr/bin/cal.util-linux
+-rwxr-xr-x root root 67936 ./usr/bin/cal.util-linux
+lrwxrwxrwx root root 34 ./usr/bin/c++filt -> /usr/bin/x86_64-poky-linux-c++filt
+-rwxr-xr-x root root 14288 ./usr/bin/chacl
+-rwsr-xr-x root root 71776 ./usr/bin/chage
+-rwxr-xr-x root root 71848 ./usr/bin/chcon.coreutils
+lrwxrwxrwx root root 24 ./usr/bin/chcon -> /usr/bin/chcon.coreutils
+-rwsr-xr-x root root 54032 ./usr/bin/chfn.shadow
+lrwxrwxrwx root root 20 ./usr/bin/chfn -> /usr/bin/chfn.shadow
+-rwxr-xr-x root root 63528 ./usr/bin/chmem
+-rwxr-xr-x root root 51240 ./usr/bin/choom
+lrwxrwxrwx root root 24 ./usr/bin/chrt -> /usr/bin/chrt.util-linux
+-rwxr-xr-x root root 34864 ./usr/bin/chrt.util-linux
+-rwsr-xr-x root root 53904 ./usr/bin/chsh.shadow
+lrwxrwxrwx root root 20 ./usr/bin/chsh -> /usr/bin/chsh.shadow
+lrwxrwxrwx root root 19 ./usr/bin/chvt -> /bin/busybox.nosuid
+-rwxr-xr-x root root 43176 ./usr/bin/cksum.coreutils
+lrwxrwxrwx root root 24 ./usr/bin/cksum -> /usr/bin/cksum.coreutils
+lrwxrwxrwx root root 19 ./usr/bin/clear -> /bin/busybox.nosuid
+-rwxr-xr-x root root 47176 ./usr/bin/cmp.diffutils
+lrwxrwxrwx root root 22 ./usr/bin/cmp -> /usr/bin/cmp.diffutils
+-rwxr-xr-x root root 34848 ./usr/bin/col
+-rwxr-xr-x root root 14368 ./usr/bin/colcrt
+-rwxr-xr-x root root 30760 ./usr/bin/colrm
+-rwxr-xr-x root root 51240 ./usr/bin/column
+-rwxr-xr-x root root 51400 ./usr/bin/comm.coreutils
+lrwxrwxrwx root root 23 ./usr/bin/comm -> /usr/bin/comm.coreutils
+-rwxr-xr-x root root 1342 ./usr/bin/compile_et
+-rwxr-xr-x root root 6214 ./usr/bin/c_rehash
+-rwxr-xr-x root root 125128 ./usr/bin/csplit.coreutils
+lrwxrwxrwx root root 25 ./usr/bin/csplit -> /usr/bin/csplit.coreutils
+-rwxr-xr-x root root 55496 ./usr/bin/cut.coreutils
+lrwxrwxrwx root root 22 ./usr/bin/cut -> /usr/bin/cut.coreutils
+-rwxr-xr-x root root 14304 ./usr/bin/dbus-cleanup-sockets
+-rwxr-xr-x root root 223688 ./usr/bin/dbus-daemon
+-rwxr-xr-x root root 30680 ./usr/bin/dbus-launch
+-rwxr-xr-x root root 30688 ./usr/bin/dbus-monitor
+-rwxr-xr-x root root 14304 ./usr/bin/dbus-run-session
+-rwxr-xr-x root root 30680 ./usr/bin/dbus-send
+-rwxr-xr-x root root 26672 ./usr/bin/dbus-test-tool
+-rwxr-xr-x root root 14320 ./usr/bin/dbus-update-activation-environment
+-rwxr-xr-x root root 14296 ./usr/bin/dbus-uuidgen
+-rwxr-xr-x root root 55352 ./usr/bin/dc.bc
+lrwxrwxrwx root root 14 ./usr/bin/dc -> /usr/bin/dc.bc
+lrwxrwxrwx root root 19 ./usr/bin/deallocvt -> /bin/busybox.nosuid
+-rwxr-xr-x root root 105232 ./usr/bin/df.coreutils
+-rwxr-xr-x root root 67760 ./usr/bin/diff3
+-rwxr-xr-x root root 223544 ./usr/bin/diff.diffutils
+lrwxrwxrwx root root 23 ./usr/bin/diff -> /usr/bin/diff.diffutils
+-rwxr-xr-x root root 71864 ./usr/bin/dircolors.coreutils
+lrwxrwxrwx root root 28 ./usr/bin/dircolors -> /usr/bin/dircolors.coreutils
+-rwxr-xr-x root root 162448 ./usr/bin/dir.coreutils
+-rwxr-xr-x root root 43176 ./usr/bin/dirname.coreutils
+lrwxrwxrwx root root 26 ./usr/bin/dirname -> /usr/bin/dirname.coreutils
+lrwxrwxrwx root root 22 ./usr/bin/dir -> /usr/bin/dir.coreutils
+-rwxr-xr-x root root 194760 ./usr/bin/du.coreutils
+lrwxrwxrwx root root 19 ./usr/bin/dumpleases -> /bin/busybox.nosuid
+lrwxrwxrwx root root 21 ./usr/bin/du -> /usr/bin/du.coreutils
+lrwxrwxrwx root root 30 ./usr/bin/dwp -> /usr/bin/x86_64-poky-linux-dwp
+lrwxrwxrwx root root 25 ./usr/bin/eject -> /usr/bin/eject.util-linux
+-rwxr-xr-x root root 79920 ./usr/bin/eject.util-linux
+lrwxrwxrwx root root 34 ./usr/bin/elfedit -> /usr/bin/x86_64-poky-linux-elfedit
+-rwxr-xr-x root root 55904 ./usr/bin/env.coreutils
+lrwxrwxrwx root root 22 ./usr/bin/env -> /usr/bin/env.coreutils
+-rwxr-xr-x root root 39016 ./usr/bin/eu-ar
+-rwxr-xr-x root root 28656 ./usr/bin/eu-elfclassify
+-rwxr-xr-x root root 350840 ./usr/bin/eu-elfcmp
+-rwxr-xr-x root root 31160 ./usr/bin/eu-elfcompress
+-rwxr-xr-x root root 432760 ./usr/bin/eu-elflint
+-rwxr-xr-x root root 22672 ./usr/bin/eu-findtextrel
+-rwxr-xr-x root root 2911 ./usr/bin/eu-make-debug-archive
+-rwxr-xr-x root root 355056 ./usr/bin/eu-objdump
+-rwxr-xr-x root root 22568 ./usr/bin/eu-ranlib
+-rwxr-xr-x root root 27600 ./usr/bin/eu-stack
+-rwxr-xr-x root root 26736 ./usr/bin/eu-strings
+-rwxr-xr-x root root 51240 ./usr/bin/eu-unstrip
+-rwxr-xr-x root root 47304 ./usr/bin/expand.coreutils
+lrwxrwxrwx root root 25 ./usr/bin/expand -> /usr/bin/expand.coreutils
+-rwsr-xr-x root root 36336 ./usr/bin/expiry
+-rwxr-xr-x root root 125096 ./usr/bin/expr.coreutils
+lrwxrwxrwx root root 23 ./usr/bin/expr -> /usr/bin/expr.coreutils
+-rwxr-xr-x root root 84168 ./usr/bin/factor.coreutils
+lrwxrwxrwx root root 25 ./usr/bin/factor -> /usr/bin/factor.coreutils
+-rwxr-xr-x root root 22784 ./usr/bin/faillog
+lrwxrwxrwx root root 29 ./usr/bin/fallocate -> /usr/bin/fallocate.util-linux
+-rwxr-xr-x root root 30776 ./usr/bin/fallocate.util-linux
+-rwxr-xr-x root root 92656 ./usr/bin/filan
+-rwxr-xr-x root root 34904 ./usr/bin/fincore
+-rwxr-xr-x root root 324064 ./usr/bin/find.findutils
+-rwxr-xr-x root root 68840 ./usr/bin/findmnt
+lrwxrwxrwx root root 23 ./usr/bin/find -> /usr/bin/find.findutils
+-rwxr-xr-x root root 443016 ./usr/bin/flex
+lrwxrwxrwx root root 4 ./usr/bin/flex++ -> flex
+lrwxrwxrwx root root 25 ./usr/bin/flock -> /usr/bin/flock.util-linux
+-rwxr-xr-x root root 34944 ./usr/bin/flock.util-linux
+-rwxr-xr-x root root 55464 ./usr/bin/fmt.coreutils
+lrwxrwxrwx root root 22 ./usr/bin/fmt -> /usr/bin/fmt.coreutils
+-rwxr-xr-x root root 47272 ./usr/bin/fold.coreutils
+lrwxrwxrwx root root 23 ./usr/bin/fold -> /usr/bin/fold.coreutils
+-rwxr-xr-x root root 26672 ./usr/bin/free.procps
+lrwxrwxrwx root root 20 ./usr/bin/free -> /usr/bin/free.procps
+-rwxr-xr-x root root 1185 ./usr/bin/fsck.btrfs
+-rwxr-xr-x root root 26576 ./usr/bin/funzip
+lrwxrwxrwx root root 19 ./usr/bin/fuser -> /bin/busybox.nosuid
+-rwxr-xr-x root root 653560 ./usr/bin/gawk
+-rwxr-xr-x root root 653560 ./usr/bin/gawk-5.0.1
+-rwxr-xr-x root root 26808 ./usr/bin/gencat
+-rwxr-xr-x root root 34912 ./usr/bin/getconf
+-rwxr-xr-x root root 35280 ./usr/bin/getent
+-rwxr-xr-x root root 31312 ./usr/bin/getfacl
+-rwxr-xr-x root root 23032 ./usr/bin/getfattr
+lrwxrwxrwx root root 28 ./usr/bin/ginsttest-runner -> gnome-desktop-testing-runner
+-rwxr-xr-x root root 4049 ./usr/bin/g-ir-annotation-tool
+-rwxr-xr-x root root 187384 ./usr/bin/g-ir-compiler
+-rwxr-xr-x root root 42968 ./usr/bin/g-ir-generate
+-rwxr-xr-x root root 14296 ./usr/bin/g-ir-inspect
+-rwxr-xr-x root root 4040 ./usr/bin/g-ir-scanner
+-rwxr-xr-x root root 35384 ./usr/bin/gnome-desktop-testing-runner
+-rwsr-xr-x root root 71624 ./usr/bin/gpasswd
+lrwxrwxrwx root root 32 ./usr/bin/gprof -> /usr/bin/x86_64-poky-linux-gprof
+-rwxr-xr-x root root 43176 ./usr/bin/groups.coreutils
+-rwxr-xr-x root root 14296 ./usr/bin/groups.shadow
+lrwxrwxrwx root root 22 ./usr/bin/groups -> /usr/bin/groups.shadow
+-rwxr-xr-x root root 22568 ./usr/bin/hardlink
+-rwxr-xr-x root root 55496 ./usr/bin/head.coreutils
+lrwxrwxrwx root root 23 ./usr/bin/head -> /usr/bin/head.coreutils
+lrwxrwxrwx root root 27 ./usr/bin/hexdump -> /usr/bin/hexdump.util-linux
+-rwxr-xr-x root root 55352 ./usr/bin/hexdump.util-linux
+-rwxr-xr-x root root 43176 ./usr/bin/hostid.coreutils
+lrwxrwxrwx root root 25 ./usr/bin/hostid -> /usr/bin/hostid.coreutils
+lrwxrwxrwx root root 7 ./usr/bin/i386 -> setarch
+-rwxr-xr-x root root 59608 ./usr/bin/iconv
+-rwxr-xr-x root root 55496 ./usr/bin/id.coreutils
+lrwxrwxrwx root root 21 ./usr/bin/id -> /usr/bin/id.coreutils
+-rwxr-xr-x root root 141560 ./usr/bin/install.coreutils
+lrwxrwxrwx root root 26 ./usr/bin/install -> /usr/bin/install.coreutils
+lrwxrwxrwx root root 26 ./usr/bin/ionice -> /usr/bin/ionice.util-linux
+-rwxr-xr-x root root 30768 ./usr/bin/ionice.util-linux
+-rwxr-xr-x root root 30824 ./usr/bin/ipcmk
+-rwxr-xr-x root root 34856 ./usr/bin/ipcrm
+-rwxr-xr-x root root 71720 ./usr/bin/ipcs
+lrwxrwxrwx root root 30 ./usr/bin/iptables-xml -> /usr/sbin/xtables-legacy-multi
+-rwxr-xr-x root root 30760 ./usr/bin/isosize
+-rwxr-xr-x root root 59592 ./usr/bin/join.coreutils
+lrwxrwxrwx root root 23 ./usr/bin/join -> /usr/bin/join.coreutils
+lrwxrwxrwx root root 19 ./usr/bin/killall -> /bin/busybox.nosuid
+lrwxrwxrwx root root 13 ./usr/bin/lastb.sysvinit -> last.sysvinit
+lrwxrwxrwx root root 23 ./usr/bin/lastb -> /usr/bin/lastb.sysvinit
+lrwxrwxrwx root root 15 ./usr/bin/lastb.util-linux -> last.util-linux
+-rwxr-xr-x root root 32032 ./usr/bin/lastlog
+-rwxr-xr-x root root 22512 ./usr/bin/last.sysvinit
+lrwxrwxrwx root root 22 ./usr/bin/last -> /usr/bin/last.sysvinit
+-rwxr-xr-x root root 47152 ./usr/bin/last.util-linux
+-rwxr-xr-x root root 63648 ./usr/bin/lbracket.coreutils
+lrwxrwxrwx root root 33 ./usr/bin/ld.bfd -> /usr/bin/x86_64-poky-linux-ld.bfd
+lrwxrwxrwx root root 34 ./usr/bin/ld.gold -> /usr/bin/x86_64-poky-linux-ld.gold
+lrwxrwxrwx root root 29 ./usr/bin/ld -> /usr/bin/x86_64-poky-linux-ld
+lrwxrwxrwx root root 19 ./usr/bin/less -> /bin/busybox.nosuid
+-rwxr-xr-x root root 173 ./usr/bin/libpng16-config
+lrwxrwxrwx root root 15 ./usr/bin/libpng-config -> libpng16-config
+-rwxr-xr-x root root 43176 ./usr/bin/link.coreutils
+lrwxrwxrwx root root 23 ./usr/bin/link -> /usr/bin/link.coreutils
+lrwxrwxrwx root root 7 ./usr/bin/linux32 -> setarch
+lrwxrwxrwx root root 7 ./usr/bin/linux64 -> setarch
+-rwxr-xr-x root root 54648 ./usr/bin/locale
+-rwxr-xr-x root root 170408 ./usr/bin/locate
+lrwxrwxrwx root root 26 ./usr/bin/logger -> /usr/bin/logger.util-linux
+-rwxr-xr-x root root 47760 ./usr/bin/logger.util-linux
+-rwxr-xr-x root root 43176 ./usr/bin/logname.coreutils
+lrwxrwxrwx root root 26 ./usr/bin/logname -> /usr/bin/logname.coreutils
+-rwxr-xr-x root root 14368 ./usr/bin/look
+-rwxr-xr-x root root 14296 ./usr/bin/lsattr
+-rwxr-xr-x root root 145448 ./usr/bin/lsblk
+-rwxr-xr-x root root 100392 ./usr/bin/lscpu
+-rwxr-xr-x root root 92200 ./usr/bin/lsipc
+-rwxr-xr-x root root 39288 ./usr/bin/lslocks
+-rwxr-xr-x root root 67624 ./usr/bin/lslogins
+-rwxr-xr-x root root 67624 ./usr/bin/lsmem
+-rwxr-xr-x root root 51240 ./usr/bin/lsns
+lrwxrwxrwx root root 17 ./usr/bin/lzcat -> /usr/bin/lzcat.xz
+lrwxrwxrwx root root 5 ./usr/bin/lzcat.xz -> xz.xz
+lrwxrwxrwx root root 6 ./usr/bin/lzcmp -> xzdiff
+lrwxrwxrwx root root 6 ./usr/bin/lzdiff -> xzdiff
+lrwxrwxrwx root root 6 ./usr/bin/lzegrep -> xzgrep
+lrwxrwxrwx root root 6 ./usr/bin/lzfgrep -> xzgrep
+lrwxrwxrwx root root 6 ./usr/bin/lzgrep -> xzgrep
+lrwxrwxrwx root root 6 ./usr/bin/lzless -> xzless
+-rwxr-xr-x root root 14376 ./usr/bin/lzmadec
+-rwxr-xr-x root root 14376 ./usr/bin/lzmainfo
+lrwxrwxrwx root root 16 ./usr/bin/lzma -> /usr/bin/lzma.xz
+lrwxrwxrwx root root 5 ./usr/bin/lzma.xz -> xz.xz
+lrwxrwxrwx root root 6 ./usr/bin/lzmore -> xzmore
+-rwxr-xr-x root root 243992 ./usr/bin/m4
+-rwxr-xr-x root root 243208 ./usr/bin/make
+-rwxr-xr-x root root 22712 ./usr/bin/makedb
+-rwxr-xr-x root root 34920 ./usr/bin/mcookie
+-rwxr-xr-x root root 55496 ./usr/bin/md5sum.coreutils
+lrwxrwxrwx root root 25 ./usr/bin/md5sum -> /usr/bin/md5sum.coreutils
+-rwxr-xr-x root root 14304 ./usr/bin/mesg.sysvinit
+lrwxrwxrwx root root 22 ./usr/bin/mesg -> /usr/bin/mesg.sysvinit
+-rwxr-xr-x root root 14376 ./usr/bin/mesg.util-linux
+lrwxrwxrwx root root 19 ./usr/bin/microcom -> /bin/busybox.nosuid
+-rwxr-xr-x root root 1102 ./usr/bin/mk_cmds
+-rwxr-xr-x root root 47272 ./usr/bin/mkfifo.coreutils
+lrwxrwxrwx root root 25 ./usr/bin/mkfifo -> /usr/bin/mkfifo.coreutils
+-rwxr-xr-x root root 519360 ./usr/bin/mkfs.btrfs
+-rwxr-xr-x root root 55464 ./usr/bin/mktemp.coreutils
+-rwxr-xr-x root root 34856 ./usr/bin/namei
+lrwxrwxrwx root root 19 ./usr/bin/nc -> /bin/busybox.nosuid
+-rwxr-xr-x root root 173 ./usr/bin/ncurses5-config
+-rwxr-xr-x root root 173 ./usr/bin/ncurses6-config
+-rwxr-xr-x root root 175 ./usr/bin/ncursesw5-config
+-rwxr-xr-x root root 175 ./usr/bin/ncursesw6-config
+-rwsr-xr-x root root 41136 ./usr/bin/newgidmap
+-rwsr-xr-x root root 40312 ./usr/bin/newgrp.shadow
+lrwxrwxrwx root root 22 ./usr/bin/newgrp -> /usr/bin/newgrp.shadow
+-rwsr-xr-x root root 37040 ./usr/bin/newuidmap
+-rwxr-xr-x root root 47272 ./usr/bin/nice.coreutils
+-rwxr-xr-x root root 117000 ./usr/bin/nl.coreutils
+lrwxrwxrwx root root 21 ./usr/bin/nl -> /usr/bin/nl.coreutils
+lrwxrwxrwx root root 29 ./usr/bin/nm -> /usr/bin/x86_64-poky-linux-nm
+-rwxr-xr-x root root 47272 ./usr/bin/nohup.coreutils
+lrwxrwxrwx root root 24 ./usr/bin/nohup -> /usr/bin/nohup.coreutils
+-rwxr-xr-x root root 47272 ./usr/bin/nproc.coreutils
+lrwxrwxrwx root root 24 ./usr/bin/nproc -> /usr/bin/nproc.coreutils
+lrwxrwxrwx root root 27 ./usr/bin/nsenter -> /usr/bin/nsenter.util-linux
+-rwxr-xr-x root root 35072 ./usr/bin/nsenter.util-linux
+lrwxrwxrwx root root 19 ./usr/bin/nslookup -> /bin/busybox.nosuid
+-rwxr-xr-x root root 71904 ./usr/bin/numfmt
+lrwxrwxrwx root root 34 ./usr/bin/objcopy -> /usr/bin/x86_64-poky-linux-objcopy
+lrwxrwxrwx root root 34 ./usr/bin/objdump -> /usr/bin/x86_64-poky-linux-objdump
+-rwxr-xr-x root root 80072 ./usr/bin/od.coreutils
+lrwxrwxrwx root root 21 ./usr/bin/od -> /usr/bin/od.coreutils
+-rwxr-xr-x root root 736944 ./usr/bin/openssl
+lrwxrwxrwx root root 19 ./usr/bin/openvt -> /bin/busybox.nosuid
+-rwsr-xr-x root root 67760 ./usr/bin/passwd.shadow
+lrwxrwxrwx root root 22 ./usr/bin/passwd -> /usr/bin/passwd.shadow
+-rwxr-xr-x root root 47304 ./usr/bin/paste.coreutils
+lrwxrwxrwx root root 24 ./usr/bin/paste -> /usr/bin/paste.coreutils
+lrwxrwxrwx root root 19 ./usr/bin/patch -> /bin/busybox.nosuid
+-rwxr-xr-x root root 43176 ./usr/bin/pathchk.coreutils
+lrwxrwxrwx root root 26 ./usr/bin/pathchk -> /usr/bin/pathchk.coreutils
+-rwxr-xr-x root root 14520 ./usr/bin/pcprofiledump
+-rwxr-xr-x root root 165 ./usr/bin/pcre-config
+-rwxr-xr-x root root 14288 ./usr/bin/perl
+-rwxr-xr-x root root 30776 ./usr/bin/pgrep.procps
+lrwxrwxrwx root root 21 ./usr/bin/pgrep -> /usr/bin/pgrep.procps
+-rwxr-xr-x root root 47304 ./usr/bin/pinky.coreutils
+lrwxrwxrwx root root 24 ./usr/bin/pinky -> /usr/bin/pinky.coreutils
+-rwxr-xr-x root root 30776 ./usr/bin/pkill.procps
+lrwxrwxrwx root root 21 ./usr/bin/pkill -> /usr/bin/pkill.procps
+-rwxr-xr-x root root 22712 ./usr/bin/pldd
+-rwxr-xr-x root root 34872 ./usr/bin/pmap.procps
+lrwxrwxrwx root root 20 ./usr/bin/pmap -> /usr/bin/pmap.procps
+-rwxr-xr-x root root 84232 ./usr/bin/pr.coreutils
+-rwxr-xr-x root root 43176 ./usr/bin/printenv.coreutils
+-rwxr-xr-x root root 63648 ./usr/bin/printf.coreutils
+lrwxrwxrwx root root 25 ./usr/bin/printf -> /usr/bin/printf.coreutils
+-rwxr-xr-x root root 39480 ./usr/bin/prlimit
+-rwxr-xr-x root root 80288 ./usr/bin/procan
+lrwxrwxrwx root root 21 ./usr/bin/pr -> /usr/bin/pr.coreutils
+-rwxr-xr-x root root 145640 ./usr/bin/ptx.coreutils
+lrwxrwxrwx root root 22 ./usr/bin/ptx -> /usr/bin/ptx.coreutils
+-rwxr-xr-x root root 14376 ./usr/bin/pwdx.procps
+lrwxrwxrwx root root 20 ./usr/bin/pwdx -> /usr/bin/pwdx.procps
+-rwxr-xr-x root root 14296 ./usr/bin/python3.8
+-rwxr-xr-x root root 2114 ./usr/bin/python3.8-config-lib
+lrwxrwxrwx root root 29 ./usr/bin/python3.8-config -> /usr/bin/python3.8-config-lib
+lrwxrwxrwx root root 16 ./usr/bin/python3-config -> python3.8-config
+lrwxrwxrwx root root 9 ./usr/bin/python3 -> python3.8
+lrwxrwxrwx root root 33 ./usr/bin/ranlib -> /usr/bin/x86_64-poky-linux-ranlib
+-rwxr-xr-x root root 14296 ./usr/bin/readbootlog
+lrwxrwxrwx root root 34 ./usr/bin/readelf -> /usr/bin/x86_64-poky-linux-readelf
+-rwxr-xr-x root root 55464 ./usr/bin/readlink.coreutils
+lrwxrwxrwx root root 27 ./usr/bin/readlink -> /usr/bin/readlink.coreutils
+-rwxr-xr-x root root 55496 ./usr/bin/realpath.coreutils
+lrwxrwxrwx root root 27 ./usr/bin/realpath -> /usr/bin/realpath.coreutils
+-rwxr-xr-x root root 22560 ./usr/bin/rename
+lrwxrwxrwx root root 26 ./usr/bin/renice -> /usr/bin/renice.util-linux
+-rwxr-xr-x root root 14384 ./usr/bin/renice.util-linux
+lrwxrwxrwx root root 19 ./usr/bin/reset -> /bin/busybox.nosuid
+lrwxrwxrwx root root 19 ./usr/bin/resize -> /bin/busybox.nosuid
+lrwxrwxrwx root root 23 ./usr/bin/rev -> /usr/bin/rev.util-linux
+-rwxr-xr-x root root 14376 ./usr/bin/rev.util-linux
+-rwxr-xr-x root root 43176 ./usr/bin/runcon.coreutils
+lrwxrwxrwx root root 25 ./usr/bin/runcon -> /usr/bin/runcon.coreutils
+-rwxr-xr-x root root 67624 ./usr/bin/script
+-rwxr-xr-x root root 55336 ./usr/bin/scriptlive
+-rwxr-xr-x root root 43056 ./usr/bin/scriptreplay
+-rwxr-xr-x root root 51264 ./usr/bin/sdiff
+-rwxr-xr-x root root 63656 ./usr/bin/seq.coreutils
+lrwxrwxrwx root root 22 ./usr/bin/seq -> /usr/bin/seq.coreutils
+-rwxr-xr-x root root 26936 ./usr/bin/setarch
+-rwxr-xr-x root root 39568 ./usr/bin/setfacl
+-rwxr-xr-x root root 18696 ./usr/bin/setfattr.attr
+lrwxrwxrwx root root 22 ./usr/bin/setfattr -> /usr/bin/setfattr.attr
+lrwxrwxrwx root root 27 ./usr/bin/setpriv -> /usr/bin/setpriv.util-linux
+-rwxr-xr-x root root 47160 ./usr/bin/setpriv.util-linux
+lrwxrwxrwx root root 26 ./usr/bin/setsid -> /usr/bin/setsid.util-linux
+-rwxr-xr-x root root 14384 ./usr/bin/setsid.util-linux
+-rwxr-xr-x root root 47144 ./usr/bin/setterm
+lrwxrwxrwx root root 13 ./usr/bin/sg -> newgrp.shadow
+-rwxr-xr-x root root 59592 ./usr/bin/sha1sum.coreutils
+lrwxrwxrwx root root 26 ./usr/bin/sha1sum -> /usr/bin/sha1sum.coreutils
+-rwxr-xr-x root root 67784 ./usr/bin/sha224sum.coreutils
+lrwxrwxrwx root root 28 ./usr/bin/sha224sum -> /usr/bin/sha224sum.coreutils
+-rwxr-xr-x root root 67784 ./usr/bin/sha256sum.coreutils
+lrwxrwxrwx root root 28 ./usr/bin/sha256sum -> /usr/bin/sha256sum.coreutils
+-rwxr-xr-x root root 71880 ./usr/bin/sha384sum.coreutils
+lrwxrwxrwx root root 28 ./usr/bin/sha384sum -> /usr/bin/sha384sum.coreutils
+-rwxr-xr-x root root 71880 ./usr/bin/sha512sum.coreutils
+lrwxrwxrwx root root 28 ./usr/bin/sha512sum -> /usr/bin/sha512sum.coreutils
+-rwxr-xr-x root root 67784 ./usr/bin/shred.coreutils
+lrwxrwxrwx root root 24 ./usr/bin/shred -> /usr/bin/shred.coreutils
+-rwxr-xr-x root root 63656 ./usr/bin/shuf.coreutils
+lrwxrwxrwx root root 23 ./usr/bin/shuf -> /usr/bin/shuf.coreutils
+lrwxrwxrwx root root 31 ./usr/bin/size -> /usr/bin/x86_64-poky-linux-size
+-rwxr-xr-x root root 30768 ./usr/bin/skill.procps
+lrwxrwxrwx root root 21 ./usr/bin/skill -> /usr/bin/skill.procps
+-rwxr-xr-x root root 22568 ./usr/bin/slabtop
+-rwxr-xr-x root root 30768 ./usr/bin/snice.procps
+lrwxrwxrwx root root 21 ./usr/bin/snice -> /usr/bin/snice.procps
+-rwxr-xr-x root root 380104 ./usr/bin/socat
+-rwxr-xr-x root root 117200 ./usr/bin/sort.coreutils
+lrwxrwxrwx root root 23 ./usr/bin/sort -> /usr/bin/sort.coreutils
+-rwxr-xr-x root root 64128 ./usr/bin/split.coreutils
+lrwxrwxrwx root root 24 ./usr/bin/split -> /usr/bin/split.coreutils
+-rwxr-xr-x root root 30896 ./usr/bin/sprof
+-rwxr-xr-x root root 63648 ./usr/bin/stdbuf
+lrwxrwxrwx root root 34 ./usr/bin/strings -> /usr/bin/x86_64-poky-linux-strings
+lrwxrwxrwx root root 32 ./usr/bin/strip -> /usr/bin/x86_64-poky-linux-strip
+-rwxr-xr-x root root 51376 ./usr/bin/sum.coreutils
+lrwxrwxrwx root root 22 ./usr/bin/sum -> /usr/bin/sum.coreutils
+-rwxr-xr-x root root 112808 ./usr/bin/tac.coreutils
+lrwxrwxrwx root root 22 ./usr/bin/tac -> /usr/bin/tac.coreutils
+-rwxr-xr-x root root 80104 ./usr/bin/tail.coreutils
+lrwxrwxrwx root root 23 ./usr/bin/tail -> /usr/bin/tail.coreutils
+lrwxrwxrwx root root 27 ./usr/bin/taskset -> /usr/bin/taskset.util-linux
+-rwxr-xr-x root root 34864 ./usr/bin/taskset.util-linux
+-rwxr-xr-x root root 47304 ./usr/bin/tee.coreutils
+lrwxrwxrwx root root 22 ./usr/bin/tee -> /usr/bin/tee.coreutils
+lrwxrwxrwx root root 19 ./usr/bin/telnet -> /bin/busybox.nosuid
+-rwxr-xr-x root root 59544 ./usr/bin/test.coreutils
+lrwxrwxrwx root root 23 ./usr/bin/test -> /usr/bin/test.coreutils
+lrwxrwxrwx root root 19 ./usr/bin/tftp -> /bin/busybox.nosuid
+lrwxrwxrwx root root 19 ./usr/bin/time -> /bin/busybox.nosuid
+-rwxr-xr-x root root 51840 ./usr/bin/timeout.coreutils
+lrwxrwxrwx root root 26 ./usr/bin/timeout -> /usr/bin/timeout.coreutils
+-rwxr-xr-x root root 22576 ./usr/bin/tload
+-rwxr-xr-x root root 124784 ./usr/bin/top.procps
+lrwxrwxrwx root root 19 ./usr/bin/top -> /usr/bin/top.procps
+-rwxr-xr-x root root 22512 ./usr/bin/tput
+lrwxrwxrwx root root 17 ./usr/bin/traceroute -> /bin/busybox.suid
+-rwxr-xr-x root root 55464 ./usr/bin/tr.coreutils
+-rwxr-xr-x root root 47272 ./usr/bin/truncate.coreutils
+lrwxrwxrwx root root 27 ./usr/bin/truncate -> /usr/bin/truncate.coreutils
+lrwxrwxrwx root root 21 ./usr/bin/tr -> /usr/bin/tr.coreutils
+lrwxrwxrwx root root 19 ./usr/bin/ts -> /bin/busybox.nosuid
+-rwxr-xr-x root root 30680 ./usr/bin/tset
+-rwxr-xr-x root root 59560 ./usr/bin/tsort.coreutils
+lrwxrwxrwx root root 24 ./usr/bin/tsort -> /usr/bin/tsort.coreutils
+-rwxr-xr-x root root 43176 ./usr/bin/tty.coreutils
+lrwxrwxrwx root root 22 ./usr/bin/tty -> /usr/bin/tty.coreutils
+-rwxr-xr-x root root 354584 ./usr/bin/udevadm
+-rwxr-xr-x root root 22560 ./usr/bin/ul
+lrwxrwxrwx root root 7 ./usr/bin/uname26 -> setarch
+-rwxr-xr-x root root 47304 ./usr/bin/unexpand.coreutils
+lrwxrwxrwx root root 27 ./usr/bin/unexpand -> /usr/bin/unexpand.coreutils
+-rwxr-xr-x root root 55496 ./usr/bin/uniq.coreutils
+lrwxrwxrwx root root 23 ./usr/bin/uniq -> /usr/bin/uniq.coreutils
+-rwxr-xr-x root root 43176 ./usr/bin/unlink.coreutils
+lrwxrwxrwx root root 25 ./usr/bin/unlink -> /usr/bin/unlink.coreutils
+lrwxrwxrwx root root 18 ./usr/bin/unlzma -> /usr/bin/unlzma.xz
+lrwxrwxrwx root root 5 ./usr/bin/unlzma.xz -> xz.xz
+lrwxrwxrwx root root 27 ./usr/bin/unshare -> /usr/bin/unshare.util-linux
+-rwxr-xr-x root root 39176 ./usr/bin/unshare.util-linux
+lrwxrwxrwx root root 16 ./usr/bin/unxz -> /usr/bin/unxz.xz
+lrwxrwxrwx root root 5 ./usr/bin/unxz.xz -> xz.xz
+-rwxr-xr-x root root 88152 ./usr/bin/unzipsfx
+-rwxr-xr-x root root 186472 ./usr/bin/unzip.unzip
+lrwxrwxrwx root root 20 ./usr/bin/unzip -> /usr/bin/unzip.unzip
+-rwxr-xr-x root root 4678 ./usr/bin/update-alternatives
+-rwxr-xr-x root root 9076 ./usr/bin/updatedb
+-rwxr-xr-x root root 59584 ./usr/bin/update-mime-database
+-rwxr-xr-x root root 59560 ./usr/bin/uptime.coreutils
+-rwxr-xr-x root root 14376 ./usr/bin/uptime.procps
+lrwxrwxrwx root root 22 ./usr/bin/uptime -> /usr/bin/uptime.procps
+-rwxr-xr-x root root 43176 ./usr/bin/users.coreutils
+lrwxrwxrwx root root 24 ./usr/bin/users -> /usr/bin/users.coreutils
+lrwxrwxrwx root root 27 ./usr/bin/[ -> /usr/bin/lbracket.coreutils
+-rwxr-xr-x root root 18400 ./usr/bin/utmpdump.sysvinit
+lrwxrwxrwx root root 26 ./usr/bin/utmpdump -> /usr/bin/utmpdump.sysvinit
+-rwxr-xr-x root root 30768 ./usr/bin/utmpdump.util-linux
+-rwxr-xr-x root root 14368 ./usr/bin/uuidgen
+-rwxr-xr-x root root 38952 ./usr/bin/uuidparse
+-rwxr-xr-x root root 162448 ./usr/bin/vdir.coreutils
+lrwxrwxrwx root root 23 ./usr/bin/vdir -> /usr/bin/vdir.coreutils
+lrwxrwxrwx root root 17 ./usr/bin/vlock -> /bin/busybox.suid
+-rwxr-xr-x root root 38968 ./usr/bin/vmstat
+-rwxr-xr-x root root 18392 ./usr/bin/wall.sysvinit
+lrwxrwxrwx root root 22 ./usr/bin/wall -> /usr/bin/wall.sysvinit
+-rwxr-xr-x root root 34864 ./usr/bin/wall.util-linux
+-rwxr-xr-x root root 51248 ./usr/bin/wayland-scanner
+-rwxr-xr-x root root 55472 ./usr/bin/wc.coreutils
+lrwxrwxrwx root root 21 ./usr/bin/wc -> /usr/bin/wc.coreutils
+-rwxr-xr-x root root 63552 ./usr/bin/wdctl
+lrwxrwxrwx root root 19 ./usr/bin/wget -> /bin/busybox.nosuid
+-rwxr-xr-x root root 31176 ./usr/bin/whereis
+lrwxrwxrwx root root 20 ./usr/bin/which -> /usr/bin/which.which
+-rwxr-xr-x root root 31280 ./usr/bin/which.which
+-rwxr-xr-x root root 43176 ./usr/bin/whoami.coreutils
+lrwxrwxrwx root root 25 ./usr/bin/whoami -> /usr/bin/whoami.coreutils
+-rwxr-xr-x root root 63688 ./usr/bin/who.coreutils
+lrwxrwxrwx root root 22 ./usr/bin/who -> /usr/bin/who.coreutils
+-rwxr-xr-x root root 22568 ./usr/bin/w.procps
+-rwxr-xr-x root root 22560 ./usr/bin/write
+lrwxrwxrwx root root 17 ./usr/bin/w -> /usr/bin/w.procps
+-rwxr-xr-x root root 31304 ./usr/bin/x86_64-poky-linux-addr2line
+-rwxr-xr-x root root 63784 ./usr/bin/x86_64-poky-linux-ar
+-rwxr-xr-x root root 737584 ./usr/bin/x86_64-poky-linux-as
+-rwxr-xr-x root root 30776 ./usr/bin/x86_64-poky-linux-c++filt
+-rwxr-xr-x root root 2058648 ./usr/bin/x86_64-poky-linux-dwp
+-rwxr-xr-x root root 39320 ./usr/bin/x86_64-poky-linux-elfedit
+-rwxr-xr-x root root 102056 ./usr/bin/x86_64-poky-linux-gprof
+-rwxr-xr-x root root 1711488 ./usr/bin/x86_64-poky-linux-ld
+-rwxr-xr-x root root 1711488 ./usr/bin/x86_64-poky-linux-ld.bfd
+-rwxr-xr-x root root 2316464 ./usr/bin/x86_64-poky-linux-ld.gold
+-rwxr-xr-x root root 48344 ./usr/bin/x86_64-poky-linux-nm
+-rwxr-xr-x root root 190736 ./usr/bin/x86_64-poky-linux-objcopy
+-rwxr-xr-x root root 512664 ./usr/bin/x86_64-poky-linux-objdump
+-rwxr-xr-x root root 63824 ./usr/bin/x86_64-poky-linux-ranlib
+-rwxr-xr-x root root 670432 ./usr/bin/x86_64-poky-linux-readelf
+-rwxr-xr-x root root 35136 ./usr/bin/x86_64-poky-linux-size
+-rwxr-xr-x root root 31176 ./usr/bin/x86_64-poky-linux-strings
+-rwxr-xr-x root root 190736 ./usr/bin/x86_64-poky-linux-strip
+lrwxrwxrwx root root 7 ./usr/bin/x86_64 -> setarch
+-rwxr-xr-x root root 75976 ./usr/bin/xargs.findutils
+lrwxrwxrwx root root 24 ./usr/bin/xargs -> /usr/bin/xargs.findutils
+-rwxr-xr-x root root 16982 ./usr/bin/xkeystone
+-rwxr-xr-x root root 165 ./usr/bin/xml2-config
+-rwxr-xr-x root root 63544 ./usr/bin/xrandr
+lrwxrwxrwx root root 17 ./usr/bin/xzcat -> /usr/bin/xzcat.xz
+lrwxrwxrwx root root 5 ./usr/bin/xzcat.xz -> xz.xz
+lrwxrwxrwx root root 6 ./usr/bin/xzcmp -> xzdiff
+-rwxr-xr-x root root 14376 ./usr/bin/xzdec
+-rwxr-xr-x root root 6633 ./usr/bin/xzdiff
+lrwxrwxrwx root root 6 ./usr/bin/xzegrep -> xzgrep
+lrwxrwxrwx root root 6 ./usr/bin/xzfgrep -> xzgrep
+-rwxr-xr-x root root 5630 ./usr/bin/xzgrep
+-rwxr-xr-x root root 1799 ./usr/bin/xzless
+-rwxr-xr-x root root 2162 ./usr/bin/xzmore
+lrwxrwxrwx root root 14 ./usr/bin/xz -> /usr/bin/xz.xz
+-rwxr-xr-x root root 80184 ./usr/bin/xz.xz
+-rwxr-xr-x root root 4184 ./usr/bin/yacc
+-rwxr-xr-x root root 43176 ./usr/bin/yes.coreutils
+lrwxrwxrwx root root 22 ./usr/bin/yes -> /usr/bin/yes.coreutils
+-rwxr-xr-x root root 212088 ./usr/bin/zip
+-rwxr-xr-x root root 97872 ./usr/bin/zipcloak
+-rwxr-xr-x root root 2953 ./usr/bin/zipgrep
+-rwxr-xr-x root root 186472 ./usr/bin/zipinfo
+-rwxr-xr-x root root 89448 ./usr/bin/zipnote
+-rwxr-xr-x root root 89456 ./usr/bin/zipsplit
+drwxr-xr-x root root 4096 ./usr/games
+drwxr-xr-x root root 12288 ./usr/include
+drwxr-xr-x root root 4096 ./usr/include/acl
+-rw-r--r-- root root 2611 ./usr/include/acl/libacl.h
+-rw-r--r-- root root 7457 ./usr/include/aio.h
+-rw-r--r-- root root 2032 ./usr/include/aliases.h
+-rw-r--r-- root root 1204 ./usr/include/alloca.h
+-rw-r--r-- root root 14130 ./usr/include/ansidecl.h
+-rw-r--r-- root root 4351 ./usr/include/a.out.h
+-rw-r--r-- root root 25473 ./usr/include/argp.h
+-rw-r--r-- root root 6051 ./usr/include/argz.h
+-rw-r--r-- root root 1731 ./usr/include/ar.h
+drwxr-xr-x root root 4096 ./usr/include/arpa
+-rw-r--r-- root root 3432 ./usr/include/arpa/ftp.h
+-rw-r--r-- root root 4277 ./usr/include/arpa/inet.h
+-rw-r--r-- root root 7041 ./usr/include/arpa/nameser_compat.h
+-rw-r--r-- root root 14195 ./usr/include/arpa/nameser.h
+-rw-r--r-- root root 10263 ./usr/include/arpa/telnet.h
+-rw-r--r-- root root 3051 ./usr/include/arpa/tftp.h
+drwxr-xr-x root root 4096 ./usr/include/asm
+-rw-r--r-- root root 756 ./usr/include/asm/a.out.h
+-rw-r--r-- root root 546 ./usr/include/asm/auxvec.h
+-rw-r--r-- root root 321 ./usr/include/asm/bitsperlong.h
+-rw-r--r-- root root 323 ./usr/include/asm/boot.h
+-rw-r--r-- root root 7757 ./usr/include/asm/bootparam.h
+-rw-r--r-- root root 40 ./usr/include/asm/bpf_perf_event.h
+-rw-r--r-- root root 200 ./usr/include/asm/byteorder.h
+-rw-r--r-- root root 3285 ./usr/include/asm/debugreg.h
+-rw-r--r-- root root 2579 ./usr/include/asm/e820.h
+-rw-r--r-- root root 31 ./usr/include/asm/errno.h
+-rw-r--r-- root root 31 ./usr/include/asm/fcntl.h
+drwxr-xr-x root root 4096 ./usr/include/asm-generic
+-rw-r--r-- root root 218 ./usr/include/asm-generic/auxvec.h
+-rw-r--r-- root root 564 ./usr/include/asm-generic/bitsperlong.h
+-rw-r--r-- root root 238 ./usr/include/asm-generic/bpf_perf_event.h
+-rw-r--r-- root root 1612 ./usr/include/asm-generic/errno-base.h
+-rw-r--r-- root root 5648 ./usr/include/asm-generic/errno.h
+-rw-r--r-- root root 5423 ./usr/include/asm-generic/fcntl.h
+-rw-r--r-- root root 1740 ./usr/include/asm-generic/hugetlb_encode.h
+-rw-r--r-- root root 718 ./usr/include/asm-generic/int-l64.h
+-rw-r--r-- root root 864 ./usr/include/asm-generic/int-ll64.h
+-rw-r--r-- root root 3478 ./usr/include/asm-generic/ioctl.h
+-rw-r--r-- root root 3987 ./usr/include/asm-generic/ioctls.h
+-rw-r--r-- root root 1003 ./usr/include/asm-generic/ipcbuf.h
+-rw-r--r-- root root 96 ./usr/include/asm-generic/kvm_para.h
+-rw-r--r-- root root 3417 ./usr/include/asm-generic/mman-common.h
+-rw-r--r-- root root 740 ./usr/include/asm-generic/mman.h
+-rw-r--r-- root root 1618 ./usr/include/asm-generic/msgbuf.h
+-rw-r--r-- root root 353 ./usr/include/asm-generic/param.h
+-rw-r--r-- root root 878 ./usr/include/asm-generic/poll.h
+-rw-r--r-- root root 2331 ./usr/include/asm-generic/posix_types.h
+-rw-r--r-- root root 1872 ./usr/include/asm-generic/resource.h
+-rw-r--r-- root root 1550 ./usr/include/asm-generic/sembuf.h
+-rw-r--r-- root root 190 ./usr/include/asm-generic/setup.h
+-rw-r--r-- root root 1837 ./usr/include/asm-generic/shmbuf.h
+-rw-r--r-- root root 9969 ./usr/include/asm-generic/siginfo.h
+-rw-r--r-- root root 800 ./usr/include/asm-generic/signal-defs.h
+-rw-r--r-- root root 2709 ./usr/include/asm-generic/signal.h
+-rw-r--r-- root root 3538 ./usr/include/asm-generic/socket.h
+-rw-r--r-- root root 447 ./usr/include/asm-generic/sockios.h
+-rw-r--r-- root root 1839 ./usr/include/asm-generic/statfs.h
+-rw-r--r-- root root 2633 ./usr/include/asm-generic/stat.h
+-rw-r--r-- root root 502 ./usr/include/asm-generic/swab.h
+-rw-r--r-- root root 4716 ./usr/include/asm-generic/termbits.h
+-rw-r--r-- root root 1377 ./usr/include/asm-generic/termios.h
+-rw-r--r-- root root 233 ./usr/include/asm-generic/types.h
+-rw-r--r-- root root 357 ./usr/include/asm-generic/ucontext.h
+-rw-r--r-- root root 30377 ./usr/include/asm-generic/unistd.h
+-rw-r--r-- root root 69 ./usr/include/asm/hw_breakpoint.h
+-rw-r--r-- root root 198 ./usr/include/asm/hwcap2.h
+-rw-r--r-- root root 31 ./usr/include/asm/ioctl.h
+-rw-r--r-- root root 32 ./usr/include/asm/ioctls.h
+-rw-r--r-- root root 32 ./usr/include/asm/ipcbuf.h
+-rw-r--r-- root root 854 ./usr/include/asm/ist.h
+-rw-r--r-- root root 9244 ./usr/include/asm/kvm.h
+-rw-r--r-- root root 3341 ./usr/include/asm/kvm_para.h
+-rw-r--r-- root root 388 ./usr/include/asm/kvm_perf.h
+-rw-r--r-- root root 1306 ./usr/include/asm/ldt.h
+-rw-r--r-- root root 1688 ./usr/include/asm/mce.h
+-rw-r--r-- root root 1002 ./usr/include/asm/mman.h
+-rw-r--r-- root root 1053 ./usr/include/asm/msgbuf.h
+-rw-r--r-- root root 346 ./usr/include/asm/msr.h
+-rw-r--r-- root root 4225 ./usr/include/asm/mtrr.h
+-rw-r--r-- root root 31 ./usr/include/asm/param.h
+-rw-r--r-- root root 1403 ./usr/include/asm/perf_regs.h
+-rw-r--r-- root root 30 ./usr/include/asm/poll.h
+-rw-r--r-- root root 765 ./usr/include/asm/posix_types_32.h
+-rw-r--r-- root root 609 ./usr/include/asm/posix_types_64.h
+-rw-r--r-- root root 224 ./usr/include/asm/posix_types.h
+-rw-r--r-- root root 581 ./usr/include/asm/posix_types_x32.h
+-rw-r--r-- root root 418 ./usr/include/asm/prctl.h
+-rw-r--r-- root root 6623 ./usr/include/asm/processor-flags.h
+-rw-r--r-- root root 2037 ./usr/include/asm/ptrace-abi.h
+-rw-r--r-- root root 1495 ./usr/include/asm/ptrace.h
+-rw-r--r-- root root 34 ./usr/include/asm/resource.h
+-rw-r--r-- root root 1045 ./usr/include/asm/sembuf.h
+-rw-r--r-- root root 6 ./usr/include/asm/setup.h
+-rw-r--r-- root root 1258 ./usr/include/asm/shmbuf.h
+-rw-r--r-- root root 271 ./usr/include/asm/sigcontext32.h
+-rw-r--r-- root root 9724 ./usr/include/asm/sigcontext.h
+-rw-r--r-- root root 422 ./usr/include/asm/siginfo.h
+-rw-r--r-- root root 2901 ./usr/include/asm/signal.h
+-rw-r--r-- root root 32 ./usr/include/asm/socket.h
+-rw-r--r-- root root 33 ./usr/include/asm/sockios.h
+-rw-r--r-- root root 416 ./usr/include/asm/statfs.h
+-rw-r--r-- root root 3131 ./usr/include/asm/stat.h
+-rw-r--r-- root root 7068 ./usr/include/asm/svm.h
+-rw-r--r-- root root 724 ./usr/include/asm/swab.h
+-rw-r--r-- root root 34 ./usr/include/asm/termbits.h
+-rw-r--r-- root root 33 ./usr/include/asm/termios.h
+-rw-r--r-- root root 31 ./usr/include/asm/types.h
+-rw-r--r-- root root 2117 ./usr/include/asm/ucontext.h
+-rw-r--r-- root root 11475 ./usr/include/asm/unistd_32.h
+-rw-r--r-- root root 9286 ./usr/include/asm/unistd_64.h
+-rw-r--r-- root root 361 ./usr/include/asm/unistd.h
+-rw-r--r-- root root 16367 ./usr/include/asm/unistd_x32.h
+-rw-r--r-- root root 3118 ./usr/include/asm/vm86.h
+-rw-r--r-- root root 7032 ./usr/include/asm/vmx.h
+-rw-r--r-- root root 263 ./usr/include/asm/vsyscall.h
+-rw-r--r-- root root 4562 ./usr/include/assert.h
+drwxr-xr-x root root 4096 ./usr/include/attr
+-rw-r--r-- root root 8010 ./usr/include/attr/attributes.h
+-rw-r--r-- root root 1569 ./usr/include/attr/error_context.h
+-rw-r--r-- root root 1411 ./usr/include/attr/libattr.h
+drwxr-xr-x root root 4096 ./usr/include/bash
+-rw-r--r-- root root 2225 ./usr/include/bash/alias.h
+-rw-r--r-- root root 3561 ./usr/include/bash/arrayfunc.h
+-rw-r--r-- root root 4172 ./usr/include/bash/array.h
+-rw-r--r-- root root 2302 ./usr/include/bash/assoc.h
+-rw-r--r-- root root 1262 ./usr/include/bash/bashansi.h
+-rw-r--r-- root root 1462 ./usr/include/bash/bashintl.h
+-rw-r--r-- root root 1646 ./usr/include/bash/bashjmp.h
+-rw-r--r-- root root 1086 ./usr/include/bash/bashtypes.h
+drwxr-xr-x root root 4096 ./usr/include/bash/builtins
+-rw-r--r-- root root 1263 ./usr/include/bash/builtins/bashgetopt.h
+-rw-r--r-- root root 6715 ./usr/include/bash/builtins/builtext.h
+-rw-r--r-- root root 8372 ./usr/include/bash/builtins/common.h
+-rw-r--r-- root root 2582 ./usr/include/bash/builtins/getopt.h
+-rw-r--r-- root root 2373 ./usr/include/bash/builtins.h
+-rw-r--r-- root root 15490 ./usr/include/bash/command.h
+-rw-r--r-- root root 6514 ./usr/include/bash/config-bot.h
+-rw-r--r-- root root 32166 ./usr/include/bash/config.h
+-rw-r--r-- root root 7436 ./usr/include/bash/config-top.h
+-rw-r--r-- root root 1709 ./usr/include/bash/conftypes.h
+-rw-r--r-- root root 1397 ./usr/include/bash/dispose_cmd.h
+-rw-r--r-- root root 3053 ./usr/include/bash/error.h
+-rw-r--r-- root root 18999 ./usr/include/bash/externs.h
+-rw-r--r-- root root 11828 ./usr/include/bash/general.h
+-rw-r--r-- root root 3036 ./usr/include/bash/hashlib.h
+drwxr-xr-x root root 4096 ./usr/include/bash/include
+-rw-r--r-- root root 1437 ./usr/include/bash/include/ansi_stdlib.h
+-rw-r--r-- root root 4125 ./usr/include/bash/include/chartypes.h
+-rw-r--r-- root root 1581 ./usr/include/bash/include/filecntl.h
+-rw-r--r-- root root 3014 ./usr/include/bash/include/gettext.h
+-rw-r--r-- root root 2113 ./usr/include/bash/include/maxpath.h
+-rw-r--r-- root root 1994 ./usr/include/bash/include/memalloc.h
+-rw-r--r-- root root 3669 ./usr/include/bash/include/ocache.h
+-rw-r--r-- root root 2305 ./usr/include/bash/include/posixdir.h
+-rw-r--r-- root root 1407 ./usr/include/bash/include/posixjmp.h
+-rw-r--r-- root root 4318 ./usr/include/bash/include/posixstat.h
+-rw-r--r-- root root 1509 ./usr/include/bash/include/posixtime.h
+-rw-r--r-- root root 3068 ./usr/include/bash/include/posixwait.h
+-rw-r--r-- root root 4319 ./usr/include/bash/include/shmbchar.h
+-rw-r--r-- root root 13847 ./usr/include/bash/include/shmbutil.h
+-rw-r--r-- root root 3636 ./usr/include/bash/include/shtty.h
+-rw-r--r-- root root 6088 ./usr/include/bash/include/stat-time.h
+-rw-r--r-- root root 2652 ./usr/include/bash/include/stdc.h
+-rw-r--r-- root root 1778 ./usr/include/bash/include/systimes.h
+-rw-r--r-- root root 2890 ./usr/include/bash/include/typemax.h
+-rw-r--r-- root root 2973 ./usr/include/bash/include/unionwait.h
+-rw-r--r-- root root 9640 ./usr/include/bash/jobs.h
+-rw-r--r-- root root 2960 ./usr/include/bash/make_cmd.h
+-rw-r--r-- root root 1208 ./usr/include/bash/pathnames.h
+-rw-r--r-- root root 2541 ./usr/include/bash/quit.h
+-rw-r--r-- root root 5957 ./usr/include/bash/shell.h
+-rw-r--r-- root root 4485 ./usr/include/bash/sig.h
+-rw-r--r-- root root 1544 ./usr/include/bash/siglist.h
+-rw-r--r-- root root 247 ./usr/include/bash/signames.h
+-rw-r--r-- root root 15184 ./usr/include/bash/subst.h
+-rw-r--r-- root root 3544 ./usr/include/bash/syntax.h
+-rw-r--r-- root root 2003 ./usr/include/bash/unwind_prot.h
+-rw-r--r-- root root 17643 ./usr/include/bash/variables.h
+-rw-r--r-- root root 579 ./usr/include/bash/version.h
+-rw-r--r-- root root 1759 ./usr/include/bash/xmalloc.h
+-rw-r--r-- root root 255175 ./usr/include/bfd-64.h
+-rw-r--r-- root root 500 ./usr/include/bfd.h
+-rw-r--r-- root root 35620 ./usr/include/bfdlink.h
+-rw-r--r-- root root 848 ./usr/include/bfd_stdint.h
+drwxr-xr-x root root 4096 ./usr/include/bits
+-rw-r--r-- root root 268 ./usr/include/bits/a.out.h
+-rw-r--r-- root root 1010 ./usr/include/bits/argp-ldbl.h
+-rw-r--r-- root root 2450 ./usr/include/bits/byteswap.h
+-rw-r--r-- root root 4139 ./usr/include/bits/cmathcalls.h
+-rw-r--r-- root root 23709 ./usr/include/bits/confname.h
+-rw-r--r-- root root 4516 ./usr/include/bits/cpu-set.h
+-rw-r--r-- root root 1275 ./usr/include/bits/dirent_ext.h
+-rw-r--r-- root root 1771 ./usr/include/bits/dirent.h
+-rw-r--r-- root root 2521 ./usr/include/bits/dlfcn.h
+-rw-r--r-- root root 426 ./usr/include/bits/elfclass.h
+-rw-r--r-- root root 1905 ./usr/include/bits/endian.h
+-rw-r--r-- root root 273 ./usr/include/bits/endianness-64.h
+-rw-r--r-- root root 548 ./usr/include/bits/endianness.h
+-rw-r--r-- root root 3791 ./usr/include/bits/environments.h
+-rw-r--r-- root root 1071 ./usr/include/bits/epoll.h
+-rw-r--r-- root root 1148 ./usr/include/bits/err-ldbl.h
+-rw-r--r-- root root 1426 ./usr/include/bits/errno.h
+-rw-r--r-- root root 2684 ./usr/include/bits/error.h
+-rw-r--r-- root root 1012 ./usr/include/bits/error-ldbl.h
+-rw-r--r-- root root 1129 ./usr/include/bits/eventfd.h
+-rw-r--r-- root root 5575 ./usr/include/bits/fcntl2.h
+-rw-r--r-- root root 2246 ./usr/include/bits/fcntl.h
+-rw-r--r-- root root 13995 ./usr/include/bits/fcntl-linux.h
+-rw-r--r-- root root 4611 ./usr/include/bits/fenv.h
+-rw-r--r-- root root 190 ./usr/include/bits/fenvinline.h
+-rw-r--r-- root root 4373 ./usr/include/bits/floatn-64.h
+-rw-r--r-- root root 9765 ./usr/include/bits/floatn-common.h
+-rw-r--r-- root root 532 ./usr/include/bits/floatn.h
+-rw-r--r-- root root 1215 ./usr/include/bits/flt-eval-method.h
+-rw-r--r-- root root 1216 ./usr/include/bits/fp-fast.h
+-rw-r--r-- root root 1012 ./usr/include/bits/fp-logb.h
+-rw-r--r-- root root 3667 ./usr/include/bits/getopt_core.h
+-rw-r--r-- root root 3038 ./usr/include/bits/getopt_ext.h
+-rw-r--r-- root root 1810 ./usr/include/bits/getopt_posix.h
+-rw-r--r-- root root 972 ./usr/include/bits/hwcap.h
+-rw-r--r-- root root 1591 ./usr/include/bits/indirect-return.h
+-rw-r--r-- root root 9534 ./usr/include/bits/in.h
+-rw-r--r-- root root 25 ./usr/include/bits/initspin.h
+-rw-r--r-- root root 1080 ./usr/include/bits/inotify.h
+-rw-r--r-- root root 4478 ./usr/include/bits/ioctls.h
+-rw-r--r-- root root 2456 ./usr/include/bits/ioctl-types.h
+-rw-r--r-- root root 1523 ./usr/include/bits/ipc.h
+-rw-r--r-- root root 1745 ./usr/include/bits/ipc-perm.h
+-rw-r--r-- root root 1176 ./usr/include/bits/ipctypes.h
+-rw-r--r-- root root 2479 ./usr/include/bits/iscanonical.h
+-rw-r--r-- root root 3288 ./usr/include/bits/libc-header-start.h
+-rw-r--r-- root root 3004 ./usr/include/bits/libm-simd-decl-stubs.h
+-rw-r--r-- root root 4286 ./usr/include/bits/link.h
+-rw-r--r-- root root 1368 ./usr/include/bits/locale.h
+-rw-r--r-- root root 3185 ./usr/include/bits/local_lim.h
+-rw-r--r-- root root 962 ./usr/include/bits/long-double-64.h
+-rw-r--r-- root root 552 ./usr/include/bits/long-double.h
+-rw-r--r-- root root 13210 ./usr/include/bits/mathcalls.h
+-rw-r--r-- root root 1765 ./usr/include/bits/mathcalls-helper-functions.h
+-rw-r--r-- root root 1312 ./usr/include/bits/mathcalls-narrow.h
+-rw-r--r-- root root 891 ./usr/include/bits/mathdef.h
+-rw-r--r-- root root 337 ./usr/include/bits/mathinline.h
+-rw-r--r-- root root 2308 ./usr/include/bits/math-vector.h
+-rw-r--r-- root root 1309 ./usr/include/bits/mman.h
+-rw-r--r-- root root 4911 ./usr/include/bits/mman-linux.h
+-rw-r--r-- root root 1997 ./usr/include/bits/mman-map-flags-generic.h
+-rw-r--r-- root root 2813 ./usr/include/bits/mman-shared.h
+-rw-r--r-- root root 1047 ./usr/include/bits/monetary-ldbl.h
+-rw-r--r-- root root 2151 ./usr/include/bits/mqueue2.h
+-rw-r--r-- root root 1246 ./usr/include/bits/mqueue.h
+-rw-r--r-- root root 2818 ./usr/include/bits/msq.h
+-rw-r--r-- root root 1283 ./usr/include/bits/msq-pad.h
+-rw-r--r-- root root 1264 ./usr/include/bits/netdb.h
+-rw-r--r-- root root 1433 ./usr/include/bits/param.h
+-rw-r--r-- root root 2937 ./usr/include/bits/poll2.h
+-rw-r--r-- root root 2076 ./usr/include/bits/poll.h
+-rw-r--r-- root root 5189 ./usr/include/bits/posix1_lim.h
+-rw-r--r-- root root 2867 ./usr/include/bits/posix2_lim.h
+-rw-r--r-- root root 5913 ./usr/include/bits/posix_opt.h
+-rw-r--r-- root root 992 ./usr/include/bits/printf-ldbl.h
+-rw-r--r-- root root 963 ./usr/include/bits/procfs-extra.h
+-rw-r--r-- root root 2025 ./usr/include/bits/procfs.h
+-rw-r--r-- root root 1148 ./usr/include/bits/procfs-id.h
+-rw-r--r-- root root 1050 ./usr/include/bits/procfs-prregset.h
+-rw-r--r-- root root 1838 ./usr/include/bits/pthreadtypes-arch.h
+-rw-r--r-- root root 3072 ./usr/include/bits/pthreadtypes.h
+-rw-r--r-- root root 4091 ./usr/include/bits/ptrace-shared.h
+-rw-r--r-- root root 6299 ./usr/include/bits/resource.h
+-rw-r--r-- root root 3947 ./usr/include/bits/sched.h
+-rw-r--r-- root root 1438 ./usr/include/bits/select2.h
+-rw-r--r-- root root 2106 ./usr/include/bits/select.h
+-rw-r--r-- root root 1238 ./usr/include/bits/semaphore.h
+-rw-r--r-- root root 2905 ./usr/include/bits/sem.h
+-rw-r--r-- root root 1019 ./usr/include/bits/sem-pad.h
+-rw-r--r-- root root 1705 ./usr/include/bits/setjmp2.h
+-rw-r--r-- root root 1287 ./usr/include/bits/setjmp.h
+-rw-r--r-- root root 3872 ./usr/include/bits/shm.h
+-rw-r--r-- root root 1106 ./usr/include/bits/shmlba.h
+-rw-r--r-- root root 1668 ./usr/include/bits/shm-pad.h
+-rw-r--r-- root root 2935 ./usr/include/bits/sigaction.h
+-rw-r--r-- root root 4266 ./usr/include/bits/sigcontext.h
+-rw-r--r-- root root 1471 ./usr/include/bits/sigevent-consts.h
+-rw-r--r-- root root 729 ./usr/include/bits/siginfo-arch.h
+-rw-r--r-- root root 204 ./usr/include/bits/siginfo-consts-arch.h
+-rw-r--r-- root root 6855 ./usr/include/bits/siginfo-consts.h
+-rw-r--r-- root root 1285 ./usr/include/bits/signal_ext.h
+-rw-r--r-- root root 1067 ./usr/include/bits/signalfd.h
+-rw-r--r-- root root 4341 ./usr/include/bits/signum-generic.h
+-rw-r--r-- root root 1634 ./usr/include/bits/signum.h
+-rw-r--r-- root root 1168 ./usr/include/bits/sigstack.h
+-rw-r--r-- root root 1692 ./usr/include/bits/sigthread.h
+-rw-r--r-- root root 1514 ./usr/include/bits/sockaddr.h
+-rw-r--r-- root root 3026 ./usr/include/bits/socket2.h
+-rw-r--r-- root root 1318 ./usr/include/bits/socket-constants.h
+-rw-r--r-- root root 12261 ./usr/include/bits/socket.h
+-rw-r--r-- root root 2216 ./usr/include/bits/socket_type.h
+-rw-r--r-- root root 1188 ./usr/include/bits/ss_flags.h
+-rw-r--r-- root root 9040 ./usr/include/bits/stab.def
+-rw-r--r-- root root 1917 ./usr/include/bits/statfs.h
+-rw-r--r-- root root 7620 ./usr/include/bits/stat.h
+-rw-r--r-- root root 3423 ./usr/include/bits/statvfs.h
+-rw-r--r-- root root 2050 ./usr/include/bits/statx-generic.h
+-rw-r--r-- root root 1400 ./usr/include/bits/statx.h
+-rw-r--r-- root root 1037 ./usr/include/bits/stdint-intn.h
+-rw-r--r-- root root 1049 ./usr/include/bits/stdint-uintn.h
+-rw-r--r-- root root 12679 ./usr/include/bits/stdio2.h
+-rw-r--r-- root root 5584 ./usr/include/bits/stdio.h
+-rw-r--r-- root root 2843 ./usr/include/bits/stdio-ldbl.h
+-rw-r--r-- root root 1213 ./usr/include/bits/stdio_lim.h
+-rw-r--r-- root root 1378 ./usr/include/bits/stdlib-bsearch.h
+-rw-r--r-- root root 1115 ./usr/include/bits/stdlib-float.h
+-rw-r--r-- root root 5659 ./usr/include/bits/stdlib.h
+-rw-r--r-- root root 1377 ./usr/include/bits/stdlib-ldbl.h
+-rw-r--r-- root root 4314 ./usr/include/bits/string_fortified.h
+-rw-r--r-- root root 1209 ./usr/include/bits/strings_fortified.h
+-rw-r--r-- root root 1810 ./usr/include/bits/struct_mutex.h
+-rw-r--r-- root root 2027 ./usr/include/bits/struct_rwlock-64.h
+-rw-r--r-- root root 560 ./usr/include/bits/struct_rwlock.h
+-rw-r--r-- root root 44103 ./usr/include/bits/syscall-64.h
+-rw-r--r-- root root 536 ./usr/include/bits/syscall.h
+-rw-r--r-- root root 899 ./usr/include/bits/sysctl.h
+-rw-r--r-- root root 1216 ./usr/include/bits/sys_errlist.h
+-rw-r--r-- root root 1685 ./usr/include/bits/syslog.h
+-rw-r--r-- root root 1206 ./usr/include/bits/syslog-ldbl.h
+-rw-r--r-- root root 1061 ./usr/include/bits/syslog-path.h
+-rw-r--r-- root root 2953 ./usr/include/bits/sysmacros.h
+-rw-r--r-- root root 1824 ./usr/include/bits/termios-baud.h
+-rw-r--r-- root root 1279 ./usr/include/bits/termios-c_cc.h
+-rw-r--r-- root root 1230 ./usr/include/bits/termios-c_cflag.h
+-rw-r--r-- root root 1936 ./usr/include/bits/termios-c_iflag.h
+-rw-r--r-- root root 2594 ./usr/include/bits/termios-c_lflag.h
+-rw-r--r-- root root 2822 ./usr/include/bits/termios-c_oflag.h
+-rw-r--r-- root root 2168 ./usr/include/bits/termios.h
+-rw-r--r-- root root 969 ./usr/include/bits/termios-misc.h
+-rw-r--r-- root root 1433 ./usr/include/bits/termios-struct.h
+-rw-r--r-- root root 1062 ./usr/include/bits/termios-tcflow.h
+-rw-r--r-- root root 3982 ./usr/include/bits/thread-shared-types.h
+-rw-r--r-- root root 1340 ./usr/include/bits/time64.h
+-rw-r--r-- root root 2999 ./usr/include/bits/time.h
+-rw-r--r-- root root 1103 ./usr/include/bits/timerfd.h
+-rw-r--r-- root root 1081 ./usr/include/bits/timesize.h
+-rw-r--r-- root root 4596 ./usr/include/bits/timex.h
+drwxr-xr-x root root 4096 ./usr/include/bits/types
+-rw-r--r-- root root 174 ./usr/include/bits/types/clockid_t.h
+-rw-r--r-- root root 143 ./usr/include/bits/types/clock_t.h
+-rw-r--r-- root root 2725 ./usr/include/bits/types/cookie_io_functions_t.h
+-rw-r--r-- root root 894 ./usr/include/bits/types/error_t.h
+-rw-r--r-- root root 110 ./usr/include/bits/types/__FILE.h
+-rw-r--r-- root root 180 ./usr/include/bits/types/FILE.h
+-rw-r--r-- root root 410 ./usr/include/bits/types/__fpos64_t.h
+-rw-r--r-- root root 381 ./usr/include/bits/types/__fpos_t.h
+-rw-r--r-- root root 8757 ./usr/include/bits/types.h
+-rw-r--r-- root root 3546 ./usr/include/bits/typesizes.h
+-rw-r--r-- root root 1722 ./usr/include/bits/types/__locale_t.h
+-rw-r--r-- root root 983 ./usr/include/bits/types/locale_t.h
+-rw-r--r-- root root 564 ./usr/include/bits/types/__mbstate_t.h
+-rw-r--r-- root root 135 ./usr/include/bits/types/mbstate_t.h
+-rw-r--r-- root root 2009 ./usr/include/bits/types/res_state.h
+-rw-r--r-- root root 272 ./usr/include/bits/types/sig_atomic_t.h
+-rw-r--r-- root root 1204 ./usr/include/bits/types/sigevent_t.h
+-rw-r--r-- root root 3892 ./usr/include/bits/types/siginfo_t.h
+-rw-r--r-- root root 206 ./usr/include/bits/types/__sigset_t.h
+-rw-r--r-- root root 195 ./usr/include/bits/types/sigset_t.h
+-rw-r--r-- root root 1148 ./usr/include/bits/types/__sigval_t.h
+-rw-r--r-- root root 599 ./usr/include/bits/types/sigval_t.h
+-rw-r--r-- root root 1062 ./usr/include/bits/types/stack_t.h
+-rw-r--r-- root root 4104 ./usr/include/bits/types/struct_FILE.h
+-rw-r--r-- root root 1066 ./usr/include/bits/types/struct_iovec.h
+-rw-r--r-- root root 288 ./usr/include/bits/types/struct_itimerspec.h
+-rw-r--r-- root root 274 ./usr/include/bits/types/struct_osockaddr.h
+-rw-r--r-- root root 4121 ./usr/include/bits/types/struct_rusage.h
+-rw-r--r-- root root 1073 ./usr/include/bits/types/struct_sched_param.h
+-rw-r--r-- root root 1073 ./usr/include/bits/types/struct_sigstack.h
+-rw-r--r-- root root 1897 ./usr/include/bits/types/struct_statx.h
+-rw-r--r-- root root 1202 ./usr/include/bits/types/struct_statx_timestamp.h
+-rw-r--r-- root root 728 ./usr/include/bits/types/struct_timespec.h
+-rw-r--r-- root root 287 ./usr/include/bits/types/struct_timeval.h
+-rw-r--r-- root root 760 ./usr/include/bits/types/struct_tm.h
+-rw-r--r-- root root 159 ./usr/include/bits/types/timer_t.h
+-rw-r--r-- root root 138 ./usr/include/bits/types/time_t.h
+-rw-r--r-- root root 796 ./usr/include/bits/types/wint_t.h
+-rw-r--r-- root root 1542 ./usr/include/bits/uintn-identity.h
+-rw-r--r-- root root 1923 ./usr/include/bits/uio-ext.h
+-rw-r--r-- root root 1385 ./usr/include/bits/uio_lim.h
+-rw-r--r-- root root 1613 ./usr/include/bits/unistd_ext.h
+-rw-r--r-- root root 13316 ./usr/include/bits/unistd.h
+-rw-r--r-- root root 4067 ./usr/include/bits/utmp.h
+-rw-r--r-- root root 3578 ./usr/include/bits/utmpx.h
+-rw-r--r-- root root 1213 ./usr/include/bits/utsname.h
+-rw-r--r-- root root 1697 ./usr/include/bits/waitflags.h
+-rw-r--r-- root root 2287 ./usr/include/bits/waitstatus.h
+-rw-r--r-- root root 20506 ./usr/include/bits/wchar2.h
+-rw-r--r-- root root 1906 ./usr/include/bits/wchar.h
+-rw-r--r-- root root 2251 ./usr/include/bits/wchar-ldbl.h
+-rw-r--r-- root root 6307 ./usr/include/bits/wctype-wchar.h
+-rw-r--r-- root root 442 ./usr/include/bits/wordsize.h
+-rw-r--r-- root root 3858 ./usr/include/bits/xopen_lim.h
+drwxr-xr-x root root 4096 ./usr/include/blkid
+-rw-r--r-- root root 15478 ./usr/include/blkid/blkid.h
+drwxr-xr-x root root 4096 ./usr/include/btrfs
+-rw-r--r-- root root 5045 ./usr/include/btrfs/btrfsck.h
+-rw-r--r-- root root 4670 ./usr/include/btrfs/btrfs-list.h
+-rw-r--r-- root root 1095 ./usr/include/btrfs/crc32c.h
+-rw-r--r-- root root 93730 ./usr/include/btrfs/ctree.h
+-rw-r--r-- root root 3524 ./usr/include/btrfs/extent-cache.h
+-rw-r--r-- root root 6507 ./usr/include/btrfs/extent_io.h
+-rw-r--r-- root root 29359 ./usr/include/btrfs/ioctl.h
+-rw-r--r-- root root 10965 ./usr/include/btrfs/kerncompat.h
+-rw-r--r-- root root 14636 ./usr/include/btrfs/list.h
+-rw-r--r-- root root 3343 ./usr/include/btrfs/radix-tree.h
+-rw-r--r-- root root 2024 ./usr/include/btrfs/raid56.h
+-rw-r--r-- root root 3902 ./usr/include/btrfs/rbtree.h
+-rw-r--r-- root root 3090 ./usr/include/btrfs/send.h
+-rw-r--r-- root root 2803 ./usr/include/btrfs/send-stream.h
+-rw-r--r-- root root 3388 ./usr/include/btrfs/send-utils.h
+-rw-r--r-- root root 1223 ./usr/include/btrfs/sizes.h
+-rw-r--r-- root root 22942 ./usr/include/btrfsutil.h
+-rw-r--r-- root root 363 ./usr/include/btrfs/version.h
+-rw-r--r-- root root 1405 ./usr/include/byteswap.h
+-rw-r--r-- root root 6240 ./usr/include/bzlib.h
+drwxr-xr-x root root 4096 ./usr/include/c++
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0
+-rw-r--r-- root root 3045 ./usr/include/c++/10.1.0/algorithm
+-rw-r--r-- root root 18236 ./usr/include/c++/10.1.0/any
+-rw-r--r-- root root 13700 ./usr/include/c++/10.1.0/array
+-rw-r--r-- root root 45341 ./usr/include/c++/10.1.0/atomic
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/backward
+-rw-r--r-- root root 10804 ./usr/include/c++/10.1.0/backward/auto_ptr.h
+-rw-r--r-- root root 2491 ./usr/include/c++/10.1.0/backward/backward_warning.h
+-rw-r--r-- root root 7167 ./usr/include/c++/10.1.0/backward/binders.h
+-rw-r--r-- root root 4248 ./usr/include/c++/10.1.0/backward/hash_fun.h
+-rw-r--r-- root root 17822 ./usr/include/c++/10.1.0/backward/hash_map
+-rw-r--r-- root root 17323 ./usr/include/c++/10.1.0/backward/hash_set
+-rw-r--r-- root root 33883 ./usr/include/c++/10.1.0/backward/hashtable.h
+-rw-r--r-- root root 7454 ./usr/include/c++/10.1.0/backward/strstream
+-rw-r--r-- root root 11044 ./usr/include/c++/10.1.0/bit
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/bits
+-rw-r--r-- root root 24547 ./usr/include/c++/10.1.0/bits/algorithmfwd.h
+-rw-r--r-- root root 3293 ./usr/include/c++/10.1.0/bits/allocated_ptr.h
+-rw-r--r-- root root 8984 ./usr/include/c++/10.1.0/bits/allocator.h
+-rw-r--r-- root root 24105 ./usr/include/c++/10.1.0/bits/alloc_traits.h
+-rw-r--r-- root root 51344 ./usr/include/c++/10.1.0/bits/atomic_base.h
+-rw-r--r-- root root 9499 ./usr/include/c++/10.1.0/bits/atomic_futex.h
+-rw-r--r-- root root 2352 ./usr/include/c++/10.1.0/bits/atomic_lockfree_defines.h
+-rw-r--r-- root root 16074 ./usr/include/c++/10.1.0/bits/basic_ios.h
+-rw-r--r-- root root 6083 ./usr/include/c++/10.1.0/bits/basic_ios.tcc
+-rw-r--r-- root root 249154 ./usr/include/c++/10.1.0/bits/basic_string.h
+-rw-r--r-- root root 54513 ./usr/include/c++/10.1.0/bits/basic_string.tcc
+-rw-r--r-- root root 27182 ./usr/include/c++/10.1.0/bits/boost_concept_check.h
+-rw-r--r-- root root 1474 ./usr/include/c++/10.1.0/bits/c++0x_warning.h
+-rw-r--r-- root root 3435 ./usr/include/c++/10.1.0/bits/charconv.h
+-rw-r--r-- root root 28509 ./usr/include/c++/10.1.0/bits/char_traits.h
+-rw-r--r-- root root 25429 ./usr/include/c++/10.1.0/bits/codecvt.h
+-rw-r--r-- root root 3423 ./usr/include/c++/10.1.0/bits/concept_check.h
+-rw-r--r-- root root 12011 ./usr/include/c++/10.1.0/bits/cpp_type_traits.h
+-rw-r--r-- root root 1811 ./usr/include/c++/10.1.0/bits/cxxabi_forced.h
+-rw-r--r-- root root 2220 ./usr/include/c++/10.1.0/bits/cxxabi_init_exception.h
+-rw-r--r-- root root 37325 ./usr/include/c++/10.1.0/bits/deque.tcc
+-rw-r--r-- root root 12387 ./usr/include/c++/10.1.0/bits/enable_special_members.h
+-rw-r--r-- root root 2037 ./usr/include/c++/10.1.0/bits/erase_if.h
+-rw-r--r-- root root 45979 ./usr/include/c++/10.1.0/bitset
+-rw-r--r-- root root 1645 ./usr/include/c++/10.1.0/bits/exception_defines.h
+-rw-r--r-- root root 2483 ./usr/include/c++/10.1.0/bits/exception.h
+-rw-r--r-- root root 6072 ./usr/include/c++/10.1.0/bits/exception_ptr.h
+-rw-r--r-- root root 50386 ./usr/include/c++/10.1.0/bits/forward_list.h
+-rw-r--r-- root root 13871 ./usr/include/c++/10.1.0/bits/forward_list.tcc
+-rw-r--r-- root root 16405 ./usr/include/c++/10.1.0/bits/fs_dir.h
+-rw-r--r-- root root 10267 ./usr/include/c++/10.1.0/bits/fs_fwd.h
+-rw-r--r-- root root 9729 ./usr/include/c++/10.1.0/bits/fs_ops.h
+-rw-r--r-- root root 38775 ./usr/include/c++/10.1.0/bits/fs_path.h
+-rw-r--r-- root root 33663 ./usr/include/c++/10.1.0/bits/fstream.tcc
+-rw-r--r-- root root 3433 ./usr/include/c++/10.1.0/bits/functexcept.h
+-rw-r--r-- root root 8567 ./usr/include/c++/10.1.0/bits/functional_hash.h
+-rw-r--r-- root root 7851 ./usr/include/c++/10.1.0/bits/gslice_array.h
+-rw-r--r-- root root 5518 ./usr/include/c++/10.1.0/bits/gslice.h
+-rw-r--r-- root root 2146 ./usr/include/c++/10.1.0/bits/hash_bytes.h
+-rw-r--r-- root root 74752 ./usr/include/c++/10.1.0/bits/hashtable.h
+-rw-r--r-- root root 67673 ./usr/include/c++/10.1.0/bits/hashtable_policy.h
+-rw-r--r-- root root 7861 ./usr/include/c++/10.1.0/bits/indirect_array.h
+-rw-r--r-- root root 2877 ./usr/include/c++/10.1.0/bits/int_limits.h
+-rw-r--r-- root root 6025 ./usr/include/c++/10.1.0/bits/invoke.h
+-rw-r--r-- root root 31179 ./usr/include/c++/10.1.0/bits/ios_base.h
+-rw-r--r-- root root 31093 ./usr/include/c++/10.1.0/bits/istream.tcc
+-rw-r--r-- root root 30948 ./usr/include/c++/10.1.0/bits/iterator_concepts.h
+-rw-r--r-- root root 16968 ./usr/include/c++/10.1.0/bits/list.tcc
+-rw-r--r-- root root 24950 ./usr/include/c++/10.1.0/bits/locale_classes.h
+-rw-r--r-- root root 8375 ./usr/include/c++/10.1.0/bits/locale_classes.tcc
+-rw-r--r-- root root 18801 ./usr/include/c++/10.1.0/bits/locale_conv.h
+-rw-r--r-- root root 92321 ./usr/include/c++/10.1.0/bits/locale_facets.h
+-rw-r--r-- root root 68980 ./usr/include/c++/10.1.0/bits/locale_facets_nonio.h
+-rw-r--r-- root root 45280 ./usr/include/c++/10.1.0/bits/locale_facets_nonio.tcc
+-rw-r--r-- root root 39548 ./usr/include/c++/10.1.0/bits/locale_facets.tcc
+-rw-r--r-- root root 5941 ./usr/include/c++/10.1.0/bits/localefwd.h
+-rw-r--r-- root root 7675 ./usr/include/c++/10.1.0/bits/mask_array.h
+-rw-r--r-- root root 2487 ./usr/include/c++/10.1.0/bits/memoryfwd.h
+-rw-r--r-- root root 6613 ./usr/include/c++/10.1.0/bits/move.h
+-rw-r--r-- root root 4886 ./usr/include/c++/10.1.0/bits/nested_exception.h
+-rw-r--r-- root root 8216 ./usr/include/c++/10.1.0/bits/node_handle.h
+-rw-r--r-- root root 4002 ./usr/include/c++/10.1.0/bits/ostream_insert.h
+-rw-r--r-- root root 12315 ./usr/include/c++/10.1.0/bits/ostream.tcc
+-rw-r--r-- root root 7943 ./usr/include/c++/10.1.0/bits/parse_numbers.h
+-rw-r--r-- root root 8465 ./usr/include/c++/10.1.0/bits/postypes.h
+-rw-r--r-- root root 10153 ./usr/include/c++/10.1.0/bits/predefined_ops.h
+-rw-r--r-- root root 6728 ./usr/include/c++/10.1.0/bits/ptr_traits.h
+-rw-r--r-- root root 5053 ./usr/include/c++/10.1.0/bits/quoted_string.h
+-rw-r--r-- root root 178118 ./usr/include/c++/10.1.0/bits/random.h
+-rw-r--r-- root root 103405 ./usr/include/c++/10.1.0/bits/random.tcc
+-rw-r--r-- root root 32001 ./usr/include/c++/10.1.0/bits/range_access.h
+-rw-r--r-- root root 6516 ./usr/include/c++/10.1.0/bits/range_cmp.h
+-rw-r--r-- root root 18319 ./usr/include/c++/10.1.0/bits/ranges_algobase.h
+-rw-r--r-- root root 121079 ./usr/include/c++/10.1.0/bits/ranges_algo.h
+-rw-r--r-- root root 18023 ./usr/include/c++/10.1.0/bits/ranges_uninitialized.h
+-rw-r--r-- root root 13207 ./usr/include/c++/10.1.0/bits/refwrap.h
+-rw-r--r-- root root 10738 ./usr/include/c++/10.1.0/bits/regex_automaton.h
+-rw-r--r-- root root 7722 ./usr/include/c++/10.1.0/bits/regex_automaton.tcc
+-rw-r--r-- root root 16481 ./usr/include/c++/10.1.0/bits/regex_compiler.h
+-rw-r--r-- root root 18929 ./usr/include/c++/10.1.0/bits/regex_compiler.tcc
+-rw-r--r-- root root 14729 ./usr/include/c++/10.1.0/bits/regex_constants.h
+-rw-r--r-- root root 4904 ./usr/include/c++/10.1.0/bits/regex_error.h
+-rw-r--r-- root root 7488 ./usr/include/c++/10.1.0/bits/regex_executor.h
+-rw-r--r-- root root 18841 ./usr/include/c++/10.1.0/bits/regex_executor.tcc
+-rw-r--r-- root root 102775 ./usr/include/c++/10.1.0/bits/regex.h
+-rw-r--r-- root root 7088 ./usr/include/c++/10.1.0/bits/regex_scanner.h
+-rw-r--r-- root root 15009 ./usr/include/c++/10.1.0/bits/regex_scanner.tcc
+-rw-r--r-- root root 16524 ./usr/include/c++/10.1.0/bits/regex.tcc
+-rw-r--r-- root root 9867 ./usr/include/c++/10.1.0/bits/shared_ptr_atomic.h
+-rw-r--r-- root root 55312 ./usr/include/c++/10.1.0/bits/shared_ptr_base.h
+-rw-r--r-- root root 30837 ./usr/include/c++/10.1.0/bits/shared_ptr.h
+-rw-r--r-- root root 9578 ./usr/include/c++/10.1.0/bits/slice_array.h
+-rw-r--r-- root root 47238 ./usr/include/c++/10.1.0/bits/specfun.h
+-rw-r--r-- root root 10142 ./usr/include/c++/10.1.0/bits/sstream.tcc
+-rw-r--r-- root root 3360 ./usr/include/c++/10.1.0/bits/std_abs.h
+-rw-r--r-- root root 21612 ./usr/include/c++/10.1.0/bits/std_function.h
+-rw-r--r-- root root 4767 ./usr/include/c++/10.1.0/bits/std_mutex.h
+-rw-r--r-- root root 71744 ./usr/include/c++/10.1.0/bits/stl_algobase.h
+-rw-r--r-- root root 214835 ./usr/include/c++/10.1.0/bits/stl_algo.h
+-rw-r--r-- root root 34767 ./usr/include/c++/10.1.0/bits/stl_bvector.h
+-rw-r--r-- root root 8521 ./usr/include/c++/10.1.0/bits/stl_construct.h
+-rw-r--r-- root root 76807 ./usr/include/c++/10.1.0/bits/stl_deque.h
+-rw-r--r-- root root 42293 ./usr/include/c++/10.1.0/bits/stl_function.h
+-rw-r--r-- root root 20756 ./usr/include/c++/10.1.0/bits/stl_heap.h
+-rw-r--r-- root root 8178 ./usr/include/c++/10.1.0/bits/stl_iterator_base_funcs.h
+-rw-r--r-- root root 9660 ./usr/include/c++/10.1.0/bits/stl_iterator_base_types.h
+-rw-r--r-- root root 69682 ./usr/include/c++/10.1.0/bits/stl_iterator.h
+-rw-r--r-- root root 68748 ./usr/include/c++/10.1.0/bits/stl_list.h
+-rw-r--r-- root root 54669 ./usr/include/c++/10.1.0/bits/stl_map.h
+-rw-r--r-- root root 43510 ./usr/include/c++/10.1.0/bits/stl_multimap.h
+-rw-r--r-- root root 37662 ./usr/include/c++/10.1.0/bits/stl_multiset.h
+-rw-r--r-- root root 14600 ./usr/include/c++/10.1.0/bits/stl_numeric.h
+-rw-r--r-- root root 20163 ./usr/include/c++/10.1.0/bits/stl_pair.h
+-rw-r--r-- root root 25036 ./usr/include/c++/10.1.0/bits/stl_queue.h
+-rw-r--r-- root root 3830 ./usr/include/c++/10.1.0/bits/stl_raw_storage_iter.h
+-rw-r--r-- root root 4594 ./usr/include/c++/10.1.0/bits/stl_relops.h
+-rw-r--r-- root root 37922 ./usr/include/c++/10.1.0/bits/stl_set.h
+-rw-r--r-- root root 12684 ./usr/include/c++/10.1.0/bits/stl_stack.h
+-rw-r--r-- root root 8623 ./usr/include/c++/10.1.0/bits/stl_tempbuf.h
+-rw-r--r-- root root 74660 ./usr/include/c++/10.1.0/bits/stl_tree.h
+-rw-r--r-- root root 33161 ./usr/include/c++/10.1.0/bits/stl_uninitialized.h
+-rw-r--r-- root root 65919 ./usr/include/c++/10.1.0/bits/stl_vector.h
+-rw-r--r-- root root 15462 ./usr/include/c++/10.1.0/bits/streambuf_iterator.h
+-rw-r--r-- root root 4929 ./usr/include/c++/10.1.0/bits/streambuf.tcc
+-rw-r--r-- root root 7694 ./usr/include/c++/10.1.0/bits/stream_iterator.h
+-rw-r--r-- root root 2690 ./usr/include/c++/10.1.0/bits/stringfwd.h
+-rw-r--r-- root root 6698 ./usr/include/c++/10.1.0/bits/string_view.tcc
+-rw-r--r-- root root 10730 ./usr/include/c++/10.1.0/bits/uniform_int_dist.h
+-rw-r--r-- root root 6090 ./usr/include/c++/10.1.0/bits/unique_lock.h
+-rw-r--r-- root root 31291 ./usr/include/c++/10.1.0/bits/unique_ptr.h
+-rw-r--r-- root root 76744 ./usr/include/c++/10.1.0/bits/unordered_map.h
+-rw-r--r-- root root 60612 ./usr/include/c++/10.1.0/bits/unordered_set.h
+-rw-r--r-- root root 6870 ./usr/include/c++/10.1.0/bits/uses_allocator.h
+-rw-r--r-- root root 22839 ./usr/include/c++/10.1.0/bits/valarray_after.h
+-rw-r--r-- root root 21295 ./usr/include/c++/10.1.0/bits/valarray_array.h
+-rw-r--r-- root root 7254 ./usr/include/c++/10.1.0/bits/valarray_array.tcc
+-rw-r--r-- root root 19142 ./usr/include/c++/10.1.0/bits/valarray_before.h
+-rw-r--r-- root root 30870 ./usr/include/c++/10.1.0/bits/vector.tcc
+-rw-r--r-- root root 1648 ./usr/include/c++/10.1.0/cassert
+-rw-r--r-- root root 1335 ./usr/include/c++/10.1.0/ccomplex
+-rw-r--r-- root root 2409 ./usr/include/c++/10.1.0/cctype
+-rw-r--r-- root root 1770 ./usr/include/c++/10.1.0/cerrno
+-rw-r--r-- root root 2051 ./usr/include/c++/10.1.0/cfenv
+-rw-r--r-- root root 1889 ./usr/include/c++/10.1.0/cfloat
+-rw-r--r-- root root 17991 ./usr/include/c++/10.1.0/charconv
+-rw-r--r-- root root 38834 ./usr/include/c++/10.1.0/chrono
+-rw-r--r-- root root 2157 ./usr/include/c++/10.1.0/cinttypes
+-rw-r--r-- root root 1464 ./usr/include/c++/10.1.0/ciso646
+-rw-r--r-- root root 1913 ./usr/include/c++/10.1.0/climits
+-rw-r--r-- root root 1905 ./usr/include/c++/10.1.0/clocale
+-rw-r--r-- root root 49130 ./usr/include/c++/10.1.0/cmath
+-rw-r--r-- root root 5275 ./usr/include/c++/10.1.0/codecvt
+-rw-r--r-- root root 27896 ./usr/include/c++/10.1.0/compare
+-rw-r--r-- root root 56646 ./usr/include/c++/10.1.0/complex
+-rw-r--r-- root root 1596 ./usr/include/c++/10.1.0/complex.h
+-rw-r--r-- root root 12267 ./usr/include/c++/10.1.0/concepts
+-rw-r--r-- root root 12993 ./usr/include/c++/10.1.0/condition_variable
+-rw-r--r-- root root 7898 ./usr/include/c++/10.1.0/coroutine
+-rw-r--r-- root root 1949 ./usr/include/c++/10.1.0/csetjmp
+-rw-r--r-- root root 1855 ./usr/include/c++/10.1.0/csignal
+-rw-r--r-- root root 1407 ./usr/include/c++/10.1.0/cstdalign
+-rw-r--r-- root root 1868 ./usr/include/c++/10.1.0/cstdarg
+-rw-r--r-- root root 1401 ./usr/include/c++/10.1.0/cstdbool
+-rw-r--r-- root root 6274 ./usr/include/c++/10.1.0/cstddef
+-rw-r--r-- root root 2335 ./usr/include/c++/10.1.0/cstdint
+-rw-r--r-- root root 4439 ./usr/include/c++/10.1.0/cstdio
+-rw-r--r-- root root 6325 ./usr/include/c++/10.1.0/cstdlib
+-rw-r--r-- root root 3156 ./usr/include/c++/10.1.0/cstring
+-rw-r--r-- root root 1360 ./usr/include/c++/10.1.0/ctgmath
+-rw-r--r-- root root 2298 ./usr/include/c++/10.1.0/ctime
+-rw-r--r-- root root 2210 ./usr/include/c++/10.1.0/cuchar
+-rw-r--r-- root root 6542 ./usr/include/c++/10.1.0/cwchar
+-rw-r--r-- root root 2793 ./usr/include/c++/10.1.0/cwctype
+-rw-r--r-- root root 22011 ./usr/include/c++/10.1.0/cxxabi.h
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/debug
+-rw-r--r-- root root 12476 ./usr/include/c++/10.1.0/debug/array
+-rw-r--r-- root root 2411 ./usr/include/c++/10.1.0/debug/assertions.h
+-rw-r--r-- root root 11903 ./usr/include/c++/10.1.0/debug/bitset
+-rw-r--r-- root root 5881 ./usr/include/c++/10.1.0/debug/debug.h
+-rw-r--r-- root root 17979 ./usr/include/c++/10.1.0/debug/deque
+-rw-r--r-- root root 16991 ./usr/include/c++/10.1.0/debug/formatter.h
+-rw-r--r-- root root 27420 ./usr/include/c++/10.1.0/debug/forward_list
+-rw-r--r-- root root 15612 ./usr/include/c++/10.1.0/debug/functions.h
+-rw-r--r-- root root 9985 ./usr/include/c++/10.1.0/debug/helper_functions.h
+-rw-r--r-- root root 25327 ./usr/include/c++/10.1.0/debug/list
+-rw-r--r-- root root 20915 ./usr/include/c++/10.1.0/debug/macros.h
+-rw-r--r-- root root 1656 ./usr/include/c++/10.1.0/debug/map
+-rw-r--r-- root root 23035 ./usr/include/c++/10.1.0/debug/map.h
+-rw-r--r-- root root 20301 ./usr/include/c++/10.1.0/debug/multimap.h
+-rw-r--r-- root root 19200 ./usr/include/c++/10.1.0/debug/multiset.h
+-rw-r--r-- root root 9279 ./usr/include/c++/10.1.0/debug/safe_base.h
+-rw-r--r-- root root 3413 ./usr/include/c++/10.1.0/debug/safe_container.h
+-rw-r--r-- root root 30112 ./usr/include/c++/10.1.0/debug/safe_iterator.h
+-rw-r--r-- root root 16171 ./usr/include/c++/10.1.0/debug/safe_iterator.tcc
+-rw-r--r-- root root 13739 ./usr/include/c++/10.1.0/debug/safe_local_iterator.h
+-rw-r--r-- root root 2905 ./usr/include/c++/10.1.0/debug/safe_local_iterator.tcc
+-rw-r--r-- root root 5096 ./usr/include/c++/10.1.0/debug/safe_sequence.h
+-rw-r--r-- root root 5040 ./usr/include/c++/10.1.0/debug/safe_sequence.tcc
+-rw-r--r-- root root 6895 ./usr/include/c++/10.1.0/debug/safe_unordered_base.h
+-rw-r--r-- root root 3866 ./usr/include/c++/10.1.0/debug/safe_unordered_container.h
+-rw-r--r-- root root 3263 ./usr/include/c++/10.1.0/debug/safe_unordered_container.tcc
+-rw-r--r-- root root 1620 ./usr/include/c++/10.1.0/debug/set
+-rw-r--r-- root root 19199 ./usr/include/c++/10.1.0/debug/set.h
+-rw-r--r-- root root 4542 ./usr/include/c++/10.1.0/debug/stl_iterator.h
+-rw-r--r-- root root 36471 ./usr/include/c++/10.1.0/debug/string
+-rw-r--r-- root root 41394 ./usr/include/c++/10.1.0/debug/unordered_map
+-rw-r--r-- root root 35429 ./usr/include/c++/10.1.0/debug/unordered_set
+-rw-r--r-- root root 23523 ./usr/include/c++/10.1.0/debug/vector
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/decimal
+-rw-r--r-- root root 17636 ./usr/include/c++/10.1.0/decimal/decimal
+-rw-r--r-- root root 16999 ./usr/include/c++/10.1.0/decimal/decimal.h
+-rw-r--r-- root root 3973 ./usr/include/c++/10.1.0/deque
+-rw-r--r-- root root 4848 ./usr/include/c++/10.1.0/exception
+-rw-r--r-- root root 1803 ./usr/include/c++/10.1.0/execution
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/experimental
+-rw-r--r-- root root 3688 ./usr/include/c++/10.1.0/experimental/algorithm
+-rw-r--r-- root root 16010 ./usr/include/c++/10.1.0/experimental/any
+-rw-r--r-- root root 3371 ./usr/include/c++/10.1.0/experimental/array
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/experimental/bits
+-rw-r--r-- root root 10799 ./usr/include/c++/10.1.0/experimental/bits/fs_dir.h
+-rw-r--r-- root root 8524 ./usr/include/c++/10.1.0/experimental/bits/fs_fwd.h
+-rw-r--r-- root root 9340 ./usr/include/c++/10.1.0/experimental/bits/fs_ops.h
+-rw-r--r-- root root 36768 ./usr/include/c++/10.1.0/experimental/bits/fs_path.h
+-rw-r--r-- root root 2227 ./usr/include/c++/10.1.0/experimental/bits/lfts_config.h
+-rw-r--r-- root root 4814 ./usr/include/c++/10.1.0/experimental/bits/net.h
+-rw-r--r-- root root 20205 ./usr/include/c++/10.1.0/experimental/bits/shared_ptr.h
+-rw-r--r-- root root 6816 ./usr/include/c++/10.1.0/experimental/bits/string_view.tcc
+-rw-r--r-- root root 28719 ./usr/include/c++/10.1.0/experimental/buffer
+-rw-r--r-- root root 1960 ./usr/include/c++/10.1.0/experimental/chrono
+-rw-r--r-- root root 2296 ./usr/include/c++/10.1.0/experimental/deque
+-rw-r--r-- root root 55081 ./usr/include/c++/10.1.0/experimental/executor
+-rw-r--r-- root root 1589 ./usr/include/c++/10.1.0/experimental/filesystem
+-rw-r--r-- root root 2367 ./usr/include/c++/10.1.0/experimental/forward_list
+-rw-r--r-- root root 12311 ./usr/include/c++/10.1.0/experimental/functional
+-rw-r--r-- root root 65288 ./usr/include/c++/10.1.0/experimental/internet
+-rw-r--r-- root root 21331 ./usr/include/c++/10.1.0/experimental/io_context
+-rw-r--r-- root root 3534 ./usr/include/c++/10.1.0/experimental/iterator
+-rw-r--r-- root root 2265 ./usr/include/c++/10.1.0/experimental/list
+-rw-r--r-- root root 2594 ./usr/include/c++/10.1.0/experimental/map
+-rw-r--r-- root root 6056 ./usr/include/c++/10.1.0/experimental/memory
+-rw-r--r-- root root 17388 ./usr/include/c++/10.1.0/experimental/memory_resource
+-rw-r--r-- root root 1542 ./usr/include/c++/10.1.0/experimental/net
+-rw-r--r-- root root 3744 ./usr/include/c++/10.1.0/experimental/netfwd
+-rw-r--r-- root root 2858 ./usr/include/c++/10.1.0/experimental/numeric
+-rw-r--r-- root root 26832 ./usr/include/c++/10.1.0/experimental/optional
+-rw-r--r-- root root 15335 ./usr/include/c++/10.1.0/experimental/propagate_const
+-rw-r--r-- root root 2499 ./usr/include/c++/10.1.0/experimental/random
+-rw-r--r-- root root 2438 ./usr/include/c++/10.1.0/experimental/ratio
+-rw-r--r-- root root 2121 ./usr/include/c++/10.1.0/experimental/regex
+-rw-r--r-- root root 2471 ./usr/include/c++/10.1.0/experimental/set
+-rw-r--r-- root root 76228 ./usr/include/c++/10.1.0/experimental/socket
+-rw-r--r-- root root 2699 ./usr/include/c++/10.1.0/experimental/source_location
+-rw-r--r-- root root 2920 ./usr/include/c++/10.1.0/experimental/string
+-rw-r--r-- root root 22662 ./usr/include/c++/10.1.0/experimental/string_view
+-rw-r--r-- root root 2045 ./usr/include/c++/10.1.0/experimental/system_error
+-rw-r--r-- root root 5794 ./usr/include/c++/10.1.0/experimental/timer
+-rw-r--r-- root root 2472 ./usr/include/c++/10.1.0/experimental/tuple
+-rw-r--r-- root root 11221 ./usr/include/c++/10.1.0/experimental/type_traits
+-rw-r--r-- root root 2845 ./usr/include/c++/10.1.0/experimental/unordered_map
+-rw-r--r-- root root 2728 ./usr/include/c++/10.1.0/experimental/unordered_set
+-rw-r--r-- root root 1657 ./usr/include/c++/10.1.0/experimental/utility
+-rw-r--r-- root root 2355 ./usr/include/c++/10.1.0/experimental/vector
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext
+-rw-r--r-- root root 19255 ./usr/include/c++/10.1.0/ext/algorithm
+-rw-r--r-- root root 3972 ./usr/include/c++/10.1.0/ext/aligned_buffer.h
+-rw-r--r-- root root 6139 ./usr/include/c++/10.1.0/ext/alloc_traits.h
+-rw-r--r-- root root 3477 ./usr/include/c++/10.1.0/ext/atomicity.h
+-rw-r--r-- root root 32193 ./usr/include/c++/10.1.0/ext/bitmap_allocator.h
+-rw-r--r-- root root 4447 ./usr/include/c++/10.1.0/ext/cast.h
+-rw-r--r-- root root 6570 ./usr/include/c++/10.1.0/ext/cmath
+-rw-r--r-- root root 16353 ./usr/include/c++/10.1.0/ext/codecvt_specializations.h
+-rw-r--r-- root root 7542 ./usr/include/c++/10.1.0/ext/concurrence.h
+-rw-r--r-- root root 5881 ./usr/include/c++/10.1.0/ext/debug_allocator.h
+-rw-r--r-- root root 2247 ./usr/include/c++/10.1.0/ext/enc_filebuf.h
+-rw-r--r-- root root 6277 ./usr/include/c++/10.1.0/ext/extptr_allocator.h
+-rw-r--r-- root root 14172 ./usr/include/c++/10.1.0/ext/functional
+-rw-r--r-- root root 17822 ./usr/include/c++/10.1.0/ext/hash_map
+-rw-r--r-- root root 17323 ./usr/include/c++/10.1.0/ext/hash_set
+-rw-r--r-- root root 4031 ./usr/include/c++/10.1.0/ext/iterator
+-rw-r--r-- root root 5696 ./usr/include/c++/10.1.0/ext/malloc_allocator.h
+-rw-r--r-- root root 7173 ./usr/include/c++/10.1.0/ext/memory
+-rw-r--r-- root root 23628 ./usr/include/c++/10.1.0/ext/mt_allocator.h
+-rw-r--r-- root root 5587 ./usr/include/c++/10.1.0/ext/new_allocator.h
+-rw-r--r-- root root 4739 ./usr/include/c++/10.1.0/ext/numeric
+-rw-r--r-- root root 4570 ./usr/include/c++/10.1.0/ext/numeric_traits.h
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds
+-rw-r--r-- root root 30110 ./usr/include/c++/10.1.0/ext/pb_ds/assoc_container.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_
+-rw-r--r-- root root 9027 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp
+-rw-r--r-- root root 4338 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/const_iterator.hpp
+-rw-r--r-- root root 4222 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp
+-rw-r--r-- root root 2574 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp
+-rw-r--r-- root root 2802 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp
+-rw-r--r-- root root 2767 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/entry_pred.hpp
+-rw-r--r-- root root 5537 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp
+-rw-r--r-- root root 2630 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp
+-rw-r--r-- root root 2114 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp
+-rw-r--r-- root root 5011 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
+-rw-r--r-- root root 2303 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp
+-rw-r--r-- root root 4363 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/point_const_iterator.hpp
+-rw-r--r-- root root 1935 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp
+-rw-r--r-- root root 6133 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/resize_policy.hpp
+-rw-r--r-- root root 4956 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp
+-rw-r--r-- root root 2480 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binomial_heap_
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binomial_heap_base_
+-rw-r--r-- root root 6185 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp
+-rw-r--r-- root root 2721 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp
+-rw-r--r-- root root 3501 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp
+-rw-r--r-- root root 4515 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp
+-rw-r--r-- root root 2378 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp
+-rw-r--r-- root root 5304 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp
+-rw-r--r-- root root 5398 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp
+-rw-r--r-- root root 3922 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp
+-rw-r--r-- root root 2184 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp
+-rw-r--r-- root root 1930 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_
+-rw-r--r-- root root 12468 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp
+-rw-r--r-- root root 5539 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
+-rw-r--r-- root root 8104 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp
+-rw-r--r-- root root 2952 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp
+-rw-r--r-- root root 4712 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp
+-rw-r--r-- root root 2132 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp
+-rw-r--r-- root root 5514 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp
+-rw-r--r-- root root 3548 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp
+-rw-r--r-- root root 5921 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp
+-rw-r--r-- root root 8961 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp
+-rw-r--r-- root root 1938 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp
+-rw-r--r-- root root 2942 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp
+-rw-r--r-- root root 4223 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp
+-rw-r--r-- root root 4040 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp
+-rw-r--r-- root root 6374 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/traits.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/branch_policy
+-rw-r--r-- root root 4020 ./usr/include/c++/10.1.0/ext/pb_ds/detail/branch_policy/branch_policy.hpp
+-rw-r--r-- root root 2379 ./usr/include/c++/10.1.0/ext/pb_ds/detail/branch_policy/null_node_metadata.hpp
+-rw-r--r-- root root 3254 ./usr/include/c++/10.1.0/ext/pb_ds/detail/branch_policy/traits.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_
+-rw-r--r-- root root 20071 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
+-rw-r--r-- root root 2798 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp
+-rw-r--r-- root root 2874 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp
+-rw-r--r-- root root 5824 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp
+-rw-r--r-- root root 2259 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2339 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2726 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp
+-rw-r--r-- root root 2033 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2181 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2987 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp
+-rw-r--r-- root root 3278 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp
+-rw-r--r-- root root 3297 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp
+-rw-r--r-- root root 3258 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2518 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp
+-rw-r--r-- root root 1779 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp
+-rw-r--r-- root root 3163 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp
+-rw-r--r-- root root 1896 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp
+-rw-r--r-- root root 2651 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2707 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2697 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp
+-rw-r--r-- root root 2514 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp
+-rw-r--r-- root root 4095 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp
+-rw-r--r-- root root 2275 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2307 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2161 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp
+-rw-r--r-- root root 2396 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp
+-rw-r--r-- root root 2772 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cond_dealtor.hpp
+-rw-r--r-- root root 13120 ./usr/include/c++/10.1.0/ext/pb_ds/detail/container_base_dispatch.hpp
+-rw-r--r-- root root 8697 ./usr/include/c++/10.1.0/ext/pb_ds/detail/debug_map_base.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/eq_fn
+-rw-r--r-- root root 2330 ./usr/include/c++/10.1.0/ext/pb_ds/detail/eq_fn/eq_by_less.hpp
+-rw-r--r-- root root 3739 ./usr/include/c++/10.1.0/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_
+-rw-r--r-- root root 6639 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp
+-rw-r--r-- root root 2235 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2302 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2207 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp
+-rw-r--r-- root root 2538 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2678 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp
+-rw-r--r-- root root 3237 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp
+-rw-r--r-- root root 2918 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2952 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2511 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp
+-rw-r--r-- root root 1950 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp
+-rw-r--r-- root root 1780 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp
+-rw-r--r-- root root 20441 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp
+-rw-r--r-- root root 2160 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp
+-rw-r--r-- root root 1896 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp
+-rw-r--r-- root root 3810 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp
+-rw-r--r-- root root 4118 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2652 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp
+-rw-r--r-- root root 2693 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp
+-rw-r--r-- root root 4190 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp
+-rw-r--r-- root root 2651 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2684 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2457 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn
+-rw-r--r-- root root 2137 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp
+-rw-r--r-- root root 2127 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp
+-rw-r--r-- root root 1946 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp
+-rw-r--r-- root root 3290 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp
+-rw-r--r-- root root 2391 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp
+-rw-r--r-- root root 2009 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp
+-rw-r--r-- root root 1953 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp
+-rw-r--r-- root root 10543 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp
+-rw-r--r-- root root 10256 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp
+-rw-r--r-- root root 2291 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp
+-rw-r--r-- root root 2469 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp
+-rw-r--r-- root root 2598 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp
+-rw-r--r-- root root 2487 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/left_child_next_sibling_heap_
+-rw-r--r-- root root 4924 ./usr/include/c++/10.1.0/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp
+-rw-r--r-- root root 4088 ./usr/include/c++/10.1.0/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp
+-rw-r--r-- root root 4108 ./usr/include/c++/10.1.0/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp
+-rw-r--r-- root root 3992 ./usr/include/c++/10.1.0/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp
+-rw-r--r-- root root 2158 ./usr/include/c++/10.1.0/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp
+-rw-r--r-- root root 5234 ./usr/include/c++/10.1.0/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp
+-rw-r--r-- root root 2588 ./usr/include/c++/10.1.0/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp
+-rw-r--r-- root root 8182 ./usr/include/c++/10.1.0/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp
+-rw-r--r-- root root 3240 ./usr/include/c++/10.1.0/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp
+-rw-r--r-- root root 4397 ./usr/include/c++/10.1.0/ext/pb_ds/detail/left_child_next_sibling_heap_/point_const_iterator.hpp
+-rw-r--r-- root root 1960 ./usr/include/c++/10.1.0/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp
+-rw-r--r-- root root 2848 ./usr/include/c++/10.1.0/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_map_
+-rw-r--r-- root root 3617 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp
+-rw-r--r-- root root 2128 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp
+-rw-r--r-- root root 2117 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp
+-rw-r--r-- root root 3515 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp
+-rw-r--r-- root root 2894 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp
+-rw-r--r-- root root 2126 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp
+-rw-r--r-- root root 3543 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp
+-rw-r--r-- root root 2547 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
+-rw-r--r-- root root 10551 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_map_/lu_map_.hpp
+-rw-r--r-- root root 2061 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_policy
+-rw-r--r-- root root 2850 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_policy/lu_counter_metadata.hpp
+-rw-r--r-- root root 2672 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/ov_tree_map_
+-rw-r--r-- root root 6916 ./usr/include/c++/10.1.0/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
+-rw-r--r-- root root 2851 ./usr/include/c++/10.1.0/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp
+-rw-r--r-- root root 5014 ./usr/include/c++/10.1.0/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp
+-rw-r--r-- root root 2136 ./usr/include/c++/10.1.0/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp
+-rw-r--r-- root root 2306 ./usr/include/c++/10.1.0/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp
+-rw-r--r-- root root 3394 ./usr/include/c++/10.1.0/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp
+-rw-r--r-- root root 8638 ./usr/include/c++/10.1.0/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp
+-rw-r--r-- root root 15509 ./usr/include/c++/10.1.0/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp
+-rw-r--r-- root root 1920 ./usr/include/c++/10.1.0/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp
+-rw-r--r-- root root 3807 ./usr/include/c++/10.1.0/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp
+-rw-r--r-- root root 4562 ./usr/include/c++/10.1.0/ext/pb_ds/detail/ov_tree_map_/traits.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pairing_heap_
+-rw-r--r-- root root 2539 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp
+-rw-r--r-- root root 2029 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp
+-rw-r--r-- root root 7224 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp
+-rw-r--r-- root root 1970 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp
+-rw-r--r-- root root 2980 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp
+-rw-r--r-- root root 5500 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp
+-rw-r--r-- root root 3739 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_
+-rw-r--r-- root root 5745 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp
+-rw-r--r-- root root 3824 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp
+-rw-r--r-- root root 7978 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp
+-rw-r--r-- root root 7908 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp
+-rw-r--r-- root root 2108 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp
+-rw-r--r-- root root 14508 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp
+-rw-r--r-- root root 3513 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp
+-rw-r--r-- root root 36857 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp
+-rw-r--r-- root root 16777 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp
+-rw-r--r-- root root 2248 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp
+-rw-r--r-- root root 2953 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp
+-rw-r--r-- root root 4363 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp
+-rw-r--r-- root root 7758 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp
+-rw-r--r-- root root 6718 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/synth_access_traits.hpp
+-rw-r--r-- root root 3434 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp
+-rw-r--r-- root root 6305 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/traits.hpp
+-rw-r--r-- root root 2075 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp
+-rw-r--r-- root root 4140 ./usr/include/c++/10.1.0/ext/pb_ds/detail/priority_queue_base_dispatch.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rb_tree_map_
+-rw-r--r-- root root 2816 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
+-rw-r--r-- root root 2794 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp
+-rw-r--r-- root root 7084 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp
+-rw-r--r-- root root 1703 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp
+-rw-r--r-- root root 1874 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp
+-rw-r--r-- root root 3900 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp
+-rw-r--r-- root root 3671 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rb_tree_map_/node.hpp
+-rw-r--r-- root root 7962 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp
+-rw-r--r-- root root 7894 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp
+-rw-r--r-- root root 3283 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rb_tree_map_/traits.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rc_binomial_heap_
+-rw-r--r-- root root 2500 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp
+-rw-r--r-- root root 3571 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp
+-rw-r--r-- root root 2922 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp
+-rw-r--r-- root root 4270 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp
+-rw-r--r-- root root 5303 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp
+-rw-r--r-- root root 6199 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp
+-rw-r--r-- root root 2451 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp
+-rw-r--r-- root root 1937 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/resize_policy
+-rw-r--r-- root root 4932 ./usr/include/c++/10.1.0/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp
+-rw-r--r-- root root 2805 ./usr/include/c++/10.1.0/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp
+-rw-r--r-- root root 7785 ./usr/include/c++/10.1.0/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
+-rw-r--r-- root root 2970 ./usr/include/c++/10.1.0/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp
+-rw-r--r-- root root 6172 ./usr/include/c++/10.1.0/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
+-rw-r--r-- root root 6316 ./usr/include/c++/10.1.0/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp
+-rw-r--r-- root root 3578 ./usr/include/c++/10.1.0/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp
+-rw-r--r-- root root 3914 ./usr/include/c++/10.1.0/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp
+-rw-r--r-- root root 2427 ./usr/include/c++/10.1.0/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/splay_tree_
+-rw-r--r-- root root 2880 ./usr/include/c++/10.1.0/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp
+-rw-r--r-- root root 2496 ./usr/include/c++/10.1.0/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp
+-rw-r--r-- root root 4302 ./usr/include/c++/10.1.0/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp
+-rw-r--r-- root root 3352 ./usr/include/c++/10.1.0/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp
+-rw-r--r-- root root 1689 ./usr/include/c++/10.1.0/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp
+-rw-r--r-- root root 3386 ./usr/include/c++/10.1.0/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp
+-rw-r--r-- root root 3587 ./usr/include/c++/10.1.0/ext/pb_ds/detail/splay_tree_/node.hpp
+-rw-r--r-- root root 8082 ./usr/include/c++/10.1.0/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp
+-rw-r--r-- root root 9307 ./usr/include/c++/10.1.0/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp
+-rw-r--r-- root root 3667 ./usr/include/c++/10.1.0/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp
+-rw-r--r-- root root 3351 ./usr/include/c++/10.1.0/ext/pb_ds/detail/splay_tree_/traits.hpp
+-rw-r--r-- root root 5031 ./usr/include/c++/10.1.0/ext/pb_ds/detail/standard_policies.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/thin_heap_
+-rw-r--r-- root root 2979 ./usr/include/c++/10.1.0/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp
+-rw-r--r-- root root 3899 ./usr/include/c++/10.1.0/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp
+-rw-r--r-- root root 6088 ./usr/include/c++/10.1.0/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp
+-rw-r--r-- root root 1985 ./usr/include/c++/10.1.0/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp
+-rw-r--r-- root root 7516 ./usr/include/c++/10.1.0/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp
+-rw-r--r-- root root 3188 ./usr/include/c++/10.1.0/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp
+-rw-r--r-- root root 8389 ./usr/include/c++/10.1.0/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp
+-rw-r--r-- root root 1995 ./usr/include/c++/10.1.0/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/tree_policy
+-rw-r--r-- root root 3338 ./usr/include/c++/10.1.0/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp
+-rw-r--r-- root root 3756 ./usr/include/c++/10.1.0/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp
+-rw-r--r-- root root 2346 ./usr/include/c++/10.1.0/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp
+-rw-r--r-- root root 5153 ./usr/include/c++/10.1.0/ext/pb_ds/detail/tree_trace_base.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/trie_policy
+-rw-r--r-- root root 3338 ./usr/include/c++/10.1.0/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp
+-rw-r--r-- root root 4734 ./usr/include/c++/10.1.0/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp
+-rw-r--r-- root root 4544 ./usr/include/c++/10.1.0/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp
+-rw-r--r-- root root 2666 ./usr/include/c++/10.1.0/ext/pb_ds/detail/trie_policy/sample_trie_access_traits.hpp
+-rw-r--r-- root root 2348 ./usr/include/c++/10.1.0/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp
+-rw-r--r-- root root 5847 ./usr/include/c++/10.1.0/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp
+-rw-r--r-- root root 3084 ./usr/include/c++/10.1.0/ext/pb_ds/detail/trie_policy/trie_string_access_traits_imp.hpp
+-rw-r--r-- root root 6450 ./usr/include/c++/10.1.0/ext/pb_ds/detail/types_traits.hpp
+-rw-r--r-- root root 4318 ./usr/include/c++/10.1.0/ext/pb_ds/detail/type_utils.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/unordered_iterator
+-rw-r--r-- root root 3517 ./usr/include/c++/10.1.0/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp
+-rw-r--r-- root root 3966 ./usr/include/c++/10.1.0/ext/pb_ds/detail/unordered_iterator/iterator.hpp
+-rw-r--r-- root root 3975 ./usr/include/c++/10.1.0/ext/pb_ds/detail/unordered_iterator/point_const_iterator.hpp
+-rw-r--r-- root root 3742 ./usr/include/c++/10.1.0/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp
+-rw-r--r-- root root 2988 ./usr/include/c++/10.1.0/ext/pb_ds/exception.hpp
+-rw-r--r-- root root 16815 ./usr/include/c++/10.1.0/ext/pb_ds/hash_policy.hpp
+-rw-r--r-- root root 4318 ./usr/include/c++/10.1.0/ext/pb_ds/list_update_policy.hpp
+-rw-r--r-- root root 5444 ./usr/include/c++/10.1.0/ext/pb_ds/priority_queue.hpp
+-rw-r--r-- root root 12268 ./usr/include/c++/10.1.0/ext/pb_ds/tag_and_trait.hpp
+-rw-r--r-- root root 5569 ./usr/include/c++/10.1.0/ext/pb_ds/tree_policy.hpp
+-rw-r--r-- root root 12201 ./usr/include/c++/10.1.0/ext/pb_ds/trie_policy.hpp
+-rw-r--r-- root root 5556 ./usr/include/c++/10.1.0/ext/pod_char_traits.h
+-rw-r--r-- root root 20480 ./usr/include/c++/10.1.0/ext/pointer.h
+-rw-r--r-- root root 8965 ./usr/include/c++/10.1.0/ext/pool_allocator.h
+-rw-r--r-- root root 113176 ./usr/include/c++/10.1.0/ext/random
+-rw-r--r-- root root 60330 ./usr/include/c++/10.1.0/ext/random.tcc
+-rw-r--r-- root root 3278 ./usr/include/c++/10.1.0/ext/rb_tree
+-rw-r--r-- root root 23794 ./usr/include/c++/10.1.0/ext/rc_string_base.h
+-rw-r--r-- root root 88598 ./usr/include/c++/10.1.0/ext/rope
+-rw-r--r-- root root 48860 ./usr/include/c++/10.1.0/ext/ropeimpl.h
+-rw-r--r-- root root 29900 ./usr/include/c++/10.1.0/ext/slist
+-rw-r--r-- root root 16393 ./usr/include/c++/10.1.0/ext/sso_string_base.h
+-rw-r--r-- root root 5670 ./usr/include/c++/10.1.0/ext/stdio_filebuf.h
+-rw-r--r-- root root 8782 ./usr/include/c++/10.1.0/ext/stdio_sync_filebuf.h
+-rw-r--r-- root root 3597 ./usr/include/c++/10.1.0/ext/string_conversions.h
+-rw-r--r-- root root 25222 ./usr/include/c++/10.1.0/ext/throw_allocator.h
+-rw-r--r-- root root 16480 ./usr/include/c++/10.1.0/ext/typelist.h
+-rw-r--r-- root root 5914 ./usr/include/c++/10.1.0/ext/type_traits.h
+-rw-r--r-- root root 3178 ./usr/include/c++/10.1.0/ext/vstring_fwd.h
+-rw-r--r-- root root 110624 ./usr/include/c++/10.1.0/ext/vstring.h
+-rw-r--r-- root root 23614 ./usr/include/c++/10.1.0/ext/vstring.tcc
+-rw-r--r-- root root 5885 ./usr/include/c++/10.1.0/ext/vstring_util.h
+-rw-r--r-- root root 2020 ./usr/include/c++/10.1.0/fenv.h
+-rw-r--r-- root root 1645 ./usr/include/c++/10.1.0/filesystem
+-rw-r--r-- root root 2690 ./usr/include/c++/10.1.0/forward_list
+-rw-r--r-- root root 40559 ./usr/include/c++/10.1.0/fstream
+-rw-r--r-- root root 40189 ./usr/include/c++/10.1.0/functional
+-rw-r--r-- root root 50826 ./usr/include/c++/10.1.0/future
+-rw-r--r-- root root 3038 ./usr/include/c++/10.1.0/initializer_list
+-rw-r--r-- root root 16547 ./usr/include/c++/10.1.0/iomanip
+-rw-r--r-- root root 1601 ./usr/include/c++/10.1.0/ios
+-rw-r--r-- root root 6918 ./usr/include/c++/10.1.0/iosfwd
+-rw-r--r-- root root 2695 ./usr/include/c++/10.1.0/iostream
+-rw-r--r-- root root 32843 ./usr/include/c++/10.1.0/istream
+-rw-r--r-- root root 2751 ./usr/include/c++/10.1.0/iterator
+-rw-r--r-- root root 71808 ./usr/include/c++/10.1.0/limits
+-rw-r--r-- root root 3657 ./usr/include/c++/10.1.0/list
+-rw-r--r-- root root 1488 ./usr/include/c++/10.1.0/locale
+-rw-r--r-- root root 3929 ./usr/include/c++/10.1.0/map
+-rw-r--r-- root root 4573 ./usr/include/c++/10.1.0/math.h
+-rw-r--r-- root root 13663 ./usr/include/c++/10.1.0/memory
+-rw-r--r-- root root 20624 ./usr/include/c++/10.1.0/memory_resource
+-rw-r--r-- root root 19755 ./usr/include/c++/10.1.0/mutex
+-rw-r--r-- root root 8199 ./usr/include/c++/10.1.0/new
+-rw-r--r-- root root 6220 ./usr/include/c++/10.1.0/numbers
+-rw-r--r-- root root 25090 ./usr/include/c++/10.1.0/numeric
+-rw-r--r-- root root 38703 ./usr/include/c++/10.1.0/optional
+-rw-r--r-- root root 24826 ./usr/include/c++/10.1.0/ostream
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/parallel
+-rw-r--r-- root root 18259 ./usr/include/c++/10.1.0/parallel/algobase.h
+-rw-r--r-- root root 80136 ./usr/include/c++/10.1.0/parallel/algo.h
+-rw-r--r-- root root 1381 ./usr/include/c++/10.1.0/parallel/algorithm
+-rw-r--r-- root root 32306 ./usr/include/c++/10.1.0/parallel/algorithmfwd.h
+-rw-r--r-- root root 16952 ./usr/include/c++/10.1.0/parallel/balanced_quicksort.h
+-rw-r--r-- root root 12373 ./usr/include/c++/10.1.0/parallel/base.h
+-rw-r--r-- root root 1586 ./usr/include/c++/10.1.0/parallel/basic_iterator.h
+-rw-r--r-- root root 2235 ./usr/include/c++/10.1.0/parallel/checkers.h
+-rw-r--r-- root root 3790 ./usr/include/c++/10.1.0/parallel/compatibility.h
+-rw-r--r-- root root 2871 ./usr/include/c++/10.1.0/parallel/compiletime_settings.h
+-rw-r--r-- root root 3356 ./usr/include/c++/10.1.0/parallel/equally_split.h
+-rw-r--r-- root root 3543 ./usr/include/c++/10.1.0/parallel/features.h
+-rw-r--r-- root root 13591 ./usr/include/c++/10.1.0/parallel/find.h
+-rw-r--r-- root root 6992 ./usr/include/c++/10.1.0/parallel/find_selectors.h
+-rw-r--r-- root root 3947 ./usr/include/c++/10.1.0/parallel/for_each.h
+-rw-r--r-- root root 10565 ./usr/include/c++/10.1.0/parallel/for_each_selectors.h
+-rw-r--r-- root root 5678 ./usr/include/c++/10.1.0/parallel/iterator.h
+-rw-r--r-- root root 6542 ./usr/include/c++/10.1.0/parallel/list_partition.h
+-rw-r--r-- root root 28592 ./usr/include/c++/10.1.0/parallel/losertree.h
+-rw-r--r-- root root 9578 ./usr/include/c++/10.1.0/parallel/merge.h
+-rw-r--r-- root root 22073 ./usr/include/c++/10.1.0/parallel/multiseq_selection.h
+-rw-r--r-- root root 70545 ./usr/include/c++/10.1.0/parallel/multiway_merge.h
+-rw-r--r-- root root 15281 ./usr/include/c++/10.1.0/parallel/multiway_mergesort.h
+-rw-r--r-- root root 20717 ./usr/include/c++/10.1.0/parallel/numeric
+-rw-r--r-- root root 7506 ./usr/include/c++/10.1.0/parallel/numericfwd.h
+-rw-r--r-- root root 4031 ./usr/include/c++/10.1.0/parallel/omp_loop.h
+-rw-r--r-- root root 4104 ./usr/include/c++/10.1.0/parallel/omp_loop_static.h
+-rw-r--r-- root root 1576 ./usr/include/c++/10.1.0/parallel/parallel.h
+-rw-r--r-- root root 4552 ./usr/include/c++/10.1.0/parallel/par_loop.h
+-rw-r--r-- root root 7474 ./usr/include/c++/10.1.0/parallel/partial_sum.h
+-rw-r--r-- root root 14961 ./usr/include/c++/10.1.0/parallel/partition.h
+-rw-r--r-- root root 5542 ./usr/include/c++/10.1.0/parallel/queue.h
+-rw-r--r-- root root 6126 ./usr/include/c++/10.1.0/parallel/quicksort.h
+-rw-r--r-- root root 4227 ./usr/include/c++/10.1.0/parallel/random_number.h
+-rw-r--r-- root root 18675 ./usr/include/c++/10.1.0/parallel/random_shuffle.h
+-rw-r--r-- root root 5391 ./usr/include/c++/10.1.0/parallel/search.h
+-rw-r--r-- root root 14590 ./usr/include/c++/10.1.0/parallel/set_operations.h
+-rw-r--r-- root root 12462 ./usr/include/c++/10.1.0/parallel/settings.h
+-rw-r--r-- root root 7709 ./usr/include/c++/10.1.0/parallel/sort.h
+-rw-r--r-- root root 5982 ./usr/include/c++/10.1.0/parallel/tags.h
+-rw-r--r-- root root 3716 ./usr/include/c++/10.1.0/parallel/types.h
+-rw-r--r-- root root 6165 ./usr/include/c++/10.1.0/parallel/unique_copy.h
+-rw-r--r-- root root 9610 ./usr/include/c++/10.1.0/parallel/workstealing.h
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/pstl
+-rw-r--r-- root root 68340 ./usr/include/c++/10.1.0/pstl/algorithm_fwd.h
+-rw-r--r-- root root 172216 ./usr/include/c++/10.1.0/pstl/algorithm_impl.h
+-rw-r--r-- root root 3694 ./usr/include/c++/10.1.0/pstl/execution_defs.h
+-rw-r--r-- root root 4834 ./usr/include/c++/10.1.0/pstl/execution_impl.h
+-rw-r--r-- root root 32278 ./usr/include/c++/10.1.0/pstl/glue_algorithm_defs.h
+-rw-r--r-- root root 64874 ./usr/include/c++/10.1.0/pstl/glue_algorithm_impl.h
+-rw-r--r-- root root 1549 ./usr/include/c++/10.1.0/pstl/glue_execution_defs.h
+-rw-r--r-- root root 3865 ./usr/include/c++/10.1.0/pstl/glue_memory_defs.h
+-rw-r--r-- root root 19574 ./usr/include/c++/10.1.0/pstl/glue_memory_impl.h
+-rw-r--r-- root root 6620 ./usr/include/c++/10.1.0/pstl/glue_numeric_defs.h
+-rw-r--r-- root root 11628 ./usr/include/c++/10.1.0/pstl/glue_numeric_impl.h
+-rw-r--r-- root root 1997 ./usr/include/c++/10.1.0/pstl/memory_impl.h
+-rw-r--r-- root root 7929 ./usr/include/c++/10.1.0/pstl/numeric_fwd.h
+-rw-r--r-- root root 18748 ./usr/include/c++/10.1.0/pstl/numeric_impl.h
+-rw-r--r-- root root 718 ./usr/include/c++/10.1.0/pstl/parallel_backend.h
+-rw-r--r-- root root 4084 ./usr/include/c++/10.1.0/pstl/parallel_backend_serial.h
+-rw-r--r-- root root 26379 ./usr/include/c++/10.1.0/pstl/parallel_backend_tbb.h
+-rw-r--r-- root root 5602 ./usr/include/c++/10.1.0/pstl/parallel_backend_utils.h
+-rw-r--r-- root root 4110 ./usr/include/c++/10.1.0/pstl/parallel_impl.h
+-rw-r--r-- root root 6990 ./usr/include/c++/10.1.0/pstl/pstl_config.h
+-rw-r--r-- root root 29256 ./usr/include/c++/10.1.0/pstl/unseq_backend_simd.h
+-rw-r--r-- root root 4606 ./usr/include/c++/10.1.0/pstl/utils.h
+-rw-r--r-- root root 2467 ./usr/include/c++/10.1.0/queue
+-rw-r--r-- root root 1692 ./usr/include/c++/10.1.0/random
+-rw-r--r-- root root 97030 ./usr/include/c++/10.1.0/ranges
+-rw-r--r-- root root 20107 ./usr/include/c++/10.1.0/ratio
+-rw-r--r-- root root 2648 ./usr/include/c++/10.1.0/regex
+-rw-r--r-- root root 17459 ./usr/include/c++/10.1.0/scoped_allocator
+-rw-r--r-- root root 3799 ./usr/include/c++/10.1.0/set
+-rw-r--r-- root root 24417 ./usr/include/c++/10.1.0/shared_mutex
+-rw-r--r-- root root 13251 ./usr/include/c++/10.1.0/span
+-rw-r--r-- root root 28524 ./usr/include/c++/10.1.0/sstream
+-rw-r--r-- root root 2391 ./usr/include/c++/10.1.0/stack
+-rw-r--r-- root root 9877 ./usr/include/c++/10.1.0/stdexcept
+-rw-r--r-- root root 2248 ./usr/include/c++/10.1.0/stdlib.h
+-rw-r--r-- root root 16254 ./usr/include/c++/10.1.0/stop_token
+-rw-r--r-- root root 30017 ./usr/include/c++/10.1.0/streambuf
+-rw-r--r-- root root 4645 ./usr/include/c++/10.1.0/string
+-rw-r--r-- root root 24878 ./usr/include/c++/10.1.0/string_view
+-rw-r--r-- root root 14871 ./usr/include/c++/10.1.0/system_error
+-rw-r--r-- root root 1360 ./usr/include/c++/10.1.0/tgmath.h
+-rw-r--r-- root root 13968 ./usr/include/c++/10.1.0/thread
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/tr1
+-rw-r--r-- root root 6983 ./usr/include/c++/10.1.0/tr1/array
+-rw-r--r-- root root 22937 ./usr/include/c++/10.1.0/tr1/bessel_function.tcc
+-rw-r--r-- root root 5995 ./usr/include/c++/10.1.0/tr1/beta_function.tcc
+-rw-r--r-- root root 1255 ./usr/include/c++/10.1.0/tr1/ccomplex
+-rw-r--r-- root root 1478 ./usr/include/c++/10.1.0/tr1/cctype
+-rw-r--r-- root root 2070 ./usr/include/c++/10.1.0/tr1/cfenv
+-rw-r--r-- root root 1380 ./usr/include/c++/10.1.0/tr1/cfloat
+-rw-r--r-- root root 2322 ./usr/include/c++/10.1.0/tr1/cinttypes
+-rw-r--r-- root root 1454 ./usr/include/c++/10.1.0/tr1/climits
+-rw-r--r-- root root 43874 ./usr/include/c++/10.1.0/tr1/cmath
+-rw-r--r-- root root 12384 ./usr/include/c++/10.1.0/tr1/complex
+-rw-r--r-- root root 1261 ./usr/include/c++/10.1.0/tr1/complex.h
+-rw-r--r-- root root 1246 ./usr/include/c++/10.1.0/tr1/cstdarg
+-rw-r--r-- root root 1344 ./usr/include/c++/10.1.0/tr1/cstdbool
+-rw-r--r-- root root 2687 ./usr/include/c++/10.1.0/tr1/cstdint
+-rw-r--r-- root root 1548 ./usr/include/c++/10.1.0/tr1/cstdio
+-rw-r--r-- root root 1862 ./usr/include/c++/10.1.0/tr1/cstdlib
+-rw-r--r-- root root 1248 ./usr/include/c++/10.1.0/tr1/ctgmath
+-rw-r--r-- root root 1234 ./usr/include/c++/10.1.0/tr1/ctime
+-rw-r--r-- root root 1209 ./usr/include/c++/10.1.0/tr1/ctype.h
+-rw-r--r-- root root 1784 ./usr/include/c++/10.1.0/tr1/cwchar
+-rw-r--r-- root root 1525 ./usr/include/c++/10.1.0/tr1/cwctype
+-rw-r--r-- root root 27644 ./usr/include/c++/10.1.0/tr1/ell_integral.tcc
+-rw-r--r-- root root 16013 ./usr/include/c++/10.1.0/tr1/exp_integral.tcc
+-rw-r--r-- root root 1204 ./usr/include/c++/10.1.0/tr1/fenv.h
+-rw-r--r-- root root 1209 ./usr/include/c++/10.1.0/tr1/float.h
+-rw-r--r-- root root 70545 ./usr/include/c++/10.1.0/tr1/functional
+-rw-r--r-- root root 6043 ./usr/include/c++/10.1.0/tr1/functional_hash.h
+-rw-r--r-- root root 14682 ./usr/include/c++/10.1.0/tr1/gamma.tcc
+-rw-r--r-- root root 41995 ./usr/include/c++/10.1.0/tr1/hashtable.h
+-rw-r--r-- root root 25086 ./usr/include/c++/10.1.0/tr1/hashtable_policy.h
+-rw-r--r-- root root 28066 ./usr/include/c++/10.1.0/tr1/hypergeometric.tcc
+-rw-r--r-- root root 1267 ./usr/include/c++/10.1.0/tr1/inttypes.h
+-rw-r--r-- root root 10652 ./usr/include/c++/10.1.0/tr1/legendre_function.tcc
+-rw-r--r-- root root 1214 ./usr/include/c++/10.1.0/tr1/limits.h
+-rw-r--r-- root root 4553 ./usr/include/c++/10.1.0/tr1/math.h
+-rw-r--r-- root root 1791 ./usr/include/c++/10.1.0/tr1/memory
+-rw-r--r-- root root 16324 ./usr/include/c++/10.1.0/tr1/modified_bessel_func.tcc
+-rw-r--r-- root root 3925 ./usr/include/c++/10.1.0/tr1/poly_hermite.tcc
+-rw-r--r-- root root 11676 ./usr/include/c++/10.1.0/tr1/poly_laguerre.tcc
+-rw-r--r-- root root 1589 ./usr/include/c++/10.1.0/tr1/random
+-rw-r--r-- root root 73123 ./usr/include/c++/10.1.0/tr1/random.h
+-rw-r--r-- root root 53927 ./usr/include/c++/10.1.0/tr1/random.tcc
+-rw-r--r-- root root 92899 ./usr/include/c++/10.1.0/tr1/regex
+-rw-r--r-- root root 14067 ./usr/include/c++/10.1.0/tr1/riemann_zeta.tcc
+-rw-r--r-- root root 32608 ./usr/include/c++/10.1.0/tr1/shared_ptr.h
+-rw-r--r-- root root 5055 ./usr/include/c++/10.1.0/tr1/special_function_util.h
+-rw-r--r-- root root 1214 ./usr/include/c++/10.1.0/tr1/stdarg.h
+-rw-r--r-- root root 1219 ./usr/include/c++/10.1.0/tr1/stdbool.h
+-rw-r--r-- root root 1214 ./usr/include/c++/10.1.0/tr1/stdint.h
+-rw-r--r-- root root 1209 ./usr/include/c++/10.1.0/tr1/stdio.h
+-rw-r--r-- root root 1487 ./usr/include/c++/10.1.0/tr1/stdlib.h
+-rw-r--r-- root root 1255 ./usr/include/c++/10.1.0/tr1/tgmath.h
+-rw-r--r-- root root 12119 ./usr/include/c++/10.1.0/tr1/tuple
+-rw-r--r-- root root 19019 ./usr/include/c++/10.1.0/tr1/type_traits
+-rw-r--r-- root root 1574 ./usr/include/c++/10.1.0/tr1/unordered_map
+-rw-r--r-- root root 10216 ./usr/include/c++/10.1.0/tr1/unordered_map.h
+-rw-r--r-- root root 1574 ./usr/include/c++/10.1.0/tr1/unordered_set
+-rw-r--r-- root root 9540 ./usr/include/c++/10.1.0/tr1/unordered_set.h
+-rw-r--r-- root root 3225 ./usr/include/c++/10.1.0/tr1/utility
+-rw-r--r-- root root 1249 ./usr/include/c++/10.1.0/tr1/wchar.h
+-rw-r--r-- root root 1255 ./usr/include/c++/10.1.0/tr1/wctype.h
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/tr2
+-rw-r--r-- root root 7370 ./usr/include/c++/10.1.0/tr2/bool_set
+-rw-r--r-- root root 8319 ./usr/include/c++/10.1.0/tr2/bool_set.tcc
+-rw-r--r-- root root 34336 ./usr/include/c++/10.1.0/tr2/dynamic_bitset
+-rw-r--r-- root root 8925 ./usr/include/c++/10.1.0/tr2/dynamic_bitset.tcc
+-rw-r--r-- root root 2130 ./usr/include/c++/10.1.0/tr2/ratio
+-rw-r--r-- root root 2699 ./usr/include/c++/10.1.0/tr2/type_traits
+-rw-r--r-- root root 60078 ./usr/include/c++/10.1.0/tuple
+-rw-r--r-- root root 3512 ./usr/include/c++/10.1.0/typeindex
+-rw-r--r-- root root 7746 ./usr/include/c++/10.1.0/typeinfo
+-rw-r--r-- root root 103356 ./usr/include/c++/10.1.0/type_traits
+-rw-r--r-- root root 3467 ./usr/include/c++/10.1.0/unordered_map
+-rw-r--r-- root root 3340 ./usr/include/c++/10.1.0/unordered_set
+-rw-r--r-- root root 14820 ./usr/include/c++/10.1.0/utility
+-rw-r--r-- root root 40362 ./usr/include/c++/10.1.0/valarray
+-rw-r--r-- root root 60701 ./usr/include/c++/10.1.0/variant
+-rw-r--r-- root root 4275 ./usr/include/c++/10.1.0/vector
+-rw-r--r-- root root 7706 ./usr/include/c++/10.1.0/version
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/x86_64-poky-linux
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits
+-rw-r--r-- root root 1518 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/atomic_word.h
+-rw-r--r-- root root 3575 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/basic_file.h
+-rw-r--r-- root root 1979 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/c++allocator.h
+-rw-r--r-- root root 61947 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/c++config.h
+-rw-r--r-- root root 1608 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/c++io.h
+-rw-r--r-- root root 3307 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/c++locale.h
+-rw-r--r-- root root 1333 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/cpu_defines.h
+-rw-r--r-- root root 2316 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/ctype_base.h
+-rw-r--r-- root root 2284 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/ctype_inline.h
+-rw-r--r-- root root 2096 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/cxxabi_tweaks.h
+-rw-r--r-- root root 5175 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/error_constants.h
+-rw-r--r-- root root 2628 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/extc++.h
+-rw-r--r-- root root 24260 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/gthr-default.h
+-rw-r--r-- root root 5608 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/gthr.h
+-rw-r--r-- root root 24260 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/gthr-posix.h
+-rw-r--r-- root root 6808 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/gthr-single.h
+-rw-r--r-- root root 4516 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/messages_members.h
+-rw-r--r-- root root 6194 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/opt_random.h
+-rw-r--r-- root root 2007 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/os_defines.h
+-rw-r--r-- root root 3286 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/stdc++.h
+-rw-r--r-- root root 1741 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/stdtr1c++.h
+-rw-r--r-- root root 2924 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/time_members.h
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/x86_64-poky-linux/ext
+-rw-r--r-- root root 4756 ./usr/include/c++/10.1.0/x86_64-poky-linux/ext/opt_random.h
+drwxr-xr-x root root 4096 ./usr/include/cairo
+-rw-r--r-- root root 8698 ./usr/include/cairo/cairo-deprecated.h
+-rw-r--r-- root root 1460 ./usr/include/cairo/cairo-features.h
+-rw-r--r-- root root 3721 ./usr/include/cairo/cairo-ft.h
+-rw-r--r-- root root 5117 ./usr/include/cairo/cairo-gl.h
+-rw-r--r-- root root 6452 ./usr/include/cairo/cairo-gobject.h
+-rw-r--r-- root root 110955 ./usr/include/cairo/cairo.h
+-rw-r--r-- root root 5617 ./usr/include/cairo/cairo-pdf.h
+-rw-r--r-- root root 3632 ./usr/include/cairo/cairo-ps.h
+-rw-r--r-- root root 3072 ./usr/include/cairo/cairo-script.h
+-rw-r--r-- root root 4059 ./usr/include/cairo/cairo-script-interpreter.h
+-rw-r--r-- root root 4504 ./usr/include/cairo/cairo-svg.h
+-rw-r--r-- root root 2173 ./usr/include/cairo/cairo-tee.h
+-rw-r--r-- root root 148 ./usr/include/cairo/cairo-version.h
+-rw-r--r-- root root 3775 ./usr/include/cairo/cairo-xcb.h
+-rw-r--r-- root root 3577 ./usr/include/cairo/cairo-xlib.h
+-rw-r--r-- root root 2436 ./usr/include/cairo/cairo-xlib-xrender.h
+-rw-r--r-- root root 3198 ./usr/include/cap-ng.h
+-rw-r--r-- root root 2118 ./usr/include/com_err.h
+-rw-r--r-- root root 7164 ./usr/include/complex.h
+-rw-r--r-- root root 2268 ./usr/include/cpio.h
+-rw-r--r-- root root 11160 ./usr/include/crypt.h
+-rw-r--r-- root root 19025 ./usr/include/ctf-api.h
+-rw-r--r-- root root 25153 ./usr/include/ctf.h
+-rw-r--r-- root root 10969 ./usr/include/ctype.h
+-rw-r--r-- root root 100249 ./usr/include/curses-64.h
+-rw-r--r-- root root 6878 ./usr/include/cursesapp.h
+-rw-r--r-- root root 28021 ./usr/include/cursesf.h
+-rw-r--r-- root root 512 ./usr/include/curses.h
+-rw-r--r-- root root 19874 ./usr/include/cursesm.h
+-rw-r--r-- root root 8722 ./usr/include/cursesp.h
+-rw-r--r-- root root 49871 ./usr/include/cursesw.h
+-rw-r--r-- root root 7407 ./usr/include/cursslk.h
+drwxr-xr-x root root 4096 ./usr/include/db51
+-rw-r--r-- root root 49057 ./usr/include/db51/db_cxx.h
+-rw-r--r-- root root 123105 ./usr/include/db51/db.h
+lrwxrwxrwx root root 13 ./usr/include/db_cxx.h -> db51/db_cxx.h
+lrwxrwxrwx root root 9 ./usr/include/db.h -> db51/db.h
+-rw-r--r-- root root 1414 ./usr/include/dbm.h
+drwxr-xr-x root root 4096 ./usr/include/dbus-1.0
+drwxr-xr-x root root 4096 ./usr/include/dbus-1.0/dbus
+-rw-r--r-- root root 2812 ./usr/include/dbus-1.0/dbus/dbus-address.h
+-rw-r--r-- root root 3472 ./usr/include/dbus-1.0/dbus/dbus-bus.h
+-rw-r--r-- root root 27020 ./usr/include/dbus-1.0/dbus/dbus-connection.h
+-rw-r--r-- root root 2911 ./usr/include/dbus-1.0/dbus/dbus-errors.h
+-rw-r--r-- root root 3963 ./usr/include/dbus-1.0/dbus/dbus.h
+-rw-r--r-- root root 6757 ./usr/include/dbus-1.0/dbus/dbus-macros.h
+-rw-r--r-- root root 1963 ./usr/include/dbus-1.0/dbus/dbus-memory.h
+-rw-r--r-- root root 15005 ./usr/include/dbus-1.0/dbus/dbus-message.h
+-rw-r--r-- root root 1813 ./usr/include/dbus-1.0/dbus/dbus-misc.h
+-rw-r--r-- root root 3811 ./usr/include/dbus-1.0/dbus/dbus-pending-call.h
+-rw-r--r-- root root 23642 ./usr/include/dbus-1.0/dbus/dbus-protocol.h
+-rw-r--r-- root root 4045 ./usr/include/dbus-1.0/dbus/dbus-python.h
+-rw-r--r-- root root 5414 ./usr/include/dbus-1.0/dbus/dbus-server.h
+-rw-r--r-- root root 5394 ./usr/include/dbus-1.0/dbus/dbus-shared.h
+-rw-r--r-- root root 3049 ./usr/include/dbus-1.0/dbus/dbus-signature.h
+-rw-r--r-- root root 2359 ./usr/include/dbus-1.0/dbus/dbus-syntax.h
+-rw-r--r-- root root 8507 ./usr/include/dbus-1.0/dbus/dbus-threads.h
+-rw-r--r-- root root 4145 ./usr/include/dbus-1.0/dbus/dbus-types.h
+-rw-r--r-- root root 3332 ./usr/include/diagnostics.h
+-rw-r--r-- root root 12515 ./usr/include/dirent.h
+-rw-r--r-- root root 16687 ./usr/include/dis-asm.h
+-rw-r--r-- root root 7479 ./usr/include/dlfcn.h
+drwxr-xr-x root root 4096 ./usr/include/drm
+-rw-r--r-- root root 31894 ./usr/include/drm/amdgpu_drm.h
+-rw-r--r-- root root 1212 ./usr/include/drm/armada_drm.h
+-rw-r--r-- root root 32817 ./usr/include/drm/drm_fourcc.h
+-rw-r--r-- root root 32129 ./usr/include/drm/drm.h
+-rw-r--r-- root root 28604 ./usr/include/drm/drm_mode.h
+-rw-r--r-- root root 2782 ./usr/include/drm/drm_sarea.h
+-rw-r--r-- root root 11822 ./usr/include/drm/etnaviv_drm.h
+-rw-r--r-- root root 11132 ./usr/include/drm/exynos_drm.h
+-rw-r--r-- root root 10061 ./usr/include/drm/i810_drm.h
+-rw-r--r-- root root 70507 ./usr/include/drm/i915_drm.h
+-rw-r--r-- root root 4817 ./usr/include/drm/lima_drm.h
+-rw-r--r-- root root 13010 ./usr/include/drm/mga_drm.h
+-rw-r--r-- root root 13230 ./usr/include/drm/msm_drm.h
+-rw-r--r-- root root 6560 ./usr/include/drm/nouveau_drm.h
+-rw-r--r-- root root 4141 ./usr/include/drm/omap_drm.h
+-rw-r--r-- root root 7346 ./usr/include/drm/panfrost_drm.h
+-rw-r--r-- root root 4131 ./usr/include/drm/qxl_drm.h
+-rw-r--r-- root root 10000 ./usr/include/drm/r128_drm.h
+-rw-r--r-- root root 38236 ./usr/include/drm/radeon_drm.h
+-rw-r--r-- root root 7170 ./usr/include/drm/savage_drm.h
+-rw-r--r-- root root 2637 ./usr/include/drm/sis_drm.h
+-rw-r--r-- root root 14877 ./usr/include/drm/tegra_drm.h
+-rw-r--r-- root root 8671 ./usr/include/drm/v3d_drm.h
+-rw-r--r-- root root 14457 ./usr/include/drm/vc4_drm.h
+-rw-r--r-- root root 1971 ./usr/include/drm/vgem_drm.h
+-rw-r--r-- root root 8345 ./usr/include/drm/via_drm.h
+-rw-r--r-- root root 5010 ./usr/include/drm/virtgpu_drm.h
+-rw-r--r-- root root 35392 ./usr/include/drm/vmwgfx_drm.h
+-rw-r--r-- root root 31014 ./usr/include/dwarf.h
+drwxr-xr-x root root 4096 ./usr/include/e2p
+-rw-r--r-- root root 3252 ./usr/include/e2p/e2p.h
+-rw-r--r-- root root 180099 ./usr/include/elf.h
+drwxr-xr-x root root 4096 ./usr/include/elfutils
+-rw-r--r-- root root 3947 ./usr/include/elfutils/elf-knowledge.h
+-rw-r--r-- root root 41860 ./usr/include/elfutils/known-dwarf.h
+-rw-r--r-- root root 7098 ./usr/include/elfutils/libasm.h
+-rw-r--r-- root root 6452 ./usr/include/elfutils/libdwelf.h
+-rw-r--r-- root root 37558 ./usr/include/elfutils/libdwfl.h
+-rw-r--r-- root root 44920 ./usr/include/elfutils/libdw.h
+-rw-r--r-- root root 1274 ./usr/include/elfutils/version.h
+-rw-r--r-- root root 2299 ./usr/include/endian.h
+-rw-r--r-- root root 2867 ./usr/include/envz.h
+-rw-r--r-- root root 2267 ./usr/include/err.h
+-rw-r--r-- root root 1679 ./usr/include/errno.h
+-rw-r--r-- root root 2282 ./usr/include/error.h
+drwxr-xr-x root root 4096 ./usr/include/et
+-rw-r--r-- root root 2118 ./usr/include/et/com_err.h
+-rw-r--r-- root root 2969 ./usr/include/eti.h
+-rw-r--r-- root root 9775 ./usr/include/etip.h
+-rw-r--r-- root root 1523 ./usr/include/execinfo.h
+-rw-r--r-- root root 3830 ./usr/include/expat_config.h
+-rw-r--r-- root root 5528 ./usr/include/expat_external.h
+-rw-r--r-- root root 41473 ./usr/include/expat.h
+drwxr-xr-x root root 4096 ./usr/include/ext2fs
+-rw-r--r-- root root 22148 ./usr/include/ext2fs/bitops.h
+-rw-r--r-- root root 11847 ./usr/include/ext2fs/ext2_err.h
+-rw-r--r-- root root 2644 ./usr/include/ext2fs/ext2_ext_attr.h
+-rw-r--r-- root root 42075 ./usr/include/ext2fs/ext2_fs.h
+-rw-r--r-- root root 72208 ./usr/include/ext2fs/ext2fs.h
+-rw-r--r-- root root 5391 ./usr/include/ext2fs/ext2_io.h
+-rw-r--r-- root root 4212 ./usr/include/ext2fs/ext2_types-64.h
+-rw-r--r-- root root 556 ./usr/include/ext2fs/ext2_types.h
+-rw-r--r-- root root 4558 ./usr/include/ext2fs/ext3_extents.h
+-rw-r--r-- root root 1179 ./usr/include/ext2fs/hashmap.h
+-rw-r--r-- root root 2588 ./usr/include/ext2fs/qcow2.h
+-rw-r--r-- root root 8871 ./usr/include/ext2fs/tdb.h
+-rw-r--r-- root root 11026 ./usr/include/fcntl.h
+-rw-r--r-- root root 17235 ./usr/include/features.h
+-rw-r--r-- root root 5874 ./usr/include/fenv.h
+-rw-r--r-- root root 13934 ./usr/include/ffi-64.h
+-rw-r--r-- root root 500 ./usr/include/ffi.h
+-rw-r--r-- root root 4343 ./usr/include/ffitarget.h
+drwxr-xr-x root root 4096 ./usr/include/finclude
+-rw-r--r-- root root 2384 ./usr/include/finclude/math-vector-fortran.h
+-rw-r--r-- root root 6893 ./usr/include/FlexLexer.h
+-rw-r--r-- root root 3240 ./usr/include/fmtmsg.h
+-rw-r--r-- root root 2296 ./usr/include/fnmatch.h
+drwxr-xr-x root root 4096 ./usr/include/fontconfig
+-rw-r--r-- root root 1958 ./usr/include/fontconfig/fcfreetype.h
+-rw-r--r-- root root 4489 ./usr/include/fontconfig/fcprivate.h
+-rw-r--r-- root root 28461 ./usr/include/fontconfig/fontconfig.h
+-rw-r--r-- root root 18811 ./usr/include/form.h
+-rw-r--r-- root root 3584 ./usr/include/fpu_control.h
+drwxr-xr-x root root 4096 ./usr/include/freedreno
+-rw-r--r-- root root 4992 ./usr/include/freedreno/freedreno_drmif.h
+-rw-r--r-- root root 4963 ./usr/include/freedreno/freedreno_ringbuffer.h
+drwxr-xr-x root root 4096 ./usr/include/freetype2
+drwxr-xr-x root root 4096 ./usr/include/freetype2/freetype
+drwxr-xr-x root root 4096 ./usr/include/freetype2/freetype/config
+-rw-r--r-- root root 19859 ./usr/include/freetype2/freetype/config/ftconfig-64.h
+-rw-r--r-- root root 624 ./usr/include/freetype2/freetype/config/ftconfig.h
+-rw-r--r-- root root 23228 ./usr/include/freetype2/freetype/config/ftheader.h
+-rw-r--r-- root root 1056 ./usr/include/freetype2/freetype/config/ftmodule.h
+-rw-r--r-- root root 39330 ./usr/include/freetype2/freetype/config/ftoption.h
+-rw-r--r-- root root 4307 ./usr/include/freetype2/freetype/config/ftstdlib.h
+-rw-r--r-- root root 165664 ./usr/include/freetype2/freetype/freetype.h
+-rw-r--r-- root root 5479 ./usr/include/freetype2/freetype/ftadvanc.h
+-rw-r--r-- root root 2652 ./usr/include/freetype2/freetype/ftbbox.h
+-rw-r--r-- root root 5336 ./usr/include/freetype2/freetype/ftbdf.h
+-rw-r--r-- root root 9055 ./usr/include/freetype2/freetype/ftbitmap.h
+-rw-r--r-- root root 2745 ./usr/include/freetype2/freetype/ftbzip2.h
+-rw-r--r-- root root 33870 ./usr/include/freetype2/freetype/ftcache.h
+-rw-r--r-- root root 2510 ./usr/include/freetype2/freetype/ftchapters.h
+-rw-r--r-- root root 4036 ./usr/include/freetype2/freetype/ftcid.h
+-rw-r--r-- root root 8927 ./usr/include/freetype2/freetype/ftcolor.h
+-rw-r--r-- root root 47451 ./usr/include/freetype2/freetype/ftdriver.h
+-rw-r--r-- root root 12336 ./usr/include/freetype2/freetype/fterrdef.h
+-rw-r--r-- root root 8904 ./usr/include/freetype2/freetype/fterrors.h
+-rw-r--r-- root root 2227 ./usr/include/freetype2/freetype/ftfntfmt.h
+-rw-r--r-- root root 4152 ./usr/include/freetype2/freetype/ftgasp.h
+-rw-r--r-- root root 18505 ./usr/include/freetype2/freetype/ftglyph.h
+-rw-r--r-- root root 10639 ./usr/include/freetype2/freetype/ftgxval.h
+-rw-r--r-- root root 4170 ./usr/include/freetype2/freetype/ftgzip.h
+-rw-r--r-- root root 39169 ./usr/include/freetype2/freetype/ftimage.h
+-rw-r--r-- root root 10322 ./usr/include/freetype2/freetype/ftincrem.h
+-rw-r--r-- root root 11969 ./usr/include/freetype2/freetype/ftlcdfil.h
+-rw-r--r-- root root 7114 ./usr/include/freetype2/freetype/ftlist.h
+-rw-r--r-- root root 2726 ./usr/include/freetype2/freetype/ftlzw.h
+-rw-r--r-- root root 7793 ./usr/include/freetype2/freetype/ftmac.h
+-rw-r--r-- root root 21811 ./usr/include/freetype2/freetype/ftmm.h
+-rw-r--r-- root root 21820 ./usr/include/freetype2/freetype/ftmodapi.h
+-rw-r--r-- root root 6598 ./usr/include/freetype2/freetype/ftmoderr.h
+-rw-r--r-- root root 5360 ./usr/include/freetype2/freetype/ftotval.h
+-rw-r--r-- root root 17476 ./usr/include/freetype2/freetype/ftoutln.h
+-rw-r--r-- root root 5606 ./usr/include/freetype2/freetype/ftparams.h
+-rw-r--r-- root root 4924 ./usr/include/freetype2/freetype/ftpfr.h
+-rw-r--r-- root root 6627 ./usr/include/freetype2/freetype/ftrender.h
+-rw-r--r-- root root 4302 ./usr/include/freetype2/freetype/ftsizes.h
+-rw-r--r-- root root 7742 ./usr/include/freetype2/freetype/ftsnames.h
+-rw-r--r-- root root 21778 ./usr/include/freetype2/freetype/ftstroke.h
+-rw-r--r-- root root 3376 ./usr/include/freetype2/freetype/ftsynth.h
+-rw-r--r-- root root 8540 ./usr/include/freetype2/freetype/ftsystem.h
+-rw-r--r-- root root 7403 ./usr/include/freetype2/freetype/fttrigon.h
+-rw-r--r-- root root 14467 ./usr/include/freetype2/freetype/fttypes.h
+-rw-r--r-- root root 7980 ./usr/include/freetype2/freetype/ftwinfnt.h
+-rw-r--r-- root root 22843 ./usr/include/freetype2/freetype/t1tables.h
+-rw-r--r-- root root 58791 ./usr/include/freetype2/freetype/ttnameid.h
+-rw-r--r-- root root 25245 ./usr/include/freetype2/freetype/tttables.h
+-rw-r--r-- root root 5106 ./usr/include/freetype2/freetype/tttags.h
+-rw-r--r-- root root 1111 ./usr/include/freetype2/ft2build.h
+-rw-r--r-- root root 3111 ./usr/include/fstab.h
+-rw-r--r-- root root 8373 ./usr/include/fts.h
+-rw-r--r-- root root 5252 ./usr/include/ftw.h
+-rw-r--r-- root root 40486 ./usr/include/gawkapi.h
+-rw-r--r-- root root 4211 ./usr/include/gconv.h
+drwxr-xr-x root root 4096 ./usr/include/gdbm
+lrwxrwxrwx root root 9 ./usr/include/gdbm/gdbm.h -> ../gdbm.h
+-rw-r--r-- root root 10345 ./usr/include/gdbm.h
+lrwxrwxrwx root root 9 ./usr/include/gdbm/ndbm.h -> ../ndbm.h
+-rw-r--r-- root root 11312 ./usr/include/gelf.h
+-rw-r--r-- root root 1469 ./usr/include/getopt.h
+drwxr-xr-x root root 4096 ./usr/include/gio-unix-2.0
+drwxr-xr-x root root 4096 ./usr/include/gio-unix-2.0/gio
+-rw-r--r-- root root 8679 ./usr/include/gio-unix-2.0/gio/gdesktopappinfo.h
+-rw-r--r-- root root 2218 ./usr/include/gio-unix-2.0/gio/gfiledescriptorbased.h
+-rw-r--r-- root root 5761 ./usr/include/gio-unix-2.0/gio/gunixconnection.h
+-rw-r--r-- root root 3197 ./usr/include/gio-unix-2.0/gio/gunixcredentialsmessage.h
+-rw-r--r-- root root 4245 ./usr/include/gio-unix-2.0/gio/gunixfdlist.h
+-rw-r--r-- root root 3767 ./usr/include/gio-unix-2.0/gio/gunixfdmessage.h
+-rw-r--r-- root root 3018 ./usr/include/gio-unix-2.0/gio/gunixinputstream.h
+-rw-r--r-- root root 7349 ./usr/include/gio-unix-2.0/gio/gunixmounts.h
+-rw-r--r-- root root 3050 ./usr/include/gio-unix-2.0/gio/gunixoutputstream.h
+-rw-r--r-- root root 3424 ./usr/include/gio-unix-2.0/gio/gunixsocketaddress.h
+drwxr-xr-x root root 4096 ./usr/include/GL
+-rw-r--r-- root root 421419 ./usr/include/GL/glcorearb.h
+-rw-r--r-- root root 848217 ./usr/include/GL/glext.h
+-rw-r--r-- root root 80393 ./usr/include/GL/gl.h
+-rw-r--r-- root root 48752 ./usr/include/GL/glxext.h
+-rw-r--r-- root root 14578 ./usr/include/GL/glx.h
+-rw-r--r-- root root 4695 ./usr/include/GL/glxint.h
+-rw-r--r-- root root 2085 ./usr/include/GL/glxmd.h
+-rw-r--r-- root root 78531 ./usr/include/GL/glxproto.h
+-rw-r--r-- root root 11429 ./usr/include/GL/glxtokens.h
+drwxr-xr-x root root 4096 ./usr/include/glib-2.0
+drwxr-xr-x root root 4096 ./usr/include/glib-2.0/gio
+-rw-r--r-- root root 1768 ./usr/include/glib-2.0/gio/gactiongroupexporter.h
+-rw-r--r-- root root 9167 ./usr/include/glib-2.0/gio/gactiongroup.h
+-rw-r--r-- root root 4610 ./usr/include/glib-2.0/gio/gaction.h
+-rw-r--r-- root root 3996 ./usr/include/glib-2.0/gio/gactionmap.h
+-rw-r--r-- root root 19095 ./usr/include/glib-2.0/gio/gappinfo.h
+-rw-r--r-- root root 6168 ./usr/include/glib-2.0/gio/gapplicationcommandline.h
+-rw-r--r-- root root 14551 ./usr/include/glib-2.0/gio/gapplication.h
+-rw-r--r-- root root 4423 ./usr/include/glib-2.0/gio/gasyncinitable.h
+-rw-r--r-- root root 2818 ./usr/include/glib-2.0/gio/gasyncresult.h
+-rw-r--r-- root root 5229 ./usr/include/glib-2.0/gio/gbufferedinputstream.h
+-rw-r--r-- root root 3334 ./usr/include/glib-2.0/gio/gbufferedoutputstream.h
+-rw-r--r-- root root 1652 ./usr/include/glib-2.0/gio/gbytesicon.h
+-rw-r--r-- root root 4058 ./usr/include/glib-2.0/gio/gcancellable.h
+-rw-r--r-- root root 2518 ./usr/include/glib-2.0/gio/gcharsetconverter.h
+-rw-r--r-- root root 2971 ./usr/include/glib-2.0/gio/gcontenttype.h
+-rw-r--r-- root root 2885 ./usr/include/glib-2.0/gio/gconverter.h
+-rw-r--r-- root root 3015 ./usr/include/glib-2.0/gio/gconverterinputstream.h
+-rw-r--r-- root root 3054 ./usr/include/glib-2.0/gio/gconverteroutputstream.h
+-rw-r--r-- root root 3408 ./usr/include/glib-2.0/gio/gcredentials.h
+-rw-r--r-- root root 6661 ./usr/include/glib-2.0/gio/gdatagrambased.h
+-rw-r--r-- root root 11140 ./usr/include/glib-2.0/gio/gdatainputstream.h
+-rw-r--r-- root root 4923 ./usr/include/glib-2.0/gio/gdataoutputstream.h
+-rw-r--r-- root root 2739 ./usr/include/glib-2.0/gio/gdbusactiongroup.h
+-rw-r--r-- root root 2670 ./usr/include/glib-2.0/gio/gdbusaddress.h
+-rw-r--r-- root root 2130 ./usr/include/glib-2.0/gio/gdbusauthobserver.h
+-rw-r--r-- root root 38873 ./usr/include/glib-2.0/gio/gdbusconnection.h
+-rw-r--r-- root root 4306 ./usr/include/glib-2.0/gio/gdbuserror.h
+-rw-r--r-- root root 3069 ./usr/include/glib-2.0/gio/gdbusinterface.h
+-rw-r--r-- root root 6055 ./usr/include/glib-2.0/gio/gdbusinterfaceskeleton.h
+-rw-r--r-- root root 12393 ./usr/include/glib-2.0/gio/gdbusintrospection.h
+-rw-r--r-- root root 1730 ./usr/include/glib-2.0/gio/gdbusmenumodel.h
+-rw-r--r-- root root 11383 ./usr/include/glib-2.0/gio/gdbusmessage.h
+-rw-r--r-- root root 5801 ./usr/include/glib-2.0/gio/gdbusmethodinvocation.h
+-rw-r--r-- root root 4877 ./usr/include/glib-2.0/gio/gdbusnameowning.h
+-rw-r--r-- root root 4521 ./usr/include/glib-2.0/gio/gdbusnamewatching.h
+-rw-r--r-- root root 2941 ./usr/include/glib-2.0/gio/gdbusobject.h
+-rw-r--r-- root root 9800 ./usr/include/glib-2.0/gio/gdbusobjectmanagerclient.h
+-rw-r--r-- root root 4474 ./usr/include/glib-2.0/gio/gdbusobjectmanager.h
+-rw-r--r-- root root 4120 ./usr/include/glib-2.0/gio/gdbusobjectmanagerserver.h
+-rw-r--r-- root root 2635 ./usr/include/glib-2.0/gio/gdbusobjectproxy.h
+-rw-r--r-- root root 3957 ./usr/include/glib-2.0/gio/gdbusobjectskeleton.h
+-rw-r--r-- root root 12082 ./usr/include/glib-2.0/gio/gdbusproxy.h
+-rw-r--r-- root root 2534 ./usr/include/glib-2.0/gio/gdbusserver.h
+-rw-r--r-- root root 1779 ./usr/include/glib-2.0/gio/gdbusutils.h
+-rw-r--r-- root root 14503 ./usr/include/glib-2.0/gio/gdrive.h
+-rw-r--r-- root root 3197 ./usr/include/glib-2.0/gio/gdtlsclientconnection.h
+-rw-r--r-- root root 11430 ./usr/include/glib-2.0/gio/gdtlsconnection.h
+-rw-r--r-- root root 2446 ./usr/include/glib-2.0/gio/gdtlsserverconnection.h
+-rw-r--r-- root root 2788 ./usr/include/glib-2.0/gio/gemblemedicon.h
+-rw-r--r-- root root 2155 ./usr/include/glib-2.0/gio/gemblem.h
+-rw-r--r-- root root 2801 ./usr/include/glib-2.0/gio/gfileattribute.h
+-rw-r--r-- root root 6393 ./usr/include/glib-2.0/gio/gfileenumerator.h
+-rw-r--r-- root root 79870 ./usr/include/glib-2.0/gio/gfile.h
+-rw-r--r-- root root 1959 ./usr/include/glib-2.0/gio/gfileicon.h
+-rw-r--r-- root root 44335 ./usr/include/glib-2.0/gio/gfileinfo.h
+-rw-r--r-- root root 4656 ./usr/include/glib-2.0/gio/gfileinputstream.h
+-rw-r--r-- root root 5041 ./usr/include/glib-2.0/gio/gfileiostream.h
+-rw-r--r-- root root 3280 ./usr/include/glib-2.0/gio/gfilemonitor.h
+-rw-r--r-- root root 3090 ./usr/include/glib-2.0/gio/gfilenamecompleter.h
+-rw-r--r-- root root 5338 ./usr/include/glib-2.0/gio/gfileoutputstream.h
+-rw-r--r-- root root 2832 ./usr/include/glib-2.0/gio/gfilterinputstream.h
+-rw-r--r-- root root 2875 ./usr/include/glib-2.0/gio/gfilteroutputstream.h
+-rw-r--r-- root root 3435 ./usr/include/glib-2.0/gio/gicon.h
+-rw-r--r-- root root 4529 ./usr/include/glib-2.0/gio/ginetaddress.h
+-rw-r--r-- root root 3119 ./usr/include/glib-2.0/gio/ginetaddressmask.h
+-rw-r--r-- root root 3111 ./usr/include/glib-2.0/gio/ginetsocketaddress.h
+-rw-r--r-- root root 2976 ./usr/include/glib-2.0/gio/ginitable.h
+-rw-r--r-- root root 9188 ./usr/include/glib-2.0/gio/ginputstream.h
+-rw-r--r-- root root 9066 ./usr/include/glib-2.0/gio/gio-autocleanups.h
+-rw-r--r-- root root 76503 ./usr/include/glib-2.0/gio/gioenums.h
+-rw-r--r-- root root 12517 ./usr/include/glib-2.0/gio/gioenumtypes.h
+-rw-r--r-- root root 1558 ./usr/include/glib-2.0/gio/gioerror.h
+-rw-r--r-- root root 5646 ./usr/include/glib-2.0/gio/gio.h
+-rw-r--r-- root root 8064 ./usr/include/glib-2.0/gio/giomodule.h
+-rw-r--r-- root root 1999 ./usr/include/glib-2.0/gio/gioscheduler.h
+-rw-r--r-- root root 4862 ./usr/include/glib-2.0/gio/giostream.h
+-rw-r--r-- root root 24681 ./usr/include/glib-2.0/gio/giotypes.h
+-rw-r--r-- root root 2576 ./usr/include/glib-2.0/gio/glistmodel.h
+-rw-r--r-- root root 4178 ./usr/include/glib-2.0/gio/gliststore.h
+-rw-r--r-- root root 3671 ./usr/include/glib-2.0/gio/gloadableicon.h
+-rw-r--r-- root root 3434 ./usr/include/glib-2.0/gio/gmemoryinputstream.h
+-rw-r--r-- root root 2140 ./usr/include/glib-2.0/gio/gmemorymonitor.h
+-rw-r--r-- root root 3933 ./usr/include/glib-2.0/gio/gmemoryoutputstream.h
+-rw-r--r-- root root 1611 ./usr/include/glib-2.0/gio/gmenuexporter.h
+-rw-r--r-- root root 8940 ./usr/include/glib-2.0/gio/gmenu.h
+-rw-r--r-- root root 14334 ./usr/include/glib-2.0/gio/gmenumodel.h
+-rw-r--r-- root root 15791 ./usr/include/glib-2.0/gio/gmount.h
+-rw-r--r-- root root 6765 ./usr/include/glib-2.0/gio/gmountoperation.h
+-rw-r--r-- root root 2536 ./usr/include/glib-2.0/gio/gnativesocketaddress.h
+-rw-r--r-- root root 2270 ./usr/include/glib-2.0/gio/gnativevolumemonitor.h
+-rw-r--r-- root root 2956 ./usr/include/glib-2.0/gio/gnetworkaddress.h
+-rw-r--r-- root root 1994 ./usr/include/glib-2.0/gio/gnetworking.h
+-rw-r--r-- root root 4239 ./usr/include/glib-2.0/gio/gnetworkmonitor.h
+-rw-r--r-- root root 2756 ./usr/include/glib-2.0/gio/gnetworkservice.h
+-rw-r--r-- root root 4898 ./usr/include/glib-2.0/gio/gnotification.h
+-rw-r--r-- root root 15760 ./usr/include/glib-2.0/gio/goutputstream.h
+-rw-r--r-- root root 5862 ./usr/include/glib-2.0/gio/gpermission.h
+-rw-r--r-- root root 3829 ./usr/include/glib-2.0/gio/gpollableinputstream.h
+-rw-r--r-- root root 4919 ./usr/include/glib-2.0/gio/gpollableoutputstream.h
+-rw-r--r-- root root 2134 ./usr/include/glib-2.0/gio/gpollableutils.h
+-rw-r--r-- root root 1994 ./usr/include/glib-2.0/gio/gpropertyaction.h
+-rw-r--r-- root root 2939 ./usr/include/glib-2.0/gio/gproxyaddressenumerator.h
+-rw-r--r-- root root 3166 ./usr/include/glib-2.0/gio/gproxyaddress.h
+-rw-r--r-- root root 4067 ./usr/include/glib-2.0/gio/gproxy.h
+-rw-r--r-- root root 3393 ./usr/include/glib-2.0/gio/gproxyresolver.h
+-rw-r--r-- root root 3635 ./usr/include/glib-2.0/gio/gremoteactiongroup.h
+-rw-r--r-- root root 16852 ./usr/include/glib-2.0/gio/gresolver.h
+-rw-r--r-- root root 4651 ./usr/include/glib-2.0/gio/gresource.h
+-rw-r--r-- root root 3280 ./usr/include/glib-2.0/gio/gseekable.h
+-rw-r--r-- root root 8508 ./usr/include/glib-2.0/gio/gsettingsbackend.h
+-rw-r--r-- root root 21148 ./usr/include/glib-2.0/gio/gsettings.h
+-rw-r--r-- root root 5933 ./usr/include/glib-2.0/gio/gsettingsschema.h
+-rw-r--r-- root root 4355 ./usr/include/glib-2.0/gio/gsimpleactiongroup.h
+-rw-r--r-- root root 2915 ./usr/include/glib-2.0/gio/gsimpleaction.h
+-rw-r--r-- root root 7809 ./usr/include/glib-2.0/gio/gsimpleasyncresult.h
+-rw-r--r-- root root 1722 ./usr/include/glib-2.0/gio/gsimpleiostream.h
+-rw-r--r-- root root 1686 ./usr/include/glib-2.0/gio/gsimplepermission.h
+-rw-r--r-- root root 3531 ./usr/include/glib-2.0/gio/gsimpleproxyresolver.h
+-rw-r--r-- root root 3897 ./usr/include/glib-2.0/gio/gsocketaddressenumerator.h
+-rw-r--r-- root root 3086 ./usr/include/glib-2.0/gio/gsocketaddress.h
+-rw-r--r-- root root 11211 ./usr/include/glib-2.0/gio/gsocketclient.h
+-rw-r--r-- root root 2886 ./usr/include/glib-2.0/gio/gsocketconnectable.h
+-rw-r--r-- root root 5056 ./usr/include/glib-2.0/gio/gsocketconnection.h
+-rw-r--r-- root root 4886 ./usr/include/glib-2.0/gio/gsocketcontrolmessage.h
+-rw-r--r-- root root 16181 ./usr/include/glib-2.0/gio/gsocket.h
+-rw-r--r-- root root 7680 ./usr/include/glib-2.0/gio/gsocketlistener.h
+-rw-r--r-- root root 3620 ./usr/include/glib-2.0/gio/gsocketservice.h
+-rw-r--r-- root root 1936 ./usr/include/glib-2.0/gio/gsrvtarget.h
+-rw-r--r-- root root 8606 ./usr/include/glib-2.0/gio/gsubprocess.h
+-rw-r--r-- root root 6399 ./usr/include/glib-2.0/gio/gsubprocesslauncher.h
+-rw-r--r-- root root 8278 ./usr/include/glib-2.0/gio/gtask.h
+-rw-r--r-- root root 2957 ./usr/include/glib-2.0/gio/gtcpconnection.h
+-rw-r--r-- root root 2973 ./usr/include/glib-2.0/gio/gtcpwrapperconnection.h
+-rw-r--r-- root root 2303 ./usr/include/glib-2.0/gio/gtestdbus.h
+-rw-r--r-- root root 2643 ./usr/include/glib-2.0/gio/gthemedicon.h
+-rw-r--r-- root root 3665 ./usr/include/glib-2.0/gio/gthreadedsocketservice.h
+-rw-r--r-- root root 4587 ./usr/include/glib-2.0/gio/gtlsbackend.h
+-rw-r--r-- root root 3505 ./usr/include/glib-2.0/gio/gtlscertificate.h
+-rw-r--r-- root root 3683 ./usr/include/glib-2.0/gio/gtlsclientconnection.h
+-rw-r--r-- root root 6575 ./usr/include/glib-2.0/gio/gtlsconnection.h
+-rw-r--r-- root root 17271 ./usr/include/glib-2.0/gio/gtlsdatabase.h
+-rw-r--r-- root root 1909 ./usr/include/glib-2.0/gio/gtlsfiledatabase.h
+-rw-r--r-- root root 8333 ./usr/include/glib-2.0/gio/gtlsinteraction.h
+-rw-r--r-- root root 4818 ./usr/include/glib-2.0/gio/gtlspassword.h
+-rw-r--r-- root root 2348 ./usr/include/glib-2.0/gio/gtlsserverconnection.h
+-rw-r--r-- root root 6616 ./usr/include/glib-2.0/gio/gvfs.h
+-rw-r--r-- root root 11736 ./usr/include/glib-2.0/gio/gvolume.h
+-rw-r--r-- root root 5998 ./usr/include/glib-2.0/gio/gvolumemonitor.h
+-rw-r--r-- root root 2350 ./usr/include/glib-2.0/gio/gzlibcompressor.h
+-rw-r--r-- root root 2212 ./usr/include/glib-2.0/gio/gzlibdecompressor.h
+drwxr-xr-x root root 4096 ./usr/include/glib-2.0/glib
+drwxr-xr-x root root 4096 ./usr/include/glib-2.0/glib/deprecated
+-rw-r--r-- root root 3256 ./usr/include/glib-2.0/glib/deprecated/gallocator.h
+-rw-r--r-- root root 2987 ./usr/include/glib-2.0/glib/deprecated/gcache.h
+-rw-r--r-- root root 2922 ./usr/include/glib-2.0/glib/deprecated/gcompletion.h
+-rw-r--r-- root root 4392 ./usr/include/glib-2.0/glib/deprecated/gmain.h
+-rw-r--r-- root root 3682 ./usr/include/glib-2.0/glib/deprecated/grel.h
+-rw-r--r-- root root 10938 ./usr/include/glib-2.0/glib/deprecated/gthread.h
+-rw-r--r-- root root 3912 ./usr/include/glib-2.0/glib/galloca.h
+-rw-r--r-- root root 11385 ./usr/include/glib-2.0/glib/garray.h
+-rw-r--r-- root root 5726 ./usr/include/glib-2.0/glib/gasyncqueue.h
+-rw-r--r-- root root 23740 ./usr/include/glib-2.0/glib/gatomic.h
+-rw-r--r-- root root 2727 ./usr/include/glib-2.0/glib/gbacktrace.h
+-rw-r--r-- root root 2323 ./usr/include/glib-2.0/glib/gbase64.h
+-rw-r--r-- root root 2902 ./usr/include/glib-2.0/glib/gbitlock.h
+-rw-r--r-- root root 9596 ./usr/include/glib-2.0/glib/gbookmarkfile.h
+-rw-r--r-- root root 3334 ./usr/include/glib-2.0/glib/gbytes.h
+-rw-r--r-- root root 1578 ./usr/include/glib-2.0/glib/gcharset.h
+-rw-r--r-- root root 3864 ./usr/include/glib-2.0/glib/gchecksum.h
+-rw-r--r-- root root 5923 ./usr/include/glib-2.0/glib/gconvert.h
+-rw-r--r-- root root 6245 ./usr/include/glib-2.0/glib/gdataset.h
+-rw-r--r-- root root 12420 ./usr/include/glib-2.0/glib/gdate.h
+-rw-r--r-- root root 12738 ./usr/include/glib-2.0/glib/gdatetime.h
+-rw-r--r-- root root 1641 ./usr/include/glib-2.0/glib/gdir.h
+-rw-r--r-- root root 2364 ./usr/include/glib-2.0/glib/genviron.h
+-rw-r--r-- root root 3943 ./usr/include/glib-2.0/glib/gerror.h
+-rw-r--r-- root root 5813 ./usr/include/glib-2.0/glib/gfileutils.h
+-rw-r--r-- root root 2424 ./usr/include/glib-2.0/glib/ggettext.h
+-rw-r--r-- root root 7886 ./usr/include/glib-2.0/glib/ghash.h
+-rw-r--r-- root root 3469 ./usr/include/glib-2.0/glib/ghmac.h
+-rw-r--r-- root root 6358 ./usr/include/glib-2.0/glib/ghook.h
+-rw-r--r-- root root 1456 ./usr/include/glib-2.0/glib/ghostutils.h
+-rw-r--r-- root root 1167 ./usr/include/glib-2.0/glib/gi18n.h
+-rw-r--r-- root root 1370 ./usr/include/glib-2.0/glib/gi18n-lib.h
+-rw-r--r-- root root 13954 ./usr/include/glib-2.0/glib/giochannel.h
+-rw-r--r-- root root 14913 ./usr/include/glib-2.0/glib/gkeyfile.h
+-rw-r--r-- root root 4789 ./usr/include/glib-2.0/glib/glib-autocleanups.h
+-rw-r--r-- root root 6930 ./usr/include/glib-2.0/glib/glist.h
+-rw-r--r-- root root 42372 ./usr/include/glib-2.0/glib/gmacros.h
+-rw-r--r-- root root 28138 ./usr/include/glib-2.0/glib/gmain.h
+-rw-r--r-- root root 1986 ./usr/include/glib-2.0/glib/gmappedfile.h
+-rw-r--r-- root root 10876 ./usr/include/glib-2.0/glib/gmarkup.h
+-rw-r--r-- root root 14684 ./usr/include/glib-2.0/glib/gmem.h
+-rw-r--r-- root root 26913 ./usr/include/glib-2.0/glib/gmessages.h
+-rw-r--r-- root root 8700 ./usr/include/glib-2.0/glib/gnode.h
+-rw-r--r-- root root 16099 ./usr/include/glib-2.0/glib/goption.h
+-rw-r--r-- root root 1782 ./usr/include/glib-2.0/glib/gpattern.h
+-rw-r--r-- root root 4125 ./usr/include/glib-2.0/glib/gpoll.h
+-rw-r--r-- root root 1694 ./usr/include/glib-2.0/glib/gprimes.h
+-rw-r--r-- root root 1984 ./usr/include/glib-2.0/glib/gprintf.h
+-rw-r--r-- root root 1499 ./usr/include/glib-2.0/glib/gqsort.h
+-rw-r--r-- root root 2688 ./usr/include/glib-2.0/glib/gquark.h
+-rw-r--r-- root root 7750 ./usr/include/glib-2.0/glib/gqueue.h
+-rw-r--r-- root root 3182 ./usr/include/glib-2.0/glib/grand.h
+-rw-r--r-- root root 3764 ./usr/include/glib-2.0/glib/grcbox.h
+-rw-r--r-- root root 3988 ./usr/include/glib-2.0/glib/grefcount.h
+-rw-r--r-- root root 1868 ./usr/include/glib-2.0/glib/grefstring.h
+-rw-r--r-- root root 28095 ./usr/include/glib-2.0/glib/gregex.h
+-rw-r--r-- root root 8861 ./usr/include/glib-2.0/glib/gscanner.h
+-rw-r--r-- root root 8811 ./usr/include/glib-2.0/glib/gsequence.h
+-rw-r--r-- root root 1752 ./usr/include/glib-2.0/glib/gshell.h
+-rw-r--r-- root root 3892 ./usr/include/glib-2.0/glib/gslice.h
+-rw-r--r-- root root 6551 ./usr/include/glib-2.0/glib/gslist.h
+-rw-r--r-- root root 11874 ./usr/include/glib-2.0/glib/gspawn.h
+-rw-r--r-- root root 5109 ./usr/include/glib-2.0/glib/gstdio.h
+-rw-r--r-- root root 13232 ./usr/include/glib-2.0/glib/gstrfuncs.h
+-rw-r--r-- root root 2130 ./usr/include/glib-2.0/glib/gstringchunk.h
+-rw-r--r-- root root 8045 ./usr/include/glib-2.0/glib/gstring.h
+-rw-r--r-- root root 31435 ./usr/include/glib-2.0/glib/gtestutils.h
+-rw-r--r-- root root 17496 ./usr/include/glib-2.0/glib/gthread.h
+-rw-r--r-- root root 3824 ./usr/include/glib-2.0/glib/gthreadpool.h
+-rw-r--r-- root root 2576 ./usr/include/glib-2.0/glib/gtimer.h
+-rw-r--r-- root root 3723 ./usr/include/glib-2.0/glib/gtimezone.h
+-rw-r--r-- root root 1906 ./usr/include/glib-2.0/glib/gtrashstack.h
+-rw-r--r-- root root 4194 ./usr/include/glib-2.0/glib/gtree.h
+-rw-r--r-- root root 20493 ./usr/include/glib-2.0/glib/gtypes.h
+-rw-r--r-- root root 40690 ./usr/include/glib-2.0/glib/gunicode.h
+-rw-r--r-- root root 2716 ./usr/include/glib-2.0/glib/gurifuncs.h
+-rw-r--r-- root root 14564 ./usr/include/glib-2.0/glib/gutils.h
+-rw-r--r-- root root 1291 ./usr/include/glib-2.0/glib/guuid.h
+-rw-r--r-- root root 29560 ./usr/include/glib-2.0/glib/gvariant.h
+-rw-r--r-- root root 13244 ./usr/include/glib-2.0/glib/gvarianttype.h
+-rw-r--r-- root root 1981 ./usr/include/glib-2.0/glib/gversion.h
+-rw-r--r-- root root 40799 ./usr/include/glib-2.0/glib/gversionmacros.h
+-rw-r--r-- root root 4667 ./usr/include/glib-2.0/glib/gwin32.h
+-rw-r--r-- root root 3381 ./usr/include/glib-2.0/glib.h
+-rw-r--r-- root root 1462 ./usr/include/glib-2.0/glib-object.h
+-rw-r--r-- root root 4461 ./usr/include/glib-2.0/glib-unix.h
+-rw-r--r-- root root 4318 ./usr/include/glib-2.0/gmodule.h
+drwxr-xr-x root root 4096 ./usr/include/glib-2.0/gobject
+-rw-r--r-- root root 6342 ./usr/include/glib-2.0/gobject/gbinding.h
+-rw-r--r-- root root 3965 ./usr/include/glib-2.0/gobject/gboxed.h
+-rw-r--r-- root root 11053 ./usr/include/glib-2.0/gobject/gclosure.h
+-rw-r--r-- root root 8041 ./usr/include/glib-2.0/gobject/genums.h
+-rw-r--r-- root root 1026 ./usr/include/glib-2.0/gobject/glib-enumtypes.h
+-rw-r--r-- root root 8656 ./usr/include/glib-2.0/gobject/glib-types.h
+-rw-r--r-- root root 21841 ./usr/include/glib-2.0/gobject/gmarshal.h
+-rw-r--r-- root root 1382 ./usr/include/glib-2.0/gobject/gobject-autocleanups.h
+-rw-r--r-- root root 34088 ./usr/include/glib-2.0/gobject/gobject.h
+-rw-r--r-- root root 5516 ./usr/include/glib-2.0/gobject/gobjectnotifyqueue.c
+-rw-r--r-- root root 16431 ./usr/include/glib-2.0/gobject/gparam.h
+-rw-r--r-- root root 34850 ./usr/include/glib-2.0/gobject/gparamspecs.h
+-rw-r--r-- root root 24872 ./usr/include/glib-2.0/gobject/gsignal.h
+-rw-r--r-- root root 1275 ./usr/include/glib-2.0/gobject/gsourceclosure.h
+-rw-r--r-- root root 92450 ./usr/include/glib-2.0/gobject/gtype.h
+-rw-r--r-- root root 10837 ./usr/include/glib-2.0/gobject/gtypemodule.h
+-rw-r--r-- root root 4965 ./usr/include/glib-2.0/gobject/gtypeplugin.h
+-rw-r--r-- root root 3218 ./usr/include/glib-2.0/gobject/gvaluearray.h
+-rw-r--r-- root root 9817 ./usr/include/glib-2.0/gobject/gvaluecollector.h
+-rw-r--r-- root root 5656 ./usr/include/glib-2.0/gobject/gvalue.h
+-rw-r--r-- root root 9653 ./usr/include/glib-2.0/gobject/gvaluetypes.h
+drwxr-xr-x root root 4096 ./usr/include/GL/internal
+-rw-r--r-- root root 78637 ./usr/include/GL/internal/dri_interface.h
+-rw-r--r-- root root 6315 ./usr/include/GL/internal/glcore.h
+-rw-r--r-- root root 6617 ./usr/include/glob.h
+-rw-r--r-- root root 84177 ./usr/include/gmp-64.h
+-rw-r--r-- root root 500 ./usr/include/gmp.h
+-rw-r--r-- root root 129113 ./usr/include/gmpxx.h
+drwxr-xr-x root root 4096 ./usr/include/gnu
+-rw-r--r-- root root 1264 ./usr/include/gnu/libc-version.h
+-rw-r--r-- root root 1665 ./usr/include/gnu/lib-names-64.h
+-rw-r--r-- root root 467 ./usr/include/gnu/lib-names.h
+-rw-r--r-- root root 2912 ./usr/include/gnumake.h
+-rw-r--r-- root root 523 ./usr/include/gnu/stubs-64.h
+-rw-r--r-- root root 384 ./usr/include/gnu/stubs.h
+-rw-r--r-- root root 2343 ./usr/include/gnu-versions.h
+drwxr-xr-x root root 4096 ./usr/include/gobject-introspection-1.0
+-rw-r--r-- root root 2622 ./usr/include/gobject-introspection-1.0/giarginfo.h
+-rw-r--r-- root root 3275 ./usr/include/gobject-introspection-1.0/gibaseinfo.h
+-rw-r--r-- root root 4523 ./usr/include/gobject-introspection-1.0/gicallableinfo.h
+-rw-r--r-- root root 1769 ./usr/include/gobject-introspection-1.0/giconstantinfo.h
+-rw-r--r-- root root 2348 ./usr/include/gobject-introspection-1.0/gienuminfo.h
+-rw-r--r-- root root 2129 ./usr/include/gobject-introspection-1.0/gifieldinfo.h
+-rw-r--r-- root root 2877 ./usr/include/gobject-introspection-1.0/gifunctioninfo.h
+-rw-r--r-- root root 3418 ./usr/include/gobject-introspection-1.0/giinterfaceinfo.h
+-rw-r--r-- root root 6060 ./usr/include/gobject-introspection-1.0/giobjectinfo.h
+-rw-r--r-- root root 1685 ./usr/include/gobject-introspection-1.0/gipropertyinfo.h
+-rw-r--r-- root root 2363 ./usr/include/gobject-introspection-1.0/giregisteredtypeinfo.h
+-rw-r--r-- root root 8052 ./usr/include/gobject-introspection-1.0/girepository.h
+-rw-r--r-- root root 3468 ./usr/include/gobject-introspection-1.0/girffi.h
+-rw-r--r-- root root 1696 ./usr/include/gobject-introspection-1.0/gisignalinfo.h
+-rw-r--r-- root root 2403 ./usr/include/gobject-introspection-1.0/gistructinfo.h
+-rw-r--r-- root root 2556 ./usr/include/gobject-introspection-1.0/gitypeinfo.h
+-rw-r--r-- root root 2327 ./usr/include/gobject-introspection-1.0/gitypelib.h
+-rw-r--r-- root root 14019 ./usr/include/gobject-introspection-1.0/gitypes.h
+-rw-r--r-- root root 2558 ./usr/include/gobject-introspection-1.0/giunioninfo.h
+-rw-r--r-- root root 1578 ./usr/include/gobject-introspection-1.0/giversion.h
+-rw-r--r-- root root 5730 ./usr/include/gobject-introspection-1.0/giversionmacros.h
+-rw-r--r-- root root 2572 ./usr/include/gobject-introspection-1.0/givfuncinfo.h
+-rw-r--r-- root root 6687 ./usr/include/grp.h
+-rw-r--r-- root root 4529 ./usr/include/gshadow.h
+-rw-r--r-- root root 1858 ./usr/include/iconv.h
+-rw-r--r-- root root 4916 ./usr/include/ieee754.h
+-rw-r--r-- root root 2841 ./usr/include/ifaddrs.h
+-rw-r--r-- root root 2446 ./usr/include/initreq.h
+-rw-r--r-- root root 11893 ./usr/include/inttypes.h
+drwxr-xr-x root root 4096 ./usr/include/iproute2
+-rw-r--r-- root root 1271 ./usr/include/iproute2/bpf_elf.h
+-rw-r--r-- root root 17849 ./usr/include/langinfo.h
+-rw-r--r-- root root 126 ./usr/include/lastlog.h
+drwxr-xr-x root root 4096 ./usr/include/libdrm
+-rw-r--r-- root root 31894 ./usr/include/libdrm/amdgpu_drm.h
+-rw-r--r-- root root 55079 ./usr/include/libdrm/amdgpu.h
+-rw-r--r-- root root 32818 ./usr/include/libdrm/drm_fourcc.h
+-rw-r--r-- root root 32306 ./usr/include/libdrm/drm.h
+-rw-r--r-- root root 24920 ./usr/include/libdrm/drm_mode.h
+-rw-r--r-- root root 2782 ./usr/include/libdrm/drm_sarea.h
+-rw-r--r-- root root 6977 ./usr/include/libdrm/etnaviv_drmif.h
+-rw-r--r-- root root 62951 ./usr/include/libdrm/i915_drm.h
+-rw-r--r-- root root 5933 ./usr/include/libdrm/intel_aub.h
+-rw-r--r-- root root 12892 ./usr/include/libdrm/intel_bufmgr.h
+-rw-r--r-- root root 1585 ./usr/include/libdrm/intel_debug.h
+-rw-r--r-- root root 7895 ./usr/include/libdrm/mach64_drm.h
+-rw-r--r-- root root 13010 ./usr/include/libdrm/mga_drm.h
+-rw-r--r-- root root 12105 ./usr/include/libdrm/msm_drm.h
+drwxr-xr-x root root 4096 ./usr/include/libdrm/nouveau
+-rw-r--r-- root root 5699 ./usr/include/libdrm/nouveau_drm.h
+-rw-r--r-- root root 7766 ./usr/include/libdrm/nouveau/nouveau.h
+drwxr-xr-x root root 4096 ./usr/include/libdrm/nouveau/nvif
+-rw-r--r-- root root 1785 ./usr/include/libdrm/nouveau/nvif/cl0080.h
+-rw-r--r-- root root 2062 ./usr/include/libdrm/nouveau/nvif/cl9097.h
+-rw-r--r-- root root 8789 ./usr/include/libdrm/nouveau/nvif/class.h
+-rw-r--r-- root root 769 ./usr/include/libdrm/nouveau/nvif/if0002.h
+-rw-r--r-- root root 645 ./usr/include/libdrm/nouveau/nvif/if0003.h
+-rw-r--r-- root root 3174 ./usr/include/libdrm/nouveau/nvif/ioctl.h
+-rw-r--r-- root root 1551 ./usr/include/libdrm/nouveau/nvif/unpack.h
+-rw-r--r-- root root 2555 ./usr/include/libdrm/omap_drmif.h
+-rw-r--r-- root root 4131 ./usr/include/libdrm/qxl_drm.h
+-rw-r--r-- root root 10000 ./usr/include/libdrm/r128_drm.h
+-rw-r--r-- root root 16388 ./usr/include/libdrm/r600_pci_ids.h
+-rw-r--r-- root root 1991 ./usr/include/libdrm/radeon_bo_gem.h
+-rw-r--r-- root root 2839 ./usr/include/libdrm/radeon_bo.h
+-rw-r--r-- root root 1678 ./usr/include/libdrm/radeon_bo_int.h
+-rw-r--r-- root root 1601 ./usr/include/libdrm/radeon_cs_gem.h
+-rw-r--r-- root root 5121 ./usr/include/libdrm/radeon_cs.h
+-rw-r--r-- root root 2179 ./usr/include/libdrm/radeon_cs_int.h
+-rw-r--r-- root root 38317 ./usr/include/libdrm/radeon_drm.h
+-rw-r--r-- root root 5968 ./usr/include/libdrm/radeon_surface.h
+-rw-r--r-- root root 7170 ./usr/include/libdrm/savage_drm.h
+-rw-r--r-- root root 2633 ./usr/include/libdrm/sis_drm.h
+-rw-r--r-- root root 14877 ./usr/include/libdrm/tegra_drm.h
+-rw-r--r-- root root 14457 ./usr/include/libdrm/vc4_drm.h
+-rw-r--r-- root root 16906 ./usr/include/libdrm/vc4_packet.h
+-rw-r--r-- root root 8244 ./usr/include/libdrm/vc4_qpu_defines.h
+-rw-r--r-- root root 8372 ./usr/include/libdrm/via_drm.h
+-rw-r--r-- root root 5010 ./usr/include/libdrm/virtgpu_drm.h
+-rw-r--r-- root root 32085 ./usr/include/libdrm/vmwgfx_drm.h
+-rw-r--r-- root root 19573 ./usr/include/libelf.h
+drwxr-xr-x root root 4096 ./usr/include/libfdisk
+-rw-r--r-- root root 29857 ./usr/include/libfdisk/libfdisk.h
+-rw-r--r-- root root 1386 ./usr/include/libgen.h
+drwxr-xr-x root root 4096 ./usr/include/libiberty
+-rw-r--r-- root root 14130 ./usr/include/libiberty/ansidecl.h
+-rw-r--r-- root root 27301 ./usr/include/libiberty/demangle.h
+-rw-r--r-- root root 2706 ./usr/include/libiberty/dyn-string.h
+-rw-r--r-- root root 2937 ./usr/include/libiberty/fibheap.h
+-rw-r--r-- root root 5890 ./usr/include/libiberty/floatformat.h
+-rw-r--r-- root root 27820 ./usr/include/libiberty.h
+-rw-r--r-- root root 7270 ./usr/include/libiberty/hashtab.h
+-rw-r--r-- root root 27820 ./usr/include/libiberty/libiberty.h
+-rw-r--r-- root root 3976 ./usr/include/libiberty/objalloc.h
+-rw-r--r-- root root 2824 ./usr/include/libiberty/partition.h
+-rw-r--r-- root root 5642 ./usr/include/libiberty/safe-ctype.h
+-rw-r--r-- root root 1209 ./usr/include/libiberty/sort.h
+-rw-r--r-- root root 6238 ./usr/include/libiberty/splay-tree.h
+-rw-r--r-- root root 1296 ./usr/include/libiberty/timeval-utils.h
+-rw-r--r-- root root 4580 ./usr/include/libintl.h
+drwxr-xr-x root root 4096 ./usr/include/libiptc
+-rw-r--r-- root root 360 ./usr/include/libiptc/ipt_kernel_headers.h
+-rw-r--r-- root root 5375 ./usr/include/libiptc/libip6tc.h
+-rw-r--r-- root root 5447 ./usr/include/libiptc/libiptc.h
+-rw-r--r-- root root 724 ./usr/include/libiptc/libxtc.h
+-rw-r--r-- root root 867 ./usr/include/libiptc/xtcshared.h
+-rw-r--r-- root root 9433 ./usr/include/libkmod.h
+drwxr-xr-x root root 4096 ./usr/include/libkms
+-rw-r--r-- root root 2571 ./usr/include/libkms/libkms.h
+drwxr-xr-x root root 4096 ./usr/include/libmnl
+-rw-r--r-- root root 8002 ./usr/include/libmnl/libmnl.h
+drwxr-xr-x root root 4096 ./usr/include/libmount
+-rw-r--r-- root root 36308 ./usr/include/libmount/libmount.h
+drwxr-xr-x root root 4096 ./usr/include/libpng16
+-rw-r--r-- root root 22846 ./usr/include/libpng16/pngconf.h
+-rw-r--r-- root root 142860 ./usr/include/libpng16/png.h
+-rw-r--r-- root root 7629 ./usr/include/libpng16/pnglibconf.h
+drwxr-xr-x root root 4096 ./usr/include/libsmartcols
+-rw-r--r-- root root 15473 ./usr/include/libsmartcols/libsmartcols.h
+-rw-r--r-- root root 3466 ./usr/include/libsync.h
+-rw-r--r-- root root 10327 ./usr/include/libudev.h
+drwxr-xr-x root root 4096 ./usr/include/libxml2
+drwxr-xr-x root root 4096 ./usr/include/libxml2/libxml
+-rw-r--r-- root root 3115 ./usr/include/libxml2/libxml/c14n.h
+-rw-r--r-- root root 4906 ./usr/include/libxml2/libxml/catalog.h
+-rw-r--r-- root root 5159 ./usr/include/libxml2/libxml/chvalid.h
+-rw-r--r-- root root 5152 ./usr/include/libxml2/libxml/debugXML.h
+-rw-r--r-- root root 1814 ./usr/include/libxml2/libxml/dict.h
+-rw-r--r-- root root 3157 ./usr/include/libxml2/libxml/DOCBparser.h
+-rw-r--r-- root root 8507 ./usr/include/libxml2/libxml/encoding.h
+-rw-r--r-- root root 4712 ./usr/include/libxml2/libxml/entities.h
+-rw-r--r-- root root 14670 ./usr/include/libxml2/libxml/globals.h
+-rw-r--r-- root root 6601 ./usr/include/libxml2/libxml/hash.h
+-rw-r--r-- root root 9410 ./usr/include/libxml2/libxml/HTMLparser.h
+-rw-r--r-- root root 3646 ./usr/include/libxml2/libxml/HTMLtree.h
+-rw-r--r-- root root 3348 ./usr/include/libxml2/libxml/list.h
+-rw-r--r-- root root 3758 ./usr/include/libxml2/libxml/nanoftp.h
+-rw-r--r-- root root 2005 ./usr/include/libxml2/libxml/nanohttp.h
+-rw-r--r-- root root 39718 ./usr/include/libxml2/libxml/parser.h
+-rw-r--r-- root root 17419 ./usr/include/libxml2/libxml/parserInternals.h
+-rw-r--r-- root root 2586 ./usr/include/libxml2/libxml/pattern.h
+-rw-r--r-- root root 5996 ./usr/include/libxml2/libxml/relaxng.h
+-rw-r--r-- root root 4949 ./usr/include/libxml2/libxml/SAX2.h
+-rw-r--r-- root root 4341 ./usr/include/libxml2/libxml/SAX.h
+-rw-r--r-- root root 26224 ./usr/include/libxml2/libxml/schemasInternals.h
+-rw-r--r-- root root 4371 ./usr/include/libxml2/libxml/schematron.h
+-rw-r--r-- root root 1958 ./usr/include/libxml2/libxml/threads.h
+-rw-r--r-- root root 38108 ./usr/include/libxml2/libxml/tree.h
+-rw-r--r-- root root 2664 ./usr/include/libxml2/libxml/uri.h
+-rw-r--r-- root root 13622 ./usr/include/libxml2/libxml/valid.h
+-rw-r--r-- root root 2967 ./usr/include/libxml2/libxml/xinclude.h
+-rw-r--r-- root root 5042 ./usr/include/libxml2/libxml/xlink.h
+-rw-r--r-- root root 3956 ./usr/include/libxml2/libxml/xmlautomata.h
+-rw-r--r-- root root 36809 ./usr/include/libxml2/libxml/xmlerror.h
+-rw-r--r-- root root 3759 ./usr/include/libxml2/libxml/xmlexports.h
+-rw-r--r-- root root 10605 ./usr/include/libxml2/libxml/xmlIO.h
+-rw-r--r-- root root 5945 ./usr/include/libxml2/libxml/xmlmemory.h
+-rw-r--r-- root root 1170 ./usr/include/libxml2/libxml/xmlmodule.h
+-rw-r--r-- root root 12607 ./usr/include/libxml2/libxml/xmlreader.h
+-rw-r--r-- root root 5458 ./usr/include/libxml2/libxml/xmlregexp.h
+-rw-r--r-- root root 2337 ./usr/include/libxml2/libxml/xmlsave.h
+-rw-r--r-- root root 7069 ./usr/include/libxml2/libxml/xmlschemas.h
+-rw-r--r-- root root 4841 ./usr/include/libxml2/libxml/xmlschemastypes.h
+-rw-r--r-- root root 5511 ./usr/include/libxml2/libxml/xmlstring.h
+-rw-r--r-- root root 9993 ./usr/include/libxml2/libxml/xmlunicode.h
+-rw-r--r-- root root 8035 ./usr/include/libxml2/libxml/xmlversion.h
+-rw-r--r-- root root 21265 ./usr/include/libxml2/libxml/xmlwriter.h
+-rw-r--r-- root root 16602 ./usr/include/libxml2/libxml/xpath.h
+-rw-r--r-- root root 19353 ./usr/include/libxml2/libxml/xpathInternals.h
+-rw-r--r-- root root 3359 ./usr/include/libxml2/libxml/xpointer.h
+-rw-r--r-- root root 5417 ./usr/include/limits.h
+-rw-r--r-- root root 7207 ./usr/include/link.h
+drwxr-xr-x root root 20480 ./usr/include/linux
+-rw-r--r-- root root 3733 ./usr/include/linux/acct.h
+-rw-r--r-- root root 1140 ./usr/include/linux/adb.h
+-rw-r--r-- root root 993 ./usr/include/linux/adfs_fs.h
+-rw-r--r-- root root 1544 ./usr/include/linux/affs_hardblocks.h
+-rw-r--r-- root root 3940 ./usr/include/linux/agpgart.h
+-rw-r--r-- root root 3398 ./usr/include/linux/aio_abi.h
+-rw-r--r-- root root 3681 ./usr/include/linux/am437x-vpfe.h
+drwxr-xr-x root root 4096 ./usr/include/linux/android
+-rw-r--r-- root root 789 ./usr/include/linux/android/binderfs.h
+-rw-r--r-- root root 14535 ./usr/include/linux/android/binder.h
+-rw-r--r-- root root 6892 ./usr/include/linux/a.out.h
+-rw-r--r-- root root 3683 ./usr/include/linux/apm_bios.h
+-rw-r--r-- root root 213 ./usr/include/linux/arcfb.h
+-rw-r--r-- root root 2751 ./usr/include/linux/arm_sdei.h
+-rw-r--r-- root root 1780 ./usr/include/linux/aspeed-lpc-ctrl.h
+-rw-r--r-- root root 1906 ./usr/include/linux/aspeed-p2a-ctrl.h
+-rw-r--r-- root root 1023 ./usr/include/linux/atalk.h
+-rw-r--r-- root root 952 ./usr/include/linux/atmapi.h
+-rw-r--r-- root root 1296 ./usr/include/linux/atmarp.h
+-rw-r--r-- root root 3271 ./usr/include/linux/atmbr2684.h
+-rw-r--r-- root root 576 ./usr/include/linux/atmclip.h
+-rw-r--r-- root root 7677 ./usr/include/linux/atmdev.h
+-rw-r--r-- root root 648 ./usr/include/linux/atm_eni.h
+-rw-r--r-- root root 7888 ./usr/include/linux/atm.h
+-rw-r--r-- root root 406 ./usr/include/linux/atm_he.h
+-rw-r--r-- root root 955 ./usr/include/linux/atm_idt77105.h
+-rw-r--r-- root root 1646 ./usr/include/linux/atmioc.h
+-rw-r--r-- root root 2381 ./usr/include/linux/atmlec.h
+-rw-r--r-- root root 4226 ./usr/include/linux/atmmpc.h
+-rw-r--r-- root root 1278 ./usr/include/linux/atm_nicstar.h
+-rw-r--r-- root root 639 ./usr/include/linux/atmppp.h
+-rw-r--r-- root root 4970 ./usr/include/linux/atmsap.h
+-rw-r--r-- root root 1853 ./usr/include/linux/atmsvc.h
+-rw-r--r-- root root 1622 ./usr/include/linux/atm_tcp.h
+-rw-r--r-- root root 1540 ./usr/include/linux/atm_zatm.h
+-rw-r--r-- root root 20759 ./usr/include/linux/audit.h
+-rw-r--r-- root root 4986 ./usr/include/linux/auto_dev-ioctl.h
+-rw-r--r-- root root 451 ./usr/include/linux/auto_fs4.h
+-rw-r--r-- root root 6428 ./usr/include/linux/auto_fs.h
+-rw-r--r-- root root 1496 ./usr/include/linux/auxvec.h
+-rw-r--r-- root root 2824 ./usr/include/linux/ax25.h
+-rw-r--r-- root root 1717 ./usr/include/linux/b1lli.h
+-rw-r--r-- root root 20373 ./usr/include/linux/batadv_packet.h
+-rw-r--r-- root root 16306 ./usr/include/linux/batman_adv.h
+-rw-r--r-- root root 883 ./usr/include/linux/baycom.h
+-rw-r--r-- root root 8425 ./usr/include/linux/bcache.h
+-rw-r--r-- root root 419 ./usr/include/linux/bcm933xx_hcs.h
+-rw-r--r-- root root 1905 ./usr/include/linux/bfs_fs.h
+-rw-r--r-- root root 628 ./usr/include/linux/binfmts.h
+-rw-r--r-- root root 1634 ./usr/include/linux/blkpg.h
+-rw-r--r-- root root 4701 ./usr/include/linux/blktrace_api.h
+-rw-r--r-- root root 5368 ./usr/include/linux/blkzoned.h
+-rw-r--r-- root root 1367 ./usr/include/linux/bpf_common.h
+-rw-r--r-- root root 138331 ./usr/include/linux/bpf.h
+-rw-r--r-- root root 465 ./usr/include/linux/bpfilter.h
+-rw-r--r-- root root 529 ./usr/include/linux/bpf_perf_event.h
+-rw-r--r-- root root 981 ./usr/include/linux/bpqether.h
+-rw-r--r-- root root 2494 ./usr/include/linux/bsg.h
+-rw-r--r-- root root 572 ./usr/include/linux/bt-bmc.h
+-rw-r--r-- root root 4624 ./usr/include/linux/btf.h
+-rw-r--r-- root root 29142 ./usr/include/linux/btrfs.h
+-rw-r--r-- root root 25245 ./usr/include/linux/btrfs_tree.h
+drwxr-xr-x root root 4096 ./usr/include/linux/byteorder
+-rw-r--r-- root root 3542 ./usr/include/linux/byteorder/big_endian.h
+-rw-r--r-- root root 3611 ./usr/include/linux/byteorder/little_endian.h
+drwxr-xr-x root root 4096 ./usr/include/linux/caif
+-rw-r--r-- root root 5832 ./usr/include/linux/caif/caif_socket.h
+-rw-r--r-- root root 1041 ./usr/include/linux/caif/if_caif.h
+drwxr-xr-x root root 4096 ./usr/include/linux/can
+-rw-r--r-- root root 4116 ./usr/include/linux/can/bcm.h
+-rw-r--r-- root root 6610 ./usr/include/linux/can/error.h
+-rw-r--r-- root root 8031 ./usr/include/linux/can/gw.h
+-rw-r--r-- root root 8213 ./usr/include/linux/can.h
+-rw-r--r-- root root 2207 ./usr/include/linux/can/j1939.h
+-rw-r--r-- root root 3993 ./usr/include/linux/can/netlink.h
+-rw-r--r-- root root 2858 ./usr/include/linux/can/raw.h
+-rw-r--r-- root root 232 ./usr/include/linux/can/vxcan.h
+-rw-r--r-- root root 11780 ./usr/include/linux/capability.h
+-rw-r--r-- root root 3124 ./usr/include/linux/capi.h
+-rw-r--r-- root root 3281 ./usr/include/linux/cciss_defs.h
+-rw-r--r-- root root 2761 ./usr/include/linux/cciss_ioctl.h
+-rw-r--r-- root root 28859 ./usr/include/linux/cdrom.h
+-rw-r--r-- root root 53535 ./usr/include/linux/cec-funcs.h
+-rw-r--r-- root root 36389 ./usr/include/linux/cec.h
+-rw-r--r-- root root 2219 ./usr/include/linux/cgroupstats.h
+-rw-r--r-- root root 5344 ./usr/include/linux/chio.h
+drwxr-xr-x root root 4096 ./usr/include/linux/cifs
+-rw-r--r-- root root 1225 ./usr/include/linux/cifs/cifs_mount.h
+-rw-r--r-- root root 1806 ./usr/include/linux/cm4000_cs.h
+-rw-r--r-- root root 3456 ./usr/include/linux/cn_proc.h
+-rw-r--r-- root root 18216 ./usr/include/linux/coda.h
+-rw-r--r-- root root 12549 ./usr/include/linux/coff.h
+-rw-r--r-- root root 2253 ./usr/include/linux/connector.h
+-rw-r--r-- root root 788 ./usr/include/linux/const.h
+-rw-r--r-- root root 674 ./usr/include/linux/coresight-stm.h
+-rw-r--r-- root root 3555 ./usr/include/linux/cramfs_fs.h
+-rw-r--r-- root root 5321 ./usr/include/linux/cryptouser.h
+-rw-r--r-- root root 905 ./usr/include/linux/cuda.h
+-rw-r--r-- root root 17108 ./usr/include/linux/cyclades.h
+-rw-r--r-- root root 2990 ./usr/include/linux/cycx_cfm.h
+-rw-r--r-- root root 25291 ./usr/include/linux/dcbnl.h
+-rw-r--r-- root root 6436 ./usr/include/linux/dccp.h
+-rw-r--r-- root root 14860 ./usr/include/linux/devlink.h
+-rw-r--r-- root root 5080 ./usr/include/linux/dlmconstants.h
+-rw-r--r-- root root 2543 ./usr/include/linux/dlm_device.h
+-rw-r--r-- root root 2553 ./usr/include/linux/dlm.h
+-rw-r--r-- root root 1159 ./usr/include/linux/dlm_netlink.h
+-rw-r--r-- root root 894 ./usr/include/linux/dlm_plock.h
+-rw-r--r-- root root 1448 ./usr/include/linux/dma-buf.h
+-rw-r--r-- root root 10988 ./usr/include/linux/dm-ioctl.h
+-rw-r--r-- root root 15191 ./usr/include/linux/dm-log-userspace.h
+-rw-r--r-- root root 4642 ./usr/include/linux/dn.h
+-rw-r--r-- root root 3949 ./usr/include/linux/dns_resolver.h
+-rw-r--r-- root root 8999 ./usr/include/linux/dqblk_xfs.h
+drwxr-xr-x root root 4096 ./usr/include/linux/dvb
+-rw-r--r-- root root 3550 ./usr/include/linux/dvb/audio.h
+-rw-r--r-- root root 4247 ./usr/include/linux/dvb/ca.h
+-rw-r--r-- root root 10177 ./usr/include/linux/dvb/dmx.h
+-rw-r--r-- root root 29244 ./usr/include/linux/dvb/frontend.h
+-rw-r--r-- root root 2127 ./usr/include/linux/dvb/net.h
+-rw-r--r-- root root 5937 ./usr/include/linux/dvb/osd.h
+-rw-r--r-- root root 1082 ./usr/include/linux/dvb/version.h
+-rw-r--r-- root root 7106 ./usr/include/linux/dvb/video.h
+-rw-r--r-- root root 5604 ./usr/include/linux/edd.h
+-rw-r--r-- root root 2227 ./usr/include/linux/efs_fs_sb.h
+-rw-r--r-- root root 2995 ./usr/include/linux/elfcore.h
+-rw-r--r-- root root 2586 ./usr/include/linux/elf-em.h
+-rw-r--r-- root root 1124 ./usr/include/linux/elf-fdpic.h
+-rw-r--r-- root root 13642 ./usr/include/linux/elf.h
+-rw-r--r-- root root 23 ./usr/include/linux/errno.h
+-rw-r--r-- root root 1572 ./usr/include/linux/errqueue.h
+-rw-r--r-- root root 1059 ./usr/include/linux/erspan.h
+-rw-r--r-- root root 74781 ./usr/include/linux/ethtool.h
+-rw-r--r-- root root 2743 ./usr/include/linux/eventpoll.h
+-rw-r--r-- root root 842 ./usr/include/linux/fadvise.h
+-rw-r--r-- root root 3584 ./usr/include/linux/falloc.h
+-rw-r--r-- root root 5369 ./usr/include/linux/fanotify.h
+-rw-r--r-- root root 16412 ./usr/include/linux/fb.h
+-rw-r--r-- root root 3438 ./usr/include/linux/fcntl.h
+-rw-r--r-- root root 11672 ./usr/include/linux/fd.h
+-rw-r--r-- root root 5420 ./usr/include/linux/fdreg.h
+-rw-r--r-- root root 2036 ./usr/include/linux/fib_rules.h
+-rw-r--r-- root root 2775 ./usr/include/linux/fiemap.h
+-rw-r--r-- root root 2216 ./usr/include/linux/filter.h
+-rw-r--r-- root root 44242 ./usr/include/linux/firewire-cdev.h
+-rw-r--r-- root root 3231 ./usr/include/linux/firewire-constants.h
+-rw-r--r-- root root 894 ./usr/include/linux/fou.h
+-rw-r--r-- root root 6103 ./usr/include/linux/fpga-dfl.h
+-rw-r--r-- root root 6104 ./usr/include/linux/fscrypt.h
+-rw-r--r-- root root 12205 ./usr/include/linux/fs.h
+-rw-r--r-- root root 2255 ./usr/include/linux/fsi.h
+-rw-r--r-- root root 7301 ./usr/include/linux/fsl_hypervisor.h
+-rw-r--r-- root root 4393 ./usr/include/linux/fsmap.h
+-rw-r--r-- root root 931 ./usr/include/linux/fsverity.h
+-rw-r--r-- root root 20407 ./usr/include/linux/fuse.h
+-rw-r--r-- root root 4993 ./usr/include/linux/futex.h
+-rw-r--r-- root root 897 ./usr/include/linux/gameport.h
+-rw-r--r-- root root 1923 ./usr/include/linux/genetlink.h
+-rw-r--r-- root root 1599 ./usr/include/linux/gen_stats.h
+drwxr-xr-x root root 4096 ./usr/include/linux/genwqe
+-rw-r--r-- root root 17802 ./usr/include/linux/genwqe/genwqe_card.h
+-rw-r--r-- root root 14651 ./usr/include/linux/gfs2_ondisk.h
+-rw-r--r-- root root 1442 ./usr/include/linux/gigaset_dev.h
+-rw-r--r-- root root 5753 ./usr/include/linux/gpio.h
+-rw-r--r-- root root 1144 ./usr/include/linux/gsmmux.h
+-rw-r--r-- root root 681 ./usr/include/linux/gtp.h
+-rw-r--r-- root root 971 ./usr/include/linux/hash_info.h
+drwxr-xr-x root root 4096 ./usr/include/linux/hdlc
+-rw-r--r-- root root 2908 ./usr/include/linux/hdlcdrv.h
+-rw-r--r-- root root 637 ./usr/include/linux/hdlc.h
+-rw-r--r-- root root 2657 ./usr/include/linux/hdlc/ioctl.h
+-rw-r--r-- root root 22703 ./usr/include/linux/hdreg.h
+-rw-r--r-- root root 6345 ./usr/include/linux/hiddev.h
+-rw-r--r-- root root 1901 ./usr/include/linux/hid.h
+-rw-r--r-- root root 1511 ./usr/include/linux/hidraw.h
+-rw-r--r-- root root 743 ./usr/include/linux/hpet.h
+drwxr-xr-x root root 4096 ./usr/include/linux/hsi
+-rw-r--r-- root root 3656 ./usr/include/linux/hsi/cs-protocol.h
+-rw-r--r-- root root 1895 ./usr/include/linux/hsi/hsi_char.h
+-rw-r--r-- root root 1081 ./usr/include/linux/hsr_netlink.h
+-rw-r--r-- root root 742 ./usr/include/linux/hw_breakpoint.h
+-rw-r--r-- root root 10569 ./usr/include/linux/hyperv.h
+-rw-r--r-- root root 1382 ./usr/include/linux/hysdn_if.h
+-rw-r--r-- root root 2612 ./usr/include/linux/i2c-dev.h
+-rw-r--r-- root root 7132 ./usr/include/linux/i2c.h
+-rw-r--r-- root root 11555 ./usr/include/linux/i2o-dev.h
+-rw-r--r-- root root 1528 ./usr/include/linux/i8k.h
+-rw-r--r-- root root 2975 ./usr/include/linux/icmp.h
+-rw-r--r-- root root 4083 ./usr/include/linux/icmpv6.h
+-rw-r--r-- root root 1886 ./usr/include/linux/if_addr.h
+-rw-r--r-- root root 721 ./usr/include/linux/if_addrlabel.h
+-rw-r--r-- root root 946 ./usr/include/linux/if_alg.h
+-rw-r--r-- root root 3717 ./usr/include/linux/if_arcnet.h
+-rw-r--r-- root root 6565 ./usr/include/linux/if_arp.h
+-rw-r--r-- root root 4839 ./usr/include/linux/if_bonding.h
+-rw-r--r-- root root 7266 ./usr/include/linux/if_bridge.h
+-rw-r--r-- root root 986 ./usr/include/linux/if_cablemodem.h
+-rw-r--r-- root root 351 ./usr/include/linux/ife.h
+-rw-r--r-- root root 1349 ./usr/include/linux/if_eql.h
+-rw-r--r-- root root 8227 ./usr/include/linux/if_ether.h
+-rw-r--r-- root root 1738 ./usr/include/linux/if_fc.h
+-rw-r--r-- root root 4372 ./usr/include/linux/if_fddi.h
+-rw-r--r-- root root 3019 ./usr/include/linux/if_frad.h
+-rw-r--r-- root root 10813 ./usr/include/linux/if.h
+-rw-r--r-- root root 4235 ./usr/include/linux/if_hippi.h
+-rw-r--r-- root root 1245 ./usr/include/linux/if_infiniband.h
+-rw-r--r-- root root 23649 ./usr/include/linux/if_link.h
+-rw-r--r-- root root 210 ./usr/include/linux/if_ltalk.h
+-rw-r--r-- root root 5832 ./usr/include/linux/if_macsec.h
+-rw-r--r-- root root 7955 ./usr/include/linux/if_packet.h
+-rw-r--r-- root root 424 ./usr/include/linux/if_phonet.h
+-rw-r--r-- root root 660 ./usr/include/linux/if_plip.h
+-rw-r--r-- root root 29 ./usr/include/linux/if_ppp.h
+-rw-r--r-- root root 3292 ./usr/include/linux/if_pppol2tp.h
+-rw-r--r-- root root 4879 ./usr/include/linux/if_pppox.h
+-rw-r--r-- root root 872 ./usr/include/linux/if_slip.h
+-rw-r--r-- root root 2600 ./usr/include/linux/if_team.h
+-rw-r--r-- root root 4098 ./usr/include/linux/if_tun.h
+-rw-r--r-- root root 4512 ./usr/include/linux/if_tunnel.h
+-rw-r--r-- root root 1831 ./usr/include/linux/if_vlan.h
+-rw-r--r-- root root 881 ./usr/include/linux/if_x25.h
+-rw-r--r-- root root 2819 ./usr/include/linux/if_xdp.h
+-rw-r--r-- root root 3064 ./usr/include/linux/igmp.h
+drwxr-xr-x root root 4096 ./usr/include/linux/iio
+-rw-r--r-- root root 1390 ./usr/include/linux/iio/events.h
+-rw-r--r-- root root 2114 ./usr/include/linux/iio/types.h
+-rw-r--r-- root root 1246 ./usr/include/linux/ila.h
+-rw-r--r-- root root 7505 ./usr/include/linux/in6.h
+-rw-r--r-- root root 4540 ./usr/include/linux/inet_diag.h
+-rw-r--r-- root root 9881 ./usr/include/linux/in.h
+-rw-r--r-- root root 3292 ./usr/include/linux/inotify.h
+-rw-r--r-- root root 25218 ./usr/include/linux/input-event-codes.h
+-rw-r--r-- root root 15964 ./usr/include/linux/input.h
+-rw-r--r-- root root 936 ./usr/include/linux/in_route.h
+-rw-r--r-- root root 163 ./usr/include/linux/ioctl.h
+-rw-r--r-- root root 4578 ./usr/include/linux/iommu.h
+-rw-r--r-- root root 3478 ./usr/include/linux/io_uring.h
+-rw-r--r-- root root 1953 ./usr/include/linux/ip6_tunnel.h
+-rw-r--r-- root root 2101 ./usr/include/linux/ipc.h
+-rw-r--r-- root root 4728 ./usr/include/linux/ip.h
+-rw-r--r-- root root 488 ./usr/include/linux/ipmi_bmc.h
+-rw-r--r-- root root 15049 ./usr/include/linux/ipmi.h
+-rw-r--r-- root root 3350 ./usr/include/linux/ipmi_msgdefs.h
+-rw-r--r-- root root 947 ./usr/include/linux/ipsec.h
+-rw-r--r-- root root 3967 ./usr/include/linux/ipv6.h
+-rw-r--r-- root root 1908 ./usr/include/linux/ipv6_route.h
+-rw-r--r-- root root 14135 ./usr/include/linux/ip_vs.h
+-rw-r--r-- root root 2347 ./usr/include/linux/ipx.h
+-rw-r--r-- root root 104 ./usr/include/linux/irqnr.h
+drwxr-xr-x root root 4096 ./usr/include/linux/isdn
+-rw-r--r-- root root 4783 ./usr/include/linux/isdn/capicmd.h
+-rw-r--r-- root root 6485 ./usr/include/linux/iso_fs.h
+-rw-r--r-- root root 5408 ./usr/include/linux/isst_if.h
+-rw-r--r-- root root 1207 ./usr/include/linux/ivtvfb.h
+-rw-r--r-- root root 3022 ./usr/include/linux/ivtv.h
+-rw-r--r-- root root 6815 ./usr/include/linux/jffs2.h
+-rw-r--r-- root root 3434 ./usr/include/linux/joystick.h
+-rw-r--r-- root root 822 ./usr/include/linux/kcm.h
+-rw-r--r-- root root 522 ./usr/include/linux/kcmp.h
+-rw-r--r-- root root 1099 ./usr/include/linux/kcov.h
+-rw-r--r-- root root 383 ./usr/include/linux/kdev_t.h
+-rw-r--r-- root root 6253 ./usr/include/linux/kd.h
+-rw-r--r-- root root 1019 ./usr/include/linux/kernelcapi.h
+-rw-r--r-- root root 438 ./usr/include/linux/kernel.h
+-rw-r--r-- root root 900 ./usr/include/linux/kernel-page-flags.h
+-rw-r--r-- root root 1873 ./usr/include/linux/kexec.h
+-rw-r--r-- root root 13459 ./usr/include/linux/keyboard.h
+-rw-r--r-- root root 5837 ./usr/include/linux/keyctl.h
+-rw-r--r-- root root 16263 ./usr/include/linux/kfd_ioctl.h
+-rw-r--r-- root root 46258 ./usr/include/linux/kvm.h
+-rw-r--r-- root root 968 ./usr/include/linux/kvm_para.h
+-rw-r--r-- root root 5672 ./usr/include/linux/l2tp.h
+-rw-r--r-- root root 8289 ./usr/include/linux/libc-compat.h
+-rw-r--r-- root root 5042 ./usr/include/linux/lightnvm.h
+-rw-r--r-- root root 937 ./usr/include/linux/limits.h
+-rw-r--r-- root root 8102 ./usr/include/linux/lirc.h
+-rw-r--r-- root root 3164 ./usr/include/linux/llc.h
+-rw-r--r-- root root 2520 ./usr/include/linux/loop.h
+-rw-r--r-- root root 4190 ./usr/include/linux/lp.h
+-rw-r--r-- root root 1273 ./usr/include/linux/lwtunnel.h
+-rw-r--r-- root root 3604 ./usr/include/linux/magic.h
+-rw-r--r-- root root 4713 ./usr/include/linux/major.h
+-rw-r--r-- root root 7251 ./usr/include/linux/map_to_7segment.h
+-rw-r--r-- root root 1464 ./usr/include/linux/matroxfb.h
+-rw-r--r-- root root 1035 ./usr/include/linux/max2175.h
+-rw-r--r-- root root 15645 ./usr/include/linux/mdio.h
+-rw-r--r-- root root 6540 ./usr/include/linux/media-bus-format.h
+-rw-r--r-- root root 12641 ./usr/include/linux/media.h
+-rw-r--r-- root root 1993 ./usr/include/linux/mei.h
+-rw-r--r-- root root 7899 ./usr/include/linux/membarrier.h
+-rw-r--r-- root root 1324 ./usr/include/linux/memfd.h
+-rw-r--r-- root root 2154 ./usr/include/linux/mempolicy.h
+-rw-r--r-- root root 2529 ./usr/include/linux/meye.h
+-rw-r--r-- root root 6519 ./usr/include/linux/mic_common.h
+-rw-r--r-- root root 2252 ./usr/include/linux/mic_ioctl.h
+-rw-r--r-- root root 8281 ./usr/include/linux/mii.h
+-rw-r--r-- root root 2122 ./usr/include/linux/minix_fs.h
+-rw-r--r-- root root 1508 ./usr/include/linux/mman.h
+drwxr-xr-x root root 4096 ./usr/include/linux/mmc
+-rw-r--r-- root root 2331 ./usr/include/linux/mmc/ioctl.h
+-rw-r--r-- root root 2117 ./usr/include/linux/mmtimer.h
+-rw-r--r-- root root 255 ./usr/include/linux/module.h
+-rw-r--r-- root root 4546 ./usr/include/linux/mount.h
+-rw-r--r-- root root 2302 ./usr/include/linux/mpls.h
+-rw-r--r-- root root 761 ./usr/include/linux/mpls_iptunnel.h
+-rw-r--r-- root root 2201 ./usr/include/linux/mqueue.h
+-rw-r--r-- root root 4931 ./usr/include/linux/mroute6.h
+-rw-r--r-- root root 5881 ./usr/include/linux/mroute.h
+-rw-r--r-- root root 6731 ./usr/include/linux/msdos_fs.h
+-rw-r--r-- root root 3374 ./usr/include/linux/msg.h
+-rw-r--r-- root root 8175 ./usr/include/linux/mtio.h
+-rw-r--r-- root root 3024 ./usr/include/linux/nbd.h
+-rw-r--r-- root root 2378 ./usr/include/linux/nbd-netlink.h
+-rw-r--r-- root root 4828 ./usr/include/linux/ncsi.h
+-rw-r--r-- root root 6770 ./usr/include/linux/ndctl.h
+-rw-r--r-- root root 4406 ./usr/include/linux/neighbour.h
+-rw-r--r-- root root 614 ./usr/include/linux/netconf.h
+-rw-r--r-- root root 2253 ./usr/include/linux/netdevice.h
+-rw-r--r-- root root 2839 ./usr/include/linux/net_dropmon.h
+drwxr-xr-x root root 4096 ./usr/include/linux/netfilter
+drwxr-xr-x root root 4096 ./usr/include/linux/netfilter_arp
+-rw-r--r-- root root 5999 ./usr/include/linux/netfilter_arp/arp_tables.h
+-rw-r--r-- root root 606 ./usr/include/linux/netfilter_arp/arpt_mangle.h
+-rw-r--r-- root root 445 ./usr/include/linux/netfilter_arp.h
+drwxr-xr-x root root 4096 ./usr/include/linux/netfilter_bridge
+-rw-r--r-- root root 1274 ./usr/include/linux/netfilter_bridge/ebt_802_3.h
+-rw-r--r-- root root 9308 ./usr/include/linux/netfilter_bridge/ebtables.h
+-rw-r--r-- root root 2043 ./usr/include/linux/netfilter_bridge/ebt_among.h
+-rw-r--r-- root root 900 ./usr/include/linux/netfilter_bridge/ebt_arp.h
+-rw-r--r-- root root 289 ./usr/include/linux/netfilter_bridge/ebt_arpreply.h
+-rw-r--r-- root root 1056 ./usr/include/linux/netfilter_bridge/ebt_ip6.h
+-rw-r--r-- root root 1094 ./usr/include/linux/netfilter_bridge/ebt_ip.h
+-rw-r--r-- root root 616 ./usr/include/linux/netfilter_bridge/ebt_limit.h
+-rw-r--r-- root root 538 ./usr/include/linux/netfilter_bridge/ebt_log.h
+-rw-r--r-- root root 388 ./usr/include/linux/netfilter_bridge/ebt_mark_m.h
+-rw-r--r-- root root 831 ./usr/include/linux/netfilter_bridge/ebt_mark_t.h
+-rw-r--r-- root root 387 ./usr/include/linux/netfilter_bridge/ebt_nat.h
+-rw-r--r-- root root 510 ./usr/include/linux/netfilter_bridge/ebt_nflog.h
+-rw-r--r-- root root 267 ./usr/include/linux/netfilter_bridge/ebt_pkttype.h
+-rw-r--r-- root root 286 ./usr/include/linux/netfilter_bridge/ebt_redirect.h
+-rw-r--r-- root root 1110 ./usr/include/linux/netfilter_bridge/ebt_stp.h
+-rw-r--r-- root root 719 ./usr/include/linux/netfilter_bridge/ebt_vlan.h
+-rw-r--r-- root root 1168 ./usr/include/linux/netfilter_bridge.h
+-rw-r--r-- root root 1758 ./usr/include/linux/netfilter_decnet.h
+-rw-r--r-- root root 1674 ./usr/include/linux/netfilter.h
+drwxr-xr-x root root 4096 ./usr/include/linux/netfilter/ipset
+-rw-r--r-- root root 428 ./usr/include/linux/netfilter/ipset/ip_set_bitmap.h
+-rw-r--r-- root root 9108 ./usr/include/linux/netfilter/ipset/ip_set.h
+-rw-r--r-- root root 578 ./usr/include/linux/netfilter/ipset/ip_set_hash.h
+-rw-r--r-- root root 609 ./usr/include/linux/netfilter/ipset/ip_set_list.h
+drwxr-xr-x root root 4096 ./usr/include/linux/netfilter_ipv4
+-rw-r--r-- root root 1488 ./usr/include/linux/netfilter_ipv4.h
+-rw-r--r-- root root 6647 ./usr/include/linux/netfilter_ipv4/ip_tables.h
+-rw-r--r-- root root 425 ./usr/include/linux/netfilter_ipv4/ipt_ah.h
+-rw-r--r-- root root 821 ./usr/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h
+-rw-r--r-- root root 431 ./usr/include/linux/netfilter_ipv4/ipt_ecn.h
+-rw-r--r-- root root 901 ./usr/include/linux/netfilter_ipv4/ipt_ECN.h
+-rw-r--r-- root root 654 ./usr/include/linux/netfilter_ipv4/ipt_LOG.h
+-rw-r--r-- root root 468 ./usr/include/linux/netfilter_ipv4/ipt_REJECT.h
+-rw-r--r-- root root 431 ./usr/include/linux/netfilter_ipv4/ipt_ttl.h
+-rw-r--r-- root root 375 ./usr/include/linux/netfilter_ipv4/ipt_TTL.h
+drwxr-xr-x root root 4096 ./usr/include/linux/netfilter_ipv6
+-rw-r--r-- root root 1383 ./usr/include/linux/netfilter_ipv6.h
+-rw-r--r-- root root 8011 ./usr/include/linux/netfilter_ipv6/ip6_tables.h
+-rw-r--r-- root root 657 ./usr/include/linux/netfilter_ipv6/ip6t_ah.h
+-rw-r--r-- root root 744 ./usr/include/linux/netfilter_ipv6/ip6t_frag.h
+-rw-r--r-- root root 458 ./usr/include/linux/netfilter_ipv6/ip6t_hl.h
+-rw-r--r-- root root 408 ./usr/include/linux/netfilter_ipv6/ip6t_HL.h
+-rw-r--r-- root root 645 ./usr/include/linux/netfilter_ipv6/ip6t_ipv6header.h
+-rw-r--r-- root root 662 ./usr/include/linux/netfilter_ipv6/ip6t_LOG.h
+-rw-r--r-- root root 439 ./usr/include/linux/netfilter_ipv6/ip6t_mh.h
+-rw-r--r-- root root 400 ./usr/include/linux/netfilter_ipv6/ip6t_NPT.h
+-rw-r--r-- root root 649 ./usr/include/linux/netfilter_ipv6/ip6t_opts.h
+-rw-r--r-- root root 470 ./usr/include/linux/netfilter_ipv6/ip6t_REJECT.h
+-rw-r--r-- root root 985 ./usr/include/linux/netfilter_ipv6/ip6t_rt.h
+-rw-r--r-- root root 3305 ./usr/include/linux/netfilter_ipv6/ip6t_srh.h
+-rw-r--r-- root root 4421 ./usr/include/linux/netfilter/nf_conntrack_common.h
+-rw-r--r-- root root 438 ./usr/include/linux/netfilter/nf_conntrack_ftp.h
+-rw-r--r-- root root 576 ./usr/include/linux/netfilter/nf_conntrack_sctp.h
+-rw-r--r-- root root 1415 ./usr/include/linux/netfilter/nf_conntrack_tcp.h
+-rw-r--r-- root root 896 ./usr/include/linux/netfilter/nf_conntrack_tuple_common.h
+-rw-r--r-- root root 538 ./usr/include/linux/netfilter/nf_log.h
+-rw-r--r-- root root 1522 ./usr/include/linux/netfilter/nf_nat.h
+-rw-r--r-- root root 900 ./usr/include/linux/netfilter/nfnetlink_acct.h
+-rw-r--r-- root root 2444 ./usr/include/linux/netfilter/nfnetlink_compat.h
+-rw-r--r-- root root 5924 ./usr/include/linux/netfilter/nfnetlink_conntrack.h
+-rw-r--r-- root root 1202 ./usr/include/linux/netfilter/nfnetlink_cthelper.h
+-rw-r--r-- root root 2930 ./usr/include/linux/netfilter/nfnetlink_cttimeout.h
+-rw-r--r-- root root 2428 ./usr/include/linux/netfilter/nfnetlink.h
+-rw-r--r-- root root 3106 ./usr/include/linux/netfilter/nfnetlink_log.h
+-rw-r--r-- root root 2665 ./usr/include/linux/netfilter/nfnetlink_osf.h
+-rw-r--r-- root root 3499 ./usr/include/linux/netfilter/nfnetlink_queue.h
+-rw-r--r-- root root 576 ./usr/include/linux/netfilter/nf_synproxy.h
+-rw-r--r-- root root 731 ./usr/include/linux/netfilter/nf_tables_compat.h
+-rw-r--r-- root root 51835 ./usr/include/linux/netfilter/nf_tables.h
+-rw-r--r-- root root 4467 ./usr/include/linux/netfilter/x_tables.h
+-rw-r--r-- root root 1084 ./usr/include/linux/netfilter/xt_addrtype.h
+-rw-r--r-- root root 718 ./usr/include/linux/netfilter/xt_AUDIT.h
+-rw-r--r-- root root 935 ./usr/include/linux/netfilter/xt_bpf.h
+-rw-r--r-- root root 740 ./usr/include/linux/netfilter/xt_cgroup.h
+-rw-r--r-- root root 563 ./usr/include/linux/netfilter/xt_CHECKSUM.h
+-rw-r--r-- root root 217 ./usr/include/linux/netfilter/xt_CLASSIFY.h
+-rw-r--r-- root root 374 ./usr/include/linux/netfilter/xt_cluster.h
+-rw-r--r-- root root 230 ./usr/include/linux/netfilter/xt_comment.h
+-rw-r--r-- root root 577 ./usr/include/linux/netfilter/xt_connbytes.h
+-rw-r--r-- root root 360 ./usr/include/linux/netfilter/xt_connlabel.h
+-rw-r--r-- root root 575 ./usr/include/linux/netfilter/xt_connlimit.h
+-rw-r--r-- root root 900 ./usr/include/linux/netfilter/xt_connmark.h
+-rw-r--r-- root root 199 ./usr/include/linux/netfilter/xt_CONNMARK.h
+-rw-r--r-- root root 301 ./usr/include/linux/netfilter/xt_CONNSECMARK.h
+-rw-r--r-- root root 2557 ./usr/include/linux/netfilter/xt_conntrack.h
+-rw-r--r-- root root 199 ./usr/include/linux/netfilter/xt_cpu.h
+-rw-r--r-- root root 853 ./usr/include/linux/netfilter/xt_CT.h
+-rw-r--r-- root root 483 ./usr/include/linux/netfilter/xt_dccp.h
+-rw-r--r-- root root 429 ./usr/include/linux/netfilter/xt_devgroup.h
+-rw-r--r-- root root 701 ./usr/include/linux/netfilter/xt_dscp.h
+-rw-r--r-- root root 697 ./usr/include/linux/netfilter/xt_DSCP.h
+-rw-r--r-- root root 736 ./usr/include/linux/netfilter/xt_ecn.h
+-rw-r--r-- root root 418 ./usr/include/linux/netfilter/xt_esp.h
+-rw-r--r-- root root 3256 ./usr/include/linux/netfilter/xt_hashlimit.h
+-rw-r--r-- root root 188 ./usr/include/linux/netfilter/xt_helper.h
+-rw-r--r-- root root 933 ./usr/include/linux/netfilter/xt_HMARK.h
+-rw-r--r-- root root 1393 ./usr/include/linux/netfilter/xt_IDLETIMER.h
+-rw-r--r-- root root 485 ./usr/include/linux/netfilter/xt_ipcomp.h
+-rw-r--r-- root root 581 ./usr/include/linux/netfilter/xt_iprange.h
+-rw-r--r-- root root 680 ./usr/include/linux/netfilter/xt_ipvs.h
+-rw-r--r-- root root 739 ./usr/include/linux/netfilter/xt_l2tp.h
+-rw-r--r-- root root 470 ./usr/include/linux/netfilter/xt_LED.h
+-rw-r--r-- root root 221 ./usr/include/linux/netfilter/xt_length.h
+-rw-r--r-- root root 673 ./usr/include/linux/netfilter/xt_limit.h
+-rw-r--r-- root root 642 ./usr/include/linux/netfilter/xt_LOG.h
+-rw-r--r-- root root 227 ./usr/include/linux/netfilter/xt_mac.h
+-rw-r--r-- root root 260 ./usr/include/linux/netfilter/xt_mark.h
+-rw-r--r-- root root 184 ./usr/include/linux/netfilter/xt_MARK.h
+-rw-r--r-- root root 721 ./usr/include/linux/netfilter/xt_multiport.h
+-rw-r--r-- root root 421 ./usr/include/linux/netfilter/xt_nfacct.h
+-rw-r--r-- root root 556 ./usr/include/linux/netfilter/xt_NFLOG.h
+-rw-r--r-- root root 779 ./usr/include/linux/netfilter/xt_NFQUEUE.h
+-rw-r--r-- root root 1703 ./usr/include/linux/netfilter/xt_osf.h
+-rw-r--r-- root root 535 ./usr/include/linux/netfilter/xt_owner.h
+-rw-r--r-- root root 553 ./usr/include/linux/netfilter/xt_physdev.h
+-rw-r--r-- root root 188 ./usr/include/linux/netfilter/xt_pkttype.h
+-rw-r--r-- root root 1051 ./usr/include/linux/netfilter/xt_policy.h
+-rw-r--r-- root root 400 ./usr/include/linux/netfilter/xt_quota.h
+-rw-r--r-- root root 859 ./usr/include/linux/netfilter/xt_rateest.h
+-rw-r--r-- root root 390 ./usr/include/linux/netfilter/xt_RATEEST.h
+-rw-r--r-- root root 220 ./usr/include/linux/netfilter/xt_realm.h
+-rw-r--r-- root root 1058 ./usr/include/linux/netfilter/xt_recent.h
+-rw-r--r-- root root 320 ./usr/include/linux/netfilter/xt_rpfilter.h
+-rw-r--r-- root root 2326 ./usr/include/linux/netfilter/xt_sctp.h
+-rw-r--r-- root root 549 ./usr/include/linux/netfilter/xt_SECMARK.h
+-rw-r--r-- root root 1827 ./usr/include/linux/netfilter/xt_set.h
+-rw-r--r-- root root 640 ./usr/include/linux/netfilter/xt_socket.h
+-rw-r--r-- root root 331 ./usr/include/linux/netfilter/xt_state.h
+-rw-r--r-- root root 716 ./usr/include/linux/netfilter/xt_statistic.h
+-rw-r--r-- root root 664 ./usr/include/linux/netfilter/xt_string.h
+-rw-r--r-- root root 498 ./usr/include/linux/netfilter/xt_SYNPROXY.h
+-rw-r--r-- root root 253 ./usr/include/linux/netfilter/xt_tcpmss.h
+-rw-r--r-- root root 235 ./usr/include/linux/netfilter/xt_TCPMSS.h
+-rw-r--r-- root root 407 ./usr/include/linux/netfilter/xt_TCPOPTSTRIP.h
+-rw-r--r-- root root 1250 ./usr/include/linux/netfilter/xt_tcpudp.h
+-rw-r--r-- root root 333 ./usr/include/linux/netfilter/xt_TEE.h
+-rw-r--r-- root root 730 ./usr/include/linux/netfilter/xt_time.h
+-rw-r--r-- root root 575 ./usr/include/linux/netfilter/xt_TPROXY.h
+-rw-r--r-- root root 752 ./usr/include/linux/netfilter/xt_u32.h
+-rw-r--r-- root root 2085 ./usr/include/linux/net.h
+-rw-r--r-- root root 1524 ./usr/include/linux/netlink_diag.h
+-rw-r--r-- root root 7825 ./usr/include/linux/netlink.h
+-rw-r--r-- root root 715 ./usr/include/linux/net_namespace.h
+-rw-r--r-- root root 807 ./usr/include/linux/netrom.h
+-rw-r--r-- root root 4914 ./usr/include/linux/net_tstamp.h
+-rw-r--r-- root root 1534 ./usr/include/linux/nexthop.h
+-rw-r--r-- root root 11209 ./usr/include/linux/nfc.h
+-rw-r--r-- root root 1468 ./usr/include/linux/nfs2.h
+-rw-r--r-- root root 2359 ./usr/include/linux/nfs3.h
+-rw-r--r-- root root 6338 ./usr/include/linux/nfs4.h
+-rw-r--r-- root root 1932 ./usr/include/linux/nfs4_mount.h
+-rw-r--r-- root root 668 ./usr/include/linux/nfsacl.h
+drwxr-xr-x root root 4096 ./usr/include/linux/nfsd
+-rw-r--r-- root root 3122 ./usr/include/linux/nfsd/cld.h
+-rw-r--r-- root root 736 ./usr/include/linux/nfsd/debug.h
+-rw-r--r-- root root 2113 ./usr/include/linux/nfsd/export.h
+-rw-r--r-- root root 3517 ./usr/include/linux/nfsd/nfsfh.h
+-rw-r--r-- root root 421 ./usr/include/linux/nfsd/stats.h
+-rw-r--r-- root root 1608 ./usr/include/linux/nfs_fs.h
+-rw-r--r-- root root 4500 ./usr/include/linux/nfs.h
+-rw-r--r-- root root 2243 ./usr/include/linux/nfs_idmap.h
+-rw-r--r-- root root 2142 ./usr/include/linux/nfs_mount.h
+-rw-r--r-- root root 7589 ./usr/include/linux/nilfs2_api.h
+-rw-r--r-- root root 18085 ./usr/include/linux/nilfs2_ondisk.h
+-rw-r--r-- root root 280715 ./usr/include/linux/nl80211.h
+-rw-r--r-- root root 2410 ./usr/include/linux/n_r3964.h
+-rw-r--r-- root root 639 ./usr/include/linux/nsfs.h
+-rw-r--r-- root root 8191 ./usr/include/linux/nubus.h
+-rw-r--r-- root root 1661 ./usr/include/linux/nvme_ioctl.h
+-rw-r--r-- root root 532 ./usr/include/linux/nvram.h
+-rw-r--r-- root root 20853 ./usr/include/linux/omap3isp.h
+-rw-r--r-- root root 5918 ./usr/include/linux/omapfb.h
+-rw-r--r-- root root 511 ./usr/include/linux/oom.h
+-rw-r--r-- root root 37676 ./usr/include/linux/openvswitch.h
+-rw-r--r-- root root 1672 ./usr/include/linux/packet_diag.h
+-rw-r--r-- root root 141 ./usr/include/linux/param.h
+-rw-r--r-- root root 3644 ./usr/include/linux/parport.h
+-rw-r--r-- root root 892 ./usr/include/linux/patchkey.h
+-rw-r--r-- root root 1380 ./usr/include/linux/pci.h
+-rw-r--r-- root root 56733 ./usr/include/linux/pci_regs.h
+-rw-r--r-- root root 711 ./usr/include/linux/pcitest.h
+-rw-r--r-- root root 34228 ./usr/include/linux/perf_event.h
+-rw-r--r-- root root 2097 ./usr/include/linux/personality.h
+-rw-r--r-- root root 10569 ./usr/include/linux/pfkeyv2.h
+-rw-r--r-- root root 2394 ./usr/include/linux/pg.h
+-rw-r--r-- root root 1654 ./usr/include/linux/phantom.h
+-rw-r--r-- root root 4677 ./usr/include/linux/phonet.h
+-rw-r--r-- root root 2687 ./usr/include/linux/pktcdvd.h
+-rw-r--r-- root root 15441 ./usr/include/linux/pkt_cls.h
+-rw-r--r-- root root 27648 ./usr/include/linux/pkt_sched.h
+-rw-r--r-- root root 5444 ./usr/include/linux/pmu.h
+-rw-r--r-- root root 22 ./usr/include/linux/poll.h
+-rw-r--r-- root root 1254 ./usr/include/linux/posix_acl.h
+-rw-r--r-- root root 1115 ./usr/include/linux/posix_acl_xattr.h
+-rw-r--r-- root root 1098 ./usr/include/linux/posix_types.h
+-rw-r--r-- root root 3285 ./usr/include/linux/ppdev.h
+-rw-r--r-- root root 2527 ./usr/include/linux/ppp-comp.h
+-rw-r--r-- root root 5107 ./usr/include/linux/ppp_defs.h
+-rw-r--r-- root root 5438 ./usr/include/linux/ppp-ioctl.h
+-rw-r--r-- root root 4734 ./usr/include/linux/pps.h
+-rw-r--r-- root root 8073 ./usr/include/linux/prctl.h
+-rw-r--r-- root root 1073 ./usr/include/linux/pr.h
+-rw-r--r-- root root 798 ./usr/include/linux/psample.h
+-rw-r--r-- root root 4328 ./usr/include/linux/psci.h
+-rw-r--r-- root root 4036 ./usr/include/linux/psp-sev.h
+-rw-r--r-- root root 6731 ./usr/include/linux/ptp_clock.h
+-rw-r--r-- root root 4265 ./usr/include/linux/ptrace.h
+-rw-r--r-- root root 2469 ./usr/include/linux/qemu_fw_cfg.h
+-rw-r--r-- root root 2328 ./usr/include/linux/qnx4_fs.h
+-rw-r--r-- root root 624 ./usr/include/linux/qnxtypes.h
+-rw-r--r-- root root 893 ./usr/include/linux/qrtr.h
+-rw-r--r-- root root 6291 ./usr/include/linux/quota.h
+-rw-r--r-- root root 360 ./usr/include/linux/radeonfb.h
+drwxr-xr-x root root 4096 ./usr/include/linux/raid
+-rw-r--r-- root root 16161 ./usr/include/linux/raid/md_p.h
+-rw-r--r-- root root 4484 ./usr/include/linux/raid/md_u.h
+-rw-r--r-- root root 1370 ./usr/include/linux/random.h
+-rw-r--r-- root root 365 ./usr/include/linux/raw.h
+-rw-r--r-- root root 11081 ./usr/include/linux/rds.h
+-rw-r--r-- root root 1343 ./usr/include/linux/reboot.h
+-rw-r--r-- root root 775 ./usr/include/linux/reiserfs_fs.h
+-rw-r--r-- root root 533 ./usr/include/linux/reiserfs_xattr.h
+-rw-r--r-- root root 2347 ./usr/include/linux/resource.h
+-rw-r--r-- root root 3682 ./usr/include/linux/rfkill.h
+-rw-r--r-- root root 3248 ./usr/include/linux/rio_cm_cdev.h
+-rw-r--r-- root root 9330 ./usr/include/linux/rio_mport_cdev.h
+-rw-r--r-- root root 1238 ./usr/include/linux/romfs_fs.h
+-rw-r--r-- root root 2232 ./usr/include/linux/rose.h
+-rw-r--r-- root root 2332 ./usr/include/linux/route.h
+-rw-r--r-- root root 544 ./usr/include/linux/rpmsg.h
+-rw-r--r-- root root 4904 ./usr/include/linux/rseq.h
+-rw-r--r-- root root 4009 ./usr/include/linux/rtc.h
+-rw-r--r-- root root 19055 ./usr/include/linux/rtnetlink.h
+-rw-r--r-- root root 4897 ./usr/include/linux/rxrpc.h
+-rw-r--r-- root root 4597 ./usr/include/linux/scc.h
+drwxr-xr-x root root 4096 ./usr/include/linux/sched
+-rw-r--r-- root root 4647 ./usr/include/linux/sched.h
+-rw-r--r-- root root 4480 ./usr/include/linux/sched/types.h
+-rw-r--r-- root root 6382 ./usr/include/linux/scif_ioctl.h
+-rw-r--r-- root root 2479 ./usr/include/linux/screen_info.h
+-rw-r--r-- root root 34783 ./usr/include/linux/sctp.h
+-rw-r--r-- root root 2839 ./usr/include/linux/sdla.h
+-rw-r--r-- root root 3235 ./usr/include/linux/seccomp.h
+-rw-r--r-- root root 2704 ./usr/include/linux/securebits.h
+-rw-r--r-- root root 3297 ./usr/include/linux/sed-opal.h
+-rw-r--r-- root root 589 ./usr/include/linux/seg6_genl.h
+-rw-r--r-- root root 1170 ./usr/include/linux/seg6.h
+-rw-r--r-- root root 423 ./usr/include/linux/seg6_hmac.h
+-rw-r--r-- root root 927 ./usr/include/linux/seg6_iptunnel.h
+-rw-r--r-- root root 2060 ./usr/include/linux/seg6_local.h
+-rw-r--r-- root root 1195 ./usr/include/linux/selinux_netlink.h
+-rw-r--r-- root root 3043 ./usr/include/linux/sem.h
+-rw-r--r-- root root 6436 ./usr/include/linux/serial_core.h
+-rw-r--r-- root root 3866 ./usr/include/linux/serial.h
+-rw-r--r-- root root 15496 ./usr/include/linux/serial_reg.h
+-rw-r--r-- root root 2063 ./usr/include/linux/serio.h
+-rw-r--r-- root root 3785 ./usr/include/linux/shm.h
+-rw-r--r-- root root 1233 ./usr/include/linux/signalfd.h
+-rw-r--r-- root root 388 ./usr/include/linux/signal.h
+-rw-r--r-- root root 2835 ./usr/include/linux/smc_diag.h
+-rw-r--r-- root root 780 ./usr/include/linux/smc.h
+-rw-r--r-- root root 1058 ./usr/include/linux/smiapp.h
+-rw-r--r-- root root 13014 ./usr/include/linux/snmp.h
+-rw-r--r-- root root 727 ./usr/include/linux/sock_diag.h
+-rw-r--r-- root root 819 ./usr/include/linux/socket.h
+-rw-r--r-- root root 6846 ./usr/include/linux/sockios.h
+-rw-r--r-- root root 2290 ./usr/include/linux/sonet.h
+-rw-r--r-- root root 5309 ./usr/include/linux/sonypi.h
+-rw-r--r-- root root 46038 ./usr/include/linux/soundcard.h
+-rw-r--r-- root root 1237 ./usr/include/linux/sound.h
+drwxr-xr-x root root 4096 ./usr/include/linux/spi
+-rw-r--r-- root root 5286 ./usr/include/linux/spi/spidev.h
+-rw-r--r-- root root 6100 ./usr/include/linux/stat.h
+-rw-r--r-- root root 131 ./usr/include/linux/stddef.h
+-rw-r--r-- root root 1275 ./usr/include/linux/stm.h
+-rw-r--r-- root root 238 ./usr/include/linux/string.h
+drwxr-xr-x root root 4096 ./usr/include/linux/sunrpc
+-rw-r--r-- root root 1144 ./usr/include/linux/sunrpc/debug.h
+-rw-r--r-- root root 1431 ./usr/include/linux/suspend_ioctls.h
+-rw-r--r-- root root 6711 ./usr/include/linux/swab.h
+-rw-r--r-- root root 4768 ./usr/include/linux/switchtec_ioctl.h
+-rw-r--r-- root root 2883 ./usr/include/linux/sync_file.h
+-rw-r--r-- root root 8985 ./usr/include/linux/synclink.h
+-rw-r--r-- root root 25880 ./usr/include/linux/sysctl.h
+-rw-r--r-- root root 1049 ./usr/include/linux/sysinfo.h
+-rw-r--r-- root root 3899 ./usr/include/linux/target_core_user.h
+-rw-r--r-- root root 7152 ./usr/include/linux/taskstats.h
+drwxr-xr-x root root 4096 ./usr/include/linux/tc_act
+-rw-r--r-- root root 764 ./usr/include/linux/tc_act/tc_bpf.h
+-rw-r--r-- root root 390 ./usr/include/linux/tc_act/tc_connmark.h
+-rw-r--r-- root root 644 ./usr/include/linux/tc_act/tc_csum.h
+-rw-r--r-- root root 934 ./usr/include/linux/tc_act/tc_ct.h
+-rw-r--r-- root root 556 ./usr/include/linux/tc_act/tc_ctinfo.h
+-rw-r--r-- root root 322 ./usr/include/linux/tc_act/tc_defact.h
+-rw-r--r-- root root 626 ./usr/include/linux/tc_act/tc_gact.h
+-rw-r--r-- root root 600 ./usr/include/linux/tc_act/tc_ife.h
+-rw-r--r-- root root 415 ./usr/include/linux/tc_act/tc_ipt.h
+-rw-r--r-- root root 728 ./usr/include/linux/tc_act/tc_mirred.h
+-rw-r--r-- root root 992 ./usr/include/linux/tc_act/tc_mpls.h
+-rw-r--r-- root root 424 ./usr/include/linux/tc_act/tc_nat.h
+-rw-r--r-- root root 1527 ./usr/include/linux/tc_act/tc_pedit.h
+-rw-r--r-- root root 456 ./usr/include/linux/tc_act/tc_sample.h
+-rw-r--r-- root root 1443 ./usr/include/linux/tc_act/tc_skbedit.h
+-rw-r--r-- root root 815 ./usr/include/linux/tc_act/tc_skbmod.h
+-rw-r--r-- root root 1898 ./usr/include/linux/tc_act/tc_tunnel_key.h
+-rw-r--r-- root root 816 ./usr/include/linux/tc_act/tc_vlan.h
+drwxr-xr-x root root 4096 ./usr/include/linux/tc_ematch
+-rw-r--r-- root root 414 ./usr/include/linux/tc_ematch/tc_em_cmp.h
+-rw-r--r-- root root 391 ./usr/include/linux/tc_ematch/tc_em_ipt.h
+-rw-r--r-- root root 2116 ./usr/include/linux/tc_ematch/tc_em_meta.h
+-rw-r--r-- root root 255 ./usr/include/linux/tc_ematch/tc_em_nbyte.h
+-rw-r--r-- root root 384 ./usr/include/linux/tc_ematch/tc_em_text.h
+-rw-r--r-- root root 10857 ./usr/include/linux/tcp.h
+-rw-r--r-- root root 1549 ./usr/include/linux/tcp_metrics.h
+-rw-r--r-- root root 12581 ./usr/include/linux/tee.h
+-rw-r--r-- root root 506 ./usr/include/linux/termios.h
+-rw-r--r-- root root 924 ./usr/include/linux/thermal.h
+-rw-r--r-- root root 1748 ./usr/include/linux/time.h
+-rw-r--r-- root root 936 ./usr/include/linux/timerfd.h
+-rw-r--r-- root root 278 ./usr/include/linux/times.h
+-rw-r--r-- root root 996 ./usr/include/linux/time_types.h
+-rw-r--r-- root root 7817 ./usr/include/linux/timex.h
+-rw-r--r-- root root 1729 ./usr/include/linux/tiocl.h
+-rw-r--r-- root root 14848 ./usr/include/linux/tipc_config.h
+-rw-r--r-- root root 8272 ./usr/include/linux/tipc.h
+-rw-r--r-- root root 9156 ./usr/include/linux/tipc_netlink.h
+-rw-r--r-- root root 468 ./usr/include/linux/tipc_sockets_diag.h
+-rw-r--r-- root root 4288 ./usr/include/linux/tls.h
+-rw-r--r-- root root 1930 ./usr/include/linux/toshiba.h
+-rw-r--r-- root root 4527 ./usr/include/linux/tty_flags.h
+-rw-r--r-- root root 1585 ./usr/include/linux/tty.h
+-rw-r--r-- root root 1476 ./usr/include/linux/types.h
+-rw-r--r-- root root 697 ./usr/include/linux/udf_fs_i.h
+-rw-r--r-- root root 643 ./usr/include/linux/udmabuf.h
+-rw-r--r-- root root 1613 ./usr/include/linux/udp.h
+-rw-r--r-- root root 4648 ./usr/include/linux/uhid.h
+-rw-r--r-- root root 9261 ./usr/include/linux/uinput.h
+-rw-r--r-- root root 732 ./usr/include/linux/uio.h
+-rw-r--r-- root root 798 ./usr/include/linux/uleds.h
+-rw-r--r-- root root 4562 ./usr/include/linux/ultrasound.h
+-rw-r--r-- root root 384 ./usr/include/linux/un.h
+-rw-r--r-- root root 220 ./usr/include/linux/unistd.h
+-rw-r--r-- root root 1328 ./usr/include/linux/unix_diag.h
+drwxr-xr-x root root 4096 ./usr/include/linux/usb
+-rw-r--r-- root root 19490 ./usr/include/linux/usb/audio.h
+-rw-r--r-- root root 12962 ./usr/include/linux/usb/cdc.h
+-rw-r--r-- root root 739 ./usr/include/linux/usb/cdc-wdm.h
+-rw-r--r-- root root 9149 ./usr/include/linux/usb/ch11.h
+-rw-r--r-- root root 38850 ./usr/include/linux/usb/ch9.h
+-rw-r--r-- root root 566 ./usr/include/linux/usb/charger.h
+-rw-r--r-- root root 8317 ./usr/include/linux/usbdevice_fs.h
+-rw-r--r-- root root 10370 ./usr/include/linux/usb/functionfs.h
+-rw-r--r-- root root 2818 ./usr/include/linux/usb/gadgetfs.h
+-rw-r--r-- root root 1385 ./usr/include/linux/usb/g_printer.h
+-rw-r--r-- root root 1097 ./usr/include/linux/usb/g_uvc.h
+-rw-r--r-- root root 640 ./usr/include/linux/usbip.h
+-rw-r--r-- root root 3434 ./usr/include/linux/usb/midi.h
+-rw-r--r-- root root 4713 ./usr/include/linux/usb/tmc.h
+-rw-r--r-- root root 16360 ./usr/include/linux/usb/video.h
+-rw-r--r-- root root 6811 ./usr/include/linux/userfaultfd.h
+-rw-r--r-- root root 1516 ./usr/include/linux/userio.h
+-rw-r--r-- root root 215 ./usr/include/linux/utime.h
+-rw-r--r-- root root 669 ./usr/include/linux/utsname.h
+-rw-r--r-- root root 1356 ./usr/include/linux/uuid.h
+-rw-r--r-- root root 2590 ./usr/include/linux/uvcvideo.h
+-rw-r--r-- root root 4177 ./usr/include/linux/v4l2-common.h
+-rw-r--r-- root root 52061 ./usr/include/linux/v4l2-controls.h
+-rw-r--r-- root root 31562 ./usr/include/linux/v4l2-dv-timings.h
+-rw-r--r-- root root 5101 ./usr/include/linux/v4l2-mediabus.h
+-rw-r--r-- root root 6339 ./usr/include/linux/v4l2-subdev.h
+-rw-r--r-- root root 7257 ./usr/include/linux/vbox_err.h
+-rw-r--r-- root root 8755 ./usr/include/linux/vboxguest.h
+-rw-r--r-- root root 11509 ./usr/include/linux/vbox_vmmdev_types.h
+-rw-r--r-- root root 97 ./usr/include/linux/version.h
+-rw-r--r-- root root 224 ./usr/include/linux/veth.h
+-rw-r--r-- root root 836 ./usr/include/linux/vfio_ccw.h
+-rw-r--r-- root root 33767 ./usr/include/linux/vfio.h
+-rw-r--r-- root root 5069 ./usr/include/linux/vhost.h
+-rw-r--r-- root root 3164 ./usr/include/linux/vhost_types.h
+-rw-r--r-- root root 91377 ./usr/include/linux/videodev2.h
+-rw-r--r-- root root 2041 ./usr/include/linux/virtio_9p.h
+-rw-r--r-- root root 5036 ./usr/include/linux/virtio_balloon.h
+-rw-r--r-- root root 6797 ./usr/include/linux/virtio_blk.h
+-rw-r--r-- root root 3836 ./usr/include/linux/virtio_config.h
+-rw-r--r-- root root 3136 ./usr/include/linux/virtio_console.h
+-rw-r--r-- root root 13874 ./usr/include/linux/virtio_crypto.h
+-rw-r--r-- root root 490 ./usr/include/linux/virtio_fs.h
+-rw-r--r-- root root 8540 ./usr/include/linux/virtio_gpu.h
+-rw-r--r-- root root 2592 ./usr/include/linux/virtio_ids.h
+-rw-r--r-- root root 2506 ./usr/include/linux/virtio_input.h
+-rw-r--r-- root root 3783 ./usr/include/linux/virtio_iommu.h
+-rw-r--r-- root root 4586 ./usr/include/linux/virtio_mmio.h
+-rw-r--r-- root root 10549 ./usr/include/linux/virtio_net.h
+-rw-r--r-- root root 7079 ./usr/include/linux/virtio_pci.h
+-rw-r--r-- root root 639 ./usr/include/linux/virtio_pmem.h
+-rw-r--r-- root root 7430 ./usr/include/linux/virtio_ring.h
+-rw-r--r-- root root 265 ./usr/include/linux/virtio_rng.h
+-rw-r--r-- root root 6035 ./usr/include/linux/virtio_scsi.h
+-rw-r--r-- root root 2153 ./usr/include/linux/virtio_types.h
+-rw-r--r-- root root 3086 ./usr/include/linux/virtio_vsock.h
+-rw-r--r-- root root 455 ./usr/include/linux/vmcore.h
+-rw-r--r-- root root 963 ./usr/include/linux/vm_sockets_diag.h
+-rw-r--r-- root root 5314 ./usr/include/linux/vm_sockets.h
+-rw-r--r-- root root 1885 ./usr/include/linux/vsockmon.h
+-rw-r--r-- root root 3059 ./usr/include/linux/vt.h
+-rw-r--r-- root root 1719 ./usr/include/linux/vtpm_proxy.h
+-rw-r--r-- root root 682 ./usr/include/linux/wait.h
+-rw-r--r-- root root 2335 ./usr/include/linux/watchdog.h
+drwxr-xr-x root root 4096 ./usr/include/linux/wimax
+-rw-r--r-- root root 8371 ./usr/include/linux/wimax.h
+-rw-r--r-- root root 15930 ./usr/include/linux/wimax/i2400m.h
+-rw-r--r-- root root 42713 ./usr/include/linux/wireless.h
+-rw-r--r-- root root 1761 ./usr/include/linux/wmi.h
+-rw-r--r-- root root 3562 ./usr/include/linux/x25.h
+-rw-r--r-- root root 2860 ./usr/include/linux/xattr.h
+-rw-r--r-- root root 1259 ./usr/include/linux/xdp_diag.h
+-rw-r--r-- root root 11737 ./usr/include/linux/xfrm.h
+-rw-r--r-- root root 2976 ./usr/include/linux/xilinx-v4l2-controls.h
+-rw-r--r-- root root 3296 ./usr/include/linux/zorro.h
+-rw-r--r-- root root 29963 ./usr/include/linux/zorro_ids.h
+-rw-r--r-- root root 7675 ./usr/include/locale.h
+drwxr-xr-x root root 4096 ./usr/include/lzma
+-rw-r--r-- root root 24858 ./usr/include/lzma/base.h
+-rw-r--r-- root root 2630 ./usr/include/lzma/bcj.h
+-rw-r--r-- root root 22107 ./usr/include/lzma/block.h
+-rw-r--r-- root root 4255 ./usr/include/lzma/check.h
+-rw-r--r-- root root 24844 ./usr/include/lzma/container.h
+-rw-r--r-- root root 1865 ./usr/include/lzma/delta.h
+-rw-r--r-- root root 16520 ./usr/include/lzma/filter.h
+-rw-r--r-- root root 9866 ./usr/include/lzma.h
+-rw-r--r-- root root 2604 ./usr/include/lzma/hardware.h
+-rw-r--r-- root root 23491 ./usr/include/lzma/index.h
+-rw-r--r-- root root 3914 ./usr/include/lzma/index_hash.h
+-rw-r--r-- root root 14744 ./usr/include/lzma/lzma12.h
+-rw-r--r-- root root 8253 ./usr/include/lzma/stream_flags.h
+-rw-r--r-- root root 3497 ./usr/include/lzma/version.h
+-rw-r--r-- root root 6546 ./usr/include/lzma/vli.h
+drwxr-xr-x root root 4096 ./usr/include/lzo
+-rw-r--r-- root root 2638 ./usr/include/lzo/lzo1a.h
+-rw-r--r-- root root 5387 ./usr/include/lzo/lzo1b.h
+-rw-r--r-- root root 5384 ./usr/include/lzo/lzo1c.h
+-rw-r--r-- root root 3073 ./usr/include/lzo/lzo1f.h
+-rw-r--r-- root root 2634 ./usr/include/lzo/lzo1.h
+-rw-r--r-- root root 5873 ./usr/include/lzo/lzo1x.h
+-rw-r--r-- root root 4641 ./usr/include/lzo/lzo1y.h
+-rw-r--r-- root root 3771 ./usr/include/lzo/lzo1z.h
+-rw-r--r-- root root 2525 ./usr/include/lzo/lzo2a.h
+-rw-r--r-- root root 5566 ./usr/include/lzo/lzo_asm.h
+-rw-r--r-- root root 16006 ./usr/include/lzo/lzoconf.h
+-rw-r--r-- root root 127289 ./usr/include/lzo/lzodefs.h
+-rw-r--r-- root root 1823 ./usr/include/lzo/lzoutil.h
+-rw-r--r-- root root 6186 ./usr/include/malloc.h
+-rw-r--r-- root root 46404 ./usr/include/math.h
+-rw-r--r-- root root 2435 ./usr/include/mcheck.h
+-rw-r--r-- root root 956 ./usr/include/memory.h
+-rw-r--r-- root root 12275 ./usr/include/menu.h
+drwxr-xr-x root root 4096 ./usr/include/misc
+-rw-r--r-- root root 3936 ./usr/include/misc/cxl.h
+-rw-r--r-- root root 953 ./usr/include/misc/fastrpc.h
+-rw-r--r-- root root 19004 ./usr/include/misc/habanalabs.h
+-rw-r--r-- root root 1947 ./usr/include/misc/ocxl.h
+-rw-r--r-- root root 12341 ./usr/include/misc/xilinx_sdfec.h
+-rw-r--r-- root root 3359 ./usr/include/mntent.h
+-rw-r--r-- root root 1804 ./usr/include/monetary.h
+-rw-r--r-- root root 3760 ./usr/include/mqueue.h
+drwxr-xr-x root root 4096 ./usr/include/mtd
+-rw-r--r-- root root 1644 ./usr/include/mtd/inftl-user.h
+-rw-r--r-- root root 9732 ./usr/include/mtd/mtd-abi.h
+-rw-r--r-- root root 1242 ./usr/include/mtd/mtd-user.h
+-rw-r--r-- root root 2116 ./usr/include/mtd/nftl-user.h
+-rw-r--r-- root root 18220 ./usr/include/mtd/ubi-user.h
+-rw-r--r-- root root 4240 ./usr/include/nc_tparm.h
+-rw-r--r-- root root 4522 ./usr/include/ncurses_dll.h
+lrwxrwxrwx root root 8 ./usr/include/ncurses.h -> curses.h
+-rw-r--r-- root root 2454 ./usr/include/ndbm.h
+drwxr-xr-x root root 4096 ./usr/include/net
+drwxr-xr-x root root 4096 ./usr/include/netash
+-rw-r--r-- root root 1363 ./usr/include/netash/ash.h
+drwxr-xr-x root root 4096 ./usr/include/netatalk
+-rw-r--r-- root root 1029 ./usr/include/netatalk/at.h
+drwxr-xr-x root root 4096 ./usr/include/netax25
+-rw-r--r-- root root 4810 ./usr/include/netax25/ax25.h
+-rw-r--r-- root root 28100 ./usr/include/netdb.h
+drwxr-xr-x root root 4096 ./usr/include/neteconet
+-rw-r--r-- root root 1668 ./usr/include/neteconet/ec.h
+-rw-r--r-- root root 3136 ./usr/include/net/ethernet.h
+-rw-r--r-- root root 7132 ./usr/include/net/if_arp.h
+-rw-r--r-- root root 6982 ./usr/include/net/if.h
+-rw-r--r-- root root 1262 ./usr/include/net/if_packet.h
+-rw-r--r-- root root 6714 ./usr/include/net/if_ppp.h
+-rw-r--r-- root root 1625 ./usr/include/net/if_shaper.h
+-rw-r--r-- root root 933 ./usr/include/net/if_slip.h
+drwxr-xr-x root root 4096 ./usr/include/netinet
+-rw-r--r-- root root 1985 ./usr/include/netinet/ether.h
+-rw-r--r-- root root 11515 ./usr/include/netinet/icmp6.h
+-rw-r--r-- root root 3976 ./usr/include/netinet/if_ether.h
+-rw-r--r-- root root 1186 ./usr/include/netinet/if_fddi.h
+-rw-r--r-- root root 3692 ./usr/include/netinet/if_tr.h
+-rw-r--r-- root root 4663 ./usr/include/netinet/igmp.h
+-rw-r--r-- root root 21702 ./usr/include/netinet/in.h
+-rw-r--r-- root root 1494 ./usr/include/netinet/in_systm.h
+-rw-r--r-- root root 5394 ./usr/include/netinet/ip6.h
+-rw-r--r-- root root 9436 ./usr/include/netinet/ip.h
+-rw-r--r-- root root 10131 ./usr/include/netinet/ip_icmp.h
+-rw-r--r-- root root 10490 ./usr/include/netinet/tcp.h
+-rw-r--r-- root root 3774 ./usr/include/netinet/udp.h
+drwxr-xr-x root root 4096 ./usr/include/netipx
+-rw-r--r-- root root 2900 ./usr/include/netipx/ipx.h
+drwxr-xr-x root root 4096 ./usr/include/netiucv
+-rw-r--r-- root root 1594 ./usr/include/netiucv/iucv.h
+drwxr-xr-x root root 4096 ./usr/include/netpacket
+-rw-r--r-- root root 2438 ./usr/include/netpacket/packet.h
+-rw-r--r-- root root 28 ./usr/include/net/ppp-comp.h
+-rw-r--r-- root root 162 ./usr/include/net/ppp_defs.h
+drwxr-xr-x root root 4096 ./usr/include/netrom
+-rw-r--r-- root root 2226 ./usr/include/netrom/netrom.h
+drwxr-xr-x root root 4096 ./usr/include/netrose
+-rw-r--r-- root root 3184 ./usr/include/netrose/rose.h
+-rw-r--r-- root root 4704 ./usr/include/net/route.h
+drwxr-xr-x root root 4096 ./usr/include/nfs
+-rw-r--r-- root root 23 ./usr/include/nfs/nfs.h
+-rw-r--r-- root root 1601 ./usr/include/nlist.h
+-rw-r--r-- root root 1753 ./usr/include/nl_types.h
+-rw-r--r-- root root 1879 ./usr/include/nss.h
+-rw-r--r-- root root 21307 ./usr/include/obstack.h
+drwxr-xr-x root root 4096 ./usr/include/omap
+-rw-r--r-- root root 4843 ./usr/include/omap/omap_drm.h
+drwxr-xr-x root root 4096 ./usr/include/openssl
+-rw-r--r-- root root 3349 ./usr/include/openssl/aes.h
+-rw-r--r-- root root 14599 ./usr/include/openssl/asn1err.h
+-rw-r--r-- root root 33627 ./usr/include/openssl/asn1.h
+-rw-r--r-- root root 395 ./usr/include/openssl/asn1_mac.h
+-rw-r--r-- root root 32940 ./usr/include/openssl/asn1t.h
+-rw-r--r-- root root 1326 ./usr/include/openssl/asyncerr.h
+-rw-r--r-- root root 2398 ./usr/include/openssl/async.h
+-rw-r--r-- root root 6400 ./usr/include/openssl/bioerr.h
+-rw-r--r-- root root 34907 ./usr/include/openssl/bio.h
+-rw-r--r-- root root 1847 ./usr/include/openssl/blowfish.h
+-rw-r--r-- root root 4907 ./usr/include/openssl/bnerr.h
+-rw-r--r-- root root 22135 ./usr/include/openssl/bn.h
+-rw-r--r-- root root 820 ./usr/include/openssl/buffererr.h
+-rw-r--r-- root root 1600 ./usr/include/openssl/buffer.h
+-rw-r--r-- root root 3179 ./usr/include/openssl/camellia.h
+-rw-r--r-- root root 1674 ./usr/include/openssl/cast.h
+-rw-r--r-- root root 1064 ./usr/include/openssl/cmac.h
+-rw-r--r-- root root 11160 ./usr/include/openssl/cmserr.h
+-rw-r--r-- root root 16379 ./usr/include/openssl/cms.h
+-rw-r--r-- root root 1212 ./usr/include/openssl/comperr.h
+-rw-r--r-- root root 1328 ./usr/include/openssl/comp.h
+-rw-r--r-- root root 1300 ./usr/include/openssl/conf_api.h
+-rw-r--r-- root root 3429 ./usr/include/openssl/conferr.h
+-rw-r--r-- root root 5601 ./usr/include/openssl/conf.h
+-rw-r--r-- root root 2261 ./usr/include/openssl/cryptoerr.h
+-rw-r--r-- root root 17239 ./usr/include/openssl/crypto.h
+-rw-r--r-- root root 3470 ./usr/include/openssl/cterr.h
+-rw-r--r-- root root 15872 ./usr/include/openssl/ct.h
+-rw-r--r-- root root 7627 ./usr/include/openssl/des.h
+-rw-r--r-- root root 3974 ./usr/include/openssl/dherr.h
+-rw-r--r-- root root 13403 ./usr/include/openssl/dh.h
+-rw-r--r-- root root 2972 ./usr/include/openssl/dsaerr.h
+-rw-r--r-- root root 10051 ./usr/include/openssl/dsa.h
+-rw-r--r-- root root 1578 ./usr/include/openssl/dtls1.h
+-rw-r--r-- root root 924 ./usr/include/openssl/ebcdic.h
+-rw-r--r-- root root 358 ./usr/include/openssl/ecdh.h
+-rw-r--r-- root root 358 ./usr/include/openssl/ecdsa.h
+-rw-r--r-- root root 15758 ./usr/include/openssl/ecerr.h
+-rw-r--r-- root root 63596 ./usr/include/openssl/ec.h
+-rw-r--r-- root root 5447 ./usr/include/openssl/engineerr.h
+-rw-r--r-- root root 34661 ./usr/include/openssl/engine.h
+-rw-r--r-- root root 8888 ./usr/include/openssl/e_os2.h
+-rw-r--r-- root root 11269 ./usr/include/openssl/err.h
+-rw-r--r-- root root 11427 ./usr/include/openssl/evperr.h
+-rw-r--r-- root root 76828 ./usr/include/openssl/evp.h
+-rw-r--r-- root root 1591 ./usr/include/openssl/hmac.h
+-rw-r--r-- root root 2099 ./usr/include/openssl/idea.h
+-rw-r--r-- root root 2122 ./usr/include/openssl/kdferr.h
+-rw-r--r-- root root 4326 ./usr/include/openssl/kdf.h
+-rw-r--r-- root root 9271 ./usr/include/openssl/lhash.h
+-rw-r--r-- root root 1054 ./usr/include/openssl/md2.h
+-rw-r--r-- root root 1322 ./usr/include/openssl/md4.h
+-rw-r--r-- root root 1320 ./usr/include/openssl/md5.h
+-rw-r--r-- root root 1053 ./usr/include/openssl/mdc2.h
+-rw-r--r-- root root 10478 ./usr/include/openssl/modes.h
+-rw-r--r-- root root 1316 ./usr/include/openssl/objectserr.h
+-rw-r--r-- root root 6633 ./usr/include/openssl/objects.h
+-rw-r--r-- root root 217522 ./usr/include/openssl/obj_mac.h
+-rw-r--r-- root root 3356 ./usr/include/openssl/ocsperr.h
+-rw-r--r-- root root 15305 ./usr/include/openssl/ocsp.h
+-rw-r--r-- root root 4520 ./usr/include/openssl/opensslconf-64.h
+-rw-r--r-- root root 564 ./usr/include/openssl/opensslconf.h
+-rw-r--r-- root root 4102 ./usr/include/openssl/opensslv.h
+-rw-r--r-- root root 6266 ./usr/include/openssl/ossl_typ.h
+-rw-r--r-- root root 415 ./usr/include/openssl/pem2.h
+-rw-r--r-- root root 5098 ./usr/include/openssl/pemerr.h
+-rw-r--r-- root root 15468 ./usr/include/openssl/pem.h
+-rw-r--r-- root root 3749 ./usr/include/openssl/pkcs12err.h
+-rw-r--r-- root root 9871 ./usr/include/openssl/pkcs12.h
+-rw-r--r-- root root 5110 ./usr/include/openssl/pkcs7err.h
+-rw-r--r-- root root 11590 ./usr/include/openssl/pkcs7.h
+-rw-r--r-- root root 4763 ./usr/include/openssl/rand_drbg.h
+-rw-r--r-- root root 4633 ./usr/include/openssl/randerr.h
+-rw-r--r-- root root 2213 ./usr/include/openssl/rand.h
+-rw-r--r-- root root 1534 ./usr/include/openssl/rc2.h
+-rw-r--r-- root root 825 ./usr/include/openssl/rc4.h
+-rw-r--r-- root root 1988 ./usr/include/openssl/rc5.h
+-rw-r--r-- root root 1243 ./usr/include/openssl/ripemd.h
+-rw-r--r-- root root 9075 ./usr/include/openssl/rsaerr.h
+-rw-r--r-- root root 22202 ./usr/include/openssl/rsa.h
+-rw-r--r-- root root 8139 ./usr/include/openssl/safestack.h
+-rw-r--r-- root root 3479 ./usr/include/openssl/seed.h
+-rw-r--r-- root root 3831 ./usr/include/openssl/sha.h
+-rw-r--r-- root root 3827 ./usr/include/openssl/srp.h
+-rw-r--r-- root root 1316 ./usr/include/openssl/srtp.h
+-rw-r--r-- root root 542 ./usr/include/openssl/ssl2.h
+-rw-r--r-- root root 14576 ./usr/include/openssl/ssl3.h
+-rw-r--r-- root root 46676 ./usr/include/openssl/sslerr.h
+-rw-r--r-- root root 111253 ./usr/include/openssl/ssl.h
+-rw-r--r-- root root 3095 ./usr/include/openssl/stack.h
+-rw-r--r-- root root 4399 ./usr/include/openssl/storeerr.h
+-rw-r--r-- root root 11199 ./usr/include/openssl/store.h
+-rw-r--r-- root root 1311 ./usr/include/openssl/symhacks.h
+-rw-r--r-- root root 72490 ./usr/include/openssl/tls1.h
+-rw-r--r-- root root 6746 ./usr/include/openssl/tserr.h
+-rw-r--r-- root root 22429 ./usr/include/openssl/ts.h
+-rw-r--r-- root root 1666 ./usr/include/openssl/txt_db.h
+-rw-r--r-- root root 2737 ./usr/include/openssl/uierr.h
+-rw-r--r-- root root 16052 ./usr/include/openssl/ui.h
+-rw-r--r-- root root 1377 ./usr/include/openssl/whrlpool.h
+-rw-r--r-- root root 6777 ./usr/include/openssl/x509err.h
+-rw-r--r-- root root 43123 ./usr/include/openssl/x509.h
+-rw-r--r-- root root 8777 ./usr/include/openssl/x509v3err.h
+-rw-r--r-- root root 33377 ./usr/include/openssl/x509v3.h
+-rw-r--r-- root root 32179 ./usr/include/openssl/x509_vfy.h
+-rw-r--r-- root root 4201 ./usr/include/panel.h
+-rw-r--r-- root root 2977 ./usr/include/paths.h
+-rw-r--r-- root root 15456 ./usr/include/pciaccess.h
+-rw-r--r-- root root 6783 ./usr/include/pcrecpparg.h
+-rw-r--r-- root root 26529 ./usr/include/pcrecpp.h
+-rw-r--r-- root root 31718 ./usr/include/pcre.h
+-rw-r--r-- root root 5631 ./usr/include/pcreposix.h
+-rw-r--r-- root root 6600 ./usr/include/pcre_scanner.h
+-rw-r--r-- root root 6312 ./usr/include/pcre_stringpiece.h
+drwxr-xr-x root root 4096 ./usr/include/pixman-1
+-rw-r--r-- root root 45455 ./usr/include/pixman-1/pixman.h
+-rw-r--r-- root root 1739 ./usr/include/pixman-1/pixman-version.h
+-rw-r--r-- root root 15029 ./usr/include/plugin-api.h
+lrwxrwxrwx root root 18 ./usr/include/pngconf.h -> libpng16/pngconf.h
+lrwxrwxrwx root root 14 ./usr/include/png.h -> libpng16/png.h
+lrwxrwxrwx root root 21 ./usr/include/pnglibconf.h -> libpng16/pnglibconf.h
+-rw-r--r-- root root 22 ./usr/include/poll.h
+-rw-r--r-- root root 6801 ./usr/include/printf.h
+drwxr-xr-x root root 4096 ./usr/include/proc
+-rw-r--r-- root root 509 ./usr/include/proc/alloc.h
+-rw-r--r-- root root 457 ./usr/include/proc/devname.h
+-rw-r--r-- root root 913 ./usr/include/proc/escape.h
+-rw-r--r-- root root 1068 ./usr/include/proc/numa.h
+-rw-r--r-- root root 2936 ./usr/include/proc/procps.h
+-rw-r--r-- root root 305 ./usr/include/proc/pwcache.h
+-rw-r--r-- root root 15204 ./usr/include/proc/readproc.h
+-rw-r--r-- root root 3477 ./usr/include/proc_service.h
+-rw-r--r-- root root 1000 ./usr/include/proc/sig.h
+-rw-r--r-- root root 1797 ./usr/include/proc/slab.h
+-rw-r--r-- root root 4820 ./usr/include/proc/sysinfo.h
+-rw-r--r-- root root 1480 ./usr/include/proc/version.h
+-rw-r--r-- root root 160 ./usr/include/proc/wchan.h
+-rw-r--r-- root root 202 ./usr/include/proc/whattime.h
+drwxr-xr-x root root 4096 ./usr/include/protocols
+-rw-r--r-- root root 3844 ./usr/include/protocols/routed.h
+-rw-r--r-- root root 2567 ./usr/include/protocols/rwhod.h
+-rw-r--r-- root root 4826 ./usr/include/protocols/talkd.h
+-rw-r--r-- root root 3881 ./usr/include/protocols/timed.h
+-rw-r--r-- root root 41701 ./usr/include/pthread.h
+-rw-r--r-- root root 1570 ./usr/include/pty.h
+-rw-r--r-- root root 6159 ./usr/include/pwd.h
+drwxr-xr-x root root 4096 ./usr/include/pycairo
+-rw-r--r-- root root 9152 ./usr/include/pycairo/py3cairo.h
+drwxr-xr-x root root 4096 ./usr/include/pygobject-3.0
+-rw-r--r-- root root 24983 ./usr/include/pygobject-3.0/pygobject.h
+drwxr-xr-x root root 4096 ./usr/include/python3.8
+-rw-r--r-- root root 30286 ./usr/include/python3.8/abstract.h
+-rw-r--r-- root root 1229 ./usr/include/python3.8/asdl.h
+-rw-r--r-- root root 948 ./usr/include/python3.8/ast.h
+-rw-r--r-- root root 468 ./usr/include/python3.8/bitset.h
+-rw-r--r-- root root 264 ./usr/include/python3.8/bltinmodule.h
+-rw-r--r-- root root 886 ./usr/include/python3.8/boolobject.h
+-rw-r--r-- root root 2114 ./usr/include/python3.8/bytearrayobject.h
+-rw-r--r-- root root 3301 ./usr/include/python3.8/bytes_methods.h
+-rw-r--r-- root root 8493 ./usr/include/python3.8/bytesobject.h
+-rw-r--r-- root root 713 ./usr/include/python3.8/cellobject.h
+-rw-r--r-- root root 8366 ./usr/include/python3.8/ceval.h
+-rw-r--r-- root root 1710 ./usr/include/python3.8/classobject.h
+-rw-r--r-- root root 6793 ./usr/include/python3.8/codecs.h
+-rw-r--r-- root root 6982 ./usr/include/python3.8/code.h
+-rw-r--r-- root root 3256 ./usr/include/python3.8/compile.h
+-rw-r--r-- root root 1807 ./usr/include/python3.8/complexobject.h
+-rw-r--r-- root root 2014 ./usr/include/python3.8/context.h
+drwxr-xr-x root root 4096 ./usr/include/python3.8/cpython
+-rw-r--r-- root root 12295 ./usr/include/python3.8/cpython/abstract.h
+-rw-r--r-- root root 3845 ./usr/include/python3.8/cpython/dictobject.h
+-rw-r--r-- root root 951 ./usr/include/python3.8/cpython/fileobject.h
+-rw-r--r-- root root 16028 ./usr/include/python3.8/cpython/initconfig.h
+-rw-r--r-- root root 456 ./usr/include/python3.8/cpython/interpreteridobject.h
+-rw-r--r-- root root 15691 ./usr/include/python3.8/cpython/object.h
+-rw-r--r-- root root 3600 ./usr/include/python3.8/cpython/objimpl.h
+-rw-r--r-- root root 4607 ./usr/include/python3.8/cpython/pyerrors.h
+-rw-r--r-- root root 2263 ./usr/include/python3.8/cpython/pylifecycle.h
+-rw-r--r-- root root 3511 ./usr/include/python3.8/cpython/pymem.h
+-rw-r--r-- root root 9743 ./usr/include/python3.8/cpython/pystate.h
+-rw-r--r-- root root 547 ./usr/include/python3.8/cpython/sysmodule.h
+-rw-r--r-- root root 473 ./usr/include/python3.8/cpython/traceback.h
+-rw-r--r-- root root 1036 ./usr/include/python3.8/cpython/tupleobject.h
+-rw-r--r-- root root 46299 ./usr/include/python3.8/cpython/unicodeobject.h
+-rw-r--r-- root root 9260 ./usr/include/python3.8/datetime.h
+-rw-r--r-- root root 3019 ./usr/include/python3.8/descrobject.h
+-rw-r--r-- root root 3716 ./usr/include/python3.8/dictobject.h
+-rw-r--r-- root root 458 ./usr/include/python3.8/dtoa.h
+-rw-r--r-- root root 22469 ./usr/include/python3.8/dynamic_annotations.h
+-rw-r--r-- root root 253 ./usr/include/python3.8/enumobject.h
+-rw-r--r-- root root 1695 ./usr/include/python3.8/errcode.h
+-rw-r--r-- root root 1209 ./usr/include/python3.8/eval.h
+-rw-r--r-- root root 1342 ./usr/include/python3.8/fileobject.h
+-rw-r--r-- root root 4352 ./usr/include/python3.8/fileutils.h
+-rw-r--r-- root root 4794 ./usr/include/python3.8/floatobject.h
+-rw-r--r-- root root 3317 ./usr/include/python3.8/frameobject.h
+-rw-r--r-- root root 4200 ./usr/include/python3.8/funcobject.h
+-rw-r--r-- root root 3720 ./usr/include/python3.8/genobject.h
+-rw-r--r-- root root 2118 ./usr/include/python3.8/graminit.h
+-rw-r--r-- root root 1821 ./usr/include/python3.8/grammar.h
+-rw-r--r-- root root 4926 ./usr/include/python3.8/import.h
+drwxr-xr-x root root 4096 ./usr/include/python3.8/internal
+-rw-r--r-- root root 1126 ./usr/include/python3.8/internal/pycore_accu.h
+-rw-r--r-- root root 16944 ./usr/include/python3.8/internal/pycore_atomic.h
+-rw-r--r-- root root 966 ./usr/include/python3.8/internal/pycore_ceval.h
+-rw-r--r-- root root 542 ./usr/include/python3.8/internal/pycore_code.h
+-rw-r--r-- root root 2809 ./usr/include/python3.8/internal/pycore_condvar.h
+-rw-r--r-- root root 779 ./usr/include/python3.8/internal/pycore_context.h
+-rw-r--r-- root root 1254 ./usr/include/python3.8/internal/pycore_fileutils.h
+-rw-r--r-- root root 490 ./usr/include/python3.8/internal/pycore_getopt.h
+-rw-r--r-- root root 1520 ./usr/include/python3.8/internal/pycore_gil.h
+-rw-r--r-- root root 3128 ./usr/include/python3.8/internal/pycore_hamt.h
+-rw-r--r-- root root 5168 ./usr/include/python3.8/internal/pycore_initconfig.h
+-rw-r--r-- root root 2896 ./usr/include/python3.8/internal/pycore_object.h
+-rw-r--r-- root root 2037 ./usr/include/python3.8/internal/pycore_pathconfig.h
+-rw-r--r-- root root 1329 ./usr/include/python3.8/internal/pycore_pyerrors.h
+-rw-r--r-- root root 206 ./usr/include/python3.8/internal/pycore_pyhash.h
+-rw-r--r-- root root 3758 ./usr/include/python3.8/internal/pycore_pylifecycle.h
+-rw-r--r-- root root 8217 ./usr/include/python3.8/internal/pycore_pymem.h
+-rw-r--r-- root root 9494 ./usr/include/python3.8/internal/pycore_pystate.h
+-rw-r--r-- root root 3076 ./usr/include/python3.8/internal/pycore_traceback.h
+-rw-r--r-- root root 418 ./usr/include/python3.8/internal/pycore_tupleobject.h
+-rw-r--r-- root root 591 ./usr/include/python3.8/internal/pycore_warnings.h
+-rw-r--r-- root root 334 ./usr/include/python3.8/interpreteridobject.h
+-rw-r--r-- root root 861 ./usr/include/python3.8/intrcheck.h
+-rw-r--r-- root root 567 ./usr/include/python3.8/iterobject.h
+-rw-r--r-- root root 2927 ./usr/include/python3.8/listobject.h
+-rw-r--r-- root root 3799 ./usr/include/python3.8/longintrepr.h
+-rw-r--r-- root root 9520 ./usr/include/python3.8/longobject.h
+-rw-r--r-- root root 803 ./usr/include/python3.8/marshal.h
+-rw-r--r-- root root 2765 ./usr/include/python3.8/memoryobject.h
+-rw-r--r-- root root 4406 ./usr/include/python3.8/methodobject.h
+-rw-r--r-- root root 9591 ./usr/include/python3.8/modsupport.h
+-rw-r--r-- root root 2362 ./usr/include/python3.8/moduleobject.h
+-rw-r--r-- root root 349 ./usr/include/python3.8/namespaceobject.h
+-rw-r--r-- root root 1328 ./usr/include/python3.8/node.h
+-rw-r--r-- root root 29600 ./usr/include/python3.8/object.h
+-rw-r--r-- root root 10537 ./usr/include/python3.8/objimpl.h
+-rw-r--r-- root root 1300 ./usr/include/python3.8/odictobject.h
+-rw-r--r-- root root 5164 ./usr/include/python3.8/opcode.h
+-rw-r--r-- root root 737 ./usr/include/python3.8/osdefs.h
+-rw-r--r-- root root 291 ./usr/include/python3.8/osmodule.h
+-rw-r--r-- root root 2958 ./usr/include/python3.8/parsetok.h
+-rw-r--r-- root root 1297 ./usr/include/python3.8/patchlevel.h
+-rw-r--r-- root root 847 ./usr/include/python3.8/picklebufobject.h
+-rw-r--r-- root root 2744 ./usr/include/python3.8/pyarena.h
+-rw-r--r-- root root 1726 ./usr/include/python3.8/pycapsule.h
+-rw-r--r-- root root 47363 ./usr/include/python3.8/pyconfig-64.h
+-rw-r--r-- root root 560 ./usr/include/python3.8/pyconfig.h
+-rw-r--r-- root root 1320 ./usr/include/python3.8/pyctype.h
+-rw-r--r-- root root 2477 ./usr/include/python3.8/py_curses.h
+-rw-r--r-- root root 1214 ./usr/include/python3.8/pydebug.h
+-rw-r--r-- root root 2413 ./usr/include/python3.8/pydtrace.h
+-rw-r--r-- root root 12786 ./usr/include/python3.8/pyerrors.h
+-rw-r--r-- root root 2450 ./usr/include/python3.8/pyexpat.h
+-rw-r--r-- root root 341 ./usr/include/python3.8/pyfpe.h
+-rw-r--r-- root root 4140 ./usr/include/python3.8/pyhash.h
+-rw-r--r-- root root 2081 ./usr/include/python3.8/pylifecycle.h
+-rw-r--r-- root root 2989 ./usr/include/python3.8/pymacconfig.h
+-rw-r--r-- root root 3778 ./usr/include/python3.8/pymacro.h
+-rw-r--r-- root root 8312 ./usr/include/python3.8/pymath.h
+-rw-r--r-- root root 5406 ./usr/include/python3.8/pymem.h
+-rw-r--r-- root root 30221 ./usr/include/python3.8/pyport.h
+-rw-r--r-- root root 4686 ./usr/include/python3.8/pystate.h
+-rw-r--r-- root root 436 ./usr/include/python3.8/pystrcmp.h
+-rw-r--r-- root root 849 ./usr/include/python3.8/pystrhex.h
+-rw-r--r-- root root 1483 ./usr/include/python3.8/pystrtod.h
+-rw-r--r-- root root 26491 ./usr/include/python3.8/Python-ast.h
+-rw-r--r-- root root 3615 ./usr/include/python3.8/Python.h
+-rw-r--r-- root root 7688 ./usr/include/python3.8/pythonrun.h
+-rw-r--r-- root root 5660 ./usr/include/python3.8/pythread.h
+-rw-r--r-- root root 8926 ./usr/include/python3.8/pytime.h
+-rw-r--r-- root root 629 ./usr/include/python3.8/rangeobject.h
+-rw-r--r-- root root 3362 ./usr/include/python3.8/setobject.h
+-rw-r--r-- root root 2517 ./usr/include/python3.8/sliceobject.h
+-rw-r--r-- root root 2030 ./usr/include/python3.8/structmember.h
+-rw-r--r-- root root 1377 ./usr/include/python3.8/structseq.h
+-rw-r--r-- root root 5308 ./usr/include/python3.8/symtable.h
+-rw-r--r-- root root 1242 ./usr/include/python3.8/sysmodule.h
+-rw-r--r-- root root 2429 ./usr/include/python3.8/token.h
+-rw-r--r-- root root 601 ./usr/include/python3.8/traceback.h
+-rw-r--r-- root root 1114 ./usr/include/python3.8/tracemalloc.h
+-rw-r--r-- root root 1661 ./usr/include/python3.8/tupleobject.h
+-rw-r--r-- root root 2253 ./usr/include/python3.8/typeslots.h
+-rw-r--r-- root root 1056 ./usr/include/python3.8/ucnhash.h
+-rw-r--r-- root root 35732 ./usr/include/python3.8/unicodeobject.h
+-rw-r--r-- root root 1776 ./usr/include/python3.8/warnings.h
+-rw-r--r-- root root 2866 ./usr/include/python3.8/weakrefobject.h
+drwxr-xr-x root root 4096 ./usr/include/rdma
+-rw-r--r-- root root 3291 ./usr/include/rdma/bnxt_re-abi.h
+-rw-r--r-- root root 2468 ./usr/include/rdma/cxgb3-abi.h
+-rw-r--r-- root root 3122 ./usr/include/rdma/cxgb4-abi.h
+-rw-r--r-- root root 2141 ./usr/include/rdma/efa-abi.h
+drwxr-xr-x root root 4096 ./usr/include/rdma/hfi
+-rw-r--r-- root root 6618 ./usr/include/rdma/hfi/hfi1_ioctl.h
+-rw-r--r-- root root 9225 ./usr/include/rdma/hfi/hfi1_user.h
+-rw-r--r-- root root 2388 ./usr/include/rdma/hns-abi.h
+-rw-r--r-- root root 3030 ./usr/include/rdma/i40iw-abi.h
+-rw-r--r-- root root 6046 ./usr/include/rdma/ib_user_ioctl_cmds.h
+-rw-r--r-- root root 5655 ./usr/include/rdma/ib_user_ioctl_verbs.h
+-rw-r--r-- root root 8531 ./usr/include/rdma/ib_user_mad.h
+-rw-r--r-- root root 2305 ./usr/include/rdma/ib_user_sa.h
+-rw-r--r-- root root 26750 ./usr/include/rdma/ib_user_verbs.h
+-rw-r--r-- root root 5117 ./usr/include/rdma/mlx4-abi.h
+-rw-r--r-- root root 12968 ./usr/include/rdma/mlx5-abi.h
+-rw-r--r-- root root 7368 ./usr/include/rdma/mlx5_user_ioctl_cmds.h
+-rw-r--r-- root root 2624 ./usr/include/rdma/mlx5_user_ioctl_verbs.h
+-rw-r--r-- root root 3055 ./usr/include/rdma/mthca-abi.h
+-rw-r--r-- root root 3487 ./usr/include/rdma/nes-abi.h
+-rw-r--r-- root root 4116 ./usr/include/rdma/ocrdma-abi.h
+-rw-r--r-- root root 3160 ./usr/include/rdma/qedr-abi.h
+-rw-r--r-- root root 14231 ./usr/include/rdma/rdma_netlink.h
+-rw-r--r-- root root 6903 ./usr/include/rdma/rdma_user_cm.h
+-rw-r--r-- root root 3008 ./usr/include/rdma/rdma_user_ioctl_cmds.h
+-rw-r--r-- root root 3749 ./usr/include/rdma/rdma_user_ioctl.h
+-rw-r--r-- root root 3839 ./usr/include/rdma/rdma_user_rxe.h
+-rw-r--r-- root root 1771 ./usr/include/rdma/rvt-abi.h
+-rw-r--r-- root root 3430 ./usr/include/rdma/siw-abi.h
+-rw-r--r-- root root 7807 ./usr/include/rdma/vmw_pvrdma-abi.h
+drwxr-xr-x root root 4096 ./usr/include/readline
+-rw-r--r-- root root 4697 ./usr/include/readline/chardefs.h
+-rw-r--r-- root root 10779 ./usr/include/readline/history.h
+-rw-r--r-- root root 3260 ./usr/include/readline/keymaps.h
+-rw-r--r-- root root 39338 ./usr/include/readline/readline.h
+-rw-r--r-- root root 2829 ./usr/include/readline/rlconf.h
+-rw-r--r-- root root 1835 ./usr/include/readline/rlstdc.h
+-rw-r--r-- root root 3193 ./usr/include/readline/rltypedefs.h
+-rw-r--r-- root root 3046 ./usr/include/readline/tilde.h
+-rw-r--r-- root root 963 ./usr/include/re_comp.h
+-rw-r--r-- root root 24715 ./usr/include/regex.h
+-rw-r--r-- root root 1448 ./usr/include/regexp.h
+-rw-r--r-- root root 11873 ./usr/include/resolv.h
+drwxr-xr-x root root 4096 ./usr/include/rpc
+-rw-r--r-- root root 2897 ./usr/include/rpc/netdb.h
+drwxr-xr-x root root 4096 ./usr/include/rpcsvc
+-rw-r--r-- root root 2675 ./usr/include/rpcsvc/nis_callback.h
+-rw-r--r-- root root 2178 ./usr/include/rpcsvc/nis_callback.x
+-rw-r--r-- root root 15879 ./usr/include/rpcsvc/nis.h
+-rw-r--r-- root root 12340 ./usr/include/rpcsvc/nislib.h
+-rw-r--r-- root root 13090 ./usr/include/rpcsvc/nis_object.x
+-rw-r--r-- root root 5370 ./usr/include/rpcsvc/nis_tags.h
+-rw-r--r-- root root 16802 ./usr/include/rpcsvc/nis.x
+-rw-r--r-- root root 3481 ./usr/include/rpcsvc/ypclnt.h
+-rw-r--r-- root root 7964 ./usr/include/rpcsvc/yp.h
+-rw-r--r-- root root 913 ./usr/include/rpcsvc/yppasswd.h
+-rw-r--r-- root root 2286 ./usr/include/rpcsvc/yppasswd.x
+-rw-r--r-- root root 14920 ./usr/include/rpcsvc/yp_prot.h
+-rw-r--r-- root root 3027 ./usr/include/rpcsvc/ypupd.h
+-rw-r--r-- root root 6981 ./usr/include/rpcsvc/yp.x
+-rw-r--r-- root root 4733 ./usr/include/sched.h
+drwxr-xr-x root root 4096 ./usr/include/scsi
+-rw-r--r-- root root 10168 ./usr/include/scsi/cxlflash_ioctl.h
+drwxr-xr-x root root 4096 ./usr/include/scsi/fc
+-rw-r--r-- root root 26902 ./usr/include/scsi/fc/fc_els.h
+-rw-r--r-- root root 11703 ./usr/include/scsi/fc/fc_fs.h
+-rw-r--r-- root root 2231 ./usr/include/scsi/fc/fc_gs.h
+-rw-r--r-- root root 4317 ./usr/include/scsi/fc/fc_ns.h
+-rw-r--r-- root root 8027 ./usr/include/scsi/scsi_bsg_fc.h
+-rw-r--r-- root root 2795 ./usr/include/scsi/scsi_bsg_ufs.h
+-rw-r--r-- root root 6970 ./usr/include/scsi/scsi.h
+-rw-r--r-- root root 1316 ./usr/include/scsi/scsi_ioctl.h
+-rw-r--r-- root root 1264 ./usr/include/scsi/scsi_netlink_fc.h
+-rw-r--r-- root root 2906 ./usr/include/scsi/scsi_netlink.h
+-rw-r--r-- root root 11662 ./usr/include/scsi/sg.h
+-rw-r--r-- root root 5450 ./usr/include/search.h
+-rw-r--r-- root root 2735 ./usr/include/semaphore.h
+-rw-r--r-- root root 3670 ./usr/include/setjmp.h
+-rw-r--r-- root root 1344 ./usr/include/sgtty.h
+-rw-r--r-- root root 5472 ./usr/include/shadow.h
+-rw-r--r-- root root 12309 ./usr/include/signal.h
+drwxr-xr-x root root 4096 ./usr/include/sound
+-rw-r--r-- root root 21847 ./usr/include/sound/asequencer.h
+-rw-r--r-- root root 22222 ./usr/include/sound/asoc.h
+-rw-r--r-- root root 4377 ./usr/include/sound/asound_fm.h
+-rw-r--r-- root root 46564 ./usr/include/sound/asound.h
+-rw-r--r-- root root 6743 ./usr/include/sound/compress_offload.h
+-rw-r--r-- root root 16992 ./usr/include/sound/compress_params.h
+-rw-r--r-- root root 17240 ./usr/include/sound/emu10k1.h
+-rw-r--r-- root root 3245 ./usr/include/sound/firewire.h
+-rw-r--r-- root root 3140 ./usr/include/sound/hdsp.h
+-rw-r--r-- root root 5486 ./usr/include/sound/hdspm.h
+-rw-r--r-- root root 4304 ./usr/include/sound/sb16_csp.h
+-rw-r--r-- root root 7494 ./usr/include/sound/sfnt_info.h
+-rw-r--r-- root root 5195 ./usr/include/sound/skl-tplg-interface.h
+-rw-r--r-- root root 12191 ./usr/include/sound/snd_sst_tokens.h
+drwxr-xr-x root root 4096 ./usr/include/sound/sof
+-rw-r--r-- root root 2036 ./usr/include/sound/sof/abi.h
+-rw-r--r-- root root 2267 ./usr/include/sound/sof/fw.h
+-rw-r--r-- root root 922 ./usr/include/sound/sof/header.h
+-rw-r--r-- root root 3267 ./usr/include/sound/sof/tokens.h
+-rw-r--r-- root root 4601 ./usr/include/sound/tlv.h
+-rw-r--r-- root root 1939 ./usr/include/sound/usb_stream.h
+-rw-r--r-- root root 7758 ./usr/include/spawn.h
+-rw-r--r-- root root 34802 ./usr/include/sqlite3ext.h
+-rw-r--r-- root root 576161 ./usr/include/sqlite3.h
+drwxr-xr-x root root 4096 ./usr/include/ss
+-rw-r--r-- root root 1193 ./usr/include/ss/ss_err.h
+-rw-r--r-- root root 3166 ./usr/include/ss/ss.h
+-rw-r--r-- root root 264 ./usr/include/stab.h
+-rw-r--r-- root root 2290 ./usr/include/stdc-predef.h
+-rw-r--r-- root root 8474 ./usr/include/stdint.h
+-rw-r--r-- root root 2800 ./usr/include/stdio_ext.h
+-rw-r--r-- root root 29950 ./usr/include/stdio.h
+-rw-r--r-- root root 35835 ./usr/include/stdlib.h
+-rw-r--r-- root root 17660 ./usr/include/string.h
+-rw-r--r-- root root 4753 ./usr/include/strings.h
+-rw-r--r-- root root 2191 ./usr/include/symcat.h
+drwxr-xr-x root root 4096 ./usr/include/sys
+-rw-r--r-- root root 3302 ./usr/include/sys/acct.h
+-rw-r--r-- root root 3700 ./usr/include/sys/acl.h
+-rw-r--r-- root root 1260 ./usr/include/sys/auxv.h
+-rw-r--r-- root root 86 ./usr/include/sys/bitypes.h
+-rw-r--r-- root root 25 ./usr/include/syscall.h
+-rw-r--r-- root root 6996 ./usr/include/sys/capability.h
+-rw-r--r-- root root 18308 ./usr/include/sys/cdefs.h
+-rw-r--r-- root root 3576 ./usr/include/sys/debugreg.h
+-rw-r--r-- root root 922 ./usr/include/sys/dir.h
+-rw-r--r-- root root 1024 ./usr/include/sys/elf.h
+-rw-r--r-- root root 4411 ./usr/include/sys/epoll.h
+-rw-r--r-- root root 19 ./usr/include/sys/errno.h
+-rw-r--r-- root root 1400 ./usr/include/sys/eventfd.h
+-rw-r--r-- root root 5232 ./usr/include/sysexits.h
+-rw-r--r-- root root 1292 ./usr/include/sys/fanotify.h
+-rw-r--r-- root root 19 ./usr/include/sys/fcntl.h
+-rw-r--r-- root root 1675 ./usr/include/sys/file.h
+-rw-r--r-- root root 1188 ./usr/include/sys/fsuid.h
+-rw-r--r-- root root 6210 ./usr/include/sys/gmon.h
+-rw-r--r-- root root 2636 ./usr/include/sys/gmon_out.h
+-rw-r--r-- root root 3901 ./usr/include/sys/inotify.h
+-rw-r--r-- root root 1740 ./usr/include/sys/ioctl.h
+-rw-r--r-- root root 5086 ./usr/include/sys/io.h
+-rw-r--r-- root root 1462 ./usr/include/sys/ipc.h
+-rw-r--r-- root root 1112 ./usr/include/sys/kd.h
+-rw-r--r-- root root 1204 ./usr/include/sys/klog.h
+-rw-r--r-- root root 24 ./usr/include/syslog.h
+-rw-r--r-- root root 5552 ./usr/include/sys/mman.h
+-rw-r--r-- root root 5612 ./usr/include/sys/mount.h
+-rw-r--r-- root root 2366 ./usr/include/sys/msg.h
+-rw-r--r-- root root 11163 ./usr/include/sys/mtio.h
+-rw-r--r-- root root 3149 ./usr/include/sys/param.h
+-rw-r--r-- root root 923 ./usr/include/sys/pci.h
+-rw-r--r-- root root 1127 ./usr/include/sys/perm.h
+-rw-r--r-- root root 2723 ./usr/include/sys/personality.h
+-rw-r--r-- root root 2550 ./usr/include/sys/poll.h
+-rw-r--r-- root root 1059 ./usr/include/sys/prctl.h
+-rw-r--r-- root root 4338 ./usr/include/sys/procfs.h
+-rw-r--r-- root root 1959 ./usr/include/sys/profil.h
+-rw-r--r-- root root 4680 ./usr/include/sys/psx_syscall.h
+-rw-r--r-- root root 6126 ./usr/include/sys/ptrace.h
+-rw-r--r-- root root 19539 ./usr/include/sys/queue.h
+-rw-r--r-- root root 5173 ./usr/include/sys/quota.h
+-rw-r--r-- root root 1444 ./usr/include/sys/random.h
+-rw-r--r-- root root 1182 ./usr/include/sys/raw.h
+-rw-r--r-- root root 1633 ./usr/include/sys/reboot.h
+-rw-r--r-- root root 1827 ./usr/include/sys/reg.h
+-rw-r--r-- root root 3646 ./usr/include/sys/resource.h
+-rw-r--r-- root root 4141 ./usr/include/sys/select.h
+-rw-r--r-- root root 2037 ./usr/include/sys/sem.h
+-rw-r--r-- root root 1806 ./usr/include/sys/sendfile.h
+-rw-r--r-- root root 1874 ./usr/include/sys/shm.h
+-rw-r--r-- root root 1714 ./usr/include/sys/signalfd.h
+-rw-r--r-- root root 20 ./usr/include/sys/signal.h
+-rw-r--r-- root root 10205 ./usr/include/sys/socket.h
+-rw-r--r-- root root 141 ./usr/include/sys/socketvar.h
+-rw-r--r-- root root 29 ./usr/include/sys/soundcard.h
+-rw-r--r-- root root 2094 ./usr/include/sys/statfs.h
+-rw-r--r-- root root 16237 ./usr/include/sys/stat.h
+-rw-r--r-- root root 2820 ./usr/include/sys/statvfs.h
+-rw-r--r-- root root 1593 ./usr/include/sys/swap.h
+-rw-r--r-- root root 1256 ./usr/include/sys/syscall.h
+-rw-r--r-- root root 2105 ./usr/include/sys/sysctl.h
+-rw-r--r-- root root 1518 ./usr/include/sys/sysinfo.h
+-rw-r--r-- root root 7702 ./usr/include/sys/syslog.h
+-rw-r--r-- root root 2103 ./usr/include/sys/sysmacros.h
+-rw-r--r-- root root 74 ./usr/include/sys/termios.h
+-rw-r--r-- root root 1420 ./usr/include/sys/timeb.h
+-rw-r--r-- root root 6754 ./usr/include/sys/time.h
+-rw-r--r-- root root 1874 ./usr/include/sys/timerfd.h
+-rw-r--r-- root root 1597 ./usr/include/sys/times.h
+-rw-r--r-- root root 2206 ./usr/include/sys/timex.h
+-rw-r--r-- root root 2499 ./usr/include/sys/ttychars.h
+-rw-r--r-- root root 3568 ./usr/include/sys/ttydefaults.h
+-rw-r--r-- root root 5713 ./usr/include/sys/types.h
+-rw-r--r-- root root 5842 ./usr/include/sys/ucontext.h
+-rw-r--r-- root root 6280 ./usr/include/sys/uio.h
+-rw-r--r-- root root 1453 ./usr/include/sys/un.h
+-rw-r--r-- root root 20 ./usr/include/sys/unistd.h
+-rw-r--r-- root root 5208 ./usr/include/sys/user.h
+-rw-r--r-- root root 2481 ./usr/include/sys/utsname.h
+-rw-r--r-- root root 161 ./usr/include/sys/vfs.h
+-rw-r--r-- root root 1880 ./usr/include/sys/vlimit.h
+-rw-r--r-- root root 1199 ./usr/include/sys/vm86.h
+-rw-r--r-- root root 22 ./usr/include/sys/vt.h
+-rw-r--r-- root root 2463 ./usr/include/sys/vtimes.h
+-rw-r--r-- root root 5605 ./usr/include/sys/wait.h
+-rw-r--r-- root root 4275 ./usr/include/sys/xattr.h
+-rw-r--r-- root root 3786 ./usr/include/tar.h
+-rw-r--r-- root root 9130 ./usr/include/tcpd.h
+-rw-r--r-- root root 3471 ./usr/include/termcap.h
+-rw-r--r-- root root 9096 ./usr/include/term_entry.h
+-rw-r--r-- root root 40447 ./usr/include/term.h
+-rw-r--r-- root root 214 ./usr/include/termio.h
+-rw-r--r-- root root 3599 ./usr/include/termios.h
+-rw-r--r-- root root 37419 ./usr/include/tgmath.h
+-rw-r--r-- root root 16024 ./usr/include/thread_db.h
+-rw-r--r-- root root 6661 ./usr/include/threads.h
+-rw-r--r-- root root 14830 ./usr/include/tic.h
+-rw-r--r-- root root 10276 ./usr/include/time.h
+drwxr-xr-x root root 4096 ./usr/include/tirpc
+-rw-r--r-- root root 2195 ./usr/include/tirpc/netconfig.h
+drwxr-xr-x root root 4096 ./usr/include/tirpc/rpc
+-rw-r--r-- root root 4143 ./usr/include/tirpc/rpc/auth_des.h
+-rw-r--r-- root root 11085 ./usr/include/tirpc/rpc/auth.h
+-rw-r--r-- root root 3009 ./usr/include/tirpc/rpc/auth_unix.h
+-rw-r--r-- root root 17067 ./usr/include/tirpc/rpc/clnt.h
+-rw-r--r-- root root 3904 ./usr/include/tirpc/rpc/clnt_soc.h
+-rw-r--r-- root root 2202 ./usr/include/tirpc/rpc/clnt_stat.h
+-rw-r--r-- root root 3706 ./usr/include/tirpc/rpc/des_crypt.h
+-rw-r--r-- root root 3045 ./usr/include/tirpc/rpc/des.h
+-rw-r--r-- root root 8021 ./usr/include/tirpc/rpc/key_prot.h
+-rw-r--r-- root root 2431 ./usr/include/tirpc/rpc/nettype.h
+-rw-r--r-- root root 3582 ./usr/include/tirpc/rpc/pmap_clnt.h
+-rw-r--r-- root root 4064 ./usr/include/tirpc/rpc/pmap_prot.h
+-rw-r--r-- root root 2450 ./usr/include/tirpc/rpc/pmap_rmt.h
+-rw-r--r-- root root 2117 ./usr/include/tirpc/rpc/raw.h
+-rw-r--r-- root root 3496 ./usr/include/tirpc/rpc/rpcb_clnt.h
+-rw-r--r-- root root 25776 ./usr/include/tirpc/rpc/rpcb_prot.h
+-rw-r--r-- root root 14673 ./usr/include/tirpc/rpc/rpcb_prot.x
+-rw-r--r-- root root 3102 ./usr/include/tirpc/rpc/rpc_com.h
+-rw-r--r-- root root 2712 ./usr/include/tirpc/rpc/rpcent.h
+-rw-r--r-- root root 4130 ./usr/include/tirpc/rpc/rpc.h
+-rw-r--r-- root root 5340 ./usr/include/tirpc/rpc/rpc_msg.h
+drwxr-xr-x root root 4096 ./usr/include/tirpc/rpcsvc
+-rw-r--r-- root root 3041 ./usr/include/tirpc/rpc/svc_auth.h
+-rw-r--r-- root root 2414 ./usr/include/tirpc/rpcsvc/crypt.h
+-rw-r--r-- root root 3929 ./usr/include/tirpc/rpcsvc/crypt.x
+-rw-r--r-- root root 2462 ./usr/include/tirpc/rpc/svc_dg.h
+-rw-r--r-- root root 14589 ./usr/include/tirpc/rpc/svc.h
+-rw-r--r-- root root 1912 ./usr/include/tirpc/rpc/svc_mt.h
+-rw-r--r-- root root 3749 ./usr/include/tirpc/rpc/svc_soc.h
+-rw-r--r-- root root 3756 ./usr/include/tirpc/rpc/types.h
+-rw-r--r-- root root 13372 ./usr/include/tirpc/rpc/xdr.h
+-rw-r--r-- root root 2494 ./usr/include/ttyent.h
+-rw-r--r-- root root 2002 ./usr/include/uchar.h
+-rw-r--r-- root root 2037 ./usr/include/ucontext.h
+-rw-r--r-- root root 8998 ./usr/include/udev.h
+-rw-r--r-- root root 1584 ./usr/include/ulimit.h
+-rw-r--r-- root root 3177 ./usr/include/unctrl.h
+-rw-r--r-- root root 42804 ./usr/include/unistd.h
+-rw-r--r-- root root 1502 ./usr/include/utime.h
+-rw-r--r-- root root 3223 ./usr/include/utmp.h
+-rw-r--r-- root root 4100 ./usr/include/utmpx.h
+drwxr-xr-x root root 4096 ./usr/include/uuid
+-rw-r--r-- root root 3910 ./usr/include/uuid/uuid.h
+-rw-r--r-- root root 1956 ./usr/include/values.h
+drwxr-xr-x root root 4096 ./usr/include/video
+-rw-r--r-- root root 213 ./usr/include/video/edid.h
+-rw-r--r-- root root 7643 ./usr/include/video/sisfb.h
+-rw-r--r-- root root 1078 ./usr/include/video/uvesafb.h
+-rw-r--r-- root root 22 ./usr/include/wait.h
+-rw-r--r-- root root 8755 ./usr/include/wayland-client-core.h
+-rw-r--r-- root root 1573 ./usr/include/wayland-client.h
+-rw-r--r-- root root 184232 ./usr/include/wayland-client-protocol.h
+-rw-r--r-- root root 2260 ./usr/include/wayland-cursor.h
+-rw-r--r-- root root 1848 ./usr/include/wayland-egl-backend.h
+-rw-r--r-- root root 1788 ./usr/include/wayland-egl-core.h
+-rw-r--r-- root root 1313 ./usr/include/wayland-egl.h
+-rw-r--r-- root root 19021 ./usr/include/wayland-server-core.h
+-rw-r--r-- root root 3237 ./usr/include/wayland-server.h
+-rw-r--r-- root root 144281 ./usr/include/wayland-server-protocol.h
+-rw-r--r-- root root 24118 ./usr/include/wayland-util.h
+-rw-r--r-- root root 1354 ./usr/include/wayland-version.h
+-rw-r--r-- root root 31111 ./usr/include/wchar.h
+-rw-r--r-- root root 5549 ./usr/include/wctype.h
+-rw-r--r-- root root 2502 ./usr/include/wordexp.h
+drwxr-xr-x root root 4096 ./usr/include/X11
+-rw-r--r-- root root 2293 ./usr/include/X11/ap_keysym.h
+-rw-r--r-- root root 3118 ./usr/include/X11/cursorfont.h
+-rw-r--r-- root root 2815 ./usr/include/X11/DECkeysym.h
+drwxr-xr-x root root 4096 ./usr/include/X11/dri
+-rw-r--r-- root root 2445 ./usr/include/X11/dri/xf86dri.h
+-rw-r--r-- root root 9669 ./usr/include/X11/dri/xf86driproto.h
+-rw-r--r-- root root 174 ./usr/include/X11/dri/xf86dristr.h
+drwxr-xr-x root root 4096 ./usr/include/X11/extensions
+-rw-r--r-- root root 1705 ./usr/include/X11/extensions/ag.h
+-rw-r--r-- root root 5005 ./usr/include/X11/extensions/agproto.h
+-rw-r--r-- root root 2900 ./usr/include/X11/extensions/applewmconst.h
+-rw-r--r-- root root 8098 ./usr/include/X11/extensions/applewmproto.h
+-rw-r--r-- root root 1909 ./usr/include/X11/extensions/bigreqsproto.h
+-rw-r--r-- root root 187 ./usr/include/X11/extensions/bigreqstr.h
+-rw-r--r-- root root 3130 ./usr/include/X11/extensions/composite.h
+-rw-r--r-- root root 5462 ./usr/include/X11/extensions/compositeproto.h
+-rw-r--r-- root root 1353 ./usr/include/X11/extensions/cup.h
+-rw-r--r-- root root 3065 ./usr/include/X11/extensions/cupproto.h
+-rw-r--r-- root root 3615 ./usr/include/X11/extensions/damageproto.h
+-rw-r--r-- root root 1893 ./usr/include/X11/extensions/damagewire.h
+-rw-r--r-- root root 2159 ./usr/include/X11/extensions/dbe.h
+-rw-r--r-- root root 7343 ./usr/include/X11/extensions/dbeproto.h
+-rw-r--r-- root root 2373 ./usr/include/X11/extensions/dmx.h
+-rw-r--r-- root root 13343 ./usr/include/X11/extensions/dmxproto.h
+-rw-r--r-- root root 1778 ./usr/include/X11/extensions/dpmsconst.h
+-rw-r--r-- root root 2161 ./usr/include/X11/extensions/dpms.h
+-rw-r--r-- root root 5288 ./usr/include/X11/extensions/dpmsproto.h
+-rw-r--r-- root root 8318 ./usr/include/X11/extensions/dri2proto.h
+-rw-r--r-- root root 2468 ./usr/include/X11/extensions/dri2tokens.h
+-rw-r--r-- root root 6129 ./usr/include/X11/extensions/dri3proto.h
+-rw-r--r-- root root 1563 ./usr/include/X11/extensions/EVI.h
+-rw-r--r-- root root 3006 ./usr/include/X11/extensions/EVIproto.h
+-rw-r--r-- root root 6096 ./usr/include/X11/extensions/extutil.h
+-rw-r--r-- root root 1782 ./usr/include/X11/extensions/ge.h
+-rw-r--r-- root root 2351 ./usr/include/X11/extensions/geproto.h
+-rw-r--r-- root root 2236 ./usr/include/X11/extensions/lbx.h
+-rw-r--r-- root root 24782 ./usr/include/X11/extensions/lbxproto.h
+-rw-r--r-- root root 1509 ./usr/include/X11/extensions/mitmiscconst.h
+-rw-r--r-- root root 1741 ./usr/include/X11/extensions/MITMisc.h
+-rw-r--r-- root root 2229 ./usr/include/X11/extensions/mitmiscproto.h
+-rw-r--r-- root root 2575 ./usr/include/X11/extensions/multibufconst.h
+-rw-r--r-- root root 5835 ./usr/include/X11/extensions/multibuf.h
+-rw-r--r-- root root 8600 ./usr/include/X11/extensions/multibufproto.h
+-rw-r--r-- root root 5473 ./usr/include/X11/extensions/panoramiXproto.h
+-rw-r--r-- root root 5409 ./usr/include/X11/extensions/presentproto.h
+-rw-r--r-- root root 3597 ./usr/include/X11/extensions/presenttokens.h
+-rw-r--r-- root root 6909 ./usr/include/X11/extensions/randr.h
+-rw-r--r-- root root 25751 ./usr/include/X11/extensions/randrproto.h
+-rw-r--r-- root root 2064 ./usr/include/X11/extensions/recordconst.h
+-rw-r--r-- root root 7634 ./usr/include/X11/extensions/recordproto.h
+-rw-r--r-- root root 258 ./usr/include/X11/extensions/recordstr.h
+-rw-r--r-- root root 6933 ./usr/include/X11/extensions/render.h
+-rw-r--r-- root root 13218 ./usr/include/X11/extensions/renderproto.h
+-rw-r--r-- root root 1900 ./usr/include/X11/extensions/saver.h
+-rw-r--r-- root root 5132 ./usr/include/X11/extensions/saverproto.h
+-rw-r--r-- root root 2141 ./usr/include/X11/extensions/secur.h
+-rw-r--r-- root root 2457 ./usr/include/X11/extensions/security.h
+-rw-r--r-- root root 3177 ./usr/include/X11/extensions/securproto.h
+-rw-r--r-- root root 1878 ./usr/include/X11/extensions/shapeconst.h
+-rw-r--r-- root root 4133 ./usr/include/X11/extensions/shape.h
+-rw-r--r-- root root 6730 ./usr/include/X11/extensions/shapeproto.h
+-rw-r--r-- root root 252 ./usr/include/X11/extensions/shapestr.h
+-rw-r--r-- root root 1645 ./usr/include/X11/extensions/shm.h
+-rw-r--r-- root root 6045 ./usr/include/X11/extensions/shmproto.h
+-rw-r--r-- root root 2123 ./usr/include/X11/extensions/shmstr.h
+-rw-r--r-- root root 6750 ./usr/include/X11/extensions/syncconst.h
+-rw-r--r-- root root 9676 ./usr/include/X11/extensions/sync.h
+-rw-r--r-- root root 11001 ./usr/include/X11/extensions/syncproto.h
+-rw-r--r-- root root 5606 ./usr/include/X11/extensions/syncstr.h
+-rw-r--r-- root root 2377 ./usr/include/X11/extensions/Xag.h
+-rw-r--r-- root root 3057 ./usr/include/X11/extensions/xcmiscproto.h
+-rw-r--r-- root root 185 ./usr/include/X11/extensions/xcmiscstr.h
+-rw-r--r-- root root 1710 ./usr/include/X11/extensions/Xcup.h
+-rw-r--r-- root root 2307 ./usr/include/X11/extensions/Xdamage.h
+-rw-r--r-- root root 4170 ./usr/include/X11/extensions/Xdbe.h
+-rw-r--r-- root root 2130 ./usr/include/X11/extensions/XEVI.h
+-rw-r--r-- root root 1655 ./usr/include/X11/extensions/Xext.h
+-rw-r--r-- root root 414 ./usr/include/X11/extensions/xf86bigfont.h
+-rw-r--r-- root root 2544 ./usr/include/X11/extensions/xf86bigfproto.h
+-rw-r--r-- root root 191 ./usr/include/X11/extensions/xf86bigfstr.h
+-rw-r--r-- root root 931 ./usr/include/X11/extensions/xf86dga1const.h
+-rw-r--r-- root root 4506 ./usr/include/X11/extensions/xf86dga1proto.h
+-rw-r--r-- root root 191 ./usr/include/X11/extensions/xf86dga1str.h
+-rw-r--r-- root root 2533 ./usr/include/X11/extensions/xf86dgaconst.h
+-rw-r--r-- root root 369 ./usr/include/X11/extensions/xf86dga.h
+-rw-r--r-- root root 7106 ./usr/include/X11/extensions/xf86dgaproto.h
+-rw-r--r-- root root 188 ./usr/include/X11/extensions/xf86dgastr.h
+-rw-r--r-- root root 2106 ./usr/include/X11/extensions/xf86vm.h
+-rw-r--r-- root root 7619 ./usr/include/X11/extensions/xf86vmode.h
+-rw-r--r-- root root 15700 ./usr/include/X11/extensions/xf86vmproto.h
+-rw-r--r-- root root 185 ./usr/include/X11/extensions/xf86vmstr.h
+-rw-r--r-- root root 7588 ./usr/include/X11/extensions/Xfixes.h
+-rw-r--r-- root root 12752 ./usr/include/X11/extensions/xfixesproto.h
+-rw-r--r-- root root 5396 ./usr/include/X11/extensions/xfixeswire.h
+-rw-r--r-- root root 1927 ./usr/include/X11/extensions/Xge.h
+-rw-r--r-- root root 10542 ./usr/include/X11/extensions/XI2.h
+-rw-r--r-- root root 37577 ./usr/include/X11/extensions/XI2proto.h
+-rw-r--r-- root root 9823 ./usr/include/X11/extensions/XI.h
+-rw-r--r-- root root 41010 ./usr/include/X11/extensions/XIproto.h
+-rw-r--r-- root root 15808 ./usr/include/X11/extensions/XKBgeom.h
+-rw-r--r-- root root 28211 ./usr/include/X11/extensions/XKB.h
+-rw-r--r-- root root 29105 ./usr/include/X11/extensions/XKBproto.h
+-rw-r--r-- root root 28018 ./usr/include/X11/extensions/XKBsrv.h
+-rw-r--r-- root root 19630 ./usr/include/X11/extensions/XKBstr.h
+-rw-r--r-- root root 1601 ./usr/include/X11/extensions/XLbx.h
+-rw-r--r-- root root 17120 ./usr/include/X11/extensions/Xrandr.h
+-rw-r--r-- root root 12805 ./usr/include/X11/extensions/Xrender.h
+-rw-r--r-- root root 5168 ./usr/include/X11/extensions/XResproto.h
+-rw-r--r-- root root 3735 ./usr/include/X11/extensions/XShm.h
+-rw-r--r-- root root 1392 ./usr/include/X11/extensions/xtestconst.h
+-rw-r--r-- root root 5439 ./usr/include/X11/extensions/xtestext1const.h
+-rw-r--r-- root root 3708 ./usr/include/X11/extensions/xtestext1.h
+-rw-r--r-- root root 7790 ./usr/include/X11/extensions/xtestext1proto.h
+-rw-r--r-- root root 3254 ./usr/include/X11/extensions/xtestproto.h
+-rw-r--r-- root root 3027 ./usr/include/X11/extensions/Xv.h
+-rw-r--r-- root root 3620 ./usr/include/X11/extensions/XvMC.h
+-rw-r--r-- root root 4484 ./usr/include/X11/extensions/XvMCproto.h
+-rw-r--r-- root root 12109 ./usr/include/X11/extensions/Xvproto.h
+drwxr-xr-x root root 4096 ./usr/include/X11/fonts
+-rw-r--r-- root root 4253 ./usr/include/X11/fonts/font.h
+-rw-r--r-- root root 3450 ./usr/include/X11/fonts/fontproto.h
+-rw-r--r-- root root 9401 ./usr/include/X11/fonts/fontstruct.h
+-rw-r--r-- root root 4075 ./usr/include/X11/fonts/FS.h
+-rw-r--r-- root root 3992 ./usr/include/X11/fonts/fsmasks.h
+-rw-r--r-- root root 19889 ./usr/include/X11/fonts/FSproto.h
+-rw-r--r-- root root 6046 ./usr/include/X11/HPkeysym.h
+drwxr-xr-x root root 4096 ./usr/include/X11/ICE
+-rw-r--r-- root root 7413 ./usr/include/X11/ICE/ICEconn.h
+-rw-r--r-- root root 2512 ./usr/include/X11/ICE/ICE.h
+-rw-r--r-- root root 9925 ./usr/include/X11/ICE/ICElib.h
+-rw-r--r-- root root 8206 ./usr/include/X11/ICE/ICEmsg.h
+-rw-r--r-- root root 4604 ./usr/include/X11/ICE/ICEproto.h
+-rw-r--r-- root root 3154 ./usr/include/X11/ICE/ICEutil.h
+-rw-r--r-- root root 459 ./usr/include/X11/ImUtil.h
+-rw-r--r-- root root 175248 ./usr/include/X11/keysymdef.h
+-rw-r--r-- root root 2769 ./usr/include/X11/keysym.h
+drwxr-xr-x root root 4096 ./usr/include/X11/SM
+-rw-r--r-- root root 2927 ./usr/include/X11/SM/SM.h
+-rw-r--r-- root root 11268 ./usr/include/X11/SM/SMlib.h
+-rw-r--r-- root root 4852 ./usr/include/X11/SM/SMproto.h
+-rw-r--r-- root root 4022 ./usr/include/X11/Sunkeysym.h
+-rw-r--r-- root root 4587 ./usr/include/X11/Xalloca.h
+-rw-r--r-- root root 2951 ./usr/include/X11/Xarch.h
+-rw-r--r-- root root 2518 ./usr/include/X11/Xatom.h
+-rw-r--r-- root root 3817 ./usr/include/X11/Xauth.h
+-rw-r--r-- root root 21346 ./usr/include/X11/Xcms.h
+-rw-r--r-- root root 2401 ./usr/include/X11/Xdefs.h
+-rw-r--r-- root root 6371 ./usr/include/X11/Xdmcp.h
+-rw-r--r-- root root 13612 ./usr/include/X11/XF86keysym.h
+-rw-r--r-- root root 7863 ./usr/include/X11/Xfuncproto.h
+-rw-r--r-- root root 2256 ./usr/include/X11/Xfuncs.h
+-rw-r--r-- root root 20137 ./usr/include/X11/X.h
+-rw-r--r-- root root 30995 ./usr/include/X11/XKBlib.h
+-rw-r--r-- root root 1567 ./usr/include/X11/XlibConf.h
+-rw-r--r-- root root 99532 ./usr/include/X11/Xlib.h
+-rw-r--r-- root root 40597 ./usr/include/X11/Xlibint.h
+-rw-r--r-- root root 506 ./usr/include/X11/Xlib-xcb.h
+-rw-r--r-- root root 1297 ./usr/include/X11/Xlocale.h
+-rw-r--r-- root root 5122 ./usr/include/X11/Xmd.h
+-rw-r--r-- root root 3115 ./usr/include/X11/Xosdefs.h
+-rw-r--r-- root root 4362 ./usr/include/X11/Xos.h
+-rw-r--r-- root root 33693 ./usr/include/X11/Xos_r.h
+-rw-r--r-- root root 7743 ./usr/include/X11/Xpoll.h
+-rw-r--r-- root root 52399 ./usr/include/X11/Xproto.h
+-rw-r--r-- root root 2743 ./usr/include/X11/Xprotostr.h
+-rw-r--r-- root root 5949 ./usr/include/X11/Xregion.h
+-rw-r--r-- root root 10628 ./usr/include/X11/Xresource.h
+-rw-r--r-- root root 1719 ./usr/include/X11/xshmfence.h
+-rw-r--r-- root root 12395 ./usr/include/X11/Xthreads.h
+drwxr-xr-x root root 4096 ./usr/include/X11/Xtrans
+-rw-r--r-- root root 2876 ./usr/include/X11/Xtrans/transport.c
+-rw-r--r-- root root 29462 ./usr/include/X11/Xtrans/Xtrans.c
+-rw-r--r-- root root 8785 ./usr/include/X11/Xtrans/Xtrans.h
+-rw-r--r-- root root 10158 ./usr/include/X11/Xtrans/Xtransint.h
+-rw-r--r-- root root 55410 ./usr/include/X11/Xtrans/Xtranslcl.c
+-rw-r--r-- root root 62655 ./usr/include/X11/Xtrans/Xtranssock.c
+-rw-r--r-- root root 14937 ./usr/include/X11/Xtrans/Xtransutil.c
+-rw-r--r-- root root 21353 ./usr/include/X11/Xutil.h
+-rw-r--r-- root root 1909 ./usr/include/X11/Xw32defs.h
+-rw-r--r-- root root 3872 ./usr/include/X11/XWDFile.h
+-rw-r--r-- root root 3283 ./usr/include/X11/Xwindows.h
+-rw-r--r-- root root 2261 ./usr/include/X11/Xwinsock.h
+drwxr-xr-x root root 4096 ./usr/include/xcb
+-rw-r--r-- root root 2407 ./usr/include/xcb/bigreq.h
+-rw-r--r-- root root 13867 ./usr/include/xcb/composite.h
+-rw-r--r-- root root 9285 ./usr/include/xcb/damage.h
+-rw-r--r-- root root 11924 ./usr/include/xcb/dpms.h
+-rw-r--r-- root root 35759 ./usr/include/xcb/dri2.h
+-rw-r--r-- root root 24241 ./usr/include/xcb/dri3.h
+-rw-r--r-- root root 2981 ./usr/include/xcb/ge.h
+-rw-r--r-- root root 252818 ./usr/include/xcb/glx.h
+-rw-r--r-- root root 19292 ./usr/include/xcb/present.h
+-rw-r--r-- root root 139534 ./usr/include/xcb/randr.h
+-rw-r--r-- root root 27912 ./usr/include/xcb/record.h
+-rw-r--r-- root root 103726 ./usr/include/xcb/render.h
+-rw-r--r-- root root 24483 ./usr/include/xcb/res.h
+-rw-r--r-- root root 16460 ./usr/include/xcb/screensaver.h
+-rw-r--r-- root root 20806 ./usr/include/xcb/shape.h
+-rw-r--r-- root root 17261 ./usr/include/xcb/shm.h
+-rw-r--r-- root root 43756 ./usr/include/xcb/sync.h
+-rw-r--r-- root root 13990 ./usr/include/xcb/xcbext.h
+-rw-r--r-- root root 22260 ./usr/include/xcb/xcb.h
+-rw-r--r-- root root 7137 ./usr/include/xcb/xc_misc.h
+-rw-r--r-- root root 11593 ./usr/include/xcb/xevie.h
+-rw-r--r-- root root 28034 ./usr/include/xcb/xf86dri.h
+-rw-r--r-- root root 58079 ./usr/include/xcb/xfixes.h
+-rw-r--r-- root root 14955 ./usr/include/xcb/xinerama.h
+-rw-r--r-- root root 305557 ./usr/include/xcb/xinput.h
+-rw-r--r-- root root 246448 ./usr/include/xcb/xkb.h
+-rw-r--r-- root root 57187 ./usr/include/xcb/xprint.h
+-rw-r--r-- root root 385800 ./usr/include/xcb/xproto.h
+-rw-r--r-- root root 56622 ./usr/include/xcb/xselinux.h
+-rw-r--r-- root root 7589 ./usr/include/xcb/xtest.h
+-rw-r--r-- root root 57788 ./usr/include/xcb/xv.h
+-rw-r--r-- root root 24530 ./usr/include/xcb/xvmc.h
+drwxr-xr-x root root 4096 ./usr/include/xen
+-rw-r--r-- root root 3553 ./usr/include/xen/evtchn.h
+-rw-r--r-- root root 2619 ./usr/include/xen/gntalloc.h
+-rw-r--r-- root root 10647 ./usr/include/xen/gntdev.h
+-rw-r--r-- root root 4206 ./usr/include/xen/privcmd.h
+-rw-r--r-- root root 35465 ./usr/include/xf86drm.h
+-rw-r--r-- root root 18016 ./usr/include/xf86drmMode.h
+-rw-r--r-- root root 19283 ./usr/include/xtables.h
+-rw-r--r-- root root 75 ./usr/include/xtables-version.h
+-rw-r--r-- root root 16262 ./usr/include/zconf.h
+-rw-r--r-- root root 96239 ./usr/include/zlib.h
+drwxr-xr-x root root 20480 ./usr/lib
+drwxr-xr-x root root 4096 ./usr/lib/cmake
+drwxr-xr-x root root 4096 ./usr/lib/cmake/DBus1
+-rw-r--r-- root root 2883 ./usr/lib/cmake/DBus1/DBus1Config.cmake
+-rw-r--r-- root root 367 ./usr/lib/cmake/DBus1/DBus1ConfigVersion.cmake
+drwxr-xr-x root root 4096 ./usr/lib/cmake/libxml2
+-rw-r--r-- root root 1642 ./usr/lib/cmake/libxml2/libxml2-config.cmake
+drwxr-xr-x root root 4096 ./usr/lib/coreutils
+-rwxr-xr-x root root 14144 ./usr/lib/coreutils/libstdbuf.so
+-rw-r--r-- root root 4280 ./usr/lib/crt1.o
+-rw-r--r-- root root 2808 ./usr/lib/crti.o
+-rw-r--r-- root root 2552 ./usr/lib/crtn.o
+drwxr-xr-x root root 4096 ./usr/lib/dbus-1.0
+drwxr-xr-x root root 4096 ./usr/lib/dbus-1.0/include
+drwxr-xr-x root root 4096 ./usr/lib/dbus-1.0/include/dbus
+-rw-r--r-- root root 2052 ./usr/lib/dbus-1.0/include/dbus/dbus-arch-deps.h
+drwxr-xr-x root root 4096 ./usr/lib/dri
+-rwxr-xr-x root root 12207608 ./usr/lib/dri/i915_dri.so
+-rwxr-xr-x root root 12207608 ./usr/lib/dri/i965_dri.so
+-rwxr-xr-x root root 9195384 ./usr/lib/dri/kms_swrast_dri.so
+-rwxr-xr-x root root 12207608 ./usr/lib/dri/nouveau_vieux_dri.so
+-rwxr-xr-x root root 12207608 ./usr/lib/dri/r200_dri.so
+-rwxr-xr-x root root 12207608 ./usr/lib/dri/radeon_dri.so
+-rwxr-xr-x root root 9195384 ./usr/lib/dri/swrast_dri.so
+-rwxr-xr-x root root 9195384 ./usr/lib/dri/virtio_gpu_dri.so
+-rwxr-xr-x root root 14376 ./usr/lib/e2initrd_helper
+drwxr-xr-x root root 4096 ./usr/libexec
+drwxr-xr-x root root 4096 ./usr/libexec/awk
+-rwxr-xr-x root root 14288 ./usr/libexec/awk/grcat
+-rwxr-xr-x root root 14288 ./usr/libexec/awk/pwcat
+-rwsr-xr-x root messagebus 63592 ./usr/libexec/dbus-daemon-launch-helper
+-rwxr-xr-x root root 43168 ./usr/libexec/frcode
+-rwxr-xr-x root root 14304 ./usr/libexec/gio-querymodules
+-rwxr-xr-x root root 354584 ./usr/libexec/udevadm
+drwxr-xr-x root root 4096 ./usr/lib/gawk
+-rwxr-xr-x root root 39016 ./usr/lib/gawk/filefuncs.so
+-rwxr-xr-x root root 14288 ./usr/lib/gawk/fnmatch.so
+-rwxr-xr-x root root 14304 ./usr/lib/gawk/fork.so
+-rwxr-xr-x root root 14288 ./usr/lib/gawk/inplace.so
+-rwxr-xr-x root root 14208 ./usr/lib/gawk/intdiv.so
+-rwxr-xr-x root root 14256 ./usr/lib/gawk/ordchr.so
+-rwxr-xr-x root root 14192 ./usr/lib/gawk/readdir.so
+-rwxr-xr-x root root 14256 ./usr/lib/gawk/readfile.so
+-rwxr-xr-x root root 14200 ./usr/lib/gawk/revoutput.so
+-rwxr-xr-x root root 14200 ./usr/lib/gawk/revtwoway.so
+-rwxr-xr-x root root 18352 ./usr/lib/gawk/rwarray.so
+-rwxr-xr-x root root 14256 ./usr/lib/gawk/time.so
+-rw-r--r-- root root 7064 ./usr/lib/gcrt1.o
+drwxr-xr-x root root 4096 ./usr/lib/gio
+drwxr-xr-x root root 4096 ./usr/lib/gio/modules
+drwxr-xr-x root root 4096 ./usr/lib/girepository-1.0
+-rw-r--r-- root root 14344 ./usr/lib/girepository-1.0/cairo-1.0.typelib
+-rw-r--r-- root root 712 ./usr/lib/girepository-1.0/DBus-1.0.typelib
+-rw-r--r-- root root 560 ./usr/lib/girepository-1.0/DBusGLib-1.0.typelib
+-rw-r--r-- root root 348 ./usr/lib/girepository-1.0/fontconfig-2.0.typelib
+-rw-r--r-- root root 420 ./usr/lib/girepository-1.0/freetype2-2.0.typelib
+-rw-r--r-- root root 353336 ./usr/lib/girepository-1.0/Gio-2.0.typelib
+-rw-r--r-- root root 27752 ./usr/lib/girepository-1.0/GIRepository-2.0.typelib
+-rw-r--r-- root root 948 ./usr/lib/girepository-1.0/GL-1.0.typelib
+-rw-r--r-- root root 191884 ./usr/lib/girepository-1.0/GLib-2.0.typelib
+-rw-r--r-- root root 1340 ./usr/lib/girepository-1.0/GModule-2.0.typelib
+-rw-r--r-- root root 58972 ./usr/lib/girepository-1.0/GObject-2.0.typelib
+-rw-r--r-- root root 668 ./usr/lib/girepository-1.0/libxml2-2.0.typelib
+-rw-r--r-- root root 59380 ./usr/lib/girepository-1.0/Vulkan-1.0.typelib
+-rw-r--r-- root root 176 ./usr/lib/girepository-1.0/win32-1.0.typelib
+-rw-r--r-- root root 240 ./usr/lib/girepository-1.0/xfixes-4.0.typelib
+-rw-r--r-- root root 464 ./usr/lib/girepository-1.0/xft-2.0.typelib
+-rw-r--r-- root root 836 ./usr/lib/girepository-1.0/xlib-2.0.typelib
+-rw-r--r-- root root 640 ./usr/lib/girepository-1.0/xrandr-1.3.typelib
+drwxr-xr-x root root 4096 ./usr/lib/glib-2.0
+drwxr-xr-x root root 4096 ./usr/lib/glib-2.0/include
+-rw-r--r-- root root 5649 ./usr/lib/glib-2.0/include/glibconfig.h
+drwxr-xr-x root root 4096 ./usr/lib/gobject-introspection
+drwxr-xr-x root root 4096 ./usr/lib/gobject-introspection/giscanner
+-rw-r--r-- root root 3526 ./usr/lib/gobject-introspection/giscanner/annotationmain.py
+-rw-r--r-- root root 101376 ./usr/lib/gobject-introspection/giscanner/annotationparser.py
+-rw-r--r-- root root 43411 ./usr/lib/gobject-introspection/giscanner/ast.py
+-rw-r--r-- root root 5852 ./usr/lib/gobject-introspection/giscanner/cachestore.py
+-rw-r--r-- root root 19524 ./usr/lib/gobject-introspection/giscanner/ccompiler.py
+-rw-r--r-- root root 6190 ./usr/lib/gobject-introspection/giscanner/codegen.py
+-rw-r--r-- root root 3268 ./usr/lib/gobject-introspection/giscanner/docmain.py
+drwxr-xr-x root root 4096 ./usr/lib/gobject-introspection/giscanner/doctemplates
+drwxr-xr-x root root 4096 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs
+drwxr-xr-x root root 4096 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs
+-rw-r--r-- root root 567 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/base.tmpl
+-rw-r--r-- root root 113 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/callback.tmpl
+-rw-r--r-- root root 29 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/class.tmpl
+-rw-r--r-- root root 847 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/default.tmpl
+-rw-r--r-- root root 890 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/_doc.tmpl
+-rw-r--r-- root root 313 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/enum.tmpl
+-rw-r--r-- root root 113 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/function.tmpl
+-rw-r--r-- root root 5189 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/_index.tmpl
+-rw-r--r-- root root 29 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/interface.tmpl
+-rw-r--r-- root root 120 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/_methods.tmpl
+-rw-r--r-- root root 1899 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/_method.tmpl
+-rw-r--r-- root root 32 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/method.tmpl
+-rw-r--r-- root root 1278 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/namespace.tmpl
+-rw-r--r-- root root 1123 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/_properties.tmpl
+-rw-r--r-- root root 652 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/_signals.tmpl
+-rw-r--r-- root root 176 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/_staticmethods.tmpl
+-rw-r--r-- root root 183 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/_vfuncs.tmpl
+drwxr-xr-x root root 4096 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard
+-rw-r--r-- root root 765 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/base.tmpl
+drwxr-xr-x root root 4096 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C
+-rw-r--r-- root root 141 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/callback.tmpl
+-rw-r--r-- root root 57 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/class.tmpl
+-rw-r--r-- root root 35 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/constructor.tmpl
+-rw-r--r-- root root 30 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/default.tmpl
+-rw-r--r-- root root 56 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/enum.tmpl
+-rw-r--r-- root root 30 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/field.tmpl
+-rw-r--r-- root root 1654 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/function.tmpl
+-rw-r--r-- root root 57 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/interface.tmpl
+-rw-r--r-- root root 1982 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/class.tmpl
+-rw-r--r-- root root 35 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/method.tmpl
+-rw-r--r-- root root 35 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/namespace.tmpl
+-rw-r--r-- root root 191 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/property.tmpl
+-rw-r--r-- root root 30 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/record.tmpl
+-rw-r--r-- root root 196 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/signal.tmpl
+-rw-r--r-- root root 139 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/vfunc.tmpl
+drwxr-xr-x root root 4096 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs
+-rw-r--r-- root root 780 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/callback.tmpl
+-rw-r--r-- root root 863 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/class.tmpl
+-rw-r--r-- root root 35 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/constructor.tmpl
+-rw-r--r-- root root 30 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/default.tmpl
+-rw-r--r-- root root 511 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/enum.tmpl
+-rw-r--r-- root root 423 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/field.tmpl
+-rw-r--r-- root root 1469 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/function.tmpl
+-rw-r--r-- root root 558 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/interface.tmpl
+-rw-r--r-- root root 35 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/method.tmpl
+-rw-r--r-- root root 61 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/namespace.tmpl
+-rw-r--r-- root root 423 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/property.tmpl
+-rw-r--r-- root root 56 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/record.tmpl
+-rw-r--r-- root root 1185 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/signal.tmpl
+-rw-r--r-- root root 746 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/vfunc.tmpl
+-rw-r--r-- root root 551 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/namespace.tmpl
+drwxr-xr-x root root 4096 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python
+-rw-r--r-- root root 849 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/callback.tmpl
+-rw-r--r-- root root 593 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/class.tmpl
+-rw-r--r-- root root 35 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/constructor.tmpl
+-rw-r--r-- root root 30 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/default.tmpl
+-rw-r--r-- root root 264 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/enum.tmpl
+-rw-r--r-- root root 30 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/field.tmpl
+-rw-r--r-- root root 1572 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/function.tmpl
+-rw-r--r-- root root 535 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/interface.tmpl
+-rw-r--r-- root root 35 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/method.tmpl
+-rw-r--r-- root root 61 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/namespace.tmpl
+-rw-r--r-- root root 407 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/property.tmpl
+-rw-r--r-- root root 56 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/record.tmpl
+-rw-r--r-- root root 1235 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/signal.tmpl
+-rw-r--r-- root root 849 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/vfunc.tmpl
+-rw-r--r-- root root 50143 ./usr/lib/gobject-introspection/giscanner/docwriter.py
+-rw-r--r-- root root 10639 ./usr/lib/gobject-introspection/giscanner/dumper.py
+-rw-r--r-- root root 21322 ./usr/lib/gobject-introspection/giscanner/gdumpparser.py
+-rw-r--r-- root root 28229 ./usr/lib/gobject-introspection/giscanner/girparser.py
+-rw-r--r-- root root 28222 ./usr/lib/gobject-introspection/giscanner/girwriter.py
+-rwxr-xr-x root root 101672 ./usr/lib/gobject-introspection/giscanner/_giscanner.cpython-38-x86_64-linux-gnu.so
+-rw-r--r-- root root 1105 ./usr/lib/gobject-introspection/giscanner/__init__.py
+-rw-r--r-- root root 9398 ./usr/lib/gobject-introspection/giscanner/introspectablepass.py
+-rw-r--r-- root root 2554 ./usr/lib/gobject-introspection/giscanner/libtoolimporter.py
+-rw-r--r-- root root 65300 ./usr/lib/gobject-introspection/giscanner/maintransformer.py
+-rw-r--r-- root root 392 ./usr/lib/gobject-introspection/giscanner/mdextensions.py
+-rw-r--r-- root root 7612 ./usr/lib/gobject-introspection/giscanner/message.py
+-rw-r--r-- root root 3756 ./usr/lib/gobject-introspection/giscanner/msvccompiler.py
+-rw-r--r-- root root 2283 ./usr/lib/gobject-introspection/giscanner/pkgconfig.py
+-rw-r--r-- root root 27285 ./usr/lib/gobject-introspection/giscanner/scannermain.py
+-rw-r--r-- root root 4790 ./usr/lib/gobject-introspection/giscanner/sectionparser.py
+-rw-r--r-- root root 6259 ./usr/lib/gobject-introspection/giscanner/shlibs.py
+-rw-r--r-- root root 9628 ./usr/lib/gobject-introspection/giscanner/sourcescanner.py
+-rw-r--r-- root root 5699 ./usr/lib/gobject-introspection/giscanner/testcodegen.py
+-rw-r--r-- root root 44647 ./usr/lib/gobject-introspection/giscanner/transformer.py
+-rw-r--r-- root root 10521 ./usr/lib/gobject-introspection/giscanner/utils.py
+-rw-r--r-- root root 23 ./usr/lib/gobject-introspection/giscanner/_version.py
+-rw-r--r-- root root 5798 ./usr/lib/gobject-introspection/giscanner/xmlwriter.py
+-rwxr-xr-x root root 38904 ./usr/lib/libacl.so.1.1.2253
+lrwxrwxrwx root root 18 ./usr/lib/libacl.so.1 -> libacl.so.1.1.2253
+lrwxrwxrwx root root 18 ./usr/lib/libacl.so -> libacl.so.1.1.2253
+lrwxrwxrwx root root 21 ./usr/lib/libanl.so -> ../../lib/libanl.so.1
+-rwxr-xr-x root root 34856 ./usr/lib/libasm-0.179.so
+lrwxrwxrwx root root 15 ./usr/lib/libasm.so.1 -> libasm-0.179.so
+lrwxrwxrwx root root 11 ./usr/lib/libasm.so -> libasm.so.1
+-rwxr-xr-x root root 26512 ./usr/lib/libattr.so.1.1.2448
+lrwxrwxrwx root root 19 ./usr/lib/libattr.so.1 -> libattr.so.1.1.2448
+lrwxrwxrwx root root 19 ./usr/lib/libattr.so -> libattr.so.1.1.2448
+-rwxr-xr-x root root 1310600 ./usr/lib/libbfd-2.34.0.20200220.so
+lrwxrwxrwx root root 25 ./usr/lib/libbfd.so -> libbfd-2.34.0.20200220.so
+lrwxrwxrwx root root 27 ./usr/lib/libblkid.so -> ../../lib/libblkid.so.1.1.0
+lrwxrwxrwx root root 30 ./usr/lib/libBrokenLocale.so -> ../../lib/libBrokenLocale.so.1
+-rwxr-xr-x root root 383584 ./usr/lib/libbtrfs.so.0.1
+lrwxrwxrwx root root 15 ./usr/lib/libbtrfs.so.0 -> libbtrfs.so.0.1
+lrwxrwxrwx root root 15 ./usr/lib/libbtrfs.so -> libbtrfs.so.0.1
+-rwxr-xr-x root root 34704 ./usr/lib/libbtrfsutil.so.1.1.1
+lrwxrwxrwx root root 21 ./usr/lib/libbtrfsutil.so.1 -> libbtrfsutil.so.1.1.1
+lrwxrwxrwx root root 21 ./usr/lib/libbtrfsutil.so -> libbtrfsutil.so.1.1.1
+-rwxr-xr-x root root 74656 ./usr/lib/libbz2.so.1.0.6
+lrwxrwxrwx root root 15 ./usr/lib/libbz2.so.1 -> libbz2.so.1.0.6
+lrwxrwxrwx root root 15 ./usr/lib/libbz2.so -> libbz2.so.1.0.6
+-rwxr-xr-x root root 42752 ./usr/lib/libcairo-gobject.so.2.11600.0
+lrwxrwxrwx root root 29 ./usr/lib/libcairo-gobject.so.2 -> libcairo-gobject.so.2.11600.0
+lrwxrwxrwx root root 29 ./usr/lib/libcairo-gobject.so -> libcairo-gobject.so.2.11600.0
+-rwxr-xr-x root root 156384 ./usr/lib/libcairo-script-interpreter.so.2.11600.0
+lrwxrwxrwx root root 40 ./usr/lib/libcairo-script-interpreter.so.2 -> libcairo-script-interpreter.so.2.11600.0
+lrwxrwxrwx root root 40 ./usr/lib/libcairo-script-interpreter.so -> libcairo-script-interpreter.so.2.11600.0
+-rwxr-xr-x root root 1291312 ./usr/lib/libcairo.so.2.11600.0
+lrwxrwxrwx root root 21 ./usr/lib/libcairo.so.2 -> libcairo.so.2.11600.0
+lrwxrwxrwx root root 21 ./usr/lib/libcairo.so -> libcairo.so.2.11600.0
+lrwxrwxrwx root root 28 ./usr/lib/libcap-ng.so -> ../../lib/libcap-ng.so.0.0.0
+-rw-r--r-- root root 76674 ./usr/lib/libc_nonshared.a
+-rwxr-xr-x root root 2872136 ./usr/lib/libcrypto.so.1.1
+lrwxrwxrwx root root 16 ./usr/lib/libcrypto.so -> libcrypto.so.1.1
+-rwxr-xr-x root root 202648 ./usr/lib/libcrypt.so.2.0.0
+lrwxrwxrwx root root 17 ./usr/lib/libcrypt.so.2 -> libcrypt.so.2.0.0
+lrwxrwxrwx root root 17 ./usr/lib/libcrypt.so -> libcrypt.so.2.0.0
+-rw-r--r-- root root 247 ./usr/lib/libc.so
+-rwxr-xr-x root root 116736 ./usr/lib/libctf-nobfd.so.0.0.0
+lrwxrwxrwx root root 21 ./usr/lib/libctf-nobfd.so.0 -> libctf-nobfd.so.0.0.0
+lrwxrwxrwx root root 21 ./usr/lib/libctf-nobfd.so -> libctf-nobfd.so.0.0.0
+-rwxr-xr-x root root 116728 ./usr/lib/libctf.so.0.0.0
+lrwxrwxrwx root root 15 ./usr/lib/libctf.so.0 -> libctf.so.0.0.0
+lrwxrwxrwx root root 15 ./usr/lib/libctf.so -> libctf.so.0.0.0
+lrwxrwxrwx root root 13 ./usr/lib/libcurses.so -> libncurses.so
+-rwxr-xr-x root root 1267928 ./usr/lib/libdb-5.3.so
+lrwxrwxrwx root root 12 ./usr/lib/libdb-5.so -> libdb-5.3.so
+lrwxrwxrwx root root 12 ./usr/lib/libdb.so -> libdb-5.3.so
+-rwxr-xr-x root root 346240 ./usr/lib/libdbus-1.so.3.19.11
+lrwxrwxrwx root root 20 ./usr/lib/libdbus-1.so.3 -> libdbus-1.so.3.19.11
+lrwxrwxrwx root root 20 ./usr/lib/libdbus-1.so -> libdbus-1.so.3.19.11
+lrwxrwxrwx root root 20 ./usr/lib/libdl.so -> ../../lib/libdl.so.2
+-rwxr-xr-x root root 42824 ./usr/lib/libdrm_amdgpu.so.1.0.0
+lrwxrwxrwx root root 22 ./usr/lib/libdrm_amdgpu.so.1 -> libdrm_amdgpu.so.1.0.0
+lrwxrwxrwx root root 18 ./usr/lib/libdrm_amdgpu.so -> libdrm_amdgpu.so.1
+-rwxr-xr-x root root 30536 ./usr/lib/libdrm_etnaviv.so.1.0.0
+lrwxrwxrwx root root 23 ./usr/lib/libdrm_etnaviv.so.1 -> libdrm_etnaviv.so.1.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libdrm_etnaviv.so -> libdrm_etnaviv.so.1
+-rwxr-xr-x root root 34712 ./usr/lib/libdrm_freedreno.so.1.0.0
+lrwxrwxrwx root root 25 ./usr/lib/libdrm_freedreno.so.1 -> libdrm_freedreno.so.1.0.0
+lrwxrwxrwx root root 21 ./usr/lib/libdrm_freedreno.so -> libdrm_freedreno.so.1
+-rwxr-xr-x root root 146920 ./usr/lib/libdrm_intel.so.1.0.0
+lrwxrwxrwx root root 21 ./usr/lib/libdrm_intel.so.1 -> libdrm_intel.so.1.0.0
+lrwxrwxrwx root root 17 ./usr/lib/libdrm_intel.so -> libdrm_intel.so.1
+-rwxr-xr-x root root 34632 ./usr/lib/libdrm_nouveau.so.2.0.0
+lrwxrwxrwx root root 23 ./usr/lib/libdrm_nouveau.so.2 -> libdrm_nouveau.so.2.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libdrm_nouveau.so -> libdrm_nouveau.so.2
+-rwxr-xr-x root root 14080 ./usr/lib/libdrm_omap.so.1.0.0
+lrwxrwxrwx root root 20 ./usr/lib/libdrm_omap.so.1 -> libdrm_omap.so.1.0.0
+lrwxrwxrwx root root 16 ./usr/lib/libdrm_omap.so -> libdrm_omap.so.1
+-rwxr-xr-x root root 55184 ./usr/lib/libdrm_radeon.so.1.0.1
+lrwxrwxrwx root root 22 ./usr/lib/libdrm_radeon.so.1 -> libdrm_radeon.so.1.0.1
+lrwxrwxrwx root root 18 ./usr/lib/libdrm_radeon.so -> libdrm_radeon.so.1
+-rwxr-xr-x root root 79752 ./usr/lib/libdrm.so.2.4.0
+lrwxrwxrwx root root 15 ./usr/lib/libdrm.so.2 -> libdrm.so.2.4.0
+lrwxrwxrwx root root 11 ./usr/lib/libdrm.so -> libdrm.so.2
+-rwxr-xr-x root root 650160 ./usr/lib/libdw-0.179.so
+lrwxrwxrwx root root 14 ./usr/lib/libdw.so.1 -> libdw-0.179.so
+lrwxrwxrwx root root 10 ./usr/lib/libdw.so -> libdw.so.1
+-rwxr-xr-x root root 100384 ./usr/lib/libelf-0.179.so
+lrwxrwxrwx root root 15 ./usr/lib/libelf.so.1 -> libelf-0.179.so
+lrwxrwxrwx root root 11 ./usr/lib/libelf.so -> libelf.so.1
+-rwxr-xr-x root root 182160 ./usr/lib/libexpat.so.1.6.11
+lrwxrwxrwx root root 18 ./usr/lib/libexpat.so.1 -> libexpat.so.1.6.11
+lrwxrwxrwx root root 18 ./usr/lib/libexpat.so -> libexpat.so.1.6.11
+lrwxrwxrwx root root 27 ./usr/lib/libfdisk.so -> ../../lib/libfdisk.so.1.1.0
+-rwxr-xr-x root root 43032 ./usr/lib/libffi.so.7.1.0
+lrwxrwxrwx root root 15 ./usr/lib/libffi.so.7 -> libffi.so.7.1.0
+lrwxrwxrwx root root 15 ./usr/lib/libffi.so -> libffi.so.7.1.0
+-rwxr-xr-x root root 14072 ./usr/lib/libfl.so.2.0.0
+lrwxrwxrwx root root 14 ./usr/lib/libfl.so.2 -> libfl.so.2.0.0
+lrwxrwxrwx root root 14 ./usr/lib/libfl.so -> libfl.so.2.0.0
+-rwxr-xr-x root root 288664 ./usr/lib/libfontconfig.so.1.12.0
+lrwxrwxrwx root root 23 ./usr/lib/libfontconfig.so.1 -> libfontconfig.so.1.12.0
+lrwxrwxrwx root root 23 ./usr/lib/libfontconfig.so -> libfontconfig.so.1.12.0
+-rwxr-xr-x root root 68696 ./usr/lib/libform.so.5.9
+lrwxrwxrwx root root 14 ./usr/lib/libform.so.5 -> libform.so.5.9
+lrwxrwxrwx root root 12 ./usr/lib/libform.so -> libform.so.5
+-rwxr-xr-x root root 76952 ./usr/lib/libformw.so.5.9
+lrwxrwxrwx root root 15 ./usr/lib/libformw.so.5 -> libformw.so.5.9
+lrwxrwxrwx root root 13 ./usr/lib/libformw.so -> libformw.so.5
+-rwxr-xr-x root root 722832 ./usr/lib/libfreetype.so.6.17.2
+lrwxrwxrwx root root 21 ./usr/lib/libfreetype.so.6 -> libfreetype.so.6.17.2
+lrwxrwxrwx root root 21 ./usr/lib/libfreetype.so -> libfreetype.so.6.17.2
+-rwxr-xr-x root root 14080 ./usr/lib/libgdbm_compat.so.4.0.0
+lrwxrwxrwx root root 23 ./usr/lib/libgdbm_compat.so.4 -> libgdbm_compat.so.4.0.0
+lrwxrwxrwx root root 23 ./usr/lib/libgdbm_compat.so -> libgdbm_compat.so.4.0.0
+-rwxr-xr-x root root 59392 ./usr/lib/libgdbm.so.6.0.0
+lrwxrwxrwx root root 16 ./usr/lib/libgdbm.so.6 -> libgdbm.so.6.0.0
+lrwxrwxrwx root root 16 ./usr/lib/libgdbm.so -> libgdbm.so.6.0.0
+-rwxr-xr-x root root 1932600 ./usr/lib/libgio-2.0.so.0.6400.2
+lrwxrwxrwx root root 22 ./usr/lib/libgio-2.0.so.0 -> libgio-2.0.so.0.6400.2
+lrwxrwxrwx root root 15 ./usr/lib/libgio-2.0.so -> libgio-2.0.so.0
+-rwxr-xr-x root root 223248 ./usr/lib/libgirepository-1.0.so.1.0.0
+lrwxrwxrwx root root 28 ./usr/lib/libgirepository-1.0.so.1 -> libgirepository-1.0.so.1.0.0
+lrwxrwxrwx root root 24 ./usr/lib/libgirepository-1.0.so -> libgirepository-1.0.so.1
+-rwxr-xr-x root root 325664 ./usr/lib/libglapi.so.0.0.0
+lrwxrwxrwx root root 17 ./usr/lib/libglapi.so.0 -> libglapi.so.0.0.0
+lrwxrwxrwx root root 13 ./usr/lib/libglapi.so -> libglapi.so.0
+-rwxr-xr-x root root 1203480 ./usr/lib/libglib-2.0.so.0.6400.2
+lrwxrwxrwx root root 23 ./usr/lib/libglib-2.0.so.0 -> libglib-2.0.so.0.6400.2
+lrwxrwxrwx root root 16 ./usr/lib/libglib-2.0.so -> libglib-2.0.so.0
+-rwxr-xr-x root root 498608 ./usr/lib/libGL.so.1.2.0
+lrwxrwxrwx root root 14 ./usr/lib/libGL.so.1 -> libGL.so.1.2.0
+lrwxrwxrwx root root 10 ./usr/lib/libGL.so -> libGL.so.1
+-rwxr-xr-x root root 18304 ./usr/lib/libgmodule-2.0.so.0.6400.2
+lrwxrwxrwx root root 26 ./usr/lib/libgmodule-2.0.so.0 -> libgmodule-2.0.so.0.6400.2
+lrwxrwxrwx root root 19 ./usr/lib/libgmodule-2.0.so -> libgmodule-2.0.so.0
+-rwxr-xr-x root root 489440 ./usr/lib/libgmp.so.10.4.0
+lrwxrwxrwx root root 16 ./usr/lib/libgmp.so.10 -> libgmp.so.10.4.0
+lrwxrwxrwx root root 16 ./usr/lib/libgmp.so -> libgmp.so.10.4.0
+-rwxr-xr-x root root 30696 ./usr/lib/libgmpxx.so.4.6.0
+lrwxrwxrwx root root 17 ./usr/lib/libgmpxx.so.4 -> libgmpxx.so.4.6.0
+lrwxrwxrwx root root 17 ./usr/lib/libgmpxx.so -> libgmpxx.so.4.6.0
+-rwxr-xr-x root root 354344 ./usr/lib/libgobject-2.0.so.0.6400.2
+lrwxrwxrwx root root 26 ./usr/lib/libgobject-2.0.so.0 -> libgobject-2.0.so.0.6400.2
+lrwxrwxrwx root root 19 ./usr/lib/libgobject-2.0.so -> libgobject-2.0.so.0
+-rwxr-xr-x root root 14000 ./usr/lib/libgthread-2.0.so.0.6400.2
+lrwxrwxrwx root root 26 ./usr/lib/libgthread-2.0.so.0 -> libgthread-2.0.so.0.6400.2
+lrwxrwxrwx root root 19 ./usr/lib/libgthread-2.0.so -> libgthread-2.0.so.0
+-rwxr-xr-x root root 46944 ./usr/lib/libhistory.so.8.0
+lrwxrwxrwx root root 17 ./usr/lib/libhistory.so.8 -> libhistory.so.8.0
+lrwxrwxrwx root root 17 ./usr/lib/libhistory.so -> libhistory.so.8.0
+-rwxr-xr-x root root 101096 ./usr/lib/libICE.so.6.3.0
+lrwxrwxrwx root root 15 ./usr/lib/libICE.so.6 -> libICE.so.6.3.0
+lrwxrwxrwx root root 15 ./usr/lib/libICE.so -> libICE.so.6.3.0
+-rwxr-xr-x root root 35256 ./usr/lib/libip4tc.so.2.0.0
+lrwxrwxrwx root root 17 ./usr/lib/libip4tc.so.2 -> libip4tc.so.2.0.0
+lrwxrwxrwx root root 17 ./usr/lib/libip4tc.so -> libip4tc.so.2.0.0
+-rwxr-xr-x root root 35256 ./usr/lib/libip6tc.so.2.0.0
+lrwxrwxrwx root root 17 ./usr/lib/libip6tc.so.2 -> libip6tc.so.2.0.0
+lrwxrwxrwx root root 17 ./usr/lib/libip6tc.so -> libip6tc.so.2.0.0
+-rwxr-xr-x root root 83992 ./usr/lib/libkmod.so.2.3.4
+lrwxrwxrwx root root 16 ./usr/lib/libkmod.so.2 -> libkmod.so.2.3.4
+lrwxrwxrwx root root 16 ./usr/lib/libkmod.so -> libkmod.so.2.3.4
+-rwxr-xr-x root root 18240 ./usr/lib/libkms.so.1.0.0
+lrwxrwxrwx root root 15 ./usr/lib/libkms.so.1 -> libkms.so.1.0.0
+lrwxrwxrwx root root 11 ./usr/lib/libkms.so -> libkms.so.1
+-rwxr-xr-x root root 161760 ./usr/lib/liblzma.so.5.2.5
+lrwxrwxrwx root root 16 ./usr/lib/liblzma.so.5 -> liblzma.so.5.2.5
+lrwxrwxrwx root root 16 ./usr/lib/liblzma.so -> liblzma.so.5.2.5
+-rwxr-xr-x root root 141200 ./usr/lib/liblzo2.so.2.0.0
+lrwxrwxrwx root root 16 ./usr/lib/liblzo2.so.2 -> liblzo2.so.2.0.0
+lrwxrwxrwx root root 16 ./usr/lib/liblzo2.so -> liblzo2.so.2.0.0
+-rwxr-xr-x root root 34976 ./usr/lib/libmenu.so.5.9
+lrwxrwxrwx root root 14 ./usr/lib/libmenu.so.5 -> libmenu.so.5.9
+lrwxrwxrwx root root 12 ./usr/lib/libmenu.so -> libmenu.so.5
+-rwxr-xr-x root root 39072 ./usr/lib/libmenuw.so.5.9
+lrwxrwxrwx root root 15 ./usr/lib/libmenuw.so.5 -> libmenuw.so.5.9
+lrwxrwxrwx root root 13 ./usr/lib/libmenuw.so -> libmenuw.so.5
+-rwxr-xr-x root root 26584 ./usr/lib/libmnl.so.0.2.0
+lrwxrwxrwx root root 15 ./usr/lib/libmnl.so.0 -> libmnl.so.0.2.0
+lrwxrwxrwx root root 15 ./usr/lib/libmnl.so -> libmnl.so.0.2.0
+lrwxrwxrwx root root 27 ./usr/lib/libmount.so -> ../../lib/libmount.so.1.1.0
+-rw-r--r-- root root 106 ./usr/lib/libm.so
+lrwxrwxrwx root root 22 ./usr/lib/libmvec.so -> ../../lib/libmvec.so.1
+-rw-r--r-- root root 62 ./usr/lib/libncurses.so
+-rw-r--r-- root root 63 ./usr/lib/libncursesw.so
+-rwxr-xr-x root root 96288 ./usr/lib/libnsl.so.2.0.0
+lrwxrwxrwx root root 15 ./usr/lib/libnsl.so.2 -> libnsl.so.2.0.0
+lrwxrwxrwx root root 15 ./usr/lib/libnsl.so -> libnsl.so.2.0.0
+lrwxrwxrwx root root 28 ./usr/lib/libnss_compat.so -> ../../lib/libnss_compat.so.2
+lrwxrwxrwx root root 24 ./usr/lib/libnss_db.so -> ../../lib/libnss_db.so.2
+lrwxrwxrwx root root 25 ./usr/lib/libnss_dns.so -> ../../lib/libnss_dns.so.2
+lrwxrwxrwx root root 27 ./usr/lib/libnss_files.so -> ../../lib/libnss_files.so.2
+lrwxrwxrwx root root 28 ./usr/lib/libnss_hesiod.so -> ../../lib/libnss_hesiod.so.2
+-rwxr-xr-x root root 1426544 ./usr/lib/libopcodes-2.34.0.20200220.so
+lrwxrwxrwx root root 29 ./usr/lib/libopcodes.so -> libopcodes-2.34.0.20200220.so
+-rwxr-xr-x root root 18168 ./usr/lib/libpanel.so.5.9
+lrwxrwxrwx root root 15 ./usr/lib/libpanel.so.5 -> libpanel.so.5.9
+lrwxrwxrwx root root 13 ./usr/lib/libpanel.so -> libpanel.so.5
+-rwxr-xr-x root root 18168 ./usr/lib/libpanelw.so.5.9
+lrwxrwxrwx root root 16 ./usr/lib/libpanelw.so.5 -> libpanelw.so.5.9
+lrwxrwxrwx root root 14 ./usr/lib/libpanelw.so -> libpanelw.so.5
+-rwxr-xr-x root root 42896 ./usr/lib/libpciaccess.so.0.11.1
+lrwxrwxrwx root root 22 ./usr/lib/libpciaccess.so.0 -> libpciaccess.so.0.11.1
+lrwxrwxrwx root root 22 ./usr/lib/libpciaccess.so -> libpciaccess.so.0.11.1
+-rwxr-xr-x root root 42984 ./usr/lib/libpcrecpp.so.0.0.2
+lrwxrwxrwx root root 19 ./usr/lib/libpcrecpp.so.0 -> libpcrecpp.so.0.0.2
+lrwxrwxrwx root root 19 ./usr/lib/libpcrecpp.so -> libpcrecpp.so.0.0.2
+-rwxr-xr-x root root 14224 ./usr/lib/libpcreposix.so.0.0.7
+lrwxrwxrwx root root 21 ./usr/lib/libpcreposix.so.0 -> libpcreposix.so.0.0.7
+lrwxrwxrwx root root 21 ./usr/lib/libpcreposix.so -> libpcreposix.so.0.0.7
+-rwxr-xr-x root root 489400 ./usr/lib/libpcre.so.1.2.12
+lrwxrwxrwx root root 17 ./usr/lib/libpcre.so.1 -> libpcre.so.1.2.12
+lrwxrwxrwx root root 17 ./usr/lib/libpcre.so -> libpcre.so.1.2.12
+-r-xr-xr-x root root 3351136 ./usr/lib/libperl.so.5.30.0
+lrwxrwxrwx root root 17 ./usr/lib/libperl.so.5 -> libperl.so.5.30.0
+lrwxrwxrwx root root 17 ./usr/lib/libperl.so -> libperl.so.5.30.0
+-rwxr-xr-x root root 686072 ./usr/lib/libpixman-1.so.0.38.4
+lrwxrwxrwx root root 21 ./usr/lib/libpixman-1.so.0 -> libpixman-1.so.0.38.4
+lrwxrwxrwx root root 16 ./usr/lib/libpixman-1.so -> libpixman-1.so.0
+-rwxr-xr-x root root 219024 ./usr/lib/libpng16.so.16.37.0
+lrwxrwxrwx root root 19 ./usr/lib/libpng16.so.16 -> libpng16.so.16.37.0
+lrwxrwxrwx root root 19 ./usr/lib/libpng16.so -> libpng16.so.16.37.0
+lrwxrwxrwx root root 11 ./usr/lib/libpng.so -> libpng16.so
+-rwxr-xr-x root root 79888 ./usr/lib/libprocps.so.8.0.2
+lrwxrwxrwx root root 18 ./usr/lib/libprocps.so.8 -> libprocps.so.8.0.2
+lrwxrwxrwx root root 18 ./usr/lib/libprocps.so -> libprocps.so.8.0.2
+lrwxrwxrwx root root 25 ./usr/lib/libpthread.so -> ../../lib/libpthread.so.0
+-rwxr-xr-x root root 3267712 ./usr/lib/libpython3.8.so.1.0
+lrwxrwxrwx root root 19 ./usr/lib/libpython3.8.so -> libpython3.8.so.1.0
+-rwxr-xr-x root root 13920 ./usr/lib/libpython3.so
+-rwxr-xr-x root root 330696 ./usr/lib/libreadline.so.8.0
+lrwxrwxrwx root root 18 ./usr/lib/libreadline.so.8 -> libreadline.so.8.0
+lrwxrwxrwx root root 18 ./usr/lib/libreadline.so -> libreadline.so.8.0
+lrwxrwxrwx root root 24 ./usr/lib/libresolv.so -> ../../lib/libresolv.so.2
+lrwxrwxrwx root root 20 ./usr/lib/librt.so -> ../../lib/librt.so.1
+lrwxrwxrwx root root 31 ./usr/lib/libsmartcols.so -> ../../lib/libsmartcols.so.1.1.0
+-rwxr-xr-x root root 38736 ./usr/lib/libSM.so.6.0.1
+lrwxrwxrwx root root 14 ./usr/lib/libSM.so.6 -> libSM.so.6.0.1
+lrwxrwxrwx root root 14 ./usr/lib/libSM.so -> libSM.so.6.0.1
+-rwxr-xr-x root root 1244736 ./usr/lib/libsqlite3.so.0.8.6
+lrwxrwxrwx root root 19 ./usr/lib/libsqlite3.so.0 -> libsqlite3.so.0.8.6
+lrwxrwxrwx root root 19 ./usr/lib/libsqlite3.so -> libsqlite3.so.0.8.6
+-rwxr-xr-x root root 593728 ./usr/lib/libssl.so.1.1
+lrwxrwxrwx root root 13 ./usr/lib/libssl.so -> libssl.so.1.1
+-rwxr-xr-x root root 1866240 ./usr/lib/libstdc++.so.6.0.28
+lrwxrwxrwx root root 19 ./usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.28
+lrwxrwxrwx root root 19 ./usr/lib/libstdc++.so -> libstdc++.so.6.0.28
+-rw-r--r-- root root 46 ./usr/lib/libtermcap.so
+lrwxrwxrwx root root 27 ./usr/lib/libthread_db.so -> ../../lib/libthread_db.so.1
+-rwxr-xr-x root root 67472 ./usr/lib/libtic.so.5.9
+lrwxrwxrwx root root 13 ./usr/lib/libtic.so.5 -> libtic.so.5.9
+lrwxrwxrwx root root 11 ./usr/lib/libtic.so -> libtic.so.5
+-rwxr-xr-x root root 67472 ./usr/lib/libticw.so.5.9
+lrwxrwxrwx root root 14 ./usr/lib/libticw.so.5 -> libticw.so.5.9
+lrwxrwxrwx root root 12 ./usr/lib/libticw.so -> libticw.so.5
+lrwxrwxrwx root root 23 ./usr/lib/libtinfo.so -> ../../lib/libtinfo.so.5
+-rwxr-xr-x root root 161888 ./usr/lib/libtirpc.so.3.0.0
+lrwxrwxrwx root root 17 ./usr/lib/libtirpc.so.3 -> libtirpc.so.3.0.0
+lrwxrwxrwx root root 17 ./usr/lib/libtirpc.so -> libtirpc.so.3.0.0
+lrwxrwxrwx root root 26 ./usr/lib/libudev.so -> ../../lib/libudev.so.1.6.3
+lrwxrwxrwx root root 22 ./usr/lib/libutil.so -> ../../lib/libutil.so.1
+lrwxrwxrwx root root 26 ./usr/lib/libuuid.so -> ../../lib/libuuid.so.1.3.0
+-rwxr-xr-x root root 68272 ./usr/lib/libwayland-client.so.0.3.0
+lrwxrwxrwx root root 26 ./usr/lib/libwayland-client.so.0 -> libwayland-client.so.0.3.0
+lrwxrwxrwx root root 22 ./usr/lib/libwayland-client.so -> libwayland-client.so.0
+-rwxr-xr-x root root 30720 ./usr/lib/libwayland-cursor.so.0.0.0
+lrwxrwxrwx root root 26 ./usr/lib/libwayland-cursor.so.0 -> libwayland-cursor.so.0.0.0
+lrwxrwxrwx root root 22 ./usr/lib/libwayland-cursor.so -> libwayland-cursor.so.0
+-rwxr-xr-x root root 14080 ./usr/lib/libwayland-egl.so.1.0.0
+lrwxrwxrwx root root 23 ./usr/lib/libwayland-egl.so.1 -> libwayland-egl.so.1.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libwayland-egl.so -> libwayland-egl.so.1
+-rwxr-xr-x root root 88784 ./usr/lib/libwayland-server.so.0.1.0
+lrwxrwxrwx root root 26 ./usr/lib/libwayland-server.so.0 -> libwayland-server.so.0.1.0
+lrwxrwxrwx root root 22 ./usr/lib/libwayland-server.so -> libwayland-server.so.0
+lrwxrwxrwx root root 26 ./usr/lib/libwrap.so -> ../../lib/libwrap.so.0.7.6
+-rwxr-xr-x root root 1308960 ./usr/lib/libX11.so.6.3.0
+lrwxrwxrwx root root 15 ./usr/lib/libX11.so.6 -> libX11.so.6.3.0
+lrwxrwxrwx root root 15 ./usr/lib/libX11.so -> libX11.so.6.3.0
+-rwxr-xr-x root root 13848 ./usr/lib/libX11-xcb.so.1.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libX11-xcb.so.1 -> libX11-xcb.so.1.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libX11-xcb.so -> libX11-xcb.so.1.0.0
+-rwxr-xr-x root root 14144 ./usr/lib/libXau.so.6.0.0
+lrwxrwxrwx root root 15 ./usr/lib/libXau.so.6 -> libXau.so.6.0.0
+lrwxrwxrwx root root 15 ./usr/lib/libXau.so -> libXau.so.6.0.0
+-rwxr-xr-x root root 14256 ./usr/lib/libxcb-composite.so.0.0.0
+lrwxrwxrwx root root 25 ./usr/lib/libxcb-composite.so.0 -> libxcb-composite.so.0.0.0
+lrwxrwxrwx root root 25 ./usr/lib/libxcb-composite.so -> libxcb-composite.so.0.0.0
+-rwxr-xr-x root root 14248 ./usr/lib/libxcb-damage.so.0.0.0
+lrwxrwxrwx root root 22 ./usr/lib/libxcb-damage.so.0 -> libxcb-damage.so.0.0.0
+lrwxrwxrwx root root 22 ./usr/lib/libxcb-damage.so -> libxcb-damage.so.0.0.0
+-rwxr-xr-x root root 14248 ./usr/lib/libxcb-dpms.so.0.0.0
+lrwxrwxrwx root root 20 ./usr/lib/libxcb-dpms.so.0 -> libxcb-dpms.so.0.0.0
+lrwxrwxrwx root root 20 ./usr/lib/libxcb-dpms.so -> libxcb-dpms.so.0.0.0
+-rwxr-xr-x root root 22440 ./usr/lib/libxcb-dri2.so.0.0.0
+lrwxrwxrwx root root 20 ./usr/lib/libxcb-dri2.so.0 -> libxcb-dri2.so.0.0.0
+lrwxrwxrwx root root 20 ./usr/lib/libxcb-dri2.so -> libxcb-dri2.so.0.0.0
+-rwxr-xr-x root root 18344 ./usr/lib/libxcb-dri3.so.0.0.0
+lrwxrwxrwx root root 20 ./usr/lib/libxcb-dri3.so.0 -> libxcb-dri3.so.0.0.0
+lrwxrwxrwx root root 20 ./usr/lib/libxcb-dri3.so -> libxcb-dri3.so.0.0.0
+-rwxr-xr-x root root 116648 ./usr/lib/libxcb-glx.so.0.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libxcb-glx.so.0 -> libxcb-glx.so.0.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libxcb-glx.so -> libxcb-glx.so.0.0.0
+-rwxr-xr-x root root 14248 ./usr/lib/libxcb-present.so.0.0.0
+lrwxrwxrwx root root 23 ./usr/lib/libxcb-present.so.0 -> libxcb-present.so.0.0.0
+lrwxrwxrwx root root 23 ./usr/lib/libxcb-present.so -> libxcb-present.so.0.0.0
+-rwxr-xr-x root root 67496 ./usr/lib/libxcb-randr.so.0.1.0
+lrwxrwxrwx root root 21 ./usr/lib/libxcb-randr.so.0 -> libxcb-randr.so.0.1.0
+lrwxrwxrwx root root 21 ./usr/lib/libxcb-randr.so -> libxcb-randr.so.0.1.0
+-rwxr-xr-x root root 18344 ./usr/lib/libxcb-record.so.0.0.0
+lrwxrwxrwx root root 22 ./usr/lib/libxcb-record.so.0 -> libxcb-record.so.0.0.0
+lrwxrwxrwx root root 22 ./usr/lib/libxcb-record.so -> libxcb-record.so.0.0.0
+-rwxr-xr-x root root 59304 ./usr/lib/libxcb-render.so.0.0.0
+lrwxrwxrwx root root 22 ./usr/lib/libxcb-render.so.0 -> libxcb-render.so.0.0.0
+lrwxrwxrwx root root 22 ./usr/lib/libxcb-render.so -> libxcb-render.so.0.0.0
+-rwxr-xr-x root root 18344 ./usr/lib/libxcb-res.so.0.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libxcb-res.so.0 -> libxcb-res.so.0.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libxcb-res.so -> libxcb-res.so.0.0.0
+-rwxr-xr-x root root 14256 ./usr/lib/libxcb-screensaver.so.0.0.0
+lrwxrwxrwx root root 27 ./usr/lib/libxcb-screensaver.so.0 -> libxcb-screensaver.so.0.0.0
+lrwxrwxrwx root root 27 ./usr/lib/libxcb-screensaver.so -> libxcb-screensaver.so.0.0.0
+-rwxr-xr-x root root 14248 ./usr/lib/libxcb-shape.so.0.0.0
+lrwxrwxrwx root root 21 ./usr/lib/libxcb-shape.so.0 -> libxcb-shape.so.0.0.0
+lrwxrwxrwx root root 21 ./usr/lib/libxcb-shape.so -> libxcb-shape.so.0.0.0
+-rwxr-xr-x root root 14248 ./usr/lib/libxcb-shm.so.0.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libxcb-shm.so.0 -> libxcb-shm.so.0.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libxcb-shm.so -> libxcb-shm.so.0.0.0
+-rwxr-xr-x root root 169920 ./usr/lib/libxcb.so.1.1.0
+lrwxrwxrwx root root 15 ./usr/lib/libxcb.so.1 -> libxcb.so.1.1.0
+lrwxrwxrwx root root 15 ./usr/lib/libxcb.so -> libxcb.so.1.1.0
+-rwxr-xr-x root root 34728 ./usr/lib/libxcb-sync.so.1.0.0
+lrwxrwxrwx root root 20 ./usr/lib/libxcb-sync.so.1 -> libxcb-sync.so.1.0.0
+lrwxrwxrwx root root 20 ./usr/lib/libxcb-sync.so -> libxcb-sync.so.1.0.0
+-rwxr-xr-x root root 18344 ./usr/lib/libxcb-xf86dri.so.0.0.0
+lrwxrwxrwx root root 23 ./usr/lib/libxcb-xf86dri.so.0 -> libxcb-xf86dri.so.0.0.0
+lrwxrwxrwx root root 23 ./usr/lib/libxcb-xf86dri.so -> libxcb-xf86dri.so.0.0.0
+-rwxr-xr-x root root 34728 ./usr/lib/libxcb-xfixes.so.0.0.0
+lrwxrwxrwx root root 22 ./usr/lib/libxcb-xfixes.so.0 -> libxcb-xfixes.so.0.0.0
+lrwxrwxrwx root root 22 ./usr/lib/libxcb-xfixes.so -> libxcb-xfixes.so.0.0.0
+-rwxr-xr-x root root 14256 ./usr/lib/libxcb-xinerama.so.0.0.0
+lrwxrwxrwx root root 24 ./usr/lib/libxcb-xinerama.so.0 -> libxcb-xinerama.so.0.0.0
+lrwxrwxrwx root root 24 ./usr/lib/libxcb-xinerama.so -> libxcb-xinerama.so.0.0.0
+-rwxr-xr-x root root 149416 ./usr/lib/libxcb-xinput.so.0.1.0
+lrwxrwxrwx root root 22 ./usr/lib/libxcb-xinput.so.0 -> libxcb-xinput.so.0.1.0
+lrwxrwxrwx root root 22 ./usr/lib/libxcb-xinput.so -> libxcb-xinput.so.0.1.0
+-rwxr-xr-x root root 120744 ./usr/lib/libxcb-xkb.so.1.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libxcb-xkb.so.1 -> libxcb-xkb.so.1.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libxcb-xkb.so -> libxcb-xkb.so.1.0.0
+-rwxr-xr-x root root 14248 ./usr/lib/libxcb-xtest.so.0.0.0
+lrwxrwxrwx root root 21 ./usr/lib/libxcb-xtest.so.0 -> libxcb-xtest.so.0.0.0
+lrwxrwxrwx root root 21 ./usr/lib/libxcb-xtest.so -> libxcb-xtest.so.0.0.0
+-rwxr-xr-x root root 18344 ./usr/lib/libxcb-xvmc.so.0.0.0
+lrwxrwxrwx root root 20 ./usr/lib/libxcb-xvmc.so.0 -> libxcb-xvmc.so.0.0.0
+lrwxrwxrwx root root 20 ./usr/lib/libxcb-xvmc.so -> libxcb-xvmc.so.0.0.0
+-rwxr-xr-x root root 34728 ./usr/lib/libxcb-xv.so.0.0.0
+lrwxrwxrwx root root 18 ./usr/lib/libxcb-xv.so.0 -> libxcb-xv.so.0.0.0
+lrwxrwxrwx root root 18 ./usr/lib/libxcb-xv.so -> libxcb-xv.so.0.0.0
+-rwxr-xr-x root root 14144 ./usr/lib/libXdamage.so.1.1.0
+lrwxrwxrwx root root 19 ./usr/lib/libXdamage.so.1 -> libXdamage.so.1.1.0
+lrwxrwxrwx root root 19 ./usr/lib/libXdamage.so -> libXdamage.so.1.1.0
+-rwxr-xr-x root root 26432 ./usr/lib/libXdmcp.so.6.0.0
+lrwxrwxrwx root root 17 ./usr/lib/libXdmcp.so.6 -> libXdmcp.so.6.0.0
+lrwxrwxrwx root root 17 ./usr/lib/libXdmcp.so -> libXdmcp.so.6.0.0
+-rwxr-xr-x root root 80992 ./usr/lib/libXext.so.6.4.0
+lrwxrwxrwx root root 16 ./usr/lib/libXext.so.6 -> libXext.so.6.4.0
+lrwxrwxrwx root root 16 ./usr/lib/libXext.so -> libXext.so.6.4.0
+-rwxr-xr-x root root 30464 ./usr/lib/libXfixes.so.3.1.0
+lrwxrwxrwx root root 18 ./usr/lib/libXfixes.so.3 -> libXfixes.so.3.1.0
+lrwxrwxrwx root root 18 ./usr/lib/libXfixes.so -> libXfixes.so.3.1.0
+-rwxr-xr-x root root 1409880 ./usr/lib/libxml2.so.2.9.10
+lrwxrwxrwx root root 17 ./usr/lib/libxml2.so.2 -> libxml2.so.2.9.10
+lrwxrwxrwx root root 17 ./usr/lib/libxml2.so -> libxml2.so.2.9.10
+-rwxr-xr-x root root 47024 ./usr/lib/libXrandr.so.2.2.0
+lrwxrwxrwx root root 18 ./usr/lib/libXrandr.so.2 -> libXrandr.so.2.2.0
+lrwxrwxrwx root root 18 ./usr/lib/libXrandr.so -> libXrandr.so.2.2.0
+-rwxr-xr-x root root 47184 ./usr/lib/libXrender.so.1.3.0
+lrwxrwxrwx root root 19 ./usr/lib/libXrender.so.1 -> libXrender.so.1.3.0
+lrwxrwxrwx root root 19 ./usr/lib/libXrender.so -> libXrender.so.1.3.0
+-rwxr-xr-x root root 14152 ./usr/lib/libxshmfence.so.1.0.0
+lrwxrwxrwx root root 21 ./usr/lib/libxshmfence.so.1 -> libxshmfence.so.1.0.0
+lrwxrwxrwx root root 21 ./usr/lib/libxshmfence.so -> libxshmfence.so.1.0.0
+-rwxr-xr-x root root 63384 ./usr/lib/libxtables.so.12.2.0
+lrwxrwxrwx root root 20 ./usr/lib/libxtables.so.12 -> libxtables.so.12.2.0
+lrwxrwxrwx root root 20 ./usr/lib/libxtables.so -> libxtables.so.12.2.0
+-rwxr-xr-x root root 22456 ./usr/lib/libXxf86vm.so.1.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libXxf86vm.so.1 -> libXxf86vm.so.1.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libXxf86vm.so -> libXxf86vm.so.1.0.0
+lrwxrwxrwx root root 24 ./usr/lib/libz.so -> ../../lib/libz.so.1.2.11
+-rw-r--r-- root root 1368 ./usr/lib/Mcrt1.o
+drwxr-xr-x root root 4096 ./usr/lib/opkg
+drwxr-xr-x root root 12288 ./usr/lib/opkg/alternatives
+-rw-r--r-- root root 35 ./usr/lib/opkg/alternatives/[[
+-rw-r--r-- root root 42 ./usr/lib/opkg/alternatives/addgroup
+-rw-r--r-- root root 60 ./usr/lib/opkg/alternatives/addr2line
+-rw-r--r-- root root 41 ./usr/lib/opkg/alternatives/adduser
+-rw-r--r-- root root 46 ./usr/lib/opkg/alternatives/ar
+-rw-r--r-- root root 42 ./usr/lib/opkg/alternatives/arch
+-rw-r--r-- root root 46 ./usr/lib/opkg/alternatives/as
+-rw-r--r-- root root 32 ./usr/lib/opkg/alternatives/ash
+-rw-r--r-- root root 54 ./usr/lib/opkg/alternatives/awk
+-rw-r--r-- root root 42 ./usr/lib/opkg/alternatives/base64
+-rw-r--r-- root root 73 ./usr/lib/opkg/alternatives/basename
+-rw-r--r-- root root 29 ./usr/lib/opkg/alternatives/bash
+-rw-r--r-- root root 31 ./usr/lib/opkg/alternatives/bc
+-rw-r--r-- root root 30 ./usr/lib/opkg/alternatives/bin-lsmod
+-rw-r--r-- root root 61 ./usr/lib/opkg/alternatives/blkid
+-rw-r--r-- root root 44 ./usr/lib/opkg/alternatives/blockdev
+-rw-r--r-- root root 67 ./usr/lib/opkg/alternatives/bunzip2
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/bzcat
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/bzip2
+-rw-r--r-- root root 40 ./usr/lib/opkg/alternatives/cal
+-rw-r--r-- root root 55 ./usr/lib/opkg/alternatives/cat
+-rw-r--r-- root root 56 ./usr/lib/opkg/alternatives/c++filt
+-rw-r--r-- root root 61 ./usr/lib/opkg/alternatives/chattr
+-rw-r--r-- root root 44 ./usr/lib/opkg/alternatives/chcon
+-rw-r--r-- root root 39 ./usr/lib/opkg/alternatives/chfn
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/chgrp
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/chmod
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/chown
+-rw-r--r-- root root 49 ./usr/lib/opkg/alternatives/chpasswd
+-rw-r--r-- root root 71 ./usr/lib/opkg/alternatives/chroot
+-rw-r--r-- root root 42 ./usr/lib/opkg/alternatives/chrt
+-rw-r--r-- root root 39 ./usr/lib/opkg/alternatives/chsh
+-rw-r--r-- root root 37 ./usr/lib/opkg/alternatives/chvt
+-rw-r--r-- root root 44 ./usr/lib/opkg/alternatives/cksum
+-rw-r--r-- root root 38 ./usr/lib/opkg/alternatives/clear
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/cmp
+-rw-r--r-- root root 42 ./usr/lib/opkg/alternatives/comm
+-rw-r--r-- root root 53 ./usr/lib/opkg/alternatives/cp
+-rw-r--r-- root root 33 ./usr/lib/opkg/alternatives/cpio
+-rw-r--r-- root root 46 ./usr/lib/opkg/alternatives/csplit
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/cut
+-rw-r--r-- root root 57 ./usr/lib/opkg/alternatives/date
+-rw-r--r-- root root 54 ./usr/lib/opkg/alternatives/dc
+-rw-r--r-- root root 53 ./usr/lib/opkg/alternatives/dd
+-rw-r--r-- root root 42 ./usr/lib/opkg/alternatives/deallocvt
+-rw-r--r-- root root 42 ./usr/lib/opkg/alternatives/delgroup
+-rw-r--r-- root root 41 ./usr/lib/opkg/alternatives/deluser
+-rw-r--r-- root root 57 ./usr/lib/opkg/alternatives/depmod
+-rw-r--r-- root root 57 ./usr/lib/opkg/alternatives/df
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/diff
+-rw-r--r-- root root 40 ./usr/lib/opkg/alternatives/dir
+-rw-r--r-- root root 52 ./usr/lib/opkg/alternatives/dircolors
+-rw-r--r-- root root 71 ./usr/lib/opkg/alternatives/dirname
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/dmesg
+-rw-r--r-- root root 42 ./usr/lib/opkg/alternatives/dnsdomainname
+-rw-r--r-- root root 61 ./usr/lib/opkg/alternatives/du
+-rw-r--r-- root root 37 ./usr/lib/opkg/alternatives/dumpkmap
+-rw-r--r-- root root 43 ./usr/lib/opkg/alternatives/dumpleases
+-rw-r--r-- root root 48 ./usr/lib/opkg/alternatives/dwp
+-rw-r--r-- root root 57 ./usr/lib/opkg/alternatives/echo
+-rw-r--r-- root root 54 ./usr/lib/opkg/alternatives/egrep
+-rw-r--r-- root root 44 ./usr/lib/opkg/alternatives/eject
+-rw-r--r-- root root 56 ./usr/lib/opkg/alternatives/elfedit
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/env
+-rw-r--r-- root root 46 ./usr/lib/opkg/alternatives/expand
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/expr
+-rw-r--r-- root root 46 ./usr/lib/opkg/alternatives/factor
+-rw-r--r-- root root 52 ./usr/lib/opkg/alternatives/fallocate
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/false
+-rw-r--r-- root root 39 ./usr/lib/opkg/alternatives/fbset
+-rw-r--r-- root root 61 ./usr/lib/opkg/alternatives/fdisk
+-rw-r--r-- root root 54 ./usr/lib/opkg/alternatives/fgrep
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/find
+-rw-r--r-- root root 67 ./usr/lib/opkg/alternatives/flock
+-rw-r--r-- root root 40 ./usr/lib/opkg/alternatives/fmt
+-rw-r--r-- root root 42 ./usr/lib/opkg/alternatives/fold
+-rw-r--r-- root root 62 ./usr/lib/opkg/alternatives/free
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/fsck
+-rw-r--r-- root root 52 ./usr/lib/opkg/alternatives/fsfreeze
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/fstrim
+-rw-r--r-- root root 38 ./usr/lib/opkg/alternatives/fuser
+-rw-r--r-- root root 61 ./usr/lib/opkg/alternatives/getopt
+-rw-r--r-- root root 51 ./usr/lib/opkg/alternatives/getty
+-rw-r--r-- root root 52 ./usr/lib/opkg/alternatives/gprof
+-rw-r--r-- root root 52 ./usr/lib/opkg/alternatives/grep
+-rw-r--r-- root root 96 ./usr/lib/opkg/alternatives/groups
+-rw-r--r-- root root 35 ./usr/lib/opkg/alternatives/gunzip
+-rw-r--r-- root root 33 ./usr/lib/opkg/alternatives/gzip
+-rw-r--r-- root root 35 ./usr/lib/opkg/alternatives/halt
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/head
+-rw-r--r-- root root 71 ./usr/lib/opkg/alternatives/hexdump
+-rw-r--r-- root root 46 ./usr/lib/opkg/alternatives/hostid
+-rw-r--r-- root root 64 ./usr/lib/opkg/alternatives/hostname
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/hwclock
+-rw-r--r-- root root 61 ./usr/lib/opkg/alternatives/id
+-rw-r--r-- root root 38 ./usr/lib/opkg/alternatives/ifconfig
+-rw-r--r-- root root 36 ./usr/lib/opkg/alternatives/ifdown
+-rw-r--r-- root root 34 ./usr/lib/opkg/alternatives/ifup
+-rw-r--r-- root root 34 ./usr/lib/opkg/alternatives/init
+-rw-r--r-- root root 57 ./usr/lib/opkg/alternatives/insmod
+-rw-r--r-- root root 48 ./usr/lib/opkg/alternatives/install
+-rw-r--r-- root root 46 ./usr/lib/opkg/alternatives/ionice
+-rw-r--r-- root root 54 ./usr/lib/opkg/alternatives/ip
+-rw-r--r-- root root 42 ./usr/lib/opkg/alternatives/join
+-rw-r--r-- root root 102 ./usr/lib/opkg/alternatives/kill
+-rw-r--r-- root root 40 ./usr/lib/opkg/alternatives/killall
+-rw-r--r-- root root 35 ./usr/lib/opkg/alternatives/klogd
+-rw-r--r-- root root 69 ./usr/lib/opkg/alternatives/last
+-rw-r--r-- root root 72 ./usr/lib/opkg/alternatives/lastb
+-rw-r--r-- root root 66 ./usr/lib/opkg/alternatives/lbracket
+-rw-r--r-- root root 46 ./usr/lib/opkg/alternatives/ld
+-rw-r--r-- root root 54 ./usr/lib/opkg/alternatives/ld.bfd
+-rw-r--r-- root root 56 ./usr/lib/opkg/alternatives/ld.gold
+-rw-r--r-- root root 37 ./usr/lib/opkg/alternatives/less
+-rw-r--r-- root root 42 ./usr/lib/opkg/alternatives/link
+-rw-r--r-- root root 53 ./usr/lib/opkg/alternatives/ln
+-rw-r--r-- root root 42 ./usr/lib/opkg/alternatives/loadfont
+-rw-r--r-- root root 38 ./usr/lib/opkg/alternatives/loadkmap
+-rw-r--r-- root root 69 ./usr/lib/opkg/alternatives/logger
+-rw-r--r-- root root 54 ./usr/lib/opkg/alternatives/login
+-rw-r--r-- root root 71 ./usr/lib/opkg/alternatives/logname
+-rw-r--r-- root root 37 ./usr/lib/opkg/alternatives/logread
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/losetup
+-rw-r--r-- root root 53 ./usr/lib/opkg/alternatives/ls
+-rw-r--r-- root root 54 ./usr/lib/opkg/alternatives/lsmod
+-rw-r--r-- root root 60 ./usr/lib/opkg/alternatives/lzcat
+-rw-r--r-- root root 35 ./usr/lib/opkg/alternatives/lzma
+-rw-r--r-- root root 69 ./usr/lib/opkg/alternatives/md5sum
+-rw-r--r-- root root 92 ./usr/lib/opkg/alternatives/mesg
+-rw-r--r-- root root 41 ./usr/lib/opkg/alternatives/microcom
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/mkdir
+-rw-r--r-- root root 40 ./usr/lib/opkg/alternatives/mke2fs
+-rw-r--r-- root root 69 ./usr/lib/opkg/alternatives/mkfifo
+-rw-r--r-- root root 46 ./usr/lib/opkg/alternatives/mkfs.ext2
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/mknod
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/mkswap
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/mktemp
+-rw-r--r-- root root 36 ./usr/lib/opkg/alternatives/modinfo
+-rw-r--r-- root root 61 ./usr/lib/opkg/alternatives/modprobe
+-rw-r--r-- root root 57 ./usr/lib/opkg/alternatives/more
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/mount
+-rw-r--r-- root root 97 ./usr/lib/opkg/alternatives/mountpoint
+-rw-r--r-- root root 53 ./usr/lib/opkg/alternatives/mv
+-rw-r--r-- root root 35 ./usr/lib/opkg/alternatives/nc
+-rw-r--r-- root root 36 ./usr/lib/opkg/alternatives/netstat
+-rw-r--r-- root root 43 ./usr/lib/opkg/alternatives/newgrp
+-rw-r--r-- root root 38 ./usr/lib/opkg/alternatives/nice
+-rw-r--r-- root root 38 ./usr/lib/opkg/alternatives/nl
+-rw-r--r-- root root 46 ./usr/lib/opkg/alternatives/nm
+-rw-r--r-- root root 67 ./usr/lib/opkg/alternatives/nohup
+-rw-r--r-- root root 67 ./usr/lib/opkg/alternatives/nologin
+-rw-r--r-- root root 67 ./usr/lib/opkg/alternatives/nproc
+-rw-r--r-- root root 48 ./usr/lib/opkg/alternatives/nsenter
+-rw-r--r-- root root 41 ./usr/lib/opkg/alternatives/nslookup
+-rw-r--r-- root root 56 ./usr/lib/opkg/alternatives/objcopy
+-rw-r--r-- root root 56 ./usr/lib/opkg/alternatives/objdump
+-rw-r--r-- root root 61 ./usr/lib/opkg/alternatives/od
+-rw-r--r-- root root 39 ./usr/lib/opkg/alternatives/openvt
+-rw-r--r-- root root 64 ./usr/lib/opkg/alternatives/passwd
+-rw-r--r-- root root 44 ./usr/lib/opkg/alternatives/paste
+-rw-r--r-- root root 38 ./usr/lib/opkg/alternatives/patch
+-rw-r--r-- root root 48 ./usr/lib/opkg/alternatives/pathchk
+-rw-r--r-- root root 41 ./usr/lib/opkg/alternatives/pgrep
+-rw-r--r-- root root 80 ./usr/lib/opkg/alternatives/pidof
+-rw-r--r-- root root 31 ./usr/lib/opkg/alternatives/ping
+-rw-r--r-- root root 32 ./usr/lib/opkg/alternatives/ping6
+-rw-r--r-- root root 44 ./usr/lib/opkg/alternatives/pinky
+-rw-r--r-- root root 71 ./usr/lib/opkg/alternatives/pivot_root
+-rw-r--r-- root root 41 ./usr/lib/opkg/alternatives/pkill
+-rw-r--r-- root root 39 ./usr/lib/opkg/alternatives/pmap
+-rw-r--r-- root root 43 ./usr/lib/opkg/alternatives/poweroff
+-rw-r--r-- root root 38 ./usr/lib/opkg/alternatives/pr
+-rw-r--r-- root root 46 ./usr/lib/opkg/alternatives/printenv
+-rw-r--r-- root root 69 ./usr/lib/opkg/alternatives/printf
+-rw-r--r-- root root 50 ./usr/lib/opkg/alternatives/ps
+-rw-r--r-- root root 40 ./usr/lib/opkg/alternatives/ptx
+-rw-r--r-- root root 55 ./usr/lib/opkg/alternatives/pwd
+-rw-r--r-- root root 39 ./usr/lib/opkg/alternatives/pwdx
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/python3-config
+-rw-r--r-- root root 54 ./usr/lib/opkg/alternatives/ranlib
+-rw-r--r-- root root 39 ./usr/lib/opkg/alternatives/rdate
+-rw-r--r-- root root 56 ./usr/lib/opkg/alternatives/readelf
+-rw-r--r-- root root 73 ./usr/lib/opkg/alternatives/readlink
+-rw-r--r-- root root 58 ./usr/lib/opkg/alternatives/readprofile
+-rw-r--r-- root root 73 ./usr/lib/opkg/alternatives/realpath
+-rw-r--r-- root root 62 ./usr/lib/opkg/alternatives/reboot
+-rw-r--r-- root root 69 ./usr/lib/opkg/alternatives/renice
+-rw-r--r-- root root 38 ./usr/lib/opkg/alternatives/reset
+-rw-r--r-- root root 39 ./usr/lib/opkg/alternatives/resize
+-rw-r--r-- root root 40 ./usr/lib/opkg/alternatives/rev
+-rw-r--r-- root root 71 ./usr/lib/opkg/alternatives/rfkill
+-rw-r--r-- root root 53 ./usr/lib/opkg/alternatives/rm
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/rmdir
+-rw-r--r-- root root 55 ./usr/lib/opkg/alternatives/rmmod
+-rw-r--r-- root root 35 ./usr/lib/opkg/alternatives/route
+-rw-r--r-- root root 46 ./usr/lib/opkg/alternatives/runcon
+-rw-r--r-- root root 43 ./usr/lib/opkg/alternatives/runlevel
+-rw-r--r-- root root 38 ./usr/lib/opkg/alternatives/run-parts
+-rw-r--r-- root root 49 ./usr/lib/opkg/alternatives/sed
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/seq
+-rw-r--r-- root root 40 ./usr/lib/opkg/alternatives/setconsole
+-rw-r--r-- root root 45 ./usr/lib/opkg/alternatives/setfattr
+-rw-r--r-- root root 48 ./usr/lib/opkg/alternatives/setpriv
+-rw-r--r-- root root 69 ./usr/lib/opkg/alternatives/setsid
+-rw-r--r-- root root 50 ./usr/lib/opkg/alternatives/sh
+-rw-r--r-- root root 71 ./usr/lib/opkg/alternatives/sha1sum
+-rw-r--r-- root root 52 ./usr/lib/opkg/alternatives/sha224sum
+-rw-r--r-- root root 75 ./usr/lib/opkg/alternatives/sha256sum
+-rw-r--r-- root root 52 ./usr/lib/opkg/alternatives/sha384sum
+-rw-r--r-- root root 52 ./usr/lib/opkg/alternatives/sha512sum
+-rw-r--r-- root root 44 ./usr/lib/opkg/alternatives/shred
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/shuf
+-rw-r--r-- root root 43 ./usr/lib/opkg/alternatives/shutdown
+-rw-r--r-- root root 50 ./usr/lib/opkg/alternatives/size
+-rw-r--r-- root root 41 ./usr/lib/opkg/alternatives/skill
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/sleep
+-rw-r--r-- root root 41 ./usr/lib/opkg/alternatives/snice
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/sort
+-rw-r--r-- root root 44 ./usr/lib/opkg/alternatives/split
+-rw-r--r-- root root 47 ./usr/lib/opkg/alternatives/start-stop-daemon
+-rw-r--r-- root root 57 ./usr/lib/opkg/alternatives/stat
+-rw-r--r-- root root 79 ./usr/lib/opkg/alternatives/strings
+-rw-r--r-- root root 52 ./usr/lib/opkg/alternatives/strip
+-rw-r--r-- root root 57 ./usr/lib/opkg/alternatives/stty
+-rw-r--r-- root root 48 ./usr/lib/opkg/alternatives/su
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/sulogin
+-rw-r--r-- root root 40 ./usr/lib/opkg/alternatives/sum
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/swapoff
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/swapon
+-rw-r--r-- root root 73 ./usr/lib/opkg/alternatives/switch_root
+-rw-r--r-- root root 57 ./usr/lib/opkg/alternatives/sync
+-rw-r--r-- root root 60 ./usr/lib/opkg/alternatives/sysctl
+-rw-r--r-- root root 37 ./usr/lib/opkg/alternatives/syslogd
+-rw-r--r-- root root 40 ./usr/lib/opkg/alternatives/tac
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/tail
+-rw-r--r-- root root 32 ./usr/lib/opkg/alternatives/tar
+-rw-r--r-- root root 48 ./usr/lib/opkg/alternatives/taskset
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/tee
+-rw-r--r-- root root 39 ./usr/lib/opkg/alternatives/telnet
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/test
+-rw-r--r-- root root 37 ./usr/lib/opkg/alternatives/tftp
+-rw-r--r-- root root 37 ./usr/lib/opkg/alternatives/time
+-rw-r--r-- root root 48 ./usr/lib/opkg/alternatives/timeout
+-rw-r--r-- root root 60 ./usr/lib/opkg/alternatives/top
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/touch
+-rw-r--r-- root root 61 ./usr/lib/opkg/alternatives/tr
+-rw-r--r-- root root 41 ./usr/lib/opkg/alternatives/traceroute
+-rw-r--r-- root root 57 ./usr/lib/opkg/alternatives/true
+-rw-r--r-- root root 50 ./usr/lib/opkg/alternatives/truncate
+-rw-r--r-- root root 35 ./usr/lib/opkg/alternatives/ts
+-rw-r--r-- root root 44 ./usr/lib/opkg/alternatives/tsort
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/tty
+-rw-r--r-- root root 36 ./usr/lib/opkg/alternatives/udhcpc
+-rw-r--r-- root root 40 ./usr/lib/opkg/alternatives/udhcpd
+-rw-r--r-- root root 61 ./usr/lib/opkg/alternatives/umount
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/uname
+-rw-r--r-- root root 50 ./usr/lib/opkg/alternatives/unexpand
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/uniq
+-rw-r--r-- root root 69 ./usr/lib/opkg/alternatives/unlink
+-rw-r--r-- root root 39 ./usr/lib/opkg/alternatives/unlzma
+-rw-r--r-- root root 48 ./usr/lib/opkg/alternatives/unshare
+-rw-r--r-- root root 35 ./usr/lib/opkg/alternatives/unxz
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/unzip
+-rw-r--r-- root root 96 ./usr/lib/opkg/alternatives/uptime
+-rw-r--r-- root root 67 ./usr/lib/opkg/alternatives/users
+-rw-r--r-- root root 35 ./usr/lib/opkg/alternatives/usleep
+-rw-r--r-- root root 81 ./usr/lib/opkg/alternatives/utmpdump
+-rw-r--r-- root root 42 ./usr/lib/opkg/alternatives/vdir
+-rw-r--r-- root root 31 ./usr/lib/opkg/alternatives/vi
+-rw-r--r-- root root 33 ./usr/lib/opkg/alternatives/vigr
+-rw-r--r-- root root 33 ./usr/lib/opkg/alternatives/vipw
+-rw-r--r-- root root 36 ./usr/lib/opkg/alternatives/vlock
+-rw-r--r-- root root 33 ./usr/lib/opkg/alternatives/w
+-rw-r--r-- root root 69 ./usr/lib/opkg/alternatives/wall
+-rw-r--r-- root root 56 ./usr/lib/opkg/alternatives/watch
+-rw-r--r-- root root 61 ./usr/lib/opkg/alternatives/wc
+-rw-r--r-- root root 37 ./usr/lib/opkg/alternatives/wget
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/which
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/who
+-rw-r--r-- root root 69 ./usr/lib/opkg/alternatives/whoami
+-rw-r--r-- root root 67 ./usr/lib/opkg/alternatives/xargs
+-rw-r--r-- root root 31 ./usr/lib/opkg/alternatives/xz
+-rw-r--r-- root root 60 ./usr/lib/opkg/alternatives/xzcat
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/yes
+-rw-r--r-- root root 33 ./usr/lib/opkg/alternatives/zcat
+drwxr-xr-x root root 4096 ./usr/lib/perl5
+drwxr-xr-x root root 4096 ./usr/lib/perl5/5.30.2
+-rwxr-xr-x root root 3305 ./usr/lib/perl5/5.30.2/Config.pm
+drwxr-xr-x root root 4096 ./usr/lib/perl5/5.30.2/ExtUtils
+-r--r--r-- root root 1105 ./usr/lib/perl5/5.30.2/ExtUtils/MANIFEST.SKIP
+-rwxr-xr-x root root 11315 ./usr/lib/perl5/5.30.2/ExtUtils/typemap
+-r--r--r-- root root 5071 ./usr/lib/perl5/5.30.2/ExtUtils/xsubpp
+-r--r--r-- root root 4738 ./usr/lib/perl5/5.30.2/strict.pm
+-r--r--r-- root root 2458 ./usr/lib/perl5/5.30.2/vars.pm
+drwxr-xr-x root root 4096 ./usr/lib/perl5/5.30.2/warnings
+-r--r--r-- root root 49989 ./usr/lib/perl5/5.30.2/warnings.pm
+-r--r--r-- root root 759 ./usr/lib/perl5/5.30.2/warnings/register.pm
+drwxr-xr-x root root 4096 ./usr/lib/perl5/5.30.2/x86_64-linux
+-r--r--r-- root root 409 ./usr/lib/perl5/5.30.2/x86_64-linux/Config_git.pl
+-r--r--r-- root root 43123 ./usr/lib/perl5/5.30.2/x86_64-linux/Config_heavy.pl
+lrwxrwxrwx root root 15 ./usr/lib/perl5/5.30.2/x86_64-linux/Config_heavy-target.pl -> Config_heavy.pl
+-r--r--r-- root root 3305 ./usr/lib/perl5/5.30.2/x86_64-linux/Config.pm
+drwxr-xr-x root root 4096 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE
+-r--r--r-- root root 3294 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/av.h
+-r--r--r-- root root 850 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/bitcount.h
+-r--r--r-- root root 4114121 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/charclass_invlists.h
+-r--r--r-- root root 162839 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/config.h
+-r--r--r-- root root 40671 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/cop.h
+-r--r--r-- root root 12323 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/cv.h
+-r--r--r-- root root 5461 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/dosish.h
+-r--r--r-- root root 1861 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/dquote_inline.h
+-r--r--r-- root root 49548 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/ebcdic_tables.h
+-r--r--r-- root root 102635 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/embed.h
+-r--r--r-- root root 23467 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/embedvar.h
+-r--r--r-- root root 1652 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/EXTERN.h
+-r--r--r-- root root 3210 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/fakesdio.h
+-r--r--r-- root root 5046 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/feature.h
+-r--r--r-- root root 1463 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/form.h
+-r--r--r-- root root 357 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/git_version.h
+-r--r--r-- root root 10711 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/gv.h
+-r--r--r-- root root 126538 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/handy.h
+-r--r--r-- root root 10786 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/hv_func.h
+-r--r--r-- root root 25545 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/hv.h
+-r--r--r-- root root 2953 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/hv_macro.h
+-r--r--r-- root root 68866 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/inline.h
+-r--r--r-- root root 1309 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/INTERN.h
+-r--r--r-- root root 29425 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/intrpvar.h
+-r--r--r-- root root 2976 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/invlist_inline.h
+-r--r--r-- root root 48759 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/iperlsys.h
+-r--r--r-- root root 6587 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/keywords.h
+-r--r--r-- root root 126938 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/l1_char_class_tab.h
+lrwxrwxrwx root root 29 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/libperl.so -> ../../../../libperl.so.5.30.0
+-r--r--r-- root root 1524 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/malloc_ctl.h
+-r--r--r-- root root 952 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/metaconfig.h
+-r--r--r-- root root 5021 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/mg_data.h
+-r--r--r-- root root 3013 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/mg.h
+-r--r--r-- root root 4377 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/mg_raw.h
+-r--r--r-- root root 9562 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/mg_vtable.h
+-r--r--r-- root root 1693 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/mydtrace.h
+-r--r--r-- root root 3392 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/nostdio.h
+-r--r--r-- root root 93275 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/opcode.h
+-r--r--r-- root root 36350 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/op.h
+-r--r--r-- root root 8860 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/opnames.h
+-r--r--r-- root root 5911 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/op_reg_common.h
+-r--r--r-- root root 3276 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/overload.h
+-r--r--r-- root root 17220 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/pad.h
+-r--r--r-- root root 6993 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/parser.h
+-r--r--r-- root root 5321 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/patchlevel.h
+-r--r--r-- root root 10170 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/perlapi.h
+-r--r--r-- root root 270251 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/perl.h
+-r--r--r-- root root 6223 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/perl_inc_macro.h
+-r--r--r-- root root 9464 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/perlio.h
+-r--r--r-- root root 13761 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/perliol.h
+-r--r--r-- root root 2973 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/perl_langinfo.h
+-r--r--r-- root root 527 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/perlsdio.h
+-r--r--r-- root root 13314 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/perlvars.h
+-r--r--r-- root root 4434 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/perly.h
+-r--r--r-- root root 28969 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/pp.h
+-r--r--r-- root root 12131 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/pp_proto.h
+-r--r--r-- root root 258888 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/proto.h
+-r--r--r-- root root 78454 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/reentr.h
+-r--r--r-- root root 140155 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/regcharclass.h
+-r--r--r-- root root 48923 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/regcomp.h
+-r--r--r-- root root 36671 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/regexp.h
+-r--r--r-- root root 38053 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/regnodes.h
+-r--r--r-- root root 57294 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/sbox32_hash.h
+-r--r--r-- root root 11887 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/scope.h
+-r--r--r-- root root 10477 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/stadtx_hash.h
+-r--r--r-- root root 85432 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/sv.h
+-r--r--r-- root root 12095 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/thread.h
+-r--r--r-- root root 2048 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/time64_config.h
+-r--r--r-- root root 1588 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/time64.h
+-r--r--r-- root root 44 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/try.h
+-r--r--r-- root root 163425 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/uconfig.h
+-r--r--r-- root root 8027 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/unicode_constants.h
+-r--r--r-- root root 535594 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/uni_keywords.h
+-r--r--r-- root root 5193 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/unixish.h
+-r--r--r-- root root 47587 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/utf8.h
+-r--r--r-- root root 67051 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/utfebcdic.h
+-r--r--r-- root root 10011 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/util.h
+-r--r--r-- root root 904 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/uudmap.h
+-r--r--r-- root root 7993 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/vutil.h
+-r--r--r-- root root 8230 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/warnings.h
+-r--r--r-- root root 24399 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/XSUB.h
+-r--r--r-- root root 10541 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/zaphod32_hash.h
+-rwxr-xr-x root root 36089 ./usr/lib/perl5/config.sh
+drwxr-xr-x root root 4096 ./usr/lib/perl5/site_perl
+drwxr-xr-x root root 4096 ./usr/lib/perl5/site_perl/5.30.2
+drwxr-xr-x root root 4096 ./usr/lib/perl5/site_perl/5.30.2/x86_64-linux
+drwxr-xr-x root root 4096 ./usr/lib/pkgconfig
+-rw-r--r-- root root 155 ./usr/lib/pkgconfig/applewmproto.pc
+-rw-r--r-- root root 900 ./usr/lib/pkgconfig/bash.pc
+-rw-r--r-- root root 155 ./usr/lib/pkgconfig/bigreqsproto.pc
+-rw-r--r-- root root 191 ./usr/lib/pkgconfig/blkid.pc
+-rw-r--r-- root root 242 ./usr/lib/pkgconfig/cairo-fc.pc
+-rw-r--r-- root root 239 ./usr/lib/pkgconfig/cairo-ft.pc
+-rw-r--r-- root root 223 ./usr/lib/pkgconfig/cairo-gl.pc
+-rw-r--r-- root root 217 ./usr/lib/pkgconfig/cairo-glx.pc
+-rw-r--r-- root root 276 ./usr/lib/pkgconfig/cairo-gobject.pc
+-rw-r--r-- root root 446 ./usr/lib/pkgconfig/cairo.pc
+-rw-r--r-- root root 222 ./usr/lib/pkgconfig/cairo-pdf.pc
+-rw-r--r-- root root 219 ./usr/lib/pkgconfig/cairo-png.pc
+-rw-r--r-- root root 228 ./usr/lib/pkgconfig/cairo-ps.pc
+-rw-r--r-- root root 228 ./usr/lib/pkgconfig/cairo-script.pc
+-rw-r--r-- root root 219 ./usr/lib/pkgconfig/cairo-svg.pc
+-rw-r--r-- root root 219 ./usr/lib/pkgconfig/cairo-tee.pc
+-rw-r--r-- root root 247 ./usr/lib/pkgconfig/cairo-xcb.pc
+-rw-r--r-- root root 228 ./usr/lib/pkgconfig/cairo-xcb-shm.pc
+-rw-r--r-- root root 229 ./usr/lib/pkgconfig/cairo-xlib.pc
+-rw-r--r-- root root 256 ./usr/lib/pkgconfig/cairo-xlib-xrender.pc
+-rw-r--r-- root root 247 ./usr/lib/pkgconfig/com_err.pc
+-rw-r--r-- root root 159 ./usr/lib/pkgconfig/compositeproto.pc
+-rw-r--r-- root root 153 ./usr/lib/pkgconfig/damageproto.pc
+-rw-r--r-- root root 607 ./usr/lib/pkgconfig/dbus-1.pc
+-rw-r--r-- root root 275 ./usr/lib/pkgconfig/dbus-python.pc
+-rw-r--r-- root root 147 ./usr/lib/pkgconfig/dmxproto.pc
+-rw-r--r-- root root 147 ./usr/lib/pkgconfig/dpmsproto.pc
+-rw-r--r-- root root 147 ./usr/lib/pkgconfig/dri2proto.pc
+-rw-r--r-- root root 147 ./usr/lib/pkgconfig/dri3proto.pc
+-rw-r--r-- root root 226 ./usr/lib/pkgconfig/e2p.pc
+-rw-r--r-- root root 206 ./usr/lib/pkgconfig/expat.pc
+-rw-r--r-- root root 223 ./usr/lib/pkgconfig/ext2fs.pc
+-rw-r--r-- root root 213 ./usr/lib/pkgconfig/fdisk.pc
+-rw-r--r-- root root 149 ./usr/lib/pkgconfig/fixesproto.pc
+-rw-r--r-- root root 407 ./usr/lib/pkgconfig/fontconfig.pc
+-rw-r--r-- root root 151 ./usr/lib/pkgconfig/fontsproto.pc
+-rw-r--r-- root root 469 ./usr/lib/pkgconfig/form.pc
+-rw-r--r-- root root 454 ./usr/lib/pkgconfig/formw.pc
+-rw-r--r-- root root 310 ./usr/lib/pkgconfig/freetype2.pc
+-rw-r--r-- root root 631 ./usr/lib/pkgconfig/gio-2.0.pc
+-rw-r--r-- root root 232 ./usr/lib/pkgconfig/gio-unix-2.0.pc
+-rw-r--r-- root root 378 ./usr/lib/pkgconfig/glib-2.0.pc
+-rw-r--r-- root root 355 ./usr/lib/pkgconfig/gl.pc
+-rw-r--r-- root root 146 ./usr/lib/pkgconfig/glproto.pc
+-rw-r--r-- root root 254 ./usr/lib/pkgconfig/gmodule-2.0.pc
+-rw-r--r-- root root 254 ./usr/lib/pkgconfig/gmodule-export-2.0.pc
+-rw-r--r-- root root 273 ./usr/lib/pkgconfig/gmodule-no-export-2.0.pc
+-rw-r--r-- root root 225 ./usr/lib/pkgconfig/gmp.pc
+-rw-r--r-- root root 260 ./usr/lib/pkgconfig/gmpxx.pc
+-rw-r--r-- root root 287 ./usr/lib/pkgconfig/gobject-2.0.pc
+-rw-r--r-- root root 649 ./usr/lib/pkgconfig/gobject-introspection-1.0.pc
+-rw-r--r-- root root 612 ./usr/lib/pkgconfig/gobject-introspection-no-export-1.0.pc
+-rw-r--r-- root root 223 ./usr/lib/pkgconfig/gthread-2.0.pc
+-rw-r--r-- root root 206 ./usr/lib/pkgconfig/ice.pc
+-rw-r--r-- root root 151 ./usr/lib/pkgconfig/inputproto.pc
+-rw-r--r-- root root 145 ./usr/lib/pkgconfig/kbproto.pc
+-rw-r--r-- root root 204 ./usr/lib/pkgconfig/libacl.pc
+-rw-r--r-- root root 217 ./usr/lib/pkgconfig/libattr.pc
+-rw-r--r-- root root 208 ./usr/lib/pkgconfig/libcap-ng.pc
+-rw-r--r-- root root 209 ./usr/lib/pkgconfig/libcap.pc
+-rw-r--r-- root root 275 ./usr/lib/pkgconfig/libcrypto.pc
+lrwxrwxrwx root root 12 ./usr/lib/pkgconfig/libcrypt.pc -> libxcrypt.pc
+-rw-r--r-- root root 270 ./usr/lib/pkgconfig/libdrm_amdgpu.pc
+-rw-r--r-- root root 267 ./usr/lib/pkgconfig/libdrm_etnaviv.pc
+-rw-r--r-- root root 301 ./usr/lib/pkgconfig/libdrm_freedreno.pc
+-rw-r--r-- root root 255 ./usr/lib/pkgconfig/libdrm_intel.pc
+-rw-r--r-- root root 300 ./usr/lib/pkgconfig/libdrm_nouveau.pc
+-rw-r--r-- root root 277 ./usr/lib/pkgconfig/libdrm_omap.pc
+-rw-r--r-- root root 220 ./usr/lib/pkgconfig/libdrm.pc
+-rw-r--r-- root root 270 ./usr/lib/pkgconfig/libdrm_radeon.pc
+-rw-r--r-- root root 206 ./usr/lib/pkgconfig/libdrm_vc4.pc
+-rw-r--r-- root root 633 ./usr/lib/pkgconfig/libdw.pc
+-rw-r--r-- root root 262 ./usr/lib/pkgconfig/libelf.pc
+-rw-r--r-- root root 237 ./usr/lib/pkgconfig/libffi.pc
+-rw-r--r-- root root 213 ./usr/lib/pkgconfig/libip4tc.pc
+-rw-r--r-- root root 213 ./usr/lib/pkgconfig/libip6tc.pc
+-rw-r--r-- root root 190 ./usr/lib/pkgconfig/libiptc.pc
+-rw-r--r-- root root 213 ./usr/lib/pkgconfig/libkmod.pc
+-rw-r--r-- root root 259 ./usr/lib/pkgconfig/libkms.pc
+-rw-r--r-- root root 390 ./usr/lib/pkgconfig/liblzma.pc
+-rw-r--r-- root root 292 ./usr/lib/pkgconfig/libmnl.pc
+-rw-r--r-- root root 247 ./usr/lib/pkgconfig/libnsl.pc
+-rw-r--r-- root root 243 ./usr/lib/pkgconfig/libpcrecpp.pc
+-rw-r--r-- root root 305 ./usr/lib/pkgconfig/libpcre.pc
+-rw-r--r-- root root 285 ./usr/lib/pkgconfig/libpcreposix.pc
+-rw-r--r-- root root 239 ./usr/lib/pkgconfig/libpng16.pc
+lrwxrwxrwx root root 11 ./usr/lib/pkgconfig/libpng.pc -> libpng16.pc
+-rw-r--r-- root root 223 ./usr/lib/pkgconfig/libprocps.pc
+-rw-r--r-- root root 254 ./usr/lib/pkgconfig/libpsx.pc
+-rw-r--r-- root root 254 ./usr/lib/pkgconfig/libssl.pc
+-rw-r--r-- root root 235 ./usr/lib/pkgconfig/libtirpc.pc
+-rw-r--r-- root root 493 ./usr/lib/pkgconfig/libudev.pc
+-rw-r--r-- root root 367 ./usr/lib/pkgconfig/libxcrypt.pc
+-rw-r--r-- root root 243 ./usr/lib/pkgconfig/libxml-2.0.pc
+-rw-r--r-- root root 500 ./usr/lib/pkgconfig/lzo2.pc
+-rw-r--r-- root root 469 ./usr/lib/pkgconfig/menu.pc
+-rw-r--r-- root root 454 ./usr/lib/pkgconfig/menuw.pc
+-rw-r--r-- root root 627 ./usr/lib/pkgconfig/mount.pc
+-rw-r--r-- root root 469 ./usr/lib/pkgconfig/ncurses.pc
+-rw-r--r-- root root 498 ./usr/lib/pkgconfig/ncurses++.pc
+-rw-r--r-- root root 486 ./usr/lib/pkgconfig/ncurses++w.pc
+-rw-r--r-- root root 453 ./usr/lib/pkgconfig/ncursesw.pc
+-rw-r--r-- root root 208 ./usr/lib/pkgconfig/openssl.pc
+-rw-r--r-- root root 471 ./usr/lib/pkgconfig/panel.pc
+-rw-r--r-- root root 456 ./usr/lib/pkgconfig/panelw.pc
+-rw-r--r-- root root 228 ./usr/lib/pkgconfig/pciaccess.pc
+-rw-r--r-- root root 198 ./usr/lib/pkgconfig/pixman-1.pc
+-rw-r--r-- root root 153 ./usr/lib/pkgconfig/presentproto.pc
+-rw-r--r-- root root 224 ./usr/lib/pkgconfig/pthread-stubs.pc
+-rw-r--r-- root root 183 ./usr/lib/pkgconfig/py3cairo.pc
+-rw-r--r-- root root 706 ./usr/lib/pkgconfig/pygobject-3.0.pc
+-rw-r--r-- root root 297 ./usr/lib/pkgconfig/python-3.8-embed.pc
+-rw-r--r-- root root 271 ./usr/lib/pkgconfig/python-3.8.pc
+lrwxrwxrwx root root 19 ./usr/lib/pkgconfig/python3-embed.pc -> python-3.8-embed.pc
+lrwxrwxrwx root root 13 ./usr/lib/pkgconfig/python3.pc -> python-3.8.pc
+-rw-r--r-- root root 151 ./usr/lib/pkgconfig/randrproto.pc
+-rw-r--r-- root root 302 ./usr/lib/pkgconfig/readline.pc
+-rw-r--r-- root root 154 ./usr/lib/pkgconfig/recordproto.pc
+-rw-r--r-- root root 154 ./usr/lib/pkgconfig/renderproto.pc
+-rw-r--r-- root root 157 ./usr/lib/pkgconfig/resourceproto.pc
+-rw-r--r-- root root 159 ./usr/lib/pkgconfig/scrnsaverproto.pc
+-rw-r--r-- root root 204 ./usr/lib/pkgconfig/smartcols.pc
+-rw-r--r-- root root 222 ./usr/lib/pkgconfig/sm.pc
+-rw-r--r-- root root 256 ./usr/lib/pkgconfig/sqlite3.pc
+-rw-r--r-- root root 249 ./usr/lib/pkgconfig/ss.pc
+-rw-r--r-- root root 467 ./usr/lib/pkgconfig/tic.pc
+-rw-r--r-- root root 452 ./usr/lib/pkgconfig/ticw.pc
+-rw-r--r-- root root 458 ./usr/lib/pkgconfig/tinfo.pc
+-rw-r--r-- root root 204 ./usr/lib/pkgconfig/uuid.pc
+-rw-r--r-- root root 151 ./usr/lib/pkgconfig/videoproto.pc
+-rw-r--r-- root root 315 ./usr/lib/pkgconfig/wayland-client.pc
+-rw-r--r-- root root 235 ./usr/lib/pkgconfig/wayland-cursor.pc
+-rw-r--r-- root root 167 ./usr/lib/pkgconfig/wayland-egl-backend.pc
+-rw-r--r-- root root 220 ./usr/lib/pkgconfig/wayland-egl.pc
+-rw-r--r-- root root 270 ./usr/lib/pkgconfig/wayland-scanner.pc
+-rw-r--r-- root root 338 ./usr/lib/pkgconfig/wayland-server.pc
+-rw-r--r-- root root 270 ./usr/lib/pkgconfig/x11.pc
+-rw-r--r-- root root 206 ./usr/lib/pkgconfig/x11-xcb.pc
+-rw-r--r-- root root 212 ./usr/lib/pkgconfig/xau.pc
+-rw-r--r-- root root 232 ./usr/lib/pkgconfig/xcb-composite.pc
+-rw-r--r-- root root 223 ./usr/lib/pkgconfig/xcb-damage.pc
+-rw-r--r-- root root 206 ./usr/lib/pkgconfig/xcb-dpms.pc
+-rw-r--r-- root root 206 ./usr/lib/pkgconfig/xcb-dri2.pc
+-rw-r--r-- root root 206 ./usr/lib/pkgconfig/xcb-dri3.pc
+-rw-r--r-- root root 203 ./usr/lib/pkgconfig/xcb-glx.pc
+-rw-r--r-- root root 251 ./usr/lib/pkgconfig/xcb.pc
+-rw-r--r-- root root 245 ./usr/lib/pkgconfig/xcb-present.pc
+-rw-r--r-- root root 273 ./usr/lib/pkgconfig/xcb-proto.pc
+-rw-r--r-- root root 220 ./usr/lib/pkgconfig/xcb-randr.pc
+-rw-r--r-- root root 212 ./usr/lib/pkgconfig/xcb-record.pc
+-rw-r--r-- root root 212 ./usr/lib/pkgconfig/xcb-render.pc
+-rw-r--r-- root root 210 ./usr/lib/pkgconfig/xcb-res.pc
+-rw-r--r-- root root 227 ./usr/lib/pkgconfig/xcb-screensaver.pc
+-rw-r--r-- root root 209 ./usr/lib/pkgconfig/xcb-shape.pc
+-rw-r--r-- root root 203 ./usr/lib/pkgconfig/xcb-shm.pc
+-rw-r--r-- root root 206 ./usr/lib/pkgconfig/xcb-sync.pc
+-rw-r--r-- root root 223 ./usr/lib/pkgconfig/xcb-xf86dri.pc
+-rw-r--r-- root root 233 ./usr/lib/pkgconfig/xcb-xfixes.pc
+-rw-r--r-- root root 218 ./usr/lib/pkgconfig/xcb-xinerama.pc
+-rw-r--r-- root root 238 ./usr/lib/pkgconfig/xcb-xinput.pc
+-rw-r--r-- root root 223 ./usr/lib/pkgconfig/xcb-xkb.pc
+-rw-r--r-- root root 209 ./usr/lib/pkgconfig/xcb-xtest.pc
+-rw-r--r-- root root 213 ./usr/lib/pkgconfig/xcb-xvmc.pc
+-rw-r--r-- root root 208 ./usr/lib/pkgconfig/xcb-xv.pc
+-rw-r--r-- root root 153 ./usr/lib/pkgconfig/xcmiscproto.pc
+-rw-r--r-- root root 254 ./usr/lib/pkgconfig/xdamage.pc
+-rw-r--r-- root root 220 ./usr/lib/pkgconfig/xdmcp.pc
+-rw-r--r-- root root 225 ./usr/lib/pkgconfig/xext.pc
+-rw-r--r-- root root 149 ./usr/lib/pkgconfig/xextproto.pc
+-rw-r--r-- root root 163 ./usr/lib/pkgconfig/xf86bigfontproto.pc
+-rw-r--r-- root root 153 ./usr/lib/pkgconfig/xf86dgaproto.pc
+-rw-r--r-- root root 163 ./usr/lib/pkgconfig/xf86driproto.pc
+-rw-r--r-- root root 163 ./usr/lib/pkgconfig/xf86vidmodeproto.pc
+-rw-r--r-- root root 236 ./usr/lib/pkgconfig/xfixes.pc
+-rw-r--r-- root root 157 ./usr/lib/pkgconfig/xineramaproto.pc
+-rw-r--r-- root root 144 ./usr/lib/pkgconfig/xproto.pc
+-rw-r--r-- root root 248 ./usr/lib/pkgconfig/xrandr.pc
+-rw-r--r-- root root 244 ./usr/lib/pkgconfig/xrender.pc
+-rw-r--r-- root root 216 ./usr/lib/pkgconfig/xshmfence.pc
+-rw-r--r-- root root 261 ./usr/lib/pkgconfig/xtables.pc
+-rw-r--r-- root root 255 ./usr/lib/pkgconfig/xxf86vm.pc
+-rw-r--r-- root root 233 ./usr/lib/pkgconfig/zlib.pc
+drwxr-xr-x root root 4096 ./usr/lib/python3.8
+-rw-r--r-- root root 4489 ./usr/lib/python3.8/abc.py
+-rw-r--r-- root root 96015 ./usr/lib/python3.8/argparse.py
+-rw-r--r-- root root 18474 ./usr/lib/python3.8/ast.py
+-rwxr-xr-x root root 20382 ./usr/lib/python3.8/base64.py
+-rw-r--r-- root root 2214 ./usr/lib/python3.8/bisect.py
+-rw-r--r-- root root 1801 ./usr/lib/python3.8/_bootlocale.py
+-rw-r--r-- root root 12558 ./usr/lib/python3.8/bz2.py
+-rw-r--r-- root root 24832 ./usr/lib/python3.8/calendar.py
+-rw-r--r-- root root 14860 ./usr/lib/python3.8/cmd.py
+-rw-r--r-- root root 36590 ./usr/lib/python3.8/codecs.py
+-rw-r--r-- root root 6059 ./usr/lib/python3.8/codeop.py
+-rw-r--r-- root root 10622 ./usr/lib/python3.8/code.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/collections
+-rw-r--r-- root root 26100 ./usr/lib/python3.8/_collections_abc.py
+-rw-r--r-- root root 68 ./usr/lib/python3.8/collections/abc.py
+-rw-r--r-- root root 47521 ./usr/lib/python3.8/collections/__init__.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/collections/__pycache__
+-rw-r--r-- root root 179 ./usr/lib/python3.8/collections/__pycache__/abc.cpython-38.opt-1.pyc
+-rw-r--r-- root root 179 ./usr/lib/python3.8/collections/__pycache__/abc.cpython-38.opt-2.pyc
+-rw-r--r-- root root 179 ./usr/lib/python3.8/collections/__pycache__/abc.cpython-38.pyc
+-rw-r--r-- root root 46423 ./usr/lib/python3.8/collections/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 35834 ./usr/lib/python3.8/collections/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 46423 ./usr/lib/python3.8/collections/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 8749 ./usr/lib/python3.8/_compat_pickle.py
+-rw-r--r-- root root 5340 ./usr/lib/python3.8/_compression.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu
+-rw-r--r-- root root 3303 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu/config.c
+-rw-r--r-- root root 1623 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu/config.c.in
+-rwxr-xr-x root root 15368 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu/install-sh
+-rw-r--r-- root root 78513 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu/Makefile
+-rwxr-xr-x root root 7848 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu/makesetup
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu/__pycache__
+-rw-r--r-- root root 1931 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu/__pycache__/python-config.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1931 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu/__pycache__/python-config.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1931 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu/__pycache__/python-config.cpython-38.pyc
+-rwxr-xr-x root root 2114 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu/python-config.py
+-rw-r--r-- root root 4488 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu/python.o
+-rw-r--r-- root root 14786 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu/Setup
+-rw-r--r-- root root 13 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu/Setup.local
+-rw-r--r-- root root 54374 ./usr/lib/python3.8/configparser.py
+-rw-r--r-- root root 24995 ./usr/lib/python3.8/contextlib.py
+-rw-r--r-- root root 8661 ./usr/lib/python3.8/copy.py
+-rw-r--r-- root root 7135 ./usr/lib/python3.8/copyreg.py
+-rw-r--r-- root root 3610 ./usr/lib/python3.8/crypt.py
+-rw-r--r-- root root 16144 ./usr/lib/python3.8/csv.py
+-rw-r--r-- root root 88074 ./usr/lib/python3.8/datetime.py
+-rw-r--r-- root root 20566 ./usr/lib/python3.8/dis.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/distutils
+-rw-r--r-- root root 8572 ./usr/lib/python3.8/distutils/archive_util.py
+-rw-r--r-- root root 14935 ./usr/lib/python3.8/distutils/bcppcompiler.py
+-rw-r--r-- root root 47433 ./usr/lib/python3.8/distutils/ccompiler.py
+-rw-r--r-- root root 18079 ./usr/lib/python3.8/distutils/cmd.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/distutils/command
+-rw-r--r-- root root 4913 ./usr/lib/python3.8/distutils/command/bdist_dumb.py
+-rw-r--r-- root root 35295 ./usr/lib/python3.8/distutils/command/bdist_msi.py
+-rw-r--r-- root root 5562 ./usr/lib/python3.8/distutils/command/bdist.py
+-rw-r--r-- root root 21577 ./usr/lib/python3.8/distutils/command/bdist_rpm.py
+-rw-r--r-- root root 16043 ./usr/lib/python3.8/distutils/command/bdist_wininst.py
+-rw-r--r-- root root 8022 ./usr/lib/python3.8/distutils/command/build_clib.py
+-rw-r--r-- root root 31568 ./usr/lib/python3.8/distutils/command/build_ext.py
+-rw-r--r-- root root 5767 ./usr/lib/python3.8/distutils/command/build.py
+-rw-r--r-- root root 17164 ./usr/lib/python3.8/distutils/command/build_py.py
+-rw-r--r-- root root 6232 ./usr/lib/python3.8/distutils/command/build_scripts.py
+-rw-r--r-- root root 5599 ./usr/lib/python3.8/distutils/command/check.py
+-rw-r--r-- root root 2776 ./usr/lib/python3.8/distutils/command/clean.py
+-rw-r--r-- root root 633 ./usr/lib/python3.8/distutils/command/command_template
+-rw-r--r-- root root 13117 ./usr/lib/python3.8/distutils/command/config.py
+-rw-r--r-- root root 799 ./usr/lib/python3.8/distutils/command/__init__.py
+-rw-r--r-- root root 2822 ./usr/lib/python3.8/distutils/command/install_data.py
+-rw-r--r-- root root 2603 ./usr/lib/python3.8/distutils/command/install_egg_info.py
+-rw-r--r-- root root 1298 ./usr/lib/python3.8/distutils/command/install_headers.py
+-rw-r--r-- root root 8397 ./usr/lib/python3.8/distutils/command/install_lib.py
+-rw-r--r-- root root 26774 ./usr/lib/python3.8/distutils/command/install.py
+-rw-r--r-- root root 2017 ./usr/lib/python3.8/distutils/command/install_scripts.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/distutils/command/__pycache__
+-rw-r--r-- root root 3648 ./usr/lib/python3.8/distutils/command/__pycache__/bdist.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3454 ./usr/lib/python3.8/distutils/command/__pycache__/bdist.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3648 ./usr/lib/python3.8/distutils/command/__pycache__/bdist.cpython-38.pyc
+-rw-r--r-- root root 3574 ./usr/lib/python3.8/distutils/command/__pycache__/bdist_dumb.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3374 ./usr/lib/python3.8/distutils/command/__pycache__/bdist_dumb.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3574 ./usr/lib/python3.8/distutils/command/__pycache__/bdist_dumb.cpython-38.pyc
+-rw-r--r-- root root 19517 ./usr/lib/python3.8/distutils/command/__pycache__/bdist_msi.cpython-38.opt-1.pyc
+-rw-r--r-- root root 17976 ./usr/lib/python3.8/distutils/command/__pycache__/bdist_msi.cpython-38.opt-2.pyc
+-rw-r--r-- root root 19605 ./usr/lib/python3.8/distutils/command/__pycache__/bdist_msi.cpython-38.pyc
+-rw-r--r-- root root 12344 ./usr/lib/python3.8/distutils/command/__pycache__/bdist_rpm.cpython-38.opt-1.pyc
+-rw-r--r-- root root 12025 ./usr/lib/python3.8/distutils/command/__pycache__/bdist_rpm.cpython-38.opt-2.pyc
+-rw-r--r-- root root 12410 ./usr/lib/python3.8/distutils/command/__pycache__/bdist_rpm.cpython-38.pyc
+-rw-r--r-- root root 8405 ./usr/lib/python3.8/distutils/command/__pycache__/bdist_wininst.cpython-38.opt-1.pyc
+-rw-r--r-- root root 8266 ./usr/lib/python3.8/distutils/command/__pycache__/bdist_wininst.cpython-38.opt-2.pyc
+-rw-r--r-- root root 8471 ./usr/lib/python3.8/distutils/command/__pycache__/bdist_wininst.cpython-38.pyc
+-rw-r--r-- root root 4796 ./usr/lib/python3.8/distutils/command/__pycache__/build_clib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4242 ./usr/lib/python3.8/distutils/command/__pycache__/build_clib.cpython-38.opt-2.pyc
+-rw-r--r-- root root 4796 ./usr/lib/python3.8/distutils/command/__pycache__/build_clib.cpython-38.pyc
+-rw-r--r-- root root 3863 ./usr/lib/python3.8/distutils/command/__pycache__/build.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3780 ./usr/lib/python3.8/distutils/command/__pycache__/build.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3863 ./usr/lib/python3.8/distutils/command/__pycache__/build.cpython-38.pyc
+-rw-r--r-- root root 16119 ./usr/lib/python3.8/distutils/command/__pycache__/build_ext.cpython-38.opt-1.pyc
+-rw-r--r-- root root 14162 ./usr/lib/python3.8/distutils/command/__pycache__/build_ext.cpython-38.opt-2.pyc
+-rw-r--r-- root root 16119 ./usr/lib/python3.8/distutils/command/__pycache__/build_ext.cpython-38.pyc
+-rw-r--r-- root root 10387 ./usr/lib/python3.8/distutils/command/__pycache__/build_py.cpython-38.opt-1.pyc
+-rw-r--r-- root root 9180 ./usr/lib/python3.8/distutils/command/__pycache__/build_py.cpython-38.opt-2.pyc
+-rw-r--r-- root root 10444 ./usr/lib/python3.8/distutils/command/__pycache__/build_py.cpython-38.pyc
+-rw-r--r-- root root 4306 ./usr/lib/python3.8/distutils/command/__pycache__/build_scripts.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3912 ./usr/lib/python3.8/distutils/command/__pycache__/build_scripts.cpython-38.opt-2.pyc
+-rw-r--r-- root root 4306 ./usr/lib/python3.8/distutils/command/__pycache__/build_scripts.cpython-38.pyc
+-rw-r--r-- root root 4867 ./usr/lib/python3.8/distutils/command/__pycache__/check.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4299 ./usr/lib/python3.8/distutils/command/__pycache__/check.cpython-38.opt-2.pyc
+-rw-r--r-- root root 4867 ./usr/lib/python3.8/distutils/command/__pycache__/check.cpython-38.pyc
+-rw-r--r-- root root 2082 ./usr/lib/python3.8/distutils/command/__pycache__/clean.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1999 ./usr/lib/python3.8/distutils/command/__pycache__/clean.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2082 ./usr/lib/python3.8/distutils/command/__pycache__/clean.cpython-38.pyc
+-rw-r--r-- root root 10209 ./usr/lib/python3.8/distutils/command/__pycache__/config.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6873 ./usr/lib/python3.8/distutils/command/__pycache__/config.cpython-38.opt-2.pyc
+-rw-r--r-- root root 10209 ./usr/lib/python3.8/distutils/command/__pycache__/config.cpython-38.pyc
+-rw-r--r-- root root 525 ./usr/lib/python3.8/distutils/command/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 416 ./usr/lib/python3.8/distutils/command/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 525 ./usr/lib/python3.8/distutils/command/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 13550 ./usr/lib/python3.8/distutils/command/__pycache__/install.cpython-38.opt-1.pyc
+-rw-r--r-- root root 12495 ./usr/lib/python3.8/distutils/command/__pycache__/install.cpython-38.opt-2.pyc
+-rw-r--r-- root root 13550 ./usr/lib/python3.8/distutils/command/__pycache__/install.cpython-38.pyc
+-rw-r--r-- root root 2271 ./usr/lib/python3.8/distutils/command/__pycache__/install_data.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2126 ./usr/lib/python3.8/distutils/command/__pycache__/install_data.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2271 ./usr/lib/python3.8/distutils/command/__pycache__/install_data.cpython-38.pyc
+-rw-r--r-- root root 2978 ./usr/lib/python3.8/distutils/command/__pycache__/install_egg_info.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2299 ./usr/lib/python3.8/distutils/command/__pycache__/install_egg_info.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2978 ./usr/lib/python3.8/distutils/command/__pycache__/install_egg_info.cpython-38.pyc
+-rw-r--r-- root root 1690 ./usr/lib/python3.8/distutils/command/__pycache__/install_headers.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1524 ./usr/lib/python3.8/distutils/command/__pycache__/install_headers.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1690 ./usr/lib/python3.8/distutils/command/__pycache__/install_headers.cpython-38.pyc
+-rw-r--r-- root root 5095 ./usr/lib/python3.8/distutils/command/__pycache__/install_lib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4514 ./usr/lib/python3.8/distutils/command/__pycache__/install_lib.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5095 ./usr/lib/python3.8/distutils/command/__pycache__/install_lib.cpython-38.pyc
+-rw-r--r-- root root 2123 ./usr/lib/python3.8/distutils/command/__pycache__/install_scripts.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1989 ./usr/lib/python3.8/distutils/command/__pycache__/install_scripts.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2123 ./usr/lib/python3.8/distutils/command/__pycache__/install_scripts.cpython-38.pyc
+-rw-r--r-- root root 8437 ./usr/lib/python3.8/distutils/command/__pycache__/register.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7172 ./usr/lib/python3.8/distutils/command/__pycache__/register.cpython-38.opt-2.pyc
+-rw-r--r-- root root 8437 ./usr/lib/python3.8/distutils/command/__pycache__/register.cpython-38.pyc
+-rw-r--r-- root root 14498 ./usr/lib/python3.8/distutils/command/__pycache__/sdist.cpython-38.opt-1.pyc
+-rw-r--r-- root root 11139 ./usr/lib/python3.8/distutils/command/__pycache__/sdist.cpython-38.opt-2.pyc
+-rw-r--r-- root root 14498 ./usr/lib/python3.8/distutils/command/__pycache__/sdist.cpython-38.pyc
+-rw-r--r-- root root 4921 ./usr/lib/python3.8/distutils/command/__pycache__/upload.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4795 ./usr/lib/python3.8/distutils/command/__pycache__/upload.cpython-38.opt-2.pyc
+-rw-r--r-- root root 4921 ./usr/lib/python3.8/distutils/command/__pycache__/upload.cpython-38.pyc
+-rw-r--r-- root root 11712 ./usr/lib/python3.8/distutils/command/register.py
+-rw-r--r-- root root 19005 ./usr/lib/python3.8/distutils/command/sdist.py
+-rw-r--r-- root root 7001 ./usr/lib/python3.8/distutils/command/upload.py
+-rw-r--r-- root root 222208 ./usr/lib/python3.8/distutils/command/wininst-10.0-amd64.exe
+-rw-r--r-- root root 190976 ./usr/lib/python3.8/distutils/command/wininst-10.0.exe
+-rw-r--r-- root root 587776 ./usr/lib/python3.8/distutils/command/wininst-14.0-amd64.exe
+-rw-r--r-- root root 458240 ./usr/lib/python3.8/distutils/command/wininst-14.0.exe
+-rw-r--r-- root root 61440 ./usr/lib/python3.8/distutils/command/wininst-6.0.exe
+-rw-r--r-- root root 65536 ./usr/lib/python3.8/distutils/command/wininst-7.1.exe
+-rw-r--r-- root root 61440 ./usr/lib/python3.8/distutils/command/wininst-8.0.exe
+-rw-r--r-- root root 224256 ./usr/lib/python3.8/distutils/command/wininst-9.0-amd64.exe
+-rw-r--r-- root root 196096 ./usr/lib/python3.8/distutils/command/wininst-9.0.exe
+-rw-r--r-- root root 4827 ./usr/lib/python3.8/distutils/config.py
+-rw-r--r-- root root 8876 ./usr/lib/python3.8/distutils/core.py
+-rw-r--r-- root root 16478 ./usr/lib/python3.8/distutils/cygwinccompiler.py
+-rw-r--r-- root root 139 ./usr/lib/python3.8/distutils/debug.py
+-rw-r--r-- root root 3491 ./usr/lib/python3.8/distutils/dep_util.py
+-rw-r--r-- root root 7778 ./usr/lib/python3.8/distutils/dir_util.py
+-rw-r--r-- root root 50385 ./usr/lib/python3.8/distutils/dist.py
+-rw-r--r-- root root 3577 ./usr/lib/python3.8/distutils/errors.py
+-rw-r--r-- root root 10515 ./usr/lib/python3.8/distutils/extension.py
+-rw-r--r-- root root 17784 ./usr/lib/python3.8/distutils/fancy_getopt.py
+-rw-r--r-- root root 12832 ./usr/lib/python3.8/distutils/filelist.py
+-rw-r--r-- root root 8148 ./usr/lib/python3.8/distutils/file_util.py
+-rw-r--r-- root root 236 ./usr/lib/python3.8/distutils/__init__.py
+-rw-r--r-- root root 1969 ./usr/lib/python3.8/distutils/log.py
+-rw-r--r-- root root 30511 ./usr/lib/python3.8/distutils/msvc9compiler.py
+-rw-r--r-- root root 21931 ./usr/lib/python3.8/distutils/_msvccompiler.py
+-rw-r--r-- root root 23564 ./usr/lib/python3.8/distutils/msvccompiler.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/distutils/__pycache__
+-rw-r--r-- root root 6529 ./usr/lib/python3.8/distutils/__pycache__/archive_util.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4487 ./usr/lib/python3.8/distutils/__pycache__/archive_util.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6529 ./usr/lib/python3.8/distutils/__pycache__/archive_util.cpython-38.pyc
+-rw-r--r-- root root 6513 ./usr/lib/python3.8/distutils/__pycache__/bcppcompiler.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6225 ./usr/lib/python3.8/distutils/__pycache__/bcppcompiler.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6513 ./usr/lib/python3.8/distutils/__pycache__/bcppcompiler.cpython-38.pyc
+-rw-r--r-- root root 33160 ./usr/lib/python3.8/distutils/__pycache__/ccompiler.cpython-38.opt-1.pyc
+-rw-r--r-- root root 16854 ./usr/lib/python3.8/distutils/__pycache__/ccompiler.cpython-38.opt-2.pyc
+-rw-r--r-- root root 33287 ./usr/lib/python3.8/distutils/__pycache__/ccompiler.cpython-38.pyc
+-rw-r--r-- root root 13938 ./usr/lib/python3.8/distutils/__pycache__/cmd.cpython-38.opt-1.pyc
+-rw-r--r-- root root 8072 ./usr/lib/python3.8/distutils/__pycache__/cmd.cpython-38.opt-2.pyc
+-rw-r--r-- root root 13938 ./usr/lib/python3.8/distutils/__pycache__/cmd.cpython-38.pyc
+-rw-r--r-- root root 3499 ./usr/lib/python3.8/distutils/__pycache__/config.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3108 ./usr/lib/python3.8/distutils/__pycache__/config.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3499 ./usr/lib/python3.8/distutils/__pycache__/config.cpython-38.pyc
+-rw-r--r-- root root 6604 ./usr/lib/python3.8/distutils/__pycache__/core.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3217 ./usr/lib/python3.8/distutils/__pycache__/core.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6604 ./usr/lib/python3.8/distutils/__pycache__/core.cpython-38.pyc
+-rw-r--r-- root root 8602 ./usr/lib/python3.8/distutils/__pycache__/cygwinccompiler.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6972 ./usr/lib/python3.8/distutils/__pycache__/cygwinccompiler.cpython-38.opt-2.pyc
+-rw-r--r-- root root 8602 ./usr/lib/python3.8/distutils/__pycache__/cygwinccompiler.cpython-38.pyc
+-rw-r--r-- root root 184 ./usr/lib/python3.8/distutils/__pycache__/debug.cpython-38.opt-1.pyc
+-rw-r--r-- root root 184 ./usr/lib/python3.8/distutils/__pycache__/debug.cpython-38.opt-2.pyc
+-rw-r--r-- root root 184 ./usr/lib/python3.8/distutils/__pycache__/debug.cpython-38.pyc
+-rw-r--r-- root root 2704 ./usr/lib/python3.8/distutils/__pycache__/dep_util.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1260 ./usr/lib/python3.8/distutils/__pycache__/dep_util.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2704 ./usr/lib/python3.8/distutils/__pycache__/dep_util.cpython-38.pyc
+-rw-r--r-- root root 5813 ./usr/lib/python3.8/distutils/__pycache__/dir_util.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3435 ./usr/lib/python3.8/distutils/__pycache__/dir_util.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5813 ./usr/lib/python3.8/distutils/__pycache__/dir_util.cpython-38.pyc
+-rw-r--r-- root root 34482 ./usr/lib/python3.8/distutils/__pycache__/dist.cpython-38.opt-1.pyc
+-rw-r--r-- root root 25191 ./usr/lib/python3.8/distutils/__pycache__/dist.cpython-38.opt-2.pyc
+-rw-r--r-- root root 34482 ./usr/lib/python3.8/distutils/__pycache__/dist.cpython-38.pyc
+-rw-r--r-- root root 5240 ./usr/lib/python3.8/distutils/__pycache__/errors.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2692 ./usr/lib/python3.8/distutils/__pycache__/errors.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5240 ./usr/lib/python3.8/distutils/__pycache__/errors.cpython-38.pyc
+-rw-r--r-- root root 6913 ./usr/lib/python3.8/distutils/__pycache__/extension.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3423 ./usr/lib/python3.8/distutils/__pycache__/extension.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6913 ./usr/lib/python3.8/distutils/__pycache__/extension.cpython-38.pyc
+-rw-r--r-- root root 10502 ./usr/lib/python3.8/distutils/__pycache__/fancy_getopt.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7699 ./usr/lib/python3.8/distutils/__pycache__/fancy_getopt.cpython-38.opt-2.pyc
+-rw-r--r-- root root 10646 ./usr/lib/python3.8/distutils/__pycache__/fancy_getopt.cpython-38.pyc
+-rw-r--r-- root root 9767 ./usr/lib/python3.8/distutils/__pycache__/filelist.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6896 ./usr/lib/python3.8/distutils/__pycache__/filelist.cpython-38.opt-2.pyc
+-rw-r--r-- root root 9857 ./usr/lib/python3.8/distutils/__pycache__/filelist.cpython-38.pyc
+-rw-r--r-- root root 5923 ./usr/lib/python3.8/distutils/__pycache__/file_util.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3786 ./usr/lib/python3.8/distutils/__pycache__/file_util.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5923 ./usr/lib/python3.8/distutils/__pycache__/file_util.cpython-38.pyc
+-rw-r--r-- root root 374 ./usr/lib/python3.8/distutils/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 192 ./usr/lib/python3.8/distutils/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 374 ./usr/lib/python3.8/distutils/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 2305 ./usr/lib/python3.8/distutils/__pycache__/log.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2244 ./usr/lib/python3.8/distutils/__pycache__/log.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2305 ./usr/lib/python3.8/distutils/__pycache__/log.cpython-38.pyc
+-rw-r--r-- root root 17441 ./usr/lib/python3.8/distutils/__pycache__/msvc9compiler.cpython-38.opt-1.pyc
+-rw-r--r-- root root 15820 ./usr/lib/python3.8/distutils/__pycache__/msvc9compiler.cpython-38.opt-2.pyc
+-rw-r--r-- root root 17500 ./usr/lib/python3.8/distutils/__pycache__/msvc9compiler.cpython-38.pyc
+-rw-r--r-- root root 13907 ./usr/lib/python3.8/distutils/__pycache__/_msvccompiler.cpython-38.opt-1.pyc
+-rw-r--r-- root root 14713 ./usr/lib/python3.8/distutils/__pycache__/msvccompiler.cpython-38.opt-1.pyc
+-rw-r--r-- root root 12757 ./usr/lib/python3.8/distutils/__pycache__/_msvccompiler.cpython-38.opt-2.pyc
+-rw-r--r-- root root 13138 ./usr/lib/python3.8/distutils/__pycache__/msvccompiler.cpython-38.opt-2.pyc
+-rw-r--r-- root root 13970 ./usr/lib/python3.8/distutils/__pycache__/_msvccompiler.cpython-38.pyc
+-rw-r--r-- root root 14713 ./usr/lib/python3.8/distutils/__pycache__/msvccompiler.cpython-38.pyc
+-rw-r--r-- root root 5096 ./usr/lib/python3.8/distutils/__pycache__/spawn.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3792 ./usr/lib/python3.8/distutils/__pycache__/spawn.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5096 ./usr/lib/python3.8/distutils/__pycache__/spawn.cpython-38.pyc
+-rw-r--r-- root root 12091 ./usr/lib/python3.8/distutils/__pycache__/sysconfig.cpython-38.opt-1.pyc
+-rw-r--r-- root root 8606 ./usr/lib/python3.8/distutils/__pycache__/sysconfig.cpython-38.opt-2.pyc
+-rw-r--r-- root root 12091 ./usr/lib/python3.8/distutils/__pycache__/sysconfig.cpython-38.pyc
+-rw-r--r-- root root 8429 ./usr/lib/python3.8/distutils/__pycache__/text_file.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3331 ./usr/lib/python3.8/distutils/__pycache__/text_file.cpython-38.opt-2.pyc
+-rw-r--r-- root root 8429 ./usr/lib/python3.8/distutils/__pycache__/text_file.cpython-38.pyc
+-rw-r--r-- root root 6608 ./usr/lib/python3.8/distutils/__pycache__/unixccompiler.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6019 ./usr/lib/python3.8/distutils/__pycache__/unixccompiler.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6608 ./usr/lib/python3.8/distutils/__pycache__/unixccompiler.cpython-38.pyc
+-rw-r--r-- root root 15536 ./usr/lib/python3.8/distutils/__pycache__/util.cpython-38.opt-1.pyc
+-rw-r--r-- root root 9652 ./usr/lib/python3.8/distutils/__pycache__/util.cpython-38.opt-2.pyc
+-rw-r--r-- root root 15536 ./usr/lib/python3.8/distutils/__pycache__/util.cpython-38.pyc
+-rw-r--r-- root root 7256 ./usr/lib/python3.8/distutils/__pycache__/version.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3971 ./usr/lib/python3.8/distutils/__pycache__/version.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7301 ./usr/lib/python3.8/distutils/__pycache__/version.cpython-38.pyc
+-rw-r--r-- root root 5125 ./usr/lib/python3.8/distutils/__pycache__/versionpredicate.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2645 ./usr/lib/python3.8/distutils/__pycache__/versionpredicate.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5125 ./usr/lib/python3.8/distutils/__pycache__/versionpredicate.cpython-38.pyc
+-rw-r--r-- root root 242 ./usr/lib/python3.8/distutils/README
+-rw-r--r-- root root 7843 ./usr/lib/python3.8/distutils/spawn.py
+-rw-r--r-- root root 20390 ./usr/lib/python3.8/distutils/sysconfig.py
+-rw-r--r-- root root 12483 ./usr/lib/python3.8/distutils/text_file.py
+-rw-r--r-- root root 14696 ./usr/lib/python3.8/distutils/unixccompiler.py
+-rw-r--r-- root root 20892 ./usr/lib/python3.8/distutils/util.py
+-rw-r--r-- root root 5133 ./usr/lib/python3.8/distutils/versionpredicate.py
+-rw-r--r-- root root 12345 ./usr/lib/python3.8/distutils/version.py
+-rw-r--r-- root root 6027 ./usr/lib/python3.8/_dummy_thread.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/email
+-rw-r--r-- root root 9561 ./usr/lib/python3.8/email/architecture.rst
+-rw-r--r-- root root 3558 ./usr/lib/python3.8/email/base64mime.py
+-rw-r--r-- root root 17128 ./usr/lib/python3.8/email/charset.py
+-rw-r--r-- root root 10672 ./usr/lib/python3.8/email/contentmanager.py
+-rw-r--r-- root root 8524 ./usr/lib/python3.8/email/_encoded_words.py
+-rw-r--r-- root root 1786 ./usr/lib/python3.8/email/encoders.py
+-rw-r--r-- root root 3647 ./usr/lib/python3.8/email/errors.py
+-rw-r--r-- root root 22780 ./usr/lib/python3.8/email/feedparser.py
+-rw-r--r-- root root 19975 ./usr/lib/python3.8/email/generator.py
+-rw-r--r-- root root 24102 ./usr/lib/python3.8/email/header.py
+-rw-r--r-- root root 20591 ./usr/lib/python3.8/email/headerregistry.py
+-rw-r--r-- root root 106460 ./usr/lib/python3.8/email/_header_value_parser.py
+-rw-r--r-- root root 1766 ./usr/lib/python3.8/email/__init__.py
+-rw-r--r-- root root 2135 ./usr/lib/python3.8/email/iterators.py
+-rw-r--r-- root root 47072 ./usr/lib/python3.8/email/message.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/email/mime
+-rw-r--r-- root root 1321 ./usr/lib/python3.8/email/mime/application.py
+-rw-r--r-- root root 2739 ./usr/lib/python3.8/email/mime/audio.py
+-rw-r--r-- root root 916 ./usr/lib/python3.8/email/mime/base.py
+-rw-r--r-- root root 1829 ./usr/lib/python3.8/email/mime/image.py
+-rw-r--r-- root root 0 ./usr/lib/python3.8/email/mime/__init__.py
+-rw-r--r-- root root 1317 ./usr/lib/python3.8/email/mime/message.py
+-rw-r--r-- root root 1621 ./usr/lib/python3.8/email/mime/multipart.py
+-rw-r--r-- root root 691 ./usr/lib/python3.8/email/mime/nonmultipart.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/email/mime/__pycache__
+-rw-r--r-- root root 1448 ./usr/lib/python3.8/email/mime/__pycache__/application.cpython-38.opt-1.pyc
+-rw-r--r-- root root 794 ./usr/lib/python3.8/email/mime/__pycache__/application.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1448 ./usr/lib/python3.8/email/mime/__pycache__/application.cpython-38.pyc
+-rw-r--r-- root root 2613 ./usr/lib/python3.8/email/mime/__pycache__/audio.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1173 ./usr/lib/python3.8/email/mime/__pycache__/audio.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2613 ./usr/lib/python3.8/email/mime/__pycache__/audio.cpython-38.pyc
+-rw-r--r-- root root 1030 ./usr/lib/python3.8/email/mime/__pycache__/base.cpython-38.opt-1.pyc
+-rw-r--r-- root root 706 ./usr/lib/python3.8/email/mime/__pycache__/base.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1030 ./usr/lib/python3.8/email/mime/__pycache__/base.cpython-38.pyc
+-rw-r--r-- root root 1893 ./usr/lib/python3.8/email/mime/__pycache__/image.cpython-38.opt-1.pyc
+-rw-r--r-- root root 816 ./usr/lib/python3.8/email/mime/__pycache__/image.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1893 ./usr/lib/python3.8/email/mime/__pycache__/image.cpython-38.pyc
+-rw-r--r-- root root 121 ./usr/lib/python3.8/email/mime/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 121 ./usr/lib/python3.8/email/mime/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 121 ./usr/lib/python3.8/email/mime/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 1271 ./usr/lib/python3.8/email/mime/__pycache__/message.cpython-38.opt-1.pyc
+-rw-r--r-- root root 779 ./usr/lib/python3.8/email/mime/__pycache__/message.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1271 ./usr/lib/python3.8/email/mime/__pycache__/message.cpython-38.pyc
+-rw-r--r-- root root 1491 ./usr/lib/python3.8/email/mime/__pycache__/multipart.cpython-38.opt-1.pyc
+-rw-r--r-- root root 695 ./usr/lib/python3.8/email/mime/__pycache__/multipart.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1491 ./usr/lib/python3.8/email/mime/__pycache__/multipart.cpython-38.pyc
+-rw-r--r-- root root 753 ./usr/lib/python3.8/email/mime/__pycache__/nonmultipart.cpython-38.opt-1.pyc
+-rw-r--r-- root root 618 ./usr/lib/python3.8/email/mime/__pycache__/nonmultipart.cpython-38.opt-2.pyc
+-rw-r--r-- root root 753 ./usr/lib/python3.8/email/mime/__pycache__/nonmultipart.cpython-38.pyc
+-rw-r--r-- root root 1300 ./usr/lib/python3.8/email/mime/__pycache__/text.cpython-38.opt-1.pyc
+-rw-r--r-- root root 789 ./usr/lib/python3.8/email/mime/__pycache__/text.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1300 ./usr/lib/python3.8/email/mime/__pycache__/text.cpython-38.pyc
+-rw-r--r-- root root 1437 ./usr/lib/python3.8/email/mime/text.py
+-rw-r--r-- root root 17604 ./usr/lib/python3.8/email/_parseaddr.py
+-rw-r--r-- root root 5041 ./usr/lib/python3.8/email/parser.py
+-rw-r--r-- root root 15073 ./usr/lib/python3.8/email/_policybase.py
+-rw-r--r-- root root 10383 ./usr/lib/python3.8/email/policy.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/email/__pycache__
+-rw-r--r-- root root 3229 ./usr/lib/python3.8/email/__pycache__/base64mime.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1452 ./usr/lib/python3.8/email/__pycache__/base64mime.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3229 ./usr/lib/python3.8/email/__pycache__/base64mime.cpython-38.pyc
+-rw-r--r-- root root 11416 ./usr/lib/python3.8/email/__pycache__/charset.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5087 ./usr/lib/python3.8/email/__pycache__/charset.cpython-38.opt-2.pyc
+-rw-r--r-- root root 11453 ./usr/lib/python3.8/email/__pycache__/charset.cpython-38.pyc
+-rw-r--r-- root root 7337 ./usr/lib/python3.8/email/__pycache__/contentmanager.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7337 ./usr/lib/python3.8/email/__pycache__/contentmanager.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7337 ./usr/lib/python3.8/email/__pycache__/contentmanager.cpython-38.pyc
+-rw-r--r-- root root 5680 ./usr/lib/python3.8/email/__pycache__/_encoded_words.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3794 ./usr/lib/python3.8/email/__pycache__/_encoded_words.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5680 ./usr/lib/python3.8/email/__pycache__/_encoded_words.cpython-38.pyc
+-rw-r--r-- root root 1606 ./usr/lib/python3.8/email/__pycache__/encoders.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1255 ./usr/lib/python3.8/email/__pycache__/encoders.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1606 ./usr/lib/python3.8/email/__pycache__/encoders.cpython-38.pyc
+-rw-r--r-- root root 5899 ./usr/lib/python3.8/email/__pycache__/errors.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4467 ./usr/lib/python3.8/email/__pycache__/errors.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5899 ./usr/lib/python3.8/email/__pycache__/errors.cpython-38.pyc
+-rw-r--r-- root root 10484 ./usr/lib/python3.8/email/__pycache__/feedparser.cpython-38.opt-1.pyc
+-rw-r--r-- root root 8821 ./usr/lib/python3.8/email/__pycache__/feedparser.cpython-38.opt-2.pyc
+-rw-r--r-- root root 10636 ./usr/lib/python3.8/email/__pycache__/feedparser.cpython-38.pyc
+-rw-r--r-- root root 12476 ./usr/lib/python3.8/email/__pycache__/generator.cpython-38.opt-1.pyc
+-rw-r--r-- root root 8777 ./usr/lib/python3.8/email/__pycache__/generator.cpython-38.opt-2.pyc
+-rw-r--r-- root root 12476 ./usr/lib/python3.8/email/__pycache__/generator.cpython-38.pyc
+-rw-r--r-- root root 16433 ./usr/lib/python3.8/email/__pycache__/header.cpython-38.opt-1.pyc
+-rw-r--r-- root root 10809 ./usr/lib/python3.8/email/__pycache__/header.cpython-38.opt-2.pyc
+-rw-r--r-- root root 16433 ./usr/lib/python3.8/email/__pycache__/header.cpython-38.pyc
+-rw-r--r-- root root 21842 ./usr/lib/python3.8/email/__pycache__/headerregistry.cpython-38.opt-1.pyc
+-rw-r--r-- root root 16079 ./usr/lib/python3.8/email/__pycache__/headerregistry.cpython-38.opt-2.pyc
+-rw-r--r-- root root 21894 ./usr/lib/python3.8/email/__pycache__/headerregistry.cpython-38.pyc
+-rw-r--r-- root root 79733 ./usr/lib/python3.8/email/__pycache__/_header_value_parser.cpython-38.opt-1.pyc
+-rw-r--r-- root root 62861 ./usr/lib/python3.8/email/__pycache__/_header_value_parser.cpython-38.opt-2.pyc
+-rw-r--r-- root root 79781 ./usr/lib/python3.8/email/__pycache__/_header_value_parser.cpython-38.pyc
+-rw-r--r-- root root 1685 ./usr/lib/python3.8/email/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1060 ./usr/lib/python3.8/email/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1685 ./usr/lib/python3.8/email/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 1914 ./usr/lib/python3.8/email/__pycache__/iterators.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1294 ./usr/lib/python3.8/email/__pycache__/iterators.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1914 ./usr/lib/python3.8/email/__pycache__/iterators.cpython-38.pyc
+-rw-r--r-- root root 37872 ./usr/lib/python3.8/email/__pycache__/message.cpython-38.opt-1.pyc
+-rw-r--r-- root root 21310 ./usr/lib/python3.8/email/__pycache__/message.cpython-38.opt-2.pyc
+-rw-r--r-- root root 37872 ./usr/lib/python3.8/email/__pycache__/message.cpython-38.pyc
+-rw-r--r-- root root 12448 ./usr/lib/python3.8/email/__pycache__/_parseaddr.cpython-38.opt-1.pyc
+-rw-r--r-- root root 9488 ./usr/lib/python3.8/email/__pycache__/_parseaddr.cpython-38.opt-2.pyc
+-rw-r--r-- root root 12448 ./usr/lib/python3.8/email/__pycache__/_parseaddr.cpython-38.pyc
+-rw-r--r-- root root 5716 ./usr/lib/python3.8/email/__pycache__/parser.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2698 ./usr/lib/python3.8/email/__pycache__/parser.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5716 ./usr/lib/python3.8/email/__pycache__/parser.cpython-38.pyc
+-rw-r--r-- root root 14804 ./usr/lib/python3.8/email/__pycache__/_policybase.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5976 ./usr/lib/python3.8/email/__pycache__/_policybase.cpython-38.opt-2.pyc
+-rw-r--r-- root root 14804 ./usr/lib/python3.8/email/__pycache__/_policybase.cpython-38.pyc
+-rw-r--r-- root root 9652 ./usr/lib/python3.8/email/__pycache__/policy.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3437 ./usr/lib/python3.8/email/__pycache__/policy.cpython-38.opt-2.pyc
+-rw-r--r-- root root 9652 ./usr/lib/python3.8/email/__pycache__/policy.cpython-38.pyc
+-rw-r--r-- root root 7672 ./usr/lib/python3.8/email/__pycache__/quoprimime.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4199 ./usr/lib/python3.8/email/__pycache__/quoprimime.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7672 ./usr/lib/python3.8/email/__pycache__/quoprimime.cpython-38.pyc
+-rw-r--r-- root root 9541 ./usr/lib/python3.8/email/__pycache__/utils.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6212 ./usr/lib/python3.8/email/__pycache__/utils.cpython-38.opt-2.pyc
+-rw-r--r-- root root 9541 ./usr/lib/python3.8/email/__pycache__/utils.cpython-38.pyc
+-rw-r--r-- root root 9858 ./usr/lib/python3.8/email/quoprimime.py
+-rw-r--r-- root root 13488 ./usr/lib/python3.8/email/utils.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/encodings
+-rw-r--r-- root root 15693 ./usr/lib/python3.8/encodings/aliases.py
+-rw-r--r-- root root 1248 ./usr/lib/python3.8/encodings/ascii.py
+-rw-r--r-- root root 1533 ./usr/lib/python3.8/encodings/base64_codec.py
+-rw-r--r-- root root 1039 ./usr/lib/python3.8/encodings/big5hkscs.py
+-rw-r--r-- root root 1019 ./usr/lib/python3.8/encodings/big5.py
+-rw-r--r-- root root 2249 ./usr/lib/python3.8/encodings/bz2_codec.py
+-rw-r--r-- root root 2084 ./usr/lib/python3.8/encodings/charmap.py
+-rw-r--r-- root root 13121 ./usr/lib/python3.8/encodings/cp037.py
+-rw-r--r-- root root 13568 ./usr/lib/python3.8/encodings/cp1006.py
+-rw-r--r-- root root 13113 ./usr/lib/python3.8/encodings/cp1026.py
+-rw-r--r-- root root 34597 ./usr/lib/python3.8/encodings/cp1125.py
+-rw-r--r-- root root 13105 ./usr/lib/python3.8/encodings/cp1140.py
+-rw-r--r-- root root 13686 ./usr/lib/python3.8/encodings/cp1250.py
+-rw-r--r-- root root 13361 ./usr/lib/python3.8/encodings/cp1251.py
+-rw-r--r-- root root 13511 ./usr/lib/python3.8/encodings/cp1252.py
+-rw-r--r-- root root 13094 ./usr/lib/python3.8/encodings/cp1253.py
+-rw-r--r-- root root 13502 ./usr/lib/python3.8/encodings/cp1254.py
+-rw-r--r-- root root 12466 ./usr/lib/python3.8/encodings/cp1255.py
+-rw-r--r-- root root 12814 ./usr/lib/python3.8/encodings/cp1256.py
+-rw-r--r-- root root 13374 ./usr/lib/python3.8/encodings/cp1257.py
+-rw-r--r-- root root 13364 ./usr/lib/python3.8/encodings/cp1258.py
+-rw-r--r-- root root 14132 ./usr/lib/python3.8/encodings/cp273.py
+-rw-r--r-- root root 12055 ./usr/lib/python3.8/encodings/cp424.py
+-rw-r--r-- root root 34564 ./usr/lib/python3.8/encodings/cp437.py
+-rw-r--r-- root root 13121 ./usr/lib/python3.8/encodings/cp500.py
+-rw-r--r-- root root 13686 ./usr/lib/python3.8/encodings/cp720.py
+-rw-r--r-- root root 34681 ./usr/lib/python3.8/encodings/cp737.py
+-rw-r--r-- root root 34476 ./usr/lib/python3.8/encodings/cp775.py
+-rw-r--r-- root root 34105 ./usr/lib/python3.8/encodings/cp850.py
+-rw-r--r-- root root 35002 ./usr/lib/python3.8/encodings/cp852.py
+-rw-r--r-- root root 33850 ./usr/lib/python3.8/encodings/cp855.py
+-rw-r--r-- root root 12423 ./usr/lib/python3.8/encodings/cp856.py
+-rw-r--r-- root root 33908 ./usr/lib/python3.8/encodings/cp857.py
+-rw-r--r-- root root 34015 ./usr/lib/python3.8/encodings/cp858.py
+-rw-r--r-- root root 34681 ./usr/lib/python3.8/encodings/cp860.py
+-rw-r--r-- root root 34633 ./usr/lib/python3.8/encodings/cp861.py
+-rw-r--r-- root root 33370 ./usr/lib/python3.8/encodings/cp862.py
+-rw-r--r-- root root 34252 ./usr/lib/python3.8/encodings/cp863.py
+-rw-r--r-- root root 33663 ./usr/lib/python3.8/encodings/cp864.py
+-rw-r--r-- root root 34618 ./usr/lib/python3.8/encodings/cp865.py
+-rw-r--r-- root root 34396 ./usr/lib/python3.8/encodings/cp866.py
+-rw-r--r-- root root 32965 ./usr/lib/python3.8/encodings/cp869.py
+-rw-r--r-- root root 12595 ./usr/lib/python3.8/encodings/cp874.py
+-rw-r--r-- root root 12854 ./usr/lib/python3.8/encodings/cp875.py
+-rw-r--r-- root root 1023 ./usr/lib/python3.8/encodings/cp932.py
+-rw-r--r-- root root 1023 ./usr/lib/python3.8/encodings/cp949.py
+-rw-r--r-- root root 1023 ./usr/lib/python3.8/encodings/cp950.py
+-rw-r--r-- root root 1051 ./usr/lib/python3.8/encodings/euc_jis_2004.py
+-rw-r--r-- root root 1051 ./usr/lib/python3.8/encodings/euc_jisx0213.py
+-rw-r--r-- root root 1027 ./usr/lib/python3.8/encodings/euc_jp.py
+-rw-r--r-- root root 1027 ./usr/lib/python3.8/encodings/euc_kr.py
+-rw-r--r-- root root 1031 ./usr/lib/python3.8/encodings/gb18030.py
+-rw-r--r-- root root 1027 ./usr/lib/python3.8/encodings/gb2312.py
+-rw-r--r-- root root 1015 ./usr/lib/python3.8/encodings/gbk.py
+-rw-r--r-- root root 1508 ./usr/lib/python3.8/encodings/hex_codec.py
+-rw-r--r-- root root 13475 ./usr/lib/python3.8/encodings/hp_roman8.py
+-rw-r--r-- root root 1011 ./usr/lib/python3.8/encodings/hz.py
+-rw-r--r-- root root 9170 ./usr/lib/python3.8/encodings/idna.py
+-rw-r--r-- root root 5588 ./usr/lib/python3.8/encodings/__init__.py
+-rw-r--r-- root root 1061 ./usr/lib/python3.8/encodings/iso2022_jp_1.py
+-rw-r--r-- root root 1073 ./usr/lib/python3.8/encodings/iso2022_jp_2004.py
+-rw-r--r-- root root 1061 ./usr/lib/python3.8/encodings/iso2022_jp_2.py
+-rw-r--r-- root root 1061 ./usr/lib/python3.8/encodings/iso2022_jp_3.py
+-rw-r--r-- root root 1069 ./usr/lib/python3.8/encodings/iso2022_jp_ext.py
+-rw-r--r-- root root 1053 ./usr/lib/python3.8/encodings/iso2022_jp.py
+-rw-r--r-- root root 1053 ./usr/lib/python3.8/encodings/iso2022_kr.py
+-rw-r--r-- root root 13589 ./usr/lib/python3.8/encodings/iso8859_10.py
+-rw-r--r-- root root 12335 ./usr/lib/python3.8/encodings/iso8859_11.py
+-rw-r--r-- root root 13271 ./usr/lib/python3.8/encodings/iso8859_13.py
+-rw-r--r-- root root 13652 ./usr/lib/python3.8/encodings/iso8859_14.py
+-rw-r--r-- root root 13212 ./usr/lib/python3.8/encodings/iso8859_15.py
+-rw-r--r-- root root 13557 ./usr/lib/python3.8/encodings/iso8859_16.py
+-rw-r--r-- root root 13176 ./usr/lib/python3.8/encodings/iso8859_1.py
+-rw-r--r-- root root 13404 ./usr/lib/python3.8/encodings/iso8859_2.py
+-rw-r--r-- root root 13089 ./usr/lib/python3.8/encodings/iso8859_3.py
+-rw-r--r-- root root 13376 ./usr/lib/python3.8/encodings/iso8859_4.py
+-rw-r--r-- root root 13015 ./usr/lib/python3.8/encodings/iso8859_5.py
+-rw-r--r-- root root 10833 ./usr/lib/python3.8/encodings/iso8859_6.py
+-rw-r--r-- root root 12844 ./usr/lib/python3.8/encodings/iso8859_7.py
+-rw-r--r-- root root 11036 ./usr/lib/python3.8/encodings/iso8859_8.py
+-rw-r--r-- root root 13156 ./usr/lib/python3.8/encodings/iso8859_9.py
+-rw-r--r-- root root 1023 ./usr/lib/python3.8/encodings/johab.py
+-rw-r--r-- root root 13779 ./usr/lib/python3.8/encodings/koi8_r.py
+-rw-r--r-- root root 13193 ./usr/lib/python3.8/encodings/koi8_t.py
+-rw-r--r-- root root 13762 ./usr/lib/python3.8/encodings/koi8_u.py
+-rw-r--r-- root root 13723 ./usr/lib/python3.8/encodings/kz1048.py
+-rw-r--r-- root root 1264 ./usr/lib/python3.8/encodings/latin_1.py
+-rw-r--r-- root root 36467 ./usr/lib/python3.8/encodings/mac_arabic.py
+-rw-r--r-- root root 14102 ./usr/lib/python3.8/encodings/mac_centeuro.py
+-rw-r--r-- root root 13633 ./usr/lib/python3.8/encodings/mac_croatian.py
+-rw-r--r-- root root 13454 ./usr/lib/python3.8/encodings/mac_cyrillic.py
+-rw-r--r-- root root 15170 ./usr/lib/python3.8/encodings/mac_farsi.py
+-rw-r--r-- root root 13721 ./usr/lib/python3.8/encodings/mac_greek.py
+-rw-r--r-- root root 13498 ./usr/lib/python3.8/encodings/mac_iceland.py
+-rw-r--r-- root root 14118 ./usr/lib/python3.8/encodings/mac_latin2.py
+-rw-r--r-- root root 13661 ./usr/lib/python3.8/encodings/mac_romanian.py
+-rw-r--r-- root root 13480 ./usr/lib/python3.8/encodings/mac_roman.py
+-rw-r--r-- root root 13513 ./usr/lib/python3.8/encodings/mac_turkish.py
+-rw-r--r-- root root 1211 ./usr/lib/python3.8/encodings/mbcs.py
+-rw-r--r-- root root 1019 ./usr/lib/python3.8/encodings/oem.py
+-rw-r--r-- root root 13519 ./usr/lib/python3.8/encodings/palmos.py
+-rw-r--r-- root root 14015 ./usr/lib/python3.8/encodings/ptcp154.py
+-rw-r--r-- root root 6881 ./usr/lib/python3.8/encodings/punycode.py
+drwxr-xr-x root root 24576 ./usr/lib/python3.8/encodings/__pycache__
+-rw-r--r-- root root 6320 ./usr/lib/python3.8/encodings/__pycache__/aliases.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5728 ./usr/lib/python3.8/encodings/__pycache__/aliases.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6320 ./usr/lib/python3.8/encodings/__pycache__/aliases.cpython-38.pyc
+-rw-r--r-- root root 1871 ./usr/lib/python3.8/encodings/__pycache__/ascii.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1725 ./usr/lib/python3.8/encodings/__pycache__/ascii.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1871 ./usr/lib/python3.8/encodings/__pycache__/ascii.cpython-38.pyc
+-rw-r--r-- root root 2285 ./usr/lib/python3.8/encodings/__pycache__/base64_codec.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2110 ./usr/lib/python3.8/encodings/__pycache__/base64_codec.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2389 ./usr/lib/python3.8/encodings/__pycache__/base64_codec.cpython-38.pyc
+-rw-r--r-- root root 1399 ./usr/lib/python3.8/encodings/__pycache__/big5.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1399 ./usr/lib/python3.8/encodings/__pycache__/big5.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1399 ./usr/lib/python3.8/encodings/__pycache__/big5.cpython-38.pyc
+-rw-r--r-- root root 1409 ./usr/lib/python3.8/encodings/__pycache__/big5hkscs.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1409 ./usr/lib/python3.8/encodings/__pycache__/big5hkscs.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1409 ./usr/lib/python3.8/encodings/__pycache__/big5hkscs.cpython-38.pyc
+-rw-r--r-- root root 3190 ./usr/lib/python3.8/encodings/__pycache__/bz2_codec.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2894 ./usr/lib/python3.8/encodings/__pycache__/bz2_codec.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3280 ./usr/lib/python3.8/encodings/__pycache__/bz2_codec.cpython-38.pyc
+-rw-r--r-- root root 2881 ./usr/lib/python3.8/encodings/__pycache__/charmap.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2587 ./usr/lib/python3.8/encodings/__pycache__/charmap.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2881 ./usr/lib/python3.8/encodings/__pycache__/charmap.cpython-38.pyc
+-rw-r--r-- root root 2412 ./usr/lib/python3.8/encodings/__pycache__/cp037.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2280 ./usr/lib/python3.8/encodings/__pycache__/cp037.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2412 ./usr/lib/python3.8/encodings/__pycache__/cp037.cpython-38.pyc
+-rw-r--r-- root root 2488 ./usr/lib/python3.8/encodings/__pycache__/cp1006.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2363 ./usr/lib/python3.8/encodings/__pycache__/cp1006.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2488 ./usr/lib/python3.8/encodings/__pycache__/cp1006.cpython-38.pyc
+-rw-r--r-- root root 2416 ./usr/lib/python3.8/encodings/__pycache__/cp1026.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2282 ./usr/lib/python3.8/encodings/__pycache__/cp1026.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2416 ./usr/lib/python3.8/encodings/__pycache__/cp1026.cpython-38.pyc
+-rw-r--r-- root root 8119 ./usr/lib/python3.8/encodings/__pycache__/cp1125.cpython-38.opt-1.pyc
+-rw-r--r-- root root 8056 ./usr/lib/python3.8/encodings/__pycache__/cp1125.cpython-38.opt-2.pyc
+-rw-r--r-- root root 8119 ./usr/lib/python3.8/encodings/__pycache__/cp1125.cpython-38.pyc
+-rw-r--r-- root root 2402 ./usr/lib/python3.8/encodings/__pycache__/cp1140.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2283 ./usr/lib/python3.8/encodings/__pycache__/cp1140.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2402 ./usr/lib/python3.8/encodings/__pycache__/cp1140.cpython-38.pyc
+-rw-r--r-- root root 2439 ./usr/lib/python3.8/encodings/__pycache__/cp1250.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2304 ./usr/lib/python3.8/encodings/__pycache__/cp1250.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2439 ./usr/lib/python3.8/encodings/__pycache__/cp1250.cpython-38.pyc
+-rw-r--r-- root root 2436 ./usr/lib/python3.8/encodings/__pycache__/cp1251.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2301 ./usr/lib/python3.8/encodings/__pycache__/cp1251.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2436 ./usr/lib/python3.8/encodings/__pycache__/cp1251.cpython-38.pyc
+-rw-r--r-- root root 2439 ./usr/lib/python3.8/encodings/__pycache__/cp1252.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2304 ./usr/lib/python3.8/encodings/__pycache__/cp1252.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2439 ./usr/lib/python3.8/encodings/__pycache__/cp1252.cpython-38.pyc
+-rw-r--r-- root root 2452 ./usr/lib/python3.8/encodings/__pycache__/cp1253.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2317 ./usr/lib/python3.8/encodings/__pycache__/cp1253.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2452 ./usr/lib/python3.8/encodings/__pycache__/cp1253.cpython-38.pyc
+-rw-r--r-- root root 2441 ./usr/lib/python3.8/encodings/__pycache__/cp1254.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2306 ./usr/lib/python3.8/encodings/__pycache__/cp1254.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2441 ./usr/lib/python3.8/encodings/__pycache__/cp1254.cpython-38.pyc
+-rw-r--r-- root root 2460 ./usr/lib/python3.8/encodings/__pycache__/cp1255.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2325 ./usr/lib/python3.8/encodings/__pycache__/cp1255.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2460 ./usr/lib/python3.8/encodings/__pycache__/cp1255.cpython-38.pyc
+-rw-r--r-- root root 2438 ./usr/lib/python3.8/encodings/__pycache__/cp1256.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2303 ./usr/lib/python3.8/encodings/__pycache__/cp1256.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2438 ./usr/lib/python3.8/encodings/__pycache__/cp1256.cpython-38.pyc
+-rw-r--r-- root root 2446 ./usr/lib/python3.8/encodings/__pycache__/cp1257.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2311 ./usr/lib/python3.8/encodings/__pycache__/cp1257.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2446 ./usr/lib/python3.8/encodings/__pycache__/cp1257.cpython-38.pyc
+-rw-r--r-- root root 2444 ./usr/lib/python3.8/encodings/__pycache__/cp1258.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2309 ./usr/lib/python3.8/encodings/__pycache__/cp1258.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2444 ./usr/lib/python3.8/encodings/__pycache__/cp1258.cpython-38.pyc
+-rw-r--r-- root root 2398 ./usr/lib/python3.8/encodings/__pycache__/cp273.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2281 ./usr/lib/python3.8/encodings/__pycache__/cp273.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2398 ./usr/lib/python3.8/encodings/__pycache__/cp273.cpython-38.pyc
+-rw-r--r-- root root 2442 ./usr/lib/python3.8/encodings/__pycache__/cp424.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2319 ./usr/lib/python3.8/encodings/__pycache__/cp424.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2442 ./usr/lib/python3.8/encodings/__pycache__/cp424.cpython-38.pyc
+-rw-r--r-- root root 7836 ./usr/lib/python3.8/encodings/__pycache__/cp437.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7715 ./usr/lib/python3.8/encodings/__pycache__/cp437.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7836 ./usr/lib/python3.8/encodings/__pycache__/cp437.cpython-38.pyc
+-rw-r--r-- root root 2412 ./usr/lib/python3.8/encodings/__pycache__/cp500.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2280 ./usr/lib/python3.8/encodings/__pycache__/cp500.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2412 ./usr/lib/python3.8/encodings/__pycache__/cp500.cpython-38.pyc
+-rw-r--r-- root root 2509 ./usr/lib/python3.8/encodings/__pycache__/cp720.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2334 ./usr/lib/python3.8/encodings/__pycache__/cp720.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2509 ./usr/lib/python3.8/encodings/__pycache__/cp720.cpython-38.pyc
+-rw-r--r-- root root 8158 ./usr/lib/python3.8/encodings/__pycache__/cp737.cpython-38.opt-1.pyc
+-rw-r--r-- root root 8037 ./usr/lib/python3.8/encodings/__pycache__/cp737.cpython-38.opt-2.pyc
+-rw-r--r-- root root 8158 ./usr/lib/python3.8/encodings/__pycache__/cp737.cpython-38.pyc
+-rw-r--r-- root root 7866 ./usr/lib/python3.8/encodings/__pycache__/cp775.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7745 ./usr/lib/python3.8/encodings/__pycache__/cp775.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7866 ./usr/lib/python3.8/encodings/__pycache__/cp775.cpython-38.pyc
+-rw-r--r-- root root 7497 ./usr/lib/python3.8/encodings/__pycache__/cp850.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7382 ./usr/lib/python3.8/encodings/__pycache__/cp850.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7497 ./usr/lib/python3.8/encodings/__pycache__/cp850.cpython-38.pyc
+-rw-r--r-- root root 7874 ./usr/lib/python3.8/encodings/__pycache__/cp852.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7759 ./usr/lib/python3.8/encodings/__pycache__/cp852.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7874 ./usr/lib/python3.8/encodings/__pycache__/cp852.cpython-38.pyc
+-rw-r--r-- root root 8127 ./usr/lib/python3.8/encodings/__pycache__/cp855.cpython-38.opt-1.pyc
+-rw-r--r-- root root 8012 ./usr/lib/python3.8/encodings/__pycache__/cp855.cpython-38.opt-2.pyc
+-rw-r--r-- root root 8127 ./usr/lib/python3.8/encodings/__pycache__/cp855.cpython-38.pyc
+-rw-r--r-- root root 2474 ./usr/lib/python3.8/encodings/__pycache__/cp856.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2351 ./usr/lib/python3.8/encodings/__pycache__/cp856.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2474 ./usr/lib/python3.8/encodings/__pycache__/cp856.cpython-38.pyc
+-rw-r--r-- root root 7477 ./usr/lib/python3.8/encodings/__pycache__/cp857.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7362 ./usr/lib/python3.8/encodings/__pycache__/cp857.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7477 ./usr/lib/python3.8/encodings/__pycache__/cp857.cpython-38.pyc
+-rw-r--r-- root root 7467 ./usr/lib/python3.8/encodings/__pycache__/cp858.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7383 ./usr/lib/python3.8/encodings/__pycache__/cp858.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7467 ./usr/lib/python3.8/encodings/__pycache__/cp858.cpython-38.pyc
+-rw-r--r-- root root 7815 ./usr/lib/python3.8/encodings/__pycache__/cp860.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7700 ./usr/lib/python3.8/encodings/__pycache__/cp860.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7815 ./usr/lib/python3.8/encodings/__pycache__/cp860.cpython-38.pyc
+-rw-r--r-- root root 7830 ./usr/lib/python3.8/encodings/__pycache__/cp861.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7715 ./usr/lib/python3.8/encodings/__pycache__/cp861.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7830 ./usr/lib/python3.8/encodings/__pycache__/cp861.cpython-38.pyc
+-rw-r--r-- root root 8019 ./usr/lib/python3.8/encodings/__pycache__/cp862.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7904 ./usr/lib/python3.8/encodings/__pycache__/cp862.cpython-38.opt-2.pyc
+-rw-r--r-- root root 8019 ./usr/lib/python3.8/encodings/__pycache__/cp862.cpython-38.pyc
+-rw-r--r-- root root 7830 ./usr/lib/python3.8/encodings/__pycache__/cp863.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7715 ./usr/lib/python3.8/encodings/__pycache__/cp863.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7830 ./usr/lib/python3.8/encodings/__pycache__/cp863.cpython-38.pyc
+-rw-r--r-- root root 7974 ./usr/lib/python3.8/encodings/__pycache__/cp864.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7859 ./usr/lib/python3.8/encodings/__pycache__/cp864.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7974 ./usr/lib/python3.8/encodings/__pycache__/cp864.cpython-38.pyc
+-rw-r--r-- root root 7830 ./usr/lib/python3.8/encodings/__pycache__/cp865.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7715 ./usr/lib/python3.8/encodings/__pycache__/cp865.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7830 ./usr/lib/python3.8/encodings/__pycache__/cp865.cpython-38.pyc
+-rw-r--r-- root root 8163 ./usr/lib/python3.8/encodings/__pycache__/cp866.cpython-38.opt-1.pyc
+-rw-r--r-- root root 8048 ./usr/lib/python3.8/encodings/__pycache__/cp866.cpython-38.opt-2.pyc
+-rw-r--r-- root root 8163 ./usr/lib/python3.8/encodings/__pycache__/cp866.cpython-38.pyc
+-rw-r--r-- root root 7854 ./usr/lib/python3.8/encodings/__pycache__/cp869.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7739 ./usr/lib/python3.8/encodings/__pycache__/cp869.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7854 ./usr/lib/python3.8/encodings/__pycache__/cp869.cpython-38.pyc
+-rw-r--r-- root root 2540 ./usr/lib/python3.8/encodings/__pycache__/cp874.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2407 ./usr/lib/python3.8/encodings/__pycache__/cp874.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2540 ./usr/lib/python3.8/encodings/__pycache__/cp874.cpython-38.pyc
+-rw-r--r-- root root 2409 ./usr/lib/python3.8/encodings/__pycache__/cp875.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2277 ./usr/lib/python3.8/encodings/__pycache__/cp875.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2409 ./usr/lib/python3.8/encodings/__pycache__/cp875.cpython-38.pyc
+-rw-r--r-- root root 1401 ./usr/lib/python3.8/encodings/__pycache__/cp932.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1401 ./usr/lib/python3.8/encodings/__pycache__/cp932.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1401 ./usr/lib/python3.8/encodings/__pycache__/cp932.cpython-38.pyc
+-rw-r--r-- root root 1401 ./usr/lib/python3.8/encodings/__pycache__/cp949.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1401 ./usr/lib/python3.8/encodings/__pycache__/cp949.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1401 ./usr/lib/python3.8/encodings/__pycache__/cp949.cpython-38.pyc
+-rw-r--r-- root root 1401 ./usr/lib/python3.8/encodings/__pycache__/cp950.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1401 ./usr/lib/python3.8/encodings/__pycache__/cp950.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1401 ./usr/lib/python3.8/encodings/__pycache__/cp950.cpython-38.pyc
+-rw-r--r-- root root 1415 ./usr/lib/python3.8/encodings/__pycache__/euc_jis_2004.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1415 ./usr/lib/python3.8/encodings/__pycache__/euc_jis_2004.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1415 ./usr/lib/python3.8/encodings/__pycache__/euc_jis_2004.cpython-38.pyc
+-rw-r--r-- root root 1415 ./usr/lib/python3.8/encodings/__pycache__/euc_jisx0213.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1415 ./usr/lib/python3.8/encodings/__pycache__/euc_jisx0213.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1415 ./usr/lib/python3.8/encodings/__pycache__/euc_jisx0213.cpython-38.pyc
+-rw-r--r-- root root 1403 ./usr/lib/python3.8/encodings/__pycache__/euc_jp.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1403 ./usr/lib/python3.8/encodings/__pycache__/euc_jp.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1403 ./usr/lib/python3.8/encodings/__pycache__/euc_jp.cpython-38.pyc
+-rw-r--r-- root root 1403 ./usr/lib/python3.8/encodings/__pycache__/euc_kr.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1403 ./usr/lib/python3.8/encodings/__pycache__/euc_kr.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1403 ./usr/lib/python3.8/encodings/__pycache__/euc_kr.cpython-38.pyc
+-rw-r--r-- root root 1405 ./usr/lib/python3.8/encodings/__pycache__/gb18030.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1405 ./usr/lib/python3.8/encodings/__pycache__/gb18030.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1405 ./usr/lib/python3.8/encodings/__pycache__/gb18030.cpython-38.pyc
+-rw-r--r-- root root 1403 ./usr/lib/python3.8/encodings/__pycache__/gb2312.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1403 ./usr/lib/python3.8/encodings/__pycache__/gb2312.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1403 ./usr/lib/python3.8/encodings/__pycache__/gb2312.cpython-38.pyc
+-rw-r--r-- root root 1397 ./usr/lib/python3.8/encodings/__pycache__/gbk.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1397 ./usr/lib/python3.8/encodings/__pycache__/gbk.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1397 ./usr/lib/python3.8/encodings/__pycache__/gbk.cpython-38.pyc
+-rw-r--r-- root root 2272 ./usr/lib/python3.8/encodings/__pycache__/hex_codec.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2095 ./usr/lib/python3.8/encodings/__pycache__/hex_codec.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2376 ./usr/lib/python3.8/encodings/__pycache__/hex_codec.cpython-38.pyc
+-rw-r--r-- root root 2613 ./usr/lib/python3.8/encodings/__pycache__/hp_roman8.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2292 ./usr/lib/python3.8/encodings/__pycache__/hp_roman8.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2613 ./usr/lib/python3.8/encodings/__pycache__/hp_roman8.cpython-38.pyc
+-rw-r--r-- root root 1395 ./usr/lib/python3.8/encodings/__pycache__/hz.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1395 ./usr/lib/python3.8/encodings/__pycache__/hz.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1395 ./usr/lib/python3.8/encodings/__pycache__/hz.cpython-38.pyc
+-rw-r--r-- root root 5607 ./usr/lib/python3.8/encodings/__pycache__/idna.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5607 ./usr/lib/python3.8/encodings/__pycache__/idna.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5607 ./usr/lib/python3.8/encodings/__pycache__/idna.cpython-38.pyc
+-rw-r--r-- root root 3893 ./usr/lib/python3.8/encodings/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2438 ./usr/lib/python3.8/encodings/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3893 ./usr/lib/python3.8/encodings/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 1420 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_1.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1420 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_1.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1420 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_1.cpython-38.pyc
+-rw-r--r-- root root 1426 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_2004.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1426 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_2004.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1426 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_2004.cpython-38.pyc
+-rw-r--r-- root root 1420 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_2.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1420 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_2.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1420 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_2.cpython-38.pyc
+-rw-r--r-- root root 1420 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_3.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1420 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_3.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1420 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_3.cpython-38.pyc
+-rw-r--r-- root root 1416 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1416 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1416 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp.cpython-38.pyc
+-rw-r--r-- root root 1424 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_ext.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1424 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_ext.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1424 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_ext.cpython-38.pyc
+-rw-r--r-- root root 1416 ./usr/lib/python3.8/encodings/__pycache__/iso2022_kr.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1416 ./usr/lib/python3.8/encodings/__pycache__/iso2022_kr.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1416 ./usr/lib/python3.8/encodings/__pycache__/iso2022_kr.cpython-38.pyc
+-rw-r--r-- root root 2416 ./usr/lib/python3.8/encodings/__pycache__/iso8859_10.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2291 ./usr/lib/python3.8/encodings/__pycache__/iso8859_10.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2416 ./usr/lib/python3.8/encodings/__pycache__/iso8859_10.cpython-38.pyc
+-rw-r--r-- root root 2510 ./usr/lib/python3.8/encodings/__pycache__/iso8859_11.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2385 ./usr/lib/python3.8/encodings/__pycache__/iso8859_11.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2510 ./usr/lib/python3.8/encodings/__pycache__/iso8859_11.cpython-38.pyc
+-rw-r--r-- root root 2419 ./usr/lib/python3.8/encodings/__pycache__/iso8859_13.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2294 ./usr/lib/python3.8/encodings/__pycache__/iso8859_13.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2419 ./usr/lib/python3.8/encodings/__pycache__/iso8859_13.cpython-38.pyc
+-rw-r--r-- root root 2437 ./usr/lib/python3.8/encodings/__pycache__/iso8859_14.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2312 ./usr/lib/python3.8/encodings/__pycache__/iso8859_14.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2437 ./usr/lib/python3.8/encodings/__pycache__/iso8859_14.cpython-38.pyc
+-rw-r--r-- root root 2416 ./usr/lib/python3.8/encodings/__pycache__/iso8859_15.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2291 ./usr/lib/python3.8/encodings/__pycache__/iso8859_15.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2416 ./usr/lib/python3.8/encodings/__pycache__/iso8859_15.cpython-38.pyc
+-rw-r--r-- root root 2418 ./usr/lib/python3.8/encodings/__pycache__/iso8859_16.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2293 ./usr/lib/python3.8/encodings/__pycache__/iso8859_16.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2418 ./usr/lib/python3.8/encodings/__pycache__/iso8859_16.cpython-38.pyc
+-rw-r--r-- root root 2411 ./usr/lib/python3.8/encodings/__pycache__/iso8859_1.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2288 ./usr/lib/python3.8/encodings/__pycache__/iso8859_1.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2411 ./usr/lib/python3.8/encodings/__pycache__/iso8859_1.cpython-38.pyc
+-rw-r--r-- root root 2411 ./usr/lib/python3.8/encodings/__pycache__/iso8859_2.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2288 ./usr/lib/python3.8/encodings/__pycache__/iso8859_2.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2411 ./usr/lib/python3.8/encodings/__pycache__/iso8859_2.cpython-38.pyc
+-rw-r--r-- root root 2418 ./usr/lib/python3.8/encodings/__pycache__/iso8859_3.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2295 ./usr/lib/python3.8/encodings/__pycache__/iso8859_3.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2418 ./usr/lib/python3.8/encodings/__pycache__/iso8859_3.cpython-38.pyc
+-rw-r--r-- root root 2411 ./usr/lib/python3.8/encodings/__pycache__/iso8859_4.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2288 ./usr/lib/python3.8/encodings/__pycache__/iso8859_4.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2411 ./usr/lib/python3.8/encodings/__pycache__/iso8859_4.cpython-38.pyc
+-rw-r--r-- root root 2412 ./usr/lib/python3.8/encodings/__pycache__/iso8859_5.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2289 ./usr/lib/python3.8/encodings/__pycache__/iso8859_5.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2412 ./usr/lib/python3.8/encodings/__pycache__/iso8859_5.cpython-38.pyc
+-rw-r--r-- root root 2456 ./usr/lib/python3.8/encodings/__pycache__/iso8859_6.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2333 ./usr/lib/python3.8/encodings/__pycache__/iso8859_6.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2456 ./usr/lib/python3.8/encodings/__pycache__/iso8859_6.cpython-38.pyc
+-rw-r--r-- root root 2419 ./usr/lib/python3.8/encodings/__pycache__/iso8859_7.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2296 ./usr/lib/python3.8/encodings/__pycache__/iso8859_7.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2419 ./usr/lib/python3.8/encodings/__pycache__/iso8859_7.cpython-38.pyc
+-rw-r--r-- root root 2450 ./usr/lib/python3.8/encodings/__pycache__/iso8859_8.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2327 ./usr/lib/python3.8/encodings/__pycache__/iso8859_8.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2450 ./usr/lib/python3.8/encodings/__pycache__/iso8859_8.cpython-38.pyc
+-rw-r--r-- root root 2411 ./usr/lib/python3.8/encodings/__pycache__/iso8859_9.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2288 ./usr/lib/python3.8/encodings/__pycache__/iso8859_9.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2411 ./usr/lib/python3.8/encodings/__pycache__/iso8859_9.cpython-38.pyc
+-rw-r--r-- root root 1401 ./usr/lib/python3.8/encodings/__pycache__/johab.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1401 ./usr/lib/python3.8/encodings/__pycache__/johab.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1401 ./usr/lib/python3.8/encodings/__pycache__/johab.cpython-38.pyc
+-rw-r--r-- root root 2463 ./usr/lib/python3.8/encodings/__pycache__/koi8_r.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2338 ./usr/lib/python3.8/encodings/__pycache__/koi8_r.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2463 ./usr/lib/python3.8/encodings/__pycache__/koi8_r.cpython-38.pyc
+-rw-r--r-- root root 2374 ./usr/lib/python3.8/encodings/__pycache__/koi8_t.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2318 ./usr/lib/python3.8/encodings/__pycache__/koi8_t.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2374 ./usr/lib/python3.8/encodings/__pycache__/koi8_t.cpython-38.pyc
+-rw-r--r-- root root 2449 ./usr/lib/python3.8/encodings/__pycache__/koi8_u.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2330 ./usr/lib/python3.8/encodings/__pycache__/koi8_u.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2449 ./usr/lib/python3.8/encodings/__pycache__/koi8_u.cpython-38.pyc
+-rw-r--r-- root root 2426 ./usr/lib/python3.8/encodings/__pycache__/kz1048.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2301 ./usr/lib/python3.8/encodings/__pycache__/kz1048.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2426 ./usr/lib/python3.8/encodings/__pycache__/kz1048.cpython-38.pyc
+-rw-r--r-- root root 1883 ./usr/lib/python3.8/encodings/__pycache__/latin_1.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1735 ./usr/lib/python3.8/encodings/__pycache__/latin_1.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1883 ./usr/lib/python3.8/encodings/__pycache__/latin_1.cpython-38.pyc
+-rw-r--r-- root root 7730 ./usr/lib/python3.8/encodings/__pycache__/mac_arabic.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7618 ./usr/lib/python3.8/encodings/__pycache__/mac_arabic.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7730 ./usr/lib/python3.8/encodings/__pycache__/mac_arabic.cpython-38.pyc
+-rw-r--r-- root root 2450 ./usr/lib/python3.8/encodings/__pycache__/mac_centeuro.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2316 ./usr/lib/python3.8/encodings/__pycache__/mac_centeuro.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2450 ./usr/lib/python3.8/encodings/__pycache__/mac_centeuro.cpython-38.pyc
+-rw-r--r-- root root 2458 ./usr/lib/python3.8/encodings/__pycache__/mac_croatian.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2324 ./usr/lib/python3.8/encodings/__pycache__/mac_croatian.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2458 ./usr/lib/python3.8/encodings/__pycache__/mac_croatian.cpython-38.pyc
+-rw-r--r-- root root 2448 ./usr/lib/python3.8/encodings/__pycache__/mac_cyrillic.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2314 ./usr/lib/python3.8/encodings/__pycache__/mac_cyrillic.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2448 ./usr/lib/python3.8/encodings/__pycache__/mac_cyrillic.cpython-38.pyc
+-rw-r--r-- root root 2392 ./usr/lib/python3.8/encodings/__pycache__/mac_farsi.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2264 ./usr/lib/python3.8/encodings/__pycache__/mac_farsi.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2392 ./usr/lib/python3.8/encodings/__pycache__/mac_farsi.cpython-38.pyc
+-rw-r--r-- root root 2432 ./usr/lib/python3.8/encodings/__pycache__/mac_greek.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2304 ./usr/lib/python3.8/encodings/__pycache__/mac_greek.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2432 ./usr/lib/python3.8/encodings/__pycache__/mac_greek.cpython-38.pyc
+-rw-r--r-- root root 2451 ./usr/lib/python3.8/encodings/__pycache__/mac_iceland.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2319 ./usr/lib/python3.8/encodings/__pycache__/mac_iceland.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2451 ./usr/lib/python3.8/encodings/__pycache__/mac_iceland.cpython-38.pyc
+-rw-r--r-- root root 2592 ./usr/lib/python3.8/encodings/__pycache__/mac_latin2.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2312 ./usr/lib/python3.8/encodings/__pycache__/mac_latin2.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2592 ./usr/lib/python3.8/encodings/__pycache__/mac_latin2.cpython-38.pyc
+-rw-r--r-- root root 2449 ./usr/lib/python3.8/encodings/__pycache__/mac_roman.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2321 ./usr/lib/python3.8/encodings/__pycache__/mac_roman.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2449 ./usr/lib/python3.8/encodings/__pycache__/mac_roman.cpython-38.pyc
+-rw-r--r-- root root 2459 ./usr/lib/python3.8/encodings/__pycache__/mac_romanian.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2325 ./usr/lib/python3.8/encodings/__pycache__/mac_romanian.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2459 ./usr/lib/python3.8/encodings/__pycache__/mac_romanian.cpython-38.pyc
+-rw-r--r-- root root 2452 ./usr/lib/python3.8/encodings/__pycache__/mac_turkish.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2320 ./usr/lib/python3.8/encodings/__pycache__/mac_turkish.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2452 ./usr/lib/python3.8/encodings/__pycache__/mac_turkish.cpython-38.pyc
+-rw-r--r-- root root 1701 ./usr/lib/python3.8/encodings/__pycache__/mbcs.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1468 ./usr/lib/python3.8/encodings/__pycache__/mbcs.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1701 ./usr/lib/python3.8/encodings/__pycache__/mbcs.cpython-38.pyc
+-rw-r--r-- root root 1514 ./usr/lib/python3.8/encodings/__pycache__/oem.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1464 ./usr/lib/python3.8/encodings/__pycache__/oem.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1514 ./usr/lib/python3.8/encodings/__pycache__/oem.cpython-38.pyc
+-rw-r--r-- root root 2439 ./usr/lib/python3.8/encodings/__pycache__/palmos.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2302 ./usr/lib/python3.8/encodings/__pycache__/palmos.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2439 ./usr/lib/python3.8/encodings/__pycache__/palmos.cpython-38.pyc
+-rw-r--r-- root root 2533 ./usr/lib/python3.8/encodings/__pycache__/ptcp154.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2294 ./usr/lib/python3.8/encodings/__pycache__/ptcp154.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2533 ./usr/lib/python3.8/encodings/__pycache__/ptcp154.cpython-38.pyc
+-rw-r--r-- root root 6301 ./usr/lib/python3.8/encodings/__pycache__/punycode.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5709 ./usr/lib/python3.8/encodings/__pycache__/punycode.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6301 ./usr/lib/python3.8/encodings/__pycache__/punycode.cpython-38.pyc
+-rw-r--r-- root root 2348 ./usr/lib/python3.8/encodings/__pycache__/quopri_codec.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2250 ./usr/lib/python3.8/encodings/__pycache__/quopri_codec.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2405 ./usr/lib/python3.8/encodings/__pycache__/quopri_codec.cpython-38.pyc
+-rw-r--r-- root root 1752 ./usr/lib/python3.8/encodings/__pycache__/raw_unicode_escape.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1593 ./usr/lib/python3.8/encodings/__pycache__/raw_unicode_escape.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1752 ./usr/lib/python3.8/encodings/__pycache__/raw_unicode_escape.cpython-38.pyc
+-rw-r--r-- root root 2991 ./usr/lib/python3.8/encodings/__pycache__/rot_13.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2841 ./usr/lib/python3.8/encodings/__pycache__/rot_13.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2991 ./usr/lib/python3.8/encodings/__pycache__/rot_13.cpython-38.pyc
+-rw-r--r-- root root 1419 ./usr/lib/python3.8/encodings/__pycache__/shift_jis_2004.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1419 ./usr/lib/python3.8/encodings/__pycache__/shift_jis_2004.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1419 ./usr/lib/python3.8/encodings/__pycache__/shift_jis_2004.cpython-38.pyc
+-rw-r--r-- root root 1409 ./usr/lib/python3.8/encodings/__pycache__/shift_jis.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1409 ./usr/lib/python3.8/encodings/__pycache__/shift_jis.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1409 ./usr/lib/python3.8/encodings/__pycache__/shift_jis.cpython-38.pyc
+-rw-r--r-- root root 1419 ./usr/lib/python3.8/encodings/__pycache__/shift_jisx0213.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1419 ./usr/lib/python3.8/encodings/__pycache__/shift_jisx0213.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1419 ./usr/lib/python3.8/encodings/__pycache__/shift_jisx0213.cpython-38.pyc
+-rw-r--r-- root root 2501 ./usr/lib/python3.8/encodings/__pycache__/tis_620.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2380 ./usr/lib/python3.8/encodings/__pycache__/tis_620.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2501 ./usr/lib/python3.8/encodings/__pycache__/tis_620.cpython-38.pyc
+-rw-r--r-- root root 2085 ./usr/lib/python3.8/encodings/__pycache__/undefined.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1756 ./usr/lib/python3.8/encodings/__pycache__/undefined.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2085 ./usr/lib/python3.8/encodings/__pycache__/undefined.cpython-38.pyc
+-rw-r--r-- root root 1732 ./usr/lib/python3.8/encodings/__pycache__/unicode_escape.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1577 ./usr/lib/python3.8/encodings/__pycache__/unicode_escape.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1732 ./usr/lib/python3.8/encodings/__pycache__/unicode_escape.cpython-38.pyc
+-rw-r--r-- root root 1640 ./usr/lib/python3.8/encodings/__pycache__/utf_16_be.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1490 ./usr/lib/python3.8/encodings/__pycache__/utf_16_be.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1640 ./usr/lib/python3.8/encodings/__pycache__/utf_16_be.cpython-38.pyc
+-rw-r--r-- root root 4862 ./usr/lib/python3.8/encodings/__pycache__/utf_16.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4715 ./usr/lib/python3.8/encodings/__pycache__/utf_16.cpython-38.opt-2.pyc
+-rw-r--r-- root root 4862 ./usr/lib/python3.8/encodings/__pycache__/utf_16.cpython-38.pyc
+-rw-r--r-- root root 1640 ./usr/lib/python3.8/encodings/__pycache__/utf_16_le.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1490 ./usr/lib/python3.8/encodings/__pycache__/utf_16_le.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1640 ./usr/lib/python3.8/encodings/__pycache__/utf_16_le.cpython-38.pyc
+-rw-r--r-- root root 1533 ./usr/lib/python3.8/encodings/__pycache__/utf_32_be.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1490 ./usr/lib/python3.8/encodings/__pycache__/utf_32_be.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1533 ./usr/lib/python3.8/encodings/__pycache__/utf_32_be.cpython-38.pyc
+-rw-r--r-- root root 4755 ./usr/lib/python3.8/encodings/__pycache__/utf_32.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4715 ./usr/lib/python3.8/encodings/__pycache__/utf_32.cpython-38.opt-2.pyc
+-rw-r--r-- root root 4755 ./usr/lib/python3.8/encodings/__pycache__/utf_32.cpython-38.pyc
+-rw-r--r-- root root 1533 ./usr/lib/python3.8/encodings/__pycache__/utf_32_le.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1490 ./usr/lib/python3.8/encodings/__pycache__/utf_32_le.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1533 ./usr/lib/python3.8/encodings/__pycache__/utf_32_le.cpython-38.pyc
+-rw-r--r-- root root 1561 ./usr/lib/python3.8/encodings/__pycache__/utf_7.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1474 ./usr/lib/python3.8/encodings/__pycache__/utf_7.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1561 ./usr/lib/python3.8/encodings/__pycache__/utf_7.cpython-38.pyc
+-rw-r--r-- root root 1620 ./usr/lib/python3.8/encodings/__pycache__/utf_8.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1474 ./usr/lib/python3.8/encodings/__pycache__/utf_8.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1620 ./usr/lib/python3.8/encodings/__pycache__/utf_8.cpython-38.pyc
+-rw-r--r-- root root 4536 ./usr/lib/python3.8/encodings/__pycache__/utf_8_sig.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4234 ./usr/lib/python3.8/encodings/__pycache__/utf_8_sig.cpython-38.opt-2.pyc
+-rw-r--r-- root root 4536 ./usr/lib/python3.8/encodings/__pycache__/utf_8_sig.cpython-38.pyc
+-rw-r--r-- root root 3180 ./usr/lib/python3.8/encodings/__pycache__/uu_codec.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2887 ./usr/lib/python3.8/encodings/__pycache__/uu_codec.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3239 ./usr/lib/python3.8/encodings/__pycache__/uu_codec.cpython-38.pyc
+-rw-r--r-- root root 3009 ./usr/lib/python3.8/encodings/__pycache__/zlib_codec.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2843 ./usr/lib/python3.8/encodings/__pycache__/zlib_codec.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3099 ./usr/lib/python3.8/encodings/__pycache__/zlib_codec.cpython-38.pyc
+-rw-r--r-- root root 1525 ./usr/lib/python3.8/encodings/quopri_codec.py
+-rw-r--r-- root root 1208 ./usr/lib/python3.8/encodings/raw_unicode_escape.py
+-rwxr-xr-x root root 2448 ./usr/lib/python3.8/encodings/rot_13.py
+-rw-r--r-- root root 1059 ./usr/lib/python3.8/encodings/shift_jis_2004.py
+-rw-r--r-- root root 1039 ./usr/lib/python3.8/encodings/shift_jis.py
+-rw-r--r-- root root 1059 ./usr/lib/python3.8/encodings/shift_jisx0213.py
+-rw-r--r-- root root 12300 ./usr/lib/python3.8/encodings/tis_620.py
+-rw-r--r-- root root 1299 ./usr/lib/python3.8/encodings/undefined.py
+-rw-r--r-- root root 1184 ./usr/lib/python3.8/encodings/unicode_escape.py
+-rw-r--r-- root root 1037 ./usr/lib/python3.8/encodings/utf_16_be.py
+-rw-r--r-- root root 1037 ./usr/lib/python3.8/encodings/utf_16_le.py
+-rw-r--r-- root root 5236 ./usr/lib/python3.8/encodings/utf_16.py
+-rw-r--r-- root root 930 ./usr/lib/python3.8/encodings/utf_32_be.py
+-rw-r--r-- root root 930 ./usr/lib/python3.8/encodings/utf_32_le.py
+-rw-r--r-- root root 5129 ./usr/lib/python3.8/encodings/utf_32.py
+-rw-r--r-- root root 946 ./usr/lib/python3.8/encodings/utf_7.py
+-rw-r--r-- root root 1005 ./usr/lib/python3.8/encodings/utf_8.py
+-rw-r--r-- root root 4133 ./usr/lib/python3.8/encodings/utf_8_sig.py
+-rw-r--r-- root root 2851 ./usr/lib/python3.8/encodings/uu_codec.py
+-rw-r--r-- root root 2204 ./usr/lib/python3.8/encodings/zlib_codec.py
+-rw-r--r-- root root 34616 ./usr/lib/python3.8/enum.py
+-rw-r--r-- root root 4056 ./usr/lib/python3.8/fnmatch.py
+-rw-r--r-- root root 34768 ./usr/lib/python3.8/ftplib.py
+-rw-r--r-- root root 37376 ./usr/lib/python3.8/functools.py
+-rw-r--r-- root root 5101 ./usr/lib/python3.8/__future__.py
+-rw-r--r-- root root 4975 ./usr/lib/python3.8/genericpath.py
+-rw-r--r-- root root 7489 ./usr/lib/python3.8/getopt.py
+-rw-r--r-- root root 27138 ./usr/lib/python3.8/gettext.py
+-rw-r--r-- root root 5697 ./usr/lib/python3.8/glob.py
+-rw-r--r-- root root 21441 ./usr/lib/python3.8/gzip.py
+-rw-r--r-- root root 9730 ./usr/lib/python3.8/hashlib.py
+-rw-r--r-- root root 22877 ./usr/lib/python3.8/heapq.py
+-rw-r--r-- root root 6629 ./usr/lib/python3.8/hmac.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/http
+-rw-r--r-- root root 54496 ./usr/lib/python3.8/http/client.py
+-rw-r--r-- root root 76835 ./usr/lib/python3.8/http/cookiejar.py
+-rw-r--r-- root root 20412 ./usr/lib/python3.8/http/cookies.py
+-rw-r--r-- root root 6378 ./usr/lib/python3.8/http/__init__.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/http/__pycache__
+-rw-r--r-- root root 33915 ./usr/lib/python3.8/http/__pycache__/client.cpython-38.opt-1.pyc
+-rw-r--r-- root root 25008 ./usr/lib/python3.8/http/__pycache__/client.cpython-38.opt-2.pyc
+-rw-r--r-- root root 34014 ./usr/lib/python3.8/http/__pycache__/client.cpython-38.pyc
+-rw-r--r-- root root 53437 ./usr/lib/python3.8/http/__pycache__/cookiejar.cpython-38.opt-1.pyc
+-rw-r--r-- root root 37800 ./usr/lib/python3.8/http/__pycache__/cookiejar.cpython-38.opt-2.pyc
+-rw-r--r-- root root 53637 ./usr/lib/python3.8/http/__pycache__/cookiejar.cpython-38.pyc
+-rw-r--r-- root root 15215 ./usr/lib/python3.8/http/__pycache__/cookies.cpython-38.opt-1.pyc
+-rw-r--r-- root root 10818 ./usr/lib/python3.8/http/__pycache__/cookies.cpython-38.opt-2.pyc
+-rw-r--r-- root root 15263 ./usr/lib/python3.8/http/__pycache__/cookies.cpython-38.pyc
+-rw-r--r-- root root 6059 ./usr/lib/python3.8/http/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5378 ./usr/lib/python3.8/http/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6059 ./usr/lib/python3.8/http/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 34387 ./usr/lib/python3.8/http/__pycache__/server.cpython-38.opt-1.pyc
+-rw-r--r-- root root 22451 ./usr/lib/python3.8/http/__pycache__/server.cpython-38.opt-2.pyc
+-rw-r--r-- root root 34387 ./usr/lib/python3.8/http/__pycache__/server.cpython-38.pyc
+-rw-r--r-- root root 47254 ./usr/lib/python3.8/http/server.py
+-rw-r--r-- root root 53606 ./usr/lib/python3.8/imaplib.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/importlib
+-rw-r--r-- root root 12873 ./usr/lib/python3.8/importlib/abc.py
+-rw-r--r-- root root 62357 ./usr/lib/python3.8/importlib/_bootstrap_external.py
+-rw-r--r-- root root 39644 ./usr/lib/python3.8/importlib/_bootstrap.py
+-rw-r--r-- root root 6061 ./usr/lib/python3.8/importlib/__init__.py
+-rw-r--r-- root root 844 ./usr/lib/python3.8/importlib/machinery.py
+-rw-r--r-- root root 17607 ./usr/lib/python3.8/importlib/metadata.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/importlib/__pycache__
+-rw-r--r-- root root 13563 ./usr/lib/python3.8/importlib/__pycache__/abc.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6752 ./usr/lib/python3.8/importlib/__pycache__/abc.cpython-38.opt-2.pyc
+-rw-r--r-- root root 13563 ./usr/lib/python3.8/importlib/__pycache__/abc.cpython-38.pyc
+-rw-r--r-- root root 28563 ./usr/lib/python3.8/importlib/__pycache__/_bootstrap.cpython-38.opt-1.pyc
+-rw-r--r-- root root 21804 ./usr/lib/python3.8/importlib/__pycache__/_bootstrap.cpython-38.opt-2.pyc
+-rw-r--r-- root root 28595 ./usr/lib/python3.8/importlib/__pycache__/_bootstrap.cpython-38.pyc
+-rw-r--r-- root root 43396 ./usr/lib/python3.8/importlib/__pycache__/_bootstrap_external.cpython-38.opt-1.pyc
+-rw-r--r-- root root 32275 ./usr/lib/python3.8/importlib/__pycache__/_bootstrap_external.cpython-38.opt-2.pyc
+-rw-r--r-- root root 43700 ./usr/lib/python3.8/importlib/__pycache__/_bootstrap_external.cpython-38.pyc
+-rw-r--r-- root root 3748 ./usr/lib/python3.8/importlib/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3069 ./usr/lib/python3.8/importlib/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3748 ./usr/lib/python3.8/importlib/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 952 ./usr/lib/python3.8/importlib/__pycache__/machinery.cpython-38.opt-1.pyc
+-rw-r--r-- root root 812 ./usr/lib/python3.8/importlib/__pycache__/machinery.cpython-38.opt-2.pyc
+-rw-r--r-- root root 952 ./usr/lib/python3.8/importlib/__pycache__/machinery.cpython-38.pyc
+-rw-r--r-- root root 20830 ./usr/lib/python3.8/importlib/__pycache__/metadata.cpython-38.opt-1.pyc
+-rw-r--r-- root root 15063 ./usr/lib/python3.8/importlib/__pycache__/metadata.cpython-38.opt-2.pyc
+-rw-r--r-- root root 20830 ./usr/lib/python3.8/importlib/__pycache__/metadata.cpython-38.pyc
+-rw-r--r-- root root 6470 ./usr/lib/python3.8/importlib/__pycache__/resources.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5125 ./usr/lib/python3.8/importlib/__pycache__/resources.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6470 ./usr/lib/python3.8/importlib/__pycache__/resources.cpython-38.pyc
+-rw-r--r-- root root 9282 ./usr/lib/python3.8/importlib/__pycache__/util.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6413 ./usr/lib/python3.8/importlib/__pycache__/util.cpython-38.opt-2.pyc
+-rw-r--r-- root root 9282 ./usr/lib/python3.8/importlib/__pycache__/util.cpython-38.pyc
+-rw-r--r-- root root 9437 ./usr/lib/python3.8/importlib/resources.py
+-rw-r--r-- root root 11319 ./usr/lib/python3.8/importlib/util.py
+-rw-r--r-- root root 10536 ./usr/lib/python3.8/imp.py
+-rw-r--r-- root root 118039 ./usr/lib/python3.8/inspect.py
+-rw-r--r-- root root 3541 ./usr/lib/python3.8/io.py
+-rw-r--r-- root root 71160 ./usr/lib/python3.8/ipaddress.py
+-rw-r--r-- root root 945 ./usr/lib/python3.8/keyword.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/lib-dynload
+-rwxr-xr-x root root 65816 ./usr/lib/python3.8/lib-dynload/array.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 31736 ./usr/lib/python3.8/lib-dynload/binascii.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 14760 ./usr/lib/python3.8/lib-dynload/_bisect.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 44664 ./usr/lib/python3.8/lib-dynload/_blake2.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 27896 ./usr/lib/python3.8/lib-dynload/_bz2.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 43896 ./usr/lib/python3.8/lib-dynload/cmath.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 14384 ./usr/lib/python3.8/lib-dynload/_crypt.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 37240 ./usr/lib/python3.8/lib-dynload/_csv.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 99712 ./usr/lib/python3.8/lib-dynload/_datetime.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 76160 ./usr/lib/python3.8/lib-dynload/_elementtree.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 18856 ./usr/lib/python3.8/lib-dynload/grp.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 36600 ./usr/lib/python3.8/lib-dynload/_hashlib.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 22640 ./usr/lib/python3.8/lib-dynload/_heapq.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 40920 ./usr/lib/python3.8/lib-dynload/_lzma.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 57208 ./usr/lib/python3.8/lib-dynload/math.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 19352 ./usr/lib/python3.8/lib-dynload/_md5.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 14520 ./usr/lib/python3.8/lib-dynload/_opcode.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 27856 ./usr/lib/python3.8/lib-dynload/parser.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 113208 ./usr/lib/python3.8/lib-dynload/_pickle.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 22680 ./usr/lib/python3.8/lib-dynload/_posixsubprocess.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 233072 ./usr/lib/python3.8/lib-dynload/pyexpat.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 19320 ./usr/lib/python3.8/lib-dynload/_queue.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 19024 ./usr/lib/python3.8/lib-dynload/_random.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 35672 ./usr/lib/python3.8/lib-dynload/readline.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 32632 ./usr/lib/python3.8/lib-dynload/select.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 15256 ./usr/lib/python3.8/lib-dynload/_sha1.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 24024 ./usr/lib/python3.8/lib-dynload/_sha256.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 82960 ./usr/lib/python3.8/lib-dynload/_sha3.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 28120 ./usr/lib/python3.8/lib-dynload/_sha512.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 99056 ./usr/lib/python3.8/lib-dynload/_socket.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 140280 ./usr/lib/python3.8/lib-dynload/_ssl.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 50392 ./usr/lib/python3.8/lib-dynload/_struct.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 30576 ./usr/lib/python3.8/lib-dynload/termios.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 1091200 ./usr/lib/python3.8/lib-dynload/unicodedata.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 14384 ./usr/lib/python3.8/lib-dynload/_uuid.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 40888 ./usr/lib/python3.8/lib-dynload/zlib.cpython-38-x86_64-linux-gnu.so
+-rw-r--r-- root root 5312 ./usr/lib/python3.8/linecache.py
+-rw-r--r-- root root 78191 ./usr/lib/python3.8/locale.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/logging
+-rw-r--r-- root root 36357 ./usr/lib/python3.8/logging/config.py
+-rw-r--r-- root root 57885 ./usr/lib/python3.8/logging/handlers.py
+-rw-r--r-- root root 77642 ./usr/lib/python3.8/logging/__init__.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/logging/__pycache__
+-rw-r--r-- root root 23170 ./usr/lib/python3.8/logging/__pycache__/config.cpython-38.opt-1.pyc
+-rw-r--r-- root root 19060 ./usr/lib/python3.8/logging/__pycache__/config.cpython-38.opt-2.pyc
+-rw-r--r-- root root 23216 ./usr/lib/python3.8/logging/__pycache__/config.cpython-38.pyc
+-rw-r--r-- root root 43148 ./usr/lib/python3.8/logging/__pycache__/handlers.cpython-38.opt-1.pyc
+-rw-r--r-- root root 24441 ./usr/lib/python3.8/logging/__pycache__/handlers.cpython-38.opt-2.pyc
+-rw-r--r-- root root 43148 ./usr/lib/python3.8/logging/__pycache__/handlers.cpython-38.pyc
+-rw-r--r-- root root 64831 ./usr/lib/python3.8/logging/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 36333 ./usr/lib/python3.8/logging/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 64863 ./usr/lib/python3.8/logging/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 12983 ./usr/lib/python3.8/lzma.py
+-rw-r--r-- root root 14598 ./usr/lib/python3.8/_markupbase.py
+-rw-r--r-- root root 21604 ./usr/lib/python3.8/mimetypes.py
+-rw-r--r-- root root 43261 ./usr/lib/python3.8/nntplib.py
+-rw-r--r-- root root 27734 ./usr/lib/python3.8/ntpath.py
+-rw-r--r-- root root 5808 ./usr/lib/python3.8/opcode.py
+-rw-r--r-- root root 10711 ./usr/lib/python3.8/operator.py
+-rw-r--r-- root root 60369 ./usr/lib/python3.8/optparse.py
+-rw-r--r-- root root 38995 ./usr/lib/python3.8/os.py
+-rw-r--r-- root root 51531 ./usr/lib/python3.8/pathlib.py
+-rw-r--r-- root root 64395 ./usr/lib/python3.8/pickle.py
+-rw-r--r-- root root 93486 ./usr/lib/python3.8/pickletools.py
+-rw-r--r-- root root 8916 ./usr/lib/python3.8/pipes.py
+-rw-r--r-- root root 21461 ./usr/lib/python3.8/pkgutil.py
+-rwxr-xr-x root root 40306 ./usr/lib/python3.8/platform.py
+-rw-r--r-- root root 15077 ./usr/lib/python3.8/poplib.py
+-rw-r--r-- root root 15627 ./usr/lib/python3.8/posixpath.py
+drwxr-xr-x root root 20480 ./usr/lib/python3.8/__pycache__
+-rw-r--r-- root root 5334 ./usr/lib/python3.8/__pycache__/abc.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3212 ./usr/lib/python3.8/__pycache__/abc.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5334 ./usr/lib/python3.8/__pycache__/abc.cpython-38.pyc
+-rw-r--r-- root root 62128 ./usr/lib/python3.8/__pycache__/argparse.cpython-38.opt-1.pyc
+-rw-r--r-- root root 52887 ./usr/lib/python3.8/__pycache__/argparse.cpython-38.opt-2.pyc
+-rw-r--r-- root root 62277 ./usr/lib/python3.8/__pycache__/argparse.cpython-38.pyc
+-rw-r--r-- root root 16301 ./usr/lib/python3.8/__pycache__/ast.cpython-38.opt-1.pyc
+-rw-r--r-- root root 9889 ./usr/lib/python3.8/__pycache__/ast.cpython-38.opt-2.pyc
+-rw-r--r-- root root 16336 ./usr/lib/python3.8/__pycache__/ast.cpython-38.pyc
+-rw-r--r-- root root 16908 ./usr/lib/python3.8/__pycache__/base64.cpython-38.opt-1.pyc
+-rw-r--r-- root root 11324 ./usr/lib/python3.8/__pycache__/base64.cpython-38.opt-2.pyc
+-rw-r--r-- root root 17071 ./usr/lib/python3.8/__pycache__/base64.cpython-38.pyc
+-rw-r--r-- root root 2354 ./usr/lib/python3.8/__pycache__/bisect.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1042 ./usr/lib/python3.8/__pycache__/bisect.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2354 ./usr/lib/python3.8/__pycache__/bisect.cpython-38.pyc
+-rw-r--r-- root root 1217 ./usr/lib/python3.8/__pycache__/_bootlocale.cpython-38.opt-1.pyc
+-rw-r--r-- root root 992 ./usr/lib/python3.8/__pycache__/_bootlocale.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1243 ./usr/lib/python3.8/__pycache__/_bootlocale.cpython-38.pyc
+-rw-r--r-- root root 11445 ./usr/lib/python3.8/__pycache__/bz2.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6387 ./usr/lib/python3.8/__pycache__/bz2.cpython-38.opt-2.pyc
+-rw-r--r-- root root 11445 ./usr/lib/python3.8/__pycache__/bz2.cpython-38.pyc
+-rw-r--r-- root root 27064 ./usr/lib/python3.8/__pycache__/calendar.cpython-38.opt-1.pyc
+-rw-r--r-- root root 22472 ./usr/lib/python3.8/__pycache__/calendar.cpython-38.opt-2.pyc
+-rw-r--r-- root root 27064 ./usr/lib/python3.8/__pycache__/calendar.cpython-38.pyc
+-rw-r--r-- root root 12626 ./usr/lib/python3.8/__pycache__/cmd.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7201 ./usr/lib/python3.8/__pycache__/cmd.cpython-38.opt-2.pyc
+-rw-r--r-- root root 12626 ./usr/lib/python3.8/__pycache__/cmd.cpython-38.pyc
+-rw-r--r-- root root 9913 ./usr/lib/python3.8/__pycache__/code.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4642 ./usr/lib/python3.8/__pycache__/code.cpython-38.opt-2.pyc
+-rw-r--r-- root root 9913 ./usr/lib/python3.8/__pycache__/code.cpython-38.pyc
+-rw-r--r-- root root 33913 ./usr/lib/python3.8/__pycache__/codecs.cpython-38.opt-1.pyc
+-rw-r--r-- root root 18347 ./usr/lib/python3.8/__pycache__/codecs.cpython-38.opt-2.pyc
+-rw-r--r-- root root 33913 ./usr/lib/python3.8/__pycache__/codecs.cpython-38.pyc
+-rw-r--r-- root root 6297 ./usr/lib/python3.8/__pycache__/codeop.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2259 ./usr/lib/python3.8/__pycache__/codeop.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6297 ./usr/lib/python3.8/__pycache__/codeop.cpython-38.pyc
+-rw-r--r-- root root 28741 ./usr/lib/python3.8/__pycache__/_collections_abc.cpython-38.opt-1.pyc
+-rw-r--r-- root root 23682 ./usr/lib/python3.8/__pycache__/_collections_abc.cpython-38.opt-2.pyc
+-rw-r--r-- root root 28741 ./usr/lib/python3.8/__pycache__/_collections_abc.cpython-38.pyc
+-rw-r--r-- root root 5443 ./usr/lib/python3.8/__pycache__/_compat_pickle.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5443 ./usr/lib/python3.8/__pycache__/_compat_pickle.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5501 ./usr/lib/python3.8/__pycache__/_compat_pickle.cpython-38.pyc
+-rw-r--r-- root root 4146 ./usr/lib/python3.8/__pycache__/_compression.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3932 ./usr/lib/python3.8/__pycache__/_compression.cpython-38.opt-2.pyc
+-rw-r--r-- root root 4146 ./usr/lib/python3.8/__pycache__/_compression.cpython-38.pyc
+-rw-r--r-- root root 45718 ./usr/lib/python3.8/__pycache__/configparser.cpython-38.opt-1.pyc
+-rw-r--r-- root root 30792 ./usr/lib/python3.8/__pycache__/configparser.cpython-38.opt-2.pyc
+-rw-r--r-- root root 45718 ./usr/lib/python3.8/__pycache__/configparser.cpython-38.pyc
+-rw-r--r-- root root 20176 ./usr/lib/python3.8/__pycache__/contextlib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 14596 ./usr/lib/python3.8/__pycache__/contextlib.cpython-38.opt-2.pyc
+-rw-r--r-- root root 20229 ./usr/lib/python3.8/__pycache__/contextlib.cpython-38.pyc
+-rw-r--r-- root root 6987 ./usr/lib/python3.8/__pycache__/copy.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4673 ./usr/lib/python3.8/__pycache__/copy.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6987 ./usr/lib/python3.8/__pycache__/copy.cpython-38.pyc
+-rw-r--r-- root root 4283 ./usr/lib/python3.8/__pycache__/copyreg.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3481 ./usr/lib/python3.8/__pycache__/copyreg.cpython-38.opt-2.pyc
+-rw-r--r-- root root 4318 ./usr/lib/python3.8/__pycache__/copyreg.cpython-38.pyc
+-rw-r--r-- root root 3387 ./usr/lib/python3.8/__pycache__/crypt.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2725 ./usr/lib/python3.8/__pycache__/crypt.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3387 ./usr/lib/python3.8/__pycache__/crypt.cpython-38.pyc
+-rw-r--r-- root root 11910 ./usr/lib/python3.8/__pycache__/csv.cpython-38.opt-1.pyc
+-rw-r--r-- root root 9871 ./usr/lib/python3.8/__pycache__/csv.cpython-38.opt-2.pyc
+-rw-r--r-- root root 11910 ./usr/lib/python3.8/__pycache__/csv.cpython-38.pyc
+-rw-r--r-- root root 55741 ./usr/lib/python3.8/__pycache__/datetime.cpython-38.opt-1.pyc
+-rw-r--r-- root root 47501 ./usr/lib/python3.8/__pycache__/datetime.cpython-38.opt-2.pyc
+-rw-r--r-- root root 56978 ./usr/lib/python3.8/__pycache__/datetime.cpython-38.pyc
+-rw-r--r-- root root 15802 ./usr/lib/python3.8/__pycache__/dis.cpython-38.opt-1.pyc
+-rw-r--r-- root root 11995 ./usr/lib/python3.8/__pycache__/dis.cpython-38.opt-2.pyc
+-rw-r--r-- root root 15802 ./usr/lib/python3.8/__pycache__/dis.cpython-38.pyc
+-rw-r--r-- root root 6037 ./usr/lib/python3.8/__pycache__/_dummy_thread.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3392 ./usr/lib/python3.8/__pycache__/_dummy_thread.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6037 ./usr/lib/python3.8/__pycache__/_dummy_thread.cpython-38.pyc
+-rw-r--r-- root root 24399 ./usr/lib/python3.8/__pycache__/enum.cpython-38.opt-1.pyc
+-rw-r--r-- root root 20110 ./usr/lib/python3.8/__pycache__/enum.cpython-38.opt-2.pyc
+-rw-r--r-- root root 24399 ./usr/lib/python3.8/__pycache__/enum.cpython-38.pyc
+-rw-r--r-- root root 3332 ./usr/lib/python3.8/__pycache__/fnmatch.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2147 ./usr/lib/python3.8/__pycache__/fnmatch.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3332 ./usr/lib/python3.8/__pycache__/fnmatch.cpython-38.pyc
+-rw-r--r-- root root 27849 ./usr/lib/python3.8/__pycache__/ftplib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 18116 ./usr/lib/python3.8/__pycache__/ftplib.cpython-38.opt-2.pyc
+-rw-r--r-- root root 27849 ./usr/lib/python3.8/__pycache__/ftplib.cpython-38.pyc
+-rw-r--r-- root root 27897 ./usr/lib/python3.8/__pycache__/functools.cpython-38.opt-1.pyc
+-rw-r--r-- root root 21244 ./usr/lib/python3.8/__pycache__/functools.cpython-38.opt-2.pyc
+-rw-r--r-- root root 27897 ./usr/lib/python3.8/__pycache__/functools.cpython-38.pyc
+-rw-r--r-- root root 4131 ./usr/lib/python3.8/__pycache__/__future__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2159 ./usr/lib/python3.8/__pycache__/__future__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 4131 ./usr/lib/python3.8/__pycache__/__future__.cpython-38.pyc
+-rw-r--r-- root root 4001 ./usr/lib/python3.8/__pycache__/genericpath.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2865 ./usr/lib/python3.8/__pycache__/genericpath.cpython-38.opt-2.pyc
+-rw-r--r-- root root 4001 ./usr/lib/python3.8/__pycache__/genericpath.cpython-38.pyc
+-rw-r--r-- root root 6237 ./usr/lib/python3.8/__pycache__/getopt.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3683 ./usr/lib/python3.8/__pycache__/getopt.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6271 ./usr/lib/python3.8/__pycache__/getopt.cpython-38.pyc
+-rw-r--r-- root root 17883 ./usr/lib/python3.8/__pycache__/gettext.cpython-38.opt-1.pyc
+-rw-r--r-- root root 17192 ./usr/lib/python3.8/__pycache__/gettext.cpython-38.opt-2.pyc
+-rw-r--r-- root root 17883 ./usr/lib/python3.8/__pycache__/gettext.cpython-38.pyc
+-rw-r--r-- root root 4278 ./usr/lib/python3.8/__pycache__/glob.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3418 ./usr/lib/python3.8/__pycache__/glob.cpython-38.opt-2.pyc
+-rw-r--r-- root root 4343 ./usr/lib/python3.8/__pycache__/glob.cpython-38.pyc
+-rw-r--r-- root root 18191 ./usr/lib/python3.8/__pycache__/gzip.cpython-38.opt-1.pyc
+-rw-r--r-- root root 14323 ./usr/lib/python3.8/__pycache__/gzip.cpython-38.opt-2.pyc
+-rw-r--r-- root root 18191 ./usr/lib/python3.8/__pycache__/gzip.cpython-38.pyc
+-rw-r--r-- root root 6727 ./usr/lib/python3.8/__pycache__/hashlib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6159 ./usr/lib/python3.8/__pycache__/hashlib.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6727 ./usr/lib/python3.8/__pycache__/hashlib.cpython-38.pyc
+-rw-r--r-- root root 14070 ./usr/lib/python3.8/__pycache__/heapq.cpython-38.opt-1.pyc
+-rw-r--r-- root root 11054 ./usr/lib/python3.8/__pycache__/heapq.cpython-38.opt-2.pyc
+-rw-r--r-- root root 14070 ./usr/lib/python3.8/__pycache__/heapq.cpython-38.pyc
+-rw-r--r-- root root 6388 ./usr/lib/python3.8/__pycache__/hmac.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3871 ./usr/lib/python3.8/__pycache__/hmac.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6388 ./usr/lib/python3.8/__pycache__/hmac.cpython-38.pyc
+-rw-r--r-- root root 39159 ./usr/lib/python3.8/__pycache__/imaplib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 27182 ./usr/lib/python3.8/__pycache__/imaplib.cpython-38.opt-2.pyc
+-rw-r--r-- root root 41342 ./usr/lib/python3.8/__pycache__/imaplib.cpython-38.pyc
+-rw-r--r-- root root 9809 ./usr/lib/python3.8/__pycache__/imp.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7444 ./usr/lib/python3.8/__pycache__/imp.cpython-38.opt-2.pyc
+-rw-r--r-- root root 9809 ./usr/lib/python3.8/__pycache__/imp.cpython-38.pyc
+-rw-r--r-- root root 80098 ./usr/lib/python3.8/__pycache__/inspect.cpython-38.opt-1.pyc
+-rw-r--r-- root root 54985 ./usr/lib/python3.8/__pycache__/inspect.cpython-38.opt-2.pyc
+-rw-r--r-- root root 80383 ./usr/lib/python3.8/__pycache__/inspect.cpython-38.pyc
+-rw-r--r-- root root 3454 ./usr/lib/python3.8/__pycache__/io.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1965 ./usr/lib/python3.8/__pycache__/io.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3454 ./usr/lib/python3.8/__pycache__/io.cpython-38.pyc
+-rw-r--r-- root root 59559 ./usr/lib/python3.8/__pycache__/ipaddress.cpython-38.opt-1.pyc
+-rw-r--r-- root root 35711 ./usr/lib/python3.8/__pycache__/ipaddress.cpython-38.opt-2.pyc
+-rw-r--r-- root root 59559 ./usr/lib/python3.8/__pycache__/ipaddress.cpython-38.pyc
+-rw-r--r-- root root 998 ./usr/lib/python3.8/__pycache__/keyword.cpython-38.opt-1.pyc
+-rw-r--r-- root root 571 ./usr/lib/python3.8/__pycache__/keyword.cpython-38.opt-2.pyc
+-rw-r--r-- root root 998 ./usr/lib/python3.8/__pycache__/keyword.cpython-38.pyc
+-rw-r--r-- root root 3839 ./usr/lib/python3.8/__pycache__/linecache.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2734 ./usr/lib/python3.8/__pycache__/linecache.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3839 ./usr/lib/python3.8/__pycache__/linecache.cpython-38.pyc
+-rw-r--r-- root root 34689 ./usr/lib/python3.8/__pycache__/locale.cpython-38.opt-1.pyc
+-rw-r--r-- root root 30074 ./usr/lib/python3.8/__pycache__/locale.cpython-38.opt-2.pyc
+-rw-r--r-- root root 34689 ./usr/lib/python3.8/__pycache__/locale.cpython-38.pyc
+-rw-r--r-- root root 12018 ./usr/lib/python3.8/__pycache__/lzma.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5849 ./usr/lib/python3.8/__pycache__/lzma.cpython-38.opt-2.pyc
+-rw-r--r-- root root 12018 ./usr/lib/python3.8/__pycache__/lzma.cpython-38.pyc
+-rw-r--r-- root root 7618 ./usr/lib/python3.8/__pycache__/_markupbase.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7240 ./usr/lib/python3.8/__pycache__/_markupbase.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7790 ./usr/lib/python3.8/__pycache__/_markupbase.cpython-38.pyc
+-rw-r--r-- root root 15988 ./usr/lib/python3.8/__pycache__/mimetypes.cpython-38.opt-1.pyc
+-rw-r--r-- root root 9973 ./usr/lib/python3.8/__pycache__/mimetypes.cpython-38.opt-2.pyc
+-rw-r--r-- root root 15988 ./usr/lib/python3.8/__pycache__/mimetypes.cpython-38.pyc
+-rw-r--r-- root root 33974 ./usr/lib/python3.8/__pycache__/nntplib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 21464 ./usr/lib/python3.8/__pycache__/nntplib.cpython-38.opt-2.pyc
+-rw-r--r-- root root 33974 ./usr/lib/python3.8/__pycache__/nntplib.cpython-38.pyc
+-rw-r--r-- root root 14657 ./usr/lib/python3.8/__pycache__/ntpath.cpython-38.opt-1.pyc
+-rw-r--r-- root root 12606 ./usr/lib/python3.8/__pycache__/ntpath.cpython-38.opt-2.pyc
+-rw-r--r-- root root 14657 ./usr/lib/python3.8/__pycache__/ntpath.cpython-38.pyc
+-rw-r--r-- root root 5420 ./usr/lib/python3.8/__pycache__/opcode.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5280 ./usr/lib/python3.8/__pycache__/opcode.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5420 ./usr/lib/python3.8/__pycache__/opcode.cpython-38.pyc
+-rw-r--r-- root root 13691 ./usr/lib/python3.8/__pycache__/operator.cpython-38.opt-1.pyc
+-rw-r--r-- root root 11322 ./usr/lib/python3.8/__pycache__/operator.cpython-38.opt-2.pyc
+-rw-r--r-- root root 13691 ./usr/lib/python3.8/__pycache__/operator.cpython-38.pyc
+-rw-r--r-- root root 47974 ./usr/lib/python3.8/__pycache__/optparse.cpython-38.opt-1.pyc
+-rw-r--r-- root root 35659 ./usr/lib/python3.8/__pycache__/optparse.cpython-38.opt-2.pyc
+-rw-r--r-- root root 48057 ./usr/lib/python3.8/__pycache__/optparse.cpython-38.pyc
+-rw-r--r-- root root 31365 ./usr/lib/python3.8/__pycache__/os.cpython-38.opt-1.pyc
+-rw-r--r-- root root 19174 ./usr/lib/python3.8/__pycache__/os.cpython-38.opt-2.pyc
+-rw-r--r-- root root 31397 ./usr/lib/python3.8/__pycache__/os.cpython-38.pyc
+-rw-r--r-- root root 43498 ./usr/lib/python3.8/__pycache__/pathlib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 35441 ./usr/lib/python3.8/__pycache__/pathlib.cpython-38.opt-2.pyc
+-rw-r--r-- root root 43498 ./usr/lib/python3.8/__pycache__/pathlib.cpython-38.pyc
+-rw-r--r-- root root 46761 ./usr/lib/python3.8/__pycache__/pickle.cpython-38.opt-1.pyc
+-rw-r--r-- root root 40889 ./usr/lib/python3.8/__pycache__/pickle.cpython-38.opt-2.pyc
+-rw-r--r-- root root 46878 ./usr/lib/python3.8/__pycache__/pickle.cpython-38.pyc
+-rw-r--r-- root root 66314 ./usr/lib/python3.8/__pycache__/pickletools.cpython-38.opt-1.pyc
+-rw-r--r-- root root 57221 ./usr/lib/python3.8/__pycache__/pickletools.cpython-38.opt-2.pyc
+-rw-r--r-- root root 67204 ./usr/lib/python3.8/__pycache__/pickletools.cpython-38.pyc
+-rw-r--r-- root root 7795 ./usr/lib/python3.8/__pycache__/pipes.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4928 ./usr/lib/python3.8/__pycache__/pipes.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7795 ./usr/lib/python3.8/__pycache__/pipes.cpython-38.pyc
+-rw-r--r-- root root 16309 ./usr/lib/python3.8/__pycache__/pkgutil.cpython-38.opt-1.pyc
+-rw-r--r-- root root 11053 ./usr/lib/python3.8/__pycache__/pkgutil.cpython-38.opt-2.pyc
+-rw-r--r-- root root 16309 ./usr/lib/python3.8/__pycache__/pkgutil.cpython-38.pyc
+-rw-r--r-- root root 24221 ./usr/lib/python3.8/__pycache__/platform.cpython-38.opt-1.pyc
+-rw-r--r-- root root 16345 ./usr/lib/python3.8/__pycache__/platform.cpython-38.opt-2.pyc
+-rw-r--r-- root root 24221 ./usr/lib/python3.8/__pycache__/platform.cpython-38.pyc
+-rw-r--r-- root root 13459 ./usr/lib/python3.8/__pycache__/poplib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 8528 ./usr/lib/python3.8/__pycache__/poplib.cpython-38.opt-2.pyc
+-rw-r--r-- root root 13459 ./usr/lib/python3.8/__pycache__/poplib.cpython-38.pyc
+-rw-r--r-- root root 10428 ./usr/lib/python3.8/__pycache__/posixpath.cpython-38.opt-1.pyc
+-rw-r--r-- root root 8713 ./usr/lib/python3.8/__pycache__/posixpath.cpython-38.opt-2.pyc
+-rw-r--r-- root root 10428 ./usr/lib/python3.8/__pycache__/posixpath.cpython-38.pyc
+-rw-r--r-- root root 74059 ./usr/lib/python3.8/__pycache__/_pyio.cpython-38.opt-1.pyc
+-rw-r--r-- root root 51166 ./usr/lib/python3.8/__pycache__/_pyio.cpython-38.opt-2.pyc
+-rw-r--r-- root root 74079 ./usr/lib/python3.8/__pycache__/_pyio.cpython-38.pyc
+-rw-r--r-- root root 10626 ./usr/lib/python3.8/__pycache__/queue.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6289 ./usr/lib/python3.8/__pycache__/queue.cpython-38.opt-2.pyc
+-rw-r--r-- root root 10626 ./usr/lib/python3.8/__pycache__/queue.cpython-38.pyc
+-rw-r--r-- root root 5573 ./usr/lib/python3.8/__pycache__/quopri.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4537 ./usr/lib/python3.8/__pycache__/quopri.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5748 ./usr/lib/python3.8/__pycache__/quopri.cpython-38.pyc
+-rw-r--r-- root root 20108 ./usr/lib/python3.8/__pycache__/random.cpython-38.opt-1.pyc
+-rw-r--r-- root root 13132 ./usr/lib/python3.8/__pycache__/random.cpython-38.opt-2.pyc
+-rw-r--r-- root root 20108 ./usr/lib/python3.8/__pycache__/random.cpython-38.pyc
+-rw-r--r-- root root 14308 ./usr/lib/python3.8/__pycache__/re.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6084 ./usr/lib/python3.8/__pycache__/re.cpython-38.opt-2.pyc
+-rw-r--r-- root root 14308 ./usr/lib/python3.8/__pycache__/re.cpython-38.pyc
+-rw-r--r-- root root 5303 ./usr/lib/python3.8/__pycache__/reprlib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5147 ./usr/lib/python3.8/__pycache__/reprlib.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5303 ./usr/lib/python3.8/__pycache__/reprlib.cpython-38.pyc
+-rw-r--r-- root root 5755 ./usr/lib/python3.8/__pycache__/rlcompleter.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3092 ./usr/lib/python3.8/__pycache__/rlcompleter.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5755 ./usr/lib/python3.8/__pycache__/rlcompleter.cpython-38.pyc
+-rw-r--r-- root root 8104 ./usr/lib/python3.8/__pycache__/runpy.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6538 ./usr/lib/python3.8/__pycache__/runpy.cpython-38.opt-2.pyc
+-rw-r--r-- root root 8104 ./usr/lib/python3.8/__pycache__/runpy.cpython-38.pyc
+-rw-r--r-- root root 16935 ./usr/lib/python3.8/__pycache__/selectors.cpython-38.opt-1.pyc
+-rw-r--r-- root root 12900 ./usr/lib/python3.8/__pycache__/selectors.cpython-38.opt-2.pyc
+-rw-r--r-- root root 16935 ./usr/lib/python3.8/__pycache__/selectors.cpython-38.pyc
+-rw-r--r-- root root 9490 ./usr/lib/python3.8/__pycache__/shelve.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5339 ./usr/lib/python3.8/__pycache__/shelve.cpython-38.opt-2.pyc
+-rw-r--r-- root root 9490 ./usr/lib/python3.8/__pycache__/shelve.cpython-38.pyc
+-rw-r--r-- root root 7536 ./usr/lib/python3.8/__pycache__/shlex.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6979 ./usr/lib/python3.8/__pycache__/shlex.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7536 ./usr/lib/python3.8/__pycache__/shlex.cpython-38.pyc
+-rw-r--r-- root root 36569 ./usr/lib/python3.8/__pycache__/shutil.cpython-38.opt-1.pyc
+-rw-r--r-- root root 25114 ./usr/lib/python3.8/__pycache__/shutil.cpython-38.opt-2.pyc
+-rw-r--r-- root root 36569 ./usr/lib/python3.8/__pycache__/shutil.cpython-38.pyc
+-rw-r--r-- root root 2843 ./usr/lib/python3.8/__pycache__/signal.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2619 ./usr/lib/python3.8/__pycache__/signal.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2843 ./usr/lib/python3.8/__pycache__/signal.cpython-38.pyc
+-rw-r--r-- root root 3481 ./usr/lib/python3.8/__pycache__/_sitebuiltins.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2957 ./usr/lib/python3.8/__pycache__/_sitebuiltins.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3481 ./usr/lib/python3.8/__pycache__/_sitebuiltins.cpython-38.pyc
+-rw-r--r-- root root 16700 ./usr/lib/python3.8/__pycache__/site.cpython-38.opt-1.pyc
+-rw-r--r-- root root 11164 ./usr/lib/python3.8/__pycache__/site.cpython-38.opt-2.pyc
+-rw-r--r-- root root 16700 ./usr/lib/python3.8/__pycache__/site.cpython-38.pyc
+-rw-r--r-- root root 35252 ./usr/lib/python3.8/__pycache__/smtplib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 18892 ./usr/lib/python3.8/__pycache__/smtplib.cpython-38.opt-2.pyc
+-rw-r--r-- root root 35313 ./usr/lib/python3.8/__pycache__/smtplib.cpython-38.pyc
+-rw-r--r-- root root 27747 ./usr/lib/python3.8/__pycache__/socket.cpython-38.opt-1.pyc
+-rw-r--r-- root root 19424 ./usr/lib/python3.8/__pycache__/socket.cpython-38.opt-2.pyc
+-rw-r--r-- root root 27787 ./usr/lib/python3.8/__pycache__/socket.cpython-38.pyc
+-rw-r--r-- root root 14916 ./usr/lib/python3.8/__pycache__/sre_compile.cpython-38.opt-1.pyc
+-rw-r--r-- root root 14502 ./usr/lib/python3.8/__pycache__/sre_compile.cpython-38.opt-2.pyc
+-rw-r--r-- root root 15142 ./usr/lib/python3.8/__pycache__/sre_compile.cpython-38.pyc
+-rw-r--r-- root root 6359 ./usr/lib/python3.8/__pycache__/sre_constants.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5934 ./usr/lib/python3.8/__pycache__/sre_constants.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6359 ./usr/lib/python3.8/__pycache__/sre_constants.cpython-38.pyc
+-rw-r--r-- root root 21600 ./usr/lib/python3.8/__pycache__/sre_parse.cpython-38.opt-1.pyc
+-rw-r--r-- root root 21552 ./usr/lib/python3.8/__pycache__/sre_parse.cpython-38.opt-2.pyc
+-rw-r--r-- root root 21647 ./usr/lib/python3.8/__pycache__/sre_parse.cpython-38.pyc
+-rw-r--r-- root root 44596 ./usr/lib/python3.8/__pycache__/ssl.cpython-38.opt-1.pyc
+-rw-r--r-- root root 33618 ./usr/lib/python3.8/__pycache__/ssl.cpython-38.opt-2.pyc
+-rw-r--r-- root root 44596 ./usr/lib/python3.8/__pycache__/ssl.cpython-38.pyc
+-rw-r--r-- root root 4372 ./usr/lib/python3.8/__pycache__/stat.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3589 ./usr/lib/python3.8/__pycache__/stat.cpython-38.opt-2.pyc
+-rw-r--r-- root root 4372 ./usr/lib/python3.8/__pycache__/stat.cpython-38.pyc
+-rw-r--r-- root root 7300 ./usr/lib/python3.8/__pycache__/string.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6194 ./usr/lib/python3.8/__pycache__/string.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7300 ./usr/lib/python3.8/__pycache__/string.cpython-38.pyc
+-rw-r--r-- root root 10959 ./usr/lib/python3.8/__pycache__/stringprep.cpython-38.opt-1.pyc
+-rw-r--r-- root root 10739 ./usr/lib/python3.8/__pycache__/stringprep.cpython-38.opt-2.pyc
+-rw-r--r-- root root 11017 ./usr/lib/python3.8/__pycache__/stringprep.cpython-38.pyc
+-rw-r--r-- root root 16044 ./usr/lib/python3.8/__pycache__/_strptime.cpython-38.opt-1.pyc
+-rw-r--r-- root root 12316 ./usr/lib/python3.8/__pycache__/_strptime.cpython-38.opt-2.pyc
+-rw-r--r-- root root 16044 ./usr/lib/python3.8/__pycache__/_strptime.cpython-38.pyc
+-rw-r--r-- root root 330 ./usr/lib/python3.8/__pycache__/struct.cpython-38.opt-1.pyc
+-rw-r--r-- root root 330 ./usr/lib/python3.8/__pycache__/struct.cpython-38.opt-2.pyc
+-rw-r--r-- root root 330 ./usr/lib/python3.8/__pycache__/struct.cpython-38.pyc
+-rw-r--r-- root root 41843 ./usr/lib/python3.8/__pycache__/subprocess.cpython-38.opt-1.pyc
+-rw-r--r-- root root 29913 ./usr/lib/python3.8/__pycache__/subprocess.cpython-38.opt-2.pyc
+-rw-r--r-- root root 41940 ./usr/lib/python3.8/__pycache__/subprocess.cpython-38.pyc
+-rw-r--r-- root root 2404 ./usr/lib/python3.8/__pycache__/symbol.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2328 ./usr/lib/python3.8/__pycache__/symbol.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2404 ./usr/lib/python3.8/__pycache__/symbol.cpython-38.pyc
+-rw-r--r-- root root 15462 ./usr/lib/python3.8/__pycache__/sysconfig.cpython-38.opt-1.pyc
+-rw-r--r-- root root 13084 ./usr/lib/python3.8/__pycache__/sysconfig.cpython-38.opt-2.pyc
+-rw-r--r-- root root 15462 ./usr/lib/python3.8/__pycache__/sysconfig.cpython-38.pyc
+-rw-r--r-- root root 62519 ./usr/lib/python3.8/__pycache__/tarfile.cpython-38.opt-1.pyc
+-rw-r--r-- root root 48629 ./usr/lib/python3.8/__pycache__/tarfile.cpython-38.opt-2.pyc
+-rw-r--r-- root root 62550 ./usr/lib/python3.8/__pycache__/tarfile.cpython-38.pyc
+-rw-r--r-- root root 18237 ./usr/lib/python3.8/__pycache__/telnetlib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 10735 ./usr/lib/python3.8/__pycache__/telnetlib.cpython-38.opt-2.pyc
+-rw-r--r-- root root 18237 ./usr/lib/python3.8/__pycache__/telnetlib.cpython-38.pyc
+-rw-r--r-- root root 23459 ./usr/lib/python3.8/__pycache__/tempfile.cpython-38.opt-1.pyc
+-rw-r--r-- root root 16875 ./usr/lib/python3.8/__pycache__/tempfile.cpython-38.opt-2.pyc
+-rw-r--r-- root root 23459 ./usr/lib/python3.8/__pycache__/tempfile.cpython-38.pyc
+-rw-r--r-- root root 13445 ./usr/lib/python3.8/__pycache__/textwrap.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6236 ./usr/lib/python3.8/__pycache__/textwrap.cpython-38.opt-2.pyc
+-rw-r--r-- root root 13519 ./usr/lib/python3.8/__pycache__/textwrap.cpython-38.pyc
+-rw-r--r-- root root 39378 ./usr/lib/python3.8/__pycache__/threading.cpython-38.opt-1.pyc
+-rw-r--r-- root root 22801 ./usr/lib/python3.8/__pycache__/threading.cpython-38.opt-2.pyc
+-rw-r--r-- root root 39929 ./usr/lib/python3.8/__pycache__/threading.cpython-38.pyc
+-rw-r--r-- root root 6446 ./usr/lib/python3.8/__pycache__/_threading_local.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3126 ./usr/lib/python3.8/__pycache__/_threading_local.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6446 ./usr/lib/python3.8/__pycache__/_threading_local.cpython-38.pyc
+-rw-r--r-- root root 2485 ./usr/lib/python3.8/__pycache__/token.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2452 ./usr/lib/python3.8/__pycache__/token.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2485 ./usr/lib/python3.8/__pycache__/token.cpython-38.pyc
+-rw-r--r-- root root 17116 ./usr/lib/python3.8/__pycache__/tokenize.cpython-38.opt-1.pyc
+-rw-r--r-- root root 13352 ./usr/lib/python3.8/__pycache__/tokenize.cpython-38.opt-2.pyc
+-rw-r--r-- root root 17160 ./usr/lib/python3.8/__pycache__/tokenize.cpython-38.pyc
+-rw-r--r-- root root 19890 ./usr/lib/python3.8/__pycache__/traceback.cpython-38.opt-1.pyc
+-rw-r--r-- root root 10986 ./usr/lib/python3.8/__pycache__/traceback.cpython-38.opt-2.pyc
+-rw-r--r-- root root 19890 ./usr/lib/python3.8/__pycache__/traceback.cpython-38.pyc
+-rw-r--r-- root root 9177 ./usr/lib/python3.8/__pycache__/types.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7955 ./usr/lib/python3.8/__pycache__/types.cpython-38.opt-2.pyc
+-rw-r--r-- root root 9177 ./usr/lib/python3.8/__pycache__/types.cpython-38.pyc
+-rw-r--r-- root root 3605 ./usr/lib/python3.8/__pycache__/uu.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3361 ./usr/lib/python3.8/__pycache__/uu.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3605 ./usr/lib/python3.8/__pycache__/uu.cpython-38.pyc
+-rw-r--r-- root root 23532 ./usr/lib/python3.8/__pycache__/uuid.cpython-38.opt-1.pyc
+-rw-r--r-- root root 16376 ./usr/lib/python3.8/__pycache__/uuid.cpython-38.opt-2.pyc
+-rw-r--r-- root root 23666 ./usr/lib/python3.8/__pycache__/uuid.cpython-38.pyc
+-rw-r--r-- root root 13192 ./usr/lib/python3.8/__pycache__/warnings.cpython-38.opt-1.pyc
+-rw-r--r-- root root 10917 ./usr/lib/python3.8/__pycache__/warnings.cpython-38.opt-2.pyc
+-rw-r--r-- root root 13652 ./usr/lib/python3.8/__pycache__/warnings.cpython-38.pyc
+-rw-r--r-- root root 19488 ./usr/lib/python3.8/__pycache__/weakref.cpython-38.opt-1.pyc
+-rw-r--r-- root root 16204 ./usr/lib/python3.8/__pycache__/weakref.cpython-38.opt-2.pyc
+-rw-r--r-- root root 19518 ./usr/lib/python3.8/__pycache__/weakref.cpython-38.pyc
+-rw-r--r-- root root 7600 ./usr/lib/python3.8/__pycache__/_weakrefset.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7600 ./usr/lib/python3.8/__pycache__/_weakrefset.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7600 ./usr/lib/python3.8/__pycache__/_weakrefset.cpython-38.pyc
+-rw-r--r-- root root 58599 ./usr/lib/python3.8/__pycache__/zipfile.cpython-38.opt-1.pyc
+-rw-r--r-- root root 49927 ./usr/lib/python3.8/__pycache__/zipfile.cpython-38.opt-2.pyc
+-rw-r--r-- root root 58636 ./usr/lib/python3.8/__pycache__/zipfile.cpython-38.pyc
+-rw-r--r-- root root 93177 ./usr/lib/python3.8/_pyio.py
+-rw-r--r-- root root 11356 ./usr/lib/python3.8/queue.py
+-rwxr-xr-x root root 7254 ./usr/lib/python3.8/quopri.py
+-rw-r--r-- root root 28802 ./usr/lib/python3.8/random.py
+-rw-r--r-- root root 5267 ./usr/lib/python3.8/reprlib.py
+-rw-r--r-- root root 15747 ./usr/lib/python3.8/re.py
+-rw-r--r-- root root 7097 ./usr/lib/python3.8/rlcompleter.py
+-rw-r--r-- root root 11973 ./usr/lib/python3.8/runpy.py
+-rw-r--r-- root root 18561 ./usr/lib/python3.8/selectors.py
+-rw-r--r-- root root 8527 ./usr/lib/python3.8/shelve.py
+-rw-r--r-- root root 13325 ./usr/lib/python3.8/shlex.py
+-rw-r--r-- root root 50752 ./usr/lib/python3.8/shutil.py
+-rw-r--r-- root root 2273 ./usr/lib/python3.8/signal.py
+-rw-r--r-- root root 3115 ./usr/lib/python3.8/_sitebuiltins.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/btrfsutil-1.1.1-py3.8.egg-info
+-rw-r--r-- root root 1 ./usr/lib/python3.8/site-packages/btrfsutil-1.1.1-py3.8.egg-info/dependency_links.txt
+-rw-r--r-- root root 242 ./usr/lib/python3.8/site-packages/btrfsutil-1.1.1-py3.8.egg-info/PKG-INFO
+-rw-r--r-- root root 203 ./usr/lib/python3.8/site-packages/btrfsutil-1.1.1-py3.8.egg-info/SOURCES.txt
+-rw-r--r-- root root 10 ./usr/lib/python3.8/site-packages/btrfsutil-1.1.1-py3.8.egg-info/top_level.txt
+-rwxr-xr-x root root 45936 ./usr/lib/python3.8/site-packages/btrfsutil.cpython-38-x86_64-linux-gnu.so
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/cairo
+-rwxr-xr-x root root 220616 ./usr/lib/python3.8/site-packages/cairo/_cairo.cpython-38-x86_64-linux-gnu.so
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/cairo/include
+-rw-r--r-- root root 9152 ./usr/lib/python3.8/site-packages/cairo/include/py3cairo.h
+-rwxr-xr-x root root 660 ./usr/lib/python3.8/site-packages/cairo/__init__.py
+-rw-r--r-- root root 33334 ./usr/lib/python3.8/site-packages/cairo/__init__.pyi
+-rw-r--r-- root root 0 ./usr/lib/python3.8/site-packages/cairo/py.typed
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/dbus
+-rwxr-xr-x root root 167752 ./usr/lib/python3.8/site-packages/_dbus_bindings.so
+-rw-r--r-- root root 17960 ./usr/lib/python3.8/site-packages/dbus/bus.py
+-rw-r--r-- root root 148 ./usr/lib/python3.8/site-packages/dbus/_compat.py
+-rw-r--r-- root root 27806 ./usr/lib/python3.8/site-packages/dbus/connection.py
+-rw-r--r-- root root 8837 ./usr/lib/python3.8/site-packages/dbus/_dbus.py
+-rw-r--r-- root root 15240 ./usr/lib/python3.8/site-packages/dbus/decorators.py
+-rw-r--r-- root root 4707 ./usr/lib/python3.8/site-packages/dbus/exceptions.py
+-rw-r--r-- root root 3409 ./usr/lib/python3.8/site-packages/dbus/_expat_introspect_parser.py
+-rw-r--r-- root root 3517 ./usr/lib/python3.8/site-packages/dbus/gi_service.py
+-rwxr-xr-x root root 22736 ./usr/lib/python3.8/site-packages/_dbus_glib_bindings.so
+-rw-r--r-- root root 2130 ./usr/lib/python3.8/site-packages/dbus/glib.py
+-rw-r--r-- root root 3756 ./usr/lib/python3.8/site-packages/dbus/__init__.py
+-rw-r--r-- root root 1864 ./usr/lib/python3.8/site-packages/dbus/lowlevel.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/dbus/mainloop
+-rw-r--r-- root root 1806 ./usr/lib/python3.8/site-packages/dbus/mainloop/glib.py
+-rw-r--r-- root root 2369 ./usr/lib/python3.8/site-packages/dbus/mainloop/__init__.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/dbus/mainloop/__pycache__
+-rw-r--r-- root root 655 ./usr/lib/python3.8/site-packages/dbus/mainloop/__pycache__/glib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 655 ./usr/lib/python3.8/site-packages/dbus/mainloop/__pycache__/glib.cpython-38.pyc
+-rw-r--r-- root root 435 ./usr/lib/python3.8/site-packages/dbus/mainloop/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 435 ./usr/lib/python3.8/site-packages/dbus/mainloop/__pycache__/__init__.cpython-38.pyc
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/dbusmock
+-rw-r--r-- root root 856 ./usr/lib/python3.8/site-packages/dbusmock/__init__.py
+-rw-r--r-- root root 4533 ./usr/lib/python3.8/site-packages/dbusmock/__main__.py
+-rw-r--r-- root root 28848 ./usr/lib/python3.8/site-packages/dbusmock/mockobject.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/dbusmock/__pycache__
+-rw-r--r-- root root 641 ./usr/lib/python3.8/site-packages/dbusmock/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 3142 ./usr/lib/python3.8/site-packages/dbusmock/__pycache__/__main__.cpython-38.pyc
+-rw-r--r-- root root 22372 ./usr/lib/python3.8/site-packages/dbusmock/__pycache__/mockobject.cpython-38.pyc
+-rw-r--r-- root root 7903 ./usr/lib/python3.8/site-packages/dbusmock/__pycache__/testcase.cpython-38.pyc
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/dbusmock/templates
+-rw-r--r-- root root 16490 ./usr/lib/python3.8/site-packages/dbusmock/templates/bluez4.py
+-rw-r--r-- root root 10784 ./usr/lib/python3.8/site-packages/dbusmock/templates/bluez5-obex.py
+-rw-r--r-- root root 15264 ./usr/lib/python3.8/site-packages/dbusmock/templates/bluez5.py
+-rw-r--r-- root root 1250 ./usr/lib/python3.8/site-packages/dbusmock/templates/gnome_screensaver.py
+-rw-r--r-- root root 382 ./usr/lib/python3.8/site-packages/dbusmock/templates/__init__.py
+-rw-r--r-- root root 10765 ./usr/lib/python3.8/site-packages/dbusmock/templates/logind.py
+-rw-r--r-- root root 1139 ./usr/lib/python3.8/site-packages/dbusmock/templates/low_memory_monitor.py
+-rw-r--r-- root root 34680 ./usr/lib/python3.8/site-packages/dbusmock/templates/networkmanager.py
+-rw-r--r-- root root 1777 ./usr/lib/python3.8/site-packages/dbusmock/templates/notification_daemon.py
+-rw-r--r-- root root 18046 ./usr/lib/python3.8/site-packages/dbusmock/templates/ofono.py
+-rw-r--r-- root root 2089 ./usr/lib/python3.8/site-packages/dbusmock/templates/polkitd.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__
+-rw-r--r-- root root 10255 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/bluez4.cpython-38.pyc
+-rw-r--r-- root root 9287 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/bluez5.cpython-38.pyc
+-rw-r--r-- root root 7996 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/bluez5-obex.cpython-38.pyc
+-rw-r--r-- root root 1052 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/gnome_screensaver.cpython-38.pyc
+-rw-r--r-- root root 206 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 6563 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/logind.cpython-38.pyc
+-rw-r--r-- root root 1111 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/low_memory_monitor.cpython-38.pyc
+-rw-r--r-- root root 23374 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/networkmanager.cpython-38.pyc
+-rw-r--r-- root root 1419 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/notification_daemon.cpython-38.pyc
+-rw-r--r-- root root 9250 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/ofono.cpython-38.pyc
+-rw-r--r-- root root 1890 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/polkitd.cpython-38.pyc
+-rw-r--r-- root root 1342 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/timedated.cpython-38.pyc
+-rw-r--r-- root root 6843 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/upower.cpython-38.pyc
+-rw-r--r-- root root 2520 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/urfkill.cpython-38.pyc
+-rw-r--r-- root root 1796 ./usr/lib/python3.8/site-packages/dbusmock/templates/timedated.py
+-rw-r--r-- root root 10801 ./usr/lib/python3.8/site-packages/dbusmock/templates/upower.py
+-rw-r--r-- root root 3709 ./usr/lib/python3.8/site-packages/dbusmock/templates/urfkill.py
+-rw-r--r-- root root 9445 ./usr/lib/python3.8/site-packages/dbusmock/testcase.py
+-rw-r--r-- root root 24821 ./usr/lib/python3.8/site-packages/dbus/proxies.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/dbus/__pycache__
+-rw-r--r-- root root 13609 ./usr/lib/python3.8/site-packages/dbus/__pycache__/bus.cpython-38.opt-1.pyc
+-rw-r--r-- root root 13609 ./usr/lib/python3.8/site-packages/dbus/__pycache__/bus.cpython-38.pyc
+-rw-r--r-- root root 218 ./usr/lib/python3.8/site-packages/dbus/__pycache__/_compat.cpython-38.opt-1.pyc
+-rw-r--r-- root root 218 ./usr/lib/python3.8/site-packages/dbus/__pycache__/_compat.cpython-38.pyc
+-rw-r--r-- root root 17806 ./usr/lib/python3.8/site-packages/dbus/__pycache__/connection.cpython-38.opt-1.pyc
+-rw-r--r-- root root 17806 ./usr/lib/python3.8/site-packages/dbus/__pycache__/connection.cpython-38.pyc
+-rw-r--r-- root root 7385 ./usr/lib/python3.8/site-packages/dbus/__pycache__/_dbus.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7385 ./usr/lib/python3.8/site-packages/dbus/__pycache__/_dbus.cpython-38.pyc
+-rw-r--r-- root root 11569 ./usr/lib/python3.8/site-packages/dbus/__pycache__/decorators.cpython-38.opt-1.pyc
+-rw-r--r-- root root 11569 ./usr/lib/python3.8/site-packages/dbus/__pycache__/decorators.cpython-38.pyc
+-rw-r--r-- root root 3916 ./usr/lib/python3.8/site-packages/dbus/__pycache__/exceptions.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3916 ./usr/lib/python3.8/site-packages/dbus/__pycache__/exceptions.cpython-38.pyc
+-rw-r--r-- root root 2206 ./usr/lib/python3.8/site-packages/dbus/__pycache__/_expat_introspect_parser.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2206 ./usr/lib/python3.8/site-packages/dbus/__pycache__/_expat_introspect_parser.cpython-38.pyc
+-rw-r--r-- root root 1954 ./usr/lib/python3.8/site-packages/dbus/__pycache__/gi_service.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1954 ./usr/lib/python3.8/site-packages/dbus/__pycache__/gi_service.cpython-38.pyc
+-rw-r--r-- root root 1018 ./usr/lib/python3.8/site-packages/dbus/__pycache__/glib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1018 ./usr/lib/python3.8/site-packages/dbus/__pycache__/glib.cpython-38.pyc
+-rw-r--r-- root root 2185 ./usr/lib/python3.8/site-packages/dbus/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2185 ./usr/lib/python3.8/site-packages/dbus/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 677 ./usr/lib/python3.8/site-packages/dbus/__pycache__/lowlevel.cpython-38.opt-1.pyc
+-rw-r--r-- root root 677 ./usr/lib/python3.8/site-packages/dbus/__pycache__/lowlevel.cpython-38.pyc
+-rw-r--r-- root root 17730 ./usr/lib/python3.8/site-packages/dbus/__pycache__/proxies.cpython-38.opt-1.pyc
+-rw-r--r-- root root 17730 ./usr/lib/python3.8/site-packages/dbus/__pycache__/proxies.cpython-38.pyc
+-rw-r--r-- root root 3462 ./usr/lib/python3.8/site-packages/dbus/__pycache__/server.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3462 ./usr/lib/python3.8/site-packages/dbus/__pycache__/server.cpython-38.pyc
+-rw-r--r-- root root 22086 ./usr/lib/python3.8/site-packages/dbus/__pycache__/service.cpython-38.opt-1.pyc
+-rw-r--r-- root root 22086 ./usr/lib/python3.8/site-packages/dbus/__pycache__/service.cpython-38.pyc
+-rw-r--r-- root root 730 ./usr/lib/python3.8/site-packages/dbus/__pycache__/types.cpython-38.opt-1.pyc
+-rw-r--r-- root root 730 ./usr/lib/python3.8/site-packages/dbus/__pycache__/types.cpython-38.pyc
+-rw-r--r-- root root 4657 ./usr/lib/python3.8/site-packages/dbus/server.py
+-rw-r--r-- root root 35473 ./usr/lib/python3.8/site-packages/dbus/service.py
+-rw-r--r-- root root 561 ./usr/lib/python3.8/site-packages/dbus/types.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/gi
+-rw-r--r-- root root 1493 ./usr/lib/python3.8/site-packages/gi/_compat.py
+-rw-r--r-- root root 1969 ./usr/lib/python3.8/site-packages/gi/_constants.py
+-rw-r--r-- root root 6688 ./usr/lib/python3.8/site-packages/gi/docstring.py
+-rw-r--r-- root root 2082 ./usr/lib/python3.8/site-packages/gi/_error.py
+-rwxr-xr-x root root 22488 ./usr/lib/python3.8/site-packages/gi/_gi_cairo.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 344488 ./usr/lib/python3.8/site-packages/gi/_gi.cpython-38-x86_64-linux-gnu.so
+-rw-r--r-- root root 7835 ./usr/lib/python3.8/site-packages/gi/_gtktemplate.py
+-rw-r--r-- root root 5280 ./usr/lib/python3.8/site-packages/gi/importer.py
+-rw-r--r-- root root 5894 ./usr/lib/python3.8/site-packages/gi/__init__.py
+-rw-r--r-- root root 9705 ./usr/lib/python3.8/site-packages/gi/module.py
+-rw-r--r-- root root 13192 ./usr/lib/python3.8/site-packages/gi/_option.py
+-rw-r--r-- root root 8083 ./usr/lib/python3.8/site-packages/gi/_ossighelper.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/gi/overrides
+-rw-r--r-- root root 1724 ./usr/lib/python3.8/site-packages/gi/overrides/GdkPixbuf.py
+-rw-r--r-- root root 16239 ./usr/lib/python3.8/site-packages/gi/overrides/Gdk.py
+-rw-r--r-- root root 2242 ./usr/lib/python3.8/site-packages/gi/overrides/GIMarshallingTests.py
+-rw-r--r-- root root 19033 ./usr/lib/python3.8/site-packages/gi/overrides/Gio.py
+-rw-r--r-- root root 29897 ./usr/lib/python3.8/site-packages/gi/overrides/GLib.py
+-rw-r--r-- root root 24640 ./usr/lib/python3.8/site-packages/gi/overrides/GObject.py
+-rw-r--r-- root root 59083 ./usr/lib/python3.8/site-packages/gi/overrides/Gtk.py
+-rw-r--r-- root root 12590 ./usr/lib/python3.8/site-packages/gi/overrides/__init__.py
+-rw-r--r-- root root 1705 ./usr/lib/python3.8/site-packages/gi/overrides/keysyms.py
+-rw-r--r-- root root 1774 ./usr/lib/python3.8/site-packages/gi/overrides/Pango.py
+-rw-r--r-- root root 14331 ./usr/lib/python3.8/site-packages/gi/_propertyhelper.py
+-rw-r--r-- root root 766 ./usr/lib/python3.8/site-packages/gi/pygtkcompat.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/gi/repository
+-rw-r--r-- root root 1042 ./usr/lib/python3.8/site-packages/gi/repository/__init__.py
+-rw-r--r-- root root 9303 ./usr/lib/python3.8/site-packages/gi/_signalhelper.py
+-rw-r--r-- root root 14330 ./usr/lib/python3.8/site-packages/gi/types.py
+-rw-r--r-- root root 1024 ./usr/lib/python3.8/site-packages/pycairo-1.19.0.egg-info
+-rw-r--r-- root root 810 ./usr/lib/python3.8/site-packages/PyGObject-3.34.0.egg-info
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/pygtkcompat
+-rw-r--r-- root root 14200 ./usr/lib/python3.8/site-packages/pygtkcompat/generictreemodel.py
+-rw-r--r-- root root 547 ./usr/lib/python3.8/site-packages/pygtkcompat/__init__.py
+-rw-r--r-- root root 20890 ./usr/lib/python3.8/site-packages/pygtkcompat/pygtkcompat.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/python_dbusmock-0.19-py3.8.egg-info
+-rw-r--r-- root root 1 ./usr/lib/python3.8/site-packages/python_dbusmock-0.19-py3.8.egg-info/dependency_links.txt
+-rw-r--r-- root root 14631 ./usr/lib/python3.8/site-packages/python_dbusmock-0.19-py3.8.egg-info/PKG-INFO
+-rw-r--r-- root root 1137 ./usr/lib/python3.8/site-packages/python_dbusmock-0.19-py3.8.egg-info/SOURCES.txt
+-rw-r--r-- root root 9 ./usr/lib/python3.8/site-packages/python_dbusmock-0.19-py3.8.egg-info/top_level.txt
+-rw-r--r-- root root 21342 ./usr/lib/python3.8/site.py
+-rwxr-xr-x root root 44328 ./usr/lib/python3.8/smtplib.py
+-rw-r--r-- root root 35243 ./usr/lib/python3.8/socket.py
+-rw-r--r-- root root 26695 ./usr/lib/python3.8/sre_compile.py
+-rw-r--r-- root root 7154 ./usr/lib/python3.8/sre_constants.py
+-rw-r--r-- root root 40230 ./usr/lib/python3.8/sre_parse.py
+-rw-r--r-- root root 50760 ./usr/lib/python3.8/ssl.py
+-rw-r--r-- root root 5485 ./usr/lib/python3.8/stat.py
+-rw-r--r-- root root 12917 ./usr/lib/python3.8/stringprep.py
+-rw-r--r-- root root 10535 ./usr/lib/python3.8/string.py
+-rw-r--r-- root root 25268 ./usr/lib/python3.8/_strptime.py
+-rw-r--r-- root root 257 ./usr/lib/python3.8/struct.py
+-rw-r--r-- root root 77289 ./usr/lib/python3.8/subprocess.py
+-rw-r--r-- root root 2109 ./usr/lib/python3.8/symbol.py
+-rw-r--r-- root root 26663 ./usr/lib/python3.8/_sysconfigdata__linux_x86_64-linux-gnu.py
+-rw-r--r-- root root 24339 ./usr/lib/python3.8/sysconfig.py
+-rwxr-xr-x root root 93575 ./usr/lib/python3.8/tarfile.py
+-rw-r--r-- root root 23254 ./usr/lib/python3.8/telnetlib.py
+-rw-r--r-- root root 27588 ./usr/lib/python3.8/tempfile.py
+-rw-r--r-- root root 19407 ./usr/lib/python3.8/textwrap.py
+-rw-r--r-- root root 7220 ./usr/lib/python3.8/_threading_local.py
+-rw-r--r-- root root 50585 ./usr/lib/python3.8/threading.py
+-rw-r--r-- root root 25841 ./usr/lib/python3.8/tokenize.py
+-rw-r--r-- root root 2368 ./usr/lib/python3.8/token.py
+-rw-r--r-- root root 23479 ./usr/lib/python3.8/traceback.py
+-rw-r--r-- root root 9713 ./usr/lib/python3.8/types.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/urllib
+-rw-r--r-- root root 2632 ./usr/lib/python3.8/urllib/error.py
+-rw-r--r-- root root 0 ./usr/lib/python3.8/urllib/__init__.py
+-rw-r--r-- root root 41583 ./usr/lib/python3.8/urllib/parse.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/urllib/__pycache__
+-rw-r--r-- root root 2802 ./usr/lib/python3.8/urllib/__pycache__/error.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2127 ./usr/lib/python3.8/urllib/__pycache__/error.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2802 ./usr/lib/python3.8/urllib/__pycache__/error.cpython-38.pyc
+-rw-r--r-- root root 121 ./usr/lib/python3.8/urllib/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 121 ./usr/lib/python3.8/urllib/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 121 ./usr/lib/python3.8/urllib/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 33925 ./usr/lib/python3.8/urllib/__pycache__/parse.cpython-38.opt-1.pyc
+-rw-r--r-- root root 24489 ./usr/lib/python3.8/urllib/__pycache__/parse.cpython-38.opt-2.pyc
+-rw-r--r-- root root 33925 ./usr/lib/python3.8/urllib/__pycache__/parse.cpython-38.pyc
+-rw-r--r-- root root 72410 ./usr/lib/python3.8/urllib/__pycache__/request.cpython-38.opt-1.pyc
+-rw-r--r-- root root 60117 ./usr/lib/python3.8/urllib/__pycache__/request.cpython-38.opt-2.pyc
+-rw-r--r-- root root 72524 ./usr/lib/python3.8/urllib/__pycache__/request.cpython-38.pyc
+-rw-r--r-- root root 3282 ./usr/lib/python3.8/urllib/__pycache__/response.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2703 ./usr/lib/python3.8/urllib/__pycache__/response.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3282 ./usr/lib/python3.8/urllib/__pycache__/response.cpython-38.pyc
+-rw-r--r-- root root 7320 ./usr/lib/python3.8/urllib/__pycache__/robotparser.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5952 ./usr/lib/python3.8/urllib/__pycache__/robotparser.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7320 ./usr/lib/python3.8/urllib/__pycache__/robotparser.cpython-38.pyc
+-rw-r--r-- root root 101308 ./usr/lib/python3.8/urllib/request.py
+-rw-r--r-- root root 2299 ./usr/lib/python3.8/urllib/response.py
+-rw-r--r-- root root 9424 ./usr/lib/python3.8/urllib/robotparser.py
+-rw-r--r-- root root 30394 ./usr/lib/python3.8/uuid.py
+-rwxr-xr-x root root 6959 ./usr/lib/python3.8/uu.py
+-rw-r--r-- root root 19688 ./usr/lib/python3.8/warnings.py
+-rw-r--r-- root root 21387 ./usr/lib/python3.8/weakref.py
+-rw-r--r-- root root 5735 ./usr/lib/python3.8/_weakrefset.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/xml
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/xml/dom
+-rw-r--r-- root root 3451 ./usr/lib/python3.8/xml/dom/domreg.py
+-rw-r--r-- root root 35756 ./usr/lib/python3.8/xml/dom/expatbuilder.py
+-rw-r--r-- root root 4019 ./usr/lib/python3.8/xml/dom/__init__.py
+-rw-r--r-- root root 3367 ./usr/lib/python3.8/xml/dom/minicompat.py
+-rw-r--r-- root root 66857 ./usr/lib/python3.8/xml/dom/minidom.py
+-rw-r--r-- root root 936 ./usr/lib/python3.8/xml/dom/NodeFilter.py
+-rw-r--r-- root root 11997 ./usr/lib/python3.8/xml/dom/pulldom.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/xml/dom/__pycache__
+-rw-r--r-- root root 2842 ./usr/lib/python3.8/xml/dom/__pycache__/domreg.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1640 ./usr/lib/python3.8/xml/dom/__pycache__/domreg.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2842 ./usr/lib/python3.8/xml/dom/__pycache__/domreg.cpython-38.pyc
+-rw-r--r-- root root 26798 ./usr/lib/python3.8/xml/dom/__pycache__/expatbuilder.cpython-38.opt-1.pyc
+-rw-r--r-- root root 24193 ./usr/lib/python3.8/xml/dom/__pycache__/expatbuilder.cpython-38.opt-2.pyc
+-rw-r--r-- root root 27333 ./usr/lib/python3.8/xml/dom/__pycache__/expatbuilder.cpython-38.pyc
+-rw-r--r-- root root 5522 ./usr/lib/python3.8/xml/dom/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4727 ./usr/lib/python3.8/xml/dom/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5522 ./usr/lib/python3.8/xml/dom/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 2642 ./usr/lib/python3.8/xml/dom/__pycache__/minicompat.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2464 ./usr/lib/python3.8/xml/dom/__pycache__/minicompat.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2734 ./usr/lib/python3.8/xml/dom/__pycache__/minicompat.cpython-38.pyc
+-rw-r--r-- root root 55264 ./usr/lib/python3.8/xml/dom/__pycache__/minidom.cpython-38.opt-1.pyc
+-rw-r--r-- root root 53693 ./usr/lib/python3.8/xml/dom/__pycache__/minidom.cpython-38.opt-2.pyc
+-rw-r--r-- root root 55366 ./usr/lib/python3.8/xml/dom/__pycache__/minidom.cpython-38.pyc
+-rw-r--r-- root root 959 ./usr/lib/python3.8/xml/dom/__pycache__/NodeFilter.cpython-38.opt-1.pyc
+-rw-r--r-- root root 866 ./usr/lib/python3.8/xml/dom/__pycache__/NodeFilter.cpython-38.opt-2.pyc
+-rw-r--r-- root root 959 ./usr/lib/python3.8/xml/dom/__pycache__/NodeFilter.cpython-38.pyc
+-rw-r--r-- root root 10683 ./usr/lib/python3.8/xml/dom/__pycache__/pulldom.cpython-38.opt-1.pyc
+-rw-r--r-- root root 10247 ./usr/lib/python3.8/xml/dom/__pycache__/pulldom.cpython-38.opt-2.pyc
+-rw-r--r-- root root 10683 ./usr/lib/python3.8/xml/dom/__pycache__/pulldom.cpython-38.pyc
+-rw-r--r-- root root 12456 ./usr/lib/python3.8/xml/dom/__pycache__/xmlbuilder.cpython-38.opt-1.pyc
+-rw-r--r-- root root 12027 ./usr/lib/python3.8/xml/dom/__pycache__/xmlbuilder.cpython-38.opt-2.pyc
+-rw-r--r-- root root 12486 ./usr/lib/python3.8/xml/dom/__pycache__/xmlbuilder.cpython-38.pyc
+-rw-r--r-- root root 12403 ./usr/lib/python3.8/xml/dom/xmlbuilder.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/xml/etree
+-rw-r--r-- root root 82 ./usr/lib/python3.8/xml/etree/cElementTree.py
+-rw-r--r-- root root 5151 ./usr/lib/python3.8/xml/etree/ElementInclude.py
+-rw-r--r-- root root 13118 ./usr/lib/python3.8/xml/etree/ElementPath.py
+-rw-r--r-- root root 72728 ./usr/lib/python3.8/xml/etree/ElementTree.py
+-rw-r--r-- root root 1604 ./usr/lib/python3.8/xml/etree/__init__.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/xml/etree/__pycache__
+-rw-r--r-- root root 163 ./usr/lib/python3.8/xml/etree/__pycache__/cElementTree.cpython-38.opt-1.pyc
+-rw-r--r-- root root 163 ./usr/lib/python3.8/xml/etree/__pycache__/cElementTree.cpython-38.opt-2.pyc
+-rw-r--r-- root root 163 ./usr/lib/python3.8/xml/etree/__pycache__/cElementTree.cpython-38.pyc
+-rw-r--r-- root root 1569 ./usr/lib/python3.8/xml/etree/__pycache__/ElementInclude.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1569 ./usr/lib/python3.8/xml/etree/__pycache__/ElementInclude.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1569 ./usr/lib/python3.8/xml/etree/__pycache__/ElementInclude.cpython-38.pyc
+-rw-r--r-- root root 8424 ./usr/lib/python3.8/xml/etree/__pycache__/ElementPath.cpython-38.opt-1.pyc
+-rw-r--r-- root root 8424 ./usr/lib/python3.8/xml/etree/__pycache__/ElementPath.cpython-38.opt-2.pyc
+-rw-r--r-- root root 8424 ./usr/lib/python3.8/xml/etree/__pycache__/ElementPath.cpython-38.pyc
+-rw-r--r-- root root 55288 ./usr/lib/python3.8/xml/etree/__pycache__/ElementTree.cpython-38.opt-1.pyc
+-rw-r--r-- root root 36891 ./usr/lib/python3.8/xml/etree/__pycache__/ElementTree.cpython-38.opt-2.pyc
+-rw-r--r-- root root 55602 ./usr/lib/python3.8/xml/etree/__pycache__/ElementTree.cpython-38.pyc
+-rw-r--r-- root root 121 ./usr/lib/python3.8/xml/etree/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 121 ./usr/lib/python3.8/xml/etree/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 121 ./usr/lib/python3.8/xml/etree/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 557 ./usr/lib/python3.8/xml/__init__.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/xml/parsers
+-rw-r--r-- root root 248 ./usr/lib/python3.8/xml/parsers/expat.py
+-rw-r--r-- root root 167 ./usr/lib/python3.8/xml/parsers/__init__.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/xml/parsers/__pycache__
+-rw-r--r-- root root 322 ./usr/lib/python3.8/xml/parsers/__pycache__/expat.cpython-38.opt-1.pyc
+-rw-r--r-- root root 256 ./usr/lib/python3.8/xml/parsers/__pycache__/expat.cpython-38.opt-2.pyc
+-rw-r--r-- root root 322 ./usr/lib/python3.8/xml/parsers/__pycache__/expat.cpython-38.pyc
+-rw-r--r-- root root 293 ./usr/lib/python3.8/xml/parsers/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 121 ./usr/lib/python3.8/xml/parsers/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 293 ./usr/lib/python3.8/xml/parsers/__pycache__/__init__.cpython-38.pyc
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/xml/__pycache__
+-rw-r--r-- root root 688 ./usr/lib/python3.8/xml/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 165 ./usr/lib/python3.8/xml/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 688 ./usr/lib/python3.8/xml/__pycache__/__init__.cpython-38.pyc
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/xml/sax
+-rw-r--r-- root root 4785 ./usr/lib/python3.8/xml/sax/_exceptions.py
+-rw-r--r-- root root 15704 ./usr/lib/python3.8/xml/sax/expatreader.py
+-rw-r--r-- root root 13922 ./usr/lib/python3.8/xml/sax/handler.py
+-rw-r--r-- root root 3647 ./usr/lib/python3.8/xml/sax/__init__.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/xml/sax/__pycache__
+-rw-r--r-- root root 5436 ./usr/lib/python3.8/xml/sax/__pycache__/_exceptions.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2833 ./usr/lib/python3.8/xml/sax/__pycache__/_exceptions.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5436 ./usr/lib/python3.8/xml/sax/__pycache__/_exceptions.cpython-38.pyc
+-rw-r--r-- root root 12487 ./usr/lib/python3.8/xml/sax/__pycache__/expatreader.cpython-38.opt-1.pyc
+-rw-r--r-- root root 12076 ./usr/lib/python3.8/xml/sax/__pycache__/expatreader.cpython-38.opt-2.pyc
+-rw-r--r-- root root 12487 ./usr/lib/python3.8/xml/sax/__pycache__/expatreader.cpython-38.pyc
+-rw-r--r-- root root 12414 ./usr/lib/python3.8/xml/sax/__pycache__/handler.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4643 ./usr/lib/python3.8/xml/sax/__pycache__/handler.cpython-38.opt-2.pyc
+-rw-r--r-- root root 12414 ./usr/lib/python3.8/xml/sax/__pycache__/handler.cpython-38.pyc
+-rw-r--r-- root root 3211 ./usr/lib/python3.8/xml/sax/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2148 ./usr/lib/python3.8/xml/sax/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3211 ./usr/lib/python3.8/xml/sax/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 12911 ./usr/lib/python3.8/xml/sax/__pycache__/saxutils.cpython-38.opt-1.pyc
+-rw-r--r-- root root 11256 ./usr/lib/python3.8/xml/sax/__pycache__/saxutils.cpython-38.opt-2.pyc
+-rw-r--r-- root root 12911 ./usr/lib/python3.8/xml/sax/__pycache__/saxutils.cpython-38.pyc
+-rw-r--r-- root root 16836 ./usr/lib/python3.8/xml/sax/__pycache__/xmlreader.cpython-38.opt-1.pyc
+-rw-r--r-- root root 10399 ./usr/lib/python3.8/xml/sax/__pycache__/xmlreader.cpython-38.opt-2.pyc
+-rw-r--r-- root root 16836 ./usr/lib/python3.8/xml/sax/__pycache__/xmlreader.cpython-38.pyc
+-rw-r--r-- root root 12255 ./usr/lib/python3.8/xml/sax/saxutils.py
+-rw-r--r-- root root 12684 ./usr/lib/python3.8/xml/sax/xmlreader.py
+-rw-r--r-- root root 88132 ./usr/lib/python3.8/zipfile.py
+-rw-r--r-- root root 3920 ./usr/lib/Scrt1.o
+drwxr-xr-x root root 4096 ./usr/lib/ssl-1.1
+lrwxrwxrwx root root 22 ./usr/lib/ssl-1.1/certs -> ../../../etc/ssl/certs
+-rw-r--r-- root root 412 ./usr/lib/ssl-1.1/ct_log_list.cnf
+-rw-r--r-- root root 412 ./usr/lib/ssl-1.1/ct_log_list.cnf.dist
+-rw-r--r-- root root 10909 ./usr/lib/ssl-1.1/openssl.cnf.dist
+lrwxrwxrwx root root 28 ./usr/lib/ssl-1.1/openssl.cnf -> ../../../etc/ssl/openssl.cnf
+lrwxrwxrwx root root 24 ./usr/lib/ssl-1.1/private -> ../../../etc/ssl/private
+drwxr-xr-x root root 4096 ./usr/lib/systemd
+drwxr-xr-x root root 4096 ./usr/lib/systemd/user
+-rw-r--r-- root root 360 ./usr/lib/systemd/user/dbus.service
+-rw-r--r-- root root 174 ./usr/lib/systemd/user/dbus.socket
+drwxr-xr-x root root 4096 ./usr/lib/systemd/user/sockets.target.wants
+lrwxrwxrwx root root 14 ./usr/lib/systemd/user/sockets.target.wants/dbus.socket -> ../dbus.socket
+drwxr-xr-x root root 4096 ./usr/lib/x86_64-poky-linux
+drwxr-xr-x root root 4096 ./usr/lib/x86_64-poky-linux/10.1.0
+-rw-r--r-- root root 2432 ./usr/lib/x86_64-poky-linux/10.1.0/crtbegin.o
+-rw-r--r-- root root 2752 ./usr/lib/x86_64-poky-linux/10.1.0/crtbeginS.o
+-rw-r--r-- root root 2944 ./usr/lib/x86_64-poky-linux/10.1.0/crtbeginT.o
+-rw-r--r-- root root 1200 ./usr/lib/x86_64-poky-linux/10.1.0/crtend.o
+-rw-r--r-- root root 1200 ./usr/lib/x86_64-poky-linux/10.1.0/crtendS.o
+-rw-r--r-- root root 3848 ./usr/lib/x86_64-poky-linux/10.1.0/crtfastmath.o
+-rw-r--r-- root root 3400 ./usr/lib/x86_64-poky-linux/10.1.0/crtprec32.o
+-rw-r--r-- root root 3416 ./usr/lib/x86_64-poky-linux/10.1.0/crtprec64.o
+-rw-r--r-- root root 3400 ./usr/lib/x86_64-poky-linux/10.1.0/crtprec80.o
+-rw-r--r-- root root 6179894 ./usr/lib/x86_64-poky-linux/10.1.0/libgcc.a
+-rw-r--r-- root root 405636 ./usr/lib/x86_64-poky-linux/10.1.0/libgcc_eh.a
+-rw-r--r-- root root 267062 ./usr/lib/x86_64-poky-linux/10.1.0/libgcov.a
+-rw-r--r-- root root 201 ./usr/lib/xml2Conf.sh
+drwxr-xr-x root root 4096 ./usr/lib/xtables
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libip6t_ah.so
+-rwxr-xr-x root root 14640 ./usr/lib/xtables/libip6t_DNAT.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libip6t_DNPT.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libip6t_dst.so
+-rwxr-xr-x root root 14208 ./usr/lib/xtables/libip6t_eui64.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libip6t_frag.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libip6t_hbh.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libip6t_hl.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libip6t_HL.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libip6t_icmp6.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libip6t_ipv6header.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libip6t_LOG.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libip6t_MASQUERADE.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libip6t_mh.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libip6t_NETMAP.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libip6t_REDIRECT.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libip6t_REJECT.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libip6t_rt.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libip6t_SNAT.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libip6t_SNPT.so
+-rwxr-xr-x root root 22816 ./usr/lib/xtables/libip6t_srh.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libipt_ah.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libipt_CLUSTERIP.so
+-rwxr-xr-x root root 18736 ./usr/lib/xtables/libipt_DNAT.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libipt_ECN.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libipt_icmp.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libipt_LOG.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libipt_MASQUERADE.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libipt_NETMAP.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libipt_realm.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libipt_REDIRECT.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libipt_REJECT.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libipt_SNAT.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libipt_ttl.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libipt_TTL.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libipt_ULOG.so
+-rwxr-xr-x root root 14632 ./usr/lib/xtables/libxt_addrtype.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libxt_AUDIT.so
+-rwxr-xr-x root root 14624 ./usr/lib/xtables/libxt_bpf.so
+-rwxr-xr-x root root 14816 ./usr/lib/xtables/libxt_cgroup.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libxt_CHECKSUM.so
+-rwxr-xr-x root root 14648 ./usr/lib/xtables/libxt_CLASSIFY.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libxt_cluster.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libxt_comment.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libxt_connbytes.so
+-rwxr-xr-x root root 15016 ./usr/lib/xtables/libxt_connlimit.so
+-rwxr-xr-x root root 14632 ./usr/lib/xtables/libxt_connmark.so
+-rwxr-xr-x root root 18944 ./usr/lib/xtables/libxt_CONNMARK.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libxt_CONNSECMARK.so
+-rwxr-xr-x root root 32744 ./usr/lib/xtables/libxt_conntrack.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_cpu.so
+-rwxr-xr-x root root 19736 ./usr/lib/xtables/libxt_CT.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_dccp.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libxt_devgroup.so
+-rwxr-xr-x root root 14624 ./usr/lib/xtables/libxt_dscp.so
+-rwxr-xr-x root root 14640 ./usr/lib/xtables/libxt_DSCP.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_ecn.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_esp.so
+-rwxr-xr-x root root 36136 ./usr/lib/xtables/libxt_hashlimit.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_helper.so
+-rwxr-xr-x root root 14640 ./usr/lib/xtables/libxt_HMARK.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libxt_IDLETIMER.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_ipcomp.so
+-rwxr-xr-x root root 14824 ./usr/lib/xtables/libxt_iprange.so
+-rwxr-xr-x root root 14624 ./usr/lib/xtables/libxt_ipvs.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libxt_LED.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_length.so
+-rwxr-xr-x root root 14624 ./usr/lib/xtables/libxt_limit.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_mac.so
+-rwxr-xr-x root root 14624 ./usr/lib/xtables/libxt_mark.so
+-rwxr-xr-x root root 15168 ./usr/lib/xtables/libxt_MARK.so
+-rwxr-xr-x root root 19112 ./usr/lib/xtables/libxt_multiport.so
+-rwxr-xr-x root root 14624 ./usr/lib/xtables/libxt_nfacct.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libxt_NFLOG.so
+-rwxr-xr-x root root 15048 ./usr/lib/xtables/libxt_NFQUEUE.so
+lrwxrwxrwx root root 11 ./usr/lib/xtables/libxt_NOTRACK.so -> libxt_CT.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_osf.so
+-rwxr-xr-x root root 23008 ./usr/lib/xtables/libxt_owner.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libxt_physdev.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libxt_pkttype.so
+-rwxr-xr-x root root 14624 ./usr/lib/xtables/libxt_policy.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_quota.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libxt_rateest.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libxt_RATEEST.so
+-rwxr-xr-x root root 18912 ./usr/lib/xtables/libxt_recent.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libxt_rpfilter.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_sctp.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libxt_SECMARK.so
+-rwxr-xr-x root root 23392 ./usr/lib/xtables/libxt_set.so
+-rwxr-xr-x root root 23232 ./usr/lib/xtables/libxt_SET.so
+-rwxr-xr-x root root 15008 ./usr/lib/xtables/libxt_socket.so
+-rwxr-xr-x root root 14368 ./usr/lib/xtables/libxt_standard.so
+lrwxrwxrwx root root 18 ./usr/lib/xtables/libxt_state.so -> libxt_conntrack.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libxt_statistic.so
+-rwxr-xr-x root root 14624 ./usr/lib/xtables/libxt_string.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libxt_SYNPROXY.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_tcpmss.so
+-rwxr-xr-x root root 14640 ./usr/lib/xtables/libxt_TCPMSS.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libxt_TCPOPTSTRIP.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_tcp.so
+-rwxr-xr-x root root 14640 ./usr/lib/xtables/libxt_TEE.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_time.so
+-rwxr-xr-x root root 14624 ./usr/lib/xtables/libxt_tos.so
+-rwxr-xr-x root root 14640 ./usr/lib/xtables/libxt_TOS.so
+-rwxr-xr-x root root 14840 ./usr/lib/xtables/libxt_TPROXY.so
+-rwxr-xr-x root root 14208 ./usr/lib/xtables/libxt_TRACE.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_u32.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_udp.so
+drwxr-xr-x root root 4096 ./usr/sbin
+lrwxrwxrwx root root 19 ./usr/sbin/addgroup -> /bin/busybox.nosuid
+-rwxr-xr-x root root 26664 ./usr/sbin/addpart
+lrwxrwxrwx root root 19 ./usr/sbin/adduser -> /bin/busybox.nosuid
+-rwxr-xr-x root root 30760 ./usr/sbin/blkdiscard
+-rwxr-xr-x root root 71720 ./usr/sbin/blkzone
+-rwxr-xr-x root root 47136 ./usr/sbin/chcpu
+-rwxr-xr-x root root 59152 ./usr/sbin/chgpasswd
+-rwxr-xr-x root root 55056 ./usr/sbin/chpasswd.shadow
+lrwxrwxrwx root root 25 ./usr/sbin/chpasswd -> /usr/sbin/chpasswd.shadow
+-rwxr-xr-x root root 55464 ./usr/sbin/chroot.coreutils
+lrwxrwxrwx root root 26 ./usr/sbin/chroot -> /usr/sbin/chroot.coreutils
+lrwxrwxrwx root root 19 ./usr/sbin/delgroup -> /bin/busybox.nosuid
+-rwxr-xr-x root root 26664 ./usr/sbin/delpart
+lrwxrwxrwx root root 19 ./usr/sbin/deluser -> /bin/busybox.nosuid
+lrwxrwxrwx root root 19 ./usr/sbin/fbset -> /bin/busybox.nosuid
+-rwxr-xr-x root root 34856 ./usr/sbin/fdformat
+-rwxr-xr-x root root 14368 ./usr/sbin/findfs
+-rwxr-xr-x root root 38984 ./usr/sbin/fsck.cramfs
+lrwxrwxrwx root root 29 ./usr/sbin/fsfreeze -> /usr/sbin/fsfreeze.util-linux
+-rwxr-xr-x root root 14384 ./usr/sbin/fsfreeze.util-linux
+-rwxr-xr-x root root 84336 ./usr/sbin/groupadd
+-rwxr-xr-x root root 75952 ./usr/sbin/groupdel
+-rwxr-xr-x root root 59160 ./usr/sbin/groupmems
+-rwxr-xr-x root root 84272 ./usr/sbin/groupmod
+-rwxr-xr-x root root 59120 ./usr/sbin/grpck
+-rwxr-xr-x root root 54896 ./usr/sbin/grpconv
+-rwxr-xr-x root root 54904 ./usr/sbin/grpunconv
+-rwxr-xr-x root root 30936 ./usr/sbin/iconvconfig
+lrwxrwxrwx root root 20 ./usr/sbin/ip6tables-legacy-restore -> xtables-legacy-multi
+lrwxrwxrwx root root 20 ./usr/sbin/ip6tables-legacy-save -> xtables-legacy-multi
+lrwxrwxrwx root root 20 ./usr/sbin/ip6tables-legacy -> xtables-legacy-multi
+lrwxrwxrwx root root 20 ./usr/sbin/ip6tables-restore -> xtables-legacy-multi
+lrwxrwxrwx root root 20 ./usr/sbin/ip6tables-save -> xtables-legacy-multi
+lrwxrwxrwx root root 20 ./usr/sbin/ip6tables -> xtables-legacy-multi
+lrwxrwxrwx root root 20 ./usr/sbin/iptables-legacy-restore -> xtables-legacy-multi
+lrwxrwxrwx root root 20 ./usr/sbin/iptables-legacy-save -> xtables-legacy-multi
+lrwxrwxrwx root root 20 ./usr/sbin/iptables-legacy -> xtables-legacy-multi
+lrwxrwxrwx root root 20 ./usr/sbin/iptables-restore -> xtables-legacy-multi
+lrwxrwxrwx root root 20 ./usr/sbin/iptables-save -> xtables-legacy-multi
+lrwxrwxrwx root root 20 ./usr/sbin/iptables -> xtables-legacy-multi
+-rwxr-xr-x root root 34856 ./usr/sbin/ldattach
+lrwxrwxrwx root root 19 ./usr/sbin/loadfont -> /bin/busybox.nosuid
+-rwxr-xr-x root root 14288 ./usr/sbin/logoutd
+-rwxr-xr-x root root 14368 ./usr/sbin/mkfs
+-rwxr-xr-x root root 38880 ./usr/sbin/mkfs.cramfs
+-rwxr-xr-x root root 96560 ./usr/sbin/newusers
+-rwxr-xr-x root root 116776 ./usr/sbin/partx
+-rwxr-xr-x root root 55016 ./usr/sbin/pwck
+-rwxr-xr-x root root 50792 ./usr/sbin/pwconv
+-rwxr-xr-x root root 50808 ./usr/sbin/pwunconv
+-rwxr-xr-x root root 14368 ./usr/sbin/raw
+lrwxrwxrwx root root 19 ./usr/sbin/rdate -> /bin/busybox.nosuid
+lrwxrwxrwx root root 32 ./usr/sbin/readprofile -> /usr/sbin/readprofile.util-linux
+-rwxr-xr-x root root 22616 ./usr/sbin/readprofile.util-linux
+-rwxr-xr-x root root 63528 ./usr/sbin/resizepart
+lrwxrwxrwx root root 27 ./usr/sbin/rfkill -> /usr/sbin/rfkill.util-linux
+-rwxr-xr-x root root 47152 ./usr/sbin/rfkill.util-linux
+-rwxr-xr-x root root 47144 ./usr/sbin/rtcwake
+-rwxr-xr-x root root 1986 ./usr/sbin/run-postinsts
+-rwxr-xr-x root root 141352 ./usr/sbin/sfdisk
+-rwxr-xr-x root root 18472 ./usr/sbin/swaplabel
+lrwxrwxrwx root root 19 ./usr/sbin/udhcpd -> /bin/busybox.nosuid
+-rwxr-xr-x root root 5990 ./usr/sbin/update-ca-certificates
+-rwxr-xr-x root root 6365 ./usr/sbin/update-rc.d
+-rwxr-xr-x root root 130136 ./usr/sbin/useradd
+-rwxr-xr-x root root 88328 ./usr/sbin/userdel
+-rwxr-xr-x root root 125880 ./usr/sbin/usermod
+-rwxr-xr-x root root 39032 ./usr/sbin/uuidd
+-rwxr-xr-x root root 47144 ./usr/sbin/wipefs
+-rwxr-xr-x root root 98960 ./usr/sbin/xtables-legacy-multi
+-rwxr-xr-x root root 112792 ./usr/sbin/zramctl
+drwxr-xr-x root root 4096 ./usr/share
+drwxr-xr-x root root 4096 ./usr/share/aclocal
+-rw-r--r-- root root 2221 ./usr/share/aclocal/bison-i18n.m4
+-rw-r--r-- root root 1184 ./usr/share/aclocal/cap-ng.m4
+-rw-r--r-- root root 6337 ./usr/share/aclocal/freetype2.m4
+-rw-r--r-- root root 8316 ./usr/share/aclocal/glib-2.0.m4
+-rw-r--r-- root root 15838 ./usr/share/aclocal/glib-gettext.m4
+-rw-r--r-- root root 3589 ./usr/share/aclocal/gsettings.m4
+-rw-r--r-- root root 5132 ./usr/share/aclocal/introspection.m4
+-rw-r--r-- root root 357 ./usr/share/aclocal/libxml.m4
+-rw-r--r-- root root 428 ./usr/share/aclocal/wayland-scanner.m4
+-rw-r--r-- root root 71315 ./usr/share/aclocal/xorg-macros.m4
+-rw-r--r-- root root 6537 ./usr/share/aclocal/xtrans.m4
+drwxr-xr-x root root 4096 ./usr/share/awk
+-rw-r--r-- root root 383 ./usr/share/awk/assert.awk
+-rw-r--r-- root root 334 ./usr/share/awk/bits2str.awk
+-rw-r--r-- root root 307 ./usr/share/awk/cliff_rand.awk
+-rw-r--r-- root root 234 ./usr/share/awk/ctime.awk
+-rw-r--r-- root root 315 ./usr/share/awk/ftrans.awk
+-rw-r--r-- root root 2202 ./usr/share/awk/getopt.awk
+-rw-r--r-- root root 2491 ./usr/share/awk/gettime.awk
+-rw-r--r-- root root 1765 ./usr/share/awk/group.awk
+-rw-r--r-- root root 221 ./usr/share/awk/have_mpfr.awk
+-rw-r--r-- root root 1992 ./usr/share/awk/inplace.awk
+-rw-r--r-- root root 462 ./usr/share/awk/intdiv0.awk
+-rw-r--r-- root root 378 ./usr/share/awk/join.awk
+-rw-r--r-- root root 238 ./usr/share/awk/libintl.awk
+-rw-r--r-- root root 422 ./usr/share/awk/noassign.awk
+-rw-r--r-- root root 1282 ./usr/share/awk/ns_passwd.awk
+-rw-r--r-- root root 937 ./usr/share/awk/ord.awk
+-rw-r--r-- root root 1199 ./usr/share/awk/passwd.awk
+-rw-r--r-- root root 355 ./usr/share/awk/processarray.awk
+-rw-r--r-- root root 1031 ./usr/share/awk/quicksort.awk
+-rw-r--r-- root root 489 ./usr/share/awk/readable.awk
+-rw-r--r-- root root 267 ./usr/share/awk/readfile.awk
+-rw-r--r-- root root 404 ./usr/share/awk/rewind.awk
+-rw-r--r-- root root 661 ./usr/share/awk/round.awk
+-rw-r--r-- root root 472 ./usr/share/awk/shellquote.awk
+-rw-r--r-- root root 1454 ./usr/share/awk/strtonum.awk
+-rw-r--r-- root root 214 ./usr/share/awk/walkarray.awk
+-rw-r--r-- root root 424 ./usr/share/awk/zerofile.awk
+drwxr-xr-x root root 4096 ./usr/share/bash-completion
+-rw-r--r-- root root 74302 ./usr/share/bash-completion/bash_completion
+drwxr-xr-x root root 4096 ./usr/share/bison
+-rw-r--r-- root root 1147 ./usr/share/bison/bison-default.css
+drwxr-xr-x root root 4096 ./usr/share/bison/m4sugar
+-rw-r--r-- root root 14755 ./usr/share/bison/m4sugar/foreach.m4
+-rw-r--r-- root root 122297 ./usr/share/bison/m4sugar/m4sugar.m4
+-rw-r--r-- root root 6832 ./usr/share/bison/README.md
+drwxr-xr-x root root 4096 ./usr/share/bison/skeletons
+-rw-r--r-- root root 39019 ./usr/share/bison/skeletons/bison.m4
+-rw-r--r-- root root 2404 ./usr/share/bison/skeletons/c-like.m4
+-rw-r--r-- root root 29832 ./usr/share/bison/skeletons/c.m4
+-rw-r--r-- root root 19123 ./usr/share/bison/skeletons/c++.m4
+-rw-r--r-- root root 1163 ./usr/share/bison/skeletons/c-skel.m4
+-rw-r--r-- root root 1169 ./usr/share/bison/skeletons/c++-skel.m4
+-rw-r--r-- root root 9790 ./usr/share/bison/skeletons/d.m4
+-rw-r--r-- root root 1135 ./usr/share/bison/skeletons/d-skel.m4
+-rw-r--r-- root root 87461 ./usr/share/bison/skeletons/glr.c
+-rw-r--r-- root root 11938 ./usr/share/bison/skeletons/glr.cc
+-rw-r--r-- root root 10796 ./usr/share/bison/skeletons/java.m4
+-rw-r--r-- root root 1166 ./usr/share/bison/skeletons/java-skel.m4
+-rw-r--r-- root root 46677 ./usr/share/bison/skeletons/lalr1.cc
+-rw-r--r-- root root 29428 ./usr/share/bison/skeletons/lalr1.d
+-rw-r--r-- root root 34757 ./usr/share/bison/skeletons/lalr1.java
+-rw-r--r-- root root 10331 ./usr/share/bison/skeletons/location.cc
+-rw-r--r-- root root 1898 ./usr/share/bison/skeletons/README-D.txt
+-rw-r--r-- root root 3854 ./usr/share/bison/skeletons/stack.hh
+-rw-r--r-- root root 12992 ./usr/share/bison/skeletons/variant.hh
+-rw-r--r-- root root 66135 ./usr/share/bison/skeletons/yacc.c
+drwxr-xr-x root root 4096 ./usr/share/bison/xslt
+-rw-r--r-- root root 3364 ./usr/share/bison/xslt/bison.xsl
+-rw-r--r-- root root 12820 ./usr/share/bison/xslt/xml2dot.xsl
+-rw-r--r-- root root 18554 ./usr/share/bison/xslt/xml2text.xsl
+-rw-r--r-- root root 22678 ./usr/share/bison/xslt/xml2xhtml.xsl
+drwxr-xr-x root root 4096 ./usr/share/ca-certificates
+drwxr-xr-x root root 12288 ./usr/share/ca-certificates/mozilla
+-rw-r--r-- root root 2772 ./usr/share/ca-certificates/mozilla/ACCVRAIZ1.crt
+-rw-r--r-- root root 1972 ./usr/share/ca-certificates/mozilla/AC_RAIZ_FNMT-RCM.crt
+-rw-r--r-- root root 2049 ./usr/share/ca-certificates/mozilla/Actalis_Authentication_Root_CA.crt
+-rw-r--r-- root root 1521 ./usr/share/ca-certificates/mozilla/AddTrust_External_Root.crt
+-rw-r--r-- root root 1204 ./usr/share/ca-certificates/mozilla/AffirmTrust_Commercial.crt
+-rw-r--r-- root root 1204 ./usr/share/ca-certificates/mozilla/AffirmTrust_Networking.crt
+-rw-r--r-- root root 1891 ./usr/share/ca-certificates/mozilla/AffirmTrust_Premium.crt
+-rw-r--r-- root root 753 ./usr/share/ca-certificates/mozilla/AffirmTrust_Premium_ECC.crt
+-rw-r--r-- root root 1188 ./usr/share/ca-certificates/mozilla/Amazon_Root_CA_1.crt
+-rw-r--r-- root root 1883 ./usr/share/ca-certificates/mozilla/Amazon_Root_CA_2.crt
+-rw-r--r-- root root 656 ./usr/share/ca-certificates/mozilla/Amazon_Root_CA_3.crt
+-rw-r--r-- root root 737 ./usr/share/ca-certificates/mozilla/Amazon_Root_CA_4.crt
+-rw-r--r-- root root 1261 ./usr/share/ca-certificates/mozilla/Atos_TrustedRoot_2011.crt
+-rw-r--r-- root root 2167 ./usr/share/ca-certificates/mozilla/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.crt
+-rw-r--r-- root root 1261 ./usr/share/ca-certificates/mozilla/Baltimore_CyberTrust_Root.crt
+-rw-r--r-- root root 1915 ./usr/share/ca-certificates/mozilla/Buypass_Class_2_Root_CA.crt
+-rw-r--r-- root root 1915 ./usr/share/ca-certificates/mozilla/Buypass_Class_3_Root_CA.crt
+-rw-r--r-- root root 1935 ./usr/share/ca-certificates/mozilla/CA_Disig_Root_R2.crt
+-rw-r--r-- root root 1330 ./usr/share/ca-certificates/mozilla/Certigna.crt
+-rw-r--r-- root root 1992 ./usr/share/ca-certificates/mozilla/Certinomis_-_Root_CA.crt
+-rw-r--r-- root root 1298 ./usr/share/ca-certificates/mozilla/Certplus_Class_2_Primary_CA.crt
+-rw-r--r-- root root 1176 ./usr/share/ca-certificates/mozilla/certSIGN_ROOT_CA.crt
+-rw-r--r-- root root 2078 ./usr/share/ca-certificates/mozilla/Certum_Trusted_Network_CA_2.crt
+-rw-r--r-- root root 1354 ./usr/share/ca-certificates/mozilla/Certum_Trusted_Network_CA.crt
+-rw-r--r-- root root 1984 ./usr/share/ca-certificates/mozilla/CFCA_EV_ROOT.crt
+-rw-r--r-- root root 2594 ./usr/share/ca-certificates/mozilla/Chambers_of_Commerce_Root_-_2008.crt
+-rw-r--r-- root root 1517 ./usr/share/ca-certificates/mozilla/Comodo_AAA_Services_root.crt
+-rw-r--r-- root root 1489 ./usr/share/ca-certificates/mozilla/COMODO_Certification_Authority.crt
+-rw-r--r-- root root 940 ./usr/share/ca-certificates/mozilla/COMODO_ECC_Certification_Authority.crt
+-rw-r--r-- root root 2086 ./usr/share/ca-certificates/mozilla/COMODO_RSA_Certification_Authority.crt
+-rw-r--r-- root root 1318 ./usr/share/ca-certificates/mozilla/Cybertrust_Global_Root.crt
+-rw-r--r-- root root 1318 ./usr/share/ca-certificates/mozilla/Deutsche_Telekom_Root_CA_2.crt
+-rw-r--r-- root root 1350 ./usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_CA.crt
+-rw-r--r-- root root 1306 ./usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_G2.crt
+-rw-r--r-- root root 851 ./usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_G3.crt
+-rw-r--r-- root root 1338 ./usr/share/ca-certificates/mozilla/DigiCert_Global_Root_CA.crt
+-rw-r--r-- root root 1294 ./usr/share/ca-certificates/mozilla/DigiCert_Global_Root_G2.crt
+-rw-r--r-- root root 839 ./usr/share/ca-certificates/mozilla/DigiCert_Global_Root_G3.crt
+-rw-r--r-- root root 1367 ./usr/share/ca-certificates/mozilla/DigiCert_High_Assurance_EV_Root_CA.crt
+-rw-r--r-- root root 1988 ./usr/share/ca-certificates/mozilla/DigiCert_Trusted_Root_G4.crt
+-rw-r--r-- root root 1200 ./usr/share/ca-certificates/mozilla/DST_Root_CA_X3.crt
+-rw-r--r-- root root 1517 ./usr/share/ca-certificates/mozilla/D-TRUST_Root_Class_3_CA_2_2009.crt
+-rw-r--r-- root root 1537 ./usr/share/ca-certificates/mozilla/D-TRUST_Root_Class_3_CA_2_EV_2009.crt
+-rw-r--r-- root root 1911 ./usr/share/ca-certificates/mozilla/EC-ACC.crt
+-rw-r--r-- root root 1452 ./usr/share/ca-certificates/mozilla/EE_Certification_Centre_Root_CA.crt
+-rw-r--r-- root root 1505 ./usr/share/ca-certificates/mozilla/Entrust.net_Premium_2048_Secure_Server_CA.crt
+-rw-r--r-- root root 1643 ./usr/share/ca-certificates/mozilla/Entrust_Root_Certification_Authority.crt
+-rw-r--r-- root root 1090 ./usr/share/ca-certificates/mozilla/Entrust_Root_Certification_Authority_-_EC1.crt
+-rw-r--r-- root root 1533 ./usr/share/ca-certificates/mozilla/Entrust_Root_Certification_Authority_-_G2.crt
+-rw-r--r-- root root 2033 ./usr/share/ca-certificates/mozilla/ePKI_Root_Certification_Authority.crt
+-rw-r--r-- root root 2244 ./usr/share/ca-certificates/mozilla/E-Tugra_Certification_Authority.crt
+-rw-r--r-- root root 1980 ./usr/share/ca-certificates/mozilla/GDCA_TrustAUTH_R5_ROOT.crt
+-rw-r--r-- root root 1216 ./usr/share/ca-certificates/mozilla/GeoTrust_Global_CA.crt
+-rw-r--r-- root root 1269 ./usr/share/ca-certificates/mozilla/GeoTrust_Primary_Certification_Authority.crt
+-rw-r--r-- root root 989 ./usr/share/ca-certificates/mozilla/GeoTrust_Primary_Certification_Authority_-_G2.crt
+-rw-r--r-- root root 1444 ./usr/share/ca-certificates/mozilla/GeoTrust_Primary_Certification_Authority_-_G3.crt
+-rw-r--r-- root root 1939 ./usr/share/ca-certificates/mozilla/GeoTrust_Universal_CA_2.crt
+-rw-r--r-- root root 1935 ./usr/share/ca-certificates/mozilla/GeoTrust_Universal_CA.crt
+-rw-r--r-- root root 2585 ./usr/share/ca-certificates/mozilla/Global_Chambersign_Root_-_2008.crt
+-rw-r--r-- root root 713 ./usr/share/ca-certificates/mozilla/GlobalSign_ECC_Root_CA_-_R4.crt
+-rw-r--r-- root root 794 ./usr/share/ca-certificates/mozilla/GlobalSign_ECC_Root_CA_-_R5.crt
+-rw-r--r-- root root 1261 ./usr/share/ca-certificates/mozilla/GlobalSign_Root_CA.crt
+-rw-r--r-- root root 1354 ./usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R2.crt
+-rw-r--r-- root root 1229 ./usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R3.crt
+-rw-r--r-- root root 1972 ./usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R6.crt
+-rw-r--r-- root root 1448 ./usr/share/ca-certificates/mozilla/Go_Daddy_Class_2_CA.crt
+-rw-r--r-- root root 1367 ./usr/share/ca-certificates/mozilla/Go_Daddy_Root_Certificate_Authority_-_G2.crt
+-rw-r--r-- root root 1017 ./usr/share/ca-certificates/mozilla/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.crt
+-rw-r--r-- root root 1513 ./usr/share/ca-certificates/mozilla/Hellenic_Academic_and_Research_Institutions_RootCA_2011.crt
+-rw-r--r-- root root 2155 ./usr/share/ca-certificates/mozilla/Hellenic_Academic_and_Research_Institutions_RootCA_2015.crt
+-rw-r--r-- root root 1168 ./usr/share/ca-certificates/mozilla/Hongkong_Post_Root_CA_1.crt
+-rw-r--r-- root root 1923 ./usr/share/ca-certificates/mozilla/IdenTrust_Commercial_Root_CA_1.crt
+-rw-r--r-- root root 1931 ./usr/share/ca-certificates/mozilla/IdenTrust_Public_Sector_Root_CA_1.crt
+-rw-r--r-- root root 1939 ./usr/share/ca-certificates/mozilla/ISRG_Root_X1.crt
+-rw-r--r-- root root 2122 ./usr/share/ca-certificates/mozilla/Izenpe.com.crt
+-rw-r--r-- root root 2057 ./usr/share/ca-certificates/mozilla/LuxTrust_Global_Root_2.crt
+-rw-r--r-- root root 1460 ./usr/share/ca-certificates/mozilla/Microsec_e-Szigno_Root_CA_2009.crt
+-rw-r--r-- root root 1476 ./usr/share/ca-certificates/mozilla/NetLock_Arany_=Class_Gold=_Főtanúsítvány.crt
+-rw-r--r-- root root 1411 ./usr/share/ca-certificates/mozilla/Network_Solutions_Certificate_Authority.crt
+-rw-r--r-- root root 1428 ./usr/share/ca-certificates/mozilla/OISTE_WISeKey_Global_Root_GA_CA.crt
+-rw-r--r-- root root 1346 ./usr/share/ca-certificates/mozilla/OISTE_WISeKey_Global_Root_GB_CA.crt
+-rw-r--r-- root root 895 ./usr/share/ca-certificates/mozilla/OISTE_WISeKey_Global_Root_GC_CA.crt
+-rw-r--r-- root root 1923 ./usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_1_G3.crt
+-rw-r--r-- root root 2041 ./usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_2.crt
+-rw-r--r-- root root 1923 ./usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_2_G3.crt
+-rw-r--r-- root root 2354 ./usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_3.crt
+-rw-r--r-- root root 1923 ./usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_3_G3.crt
+-rw-r--r-- root root 2078 ./usr/share/ca-certificates/mozilla/QuoVadis_Root_CA.crt
+-rw-r--r-- root root 1354 ./usr/share/ca-certificates/mozilla/Secure_Global_CA.crt
+-rw-r--r-- root root 1249 ./usr/share/ca-certificates/mozilla/SecureSign_RootCA11.crt
+-rw-r--r-- root root 1350 ./usr/share/ca-certificates/mozilla/SecureTrust_CA.crt
+-rw-r--r-- root root 1261 ./usr/share/ca-certificates/mozilla/Security_Communication_RootCA2.crt
+-rw-r--r-- root root 1224 ./usr/share/ca-certificates/mozilla/Security_Communication_Root_CA.crt
+-rw-r--r-- root root 1143 ./usr/share/ca-certificates/mozilla/Sonera_Class_2_Root_CA.crt
+-rw-r--r-- root root 956 ./usr/share/ca-certificates/mozilla/SSL.com_EV_Root_Certification_Authority_ECC.crt
+-rw-r--r-- root root 2114 ./usr/share/ca-certificates/mozilla/SSL.com_EV_Root_Certification_Authority_RSA_R2.crt
+-rw-r--r-- root root 944 ./usr/share/ca-certificates/mozilla/SSL.com_Root_Certification_Authority_ECC.crt
+-rw-r--r-- root root 2094 ./usr/share/ca-certificates/mozilla/SSL.com_Root_Certification_Authority_RSA.crt
+-rw-r--r-- root root 1948 ./usr/share/ca-certificates/mozilla/Staat_der_Nederlanden_EV_Root_CA.crt
+-rw-r--r-- root root 2069 ./usr/share/ca-certificates/mozilla/Staat_der_Nederlanden_Root_CA_-_G2.crt
+-rw-r--r-- root root 1952 ./usr/share/ca-certificates/mozilla/Staat_der_Nederlanden_Root_CA_-_G3.crt
+-rw-r--r-- root root 1468 ./usr/share/ca-certificates/mozilla/Starfield_Class_2_CA.crt
+-rw-r--r-- root root 1399 ./usr/share/ca-certificates/mozilla/Starfield_Root_Certificate_Authority_-_G2.crt
+-rw-r--r-- root root 1424 ./usr/share/ca-certificates/mozilla/Starfield_Services_Root_Certificate_Authority_-_G2.crt
+-rw-r--r-- root root 2045 ./usr/share/ca-certificates/mozilla/SwissSign_Gold_CA_-_G2.crt
+-rw-r--r-- root root 2049 ./usr/share/ca-certificates/mozilla/SwissSign_Silver_CA_-_G2.crt
+-rw-r--r-- root root 1257 ./usr/share/ca-certificates/mozilla/SZAFIR_ROOT_CA2.crt
+-rw-r--r-- root root 1948 ./usr/share/ca-certificates/mozilla/Taiwan_GRCA.crt
+-rw-r--r-- root root 1870 ./usr/share/ca-certificates/mozilla/TeliaSonera_Root_CA_v1.crt
+-rw-r--r-- root root 1493 ./usr/share/ca-certificates/mozilla/thawte_Primary_Root_CA.crt
+-rw-r--r-- root root 940 ./usr/share/ca-certificates/mozilla/thawte_Primary_Root_CA_-_G2.crt
+-rw-r--r-- root root 1505 ./usr/share/ca-certificates/mozilla/thawte_Primary_Root_CA_-_G3.crt
+-rw-r--r-- root root 1493 ./usr/share/ca-certificates/mozilla/TrustCor_ECA-1.crt
+-rw-r--r-- root root 1513 ./usr/share/ca-certificates/mozilla/TrustCor_RootCert_CA-1.crt
+-rw-r--r-- root root 2204 ./usr/share/ca-certificates/mozilla/TrustCor_RootCert_CA-2.crt
+-rw-r--r-- root root 1241 ./usr/share/ca-certificates/mozilla/Trustis_FPS_Root_CA.crt
+-rw-r--r-- root root 1367 ./usr/share/ca-certificates/mozilla/T-TeleSec_GlobalRoot_Class_2.crt
+-rw-r--r-- root root 1367 ./usr/share/ca-certificates/mozilla/T-TeleSec_GlobalRoot_Class_3.crt
+-rw-r--r-- root root 1582 ./usr/share/ca-certificates/mozilla/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.crt
+-rw-r--r-- root root 1883 ./usr/share/ca-certificates/mozilla/TWCA_Global_Root_CA.crt
+-rw-r--r-- root root 1269 ./usr/share/ca-certificates/mozilla/TWCA_Root_Certification_Authority.crt
+-rw-r--r-- root root 948 ./usr/share/ca-certificates/mozilla/USERTrust_ECC_Certification_Authority.crt
+-rw-r--r-- root root 2094 ./usr/share/ca-certificates/mozilla/USERTrust_RSA_Certification_Authority.crt
+-rw-r--r-- root root 1484 ./usr/share/ca-certificates/mozilla/Verisign_Class_3_Public_Primary_Certification_Authority_-_G3.crt
+-rw-r--r-- root root 1281 ./usr/share/ca-certificates/mozilla/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G4.crt
+-rw-r--r-- root root 1732 ./usr/share/ca-certificates/mozilla/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G5.crt
+-rw-r--r-- root root 1700 ./usr/share/ca-certificates/mozilla/VeriSign_Universal_Root_Certification_Authority.crt
+-rw-r--r-- root root 1513 ./usr/share/ca-certificates/mozilla/XRamp_Global_CA_Root.crt
+drwxr-xr-x root root 4096 ./usr/share/cmake
+drwxr-xr-x root root 4096 ./usr/share/cmake/bash-completion
+-rw-r--r-- root root 393 ./usr/share/cmake/bash-completion/bash-completion-config.cmake
+-rw-r--r-- root root 252 ./usr/share/cmake/bash-completion/bash-completion-config-version.cmake
+drwxr-xr-x root root 4096 ./usr/share/dbus-1
+drwxr-xr-x root root 4096 ./usr/share/dbus-1/services
+-rw-r--r-- root root 3561 ./usr/share/dbus-1/session.conf
+drwxr-xr-x root root 4096 ./usr/share/dbus-1/session.d
+-rw-r--r-- root root 5692 ./usr/share/dbus-1/system.conf
+drwxr-xr-x root root 4096 ./usr/share/dbus-1/system.d
+drwxr-xr-x root root 4096 ./usr/share/dbus-1/system-services
+drwxr-xr-x root root 4096 ./usr/share/dict
+drwxr-xr-x root root 4096 ./usr/share/drirc.d
+-rw-r--r-- root root 27422 ./usr/share/drirc.d/00-mesa-defaults.conf
+drwxr-xr-x root root 4096 ./usr/share/et
+-rw-r--r-- root root 6485 ./usr/share/et/et_c.awk
+-rw-r--r-- root root 4539 ./usr/share/et/et_h.awk
+drwxr-xr-x root root 4096 ./usr/share/fontconfig
+drwxr-xr-x root root 4096 ./usr/share/fontconfig/conf.avail
+-rw-r--r-- root root 706 ./usr/share/fontconfig/conf.avail/10-autohint.conf
+-rw-r--r-- root root 692 ./usr/share/fontconfig/conf.avail/10-hinting-full.conf
+-rw-r--r-- root root 696 ./usr/share/fontconfig/conf.avail/10-hinting-medium.conf
+-rw-r--r-- root root 692 ./usr/share/fontconfig/conf.avail/10-hinting-none.conf
+-rw-r--r-- root root 696 ./usr/share/fontconfig/conf.avail/10-hinting-slight.conf
+-rw-r--r-- root root 723 ./usr/share/fontconfig/conf.avail/10-no-sub-pixel.conf
+-rw-r--r-- root root 2228 ./usr/share/fontconfig/conf.avail/10-scale-bitmap-fonts.conf
+-rw-r--r-- root root 748 ./usr/share/fontconfig/conf.avail/10-sub-pixel-bgr.conf
+-rw-r--r-- root root 748 ./usr/share/fontconfig/conf.avail/10-sub-pixel-rgb.conf
+-rw-r--r-- root root 758 ./usr/share/fontconfig/conf.avail/10-sub-pixel-vbgr.conf
+-rw-r--r-- root root 758 ./usr/share/fontconfig/conf.avail/10-sub-pixel-vrgb.conf
+-rw-r--r-- root root 701 ./usr/share/fontconfig/conf.avail/10-unhinted.conf
+-rw-r--r-- root root 771 ./usr/share/fontconfig/conf.avail/11-lcdfilter-default.conf
+-rw-r--r-- root root 768 ./usr/share/fontconfig/conf.avail/11-lcdfilter-legacy.conf
+-rw-r--r-- root root 765 ./usr/share/fontconfig/conf.avail/11-lcdfilter-light.conf
+-rw-r--r-- root root 1537 ./usr/share/fontconfig/conf.avail/20-unhint-small-vera.conf
+-rw-r--r-- root root 3489 ./usr/share/fontconfig/conf.avail/25-unhint-nonlatin.conf
+-rw-r--r-- root root 13274 ./usr/share/fontconfig/conf.avail/30-metric-aliases.conf
+-rw-r--r-- root root 5424 ./usr/share/fontconfig/conf.avail/40-nonlatin.conf
+-rw-r--r-- root root 3543 ./usr/share/fontconfig/conf.avail/45-generic.conf
+-rw-r--r-- root root 6600 ./usr/share/fontconfig/conf.avail/45-latin.conf
+-rw-r--r-- root root 799 ./usr/share/fontconfig/conf.avail/49-sansserif.conf
+-rw-r--r-- root root 911 ./usr/share/fontconfig/conf.avail/50-user.conf
+-rw-r--r-- root root 423 ./usr/share/fontconfig/conf.avail/51-local.conf
+-rw-r--r-- root root 2041 ./usr/share/fontconfig/conf.avail/60-generic.conf
+-rw-r--r-- root root 2068 ./usr/share/fontconfig/conf.avail/60-latin.conf
+-rw-r--r-- root root 10293 ./usr/share/fontconfig/conf.avail/65-fonts-persian.conf
+-rw-r--r-- root root 464 ./usr/share/fontconfig/conf.avail/65-khmer.conf
+-rw-r--r-- root root 8170 ./usr/share/fontconfig/conf.avail/65-nonlatin.conf
+-rw-r--r-- root root 847 ./usr/share/fontconfig/conf.avail/69-unifont.conf
+-rw-r--r-- root root 487 ./usr/share/fontconfig/conf.avail/70-no-bitmaps.conf
+-rw-r--r-- root root 487 ./usr/share/fontconfig/conf.avail/70-yes-bitmaps.conf
+-rw-r--r-- root root 597 ./usr/share/fontconfig/conf.avail/80-delicious.conf
+-rw-r--r-- root root 1917 ./usr/share/fontconfig/conf.avail/90-synthetic.conf
+drwxr-xr-x root root 4096 ./usr/share/gettext
+drwxr-xr-x root root 4096 ./usr/share/gettext/its
+-rw-r--r-- root root 189 ./usr/share/gettext/its/fontconfig.its
+-rw-r--r-- root root 189 ./usr/share/gettext/its/fontconfig.loc
+-rw-r--r-- root root 1048 ./usr/share/gettext/its/gschema.its
+-rw-r--r-- root root 333 ./usr/share/gettext/its/gschema.loc
+drwxr-xr-x root root 4096 ./usr/share/gir-1.0
+-rw-r--r-- root root 23723 ./usr/share/gir-1.0/cairo-1.0.gir
+-rw-r--r-- root root 1185 ./usr/share/gir-1.0/DBus-1.0.gir
+-rw-r--r-- root root 797 ./usr/share/gir-1.0/DBusGLib-1.0.gir
+-rw-r--r-- root root 620 ./usr/share/gir-1.0/fontconfig-2.0.gir
+-rw-r--r-- root root 768 ./usr/share/gir-1.0/freetype2-2.0.gir
+-rw-r--r-- root root 6332887 ./usr/share/gir-1.0/Gio-2.0.gir
+-rw-r--r-- root root 29235 ./usr/share/gir-1.0/gir-1.2.rnc
+-rw-r--r-- root root 324506 ./usr/share/gir-1.0/GIRepository-2.0.gir
+-rw-r--r-- root root 1122 ./usr/share/gir-1.0/GL-1.0.gir
+-rw-r--r-- root root 3544680 ./usr/share/gir-1.0/GLib-2.0.gir
+-rw-r--r-- root root 19691 ./usr/share/gir-1.0/GModule-2.0.gir
+-rw-r--r-- root root 1247584 ./usr/share/gir-1.0/GObject-2.0.gir
+-rw-r--r-- root root 938 ./usr/share/gir-1.0/libxml2-2.0.gir
+-rw-r--r-- root root 65349 ./usr/share/gir-1.0/Vulkan-1.0.gir
+-rw-r--r-- root root 611 ./usr/share/gir-1.0/win32-1.0.gir
+-rw-r--r-- root root 361 ./usr/share/gir-1.0/xfixes-4.0.gir
+-rw-r--r-- root root 745 ./usr/share/gir-1.0/xft-2.0.gir
+-rw-r--r-- root root 2325 ./usr/share/gir-1.0/xlib-2.0.gir
+-rw-r--r-- root root 808 ./usr/share/gir-1.0/xrandr-1.3.gir
+drwxr-xr-x root root 4096 ./usr/share/glib-2.0
+drwxr-xr-x root root 4096 ./usr/share/glib-2.0/gettext
+drwxr-xr-x root root 4096 ./usr/share/glib-2.0/gettext/po
+-rw-r--r-- root root 8076 ./usr/share/glib-2.0/gettext/po/Makefile.in.in
+drwxr-xr-x root root 4096 ./usr/share/glib-2.0/schemas
+-rw-r--r-- root root 2916 ./usr/share/glib-2.0/schemas/gschema.dtd
+drwxr-xr-x root root 4096 ./usr/share/glib-2.0/valgrind
+-rw-r--r-- root root 15263 ./usr/share/glib-2.0/valgrind/glib.supp
+drwxr-xr-x root root 4096 ./usr/share/gobject-introspection-1.0
+-rw-r--r-- root root 15228 ./usr/share/gobject-introspection-1.0/gdump.c
+-rw-r--r-- root root 7177 ./usr/share/gobject-introspection-1.0/Makefile.introspection
+drwxr-xr-x root root 4096 ./usr/share/info
+drwxr-xr-x root root 4096 ./usr/share/libdrm
+-rw-r--r-- root root 7547 ./usr/share/libdrm/amdgpu.ids
+drwxr-xr-x root root 4096 ./usr/share/man
+drwxr-xr-x root root 4096 ./usr/share/mime
+-rw-r--r-- root root 10777 ./usr/share/mime/aliases
+drwxr-xr-x root root 20480 ./usr/share/mime/application
+-rw-r--r-- root root 2700 ./usr/share/mime/application/andrew-inset.xml
+-rw-r--r-- root root 3200 ./usr/share/mime/application/annodex.xml
+-rw-r--r-- root root 3123 ./usr/share/mime/application/atom+xml.xml
+-rw-r--r-- root root 3009 ./usr/share/mime/application/dicom.xml
+-rw-r--r-- root root 3299 ./usr/share/mime/application/ecmascript.xml
+-rw-r--r-- root root 3513 ./usr/share/mime/application/epub+zip.xml
+-rw-r--r-- root root 2263 ./usr/share/mime/application/geo+json.xml
+-rw-r--r-- root root 2304 ./usr/share/mime/application/gml+xml.xml
+-rw-r--r-- root root 3264 ./usr/share/mime/application/gnunet-directory.xml
+-rw-r--r-- root root 2354 ./usr/share/mime/application/gpx+xml.xml
+-rw-r--r-- root root 2813 ./usr/share/mime/application/gzip.xml
+-rw-r--r-- root root 3757 ./usr/share/mime/application/illustrator.xml
+-rw-r--r-- root root 3404 ./usr/share/mime/application/javascript.xml
+-rw-r--r-- root root 2140 ./usr/share/mime/application/jrd+json.xml
+-rw-r--r-- root root 1993 ./usr/share/mime/application/json-patch+json.xml
+-rw-r--r-- root root 2281 ./usr/share/mime/application/json.xml
+-rw-r--r-- root root 2255 ./usr/share/mime/application/ld+json.xml
+-rw-r--r-- root root 4240 ./usr/share/mime/application/mac-binhex40.xml
+-rw-r--r-- root root 1136 ./usr/share/mime/application/mathematica.xml
+-rw-r--r-- root root 3328 ./usr/share/mime/application/mathml+xml.xml
+-rw-r--r-- root root 3112 ./usr/share/mime/application/mbox.xml
+-rw-r--r-- root root 2759 ./usr/share/mime/application/metalink4+xml.xml
+-rw-r--r-- root root 2761 ./usr/share/mime/application/metalink+xml.xml
+-rw-r--r-- root root 2925 ./usr/share/mime/application/msword-template.xml
+-rw-r--r-- root root 3057 ./usr/share/mime/application/msword.xml
+-rw-r--r-- root root 2615 ./usr/share/mime/application/mxf.xml
+-rw-r--r-- root root 2687 ./usr/share/mime/application/octet-stream.xml
+-rw-r--r-- root root 3111 ./usr/share/mime/application/oda.xml
+-rw-r--r-- root root 3393 ./usr/share/mime/application/ogg.xml
+-rw-r--r-- root root 2057 ./usr/share/mime/application/owl+xml.xml
+-rw-r--r-- root root 3059 ./usr/share/mime/application/oxps.xml
+-rw-r--r-- root root 3131 ./usr/share/mime/application/pdf.xml
+-rw-r--r-- root root 4545 ./usr/share/mime/application/pgp-encrypted.xml
+-rw-r--r-- root root 3138 ./usr/share/mime/application/pgp-keys.xml
+-rw-r--r-- root root 3716 ./usr/share/mime/application/pgp-signature.xml
+-rw-r--r-- root root 3686 ./usr/share/mime/application/pkcs10.xml
+-rw-r--r-- root root 3703 ./usr/share/mime/application/pkcs12.xml
+-rw-r--r-- root root 1090 ./usr/share/mime/application/pkcs7-mime.xml
+-rw-r--r-- root root 3684 ./usr/share/mime/application/pkcs7-signature.xml
+-rw-r--r-- root root 2231 ./usr/share/mime/application/pkcs8-encrypted.xml
+-rw-r--r-- root root 2936 ./usr/share/mime/application/pkcs8.xml
+-rw-r--r-- root root 2674 ./usr/share/mime/application/pkix-cert.xml
+-rw-r--r-- root root 1120 ./usr/share/mime/application/pkix-crl.xml
+-rw-r--r-- root root 3306 ./usr/share/mime/application/pkix-pkipath.xml
+-rw-r--r-- root root 1110 ./usr/share/mime/application/postscript.xml
+-rw-r--r-- root root 3011 ./usr/share/mime/application/prs.plucker.xml
+-rw-r--r-- root root 1992 ./usr/share/mime/application/raml+yaml.xml
+-rw-r--r-- root root 1115 ./usr/share/mime/application/ram.xml
+-rw-r--r-- root root 2800 ./usr/share/mime/application/rdf+xml.xml
+-rw-r--r-- root root 2940 ./usr/share/mime/application/relax-ng-compact-syntax.xml
+-rw-r--r-- root root 2927 ./usr/share/mime/application/rss+xml.xml
+-rw-r--r-- root root 2954 ./usr/share/mime/application/rtf.xml
+-rw-r--r-- root root 3857 ./usr/share/mime/application/sdp.xml
+-rw-r--r-- root root 3701 ./usr/share/mime/application/sieve.xml
+-rw-r--r-- root root 3131 ./usr/share/mime/application/smil+xml.xml
+-rw-r--r-- root root 2733 ./usr/share/mime/application/sql.xml
+-rw-r--r-- root root 2434 ./usr/share/mime/application/trig.xml
+-rw-r--r-- root root 3433 ./usr/share/mime/application/vnd.adobe.flash.movie.xml
+-rw-r--r-- root root 432 ./usr/share/mime/application/vnd.amazon.mobi8-ebook.xml
+-rw-r--r-- root root 2605 ./usr/share/mime/application/vnd.android.package-archive.xml
+-rw-r--r-- root root 2358 ./usr/share/mime/application/vnd.appimage.xml
+-rw-r--r-- root root 3597 ./usr/share/mime/application/vnd.apple.mpegurl.xml
+-rw-r--r-- root root 3598 ./usr/share/mime/application/vnd.chess-pgn.xml
+-rw-r--r-- root root 2381 ./usr/share/mime/application/vnd.coffeescript.xml
+-rw-r--r-- root root 3230 ./usr/share/mime/application/vnd.comicbook-rar.xml
+-rw-r--r-- root root 3226 ./usr/share/mime/application/vnd.comicbook+zip.xml
+-rw-r--r-- root root 3655 ./usr/share/mime/application/vnd.corel-draw.xml
+-rw-r--r-- root root 3205 ./usr/share/mime/application/vnd.debian.binary-package.xml
+-rw-r--r-- root root 3403 ./usr/share/mime/application/vnd.emusic-emusic_package.xml
+-rw-r--r-- root root 2211 ./usr/share/mime/application/vnd.flatpak.ref.xml
+-rw-r--r-- root root 2273 ./usr/share/mime/application/vnd.flatpak.repo.xml
+-rw-r--r-- root root 2279 ./usr/share/mime/application/vnd.flatpak.xml
+-rw-r--r-- root root 3675 ./usr/share/mime/application/vnd.framemaker.xml
+-rw-r--r-- root root 3051 ./usr/share/mime/application/vnd.google-earth.kml+xml.xml
+-rw-r--r-- root root 3579 ./usr/share/mime/application/vnd.google-earth.kmz.xml
+-rw-r--r-- root root 2820 ./usr/share/mime/application/vnd.hp-hpgl.xml
+-rw-r--r-- root root 2769 ./usr/share/mime/application/vnd.hp-pcl.xml
+-rw-r--r-- root root 2536 ./usr/share/mime/application/vnd.iccprofile.xml
+-rw-r--r-- root root 3991 ./usr/share/mime/application/vnd.lotus-1-2-3.xml
+-rw-r--r-- root root 1142 ./usr/share/mime/application/vnd.lotus-wordpro.xml
+-rw-r--r-- root root 3540 ./usr/share/mime/application/vnd.mozilla.xul+xml.xml
+-rw-r--r-- root root 3419 ./usr/share/mime/application/vnd.ms-access.xml
+-rw-r--r-- root root 2921 ./usr/share/mime/application/vnd.ms-asf.xml
+-rw-r--r-- root root 3299 ./usr/share/mime/application/vnd.ms-cab-compressed.xml
+-rw-r--r-- root root 2619 ./usr/share/mime/application/vnd.ms-excel.addin.macroenabled.12.xml
+-rw-r--r-- root root 3407 ./usr/share/mime/application/vnd.ms-excel.sheet.binary.macroenabled.12.xml
+-rw-r--r-- root root 3330 ./usr/share/mime/application/vnd.ms-excel.sheet.macroenabled.12.xml
+-rw-r--r-- root root 2685 ./usr/share/mime/application/vnd.ms-excel.template.macroenabled.12.xml
+-rw-r--r-- root root 3525 ./usr/share/mime/application/vnd.ms-excel.xml
+-rw-r--r-- root root 3011 ./usr/share/mime/application/vnd.ms-htmlhelp.xml
+-rw-r--r-- root root 2734 ./usr/share/mime/application/vnd.ms-powerpoint.addin.macroenabled.12.xml
+-rw-r--r-- root root 3491 ./usr/share/mime/application/vnd.ms-powerpoint.presentation.macroenabled.12.xml
+-rw-r--r-- root root 2420 ./usr/share/mime/application/vnd.ms-powerpoint.slide.macroenabled.12.xml
+-rw-r--r-- root root 3485 ./usr/share/mime/application/vnd.ms-powerpoint.slideshow.macroenabled.12.xml
+-rw-r--r-- root root 2906 ./usr/share/mime/application/vnd.ms-powerpoint.template.macroenabled.12.xml
+-rw-r--r-- root root 3569 ./usr/share/mime/application/vnd.ms-powerpoint.xml
+-rw-r--r-- root root 2757 ./usr/share/mime/application/vnd.ms-publisher.xml
+-rw-r--r-- root root 2977 ./usr/share/mime/application/vnd.ms-tnef.xml
+-rw-r--r-- root root 1161 ./usr/share/mime/application/vnd.ms-visio.drawing.macroenabled.main+xml.xml
+-rw-r--r-- root root 1148 ./usr/share/mime/application/vnd.ms-visio.drawing.main+xml.xml
+-rw-r--r-- root root 1163 ./usr/share/mime/application/vnd.ms-visio.stencil.macroenabled.main+xml.xml
+-rw-r--r-- root root 1150 ./usr/share/mime/application/vnd.ms-visio.stencil.main+xml.xml
+-rw-r--r-- root root 1226 ./usr/share/mime/application/vnd.ms-visio.template.macroenabled.main+xml.xml
+-rw-r--r-- root root 1213 ./usr/share/mime/application/vnd.ms-visio.template.main+xml.xml
+-rw-r--r-- root root 3004 ./usr/share/mime/application/vnd.ms-word.document.macroenabled.12.xml
+-rw-r--r-- root root 2541 ./usr/share/mime/application/vnd.ms-word.template.macroenabled.12.xml
+-rw-r--r-- root root 3639 ./usr/share/mime/application/vnd.ms-works.xml
+-rw-r--r-- root root 3039 ./usr/share/mime/application/vnd.ms-wpl.xml
+-rw-r--r-- root root 2927 ./usr/share/mime/application/vnd.nintendo.snes.rom.xml
+-rw-r--r-- root root 2760 ./usr/share/mime/application/vnd.oasis.opendocument.chart-template.xml
+-rw-r--r-- root root 2879 ./usr/share/mime/application/vnd.oasis.opendocument.chart.xml
+-rw-r--r-- root root 3262 ./usr/share/mime/application/vnd.oasis.opendocument.database.xml
+-rw-r--r-- root root 2776 ./usr/share/mime/application/vnd.oasis.opendocument.formula-template.xml
+-rw-r--r-- root root 2954 ./usr/share/mime/application/vnd.oasis.opendocument.formula.xml
+-rw-r--r-- root root 3235 ./usr/share/mime/application/vnd.oasis.opendocument.graphics-flat-xml.xml
+-rw-r--r-- root root 2958 ./usr/share/mime/application/vnd.oasis.opendocument.graphics-template.xml
+-rw-r--r-- root root 2918 ./usr/share/mime/application/vnd.oasis.opendocument.graphics.xml
+-rw-r--r-- root root 2956 ./usr/share/mime/application/vnd.oasis.opendocument.image.xml
+-rw-r--r-- root root 3480 ./usr/share/mime/application/vnd.oasis.opendocument.presentation-flat-xml.xml
+-rw-r--r-- root root 2974 ./usr/share/mime/application/vnd.oasis.opendocument.presentation-template.xml
+-rw-r--r-- root root 3204 ./usr/share/mime/application/vnd.oasis.opendocument.presentation.xml
+-rw-r--r-- root root 3506 ./usr/share/mime/application/vnd.oasis.opendocument.spreadsheet-flat-xml.xml
+-rw-r--r-- root root 2970 ./usr/share/mime/application/vnd.oasis.opendocument.spreadsheet-template.xml
+-rw-r--r-- root root 3226 ./usr/share/mime/application/vnd.oasis.opendocument.spreadsheet.xml
+-rw-r--r-- root root 3352 ./usr/share/mime/application/vnd.oasis.opendocument.text-flat-xml.xml
+-rw-r--r-- root root 3033 ./usr/share/mime/application/vnd.oasis.opendocument.text-master.xml
+-rw-r--r-- root root 2956 ./usr/share/mime/application/vnd.oasis.opendocument.text-template.xml
+-rw-r--r-- root root 2925 ./usr/share/mime/application/vnd.oasis.opendocument.text-web.xml
+-rw-r--r-- root root 3024 ./usr/share/mime/application/vnd.oasis.opendocument.text.xml
+-rw-r--r-- root root 3524 ./usr/share/mime/application/vnd.openofficeorg.extension.xml
+-rw-r--r-- root root 3394 ./usr/share/mime/application/vnd.openxmlformats-officedocument.presentationml.presentation.xml
+-rw-r--r-- root root 3257 ./usr/share/mime/application/vnd.openxmlformats-officedocument.presentationml.slideshow.xml
+-rw-r--r-- root root 2932 ./usr/share/mime/application/vnd.openxmlformats-officedocument.presentationml.slide.xml
+-rw-r--r-- root root 3563 ./usr/share/mime/application/vnd.openxmlformats-officedocument.presentationml.template.xml
+-rw-r--r-- root root 3250 ./usr/share/mime/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.xml
+-rw-r--r-- root root 3378 ./usr/share/mime/application/vnd.openxmlformats-officedocument.spreadsheetml.template.xml
+-rw-r--r-- root root 2957 ./usr/share/mime/application/vnd.openxmlformats-officedocument.wordprocessingml.document.xml
+-rw-r--r-- root root 3210 ./usr/share/mime/application/vnd.openxmlformats-officedocument.wordprocessingml.template.xml
+-rw-r--r-- root root 3457 ./usr/share/mime/application/vnd.palm.xml
+-rw-r--r-- root root 2983 ./usr/share/mime/application/vnd.rar.xml
+-rw-r--r-- root root 3320 ./usr/share/mime/application/vnd.rn-realmedia.xml
+-rw-r--r-- root root 1759 ./usr/share/mime/application/vnd.snap.xml
+-rw-r--r-- root root 3196 ./usr/share/mime/application/vnd.sqlite3.xml
+-rw-r--r-- root root 1139 ./usr/share/mime/application/vnd.squashfs.xml
+-rw-r--r-- root root 3467 ./usr/share/mime/application/vnd.stardivision.calc.xml
+-rw-r--r-- root root 3228 ./usr/share/mime/application/vnd.stardivision.chart.xml
+-rw-r--r-- root root 3156 ./usr/share/mime/application/vnd.stardivision.draw.xml
+-rw-r--r-- root root 3619 ./usr/share/mime/application/vnd.stardivision.impress.xml
+-rw-r--r-- root root 3181 ./usr/share/mime/application/vnd.stardivision.mail.xml
+-rw-r--r-- root root 3090 ./usr/share/mime/application/vnd.stardivision.math.xml
+-rw-r--r-- root root 3489 ./usr/share/mime/application/vnd.stardivision.writer.xml
+-rw-r--r-- root root 3534 ./usr/share/mime/application/vnd.sun.xml.calc.template.xml
+-rw-r--r-- root root 3762 ./usr/share/mime/application/vnd.sun.xml.calc.xml
+-rw-r--r-- root root 3513 ./usr/share/mime/application/vnd.sun.xml.draw.template.xml
+-rw-r--r-- root root 3438 ./usr/share/mime/application/vnd.sun.xml.draw.xml
+-rw-r--r-- root root 3704 ./usr/share/mime/application/vnd.sun.xml.impress.template.xml
+-rw-r--r-- root root 4000 ./usr/share/mime/application/vnd.sun.xml.impress.xml
+-rw-r--r-- root root 3488 ./usr/share/mime/application/vnd.sun.xml.math.xml
+-rw-r--r-- root root 4341 ./usr/share/mime/application/vnd.sun.xml.writer.global.xml
+-rw-r--r-- root root 3819 ./usr/share/mime/application/vnd.sun.xml.writer.template.xml
+-rw-r--r-- root root 3800 ./usr/share/mime/application/vnd.sun.xml.writer.xml
+-rw-r--r-- root root 2835 ./usr/share/mime/application/vnd.symbian.install.xml
+-rw-r--r-- root root 1126 ./usr/share/mime/application/vnd.tcpdump.pcap.xml
+-rw-r--r-- root root 3046 ./usr/share/mime/application/vnd.visio.xml
+-rw-r--r-- root root 3633 ./usr/share/mime/application/vnd.wordperfect.xml
+-rw-r--r-- root root 1189 ./usr/share/mime/application/vnd.youtube.yt.xml
+-rw-r--r-- root root 2575 ./usr/share/mime/application/winhlp.xml
+-rw-r--r-- root root 2942 ./usr/share/mime/application/x-7z-compressed.xml
+-rw-r--r-- root root 3303 ./usr/share/mime/application/x-abiword.xml
+-rw-r--r-- root root 2785 ./usr/share/mime/application/x-ace.xml
+-rw-r--r-- root root 2890 ./usr/share/mime/application/x-alz.xml
+-rw-r--r-- root root 2185 ./usr/share/mime/application/x-amiga-disk-format.xml
+-rw-r--r-- root root 3479 ./usr/share/mime/application/x-amipro.xml
+-rw-r--r-- root root 3122 ./usr/share/mime/application/x-aportisdoc.xml
+-rw-r--r-- root root 2699 ./usr/share/mime/application/x-apple-diskimage.xml
+-rw-r--r-- root root 346 ./usr/share/mime/application/x-appleworks-document.xml
+-rw-r--r-- root root 3940 ./usr/share/mime/application/x-applix-spreadsheet.xml
+-rw-r--r-- root root 3574 ./usr/share/mime/application/x-applix-word.xml
+-rw-r--r-- root root 2804 ./usr/share/mime/application/x-archive.xml
+-rw-r--r-- root root 2759 ./usr/share/mime/application/x-arc.xml
+-rw-r--r-- root root 3010 ./usr/share/mime/application/x-arj.xml
+-rw-r--r-- root root 2899 ./usr/share/mime/application/x-asp.xml
+-rw-r--r-- root root 1019 ./usr/share/mime/application/x-atari-2600-rom.xml
+-rw-r--r-- root root 1019 ./usr/share/mime/application/x-atari-7800-rom.xml
+-rw-r--r-- root root 1021 ./usr/share/mime/application/x-atari-lynx-rom.xml
+-rw-r--r-- root root 3084 ./usr/share/mime/application/x-awk.xml
+-rw-r--r-- root root 3225 ./usr/share/mime/application/x-bcpio.xml
+-rw-r--r-- root root 3540 ./usr/share/mime/application/x-bittorrent.xml
+-rw-r--r-- root root 3102 ./usr/share/mime/application/x-blender.xml
+-rw-r--r-- root root 2357 ./usr/share/mime/application/x-bsdiff.xml
+-rw-r--r-- root root 4099 ./usr/share/mime/application/x-bzdvi.xml
+-rw-r--r-- root root 3945 ./usr/share/mime/application/x-bzip-compressed-tar.xml
+-rw-r--r-- root root 2986 ./usr/share/mime/application/x-bzip.xml
+-rw-r--r-- root root 3880 ./usr/share/mime/application/x-bzpdf.xml
+-rw-r--r-- root root 4236 ./usr/share/mime/application/x-bzpostscript.xml
+-rw-r--r-- root root 3190 ./usr/share/mime/application/x-cb7.xml
+-rw-r--r-- root root 3180 ./usr/share/mime/application/x-cbt.xml
+-rw-r--r-- root root 2858 ./usr/share/mime/application/x-ccmx.xml
+-rw-r--r-- root root 3292 ./usr/share/mime/application/x-cd-image.xml
+-rw-r--r-- root root 3136 ./usr/share/mime/application/x-cdrdao-toc.xml
+-rw-r--r-- root root 1099 ./usr/share/mime/application/x-cisco-vpn-settings.xml
+-rw-r--r-- root root 3042 ./usr/share/mime/application/x-class-file.xml
+-rw-r--r-- root root 3786 ./usr/share/mime/application/x-compressed-tar.xml
+-rw-r--r-- root root 3414 ./usr/share/mime/application/x-compress.xml
+-rw-r--r-- root root 3630 ./usr/share/mime/application/x-core.xml
+-rw-r--r-- root root 4192 ./usr/share/mime/application/x-cpio-compressed.xml
+-rw-r--r-- root root 3028 ./usr/share/mime/application/x-cpio.xml
+-rw-r--r-- root root 3273 ./usr/share/mime/application/x-csh.xml
+-rw-r--r-- root root 3240 ./usr/share/mime/application/x-cue.xml
+-rw-r--r-- root root 2785 ./usr/share/mime/application/x-dar.xml
+-rw-r--r-- root root 3031 ./usr/share/mime/application/x-dbf.xml
+-rw-r--r-- root root 1136 ./usr/share/mime/application/x-dc-rom.xml
+-rw-r--r-- root root 1241 ./usr/share/mime/application/x-designer.xml
+-rw-r--r-- root root 3922 ./usr/share/mime/application/x-desktop.xml
+-rw-r--r-- root root 3052 ./usr/share/mime/application/x-dia-diagram.xml
+-rw-r--r-- root root 2405 ./usr/share/mime/application/x-dia-shape.xml
+-rw-r--r-- root root 3273 ./usr/share/mime/application/x-docbook+xml.xml
+-rw-r--r-- root root 1051 ./usr/share/mime/application/x-doom-wad.xml
+-rw-r--r-- root root 3183 ./usr/share/mime/application/x-dvi.xml
+-rw-r--r-- root root 3473 ./usr/share/mime/application/x-egon.xml
+-rw-r--r-- root root 3341 ./usr/share/mime/application/x-e-theme.xml
+-rw-r--r-- root root 2837 ./usr/share/mime/application/x-executable.xml
+-rw-r--r-- root root 2172 ./usr/share/mime/application/x-fds-disk.xml
+-rw-r--r-- root root 3142 ./usr/share/mime/application/x-fictionbook+xml.xml
+-rw-r--r-- root root 3137 ./usr/share/mime/application/x-fluid.xml
+-rw-r--r-- root root 3465 ./usr/share/mime/application/x-font-afm.xml
+-rw-r--r-- root root 2866 ./usr/share/mime/application/x-font-bdf.xml
+-rw-r--r-- root root 2854 ./usr/share/mime/application/x-font-dos.xml
+-rw-r--r-- root root 3612 ./usr/share/mime/application/x-font-framemaker.xml
+-rw-r--r-- root root 3018 ./usr/share/mime/application/x-font-libgrx.xml
+-rw-r--r-- root root 3800 ./usr/share/mime/application/x-font-linux-psf.xml
+-rw-r--r-- root root 2918 ./usr/share/mime/application/x-font-pcf.xml
+-rw-r--r-- root root 3031 ./usr/share/mime/application/x-font-speedo.xml
+-rw-r--r-- root root 3244 ./usr/share/mime/application/x-font-sunos-news.xml
+-rw-r--r-- root root 3352 ./usr/share/mime/application/x-font-tex-tfm.xml
+-rw-r--r-- root root 2839 ./usr/share/mime/application/x-font-tex.xml
+-rw-r--r-- root root 3183 ./usr/share/mime/application/x-font-ttx.xml
+-rw-r--r-- root root 2200 ./usr/share/mime/application/x-font-type1.xml
+-rw-r--r-- root root 2741 ./usr/share/mime/application/x-font-vfont.xml
+-rw-r--r-- root root 1959 ./usr/share/mime/application/x-gameboy-color-rom.xml
+-rw-r--r-- root root 2895 ./usr/share/mime/application/x-gameboy-rom.xml
+-rw-r--r-- root root 2521 ./usr/share/mime/application/x-gamecube-rom.xml
+-rw-r--r-- root root 1722 ./usr/share/mime/application/x-gamegear-rom.xml
+-rw-r--r-- root root 3217 ./usr/share/mime/application/x-gba-rom.xml
+-rw-r--r-- root root 3125 ./usr/share/mime/application/x-gdbm.xml
+-rw-r--r-- root root 3528 ./usr/share/mime/application/x-gedcom.xml
+-rw-r--r-- root root 1892 ./usr/share/mime/application/x-genesis-32x-rom.xml
+-rw-r--r-- root root 2901 ./usr/share/mime/application/x-genesis-rom.xml
+-rw-r--r-- root root 4594 ./usr/share/mime/application/x-gettext-translation.xml
+-rw-r--r-- root root 3040 ./usr/share/mime/application/x-glade.xml
+-rw-r--r-- root root 3208 ./usr/share/mime/application/x-gnucash.xml
+-rw-r--r-- root root 3362 ./usr/share/mime/application/x-gnumeric.xml
+-rw-r--r-- root root 3130 ./usr/share/mime/application/x-gnuplot.xml
+-rw-r--r-- root root 2839 ./usr/share/mime/application/x-go-sgf.xml
+-rw-r--r-- root root 3559 ./usr/share/mime/application/x-graphite.xml
+-rw-r--r-- root root 1253 ./usr/share/mime/application/x-gtk-builder.xml
+-rw-r--r-- root root 3098 ./usr/share/mime/application/x-gtktalog.xml
+-rw-r--r-- root root 4096 ./usr/share/mime/application/x-gzdvi.xml
+-rw-r--r-- root root 4598 ./usr/share/mime/application/x-gz-font-linux-psf.xml
+-rw-r--r-- root root 3871 ./usr/share/mime/application/x-gzpdf.xml
+-rw-r--r-- root root 4380 ./usr/share/mime/application/x-gzpostscript.xml
+-rw-r--r-- root root 3146 ./usr/share/mime/application/x-hdf.xml
+-rw-r--r-- root root 2102 ./usr/share/mime/application/x-hfe-floppy-image.xml
+-rw-r--r-- root root 3048 ./usr/share/mime/application/xhtml+xml.xml
+-rw-r--r-- root root 3437 ./usr/share/mime/application/x-hwp.xml
+-rw-r--r-- root root 3922 ./usr/share/mime/application/x-hwt.xml
+-rw-r--r-- root root 3805 ./usr/share/mime/application/x-ica.xml
+-rw-r--r-- root root 2088 ./usr/share/mime/application/x-iff.xml
+-rw-r--r-- root root 2959 ./usr/share/mime/application/x-ipod-firmware.xml
+-rw-r--r-- root root 1098 ./usr/share/mime/application/x-ipynb+json.xml
+-rw-r--r-- root root 2355 ./usr/share/mime/application/x-iso9660-appimage.xml
+-rw-r--r-- root root 3393 ./usr/share/mime/application/x-it87.xml
+-rw-r--r-- root root 2779 ./usr/share/mime/application/x-iwork-keynote-sffkey.xml
+-rw-r--r-- root root 2956 ./usr/share/mime/application/x-java-archive.xml
+-rw-r--r-- root root 3006 ./usr/share/mime/application/x-java-jce-keystore.xml
+-rw-r--r-- root root 2826 ./usr/share/mime/application/x-java-jnlp-file.xml
+-rw-r--r-- root root 2810 ./usr/share/mime/application/x-java-keystore.xml
+-rw-r--r-- root root 3097 ./usr/share/mime/application/x-java-pack200.xml
+-rw-r--r-- root root 2902 ./usr/share/mime/application/x-java.xml
+-rw-r--r-- root root 3090 ./usr/share/mime/application/x-jbuilder-project.xml
+-rw-r--r-- root root 3023 ./usr/share/mime/application/x-karbon.xml
+-rw-r--r-- root root 2961 ./usr/share/mime/application/x-kchart.xml
+-rw-r--r-- root root 985 ./usr/share/mime/application/x-kexi-connectiondata.xml
+-rw-r--r-- root root 963 ./usr/share/mime/application/x-kexiproject-shortcut.xml
+-rw-r--r-- root root 1139 ./usr/share/mime/application/x-kexiproject-sqlite2.xml
+-rw-r--r-- root root 1235 ./usr/share/mime/application/x-kexiproject-sqlite3.xml
+-rw-r--r-- root root 3059 ./usr/share/mime/application/x-kformula.xml
+-rw-r--r-- root root 3235 ./usr/share/mime/application/x-killustrator.xml
+-rw-r--r-- root root 3186 ./usr/share/mime/application/x-kivio.xml
+-rw-r--r-- root root 2970 ./usr/share/mime/application/x-kontour.xml
+-rw-r--r-- root root 3112 ./usr/share/mime/application/x-kpovmodeler.xml
+-rw-r--r-- root root 3446 ./usr/share/mime/application/x-kpresenter.xml
+-rw-r--r-- root root 2978 ./usr/share/mime/application/x-krita.xml
+-rw-r--r-- root root 3981 ./usr/share/mime/application/x-kspread-crypt.xml
+-rw-r--r-- root root 3288 ./usr/share/mime/application/x-kspread.xml
+-rw-r--r-- root root 3087 ./usr/share/mime/application/x-ksysv-package.xml
+-rw-r--r-- root root 2981 ./usr/share/mime/application/x-kugar.xml
+-rw-r--r-- root root 3680 ./usr/share/mime/application/x-kword-crypt.xml
+-rw-r--r-- root root 3054 ./usr/share/mime/application/x-kword.xml
+-rw-r--r-- root root 2937 ./usr/share/mime/application/x-lha.xml
+-rw-r--r-- root root 2788 ./usr/share/mime/application/x-lhz.xml
+-rw-r--r-- root root 3529 ./usr/share/mime/application/xliff+xml.xml
+-rw-r--r-- root root 3509 ./usr/share/mime/application/x-lrzip-compressed-tar.xml
+-rw-r--r-- root root 2586 ./usr/share/mime/application/x-lrzip.xml
+-rw-r--r-- root root 2932 ./usr/share/mime/application/x-lyx.xml
+-rw-r--r-- root root 2407 ./usr/share/mime/application/x-lz4-compressed-tar.xml
+-rw-r--r-- root root 2047 ./usr/share/mime/application/x-lz4.xml
+-rw-r--r-- root root 2439 ./usr/share/mime/application/x-lzip-compressed-tar.xml
+-rw-r--r-- root root 2538 ./usr/share/mime/application/x-lzip.xml
+-rw-r--r-- root root 3787 ./usr/share/mime/application/x-lzma-compressed-tar.xml
+-rw-r--r-- root root 2879 ./usr/share/mime/application/x-lzma.xml
+-rw-r--r-- root root 2858 ./usr/share/mime/application/x-lzop.xml
+-rw-r--r-- root root 2450 ./usr/share/mime/application/x-lzpdf.xml
+-rw-r--r-- root root 2573 ./usr/share/mime/application/x-m4.xml
+-rw-r--r-- root root 3552 ./usr/share/mime/application/x-macbinary.xml
+-rw-r--r-- root root 3595 ./usr/share/mime/application/x-magicpoint.xml
+-rw-r--r-- root root 3076 ./usr/share/mime/application/x-markaby.xml
+-rw-r--r-- root root 2865 ./usr/share/mime/application/x-matroska.xml
+-rw-r--r-- root root 3816 ./usr/share/mime/application/x-mif.xml
+-rw-r--r-- root root 2522 ./usr/share/mime/application/x-mimearchive.xml
+-rw-r--r-- root root 2842 ./usr/share/mime/application/xml-dtd.xml
+-rw-r--r-- root root 3524 ./usr/share/mime/application/xml-external-parsed-entity.xml
+-rw-r--r-- root root 3038 ./usr/share/mime/application/xml.xml
+-rw-r--r-- root root 2798 ./usr/share/mime/application/x-mobipocket-ebook.xml
+-rw-r--r-- root root 3272 ./usr/share/mime/application/x-mozilla-bookmarks.xml
+-rw-r--r-- root root 3670 ./usr/share/mime/application/x-ms-dos-executable.xml
+-rw-r--r-- root root 3395 ./usr/share/mime/application/x-msi.xml
+-rw-r--r-- root root 1046 ./usr/share/mime/application/x-ms-wim.xml
+-rw-r--r-- root root 3069 ./usr/share/mime/application/x-mswinurl.xml
+-rw-r--r-- root root 2816 ./usr/share/mime/application/x-mswrite.xml
+-rw-r--r-- root root 2631 ./usr/share/mime/application/x-msx-rom.xml
+-rw-r--r-- root root 2950 ./usr/share/mime/application/x-n64-rom.xml
+-rw-r--r-- root root 3171 ./usr/share/mime/application/x-nautilus-link.xml
+-rw-r--r-- root root 3348 ./usr/share/mime/application/x-navi-animation.xml
+-rw-r--r-- root root 1852 ./usr/share/mime/application/x-neo-geo-pocket-color-rom.xml
+-rw-r--r-- root root 1874 ./usr/share/mime/application/x-neo-geo-pocket-rom.xml
+-rw-r--r-- root root 2681 ./usr/share/mime/application/x-nes-rom.xml
+-rw-r--r-- root root 3540 ./usr/share/mime/application/x-netcdf.xml
+-rw-r--r-- root root 3587 ./usr/share/mime/application/x-netshow-channel.xml
+-rw-r--r-- root root 2904 ./usr/share/mime/application/x-nintendo-ds-rom.xml
+-rw-r--r-- root root 2651 ./usr/share/mime/application/x-nzb.xml
+-rw-r--r-- root root 2816 ./usr/share/mime/application/x-object.xml
+-rw-r--r-- root root 3410 ./usr/share/mime/application/x-oleo.xml
+-rw-r--r-- root root 3999 ./usr/share/mime/application/x-ole-storage.xml
+-rw-r--r-- root root 1221 ./usr/share/mime/application/x-pagemaker.xml
+-rw-r--r-- root root 2785 ./usr/share/mime/application/x-pak.xml
+-rw-r--r-- root root 3058 ./usr/share/mime/application/x-par2.xml
+-rw-r--r-- root root 2817 ./usr/share/mime/application/x-partial-download.xml
+-rw-r--r-- root root 2149 ./usr/share/mime/application/x-pc-engine-rom.xml
+-rw-r--r-- root root 3072 ./usr/share/mime/application/x-pef-executable.xml
+-rw-r--r-- root root 3209 ./usr/share/mime/application/x-perl.xml
+-rw-r--r-- root root 3050 ./usr/share/mime/application/x-php.xml
+-rw-r--r-- root root 3264 ./usr/share/mime/application/x-pkcs7-certificates.xml
+-rw-r--r-- root root 3383 ./usr/share/mime/application/x-planperfect.xml
+-rw-r--r-- root root 2969 ./usr/share/mime/application/x-pocket-word.xml
+-rw-r--r-- root root 3489 ./usr/share/mime/application/x-profile.xml
+-rw-r--r-- root root 3521 ./usr/share/mime/application/x-pw.xml
+-rw-r--r-- root root 3180 ./usr/share/mime/application/x-python-bytecode.xml
+-rw-r--r-- root root 407 ./usr/share/mime/application/x-qemu-disk.xml
+-rw-r--r-- root root 2164 ./usr/share/mime/application/x-qpress.xml
+-rw-r--r-- root root 2458 ./usr/share/mime/application/x-qtiplot.xml
+-rw-r--r-- root root 3546 ./usr/share/mime/application/x-quattropro.xml
+-rw-r--r-- root root 1258 ./usr/share/mime/application/x-quicktime-media-link.xml
+-rw-r--r-- root root 3189 ./usr/share/mime/application/x-qw.xml
+-rw-r--r-- root root 2444 ./usr/share/mime/application/x-raw-disk-image.xml
+-rw-r--r-- root root 3223 ./usr/share/mime/application/x-raw-disk-image-xz-compressed.xml
+-rw-r--r-- root root 1828 ./usr/share/mime/application/x-raw-floppy-disk-image.xml
+-rw-r--r-- root root 2067 ./usr/share/mime/application/x-riff.xml
+-rw-r--r-- root root 2780 ./usr/share/mime/application/x-rpm.xml
+-rw-r--r-- root root 2941 ./usr/share/mime/application/x-ruby.xml
+-rw-r--r-- root root 3058 ./usr/share/mime/application/x-sami.xml
+-rw-r--r-- root root 2519 ./usr/share/mime/application/x-saturn-rom.xml
+-rw-r--r-- root root 3354 ./usr/share/mime/application/x-sc.xml
+-rw-r--r-- root root 2140 ./usr/share/mime/application/x-sega-cd-rom.xml
+-rw-r--r-- root root 1752 ./usr/share/mime/application/x-sega-pico-rom.xml
+-rw-r--r-- root root 1656 ./usr/share/mime/application/x-sg1000-rom.xml
+-rw-r--r-- root root 3576 ./usr/share/mime/application/x-shared-library-la.xml
+-rw-r--r-- root root 3341 ./usr/share/mime/application/x-sharedlib.xml
+-rw-r--r-- root root 3018 ./usr/share/mime/application/x-shar.xml
+-rw-r--r-- root root 3191 ./usr/share/mime/application/x-shellscript.xml
+-rw-r--r-- root root 2898 ./usr/share/mime/application/x-shorten.xml
+-rw-r--r-- root root 3125 ./usr/share/mime/application/x-siag.xml
+-rw-r--r-- root root 3067 ./usr/share/mime/application/x-slp.xml
+-rw-r--r-- root root 3271 ./usr/share/mime/application/xslt+xml.xml
+-rw-r--r-- root root 2868 ./usr/share/mime/application/x-smaf.xml
+-rw-r--r-- root root 1828 ./usr/share/mime/application/x-sms-rom.xml
+-rw-r--r-- root root 2563 ./usr/share/mime/application/x-source-rpm.xml
+-rw-r--r-- root root 3445 ./usr/share/mime/application/xspf+xml.xml
+-rw-r--r-- root root 1201 ./usr/share/mime/application/x-spss-por.xml
+-rw-r--r-- root root 1181 ./usr/share/mime/application/x-spss-sav.xml
+-rw-r--r-- root root 3154 ./usr/share/mime/application/x-sqlite2.xml
+-rw-r--r-- root root 3027 ./usr/share/mime/application/x-stuffit.xml
+-rw-r--r-- root root 3069 ./usr/share/mime/application/x-subrip.xml
+-rw-r--r-- root root 3146 ./usr/share/mime/application/x-sv4cpio.xml
+-rw-r--r-- root root 3637 ./usr/share/mime/application/x-sv4crc.xml
+-rw-r--r-- root root 2862 ./usr/share/mime/application/x-t602.xml
+-rw-r--r-- root root 2908 ./usr/share/mime/application/x-tar.xml
+-rw-r--r-- root root 3451 ./usr/share/mime/application/x-tarz.xml
+-rw-r--r-- root root 3391 ./usr/share/mime/application/x-tex-gf.xml
+-rw-r--r-- root root 3527 ./usr/share/mime/application/x-tex-pk.xml
+-rw-r--r-- root root 2916 ./usr/share/mime/application/x-tgif.xml
+-rw-r--r-- root root 2604 ./usr/share/mime/application/x-theme.xml
+-rw-r--r-- root root 2013 ./usr/share/mime/application/x-thomson-cartridge-memo7.xml
+-rw-r--r-- root root 1776 ./usr/share/mime/application/x-thomson-cassette.xml
+-rw-r--r-- root root 2342 ./usr/share/mime/application/x-thomson-sap-image.xml
+-rw-r--r-- root root 3216 ./usr/share/mime/application/x-toutdoux.xml
+-rw-r--r-- root root 3148 ./usr/share/mime/application/x-trash.xml
+-rw-r--r-- root root 3887 ./usr/share/mime/application/x-troff-man-compressed.xml
+-rw-r--r-- root root 2521 ./usr/share/mime/application/x-troff-man.xml
+-rw-r--r-- root root 3731 ./usr/share/mime/application/x-tzo.xml
+-rw-r--r-- root root 3110 ./usr/share/mime/application/x-ufraw.xml
+-rw-r--r-- root root 2836 ./usr/share/mime/application/x-ustar.xml
+-rw-r--r-- root root 1666 ./usr/share/mime/application/x-virtual-boy-rom.xml
+-rw-r--r-- root root 3242 ./usr/share/mime/application/x-wais-source.xml
+-rw-r--r-- root root 2456 ./usr/share/mime/application/x-wii-rom.xml
+-rw-r--r-- root root 1998 ./usr/share/mime/application/x-wii-wad.xml
+-rw-r--r-- root root 3595 ./usr/share/mime/application/x-windows-themepack.xml
+-rw-r--r-- root root 1989 ./usr/share/mime/application/x-wonderswan-color-rom.xml
+-rw-r--r-- root root 1825 ./usr/share/mime/application/x-wonderswan-rom.xml
+-rw-r--r-- root root 3782 ./usr/share/mime/application/x-wpg.xml
+-rw-r--r-- root root 2498 ./usr/share/mime/application/x-wwf.xml
+-rw-r--r-- root root 4757 ./usr/share/mime/application/x-x509-ca-cert.xml
+-rw-r--r-- root root 1890 ./usr/share/mime/application/x-xar.xml
+-rw-r--r-- root root 3167 ./usr/share/mime/application/x-xbel.xml
+-rw-r--r-- root root 3294 ./usr/share/mime/application/x-xpinstall.xml
+-rw-r--r-- root root 3373 ./usr/share/mime/application/x-xz-compressed-tar.xml
+-rw-r--r-- root root 3269 ./usr/share/mime/application/x-xzpdf.xml
+-rw-r--r-- root root 2449 ./usr/share/mime/application/x-xz.xml
+-rw-r--r-- root root 2822 ./usr/share/mime/application/x-yaml.xml
+-rw-r--r-- root root 2936 ./usr/share/mime/application/x-zerosize.xml
+-rw-r--r-- root root 2912 ./usr/share/mime/application/x-zip-compressed-fb2.xml
+-rw-r--r-- root root 2818 ./usr/share/mime/application/x-zoo.xml
+-rw-r--r-- root root 1995 ./usr/share/mime/application/x-zstd-compressed-tar.xml
+-rw-r--r-- root root 2901 ./usr/share/mime/application/zip.xml
+-rw-r--r-- root root 2084 ./usr/share/mime/application/zlib.xml
+-rw-r--r-- root root 1464 ./usr/share/mime/application/zstd.xml
+drwxr-xr-x root root 4096 ./usr/share/mime/audio
+-rw-r--r-- root root 2202 ./usr/share/mime/audio/aac.xml
+-rw-r--r-- root root 3368 ./usr/share/mime/audio/ac3.xml
+-rw-r--r-- root root 2944 ./usr/share/mime/audio/amr-wb.xml
+-rw-r--r-- root root 2771 ./usr/share/mime/audio/amr.xml
+-rw-r--r-- root root 1023 ./usr/share/mime/audio/annodex.xml
+-rw-r--r-- root root 3151 ./usr/share/mime/audio/basic.xml
+-rw-r--r-- root root 2798 ./usr/share/mime/audio/flac.xml
+-rw-r--r-- root root 2876 ./usr/share/mime/audio/midi.xml
+-rw-r--r-- root root 2623 ./usr/share/mime/audio/mp2.xml
+-rw-r--r-- root root 2884 ./usr/share/mime/audio/mp4.xml
+-rw-r--r-- root root 2936 ./usr/share/mime/audio/mpeg.xml
+-rw-r--r-- root root 1008 ./usr/share/mime/audio/ogg.xml
+-rw-r--r-- root root 3220 ./usr/share/mime/audio/prs.sid.xml
+-rw-r--r-- root root 1610 ./usr/share/mime/audio/usac.xml
+-rw-r--r-- root root 2180 ./usr/share/mime/audio/vnd.dts.hd.xml
+-rw-r--r-- root root 2055 ./usr/share/mime/audio/vnd.dts.xml
+-rw-r--r-- root root 3202 ./usr/share/mime/audio/vnd.rn-realaudio.xml
+-rw-r--r-- root root 2422 ./usr/share/mime/audio/webm.xml
+-rw-r--r-- root root 2713 ./usr/share/mime/audio/x-adpcm.xml
+-rw-r--r-- root root 3066 ./usr/share/mime/audio/x-aifc.xml
+-rw-r--r-- root root 3573 ./usr/share/mime/audio/x-aiff.xml
+-rw-r--r-- root root 2766 ./usr/share/mime/audio/x-amzxml.xml
+-rw-r--r-- root root 2758 ./usr/share/mime/audio/x-ape.xml
+-rw-r--r-- root root 2958 ./usr/share/mime/audio/x-flac+ogg.xml
+-rw-r--r-- root root 2864 ./usr/share/mime/audio/x-gsm.xml
+-rw-r--r-- root root 1076 ./usr/share/mime/audio/x-iriver-pla.xml
+-rw-r--r-- root root 3344 ./usr/share/mime/audio/x-it.xml
+-rw-r--r-- root root 3184 ./usr/share/mime/audio/x-m4b.xml
+-rw-r--r-- root root 1002 ./usr/share/mime/audio/x-m4r.xml
+-rw-r--r-- root root 2979 ./usr/share/mime/audio/x-matroska.xml
+-rw-r--r-- root root 3017 ./usr/share/mime/audio/x-minipsf.xml
+-rw-r--r-- root root 3256 ./usr/share/mime/audio/x-mo3.xml
+-rw-r--r-- root root 3640 ./usr/share/mime/audio/x-mod.xml
+-rw-r--r-- root root 3601 ./usr/share/mime/audio/x-mpegurl.xml
+-rw-r--r-- root root 3833 ./usr/share/mime/audio/x-ms-asx.xml
+-rw-r--r-- root root 3148 ./usr/share/mime/audio/x-ms-wma.xml
+-rw-r--r-- root root 2864 ./usr/share/mime/audio/x-musepack.xml
+-rw-r--r-- root root 2000 ./usr/share/mime/audio/x-opus+ogg.xml
+-rw-r--r-- root root 1778 ./usr/share/mime/audio/x-pn-audibleaudio.xml
+-rw-r--r-- root root 3385 ./usr/share/mime/audio/x-psflib.xml
+-rw-r--r-- root root 2682 ./usr/share/mime/audio/x-psf.xml
+-rw-r--r-- root root 2764 ./usr/share/mime/audio/x-riff.xml
+-rw-r--r-- root root 3393 ./usr/share/mime/audio/x-s3m.xml
+-rw-r--r-- root root 3693 ./usr/share/mime/audio/x-scpls.xml
+-rw-r--r-- root root 2976 ./usr/share/mime/audio/x-speex+ogg.xml
+-rw-r--r-- root root 2656 ./usr/share/mime/audio/x-speex.xml
+-rw-r--r-- root root 3290 ./usr/share/mime/audio/x-stm.xml
+-rw-r--r-- root root 2930 ./usr/share/mime/audio/x-tta.xml
+-rw-r--r-- root root 2737 ./usr/share/mime/audio/x-voc.xml
+-rw-r--r-- root root 3311 ./usr/share/mime/audio/x-vorbis+ogg.xml
+-rw-r--r-- root root 3641 ./usr/share/mime/audio/x-wavpack-correction.xml
+-rw-r--r-- root root 2833 ./usr/share/mime/audio/x-wavpack.xml
+-rw-r--r-- root root 2795 ./usr/share/mime/audio/x-wav.xml
+-rw-r--r-- root root 3518 ./usr/share/mime/audio/x-xi.xml
+-rw-r--r-- root root 2751 ./usr/share/mime/audio/x-xmf.xml
+-rw-r--r-- root root 3360 ./usr/share/mime/audio/x-xm.xml
+drwxr-xr-x root root 4096 ./usr/share/mime/font
+-rw-r--r-- root root 1752 ./usr/share/mime/font/collection.xml
+-rw-r--r-- root root 3213 ./usr/share/mime/font/otf.xml
+-rw-r--r-- root root 3063 ./usr/share/mime/font/ttf.xml
+-rw-r--r-- root root 1753 ./usr/share/mime/font/woff2.xml
+-rw-r--r-- root root 2331 ./usr/share/mime/font/woff.xml
+-rw-r--r-- root root 17449 ./usr/share/mime/generic-icons
+-rw-r--r-- root root 29350 ./usr/share/mime/globs
+-rw-r--r-- root root 32606 ./usr/share/mime/globs2
+-rw-r--r-- root root 0 ./usr/share/mime/icons
+drwxr-xr-x root root 4096 ./usr/share/mime/image
+-rw-r--r-- root root 3325 ./usr/share/mime/image/bmp.xml
+-rw-r--r-- root root 928 ./usr/share/mime/image/cgm.xml
+-rw-r--r-- root root 2788 ./usr/share/mime/image/dpx.xml
+-rw-r--r-- root root 2896 ./usr/share/mime/image/emf.xml
+-rw-r--r-- root root 1017 ./usr/share/mime/image/fax-g3.xml
+-rw-r--r-- root root 3011 ./usr/share/mime/image/fits.xml
+-rw-r--r-- root root 2851 ./usr/share/mime/image/gif.xml
+-rw-r--r-- root root 1713 ./usr/share/mime/image/heif.xml
+-rw-r--r-- root root 2775 ./usr/share/mime/image/ief.xml
+-rw-r--r-- root root 1995 ./usr/share/mime/image/jp2.xml
+-rw-r--r-- root root 2914 ./usr/share/mime/image/jpeg.xml
+-rw-r--r-- root root 1890 ./usr/share/mime/image/jpm.xml
+-rw-r--r-- root root 1891 ./usr/share/mime/image/jpx.xml
+-rw-r--r-- root root 2043 ./usr/share/mime/image/ktx.xml
+-rw-r--r-- root root 1030 ./usr/share/mime/image/openraster.xml
+-rw-r--r-- root root 2775 ./usr/share/mime/image/png.xml
+-rw-r--r-- root root 1057 ./usr/share/mime/image/rle.xml
+-rw-r--r-- root root 3368 ./usr/share/mime/image/svg+xml-compressed.xml
+-rw-r--r-- root root 2782 ./usr/share/mime/image/svg+xml.xml
+-rw-r--r-- root root 2852 ./usr/share/mime/image/tiff.xml
+-rw-r--r-- root root 3033 ./usr/share/mime/image/vnd.adobe.photoshop.xml
+-rw-r--r-- root root 2120 ./usr/share/mime/image/vnd.djvu+multipage.xml
+-rw-r--r-- root root 2911 ./usr/share/mime/image/vnd.djvu.xml
+-rw-r--r-- root root 3101 ./usr/share/mime/image/vnd.dwg.xml
+-rw-r--r-- root root 3301 ./usr/share/mime/image/vnd.dxf.xml
+-rw-r--r-- root root 2244 ./usr/share/mime/image/vnd.microsoft.icon.xml
+-rw-r--r-- root root 933 ./usr/share/mime/image/vnd.ms-modi.xml
+-rw-r--r-- root root 2993 ./usr/share/mime/image/vnd.rn-realpix.xml
+-rw-r--r-- root root 2775 ./usr/share/mime/image/vnd.wap.wbmp.xml
+-rw-r--r-- root root 2764 ./usr/share/mime/image/vnd.zbrush.pcx.xml
+-rw-r--r-- root root 1985 ./usr/share/mime/image/webp.xml
+-rw-r--r-- root root 2901 ./usr/share/mime/image/wmf.xml
+-rw-r--r-- root root 3236 ./usr/share/mime/image/x-3ds.xml
+-rw-r--r-- root root 3249 ./usr/share/mime/image/x-adobe-dng.xml
+-rw-r--r-- root root 3454 ./usr/share/mime/image/x-applix-graphics.xml
+-rw-r--r-- root root 3863 ./usr/share/mime/image/x-bzeps.xml
+-rw-r--r-- root root 3517 ./usr/share/mime/image/x-canon-cr2.xml
+-rw-r--r-- root root 3480 ./usr/share/mime/image/x-canon-crw.xml
+-rw-r--r-- root root 3346 ./usr/share/mime/image/x-cmu-raster.xml
+-rw-r--r-- root root 3323 ./usr/share/mime/image/x-compressed-xcf.xml
+-rw-r--r-- root root 3230 ./usr/share/mime/image/x-dcraw.xml
+-rw-r--r-- root root 3119 ./usr/share/mime/image/x-dds.xml
+-rw-r--r-- root root 2780 ./usr/share/mime/image/x-dib.xml
+-rw-r--r-- root root 2906 ./usr/share/mime/image/x-eps.xml
+-rw-r--r-- root root 2720 ./usr/share/mime/image/x-exr.xml
+-rw-r--r-- root root 2767 ./usr/share/mime/image/x-fpx.xml
+-rw-r--r-- root root 3445 ./usr/share/mime/image/x-fuji-raf.xml
+-rw-r--r-- root root 1569 ./usr/share/mime/image/x-gimp-gbr.xml
+-rw-r--r-- root root 1672 ./usr/share/mime/image/x-gimp-gih.xml
+-rw-r--r-- root root 1564 ./usr/share/mime/image/x-gimp-pat.xml
+-rw-r--r-- root root 3863 ./usr/share/mime/image/x-gzeps.xml
+-rw-r--r-- root root 2927 ./usr/share/mime/image/x-icns.xml
+-rw-r--r-- root root 3043 ./usr/share/mime/image/x-ilbm.xml
+-rw-r--r-- root root 2863 ./usr/share/mime/image/x-jng.xml
+-rw-r--r-- root root 1821 ./usr/share/mime/image/x-jp2-codestream.xml
+-rw-r--r-- root root 3442 ./usr/share/mime/image/x-kodak-dcr.xml
+-rw-r--r-- root root 3428 ./usr/share/mime/image/x-kodak-k25.xml
+-rw-r--r-- root root 3444 ./usr/share/mime/image/x-kodak-kdc.xml
+-rw-r--r-- root root 3140 ./usr/share/mime/image/x-lwo.xml
+-rw-r--r-- root root 3058 ./usr/share/mime/image/x-lws.xml
+-rw-r--r-- root root 3324 ./usr/share/mime/image/x-macpaint.xml
+-rw-r--r-- root root 3495 ./usr/share/mime/image/x-minolta-mrw.xml
+-rw-r--r-- root root 2793 ./usr/share/mime/image/x-msod.xml
+-rw-r--r-- root root 2665 ./usr/share/mime/image/x-niff.xml
+-rw-r--r-- root root 3442 ./usr/share/mime/image/x-nikon-nef.xml
+-rw-r--r-- root root 3607 ./usr/share/mime/image/x-olympus-orf.xml
+-rw-r--r-- root root 3360 ./usr/share/mime/image/x-panasonic-rw2.xml
+-rw-r--r-- root root 3358 ./usr/share/mime/image/x-panasonic-rw.xml
+-rw-r--r-- root root 3499 ./usr/share/mime/image/x-pentax-pef.xml
+-rw-r--r-- root root 2793 ./usr/share/mime/image/x-photo-cd.xml
+-rw-r--r-- root root 3911 ./usr/share/mime/image/x-pict.xml
+-rw-r--r-- root root 2789 ./usr/share/mime/image/x-portable-anymap.xml
+-rw-r--r-- root root 2904 ./usr/share/mime/image/x-portable-bitmap.xml
+-rw-r--r-- root root 2830 ./usr/share/mime/image/x-portable-graymap.xml
+-rw-r--r-- root root 2828 ./usr/share/mime/image/x-portable-pixmap.xml
+-rw-r--r-- root root 2989 ./usr/share/mime/image/x-quicktime.xml
+-rw-r--r-- root root 2784 ./usr/share/mime/image/x-rgb.xml
+-rw-r--r-- root root 2640 ./usr/share/mime/image/x-sgi.xml
+-rw-r--r-- root root 3400 ./usr/share/mime/image/x-sigma-x3f.xml
+-rw-r--r-- root root 2956 ./usr/share/mime/image/x-skencil.xml
+-rw-r--r-- root root 3388 ./usr/share/mime/image/x-sony-arw.xml
+-rw-r--r-- root root 3388 ./usr/share/mime/image/x-sony-sr2.xml
+-rw-r--r-- root root 3387 ./usr/share/mime/image/x-sony-srf.xml
+-rw-r--r-- root root 3040 ./usr/share/mime/image/x-sun-raster.xml
+-rw-r--r-- root root 2867 ./usr/share/mime/image/x-tga.xml
+-rw-r--r-- root root 2644 ./usr/share/mime/image/x-tiff-multipage.xml
+-rw-r--r-- root root 2941 ./usr/share/mime/image/x-win-bitmap.xml
+-rw-r--r-- root root 2721 ./usr/share/mime/image/x-xbitmap.xml
+-rw-r--r-- root root 2832 ./usr/share/mime/image/x-xcf.xml
+-rw-r--r-- root root 2592 ./usr/share/mime/image/x-xcursor.xml
+-rw-r--r-- root root 2753 ./usr/share/mime/image/x-xfig.xml
+-rw-r--r-- root root 2798 ./usr/share/mime/image/x-xpixmap.xml
+-rw-r--r-- root root 3109 ./usr/share/mime/image/x-xwindowdump.xml
+drwxr-xr-x root root 4096 ./usr/share/mime/inode
+-rw-r--r-- root root 3006 ./usr/share/mime/inode/blockdevice.xml
+-rw-r--r-- root root 3145 ./usr/share/mime/inode/chardevice.xml
+-rw-r--r-- root root 2543 ./usr/share/mime/inode/directory.xml
+-rw-r--r-- root root 2413 ./usr/share/mime/inode/fifo.xml
+-rw-r--r-- root root 3021 ./usr/share/mime/inode/mount-point.xml
+-rw-r--r-- root root 2469 ./usr/share/mime/inode/socket.xml
+-rw-r--r-- root root 3295 ./usr/share/mime/inode/symlink.xml
+-rw-r--r-- root root 27700 ./usr/share/mime/magic
+drwxr-xr-x root root 4096 ./usr/share/mime/message
+-rw-r--r-- root root 3735 ./usr/share/mime/message/delivery-status.xml
+-rw-r--r-- root root 3771 ./usr/share/mime/message/disposition-notification.xml
+-rw-r--r-- root root 3777 ./usr/share/mime/message/external-body.xml
+-rw-r--r-- root root 3617 ./usr/share/mime/message/news.xml
+-rw-r--r-- root root 3728 ./usr/share/mime/message/partial.xml
+-rw-r--r-- root root 3183 ./usr/share/mime/message/rfc822.xml
+-rw-r--r-- root root 3427 ./usr/share/mime/message/x-gnu-rmail.xml
+-rw-r--r-- root root 136104 ./usr/share/mime/mime.cache
+drwxr-xr-x root root 4096 ./usr/share/mime/model
+-rw-r--r-- root root 2003 ./usr/share/mime/model/iges.xml
+-rw-r--r-- root root 1695 ./usr/share/mime/model/stl.xml
+-rw-r--r-- root root 3189 ./usr/share/mime/model/vrml.xml
+drwxr-xr-x root root 4096 ./usr/share/mime/multipart
+-rw-r--r-- root root 3761 ./usr/share/mime/multipart/alternative.xml
+-rw-r--r-- root root 4361 ./usr/share/mime/multipart/appledouble.xml
+-rw-r--r-- root root 3157 ./usr/share/mime/multipart/digest.xml
+-rw-r--r-- root root 3267 ./usr/share/mime/multipart/encrypted.xml
+-rw-r--r-- root root 3191 ./usr/share/mime/multipart/mixed.xml
+-rw-r--r-- root root 3209 ./usr/share/mime/multipart/related.xml
+-rw-r--r-- root root 3556 ./usr/share/mime/multipart/report.xml
+-rw-r--r-- root root 3203 ./usr/share/mime/multipart/signed.xml
+-rw-r--r-- root root 3867 ./usr/share/mime/multipart/x-mixed-replace.xml
+-rw-r--r-- root root 16073 ./usr/share/mime/subclasses
+drwxr-xr-x root root 4096 ./usr/share/mime/text
+-rw-r--r-- root root 1172 ./usr/share/mime/text/cache-manifest.xml
+-rw-r--r-- root root 3178 ./usr/share/mime/text/calendar.xml
+-rw-r--r-- root root 3113 ./usr/share/mime/text/css.xml
+-rw-r--r-- root root 2266 ./usr/share/mime/text/csv-schema.xml
+-rw-r--r-- root root 3027 ./usr/share/mime/text/csv.xml
+-rw-r--r-- root root 3801 ./usr/share/mime/text/enriched.xml
+-rw-r--r-- root root 3017 ./usr/share/mime/text/htmlh.xml
+-rw-r--r-- root root 2991 ./usr/share/mime/text/html.xml
+-rw-r--r-- root root 2600 ./usr/share/mime/text/markdown.xml
+-rw-r--r-- root root 3420 ./usr/share/mime/text/plain.xml
+-rw-r--r-- root root 3291 ./usr/share/mime/text/rfc822-headers.xml
+-rw-r--r-- root root 3602 ./usr/share/mime/text/richtext.xml
+-rw-r--r-- root root 2164 ./usr/share/mime/text/rust.xml
+-rw-r--r-- root root 3073 ./usr/share/mime/text/sgml.xml
+-rw-r--r-- root root 3961 ./usr/share/mime/text/spreadsheet.xml
+-rw-r--r-- root root 2849 ./usr/share/mime/text/tab-separated-values.xml
+-rw-r--r-- root root 3191 ./usr/share/mime/text/troff.xml
+-rw-r--r-- root root 2106 ./usr/share/mime/text/turtle.xml
+-rw-r--r-- root root 3618 ./usr/share/mime/text/vcard.xml
+-rw-r--r-- root root 2914 ./usr/share/mime/text/vnd.graphviz.xml
+-rw-r--r-- root root 3253 ./usr/share/mime/text/vnd.qt.linguist.xml
+-rw-r--r-- root root 3050 ./usr/share/mime/text/vnd.rn-realtext.xml
+-rw-r--r-- root root 1636 ./usr/share/mime/text/vnd.senx.warpscript.xml
+-rw-r--r-- root root 2876 ./usr/share/mime/text/vnd.sun.j2me.app-descriptor.xml
+-rw-r--r-- root root 3020 ./usr/share/mime/text/vnd.wap.wmlscript.xml
+-rw-r--r-- root root 3039 ./usr/share/mime/text/vnd.wap.wml.xml
+-rw-r--r-- root root 2632 ./usr/share/mime/text/vtt.xml
+-rw-r--r-- root root 3143 ./usr/share/mime/text/x-adasrc.xml
+-rw-r--r-- root root 2961 ./usr/share/mime/text/x-authors.xml
+-rw-r--r-- root root 3040 ./usr/share/mime/text/x-bibtex.xml
+-rw-r--r-- root root 3310 ./usr/share/mime/text/x-changelog.xml
+-rw-r--r-- root root 3007 ./usr/share/mime/text/x-c++hdr.xml
+-rw-r--r-- root root 2803 ./usr/share/mime/text/x-chdr.xml
+-rw-r--r-- root root 3188 ./usr/share/mime/text/x-cmake.xml
+-rw-r--r-- root root 1168 ./usr/share/mime/text/x-cobol.xml
+-rw-r--r-- root root 3113 ./usr/share/mime/text/x-copying.xml
+-rw-r--r-- root root 3127 ./usr/share/mime/text/x-credits.xml
+-rw-r--r-- root root 3074 ./usr/share/mime/text/x-csharp.xml
+-rw-r--r-- root root 3250 ./usr/share/mime/text/x-c++src.xml
+-rw-r--r-- root root 3064 ./usr/share/mime/text/x-csrc.xml
+-rw-r--r-- root root 1989 ./usr/share/mime/text/x-dbus-service.xml
+-rw-r--r-- root root 3032 ./usr/share/mime/text/x-dcl.xml
+-rw-r--r-- root root 3236 ./usr/share/mime/text/x-dsl.xml
+-rw-r--r-- root root 2994 ./usr/share/mime/text/x-dsrc.xml
+-rw-r--r-- root root 3254 ./usr/share/mime/text/x-eiffel.xml
+-rw-r--r-- root root 3617 ./usr/share/mime/text/x-emacs-lisp.xml
+-rw-r--r-- root root 3221 ./usr/share/mime/text/x-erlang.xml
+-rw-r--r-- root root 3527 ./usr/share/mime/text/x-fortran.xml
+-rw-r--r-- root root 1710 ./usr/share/mime/text/x.gcode.xml
+-rw-r--r-- root root 2317 ./usr/share/mime/text/x-genie.xml
+-rw-r--r-- root root 3320 ./usr/share/mime/text/x-gettext-translation-template.xml
+-rw-r--r-- root root 3221 ./usr/share/mime/text/x-gettext-translation.xml
+-rw-r--r-- root root 1013 ./usr/share/mime/text/x-gherkin.xml
+-rw-r--r-- root root 1138 ./usr/share/mime/text/x-google-video-pointer.xml
+-rw-r--r-- root root 2539 ./usr/share/mime/text/x-go.xml
+-rw-r--r-- root root 1644 ./usr/share/mime/text/x-gradle.xml
+-rw-r--r-- root root 1179 ./usr/share/mime/text/x-groovy.xml
+-rw-r--r-- root root 3360 ./usr/share/mime/text/x-haskell.xml
+-rw-r--r-- root root 3033 ./usr/share/mime/text/x-idl.xml
+-rw-r--r-- root root 3023 ./usr/share/mime/text/x-imelody.xml
+-rw-r--r-- root root 3418 ./usr/share/mime/text/x-install.xml
+-rw-r--r-- root root 3599 ./usr/share/mime/text/x-iptables.xml
+-rw-r--r-- root root 3086 ./usr/share/mime/text/x-java.xml
+-rw-r--r-- root root 3167 ./usr/share/mime/text/x-ldif.xml
+-rw-r--r-- root root 3110 ./usr/share/mime/text/x-lilypond.xml
+-rw-r--r-- root root 3063 ./usr/share/mime/text/x-literate-haskell.xml
+-rw-r--r-- root root 3190 ./usr/share/mime/text/x-log.xml
+-rw-r--r-- root root 2802 ./usr/share/mime/text/x-lua.xml
+-rw-r--r-- root root 1200 ./usr/share/mime/text/x-makefile.xml
+-rw-r--r-- root root 985 ./usr/share/mime/text/x-matlab.xml
+-rw-r--r-- root root 1881 ./usr/share/mime/text/x-maven+xml.xml
+-rw-r--r-- root root 3157 ./usr/share/mime/text/xmcd.xml
+-rw-r--r-- root root 2231 ./usr/share/mime/text/x-meson.xml
+-rw-r--r-- root root 3177 ./usr/share/mime/text/x-microdvd.xml
+-rw-r--r-- root root 2799 ./usr/share/mime/text/x-moc.xml
+-rw-r--r-- root root 2267 ./usr/share/mime/text/x-modelica.xml
+-rw-r--r-- root root 957 ./usr/share/mime/text/x-mof.xml
+-rw-r--r-- root root 3100 ./usr/share/mime/text/x-mpsub.xml
+-rw-r--r-- root root 3359 ./usr/share/mime/text/x-mrml.xml
+-rw-r--r-- root root 3496 ./usr/share/mime/text/x-ms-regedit.xml
+-rw-r--r-- root root 1114 ./usr/share/mime/text/x-mup.xml
+-rw-r--r-- root root 2801 ./usr/share/mime/text/x-nfo.xml
+-rw-r--r-- root root 3537 ./usr/share/mime/text/x-objcsrc.xml
+-rw-r--r-- root root 3076 ./usr/share/mime/text/x-ocaml.xml
+-rw-r--r-- root root 2703 ./usr/share/mime/text/x-ocl.xml
+-rw-r--r-- root root 2654 ./usr/share/mime/text/x-ooc.xml
+-rw-r--r-- root root 1909 ./usr/share/mime/text/x-opencl-src.xml
+-rw-r--r-- root root 3116 ./usr/share/mime/text/x-opml+xml.xml
+-rw-r--r-- root root 3227 ./usr/share/mime/text/x-pascal.xml
+-rw-r--r-- root root 3558 ./usr/share/mime/text/x-patch.xml
+-rw-r--r-- root root 1829 ./usr/share/mime/text/x-python3.xml
+-rw-r--r-- root root 3116 ./usr/share/mime/text/x-python.xml
+-rw-r--r-- root root 2865 ./usr/share/mime/text/x-qml.xml
+-rw-r--r-- root root 3185 ./usr/share/mime/text/x-readme.xml
+-rw-r--r-- root root 3144 ./usr/share/mime/text/x-reject.xml
+-rw-r--r-- root root 3198 ./usr/share/mime/text/x-rpm-spec.xml
+-rw-r--r-- root root 1880 ./usr/share/mime/text/x-rst.xml
+-rw-r--r-- root root 2443 ./usr/share/mime/text/x-sass.xml
+-rw-r--r-- root root 2616 ./usr/share/mime/text/x-scala.xml
+-rw-r--r-- root root 3324 ./usr/share/mime/text/x-scheme.xml
+-rw-r--r-- root root 2573 ./usr/share/mime/text/x-scons.xml
+-rw-r--r-- root root 1132 ./usr/share/mime/text/x-scss.xml
+-rw-r--r-- root root 3114 ./usr/share/mime/text/x-setext.xml
+-rw-r--r-- root root 2929 ./usr/share/mime/text/x-ssa.xml
+-rw-r--r-- root root 3142 ./usr/share/mime/text/x-subviewer.xml
+-rw-r--r-- root root 2665 ./usr/share/mime/text/x-svhdr.xml
+-rw-r--r-- root root 2853 ./usr/share/mime/text/x-svsrc.xml
+-rw-r--r-- root root 2364 ./usr/share/mime/text/x-systemd-unit.xml
+-rw-r--r-- root root 2818 ./usr/share/mime/text/x-tcl.xml
+-rw-r--r-- root root 3204 ./usr/share/mime/text/x-texinfo.xml
+-rw-r--r-- root root 3092 ./usr/share/mime/text/x-tex.xml
+-rw-r--r-- root root 3580 ./usr/share/mime/text/x-troff-me.xml
+-rw-r--r-- root root 3580 ./usr/share/mime/text/x-troff-mm.xml
+-rw-r--r-- root root 3580 ./usr/share/mime/text/x-troff-ms.xml
+-rw-r--r-- root root 1811 ./usr/share/mime/text/x-twig.xml
+-rw-r--r-- root root 3150 ./usr/share/mime/text/x-txt2tags.xml
+-rw-r--r-- root root 3074 ./usr/share/mime/text/x-uil.xml
+-rw-r--r-- root root 3061 ./usr/share/mime/text/x-uri.xml
+-rw-r--r-- root root 2586 ./usr/share/mime/text/x-uuencode.xml
+-rw-r--r-- root root 3062 ./usr/share/mime/text/x-vala.xml
+-rw-r--r-- root root 2676 ./usr/share/mime/text/x-verilog.xml
+-rw-r--r-- root root 2711 ./usr/share/mime/text/x-vhdl.xml
+-rw-r--r-- root root 2710 ./usr/share/mime/text/x-xmi.xml
+-rw-r--r-- root root 2956 ./usr/share/mime/text/x-xslfo.xml
+-rw-r--r-- root root 1140 ./usr/share/mime/treemagic
+-rw-r--r-- root root 17478 ./usr/share/mime/types
+-rw-r--r-- root root 5 ./usr/share/mime/version
+drwxr-xr-x root root 4096 ./usr/share/mime/video
+-rw-r--r-- root root 3285 ./usr/share/mime/video/3gpp2.xml
+-rw-r--r-- root root 3885 ./usr/share/mime/video/3gpp.xml
+-rw-r--r-- root root 1021 ./usr/share/mime/video/annodex.xml
+-rw-r--r-- root root 2734 ./usr/share/mime/video/dv.xml
+-rw-r--r-- root root 2779 ./usr/share/mime/video/isivideo.xml
+-rw-r--r-- root root 1888 ./usr/share/mime/video/mj2.xml
+-rw-r--r-- root root 3455 ./usr/share/mime/video/mp2t.xml
+-rw-r--r-- root root 3007 ./usr/share/mime/video/mp4.xml
+-rw-r--r-- root root 3190 ./usr/share/mime/video/mpeg.xml
+-rw-r--r-- root root 979 ./usr/share/mime/video/ogg.xml
+-rw-r--r-- root root 3114 ./usr/share/mime/video/quicktime.xml
+-rw-r--r-- root root 2948 ./usr/share/mime/video/vnd.mpegurl.xml
+-rw-r--r-- root root 3172 ./usr/share/mime/video/vnd.rn-realvideo.xml
+-rw-r--r-- root root 2913 ./usr/share/mime/video/vnd.vivo.xml
+-rw-r--r-- root root 3006 ./usr/share/mime/video/wavelet.xml
+-rw-r--r-- root root 2461 ./usr/share/mime/video/webm.xml
+-rw-r--r-- root root 3073 ./usr/share/mime/video/x-anim.xml
+-rw-r--r-- root root 2944 ./usr/share/mime/video/x-flic.xml
+-rw-r--r-- root root 2995 ./usr/share/mime/video/x-flv.xml
+-rw-r--r-- root root 2533 ./usr/share/mime/video/x-javafx.xml
+-rw-r--r-- root root 2381 ./usr/share/mime/video/x-matroska-3d.xml
+-rw-r--r-- root root 3095 ./usr/share/mime/video/x-matroska.xml
+-rw-r--r-- root root 1841 ./usr/share/mime/video/x-mjpeg.xml
+-rw-r--r-- root root 2935 ./usr/share/mime/video/x-mng.xml
+-rw-r--r-- root root 3153 ./usr/share/mime/video/x-msvideo.xml
+-rw-r--r-- root root 3200 ./usr/share/mime/video/x-ms-wmv.xml
+-rw-r--r-- root root 2934 ./usr/share/mime/video/x-nsv.xml
+-rw-r--r-- root root 2782 ./usr/share/mime/video/x-ogm+ogg.xml
+-rw-r--r-- root root 2811 ./usr/share/mime/video/x-sgi-movie.xml
+-rw-r--r-- root root 3102 ./usr/share/mime/video/x-theora+ogg.xml
+drwxr-xr-x root root 4096 ./usr/share/mime/x-content
+-rw-r--r-- root root 2504 ./usr/share/mime/x-content/audio-cdda.xml
+-rw-r--r-- root root 2531 ./usr/share/mime/x-content/audio-dvd.xml
+-rw-r--r-- root root 3388 ./usr/share/mime/x-content/audio-player.xml
+-rw-r--r-- root root 2971 ./usr/share/mime/x-content/blank-bd.xml
+-rw-r--r-- root root 2700 ./usr/share/mime/x-content/blank-cd.xml
+-rw-r--r-- root root 2732 ./usr/share/mime/x-content/blank-dvd.xml
+-rw-r--r-- root root 2889 ./usr/share/mime/x-content/blank-hddvd.xml
+-rw-r--r-- root root 2640 ./usr/share/mime/x-content/ebook-reader.xml
+-rw-r--r-- root root 2917 ./usr/share/mime/x-content/image-dcf.xml
+-rw-r--r-- root root 2565 ./usr/share/mime/x-content/image-picturecd.xml
+-rw-r--r-- root root 1123 ./usr/share/mime/x-content/ostree-repository.xml
+-rw-r--r-- root root 2645 ./usr/share/mime/x-content/software.xml
+-rw-r--r-- root root 2645 ./usr/share/mime/x-content/unix-software.xml
+-rw-r--r-- root root 3122 ./usr/share/mime/x-content/video-bluray.xml
+-rw-r--r-- root root 2627 ./usr/share/mime/x-content/video-dvd.xml
+-rw-r--r-- root root 2977 ./usr/share/mime/x-content/video-hddvd.xml
+-rw-r--r-- root root 2791 ./usr/share/mime/x-content/video-svcd.xml
+-rw-r--r-- root root 2509 ./usr/share/mime/x-content/video-vcd.xml
+-rw-r--r-- root root 2773 ./usr/share/mime/x-content/win32-software.xml
+drwxr-xr-x root root 4096 ./usr/share/mime/x-epoc
+-rw-r--r-- root root 2878 ./usr/share/mime/x-epoc/x-sisx-app.xml
+-rw-r--r-- root root 1631 ./usr/share/mime/XMLnamespaces
+drwxr-xr-x root root 4096 ./usr/share/misc
+drwxr-xr-x root root 4096 ./usr/share/pkgconfig
+-rw-r--r-- root root 328 ./usr/share/pkgconfig/bash-completion.pc
+-rw-r--r-- root root 120 ./usr/share/pkgconfig/shared-mime-info.pc
+-rw-r--r-- root root 90 ./usr/share/pkgconfig/udev.pc
+-rw-r--r-- root root 384 ./usr/share/pkgconfig/xorg-macros.pc
+-rw-r--r-- root root 213 ./usr/share/pkgconfig/xtrans.pc
+drwxr-xr-x root root 4096 ./usr/share/ss
+-rw-r--r-- root root 1551 ./usr/share/ss/ct_c.awk
+-rw-r--r-- root root 2290 ./usr/share/ss/ct_c.sed
+drwxr-xr-x root root 4096 ./usr/share/tabset
+-rw-r--r-- root root 135 ./usr/share/tabset/std
+-rw-r--r-- root root 95 ./usr/share/tabset/stdcrt
+-rw-r--r-- root root 160 ./usr/share/tabset/vt100
+-rw-r--r-- root root 64 ./usr/share/tabset/vt300
+drwxr-xr-x root root 4096 ./usr/share/udhcpc
+-rwxr-xr-x root root 49 ./usr/share/udhcpc/default.script
+drwxr-xr-x root root 4096 ./usr/share/wayland
+-rw-r--r-- root root 1266 ./usr/share/wayland/wayland.dtd
+-rw-r--r-- root root 292 ./usr/share/wayland/wayland-scanner.mk
+-rw-r--r-- root root 131466 ./usr/share/wayland/wayland.xml
+drwxr-xr-x root root 4096 ./usr/share/X11
+-rw-r--r-- root root 1723 ./usr/share/X11/Xcms.txt
+-rw-r--r-- root root 42077 ./usr/share/X11/XErrorDB
+drwxr-xr-x root root 4096 ./usr/share/xcb
+-rw-r--r-- root root 1705 ./usr/share/xcb/bigreq.xml
+-rw-r--r-- root root 3473 ./usr/share/xcb/composite.xml
+-rw-r--r-- root root 3299 ./usr/share/xcb/damage.xml
+-rw-r--r-- root root 3155 ./usr/share/xcb/dpms.xml
+-rw-r--r-- root root 9488 ./usr/share/xcb/dri2.xml
+-rw-r--r-- root root 5638 ./usr/share/xcb/dri3.xml
+-rw-r--r-- root root 1863 ./usr/share/xcb/ge.xml
+-rw-r--r-- root root 45351 ./usr/share/xcb/glx.xml
+-rw-r--r-- root root 7335 ./usr/share/xcb/present.xml
+-rw-r--r-- root root 30366 ./usr/share/xcb/randr.xml
+-rw-r--r-- root root 5924 ./usr/share/xcb/record.xml
+-rw-r--r-- root root 23693 ./usr/share/xcb/render.xml
+-rw-r--r-- root root 5912 ./usr/share/xcb/res.xml
+-rw-r--r-- root root 6573 ./usr/share/xcb/screensaver.xml
+-rw-r--r-- root root 6039 ./usr/share/xcb/shape.xml
+-rw-r--r-- root root 4778 ./usr/share/xcb/shm.xml
+-rw-r--r-- root root 8390 ./usr/share/xcb/sync.xml
+-rw-r--r-- root root 16132 ./usr/share/xcb/xcb.xsd
+-rw-r--r-- root root 1162 ./usr/share/xcb/xc_misc.xml
+-rw-r--r-- root root 2958 ./usr/share/xcb/xevie.xml
+-rw-r--r-- root root 5900 ./usr/share/xcb/xf86dri.xml
+-rw-r--r-- root root 14673 ./usr/share/xcb/xf86vidmode.xml
+-rw-r--r-- root root 12074 ./usr/share/xcb/xfixes.xml
+-rw-r--r-- root root 3453 ./usr/share/xcb/xinerama.xml
+-rw-r--r-- root root 103534 ./usr/share/xcb/xinput.xml
+-rw-r--r-- root root 91919 ./usr/share/xcb/xkb.xml
+-rw-r--r-- root root 11134 ./usr/share/xcb/xprint.xml
+-rw-r--r-- root root 206253 ./usr/share/xcb/xproto.xml
+-rw-r--r-- root root 8260 ./usr/share/xcb/xselinux.xml
+-rw-r--r-- root root 3968 ./usr/share/xcb/xtest.xml
+-rw-r--r-- root root 5363 ./usr/share/xcb/xvmc.xml
+-rw-r--r-- root root 16061 ./usr/share/xcb/xv.xml
+drwxr-xr-x root root 4096 ./usr/share/xml
+drwxr-xr-x root root 4096 ./usr/share/xml/dbus-1
+-rw-r--r-- root root 1907 ./usr/share/xml/dbus-1/busconfig.dtd
+-rw-r--r-- root root 1226 ./usr/share/xml/dbus-1/introspect.dtd
+drwxr-xr-x root root 4096 ./usr/share/xml/fontconfig
+-rw-r--r-- root root 7250 ./usr/share/xml/fontconfig/fonts.dtd
+drwxr-xr-x root root 4096 ./usr/src
+drwxr-xr-x root root 4096 ./usr/x86_64-poky-linux
+drwxr-xr-x root root 4096 ./usr/x86_64-poky-linux/bin
+lrwxrwxrwx root root 30 ./usr/x86_64-poky-linux/bin/ar -> ../../bin/x86_64-poky-linux-ar
+lrwxrwxrwx root root 30 ./usr/x86_64-poky-linux/bin/as -> ../../bin/x86_64-poky-linux-as
+lrwxrwxrwx root root 34 ./usr/x86_64-poky-linux/bin/ld.bfd -> ../../bin/x86_64-poky-linux-ld.bfd
+lrwxrwxrwx root root 30 ./usr/x86_64-poky-linux/bin/ld -> ../../bin/x86_64-poky-linux-ld
+lrwxrwxrwx root root 35 ./usr/x86_64-poky-linux/bin/ld.gold -> ../../bin/x86_64-poky-linux-ld.gold
+lrwxrwxrwx root root 30 ./usr/x86_64-poky-linux/bin/nm -> ../../bin/x86_64-poky-linux-nm
+lrwxrwxrwx root root 35 ./usr/x86_64-poky-linux/bin/objcopy -> ../../bin/x86_64-poky-linux-objcopy
+lrwxrwxrwx root root 35 ./usr/x86_64-poky-linux/bin/objdump -> ../../bin/x86_64-poky-linux-objdump
+lrwxrwxrwx root root 34 ./usr/x86_64-poky-linux/bin/ranlib -> ../../bin/x86_64-poky-linux-ranlib
+lrwxrwxrwx root root 35 ./usr/x86_64-poky-linux/bin/readelf -> ../../bin/x86_64-poky-linux-readelf
+lrwxrwxrwx root root 33 ./usr/x86_64-poky-linux/bin/strip -> ../../bin/x86_64-poky-linux-strip
+drwxr-xr-x root root 4096 ./var
+drwxr-xr-x root root 4096 ./var/backups
+drwxr-xr-x root root 4096 ./var/cache
+drwxr-xr-x root root 4096 ./var/cache/fontconfig
+drwx------ root root 4096 ./var/cache/ldconfig
+-rw------- root root 9934 ./var/cache/ldconfig/aux-cache
+drwxr-xr-x root root 4096 ./var/db
+-rwxr-xr-x root root 4453 ./var/db/makedbs.sh
+-rw-r--r-- root root 5351 ./var/db/Makefile
+drwxr-xr-x root root 4096 ./var/lib
+drwxr-xr-x root root 4096 ./var/lib/arpd
+drwxr-xr-x messagebus messagebus 4096 ./var/lib/dbus
+drwxr-xr-x root root 4096 ./var/lib/misc
+drwxr-xr-x root root 4096 ./var/lib/urandom
+drwxr-xr-x root root 4096 ./var/local
+lrwxrwxrwx root root 11 ./var/lock -> ../run/lock
+lrwxrwxrwx root root 12 ./var/log -> volatile/log
+lrwxrwxrwx root root 6 ./var/run -> ../run
+drwxr-xr-x root root 4096 ./var/spool
+drwxrwxr-x root mail 4096 ./var/spool/mail
+lrwxrwxrwx root root 12 ./var/tmp -> volatile/tmp
+drwxr-xr-x root root 4096 ./var/volatile
diff --git a/meta/lib/oeqa/files/buildhistory_filelist2.txt b/meta/lib/oeqa/files/buildhistory_filelist2.txt
new file mode 100644
index 0000000000..ac6307060d
--- /dev/null
+++ b/meta/lib/oeqa/files/buildhistory_filelist2.txt
@@ -0,0 +1,9217 @@
+drwxr-xr-x root root 4096 ./bin
+lrwxrwxrwx root root 19 ./bin/ash -> /bin/busybox.nosuid
+lrwxrwxrwx root root 25 ./bin/base64 -> /usr/bin/base64.coreutils
+-rwxr-xr-x root root 1190872 ./bin/bash.bash
+lrwxrwxrwx root root 14 ./bin/bash -> /bin/bash.bash
+lrwxrwxrwx root root 14 ./bin/busybox -> busybox.nosuid
+-rwxr-xr-x root root 613008 ./bin/busybox.nosuid
+-rwsr-xr-x root root 59440 ./bin/busybox.suid
+lrwxrwxrwx root root 18 ./bin/cat -> /bin/cat.coreutils
+-rwxr-xr-x root root 47336 ./bin/cat.coreutils
+lrwxrwxrwx root root 21 ./bin/chattr -> /bin/chattr.e2fsprogs
+-rwxr-xr-x root root 14312 ./bin/chattr.e2fsprogs
+lrwxrwxrwx root root 20 ./bin/chgrp -> /bin/chgrp.coreutils
+-rwxr-xr-x root root 75944 ./bin/chgrp.coreutils
+lrwxrwxrwx root root 20 ./bin/chmod -> /bin/chmod.coreutils
+-rwxr-xr-x root root 71880 ./bin/chmod.coreutils
+lrwxrwxrwx root root 20 ./bin/chown -> /bin/chown.coreutils
+-rwxr-xr-x root root 80040 ./bin/chown.coreutils
+lrwxrwxrwx root root 17 ./bin/cp -> /bin/cp.coreutils
+-rwxr-xr-x root root 137416 ./bin/cp.coreutils
+lrwxrwxrwx root root 19 ./bin/cpio -> /bin/busybox.nosuid
+lrwxrwxrwx root root 19 ./bin/date -> /bin/date.coreutils
+-rwxr-xr-x root root 121032 ./bin/date.coreutils
+lrwxrwxrwx root root 17 ./bin/dd -> /bin/dd.coreutils
+-rwxr-xr-x root root 88272 ./bin/dd.coreutils
+lrwxrwxrwx root root 21 ./bin/df -> /usr/bin/df.coreutils
+lrwxrwxrwx root root 21 ./bin/dmesg -> /bin/dmesg.util-linux
+-rwxr-xr-x root root 84256 ./bin/dmesg.util-linux
+lrwxrwxrwx root root 19 ./bin/dnsdomainname -> /bin/busybox.nosuid
+lrwxrwxrwx root root 19 ./bin/dumpkmap -> /bin/busybox.nosuid
+lrwxrwxrwx root root 19 ./bin/echo -> /bin/echo.coreutils
+-rwxr-xr-x root root 39064 ./bin/echo.coreutils
+lrwxrwxrwx root root 15 ./bin/egrep -> /bin/egrep.grep
+-rwxr-xr-x root root 28 ./bin/egrep.grep
+lrwxrwxrwx root root 20 ./bin/false -> /bin/false.coreutils
+-rwxr-xr-x root root 39064 ./bin/false.coreutils
+lrwxrwxrwx root root 15 ./bin/fgrep -> /bin/fgrep.grep
+-rwxr-xr-x root root 28 ./bin/fgrep.grep
+lrwxrwxrwx root root 22 ./bin/getopt -> /bin/getopt.util-linux
+-rwxr-xr-x root root 22576 ./bin/getopt.util-linux
+lrwxrwxrwx root root 14 ./bin/grep -> /bin/grep.grep
+-rwxr-xr-x root root 244016 ./bin/grep.grep
+lrwxrwxrwx root root 19 ./bin/gunzip -> /bin/busybox.nosuid
+lrwxrwxrwx root root 19 ./bin/gzip -> /bin/busybox.nosuid
+lrwxrwxrwx root root 23 ./bin/hostname -> /bin/hostname.coreutils
+-rwxr-xr-x root root 43176 ./bin/hostname.coreutils
+lrwxrwxrwx root root 16 ./bin/kill -> /bin/kill.procps
+-rwxr-xr-x root root 47712 ./bin/kill.coreutils
+-rwxr-xr-x root root 30760 ./bin/kill.procps
+-rwxr-xr-x root root 38960 ./bin/kill.util-linux
+-rwxr-xr-x root root 149648 ./bin/kmod
+lrwxrwxrwx root root 17 ./bin/ln -> /bin/ln.coreutils
+-rwxr-xr-x root root 75984 ./bin/ln.coreutils
+lrwxrwxrwx root root 17 ./bin/login -> /bin/login.shadow
+-rwxr-xr-x root root 73120 ./bin/login.shadow
+lrwxrwxrwx root root 17 ./bin/ls -> /bin/ls.coreutils
+-rwxr-xr-x root root 162448 ./bin/ls.coreutils
+lrwxrwxrwx root root 15 ./bin/lsmod -> /bin/lsmod.kmod
+lrwxrwxrwx root root 4 ./bin/lsmod.kmod -> kmod
+lrwxrwxrwx root root 20 ./bin/mkdir -> /bin/mkdir.coreutils
+-rwxr-xr-x root root 67752 ./bin/mkdir.coreutils
+lrwxrwxrwx root root 20 ./bin/mknod -> /bin/mknod.coreutils
+-rwxr-xr-x root root 47272 ./bin/mknod.coreutils
+lrwxrwxrwx root root 25 ./bin/mktemp -> /usr/bin/mktemp.coreutils
+lrwxrwxrwx root root 20 ./bin/more -> /bin/more.util-linux
+-rwxr-xr-x root root 42976 ./bin/more.util-linux
+lrwxrwxrwx root root 21 ./bin/mount -> /bin/mount.util-linux
+lrwxrwxrwx root root 26 ./bin/mountpoint -> /bin/mountpoint.util-linux
+-rwxr-xr-x root root 14304 ./bin/mountpoint.sysvinit
+-rwxr-xr-x root root 18480 ./bin/mountpoint.util-linux
+-rwsr-xr-x root root 55344 ./bin/mount.util-linux
+lrwxrwxrwx root root 17 ./bin/mv -> /bin/mv.coreutils
+-rwxr-xr-x root root 145616 ./bin/mv.coreutils
+lrwxrwxrwx root root 19 ./bin/netstat -> /bin/busybox.nosuid
+lrwxrwxrwx root root 23 ./bin/nice -> /usr/bin/nice.coreutils
+lrwxrwxrwx root root 19 ./bin/pidof -> /bin/pidof.sysvinit
+-rwxr-xr-x root root 22568 ./bin/pidof.procps
+lrwxrwxrwx root root 14 ./bin/pidof.sysvinit -> /sbin/killall5
+lrwxrwxrwx root root 17 ./bin/ping6 -> /bin/busybox.suid
+lrwxrwxrwx root root 17 ./bin/ping -> /bin/busybox.suid
+lrwxrwxrwx root root 27 ./bin/printenv -> /usr/bin/printenv.coreutils
+lrwxrwxrwx root root 14 ./bin/ps -> /bin/ps.procps
+-rwxr-xr-x root root 137496 ./bin/ps.procps
+lrwxrwxrwx root root 18 ./bin/pwd -> /bin/pwd.coreutils
+-rwxr-xr-x root root 47272 ./bin/pwd.coreutils
+lrwxrwxrwx root root 17 ./bin/rm -> /bin/rm.coreutils
+-rwxr-xr-x root root 75976 ./bin/rm.coreutils
+lrwxrwxrwx root root 20 ./bin/rmdir -> /bin/rmdir.coreutils
+-rwxr-xr-x root root 55464 ./bin/rmdir.coreutils
+lrwxrwxrwx root root 19 ./bin/run-parts -> /bin/busybox.nosuid
+lrwxrwxrwx root root 12 ./bin/sed -> /bin/sed.sed
+-rwxr-xr-x root root 190896 ./bin/sed.sed
+lrwxrwxrwx root root 14 ./bin/sh -> /bin/bash.bash
+lrwxrwxrwx root root 20 ./bin/sleep -> /bin/sleep.coreutils
+-rwxr-xr-x root root 43176 ./bin/sleep.coreutils
+-rwxr-xr-x root root 1736 ./bin/start_getty
+lrwxrwxrwx root root 19 ./bin/stat -> /bin/stat.coreutils
+-rwxr-xr-x root root 96456 ./bin/stat.coreutils
+lrwxrwxrwx root root 19 ./bin/stty -> /bin/stty.coreutils
+-rwxr-xr-x root root 92360 ./bin/stty.coreutils
+lrwxrwxrwx root root 14 ./bin/su -> /bin/su.shadow
+-rwsr-xr-x root root 60992 ./bin/su.shadow
+lrwxrwxrwx root root 19 ./bin/sync -> /bin/sync.coreutils
+-rwxr-xr-x root root 43176 ./bin/sync.coreutils
+lrwxrwxrwx root root 19 ./bin/tar -> /bin/busybox.nosuid
+lrwxrwxrwx root root 20 ./bin/touch -> /bin/touch.coreutils
+-rwxr-xr-x root root 108744 ./bin/touch.coreutils
+lrwxrwxrwx root root 19 ./bin/true -> /bin/true.coreutils
+-rwxr-xr-x root root 39064 ./bin/true.coreutils
+lrwxrwxrwx root root 22 ./bin/umount -> /bin/umount.util-linux
+-rwsr-xr-x root root 34864 ./bin/umount.util-linux
+lrwxrwxrwx root root 20 ./bin/uname -> /bin/uname.coreutils
+-rwxr-xr-x root root 43208 ./bin/uname.coreutils
+lrwxrwxrwx root root 19 ./bin/usleep -> /bin/busybox.nosuid
+lrwxrwxrwx root root 19 ./bin/vi -> /bin/busybox.nosuid
+lrwxrwxrwx root root 17 ./bin/watch -> /bin/watch.procps
+-rwxr-xr-x root root 27016 ./bin/watch.procps
+lrwxrwxrwx root root 19 ./bin/zcat -> /bin/busybox.nosuid
+drwxr-xr-x root root 4096 ./boot
+drwxr-xr-x root root 4096 ./dev
+drwxr-xr-x root root 4096 ./etc
+-rw-r--r-- root root 45 ./etc/bash_completion
+drwxr-xr-x root root 4096 ./etc/bash_completion.d
+-rw-r--r-- root root 447 ./etc/bindresvport.blacklist
+-rw-r--r-- root root 521 ./etc/build
+-rw-r--r-- root root 2370 ./etc/busybox.links.nosuid
+-rw-r--r-- root root 91 ./etc/busybox.links.suid
+drwxr-xr-x root root 4096 ./etc/ca-certificates
+-rw-r--r-- root root 5340 ./etc/ca-certificates.conf
+drwxr-xr-x root root 4096 ./etc/ca-certificates/update.d
+drwxr-xr-x root root 4096 ./etc/dbus-1
+-rw-r--r-- root root 838 ./etc/dbus-1/session.conf
+-rw-r--r-- root root 833 ./etc/dbus-1/system.conf
+drwxr-xr-x root root 4096 ./etc/default
+-rwxr-xr-x root root 93 ./etc/default/devpts
+-rw-r--r-- root root 36 ./etc/default/mountall
+-rw-r--r-- root root 52 ./etc/default/postinst
+-rw-r--r-- root root 1040 ./etc/default/rcS
+-rw-r--r-- root root 117 ./etc/default/useradd
+drwxr-xr-x root root 4096 ./etc/default/volatiles
+-rw-r--r-- root root 1637 ./etc/default/volatiles/00_core
+-rw-r--r-- root root 36 ./etc/default/volatiles/01_bootlogd
+-rw-r--r-- root root 48 ./etc/default/volatiles/99_dbus
+drwxr-xr-x root root 4096 ./etc/depmod.d
+-rw-r--r-- root root 685 ./etc/e2scrub.conf
+drwxr-xr-x root root 4096 ./etc/fonts
+drwxr-xr-x root root 4096 ./etc/fonts/conf.d
+lrwxrwxrwx root root 63 ./etc/fonts/conf.d/10-hinting-slight.conf -> ../../../usr/share/fontconfig/conf.avail/10-hinting-slight.conf
+lrwxrwxrwx root root 67 ./etc/fonts/conf.d/10-scale-bitmap-fonts.conf -> ../../../usr/share/fontconfig/conf.avail/10-scale-bitmap-fonts.conf
+lrwxrwxrwx root root 66 ./etc/fonts/conf.d/20-unhint-small-vera.conf -> ../../../usr/share/fontconfig/conf.avail/20-unhint-small-vera.conf
+lrwxrwxrwx root root 63 ./etc/fonts/conf.d/30-metric-aliases.conf -> ../../../usr/share/fontconfig/conf.avail/30-metric-aliases.conf
+lrwxrwxrwx root root 57 ./etc/fonts/conf.d/40-nonlatin.conf -> ../../../usr/share/fontconfig/conf.avail/40-nonlatin.conf
+lrwxrwxrwx root root 56 ./etc/fonts/conf.d/45-generic.conf -> ../../../usr/share/fontconfig/conf.avail/45-generic.conf
+lrwxrwxrwx root root 54 ./etc/fonts/conf.d/45-latin.conf -> ../../../usr/share/fontconfig/conf.avail/45-latin.conf
+lrwxrwxrwx root root 58 ./etc/fonts/conf.d/49-sansserif.conf -> ../../../usr/share/fontconfig/conf.avail/49-sansserif.conf
+lrwxrwxrwx root root 53 ./etc/fonts/conf.d/50-user.conf -> ../../../usr/share/fontconfig/conf.avail/50-user.conf
+lrwxrwxrwx root root 54 ./etc/fonts/conf.d/51-local.conf -> ../../../usr/share/fontconfig/conf.avail/51-local.conf
+lrwxrwxrwx root root 56 ./etc/fonts/conf.d/60-generic.conf -> ../../../usr/share/fontconfig/conf.avail/60-generic.conf
+lrwxrwxrwx root root 54 ./etc/fonts/conf.d/60-latin.conf -> ../../../usr/share/fontconfig/conf.avail/60-latin.conf
+lrwxrwxrwx root root 62 ./etc/fonts/conf.d/65-fonts-persian.conf -> ../../../usr/share/fontconfig/conf.avail/65-fonts-persian.conf
+lrwxrwxrwx root root 57 ./etc/fonts/conf.d/65-nonlatin.conf -> ../../../usr/share/fontconfig/conf.avail/65-nonlatin.conf
+lrwxrwxrwx root root 56 ./etc/fonts/conf.d/69-unifont.conf -> ../../../usr/share/fontconfig/conf.avail/69-unifont.conf
+lrwxrwxrwx root root 58 ./etc/fonts/conf.d/80-delicious.conf -> ../../../usr/share/fontconfig/conf.avail/80-delicious.conf
+lrwxrwxrwx root root 58 ./etc/fonts/conf.d/90-synthetic.conf -> ../../../usr/share/fontconfig/conf.avail/90-synthetic.conf
+-rw-r--r-- root root 978 ./etc/fonts/conf.d/README
+-rw-r--r-- root root 2532 ./etc/fonts/fonts.conf
+-rw-r--r-- root root 650 ./etc/fstab
+-rw-r--r-- root root 501 ./etc/group
+-r-------- root root 420 ./etc/gshadow
+-rw-r--r-- root root 26 ./etc/host.conf
+-rw-r--r-- root root 11 ./etc/hostname
+-rw-r--r-- root root 258 ./etc/hosts
+drwxr-xr-x root root 4096 ./etc/init.d
+-rwxr-xr-x root root 492 ./etc/init.d/banner.sh
+-rwxr-xr-x root root 1997 ./etc/init.d/bootlogd
+-rwxr-xr-x root root 2017 ./etc/init.d/bootmisc.sh
+-rwxr-xr-x root root 3591 ./etc/init.d/checkroot.sh
+-rwxr-xr-x root root 2893 ./etc/init.d/dbus-1
+-rwxr-xr-x root root 526 ./etc/init.d/devpts.sh
+-rwxr-xr-x root root 352 ./etc/init.d/dmesg.sh
+-rw-r--r-- root root 2141 ./etc/init.d/functions
+-rwxr-xr-x root root 510 ./etc/init.d/halt
+-rwxr-xr-x root root 580 ./etc/init.d/hostname.sh
+-rwxr-xr-x root root 2541 ./etc/init.d/hwclock.sh
+-rwxr-xr-x root root 1773 ./etc/init.d/mdmonitor
+-rwxr-xr-x root root 1223 ./etc/init.d/modutils.sh
+-rwxr-xr-x root root 869 ./etc/init.d/mountall.sh
+-rwxr-xr-x root root 1589 ./etc/init.d/mountnfs.sh
+-rwxr-xr-x root root 1956 ./etc/init.d/networking
+-rwxr-xr-x root root 7823 ./etc/init.d/populate-volatile.sh
+-rwxr-xr-x root root 4457 ./etc/init.d/rc
+-rwxr-xr-x root root 525 ./etc/init.d/rcS
+-rwxr-xr-x root root 1273 ./etc/init.d/read-only-rootfs-hook.sh
+-rwxr-xr-x root root 289 ./etc/init.d/reboot
+-rwxr-xr-x root root 585 ./etc/init.d/rmnologin.sh
+-rwxr-xr-x root root 25 ./etc/init.d/run-postinsts
+-rwxr-xr-x root root 429 ./etc/init.d/save-rtc.sh
+-rwxr-xr-x root root 438 ./etc/init.d/sendsigs
+-rwxr-xr-x root root 578 ./etc/init.d/single
+lrwxrwxrwx root root 8 ./etc/init.d/stop-bootlogd -> bootlogd
+-rwxr-xr-x root root 1046 ./etc/init.d/sysfs.sh
+-rwxr-xr-x root root 2066 ./etc/init.d/syslog
+-rwxr-xr-x root root 2779 ./etc/init.d/udev
+-rwxr-xr-x root root 540 ./etc/init.d/umountfs
+-rwxr-xr-x root root 711 ./etc/init.d/umountnfs.sh
+-rwxr-xr-x root root 1473 ./etc/init.d/urandom
+-rw-r--r-- root root 1140 ./etc/inittab
+-rw-r--r-- root root 1633 ./etc/inputrc
+drwxr-xr-x root root 4096 ./etc/iproute2
+-rw-r--r-- root root 85 ./etc/iproute2/bpf_pinning
+-rw-r--r-- root root 81 ./etc/iproute2/ematch_map
+-rw-r--r-- root root 31 ./etc/iproute2/group
+-rw-r--r-- root root 262 ./etc/iproute2/nl_protos
+-rw-r--r-- root root 331 ./etc/iproute2/rt_dsfield
+-rw-r--r-- root root 201 ./etc/iproute2/rt_protos
+-rw-r--r-- root root 112 ./etc/iproute2/rt_realms
+-rw-r--r-- root root 92 ./etc/iproute2/rt_scopes
+-rw-r--r-- root root 87 ./etc/iproute2/rt_tables
+drwxr-xr-x root root 4096 ./etc/iptables
+-rw-r--r-- root root 0 ./etc/iptables/ip6tables.rules
+-rw-r--r-- root root 0 ./etc/iptables/iptables.rules
+-rw-r--r-- root root 58 ./etc/issue
+-rw-r--r-- root root 55 ./etc/issue.net
+-rw-r--r-- root root 18635 ./etc/ld.so.cache
+-rw-r--r-- root root 33 ./etc/ld.so.conf
+-rw-r--r-- root root 827 ./etc/limits
+-rw-r--r-- root root 2006 ./etc/login.access
+-rw-r--r-- root root 12001 ./etc/login.defs
+-rw-r--r-- root root 121 ./etc/logrotate-dmesg.conf
+-rw-r--r-- root root 2687 ./etc/mdadm.conf
+-rw-r--r-- root root 812 ./etc/mke2fs.conf
+drwxr-xr-x root root 4096 ./etc/modprobe.d
+-rw-r--r-- root root 0 ./etc/motd
+lrwxrwxrwx root root 12 ./etc/mtab -> /proc/mounts
+-rw-r--r-- root root 767 ./etc/netconfig
+drwxr-xr-x root root 4096 ./etc/network
+drwxr-xr-x root root 4096 ./etc/network/if-down.d
+drwxr-xr-x root root 4096 ./etc/network/if-post-down.d
+drwxr-xr-x root root 4096 ./etc/network/if-pre-up.d
+-rwxr-xr-x root root 809 ./etc/network/if-pre-up.d/nfsroot
+drwxr-xr-x root root 4096 ./etc/network/if-up.d
+-rw-r--r-- root root 132 ./etc/network/interfaces
+-rw-r--r-- root root 0 ./etc/network/nm-disabled-eth0
+-rw-r--r-- root root 465 ./etc/nsswitch.conf
+-rw-r--r-- root root 767 ./etc/passwd
+-rw-r--r-- root root 984 ./etc/profile
+drwxr-xr-x root root 4096 ./etc/profile.d
+-rw-r--r-- root root 729 ./etc/profile.d/bash_completion.sh
+-rw-r--r-- root root 1107 ./etc/profile.d/gawk.csh
+-rw-r--r-- root root 757 ./etc/profile.d/gawk.sh
+-rw-r--r-- root root 2932 ./etc/protocols
+drwxr-xr-x root root 4096 ./etc/rc0.d
+lrwxrwxrwx root root 16 ./etc/rc0.d/K20dbus-1 -> ../init.d/dbus-1
+lrwxrwxrwx root root 20 ./etc/rc0.d/K20hwclock.sh -> ../init.d/hwclock.sh
+lrwxrwxrwx root root 16 ./etc/rc0.d/K20syslog -> ../init.d/syslog
+lrwxrwxrwx root root 20 ./etc/rc0.d/K80networking -> ../init.d/networking
+lrwxrwxrwx root root 18 ./etc/rc0.d/S20sendsigs -> ../init.d/sendsigs
+lrwxrwxrwx root root 21 ./etc/rc0.d/S25save-rtc.sh -> ../init.d/save-rtc.sh
+lrwxrwxrwx root root 22 ./etc/rc0.d/S31umountnfs.sh -> ../init.d/umountnfs.sh
+lrwxrwxrwx root root 17 ./etc/rc0.d/S38urandom -> ../init.d/urandom
+lrwxrwxrwx root root 18 ./etc/rc0.d/S40umountfs -> ../init.d/umountfs
+lrwxrwxrwx root root 14 ./etc/rc0.d/S90halt -> ../init.d/halt
+drwxr-xr-x root root 4096 ./etc/rc1.d
+lrwxrwxrwx root root 16 ./etc/rc1.d/K20dbus-1 -> ../init.d/dbus-1
+lrwxrwxrwx root root 20 ./etc/rc1.d/K20hwclock.sh -> ../init.d/hwclock.sh
+lrwxrwxrwx root root 16 ./etc/rc1.d/K20syslog -> ../init.d/syslog
+lrwxrwxrwx root root 20 ./etc/rc1.d/K80networking -> ../init.d/networking
+lrwxrwxrwx root root 22 ./etc/rc1.d/S31umountnfs.sh -> ../init.d/umountnfs.sh
+drwxr-xr-x root root 4096 ./etc/rc2.d
+lrwxrwxrwx root root 20 ./etc/rc2.d/S01networking -> ../init.d/networking
+lrwxrwxrwx root root 16 ./etc/rc2.d/S02dbus-1 -> ../init.d/dbus-1
+lrwxrwxrwx root root 21 ./etc/rc2.d/S15mountnfs.sh -> ../init.d/mountnfs.sh
+lrwxrwxrwx root root 20 ./etc/rc2.d/S20hwclock.sh -> ../init.d/hwclock.sh
+lrwxrwxrwx root root 16 ./etc/rc2.d/S20syslog -> ../init.d/syslog
+lrwxrwxrwx root root 22 ./etc/rc2.d/S99rmnologin.sh -> ../init.d/rmnologin.sh
+lrwxrwxrwx root root 23 ./etc/rc2.d/S99stop-bootlogd -> ../init.d/stop-bootlogd
+drwxr-xr-x root root 4096 ./etc/rc3.d
+lrwxrwxrwx root root 20 ./etc/rc3.d/S01networking -> ../init.d/networking
+lrwxrwxrwx root root 16 ./etc/rc3.d/S02dbus-1 -> ../init.d/dbus-1
+lrwxrwxrwx root root 21 ./etc/rc3.d/S15mountnfs.sh -> ../init.d/mountnfs.sh
+lrwxrwxrwx root root 20 ./etc/rc3.d/S20hwclock.sh -> ../init.d/hwclock.sh
+lrwxrwxrwx root root 16 ./etc/rc3.d/S20syslog -> ../init.d/syslog
+lrwxrwxrwx root root 22 ./etc/rc3.d/S99rmnologin.sh -> ../init.d/rmnologin.sh
+lrwxrwxrwx root root 23 ./etc/rc3.d/S99stop-bootlogd -> ../init.d/stop-bootlogd
+drwxr-xr-x root root 4096 ./etc/rc4.d
+lrwxrwxrwx root root 20 ./etc/rc4.d/S01networking -> ../init.d/networking
+lrwxrwxrwx root root 21 ./etc/rc4.d/S15mountnfs.sh -> ../init.d/mountnfs.sh
+lrwxrwxrwx root root 20 ./etc/rc4.d/S20hwclock.sh -> ../init.d/hwclock.sh
+lrwxrwxrwx root root 16 ./etc/rc4.d/S20syslog -> ../init.d/syslog
+lrwxrwxrwx root root 22 ./etc/rc4.d/S99rmnologin.sh -> ../init.d/rmnologin.sh
+lrwxrwxrwx root root 23 ./etc/rc4.d/S99stop-bootlogd -> ../init.d/stop-bootlogd
+drwxr-xr-x root root 4096 ./etc/rc5.d
+lrwxrwxrwx root root 20 ./etc/rc5.d/S01networking -> ../init.d/networking
+lrwxrwxrwx root root 16 ./etc/rc5.d/S02dbus-1 -> ../init.d/dbus-1
+lrwxrwxrwx root root 21 ./etc/rc5.d/S15mountnfs.sh -> ../init.d/mountnfs.sh
+lrwxrwxrwx root root 20 ./etc/rc5.d/S20hwclock.sh -> ../init.d/hwclock.sh
+lrwxrwxrwx root root 16 ./etc/rc5.d/S20syslog -> ../init.d/syslog
+lrwxrwxrwx root root 22 ./etc/rc5.d/S99rmnologin.sh -> ../init.d/rmnologin.sh
+lrwxrwxrwx root root 23 ./etc/rc5.d/S99stop-bootlogd -> ../init.d/stop-bootlogd
+drwxr-xr-x root root 4096 ./etc/rc6.d
+lrwxrwxrwx root root 16 ./etc/rc6.d/K20dbus-1 -> ../init.d/dbus-1
+lrwxrwxrwx root root 20 ./etc/rc6.d/K20hwclock.sh -> ../init.d/hwclock.sh
+lrwxrwxrwx root root 16 ./etc/rc6.d/K20syslog -> ../init.d/syslog
+lrwxrwxrwx root root 20 ./etc/rc6.d/K80networking -> ../init.d/networking
+lrwxrwxrwx root root 18 ./etc/rc6.d/S20sendsigs -> ../init.d/sendsigs
+lrwxrwxrwx root root 21 ./etc/rc6.d/S25save-rtc.sh -> ../init.d/save-rtc.sh
+lrwxrwxrwx root root 22 ./etc/rc6.d/S31umountnfs.sh -> ../init.d/umountnfs.sh
+lrwxrwxrwx root root 17 ./etc/rc6.d/S38urandom -> ../init.d/urandom
+lrwxrwxrwx root root 18 ./etc/rc6.d/S40umountfs -> ../init.d/umountfs
+lrwxrwxrwx root root 16 ./etc/rc6.d/S90reboot -> ../init.d/reboot
+drwxr-xr-x root root 4096 ./etc/rcS.d
+lrwxrwxrwx root root 19 ./etc/rcS.d/S02banner.sh -> ../init.d/banner.sh
+lrwxrwxrwx root root 18 ./etc/rcS.d/S02sysfs.sh -> ../init.d/sysfs.sh
+lrwxrwxrwx root root 21 ./etc/rcS.d/S03mountall.sh -> ../init.d/mountall.sh
+lrwxrwxrwx root root 14 ./etc/rcS.d/S04udev -> ../init.d/udev
+lrwxrwxrwx root root 21 ./etc/rcS.d/S05modutils.sh -> ../init.d/modutils.sh
+lrwxrwxrwx root root 22 ./etc/rcS.d/S06checkroot.sh -> ../init.d/checkroot.sh
+lrwxrwxrwx root root 19 ./etc/rcS.d/S06devpts.sh -> ../init.d/devpts.sh
+lrwxrwxrwx root root 18 ./etc/rcS.d/S07bootlogd -> ../init.d/bootlogd
+lrwxrwxrwx root root 34 ./etc/rcS.d/S29read-only-rootfs-hook.sh -> ../init.d/read-only-rootfs-hook.sh
+lrwxrwxrwx root root 21 ./etc/rcS.d/S36bootmisc.sh -> ../init.d/bootmisc.sh
+lrwxrwxrwx root root 30 ./etc/rcS.d/S37populate-volatile.sh -> ../init.d/populate-volatile.sh
+lrwxrwxrwx root root 18 ./etc/rcS.d/S38dmesg.sh -> ../init.d/dmesg.sh
+lrwxrwxrwx root root 17 ./etc/rcS.d/S38urandom -> ../init.d/urandom
+lrwxrwxrwx root root 21 ./etc/rcS.d/S39hostname.sh -> ../init.d/hostname.sh
+-rw-r--r-- root root 887 ./etc/rpc
+-r-------- root root 1848 ./etc/securetty
+-rw-r--r-- root root 14464 ./etc/services
+-r-------- root root 404 ./etc/shadow
+-rw-r--r-- root root 52 ./etc/shells
+drwxr-xr-x root root 4096 ./etc/skel
+-rwxr-xr-x root root 410 ./etc/skel/.bashrc
+-rwxr-xr-x root root 241 ./etc/skel/.profile
+drwxr-xr-x root root 4096 ./etc/ssl
+drwxr-xr-x root root 16384 ./etc/ssl/certs
+lrwxrwxrwx root root 45 ./etc/ssl/certs/02265526.0 -> Entrust_Root_Certification_Authority_-_G2.pem
+lrwxrwxrwx root root 36 ./etc/ssl/certs/03179a64.0 -> Staat_der_Nederlanden_EV_Root_CA.pem
+lrwxrwxrwx root root 27 ./etc/ssl/certs/062cdee6.0 -> GlobalSign_Root_CA_-_R3.pem
+lrwxrwxrwx root root 25 ./etc/ssl/certs/064e0aa9.0 -> QuoVadis_Root_CA_2_G3.pem
+lrwxrwxrwx root root 50 ./etc/ssl/certs/06dc52d5.0 -> SSL.com_EV_Root_Certification_Authority_RSA_R2.pem
+lrwxrwxrwx root root 20 ./etc/ssl/certs/080911ac.0 -> QuoVadis_Root_CA.pem
+lrwxrwxrwx root root 54 ./etc/ssl/certs/09789157.0 -> Starfield_Services_Root_Certificate_Authority_-_G2.pem
+lrwxrwxrwx root root 16 ./etc/ssl/certs/0b1b94ef.0 -> CFCA_EV_ROOT.pem
+lrwxrwxrwx root root 44 ./etc/ssl/certs/0bf05006.0 -> SSL.com_Root_Certification_Authority_ECC.pem
+lrwxrwxrwx root root 34 ./etc/ssl/certs/0c4c9b6c.0 -> Global_Chambersign_Root_-_2008.pem
+lrwxrwxrwx root root 26 ./etc/ssl/certs/0f6fa695.0 -> GDCA_TrustAUTH_R5_ROOT.pem
+lrwxrwxrwx root root 46 ./etc/ssl/certs/106f3e4d.0 -> Entrust_Root_Certification_Authority_-_EC1.pem
+lrwxrwxrwx root root 49 ./etc/ssl/certs/116bf586.0 -> GeoTrust_Primary_Certification_Authority_-_G2.pem
+lrwxrwxrwx root root 35 ./etc/ssl/certs/128805a3.0 -> EE_Certification_Centre_Root_CA.pem
+lrwxrwxrwx root root 26 ./etc/ssl/certs/157753a5.0 -> AddTrust_External_Root.pem
+lrwxrwxrwx root root 59 ./etc/ssl/certs/1636090b.0 -> Hellenic_Academic_and_Research_Institutions_RootCA_2011.pem
+lrwxrwxrwx root root 23 ./etc/ssl/certs/18856ac4.0 -> SecureSign_RootCA11.pem
+lrwxrwxrwx root root 31 ./etc/ssl/certs/1d3472b9.0 -> GlobalSign_ECC_Root_CA_-_R5.pem
+lrwxrwxrwx root root 37 ./etc/ssl/certs/1e08bfd1.0 -> IdenTrust_Public_Sector_Root_CA_1.pem
+lrwxrwxrwx root root 32 ./etc/ssl/certs/1e09d511.0 -> T-TeleSec_GlobalRoot_Class_2.pem
+lrwxrwxrwx root root 38 ./etc/ssl/certs/244b5494.0 -> DigiCert_High_Assurance_EV_Root_CA.pem
+lrwxrwxrwx root root 20 ./etc/ssl/certs/2ae6433e.0 -> CA_Disig_Root_R2.pem
+lrwxrwxrwx root root 26 ./etc/ssl/certs/2b349938.0 -> AffirmTrust_Commercial.pem
+lrwxrwxrwx root root 22 ./etc/ssl/certs/2c543cd1.0 -> GeoTrust_Global_CA.pem
+lrwxrwxrwx root root 26 ./etc/ssl/certs/2e4eed3c.0 -> thawte_Primary_Root_CA.pem
+lrwxrwxrwx root root 18 ./etc/ssl/certs/2e5ac55d.0 -> DST_Root_CA_X3.pem
+lrwxrwxrwx root root 59 ./etc/ssl/certs/32888f65.0 -> Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem
+lrwxrwxrwx root root 10 ./etc/ssl/certs/349f2832.0 -> EC-ACC.pem
+lrwxrwxrwx root root 27 ./etc/ssl/certs/3513523f.0 -> DigiCert_Global_Root_CA.pem
+lrwxrwxrwx root root 61 ./etc/ssl/certs/3bde41ac.0 -> Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem
+lrwxrwxrwx root root 26 ./etc/ssl/certs/3e44d2f7.0 -> TrustCor_RootCert_CA-2.pem
+lrwxrwxrwx root root 27 ./etc/ssl/certs/3e45d192.0 -> Hongkong_Post_Root_CA_1.pem
+lrwxrwxrwx root root 31 ./etc/ssl/certs/40193066.0 -> Certum_Trusted_Network_CA_2.pem
+lrwxrwxrwx root root 16 ./etc/ssl/certs/4042bcee.0 -> ISRG_Root_X1.pem
+lrwxrwxrwx root root 34 ./etc/ssl/certs/40547a79.0 -> COMODO_Certification_Authority.pem
+lrwxrwxrwx root root 43 ./etc/ssl/certs/4304c5e5.0 -> Network_Solutions_Certificate_Authority.pem
+lrwxrwxrwx root root 44 ./etc/ssl/certs/480720ec.0 -> GeoTrust_Primary_Certification_Authority.pem
+lrwxrwxrwx root root 29 ./etc/ssl/certs/48bec511.0 -> Certum_Trusted_Network_CA.pem
+lrwxrwxrwx root root 27 ./etc/ssl/certs/4a6481c9.0 -> GlobalSign_Root_CA_-_R2.pem
+lrwxrwxrwx root root 45 ./etc/ssl/certs/4bfab552.0 -> Starfield_Root_Certificate_Authority_-_G2.pem
+lrwxrwxrwx root root 26 ./etc/ssl/certs/4f316efb.0 -> SwissSign_Gold_CA_-_G2.pem
+lrwxrwxrwx root root 35 ./etc/ssl/certs/5273a94c.0 -> E-Tugra_Certification_Authority.pem
+lrwxrwxrwx root root 32 ./etc/ssl/certs/5443e9e3.0 -> T-TeleSec_GlobalRoot_Class_3.pem
+lrwxrwxrwx root root 27 ./etc/ssl/certs/54657681.0 -> Buypass_Class_2_Root_CA.pem
+lrwxrwxrwx root root 28 ./etc/ssl/certs/57bcb2da.0 -> SwissSign_Silver_CA_-_G2.pem
+lrwxrwxrwx root root 38 ./etc/ssl/certs/5a4d6896.0 -> Staat_der_Nederlanden_Root_CA_-_G3.pem
+lrwxrwxrwx root root 22 ./etc/ssl/certs/5ad8a5d6.0 -> GlobalSign_Root_CA.pem
+lrwxrwxrwx root root 38 ./etc/ssl/certs/5c44d531.0 -> Staat_der_Nederlanden_Root_CA_-_G2.pem
+lrwxrwxrwx root root 26 ./etc/ssl/certs/5cd81ad7.0 -> TeliaSonera_Root_CA_v1.pem
+lrwxrwxrwx root root 26 ./etc/ssl/certs/5d3033c5.0 -> TrustCor_RootCert_CA-1.pem
+lrwxrwxrwx root root 23 ./etc/ssl/certs/5f15c80c.0 -> TWCA_Global_Root_CA.pem
+lrwxrwxrwx root root 27 ./etc/ssl/certs/607986c7.0 -> DigiCert_Global_Root_G2.pem
+lrwxrwxrwx root root 15 ./etc/ssl/certs/6410666e.0 -> Taiwan_GRCA.pem
+lrwxrwxrwx root root 29 ./etc/ssl/certs/653b494a.0 -> Baltimore_CyberTrust_Root.pem
+lrwxrwxrwx root root 40 ./etc/ssl/certs/6b99d060.0 -> Entrust_Root_Certification_Authority.pem
+lrwxrwxrwx root root 20 ./etc/ssl/certs/6d41d539.0 -> Amazon_Root_CA_2.pem
+lrwxrwxrwx root root 44 ./etc/ssl/certs/6fa5da56.0 -> SSL.com_Root_Certification_Authority_RSA.pem
+lrwxrwxrwx root root 24 ./etc/ssl/certs/706f604c.0 -> XRamp_Global_CA_Root.pem
+lrwxrwxrwx root root 25 ./etc/ssl/certs/749e9e03.0 -> QuoVadis_Root_CA_1_G3.pem
+lrwxrwxrwx root root 28 ./etc/ssl/certs/75d1b2ed.0 -> DigiCert_Trusted_Root_G4.pem
+lrwxrwxrwx root root 26 ./etc/ssl/certs/76cb8f92.0 -> Cybertrust_Global_Root.pem
+lrwxrwxrwx root root 22 ./etc/ssl/certs/76faf6c0.0 -> QuoVadis_Root_CA_3.pem
+lrwxrwxrwx root root 63 ./etc/ssl/certs/7719f463.0 -> Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem
+lrwxrwxrwx root root 35 ./etc/ssl/certs/773e07ad.0 -> OISTE_WISeKey_Global_Root_GC_CA.pem
+lrwxrwxrwx root root 18 ./etc/ssl/certs/7aaf71c0.0 -> TrustCor_ECA-1.pem
+lrwxrwxrwx root root 64 ./etc/ssl/certs/7d0b38bd.0 -> VeriSign_Class_3_Public_Primary_Certification_Authority_-_G4.pem
+lrwxrwxrwx root root 31 ./etc/ssl/certs/7f3d5d1d.0 -> DigiCert_Assured_ID_Root_G3.pem
+lrwxrwxrwx root root 30 ./etc/ssl/certs/812e17de.0 -> Deutsche_Telekom_Root_CA_2.pem
+lrwxrwxrwx root root 34 ./etc/ssl/certs/8160b96c.0 -> Microsec_e-Szigno_Root_CA_2009.pem
+lrwxrwxrwx root root 27 ./etc/ssl/certs/8867006a.0 -> GeoTrust_Universal_CA_2.pem
+lrwxrwxrwx root root 20 ./etc/ssl/certs/8cb5ee0f.0 -> Amazon_Root_CA_3.pem
+lrwxrwxrwx root root 20 ./etc/ssl/certs/8d86cdd1.0 -> certSIGN_ROOT_CA.pem
+lrwxrwxrwx root root 34 ./etc/ssl/certs/930ac5d2.0 -> Actalis_Authentication_Root_CA.pem
+lrwxrwxrwx root root 26 ./etc/ssl/certs/93bc0acc.0 -> AffirmTrust_Networking.pem
+lrwxrwxrwx root root 48 ./etc/ssl/certs/988a38cb.0 -> NetLock_Arany_=Class_Gold=_Főtanúsítvány.pem
+lrwxrwxrwx root root 26 ./etc/ssl/certs/9c2e7d30.0 -> Sonera_Class_2_Root_CA.pem
+lrwxrwxrwx root root 27 ./etc/ssl/certs/9c8dfbd4.0 -> AffirmTrust_Premium_ECC.pem
+lrwxrwxrwx root root 31 ./etc/ssl/certs/9d04f354.0 -> DigiCert_Assured_ID_Root_G2.pem
+lrwxrwxrwx root root 24 ./etc/ssl/certs/9f0f5fd6.0 -> Certinomis_-_Root_CA.pem
+lrwxrwxrwx root root 13 ./etc/ssl/certs/a94d09e5.0 -> ACCVRAIZ1.pem
+lrwxrwxrwx root root 56 ./etc/ssl/certs/ACCVRAIZ1.pem -> ../../../usr/share/ca-certificates/mozilla/ACCVRAIZ1.crt
+lrwxrwxrwx root root 63 ./etc/ssl/certs/AC_RAIZ_FNMT-RCM.pem -> ../../../usr/share/ca-certificates/mozilla/AC_RAIZ_FNMT-RCM.crt
+lrwxrwxrwx root root 77 ./etc/ssl/certs/Actalis_Authentication_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Actalis_Authentication_Root_CA.crt
+lrwxrwxrwx root root 25 ./etc/ssl/certs/ad088e1d.0 -> GeoTrust_Universal_CA.pem
+lrwxrwxrwx root root 69 ./etc/ssl/certs/AddTrust_External_Root.pem -> ../../../usr/share/ca-certificates/mozilla/AddTrust_External_Root.crt
+lrwxrwxrwx root root 45 ./etc/ssl/certs/aee5f10d.0 -> Entrust.net_Premium_2048_Secure_Server_CA.pem
+lrwxrwxrwx root root 69 ./etc/ssl/certs/AffirmTrust_Commercial.pem -> ../../../usr/share/ca-certificates/mozilla/AffirmTrust_Commercial.crt
+lrwxrwxrwx root root 69 ./etc/ssl/certs/AffirmTrust_Networking.pem -> ../../../usr/share/ca-certificates/mozilla/AffirmTrust_Networking.crt
+lrwxrwxrwx root root 70 ./etc/ssl/certs/AffirmTrust_Premium_ECC.pem -> ../../../usr/share/ca-certificates/mozilla/AffirmTrust_Premium_ECC.crt
+lrwxrwxrwx root root 66 ./etc/ssl/certs/AffirmTrust_Premium.pem -> ../../../usr/share/ca-certificates/mozilla/AffirmTrust_Premium.crt
+lrwxrwxrwx root root 63 ./etc/ssl/certs/Amazon_Root_CA_1.pem -> ../../../usr/share/ca-certificates/mozilla/Amazon_Root_CA_1.crt
+lrwxrwxrwx root root 63 ./etc/ssl/certs/Amazon_Root_CA_2.pem -> ../../../usr/share/ca-certificates/mozilla/Amazon_Root_CA_2.crt
+lrwxrwxrwx root root 63 ./etc/ssl/certs/Amazon_Root_CA_3.pem -> ../../../usr/share/ca-certificates/mozilla/Amazon_Root_CA_3.crt
+lrwxrwxrwx root root 63 ./etc/ssl/certs/Amazon_Root_CA_4.pem -> ../../../usr/share/ca-certificates/mozilla/Amazon_Root_CA_4.crt
+lrwxrwxrwx root root 68 ./etc/ssl/certs/Atos_TrustedRoot_2011.pem -> ../../../usr/share/ca-certificates/mozilla/Atos_TrustedRoot_2011.crt
+lrwxrwxrwx root root 104 ./etc/ssl/certs/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem -> ../../../usr/share/ca-certificates/mozilla/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.crt
+lrwxrwxrwx root root 31 ./etc/ssl/certs/b0e59380.0 -> GlobalSign_ECC_Root_CA_-_R4.pem
+lrwxrwxrwx root root 31 ./etc/ssl/certs/b1159c4c.0 -> DigiCert_Assured_ID_Root_CA.pem
+lrwxrwxrwx root root 35 ./etc/ssl/certs/b1b8a7f3.0 -> OISTE_WISeKey_Global_Root_GA_CA.pem
+lrwxrwxrwx root root 64 ./etc/ssl/certs/b204d74a.0 -> VeriSign_Class_3_Public_Primary_Certification_Authority_-_G5.pem
+lrwxrwxrwx root root 20 ./etc/ssl/certs/b66938e9.0 -> Secure_Global_CA.pem
+lrwxrwxrwx root root 23 ./etc/ssl/certs/b727005e.0 -> AffirmTrust_Premium.pem
+lrwxrwxrwx root root 37 ./etc/ssl/certs/b7a5b843.0 -> TWCA_Root_Certification_Authority.pem
+lrwxrwxrwx root root 31 ./etc/ssl/certs/ba89ed3b.0 -> thawte_Primary_Root_CA_-_G3.pem
+lrwxrwxrwx root root 72 ./etc/ssl/certs/Baltimore_CyberTrust_Root.pem -> ../../../usr/share/ca-certificates/mozilla/Baltimore_CyberTrust_Root.crt
+lrwxrwxrwx root root 70 ./etc/ssl/certs/Buypass_Class_2_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Buypass_Class_2_Root_CA.crt
+lrwxrwxrwx root root 70 ./etc/ssl/certs/Buypass_Class_3_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Buypass_Class_3_Root_CA.crt
+lrwxrwxrwx root root 51 ./etc/ssl/certs/c01cdfa2.0 -> VeriSign_Universal_Root_Certification_Authority.pem
+lrwxrwxrwx root root 31 ./etc/ssl/certs/c089bbbd.0 -> thawte_Primary_Root_CA_-_G2.pem
+lrwxrwxrwx root root 64 ./etc/ssl/certs/c0ff1f52.0 -> Verisign_Class_3_Public_Primary_Certification_Authority_-_G3.pem
+lrwxrwxrwx root root 34 ./etc/ssl/certs/c28a8a30.0 -> D-TRUST_Root_Class_3_CA_2_2009.pem
+lrwxrwxrwx root root 36 ./etc/ssl/certs/c47d9980.0 -> Chambers_of_Commerce_Root_-_2008.pem
+lrwxrwxrwx root root 37 ./etc/ssl/certs/ca6e4ad9.0 -> ePKI_Root_Certification_Authority.pem
+-rw-r--r-- root root 200061 ./etc/ssl/certs/ca-certificates.crt
+lrwxrwxrwx root root 63 ./etc/ssl/certs/CA_Disig_Root_R2.pem -> ../../../usr/share/ca-certificates/mozilla/CA_Disig_Root_R2.crt
+lrwxrwxrwx root root 44 ./etc/ssl/certs/cbf06781.0 -> Go_Daddy_Root_Certificate_Authority_-_G2.pem
+lrwxrwxrwx root root 14 ./etc/ssl/certs/cc450945.0 -> Izenpe.com.pem
+lrwxrwxrwx root root 34 ./etc/ssl/certs/cd58d51e.0 -> Security_Communication_RootCA2.pem
+lrwxrwxrwx root root 20 ./etc/ssl/certs/cd8c0d63.0 -> AC_RAIZ_FNMT-RCM.pem
+lrwxrwxrwx root root 20 ./etc/ssl/certs/ce5e74ef.0 -> Amazon_Root_CA_1.pem
+lrwxrwxrwx root root 55 ./etc/ssl/certs/Certigna.pem -> ../../../usr/share/ca-certificates/mozilla/Certigna.crt
+lrwxrwxrwx root root 67 ./etc/ssl/certs/Certinomis_-_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Certinomis_-_Root_CA.crt
+lrwxrwxrwx root root 74 ./etc/ssl/certs/Certplus_Class_2_Primary_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Certplus_Class_2_Primary_CA.crt
+lrwxrwxrwx root root 63 ./etc/ssl/certs/certSIGN_ROOT_CA.pem -> ../../../usr/share/ca-certificates/mozilla/certSIGN_ROOT_CA.crt
+lrwxrwxrwx root root 74 ./etc/ssl/certs/Certum_Trusted_Network_CA_2.pem -> ../../../usr/share/ca-certificates/mozilla/Certum_Trusted_Network_CA_2.crt
+lrwxrwxrwx root root 72 ./etc/ssl/certs/Certum_Trusted_Network_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Certum_Trusted_Network_CA.crt
+lrwxrwxrwx root root 59 ./etc/ssl/certs/CFCA_EV_ROOT.pem -> ../../../usr/share/ca-certificates/mozilla/CFCA_EV_ROOT.crt
+lrwxrwxrwx root root 79 ./etc/ssl/certs/Chambers_of_Commerce_Root_-_2008.pem -> ../../../usr/share/ca-certificates/mozilla/Chambers_of_Commerce_Root_-_2008.crt
+lrwxrwxrwx root root 71 ./etc/ssl/certs/Comodo_AAA_Services_root.pem -> ../../../usr/share/ca-certificates/mozilla/Comodo_AAA_Services_root.crt
+lrwxrwxrwx root root 77 ./etc/ssl/certs/COMODO_Certification_Authority.pem -> ../../../usr/share/ca-certificates/mozilla/COMODO_Certification_Authority.crt
+lrwxrwxrwx root root 81 ./etc/ssl/certs/COMODO_ECC_Certification_Authority.pem -> ../../../usr/share/ca-certificates/mozilla/COMODO_ECC_Certification_Authority.crt
+lrwxrwxrwx root root 81 ./etc/ssl/certs/COMODO_RSA_Certification_Authority.pem -> ../../../usr/share/ca-certificates/mozilla/COMODO_RSA_Certification_Authority.crt
+lrwxrwxrwx root root 69 ./etc/ssl/certs/Cybertrust_Global_Root.pem -> ../../../usr/share/ca-certificates/mozilla/Cybertrust_Global_Root.crt
+lrwxrwxrwx root root 37 ./etc/ssl/certs/d4dae3dd.0 -> D-TRUST_Root_Class_3_CA_2_EV_2009.pem
+lrwxrwxrwx root root 38 ./etc/ssl/certs/d6325660.0 -> COMODO_RSA_Certification_Authority.pem
+lrwxrwxrwx root root 22 ./etc/ssl/certs/d7e8dc79.0 -> QuoVadis_Root_CA_2.pem
+lrwxrwxrwx root root 23 ./etc/ssl/certs/d853d49e.0 -> Trustis_FPS_Root_CA.pem
+lrwxrwxrwx root root 27 ./etc/ssl/certs/dc4d6a89.0 -> GlobalSign_Root_CA_-_R6.pem
+lrwxrwxrwx root root 27 ./etc/ssl/certs/dd8e9d41.0 -> DigiCert_Global_Root_G3.pem
+lrwxrwxrwx root root 20 ./etc/ssl/certs/de6d66f3.0 -> Amazon_Root_CA_4.pem
+lrwxrwxrwx root root 26 ./etc/ssl/certs/def36a68.0 -> LuxTrust_Global_Root_2.pem
+lrwxrwxrwx root root 73 ./etc/ssl/certs/Deutsche_Telekom_Root_CA_2.pem -> ../../../usr/share/ca-certificates/mozilla/Deutsche_Telekom_Root_CA_2.crt
+lrwxrwxrwx root root 74 ./etc/ssl/certs/DigiCert_Assured_ID_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_CA.crt
+lrwxrwxrwx root root 74 ./etc/ssl/certs/DigiCert_Assured_ID_Root_G2.pem -> ../../../usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_G2.crt
+lrwxrwxrwx root root 74 ./etc/ssl/certs/DigiCert_Assured_ID_Root_G3.pem -> ../../../usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_G3.crt
+lrwxrwxrwx root root 70 ./etc/ssl/certs/DigiCert_Global_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/DigiCert_Global_Root_CA.crt
+lrwxrwxrwx root root 70 ./etc/ssl/certs/DigiCert_Global_Root_G2.pem -> ../../../usr/share/ca-certificates/mozilla/DigiCert_Global_Root_G2.crt
+lrwxrwxrwx root root 70 ./etc/ssl/certs/DigiCert_Global_Root_G3.pem -> ../../../usr/share/ca-certificates/mozilla/DigiCert_Global_Root_G3.crt
+lrwxrwxrwx root root 81 ./etc/ssl/certs/DigiCert_High_Assurance_EV_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/DigiCert_High_Assurance_EV_Root_CA.crt
+lrwxrwxrwx root root 71 ./etc/ssl/certs/DigiCert_Trusted_Root_G4.pem -> ../../../usr/share/ca-certificates/mozilla/DigiCert_Trusted_Root_G4.crt
+lrwxrwxrwx root root 61 ./etc/ssl/certs/DST_Root_CA_X3.pem -> ../../../usr/share/ca-certificates/mozilla/DST_Root_CA_X3.crt
+lrwxrwxrwx root root 77 ./etc/ssl/certs/D-TRUST_Root_Class_3_CA_2_2009.pem -> ../../../usr/share/ca-certificates/mozilla/D-TRUST_Root_Class_3_CA_2_2009.crt
+lrwxrwxrwx root root 80 ./etc/ssl/certs/D-TRUST_Root_Class_3_CA_2_EV_2009.pem -> ../../../usr/share/ca-certificates/mozilla/D-TRUST_Root_Class_3_CA_2_EV_2009.crt
+lrwxrwxrwx root root 12 ./etc/ssl/certs/e113c810.0 -> Certigna.pem
+lrwxrwxrwx root root 25 ./etc/ssl/certs/e18bfb83.0 -> QuoVadis_Root_CA_3_G3.pem
+lrwxrwxrwx root root 49 ./etc/ssl/certs/e2799e36.0 -> GeoTrust_Primary_Certification_Authority_-_G3.pem
+lrwxrwxrwx root root 25 ./etc/ssl/certs/e36a6752.0 -> Atos_TrustedRoot_2011.pem
+lrwxrwxrwx root root 35 ./etc/ssl/certs/e73d606e.0 -> OISTE_WISeKey_Global_Root_GB_CA.pem
+lrwxrwxrwx root root 27 ./etc/ssl/certs/e8de2f56.0 -> Buypass_Class_3_Root_CA.pem
+lrwxrwxrwx root root 53 ./etc/ssl/certs/EC-ACC.pem -> ../../../usr/share/ca-certificates/mozilla/EC-ACC.crt
+lrwxrwxrwx root root 28 ./etc/ssl/certs/ee64a828.0 -> Comodo_AAA_Services_root.pem
+lrwxrwxrwx root root 78 ./etc/ssl/certs/EE_Certification_Centre_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/EE_Certification_Centre_Root_CA.crt
+lrwxrwxrwx root root 38 ./etc/ssl/certs/eed8c118.0 -> COMODO_ECC_Certification_Authority.pem
+lrwxrwxrwx root root 34 ./etc/ssl/certs/ef954a4e.0 -> IdenTrust_Commercial_Root_CA_1.pem
+lrwxrwxrwx root root 88 ./etc/ssl/certs/Entrust.net_Premium_2048_Secure_Server_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Entrust.net_Premium_2048_Secure_Server_CA.crt
+lrwxrwxrwx root root 89 ./etc/ssl/certs/Entrust_Root_Certification_Authority_-_EC1.pem -> ../../../usr/share/ca-certificates/mozilla/Entrust_Root_Certification_Authority_-_EC1.crt
+lrwxrwxrwx root root 88 ./etc/ssl/certs/Entrust_Root_Certification_Authority_-_G2.pem -> ../../../usr/share/ca-certificates/mozilla/Entrust_Root_Certification_Authority_-_G2.crt
+lrwxrwxrwx root root 83 ./etc/ssl/certs/Entrust_Root_Certification_Authority.pem -> ../../../usr/share/ca-certificates/mozilla/Entrust_Root_Certification_Authority.crt
+lrwxrwxrwx root root 80 ./etc/ssl/certs/ePKI_Root_Certification_Authority.pem -> ../../../usr/share/ca-certificates/mozilla/ePKI_Root_Certification_Authority.crt
+lrwxrwxrwx root root 78 ./etc/ssl/certs/E-Tugra_Certification_Authority.pem -> ../../../usr/share/ca-certificates/mozilla/E-Tugra_Certification_Authority.crt
+lrwxrwxrwx root root 31 ./etc/ssl/certs/f060240e.0 -> Certplus_Class_2_Primary_CA.pem
+lrwxrwxrwx root root 23 ./etc/ssl/certs/f081611a.0 -> Go_Daddy_Class_2_CA.pem
+lrwxrwxrwx root root 47 ./etc/ssl/certs/f0c70a8d.0 -> SSL.com_EV_Root_Certification_Authority_ECC.pem
+lrwxrwxrwx root root 41 ./etc/ssl/certs/f30dd6ad.0 -> USERTrust_ECC_Certification_Authority.pem
+lrwxrwxrwx root root 34 ./etc/ssl/certs/f3377b1b.0 -> Security_Communication_Root_CA.pem
+lrwxrwxrwx root root 24 ./etc/ssl/certs/f387163d.0 -> Starfield_Class_2_CA.pem
+lrwxrwxrwx root root 18 ./etc/ssl/certs/f39fc864.0 -> SecureTrust_CA.pem
+lrwxrwxrwx root root 41 ./etc/ssl/certs/fc5a8f99.0 -> USERTrust_RSA_Certification_Authority.pem
+lrwxrwxrwx root root 19 ./etc/ssl/certs/fe8a2cd8.0 -> SZAFIR_ROOT_CA2.pem
+lrwxrwxrwx root root 49 ./etc/ssl/certs/ff34af3f.0 -> TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem
+lrwxrwxrwx root root 69 ./etc/ssl/certs/GDCA_TrustAUTH_R5_ROOT.pem -> ../../../usr/share/ca-certificates/mozilla/GDCA_TrustAUTH_R5_ROOT.crt
+lrwxrwxrwx root root 65 ./etc/ssl/certs/GeoTrust_Global_CA.pem -> ../../../usr/share/ca-certificates/mozilla/GeoTrust_Global_CA.crt
+lrwxrwxrwx root root 92 ./etc/ssl/certs/GeoTrust_Primary_Certification_Authority_-_G2.pem -> ../../../usr/share/ca-certificates/mozilla/GeoTrust_Primary_Certification_Authority_-_G2.crt
+lrwxrwxrwx root root 92 ./etc/ssl/certs/GeoTrust_Primary_Certification_Authority_-_G3.pem -> ../../../usr/share/ca-certificates/mozilla/GeoTrust_Primary_Certification_Authority_-_G3.crt
+lrwxrwxrwx root root 87 ./etc/ssl/certs/GeoTrust_Primary_Certification_Authority.pem -> ../../../usr/share/ca-certificates/mozilla/GeoTrust_Primary_Certification_Authority.crt
+lrwxrwxrwx root root 70 ./etc/ssl/certs/GeoTrust_Universal_CA_2.pem -> ../../../usr/share/ca-certificates/mozilla/GeoTrust_Universal_CA_2.crt
+lrwxrwxrwx root root 68 ./etc/ssl/certs/GeoTrust_Universal_CA.pem -> ../../../usr/share/ca-certificates/mozilla/GeoTrust_Universal_CA.crt
+lrwxrwxrwx root root 77 ./etc/ssl/certs/Global_Chambersign_Root_-_2008.pem -> ../../../usr/share/ca-certificates/mozilla/Global_Chambersign_Root_-_2008.crt
+lrwxrwxrwx root root 74 ./etc/ssl/certs/GlobalSign_ECC_Root_CA_-_R4.pem -> ../../../usr/share/ca-certificates/mozilla/GlobalSign_ECC_Root_CA_-_R4.crt
+lrwxrwxrwx root root 74 ./etc/ssl/certs/GlobalSign_ECC_Root_CA_-_R5.pem -> ../../../usr/share/ca-certificates/mozilla/GlobalSign_ECC_Root_CA_-_R5.crt
+lrwxrwxrwx root root 65 ./etc/ssl/certs/GlobalSign_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/GlobalSign_Root_CA.crt
+lrwxrwxrwx root root 70 ./etc/ssl/certs/GlobalSign_Root_CA_-_R2.pem -> ../../../usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R2.crt
+lrwxrwxrwx root root 70 ./etc/ssl/certs/GlobalSign_Root_CA_-_R3.pem -> ../../../usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R3.crt
+lrwxrwxrwx root root 70 ./etc/ssl/certs/GlobalSign_Root_CA_-_R6.pem -> ../../../usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R6.crt
+lrwxrwxrwx root root 66 ./etc/ssl/certs/Go_Daddy_Class_2_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Go_Daddy_Class_2_CA.crt
+lrwxrwxrwx root root 87 ./etc/ssl/certs/Go_Daddy_Root_Certificate_Authority_-_G2.pem -> ../../../usr/share/ca-certificates/mozilla/Go_Daddy_Root_Certificate_Authority_-_G2.crt
+lrwxrwxrwx root root 106 ./etc/ssl/certs/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem -> ../../../usr/share/ca-certificates/mozilla/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.crt
+lrwxrwxrwx root root 102 ./etc/ssl/certs/Hellenic_Academic_and_Research_Institutions_RootCA_2011.pem -> ../../../usr/share/ca-certificates/mozilla/Hellenic_Academic_and_Research_Institutions_RootCA_2011.crt
+lrwxrwxrwx root root 102 ./etc/ssl/certs/Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem -> ../../../usr/share/ca-certificates/mozilla/Hellenic_Academic_and_Research_Institutions_RootCA_2015.crt
+lrwxrwxrwx root root 70 ./etc/ssl/certs/Hongkong_Post_Root_CA_1.pem -> ../../../usr/share/ca-certificates/mozilla/Hongkong_Post_Root_CA_1.crt
+lrwxrwxrwx root root 77 ./etc/ssl/certs/IdenTrust_Commercial_Root_CA_1.pem -> ../../../usr/share/ca-certificates/mozilla/IdenTrust_Commercial_Root_CA_1.crt
+lrwxrwxrwx root root 80 ./etc/ssl/certs/IdenTrust_Public_Sector_Root_CA_1.pem -> ../../../usr/share/ca-certificates/mozilla/IdenTrust_Public_Sector_Root_CA_1.crt
+lrwxrwxrwx root root 59 ./etc/ssl/certs/ISRG_Root_X1.pem -> ../../../usr/share/ca-certificates/mozilla/ISRG_Root_X1.crt
+lrwxrwxrwx root root 57 ./etc/ssl/certs/Izenpe.com.pem -> ../../../usr/share/ca-certificates/mozilla/Izenpe.com.crt
+lrwxrwxrwx root root 69 ./etc/ssl/certs/LuxTrust_Global_Root_2.pem -> ../../../usr/share/ca-certificates/mozilla/LuxTrust_Global_Root_2.crt
+lrwxrwxrwx root root 77 ./etc/ssl/certs/Microsec_e-Szigno_Root_CA_2009.pem -> ../../../usr/share/ca-certificates/mozilla/Microsec_e-Szigno_Root_CA_2009.crt
+lrwxrwxrwx root root 91 ./etc/ssl/certs/NetLock_Arany_=Class_Gold=_Főtanúsítvány.pem -> ../../../usr/share/ca-certificates/mozilla/NetLock_Arany_=Class_Gold=_Főtanúsítvány.crt
+lrwxrwxrwx root root 86 ./etc/ssl/certs/Network_Solutions_Certificate_Authority.pem -> ../../../usr/share/ca-certificates/mozilla/Network_Solutions_Certificate_Authority.crt
+lrwxrwxrwx root root 78 ./etc/ssl/certs/OISTE_WISeKey_Global_Root_GA_CA.pem -> ../../../usr/share/ca-certificates/mozilla/OISTE_WISeKey_Global_Root_GA_CA.crt
+lrwxrwxrwx root root 78 ./etc/ssl/certs/OISTE_WISeKey_Global_Root_GB_CA.pem -> ../../../usr/share/ca-certificates/mozilla/OISTE_WISeKey_Global_Root_GB_CA.crt
+lrwxrwxrwx root root 78 ./etc/ssl/certs/OISTE_WISeKey_Global_Root_GC_CA.pem -> ../../../usr/share/ca-certificates/mozilla/OISTE_WISeKey_Global_Root_GC_CA.crt
+lrwxrwxrwx root root 68 ./etc/ssl/certs/QuoVadis_Root_CA_1_G3.pem -> ../../../usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_1_G3.crt
+lrwxrwxrwx root root 68 ./etc/ssl/certs/QuoVadis_Root_CA_2_G3.pem -> ../../../usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_2_G3.crt
+lrwxrwxrwx root root 65 ./etc/ssl/certs/QuoVadis_Root_CA_2.pem -> ../../../usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_2.crt
+lrwxrwxrwx root root 68 ./etc/ssl/certs/QuoVadis_Root_CA_3_G3.pem -> ../../../usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_3_G3.crt
+lrwxrwxrwx root root 65 ./etc/ssl/certs/QuoVadis_Root_CA_3.pem -> ../../../usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_3.crt
+lrwxrwxrwx root root 63 ./etc/ssl/certs/QuoVadis_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/QuoVadis_Root_CA.crt
+lrwxrwxrwx root root 63 ./etc/ssl/certs/Secure_Global_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Secure_Global_CA.crt
+lrwxrwxrwx root root 66 ./etc/ssl/certs/SecureSign_RootCA11.pem -> ../../../usr/share/ca-certificates/mozilla/SecureSign_RootCA11.crt
+lrwxrwxrwx root root 61 ./etc/ssl/certs/SecureTrust_CA.pem -> ../../../usr/share/ca-certificates/mozilla/SecureTrust_CA.crt
+lrwxrwxrwx root root 77 ./etc/ssl/certs/Security_Communication_RootCA2.pem -> ../../../usr/share/ca-certificates/mozilla/Security_Communication_RootCA2.crt
+lrwxrwxrwx root root 77 ./etc/ssl/certs/Security_Communication_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Security_Communication_Root_CA.crt
+lrwxrwxrwx root root 69 ./etc/ssl/certs/Sonera_Class_2_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Sonera_Class_2_Root_CA.crt
+lrwxrwxrwx root root 90 ./etc/ssl/certs/SSL.com_EV_Root_Certification_Authority_ECC.pem -> ../../../usr/share/ca-certificates/mozilla/SSL.com_EV_Root_Certification_Authority_ECC.crt
+lrwxrwxrwx root root 93 ./etc/ssl/certs/SSL.com_EV_Root_Certification_Authority_RSA_R2.pem -> ../../../usr/share/ca-certificates/mozilla/SSL.com_EV_Root_Certification_Authority_RSA_R2.crt
+lrwxrwxrwx root root 87 ./etc/ssl/certs/SSL.com_Root_Certification_Authority_ECC.pem -> ../../../usr/share/ca-certificates/mozilla/SSL.com_Root_Certification_Authority_ECC.crt
+lrwxrwxrwx root root 87 ./etc/ssl/certs/SSL.com_Root_Certification_Authority_RSA.pem -> ../../../usr/share/ca-certificates/mozilla/SSL.com_Root_Certification_Authority_RSA.crt
+lrwxrwxrwx root root 79 ./etc/ssl/certs/Staat_der_Nederlanden_EV_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Staat_der_Nederlanden_EV_Root_CA.crt
+lrwxrwxrwx root root 81 ./etc/ssl/certs/Staat_der_Nederlanden_Root_CA_-_G2.pem -> ../../../usr/share/ca-certificates/mozilla/Staat_der_Nederlanden_Root_CA_-_G2.crt
+lrwxrwxrwx root root 81 ./etc/ssl/certs/Staat_der_Nederlanden_Root_CA_-_G3.pem -> ../../../usr/share/ca-certificates/mozilla/Staat_der_Nederlanden_Root_CA_-_G3.crt
+lrwxrwxrwx root root 67 ./etc/ssl/certs/Starfield_Class_2_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Starfield_Class_2_CA.crt
+lrwxrwxrwx root root 88 ./etc/ssl/certs/Starfield_Root_Certificate_Authority_-_G2.pem -> ../../../usr/share/ca-certificates/mozilla/Starfield_Root_Certificate_Authority_-_G2.crt
+lrwxrwxrwx root root 97 ./etc/ssl/certs/Starfield_Services_Root_Certificate_Authority_-_G2.pem -> ../../../usr/share/ca-certificates/mozilla/Starfield_Services_Root_Certificate_Authority_-_G2.crt
+lrwxrwxrwx root root 69 ./etc/ssl/certs/SwissSign_Gold_CA_-_G2.pem -> ../../../usr/share/ca-certificates/mozilla/SwissSign_Gold_CA_-_G2.crt
+lrwxrwxrwx root root 71 ./etc/ssl/certs/SwissSign_Silver_CA_-_G2.pem -> ../../../usr/share/ca-certificates/mozilla/SwissSign_Silver_CA_-_G2.crt
+lrwxrwxrwx root root 62 ./etc/ssl/certs/SZAFIR_ROOT_CA2.pem -> ../../../usr/share/ca-certificates/mozilla/SZAFIR_ROOT_CA2.crt
+lrwxrwxrwx root root 58 ./etc/ssl/certs/Taiwan_GRCA.pem -> ../../../usr/share/ca-certificates/mozilla/Taiwan_GRCA.crt
+lrwxrwxrwx root root 69 ./etc/ssl/certs/TeliaSonera_Root_CA_v1.pem -> ../../../usr/share/ca-certificates/mozilla/TeliaSonera_Root_CA_v1.crt
+lrwxrwxrwx root root 74 ./etc/ssl/certs/thawte_Primary_Root_CA_-_G2.pem -> ../../../usr/share/ca-certificates/mozilla/thawte_Primary_Root_CA_-_G2.crt
+lrwxrwxrwx root root 74 ./etc/ssl/certs/thawte_Primary_Root_CA_-_G3.pem -> ../../../usr/share/ca-certificates/mozilla/thawte_Primary_Root_CA_-_G3.crt
+lrwxrwxrwx root root 69 ./etc/ssl/certs/thawte_Primary_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/thawte_Primary_Root_CA.crt
+lrwxrwxrwx root root 61 ./etc/ssl/certs/TrustCor_ECA-1.pem -> ../../../usr/share/ca-certificates/mozilla/TrustCor_ECA-1.crt
+lrwxrwxrwx root root 69 ./etc/ssl/certs/TrustCor_RootCert_CA-1.pem -> ../../../usr/share/ca-certificates/mozilla/TrustCor_RootCert_CA-1.crt
+lrwxrwxrwx root root 69 ./etc/ssl/certs/TrustCor_RootCert_CA-2.pem -> ../../../usr/share/ca-certificates/mozilla/TrustCor_RootCert_CA-2.crt
+lrwxrwxrwx root root 66 ./etc/ssl/certs/Trustis_FPS_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/Trustis_FPS_Root_CA.crt
+lrwxrwxrwx root root 75 ./etc/ssl/certs/T-TeleSec_GlobalRoot_Class_2.pem -> ../../../usr/share/ca-certificates/mozilla/T-TeleSec_GlobalRoot_Class_2.crt
+lrwxrwxrwx root root 75 ./etc/ssl/certs/T-TeleSec_GlobalRoot_Class_3.pem -> ../../../usr/share/ca-certificates/mozilla/T-TeleSec_GlobalRoot_Class_3.crt
+lrwxrwxrwx root root 92 ./etc/ssl/certs/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem -> ../../../usr/share/ca-certificates/mozilla/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.crt
+lrwxrwxrwx root root 66 ./etc/ssl/certs/TWCA_Global_Root_CA.pem -> ../../../usr/share/ca-certificates/mozilla/TWCA_Global_Root_CA.crt
+lrwxrwxrwx root root 80 ./etc/ssl/certs/TWCA_Root_Certification_Authority.pem -> ../../../usr/share/ca-certificates/mozilla/TWCA_Root_Certification_Authority.crt
+lrwxrwxrwx root root 84 ./etc/ssl/certs/USERTrust_ECC_Certification_Authority.pem -> ../../../usr/share/ca-certificates/mozilla/USERTrust_ECC_Certification_Authority.crt
+lrwxrwxrwx root root 84 ./etc/ssl/certs/USERTrust_RSA_Certification_Authority.pem -> ../../../usr/share/ca-certificates/mozilla/USERTrust_RSA_Certification_Authority.crt
+lrwxrwxrwx root root 107 ./etc/ssl/certs/Verisign_Class_3_Public_Primary_Certification_Authority_-_G3.pem -> ../../../usr/share/ca-certificates/mozilla/Verisign_Class_3_Public_Primary_Certification_Authority_-_G3.crt
+lrwxrwxrwx root root 107 ./etc/ssl/certs/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G4.pem -> ../../../usr/share/ca-certificates/mozilla/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G4.crt
+lrwxrwxrwx root root 107 ./etc/ssl/certs/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G5.pem -> ../../../usr/share/ca-certificates/mozilla/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G5.crt
+lrwxrwxrwx root root 94 ./etc/ssl/certs/VeriSign_Universal_Root_Certification_Authority.pem -> ../../../usr/share/ca-certificates/mozilla/VeriSign_Universal_Root_Certification_Authority.crt
+lrwxrwxrwx root root 67 ./etc/ssl/certs/XRamp_Global_CA_Root.pem -> ../../../usr/share/ca-certificates/mozilla/XRamp_Global_CA_Root.crt
+-rw-r--r-- root root 10909 ./etc/ssl/openssl.cnf
+drwxr-xr-x root root 4096 ./etc/ssl/private
+-rw-r--r-- root root 2128 ./etc/sysctl.conf
+-rw-r--r-- root root 69 ./etc/syslog.conf
+-rw-r--r-- root root 651 ./etc/syslog-startup.conf
+drwxr-xr-x root root 4096 ./etc/terminfo
+drwxr-xr-x root root 4096 ./etc/terminfo/a
+-rw-r--r-- root root 1481 ./etc/terminfo/a/ansi
+drwxr-xr-x root root 4096 ./etc/terminfo/d
+-rw-r--r-- root root 308 ./etc/terminfo/d/dumb
+drwxr-xr-x root root 4096 ./etc/terminfo/l
+-rw-r--r-- root root 1730 ./etc/terminfo/l/linux
+drwxr-xr-x root root 4096 ./etc/terminfo/r
+-rw-r--r-- root root 2222 ./etc/terminfo/r/rxvt
+drwxr-xr-x root root 4096 ./etc/terminfo/s
+-rw-r--r-- root root 1573 ./etc/terminfo/s/screen
+-rw-r--r-- root root 1687 ./etc/terminfo/s/screen-256color
+-rw-r--r-- root root 1004 ./etc/terminfo/s/sun
+drwxr-xr-x root root 4096 ./etc/terminfo/v
+-rw-r--r-- root root 1190 ./etc/terminfo/v/vt100
+-rw-r--r-- root root 1184 ./etc/terminfo/v/vt102
+-rw-r--r-- root root 1377 ./etc/terminfo/v/vt200
+-rw-r--r-- root root 1377 ./etc/terminfo/v/vt220
+-rw-r--r-- root root 470 ./etc/terminfo/v/vt52
+drwxr-xr-x root root 4096 ./etc/terminfo/x
+-rw-r--r-- root root 3780 ./etc/terminfo/x/xterm-256color
+-rw-r--r-- root root 1551 ./etc/terminfo/x/xterm-color
+-rw-r--r-- root root 2240 ./etc/terminfo/x/xterm-xfree86
+lrwxrwxrwx root root 11 ./etc/terminfo/x/xterm -> xterm-color
+-rw-r--r-- root root 15 ./etc/timestamp
+drwxr-xr-x root root 4096 ./etc/udev
+drwxr-xr-x root root 4096 ./etc/udev/rules.d
+-rw-r--r-- root root 0 ./etc/udev/rules.d/80-net-name-slot.rules
+-rw-r--r-- root root 885 ./etc/udev/rules.d/local.rules
+-rw-r--r-- root root 49 ./etc/udev/udev.conf
+drwxr-xr-x root root 4096 ./etc/udhcpc.d
+-rwxr-xr-x root root 2652 ./etc/udhcpc.d/50default
+-rw-r--r-- root root 15 ./etc/version
+-rw-r--r-- root root 642 ./etc/xattr.conf
+drwxr-xr-x root root 4096 ./home
+drwx------ root root 4096 ./home/root
+drwxr-xr-x root root 4096 ./lib
+drwxr-xr-x root root 4096 ./lib/depmod.d
+-rw-r--r-- root root 71 ./lib/depmod.d/search.conf
+-rwxr-xr-x root root 177712 ./lib/ld-2.31.so
+lrwxrwxrwx root root 10 ./lib/ld-linux-x86-64.so.2 -> ld-2.31.so
+-rwxr-xr-x root root 18696 ./lib/libanl-2.31.so
+lrwxrwxrwx root root 14 ./lib/libanl.so.1 -> libanl-2.31.so
+-rwxr-xr-x root root 326600 ./lib/libblkid.so.1.1.0
+lrwxrwxrwx root root 17 ./lib/libblkid.so.1 -> libblkid.so.1.1.0
+-rwxr-xr-x root root 14296 ./lib/libBrokenLocale-2.31.so
+lrwxrwxrwx root root 23 ./lib/libBrokenLocale.so.1 -> libBrokenLocale-2.31.so
+-rwxr-xr-x root root 1806504 ./lib/libc-2.31.so
+-rwxr-xr-x root root 26512 ./lib/libcap-ng.so.0.0.0
+lrwxrwxrwx root root 18 ./lib/libcap-ng.so.0 -> libcap-ng.so.0.0.0
+-rw-r--r-- root root 38832 ./lib/libcap.so.2.34
+lrwxrwxrwx root root 14 ./lib/libcap.so.2 -> libcap.so.2.34
+lrwxrwxrwx root root 11 ./lib/libcap.so -> libcap.so.2
+-rwxr-xr-x root root 18320 ./lib/libcom_err.so.2.1
+lrwxrwxrwx root root 17 ./lib/libcom_err.so.2 -> libcom_err.so.2.1
+lrwxrwxrwx root root 15 ./lib/libcom_err.so -> libcom_err.so.2
+lrwxrwxrwx root root 12 ./lib/libc.so.6 -> libc-2.31.so
+-rwxr-xr-x root root 14360 ./lib/libdl-2.31.so
+lrwxrwxrwx root root 13 ./lib/libdl.so.2 -> libdl-2.31.so
+-rwxr-xr-x root root 44616 ./lib/libe2p.so.2.3
+lrwxrwxrwx root root 13 ./lib/libe2p.so.2 -> libe2p.so.2.3
+lrwxrwxrwx root root 11 ./lib/libe2p.so -> libe2p.so.2
+-rwxr-xr-x root root 426264 ./lib/libext2fs.so.2.4
+lrwxrwxrwx root root 16 ./lib/libext2fs.so.2 -> libext2fs.so.2.4
+lrwxrwxrwx root root 14 ./lib/libext2fs.so -> libext2fs.so.2
+-rwxr-xr-x root root 440104 ./lib/libfdisk.so.1.1.0
+lrwxrwxrwx root root 17 ./lib/libfdisk.so.1 -> libfdisk.so.1.1.0
+-rw-r--r-- root root 132 ./lib/libgcc_s.so
+-rw-r--r-- root root 100248 ./lib/libgcc_s.so.1
+-rwxr-xr-x root root 1312800 ./lib/libm-2.31.so
+-rwxr-xr-x root root 379432 ./lib/libmount.so.1.1.0
+lrwxrwxrwx root root 17 ./lib/libmount.so.1 -> libmount.so.1.1.0
+lrwxrwxrwx root root 12 ./lib/libm.so.6 -> libm-2.31.so
+-rwxr-xr-x root root 174104 ./lib/libmvec-2.31.so
+lrwxrwxrwx root root 15 ./lib/libmvec.so.1 -> libmvec-2.31.so
+-rwxr-xr-x root root 157512 ./lib/libncurses.so.5.9
+lrwxrwxrwx root root 17 ./lib/libncurses.so.5 -> libncurses.so.5.9
+-rwxr-xr-x root root 210760 ./lib/libncursesw.so.5.9
+lrwxrwxrwx root root 18 ./lib/libncursesw.so.5 -> libncursesw.so.5.9
+-rwxr-xr-x root root 92184 ./lib/libnsl-2.31.so
+lrwxrwxrwx root root 14 ./lib/libnsl.so.1 -> libnsl-2.31.so
+-rwxr-xr-x root root 35288 ./lib/libnss_compat-2.31.so
+lrwxrwxrwx root root 21 ./lib/libnss_compat.so.2 -> libnss_compat-2.31.so
+-rwxr-xr-x root root 30752 ./lib/libnss_db-2.31.so
+lrwxrwxrwx root root 17 ./lib/libnss_db.so.2 -> libnss_db-2.31.so
+-rwxr-xr-x root root 22560 ./lib/libnss_dns-2.31.so
+lrwxrwxrwx root root 18 ./lib/libnss_dns.so.2 -> libnss_dns-2.31.so
+-rwxr-xr-x root root 51232 ./lib/libnss_files-2.31.so
+lrwxrwxrwx root root 20 ./lib/libnss_files.so.2 -> libnss_files-2.31.so
+-rwxr-xr-x root root 22560 ./lib/libnss_hesiod-2.31.so
+lrwxrwxrwx root root 21 ./lib/libnss_hesiod.so.2 -> libnss_hesiod-2.31.so
+-rwxr-xr-x root root 113296 ./lib/libpthread-2.31.so
+lrwxrwxrwx root root 18 ./lib/libpthread.so.0 -> libpthread-2.31.so
+-rwxr-xr-x root root 88320 ./lib/libresolv-2.31.so
+lrwxrwxrwx root root 17 ./lib/libresolv.so.2 -> libresolv-2.31.so
+-rwxr-xr-x root root 39328 ./lib/librt-2.31.so
+lrwxrwxrwx root root 13 ./lib/librt.so.1 -> librt-2.31.so
+-rwxr-xr-x root root 231528 ./lib/libsmartcols.so.1.1.0
+lrwxrwxrwx root root 21 ./lib/libsmartcols.so.1 -> libsmartcols.so.1.1.0
+-rwxr-xr-x root root 34704 ./lib/libss.so.2.0
+lrwxrwxrwx root root 12 ./lib/libss.so.2 -> libss.so.2.0
+lrwxrwxrwx root root 10 ./lib/libss.so -> libss.so.2
+-rwxr-xr-x root root 35416 ./lib/libthread_db-1.0.so
+lrwxrwxrwx root root 19 ./lib/libthread_db.so.1 -> libthread_db-1.0.so
+-rwxr-xr-x root root 175208 ./lib/libtinfo.so.5.9
+lrwxrwxrwx root root 15 ./lib/libtinfo.so.5 -> libtinfo.so.5.9
+-rwxr-xr-x root root 157912 ./lib/libudev.so.1.6.3
+lrwxrwxrwx root root 16 ./lib/libudev.so.1 -> libudev.so.1.6.3
+-rwxr-xr-x root root 14360 ./lib/libutil-2.31.so
+lrwxrwxrwx root root 15 ./lib/libutil.so.1 -> libutil-2.31.so
+-rwxr-xr-x root root 30752 ./lib/libuuid.so.1.3.0
+lrwxrwxrwx root root 16 ./lib/libuuid.so.1 -> libuuid.so.1.3.0
+-rwxr-xr-x root root 39816 ./lib/libwrap.so.0.7.6
+lrwxrwxrwx root root 16 ./lib/libwrap.so.0 -> libwrap.so.0.7.6
+-rwxr-xr-x root root 100312 ./lib/libz.so.1.2.11
+lrwxrwxrwx root root 14 ./lib/libz.so.1 -> libz.so.1.2.11
+drwxr-xr-x root root 4096 ./lib/modprobe.d
+drwxr-xr-x root root 4096 ./lib/modules
+drwxr-xr-x root root 4096 ./lib/modules/5.4.43-yocto-standard
+drwxr-xr-x root root 4096 ./lib/modules/5.4.43-yocto-standard/kernel
+drwxr-xr-x root root 4096 ./lib/modules/5.4.43-yocto-standard/kernel/drivers
+drwxr-xr-x root root 4096 ./lib/modules/5.4.43-yocto-standard/kernel/drivers/video
+drwxr-xr-x root root 4096 ./lib/modules/5.4.43-yocto-standard/kernel/drivers/video/fbdev
+-rw-r--r-- root root 46440 ./lib/modules/5.4.43-yocto-standard/kernel/drivers/video/fbdev/uvesafb.ko
+drwxr-xr-x root root 4096 ./lib/modules/5.4.43-yocto-standard/kernel/net
+drwxr-xr-x root root 4096 ./lib/modules/5.4.43-yocto-standard/kernel/net/ipv4
+drwxr-xr-x root root 4096 ./lib/modules/5.4.43-yocto-standard/kernel/net/ipv4/netfilter
+-rw-r--r-- root root 6912 ./lib/modules/5.4.43-yocto-standard/kernel/net/ipv4/netfilter/iptable_filter.ko
+-rw-r--r-- root root 6272 ./lib/modules/5.4.43-yocto-standard/kernel/net/ipv4/netfilter/iptable_nat.ko
+-rw-r--r-- root root 32144 ./lib/modules/5.4.43-yocto-standard/kernel/net/ipv4/netfilter/ip_tables.ko
+-rw-r--r-- root root 6160 ./lib/modules/5.4.43-yocto-standard/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko
+drwxr-xr-x root root 4096 ./lib/modules/5.4.43-yocto-standard/kernel/net/ipv6
+drwxr-xr-x root root 4096 ./lib/modules/5.4.43-yocto-standard/kernel/net/ipv6/netfilter
+-rw-r--r-- root root 6928 ./lib/modules/5.4.43-yocto-standard/kernel/net/ipv6/netfilter/ip6table_filter.ko
+-rw-r--r-- root root 32640 ./lib/modules/5.4.43-yocto-standard/kernel/net/ipv6/netfilter/ip6_tables.ko
+-rw-r--r-- root root 16472 ./lib/modules/5.4.43-yocto-standard/kernel/net/ipv6/netfilter/nf_defrag_ipv6.ko
+drwxr-xr-x root root 4096 ./lib/modules/5.4.43-yocto-standard/kernel/net/netfilter
+-rw-r--r-- root root 164400 ./lib/modules/5.4.43-yocto-standard/kernel/net/netfilter/nf_conntrack.ko
+-rw-r--r-- root root 45712 ./lib/modules/5.4.43-yocto-standard/kernel/net/netfilter/nf_nat.ko
+-rw-r--r-- root root 49480 ./lib/modules/5.4.43-yocto-standard/kernel/net/netfilter/x_tables.ko
+-rw-r--r-- root root 199 ./lib/modules/5.4.43-yocto-standard/modules.alias
+-rw-r--r-- root root 443 ./lib/modules/5.4.43-yocto-standard/modules.alias.bin
+-rw-r--r-- root root 9285 ./lib/modules/5.4.43-yocto-standard/modules.builtin
+-rw-r--r-- root root 24578 ./lib/modules/5.4.43-yocto-standard/modules.builtin.alias.bin
+-rw-r--r-- root root 10874 ./lib/modules/5.4.43-yocto-standard/modules.builtin.bin
+-rw-r--r-- root root 68434 ./lib/modules/5.4.43-yocto-standard/modules.builtin.modinfo
+-rw-r--r-- root root 1099 ./lib/modules/5.4.43-yocto-standard/modules.dep
+-rw-r--r-- root root 1794 ./lib/modules/5.4.43-yocto-standard/modules.dep.bin
+-rw-r--r-- root root 0 ./lib/modules/5.4.43-yocto-standard/modules.devname
+-rw-r--r-- root root 17759 ./lib/modules/5.4.43-yocto-standard/modules.order
+-rw-r--r-- root root 55 ./lib/modules/5.4.43-yocto-standard/modules.softdep
+-rw-r--r-- root root 7817 ./lib/modules/5.4.43-yocto-standard/modules.symbols
+-rw-r--r-- root root 9233 ./lib/modules/5.4.43-yocto-standard/modules.symbols.bin
+drwxr-xr-x root root 4096 ./lib/udev
+-rwxr-xr-x root root 104640 ./lib/udev/ata_id
+-rwxr-xr-x root root 116936 ./lib/udev/cdrom_id
+-rwxr-xr-x root root 100552 ./lib/udev/collect
+-rwxr-xr-x root root 14296 ./lib/udev/mtd_probe
+drwxr-xr-x root root 4096 ./lib/udev/rules.d
+-rw-r--r-- root root 321 ./lib/udev/rules.d/01-md-raid-creating.rules
+-rw-r--r-- root root 121 ./lib/udev/rules.d/50-firmware.rules
+-rw-r--r-- root root 3677 ./lib/udev/rules.d/50-udev-default.rules
+-rw-r--r-- root root 620 ./lib/udev/rules.d/60-block.rules
+-rw-r--r-- root root 1071 ./lib/udev/rules.d/60-cdrom_id.rules
+-rw-r--r-- root root 413 ./lib/udev/rules.d/60-drm.rules
+-rw-r--r-- root root 974 ./lib/udev/rules.d/60-evdev.rules
+-rw-r--r-- root root 282 ./lib/udev/rules.d/60-input-id.rules
+-rw-r--r-- root root 616 ./lib/udev/rules.d/60-persistent-alsa.rules
+-rw-r--r-- root root 2710 ./lib/udev/rules.d/60-persistent-input.rules
+-rw-r--r-- root root 6521 ./lib/udev/rules.d/60-persistent-storage.rules
+-rw-r--r-- root root 1509 ./lib/udev/rules.d/60-persistent-storage-tape.rules
+-rw-r--r-- root root 769 ./lib/udev/rules.d/60-persistent-v4l.rules
+-rw-r--r-- root root 727 ./lib/udev/rules.d/60-sensor.rules
+-rw-r--r-- root root 1190 ./lib/udev/rules.d/60-serial.rules
+-rw-r--r-- root root 2134 ./lib/udev/rules.d/63-md-raid-arrays.rules
+-rw-r--r-- root root 387 ./lib/udev/rules.d/64-btrfs-dm.rules
+-rw-r--r-- root root 574 ./lib/udev/rules.d/64-btrfs.rules
+-rw-r--r-- root root 1444 ./lib/udev/rules.d/64-md-raid-assembly.rules
+-rw-r--r-- root root 846 ./lib/udev/rules.d/69-md-clustered-confirm-device.rules
+-rw-r--r-- root root 432 ./lib/udev/rules.d/70-joystick.rules
+-rw-r--r-- root root 734 ./lib/udev/rules.d/70-mouse.rules
+-rw-r--r-- root root 473 ./lib/udev/rules.d/70-touchpad.rules
+-rw-r--r-- root root 452 ./lib/udev/rules.d/75-net-description.rules
+-rw-r--r-- root root 174 ./lib/udev/rules.d/75-probe_mtd.rules
+-rw-r--r-- root root 4816 ./lib/udev/rules.d/78-sound-card.rules
+-rw-r--r-- root root 615 ./lib/udev/rules.d/80-drivers.rules
+-rw-r--r-- root root 491 ./lib/udev/rules.d/80-net-name-slot.rules
+-rwxr-xr-x root root 109304 ./lib/udev/scsi_id
+-rwxr-xr-x root root 67776 ./lib/udev/v4l_id
+drwxr-xr-x root root 4096 ./media
+drwxr-xr-x root root 4096 ./mnt
+dr-xr-xr-x root root 4096 ./proc
+drwxr-xr-x root root 4096 ./run
+drwxr-xr-x root root 4096 ./sbin
+-rwxr-xr-x root root 64736 ./sbin/agetty
+-rwxr-xr-x root root 34792 ./sbin/badblocks
+lrwxrwxrwx root root 22 ./sbin/blkid -> /sbin/blkid.util-linux
+-rwxr-xr-x root root 120912 ./sbin/blkid.util-linux
+lrwxrwxrwx root root 25 ./sbin/blockdev -> /sbin/blockdev.util-linux
+-rwxr-xr-x root root 63536 ./sbin/blockdev.util-linux
+-rwxr-xr-x root root 22736 ./sbin/bootlogd
+-rwxr-xr-x root root 104568 ./sbin/bridge
+-rwxr-xr-x root root 96664 ./sbin/cfdisk
+-rwxr-xr-x root root 38952 ./sbin/ctrlaltdel
+-rwxr-xr-x root root 239064 ./sbin/debugfs
+lrwxrwxrwx root root 11 ./sbin/depmod.kmod -> ../bin/kmod
+lrwxrwxrwx root root 17 ./sbin/depmod -> /sbin/depmod.kmod
+-rwxr-xr-x root root 30768 ./sbin/dumpe2fs
+-rwxr-xr-x root root 14376 ./sbin/e2freefrag
+-rwxr-xr-x root root 330808 ./sbin/e2fsck
+-rwxr-xr-x root root 38952 ./sbin/e2image
+-rwxr-xr-x root root 30768 ./sbin/e2mmpstatus
+-rwxr-xr-x root root 22560 ./sbin/e2undo
+-rwxr-xr-x root root 26656 ./sbin/e4crypt
+-rwxr-xr-x root root 34776 ./sbin/e4defrag
+lrwxrwxrwx root root 22 ./sbin/fdisk -> /sbin/fdisk.util-linux
+-rwxr-xr-x root root 149600 ./sbin/fdisk.util-linux
+-rwxr-xr-x root root 18416 ./sbin/filefrag
+-rwxr-xr-x root root 330808 ./sbin/fsck.ext2
+-rwxr-xr-x root root 330808 ./sbin/fsck.ext3
+-rwxr-xr-x root root 330808 ./sbin/fsck.ext4
+lrwxrwxrwx root root 21 ./sbin/fsck -> /sbin/fsck.util-linux
+-rwxr-xr-x root root 55392 ./sbin/fsck.util-linux
+-rwxr-xr-x root root 14296 ./sbin/fstab-decode
+lrwxrwxrwx root root 23 ./sbin/fstrim -> /sbin/fstrim.util-linux
+-rwxr-xr-x root root 71728 ./sbin/fstrim.util-linux
+lrwxrwxrwx root root 12 ./sbin/getty -> /sbin/agetty
+lrwxrwxrwx root root 19 ./sbin/halt -> /sbin/halt.sysvinit
+-rwsr-xr-- root shutdown 22512 ./sbin/halt.sysvinit
+lrwxrwxrwx root root 24 ./sbin/hwclock -> /sbin/hwclock.util-linux
+-rwxr-xr-x root root 80048 ./sbin/hwclock.util-linux
+-rwxr-xr-x root root 3109 ./sbin/ifcfg
+lrwxrwxrwx root root 19 ./sbin/ifconfig -> /bin/busybox.nosuid
+lrwxrwxrwx root root 19 ./sbin/ifdown -> /bin/busybox.nosuid
+lrwxrwxrwx root root 19 ./sbin/ifup -> /bin/busybox.nosuid
+lrwxrwxrwx root root 19 ./sbin/init -> /sbin/init.sysvinit
+-rwxr-xr-x root root 47944 ./sbin/init.sysvinit
+lrwxrwxrwx root root 11 ./sbin/insmod.kmod -> ../bin/kmod
+lrwxrwxrwx root root 17 ./sbin/insmod -> /sbin/insmod.kmod
+-rwxr-xr-x root root 619960 ./sbin/ip.iproute2
+lrwxrwxrwx root root 17 ./sbin/ip -> /sbin/ip.iproute2
+-rwxr-xr-x root root 26664 ./sbin/killall5
+lrwxrwxrwx root root 19 ./sbin/klogd -> /bin/busybox.nosuid
+-rwxr-xr-x root root 887640 ./sbin/ldconfig
+lrwxrwxrwx root root 19 ./sbin/loadkmap -> /bin/busybox.nosuid
+lrwxrwxrwx root root 19 ./sbin/logread -> /bin/busybox.nosuid
+-rwxr-xr-x root root 14296 ./sbin/logsave
+lrwxrwxrwx root root 24 ./sbin/losetup -> /sbin/losetup.util-linux
+-rwxr-xr-x root root 112808 ./sbin/losetup.util-linux
+lrwxrwxrwx root root 15 ./sbin/lsmod -> /bin/lsmod.kmod
+-rwxr-xr-x root root 595280 ./sbin/mdadm
+-rwxr-xr-x root root 328880 ./sbin/mdmon
+-rwxr-xr-x root root 137512 ./sbin/mke2fs.e2fsprogs
+lrwxrwxrwx root root 22 ./sbin/mke2fs -> /sbin/mke2fs.e2fsprogs
+-rwxr-xr-x root root 137512 ./sbin/mkfs.ext2.e2fsprogs
+lrwxrwxrwx root root 25 ./sbin/mkfs.ext2 -> /sbin/mkfs.ext2.e2fsprogs
+-rwxr-xr-x root root 137512 ./sbin/mkfs.ext3
+-rwxr-xr-x root root 137512 ./sbin/mkfs.ext4
+-rwxr-xr-x root root 14296 ./sbin/mklost+found
+lrwxrwxrwx root root 23 ./sbin/mkswap -> /sbin/mkswap.util-linux
+-rwxr-xr-x root root 104504 ./sbin/mkswap.util-linux
+lrwxrwxrwx root root 11 ./sbin/modinfo.kmod -> ../bin/kmod
+lrwxrwxrwx root root 18 ./sbin/modinfo -> /sbin/modinfo.kmod
+lrwxrwxrwx root root 11 ./sbin/modprobe.kmod -> ../bin/kmod
+lrwxrwxrwx root root 19 ./sbin/modprobe -> /sbin/modprobe.kmod
+lrwxrwxrwx root root 20 ./sbin/nologin -> /sbin/nologin.shadow
+-rwxr-xr-x root root 14296 ./sbin/nologin.shadow
+-rwxr-xr-x root root 14384 ./sbin/nologin.util-linux
+lrwxrwxrwx root root 27 ./sbin/pivot_root -> /sbin/pivot_root.util-linux
+-rwxr-xr-x root root 14384 ./sbin/pivot_root.util-linux
+-rwxr-xr-x root root 2460 ./sbin/populate-extfs.sh
+lrwxrwxrwx root root 23 ./sbin/poweroff -> /sbin/poweroff.sysvinit
+lrwxrwxrwx root root 13 ./sbin/poweroff.sysvinit -> halt.sysvinit
+lrwxrwxrwx root root 21 ./sbin/reboot -> /sbin/reboot.sysvinit
+lrwxrwxrwx root root 13 ./sbin/reboot.sysvinit -> halt.sysvinit
+lrwxrwxrwx root root 11 ./sbin/rmmod.kmod -> ../bin/kmod
+lrwxrwxrwx root root 16 ./sbin/rmmod -> /sbin/rmmod.kmod
+lrwxrwxrwx root root 19 ./sbin/route -> /bin/busybox.nosuid
+-rwxr-xr-x root root 208 ./sbin/routef
+-rwxr-xr-x root root 1656 ./sbin/routel
+-rwxr-xr-x root root 75832 ./sbin/rtmon
+-rwxr-xr-x root root 70 ./sbin/rtpr
+lrwxrwxrwx root root 23 ./sbin/runlevel -> /sbin/runlevel.sysvinit
+-rwxr-xr-x root root 14304 ./sbin/runlevel.sysvinit
+lrwxrwxrwx root root 19 ./sbin/setconsole -> /bin/busybox.nosuid
+lrwxrwxrwx root root 23 ./sbin/shutdown -> /sbin/shutdown.sysvinit
+-rwsr-xr-- root shutdown 30744 ./sbin/shutdown.sysvinit
+lrwxrwxrwx root root 19 ./sbin/start-stop-daemon -> /bin/busybox.nosuid
+lrwxrwxrwx root root 24 ./sbin/sulogin -> /sbin/sulogin.util-linux
+-rwxr-xr-x root root 47152 ./sbin/sulogin.util-linux
+lrwxrwxrwx root root 24 ./sbin/swapoff -> /sbin/swapoff.util-linux
+-rwxr-xr-x root root 22576 ./sbin/swapoff.util-linux
+lrwxrwxrwx root root 23 ./sbin/swapon -> /sbin/swapon.util-linux
+-rwxr-xr-x root root 51248 ./sbin/swapon.util-linux
+lrwxrwxrwx root root 28 ./sbin/switch_root -> /sbin/switch_root.util-linux
+-rwxr-xr-x root root 14384 ./sbin/switch_root.util-linux
+-rwxr-xr-x root root 30768 ./sbin/sysctl.procps
+lrwxrwxrwx root root 19 ./sbin/sysctl -> /sbin/sysctl.procps
+lrwxrwxrwx root root 19 ./sbin/syslogd -> /bin/busybox.nosuid
+lrwxrwxrwx root root 4 ./sbin/telinit -> init
+lrwxrwxrwx root root 16 ./sbin/udevadm -> /usr/bin/udevadm
+-rwxr-xr-x root root 334168 ./sbin/udevd
+lrwxrwxrwx root root 19 ./sbin/udhcpc -> /bin/busybox.nosuid
+-rwxr-xr-x root root 133264 ./sbin/v86d
+lrwxrwxrwx root root 17 ./sbin/vigr -> /sbin/vigr.shadow
+lrwxrwxrwx root root 11 ./sbin/vigr.shadow -> vipw.shadow
+lrwxrwxrwx root root 17 ./sbin/vipw -> /sbin/vipw.shadow
+-rwxr-xr-x root root 61496 ./sbin/vipw.shadow
+dr-xr-xr-x root root 4096 ./sys
+drwxrwxrwt root root 4096 ./tmp
+drwxr-xr-x root root 4096 ./usr
+drwxr-xr-x root root 20480 ./usr/bin
+lrwxrwxrwx root root 36 ./usr/bin/addr2line -> /usr/bin/x86_64-poky-linux-addr2line
+-rwxr-xr-x root root 43208 ./usr/bin/arch.coreutils
+lrwxrwxrwx root root 23 ./usr/bin/arch -> /usr/bin/arch.coreutils
+lrwxrwxrwx root root 29 ./usr/bin/ar -> /usr/bin/x86_64-poky-linux-ar
+lrwxrwxrwx root root 29 ./usr/bin/as -> /usr/bin/x86_64-poky-linux-as
+-rwxr-xr-x root root 14288 ./usr/bin/attr
+lrwxrwxrwx root root 13 ./usr/bin/awk -> /usr/bin/gawk
+-rwxr-xr-x root root 63680 ./usr/bin/b2sum
+-rwxr-xr-x root root 47264 ./usr/bin/base32
+-rwxr-xr-x root root 47272 ./usr/bin/base64.coreutils
+-rwxr-xr-x root root 43176 ./usr/bin/basename.coreutils
+lrwxrwxrwx root root 27 ./usr/bin/basename -> /usr/bin/basename.coreutils
+-rwxr-xr-x root root 59552 ./usr/bin/basenc
+-rwxr-xr-x root root 96928 ./usr/bin/bc.bc
+lrwxrwxrwx root root 14 ./usr/bin/bc -> /usr/bin/bc.bc
+lrwxrwxrwx root root 19 ./usr/bin/[[ -> /bin/busybox.nosuid
+-rwxr-xr-x root root 455224 ./usr/bin/bison
+-rwxr-xr-x root root 933632 ./usr/bin/btrfs
+lrwxrwxrwx root root 5 ./usr/bin/btrfsck -> btrfs
+-rwxr-xr-x root root 531656 ./usr/bin/btrfs-convert
+-rwxr-xr-x root root 494856 ./usr/bin/btrfs-find-root
+-rwxr-xr-x root root 523456 ./usr/bin/btrfs-image
+-rwxr-xr-x root root 498888 ./usr/bin/btrfs-map-logical
+-rwxr-xr-x root root 494792 ./usr/bin/btrfs-select-super
+-rwxr-xr-x root root 494784 ./usr/bin/btrfstune
+lrwxrwxrwx root root 11 ./usr/bin/bunzip2.bzip2 -> bzip2.bzip2
+lrwxrwxrwx root root 22 ./usr/bin/bunzip2 -> /usr/bin/bunzip2.bzip2
+lrwxrwxrwx root root 11 ./usr/bin/bzcat.bzip2 -> bzip2.bzip2
+lrwxrwxrwx root root 20 ./usr/bin/bzcat -> /usr/bin/bzcat.bzip2
+lrwxrwxrwx root root 6 ./usr/bin/bzcmp -> bzdiff
+-rwxr-xr-x root root 2140 ./usr/bin/bzdiff
+lrwxrwxrwx root root 6 ./usr/bin/bzegrep -> bzgrep
+lrwxrwxrwx root root 6 ./usr/bin/bzfgrep -> bzgrep
+-rwxr-xr-x root root 2054 ./usr/bin/bzgrep
+-rwxr-xr-x root root 38952 ./usr/bin/bzip2.bzip2
+-rwxr-xr-x root root 14296 ./usr/bin/bzip2recover
+lrwxrwxrwx root root 20 ./usr/bin/bzip2 -> /usr/bin/bzip2.bzip2
+lrwxrwxrwx root root 6 ./usr/bin/bzless -> bzmore
+-rwxr-xr-x root root 1259 ./usr/bin/bzmore
+lrwxrwxrwx root root 23 ./usr/bin/cal -> /usr/bin/cal.util-linux
+-rwxr-xr-x root root 67936 ./usr/bin/cal.util-linux
+lrwxrwxrwx root root 34 ./usr/bin/c++filt -> /usr/bin/x86_64-poky-linux-c++filt
+-rwxr-xr-x root root 14288 ./usr/bin/chacl
+-rwsr-xr-x root root 71776 ./usr/bin/chage
+-rwxr-xr-x root root 71848 ./usr/bin/chcon.coreutils
+lrwxrwxrwx root root 24 ./usr/bin/chcon -> /usr/bin/chcon.coreutils
+-rwsr-xr-x root root 54032 ./usr/bin/chfn.shadow
+lrwxrwxrwx root root 20 ./usr/bin/chfn -> /usr/bin/chfn.shadow
+-rwxr-xr-x root root 63528 ./usr/bin/chmem
+-rwxr-xr-x root root 51240 ./usr/bin/choom
+lrwxrwxrwx root root 24 ./usr/bin/chrt -> /usr/bin/chrt.util-linux
+-rwxr-xr-x root root 34864 ./usr/bin/chrt.util-linux
+-rwsr-xr-x root root 53904 ./usr/bin/chsh.shadow
+lrwxrwxrwx root root 20 ./usr/bin/chsh -> /usr/bin/chsh.shadow
+lrwxrwxrwx root root 19 ./usr/bin/chvt -> /bin/busybox.nosuid
+-rwxr-xr-x root root 43176 ./usr/bin/cksum.coreutils
+lrwxrwxrwx root root 24 ./usr/bin/cksum -> /usr/bin/cksum.coreutils
+lrwxrwxrwx root root 19 ./usr/bin/clear -> /bin/busybox.nosuid
+-rwxr-xr-x root root 47176 ./usr/bin/cmp.diffutils
+lrwxrwxrwx root root 22 ./usr/bin/cmp -> /usr/bin/cmp.diffutils
+-rwxr-xr-x root root 34848 ./usr/bin/col
+-rwxr-xr-x root root 14368 ./usr/bin/colcrt
+-rwxr-xr-x root root 30760 ./usr/bin/colrm
+-rwxr-xr-x root root 51240 ./usr/bin/column
+-rwxr-xr-x root root 51400 ./usr/bin/comm.coreutils
+lrwxrwxrwx root root 23 ./usr/bin/comm -> /usr/bin/comm.coreutils
+-rwxr-xr-x root root 1342 ./usr/bin/compile_et
+-rwxr-xr-x root root 6214 ./usr/bin/c_rehash
+-rwxr-xr-x root root 125128 ./usr/bin/csplit.coreutils
+lrwxrwxrwx root root 25 ./usr/bin/csplit -> /usr/bin/csplit.coreutils
+-rwxr-xr-x root root 55496 ./usr/bin/cut.coreutils
+lrwxrwxrwx root root 22 ./usr/bin/cut -> /usr/bin/cut.coreutils
+-rwxr-xr-x root root 14304 ./usr/bin/dbus-cleanup-sockets
+-rwxr-xr-x root root 223688 ./usr/bin/dbus-daemon
+-rwxr-xr-x root root 30680 ./usr/bin/dbus-launch
+-rwxr-xr-x root root 30688 ./usr/bin/dbus-monitor
+-rwxr-xr-x root root 14304 ./usr/bin/dbus-run-session
+-rwxr-xr-x root root 30680 ./usr/bin/dbus-send
+-rwxr-xr-x root root 26672 ./usr/bin/dbus-test-tool
+-rwxr-xr-x root root 14320 ./usr/bin/dbus-update-activation-environment
+-rwxr-xr-x root root 14296 ./usr/bin/dbus-uuidgen
+-rwxr-xr-x root root 55352 ./usr/bin/dc.bc
+lrwxrwxrwx root root 14 ./usr/bin/dc -> /usr/bin/dc.bc
+lrwxrwxrwx root root 19 ./usr/bin/deallocvt -> /bin/busybox.nosuid
+-rwxr-xr-x root root 105232 ./usr/bin/df.coreutils
+-rwxr-xr-x root root 67760 ./usr/bin/diff3
+-rwxr-xr-x root root 223544 ./usr/bin/diff.diffutils
+lrwxrwxrwx root root 23 ./usr/bin/diff -> /usr/bin/diff.diffutils
+-rwxr-xr-x root root 71864 ./usr/bin/dircolors.coreutils
+lrwxrwxrwx root root 28 ./usr/bin/dircolors -> /usr/bin/dircolors.coreutils
+-rwxr-xr-x root root 162448 ./usr/bin/dir.coreutils
+-rwxr-xr-x root root 43176 ./usr/bin/dirname.coreutils
+lrwxrwxrwx root root 26 ./usr/bin/dirname -> /usr/bin/dirname.coreutils
+lrwxrwxrwx root root 22 ./usr/bin/dir -> /usr/bin/dir.coreutils
+-rwxr-xr-x root root 194760 ./usr/bin/du.coreutils
+lrwxrwxrwx root root 19 ./usr/bin/dumpleases -> /bin/busybox.nosuid
+lrwxrwxrwx root root 21 ./usr/bin/du -> /usr/bin/du.coreutils
+lrwxrwxrwx root root 30 ./usr/bin/dwp -> /usr/bin/x86_64-poky-linux-dwp
+lrwxrwxrwx root root 25 ./usr/bin/eject -> /usr/bin/eject.util-linux
+-rwxr-xr-x root root 79920 ./usr/bin/eject.util-linux
+lrwxrwxrwx root root 34 ./usr/bin/elfedit -> /usr/bin/x86_64-poky-linux-elfedit
+-rwxr-xr-x root root 55904 ./usr/bin/env.coreutils
+lrwxrwxrwx root root 22 ./usr/bin/env -> /usr/bin/env.coreutils
+-rwxr-xr-x root root 39016 ./usr/bin/eu-ar
+-rwxr-xr-x root root 28656 ./usr/bin/eu-elfclassify
+-rwxr-xr-x root root 350840 ./usr/bin/eu-elfcmp
+-rwxr-xr-x root root 31160 ./usr/bin/eu-elfcompress
+-rwxr-xr-x root root 432760 ./usr/bin/eu-elflint
+-rwxr-xr-x root root 22672 ./usr/bin/eu-findtextrel
+-rwxr-xr-x root root 2911 ./usr/bin/eu-make-debug-archive
+-rwxr-xr-x root root 355056 ./usr/bin/eu-objdump
+-rwxr-xr-x root root 22568 ./usr/bin/eu-ranlib
+-rwxr-xr-x root root 27600 ./usr/bin/eu-stack
+-rwxr-xr-x root root 26736 ./usr/bin/eu-strings
+-rwxr-xr-x root root 51240 ./usr/bin/eu-unstrip
+-rwxr-xr-x root root 47304 ./usr/bin/expand.coreutils
+lrwxrwxrwx root root 25 ./usr/bin/expand -> /usr/bin/expand.coreutils
+-rwsr-xr-x root root 36336 ./usr/bin/expiry
+-rwxr-xr-x root root 125096 ./usr/bin/expr.coreutils
+lrwxrwxrwx root root 23 ./usr/bin/expr -> /usr/bin/expr.coreutils
+-rwxr-xr-x root root 84168 ./usr/bin/factor.coreutils
+lrwxrwxrwx root root 25 ./usr/bin/factor -> /usr/bin/factor.coreutils
+-rwxr-xr-x root root 22784 ./usr/bin/faillog
+lrwxrwxrwx root root 29 ./usr/bin/fallocate -> /usr/bin/fallocate.util-linux
+-rwxr-xr-x root root 30776 ./usr/bin/fallocate.util-linux
+-rwxr-xr-x root root 92656 ./usr/bin/filan
+-rwxr-xr-x root root 34904 ./usr/bin/fincore
+-rwxr-xr-x root root 324064 ./usr/bin/find.findutils
+-rwxr-xr-x root root 68840 ./usr/bin/findmnt
+lrwxrwxrwx root root 23 ./usr/bin/find -> /usr/bin/find.findutils
+-rwxr-xr-x root root 443016 ./usr/bin/flex
+lrwxrwxrwx root root 4 ./usr/bin/flex++ -> flex
+lrwxrwxrwx root root 25 ./usr/bin/flock -> /usr/bin/flock.util-linux
+-rwxr-xr-x root root 34944 ./usr/bin/flock.util-linux
+-rwxr-xr-x root root 55464 ./usr/bin/fmt.coreutils
+lrwxrwxrwx root root 22 ./usr/bin/fmt -> /usr/bin/fmt.coreutils
+-rwxr-xr-x root root 47272 ./usr/bin/fold.coreutils
+lrwxrwxrwx root root 23 ./usr/bin/fold -> /usr/bin/fold.coreutils
+-rwxr-xr-x root root 26672 ./usr/bin/free.procps
+lrwxrwxrwx root root 20 ./usr/bin/free -> /usr/bin/free.procps
+-rwxr-xr-x root root 1185 ./usr/bin/fsck.btrfs
+-rwxr-xr-x root root 26576 ./usr/bin/funzip
+lrwxrwxrwx root root 19 ./usr/bin/fuser -> /bin/busybox.nosuid
+-rwxr-xr-x root root 653592 ./usr/bin/gawk
+-rwxr-xr-x root root 653592 ./usr/bin/gawk-5.1.0
+-rwxr-xr-x root root 26808 ./usr/bin/gencat
+-rwxr-xr-x root root 34912 ./usr/bin/getconf
+-rwxr-xr-x root root 35280 ./usr/bin/getent
+-rwxr-xr-x root root 31312 ./usr/bin/getfacl
+-rwxr-xr-x root root 23032 ./usr/bin/getfattr
+lrwxrwxrwx root root 28 ./usr/bin/ginsttest-runner -> gnome-desktop-testing-runner
+-rwxr-xr-x root root 4049 ./usr/bin/g-ir-annotation-tool
+-rwxr-xr-x root root 187384 ./usr/bin/g-ir-compiler
+-rwxr-xr-x root root 42968 ./usr/bin/g-ir-generate
+-rwxr-xr-x root root 14296 ./usr/bin/g-ir-inspect
+-rwxr-xr-x root root 4040 ./usr/bin/g-ir-scanner
+-rwxr-xr-x root root 35384 ./usr/bin/gnome-desktop-testing-runner
+-rwsr-xr-x root root 71624 ./usr/bin/gpasswd
+lrwxrwxrwx root root 32 ./usr/bin/gprof -> /usr/bin/x86_64-poky-linux-gprof
+-rwxr-xr-x root root 43176 ./usr/bin/groups.coreutils
+-rwxr-xr-x root root 14296 ./usr/bin/groups.shadow
+lrwxrwxrwx root root 22 ./usr/bin/groups -> /usr/bin/groups.shadow
+-rwxr-xr-x root root 22568 ./usr/bin/hardlink
+-rwxr-xr-x root root 55496 ./usr/bin/head.coreutils
+lrwxrwxrwx root root 23 ./usr/bin/head -> /usr/bin/head.coreutils
+lrwxrwxrwx root root 27 ./usr/bin/hexdump -> /usr/bin/hexdump.util-linux
+-rwxr-xr-x root root 55352 ./usr/bin/hexdump.util-linux
+-rwxr-xr-x root root 43176 ./usr/bin/hostid.coreutils
+lrwxrwxrwx root root 25 ./usr/bin/hostid -> /usr/bin/hostid.coreutils
+lrwxrwxrwx root root 7 ./usr/bin/i386 -> setarch
+-rwxr-xr-x root root 59608 ./usr/bin/iconv
+-rwxr-xr-x root root 55496 ./usr/bin/id.coreutils
+lrwxrwxrwx root root 21 ./usr/bin/id -> /usr/bin/id.coreutils
+-rwxr-xr-x root root 141560 ./usr/bin/install.coreutils
+lrwxrwxrwx root root 26 ./usr/bin/install -> /usr/bin/install.coreutils
+lrwxrwxrwx root root 26 ./usr/bin/ionice -> /usr/bin/ionice.util-linux
+-rwxr-xr-x root root 30768 ./usr/bin/ionice.util-linux
+-rwxr-xr-x root root 30824 ./usr/bin/ipcmk
+-rwxr-xr-x root root 34856 ./usr/bin/ipcrm
+-rwxr-xr-x root root 71720 ./usr/bin/ipcs
+lrwxrwxrwx root root 30 ./usr/bin/iptables-xml -> /usr/sbin/xtables-legacy-multi
+-rwxr-xr-x root root 30760 ./usr/bin/isosize
+-rwxr-xr-x root root 59592 ./usr/bin/join.coreutils
+lrwxrwxrwx root root 23 ./usr/bin/join -> /usr/bin/join.coreutils
+lrwxrwxrwx root root 19 ./usr/bin/killall -> /bin/busybox.nosuid
+lrwxrwxrwx root root 13 ./usr/bin/lastb.sysvinit -> last.sysvinit
+lrwxrwxrwx root root 23 ./usr/bin/lastb -> /usr/bin/lastb.sysvinit
+lrwxrwxrwx root root 15 ./usr/bin/lastb.util-linux -> last.util-linux
+-rwxr-xr-x root root 32032 ./usr/bin/lastlog
+-rwxr-xr-x root root 22512 ./usr/bin/last.sysvinit
+lrwxrwxrwx root root 22 ./usr/bin/last -> /usr/bin/last.sysvinit
+-rwxr-xr-x root root 47152 ./usr/bin/last.util-linux
+-rwxr-xr-x root root 63648 ./usr/bin/lbracket.coreutils
+lrwxrwxrwx root root 33 ./usr/bin/ld.bfd -> /usr/bin/x86_64-poky-linux-ld.bfd
+lrwxrwxrwx root root 34 ./usr/bin/ld.gold -> /usr/bin/x86_64-poky-linux-ld.gold
+lrwxrwxrwx root root 29 ./usr/bin/ld -> /usr/bin/x86_64-poky-linux-ld
+lrwxrwxrwx root root 19 ./usr/bin/less -> /bin/busybox.nosuid
+-rwxr-xr-x root root 173 ./usr/bin/libpng16-config
+lrwxrwxrwx root root 15 ./usr/bin/libpng-config -> libpng16-config
+-rwxr-xr-x root root 43176 ./usr/bin/link.coreutils
+lrwxrwxrwx root root 23 ./usr/bin/link -> /usr/bin/link.coreutils
+lrwxrwxrwx root root 7 ./usr/bin/linux32 -> setarch
+lrwxrwxrwx root root 7 ./usr/bin/linux64 -> setarch
+-rwxr-xr-x root root 54648 ./usr/bin/locale
+-rwxr-xr-x root root 170408 ./usr/bin/locate
+lrwxrwxrwx root root 26 ./usr/bin/logger -> /usr/bin/logger.util-linux
+-rwxr-xr-x root root 47760 ./usr/bin/logger.util-linux
+-rwxr-xr-x root root 43176 ./usr/bin/logname.coreutils
+lrwxrwxrwx root root 26 ./usr/bin/logname -> /usr/bin/logname.coreutils
+-rwxr-xr-x root root 14368 ./usr/bin/look
+-rwxr-xr-x root root 14296 ./usr/bin/lsattr
+-rwxr-xr-x root root 145448 ./usr/bin/lsblk
+-rwxr-xr-x root root 100392 ./usr/bin/lscpu
+-rwxr-xr-x root root 92200 ./usr/bin/lsipc
+-rwxr-xr-x root root 39288 ./usr/bin/lslocks
+-rwxr-xr-x root root 67624 ./usr/bin/lslogins
+-rwxr-xr-x root root 67624 ./usr/bin/lsmem
+-rwxr-xr-x root root 51240 ./usr/bin/lsns
+lrwxrwxrwx root root 17 ./usr/bin/lzcat -> /usr/bin/lzcat.xz
+lrwxrwxrwx root root 5 ./usr/bin/lzcat.xz -> xz.xz
+lrwxrwxrwx root root 6 ./usr/bin/lzcmp -> xzdiff
+lrwxrwxrwx root root 6 ./usr/bin/lzdiff -> xzdiff
+lrwxrwxrwx root root 6 ./usr/bin/lzegrep -> xzgrep
+lrwxrwxrwx root root 6 ./usr/bin/lzfgrep -> xzgrep
+lrwxrwxrwx root root 6 ./usr/bin/lzgrep -> xzgrep
+lrwxrwxrwx root root 6 ./usr/bin/lzless -> xzless
+-rwxr-xr-x root root 14376 ./usr/bin/lzmadec
+-rwxr-xr-x root root 14376 ./usr/bin/lzmainfo
+lrwxrwxrwx root root 16 ./usr/bin/lzma -> /usr/bin/lzma.xz
+lrwxrwxrwx root root 5 ./usr/bin/lzma.xz -> xz.xz
+lrwxrwxrwx root root 6 ./usr/bin/lzmore -> xzmore
+-rwxr-xr-x root root 243992 ./usr/bin/m4
+-rwxr-xr-x root root 243208 ./usr/bin/make
+-rwxr-xr-x root root 22712 ./usr/bin/makedb
+-rwxr-xr-x root root 34920 ./usr/bin/mcookie
+-rwxr-xr-x root root 55496 ./usr/bin/md5sum.coreutils
+lrwxrwxrwx root root 25 ./usr/bin/md5sum -> /usr/bin/md5sum.coreutils
+-rwxr-xr-x root root 14304 ./usr/bin/mesg.sysvinit
+lrwxrwxrwx root root 22 ./usr/bin/mesg -> /usr/bin/mesg.sysvinit
+-rwxr-xr-x root root 14376 ./usr/bin/mesg.util-linux
+lrwxrwxrwx root root 19 ./usr/bin/microcom -> /bin/busybox.nosuid
+-rwxr-xr-x root root 1102 ./usr/bin/mk_cmds
+-rwxr-xr-x root root 47272 ./usr/bin/mkfifo.coreutils
+lrwxrwxrwx root root 25 ./usr/bin/mkfifo -> /usr/bin/mkfifo.coreutils
+-rwxr-xr-x root root 523456 ./usr/bin/mkfs.btrfs
+-rwxr-xr-x root root 55464 ./usr/bin/mktemp.coreutils
+-rwxr-xr-x root root 34856 ./usr/bin/namei
+lrwxrwxrwx root root 19 ./usr/bin/nc -> /bin/busybox.nosuid
+-rwxr-xr-x root root 173 ./usr/bin/ncurses5-config
+-rwxr-xr-x root root 173 ./usr/bin/ncurses6-config
+-rwxr-xr-x root root 175 ./usr/bin/ncursesw5-config
+-rwxr-xr-x root root 175 ./usr/bin/ncursesw6-config
+-rwsr-xr-x root root 41136 ./usr/bin/newgidmap
+-rwsr-xr-x root root 40312 ./usr/bin/newgrp.shadow
+lrwxrwxrwx root root 22 ./usr/bin/newgrp -> /usr/bin/newgrp.shadow
+-rwsr-xr-x root root 37040 ./usr/bin/newuidmap
+-rwxr-xr-x root root 47272 ./usr/bin/nice.coreutils
+-rwxr-xr-x root root 117000 ./usr/bin/nl.coreutils
+lrwxrwxrwx root root 21 ./usr/bin/nl -> /usr/bin/nl.coreutils
+lrwxrwxrwx root root 29 ./usr/bin/nm -> /usr/bin/x86_64-poky-linux-nm
+-rwxr-xr-x root root 47272 ./usr/bin/nohup.coreutils
+lrwxrwxrwx root root 24 ./usr/bin/nohup -> /usr/bin/nohup.coreutils
+-rwxr-xr-x root root 47272 ./usr/bin/nproc.coreutils
+lrwxrwxrwx root root 24 ./usr/bin/nproc -> /usr/bin/nproc.coreutils
+lrwxrwxrwx root root 27 ./usr/bin/nsenter -> /usr/bin/nsenter.util-linux
+-rwxr-xr-x root root 35072 ./usr/bin/nsenter.util-linux
+lrwxrwxrwx root root 19 ./usr/bin/nslookup -> /bin/busybox.nosuid
+-rwxr-xr-x root root 71904 ./usr/bin/numfmt
+lrwxrwxrwx root root 34 ./usr/bin/objcopy -> /usr/bin/x86_64-poky-linux-objcopy
+lrwxrwxrwx root root 34 ./usr/bin/objdump -> /usr/bin/x86_64-poky-linux-objdump
+-rwxr-xr-x root root 80072 ./usr/bin/od.coreutils
+lrwxrwxrwx root root 21 ./usr/bin/od -> /usr/bin/od.coreutils
+-rwxr-xr-x root root 736944 ./usr/bin/openssl
+lrwxrwxrwx root root 19 ./usr/bin/openvt -> /bin/busybox.nosuid
+-rwsr-xr-x root root 67760 ./usr/bin/passwd.shadow
+lrwxrwxrwx root root 22 ./usr/bin/passwd -> /usr/bin/passwd.shadow
+-rwxr-xr-x root root 47304 ./usr/bin/paste.coreutils
+lrwxrwxrwx root root 24 ./usr/bin/paste -> /usr/bin/paste.coreutils
+lrwxrwxrwx root root 19 ./usr/bin/patch -> /bin/busybox.nosuid
+-rwxr-xr-x root root 43176 ./usr/bin/pathchk.coreutils
+lrwxrwxrwx root root 26 ./usr/bin/pathchk -> /usr/bin/pathchk.coreutils
+-rwxr-xr-x root root 14520 ./usr/bin/pcprofiledump
+-rwxr-xr-x root root 165 ./usr/bin/pcre-config
+-rwxr-xr-x root root 14288 ./usr/bin/perl
+-rwxr-xr-x root root 30776 ./usr/bin/pgrep.procps
+lrwxrwxrwx root root 21 ./usr/bin/pgrep -> /usr/bin/pgrep.procps
+-rwxr-xr-x root root 47304 ./usr/bin/pinky.coreutils
+lrwxrwxrwx root root 24 ./usr/bin/pinky -> /usr/bin/pinky.coreutils
+-rwxr-xr-x root root 30776 ./usr/bin/pkill.procps
+lrwxrwxrwx root root 21 ./usr/bin/pkill -> /usr/bin/pkill.procps
+-rwxr-xr-x root root 22712 ./usr/bin/pldd
+-rwxr-xr-x root root 34872 ./usr/bin/pmap.procps
+lrwxrwxrwx root root 20 ./usr/bin/pmap -> /usr/bin/pmap.procps
+-rwxr-xr-x root root 84232 ./usr/bin/pr.coreutils
+-rwxr-xr-x root root 43176 ./usr/bin/printenv.coreutils
+-rwxr-xr-x root root 63648 ./usr/bin/printf.coreutils
+lrwxrwxrwx root root 25 ./usr/bin/printf -> /usr/bin/printf.coreutils
+-rwxr-xr-x root root 39480 ./usr/bin/prlimit
+-rwxr-xr-x root root 80288 ./usr/bin/procan
+lrwxrwxrwx root root 21 ./usr/bin/pr -> /usr/bin/pr.coreutils
+-rwxr-xr-x root root 145640 ./usr/bin/ptx.coreutils
+lrwxrwxrwx root root 22 ./usr/bin/ptx -> /usr/bin/ptx.coreutils
+-rwxr-xr-x root root 14376 ./usr/bin/pwdx.procps
+lrwxrwxrwx root root 20 ./usr/bin/pwdx -> /usr/bin/pwdx.procps
+-rwxr-xr-x root root 14296 ./usr/bin/python3.8
+-rwxr-xr-x root root 2114 ./usr/bin/python3.8-config-lib
+lrwxrwxrwx root root 29 ./usr/bin/python3.8-config -> /usr/bin/python3.8-config-lib
+lrwxrwxrwx root root 16 ./usr/bin/python3-config -> python3.8-config
+lrwxrwxrwx root root 9 ./usr/bin/python3 -> python3.8
+lrwxrwxrwx root root 33 ./usr/bin/ranlib -> /usr/bin/x86_64-poky-linux-ranlib
+-rwxr-xr-x root root 14296 ./usr/bin/readbootlog
+lrwxrwxrwx root root 34 ./usr/bin/readelf -> /usr/bin/x86_64-poky-linux-readelf
+-rwxr-xr-x root root 55464 ./usr/bin/readlink.coreutils
+lrwxrwxrwx root root 27 ./usr/bin/readlink -> /usr/bin/readlink.coreutils
+-rwxr-xr-x root root 55496 ./usr/bin/realpath.coreutils
+lrwxrwxrwx root root 27 ./usr/bin/realpath -> /usr/bin/realpath.coreutils
+-rwxr-xr-x root root 22560 ./usr/bin/rename
+lrwxrwxrwx root root 26 ./usr/bin/renice -> /usr/bin/renice.util-linux
+-rwxr-xr-x root root 14384 ./usr/bin/renice.util-linux
+lrwxrwxrwx root root 19 ./usr/bin/reset -> /bin/busybox.nosuid
+lrwxrwxrwx root root 19 ./usr/bin/resize -> /bin/busybox.nosuid
+lrwxrwxrwx root root 23 ./usr/bin/rev -> /usr/bin/rev.util-linux
+-rwxr-xr-x root root 14376 ./usr/bin/rev.util-linux
+-rwxr-xr-x root root 43176 ./usr/bin/runcon.coreutils
+lrwxrwxrwx root root 25 ./usr/bin/runcon -> /usr/bin/runcon.coreutils
+-rwxr-xr-x root root 67624 ./usr/bin/script
+-rwxr-xr-x root root 55336 ./usr/bin/scriptlive
+-rwxr-xr-x root root 43056 ./usr/bin/scriptreplay
+-rwxr-xr-x root root 51264 ./usr/bin/sdiff
+-rwxr-xr-x root root 63656 ./usr/bin/seq.coreutils
+lrwxrwxrwx root root 22 ./usr/bin/seq -> /usr/bin/seq.coreutils
+-rwxr-xr-x root root 26936 ./usr/bin/setarch
+-rwxr-xr-x root root 39568 ./usr/bin/setfacl
+-rwxr-xr-x root root 18696 ./usr/bin/setfattr.attr
+lrwxrwxrwx root root 22 ./usr/bin/setfattr -> /usr/bin/setfattr.attr
+lrwxrwxrwx root root 27 ./usr/bin/setpriv -> /usr/bin/setpriv.util-linux
+-rwxr-xr-x root root 47160 ./usr/bin/setpriv.util-linux
+lrwxrwxrwx root root 26 ./usr/bin/setsid -> /usr/bin/setsid.util-linux
+-rwxr-xr-x root root 14384 ./usr/bin/setsid.util-linux
+-rwxr-xr-x root root 47144 ./usr/bin/setterm
+lrwxrwxrwx root root 13 ./usr/bin/sg -> newgrp.shadow
+-rwxr-xr-x root root 59592 ./usr/bin/sha1sum.coreutils
+lrwxrwxrwx root root 26 ./usr/bin/sha1sum -> /usr/bin/sha1sum.coreutils
+-rwxr-xr-x root root 67784 ./usr/bin/sha224sum.coreutils
+lrwxrwxrwx root root 28 ./usr/bin/sha224sum -> /usr/bin/sha224sum.coreutils
+-rwxr-xr-x root root 67784 ./usr/bin/sha256sum.coreutils
+lrwxrwxrwx root root 28 ./usr/bin/sha256sum -> /usr/bin/sha256sum.coreutils
+-rwxr-xr-x root root 71880 ./usr/bin/sha384sum.coreutils
+lrwxrwxrwx root root 28 ./usr/bin/sha384sum -> /usr/bin/sha384sum.coreutils
+-rwxr-xr-x root root 71880 ./usr/bin/sha512sum.coreutils
+lrwxrwxrwx root root 28 ./usr/bin/sha512sum -> /usr/bin/sha512sum.coreutils
+-rwxr-xr-x root root 67784 ./usr/bin/shred.coreutils
+lrwxrwxrwx root root 24 ./usr/bin/shred -> /usr/bin/shred.coreutils
+-rwxr-xr-x root root 63656 ./usr/bin/shuf.coreutils
+lrwxrwxrwx root root 23 ./usr/bin/shuf -> /usr/bin/shuf.coreutils
+lrwxrwxrwx root root 31 ./usr/bin/size -> /usr/bin/x86_64-poky-linux-size
+-rwxr-xr-x root root 30768 ./usr/bin/skill.procps
+lrwxrwxrwx root root 21 ./usr/bin/skill -> /usr/bin/skill.procps
+-rwxr-xr-x root root 22568 ./usr/bin/slabtop
+-rwxr-xr-x root root 30768 ./usr/bin/snice.procps
+lrwxrwxrwx root root 21 ./usr/bin/snice -> /usr/bin/snice.procps
+-rwxr-xr-x root root 380104 ./usr/bin/socat
+-rwxr-xr-x root root 117200 ./usr/bin/sort.coreutils
+lrwxrwxrwx root root 23 ./usr/bin/sort -> /usr/bin/sort.coreutils
+-rwxr-xr-x root root 64128 ./usr/bin/split.coreutils
+lrwxrwxrwx root root 24 ./usr/bin/split -> /usr/bin/split.coreutils
+-rwxr-xr-x root root 30896 ./usr/bin/sprof
+-rwxr-xr-x root root 63648 ./usr/bin/stdbuf
+lrwxrwxrwx root root 34 ./usr/bin/strings -> /usr/bin/x86_64-poky-linux-strings
+lrwxrwxrwx root root 32 ./usr/bin/strip -> /usr/bin/x86_64-poky-linux-strip
+-rwxr-xr-x root root 51376 ./usr/bin/sum.coreutils
+lrwxrwxrwx root root 22 ./usr/bin/sum -> /usr/bin/sum.coreutils
+-rwxr-xr-x root root 112808 ./usr/bin/tac.coreutils
+lrwxrwxrwx root root 22 ./usr/bin/tac -> /usr/bin/tac.coreutils
+-rwxr-xr-x root root 80104 ./usr/bin/tail.coreutils
+lrwxrwxrwx root root 23 ./usr/bin/tail -> /usr/bin/tail.coreutils
+lrwxrwxrwx root root 27 ./usr/bin/taskset -> /usr/bin/taskset.util-linux
+-rwxr-xr-x root root 34864 ./usr/bin/taskset.util-linux
+-rwxr-xr-x root root 47304 ./usr/bin/tee.coreutils
+lrwxrwxrwx root root 22 ./usr/bin/tee -> /usr/bin/tee.coreutils
+lrwxrwxrwx root root 19 ./usr/bin/telnet -> /bin/busybox.nosuid
+-rwxr-xr-x root root 59544 ./usr/bin/test.coreutils
+lrwxrwxrwx root root 23 ./usr/bin/test -> /usr/bin/test.coreutils
+lrwxrwxrwx root root 19 ./usr/bin/tftp -> /bin/busybox.nosuid
+lrwxrwxrwx root root 19 ./usr/bin/time -> /bin/busybox.nosuid
+-rwxr-xr-x root root 51840 ./usr/bin/timeout.coreutils
+lrwxrwxrwx root root 26 ./usr/bin/timeout -> /usr/bin/timeout.coreutils
+-rwxr-xr-x root root 22576 ./usr/bin/tload
+-rwxr-xr-x root root 124784 ./usr/bin/top.procps
+lrwxrwxrwx root root 19 ./usr/bin/top -> /usr/bin/top.procps
+-rwxr-xr-x root root 22512 ./usr/bin/tput
+lrwxrwxrwx root root 17 ./usr/bin/traceroute -> /bin/busybox.suid
+-rwxr-xr-x root root 55464 ./usr/bin/tr.coreutils
+-rwxr-xr-x root root 47272 ./usr/bin/truncate.coreutils
+lrwxrwxrwx root root 27 ./usr/bin/truncate -> /usr/bin/truncate.coreutils
+lrwxrwxrwx root root 21 ./usr/bin/tr -> /usr/bin/tr.coreutils
+lrwxrwxrwx root root 19 ./usr/bin/ts -> /bin/busybox.nosuid
+-rwxr-xr-x root root 30680 ./usr/bin/tset
+-rwxr-xr-x root root 59560 ./usr/bin/tsort.coreutils
+lrwxrwxrwx root root 24 ./usr/bin/tsort -> /usr/bin/tsort.coreutils
+-rwxr-xr-x root root 43176 ./usr/bin/tty.coreutils
+lrwxrwxrwx root root 22 ./usr/bin/tty -> /usr/bin/tty.coreutils
+-rwxr-xr-x root root 354584 ./usr/bin/udevadm
+-rwxr-xr-x root root 22560 ./usr/bin/ul
+lrwxrwxrwx root root 7 ./usr/bin/uname26 -> setarch
+-rwxr-xr-x root root 47304 ./usr/bin/unexpand.coreutils
+lrwxrwxrwx root root 27 ./usr/bin/unexpand -> /usr/bin/unexpand.coreutils
+-rwxr-xr-x root root 55496 ./usr/bin/uniq.coreutils
+lrwxrwxrwx root root 23 ./usr/bin/uniq -> /usr/bin/uniq.coreutils
+-rwxr-xr-x root root 43176 ./usr/bin/unlink.coreutils
+lrwxrwxrwx root root 25 ./usr/bin/unlink -> /usr/bin/unlink.coreutils
+lrwxrwxrwx root root 18 ./usr/bin/unlzma -> /usr/bin/unlzma.xz
+lrwxrwxrwx root root 5 ./usr/bin/unlzma.xz -> xz.xz
+lrwxrwxrwx root root 27 ./usr/bin/unshare -> /usr/bin/unshare.util-linux
+-rwxr-xr-x root root 39176 ./usr/bin/unshare.util-linux
+lrwxrwxrwx root root 16 ./usr/bin/unxz -> /usr/bin/unxz.xz
+lrwxrwxrwx root root 5 ./usr/bin/unxz.xz -> xz.xz
+-rwxr-xr-x root root 88152 ./usr/bin/unzipsfx
+-rwxr-xr-x root root 186472 ./usr/bin/unzip.unzip
+lrwxrwxrwx root root 20 ./usr/bin/unzip -> /usr/bin/unzip.unzip
+-rwxr-xr-x root root 4678 ./usr/bin/update-alternatives
+-rwxr-xr-x root root 9076 ./usr/bin/updatedb
+-rwxr-xr-x root root 59584 ./usr/bin/update-mime-database
+-rwxr-xr-x root root 59560 ./usr/bin/uptime.coreutils
+-rwxr-xr-x root root 14376 ./usr/bin/uptime.procps
+lrwxrwxrwx root root 22 ./usr/bin/uptime -> /usr/bin/uptime.procps
+-rwxr-xr-x root root 43176 ./usr/bin/users.coreutils
+lrwxrwxrwx root root 24 ./usr/bin/users -> /usr/bin/users.coreutils
+lrwxrwxrwx root root 27 ./usr/bin/[ -> /usr/bin/lbracket.coreutils
+-rwxr-xr-x root root 18400 ./usr/bin/utmpdump.sysvinit
+lrwxrwxrwx root root 26 ./usr/bin/utmpdump -> /usr/bin/utmpdump.sysvinit
+-rwxr-xr-x root root 30768 ./usr/bin/utmpdump.util-linux
+-rwxr-xr-x root root 14368 ./usr/bin/uuidgen
+-rwxr-xr-x root root 38952 ./usr/bin/uuidparse
+-rwxr-xr-x root root 162448 ./usr/bin/vdir.coreutils
+lrwxrwxrwx root root 23 ./usr/bin/vdir -> /usr/bin/vdir.coreutils
+lrwxrwxrwx root root 17 ./usr/bin/vlock -> /bin/busybox.suid
+-rwxr-xr-x root root 38968 ./usr/bin/vmstat
+-rwxr-xr-x root root 18392 ./usr/bin/wall.sysvinit
+lrwxrwxrwx root root 22 ./usr/bin/wall -> /usr/bin/wall.sysvinit
+-rwxr-xr-x root root 34864 ./usr/bin/wall.util-linux
+-rwxr-xr-x root root 51248 ./usr/bin/wayland-scanner
+-rwxr-xr-x root root 55472 ./usr/bin/wc.coreutils
+lrwxrwxrwx root root 21 ./usr/bin/wc -> /usr/bin/wc.coreutils
+-rwxr-xr-x root root 63552 ./usr/bin/wdctl
+lrwxrwxrwx root root 19 ./usr/bin/wget -> /bin/busybox.nosuid
+-rwxr-xr-x root root 31176 ./usr/bin/whereis
+lrwxrwxrwx root root 20 ./usr/bin/which -> /usr/bin/which.which
+-rwxr-xr-x root root 31280 ./usr/bin/which.which
+-rwxr-xr-x root root 43176 ./usr/bin/whoami.coreutils
+lrwxrwxrwx root root 25 ./usr/bin/whoami -> /usr/bin/whoami.coreutils
+-rwxr-xr-x root root 63688 ./usr/bin/who.coreutils
+lrwxrwxrwx root root 22 ./usr/bin/who -> /usr/bin/who.coreutils
+-rwxr-xr-x root root 22568 ./usr/bin/w.procps
+-rwxr-xr-x root root 22560 ./usr/bin/write
+lrwxrwxrwx root root 17 ./usr/bin/w -> /usr/bin/w.procps
+-rwxr-xr-x root root 31304 ./usr/bin/x86_64-poky-linux-addr2line
+-rwxr-xr-x root root 63784 ./usr/bin/x86_64-poky-linux-ar
+-rwxr-xr-x root root 737584 ./usr/bin/x86_64-poky-linux-as
+-rwxr-xr-x root root 30776 ./usr/bin/x86_64-poky-linux-c++filt
+-rwxr-xr-x root root 2058648 ./usr/bin/x86_64-poky-linux-dwp
+-rwxr-xr-x root root 39320 ./usr/bin/x86_64-poky-linux-elfedit
+-rwxr-xr-x root root 102056 ./usr/bin/x86_64-poky-linux-gprof
+-rwxr-xr-x root root 1711488 ./usr/bin/x86_64-poky-linux-ld
+-rwxr-xr-x root root 1711488 ./usr/bin/x86_64-poky-linux-ld.bfd
+-rwxr-xr-x root root 2316464 ./usr/bin/x86_64-poky-linux-ld.gold
+-rwxr-xr-x root root 48344 ./usr/bin/x86_64-poky-linux-nm
+-rwxr-xr-x root root 190736 ./usr/bin/x86_64-poky-linux-objcopy
+-rwxr-xr-x root root 512664 ./usr/bin/x86_64-poky-linux-objdump
+-rwxr-xr-x root root 63824 ./usr/bin/x86_64-poky-linux-ranlib
+-rwxr-xr-x root root 670432 ./usr/bin/x86_64-poky-linux-readelf
+-rwxr-xr-x root root 35136 ./usr/bin/x86_64-poky-linux-size
+-rwxr-xr-x root root 31176 ./usr/bin/x86_64-poky-linux-strings
+-rwxr-xr-x root root 190736 ./usr/bin/x86_64-poky-linux-strip
+lrwxrwxrwx root root 7 ./usr/bin/x86_64 -> setarch
+-rwxr-xr-x root root 75976 ./usr/bin/xargs.findutils
+lrwxrwxrwx root root 24 ./usr/bin/xargs -> /usr/bin/xargs.findutils
+-rwxr-xr-x root root 16982 ./usr/bin/xkeystone
+-rwxr-xr-x root root 165 ./usr/bin/xml2-config
+-rwxr-xr-x root root 63544 ./usr/bin/xrandr
+lrwxrwxrwx root root 17 ./usr/bin/xzcat -> /usr/bin/xzcat.xz
+lrwxrwxrwx root root 5 ./usr/bin/xzcat.xz -> xz.xz
+lrwxrwxrwx root root 6 ./usr/bin/xzcmp -> xzdiff
+-rwxr-xr-x root root 14376 ./usr/bin/xzdec
+-rwxr-xr-x root root 6633 ./usr/bin/xzdiff
+lrwxrwxrwx root root 6 ./usr/bin/xzegrep -> xzgrep
+lrwxrwxrwx root root 6 ./usr/bin/xzfgrep -> xzgrep
+-rwxr-xr-x root root 5630 ./usr/bin/xzgrep
+-rwxr-xr-x root root 1799 ./usr/bin/xzless
+-rwxr-xr-x root root 2162 ./usr/bin/xzmore
+lrwxrwxrwx root root 14 ./usr/bin/xz -> /usr/bin/xz.xz
+-rwxr-xr-x root root 80184 ./usr/bin/xz.xz
+-rwxr-xr-x root root 4184 ./usr/bin/yacc
+-rwxr-xr-x root root 43176 ./usr/bin/yes.coreutils
+lrwxrwxrwx root root 22 ./usr/bin/yes -> /usr/bin/yes.coreutils
+-rwxr-xr-x root root 212088 ./usr/bin/zip
+-rwxr-xr-x root root 97872 ./usr/bin/zipcloak
+-rwxr-xr-x root root 2953 ./usr/bin/zipgrep
+-rwxr-xr-x root root 186472 ./usr/bin/zipinfo
+-rwxr-xr-x root root 89448 ./usr/bin/zipnote
+-rwxr-xr-x root root 89456 ./usr/bin/zipsplit
+drwxr-xr-x root root 4096 ./usr/games
+drwxr-xr-x root root 12288 ./usr/include
+drwxr-xr-x root root 4096 ./usr/include/acl
+-rw-r--r-- root root 2611 ./usr/include/acl/libacl.h
+-rw-r--r-- root root 7457 ./usr/include/aio.h
+-rw-r--r-- root root 2032 ./usr/include/aliases.h
+-rw-r--r-- root root 1204 ./usr/include/alloca.h
+-rw-r--r-- root root 14130 ./usr/include/ansidecl.h
+-rw-r--r-- root root 4351 ./usr/include/a.out.h
+-rw-r--r-- root root 25473 ./usr/include/argp.h
+-rw-r--r-- root root 6051 ./usr/include/argz.h
+-rw-r--r-- root root 1731 ./usr/include/ar.h
+drwxr-xr-x root root 4096 ./usr/include/arpa
+-rw-r--r-- root root 3432 ./usr/include/arpa/ftp.h
+-rw-r--r-- root root 4277 ./usr/include/arpa/inet.h
+-rw-r--r-- root root 7041 ./usr/include/arpa/nameser_compat.h
+-rw-r--r-- root root 14195 ./usr/include/arpa/nameser.h
+-rw-r--r-- root root 10263 ./usr/include/arpa/telnet.h
+-rw-r--r-- root root 3051 ./usr/include/arpa/tftp.h
+drwxr-xr-x root root 4096 ./usr/include/asm
+-rw-r--r-- root root 756 ./usr/include/asm/a.out.h
+-rw-r--r-- root root 546 ./usr/include/asm/auxvec.h
+-rw-r--r-- root root 321 ./usr/include/asm/bitsperlong.h
+-rw-r--r-- root root 323 ./usr/include/asm/boot.h
+-rw-r--r-- root root 7757 ./usr/include/asm/bootparam.h
+-rw-r--r-- root root 40 ./usr/include/asm/bpf_perf_event.h
+-rw-r--r-- root root 200 ./usr/include/asm/byteorder.h
+-rw-r--r-- root root 3285 ./usr/include/asm/debugreg.h
+-rw-r--r-- root root 2579 ./usr/include/asm/e820.h
+-rw-r--r-- root root 31 ./usr/include/asm/errno.h
+-rw-r--r-- root root 31 ./usr/include/asm/fcntl.h
+drwxr-xr-x root root 4096 ./usr/include/asm-generic
+-rw-r--r-- root root 218 ./usr/include/asm-generic/auxvec.h
+-rw-r--r-- root root 564 ./usr/include/asm-generic/bitsperlong.h
+-rw-r--r-- root root 238 ./usr/include/asm-generic/bpf_perf_event.h
+-rw-r--r-- root root 1612 ./usr/include/asm-generic/errno-base.h
+-rw-r--r-- root root 5648 ./usr/include/asm-generic/errno.h
+-rw-r--r-- root root 5423 ./usr/include/asm-generic/fcntl.h
+-rw-r--r-- root root 1740 ./usr/include/asm-generic/hugetlb_encode.h
+-rw-r--r-- root root 718 ./usr/include/asm-generic/int-l64.h
+-rw-r--r-- root root 864 ./usr/include/asm-generic/int-ll64.h
+-rw-r--r-- root root 3478 ./usr/include/asm-generic/ioctl.h
+-rw-r--r-- root root 3987 ./usr/include/asm-generic/ioctls.h
+-rw-r--r-- root root 1003 ./usr/include/asm-generic/ipcbuf.h
+-rw-r--r-- root root 96 ./usr/include/asm-generic/kvm_para.h
+-rw-r--r-- root root 3417 ./usr/include/asm-generic/mman-common.h
+-rw-r--r-- root root 740 ./usr/include/asm-generic/mman.h
+-rw-r--r-- root root 1618 ./usr/include/asm-generic/msgbuf.h
+-rw-r--r-- root root 353 ./usr/include/asm-generic/param.h
+-rw-r--r-- root root 878 ./usr/include/asm-generic/poll.h
+-rw-r--r-- root root 2331 ./usr/include/asm-generic/posix_types.h
+-rw-r--r-- root root 1872 ./usr/include/asm-generic/resource.h
+-rw-r--r-- root root 1550 ./usr/include/asm-generic/sembuf.h
+-rw-r--r-- root root 190 ./usr/include/asm-generic/setup.h
+-rw-r--r-- root root 1837 ./usr/include/asm-generic/shmbuf.h
+-rw-r--r-- root root 9969 ./usr/include/asm-generic/siginfo.h
+-rw-r--r-- root root 800 ./usr/include/asm-generic/signal-defs.h
+-rw-r--r-- root root 2709 ./usr/include/asm-generic/signal.h
+-rw-r--r-- root root 3538 ./usr/include/asm-generic/socket.h
+-rw-r--r-- root root 447 ./usr/include/asm-generic/sockios.h
+-rw-r--r-- root root 1839 ./usr/include/asm-generic/statfs.h
+-rw-r--r-- root root 2633 ./usr/include/asm-generic/stat.h
+-rw-r--r-- root root 502 ./usr/include/asm-generic/swab.h
+-rw-r--r-- root root 4716 ./usr/include/asm-generic/termbits.h
+-rw-r--r-- root root 1377 ./usr/include/asm-generic/termios.h
+-rw-r--r-- root root 233 ./usr/include/asm-generic/types.h
+-rw-r--r-- root root 357 ./usr/include/asm-generic/ucontext.h
+-rw-r--r-- root root 30377 ./usr/include/asm-generic/unistd.h
+-rw-r--r-- root root 69 ./usr/include/asm/hw_breakpoint.h
+-rw-r--r-- root root 198 ./usr/include/asm/hwcap2.h
+-rw-r--r-- root root 31 ./usr/include/asm/ioctl.h
+-rw-r--r-- root root 32 ./usr/include/asm/ioctls.h
+-rw-r--r-- root root 32 ./usr/include/asm/ipcbuf.h
+-rw-r--r-- root root 854 ./usr/include/asm/ist.h
+-rw-r--r-- root root 9244 ./usr/include/asm/kvm.h
+-rw-r--r-- root root 3341 ./usr/include/asm/kvm_para.h
+-rw-r--r-- root root 388 ./usr/include/asm/kvm_perf.h
+-rw-r--r-- root root 1306 ./usr/include/asm/ldt.h
+-rw-r--r-- root root 1688 ./usr/include/asm/mce.h
+-rw-r--r-- root root 1002 ./usr/include/asm/mman.h
+-rw-r--r-- root root 1053 ./usr/include/asm/msgbuf.h
+-rw-r--r-- root root 346 ./usr/include/asm/msr.h
+-rw-r--r-- root root 4225 ./usr/include/asm/mtrr.h
+-rw-r--r-- root root 31 ./usr/include/asm/param.h
+-rw-r--r-- root root 1403 ./usr/include/asm/perf_regs.h
+-rw-r--r-- root root 30 ./usr/include/asm/poll.h
+-rw-r--r-- root root 765 ./usr/include/asm/posix_types_32.h
+-rw-r--r-- root root 609 ./usr/include/asm/posix_types_64.h
+-rw-r--r-- root root 224 ./usr/include/asm/posix_types.h
+-rw-r--r-- root root 581 ./usr/include/asm/posix_types_x32.h
+-rw-r--r-- root root 418 ./usr/include/asm/prctl.h
+-rw-r--r-- root root 6623 ./usr/include/asm/processor-flags.h
+-rw-r--r-- root root 2037 ./usr/include/asm/ptrace-abi.h
+-rw-r--r-- root root 1495 ./usr/include/asm/ptrace.h
+-rw-r--r-- root root 34 ./usr/include/asm/resource.h
+-rw-r--r-- root root 1045 ./usr/include/asm/sembuf.h
+-rw-r--r-- root root 6 ./usr/include/asm/setup.h
+-rw-r--r-- root root 1258 ./usr/include/asm/shmbuf.h
+-rw-r--r-- root root 271 ./usr/include/asm/sigcontext32.h
+-rw-r--r-- root root 9724 ./usr/include/asm/sigcontext.h
+-rw-r--r-- root root 422 ./usr/include/asm/siginfo.h
+-rw-r--r-- root root 2901 ./usr/include/asm/signal.h
+-rw-r--r-- root root 32 ./usr/include/asm/socket.h
+-rw-r--r-- root root 33 ./usr/include/asm/sockios.h
+-rw-r--r-- root root 416 ./usr/include/asm/statfs.h
+-rw-r--r-- root root 3131 ./usr/include/asm/stat.h
+-rw-r--r-- root root 7068 ./usr/include/asm/svm.h
+-rw-r--r-- root root 724 ./usr/include/asm/swab.h
+-rw-r--r-- root root 34 ./usr/include/asm/termbits.h
+-rw-r--r-- root root 33 ./usr/include/asm/termios.h
+-rw-r--r-- root root 31 ./usr/include/asm/types.h
+-rw-r--r-- root root 2117 ./usr/include/asm/ucontext.h
+-rw-r--r-- root root 11475 ./usr/include/asm/unistd_32.h
+-rw-r--r-- root root 9286 ./usr/include/asm/unistd_64.h
+-rw-r--r-- root root 361 ./usr/include/asm/unistd.h
+-rw-r--r-- root root 16367 ./usr/include/asm/unistd_x32.h
+-rw-r--r-- root root 3118 ./usr/include/asm/vm86.h
+-rw-r--r-- root root 7032 ./usr/include/asm/vmx.h
+-rw-r--r-- root root 263 ./usr/include/asm/vsyscall.h
+-rw-r--r-- root root 4562 ./usr/include/assert.h
+drwxr-xr-x root root 4096 ./usr/include/attr
+-rw-r--r-- root root 8010 ./usr/include/attr/attributes.h
+-rw-r--r-- root root 1569 ./usr/include/attr/error_context.h
+-rw-r--r-- root root 1411 ./usr/include/attr/libattr.h
+drwxr-xr-x root root 4096 ./usr/include/bash
+-rw-r--r-- root root 2225 ./usr/include/bash/alias.h
+-rw-r--r-- root root 3561 ./usr/include/bash/arrayfunc.h
+-rw-r--r-- root root 4172 ./usr/include/bash/array.h
+-rw-r--r-- root root 2302 ./usr/include/bash/assoc.h
+-rw-r--r-- root root 1262 ./usr/include/bash/bashansi.h
+-rw-r--r-- root root 1462 ./usr/include/bash/bashintl.h
+-rw-r--r-- root root 1646 ./usr/include/bash/bashjmp.h
+-rw-r--r-- root root 1086 ./usr/include/bash/bashtypes.h
+drwxr-xr-x root root 4096 ./usr/include/bash/builtins
+-rw-r--r-- root root 1263 ./usr/include/bash/builtins/bashgetopt.h
+-rw-r--r-- root root 6715 ./usr/include/bash/builtins/builtext.h
+-rw-r--r-- root root 8372 ./usr/include/bash/builtins/common.h
+-rw-r--r-- root root 2582 ./usr/include/bash/builtins/getopt.h
+-rw-r--r-- root root 2373 ./usr/include/bash/builtins.h
+-rw-r--r-- root root 15490 ./usr/include/bash/command.h
+-rw-r--r-- root root 6514 ./usr/include/bash/config-bot.h
+-rw-r--r-- root root 32166 ./usr/include/bash/config.h
+-rw-r--r-- root root 7436 ./usr/include/bash/config-top.h
+-rw-r--r-- root root 1709 ./usr/include/bash/conftypes.h
+-rw-r--r-- root root 1397 ./usr/include/bash/dispose_cmd.h
+-rw-r--r-- root root 3053 ./usr/include/bash/error.h
+-rw-r--r-- root root 18999 ./usr/include/bash/externs.h
+-rw-r--r-- root root 11828 ./usr/include/bash/general.h
+-rw-r--r-- root root 3036 ./usr/include/bash/hashlib.h
+drwxr-xr-x root root 4096 ./usr/include/bash/include
+-rw-r--r-- root root 1437 ./usr/include/bash/include/ansi_stdlib.h
+-rw-r--r-- root root 4125 ./usr/include/bash/include/chartypes.h
+-rw-r--r-- root root 1581 ./usr/include/bash/include/filecntl.h
+-rw-r--r-- root root 3014 ./usr/include/bash/include/gettext.h
+-rw-r--r-- root root 2113 ./usr/include/bash/include/maxpath.h
+-rw-r--r-- root root 1994 ./usr/include/bash/include/memalloc.h
+-rw-r--r-- root root 3669 ./usr/include/bash/include/ocache.h
+-rw-r--r-- root root 2305 ./usr/include/bash/include/posixdir.h
+-rw-r--r-- root root 1407 ./usr/include/bash/include/posixjmp.h
+-rw-r--r-- root root 4318 ./usr/include/bash/include/posixstat.h
+-rw-r--r-- root root 1509 ./usr/include/bash/include/posixtime.h
+-rw-r--r-- root root 3068 ./usr/include/bash/include/posixwait.h
+-rw-r--r-- root root 4319 ./usr/include/bash/include/shmbchar.h
+-rw-r--r-- root root 13847 ./usr/include/bash/include/shmbutil.h
+-rw-r--r-- root root 3636 ./usr/include/bash/include/shtty.h
+-rw-r--r-- root root 6088 ./usr/include/bash/include/stat-time.h
+-rw-r--r-- root root 2652 ./usr/include/bash/include/stdc.h
+-rw-r--r-- root root 1778 ./usr/include/bash/include/systimes.h
+-rw-r--r-- root root 2890 ./usr/include/bash/include/typemax.h
+-rw-r--r-- root root 2973 ./usr/include/bash/include/unionwait.h
+-rw-r--r-- root root 9640 ./usr/include/bash/jobs.h
+-rw-r--r-- root root 2960 ./usr/include/bash/make_cmd.h
+-rw-r--r-- root root 1208 ./usr/include/bash/pathnames.h
+-rw-r--r-- root root 2541 ./usr/include/bash/quit.h
+-rw-r--r-- root root 5957 ./usr/include/bash/shell.h
+-rw-r--r-- root root 4485 ./usr/include/bash/sig.h
+-rw-r--r-- root root 1544 ./usr/include/bash/siglist.h
+-rw-r--r-- root root 247 ./usr/include/bash/signames.h
+-rw-r--r-- root root 15184 ./usr/include/bash/subst.h
+-rw-r--r-- root root 3544 ./usr/include/bash/syntax.h
+-rw-r--r-- root root 2003 ./usr/include/bash/unwind_prot.h
+-rw-r--r-- root root 17643 ./usr/include/bash/variables.h
+-rw-r--r-- root root 579 ./usr/include/bash/version.h
+-rw-r--r-- root root 1759 ./usr/include/bash/xmalloc.h
+-rw-r--r-- root root 255175 ./usr/include/bfd-64.h
+-rw-r--r-- root root 500 ./usr/include/bfd.h
+-rw-r--r-- root root 35620 ./usr/include/bfdlink.h
+-rw-r--r-- root root 848 ./usr/include/bfd_stdint.h
+drwxr-xr-x root root 4096 ./usr/include/bits
+-rw-r--r-- root root 268 ./usr/include/bits/a.out.h
+-rw-r--r-- root root 1010 ./usr/include/bits/argp-ldbl.h
+-rw-r--r-- root root 2450 ./usr/include/bits/byteswap.h
+-rw-r--r-- root root 4139 ./usr/include/bits/cmathcalls.h
+-rw-r--r-- root root 23709 ./usr/include/bits/confname.h
+-rw-r--r-- root root 4516 ./usr/include/bits/cpu-set.h
+-rw-r--r-- root root 1275 ./usr/include/bits/dirent_ext.h
+-rw-r--r-- root root 1771 ./usr/include/bits/dirent.h
+-rw-r--r-- root root 2521 ./usr/include/bits/dlfcn.h
+-rw-r--r-- root root 426 ./usr/include/bits/elfclass.h
+-rw-r--r-- root root 1905 ./usr/include/bits/endian.h
+-rw-r--r-- root root 273 ./usr/include/bits/endianness-64.h
+-rw-r--r-- root root 548 ./usr/include/bits/endianness.h
+-rw-r--r-- root root 3791 ./usr/include/bits/environments.h
+-rw-r--r-- root root 1071 ./usr/include/bits/epoll.h
+-rw-r--r-- root root 1148 ./usr/include/bits/err-ldbl.h
+-rw-r--r-- root root 1426 ./usr/include/bits/errno.h
+-rw-r--r-- root root 2684 ./usr/include/bits/error.h
+-rw-r--r-- root root 1012 ./usr/include/bits/error-ldbl.h
+-rw-r--r-- root root 1129 ./usr/include/bits/eventfd.h
+-rw-r--r-- root root 5575 ./usr/include/bits/fcntl2.h
+-rw-r--r-- root root 2246 ./usr/include/bits/fcntl.h
+-rw-r--r-- root root 13995 ./usr/include/bits/fcntl-linux.h
+-rw-r--r-- root root 4611 ./usr/include/bits/fenv.h
+-rw-r--r-- root root 190 ./usr/include/bits/fenvinline.h
+-rw-r--r-- root root 4373 ./usr/include/bits/floatn-64.h
+-rw-r--r-- root root 9765 ./usr/include/bits/floatn-common.h
+-rw-r--r-- root root 532 ./usr/include/bits/floatn.h
+-rw-r--r-- root root 1215 ./usr/include/bits/flt-eval-method.h
+-rw-r--r-- root root 1216 ./usr/include/bits/fp-fast.h
+-rw-r--r-- root root 1012 ./usr/include/bits/fp-logb.h
+-rw-r--r-- root root 3667 ./usr/include/bits/getopt_core.h
+-rw-r--r-- root root 3038 ./usr/include/bits/getopt_ext.h
+-rw-r--r-- root root 1810 ./usr/include/bits/getopt_posix.h
+-rw-r--r-- root root 972 ./usr/include/bits/hwcap.h
+-rw-r--r-- root root 1591 ./usr/include/bits/indirect-return.h
+-rw-r--r-- root root 9534 ./usr/include/bits/in.h
+-rw-r--r-- root root 25 ./usr/include/bits/initspin.h
+-rw-r--r-- root root 1080 ./usr/include/bits/inotify.h
+-rw-r--r-- root root 4478 ./usr/include/bits/ioctls.h
+-rw-r--r-- root root 2456 ./usr/include/bits/ioctl-types.h
+-rw-r--r-- root root 1523 ./usr/include/bits/ipc.h
+-rw-r--r-- root root 1745 ./usr/include/bits/ipc-perm.h
+-rw-r--r-- root root 1176 ./usr/include/bits/ipctypes.h
+-rw-r--r-- root root 2479 ./usr/include/bits/iscanonical.h
+-rw-r--r-- root root 3288 ./usr/include/bits/libc-header-start.h
+-rw-r--r-- root root 3004 ./usr/include/bits/libm-simd-decl-stubs.h
+-rw-r--r-- root root 4286 ./usr/include/bits/link.h
+-rw-r--r-- root root 1368 ./usr/include/bits/locale.h
+-rw-r--r-- root root 3185 ./usr/include/bits/local_lim.h
+-rw-r--r-- root root 962 ./usr/include/bits/long-double-64.h
+-rw-r--r-- root root 552 ./usr/include/bits/long-double.h
+-rw-r--r-- root root 13210 ./usr/include/bits/mathcalls.h
+-rw-r--r-- root root 1765 ./usr/include/bits/mathcalls-helper-functions.h
+-rw-r--r-- root root 1312 ./usr/include/bits/mathcalls-narrow.h
+-rw-r--r-- root root 891 ./usr/include/bits/mathdef.h
+-rw-r--r-- root root 337 ./usr/include/bits/mathinline.h
+-rw-r--r-- root root 2308 ./usr/include/bits/math-vector.h
+-rw-r--r-- root root 1309 ./usr/include/bits/mman.h
+-rw-r--r-- root root 4911 ./usr/include/bits/mman-linux.h
+-rw-r--r-- root root 1997 ./usr/include/bits/mman-map-flags-generic.h
+-rw-r--r-- root root 2813 ./usr/include/bits/mman-shared.h
+-rw-r--r-- root root 1047 ./usr/include/bits/monetary-ldbl.h
+-rw-r--r-- root root 2151 ./usr/include/bits/mqueue2.h
+-rw-r--r-- root root 1246 ./usr/include/bits/mqueue.h
+-rw-r--r-- root root 2818 ./usr/include/bits/msq.h
+-rw-r--r-- root root 1283 ./usr/include/bits/msq-pad.h
+-rw-r--r-- root root 1264 ./usr/include/bits/netdb.h
+-rw-r--r-- root root 1433 ./usr/include/bits/param.h
+-rw-r--r-- root root 2937 ./usr/include/bits/poll2.h
+-rw-r--r-- root root 2076 ./usr/include/bits/poll.h
+-rw-r--r-- root root 5189 ./usr/include/bits/posix1_lim.h
+-rw-r--r-- root root 2867 ./usr/include/bits/posix2_lim.h
+-rw-r--r-- root root 5913 ./usr/include/bits/posix_opt.h
+-rw-r--r-- root root 992 ./usr/include/bits/printf-ldbl.h
+-rw-r--r-- root root 963 ./usr/include/bits/procfs-extra.h
+-rw-r--r-- root root 2025 ./usr/include/bits/procfs.h
+-rw-r--r-- root root 1148 ./usr/include/bits/procfs-id.h
+-rw-r--r-- root root 1050 ./usr/include/bits/procfs-prregset.h
+-rw-r--r-- root root 1838 ./usr/include/bits/pthreadtypes-arch.h
+-rw-r--r-- root root 3072 ./usr/include/bits/pthreadtypes.h
+-rw-r--r-- root root 4091 ./usr/include/bits/ptrace-shared.h
+-rw-r--r-- root root 6299 ./usr/include/bits/resource.h
+-rw-r--r-- root root 3947 ./usr/include/bits/sched.h
+-rw-r--r-- root root 1438 ./usr/include/bits/select2.h
+-rw-r--r-- root root 2106 ./usr/include/bits/select.h
+-rw-r--r-- root root 1238 ./usr/include/bits/semaphore.h
+-rw-r--r-- root root 2905 ./usr/include/bits/sem.h
+-rw-r--r-- root root 1019 ./usr/include/bits/sem-pad.h
+-rw-r--r-- root root 1705 ./usr/include/bits/setjmp2.h
+-rw-r--r-- root root 1287 ./usr/include/bits/setjmp.h
+-rw-r--r-- root root 3872 ./usr/include/bits/shm.h
+-rw-r--r-- root root 1106 ./usr/include/bits/shmlba.h
+-rw-r--r-- root root 1668 ./usr/include/bits/shm-pad.h
+-rw-r--r-- root root 2935 ./usr/include/bits/sigaction.h
+-rw-r--r-- root root 4266 ./usr/include/bits/sigcontext.h
+-rw-r--r-- root root 1471 ./usr/include/bits/sigevent-consts.h
+-rw-r--r-- root root 729 ./usr/include/bits/siginfo-arch.h
+-rw-r--r-- root root 204 ./usr/include/bits/siginfo-consts-arch.h
+-rw-r--r-- root root 6855 ./usr/include/bits/siginfo-consts.h
+-rw-r--r-- root root 1285 ./usr/include/bits/signal_ext.h
+-rw-r--r-- root root 1067 ./usr/include/bits/signalfd.h
+-rw-r--r-- root root 4341 ./usr/include/bits/signum-generic.h
+-rw-r--r-- root root 1634 ./usr/include/bits/signum.h
+-rw-r--r-- root root 1168 ./usr/include/bits/sigstack.h
+-rw-r--r-- root root 1692 ./usr/include/bits/sigthread.h
+-rw-r--r-- root root 1514 ./usr/include/bits/sockaddr.h
+-rw-r--r-- root root 3026 ./usr/include/bits/socket2.h
+-rw-r--r-- root root 1318 ./usr/include/bits/socket-constants.h
+-rw-r--r-- root root 12261 ./usr/include/bits/socket.h
+-rw-r--r-- root root 2216 ./usr/include/bits/socket_type.h
+-rw-r--r-- root root 1188 ./usr/include/bits/ss_flags.h
+-rw-r--r-- root root 9040 ./usr/include/bits/stab.def
+-rw-r--r-- root root 1917 ./usr/include/bits/statfs.h
+-rw-r--r-- root root 7620 ./usr/include/bits/stat.h
+-rw-r--r-- root root 3423 ./usr/include/bits/statvfs.h
+-rw-r--r-- root root 2050 ./usr/include/bits/statx-generic.h
+-rw-r--r-- root root 1400 ./usr/include/bits/statx.h
+-rw-r--r-- root root 1037 ./usr/include/bits/stdint-intn.h
+-rw-r--r-- root root 1049 ./usr/include/bits/stdint-uintn.h
+-rw-r--r-- root root 12679 ./usr/include/bits/stdio2.h
+-rw-r--r-- root root 5584 ./usr/include/bits/stdio.h
+-rw-r--r-- root root 2843 ./usr/include/bits/stdio-ldbl.h
+-rw-r--r-- root root 1213 ./usr/include/bits/stdio_lim.h
+-rw-r--r-- root root 1378 ./usr/include/bits/stdlib-bsearch.h
+-rw-r--r-- root root 1115 ./usr/include/bits/stdlib-float.h
+-rw-r--r-- root root 5659 ./usr/include/bits/stdlib.h
+-rw-r--r-- root root 1377 ./usr/include/bits/stdlib-ldbl.h
+-rw-r--r-- root root 4314 ./usr/include/bits/string_fortified.h
+-rw-r--r-- root root 1209 ./usr/include/bits/strings_fortified.h
+-rw-r--r-- root root 1810 ./usr/include/bits/struct_mutex.h
+-rw-r--r-- root root 2027 ./usr/include/bits/struct_rwlock-64.h
+-rw-r--r-- root root 560 ./usr/include/bits/struct_rwlock.h
+-rw-r--r-- root root 44103 ./usr/include/bits/syscall-64.h
+-rw-r--r-- root root 536 ./usr/include/bits/syscall.h
+-rw-r--r-- root root 899 ./usr/include/bits/sysctl.h
+-rw-r--r-- root root 1216 ./usr/include/bits/sys_errlist.h
+-rw-r--r-- root root 1685 ./usr/include/bits/syslog.h
+-rw-r--r-- root root 1206 ./usr/include/bits/syslog-ldbl.h
+-rw-r--r-- root root 1061 ./usr/include/bits/syslog-path.h
+-rw-r--r-- root root 2953 ./usr/include/bits/sysmacros.h
+-rw-r--r-- root root 1824 ./usr/include/bits/termios-baud.h
+-rw-r--r-- root root 1279 ./usr/include/bits/termios-c_cc.h
+-rw-r--r-- root root 1230 ./usr/include/bits/termios-c_cflag.h
+-rw-r--r-- root root 1936 ./usr/include/bits/termios-c_iflag.h
+-rw-r--r-- root root 2594 ./usr/include/bits/termios-c_lflag.h
+-rw-r--r-- root root 2822 ./usr/include/bits/termios-c_oflag.h
+-rw-r--r-- root root 2168 ./usr/include/bits/termios.h
+-rw-r--r-- root root 969 ./usr/include/bits/termios-misc.h
+-rw-r--r-- root root 1433 ./usr/include/bits/termios-struct.h
+-rw-r--r-- root root 1062 ./usr/include/bits/termios-tcflow.h
+-rw-r--r-- root root 3982 ./usr/include/bits/thread-shared-types.h
+-rw-r--r-- root root 1340 ./usr/include/bits/time64.h
+-rw-r--r-- root root 2999 ./usr/include/bits/time.h
+-rw-r--r-- root root 1103 ./usr/include/bits/timerfd.h
+-rw-r--r-- root root 1081 ./usr/include/bits/timesize.h
+-rw-r--r-- root root 4596 ./usr/include/bits/timex.h
+drwxr-xr-x root root 4096 ./usr/include/bits/types
+-rw-r--r-- root root 174 ./usr/include/bits/types/clockid_t.h
+-rw-r--r-- root root 143 ./usr/include/bits/types/clock_t.h
+-rw-r--r-- root root 2725 ./usr/include/bits/types/cookie_io_functions_t.h
+-rw-r--r-- root root 894 ./usr/include/bits/types/error_t.h
+-rw-r--r-- root root 110 ./usr/include/bits/types/__FILE.h
+-rw-r--r-- root root 180 ./usr/include/bits/types/FILE.h
+-rw-r--r-- root root 410 ./usr/include/bits/types/__fpos64_t.h
+-rw-r--r-- root root 381 ./usr/include/bits/types/__fpos_t.h
+-rw-r--r-- root root 8757 ./usr/include/bits/types.h
+-rw-r--r-- root root 3546 ./usr/include/bits/typesizes.h
+-rw-r--r-- root root 1722 ./usr/include/bits/types/__locale_t.h
+-rw-r--r-- root root 983 ./usr/include/bits/types/locale_t.h
+-rw-r--r-- root root 564 ./usr/include/bits/types/__mbstate_t.h
+-rw-r--r-- root root 135 ./usr/include/bits/types/mbstate_t.h
+-rw-r--r-- root root 2009 ./usr/include/bits/types/res_state.h
+-rw-r--r-- root root 272 ./usr/include/bits/types/sig_atomic_t.h
+-rw-r--r-- root root 1204 ./usr/include/bits/types/sigevent_t.h
+-rw-r--r-- root root 3892 ./usr/include/bits/types/siginfo_t.h
+-rw-r--r-- root root 206 ./usr/include/bits/types/__sigset_t.h
+-rw-r--r-- root root 195 ./usr/include/bits/types/sigset_t.h
+-rw-r--r-- root root 1148 ./usr/include/bits/types/__sigval_t.h
+-rw-r--r-- root root 599 ./usr/include/bits/types/sigval_t.h
+-rw-r--r-- root root 1062 ./usr/include/bits/types/stack_t.h
+-rw-r--r-- root root 4104 ./usr/include/bits/types/struct_FILE.h
+-rw-r--r-- root root 1066 ./usr/include/bits/types/struct_iovec.h
+-rw-r--r-- root root 288 ./usr/include/bits/types/struct_itimerspec.h
+-rw-r--r-- root root 274 ./usr/include/bits/types/struct_osockaddr.h
+-rw-r--r-- root root 4121 ./usr/include/bits/types/struct_rusage.h
+-rw-r--r-- root root 1073 ./usr/include/bits/types/struct_sched_param.h
+-rw-r--r-- root root 1073 ./usr/include/bits/types/struct_sigstack.h
+-rw-r--r-- root root 1897 ./usr/include/bits/types/struct_statx.h
+-rw-r--r-- root root 1202 ./usr/include/bits/types/struct_statx_timestamp.h
+-rw-r--r-- root root 728 ./usr/include/bits/types/struct_timespec.h
+-rw-r--r-- root root 287 ./usr/include/bits/types/struct_timeval.h
+-rw-r--r-- root root 760 ./usr/include/bits/types/struct_tm.h
+-rw-r--r-- root root 159 ./usr/include/bits/types/timer_t.h
+-rw-r--r-- root root 138 ./usr/include/bits/types/time_t.h
+-rw-r--r-- root root 796 ./usr/include/bits/types/wint_t.h
+-rw-r--r-- root root 1542 ./usr/include/bits/uintn-identity.h
+-rw-r--r-- root root 1923 ./usr/include/bits/uio-ext.h
+-rw-r--r-- root root 1385 ./usr/include/bits/uio_lim.h
+-rw-r--r-- root root 1613 ./usr/include/bits/unistd_ext.h
+-rw-r--r-- root root 13316 ./usr/include/bits/unistd.h
+-rw-r--r-- root root 4067 ./usr/include/bits/utmp.h
+-rw-r--r-- root root 3578 ./usr/include/bits/utmpx.h
+-rw-r--r-- root root 1213 ./usr/include/bits/utsname.h
+-rw-r--r-- root root 1697 ./usr/include/bits/waitflags.h
+-rw-r--r-- root root 2287 ./usr/include/bits/waitstatus.h
+-rw-r--r-- root root 20506 ./usr/include/bits/wchar2.h
+-rw-r--r-- root root 1906 ./usr/include/bits/wchar.h
+-rw-r--r-- root root 2251 ./usr/include/bits/wchar-ldbl.h
+-rw-r--r-- root root 6307 ./usr/include/bits/wctype-wchar.h
+-rw-r--r-- root root 442 ./usr/include/bits/wordsize.h
+-rw-r--r-- root root 3858 ./usr/include/bits/xopen_lim.h
+drwxr-xr-x root root 4096 ./usr/include/blkid
+-rw-r--r-- root root 15478 ./usr/include/blkid/blkid.h
+drwxr-xr-x root root 4096 ./usr/include/btrfs
+-rw-r--r-- root root 5045 ./usr/include/btrfs/btrfsck.h
+-rw-r--r-- root root 4670 ./usr/include/btrfs/btrfs-list.h
+-rw-r--r-- root root 1095 ./usr/include/btrfs/crc32c.h
+-rw-r--r-- root root 94261 ./usr/include/btrfs/ctree.h
+-rw-r--r-- root root 3524 ./usr/include/btrfs/extent-cache.h
+-rw-r--r-- root root 6444 ./usr/include/btrfs/extent_io.h
+-rw-r--r-- root root 30105 ./usr/include/btrfs/ioctl.h
+-rw-r--r-- root root 10965 ./usr/include/btrfs/kerncompat.h
+-rw-r--r-- root root 14636 ./usr/include/btrfs/list.h
+-rw-r--r-- root root 3343 ./usr/include/btrfs/radix-tree.h
+-rw-r--r-- root root 2024 ./usr/include/btrfs/raid56.h
+-rw-r--r-- root root 3902 ./usr/include/btrfs/rbtree.h
+-rw-r--r-- root root 3090 ./usr/include/btrfs/send.h
+-rw-r--r-- root root 2803 ./usr/include/btrfs/send-stream.h
+-rw-r--r-- root root 3388 ./usr/include/btrfs/send-utils.h
+-rw-r--r-- root root 1223 ./usr/include/btrfs/sizes.h
+-rw-r--r-- root root 23351 ./usr/include/btrfsutil.h
+-rw-r--r-- root root 363 ./usr/include/btrfs/version.h
+-rw-r--r-- root root 1405 ./usr/include/byteswap.h
+-rw-r--r-- root root 6240 ./usr/include/bzlib.h
+drwxr-xr-x root root 4096 ./usr/include/c++
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0
+-rw-r--r-- root root 3045 ./usr/include/c++/10.1.0/algorithm
+-rw-r--r-- root root 18236 ./usr/include/c++/10.1.0/any
+-rw-r--r-- root root 13700 ./usr/include/c++/10.1.0/array
+-rw-r--r-- root root 45341 ./usr/include/c++/10.1.0/atomic
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/backward
+-rw-r--r-- root root 10804 ./usr/include/c++/10.1.0/backward/auto_ptr.h
+-rw-r--r-- root root 2491 ./usr/include/c++/10.1.0/backward/backward_warning.h
+-rw-r--r-- root root 7167 ./usr/include/c++/10.1.0/backward/binders.h
+-rw-r--r-- root root 4248 ./usr/include/c++/10.1.0/backward/hash_fun.h
+-rw-r--r-- root root 17822 ./usr/include/c++/10.1.0/backward/hash_map
+-rw-r--r-- root root 17323 ./usr/include/c++/10.1.0/backward/hash_set
+-rw-r--r-- root root 33883 ./usr/include/c++/10.1.0/backward/hashtable.h
+-rw-r--r-- root root 7454 ./usr/include/c++/10.1.0/backward/strstream
+-rw-r--r-- root root 11044 ./usr/include/c++/10.1.0/bit
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/bits
+-rw-r--r-- root root 24547 ./usr/include/c++/10.1.0/bits/algorithmfwd.h
+-rw-r--r-- root root 3293 ./usr/include/c++/10.1.0/bits/allocated_ptr.h
+-rw-r--r-- root root 8984 ./usr/include/c++/10.1.0/bits/allocator.h
+-rw-r--r-- root root 24105 ./usr/include/c++/10.1.0/bits/alloc_traits.h
+-rw-r--r-- root root 51344 ./usr/include/c++/10.1.0/bits/atomic_base.h
+-rw-r--r-- root root 9499 ./usr/include/c++/10.1.0/bits/atomic_futex.h
+-rw-r--r-- root root 2352 ./usr/include/c++/10.1.0/bits/atomic_lockfree_defines.h
+-rw-r--r-- root root 16074 ./usr/include/c++/10.1.0/bits/basic_ios.h
+-rw-r--r-- root root 6083 ./usr/include/c++/10.1.0/bits/basic_ios.tcc
+-rw-r--r-- root root 249154 ./usr/include/c++/10.1.0/bits/basic_string.h
+-rw-r--r-- root root 54513 ./usr/include/c++/10.1.0/bits/basic_string.tcc
+-rw-r--r-- root root 27182 ./usr/include/c++/10.1.0/bits/boost_concept_check.h
+-rw-r--r-- root root 1474 ./usr/include/c++/10.1.0/bits/c++0x_warning.h
+-rw-r--r-- root root 3435 ./usr/include/c++/10.1.0/bits/charconv.h
+-rw-r--r-- root root 28509 ./usr/include/c++/10.1.0/bits/char_traits.h
+-rw-r--r-- root root 25429 ./usr/include/c++/10.1.0/bits/codecvt.h
+-rw-r--r-- root root 3423 ./usr/include/c++/10.1.0/bits/concept_check.h
+-rw-r--r-- root root 12011 ./usr/include/c++/10.1.0/bits/cpp_type_traits.h
+-rw-r--r-- root root 1811 ./usr/include/c++/10.1.0/bits/cxxabi_forced.h
+-rw-r--r-- root root 2220 ./usr/include/c++/10.1.0/bits/cxxabi_init_exception.h
+-rw-r--r-- root root 37325 ./usr/include/c++/10.1.0/bits/deque.tcc
+-rw-r--r-- root root 12387 ./usr/include/c++/10.1.0/bits/enable_special_members.h
+-rw-r--r-- root root 2037 ./usr/include/c++/10.1.0/bits/erase_if.h
+-rw-r--r-- root root 45979 ./usr/include/c++/10.1.0/bitset
+-rw-r--r-- root root 1645 ./usr/include/c++/10.1.0/bits/exception_defines.h
+-rw-r--r-- root root 2483 ./usr/include/c++/10.1.0/bits/exception.h
+-rw-r--r-- root root 6072 ./usr/include/c++/10.1.0/bits/exception_ptr.h
+-rw-r--r-- root root 50386 ./usr/include/c++/10.1.0/bits/forward_list.h
+-rw-r--r-- root root 13871 ./usr/include/c++/10.1.0/bits/forward_list.tcc
+-rw-r--r-- root root 16405 ./usr/include/c++/10.1.0/bits/fs_dir.h
+-rw-r--r-- root root 10267 ./usr/include/c++/10.1.0/bits/fs_fwd.h
+-rw-r--r-- root root 9729 ./usr/include/c++/10.1.0/bits/fs_ops.h
+-rw-r--r-- root root 38775 ./usr/include/c++/10.1.0/bits/fs_path.h
+-rw-r--r-- root root 33663 ./usr/include/c++/10.1.0/bits/fstream.tcc
+-rw-r--r-- root root 3433 ./usr/include/c++/10.1.0/bits/functexcept.h
+-rw-r--r-- root root 8567 ./usr/include/c++/10.1.0/bits/functional_hash.h
+-rw-r--r-- root root 7851 ./usr/include/c++/10.1.0/bits/gslice_array.h
+-rw-r--r-- root root 5518 ./usr/include/c++/10.1.0/bits/gslice.h
+-rw-r--r-- root root 2146 ./usr/include/c++/10.1.0/bits/hash_bytes.h
+-rw-r--r-- root root 74752 ./usr/include/c++/10.1.0/bits/hashtable.h
+-rw-r--r-- root root 67673 ./usr/include/c++/10.1.0/bits/hashtable_policy.h
+-rw-r--r-- root root 7861 ./usr/include/c++/10.1.0/bits/indirect_array.h
+-rw-r--r-- root root 2877 ./usr/include/c++/10.1.0/bits/int_limits.h
+-rw-r--r-- root root 6025 ./usr/include/c++/10.1.0/bits/invoke.h
+-rw-r--r-- root root 31179 ./usr/include/c++/10.1.0/bits/ios_base.h
+-rw-r--r-- root root 31093 ./usr/include/c++/10.1.0/bits/istream.tcc
+-rw-r--r-- root root 30948 ./usr/include/c++/10.1.0/bits/iterator_concepts.h
+-rw-r--r-- root root 16968 ./usr/include/c++/10.1.0/bits/list.tcc
+-rw-r--r-- root root 24950 ./usr/include/c++/10.1.0/bits/locale_classes.h
+-rw-r--r-- root root 8375 ./usr/include/c++/10.1.0/bits/locale_classes.tcc
+-rw-r--r-- root root 18801 ./usr/include/c++/10.1.0/bits/locale_conv.h
+-rw-r--r-- root root 92321 ./usr/include/c++/10.1.0/bits/locale_facets.h
+-rw-r--r-- root root 68980 ./usr/include/c++/10.1.0/bits/locale_facets_nonio.h
+-rw-r--r-- root root 45280 ./usr/include/c++/10.1.0/bits/locale_facets_nonio.tcc
+-rw-r--r-- root root 39548 ./usr/include/c++/10.1.0/bits/locale_facets.tcc
+-rw-r--r-- root root 5941 ./usr/include/c++/10.1.0/bits/localefwd.h
+-rw-r--r-- root root 7675 ./usr/include/c++/10.1.0/bits/mask_array.h
+-rw-r--r-- root root 2487 ./usr/include/c++/10.1.0/bits/memoryfwd.h
+-rw-r--r-- root root 6613 ./usr/include/c++/10.1.0/bits/move.h
+-rw-r--r-- root root 4886 ./usr/include/c++/10.1.0/bits/nested_exception.h
+-rw-r--r-- root root 8216 ./usr/include/c++/10.1.0/bits/node_handle.h
+-rw-r--r-- root root 4002 ./usr/include/c++/10.1.0/bits/ostream_insert.h
+-rw-r--r-- root root 12315 ./usr/include/c++/10.1.0/bits/ostream.tcc
+-rw-r--r-- root root 7943 ./usr/include/c++/10.1.0/bits/parse_numbers.h
+-rw-r--r-- root root 8465 ./usr/include/c++/10.1.0/bits/postypes.h
+-rw-r--r-- root root 10153 ./usr/include/c++/10.1.0/bits/predefined_ops.h
+-rw-r--r-- root root 6728 ./usr/include/c++/10.1.0/bits/ptr_traits.h
+-rw-r--r-- root root 5053 ./usr/include/c++/10.1.0/bits/quoted_string.h
+-rw-r--r-- root root 178118 ./usr/include/c++/10.1.0/bits/random.h
+-rw-r--r-- root root 103405 ./usr/include/c++/10.1.0/bits/random.tcc
+-rw-r--r-- root root 32001 ./usr/include/c++/10.1.0/bits/range_access.h
+-rw-r--r-- root root 6516 ./usr/include/c++/10.1.0/bits/range_cmp.h
+-rw-r--r-- root root 18319 ./usr/include/c++/10.1.0/bits/ranges_algobase.h
+-rw-r--r-- root root 121079 ./usr/include/c++/10.1.0/bits/ranges_algo.h
+-rw-r--r-- root root 18023 ./usr/include/c++/10.1.0/bits/ranges_uninitialized.h
+-rw-r--r-- root root 13207 ./usr/include/c++/10.1.0/bits/refwrap.h
+-rw-r--r-- root root 10738 ./usr/include/c++/10.1.0/bits/regex_automaton.h
+-rw-r--r-- root root 7722 ./usr/include/c++/10.1.0/bits/regex_automaton.tcc
+-rw-r--r-- root root 16481 ./usr/include/c++/10.1.0/bits/regex_compiler.h
+-rw-r--r-- root root 18929 ./usr/include/c++/10.1.0/bits/regex_compiler.tcc
+-rw-r--r-- root root 14729 ./usr/include/c++/10.1.0/bits/regex_constants.h
+-rw-r--r-- root root 4904 ./usr/include/c++/10.1.0/bits/regex_error.h
+-rw-r--r-- root root 7488 ./usr/include/c++/10.1.0/bits/regex_executor.h
+-rw-r--r-- root root 18841 ./usr/include/c++/10.1.0/bits/regex_executor.tcc
+-rw-r--r-- root root 102775 ./usr/include/c++/10.1.0/bits/regex.h
+-rw-r--r-- root root 7088 ./usr/include/c++/10.1.0/bits/regex_scanner.h
+-rw-r--r-- root root 15009 ./usr/include/c++/10.1.0/bits/regex_scanner.tcc
+-rw-r--r-- root root 16524 ./usr/include/c++/10.1.0/bits/regex.tcc
+-rw-r--r-- root root 9867 ./usr/include/c++/10.1.0/bits/shared_ptr_atomic.h
+-rw-r--r-- root root 55312 ./usr/include/c++/10.1.0/bits/shared_ptr_base.h
+-rw-r--r-- root root 30837 ./usr/include/c++/10.1.0/bits/shared_ptr.h
+-rw-r--r-- root root 9578 ./usr/include/c++/10.1.0/bits/slice_array.h
+-rw-r--r-- root root 47238 ./usr/include/c++/10.1.0/bits/specfun.h
+-rw-r--r-- root root 10142 ./usr/include/c++/10.1.0/bits/sstream.tcc
+-rw-r--r-- root root 3360 ./usr/include/c++/10.1.0/bits/std_abs.h
+-rw-r--r-- root root 21612 ./usr/include/c++/10.1.0/bits/std_function.h
+-rw-r--r-- root root 4767 ./usr/include/c++/10.1.0/bits/std_mutex.h
+-rw-r--r-- root root 71744 ./usr/include/c++/10.1.0/bits/stl_algobase.h
+-rw-r--r-- root root 214835 ./usr/include/c++/10.1.0/bits/stl_algo.h
+-rw-r--r-- root root 34767 ./usr/include/c++/10.1.0/bits/stl_bvector.h
+-rw-r--r-- root root 8521 ./usr/include/c++/10.1.0/bits/stl_construct.h
+-rw-r--r-- root root 76807 ./usr/include/c++/10.1.0/bits/stl_deque.h
+-rw-r--r-- root root 42293 ./usr/include/c++/10.1.0/bits/stl_function.h
+-rw-r--r-- root root 20756 ./usr/include/c++/10.1.0/bits/stl_heap.h
+-rw-r--r-- root root 8178 ./usr/include/c++/10.1.0/bits/stl_iterator_base_funcs.h
+-rw-r--r-- root root 9660 ./usr/include/c++/10.1.0/bits/stl_iterator_base_types.h
+-rw-r--r-- root root 69682 ./usr/include/c++/10.1.0/bits/stl_iterator.h
+-rw-r--r-- root root 68748 ./usr/include/c++/10.1.0/bits/stl_list.h
+-rw-r--r-- root root 54669 ./usr/include/c++/10.1.0/bits/stl_map.h
+-rw-r--r-- root root 43510 ./usr/include/c++/10.1.0/bits/stl_multimap.h
+-rw-r--r-- root root 37662 ./usr/include/c++/10.1.0/bits/stl_multiset.h
+-rw-r--r-- root root 14600 ./usr/include/c++/10.1.0/bits/stl_numeric.h
+-rw-r--r-- root root 20163 ./usr/include/c++/10.1.0/bits/stl_pair.h
+-rw-r--r-- root root 25036 ./usr/include/c++/10.1.0/bits/stl_queue.h
+-rw-r--r-- root root 3830 ./usr/include/c++/10.1.0/bits/stl_raw_storage_iter.h
+-rw-r--r-- root root 4594 ./usr/include/c++/10.1.0/bits/stl_relops.h
+-rw-r--r-- root root 37922 ./usr/include/c++/10.1.0/bits/stl_set.h
+-rw-r--r-- root root 12684 ./usr/include/c++/10.1.0/bits/stl_stack.h
+-rw-r--r-- root root 8623 ./usr/include/c++/10.1.0/bits/stl_tempbuf.h
+-rw-r--r-- root root 74660 ./usr/include/c++/10.1.0/bits/stl_tree.h
+-rw-r--r-- root root 33161 ./usr/include/c++/10.1.0/bits/stl_uninitialized.h
+-rw-r--r-- root root 65919 ./usr/include/c++/10.1.0/bits/stl_vector.h
+-rw-r--r-- root root 15462 ./usr/include/c++/10.1.0/bits/streambuf_iterator.h
+-rw-r--r-- root root 4929 ./usr/include/c++/10.1.0/bits/streambuf.tcc
+-rw-r--r-- root root 7694 ./usr/include/c++/10.1.0/bits/stream_iterator.h
+-rw-r--r-- root root 2690 ./usr/include/c++/10.1.0/bits/stringfwd.h
+-rw-r--r-- root root 6698 ./usr/include/c++/10.1.0/bits/string_view.tcc
+-rw-r--r-- root root 10730 ./usr/include/c++/10.1.0/bits/uniform_int_dist.h
+-rw-r--r-- root root 6090 ./usr/include/c++/10.1.0/bits/unique_lock.h
+-rw-r--r-- root root 31291 ./usr/include/c++/10.1.0/bits/unique_ptr.h
+-rw-r--r-- root root 76744 ./usr/include/c++/10.1.0/bits/unordered_map.h
+-rw-r--r-- root root 60612 ./usr/include/c++/10.1.0/bits/unordered_set.h
+-rw-r--r-- root root 6870 ./usr/include/c++/10.1.0/bits/uses_allocator.h
+-rw-r--r-- root root 22839 ./usr/include/c++/10.1.0/bits/valarray_after.h
+-rw-r--r-- root root 21295 ./usr/include/c++/10.1.0/bits/valarray_array.h
+-rw-r--r-- root root 7254 ./usr/include/c++/10.1.0/bits/valarray_array.tcc
+-rw-r--r-- root root 19142 ./usr/include/c++/10.1.0/bits/valarray_before.h
+-rw-r--r-- root root 30870 ./usr/include/c++/10.1.0/bits/vector.tcc
+-rw-r--r-- root root 1648 ./usr/include/c++/10.1.0/cassert
+-rw-r--r-- root root 1335 ./usr/include/c++/10.1.0/ccomplex
+-rw-r--r-- root root 2409 ./usr/include/c++/10.1.0/cctype
+-rw-r--r-- root root 1770 ./usr/include/c++/10.1.0/cerrno
+-rw-r--r-- root root 2051 ./usr/include/c++/10.1.0/cfenv
+-rw-r--r-- root root 1889 ./usr/include/c++/10.1.0/cfloat
+-rw-r--r-- root root 17991 ./usr/include/c++/10.1.0/charconv
+-rw-r--r-- root root 38834 ./usr/include/c++/10.1.0/chrono
+-rw-r--r-- root root 2157 ./usr/include/c++/10.1.0/cinttypes
+-rw-r--r-- root root 1464 ./usr/include/c++/10.1.0/ciso646
+-rw-r--r-- root root 1913 ./usr/include/c++/10.1.0/climits
+-rw-r--r-- root root 1905 ./usr/include/c++/10.1.0/clocale
+-rw-r--r-- root root 49130 ./usr/include/c++/10.1.0/cmath
+-rw-r--r-- root root 5275 ./usr/include/c++/10.1.0/codecvt
+-rw-r--r-- root root 27896 ./usr/include/c++/10.1.0/compare
+-rw-r--r-- root root 56646 ./usr/include/c++/10.1.0/complex
+-rw-r--r-- root root 1596 ./usr/include/c++/10.1.0/complex.h
+-rw-r--r-- root root 12267 ./usr/include/c++/10.1.0/concepts
+-rw-r--r-- root root 12993 ./usr/include/c++/10.1.0/condition_variable
+-rw-r--r-- root root 7898 ./usr/include/c++/10.1.0/coroutine
+-rw-r--r-- root root 1949 ./usr/include/c++/10.1.0/csetjmp
+-rw-r--r-- root root 1855 ./usr/include/c++/10.1.0/csignal
+-rw-r--r-- root root 1407 ./usr/include/c++/10.1.0/cstdalign
+-rw-r--r-- root root 1868 ./usr/include/c++/10.1.0/cstdarg
+-rw-r--r-- root root 1401 ./usr/include/c++/10.1.0/cstdbool
+-rw-r--r-- root root 6274 ./usr/include/c++/10.1.0/cstddef
+-rw-r--r-- root root 2335 ./usr/include/c++/10.1.0/cstdint
+-rw-r--r-- root root 4439 ./usr/include/c++/10.1.0/cstdio
+-rw-r--r-- root root 6325 ./usr/include/c++/10.1.0/cstdlib
+-rw-r--r-- root root 3156 ./usr/include/c++/10.1.0/cstring
+-rw-r--r-- root root 1360 ./usr/include/c++/10.1.0/ctgmath
+-rw-r--r-- root root 2298 ./usr/include/c++/10.1.0/ctime
+-rw-r--r-- root root 2210 ./usr/include/c++/10.1.0/cuchar
+-rw-r--r-- root root 6542 ./usr/include/c++/10.1.0/cwchar
+-rw-r--r-- root root 2793 ./usr/include/c++/10.1.0/cwctype
+-rw-r--r-- root root 22011 ./usr/include/c++/10.1.0/cxxabi.h
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/debug
+-rw-r--r-- root root 12476 ./usr/include/c++/10.1.0/debug/array
+-rw-r--r-- root root 2411 ./usr/include/c++/10.1.0/debug/assertions.h
+-rw-r--r-- root root 11903 ./usr/include/c++/10.1.0/debug/bitset
+-rw-r--r-- root root 5881 ./usr/include/c++/10.1.0/debug/debug.h
+-rw-r--r-- root root 17979 ./usr/include/c++/10.1.0/debug/deque
+-rw-r--r-- root root 16991 ./usr/include/c++/10.1.0/debug/formatter.h
+-rw-r--r-- root root 27420 ./usr/include/c++/10.1.0/debug/forward_list
+-rw-r--r-- root root 15612 ./usr/include/c++/10.1.0/debug/functions.h
+-rw-r--r-- root root 9985 ./usr/include/c++/10.1.0/debug/helper_functions.h
+-rw-r--r-- root root 25327 ./usr/include/c++/10.1.0/debug/list
+-rw-r--r-- root root 20915 ./usr/include/c++/10.1.0/debug/macros.h
+-rw-r--r-- root root 1656 ./usr/include/c++/10.1.0/debug/map
+-rw-r--r-- root root 23035 ./usr/include/c++/10.1.0/debug/map.h
+-rw-r--r-- root root 20301 ./usr/include/c++/10.1.0/debug/multimap.h
+-rw-r--r-- root root 19200 ./usr/include/c++/10.1.0/debug/multiset.h
+-rw-r--r-- root root 9279 ./usr/include/c++/10.1.0/debug/safe_base.h
+-rw-r--r-- root root 3413 ./usr/include/c++/10.1.0/debug/safe_container.h
+-rw-r--r-- root root 30112 ./usr/include/c++/10.1.0/debug/safe_iterator.h
+-rw-r--r-- root root 16171 ./usr/include/c++/10.1.0/debug/safe_iterator.tcc
+-rw-r--r-- root root 13739 ./usr/include/c++/10.1.0/debug/safe_local_iterator.h
+-rw-r--r-- root root 2905 ./usr/include/c++/10.1.0/debug/safe_local_iterator.tcc
+-rw-r--r-- root root 5096 ./usr/include/c++/10.1.0/debug/safe_sequence.h
+-rw-r--r-- root root 5040 ./usr/include/c++/10.1.0/debug/safe_sequence.tcc
+-rw-r--r-- root root 6895 ./usr/include/c++/10.1.0/debug/safe_unordered_base.h
+-rw-r--r-- root root 3866 ./usr/include/c++/10.1.0/debug/safe_unordered_container.h
+-rw-r--r-- root root 3263 ./usr/include/c++/10.1.0/debug/safe_unordered_container.tcc
+-rw-r--r-- root root 1620 ./usr/include/c++/10.1.0/debug/set
+-rw-r--r-- root root 19199 ./usr/include/c++/10.1.0/debug/set.h
+-rw-r--r-- root root 4542 ./usr/include/c++/10.1.0/debug/stl_iterator.h
+-rw-r--r-- root root 36471 ./usr/include/c++/10.1.0/debug/string
+-rw-r--r-- root root 41394 ./usr/include/c++/10.1.0/debug/unordered_map
+-rw-r--r-- root root 35429 ./usr/include/c++/10.1.0/debug/unordered_set
+-rw-r--r-- root root 23523 ./usr/include/c++/10.1.0/debug/vector
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/decimal
+-rw-r--r-- root root 17636 ./usr/include/c++/10.1.0/decimal/decimal
+-rw-r--r-- root root 16999 ./usr/include/c++/10.1.0/decimal/decimal.h
+-rw-r--r-- root root 3973 ./usr/include/c++/10.1.0/deque
+-rw-r--r-- root root 4848 ./usr/include/c++/10.1.0/exception
+-rw-r--r-- root root 1803 ./usr/include/c++/10.1.0/execution
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/experimental
+-rw-r--r-- root root 3688 ./usr/include/c++/10.1.0/experimental/algorithm
+-rw-r--r-- root root 16010 ./usr/include/c++/10.1.0/experimental/any
+-rw-r--r-- root root 3371 ./usr/include/c++/10.1.0/experimental/array
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/experimental/bits
+-rw-r--r-- root root 10799 ./usr/include/c++/10.1.0/experimental/bits/fs_dir.h
+-rw-r--r-- root root 8524 ./usr/include/c++/10.1.0/experimental/bits/fs_fwd.h
+-rw-r--r-- root root 9340 ./usr/include/c++/10.1.0/experimental/bits/fs_ops.h
+-rw-r--r-- root root 36768 ./usr/include/c++/10.1.0/experimental/bits/fs_path.h
+-rw-r--r-- root root 2227 ./usr/include/c++/10.1.0/experimental/bits/lfts_config.h
+-rw-r--r-- root root 4814 ./usr/include/c++/10.1.0/experimental/bits/net.h
+-rw-r--r-- root root 20205 ./usr/include/c++/10.1.0/experimental/bits/shared_ptr.h
+-rw-r--r-- root root 6816 ./usr/include/c++/10.1.0/experimental/bits/string_view.tcc
+-rw-r--r-- root root 28719 ./usr/include/c++/10.1.0/experimental/buffer
+-rw-r--r-- root root 1960 ./usr/include/c++/10.1.0/experimental/chrono
+-rw-r--r-- root root 2296 ./usr/include/c++/10.1.0/experimental/deque
+-rw-r--r-- root root 55081 ./usr/include/c++/10.1.0/experimental/executor
+-rw-r--r-- root root 1589 ./usr/include/c++/10.1.0/experimental/filesystem
+-rw-r--r-- root root 2367 ./usr/include/c++/10.1.0/experimental/forward_list
+-rw-r--r-- root root 12311 ./usr/include/c++/10.1.0/experimental/functional
+-rw-r--r-- root root 65288 ./usr/include/c++/10.1.0/experimental/internet
+-rw-r--r-- root root 21331 ./usr/include/c++/10.1.0/experimental/io_context
+-rw-r--r-- root root 3534 ./usr/include/c++/10.1.0/experimental/iterator
+-rw-r--r-- root root 2265 ./usr/include/c++/10.1.0/experimental/list
+-rw-r--r-- root root 2594 ./usr/include/c++/10.1.0/experimental/map
+-rw-r--r-- root root 6056 ./usr/include/c++/10.1.0/experimental/memory
+-rw-r--r-- root root 17388 ./usr/include/c++/10.1.0/experimental/memory_resource
+-rw-r--r-- root root 1542 ./usr/include/c++/10.1.0/experimental/net
+-rw-r--r-- root root 3744 ./usr/include/c++/10.1.0/experimental/netfwd
+-rw-r--r-- root root 2858 ./usr/include/c++/10.1.0/experimental/numeric
+-rw-r--r-- root root 26832 ./usr/include/c++/10.1.0/experimental/optional
+-rw-r--r-- root root 15335 ./usr/include/c++/10.1.0/experimental/propagate_const
+-rw-r--r-- root root 2499 ./usr/include/c++/10.1.0/experimental/random
+-rw-r--r-- root root 2438 ./usr/include/c++/10.1.0/experimental/ratio
+-rw-r--r-- root root 2121 ./usr/include/c++/10.1.0/experimental/regex
+-rw-r--r-- root root 2471 ./usr/include/c++/10.1.0/experimental/set
+-rw-r--r-- root root 76228 ./usr/include/c++/10.1.0/experimental/socket
+-rw-r--r-- root root 2699 ./usr/include/c++/10.1.0/experimental/source_location
+-rw-r--r-- root root 2920 ./usr/include/c++/10.1.0/experimental/string
+-rw-r--r-- root root 22662 ./usr/include/c++/10.1.0/experimental/string_view
+-rw-r--r-- root root 2045 ./usr/include/c++/10.1.0/experimental/system_error
+-rw-r--r-- root root 5794 ./usr/include/c++/10.1.0/experimental/timer
+-rw-r--r-- root root 2472 ./usr/include/c++/10.1.0/experimental/tuple
+-rw-r--r-- root root 11221 ./usr/include/c++/10.1.0/experimental/type_traits
+-rw-r--r-- root root 2845 ./usr/include/c++/10.1.0/experimental/unordered_map
+-rw-r--r-- root root 2728 ./usr/include/c++/10.1.0/experimental/unordered_set
+-rw-r--r-- root root 1657 ./usr/include/c++/10.1.0/experimental/utility
+-rw-r--r-- root root 2355 ./usr/include/c++/10.1.0/experimental/vector
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext
+-rw-r--r-- root root 19255 ./usr/include/c++/10.1.0/ext/algorithm
+-rw-r--r-- root root 3972 ./usr/include/c++/10.1.0/ext/aligned_buffer.h
+-rw-r--r-- root root 6139 ./usr/include/c++/10.1.0/ext/alloc_traits.h
+-rw-r--r-- root root 3477 ./usr/include/c++/10.1.0/ext/atomicity.h
+-rw-r--r-- root root 32193 ./usr/include/c++/10.1.0/ext/bitmap_allocator.h
+-rw-r--r-- root root 4447 ./usr/include/c++/10.1.0/ext/cast.h
+-rw-r--r-- root root 6570 ./usr/include/c++/10.1.0/ext/cmath
+-rw-r--r-- root root 16353 ./usr/include/c++/10.1.0/ext/codecvt_specializations.h
+-rw-r--r-- root root 7542 ./usr/include/c++/10.1.0/ext/concurrence.h
+-rw-r--r-- root root 5881 ./usr/include/c++/10.1.0/ext/debug_allocator.h
+-rw-r--r-- root root 2247 ./usr/include/c++/10.1.0/ext/enc_filebuf.h
+-rw-r--r-- root root 6277 ./usr/include/c++/10.1.0/ext/extptr_allocator.h
+-rw-r--r-- root root 14172 ./usr/include/c++/10.1.0/ext/functional
+-rw-r--r-- root root 17822 ./usr/include/c++/10.1.0/ext/hash_map
+-rw-r--r-- root root 17323 ./usr/include/c++/10.1.0/ext/hash_set
+-rw-r--r-- root root 4031 ./usr/include/c++/10.1.0/ext/iterator
+-rw-r--r-- root root 5696 ./usr/include/c++/10.1.0/ext/malloc_allocator.h
+-rw-r--r-- root root 7173 ./usr/include/c++/10.1.0/ext/memory
+-rw-r--r-- root root 23628 ./usr/include/c++/10.1.0/ext/mt_allocator.h
+-rw-r--r-- root root 5587 ./usr/include/c++/10.1.0/ext/new_allocator.h
+-rw-r--r-- root root 4739 ./usr/include/c++/10.1.0/ext/numeric
+-rw-r--r-- root root 4570 ./usr/include/c++/10.1.0/ext/numeric_traits.h
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds
+-rw-r--r-- root root 30110 ./usr/include/c++/10.1.0/ext/pb_ds/assoc_container.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_
+-rw-r--r-- root root 9027 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp
+-rw-r--r-- root root 4338 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/const_iterator.hpp
+-rw-r--r-- root root 4222 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp
+-rw-r--r-- root root 2574 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp
+-rw-r--r-- root root 2802 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp
+-rw-r--r-- root root 2767 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/entry_pred.hpp
+-rw-r--r-- root root 5537 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp
+-rw-r--r-- root root 2630 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp
+-rw-r--r-- root root 2114 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp
+-rw-r--r-- root root 5011 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
+-rw-r--r-- root root 2303 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp
+-rw-r--r-- root root 4363 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/point_const_iterator.hpp
+-rw-r--r-- root root 1935 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp
+-rw-r--r-- root root 6133 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/resize_policy.hpp
+-rw-r--r-- root root 4956 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp
+-rw-r--r-- root root 2480 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binomial_heap_
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binomial_heap_base_
+-rw-r--r-- root root 6185 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp
+-rw-r--r-- root root 2721 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp
+-rw-r--r-- root root 3501 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp
+-rw-r--r-- root root 4515 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp
+-rw-r--r-- root root 2378 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp
+-rw-r--r-- root root 5304 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp
+-rw-r--r-- root root 5398 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp
+-rw-r--r-- root root 3922 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp
+-rw-r--r-- root root 2184 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp
+-rw-r--r-- root root 1930 ./usr/include/c++/10.1.0/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_
+-rw-r--r-- root root 12468 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp
+-rw-r--r-- root root 5539 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
+-rw-r--r-- root root 8104 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp
+-rw-r--r-- root root 2952 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp
+-rw-r--r-- root root 4712 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp
+-rw-r--r-- root root 2132 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp
+-rw-r--r-- root root 5514 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp
+-rw-r--r-- root root 3548 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp
+-rw-r--r-- root root 5921 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp
+-rw-r--r-- root root 8961 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp
+-rw-r--r-- root root 1938 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp
+-rw-r--r-- root root 2942 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp
+-rw-r--r-- root root 4223 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp
+-rw-r--r-- root root 4040 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp
+-rw-r--r-- root root 6374 ./usr/include/c++/10.1.0/ext/pb_ds/detail/bin_search_tree_/traits.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/branch_policy
+-rw-r--r-- root root 4020 ./usr/include/c++/10.1.0/ext/pb_ds/detail/branch_policy/branch_policy.hpp
+-rw-r--r-- root root 2379 ./usr/include/c++/10.1.0/ext/pb_ds/detail/branch_policy/null_node_metadata.hpp
+-rw-r--r-- root root 3254 ./usr/include/c++/10.1.0/ext/pb_ds/detail/branch_policy/traits.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_
+-rw-r--r-- root root 20071 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
+-rw-r--r-- root root 2798 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp
+-rw-r--r-- root root 2874 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp
+-rw-r--r-- root root 5824 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp
+-rw-r--r-- root root 2259 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2339 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2726 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp
+-rw-r--r-- root root 2033 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2181 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2987 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp
+-rw-r--r-- root root 3278 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp
+-rw-r--r-- root root 3297 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp
+-rw-r--r-- root root 3258 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2518 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp
+-rw-r--r-- root root 1779 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp
+-rw-r--r-- root root 3163 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp
+-rw-r--r-- root root 1896 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp
+-rw-r--r-- root root 2651 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2707 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2697 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp
+-rw-r--r-- root root 2514 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp
+-rw-r--r-- root root 4095 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp
+-rw-r--r-- root root 2275 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2307 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2161 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp
+-rw-r--r-- root root 2396 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp
+-rw-r--r-- root root 2772 ./usr/include/c++/10.1.0/ext/pb_ds/detail/cond_dealtor.hpp
+-rw-r--r-- root root 13120 ./usr/include/c++/10.1.0/ext/pb_ds/detail/container_base_dispatch.hpp
+-rw-r--r-- root root 8697 ./usr/include/c++/10.1.0/ext/pb_ds/detail/debug_map_base.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/eq_fn
+-rw-r--r-- root root 2330 ./usr/include/c++/10.1.0/ext/pb_ds/detail/eq_fn/eq_by_less.hpp
+-rw-r--r-- root root 3739 ./usr/include/c++/10.1.0/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_
+-rw-r--r-- root root 6639 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp
+-rw-r--r-- root root 2235 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2302 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2207 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp
+-rw-r--r-- root root 2538 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2678 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp
+-rw-r--r-- root root 3237 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp
+-rw-r--r-- root root 2918 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2952 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2511 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp
+-rw-r--r-- root root 1950 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp
+-rw-r--r-- root root 1780 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp
+-rw-r--r-- root root 20441 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp
+-rw-r--r-- root root 2160 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp
+-rw-r--r-- root root 1896 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp
+-rw-r--r-- root root 3810 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp
+-rw-r--r-- root root 4118 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2652 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp
+-rw-r--r-- root root 2693 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp
+-rw-r--r-- root root 4190 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp
+-rw-r--r-- root root 2651 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2684 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp
+-rw-r--r-- root root 2457 ./usr/include/c++/10.1.0/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn
+-rw-r--r-- root root 2137 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp
+-rw-r--r-- root root 2127 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp
+-rw-r--r-- root root 1946 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp
+-rw-r--r-- root root 3290 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp
+-rw-r--r-- root root 2391 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp
+-rw-r--r-- root root 2009 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp
+-rw-r--r-- root root 1953 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp
+-rw-r--r-- root root 10543 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp
+-rw-r--r-- root root 10256 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp
+-rw-r--r-- root root 2291 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp
+-rw-r--r-- root root 2469 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp
+-rw-r--r-- root root 2598 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp
+-rw-r--r-- root root 2487 ./usr/include/c++/10.1.0/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/left_child_next_sibling_heap_
+-rw-r--r-- root root 4924 ./usr/include/c++/10.1.0/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp
+-rw-r--r-- root root 4088 ./usr/include/c++/10.1.0/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp
+-rw-r--r-- root root 4108 ./usr/include/c++/10.1.0/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp
+-rw-r--r-- root root 3992 ./usr/include/c++/10.1.0/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp
+-rw-r--r-- root root 2158 ./usr/include/c++/10.1.0/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp
+-rw-r--r-- root root 5234 ./usr/include/c++/10.1.0/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp
+-rw-r--r-- root root 2588 ./usr/include/c++/10.1.0/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp
+-rw-r--r-- root root 8182 ./usr/include/c++/10.1.0/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp
+-rw-r--r-- root root 3240 ./usr/include/c++/10.1.0/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp
+-rw-r--r-- root root 4397 ./usr/include/c++/10.1.0/ext/pb_ds/detail/left_child_next_sibling_heap_/point_const_iterator.hpp
+-rw-r--r-- root root 1960 ./usr/include/c++/10.1.0/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp
+-rw-r--r-- root root 2848 ./usr/include/c++/10.1.0/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_map_
+-rw-r--r-- root root 3617 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp
+-rw-r--r-- root root 2128 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp
+-rw-r--r-- root root 2117 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp
+-rw-r--r-- root root 3515 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp
+-rw-r--r-- root root 2894 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp
+-rw-r--r-- root root 2126 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp
+-rw-r--r-- root root 3543 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp
+-rw-r--r-- root root 2547 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
+-rw-r--r-- root root 10551 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_map_/lu_map_.hpp
+-rw-r--r-- root root 2061 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_policy
+-rw-r--r-- root root 2850 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_policy/lu_counter_metadata.hpp
+-rw-r--r-- root root 2672 ./usr/include/c++/10.1.0/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/ov_tree_map_
+-rw-r--r-- root root 6916 ./usr/include/c++/10.1.0/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
+-rw-r--r-- root root 2851 ./usr/include/c++/10.1.0/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp
+-rw-r--r-- root root 5014 ./usr/include/c++/10.1.0/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp
+-rw-r--r-- root root 2136 ./usr/include/c++/10.1.0/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp
+-rw-r--r-- root root 2306 ./usr/include/c++/10.1.0/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp
+-rw-r--r-- root root 3394 ./usr/include/c++/10.1.0/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp
+-rw-r--r-- root root 8638 ./usr/include/c++/10.1.0/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp
+-rw-r--r-- root root 15509 ./usr/include/c++/10.1.0/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp
+-rw-r--r-- root root 1920 ./usr/include/c++/10.1.0/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp
+-rw-r--r-- root root 3807 ./usr/include/c++/10.1.0/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp
+-rw-r--r-- root root 4562 ./usr/include/c++/10.1.0/ext/pb_ds/detail/ov_tree_map_/traits.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pairing_heap_
+-rw-r--r-- root root 2539 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp
+-rw-r--r-- root root 2029 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp
+-rw-r--r-- root root 7224 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp
+-rw-r--r-- root root 1970 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp
+-rw-r--r-- root root 2980 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp
+-rw-r--r-- root root 5500 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp
+-rw-r--r-- root root 3739 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_
+-rw-r--r-- root root 5745 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp
+-rw-r--r-- root root 3824 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp
+-rw-r--r-- root root 7978 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp
+-rw-r--r-- root root 7908 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp
+-rw-r--r-- root root 2108 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp
+-rw-r--r-- root root 14508 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp
+-rw-r--r-- root root 3513 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp
+-rw-r--r-- root root 36857 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp
+-rw-r--r-- root root 16777 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp
+-rw-r--r-- root root 2248 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp
+-rw-r--r-- root root 2953 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp
+-rw-r--r-- root root 4363 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp
+-rw-r--r-- root root 7758 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp
+-rw-r--r-- root root 6718 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/synth_access_traits.hpp
+-rw-r--r-- root root 3434 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp
+-rw-r--r-- root root 6305 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/traits.hpp
+-rw-r--r-- root root 2075 ./usr/include/c++/10.1.0/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp
+-rw-r--r-- root root 4140 ./usr/include/c++/10.1.0/ext/pb_ds/detail/priority_queue_base_dispatch.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rb_tree_map_
+-rw-r--r-- root root 2816 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
+-rw-r--r-- root root 2794 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp
+-rw-r--r-- root root 7084 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp
+-rw-r--r-- root root 1703 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp
+-rw-r--r-- root root 1874 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp
+-rw-r--r-- root root 3900 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp
+-rw-r--r-- root root 3671 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rb_tree_map_/node.hpp
+-rw-r--r-- root root 7962 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp
+-rw-r--r-- root root 7894 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp
+-rw-r--r-- root root 3283 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rb_tree_map_/traits.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rc_binomial_heap_
+-rw-r--r-- root root 2500 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp
+-rw-r--r-- root root 3571 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp
+-rw-r--r-- root root 2922 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp
+-rw-r--r-- root root 4270 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp
+-rw-r--r-- root root 5303 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp
+-rw-r--r-- root root 6199 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp
+-rw-r--r-- root root 2451 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp
+-rw-r--r-- root root 1937 ./usr/include/c++/10.1.0/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/resize_policy
+-rw-r--r-- root root 4932 ./usr/include/c++/10.1.0/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp
+-rw-r--r-- root root 2805 ./usr/include/c++/10.1.0/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp
+-rw-r--r-- root root 7785 ./usr/include/c++/10.1.0/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
+-rw-r--r-- root root 2970 ./usr/include/c++/10.1.0/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp
+-rw-r--r-- root root 6172 ./usr/include/c++/10.1.0/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
+-rw-r--r-- root root 6316 ./usr/include/c++/10.1.0/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp
+-rw-r--r-- root root 3578 ./usr/include/c++/10.1.0/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp
+-rw-r--r-- root root 3914 ./usr/include/c++/10.1.0/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp
+-rw-r--r-- root root 2427 ./usr/include/c++/10.1.0/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/splay_tree_
+-rw-r--r-- root root 2880 ./usr/include/c++/10.1.0/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp
+-rw-r--r-- root root 2496 ./usr/include/c++/10.1.0/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp
+-rw-r--r-- root root 4302 ./usr/include/c++/10.1.0/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp
+-rw-r--r-- root root 3352 ./usr/include/c++/10.1.0/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp
+-rw-r--r-- root root 1689 ./usr/include/c++/10.1.0/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp
+-rw-r--r-- root root 3386 ./usr/include/c++/10.1.0/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp
+-rw-r--r-- root root 3587 ./usr/include/c++/10.1.0/ext/pb_ds/detail/splay_tree_/node.hpp
+-rw-r--r-- root root 8082 ./usr/include/c++/10.1.0/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp
+-rw-r--r-- root root 9307 ./usr/include/c++/10.1.0/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp
+-rw-r--r-- root root 3667 ./usr/include/c++/10.1.0/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp
+-rw-r--r-- root root 3351 ./usr/include/c++/10.1.0/ext/pb_ds/detail/splay_tree_/traits.hpp
+-rw-r--r-- root root 5031 ./usr/include/c++/10.1.0/ext/pb_ds/detail/standard_policies.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/thin_heap_
+-rw-r--r-- root root 2979 ./usr/include/c++/10.1.0/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp
+-rw-r--r-- root root 3899 ./usr/include/c++/10.1.0/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp
+-rw-r--r-- root root 6088 ./usr/include/c++/10.1.0/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp
+-rw-r--r-- root root 1985 ./usr/include/c++/10.1.0/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp
+-rw-r--r-- root root 7516 ./usr/include/c++/10.1.0/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp
+-rw-r--r-- root root 3188 ./usr/include/c++/10.1.0/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp
+-rw-r--r-- root root 8389 ./usr/include/c++/10.1.0/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp
+-rw-r--r-- root root 1995 ./usr/include/c++/10.1.0/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/tree_policy
+-rw-r--r-- root root 3338 ./usr/include/c++/10.1.0/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp
+-rw-r--r-- root root 3756 ./usr/include/c++/10.1.0/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp
+-rw-r--r-- root root 2346 ./usr/include/c++/10.1.0/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp
+-rw-r--r-- root root 5153 ./usr/include/c++/10.1.0/ext/pb_ds/detail/tree_trace_base.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/trie_policy
+-rw-r--r-- root root 3338 ./usr/include/c++/10.1.0/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp
+-rw-r--r-- root root 4734 ./usr/include/c++/10.1.0/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp
+-rw-r--r-- root root 4544 ./usr/include/c++/10.1.0/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp
+-rw-r--r-- root root 2666 ./usr/include/c++/10.1.0/ext/pb_ds/detail/trie_policy/sample_trie_access_traits.hpp
+-rw-r--r-- root root 2348 ./usr/include/c++/10.1.0/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp
+-rw-r--r-- root root 5847 ./usr/include/c++/10.1.0/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp
+-rw-r--r-- root root 3084 ./usr/include/c++/10.1.0/ext/pb_ds/detail/trie_policy/trie_string_access_traits_imp.hpp
+-rw-r--r-- root root 6450 ./usr/include/c++/10.1.0/ext/pb_ds/detail/types_traits.hpp
+-rw-r--r-- root root 4318 ./usr/include/c++/10.1.0/ext/pb_ds/detail/type_utils.hpp
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/ext/pb_ds/detail/unordered_iterator
+-rw-r--r-- root root 3517 ./usr/include/c++/10.1.0/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp
+-rw-r--r-- root root 3966 ./usr/include/c++/10.1.0/ext/pb_ds/detail/unordered_iterator/iterator.hpp
+-rw-r--r-- root root 3975 ./usr/include/c++/10.1.0/ext/pb_ds/detail/unordered_iterator/point_const_iterator.hpp
+-rw-r--r-- root root 3742 ./usr/include/c++/10.1.0/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp
+-rw-r--r-- root root 2988 ./usr/include/c++/10.1.0/ext/pb_ds/exception.hpp
+-rw-r--r-- root root 16815 ./usr/include/c++/10.1.0/ext/pb_ds/hash_policy.hpp
+-rw-r--r-- root root 4318 ./usr/include/c++/10.1.0/ext/pb_ds/list_update_policy.hpp
+-rw-r--r-- root root 5444 ./usr/include/c++/10.1.0/ext/pb_ds/priority_queue.hpp
+-rw-r--r-- root root 12268 ./usr/include/c++/10.1.0/ext/pb_ds/tag_and_trait.hpp
+-rw-r--r-- root root 5569 ./usr/include/c++/10.1.0/ext/pb_ds/tree_policy.hpp
+-rw-r--r-- root root 12201 ./usr/include/c++/10.1.0/ext/pb_ds/trie_policy.hpp
+-rw-r--r-- root root 5556 ./usr/include/c++/10.1.0/ext/pod_char_traits.h
+-rw-r--r-- root root 20480 ./usr/include/c++/10.1.0/ext/pointer.h
+-rw-r--r-- root root 8965 ./usr/include/c++/10.1.0/ext/pool_allocator.h
+-rw-r--r-- root root 113176 ./usr/include/c++/10.1.0/ext/random
+-rw-r--r-- root root 60330 ./usr/include/c++/10.1.0/ext/random.tcc
+-rw-r--r-- root root 3278 ./usr/include/c++/10.1.0/ext/rb_tree
+-rw-r--r-- root root 23794 ./usr/include/c++/10.1.0/ext/rc_string_base.h
+-rw-r--r-- root root 88598 ./usr/include/c++/10.1.0/ext/rope
+-rw-r--r-- root root 48860 ./usr/include/c++/10.1.0/ext/ropeimpl.h
+-rw-r--r-- root root 29900 ./usr/include/c++/10.1.0/ext/slist
+-rw-r--r-- root root 16393 ./usr/include/c++/10.1.0/ext/sso_string_base.h
+-rw-r--r-- root root 5670 ./usr/include/c++/10.1.0/ext/stdio_filebuf.h
+-rw-r--r-- root root 8782 ./usr/include/c++/10.1.0/ext/stdio_sync_filebuf.h
+-rw-r--r-- root root 3597 ./usr/include/c++/10.1.0/ext/string_conversions.h
+-rw-r--r-- root root 25222 ./usr/include/c++/10.1.0/ext/throw_allocator.h
+-rw-r--r-- root root 16480 ./usr/include/c++/10.1.0/ext/typelist.h
+-rw-r--r-- root root 5914 ./usr/include/c++/10.1.0/ext/type_traits.h
+-rw-r--r-- root root 3178 ./usr/include/c++/10.1.0/ext/vstring_fwd.h
+-rw-r--r-- root root 110624 ./usr/include/c++/10.1.0/ext/vstring.h
+-rw-r--r-- root root 23614 ./usr/include/c++/10.1.0/ext/vstring.tcc
+-rw-r--r-- root root 5885 ./usr/include/c++/10.1.0/ext/vstring_util.h
+-rw-r--r-- root root 2020 ./usr/include/c++/10.1.0/fenv.h
+-rw-r--r-- root root 1645 ./usr/include/c++/10.1.0/filesystem
+-rw-r--r-- root root 2690 ./usr/include/c++/10.1.0/forward_list
+-rw-r--r-- root root 40559 ./usr/include/c++/10.1.0/fstream
+-rw-r--r-- root root 40189 ./usr/include/c++/10.1.0/functional
+-rw-r--r-- root root 50826 ./usr/include/c++/10.1.0/future
+-rw-r--r-- root root 3038 ./usr/include/c++/10.1.0/initializer_list
+-rw-r--r-- root root 16547 ./usr/include/c++/10.1.0/iomanip
+-rw-r--r-- root root 1601 ./usr/include/c++/10.1.0/ios
+-rw-r--r-- root root 6918 ./usr/include/c++/10.1.0/iosfwd
+-rw-r--r-- root root 2695 ./usr/include/c++/10.1.0/iostream
+-rw-r--r-- root root 32843 ./usr/include/c++/10.1.0/istream
+-rw-r--r-- root root 2751 ./usr/include/c++/10.1.0/iterator
+-rw-r--r-- root root 71808 ./usr/include/c++/10.1.0/limits
+-rw-r--r-- root root 3657 ./usr/include/c++/10.1.0/list
+-rw-r--r-- root root 1488 ./usr/include/c++/10.1.0/locale
+-rw-r--r-- root root 3929 ./usr/include/c++/10.1.0/map
+-rw-r--r-- root root 4573 ./usr/include/c++/10.1.0/math.h
+-rw-r--r-- root root 13663 ./usr/include/c++/10.1.0/memory
+-rw-r--r-- root root 20624 ./usr/include/c++/10.1.0/memory_resource
+-rw-r--r-- root root 19755 ./usr/include/c++/10.1.0/mutex
+-rw-r--r-- root root 8199 ./usr/include/c++/10.1.0/new
+-rw-r--r-- root root 6220 ./usr/include/c++/10.1.0/numbers
+-rw-r--r-- root root 25090 ./usr/include/c++/10.1.0/numeric
+-rw-r--r-- root root 38703 ./usr/include/c++/10.1.0/optional
+-rw-r--r-- root root 24826 ./usr/include/c++/10.1.0/ostream
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/parallel
+-rw-r--r-- root root 18259 ./usr/include/c++/10.1.0/parallel/algobase.h
+-rw-r--r-- root root 80136 ./usr/include/c++/10.1.0/parallel/algo.h
+-rw-r--r-- root root 1381 ./usr/include/c++/10.1.0/parallel/algorithm
+-rw-r--r-- root root 32306 ./usr/include/c++/10.1.0/parallel/algorithmfwd.h
+-rw-r--r-- root root 16952 ./usr/include/c++/10.1.0/parallel/balanced_quicksort.h
+-rw-r--r-- root root 12373 ./usr/include/c++/10.1.0/parallel/base.h
+-rw-r--r-- root root 1586 ./usr/include/c++/10.1.0/parallel/basic_iterator.h
+-rw-r--r-- root root 2235 ./usr/include/c++/10.1.0/parallel/checkers.h
+-rw-r--r-- root root 3790 ./usr/include/c++/10.1.0/parallel/compatibility.h
+-rw-r--r-- root root 2871 ./usr/include/c++/10.1.0/parallel/compiletime_settings.h
+-rw-r--r-- root root 3356 ./usr/include/c++/10.1.0/parallel/equally_split.h
+-rw-r--r-- root root 3543 ./usr/include/c++/10.1.0/parallel/features.h
+-rw-r--r-- root root 13591 ./usr/include/c++/10.1.0/parallel/find.h
+-rw-r--r-- root root 6992 ./usr/include/c++/10.1.0/parallel/find_selectors.h
+-rw-r--r-- root root 3947 ./usr/include/c++/10.1.0/parallel/for_each.h
+-rw-r--r-- root root 10565 ./usr/include/c++/10.1.0/parallel/for_each_selectors.h
+-rw-r--r-- root root 5678 ./usr/include/c++/10.1.0/parallel/iterator.h
+-rw-r--r-- root root 6542 ./usr/include/c++/10.1.0/parallel/list_partition.h
+-rw-r--r-- root root 28592 ./usr/include/c++/10.1.0/parallel/losertree.h
+-rw-r--r-- root root 9578 ./usr/include/c++/10.1.0/parallel/merge.h
+-rw-r--r-- root root 22073 ./usr/include/c++/10.1.0/parallel/multiseq_selection.h
+-rw-r--r-- root root 70545 ./usr/include/c++/10.1.0/parallel/multiway_merge.h
+-rw-r--r-- root root 15281 ./usr/include/c++/10.1.0/parallel/multiway_mergesort.h
+-rw-r--r-- root root 20717 ./usr/include/c++/10.1.0/parallel/numeric
+-rw-r--r-- root root 7506 ./usr/include/c++/10.1.0/parallel/numericfwd.h
+-rw-r--r-- root root 4031 ./usr/include/c++/10.1.0/parallel/omp_loop.h
+-rw-r--r-- root root 4104 ./usr/include/c++/10.1.0/parallel/omp_loop_static.h
+-rw-r--r-- root root 1576 ./usr/include/c++/10.1.0/parallel/parallel.h
+-rw-r--r-- root root 4552 ./usr/include/c++/10.1.0/parallel/par_loop.h
+-rw-r--r-- root root 7474 ./usr/include/c++/10.1.0/parallel/partial_sum.h
+-rw-r--r-- root root 14961 ./usr/include/c++/10.1.0/parallel/partition.h
+-rw-r--r-- root root 5542 ./usr/include/c++/10.1.0/parallel/queue.h
+-rw-r--r-- root root 6126 ./usr/include/c++/10.1.0/parallel/quicksort.h
+-rw-r--r-- root root 4227 ./usr/include/c++/10.1.0/parallel/random_number.h
+-rw-r--r-- root root 18675 ./usr/include/c++/10.1.0/parallel/random_shuffle.h
+-rw-r--r-- root root 5391 ./usr/include/c++/10.1.0/parallel/search.h
+-rw-r--r-- root root 14590 ./usr/include/c++/10.1.0/parallel/set_operations.h
+-rw-r--r-- root root 12462 ./usr/include/c++/10.1.0/parallel/settings.h
+-rw-r--r-- root root 7709 ./usr/include/c++/10.1.0/parallel/sort.h
+-rw-r--r-- root root 5982 ./usr/include/c++/10.1.0/parallel/tags.h
+-rw-r--r-- root root 3716 ./usr/include/c++/10.1.0/parallel/types.h
+-rw-r--r-- root root 6165 ./usr/include/c++/10.1.0/parallel/unique_copy.h
+-rw-r--r-- root root 9610 ./usr/include/c++/10.1.0/parallel/workstealing.h
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/pstl
+-rw-r--r-- root root 68340 ./usr/include/c++/10.1.0/pstl/algorithm_fwd.h
+-rw-r--r-- root root 172216 ./usr/include/c++/10.1.0/pstl/algorithm_impl.h
+-rw-r--r-- root root 3694 ./usr/include/c++/10.1.0/pstl/execution_defs.h
+-rw-r--r-- root root 4834 ./usr/include/c++/10.1.0/pstl/execution_impl.h
+-rw-r--r-- root root 32278 ./usr/include/c++/10.1.0/pstl/glue_algorithm_defs.h
+-rw-r--r-- root root 64874 ./usr/include/c++/10.1.0/pstl/glue_algorithm_impl.h
+-rw-r--r-- root root 1549 ./usr/include/c++/10.1.0/pstl/glue_execution_defs.h
+-rw-r--r-- root root 3865 ./usr/include/c++/10.1.0/pstl/glue_memory_defs.h
+-rw-r--r-- root root 19574 ./usr/include/c++/10.1.0/pstl/glue_memory_impl.h
+-rw-r--r-- root root 6620 ./usr/include/c++/10.1.0/pstl/glue_numeric_defs.h
+-rw-r--r-- root root 11628 ./usr/include/c++/10.1.0/pstl/glue_numeric_impl.h
+-rw-r--r-- root root 1997 ./usr/include/c++/10.1.0/pstl/memory_impl.h
+-rw-r--r-- root root 7929 ./usr/include/c++/10.1.0/pstl/numeric_fwd.h
+-rw-r--r-- root root 18748 ./usr/include/c++/10.1.0/pstl/numeric_impl.h
+-rw-r--r-- root root 718 ./usr/include/c++/10.1.0/pstl/parallel_backend.h
+-rw-r--r-- root root 4084 ./usr/include/c++/10.1.0/pstl/parallel_backend_serial.h
+-rw-r--r-- root root 26379 ./usr/include/c++/10.1.0/pstl/parallel_backend_tbb.h
+-rw-r--r-- root root 5602 ./usr/include/c++/10.1.0/pstl/parallel_backend_utils.h
+-rw-r--r-- root root 4110 ./usr/include/c++/10.1.0/pstl/parallel_impl.h
+-rw-r--r-- root root 6990 ./usr/include/c++/10.1.0/pstl/pstl_config.h
+-rw-r--r-- root root 29256 ./usr/include/c++/10.1.0/pstl/unseq_backend_simd.h
+-rw-r--r-- root root 4606 ./usr/include/c++/10.1.0/pstl/utils.h
+-rw-r--r-- root root 2467 ./usr/include/c++/10.1.0/queue
+-rw-r--r-- root root 1692 ./usr/include/c++/10.1.0/random
+-rw-r--r-- root root 97030 ./usr/include/c++/10.1.0/ranges
+-rw-r--r-- root root 20107 ./usr/include/c++/10.1.0/ratio
+-rw-r--r-- root root 2648 ./usr/include/c++/10.1.0/regex
+-rw-r--r-- root root 17459 ./usr/include/c++/10.1.0/scoped_allocator
+-rw-r--r-- root root 3799 ./usr/include/c++/10.1.0/set
+-rw-r--r-- root root 24417 ./usr/include/c++/10.1.0/shared_mutex
+-rw-r--r-- root root 13251 ./usr/include/c++/10.1.0/span
+-rw-r--r-- root root 28524 ./usr/include/c++/10.1.0/sstream
+-rw-r--r-- root root 2391 ./usr/include/c++/10.1.0/stack
+-rw-r--r-- root root 9877 ./usr/include/c++/10.1.0/stdexcept
+-rw-r--r-- root root 2248 ./usr/include/c++/10.1.0/stdlib.h
+-rw-r--r-- root root 16254 ./usr/include/c++/10.1.0/stop_token
+-rw-r--r-- root root 30017 ./usr/include/c++/10.1.0/streambuf
+-rw-r--r-- root root 4645 ./usr/include/c++/10.1.0/string
+-rw-r--r-- root root 24878 ./usr/include/c++/10.1.0/string_view
+-rw-r--r-- root root 14871 ./usr/include/c++/10.1.0/system_error
+-rw-r--r-- root root 1360 ./usr/include/c++/10.1.0/tgmath.h
+-rw-r--r-- root root 13968 ./usr/include/c++/10.1.0/thread
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/tr1
+-rw-r--r-- root root 6983 ./usr/include/c++/10.1.0/tr1/array
+-rw-r--r-- root root 22937 ./usr/include/c++/10.1.0/tr1/bessel_function.tcc
+-rw-r--r-- root root 5995 ./usr/include/c++/10.1.0/tr1/beta_function.tcc
+-rw-r--r-- root root 1255 ./usr/include/c++/10.1.0/tr1/ccomplex
+-rw-r--r-- root root 1478 ./usr/include/c++/10.1.0/tr1/cctype
+-rw-r--r-- root root 2070 ./usr/include/c++/10.1.0/tr1/cfenv
+-rw-r--r-- root root 1380 ./usr/include/c++/10.1.0/tr1/cfloat
+-rw-r--r-- root root 2322 ./usr/include/c++/10.1.0/tr1/cinttypes
+-rw-r--r-- root root 1454 ./usr/include/c++/10.1.0/tr1/climits
+-rw-r--r-- root root 43874 ./usr/include/c++/10.1.0/tr1/cmath
+-rw-r--r-- root root 12384 ./usr/include/c++/10.1.0/tr1/complex
+-rw-r--r-- root root 1261 ./usr/include/c++/10.1.0/tr1/complex.h
+-rw-r--r-- root root 1246 ./usr/include/c++/10.1.0/tr1/cstdarg
+-rw-r--r-- root root 1344 ./usr/include/c++/10.1.0/tr1/cstdbool
+-rw-r--r-- root root 2687 ./usr/include/c++/10.1.0/tr1/cstdint
+-rw-r--r-- root root 1548 ./usr/include/c++/10.1.0/tr1/cstdio
+-rw-r--r-- root root 1862 ./usr/include/c++/10.1.0/tr1/cstdlib
+-rw-r--r-- root root 1248 ./usr/include/c++/10.1.0/tr1/ctgmath
+-rw-r--r-- root root 1234 ./usr/include/c++/10.1.0/tr1/ctime
+-rw-r--r-- root root 1209 ./usr/include/c++/10.1.0/tr1/ctype.h
+-rw-r--r-- root root 1784 ./usr/include/c++/10.1.0/tr1/cwchar
+-rw-r--r-- root root 1525 ./usr/include/c++/10.1.0/tr1/cwctype
+-rw-r--r-- root root 27644 ./usr/include/c++/10.1.0/tr1/ell_integral.tcc
+-rw-r--r-- root root 16013 ./usr/include/c++/10.1.0/tr1/exp_integral.tcc
+-rw-r--r-- root root 1204 ./usr/include/c++/10.1.0/tr1/fenv.h
+-rw-r--r-- root root 1209 ./usr/include/c++/10.1.0/tr1/float.h
+-rw-r--r-- root root 70545 ./usr/include/c++/10.1.0/tr1/functional
+-rw-r--r-- root root 6043 ./usr/include/c++/10.1.0/tr1/functional_hash.h
+-rw-r--r-- root root 14682 ./usr/include/c++/10.1.0/tr1/gamma.tcc
+-rw-r--r-- root root 41995 ./usr/include/c++/10.1.0/tr1/hashtable.h
+-rw-r--r-- root root 25086 ./usr/include/c++/10.1.0/tr1/hashtable_policy.h
+-rw-r--r-- root root 28066 ./usr/include/c++/10.1.0/tr1/hypergeometric.tcc
+-rw-r--r-- root root 1267 ./usr/include/c++/10.1.0/tr1/inttypes.h
+-rw-r--r-- root root 10652 ./usr/include/c++/10.1.0/tr1/legendre_function.tcc
+-rw-r--r-- root root 1214 ./usr/include/c++/10.1.0/tr1/limits.h
+-rw-r--r-- root root 4553 ./usr/include/c++/10.1.0/tr1/math.h
+-rw-r--r-- root root 1791 ./usr/include/c++/10.1.0/tr1/memory
+-rw-r--r-- root root 16324 ./usr/include/c++/10.1.0/tr1/modified_bessel_func.tcc
+-rw-r--r-- root root 3925 ./usr/include/c++/10.1.0/tr1/poly_hermite.tcc
+-rw-r--r-- root root 11676 ./usr/include/c++/10.1.0/tr1/poly_laguerre.tcc
+-rw-r--r-- root root 1589 ./usr/include/c++/10.1.0/tr1/random
+-rw-r--r-- root root 73123 ./usr/include/c++/10.1.0/tr1/random.h
+-rw-r--r-- root root 53927 ./usr/include/c++/10.1.0/tr1/random.tcc
+-rw-r--r-- root root 92899 ./usr/include/c++/10.1.0/tr1/regex
+-rw-r--r-- root root 14067 ./usr/include/c++/10.1.0/tr1/riemann_zeta.tcc
+-rw-r--r-- root root 32608 ./usr/include/c++/10.1.0/tr1/shared_ptr.h
+-rw-r--r-- root root 5055 ./usr/include/c++/10.1.0/tr1/special_function_util.h
+-rw-r--r-- root root 1214 ./usr/include/c++/10.1.0/tr1/stdarg.h
+-rw-r--r-- root root 1219 ./usr/include/c++/10.1.0/tr1/stdbool.h
+-rw-r--r-- root root 1214 ./usr/include/c++/10.1.0/tr1/stdint.h
+-rw-r--r-- root root 1209 ./usr/include/c++/10.1.0/tr1/stdio.h
+-rw-r--r-- root root 1487 ./usr/include/c++/10.1.0/tr1/stdlib.h
+-rw-r--r-- root root 1255 ./usr/include/c++/10.1.0/tr1/tgmath.h
+-rw-r--r-- root root 12119 ./usr/include/c++/10.1.0/tr1/tuple
+-rw-r--r-- root root 19019 ./usr/include/c++/10.1.0/tr1/type_traits
+-rw-r--r-- root root 1574 ./usr/include/c++/10.1.0/tr1/unordered_map
+-rw-r--r-- root root 10216 ./usr/include/c++/10.1.0/tr1/unordered_map.h
+-rw-r--r-- root root 1574 ./usr/include/c++/10.1.0/tr1/unordered_set
+-rw-r--r-- root root 9540 ./usr/include/c++/10.1.0/tr1/unordered_set.h
+-rw-r--r-- root root 3225 ./usr/include/c++/10.1.0/tr1/utility
+-rw-r--r-- root root 1249 ./usr/include/c++/10.1.0/tr1/wchar.h
+-rw-r--r-- root root 1255 ./usr/include/c++/10.1.0/tr1/wctype.h
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/tr2
+-rw-r--r-- root root 7370 ./usr/include/c++/10.1.0/tr2/bool_set
+-rw-r--r-- root root 8319 ./usr/include/c++/10.1.0/tr2/bool_set.tcc
+-rw-r--r-- root root 34336 ./usr/include/c++/10.1.0/tr2/dynamic_bitset
+-rw-r--r-- root root 8925 ./usr/include/c++/10.1.0/tr2/dynamic_bitset.tcc
+-rw-r--r-- root root 2130 ./usr/include/c++/10.1.0/tr2/ratio
+-rw-r--r-- root root 2699 ./usr/include/c++/10.1.0/tr2/type_traits
+-rw-r--r-- root root 60078 ./usr/include/c++/10.1.0/tuple
+-rw-r--r-- root root 3512 ./usr/include/c++/10.1.0/typeindex
+-rw-r--r-- root root 7746 ./usr/include/c++/10.1.0/typeinfo
+-rw-r--r-- root root 103356 ./usr/include/c++/10.1.0/type_traits
+-rw-r--r-- root root 3467 ./usr/include/c++/10.1.0/unordered_map
+-rw-r--r-- root root 3340 ./usr/include/c++/10.1.0/unordered_set
+-rw-r--r-- root root 14820 ./usr/include/c++/10.1.0/utility
+-rw-r--r-- root root 40362 ./usr/include/c++/10.1.0/valarray
+-rw-r--r-- root root 60701 ./usr/include/c++/10.1.0/variant
+-rw-r--r-- root root 4275 ./usr/include/c++/10.1.0/vector
+-rw-r--r-- root root 7706 ./usr/include/c++/10.1.0/version
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/x86_64-poky-linux
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits
+-rw-r--r-- root root 1518 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/atomic_word.h
+-rw-r--r-- root root 3575 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/basic_file.h
+-rw-r--r-- root root 1979 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/c++allocator.h
+-rw-r--r-- root root 61947 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/c++config.h
+-rw-r--r-- root root 1608 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/c++io.h
+-rw-r--r-- root root 3307 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/c++locale.h
+-rw-r--r-- root root 1333 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/cpu_defines.h
+-rw-r--r-- root root 2316 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/ctype_base.h
+-rw-r--r-- root root 2284 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/ctype_inline.h
+-rw-r--r-- root root 2096 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/cxxabi_tweaks.h
+-rw-r--r-- root root 5175 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/error_constants.h
+-rw-r--r-- root root 2628 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/extc++.h
+-rw-r--r-- root root 24260 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/gthr-default.h
+-rw-r--r-- root root 5608 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/gthr.h
+-rw-r--r-- root root 24260 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/gthr-posix.h
+-rw-r--r-- root root 6808 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/gthr-single.h
+-rw-r--r-- root root 4516 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/messages_members.h
+-rw-r--r-- root root 6194 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/opt_random.h
+-rw-r--r-- root root 2007 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/os_defines.h
+-rw-r--r-- root root 3286 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/stdc++.h
+-rw-r--r-- root root 1741 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/stdtr1c++.h
+-rw-r--r-- root root 2924 ./usr/include/c++/10.1.0/x86_64-poky-linux/bits/time_members.h
+drwxr-xr-x root root 4096 ./usr/include/c++/10.1.0/x86_64-poky-linux/ext
+-rw-r--r-- root root 4756 ./usr/include/c++/10.1.0/x86_64-poky-linux/ext/opt_random.h
+drwxr-xr-x root root 4096 ./usr/include/cairo
+-rw-r--r-- root root 8698 ./usr/include/cairo/cairo-deprecated.h
+-rw-r--r-- root root 1460 ./usr/include/cairo/cairo-features.h
+-rw-r--r-- root root 3721 ./usr/include/cairo/cairo-ft.h
+-rw-r--r-- root root 5117 ./usr/include/cairo/cairo-gl.h
+-rw-r--r-- root root 6452 ./usr/include/cairo/cairo-gobject.h
+-rw-r--r-- root root 110955 ./usr/include/cairo/cairo.h
+-rw-r--r-- root root 5617 ./usr/include/cairo/cairo-pdf.h
+-rw-r--r-- root root 3632 ./usr/include/cairo/cairo-ps.h
+-rw-r--r-- root root 3072 ./usr/include/cairo/cairo-script.h
+-rw-r--r-- root root 4059 ./usr/include/cairo/cairo-script-interpreter.h
+-rw-r--r-- root root 4504 ./usr/include/cairo/cairo-svg.h
+-rw-r--r-- root root 2173 ./usr/include/cairo/cairo-tee.h
+-rw-r--r-- root root 148 ./usr/include/cairo/cairo-version.h
+-rw-r--r-- root root 3775 ./usr/include/cairo/cairo-xcb.h
+-rw-r--r-- root root 3577 ./usr/include/cairo/cairo-xlib.h
+-rw-r--r-- root root 2436 ./usr/include/cairo/cairo-xlib-xrender.h
+-rw-r--r-- root root 3198 ./usr/include/cap-ng.h
+-rw-r--r-- root root 2118 ./usr/include/com_err.h
+-rw-r--r-- root root 7164 ./usr/include/complex.h
+-rw-r--r-- root root 2268 ./usr/include/cpio.h
+-rw-r--r-- root root 11160 ./usr/include/crypt.h
+-rw-r--r-- root root 19025 ./usr/include/ctf-api.h
+-rw-r--r-- root root 25153 ./usr/include/ctf.h
+-rw-r--r-- root root 10969 ./usr/include/ctype.h
+-rw-r--r-- root root 100249 ./usr/include/curses-64.h
+-rw-r--r-- root root 6878 ./usr/include/cursesapp.h
+-rw-r--r-- root root 28021 ./usr/include/cursesf.h
+-rw-r--r-- root root 512 ./usr/include/curses.h
+-rw-r--r-- root root 19874 ./usr/include/cursesm.h
+-rw-r--r-- root root 8722 ./usr/include/cursesp.h
+-rw-r--r-- root root 49871 ./usr/include/cursesw.h
+-rw-r--r-- root root 7407 ./usr/include/cursslk.h
+drwxr-xr-x root root 4096 ./usr/include/db51
+-rw-r--r-- root root 49057 ./usr/include/db51/db_cxx.h
+-rw-r--r-- root root 123105 ./usr/include/db51/db.h
+lrwxrwxrwx root root 13 ./usr/include/db_cxx.h -> db51/db_cxx.h
+lrwxrwxrwx root root 9 ./usr/include/db.h -> db51/db.h
+-rw-r--r-- root root 1414 ./usr/include/dbm.h
+drwxr-xr-x root root 4096 ./usr/include/dbus-1.0
+drwxr-xr-x root root 4096 ./usr/include/dbus-1.0/dbus
+-rw-r--r-- root root 2812 ./usr/include/dbus-1.0/dbus/dbus-address.h
+-rw-r--r-- root root 3472 ./usr/include/dbus-1.0/dbus/dbus-bus.h
+-rw-r--r-- root root 27020 ./usr/include/dbus-1.0/dbus/dbus-connection.h
+-rw-r--r-- root root 2911 ./usr/include/dbus-1.0/dbus/dbus-errors.h
+-rw-r--r-- root root 3963 ./usr/include/dbus-1.0/dbus/dbus.h
+-rw-r--r-- root root 6757 ./usr/include/dbus-1.0/dbus/dbus-macros.h
+-rw-r--r-- root root 1963 ./usr/include/dbus-1.0/dbus/dbus-memory.h
+-rw-r--r-- root root 15005 ./usr/include/dbus-1.0/dbus/dbus-message.h
+-rw-r--r-- root root 1813 ./usr/include/dbus-1.0/dbus/dbus-misc.h
+-rw-r--r-- root root 3811 ./usr/include/dbus-1.0/dbus/dbus-pending-call.h
+-rw-r--r-- root root 23642 ./usr/include/dbus-1.0/dbus/dbus-protocol.h
+-rw-r--r-- root root 4045 ./usr/include/dbus-1.0/dbus/dbus-python.h
+-rw-r--r-- root root 5414 ./usr/include/dbus-1.0/dbus/dbus-server.h
+-rw-r--r-- root root 5394 ./usr/include/dbus-1.0/dbus/dbus-shared.h
+-rw-r--r-- root root 3049 ./usr/include/dbus-1.0/dbus/dbus-signature.h
+-rw-r--r-- root root 2359 ./usr/include/dbus-1.0/dbus/dbus-syntax.h
+-rw-r--r-- root root 8507 ./usr/include/dbus-1.0/dbus/dbus-threads.h
+-rw-r--r-- root root 4145 ./usr/include/dbus-1.0/dbus/dbus-types.h
+-rw-r--r-- root root 3332 ./usr/include/diagnostics.h
+-rw-r--r-- root root 12515 ./usr/include/dirent.h
+-rw-r--r-- root root 16687 ./usr/include/dis-asm.h
+-rw-r--r-- root root 7479 ./usr/include/dlfcn.h
+drwxr-xr-x root root 4096 ./usr/include/drm
+-rw-r--r-- root root 31894 ./usr/include/drm/amdgpu_drm.h
+-rw-r--r-- root root 1212 ./usr/include/drm/armada_drm.h
+-rw-r--r-- root root 32817 ./usr/include/drm/drm_fourcc.h
+-rw-r--r-- root root 32129 ./usr/include/drm/drm.h
+-rw-r--r-- root root 28604 ./usr/include/drm/drm_mode.h
+-rw-r--r-- root root 2782 ./usr/include/drm/drm_sarea.h
+-rw-r--r-- root root 11822 ./usr/include/drm/etnaviv_drm.h
+-rw-r--r-- root root 11132 ./usr/include/drm/exynos_drm.h
+-rw-r--r-- root root 10061 ./usr/include/drm/i810_drm.h
+-rw-r--r-- root root 70507 ./usr/include/drm/i915_drm.h
+-rw-r--r-- root root 4817 ./usr/include/drm/lima_drm.h
+-rw-r--r-- root root 13010 ./usr/include/drm/mga_drm.h
+-rw-r--r-- root root 13230 ./usr/include/drm/msm_drm.h
+-rw-r--r-- root root 6560 ./usr/include/drm/nouveau_drm.h
+-rw-r--r-- root root 4141 ./usr/include/drm/omap_drm.h
+-rw-r--r-- root root 7346 ./usr/include/drm/panfrost_drm.h
+-rw-r--r-- root root 4131 ./usr/include/drm/qxl_drm.h
+-rw-r--r-- root root 10000 ./usr/include/drm/r128_drm.h
+-rw-r--r-- root root 38236 ./usr/include/drm/radeon_drm.h
+-rw-r--r-- root root 7170 ./usr/include/drm/savage_drm.h
+-rw-r--r-- root root 2637 ./usr/include/drm/sis_drm.h
+-rw-r--r-- root root 14877 ./usr/include/drm/tegra_drm.h
+-rw-r--r-- root root 8671 ./usr/include/drm/v3d_drm.h
+-rw-r--r-- root root 14457 ./usr/include/drm/vc4_drm.h
+-rw-r--r-- root root 1971 ./usr/include/drm/vgem_drm.h
+-rw-r--r-- root root 8345 ./usr/include/drm/via_drm.h
+-rw-r--r-- root root 5010 ./usr/include/drm/virtgpu_drm.h
+-rw-r--r-- root root 35392 ./usr/include/drm/vmwgfx_drm.h
+-rw-r--r-- root root 31014 ./usr/include/dwarf.h
+drwxr-xr-x root root 4096 ./usr/include/e2p
+-rw-r--r-- root root 3252 ./usr/include/e2p/e2p.h
+-rw-r--r-- root root 180099 ./usr/include/elf.h
+drwxr-xr-x root root 4096 ./usr/include/elfutils
+-rw-r--r-- root root 3947 ./usr/include/elfutils/elf-knowledge.h
+-rw-r--r-- root root 41860 ./usr/include/elfutils/known-dwarf.h
+-rw-r--r-- root root 7098 ./usr/include/elfutils/libasm.h
+-rw-r--r-- root root 6452 ./usr/include/elfutils/libdwelf.h
+-rw-r--r-- root root 37558 ./usr/include/elfutils/libdwfl.h
+-rw-r--r-- root root 44920 ./usr/include/elfutils/libdw.h
+-rw-r--r-- root root 1274 ./usr/include/elfutils/version.h
+-rw-r--r-- root root 2299 ./usr/include/endian.h
+-rw-r--r-- root root 2867 ./usr/include/envz.h
+-rw-r--r-- root root 2267 ./usr/include/err.h
+-rw-r--r-- root root 1679 ./usr/include/errno.h
+-rw-r--r-- root root 2282 ./usr/include/error.h
+drwxr-xr-x root root 4096 ./usr/include/et
+-rw-r--r-- root root 2118 ./usr/include/et/com_err.h
+-rw-r--r-- root root 2969 ./usr/include/eti.h
+-rw-r--r-- root root 9775 ./usr/include/etip.h
+-rw-r--r-- root root 1523 ./usr/include/execinfo.h
+-rw-r--r-- root root 3830 ./usr/include/expat_config.h
+-rw-r--r-- root root 5528 ./usr/include/expat_external.h
+-rw-r--r-- root root 41473 ./usr/include/expat.h
+drwxr-xr-x root root 4096 ./usr/include/ext2fs
+-rw-r--r-- root root 22148 ./usr/include/ext2fs/bitops.h
+-rw-r--r-- root root 11847 ./usr/include/ext2fs/ext2_err.h
+-rw-r--r-- root root 2644 ./usr/include/ext2fs/ext2_ext_attr.h
+-rw-r--r-- root root 42075 ./usr/include/ext2fs/ext2_fs.h
+-rw-r--r-- root root 72208 ./usr/include/ext2fs/ext2fs.h
+-rw-r--r-- root root 5391 ./usr/include/ext2fs/ext2_io.h
+-rw-r--r-- root root 4212 ./usr/include/ext2fs/ext2_types-64.h
+-rw-r--r-- root root 556 ./usr/include/ext2fs/ext2_types.h
+-rw-r--r-- root root 4558 ./usr/include/ext2fs/ext3_extents.h
+-rw-r--r-- root root 1179 ./usr/include/ext2fs/hashmap.h
+-rw-r--r-- root root 2588 ./usr/include/ext2fs/qcow2.h
+-rw-r--r-- root root 8871 ./usr/include/ext2fs/tdb.h
+-rw-r--r-- root root 11026 ./usr/include/fcntl.h
+-rw-r--r-- root root 17235 ./usr/include/features.h
+-rw-r--r-- root root 5874 ./usr/include/fenv.h
+-rw-r--r-- root root 13934 ./usr/include/ffi-64.h
+-rw-r--r-- root root 500 ./usr/include/ffi.h
+-rw-r--r-- root root 4343 ./usr/include/ffitarget.h
+drwxr-xr-x root root 4096 ./usr/include/finclude
+-rw-r--r-- root root 2384 ./usr/include/finclude/math-vector-fortran.h
+-rw-r--r-- root root 6893 ./usr/include/FlexLexer.h
+-rw-r--r-- root root 3240 ./usr/include/fmtmsg.h
+-rw-r--r-- root root 2296 ./usr/include/fnmatch.h
+drwxr-xr-x root root 4096 ./usr/include/fontconfig
+-rw-r--r-- root root 1958 ./usr/include/fontconfig/fcfreetype.h
+-rw-r--r-- root root 4489 ./usr/include/fontconfig/fcprivate.h
+-rw-r--r-- root root 28461 ./usr/include/fontconfig/fontconfig.h
+-rw-r--r-- root root 18811 ./usr/include/form.h
+-rw-r--r-- root root 3584 ./usr/include/fpu_control.h
+drwxr-xr-x root root 4096 ./usr/include/freedreno
+-rw-r--r-- root root 4992 ./usr/include/freedreno/freedreno_drmif.h
+-rw-r--r-- root root 4963 ./usr/include/freedreno/freedreno_ringbuffer.h
+drwxr-xr-x root root 4096 ./usr/include/freetype2
+drwxr-xr-x root root 4096 ./usr/include/freetype2/freetype
+drwxr-xr-x root root 4096 ./usr/include/freetype2/freetype/config
+-rw-r--r-- root root 19859 ./usr/include/freetype2/freetype/config/ftconfig-64.h
+-rw-r--r-- root root 624 ./usr/include/freetype2/freetype/config/ftconfig.h
+-rw-r--r-- root root 23228 ./usr/include/freetype2/freetype/config/ftheader.h
+-rw-r--r-- root root 1056 ./usr/include/freetype2/freetype/config/ftmodule.h
+-rw-r--r-- root root 39330 ./usr/include/freetype2/freetype/config/ftoption.h
+-rw-r--r-- root root 4307 ./usr/include/freetype2/freetype/config/ftstdlib.h
+-rw-r--r-- root root 165664 ./usr/include/freetype2/freetype/freetype.h
+-rw-r--r-- root root 5479 ./usr/include/freetype2/freetype/ftadvanc.h
+-rw-r--r-- root root 2652 ./usr/include/freetype2/freetype/ftbbox.h
+-rw-r--r-- root root 5336 ./usr/include/freetype2/freetype/ftbdf.h
+-rw-r--r-- root root 9055 ./usr/include/freetype2/freetype/ftbitmap.h
+-rw-r--r-- root root 2745 ./usr/include/freetype2/freetype/ftbzip2.h
+-rw-r--r-- root root 33870 ./usr/include/freetype2/freetype/ftcache.h
+-rw-r--r-- root root 2510 ./usr/include/freetype2/freetype/ftchapters.h
+-rw-r--r-- root root 4036 ./usr/include/freetype2/freetype/ftcid.h
+-rw-r--r-- root root 8927 ./usr/include/freetype2/freetype/ftcolor.h
+-rw-r--r-- root root 47451 ./usr/include/freetype2/freetype/ftdriver.h
+-rw-r--r-- root root 12336 ./usr/include/freetype2/freetype/fterrdef.h
+-rw-r--r-- root root 8904 ./usr/include/freetype2/freetype/fterrors.h
+-rw-r--r-- root root 2227 ./usr/include/freetype2/freetype/ftfntfmt.h
+-rw-r--r-- root root 4152 ./usr/include/freetype2/freetype/ftgasp.h
+-rw-r--r-- root root 18505 ./usr/include/freetype2/freetype/ftglyph.h
+-rw-r--r-- root root 10639 ./usr/include/freetype2/freetype/ftgxval.h
+-rw-r--r-- root root 4170 ./usr/include/freetype2/freetype/ftgzip.h
+-rw-r--r-- root root 39169 ./usr/include/freetype2/freetype/ftimage.h
+-rw-r--r-- root root 10322 ./usr/include/freetype2/freetype/ftincrem.h
+-rw-r--r-- root root 11969 ./usr/include/freetype2/freetype/ftlcdfil.h
+-rw-r--r-- root root 7114 ./usr/include/freetype2/freetype/ftlist.h
+-rw-r--r-- root root 2726 ./usr/include/freetype2/freetype/ftlzw.h
+-rw-r--r-- root root 7793 ./usr/include/freetype2/freetype/ftmac.h
+-rw-r--r-- root root 21811 ./usr/include/freetype2/freetype/ftmm.h
+-rw-r--r-- root root 21820 ./usr/include/freetype2/freetype/ftmodapi.h
+-rw-r--r-- root root 6598 ./usr/include/freetype2/freetype/ftmoderr.h
+-rw-r--r-- root root 5360 ./usr/include/freetype2/freetype/ftotval.h
+-rw-r--r-- root root 17476 ./usr/include/freetype2/freetype/ftoutln.h
+-rw-r--r-- root root 5606 ./usr/include/freetype2/freetype/ftparams.h
+-rw-r--r-- root root 4924 ./usr/include/freetype2/freetype/ftpfr.h
+-rw-r--r-- root root 6627 ./usr/include/freetype2/freetype/ftrender.h
+-rw-r--r-- root root 4302 ./usr/include/freetype2/freetype/ftsizes.h
+-rw-r--r-- root root 7742 ./usr/include/freetype2/freetype/ftsnames.h
+-rw-r--r-- root root 21778 ./usr/include/freetype2/freetype/ftstroke.h
+-rw-r--r-- root root 3376 ./usr/include/freetype2/freetype/ftsynth.h
+-rw-r--r-- root root 8540 ./usr/include/freetype2/freetype/ftsystem.h
+-rw-r--r-- root root 7403 ./usr/include/freetype2/freetype/fttrigon.h
+-rw-r--r-- root root 14467 ./usr/include/freetype2/freetype/fttypes.h
+-rw-r--r-- root root 7980 ./usr/include/freetype2/freetype/ftwinfnt.h
+-rw-r--r-- root root 22843 ./usr/include/freetype2/freetype/t1tables.h
+-rw-r--r-- root root 58791 ./usr/include/freetype2/freetype/ttnameid.h
+-rw-r--r-- root root 25245 ./usr/include/freetype2/freetype/tttables.h
+-rw-r--r-- root root 5106 ./usr/include/freetype2/freetype/tttags.h
+-rw-r--r-- root root 1111 ./usr/include/freetype2/ft2build.h
+-rw-r--r-- root root 3111 ./usr/include/fstab.h
+-rw-r--r-- root root 8373 ./usr/include/fts.h
+-rw-r--r-- root root 5252 ./usr/include/ftw.h
+-rw-r--r-- root root 40645 ./usr/include/gawkapi.h
+-rw-r--r-- root root 4211 ./usr/include/gconv.h
+drwxr-xr-x root root 4096 ./usr/include/gdbm
+lrwxrwxrwx root root 9 ./usr/include/gdbm/gdbm.h -> ../gdbm.h
+-rw-r--r-- root root 10345 ./usr/include/gdbm.h
+lrwxrwxrwx root root 9 ./usr/include/gdbm/ndbm.h -> ../ndbm.h
+-rw-r--r-- root root 11312 ./usr/include/gelf.h
+-rw-r--r-- root root 1469 ./usr/include/getopt.h
+drwxr-xr-x root root 4096 ./usr/include/gio-unix-2.0
+drwxr-xr-x root root 4096 ./usr/include/gio-unix-2.0/gio
+-rw-r--r-- root root 8679 ./usr/include/gio-unix-2.0/gio/gdesktopappinfo.h
+-rw-r--r-- root root 2218 ./usr/include/gio-unix-2.0/gio/gfiledescriptorbased.h
+-rw-r--r-- root root 5761 ./usr/include/gio-unix-2.0/gio/gunixconnection.h
+-rw-r--r-- root root 3197 ./usr/include/gio-unix-2.0/gio/gunixcredentialsmessage.h
+-rw-r--r-- root root 4245 ./usr/include/gio-unix-2.0/gio/gunixfdlist.h
+-rw-r--r-- root root 3767 ./usr/include/gio-unix-2.0/gio/gunixfdmessage.h
+-rw-r--r-- root root 3018 ./usr/include/gio-unix-2.0/gio/gunixinputstream.h
+-rw-r--r-- root root 7349 ./usr/include/gio-unix-2.0/gio/gunixmounts.h
+-rw-r--r-- root root 3050 ./usr/include/gio-unix-2.0/gio/gunixoutputstream.h
+-rw-r--r-- root root 3424 ./usr/include/gio-unix-2.0/gio/gunixsocketaddress.h
+drwxr-xr-x root root 4096 ./usr/include/GL
+-rw-r--r-- root root 421419 ./usr/include/GL/glcorearb.h
+-rw-r--r-- root root 848217 ./usr/include/GL/glext.h
+-rw-r--r-- root root 80393 ./usr/include/GL/gl.h
+-rw-r--r-- root root 48752 ./usr/include/GL/glxext.h
+-rw-r--r-- root root 14578 ./usr/include/GL/glx.h
+-rw-r--r-- root root 4695 ./usr/include/GL/glxint.h
+-rw-r--r-- root root 2085 ./usr/include/GL/glxmd.h
+-rw-r--r-- root root 78531 ./usr/include/GL/glxproto.h
+-rw-r--r-- root root 11429 ./usr/include/GL/glxtokens.h
+drwxr-xr-x root root 4096 ./usr/include/glib-2.0
+drwxr-xr-x root root 4096 ./usr/include/glib-2.0/gio
+-rw-r--r-- root root 1768 ./usr/include/glib-2.0/gio/gactiongroupexporter.h
+-rw-r--r-- root root 9167 ./usr/include/glib-2.0/gio/gactiongroup.h
+-rw-r--r-- root root 4610 ./usr/include/glib-2.0/gio/gaction.h
+-rw-r--r-- root root 3996 ./usr/include/glib-2.0/gio/gactionmap.h
+-rw-r--r-- root root 19095 ./usr/include/glib-2.0/gio/gappinfo.h
+-rw-r--r-- root root 6168 ./usr/include/glib-2.0/gio/gapplicationcommandline.h
+-rw-r--r-- root root 14551 ./usr/include/glib-2.0/gio/gapplication.h
+-rw-r--r-- root root 4423 ./usr/include/glib-2.0/gio/gasyncinitable.h
+-rw-r--r-- root root 2818 ./usr/include/glib-2.0/gio/gasyncresult.h
+-rw-r--r-- root root 5229 ./usr/include/glib-2.0/gio/gbufferedinputstream.h
+-rw-r--r-- root root 3334 ./usr/include/glib-2.0/gio/gbufferedoutputstream.h
+-rw-r--r-- root root 1652 ./usr/include/glib-2.0/gio/gbytesicon.h
+-rw-r--r-- root root 4058 ./usr/include/glib-2.0/gio/gcancellable.h
+-rw-r--r-- root root 2518 ./usr/include/glib-2.0/gio/gcharsetconverter.h
+-rw-r--r-- root root 2971 ./usr/include/glib-2.0/gio/gcontenttype.h
+-rw-r--r-- root root 2885 ./usr/include/glib-2.0/gio/gconverter.h
+-rw-r--r-- root root 3015 ./usr/include/glib-2.0/gio/gconverterinputstream.h
+-rw-r--r-- root root 3054 ./usr/include/glib-2.0/gio/gconverteroutputstream.h
+-rw-r--r-- root root 3408 ./usr/include/glib-2.0/gio/gcredentials.h
+-rw-r--r-- root root 6661 ./usr/include/glib-2.0/gio/gdatagrambased.h
+-rw-r--r-- root root 11140 ./usr/include/glib-2.0/gio/gdatainputstream.h
+-rw-r--r-- root root 4923 ./usr/include/glib-2.0/gio/gdataoutputstream.h
+-rw-r--r-- root root 2739 ./usr/include/glib-2.0/gio/gdbusactiongroup.h
+-rw-r--r-- root root 2670 ./usr/include/glib-2.0/gio/gdbusaddress.h
+-rw-r--r-- root root 2130 ./usr/include/glib-2.0/gio/gdbusauthobserver.h
+-rw-r--r-- root root 38873 ./usr/include/glib-2.0/gio/gdbusconnection.h
+-rw-r--r-- root root 4306 ./usr/include/glib-2.0/gio/gdbuserror.h
+-rw-r--r-- root root 3069 ./usr/include/glib-2.0/gio/gdbusinterface.h
+-rw-r--r-- root root 6055 ./usr/include/glib-2.0/gio/gdbusinterfaceskeleton.h
+-rw-r--r-- root root 12393 ./usr/include/glib-2.0/gio/gdbusintrospection.h
+-rw-r--r-- root root 1730 ./usr/include/glib-2.0/gio/gdbusmenumodel.h
+-rw-r--r-- root root 11383 ./usr/include/glib-2.0/gio/gdbusmessage.h
+-rw-r--r-- root root 5801 ./usr/include/glib-2.0/gio/gdbusmethodinvocation.h
+-rw-r--r-- root root 4877 ./usr/include/glib-2.0/gio/gdbusnameowning.h
+-rw-r--r-- root root 4521 ./usr/include/glib-2.0/gio/gdbusnamewatching.h
+-rw-r--r-- root root 2941 ./usr/include/glib-2.0/gio/gdbusobject.h
+-rw-r--r-- root root 9800 ./usr/include/glib-2.0/gio/gdbusobjectmanagerclient.h
+-rw-r--r-- root root 4474 ./usr/include/glib-2.0/gio/gdbusobjectmanager.h
+-rw-r--r-- root root 4120 ./usr/include/glib-2.0/gio/gdbusobjectmanagerserver.h
+-rw-r--r-- root root 2635 ./usr/include/glib-2.0/gio/gdbusobjectproxy.h
+-rw-r--r-- root root 3957 ./usr/include/glib-2.0/gio/gdbusobjectskeleton.h
+-rw-r--r-- root root 12082 ./usr/include/glib-2.0/gio/gdbusproxy.h
+-rw-r--r-- root root 2534 ./usr/include/glib-2.0/gio/gdbusserver.h
+-rw-r--r-- root root 1779 ./usr/include/glib-2.0/gio/gdbusutils.h
+-rw-r--r-- root root 14503 ./usr/include/glib-2.0/gio/gdrive.h
+-rw-r--r-- root root 3197 ./usr/include/glib-2.0/gio/gdtlsclientconnection.h
+-rw-r--r-- root root 11430 ./usr/include/glib-2.0/gio/gdtlsconnection.h
+-rw-r--r-- root root 2446 ./usr/include/glib-2.0/gio/gdtlsserverconnection.h
+-rw-r--r-- root root 2788 ./usr/include/glib-2.0/gio/gemblemedicon.h
+-rw-r--r-- root root 2155 ./usr/include/glib-2.0/gio/gemblem.h
+-rw-r--r-- root root 2801 ./usr/include/glib-2.0/gio/gfileattribute.h
+-rw-r--r-- root root 6393 ./usr/include/glib-2.0/gio/gfileenumerator.h
+-rw-r--r-- root root 79870 ./usr/include/glib-2.0/gio/gfile.h
+-rw-r--r-- root root 1959 ./usr/include/glib-2.0/gio/gfileicon.h
+-rw-r--r-- root root 44335 ./usr/include/glib-2.0/gio/gfileinfo.h
+-rw-r--r-- root root 4656 ./usr/include/glib-2.0/gio/gfileinputstream.h
+-rw-r--r-- root root 5041 ./usr/include/glib-2.0/gio/gfileiostream.h
+-rw-r--r-- root root 3280 ./usr/include/glib-2.0/gio/gfilemonitor.h
+-rw-r--r-- root root 3090 ./usr/include/glib-2.0/gio/gfilenamecompleter.h
+-rw-r--r-- root root 5338 ./usr/include/glib-2.0/gio/gfileoutputstream.h
+-rw-r--r-- root root 2832 ./usr/include/glib-2.0/gio/gfilterinputstream.h
+-rw-r--r-- root root 2875 ./usr/include/glib-2.0/gio/gfilteroutputstream.h
+-rw-r--r-- root root 3435 ./usr/include/glib-2.0/gio/gicon.h
+-rw-r--r-- root root 4529 ./usr/include/glib-2.0/gio/ginetaddress.h
+-rw-r--r-- root root 3119 ./usr/include/glib-2.0/gio/ginetaddressmask.h
+-rw-r--r-- root root 3111 ./usr/include/glib-2.0/gio/ginetsocketaddress.h
+-rw-r--r-- root root 2976 ./usr/include/glib-2.0/gio/ginitable.h
+-rw-r--r-- root root 9188 ./usr/include/glib-2.0/gio/ginputstream.h
+-rw-r--r-- root root 9066 ./usr/include/glib-2.0/gio/gio-autocleanups.h
+-rw-r--r-- root root 76503 ./usr/include/glib-2.0/gio/gioenums.h
+-rw-r--r-- root root 12517 ./usr/include/glib-2.0/gio/gioenumtypes.h
+-rw-r--r-- root root 1558 ./usr/include/glib-2.0/gio/gioerror.h
+-rw-r--r-- root root 5646 ./usr/include/glib-2.0/gio/gio.h
+-rw-r--r-- root root 8064 ./usr/include/glib-2.0/gio/giomodule.h
+-rw-r--r-- root root 1999 ./usr/include/glib-2.0/gio/gioscheduler.h
+-rw-r--r-- root root 4862 ./usr/include/glib-2.0/gio/giostream.h
+-rw-r--r-- root root 24681 ./usr/include/glib-2.0/gio/giotypes.h
+-rw-r--r-- root root 2576 ./usr/include/glib-2.0/gio/glistmodel.h
+-rw-r--r-- root root 4178 ./usr/include/glib-2.0/gio/gliststore.h
+-rw-r--r-- root root 3671 ./usr/include/glib-2.0/gio/gloadableicon.h
+-rw-r--r-- root root 3434 ./usr/include/glib-2.0/gio/gmemoryinputstream.h
+-rw-r--r-- root root 2140 ./usr/include/glib-2.0/gio/gmemorymonitor.h
+-rw-r--r-- root root 3933 ./usr/include/glib-2.0/gio/gmemoryoutputstream.h
+-rw-r--r-- root root 1611 ./usr/include/glib-2.0/gio/gmenuexporter.h
+-rw-r--r-- root root 8940 ./usr/include/glib-2.0/gio/gmenu.h
+-rw-r--r-- root root 14334 ./usr/include/glib-2.0/gio/gmenumodel.h
+-rw-r--r-- root root 15791 ./usr/include/glib-2.0/gio/gmount.h
+-rw-r--r-- root root 6765 ./usr/include/glib-2.0/gio/gmountoperation.h
+-rw-r--r-- root root 2536 ./usr/include/glib-2.0/gio/gnativesocketaddress.h
+-rw-r--r-- root root 2270 ./usr/include/glib-2.0/gio/gnativevolumemonitor.h
+-rw-r--r-- root root 2956 ./usr/include/glib-2.0/gio/gnetworkaddress.h
+-rw-r--r-- root root 1994 ./usr/include/glib-2.0/gio/gnetworking.h
+-rw-r--r-- root root 4239 ./usr/include/glib-2.0/gio/gnetworkmonitor.h
+-rw-r--r-- root root 2756 ./usr/include/glib-2.0/gio/gnetworkservice.h
+-rw-r--r-- root root 4898 ./usr/include/glib-2.0/gio/gnotification.h
+-rw-r--r-- root root 15760 ./usr/include/glib-2.0/gio/goutputstream.h
+-rw-r--r-- root root 5862 ./usr/include/glib-2.0/gio/gpermission.h
+-rw-r--r-- root root 3829 ./usr/include/glib-2.0/gio/gpollableinputstream.h
+-rw-r--r-- root root 4919 ./usr/include/glib-2.0/gio/gpollableoutputstream.h
+-rw-r--r-- root root 2134 ./usr/include/glib-2.0/gio/gpollableutils.h
+-rw-r--r-- root root 1994 ./usr/include/glib-2.0/gio/gpropertyaction.h
+-rw-r--r-- root root 2939 ./usr/include/glib-2.0/gio/gproxyaddressenumerator.h
+-rw-r--r-- root root 3166 ./usr/include/glib-2.0/gio/gproxyaddress.h
+-rw-r--r-- root root 4067 ./usr/include/glib-2.0/gio/gproxy.h
+-rw-r--r-- root root 3393 ./usr/include/glib-2.0/gio/gproxyresolver.h
+-rw-r--r-- root root 3635 ./usr/include/glib-2.0/gio/gremoteactiongroup.h
+-rw-r--r-- root root 16852 ./usr/include/glib-2.0/gio/gresolver.h
+-rw-r--r-- root root 4651 ./usr/include/glib-2.0/gio/gresource.h
+-rw-r--r-- root root 3280 ./usr/include/glib-2.0/gio/gseekable.h
+-rw-r--r-- root root 8508 ./usr/include/glib-2.0/gio/gsettingsbackend.h
+-rw-r--r-- root root 21148 ./usr/include/glib-2.0/gio/gsettings.h
+-rw-r--r-- root root 5933 ./usr/include/glib-2.0/gio/gsettingsschema.h
+-rw-r--r-- root root 4355 ./usr/include/glib-2.0/gio/gsimpleactiongroup.h
+-rw-r--r-- root root 2915 ./usr/include/glib-2.0/gio/gsimpleaction.h
+-rw-r--r-- root root 7809 ./usr/include/glib-2.0/gio/gsimpleasyncresult.h
+-rw-r--r-- root root 1722 ./usr/include/glib-2.0/gio/gsimpleiostream.h
+-rw-r--r-- root root 1686 ./usr/include/glib-2.0/gio/gsimplepermission.h
+-rw-r--r-- root root 3531 ./usr/include/glib-2.0/gio/gsimpleproxyresolver.h
+-rw-r--r-- root root 3897 ./usr/include/glib-2.0/gio/gsocketaddressenumerator.h
+-rw-r--r-- root root 3086 ./usr/include/glib-2.0/gio/gsocketaddress.h
+-rw-r--r-- root root 11211 ./usr/include/glib-2.0/gio/gsocketclient.h
+-rw-r--r-- root root 2886 ./usr/include/glib-2.0/gio/gsocketconnectable.h
+-rw-r--r-- root root 5056 ./usr/include/glib-2.0/gio/gsocketconnection.h
+-rw-r--r-- root root 4886 ./usr/include/glib-2.0/gio/gsocketcontrolmessage.h
+-rw-r--r-- root root 16181 ./usr/include/glib-2.0/gio/gsocket.h
+-rw-r--r-- root root 7680 ./usr/include/glib-2.0/gio/gsocketlistener.h
+-rw-r--r-- root root 3620 ./usr/include/glib-2.0/gio/gsocketservice.h
+-rw-r--r-- root root 1936 ./usr/include/glib-2.0/gio/gsrvtarget.h
+-rw-r--r-- root root 8606 ./usr/include/glib-2.0/gio/gsubprocess.h
+-rw-r--r-- root root 6399 ./usr/include/glib-2.0/gio/gsubprocesslauncher.h
+-rw-r--r-- root root 8278 ./usr/include/glib-2.0/gio/gtask.h
+-rw-r--r-- root root 2957 ./usr/include/glib-2.0/gio/gtcpconnection.h
+-rw-r--r-- root root 2973 ./usr/include/glib-2.0/gio/gtcpwrapperconnection.h
+-rw-r--r-- root root 2303 ./usr/include/glib-2.0/gio/gtestdbus.h
+-rw-r--r-- root root 2643 ./usr/include/glib-2.0/gio/gthemedicon.h
+-rw-r--r-- root root 3665 ./usr/include/glib-2.0/gio/gthreadedsocketservice.h
+-rw-r--r-- root root 4587 ./usr/include/glib-2.0/gio/gtlsbackend.h
+-rw-r--r-- root root 3505 ./usr/include/glib-2.0/gio/gtlscertificate.h
+-rw-r--r-- root root 3683 ./usr/include/glib-2.0/gio/gtlsclientconnection.h
+-rw-r--r-- root root 6575 ./usr/include/glib-2.0/gio/gtlsconnection.h
+-rw-r--r-- root root 17271 ./usr/include/glib-2.0/gio/gtlsdatabase.h
+-rw-r--r-- root root 1909 ./usr/include/glib-2.0/gio/gtlsfiledatabase.h
+-rw-r--r-- root root 8333 ./usr/include/glib-2.0/gio/gtlsinteraction.h
+-rw-r--r-- root root 4818 ./usr/include/glib-2.0/gio/gtlspassword.h
+-rw-r--r-- root root 2348 ./usr/include/glib-2.0/gio/gtlsserverconnection.h
+-rw-r--r-- root root 6616 ./usr/include/glib-2.0/gio/gvfs.h
+-rw-r--r-- root root 11736 ./usr/include/glib-2.0/gio/gvolume.h
+-rw-r--r-- root root 5998 ./usr/include/glib-2.0/gio/gvolumemonitor.h
+-rw-r--r-- root root 2350 ./usr/include/glib-2.0/gio/gzlibcompressor.h
+-rw-r--r-- root root 2212 ./usr/include/glib-2.0/gio/gzlibdecompressor.h
+drwxr-xr-x root root 4096 ./usr/include/glib-2.0/glib
+drwxr-xr-x root root 4096 ./usr/include/glib-2.0/glib/deprecated
+-rw-r--r-- root root 3256 ./usr/include/glib-2.0/glib/deprecated/gallocator.h
+-rw-r--r-- root root 2987 ./usr/include/glib-2.0/glib/deprecated/gcache.h
+-rw-r--r-- root root 2922 ./usr/include/glib-2.0/glib/deprecated/gcompletion.h
+-rw-r--r-- root root 4392 ./usr/include/glib-2.0/glib/deprecated/gmain.h
+-rw-r--r-- root root 3682 ./usr/include/glib-2.0/glib/deprecated/grel.h
+-rw-r--r-- root root 10938 ./usr/include/glib-2.0/glib/deprecated/gthread.h
+-rw-r--r-- root root 3912 ./usr/include/glib-2.0/glib/galloca.h
+-rw-r--r-- root root 11385 ./usr/include/glib-2.0/glib/garray.h
+-rw-r--r-- root root 5726 ./usr/include/glib-2.0/glib/gasyncqueue.h
+-rw-r--r-- root root 23740 ./usr/include/glib-2.0/glib/gatomic.h
+-rw-r--r-- root root 2727 ./usr/include/glib-2.0/glib/gbacktrace.h
+-rw-r--r-- root root 2323 ./usr/include/glib-2.0/glib/gbase64.h
+-rw-r--r-- root root 2902 ./usr/include/glib-2.0/glib/gbitlock.h
+-rw-r--r-- root root 9596 ./usr/include/glib-2.0/glib/gbookmarkfile.h
+-rw-r--r-- root root 3334 ./usr/include/glib-2.0/glib/gbytes.h
+-rw-r--r-- root root 1578 ./usr/include/glib-2.0/glib/gcharset.h
+-rw-r--r-- root root 3864 ./usr/include/glib-2.0/glib/gchecksum.h
+-rw-r--r-- root root 5923 ./usr/include/glib-2.0/glib/gconvert.h
+-rw-r--r-- root root 6245 ./usr/include/glib-2.0/glib/gdataset.h
+-rw-r--r-- root root 12420 ./usr/include/glib-2.0/glib/gdate.h
+-rw-r--r-- root root 12738 ./usr/include/glib-2.0/glib/gdatetime.h
+-rw-r--r-- root root 1641 ./usr/include/glib-2.0/glib/gdir.h
+-rw-r--r-- root root 2364 ./usr/include/glib-2.0/glib/genviron.h
+-rw-r--r-- root root 3943 ./usr/include/glib-2.0/glib/gerror.h
+-rw-r--r-- root root 5813 ./usr/include/glib-2.0/glib/gfileutils.h
+-rw-r--r-- root root 2424 ./usr/include/glib-2.0/glib/ggettext.h
+-rw-r--r-- root root 7886 ./usr/include/glib-2.0/glib/ghash.h
+-rw-r--r-- root root 3469 ./usr/include/glib-2.0/glib/ghmac.h
+-rw-r--r-- root root 6358 ./usr/include/glib-2.0/glib/ghook.h
+-rw-r--r-- root root 1456 ./usr/include/glib-2.0/glib/ghostutils.h
+-rw-r--r-- root root 1167 ./usr/include/glib-2.0/glib/gi18n.h
+-rw-r--r-- root root 1370 ./usr/include/glib-2.0/glib/gi18n-lib.h
+-rw-r--r-- root root 13954 ./usr/include/glib-2.0/glib/giochannel.h
+-rw-r--r-- root root 14913 ./usr/include/glib-2.0/glib/gkeyfile.h
+-rw-r--r-- root root 4789 ./usr/include/glib-2.0/glib/glib-autocleanups.h
+-rw-r--r-- root root 6930 ./usr/include/glib-2.0/glib/glist.h
+-rw-r--r-- root root 42372 ./usr/include/glib-2.0/glib/gmacros.h
+-rw-r--r-- root root 28138 ./usr/include/glib-2.0/glib/gmain.h
+-rw-r--r-- root root 1986 ./usr/include/glib-2.0/glib/gmappedfile.h
+-rw-r--r-- root root 10876 ./usr/include/glib-2.0/glib/gmarkup.h
+-rw-r--r-- root root 14684 ./usr/include/glib-2.0/glib/gmem.h
+-rw-r--r-- root root 26913 ./usr/include/glib-2.0/glib/gmessages.h
+-rw-r--r-- root root 8700 ./usr/include/glib-2.0/glib/gnode.h
+-rw-r--r-- root root 16099 ./usr/include/glib-2.0/glib/goption.h
+-rw-r--r-- root root 1782 ./usr/include/glib-2.0/glib/gpattern.h
+-rw-r--r-- root root 4125 ./usr/include/glib-2.0/glib/gpoll.h
+-rw-r--r-- root root 1694 ./usr/include/glib-2.0/glib/gprimes.h
+-rw-r--r-- root root 1984 ./usr/include/glib-2.0/glib/gprintf.h
+-rw-r--r-- root root 1499 ./usr/include/glib-2.0/glib/gqsort.h
+-rw-r--r-- root root 2688 ./usr/include/glib-2.0/glib/gquark.h
+-rw-r--r-- root root 7750 ./usr/include/glib-2.0/glib/gqueue.h
+-rw-r--r-- root root 3182 ./usr/include/glib-2.0/glib/grand.h
+-rw-r--r-- root root 3764 ./usr/include/glib-2.0/glib/grcbox.h
+-rw-r--r-- root root 3988 ./usr/include/glib-2.0/glib/grefcount.h
+-rw-r--r-- root root 1868 ./usr/include/glib-2.0/glib/grefstring.h
+-rw-r--r-- root root 28095 ./usr/include/glib-2.0/glib/gregex.h
+-rw-r--r-- root root 8861 ./usr/include/glib-2.0/glib/gscanner.h
+-rw-r--r-- root root 8811 ./usr/include/glib-2.0/glib/gsequence.h
+-rw-r--r-- root root 1752 ./usr/include/glib-2.0/glib/gshell.h
+-rw-r--r-- root root 3892 ./usr/include/glib-2.0/glib/gslice.h
+-rw-r--r-- root root 6551 ./usr/include/glib-2.0/glib/gslist.h
+-rw-r--r-- root root 11874 ./usr/include/glib-2.0/glib/gspawn.h
+-rw-r--r-- root root 5109 ./usr/include/glib-2.0/glib/gstdio.h
+-rw-r--r-- root root 13232 ./usr/include/glib-2.0/glib/gstrfuncs.h
+-rw-r--r-- root root 2130 ./usr/include/glib-2.0/glib/gstringchunk.h
+-rw-r--r-- root root 8045 ./usr/include/glib-2.0/glib/gstring.h
+-rw-r--r-- root root 31435 ./usr/include/glib-2.0/glib/gtestutils.h
+-rw-r--r-- root root 17496 ./usr/include/glib-2.0/glib/gthread.h
+-rw-r--r-- root root 3824 ./usr/include/glib-2.0/glib/gthreadpool.h
+-rw-r--r-- root root 2576 ./usr/include/glib-2.0/glib/gtimer.h
+-rw-r--r-- root root 3723 ./usr/include/glib-2.0/glib/gtimezone.h
+-rw-r--r-- root root 1906 ./usr/include/glib-2.0/glib/gtrashstack.h
+-rw-r--r-- root root 4194 ./usr/include/glib-2.0/glib/gtree.h
+-rw-r--r-- root root 20493 ./usr/include/glib-2.0/glib/gtypes.h
+-rw-r--r-- root root 40690 ./usr/include/glib-2.0/glib/gunicode.h
+-rw-r--r-- root root 2716 ./usr/include/glib-2.0/glib/gurifuncs.h
+-rw-r--r-- root root 14564 ./usr/include/glib-2.0/glib/gutils.h
+-rw-r--r-- root root 1291 ./usr/include/glib-2.0/glib/guuid.h
+-rw-r--r-- root root 29560 ./usr/include/glib-2.0/glib/gvariant.h
+-rw-r--r-- root root 13244 ./usr/include/glib-2.0/glib/gvarianttype.h
+-rw-r--r-- root root 1981 ./usr/include/glib-2.0/glib/gversion.h
+-rw-r--r-- root root 40799 ./usr/include/glib-2.0/glib/gversionmacros.h
+-rw-r--r-- root root 4667 ./usr/include/glib-2.0/glib/gwin32.h
+-rw-r--r-- root root 3381 ./usr/include/glib-2.0/glib.h
+-rw-r--r-- root root 1462 ./usr/include/glib-2.0/glib-object.h
+-rw-r--r-- root root 4461 ./usr/include/glib-2.0/glib-unix.h
+-rw-r--r-- root root 4318 ./usr/include/glib-2.0/gmodule.h
+drwxr-xr-x root root 4096 ./usr/include/glib-2.0/gobject
+-rw-r--r-- root root 6342 ./usr/include/glib-2.0/gobject/gbinding.h
+-rw-r--r-- root root 3965 ./usr/include/glib-2.0/gobject/gboxed.h
+-rw-r--r-- root root 11053 ./usr/include/glib-2.0/gobject/gclosure.h
+-rw-r--r-- root root 8041 ./usr/include/glib-2.0/gobject/genums.h
+-rw-r--r-- root root 1026 ./usr/include/glib-2.0/gobject/glib-enumtypes.h
+-rw-r--r-- root root 8656 ./usr/include/glib-2.0/gobject/glib-types.h
+-rw-r--r-- root root 21841 ./usr/include/glib-2.0/gobject/gmarshal.h
+-rw-r--r-- root root 1382 ./usr/include/glib-2.0/gobject/gobject-autocleanups.h
+-rw-r--r-- root root 34088 ./usr/include/glib-2.0/gobject/gobject.h
+-rw-r--r-- root root 5516 ./usr/include/glib-2.0/gobject/gobjectnotifyqueue.c
+-rw-r--r-- root root 16431 ./usr/include/glib-2.0/gobject/gparam.h
+-rw-r--r-- root root 34850 ./usr/include/glib-2.0/gobject/gparamspecs.h
+-rw-r--r-- root root 24872 ./usr/include/glib-2.0/gobject/gsignal.h
+-rw-r--r-- root root 1275 ./usr/include/glib-2.0/gobject/gsourceclosure.h
+-rw-r--r-- root root 92450 ./usr/include/glib-2.0/gobject/gtype.h
+-rw-r--r-- root root 10837 ./usr/include/glib-2.0/gobject/gtypemodule.h
+-rw-r--r-- root root 4965 ./usr/include/glib-2.0/gobject/gtypeplugin.h
+-rw-r--r-- root root 3218 ./usr/include/glib-2.0/gobject/gvaluearray.h
+-rw-r--r-- root root 9817 ./usr/include/glib-2.0/gobject/gvaluecollector.h
+-rw-r--r-- root root 5656 ./usr/include/glib-2.0/gobject/gvalue.h
+-rw-r--r-- root root 9653 ./usr/include/glib-2.0/gobject/gvaluetypes.h
+drwxr-xr-x root root 4096 ./usr/include/GL/internal
+-rw-r--r-- root root 78637 ./usr/include/GL/internal/dri_interface.h
+-rw-r--r-- root root 6315 ./usr/include/GL/internal/glcore.h
+-rw-r--r-- root root 6617 ./usr/include/glob.h
+-rw-r--r-- root root 84177 ./usr/include/gmp-64.h
+-rw-r--r-- root root 500 ./usr/include/gmp.h
+-rw-r--r-- root root 129113 ./usr/include/gmpxx.h
+drwxr-xr-x root root 4096 ./usr/include/gnu
+-rw-r--r-- root root 1264 ./usr/include/gnu/libc-version.h
+-rw-r--r-- root root 1665 ./usr/include/gnu/lib-names-64.h
+-rw-r--r-- root root 467 ./usr/include/gnu/lib-names.h
+-rw-r--r-- root root 2912 ./usr/include/gnumake.h
+-rw-r--r-- root root 523 ./usr/include/gnu/stubs-64.h
+-rw-r--r-- root root 384 ./usr/include/gnu/stubs.h
+-rw-r--r-- root root 2343 ./usr/include/gnu-versions.h
+drwxr-xr-x root root 4096 ./usr/include/gobject-introspection-1.0
+-rw-r--r-- root root 2622 ./usr/include/gobject-introspection-1.0/giarginfo.h
+-rw-r--r-- root root 3275 ./usr/include/gobject-introspection-1.0/gibaseinfo.h
+-rw-r--r-- root root 4523 ./usr/include/gobject-introspection-1.0/gicallableinfo.h
+-rw-r--r-- root root 1769 ./usr/include/gobject-introspection-1.0/giconstantinfo.h
+-rw-r--r-- root root 2348 ./usr/include/gobject-introspection-1.0/gienuminfo.h
+-rw-r--r-- root root 2129 ./usr/include/gobject-introspection-1.0/gifieldinfo.h
+-rw-r--r-- root root 2877 ./usr/include/gobject-introspection-1.0/gifunctioninfo.h
+-rw-r--r-- root root 3418 ./usr/include/gobject-introspection-1.0/giinterfaceinfo.h
+-rw-r--r-- root root 6060 ./usr/include/gobject-introspection-1.0/giobjectinfo.h
+-rw-r--r-- root root 1685 ./usr/include/gobject-introspection-1.0/gipropertyinfo.h
+-rw-r--r-- root root 2363 ./usr/include/gobject-introspection-1.0/giregisteredtypeinfo.h
+-rw-r--r-- root root 8052 ./usr/include/gobject-introspection-1.0/girepository.h
+-rw-r--r-- root root 3468 ./usr/include/gobject-introspection-1.0/girffi.h
+-rw-r--r-- root root 1696 ./usr/include/gobject-introspection-1.0/gisignalinfo.h
+-rw-r--r-- root root 2403 ./usr/include/gobject-introspection-1.0/gistructinfo.h
+-rw-r--r-- root root 2556 ./usr/include/gobject-introspection-1.0/gitypeinfo.h
+-rw-r--r-- root root 2327 ./usr/include/gobject-introspection-1.0/gitypelib.h
+-rw-r--r-- root root 14019 ./usr/include/gobject-introspection-1.0/gitypes.h
+-rw-r--r-- root root 2558 ./usr/include/gobject-introspection-1.0/giunioninfo.h
+-rw-r--r-- root root 1578 ./usr/include/gobject-introspection-1.0/giversion.h
+-rw-r--r-- root root 5730 ./usr/include/gobject-introspection-1.0/giversionmacros.h
+-rw-r--r-- root root 2572 ./usr/include/gobject-introspection-1.0/givfuncinfo.h
+-rw-r--r-- root root 6687 ./usr/include/grp.h
+-rw-r--r-- root root 4529 ./usr/include/gshadow.h
+-rw-r--r-- root root 1858 ./usr/include/iconv.h
+-rw-r--r-- root root 4916 ./usr/include/ieee754.h
+-rw-r--r-- root root 2841 ./usr/include/ifaddrs.h
+-rw-r--r-- root root 2446 ./usr/include/initreq.h
+-rw-r--r-- root root 11893 ./usr/include/inttypes.h
+drwxr-xr-x root root 4096 ./usr/include/iproute2
+-rw-r--r-- root root 1271 ./usr/include/iproute2/bpf_elf.h
+-rw-r--r-- root root 17849 ./usr/include/langinfo.h
+-rw-r--r-- root root 126 ./usr/include/lastlog.h
+drwxr-xr-x root root 4096 ./usr/include/libdrm
+-rw-r--r-- root root 31894 ./usr/include/libdrm/amdgpu_drm.h
+-rw-r--r-- root root 55079 ./usr/include/libdrm/amdgpu.h
+-rw-r--r-- root root 32818 ./usr/include/libdrm/drm_fourcc.h
+-rw-r--r-- root root 32306 ./usr/include/libdrm/drm.h
+-rw-r--r-- root root 24920 ./usr/include/libdrm/drm_mode.h
+-rw-r--r-- root root 2782 ./usr/include/libdrm/drm_sarea.h
+-rw-r--r-- root root 6977 ./usr/include/libdrm/etnaviv_drmif.h
+-rw-r--r-- root root 62951 ./usr/include/libdrm/i915_drm.h
+-rw-r--r-- root root 5933 ./usr/include/libdrm/intel_aub.h
+-rw-r--r-- root root 12892 ./usr/include/libdrm/intel_bufmgr.h
+-rw-r--r-- root root 1585 ./usr/include/libdrm/intel_debug.h
+-rw-r--r-- root root 7895 ./usr/include/libdrm/mach64_drm.h
+-rw-r--r-- root root 13010 ./usr/include/libdrm/mga_drm.h
+-rw-r--r-- root root 12105 ./usr/include/libdrm/msm_drm.h
+drwxr-xr-x root root 4096 ./usr/include/libdrm/nouveau
+-rw-r--r-- root root 5699 ./usr/include/libdrm/nouveau_drm.h
+-rw-r--r-- root root 7766 ./usr/include/libdrm/nouveau/nouveau.h
+drwxr-xr-x root root 4096 ./usr/include/libdrm/nouveau/nvif
+-rw-r--r-- root root 1785 ./usr/include/libdrm/nouveau/nvif/cl0080.h
+-rw-r--r-- root root 2062 ./usr/include/libdrm/nouveau/nvif/cl9097.h
+-rw-r--r-- root root 8789 ./usr/include/libdrm/nouveau/nvif/class.h
+-rw-r--r-- root root 769 ./usr/include/libdrm/nouveau/nvif/if0002.h
+-rw-r--r-- root root 645 ./usr/include/libdrm/nouveau/nvif/if0003.h
+-rw-r--r-- root root 3174 ./usr/include/libdrm/nouveau/nvif/ioctl.h
+-rw-r--r-- root root 1551 ./usr/include/libdrm/nouveau/nvif/unpack.h
+-rw-r--r-- root root 2555 ./usr/include/libdrm/omap_drmif.h
+-rw-r--r-- root root 4131 ./usr/include/libdrm/qxl_drm.h
+-rw-r--r-- root root 10000 ./usr/include/libdrm/r128_drm.h
+-rw-r--r-- root root 16388 ./usr/include/libdrm/r600_pci_ids.h
+-rw-r--r-- root root 1991 ./usr/include/libdrm/radeon_bo_gem.h
+-rw-r--r-- root root 2839 ./usr/include/libdrm/radeon_bo.h
+-rw-r--r-- root root 1678 ./usr/include/libdrm/radeon_bo_int.h
+-rw-r--r-- root root 1601 ./usr/include/libdrm/radeon_cs_gem.h
+-rw-r--r-- root root 5121 ./usr/include/libdrm/radeon_cs.h
+-rw-r--r-- root root 2179 ./usr/include/libdrm/radeon_cs_int.h
+-rw-r--r-- root root 38317 ./usr/include/libdrm/radeon_drm.h
+-rw-r--r-- root root 5968 ./usr/include/libdrm/radeon_surface.h
+-rw-r--r-- root root 7170 ./usr/include/libdrm/savage_drm.h
+-rw-r--r-- root root 2633 ./usr/include/libdrm/sis_drm.h
+-rw-r--r-- root root 14877 ./usr/include/libdrm/tegra_drm.h
+-rw-r--r-- root root 14457 ./usr/include/libdrm/vc4_drm.h
+-rw-r--r-- root root 16906 ./usr/include/libdrm/vc4_packet.h
+-rw-r--r-- root root 8244 ./usr/include/libdrm/vc4_qpu_defines.h
+-rw-r--r-- root root 8372 ./usr/include/libdrm/via_drm.h
+-rw-r--r-- root root 5010 ./usr/include/libdrm/virtgpu_drm.h
+-rw-r--r-- root root 32085 ./usr/include/libdrm/vmwgfx_drm.h
+-rw-r--r-- root root 19573 ./usr/include/libelf.h
+drwxr-xr-x root root 4096 ./usr/include/libfdisk
+-rw-r--r-- root root 29857 ./usr/include/libfdisk/libfdisk.h
+-rw-r--r-- root root 1386 ./usr/include/libgen.h
+drwxr-xr-x root root 4096 ./usr/include/libiberty
+-rw-r--r-- root root 14130 ./usr/include/libiberty/ansidecl.h
+-rw-r--r-- root root 27301 ./usr/include/libiberty/demangle.h
+-rw-r--r-- root root 2706 ./usr/include/libiberty/dyn-string.h
+-rw-r--r-- root root 2937 ./usr/include/libiberty/fibheap.h
+-rw-r--r-- root root 5890 ./usr/include/libiberty/floatformat.h
+-rw-r--r-- root root 27820 ./usr/include/libiberty.h
+-rw-r--r-- root root 7270 ./usr/include/libiberty/hashtab.h
+-rw-r--r-- root root 27820 ./usr/include/libiberty/libiberty.h
+-rw-r--r-- root root 3976 ./usr/include/libiberty/objalloc.h
+-rw-r--r-- root root 2824 ./usr/include/libiberty/partition.h
+-rw-r--r-- root root 5642 ./usr/include/libiberty/safe-ctype.h
+-rw-r--r-- root root 1209 ./usr/include/libiberty/sort.h
+-rw-r--r-- root root 6238 ./usr/include/libiberty/splay-tree.h
+-rw-r--r-- root root 1296 ./usr/include/libiberty/timeval-utils.h
+-rw-r--r-- root root 4580 ./usr/include/libintl.h
+drwxr-xr-x root root 4096 ./usr/include/libiptc
+-rw-r--r-- root root 360 ./usr/include/libiptc/ipt_kernel_headers.h
+-rw-r--r-- root root 5375 ./usr/include/libiptc/libip6tc.h
+-rw-r--r-- root root 5447 ./usr/include/libiptc/libiptc.h
+-rw-r--r-- root root 724 ./usr/include/libiptc/libxtc.h
+-rw-r--r-- root root 867 ./usr/include/libiptc/xtcshared.h
+-rw-r--r-- root root 9468 ./usr/include/libkmod.h
+drwxr-xr-x root root 4096 ./usr/include/libkms
+-rw-r--r-- root root 2571 ./usr/include/libkms/libkms.h
+drwxr-xr-x root root 4096 ./usr/include/libmnl
+-rw-r--r-- root root 8002 ./usr/include/libmnl/libmnl.h
+drwxr-xr-x root root 4096 ./usr/include/libmount
+-rw-r--r-- root root 36308 ./usr/include/libmount/libmount.h
+drwxr-xr-x root root 4096 ./usr/include/libpng16
+-rw-r--r-- root root 22846 ./usr/include/libpng16/pngconf.h
+-rw-r--r-- root root 142860 ./usr/include/libpng16/png.h
+-rw-r--r-- root root 7629 ./usr/include/libpng16/pnglibconf.h
+drwxr-xr-x root root 4096 ./usr/include/libsmartcols
+-rw-r--r-- root root 15473 ./usr/include/libsmartcols/libsmartcols.h
+-rw-r--r-- root root 3466 ./usr/include/libsync.h
+-rw-r--r-- root root 10327 ./usr/include/libudev.h
+drwxr-xr-x root root 4096 ./usr/include/libxml2
+drwxr-xr-x root root 4096 ./usr/include/libxml2/libxml
+-rw-r--r-- root root 3115 ./usr/include/libxml2/libxml/c14n.h
+-rw-r--r-- root root 4906 ./usr/include/libxml2/libxml/catalog.h
+-rw-r--r-- root root 5159 ./usr/include/libxml2/libxml/chvalid.h
+-rw-r--r-- root root 5152 ./usr/include/libxml2/libxml/debugXML.h
+-rw-r--r-- root root 1814 ./usr/include/libxml2/libxml/dict.h
+-rw-r--r-- root root 3157 ./usr/include/libxml2/libxml/DOCBparser.h
+-rw-r--r-- root root 8507 ./usr/include/libxml2/libxml/encoding.h
+-rw-r--r-- root root 4712 ./usr/include/libxml2/libxml/entities.h
+-rw-r--r-- root root 14670 ./usr/include/libxml2/libxml/globals.h
+-rw-r--r-- root root 6601 ./usr/include/libxml2/libxml/hash.h
+-rw-r--r-- root root 9410 ./usr/include/libxml2/libxml/HTMLparser.h
+-rw-r--r-- root root 3646 ./usr/include/libxml2/libxml/HTMLtree.h
+-rw-r--r-- root root 3348 ./usr/include/libxml2/libxml/list.h
+-rw-r--r-- root root 3758 ./usr/include/libxml2/libxml/nanoftp.h
+-rw-r--r-- root root 2005 ./usr/include/libxml2/libxml/nanohttp.h
+-rw-r--r-- root root 39718 ./usr/include/libxml2/libxml/parser.h
+-rw-r--r-- root root 17419 ./usr/include/libxml2/libxml/parserInternals.h
+-rw-r--r-- root root 2586 ./usr/include/libxml2/libxml/pattern.h
+-rw-r--r-- root root 5996 ./usr/include/libxml2/libxml/relaxng.h
+-rw-r--r-- root root 4949 ./usr/include/libxml2/libxml/SAX2.h
+-rw-r--r-- root root 4341 ./usr/include/libxml2/libxml/SAX.h
+-rw-r--r-- root root 26224 ./usr/include/libxml2/libxml/schemasInternals.h
+-rw-r--r-- root root 4371 ./usr/include/libxml2/libxml/schematron.h
+-rw-r--r-- root root 1958 ./usr/include/libxml2/libxml/threads.h
+-rw-r--r-- root root 38108 ./usr/include/libxml2/libxml/tree.h
+-rw-r--r-- root root 2664 ./usr/include/libxml2/libxml/uri.h
+-rw-r--r-- root root 13622 ./usr/include/libxml2/libxml/valid.h
+-rw-r--r-- root root 2967 ./usr/include/libxml2/libxml/xinclude.h
+-rw-r--r-- root root 5042 ./usr/include/libxml2/libxml/xlink.h
+-rw-r--r-- root root 3956 ./usr/include/libxml2/libxml/xmlautomata.h
+-rw-r--r-- root root 36809 ./usr/include/libxml2/libxml/xmlerror.h
+-rw-r--r-- root root 3759 ./usr/include/libxml2/libxml/xmlexports.h
+-rw-r--r-- root root 10605 ./usr/include/libxml2/libxml/xmlIO.h
+-rw-r--r-- root root 5945 ./usr/include/libxml2/libxml/xmlmemory.h
+-rw-r--r-- root root 1170 ./usr/include/libxml2/libxml/xmlmodule.h
+-rw-r--r-- root root 12607 ./usr/include/libxml2/libxml/xmlreader.h
+-rw-r--r-- root root 5458 ./usr/include/libxml2/libxml/xmlregexp.h
+-rw-r--r-- root root 2337 ./usr/include/libxml2/libxml/xmlsave.h
+-rw-r--r-- root root 7069 ./usr/include/libxml2/libxml/xmlschemas.h
+-rw-r--r-- root root 4841 ./usr/include/libxml2/libxml/xmlschemastypes.h
+-rw-r--r-- root root 5511 ./usr/include/libxml2/libxml/xmlstring.h
+-rw-r--r-- root root 9993 ./usr/include/libxml2/libxml/xmlunicode.h
+-rw-r--r-- root root 8035 ./usr/include/libxml2/libxml/xmlversion.h
+-rw-r--r-- root root 21265 ./usr/include/libxml2/libxml/xmlwriter.h
+-rw-r--r-- root root 16602 ./usr/include/libxml2/libxml/xpath.h
+-rw-r--r-- root root 19353 ./usr/include/libxml2/libxml/xpathInternals.h
+-rw-r--r-- root root 3359 ./usr/include/libxml2/libxml/xpointer.h
+-rw-r--r-- root root 5417 ./usr/include/limits.h
+-rw-r--r-- root root 7207 ./usr/include/link.h
+drwxr-xr-x root root 20480 ./usr/include/linux
+-rw-r--r-- root root 3733 ./usr/include/linux/acct.h
+-rw-r--r-- root root 1140 ./usr/include/linux/adb.h
+-rw-r--r-- root root 993 ./usr/include/linux/adfs_fs.h
+-rw-r--r-- root root 1544 ./usr/include/linux/affs_hardblocks.h
+-rw-r--r-- root root 3940 ./usr/include/linux/agpgart.h
+-rw-r--r-- root root 3398 ./usr/include/linux/aio_abi.h
+-rw-r--r-- root root 3681 ./usr/include/linux/am437x-vpfe.h
+drwxr-xr-x root root 4096 ./usr/include/linux/android
+-rw-r--r-- root root 789 ./usr/include/linux/android/binderfs.h
+-rw-r--r-- root root 14535 ./usr/include/linux/android/binder.h
+-rw-r--r-- root root 6892 ./usr/include/linux/a.out.h
+-rw-r--r-- root root 3683 ./usr/include/linux/apm_bios.h
+-rw-r--r-- root root 213 ./usr/include/linux/arcfb.h
+-rw-r--r-- root root 2751 ./usr/include/linux/arm_sdei.h
+-rw-r--r-- root root 1780 ./usr/include/linux/aspeed-lpc-ctrl.h
+-rw-r--r-- root root 1906 ./usr/include/linux/aspeed-p2a-ctrl.h
+-rw-r--r-- root root 1023 ./usr/include/linux/atalk.h
+-rw-r--r-- root root 952 ./usr/include/linux/atmapi.h
+-rw-r--r-- root root 1296 ./usr/include/linux/atmarp.h
+-rw-r--r-- root root 3271 ./usr/include/linux/atmbr2684.h
+-rw-r--r-- root root 576 ./usr/include/linux/atmclip.h
+-rw-r--r-- root root 7677 ./usr/include/linux/atmdev.h
+-rw-r--r-- root root 648 ./usr/include/linux/atm_eni.h
+-rw-r--r-- root root 7888 ./usr/include/linux/atm.h
+-rw-r--r-- root root 406 ./usr/include/linux/atm_he.h
+-rw-r--r-- root root 955 ./usr/include/linux/atm_idt77105.h
+-rw-r--r-- root root 1646 ./usr/include/linux/atmioc.h
+-rw-r--r-- root root 2381 ./usr/include/linux/atmlec.h
+-rw-r--r-- root root 4226 ./usr/include/linux/atmmpc.h
+-rw-r--r-- root root 1278 ./usr/include/linux/atm_nicstar.h
+-rw-r--r-- root root 639 ./usr/include/linux/atmppp.h
+-rw-r--r-- root root 4970 ./usr/include/linux/atmsap.h
+-rw-r--r-- root root 1853 ./usr/include/linux/atmsvc.h
+-rw-r--r-- root root 1622 ./usr/include/linux/atm_tcp.h
+-rw-r--r-- root root 1540 ./usr/include/linux/atm_zatm.h
+-rw-r--r-- root root 20759 ./usr/include/linux/audit.h
+-rw-r--r-- root root 4986 ./usr/include/linux/auto_dev-ioctl.h
+-rw-r--r-- root root 451 ./usr/include/linux/auto_fs4.h
+-rw-r--r-- root root 6428 ./usr/include/linux/auto_fs.h
+-rw-r--r-- root root 1496 ./usr/include/linux/auxvec.h
+-rw-r--r-- root root 2824 ./usr/include/linux/ax25.h
+-rw-r--r-- root root 1717 ./usr/include/linux/b1lli.h
+-rw-r--r-- root root 20373 ./usr/include/linux/batadv_packet.h
+-rw-r--r-- root root 16306 ./usr/include/linux/batman_adv.h
+-rw-r--r-- root root 883 ./usr/include/linux/baycom.h
+-rw-r--r-- root root 8425 ./usr/include/linux/bcache.h
+-rw-r--r-- root root 419 ./usr/include/linux/bcm933xx_hcs.h
+-rw-r--r-- root root 1905 ./usr/include/linux/bfs_fs.h
+-rw-r--r-- root root 628 ./usr/include/linux/binfmts.h
+-rw-r--r-- root root 1634 ./usr/include/linux/blkpg.h
+-rw-r--r-- root root 4701 ./usr/include/linux/blktrace_api.h
+-rw-r--r-- root root 5368 ./usr/include/linux/blkzoned.h
+-rw-r--r-- root root 1367 ./usr/include/linux/bpf_common.h
+-rw-r--r-- root root 138331 ./usr/include/linux/bpf.h
+-rw-r--r-- root root 465 ./usr/include/linux/bpfilter.h
+-rw-r--r-- root root 529 ./usr/include/linux/bpf_perf_event.h
+-rw-r--r-- root root 981 ./usr/include/linux/bpqether.h
+-rw-r--r-- root root 2494 ./usr/include/linux/bsg.h
+-rw-r--r-- root root 572 ./usr/include/linux/bt-bmc.h
+-rw-r--r-- root root 4624 ./usr/include/linux/btf.h
+-rw-r--r-- root root 29142 ./usr/include/linux/btrfs.h
+-rw-r--r-- root root 25245 ./usr/include/linux/btrfs_tree.h
+drwxr-xr-x root root 4096 ./usr/include/linux/byteorder
+-rw-r--r-- root root 3542 ./usr/include/linux/byteorder/big_endian.h
+-rw-r--r-- root root 3611 ./usr/include/linux/byteorder/little_endian.h
+drwxr-xr-x root root 4096 ./usr/include/linux/caif
+-rw-r--r-- root root 5832 ./usr/include/linux/caif/caif_socket.h
+-rw-r--r-- root root 1041 ./usr/include/linux/caif/if_caif.h
+drwxr-xr-x root root 4096 ./usr/include/linux/can
+-rw-r--r-- root root 4116 ./usr/include/linux/can/bcm.h
+-rw-r--r-- root root 6610 ./usr/include/linux/can/error.h
+-rw-r--r-- root root 8031 ./usr/include/linux/can/gw.h
+-rw-r--r-- root root 8213 ./usr/include/linux/can.h
+-rw-r--r-- root root 2207 ./usr/include/linux/can/j1939.h
+-rw-r--r-- root root 3993 ./usr/include/linux/can/netlink.h
+-rw-r--r-- root root 2858 ./usr/include/linux/can/raw.h
+-rw-r--r-- root root 232 ./usr/include/linux/can/vxcan.h
+-rw-r--r-- root root 11780 ./usr/include/linux/capability.h
+-rw-r--r-- root root 3124 ./usr/include/linux/capi.h
+-rw-r--r-- root root 3281 ./usr/include/linux/cciss_defs.h
+-rw-r--r-- root root 2761 ./usr/include/linux/cciss_ioctl.h
+-rw-r--r-- root root 28859 ./usr/include/linux/cdrom.h
+-rw-r--r-- root root 53535 ./usr/include/linux/cec-funcs.h
+-rw-r--r-- root root 36389 ./usr/include/linux/cec.h
+-rw-r--r-- root root 2219 ./usr/include/linux/cgroupstats.h
+-rw-r--r-- root root 5344 ./usr/include/linux/chio.h
+drwxr-xr-x root root 4096 ./usr/include/linux/cifs
+-rw-r--r-- root root 1225 ./usr/include/linux/cifs/cifs_mount.h
+-rw-r--r-- root root 1806 ./usr/include/linux/cm4000_cs.h
+-rw-r--r-- root root 3456 ./usr/include/linux/cn_proc.h
+-rw-r--r-- root root 18216 ./usr/include/linux/coda.h
+-rw-r--r-- root root 12549 ./usr/include/linux/coff.h
+-rw-r--r-- root root 2253 ./usr/include/linux/connector.h
+-rw-r--r-- root root 788 ./usr/include/linux/const.h
+-rw-r--r-- root root 674 ./usr/include/linux/coresight-stm.h
+-rw-r--r-- root root 3555 ./usr/include/linux/cramfs_fs.h
+-rw-r--r-- root root 5321 ./usr/include/linux/cryptouser.h
+-rw-r--r-- root root 905 ./usr/include/linux/cuda.h
+-rw-r--r-- root root 17108 ./usr/include/linux/cyclades.h
+-rw-r--r-- root root 2990 ./usr/include/linux/cycx_cfm.h
+-rw-r--r-- root root 25291 ./usr/include/linux/dcbnl.h
+-rw-r--r-- root root 6436 ./usr/include/linux/dccp.h
+-rw-r--r-- root root 14860 ./usr/include/linux/devlink.h
+-rw-r--r-- root root 5080 ./usr/include/linux/dlmconstants.h
+-rw-r--r-- root root 2543 ./usr/include/linux/dlm_device.h
+-rw-r--r-- root root 2553 ./usr/include/linux/dlm.h
+-rw-r--r-- root root 1159 ./usr/include/linux/dlm_netlink.h
+-rw-r--r-- root root 894 ./usr/include/linux/dlm_plock.h
+-rw-r--r-- root root 1448 ./usr/include/linux/dma-buf.h
+-rw-r--r-- root root 10988 ./usr/include/linux/dm-ioctl.h
+-rw-r--r-- root root 15191 ./usr/include/linux/dm-log-userspace.h
+-rw-r--r-- root root 4642 ./usr/include/linux/dn.h
+-rw-r--r-- root root 3949 ./usr/include/linux/dns_resolver.h
+-rw-r--r-- root root 8999 ./usr/include/linux/dqblk_xfs.h
+drwxr-xr-x root root 4096 ./usr/include/linux/dvb
+-rw-r--r-- root root 3550 ./usr/include/linux/dvb/audio.h
+-rw-r--r-- root root 4247 ./usr/include/linux/dvb/ca.h
+-rw-r--r-- root root 10177 ./usr/include/linux/dvb/dmx.h
+-rw-r--r-- root root 29244 ./usr/include/linux/dvb/frontend.h
+-rw-r--r-- root root 2127 ./usr/include/linux/dvb/net.h
+-rw-r--r-- root root 5937 ./usr/include/linux/dvb/osd.h
+-rw-r--r-- root root 1082 ./usr/include/linux/dvb/version.h
+-rw-r--r-- root root 7106 ./usr/include/linux/dvb/video.h
+-rw-r--r-- root root 5604 ./usr/include/linux/edd.h
+-rw-r--r-- root root 2227 ./usr/include/linux/efs_fs_sb.h
+-rw-r--r-- root root 2995 ./usr/include/linux/elfcore.h
+-rw-r--r-- root root 2586 ./usr/include/linux/elf-em.h
+-rw-r--r-- root root 1124 ./usr/include/linux/elf-fdpic.h
+-rw-r--r-- root root 13642 ./usr/include/linux/elf.h
+-rw-r--r-- root root 23 ./usr/include/linux/errno.h
+-rw-r--r-- root root 1572 ./usr/include/linux/errqueue.h
+-rw-r--r-- root root 1059 ./usr/include/linux/erspan.h
+-rw-r--r-- root root 74781 ./usr/include/linux/ethtool.h
+-rw-r--r-- root root 2743 ./usr/include/linux/eventpoll.h
+-rw-r--r-- root root 842 ./usr/include/linux/fadvise.h
+-rw-r--r-- root root 3584 ./usr/include/linux/falloc.h
+-rw-r--r-- root root 5369 ./usr/include/linux/fanotify.h
+-rw-r--r-- root root 16412 ./usr/include/linux/fb.h
+-rw-r--r-- root root 3438 ./usr/include/linux/fcntl.h
+-rw-r--r-- root root 11672 ./usr/include/linux/fd.h
+-rw-r--r-- root root 5420 ./usr/include/linux/fdreg.h
+-rw-r--r-- root root 2036 ./usr/include/linux/fib_rules.h
+-rw-r--r-- root root 2775 ./usr/include/linux/fiemap.h
+-rw-r--r-- root root 2216 ./usr/include/linux/filter.h
+-rw-r--r-- root root 44242 ./usr/include/linux/firewire-cdev.h
+-rw-r--r-- root root 3231 ./usr/include/linux/firewire-constants.h
+-rw-r--r-- root root 894 ./usr/include/linux/fou.h
+-rw-r--r-- root root 6103 ./usr/include/linux/fpga-dfl.h
+-rw-r--r-- root root 6104 ./usr/include/linux/fscrypt.h
+-rw-r--r-- root root 12205 ./usr/include/linux/fs.h
+-rw-r--r-- root root 2255 ./usr/include/linux/fsi.h
+-rw-r--r-- root root 7301 ./usr/include/linux/fsl_hypervisor.h
+-rw-r--r-- root root 4393 ./usr/include/linux/fsmap.h
+-rw-r--r-- root root 931 ./usr/include/linux/fsverity.h
+-rw-r--r-- root root 20407 ./usr/include/linux/fuse.h
+-rw-r--r-- root root 4993 ./usr/include/linux/futex.h
+-rw-r--r-- root root 897 ./usr/include/linux/gameport.h
+-rw-r--r-- root root 1923 ./usr/include/linux/genetlink.h
+-rw-r--r-- root root 1599 ./usr/include/linux/gen_stats.h
+drwxr-xr-x root root 4096 ./usr/include/linux/genwqe
+-rw-r--r-- root root 17802 ./usr/include/linux/genwqe/genwqe_card.h
+-rw-r--r-- root root 14651 ./usr/include/linux/gfs2_ondisk.h
+-rw-r--r-- root root 1442 ./usr/include/linux/gigaset_dev.h
+-rw-r--r-- root root 5753 ./usr/include/linux/gpio.h
+-rw-r--r-- root root 1144 ./usr/include/linux/gsmmux.h
+-rw-r--r-- root root 681 ./usr/include/linux/gtp.h
+-rw-r--r-- root root 971 ./usr/include/linux/hash_info.h
+drwxr-xr-x root root 4096 ./usr/include/linux/hdlc
+-rw-r--r-- root root 2908 ./usr/include/linux/hdlcdrv.h
+-rw-r--r-- root root 637 ./usr/include/linux/hdlc.h
+-rw-r--r-- root root 2657 ./usr/include/linux/hdlc/ioctl.h
+-rw-r--r-- root root 22703 ./usr/include/linux/hdreg.h
+-rw-r--r-- root root 6345 ./usr/include/linux/hiddev.h
+-rw-r--r-- root root 1901 ./usr/include/linux/hid.h
+-rw-r--r-- root root 1511 ./usr/include/linux/hidraw.h
+-rw-r--r-- root root 743 ./usr/include/linux/hpet.h
+drwxr-xr-x root root 4096 ./usr/include/linux/hsi
+-rw-r--r-- root root 3656 ./usr/include/linux/hsi/cs-protocol.h
+-rw-r--r-- root root 1895 ./usr/include/linux/hsi/hsi_char.h
+-rw-r--r-- root root 1081 ./usr/include/linux/hsr_netlink.h
+-rw-r--r-- root root 742 ./usr/include/linux/hw_breakpoint.h
+-rw-r--r-- root root 10569 ./usr/include/linux/hyperv.h
+-rw-r--r-- root root 1382 ./usr/include/linux/hysdn_if.h
+-rw-r--r-- root root 2612 ./usr/include/linux/i2c-dev.h
+-rw-r--r-- root root 7132 ./usr/include/linux/i2c.h
+-rw-r--r-- root root 11555 ./usr/include/linux/i2o-dev.h
+-rw-r--r-- root root 1528 ./usr/include/linux/i8k.h
+-rw-r--r-- root root 2975 ./usr/include/linux/icmp.h
+-rw-r--r-- root root 4083 ./usr/include/linux/icmpv6.h
+-rw-r--r-- root root 1886 ./usr/include/linux/if_addr.h
+-rw-r--r-- root root 721 ./usr/include/linux/if_addrlabel.h
+-rw-r--r-- root root 946 ./usr/include/linux/if_alg.h
+-rw-r--r-- root root 3717 ./usr/include/linux/if_arcnet.h
+-rw-r--r-- root root 6565 ./usr/include/linux/if_arp.h
+-rw-r--r-- root root 4839 ./usr/include/linux/if_bonding.h
+-rw-r--r-- root root 7266 ./usr/include/linux/if_bridge.h
+-rw-r--r-- root root 986 ./usr/include/linux/if_cablemodem.h
+-rw-r--r-- root root 351 ./usr/include/linux/ife.h
+-rw-r--r-- root root 1349 ./usr/include/linux/if_eql.h
+-rw-r--r-- root root 8227 ./usr/include/linux/if_ether.h
+-rw-r--r-- root root 1738 ./usr/include/linux/if_fc.h
+-rw-r--r-- root root 4372 ./usr/include/linux/if_fddi.h
+-rw-r--r-- root root 3019 ./usr/include/linux/if_frad.h
+-rw-r--r-- root root 10813 ./usr/include/linux/if.h
+-rw-r--r-- root root 4235 ./usr/include/linux/if_hippi.h
+-rw-r--r-- root root 1245 ./usr/include/linux/if_infiniband.h
+-rw-r--r-- root root 23649 ./usr/include/linux/if_link.h
+-rw-r--r-- root root 210 ./usr/include/linux/if_ltalk.h
+-rw-r--r-- root root 5832 ./usr/include/linux/if_macsec.h
+-rw-r--r-- root root 7955 ./usr/include/linux/if_packet.h
+-rw-r--r-- root root 424 ./usr/include/linux/if_phonet.h
+-rw-r--r-- root root 660 ./usr/include/linux/if_plip.h
+-rw-r--r-- root root 29 ./usr/include/linux/if_ppp.h
+-rw-r--r-- root root 3292 ./usr/include/linux/if_pppol2tp.h
+-rw-r--r-- root root 4879 ./usr/include/linux/if_pppox.h
+-rw-r--r-- root root 872 ./usr/include/linux/if_slip.h
+-rw-r--r-- root root 2600 ./usr/include/linux/if_team.h
+-rw-r--r-- root root 4098 ./usr/include/linux/if_tun.h
+-rw-r--r-- root root 4512 ./usr/include/linux/if_tunnel.h
+-rw-r--r-- root root 1831 ./usr/include/linux/if_vlan.h
+-rw-r--r-- root root 881 ./usr/include/linux/if_x25.h
+-rw-r--r-- root root 2819 ./usr/include/linux/if_xdp.h
+-rw-r--r-- root root 3064 ./usr/include/linux/igmp.h
+drwxr-xr-x root root 4096 ./usr/include/linux/iio
+-rw-r--r-- root root 1390 ./usr/include/linux/iio/events.h
+-rw-r--r-- root root 2114 ./usr/include/linux/iio/types.h
+-rw-r--r-- root root 1246 ./usr/include/linux/ila.h
+-rw-r--r-- root root 7505 ./usr/include/linux/in6.h
+-rw-r--r-- root root 4540 ./usr/include/linux/inet_diag.h
+-rw-r--r-- root root 9881 ./usr/include/linux/in.h
+-rw-r--r-- root root 3292 ./usr/include/linux/inotify.h
+-rw-r--r-- root root 25218 ./usr/include/linux/input-event-codes.h
+-rw-r--r-- root root 15964 ./usr/include/linux/input.h
+-rw-r--r-- root root 936 ./usr/include/linux/in_route.h
+-rw-r--r-- root root 163 ./usr/include/linux/ioctl.h
+-rw-r--r-- root root 4578 ./usr/include/linux/iommu.h
+-rw-r--r-- root root 3478 ./usr/include/linux/io_uring.h
+-rw-r--r-- root root 1953 ./usr/include/linux/ip6_tunnel.h
+-rw-r--r-- root root 2101 ./usr/include/linux/ipc.h
+-rw-r--r-- root root 4728 ./usr/include/linux/ip.h
+-rw-r--r-- root root 488 ./usr/include/linux/ipmi_bmc.h
+-rw-r--r-- root root 15049 ./usr/include/linux/ipmi.h
+-rw-r--r-- root root 3350 ./usr/include/linux/ipmi_msgdefs.h
+-rw-r--r-- root root 947 ./usr/include/linux/ipsec.h
+-rw-r--r-- root root 3967 ./usr/include/linux/ipv6.h
+-rw-r--r-- root root 1908 ./usr/include/linux/ipv6_route.h
+-rw-r--r-- root root 14135 ./usr/include/linux/ip_vs.h
+-rw-r--r-- root root 2347 ./usr/include/linux/ipx.h
+-rw-r--r-- root root 104 ./usr/include/linux/irqnr.h
+drwxr-xr-x root root 4096 ./usr/include/linux/isdn
+-rw-r--r-- root root 4783 ./usr/include/linux/isdn/capicmd.h
+-rw-r--r-- root root 6485 ./usr/include/linux/iso_fs.h
+-rw-r--r-- root root 5408 ./usr/include/linux/isst_if.h
+-rw-r--r-- root root 1207 ./usr/include/linux/ivtvfb.h
+-rw-r--r-- root root 3022 ./usr/include/linux/ivtv.h
+-rw-r--r-- root root 6815 ./usr/include/linux/jffs2.h
+-rw-r--r-- root root 3434 ./usr/include/linux/joystick.h
+-rw-r--r-- root root 822 ./usr/include/linux/kcm.h
+-rw-r--r-- root root 522 ./usr/include/linux/kcmp.h
+-rw-r--r-- root root 1099 ./usr/include/linux/kcov.h
+-rw-r--r-- root root 383 ./usr/include/linux/kdev_t.h
+-rw-r--r-- root root 6253 ./usr/include/linux/kd.h
+-rw-r--r-- root root 1019 ./usr/include/linux/kernelcapi.h
+-rw-r--r-- root root 438 ./usr/include/linux/kernel.h
+-rw-r--r-- root root 900 ./usr/include/linux/kernel-page-flags.h
+-rw-r--r-- root root 1873 ./usr/include/linux/kexec.h
+-rw-r--r-- root root 13459 ./usr/include/linux/keyboard.h
+-rw-r--r-- root root 5837 ./usr/include/linux/keyctl.h
+-rw-r--r-- root root 16263 ./usr/include/linux/kfd_ioctl.h
+-rw-r--r-- root root 46258 ./usr/include/linux/kvm.h
+-rw-r--r-- root root 968 ./usr/include/linux/kvm_para.h
+-rw-r--r-- root root 5672 ./usr/include/linux/l2tp.h
+-rw-r--r-- root root 8289 ./usr/include/linux/libc-compat.h
+-rw-r--r-- root root 5042 ./usr/include/linux/lightnvm.h
+-rw-r--r-- root root 937 ./usr/include/linux/limits.h
+-rw-r--r-- root root 8102 ./usr/include/linux/lirc.h
+-rw-r--r-- root root 3164 ./usr/include/linux/llc.h
+-rw-r--r-- root root 2520 ./usr/include/linux/loop.h
+-rw-r--r-- root root 4190 ./usr/include/linux/lp.h
+-rw-r--r-- root root 1273 ./usr/include/linux/lwtunnel.h
+-rw-r--r-- root root 3604 ./usr/include/linux/magic.h
+-rw-r--r-- root root 4713 ./usr/include/linux/major.h
+-rw-r--r-- root root 7251 ./usr/include/linux/map_to_7segment.h
+-rw-r--r-- root root 1464 ./usr/include/linux/matroxfb.h
+-rw-r--r-- root root 1035 ./usr/include/linux/max2175.h
+-rw-r--r-- root root 15645 ./usr/include/linux/mdio.h
+-rw-r--r-- root root 6540 ./usr/include/linux/media-bus-format.h
+-rw-r--r-- root root 12641 ./usr/include/linux/media.h
+-rw-r--r-- root root 1993 ./usr/include/linux/mei.h
+-rw-r--r-- root root 7899 ./usr/include/linux/membarrier.h
+-rw-r--r-- root root 1324 ./usr/include/linux/memfd.h
+-rw-r--r-- root root 2154 ./usr/include/linux/mempolicy.h
+-rw-r--r-- root root 2529 ./usr/include/linux/meye.h
+-rw-r--r-- root root 6519 ./usr/include/linux/mic_common.h
+-rw-r--r-- root root 2252 ./usr/include/linux/mic_ioctl.h
+-rw-r--r-- root root 8281 ./usr/include/linux/mii.h
+-rw-r--r-- root root 2122 ./usr/include/linux/minix_fs.h
+-rw-r--r-- root root 1508 ./usr/include/linux/mman.h
+drwxr-xr-x root root 4096 ./usr/include/linux/mmc
+-rw-r--r-- root root 2331 ./usr/include/linux/mmc/ioctl.h
+-rw-r--r-- root root 2117 ./usr/include/linux/mmtimer.h
+-rw-r--r-- root root 255 ./usr/include/linux/module.h
+-rw-r--r-- root root 4546 ./usr/include/linux/mount.h
+-rw-r--r-- root root 2302 ./usr/include/linux/mpls.h
+-rw-r--r-- root root 761 ./usr/include/linux/mpls_iptunnel.h
+-rw-r--r-- root root 2201 ./usr/include/linux/mqueue.h
+-rw-r--r-- root root 4931 ./usr/include/linux/mroute6.h
+-rw-r--r-- root root 5881 ./usr/include/linux/mroute.h
+-rw-r--r-- root root 6731 ./usr/include/linux/msdos_fs.h
+-rw-r--r-- root root 3374 ./usr/include/linux/msg.h
+-rw-r--r-- root root 8175 ./usr/include/linux/mtio.h
+-rw-r--r-- root root 3024 ./usr/include/linux/nbd.h
+-rw-r--r-- root root 2378 ./usr/include/linux/nbd-netlink.h
+-rw-r--r-- root root 4828 ./usr/include/linux/ncsi.h
+-rw-r--r-- root root 6770 ./usr/include/linux/ndctl.h
+-rw-r--r-- root root 4406 ./usr/include/linux/neighbour.h
+-rw-r--r-- root root 614 ./usr/include/linux/netconf.h
+-rw-r--r-- root root 2253 ./usr/include/linux/netdevice.h
+-rw-r--r-- root root 2839 ./usr/include/linux/net_dropmon.h
+drwxr-xr-x root root 4096 ./usr/include/linux/netfilter
+drwxr-xr-x root root 4096 ./usr/include/linux/netfilter_arp
+-rw-r--r-- root root 5999 ./usr/include/linux/netfilter_arp/arp_tables.h
+-rw-r--r-- root root 606 ./usr/include/linux/netfilter_arp/arpt_mangle.h
+-rw-r--r-- root root 445 ./usr/include/linux/netfilter_arp.h
+drwxr-xr-x root root 4096 ./usr/include/linux/netfilter_bridge
+-rw-r--r-- root root 1274 ./usr/include/linux/netfilter_bridge/ebt_802_3.h
+-rw-r--r-- root root 9308 ./usr/include/linux/netfilter_bridge/ebtables.h
+-rw-r--r-- root root 2043 ./usr/include/linux/netfilter_bridge/ebt_among.h
+-rw-r--r-- root root 900 ./usr/include/linux/netfilter_bridge/ebt_arp.h
+-rw-r--r-- root root 289 ./usr/include/linux/netfilter_bridge/ebt_arpreply.h
+-rw-r--r-- root root 1056 ./usr/include/linux/netfilter_bridge/ebt_ip6.h
+-rw-r--r-- root root 1094 ./usr/include/linux/netfilter_bridge/ebt_ip.h
+-rw-r--r-- root root 616 ./usr/include/linux/netfilter_bridge/ebt_limit.h
+-rw-r--r-- root root 538 ./usr/include/linux/netfilter_bridge/ebt_log.h
+-rw-r--r-- root root 388 ./usr/include/linux/netfilter_bridge/ebt_mark_m.h
+-rw-r--r-- root root 831 ./usr/include/linux/netfilter_bridge/ebt_mark_t.h
+-rw-r--r-- root root 387 ./usr/include/linux/netfilter_bridge/ebt_nat.h
+-rw-r--r-- root root 510 ./usr/include/linux/netfilter_bridge/ebt_nflog.h
+-rw-r--r-- root root 267 ./usr/include/linux/netfilter_bridge/ebt_pkttype.h
+-rw-r--r-- root root 286 ./usr/include/linux/netfilter_bridge/ebt_redirect.h
+-rw-r--r-- root root 1110 ./usr/include/linux/netfilter_bridge/ebt_stp.h
+-rw-r--r-- root root 719 ./usr/include/linux/netfilter_bridge/ebt_vlan.h
+-rw-r--r-- root root 1168 ./usr/include/linux/netfilter_bridge.h
+-rw-r--r-- root root 1758 ./usr/include/linux/netfilter_decnet.h
+-rw-r--r-- root root 1674 ./usr/include/linux/netfilter.h
+drwxr-xr-x root root 4096 ./usr/include/linux/netfilter/ipset
+-rw-r--r-- root root 428 ./usr/include/linux/netfilter/ipset/ip_set_bitmap.h
+-rw-r--r-- root root 9108 ./usr/include/linux/netfilter/ipset/ip_set.h
+-rw-r--r-- root root 578 ./usr/include/linux/netfilter/ipset/ip_set_hash.h
+-rw-r--r-- root root 609 ./usr/include/linux/netfilter/ipset/ip_set_list.h
+drwxr-xr-x root root 4096 ./usr/include/linux/netfilter_ipv4
+-rw-r--r-- root root 1488 ./usr/include/linux/netfilter_ipv4.h
+-rw-r--r-- root root 6647 ./usr/include/linux/netfilter_ipv4/ip_tables.h
+-rw-r--r-- root root 425 ./usr/include/linux/netfilter_ipv4/ipt_ah.h
+-rw-r--r-- root root 821 ./usr/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h
+-rw-r--r-- root root 431 ./usr/include/linux/netfilter_ipv4/ipt_ecn.h
+-rw-r--r-- root root 901 ./usr/include/linux/netfilter_ipv4/ipt_ECN.h
+-rw-r--r-- root root 654 ./usr/include/linux/netfilter_ipv4/ipt_LOG.h
+-rw-r--r-- root root 468 ./usr/include/linux/netfilter_ipv4/ipt_REJECT.h
+-rw-r--r-- root root 431 ./usr/include/linux/netfilter_ipv4/ipt_ttl.h
+-rw-r--r-- root root 375 ./usr/include/linux/netfilter_ipv4/ipt_TTL.h
+drwxr-xr-x root root 4096 ./usr/include/linux/netfilter_ipv6
+-rw-r--r-- root root 1383 ./usr/include/linux/netfilter_ipv6.h
+-rw-r--r-- root root 8011 ./usr/include/linux/netfilter_ipv6/ip6_tables.h
+-rw-r--r-- root root 657 ./usr/include/linux/netfilter_ipv6/ip6t_ah.h
+-rw-r--r-- root root 744 ./usr/include/linux/netfilter_ipv6/ip6t_frag.h
+-rw-r--r-- root root 458 ./usr/include/linux/netfilter_ipv6/ip6t_hl.h
+-rw-r--r-- root root 408 ./usr/include/linux/netfilter_ipv6/ip6t_HL.h
+-rw-r--r-- root root 645 ./usr/include/linux/netfilter_ipv6/ip6t_ipv6header.h
+-rw-r--r-- root root 662 ./usr/include/linux/netfilter_ipv6/ip6t_LOG.h
+-rw-r--r-- root root 439 ./usr/include/linux/netfilter_ipv6/ip6t_mh.h
+-rw-r--r-- root root 400 ./usr/include/linux/netfilter_ipv6/ip6t_NPT.h
+-rw-r--r-- root root 649 ./usr/include/linux/netfilter_ipv6/ip6t_opts.h
+-rw-r--r-- root root 470 ./usr/include/linux/netfilter_ipv6/ip6t_REJECT.h
+-rw-r--r-- root root 985 ./usr/include/linux/netfilter_ipv6/ip6t_rt.h
+-rw-r--r-- root root 3305 ./usr/include/linux/netfilter_ipv6/ip6t_srh.h
+-rw-r--r-- root root 4421 ./usr/include/linux/netfilter/nf_conntrack_common.h
+-rw-r--r-- root root 438 ./usr/include/linux/netfilter/nf_conntrack_ftp.h
+-rw-r--r-- root root 576 ./usr/include/linux/netfilter/nf_conntrack_sctp.h
+-rw-r--r-- root root 1415 ./usr/include/linux/netfilter/nf_conntrack_tcp.h
+-rw-r--r-- root root 896 ./usr/include/linux/netfilter/nf_conntrack_tuple_common.h
+-rw-r--r-- root root 538 ./usr/include/linux/netfilter/nf_log.h
+-rw-r--r-- root root 1522 ./usr/include/linux/netfilter/nf_nat.h
+-rw-r--r-- root root 900 ./usr/include/linux/netfilter/nfnetlink_acct.h
+-rw-r--r-- root root 2444 ./usr/include/linux/netfilter/nfnetlink_compat.h
+-rw-r--r-- root root 5924 ./usr/include/linux/netfilter/nfnetlink_conntrack.h
+-rw-r--r-- root root 1202 ./usr/include/linux/netfilter/nfnetlink_cthelper.h
+-rw-r--r-- root root 2930 ./usr/include/linux/netfilter/nfnetlink_cttimeout.h
+-rw-r--r-- root root 2428 ./usr/include/linux/netfilter/nfnetlink.h
+-rw-r--r-- root root 3106 ./usr/include/linux/netfilter/nfnetlink_log.h
+-rw-r--r-- root root 2665 ./usr/include/linux/netfilter/nfnetlink_osf.h
+-rw-r--r-- root root 3499 ./usr/include/linux/netfilter/nfnetlink_queue.h
+-rw-r--r-- root root 576 ./usr/include/linux/netfilter/nf_synproxy.h
+-rw-r--r-- root root 731 ./usr/include/linux/netfilter/nf_tables_compat.h
+-rw-r--r-- root root 51835 ./usr/include/linux/netfilter/nf_tables.h
+-rw-r--r-- root root 4467 ./usr/include/linux/netfilter/x_tables.h
+-rw-r--r-- root root 1084 ./usr/include/linux/netfilter/xt_addrtype.h
+-rw-r--r-- root root 718 ./usr/include/linux/netfilter/xt_AUDIT.h
+-rw-r--r-- root root 935 ./usr/include/linux/netfilter/xt_bpf.h
+-rw-r--r-- root root 740 ./usr/include/linux/netfilter/xt_cgroup.h
+-rw-r--r-- root root 563 ./usr/include/linux/netfilter/xt_CHECKSUM.h
+-rw-r--r-- root root 217 ./usr/include/linux/netfilter/xt_CLASSIFY.h
+-rw-r--r-- root root 374 ./usr/include/linux/netfilter/xt_cluster.h
+-rw-r--r-- root root 230 ./usr/include/linux/netfilter/xt_comment.h
+-rw-r--r-- root root 577 ./usr/include/linux/netfilter/xt_connbytes.h
+-rw-r--r-- root root 360 ./usr/include/linux/netfilter/xt_connlabel.h
+-rw-r--r-- root root 575 ./usr/include/linux/netfilter/xt_connlimit.h
+-rw-r--r-- root root 900 ./usr/include/linux/netfilter/xt_connmark.h
+-rw-r--r-- root root 199 ./usr/include/linux/netfilter/xt_CONNMARK.h
+-rw-r--r-- root root 301 ./usr/include/linux/netfilter/xt_CONNSECMARK.h
+-rw-r--r-- root root 2557 ./usr/include/linux/netfilter/xt_conntrack.h
+-rw-r--r-- root root 199 ./usr/include/linux/netfilter/xt_cpu.h
+-rw-r--r-- root root 853 ./usr/include/linux/netfilter/xt_CT.h
+-rw-r--r-- root root 483 ./usr/include/linux/netfilter/xt_dccp.h
+-rw-r--r-- root root 429 ./usr/include/linux/netfilter/xt_devgroup.h
+-rw-r--r-- root root 701 ./usr/include/linux/netfilter/xt_dscp.h
+-rw-r--r-- root root 697 ./usr/include/linux/netfilter/xt_DSCP.h
+-rw-r--r-- root root 736 ./usr/include/linux/netfilter/xt_ecn.h
+-rw-r--r-- root root 418 ./usr/include/linux/netfilter/xt_esp.h
+-rw-r--r-- root root 3256 ./usr/include/linux/netfilter/xt_hashlimit.h
+-rw-r--r-- root root 188 ./usr/include/linux/netfilter/xt_helper.h
+-rw-r--r-- root root 933 ./usr/include/linux/netfilter/xt_HMARK.h
+-rw-r--r-- root root 1393 ./usr/include/linux/netfilter/xt_IDLETIMER.h
+-rw-r--r-- root root 485 ./usr/include/linux/netfilter/xt_ipcomp.h
+-rw-r--r-- root root 581 ./usr/include/linux/netfilter/xt_iprange.h
+-rw-r--r-- root root 680 ./usr/include/linux/netfilter/xt_ipvs.h
+-rw-r--r-- root root 739 ./usr/include/linux/netfilter/xt_l2tp.h
+-rw-r--r-- root root 470 ./usr/include/linux/netfilter/xt_LED.h
+-rw-r--r-- root root 221 ./usr/include/linux/netfilter/xt_length.h
+-rw-r--r-- root root 673 ./usr/include/linux/netfilter/xt_limit.h
+-rw-r--r-- root root 642 ./usr/include/linux/netfilter/xt_LOG.h
+-rw-r--r-- root root 227 ./usr/include/linux/netfilter/xt_mac.h
+-rw-r--r-- root root 260 ./usr/include/linux/netfilter/xt_mark.h
+-rw-r--r-- root root 184 ./usr/include/linux/netfilter/xt_MARK.h
+-rw-r--r-- root root 721 ./usr/include/linux/netfilter/xt_multiport.h
+-rw-r--r-- root root 421 ./usr/include/linux/netfilter/xt_nfacct.h
+-rw-r--r-- root root 556 ./usr/include/linux/netfilter/xt_NFLOG.h
+-rw-r--r-- root root 779 ./usr/include/linux/netfilter/xt_NFQUEUE.h
+-rw-r--r-- root root 1703 ./usr/include/linux/netfilter/xt_osf.h
+-rw-r--r-- root root 535 ./usr/include/linux/netfilter/xt_owner.h
+-rw-r--r-- root root 553 ./usr/include/linux/netfilter/xt_physdev.h
+-rw-r--r-- root root 188 ./usr/include/linux/netfilter/xt_pkttype.h
+-rw-r--r-- root root 1051 ./usr/include/linux/netfilter/xt_policy.h
+-rw-r--r-- root root 400 ./usr/include/linux/netfilter/xt_quota.h
+-rw-r--r-- root root 859 ./usr/include/linux/netfilter/xt_rateest.h
+-rw-r--r-- root root 390 ./usr/include/linux/netfilter/xt_RATEEST.h
+-rw-r--r-- root root 220 ./usr/include/linux/netfilter/xt_realm.h
+-rw-r--r-- root root 1058 ./usr/include/linux/netfilter/xt_recent.h
+-rw-r--r-- root root 320 ./usr/include/linux/netfilter/xt_rpfilter.h
+-rw-r--r-- root root 2326 ./usr/include/linux/netfilter/xt_sctp.h
+-rw-r--r-- root root 549 ./usr/include/linux/netfilter/xt_SECMARK.h
+-rw-r--r-- root root 1827 ./usr/include/linux/netfilter/xt_set.h
+-rw-r--r-- root root 640 ./usr/include/linux/netfilter/xt_socket.h
+-rw-r--r-- root root 331 ./usr/include/linux/netfilter/xt_state.h
+-rw-r--r-- root root 716 ./usr/include/linux/netfilter/xt_statistic.h
+-rw-r--r-- root root 664 ./usr/include/linux/netfilter/xt_string.h
+-rw-r--r-- root root 498 ./usr/include/linux/netfilter/xt_SYNPROXY.h
+-rw-r--r-- root root 253 ./usr/include/linux/netfilter/xt_tcpmss.h
+-rw-r--r-- root root 235 ./usr/include/linux/netfilter/xt_TCPMSS.h
+-rw-r--r-- root root 407 ./usr/include/linux/netfilter/xt_TCPOPTSTRIP.h
+-rw-r--r-- root root 1250 ./usr/include/linux/netfilter/xt_tcpudp.h
+-rw-r--r-- root root 333 ./usr/include/linux/netfilter/xt_TEE.h
+-rw-r--r-- root root 730 ./usr/include/linux/netfilter/xt_time.h
+-rw-r--r-- root root 575 ./usr/include/linux/netfilter/xt_TPROXY.h
+-rw-r--r-- root root 752 ./usr/include/linux/netfilter/xt_u32.h
+-rw-r--r-- root root 2085 ./usr/include/linux/net.h
+-rw-r--r-- root root 1524 ./usr/include/linux/netlink_diag.h
+-rw-r--r-- root root 7825 ./usr/include/linux/netlink.h
+-rw-r--r-- root root 715 ./usr/include/linux/net_namespace.h
+-rw-r--r-- root root 807 ./usr/include/linux/netrom.h
+-rw-r--r-- root root 4914 ./usr/include/linux/net_tstamp.h
+-rw-r--r-- root root 1534 ./usr/include/linux/nexthop.h
+-rw-r--r-- root root 11209 ./usr/include/linux/nfc.h
+-rw-r--r-- root root 1468 ./usr/include/linux/nfs2.h
+-rw-r--r-- root root 2359 ./usr/include/linux/nfs3.h
+-rw-r--r-- root root 6338 ./usr/include/linux/nfs4.h
+-rw-r--r-- root root 1932 ./usr/include/linux/nfs4_mount.h
+-rw-r--r-- root root 668 ./usr/include/linux/nfsacl.h
+drwxr-xr-x root root 4096 ./usr/include/linux/nfsd
+-rw-r--r-- root root 3122 ./usr/include/linux/nfsd/cld.h
+-rw-r--r-- root root 736 ./usr/include/linux/nfsd/debug.h
+-rw-r--r-- root root 2113 ./usr/include/linux/nfsd/export.h
+-rw-r--r-- root root 3517 ./usr/include/linux/nfsd/nfsfh.h
+-rw-r--r-- root root 421 ./usr/include/linux/nfsd/stats.h
+-rw-r--r-- root root 1608 ./usr/include/linux/nfs_fs.h
+-rw-r--r-- root root 4500 ./usr/include/linux/nfs.h
+-rw-r--r-- root root 2243 ./usr/include/linux/nfs_idmap.h
+-rw-r--r-- root root 2142 ./usr/include/linux/nfs_mount.h
+-rw-r--r-- root root 7589 ./usr/include/linux/nilfs2_api.h
+-rw-r--r-- root root 18085 ./usr/include/linux/nilfs2_ondisk.h
+-rw-r--r-- root root 280715 ./usr/include/linux/nl80211.h
+-rw-r--r-- root root 2410 ./usr/include/linux/n_r3964.h
+-rw-r--r-- root root 639 ./usr/include/linux/nsfs.h
+-rw-r--r-- root root 8191 ./usr/include/linux/nubus.h
+-rw-r--r-- root root 1661 ./usr/include/linux/nvme_ioctl.h
+-rw-r--r-- root root 532 ./usr/include/linux/nvram.h
+-rw-r--r-- root root 20853 ./usr/include/linux/omap3isp.h
+-rw-r--r-- root root 5918 ./usr/include/linux/omapfb.h
+-rw-r--r-- root root 511 ./usr/include/linux/oom.h
+-rw-r--r-- root root 37676 ./usr/include/linux/openvswitch.h
+-rw-r--r-- root root 1672 ./usr/include/linux/packet_diag.h
+-rw-r--r-- root root 141 ./usr/include/linux/param.h
+-rw-r--r-- root root 3644 ./usr/include/linux/parport.h
+-rw-r--r-- root root 892 ./usr/include/linux/patchkey.h
+-rw-r--r-- root root 1380 ./usr/include/linux/pci.h
+-rw-r--r-- root root 56733 ./usr/include/linux/pci_regs.h
+-rw-r--r-- root root 711 ./usr/include/linux/pcitest.h
+-rw-r--r-- root root 34228 ./usr/include/linux/perf_event.h
+-rw-r--r-- root root 2097 ./usr/include/linux/personality.h
+-rw-r--r-- root root 10569 ./usr/include/linux/pfkeyv2.h
+-rw-r--r-- root root 2394 ./usr/include/linux/pg.h
+-rw-r--r-- root root 1654 ./usr/include/linux/phantom.h
+-rw-r--r-- root root 4677 ./usr/include/linux/phonet.h
+-rw-r--r-- root root 2687 ./usr/include/linux/pktcdvd.h
+-rw-r--r-- root root 15441 ./usr/include/linux/pkt_cls.h
+-rw-r--r-- root root 27648 ./usr/include/linux/pkt_sched.h
+-rw-r--r-- root root 5444 ./usr/include/linux/pmu.h
+-rw-r--r-- root root 22 ./usr/include/linux/poll.h
+-rw-r--r-- root root 1254 ./usr/include/linux/posix_acl.h
+-rw-r--r-- root root 1115 ./usr/include/linux/posix_acl_xattr.h
+-rw-r--r-- root root 1098 ./usr/include/linux/posix_types.h
+-rw-r--r-- root root 3285 ./usr/include/linux/ppdev.h
+-rw-r--r-- root root 2527 ./usr/include/linux/ppp-comp.h
+-rw-r--r-- root root 5107 ./usr/include/linux/ppp_defs.h
+-rw-r--r-- root root 5438 ./usr/include/linux/ppp-ioctl.h
+-rw-r--r-- root root 4734 ./usr/include/linux/pps.h
+-rw-r--r-- root root 8073 ./usr/include/linux/prctl.h
+-rw-r--r-- root root 1073 ./usr/include/linux/pr.h
+-rw-r--r-- root root 798 ./usr/include/linux/psample.h
+-rw-r--r-- root root 4328 ./usr/include/linux/psci.h
+-rw-r--r-- root root 4036 ./usr/include/linux/psp-sev.h
+-rw-r--r-- root root 6731 ./usr/include/linux/ptp_clock.h
+-rw-r--r-- root root 4265 ./usr/include/linux/ptrace.h
+-rw-r--r-- root root 2469 ./usr/include/linux/qemu_fw_cfg.h
+-rw-r--r-- root root 2328 ./usr/include/linux/qnx4_fs.h
+-rw-r--r-- root root 624 ./usr/include/linux/qnxtypes.h
+-rw-r--r-- root root 893 ./usr/include/linux/qrtr.h
+-rw-r--r-- root root 6291 ./usr/include/linux/quota.h
+-rw-r--r-- root root 360 ./usr/include/linux/radeonfb.h
+drwxr-xr-x root root 4096 ./usr/include/linux/raid
+-rw-r--r-- root root 16161 ./usr/include/linux/raid/md_p.h
+-rw-r--r-- root root 4484 ./usr/include/linux/raid/md_u.h
+-rw-r--r-- root root 1370 ./usr/include/linux/random.h
+-rw-r--r-- root root 365 ./usr/include/linux/raw.h
+-rw-r--r-- root root 11081 ./usr/include/linux/rds.h
+-rw-r--r-- root root 1343 ./usr/include/linux/reboot.h
+-rw-r--r-- root root 775 ./usr/include/linux/reiserfs_fs.h
+-rw-r--r-- root root 533 ./usr/include/linux/reiserfs_xattr.h
+-rw-r--r-- root root 2347 ./usr/include/linux/resource.h
+-rw-r--r-- root root 3682 ./usr/include/linux/rfkill.h
+-rw-r--r-- root root 3248 ./usr/include/linux/rio_cm_cdev.h
+-rw-r--r-- root root 9330 ./usr/include/linux/rio_mport_cdev.h
+-rw-r--r-- root root 1238 ./usr/include/linux/romfs_fs.h
+-rw-r--r-- root root 2232 ./usr/include/linux/rose.h
+-rw-r--r-- root root 2332 ./usr/include/linux/route.h
+-rw-r--r-- root root 544 ./usr/include/linux/rpmsg.h
+-rw-r--r-- root root 4904 ./usr/include/linux/rseq.h
+-rw-r--r-- root root 4009 ./usr/include/linux/rtc.h
+-rw-r--r-- root root 19055 ./usr/include/linux/rtnetlink.h
+-rw-r--r-- root root 4897 ./usr/include/linux/rxrpc.h
+-rw-r--r-- root root 4597 ./usr/include/linux/scc.h
+drwxr-xr-x root root 4096 ./usr/include/linux/sched
+-rw-r--r-- root root 4647 ./usr/include/linux/sched.h
+-rw-r--r-- root root 4480 ./usr/include/linux/sched/types.h
+-rw-r--r-- root root 6382 ./usr/include/linux/scif_ioctl.h
+-rw-r--r-- root root 2479 ./usr/include/linux/screen_info.h
+-rw-r--r-- root root 34783 ./usr/include/linux/sctp.h
+-rw-r--r-- root root 2839 ./usr/include/linux/sdla.h
+-rw-r--r-- root root 3235 ./usr/include/linux/seccomp.h
+-rw-r--r-- root root 2704 ./usr/include/linux/securebits.h
+-rw-r--r-- root root 3297 ./usr/include/linux/sed-opal.h
+-rw-r--r-- root root 589 ./usr/include/linux/seg6_genl.h
+-rw-r--r-- root root 1170 ./usr/include/linux/seg6.h
+-rw-r--r-- root root 423 ./usr/include/linux/seg6_hmac.h
+-rw-r--r-- root root 927 ./usr/include/linux/seg6_iptunnel.h
+-rw-r--r-- root root 2060 ./usr/include/linux/seg6_local.h
+-rw-r--r-- root root 1195 ./usr/include/linux/selinux_netlink.h
+-rw-r--r-- root root 3043 ./usr/include/linux/sem.h
+-rw-r--r-- root root 6436 ./usr/include/linux/serial_core.h
+-rw-r--r-- root root 3866 ./usr/include/linux/serial.h
+-rw-r--r-- root root 15496 ./usr/include/linux/serial_reg.h
+-rw-r--r-- root root 2063 ./usr/include/linux/serio.h
+-rw-r--r-- root root 3785 ./usr/include/linux/shm.h
+-rw-r--r-- root root 1233 ./usr/include/linux/signalfd.h
+-rw-r--r-- root root 388 ./usr/include/linux/signal.h
+-rw-r--r-- root root 2835 ./usr/include/linux/smc_diag.h
+-rw-r--r-- root root 780 ./usr/include/linux/smc.h
+-rw-r--r-- root root 1058 ./usr/include/linux/smiapp.h
+-rw-r--r-- root root 13014 ./usr/include/linux/snmp.h
+-rw-r--r-- root root 727 ./usr/include/linux/sock_diag.h
+-rw-r--r-- root root 819 ./usr/include/linux/socket.h
+-rw-r--r-- root root 6846 ./usr/include/linux/sockios.h
+-rw-r--r-- root root 2290 ./usr/include/linux/sonet.h
+-rw-r--r-- root root 5309 ./usr/include/linux/sonypi.h
+-rw-r--r-- root root 46038 ./usr/include/linux/soundcard.h
+-rw-r--r-- root root 1237 ./usr/include/linux/sound.h
+drwxr-xr-x root root 4096 ./usr/include/linux/spi
+-rw-r--r-- root root 5286 ./usr/include/linux/spi/spidev.h
+-rw-r--r-- root root 6100 ./usr/include/linux/stat.h
+-rw-r--r-- root root 131 ./usr/include/linux/stddef.h
+-rw-r--r-- root root 1275 ./usr/include/linux/stm.h
+-rw-r--r-- root root 238 ./usr/include/linux/string.h
+drwxr-xr-x root root 4096 ./usr/include/linux/sunrpc
+-rw-r--r-- root root 1144 ./usr/include/linux/sunrpc/debug.h
+-rw-r--r-- root root 1431 ./usr/include/linux/suspend_ioctls.h
+-rw-r--r-- root root 6711 ./usr/include/linux/swab.h
+-rw-r--r-- root root 4768 ./usr/include/linux/switchtec_ioctl.h
+-rw-r--r-- root root 2883 ./usr/include/linux/sync_file.h
+-rw-r--r-- root root 8985 ./usr/include/linux/synclink.h
+-rw-r--r-- root root 25880 ./usr/include/linux/sysctl.h
+-rw-r--r-- root root 1049 ./usr/include/linux/sysinfo.h
+-rw-r--r-- root root 3899 ./usr/include/linux/target_core_user.h
+-rw-r--r-- root root 7152 ./usr/include/linux/taskstats.h
+drwxr-xr-x root root 4096 ./usr/include/linux/tc_act
+-rw-r--r-- root root 764 ./usr/include/linux/tc_act/tc_bpf.h
+-rw-r--r-- root root 390 ./usr/include/linux/tc_act/tc_connmark.h
+-rw-r--r-- root root 644 ./usr/include/linux/tc_act/tc_csum.h
+-rw-r--r-- root root 934 ./usr/include/linux/tc_act/tc_ct.h
+-rw-r--r-- root root 556 ./usr/include/linux/tc_act/tc_ctinfo.h
+-rw-r--r-- root root 322 ./usr/include/linux/tc_act/tc_defact.h
+-rw-r--r-- root root 626 ./usr/include/linux/tc_act/tc_gact.h
+-rw-r--r-- root root 600 ./usr/include/linux/tc_act/tc_ife.h
+-rw-r--r-- root root 415 ./usr/include/linux/tc_act/tc_ipt.h
+-rw-r--r-- root root 728 ./usr/include/linux/tc_act/tc_mirred.h
+-rw-r--r-- root root 992 ./usr/include/linux/tc_act/tc_mpls.h
+-rw-r--r-- root root 424 ./usr/include/linux/tc_act/tc_nat.h
+-rw-r--r-- root root 1527 ./usr/include/linux/tc_act/tc_pedit.h
+-rw-r--r-- root root 456 ./usr/include/linux/tc_act/tc_sample.h
+-rw-r--r-- root root 1443 ./usr/include/linux/tc_act/tc_skbedit.h
+-rw-r--r-- root root 815 ./usr/include/linux/tc_act/tc_skbmod.h
+-rw-r--r-- root root 1898 ./usr/include/linux/tc_act/tc_tunnel_key.h
+-rw-r--r-- root root 816 ./usr/include/linux/tc_act/tc_vlan.h
+drwxr-xr-x root root 4096 ./usr/include/linux/tc_ematch
+-rw-r--r-- root root 414 ./usr/include/linux/tc_ematch/tc_em_cmp.h
+-rw-r--r-- root root 391 ./usr/include/linux/tc_ematch/tc_em_ipt.h
+-rw-r--r-- root root 2116 ./usr/include/linux/tc_ematch/tc_em_meta.h
+-rw-r--r-- root root 255 ./usr/include/linux/tc_ematch/tc_em_nbyte.h
+-rw-r--r-- root root 384 ./usr/include/linux/tc_ematch/tc_em_text.h
+-rw-r--r-- root root 10857 ./usr/include/linux/tcp.h
+-rw-r--r-- root root 1549 ./usr/include/linux/tcp_metrics.h
+-rw-r--r-- root root 12581 ./usr/include/linux/tee.h
+-rw-r--r-- root root 506 ./usr/include/linux/termios.h
+-rw-r--r-- root root 924 ./usr/include/linux/thermal.h
+-rw-r--r-- root root 1748 ./usr/include/linux/time.h
+-rw-r--r-- root root 936 ./usr/include/linux/timerfd.h
+-rw-r--r-- root root 278 ./usr/include/linux/times.h
+-rw-r--r-- root root 996 ./usr/include/linux/time_types.h
+-rw-r--r-- root root 7817 ./usr/include/linux/timex.h
+-rw-r--r-- root root 1729 ./usr/include/linux/tiocl.h
+-rw-r--r-- root root 14848 ./usr/include/linux/tipc_config.h
+-rw-r--r-- root root 8272 ./usr/include/linux/tipc.h
+-rw-r--r-- root root 9156 ./usr/include/linux/tipc_netlink.h
+-rw-r--r-- root root 468 ./usr/include/linux/tipc_sockets_diag.h
+-rw-r--r-- root root 4288 ./usr/include/linux/tls.h
+-rw-r--r-- root root 1930 ./usr/include/linux/toshiba.h
+-rw-r--r-- root root 4527 ./usr/include/linux/tty_flags.h
+-rw-r--r-- root root 1585 ./usr/include/linux/tty.h
+-rw-r--r-- root root 1476 ./usr/include/linux/types.h
+-rw-r--r-- root root 697 ./usr/include/linux/udf_fs_i.h
+-rw-r--r-- root root 643 ./usr/include/linux/udmabuf.h
+-rw-r--r-- root root 1613 ./usr/include/linux/udp.h
+-rw-r--r-- root root 4648 ./usr/include/linux/uhid.h
+-rw-r--r-- root root 9261 ./usr/include/linux/uinput.h
+-rw-r--r-- root root 732 ./usr/include/linux/uio.h
+-rw-r--r-- root root 798 ./usr/include/linux/uleds.h
+-rw-r--r-- root root 4562 ./usr/include/linux/ultrasound.h
+-rw-r--r-- root root 384 ./usr/include/linux/un.h
+-rw-r--r-- root root 220 ./usr/include/linux/unistd.h
+-rw-r--r-- root root 1328 ./usr/include/linux/unix_diag.h
+drwxr-xr-x root root 4096 ./usr/include/linux/usb
+-rw-r--r-- root root 19490 ./usr/include/linux/usb/audio.h
+-rw-r--r-- root root 12962 ./usr/include/linux/usb/cdc.h
+-rw-r--r-- root root 739 ./usr/include/linux/usb/cdc-wdm.h
+-rw-r--r-- root root 9149 ./usr/include/linux/usb/ch11.h
+-rw-r--r-- root root 38850 ./usr/include/linux/usb/ch9.h
+-rw-r--r-- root root 566 ./usr/include/linux/usb/charger.h
+-rw-r--r-- root root 8317 ./usr/include/linux/usbdevice_fs.h
+-rw-r--r-- root root 10370 ./usr/include/linux/usb/functionfs.h
+-rw-r--r-- root root 2818 ./usr/include/linux/usb/gadgetfs.h
+-rw-r--r-- root root 1385 ./usr/include/linux/usb/g_printer.h
+-rw-r--r-- root root 1097 ./usr/include/linux/usb/g_uvc.h
+-rw-r--r-- root root 640 ./usr/include/linux/usbip.h
+-rw-r--r-- root root 3434 ./usr/include/linux/usb/midi.h
+-rw-r--r-- root root 4713 ./usr/include/linux/usb/tmc.h
+-rw-r--r-- root root 16360 ./usr/include/linux/usb/video.h
+-rw-r--r-- root root 6811 ./usr/include/linux/userfaultfd.h
+-rw-r--r-- root root 1516 ./usr/include/linux/userio.h
+-rw-r--r-- root root 215 ./usr/include/linux/utime.h
+-rw-r--r-- root root 669 ./usr/include/linux/utsname.h
+-rw-r--r-- root root 1356 ./usr/include/linux/uuid.h
+-rw-r--r-- root root 2590 ./usr/include/linux/uvcvideo.h
+-rw-r--r-- root root 4177 ./usr/include/linux/v4l2-common.h
+-rw-r--r-- root root 52061 ./usr/include/linux/v4l2-controls.h
+-rw-r--r-- root root 31562 ./usr/include/linux/v4l2-dv-timings.h
+-rw-r--r-- root root 5101 ./usr/include/linux/v4l2-mediabus.h
+-rw-r--r-- root root 6339 ./usr/include/linux/v4l2-subdev.h
+-rw-r--r-- root root 7257 ./usr/include/linux/vbox_err.h
+-rw-r--r-- root root 8755 ./usr/include/linux/vboxguest.h
+-rw-r--r-- root root 11509 ./usr/include/linux/vbox_vmmdev_types.h
+-rw-r--r-- root root 97 ./usr/include/linux/version.h
+-rw-r--r-- root root 224 ./usr/include/linux/veth.h
+-rw-r--r-- root root 836 ./usr/include/linux/vfio_ccw.h
+-rw-r--r-- root root 33767 ./usr/include/linux/vfio.h
+-rw-r--r-- root root 5069 ./usr/include/linux/vhost.h
+-rw-r--r-- root root 3164 ./usr/include/linux/vhost_types.h
+-rw-r--r-- root root 91377 ./usr/include/linux/videodev2.h
+-rw-r--r-- root root 2041 ./usr/include/linux/virtio_9p.h
+-rw-r--r-- root root 5036 ./usr/include/linux/virtio_balloon.h
+-rw-r--r-- root root 6797 ./usr/include/linux/virtio_blk.h
+-rw-r--r-- root root 3836 ./usr/include/linux/virtio_config.h
+-rw-r--r-- root root 3136 ./usr/include/linux/virtio_console.h
+-rw-r--r-- root root 13874 ./usr/include/linux/virtio_crypto.h
+-rw-r--r-- root root 490 ./usr/include/linux/virtio_fs.h
+-rw-r--r-- root root 8540 ./usr/include/linux/virtio_gpu.h
+-rw-r--r-- root root 2592 ./usr/include/linux/virtio_ids.h
+-rw-r--r-- root root 2506 ./usr/include/linux/virtio_input.h
+-rw-r--r-- root root 3783 ./usr/include/linux/virtio_iommu.h
+-rw-r--r-- root root 4586 ./usr/include/linux/virtio_mmio.h
+-rw-r--r-- root root 10549 ./usr/include/linux/virtio_net.h
+-rw-r--r-- root root 7079 ./usr/include/linux/virtio_pci.h
+-rw-r--r-- root root 639 ./usr/include/linux/virtio_pmem.h
+-rw-r--r-- root root 7430 ./usr/include/linux/virtio_ring.h
+-rw-r--r-- root root 265 ./usr/include/linux/virtio_rng.h
+-rw-r--r-- root root 6035 ./usr/include/linux/virtio_scsi.h
+-rw-r--r-- root root 2153 ./usr/include/linux/virtio_types.h
+-rw-r--r-- root root 3086 ./usr/include/linux/virtio_vsock.h
+-rw-r--r-- root root 455 ./usr/include/linux/vmcore.h
+-rw-r--r-- root root 963 ./usr/include/linux/vm_sockets_diag.h
+-rw-r--r-- root root 5314 ./usr/include/linux/vm_sockets.h
+-rw-r--r-- root root 1885 ./usr/include/linux/vsockmon.h
+-rw-r--r-- root root 3059 ./usr/include/linux/vt.h
+-rw-r--r-- root root 1719 ./usr/include/linux/vtpm_proxy.h
+-rw-r--r-- root root 682 ./usr/include/linux/wait.h
+-rw-r--r-- root root 2335 ./usr/include/linux/watchdog.h
+drwxr-xr-x root root 4096 ./usr/include/linux/wimax
+-rw-r--r-- root root 8371 ./usr/include/linux/wimax.h
+-rw-r--r-- root root 15930 ./usr/include/linux/wimax/i2400m.h
+-rw-r--r-- root root 42713 ./usr/include/linux/wireless.h
+-rw-r--r-- root root 1761 ./usr/include/linux/wmi.h
+-rw-r--r-- root root 3562 ./usr/include/linux/x25.h
+-rw-r--r-- root root 2860 ./usr/include/linux/xattr.h
+-rw-r--r-- root root 1259 ./usr/include/linux/xdp_diag.h
+-rw-r--r-- root root 11737 ./usr/include/linux/xfrm.h
+-rw-r--r-- root root 2976 ./usr/include/linux/xilinx-v4l2-controls.h
+-rw-r--r-- root root 3296 ./usr/include/linux/zorro.h
+-rw-r--r-- root root 29963 ./usr/include/linux/zorro_ids.h
+-rw-r--r-- root root 7675 ./usr/include/locale.h
+drwxr-xr-x root root 4096 ./usr/include/lzma
+-rw-r--r-- root root 24858 ./usr/include/lzma/base.h
+-rw-r--r-- root root 2630 ./usr/include/lzma/bcj.h
+-rw-r--r-- root root 22107 ./usr/include/lzma/block.h
+-rw-r--r-- root root 4255 ./usr/include/lzma/check.h
+-rw-r--r-- root root 24844 ./usr/include/lzma/container.h
+-rw-r--r-- root root 1865 ./usr/include/lzma/delta.h
+-rw-r--r-- root root 16520 ./usr/include/lzma/filter.h
+-rw-r--r-- root root 9866 ./usr/include/lzma.h
+-rw-r--r-- root root 2604 ./usr/include/lzma/hardware.h
+-rw-r--r-- root root 23491 ./usr/include/lzma/index.h
+-rw-r--r-- root root 3914 ./usr/include/lzma/index_hash.h
+-rw-r--r-- root root 14744 ./usr/include/lzma/lzma12.h
+-rw-r--r-- root root 8253 ./usr/include/lzma/stream_flags.h
+-rw-r--r-- root root 3497 ./usr/include/lzma/version.h
+-rw-r--r-- root root 6546 ./usr/include/lzma/vli.h
+drwxr-xr-x root root 4096 ./usr/include/lzo
+-rw-r--r-- root root 2638 ./usr/include/lzo/lzo1a.h
+-rw-r--r-- root root 5387 ./usr/include/lzo/lzo1b.h
+-rw-r--r-- root root 5384 ./usr/include/lzo/lzo1c.h
+-rw-r--r-- root root 3073 ./usr/include/lzo/lzo1f.h
+-rw-r--r-- root root 2634 ./usr/include/lzo/lzo1.h
+-rw-r--r-- root root 5873 ./usr/include/lzo/lzo1x.h
+-rw-r--r-- root root 4641 ./usr/include/lzo/lzo1y.h
+-rw-r--r-- root root 3771 ./usr/include/lzo/lzo1z.h
+-rw-r--r-- root root 2525 ./usr/include/lzo/lzo2a.h
+-rw-r--r-- root root 5566 ./usr/include/lzo/lzo_asm.h
+-rw-r--r-- root root 16006 ./usr/include/lzo/lzoconf.h
+-rw-r--r-- root root 127289 ./usr/include/lzo/lzodefs.h
+-rw-r--r-- root root 1823 ./usr/include/lzo/lzoutil.h
+-rw-r--r-- root root 6186 ./usr/include/malloc.h
+-rw-r--r-- root root 46404 ./usr/include/math.h
+-rw-r--r-- root root 2435 ./usr/include/mcheck.h
+-rw-r--r-- root root 956 ./usr/include/memory.h
+-rw-r--r-- root root 12275 ./usr/include/menu.h
+drwxr-xr-x root root 4096 ./usr/include/misc
+-rw-r--r-- root root 3936 ./usr/include/misc/cxl.h
+-rw-r--r-- root root 953 ./usr/include/misc/fastrpc.h
+-rw-r--r-- root root 19004 ./usr/include/misc/habanalabs.h
+-rw-r--r-- root root 1947 ./usr/include/misc/ocxl.h
+-rw-r--r-- root root 12341 ./usr/include/misc/xilinx_sdfec.h
+-rw-r--r-- root root 3359 ./usr/include/mntent.h
+-rw-r--r-- root root 1804 ./usr/include/monetary.h
+-rw-r--r-- root root 3760 ./usr/include/mqueue.h
+drwxr-xr-x root root 4096 ./usr/include/mtd
+-rw-r--r-- root root 1644 ./usr/include/mtd/inftl-user.h
+-rw-r--r-- root root 9732 ./usr/include/mtd/mtd-abi.h
+-rw-r--r-- root root 1242 ./usr/include/mtd/mtd-user.h
+-rw-r--r-- root root 2116 ./usr/include/mtd/nftl-user.h
+-rw-r--r-- root root 18220 ./usr/include/mtd/ubi-user.h
+-rw-r--r-- root root 4240 ./usr/include/nc_tparm.h
+-rw-r--r-- root root 4522 ./usr/include/ncurses_dll.h
+lrwxrwxrwx root root 8 ./usr/include/ncurses.h -> curses.h
+-rw-r--r-- root root 2454 ./usr/include/ndbm.h
+drwxr-xr-x root root 4096 ./usr/include/net
+drwxr-xr-x root root 4096 ./usr/include/netash
+-rw-r--r-- root root 1363 ./usr/include/netash/ash.h
+drwxr-xr-x root root 4096 ./usr/include/netatalk
+-rw-r--r-- root root 1029 ./usr/include/netatalk/at.h
+drwxr-xr-x root root 4096 ./usr/include/netax25
+-rw-r--r-- root root 4810 ./usr/include/netax25/ax25.h
+-rw-r--r-- root root 28100 ./usr/include/netdb.h
+drwxr-xr-x root root 4096 ./usr/include/neteconet
+-rw-r--r-- root root 1668 ./usr/include/neteconet/ec.h
+-rw-r--r-- root root 3136 ./usr/include/net/ethernet.h
+-rw-r--r-- root root 7132 ./usr/include/net/if_arp.h
+-rw-r--r-- root root 6982 ./usr/include/net/if.h
+-rw-r--r-- root root 1262 ./usr/include/net/if_packet.h
+-rw-r--r-- root root 6714 ./usr/include/net/if_ppp.h
+-rw-r--r-- root root 1625 ./usr/include/net/if_shaper.h
+-rw-r--r-- root root 933 ./usr/include/net/if_slip.h
+drwxr-xr-x root root 4096 ./usr/include/netinet
+-rw-r--r-- root root 1985 ./usr/include/netinet/ether.h
+-rw-r--r-- root root 11515 ./usr/include/netinet/icmp6.h
+-rw-r--r-- root root 3976 ./usr/include/netinet/if_ether.h
+-rw-r--r-- root root 1186 ./usr/include/netinet/if_fddi.h
+-rw-r--r-- root root 3692 ./usr/include/netinet/if_tr.h
+-rw-r--r-- root root 4663 ./usr/include/netinet/igmp.h
+-rw-r--r-- root root 21702 ./usr/include/netinet/in.h
+-rw-r--r-- root root 1494 ./usr/include/netinet/in_systm.h
+-rw-r--r-- root root 5394 ./usr/include/netinet/ip6.h
+-rw-r--r-- root root 9436 ./usr/include/netinet/ip.h
+-rw-r--r-- root root 10131 ./usr/include/netinet/ip_icmp.h
+-rw-r--r-- root root 10490 ./usr/include/netinet/tcp.h
+-rw-r--r-- root root 3774 ./usr/include/netinet/udp.h
+drwxr-xr-x root root 4096 ./usr/include/netipx
+-rw-r--r-- root root 2900 ./usr/include/netipx/ipx.h
+drwxr-xr-x root root 4096 ./usr/include/netiucv
+-rw-r--r-- root root 1594 ./usr/include/netiucv/iucv.h
+drwxr-xr-x root root 4096 ./usr/include/netpacket
+-rw-r--r-- root root 2438 ./usr/include/netpacket/packet.h
+-rw-r--r-- root root 28 ./usr/include/net/ppp-comp.h
+-rw-r--r-- root root 162 ./usr/include/net/ppp_defs.h
+drwxr-xr-x root root 4096 ./usr/include/netrom
+-rw-r--r-- root root 2226 ./usr/include/netrom/netrom.h
+drwxr-xr-x root root 4096 ./usr/include/netrose
+-rw-r--r-- root root 3184 ./usr/include/netrose/rose.h
+-rw-r--r-- root root 4704 ./usr/include/net/route.h
+drwxr-xr-x root root 4096 ./usr/include/nfs
+-rw-r--r-- root root 23 ./usr/include/nfs/nfs.h
+-rw-r--r-- root root 1601 ./usr/include/nlist.h
+-rw-r--r-- root root 1753 ./usr/include/nl_types.h
+-rw-r--r-- root root 1879 ./usr/include/nss.h
+-rw-r--r-- root root 21307 ./usr/include/obstack.h
+drwxr-xr-x root root 4096 ./usr/include/omap
+-rw-r--r-- root root 4843 ./usr/include/omap/omap_drm.h
+drwxr-xr-x root root 4096 ./usr/include/openssl
+-rw-r--r-- root root 3349 ./usr/include/openssl/aes.h
+-rw-r--r-- root root 14599 ./usr/include/openssl/asn1err.h
+-rw-r--r-- root root 33627 ./usr/include/openssl/asn1.h
+-rw-r--r-- root root 395 ./usr/include/openssl/asn1_mac.h
+-rw-r--r-- root root 32940 ./usr/include/openssl/asn1t.h
+-rw-r--r-- root root 1326 ./usr/include/openssl/asyncerr.h
+-rw-r--r-- root root 2398 ./usr/include/openssl/async.h
+-rw-r--r-- root root 6400 ./usr/include/openssl/bioerr.h
+-rw-r--r-- root root 34907 ./usr/include/openssl/bio.h
+-rw-r--r-- root root 1847 ./usr/include/openssl/blowfish.h
+-rw-r--r-- root root 4907 ./usr/include/openssl/bnerr.h
+-rw-r--r-- root root 22135 ./usr/include/openssl/bn.h
+-rw-r--r-- root root 820 ./usr/include/openssl/buffererr.h
+-rw-r--r-- root root 1600 ./usr/include/openssl/buffer.h
+-rw-r--r-- root root 3179 ./usr/include/openssl/camellia.h
+-rw-r--r-- root root 1674 ./usr/include/openssl/cast.h
+-rw-r--r-- root root 1064 ./usr/include/openssl/cmac.h
+-rw-r--r-- root root 11160 ./usr/include/openssl/cmserr.h
+-rw-r--r-- root root 16379 ./usr/include/openssl/cms.h
+-rw-r--r-- root root 1212 ./usr/include/openssl/comperr.h
+-rw-r--r-- root root 1328 ./usr/include/openssl/comp.h
+-rw-r--r-- root root 1300 ./usr/include/openssl/conf_api.h
+-rw-r--r-- root root 3429 ./usr/include/openssl/conferr.h
+-rw-r--r-- root root 5601 ./usr/include/openssl/conf.h
+-rw-r--r-- root root 2261 ./usr/include/openssl/cryptoerr.h
+-rw-r--r-- root root 17239 ./usr/include/openssl/crypto.h
+-rw-r--r-- root root 3470 ./usr/include/openssl/cterr.h
+-rw-r--r-- root root 15872 ./usr/include/openssl/ct.h
+-rw-r--r-- root root 7627 ./usr/include/openssl/des.h
+-rw-r--r-- root root 3974 ./usr/include/openssl/dherr.h
+-rw-r--r-- root root 13403 ./usr/include/openssl/dh.h
+-rw-r--r-- root root 2972 ./usr/include/openssl/dsaerr.h
+-rw-r--r-- root root 10051 ./usr/include/openssl/dsa.h
+-rw-r--r-- root root 1578 ./usr/include/openssl/dtls1.h
+-rw-r--r-- root root 924 ./usr/include/openssl/ebcdic.h
+-rw-r--r-- root root 358 ./usr/include/openssl/ecdh.h
+-rw-r--r-- root root 358 ./usr/include/openssl/ecdsa.h
+-rw-r--r-- root root 15758 ./usr/include/openssl/ecerr.h
+-rw-r--r-- root root 63596 ./usr/include/openssl/ec.h
+-rw-r--r-- root root 5447 ./usr/include/openssl/engineerr.h
+-rw-r--r-- root root 34661 ./usr/include/openssl/engine.h
+-rw-r--r-- root root 8888 ./usr/include/openssl/e_os2.h
+-rw-r--r-- root root 11269 ./usr/include/openssl/err.h
+-rw-r--r-- root root 11427 ./usr/include/openssl/evperr.h
+-rw-r--r-- root root 76828 ./usr/include/openssl/evp.h
+-rw-r--r-- root root 1591 ./usr/include/openssl/hmac.h
+-rw-r--r-- root root 2099 ./usr/include/openssl/idea.h
+-rw-r--r-- root root 2122 ./usr/include/openssl/kdferr.h
+-rw-r--r-- root root 4326 ./usr/include/openssl/kdf.h
+-rw-r--r-- root root 9271 ./usr/include/openssl/lhash.h
+-rw-r--r-- root root 1054 ./usr/include/openssl/md2.h
+-rw-r--r-- root root 1322 ./usr/include/openssl/md4.h
+-rw-r--r-- root root 1320 ./usr/include/openssl/md5.h
+-rw-r--r-- root root 1053 ./usr/include/openssl/mdc2.h
+-rw-r--r-- root root 10478 ./usr/include/openssl/modes.h
+-rw-r--r-- root root 1316 ./usr/include/openssl/objectserr.h
+-rw-r--r-- root root 6633 ./usr/include/openssl/objects.h
+-rw-r--r-- root root 217522 ./usr/include/openssl/obj_mac.h
+-rw-r--r-- root root 3356 ./usr/include/openssl/ocsperr.h
+-rw-r--r-- root root 15305 ./usr/include/openssl/ocsp.h
+-rw-r--r-- root root 4520 ./usr/include/openssl/opensslconf-64.h
+-rw-r--r-- root root 564 ./usr/include/openssl/opensslconf.h
+-rw-r--r-- root root 4102 ./usr/include/openssl/opensslv.h
+-rw-r--r-- root root 6266 ./usr/include/openssl/ossl_typ.h
+-rw-r--r-- root root 415 ./usr/include/openssl/pem2.h
+-rw-r--r-- root root 5098 ./usr/include/openssl/pemerr.h
+-rw-r--r-- root root 15468 ./usr/include/openssl/pem.h
+-rw-r--r-- root root 3749 ./usr/include/openssl/pkcs12err.h
+-rw-r--r-- root root 9871 ./usr/include/openssl/pkcs12.h
+-rw-r--r-- root root 5110 ./usr/include/openssl/pkcs7err.h
+-rw-r--r-- root root 11590 ./usr/include/openssl/pkcs7.h
+-rw-r--r-- root root 4763 ./usr/include/openssl/rand_drbg.h
+-rw-r--r-- root root 4633 ./usr/include/openssl/randerr.h
+-rw-r--r-- root root 2213 ./usr/include/openssl/rand.h
+-rw-r--r-- root root 1534 ./usr/include/openssl/rc2.h
+-rw-r--r-- root root 825 ./usr/include/openssl/rc4.h
+-rw-r--r-- root root 1988 ./usr/include/openssl/rc5.h
+-rw-r--r-- root root 1243 ./usr/include/openssl/ripemd.h
+-rw-r--r-- root root 9075 ./usr/include/openssl/rsaerr.h
+-rw-r--r-- root root 22202 ./usr/include/openssl/rsa.h
+-rw-r--r-- root root 8139 ./usr/include/openssl/safestack.h
+-rw-r--r-- root root 3479 ./usr/include/openssl/seed.h
+-rw-r--r-- root root 3831 ./usr/include/openssl/sha.h
+-rw-r--r-- root root 3827 ./usr/include/openssl/srp.h
+-rw-r--r-- root root 1316 ./usr/include/openssl/srtp.h
+-rw-r--r-- root root 542 ./usr/include/openssl/ssl2.h
+-rw-r--r-- root root 14576 ./usr/include/openssl/ssl3.h
+-rw-r--r-- root root 46676 ./usr/include/openssl/sslerr.h
+-rw-r--r-- root root 111253 ./usr/include/openssl/ssl.h
+-rw-r--r-- root root 3095 ./usr/include/openssl/stack.h
+-rw-r--r-- root root 4399 ./usr/include/openssl/storeerr.h
+-rw-r--r-- root root 11199 ./usr/include/openssl/store.h
+-rw-r--r-- root root 1311 ./usr/include/openssl/symhacks.h
+-rw-r--r-- root root 72490 ./usr/include/openssl/tls1.h
+-rw-r--r-- root root 6746 ./usr/include/openssl/tserr.h
+-rw-r--r-- root root 22429 ./usr/include/openssl/ts.h
+-rw-r--r-- root root 1666 ./usr/include/openssl/txt_db.h
+-rw-r--r-- root root 2737 ./usr/include/openssl/uierr.h
+-rw-r--r-- root root 16052 ./usr/include/openssl/ui.h
+-rw-r--r-- root root 1377 ./usr/include/openssl/whrlpool.h
+-rw-r--r-- root root 6777 ./usr/include/openssl/x509err.h
+-rw-r--r-- root root 43123 ./usr/include/openssl/x509.h
+-rw-r--r-- root root 8777 ./usr/include/openssl/x509v3err.h
+-rw-r--r-- root root 33377 ./usr/include/openssl/x509v3.h
+-rw-r--r-- root root 32179 ./usr/include/openssl/x509_vfy.h
+-rw-r--r-- root root 4201 ./usr/include/panel.h
+-rw-r--r-- root root 2977 ./usr/include/paths.h
+-rw-r--r-- root root 15456 ./usr/include/pciaccess.h
+-rw-r--r-- root root 6783 ./usr/include/pcrecpparg.h
+-rw-r--r-- root root 26529 ./usr/include/pcrecpp.h
+-rw-r--r-- root root 31718 ./usr/include/pcre.h
+-rw-r--r-- root root 5631 ./usr/include/pcreposix.h
+-rw-r--r-- root root 6600 ./usr/include/pcre_scanner.h
+-rw-r--r-- root root 6312 ./usr/include/pcre_stringpiece.h
+drwxr-xr-x root root 4096 ./usr/include/pixman-1
+-rw-r--r-- root root 47735 ./usr/include/pixman-1/pixman.h
+-rw-r--r-- root root 1786 ./usr/include/pixman-1/pixman-version.h
+-rw-r--r-- root root 15029 ./usr/include/plugin-api.h
+lrwxrwxrwx root root 18 ./usr/include/pngconf.h -> libpng16/pngconf.h
+lrwxrwxrwx root root 14 ./usr/include/png.h -> libpng16/png.h
+lrwxrwxrwx root root 21 ./usr/include/pnglibconf.h -> libpng16/pnglibconf.h
+-rw-r--r-- root root 22 ./usr/include/poll.h
+-rw-r--r-- root root 6801 ./usr/include/printf.h
+drwxr-xr-x root root 4096 ./usr/include/proc
+-rw-r--r-- root root 509 ./usr/include/proc/alloc.h
+-rw-r--r-- root root 457 ./usr/include/proc/devname.h
+-rw-r--r-- root root 913 ./usr/include/proc/escape.h
+-rw-r--r-- root root 1068 ./usr/include/proc/numa.h
+-rw-r--r-- root root 2936 ./usr/include/proc/procps.h
+-rw-r--r-- root root 305 ./usr/include/proc/pwcache.h
+-rw-r--r-- root root 15204 ./usr/include/proc/readproc.h
+-rw-r--r-- root root 3477 ./usr/include/proc_service.h
+-rw-r--r-- root root 1000 ./usr/include/proc/sig.h
+-rw-r--r-- root root 1797 ./usr/include/proc/slab.h
+-rw-r--r-- root root 4820 ./usr/include/proc/sysinfo.h
+-rw-r--r-- root root 1480 ./usr/include/proc/version.h
+-rw-r--r-- root root 160 ./usr/include/proc/wchan.h
+-rw-r--r-- root root 202 ./usr/include/proc/whattime.h
+drwxr-xr-x root root 4096 ./usr/include/protocols
+-rw-r--r-- root root 3844 ./usr/include/protocols/routed.h
+-rw-r--r-- root root 2567 ./usr/include/protocols/rwhod.h
+-rw-r--r-- root root 4826 ./usr/include/protocols/talkd.h
+-rw-r--r-- root root 3881 ./usr/include/protocols/timed.h
+-rw-r--r-- root root 41701 ./usr/include/pthread.h
+-rw-r--r-- root root 1570 ./usr/include/pty.h
+-rw-r--r-- root root 6159 ./usr/include/pwd.h
+drwxr-xr-x root root 4096 ./usr/include/pycairo
+-rw-r--r-- root root 9152 ./usr/include/pycairo/py3cairo.h
+drwxr-xr-x root root 4096 ./usr/include/pygobject-3.0
+-rw-r--r-- root root 24983 ./usr/include/pygobject-3.0/pygobject.h
+drwxr-xr-x root root 4096 ./usr/include/python3.8
+-rw-r--r-- root root 30286 ./usr/include/python3.8/abstract.h
+-rw-r--r-- root root 1229 ./usr/include/python3.8/asdl.h
+-rw-r--r-- root root 948 ./usr/include/python3.8/ast.h
+-rw-r--r-- root root 468 ./usr/include/python3.8/bitset.h
+-rw-r--r-- root root 264 ./usr/include/python3.8/bltinmodule.h
+-rw-r--r-- root root 886 ./usr/include/python3.8/boolobject.h
+-rw-r--r-- root root 2114 ./usr/include/python3.8/bytearrayobject.h
+-rw-r--r-- root root 3301 ./usr/include/python3.8/bytes_methods.h
+-rw-r--r-- root root 8493 ./usr/include/python3.8/bytesobject.h
+-rw-r--r-- root root 713 ./usr/include/python3.8/cellobject.h
+-rw-r--r-- root root 8366 ./usr/include/python3.8/ceval.h
+-rw-r--r-- root root 1710 ./usr/include/python3.8/classobject.h
+-rw-r--r-- root root 6793 ./usr/include/python3.8/codecs.h
+-rw-r--r-- root root 7178 ./usr/include/python3.8/code.h
+-rw-r--r-- root root 3582 ./usr/include/python3.8/compile.h
+-rw-r--r-- root root 1807 ./usr/include/python3.8/complexobject.h
+-rw-r--r-- root root 2014 ./usr/include/python3.8/context.h
+drwxr-xr-x root root 4096 ./usr/include/python3.8/cpython
+-rw-r--r-- root root 12295 ./usr/include/python3.8/cpython/abstract.h
+-rw-r--r-- root root 3845 ./usr/include/python3.8/cpython/dictobject.h
+-rw-r--r-- root root 951 ./usr/include/python3.8/cpython/fileobject.h
+-rw-r--r-- root root 16028 ./usr/include/python3.8/cpython/initconfig.h
+-rw-r--r-- root root 456 ./usr/include/python3.8/cpython/interpreteridobject.h
+-rw-r--r-- root root 15691 ./usr/include/python3.8/cpython/object.h
+-rw-r--r-- root root 3600 ./usr/include/python3.8/cpython/objimpl.h
+-rw-r--r-- root root 4607 ./usr/include/python3.8/cpython/pyerrors.h
+-rw-r--r-- root root 2263 ./usr/include/python3.8/cpython/pylifecycle.h
+-rw-r--r-- root root 3511 ./usr/include/python3.8/cpython/pymem.h
+-rw-r--r-- root root 9810 ./usr/include/python3.8/cpython/pystate.h
+-rw-r--r-- root root 547 ./usr/include/python3.8/cpython/sysmodule.h
+-rw-r--r-- root root 473 ./usr/include/python3.8/cpython/traceback.h
+-rw-r--r-- root root 1036 ./usr/include/python3.8/cpython/tupleobject.h
+-rw-r--r-- root root 46299 ./usr/include/python3.8/cpython/unicodeobject.h
+-rw-r--r-- root root 9260 ./usr/include/python3.8/datetime.h
+-rw-r--r-- root root 3019 ./usr/include/python3.8/descrobject.h
+-rw-r--r-- root root 3716 ./usr/include/python3.8/dictobject.h
+-rw-r--r-- root root 458 ./usr/include/python3.8/dtoa.h
+-rw-r--r-- root root 22469 ./usr/include/python3.8/dynamic_annotations.h
+-rw-r--r-- root root 253 ./usr/include/python3.8/enumobject.h
+-rw-r--r-- root root 1695 ./usr/include/python3.8/errcode.h
+-rw-r--r-- root root 1209 ./usr/include/python3.8/eval.h
+-rw-r--r-- root root 1342 ./usr/include/python3.8/fileobject.h
+-rw-r--r-- root root 4352 ./usr/include/python3.8/fileutils.h
+-rw-r--r-- root root 4794 ./usr/include/python3.8/floatobject.h
+-rw-r--r-- root root 3317 ./usr/include/python3.8/frameobject.h
+-rw-r--r-- root root 4200 ./usr/include/python3.8/funcobject.h
+-rw-r--r-- root root 3720 ./usr/include/python3.8/genobject.h
+-rw-r--r-- root root 2118 ./usr/include/python3.8/graminit.h
+-rw-r--r-- root root 1821 ./usr/include/python3.8/grammar.h
+-rw-r--r-- root root 4926 ./usr/include/python3.8/import.h
+drwxr-xr-x root root 4096 ./usr/include/python3.8/internal
+-rw-r--r-- root root 1126 ./usr/include/python3.8/internal/pycore_accu.h
+-rw-r--r-- root root 16944 ./usr/include/python3.8/internal/pycore_atomic.h
+-rw-r--r-- root root 966 ./usr/include/python3.8/internal/pycore_ceval.h
+-rw-r--r-- root root 542 ./usr/include/python3.8/internal/pycore_code.h
+-rw-r--r-- root root 2809 ./usr/include/python3.8/internal/pycore_condvar.h
+-rw-r--r-- root root 779 ./usr/include/python3.8/internal/pycore_context.h
+-rw-r--r-- root root 1254 ./usr/include/python3.8/internal/pycore_fileutils.h
+-rw-r--r-- root root 490 ./usr/include/python3.8/internal/pycore_getopt.h
+-rw-r--r-- root root 1520 ./usr/include/python3.8/internal/pycore_gil.h
+-rw-r--r-- root root 3128 ./usr/include/python3.8/internal/pycore_hamt.h
+-rw-r--r-- root root 5168 ./usr/include/python3.8/internal/pycore_initconfig.h
+-rw-r--r-- root root 2896 ./usr/include/python3.8/internal/pycore_object.h
+-rw-r--r-- root root 2037 ./usr/include/python3.8/internal/pycore_pathconfig.h
+-rw-r--r-- root root 1329 ./usr/include/python3.8/internal/pycore_pyerrors.h
+-rw-r--r-- root root 206 ./usr/include/python3.8/internal/pycore_pyhash.h
+-rw-r--r-- root root 3758 ./usr/include/python3.8/internal/pycore_pylifecycle.h
+-rw-r--r-- root root 8217 ./usr/include/python3.8/internal/pycore_pymem.h
+-rw-r--r-- root root 9494 ./usr/include/python3.8/internal/pycore_pystate.h
+-rw-r--r-- root root 3076 ./usr/include/python3.8/internal/pycore_traceback.h
+-rw-r--r-- root root 418 ./usr/include/python3.8/internal/pycore_tupleobject.h
+-rw-r--r-- root root 591 ./usr/include/python3.8/internal/pycore_warnings.h
+-rw-r--r-- root root 334 ./usr/include/python3.8/interpreteridobject.h
+-rw-r--r-- root root 861 ./usr/include/python3.8/intrcheck.h
+-rw-r--r-- root root 567 ./usr/include/python3.8/iterobject.h
+-rw-r--r-- root root 2927 ./usr/include/python3.8/listobject.h
+-rw-r--r-- root root 3799 ./usr/include/python3.8/longintrepr.h
+-rw-r--r-- root root 9520 ./usr/include/python3.8/longobject.h
+-rw-r--r-- root root 803 ./usr/include/python3.8/marshal.h
+-rw-r--r-- root root 2765 ./usr/include/python3.8/memoryobject.h
+-rw-r--r-- root root 4406 ./usr/include/python3.8/methodobject.h
+-rw-r--r-- root root 9591 ./usr/include/python3.8/modsupport.h
+-rw-r--r-- root root 2362 ./usr/include/python3.8/moduleobject.h
+-rw-r--r-- root root 349 ./usr/include/python3.8/namespaceobject.h
+-rw-r--r-- root root 1328 ./usr/include/python3.8/node.h
+-rw-r--r-- root root 29599 ./usr/include/python3.8/object.h
+-rw-r--r-- root root 10537 ./usr/include/python3.8/objimpl.h
+-rw-r--r-- root root 1300 ./usr/include/python3.8/odictobject.h
+-rw-r--r-- root root 5164 ./usr/include/python3.8/opcode.h
+-rw-r--r-- root root 737 ./usr/include/python3.8/osdefs.h
+-rw-r--r-- root root 291 ./usr/include/python3.8/osmodule.h
+-rw-r--r-- root root 2958 ./usr/include/python3.8/parsetok.h
+-rw-r--r-- root root 1297 ./usr/include/python3.8/patchlevel.h
+-rw-r--r-- root root 847 ./usr/include/python3.8/picklebufobject.h
+-rw-r--r-- root root 2744 ./usr/include/python3.8/pyarena.h
+-rw-r--r-- root root 1726 ./usr/include/python3.8/pycapsule.h
+-rw-r--r-- root root 47511 ./usr/include/python3.8/pyconfig-64.h
+-rw-r--r-- root root 560 ./usr/include/python3.8/pyconfig.h
+-rw-r--r-- root root 1320 ./usr/include/python3.8/pyctype.h
+-rw-r--r-- root root 2477 ./usr/include/python3.8/py_curses.h
+-rw-r--r-- root root 1214 ./usr/include/python3.8/pydebug.h
+-rw-r--r-- root root 2413 ./usr/include/python3.8/pydtrace.h
+-rw-r--r-- root root 12786 ./usr/include/python3.8/pyerrors.h
+-rw-r--r-- root root 2450 ./usr/include/python3.8/pyexpat.h
+-rw-r--r-- root root 341 ./usr/include/python3.8/pyfpe.h
+-rw-r--r-- root root 4140 ./usr/include/python3.8/pyhash.h
+-rw-r--r-- root root 2081 ./usr/include/python3.8/pylifecycle.h
+-rw-r--r-- root root 2989 ./usr/include/python3.8/pymacconfig.h
+-rw-r--r-- root root 3778 ./usr/include/python3.8/pymacro.h
+-rw-r--r-- root root 8312 ./usr/include/python3.8/pymath.h
+-rw-r--r-- root root 5406 ./usr/include/python3.8/pymem.h
+-rw-r--r-- root root 30221 ./usr/include/python3.8/pyport.h
+-rw-r--r-- root root 4686 ./usr/include/python3.8/pystate.h
+-rw-r--r-- root root 436 ./usr/include/python3.8/pystrcmp.h
+-rw-r--r-- root root 849 ./usr/include/python3.8/pystrhex.h
+-rw-r--r-- root root 1483 ./usr/include/python3.8/pystrtod.h
+-rw-r--r-- root root 26491 ./usr/include/python3.8/Python-ast.h
+-rw-r--r-- root root 3615 ./usr/include/python3.8/Python.h
+-rw-r--r-- root root 7688 ./usr/include/python3.8/pythonrun.h
+-rw-r--r-- root root 5660 ./usr/include/python3.8/pythread.h
+-rw-r--r-- root root 8926 ./usr/include/python3.8/pytime.h
+-rw-r--r-- root root 629 ./usr/include/python3.8/rangeobject.h
+-rw-r--r-- root root 3362 ./usr/include/python3.8/setobject.h
+-rw-r--r-- root root 2517 ./usr/include/python3.8/sliceobject.h
+-rw-r--r-- root root 2030 ./usr/include/python3.8/structmember.h
+-rw-r--r-- root root 1377 ./usr/include/python3.8/structseq.h
+-rw-r--r-- root root 5308 ./usr/include/python3.8/symtable.h
+-rw-r--r-- root root 1242 ./usr/include/python3.8/sysmodule.h
+-rw-r--r-- root root 2429 ./usr/include/python3.8/token.h
+-rw-r--r-- root root 601 ./usr/include/python3.8/traceback.h
+-rw-r--r-- root root 1114 ./usr/include/python3.8/tracemalloc.h
+-rw-r--r-- root root 1661 ./usr/include/python3.8/tupleobject.h
+-rw-r--r-- root root 2253 ./usr/include/python3.8/typeslots.h
+-rw-r--r-- root root 1056 ./usr/include/python3.8/ucnhash.h
+-rw-r--r-- root root 35732 ./usr/include/python3.8/unicodeobject.h
+-rw-r--r-- root root 1776 ./usr/include/python3.8/warnings.h
+-rw-r--r-- root root 2866 ./usr/include/python3.8/weakrefobject.h
+drwxr-xr-x root root 4096 ./usr/include/rdma
+-rw-r--r-- root root 3291 ./usr/include/rdma/bnxt_re-abi.h
+-rw-r--r-- root root 2468 ./usr/include/rdma/cxgb3-abi.h
+-rw-r--r-- root root 3122 ./usr/include/rdma/cxgb4-abi.h
+-rw-r--r-- root root 2141 ./usr/include/rdma/efa-abi.h
+drwxr-xr-x root root 4096 ./usr/include/rdma/hfi
+-rw-r--r-- root root 6618 ./usr/include/rdma/hfi/hfi1_ioctl.h
+-rw-r--r-- root root 9225 ./usr/include/rdma/hfi/hfi1_user.h
+-rw-r--r-- root root 2388 ./usr/include/rdma/hns-abi.h
+-rw-r--r-- root root 3030 ./usr/include/rdma/i40iw-abi.h
+-rw-r--r-- root root 6046 ./usr/include/rdma/ib_user_ioctl_cmds.h
+-rw-r--r-- root root 5655 ./usr/include/rdma/ib_user_ioctl_verbs.h
+-rw-r--r-- root root 8531 ./usr/include/rdma/ib_user_mad.h
+-rw-r--r-- root root 2305 ./usr/include/rdma/ib_user_sa.h
+-rw-r--r-- root root 26750 ./usr/include/rdma/ib_user_verbs.h
+-rw-r--r-- root root 5117 ./usr/include/rdma/mlx4-abi.h
+-rw-r--r-- root root 12968 ./usr/include/rdma/mlx5-abi.h
+-rw-r--r-- root root 7368 ./usr/include/rdma/mlx5_user_ioctl_cmds.h
+-rw-r--r-- root root 2624 ./usr/include/rdma/mlx5_user_ioctl_verbs.h
+-rw-r--r-- root root 3055 ./usr/include/rdma/mthca-abi.h
+-rw-r--r-- root root 3487 ./usr/include/rdma/nes-abi.h
+-rw-r--r-- root root 4116 ./usr/include/rdma/ocrdma-abi.h
+-rw-r--r-- root root 3160 ./usr/include/rdma/qedr-abi.h
+-rw-r--r-- root root 14231 ./usr/include/rdma/rdma_netlink.h
+-rw-r--r-- root root 6903 ./usr/include/rdma/rdma_user_cm.h
+-rw-r--r-- root root 3008 ./usr/include/rdma/rdma_user_ioctl_cmds.h
+-rw-r--r-- root root 3749 ./usr/include/rdma/rdma_user_ioctl.h
+-rw-r--r-- root root 3839 ./usr/include/rdma/rdma_user_rxe.h
+-rw-r--r-- root root 1771 ./usr/include/rdma/rvt-abi.h
+-rw-r--r-- root root 3430 ./usr/include/rdma/siw-abi.h
+-rw-r--r-- root root 7807 ./usr/include/rdma/vmw_pvrdma-abi.h
+drwxr-xr-x root root 4096 ./usr/include/readline
+-rw-r--r-- root root 4697 ./usr/include/readline/chardefs.h
+-rw-r--r-- root root 10779 ./usr/include/readline/history.h
+-rw-r--r-- root root 3260 ./usr/include/readline/keymaps.h
+-rw-r--r-- root root 39338 ./usr/include/readline/readline.h
+-rw-r--r-- root root 2829 ./usr/include/readline/rlconf.h
+-rw-r--r-- root root 1835 ./usr/include/readline/rlstdc.h
+-rw-r--r-- root root 3193 ./usr/include/readline/rltypedefs.h
+-rw-r--r-- root root 3046 ./usr/include/readline/tilde.h
+-rw-r--r-- root root 963 ./usr/include/re_comp.h
+-rw-r--r-- root root 24715 ./usr/include/regex.h
+-rw-r--r-- root root 1448 ./usr/include/regexp.h
+-rw-r--r-- root root 11873 ./usr/include/resolv.h
+drwxr-xr-x root root 4096 ./usr/include/rpc
+-rw-r--r-- root root 2897 ./usr/include/rpc/netdb.h
+drwxr-xr-x root root 4096 ./usr/include/rpcsvc
+-rw-r--r-- root root 2675 ./usr/include/rpcsvc/nis_callback.h
+-rw-r--r-- root root 2178 ./usr/include/rpcsvc/nis_callback.x
+-rw-r--r-- root root 15879 ./usr/include/rpcsvc/nis.h
+-rw-r--r-- root root 12340 ./usr/include/rpcsvc/nislib.h
+-rw-r--r-- root root 13090 ./usr/include/rpcsvc/nis_object.x
+-rw-r--r-- root root 5370 ./usr/include/rpcsvc/nis_tags.h
+-rw-r--r-- root root 16802 ./usr/include/rpcsvc/nis.x
+-rw-r--r-- root root 3481 ./usr/include/rpcsvc/ypclnt.h
+-rw-r--r-- root root 7964 ./usr/include/rpcsvc/yp.h
+-rw-r--r-- root root 913 ./usr/include/rpcsvc/yppasswd.h
+-rw-r--r-- root root 2286 ./usr/include/rpcsvc/yppasswd.x
+-rw-r--r-- root root 14920 ./usr/include/rpcsvc/yp_prot.h
+-rw-r--r-- root root 3027 ./usr/include/rpcsvc/ypupd.h
+-rw-r--r-- root root 6981 ./usr/include/rpcsvc/yp.x
+-rw-r--r-- root root 4733 ./usr/include/sched.h
+drwxr-xr-x root root 4096 ./usr/include/scsi
+-rw-r--r-- root root 10168 ./usr/include/scsi/cxlflash_ioctl.h
+drwxr-xr-x root root 4096 ./usr/include/scsi/fc
+-rw-r--r-- root root 26902 ./usr/include/scsi/fc/fc_els.h
+-rw-r--r-- root root 11703 ./usr/include/scsi/fc/fc_fs.h
+-rw-r--r-- root root 2231 ./usr/include/scsi/fc/fc_gs.h
+-rw-r--r-- root root 4317 ./usr/include/scsi/fc/fc_ns.h
+-rw-r--r-- root root 8027 ./usr/include/scsi/scsi_bsg_fc.h
+-rw-r--r-- root root 2795 ./usr/include/scsi/scsi_bsg_ufs.h
+-rw-r--r-- root root 6970 ./usr/include/scsi/scsi.h
+-rw-r--r-- root root 1316 ./usr/include/scsi/scsi_ioctl.h
+-rw-r--r-- root root 1264 ./usr/include/scsi/scsi_netlink_fc.h
+-rw-r--r-- root root 2906 ./usr/include/scsi/scsi_netlink.h
+-rw-r--r-- root root 11662 ./usr/include/scsi/sg.h
+-rw-r--r-- root root 5450 ./usr/include/search.h
+-rw-r--r-- root root 2735 ./usr/include/semaphore.h
+-rw-r--r-- root root 3670 ./usr/include/setjmp.h
+-rw-r--r-- root root 1344 ./usr/include/sgtty.h
+-rw-r--r-- root root 5472 ./usr/include/shadow.h
+-rw-r--r-- root root 12309 ./usr/include/signal.h
+drwxr-xr-x root root 4096 ./usr/include/sound
+-rw-r--r-- root root 21847 ./usr/include/sound/asequencer.h
+-rw-r--r-- root root 22222 ./usr/include/sound/asoc.h
+-rw-r--r-- root root 4377 ./usr/include/sound/asound_fm.h
+-rw-r--r-- root root 46564 ./usr/include/sound/asound.h
+-rw-r--r-- root root 6743 ./usr/include/sound/compress_offload.h
+-rw-r--r-- root root 16992 ./usr/include/sound/compress_params.h
+-rw-r--r-- root root 17240 ./usr/include/sound/emu10k1.h
+-rw-r--r-- root root 3245 ./usr/include/sound/firewire.h
+-rw-r--r-- root root 3140 ./usr/include/sound/hdsp.h
+-rw-r--r-- root root 5486 ./usr/include/sound/hdspm.h
+-rw-r--r-- root root 4304 ./usr/include/sound/sb16_csp.h
+-rw-r--r-- root root 7494 ./usr/include/sound/sfnt_info.h
+-rw-r--r-- root root 5195 ./usr/include/sound/skl-tplg-interface.h
+-rw-r--r-- root root 12191 ./usr/include/sound/snd_sst_tokens.h
+drwxr-xr-x root root 4096 ./usr/include/sound/sof
+-rw-r--r-- root root 2036 ./usr/include/sound/sof/abi.h
+-rw-r--r-- root root 2267 ./usr/include/sound/sof/fw.h
+-rw-r--r-- root root 922 ./usr/include/sound/sof/header.h
+-rw-r--r-- root root 3267 ./usr/include/sound/sof/tokens.h
+-rw-r--r-- root root 4601 ./usr/include/sound/tlv.h
+-rw-r--r-- root root 1939 ./usr/include/sound/usb_stream.h
+-rw-r--r-- root root 7758 ./usr/include/spawn.h
+-rw-r--r-- root root 34802 ./usr/include/sqlite3ext.h
+-rw-r--r-- root root 576161 ./usr/include/sqlite3.h
+drwxr-xr-x root root 4096 ./usr/include/ss
+-rw-r--r-- root root 1193 ./usr/include/ss/ss_err.h
+-rw-r--r-- root root 3166 ./usr/include/ss/ss.h
+-rw-r--r-- root root 264 ./usr/include/stab.h
+-rw-r--r-- root root 2290 ./usr/include/stdc-predef.h
+-rw-r--r-- root root 8474 ./usr/include/stdint.h
+-rw-r--r-- root root 2800 ./usr/include/stdio_ext.h
+-rw-r--r-- root root 29950 ./usr/include/stdio.h
+-rw-r--r-- root root 35835 ./usr/include/stdlib.h
+-rw-r--r-- root root 17660 ./usr/include/string.h
+-rw-r--r-- root root 4753 ./usr/include/strings.h
+-rw-r--r-- root root 2191 ./usr/include/symcat.h
+drwxr-xr-x root root 4096 ./usr/include/sys
+-rw-r--r-- root root 3302 ./usr/include/sys/acct.h
+-rw-r--r-- root root 3700 ./usr/include/sys/acl.h
+-rw-r--r-- root root 1260 ./usr/include/sys/auxv.h
+-rw-r--r-- root root 86 ./usr/include/sys/bitypes.h
+-rw-r--r-- root root 25 ./usr/include/syscall.h
+-rw-r--r-- root root 6996 ./usr/include/sys/capability.h
+-rw-r--r-- root root 18308 ./usr/include/sys/cdefs.h
+-rw-r--r-- root root 3576 ./usr/include/sys/debugreg.h
+-rw-r--r-- root root 922 ./usr/include/sys/dir.h
+-rw-r--r-- root root 1024 ./usr/include/sys/elf.h
+-rw-r--r-- root root 4411 ./usr/include/sys/epoll.h
+-rw-r--r-- root root 19 ./usr/include/sys/errno.h
+-rw-r--r-- root root 1400 ./usr/include/sys/eventfd.h
+-rw-r--r-- root root 5232 ./usr/include/sysexits.h
+-rw-r--r-- root root 1292 ./usr/include/sys/fanotify.h
+-rw-r--r-- root root 19 ./usr/include/sys/fcntl.h
+-rw-r--r-- root root 1675 ./usr/include/sys/file.h
+-rw-r--r-- root root 1188 ./usr/include/sys/fsuid.h
+-rw-r--r-- root root 6210 ./usr/include/sys/gmon.h
+-rw-r--r-- root root 2636 ./usr/include/sys/gmon_out.h
+-rw-r--r-- root root 3901 ./usr/include/sys/inotify.h
+-rw-r--r-- root root 1740 ./usr/include/sys/ioctl.h
+-rw-r--r-- root root 5086 ./usr/include/sys/io.h
+-rw-r--r-- root root 1462 ./usr/include/sys/ipc.h
+-rw-r--r-- root root 1112 ./usr/include/sys/kd.h
+-rw-r--r-- root root 1204 ./usr/include/sys/klog.h
+-rw-r--r-- root root 24 ./usr/include/syslog.h
+-rw-r--r-- root root 5552 ./usr/include/sys/mman.h
+-rw-r--r-- root root 5612 ./usr/include/sys/mount.h
+-rw-r--r-- root root 2366 ./usr/include/sys/msg.h
+-rw-r--r-- root root 11163 ./usr/include/sys/mtio.h
+-rw-r--r-- root root 3149 ./usr/include/sys/param.h
+-rw-r--r-- root root 923 ./usr/include/sys/pci.h
+-rw-r--r-- root root 1127 ./usr/include/sys/perm.h
+-rw-r--r-- root root 2723 ./usr/include/sys/personality.h
+-rw-r--r-- root root 2550 ./usr/include/sys/poll.h
+-rw-r--r-- root root 1059 ./usr/include/sys/prctl.h
+-rw-r--r-- root root 4338 ./usr/include/sys/procfs.h
+-rw-r--r-- root root 1959 ./usr/include/sys/profil.h
+-rw-r--r-- root root 4680 ./usr/include/sys/psx_syscall.h
+-rw-r--r-- root root 6126 ./usr/include/sys/ptrace.h
+-rw-r--r-- root root 19539 ./usr/include/sys/queue.h
+-rw-r--r-- root root 5173 ./usr/include/sys/quota.h
+-rw-r--r-- root root 1444 ./usr/include/sys/random.h
+-rw-r--r-- root root 1182 ./usr/include/sys/raw.h
+-rw-r--r-- root root 1633 ./usr/include/sys/reboot.h
+-rw-r--r-- root root 1827 ./usr/include/sys/reg.h
+-rw-r--r-- root root 3646 ./usr/include/sys/resource.h
+-rw-r--r-- root root 4141 ./usr/include/sys/select.h
+-rw-r--r-- root root 2037 ./usr/include/sys/sem.h
+-rw-r--r-- root root 1806 ./usr/include/sys/sendfile.h
+-rw-r--r-- root root 1874 ./usr/include/sys/shm.h
+-rw-r--r-- root root 1714 ./usr/include/sys/signalfd.h
+-rw-r--r-- root root 20 ./usr/include/sys/signal.h
+-rw-r--r-- root root 10205 ./usr/include/sys/socket.h
+-rw-r--r-- root root 141 ./usr/include/sys/socketvar.h
+-rw-r--r-- root root 29 ./usr/include/sys/soundcard.h
+-rw-r--r-- root root 2094 ./usr/include/sys/statfs.h
+-rw-r--r-- root root 16237 ./usr/include/sys/stat.h
+-rw-r--r-- root root 2820 ./usr/include/sys/statvfs.h
+-rw-r--r-- root root 1593 ./usr/include/sys/swap.h
+-rw-r--r-- root root 1256 ./usr/include/sys/syscall.h
+-rw-r--r-- root root 2105 ./usr/include/sys/sysctl.h
+-rw-r--r-- root root 1518 ./usr/include/sys/sysinfo.h
+-rw-r--r-- root root 7702 ./usr/include/sys/syslog.h
+-rw-r--r-- root root 2103 ./usr/include/sys/sysmacros.h
+-rw-r--r-- root root 74 ./usr/include/sys/termios.h
+-rw-r--r-- root root 1420 ./usr/include/sys/timeb.h
+-rw-r--r-- root root 6754 ./usr/include/sys/time.h
+-rw-r--r-- root root 1874 ./usr/include/sys/timerfd.h
+-rw-r--r-- root root 1597 ./usr/include/sys/times.h
+-rw-r--r-- root root 2206 ./usr/include/sys/timex.h
+-rw-r--r-- root root 2499 ./usr/include/sys/ttychars.h
+-rw-r--r-- root root 3568 ./usr/include/sys/ttydefaults.h
+-rw-r--r-- root root 5713 ./usr/include/sys/types.h
+-rw-r--r-- root root 5842 ./usr/include/sys/ucontext.h
+-rw-r--r-- root root 6280 ./usr/include/sys/uio.h
+-rw-r--r-- root root 1453 ./usr/include/sys/un.h
+-rw-r--r-- root root 20 ./usr/include/sys/unistd.h
+-rw-r--r-- root root 5208 ./usr/include/sys/user.h
+-rw-r--r-- root root 2481 ./usr/include/sys/utsname.h
+-rw-r--r-- root root 161 ./usr/include/sys/vfs.h
+-rw-r--r-- root root 1880 ./usr/include/sys/vlimit.h
+-rw-r--r-- root root 1199 ./usr/include/sys/vm86.h
+-rw-r--r-- root root 22 ./usr/include/sys/vt.h
+-rw-r--r-- root root 2463 ./usr/include/sys/vtimes.h
+-rw-r--r-- root root 5605 ./usr/include/sys/wait.h
+-rw-r--r-- root root 4275 ./usr/include/sys/xattr.h
+-rw-r--r-- root root 3786 ./usr/include/tar.h
+-rw-r--r-- root root 9130 ./usr/include/tcpd.h
+-rw-r--r-- root root 3471 ./usr/include/termcap.h
+-rw-r--r-- root root 9096 ./usr/include/term_entry.h
+-rw-r--r-- root root 40447 ./usr/include/term.h
+-rw-r--r-- root root 214 ./usr/include/termio.h
+-rw-r--r-- root root 3599 ./usr/include/termios.h
+-rw-r--r-- root root 37419 ./usr/include/tgmath.h
+-rw-r--r-- root root 16024 ./usr/include/thread_db.h
+-rw-r--r-- root root 6661 ./usr/include/threads.h
+-rw-r--r-- root root 14830 ./usr/include/tic.h
+-rw-r--r-- root root 10276 ./usr/include/time.h
+drwxr-xr-x root root 4096 ./usr/include/tirpc
+-rw-r--r-- root root 2195 ./usr/include/tirpc/netconfig.h
+drwxr-xr-x root root 4096 ./usr/include/tirpc/rpc
+-rw-r--r-- root root 4143 ./usr/include/tirpc/rpc/auth_des.h
+-rw-r--r-- root root 11085 ./usr/include/tirpc/rpc/auth.h
+-rw-r--r-- root root 3009 ./usr/include/tirpc/rpc/auth_unix.h
+-rw-r--r-- root root 17067 ./usr/include/tirpc/rpc/clnt.h
+-rw-r--r-- root root 3904 ./usr/include/tirpc/rpc/clnt_soc.h
+-rw-r--r-- root root 2202 ./usr/include/tirpc/rpc/clnt_stat.h
+-rw-r--r-- root root 3706 ./usr/include/tirpc/rpc/des_crypt.h
+-rw-r--r-- root root 3045 ./usr/include/tirpc/rpc/des.h
+-rw-r--r-- root root 8021 ./usr/include/tirpc/rpc/key_prot.h
+-rw-r--r-- root root 2431 ./usr/include/tirpc/rpc/nettype.h
+-rw-r--r-- root root 3582 ./usr/include/tirpc/rpc/pmap_clnt.h
+-rw-r--r-- root root 4064 ./usr/include/tirpc/rpc/pmap_prot.h
+-rw-r--r-- root root 2450 ./usr/include/tirpc/rpc/pmap_rmt.h
+-rw-r--r-- root root 2117 ./usr/include/tirpc/rpc/raw.h
+-rw-r--r-- root root 3496 ./usr/include/tirpc/rpc/rpcb_clnt.h
+-rw-r--r-- root root 25776 ./usr/include/tirpc/rpc/rpcb_prot.h
+-rw-r--r-- root root 14673 ./usr/include/tirpc/rpc/rpcb_prot.x
+-rw-r--r-- root root 3102 ./usr/include/tirpc/rpc/rpc_com.h
+-rw-r--r-- root root 2712 ./usr/include/tirpc/rpc/rpcent.h
+-rw-r--r-- root root 4130 ./usr/include/tirpc/rpc/rpc.h
+-rw-r--r-- root root 5340 ./usr/include/tirpc/rpc/rpc_msg.h
+drwxr-xr-x root root 4096 ./usr/include/tirpc/rpcsvc
+-rw-r--r-- root root 3041 ./usr/include/tirpc/rpc/svc_auth.h
+-rw-r--r-- root root 2414 ./usr/include/tirpc/rpcsvc/crypt.h
+-rw-r--r-- root root 3929 ./usr/include/tirpc/rpcsvc/crypt.x
+-rw-r--r-- root root 2462 ./usr/include/tirpc/rpc/svc_dg.h
+-rw-r--r-- root root 14589 ./usr/include/tirpc/rpc/svc.h
+-rw-r--r-- root root 1912 ./usr/include/tirpc/rpc/svc_mt.h
+-rw-r--r-- root root 3749 ./usr/include/tirpc/rpc/svc_soc.h
+-rw-r--r-- root root 3756 ./usr/include/tirpc/rpc/types.h
+-rw-r--r-- root root 13372 ./usr/include/tirpc/rpc/xdr.h
+-rw-r--r-- root root 2494 ./usr/include/ttyent.h
+-rw-r--r-- root root 2002 ./usr/include/uchar.h
+-rw-r--r-- root root 2037 ./usr/include/ucontext.h
+-rw-r--r-- root root 8998 ./usr/include/udev.h
+-rw-r--r-- root root 1584 ./usr/include/ulimit.h
+-rw-r--r-- root root 3177 ./usr/include/unctrl.h
+-rw-r--r-- root root 42804 ./usr/include/unistd.h
+-rw-r--r-- root root 1502 ./usr/include/utime.h
+-rw-r--r-- root root 3223 ./usr/include/utmp.h
+-rw-r--r-- root root 4100 ./usr/include/utmpx.h
+drwxr-xr-x root root 4096 ./usr/include/uuid
+-rw-r--r-- root root 3910 ./usr/include/uuid/uuid.h
+-rw-r--r-- root root 1956 ./usr/include/values.h
+drwxr-xr-x root root 4096 ./usr/include/video
+-rw-r--r-- root root 213 ./usr/include/video/edid.h
+-rw-r--r-- root root 7643 ./usr/include/video/sisfb.h
+-rw-r--r-- root root 1078 ./usr/include/video/uvesafb.h
+-rw-r--r-- root root 22 ./usr/include/wait.h
+-rw-r--r-- root root 8755 ./usr/include/wayland-client-core.h
+-rw-r--r-- root root 1573 ./usr/include/wayland-client.h
+-rw-r--r-- root root 184232 ./usr/include/wayland-client-protocol.h
+-rw-r--r-- root root 2260 ./usr/include/wayland-cursor.h
+-rw-r--r-- root root 1848 ./usr/include/wayland-egl-backend.h
+-rw-r--r-- root root 1788 ./usr/include/wayland-egl-core.h
+-rw-r--r-- root root 1313 ./usr/include/wayland-egl.h
+-rw-r--r-- root root 19021 ./usr/include/wayland-server-core.h
+-rw-r--r-- root root 3237 ./usr/include/wayland-server.h
+-rw-r--r-- root root 144281 ./usr/include/wayland-server-protocol.h
+-rw-r--r-- root root 24118 ./usr/include/wayland-util.h
+-rw-r--r-- root root 1354 ./usr/include/wayland-version.h
+-rw-r--r-- root root 31111 ./usr/include/wchar.h
+-rw-r--r-- root root 5549 ./usr/include/wctype.h
+-rw-r--r-- root root 2502 ./usr/include/wordexp.h
+drwxr-xr-x root root 4096 ./usr/include/X11
+-rw-r--r-- root root 2293 ./usr/include/X11/ap_keysym.h
+-rw-r--r-- root root 3118 ./usr/include/X11/cursorfont.h
+-rw-r--r-- root root 2815 ./usr/include/X11/DECkeysym.h
+drwxr-xr-x root root 4096 ./usr/include/X11/dri
+-rw-r--r-- root root 2445 ./usr/include/X11/dri/xf86dri.h
+-rw-r--r-- root root 9669 ./usr/include/X11/dri/xf86driproto.h
+-rw-r--r-- root root 174 ./usr/include/X11/dri/xf86dristr.h
+drwxr-xr-x root root 4096 ./usr/include/X11/extensions
+-rw-r--r-- root root 1705 ./usr/include/X11/extensions/ag.h
+-rw-r--r-- root root 5005 ./usr/include/X11/extensions/agproto.h
+-rw-r--r-- root root 2900 ./usr/include/X11/extensions/applewmconst.h
+-rw-r--r-- root root 8098 ./usr/include/X11/extensions/applewmproto.h
+-rw-r--r-- root root 1909 ./usr/include/X11/extensions/bigreqsproto.h
+-rw-r--r-- root root 187 ./usr/include/X11/extensions/bigreqstr.h
+-rw-r--r-- root root 3130 ./usr/include/X11/extensions/composite.h
+-rw-r--r-- root root 5462 ./usr/include/X11/extensions/compositeproto.h
+-rw-r--r-- root root 1353 ./usr/include/X11/extensions/cup.h
+-rw-r--r-- root root 3065 ./usr/include/X11/extensions/cupproto.h
+-rw-r--r-- root root 3615 ./usr/include/X11/extensions/damageproto.h
+-rw-r--r-- root root 1893 ./usr/include/X11/extensions/damagewire.h
+-rw-r--r-- root root 2159 ./usr/include/X11/extensions/dbe.h
+-rw-r--r-- root root 7343 ./usr/include/X11/extensions/dbeproto.h
+-rw-r--r-- root root 2373 ./usr/include/X11/extensions/dmx.h
+-rw-r--r-- root root 13343 ./usr/include/X11/extensions/dmxproto.h
+-rw-r--r-- root root 1778 ./usr/include/X11/extensions/dpmsconst.h
+-rw-r--r-- root root 2161 ./usr/include/X11/extensions/dpms.h
+-rw-r--r-- root root 5288 ./usr/include/X11/extensions/dpmsproto.h
+-rw-r--r-- root root 8318 ./usr/include/X11/extensions/dri2proto.h
+-rw-r--r-- root root 2468 ./usr/include/X11/extensions/dri2tokens.h
+-rw-r--r-- root root 6129 ./usr/include/X11/extensions/dri3proto.h
+-rw-r--r-- root root 1563 ./usr/include/X11/extensions/EVI.h
+-rw-r--r-- root root 3006 ./usr/include/X11/extensions/EVIproto.h
+-rw-r--r-- root root 6096 ./usr/include/X11/extensions/extutil.h
+-rw-r--r-- root root 1782 ./usr/include/X11/extensions/ge.h
+-rw-r--r-- root root 2351 ./usr/include/X11/extensions/geproto.h
+-rw-r--r-- root root 2236 ./usr/include/X11/extensions/lbx.h
+-rw-r--r-- root root 24782 ./usr/include/X11/extensions/lbxproto.h
+-rw-r--r-- root root 1509 ./usr/include/X11/extensions/mitmiscconst.h
+-rw-r--r-- root root 1741 ./usr/include/X11/extensions/MITMisc.h
+-rw-r--r-- root root 2229 ./usr/include/X11/extensions/mitmiscproto.h
+-rw-r--r-- root root 2575 ./usr/include/X11/extensions/multibufconst.h
+-rw-r--r-- root root 5835 ./usr/include/X11/extensions/multibuf.h
+-rw-r--r-- root root 8600 ./usr/include/X11/extensions/multibufproto.h
+-rw-r--r-- root root 5473 ./usr/include/X11/extensions/panoramiXproto.h
+-rw-r--r-- root root 5409 ./usr/include/X11/extensions/presentproto.h
+-rw-r--r-- root root 3597 ./usr/include/X11/extensions/presenttokens.h
+-rw-r--r-- root root 6909 ./usr/include/X11/extensions/randr.h
+-rw-r--r-- root root 25751 ./usr/include/X11/extensions/randrproto.h
+-rw-r--r-- root root 2064 ./usr/include/X11/extensions/recordconst.h
+-rw-r--r-- root root 7634 ./usr/include/X11/extensions/recordproto.h
+-rw-r--r-- root root 258 ./usr/include/X11/extensions/recordstr.h
+-rw-r--r-- root root 6933 ./usr/include/X11/extensions/render.h
+-rw-r--r-- root root 13218 ./usr/include/X11/extensions/renderproto.h
+-rw-r--r-- root root 1900 ./usr/include/X11/extensions/saver.h
+-rw-r--r-- root root 5132 ./usr/include/X11/extensions/saverproto.h
+-rw-r--r-- root root 2141 ./usr/include/X11/extensions/secur.h
+-rw-r--r-- root root 2457 ./usr/include/X11/extensions/security.h
+-rw-r--r-- root root 3177 ./usr/include/X11/extensions/securproto.h
+-rw-r--r-- root root 1878 ./usr/include/X11/extensions/shapeconst.h
+-rw-r--r-- root root 4133 ./usr/include/X11/extensions/shape.h
+-rw-r--r-- root root 6730 ./usr/include/X11/extensions/shapeproto.h
+-rw-r--r-- root root 252 ./usr/include/X11/extensions/shapestr.h
+-rw-r--r-- root root 1645 ./usr/include/X11/extensions/shm.h
+-rw-r--r-- root root 6045 ./usr/include/X11/extensions/shmproto.h
+-rw-r--r-- root root 2123 ./usr/include/X11/extensions/shmstr.h
+-rw-r--r-- root root 6750 ./usr/include/X11/extensions/syncconst.h
+-rw-r--r-- root root 9676 ./usr/include/X11/extensions/sync.h
+-rw-r--r-- root root 11001 ./usr/include/X11/extensions/syncproto.h
+-rw-r--r-- root root 5606 ./usr/include/X11/extensions/syncstr.h
+-rw-r--r-- root root 2377 ./usr/include/X11/extensions/Xag.h
+-rw-r--r-- root root 3057 ./usr/include/X11/extensions/xcmiscproto.h
+-rw-r--r-- root root 185 ./usr/include/X11/extensions/xcmiscstr.h
+-rw-r--r-- root root 1710 ./usr/include/X11/extensions/Xcup.h
+-rw-r--r-- root root 2307 ./usr/include/X11/extensions/Xdamage.h
+-rw-r--r-- root root 4170 ./usr/include/X11/extensions/Xdbe.h
+-rw-r--r-- root root 2130 ./usr/include/X11/extensions/XEVI.h
+-rw-r--r-- root root 1655 ./usr/include/X11/extensions/Xext.h
+-rw-r--r-- root root 414 ./usr/include/X11/extensions/xf86bigfont.h
+-rw-r--r-- root root 2544 ./usr/include/X11/extensions/xf86bigfproto.h
+-rw-r--r-- root root 191 ./usr/include/X11/extensions/xf86bigfstr.h
+-rw-r--r-- root root 931 ./usr/include/X11/extensions/xf86dga1const.h
+-rw-r--r-- root root 4506 ./usr/include/X11/extensions/xf86dga1proto.h
+-rw-r--r-- root root 191 ./usr/include/X11/extensions/xf86dga1str.h
+-rw-r--r-- root root 2533 ./usr/include/X11/extensions/xf86dgaconst.h
+-rw-r--r-- root root 369 ./usr/include/X11/extensions/xf86dga.h
+-rw-r--r-- root root 7106 ./usr/include/X11/extensions/xf86dgaproto.h
+-rw-r--r-- root root 188 ./usr/include/X11/extensions/xf86dgastr.h
+-rw-r--r-- root root 2106 ./usr/include/X11/extensions/xf86vm.h
+-rw-r--r-- root root 7619 ./usr/include/X11/extensions/xf86vmode.h
+-rw-r--r-- root root 15700 ./usr/include/X11/extensions/xf86vmproto.h
+-rw-r--r-- root root 185 ./usr/include/X11/extensions/xf86vmstr.h
+-rw-r--r-- root root 7588 ./usr/include/X11/extensions/Xfixes.h
+-rw-r--r-- root root 12752 ./usr/include/X11/extensions/xfixesproto.h
+-rw-r--r-- root root 5396 ./usr/include/X11/extensions/xfixeswire.h
+-rw-r--r-- root root 1927 ./usr/include/X11/extensions/Xge.h
+-rw-r--r-- root root 10542 ./usr/include/X11/extensions/XI2.h
+-rw-r--r-- root root 37577 ./usr/include/X11/extensions/XI2proto.h
+-rw-r--r-- root root 9823 ./usr/include/X11/extensions/XI.h
+-rw-r--r-- root root 41010 ./usr/include/X11/extensions/XIproto.h
+-rw-r--r-- root root 15808 ./usr/include/X11/extensions/XKBgeom.h
+-rw-r--r-- root root 28211 ./usr/include/X11/extensions/XKB.h
+-rw-r--r-- root root 29105 ./usr/include/X11/extensions/XKBproto.h
+-rw-r--r-- root root 28018 ./usr/include/X11/extensions/XKBsrv.h
+-rw-r--r-- root root 19630 ./usr/include/X11/extensions/XKBstr.h
+-rw-r--r-- root root 1601 ./usr/include/X11/extensions/XLbx.h
+-rw-r--r-- root root 17120 ./usr/include/X11/extensions/Xrandr.h
+-rw-r--r-- root root 12805 ./usr/include/X11/extensions/Xrender.h
+-rw-r--r-- root root 5168 ./usr/include/X11/extensions/XResproto.h
+-rw-r--r-- root root 3735 ./usr/include/X11/extensions/XShm.h
+-rw-r--r-- root root 1392 ./usr/include/X11/extensions/xtestconst.h
+-rw-r--r-- root root 5439 ./usr/include/X11/extensions/xtestext1const.h
+-rw-r--r-- root root 3708 ./usr/include/X11/extensions/xtestext1.h
+-rw-r--r-- root root 7790 ./usr/include/X11/extensions/xtestext1proto.h
+-rw-r--r-- root root 3254 ./usr/include/X11/extensions/xtestproto.h
+-rw-r--r-- root root 3027 ./usr/include/X11/extensions/Xv.h
+-rw-r--r-- root root 3620 ./usr/include/X11/extensions/XvMC.h
+-rw-r--r-- root root 4484 ./usr/include/X11/extensions/XvMCproto.h
+-rw-r--r-- root root 12109 ./usr/include/X11/extensions/Xvproto.h
+drwxr-xr-x root root 4096 ./usr/include/X11/fonts
+-rw-r--r-- root root 4253 ./usr/include/X11/fonts/font.h
+-rw-r--r-- root root 3450 ./usr/include/X11/fonts/fontproto.h
+-rw-r--r-- root root 9401 ./usr/include/X11/fonts/fontstruct.h
+-rw-r--r-- root root 4075 ./usr/include/X11/fonts/FS.h
+-rw-r--r-- root root 3992 ./usr/include/X11/fonts/fsmasks.h
+-rw-r--r-- root root 19889 ./usr/include/X11/fonts/FSproto.h
+-rw-r--r-- root root 6046 ./usr/include/X11/HPkeysym.h
+drwxr-xr-x root root 4096 ./usr/include/X11/ICE
+-rw-r--r-- root root 7413 ./usr/include/X11/ICE/ICEconn.h
+-rw-r--r-- root root 2512 ./usr/include/X11/ICE/ICE.h
+-rw-r--r-- root root 9925 ./usr/include/X11/ICE/ICElib.h
+-rw-r--r-- root root 8206 ./usr/include/X11/ICE/ICEmsg.h
+-rw-r--r-- root root 4604 ./usr/include/X11/ICE/ICEproto.h
+-rw-r--r-- root root 3154 ./usr/include/X11/ICE/ICEutil.h
+-rw-r--r-- root root 459 ./usr/include/X11/ImUtil.h
+-rw-r--r-- root root 175248 ./usr/include/X11/keysymdef.h
+-rw-r--r-- root root 2769 ./usr/include/X11/keysym.h
+drwxr-xr-x root root 4096 ./usr/include/X11/SM
+-rw-r--r-- root root 2927 ./usr/include/X11/SM/SM.h
+-rw-r--r-- root root 11268 ./usr/include/X11/SM/SMlib.h
+-rw-r--r-- root root 4852 ./usr/include/X11/SM/SMproto.h
+-rw-r--r-- root root 4022 ./usr/include/X11/Sunkeysym.h
+-rw-r--r-- root root 4587 ./usr/include/X11/Xalloca.h
+-rw-r--r-- root root 2951 ./usr/include/X11/Xarch.h
+-rw-r--r-- root root 2518 ./usr/include/X11/Xatom.h
+-rw-r--r-- root root 3817 ./usr/include/X11/Xauth.h
+-rw-r--r-- root root 21346 ./usr/include/X11/Xcms.h
+-rw-r--r-- root root 2401 ./usr/include/X11/Xdefs.h
+-rw-r--r-- root root 6371 ./usr/include/X11/Xdmcp.h
+-rw-r--r-- root root 13612 ./usr/include/X11/XF86keysym.h
+-rw-r--r-- root root 7863 ./usr/include/X11/Xfuncproto.h
+-rw-r--r-- root root 2256 ./usr/include/X11/Xfuncs.h
+-rw-r--r-- root root 20137 ./usr/include/X11/X.h
+-rw-r--r-- root root 30995 ./usr/include/X11/XKBlib.h
+-rw-r--r-- root root 1567 ./usr/include/X11/XlibConf.h
+-rw-r--r-- root root 99532 ./usr/include/X11/Xlib.h
+-rw-r--r-- root root 40597 ./usr/include/X11/Xlibint.h
+-rw-r--r-- root root 506 ./usr/include/X11/Xlib-xcb.h
+-rw-r--r-- root root 1297 ./usr/include/X11/Xlocale.h
+-rw-r--r-- root root 5122 ./usr/include/X11/Xmd.h
+-rw-r--r-- root root 3115 ./usr/include/X11/Xosdefs.h
+-rw-r--r-- root root 4362 ./usr/include/X11/Xos.h
+-rw-r--r-- root root 33693 ./usr/include/X11/Xos_r.h
+-rw-r--r-- root root 7743 ./usr/include/X11/Xpoll.h
+-rw-r--r-- root root 52399 ./usr/include/X11/Xproto.h
+-rw-r--r-- root root 2743 ./usr/include/X11/Xprotostr.h
+-rw-r--r-- root root 5949 ./usr/include/X11/Xregion.h
+-rw-r--r-- root root 10628 ./usr/include/X11/Xresource.h
+-rw-r--r-- root root 1719 ./usr/include/X11/xshmfence.h
+-rw-r--r-- root root 12395 ./usr/include/X11/Xthreads.h
+drwxr-xr-x root root 4096 ./usr/include/X11/Xtrans
+-rw-r--r-- root root 2876 ./usr/include/X11/Xtrans/transport.c
+-rw-r--r-- root root 29462 ./usr/include/X11/Xtrans/Xtrans.c
+-rw-r--r-- root root 8785 ./usr/include/X11/Xtrans/Xtrans.h
+-rw-r--r-- root root 10158 ./usr/include/X11/Xtrans/Xtransint.h
+-rw-r--r-- root root 55410 ./usr/include/X11/Xtrans/Xtranslcl.c
+-rw-r--r-- root root 62655 ./usr/include/X11/Xtrans/Xtranssock.c
+-rw-r--r-- root root 14937 ./usr/include/X11/Xtrans/Xtransutil.c
+-rw-r--r-- root root 21353 ./usr/include/X11/Xutil.h
+-rw-r--r-- root root 1909 ./usr/include/X11/Xw32defs.h
+-rw-r--r-- root root 3872 ./usr/include/X11/XWDFile.h
+-rw-r--r-- root root 3283 ./usr/include/X11/Xwindows.h
+-rw-r--r-- root root 2261 ./usr/include/X11/Xwinsock.h
+drwxr-xr-x root root 4096 ./usr/include/xcb
+-rw-r--r-- root root 2407 ./usr/include/xcb/bigreq.h
+-rw-r--r-- root root 13867 ./usr/include/xcb/composite.h
+-rw-r--r-- root root 9285 ./usr/include/xcb/damage.h
+-rw-r--r-- root root 11924 ./usr/include/xcb/dpms.h
+-rw-r--r-- root root 35759 ./usr/include/xcb/dri2.h
+-rw-r--r-- root root 24241 ./usr/include/xcb/dri3.h
+-rw-r--r-- root root 2981 ./usr/include/xcb/ge.h
+-rw-r--r-- root root 252818 ./usr/include/xcb/glx.h
+-rw-r--r-- root root 19292 ./usr/include/xcb/present.h
+-rw-r--r-- root root 139534 ./usr/include/xcb/randr.h
+-rw-r--r-- root root 27912 ./usr/include/xcb/record.h
+-rw-r--r-- root root 103726 ./usr/include/xcb/render.h
+-rw-r--r-- root root 24483 ./usr/include/xcb/res.h
+-rw-r--r-- root root 16460 ./usr/include/xcb/screensaver.h
+-rw-r--r-- root root 20806 ./usr/include/xcb/shape.h
+-rw-r--r-- root root 17261 ./usr/include/xcb/shm.h
+-rw-r--r-- root root 43756 ./usr/include/xcb/sync.h
+-rw-r--r-- root root 13990 ./usr/include/xcb/xcbext.h
+-rw-r--r-- root root 22260 ./usr/include/xcb/xcb.h
+-rw-r--r-- root root 7137 ./usr/include/xcb/xc_misc.h
+-rw-r--r-- root root 11593 ./usr/include/xcb/xevie.h
+-rw-r--r-- root root 28034 ./usr/include/xcb/xf86dri.h
+-rw-r--r-- root root 58079 ./usr/include/xcb/xfixes.h
+-rw-r--r-- root root 14955 ./usr/include/xcb/xinerama.h
+-rw-r--r-- root root 305557 ./usr/include/xcb/xinput.h
+-rw-r--r-- root root 246448 ./usr/include/xcb/xkb.h
+-rw-r--r-- root root 57187 ./usr/include/xcb/xprint.h
+-rw-r--r-- root root 385800 ./usr/include/xcb/xproto.h
+-rw-r--r-- root root 56622 ./usr/include/xcb/xselinux.h
+-rw-r--r-- root root 7589 ./usr/include/xcb/xtest.h
+-rw-r--r-- root root 57788 ./usr/include/xcb/xv.h
+-rw-r--r-- root root 24530 ./usr/include/xcb/xvmc.h
+drwxr-xr-x root root 4096 ./usr/include/xen
+-rw-r--r-- root root 3553 ./usr/include/xen/evtchn.h
+-rw-r--r-- root root 2619 ./usr/include/xen/gntalloc.h
+-rw-r--r-- root root 10647 ./usr/include/xen/gntdev.h
+-rw-r--r-- root root 4206 ./usr/include/xen/privcmd.h
+-rw-r--r-- root root 35465 ./usr/include/xf86drm.h
+-rw-r--r-- root root 18016 ./usr/include/xf86drmMode.h
+-rw-r--r-- root root 19283 ./usr/include/xtables.h
+-rw-r--r-- root root 75 ./usr/include/xtables-version.h
+-rw-r--r-- root root 16262 ./usr/include/zconf.h
+-rw-r--r-- root root 96239 ./usr/include/zlib.h
+drwxr-xr-x root root 20480 ./usr/lib
+drwxr-xr-x root root 4096 ./usr/lib/cmake
+drwxr-xr-x root root 4096 ./usr/lib/cmake/DBus1
+-rw-r--r-- root root 2883 ./usr/lib/cmake/DBus1/DBus1Config.cmake
+-rw-r--r-- root root 367 ./usr/lib/cmake/DBus1/DBus1ConfigVersion.cmake
+drwxr-xr-x root root 4096 ./usr/lib/cmake/libxml2
+-rw-r--r-- root root 1642 ./usr/lib/cmake/libxml2/libxml2-config.cmake
+drwxr-xr-x root root 4096 ./usr/lib/coreutils
+-rwxr-xr-x root root 14144 ./usr/lib/coreutils/libstdbuf.so
+-rw-r--r-- root root 4280 ./usr/lib/crt1.o
+-rw-r--r-- root root 2808 ./usr/lib/crti.o
+-rw-r--r-- root root 2552 ./usr/lib/crtn.o
+drwxr-xr-x root root 4096 ./usr/lib/dbus-1.0
+drwxr-xr-x root root 4096 ./usr/lib/dbus-1.0/include
+drwxr-xr-x root root 4096 ./usr/lib/dbus-1.0/include/dbus
+-rw-r--r-- root root 2052 ./usr/lib/dbus-1.0/include/dbus/dbus-arch-deps.h
+drwxr-xr-x root root 4096 ./usr/lib/dri
+-rwxr-xr-x root root 12207640 ./usr/lib/dri/i915_dri.so
+-rwxr-xr-x root root 12207640 ./usr/lib/dri/i965_dri.so
+-rwxr-xr-x root root 9195384 ./usr/lib/dri/kms_swrast_dri.so
+-rwxr-xr-x root root 12207640 ./usr/lib/dri/nouveau_vieux_dri.so
+-rwxr-xr-x root root 12207640 ./usr/lib/dri/r200_dri.so
+-rwxr-xr-x root root 12207640 ./usr/lib/dri/radeon_dri.so
+-rwxr-xr-x root root 9195384 ./usr/lib/dri/swrast_dri.so
+-rwxr-xr-x root root 9195384 ./usr/lib/dri/virtio_gpu_dri.so
+-rwxr-xr-x root root 14376 ./usr/lib/e2initrd_helper
+drwxr-xr-x root root 4096 ./usr/libexec
+drwxr-xr-x root root 4096 ./usr/libexec/awk
+-rwxr-xr-x root root 14288 ./usr/libexec/awk/grcat
+-rwxr-xr-x root root 14288 ./usr/libexec/awk/pwcat
+-rwsr-xr-x root messagebus 63592 ./usr/libexec/dbus-daemon-launch-helper
+-rwxr-xr-x root root 43168 ./usr/libexec/frcode
+-rwxr-xr-x root root 14304 ./usr/libexec/gio-querymodules
+-rwxr-xr-x root root 354584 ./usr/libexec/udevadm
+drwxr-xr-x root root 4096 ./usr/lib/gawk
+-rwxr-xr-x root root 39016 ./usr/lib/gawk/filefuncs.so
+-rwxr-xr-x root root 14288 ./usr/lib/gawk/fnmatch.so
+-rwxr-xr-x root root 14304 ./usr/lib/gawk/fork.so
+-rwxr-xr-x root root 14288 ./usr/lib/gawk/inplace.so
+-rwxr-xr-x root root 14208 ./usr/lib/gawk/intdiv.so
+-rwxr-xr-x root root 14256 ./usr/lib/gawk/ordchr.so
+-rwxr-xr-x root root 14192 ./usr/lib/gawk/readdir.so
+-rwxr-xr-x root root 14256 ./usr/lib/gawk/readfile.so
+-rwxr-xr-x root root 14200 ./usr/lib/gawk/revoutput.so
+-rwxr-xr-x root root 14200 ./usr/lib/gawk/revtwoway.so
+-rwxr-xr-x root root 18352 ./usr/lib/gawk/rwarray.so
+-rwxr-xr-x root root 14256 ./usr/lib/gawk/time.so
+-rw-r--r-- root root 7064 ./usr/lib/gcrt1.o
+drwxr-xr-x root root 4096 ./usr/lib/gio
+drwxr-xr-x root root 4096 ./usr/lib/gio/modules
+drwxr-xr-x root root 4096 ./usr/lib/girepository-1.0
+-rw-r--r-- root root 14344 ./usr/lib/girepository-1.0/cairo-1.0.typelib
+-rw-r--r-- root root 712 ./usr/lib/girepository-1.0/DBus-1.0.typelib
+-rw-r--r-- root root 560 ./usr/lib/girepository-1.0/DBusGLib-1.0.typelib
+-rw-r--r-- root root 348 ./usr/lib/girepository-1.0/fontconfig-2.0.typelib
+-rw-r--r-- root root 420 ./usr/lib/girepository-1.0/freetype2-2.0.typelib
+-rw-r--r-- root root 353336 ./usr/lib/girepository-1.0/Gio-2.0.typelib
+-rw-r--r-- root root 27752 ./usr/lib/girepository-1.0/GIRepository-2.0.typelib
+-rw-r--r-- root root 948 ./usr/lib/girepository-1.0/GL-1.0.typelib
+-rw-r--r-- root root 191884 ./usr/lib/girepository-1.0/GLib-2.0.typelib
+-rw-r--r-- root root 1340 ./usr/lib/girepository-1.0/GModule-2.0.typelib
+-rw-r--r-- root root 58972 ./usr/lib/girepository-1.0/GObject-2.0.typelib
+-rw-r--r-- root root 668 ./usr/lib/girepository-1.0/libxml2-2.0.typelib
+-rw-r--r-- root root 59380 ./usr/lib/girepository-1.0/Vulkan-1.0.typelib
+-rw-r--r-- root root 176 ./usr/lib/girepository-1.0/win32-1.0.typelib
+-rw-r--r-- root root 240 ./usr/lib/girepository-1.0/xfixes-4.0.typelib
+-rw-r--r-- root root 464 ./usr/lib/girepository-1.0/xft-2.0.typelib
+-rw-r--r-- root root 836 ./usr/lib/girepository-1.0/xlib-2.0.typelib
+-rw-r--r-- root root 640 ./usr/lib/girepository-1.0/xrandr-1.3.typelib
+drwxr-xr-x root root 4096 ./usr/lib/glib-2.0
+drwxr-xr-x root root 4096 ./usr/lib/glib-2.0/include
+-rw-r--r-- root root 5649 ./usr/lib/glib-2.0/include/glibconfig.h
+drwxr-xr-x root root 4096 ./usr/lib/gobject-introspection
+drwxr-xr-x root root 4096 ./usr/lib/gobject-introspection/giscanner
+-rw-r--r-- root root 3526 ./usr/lib/gobject-introspection/giscanner/annotationmain.py
+-rw-r--r-- root root 101376 ./usr/lib/gobject-introspection/giscanner/annotationparser.py
+-rw-r--r-- root root 43411 ./usr/lib/gobject-introspection/giscanner/ast.py
+-rw-r--r-- root root 5852 ./usr/lib/gobject-introspection/giscanner/cachestore.py
+-rw-r--r-- root root 19524 ./usr/lib/gobject-introspection/giscanner/ccompiler.py
+-rw-r--r-- root root 6190 ./usr/lib/gobject-introspection/giscanner/codegen.py
+-rw-r--r-- root root 3268 ./usr/lib/gobject-introspection/giscanner/docmain.py
+drwxr-xr-x root root 4096 ./usr/lib/gobject-introspection/giscanner/doctemplates
+drwxr-xr-x root root 4096 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs
+drwxr-xr-x root root 4096 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs
+-rw-r--r-- root root 567 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/base.tmpl
+-rw-r--r-- root root 113 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/callback.tmpl
+-rw-r--r-- root root 29 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/class.tmpl
+-rw-r--r-- root root 847 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/default.tmpl
+-rw-r--r-- root root 890 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/_doc.tmpl
+-rw-r--r-- root root 313 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/enum.tmpl
+-rw-r--r-- root root 113 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/function.tmpl
+-rw-r--r-- root root 5189 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/_index.tmpl
+-rw-r--r-- root root 29 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/interface.tmpl
+-rw-r--r-- root root 120 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/_methods.tmpl
+-rw-r--r-- root root 1899 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/_method.tmpl
+-rw-r--r-- root root 32 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/method.tmpl
+-rw-r--r-- root root 1278 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/namespace.tmpl
+-rw-r--r-- root root 1123 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/_properties.tmpl
+-rw-r--r-- root root 652 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/_signals.tmpl
+-rw-r--r-- root root 176 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/_staticmethods.tmpl
+-rw-r--r-- root root 183 ./usr/lib/gobject-introspection/giscanner/doctemplates/devdocs/Gjs/_vfuncs.tmpl
+drwxr-xr-x root root 4096 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard
+-rw-r--r-- root root 765 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/base.tmpl
+drwxr-xr-x root root 4096 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C
+-rw-r--r-- root root 141 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/callback.tmpl
+-rw-r--r-- root root 57 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/class.tmpl
+-rw-r--r-- root root 35 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/constructor.tmpl
+-rw-r--r-- root root 30 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/default.tmpl
+-rw-r--r-- root root 56 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/enum.tmpl
+-rw-r--r-- root root 30 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/field.tmpl
+-rw-r--r-- root root 1654 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/function.tmpl
+-rw-r--r-- root root 57 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/interface.tmpl
+-rw-r--r-- root root 1982 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/class.tmpl
+-rw-r--r-- root root 35 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/method.tmpl
+-rw-r--r-- root root 35 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/namespace.tmpl
+-rw-r--r-- root root 191 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/property.tmpl
+-rw-r--r-- root root 30 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/record.tmpl
+-rw-r--r-- root root 196 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/signal.tmpl
+-rw-r--r-- root root 139 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/C/vfunc.tmpl
+drwxr-xr-x root root 4096 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs
+-rw-r--r-- root root 780 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/callback.tmpl
+-rw-r--r-- root root 863 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/class.tmpl
+-rw-r--r-- root root 35 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/constructor.tmpl
+-rw-r--r-- root root 30 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/default.tmpl
+-rw-r--r-- root root 511 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/enum.tmpl
+-rw-r--r-- root root 423 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/field.tmpl
+-rw-r--r-- root root 1469 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/function.tmpl
+-rw-r--r-- root root 558 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/interface.tmpl
+-rw-r--r-- root root 35 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/method.tmpl
+-rw-r--r-- root root 61 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/namespace.tmpl
+-rw-r--r-- root root 423 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/property.tmpl
+-rw-r--r-- root root 56 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/record.tmpl
+-rw-r--r-- root root 1185 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/signal.tmpl
+-rw-r--r-- root root 746 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Gjs/vfunc.tmpl
+-rw-r--r-- root root 551 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/namespace.tmpl
+drwxr-xr-x root root 4096 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python
+-rw-r--r-- root root 849 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/callback.tmpl
+-rw-r--r-- root root 593 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/class.tmpl
+-rw-r--r-- root root 35 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/constructor.tmpl
+-rw-r--r-- root root 30 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/default.tmpl
+-rw-r--r-- root root 264 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/enum.tmpl
+-rw-r--r-- root root 30 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/field.tmpl
+-rw-r--r-- root root 1572 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/function.tmpl
+-rw-r--r-- root root 535 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/interface.tmpl
+-rw-r--r-- root root 35 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/method.tmpl
+-rw-r--r-- root root 61 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/namespace.tmpl
+-rw-r--r-- root root 407 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/property.tmpl
+-rw-r--r-- root root 56 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/record.tmpl
+-rw-r--r-- root root 1235 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/signal.tmpl
+-rw-r--r-- root root 849 ./usr/lib/gobject-introspection/giscanner/doctemplates/mallard/Python/vfunc.tmpl
+-rw-r--r-- root root 50143 ./usr/lib/gobject-introspection/giscanner/docwriter.py
+-rw-r--r-- root root 10639 ./usr/lib/gobject-introspection/giscanner/dumper.py
+-rw-r--r-- root root 21322 ./usr/lib/gobject-introspection/giscanner/gdumpparser.py
+-rw-r--r-- root root 28229 ./usr/lib/gobject-introspection/giscanner/girparser.py
+-rw-r--r-- root root 28222 ./usr/lib/gobject-introspection/giscanner/girwriter.py
+-rwxr-xr-x root root 101672 ./usr/lib/gobject-introspection/giscanner/_giscanner.cpython-38-x86_64-linux-gnu.so
+-rw-r--r-- root root 1105 ./usr/lib/gobject-introspection/giscanner/__init__.py
+-rw-r--r-- root root 9398 ./usr/lib/gobject-introspection/giscanner/introspectablepass.py
+-rw-r--r-- root root 2554 ./usr/lib/gobject-introspection/giscanner/libtoolimporter.py
+-rw-r--r-- root root 65300 ./usr/lib/gobject-introspection/giscanner/maintransformer.py
+-rw-r--r-- root root 392 ./usr/lib/gobject-introspection/giscanner/mdextensions.py
+-rw-r--r-- root root 7612 ./usr/lib/gobject-introspection/giscanner/message.py
+-rw-r--r-- root root 3756 ./usr/lib/gobject-introspection/giscanner/msvccompiler.py
+-rw-r--r-- root root 2283 ./usr/lib/gobject-introspection/giscanner/pkgconfig.py
+-rw-r--r-- root root 27285 ./usr/lib/gobject-introspection/giscanner/scannermain.py
+-rw-r--r-- root root 4790 ./usr/lib/gobject-introspection/giscanner/sectionparser.py
+-rw-r--r-- root root 6259 ./usr/lib/gobject-introspection/giscanner/shlibs.py
+-rw-r--r-- root root 9628 ./usr/lib/gobject-introspection/giscanner/sourcescanner.py
+-rw-r--r-- root root 5699 ./usr/lib/gobject-introspection/giscanner/testcodegen.py
+-rw-r--r-- root root 44647 ./usr/lib/gobject-introspection/giscanner/transformer.py
+-rw-r--r-- root root 10521 ./usr/lib/gobject-introspection/giscanner/utils.py
+-rw-r--r-- root root 23 ./usr/lib/gobject-introspection/giscanner/_version.py
+-rw-r--r-- root root 5798 ./usr/lib/gobject-introspection/giscanner/xmlwriter.py
+-rwxr-xr-x root root 38904 ./usr/lib/libacl.so.1.1.2253
+lrwxrwxrwx root root 18 ./usr/lib/libacl.so.1 -> libacl.so.1.1.2253
+lrwxrwxrwx root root 18 ./usr/lib/libacl.so -> libacl.so.1.1.2253
+lrwxrwxrwx root root 21 ./usr/lib/libanl.so -> ../../lib/libanl.so.1
+-rwxr-xr-x root root 34856 ./usr/lib/libasm-0.179.so
+lrwxrwxrwx root root 15 ./usr/lib/libasm.so.1 -> libasm-0.179.so
+lrwxrwxrwx root root 11 ./usr/lib/libasm.so -> libasm.so.1
+-rwxr-xr-x root root 26512 ./usr/lib/libattr.so.1.1.2448
+lrwxrwxrwx root root 19 ./usr/lib/libattr.so.1 -> libattr.so.1.1.2448
+lrwxrwxrwx root root 19 ./usr/lib/libattr.so -> libattr.so.1.1.2448
+-rwxr-xr-x root root 1310600 ./usr/lib/libbfd-2.34.0.20200220.so
+lrwxrwxrwx root root 25 ./usr/lib/libbfd.so -> libbfd-2.34.0.20200220.so
+lrwxrwxrwx root root 27 ./usr/lib/libblkid.so -> ../../lib/libblkid.so.1.1.0
+lrwxrwxrwx root root 30 ./usr/lib/libBrokenLocale.so -> ../../lib/libBrokenLocale.so.1
+-rwxr-xr-x root root 387680 ./usr/lib/libbtrfs.so.0.1
+lrwxrwxrwx root root 15 ./usr/lib/libbtrfs.so.0 -> libbtrfs.so.0.1
+lrwxrwxrwx root root 15 ./usr/lib/libbtrfs.so -> libbtrfs.so.0.1
+-rwxr-xr-x root root 34784 ./usr/lib/libbtrfsutil.so.1.2.0
+lrwxrwxrwx root root 21 ./usr/lib/libbtrfsutil.so.1 -> libbtrfsutil.so.1.2.0
+lrwxrwxrwx root root 21 ./usr/lib/libbtrfsutil.so -> libbtrfsutil.so.1.2.0
+-rwxr-xr-x root root 74656 ./usr/lib/libbz2.so.1.0.6
+lrwxrwxrwx root root 15 ./usr/lib/libbz2.so.1 -> libbz2.so.1.0.6
+lrwxrwxrwx root root 15 ./usr/lib/libbz2.so -> libbz2.so.1.0.6
+-rwxr-xr-x root root 42752 ./usr/lib/libcairo-gobject.so.2.11600.0
+lrwxrwxrwx root root 29 ./usr/lib/libcairo-gobject.so.2 -> libcairo-gobject.so.2.11600.0
+lrwxrwxrwx root root 29 ./usr/lib/libcairo-gobject.so -> libcairo-gobject.so.2.11600.0
+-rwxr-xr-x root root 156384 ./usr/lib/libcairo-script-interpreter.so.2.11600.0
+lrwxrwxrwx root root 40 ./usr/lib/libcairo-script-interpreter.so.2 -> libcairo-script-interpreter.so.2.11600.0
+lrwxrwxrwx root root 40 ./usr/lib/libcairo-script-interpreter.so -> libcairo-script-interpreter.so.2.11600.0
+-rwxr-xr-x root root 1291312 ./usr/lib/libcairo.so.2.11600.0
+lrwxrwxrwx root root 21 ./usr/lib/libcairo.so.2 -> libcairo.so.2.11600.0
+lrwxrwxrwx root root 21 ./usr/lib/libcairo.so -> libcairo.so.2.11600.0
+lrwxrwxrwx root root 28 ./usr/lib/libcap-ng.so -> ../../lib/libcap-ng.so.0.0.0
+-rw-r--r-- root root 76674 ./usr/lib/libc_nonshared.a
+-rwxr-xr-x root root 2872136 ./usr/lib/libcrypto.so.1.1
+lrwxrwxrwx root root 16 ./usr/lib/libcrypto.so -> libcrypto.so.1.1
+-rwxr-xr-x root root 202648 ./usr/lib/libcrypt.so.2.0.0
+lrwxrwxrwx root root 17 ./usr/lib/libcrypt.so.2 -> libcrypt.so.2.0.0
+lrwxrwxrwx root root 17 ./usr/lib/libcrypt.so -> libcrypt.so.2.0.0
+-rw-r--r-- root root 247 ./usr/lib/libc.so
+-rwxr-xr-x root root 116736 ./usr/lib/libctf-nobfd.so.0.0.0
+lrwxrwxrwx root root 21 ./usr/lib/libctf-nobfd.so.0 -> libctf-nobfd.so.0.0.0
+lrwxrwxrwx root root 21 ./usr/lib/libctf-nobfd.so -> libctf-nobfd.so.0.0.0
+-rwxr-xr-x root root 116728 ./usr/lib/libctf.so.0.0.0
+lrwxrwxrwx root root 15 ./usr/lib/libctf.so.0 -> libctf.so.0.0.0
+lrwxrwxrwx root root 15 ./usr/lib/libctf.so -> libctf.so.0.0.0
+lrwxrwxrwx root root 13 ./usr/lib/libcurses.so -> libncurses.so
+-rwxr-xr-x root root 1267928 ./usr/lib/libdb-5.3.so
+lrwxrwxrwx root root 12 ./usr/lib/libdb-5.so -> libdb-5.3.so
+lrwxrwxrwx root root 12 ./usr/lib/libdb.so -> libdb-5.3.so
+-rwxr-xr-x root root 346240 ./usr/lib/libdbus-1.so.3.19.11
+lrwxrwxrwx root root 20 ./usr/lib/libdbus-1.so.3 -> libdbus-1.so.3.19.11
+lrwxrwxrwx root root 20 ./usr/lib/libdbus-1.so -> libdbus-1.so.3.19.11
+lrwxrwxrwx root root 20 ./usr/lib/libdl.so -> ../../lib/libdl.so.2
+-rwxr-xr-x root root 42824 ./usr/lib/libdrm_amdgpu.so.1.0.0
+lrwxrwxrwx root root 22 ./usr/lib/libdrm_amdgpu.so.1 -> libdrm_amdgpu.so.1.0.0
+lrwxrwxrwx root root 18 ./usr/lib/libdrm_amdgpu.so -> libdrm_amdgpu.so.1
+-rwxr-xr-x root root 30536 ./usr/lib/libdrm_etnaviv.so.1.0.0
+lrwxrwxrwx root root 23 ./usr/lib/libdrm_etnaviv.so.1 -> libdrm_etnaviv.so.1.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libdrm_etnaviv.so -> libdrm_etnaviv.so.1
+-rwxr-xr-x root root 34712 ./usr/lib/libdrm_freedreno.so.1.0.0
+lrwxrwxrwx root root 25 ./usr/lib/libdrm_freedreno.so.1 -> libdrm_freedreno.so.1.0.0
+lrwxrwxrwx root root 21 ./usr/lib/libdrm_freedreno.so -> libdrm_freedreno.so.1
+-rwxr-xr-x root root 146920 ./usr/lib/libdrm_intel.so.1.0.0
+lrwxrwxrwx root root 21 ./usr/lib/libdrm_intel.so.1 -> libdrm_intel.so.1.0.0
+lrwxrwxrwx root root 17 ./usr/lib/libdrm_intel.so -> libdrm_intel.so.1
+-rwxr-xr-x root root 34632 ./usr/lib/libdrm_nouveau.so.2.0.0
+lrwxrwxrwx root root 23 ./usr/lib/libdrm_nouveau.so.2 -> libdrm_nouveau.so.2.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libdrm_nouveau.so -> libdrm_nouveau.so.2
+-rwxr-xr-x root root 14080 ./usr/lib/libdrm_omap.so.1.0.0
+lrwxrwxrwx root root 20 ./usr/lib/libdrm_omap.so.1 -> libdrm_omap.so.1.0.0
+lrwxrwxrwx root root 16 ./usr/lib/libdrm_omap.so -> libdrm_omap.so.1
+-rwxr-xr-x root root 55184 ./usr/lib/libdrm_radeon.so.1.0.1
+lrwxrwxrwx root root 22 ./usr/lib/libdrm_radeon.so.1 -> libdrm_radeon.so.1.0.1
+lrwxrwxrwx root root 18 ./usr/lib/libdrm_radeon.so -> libdrm_radeon.so.1
+-rwxr-xr-x root root 79752 ./usr/lib/libdrm.so.2.4.0
+lrwxrwxrwx root root 15 ./usr/lib/libdrm.so.2 -> libdrm.so.2.4.0
+lrwxrwxrwx root root 11 ./usr/lib/libdrm.so -> libdrm.so.2
+-rwxr-xr-x root root 650160 ./usr/lib/libdw-0.179.so
+lrwxrwxrwx root root 14 ./usr/lib/libdw.so.1 -> libdw-0.179.so
+lrwxrwxrwx root root 10 ./usr/lib/libdw.so -> libdw.so.1
+-rwxr-xr-x root root 100384 ./usr/lib/libelf-0.179.so
+lrwxrwxrwx root root 15 ./usr/lib/libelf.so.1 -> libelf-0.179.so
+lrwxrwxrwx root root 11 ./usr/lib/libelf.so -> libelf.so.1
+-rwxr-xr-x root root 182160 ./usr/lib/libexpat.so.1.6.11
+lrwxrwxrwx root root 18 ./usr/lib/libexpat.so.1 -> libexpat.so.1.6.11
+lrwxrwxrwx root root 18 ./usr/lib/libexpat.so -> libexpat.so.1.6.11
+lrwxrwxrwx root root 27 ./usr/lib/libfdisk.so -> ../../lib/libfdisk.so.1.1.0
+-rwxr-xr-x root root 43032 ./usr/lib/libffi.so.7.1.0
+lrwxrwxrwx root root 15 ./usr/lib/libffi.so.7 -> libffi.so.7.1.0
+lrwxrwxrwx root root 15 ./usr/lib/libffi.so -> libffi.so.7.1.0
+-rwxr-xr-x root root 14072 ./usr/lib/libfl.so.2.0.0
+lrwxrwxrwx root root 14 ./usr/lib/libfl.so.2 -> libfl.so.2.0.0
+lrwxrwxrwx root root 14 ./usr/lib/libfl.so -> libfl.so.2.0.0
+-rwxr-xr-x root root 288664 ./usr/lib/libfontconfig.so.1.12.0
+lrwxrwxrwx root root 23 ./usr/lib/libfontconfig.so.1 -> libfontconfig.so.1.12.0
+lrwxrwxrwx root root 23 ./usr/lib/libfontconfig.so -> libfontconfig.so.1.12.0
+-rwxr-xr-x root root 68696 ./usr/lib/libform.so.5.9
+lrwxrwxrwx root root 14 ./usr/lib/libform.so.5 -> libform.so.5.9
+lrwxrwxrwx root root 12 ./usr/lib/libform.so -> libform.so.5
+-rwxr-xr-x root root 76952 ./usr/lib/libformw.so.5.9
+lrwxrwxrwx root root 15 ./usr/lib/libformw.so.5 -> libformw.so.5.9
+lrwxrwxrwx root root 13 ./usr/lib/libformw.so -> libformw.so.5
+-rwxr-xr-x root root 722832 ./usr/lib/libfreetype.so.6.17.2
+lrwxrwxrwx root root 21 ./usr/lib/libfreetype.so.6 -> libfreetype.so.6.17.2
+lrwxrwxrwx root root 21 ./usr/lib/libfreetype.so -> libfreetype.so.6.17.2
+-rwxr-xr-x root root 14080 ./usr/lib/libgdbm_compat.so.4.0.0
+lrwxrwxrwx root root 23 ./usr/lib/libgdbm_compat.so.4 -> libgdbm_compat.so.4.0.0
+lrwxrwxrwx root root 23 ./usr/lib/libgdbm_compat.so -> libgdbm_compat.so.4.0.0
+-rwxr-xr-x root root 59392 ./usr/lib/libgdbm.so.6.0.0
+lrwxrwxrwx root root 16 ./usr/lib/libgdbm.so.6 -> libgdbm.so.6.0.0
+lrwxrwxrwx root root 16 ./usr/lib/libgdbm.so -> libgdbm.so.6.0.0
+-rwxr-xr-x root root 1932600 ./usr/lib/libgio-2.0.so.0.6400.2
+lrwxrwxrwx root root 22 ./usr/lib/libgio-2.0.so.0 -> libgio-2.0.so.0.6400.2
+lrwxrwxrwx root root 15 ./usr/lib/libgio-2.0.so -> libgio-2.0.so.0
+-rwxr-xr-x root root 223248 ./usr/lib/libgirepository-1.0.so.1.0.0
+lrwxrwxrwx root root 28 ./usr/lib/libgirepository-1.0.so.1 -> libgirepository-1.0.so.1.0.0
+lrwxrwxrwx root root 24 ./usr/lib/libgirepository-1.0.so -> libgirepository-1.0.so.1
+-rwxr-xr-x root root 325664 ./usr/lib/libglapi.so.0.0.0
+lrwxrwxrwx root root 17 ./usr/lib/libglapi.so.0 -> libglapi.so.0.0.0
+lrwxrwxrwx root root 13 ./usr/lib/libglapi.so -> libglapi.so.0
+-rwxr-xr-x root root 1203480 ./usr/lib/libglib-2.0.so.0.6400.2
+lrwxrwxrwx root root 23 ./usr/lib/libglib-2.0.so.0 -> libglib-2.0.so.0.6400.2
+lrwxrwxrwx root root 16 ./usr/lib/libglib-2.0.so -> libglib-2.0.so.0
+-rwxr-xr-x root root 498608 ./usr/lib/libGL.so.1.2.0
+lrwxrwxrwx root root 14 ./usr/lib/libGL.so.1 -> libGL.so.1.2.0
+lrwxrwxrwx root root 10 ./usr/lib/libGL.so -> libGL.so.1
+-rwxr-xr-x root root 18304 ./usr/lib/libgmodule-2.0.so.0.6400.2
+lrwxrwxrwx root root 26 ./usr/lib/libgmodule-2.0.so.0 -> libgmodule-2.0.so.0.6400.2
+lrwxrwxrwx root root 19 ./usr/lib/libgmodule-2.0.so -> libgmodule-2.0.so.0
+-rwxr-xr-x root root 489440 ./usr/lib/libgmp.so.10.4.0
+lrwxrwxrwx root root 16 ./usr/lib/libgmp.so.10 -> libgmp.so.10.4.0
+lrwxrwxrwx root root 16 ./usr/lib/libgmp.so -> libgmp.so.10.4.0
+-rwxr-xr-x root root 30696 ./usr/lib/libgmpxx.so.4.6.0
+lrwxrwxrwx root root 17 ./usr/lib/libgmpxx.so.4 -> libgmpxx.so.4.6.0
+lrwxrwxrwx root root 17 ./usr/lib/libgmpxx.so -> libgmpxx.so.4.6.0
+-rwxr-xr-x root root 354344 ./usr/lib/libgobject-2.0.so.0.6400.2
+lrwxrwxrwx root root 26 ./usr/lib/libgobject-2.0.so.0 -> libgobject-2.0.so.0.6400.2
+lrwxrwxrwx root root 19 ./usr/lib/libgobject-2.0.so -> libgobject-2.0.so.0
+-rwxr-xr-x root root 14000 ./usr/lib/libgthread-2.0.so.0.6400.2
+lrwxrwxrwx root root 26 ./usr/lib/libgthread-2.0.so.0 -> libgthread-2.0.so.0.6400.2
+lrwxrwxrwx root root 19 ./usr/lib/libgthread-2.0.so -> libgthread-2.0.so.0
+-rwxr-xr-x root root 46944 ./usr/lib/libhistory.so.8.0
+lrwxrwxrwx root root 17 ./usr/lib/libhistory.so.8 -> libhistory.so.8.0
+lrwxrwxrwx root root 17 ./usr/lib/libhistory.so -> libhistory.so.8.0
+-rwxr-xr-x root root 101096 ./usr/lib/libICE.so.6.3.0
+lrwxrwxrwx root root 15 ./usr/lib/libICE.so.6 -> libICE.so.6.3.0
+lrwxrwxrwx root root 15 ./usr/lib/libICE.so -> libICE.so.6.3.0
+-rwxr-xr-x root root 35256 ./usr/lib/libip4tc.so.2.0.0
+lrwxrwxrwx root root 17 ./usr/lib/libip4tc.so.2 -> libip4tc.so.2.0.0
+lrwxrwxrwx root root 17 ./usr/lib/libip4tc.so -> libip4tc.so.2.0.0
+-rwxr-xr-x root root 35256 ./usr/lib/libip6tc.so.2.0.0
+lrwxrwxrwx root root 17 ./usr/lib/libip6tc.so.2 -> libip6tc.so.2.0.0
+lrwxrwxrwx root root 17 ./usr/lib/libip6tc.so -> libip6tc.so.2.0.0
+-rwxr-xr-x root root 83992 ./usr/lib/libkmod.so.2.3.5
+lrwxrwxrwx root root 16 ./usr/lib/libkmod.so.2 -> libkmod.so.2.3.5
+lrwxrwxrwx root root 16 ./usr/lib/libkmod.so -> libkmod.so.2.3.5
+-rwxr-xr-x root root 18240 ./usr/lib/libkms.so.1.0.0
+lrwxrwxrwx root root 15 ./usr/lib/libkms.so.1 -> libkms.so.1.0.0
+lrwxrwxrwx root root 11 ./usr/lib/libkms.so -> libkms.so.1
+-rwxr-xr-x root root 161760 ./usr/lib/liblzma.so.5.2.5
+lrwxrwxrwx root root 16 ./usr/lib/liblzma.so.5 -> liblzma.so.5.2.5
+lrwxrwxrwx root root 16 ./usr/lib/liblzma.so -> liblzma.so.5.2.5
+-rwxr-xr-x root root 141200 ./usr/lib/liblzo2.so.2.0.0
+lrwxrwxrwx root root 16 ./usr/lib/liblzo2.so.2 -> liblzo2.so.2.0.0
+lrwxrwxrwx root root 16 ./usr/lib/liblzo2.so -> liblzo2.so.2.0.0
+-rwxr-xr-x root root 34976 ./usr/lib/libmenu.so.5.9
+lrwxrwxrwx root root 14 ./usr/lib/libmenu.so.5 -> libmenu.so.5.9
+lrwxrwxrwx root root 12 ./usr/lib/libmenu.so -> libmenu.so.5
+-rwxr-xr-x root root 39072 ./usr/lib/libmenuw.so.5.9
+lrwxrwxrwx root root 15 ./usr/lib/libmenuw.so.5 -> libmenuw.so.5.9
+lrwxrwxrwx root root 13 ./usr/lib/libmenuw.so -> libmenuw.so.5
+-rwxr-xr-x root root 26584 ./usr/lib/libmnl.so.0.2.0
+lrwxrwxrwx root root 15 ./usr/lib/libmnl.so.0 -> libmnl.so.0.2.0
+lrwxrwxrwx root root 15 ./usr/lib/libmnl.so -> libmnl.so.0.2.0
+lrwxrwxrwx root root 27 ./usr/lib/libmount.so -> ../../lib/libmount.so.1.1.0
+-rw-r--r-- root root 106 ./usr/lib/libm.so
+lrwxrwxrwx root root 22 ./usr/lib/libmvec.so -> ../../lib/libmvec.so.1
+-rw-r--r-- root root 62 ./usr/lib/libncurses.so
+-rw-r--r-- root root 63 ./usr/lib/libncursesw.so
+-rwxr-xr-x root root 96288 ./usr/lib/libnsl.so.2.0.0
+lrwxrwxrwx root root 15 ./usr/lib/libnsl.so.2 -> libnsl.so.2.0.0
+lrwxrwxrwx root root 15 ./usr/lib/libnsl.so -> libnsl.so.2.0.0
+lrwxrwxrwx root root 28 ./usr/lib/libnss_compat.so -> ../../lib/libnss_compat.so.2
+lrwxrwxrwx root root 24 ./usr/lib/libnss_db.so -> ../../lib/libnss_db.so.2
+lrwxrwxrwx root root 25 ./usr/lib/libnss_dns.so -> ../../lib/libnss_dns.so.2
+lrwxrwxrwx root root 27 ./usr/lib/libnss_files.so -> ../../lib/libnss_files.so.2
+lrwxrwxrwx root root 28 ./usr/lib/libnss_hesiod.so -> ../../lib/libnss_hesiod.so.2
+-rwxr-xr-x root root 1426544 ./usr/lib/libopcodes-2.34.0.20200220.so
+lrwxrwxrwx root root 29 ./usr/lib/libopcodes.so -> libopcodes-2.34.0.20200220.so
+-rwxr-xr-x root root 18168 ./usr/lib/libpanel.so.5.9
+lrwxrwxrwx root root 15 ./usr/lib/libpanel.so.5 -> libpanel.so.5.9
+lrwxrwxrwx root root 13 ./usr/lib/libpanel.so -> libpanel.so.5
+-rwxr-xr-x root root 18168 ./usr/lib/libpanelw.so.5.9
+lrwxrwxrwx root root 16 ./usr/lib/libpanelw.so.5 -> libpanelw.so.5.9
+lrwxrwxrwx root root 14 ./usr/lib/libpanelw.so -> libpanelw.so.5
+-rwxr-xr-x root root 42896 ./usr/lib/libpciaccess.so.0.11.1
+lrwxrwxrwx root root 22 ./usr/lib/libpciaccess.so.0 -> libpciaccess.so.0.11.1
+lrwxrwxrwx root root 22 ./usr/lib/libpciaccess.so -> libpciaccess.so.0.11.1
+-rwxr-xr-x root root 42984 ./usr/lib/libpcrecpp.so.0.0.2
+lrwxrwxrwx root root 19 ./usr/lib/libpcrecpp.so.0 -> libpcrecpp.so.0.0.2
+lrwxrwxrwx root root 19 ./usr/lib/libpcrecpp.so -> libpcrecpp.so.0.0.2
+-rwxr-xr-x root root 14224 ./usr/lib/libpcreposix.so.0.0.7
+lrwxrwxrwx root root 21 ./usr/lib/libpcreposix.so.0 -> libpcreposix.so.0.0.7
+lrwxrwxrwx root root 21 ./usr/lib/libpcreposix.so -> libpcreposix.so.0.0.7
+-rwxr-xr-x root root 489400 ./usr/lib/libpcre.so.1.2.12
+lrwxrwxrwx root root 17 ./usr/lib/libpcre.so.1 -> libpcre.so.1.2.12
+lrwxrwxrwx root root 17 ./usr/lib/libpcre.so -> libpcre.so.1.2.12
+-r-xr-xr-x root root 3351136 ./usr/lib/libperl.so.5.30.0
+lrwxrwxrwx root root 17 ./usr/lib/libperl.so.5 -> libperl.so.5.30.0
+lrwxrwxrwx root root 17 ./usr/lib/libperl.so -> libperl.so.5.30.0
+-rwxr-xr-x root root 694264 ./usr/lib/libpixman-1.so.0.40.0
+lrwxrwxrwx root root 21 ./usr/lib/libpixman-1.so.0 -> libpixman-1.so.0.40.0
+lrwxrwxrwx root root 16 ./usr/lib/libpixman-1.so -> libpixman-1.so.0
+-rwxr-xr-x root root 219024 ./usr/lib/libpng16.so.16.37.0
+lrwxrwxrwx root root 19 ./usr/lib/libpng16.so.16 -> libpng16.so.16.37.0
+lrwxrwxrwx root root 19 ./usr/lib/libpng16.so -> libpng16.so.16.37.0
+lrwxrwxrwx root root 11 ./usr/lib/libpng.so -> libpng16.so
+-rwxr-xr-x root root 79888 ./usr/lib/libprocps.so.8.0.2
+lrwxrwxrwx root root 18 ./usr/lib/libprocps.so.8 -> libprocps.so.8.0.2
+lrwxrwxrwx root root 18 ./usr/lib/libprocps.so -> libprocps.so.8.0.2
+lrwxrwxrwx root root 25 ./usr/lib/libpthread.so -> ../../lib/libpthread.so.0
+-rwxr-xr-x root root 3271808 ./usr/lib/libpython3.8.so.1.0
+lrwxrwxrwx root root 19 ./usr/lib/libpython3.8.so -> libpython3.8.so.1.0
+-rwxr-xr-x root root 13920 ./usr/lib/libpython3.so
+-rwxr-xr-x root root 330696 ./usr/lib/libreadline.so.8.0
+lrwxrwxrwx root root 18 ./usr/lib/libreadline.so.8 -> libreadline.so.8.0
+lrwxrwxrwx root root 18 ./usr/lib/libreadline.so -> libreadline.so.8.0
+lrwxrwxrwx root root 24 ./usr/lib/libresolv.so -> ../../lib/libresolv.so.2
+lrwxrwxrwx root root 20 ./usr/lib/librt.so -> ../../lib/librt.so.1
+lrwxrwxrwx root root 31 ./usr/lib/libsmartcols.so -> ../../lib/libsmartcols.so.1.1.0
+-rwxr-xr-x root root 38736 ./usr/lib/libSM.so.6.0.1
+lrwxrwxrwx root root 14 ./usr/lib/libSM.so.6 -> libSM.so.6.0.1
+lrwxrwxrwx root root 14 ./usr/lib/libSM.so -> libSM.so.6.0.1
+-rwxr-xr-x root root 1244736 ./usr/lib/libsqlite3.so.0.8.6
+lrwxrwxrwx root root 19 ./usr/lib/libsqlite3.so.0 -> libsqlite3.so.0.8.6
+lrwxrwxrwx root root 19 ./usr/lib/libsqlite3.so -> libsqlite3.so.0.8.6
+-rwxr-xr-x root root 593728 ./usr/lib/libssl.so.1.1
+lrwxrwxrwx root root 13 ./usr/lib/libssl.so -> libssl.so.1.1
+-rwxr-xr-x root root 1866240 ./usr/lib/libstdc++.so.6.0.28
+lrwxrwxrwx root root 19 ./usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.28
+lrwxrwxrwx root root 19 ./usr/lib/libstdc++.so -> libstdc++.so.6.0.28
+-rw-r--r-- root root 46 ./usr/lib/libtermcap.so
+lrwxrwxrwx root root 27 ./usr/lib/libthread_db.so -> ../../lib/libthread_db.so.1
+-rwxr-xr-x root root 67472 ./usr/lib/libtic.so.5.9
+lrwxrwxrwx root root 13 ./usr/lib/libtic.so.5 -> libtic.so.5.9
+lrwxrwxrwx root root 11 ./usr/lib/libtic.so -> libtic.so.5
+-rwxr-xr-x root root 67472 ./usr/lib/libticw.so.5.9
+lrwxrwxrwx root root 14 ./usr/lib/libticw.so.5 -> libticw.so.5.9
+lrwxrwxrwx root root 12 ./usr/lib/libticw.so -> libticw.so.5
+lrwxrwxrwx root root 23 ./usr/lib/libtinfo.so -> ../../lib/libtinfo.so.5
+-rwxr-xr-x root root 161888 ./usr/lib/libtirpc.so.3.0.0
+lrwxrwxrwx root root 17 ./usr/lib/libtirpc.so.3 -> libtirpc.so.3.0.0
+lrwxrwxrwx root root 17 ./usr/lib/libtirpc.so -> libtirpc.so.3.0.0
+lrwxrwxrwx root root 26 ./usr/lib/libudev.so -> ../../lib/libudev.so.1.6.3
+lrwxrwxrwx root root 22 ./usr/lib/libutil.so -> ../../lib/libutil.so.1
+lrwxrwxrwx root root 26 ./usr/lib/libuuid.so -> ../../lib/libuuid.so.1.3.0
+-rwxr-xr-x root root 68272 ./usr/lib/libwayland-client.so.0.3.0
+lrwxrwxrwx root root 26 ./usr/lib/libwayland-client.so.0 -> libwayland-client.so.0.3.0
+lrwxrwxrwx root root 22 ./usr/lib/libwayland-client.so -> libwayland-client.so.0
+-rwxr-xr-x root root 30720 ./usr/lib/libwayland-cursor.so.0.0.0
+lrwxrwxrwx root root 26 ./usr/lib/libwayland-cursor.so.0 -> libwayland-cursor.so.0.0.0
+lrwxrwxrwx root root 22 ./usr/lib/libwayland-cursor.so -> libwayland-cursor.so.0
+-rwxr-xr-x root root 14080 ./usr/lib/libwayland-egl.so.1.0.0
+lrwxrwxrwx root root 23 ./usr/lib/libwayland-egl.so.1 -> libwayland-egl.so.1.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libwayland-egl.so -> libwayland-egl.so.1
+-rwxr-xr-x root root 88784 ./usr/lib/libwayland-server.so.0.1.0
+lrwxrwxrwx root root 26 ./usr/lib/libwayland-server.so.0 -> libwayland-server.so.0.1.0
+lrwxrwxrwx root root 22 ./usr/lib/libwayland-server.so -> libwayland-server.so.0
+lrwxrwxrwx root root 26 ./usr/lib/libwrap.so -> ../../lib/libwrap.so.0.7.6
+-rwxr-xr-x root root 1308960 ./usr/lib/libX11.so.6.3.0
+lrwxrwxrwx root root 15 ./usr/lib/libX11.so.6 -> libX11.so.6.3.0
+lrwxrwxrwx root root 15 ./usr/lib/libX11.so -> libX11.so.6.3.0
+-rwxr-xr-x root root 13848 ./usr/lib/libX11-xcb.so.1.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libX11-xcb.so.1 -> libX11-xcb.so.1.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libX11-xcb.so -> libX11-xcb.so.1.0.0
+-rwxr-xr-x root root 14144 ./usr/lib/libXau.so.6.0.0
+lrwxrwxrwx root root 15 ./usr/lib/libXau.so.6 -> libXau.so.6.0.0
+lrwxrwxrwx root root 15 ./usr/lib/libXau.so -> libXau.so.6.0.0
+-rwxr-xr-x root root 14256 ./usr/lib/libxcb-composite.so.0.0.0
+lrwxrwxrwx root root 25 ./usr/lib/libxcb-composite.so.0 -> libxcb-composite.so.0.0.0
+lrwxrwxrwx root root 25 ./usr/lib/libxcb-composite.so -> libxcb-composite.so.0.0.0
+-rwxr-xr-x root root 14248 ./usr/lib/libxcb-damage.so.0.0.0
+lrwxrwxrwx root root 22 ./usr/lib/libxcb-damage.so.0 -> libxcb-damage.so.0.0.0
+lrwxrwxrwx root root 22 ./usr/lib/libxcb-damage.so -> libxcb-damage.so.0.0.0
+-rwxr-xr-x root root 14248 ./usr/lib/libxcb-dpms.so.0.0.0
+lrwxrwxrwx root root 20 ./usr/lib/libxcb-dpms.so.0 -> libxcb-dpms.so.0.0.0
+lrwxrwxrwx root root 20 ./usr/lib/libxcb-dpms.so -> libxcb-dpms.so.0.0.0
+-rwxr-xr-x root root 22440 ./usr/lib/libxcb-dri2.so.0.0.0
+lrwxrwxrwx root root 20 ./usr/lib/libxcb-dri2.so.0 -> libxcb-dri2.so.0.0.0
+lrwxrwxrwx root root 20 ./usr/lib/libxcb-dri2.so -> libxcb-dri2.so.0.0.0
+-rwxr-xr-x root root 18344 ./usr/lib/libxcb-dri3.so.0.0.0
+lrwxrwxrwx root root 20 ./usr/lib/libxcb-dri3.so.0 -> libxcb-dri3.so.0.0.0
+lrwxrwxrwx root root 20 ./usr/lib/libxcb-dri3.so -> libxcb-dri3.so.0.0.0
+-rwxr-xr-x root root 116648 ./usr/lib/libxcb-glx.so.0.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libxcb-glx.so.0 -> libxcb-glx.so.0.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libxcb-glx.so -> libxcb-glx.so.0.0.0
+-rwxr-xr-x root root 14248 ./usr/lib/libxcb-present.so.0.0.0
+lrwxrwxrwx root root 23 ./usr/lib/libxcb-present.so.0 -> libxcb-present.so.0.0.0
+lrwxrwxrwx root root 23 ./usr/lib/libxcb-present.so -> libxcb-present.so.0.0.0
+-rwxr-xr-x root root 67496 ./usr/lib/libxcb-randr.so.0.1.0
+lrwxrwxrwx root root 21 ./usr/lib/libxcb-randr.so.0 -> libxcb-randr.so.0.1.0
+lrwxrwxrwx root root 21 ./usr/lib/libxcb-randr.so -> libxcb-randr.so.0.1.0
+-rwxr-xr-x root root 18344 ./usr/lib/libxcb-record.so.0.0.0
+lrwxrwxrwx root root 22 ./usr/lib/libxcb-record.so.0 -> libxcb-record.so.0.0.0
+lrwxrwxrwx root root 22 ./usr/lib/libxcb-record.so -> libxcb-record.so.0.0.0
+-rwxr-xr-x root root 59304 ./usr/lib/libxcb-render.so.0.0.0
+lrwxrwxrwx root root 22 ./usr/lib/libxcb-render.so.0 -> libxcb-render.so.0.0.0
+lrwxrwxrwx root root 22 ./usr/lib/libxcb-render.so -> libxcb-render.so.0.0.0
+-rwxr-xr-x root root 18344 ./usr/lib/libxcb-res.so.0.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libxcb-res.so.0 -> libxcb-res.so.0.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libxcb-res.so -> libxcb-res.so.0.0.0
+-rwxr-xr-x root root 14256 ./usr/lib/libxcb-screensaver.so.0.0.0
+lrwxrwxrwx root root 27 ./usr/lib/libxcb-screensaver.so.0 -> libxcb-screensaver.so.0.0.0
+lrwxrwxrwx root root 27 ./usr/lib/libxcb-screensaver.so -> libxcb-screensaver.so.0.0.0
+-rwxr-xr-x root root 14248 ./usr/lib/libxcb-shape.so.0.0.0
+lrwxrwxrwx root root 21 ./usr/lib/libxcb-shape.so.0 -> libxcb-shape.so.0.0.0
+lrwxrwxrwx root root 21 ./usr/lib/libxcb-shape.so -> libxcb-shape.so.0.0.0
+-rwxr-xr-x root root 14248 ./usr/lib/libxcb-shm.so.0.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libxcb-shm.so.0 -> libxcb-shm.so.0.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libxcb-shm.so -> libxcb-shm.so.0.0.0
+-rwxr-xr-x root root 169920 ./usr/lib/libxcb.so.1.1.0
+lrwxrwxrwx root root 15 ./usr/lib/libxcb.so.1 -> libxcb.so.1.1.0
+lrwxrwxrwx root root 15 ./usr/lib/libxcb.so -> libxcb.so.1.1.0
+-rwxr-xr-x root root 34728 ./usr/lib/libxcb-sync.so.1.0.0
+lrwxrwxrwx root root 20 ./usr/lib/libxcb-sync.so.1 -> libxcb-sync.so.1.0.0
+lrwxrwxrwx root root 20 ./usr/lib/libxcb-sync.so -> libxcb-sync.so.1.0.0
+-rwxr-xr-x root root 18344 ./usr/lib/libxcb-xf86dri.so.0.0.0
+lrwxrwxrwx root root 23 ./usr/lib/libxcb-xf86dri.so.0 -> libxcb-xf86dri.so.0.0.0
+lrwxrwxrwx root root 23 ./usr/lib/libxcb-xf86dri.so -> libxcb-xf86dri.so.0.0.0
+-rwxr-xr-x root root 34728 ./usr/lib/libxcb-xfixes.so.0.0.0
+lrwxrwxrwx root root 22 ./usr/lib/libxcb-xfixes.so.0 -> libxcb-xfixes.so.0.0.0
+lrwxrwxrwx root root 22 ./usr/lib/libxcb-xfixes.so -> libxcb-xfixes.so.0.0.0
+-rwxr-xr-x root root 14256 ./usr/lib/libxcb-xinerama.so.0.0.0
+lrwxrwxrwx root root 24 ./usr/lib/libxcb-xinerama.so.0 -> libxcb-xinerama.so.0.0.0
+lrwxrwxrwx root root 24 ./usr/lib/libxcb-xinerama.so -> libxcb-xinerama.so.0.0.0
+-rwxr-xr-x root root 149416 ./usr/lib/libxcb-xinput.so.0.1.0
+lrwxrwxrwx root root 22 ./usr/lib/libxcb-xinput.so.0 -> libxcb-xinput.so.0.1.0
+lrwxrwxrwx root root 22 ./usr/lib/libxcb-xinput.so -> libxcb-xinput.so.0.1.0
+-rwxr-xr-x root root 120744 ./usr/lib/libxcb-xkb.so.1.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libxcb-xkb.so.1 -> libxcb-xkb.so.1.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libxcb-xkb.so -> libxcb-xkb.so.1.0.0
+-rwxr-xr-x root root 14248 ./usr/lib/libxcb-xtest.so.0.0.0
+lrwxrwxrwx root root 21 ./usr/lib/libxcb-xtest.so.0 -> libxcb-xtest.so.0.0.0
+lrwxrwxrwx root root 21 ./usr/lib/libxcb-xtest.so -> libxcb-xtest.so.0.0.0
+-rwxr-xr-x root root 18344 ./usr/lib/libxcb-xvmc.so.0.0.0
+lrwxrwxrwx root root 20 ./usr/lib/libxcb-xvmc.so.0 -> libxcb-xvmc.so.0.0.0
+lrwxrwxrwx root root 20 ./usr/lib/libxcb-xvmc.so -> libxcb-xvmc.so.0.0.0
+-rwxr-xr-x root root 34728 ./usr/lib/libxcb-xv.so.0.0.0
+lrwxrwxrwx root root 18 ./usr/lib/libxcb-xv.so.0 -> libxcb-xv.so.0.0.0
+lrwxrwxrwx root root 18 ./usr/lib/libxcb-xv.so -> libxcb-xv.so.0.0.0
+-rwxr-xr-x root root 14144 ./usr/lib/libXdamage.so.1.1.0
+lrwxrwxrwx root root 19 ./usr/lib/libXdamage.so.1 -> libXdamage.so.1.1.0
+lrwxrwxrwx root root 19 ./usr/lib/libXdamage.so -> libXdamage.so.1.1.0
+-rwxr-xr-x root root 26432 ./usr/lib/libXdmcp.so.6.0.0
+lrwxrwxrwx root root 17 ./usr/lib/libXdmcp.so.6 -> libXdmcp.so.6.0.0
+lrwxrwxrwx root root 17 ./usr/lib/libXdmcp.so -> libXdmcp.so.6.0.0
+-rwxr-xr-x root root 80992 ./usr/lib/libXext.so.6.4.0
+lrwxrwxrwx root root 16 ./usr/lib/libXext.so.6 -> libXext.so.6.4.0
+lrwxrwxrwx root root 16 ./usr/lib/libXext.so -> libXext.so.6.4.0
+-rwxr-xr-x root root 30464 ./usr/lib/libXfixes.so.3.1.0
+lrwxrwxrwx root root 18 ./usr/lib/libXfixes.so.3 -> libXfixes.so.3.1.0
+lrwxrwxrwx root root 18 ./usr/lib/libXfixes.so -> libXfixes.so.3.1.0
+-rwxr-xr-x root root 1409880 ./usr/lib/libxml2.so.2.9.10
+lrwxrwxrwx root root 17 ./usr/lib/libxml2.so.2 -> libxml2.so.2.9.10
+lrwxrwxrwx root root 17 ./usr/lib/libxml2.so -> libxml2.so.2.9.10
+-rwxr-xr-x root root 47024 ./usr/lib/libXrandr.so.2.2.0
+lrwxrwxrwx root root 18 ./usr/lib/libXrandr.so.2 -> libXrandr.so.2.2.0
+lrwxrwxrwx root root 18 ./usr/lib/libXrandr.so -> libXrandr.so.2.2.0
+-rwxr-xr-x root root 47184 ./usr/lib/libXrender.so.1.3.0
+lrwxrwxrwx root root 19 ./usr/lib/libXrender.so.1 -> libXrender.so.1.3.0
+lrwxrwxrwx root root 19 ./usr/lib/libXrender.so -> libXrender.so.1.3.0
+-rwxr-xr-x root root 14152 ./usr/lib/libxshmfence.so.1.0.0
+lrwxrwxrwx root root 21 ./usr/lib/libxshmfence.so.1 -> libxshmfence.so.1.0.0
+lrwxrwxrwx root root 21 ./usr/lib/libxshmfence.so -> libxshmfence.so.1.0.0
+-rwxr-xr-x root root 63384 ./usr/lib/libxtables.so.12.2.0
+lrwxrwxrwx root root 20 ./usr/lib/libxtables.so.12 -> libxtables.so.12.2.0
+lrwxrwxrwx root root 20 ./usr/lib/libxtables.so -> libxtables.so.12.2.0
+-rwxr-xr-x root root 22456 ./usr/lib/libXxf86vm.so.1.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libXxf86vm.so.1 -> libXxf86vm.so.1.0.0
+lrwxrwxrwx root root 19 ./usr/lib/libXxf86vm.so -> libXxf86vm.so.1.0.0
+lrwxrwxrwx root root 24 ./usr/lib/libz.so -> ../../lib/libz.so.1.2.11
+-rw-r--r-- root root 1368 ./usr/lib/Mcrt1.o
+drwxr-xr-x root root 4096 ./usr/lib/opkg
+drwxr-xr-x root root 12288 ./usr/lib/opkg/alternatives
+-rw-r--r-- root root 35 ./usr/lib/opkg/alternatives/[[
+-rw-r--r-- root root 42 ./usr/lib/opkg/alternatives/addgroup
+-rw-r--r-- root root 60 ./usr/lib/opkg/alternatives/addr2line
+-rw-r--r-- root root 41 ./usr/lib/opkg/alternatives/adduser
+-rw-r--r-- root root 46 ./usr/lib/opkg/alternatives/ar
+-rw-r--r-- root root 42 ./usr/lib/opkg/alternatives/arch
+-rw-r--r-- root root 46 ./usr/lib/opkg/alternatives/as
+-rw-r--r-- root root 32 ./usr/lib/opkg/alternatives/ash
+-rw-r--r-- root root 54 ./usr/lib/opkg/alternatives/awk
+-rw-r--r-- root root 42 ./usr/lib/opkg/alternatives/base64
+-rw-r--r-- root root 73 ./usr/lib/opkg/alternatives/basename
+-rw-r--r-- root root 29 ./usr/lib/opkg/alternatives/bash
+-rw-r--r-- root root 31 ./usr/lib/opkg/alternatives/bc
+-rw-r--r-- root root 30 ./usr/lib/opkg/alternatives/bin-lsmod
+-rw-r--r-- root root 61 ./usr/lib/opkg/alternatives/blkid
+-rw-r--r-- root root 44 ./usr/lib/opkg/alternatives/blockdev
+-rw-r--r-- root root 67 ./usr/lib/opkg/alternatives/bunzip2
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/bzcat
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/bzip2
+-rw-r--r-- root root 40 ./usr/lib/opkg/alternatives/cal
+-rw-r--r-- root root 55 ./usr/lib/opkg/alternatives/cat
+-rw-r--r-- root root 56 ./usr/lib/opkg/alternatives/c++filt
+-rw-r--r-- root root 61 ./usr/lib/opkg/alternatives/chattr
+-rw-r--r-- root root 44 ./usr/lib/opkg/alternatives/chcon
+-rw-r--r-- root root 39 ./usr/lib/opkg/alternatives/chfn
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/chgrp
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/chmod
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/chown
+-rw-r--r-- root root 49 ./usr/lib/opkg/alternatives/chpasswd
+-rw-r--r-- root root 71 ./usr/lib/opkg/alternatives/chroot
+-rw-r--r-- root root 42 ./usr/lib/opkg/alternatives/chrt
+-rw-r--r-- root root 39 ./usr/lib/opkg/alternatives/chsh
+-rw-r--r-- root root 37 ./usr/lib/opkg/alternatives/chvt
+-rw-r--r-- root root 44 ./usr/lib/opkg/alternatives/cksum
+-rw-r--r-- root root 38 ./usr/lib/opkg/alternatives/clear
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/cmp
+-rw-r--r-- root root 42 ./usr/lib/opkg/alternatives/comm
+-rw-r--r-- root root 53 ./usr/lib/opkg/alternatives/cp
+-rw-r--r-- root root 33 ./usr/lib/opkg/alternatives/cpio
+-rw-r--r-- root root 46 ./usr/lib/opkg/alternatives/csplit
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/cut
+-rw-r--r-- root root 57 ./usr/lib/opkg/alternatives/date
+-rw-r--r-- root root 54 ./usr/lib/opkg/alternatives/dc
+-rw-r--r-- root root 53 ./usr/lib/opkg/alternatives/dd
+-rw-r--r-- root root 42 ./usr/lib/opkg/alternatives/deallocvt
+-rw-r--r-- root root 42 ./usr/lib/opkg/alternatives/delgroup
+-rw-r--r-- root root 41 ./usr/lib/opkg/alternatives/deluser
+-rw-r--r-- root root 57 ./usr/lib/opkg/alternatives/depmod
+-rw-r--r-- root root 57 ./usr/lib/opkg/alternatives/df
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/diff
+-rw-r--r-- root root 40 ./usr/lib/opkg/alternatives/dir
+-rw-r--r-- root root 52 ./usr/lib/opkg/alternatives/dircolors
+-rw-r--r-- root root 71 ./usr/lib/opkg/alternatives/dirname
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/dmesg
+-rw-r--r-- root root 42 ./usr/lib/opkg/alternatives/dnsdomainname
+-rw-r--r-- root root 61 ./usr/lib/opkg/alternatives/du
+-rw-r--r-- root root 37 ./usr/lib/opkg/alternatives/dumpkmap
+-rw-r--r-- root root 43 ./usr/lib/opkg/alternatives/dumpleases
+-rw-r--r-- root root 48 ./usr/lib/opkg/alternatives/dwp
+-rw-r--r-- root root 57 ./usr/lib/opkg/alternatives/echo
+-rw-r--r-- root root 54 ./usr/lib/opkg/alternatives/egrep
+-rw-r--r-- root root 44 ./usr/lib/opkg/alternatives/eject
+-rw-r--r-- root root 56 ./usr/lib/opkg/alternatives/elfedit
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/env
+-rw-r--r-- root root 46 ./usr/lib/opkg/alternatives/expand
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/expr
+-rw-r--r-- root root 46 ./usr/lib/opkg/alternatives/factor
+-rw-r--r-- root root 52 ./usr/lib/opkg/alternatives/fallocate
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/false
+-rw-r--r-- root root 39 ./usr/lib/opkg/alternatives/fbset
+-rw-r--r-- root root 61 ./usr/lib/opkg/alternatives/fdisk
+-rw-r--r-- root root 54 ./usr/lib/opkg/alternatives/fgrep
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/find
+-rw-r--r-- root root 67 ./usr/lib/opkg/alternatives/flock
+-rw-r--r-- root root 40 ./usr/lib/opkg/alternatives/fmt
+-rw-r--r-- root root 42 ./usr/lib/opkg/alternatives/fold
+-rw-r--r-- root root 62 ./usr/lib/opkg/alternatives/free
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/fsck
+-rw-r--r-- root root 52 ./usr/lib/opkg/alternatives/fsfreeze
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/fstrim
+-rw-r--r-- root root 38 ./usr/lib/opkg/alternatives/fuser
+-rw-r--r-- root root 61 ./usr/lib/opkg/alternatives/getopt
+-rw-r--r-- root root 51 ./usr/lib/opkg/alternatives/getty
+-rw-r--r-- root root 52 ./usr/lib/opkg/alternatives/gprof
+-rw-r--r-- root root 52 ./usr/lib/opkg/alternatives/grep
+-rw-r--r-- root root 96 ./usr/lib/opkg/alternatives/groups
+-rw-r--r-- root root 35 ./usr/lib/opkg/alternatives/gunzip
+-rw-r--r-- root root 33 ./usr/lib/opkg/alternatives/gzip
+-rw-r--r-- root root 35 ./usr/lib/opkg/alternatives/halt
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/head
+-rw-r--r-- root root 71 ./usr/lib/opkg/alternatives/hexdump
+-rw-r--r-- root root 46 ./usr/lib/opkg/alternatives/hostid
+-rw-r--r-- root root 64 ./usr/lib/opkg/alternatives/hostname
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/hwclock
+-rw-r--r-- root root 61 ./usr/lib/opkg/alternatives/id
+-rw-r--r-- root root 38 ./usr/lib/opkg/alternatives/ifconfig
+-rw-r--r-- root root 36 ./usr/lib/opkg/alternatives/ifdown
+-rw-r--r-- root root 34 ./usr/lib/opkg/alternatives/ifup
+-rw-r--r-- root root 34 ./usr/lib/opkg/alternatives/init
+-rw-r--r-- root root 57 ./usr/lib/opkg/alternatives/insmod
+-rw-r--r-- root root 48 ./usr/lib/opkg/alternatives/install
+-rw-r--r-- root root 46 ./usr/lib/opkg/alternatives/ionice
+-rw-r--r-- root root 54 ./usr/lib/opkg/alternatives/ip
+-rw-r--r-- root root 42 ./usr/lib/opkg/alternatives/join
+-rw-r--r-- root root 102 ./usr/lib/opkg/alternatives/kill
+-rw-r--r-- root root 40 ./usr/lib/opkg/alternatives/killall
+-rw-r--r-- root root 35 ./usr/lib/opkg/alternatives/klogd
+-rw-r--r-- root root 69 ./usr/lib/opkg/alternatives/last
+-rw-r--r-- root root 72 ./usr/lib/opkg/alternatives/lastb
+-rw-r--r-- root root 66 ./usr/lib/opkg/alternatives/lbracket
+-rw-r--r-- root root 46 ./usr/lib/opkg/alternatives/ld
+-rw-r--r-- root root 54 ./usr/lib/opkg/alternatives/ld.bfd
+-rw-r--r-- root root 56 ./usr/lib/opkg/alternatives/ld.gold
+-rw-r--r-- root root 37 ./usr/lib/opkg/alternatives/less
+-rw-r--r-- root root 42 ./usr/lib/opkg/alternatives/link
+-rw-r--r-- root root 53 ./usr/lib/opkg/alternatives/ln
+-rw-r--r-- root root 42 ./usr/lib/opkg/alternatives/loadfont
+-rw-r--r-- root root 38 ./usr/lib/opkg/alternatives/loadkmap
+-rw-r--r-- root root 69 ./usr/lib/opkg/alternatives/logger
+-rw-r--r-- root root 54 ./usr/lib/opkg/alternatives/login
+-rw-r--r-- root root 71 ./usr/lib/opkg/alternatives/logname
+-rw-r--r-- root root 37 ./usr/lib/opkg/alternatives/logread
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/losetup
+-rw-r--r-- root root 53 ./usr/lib/opkg/alternatives/ls
+-rw-r--r-- root root 54 ./usr/lib/opkg/alternatives/lsmod
+-rw-r--r-- root root 60 ./usr/lib/opkg/alternatives/lzcat
+-rw-r--r-- root root 35 ./usr/lib/opkg/alternatives/lzma
+-rw-r--r-- root root 69 ./usr/lib/opkg/alternatives/md5sum
+-rw-r--r-- root root 92 ./usr/lib/opkg/alternatives/mesg
+-rw-r--r-- root root 41 ./usr/lib/opkg/alternatives/microcom
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/mkdir
+-rw-r--r-- root root 40 ./usr/lib/opkg/alternatives/mke2fs
+-rw-r--r-- root root 69 ./usr/lib/opkg/alternatives/mkfifo
+-rw-r--r-- root root 46 ./usr/lib/opkg/alternatives/mkfs.ext2
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/mknod
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/mkswap
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/mktemp
+-rw-r--r-- root root 36 ./usr/lib/opkg/alternatives/modinfo
+-rw-r--r-- root root 61 ./usr/lib/opkg/alternatives/modprobe
+-rw-r--r-- root root 57 ./usr/lib/opkg/alternatives/more
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/mount
+-rw-r--r-- root root 97 ./usr/lib/opkg/alternatives/mountpoint
+-rw-r--r-- root root 53 ./usr/lib/opkg/alternatives/mv
+-rw-r--r-- root root 35 ./usr/lib/opkg/alternatives/nc
+-rw-r--r-- root root 36 ./usr/lib/opkg/alternatives/netstat
+-rw-r--r-- root root 43 ./usr/lib/opkg/alternatives/newgrp
+-rw-r--r-- root root 38 ./usr/lib/opkg/alternatives/nice
+-rw-r--r-- root root 38 ./usr/lib/opkg/alternatives/nl
+-rw-r--r-- root root 46 ./usr/lib/opkg/alternatives/nm
+-rw-r--r-- root root 67 ./usr/lib/opkg/alternatives/nohup
+-rw-r--r-- root root 67 ./usr/lib/opkg/alternatives/nologin
+-rw-r--r-- root root 67 ./usr/lib/opkg/alternatives/nproc
+-rw-r--r-- root root 48 ./usr/lib/opkg/alternatives/nsenter
+-rw-r--r-- root root 41 ./usr/lib/opkg/alternatives/nslookup
+-rw-r--r-- root root 56 ./usr/lib/opkg/alternatives/objcopy
+-rw-r--r-- root root 56 ./usr/lib/opkg/alternatives/objdump
+-rw-r--r-- root root 61 ./usr/lib/opkg/alternatives/od
+-rw-r--r-- root root 39 ./usr/lib/opkg/alternatives/openvt
+-rw-r--r-- root root 64 ./usr/lib/opkg/alternatives/passwd
+-rw-r--r-- root root 44 ./usr/lib/opkg/alternatives/paste
+-rw-r--r-- root root 38 ./usr/lib/opkg/alternatives/patch
+-rw-r--r-- root root 48 ./usr/lib/opkg/alternatives/pathchk
+-rw-r--r-- root root 41 ./usr/lib/opkg/alternatives/pgrep
+-rw-r--r-- root root 80 ./usr/lib/opkg/alternatives/pidof
+-rw-r--r-- root root 31 ./usr/lib/opkg/alternatives/ping
+-rw-r--r-- root root 32 ./usr/lib/opkg/alternatives/ping6
+-rw-r--r-- root root 44 ./usr/lib/opkg/alternatives/pinky
+-rw-r--r-- root root 71 ./usr/lib/opkg/alternatives/pivot_root
+-rw-r--r-- root root 41 ./usr/lib/opkg/alternatives/pkill
+-rw-r--r-- root root 39 ./usr/lib/opkg/alternatives/pmap
+-rw-r--r-- root root 43 ./usr/lib/opkg/alternatives/poweroff
+-rw-r--r-- root root 38 ./usr/lib/opkg/alternatives/pr
+-rw-r--r-- root root 46 ./usr/lib/opkg/alternatives/printenv
+-rw-r--r-- root root 69 ./usr/lib/opkg/alternatives/printf
+-rw-r--r-- root root 50 ./usr/lib/opkg/alternatives/ps
+-rw-r--r-- root root 40 ./usr/lib/opkg/alternatives/ptx
+-rw-r--r-- root root 55 ./usr/lib/opkg/alternatives/pwd
+-rw-r--r-- root root 39 ./usr/lib/opkg/alternatives/pwdx
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/python3-config
+-rw-r--r-- root root 54 ./usr/lib/opkg/alternatives/ranlib
+-rw-r--r-- root root 39 ./usr/lib/opkg/alternatives/rdate
+-rw-r--r-- root root 56 ./usr/lib/opkg/alternatives/readelf
+-rw-r--r-- root root 73 ./usr/lib/opkg/alternatives/readlink
+-rw-r--r-- root root 58 ./usr/lib/opkg/alternatives/readprofile
+-rw-r--r-- root root 73 ./usr/lib/opkg/alternatives/realpath
+-rw-r--r-- root root 62 ./usr/lib/opkg/alternatives/reboot
+-rw-r--r-- root root 69 ./usr/lib/opkg/alternatives/renice
+-rw-r--r-- root root 38 ./usr/lib/opkg/alternatives/reset
+-rw-r--r-- root root 39 ./usr/lib/opkg/alternatives/resize
+-rw-r--r-- root root 40 ./usr/lib/opkg/alternatives/rev
+-rw-r--r-- root root 71 ./usr/lib/opkg/alternatives/rfkill
+-rw-r--r-- root root 53 ./usr/lib/opkg/alternatives/rm
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/rmdir
+-rw-r--r-- root root 55 ./usr/lib/opkg/alternatives/rmmod
+-rw-r--r-- root root 35 ./usr/lib/opkg/alternatives/route
+-rw-r--r-- root root 50 ./usr/lib/opkg/alternatives/rtcwake
+-rw-r--r-- root root 46 ./usr/lib/opkg/alternatives/runcon
+-rw-r--r-- root root 43 ./usr/lib/opkg/alternatives/runlevel
+-rw-r--r-- root root 38 ./usr/lib/opkg/alternatives/run-parts
+-rw-r--r-- root root 49 ./usr/lib/opkg/alternatives/sed
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/seq
+-rw-r--r-- root root 40 ./usr/lib/opkg/alternatives/setconsole
+-rw-r--r-- root root 45 ./usr/lib/opkg/alternatives/setfattr
+-rw-r--r-- root root 48 ./usr/lib/opkg/alternatives/setpriv
+-rw-r--r-- root root 69 ./usr/lib/opkg/alternatives/setsid
+-rw-r--r-- root root 50 ./usr/lib/opkg/alternatives/sh
+-rw-r--r-- root root 71 ./usr/lib/opkg/alternatives/sha1sum
+-rw-r--r-- root root 52 ./usr/lib/opkg/alternatives/sha224sum
+-rw-r--r-- root root 75 ./usr/lib/opkg/alternatives/sha256sum
+-rw-r--r-- root root 52 ./usr/lib/opkg/alternatives/sha384sum
+-rw-r--r-- root root 52 ./usr/lib/opkg/alternatives/sha512sum
+-rw-r--r-- root root 44 ./usr/lib/opkg/alternatives/shred
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/shuf
+-rw-r--r-- root root 43 ./usr/lib/opkg/alternatives/shutdown
+-rw-r--r-- root root 50 ./usr/lib/opkg/alternatives/size
+-rw-r--r-- root root 41 ./usr/lib/opkg/alternatives/skill
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/sleep
+-rw-r--r-- root root 41 ./usr/lib/opkg/alternatives/snice
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/sort
+-rw-r--r-- root root 44 ./usr/lib/opkg/alternatives/split
+-rw-r--r-- root root 47 ./usr/lib/opkg/alternatives/start-stop-daemon
+-rw-r--r-- root root 57 ./usr/lib/opkg/alternatives/stat
+-rw-r--r-- root root 79 ./usr/lib/opkg/alternatives/strings
+-rw-r--r-- root root 52 ./usr/lib/opkg/alternatives/strip
+-rw-r--r-- root root 57 ./usr/lib/opkg/alternatives/stty
+-rw-r--r-- root root 48 ./usr/lib/opkg/alternatives/su
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/sulogin
+-rw-r--r-- root root 40 ./usr/lib/opkg/alternatives/sum
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/swapoff
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/swapon
+-rw-r--r-- root root 73 ./usr/lib/opkg/alternatives/switch_root
+-rw-r--r-- root root 57 ./usr/lib/opkg/alternatives/sync
+-rw-r--r-- root root 60 ./usr/lib/opkg/alternatives/sysctl
+-rw-r--r-- root root 37 ./usr/lib/opkg/alternatives/syslogd
+-rw-r--r-- root root 40 ./usr/lib/opkg/alternatives/tac
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/tail
+-rw-r--r-- root root 32 ./usr/lib/opkg/alternatives/tar
+-rw-r--r-- root root 48 ./usr/lib/opkg/alternatives/taskset
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/tee
+-rw-r--r-- root root 39 ./usr/lib/opkg/alternatives/telnet
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/test
+-rw-r--r-- root root 37 ./usr/lib/opkg/alternatives/tftp
+-rw-r--r-- root root 37 ./usr/lib/opkg/alternatives/time
+-rw-r--r-- root root 48 ./usr/lib/opkg/alternatives/timeout
+-rw-r--r-- root root 60 ./usr/lib/opkg/alternatives/top
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/touch
+-rw-r--r-- root root 61 ./usr/lib/opkg/alternatives/tr
+-rw-r--r-- root root 41 ./usr/lib/opkg/alternatives/traceroute
+-rw-r--r-- root root 57 ./usr/lib/opkg/alternatives/true
+-rw-r--r-- root root 50 ./usr/lib/opkg/alternatives/truncate
+-rw-r--r-- root root 35 ./usr/lib/opkg/alternatives/ts
+-rw-r--r-- root root 44 ./usr/lib/opkg/alternatives/tsort
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/tty
+-rw-r--r-- root root 36 ./usr/lib/opkg/alternatives/udhcpc
+-rw-r--r-- root root 40 ./usr/lib/opkg/alternatives/udhcpd
+-rw-r--r-- root root 61 ./usr/lib/opkg/alternatives/umount
+-rw-r--r-- root root 59 ./usr/lib/opkg/alternatives/uname
+-rw-r--r-- root root 50 ./usr/lib/opkg/alternatives/unexpand
+-rw-r--r-- root root 65 ./usr/lib/opkg/alternatives/uniq
+-rw-r--r-- root root 69 ./usr/lib/opkg/alternatives/unlink
+-rw-r--r-- root root 39 ./usr/lib/opkg/alternatives/unlzma
+-rw-r--r-- root root 48 ./usr/lib/opkg/alternatives/unshare
+-rw-r--r-- root root 35 ./usr/lib/opkg/alternatives/unxz
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/unzip
+-rw-r--r-- root root 96 ./usr/lib/opkg/alternatives/uptime
+-rw-r--r-- root root 67 ./usr/lib/opkg/alternatives/users
+-rw-r--r-- root root 35 ./usr/lib/opkg/alternatives/usleep
+-rw-r--r-- root root 81 ./usr/lib/opkg/alternatives/utmpdump
+-rw-r--r-- root root 42 ./usr/lib/opkg/alternatives/vdir
+-rw-r--r-- root root 31 ./usr/lib/opkg/alternatives/vi
+-rw-r--r-- root root 33 ./usr/lib/opkg/alternatives/vigr
+-rw-r--r-- root root 33 ./usr/lib/opkg/alternatives/vipw
+-rw-r--r-- root root 36 ./usr/lib/opkg/alternatives/vlock
+-rw-r--r-- root root 33 ./usr/lib/opkg/alternatives/w
+-rw-r--r-- root root 69 ./usr/lib/opkg/alternatives/wall
+-rw-r--r-- root root 56 ./usr/lib/opkg/alternatives/watch
+-rw-r--r-- root root 61 ./usr/lib/opkg/alternatives/wc
+-rw-r--r-- root root 37 ./usr/lib/opkg/alternatives/wget
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/which
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/who
+-rw-r--r-- root root 69 ./usr/lib/opkg/alternatives/whoami
+-rw-r--r-- root root 67 ./usr/lib/opkg/alternatives/xargs
+-rw-r--r-- root root 31 ./usr/lib/opkg/alternatives/xz
+-rw-r--r-- root root 60 ./usr/lib/opkg/alternatives/xzcat
+-rw-r--r-- root root 63 ./usr/lib/opkg/alternatives/yes
+-rw-r--r-- root root 33 ./usr/lib/opkg/alternatives/zcat
+drwxr-xr-x root root 4096 ./usr/lib/perl5
+drwxr-xr-x root root 4096 ./usr/lib/perl5/5.30.2
+-rwxr-xr-x root root 3305 ./usr/lib/perl5/5.30.2/Config.pm
+drwxr-xr-x root root 4096 ./usr/lib/perl5/5.30.2/ExtUtils
+-r--r--r-- root root 1105 ./usr/lib/perl5/5.30.2/ExtUtils/MANIFEST.SKIP
+-rwxr-xr-x root root 11315 ./usr/lib/perl5/5.30.2/ExtUtils/typemap
+-r--r--r-- root root 5071 ./usr/lib/perl5/5.30.2/ExtUtils/xsubpp
+-r--r--r-- root root 4738 ./usr/lib/perl5/5.30.2/strict.pm
+-r--r--r-- root root 2458 ./usr/lib/perl5/5.30.2/vars.pm
+drwxr-xr-x root root 4096 ./usr/lib/perl5/5.30.2/warnings
+-r--r--r-- root root 49989 ./usr/lib/perl5/5.30.2/warnings.pm
+-r--r--r-- root root 759 ./usr/lib/perl5/5.30.2/warnings/register.pm
+drwxr-xr-x root root 4096 ./usr/lib/perl5/5.30.2/x86_64-linux
+-r--r--r-- root root 409 ./usr/lib/perl5/5.30.2/x86_64-linux/Config_git.pl
+-r--r--r-- root root 43123 ./usr/lib/perl5/5.30.2/x86_64-linux/Config_heavy.pl
+lrwxrwxrwx root root 15 ./usr/lib/perl5/5.30.2/x86_64-linux/Config_heavy-target.pl -> Config_heavy.pl
+-r--r--r-- root root 3305 ./usr/lib/perl5/5.30.2/x86_64-linux/Config.pm
+drwxr-xr-x root root 4096 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE
+-r--r--r-- root root 3294 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/av.h
+-r--r--r-- root root 850 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/bitcount.h
+-r--r--r-- root root 4114121 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/charclass_invlists.h
+-r--r--r-- root root 162839 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/config.h
+-r--r--r-- root root 40671 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/cop.h
+-r--r--r-- root root 12323 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/cv.h
+-r--r--r-- root root 5461 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/dosish.h
+-r--r--r-- root root 1861 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/dquote_inline.h
+-r--r--r-- root root 49548 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/ebcdic_tables.h
+-r--r--r-- root root 102635 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/embed.h
+-r--r--r-- root root 23467 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/embedvar.h
+-r--r--r-- root root 1652 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/EXTERN.h
+-r--r--r-- root root 3210 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/fakesdio.h
+-r--r--r-- root root 5046 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/feature.h
+-r--r--r-- root root 1463 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/form.h
+-r--r--r-- root root 357 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/git_version.h
+-r--r--r-- root root 10711 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/gv.h
+-r--r--r-- root root 126538 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/handy.h
+-r--r--r-- root root 10786 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/hv_func.h
+-r--r--r-- root root 25545 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/hv.h
+-r--r--r-- root root 2953 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/hv_macro.h
+-r--r--r-- root root 68866 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/inline.h
+-r--r--r-- root root 1309 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/INTERN.h
+-r--r--r-- root root 29425 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/intrpvar.h
+-r--r--r-- root root 2976 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/invlist_inline.h
+-r--r--r-- root root 48759 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/iperlsys.h
+-r--r--r-- root root 6587 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/keywords.h
+-r--r--r-- root root 126938 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/l1_char_class_tab.h
+lrwxrwxrwx root root 29 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/libperl.so -> ../../../../libperl.so.5.30.0
+-r--r--r-- root root 1524 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/malloc_ctl.h
+-r--r--r-- root root 952 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/metaconfig.h
+-r--r--r-- root root 5021 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/mg_data.h
+-r--r--r-- root root 3013 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/mg.h
+-r--r--r-- root root 4377 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/mg_raw.h
+-r--r--r-- root root 9562 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/mg_vtable.h
+-r--r--r-- root root 1693 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/mydtrace.h
+-r--r--r-- root root 3392 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/nostdio.h
+-r--r--r-- root root 93275 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/opcode.h
+-r--r--r-- root root 36350 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/op.h
+-r--r--r-- root root 8860 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/opnames.h
+-r--r--r-- root root 5911 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/op_reg_common.h
+-r--r--r-- root root 3276 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/overload.h
+-r--r--r-- root root 17220 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/pad.h
+-r--r--r-- root root 6993 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/parser.h
+-r--r--r-- root root 5321 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/patchlevel.h
+-r--r--r-- root root 10170 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/perlapi.h
+-r--r--r-- root root 270251 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/perl.h
+-r--r--r-- root root 6223 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/perl_inc_macro.h
+-r--r--r-- root root 9464 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/perlio.h
+-r--r--r-- root root 13761 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/perliol.h
+-r--r--r-- root root 2973 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/perl_langinfo.h
+-r--r--r-- root root 527 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/perlsdio.h
+-r--r--r-- root root 13314 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/perlvars.h
+-r--r--r-- root root 4434 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/perly.h
+-r--r--r-- root root 28969 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/pp.h
+-r--r--r-- root root 12131 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/pp_proto.h
+-r--r--r-- root root 258888 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/proto.h
+-r--r--r-- root root 78454 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/reentr.h
+-r--r--r-- root root 140155 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/regcharclass.h
+-r--r--r-- root root 48923 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/regcomp.h
+-r--r--r-- root root 36671 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/regexp.h
+-r--r--r-- root root 38053 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/regnodes.h
+-r--r--r-- root root 57294 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/sbox32_hash.h
+-r--r--r-- root root 11887 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/scope.h
+-r--r--r-- root root 10477 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/stadtx_hash.h
+-r--r--r-- root root 85432 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/sv.h
+-r--r--r-- root root 12095 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/thread.h
+-r--r--r-- root root 2048 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/time64_config.h
+-r--r--r-- root root 1588 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/time64.h
+-r--r--r-- root root 44 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/try.h
+-r--r--r-- root root 163425 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/uconfig.h
+-r--r--r-- root root 8027 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/unicode_constants.h
+-r--r--r-- root root 535594 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/uni_keywords.h
+-r--r--r-- root root 5193 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/unixish.h
+-r--r--r-- root root 47587 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/utf8.h
+-r--r--r-- root root 67051 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/utfebcdic.h
+-r--r--r-- root root 10011 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/util.h
+-r--r--r-- root root 904 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/uudmap.h
+-r--r--r-- root root 7993 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/vutil.h
+-r--r--r-- root root 8230 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/warnings.h
+-r--r--r-- root root 24399 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/XSUB.h
+-r--r--r-- root root 10541 ./usr/lib/perl5/5.30.2/x86_64-linux/CORE/zaphod32_hash.h
+-rwxr-xr-x root root 36089 ./usr/lib/perl5/config.sh
+drwxr-xr-x root root 4096 ./usr/lib/perl5/site_perl
+drwxr-xr-x root root 4096 ./usr/lib/perl5/site_perl/5.30.2
+drwxr-xr-x root root 4096 ./usr/lib/perl5/site_perl/5.30.2/x86_64-linux
+drwxr-xr-x root root 4096 ./usr/lib/pkgconfig
+-rw-r--r-- root root 154 ./usr/lib/pkgconfig/applewmproto.pc
+-rw-r--r-- root root 900 ./usr/lib/pkgconfig/bash.pc
+-rw-r--r-- root root 154 ./usr/lib/pkgconfig/bigreqsproto.pc
+-rw-r--r-- root root 191 ./usr/lib/pkgconfig/blkid.pc
+-rw-r--r-- root root 242 ./usr/lib/pkgconfig/cairo-fc.pc
+-rw-r--r-- root root 239 ./usr/lib/pkgconfig/cairo-ft.pc
+-rw-r--r-- root root 223 ./usr/lib/pkgconfig/cairo-gl.pc
+-rw-r--r-- root root 217 ./usr/lib/pkgconfig/cairo-glx.pc
+-rw-r--r-- root root 276 ./usr/lib/pkgconfig/cairo-gobject.pc
+-rw-r--r-- root root 446 ./usr/lib/pkgconfig/cairo.pc
+-rw-r--r-- root root 222 ./usr/lib/pkgconfig/cairo-pdf.pc
+-rw-r--r-- root root 219 ./usr/lib/pkgconfig/cairo-png.pc
+-rw-r--r-- root root 228 ./usr/lib/pkgconfig/cairo-ps.pc
+-rw-r--r-- root root 228 ./usr/lib/pkgconfig/cairo-script.pc
+-rw-r--r-- root root 219 ./usr/lib/pkgconfig/cairo-svg.pc
+-rw-r--r-- root root 219 ./usr/lib/pkgconfig/cairo-tee.pc
+-rw-r--r-- root root 247 ./usr/lib/pkgconfig/cairo-xcb.pc
+-rw-r--r-- root root 228 ./usr/lib/pkgconfig/cairo-xcb-shm.pc
+-rw-r--r-- root root 229 ./usr/lib/pkgconfig/cairo-xlib.pc
+-rw-r--r-- root root 256 ./usr/lib/pkgconfig/cairo-xlib-xrender.pc
+-rw-r--r-- root root 247 ./usr/lib/pkgconfig/com_err.pc
+-rw-r--r-- root root 158 ./usr/lib/pkgconfig/compositeproto.pc
+-rw-r--r-- root root 152 ./usr/lib/pkgconfig/damageproto.pc
+-rw-r--r-- root root 607 ./usr/lib/pkgconfig/dbus-1.pc
+-rw-r--r-- root root 275 ./usr/lib/pkgconfig/dbus-python.pc
+-rw-r--r-- root root 146 ./usr/lib/pkgconfig/dmxproto.pc
+-rw-r--r-- root root 146 ./usr/lib/pkgconfig/dpmsproto.pc
+-rw-r--r-- root root 146 ./usr/lib/pkgconfig/dri2proto.pc
+-rw-r--r-- root root 146 ./usr/lib/pkgconfig/dri3proto.pc
+-rw-r--r-- root root 226 ./usr/lib/pkgconfig/e2p.pc
+-rw-r--r-- root root 206 ./usr/lib/pkgconfig/expat.pc
+-rw-r--r-- root root 223 ./usr/lib/pkgconfig/ext2fs.pc
+-rw-r--r-- root root 213 ./usr/lib/pkgconfig/fdisk.pc
+-rw-r--r-- root root 148 ./usr/lib/pkgconfig/fixesproto.pc
+-rw-r--r-- root root 407 ./usr/lib/pkgconfig/fontconfig.pc
+-rw-r--r-- root root 150 ./usr/lib/pkgconfig/fontsproto.pc
+-rw-r--r-- root root 469 ./usr/lib/pkgconfig/form.pc
+-rw-r--r-- root root 454 ./usr/lib/pkgconfig/formw.pc
+-rw-r--r-- root root 310 ./usr/lib/pkgconfig/freetype2.pc
+-rw-r--r-- root root 630 ./usr/lib/pkgconfig/gio-2.0.pc
+-rw-r--r-- root root 231 ./usr/lib/pkgconfig/gio-unix-2.0.pc
+-rw-r--r-- root root 377 ./usr/lib/pkgconfig/glib-2.0.pc
+-rw-r--r-- root root 354 ./usr/lib/pkgconfig/gl.pc
+-rw-r--r-- root root 145 ./usr/lib/pkgconfig/glproto.pc
+-rw-r--r-- root root 253 ./usr/lib/pkgconfig/gmodule-2.0.pc
+-rw-r--r-- root root 253 ./usr/lib/pkgconfig/gmodule-export-2.0.pc
+-rw-r--r-- root root 272 ./usr/lib/pkgconfig/gmodule-no-export-2.0.pc
+-rw-r--r-- root root 225 ./usr/lib/pkgconfig/gmp.pc
+-rw-r--r-- root root 260 ./usr/lib/pkgconfig/gmpxx.pc
+-rw-r--r-- root root 286 ./usr/lib/pkgconfig/gobject-2.0.pc
+-rw-r--r-- root root 649 ./usr/lib/pkgconfig/gobject-introspection-1.0.pc
+-rw-r--r-- root root 612 ./usr/lib/pkgconfig/gobject-introspection-no-export-1.0.pc
+-rw-r--r-- root root 222 ./usr/lib/pkgconfig/gthread-2.0.pc
+-rw-r--r-- root root 206 ./usr/lib/pkgconfig/ice.pc
+-rw-r--r-- root root 150 ./usr/lib/pkgconfig/inputproto.pc
+-rw-r--r-- root root 144 ./usr/lib/pkgconfig/kbproto.pc
+-rw-r--r-- root root 204 ./usr/lib/pkgconfig/libacl.pc
+-rw-r--r-- root root 217 ./usr/lib/pkgconfig/libattr.pc
+-rw-r--r-- root root 208 ./usr/lib/pkgconfig/libcap-ng.pc
+-rw-r--r-- root root 209 ./usr/lib/pkgconfig/libcap.pc
+-rw-r--r-- root root 275 ./usr/lib/pkgconfig/libcrypto.pc
+lrwxrwxrwx root root 12 ./usr/lib/pkgconfig/libcrypt.pc -> libxcrypt.pc
+-rw-r--r-- root root 269 ./usr/lib/pkgconfig/libdrm_amdgpu.pc
+-rw-r--r-- root root 266 ./usr/lib/pkgconfig/libdrm_etnaviv.pc
+-rw-r--r-- root root 300 ./usr/lib/pkgconfig/libdrm_freedreno.pc
+-rw-r--r-- root root 254 ./usr/lib/pkgconfig/libdrm_intel.pc
+-rw-r--r-- root root 299 ./usr/lib/pkgconfig/libdrm_nouveau.pc
+-rw-r--r-- root root 276 ./usr/lib/pkgconfig/libdrm_omap.pc
+-rw-r--r-- root root 219 ./usr/lib/pkgconfig/libdrm.pc
+-rw-r--r-- root root 269 ./usr/lib/pkgconfig/libdrm_radeon.pc
+-rw-r--r-- root root 205 ./usr/lib/pkgconfig/libdrm_vc4.pc
+-rw-r--r-- root root 633 ./usr/lib/pkgconfig/libdw.pc
+-rw-r--r-- root root 262 ./usr/lib/pkgconfig/libelf.pc
+-rw-r--r-- root root 237 ./usr/lib/pkgconfig/libffi.pc
+-rw-r--r-- root root 213 ./usr/lib/pkgconfig/libip4tc.pc
+-rw-r--r-- root root 213 ./usr/lib/pkgconfig/libip6tc.pc
+-rw-r--r-- root root 190 ./usr/lib/pkgconfig/libiptc.pc
+-rw-r--r-- root root 213 ./usr/lib/pkgconfig/libkmod.pc
+-rw-r--r-- root root 258 ./usr/lib/pkgconfig/libkms.pc
+-rw-r--r-- root root 390 ./usr/lib/pkgconfig/liblzma.pc
+-rw-r--r-- root root 292 ./usr/lib/pkgconfig/libmnl.pc
+-rw-r--r-- root root 247 ./usr/lib/pkgconfig/libnsl.pc
+-rw-r--r-- root root 243 ./usr/lib/pkgconfig/libpcrecpp.pc
+-rw-r--r-- root root 305 ./usr/lib/pkgconfig/libpcre.pc
+-rw-r--r-- root root 285 ./usr/lib/pkgconfig/libpcreposix.pc
+-rw-r--r-- root root 239 ./usr/lib/pkgconfig/libpng16.pc
+lrwxrwxrwx root root 11 ./usr/lib/pkgconfig/libpng.pc -> libpng16.pc
+-rw-r--r-- root root 223 ./usr/lib/pkgconfig/libprocps.pc
+-rw-r--r-- root root 254 ./usr/lib/pkgconfig/libpsx.pc
+-rw-r--r-- root root 254 ./usr/lib/pkgconfig/libssl.pc
+-rw-r--r-- root root 235 ./usr/lib/pkgconfig/libtirpc.pc
+-rw-r--r-- root root 493 ./usr/lib/pkgconfig/libudev.pc
+-rw-r--r-- root root 367 ./usr/lib/pkgconfig/libxcrypt.pc
+-rw-r--r-- root root 243 ./usr/lib/pkgconfig/libxml-2.0.pc
+-rw-r--r-- root root 500 ./usr/lib/pkgconfig/lzo2.pc
+-rw-r--r-- root root 469 ./usr/lib/pkgconfig/menu.pc
+-rw-r--r-- root root 454 ./usr/lib/pkgconfig/menuw.pc
+-rw-r--r-- root root 627 ./usr/lib/pkgconfig/mount.pc
+-rw-r--r-- root root 469 ./usr/lib/pkgconfig/ncurses.pc
+-rw-r--r-- root root 498 ./usr/lib/pkgconfig/ncurses++.pc
+-rw-r--r-- root root 486 ./usr/lib/pkgconfig/ncurses++w.pc
+-rw-r--r-- root root 453 ./usr/lib/pkgconfig/ncursesw.pc
+-rw-r--r-- root root 208 ./usr/lib/pkgconfig/openssl.pc
+-rw-r--r-- root root 471 ./usr/lib/pkgconfig/panel.pc
+-rw-r--r-- root root 456 ./usr/lib/pkgconfig/panelw.pc
+-rw-r--r-- root root 228 ./usr/lib/pkgconfig/pciaccess.pc
+-rw-r--r-- root root 224 ./usr/lib/pkgconfig/pixman-1.pc
+-rw-r--r-- root root 152 ./usr/lib/pkgconfig/presentproto.pc
+-rw-r--r-- root root 224 ./usr/lib/pkgconfig/pthread-stubs.pc
+-rw-r--r-- root root 182 ./usr/lib/pkgconfig/py3cairo.pc
+-rw-r--r-- root root 706 ./usr/lib/pkgconfig/pygobject-3.0.pc
+-rw-r--r-- root root 297 ./usr/lib/pkgconfig/python-3.8-embed.pc
+-rw-r--r-- root root 271 ./usr/lib/pkgconfig/python-3.8.pc
+lrwxrwxrwx root root 19 ./usr/lib/pkgconfig/python3-embed.pc -> python-3.8-embed.pc
+lrwxrwxrwx root root 13 ./usr/lib/pkgconfig/python3.pc -> python-3.8.pc
+-rw-r--r-- root root 150 ./usr/lib/pkgconfig/randrproto.pc
+-rw-r--r-- root root 302 ./usr/lib/pkgconfig/readline.pc
+-rw-r--r-- root root 153 ./usr/lib/pkgconfig/recordproto.pc
+-rw-r--r-- root root 153 ./usr/lib/pkgconfig/renderproto.pc
+-rw-r--r-- root root 156 ./usr/lib/pkgconfig/resourceproto.pc
+-rw-r--r-- root root 158 ./usr/lib/pkgconfig/scrnsaverproto.pc
+-rw-r--r-- root root 204 ./usr/lib/pkgconfig/smartcols.pc
+-rw-r--r-- root root 222 ./usr/lib/pkgconfig/sm.pc
+-rw-r--r-- root root 256 ./usr/lib/pkgconfig/sqlite3.pc
+-rw-r--r-- root root 249 ./usr/lib/pkgconfig/ss.pc
+-rw-r--r-- root root 467 ./usr/lib/pkgconfig/tic.pc
+-rw-r--r-- root root 452 ./usr/lib/pkgconfig/ticw.pc
+-rw-r--r-- root root 458 ./usr/lib/pkgconfig/tinfo.pc
+-rw-r--r-- root root 204 ./usr/lib/pkgconfig/uuid.pc
+-rw-r--r-- root root 150 ./usr/lib/pkgconfig/videoproto.pc
+-rw-r--r-- root root 314 ./usr/lib/pkgconfig/wayland-client.pc
+-rw-r--r-- root root 234 ./usr/lib/pkgconfig/wayland-cursor.pc
+-rw-r--r-- root root 166 ./usr/lib/pkgconfig/wayland-egl-backend.pc
+-rw-r--r-- root root 219 ./usr/lib/pkgconfig/wayland-egl.pc
+-rw-r--r-- root root 269 ./usr/lib/pkgconfig/wayland-scanner.pc
+-rw-r--r-- root root 337 ./usr/lib/pkgconfig/wayland-server.pc
+-rw-r--r-- root root 270 ./usr/lib/pkgconfig/x11.pc
+-rw-r--r-- root root 206 ./usr/lib/pkgconfig/x11-xcb.pc
+-rw-r--r-- root root 212 ./usr/lib/pkgconfig/xau.pc
+-rw-r--r-- root root 232 ./usr/lib/pkgconfig/xcb-composite.pc
+-rw-r--r-- root root 223 ./usr/lib/pkgconfig/xcb-damage.pc
+-rw-r--r-- root root 206 ./usr/lib/pkgconfig/xcb-dpms.pc
+-rw-r--r-- root root 206 ./usr/lib/pkgconfig/xcb-dri2.pc
+-rw-r--r-- root root 206 ./usr/lib/pkgconfig/xcb-dri3.pc
+-rw-r--r-- root root 203 ./usr/lib/pkgconfig/xcb-glx.pc
+-rw-r--r-- root root 251 ./usr/lib/pkgconfig/xcb.pc
+-rw-r--r-- root root 245 ./usr/lib/pkgconfig/xcb-present.pc
+-rw-r--r-- root root 273 ./usr/lib/pkgconfig/xcb-proto.pc
+-rw-r--r-- root root 220 ./usr/lib/pkgconfig/xcb-randr.pc
+-rw-r--r-- root root 212 ./usr/lib/pkgconfig/xcb-record.pc
+-rw-r--r-- root root 212 ./usr/lib/pkgconfig/xcb-render.pc
+-rw-r--r-- root root 210 ./usr/lib/pkgconfig/xcb-res.pc
+-rw-r--r-- root root 227 ./usr/lib/pkgconfig/xcb-screensaver.pc
+-rw-r--r-- root root 209 ./usr/lib/pkgconfig/xcb-shape.pc
+-rw-r--r-- root root 203 ./usr/lib/pkgconfig/xcb-shm.pc
+-rw-r--r-- root root 206 ./usr/lib/pkgconfig/xcb-sync.pc
+-rw-r--r-- root root 223 ./usr/lib/pkgconfig/xcb-xf86dri.pc
+-rw-r--r-- root root 233 ./usr/lib/pkgconfig/xcb-xfixes.pc
+-rw-r--r-- root root 218 ./usr/lib/pkgconfig/xcb-xinerama.pc
+-rw-r--r-- root root 238 ./usr/lib/pkgconfig/xcb-xinput.pc
+-rw-r--r-- root root 223 ./usr/lib/pkgconfig/xcb-xkb.pc
+-rw-r--r-- root root 209 ./usr/lib/pkgconfig/xcb-xtest.pc
+-rw-r--r-- root root 213 ./usr/lib/pkgconfig/xcb-xvmc.pc
+-rw-r--r-- root root 208 ./usr/lib/pkgconfig/xcb-xv.pc
+-rw-r--r-- root root 152 ./usr/lib/pkgconfig/xcmiscproto.pc
+-rw-r--r-- root root 254 ./usr/lib/pkgconfig/xdamage.pc
+-rw-r--r-- root root 220 ./usr/lib/pkgconfig/xdmcp.pc
+-rw-r--r-- root root 225 ./usr/lib/pkgconfig/xext.pc
+-rw-r--r-- root root 148 ./usr/lib/pkgconfig/xextproto.pc
+-rw-r--r-- root root 162 ./usr/lib/pkgconfig/xf86bigfontproto.pc
+-rw-r--r-- root root 152 ./usr/lib/pkgconfig/xf86dgaproto.pc
+-rw-r--r-- root root 162 ./usr/lib/pkgconfig/xf86driproto.pc
+-rw-r--r-- root root 162 ./usr/lib/pkgconfig/xf86vidmodeproto.pc
+-rw-r--r-- root root 236 ./usr/lib/pkgconfig/xfixes.pc
+-rw-r--r-- root root 156 ./usr/lib/pkgconfig/xineramaproto.pc
+-rw-r--r-- root root 143 ./usr/lib/pkgconfig/xproto.pc
+-rw-r--r-- root root 248 ./usr/lib/pkgconfig/xrandr.pc
+-rw-r--r-- root root 244 ./usr/lib/pkgconfig/xrender.pc
+-rw-r--r-- root root 216 ./usr/lib/pkgconfig/xshmfence.pc
+-rw-r--r-- root root 261 ./usr/lib/pkgconfig/xtables.pc
+-rw-r--r-- root root 255 ./usr/lib/pkgconfig/xxf86vm.pc
+-rw-r--r-- root root 233 ./usr/lib/pkgconfig/zlib.pc
+drwxr-xr-x root root 4096 ./usr/lib/python3.8
+-rw-r--r-- root root 4489 ./usr/lib/python3.8/abc.py
+-rw-r--r-- root root 96015 ./usr/lib/python3.8/argparse.py
+-rw-r--r-- root root 18608 ./usr/lib/python3.8/ast.py
+-rwxr-xr-x root root 20382 ./usr/lib/python3.8/base64.py
+-rw-r--r-- root root 2214 ./usr/lib/python3.8/bisect.py
+-rw-r--r-- root root 1801 ./usr/lib/python3.8/_bootlocale.py
+-rw-r--r-- root root 12558 ./usr/lib/python3.8/bz2.py
+-rw-r--r-- root root 24832 ./usr/lib/python3.8/calendar.py
+-rw-r--r-- root root 14860 ./usr/lib/python3.8/cmd.py
+-rw-r--r-- root root 36667 ./usr/lib/python3.8/codecs.py
+-rw-r--r-- root root 6059 ./usr/lib/python3.8/codeop.py
+-rw-r--r-- root root 10622 ./usr/lib/python3.8/code.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/collections
+-rw-r--r-- root root 26100 ./usr/lib/python3.8/_collections_abc.py
+-rw-r--r-- root root 68 ./usr/lib/python3.8/collections/abc.py
+-rw-r--r-- root root 47938 ./usr/lib/python3.8/collections/__init__.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/collections/__pycache__
+-rw-r--r-- root root 191 ./usr/lib/python3.8/collections/__pycache__/abc.cpython-38.opt-1.pyc
+-rw-r--r-- root root 191 ./usr/lib/python3.8/collections/__pycache__/abc.cpython-38.opt-2.pyc
+-rw-r--r-- root root 191 ./usr/lib/python3.8/collections/__pycache__/abc.cpython-38.pyc
+-rw-r--r-- root root 46435 ./usr/lib/python3.8/collections/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 35846 ./usr/lib/python3.8/collections/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 46435 ./usr/lib/python3.8/collections/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 8749 ./usr/lib/python3.8/_compat_pickle.py
+-rw-r--r-- root root 5340 ./usr/lib/python3.8/_compression.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu
+-rw-r--r-- root root 3303 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu/config.c
+-rw-r--r-- root root 1623 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu/config.c.in
+-rwxr-xr-x root root 15368 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu/install-sh
+-rw-r--r-- root root 78513 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu/Makefile
+-rwxr-xr-x root root 7848 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu/makesetup
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu/__pycache__
+-rw-r--r-- root root 1959 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu/__pycache__/python-config.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1959 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu/__pycache__/python-config.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1959 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu/__pycache__/python-config.cpython-38.pyc
+-rwxr-xr-x root root 2114 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu/python-config.py
+-rw-r--r-- root root 4488 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu/python.o
+-rw-r--r-- root root 14786 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu/Setup
+-rw-r--r-- root root 13 ./usr/lib/python3.8/config-3.8-x86_64-linux-gnu/Setup.local
+-rw-r--r-- root root 54374 ./usr/lib/python3.8/configparser.py
+-rw-r--r-- root root 24995 ./usr/lib/python3.8/contextlib.py
+-rw-r--r-- root root 8661 ./usr/lib/python3.8/copy.py
+-rw-r--r-- root root 7135 ./usr/lib/python3.8/copyreg.py
+-rw-r--r-- root root 3610 ./usr/lib/python3.8/crypt.py
+-rw-r--r-- root root 16144 ./usr/lib/python3.8/csv.py
+-rw-r--r-- root root 88074 ./usr/lib/python3.8/datetime.py
+-rw-r--r-- root root 20566 ./usr/lib/python3.8/dis.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/distutils
+-rw-r--r-- root root 8572 ./usr/lib/python3.8/distutils/archive_util.py
+-rw-r--r-- root root 14935 ./usr/lib/python3.8/distutils/bcppcompiler.py
+-rw-r--r-- root root 47433 ./usr/lib/python3.8/distutils/ccompiler.py
+-rw-r--r-- root root 18079 ./usr/lib/python3.8/distutils/cmd.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/distutils/command
+-rw-r--r-- root root 4913 ./usr/lib/python3.8/distutils/command/bdist_dumb.py
+-rw-r--r-- root root 35295 ./usr/lib/python3.8/distutils/command/bdist_msi.py
+-rw-r--r-- root root 5562 ./usr/lib/python3.8/distutils/command/bdist.py
+-rw-r--r-- root root 21577 ./usr/lib/python3.8/distutils/command/bdist_rpm.py
+-rw-r--r-- root root 16043 ./usr/lib/python3.8/distutils/command/bdist_wininst.py
+-rw-r--r-- root root 8022 ./usr/lib/python3.8/distutils/command/build_clib.py
+-rw-r--r-- root root 31568 ./usr/lib/python3.8/distutils/command/build_ext.py
+-rw-r--r-- root root 5767 ./usr/lib/python3.8/distutils/command/build.py
+-rw-r--r-- root root 17164 ./usr/lib/python3.8/distutils/command/build_py.py
+-rw-r--r-- root root 6232 ./usr/lib/python3.8/distutils/command/build_scripts.py
+-rw-r--r-- root root 5599 ./usr/lib/python3.8/distutils/command/check.py
+-rw-r--r-- root root 2776 ./usr/lib/python3.8/distutils/command/clean.py
+-rw-r--r-- root root 633 ./usr/lib/python3.8/distutils/command/command_template
+-rw-r--r-- root root 13117 ./usr/lib/python3.8/distutils/command/config.py
+-rw-r--r-- root root 799 ./usr/lib/python3.8/distutils/command/__init__.py
+-rw-r--r-- root root 2822 ./usr/lib/python3.8/distutils/command/install_data.py
+-rw-r--r-- root root 2603 ./usr/lib/python3.8/distutils/command/install_egg_info.py
+-rw-r--r-- root root 1298 ./usr/lib/python3.8/distutils/command/install_headers.py
+-rw-r--r-- root root 8397 ./usr/lib/python3.8/distutils/command/install_lib.py
+-rw-r--r-- root root 26774 ./usr/lib/python3.8/distutils/command/install.py
+-rw-r--r-- root root 2017 ./usr/lib/python3.8/distutils/command/install_scripts.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/distutils/command/__pycache__
+-rw-r--r-- root root 3666 ./usr/lib/python3.8/distutils/command/__pycache__/bdist.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3472 ./usr/lib/python3.8/distutils/command/__pycache__/bdist.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3666 ./usr/lib/python3.8/distutils/command/__pycache__/bdist.cpython-38.pyc
+-rw-r--r-- root root 3592 ./usr/lib/python3.8/distutils/command/__pycache__/bdist_dumb.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3392 ./usr/lib/python3.8/distutils/command/__pycache__/bdist_dumb.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3592 ./usr/lib/python3.8/distutils/command/__pycache__/bdist_dumb.cpython-38.pyc
+-rw-r--r-- root root 19535 ./usr/lib/python3.8/distutils/command/__pycache__/bdist_msi.cpython-38.opt-1.pyc
+-rw-r--r-- root root 17994 ./usr/lib/python3.8/distutils/command/__pycache__/bdist_msi.cpython-38.opt-2.pyc
+-rw-r--r-- root root 19623 ./usr/lib/python3.8/distutils/command/__pycache__/bdist_msi.cpython-38.pyc
+-rw-r--r-- root root 12362 ./usr/lib/python3.8/distutils/command/__pycache__/bdist_rpm.cpython-38.opt-1.pyc
+-rw-r--r-- root root 12043 ./usr/lib/python3.8/distutils/command/__pycache__/bdist_rpm.cpython-38.opt-2.pyc
+-rw-r--r-- root root 12428 ./usr/lib/python3.8/distutils/command/__pycache__/bdist_rpm.cpython-38.pyc
+-rw-r--r-- root root 8423 ./usr/lib/python3.8/distutils/command/__pycache__/bdist_wininst.cpython-38.opt-1.pyc
+-rw-r--r-- root root 8284 ./usr/lib/python3.8/distutils/command/__pycache__/bdist_wininst.cpython-38.opt-2.pyc
+-rw-r--r-- root root 8489 ./usr/lib/python3.8/distutils/command/__pycache__/bdist_wininst.cpython-38.pyc
+-rw-r--r-- root root 4814 ./usr/lib/python3.8/distutils/command/__pycache__/build_clib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4260 ./usr/lib/python3.8/distutils/command/__pycache__/build_clib.cpython-38.opt-2.pyc
+-rw-r--r-- root root 4814 ./usr/lib/python3.8/distutils/command/__pycache__/build_clib.cpython-38.pyc
+-rw-r--r-- root root 3881 ./usr/lib/python3.8/distutils/command/__pycache__/build.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3798 ./usr/lib/python3.8/distutils/command/__pycache__/build.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3881 ./usr/lib/python3.8/distutils/command/__pycache__/build.cpython-38.pyc
+-rw-r--r-- root root 16137 ./usr/lib/python3.8/distutils/command/__pycache__/build_ext.cpython-38.opt-1.pyc
+-rw-r--r-- root root 14180 ./usr/lib/python3.8/distutils/command/__pycache__/build_ext.cpython-38.opt-2.pyc
+-rw-r--r-- root root 16137 ./usr/lib/python3.8/distutils/command/__pycache__/build_ext.cpython-38.pyc
+-rw-r--r-- root root 10405 ./usr/lib/python3.8/distutils/command/__pycache__/build_py.cpython-38.opt-1.pyc
+-rw-r--r-- root root 9198 ./usr/lib/python3.8/distutils/command/__pycache__/build_py.cpython-38.opt-2.pyc
+-rw-r--r-- root root 10462 ./usr/lib/python3.8/distutils/command/__pycache__/build_py.cpython-38.pyc
+-rw-r--r-- root root 4324 ./usr/lib/python3.8/distutils/command/__pycache__/build_scripts.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3930 ./usr/lib/python3.8/distutils/command/__pycache__/build_scripts.cpython-38.opt-2.pyc
+-rw-r--r-- root root 4324 ./usr/lib/python3.8/distutils/command/__pycache__/build_scripts.cpython-38.pyc
+-rw-r--r-- root root 4885 ./usr/lib/python3.8/distutils/command/__pycache__/check.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4317 ./usr/lib/python3.8/distutils/command/__pycache__/check.cpython-38.opt-2.pyc
+-rw-r--r-- root root 4885 ./usr/lib/python3.8/distutils/command/__pycache__/check.cpython-38.pyc
+-rw-r--r-- root root 2100 ./usr/lib/python3.8/distutils/command/__pycache__/clean.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2017 ./usr/lib/python3.8/distutils/command/__pycache__/clean.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2100 ./usr/lib/python3.8/distutils/command/__pycache__/clean.cpython-38.pyc
+-rw-r--r-- root root 10227 ./usr/lib/python3.8/distutils/command/__pycache__/config.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6891 ./usr/lib/python3.8/distutils/command/__pycache__/config.cpython-38.opt-2.pyc
+-rw-r--r-- root root 10227 ./usr/lib/python3.8/distutils/command/__pycache__/config.cpython-38.pyc
+-rw-r--r-- root root 543 ./usr/lib/python3.8/distutils/command/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 434 ./usr/lib/python3.8/distutils/command/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 543 ./usr/lib/python3.8/distutils/command/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 13568 ./usr/lib/python3.8/distutils/command/__pycache__/install.cpython-38.opt-1.pyc
+-rw-r--r-- root root 12513 ./usr/lib/python3.8/distutils/command/__pycache__/install.cpython-38.opt-2.pyc
+-rw-r--r-- root root 13568 ./usr/lib/python3.8/distutils/command/__pycache__/install.cpython-38.pyc
+-rw-r--r-- root root 2289 ./usr/lib/python3.8/distutils/command/__pycache__/install_data.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2144 ./usr/lib/python3.8/distutils/command/__pycache__/install_data.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2289 ./usr/lib/python3.8/distutils/command/__pycache__/install_data.cpython-38.pyc
+-rw-r--r-- root root 2996 ./usr/lib/python3.8/distutils/command/__pycache__/install_egg_info.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2317 ./usr/lib/python3.8/distutils/command/__pycache__/install_egg_info.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2996 ./usr/lib/python3.8/distutils/command/__pycache__/install_egg_info.cpython-38.pyc
+-rw-r--r-- root root 1708 ./usr/lib/python3.8/distutils/command/__pycache__/install_headers.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1542 ./usr/lib/python3.8/distutils/command/__pycache__/install_headers.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1708 ./usr/lib/python3.8/distutils/command/__pycache__/install_headers.cpython-38.pyc
+-rw-r--r-- root root 5113 ./usr/lib/python3.8/distutils/command/__pycache__/install_lib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4532 ./usr/lib/python3.8/distutils/command/__pycache__/install_lib.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5113 ./usr/lib/python3.8/distutils/command/__pycache__/install_lib.cpython-38.pyc
+-rw-r--r-- root root 2141 ./usr/lib/python3.8/distutils/command/__pycache__/install_scripts.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2007 ./usr/lib/python3.8/distutils/command/__pycache__/install_scripts.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2141 ./usr/lib/python3.8/distutils/command/__pycache__/install_scripts.cpython-38.pyc
+-rw-r--r-- root root 8455 ./usr/lib/python3.8/distutils/command/__pycache__/register.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7190 ./usr/lib/python3.8/distutils/command/__pycache__/register.cpython-38.opt-2.pyc
+-rw-r--r-- root root 8455 ./usr/lib/python3.8/distutils/command/__pycache__/register.cpython-38.pyc
+-rw-r--r-- root root 14516 ./usr/lib/python3.8/distutils/command/__pycache__/sdist.cpython-38.opt-1.pyc
+-rw-r--r-- root root 11157 ./usr/lib/python3.8/distutils/command/__pycache__/sdist.cpython-38.opt-2.pyc
+-rw-r--r-- root root 14516 ./usr/lib/python3.8/distutils/command/__pycache__/sdist.cpython-38.pyc
+-rw-r--r-- root root 4939 ./usr/lib/python3.8/distutils/command/__pycache__/upload.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4813 ./usr/lib/python3.8/distutils/command/__pycache__/upload.cpython-38.opt-2.pyc
+-rw-r--r-- root root 4939 ./usr/lib/python3.8/distutils/command/__pycache__/upload.cpython-38.pyc
+-rw-r--r-- root root 11712 ./usr/lib/python3.8/distutils/command/register.py
+-rw-r--r-- root root 19005 ./usr/lib/python3.8/distutils/command/sdist.py
+-rw-r--r-- root root 7001 ./usr/lib/python3.8/distutils/command/upload.py
+-rw-r--r-- root root 222208 ./usr/lib/python3.8/distutils/command/wininst-10.0-amd64.exe
+-rw-r--r-- root root 190976 ./usr/lib/python3.8/distutils/command/wininst-10.0.exe
+-rw-r--r-- root root 587776 ./usr/lib/python3.8/distutils/command/wininst-14.0-amd64.exe
+-rw-r--r-- root root 458240 ./usr/lib/python3.8/distutils/command/wininst-14.0.exe
+-rw-r--r-- root root 61440 ./usr/lib/python3.8/distutils/command/wininst-6.0.exe
+-rw-r--r-- root root 65536 ./usr/lib/python3.8/distutils/command/wininst-7.1.exe
+-rw-r--r-- root root 61440 ./usr/lib/python3.8/distutils/command/wininst-8.0.exe
+-rw-r--r-- root root 224256 ./usr/lib/python3.8/distutils/command/wininst-9.0-amd64.exe
+-rw-r--r-- root root 196096 ./usr/lib/python3.8/distutils/command/wininst-9.0.exe
+-rw-r--r-- root root 4827 ./usr/lib/python3.8/distutils/config.py
+-rw-r--r-- root root 8876 ./usr/lib/python3.8/distutils/core.py
+-rw-r--r-- root root 16478 ./usr/lib/python3.8/distutils/cygwinccompiler.py
+-rw-r--r-- root root 139 ./usr/lib/python3.8/distutils/debug.py
+-rw-r--r-- root root 3491 ./usr/lib/python3.8/distutils/dep_util.py
+-rw-r--r-- root root 7778 ./usr/lib/python3.8/distutils/dir_util.py
+-rw-r--r-- root root 50385 ./usr/lib/python3.8/distutils/dist.py
+-rw-r--r-- root root 3577 ./usr/lib/python3.8/distutils/errors.py
+-rw-r--r-- root root 10515 ./usr/lib/python3.8/distutils/extension.py
+-rw-r--r-- root root 17784 ./usr/lib/python3.8/distutils/fancy_getopt.py
+-rw-r--r-- root root 12832 ./usr/lib/python3.8/distutils/filelist.py
+-rw-r--r-- root root 8148 ./usr/lib/python3.8/distutils/file_util.py
+-rw-r--r-- root root 236 ./usr/lib/python3.8/distutils/__init__.py
+-rw-r--r-- root root 1969 ./usr/lib/python3.8/distutils/log.py
+-rw-r--r-- root root 30511 ./usr/lib/python3.8/distutils/msvc9compiler.py
+-rw-r--r-- root root 20050 ./usr/lib/python3.8/distutils/_msvccompiler.py
+-rw-r--r-- root root 23564 ./usr/lib/python3.8/distutils/msvccompiler.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/distutils/__pycache__
+-rw-r--r-- root root 6539 ./usr/lib/python3.8/distutils/__pycache__/archive_util.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4497 ./usr/lib/python3.8/distutils/__pycache__/archive_util.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6539 ./usr/lib/python3.8/distutils/__pycache__/archive_util.cpython-38.pyc
+-rw-r--r-- root root 6523 ./usr/lib/python3.8/distutils/__pycache__/bcppcompiler.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6235 ./usr/lib/python3.8/distutils/__pycache__/bcppcompiler.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6523 ./usr/lib/python3.8/distutils/__pycache__/bcppcompiler.cpython-38.pyc
+-rw-r--r-- root root 33170 ./usr/lib/python3.8/distutils/__pycache__/ccompiler.cpython-38.opt-1.pyc
+-rw-r--r-- root root 16864 ./usr/lib/python3.8/distutils/__pycache__/ccompiler.cpython-38.opt-2.pyc
+-rw-r--r-- root root 33297 ./usr/lib/python3.8/distutils/__pycache__/ccompiler.cpython-38.pyc
+-rw-r--r-- root root 13948 ./usr/lib/python3.8/distutils/__pycache__/cmd.cpython-38.opt-1.pyc
+-rw-r--r-- root root 8082 ./usr/lib/python3.8/distutils/__pycache__/cmd.cpython-38.opt-2.pyc
+-rw-r--r-- root root 13948 ./usr/lib/python3.8/distutils/__pycache__/cmd.cpython-38.pyc
+-rw-r--r-- root root 3509 ./usr/lib/python3.8/distutils/__pycache__/config.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3118 ./usr/lib/python3.8/distutils/__pycache__/config.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3509 ./usr/lib/python3.8/distutils/__pycache__/config.cpython-38.pyc
+-rw-r--r-- root root 6614 ./usr/lib/python3.8/distutils/__pycache__/core.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3227 ./usr/lib/python3.8/distutils/__pycache__/core.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6614 ./usr/lib/python3.8/distutils/__pycache__/core.cpython-38.pyc
+-rw-r--r-- root root 8612 ./usr/lib/python3.8/distutils/__pycache__/cygwinccompiler.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6982 ./usr/lib/python3.8/distutils/__pycache__/cygwinccompiler.cpython-38.opt-2.pyc
+-rw-r--r-- root root 8612 ./usr/lib/python3.8/distutils/__pycache__/cygwinccompiler.cpython-38.pyc
+-rw-r--r-- root root 194 ./usr/lib/python3.8/distutils/__pycache__/debug.cpython-38.opt-1.pyc
+-rw-r--r-- root root 194 ./usr/lib/python3.8/distutils/__pycache__/debug.cpython-38.opt-2.pyc
+-rw-r--r-- root root 194 ./usr/lib/python3.8/distutils/__pycache__/debug.cpython-38.pyc
+-rw-r--r-- root root 2714 ./usr/lib/python3.8/distutils/__pycache__/dep_util.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1270 ./usr/lib/python3.8/distutils/__pycache__/dep_util.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2714 ./usr/lib/python3.8/distutils/__pycache__/dep_util.cpython-38.pyc
+-rw-r--r-- root root 5823 ./usr/lib/python3.8/distutils/__pycache__/dir_util.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3445 ./usr/lib/python3.8/distutils/__pycache__/dir_util.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5823 ./usr/lib/python3.8/distutils/__pycache__/dir_util.cpython-38.pyc
+-rw-r--r-- root root 34492 ./usr/lib/python3.8/distutils/__pycache__/dist.cpython-38.opt-1.pyc
+-rw-r--r-- root root 25201 ./usr/lib/python3.8/distutils/__pycache__/dist.cpython-38.opt-2.pyc
+-rw-r--r-- root root 34492 ./usr/lib/python3.8/distutils/__pycache__/dist.cpython-38.pyc
+-rw-r--r-- root root 5250 ./usr/lib/python3.8/distutils/__pycache__/errors.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2702 ./usr/lib/python3.8/distutils/__pycache__/errors.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5250 ./usr/lib/python3.8/distutils/__pycache__/errors.cpython-38.pyc
+-rw-r--r-- root root 6923 ./usr/lib/python3.8/distutils/__pycache__/extension.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3433 ./usr/lib/python3.8/distutils/__pycache__/extension.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6923 ./usr/lib/python3.8/distutils/__pycache__/extension.cpython-38.pyc
+-rw-r--r-- root root 10512 ./usr/lib/python3.8/distutils/__pycache__/fancy_getopt.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7709 ./usr/lib/python3.8/distutils/__pycache__/fancy_getopt.cpython-38.opt-2.pyc
+-rw-r--r-- root root 10656 ./usr/lib/python3.8/distutils/__pycache__/fancy_getopt.cpython-38.pyc
+-rw-r--r-- root root 9777 ./usr/lib/python3.8/distutils/__pycache__/filelist.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6906 ./usr/lib/python3.8/distutils/__pycache__/filelist.cpython-38.opt-2.pyc
+-rw-r--r-- root root 9867 ./usr/lib/python3.8/distutils/__pycache__/filelist.cpython-38.pyc
+-rw-r--r-- root root 5933 ./usr/lib/python3.8/distutils/__pycache__/file_util.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3796 ./usr/lib/python3.8/distutils/__pycache__/file_util.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5933 ./usr/lib/python3.8/distutils/__pycache__/file_util.cpython-38.pyc
+-rw-r--r-- root root 384 ./usr/lib/python3.8/distutils/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 202 ./usr/lib/python3.8/distutils/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 384 ./usr/lib/python3.8/distutils/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 2315 ./usr/lib/python3.8/distutils/__pycache__/log.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2254 ./usr/lib/python3.8/distutils/__pycache__/log.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2315 ./usr/lib/python3.8/distutils/__pycache__/log.cpython-38.pyc
+-rw-r--r-- root root 17451 ./usr/lib/python3.8/distutils/__pycache__/msvc9compiler.cpython-38.opt-1.pyc
+-rw-r--r-- root root 15830 ./usr/lib/python3.8/distutils/__pycache__/msvc9compiler.cpython-38.opt-2.pyc
+-rw-r--r-- root root 17510 ./usr/lib/python3.8/distutils/__pycache__/msvc9compiler.cpython-38.pyc
+-rw-r--r-- root root 12907 ./usr/lib/python3.8/distutils/__pycache__/_msvccompiler.cpython-38.opt-1.pyc
+-rw-r--r-- root root 14723 ./usr/lib/python3.8/distutils/__pycache__/msvccompiler.cpython-38.opt-1.pyc
+-rw-r--r-- root root 11757 ./usr/lib/python3.8/distutils/__pycache__/_msvccompiler.cpython-38.opt-2.pyc
+-rw-r--r-- root root 13148 ./usr/lib/python3.8/distutils/__pycache__/msvccompiler.cpython-38.opt-2.pyc
+-rw-r--r-- root root 12966 ./usr/lib/python3.8/distutils/__pycache__/_msvccompiler.cpython-38.pyc
+-rw-r--r-- root root 14723 ./usr/lib/python3.8/distutils/__pycache__/msvccompiler.cpython-38.pyc
+-rw-r--r-- root root 5106 ./usr/lib/python3.8/distutils/__pycache__/spawn.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3802 ./usr/lib/python3.8/distutils/__pycache__/spawn.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5106 ./usr/lib/python3.8/distutils/__pycache__/spawn.cpython-38.pyc
+-rw-r--r-- root root 12101 ./usr/lib/python3.8/distutils/__pycache__/sysconfig.cpython-38.opt-1.pyc
+-rw-r--r-- root root 8616 ./usr/lib/python3.8/distutils/__pycache__/sysconfig.cpython-38.opt-2.pyc
+-rw-r--r-- root root 12101 ./usr/lib/python3.8/distutils/__pycache__/sysconfig.cpython-38.pyc
+-rw-r--r-- root root 8439 ./usr/lib/python3.8/distutils/__pycache__/text_file.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3341 ./usr/lib/python3.8/distutils/__pycache__/text_file.cpython-38.opt-2.pyc
+-rw-r--r-- root root 8439 ./usr/lib/python3.8/distutils/__pycache__/text_file.cpython-38.pyc
+-rw-r--r-- root root 6618 ./usr/lib/python3.8/distutils/__pycache__/unixccompiler.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6029 ./usr/lib/python3.8/distutils/__pycache__/unixccompiler.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6618 ./usr/lib/python3.8/distutils/__pycache__/unixccompiler.cpython-38.pyc
+-rw-r--r-- root root 15546 ./usr/lib/python3.8/distutils/__pycache__/util.cpython-38.opt-1.pyc
+-rw-r--r-- root root 9662 ./usr/lib/python3.8/distutils/__pycache__/util.cpython-38.opt-2.pyc
+-rw-r--r-- root root 15546 ./usr/lib/python3.8/distutils/__pycache__/util.cpython-38.pyc
+-rw-r--r-- root root 7266 ./usr/lib/python3.8/distutils/__pycache__/version.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3981 ./usr/lib/python3.8/distutils/__pycache__/version.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7311 ./usr/lib/python3.8/distutils/__pycache__/version.cpython-38.pyc
+-rw-r--r-- root root 5135 ./usr/lib/python3.8/distutils/__pycache__/versionpredicate.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2655 ./usr/lib/python3.8/distutils/__pycache__/versionpredicate.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5135 ./usr/lib/python3.8/distutils/__pycache__/versionpredicate.cpython-38.pyc
+-rw-r--r-- root root 242 ./usr/lib/python3.8/distutils/README
+-rw-r--r-- root root 7843 ./usr/lib/python3.8/distutils/spawn.py
+-rw-r--r-- root root 20390 ./usr/lib/python3.8/distutils/sysconfig.py
+-rw-r--r-- root root 12483 ./usr/lib/python3.8/distutils/text_file.py
+-rw-r--r-- root root 14696 ./usr/lib/python3.8/distutils/unixccompiler.py
+-rw-r--r-- root root 20892 ./usr/lib/python3.8/distutils/util.py
+-rw-r--r-- root root 5133 ./usr/lib/python3.8/distutils/versionpredicate.py
+-rw-r--r-- root root 12345 ./usr/lib/python3.8/distutils/version.py
+-rw-r--r-- root root 6027 ./usr/lib/python3.8/_dummy_thread.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/email
+-rw-r--r-- root root 9561 ./usr/lib/python3.8/email/architecture.rst
+-rw-r--r-- root root 3558 ./usr/lib/python3.8/email/base64mime.py
+-rw-r--r-- root root 17128 ./usr/lib/python3.8/email/charset.py
+-rw-r--r-- root root 10672 ./usr/lib/python3.8/email/contentmanager.py
+-rw-r--r-- root root 8524 ./usr/lib/python3.8/email/_encoded_words.py
+-rw-r--r-- root root 1786 ./usr/lib/python3.8/email/encoders.py
+-rw-r--r-- root root 3647 ./usr/lib/python3.8/email/errors.py
+-rw-r--r-- root root 22780 ./usr/lib/python3.8/email/feedparser.py
+-rw-r--r-- root root 19975 ./usr/lib/python3.8/email/generator.py
+-rw-r--r-- root root 24102 ./usr/lib/python3.8/email/header.py
+-rw-r--r-- root root 20591 ./usr/lib/python3.8/email/headerregistry.py
+-rw-r--r-- root root 106460 ./usr/lib/python3.8/email/_header_value_parser.py
+-rw-r--r-- root root 1766 ./usr/lib/python3.8/email/__init__.py
+-rw-r--r-- root root 2135 ./usr/lib/python3.8/email/iterators.py
+-rw-r--r-- root root 47072 ./usr/lib/python3.8/email/message.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/email/mime
+-rw-r--r-- root root 1321 ./usr/lib/python3.8/email/mime/application.py
+-rw-r--r-- root root 2739 ./usr/lib/python3.8/email/mime/audio.py
+-rw-r--r-- root root 916 ./usr/lib/python3.8/email/mime/base.py
+-rw-r--r-- root root 1829 ./usr/lib/python3.8/email/mime/image.py
+-rw-r--r-- root root 0 ./usr/lib/python3.8/email/mime/__init__.py
+-rw-r--r-- root root 1317 ./usr/lib/python3.8/email/mime/message.py
+-rw-r--r-- root root 1621 ./usr/lib/python3.8/email/mime/multipart.py
+-rw-r--r-- root root 691 ./usr/lib/python3.8/email/mime/nonmultipart.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/email/mime/__pycache__
+-rw-r--r-- root root 1459 ./usr/lib/python3.8/email/mime/__pycache__/application.cpython-38.opt-1.pyc
+-rw-r--r-- root root 805 ./usr/lib/python3.8/email/mime/__pycache__/application.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1459 ./usr/lib/python3.8/email/mime/__pycache__/application.cpython-38.pyc
+-rw-r--r-- root root 2624 ./usr/lib/python3.8/email/mime/__pycache__/audio.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1184 ./usr/lib/python3.8/email/mime/__pycache__/audio.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2624 ./usr/lib/python3.8/email/mime/__pycache__/audio.cpython-38.pyc
+-rw-r--r-- root root 1041 ./usr/lib/python3.8/email/mime/__pycache__/base.cpython-38.opt-1.pyc
+-rw-r--r-- root root 717 ./usr/lib/python3.8/email/mime/__pycache__/base.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1041 ./usr/lib/python3.8/email/mime/__pycache__/base.cpython-38.pyc
+-rw-r--r-- root root 1904 ./usr/lib/python3.8/email/mime/__pycache__/image.cpython-38.opt-1.pyc
+-rw-r--r-- root root 827 ./usr/lib/python3.8/email/mime/__pycache__/image.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1904 ./usr/lib/python3.8/email/mime/__pycache__/image.cpython-38.pyc
+-rw-r--r-- root root 132 ./usr/lib/python3.8/email/mime/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 132 ./usr/lib/python3.8/email/mime/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 132 ./usr/lib/python3.8/email/mime/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 1282 ./usr/lib/python3.8/email/mime/__pycache__/message.cpython-38.opt-1.pyc
+-rw-r--r-- root root 790 ./usr/lib/python3.8/email/mime/__pycache__/message.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1282 ./usr/lib/python3.8/email/mime/__pycache__/message.cpython-38.pyc
+-rw-r--r-- root root 1502 ./usr/lib/python3.8/email/mime/__pycache__/multipart.cpython-38.opt-1.pyc
+-rw-r--r-- root root 706 ./usr/lib/python3.8/email/mime/__pycache__/multipart.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1502 ./usr/lib/python3.8/email/mime/__pycache__/multipart.cpython-38.pyc
+-rw-r--r-- root root 764 ./usr/lib/python3.8/email/mime/__pycache__/nonmultipart.cpython-38.opt-1.pyc
+-rw-r--r-- root root 629 ./usr/lib/python3.8/email/mime/__pycache__/nonmultipart.cpython-38.opt-2.pyc
+-rw-r--r-- root root 764 ./usr/lib/python3.8/email/mime/__pycache__/nonmultipart.cpython-38.pyc
+-rw-r--r-- root root 1311 ./usr/lib/python3.8/email/mime/__pycache__/text.cpython-38.opt-1.pyc
+-rw-r--r-- root root 800 ./usr/lib/python3.8/email/mime/__pycache__/text.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1311 ./usr/lib/python3.8/email/mime/__pycache__/text.cpython-38.pyc
+-rw-r--r-- root root 1437 ./usr/lib/python3.8/email/mime/text.py
+-rw-r--r-- root root 17604 ./usr/lib/python3.8/email/_parseaddr.py
+-rw-r--r-- root root 5041 ./usr/lib/python3.8/email/parser.py
+-rw-r--r-- root root 15073 ./usr/lib/python3.8/email/_policybase.py
+-rw-r--r-- root root 10383 ./usr/lib/python3.8/email/policy.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/email/__pycache__
+-rw-r--r-- root root 3235 ./usr/lib/python3.8/email/__pycache__/base64mime.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1458 ./usr/lib/python3.8/email/__pycache__/base64mime.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3235 ./usr/lib/python3.8/email/__pycache__/base64mime.cpython-38.pyc
+-rw-r--r-- root root 11422 ./usr/lib/python3.8/email/__pycache__/charset.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5093 ./usr/lib/python3.8/email/__pycache__/charset.cpython-38.opt-2.pyc
+-rw-r--r-- root root 11459 ./usr/lib/python3.8/email/__pycache__/charset.cpython-38.pyc
+-rw-r--r-- root root 7343 ./usr/lib/python3.8/email/__pycache__/contentmanager.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7343 ./usr/lib/python3.8/email/__pycache__/contentmanager.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7343 ./usr/lib/python3.8/email/__pycache__/contentmanager.cpython-38.pyc
+-rw-r--r-- root root 5686 ./usr/lib/python3.8/email/__pycache__/_encoded_words.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3800 ./usr/lib/python3.8/email/__pycache__/_encoded_words.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5686 ./usr/lib/python3.8/email/__pycache__/_encoded_words.cpython-38.pyc
+-rw-r--r-- root root 1612 ./usr/lib/python3.8/email/__pycache__/encoders.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1261 ./usr/lib/python3.8/email/__pycache__/encoders.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1612 ./usr/lib/python3.8/email/__pycache__/encoders.cpython-38.pyc
+-rw-r--r-- root root 5905 ./usr/lib/python3.8/email/__pycache__/errors.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4473 ./usr/lib/python3.8/email/__pycache__/errors.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5905 ./usr/lib/python3.8/email/__pycache__/errors.cpython-38.pyc
+-rw-r--r-- root root 10490 ./usr/lib/python3.8/email/__pycache__/feedparser.cpython-38.opt-1.pyc
+-rw-r--r-- root root 8827 ./usr/lib/python3.8/email/__pycache__/feedparser.cpython-38.opt-2.pyc
+-rw-r--r-- root root 10642 ./usr/lib/python3.8/email/__pycache__/feedparser.cpython-38.pyc
+-rw-r--r-- root root 12482 ./usr/lib/python3.8/email/__pycache__/generator.cpython-38.opt-1.pyc
+-rw-r--r-- root root 8783 ./usr/lib/python3.8/email/__pycache__/generator.cpython-38.opt-2.pyc
+-rw-r--r-- root root 12482 ./usr/lib/python3.8/email/__pycache__/generator.cpython-38.pyc
+-rw-r--r-- root root 16439 ./usr/lib/python3.8/email/__pycache__/header.cpython-38.opt-1.pyc
+-rw-r--r-- root root 10815 ./usr/lib/python3.8/email/__pycache__/header.cpython-38.opt-2.pyc
+-rw-r--r-- root root 16439 ./usr/lib/python3.8/email/__pycache__/header.cpython-38.pyc
+-rw-r--r-- root root 21848 ./usr/lib/python3.8/email/__pycache__/headerregistry.cpython-38.opt-1.pyc
+-rw-r--r-- root root 16085 ./usr/lib/python3.8/email/__pycache__/headerregistry.cpython-38.opt-2.pyc
+-rw-r--r-- root root 21900 ./usr/lib/python3.8/email/__pycache__/headerregistry.cpython-38.pyc
+-rw-r--r-- root root 79739 ./usr/lib/python3.8/email/__pycache__/_header_value_parser.cpython-38.opt-1.pyc
+-rw-r--r-- root root 62867 ./usr/lib/python3.8/email/__pycache__/_header_value_parser.cpython-38.opt-2.pyc
+-rw-r--r-- root root 79787 ./usr/lib/python3.8/email/__pycache__/_header_value_parser.cpython-38.pyc
+-rw-r--r-- root root 1691 ./usr/lib/python3.8/email/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1066 ./usr/lib/python3.8/email/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1691 ./usr/lib/python3.8/email/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 1920 ./usr/lib/python3.8/email/__pycache__/iterators.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1300 ./usr/lib/python3.8/email/__pycache__/iterators.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1920 ./usr/lib/python3.8/email/__pycache__/iterators.cpython-38.pyc
+-rw-r--r-- root root 37878 ./usr/lib/python3.8/email/__pycache__/message.cpython-38.opt-1.pyc
+-rw-r--r-- root root 21316 ./usr/lib/python3.8/email/__pycache__/message.cpython-38.opt-2.pyc
+-rw-r--r-- root root 37878 ./usr/lib/python3.8/email/__pycache__/message.cpython-38.pyc
+-rw-r--r-- root root 12454 ./usr/lib/python3.8/email/__pycache__/_parseaddr.cpython-38.opt-1.pyc
+-rw-r--r-- root root 9494 ./usr/lib/python3.8/email/__pycache__/_parseaddr.cpython-38.opt-2.pyc
+-rw-r--r-- root root 12454 ./usr/lib/python3.8/email/__pycache__/_parseaddr.cpython-38.pyc
+-rw-r--r-- root root 5722 ./usr/lib/python3.8/email/__pycache__/parser.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2704 ./usr/lib/python3.8/email/__pycache__/parser.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5722 ./usr/lib/python3.8/email/__pycache__/parser.cpython-38.pyc
+-rw-r--r-- root root 14810 ./usr/lib/python3.8/email/__pycache__/_policybase.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5982 ./usr/lib/python3.8/email/__pycache__/_policybase.cpython-38.opt-2.pyc
+-rw-r--r-- root root 14810 ./usr/lib/python3.8/email/__pycache__/_policybase.cpython-38.pyc
+-rw-r--r-- root root 9658 ./usr/lib/python3.8/email/__pycache__/policy.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3443 ./usr/lib/python3.8/email/__pycache__/policy.cpython-38.opt-2.pyc
+-rw-r--r-- root root 9658 ./usr/lib/python3.8/email/__pycache__/policy.cpython-38.pyc
+-rw-r--r-- root root 7678 ./usr/lib/python3.8/email/__pycache__/quoprimime.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4205 ./usr/lib/python3.8/email/__pycache__/quoprimime.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7678 ./usr/lib/python3.8/email/__pycache__/quoprimime.cpython-38.pyc
+-rw-r--r-- root root 9547 ./usr/lib/python3.8/email/__pycache__/utils.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6218 ./usr/lib/python3.8/email/__pycache__/utils.cpython-38.opt-2.pyc
+-rw-r--r-- root root 9547 ./usr/lib/python3.8/email/__pycache__/utils.cpython-38.pyc
+-rw-r--r-- root root 9858 ./usr/lib/python3.8/email/quoprimime.py
+-rw-r--r-- root root 13488 ./usr/lib/python3.8/email/utils.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/encodings
+-rw-r--r-- root root 15693 ./usr/lib/python3.8/encodings/aliases.py
+-rw-r--r-- root root 1248 ./usr/lib/python3.8/encodings/ascii.py
+-rw-r--r-- root root 1533 ./usr/lib/python3.8/encodings/base64_codec.py
+-rw-r--r-- root root 1039 ./usr/lib/python3.8/encodings/big5hkscs.py
+-rw-r--r-- root root 1019 ./usr/lib/python3.8/encodings/big5.py
+-rw-r--r-- root root 2249 ./usr/lib/python3.8/encodings/bz2_codec.py
+-rw-r--r-- root root 2084 ./usr/lib/python3.8/encodings/charmap.py
+-rw-r--r-- root root 13121 ./usr/lib/python3.8/encodings/cp037.py
+-rw-r--r-- root root 13568 ./usr/lib/python3.8/encodings/cp1006.py
+-rw-r--r-- root root 13113 ./usr/lib/python3.8/encodings/cp1026.py
+-rw-r--r-- root root 34597 ./usr/lib/python3.8/encodings/cp1125.py
+-rw-r--r-- root root 13105 ./usr/lib/python3.8/encodings/cp1140.py
+-rw-r--r-- root root 13686 ./usr/lib/python3.8/encodings/cp1250.py
+-rw-r--r-- root root 13361 ./usr/lib/python3.8/encodings/cp1251.py
+-rw-r--r-- root root 13511 ./usr/lib/python3.8/encodings/cp1252.py
+-rw-r--r-- root root 13094 ./usr/lib/python3.8/encodings/cp1253.py
+-rw-r--r-- root root 13502 ./usr/lib/python3.8/encodings/cp1254.py
+-rw-r--r-- root root 12466 ./usr/lib/python3.8/encodings/cp1255.py
+-rw-r--r-- root root 12814 ./usr/lib/python3.8/encodings/cp1256.py
+-rw-r--r-- root root 13374 ./usr/lib/python3.8/encodings/cp1257.py
+-rw-r--r-- root root 13364 ./usr/lib/python3.8/encodings/cp1258.py
+-rw-r--r-- root root 14132 ./usr/lib/python3.8/encodings/cp273.py
+-rw-r--r-- root root 12055 ./usr/lib/python3.8/encodings/cp424.py
+-rw-r--r-- root root 34564 ./usr/lib/python3.8/encodings/cp437.py
+-rw-r--r-- root root 13121 ./usr/lib/python3.8/encodings/cp500.py
+-rw-r--r-- root root 13686 ./usr/lib/python3.8/encodings/cp720.py
+-rw-r--r-- root root 34681 ./usr/lib/python3.8/encodings/cp737.py
+-rw-r--r-- root root 34476 ./usr/lib/python3.8/encodings/cp775.py
+-rw-r--r-- root root 34105 ./usr/lib/python3.8/encodings/cp850.py
+-rw-r--r-- root root 35002 ./usr/lib/python3.8/encodings/cp852.py
+-rw-r--r-- root root 33850 ./usr/lib/python3.8/encodings/cp855.py
+-rw-r--r-- root root 12423 ./usr/lib/python3.8/encodings/cp856.py
+-rw-r--r-- root root 33908 ./usr/lib/python3.8/encodings/cp857.py
+-rw-r--r-- root root 34015 ./usr/lib/python3.8/encodings/cp858.py
+-rw-r--r-- root root 34681 ./usr/lib/python3.8/encodings/cp860.py
+-rw-r--r-- root root 34633 ./usr/lib/python3.8/encodings/cp861.py
+-rw-r--r-- root root 33370 ./usr/lib/python3.8/encodings/cp862.py
+-rw-r--r-- root root 34252 ./usr/lib/python3.8/encodings/cp863.py
+-rw-r--r-- root root 33663 ./usr/lib/python3.8/encodings/cp864.py
+-rw-r--r-- root root 34618 ./usr/lib/python3.8/encodings/cp865.py
+-rw-r--r-- root root 34396 ./usr/lib/python3.8/encodings/cp866.py
+-rw-r--r-- root root 32965 ./usr/lib/python3.8/encodings/cp869.py
+-rw-r--r-- root root 12595 ./usr/lib/python3.8/encodings/cp874.py
+-rw-r--r-- root root 12854 ./usr/lib/python3.8/encodings/cp875.py
+-rw-r--r-- root root 1023 ./usr/lib/python3.8/encodings/cp932.py
+-rw-r--r-- root root 1023 ./usr/lib/python3.8/encodings/cp949.py
+-rw-r--r-- root root 1023 ./usr/lib/python3.8/encodings/cp950.py
+-rw-r--r-- root root 1051 ./usr/lib/python3.8/encodings/euc_jis_2004.py
+-rw-r--r-- root root 1051 ./usr/lib/python3.8/encodings/euc_jisx0213.py
+-rw-r--r-- root root 1027 ./usr/lib/python3.8/encodings/euc_jp.py
+-rw-r--r-- root root 1027 ./usr/lib/python3.8/encodings/euc_kr.py
+-rw-r--r-- root root 1031 ./usr/lib/python3.8/encodings/gb18030.py
+-rw-r--r-- root root 1027 ./usr/lib/python3.8/encodings/gb2312.py
+-rw-r--r-- root root 1015 ./usr/lib/python3.8/encodings/gbk.py
+-rw-r--r-- root root 1508 ./usr/lib/python3.8/encodings/hex_codec.py
+-rw-r--r-- root root 13475 ./usr/lib/python3.8/encodings/hp_roman8.py
+-rw-r--r-- root root 1011 ./usr/lib/python3.8/encodings/hz.py
+-rw-r--r-- root root 9170 ./usr/lib/python3.8/encodings/idna.py
+-rw-r--r-- root root 5588 ./usr/lib/python3.8/encodings/__init__.py
+-rw-r--r-- root root 1061 ./usr/lib/python3.8/encodings/iso2022_jp_1.py
+-rw-r--r-- root root 1073 ./usr/lib/python3.8/encodings/iso2022_jp_2004.py
+-rw-r--r-- root root 1061 ./usr/lib/python3.8/encodings/iso2022_jp_2.py
+-rw-r--r-- root root 1061 ./usr/lib/python3.8/encodings/iso2022_jp_3.py
+-rw-r--r-- root root 1069 ./usr/lib/python3.8/encodings/iso2022_jp_ext.py
+-rw-r--r-- root root 1053 ./usr/lib/python3.8/encodings/iso2022_jp.py
+-rw-r--r-- root root 1053 ./usr/lib/python3.8/encodings/iso2022_kr.py
+-rw-r--r-- root root 13589 ./usr/lib/python3.8/encodings/iso8859_10.py
+-rw-r--r-- root root 12335 ./usr/lib/python3.8/encodings/iso8859_11.py
+-rw-r--r-- root root 13271 ./usr/lib/python3.8/encodings/iso8859_13.py
+-rw-r--r-- root root 13652 ./usr/lib/python3.8/encodings/iso8859_14.py
+-rw-r--r-- root root 13212 ./usr/lib/python3.8/encodings/iso8859_15.py
+-rw-r--r-- root root 13557 ./usr/lib/python3.8/encodings/iso8859_16.py
+-rw-r--r-- root root 13176 ./usr/lib/python3.8/encodings/iso8859_1.py
+-rw-r--r-- root root 13404 ./usr/lib/python3.8/encodings/iso8859_2.py
+-rw-r--r-- root root 13089 ./usr/lib/python3.8/encodings/iso8859_3.py
+-rw-r--r-- root root 13376 ./usr/lib/python3.8/encodings/iso8859_4.py
+-rw-r--r-- root root 13015 ./usr/lib/python3.8/encodings/iso8859_5.py
+-rw-r--r-- root root 10833 ./usr/lib/python3.8/encodings/iso8859_6.py
+-rw-r--r-- root root 12844 ./usr/lib/python3.8/encodings/iso8859_7.py
+-rw-r--r-- root root 11036 ./usr/lib/python3.8/encodings/iso8859_8.py
+-rw-r--r-- root root 13156 ./usr/lib/python3.8/encodings/iso8859_9.py
+-rw-r--r-- root root 1023 ./usr/lib/python3.8/encodings/johab.py
+-rw-r--r-- root root 13779 ./usr/lib/python3.8/encodings/koi8_r.py
+-rw-r--r-- root root 13193 ./usr/lib/python3.8/encodings/koi8_t.py
+-rw-r--r-- root root 13762 ./usr/lib/python3.8/encodings/koi8_u.py
+-rw-r--r-- root root 13723 ./usr/lib/python3.8/encodings/kz1048.py
+-rw-r--r-- root root 1264 ./usr/lib/python3.8/encodings/latin_1.py
+-rw-r--r-- root root 36467 ./usr/lib/python3.8/encodings/mac_arabic.py
+-rw-r--r-- root root 14102 ./usr/lib/python3.8/encodings/mac_centeuro.py
+-rw-r--r-- root root 13633 ./usr/lib/python3.8/encodings/mac_croatian.py
+-rw-r--r-- root root 13454 ./usr/lib/python3.8/encodings/mac_cyrillic.py
+-rw-r--r-- root root 15170 ./usr/lib/python3.8/encodings/mac_farsi.py
+-rw-r--r-- root root 13721 ./usr/lib/python3.8/encodings/mac_greek.py
+-rw-r--r-- root root 13498 ./usr/lib/python3.8/encodings/mac_iceland.py
+-rw-r--r-- root root 14118 ./usr/lib/python3.8/encodings/mac_latin2.py
+-rw-r--r-- root root 13661 ./usr/lib/python3.8/encodings/mac_romanian.py
+-rw-r--r-- root root 13480 ./usr/lib/python3.8/encodings/mac_roman.py
+-rw-r--r-- root root 13513 ./usr/lib/python3.8/encodings/mac_turkish.py
+-rw-r--r-- root root 1211 ./usr/lib/python3.8/encodings/mbcs.py
+-rw-r--r-- root root 1019 ./usr/lib/python3.8/encodings/oem.py
+-rw-r--r-- root root 13519 ./usr/lib/python3.8/encodings/palmos.py
+-rw-r--r-- root root 14015 ./usr/lib/python3.8/encodings/ptcp154.py
+-rw-r--r-- root root 6883 ./usr/lib/python3.8/encodings/punycode.py
+drwxr-xr-x root root 20480 ./usr/lib/python3.8/encodings/__pycache__
+-rw-r--r-- root root 6330 ./usr/lib/python3.8/encodings/__pycache__/aliases.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5738 ./usr/lib/python3.8/encodings/__pycache__/aliases.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6330 ./usr/lib/python3.8/encodings/__pycache__/aliases.cpython-38.pyc
+-rw-r--r-- root root 1881 ./usr/lib/python3.8/encodings/__pycache__/ascii.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1735 ./usr/lib/python3.8/encodings/__pycache__/ascii.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1881 ./usr/lib/python3.8/encodings/__pycache__/ascii.cpython-38.pyc
+-rw-r--r-- root root 2295 ./usr/lib/python3.8/encodings/__pycache__/base64_codec.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2120 ./usr/lib/python3.8/encodings/__pycache__/base64_codec.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2399 ./usr/lib/python3.8/encodings/__pycache__/base64_codec.cpython-38.pyc
+-rw-r--r-- root root 1409 ./usr/lib/python3.8/encodings/__pycache__/big5.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1409 ./usr/lib/python3.8/encodings/__pycache__/big5.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1409 ./usr/lib/python3.8/encodings/__pycache__/big5.cpython-38.pyc
+-rw-r--r-- root root 1419 ./usr/lib/python3.8/encodings/__pycache__/big5hkscs.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1419 ./usr/lib/python3.8/encodings/__pycache__/big5hkscs.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1419 ./usr/lib/python3.8/encodings/__pycache__/big5hkscs.cpython-38.pyc
+-rw-r--r-- root root 3200 ./usr/lib/python3.8/encodings/__pycache__/bz2_codec.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2904 ./usr/lib/python3.8/encodings/__pycache__/bz2_codec.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3290 ./usr/lib/python3.8/encodings/__pycache__/bz2_codec.cpython-38.pyc
+-rw-r--r-- root root 2891 ./usr/lib/python3.8/encodings/__pycache__/charmap.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2597 ./usr/lib/python3.8/encodings/__pycache__/charmap.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2891 ./usr/lib/python3.8/encodings/__pycache__/charmap.cpython-38.pyc
+-rw-r--r-- root root 2422 ./usr/lib/python3.8/encodings/__pycache__/cp037.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2290 ./usr/lib/python3.8/encodings/__pycache__/cp037.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2422 ./usr/lib/python3.8/encodings/__pycache__/cp037.cpython-38.pyc
+-rw-r--r-- root root 2498 ./usr/lib/python3.8/encodings/__pycache__/cp1006.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2373 ./usr/lib/python3.8/encodings/__pycache__/cp1006.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2498 ./usr/lib/python3.8/encodings/__pycache__/cp1006.cpython-38.pyc
+-rw-r--r-- root root 2426 ./usr/lib/python3.8/encodings/__pycache__/cp1026.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2292 ./usr/lib/python3.8/encodings/__pycache__/cp1026.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2426 ./usr/lib/python3.8/encodings/__pycache__/cp1026.cpython-38.pyc
+-rw-r--r-- root root 8129 ./usr/lib/python3.8/encodings/__pycache__/cp1125.cpython-38.opt-1.pyc
+-rw-r--r-- root root 8066 ./usr/lib/python3.8/encodings/__pycache__/cp1125.cpython-38.opt-2.pyc
+-rw-r--r-- root root 8129 ./usr/lib/python3.8/encodings/__pycache__/cp1125.cpython-38.pyc
+-rw-r--r-- root root 2412 ./usr/lib/python3.8/encodings/__pycache__/cp1140.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2293 ./usr/lib/python3.8/encodings/__pycache__/cp1140.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2412 ./usr/lib/python3.8/encodings/__pycache__/cp1140.cpython-38.pyc
+-rw-r--r-- root root 2449 ./usr/lib/python3.8/encodings/__pycache__/cp1250.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2314 ./usr/lib/python3.8/encodings/__pycache__/cp1250.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2449 ./usr/lib/python3.8/encodings/__pycache__/cp1250.cpython-38.pyc
+-rw-r--r-- root root 2446 ./usr/lib/python3.8/encodings/__pycache__/cp1251.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2311 ./usr/lib/python3.8/encodings/__pycache__/cp1251.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2446 ./usr/lib/python3.8/encodings/__pycache__/cp1251.cpython-38.pyc
+-rw-r--r-- root root 2449 ./usr/lib/python3.8/encodings/__pycache__/cp1252.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2314 ./usr/lib/python3.8/encodings/__pycache__/cp1252.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2449 ./usr/lib/python3.8/encodings/__pycache__/cp1252.cpython-38.pyc
+-rw-r--r-- root root 2462 ./usr/lib/python3.8/encodings/__pycache__/cp1253.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2327 ./usr/lib/python3.8/encodings/__pycache__/cp1253.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2462 ./usr/lib/python3.8/encodings/__pycache__/cp1253.cpython-38.pyc
+-rw-r--r-- root root 2451 ./usr/lib/python3.8/encodings/__pycache__/cp1254.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2316 ./usr/lib/python3.8/encodings/__pycache__/cp1254.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2451 ./usr/lib/python3.8/encodings/__pycache__/cp1254.cpython-38.pyc
+-rw-r--r-- root root 2470 ./usr/lib/python3.8/encodings/__pycache__/cp1255.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2335 ./usr/lib/python3.8/encodings/__pycache__/cp1255.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2470 ./usr/lib/python3.8/encodings/__pycache__/cp1255.cpython-38.pyc
+-rw-r--r-- root root 2448 ./usr/lib/python3.8/encodings/__pycache__/cp1256.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2313 ./usr/lib/python3.8/encodings/__pycache__/cp1256.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2448 ./usr/lib/python3.8/encodings/__pycache__/cp1256.cpython-38.pyc
+-rw-r--r-- root root 2456 ./usr/lib/python3.8/encodings/__pycache__/cp1257.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2321 ./usr/lib/python3.8/encodings/__pycache__/cp1257.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2456 ./usr/lib/python3.8/encodings/__pycache__/cp1257.cpython-38.pyc
+-rw-r--r-- root root 2454 ./usr/lib/python3.8/encodings/__pycache__/cp1258.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2319 ./usr/lib/python3.8/encodings/__pycache__/cp1258.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2454 ./usr/lib/python3.8/encodings/__pycache__/cp1258.cpython-38.pyc
+-rw-r--r-- root root 2408 ./usr/lib/python3.8/encodings/__pycache__/cp273.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2291 ./usr/lib/python3.8/encodings/__pycache__/cp273.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2408 ./usr/lib/python3.8/encodings/__pycache__/cp273.cpython-38.pyc
+-rw-r--r-- root root 2452 ./usr/lib/python3.8/encodings/__pycache__/cp424.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2329 ./usr/lib/python3.8/encodings/__pycache__/cp424.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2452 ./usr/lib/python3.8/encodings/__pycache__/cp424.cpython-38.pyc
+-rw-r--r-- root root 7846 ./usr/lib/python3.8/encodings/__pycache__/cp437.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7725 ./usr/lib/python3.8/encodings/__pycache__/cp437.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7846 ./usr/lib/python3.8/encodings/__pycache__/cp437.cpython-38.pyc
+-rw-r--r-- root root 2422 ./usr/lib/python3.8/encodings/__pycache__/cp500.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2290 ./usr/lib/python3.8/encodings/__pycache__/cp500.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2422 ./usr/lib/python3.8/encodings/__pycache__/cp500.cpython-38.pyc
+-rw-r--r-- root root 2519 ./usr/lib/python3.8/encodings/__pycache__/cp720.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2344 ./usr/lib/python3.8/encodings/__pycache__/cp720.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2519 ./usr/lib/python3.8/encodings/__pycache__/cp720.cpython-38.pyc
+-rw-r--r-- root root 8168 ./usr/lib/python3.8/encodings/__pycache__/cp737.cpython-38.opt-1.pyc
+-rw-r--r-- root root 8047 ./usr/lib/python3.8/encodings/__pycache__/cp737.cpython-38.opt-2.pyc
+-rw-r--r-- root root 8168 ./usr/lib/python3.8/encodings/__pycache__/cp737.cpython-38.pyc
+-rw-r--r-- root root 7876 ./usr/lib/python3.8/encodings/__pycache__/cp775.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7755 ./usr/lib/python3.8/encodings/__pycache__/cp775.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7876 ./usr/lib/python3.8/encodings/__pycache__/cp775.cpython-38.pyc
+-rw-r--r-- root root 7507 ./usr/lib/python3.8/encodings/__pycache__/cp850.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7392 ./usr/lib/python3.8/encodings/__pycache__/cp850.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7507 ./usr/lib/python3.8/encodings/__pycache__/cp850.cpython-38.pyc
+-rw-r--r-- root root 7884 ./usr/lib/python3.8/encodings/__pycache__/cp852.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7769 ./usr/lib/python3.8/encodings/__pycache__/cp852.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7884 ./usr/lib/python3.8/encodings/__pycache__/cp852.cpython-38.pyc
+-rw-r--r-- root root 8137 ./usr/lib/python3.8/encodings/__pycache__/cp855.cpython-38.opt-1.pyc
+-rw-r--r-- root root 8022 ./usr/lib/python3.8/encodings/__pycache__/cp855.cpython-38.opt-2.pyc
+-rw-r--r-- root root 8137 ./usr/lib/python3.8/encodings/__pycache__/cp855.cpython-38.pyc
+-rw-r--r-- root root 2484 ./usr/lib/python3.8/encodings/__pycache__/cp856.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2361 ./usr/lib/python3.8/encodings/__pycache__/cp856.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2484 ./usr/lib/python3.8/encodings/__pycache__/cp856.cpython-38.pyc
+-rw-r--r-- root root 7487 ./usr/lib/python3.8/encodings/__pycache__/cp857.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7372 ./usr/lib/python3.8/encodings/__pycache__/cp857.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7487 ./usr/lib/python3.8/encodings/__pycache__/cp857.cpython-38.pyc
+-rw-r--r-- root root 7477 ./usr/lib/python3.8/encodings/__pycache__/cp858.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7393 ./usr/lib/python3.8/encodings/__pycache__/cp858.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7477 ./usr/lib/python3.8/encodings/__pycache__/cp858.cpython-38.pyc
+-rw-r--r-- root root 7825 ./usr/lib/python3.8/encodings/__pycache__/cp860.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7710 ./usr/lib/python3.8/encodings/__pycache__/cp860.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7825 ./usr/lib/python3.8/encodings/__pycache__/cp860.cpython-38.pyc
+-rw-r--r-- root root 7840 ./usr/lib/python3.8/encodings/__pycache__/cp861.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7725 ./usr/lib/python3.8/encodings/__pycache__/cp861.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7840 ./usr/lib/python3.8/encodings/__pycache__/cp861.cpython-38.pyc
+-rw-r--r-- root root 8029 ./usr/lib/python3.8/encodings/__pycache__/cp862.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7914 ./usr/lib/python3.8/encodings/__pycache__/cp862.cpython-38.opt-2.pyc
+-rw-r--r-- root root 8029 ./usr/lib/python3.8/encodings/__pycache__/cp862.cpython-38.pyc
+-rw-r--r-- root root 7840 ./usr/lib/python3.8/encodings/__pycache__/cp863.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7725 ./usr/lib/python3.8/encodings/__pycache__/cp863.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7840 ./usr/lib/python3.8/encodings/__pycache__/cp863.cpython-38.pyc
+-rw-r--r-- root root 7984 ./usr/lib/python3.8/encodings/__pycache__/cp864.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7869 ./usr/lib/python3.8/encodings/__pycache__/cp864.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7984 ./usr/lib/python3.8/encodings/__pycache__/cp864.cpython-38.pyc
+-rw-r--r-- root root 7840 ./usr/lib/python3.8/encodings/__pycache__/cp865.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7725 ./usr/lib/python3.8/encodings/__pycache__/cp865.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7840 ./usr/lib/python3.8/encodings/__pycache__/cp865.cpython-38.pyc
+-rw-r--r-- root root 8173 ./usr/lib/python3.8/encodings/__pycache__/cp866.cpython-38.opt-1.pyc
+-rw-r--r-- root root 8058 ./usr/lib/python3.8/encodings/__pycache__/cp866.cpython-38.opt-2.pyc
+-rw-r--r-- root root 8173 ./usr/lib/python3.8/encodings/__pycache__/cp866.cpython-38.pyc
+-rw-r--r-- root root 7864 ./usr/lib/python3.8/encodings/__pycache__/cp869.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7749 ./usr/lib/python3.8/encodings/__pycache__/cp869.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7864 ./usr/lib/python3.8/encodings/__pycache__/cp869.cpython-38.pyc
+-rw-r--r-- root root 2550 ./usr/lib/python3.8/encodings/__pycache__/cp874.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2417 ./usr/lib/python3.8/encodings/__pycache__/cp874.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2550 ./usr/lib/python3.8/encodings/__pycache__/cp874.cpython-38.pyc
+-rw-r--r-- root root 2419 ./usr/lib/python3.8/encodings/__pycache__/cp875.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2287 ./usr/lib/python3.8/encodings/__pycache__/cp875.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2419 ./usr/lib/python3.8/encodings/__pycache__/cp875.cpython-38.pyc
+-rw-r--r-- root root 1411 ./usr/lib/python3.8/encodings/__pycache__/cp932.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1411 ./usr/lib/python3.8/encodings/__pycache__/cp932.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1411 ./usr/lib/python3.8/encodings/__pycache__/cp932.cpython-38.pyc
+-rw-r--r-- root root 1411 ./usr/lib/python3.8/encodings/__pycache__/cp949.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1411 ./usr/lib/python3.8/encodings/__pycache__/cp949.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1411 ./usr/lib/python3.8/encodings/__pycache__/cp949.cpython-38.pyc
+-rw-r--r-- root root 1411 ./usr/lib/python3.8/encodings/__pycache__/cp950.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1411 ./usr/lib/python3.8/encodings/__pycache__/cp950.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1411 ./usr/lib/python3.8/encodings/__pycache__/cp950.cpython-38.pyc
+-rw-r--r-- root root 1425 ./usr/lib/python3.8/encodings/__pycache__/euc_jis_2004.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1425 ./usr/lib/python3.8/encodings/__pycache__/euc_jis_2004.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1425 ./usr/lib/python3.8/encodings/__pycache__/euc_jis_2004.cpython-38.pyc
+-rw-r--r-- root root 1425 ./usr/lib/python3.8/encodings/__pycache__/euc_jisx0213.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1425 ./usr/lib/python3.8/encodings/__pycache__/euc_jisx0213.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1425 ./usr/lib/python3.8/encodings/__pycache__/euc_jisx0213.cpython-38.pyc
+-rw-r--r-- root root 1413 ./usr/lib/python3.8/encodings/__pycache__/euc_jp.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1413 ./usr/lib/python3.8/encodings/__pycache__/euc_jp.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1413 ./usr/lib/python3.8/encodings/__pycache__/euc_jp.cpython-38.pyc
+-rw-r--r-- root root 1413 ./usr/lib/python3.8/encodings/__pycache__/euc_kr.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1413 ./usr/lib/python3.8/encodings/__pycache__/euc_kr.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1413 ./usr/lib/python3.8/encodings/__pycache__/euc_kr.cpython-38.pyc
+-rw-r--r-- root root 1415 ./usr/lib/python3.8/encodings/__pycache__/gb18030.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1415 ./usr/lib/python3.8/encodings/__pycache__/gb18030.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1415 ./usr/lib/python3.8/encodings/__pycache__/gb18030.cpython-38.pyc
+-rw-r--r-- root root 1413 ./usr/lib/python3.8/encodings/__pycache__/gb2312.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1413 ./usr/lib/python3.8/encodings/__pycache__/gb2312.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1413 ./usr/lib/python3.8/encodings/__pycache__/gb2312.cpython-38.pyc
+-rw-r--r-- root root 1407 ./usr/lib/python3.8/encodings/__pycache__/gbk.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1407 ./usr/lib/python3.8/encodings/__pycache__/gbk.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1407 ./usr/lib/python3.8/encodings/__pycache__/gbk.cpython-38.pyc
+-rw-r--r-- root root 2282 ./usr/lib/python3.8/encodings/__pycache__/hex_codec.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2105 ./usr/lib/python3.8/encodings/__pycache__/hex_codec.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2386 ./usr/lib/python3.8/encodings/__pycache__/hex_codec.cpython-38.pyc
+-rw-r--r-- root root 2623 ./usr/lib/python3.8/encodings/__pycache__/hp_roman8.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2302 ./usr/lib/python3.8/encodings/__pycache__/hp_roman8.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2623 ./usr/lib/python3.8/encodings/__pycache__/hp_roman8.cpython-38.pyc
+-rw-r--r-- root root 1405 ./usr/lib/python3.8/encodings/__pycache__/hz.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1405 ./usr/lib/python3.8/encodings/__pycache__/hz.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1405 ./usr/lib/python3.8/encodings/__pycache__/hz.cpython-38.pyc
+-rw-r--r-- root root 5617 ./usr/lib/python3.8/encodings/__pycache__/idna.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5617 ./usr/lib/python3.8/encodings/__pycache__/idna.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5617 ./usr/lib/python3.8/encodings/__pycache__/idna.cpython-38.pyc
+-rw-r--r-- root root 3903 ./usr/lib/python3.8/encodings/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2448 ./usr/lib/python3.8/encodings/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3903 ./usr/lib/python3.8/encodings/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 1430 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_1.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1430 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_1.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1430 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_1.cpython-38.pyc
+-rw-r--r-- root root 1436 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_2004.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1436 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_2004.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1436 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_2004.cpython-38.pyc
+-rw-r--r-- root root 1430 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_2.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1430 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_2.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1430 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_2.cpython-38.pyc
+-rw-r--r-- root root 1430 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_3.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1430 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_3.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1430 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_3.cpython-38.pyc
+-rw-r--r-- root root 1426 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1426 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1426 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp.cpython-38.pyc
+-rw-r--r-- root root 1434 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_ext.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1434 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_ext.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1434 ./usr/lib/python3.8/encodings/__pycache__/iso2022_jp_ext.cpython-38.pyc
+-rw-r--r-- root root 1426 ./usr/lib/python3.8/encodings/__pycache__/iso2022_kr.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1426 ./usr/lib/python3.8/encodings/__pycache__/iso2022_kr.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1426 ./usr/lib/python3.8/encodings/__pycache__/iso2022_kr.cpython-38.pyc
+-rw-r--r-- root root 2426 ./usr/lib/python3.8/encodings/__pycache__/iso8859_10.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2301 ./usr/lib/python3.8/encodings/__pycache__/iso8859_10.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2426 ./usr/lib/python3.8/encodings/__pycache__/iso8859_10.cpython-38.pyc
+-rw-r--r-- root root 2520 ./usr/lib/python3.8/encodings/__pycache__/iso8859_11.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2395 ./usr/lib/python3.8/encodings/__pycache__/iso8859_11.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2520 ./usr/lib/python3.8/encodings/__pycache__/iso8859_11.cpython-38.pyc
+-rw-r--r-- root root 2429 ./usr/lib/python3.8/encodings/__pycache__/iso8859_13.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2304 ./usr/lib/python3.8/encodings/__pycache__/iso8859_13.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2429 ./usr/lib/python3.8/encodings/__pycache__/iso8859_13.cpython-38.pyc
+-rw-r--r-- root root 2447 ./usr/lib/python3.8/encodings/__pycache__/iso8859_14.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2322 ./usr/lib/python3.8/encodings/__pycache__/iso8859_14.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2447 ./usr/lib/python3.8/encodings/__pycache__/iso8859_14.cpython-38.pyc
+-rw-r--r-- root root 2426 ./usr/lib/python3.8/encodings/__pycache__/iso8859_15.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2301 ./usr/lib/python3.8/encodings/__pycache__/iso8859_15.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2426 ./usr/lib/python3.8/encodings/__pycache__/iso8859_15.cpython-38.pyc
+-rw-r--r-- root root 2428 ./usr/lib/python3.8/encodings/__pycache__/iso8859_16.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2303 ./usr/lib/python3.8/encodings/__pycache__/iso8859_16.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2428 ./usr/lib/python3.8/encodings/__pycache__/iso8859_16.cpython-38.pyc
+-rw-r--r-- root root 2421 ./usr/lib/python3.8/encodings/__pycache__/iso8859_1.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2298 ./usr/lib/python3.8/encodings/__pycache__/iso8859_1.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2421 ./usr/lib/python3.8/encodings/__pycache__/iso8859_1.cpython-38.pyc
+-rw-r--r-- root root 2421 ./usr/lib/python3.8/encodings/__pycache__/iso8859_2.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2298 ./usr/lib/python3.8/encodings/__pycache__/iso8859_2.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2421 ./usr/lib/python3.8/encodings/__pycache__/iso8859_2.cpython-38.pyc
+-rw-r--r-- root root 2428 ./usr/lib/python3.8/encodings/__pycache__/iso8859_3.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2305 ./usr/lib/python3.8/encodings/__pycache__/iso8859_3.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2428 ./usr/lib/python3.8/encodings/__pycache__/iso8859_3.cpython-38.pyc
+-rw-r--r-- root root 2421 ./usr/lib/python3.8/encodings/__pycache__/iso8859_4.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2298 ./usr/lib/python3.8/encodings/__pycache__/iso8859_4.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2421 ./usr/lib/python3.8/encodings/__pycache__/iso8859_4.cpython-38.pyc
+-rw-r--r-- root root 2422 ./usr/lib/python3.8/encodings/__pycache__/iso8859_5.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2299 ./usr/lib/python3.8/encodings/__pycache__/iso8859_5.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2422 ./usr/lib/python3.8/encodings/__pycache__/iso8859_5.cpython-38.pyc
+-rw-r--r-- root root 2466 ./usr/lib/python3.8/encodings/__pycache__/iso8859_6.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2343 ./usr/lib/python3.8/encodings/__pycache__/iso8859_6.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2466 ./usr/lib/python3.8/encodings/__pycache__/iso8859_6.cpython-38.pyc
+-rw-r--r-- root root 2429 ./usr/lib/python3.8/encodings/__pycache__/iso8859_7.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2306 ./usr/lib/python3.8/encodings/__pycache__/iso8859_7.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2429 ./usr/lib/python3.8/encodings/__pycache__/iso8859_7.cpython-38.pyc
+-rw-r--r-- root root 2460 ./usr/lib/python3.8/encodings/__pycache__/iso8859_8.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2337 ./usr/lib/python3.8/encodings/__pycache__/iso8859_8.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2460 ./usr/lib/python3.8/encodings/__pycache__/iso8859_8.cpython-38.pyc
+-rw-r--r-- root root 2421 ./usr/lib/python3.8/encodings/__pycache__/iso8859_9.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2298 ./usr/lib/python3.8/encodings/__pycache__/iso8859_9.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2421 ./usr/lib/python3.8/encodings/__pycache__/iso8859_9.cpython-38.pyc
+-rw-r--r-- root root 1411 ./usr/lib/python3.8/encodings/__pycache__/johab.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1411 ./usr/lib/python3.8/encodings/__pycache__/johab.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1411 ./usr/lib/python3.8/encodings/__pycache__/johab.cpython-38.pyc
+-rw-r--r-- root root 2473 ./usr/lib/python3.8/encodings/__pycache__/koi8_r.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2348 ./usr/lib/python3.8/encodings/__pycache__/koi8_r.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2473 ./usr/lib/python3.8/encodings/__pycache__/koi8_r.cpython-38.pyc
+-rw-r--r-- root root 2384 ./usr/lib/python3.8/encodings/__pycache__/koi8_t.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2328 ./usr/lib/python3.8/encodings/__pycache__/koi8_t.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2384 ./usr/lib/python3.8/encodings/__pycache__/koi8_t.cpython-38.pyc
+-rw-r--r-- root root 2459 ./usr/lib/python3.8/encodings/__pycache__/koi8_u.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2340 ./usr/lib/python3.8/encodings/__pycache__/koi8_u.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2459 ./usr/lib/python3.8/encodings/__pycache__/koi8_u.cpython-38.pyc
+-rw-r--r-- root root 2436 ./usr/lib/python3.8/encodings/__pycache__/kz1048.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2311 ./usr/lib/python3.8/encodings/__pycache__/kz1048.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2436 ./usr/lib/python3.8/encodings/__pycache__/kz1048.cpython-38.pyc
+-rw-r--r-- root root 1893 ./usr/lib/python3.8/encodings/__pycache__/latin_1.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1745 ./usr/lib/python3.8/encodings/__pycache__/latin_1.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1893 ./usr/lib/python3.8/encodings/__pycache__/latin_1.cpython-38.pyc
+-rw-r--r-- root root 7740 ./usr/lib/python3.8/encodings/__pycache__/mac_arabic.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7628 ./usr/lib/python3.8/encodings/__pycache__/mac_arabic.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7740 ./usr/lib/python3.8/encodings/__pycache__/mac_arabic.cpython-38.pyc
+-rw-r--r-- root root 2460 ./usr/lib/python3.8/encodings/__pycache__/mac_centeuro.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2326 ./usr/lib/python3.8/encodings/__pycache__/mac_centeuro.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2460 ./usr/lib/python3.8/encodings/__pycache__/mac_centeuro.cpython-38.pyc
+-rw-r--r-- root root 2468 ./usr/lib/python3.8/encodings/__pycache__/mac_croatian.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2334 ./usr/lib/python3.8/encodings/__pycache__/mac_croatian.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2468 ./usr/lib/python3.8/encodings/__pycache__/mac_croatian.cpython-38.pyc
+-rw-r--r-- root root 2458 ./usr/lib/python3.8/encodings/__pycache__/mac_cyrillic.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2324 ./usr/lib/python3.8/encodings/__pycache__/mac_cyrillic.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2458 ./usr/lib/python3.8/encodings/__pycache__/mac_cyrillic.cpython-38.pyc
+-rw-r--r-- root root 2402 ./usr/lib/python3.8/encodings/__pycache__/mac_farsi.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2274 ./usr/lib/python3.8/encodings/__pycache__/mac_farsi.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2402 ./usr/lib/python3.8/encodings/__pycache__/mac_farsi.cpython-38.pyc
+-rw-r--r-- root root 2442 ./usr/lib/python3.8/encodings/__pycache__/mac_greek.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2314 ./usr/lib/python3.8/encodings/__pycache__/mac_greek.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2442 ./usr/lib/python3.8/encodings/__pycache__/mac_greek.cpython-38.pyc
+-rw-r--r-- root root 2461 ./usr/lib/python3.8/encodings/__pycache__/mac_iceland.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2329 ./usr/lib/python3.8/encodings/__pycache__/mac_iceland.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2461 ./usr/lib/python3.8/encodings/__pycache__/mac_iceland.cpython-38.pyc
+-rw-r--r-- root root 2602 ./usr/lib/python3.8/encodings/__pycache__/mac_latin2.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2322 ./usr/lib/python3.8/encodings/__pycache__/mac_latin2.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2602 ./usr/lib/python3.8/encodings/__pycache__/mac_latin2.cpython-38.pyc
+-rw-r--r-- root root 2459 ./usr/lib/python3.8/encodings/__pycache__/mac_roman.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2331 ./usr/lib/python3.8/encodings/__pycache__/mac_roman.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2459 ./usr/lib/python3.8/encodings/__pycache__/mac_roman.cpython-38.pyc
+-rw-r--r-- root root 2469 ./usr/lib/python3.8/encodings/__pycache__/mac_romanian.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2335 ./usr/lib/python3.8/encodings/__pycache__/mac_romanian.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2469 ./usr/lib/python3.8/encodings/__pycache__/mac_romanian.cpython-38.pyc
+-rw-r--r-- root root 2462 ./usr/lib/python3.8/encodings/__pycache__/mac_turkish.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2330 ./usr/lib/python3.8/encodings/__pycache__/mac_turkish.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2462 ./usr/lib/python3.8/encodings/__pycache__/mac_turkish.cpython-38.pyc
+-rw-r--r-- root root 1711 ./usr/lib/python3.8/encodings/__pycache__/mbcs.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1478 ./usr/lib/python3.8/encodings/__pycache__/mbcs.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1711 ./usr/lib/python3.8/encodings/__pycache__/mbcs.cpython-38.pyc
+-rw-r--r-- root root 1524 ./usr/lib/python3.8/encodings/__pycache__/oem.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1474 ./usr/lib/python3.8/encodings/__pycache__/oem.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1524 ./usr/lib/python3.8/encodings/__pycache__/oem.cpython-38.pyc
+-rw-r--r-- root root 2449 ./usr/lib/python3.8/encodings/__pycache__/palmos.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2312 ./usr/lib/python3.8/encodings/__pycache__/palmos.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2449 ./usr/lib/python3.8/encodings/__pycache__/palmos.cpython-38.pyc
+-rw-r--r-- root root 2543 ./usr/lib/python3.8/encodings/__pycache__/ptcp154.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2304 ./usr/lib/python3.8/encodings/__pycache__/ptcp154.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2543 ./usr/lib/python3.8/encodings/__pycache__/ptcp154.cpython-38.pyc
+-rw-r--r-- root root 6315 ./usr/lib/python3.8/encodings/__pycache__/punycode.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5723 ./usr/lib/python3.8/encodings/__pycache__/punycode.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6315 ./usr/lib/python3.8/encodings/__pycache__/punycode.cpython-38.pyc
+-rw-r--r-- root root 2358 ./usr/lib/python3.8/encodings/__pycache__/quopri_codec.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2260 ./usr/lib/python3.8/encodings/__pycache__/quopri_codec.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2415 ./usr/lib/python3.8/encodings/__pycache__/quopri_codec.cpython-38.pyc
+-rw-r--r-- root root 1762 ./usr/lib/python3.8/encodings/__pycache__/raw_unicode_escape.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1603 ./usr/lib/python3.8/encodings/__pycache__/raw_unicode_escape.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1762 ./usr/lib/python3.8/encodings/__pycache__/raw_unicode_escape.cpython-38.pyc
+-rw-r--r-- root root 3001 ./usr/lib/python3.8/encodings/__pycache__/rot_13.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2851 ./usr/lib/python3.8/encodings/__pycache__/rot_13.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3001 ./usr/lib/python3.8/encodings/__pycache__/rot_13.cpython-38.pyc
+-rw-r--r-- root root 1429 ./usr/lib/python3.8/encodings/__pycache__/shift_jis_2004.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1429 ./usr/lib/python3.8/encodings/__pycache__/shift_jis_2004.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1429 ./usr/lib/python3.8/encodings/__pycache__/shift_jis_2004.cpython-38.pyc
+-rw-r--r-- root root 1419 ./usr/lib/python3.8/encodings/__pycache__/shift_jis.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1419 ./usr/lib/python3.8/encodings/__pycache__/shift_jis.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1419 ./usr/lib/python3.8/encodings/__pycache__/shift_jis.cpython-38.pyc
+-rw-r--r-- root root 1429 ./usr/lib/python3.8/encodings/__pycache__/shift_jisx0213.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1429 ./usr/lib/python3.8/encodings/__pycache__/shift_jisx0213.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1429 ./usr/lib/python3.8/encodings/__pycache__/shift_jisx0213.cpython-38.pyc
+-rw-r--r-- root root 2511 ./usr/lib/python3.8/encodings/__pycache__/tis_620.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2390 ./usr/lib/python3.8/encodings/__pycache__/tis_620.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2511 ./usr/lib/python3.8/encodings/__pycache__/tis_620.cpython-38.pyc
+-rw-r--r-- root root 2095 ./usr/lib/python3.8/encodings/__pycache__/undefined.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1766 ./usr/lib/python3.8/encodings/__pycache__/undefined.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2095 ./usr/lib/python3.8/encodings/__pycache__/undefined.cpython-38.pyc
+-rw-r--r-- root root 1742 ./usr/lib/python3.8/encodings/__pycache__/unicode_escape.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1587 ./usr/lib/python3.8/encodings/__pycache__/unicode_escape.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1742 ./usr/lib/python3.8/encodings/__pycache__/unicode_escape.cpython-38.pyc
+-rw-r--r-- root root 1650 ./usr/lib/python3.8/encodings/__pycache__/utf_16_be.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1500 ./usr/lib/python3.8/encodings/__pycache__/utf_16_be.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1650 ./usr/lib/python3.8/encodings/__pycache__/utf_16_be.cpython-38.pyc
+-rw-r--r-- root root 4872 ./usr/lib/python3.8/encodings/__pycache__/utf_16.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4725 ./usr/lib/python3.8/encodings/__pycache__/utf_16.cpython-38.opt-2.pyc
+-rw-r--r-- root root 4872 ./usr/lib/python3.8/encodings/__pycache__/utf_16.cpython-38.pyc
+-rw-r--r-- root root 1650 ./usr/lib/python3.8/encodings/__pycache__/utf_16_le.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1500 ./usr/lib/python3.8/encodings/__pycache__/utf_16_le.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1650 ./usr/lib/python3.8/encodings/__pycache__/utf_16_le.cpython-38.pyc
+-rw-r--r-- root root 1543 ./usr/lib/python3.8/encodings/__pycache__/utf_32_be.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1500 ./usr/lib/python3.8/encodings/__pycache__/utf_32_be.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1543 ./usr/lib/python3.8/encodings/__pycache__/utf_32_be.cpython-38.pyc
+-rw-r--r-- root root 4765 ./usr/lib/python3.8/encodings/__pycache__/utf_32.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4725 ./usr/lib/python3.8/encodings/__pycache__/utf_32.cpython-38.opt-2.pyc
+-rw-r--r-- root root 4765 ./usr/lib/python3.8/encodings/__pycache__/utf_32.cpython-38.pyc
+-rw-r--r-- root root 1543 ./usr/lib/python3.8/encodings/__pycache__/utf_32_le.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1500 ./usr/lib/python3.8/encodings/__pycache__/utf_32_le.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1543 ./usr/lib/python3.8/encodings/__pycache__/utf_32_le.cpython-38.pyc
+-rw-r--r-- root root 1571 ./usr/lib/python3.8/encodings/__pycache__/utf_7.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1484 ./usr/lib/python3.8/encodings/__pycache__/utf_7.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1571 ./usr/lib/python3.8/encodings/__pycache__/utf_7.cpython-38.pyc
+-rw-r--r-- root root 1630 ./usr/lib/python3.8/encodings/__pycache__/utf_8.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1484 ./usr/lib/python3.8/encodings/__pycache__/utf_8.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1630 ./usr/lib/python3.8/encodings/__pycache__/utf_8.cpython-38.pyc
+-rw-r--r-- root root 4546 ./usr/lib/python3.8/encodings/__pycache__/utf_8_sig.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4244 ./usr/lib/python3.8/encodings/__pycache__/utf_8_sig.cpython-38.opt-2.pyc
+-rw-r--r-- root root 4546 ./usr/lib/python3.8/encodings/__pycache__/utf_8_sig.cpython-38.pyc
+-rw-r--r-- root root 3190 ./usr/lib/python3.8/encodings/__pycache__/uu_codec.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2897 ./usr/lib/python3.8/encodings/__pycache__/uu_codec.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3249 ./usr/lib/python3.8/encodings/__pycache__/uu_codec.cpython-38.pyc
+-rw-r--r-- root root 3019 ./usr/lib/python3.8/encodings/__pycache__/zlib_codec.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2853 ./usr/lib/python3.8/encodings/__pycache__/zlib_codec.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3109 ./usr/lib/python3.8/encodings/__pycache__/zlib_codec.cpython-38.pyc
+-rw-r--r-- root root 1525 ./usr/lib/python3.8/encodings/quopri_codec.py
+-rw-r--r-- root root 1208 ./usr/lib/python3.8/encodings/raw_unicode_escape.py
+-rwxr-xr-x root root 2448 ./usr/lib/python3.8/encodings/rot_13.py
+-rw-r--r-- root root 1059 ./usr/lib/python3.8/encodings/shift_jis_2004.py
+-rw-r--r-- root root 1039 ./usr/lib/python3.8/encodings/shift_jis.py
+-rw-r--r-- root root 1059 ./usr/lib/python3.8/encodings/shift_jisx0213.py
+-rw-r--r-- root root 12300 ./usr/lib/python3.8/encodings/tis_620.py
+-rw-r--r-- root root 1299 ./usr/lib/python3.8/encodings/undefined.py
+-rw-r--r-- root root 1184 ./usr/lib/python3.8/encodings/unicode_escape.py
+-rw-r--r-- root root 1037 ./usr/lib/python3.8/encodings/utf_16_be.py
+-rw-r--r-- root root 1037 ./usr/lib/python3.8/encodings/utf_16_le.py
+-rw-r--r-- root root 5236 ./usr/lib/python3.8/encodings/utf_16.py
+-rw-r--r-- root root 930 ./usr/lib/python3.8/encodings/utf_32_be.py
+-rw-r--r-- root root 930 ./usr/lib/python3.8/encodings/utf_32_le.py
+-rw-r--r-- root root 5129 ./usr/lib/python3.8/encodings/utf_32.py
+-rw-r--r-- root root 946 ./usr/lib/python3.8/encodings/utf_7.py
+-rw-r--r-- root root 1005 ./usr/lib/python3.8/encodings/utf_8.py
+-rw-r--r-- root root 4133 ./usr/lib/python3.8/encodings/utf_8_sig.py
+-rw-r--r-- root root 2851 ./usr/lib/python3.8/encodings/uu_codec.py
+-rw-r--r-- root root 2204 ./usr/lib/python3.8/encodings/zlib_codec.py
+-rw-r--r-- root root 34616 ./usr/lib/python3.8/enum.py
+-rw-r--r-- root root 4056 ./usr/lib/python3.8/fnmatch.py
+-rw-r--r-- root root 34768 ./usr/lib/python3.8/ftplib.py
+-rw-r--r-- root root 37406 ./usr/lib/python3.8/functools.py
+-rw-r--r-- root root 5109 ./usr/lib/python3.8/__future__.py
+-rw-r--r-- root root 4975 ./usr/lib/python3.8/genericpath.py
+-rw-r--r-- root root 7489 ./usr/lib/python3.8/getopt.py
+-rw-r--r-- root root 27138 ./usr/lib/python3.8/gettext.py
+-rw-r--r-- root root 5697 ./usr/lib/python3.8/glob.py
+-rw-r--r-- root root 21441 ./usr/lib/python3.8/gzip.py
+-rw-r--r-- root root 9730 ./usr/lib/python3.8/hashlib.py
+-rw-r--r-- root root 22877 ./usr/lib/python3.8/heapq.py
+-rw-r--r-- root root 6629 ./usr/lib/python3.8/hmac.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/http
+-rw-r--r-- root root 54908 ./usr/lib/python3.8/http/client.py
+-rw-r--r-- root root 76835 ./usr/lib/python3.8/http/cookiejar.py
+-rw-r--r-- root root 20412 ./usr/lib/python3.8/http/cookies.py
+-rw-r--r-- root root 6378 ./usr/lib/python3.8/http/__init__.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/http/__pycache__
+-rw-r--r-- root root 34204 ./usr/lib/python3.8/http/__pycache__/client.cpython-38.opt-1.pyc
+-rw-r--r-- root root 25225 ./usr/lib/python3.8/http/__pycache__/client.cpython-38.opt-2.pyc
+-rw-r--r-- root root 34303 ./usr/lib/python3.8/http/__pycache__/client.cpython-38.pyc
+-rw-r--r-- root root 53442 ./usr/lib/python3.8/http/__pycache__/cookiejar.cpython-38.opt-1.pyc
+-rw-r--r-- root root 37805 ./usr/lib/python3.8/http/__pycache__/cookiejar.cpython-38.opt-2.pyc
+-rw-r--r-- root root 53642 ./usr/lib/python3.8/http/__pycache__/cookiejar.cpython-38.pyc
+-rw-r--r-- root root 15220 ./usr/lib/python3.8/http/__pycache__/cookies.cpython-38.opt-1.pyc
+-rw-r--r-- root root 10823 ./usr/lib/python3.8/http/__pycache__/cookies.cpython-38.opt-2.pyc
+-rw-r--r-- root root 15268 ./usr/lib/python3.8/http/__pycache__/cookies.cpython-38.pyc
+-rw-r--r-- root root 6064 ./usr/lib/python3.8/http/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5383 ./usr/lib/python3.8/http/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6064 ./usr/lib/python3.8/http/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 34392 ./usr/lib/python3.8/http/__pycache__/server.cpython-38.opt-1.pyc
+-rw-r--r-- root root 22456 ./usr/lib/python3.8/http/__pycache__/server.cpython-38.opt-2.pyc
+-rw-r--r-- root root 34392 ./usr/lib/python3.8/http/__pycache__/server.cpython-38.pyc
+-rw-r--r-- root root 47254 ./usr/lib/python3.8/http/server.py
+-rw-r--r-- root root 53606 ./usr/lib/python3.8/imaplib.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/importlib
+-rw-r--r-- root root 12873 ./usr/lib/python3.8/importlib/abc.py
+-rw-r--r-- root root 62357 ./usr/lib/python3.8/importlib/_bootstrap_external.py
+-rw-r--r-- root root 39644 ./usr/lib/python3.8/importlib/_bootstrap.py
+-rw-r--r-- root root 6061 ./usr/lib/python3.8/importlib/__init__.py
+-rw-r--r-- root root 844 ./usr/lib/python3.8/importlib/machinery.py
+-rw-r--r-- root root 17607 ./usr/lib/python3.8/importlib/metadata.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/importlib/__pycache__
+-rw-r--r-- root root 13573 ./usr/lib/python3.8/importlib/__pycache__/abc.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6762 ./usr/lib/python3.8/importlib/__pycache__/abc.cpython-38.opt-2.pyc
+-rw-r--r-- root root 13573 ./usr/lib/python3.8/importlib/__pycache__/abc.cpython-38.pyc
+-rw-r--r-- root root 28573 ./usr/lib/python3.8/importlib/__pycache__/_bootstrap.cpython-38.opt-1.pyc
+-rw-r--r-- root root 21814 ./usr/lib/python3.8/importlib/__pycache__/_bootstrap.cpython-38.opt-2.pyc
+-rw-r--r-- root root 28605 ./usr/lib/python3.8/importlib/__pycache__/_bootstrap.cpython-38.pyc
+-rw-r--r-- root root 43406 ./usr/lib/python3.8/importlib/__pycache__/_bootstrap_external.cpython-38.opt-1.pyc
+-rw-r--r-- root root 32285 ./usr/lib/python3.8/importlib/__pycache__/_bootstrap_external.cpython-38.opt-2.pyc
+-rw-r--r-- root root 43710 ./usr/lib/python3.8/importlib/__pycache__/_bootstrap_external.cpython-38.pyc
+-rw-r--r-- root root 3758 ./usr/lib/python3.8/importlib/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3079 ./usr/lib/python3.8/importlib/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3758 ./usr/lib/python3.8/importlib/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 962 ./usr/lib/python3.8/importlib/__pycache__/machinery.cpython-38.opt-1.pyc
+-rw-r--r-- root root 822 ./usr/lib/python3.8/importlib/__pycache__/machinery.cpython-38.opt-2.pyc
+-rw-r--r-- root root 962 ./usr/lib/python3.8/importlib/__pycache__/machinery.cpython-38.pyc
+-rw-r--r-- root root 20840 ./usr/lib/python3.8/importlib/__pycache__/metadata.cpython-38.opt-1.pyc
+-rw-r--r-- root root 15073 ./usr/lib/python3.8/importlib/__pycache__/metadata.cpython-38.opt-2.pyc
+-rw-r--r-- root root 20840 ./usr/lib/python3.8/importlib/__pycache__/metadata.cpython-38.pyc
+-rw-r--r-- root root 6480 ./usr/lib/python3.8/importlib/__pycache__/resources.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5135 ./usr/lib/python3.8/importlib/__pycache__/resources.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6480 ./usr/lib/python3.8/importlib/__pycache__/resources.cpython-38.pyc
+-rw-r--r-- root root 9292 ./usr/lib/python3.8/importlib/__pycache__/util.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6423 ./usr/lib/python3.8/importlib/__pycache__/util.cpython-38.opt-2.pyc
+-rw-r--r-- root root 9292 ./usr/lib/python3.8/importlib/__pycache__/util.cpython-38.pyc
+-rw-r--r-- root root 9437 ./usr/lib/python3.8/importlib/resources.py
+-rw-r--r-- root root 11319 ./usr/lib/python3.8/importlib/util.py
+-rw-r--r-- root root 10536 ./usr/lib/python3.8/imp.py
+-rw-r--r-- root root 118040 ./usr/lib/python3.8/inspect.py
+-rw-r--r-- root root 3541 ./usr/lib/python3.8/io.py
+-rw-r--r-- root root 71160 ./usr/lib/python3.8/ipaddress.py
+-rw-r--r-- root root 945 ./usr/lib/python3.8/keyword.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/lib-dynload
+-rwxr-xr-x root root 65816 ./usr/lib/python3.8/lib-dynload/array.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 31736 ./usr/lib/python3.8/lib-dynload/binascii.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 14760 ./usr/lib/python3.8/lib-dynload/_bisect.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 44664 ./usr/lib/python3.8/lib-dynload/_blake2.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 27896 ./usr/lib/python3.8/lib-dynload/_bz2.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 43896 ./usr/lib/python3.8/lib-dynload/cmath.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 14384 ./usr/lib/python3.8/lib-dynload/_crypt.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 37240 ./usr/lib/python3.8/lib-dynload/_csv.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 99712 ./usr/lib/python3.8/lib-dynload/_datetime.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 76160 ./usr/lib/python3.8/lib-dynload/_elementtree.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 18856 ./usr/lib/python3.8/lib-dynload/grp.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 36600 ./usr/lib/python3.8/lib-dynload/_hashlib.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 22640 ./usr/lib/python3.8/lib-dynload/_heapq.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 40920 ./usr/lib/python3.8/lib-dynload/_lzma.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 57208 ./usr/lib/python3.8/lib-dynload/math.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 19352 ./usr/lib/python3.8/lib-dynload/_md5.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 14520 ./usr/lib/python3.8/lib-dynload/_opcode.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 27856 ./usr/lib/python3.8/lib-dynload/parser.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 113208 ./usr/lib/python3.8/lib-dynload/_pickle.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 22680 ./usr/lib/python3.8/lib-dynload/_posixsubprocess.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 233072 ./usr/lib/python3.8/lib-dynload/pyexpat.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 19320 ./usr/lib/python3.8/lib-dynload/_queue.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 19024 ./usr/lib/python3.8/lib-dynload/_random.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 35672 ./usr/lib/python3.8/lib-dynload/readline.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 32632 ./usr/lib/python3.8/lib-dynload/select.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 15256 ./usr/lib/python3.8/lib-dynload/_sha1.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 24024 ./usr/lib/python3.8/lib-dynload/_sha256.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 82960 ./usr/lib/python3.8/lib-dynload/_sha3.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 28120 ./usr/lib/python3.8/lib-dynload/_sha512.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 99056 ./usr/lib/python3.8/lib-dynload/_socket.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 191272 ./usr/lib/python3.8/lib-dynload/_ssl.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 50392 ./usr/lib/python3.8/lib-dynload/_struct.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 30576 ./usr/lib/python3.8/lib-dynload/termios.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 1091200 ./usr/lib/python3.8/lib-dynload/unicodedata.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 14384 ./usr/lib/python3.8/lib-dynload/_uuid.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 40888 ./usr/lib/python3.8/lib-dynload/zlib.cpython-38-x86_64-linux-gnu.so
+-rw-r--r-- root root 5312 ./usr/lib/python3.8/linecache.py
+-rw-r--r-- root root 78191 ./usr/lib/python3.8/locale.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/logging
+-rw-r--r-- root root 36357 ./usr/lib/python3.8/logging/config.py
+-rw-r--r-- root root 57885 ./usr/lib/python3.8/logging/handlers.py
+-rw-r--r-- root root 77642 ./usr/lib/python3.8/logging/__init__.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/logging/__pycache__
+-rw-r--r-- root root 23178 ./usr/lib/python3.8/logging/__pycache__/config.cpython-38.opt-1.pyc
+-rw-r--r-- root root 19068 ./usr/lib/python3.8/logging/__pycache__/config.cpython-38.opt-2.pyc
+-rw-r--r-- root root 23224 ./usr/lib/python3.8/logging/__pycache__/config.cpython-38.pyc
+-rw-r--r-- root root 43156 ./usr/lib/python3.8/logging/__pycache__/handlers.cpython-38.opt-1.pyc
+-rw-r--r-- root root 24449 ./usr/lib/python3.8/logging/__pycache__/handlers.cpython-38.opt-2.pyc
+-rw-r--r-- root root 43156 ./usr/lib/python3.8/logging/__pycache__/handlers.cpython-38.pyc
+-rw-r--r-- root root 64839 ./usr/lib/python3.8/logging/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 36341 ./usr/lib/python3.8/logging/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 64871 ./usr/lib/python3.8/logging/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 12983 ./usr/lib/python3.8/lzma.py
+-rw-r--r-- root root 14598 ./usr/lib/python3.8/_markupbase.py
+-rw-r--r-- root root 21604 ./usr/lib/python3.8/mimetypes.py
+-rw-r--r-- root root 43261 ./usr/lib/python3.8/nntplib.py
+-rw-r--r-- root root 27734 ./usr/lib/python3.8/ntpath.py
+-rw-r--r-- root root 5808 ./usr/lib/python3.8/opcode.py
+-rw-r--r-- root root 10711 ./usr/lib/python3.8/operator.py
+-rw-r--r-- root root 60369 ./usr/lib/python3.8/optparse.py
+-rw-r--r-- root root 38995 ./usr/lib/python3.8/os.py
+-rw-r--r-- root root 51839 ./usr/lib/python3.8/pathlib.py
+-rw-r--r-- root root 64395 ./usr/lib/python3.8/pickle.py
+-rw-r--r-- root root 93486 ./usr/lib/python3.8/pickletools.py
+-rw-r--r-- root root 8916 ./usr/lib/python3.8/pipes.py
+-rw-r--r-- root root 21461 ./usr/lib/python3.8/pkgutil.py
+-rwxr-xr-x root root 40328 ./usr/lib/python3.8/platform.py
+-rw-r--r-- root root 15077 ./usr/lib/python3.8/poplib.py
+-rw-r--r-- root root 15627 ./usr/lib/python3.8/posixpath.py
+drwxr-xr-x root root 20480 ./usr/lib/python3.8/__pycache__
+-rw-r--r-- root root 5334 ./usr/lib/python3.8/__pycache__/abc.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3212 ./usr/lib/python3.8/__pycache__/abc.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5334 ./usr/lib/python3.8/__pycache__/abc.cpython-38.pyc
+-rw-r--r-- root root 62128 ./usr/lib/python3.8/__pycache__/argparse.cpython-38.opt-1.pyc
+-rw-r--r-- root root 52887 ./usr/lib/python3.8/__pycache__/argparse.cpython-38.opt-2.pyc
+-rw-r--r-- root root 62277 ./usr/lib/python3.8/__pycache__/argparse.cpython-38.pyc
+-rw-r--r-- root root 16485 ./usr/lib/python3.8/__pycache__/ast.cpython-38.opt-1.pyc
+-rw-r--r-- root root 10094 ./usr/lib/python3.8/__pycache__/ast.cpython-38.opt-2.pyc
+-rw-r--r-- root root 16520 ./usr/lib/python3.8/__pycache__/ast.cpython-38.pyc
+-rw-r--r-- root root 16908 ./usr/lib/python3.8/__pycache__/base64.cpython-38.opt-1.pyc
+-rw-r--r-- root root 11324 ./usr/lib/python3.8/__pycache__/base64.cpython-38.opt-2.pyc
+-rw-r--r-- root root 17071 ./usr/lib/python3.8/__pycache__/base64.cpython-38.pyc
+-rw-r--r-- root root 2354 ./usr/lib/python3.8/__pycache__/bisect.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1042 ./usr/lib/python3.8/__pycache__/bisect.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2354 ./usr/lib/python3.8/__pycache__/bisect.cpython-38.pyc
+-rw-r--r-- root root 1217 ./usr/lib/python3.8/__pycache__/_bootlocale.cpython-38.opt-1.pyc
+-rw-r--r-- root root 992 ./usr/lib/python3.8/__pycache__/_bootlocale.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1243 ./usr/lib/python3.8/__pycache__/_bootlocale.cpython-38.pyc
+-rw-r--r-- root root 11445 ./usr/lib/python3.8/__pycache__/bz2.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6387 ./usr/lib/python3.8/__pycache__/bz2.cpython-38.opt-2.pyc
+-rw-r--r-- root root 11445 ./usr/lib/python3.8/__pycache__/bz2.cpython-38.pyc
+-rw-r--r-- root root 27064 ./usr/lib/python3.8/__pycache__/calendar.cpython-38.opt-1.pyc
+-rw-r--r-- root root 22472 ./usr/lib/python3.8/__pycache__/calendar.cpython-38.opt-2.pyc
+-rw-r--r-- root root 27064 ./usr/lib/python3.8/__pycache__/calendar.cpython-38.pyc
+-rw-r--r-- root root 12626 ./usr/lib/python3.8/__pycache__/cmd.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7201 ./usr/lib/python3.8/__pycache__/cmd.cpython-38.opt-2.pyc
+-rw-r--r-- root root 12626 ./usr/lib/python3.8/__pycache__/cmd.cpython-38.pyc
+-rw-r--r-- root root 9913 ./usr/lib/python3.8/__pycache__/code.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4642 ./usr/lib/python3.8/__pycache__/code.cpython-38.opt-2.pyc
+-rw-r--r-- root root 9913 ./usr/lib/python3.8/__pycache__/code.cpython-38.pyc
+-rw-r--r-- root root 33956 ./usr/lib/python3.8/__pycache__/codecs.cpython-38.opt-1.pyc
+-rw-r--r-- root root 18390 ./usr/lib/python3.8/__pycache__/codecs.cpython-38.opt-2.pyc
+-rw-r--r-- root root 33956 ./usr/lib/python3.8/__pycache__/codecs.cpython-38.pyc
+-rw-r--r-- root root 6297 ./usr/lib/python3.8/__pycache__/codeop.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2259 ./usr/lib/python3.8/__pycache__/codeop.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6297 ./usr/lib/python3.8/__pycache__/codeop.cpython-38.pyc
+-rw-r--r-- root root 28741 ./usr/lib/python3.8/__pycache__/_collections_abc.cpython-38.opt-1.pyc
+-rw-r--r-- root root 23682 ./usr/lib/python3.8/__pycache__/_collections_abc.cpython-38.opt-2.pyc
+-rw-r--r-- root root 28741 ./usr/lib/python3.8/__pycache__/_collections_abc.cpython-38.pyc
+-rw-r--r-- root root 5443 ./usr/lib/python3.8/__pycache__/_compat_pickle.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5443 ./usr/lib/python3.8/__pycache__/_compat_pickle.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5501 ./usr/lib/python3.8/__pycache__/_compat_pickle.cpython-38.pyc
+-rw-r--r-- root root 4146 ./usr/lib/python3.8/__pycache__/_compression.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3932 ./usr/lib/python3.8/__pycache__/_compression.cpython-38.opt-2.pyc
+-rw-r--r-- root root 4146 ./usr/lib/python3.8/__pycache__/_compression.cpython-38.pyc
+-rw-r--r-- root root 45718 ./usr/lib/python3.8/__pycache__/configparser.cpython-38.opt-1.pyc
+-rw-r--r-- root root 30792 ./usr/lib/python3.8/__pycache__/configparser.cpython-38.opt-2.pyc
+-rw-r--r-- root root 45718 ./usr/lib/python3.8/__pycache__/configparser.cpython-38.pyc
+-rw-r--r-- root root 20176 ./usr/lib/python3.8/__pycache__/contextlib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 14596 ./usr/lib/python3.8/__pycache__/contextlib.cpython-38.opt-2.pyc
+-rw-r--r-- root root 20229 ./usr/lib/python3.8/__pycache__/contextlib.cpython-38.pyc
+-rw-r--r-- root root 6987 ./usr/lib/python3.8/__pycache__/copy.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4673 ./usr/lib/python3.8/__pycache__/copy.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6987 ./usr/lib/python3.8/__pycache__/copy.cpython-38.pyc
+-rw-r--r-- root root 4283 ./usr/lib/python3.8/__pycache__/copyreg.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3481 ./usr/lib/python3.8/__pycache__/copyreg.cpython-38.opt-2.pyc
+-rw-r--r-- root root 4318 ./usr/lib/python3.8/__pycache__/copyreg.cpython-38.pyc
+-rw-r--r-- root root 3387 ./usr/lib/python3.8/__pycache__/crypt.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2725 ./usr/lib/python3.8/__pycache__/crypt.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3387 ./usr/lib/python3.8/__pycache__/crypt.cpython-38.pyc
+-rw-r--r-- root root 11910 ./usr/lib/python3.8/__pycache__/csv.cpython-38.opt-1.pyc
+-rw-r--r-- root root 9871 ./usr/lib/python3.8/__pycache__/csv.cpython-38.opt-2.pyc
+-rw-r--r-- root root 11910 ./usr/lib/python3.8/__pycache__/csv.cpython-38.pyc
+-rw-r--r-- root root 55741 ./usr/lib/python3.8/__pycache__/datetime.cpython-38.opt-1.pyc
+-rw-r--r-- root root 47501 ./usr/lib/python3.8/__pycache__/datetime.cpython-38.opt-2.pyc
+-rw-r--r-- root root 56978 ./usr/lib/python3.8/__pycache__/datetime.cpython-38.pyc
+-rw-r--r-- root root 15802 ./usr/lib/python3.8/__pycache__/dis.cpython-38.opt-1.pyc
+-rw-r--r-- root root 11995 ./usr/lib/python3.8/__pycache__/dis.cpython-38.opt-2.pyc
+-rw-r--r-- root root 15802 ./usr/lib/python3.8/__pycache__/dis.cpython-38.pyc
+-rw-r--r-- root root 6037 ./usr/lib/python3.8/__pycache__/_dummy_thread.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3392 ./usr/lib/python3.8/__pycache__/_dummy_thread.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6037 ./usr/lib/python3.8/__pycache__/_dummy_thread.cpython-38.pyc
+-rw-r--r-- root root 24399 ./usr/lib/python3.8/__pycache__/enum.cpython-38.opt-1.pyc
+-rw-r--r-- root root 20110 ./usr/lib/python3.8/__pycache__/enum.cpython-38.opt-2.pyc
+-rw-r--r-- root root 24399 ./usr/lib/python3.8/__pycache__/enum.cpython-38.pyc
+-rw-r--r-- root root 3332 ./usr/lib/python3.8/__pycache__/fnmatch.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2147 ./usr/lib/python3.8/__pycache__/fnmatch.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3332 ./usr/lib/python3.8/__pycache__/fnmatch.cpython-38.pyc
+-rw-r--r-- root root 27849 ./usr/lib/python3.8/__pycache__/ftplib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 18116 ./usr/lib/python3.8/__pycache__/ftplib.cpython-38.opt-2.pyc
+-rw-r--r-- root root 27849 ./usr/lib/python3.8/__pycache__/ftplib.cpython-38.pyc
+-rw-r--r-- root root 27901 ./usr/lib/python3.8/__pycache__/functools.cpython-38.opt-1.pyc
+-rw-r--r-- root root 21248 ./usr/lib/python3.8/__pycache__/functools.cpython-38.opt-2.pyc
+-rw-r--r-- root root 27901 ./usr/lib/python3.8/__pycache__/functools.cpython-38.pyc
+-rw-r--r-- root root 4131 ./usr/lib/python3.8/__pycache__/__future__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2159 ./usr/lib/python3.8/__pycache__/__future__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 4131 ./usr/lib/python3.8/__pycache__/__future__.cpython-38.pyc
+-rw-r--r-- root root 4001 ./usr/lib/python3.8/__pycache__/genericpath.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2865 ./usr/lib/python3.8/__pycache__/genericpath.cpython-38.opt-2.pyc
+-rw-r--r-- root root 4001 ./usr/lib/python3.8/__pycache__/genericpath.cpython-38.pyc
+-rw-r--r-- root root 6237 ./usr/lib/python3.8/__pycache__/getopt.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3683 ./usr/lib/python3.8/__pycache__/getopt.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6271 ./usr/lib/python3.8/__pycache__/getopt.cpython-38.pyc
+-rw-r--r-- root root 17883 ./usr/lib/python3.8/__pycache__/gettext.cpython-38.opt-1.pyc
+-rw-r--r-- root root 17192 ./usr/lib/python3.8/__pycache__/gettext.cpython-38.opt-2.pyc
+-rw-r--r-- root root 17883 ./usr/lib/python3.8/__pycache__/gettext.cpython-38.pyc
+-rw-r--r-- root root 4278 ./usr/lib/python3.8/__pycache__/glob.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3418 ./usr/lib/python3.8/__pycache__/glob.cpython-38.opt-2.pyc
+-rw-r--r-- root root 4343 ./usr/lib/python3.8/__pycache__/glob.cpython-38.pyc
+-rw-r--r-- root root 18191 ./usr/lib/python3.8/__pycache__/gzip.cpython-38.opt-1.pyc
+-rw-r--r-- root root 14323 ./usr/lib/python3.8/__pycache__/gzip.cpython-38.opt-2.pyc
+-rw-r--r-- root root 18191 ./usr/lib/python3.8/__pycache__/gzip.cpython-38.pyc
+-rw-r--r-- root root 6727 ./usr/lib/python3.8/__pycache__/hashlib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6159 ./usr/lib/python3.8/__pycache__/hashlib.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6727 ./usr/lib/python3.8/__pycache__/hashlib.cpython-38.pyc
+-rw-r--r-- root root 14070 ./usr/lib/python3.8/__pycache__/heapq.cpython-38.opt-1.pyc
+-rw-r--r-- root root 11054 ./usr/lib/python3.8/__pycache__/heapq.cpython-38.opt-2.pyc
+-rw-r--r-- root root 14070 ./usr/lib/python3.8/__pycache__/heapq.cpython-38.pyc
+-rw-r--r-- root root 6388 ./usr/lib/python3.8/__pycache__/hmac.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3871 ./usr/lib/python3.8/__pycache__/hmac.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6388 ./usr/lib/python3.8/__pycache__/hmac.cpython-38.pyc
+-rw-r--r-- root root 39159 ./usr/lib/python3.8/__pycache__/imaplib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 27182 ./usr/lib/python3.8/__pycache__/imaplib.cpython-38.opt-2.pyc
+-rw-r--r-- root root 41342 ./usr/lib/python3.8/__pycache__/imaplib.cpython-38.pyc
+-rw-r--r-- root root 9809 ./usr/lib/python3.8/__pycache__/imp.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7444 ./usr/lib/python3.8/__pycache__/imp.cpython-38.opt-2.pyc
+-rw-r--r-- root root 9809 ./usr/lib/python3.8/__pycache__/imp.cpython-38.pyc
+-rw-r--r-- root root 80098 ./usr/lib/python3.8/__pycache__/inspect.cpython-38.opt-1.pyc
+-rw-r--r-- root root 54985 ./usr/lib/python3.8/__pycache__/inspect.cpython-38.opt-2.pyc
+-rw-r--r-- root root 80383 ./usr/lib/python3.8/__pycache__/inspect.cpython-38.pyc
+-rw-r--r-- root root 3454 ./usr/lib/python3.8/__pycache__/io.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1965 ./usr/lib/python3.8/__pycache__/io.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3454 ./usr/lib/python3.8/__pycache__/io.cpython-38.pyc
+-rw-r--r-- root root 59559 ./usr/lib/python3.8/__pycache__/ipaddress.cpython-38.opt-1.pyc
+-rw-r--r-- root root 35711 ./usr/lib/python3.8/__pycache__/ipaddress.cpython-38.opt-2.pyc
+-rw-r--r-- root root 59559 ./usr/lib/python3.8/__pycache__/ipaddress.cpython-38.pyc
+-rw-r--r-- root root 998 ./usr/lib/python3.8/__pycache__/keyword.cpython-38.opt-1.pyc
+-rw-r--r-- root root 571 ./usr/lib/python3.8/__pycache__/keyword.cpython-38.opt-2.pyc
+-rw-r--r-- root root 998 ./usr/lib/python3.8/__pycache__/keyword.cpython-38.pyc
+-rw-r--r-- root root 3839 ./usr/lib/python3.8/__pycache__/linecache.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2734 ./usr/lib/python3.8/__pycache__/linecache.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3839 ./usr/lib/python3.8/__pycache__/linecache.cpython-38.pyc
+-rw-r--r-- root root 34689 ./usr/lib/python3.8/__pycache__/locale.cpython-38.opt-1.pyc
+-rw-r--r-- root root 30074 ./usr/lib/python3.8/__pycache__/locale.cpython-38.opt-2.pyc
+-rw-r--r-- root root 34689 ./usr/lib/python3.8/__pycache__/locale.cpython-38.pyc
+-rw-r--r-- root root 12018 ./usr/lib/python3.8/__pycache__/lzma.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5849 ./usr/lib/python3.8/__pycache__/lzma.cpython-38.opt-2.pyc
+-rw-r--r-- root root 12018 ./usr/lib/python3.8/__pycache__/lzma.cpython-38.pyc
+-rw-r--r-- root root 7618 ./usr/lib/python3.8/__pycache__/_markupbase.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7240 ./usr/lib/python3.8/__pycache__/_markupbase.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7790 ./usr/lib/python3.8/__pycache__/_markupbase.cpython-38.pyc
+-rw-r--r-- root root 15988 ./usr/lib/python3.8/__pycache__/mimetypes.cpython-38.opt-1.pyc
+-rw-r--r-- root root 9973 ./usr/lib/python3.8/__pycache__/mimetypes.cpython-38.opt-2.pyc
+-rw-r--r-- root root 15988 ./usr/lib/python3.8/__pycache__/mimetypes.cpython-38.pyc
+-rw-r--r-- root root 33974 ./usr/lib/python3.8/__pycache__/nntplib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 21464 ./usr/lib/python3.8/__pycache__/nntplib.cpython-38.opt-2.pyc
+-rw-r--r-- root root 33974 ./usr/lib/python3.8/__pycache__/nntplib.cpython-38.pyc
+-rw-r--r-- root root 14657 ./usr/lib/python3.8/__pycache__/ntpath.cpython-38.opt-1.pyc
+-rw-r--r-- root root 12606 ./usr/lib/python3.8/__pycache__/ntpath.cpython-38.opt-2.pyc
+-rw-r--r-- root root 14657 ./usr/lib/python3.8/__pycache__/ntpath.cpython-38.pyc
+-rw-r--r-- root root 5420 ./usr/lib/python3.8/__pycache__/opcode.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5280 ./usr/lib/python3.8/__pycache__/opcode.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5420 ./usr/lib/python3.8/__pycache__/opcode.cpython-38.pyc
+-rw-r--r-- root root 13691 ./usr/lib/python3.8/__pycache__/operator.cpython-38.opt-1.pyc
+-rw-r--r-- root root 11322 ./usr/lib/python3.8/__pycache__/operator.cpython-38.opt-2.pyc
+-rw-r--r-- root root 13691 ./usr/lib/python3.8/__pycache__/operator.cpython-38.pyc
+-rw-r--r-- root root 47974 ./usr/lib/python3.8/__pycache__/optparse.cpython-38.opt-1.pyc
+-rw-r--r-- root root 35659 ./usr/lib/python3.8/__pycache__/optparse.cpython-38.opt-2.pyc
+-rw-r--r-- root root 48057 ./usr/lib/python3.8/__pycache__/optparse.cpython-38.pyc
+-rw-r--r-- root root 31365 ./usr/lib/python3.8/__pycache__/os.cpython-38.opt-1.pyc
+-rw-r--r-- root root 19174 ./usr/lib/python3.8/__pycache__/os.cpython-38.opt-2.pyc
+-rw-r--r-- root root 31397 ./usr/lib/python3.8/__pycache__/os.cpython-38.pyc
+-rw-r--r-- root root 43552 ./usr/lib/python3.8/__pycache__/pathlib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 35495 ./usr/lib/python3.8/__pycache__/pathlib.cpython-38.opt-2.pyc
+-rw-r--r-- root root 43552 ./usr/lib/python3.8/__pycache__/pathlib.cpython-38.pyc
+-rw-r--r-- root root 46761 ./usr/lib/python3.8/__pycache__/pickle.cpython-38.opt-1.pyc
+-rw-r--r-- root root 40889 ./usr/lib/python3.8/__pycache__/pickle.cpython-38.opt-2.pyc
+-rw-r--r-- root root 46878 ./usr/lib/python3.8/__pycache__/pickle.cpython-38.pyc
+-rw-r--r-- root root 66314 ./usr/lib/python3.8/__pycache__/pickletools.cpython-38.opt-1.pyc
+-rw-r--r-- root root 57221 ./usr/lib/python3.8/__pycache__/pickletools.cpython-38.opt-2.pyc
+-rw-r--r-- root root 67204 ./usr/lib/python3.8/__pycache__/pickletools.cpython-38.pyc
+-rw-r--r-- root root 7795 ./usr/lib/python3.8/__pycache__/pipes.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4928 ./usr/lib/python3.8/__pycache__/pipes.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7795 ./usr/lib/python3.8/__pycache__/pipes.cpython-38.pyc
+-rw-r--r-- root root 16309 ./usr/lib/python3.8/__pycache__/pkgutil.cpython-38.opt-1.pyc
+-rw-r--r-- root root 11053 ./usr/lib/python3.8/__pycache__/pkgutil.cpython-38.opt-2.pyc
+-rw-r--r-- root root 16309 ./usr/lib/python3.8/__pycache__/pkgutil.cpython-38.pyc
+-rw-r--r-- root root 24240 ./usr/lib/python3.8/__pycache__/platform.cpython-38.opt-1.pyc
+-rw-r--r-- root root 16364 ./usr/lib/python3.8/__pycache__/platform.cpython-38.opt-2.pyc
+-rw-r--r-- root root 24240 ./usr/lib/python3.8/__pycache__/platform.cpython-38.pyc
+-rw-r--r-- root root 13459 ./usr/lib/python3.8/__pycache__/poplib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 8528 ./usr/lib/python3.8/__pycache__/poplib.cpython-38.opt-2.pyc
+-rw-r--r-- root root 13459 ./usr/lib/python3.8/__pycache__/poplib.cpython-38.pyc
+-rw-r--r-- root root 10428 ./usr/lib/python3.8/__pycache__/posixpath.cpython-38.opt-1.pyc
+-rw-r--r-- root root 8713 ./usr/lib/python3.8/__pycache__/posixpath.cpython-38.opt-2.pyc
+-rw-r--r-- root root 10428 ./usr/lib/python3.8/__pycache__/posixpath.cpython-38.pyc
+-rw-r--r-- root root 74059 ./usr/lib/python3.8/__pycache__/_pyio.cpython-38.opt-1.pyc
+-rw-r--r-- root root 51166 ./usr/lib/python3.8/__pycache__/_pyio.cpython-38.opt-2.pyc
+-rw-r--r-- root root 74079 ./usr/lib/python3.8/__pycache__/_pyio.cpython-38.pyc
+-rw-r--r-- root root 10626 ./usr/lib/python3.8/__pycache__/queue.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6289 ./usr/lib/python3.8/__pycache__/queue.cpython-38.opt-2.pyc
+-rw-r--r-- root root 10626 ./usr/lib/python3.8/__pycache__/queue.cpython-38.pyc
+-rw-r--r-- root root 5573 ./usr/lib/python3.8/__pycache__/quopri.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4537 ./usr/lib/python3.8/__pycache__/quopri.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5748 ./usr/lib/python3.8/__pycache__/quopri.cpython-38.pyc
+-rw-r--r-- root root 20108 ./usr/lib/python3.8/__pycache__/random.cpython-38.opt-1.pyc
+-rw-r--r-- root root 13132 ./usr/lib/python3.8/__pycache__/random.cpython-38.opt-2.pyc
+-rw-r--r-- root root 20108 ./usr/lib/python3.8/__pycache__/random.cpython-38.pyc
+-rw-r--r-- root root 14422 ./usr/lib/python3.8/__pycache__/re.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6084 ./usr/lib/python3.8/__pycache__/re.cpython-38.opt-2.pyc
+-rw-r--r-- root root 14422 ./usr/lib/python3.8/__pycache__/re.cpython-38.pyc
+-rw-r--r-- root root 5303 ./usr/lib/python3.8/__pycache__/reprlib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5147 ./usr/lib/python3.8/__pycache__/reprlib.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5303 ./usr/lib/python3.8/__pycache__/reprlib.cpython-38.pyc
+-rw-r--r-- root root 5755 ./usr/lib/python3.8/__pycache__/rlcompleter.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3092 ./usr/lib/python3.8/__pycache__/rlcompleter.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5755 ./usr/lib/python3.8/__pycache__/rlcompleter.cpython-38.pyc
+-rw-r--r-- root root 8181 ./usr/lib/python3.8/__pycache__/runpy.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6615 ./usr/lib/python3.8/__pycache__/runpy.cpython-38.opt-2.pyc
+-rw-r--r-- root root 8181 ./usr/lib/python3.8/__pycache__/runpy.cpython-38.pyc
+-rw-r--r-- root root 16935 ./usr/lib/python3.8/__pycache__/selectors.cpython-38.opt-1.pyc
+-rw-r--r-- root root 12900 ./usr/lib/python3.8/__pycache__/selectors.cpython-38.opt-2.pyc
+-rw-r--r-- root root 16935 ./usr/lib/python3.8/__pycache__/selectors.cpython-38.pyc
+-rw-r--r-- root root 9490 ./usr/lib/python3.8/__pycache__/shelve.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5339 ./usr/lib/python3.8/__pycache__/shelve.cpython-38.opt-2.pyc
+-rw-r--r-- root root 9490 ./usr/lib/python3.8/__pycache__/shelve.cpython-38.pyc
+-rw-r--r-- root root 7536 ./usr/lib/python3.8/__pycache__/shlex.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6979 ./usr/lib/python3.8/__pycache__/shlex.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7536 ./usr/lib/python3.8/__pycache__/shlex.cpython-38.pyc
+-rw-r--r-- root root 36569 ./usr/lib/python3.8/__pycache__/shutil.cpython-38.opt-1.pyc
+-rw-r--r-- root root 25114 ./usr/lib/python3.8/__pycache__/shutil.cpython-38.opt-2.pyc
+-rw-r--r-- root root 36569 ./usr/lib/python3.8/__pycache__/shutil.cpython-38.pyc
+-rw-r--r-- root root 2843 ./usr/lib/python3.8/__pycache__/signal.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2619 ./usr/lib/python3.8/__pycache__/signal.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2843 ./usr/lib/python3.8/__pycache__/signal.cpython-38.pyc
+-rw-r--r-- root root 3481 ./usr/lib/python3.8/__pycache__/_sitebuiltins.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2957 ./usr/lib/python3.8/__pycache__/_sitebuiltins.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3481 ./usr/lib/python3.8/__pycache__/_sitebuiltins.cpython-38.pyc
+-rw-r--r-- root root 16700 ./usr/lib/python3.8/__pycache__/site.cpython-38.opt-1.pyc
+-rw-r--r-- root root 11164 ./usr/lib/python3.8/__pycache__/site.cpython-38.opt-2.pyc
+-rw-r--r-- root root 16700 ./usr/lib/python3.8/__pycache__/site.cpython-38.pyc
+-rw-r--r-- root root 35252 ./usr/lib/python3.8/__pycache__/smtplib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 18892 ./usr/lib/python3.8/__pycache__/smtplib.cpython-38.opt-2.pyc
+-rw-r--r-- root root 35313 ./usr/lib/python3.8/__pycache__/smtplib.cpython-38.pyc
+-rw-r--r-- root root 27747 ./usr/lib/python3.8/__pycache__/socket.cpython-38.opt-1.pyc
+-rw-r--r-- root root 19424 ./usr/lib/python3.8/__pycache__/socket.cpython-38.opt-2.pyc
+-rw-r--r-- root root 27787 ./usr/lib/python3.8/__pycache__/socket.cpython-38.pyc
+-rw-r--r-- root root 14916 ./usr/lib/python3.8/__pycache__/sre_compile.cpython-38.opt-1.pyc
+-rw-r--r-- root root 14502 ./usr/lib/python3.8/__pycache__/sre_compile.cpython-38.opt-2.pyc
+-rw-r--r-- root root 15142 ./usr/lib/python3.8/__pycache__/sre_compile.cpython-38.pyc
+-rw-r--r-- root root 6359 ./usr/lib/python3.8/__pycache__/sre_constants.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5934 ./usr/lib/python3.8/__pycache__/sre_constants.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6359 ./usr/lib/python3.8/__pycache__/sre_constants.cpython-38.pyc
+-rw-r--r-- root root 21600 ./usr/lib/python3.8/__pycache__/sre_parse.cpython-38.opt-1.pyc
+-rw-r--r-- root root 21552 ./usr/lib/python3.8/__pycache__/sre_parse.cpython-38.opt-2.pyc
+-rw-r--r-- root root 21647 ./usr/lib/python3.8/__pycache__/sre_parse.cpython-38.pyc
+-rw-r--r-- root root 44596 ./usr/lib/python3.8/__pycache__/ssl.cpython-38.opt-1.pyc
+-rw-r--r-- root root 33618 ./usr/lib/python3.8/__pycache__/ssl.cpython-38.opt-2.pyc
+-rw-r--r-- root root 44596 ./usr/lib/python3.8/__pycache__/ssl.cpython-38.pyc
+-rw-r--r-- root root 4372 ./usr/lib/python3.8/__pycache__/stat.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3589 ./usr/lib/python3.8/__pycache__/stat.cpython-38.opt-2.pyc
+-rw-r--r-- root root 4372 ./usr/lib/python3.8/__pycache__/stat.cpython-38.pyc
+-rw-r--r-- root root 7300 ./usr/lib/python3.8/__pycache__/string.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6194 ./usr/lib/python3.8/__pycache__/string.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7300 ./usr/lib/python3.8/__pycache__/string.cpython-38.pyc
+-rw-r--r-- root root 10959 ./usr/lib/python3.8/__pycache__/stringprep.cpython-38.opt-1.pyc
+-rw-r--r-- root root 10739 ./usr/lib/python3.8/__pycache__/stringprep.cpython-38.opt-2.pyc
+-rw-r--r-- root root 11017 ./usr/lib/python3.8/__pycache__/stringprep.cpython-38.pyc
+-rw-r--r-- root root 16044 ./usr/lib/python3.8/__pycache__/_strptime.cpython-38.opt-1.pyc
+-rw-r--r-- root root 12316 ./usr/lib/python3.8/__pycache__/_strptime.cpython-38.opt-2.pyc
+-rw-r--r-- root root 16044 ./usr/lib/python3.8/__pycache__/_strptime.cpython-38.pyc
+-rw-r--r-- root root 330 ./usr/lib/python3.8/__pycache__/struct.cpython-38.opt-1.pyc
+-rw-r--r-- root root 330 ./usr/lib/python3.8/__pycache__/struct.cpython-38.opt-2.pyc
+-rw-r--r-- root root 330 ./usr/lib/python3.8/__pycache__/struct.cpython-38.pyc
+-rw-r--r-- root root 41843 ./usr/lib/python3.8/__pycache__/subprocess.cpython-38.opt-1.pyc
+-rw-r--r-- root root 29913 ./usr/lib/python3.8/__pycache__/subprocess.cpython-38.opt-2.pyc
+-rw-r--r-- root root 41940 ./usr/lib/python3.8/__pycache__/subprocess.cpython-38.pyc
+-rw-r--r-- root root 2404 ./usr/lib/python3.8/__pycache__/symbol.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2328 ./usr/lib/python3.8/__pycache__/symbol.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2404 ./usr/lib/python3.8/__pycache__/symbol.cpython-38.pyc
+-rw-r--r-- root root 15462 ./usr/lib/python3.8/__pycache__/sysconfig.cpython-38.opt-1.pyc
+-rw-r--r-- root root 13084 ./usr/lib/python3.8/__pycache__/sysconfig.cpython-38.opt-2.pyc
+-rw-r--r-- root root 15462 ./usr/lib/python3.8/__pycache__/sysconfig.cpython-38.pyc
+-rw-r--r-- root root 62519 ./usr/lib/python3.8/__pycache__/tarfile.cpython-38.opt-1.pyc
+-rw-r--r-- root root 48629 ./usr/lib/python3.8/__pycache__/tarfile.cpython-38.opt-2.pyc
+-rw-r--r-- root root 62550 ./usr/lib/python3.8/__pycache__/tarfile.cpython-38.pyc
+-rw-r--r-- root root 18237 ./usr/lib/python3.8/__pycache__/telnetlib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 10735 ./usr/lib/python3.8/__pycache__/telnetlib.cpython-38.opt-2.pyc
+-rw-r--r-- root root 18237 ./usr/lib/python3.8/__pycache__/telnetlib.cpython-38.pyc
+-rw-r--r-- root root 23455 ./usr/lib/python3.8/__pycache__/tempfile.cpython-38.opt-1.pyc
+-rw-r--r-- root root 16871 ./usr/lib/python3.8/__pycache__/tempfile.cpython-38.opt-2.pyc
+-rw-r--r-- root root 23455 ./usr/lib/python3.8/__pycache__/tempfile.cpython-38.pyc
+-rw-r--r-- root root 13445 ./usr/lib/python3.8/__pycache__/textwrap.cpython-38.opt-1.pyc
+-rw-r--r-- root root 6236 ./usr/lib/python3.8/__pycache__/textwrap.cpython-38.opt-2.pyc
+-rw-r--r-- root root 13519 ./usr/lib/python3.8/__pycache__/textwrap.cpython-38.pyc
+-rw-r--r-- root root 39425 ./usr/lib/python3.8/__pycache__/threading.cpython-38.opt-1.pyc
+-rw-r--r-- root root 22848 ./usr/lib/python3.8/__pycache__/threading.cpython-38.opt-2.pyc
+-rw-r--r-- root root 39976 ./usr/lib/python3.8/__pycache__/threading.cpython-38.pyc
+-rw-r--r-- root root 6446 ./usr/lib/python3.8/__pycache__/_threading_local.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3126 ./usr/lib/python3.8/__pycache__/_threading_local.cpython-38.opt-2.pyc
+-rw-r--r-- root root 6446 ./usr/lib/python3.8/__pycache__/_threading_local.cpython-38.pyc
+-rw-r--r-- root root 2485 ./usr/lib/python3.8/__pycache__/token.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2452 ./usr/lib/python3.8/__pycache__/token.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2485 ./usr/lib/python3.8/__pycache__/token.cpython-38.pyc
+-rw-r--r-- root root 17116 ./usr/lib/python3.8/__pycache__/tokenize.cpython-38.opt-1.pyc
+-rw-r--r-- root root 13352 ./usr/lib/python3.8/__pycache__/tokenize.cpython-38.opt-2.pyc
+-rw-r--r-- root root 17160 ./usr/lib/python3.8/__pycache__/tokenize.cpython-38.pyc
+-rw-r--r-- root root 19889 ./usr/lib/python3.8/__pycache__/traceback.cpython-38.opt-1.pyc
+-rw-r--r-- root root 10986 ./usr/lib/python3.8/__pycache__/traceback.cpython-38.opt-2.pyc
+-rw-r--r-- root root 19889 ./usr/lib/python3.8/__pycache__/traceback.cpython-38.pyc
+-rw-r--r-- root root 9177 ./usr/lib/python3.8/__pycache__/types.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7955 ./usr/lib/python3.8/__pycache__/types.cpython-38.opt-2.pyc
+-rw-r--r-- root root 9177 ./usr/lib/python3.8/__pycache__/types.cpython-38.pyc
+-rw-r--r-- root root 3605 ./usr/lib/python3.8/__pycache__/uu.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3361 ./usr/lib/python3.8/__pycache__/uu.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3605 ./usr/lib/python3.8/__pycache__/uu.cpython-38.pyc
+-rw-r--r-- root root 23532 ./usr/lib/python3.8/__pycache__/uuid.cpython-38.opt-1.pyc
+-rw-r--r-- root root 16376 ./usr/lib/python3.8/__pycache__/uuid.cpython-38.opt-2.pyc
+-rw-r--r-- root root 23666 ./usr/lib/python3.8/__pycache__/uuid.cpython-38.pyc
+-rw-r--r-- root root 13192 ./usr/lib/python3.8/__pycache__/warnings.cpython-38.opt-1.pyc
+-rw-r--r-- root root 10917 ./usr/lib/python3.8/__pycache__/warnings.cpython-38.opt-2.pyc
+-rw-r--r-- root root 13652 ./usr/lib/python3.8/__pycache__/warnings.cpython-38.pyc
+-rw-r--r-- root root 19488 ./usr/lib/python3.8/__pycache__/weakref.cpython-38.opt-1.pyc
+-rw-r--r-- root root 16204 ./usr/lib/python3.8/__pycache__/weakref.cpython-38.opt-2.pyc
+-rw-r--r-- root root 19518 ./usr/lib/python3.8/__pycache__/weakref.cpython-38.pyc
+-rw-r--r-- root root 7600 ./usr/lib/python3.8/__pycache__/_weakrefset.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7600 ./usr/lib/python3.8/__pycache__/_weakrefset.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7600 ./usr/lib/python3.8/__pycache__/_weakrefset.cpython-38.pyc
+-rw-r--r-- root root 58420 ./usr/lib/python3.8/__pycache__/zipfile.cpython-38.opt-1.pyc
+-rw-r--r-- root root 49731 ./usr/lib/python3.8/__pycache__/zipfile.cpython-38.opt-2.pyc
+-rw-r--r-- root root 58457 ./usr/lib/python3.8/__pycache__/zipfile.cpython-38.pyc
+-rw-r--r-- root root 93177 ./usr/lib/python3.8/_pyio.py
+-rw-r--r-- root root 11356 ./usr/lib/python3.8/queue.py
+-rwxr-xr-x root root 7254 ./usr/lib/python3.8/quopri.py
+-rw-r--r-- root root 28802 ./usr/lib/python3.8/random.py
+-rw-r--r-- root root 5267 ./usr/lib/python3.8/reprlib.py
+-rw-r--r-- root root 15861 ./usr/lib/python3.8/re.py
+-rw-r--r-- root root 7097 ./usr/lib/python3.8/rlcompleter.py
+-rw-r--r-- root root 12052 ./usr/lib/python3.8/runpy.py
+-rw-r--r-- root root 18561 ./usr/lib/python3.8/selectors.py
+-rw-r--r-- root root 8527 ./usr/lib/python3.8/shelve.py
+-rw-r--r-- root root 13325 ./usr/lib/python3.8/shlex.py
+-rw-r--r-- root root 50752 ./usr/lib/python3.8/shutil.py
+-rw-r--r-- root root 2273 ./usr/lib/python3.8/signal.py
+-rw-r--r-- root root 3115 ./usr/lib/python3.8/_sitebuiltins.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/btrfsutil-1.2.0-py3.8.egg-info
+-rw-r--r-- root root 1 ./usr/lib/python3.8/site-packages/btrfsutil-1.2.0-py3.8.egg-info/dependency_links.txt
+-rw-r--r-- root root 242 ./usr/lib/python3.8/site-packages/btrfsutil-1.2.0-py3.8.egg-info/PKG-INFO
+-rw-r--r-- root root 203 ./usr/lib/python3.8/site-packages/btrfsutil-1.2.0-py3.8.egg-info/SOURCES.txt
+-rw-r--r-- root root 10 ./usr/lib/python3.8/site-packages/btrfsutil-1.2.0-py3.8.egg-info/top_level.txt
+-rwxr-xr-x root root 45936 ./usr/lib/python3.8/site-packages/btrfsutil.cpython-38-x86_64-linux-gnu.so
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/cairo
+-rwxr-xr-x root root 220616 ./usr/lib/python3.8/site-packages/cairo/_cairo.cpython-38-x86_64-linux-gnu.so
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/cairo/include
+-rw-r--r-- root root 9152 ./usr/lib/python3.8/site-packages/cairo/include/py3cairo.h
+-rwxr-xr-x root root 660 ./usr/lib/python3.8/site-packages/cairo/__init__.py
+-rw-r--r-- root root 33334 ./usr/lib/python3.8/site-packages/cairo/__init__.pyi
+-rw-r--r-- root root 0 ./usr/lib/python3.8/site-packages/cairo/py.typed
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/dbus
+-rwxr-xr-x root root 167752 ./usr/lib/python3.8/site-packages/_dbus_bindings.so
+-rw-r--r-- root root 17960 ./usr/lib/python3.8/site-packages/dbus/bus.py
+-rw-r--r-- root root 148 ./usr/lib/python3.8/site-packages/dbus/_compat.py
+-rw-r--r-- root root 27806 ./usr/lib/python3.8/site-packages/dbus/connection.py
+-rw-r--r-- root root 8837 ./usr/lib/python3.8/site-packages/dbus/_dbus.py
+-rw-r--r-- root root 15240 ./usr/lib/python3.8/site-packages/dbus/decorators.py
+-rw-r--r-- root root 4707 ./usr/lib/python3.8/site-packages/dbus/exceptions.py
+-rw-r--r-- root root 3409 ./usr/lib/python3.8/site-packages/dbus/_expat_introspect_parser.py
+-rw-r--r-- root root 3517 ./usr/lib/python3.8/site-packages/dbus/gi_service.py
+-rwxr-xr-x root root 22736 ./usr/lib/python3.8/site-packages/_dbus_glib_bindings.so
+-rw-r--r-- root root 2130 ./usr/lib/python3.8/site-packages/dbus/glib.py
+-rw-r--r-- root root 3756 ./usr/lib/python3.8/site-packages/dbus/__init__.py
+-rw-r--r-- root root 1864 ./usr/lib/python3.8/site-packages/dbus/lowlevel.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/dbus/mainloop
+-rw-r--r-- root root 1806 ./usr/lib/python3.8/site-packages/dbus/mainloop/glib.py
+-rw-r--r-- root root 2369 ./usr/lib/python3.8/site-packages/dbus/mainloop/__init__.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/dbus/mainloop/__pycache__
+-rw-r--r-- root root 655 ./usr/lib/python3.8/site-packages/dbus/mainloop/__pycache__/glib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 655 ./usr/lib/python3.8/site-packages/dbus/mainloop/__pycache__/glib.cpython-38.pyc
+-rw-r--r-- root root 435 ./usr/lib/python3.8/site-packages/dbus/mainloop/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 435 ./usr/lib/python3.8/site-packages/dbus/mainloop/__pycache__/__init__.cpython-38.pyc
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/dbusmock
+-rw-r--r-- root root 856 ./usr/lib/python3.8/site-packages/dbusmock/__init__.py
+-rw-r--r-- root root 4533 ./usr/lib/python3.8/site-packages/dbusmock/__main__.py
+-rw-r--r-- root root 28848 ./usr/lib/python3.8/site-packages/dbusmock/mockobject.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/dbusmock/__pycache__
+-rw-r--r-- root root 641 ./usr/lib/python3.8/site-packages/dbusmock/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 3142 ./usr/lib/python3.8/site-packages/dbusmock/__pycache__/__main__.cpython-38.pyc
+-rw-r--r-- root root 22372 ./usr/lib/python3.8/site-packages/dbusmock/__pycache__/mockobject.cpython-38.pyc
+-rw-r--r-- root root 7903 ./usr/lib/python3.8/site-packages/dbusmock/__pycache__/testcase.cpython-38.pyc
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/dbusmock/templates
+-rw-r--r-- root root 16490 ./usr/lib/python3.8/site-packages/dbusmock/templates/bluez4.py
+-rw-r--r-- root root 10784 ./usr/lib/python3.8/site-packages/dbusmock/templates/bluez5-obex.py
+-rw-r--r-- root root 15264 ./usr/lib/python3.8/site-packages/dbusmock/templates/bluez5.py
+-rw-r--r-- root root 1250 ./usr/lib/python3.8/site-packages/dbusmock/templates/gnome_screensaver.py
+-rw-r--r-- root root 382 ./usr/lib/python3.8/site-packages/dbusmock/templates/__init__.py
+-rw-r--r-- root root 10765 ./usr/lib/python3.8/site-packages/dbusmock/templates/logind.py
+-rw-r--r-- root root 1139 ./usr/lib/python3.8/site-packages/dbusmock/templates/low_memory_monitor.py
+-rw-r--r-- root root 34680 ./usr/lib/python3.8/site-packages/dbusmock/templates/networkmanager.py
+-rw-r--r-- root root 1777 ./usr/lib/python3.8/site-packages/dbusmock/templates/notification_daemon.py
+-rw-r--r-- root root 18046 ./usr/lib/python3.8/site-packages/dbusmock/templates/ofono.py
+-rw-r--r-- root root 2089 ./usr/lib/python3.8/site-packages/dbusmock/templates/polkitd.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__
+-rw-r--r-- root root 10255 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/bluez4.cpython-38.pyc
+-rw-r--r-- root root 9287 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/bluez5.cpython-38.pyc
+-rw-r--r-- root root 7996 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/bluez5-obex.cpython-38.pyc
+-rw-r--r-- root root 1052 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/gnome_screensaver.cpython-38.pyc
+-rw-r--r-- root root 206 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 6563 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/logind.cpython-38.pyc
+-rw-r--r-- root root 1111 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/low_memory_monitor.cpython-38.pyc
+-rw-r--r-- root root 23374 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/networkmanager.cpython-38.pyc
+-rw-r--r-- root root 1419 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/notification_daemon.cpython-38.pyc
+-rw-r--r-- root root 9250 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/ofono.cpython-38.pyc
+-rw-r--r-- root root 1890 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/polkitd.cpython-38.pyc
+-rw-r--r-- root root 1342 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/timedated.cpython-38.pyc
+-rw-r--r-- root root 6843 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/upower.cpython-38.pyc
+-rw-r--r-- root root 2520 ./usr/lib/python3.8/site-packages/dbusmock/templates/__pycache__/urfkill.cpython-38.pyc
+-rw-r--r-- root root 1796 ./usr/lib/python3.8/site-packages/dbusmock/templates/timedated.py
+-rw-r--r-- root root 10801 ./usr/lib/python3.8/site-packages/dbusmock/templates/upower.py
+-rw-r--r-- root root 3709 ./usr/lib/python3.8/site-packages/dbusmock/templates/urfkill.py
+-rw-r--r-- root root 9445 ./usr/lib/python3.8/site-packages/dbusmock/testcase.py
+-rw-r--r-- root root 24821 ./usr/lib/python3.8/site-packages/dbus/proxies.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/dbus/__pycache__
+-rw-r--r-- root root 13609 ./usr/lib/python3.8/site-packages/dbus/__pycache__/bus.cpython-38.opt-1.pyc
+-rw-r--r-- root root 13609 ./usr/lib/python3.8/site-packages/dbus/__pycache__/bus.cpython-38.pyc
+-rw-r--r-- root root 218 ./usr/lib/python3.8/site-packages/dbus/__pycache__/_compat.cpython-38.opt-1.pyc
+-rw-r--r-- root root 218 ./usr/lib/python3.8/site-packages/dbus/__pycache__/_compat.cpython-38.pyc
+-rw-r--r-- root root 17806 ./usr/lib/python3.8/site-packages/dbus/__pycache__/connection.cpython-38.opt-1.pyc
+-rw-r--r-- root root 17806 ./usr/lib/python3.8/site-packages/dbus/__pycache__/connection.cpython-38.pyc
+-rw-r--r-- root root 7385 ./usr/lib/python3.8/site-packages/dbus/__pycache__/_dbus.cpython-38.opt-1.pyc
+-rw-r--r-- root root 7385 ./usr/lib/python3.8/site-packages/dbus/__pycache__/_dbus.cpython-38.pyc
+-rw-r--r-- root root 11569 ./usr/lib/python3.8/site-packages/dbus/__pycache__/decorators.cpython-38.opt-1.pyc
+-rw-r--r-- root root 11569 ./usr/lib/python3.8/site-packages/dbus/__pycache__/decorators.cpython-38.pyc
+-rw-r--r-- root root 3916 ./usr/lib/python3.8/site-packages/dbus/__pycache__/exceptions.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3916 ./usr/lib/python3.8/site-packages/dbus/__pycache__/exceptions.cpython-38.pyc
+-rw-r--r-- root root 2206 ./usr/lib/python3.8/site-packages/dbus/__pycache__/_expat_introspect_parser.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2206 ./usr/lib/python3.8/site-packages/dbus/__pycache__/_expat_introspect_parser.cpython-38.pyc
+-rw-r--r-- root root 1954 ./usr/lib/python3.8/site-packages/dbus/__pycache__/gi_service.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1954 ./usr/lib/python3.8/site-packages/dbus/__pycache__/gi_service.cpython-38.pyc
+-rw-r--r-- root root 1018 ./usr/lib/python3.8/site-packages/dbus/__pycache__/glib.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1018 ./usr/lib/python3.8/site-packages/dbus/__pycache__/glib.cpython-38.pyc
+-rw-r--r-- root root 2185 ./usr/lib/python3.8/site-packages/dbus/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2185 ./usr/lib/python3.8/site-packages/dbus/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 677 ./usr/lib/python3.8/site-packages/dbus/__pycache__/lowlevel.cpython-38.opt-1.pyc
+-rw-r--r-- root root 677 ./usr/lib/python3.8/site-packages/dbus/__pycache__/lowlevel.cpython-38.pyc
+-rw-r--r-- root root 17730 ./usr/lib/python3.8/site-packages/dbus/__pycache__/proxies.cpython-38.opt-1.pyc
+-rw-r--r-- root root 17730 ./usr/lib/python3.8/site-packages/dbus/__pycache__/proxies.cpython-38.pyc
+-rw-r--r-- root root 3462 ./usr/lib/python3.8/site-packages/dbus/__pycache__/server.cpython-38.opt-1.pyc
+-rw-r--r-- root root 3462 ./usr/lib/python3.8/site-packages/dbus/__pycache__/server.cpython-38.pyc
+-rw-r--r-- root root 22086 ./usr/lib/python3.8/site-packages/dbus/__pycache__/service.cpython-38.opt-1.pyc
+-rw-r--r-- root root 22086 ./usr/lib/python3.8/site-packages/dbus/__pycache__/service.cpython-38.pyc
+-rw-r--r-- root root 730 ./usr/lib/python3.8/site-packages/dbus/__pycache__/types.cpython-38.opt-1.pyc
+-rw-r--r-- root root 730 ./usr/lib/python3.8/site-packages/dbus/__pycache__/types.cpython-38.pyc
+-rw-r--r-- root root 4657 ./usr/lib/python3.8/site-packages/dbus/server.py
+-rw-r--r-- root root 35473 ./usr/lib/python3.8/site-packages/dbus/service.py
+-rw-r--r-- root root 561 ./usr/lib/python3.8/site-packages/dbus/types.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/gi
+-rw-r--r-- root root 1493 ./usr/lib/python3.8/site-packages/gi/_compat.py
+-rw-r--r-- root root 1969 ./usr/lib/python3.8/site-packages/gi/_constants.py
+-rw-r--r-- root root 6688 ./usr/lib/python3.8/site-packages/gi/docstring.py
+-rw-r--r-- root root 2082 ./usr/lib/python3.8/site-packages/gi/_error.py
+-rwxr-xr-x root root 22488 ./usr/lib/python3.8/site-packages/gi/_gi_cairo.cpython-38-x86_64-linux-gnu.so
+-rwxr-xr-x root root 344488 ./usr/lib/python3.8/site-packages/gi/_gi.cpython-38-x86_64-linux-gnu.so
+-rw-r--r-- root root 7833 ./usr/lib/python3.8/site-packages/gi/_gtktemplate.py
+-rw-r--r-- root root 5280 ./usr/lib/python3.8/site-packages/gi/importer.py
+-rw-r--r-- root root 5894 ./usr/lib/python3.8/site-packages/gi/__init__.py
+-rw-r--r-- root root 9705 ./usr/lib/python3.8/site-packages/gi/module.py
+-rw-r--r-- root root 13192 ./usr/lib/python3.8/site-packages/gi/_option.py
+-rw-r--r-- root root 8083 ./usr/lib/python3.8/site-packages/gi/_ossighelper.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/gi/overrides
+-rw-r--r-- root root 1724 ./usr/lib/python3.8/site-packages/gi/overrides/GdkPixbuf.py
+-rw-r--r-- root root 16239 ./usr/lib/python3.8/site-packages/gi/overrides/Gdk.py
+-rw-r--r-- root root 2242 ./usr/lib/python3.8/site-packages/gi/overrides/GIMarshallingTests.py
+-rw-r--r-- root root 19033 ./usr/lib/python3.8/site-packages/gi/overrides/Gio.py
+-rw-r--r-- root root 29897 ./usr/lib/python3.8/site-packages/gi/overrides/GLib.py
+-rw-r--r-- root root 24640 ./usr/lib/python3.8/site-packages/gi/overrides/GObject.py
+-rw-r--r-- root root 59669 ./usr/lib/python3.8/site-packages/gi/overrides/Gtk.py
+-rw-r--r-- root root 12590 ./usr/lib/python3.8/site-packages/gi/overrides/__init__.py
+-rw-r--r-- root root 1705 ./usr/lib/python3.8/site-packages/gi/overrides/keysyms.py
+-rw-r--r-- root root 1774 ./usr/lib/python3.8/site-packages/gi/overrides/Pango.py
+-rw-r--r-- root root 14331 ./usr/lib/python3.8/site-packages/gi/_propertyhelper.py
+-rw-r--r-- root root 766 ./usr/lib/python3.8/site-packages/gi/pygtkcompat.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/gi/repository
+-rw-r--r-- root root 1042 ./usr/lib/python3.8/site-packages/gi/repository/__init__.py
+-rw-r--r-- root root 9303 ./usr/lib/python3.8/site-packages/gi/_signalhelper.py
+-rw-r--r-- root root 14330 ./usr/lib/python3.8/site-packages/gi/types.py
+-rw-r--r-- root root 1024 ./usr/lib/python3.8/site-packages/pycairo-1.19.1.egg-info
+-rw-r--r-- root root 810 ./usr/lib/python3.8/site-packages/PyGObject-3.36.1.egg-info
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/pygtkcompat
+-rw-r--r-- root root 14200 ./usr/lib/python3.8/site-packages/pygtkcompat/generictreemodel.py
+-rw-r--r-- root root 547 ./usr/lib/python3.8/site-packages/pygtkcompat/__init__.py
+-rw-r--r-- root root 20890 ./usr/lib/python3.8/site-packages/pygtkcompat/pygtkcompat.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/site-packages/python_dbusmock-0.19-py3.8.egg-info
+-rw-r--r-- root root 1 ./usr/lib/python3.8/site-packages/python_dbusmock-0.19-py3.8.egg-info/dependency_links.txt
+-rw-r--r-- root root 14631 ./usr/lib/python3.8/site-packages/python_dbusmock-0.19-py3.8.egg-info/PKG-INFO
+-rw-r--r-- root root 1137 ./usr/lib/python3.8/site-packages/python_dbusmock-0.19-py3.8.egg-info/SOURCES.txt
+-rw-r--r-- root root 9 ./usr/lib/python3.8/site-packages/python_dbusmock-0.19-py3.8.egg-info/top_level.txt
+-rw-r--r-- root root 21342 ./usr/lib/python3.8/site.py
+-rwxr-xr-x root root 44328 ./usr/lib/python3.8/smtplib.py
+-rw-r--r-- root root 35243 ./usr/lib/python3.8/socket.py
+-rw-r--r-- root root 26695 ./usr/lib/python3.8/sre_compile.py
+-rw-r--r-- root root 7154 ./usr/lib/python3.8/sre_constants.py
+-rw-r--r-- root root 40230 ./usr/lib/python3.8/sre_parse.py
+-rw-r--r-- root root 50760 ./usr/lib/python3.8/ssl.py
+-rw-r--r-- root root 5485 ./usr/lib/python3.8/stat.py
+-rw-r--r-- root root 12917 ./usr/lib/python3.8/stringprep.py
+-rw-r--r-- root root 10535 ./usr/lib/python3.8/string.py
+-rw-r--r-- root root 25268 ./usr/lib/python3.8/_strptime.py
+-rw-r--r-- root root 257 ./usr/lib/python3.8/struct.py
+-rw-r--r-- root root 77289 ./usr/lib/python3.8/subprocess.py
+-rw-r--r-- root root 2109 ./usr/lib/python3.8/symbol.py
+-rw-r--r-- root root 26693 ./usr/lib/python3.8/_sysconfigdata__linux_x86_64-linux-gnu.py
+-rw-r--r-- root root 24339 ./usr/lib/python3.8/sysconfig.py
+-rwxr-xr-x root root 93575 ./usr/lib/python3.8/tarfile.py
+-rw-r--r-- root root 23254 ./usr/lib/python3.8/telnetlib.py
+-rw-r--r-- root root 27595 ./usr/lib/python3.8/tempfile.py
+-rw-r--r-- root root 19407 ./usr/lib/python3.8/textwrap.py
+-rw-r--r-- root root 7220 ./usr/lib/python3.8/_threading_local.py
+-rw-r--r-- root root 50820 ./usr/lib/python3.8/threading.py
+-rw-r--r-- root root 25841 ./usr/lib/python3.8/tokenize.py
+-rw-r--r-- root root 2368 ./usr/lib/python3.8/token.py
+-rw-r--r-- root root 23478 ./usr/lib/python3.8/traceback.py
+-rw-r--r-- root root 9713 ./usr/lib/python3.8/types.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/urllib
+-rw-r--r-- root root 2632 ./usr/lib/python3.8/urllib/error.py
+-rw-r--r-- root root 0 ./usr/lib/python3.8/urllib/__init__.py
+-rw-r--r-- root root 41583 ./usr/lib/python3.8/urllib/parse.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/urllib/__pycache__
+-rw-r--r-- root root 2809 ./usr/lib/python3.8/urllib/__pycache__/error.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2134 ./usr/lib/python3.8/urllib/__pycache__/error.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2809 ./usr/lib/python3.8/urllib/__pycache__/error.cpython-38.pyc
+-rw-r--r-- root root 128 ./usr/lib/python3.8/urllib/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 128 ./usr/lib/python3.8/urllib/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 128 ./usr/lib/python3.8/urllib/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 33932 ./usr/lib/python3.8/urllib/__pycache__/parse.cpython-38.opt-1.pyc
+-rw-r--r-- root root 24496 ./usr/lib/python3.8/urllib/__pycache__/parse.cpython-38.opt-2.pyc
+-rw-r--r-- root root 33932 ./usr/lib/python3.8/urllib/__pycache__/parse.cpython-38.pyc
+-rw-r--r-- root root 72417 ./usr/lib/python3.8/urllib/__pycache__/request.cpython-38.opt-1.pyc
+-rw-r--r-- root root 60124 ./usr/lib/python3.8/urllib/__pycache__/request.cpython-38.opt-2.pyc
+-rw-r--r-- root root 72531 ./usr/lib/python3.8/urllib/__pycache__/request.cpython-38.pyc
+-rw-r--r-- root root 3289 ./usr/lib/python3.8/urllib/__pycache__/response.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2710 ./usr/lib/python3.8/urllib/__pycache__/response.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3289 ./usr/lib/python3.8/urllib/__pycache__/response.cpython-38.pyc
+-rw-r--r-- root root 7327 ./usr/lib/python3.8/urllib/__pycache__/robotparser.cpython-38.opt-1.pyc
+-rw-r--r-- root root 5959 ./usr/lib/python3.8/urllib/__pycache__/robotparser.cpython-38.opt-2.pyc
+-rw-r--r-- root root 7327 ./usr/lib/python3.8/urllib/__pycache__/robotparser.cpython-38.pyc
+-rw-r--r-- root root 101308 ./usr/lib/python3.8/urllib/request.py
+-rw-r--r-- root root 2299 ./usr/lib/python3.8/urllib/response.py
+-rw-r--r-- root root 9424 ./usr/lib/python3.8/urllib/robotparser.py
+-rw-r--r-- root root 30394 ./usr/lib/python3.8/uuid.py
+-rwxr-xr-x root root 6959 ./usr/lib/python3.8/uu.py
+-rw-r--r-- root root 19688 ./usr/lib/python3.8/warnings.py
+-rw-r--r-- root root 21387 ./usr/lib/python3.8/weakref.py
+-rw-r--r-- root root 5735 ./usr/lib/python3.8/_weakrefset.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/xml
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/xml/dom
+-rw-r--r-- root root 3451 ./usr/lib/python3.8/xml/dom/domreg.py
+-rw-r--r-- root root 35756 ./usr/lib/python3.8/xml/dom/expatbuilder.py
+-rw-r--r-- root root 4019 ./usr/lib/python3.8/xml/dom/__init__.py
+-rw-r--r-- root root 3367 ./usr/lib/python3.8/xml/dom/minicompat.py
+-rw-r--r-- root root 66857 ./usr/lib/python3.8/xml/dom/minidom.py
+-rw-r--r-- root root 936 ./usr/lib/python3.8/xml/dom/NodeFilter.py
+-rw-r--r-- root root 11997 ./usr/lib/python3.8/xml/dom/pulldom.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/xml/dom/__pycache__
+-rw-r--r-- root root 2850 ./usr/lib/python3.8/xml/dom/__pycache__/domreg.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1648 ./usr/lib/python3.8/xml/dom/__pycache__/domreg.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2850 ./usr/lib/python3.8/xml/dom/__pycache__/domreg.cpython-38.pyc
+-rw-r--r-- root root 26806 ./usr/lib/python3.8/xml/dom/__pycache__/expatbuilder.cpython-38.opt-1.pyc
+-rw-r--r-- root root 24201 ./usr/lib/python3.8/xml/dom/__pycache__/expatbuilder.cpython-38.opt-2.pyc
+-rw-r--r-- root root 27341 ./usr/lib/python3.8/xml/dom/__pycache__/expatbuilder.cpython-38.pyc
+-rw-r--r-- root root 5530 ./usr/lib/python3.8/xml/dom/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4735 ./usr/lib/python3.8/xml/dom/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5530 ./usr/lib/python3.8/xml/dom/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 2650 ./usr/lib/python3.8/xml/dom/__pycache__/minicompat.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2472 ./usr/lib/python3.8/xml/dom/__pycache__/minicompat.cpython-38.opt-2.pyc
+-rw-r--r-- root root 2742 ./usr/lib/python3.8/xml/dom/__pycache__/minicompat.cpython-38.pyc
+-rw-r--r-- root root 55272 ./usr/lib/python3.8/xml/dom/__pycache__/minidom.cpython-38.opt-1.pyc
+-rw-r--r-- root root 53701 ./usr/lib/python3.8/xml/dom/__pycache__/minidom.cpython-38.opt-2.pyc
+-rw-r--r-- root root 55374 ./usr/lib/python3.8/xml/dom/__pycache__/minidom.cpython-38.pyc
+-rw-r--r-- root root 967 ./usr/lib/python3.8/xml/dom/__pycache__/NodeFilter.cpython-38.opt-1.pyc
+-rw-r--r-- root root 874 ./usr/lib/python3.8/xml/dom/__pycache__/NodeFilter.cpython-38.opt-2.pyc
+-rw-r--r-- root root 967 ./usr/lib/python3.8/xml/dom/__pycache__/NodeFilter.cpython-38.pyc
+-rw-r--r-- root root 10691 ./usr/lib/python3.8/xml/dom/__pycache__/pulldom.cpython-38.opt-1.pyc
+-rw-r--r-- root root 10255 ./usr/lib/python3.8/xml/dom/__pycache__/pulldom.cpython-38.opt-2.pyc
+-rw-r--r-- root root 10691 ./usr/lib/python3.8/xml/dom/__pycache__/pulldom.cpython-38.pyc
+-rw-r--r-- root root 12464 ./usr/lib/python3.8/xml/dom/__pycache__/xmlbuilder.cpython-38.opt-1.pyc
+-rw-r--r-- root root 12035 ./usr/lib/python3.8/xml/dom/__pycache__/xmlbuilder.cpython-38.opt-2.pyc
+-rw-r--r-- root root 12494 ./usr/lib/python3.8/xml/dom/__pycache__/xmlbuilder.cpython-38.pyc
+-rw-r--r-- root root 12403 ./usr/lib/python3.8/xml/dom/xmlbuilder.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/xml/etree
+-rw-r--r-- root root 82 ./usr/lib/python3.8/xml/etree/cElementTree.py
+-rw-r--r-- root root 5151 ./usr/lib/python3.8/xml/etree/ElementInclude.py
+-rw-r--r-- root root 13118 ./usr/lib/python3.8/xml/etree/ElementPath.py
+-rw-r--r-- root root 72728 ./usr/lib/python3.8/xml/etree/ElementTree.py
+-rw-r--r-- root root 1604 ./usr/lib/python3.8/xml/etree/__init__.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/xml/etree/__pycache__
+-rw-r--r-- root root 173 ./usr/lib/python3.8/xml/etree/__pycache__/cElementTree.cpython-38.opt-1.pyc
+-rw-r--r-- root root 173 ./usr/lib/python3.8/xml/etree/__pycache__/cElementTree.cpython-38.opt-2.pyc
+-rw-r--r-- root root 173 ./usr/lib/python3.8/xml/etree/__pycache__/cElementTree.cpython-38.pyc
+-rw-r--r-- root root 1579 ./usr/lib/python3.8/xml/etree/__pycache__/ElementInclude.cpython-38.opt-1.pyc
+-rw-r--r-- root root 1579 ./usr/lib/python3.8/xml/etree/__pycache__/ElementInclude.cpython-38.opt-2.pyc
+-rw-r--r-- root root 1579 ./usr/lib/python3.8/xml/etree/__pycache__/ElementInclude.cpython-38.pyc
+-rw-r--r-- root root 8434 ./usr/lib/python3.8/xml/etree/__pycache__/ElementPath.cpython-38.opt-1.pyc
+-rw-r--r-- root root 8434 ./usr/lib/python3.8/xml/etree/__pycache__/ElementPath.cpython-38.opt-2.pyc
+-rw-r--r-- root root 8434 ./usr/lib/python3.8/xml/etree/__pycache__/ElementPath.cpython-38.pyc
+-rw-r--r-- root root 55298 ./usr/lib/python3.8/xml/etree/__pycache__/ElementTree.cpython-38.opt-1.pyc
+-rw-r--r-- root root 36901 ./usr/lib/python3.8/xml/etree/__pycache__/ElementTree.cpython-38.opt-2.pyc
+-rw-r--r-- root root 55612 ./usr/lib/python3.8/xml/etree/__pycache__/ElementTree.cpython-38.pyc
+-rw-r--r-- root root 131 ./usr/lib/python3.8/xml/etree/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 131 ./usr/lib/python3.8/xml/etree/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 131 ./usr/lib/python3.8/xml/etree/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 557 ./usr/lib/python3.8/xml/__init__.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/xml/parsers
+-rw-r--r-- root root 248 ./usr/lib/python3.8/xml/parsers/expat.py
+-rw-r--r-- root root 167 ./usr/lib/python3.8/xml/parsers/__init__.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/xml/parsers/__pycache__
+-rw-r--r-- root root 334 ./usr/lib/python3.8/xml/parsers/__pycache__/expat.cpython-38.opt-1.pyc
+-rw-r--r-- root root 268 ./usr/lib/python3.8/xml/parsers/__pycache__/expat.cpython-38.opt-2.pyc
+-rw-r--r-- root root 334 ./usr/lib/python3.8/xml/parsers/__pycache__/expat.cpython-38.pyc
+-rw-r--r-- root root 305 ./usr/lib/python3.8/xml/parsers/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 133 ./usr/lib/python3.8/xml/parsers/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 305 ./usr/lib/python3.8/xml/parsers/__pycache__/__init__.cpython-38.pyc
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/xml/__pycache__
+-rw-r--r-- root root 692 ./usr/lib/python3.8/xml/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 169 ./usr/lib/python3.8/xml/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 692 ./usr/lib/python3.8/xml/__pycache__/__init__.cpython-38.pyc
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/xml/sax
+-rw-r--r-- root root 4785 ./usr/lib/python3.8/xml/sax/_exceptions.py
+-rw-r--r-- root root 15704 ./usr/lib/python3.8/xml/sax/expatreader.py
+-rw-r--r-- root root 13922 ./usr/lib/python3.8/xml/sax/handler.py
+-rw-r--r-- root root 3647 ./usr/lib/python3.8/xml/sax/__init__.py
+drwxr-xr-x root root 4096 ./usr/lib/python3.8/xml/sax/__pycache__
+-rw-r--r-- root root 5444 ./usr/lib/python3.8/xml/sax/__pycache__/_exceptions.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2841 ./usr/lib/python3.8/xml/sax/__pycache__/_exceptions.cpython-38.opt-2.pyc
+-rw-r--r-- root root 5444 ./usr/lib/python3.8/xml/sax/__pycache__/_exceptions.cpython-38.pyc
+-rw-r--r-- root root 12495 ./usr/lib/python3.8/xml/sax/__pycache__/expatreader.cpython-38.opt-1.pyc
+-rw-r--r-- root root 12084 ./usr/lib/python3.8/xml/sax/__pycache__/expatreader.cpython-38.opt-2.pyc
+-rw-r--r-- root root 12495 ./usr/lib/python3.8/xml/sax/__pycache__/expatreader.cpython-38.pyc
+-rw-r--r-- root root 12422 ./usr/lib/python3.8/xml/sax/__pycache__/handler.cpython-38.opt-1.pyc
+-rw-r--r-- root root 4651 ./usr/lib/python3.8/xml/sax/__pycache__/handler.cpython-38.opt-2.pyc
+-rw-r--r-- root root 12422 ./usr/lib/python3.8/xml/sax/__pycache__/handler.cpython-38.pyc
+-rw-r--r-- root root 3219 ./usr/lib/python3.8/xml/sax/__pycache__/__init__.cpython-38.opt-1.pyc
+-rw-r--r-- root root 2156 ./usr/lib/python3.8/xml/sax/__pycache__/__init__.cpython-38.opt-2.pyc
+-rw-r--r-- root root 3219 ./usr/lib/python3.8/xml/sax/__pycache__/__init__.cpython-38.pyc
+-rw-r--r-- root root 12919 ./usr/lib/python3.8/xml/sax/__pycache__/saxutils.cpython-38.opt-1.pyc
+-rw-r--r-- root root 11264 ./usr/lib/python3.8/xml/sax/__pycache__/saxutils.cpython-38.opt-2.pyc
+-rw-r--r-- root root 12919 ./usr/lib/python3.8/xml/sax/__pycache__/saxutils.cpython-38.pyc
+-rw-r--r-- root root 16844 ./usr/lib/python3.8/xml/sax/__pycache__/xmlreader.cpython-38.opt-1.pyc
+-rw-r--r-- root root 10407 ./usr/lib/python3.8/xml/sax/__pycache__/xmlreader.cpython-38.opt-2.pyc
+-rw-r--r-- root root 16844 ./usr/lib/python3.8/xml/sax/__pycache__/xmlreader.cpython-38.pyc
+-rw-r--r-- root root 12255 ./usr/lib/python3.8/xml/sax/saxutils.py
+-rw-r--r-- root root 12684 ./usr/lib/python3.8/xml/sax/xmlreader.py
+-rw-r--r-- root root 87626 ./usr/lib/python3.8/zipfile.py
+-rw-r--r-- root root 3920 ./usr/lib/Scrt1.o
+drwxr-xr-x root root 4096 ./usr/lib/ssl-1.1
+lrwxrwxrwx root root 22 ./usr/lib/ssl-1.1/certs -> ../../../etc/ssl/certs
+-rw-r--r-- root root 412 ./usr/lib/ssl-1.1/ct_log_list.cnf
+-rw-r--r-- root root 412 ./usr/lib/ssl-1.1/ct_log_list.cnf.dist
+-rw-r--r-- root root 10909 ./usr/lib/ssl-1.1/openssl.cnf.dist
+lrwxrwxrwx root root 28 ./usr/lib/ssl-1.1/openssl.cnf -> ../../../etc/ssl/openssl.cnf
+lrwxrwxrwx root root 24 ./usr/lib/ssl-1.1/private -> ../../../etc/ssl/private
+drwxr-xr-x root root 4096 ./usr/lib/systemd
+drwxr-xr-x root root 4096 ./usr/lib/systemd/user
+-rw-r--r-- root root 360 ./usr/lib/systemd/user/dbus.service
+-rw-r--r-- root root 174 ./usr/lib/systemd/user/dbus.socket
+drwxr-xr-x root root 4096 ./usr/lib/systemd/user/sockets.target.wants
+lrwxrwxrwx root root 14 ./usr/lib/systemd/user/sockets.target.wants/dbus.socket -> ../dbus.socket
+drwxr-xr-x root root 4096 ./usr/lib/x86_64-poky-linux
+drwxr-xr-x root root 4096 ./usr/lib/x86_64-poky-linux/10.1.0
+-rw-r--r-- root root 2432 ./usr/lib/x86_64-poky-linux/10.1.0/crtbegin.o
+-rw-r--r-- root root 2752 ./usr/lib/x86_64-poky-linux/10.1.0/crtbeginS.o
+-rw-r--r-- root root 2944 ./usr/lib/x86_64-poky-linux/10.1.0/crtbeginT.o
+-rw-r--r-- root root 1200 ./usr/lib/x86_64-poky-linux/10.1.0/crtend.o
+-rw-r--r-- root root 1200 ./usr/lib/x86_64-poky-linux/10.1.0/crtendS.o
+-rw-r--r-- root root 3848 ./usr/lib/x86_64-poky-linux/10.1.0/crtfastmath.o
+-rw-r--r-- root root 3400 ./usr/lib/x86_64-poky-linux/10.1.0/crtprec32.o
+-rw-r--r-- root root 3416 ./usr/lib/x86_64-poky-linux/10.1.0/crtprec64.o
+-rw-r--r-- root root 3400 ./usr/lib/x86_64-poky-linux/10.1.0/crtprec80.o
+-rw-r--r-- root root 6179894 ./usr/lib/x86_64-poky-linux/10.1.0/libgcc.a
+-rw-r--r-- root root 405636 ./usr/lib/x86_64-poky-linux/10.1.0/libgcc_eh.a
+-rw-r--r-- root root 267062 ./usr/lib/x86_64-poky-linux/10.1.0/libgcov.a
+-rw-r--r-- root root 201 ./usr/lib/xml2Conf.sh
+drwxr-xr-x root root 4096 ./usr/lib/xtables
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libip6t_ah.so
+-rwxr-xr-x root root 14640 ./usr/lib/xtables/libip6t_DNAT.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libip6t_DNPT.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libip6t_dst.so
+-rwxr-xr-x root root 14208 ./usr/lib/xtables/libip6t_eui64.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libip6t_frag.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libip6t_hbh.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libip6t_hl.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libip6t_HL.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libip6t_icmp6.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libip6t_ipv6header.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libip6t_LOG.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libip6t_MASQUERADE.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libip6t_mh.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libip6t_NETMAP.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libip6t_REDIRECT.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libip6t_REJECT.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libip6t_rt.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libip6t_SNAT.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libip6t_SNPT.so
+-rwxr-xr-x root root 22816 ./usr/lib/xtables/libip6t_srh.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libipt_ah.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libipt_CLUSTERIP.so
+-rwxr-xr-x root root 18736 ./usr/lib/xtables/libipt_DNAT.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libipt_ECN.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libipt_icmp.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libipt_LOG.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libipt_MASQUERADE.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libipt_NETMAP.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libipt_realm.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libipt_REDIRECT.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libipt_REJECT.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libipt_SNAT.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libipt_ttl.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libipt_TTL.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libipt_ULOG.so
+-rwxr-xr-x root root 14632 ./usr/lib/xtables/libxt_addrtype.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libxt_AUDIT.so
+-rwxr-xr-x root root 14624 ./usr/lib/xtables/libxt_bpf.so
+-rwxr-xr-x root root 14816 ./usr/lib/xtables/libxt_cgroup.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libxt_CHECKSUM.so
+-rwxr-xr-x root root 14648 ./usr/lib/xtables/libxt_CLASSIFY.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libxt_cluster.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libxt_comment.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libxt_connbytes.so
+-rwxr-xr-x root root 15016 ./usr/lib/xtables/libxt_connlimit.so
+-rwxr-xr-x root root 14632 ./usr/lib/xtables/libxt_connmark.so
+-rwxr-xr-x root root 18944 ./usr/lib/xtables/libxt_CONNMARK.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libxt_CONNSECMARK.so
+-rwxr-xr-x root root 32744 ./usr/lib/xtables/libxt_conntrack.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_cpu.so
+-rwxr-xr-x root root 19736 ./usr/lib/xtables/libxt_CT.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_dccp.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libxt_devgroup.so
+-rwxr-xr-x root root 14624 ./usr/lib/xtables/libxt_dscp.so
+-rwxr-xr-x root root 14640 ./usr/lib/xtables/libxt_DSCP.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_ecn.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_esp.so
+-rwxr-xr-x root root 36136 ./usr/lib/xtables/libxt_hashlimit.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_helper.so
+-rwxr-xr-x root root 14640 ./usr/lib/xtables/libxt_HMARK.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libxt_IDLETIMER.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_ipcomp.so
+-rwxr-xr-x root root 14824 ./usr/lib/xtables/libxt_iprange.so
+-rwxr-xr-x root root 14624 ./usr/lib/xtables/libxt_ipvs.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libxt_LED.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_length.so
+-rwxr-xr-x root root 14624 ./usr/lib/xtables/libxt_limit.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_mac.so
+-rwxr-xr-x root root 14624 ./usr/lib/xtables/libxt_mark.so
+-rwxr-xr-x root root 15168 ./usr/lib/xtables/libxt_MARK.so
+-rwxr-xr-x root root 19112 ./usr/lib/xtables/libxt_multiport.so
+-rwxr-xr-x root root 14624 ./usr/lib/xtables/libxt_nfacct.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libxt_NFLOG.so
+-rwxr-xr-x root root 15048 ./usr/lib/xtables/libxt_NFQUEUE.so
+lrwxrwxrwx root root 11 ./usr/lib/xtables/libxt_NOTRACK.so -> libxt_CT.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_osf.so
+-rwxr-xr-x root root 23008 ./usr/lib/xtables/libxt_owner.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libxt_physdev.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libxt_pkttype.so
+-rwxr-xr-x root root 14624 ./usr/lib/xtables/libxt_policy.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_quota.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libxt_rateest.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libxt_RATEEST.so
+-rwxr-xr-x root root 18912 ./usr/lib/xtables/libxt_recent.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libxt_rpfilter.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_sctp.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libxt_SECMARK.so
+-rwxr-xr-x root root 23392 ./usr/lib/xtables/libxt_set.so
+-rwxr-xr-x root root 23232 ./usr/lib/xtables/libxt_SET.so
+-rwxr-xr-x root root 15008 ./usr/lib/xtables/libxt_socket.so
+-rwxr-xr-x root root 14368 ./usr/lib/xtables/libxt_standard.so
+lrwxrwxrwx root root 18 ./usr/lib/xtables/libxt_state.so -> libxt_conntrack.so
+-rwxr-xr-x root root 14440 ./usr/lib/xtables/libxt_statistic.so
+-rwxr-xr-x root root 14624 ./usr/lib/xtables/libxt_string.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libxt_SYNPROXY.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_tcpmss.so
+-rwxr-xr-x root root 14640 ./usr/lib/xtables/libxt_TCPMSS.so
+-rwxr-xr-x root root 14448 ./usr/lib/xtables/libxt_TCPOPTSTRIP.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_tcp.so
+-rwxr-xr-x root root 14640 ./usr/lib/xtables/libxt_TEE.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_time.so
+-rwxr-xr-x root root 14624 ./usr/lib/xtables/libxt_tos.so
+-rwxr-xr-x root root 14640 ./usr/lib/xtables/libxt_TOS.so
+-rwxr-xr-x root root 14840 ./usr/lib/xtables/libxt_TPROXY.so
+-rwxr-xr-x root root 14208 ./usr/lib/xtables/libxt_TRACE.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_u32.so
+-rwxr-xr-x root root 14432 ./usr/lib/xtables/libxt_udp.so
+drwxr-xr-x root root 4096 ./usr/sbin
+lrwxrwxrwx root root 19 ./usr/sbin/addgroup -> /bin/busybox.nosuid
+-rwxr-xr-x root root 26664 ./usr/sbin/addpart
+lrwxrwxrwx root root 19 ./usr/sbin/adduser -> /bin/busybox.nosuid
+-rwxr-xr-x root root 30760 ./usr/sbin/blkdiscard
+-rwxr-xr-x root root 71720 ./usr/sbin/blkzone
+-rwxr-xr-x root root 47136 ./usr/sbin/chcpu
+-rwxr-xr-x root root 59152 ./usr/sbin/chgpasswd
+-rwxr-xr-x root root 55056 ./usr/sbin/chpasswd.shadow
+lrwxrwxrwx root root 25 ./usr/sbin/chpasswd -> /usr/sbin/chpasswd.shadow
+-rwxr-xr-x root root 55464 ./usr/sbin/chroot.coreutils
+lrwxrwxrwx root root 26 ./usr/sbin/chroot -> /usr/sbin/chroot.coreutils
+lrwxrwxrwx root root 19 ./usr/sbin/delgroup -> /bin/busybox.nosuid
+-rwxr-xr-x root root 26664 ./usr/sbin/delpart
+lrwxrwxrwx root root 19 ./usr/sbin/deluser -> /bin/busybox.nosuid
+lrwxrwxrwx root root 19 ./usr/sbin/fbset -> /bin/busybox.nosuid
+-rwxr-xr-x root root 34856 ./usr/sbin/fdformat
+-rwxr-xr-x root root 14368 ./usr/sbin/findfs
+-rwxr-xr-x root root 38984 ./usr/sbin/fsck.cramfs
+lrwxrwxrwx root root 29 ./usr/sbin/fsfreeze -> /usr/sbin/fsfreeze.util-linux
+-rwxr-xr-x root root 14384 ./usr/sbin/fsfreeze.util-linux
+-rwxr-xr-x root root 84336 ./usr/sbin/groupadd
+-rwxr-xr-x root root 75952 ./usr/sbin/groupdel
+-rwxr-xr-x root root 59160 ./usr/sbin/groupmems
+-rwxr-xr-x root root 84272 ./usr/sbin/groupmod
+-rwxr-xr-x root root 59120 ./usr/sbin/grpck
+-rwxr-xr-x root root 54896 ./usr/sbin/grpconv
+-rwxr-xr-x root root 54904 ./usr/sbin/grpunconv
+-rwxr-xr-x root root 30936 ./usr/sbin/iconvconfig
+lrwxrwxrwx root root 20 ./usr/sbin/ip6tables-legacy-restore -> xtables-legacy-multi
+lrwxrwxrwx root root 20 ./usr/sbin/ip6tables-legacy-save -> xtables-legacy-multi
+lrwxrwxrwx root root 20 ./usr/sbin/ip6tables-legacy -> xtables-legacy-multi
+lrwxrwxrwx root root 20 ./usr/sbin/ip6tables-restore -> xtables-legacy-multi
+lrwxrwxrwx root root 20 ./usr/sbin/ip6tables-save -> xtables-legacy-multi
+lrwxrwxrwx root root 20 ./usr/sbin/ip6tables -> xtables-legacy-multi
+lrwxrwxrwx root root 20 ./usr/sbin/iptables-legacy-restore -> xtables-legacy-multi
+lrwxrwxrwx root root 20 ./usr/sbin/iptables-legacy-save -> xtables-legacy-multi
+lrwxrwxrwx root root 20 ./usr/sbin/iptables-legacy -> xtables-legacy-multi
+lrwxrwxrwx root root 20 ./usr/sbin/iptables-restore -> xtables-legacy-multi
+lrwxrwxrwx root root 20 ./usr/sbin/iptables-save -> xtables-legacy-multi
+lrwxrwxrwx root root 20 ./usr/sbin/iptables -> xtables-legacy-multi
+-rwxr-xr-x root root 34856 ./usr/sbin/ldattach
+lrwxrwxrwx root root 19 ./usr/sbin/loadfont -> /bin/busybox.nosuid
+-rwxr-xr-x root root 14288 ./usr/sbin/logoutd
+-rwxr-xr-x root root 14368 ./usr/sbin/mkfs
+-rwxr-xr-x root root 38880 ./usr/sbin/mkfs.cramfs
+-rwxr-xr-x root root 96560 ./usr/sbin/newusers
+-rwxr-xr-x root root 116776 ./usr/sbin/partx
+-rwxr-xr-x root root 55016 ./usr/sbin/pwck
+-rwxr-xr-x root root 50792 ./usr/sbin/pwconv
+-rwxr-xr-x root root 50808 ./usr/sbin/pwunconv
+-rwxr-xr-x root root 14368 ./usr/sbin/raw
+lrwxrwxrwx root root 19 ./usr/sbin/rdate -> /bin/busybox.nosuid
+lrwxrwxrwx root root 32 ./usr/sbin/readprofile -> /usr/sbin/readprofile.util-linux
+-rwxr-xr-x root root 22616 ./usr/sbin/readprofile.util-linux
+-rwxr-xr-x root root 63528 ./usr/sbin/resizepart
+lrwxrwxrwx root root 27 ./usr/sbin/rfkill -> /usr/sbin/rfkill.util-linux
+-rwxr-xr-x root root 47152 ./usr/sbin/rfkill.util-linux
+lrwxrwxrwx root root 28 ./usr/sbin/rtcwake -> /usr/sbin/rtcwake.util-linux
+-rwxr-xr-x root root 47152 ./usr/sbin/rtcwake.util-linux
+-rwxr-xr-x root root 1986 ./usr/sbin/run-postinsts
+-rwxr-xr-x root root 141352 ./usr/sbin/sfdisk
+-rwxr-xr-x root root 18472 ./usr/sbin/swaplabel
+lrwxrwxrwx root root 19 ./usr/sbin/udhcpd -> /bin/busybox.nosuid
+-rwxr-xr-x root root 5990 ./usr/sbin/update-ca-certificates
+-rwxr-xr-x root root 6365 ./usr/sbin/update-rc.d
+-rwxr-xr-x root root 130136 ./usr/sbin/useradd
+-rwxr-xr-x root root 88328 ./usr/sbin/userdel
+-rwxr-xr-x root root 125880 ./usr/sbin/usermod
+-rwxr-xr-x root root 39032 ./usr/sbin/uuidd
+-rwxr-xr-x root root 47144 ./usr/sbin/wipefs
+-rwxr-xr-x root root 98960 ./usr/sbin/xtables-legacy-multi
+-rwxr-xr-x root root 112792 ./usr/sbin/zramctl
+drwxr-xr-x root root 4096 ./usr/share
+drwxr-xr-x root root 4096 ./usr/share/aclocal
+-rw-r--r-- root root 2221 ./usr/share/aclocal/bison-i18n.m4
+-rw-r--r-- root root 1184 ./usr/share/aclocal/cap-ng.m4
+-rw-r--r-- root root 6337 ./usr/share/aclocal/freetype2.m4
+-rw-r--r-- root root 8316 ./usr/share/aclocal/glib-2.0.m4
+-rw-r--r-- root root 15838 ./usr/share/aclocal/glib-gettext.m4
+-rw-r--r-- root root 3589 ./usr/share/aclocal/gsettings.m4
+-rw-r--r-- root root 5132 ./usr/share/aclocal/introspection.m4
+-rw-r--r-- root root 357 ./usr/share/aclocal/libxml.m4
+-rw-r--r-- root root 428 ./usr/share/aclocal/wayland-scanner.m4
+-rw-r--r-- root root 71315 ./usr/share/aclocal/xorg-macros.m4
+-rw-r--r-- root root 6537 ./usr/share/aclocal/xtrans.m4
+drwxr-xr-x root root 4096 ./usr/share/awk
+-rw-r--r-- root root 383 ./usr/share/awk/assert.awk
+-rw-r--r-- root root 334 ./usr/share/awk/bits2str.awk
+-rw-r--r-- root root 307 ./usr/share/awk/cliff_rand.awk
+-rw-r--r-- root root 234 ./usr/share/awk/ctime.awk
+-rw-r--r-- root root 315 ./usr/share/awk/ftrans.awk
+-rw-r--r-- root root 3278 ./usr/share/awk/getopt.awk
+-rw-r--r-- root root 2491 ./usr/share/awk/gettime.awk
+-rw-r--r-- root root 1765 ./usr/share/awk/group.awk
+-rw-r--r-- root root 221 ./usr/share/awk/have_mpfr.awk
+-rw-r--r-- root root 2340 ./usr/share/awk/inplace.awk
+-rw-r--r-- root root 462 ./usr/share/awk/intdiv0.awk
+-rw-r--r-- root root 378 ./usr/share/awk/join.awk
+-rw-r--r-- root root 238 ./usr/share/awk/libintl.awk
+-rw-r--r-- root root 422 ./usr/share/awk/noassign.awk
+-rw-r--r-- root root 1282 ./usr/share/awk/ns_passwd.awk
+-rw-r--r-- root root 937 ./usr/share/awk/ord.awk
+-rw-r--r-- root root 1199 ./usr/share/awk/passwd.awk
+-rw-r--r-- root root 355 ./usr/share/awk/processarray.awk
+-rw-r--r-- root root 1031 ./usr/share/awk/quicksort.awk
+-rw-r--r-- root root 489 ./usr/share/awk/readable.awk
+-rw-r--r-- root root 267 ./usr/share/awk/readfile.awk
+-rw-r--r-- root root 404 ./usr/share/awk/rewind.awk
+-rw-r--r-- root root 661 ./usr/share/awk/round.awk
+-rw-r--r-- root root 472 ./usr/share/awk/shellquote.awk
+-rw-r--r-- root root 1454 ./usr/share/awk/strtonum.awk
+-rw-r--r-- root root 214 ./usr/share/awk/walkarray.awk
+-rw-r--r-- root root 424 ./usr/share/awk/zerofile.awk
+drwxr-xr-x root root 4096 ./usr/share/bash-completion
+-rw-r--r-- root root 74302 ./usr/share/bash-completion/bash_completion
+drwxr-xr-x root root 4096 ./usr/share/bison
+-rw-r--r-- root root 1206 ./usr/share/bison/bison-default.css
+drwxr-xr-x root root 4096 ./usr/share/bison/m4sugar
+-rw-r--r-- root root 14755 ./usr/share/bison/m4sugar/foreach.m4
+-rw-r--r-- root root 122297 ./usr/share/bison/m4sugar/m4sugar.m4
+-rw-r--r-- root root 7134 ./usr/share/bison/README.md
+drwxr-xr-x root root 4096 ./usr/share/bison/skeletons
+-rw-r--r-- root root 41025 ./usr/share/bison/skeletons/bison.m4
+-rw-r--r-- root root 2571 ./usr/share/bison/skeletons/c-like.m4
+-rw-r--r-- root root 32297 ./usr/share/bison/skeletons/c.m4
+-rw-r--r-- root root 21273 ./usr/share/bison/skeletons/c++.m4
+-rw-r--r-- root root 1163 ./usr/share/bison/skeletons/c-skel.m4
+-rw-r--r-- root root 1169 ./usr/share/bison/skeletons/c++-skel.m4
+-rw-r--r-- root root 10492 ./usr/share/bison/skeletons/d.m4
+-rw-r--r-- root root 1135 ./usr/share/bison/skeletons/d-skel.m4
+-rw-r--r-- root root 91038 ./usr/share/bison/skeletons/glr.c
+-rw-r--r-- root root 12766 ./usr/share/bison/skeletons/glr.cc
+-rw-r--r-- root root 14410 ./usr/share/bison/skeletons/java.m4
+-rw-r--r-- root root 1166 ./usr/share/bison/skeletons/java-skel.m4
+-rw-r--r-- root root 51533 ./usr/share/bison/skeletons/lalr1.cc
+-rw-r--r-- root root 30671 ./usr/share/bison/skeletons/lalr1.d
+-rw-r--r-- root root 37180 ./usr/share/bison/skeletons/lalr1.java
+-rw-r--r-- root root 10331 ./usr/share/bison/skeletons/location.cc
+-rw-r--r-- root root 1896 ./usr/share/bison/skeletons/README-D.txt
+-rw-r--r-- root root 3975 ./usr/share/bison/skeletons/stack.hh
+-rw-r--r-- root root 13220 ./usr/share/bison/skeletons/variant.hh
+-rw-r--r-- root root 70766 ./usr/share/bison/skeletons/yacc.c
+drwxr-xr-x root root 4096 ./usr/share/bison/xslt
+-rw-r--r-- root root 3364 ./usr/share/bison/xslt/bison.xsl
+-rw-r--r-- root root 12820 ./usr/share/bison/xslt/xml2dot.xsl
+-rw-r--r-- root root 18554 ./usr/share/bison/xslt/xml2text.xsl
+-rw-r--r-- root root 22678 ./usr/share/bison/xslt/xml2xhtml.xsl
+drwxr-xr-x root root 4096 ./usr/share/ca-certificates
+drwxr-xr-x root root 12288 ./usr/share/ca-certificates/mozilla
+-rw-r--r-- root root 2772 ./usr/share/ca-certificates/mozilla/ACCVRAIZ1.crt
+-rw-r--r-- root root 1972 ./usr/share/ca-certificates/mozilla/AC_RAIZ_FNMT-RCM.crt
+-rw-r--r-- root root 2049 ./usr/share/ca-certificates/mozilla/Actalis_Authentication_Root_CA.crt
+-rw-r--r-- root root 1521 ./usr/share/ca-certificates/mozilla/AddTrust_External_Root.crt
+-rw-r--r-- root root 1204 ./usr/share/ca-certificates/mozilla/AffirmTrust_Commercial.crt
+-rw-r--r-- root root 1204 ./usr/share/ca-certificates/mozilla/AffirmTrust_Networking.crt
+-rw-r--r-- root root 1891 ./usr/share/ca-certificates/mozilla/AffirmTrust_Premium.crt
+-rw-r--r-- root root 753 ./usr/share/ca-certificates/mozilla/AffirmTrust_Premium_ECC.crt
+-rw-r--r-- root root 1188 ./usr/share/ca-certificates/mozilla/Amazon_Root_CA_1.crt
+-rw-r--r-- root root 1883 ./usr/share/ca-certificates/mozilla/Amazon_Root_CA_2.crt
+-rw-r--r-- root root 656 ./usr/share/ca-certificates/mozilla/Amazon_Root_CA_3.crt
+-rw-r--r-- root root 737 ./usr/share/ca-certificates/mozilla/Amazon_Root_CA_4.crt
+-rw-r--r-- root root 1261 ./usr/share/ca-certificates/mozilla/Atos_TrustedRoot_2011.crt
+-rw-r--r-- root root 2167 ./usr/share/ca-certificates/mozilla/Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.crt
+-rw-r--r-- root root 1261 ./usr/share/ca-certificates/mozilla/Baltimore_CyberTrust_Root.crt
+-rw-r--r-- root root 1915 ./usr/share/ca-certificates/mozilla/Buypass_Class_2_Root_CA.crt
+-rw-r--r-- root root 1915 ./usr/share/ca-certificates/mozilla/Buypass_Class_3_Root_CA.crt
+-rw-r--r-- root root 1935 ./usr/share/ca-certificates/mozilla/CA_Disig_Root_R2.crt
+-rw-r--r-- root root 1330 ./usr/share/ca-certificates/mozilla/Certigna.crt
+-rw-r--r-- root root 1992 ./usr/share/ca-certificates/mozilla/Certinomis_-_Root_CA.crt
+-rw-r--r-- root root 1298 ./usr/share/ca-certificates/mozilla/Certplus_Class_2_Primary_CA.crt
+-rw-r--r-- root root 1176 ./usr/share/ca-certificates/mozilla/certSIGN_ROOT_CA.crt
+-rw-r--r-- root root 2078 ./usr/share/ca-certificates/mozilla/Certum_Trusted_Network_CA_2.crt
+-rw-r--r-- root root 1354 ./usr/share/ca-certificates/mozilla/Certum_Trusted_Network_CA.crt
+-rw-r--r-- root root 1984 ./usr/share/ca-certificates/mozilla/CFCA_EV_ROOT.crt
+-rw-r--r-- root root 2594 ./usr/share/ca-certificates/mozilla/Chambers_of_Commerce_Root_-_2008.crt
+-rw-r--r-- root root 1517 ./usr/share/ca-certificates/mozilla/Comodo_AAA_Services_root.crt
+-rw-r--r-- root root 1489 ./usr/share/ca-certificates/mozilla/COMODO_Certification_Authority.crt
+-rw-r--r-- root root 940 ./usr/share/ca-certificates/mozilla/COMODO_ECC_Certification_Authority.crt
+-rw-r--r-- root root 2086 ./usr/share/ca-certificates/mozilla/COMODO_RSA_Certification_Authority.crt
+-rw-r--r-- root root 1318 ./usr/share/ca-certificates/mozilla/Cybertrust_Global_Root.crt
+-rw-r--r-- root root 1318 ./usr/share/ca-certificates/mozilla/Deutsche_Telekom_Root_CA_2.crt
+-rw-r--r-- root root 1350 ./usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_CA.crt
+-rw-r--r-- root root 1306 ./usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_G2.crt
+-rw-r--r-- root root 851 ./usr/share/ca-certificates/mozilla/DigiCert_Assured_ID_Root_G3.crt
+-rw-r--r-- root root 1338 ./usr/share/ca-certificates/mozilla/DigiCert_Global_Root_CA.crt
+-rw-r--r-- root root 1294 ./usr/share/ca-certificates/mozilla/DigiCert_Global_Root_G2.crt
+-rw-r--r-- root root 839 ./usr/share/ca-certificates/mozilla/DigiCert_Global_Root_G3.crt
+-rw-r--r-- root root 1367 ./usr/share/ca-certificates/mozilla/DigiCert_High_Assurance_EV_Root_CA.crt
+-rw-r--r-- root root 1988 ./usr/share/ca-certificates/mozilla/DigiCert_Trusted_Root_G4.crt
+-rw-r--r-- root root 1200 ./usr/share/ca-certificates/mozilla/DST_Root_CA_X3.crt
+-rw-r--r-- root root 1517 ./usr/share/ca-certificates/mozilla/D-TRUST_Root_Class_3_CA_2_2009.crt
+-rw-r--r-- root root 1537 ./usr/share/ca-certificates/mozilla/D-TRUST_Root_Class_3_CA_2_EV_2009.crt
+-rw-r--r-- root root 1911 ./usr/share/ca-certificates/mozilla/EC-ACC.crt
+-rw-r--r-- root root 1452 ./usr/share/ca-certificates/mozilla/EE_Certification_Centre_Root_CA.crt
+-rw-r--r-- root root 1505 ./usr/share/ca-certificates/mozilla/Entrust.net_Premium_2048_Secure_Server_CA.crt
+-rw-r--r-- root root 1643 ./usr/share/ca-certificates/mozilla/Entrust_Root_Certification_Authority.crt
+-rw-r--r-- root root 1090 ./usr/share/ca-certificates/mozilla/Entrust_Root_Certification_Authority_-_EC1.crt
+-rw-r--r-- root root 1533 ./usr/share/ca-certificates/mozilla/Entrust_Root_Certification_Authority_-_G2.crt
+-rw-r--r-- root root 2033 ./usr/share/ca-certificates/mozilla/ePKI_Root_Certification_Authority.crt
+-rw-r--r-- root root 2244 ./usr/share/ca-certificates/mozilla/E-Tugra_Certification_Authority.crt
+-rw-r--r-- root root 1980 ./usr/share/ca-certificates/mozilla/GDCA_TrustAUTH_R5_ROOT.crt
+-rw-r--r-- root root 1216 ./usr/share/ca-certificates/mozilla/GeoTrust_Global_CA.crt
+-rw-r--r-- root root 1269 ./usr/share/ca-certificates/mozilla/GeoTrust_Primary_Certification_Authority.crt
+-rw-r--r-- root root 989 ./usr/share/ca-certificates/mozilla/GeoTrust_Primary_Certification_Authority_-_G2.crt
+-rw-r--r-- root root 1444 ./usr/share/ca-certificates/mozilla/GeoTrust_Primary_Certification_Authority_-_G3.crt
+-rw-r--r-- root root 1939 ./usr/share/ca-certificates/mozilla/GeoTrust_Universal_CA_2.crt
+-rw-r--r-- root root 1935 ./usr/share/ca-certificates/mozilla/GeoTrust_Universal_CA.crt
+-rw-r--r-- root root 2585 ./usr/share/ca-certificates/mozilla/Global_Chambersign_Root_-_2008.crt
+-rw-r--r-- root root 713 ./usr/share/ca-certificates/mozilla/GlobalSign_ECC_Root_CA_-_R4.crt
+-rw-r--r-- root root 794 ./usr/share/ca-certificates/mozilla/GlobalSign_ECC_Root_CA_-_R5.crt
+-rw-r--r-- root root 1261 ./usr/share/ca-certificates/mozilla/GlobalSign_Root_CA.crt
+-rw-r--r-- root root 1354 ./usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R2.crt
+-rw-r--r-- root root 1229 ./usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R3.crt
+-rw-r--r-- root root 1972 ./usr/share/ca-certificates/mozilla/GlobalSign_Root_CA_-_R6.crt
+-rw-r--r-- root root 1448 ./usr/share/ca-certificates/mozilla/Go_Daddy_Class_2_CA.crt
+-rw-r--r-- root root 1367 ./usr/share/ca-certificates/mozilla/Go_Daddy_Root_Certificate_Authority_-_G2.crt
+-rw-r--r-- root root 1017 ./usr/share/ca-certificates/mozilla/Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.crt
+-rw-r--r-- root root 1513 ./usr/share/ca-certificates/mozilla/Hellenic_Academic_and_Research_Institutions_RootCA_2011.crt
+-rw-r--r-- root root 2155 ./usr/share/ca-certificates/mozilla/Hellenic_Academic_and_Research_Institutions_RootCA_2015.crt
+-rw-r--r-- root root 1168 ./usr/share/ca-certificates/mozilla/Hongkong_Post_Root_CA_1.crt
+-rw-r--r-- root root 1923 ./usr/share/ca-certificates/mozilla/IdenTrust_Commercial_Root_CA_1.crt
+-rw-r--r-- root root 1931 ./usr/share/ca-certificates/mozilla/IdenTrust_Public_Sector_Root_CA_1.crt
+-rw-r--r-- root root 1939 ./usr/share/ca-certificates/mozilla/ISRG_Root_X1.crt
+-rw-r--r-- root root 2122 ./usr/share/ca-certificates/mozilla/Izenpe.com.crt
+-rw-r--r-- root root 2057 ./usr/share/ca-certificates/mozilla/LuxTrust_Global_Root_2.crt
+-rw-r--r-- root root 1460 ./usr/share/ca-certificates/mozilla/Microsec_e-Szigno_Root_CA_2009.crt
+-rw-r--r-- root root 1476 ./usr/share/ca-certificates/mozilla/NetLock_Arany_=Class_Gold=_Főtanúsítvány.crt
+-rw-r--r-- root root 1411 ./usr/share/ca-certificates/mozilla/Network_Solutions_Certificate_Authority.crt
+-rw-r--r-- root root 1428 ./usr/share/ca-certificates/mozilla/OISTE_WISeKey_Global_Root_GA_CA.crt
+-rw-r--r-- root root 1346 ./usr/share/ca-certificates/mozilla/OISTE_WISeKey_Global_Root_GB_CA.crt
+-rw-r--r-- root root 895 ./usr/share/ca-certificates/mozilla/OISTE_WISeKey_Global_Root_GC_CA.crt
+-rw-r--r-- root root 1923 ./usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_1_G3.crt
+-rw-r--r-- root root 2041 ./usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_2.crt
+-rw-r--r-- root root 1923 ./usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_2_G3.crt
+-rw-r--r-- root root 2354 ./usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_3.crt
+-rw-r--r-- root root 1923 ./usr/share/ca-certificates/mozilla/QuoVadis_Root_CA_3_G3.crt
+-rw-r--r-- root root 2078 ./usr/share/ca-certificates/mozilla/QuoVadis_Root_CA.crt
+-rw-r--r-- root root 1354 ./usr/share/ca-certificates/mozilla/Secure_Global_CA.crt
+-rw-r--r-- root root 1249 ./usr/share/ca-certificates/mozilla/SecureSign_RootCA11.crt
+-rw-r--r-- root root 1350 ./usr/share/ca-certificates/mozilla/SecureTrust_CA.crt
+-rw-r--r-- root root 1261 ./usr/share/ca-certificates/mozilla/Security_Communication_RootCA2.crt
+-rw-r--r-- root root 1224 ./usr/share/ca-certificates/mozilla/Security_Communication_Root_CA.crt
+-rw-r--r-- root root 1143 ./usr/share/ca-certificates/mozilla/Sonera_Class_2_Root_CA.crt
+-rw-r--r-- root root 956 ./usr/share/ca-certificates/mozilla/SSL.com_EV_Root_Certification_Authority_ECC.crt
+-rw-r--r-- root root 2114 ./usr/share/ca-certificates/mozilla/SSL.com_EV_Root_Certification_Authority_RSA_R2.crt
+-rw-r--r-- root root 944 ./usr/share/ca-certificates/mozilla/SSL.com_Root_Certification_Authority_ECC.crt
+-rw-r--r-- root root 2094 ./usr/share/ca-certificates/mozilla/SSL.com_Root_Certification_Authority_RSA.crt
+-rw-r--r-- root root 1948 ./usr/share/ca-certificates/mozilla/Staat_der_Nederlanden_EV_Root_CA.crt
+-rw-r--r-- root root 2069 ./usr/share/ca-certificates/mozilla/Staat_der_Nederlanden_Root_CA_-_G2.crt
+-rw-r--r-- root root 1952 ./usr/share/ca-certificates/mozilla/Staat_der_Nederlanden_Root_CA_-_G3.crt
+-rw-r--r-- root root 1468 ./usr/share/ca-certificates/mozilla/Starfield_Class_2_CA.crt
+-rw-r--r-- root root 1399 ./usr/share/ca-certificates/mozilla/Starfield_Root_Certificate_Authority_-_G2.crt
+-rw-r--r-- root root 1424 ./usr/share/ca-certificates/mozilla/Starfield_Services_Root_Certificate_Authority_-_G2.crt
+-rw-r--r-- root root 2045 ./usr/share/ca-certificates/mozilla/SwissSign_Gold_CA_-_G2.crt
+-rw-r--r-- root root 2049 ./usr/share/ca-certificates/mozilla/SwissSign_Silver_CA_-_G2.crt
+-rw-r--r-- root root 1257 ./usr/share/ca-certificates/mozilla/SZAFIR_ROOT_CA2.crt
+-rw-r--r-- root root 1948 ./usr/share/ca-certificates/mozilla/Taiwan_GRCA.crt
+-rw-r--r-- root root 1870 ./usr/share/ca-certificates/mozilla/TeliaSonera_Root_CA_v1.crt
+-rw-r--r-- root root 1493 ./usr/share/ca-certificates/mozilla/thawte_Primary_Root_CA.crt
+-rw-r--r-- root root 940 ./usr/share/ca-certificates/mozilla/thawte_Primary_Root_CA_-_G2.crt
+-rw-r--r-- root root 1505 ./usr/share/ca-certificates/mozilla/thawte_Primary_Root_CA_-_G3.crt
+-rw-r--r-- root root 1493 ./usr/share/ca-certificates/mozilla/TrustCor_ECA-1.crt
+-rw-r--r-- root root 1513 ./usr/share/ca-certificates/mozilla/TrustCor_RootCert_CA-1.crt
+-rw-r--r-- root root 2204 ./usr/share/ca-certificates/mozilla/TrustCor_RootCert_CA-2.crt
+-rw-r--r-- root root 1241 ./usr/share/ca-certificates/mozilla/Trustis_FPS_Root_CA.crt
+-rw-r--r-- root root 1367 ./usr/share/ca-certificates/mozilla/T-TeleSec_GlobalRoot_Class_2.crt
+-rw-r--r-- root root 1367 ./usr/share/ca-certificates/mozilla/T-TeleSec_GlobalRoot_Class_3.crt
+-rw-r--r-- root root 1582 ./usr/share/ca-certificates/mozilla/TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.crt
+-rw-r--r-- root root 1883 ./usr/share/ca-certificates/mozilla/TWCA_Global_Root_CA.crt
+-rw-r--r-- root root 1269 ./usr/share/ca-certificates/mozilla/TWCA_Root_Certification_Authority.crt
+-rw-r--r-- root root 948 ./usr/share/ca-certificates/mozilla/USERTrust_ECC_Certification_Authority.crt
+-rw-r--r-- root root 2094 ./usr/share/ca-certificates/mozilla/USERTrust_RSA_Certification_Authority.crt
+-rw-r--r-- root root 1484 ./usr/share/ca-certificates/mozilla/Verisign_Class_3_Public_Primary_Certification_Authority_-_G3.crt
+-rw-r--r-- root root 1281 ./usr/share/ca-certificates/mozilla/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G4.crt
+-rw-r--r-- root root 1732 ./usr/share/ca-certificates/mozilla/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G5.crt
+-rw-r--r-- root root 1700 ./usr/share/ca-certificates/mozilla/VeriSign_Universal_Root_Certification_Authority.crt
+-rw-r--r-- root root 1513 ./usr/share/ca-certificates/mozilla/XRamp_Global_CA_Root.crt
+drwxr-xr-x root root 4096 ./usr/share/cmake
+drwxr-xr-x root root 4096 ./usr/share/cmake/bash-completion
+-rw-r--r-- root root 393 ./usr/share/cmake/bash-completion/bash-completion-config.cmake
+-rw-r--r-- root root 252 ./usr/share/cmake/bash-completion/bash-completion-config-version.cmake
+drwxr-xr-x root root 4096 ./usr/share/dbus-1
+drwxr-xr-x root root 4096 ./usr/share/dbus-1/services
+-rw-r--r-- root root 3561 ./usr/share/dbus-1/session.conf
+drwxr-xr-x root root 4096 ./usr/share/dbus-1/session.d
+-rw-r--r-- root root 5692 ./usr/share/dbus-1/system.conf
+drwxr-xr-x root root 4096 ./usr/share/dbus-1/system.d
+drwxr-xr-x root root 4096 ./usr/share/dbus-1/system-services
+drwxr-xr-x root root 4096 ./usr/share/dict
+drwxr-xr-x root root 4096 ./usr/share/drirc.d
+-rw-r--r-- root root 27422 ./usr/share/drirc.d/00-mesa-defaults.conf
+drwxr-xr-x root root 4096 ./usr/share/et
+-rw-r--r-- root root 6485 ./usr/share/et/et_c.awk
+-rw-r--r-- root root 4539 ./usr/share/et/et_h.awk
+drwxr-xr-x root root 4096 ./usr/share/fontconfig
+drwxr-xr-x root root 4096 ./usr/share/fontconfig/conf.avail
+-rw-r--r-- root root 706 ./usr/share/fontconfig/conf.avail/10-autohint.conf
+-rw-r--r-- root root 692 ./usr/share/fontconfig/conf.avail/10-hinting-full.conf
+-rw-r--r-- root root 696 ./usr/share/fontconfig/conf.avail/10-hinting-medium.conf
+-rw-r--r-- root root 692 ./usr/share/fontconfig/conf.avail/10-hinting-none.conf
+-rw-r--r-- root root 696 ./usr/share/fontconfig/conf.avail/10-hinting-slight.conf
+-rw-r--r-- root root 723 ./usr/share/fontconfig/conf.avail/10-no-sub-pixel.conf
+-rw-r--r-- root root 2228 ./usr/share/fontconfig/conf.avail/10-scale-bitmap-fonts.conf
+-rw-r--r-- root root 748 ./usr/share/fontconfig/conf.avail/10-sub-pixel-bgr.conf
+-rw-r--r-- root root 748 ./usr/share/fontconfig/conf.avail/10-sub-pixel-rgb.conf
+-rw-r--r-- root root 758 ./usr/share/fontconfig/conf.avail/10-sub-pixel-vbgr.conf
+-rw-r--r-- root root 758 ./usr/share/fontconfig/conf.avail/10-sub-pixel-vrgb.conf
+-rw-r--r-- root root 701 ./usr/share/fontconfig/conf.avail/10-unhinted.conf
+-rw-r--r-- root root 771 ./usr/share/fontconfig/conf.avail/11-lcdfilter-default.conf
+-rw-r--r-- root root 768 ./usr/share/fontconfig/conf.avail/11-lcdfilter-legacy.conf
+-rw-r--r-- root root 765 ./usr/share/fontconfig/conf.avail/11-lcdfilter-light.conf
+-rw-r--r-- root root 1537 ./usr/share/fontconfig/conf.avail/20-unhint-small-vera.conf
+-rw-r--r-- root root 3489 ./usr/share/fontconfig/conf.avail/25-unhint-nonlatin.conf
+-rw-r--r-- root root 13274 ./usr/share/fontconfig/conf.avail/30-metric-aliases.conf
+-rw-r--r-- root root 5424 ./usr/share/fontconfig/conf.avail/40-nonlatin.conf
+-rw-r--r-- root root 3543 ./usr/share/fontconfig/conf.avail/45-generic.conf
+-rw-r--r-- root root 6600 ./usr/share/fontconfig/conf.avail/45-latin.conf
+-rw-r--r-- root root 799 ./usr/share/fontconfig/conf.avail/49-sansserif.conf
+-rw-r--r-- root root 911 ./usr/share/fontconfig/conf.avail/50-user.conf
+-rw-r--r-- root root 423 ./usr/share/fontconfig/conf.avail/51-local.conf
+-rw-r--r-- root root 2041 ./usr/share/fontconfig/conf.avail/60-generic.conf
+-rw-r--r-- root root 2068 ./usr/share/fontconfig/conf.avail/60-latin.conf
+-rw-r--r-- root root 10293 ./usr/share/fontconfig/conf.avail/65-fonts-persian.conf
+-rw-r--r-- root root 464 ./usr/share/fontconfig/conf.avail/65-khmer.conf
+-rw-r--r-- root root 8170 ./usr/share/fontconfig/conf.avail/65-nonlatin.conf
+-rw-r--r-- root root 847 ./usr/share/fontconfig/conf.avail/69-unifont.conf
+-rw-r--r-- root root 487 ./usr/share/fontconfig/conf.avail/70-no-bitmaps.conf
+-rw-r--r-- root root 487 ./usr/share/fontconfig/conf.avail/70-yes-bitmaps.conf
+-rw-r--r-- root root 597 ./usr/share/fontconfig/conf.avail/80-delicious.conf
+-rw-r--r-- root root 1917 ./usr/share/fontconfig/conf.avail/90-synthetic.conf
+drwxr-xr-x root root 4096 ./usr/share/gettext
+drwxr-xr-x root root 4096 ./usr/share/gettext/its
+-rw-r--r-- root root 189 ./usr/share/gettext/its/fontconfig.its
+-rw-r--r-- root root 189 ./usr/share/gettext/its/fontconfig.loc
+-rw-r--r-- root root 1048 ./usr/share/gettext/its/gschema.its
+-rw-r--r-- root root 333 ./usr/share/gettext/its/gschema.loc
+drwxr-xr-x root root 4096 ./usr/share/gir-1.0
+-rw-r--r-- root root 23723 ./usr/share/gir-1.0/cairo-1.0.gir
+-rw-r--r-- root root 1185 ./usr/share/gir-1.0/DBus-1.0.gir
+-rw-r--r-- root root 797 ./usr/share/gir-1.0/DBusGLib-1.0.gir
+-rw-r--r-- root root 620 ./usr/share/gir-1.0/fontconfig-2.0.gir
+-rw-r--r-- root root 768 ./usr/share/gir-1.0/freetype2-2.0.gir
+-rw-r--r-- root root 6332887 ./usr/share/gir-1.0/Gio-2.0.gir
+-rw-r--r-- root root 29235 ./usr/share/gir-1.0/gir-1.2.rnc
+-rw-r--r-- root root 324506 ./usr/share/gir-1.0/GIRepository-2.0.gir
+-rw-r--r-- root root 1122 ./usr/share/gir-1.0/GL-1.0.gir
+-rw-r--r-- root root 3544680 ./usr/share/gir-1.0/GLib-2.0.gir
+-rw-r--r-- root root 19691 ./usr/share/gir-1.0/GModule-2.0.gir
+-rw-r--r-- root root 1247584 ./usr/share/gir-1.0/GObject-2.0.gir
+-rw-r--r-- root root 938 ./usr/share/gir-1.0/libxml2-2.0.gir
+-rw-r--r-- root root 65349 ./usr/share/gir-1.0/Vulkan-1.0.gir
+-rw-r--r-- root root 611 ./usr/share/gir-1.0/win32-1.0.gir
+-rw-r--r-- root root 361 ./usr/share/gir-1.0/xfixes-4.0.gir
+-rw-r--r-- root root 745 ./usr/share/gir-1.0/xft-2.0.gir
+-rw-r--r-- root root 2325 ./usr/share/gir-1.0/xlib-2.0.gir
+-rw-r--r-- root root 808 ./usr/share/gir-1.0/xrandr-1.3.gir
+drwxr-xr-x root root 4096 ./usr/share/glib-2.0
+drwxr-xr-x root root 4096 ./usr/share/glib-2.0/gettext
+drwxr-xr-x root root 4096 ./usr/share/glib-2.0/gettext/po
+-rw-r--r-- root root 8076 ./usr/share/glib-2.0/gettext/po/Makefile.in.in
+drwxr-xr-x root root 4096 ./usr/share/glib-2.0/schemas
+-rw-r--r-- root root 2916 ./usr/share/glib-2.0/schemas/gschema.dtd
+drwxr-xr-x root root 4096 ./usr/share/glib-2.0/valgrind
+-rw-r--r-- root root 15263 ./usr/share/glib-2.0/valgrind/glib.supp
+drwxr-xr-x root root 4096 ./usr/share/gobject-introspection-1.0
+-rw-r--r-- root root 15228 ./usr/share/gobject-introspection-1.0/gdump.c
+-rw-r--r-- root root 7177 ./usr/share/gobject-introspection-1.0/Makefile.introspection
+drwxr-xr-x root root 4096 ./usr/share/info
+drwxr-xr-x root root 4096 ./usr/share/libdrm
+-rw-r--r-- root root 7547 ./usr/share/libdrm/amdgpu.ids
+drwxr-xr-x root root 4096 ./usr/share/man
+drwxr-xr-x root root 4096 ./usr/share/mime
+-rw-r--r-- root root 10777 ./usr/share/mime/aliases
+drwxr-xr-x root root 20480 ./usr/share/mime/application
+-rw-r--r-- root root 2700 ./usr/share/mime/application/andrew-inset.xml
+-rw-r--r-- root root 3200 ./usr/share/mime/application/annodex.xml
+-rw-r--r-- root root 3123 ./usr/share/mime/application/atom+xml.xml
+-rw-r--r-- root root 3009 ./usr/share/mime/application/dicom.xml
+-rw-r--r-- root root 3299 ./usr/share/mime/application/ecmascript.xml
+-rw-r--r-- root root 3513 ./usr/share/mime/application/epub+zip.xml
+-rw-r--r-- root root 2263 ./usr/share/mime/application/geo+json.xml
+-rw-r--r-- root root 2304 ./usr/share/mime/application/gml+xml.xml
+-rw-r--r-- root root 3264 ./usr/share/mime/application/gnunet-directory.xml
+-rw-r--r-- root root 2354 ./usr/share/mime/application/gpx+xml.xml
+-rw-r--r-- root root 2813 ./usr/share/mime/application/gzip.xml
+-rw-r--r-- root root 3757 ./usr/share/mime/application/illustrator.xml
+-rw-r--r-- root root 3404 ./usr/share/mime/application/javascript.xml
+-rw-r--r-- root root 2140 ./usr/share/mime/application/jrd+json.xml
+-rw-r--r-- root root 1993 ./usr/share/mime/application/json-patch+json.xml
+-rw-r--r-- root root 2281 ./usr/share/mime/application/json.xml
+-rw-r--r-- root root 2255 ./usr/share/mime/application/ld+json.xml
+-rw-r--r-- root root 4240 ./usr/share/mime/application/mac-binhex40.xml
+-rw-r--r-- root root 1136 ./usr/share/mime/application/mathematica.xml
+-rw-r--r-- root root 3328 ./usr/share/mime/application/mathml+xml.xml
+-rw-r--r-- root root 3112 ./usr/share/mime/application/mbox.xml
+-rw-r--r-- root root 2759 ./usr/share/mime/application/metalink4+xml.xml
+-rw-r--r-- root root 2761 ./usr/share/mime/application/metalink+xml.xml
+-rw-r--r-- root root 2925 ./usr/share/mime/application/msword-template.xml
+-rw-r--r-- root root 3057 ./usr/share/mime/application/msword.xml
+-rw-r--r-- root root 2615 ./usr/share/mime/application/mxf.xml
+-rw-r--r-- root root 2687 ./usr/share/mime/application/octet-stream.xml
+-rw-r--r-- root root 3111 ./usr/share/mime/application/oda.xml
+-rw-r--r-- root root 3393 ./usr/share/mime/application/ogg.xml
+-rw-r--r-- root root 2057 ./usr/share/mime/application/owl+xml.xml
+-rw-r--r-- root root 3059 ./usr/share/mime/application/oxps.xml
+-rw-r--r-- root root 3131 ./usr/share/mime/application/pdf.xml
+-rw-r--r-- root root 4545 ./usr/share/mime/application/pgp-encrypted.xml
+-rw-r--r-- root root 3138 ./usr/share/mime/application/pgp-keys.xml
+-rw-r--r-- root root 3716 ./usr/share/mime/application/pgp-signature.xml
+-rw-r--r-- root root 3686 ./usr/share/mime/application/pkcs10.xml
+-rw-r--r-- root root 3703 ./usr/share/mime/application/pkcs12.xml
+-rw-r--r-- root root 1090 ./usr/share/mime/application/pkcs7-mime.xml
+-rw-r--r-- root root 3684 ./usr/share/mime/application/pkcs7-signature.xml
+-rw-r--r-- root root 2231 ./usr/share/mime/application/pkcs8-encrypted.xml
+-rw-r--r-- root root 2936 ./usr/share/mime/application/pkcs8.xml
+-rw-r--r-- root root 2674 ./usr/share/mime/application/pkix-cert.xml
+-rw-r--r-- root root 1120 ./usr/share/mime/application/pkix-crl.xml
+-rw-r--r-- root root 3306 ./usr/share/mime/application/pkix-pkipath.xml
+-rw-r--r-- root root 1110 ./usr/share/mime/application/postscript.xml
+-rw-r--r-- root root 3011 ./usr/share/mime/application/prs.plucker.xml
+-rw-r--r-- root root 1992 ./usr/share/mime/application/raml+yaml.xml
+-rw-r--r-- root root 1115 ./usr/share/mime/application/ram.xml
+-rw-r--r-- root root 2800 ./usr/share/mime/application/rdf+xml.xml
+-rw-r--r-- root root 2940 ./usr/share/mime/application/relax-ng-compact-syntax.xml
+-rw-r--r-- root root 2927 ./usr/share/mime/application/rss+xml.xml
+-rw-r--r-- root root 2954 ./usr/share/mime/application/rtf.xml
+-rw-r--r-- root root 3857 ./usr/share/mime/application/sdp.xml
+-rw-r--r-- root root 3701 ./usr/share/mime/application/sieve.xml
+-rw-r--r-- root root 3131 ./usr/share/mime/application/smil+xml.xml
+-rw-r--r-- root root 2733 ./usr/share/mime/application/sql.xml
+-rw-r--r-- root root 2434 ./usr/share/mime/application/trig.xml
+-rw-r--r-- root root 3433 ./usr/share/mime/application/vnd.adobe.flash.movie.xml
+-rw-r--r-- root root 432 ./usr/share/mime/application/vnd.amazon.mobi8-ebook.xml
+-rw-r--r-- root root 2605 ./usr/share/mime/application/vnd.android.package-archive.xml
+-rw-r--r-- root root 2358 ./usr/share/mime/application/vnd.appimage.xml
+-rw-r--r-- root root 3597 ./usr/share/mime/application/vnd.apple.mpegurl.xml
+-rw-r--r-- root root 3598 ./usr/share/mime/application/vnd.chess-pgn.xml
+-rw-r--r-- root root 2381 ./usr/share/mime/application/vnd.coffeescript.xml
+-rw-r--r-- root root 3230 ./usr/share/mime/application/vnd.comicbook-rar.xml
+-rw-r--r-- root root 3226 ./usr/share/mime/application/vnd.comicbook+zip.xml
+-rw-r--r-- root root 3655 ./usr/share/mime/application/vnd.corel-draw.xml
+-rw-r--r-- root root 3205 ./usr/share/mime/application/vnd.debian.binary-package.xml
+-rw-r--r-- root root 3403 ./usr/share/mime/application/vnd.emusic-emusic_package.xml
+-rw-r--r-- root root 2211 ./usr/share/mime/application/vnd.flatpak.ref.xml
+-rw-r--r-- root root 2273 ./usr/share/mime/application/vnd.flatpak.repo.xml
+-rw-r--r-- root root 2279 ./usr/share/mime/application/vnd.flatpak.xml
+-rw-r--r-- root root 3675 ./usr/share/mime/application/vnd.framemaker.xml
+-rw-r--r-- root root 3051 ./usr/share/mime/application/vnd.google-earth.kml+xml.xml
+-rw-r--r-- root root 3579 ./usr/share/mime/application/vnd.google-earth.kmz.xml
+-rw-r--r-- root root 2820 ./usr/share/mime/application/vnd.hp-hpgl.xml
+-rw-r--r-- root root 2769 ./usr/share/mime/application/vnd.hp-pcl.xml
+-rw-r--r-- root root 2536 ./usr/share/mime/application/vnd.iccprofile.xml
+-rw-r--r-- root root 3991 ./usr/share/mime/application/vnd.lotus-1-2-3.xml
+-rw-r--r-- root root 1142 ./usr/share/mime/application/vnd.lotus-wordpro.xml
+-rw-r--r-- root root 3540 ./usr/share/mime/application/vnd.mozilla.xul+xml.xml
+-rw-r--r-- root root 3419 ./usr/share/mime/application/vnd.ms-access.xml
+-rw-r--r-- root root 2921 ./usr/share/mime/application/vnd.ms-asf.xml
+-rw-r--r-- root root 3299 ./usr/share/mime/application/vnd.ms-cab-compressed.xml
+-rw-r--r-- root root 2619 ./usr/share/mime/application/vnd.ms-excel.addin.macroenabled.12.xml
+-rw-r--r-- root root 3407 ./usr/share/mime/application/vnd.ms-excel.sheet.binary.macroenabled.12.xml
+-rw-r--r-- root root 3330 ./usr/share/mime/application/vnd.ms-excel.sheet.macroenabled.12.xml
+-rw-r--r-- root root 2685 ./usr/share/mime/application/vnd.ms-excel.template.macroenabled.12.xml
+-rw-r--r-- root root 3525 ./usr/share/mime/application/vnd.ms-excel.xml
+-rw-r--r-- root root 3011 ./usr/share/mime/application/vnd.ms-htmlhelp.xml
+-rw-r--r-- root root 2734 ./usr/share/mime/application/vnd.ms-powerpoint.addin.macroenabled.12.xml
+-rw-r--r-- root root 3491 ./usr/share/mime/application/vnd.ms-powerpoint.presentation.macroenabled.12.xml
+-rw-r--r-- root root 2420 ./usr/share/mime/application/vnd.ms-powerpoint.slide.macroenabled.12.xml
+-rw-r--r-- root root 3485 ./usr/share/mime/application/vnd.ms-powerpoint.slideshow.macroenabled.12.xml
+-rw-r--r-- root root 2906 ./usr/share/mime/application/vnd.ms-powerpoint.template.macroenabled.12.xml
+-rw-r--r-- root root 3569 ./usr/share/mime/application/vnd.ms-powerpoint.xml
+-rw-r--r-- root root 2757 ./usr/share/mime/application/vnd.ms-publisher.xml
+-rw-r--r-- root root 2977 ./usr/share/mime/application/vnd.ms-tnef.xml
+-rw-r--r-- root root 1161 ./usr/share/mime/application/vnd.ms-visio.drawing.macroenabled.main+xml.xml
+-rw-r--r-- root root 1148 ./usr/share/mime/application/vnd.ms-visio.drawing.main+xml.xml
+-rw-r--r-- root root 1163 ./usr/share/mime/application/vnd.ms-visio.stencil.macroenabled.main+xml.xml
+-rw-r--r-- root root 1150 ./usr/share/mime/application/vnd.ms-visio.stencil.main+xml.xml
+-rw-r--r-- root root 1226 ./usr/share/mime/application/vnd.ms-visio.template.macroenabled.main+xml.xml
+-rw-r--r-- root root 1213 ./usr/share/mime/application/vnd.ms-visio.template.main+xml.xml
+-rw-r--r-- root root 3004 ./usr/share/mime/application/vnd.ms-word.document.macroenabled.12.xml
+-rw-r--r-- root root 2541 ./usr/share/mime/application/vnd.ms-word.template.macroenabled.12.xml
+-rw-r--r-- root root 3639 ./usr/share/mime/application/vnd.ms-works.xml
+-rw-r--r-- root root 3039 ./usr/share/mime/application/vnd.ms-wpl.xml
+-rw-r--r-- root root 2927 ./usr/share/mime/application/vnd.nintendo.snes.rom.xml
+-rw-r--r-- root root 2760 ./usr/share/mime/application/vnd.oasis.opendocument.chart-template.xml
+-rw-r--r-- root root 2879 ./usr/share/mime/application/vnd.oasis.opendocument.chart.xml
+-rw-r--r-- root root 3262 ./usr/share/mime/application/vnd.oasis.opendocument.database.xml
+-rw-r--r-- root root 2776 ./usr/share/mime/application/vnd.oasis.opendocument.formula-template.xml
+-rw-r--r-- root root 2954 ./usr/share/mime/application/vnd.oasis.opendocument.formula.xml
+-rw-r--r-- root root 3235 ./usr/share/mime/application/vnd.oasis.opendocument.graphics-flat-xml.xml
+-rw-r--r-- root root 2958 ./usr/share/mime/application/vnd.oasis.opendocument.graphics-template.xml
+-rw-r--r-- root root 2918 ./usr/share/mime/application/vnd.oasis.opendocument.graphics.xml
+-rw-r--r-- root root 2956 ./usr/share/mime/application/vnd.oasis.opendocument.image.xml
+-rw-r--r-- root root 3480 ./usr/share/mime/application/vnd.oasis.opendocument.presentation-flat-xml.xml
+-rw-r--r-- root root 2974 ./usr/share/mime/application/vnd.oasis.opendocument.presentation-template.xml
+-rw-r--r-- root root 3204 ./usr/share/mime/application/vnd.oasis.opendocument.presentation.xml
+-rw-r--r-- root root 3506 ./usr/share/mime/application/vnd.oasis.opendocument.spreadsheet-flat-xml.xml
+-rw-r--r-- root root 2970 ./usr/share/mime/application/vnd.oasis.opendocument.spreadsheet-template.xml
+-rw-r--r-- root root 3226 ./usr/share/mime/application/vnd.oasis.opendocument.spreadsheet.xml
+-rw-r--r-- root root 3352 ./usr/share/mime/application/vnd.oasis.opendocument.text-flat-xml.xml
+-rw-r--r-- root root 3033 ./usr/share/mime/application/vnd.oasis.opendocument.text-master.xml
+-rw-r--r-- root root 2956 ./usr/share/mime/application/vnd.oasis.opendocument.text-template.xml
+-rw-r--r-- root root 2925 ./usr/share/mime/application/vnd.oasis.opendocument.text-web.xml
+-rw-r--r-- root root 3024 ./usr/share/mime/application/vnd.oasis.opendocument.text.xml
+-rw-r--r-- root root 3524 ./usr/share/mime/application/vnd.openofficeorg.extension.xml
+-rw-r--r-- root root 3394 ./usr/share/mime/application/vnd.openxmlformats-officedocument.presentationml.presentation.xml
+-rw-r--r-- root root 3257 ./usr/share/mime/application/vnd.openxmlformats-officedocument.presentationml.slideshow.xml
+-rw-r--r-- root root 2932 ./usr/share/mime/application/vnd.openxmlformats-officedocument.presentationml.slide.xml
+-rw-r--r-- root root 3563 ./usr/share/mime/application/vnd.openxmlformats-officedocument.presentationml.template.xml
+-rw-r--r-- root root 3250 ./usr/share/mime/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.xml
+-rw-r--r-- root root 3378 ./usr/share/mime/application/vnd.openxmlformats-officedocument.spreadsheetml.template.xml
+-rw-r--r-- root root 2957 ./usr/share/mime/application/vnd.openxmlformats-officedocument.wordprocessingml.document.xml
+-rw-r--r-- root root 3210 ./usr/share/mime/application/vnd.openxmlformats-officedocument.wordprocessingml.template.xml
+-rw-r--r-- root root 3457 ./usr/share/mime/application/vnd.palm.xml
+-rw-r--r-- root root 2983 ./usr/share/mime/application/vnd.rar.xml
+-rw-r--r-- root root 3320 ./usr/share/mime/application/vnd.rn-realmedia.xml
+-rw-r--r-- root root 1759 ./usr/share/mime/application/vnd.snap.xml
+-rw-r--r-- root root 3196 ./usr/share/mime/application/vnd.sqlite3.xml
+-rw-r--r-- root root 1139 ./usr/share/mime/application/vnd.squashfs.xml
+-rw-r--r-- root root 3467 ./usr/share/mime/application/vnd.stardivision.calc.xml
+-rw-r--r-- root root 3228 ./usr/share/mime/application/vnd.stardivision.chart.xml
+-rw-r--r-- root root 3156 ./usr/share/mime/application/vnd.stardivision.draw.xml
+-rw-r--r-- root root 3619 ./usr/share/mime/application/vnd.stardivision.impress.xml
+-rw-r--r-- root root 3181 ./usr/share/mime/application/vnd.stardivision.mail.xml
+-rw-r--r-- root root 3090 ./usr/share/mime/application/vnd.stardivision.math.xml
+-rw-r--r-- root root 3489 ./usr/share/mime/application/vnd.stardivision.writer.xml
+-rw-r--r-- root root 3534 ./usr/share/mime/application/vnd.sun.xml.calc.template.xml
+-rw-r--r-- root root 3762 ./usr/share/mime/application/vnd.sun.xml.calc.xml
+-rw-r--r-- root root 3513 ./usr/share/mime/application/vnd.sun.xml.draw.template.xml
+-rw-r--r-- root root 3438 ./usr/share/mime/application/vnd.sun.xml.draw.xml
+-rw-r--r-- root root 3704 ./usr/share/mime/application/vnd.sun.xml.impress.template.xml
+-rw-r--r-- root root 4000 ./usr/share/mime/application/vnd.sun.xml.impress.xml
+-rw-r--r-- root root 3488 ./usr/share/mime/application/vnd.sun.xml.math.xml
+-rw-r--r-- root root 4341 ./usr/share/mime/application/vnd.sun.xml.writer.global.xml
+-rw-r--r-- root root 3819 ./usr/share/mime/application/vnd.sun.xml.writer.template.xml
+-rw-r--r-- root root 3800 ./usr/share/mime/application/vnd.sun.xml.writer.xml
+-rw-r--r-- root root 2835 ./usr/share/mime/application/vnd.symbian.install.xml
+-rw-r--r-- root root 1126 ./usr/share/mime/application/vnd.tcpdump.pcap.xml
+-rw-r--r-- root root 3046 ./usr/share/mime/application/vnd.visio.xml
+-rw-r--r-- root root 3633 ./usr/share/mime/application/vnd.wordperfect.xml
+-rw-r--r-- root root 1189 ./usr/share/mime/application/vnd.youtube.yt.xml
+-rw-r--r-- root root 2575 ./usr/share/mime/application/winhlp.xml
+-rw-r--r-- root root 2942 ./usr/share/mime/application/x-7z-compressed.xml
+-rw-r--r-- root root 3303 ./usr/share/mime/application/x-abiword.xml
+-rw-r--r-- root root 2785 ./usr/share/mime/application/x-ace.xml
+-rw-r--r-- root root 2890 ./usr/share/mime/application/x-alz.xml
+-rw-r--r-- root root 2185 ./usr/share/mime/application/x-amiga-disk-format.xml
+-rw-r--r-- root root 3479 ./usr/share/mime/application/x-amipro.xml
+-rw-r--r-- root root 3122 ./usr/share/mime/application/x-aportisdoc.xml
+-rw-r--r-- root root 2699 ./usr/share/mime/application/x-apple-diskimage.xml
+-rw-r--r-- root root 346 ./usr/share/mime/application/x-appleworks-document.xml
+-rw-r--r-- root root 3940 ./usr/share/mime/application/x-applix-spreadsheet.xml
+-rw-r--r-- root root 3574 ./usr/share/mime/application/x-applix-word.xml
+-rw-r--r-- root root 2804 ./usr/share/mime/application/x-archive.xml
+-rw-r--r-- root root 2759 ./usr/share/mime/application/x-arc.xml
+-rw-r--r-- root root 3010 ./usr/share/mime/application/x-arj.xml
+-rw-r--r-- root root 2899 ./usr/share/mime/application/x-asp.xml
+-rw-r--r-- root root 1019 ./usr/share/mime/application/x-atari-2600-rom.xml
+-rw-r--r-- root root 1019 ./usr/share/mime/application/x-atari-7800-rom.xml
+-rw-r--r-- root root 1021 ./usr/share/mime/application/x-atari-lynx-rom.xml
+-rw-r--r-- root root 3084 ./usr/share/mime/application/x-awk.xml
+-rw-r--r-- root root 3225 ./usr/share/mime/application/x-bcpio.xml
+-rw-r--r-- root root 3540 ./usr/share/mime/application/x-bittorrent.xml
+-rw-r--r-- root root 3102 ./usr/share/mime/application/x-blender.xml
+-rw-r--r-- root root 2357 ./usr/share/mime/application/x-bsdiff.xml
+-rw-r--r-- root root 4099 ./usr/share/mime/application/x-bzdvi.xml
+-rw-r--r-- root root 3945 ./usr/share/mime/application/x-bzip-compressed-tar.xml
+-rw-r--r-- root root 2986 ./usr/share/mime/application/x-bzip.xml
+-rw-r--r-- root root 3880 ./usr/share/mime/application/x-bzpdf.xml
+-rw-r--r-- root root 4236 ./usr/share/mime/application/x-bzpostscript.xml
+-rw-r--r-- root root 3190 ./usr/share/mime/application/x-cb7.xml
+-rw-r--r-- root root 3180 ./usr/share/mime/application/x-cbt.xml
+-rw-r--r-- root root 2858 ./usr/share/mime/application/x-ccmx.xml
+-rw-r--r-- root root 3292 ./usr/share/mime/application/x-cd-image.xml
+-rw-r--r-- root root 3136 ./usr/share/mime/application/x-cdrdao-toc.xml
+-rw-r--r-- root root 1099 ./usr/share/mime/application/x-cisco-vpn-settings.xml
+-rw-r--r-- root root 3042 ./usr/share/mime/application/x-class-file.xml
+-rw-r--r-- root root 3786 ./usr/share/mime/application/x-compressed-tar.xml
+-rw-r--r-- root root 3414 ./usr/share/mime/application/x-compress.xml
+-rw-r--r-- root root 3630 ./usr/share/mime/application/x-core.xml
+-rw-r--r-- root root 4192 ./usr/share/mime/application/x-cpio-compressed.xml
+-rw-r--r-- root root 3028 ./usr/share/mime/application/x-cpio.xml
+-rw-r--r-- root root 3273 ./usr/share/mime/application/x-csh.xml
+-rw-r--r-- root root 3240 ./usr/share/mime/application/x-cue.xml
+-rw-r--r-- root root 2785 ./usr/share/mime/application/x-dar.xml
+-rw-r--r-- root root 3031 ./usr/share/mime/application/x-dbf.xml
+-rw-r--r-- root root 1136 ./usr/share/mime/application/x-dc-rom.xml
+-rw-r--r-- root root 1241 ./usr/share/mime/application/x-designer.xml
+-rw-r--r-- root root 3922 ./usr/share/mime/application/x-desktop.xml
+-rw-r--r-- root root 3052 ./usr/share/mime/application/x-dia-diagram.xml
+-rw-r--r-- root root 2405 ./usr/share/mime/application/x-dia-shape.xml
+-rw-r--r-- root root 3273 ./usr/share/mime/application/x-docbook+xml.xml
+-rw-r--r-- root root 1051 ./usr/share/mime/application/x-doom-wad.xml
+-rw-r--r-- root root 3183 ./usr/share/mime/application/x-dvi.xml
+-rw-r--r-- root root 3473 ./usr/share/mime/application/x-egon.xml
+-rw-r--r-- root root 3341 ./usr/share/mime/application/x-e-theme.xml
+-rw-r--r-- root root 2837 ./usr/share/mime/application/x-executable.xml
+-rw-r--r-- root root 2172 ./usr/share/mime/application/x-fds-disk.xml
+-rw-r--r-- root root 3142 ./usr/share/mime/application/x-fictionbook+xml.xml
+-rw-r--r-- root root 3137 ./usr/share/mime/application/x-fluid.xml
+-rw-r--r-- root root 3465 ./usr/share/mime/application/x-font-afm.xml
+-rw-r--r-- root root 2866 ./usr/share/mime/application/x-font-bdf.xml
+-rw-r--r-- root root 2854 ./usr/share/mime/application/x-font-dos.xml
+-rw-r--r-- root root 3612 ./usr/share/mime/application/x-font-framemaker.xml
+-rw-r--r-- root root 3018 ./usr/share/mime/application/x-font-libgrx.xml
+-rw-r--r-- root root 3800 ./usr/share/mime/application/x-font-linux-psf.xml
+-rw-r--r-- root root 2918 ./usr/share/mime/application/x-font-pcf.xml
+-rw-r--r-- root root 3031 ./usr/share/mime/application/x-font-speedo.xml
+-rw-r--r-- root root 3244 ./usr/share/mime/application/x-font-sunos-news.xml
+-rw-r--r-- root root 3352 ./usr/share/mime/application/x-font-tex-tfm.xml
+-rw-r--r-- root root 2839 ./usr/share/mime/application/x-font-tex.xml
+-rw-r--r-- root root 3183 ./usr/share/mime/application/x-font-ttx.xml
+-rw-r--r-- root root 2200 ./usr/share/mime/application/x-font-type1.xml
+-rw-r--r-- root root 2741 ./usr/share/mime/application/x-font-vfont.xml
+-rw-r--r-- root root 1959 ./usr/share/mime/application/x-gameboy-color-rom.xml
+-rw-r--r-- root root 2895 ./usr/share/mime/application/x-gameboy-rom.xml
+-rw-r--r-- root root 2521 ./usr/share/mime/application/x-gamecube-rom.xml
+-rw-r--r-- root root 1722 ./usr/share/mime/application/x-gamegear-rom.xml
+-rw-r--r-- root root 3217 ./usr/share/mime/application/x-gba-rom.xml
+-rw-r--r-- root root 3125 ./usr/share/mime/application/x-gdbm.xml
+-rw-r--r-- root root 3528 ./usr/share/mime/application/x-gedcom.xml
+-rw-r--r-- root root 1892 ./usr/share/mime/application/x-genesis-32x-rom.xml
+-rw-r--r-- root root 2901 ./usr/share/mime/application/x-genesis-rom.xml
+-rw-r--r-- root root 4594 ./usr/share/mime/application/x-gettext-translation.xml
+-rw-r--r-- root root 3040 ./usr/share/mime/application/x-glade.xml
+-rw-r--r-- root root 3208 ./usr/share/mime/application/x-gnucash.xml
+-rw-r--r-- root root 3362 ./usr/share/mime/application/x-gnumeric.xml
+-rw-r--r-- root root 3130 ./usr/share/mime/application/x-gnuplot.xml
+-rw-r--r-- root root 2839 ./usr/share/mime/application/x-go-sgf.xml
+-rw-r--r-- root root 3559 ./usr/share/mime/application/x-graphite.xml
+-rw-r--r-- root root 1253 ./usr/share/mime/application/x-gtk-builder.xml
+-rw-r--r-- root root 3098 ./usr/share/mime/application/x-gtktalog.xml
+-rw-r--r-- root root 4096 ./usr/share/mime/application/x-gzdvi.xml
+-rw-r--r-- root root 4598 ./usr/share/mime/application/x-gz-font-linux-psf.xml
+-rw-r--r-- root root 3871 ./usr/share/mime/application/x-gzpdf.xml
+-rw-r--r-- root root 4380 ./usr/share/mime/application/x-gzpostscript.xml
+-rw-r--r-- root root 3146 ./usr/share/mime/application/x-hdf.xml
+-rw-r--r-- root root 2102 ./usr/share/mime/application/x-hfe-floppy-image.xml
+-rw-r--r-- root root 3048 ./usr/share/mime/application/xhtml+xml.xml
+-rw-r--r-- root root 3437 ./usr/share/mime/application/x-hwp.xml
+-rw-r--r-- root root 3922 ./usr/share/mime/application/x-hwt.xml
+-rw-r--r-- root root 3805 ./usr/share/mime/application/x-ica.xml
+-rw-r--r-- root root 2088 ./usr/share/mime/application/x-iff.xml
+-rw-r--r-- root root 2959 ./usr/share/mime/application/x-ipod-firmware.xml
+-rw-r--r-- root root 1098 ./usr/share/mime/application/x-ipynb+json.xml
+-rw-r--r-- root root 2355 ./usr/share/mime/application/x-iso9660-appimage.xml
+-rw-r--r-- root root 3393 ./usr/share/mime/application/x-it87.xml
+-rw-r--r-- root root 2779 ./usr/share/mime/application/x-iwork-keynote-sffkey.xml
+-rw-r--r-- root root 2956 ./usr/share/mime/application/x-java-archive.xml
+-rw-r--r-- root root 3006 ./usr/share/mime/application/x-java-jce-keystore.xml
+-rw-r--r-- root root 2826 ./usr/share/mime/application/x-java-jnlp-file.xml
+-rw-r--r-- root root 2810 ./usr/share/mime/application/x-java-keystore.xml
+-rw-r--r-- root root 3097 ./usr/share/mime/application/x-java-pack200.xml
+-rw-r--r-- root root 2902 ./usr/share/mime/application/x-java.xml
+-rw-r--r-- root root 3090 ./usr/share/mime/application/x-jbuilder-project.xml
+-rw-r--r-- root root 3023 ./usr/share/mime/application/x-karbon.xml
+-rw-r--r-- root root 2961 ./usr/share/mime/application/x-kchart.xml
+-rw-r--r-- root root 985 ./usr/share/mime/application/x-kexi-connectiondata.xml
+-rw-r--r-- root root 963 ./usr/share/mime/application/x-kexiproject-shortcut.xml
+-rw-r--r-- root root 1139 ./usr/share/mime/application/x-kexiproject-sqlite2.xml
+-rw-r--r-- root root 1235 ./usr/share/mime/application/x-kexiproject-sqlite3.xml
+-rw-r--r-- root root 3059 ./usr/share/mime/application/x-kformula.xml
+-rw-r--r-- root root 3235 ./usr/share/mime/application/x-killustrator.xml
+-rw-r--r-- root root 3186 ./usr/share/mime/application/x-kivio.xml
+-rw-r--r-- root root 2970 ./usr/share/mime/application/x-kontour.xml
+-rw-r--r-- root root 3112 ./usr/share/mime/application/x-kpovmodeler.xml
+-rw-r--r-- root root 3446 ./usr/share/mime/application/x-kpresenter.xml
+-rw-r--r-- root root 2978 ./usr/share/mime/application/x-krita.xml
+-rw-r--r-- root root 3981 ./usr/share/mime/application/x-kspread-crypt.xml
+-rw-r--r-- root root 3288 ./usr/share/mime/application/x-kspread.xml
+-rw-r--r-- root root 3087 ./usr/share/mime/application/x-ksysv-package.xml
+-rw-r--r-- root root 2981 ./usr/share/mime/application/x-kugar.xml
+-rw-r--r-- root root 3680 ./usr/share/mime/application/x-kword-crypt.xml
+-rw-r--r-- root root 3054 ./usr/share/mime/application/x-kword.xml
+-rw-r--r-- root root 2937 ./usr/share/mime/application/x-lha.xml
+-rw-r--r-- root root 2788 ./usr/share/mime/application/x-lhz.xml
+-rw-r--r-- root root 3529 ./usr/share/mime/application/xliff+xml.xml
+-rw-r--r-- root root 3509 ./usr/share/mime/application/x-lrzip-compressed-tar.xml
+-rw-r--r-- root root 2586 ./usr/share/mime/application/x-lrzip.xml
+-rw-r--r-- root root 2932 ./usr/share/mime/application/x-lyx.xml
+-rw-r--r-- root root 2407 ./usr/share/mime/application/x-lz4-compressed-tar.xml
+-rw-r--r-- root root 2047 ./usr/share/mime/application/x-lz4.xml
+-rw-r--r-- root root 2439 ./usr/share/mime/application/x-lzip-compressed-tar.xml
+-rw-r--r-- root root 2538 ./usr/share/mime/application/x-lzip.xml
+-rw-r--r-- root root 3787 ./usr/share/mime/application/x-lzma-compressed-tar.xml
+-rw-r--r-- root root 2879 ./usr/share/mime/application/x-lzma.xml
+-rw-r--r-- root root 2858 ./usr/share/mime/application/x-lzop.xml
+-rw-r--r-- root root 2450 ./usr/share/mime/application/x-lzpdf.xml
+-rw-r--r-- root root 2573 ./usr/share/mime/application/x-m4.xml
+-rw-r--r-- root root 3552 ./usr/share/mime/application/x-macbinary.xml
+-rw-r--r-- root root 3595 ./usr/share/mime/application/x-magicpoint.xml
+-rw-r--r-- root root 3076 ./usr/share/mime/application/x-markaby.xml
+-rw-r--r-- root root 2865 ./usr/share/mime/application/x-matroska.xml
+-rw-r--r-- root root 3816 ./usr/share/mime/application/x-mif.xml
+-rw-r--r-- root root 2522 ./usr/share/mime/application/x-mimearchive.xml
+-rw-r--r-- root root 2842 ./usr/share/mime/application/xml-dtd.xml
+-rw-r--r-- root root 3524 ./usr/share/mime/application/xml-external-parsed-entity.xml
+-rw-r--r-- root root 3038 ./usr/share/mime/application/xml.xml
+-rw-r--r-- root root 2798 ./usr/share/mime/application/x-mobipocket-ebook.xml
+-rw-r--r-- root root 3272 ./usr/share/mime/application/x-mozilla-bookmarks.xml
+-rw-r--r-- root root 3670 ./usr/share/mime/application/x-ms-dos-executable.xml
+-rw-r--r-- root root 3395 ./usr/share/mime/application/x-msi.xml
+-rw-r--r-- root root 1046 ./usr/share/mime/application/x-ms-wim.xml
+-rw-r--r-- root root 3069 ./usr/share/mime/application/x-mswinurl.xml
+-rw-r--r-- root root 2816 ./usr/share/mime/application/x-mswrite.xml
+-rw-r--r-- root root 2631 ./usr/share/mime/application/x-msx-rom.xml
+-rw-r--r-- root root 2950 ./usr/share/mime/application/x-n64-rom.xml
+-rw-r--r-- root root 3171 ./usr/share/mime/application/x-nautilus-link.xml
+-rw-r--r-- root root 3348 ./usr/share/mime/application/x-navi-animation.xml
+-rw-r--r-- root root 1852 ./usr/share/mime/application/x-neo-geo-pocket-color-rom.xml
+-rw-r--r-- root root 1874 ./usr/share/mime/application/x-neo-geo-pocket-rom.xml
+-rw-r--r-- root root 2681 ./usr/share/mime/application/x-nes-rom.xml
+-rw-r--r-- root root 3540 ./usr/share/mime/application/x-netcdf.xml
+-rw-r--r-- root root 3587 ./usr/share/mime/application/x-netshow-channel.xml
+-rw-r--r-- root root 2904 ./usr/share/mime/application/x-nintendo-ds-rom.xml
+-rw-r--r-- root root 2651 ./usr/share/mime/application/x-nzb.xml
+-rw-r--r-- root root 2816 ./usr/share/mime/application/x-object.xml
+-rw-r--r-- root root 3410 ./usr/share/mime/application/x-oleo.xml
+-rw-r--r-- root root 3999 ./usr/share/mime/application/x-ole-storage.xml
+-rw-r--r-- root root 1221 ./usr/share/mime/application/x-pagemaker.xml
+-rw-r--r-- root root 2785 ./usr/share/mime/application/x-pak.xml
+-rw-r--r-- root root 3058 ./usr/share/mime/application/x-par2.xml
+-rw-r--r-- root root 2817 ./usr/share/mime/application/x-partial-download.xml
+-rw-r--r-- root root 2149 ./usr/share/mime/application/x-pc-engine-rom.xml
+-rw-r--r-- root root 3072 ./usr/share/mime/application/x-pef-executable.xml
+-rw-r--r-- root root 3209 ./usr/share/mime/application/x-perl.xml
+-rw-r--r-- root root 3050 ./usr/share/mime/application/x-php.xml
+-rw-r--r-- root root 3264 ./usr/share/mime/application/x-pkcs7-certificates.xml
+-rw-r--r-- root root 3383 ./usr/share/mime/application/x-planperfect.xml
+-rw-r--r-- root root 2969 ./usr/share/mime/application/x-pocket-word.xml
+-rw-r--r-- root root 3489 ./usr/share/mime/application/x-profile.xml
+-rw-r--r-- root root 3521 ./usr/share/mime/application/x-pw.xml
+-rw-r--r-- root root 3180 ./usr/share/mime/application/x-python-bytecode.xml
+-rw-r--r-- root root 407 ./usr/share/mime/application/x-qemu-disk.xml
+-rw-r--r-- root root 2164 ./usr/share/mime/application/x-qpress.xml
+-rw-r--r-- root root 2458 ./usr/share/mime/application/x-qtiplot.xml
+-rw-r--r-- root root 3546 ./usr/share/mime/application/x-quattropro.xml
+-rw-r--r-- root root 1258 ./usr/share/mime/application/x-quicktime-media-link.xml
+-rw-r--r-- root root 3189 ./usr/share/mime/application/x-qw.xml
+-rw-r--r-- root root 2444 ./usr/share/mime/application/x-raw-disk-image.xml
+-rw-r--r-- root root 3223 ./usr/share/mime/application/x-raw-disk-image-xz-compressed.xml
+-rw-r--r-- root root 1828 ./usr/share/mime/application/x-raw-floppy-disk-image.xml
+-rw-r--r-- root root 2067 ./usr/share/mime/application/x-riff.xml
+-rw-r--r-- root root 2780 ./usr/share/mime/application/x-rpm.xml
+-rw-r--r-- root root 2941 ./usr/share/mime/application/x-ruby.xml
+-rw-r--r-- root root 3058 ./usr/share/mime/application/x-sami.xml
+-rw-r--r-- root root 2519 ./usr/share/mime/application/x-saturn-rom.xml
+-rw-r--r-- root root 3354 ./usr/share/mime/application/x-sc.xml
+-rw-r--r-- root root 2140 ./usr/share/mime/application/x-sega-cd-rom.xml
+-rw-r--r-- root root 1752 ./usr/share/mime/application/x-sega-pico-rom.xml
+-rw-r--r-- root root 1656 ./usr/share/mime/application/x-sg1000-rom.xml
+-rw-r--r-- root root 3576 ./usr/share/mime/application/x-shared-library-la.xml
+-rw-r--r-- root root 3341 ./usr/share/mime/application/x-sharedlib.xml
+-rw-r--r-- root root 3018 ./usr/share/mime/application/x-shar.xml
+-rw-r--r-- root root 3191 ./usr/share/mime/application/x-shellscript.xml
+-rw-r--r-- root root 2898 ./usr/share/mime/application/x-shorten.xml
+-rw-r--r-- root root 3125 ./usr/share/mime/application/x-siag.xml
+-rw-r--r-- root root 3067 ./usr/share/mime/application/x-slp.xml
+-rw-r--r-- root root 3271 ./usr/share/mime/application/xslt+xml.xml
+-rw-r--r-- root root 2868 ./usr/share/mime/application/x-smaf.xml
+-rw-r--r-- root root 1828 ./usr/share/mime/application/x-sms-rom.xml
+-rw-r--r-- root root 2563 ./usr/share/mime/application/x-source-rpm.xml
+-rw-r--r-- root root 3445 ./usr/share/mime/application/xspf+xml.xml
+-rw-r--r-- root root 1201 ./usr/share/mime/application/x-spss-por.xml
+-rw-r--r-- root root 1181 ./usr/share/mime/application/x-spss-sav.xml
+-rw-r--r-- root root 3154 ./usr/share/mime/application/x-sqlite2.xml
+-rw-r--r-- root root 3027 ./usr/share/mime/application/x-stuffit.xml
+-rw-r--r-- root root 3069 ./usr/share/mime/application/x-subrip.xml
+-rw-r--r-- root root 3146 ./usr/share/mime/application/x-sv4cpio.xml
+-rw-r--r-- root root 3637 ./usr/share/mime/application/x-sv4crc.xml
+-rw-r--r-- root root 2862 ./usr/share/mime/application/x-t602.xml
+-rw-r--r-- root root 2908 ./usr/share/mime/application/x-tar.xml
+-rw-r--r-- root root 3451 ./usr/share/mime/application/x-tarz.xml
+-rw-r--r-- root root 3391 ./usr/share/mime/application/x-tex-gf.xml
+-rw-r--r-- root root 3527 ./usr/share/mime/application/x-tex-pk.xml
+-rw-r--r-- root root 2916 ./usr/share/mime/application/x-tgif.xml
+-rw-r--r-- root root 2604 ./usr/share/mime/application/x-theme.xml
+-rw-r--r-- root root 2013 ./usr/share/mime/application/x-thomson-cartridge-memo7.xml
+-rw-r--r-- root root 1776 ./usr/share/mime/application/x-thomson-cassette.xml
+-rw-r--r-- root root 2342 ./usr/share/mime/application/x-thomson-sap-image.xml
+-rw-r--r-- root root 3216 ./usr/share/mime/application/x-toutdoux.xml
+-rw-r--r-- root root 3148 ./usr/share/mime/application/x-trash.xml
+-rw-r--r-- root root 3887 ./usr/share/mime/application/x-troff-man-compressed.xml
+-rw-r--r-- root root 2521 ./usr/share/mime/application/x-troff-man.xml
+-rw-r--r-- root root 3731 ./usr/share/mime/application/x-tzo.xml
+-rw-r--r-- root root 3110 ./usr/share/mime/application/x-ufraw.xml
+-rw-r--r-- root root 2836 ./usr/share/mime/application/x-ustar.xml
+-rw-r--r-- root root 1666 ./usr/share/mime/application/x-virtual-boy-rom.xml
+-rw-r--r-- root root 3242 ./usr/share/mime/application/x-wais-source.xml
+-rw-r--r-- root root 2456 ./usr/share/mime/application/x-wii-rom.xml
+-rw-r--r-- root root 1998 ./usr/share/mime/application/x-wii-wad.xml
+-rw-r--r-- root root 3595 ./usr/share/mime/application/x-windows-themepack.xml
+-rw-r--r-- root root 1989 ./usr/share/mime/application/x-wonderswan-color-rom.xml
+-rw-r--r-- root root 1825 ./usr/share/mime/application/x-wonderswan-rom.xml
+-rw-r--r-- root root 3782 ./usr/share/mime/application/x-wpg.xml
+-rw-r--r-- root root 2498 ./usr/share/mime/application/x-wwf.xml
+-rw-r--r-- root root 4757 ./usr/share/mime/application/x-x509-ca-cert.xml
+-rw-r--r-- root root 1890 ./usr/share/mime/application/x-xar.xml
+-rw-r--r-- root root 3167 ./usr/share/mime/application/x-xbel.xml
+-rw-r--r-- root root 3294 ./usr/share/mime/application/x-xpinstall.xml
+-rw-r--r-- root root 3373 ./usr/share/mime/application/x-xz-compressed-tar.xml
+-rw-r--r-- root root 3269 ./usr/share/mime/application/x-xzpdf.xml
+-rw-r--r-- root root 2449 ./usr/share/mime/application/x-xz.xml
+-rw-r--r-- root root 2822 ./usr/share/mime/application/x-yaml.xml
+-rw-r--r-- root root 2936 ./usr/share/mime/application/x-zerosize.xml
+-rw-r--r-- root root 2912 ./usr/share/mime/application/x-zip-compressed-fb2.xml
+-rw-r--r-- root root 2818 ./usr/share/mime/application/x-zoo.xml
+-rw-r--r-- root root 1995 ./usr/share/mime/application/x-zstd-compressed-tar.xml
+-rw-r--r-- root root 2901 ./usr/share/mime/application/zip.xml
+-rw-r--r-- root root 2084 ./usr/share/mime/application/zlib.xml
+-rw-r--r-- root root 1464 ./usr/share/mime/application/zstd.xml
+drwxr-xr-x root root 4096 ./usr/share/mime/audio
+-rw-r--r-- root root 2202 ./usr/share/mime/audio/aac.xml
+-rw-r--r-- root root 3368 ./usr/share/mime/audio/ac3.xml
+-rw-r--r-- root root 2944 ./usr/share/mime/audio/amr-wb.xml
+-rw-r--r-- root root 2771 ./usr/share/mime/audio/amr.xml
+-rw-r--r-- root root 1023 ./usr/share/mime/audio/annodex.xml
+-rw-r--r-- root root 3151 ./usr/share/mime/audio/basic.xml
+-rw-r--r-- root root 2798 ./usr/share/mime/audio/flac.xml
+-rw-r--r-- root root 2876 ./usr/share/mime/audio/midi.xml
+-rw-r--r-- root root 2623 ./usr/share/mime/audio/mp2.xml
+-rw-r--r-- root root 2884 ./usr/share/mime/audio/mp4.xml
+-rw-r--r-- root root 2936 ./usr/share/mime/audio/mpeg.xml
+-rw-r--r-- root root 1008 ./usr/share/mime/audio/ogg.xml
+-rw-r--r-- root root 3220 ./usr/share/mime/audio/prs.sid.xml
+-rw-r--r-- root root 1610 ./usr/share/mime/audio/usac.xml
+-rw-r--r-- root root 2180 ./usr/share/mime/audio/vnd.dts.hd.xml
+-rw-r--r-- root root 2055 ./usr/share/mime/audio/vnd.dts.xml
+-rw-r--r-- root root 3202 ./usr/share/mime/audio/vnd.rn-realaudio.xml
+-rw-r--r-- root root 2422 ./usr/share/mime/audio/webm.xml
+-rw-r--r-- root root 2713 ./usr/share/mime/audio/x-adpcm.xml
+-rw-r--r-- root root 3066 ./usr/share/mime/audio/x-aifc.xml
+-rw-r--r-- root root 3573 ./usr/share/mime/audio/x-aiff.xml
+-rw-r--r-- root root 2766 ./usr/share/mime/audio/x-amzxml.xml
+-rw-r--r-- root root 2758 ./usr/share/mime/audio/x-ape.xml
+-rw-r--r-- root root 2958 ./usr/share/mime/audio/x-flac+ogg.xml
+-rw-r--r-- root root 2864 ./usr/share/mime/audio/x-gsm.xml
+-rw-r--r-- root root 1076 ./usr/share/mime/audio/x-iriver-pla.xml
+-rw-r--r-- root root 3344 ./usr/share/mime/audio/x-it.xml
+-rw-r--r-- root root 3184 ./usr/share/mime/audio/x-m4b.xml
+-rw-r--r-- root root 1002 ./usr/share/mime/audio/x-m4r.xml
+-rw-r--r-- root root 2979 ./usr/share/mime/audio/x-matroska.xml
+-rw-r--r-- root root 3017 ./usr/share/mime/audio/x-minipsf.xml
+-rw-r--r-- root root 3256 ./usr/share/mime/audio/x-mo3.xml
+-rw-r--r-- root root 3640 ./usr/share/mime/audio/x-mod.xml
+-rw-r--r-- root root 3601 ./usr/share/mime/audio/x-mpegurl.xml
+-rw-r--r-- root root 3833 ./usr/share/mime/audio/x-ms-asx.xml
+-rw-r--r-- root root 3148 ./usr/share/mime/audio/x-ms-wma.xml
+-rw-r--r-- root root 2864 ./usr/share/mime/audio/x-musepack.xml
+-rw-r--r-- root root 2000 ./usr/share/mime/audio/x-opus+ogg.xml
+-rw-r--r-- root root 1778 ./usr/share/mime/audio/x-pn-audibleaudio.xml
+-rw-r--r-- root root 3385 ./usr/share/mime/audio/x-psflib.xml
+-rw-r--r-- root root 2682 ./usr/share/mime/audio/x-psf.xml
+-rw-r--r-- root root 2764 ./usr/share/mime/audio/x-riff.xml
+-rw-r--r-- root root 3393 ./usr/share/mime/audio/x-s3m.xml
+-rw-r--r-- root root 3693 ./usr/share/mime/audio/x-scpls.xml
+-rw-r--r-- root root 2976 ./usr/share/mime/audio/x-speex+ogg.xml
+-rw-r--r-- root root 2656 ./usr/share/mime/audio/x-speex.xml
+-rw-r--r-- root root 3290 ./usr/share/mime/audio/x-stm.xml
+-rw-r--r-- root root 2930 ./usr/share/mime/audio/x-tta.xml
+-rw-r--r-- root root 2737 ./usr/share/mime/audio/x-voc.xml
+-rw-r--r-- root root 3311 ./usr/share/mime/audio/x-vorbis+ogg.xml
+-rw-r--r-- root root 3641 ./usr/share/mime/audio/x-wavpack-correction.xml
+-rw-r--r-- root root 2833 ./usr/share/mime/audio/x-wavpack.xml
+-rw-r--r-- root root 2795 ./usr/share/mime/audio/x-wav.xml
+-rw-r--r-- root root 3518 ./usr/share/mime/audio/x-xi.xml
+-rw-r--r-- root root 2751 ./usr/share/mime/audio/x-xmf.xml
+-rw-r--r-- root root 3360 ./usr/share/mime/audio/x-xm.xml
+drwxr-xr-x root root 4096 ./usr/share/mime/font
+-rw-r--r-- root root 1752 ./usr/share/mime/font/collection.xml
+-rw-r--r-- root root 3213 ./usr/share/mime/font/otf.xml
+-rw-r--r-- root root 3063 ./usr/share/mime/font/ttf.xml
+-rw-r--r-- root root 1753 ./usr/share/mime/font/woff2.xml
+-rw-r--r-- root root 2331 ./usr/share/mime/font/woff.xml
+-rw-r--r-- root root 17449 ./usr/share/mime/generic-icons
+-rw-r--r-- root root 29350 ./usr/share/mime/globs
+-rw-r--r-- root root 32606 ./usr/share/mime/globs2
+-rw-r--r-- root root 0 ./usr/share/mime/icons
+drwxr-xr-x root root 4096 ./usr/share/mime/image
+-rw-r--r-- root root 3325 ./usr/share/mime/image/bmp.xml
+-rw-r--r-- root root 928 ./usr/share/mime/image/cgm.xml
+-rw-r--r-- root root 2788 ./usr/share/mime/image/dpx.xml
+-rw-r--r-- root root 2896 ./usr/share/mime/image/emf.xml
+-rw-r--r-- root root 1017 ./usr/share/mime/image/fax-g3.xml
+-rw-r--r-- root root 3011 ./usr/share/mime/image/fits.xml
+-rw-r--r-- root root 2851 ./usr/share/mime/image/gif.xml
+-rw-r--r-- root root 1713 ./usr/share/mime/image/heif.xml
+-rw-r--r-- root root 2775 ./usr/share/mime/image/ief.xml
+-rw-r--r-- root root 1995 ./usr/share/mime/image/jp2.xml
+-rw-r--r-- root root 2914 ./usr/share/mime/image/jpeg.xml
+-rw-r--r-- root root 1890 ./usr/share/mime/image/jpm.xml
+-rw-r--r-- root root 1891 ./usr/share/mime/image/jpx.xml
+-rw-r--r-- root root 2043 ./usr/share/mime/image/ktx.xml
+-rw-r--r-- root root 1030 ./usr/share/mime/image/openraster.xml
+-rw-r--r-- root root 2775 ./usr/share/mime/image/png.xml
+-rw-r--r-- root root 1057 ./usr/share/mime/image/rle.xml
+-rw-r--r-- root root 3368 ./usr/share/mime/image/svg+xml-compressed.xml
+-rw-r--r-- root root 2782 ./usr/share/mime/image/svg+xml.xml
+-rw-r--r-- root root 2852 ./usr/share/mime/image/tiff.xml
+-rw-r--r-- root root 3033 ./usr/share/mime/image/vnd.adobe.photoshop.xml
+-rw-r--r-- root root 2120 ./usr/share/mime/image/vnd.djvu+multipage.xml
+-rw-r--r-- root root 2911 ./usr/share/mime/image/vnd.djvu.xml
+-rw-r--r-- root root 3101 ./usr/share/mime/image/vnd.dwg.xml
+-rw-r--r-- root root 3301 ./usr/share/mime/image/vnd.dxf.xml
+-rw-r--r-- root root 2244 ./usr/share/mime/image/vnd.microsoft.icon.xml
+-rw-r--r-- root root 933 ./usr/share/mime/image/vnd.ms-modi.xml
+-rw-r--r-- root root 2993 ./usr/share/mime/image/vnd.rn-realpix.xml
+-rw-r--r-- root root 2775 ./usr/share/mime/image/vnd.wap.wbmp.xml
+-rw-r--r-- root root 2764 ./usr/share/mime/image/vnd.zbrush.pcx.xml
+-rw-r--r-- root root 1985 ./usr/share/mime/image/webp.xml
+-rw-r--r-- root root 2901 ./usr/share/mime/image/wmf.xml
+-rw-r--r-- root root 3236 ./usr/share/mime/image/x-3ds.xml
+-rw-r--r-- root root 3249 ./usr/share/mime/image/x-adobe-dng.xml
+-rw-r--r-- root root 3454 ./usr/share/mime/image/x-applix-graphics.xml
+-rw-r--r-- root root 3863 ./usr/share/mime/image/x-bzeps.xml
+-rw-r--r-- root root 3517 ./usr/share/mime/image/x-canon-cr2.xml
+-rw-r--r-- root root 3480 ./usr/share/mime/image/x-canon-crw.xml
+-rw-r--r-- root root 3346 ./usr/share/mime/image/x-cmu-raster.xml
+-rw-r--r-- root root 3323 ./usr/share/mime/image/x-compressed-xcf.xml
+-rw-r--r-- root root 3230 ./usr/share/mime/image/x-dcraw.xml
+-rw-r--r-- root root 3119 ./usr/share/mime/image/x-dds.xml
+-rw-r--r-- root root 2780 ./usr/share/mime/image/x-dib.xml
+-rw-r--r-- root root 2906 ./usr/share/mime/image/x-eps.xml
+-rw-r--r-- root root 2720 ./usr/share/mime/image/x-exr.xml
+-rw-r--r-- root root 2767 ./usr/share/mime/image/x-fpx.xml
+-rw-r--r-- root root 3445 ./usr/share/mime/image/x-fuji-raf.xml
+-rw-r--r-- root root 1569 ./usr/share/mime/image/x-gimp-gbr.xml
+-rw-r--r-- root root 1672 ./usr/share/mime/image/x-gimp-gih.xml
+-rw-r--r-- root root 1564 ./usr/share/mime/image/x-gimp-pat.xml
+-rw-r--r-- root root 3863 ./usr/share/mime/image/x-gzeps.xml
+-rw-r--r-- root root 2927 ./usr/share/mime/image/x-icns.xml
+-rw-r--r-- root root 3043 ./usr/share/mime/image/x-ilbm.xml
+-rw-r--r-- root root 2863 ./usr/share/mime/image/x-jng.xml
+-rw-r--r-- root root 1821 ./usr/share/mime/image/x-jp2-codestream.xml
+-rw-r--r-- root root 3442 ./usr/share/mime/image/x-kodak-dcr.xml
+-rw-r--r-- root root 3428 ./usr/share/mime/image/x-kodak-k25.xml
+-rw-r--r-- root root 3444 ./usr/share/mime/image/x-kodak-kdc.xml
+-rw-r--r-- root root 3140 ./usr/share/mime/image/x-lwo.xml
+-rw-r--r-- root root 3058 ./usr/share/mime/image/x-lws.xml
+-rw-r--r-- root root 3324 ./usr/share/mime/image/x-macpaint.xml
+-rw-r--r-- root root 3495 ./usr/share/mime/image/x-minolta-mrw.xml
+-rw-r--r-- root root 2793 ./usr/share/mime/image/x-msod.xml
+-rw-r--r-- root root 2665 ./usr/share/mime/image/x-niff.xml
+-rw-r--r-- root root 3442 ./usr/share/mime/image/x-nikon-nef.xml
+-rw-r--r-- root root 3607 ./usr/share/mime/image/x-olympus-orf.xml
+-rw-r--r-- root root 3360 ./usr/share/mime/image/x-panasonic-rw2.xml
+-rw-r--r-- root root 3358 ./usr/share/mime/image/x-panasonic-rw.xml
+-rw-r--r-- root root 3499 ./usr/share/mime/image/x-pentax-pef.xml
+-rw-r--r-- root root 2793 ./usr/share/mime/image/x-photo-cd.xml
+-rw-r--r-- root root 3911 ./usr/share/mime/image/x-pict.xml
+-rw-r--r-- root root 2789 ./usr/share/mime/image/x-portable-anymap.xml
+-rw-r--r-- root root 2904 ./usr/share/mime/image/x-portable-bitmap.xml
+-rw-r--r-- root root 2830 ./usr/share/mime/image/x-portable-graymap.xml
+-rw-r--r-- root root 2828 ./usr/share/mime/image/x-portable-pixmap.xml
+-rw-r--r-- root root 2989 ./usr/share/mime/image/x-quicktime.xml
+-rw-r--r-- root root 2784 ./usr/share/mime/image/x-rgb.xml
+-rw-r--r-- root root 2640 ./usr/share/mime/image/x-sgi.xml
+-rw-r--r-- root root 3400 ./usr/share/mime/image/x-sigma-x3f.xml
+-rw-r--r-- root root 2956 ./usr/share/mime/image/x-skencil.xml
+-rw-r--r-- root root 3388 ./usr/share/mime/image/x-sony-arw.xml
+-rw-r--r-- root root 3388 ./usr/share/mime/image/x-sony-sr2.xml
+-rw-r--r-- root root 3387 ./usr/share/mime/image/x-sony-srf.xml
+-rw-r--r-- root root 3040 ./usr/share/mime/image/x-sun-raster.xml
+-rw-r--r-- root root 2867 ./usr/share/mime/image/x-tga.xml
+-rw-r--r-- root root 2644 ./usr/share/mime/image/x-tiff-multipage.xml
+-rw-r--r-- root root 2941 ./usr/share/mime/image/x-win-bitmap.xml
+-rw-r--r-- root root 2721 ./usr/share/mime/image/x-xbitmap.xml
+-rw-r--r-- root root 2832 ./usr/share/mime/image/x-xcf.xml
+-rw-r--r-- root root 2592 ./usr/share/mime/image/x-xcursor.xml
+-rw-r--r-- root root 2753 ./usr/share/mime/image/x-xfig.xml
+-rw-r--r-- root root 2798 ./usr/share/mime/image/x-xpixmap.xml
+-rw-r--r-- root root 3109 ./usr/share/mime/image/x-xwindowdump.xml
+drwxr-xr-x root root 4096 ./usr/share/mime/inode
+-rw-r--r-- root root 3006 ./usr/share/mime/inode/blockdevice.xml
+-rw-r--r-- root root 3145 ./usr/share/mime/inode/chardevice.xml
+-rw-r--r-- root root 2543 ./usr/share/mime/inode/directory.xml
+-rw-r--r-- root root 2413 ./usr/share/mime/inode/fifo.xml
+-rw-r--r-- root root 3021 ./usr/share/mime/inode/mount-point.xml
+-rw-r--r-- root root 2469 ./usr/share/mime/inode/socket.xml
+-rw-r--r-- root root 3295 ./usr/share/mime/inode/symlink.xml
+-rw-r--r-- root root 27700 ./usr/share/mime/magic
+drwxr-xr-x root root 4096 ./usr/share/mime/message
+-rw-r--r-- root root 3735 ./usr/share/mime/message/delivery-status.xml
+-rw-r--r-- root root 3771 ./usr/share/mime/message/disposition-notification.xml
+-rw-r--r-- root root 3777 ./usr/share/mime/message/external-body.xml
+-rw-r--r-- root root 3617 ./usr/share/mime/message/news.xml
+-rw-r--r-- root root 3728 ./usr/share/mime/message/partial.xml
+-rw-r--r-- root root 3183 ./usr/share/mime/message/rfc822.xml
+-rw-r--r-- root root 3427 ./usr/share/mime/message/x-gnu-rmail.xml
+-rw-r--r-- root root 136104 ./usr/share/mime/mime.cache
+drwxr-xr-x root root 4096 ./usr/share/mime/model
+-rw-r--r-- root root 2003 ./usr/share/mime/model/iges.xml
+-rw-r--r-- root root 1695 ./usr/share/mime/model/stl.xml
+-rw-r--r-- root root 3189 ./usr/share/mime/model/vrml.xml
+drwxr-xr-x root root 4096 ./usr/share/mime/multipart
+-rw-r--r-- root root 3761 ./usr/share/mime/multipart/alternative.xml
+-rw-r--r-- root root 4361 ./usr/share/mime/multipart/appledouble.xml
+-rw-r--r-- root root 3157 ./usr/share/mime/multipart/digest.xml
+-rw-r--r-- root root 3267 ./usr/share/mime/multipart/encrypted.xml
+-rw-r--r-- root root 3191 ./usr/share/mime/multipart/mixed.xml
+-rw-r--r-- root root 3209 ./usr/share/mime/multipart/related.xml
+-rw-r--r-- root root 3556 ./usr/share/mime/multipart/report.xml
+-rw-r--r-- root root 3203 ./usr/share/mime/multipart/signed.xml
+-rw-r--r-- root root 3867 ./usr/share/mime/multipart/x-mixed-replace.xml
+-rw-r--r-- root root 16073 ./usr/share/mime/subclasses
+drwxr-xr-x root root 4096 ./usr/share/mime/text
+-rw-r--r-- root root 1172 ./usr/share/mime/text/cache-manifest.xml
+-rw-r--r-- root root 3178 ./usr/share/mime/text/calendar.xml
+-rw-r--r-- root root 3113 ./usr/share/mime/text/css.xml
+-rw-r--r-- root root 2266 ./usr/share/mime/text/csv-schema.xml
+-rw-r--r-- root root 3027 ./usr/share/mime/text/csv.xml
+-rw-r--r-- root root 3801 ./usr/share/mime/text/enriched.xml
+-rw-r--r-- root root 3017 ./usr/share/mime/text/htmlh.xml
+-rw-r--r-- root root 2991 ./usr/share/mime/text/html.xml
+-rw-r--r-- root root 2600 ./usr/share/mime/text/markdown.xml
+-rw-r--r-- root root 3420 ./usr/share/mime/text/plain.xml
+-rw-r--r-- root root 3291 ./usr/share/mime/text/rfc822-headers.xml
+-rw-r--r-- root root 3602 ./usr/share/mime/text/richtext.xml
+-rw-r--r-- root root 2164 ./usr/share/mime/text/rust.xml
+-rw-r--r-- root root 3073 ./usr/share/mime/text/sgml.xml
+-rw-r--r-- root root 3961 ./usr/share/mime/text/spreadsheet.xml
+-rw-r--r-- root root 2849 ./usr/share/mime/text/tab-separated-values.xml
+-rw-r--r-- root root 3191 ./usr/share/mime/text/troff.xml
+-rw-r--r-- root root 2106 ./usr/share/mime/text/turtle.xml
+-rw-r--r-- root root 3618 ./usr/share/mime/text/vcard.xml
+-rw-r--r-- root root 2914 ./usr/share/mime/text/vnd.graphviz.xml
+-rw-r--r-- root root 3253 ./usr/share/mime/text/vnd.qt.linguist.xml
+-rw-r--r-- root root 3050 ./usr/share/mime/text/vnd.rn-realtext.xml
+-rw-r--r-- root root 1636 ./usr/share/mime/text/vnd.senx.warpscript.xml
+-rw-r--r-- root root 2876 ./usr/share/mime/text/vnd.sun.j2me.app-descriptor.xml
+-rw-r--r-- root root 3020 ./usr/share/mime/text/vnd.wap.wmlscript.xml
+-rw-r--r-- root root 3039 ./usr/share/mime/text/vnd.wap.wml.xml
+-rw-r--r-- root root 2632 ./usr/share/mime/text/vtt.xml
+-rw-r--r-- root root 3143 ./usr/share/mime/text/x-adasrc.xml
+-rw-r--r-- root root 2961 ./usr/share/mime/text/x-authors.xml
+-rw-r--r-- root root 3040 ./usr/share/mime/text/x-bibtex.xml
+-rw-r--r-- root root 3310 ./usr/share/mime/text/x-changelog.xml
+-rw-r--r-- root root 3007 ./usr/share/mime/text/x-c++hdr.xml
+-rw-r--r-- root root 2803 ./usr/share/mime/text/x-chdr.xml
+-rw-r--r-- root root 3188 ./usr/share/mime/text/x-cmake.xml
+-rw-r--r-- root root 1168 ./usr/share/mime/text/x-cobol.xml
+-rw-r--r-- root root 3113 ./usr/share/mime/text/x-copying.xml
+-rw-r--r-- root root 3127 ./usr/share/mime/text/x-credits.xml
+-rw-r--r-- root root 3074 ./usr/share/mime/text/x-csharp.xml
+-rw-r--r-- root root 3250 ./usr/share/mime/text/x-c++src.xml
+-rw-r--r-- root root 3064 ./usr/share/mime/text/x-csrc.xml
+-rw-r--r-- root root 1989 ./usr/share/mime/text/x-dbus-service.xml
+-rw-r--r-- root root 3032 ./usr/share/mime/text/x-dcl.xml
+-rw-r--r-- root root 3236 ./usr/share/mime/text/x-dsl.xml
+-rw-r--r-- root root 2994 ./usr/share/mime/text/x-dsrc.xml
+-rw-r--r-- root root 3254 ./usr/share/mime/text/x-eiffel.xml
+-rw-r--r-- root root 3617 ./usr/share/mime/text/x-emacs-lisp.xml
+-rw-r--r-- root root 3221 ./usr/share/mime/text/x-erlang.xml
+-rw-r--r-- root root 3527 ./usr/share/mime/text/x-fortran.xml
+-rw-r--r-- root root 1710 ./usr/share/mime/text/x.gcode.xml
+-rw-r--r-- root root 2317 ./usr/share/mime/text/x-genie.xml
+-rw-r--r-- root root 3320 ./usr/share/mime/text/x-gettext-translation-template.xml
+-rw-r--r-- root root 3221 ./usr/share/mime/text/x-gettext-translation.xml
+-rw-r--r-- root root 1013 ./usr/share/mime/text/x-gherkin.xml
+-rw-r--r-- root root 1138 ./usr/share/mime/text/x-google-video-pointer.xml
+-rw-r--r-- root root 2539 ./usr/share/mime/text/x-go.xml
+-rw-r--r-- root root 1644 ./usr/share/mime/text/x-gradle.xml
+-rw-r--r-- root root 1179 ./usr/share/mime/text/x-groovy.xml
+-rw-r--r-- root root 3360 ./usr/share/mime/text/x-haskell.xml
+-rw-r--r-- root root 3033 ./usr/share/mime/text/x-idl.xml
+-rw-r--r-- root root 3023 ./usr/share/mime/text/x-imelody.xml
+-rw-r--r-- root root 3418 ./usr/share/mime/text/x-install.xml
+-rw-r--r-- root root 3599 ./usr/share/mime/text/x-iptables.xml
+-rw-r--r-- root root 3086 ./usr/share/mime/text/x-java.xml
+-rw-r--r-- root root 3167 ./usr/share/mime/text/x-ldif.xml
+-rw-r--r-- root root 3110 ./usr/share/mime/text/x-lilypond.xml
+-rw-r--r-- root root 3063 ./usr/share/mime/text/x-literate-haskell.xml
+-rw-r--r-- root root 3190 ./usr/share/mime/text/x-log.xml
+-rw-r--r-- root root 2802 ./usr/share/mime/text/x-lua.xml
+-rw-r--r-- root root 1200 ./usr/share/mime/text/x-makefile.xml
+-rw-r--r-- root root 985 ./usr/share/mime/text/x-matlab.xml
+-rw-r--r-- root root 1881 ./usr/share/mime/text/x-maven+xml.xml
+-rw-r--r-- root root 3157 ./usr/share/mime/text/xmcd.xml
+-rw-r--r-- root root 2231 ./usr/share/mime/text/x-meson.xml
+-rw-r--r-- root root 3177 ./usr/share/mime/text/x-microdvd.xml
+-rw-r--r-- root root 2799 ./usr/share/mime/text/x-moc.xml
+-rw-r--r-- root root 2267 ./usr/share/mime/text/x-modelica.xml
+-rw-r--r-- root root 957 ./usr/share/mime/text/x-mof.xml
+-rw-r--r-- root root 3100 ./usr/share/mime/text/x-mpsub.xml
+-rw-r--r-- root root 3359 ./usr/share/mime/text/x-mrml.xml
+-rw-r--r-- root root 3496 ./usr/share/mime/text/x-ms-regedit.xml
+-rw-r--r-- root root 1114 ./usr/share/mime/text/x-mup.xml
+-rw-r--r-- root root 2801 ./usr/share/mime/text/x-nfo.xml
+-rw-r--r-- root root 3537 ./usr/share/mime/text/x-objcsrc.xml
+-rw-r--r-- root root 3076 ./usr/share/mime/text/x-ocaml.xml
+-rw-r--r-- root root 2703 ./usr/share/mime/text/x-ocl.xml
+-rw-r--r-- root root 2654 ./usr/share/mime/text/x-ooc.xml
+-rw-r--r-- root root 1909 ./usr/share/mime/text/x-opencl-src.xml
+-rw-r--r-- root root 3116 ./usr/share/mime/text/x-opml+xml.xml
+-rw-r--r-- root root 3227 ./usr/share/mime/text/x-pascal.xml
+-rw-r--r-- root root 3558 ./usr/share/mime/text/x-patch.xml
+-rw-r--r-- root root 1829 ./usr/share/mime/text/x-python3.xml
+-rw-r--r-- root root 3116 ./usr/share/mime/text/x-python.xml
+-rw-r--r-- root root 2865 ./usr/share/mime/text/x-qml.xml
+-rw-r--r-- root root 3185 ./usr/share/mime/text/x-readme.xml
+-rw-r--r-- root root 3144 ./usr/share/mime/text/x-reject.xml
+-rw-r--r-- root root 3198 ./usr/share/mime/text/x-rpm-spec.xml
+-rw-r--r-- root root 1880 ./usr/share/mime/text/x-rst.xml
+-rw-r--r-- root root 2443 ./usr/share/mime/text/x-sass.xml
+-rw-r--r-- root root 2616 ./usr/share/mime/text/x-scala.xml
+-rw-r--r-- root root 3324 ./usr/share/mime/text/x-scheme.xml
+-rw-r--r-- root root 2573 ./usr/share/mime/text/x-scons.xml
+-rw-r--r-- root root 1132 ./usr/share/mime/text/x-scss.xml
+-rw-r--r-- root root 3114 ./usr/share/mime/text/x-setext.xml
+-rw-r--r-- root root 2929 ./usr/share/mime/text/x-ssa.xml
+-rw-r--r-- root root 3142 ./usr/share/mime/text/x-subviewer.xml
+-rw-r--r-- root root 2665 ./usr/share/mime/text/x-svhdr.xml
+-rw-r--r-- root root 2853 ./usr/share/mime/text/x-svsrc.xml
+-rw-r--r-- root root 2364 ./usr/share/mime/text/x-systemd-unit.xml
+-rw-r--r-- root root 2818 ./usr/share/mime/text/x-tcl.xml
+-rw-r--r-- root root 3204 ./usr/share/mime/text/x-texinfo.xml
+-rw-r--r-- root root 3092 ./usr/share/mime/text/x-tex.xml
+-rw-r--r-- root root 3580 ./usr/share/mime/text/x-troff-me.xml
+-rw-r--r-- root root 3580 ./usr/share/mime/text/x-troff-mm.xml
+-rw-r--r-- root root 3580 ./usr/share/mime/text/x-troff-ms.xml
+-rw-r--r-- root root 1811 ./usr/share/mime/text/x-twig.xml
+-rw-r--r-- root root 3150 ./usr/share/mime/text/x-txt2tags.xml
+-rw-r--r-- root root 3074 ./usr/share/mime/text/x-uil.xml
+-rw-r--r-- root root 3061 ./usr/share/mime/text/x-uri.xml
+-rw-r--r-- root root 2586 ./usr/share/mime/text/x-uuencode.xml
+-rw-r--r-- root root 3062 ./usr/share/mime/text/x-vala.xml
+-rw-r--r-- root root 2676 ./usr/share/mime/text/x-verilog.xml
+-rw-r--r-- root root 2711 ./usr/share/mime/text/x-vhdl.xml
+-rw-r--r-- root root 2710 ./usr/share/mime/text/x-xmi.xml
+-rw-r--r-- root root 2956 ./usr/share/mime/text/x-xslfo.xml
+-rw-r--r-- root root 1140 ./usr/share/mime/treemagic
+-rw-r--r-- root root 17478 ./usr/share/mime/types
+-rw-r--r-- root root 5 ./usr/share/mime/version
+drwxr-xr-x root root 4096 ./usr/share/mime/video
+-rw-r--r-- root root 3285 ./usr/share/mime/video/3gpp2.xml
+-rw-r--r-- root root 3885 ./usr/share/mime/video/3gpp.xml
+-rw-r--r-- root root 1021 ./usr/share/mime/video/annodex.xml
+-rw-r--r-- root root 2734 ./usr/share/mime/video/dv.xml
+-rw-r--r-- root root 2779 ./usr/share/mime/video/isivideo.xml
+-rw-r--r-- root root 1888 ./usr/share/mime/video/mj2.xml
+-rw-r--r-- root root 3455 ./usr/share/mime/video/mp2t.xml
+-rw-r--r-- root root 3007 ./usr/share/mime/video/mp4.xml
+-rw-r--r-- root root 3190 ./usr/share/mime/video/mpeg.xml
+-rw-r--r-- root root 979 ./usr/share/mime/video/ogg.xml
+-rw-r--r-- root root 3114 ./usr/share/mime/video/quicktime.xml
+-rw-r--r-- root root 2948 ./usr/share/mime/video/vnd.mpegurl.xml
+-rw-r--r-- root root 3172 ./usr/share/mime/video/vnd.rn-realvideo.xml
+-rw-r--r-- root root 2913 ./usr/share/mime/video/vnd.vivo.xml
+-rw-r--r-- root root 3006 ./usr/share/mime/video/wavelet.xml
+-rw-r--r-- root root 2461 ./usr/share/mime/video/webm.xml
+-rw-r--r-- root root 3073 ./usr/share/mime/video/x-anim.xml
+-rw-r--r-- root root 2944 ./usr/share/mime/video/x-flic.xml
+-rw-r--r-- root root 2995 ./usr/share/mime/video/x-flv.xml
+-rw-r--r-- root root 2533 ./usr/share/mime/video/x-javafx.xml
+-rw-r--r-- root root 2381 ./usr/share/mime/video/x-matroska-3d.xml
+-rw-r--r-- root root 3095 ./usr/share/mime/video/x-matroska.xml
+-rw-r--r-- root root 1841 ./usr/share/mime/video/x-mjpeg.xml
+-rw-r--r-- root root 2935 ./usr/share/mime/video/x-mng.xml
+-rw-r--r-- root root 3153 ./usr/share/mime/video/x-msvideo.xml
+-rw-r--r-- root root 3200 ./usr/share/mime/video/x-ms-wmv.xml
+-rw-r--r-- root root 2934 ./usr/share/mime/video/x-nsv.xml
+-rw-r--r-- root root 2782 ./usr/share/mime/video/x-ogm+ogg.xml
+-rw-r--r-- root root 2811 ./usr/share/mime/video/x-sgi-movie.xml
+-rw-r--r-- root root 3102 ./usr/share/mime/video/x-theora+ogg.xml
+drwxr-xr-x root root 4096 ./usr/share/mime/x-content
+-rw-r--r-- root root 2504 ./usr/share/mime/x-content/audio-cdda.xml
+-rw-r--r-- root root 2531 ./usr/share/mime/x-content/audio-dvd.xml
+-rw-r--r-- root root 3388 ./usr/share/mime/x-content/audio-player.xml
+-rw-r--r-- root root 2971 ./usr/share/mime/x-content/blank-bd.xml
+-rw-r--r-- root root 2700 ./usr/share/mime/x-content/blank-cd.xml
+-rw-r--r-- root root 2732 ./usr/share/mime/x-content/blank-dvd.xml
+-rw-r--r-- root root 2889 ./usr/share/mime/x-content/blank-hddvd.xml
+-rw-r--r-- root root 2640 ./usr/share/mime/x-content/ebook-reader.xml
+-rw-r--r-- root root 2917 ./usr/share/mime/x-content/image-dcf.xml
+-rw-r--r-- root root 2565 ./usr/share/mime/x-content/image-picturecd.xml
+-rw-r--r-- root root 1123 ./usr/share/mime/x-content/ostree-repository.xml
+-rw-r--r-- root root 2645 ./usr/share/mime/x-content/software.xml
+-rw-r--r-- root root 2645 ./usr/share/mime/x-content/unix-software.xml
+-rw-r--r-- root root 3122 ./usr/share/mime/x-content/video-bluray.xml
+-rw-r--r-- root root 2627 ./usr/share/mime/x-content/video-dvd.xml
+-rw-r--r-- root root 2977 ./usr/share/mime/x-content/video-hddvd.xml
+-rw-r--r-- root root 2791 ./usr/share/mime/x-content/video-svcd.xml
+-rw-r--r-- root root 2509 ./usr/share/mime/x-content/video-vcd.xml
+-rw-r--r-- root root 2773 ./usr/share/mime/x-content/win32-software.xml
+drwxr-xr-x root root 4096 ./usr/share/mime/x-epoc
+-rw-r--r-- root root 2878 ./usr/share/mime/x-epoc/x-sisx-app.xml
+-rw-r--r-- root root 1631 ./usr/share/mime/XMLnamespaces
+drwxr-xr-x root root 4096 ./usr/share/misc
+drwxr-xr-x root root 4096 ./usr/share/pkgconfig
+-rw-r--r-- root root 328 ./usr/share/pkgconfig/bash-completion.pc
+-rw-r--r-- root root 120 ./usr/share/pkgconfig/shared-mime-info.pc
+-rw-r--r-- root root 90 ./usr/share/pkgconfig/udev.pc
+-rw-r--r-- root root 384 ./usr/share/pkgconfig/xorg-macros.pc
+-rw-r--r-- root root 213 ./usr/share/pkgconfig/xtrans.pc
+drwxr-xr-x root root 4096 ./usr/share/ss
+-rw-r--r-- root root 1551 ./usr/share/ss/ct_c.awk
+-rw-r--r-- root root 2290 ./usr/share/ss/ct_c.sed
+drwxr-xr-x root root 4096 ./usr/share/tabset
+-rw-r--r-- root root 135 ./usr/share/tabset/std
+-rw-r--r-- root root 95 ./usr/share/tabset/stdcrt
+-rw-r--r-- root root 160 ./usr/share/tabset/vt100
+-rw-r--r-- root root 64 ./usr/share/tabset/vt300
+drwxr-xr-x root root 4096 ./usr/share/udhcpc
+-rwxr-xr-x root root 49 ./usr/share/udhcpc/default.script
+drwxr-xr-x root root 4096 ./usr/share/wayland
+-rw-r--r-- root root 1266 ./usr/share/wayland/wayland.dtd
+-rw-r--r-- root root 292 ./usr/share/wayland/wayland-scanner.mk
+-rw-r--r-- root root 131466 ./usr/share/wayland/wayland.xml
+drwxr-xr-x root root 4096 ./usr/share/X11
+-rw-r--r-- root root 1723 ./usr/share/X11/Xcms.txt
+-rw-r--r-- root root 42077 ./usr/share/X11/XErrorDB
+drwxr-xr-x root root 4096 ./usr/share/xcb
+-rw-r--r-- root root 1705 ./usr/share/xcb/bigreq.xml
+-rw-r--r-- root root 3473 ./usr/share/xcb/composite.xml
+-rw-r--r-- root root 3299 ./usr/share/xcb/damage.xml
+-rw-r--r-- root root 3155 ./usr/share/xcb/dpms.xml
+-rw-r--r-- root root 9488 ./usr/share/xcb/dri2.xml
+-rw-r--r-- root root 5638 ./usr/share/xcb/dri3.xml
+-rw-r--r-- root root 1863 ./usr/share/xcb/ge.xml
+-rw-r--r-- root root 45351 ./usr/share/xcb/glx.xml
+-rw-r--r-- root root 7335 ./usr/share/xcb/present.xml
+-rw-r--r-- root root 30366 ./usr/share/xcb/randr.xml
+-rw-r--r-- root root 5924 ./usr/share/xcb/record.xml
+-rw-r--r-- root root 23693 ./usr/share/xcb/render.xml
+-rw-r--r-- root root 5912 ./usr/share/xcb/res.xml
+-rw-r--r-- root root 6573 ./usr/share/xcb/screensaver.xml
+-rw-r--r-- root root 6039 ./usr/share/xcb/shape.xml
+-rw-r--r-- root root 4778 ./usr/share/xcb/shm.xml
+-rw-r--r-- root root 8390 ./usr/share/xcb/sync.xml
+-rw-r--r-- root root 16132 ./usr/share/xcb/xcb.xsd
+-rw-r--r-- root root 1162 ./usr/share/xcb/xc_misc.xml
+-rw-r--r-- root root 2958 ./usr/share/xcb/xevie.xml
+-rw-r--r-- root root 5900 ./usr/share/xcb/xf86dri.xml
+-rw-r--r-- root root 14673 ./usr/share/xcb/xf86vidmode.xml
+-rw-r--r-- root root 12074 ./usr/share/xcb/xfixes.xml
+-rw-r--r-- root root 3453 ./usr/share/xcb/xinerama.xml
+-rw-r--r-- root root 103534 ./usr/share/xcb/xinput.xml
+-rw-r--r-- root root 91919 ./usr/share/xcb/xkb.xml
+-rw-r--r-- root root 11134 ./usr/share/xcb/xprint.xml
+-rw-r--r-- root root 206253 ./usr/share/xcb/xproto.xml
+-rw-r--r-- root root 8260 ./usr/share/xcb/xselinux.xml
+-rw-r--r-- root root 3968 ./usr/share/xcb/xtest.xml
+-rw-r--r-- root root 5363 ./usr/share/xcb/xvmc.xml
+-rw-r--r-- root root 16061 ./usr/share/xcb/xv.xml
+drwxr-xr-x root root 4096 ./usr/share/xml
+drwxr-xr-x root root 4096 ./usr/share/xml/dbus-1
+-rw-r--r-- root root 1907 ./usr/share/xml/dbus-1/busconfig.dtd
+-rw-r--r-- root root 1226 ./usr/share/xml/dbus-1/introspect.dtd
+drwxr-xr-x root root 4096 ./usr/share/xml/fontconfig
+-rw-r--r-- root root 7250 ./usr/share/xml/fontconfig/fonts.dtd
+drwxr-xr-x root root 4096 ./usr/src
+drwxr-xr-x root root 4096 ./usr/x86_64-poky-linux
+drwxr-xr-x root root 4096 ./usr/x86_64-poky-linux/bin
+lrwxrwxrwx root root 30 ./usr/x86_64-poky-linux/bin/ar -> ../../bin/x86_64-poky-linux-ar
+lrwxrwxrwx root root 30 ./usr/x86_64-poky-linux/bin/as -> ../../bin/x86_64-poky-linux-as
+lrwxrwxrwx root root 34 ./usr/x86_64-poky-linux/bin/ld.bfd -> ../../bin/x86_64-poky-linux-ld.bfd
+lrwxrwxrwx root root 30 ./usr/x86_64-poky-linux/bin/ld -> ../../bin/x86_64-poky-linux-ld
+lrwxrwxrwx root root 35 ./usr/x86_64-poky-linux/bin/ld.gold -> ../../bin/x86_64-poky-linux-ld.gold
+lrwxrwxrwx root root 30 ./usr/x86_64-poky-linux/bin/nm -> ../../bin/x86_64-poky-linux-nm
+lrwxrwxrwx root root 35 ./usr/x86_64-poky-linux/bin/objcopy -> ../../bin/x86_64-poky-linux-objcopy
+lrwxrwxrwx root root 35 ./usr/x86_64-poky-linux/bin/objdump -> ../../bin/x86_64-poky-linux-objdump
+lrwxrwxrwx root root 34 ./usr/x86_64-poky-linux/bin/ranlib -> ../../bin/x86_64-poky-linux-ranlib
+lrwxrwxrwx root root 35 ./usr/x86_64-poky-linux/bin/readelf -> ../../bin/x86_64-poky-linux-readelf
+lrwxrwxrwx root root 33 ./usr/x86_64-poky-linux/bin/strip -> ../../bin/x86_64-poky-linux-strip
+drwxr-xr-x root root 4096 ./var
+drwxr-xr-x root root 4096 ./var/backups
+drwxr-xr-x root root 4096 ./var/cache
+drwxr-xr-x root root 4096 ./var/cache/fontconfig
+drwx------ root root 4096 ./var/cache/ldconfig
+-rw------- root root 9934 ./var/cache/ldconfig/aux-cache
+drwxr-xr-x root root 4096 ./var/db
+-rwxr-xr-x root root 4453 ./var/db/makedbs.sh
+-rw-r--r-- root root 5351 ./var/db/Makefile
+drwxr-xr-x root root 4096 ./var/lib
+drwxr-xr-x root root 4096 ./var/lib/arpd
+drwxr-xr-x messagebus messagebus 4096 ./var/lib/dbus
+drwxr-xr-x root root 4096 ./var/lib/misc
+drwxr-xr-x root root 4096 ./var/lib/urandom
+drwxr-xr-x root root 4096 ./var/local
+lrwxrwxrwx root root 11 ./var/lock -> ../run/lock
+lrwxrwxrwx root root 12 ./var/log -> volatile/log
+lrwxrwxrwx root root 6 ./var/run -> ../run
+drwxr-xr-x root root 4096 ./var/spool
+drwxrwxr-x root mail 4096 ./var/spool/mail
+lrwxrwxrwx root root 12 ./var/tmp -> volatile/tmp
+drwxr-xr-x root root 4096 ./var/volatile
diff --git a/meta/lib/oeqa/manual/bsp-hw.json b/meta/lib/oeqa/manual/bsp-hw.json
index 73cbaaa7c2..75b89758cb 100644
--- a/meta/lib/oeqa/manual/bsp-hw.json
+++ b/meta/lib/oeqa/manual/bsp-hw.json
@@ -125,28 +125,6 @@
},
{
"test": {
- "@alias": "bsps-hw.bsps-hw.shutdown_system",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "boot system",
- "expected_results": ""
- },
- "2": {
- "action": "launch terminal and run \"shutdown -h now\" or \"poweroff\"",
- "expected_results": "System can be shutdown successfully . "
- }
- },
- "summary": "shutdown_system"
- }
- },
- {
- "test": {
"@alias": "bsps-hw.bsps-hw.switch_among_multi_applications_and_desktop",
"author": [
{
@@ -263,28 +241,6 @@
},
{
"test": {
- "@alias": "bsps-hw.bsps-hw.X_server_can_start_up_with_runlevel_5_boot",
- "author": [
- {
- "email": "alexandru.c.georgescu@intel.com",
- "name": "alexandru.c.georgescu@intel.com"
- }
- ],
- "execution": {
- "1": {
- "action": "boot up system with default runlevel \n\n",
- "expected_results": "X server can start up well and desktop display has no problem . \n\n"
- },
- "2": {
- "action": "type runlevel at command prompt",
- "expected_results": "Output:N 5"
- }
- },
- "summary": "X_server_can_start_up_with_runlevel_5_boot"
- }
- },
- {
- "test": {
"@alias": "bsps-hw.bsps-hw.standby",
"author": [
{
@@ -944,5 +900,5 @@
},
"summary": "System_can_boot_up_via_NFS"
}
- },
+ }
]
diff --git a/meta/lib/oeqa/runtime/cases/apt.py b/meta/lib/oeqa/runtime/cases/apt.py
index c5378d90c3..53745df93f 100644
--- a/meta/lib/oeqa/runtime/cases/apt.py
+++ b/meta/lib/oeqa/runtime/cases/apt.py
@@ -34,7 +34,7 @@ class AptRepoTest(AptTest):
def setup_source_config_for_package_install(self):
apt_get_source_server = 'http://%s:%s/' % (self.tc.target.server_ip, self.repo_server.port)
apt_get_sourceslist_dir = '/etc/apt/'
- self.target.run('cd %s; echo deb %s ./ > sources.list' % (apt_get_sourceslist_dir, apt_get_source_server))
+ self.target.run('cd %s; echo deb [ allow-insecure=yes ] %s ./ > sources.list' % (apt_get_sourceslist_dir, apt_get_source_server))
def cleanup_source_config_for_package_install(self):
apt_get_sourceslist_dir = '/etc/apt/'
diff --git a/meta/lib/oeqa/runtime/cases/buildcpio.py b/meta/lib/oeqa/runtime/cases/buildcpio.py
index d0f91668b2..e29bf16ccb 100644
--- a/meta/lib/oeqa/runtime/cases/buildcpio.py
+++ b/meta/lib/oeqa/runtime/cases/buildcpio.py
@@ -27,6 +27,7 @@ class BuildCpioTest(OERuntimeTestCase):
@OEHasPackage(['autoconf'])
def test_cpio(self):
self.project.download_archive()
- self.project.run_configure('--disable-maintainer-mode','')
+ self.project.run_configure('--disable-maintainer-mode',
+ 'sed -i -e "/char \*program_name/d" src/global.c;')
self.project.run_make()
self.project.run_install()
diff --git a/meta/lib/oeqa/runtime/cases/date.py b/meta/lib/oeqa/runtime/cases/date.py
index 7750a7293f..fdd2a6ae58 100644
--- a/meta/lib/oeqa/runtime/cases/date.py
+++ b/meta/lib/oeqa/runtime/cases/date.py
@@ -13,12 +13,12 @@ class DateTest(OERuntimeTestCase):
def setUp(self):
if self.tc.td.get('VIRTUAL-RUNTIME_init_manager') == 'systemd':
self.logger.debug('Stopping systemd-timesyncd daemon')
- self.target.run('systemctl stop systemd-timesyncd')
+ self.target.run('systemctl disable --now systemd-timesyncd')
def tearDown(self):
if self.tc.td.get('VIRTUAL-RUNTIME_init_manager') == 'systemd':
self.logger.debug('Starting systemd-timesyncd daemon')
- self.target.run('systemctl start systemd-timesyncd')
+ self.target.run('systemctl enable --now systemd-timesyncd')
@OETestDepends(['ssh.SSHTest.test_ssh'])
@OEHasPackage(['coreutils', 'busybox'])
diff --git a/meta/lib/oeqa/runtime/cases/logrotate.py b/meta/lib/oeqa/runtime/cases/logrotate.py
index 3938e91993..a4efcd07c0 100644
--- a/meta/lib/oeqa/runtime/cases/logrotate.py
+++ b/meta/lib/oeqa/runtime/cases/logrotate.py
@@ -37,10 +37,6 @@ class LogrotateTest(OERuntimeTestCase):
msg = ('Could not write to /tmp/logrotate-test.conf')
self.assertEqual(status, 0, msg = msg)
- status, output = self.target.run('echo "/var/log/logrotate_test {\\n missingok \\n monthly \\n rotate 1" > /etc/logrotate.d/logrotate_test')
- msg = ('Could not write to /etc/logrotate.d/logrotate_test')
- self.assertEqual(status, 0, msg = msg)
-
# If logrotate fails to rotate the log, view the verbose output of logrotate to see what prevented it
_, logrotate_output = self.target.run('logrotate -vf /tmp/logrotate-test.conf')
status, _ = self.target.run('find $HOME/logrotate_dir -type f | grep wtmp.1')
diff --git a/meta/lib/oeqa/runtime/cases/ltp.py b/meta/lib/oeqa/runtime/cases/ltp.py
index b8b7300435..a66d5d13d7 100644
--- a/meta/lib/oeqa/runtime/cases/ltp.py
+++ b/meta/lib/oeqa/runtime/cases/ltp.py
@@ -59,7 +59,7 @@ class LtpTest(LtpTestBase):
ltp_groups = ["math", "syscalls", "dio", "io", "mm", "ipc", "sched", "nptl", "pty", "containers", "controllers", "filecaps", "cap_bounds", "fcntl-locktests", "connectors", "commands", "net.ipv6_lib", "input","fs_perms_simple"]
- ltp_fs = ["fs", "fsx", "fs_bind", "fs_ext4"]
+ ltp_fs = ["fs", "fsx", "fs_bind"]
# skip kernel cpuhotplug
ltp_kernel = ["power_management_tests", "hyperthreading ", "kernel_misc", "hugetlb"]
ltp_groups += ltp_fs
@@ -78,9 +78,10 @@ class LtpTest(LtpTestBase):
# copy nice log from DUT
dst = os.path.join(self.ltptest_log_dir, "%s" % ltp_group )
remote_src = "/opt/ltp/results/%s" % ltp_group
- (status, output) = self.target.copyFrom(remote_src, dst)
+ (status, output) = self.target.copyFrom(remote_src, dst, True)
msg = 'File could not be copied. Output: %s' % output
- self.assertEqual(status, 0, msg=msg)
+ if status:
+ self.target.logger.warning(msg)
parser = LtpParser()
results, sections = parser.parse(dst)
diff --git a/meta/lib/oeqa/runtime/cases/multilib.py b/meta/lib/oeqa/runtime/cases/multilib.py
index 62e662b01c..0d1b9ae2c9 100644
--- a/meta/lib/oeqa/runtime/cases/multilib.py
+++ b/meta/lib/oeqa/runtime/cases/multilib.py
@@ -7,6 +7,8 @@ from oeqa.core.decorator.depends import OETestDepends
from oeqa.core.decorator.data import skipIfNotInDataVar
from oeqa.runtime.decorator.package import OEHasPackage
+import subprocess
+
class MultilibTest(OERuntimeTestCase):
def archtest(self, binary, arch):
@@ -14,8 +16,10 @@ class MultilibTest(OERuntimeTestCase):
Check that ``binary`` has the ELF class ``arch`` (e.g. ELF32/ELF64).
"""
- status, output = self.target.run('readelf -h %s' % binary)
- self.assertEqual(status, 0, 'Failed to readelf %s' % binary)
+ dest = "{}/test_binary".format(self.td.get('T', ''))
+ self.target.copyFrom(binary, dest)
+ output = subprocess.check_output("readelf -h {}".format(dest), shell=True).decode()
+ os.remove(dest)
l = [l.split()[1] for l in output.split('\n') if "Class:" in l]
if l:
@@ -29,7 +33,6 @@ class MultilibTest(OERuntimeTestCase):
@skipIfNotInDataVar('MULTILIBS', 'multilib:lib32',
"This isn't a multilib:lib32 image")
@OETestDepends(['ssh.SSHTest.test_ssh'])
- @OEHasPackage(['binutils'])
@OEHasPackage(['lib32-libc6'])
def test_check_multilib_libc(self):
"""
@@ -39,6 +42,6 @@ class MultilibTest(OERuntimeTestCase):
self.archtest("/lib64/libc.so.6", "ELF64")
@OETestDepends(['multilib.MultilibTest.test_check_multilib_libc'])
- @OEHasPackage(['lib32-connman', '!connman'])
+ @OEHasPackage(['lib32-connman'])
def test_file_connman(self):
self.archtest("/usr/sbin/connmand", "ELF32")
diff --git a/meta/lib/oeqa/runtime/cases/parselogs.py b/meta/lib/oeqa/runtime/cases/parselogs.py
index 3cad0709a1..a1791b5cca 100644
--- a/meta/lib/oeqa/runtime/cases/parselogs.py
+++ b/meta/lib/oeqa/runtime/cases/parselogs.py
@@ -55,8 +55,12 @@ common_errors = [
"Failed to read /var/lib/nfs/statd/state: Success",
"error retry time-out =",
"logind: cannot setup systemd-logind helper (-61), using legacy fallback",
- "Error changing net interface name 'eth0' to ",
- "Cannot find a map file"
+ "Failed to rename network interface",
+ "Failed to process device, ignoring: Device or resource busy",
+ "Cannot find a map file",
+ "[rdrand]: Initialization Failed",
+ "[pulseaudio] authkey.c: Failed to open cookie file",
+ "[pulseaudio] authkey.c: Failed to load authentication key",
]
video_related = [
@@ -130,6 +134,7 @@ ignore_errors = {
'(EE) Server terminated with error (1). Closing log file.',
'dmi: Firmware registration failed.',
'irq: type mismatch, failed to map hwirq-27 for /intc',
+ 'logind: failed to get session seat',
] + common_errors,
'intel-core2-32' : [
'ACPI: No _BQC method, cannot determine initial brightness',
diff --git a/meta/lib/oeqa/runtime/cases/ptest.py b/meta/lib/oeqa/runtime/cases/ptest.py
index eb284df439..a9572c81f0 100644
--- a/meta/lib/oeqa/runtime/cases/ptest.py
+++ b/meta/lib/oeqa/runtime/cases/ptest.py
@@ -2,6 +2,7 @@
# SPDX-License-Identifier: MIT
#
+import os
import unittest
import pprint
import datetime
@@ -18,7 +19,20 @@ class PtestRunnerTest(OERuntimeTestCase):
@OETestDepends(['ssh.SSHTest.test_ssh'])
@OEHasPackage(['ptest-runner'])
@unittest.expectedFailure
- def test_ptestrunner(self):
+ def test_ptestrunner_expectfail(self):
+ if not self.td.get('PTEST_EXPECT_FAILURE'):
+ self.skipTest('Cannot run ptests with @expectedFailure as ptests are required to pass')
+ self.do_ptestrunner()
+
+ @skipIfNotFeature('ptest', 'Test requires ptest to be in DISTRO_FEATURES')
+ @OETestDepends(['ssh.SSHTest.test_ssh'])
+ @OEHasPackage(['ptest-runner'])
+ def test_ptestrunner_expectsuccess(self):
+ if self.td.get('PTEST_EXPECT_FAILURE'):
+ self.skipTest('Cannot run ptests without @expectedFailure as ptests are expected to fail')
+ self.do_ptestrunner()
+
+ def do_ptestrunner(self):
status, output = self.target.run('which ptest-runner', 0)
if status != 0:
self.skipTest("No -ptest packages are installed in the image")
@@ -28,6 +42,10 @@ class PtestRunnerTest(OERuntimeTestCase):
# testdata.json is generated.
if not test_log_dir:
test_log_dir = os.path.join(self.td.get('WORKDIR', ''), 'testimage')
+ # Make the test output path absolute, otherwise the output content will be
+ # created relative to current directory
+ if not os.path.isabs(test_log_dir):
+ test_log_dir = os.path.join(self.td.get('TOPDIR', ''), test_log_dir)
# Don't use self.td.get('DATETIME'), it's from testdata.json, not
# up-to-date, and may cause "File exists" when re-reun.
timestamp = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
@@ -35,7 +53,11 @@ class PtestRunnerTest(OERuntimeTestCase):
ptest_log_dir = '%s.%s' % (ptest_log_dir_link, timestamp)
ptest_runner_log = os.path.join(ptest_log_dir, 'ptest-runner.log')
- status, output = self.target.run('ptest-runner', 0)
+ libdir = self.td.get('libdir', '')
+ ptest_dirs = [ '/usr/lib' ]
+ if not libdir in ptest_dirs:
+ ptest_dirs.append(libdir)
+ status, output = self.target.run('ptest-runner -d \"{}\"'.format(' '.join(ptest_dirs)), 0)
os.makedirs(ptest_log_dir)
with open(ptest_runner_log, 'w') as f:
f.write(output)
diff --git a/meta/lib/oeqa/runtime/cases/rtc.py b/meta/lib/oeqa/runtime/cases/rtc.py
new file mode 100644
index 0000000000..a34c101a9d
--- /dev/null
+++ b/meta/lib/oeqa/runtime/cases/rtc.py
@@ -0,0 +1,38 @@
+from oeqa.runtime.case import OERuntimeTestCase
+from oeqa.core.decorator.depends import OETestDepends
+from oeqa.runtime.decorator.package import OEHasPackage
+
+import re
+
+class RTCTest(OERuntimeTestCase):
+
+ def setUp(self):
+ if self.tc.td.get('VIRTUAL-RUNTIME_init_manager') == 'systemd':
+ self.logger.debug('Stopping systemd-timesyncd daemon')
+ self.target.run('systemctl disable --now systemd-timesyncd')
+
+ def tearDown(self):
+ if self.tc.td.get('VIRTUAL-RUNTIME_init_manager') == 'systemd':
+ self.logger.debug('Starting systemd-timesyncd daemon')
+ self.target.run('systemctl enable --now systemd-timesyncd')
+
+ @OETestDepends(['ssh.SSHTest.test_ssh'])
+ @OEHasPackage(['coreutils', 'busybox'])
+ def test_rtc(self):
+ (status, output) = self.target.run('hwclock -r')
+ self.assertEqual(status, 0, msg='Failed to get RTC time, output: %s' % output)
+
+ (status, current_datetime) = self.target.run('date +"%m%d%H%M%Y"')
+ self.assertEqual(status, 0, msg='Failed to get system current date & time, output: %s' % current_datetime)
+
+ example_datetime = '062309452008'
+ (status, output) = self.target.run('date %s ; hwclock -w ; hwclock -r' % example_datetime)
+ check_hwclock = re.search('2008-06-23 09:45:..', output)
+ self.assertTrue(check_hwclock, msg='The RTC time was not set correctly, output: %s' % output)
+
+ (status, output) = self.target.run('date %s' % current_datetime)
+ self.assertEqual(status, 0, msg='Failed to reset system date & time, output: %s' % output)
+
+ (status, output) = self.target.run('hwclock -w')
+ self.assertEqual(status, 0, msg='Failed to reset RTC time, output: %s' % output)
+
diff --git a/meta/lib/oeqa/runtime/cases/terminal.py b/meta/lib/oeqa/runtime/cases/terminal.py
new file mode 100644
index 0000000000..a268f26880
--- /dev/null
+++ b/meta/lib/oeqa/runtime/cases/terminal.py
@@ -0,0 +1,18 @@
+from oeqa.runtime.case import OERuntimeTestCase
+from oeqa.core.decorator.depends import OETestDepends
+from oeqa.runtime.decorator.package import OEHasPackage
+
+import threading
+import time
+
+class TerminalTest(OERuntimeTestCase):
+
+ @OEHasPackage(['matchbox-terminal'])
+ @OETestDepends(['ssh.SSHTest.test_ssh'])
+ def test_terminal_running(self):
+ t_thread = threading.Thread(target=self.target.run, args=('export DISPLAY=:0 && matchbox-terminal',))
+ t_thread.start()
+ time.sleep(2)
+ status, output = self.target.run('pidof matchbox-terminal')
+ self.target.run('kill -9 %s' % output)
+ self.assertEqual(status, 0, msg='Not able to find process that runs terminal.')
diff --git a/meta/lib/oeqa/runtime/cases/weston.py b/meta/lib/oeqa/runtime/cases/weston.py
index f32599afc3..36b4f9e375 100644
--- a/meta/lib/oeqa/runtime/cases/weston.py
+++ b/meta/lib/oeqa/runtime/cases/weston.py
@@ -6,8 +6,15 @@ from oeqa.runtime.case import OERuntimeTestCase
from oeqa.core.decorator.depends import OETestDepends
from oeqa.core.decorator.data import skipIfNotFeature
from oeqa.runtime.decorator.package import OEHasPackage
+import threading
+import time
class WestonTest(OERuntimeTestCase):
+ weston_log_file = '/tmp/weston.log'
+
+ @classmethod
+ def tearDownClass(cls):
+ cls.tc.target.run('rm %s' % cls.weston_log_file)
@OETestDepends(['ssh.SSHTest.test_ssh'])
@OEHasPackage(['weston'])
@@ -17,3 +24,52 @@ class WestonTest(OERuntimeTestCase):
msg = ('Weston does not appear to be running %s' %
self.target.run(self.tc.target_cmds['ps'])[1])
self.assertEqual(status, 0, msg=msg)
+
+ def get_processes_of(self, target, error_msg):
+ status, output = self.target.run('pidof %s' % target)
+ self.assertEqual(status, 0, msg='Retrieve %s (%s) processes error: %s' % (target, error_msg, output))
+ return output.split(" ")
+
+ def get_weston_command(self, cmd):
+ return 'export XDG_RUNTIME_DIR=/run/user/0; export WAYLAND_DISPLAY=wayland-0; %s' % cmd
+
+ def run_weston_init(self):
+ if 'systemd' in self.tc.td['DISTRO_FEATURES']:
+ self.target.run('systemd-run --collect --unit=weston-ptest.service --uid=0 -p PAMName=login -p TTYPath=/dev/tty6 -E XDG_RUNTIME_DIR=/tmp -E WAYLAND_DISPLAY=wayland-0 /usr/bin/weston --socket=wayland-1 --log=%s' % self.weston_log_file)
+ else:
+ self.target.run(self.get_weston_command('openvt -- weston --socket=wayland-1 --log=%s' % self.weston_log_file))
+
+ def get_new_wayland_processes(self, existing_wl_processes):
+ try_cnt = 0
+ while try_cnt < 5:
+ time.sleep(5 + 5*try_cnt)
+ try_cnt += 1
+ wl_processes = self.get_processes_of('weston-desktop-shell', 'existing and new')
+ new_wl_processes = [x for x in wl_processes if x not in existing_wl_processes]
+ if new_wl_processes:
+ return new_wl_processes, try_cnt
+
+ return new_wl_processes, try_cnt
+
+ @OEHasPackage(['weston'])
+ def test_weston_info(self):
+ status, output = self.target.run(self.get_weston_command('weston-info'))
+ self.assertEqual(status, 0, msg='weston-info error: %s' % output)
+
+ @OEHasPackage(['weston'])
+ def test_weston_can_initialize_new_wayland_compositor(self):
+ existing_wl_processes = self.get_processes_of('weston-desktop-shell', 'existing')
+ existing_weston_processes = self.get_processes_of('weston', 'existing')
+
+ weston_thread = threading.Thread(target=self.run_weston_init)
+ weston_thread.start()
+ new_wl_processes, try_cnt = self.get_new_wayland_processes(existing_wl_processes)
+ existing_and_new_weston_processes = self.get_processes_of('weston', 'existing and new')
+ new_weston_processes = [x for x in existing_and_new_weston_processes if x not in existing_weston_processes]
+ if 'systemd' in self.tc.td['DISTRO_FEATURES']:
+ self.target.run('systemctl stop weston-ptest.service')
+ else:
+ for w in new_weston_processes:
+ self.target.run('kill -9 %s' % w)
+ __, weston_log = self.target.run('cat %s' % self.weston_log_file)
+ self.assertTrue(new_wl_processes, msg='Could not get new weston-desktop-shell processes (%s, try_cnt:%s) weston log: %s' % (new_wl_processes, try_cnt, weston_log))
diff --git a/meta/lib/oeqa/runtime/cases/x32lib.py b/meta/lib/oeqa/runtime/cases/x32lib.py
index ddf220140e..f419c8f181 100644
--- a/meta/lib/oeqa/runtime/cases/x32lib.py
+++ b/meta/lib/oeqa/runtime/cases/x32lib.py
@@ -6,16 +6,21 @@ from oeqa.runtime.case import OERuntimeTestCase
from oeqa.core.decorator.depends import OETestDepends
from oeqa.core.decorator.data import skipIfNotInDataVar
+import subprocess
+
class X32libTest(OERuntimeTestCase):
@skipIfNotInDataVar('DEFAULTTUNE', 'x86-64-x32',
'DEFAULTTUNE is not set to x86-64-x32')
@OETestDepends(['ssh.SSHTest.test_ssh'])
def test_x32_file(self):
- cmd = 'readelf -h /bin/ls | grep Class | grep ELF32'
- status1 = self.target.run(cmd)[0]
- cmd = 'readelf -h /bin/ls | grep Machine | grep X86-64'
- status2 = self.target.run(cmd)[0]
- msg = ("/bin/ls isn't an X86-64 ELF32 binary. readelf says: %s" %
- self.target.run("readelf -h /bin/ls")[1])
+ dest = self.td.get('T', '') + "/ls.x32test"
+ self.target.copyFrom("/bin/ls", dest)
+ cmd = 'readelf -h {} | grep Class | grep ELF32'.format(dest)
+ status1 = subprocess.call(cmd, shell=True)
+ cmd = 'readelf -h {} | grep Machine | grep X86-64'.format(dest)
+ status2 = subprocess.call(cmd, shell=True)
+ msg = ("/bin/ls isn't an X86-64 ELF32 binary. readelf says:\n{}".format(
+ subprocess.check_output("readelf -h {}".format(dest), shell=True).decode()))
+ os.remove(dest)
self.assertTrue(status1 == 0 and status2 == 0, msg=msg)
diff --git a/meta/lib/oeqa/runtime/context.py b/meta/lib/oeqa/runtime/context.py
index 2ecb1a8f01..3826f27642 100644
--- a/meta/lib/oeqa/runtime/context.py
+++ b/meta/lib/oeqa/runtime/context.py
@@ -47,6 +47,7 @@ class OERuntimeTestContextExecutor(OETestContextExecutor):
default_data = None
default_test_data = 'data/testdata.json'
default_tests = ''
+ default_json_result_dir = '%s-results' % name
default_target_type = 'simpleremote'
default_manifest = 'data/manifest'
@@ -77,7 +78,7 @@ class OERuntimeTestContextExecutor(OETestContextExecutor):
runtime_group.add_argument('--packages-manifest', action='store',
default=self.default_manifest,
- help="Package manifest of the image under testi, default: %s" \
+ help="Package manifest of the image under test, default: %s" \
% self.default_manifest)
runtime_group.add_argument('--extract-dir', action='store',
@@ -184,7 +185,7 @@ class OERuntimeTestContextExecutor(OETestContextExecutor):
except:
obj = None
return obj
-
+
@staticmethod
def readPackagesManifest(manifest):
if not manifest or not os.path.exists(manifest):
diff --git a/meta/lib/oeqa/runtime/decorator/package.py b/meta/lib/oeqa/runtime/decorator/package.py
index 4c5ca198b0..57178655cc 100644
--- a/meta/lib/oeqa/runtime/decorator/package.py
+++ b/meta/lib/oeqa/runtime/decorator/package.py
@@ -46,11 +46,41 @@ class OEHasPackage(OETestDecorator):
self.logger.debug(msg)
if not self.case.tc.image_packages.isdisjoint(unneed_pkgs):
msg = "Test can't run with %s installed" % ', or'.join(unneed_pkgs)
- self.case.skipTest(msg)
+ self._decorator_fail(msg)
if need_pkgs:
msg = 'Checking if at least one of %s is installed' % ', '.join(need_pkgs)
self.logger.debug(msg)
if self.case.tc.image_packages.isdisjoint(need_pkgs):
msg = "Test requires %s to be installed" % ', or'.join(need_pkgs)
- self.case.skipTest(msg)
+ self._decorator_fail(msg)
+
+ def _decorator_fail(self, msg):
+ self.case.skipTest(msg)
+
+@registerDecorator
+class OERequirePackage(OEHasPackage):
+ """
+ Checks if image has packages (un)installed.
+ It is almost the same as OEHasPackage, but if dependencies are missing
+ the test case fails.
+
+ The argument must be a string, set, or list of packages that must be
+ installed or not present in the image.
+
+ The way to tell a package must not be in an image is using an
+ exclamation point ('!') before the name of the package.
+
+ If test depends on pkg1 or pkg2 you need to use:
+ @OERequirePackage({'pkg1', 'pkg2'})
+
+ If test depends on pkg1 and pkg2 you need to use:
+ @OERequirePackage('pkg1')
+ @OERequirePackage('pkg2')
+
+ If test depends on pkg1 but pkg2 must not be present use:
+ @OERequirePackage({'pkg1', '!pkg2'})
+ """
+
+ def _decorator_fail(self, msg):
+ self.case.fail(msg)
diff --git a/meta/lib/oeqa/sdk/case.py b/meta/lib/oeqa/sdk/case.py
index ebb03af9eb..c45882689c 100644
--- a/meta/lib/oeqa/sdk/case.py
+++ b/meta/lib/oeqa/sdk/case.py
@@ -26,7 +26,7 @@ class OESDKTestCase(OETestCase):
return tarball
tarball = os.path.join(workdir, archive)
- subprocess.check_output(["wget", "-O", tarball, url])
+ subprocess.check_output(["wget", "-O", tarball, url], stderr=subprocess.STDOUT)
return tarball
def check_elf(self, path, target_os=None, target_arch=None):
diff --git a/meta/lib/oeqa/sdk/cases/assimp.py b/meta/lib/oeqa/sdk/cases/assimp.py
index f26b17f2e9..f166758e49 100644
--- a/meta/lib/oeqa/sdk/cases/assimp.py
+++ b/meta/lib/oeqa/sdk/cases/assimp.py
@@ -30,7 +30,7 @@ class BuildAssimp(OESDKTestCase):
dirs["build"] = os.path.join(testdir, "build")
dirs["install"] = os.path.join(testdir, "install")
- subprocess.check_output(["tar", "xf", tarball, "-C", testdir])
+ subprocess.check_output(["tar", "xf", tarball, "-C", testdir], stderr=subprocess.STDOUT)
self.assertTrue(os.path.isdir(dirs["source"]))
os.makedirs(dirs["build"])
diff --git a/meta/lib/oeqa/sdk/cases/buildcpio.py b/meta/lib/oeqa/sdk/cases/buildcpio.py
index 902e93f623..e7fc211a47 100644
--- a/meta/lib/oeqa/sdk/cases/buildcpio.py
+++ b/meta/lib/oeqa/sdk/cases/buildcpio.py
@@ -24,10 +24,11 @@ class BuildCpioTest(OESDKTestCase):
dirs["build"] = os.path.join(testdir, "build")
dirs["install"] = os.path.join(testdir, "install")
- subprocess.check_output(["tar", "xf", tarball, "-C", testdir])
+ subprocess.check_output(["tar", "xf", tarball, "-C", testdir], stderr=subprocess.STDOUT)
self.assertTrue(os.path.isdir(dirs["source"]))
os.makedirs(dirs["build"])
+ self._run("sed -i -e '/char.*program_name/d' {source}/src/global.c".format(**dirs))
self._run("cd {build} && {source}/configure --disable-maintainer-mode $CONFIGURE_FLAGS".format(**dirs))
self._run("cd {build} && make -j".format(**dirs))
self._run("cd {build} && make install DESTDIR={install}".format(**dirs))
diff --git a/meta/lib/oeqa/sdk/cases/buildepoxy.py b/meta/lib/oeqa/sdk/cases/buildepoxy.py
index 4211955f8d..385f8ccca8 100644
--- a/meta/lib/oeqa/sdk/cases/buildepoxy.py
+++ b/meta/lib/oeqa/sdk/cases/buildepoxy.py
@@ -28,7 +28,7 @@ class EpoxyTest(OESDKTestCase):
dirs["build"] = os.path.join(testdir, "build")
dirs["install"] = os.path.join(testdir, "install")
- subprocess.check_output(["tar", "xf", tarball, "-C", testdir])
+ subprocess.check_output(["tar", "xf", tarball, "-C", testdir], stderr=subprocess.STDOUT)
self.assertTrue(os.path.isdir(dirs["source"]))
os.makedirs(dirs["build"])
diff --git a/meta/lib/oeqa/sdk/cases/buildgalculator.py b/meta/lib/oeqa/sdk/cases/buildgalculator.py
index bbaa5c55c9..eb3c8ddf39 100644
--- a/meta/lib/oeqa/sdk/cases/buildgalculator.py
+++ b/meta/lib/oeqa/sdk/cases/buildgalculator.py
@@ -31,11 +31,11 @@ class GalculatorTest(OESDKTestCase):
dirs["build"] = os.path.join(testdir, "build")
dirs["install"] = os.path.join(testdir, "install")
- subprocess.check_output(["tar", "xf", tarball, "-C", testdir])
+ subprocess.check_output(["tar", "xf", tarball, "-C", testdir], stderr=subprocess.STDOUT)
self.assertTrue(os.path.isdir(dirs["source"]))
os.makedirs(dirs["build"])
- self._run("cd {source} && autoreconf -i -f -I $OECORE_TARGET_SYSROOT/usr/share/aclocal -I m4".format(**dirs))
+ self._run("cd {source} && sed -i -e '/s_preferences.*prefs;/d' src/main.c && autoreconf -i -f -I $OECORE_TARGET_SYSROOT/usr/share/aclocal -I m4".format(**dirs))
self._run("cd {build} && {source}/configure $CONFIGURE_FLAGS".format(**dirs))
self._run("cd {build} && make -j".format(**dirs))
self._run("cd {build} && make install DESTDIR={install}".format(**dirs))
diff --git a/meta/lib/oeqa/sdk/cases/buildlzip.py b/meta/lib/oeqa/sdk/cases/buildlzip.py
index 515acd2891..49ae756bf3 100644
--- a/meta/lib/oeqa/sdk/cases/buildlzip.py
+++ b/meta/lib/oeqa/sdk/cases/buildlzip.py
@@ -20,7 +20,7 @@ class BuildLzipTest(OESDKTestCase):
dirs["build"] = os.path.join(testdir, "build")
dirs["install"] = os.path.join(testdir, "install")
- subprocess.check_output(["tar", "xf", tarball, "-C", testdir])
+ subprocess.check_output(["tar", "xf", tarball, "-C", testdir], stderr=subprocess.STDOUT)
self.assertTrue(os.path.isdir(dirs["source"]))
os.makedirs(dirs["build"])
diff --git a/meta/lib/oeqa/sdkext/cases/devtool.py b/meta/lib/oeqa/sdkext/cases/devtool.py
index 8e92bf8064..a5c6a76e02 100644
--- a/meta/lib/oeqa/sdkext/cases/devtool.py
+++ b/meta/lib/oeqa/sdkext/cases/devtool.py
@@ -20,10 +20,16 @@ class DevtoolTest(OESDKExtTestCase):
myapp_src = os.path.join(cls.tc.esdk_files_dir, "myapp")
cls.myapp_dst = os.path.join(cls.tc.sdk_dir, "myapp")
shutil.copytree(myapp_src, cls.myapp_dst)
+ subprocess.check_output(['git', 'init', '.'], cwd=cls.myapp_dst)
+ subprocess.check_output(['git', 'add', '.'], cwd=cls.myapp_dst)
+ subprocess.check_output(['git', 'commit', '-m', "'test commit'"], cwd=cls.myapp_dst)
myapp_cmake_src = os.path.join(cls.tc.esdk_files_dir, "myapp_cmake")
cls.myapp_cmake_dst = os.path.join(cls.tc.sdk_dir, "myapp_cmake")
shutil.copytree(myapp_cmake_src, cls.myapp_cmake_dst)
+ subprocess.check_output(['git', 'init', '.'], cwd=cls.myapp_cmake_dst)
+ subprocess.check_output(['git', 'add', '.'], cwd=cls.myapp_cmake_dst)
+ subprocess.check_output(['git', 'commit', '-m', "'test commit'"], cwd=cls.myapp_cmake_dst)
@classmethod
def tearDownClass(cls):
diff --git a/meta/lib/oeqa/sdkext/testsdk.py b/meta/lib/oeqa/sdkext/testsdk.py
index 785b5dda53..ffd185ec55 100644
--- a/meta/lib/oeqa/sdkext/testsdk.py
+++ b/meta/lib/oeqa/sdkext/testsdk.py
@@ -25,11 +25,8 @@ class TestSDKExt(TestSDKBase):
subprocesstweak.errors_have_output()
- # extensible sdk can be contaminated if native programs are
- # in PATH, i.e. use perl-native instead of eSDK one.
- paths_to_avoid = [d.getVar('STAGING_DIR'),
- d.getVar('BASE_WORKDIR')]
- os.environ['PATH'] = avoid_paths_in_environ(paths_to_avoid)
+ # We need the original PATH for testing the eSDK, not with our manipulations
+ os.environ['PATH'] = d.getVar("BB_ORIGENV", False).getVar("PATH")
tcname = d.expand("${SDK_DEPLOY}/${TOOLCHAINEXT_OUTPUTNAME}.sh")
if not os.path.exists(tcname):
@@ -102,6 +99,9 @@ class TestSDKExt(TestSDKBase):
if not result.wasSuccessful():
fail = True
+ # Clean the workspace/sources to avoid `devtool add' failure because of non-empty source directory
+ bb.utils.remove(sdk_dir+'workspace/sources', True)
+
if fail:
bb.fatal("%s - FAILED - check the task log and the commands log" % pn)
diff --git a/meta/lib/oeqa/selftest/cases/archiver.py b/meta/lib/oeqa/selftest/cases/archiver.py
index c036e0cbe2..ddd08ecf84 100644
--- a/meta/lib/oeqa/selftest/cases/archiver.py
+++ b/meta/lib/oeqa/selftest/cases/archiver.py
@@ -19,8 +19,8 @@ class Archiver(OESelftestTestCase):
AutomatedBy: Daniel Istrate <daniel.alexandrux.istrate@intel.com>
"""
- include_recipe = 'busybox'
- exclude_recipe = 'zlib'
+ include_recipe = 'selftest-ed'
+ exclude_recipe = 'initscripts'
features = 'INHERIT += "archiver"\n'
features += 'ARCHIVER_MODE[src] = "original"\n'
@@ -51,8 +51,8 @@ class Archiver(OESelftestTestCase):
Author: André Draszik <adraszik@tycoint.com>
"""
- target_recipe = 'initscripts'
- native_recipe = 'zlib-native'
+ target_recipe = 'selftest-ed'
+ native_recipe = 'selftest-ed-native'
features = 'INHERIT += "archiver"\n'
features += 'ARCHIVER_MODE[src] = "original"\n'
@@ -86,8 +86,8 @@ class Archiver(OESelftestTestCase):
Author: André Draszik <adraszik@tycoint.com>
"""
- target_recipes = [ 'initscripts', 'zlib' ]
- native_recipes = [ 'update-rc.d-native', 'zlib-native' ]
+ target_recipes = [ 'initscripts', 'selftest-ed' ]
+ native_recipes = [ 'update-rc.d-native', 'selftest-ed-native' ]
features = 'INHERIT += "archiver"\n'
features += 'ARCHIVER_MODE[src] = "original"\n'
@@ -126,12 +126,13 @@ class Archiver(OESelftestTestCase):
features = 'INHERIT += "archiver"\n'
features += 'ARCHIVER_MODE[srpm] = "1"\n'
+ features += 'PACKAGE_CLASSES = "package_rpm"\n'
self.write_config(features)
- bitbake('-n core-image-sato')
+ bitbake('-n selftest-nopackages selftest-ed')
def _test_archiver_mode(self, mode, target_file_name, extra_config=None):
- target = "selftest-ed"
+ target = 'selftest-ed-native'
features = 'INHERIT += "archiver"\n'
features += 'ARCHIVER_MODE[src] = "%s"\n' % (mode)
@@ -142,8 +143,8 @@ class Archiver(OESelftestTestCase):
bitbake('-c clean %s' % (target))
bitbake('-c deploy_archives %s' % (target))
- bb_vars = get_bb_vars(['DEPLOY_DIR_SRC', 'TARGET_SYS'])
- glob_str = os.path.join(bb_vars['DEPLOY_DIR_SRC'], bb_vars['TARGET_SYS'], '%s-*' % (target))
+ bb_vars = get_bb_vars(['DEPLOY_DIR_SRC', 'BUILD_SYS'])
+ glob_str = os.path.join(bb_vars['DEPLOY_DIR_SRC'], bb_vars['BUILD_SYS'], '%s-*' % (target))
glob_result = glob.glob(glob_str)
self.assertTrue(glob_result, 'Missing archiver directory for %s' % (target))
@@ -162,21 +163,21 @@ class Archiver(OESelftestTestCase):
Test that the archiver works with `ARCHIVER_MODE[src] = "patched"`.
"""
- self._test_archiver_mode('patched', 'selftest-ed-1.14.1-r0-patched.tar.gz')
+ self._test_archiver_mode('patched', 'selftest-ed-native-1.14.1-r0-patched.tar.gz')
def test_archiver_mode_configured(self):
"""
Test that the archiver works with `ARCHIVER_MODE[src] = "configured"`.
"""
- self._test_archiver_mode('configured', 'selftest-ed-1.14.1-r0-configured.tar.gz')
+ self._test_archiver_mode('configured', 'selftest-ed-native-1.14.1-r0-configured.tar.gz')
def test_archiver_mode_recipe(self):
"""
Test that the archiver works with `ARCHIVER_MODE[recipe] = "1"`.
"""
- self._test_archiver_mode('patched', 'selftest-ed-1.14.1-r0-recipe.tar.gz',
+ self._test_archiver_mode('patched', 'selftest-ed-native-1.14.1-r0-recipe.tar.gz',
'ARCHIVER_MODE[recipe] = "1"\n')
def test_archiver_mode_diff(self):
@@ -185,7 +186,7 @@ class Archiver(OESelftestTestCase):
Exclusions controlled by `ARCHIVER_MODE[diff-exclude]` are not yet tested.
"""
- self._test_archiver_mode('patched', 'selftest-ed-1.14.1-r0-diff.gz',
+ self._test_archiver_mode('patched', 'selftest-ed-native-1.14.1-r0-diff.gz',
'ARCHIVER_MODE[diff] = "1"\n')
def test_archiver_mode_dumpdata(self):
@@ -193,7 +194,7 @@ class Archiver(OESelftestTestCase):
Test that the archiver works with `ARCHIVER_MODE[dumpdata] = "1"`.
"""
- self._test_archiver_mode('patched', 'selftest-ed-1.14.1-r0-showdata.dump',
+ self._test_archiver_mode('patched', 'selftest-ed-native-1.14.1-r0-showdata.dump',
'ARCHIVER_MODE[dumpdata] = "1"\n')
def test_archiver_mode_mirror(self):
@@ -208,7 +209,7 @@ class Archiver(OESelftestTestCase):
"""
Test that the archiver works with `ARCHIVER_MODE[src] = "mirror"` and
correctly excludes an archive when its URL matches
- `ARCHIVER_MIRROR_EXCLUDES`.
+ `ARCHIVER_MIRROR_EXCLUDE`.
"""
target='selftest-ed'
@@ -254,3 +255,57 @@ class Archiver(OESelftestTestCase):
glob_str = os.path.join(bb_vars['DEPLOY_DIR_SRC'], 'mirror', target_file_name)
glob_result = glob.glob(glob_str)
self.assertTrue(glob_result, 'Missing archive file %s' % (target_file_name))
+
+ def test_archiver_mode_mirror_gitsm(self):
+ """
+ Test that the archiver correctly handles git submodules with
+ `ARCHIVER_MODE[src] = "mirror"`.
+ """
+ features = 'INHERIT += "archiver"\n'
+ features += 'ARCHIVER_MODE[src] = "mirror"\n'
+ features += 'ARCHIVER_MODE[mirror] = "combined"\n'
+ features += 'BB_GENERATE_MIRROR_TARBALLS = "1"\n'
+ features += 'COPYLEFT_LICENSE_INCLUDE = "*"\n'
+ self.write_config(features)
+
+ bitbake('-c clean git-submodule-test')
+ bitbake('-c deploy_archives -f git-submodule-test')
+
+ bb_vars = get_bb_vars(['DEPLOY_DIR_SRC'])
+ for target_file_name in [
+ 'git2_git.yoctoproject.org.git-submodule-test.tar.gz',
+ 'git2_git.yoctoproject.org.bitbake-gitsm-test1.tar.gz',
+ 'git2_git.yoctoproject.org.bitbake-gitsm-test2.tar.gz',
+ 'git2_git.openembedded.org.bitbake.tar.gz'
+ ]:
+ target_path = os.path.join(bb_vars['DEPLOY_DIR_SRC'], 'mirror', target_file_name)
+ self.assertTrue(os.path.exists(target_path))
+
+ def test_archiver_mode_mirror_gitsm_shallow(self):
+ """
+ Test that the archiver correctly handles git submodules with
+ `ARCHIVER_MODE[src] = "mirror"`.
+ """
+ features = 'INHERIT += "archiver"\n'
+ features += 'ARCHIVER_MODE[src] = "mirror"\n'
+ features += 'ARCHIVER_MODE[mirror] = "combined"\n'
+ features += 'BB_GENERATE_MIRROR_TARBALLS = "1"\n'
+ features += 'COPYLEFT_LICENSE_INCLUDE = "*"\n'
+ features += 'BB_GIT_SHALLOW = "1"\n'
+ features += 'BB_GENERATE_SHALLOW_TARBALLS = "1"\n'
+ features += 'DL_DIR = "${TOPDIR}/downloads-shallow"\n'
+ self.write_config(features)
+
+ bitbake('-c clean git-submodule-test')
+ bitbake('-c deploy_archives -f git-submodule-test')
+
+ bb_vars = get_bb_vars(['DEPLOY_DIR_SRC'])
+ for target_file_name in [
+ 'gitsmshallow_git.yoctoproject.org.git-submodule-test_a2885dd-1_master.tar.gz',
+ 'gitsmshallow_git.yoctoproject.org.bitbake-gitsm-test1_bare_120f4c7-1.tar.gz',
+ 'gitsmshallow_git.yoctoproject.org.bitbake-gitsm-test2_bare_f66699e-1.tar.gz',
+ 'gitsmshallow_git.openembedded.org.bitbake_bare_52a144a-1.tar.gz',
+ 'gitsmshallow_git.openembedded.org.bitbake_bare_c39b997-1.tar.gz'
+ ]:
+ target_path = os.path.join(bb_vars['DEPLOY_DIR_SRC'], 'mirror', target_file_name)
+ self.assertTrue(os.path.exists(target_path))
diff --git a/meta/lib/oeqa/selftest/cases/containerimage.py b/meta/lib/oeqa/selftest/cases/containerimage.py
index c0998e319e..4ad7f0e654 100644
--- a/meta/lib/oeqa/selftest/cases/containerimage.py
+++ b/meta/lib/oeqa/selftest/cases/containerimage.py
@@ -42,6 +42,9 @@ IMAGE_FSTYPES = "container"
PACKAGE_CLASSES = "package_ipk"
IMAGE_FEATURES = ""
IMAGE_BUILDINFO_FILE = ""
+INIT_MANAGER = "sysvinit"
+IMAGE_INSTALL_remove = "ssh-pregen-hostkeys"
+
""")
bbvars = get_bb_vars(['bindir', 'sysconfdir', 'localstatedir',
diff --git a/meta/lib/oeqa/selftest/cases/devtool.py b/meta/lib/oeqa/selftest/cases/devtool.py
index 5886862d6c..d3d2e04c20 100644
--- a/meta/lib/oeqa/selftest/cases/devtool.py
+++ b/meta/lib/oeqa/selftest/cases/devtool.py
@@ -56,7 +56,8 @@ def setUpModule():
if pth.startswith(canonical_layerpath):
if relpth.endswith('/'):
destdir = os.path.join(corecopydir, relpth)
- shutil.copytree(pth, destdir)
+ # avoid race condition by not copying .pyc files YPBZ#13421,13803
+ shutil.copytree(pth, destdir, ignore=ignore_patterns('*.pyc', '__pycache__'))
else:
destdir = os.path.join(corecopydir, os.path.dirname(relpth))
bb.utils.mkdirhier(destdir)
@@ -512,6 +513,10 @@ class DevtoolAddTests(DevtoolBase):
self._test_recipe_contents(recipefile, checkvars, [])
def test_devtool_add_npm(self):
+ collections = get_bb_var('BBFILE_COLLECTIONS').split()
+ if "openembedded-layer" not in collections:
+ self.skipTest("Test needs meta-oe for nodejs")
+
pn = 'savoirfairelinux-node-server-example'
pv = '1.0.0'
url = 'npm://registry.npmjs.org;package=@savoirfairelinux/node-server-example;version=' + pv
@@ -676,7 +681,7 @@ class DevtoolModifyTests(DevtoolBase):
bbclassextended = False
inheritnative = False
- testrecipes = 'mtools-native apt-native desktop-file-utils-native'.split()
+ testrecipes = 'cdrtools-native mtools-native apt-native desktop-file-utils-native'.split()
for testrecipe in testrecipes:
checkextend = 'native' in (get_bb_var('BBCLASSEXTEND', testrecipe) or '').split()
if not bbclassextended:
@@ -772,6 +777,26 @@ class DevtoolModifyTests(DevtoolBase):
self._check_src_repo(tempdir)
# This is probably sufficient
+ def test_devtool_modify_overrides(self):
+ # Try modifying a recipe with patches in overrides
+ tempdir = tempfile.mkdtemp(prefix='devtoolqa')
+ self.track_for_cleanup(tempdir)
+ self.track_for_cleanup(self.workspacedir)
+ self.add_command_to_tearDown('bitbake-layers remove-layer */workspace')
+ result = runCmd('devtool modify devtool-patch-overrides -x %s' % (tempdir))
+
+ self._check_src_repo(tempdir)
+ source = os.path.join(tempdir, "source")
+ def check(branch, expected):
+ runCmd('git -C %s checkout %s' % (tempdir, branch))
+ with open(source, "rt") as f:
+ content = f.read()
+ self.assertEquals(content, expected)
+ check('devtool', 'This is a test for something\n')
+ check('devtool-no-overrides', 'This is a test for something\n')
+ check('devtool-override-qemuarm', 'This is a test for qemuarm\n')
+ check('devtool-override-qemux86', 'This is a test for qemux86\n')
+
class DevtoolUpdateTests(DevtoolBase):
def test_devtool_update_recipe(self):
@@ -1108,6 +1133,59 @@ class DevtoolUpdateTests(DevtoolBase):
('??', '.*/0001-Add-new-file.patch$')]
self._check_repo_status(os.path.dirname(recipefile), expected_status)
+ def test_devtool_update_recipe_with_gitignore(self):
+ # First, modify the recipe
+ testrecipe = 'devtool-test-ignored'
+ bb_vars = get_bb_vars(['FILE'], testrecipe)
+ recipefile = bb_vars['FILE']
+ patchfile = os.path.join(os.path.dirname(recipefile), testrecipe, testrecipe + '.patch')
+ newpatchfile = os.path.join(os.path.dirname(recipefile), testrecipe, testrecipe + '.patch.expected')
+ tempdir = tempfile.mkdtemp(prefix='devtoolqa')
+ self.track_for_cleanup(tempdir)
+ self.track_for_cleanup(self.workspacedir)
+ self.add_command_to_tearDown('bitbake-layers remove-layer */workspace')
+ # (don't bother with cleaning the recipe on teardown, we won't be building it)
+ result = runCmd('devtool modify %s' % testrecipe)
+ self.add_command_to_tearDown('cd %s; rm %s/*; git checkout %s %s' % (os.path.dirname(recipefile), testrecipe, testrecipe, os.path.basename(recipefile)))
+ result = runCmd('devtool finish --force-patch-refresh %s meta-selftest' % testrecipe)
+ # Check recipe got changed as expected
+ with open(newpatchfile, 'r') as f:
+ desiredlines = f.readlines()
+ with open(patchfile, 'r') as f:
+ newlines = f.readlines()
+ # Ignore the initial lines, because oe-selftest creates own meta-selftest repo
+ # which changes the metadata subject which is added into the patch, but keep
+ # .patch.expected as it is in case someone runs devtool finish --force-patch-refresh
+ # devtool-test-ignored manually, then it should generate exactly the same .patch file
+ self.assertEqual(desiredlines[5:], newlines[5:])
+
+ def test_devtool_update_recipe_long_filename(self):
+ # First, modify the recipe
+ testrecipe = 'devtool-test-long-filename'
+ bb_vars = get_bb_vars(['FILE'], testrecipe)
+ recipefile = bb_vars['FILE']
+ patchfilename = '0001-I-ll-patch-you-only-if-devtool-lets-me-to-do-it-corr.patch'
+ patchfile = os.path.join(os.path.dirname(recipefile), testrecipe, patchfilename)
+ newpatchfile = os.path.join(os.path.dirname(recipefile), testrecipe, patchfilename + '.expected')
+ tempdir = tempfile.mkdtemp(prefix='devtoolqa')
+ self.track_for_cleanup(tempdir)
+ self.track_for_cleanup(self.workspacedir)
+ self.add_command_to_tearDown('bitbake-layers remove-layer */workspace')
+ # (don't bother with cleaning the recipe on teardown, we won't be building it)
+ result = runCmd('devtool modify %s' % testrecipe)
+ self.add_command_to_tearDown('cd %s; rm %s/*; git checkout %s %s' % (os.path.dirname(recipefile), testrecipe, testrecipe, os.path.basename(recipefile)))
+ result = runCmd('devtool finish --force-patch-refresh %s meta-selftest' % testrecipe)
+ # Check recipe got changed as expected
+ with open(newpatchfile, 'r') as f:
+ desiredlines = f.readlines()
+ with open(patchfile, 'r') as f:
+ newlines = f.readlines()
+ # Ignore the initial lines, because oe-selftest creates own meta-selftest repo
+ # which changes the metadata subject which is added into the patch, but keep
+ # .patch.expected as it is in case someone runs devtool finish --force-patch-refresh
+ # devtool-test-ignored manually, then it should generate exactly the same .patch file
+ self.assertEqual(desiredlines[5:], newlines[5:])
+
def test_devtool_update_recipe_local_files_3(self):
# First, modify the recipe
testrecipe = 'devtool-test-localonly'
@@ -1447,7 +1525,11 @@ class DevtoolUpgradeTests(DevtoolBase):
dstdir = os.path.join(dstdir, p)
if not os.path.exists(dstdir):
os.makedirs(dstdir)
- self.track_for_cleanup(dstdir)
+ if p == "lib":
+ # Can race with other tests
+ self.add_command_to_tearDown('rmdir --ignore-fail-on-non-empty %s' % dstdir)
+ else:
+ self.track_for_cleanup(dstdir)
dstfile = os.path.join(dstdir, os.path.basename(srcfile))
if srcfile != dstfile:
shutil.copy(srcfile, dstfile)
diff --git a/meta/lib/oeqa/selftest/cases/diffoscope/A/file.txt b/meta/lib/oeqa/selftest/cases/diffoscope/A/file.txt
new file mode 100644
index 0000000000..f70f10e4db
--- /dev/null
+++ b/meta/lib/oeqa/selftest/cases/diffoscope/A/file.txt
@@ -0,0 +1 @@
+A
diff --git a/meta/lib/oeqa/selftest/cases/diffoscope/B/file.txt b/meta/lib/oeqa/selftest/cases/diffoscope/B/file.txt
new file mode 100644
index 0000000000..223b7836fb
--- /dev/null
+++ b/meta/lib/oeqa/selftest/cases/diffoscope/B/file.txt
@@ -0,0 +1 @@
+B
diff --git a/meta/lib/oeqa/selftest/cases/imagefeatures.py b/meta/lib/oeqa/selftest/cases/imagefeatures.py
index 5c519ac3d6..f7a2533746 100644
--- a/meta/lib/oeqa/selftest/cases/imagefeatures.py
+++ b/meta/lib/oeqa/selftest/cases/imagefeatures.py
@@ -209,7 +209,7 @@ class ImageFeatures(OESelftestTestCase):
image_name = 'core-image-minimal'
all_image_types = set(get_bb_var("IMAGE_TYPES", image_name).split())
- blacklist = set(('container', 'elf', 'f2fs', 'multiubi', 'tar.zst'))
+ blacklist = set(('container', 'elf', 'f2fs', 'multiubi', 'tar.zst', 'wic.zst'))
img_types = all_image_types - blacklist
config = 'IMAGE_FSTYPES += "%s"\n'\
@@ -262,3 +262,109 @@ PNBLACKLIST[busybox] = "Don't build this"
self.write_config(config)
bitbake("--graphviz core-image-sato")
+
+ def test_fit_image(self):
+ """
+ Summary: Check if FIT image and Image Tree Source (its) are built
+ and the Image Tree Source has the correct fields.
+ Expected: 1. fitImage and fitImage-its can be built
+ 2. The type, load address, entrypoint address and
+ default values of kernel and ramdisk are as expected
+ in the Image Tree Source. Not all the fields are tested,
+ only the key fields that wont vary between different
+ architectures.
+ Product: oe-core
+ Author: Usama Arif <usama.arif@arm.com>
+ """
+ config = """
+# Enable creation of fitImage
+KERNEL_IMAGETYPE = "Image"
+KERNEL_IMAGETYPES += " fitImage "
+KERNEL_CLASSES = " kernel-fitimage "
+
+# RAM disk variables including load address and entrypoint for kernel and RAM disk
+IMAGE_FSTYPES += "cpio.gz"
+INITRAMFS_IMAGE = "core-image-minimal"
+UBOOT_RD_LOADADDRESS = "0x88000000"
+UBOOT_RD_ENTRYPOINT = "0x88000000"
+UBOOT_LOADADDRESS = "0x80080000"
+UBOOT_ENTRYPOINT = "0x80080000"
+"""
+ self.write_config(config)
+
+ # fitImage is created as part of linux recipe
+ bitbake("virtual/kernel")
+
+ image_type = "core-image-minimal"
+ deploy_dir_image = get_bb_var('DEPLOY_DIR_IMAGE')
+ machine = get_bb_var('MACHINE')
+ fitimage_its_path = os.path.join(deploy_dir_image,
+ "fitImage-its-%s-%s-%s" % (image_type, machine, machine))
+ fitimage_path = os.path.join(deploy_dir_image,
+ "fitImage-%s-%s-%s" % (image_type, machine, machine))
+
+ self.assertTrue(os.path.exists(fitimage_its_path),
+ "%s image tree source doesn't exist" % (fitimage_its_path))
+ self.assertTrue(os.path.exists(fitimage_path),
+ "%s FIT image doesn't exist" % (fitimage_path))
+
+ # Check that the type, load address, entrypoint address and default
+ # values for kernel and ramdisk in Image Tree Source are as expected.
+ # The order of fields in the below array is important. Not all the
+ # fields are tested, only the key fields that wont vary between
+ # different architectures.
+ its_field_check = ['type = "kernel";',
+ 'load = <0x80080000>;',
+ 'entry = <0x80080000>;',
+ 'type = "ramdisk";',
+ 'load = <0x88000000>;',
+ 'entry = <0x88000000>;',
+ 'default = "conf@1";',
+ 'kernel = "kernel@1";',
+ 'ramdisk = "ramdisk@1";'
+ ]
+
+ with open(fitimage_its_path) as its_file:
+ field_index = 0
+ for line in its_file:
+ if field_index == len(its_field_check):
+ break
+ if its_field_check[field_index] in line:
+ field_index +=1
+
+ if field_index != len(its_field_check): # if its equal, the test passed
+ self.assertTrue(field_index == len(its_field_check),
+ "Fields in Image Tree Source File %s did not match, error in finding %s"
+ % (fitimage_its_path, its_field_check[field_index]))
+
+ def test_image_gen_debugfs(self):
+ """
+ Summary: Check debugfs generation
+ Expected: 1. core-image-minimal can be build with IMAGE_GEN_DEBUGFS variable set
+ 2. debug filesystem is created when variable set
+ 3. debug symbols available
+ Product: oe-core
+ Author: Humberto Ibarra <humberto.ibarra.lopez@intel.com>
+ Yeoh Ee Peng <ee.peng.yeoh@intel.com>
+ """
+ import glob
+ image_name = 'core-image-minimal'
+ features = 'IMAGE_GEN_DEBUGFS = "1"\n'
+ features += 'IMAGE_FSTYPES_DEBUGFS = "tar.bz2"\n'
+ features += 'MACHINE = "genericx86-64"\n'
+ self.write_config(features)
+
+ bitbake(image_name)
+ deploy_dir_image = get_bb_var('DEPLOY_DIR_IMAGE')
+ dbg_tar_file = os.path.join(deploy_dir_image, "*-dbg.rootfs.tar.bz2")
+ debug_files = glob.glob(dbg_tar_file)
+ self.assertNotEqual(len(debug_files), 0, 'debug filesystem not generated at %s' % dbg_tar_file)
+ result = runCmd('cd %s; tar xvf %s' % (deploy_dir_image, dbg_tar_file))
+ self.assertEqual(result.status, 0, msg='Failed to extract %s: %s' % (dbg_tar_file, result.output))
+ result = runCmd('find %s -name %s' % (deploy_dir_image, "udevadm"))
+ self.assertTrue("udevadm" in result.output, msg='Failed to find udevadm: %s' % result.output)
+ dbg_symbols_targets = result.output.splitlines()
+ self.assertTrue(dbg_symbols_targets, msg='Failed to split udevadm: %s' % dbg_symbols_targets)
+ for t in dbg_symbols_targets:
+ result = runCmd('objdump --syms %s | grep debug' % t)
+ self.assertTrue("debug" in result.output, msg='Failed to find debug symbol: %s' % result.output)
diff --git a/meta/lib/oeqa/selftest/cases/incompatible_lic.py b/meta/lib/oeqa/selftest/cases/incompatible_lic.py
index 3eabd79097..2a6382a1a8 100644
--- a/meta/lib/oeqa/selftest/cases/incompatible_lic.py
+++ b/meta/lib/oeqa/selftest/cases/incompatible_lic.py
@@ -85,7 +85,7 @@ class IncompatibleLicenseTests(OESelftestTestCase):
class IncompatibleLicensePerImageTests(OESelftestTestCase):
def default_config(self):
return """
-IMAGE_INSTALL_append = "bash"
+IMAGE_INSTALL_append = " bash"
INCOMPATIBLE_LICENSE_pn-core-image-minimal = "GPL-3.0 LGPL-3.0"
"""
diff --git a/meta/lib/oeqa/selftest/cases/meta_ide.py b/meta/lib/oeqa/selftest/cases/meta_ide.py
index 809142559a..6f10d30dc9 100644
--- a/meta/lib/oeqa/selftest/cases/meta_ide.py
+++ b/meta/lib/oeqa/selftest/cases/meta_ide.py
@@ -43,7 +43,7 @@ class MetaIDE(OESelftestTestCase):
"https://ftp.gnu.org/gnu/cpio/cpio-2.13.tar.gz",
self.tmpdir_metaideQA, self.td['DATETIME'], dl_dir=dl_dir)
self.project.download_archive()
- self.assertEqual(self.project.run_configure(), 0,
+ self.assertEqual(self.project.run_configure('$CONFIGURE_FLAGS --disable-maintainer-mode','sed -i -e "/char \*program_name/d" src/global.c;'), 0,
msg="Running configure failed")
self.assertEqual(self.project.run_make(), 0,
msg="Running make failed")
diff --git a/meta/lib/oeqa/selftest/cases/oelib/buildhistory.py b/meta/lib/oeqa/selftest/cases/oelib/buildhistory.py
index d4664bd0df..802a91a488 100644
--- a/meta/lib/oeqa/selftest/cases/oelib/buildhistory.py
+++ b/meta/lib/oeqa/selftest/cases/oelib/buildhistory.py
@@ -5,6 +5,7 @@
import os
from oeqa.selftest.case import OESelftestTestCase
import tempfile
+import operator
from oeqa.utils.commands import get_bb_var
class TestBlobParsing(OESelftestTestCase):
@@ -97,3 +98,48 @@ class TestBlobParsing(OESelftestTestCase):
var_changes[x.fieldname] = (oldvalue, x.newvalue)
self.assertEqual(defaultmap, var_changes, "Defaults not set properly")
+
+class TestFileListCompare(OESelftestTestCase):
+
+ def test_compare_file_lists(self):
+ # Test that a directory tree that moves location such as /lib/modules/5.4.40-yocto-standard -> /lib/modules/5.4.43-yocto-standard
+ # is correctly identified as a move
+ from oe.buildhistory_analysis import compare_file_lists, FileChange
+
+ with open(self.tc.files_dir + "/buildhistory_filelist1.txt", "r") as f:
+ filelist1 = f.readlines()
+ with open(self.tc.files_dir + "/buildhistory_filelist2.txt", "r") as f:
+ filelist2 = f.readlines()
+
+ expectedResult = [
+ '/lib/libcap.so.2 changed symlink target from libcap.so.2.33 to libcap.so.2.34',
+ '/lib/libcap.so.2.33 moved to /lib/libcap.so.2.34',
+ '/lib/modules/5.4.40-yocto-standard moved to /lib/modules/5.4.43-yocto-standard',
+ '/lib/modules/5.4.43-yocto-standard/modules.builtin.alias.bin was added',
+ '/usr/bin/gawk-5.0.1 moved to /usr/bin/gawk-5.1.0',
+ '/usr/lib/libbtrfsutil.so changed symlink target from libbtrfsutil.so.1.1.1 to libbtrfsutil.so.1.2.0',
+ '/usr/lib/libbtrfsutil.so.1 changed symlink target from libbtrfsutil.so.1.1.1 to libbtrfsutil.so.1.2.0',
+ '/usr/lib/libbtrfsutil.so.1.1.1 moved to /usr/lib/libbtrfsutil.so.1.2.0',
+ '/usr/lib/libkmod.so changed symlink target from libkmod.so.2.3.4 to libkmod.so.2.3.5',
+ '/usr/lib/libkmod.so.2 changed symlink target from libkmod.so.2.3.4 to libkmod.so.2.3.5',
+ '/usr/lib/libkmod.so.2.3.4 moved to /usr/lib/libkmod.so.2.3.5',
+ '/usr/lib/libpixman-1.so.0 changed symlink target from libpixman-1.so.0.38.4 to libpixman-1.so.0.40.0',
+ '/usr/lib/libpixman-1.so.0.38.4 moved to /usr/lib/libpixman-1.so.0.40.0',
+ '/usr/lib/opkg/alternatives/rtcwake was added',
+ '/usr/lib/python3.8/site-packages/PyGObject-3.34.0.egg-info moved to /usr/lib/python3.8/site-packages/PyGObject-3.36.1.egg-info',
+ '/usr/lib/python3.8/site-packages/btrfsutil-1.1.1-py3.8.egg-info moved to /usr/lib/python3.8/site-packages/btrfsutil-1.2.0-py3.8.egg-info',
+ '/usr/lib/python3.8/site-packages/pycairo-1.19.0.egg-info moved to /usr/lib/python3.8/site-packages/pycairo-1.19.1.egg-info',
+ '/usr/sbin/rtcwake changed type from file to symlink',
+ '/usr/sbin/rtcwake changed permissions from rwxr-xr-x to rwxrwxrwx',
+ '/usr/sbin/rtcwake changed symlink target from None to /usr/sbin/rtcwake.util-linux',
+ '/usr/sbin/rtcwake.util-linux was added'
+ ]
+
+ result = compare_file_lists(filelist1, filelist2)
+ rendered = []
+ for entry in sorted(result, key=operator.attrgetter("path")):
+ rendered.append(str(entry))
+
+ self.maxDiff = None
+ self.assertCountEqual(rendered, expectedResult)
+
diff --git a/meta/lib/oeqa/selftest/cases/oescripts.py b/meta/lib/oeqa/selftest/cases/oescripts.py
index 2f18d8f29c..726daff7c6 100644
--- a/meta/lib/oeqa/selftest/cases/oescripts.py
+++ b/meta/lib/oeqa/selftest/cases/oescripts.py
@@ -133,7 +133,7 @@ class OEListPackageconfigTests(OEScriptTests):
def check_endlines(self, results, expected_endlines):
for line in results.output.splitlines():
for el in expected_endlines:
- if line == el:
+ if line.split() == el.split():
expected_endlines.remove(el)
break
@@ -177,7 +177,7 @@ class OEListPackageconfigTests(OEScriptTests):
self.check_endlines(results, expected_endlines)
- def test_packageconfig_flags_optiins_preferred_only(self):
+ def test_packageconfig_flags_options_preferred_only(self):
results = runCmd('%s/contrib/list-packageconfig-flags.py -p' % self.scripts_dir)
expected_endlines = []
expected_endlines.append("RECIPE NAME PACKAGECONFIG FLAGS")
diff --git a/meta/lib/oeqa/selftest/cases/package.py b/meta/lib/oeqa/selftest/cases/package.py
index b87f8dc3e2..3010b1af49 100644
--- a/meta/lib/oeqa/selftest/cases/package.py
+++ b/meta/lib/oeqa/selftest/cases/package.py
@@ -148,3 +148,26 @@ class PackageTests(OESelftestTestCase):
'/usr/libexec/hello4']:
if not gdbtest(qemu, binary):
self.fail('GDB %s failed' % binary)
+
+ def test_preserve_ownership(self):
+ import os, stat, oe.cachedpath
+ features = 'IMAGE_INSTALL_append = " selftest-chown"\n'
+ self.write_config(features)
+ bitbake("core-image-minimal")
+
+ sysconfdir = get_bb_var('sysconfdir', 'selftest-chown')
+ def check_ownership(qemu, gid, uid, path):
+ self.logger.info("Check ownership of %s", path)
+ status, output = qemu.run_serial(r'/bin/stat -c "%U %G" ' + path, timeout=60)
+ output = output.split(" ")
+ if output[0] != uid or output[1] != gid :
+ self.logger.error("Incrrect ownership %s [%s:%s]", path, output[0], output[1])
+ return False
+ return True
+
+ with runqemu('core-image-minimal') as qemu:
+ for path in [ sysconfdir + "/selftest-chown/file",
+ sysconfdir + "/selftest-chown/dir",
+ sysconfdir + "/selftest-chown/symlink"]:
+ if not check_ownership(qemu, "test", "test", path):
+ self.fail('Test ownership %s failed' % path)
diff --git a/meta/lib/oeqa/selftest/cases/prservice.py b/meta/lib/oeqa/selftest/cases/prservice.py
index fe1f24ea6d..578b2b4dd9 100644
--- a/meta/lib/oeqa/selftest/cases/prservice.py
+++ b/meta/lib/oeqa/selftest/cases/prservice.py
@@ -23,7 +23,7 @@ class BitbakePrTests(OESelftestTestCase):
package_data_file = os.path.join(self.pkgdata_dir, 'runtime', package_name)
package_data = ftools.read_file(package_data_file)
find_pr = re.search(r"PKGR: r[0-9]+\.([0-9]+)", package_data)
- self.assertTrue(find_pr, "No PKG revision found in %s" % package_data_file)
+ self.assertTrue(find_pr, "No PKG revision found via regex 'PKGR: r[0-9]+\.([0-9]+)' in %s" % package_data_file)
return int(find_pr.group(1))
def get_task_stamp(self, package_name, recipe_task):
@@ -40,7 +40,7 @@ class BitbakePrTests(OESelftestTestCase):
return str(stamps[0])
def increment_package_pr(self, package_name):
- inc_data = "do_package_append() {\n bb.build.exec_func('do_test_prserv', d)\n}\ndo_test_prserv() {\necho \"The current date is: %s\"\n}" % datetime.datetime.now()
+ inc_data = "do_package_append() {\n bb.build.exec_func('do_test_prserv', d)\n}\ndo_test_prserv() {\necho \"The current date is: %s\" > ${PKGDESTWORK}/${PN}.datestamp\n}" % datetime.datetime.now()
self.write_recipeinc(package_name, inc_data)
res = bitbake(package_name, ignore_status=True)
self.delete_recipeinc(package_name)
@@ -63,7 +63,7 @@ class BitbakePrTests(OESelftestTestCase):
pr_2 = self.get_pr_version(package_name)
stamp_2 = self.get_task_stamp(package_name, track_task)
- self.assertTrue(pr_2 - pr_1 == 1, "Step between same pkg. revision is greater than 1")
+ self.assertTrue(pr_2 - pr_1 == 1, "New PR %s did not increment as expected (from %s), difference should be 1" % (pr_2, pr_1))
self.assertTrue(stamp_1 != stamp_2, "Different pkg rev. but same stamp: %s" % stamp_1)
def run_test_pr_export_import(self, package_name, replace_current_db=True):
@@ -89,7 +89,7 @@ class BitbakePrTests(OESelftestTestCase):
self.increment_package_pr(package_name)
pr_2 = self.get_pr_version(package_name)
- self.assertTrue(pr_2 - pr_1 == 1, "Step between same pkg. revision is greater than 1")
+ self.assertTrue(pr_2 - pr_1 == 1, "New PR %s did not increment as expected (from %s), difference should be 1" % (pr_2, pr_1))
def test_import_export_replace_db(self):
self.run_test_pr_export_import('m4')
diff --git a/meta/lib/oeqa/selftest/cases/recipetool.py b/meta/lib/oeqa/selftest/cases/recipetool.py
index 6bfe8f177f..9d56e9e1e3 100644
--- a/meta/lib/oeqa/selftest/cases/recipetool.py
+++ b/meta/lib/oeqa/selftest/cases/recipetool.py
@@ -226,19 +226,6 @@ class RecipetoolTests(RecipetoolBase):
_, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-subdir', self.testfile, '', expectedlines, ['testfile'])
self.assertNotIn('WARNING: ', output)
- def test_recipetool_appendfile_src_glob(self):
- # A file that's in SRC_URI as a glob
- expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n',
- '\n',
- 'SRC_URI += "file://testfile"\n',
- '\n',
- 'do_install_append() {\n',
- ' install -d ${D}${datadir}\n',
- ' install -m 0644 ${WORKDIR}/testfile ${D}${datadir}/selftest-replaceme-src-globfile\n',
- '}\n']
- _, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-src-globfile', self.testfile, '', expectedlines, ['testfile'])
- self.assertNotIn('WARNING: ', output)
-
def test_recipetool_appendfile_inst_glob(self):
# A file that's in do_install as a glob
expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n',
@@ -422,6 +409,10 @@ class RecipetoolTests(RecipetoolBase):
self._test_recipe_contents(recipefile, checkvars, inherits)
def test_recipetool_create_npm(self):
+ collections = get_bb_var('BBFILE_COLLECTIONS').split()
+ if "openembedded-layer" not in collections:
+ self.skipTest("Test needs meta-oe for nodejs")
+
temprecipe = os.path.join(self.tempdir, 'recipe')
os.makedirs(temprecipe)
recipefile = os.path.join(temprecipe, 'savoirfairelinux-node-server-example_1.0.0.bb')
@@ -534,7 +525,11 @@ class RecipetoolTests(RecipetoolBase):
dstdir = os.path.join(dstdir, p)
if not os.path.exists(dstdir):
os.makedirs(dstdir)
- self.track_for_cleanup(dstdir)
+ if p == "lib":
+ # Can race with other tests
+ self.add_command_to_tearDown('rmdir --ignore-fail-on-non-empty %s' % dstdir)
+ else:
+ self.track_for_cleanup(dstdir)
dstfile = os.path.join(dstdir, os.path.basename(srcfile))
if srcfile != dstfile:
shutil.copy(srcfile, dstfile)
diff --git a/meta/lib/oeqa/selftest/cases/reproducible.py b/meta/lib/oeqa/selftest/cases/reproducible.py
index 5d3959be77..a7ef336143 100644
--- a/meta/lib/oeqa/selftest/cases/reproducible.py
+++ b/meta/lib/oeqa/selftest/cases/reproducible.py
@@ -77,6 +77,32 @@ def compare_file(reference, test, diffutils_sysroot):
result.status = SAME
return result
+def run_diffoscope(a_dir, b_dir, html_dir, **kwargs):
+ return runCmd(['diffoscope', '--no-default-limits', '--exclude-directory-metadata', 'yes', '--html-dir', html_dir, a_dir, b_dir],
+ **kwargs)
+
+class DiffoscopeTests(OESelftestTestCase):
+ diffoscope_test_files = os.path.join(os.path.dirname(os.path.abspath(__file__)), "diffoscope")
+
+ def test_diffoscope(self):
+ bitbake("diffoscope-native -c addto_recipe_sysroot")
+ diffoscope_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "diffoscope-native")
+
+ # Check that diffoscope doesn't return an error when the files compare
+ # the same (a general check that diffoscope is working)
+ with tempfile.TemporaryDirectory() as tmpdir:
+ run_diffoscope('A', 'A', tmpdir,
+ native_sysroot=diffoscope_sysroot, cwd=self.diffoscope_test_files)
+
+ # Check that diffoscope generates an index.html file when the files are
+ # different
+ with tempfile.TemporaryDirectory() as tmpdir:
+ r = run_diffoscope('A', 'B', tmpdir,
+ native_sysroot=diffoscope_sysroot, ignore_status=True, cwd=self.diffoscope_test_files)
+
+ self.assertNotEqual(r.status, 0, msg="diffoscope was successful when an error was expected")
+ self.assertTrue(os.path.exists(os.path.join(tmpdir, 'index.html')), "HTML index not found!")
+
class ReproducibleTests(OESelftestTestCase):
package_classes = ['deb', 'ipk']
images = ['core-image-minimal', 'core-image-sato', 'core-image-full-cmdline']
@@ -232,7 +258,7 @@ class ReproducibleTests(OESelftestTestCase):
# Copy jquery to improve the diffoscope output usability
self.copy_file(os.path.join(jquery_sysroot, 'usr/share/javascript/jquery/jquery.min.js'), os.path.join(package_html_dir, 'jquery.js'))
- runCmd(['diffoscope', '--no-default-limits', '--exclude-directory-metadata', '--html-dir', package_html_dir, 'reproducibleA', 'reproducibleB'],
+ run_diffoscope('reproducibleA', 'reproducibleB', package_html_dir,
native_sysroot=diffoscope_sysroot, ignore_status=True, cwd=package_dir)
if fails:
diff --git a/meta/lib/oeqa/selftest/cases/runcmd.py b/meta/lib/oeqa/selftest/cases/runcmd.py
index 3755764ee7..fa6113d7fa 100644
--- a/meta/lib/oeqa/selftest/cases/runcmd.py
+++ b/meta/lib/oeqa/selftest/cases/runcmd.py
@@ -64,12 +64,12 @@ class RunCmdTests(OESelftestTestCase):
runCmd, "echo foobar >&2; false", shell=True, assert_error=False)
def test_output(self):
- result = runCmd("echo stdout; echo stderr >&2", shell=True)
+ result = runCmd("echo stdout; echo stderr >&2", shell=True, sync=False)
self.assertEqual("stdout\nstderr", result.output)
self.assertEqual("", result.error)
def test_output_split(self):
- result = runCmd("echo stdout; echo stderr >&2", shell=True, stderr=subprocess.PIPE)
+ result = runCmd("echo stdout; echo stderr >&2", shell=True, stderr=subprocess.PIPE, sync=False)
self.assertEqual("stdout", result.output)
self.assertEqual("stderr", result.error)
@@ -77,45 +77,46 @@ class RunCmdTests(OESelftestTestCase):
numthreads = threading.active_count()
start = time.time()
# Killing a hanging process only works when not using a shell?!
- result = runCmd(['sleep', '60'], timeout=self.TIMEOUT, ignore_status=True)
+ result = runCmd(['sleep', '60'], timeout=self.TIMEOUT, ignore_status=True, sync=False)
self.assertEqual(result.status, -signal.SIGTERM)
end = time.time()
self.assertLess(end - start, self.TIMEOUT + self.DELTA)
- self.assertEqual(numthreads, threading.active_count())
+ self.assertEqual(numthreads, threading.active_count(), msg="Thread counts were not equal before (%s) and after (%s), active threads: %s" % (numthreads, threading.active_count(), threading.enumerate()))
def test_timeout_split(self):
numthreads = threading.active_count()
start = time.time()
# Killing a hanging process only works when not using a shell?!
- result = runCmd(['sleep', '60'], timeout=self.TIMEOUT, ignore_status=True, stderr=subprocess.PIPE)
+ result = runCmd(['sleep', '60'], timeout=self.TIMEOUT, ignore_status=True, stderr=subprocess.PIPE, sync=False)
self.assertEqual(result.status, -signal.SIGTERM)
end = time.time()
self.assertLess(end - start, self.TIMEOUT + self.DELTA)
- self.assertEqual(numthreads, threading.active_count())
+ self.assertEqual(numthreads, threading.active_count(), msg="Thread counts were not equal before (%s) and after (%s), active threads: %s" % (numthreads, threading.active_count(), threading.enumerate()))
def test_stdin(self):
numthreads = threading.active_count()
- result = runCmd("cat", data=b"hello world", timeout=self.TIMEOUT)
+ result = runCmd("cat", data=b"hello world", timeout=self.TIMEOUT, sync=False)
self.assertEqual("hello world", result.output)
- self.assertEqual(numthreads, threading.active_count())
+ self.assertEqual(numthreads, threading.active_count(), msg="Thread counts were not equal before (%s) and after (%s), active threads: %s" % (numthreads, threading.active_count(), threading.enumerate()))
+ self.assertEqual(numthreads, 1)
def test_stdin_timeout(self):
numthreads = threading.active_count()
start = time.time()
- result = runCmd(['sleep', '60'], data=b"hello world", timeout=self.TIMEOUT, ignore_status=True)
+ result = runCmd(['sleep', '60'], data=b"hello world", timeout=self.TIMEOUT, ignore_status=True, sync=False)
self.assertEqual(result.status, -signal.SIGTERM)
end = time.time()
self.assertLess(end - start, self.TIMEOUT + self.DELTA)
- self.assertEqual(numthreads, threading.active_count())
+ self.assertEqual(numthreads, threading.active_count(), msg="Thread counts were not equal before (%s) and after (%s), active threads: %s" % (numthreads, threading.active_count(), threading.enumerate()))
def test_log(self):
log = MemLogger()
- result = runCmd("echo stdout; echo stderr >&2", shell=True, output_log=log)
+ result = runCmd("echo stdout; echo stderr >&2", shell=True, output_log=log, sync=False)
self.assertEqual(["Running: echo stdout; echo stderr >&2", "stdout", "stderr"], log.info_msgs)
self.assertEqual([], log.error_msgs)
def test_log_split(self):
log = MemLogger()
- result = runCmd("echo stdout; echo stderr >&2", shell=True, output_log=log, stderr=subprocess.PIPE)
+ result = runCmd("echo stdout; echo stderr >&2", shell=True, output_log=log, stderr=subprocess.PIPE, sync=False)
self.assertEqual(["Running: echo stdout; echo stderr >&2", "stdout"], log.info_msgs)
self.assertEqual(["stderr"], log.error_msgs)
diff --git a/meta/lib/oeqa/selftest/cases/runtime_test.py b/meta/lib/oeqa/selftest/cases/runtime_test.py
index 60cb2e01a6..1bb1c4bee4 100644
--- a/meta/lib/oeqa/selftest/cases/runtime_test.py
+++ b/meta/lib/oeqa/selftest/cases/runtime_test.py
@@ -156,11 +156,12 @@ class TestImage(OESelftestTestCase):
self.gpg_home = tempfile.mkdtemp(prefix="oeqa-feed-sign-")
self.track_for_cleanup(self.gpg_home)
signing_key_dir = os.path.join(self.testlayer_path, 'files', 'signing')
- runCmd('gpg --batch --homedir %s --import %s' % (self.gpg_home, os.path.join(signing_key_dir, 'key.secret')), native_sysroot=get_bb_var("RECIPE_SYSROOT_NATIVE", "gnupg-native"))
+ runCmd('gpgconf --list-dirs --homedir %s; gpg -v --batch --homedir %s --import %s' % (self.gpg_home, self.gpg_home, os.path.join(signing_key_dir, 'key.secret')), native_sysroot=get_bb_var("RECIPE_SYSROOT_NATIVE", "gnupg-native"), shell=True)
features += 'INHERIT += "sign_package_feed"\n'
features += 'PACKAGE_FEED_GPG_NAME = "testuser"\n'
features += 'PACKAGE_FEED_GPG_PASSPHRASE_FILE = "%s"\n' % os.path.join(signing_key_dir, 'key.passphrase')
features += 'GPG_PATH = "%s"\n' % self.gpg_home
+ features += 'PSEUDO_IGNORE_PATHS .= ",%s"\n' % self.gpg_home
self.write_config(features)
# Build core-image-sato and testimage
@@ -180,24 +181,22 @@ class TestImage(OESelftestTestCase):
distro = oe.lsb.distro_identifier()
if distro and distro == 'debian-8':
self.skipTest('virgl isn\'t working with Debian 8')
+ if distro and distro == 'debian-9':
+ self.skipTest('virgl isn\'t working with Debian 9')
if distro and distro == 'centos-7':
self.skipTest('virgl isn\'t working with Centos 7')
if distro and distro == 'opensuseleap-15.0':
self.skipTest('virgl isn\'t working with Opensuse 15.0')
qemu_packageconfig = get_bb_var('PACKAGECONFIG', 'qemu-system-native')
- sdl_packageconfig = get_bb_var('PACKAGECONFIG', 'libsdl2-native')
+ qemu_distrofeatures = get_bb_var('DISTRO_FEATURES', 'qemu-system-native')
features = 'INHERIT += "testimage"\n'
if 'gtk+' not in qemu_packageconfig:
features += 'PACKAGECONFIG_append_pn-qemu-system-native = " gtk+"\n'
if 'sdl' not in qemu_packageconfig:
features += 'PACKAGECONFIG_append_pn-qemu-system-native = " sdl"\n'
- if 'virglrenderer' not in qemu_packageconfig:
- features += 'PACKAGECONFIG_append_pn-qemu-system-native = " virglrenderer"\n'
- if 'glx' not in qemu_packageconfig:
- features += 'PACKAGECONFIG_append_pn-qemu-system-native = " glx"\n'
- if 'opengl' not in sdl_packageconfig:
- features += 'PACKAGECONFIG_append_pn-libsdl2-native = " opengl"\n'
+ if 'opengl' not in qemu_distrofeatures:
+ features += 'DISTRO_FEATURES_append = " opengl"\n'
features += 'TEST_SUITES = "ping ssh virgl"\n'
features += 'IMAGE_FEATURES_append = " ssh-server-dropbear"\n'
features += 'IMAGE_INSTALL_append = " kmscube"\n'
@@ -229,12 +228,10 @@ class TestImage(OESelftestTestCase):
dripath = subprocess.check_output("pkg-config --variable=dridriverdir dri", shell=True)
except subprocess.CalledProcessError as e:
self.skipTest("Could not determine the path to dri drivers on the host via pkg-config.\nPlease install Mesa development files (particularly, dri.pc) on the host machine.")
- qemu_packageconfig = get_bb_var('PACKAGECONFIG', 'qemu-system-native')
+ qemu_distrofeatures = get_bb_var('DISTRO_FEATURES', 'qemu-system-native')
features = 'INHERIT += "testimage"\n'
- if 'virglrenderer' not in qemu_packageconfig:
- features += 'PACKAGECONFIG_append_pn-qemu-system-native = " virglrenderer"\n'
- if 'glx' not in qemu_packageconfig:
- features += 'PACKAGECONFIG_append_pn-qemu-system-native = " glx"\n'
+ if 'opengl' not in qemu_distrofeatures:
+ features += 'DISTRO_FEATURES_append = " opengl"\n'
features += 'TEST_SUITES = "ping ssh virgl"\n'
features += 'IMAGE_FEATURES_append = " ssh-server-dropbear"\n'
features += 'IMAGE_INSTALL_append = " kmscube"\n'
diff --git a/meta/lib/oeqa/selftest/cases/signing.py b/meta/lib/oeqa/selftest/cases/signing.py
index 202d54994b..a28c7eb19a 100644
--- a/meta/lib/oeqa/selftest/cases/signing.py
+++ b/meta/lib/oeqa/selftest/cases/signing.py
@@ -44,7 +44,9 @@ class Signing(OESelftestTestCase):
origenv = os.environ.copy()
for e in os.environ:
- if builddir in os.environ[e]:
+ if builddir + "/" in os.environ[e]:
+ os.environ[e] = os.environ[e].replace(builddir + "/", newbuilddir + "/")
+ if os.environ[e].endswith(builddir):
os.environ[e] = os.environ[e].replace(builddir, newbuilddir)
os.chdir(newbuilddir)
diff --git a/meta/lib/oeqa/selftest/cases/sstatetests.py b/meta/lib/oeqa/selftest/cases/sstatetests.py
index 9adb511960..c46e8ba489 100644
--- a/meta/lib/oeqa/selftest/cases/sstatetests.py
+++ b/meta/lib/oeqa/selftest/cases/sstatetests.py
@@ -19,10 +19,13 @@ class SStateTests(SStateBase):
# Test that a git repository which changes is correctly handled by SRCREV = ${AUTOREV}
# when PV does not contain SRCPV
- tempdir = tempfile.mkdtemp(prefix='oeqa')
+ tempdir = tempfile.mkdtemp(prefix='sstate_autorev')
+ tempdldir = tempfile.mkdtemp(prefix='sstate_autorev_dldir')
self.track_for_cleanup(tempdir)
+ self.track_for_cleanup(tempdldir)
create_temp_layer(tempdir, 'selftestrecipetool')
self.add_command_to_tearDown('bitbake-layers remove-layer %s' % tempdir)
+ self.append_config("DL_DIR = \"%s\"" % tempdldir)
runCmd('bitbake-layers add-layer %s' % tempdir)
# Use dbus-wait as a local git repo we can add a commit between two builds in
diff --git a/meta/lib/oeqa/selftest/cases/sysroot.py b/meta/lib/oeqa/selftest/cases/sysroot.py
new file mode 100644
index 0000000000..6e34927c90
--- /dev/null
+++ b/meta/lib/oeqa/selftest/cases/sysroot.py
@@ -0,0 +1,37 @@
+#
+# SPDX-License-Identifier: MIT
+#
+
+import uuid
+
+from oeqa.selftest.case import OESelftestTestCase
+from oeqa.utils.commands import bitbake
+
+class SysrootTests(OESelftestTestCase):
+ def test_sysroot_cleanup(self):
+ """
+ Build sysroot test which depends on virtual/sysroot-test for one machine,
+ switch machine, switch provider of virtual/sysroot-test and check that the
+ sysroot is correctly cleaned up. The files in the two providers overlap
+ so can cause errors if the sysroot code doesn't function correctly.
+ Yes, sysroot-test should be machine specific really to avoid this, however
+ the sysroot cleanup should also work [YOCTO #13702].
+ """
+
+ uuid1 = uuid.uuid4()
+ uuid2 = uuid.uuid4()
+
+ self.write_config("""
+PREFERRED_PROVIDER_virtual/sysroot-test = "sysroot-test-arch1"
+MACHINE = "qemux86"
+TESTSTRING_pn-sysroot-test-arch1 = "%s"
+TESTSTRING_pn-sysroot-test-arch2 = "%s"
+""" % (uuid1, uuid2))
+ bitbake("sysroot-test")
+ self.write_config("""
+PREFERRED_PROVIDER_virtual/sysroot-test = "sysroot-test-arch2"
+MACHINE = "qemux86copy"
+TESTSTRING_pn-sysroot-test-arch1 = "%s"
+TESTSTRING_pn-sysroot-test-arch2 = "%s"
+""" % (uuid1, uuid2))
+ bitbake("sysroot-test")
diff --git a/meta/lib/oeqa/selftest/cases/tinfoil.py b/meta/lib/oeqa/selftest/cases/tinfoil.py
index 42a1b6b4f4..206168ed00 100644
--- a/meta/lib/oeqa/selftest/cases/tinfoil.py
+++ b/meta/lib/oeqa/selftest/cases/tinfoil.py
@@ -65,19 +65,6 @@ class TinfoilTests(OESelftestTestCase):
localdata.setVar('PN', 'hello')
self.assertEqual('hello', localdata.getVar('BPN'))
- def test_parse_recipe_initial_datastore(self):
- with bb.tinfoil.Tinfoil() as tinfoil:
- tinfoil.prepare(config_only=False, quiet=2)
- testrecipe = 'mdadm'
- best = tinfoil.find_best_provider(testrecipe)
- if not best:
- self.fail('Unable to find recipe providing %s' % testrecipe)
- dcopy = bb.data.createCopy(tinfoil.config_data)
- dcopy.setVar('MYVARIABLE', 'somevalue')
- rd = tinfoil.parse_recipe_file(best[3], config_data=dcopy)
- # Check we can get variable values
- self.assertEqual('somevalue', rd.getVar('MYVARIABLE'))
-
def test_list_recipes(self):
with bb.tinfoil.Tinfoil() as tinfoil:
tinfoil.prepare(config_only=False, quiet=2)
@@ -113,8 +100,9 @@ class TinfoilTests(OESelftestTestCase):
eventreceived = False
commandcomplete = False
start = time.time()
- # Wait for 5s in total so we'd detect spurious heartbeat events for example
- while time.time() - start < 5:
+ # Wait for 10s in total so we'd detect spurious heartbeat events for example
+ # The test is IO load sensitive too
+ while time.time() - start < 10:
event = tinfoil.wait_event(1)
if event:
if isinstance(event, bb.command.CommandCompleted):
diff --git a/meta/lib/oeqa/selftest/cases/wic.py b/meta/lib/oeqa/selftest/cases/wic.py
index 626a217e69..714637ec1e 100644
--- a/meta/lib/oeqa/selftest/cases/wic.py
+++ b/meta/lib/oeqa/selftest/cases/wic.py
@@ -62,6 +62,12 @@ def extract_files(debugfs_output):
return [line.split('/')[5].strip() for line in \
debugfs_output.strip().split('/\n')]
+def files_own_by_root(debugfs_output):
+ for line in debugfs_output.strip().split('/\n'):
+ if line.split('/')[3:5] != ['0', '0']:
+ print(debugfs_output)
+ return False
+ return True
class WicTestCase(OESelftestTestCase):
"""Wic test class."""
@@ -84,6 +90,7 @@ class WicTestCase(OESelftestTestCase):
self.skipTest('wic-tools cannot be built due its (intltool|gettext)-native dependency and NLS disable')
bitbake('core-image-minimal')
+ bitbake('core-image-minimal-mtdutils')
WicTestCase.image_is_ready = True
rmtree(self.resultdir, ignore_errors=True)
@@ -228,6 +235,17 @@ class Wic(WicTestCase):
runCmd(cmd)
self.assertEqual(1, len(glob(self.resultdir + "systemd-bootdisk-*direct")))
+ def test_efi_bootpart(self):
+ """Test creation of efi-bootpart image"""
+ cmd = "wic create mkefidisk -e core-image-minimal -o %s" % self.resultdir
+ kimgtype = get_bb_var('KERNEL_IMAGETYPE', 'core-image-minimal')
+ self.append_config('IMAGE_EFI_BOOT_FILES = "%s;kernel"\n' % kimgtype)
+ runCmd(cmd)
+ sysroot = get_bb_var('RECIPE_SYSROOT_NATIVE', 'wic-tools')
+ images = glob(self.resultdir + "mkefidisk-*.direct")
+ result = runCmd("wic ls %s:1/ -n %s" % (images[0], sysroot))
+ self.assertIn("kernel",result.output)
+
def test_sdimage_bootpart(self):
"""Test creation of sdimage-bootpart image"""
cmd = "wic create sdimage-bootpart -e core-image-minimal -o %s" % self.resultdir
@@ -479,15 +497,76 @@ part /part2 --source rootfs --ondisk mmcblk0 --fstype=ext4 --include-path %s"""
res = runCmd("debugfs -R 'ls -p' %s 2>/dev/null" % (part1))
files = extract_files(res.output)
self.assertNotIn('test-file', files)
+ self.assertEqual(True, files_own_by_root(res.output))
- # Test partition 2, should not contain 'test-file'
+ # Test partition 2, should contain 'test-file'
res = runCmd("debugfs -R 'ls -p' %s 2>/dev/null" % (part2))
files = extract_files(res.output)
self.assertIn('test-file', files)
+ self.assertEqual(True, files_own_by_root(res.output))
+
+ finally:
+ os.environ['PATH'] = oldpath
+
+ def test_include_path_embeded(self):
+ """Test --include-path wks option."""
+
+ oldpath = os.environ['PATH']
+ os.environ['PATH'] = get_bb_var("PATH", "wic-tools")
+
+ try:
+ include_path = os.path.join(self.resultdir, 'test-include')
+ os.makedirs(include_path)
+ with open(os.path.join(include_path, 'test-file'), 'w') as t:
+ t.write("test\n")
+ wks_file = os.path.join(include_path, 'temp.wks')
+ with open(wks_file, 'w') as wks:
+ wks.write("""
+part / --source rootfs --fstype=ext4 --include-path %s --include-path core-image-minimal-mtdutils export/"""
+ % (include_path))
+ runCmd("wic create %s -e core-image-minimal -o %s" \
+ % (wks_file, self.resultdir))
+
+ part1 = glob(os.path.join(self.resultdir, 'temp-*.direct.p1'))[0]
+
+ res = runCmd("debugfs -R 'ls -p' %s 2>/dev/null" % (part1))
+ files = extract_files(res.output)
+ self.assertIn('test-file', files)
+ self.assertEqual(True, files_own_by_root(res.output))
+
+ res = runCmd("debugfs -R 'ls -p /export/etc/' %s 2>/dev/null" % (part1))
+ files = extract_files(res.output)
+ self.assertIn('passwd', files)
+ self.assertEqual(True, files_own_by_root(res.output))
finally:
os.environ['PATH'] = oldpath
+ def test_include_path_errors(self):
+ """Test --include-path wks option error handling."""
+ wks_file = 'temp.wks'
+
+ # Absolute argument.
+ with open(wks_file, 'w') as wks:
+ wks.write("part / --source rootfs --fstype=ext4 --include-path core-image-minimal-mtdutils /export")
+ self.assertNotEqual(0, runCmd("wic create %s -e core-image-minimal -o %s" \
+ % (wks_file, self.resultdir), ignore_status=True).status)
+ os.remove(wks_file)
+
+ # Argument pointing to parent directory.
+ with open(wks_file, 'w') as wks:
+ wks.write("part / --source rootfs --fstype=ext4 --include-path core-image-minimal-mtdutils ././..")
+ self.assertNotEqual(0, runCmd("wic create %s -e core-image-minimal -o %s" \
+ % (wks_file, self.resultdir), ignore_status=True).status)
+ os.remove(wks_file)
+
+ # 3 Argument pointing to parent directory.
+ with open(wks_file, 'w') as wks:
+ wks.write("part / --source rootfs --fstype=ext4 --include-path core-image-minimal-mtdutils export/ dummy")
+ self.assertNotEqual(0, runCmd("wic create %s -e core-image-minimal -o %s" \
+ % (wks_file, self.resultdir), ignore_status=True).status)
+ os.remove(wks_file)
+
def test_exclude_path_errors(self):
"""Test --exclude-path wks option error handling."""
wks_file = 'temp.wks'
@@ -506,6 +585,89 @@ part /part2 --source rootfs --ondisk mmcblk0 --fstype=ext4 --include-path %s"""
% (wks_file, self.resultdir), ignore_status=True).status)
os.remove(wks_file)
+ def test_permissions(self):
+ """Test permissions are respected"""
+
+ oldpath = os.environ['PATH']
+ os.environ['PATH'] = get_bb_var("PATH", "wic-tools")
+
+ t_normal = """
+part / --source rootfs --fstype=ext4
+"""
+ t_exclude = """
+part / --source rootfs --fstype=ext4 --exclude-path=home
+"""
+ t_multi = """
+part / --source rootfs --ondisk sda --fstype=ext4
+part /export --source rootfs --rootfs=core-image-minimal-mtdutils --fstype=ext4
+"""
+ t_change = """
+part / --source rootfs --ondisk sda --fstype=ext4 --exclude-path=etc/   
+part /etc --source rootfs --fstype=ext4 --change-directory=etc
+"""
+ tests = [t_normal, t_exclude, t_multi, t_change]
+
+ try:
+ for test in tests:
+ include_path = os.path.join(self.resultdir, 'test-include')
+ os.makedirs(include_path)
+ wks_file = os.path.join(include_path, 'temp.wks')
+ with open(wks_file, 'w') as wks:
+ wks.write(test)
+ runCmd("wic create %s -e core-image-minimal -o %s" \
+ % (wks_file, self.resultdir))
+
+ for part in glob(os.path.join(self.resultdir, 'temp-*.direct.p*')):
+ res = runCmd("debugfs -R 'ls -p' %s 2>/dev/null" % (part))
+ self.assertEqual(True, files_own_by_root(res.output))
+
+ rmtree(self.resultdir, ignore_errors=True)
+
+ finally:
+ os.environ['PATH'] = oldpath
+
+ def test_change_directory(self):
+ """Test --change-directory wks option."""
+
+ oldpath = os.environ['PATH']
+ os.environ['PATH'] = get_bb_var("PATH", "wic-tools")
+
+ try:
+ include_path = os.path.join(self.resultdir, 'test-include')
+ os.makedirs(include_path)
+ wks_file = os.path.join(include_path, 'temp.wks')
+ with open(wks_file, 'w') as wks:
+ wks.write("part /etc --source rootfs --fstype=ext4 --change-directory=etc")
+ runCmd("wic create %s -e core-image-minimal -o %s" \
+ % (wks_file, self.resultdir))
+
+ part1 = glob(os.path.join(self.resultdir, 'temp-*.direct.p1'))[0]
+
+ res = runCmd("debugfs -R 'ls -p' %s 2>/dev/null" % (part1))
+ files = extract_files(res.output)
+ self.assertIn('passwd', files)
+
+ finally:
+ os.environ['PATH'] = oldpath
+
+ def test_change_directory_errors(self):
+ """Test --change-directory wks option error handling."""
+ wks_file = 'temp.wks'
+
+ # Absolute argument.
+ with open(wks_file, 'w') as wks:
+ wks.write("part / --source rootfs --fstype=ext4 --change-directory /usr")
+ self.assertNotEqual(0, runCmd("wic create %s -e core-image-minimal -o %s" \
+ % (wks_file, self.resultdir), ignore_status=True).status)
+ os.remove(wks_file)
+
+ # Argument pointing to parent directory.
+ with open(wks_file, 'w') as wks:
+ wks.write("part / --source rootfs --fstype=ext4 --change-directory ././..")
+ self.assertNotEqual(0, runCmd("wic create %s -e core-image-minimal -o %s" \
+ % (wks_file, self.resultdir), ignore_status=True).status)
+ os.remove(wks_file)
+
class Wic2(WicTestCase):
def test_bmap_short(self):
@@ -538,7 +700,7 @@ class Wic2(WicTestCase):
wicvars = wicvars.difference(('DEPLOY_DIR_IMAGE', 'IMAGE_BOOT_FILES',
'INITRD', 'INITRD_LIVE', 'ISODIR','INITRAMFS_IMAGE',
'INITRAMFS_IMAGE_BUNDLE', 'INITRAMFS_LINK_NAME',
- 'APPEND'))
+ 'APPEND', 'IMAGE_EFI_BOOT_FILES'))
with open(path) as envfile:
content = dict(line.split("=", 1) for line in envfile)
# test if variables used by wic present in the .env file
@@ -639,41 +801,50 @@ class Wic2(WicTestCase):
tempf.write("part " \
"--source rootfs --ondisk hda --align 4 --fixed-size %d "
"--fstype=ext4\n" % size)
- wksname = os.path.splitext(os.path.basename(wkspath))[0]
- return wkspath, wksname
+ return wkspath
- def test_fixed_size(self):
- """
- Test creation of a simple image with partition size controlled through
- --fixed-size flag
- """
- wkspath, wksname = Wic2._make_fixed_size_wks(200)
+ def _get_wic_partitions(self, wkspath, native_sysroot=None, ignore_status=False):
+ p = runCmd("wic create %s -e core-image-minimal -o %s" % (wkspath, self.resultdir),
+ ignore_status=ignore_status)
+
+ if p.status:
+ return (p, None)
+
+ wksname = os.path.splitext(os.path.basename(wkspath))[0]
- runCmd("wic create %s -e core-image-minimal -o %s" \
- % (wkspath, self.resultdir))
- os.remove(wkspath)
wicout = glob(self.resultdir + "%s-*direct" % wksname)
- self.assertEqual(1, len(wicout))
+
+ if not wicout:
+ return (p, None)
wicimg = wicout[0]
- native_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "wic-tools")
+ if not native_sysroot:
+ native_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "wic-tools")
# verify partition size with wic
- res = runCmd("parted -m %s unit mib p 2>/dev/null" % wicimg,
+ res = runCmd("parted -m %s unit kib p 2>/dev/null" % wicimg,
native_sysroot=native_sysroot)
# parse parted output which looks like this:
# BYT;\n
# /var/tmp/wic/build/tmpfwvjjkf_-201611101222-hda.direct:200MiB:file:512:512:msdos::;\n
# 1:0.00MiB:200MiB:200MiB:ext4::;\n
- partlns = res.output.splitlines()[2:]
+ return (p, res.output.splitlines()[2:])
- self.assertEqual(1, len(partlns),
- msg="Partition list '%s'" % res.output)
- self.assertEqual("1:0.00MiB:200MiB:200MiB:ext4::;", partlns[0],
- msg="Partition list '%s'" % res.output)
+ def test_fixed_size(self):
+ """
+ Test creation of a simple image with partition size controlled through
+ --fixed-size flag
+ """
+ wkspath = Wic2._make_fixed_size_wks(200)
+ _, partlns = self._get_wic_partitions(wkspath)
+ os.remove(wkspath)
+
+ self.assertEqual(partlns, [
+ "1:4.00kiB:204804kiB:204800kiB:ext4::;",
+ ])
def test_fixed_size_error(self):
"""
@@ -681,13 +852,111 @@ class Wic2(WicTestCase):
--fixed-size flag. The size of partition is intentionally set to 1MiB
in order to trigger an error in wic.
"""
- wkspath, wksname = Wic2._make_fixed_size_wks(1)
-
- self.assertEqual(1, runCmd("wic create %s -e core-image-minimal -o %s" \
- % (wkspath, self.resultdir), ignore_status=True).status)
+ wkspath = Wic2._make_fixed_size_wks(1)
+ p, _ = self._get_wic_partitions(wkspath, ignore_status=True)
os.remove(wkspath)
- wicout = glob(self.resultdir + "%s-*direct" % wksname)
- self.assertEqual(0, len(wicout))
+
+ self.assertNotEqual(p.status, 0, "wic exited successfully when an error was expected:\n%s" % p.output)
+
+ def test_offset(self):
+ native_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "wic-tools")
+
+ with NamedTemporaryFile("w", suffix=".wks") as tempf:
+ # Test that partitions are placed at the correct offsets, default KB
+ tempf.write("bootloader --ptable gpt\n" \
+ "part / --source rootfs --ondisk hda --offset 32 --fixed-size 100M --fstype=ext4\n" \
+ "part /bar --ondisk hda --offset 102432 --fixed-size 100M --fstype=ext4\n")
+ tempf.flush()
+
+ _, partlns = self._get_wic_partitions(tempf.name, native_sysroot)
+ self.assertEqual(partlns, [
+ "1:32.0kiB:102432kiB:102400kiB:ext4:primary:;",
+ "2:102432kiB:204832kiB:102400kiB:ext4:primary:;",
+ ])
+
+ with NamedTemporaryFile("w", suffix=".wks") as tempf:
+ # Test that partitions are placed at the correct offsets, same with explicit KB
+ tempf.write("bootloader --ptable gpt\n" \
+ "part / --source rootfs --ondisk hda --offset 32K --fixed-size 100M --fstype=ext4\n" \
+ "part /bar --ondisk hda --offset 102432K --fixed-size 100M --fstype=ext4\n")
+ tempf.flush()
+
+ _, partlns = self._get_wic_partitions(tempf.name, native_sysroot)
+ self.assertEqual(partlns, [
+ "1:32.0kiB:102432kiB:102400kiB:ext4:primary:;",
+ "2:102432kiB:204832kiB:102400kiB:ext4:primary:;",
+ ])
+
+ with NamedTemporaryFile("w", suffix=".wks") as tempf:
+ # Test that partitions are placed at the correct offsets using MB
+ tempf.write("bootloader --ptable gpt\n" \
+ "part / --source rootfs --ondisk hda --offset 32K --fixed-size 100M --fstype=ext4\n" \
+ "part /bar --ondisk hda --offset 101M --fixed-size 100M --fstype=ext4\n")
+ tempf.flush()
+
+ _, partlns = self._get_wic_partitions(tempf.name, native_sysroot)
+ self.assertEqual(partlns, [
+ "1:32.0kiB:102432kiB:102400kiB:ext4:primary:;",
+ "2:103424kiB:205824kiB:102400kiB:ext4:primary:;",
+ ])
+
+ with NamedTemporaryFile("w", suffix=".wks") as tempf:
+ # Test that partitions can be placed on a 512 byte sector boundary
+ tempf.write("bootloader --ptable gpt\n" \
+ "part / --source rootfs --ondisk hda --offset 65s --fixed-size 99M --fstype=ext4\n" \
+ "part /bar --ondisk hda --offset 102432 --fixed-size 100M --fstype=ext4\n")
+ tempf.flush()
+
+ _, partlns = self._get_wic_partitions(tempf.name, native_sysroot)
+ self.assertEqual(partlns, [
+ "1:32.5kiB:101408kiB:101376kiB:ext4:primary:;",
+ "2:102432kiB:204832kiB:102400kiB:ext4:primary:;",
+ ])
+
+ with NamedTemporaryFile("w", suffix=".wks") as tempf:
+ # Test that a partition can be placed immediately after a MSDOS partition table
+ tempf.write("bootloader --ptable msdos\n" \
+ "part / --source rootfs --ondisk hda --offset 1s --fixed-size 100M --fstype=ext4\n")
+ tempf.flush()
+
+ _, partlns = self._get_wic_partitions(tempf.name, native_sysroot)
+ self.assertEqual(partlns, [
+ "1:0.50kiB:102400kiB:102400kiB:ext4::;",
+ ])
+
+ with NamedTemporaryFile("w", suffix=".wks") as tempf:
+ # Test that image creation fails if the partitions would overlap
+ tempf.write("bootloader --ptable gpt\n" \
+ "part / --source rootfs --ondisk hda --offset 32 --fixed-size 100M --fstype=ext4\n" \
+ "part /bar --ondisk hda --offset 102431 --fixed-size 100M --fstype=ext4\n")
+ tempf.flush()
+
+ p, _ = self._get_wic_partitions(tempf.name, ignore_status=True)
+ self.assertNotEqual(p.status, 0, "wic exited successfully when an error was expected:\n%s" % p.output)
+
+ with NamedTemporaryFile("w", suffix=".wks") as tempf:
+ # Test that partitions are not allowed to overlap with the booloader
+ tempf.write("bootloader --ptable gpt\n" \
+ "part / --source rootfs --ondisk hda --offset 8 --fixed-size 100M --fstype=ext4\n")
+ tempf.flush()
+
+ p, _ = self._get_wic_partitions(tempf.name, ignore_status=True)
+ self.assertNotEqual(p.status, 0, "wic exited successfully when an error was expected:\n%s" % p.output)
+
+ def test_extra_space(self):
+ native_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "wic-tools")
+
+ with NamedTemporaryFile("w", suffix=".wks") as tempf:
+ tempf.write("bootloader --ptable gpt\n" \
+ "part / --source rootfs --ondisk hda --extra-space 200M --fstype=ext4\n")
+ tempf.flush()
+
+ _, partlns = self._get_wic_partitions(tempf.name, native_sysroot)
+ self.assertEqual(len(partlns), 1)
+ size = partlns[0].split(':')[3]
+ self.assertRegex(size, r'^[0-9]+kiB$')
+ size = int(size[:-3])
+ self.assertGreaterEqual(size, 204800)
@only_for_arch(['i586', 'i686', 'x86_64'])
def test_rawcopy_plugin_qemu(self):
diff --git a/meta/lib/oeqa/selftest/context.py b/meta/lib/oeqa/selftest/context.py
index 409698d57c..dd3609c1d6 100644
--- a/meta/lib/oeqa/selftest/context.py
+++ b/meta/lib/oeqa/selftest/context.py
@@ -10,6 +10,7 @@ import glob
import sys
import importlib
import subprocess
+import unittest
from random import choice
import oeqa
@@ -21,19 +22,54 @@ from oeqa.core.exception import OEQAPreRun, OEQATestNotFound
from oeqa.utils.commands import runCmd, get_bb_vars, get_test_layer
+class NonConcurrentTestSuite(unittest.TestSuite):
+ def __init__(self, suite, processes, setupfunc, removefunc):
+ super().__init__([suite])
+ self.processes = processes
+ self.suite = suite
+ self.setupfunc = setupfunc
+ self.removefunc = removefunc
+
+ def run(self, result):
+ (builddir, newbuilddir) = self.setupfunc("-st", None, self.suite)
+ ret = super().run(result)
+ os.chdir(builddir)
+ if newbuilddir and ret.wasSuccessful():
+ self.removefunc(newbuilddir)
+
+def removebuilddir(d):
+ delay = 5
+ while delay and os.path.exists(d + "/bitbake.lock"):
+ time.sleep(1)
+ delay = delay - 1
+ # Deleting these directories takes a lot of time, use autobuilder
+ # clobberdir if its available
+ clobberdir = os.path.expanduser("~/yocto-autobuilder-helper/janitor/clobberdir")
+ if os.path.exists(clobberdir):
+ try:
+ subprocess.check_call([clobberdir, d])
+ return
+ except subprocess.CalledProcessError:
+ pass
+ bb.utils.prunedir(d, ionice=True)
+
class OESelftestTestContext(OETestContext):
- def __init__(self, td=None, logger=None, machines=None, config_paths=None):
+ def __init__(self, td=None, logger=None, machines=None, config_paths=None, newbuilddir=None):
super(OESelftestTestContext, self).__init__(td, logger)
self.machines = machines
self.custommachine = None
self.config_paths = config_paths
+ self.newbuilddir = newbuilddir
def setup_builddir(self, suffix, selftestdir, suite):
builddir = os.environ['BUILDDIR']
if not selftestdir:
selftestdir = get_test_layer()
- newbuilddir = builddir + suffix
+ if self.newbuilddir:
+ newbuilddir = os.path.join(self.newbuilddir, 'build' + suffix)
+ else:
+ newbuilddir = builddir + suffix
newselftestdir = newbuilddir + "/meta-selftest"
if os.path.exists(newbuilddir):
@@ -46,7 +82,9 @@ class OESelftestTestContext(OETestContext):
oe.path.copytree(selftestdir, newselftestdir)
for e in os.environ:
- if builddir in os.environ[e]:
+ if builddir + "/" in os.environ[e]:
+ os.environ[e] = os.environ[e].replace(builddir + "/", newbuilddir + "/")
+ if os.environ[e].endswith(builddir):
os.environ[e] = os.environ[e].replace(builddir, newbuilddir)
subprocess.check_output("git init; git add *; git commit -a -m 'initial'", cwd=newselftestdir, shell=True)
@@ -56,9 +94,9 @@ class OESelftestTestContext(OETestContext):
os.chdir(newbuilddir)
- for t in suite:
+ def patch_test(t):
if not hasattr(t, "tc"):
- continue
+ return
cp = t.tc.config_paths
for p in cp:
if selftestdir in cp[p] and newselftestdir not in cp[p]:
@@ -66,16 +104,24 @@ class OESelftestTestContext(OETestContext):
if builddir in cp[p] and newbuilddir not in cp[p]:
cp[p] = cp[p].replace(builddir, newbuilddir)
+ def patch_suite(s):
+ for x in s:
+ if isinstance(x, unittest.TestSuite):
+ patch_suite(x)
+ else:
+ patch_test(x)
+
+ patch_suite(suite)
+
return (builddir, newbuilddir)
def prepareSuite(self, suites, processes):
if processes:
from oeqa.core.utils.concurrencytest import ConcurrentTestSuite
- return ConcurrentTestSuite(suites, processes, self.setup_builddir)
+ return ConcurrentTestSuite(suites, processes, self.setup_builddir, removebuilddir)
else:
- self.setup_builddir("-st", None, suites)
- return suites
+ return NonConcurrentTestSuite(suites, processes, self.setup_builddir, removebuilddir)
def runTests(self, processes=None, machine=None, skips=[]):
if machine:
@@ -133,6 +179,8 @@ class OESelftestTestContextExecutor(OETestContextExecutor):
action='append', default=None,
help='Exclude all (unhidden) tests that match any of the specified tag(s). (exclude applies before select)')
+ parser.add_argument('-B', '--newbuilddir', help='New build directory to use for tests.')
+ parser.add_argument('-v', '--verbose', action='store_true')
parser.set_defaults(func=self.run)
def _get_available_machines(self):
@@ -187,6 +235,7 @@ class OESelftestTestContextExecutor(OETestContextExecutor):
self.tc_kwargs['init']['config_paths']['builddir'] = builddir
self.tc_kwargs['init']['config_paths']['localconf'] = os.path.join(builddir, "conf/local.conf")
self.tc_kwargs['init']['config_paths']['bblayers'] = os.path.join(builddir, "conf/bblayers.conf")
+ self.tc_kwargs['init']['newbuilddir'] = args.newbuilddir
def tag_filter(tags):
if args.exclude_tags:
diff --git a/meta/lib/oeqa/targetcontrol.py b/meta/lib/oeqa/targetcontrol.py
index 0b2915d5cc..19f5a4ea7e 100644
--- a/meta/lib/oeqa/targetcontrol.py
+++ b/meta/lib/oeqa/targetcontrol.py
@@ -117,9 +117,9 @@ class QemuTarget(BaseTarget):
import oe.path
bb.utils.mkdirhier(self.testdir)
self.qemurunnerlog = os.path.join(self.testdir, 'qemurunner_log.%s' % self.datetime)
- loggerhandler = logging.FileHandler(self.qemurunnerlog)
- loggerhandler.setFormatter(logging.Formatter("%(levelname)s: %(message)s"))
- self.logger.addHandler(loggerhandler)
+ self.loggerhandler = logging.FileHandler(self.qemurunnerlog)
+ self.loggerhandler.setFormatter(logging.Formatter("%(levelname)s: %(message)s"))
+ self.logger.addHandler(self.loggerhandler)
oe.path.symlink(os.path.basename(self.qemurunnerlog), os.path.join(self.testdir, 'qemurunner_log'), force=True)
if d.getVar("DISTRO") == "poky-tiny":
@@ -182,7 +182,12 @@ class QemuTarget(BaseTarget):
return self.runner.is_alive()
def stop(self):
- self.runner.stop()
+ try:
+ self.runner.stop()
+ except:
+ pass
+ self.logger.removeHandler(self.loggerhandler)
+ self.loggerhandler.close()
self.connection = None
self.ip = None
self.server_ip = None
diff --git a/meta/lib/oeqa/utils/commands.py b/meta/lib/oeqa/utils/commands.py
index dc1e286dac..8059cbce3e 100644
--- a/meta/lib/oeqa/utils/commands.py
+++ b/meta/lib/oeqa/utils/commands.py
@@ -95,7 +95,9 @@ class Command(object):
# reason, the main process will still exit, which will then
# kill the write thread.
if self.data:
- threading.Thread(target=writeThread, daemon=True).start()
+ thread = threading.Thread(target=writeThread, daemon=True)
+ thread.start()
+ self.threads.append(thread)
if self.process.stderr:
thread = threading.Thread(target=readStderrThread)
thread.start()
@@ -165,7 +167,7 @@ class Result(object):
pass
-def runCmd(command, ignore_status=False, timeout=None, assert_error=True,
+def runCmd(command, ignore_status=False, timeout=None, assert_error=True, sync=True,
native_sysroot=None, limit_exc_output=0, output_log=None, **options):
result = Result()
@@ -182,6 +184,12 @@ def runCmd(command, ignore_status=False, timeout=None, assert_error=True,
cmd = Command(command, timeout=timeout, output_log=output_log, **options)
cmd.run()
+ # tests can be heavy on IO and if bitbake can't write out its caches, we see timeouts.
+ # call sync around the tests to ensure the IO queue doesn't get too large, taking any IO
+ # hit here rather than in bitbake shutdown.
+ if sync:
+ os.system("sync")
+
result.command = command
result.status = cmd.status
result.output = cmd.output
@@ -315,15 +323,15 @@ def runqemu(pn, ssh=True, runqemuparams='', image_fstype=None, launch_cmd=None,
try:
tinfoil.logger.setLevel(logging.WARNING)
import oeqa.targetcontrol
- tinfoil.config_data.setVar("TEST_LOG_DIR", "${WORKDIR}/testimage")
- tinfoil.config_data.setVar("TEST_QEMUBOOT_TIMEOUT", "1000")
+ recipedata = tinfoil.parse_recipe(pn)
+ recipedata.setVar("TEST_LOG_DIR", "${WORKDIR}/testimage")
+ recipedata.setVar("TEST_QEMUBOOT_TIMEOUT", "1000")
# Tell QemuTarget() whether need find rootfs/kernel or not
if launch_cmd:
- tinfoil.config_data.setVar("FIND_ROOTFS", '0')
+ recipedata.setVar("FIND_ROOTFS", '0')
else:
- tinfoil.config_data.setVar("FIND_ROOTFS", '1')
+ recipedata.setVar("FIND_ROOTFS", '1')
- recipedata = tinfoil.parse_recipe(pn)
for key, value in overrides.items():
recipedata.setVar(key, value)
@@ -351,10 +359,7 @@ def runqemu(pn, ssh=True, runqemuparams='', image_fstype=None, launch_cmd=None,
finally:
targetlogger.removeHandler(handler)
- try:
- qemu.stop()
- except:
- pass
+ qemu.stop()
def updateEnv(env_file):
"""
diff --git a/meta/lib/oeqa/utils/package_manager.py b/meta/lib/oeqa/utils/package_manager.py
index 2d358f7172..3623299295 100644
--- a/meta/lib/oeqa/utils/package_manager.py
+++ b/meta/lib/oeqa/utils/package_manager.py
@@ -12,7 +12,9 @@ def get_package_manager(d, root_path):
"""
Returns an OE package manager that can install packages in root_path.
"""
- from oe.package_manager import RpmPM, OpkgPM, DpkgPM
+ from oe.package_manager.rpm import RpmPM
+ from oe.package_manager.ipk import OpkgPM
+ from oe.package_manager.deb import DpkgPM
pkg_class = d.getVar("IMAGE_PKGTYPE")
if pkg_class == "rpm":
diff --git a/meta/lib/oeqa/utils/qemurunner.py b/meta/lib/oeqa/utils/qemurunner.py
index ed74ea8fad..77ec939ad7 100644
--- a/meta/lib/oeqa/utils/qemurunner.py
+++ b/meta/lib/oeqa/utils/qemurunner.py
@@ -32,10 +32,11 @@ re_control_char = re.compile('[%s]' % re.escape("".join(control_chars)))
class QemuRunner:
def __init__(self, machine, rootfs, display, tmpdir, deploy_dir_image, logfile, boottime, dump_dir, dump_host_cmds,
- use_kvm, logger, use_slirp=False, serial_ports=2, boot_patterns = defaultdict(str)):
+ use_kvm, logger, use_slirp=False, serial_ports=2, boot_patterns = defaultdict(str), use_ovmf=False, workdir=None):
# Popen object for runqemu
self.runqemu = None
+ self.runqemu_exited = False
# pid of the qemu process that runqemu will start
self.qemupid = None
# target ip - from the command line or runqemu output
@@ -55,13 +56,16 @@ class QemuRunner:
self.logged = False
self.thread = None
self.use_kvm = use_kvm
+ self.use_ovmf = use_ovmf
self.use_slirp = use_slirp
self.serial_ports = serial_ports
self.msg = ''
self.boot_patterns = boot_patterns
self.runqemutime = 120
- self.qemu_pidfile = 'pidfile_'+str(os.getpid())
+ if not workdir:
+ workdir = os.getcwd()
+ self.qemu_pidfile = workdir + '/pidfile_' + str(os.getpid())
self.host_dumper = HostDumper(dump_host_cmds, dump_dir)
self.monitorpipe = None
@@ -124,7 +128,6 @@ class QemuRunner:
self.logger.error('Output from runqemu:\n%s' % self.getOutput(self.runqemu.stdout))
self.stop()
self._dump_host()
- raise SystemExit
def start(self, qemuparams = None, get_ip = True, extra_bootparams = None, runqemuparams='', launch_cmd=None, discard_writes=True):
env = os.environ.copy()
@@ -158,6 +161,8 @@ class QemuRunner:
launch_cmd += ' nographic'
if self.use_slirp:
launch_cmd += ' slirp'
+ if self.use_ovmf:
+ launch_cmd += ' ovmf'
launch_cmd += ' %s %s %s' % (runqemuparams, self.machine, self.rootfs)
return self.launch(launch_cmd, qemuparams=qemuparams, get_ip=get_ip, extra_bootparams=extra_bootparams, env=env)
@@ -232,6 +237,8 @@ class QemuRunner:
endtime = time.time() + self.runqemutime
while not self.is_alive() and time.time() < endtime:
if self.runqemu.poll():
+ if self.runqemu_exited:
+ return False
if self.runqemu.returncode:
# No point waiting any longer
self.logger.warning('runqemu exited with code %d' % self.runqemu.returncode)
@@ -241,11 +248,23 @@ class QemuRunner:
return False
time.sleep(0.5)
+ if self.runqemu_exited:
+ return False
+
if not self.is_alive():
self.logger.error("Qemu pid didn't appear in %s seconds (%s)" %
(self.runqemutime, time.strftime("%D %H:%M:%S")))
+
+ qemu_pid = None
+ if os.path.isfile(self.qemu_pidfile):
+ with open(self.qemu_pidfile, 'r') as f:
+ qemu_pid = f.read().strip()
+
+ self.logger.error("Status information, poll status: %s, pidfile exists: %s, pidfile contents %s, proc pid exists %s"
+ % (self.runqemu.poll(), os.path.isfile(self.qemu_pidfile), str(qemu_pid), os.path.exists("/proc/" + str(qemu_pid))))
+
# Dump all processes to help us to figure out what is going on...
- ps = subprocess.Popen(['ps', 'axww', '-o', 'pid,ppid,command '], stdout=subprocess.PIPE).communicate()[0]
+ ps = subprocess.Popen(['ps', 'axww', '-o', 'pid,ppid,pri,ni,command '], stdout=subprocess.PIPE).communicate()[0]
processes = ps.decode("utf-8")
self.logger.debug("Running processes:\n%s" % processes)
self._dump_host()
@@ -282,7 +301,7 @@ class QemuRunner:
self.logger.debug("qemu cmdline used:\n{}".format(cmdline))
except (IndexError, ValueError):
# Try to get network configuration from runqemu output
- match = re.match(r'.*Network configuration: ([0-9.]+)::([0-9.]+):([0-9.]+)$.*',
+ match = re.match(r'.*Network configuration: (?:ip=)*([0-9.]+)::([0-9.]+):([0-9.]+)$.*',
out, re.MULTILINE|re.DOTALL)
if match:
self.ip, self.server_ip, self.netmask = match.groups()
@@ -374,7 +393,7 @@ class QemuRunner:
# If we are not able to login the tests can continue
try:
- (status, output) = self.run_serial(self.boot_patterns['send_login_user'], raw=True)
+ (status, output) = self.run_serial(self.boot_patterns['send_login_user'], raw=True, timeout=120)
if re.search(self.boot_patterns['search_login_succeeded'], output):
self.logged = True
self.logger.debug("Logged as root in serial console")
@@ -416,7 +435,7 @@ class QemuRunner:
os.killpg(os.getpgid(self.runqemu.pid), signal.SIGKILL)
self.runqemu.stdin.close()
self.runqemu.stdout.close()
- self.runqemu = None
+ self.runqemu_exited = True
if hasattr(self, 'server_socket') and self.server_socket:
self.server_socket.close()
@@ -430,7 +449,8 @@ class QemuRunner:
try:
os.remove(self.qemu_pidfile)
except FileNotFoundError as e:
- self.logger.warning('qemu pidfile is no longer present')
+ # We raced, ignore
+ pass
if self.monitorpipe:
self.monitorpipe.close()
@@ -456,7 +476,7 @@ class QemuRunner:
return False
def is_alive(self):
- if not self.runqemu or self.runqemu.poll() is not None:
+ if not self.runqemu or self.runqemu.poll() is not None or self.runqemu_exited:
return False
if os.path.isfile(self.qemu_pidfile):
# when handling pidfile, qemu creates the file, stat it, lock it and then write to it
diff --git a/meta/lib/oeqa/utils/qemutinyrunner.py b/meta/lib/oeqa/utils/qemutinyrunner.py
index 364005bd2d..5c92941c0a 100644
--- a/meta/lib/oeqa/utils/qemutinyrunner.py
+++ b/meta/lib/oeqa/utils/qemutinyrunner.py
@@ -138,7 +138,7 @@ class QemuTinyRunner(QemuRunner):
#
# Walk the process tree from the process specified looking for a qemu-system. Return its [pid'cmd]
#
- ps = subprocess.Popen(['ps', 'axww', '-o', 'pid,ppid,command'], stdout=subprocess.PIPE).communicate()[0]
+ ps = subprocess.Popen(['ps', 'axww', '-o', 'pid,ppid,pri,ni,command'], stdout=subprocess.PIPE).communicate()[0]
processes = ps.decode("utf-8").split('\n')
nfields = len(processes[0].split()) - 1
pids = {}
diff --git a/meta/recipes-bsp/alsa-state/alsa-state.bb b/meta/recipes-bsp/alsa-state/alsa-state.bb
index 0670556999..cec2272c80 100644
--- a/meta/recipes-bsp/alsa-state/alsa-state.bb
+++ b/meta/recipes-bsp/alsa-state/alsa-state.bb
@@ -62,7 +62,7 @@ pkg_postinst_${PN}() {
then
if test -x ${sbindir}/alsactl
then
- ${sbindir}/alsactl -f ${localstatedir}/lib/alsa/asound.state restore
+ ${sbindir}/alsactl -g -f ${localstatedir}/lib/alsa/asound.state restore
fi
fi
}
diff --git a/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.11.bb b/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.12.bb
index 9954d7f57a..7888aba0fb 100644
--- a/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.11.bb
+++ b/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.12.bb
@@ -12,14 +12,14 @@ LIC_FILES_CHKSUM = "file://gnuefi/crt0-efi-arm.S;beginline=4;endline=16;md5=e582
file://lib/aarch64/initplat.c;beginline=2;endline=15;md5=8ed772501da77b2b3345aa6df8744c9e \
"
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.bz2 \
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/files/${BP}.tar.bz2 \
file://parallel-make-archives.patch \
file://lib-Makefile-fix-parallel-issue.patch \
file://gnu-efi-3.0.9-fix-clang-build.patch \
"
-SRC_URI[md5sum] = "21148bbcccec385a9bfdf5f678959577"
-SRC_URI[sha256sum] = "f28da792a2532e91e18e0101468811739a22cde9eee5eacfd0efb9bf3a61d6b9"
+SRC_URI[md5sum] = "926763ff37bc9db3a9035cec41eb2f45"
+SRC_URI[sha256sum] = "0196f2e1fd3c334b66e610a608a0e59233474c7a01bec7bc53989639aa327669"
COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*)-linux"
COMPATIBLE_HOST_armv4 = 'null'
diff --git a/meta/recipes-bsp/grub/files/CVE-2020-10713.patch b/meta/recipes-bsp/grub/files/CVE-2020-10713.patch
new file mode 100644
index 0000000000..c507ed3ea8
--- /dev/null
+++ b/meta/recipes-bsp/grub/files/CVE-2020-10713.patch
@@ -0,0 +1,73 @@
+From a4d3fbdff1e3ca8f87642af2ac8752c30c617a3e Mon Sep 17 00:00:00 2001
+From: Peter Jones <pjones@redhat.com>
+Date: Wed, 15 Apr 2020 15:45:02 -0400
+Subject: yylex: Make lexer fatal errors actually be fatal
+
+When presented with a command that can't be tokenized to anything
+smaller than YYLMAX characters, the parser calls YY_FATAL_ERROR(errmsg),
+expecting that will stop further processing, as such:
+
+ #define YY_DO_BEFORE_ACTION \
+ yyg->yytext_ptr = yy_bp; \
+ yyleng = (int) (yy_cp - yy_bp); \
+ yyg->yy_hold_char = *yy_cp; \
+ *yy_cp = '\0'; \
+ if ( yyleng >= YYLMAX ) \
+ YY_FATAL_ERROR( "token too large, exceeds YYLMAX" ); \
+ yy_flex_strncpy( yytext, yyg->yytext_ptr, yyleng + 1 , yyscanner); \
+ yyg->yy_c_buf_p = yy_cp;
+
+The code flex generates expects that YY_FATAL_ERROR() will either return
+for it or do some form of longjmp(), or handle the error in some way at
+least, and so the strncpy() call isn't in an "else" clause, and thus if
+YY_FATAL_ERROR() is *not* actually fatal, it does the call with the
+questionable limit, and predictable results ensue.
+
+Unfortunately, our implementation of YY_FATAL_ERROR() is:
+
+ #define YY_FATAL_ERROR(msg) \
+ do { \
+ grub_printf (_("fatal error: %s\n"), _(msg)); \
+ } while (0)
+
+The same pattern exists in yyless(), and similar problems exist in users
+of YY_INPUT(), several places in the main parsing loop,
+yy_get_next_buffer(), yy_load_buffer_state(), yyensure_buffer_stack,
+yy_scan_buffer(), etc.
+
+All of these callers expect YY_FATAL_ERROR() to actually be fatal, and
+the things they do if it returns after calling it are wildly unsafe.
+
+Fixes: CVE-2020-10713
+
+Signed-off-by: Peter Jones <pjones@redhat.com>
+Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
+
+Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/grub.git/commit/?id=a4d3fbdff1e3ca8f87642af2ac8752c30c617a3e]
+CVE: CVE-2020-10713
+Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
+---
+ grub-core/script/yylex.l | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/grub-core/script/yylex.l b/grub-core/script/yylex.l
+index 7b44c37b7..b7203c823 100644
+--- a/grub-core/script/yylex.l
++++ b/grub-core/script/yylex.l
+@@ -37,11 +37,11 @@
+
+ /*
+ * As we don't have access to yyscanner, we cannot do much except to
+- * print the fatal error.
++ * print the fatal error and exit.
+ */
+ #define YY_FATAL_ERROR(msg) \
+ do { \
+- grub_printf (_("fatal error: %s\n"), _(msg)); \
++ grub_fatal (_("fatal error: %s\n"), _(msg));\
+ } while (0)
+
+ #define COPY(str, hint) \
+--
+cgit v1.2.1
+
diff --git a/meta/recipes-bsp/grub/grub-efi_2.04.bb b/meta/recipes-bsp/grub/grub-efi_2.04.bb
index b9d6225d27..30d95f95e0 100644
--- a/meta/recipes-bsp/grub/grub-efi_2.04.bb
+++ b/meta/recipes-bsp/grub/grub-efi_2.04.bb
@@ -4,8 +4,8 @@ require conf/image-uefi.conf
GRUBPLATFORM = "efi"
-DEPENDS_append_class-target = " grub-efi-native"
-RDEPENDS_${PN}_class-target = "grub-common virtual/grub-bootconf"
+DEPENDS_append = " grub-native"
+RDEPENDS_${PN} = "grub-common virtual/grub-bootconf"
SRC_URI += " \
file://cfg \
@@ -51,22 +51,7 @@ do_mkimage() {
addtask mkimage before do_install after do_compile
-do_mkimage_class-native() {
- :
-}
-
-do_install_append_class-target() {
- install -d ${D}${EFI_FILES_PATH}
- install -m 644 ${B}/${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} ${D}${EFI_FILES_PATH}/${GRUB_IMAGE}
-}
-
-do_install_class-native() {
- install -d ${D}${bindir}
- install -m 755 grub-mkimage ${D}${bindir}
- install -m 755 grub-editenv ${D}${bindir}
-}
-
-do_install_class-target() {
+do_install() {
oe_runmake 'DESTDIR=${D}' -C grub-core install
# Remove build host references...
@@ -76,6 +61,9 @@ do_install_class-target() {
-e 's|${DEBUG_PREFIX_MAP}||g' \
-e 's:${RECIPE_SYSROOT_NATIVE}::g' \
{} +
+
+ install -d ${D}${EFI_FILES_PATH}
+ install -m 644 ${B}/${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} ${D}${EFI_FILES_PATH}/${GRUB_IMAGE}
}
do_install_append_aarch64() {
@@ -89,10 +77,6 @@ do_deploy() {
install -m 644 ${B}/${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} ${DEPLOYDIR}
}
-do_deploy_class-native() {
- :
-}
-
addtask deploy after do_install before do_build
FILES_${PN} = "${libdir}/grub/${GRUB_TARGET}-efi \
diff --git a/meta/recipes-bsp/grub/grub2.inc b/meta/recipes-bsp/grub/grub2.inc
index b3291cb4b8..345554e7af 100644
--- a/meta/recipes-bsp/grub/grub2.inc
+++ b/meta/recipes-bsp/grub/grub2.inc
@@ -11,11 +11,14 @@ SECTION = "bootloaders"
LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+CVE_PRODUCT = "grub2"
+
SRC_URI = "${GNU_MIRROR}/grub/grub-${PV}.tar.gz \
file://0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch \
file://autogen.sh-exclude-pc.patch \
file://grub-module-explicitly-keeps-symbole-.module_license.patch \
file://0001-grub.d-10_linux.in-add-oe-s-kernel-name.patch \
+ file://CVE-2020-10713.patch \
"
SRC_URI[md5sum] = "5ce674ca6b2612d8939b9e6abed32934"
SRC_URI[sha256sum] = "f10c85ae3e204dbaec39ae22fa3c5e99f0665417e91c2cb49b7e5031658ba6ea"
@@ -64,7 +67,3 @@ do_configure_prepend() {
FROM_BOOTSTRAP=1 ${S}/autogen.sh
cd ${B}
}
-
-RDEPENDS_${PN}_class-native = ""
-
-BBCLASSEXTEND = "native"
diff --git a/meta/recipes-bsp/grub/grub_2.04.bb b/meta/recipes-bsp/grub/grub_2.04.bb
index 9232ea8120..df607cae14 100644
--- a/meta/recipes-bsp/grub/grub_2.04.bb
+++ b/meta/recipes-bsp/grub/grub_2.04.bb
@@ -2,9 +2,12 @@ require grub2.inc
RDEPENDS_${PN}-common += "${PN}-editenv"
RDEPENDS_${PN} += "${PN}-common"
+RDEPENDS_${PN}_class-native = ""
RPROVIDES_${PN}-editenv += "${PN}-efi-editenv"
+PROVIDES_append_class-native = " grub-efi-native"
+
PACKAGES =+ "${PN}-editenv ${PN}-common"
FILES_${PN}-editenv = "${bindir}/grub-editenv"
FILES_${PN}-common = " \
@@ -31,3 +34,5 @@ do_install_append () {
INSANE_SKIP_${PN} = "arch"
INSANE_SKIP_${PN}-dbg = "arch"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/recipes-bsp/libacpi/files/0001-libacpi-Fix-build-witth-fno-commom.patch b/meta/recipes-bsp/libacpi/files/0001-libacpi-Fix-build-witth-fno-commom.patch
new file mode 100644
index 0000000000..32808fb92a
--- /dev/null
+++ b/meta/recipes-bsp/libacpi/files/0001-libacpi-Fix-build-witth-fno-commom.patch
@@ -0,0 +1,68 @@
+From 9839c169f513e65fc711646257b3e8588cce623c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 5 Aug 2020 12:06:01 -0700
+Subject: [PATCH] libacpi: Fix build witth -fno-commom
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libacpi.c | 16 ++++++++++++++++
+ libacpi.h | 6 +++---
+ 2 files changed, 19 insertions(+), 3 deletions(-)
+
+diff --git a/libacpi.c b/libacpi.c
+index 4e34725..9344ea4 100644
+--- a/libacpi.c
++++ b/libacpi.c
+@@ -14,6 +14,22 @@
+ #include "libacpi.h"
+ #include "list.h"
+
++/**
++ * Array for existing batteries, loop until
++ * globals->battery_count
++ */
++battery_t batteries[MAX_ITEMS];
++/**
++ * Array for existing thermal zones, loop until
++ * globals->thermal_count
++ */
++thermal_t thermals[MAX_ITEMS];
++/**
++ * Array for existing fans, loop until
++ * globals->fan_count
++ */
++fan_t fans[MAX_ITEMS];
++
+ static int read_acpi_battinfo(const int num);
+ static int read_acpi_battalarm(const int num);
+ static int read_acpi_battstate(const int num);
+diff --git a/libacpi.h b/libacpi.h
+index 9334b79..5242d3d 100644
+--- a/libacpi.h
++++ b/libacpi.h
+@@ -183,17 +183,17 @@ typedef struct {
+ * Array for existing batteries, loop until
+ * globals->battery_count
+ */
+-battery_t batteries[MAX_ITEMS];
++extern battery_t batteries[MAX_ITEMS];
+ /**
+ * Array for existing thermal zones, loop until
+ * globals->thermal_count
+ */
+-thermal_t thermals[MAX_ITEMS];
++extern thermal_t thermals[MAX_ITEMS];
+ /**
+ * Array for existing fans, loop until
+ * globals->fan_count
+ */
+-fan_t fans[MAX_ITEMS];
++extern fan_t fans[MAX_ITEMS];
+ /**
+ * Finds existing batteries and fills the
+ * corresponding batteries structures with the paths
+--
+2.28.0
+
diff --git a/meta/recipes-bsp/libacpi/libacpi_0.2.bb b/meta/recipes-bsp/libacpi/libacpi_0.2.bb
index 5e7f7fa8e0..fa9e3d4894 100644
--- a/meta/recipes-bsp/libacpi/libacpi_0.2.bb
+++ b/meta/recipes-bsp/libacpi/libacpi_0.2.bb
@@ -11,7 +11,9 @@ SRC_URI = "http://www.ngolde.de/download/libacpi-${PV}.tar.gz \
file://makefile-fix.patch \
file://libacpi_fix_for_x32.patch \
file://use_correct_strip_in_cross_environment.patch \
- file://ldflags.patch "
+ file://ldflags.patch \
+ file://0001-libacpi-Fix-build-witth-fno-commom.patch \
+ "
SRC_URI[md5sum] = "05b53dd7bead66dda35fec502b91066c"
SRC_URI[sha256sum] = "13086e31d428b9c125954d48ac497b754bbbce2ef34ea29ecd903e82e25bad29"
diff --git a/meta/recipes-bsp/opensbi/files/0001-Makefile-Don-t-specify-mabi-or-march.patch b/meta/recipes-bsp/opensbi/files/0001-Makefile-Don-t-specify-mabi-or-march.patch
index 74d93618b2..d2a8048e87 100644
--- a/meta/recipes-bsp/opensbi/files/0001-Makefile-Don-t-specify-mabi-or-march.patch
+++ b/meta/recipes-bsp/opensbi/files/0001-Makefile-Don-t-specify-mabi-or-march.patch
@@ -1,4 +1,4 @@
-From f5871e1f3650d6c8a032928cb5d8ca00c275c377 Mon Sep 17 00:00:00 2001
+From fe9860fd85e49a75bef545e5d9914070491e8002 Mon Sep 17 00:00:00 2001
From: Alistair Francis <alistair.francis@wdc.com>
Date: Fri, 15 Feb 2019 14:57:41 -0800
Subject: [PATCH] Makefile: Don't specify mabi or march
@@ -7,23 +7,26 @@ To avoid
can't link double-float modules with soft-float modules
errors when building 32-bit openSBI don't specify mabi or march.
-Upstream-Status: Inappropriate [Fixes a 32-bit Yocto flow bug]
+Upstream-Status: Inappropriate [Fixes a 32-bit OE flow bug]
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+
---
Makefile | 2 --
1 file changed, 2 deletions(-)
+diff --git a/Makefile b/Makefile
+index ccf8ea3..69e5b38 100644
--- a/Makefile
+++ b/Makefile
-@@ -162,7 +162,6 @@ GENFLAGS += $(firmware-genflags-y)
- CFLAGS = -g -Wall -Werror -nostdlib -fno-strict-aliasing -O2
+@@ -169,7 +169,6 @@ GENFLAGS += $(firmware-genflags-y)
+ CFLAGS = -g -Wall -Werror -ffreestanding -nostdlib -fno-strict-aliasing -O2
CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
CFLAGS += -mno-save-restore -mstrict-align
-CFLAGS += -mabi=$(PLATFORM_RISCV_ABI) -march=$(PLATFORM_RISCV_ISA)
CFLAGS += -mcmodel=$(PLATFORM_RISCV_CODE_MODEL)
CFLAGS += $(GENFLAGS)
CFLAGS += $(platform-cflags-y)
-@@ -176,7 +175,6 @@ CPPFLAGS += $(firmware-cppflags-y)
+@@ -183,7 +182,6 @@ CPPFLAGS += $(firmware-cppflags-y)
ASFLAGS = -g -Wall -nostdlib -D__ASSEMBLY__
ASFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
ASFLAGS += -mno-save-restore -mstrict-align
diff --git a/meta/recipes-bsp/opensbi/files/0001-build-Use-ffreestanding.patch b/meta/recipes-bsp/opensbi/files/0001-build-Use-ffreestanding.patch
deleted file mode 100644
index 4899fad6aa..0000000000
--- a/meta/recipes-bsp/opensbi/files/0001-build-Use-ffreestanding.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From efa39afecedf75a1f3154c39507bdde2810bc140 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 6 Jan 2020 18:21:02 -0800
-Subject: [PATCH] build: Use -ffreestanding
-
-this is a stand-alone/baremetal application, therefore demanding
--ffreestanding would help it compile with hosted toolchains e.g. ( linux
-toolchains ), it also ensures that it won't be using platform
-optimizations like inlining mem* str* functions which gcc might decide
-especially with wrapper string functions in opensbi code
-
-Upstream-Status: Accepted [https://github.com/riscv/opensbi/commit/049ad0b3877352527ab470eba33bc767e9b54961]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/Makefile
-+++ b/Makefile
-@@ -159,7 +159,7 @@ GENFLAGS += $(libsbiutils-genflags-y)
- GENFLAGS += $(platform-genflags-y)
- GENFLAGS += $(firmware-genflags-y)
-
--CFLAGS = -g -Wall -Werror -nostdlib -fno-strict-aliasing -O2
-+CFLAGS = -g -Wall -Werror -ffreestanding -nostdlib -fno-strict-aliasing -O2
- CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
- CFLAGS += -mno-save-restore -mstrict-align
- CFLAGS += -mcmodel=$(PLATFORM_RISCV_CODE_MODEL)
diff --git a/meta/recipes-bsp/opensbi/opensbi_0.5.bb b/meta/recipes-bsp/opensbi/opensbi_0.8.bb
index 71d64fa324..818efac733 100644
--- a/meta/recipes-bsp/opensbi/opensbi_0.5.bb
+++ b/meta/recipes-bsp/opensbi/opensbi_0.8.bb
@@ -7,17 +7,13 @@ require opensbi-payloads.inc
inherit autotools-brokensep deploy
-SRCREV = "be92da280d87c38a2e0adc5d3f43bab7b5468f09"
-SRC_URI = "git://github.com/riscv/opensbi.git \
+SRCREV = "a98258d0b537a295f517bbc8d813007336731fa9"
+SRC_URI = "git://github.com/riscv/opensbi.git;branch=master \
file://0001-Makefile-Don-t-specify-mabi-or-march.patch \
- file://0001-build-Use-ffreestanding.patch \
"
S = "${WORKDIR}/git"
-SRC_URI[md5sum] = "621f38d8205ef5fb185e4055025e73df"
-SRC_URI[sha256sum] = "07f18b73abf3b85aabe5bead19a923716c100d30eb58033459f39c3a224be300"
-
EXTRA_OEMAKE += "PLATFORM=${RISCV_SBI_PLAT} I=${D}"
# If RISCV_SBI_PAYLOAD is set then include it as a payload
EXTRA_OEMAKE_append = " ${@riscv_get_extra_oemake_image(d)}"
@@ -29,22 +25,21 @@ do_install_append() {
# In the future these might be required as a dependency for other packages.
# At the moment just delete them to avoid warnings
rm -r ${D}/include
- rm -r ${D}/platform/${RISCV_SBI_PLAT}/lib
- rm -r ${D}/platform/${RISCV_SBI_PLAT}/firmware/payloads
- rm -r ${D}/lib
+ rm -r ${D}/lib*
+ rm -r ${D}/share/opensbi/*/${RISCV_SBI_PLAT}/firmware/payloads
}
do_deploy () {
- install -m 755 ${D}/platform/${RISCV_SBI_PLAT}/firmware/fw_payload.* ${DEPLOYDIR}/
- install -m 755 ${D}/platform/${RISCV_SBI_PLAT}/firmware/fw_jump.* ${DEPLOYDIR}/
- install -m 755 ${D}/platform/${RISCV_SBI_PLAT}/firmware/fw_dynamic.* ${DEPLOYDIR}/
+ install -m 755 ${D}/share/opensbi/*/${RISCV_SBI_PLAT}/firmware/fw_payload.* ${DEPLOYDIR}/
+ install -m 755 ${D}/share/opensbi/*/${RISCV_SBI_PLAT}/firmware/fw_jump.* ${DEPLOYDIR}/
+ install -m 755 ${D}/share/opensbi/*/${RISCV_SBI_PLAT}/firmware/fw_dynamic.* ${DEPLOYDIR}/
}
addtask deploy before do_build after do_install
-FILES_${PN} += "/platform/${RISCV_SBI_PLAT}/firmware/fw_jump.*"
-FILES_${PN} += "/platform/${RISCV_SBI_PLAT}/firmware/fw_payload.*"
-FILES_${PN} += "/platform/${RISCV_SBI_PLAT}/firmware/fw_dynamic.*"
+FILES_${PN} += "/share/opensbi/*/${RISCV_SBI_PLAT}/firmware/fw_jump.*"
+FILES_${PN} += "/share/opensbi/*/${RISCV_SBI_PLAT}/firmware/fw_payload.*"
+FILES_${PN} += "/share/opensbi/*/${RISCV_SBI_PLAT}/firmware/fw_dynamic.*"
COMPATIBLE_HOST = "(riscv64|riscv32).*"
INHIBIT_PACKAGE_STRIP = "1"
diff --git a/meta/recipes-bsp/pciutils/pciutils_3.6.4.bb b/meta/recipes-bsp/pciutils/pciutils_3.7.0.bb
index 034bb63dc9..4f0edc01ed 100644
--- a/meta/recipes-bsp/pciutils/pciutils_3.6.4.bb
+++ b/meta/recipes-bsp/pciutils/pciutils_3.7.0.bb
@@ -11,8 +11,7 @@ DEPENDS = "zlib kmod"
SRC_URI = "${KERNELORG_MIRROR}/software/utils/pciutils/pciutils-${PV}.tar.xz \
file://configure.patch"
-SRC_URI[md5sum] = "4343b37e19f319ce8f3d59c30031790e"
-SRC_URI[sha256sum] = "f67ff732976e2db2a5ccdf3960020796526ba6b05f6b1cdd24b7b206af706055"
+SRC_URI[sha256sum] = "9d40b97be8b6a2cdf96aead5a61881d1f7e4e0da9544a9bac4fba1ae9dcd40eb"
inherit multilib_header pkgconfig
diff --git a/meta/recipes-bsp/u-boot/libubootenv_0.2.bb b/meta/recipes-bsp/u-boot/libubootenv_0.3.1.bb
index 7a7ec4c885..613e3161fb 100644
--- a/meta/recipes-bsp/u-boot/libubootenv_0.2.bb
+++ b/meta/recipes-bsp/u-boot/libubootenv_0.3.1.bb
@@ -1,5 +1,4 @@
SUMMARY = "U-Boot libraries and tools to access environment"
-DEPENDS += "mtd-utils"
DESCRIPTION = "This package contains tools and libraries to read \
and modify U-Boot environment. \
@@ -11,17 +10,21 @@ LICENSE = "LGPL-2.1"
LIC_FILES_CHKSUM = "file://Licenses/lgpl-2.1.txt;md5=4fbd65380cdd255951079008b364516c"
SECTION = "libs"
-PV = "0.2+git${SRCPV}"
SRC_URI = "git://github.com/sbabic/libubootenv;protocol=https"
-SRCREV = "ba952d05ec9ab16029816a06d956bac7fb4e9832"
+SRCREV = "824551ac77bab1d0f7ae34d7a7c77b155240e754"
S = "${WORKDIR}/git"
-inherit cmake lib_package
+inherit uboot-config cmake lib_package
EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release"
+DEPENDS = "zlib"
PROVIDES += "u-boot-fw-utils"
RPROVIDES_${PN}-bin += "u-boot-fw-utils"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+RRECOMMENDS_${PN}-bin_append_class-target = " u-boot-default-env"
+
BBCLASSEXTEND = "native"
diff --git a/meta/recipes-bsp/u-boot/u-boot-common.inc b/meta/recipes-bsp/u-boot/u-boot-common.inc
index edd0004792..9199bbfe0b 100644
--- a/meta/recipes-bsp/u-boot/u-boot-common.inc
+++ b/meta/recipes-bsp/u-boot/u-boot-common.inc
@@ -12,7 +12,7 @@ PE = "1"
# We use the revision in order to avoid having to fetch it from the
# repo during parse
-SRCREV = "303f8fed261020c1cb7da32dad63b610bf6873dd"
+SRCREV = "2f5fbb5b39f7b67044dda5c35e4a4b31685a3109"
SRC_URI = "git://git.denx.de/u-boot.git \
"
diff --git a/meta/recipes-bsp/u-boot/u-boot-tools_2020.01.bb b/meta/recipes-bsp/u-boot/u-boot-tools.inc
index 414ee333ff..8ae290acc6 100644
--- a/meta/recipes-bsp/u-boot/u-boot-tools_2020.01.bb
+++ b/meta/recipes-bsp/u-boot/u-boot-tools.inc
@@ -1,5 +1,3 @@
-require u-boot-common.inc
-
SUMMARY = "U-Boot bootloader tools"
DEPENDS += "openssl"
@@ -65,3 +63,4 @@ RDEPENDS_${PN} += "${PN}-mkimage ${PN}-mkenvimage"
RDEPENDS_${PN}_class-native = ""
BBCLASSEXTEND = "native nativesdk"
+
diff --git a/meta/recipes-bsp/u-boot/u-boot-tools_2020.07.bb b/meta/recipes-bsp/u-boot/u-boot-tools_2020.07.bb
new file mode 100644
index 0000000000..7eaf721ca8
--- /dev/null
+++ b/meta/recipes-bsp/u-boot/u-boot-tools_2020.07.bb
@@ -0,0 +1,2 @@
+require u-boot-common.inc
+require u-boot-tools.inc
diff --git a/meta/recipes-bsp/u-boot/u-boot.inc b/meta/recipes-bsp/u-boot/u-boot.inc
index 648298da0b..251178db33 100644
--- a/meta/recipes-bsp/u-boot/u-boot.inc
+++ b/meta/recipes-bsp/u-boot/u-boot.inc
@@ -60,24 +60,36 @@ UBOOT_ENV_BINARY ?= "${UBOOT_ENV}.${UBOOT_ENV_SUFFIX}"
UBOOT_ENV_IMAGE ?= "${UBOOT_ENV}-${MACHINE}-${PV}-${PR}.${UBOOT_ENV_SUFFIX}"
UBOOT_ENV_SYMLINK ?= "${UBOOT_ENV}-${MACHINE}.${UBOOT_ENV_SUFFIX}"
+# Default name of u-boot initial env, but enable individual recipes to change
+# this value.
+UBOOT_INITIAL_ENV ?= "${PN}-initial-env"
+
# U-Boot EXTLINUX variables. U-Boot searches for /boot/extlinux/extlinux.conf
# to find EXTLINUX conf file.
UBOOT_EXTLINUX_INSTALL_DIR ?= "/boot/extlinux"
UBOOT_EXTLINUX_CONF_NAME ?= "extlinux.conf"
UBOOT_EXTLINUX_SYMLINK ?= "${UBOOT_EXTLINUX_CONF_NAME}-${MACHINE}-${PR}"
-# returns all the elements from the src uri that are .cfg files
-def find_cfgs(d):
- sources=src_patches(d, True)
- sources_list=[]
- for s in sources:
- if s.endswith('.cfg'):
- sources_list.append(s)
-
- return sources_list
-
do_configure () {
- if [ -z "${UBOOT_CONFIG}" ]; then
+ if [ -n "${UBOOT_CONFIG}" ]; then
+ unset i j
+ for config in ${UBOOT_MACHINE}; do
+ i=$(expr $i + 1);
+ for type in ${UBOOT_CONFIG}; do
+ j=$(expr $j + 1);
+ if [ $j -eq $i ]; then
+ oe_runmake -C ${S} O=${B}/${config} ${config}
+ if [ -n "${@' '.join(find_cfgs(d))}" ]; then
+ merge_config.sh -m -O ${B}/${config} ${B}/${config}/.config ${@" ".join(find_cfgs(d))}
+ oe_runmake -C ${S} O=${B}/${config} oldconfig
+ fi
+ fi
+ done
+ unset j
+ done
+ unset i
+ DEVTOOL_DISABLE_MENUCONFIG=true
+ else
if [ -n "${UBOOT_MACHINE}" ]; then
oe_runmake -C ${S} O=${B} ${UBOOT_MACHINE}
else
@@ -85,27 +97,25 @@ do_configure () {
fi
merge_config.sh -m .config ${@" ".join(find_cfgs(d))}
cml1_do_configure
- else
- DEVTOOL_DISABLE_MENUCONFIG=true
fi
}
do_compile () {
- if [ "${@bb.utils.filter('DISTRO_FEATURES', 'ld-is-gold', d)}" ]; then
- sed -i 's/$(CROSS_COMPILE)ld$/$(CROSS_COMPILE)ld.bfd/g' ${S}/config.mk
- fi
+ if [ "${@bb.utils.filter('DISTRO_FEATURES', 'ld-is-gold', d)}" ]; then
+ sed -i 's/$(CROSS_COMPILE)ld$/$(CROSS_COMPILE)ld.bfd/g' ${S}/config.mk
+ fi
- unset LDFLAGS
- unset CFLAGS
- unset CPPFLAGS
+ unset LDFLAGS
+ unset CFLAGS
+ unset CPPFLAGS
- if [ ! -e ${B}/.scmversion -a ! -e ${S}/.scmversion ]
- then
- echo ${UBOOT_LOCALVERSION} > ${B}/.scmversion
- echo ${UBOOT_LOCALVERSION} > ${S}/.scmversion
- fi
+ if [ ! -e ${B}/.scmversion -a ! -e ${S}/.scmversion ]
+ then
+ echo ${UBOOT_LOCALVERSION} > ${B}/.scmversion
+ echo ${UBOOT_LOCALVERSION} > ${S}/.scmversion
+ fi
- if [ -n "${UBOOT_CONFIG}" ]
+ if [ -n "${UBOOT_CONFIG}" -o -n "${UBOOT_DELTA_CONFIG}" ]
then
unset i j k
for config in ${UBOOT_MACHINE}; do
@@ -114,7 +124,6 @@ do_compile () {
j=$(expr $j + 1);
if [ $j -eq $i ]
then
- oe_runmake -C ${S} O=${B}/${config} ${config}
oe_runmake -C ${S} O=${B}/${config} ${UBOOT_MAKE_TARGET}
for binary in ${UBOOT_BINARIES}; do
k=$(expr $k + 1);
@@ -122,16 +131,27 @@ do_compile () {
cp ${B}/${config}/${binary} ${B}/${config}/u-boot-${type}.${UBOOT_SUFFIX}
fi
done
+
+ # Generate the uboot-initial-env
+ if [ -n "${UBOOT_INITIAL_ENV}" ]; then
+ oe_runmake -C ${S} O=${B}/${config} u-boot-initial-env
+ cp ${B}/${config}/u-boot-initial-env ${B}/${config}/u-boot-initial-env-${type}
+ fi
+
unset k
fi
done
- unset j
+ unset j
done
- unset i
+ unset i
else
oe_runmake -C ${S} O=${B} ${UBOOT_MAKE_TARGET}
- fi
+ # Generate the uboot-initial-env
+ if [ -n "${UBOOT_INITIAL_ENV}" ]; then
+ oe_runmake -C ${S} O=${B} u-boot-initial-env
+ fi
+ fi
}
do_install () {
@@ -143,19 +163,32 @@ do_install () {
j=$(expr $j + 1);
if [ $j -eq $i ]
then
- install -d ${D}/boot
- install -m 644 ${B}/${config}/u-boot-${type}.${UBOOT_SUFFIX} ${D}/boot/u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX}
+ install -D -m 644 ${B}/${config}/u-boot-${type}.${UBOOT_SUFFIX} ${D}/boot/u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY}-${type}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY}
+
+ # Install the uboot-initial-env
+ if [ -n "${UBOOT_INITIAL_ENV}" ]; then
+ install -D -m 644 ${B}/${config}/u-boot-initial-env-${type} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR}
+ ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}
+ ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${type}
+ ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}
+ fi
fi
done
- unset j
+ unset j
done
- unset i
+ unset i
else
- install -d ${D}/boot
- install -m 644 ${B}/${UBOOT_BINARY} ${D}/boot/${UBOOT_IMAGE}
+ install -D -m 644 ${B}/${UBOOT_BINARY} ${D}/boot/${UBOOT_IMAGE}
ln -sf ${UBOOT_IMAGE} ${D}/boot/${UBOOT_BINARY}
+
+ # Install the uboot-initial-env
+ if [ -n "${UBOOT_INITIAL_ENV}" ]; then
+ install -D -m 644 ${B}/u-boot-initial-env ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR}
+ ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}
+ ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}
+ fi
fi
if [ -n "${UBOOT_ELF}" ]
@@ -202,9 +235,9 @@ do_install () {
ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${D}/boot/${SPL_BINARYNAME}
fi
done
- unset j
+ unset j
done
- unset i
+ unset i
else
install -m 644 ${B}/${SPL_BINARY} ${D}/boot/${SPL_IMAGE}
ln -sf ${SPL_IMAGE} ${D}/boot/${SPL_BINARYNAME}
@@ -221,10 +254,19 @@ do_install () {
then
install -Dm 0644 ${UBOOT_EXTLINUX_CONFIG} ${D}/${UBOOT_EXTLINUX_INSTALL_DIR}/${UBOOT_EXTLINUX_CONF_NAME}
fi
-
}
-FILES_${PN} = "/boot ${sysconfdir} ${datadir}"
+PACKAGE_BEFORE_PN += "${PN}-env"
+
+RPROVIDES_${PN}-env += "u-boot-default-env"
+ALLOW_EMPTY_${PN}-env = "1"
+FILES_${PN}-env = " \
+ ${@ '${sysconfdir}/${UBOOT_INITIAL_ENV}*' if d.getVar('UBOOT_INITIAL_ENV') else ''} \
+ ${sysconfdir}/fw_env.config \
+"
+
+FILES_${PN} = "/boot ${datadir}"
+RDEPENDS_${PN} += "${PN}-env"
do_deploy () {
if [ -n "${UBOOT_CONFIG}" ]
@@ -235,25 +277,47 @@ do_deploy () {
j=$(expr $j + 1);
if [ $j -eq $i ]
then
- install -d ${DEPLOYDIR}
- install -m 644 ${B}/${config}/u-boot-${type}.${UBOOT_SUFFIX} ${DEPLOYDIR}/u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX}
+ install -D -m 644 ${B}/${config}/u-boot-${type}.${UBOOT_SUFFIX} ${DEPLOYDIR}/u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX}
cd ${DEPLOYDIR}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK}-${type}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_BINARY}-${type}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_BINARY}
+
+ # Deploy the uboot-initial-env
+ if [ -n "${UBOOT_INITIAL_ENV}" ]; then
+ install -D -m 644 ${B}/${config}/u-boot-initial-env-${type} ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR}
+ cd ${DEPLOYDIR}
+ ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}
+ ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} ${UBOOT_INITIAL_ENV}-${type}
+ fi
fi
done
- unset j
+ unset j
done
- unset i
+ unset i
else
- install -d ${DEPLOYDIR}
- install -m 644 ${B}/${UBOOT_BINARY} ${DEPLOYDIR}/${UBOOT_IMAGE}
+ install -D -m 644 ${B}/${UBOOT_BINARY} ${DEPLOYDIR}/${UBOOT_IMAGE}
+
cd ${DEPLOYDIR}
rm -f ${UBOOT_BINARY} ${UBOOT_SYMLINK}
ln -sf ${UBOOT_IMAGE} ${UBOOT_SYMLINK}
ln -sf ${UBOOT_IMAGE} ${UBOOT_BINARY}
+
+ # Deploy the uboot-initial-env
+ if [ -n "${UBOOT_INITIAL_ENV}" ]; then
+ install -D -m 644 ${B}/u-boot-initial-env ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR}
+ cd ${DEPLOYDIR}
+ ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} ${UBOOT_INITIAL_ENV}-${MACHINE}
+ ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} ${UBOOT_INITIAL_ENV}
+ fi
+ fi
+
+ if [ -e ${WORKDIR}/fw_env.config ] ; then
+ install -D -m 644 ${WORKDIR}/fw_env.config ${DEPLOYDIR}/fw_env.config-${MACHINE}-${PV}-${PR}
+ cd ${DEPLOYDIR}
+ ln -sf fw_env.config-${MACHINE}-${PV}-${PR} fw_env.config-${MACHINE}
+ ln -sf fw_env.config-${MACHINE}-${PV}-${PR} fw_env.config
fi
if [ -n "${UBOOT_ELF}" ]
@@ -302,9 +366,9 @@ do_deploy () {
ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${DEPLOYDIR}/${SPL_SYMLINK}
fi
done
- unset j
+ unset j
done
- unset i
+ unset i
else
install -m 644 ${B}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_IMAGE}
rm -f ${DEPLOYDIR}/${SPL_BINARYNAME} ${DEPLOYDIR}/${SPL_SYMLINK}
diff --git a/meta/recipes-bsp/u-boot/u-boot_2020.01.bb b/meta/recipes-bsp/u-boot/u-boot_2020.07.bb
index 02d67c0db2..02d67c0db2 100644
--- a/meta/recipes-bsp/u-boot/u-boot_2020.01.bb
+++ b/meta/recipes-bsp/u-boot/u-boot_2020.07.bb
diff --git a/meta/recipes-bsp/usbutils/usbutils_012.bb b/meta/recipes-bsp/usbutils/usbutils_012.bb
index b670fa4ab6..28031e72a7 100644
--- a/meta/recipes-bsp/usbutils/usbutils_012.bb
+++ b/meta/recipes-bsp/usbutils/usbutils_012.bb
@@ -15,7 +15,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/usb/usbutils/usbutils-${PV}.tar.gz \
SRC_URI[md5sum] = "7484445cbcf04b3eacac892fe58f8d9f"
SRC_URI[sha256sum] = "ae2e10aad530d95839b6f4d46cd41715eae6f0f1789310d793e9be21b3e7ae20"
-inherit autotools pkgconfig features_check update-alternatives
+inherit autotools pkgconfig update-alternatives
ALTERNATIVE_${PN} = "lsusb"
ALTERNATIVE_PRIORITY = "100"
diff --git a/meta/recipes-connectivity/avahi/avahi-ui_0.7.bb b/meta/recipes-connectivity/avahi/avahi-ui_0.7.bb
deleted file mode 100644
index 1510a0ef4f..0000000000
--- a/meta/recipes-connectivity/avahi/avahi-ui_0.7.bb
+++ /dev/null
@@ -1,54 +0,0 @@
-require avahi.inc
-
-inherit features_check
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-DEPENDS += "avahi"
-
-AVAHI_GTK = "gtk3"
-
-S = "${WORKDIR}/avahi-${PV}"
-
-PACKAGES += "${PN}-utils avahi-discover"
-
-FILES_${PN} = "${libdir}/libavahi-ui*.so.*"
-FILES_${PN}-utils = "${bindir}/b* ${datadir}/applications/b*"
-FILES_avahi-discover = "${datadir}/applications/avahi-discover.desktop \
- ${datadir}/avahi/interfaces/avahi-discover.ui \
- ${bindir}/avahi-discover-standalone \
- "
-
-do_install_append () {
- rm ${D}${sysconfdir} -rf
- if ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','true','false',d)}; then
- if [ "${nonarch_base_libdir}" != "${base_libdir}" ];then
- rm ${D}${nonarch_base_libdir} -rf
- fi
- else
- rm ${D}${base_libdir} -rf
- fi
- rm ${D}${systemd_unitdir} -rf
- # The ${systemd_unitdir} is /lib/systemd, so we need rmdir /lib,
- # but not ${base_libdir} here. And the /lib may not exist
- # whithout systemd.
- [ ! -d ${D}/lib ] || rmdir ${D}/lib --ignore-fail-on-non-empty
- rm ${D}${bindir}/avahi-b*
- rm ${D}${bindir}/avahi-p*
- rm ${D}${bindir}/avahi-r*
- rm ${D}${bindir}/avahi-s*
- rm ${D}${includedir}/avahi-c* -rf
- rm ${D}${includedir}/avahi-g* -rf
- rm ${D}${libdir}/libavahi-c*
- rm ${D}${libdir}/libavahi-g*
- rm ${D}${libdir}/pkgconfig/avahi-c*
- rm ${D}${libdir}/pkgconfig/avahi-g*
- rm ${D}${sbindir} -rf
- rm ${D}${datadir}/avahi/a*
- rm ${D}${datadir}/locale/ -rf
- rm ${D}${datadir}/dbus* -rf
- rm ${D}${mandir}/man1/a*
- rm ${D}${mandir}/man5 -rf
- rm ${D}${mandir}/man8 -rf
- rm ${D}${libdir}/girepository-1.0/ -rf
- rm ${D}${datadir}/gir-1.0/ -rf
-}
diff --git a/meta/recipes-connectivity/avahi/avahi.inc b/meta/recipes-connectivity/avahi/avahi.inc
deleted file mode 100644
index 94fe6a16b6..0000000000
--- a/meta/recipes-connectivity/avahi/avahi.inc
+++ /dev/null
@@ -1,86 +0,0 @@
-SUMMARY = "Avahi IPv4LL network address configuration daemon"
-DESCRIPTION = 'Avahi is a fully LGPL framework for Multicast DNS Service Discovery. It \
-allows programs to publish and discover services and hosts running on a local network \
-with no specific configuration. This tool implements IPv4LL, "Dynamic Configuration of \
-IPv4 Link-Local Addresses" (IETF RFC3927), a protocol for automatic IP address \
-configuration from the link-local 169.254.0.0/16 range without the need for a central \
-server.'
-AUTHOR = "Lennart Poettering <lennart@poettering.net>"
-HOMEPAGE = "http://avahi.org"
-BUGTRACKER = "https://github.com/lathiat/avahi/issues"
-SECTION = "network"
-
-# major part is under LGPLv2.1+, but several .dtd, .xsl, initscripts and
-# python scripts are under GPLv2+
-LICENSE = "GPLv2+ & LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1 \
- file://avahi-common/address.h;endline=25;md5=b1d1d2cda1c07eb848ea7d6215712d9d \
- file://avahi-core/dns.h;endline=23;md5=6fe82590b81aa0ddea5095b548e2fdcb \
- file://avahi-daemon/main.c;endline=21;md5=9ee77368c5407af77caaef1b07285969 \
- file://avahi-client/client.h;endline=23;md5=f4ac741a25c4f434039ba3e18c8674cf"
-
-SRC_URI = "https://github.com/lathiat/avahi/releases/download/v${PV}/avahi-${PV}.tar.gz \
- file://fix-CVE-2017-6519.patch \
- "
-
-UPSTREAM_CHECK_URI = "https://github.com/lathiat/avahi/releases/"
-SRC_URI[md5sum] = "d76c59d0882ac6c256d70a2a585362a6"
-SRC_URI[sha256sum] = "57a99b5dfe7fdae794e3d1ee7a62973a368e91e414bd0dfa5d84434de5b14804"
-
-DEPENDS = "expat libcap libdaemon glib-2.0 intltool-native"
-
-# For gtk related PACKAGECONFIGs: gtk, gtk3
-AVAHI_GTK ?= ""
-
-PACKAGECONFIG ??= "dbus ${AVAHI_GTK}"
-PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus"
-PACKAGECONFIG[gtk] = "--enable-gtk,--disable-gtk,gtk+"
-PACKAGECONFIG[gtk3] = "--enable-gtk3,--disable-gtk3,gtk+3"
-PACKAGECONFIG[libdns_sd] = "--enable-compat-libdns_sd --enable-dbus,,dbus"
-
-inherit autotools pkgconfig gettext gobject-introspection
-
-EXTRA_OECONF = "--with-avahi-priv-access-group=adm \
- --disable-stack-protector \
- --disable-gdbm \
- --disable-mono \
- --disable-monodoc \
- --disable-qt3 \
- --disable-qt4 \
- --disable-python \
- --disable-doxygen-doc \
- --enable-manpages \
- ${EXTRA_OECONF_SYSVINIT} \
- ${EXTRA_OECONF_SYSTEMD} \
- "
-
-# The distro choice determines what init scripts are installed
-EXTRA_OECONF_SYSVINIT = "${@bb.utils.contains('DISTRO_FEATURES','sysvinit','--with-distro=debian','--with-distro=none',d)}"
-EXTRA_OECONF_SYSTEMD = "${@bb.utils.contains('DISTRO_FEATURES','systemd','--with-systemdsystemunitdir=${systemd_unitdir}/system/','--without-systemdsystemunitdir',d)}"
-
-do_configure_prepend() {
- sed 's:AM_CHECK_PYMOD:echo "no pymod" #AM_CHECK_PYMOD:g' -i ${S}/configure.ac
-
- # This m4 file will get in the way of our introspection.m4 with special cross-compilation fixes
- rm "${S}/common/introspection.m4" || true
-}
-
-do_compile_prepend() {
- export GIR_EXTRA_LIBS_PATH="${B}/avahi-gobject/.libs:${B}/avahi-common/.libs:${B}/avahi-client/.libs:${B}/avahi-glib/.libs"
-}
-
-RRECOMMENDS_${PN}_append_libc-glibc = " libnss-mdns"
-
-do_install() {
- autotools_do_install
- rm -rf ${D}/run
- rm -rf ${D}${datadir}/dbus-1/interfaces
- test -d ${D}${datadir}/dbus-1 && rmdir --ignore-fail-on-non-empty ${D}${datadir}/dbus-1
- rm -rf ${D}${libdir}/avahi
-}
-
-PACKAGES =+ "${@bb.utils.contains("PACKAGECONFIG", "libdns_sd", "libavahi-compat-libdnssd", "", d)}"
-
-FILES_libavahi-compat-libdnssd = "${libdir}/libdns_sd.so.*"
-
-RPROVIDES_libavahi-compat-libdnssd = "libdns-sd"
diff --git a/meta/recipes-connectivity/avahi/avahi_0.7.bb b/meta/recipes-connectivity/avahi/avahi_0.7.bb
deleted file mode 100644
index 2e04d304c7..0000000000
--- a/meta/recipes-connectivity/avahi/avahi_0.7.bb
+++ /dev/null
@@ -1,81 +0,0 @@
-require avahi.inc
-
-SRC_URI += "file://00avahi-autoipd \
- file://99avahi-autoipd \
- file://initscript.patch \
- file://0001-Fix-opening-etc-resolv.conf-error.patch \
- "
-
-inherit update-rc.d systemd useradd
-
-PACKAGES =+ "libavahi-gobject avahi-daemon libavahi-common libavahi-core libavahi-client avahi-dnsconfd libavahi-glib avahi-autoipd avahi-utils"
-
-# As avahi doesn't put any files into PN, clear the files list to avoid problems
-# if extra libraries appear.
-FILES_${PN} = ""
-FILES_avahi-autoipd = "${sbindir}/avahi-autoipd \
- ${sysconfdir}/avahi/avahi-autoipd.action \
- ${sysconfdir}/dhcp/*/avahi-autoipd \
- ${sysconfdir}/udhcpc.d/00avahi-autoipd \
- ${sysconfdir}/udhcpc.d/99avahi-autoipd"
-FILES_libavahi-common = "${libdir}/libavahi-common.so.*"
-FILES_libavahi-core = "${libdir}/libavahi-core.so.* ${libdir}/girepository-1.0/AvahiCore*.typelib"
-FILES_avahi-daemon = "${sbindir}/avahi-daemon \
- ${sysconfdir}/avahi/avahi-daemon.conf \
- ${sysconfdir}/avahi/hosts \
- ${sysconfdir}/avahi/services \
- ${sysconfdir}/dbus-1 \
- ${sysconfdir}/init.d/avahi-daemon \
- ${datadir}/avahi/introspection/*.introspect \
- ${datadir}/avahi/avahi-service.dtd \
- ${datadir}/avahi/service-types \
- ${datadir}/dbus-1/system-services"
-FILES_libavahi-client = "${libdir}/libavahi-client.so.*"
-FILES_avahi-dnsconfd = "${sbindir}/avahi-dnsconfd \
- ${sysconfdir}/avahi/avahi-dnsconfd.action \
- ${sysconfdir}/init.d/avahi-dnsconfd"
-FILES_libavahi-glib = "${libdir}/libavahi-glib.so.*"
-FILES_libavahi-gobject = "${libdir}/libavahi-gobject.so.* ${libdir}/girepository-1.0/Avahi*.typelib"
-FILES_avahi-utils = "${bindir}/avahi-*"
-
-RDEPENDS_${PN}-dev = "avahi-daemon (= ${EXTENDPKGV}) libavahi-core (= ${EXTENDPKGV})"
-RDEPENDS_${PN}-dev += "${@["", " libavahi-client (= ${EXTENDPKGV})"][bb.utils.contains('PACKAGECONFIG', 'dbus', 1, 0, d)]}"
-
-RRECOMMENDS_avahi-daemon_append_libc-glibc = " libnss-mdns"
-
-CONFFILES_avahi-daemon = "${sysconfdir}/avahi/avahi-daemon.conf"
-
-USERADD_PACKAGES = "avahi-daemon avahi-autoipd"
-USERADD_PARAM_avahi-daemon = "--system --home /run/avahi-daemon \
- --no-create-home --shell /bin/false \
- --user-group avahi"
-
-USERADD_PARAM_avahi-autoipd = "--system --home /run/avahi-autoipd \
- --no-create-home --shell /bin/false \
- --user-group \
- -c \"Avahi autoip daemon\" \
- avahi-autoipd"
-
-INITSCRIPT_PACKAGES = "avahi-daemon avahi-dnsconfd"
-INITSCRIPT_NAME_avahi-daemon = "avahi-daemon"
-INITSCRIPT_PARAMS_avahi-daemon = "defaults 21 19"
-INITSCRIPT_NAME_avahi-dnsconfd = "avahi-dnsconfd"
-INITSCRIPT_PARAMS_avahi-dnsconfd = "defaults 22 19"
-
-SYSTEMD_PACKAGES = "${PN}-daemon ${PN}-dnsconfd"
-SYSTEMD_SERVICE_${PN}-daemon = "avahi-daemon.service"
-SYSTEMD_SERVICE_${PN}-dnsconfd = "avahi-dnsconfd.service"
-
-do_install_append() {
- install -d ${D}${sysconfdir}/udhcpc.d
- install ${WORKDIR}/00avahi-autoipd ${D}${sysconfdir}/udhcpc.d
- install ${WORKDIR}/99avahi-autoipd ${D}${sysconfdir}/udhcpc.d
-}
-
-# At the time the postinst runs, dbus might not be setup so only restart if running
-# Don't exit early, because update-rc.d needs to run subsequently.
-pkg_postinst_avahi-daemon () {
-if [ -z "$D" ]; then
- killall -q -HUP dbus-daemon || true
-fi
-}
diff --git a/meta/recipes-connectivity/avahi/avahi_0.8.bb b/meta/recipes-connectivity/avahi/avahi_0.8.bb
new file mode 100644
index 0000000000..c8a3f876aa
--- /dev/null
+++ b/meta/recipes-connectivity/avahi/avahi_0.8.bb
@@ -0,0 +1,187 @@
+SUMMARY = "Avahi IPv4LL network address configuration daemon"
+DESCRIPTION = 'Avahi is a fully LGPL framework for Multicast DNS Service Discovery. It \
+allows programs to publish and discover services and hosts running on a local network \
+with no specific configuration. This tool implements IPv4LL, "Dynamic Configuration of \
+IPv4 Link-Local Addresses" (IETF RFC3927), a protocol for automatic IP address \
+configuration from the link-local 169.254.0.0/16 range without the need for a central \
+server.'
+AUTHOR = "Lennart Poettering <lennart@poettering.net>"
+HOMEPAGE = "http://avahi.org"
+BUGTRACKER = "https://github.com/lathiat/avahi/issues"
+SECTION = "network"
+
+# major part is under LGPLv2.1+, but several .dtd, .xsl, initscripts and
+# python scripts are under GPLv2+
+LICENSE = "GPLv2+ & LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+ file://avahi-common/address.h;endline=25;md5=b1d1d2cda1c07eb848ea7d6215712d9d \
+ file://avahi-core/dns.h;endline=23;md5=6fe82590b81aa0ddea5095b548e2fdcb \
+ file://avahi-daemon/main.c;endline=21;md5=9ee77368c5407af77caaef1b07285969 \
+ file://avahi-client/client.h;endline=23;md5=f4ac741a25c4f434039ba3e18c8674cf"
+
+SRC_URI = "https://github.com/lathiat/avahi/releases/download/v${PV}/avahi-${PV}.tar.gz \
+ file://00avahi-autoipd \
+ file://99avahi-autoipd \
+ file://initscript.patch \
+ file://0001-Fix-opening-etc-resolv.conf-error.patch \
+ "
+
+UPSTREAM_CHECK_URI = "https://github.com/lathiat/avahi/releases/"
+SRC_URI[md5sum] = "229c6aa30674fc43c202b22c5f8c2be7"
+SRC_URI[sha256sum] = "060309d7a333d38d951bc27598c677af1796934dbd98e1024e7ad8de798fedda"
+
+DEPENDS = "expat libcap libdaemon glib-2.0 intltool-native"
+
+# For gtk related PACKAGECONFIGs: gtk, gtk3
+AVAHI_GTK ?= "gtk3"
+
+PACKAGECONFIG ??= "dbus ${@bb.utils.contains_any('DISTRO_FEATURES','x11 wayland','${AVAHI_GTK}','',d)}"
+PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus"
+PACKAGECONFIG[gtk] = "--enable-gtk,--disable-gtk,gtk+"
+PACKAGECONFIG[gtk3] = "--enable-gtk3,--disable-gtk3,gtk+3"
+PACKAGECONFIG[libdns_sd] = "--enable-compat-libdns_sd --enable-dbus,,dbus"
+PACKAGECONFIG[libevent] = "--enable-libevent,--disable-libevent,libevent"
+PACKAGECONFIG[qt5] = "--enable-qt5,--disable-qt5,qtbase"
+
+inherit autotools pkgconfig gettext gobject-introspection
+
+EXTRA_OECONF = "--with-avahi-priv-access-group=adm \
+ --disable-stack-protector \
+ --disable-gdbm \
+ --disable-dbm \
+ --disable-mono \
+ --disable-monodoc \
+ --disable-qt3 \
+ --disable-qt4 \
+ --disable-python \
+ --disable-doxygen-doc \
+ --enable-manpages \
+ ${EXTRA_OECONF_SYSVINIT} \
+ ${EXTRA_OECONF_SYSTEMD} \
+ "
+
+# The distro choice determines what init scripts are installed
+EXTRA_OECONF_SYSVINIT = "${@bb.utils.contains('DISTRO_FEATURES','sysvinit','--with-distro=debian','--with-distro=none',d)}"
+EXTRA_OECONF_SYSTEMD = "${@bb.utils.contains('DISTRO_FEATURES','systemd','--with-systemdsystemunitdir=${systemd_unitdir}/system/','--without-systemdsystemunitdir',d)}"
+
+do_configure_prepend() {
+ # This m4 file will get in the way of our introspection.m4 with special cross-compilation fixes
+ rm "${S}/common/introspection.m4" || true
+}
+
+do_compile_prepend() {
+ export GIR_EXTRA_LIBS_PATH="${B}/avahi-gobject/.libs:${B}/avahi-common/.libs:${B}/avahi-client/.libs:${B}/avahi-glib/.libs"
+}
+
+RRECOMMENDS_${PN}_append_libc-glibc = " libnss-mdns"
+
+do_install() {
+ autotools_do_install
+ rm -rf ${D}/run
+ rm -rf ${D}${datadir}/dbus-1/interfaces
+ test -d ${D}${datadir}/dbus-1 && rmdir --ignore-fail-on-non-empty ${D}${datadir}/dbus-1
+ rm -rf ${D}${libdir}/avahi
+
+ # Move example service files out of /etc/avahi/services so we don't
+ # advertise ssh & sftp-ssh by default
+ install -d ${D}${docdir}/avahi
+ mv ${D}${sysconfdir}/avahi/services/* ${D}${docdir}/avahi
+}
+
+PACKAGES =+ "${@bb.utils.contains("PACKAGECONFIG", "libdns_sd", "libavahi-compat-libdnssd", "", d)}"
+
+FILES_libavahi-compat-libdnssd = "${libdir}/libdns_sd.so.*"
+
+RPROVIDES_libavahi-compat-libdnssd = "libdns-sd"
+
+inherit update-rc.d systemd useradd
+
+PACKAGES =+ "libavahi-gobject avahi-daemon libavahi-common libavahi-core libavahi-client avahi-dnsconfd libavahi-glib avahi-autoipd avahi-utils avahi-discover avahi-ui"
+
+FILES_avahi-ui = "${libdir}/libavahi-ui*.so.*"
+FILES_avahi-discover = "${datadir}/applications/avahi-discover.desktop \
+ ${datadir}/avahi/interfaces/avahi-discover.ui \
+ ${bindir}/avahi-discover-standalone \
+ "
+
+LICENSE_libavahi-gobject = "LGPLv2.1+"
+LICENSE_avahi-daemon = "LGPLv2.1+"
+LICENSE_libavahi-common = "LGPLv2.1+"
+LICENSE_libavahi-core = "LGPLv2.1+"
+LICENSE_libavahi-client = "LGPLv2.1+"
+LICENSE_avahi-dnsconfd = "LGPLv2.1+"
+LICENSE_libavahi-glib = "LGPLv2.1+"
+LICENSE_avahi-autoipd = "LGPLv2.1+"
+LICENSE_avahi-utils = "LGPLv2.1+"
+
+# As avahi doesn't put any files into PN, clear the files list to avoid problems
+# if extra libraries appear.
+FILES_${PN} = ""
+FILES_avahi-autoipd = "${sbindir}/avahi-autoipd \
+ ${sysconfdir}/avahi/avahi-autoipd.action \
+ ${sysconfdir}/dhcp/*/avahi-autoipd \
+ ${sysconfdir}/udhcpc.d/00avahi-autoipd \
+ ${sysconfdir}/udhcpc.d/99avahi-autoipd"
+FILES_libavahi-common = "${libdir}/libavahi-common.so.*"
+FILES_libavahi-core = "${libdir}/libavahi-core.so.* ${libdir}/girepository-1.0/AvahiCore*.typelib"
+FILES_avahi-daemon = "${sbindir}/avahi-daemon \
+ ${sysconfdir}/avahi/avahi-daemon.conf \
+ ${sysconfdir}/avahi/hosts \
+ ${sysconfdir}/avahi/services \
+ ${sysconfdir}/dbus-1 \
+ ${sysconfdir}/init.d/avahi-daemon \
+ ${datadir}/avahi/introspection/*.introspect \
+ ${datadir}/avahi/avahi-service.dtd \
+ ${datadir}/avahi/service-types \
+ ${datadir}/dbus-1/system-services"
+FILES_libavahi-client = "${libdir}/libavahi-client.so.*"
+FILES_avahi-dnsconfd = "${sbindir}/avahi-dnsconfd \
+ ${sysconfdir}/avahi/avahi-dnsconfd.action \
+ ${sysconfdir}/init.d/avahi-dnsconfd"
+FILES_libavahi-glib = "${libdir}/libavahi-glib.so.*"
+FILES_libavahi-gobject = "${libdir}/libavahi-gobject.so.* ${libdir}/girepository-1.0/Avahi*.typelib"
+FILES_avahi-utils = "${bindir}/avahi-* ${bindir}/b* ${datadir}/applications/b*"
+
+RDEPENDS_${PN}-dev = "avahi-daemon (= ${EXTENDPKGV}) libavahi-core (= ${EXTENDPKGV})"
+RDEPENDS_${PN}-dev += "${@["", " libavahi-client (= ${EXTENDPKGV})"][bb.utils.contains('PACKAGECONFIG', 'dbus', 1, 0, d)]}"
+RDEPENDS_${PN}-dnsconfd = "${PN}-daemon"
+
+RRECOMMENDS_avahi-daemon_append_libc-glibc = " libnss-mdns"
+
+CONFFILES_avahi-daemon = "${sysconfdir}/avahi/avahi-daemon.conf"
+
+USERADD_PACKAGES = "avahi-daemon avahi-autoipd"
+USERADD_PARAM_avahi-daemon = "--system --home /run/avahi-daemon \
+ --no-create-home --shell /bin/false \
+ --user-group avahi"
+
+USERADD_PARAM_avahi-autoipd = "--system --home /run/avahi-autoipd \
+ --no-create-home --shell /bin/false \
+ --user-group \
+ -c \"Avahi autoip daemon\" \
+ avahi-autoipd"
+
+INITSCRIPT_PACKAGES = "avahi-daemon avahi-dnsconfd"
+INITSCRIPT_NAME_avahi-daemon = "avahi-daemon"
+INITSCRIPT_PARAMS_avahi-daemon = "defaults 21 19"
+INITSCRIPT_NAME_avahi-dnsconfd = "avahi-dnsconfd"
+INITSCRIPT_PARAMS_avahi-dnsconfd = "defaults 22 19"
+
+SYSTEMD_PACKAGES = "${PN}-daemon ${PN}-dnsconfd"
+SYSTEMD_SERVICE_${PN}-daemon = "avahi-daemon.service"
+SYSTEMD_SERVICE_${PN}-dnsconfd = "avahi-dnsconfd.service"
+
+do_install_append() {
+ install -d ${D}${sysconfdir}/udhcpc.d
+ install ${WORKDIR}/00avahi-autoipd ${D}${sysconfdir}/udhcpc.d
+ install ${WORKDIR}/99avahi-autoipd ${D}${sysconfdir}/udhcpc.d
+}
+
+# At the time the postinst runs, dbus might not be setup so only restart if running
+# Don't exit early, because update-rc.d needs to run subsequently.
+pkg_postinst_avahi-daemon () {
+if [ -z "$D" ]; then
+ killall -q -HUP dbus-daemon || true
+fi
+}
+
diff --git a/meta/recipes-connectivity/avahi/files/fix-CVE-2017-6519.patch b/meta/recipes-connectivity/avahi/files/fix-CVE-2017-6519.patch
deleted file mode 100644
index 7461fe193d..0000000000
--- a/meta/recipes-connectivity/avahi/files/fix-CVE-2017-6519.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-Upstream-Status: Backport [https://github.com/lathiat/avahi/commit/e111def]
-
-CVE: CVE-2017-6519
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
-
-From e111def44a7df4624a4aa3f85fe98054bffb6b4f Mon Sep 17 00:00:00 2001
-From: Trent Lloyd <trent@lloyd.id.au>
-Date: Sat, 22 Dec 2018 09:06:07 +0800
-Subject: [PATCH] Drop legacy unicast queries from address not on local link
-
-When handling legacy unicast queries, ensure that the source IP is
-inside a subnet on the local link, otherwise drop the packet.
-
-Fixes #145
-Fixes #203
-CVE-2017-6519
-CVE-2018-1000845
----
- avahi-core/server.c | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/avahi-core/server.c b/avahi-core/server.c
-index a2cb19a8..a2580e38 100644
---- a/avahi-core/server.c
-+++ b/avahi-core/server.c
-@@ -930,6 +930,7 @@ static void dispatch_packet(AvahiServer *s, AvahiDnsPacket *p, const AvahiAddres
-
- if (avahi_dns_packet_is_query(p)) {
- int legacy_unicast = 0;
-+ char t[AVAHI_ADDRESS_STR_MAX];
-
- /* For queries EDNS0 might allow ARCOUNT != 0. We ignore the
- * AR section completely here, so far. Until the day we add
-@@ -947,6 +948,13 @@ static void dispatch_packet(AvahiServer *s, AvahiDnsPacket *p, const AvahiAddres
- legacy_unicast = 1;
- }
-
-+ if (!is_mdns_mcast_address(dst_address) &&
-+ !avahi_interface_address_on_link(i, src_address)) {
-+
-+ avahi_log_debug("Received non-local unicast query from host %s on interface '%s.%i'.", avahi_address_snprint(t, sizeof(t), src_address), i->hardware->name, i->protocol);
-+ return;
-+ }
-+
- if (legacy_unicast)
- reflect_legacy_unicast_query_packet(s, p, i, src_address, port);
-
diff --git a/meta/recipes-connectivity/bind/bind/0001-avoid-start-failure-with-bind-user.patch b/meta/recipes-connectivity/bind/bind-9.16.7/0001-avoid-start-failure-with-bind-user.patch
index 8db96ec049..8db96ec049 100644
--- a/meta/recipes-connectivity/bind/bind/0001-avoid-start-failure-with-bind-user.patch
+++ b/meta/recipes-connectivity/bind/bind-9.16.7/0001-avoid-start-failure-with-bind-user.patch
diff --git a/meta/recipes-connectivity/bind/bind-9.16.7/0001-named-lwresd-V-and-start-log-hide-build-options.patch b/meta/recipes-connectivity/bind/bind-9.16.7/0001-named-lwresd-V-and-start-log-hide-build-options.patch
new file mode 100644
index 0000000000..5bcc16c9b2
--- /dev/null
+++ b/meta/recipes-connectivity/bind/bind-9.16.7/0001-named-lwresd-V-and-start-log-hide-build-options.patch
@@ -0,0 +1,35 @@
+From a3af4a405baf5ff582e82aaba392dd9667d94bdc Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Mon, 27 Aug 2018 21:24:20 +0800
+Subject: [PATCH] `named/lwresd -V' and start log hide build options
+
+The build options expose build path directories, so hide them.
+[snip]
+$ named -V
+|built by make with *** (options are hidden)
+[snip]
+
+Upstream-Status: Inappropriate [oe-core specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+Refreshed for 9.16.0
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+
+---
+ bin/named/include/named/globals.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: bind-9.16.0/bin/named/include/named/globals.h
+===================================================================
+--- bind-9.16.0.orig/bin/named/include/named/globals.h
++++ bind-9.16.0/bin/named/include/named/globals.h
+@@ -69,7 +69,7 @@ EXTERN const char *named_g_version I
+ EXTERN const char *named_g_product INIT(PRODUCT);
+ EXTERN const char *named_g_description INIT(DESCRIPTION);
+ EXTERN const char *named_g_srcid INIT(SRCID);
+-EXTERN const char *named_g_configargs INIT(CONFIGARGS);
++EXTERN const char *named_g_configargs INIT("*** (options are hidden)");
+ EXTERN const char *named_g_builder INIT(BUILDER);
+ EXTERN in_port_t named_g_port INIT(0);
+ EXTERN isc_dscp_t named_g_dscp INIT(-1);
diff --git a/meta/recipes-connectivity/bind/bind/bind-ensure-searching-for-json-headers-searches-sysr.patch b/meta/recipes-connectivity/bind/bind-9.16.7/bind-ensure-searching-for-json-headers-searches-sysr.patch
index 84559e5f37..f9cdc7ca4d 100644
--- a/meta/recipes-connectivity/bind/bind/bind-ensure-searching-for-json-headers-searches-sysr.patch
+++ b/meta/recipes-connectivity/bind/bind-9.16.7/bind-ensure-searching-for-json-headers-searches-sysr.patch
@@ -32,16 +32,16 @@ Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/configure.ac b/configure.ac
-index 17392fd..e85a5c6 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -2449,7 +2449,7 @@ case "$use_libjson" in
- libjson_libs=""
+Index: bind-9.16.4/configure.ac
+===================================================================
+--- bind-9.16.4.orig/configure.ac
++++ bind-9.16.4/configure.ac
+@@ -1232,7 +1232,7 @@ case "$use_lmdb" in
+ LMDB_LIBS=""
;;
auto|yes)
- for d in /usr /usr/local /opt/local
+ for d in "${STAGING_INCDIR}"
do
- if test -f "${d}/include/json/json.h"
+ if test -f "${d}/include/lmdb.h"
then
diff --git a/meta/recipes-connectivity/bind/bind/bind9 b/meta/recipes-connectivity/bind/bind-9.16.7/bind9
index 968679ff7f..968679ff7f 100644
--- a/meta/recipes-connectivity/bind/bind/bind9
+++ b/meta/recipes-connectivity/bind/bind-9.16.7/bind9
diff --git a/meta/recipes-connectivity/bind/bind/conf.patch b/meta/recipes-connectivity/bind/bind-9.16.7/conf.patch
index aad345f9fc..aad345f9fc 100644
--- a/meta/recipes-connectivity/bind/bind/conf.patch
+++ b/meta/recipes-connectivity/bind/bind-9.16.7/conf.patch
diff --git a/meta/recipes-connectivity/bind/bind/generate-rndc-key.sh b/meta/recipes-connectivity/bind/bind-9.16.7/generate-rndc-key.sh
index ef915c0ae5..633e29c0e6 100644
--- a/meta/recipes-connectivity/bind/bind/generate-rndc-key.sh
+++ b/meta/recipes-connectivity/bind/bind-9.16.7/generate-rndc-key.sh
@@ -2,7 +2,7 @@
if [ ! -s /etc/bind/rndc.key ]; then
echo -n "Generating /etc/bind/rndc.key:"
- /usr/sbin/rndc-confgen -a -b 512 -r /dev/urandom
+ /usr/sbin/rndc-confgen -a -b 512
chown root:bind /etc/bind/rndc.key
chmod 0640 /etc/bind/rndc.key
fi
diff --git a/meta/recipes-connectivity/bind/bind/init.d-add-support-for-read-only-rootfs.patch b/meta/recipes-connectivity/bind/bind-9.16.7/init.d-add-support-for-read-only-rootfs.patch
index 11db95ede1..11db95ede1 100644
--- a/meta/recipes-connectivity/bind/bind/init.d-add-support-for-read-only-rootfs.patch
+++ b/meta/recipes-connectivity/bind/bind-9.16.7/init.d-add-support-for-read-only-rootfs.patch
diff --git a/meta/recipes-connectivity/bind/bind/make-etc-initd-bind-stop-work.patch b/meta/recipes-connectivity/bind/bind-9.16.7/make-etc-initd-bind-stop-work.patch
index 146f3e35db..146f3e35db 100644
--- a/meta/recipes-connectivity/bind/bind/make-etc-initd-bind-stop-work.patch
+++ b/meta/recipes-connectivity/bind/bind-9.16.7/make-etc-initd-bind-stop-work.patch
diff --git a/meta/recipes-connectivity/bind/bind/named.service b/meta/recipes-connectivity/bind/bind-9.16.7/named.service
index cda56ef015..cda56ef015 100644
--- a/meta/recipes-connectivity/bind/bind/named.service
+++ b/meta/recipes-connectivity/bind/bind-9.16.7/named.service
diff --git a/meta/recipes-connectivity/bind/bind/0001-configure.in-remove-useless-L-use_openssl-lib.patch b/meta/recipes-connectivity/bind/bind/0001-configure.in-remove-useless-L-use_openssl-lib.patch
deleted file mode 100644
index 9d31b98080..0000000000
--- a/meta/recipes-connectivity/bind/bind/0001-configure.in-remove-useless-L-use_openssl-lib.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 2325a92f1896a2a7f586611686801b41fbc91b50 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 27 Aug 2018 15:00:51 +0800
-Subject: [PATCH] configure.in: remove useless `-L$use_openssl/lib'
-
-Since `--with-openssl=${STAGING_DIR_HOST}${prefix}' is used in bind recipe,
-the `-L$use_openssl/lib' has a hardcoded suffix, removing it is harmless
-and helpful for clean up host build path in isc-config.sh
-
-Upstream-Status: Inappropriate [oe-core specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index e85a5c6..2bbfc58 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1631,7 +1631,7 @@ If you don't want OpenSSL, use --without-openssl])
- fi
- ;;
- *)
-- DST_OPENSSL_LIBS="-L$use_openssl/lib -lcrypto"
-+ DST_OPENSSL_LIBS="-lcrypto"
- ;;
- esac
- fi
diff --git a/meta/recipes-connectivity/bind/bind/0001-named-lwresd-V-and-start-log-hide-build-options.patch b/meta/recipes-connectivity/bind/bind/0001-named-lwresd-V-and-start-log-hide-build-options.patch
deleted file mode 100644
index 75908aa638..0000000000
--- a/meta/recipes-connectivity/bind/bind/0001-named-lwresd-V-and-start-log-hide-build-options.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From a3af4a405baf5ff582e82aaba392dd9667d94bdc Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 27 Aug 2018 21:24:20 +0800
-Subject: [PATCH] `named/lwresd -V' and start log hide build options
-
-The build options expose build path directories, so hide them.
-[snip]
-$ named -V
-|built by make with *** (options are hidden)
-[snip]
-
-Upstream-Status: Inappropriate [oe-core specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- bin/named/include/named/globals.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/bin/named/include/named/globals.h b/bin/named/include/named/globals.h
-index ba3457e..7741da7 100644
---- a/bin/named/include/named/globals.h
-+++ b/bin/named/include/named/globals.h
-@@ -68,7 +68,7 @@ EXTERN const char * ns_g_version INIT(VERSION);
- EXTERN const char * ns_g_product INIT(PRODUCT);
- EXTERN const char * ns_g_description INIT(DESCRIPTION);
- EXTERN const char * ns_g_srcid INIT(SRCID);
--EXTERN const char * ns_g_configargs INIT(CONFIGARGS);
-+EXTERN const char * ns_g_configargs INIT("*** (options are hidden)");
- EXTERN const char * ns_g_builder INIT(BUILDER);
- EXTERN in_port_t ns_g_port INIT(0);
- EXTERN isc_dscp_t ns_g_dscp INIT(-1);
---
-2.7.4
-
diff --git a/meta/recipes-connectivity/bind/bind_9.11.13.bb b/meta/recipes-connectivity/bind/bind_9.16.7.bb
index 4e64171cc1..5fc2c1d3cd 100644
--- a/meta/recipes-connectivity/bind/bind_9.11.13.bb
+++ b/meta/recipes-connectivity/bind/bind_9.16.7.bb
@@ -2,12 +2,12 @@ SUMMARY = "ISC Internet Domain Name Server"
HOMEPAGE = "http://www.isc.org/sw/bind/"
SECTION = "console/network"
-LICENSE = "ISC & BSD"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=8f17f64e47e83b60cd920a1e4b54419e"
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=188b8d0644bd6835df43b84e3f180be1"
-DEPENDS = "openssl libcap zlib"
+DEPENDS = "openssl libcap zlib libuv"
-SRC_URI = "https://ftp.isc.org/isc/bind9/${PV}/${BPN}-${PV}.tar.gz \
+SRC_URI = "https://ftp.isc.org/isc/bind9/${PV}/${BPN}-${PV}.tar.xz \
file://conf.patch \
file://named.service \
file://bind9 \
@@ -15,42 +15,31 @@ SRC_URI = "https://ftp.isc.org/isc/bind9/${PV}/${BPN}-${PV}.tar.gz \
file://make-etc-initd-bind-stop-work.patch \
file://init.d-add-support-for-read-only-rootfs.patch \
file://bind-ensure-searching-for-json-headers-searches-sysr.patch \
- file://0001-configure.in-remove-useless-L-use_openssl-lib.patch \
file://0001-named-lwresd-V-and-start-log-hide-build-options.patch \
file://0001-avoid-start-failure-with-bind-user.patch \
"
-SRC_URI[md5sum] = "17de0d024ab1eac377f1c2854dc25057"
-SRC_URI[sha256sum] = "fd3f3cc9fcfcdaa752db35eb24598afa1fdcc2509d3227fc90a8631b7b400f7d"
+SRC_URI[sha256sum] = "9f7d1812ebbd26a699f62b6fa8522d5dec57e4bf43af0042a0d60d39ed8314d1"
UPSTREAM_CHECK_URI = "https://ftp.isc.org/isc/bind9/"
-# stay at 9.11 until 9.16, from 9.16 follow the ESV versions divisible by 4
-UPSTREAM_CHECK_REGEX = "(?P<pver>9.(11|16|20|24|28)(\.\d+)+(-P\d+)*)/"
+# stay at 9.16 follow the ESV versions divisible by 4
+UPSTREAM_CHECK_REGEX = "(?P<pver>9.(16|20|24|28)(\.\d+)+(-P\d+)*)/"
-# BIND >= 9.11.2 need dhcpd >= 4.4.0,
-# don't report it here since dhcpd is already recent enough.
-CVE_CHECK_WHITELIST += "CVE-2019-6470"
-
-inherit autotools update-rc.d systemd useradd pkgconfig multilib_script multilib_header
-
-MULTILIB_SCRIPTS = "${PN}:${bindir}/bind9-config ${PN}:${bindir}/isc-config.sh"
+inherit autotools update-rc.d systemd useradd pkgconfig multilib_header update-alternatives
# PACKAGECONFIGs readline and libedit should NOT be set at same time
PACKAGECONFIG ?= "readline"
PACKAGECONFIG[httpstats] = "--with-libxml2=${STAGING_DIR_HOST}${prefix},--without-libxml2,libxml2"
PACKAGECONFIG[readline] = "--with-readline=-lreadline,,readline"
PACKAGECONFIG[libedit] = "--with-readline=-ledit,,libedit"
-PACKAGECONFIG[urandom] = "--with-randomdev=/dev/urandom,--with-randomdev=/dev/random,,"
PACKAGECONFIG[python3] = "--with-python=yes --with-python-install-dir=${PYTHON_SITEPACKAGES_DIR} , --without-python, python3-ply-native,"
-ENABLE_IPV6 = "--enable-ipv6=${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'yes', 'no', d)}"
-EXTRA_OECONF = " ${ENABLE_IPV6} --with-libtool --enable-threads \
- --disable-devpoll --enable-epoll --with-gost=no \
- --with-gssapi=no --with-ecdsa=yes --with-eddsa=no \
- --with-lmdb=no \
+EXTRA_OECONF = " --with-libtool --disable-devpoll --disable-auto-validation --enable-epoll \
+ --with-gssapi=no --with-lmdb=no --with-zlib \
--sysconfdir=${sysconfdir}/bind \
--with-openssl=${STAGING_DIR_HOST}${prefix} \
"
+LDFLAGS_append = " -lz"
inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3native distutils3-base', '', d)}
@@ -66,13 +55,6 @@ INITSCRIPT_PARAMS = "defaults"
SYSTEMD_SERVICE_${PN} = "named.service"
-do_install_prepend() {
- # clean host path in isc-config.sh before the hardlink created
- # by "make install":
- # bind9-config -> isc-config.sh
- sed -i -e "s,${STAGING_LIBDIR},${libdir}," ${B}/isc-config.sh
-}
-
do_install_append() {
rmdir "${D}${localstatedir}/run"
@@ -130,7 +112,7 @@ FILES_${PN}-dev += "${bindir}/isc-config.h"
FILES_${PN} += "${sbindir}/generate-rndc-key.sh"
PACKAGE_BEFORE_PN += "${PN}-libs"
-FILES_${PN}-libs = "${libdir}/*.so*"
+FILES_${PN}-libs = "${libdir}/*.so* ${libdir}/named/*.so*"
FILES_${PN}-staticdev += "${libdir}/*.la"
PACKAGE_BEFORE_PN += "${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-bind', '', d)}"
diff --git a/meta/recipes-connectivity/bluez5/bluez5.inc b/meta/recipes-connectivity/bluez5/bluez5.inc
index 150d909d73..4c1156c67c 100644
--- a/meta/recipes-connectivity/bluez5/bluez5.inc
+++ b/meta/recipes-connectivity/bluez5/bluez5.inc
@@ -42,8 +42,8 @@ PACKAGECONFIG[sixaxis] = "--enable-sixaxis,--disable-sixaxis"
PACKAGECONFIG[tools] = "--enable-tools,--disable-tools"
PACKAGECONFIG[threads] = "--enable-threads,--disable-threads"
PACKAGECONFIG[deprecated] = "--enable-deprecated,--disable-deprecated"
-PACKAGECONFIG[mesh] = "--enable-mesh,--disable-mesh, json-c ell"
-PACKAGECONFIG[btpclient] = "--enable-btpclient,--disable-btpclient, ell"
+PACKAGECONFIG[mesh] = "--enable-mesh --enable-external-ell,--disable-mesh, json-c ell"
+PACKAGECONFIG[btpclient] = "--enable-btpclient --enable-external-ell,--disable-btpclient, ell"
PACKAGECONFIG[udev] = "--enable-udev,--disable-udev,udev"
SRC_URI = "${KERNELORG_MIRROR}/linux/bluetooth/bluez-${PV}.tar.xz \
@@ -57,7 +57,7 @@ S = "${WORKDIR}/bluez-${PV}"
CVE_PRODUCT = "bluez"
-inherit autotools pkgconfig systemd update-rc.d features_check ptest gobject-introspection-data
+inherit autotools pkgconfig systemd update-rc.d ptest gobject-introspection-data
EXTRA_OECONF = "\
--enable-test \
diff --git a/meta/recipes-connectivity/bluez5/bluez5_5.53.bb b/meta/recipes-connectivity/bluez5/bluez5_5.54.bb
index 055e76bcf1..260eee1402 100644
--- a/meta/recipes-connectivity/bluez5/bluez5_5.53.bb
+++ b/meta/recipes-connectivity/bluez5/bluez5_5.54.bb
@@ -1,7 +1,7 @@
require bluez5.inc
-SRC_URI[md5sum] = "85b14abb138948f50b1650aa866cb019"
-SRC_URI[sha256sum] = "38aa2da8302fefad53116bb281a11968732a42eeb19c5fb3668342f39b7938bc"
+SRC_URI[md5sum] = "e637feb2dbb7582bbbff1708367a847c"
+SRC_URI[sha256sum] = "68cdab9e63e8832b130d5979dc8c96fdb087b31278f342874d992af3e56656dc"
# noinst programs in Makefile.tools that are conditional on READLINE
# support
diff --git a/meta/recipes-connectivity/connman/connman-gnome_0.7.bb b/meta/recipes-connectivity/connman/connman-gnome_0.7.bb
index 778bf50191..af986c4eab 100644
--- a/meta/recipes-connectivity/connman/connman-gnome_0.7.bb
+++ b/meta/recipes-connectivity/connman/connman-gnome_0.7.bb
@@ -13,7 +13,7 @@ SRCREV = "cf3c325b23dae843c5499a113591cfbc98acb143"
SRC_URI = "git://github.com/connectivity/connman-gnome.git \
file://0001-Removed-icon-from-connman-gnome-about-applet.patch \
file://null_check_for_ipv4_config.patch \
- file://images/* \
+ file://images/ \
file://connman-gnome-fix-dbus-interface-name.patch \
file://0001-Port-to-Gtk3.patch \
"
diff --git a/meta/recipes-connectivity/connman/connman.inc b/meta/recipes-connectivity/connman/connman.inc
index d3eeb3be1c..776bbfbff2 100644
--- a/meta/recipes-connectivity/connman/connman.inc
+++ b/meta/recipes-connectivity/connman/connman.inc
@@ -17,8 +17,6 @@ inherit autotools pkgconfig systemd update-rc.d update-alternatives
DEPENDS = "dbus glib-2.0 ppp"
-INC_PR = "r20"
-
EXTRA_OECONF += "\
ac_cv_path_WPASUPPLICANT=${sbindir}/wpa_supplicant \
ac_cv_path_PPPD=${sbindir}/pppd \
@@ -53,6 +51,7 @@ PACKAGECONFIG[nftables] = "--with-firewall=nftables ,,libmnl libnftnl,,kernel-mo
PACKAGECONFIG[iptables] = "--with-firewall=iptables ,,iptables,iptables"
PACKAGECONFIG[nfc] = "--enable-neard, --disable-neard, neard, neard"
PACKAGECONFIG[client] = "--enable-client,--disable-client,readline"
+PACKAGECONFIG[wireguard] = "--enable-wireguard,--disable-wireguard,libmnl"
INITSCRIPT_NAME = "connman"
INITSCRIPT_PARAMS = "start 05 5 2 3 . stop 22 0 1 6 ."
@@ -194,7 +193,8 @@ SUMMARY_${PN}-plugin-vpn-vpnc = "A vpnc plugin for ConnMan VPN"
DESCRIPTION_${PN}-plugin-vpn-vpnc = "The ConnMan vpnc plugin uses vpnc client \
to create a VPN connection to Cisco3000 VPN Concentrator."
FILES_${PN}-plugin-vpn-vpnc += "${libdir}/connman/scripts/openconnect-script \
- ${libdir}/connman/plugins-vpn/vpnc.so"
+ ${libdir}/connman/plugins-vpn/vpnc.so \
+ ${libdir}/connman/scripts/vpn-script"
RDEPENDS_${PN}-plugin-vpn-vpnc += "${PN}-vpn"
RRECOMMENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG','vpnc','${PN}-plugin-vpn-vpnc', '', d)}"
diff --git a/meta/recipes-connectivity/connman/connman/0001-gweb-fix-segfault-with-musl-v1.1.21.patch b/meta/recipes-connectivity/connman/connman/0001-gweb-fix-segfault-with-musl-v1.1.21.patch
deleted file mode 100644
index 30f1432cd3..0000000000
--- a/meta/recipes-connectivity/connman/connman/0001-gweb-fix-segfault-with-musl-v1.1.21.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From f0a8c69971b30ea7ca255bb885fdd1179fa5d298 Mon Sep 17 00:00:00 2001
-From: Nicola Lunghi <nick83ola@gmail.com>
-Date: Thu, 23 May 2019 07:55:25 +0100
-Subject: [PATCH] gweb: fix segfault with musl v1.1.21
-
-In musl > v1.1.21 freeaddrinfo() implementation changed and
-was causing a segmentation fault on recent Yocto using musl.
-
-See this commit:
-
- https://git.musl-libc.org/cgit/musl/commit/src/network/freeaddrinfo.c?id=d1395c43c019aec6b855cf3c656bf47c8a719e7f
-
-Upstream-Status: Submitted
----
- gweb/gweb.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/gweb/gweb.c b/gweb/gweb.c
-index 393afe0a..12fcb1d8 100644
---- a/gweb/gweb.c
-+++ b/gweb/gweb.c
-@@ -1274,7 +1274,8 @@ static bool is_ip_address(const char *host)
- addr = NULL;
-
- result = getaddrinfo(host, NULL, &hints, &addr);
-- freeaddrinfo(addr);
-+ if(!result)
-+ freeaddrinfo(addr);
-
- return result == 0;
- }
---
-2.19.1
-
diff --git a/meta/recipes-connectivity/connman/connman/0002-resolve-musl-does-not-implement-res_ninit.patch b/meta/recipes-connectivity/connman/connman/0002-resolve-musl-does-not-implement-res_ninit.patch
index 639ccfa2a2..942b9c97b6 100644
--- a/meta/recipes-connectivity/connman/connman/0002-resolve-musl-does-not-implement-res_ninit.patch
+++ b/meta/recipes-connectivity/connman/connman/0002-resolve-musl-does-not-implement-res_ninit.patch
@@ -1,7 +1,7 @@
-From 10b0d16d04b811b1ccd1f9b0cfe757bce8d876a1 Mon Sep 17 00:00:00 2001
+From c7734e1547db967eccf242fe4b9e8a30b9ff141c Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 6 Apr 2015 23:02:21 -0700
-Subject: [PATCH 2/3] resolve: musl does not implement res_ninit
+Subject: [PATCH] resolve: musl does not implement res_ninit
ported from
http://git.alpinelinux.org/cgit/aports/plain/testing/connman/libresolv.patch
@@ -9,12 +9,13 @@ http://git.alpinelinux.org/cgit/aports/plain/testing/connman/libresolv.patch
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
- gweb/gresolv.c | 33 ++++++++++++---------------------
- 1 file changed, 12 insertions(+), 21 deletions(-)
+ gweb/gresolv.c | 34 +++++++++++++---------------------
+ 1 file changed, 13 insertions(+), 21 deletions(-)
diff --git a/gweb/gresolv.c b/gweb/gresolv.c
-index 5cf7a9a..3ad8e70 100644
+index 38a554e..a9e8740 100644
--- a/gweb/gresolv.c
+++ b/gweb/gresolv.c
@@ -36,6 +36,7 @@
@@ -25,7 +26,7 @@ index 5cf7a9a..3ad8e70 100644
#include "gresolv.h"
-@@ -875,8 +875,6 @@ GResolv *g_resolv_new(int index)
+@@ -877,8 +878,6 @@ GResolv *g_resolv_new(int index)
resolv->index = index;
resolv->nameserver_list = NULL;
@@ -34,7 +35,7 @@ index 5cf7a9a..3ad8e70 100644
return resolv;
}
-@@ -916,8 +914,6 @@ void g_resolv_unref(GResolv *resolv)
+@@ -918,8 +917,6 @@ void g_resolv_unref(GResolv *resolv)
flush_nameservers(resolv);
@@ -43,7 +44,7 @@ index 5cf7a9a..3ad8e70 100644
g_free(resolv);
}
-@@ -1020,24 +1016,19 @@ guint g_resolv_lookup_hostname(GResolv *resolv, const char *hostname,
+@@ -1022,24 +1019,19 @@ guint g_resolv_lookup_hostname(GResolv *resolv, const char *hostname,
debug(resolv, "hostname %s", hostname);
if (!resolv->nameserver_list) {
@@ -80,6 +81,3 @@ index 5cf7a9a..3ad8e70 100644
}
if (!resolv->nameserver_list)
---
-2.5.1
-
diff --git a/meta/recipes-connectivity/connman/connman_1.37.bb b/meta/recipes-connectivity/connman/connman_1.37.bb
deleted file mode 100644
index 00852bf0d6..0000000000
--- a/meta/recipes-connectivity/connman/connman_1.37.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-require connman.inc
-
-SRC_URI = "${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \
- file://0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch \
- file://0001-connman.service-stop-systemd-resolved-when-we-use-co.patch \
- file://0001-gweb-fix-segfault-with-musl-v1.1.21.patch \
- file://connman \
- file://no-version-scripts.patch \
-"
-
-SRC_URI_append_libc-musl = " file://0002-resolve-musl-does-not-implement-res_ninit.patch"
-
-SRC_URI[md5sum] = "75012084f14fb63a84b116e66c6e94fb"
-SRC_URI[sha256sum] = "6ce29b3eb0bb16a7387bc609c39455fd13064bdcde5a4d185fab3a0c71946e16"
-
-RRECOMMENDS_${PN} = "connman-conf"
-RCONFLICTS_${PN} = "networkmanager"
diff --git a/meta/recipes-connectivity/connman/connman_1.38.bb b/meta/recipes-connectivity/connman/connman_1.38.bb
new file mode 100644
index 0000000000..027c41e9af
--- /dev/null
+++ b/meta/recipes-connectivity/connman/connman_1.38.bb
@@ -0,0 +1,16 @@
+require connman.inc
+
+SRC_URI = "${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \
+ file://0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch \
+ file://0001-connman.service-stop-systemd-resolved-when-we-use-co.patch \
+ file://connman \
+ file://no-version-scripts.patch \
+ "
+
+SRC_URI_append_libc-musl = " file://0002-resolve-musl-does-not-implement-res_ninit.patch"
+
+SRC_URI[md5sum] = "1ed8745354c7254bdfd4def54833ee94"
+SRC_URI[sha256sum] = "cb30aca97c2f79ccaed8802aa2909ac5100a3969de74c0af8a9d73b85fc4932b"
+
+RRECOMMENDS_${PN} = "connman-conf"
+RCONFLICTS_${PN} = "networkmanager"
diff --git a/meta/recipes-connectivity/dhcp/dhcp.inc b/meta/recipes-connectivity/dhcp/dhcp.inc
deleted file mode 100644
index c4697beaf1..0000000000
--- a/meta/recipes-connectivity/dhcp/dhcp.inc
+++ /dev/null
@@ -1,148 +0,0 @@
-SECTION = "console/network"
-SUMMARY = "Internet Software Consortium DHCP package"
-DESCRIPTION = "DHCP (Dynamic Host Configuration Protocol) is a protocol \
-which allows individual devices on an IP network to get their own \
-network configuration information from a server. DHCP helps make it \
-easier to administer devices."
-
-HOMEPAGE = "http://www.isc.org/"
-
-LICENSE = "ISC"
-LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;md5=004a4db50a1e20972e924a8618747c01"
-
-DEPENDS = "openssl bind"
-
-SRC_URI = "http://ftp.isc.org/isc/dhcp/${PV}/dhcp-${PV}.tar.gz \
- file://init-relay file://default-relay \
- file://init-server file://default-server \
- file://dhclient.conf file://dhcpd.conf \
- file://dhclient-systemd-wrapper \
- file://dhclient.service \
- file://dhcpd.service file://dhcrelay.service \
- file://dhcpd6.service \
- "
-UPSTREAM_CHECK_URI = "http://ftp.isc.org/isc/dhcp/"
-UPSTREAM_CHECK_REGEX = "(?P<pver>\d+\.\d+\.(\d+?))/"
-
-inherit autotools-brokensep systemd useradd update-rc.d
-
-USERADD_PACKAGES = "${PN}-server"
-USERADD_PARAM_${PN}-server = "--system --no-create-home --home-dir /var/run/${BPN} --shell /bin/false --user-group ${BPN}"
-
-SYSTEMD_PACKAGES = "${PN}-server ${PN}-relay ${PN}-client"
-SYSTEMD_SERVICE_${PN}-server = "dhcpd.service dhcpd6.service"
-SYSTEMD_AUTO_ENABLE_${PN}-server = "disable"
-
-SYSTEMD_SERVICE_${PN}-relay = "dhcrelay.service"
-SYSTEMD_AUTO_ENABLE_${PN}-relay = "disable"
-
-SYSTEMD_SERVICE_${PN}-client = "dhclient.service"
-SYSTEMD_AUTO_ENABLE_${PN}-client = "disable"
-
-INITSCRIPT_PACKAGES = "dhcp-server"
-INITSCRIPT_NAME_dhcp-server = "dhcp-server"
-INITSCRIPT_PARAMS_dhcp-server = "defaults"
-
-CFLAGS += "-D_GNU_SOURCE"
-EXTRA_OECONF = "--with-srv-lease-file=${localstatedir}/lib/dhcp/dhcpd.leases \
- --with-srv6-lease-file=${localstatedir}/lib/dhcp/dhcpd6.leases \
- --with-cli-lease-file=${localstatedir}/lib/dhcp/dhclient.leases \
- --with-cli6-lease-file=${localstatedir}/lib/dhcp/dhclient6.leases \
- --enable-paranoia --disable-static \
- --with-randomdev=/dev/random \
- --with-libbind=${STAGING_DIR_HOST} \
- --enable-libtool \
- "
-
-#Enable shared libs per dhcp README
-do_configure_prepend () {
- cp configure.ac+lt configure.ac
-}
-
-do_install_append () {
- install -d ${D}${sysconfdir}/init.d
- install -d ${D}${sysconfdir}/default
- install -d ${D}${sysconfdir}/dhcp
- install -m 0755 ${WORKDIR}/init-relay ${D}${sysconfdir}/init.d/dhcp-relay
- install -m 0644 ${WORKDIR}/default-relay ${D}${sysconfdir}/default/dhcp-relay
- install -m 0755 ${WORKDIR}/init-server ${D}${sysconfdir}/init.d/dhcp-server
- install -m 0644 ${WORKDIR}/default-server ${D}${sysconfdir}/default/dhcp-server
-
- rm -f ${D}${sysconfdir}/dhclient.conf*
- rm -f ${D}${sysconfdir}/dhcpd.conf*
- install -m 0644 ${WORKDIR}/dhclient.conf ${D}${sysconfdir}/dhcp/dhclient.conf
- install -m 0644 ${WORKDIR}/dhcpd.conf ${D}${sysconfdir}/dhcp/dhcpd.conf
-
- install -d ${D}${base_sbindir}/
- if [ "${sbindir}" != "${base_sbindir}" ]; then
- mv ${D}${sbindir}/dhclient ${D}${base_sbindir}/
- fi
- install -m 0755 ${S}/client/scripts/linux ${D}${base_sbindir}/dhclient-script
-
- # Install systemd unit files
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/dhcpd.service ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/dhcpd6.service ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/dhcrelay.service ${D}${systemd_unitdir}/system
- sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/dhcpd*.service ${D}${systemd_unitdir}/system/dhcrelay.service
- sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/dhcpd*.service
- sed -i -e 's,@base_bindir@,${base_bindir},g' ${D}${systemd_unitdir}/system/dhcpd*.service
- sed -i -e 's,@localstatedir@,${localstatedir},g' ${D}${systemd_unitdir}/system/dhcpd*.service
- sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/dhcrelay.service
-
- install -d ${D}${base_sbindir}
- install -m 0755 ${WORKDIR}/dhclient-systemd-wrapper ${D}${base_sbindir}/dhclient-systemd-wrapper
- install -m 0644 ${WORKDIR}/dhclient.service ${D}${systemd_unitdir}/system
- sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/dhclient.service
- sed -i -e 's,@BASE_SBINDIR@,${base_sbindir},g' ${D}${systemd_unitdir}/system/dhclient.service
-}
-
-PACKAGES += "dhcp-libs dhcp-server dhcp-server-config dhcp-client dhcp-relay dhcp-omshell"
-
-PACKAGES_remove = "${PN}"
-RDEPENDS_${PN}-dev = ""
-RDEPENDS_${PN}-staticdev = ""
-FILES_${PN}-libs = "${libdir}/libdhcpctl.so.0* ${libdir}/libomapi.so.0* ${libdir}/libdhcp.so.0*"
-
-FILES_${PN}-server = "${sbindir}/dhcpd ${sysconfdir}/init.d/dhcp-server"
-RRECOMMENDS_${PN}-server = "dhcp-server-config"
-
-FILES_${PN}-server-config = "${sysconfdir}/default/dhcp-server ${sysconfdir}/dhcp/dhcpd.conf"
-
-FILES_${PN}-relay = "${sbindir}/dhcrelay ${sysconfdir}/init.d/dhcp-relay ${sysconfdir}/default/dhcp-relay"
-
-FILES_${PN}-client = "${base_sbindir}/dhclient \
- ${base_sbindir}/dhclient-script \
- ${sysconfdir}/dhcp/dhclient.conf \
- ${base_sbindir}/dhclient-systemd-wrapper \
- "
-
-FILES_${PN}-omshell = "${bindir}/omshell"
-
-pkg_postinst_dhcp-server() {
- mkdir -p $D/${localstatedir}/lib/dhcp
- touch $D/${localstatedir}/lib/dhcp/dhcpd.leases
- touch $D/${localstatedir}/lib/dhcp/dhcpd6.leases
-}
-
-pkg_postinst_dhcp-client() {
- mkdir -p $D/${localstatedir}/lib/dhcp
-}
-
-pkg_postrm_dhcp-server() {
- rm -f $D/${localstatedir}/lib/dhcp/dhcpd.leases
- rm -f $D/${localstatedir}/lib/dhcp/dhcpd6.leases
-
- if ! rmdir $D/${localstatedir}/lib/dhcp 2>/dev/null; then
- echo "Not removing ${localstatedir}/lib/dhcp as it is non-empty."
- fi
-}
-
-pkg_postrm_dhcp-client() {
- rm -f $D/${localstatedir}/lib/dhcp/dhclient.leases
- rm -f $D/${localstatedir}/lib/dhcp/dhclient6.leases
-
- if ! rmdir $D/${localstatedir}/lib/dhcp 2>/dev/null; then
- echo "Not removing ${localstatedir}/lib/dhcp as it is non-empty."
- fi
-}
diff --git a/meta/recipes-connectivity/dhcp/dhcp/0001-define-macro-_PATH_DHCPD_CONF-and-_PATH_DHCLIENT_CON.patch b/meta/recipes-connectivity/dhcp/dhcp/0001-define-macro-_PATH_DHCPD_CONF-and-_PATH_DHCLIENT_CON.patch
deleted file mode 100644
index d1b57f0bb4..0000000000
--- a/meta/recipes-connectivity/dhcp/dhcp/0001-define-macro-_PATH_DHCPD_CONF-and-_PATH_DHCLIENT_CON.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 7cc29144535a622fc671dc86eb1da65b0473a7c4 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Tue, 15 Aug 2017 16:14:22 +0800
-Subject: [PATCH 01/11] define macro _PATH_DHCPD_CONF and _PATH_DHCLIENT_CONF
-
-Upstream-Status: Inappropriate [OE specific]
-
-Rebase to 4.3.6
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- includes/site.h | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-Index: dhcp-4.4.1/includes/site.h
-===================================================================
---- dhcp-4.4.1.orig/includes/site.h
-+++ dhcp-4.4.1/includes/site.h
-@@ -148,7 +148,8 @@
- /* Define this if you want the dhcpd.conf file to go somewhere other than
- the default location. By default, it goes in /etc/dhcpd.conf. */
-
--/* #define _PATH_DHCPD_CONF "/etc/dhcpd.conf" */
-+#define _PATH_DHCPD_CONF "/etc/dhcp/dhcpd.conf"
-+#define _PATH_DHCLIENT_CONF "/etc/dhcp/dhclient.conf"
-
- /* Network API definitions. You do not need to choose one of these - if
- you don't choose, one will be chosen for you in your system's config
diff --git a/meta/recipes-connectivity/dhcp/dhcp/0001-workaround-busybox-limitation-in-linux-dhclient-script.patch b/meta/recipes-connectivity/dhcp/dhcp/0001-workaround-busybox-limitation-in-linux-dhclient-script.patch
deleted file mode 100644
index 2359381b93..0000000000
--- a/meta/recipes-connectivity/dhcp/dhcp/0001-workaround-busybox-limitation-in-linux-dhclient-script.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From eec0503cfc36f63d777f5cb3f2719cecedcb8468 Mon Sep 17 00:00:00 2001
-From: Haris Okanovic <haris.okanovic@ni.com>
-Date: Mon, 7 Jan 2019 13:22:09 -0600
-Subject: [PATCH] Workaround busybox limitation in Linux dhclient-script
-
-Busybox is a lightweight implementation of coreutils commonly used on
-space-constrained embedded Linux distributions. It's implementation of
-chown and chmod doesn't provide a "--reference" option added to
-client/scripts/linux as of commit 9261cb14. This change works around
-that limitation by using stat to read ownership and permissions flags
-and simple chown/chmod calls supported in both coreutils and busybox.
-
- modified: client/scripts/linux
-
-Signed-off-by: Haris Okanovic <haris.okanovic@ni.com>
-Upstream-Status: Pending [ISC-Bugs #48771]
----
- client/scripts/linux | 17 +++++++++++++----
- 1 file changed, 13 insertions(+), 4 deletions(-)
-
-diff --git a/client/scripts/linux b/client/scripts/linux
-index 0c429697..2435a44b 100755
---- a/client/scripts/linux
-+++ b/client/scripts/linux
-@@ -32,6 +32,17 @@
- # if your system holds ip tool in a non-standard location.
- ip=/sbin/ip
-
-+chown_chmod_by_reference() {
-+ local reference_file="$1"
-+ local target_file="$2"
-+
-+ local owner=$(stat -c "%u:%g" "$reference_file")
-+ local perm=$(stat -c "%a" "$reference_file")
-+
-+ chown "$owner" "$target_file"
-+ chmod "$perm" "$target_file"
-+}
-+
- # update /etc/resolv.conf based on received values
- # This updated version mostly follows Debian script by Andrew Pollock et al.
- make_resolv_conf() {
-@@ -74,8 +85,7 @@ make_resolv_conf() {
- fi
-
- if [ -f /etc/resolv.conf ]; then
-- chown --reference=/etc/resolv.conf $new_resolv_conf
-- chmod --reference=/etc/resolv.conf $new_resolv_conf
-+ chown_chmod_by_reference /etc/resolv.conf $new_resolv_conf
- fi
- mv -f $new_resolv_conf /etc/resolv.conf
- # DHCPv6
-@@ -101,8 +111,7 @@ make_resolv_conf() {
- fi
-
- if [ -f /etc/resolv.conf ]; then
-- chown --reference=/etc/resolv.conf $new_resolv_conf
-- chmod --reference=/etc/resolv.conf $new_resolv_conf
-+ chown_chmod_by_reference /etc/resolv.conf $new_resolv_conf
- fi
- mv -f $new_resolv_conf /etc/resolv.conf
- fi
---
-2.20.0
-
diff --git a/meta/recipes-connectivity/dhcp/dhcp/0002-dhclient-dbus.patch b/meta/recipes-connectivity/dhcp/dhcp/0002-dhclient-dbus.patch
deleted file mode 100644
index 101c33f677..0000000000
--- a/meta/recipes-connectivity/dhcp/dhcp/0002-dhclient-dbus.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-From be7540d31c356e80ee02e90e8bf162b7ac6e5ba5 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Tue, 15 Aug 2017 14:56:56 +0800
-Subject: [PATCH 02/11] dhclient dbus
-
-Upstream-Status: Inappropriate [distribution]
-
-Rebase to 4.3.6
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- client/scripts/bsdos | 5 +++++
- client/scripts/freebsd | 5 +++++
- client/scripts/linux | 5 +++++
- client/scripts/netbsd | 5 +++++
- client/scripts/openbsd | 5 +++++
- client/scripts/solaris | 5 +++++
- 6 files changed, 30 insertions(+)
-
-diff --git a/client/scripts/bsdos b/client/scripts/bsdos
-index d69d0d8..095b143 100755
---- a/client/scripts/bsdos
-+++ b/client/scripts/bsdos
-@@ -45,6 +45,11 @@ exit_with_hooks() {
- . /etc/dhclient-exit-hooks
- fi
- # probably should do something with exit status of the local script
-+ if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
-+ dbus-send --system --dest=com.redhat.dhcp \
-+ --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
-+ 'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
-+ fi
- exit $exit_status
- }
-
-diff --git a/client/scripts/freebsd b/client/scripts/freebsd
-index 8f3e2a2..ad7fb44 100755
---- a/client/scripts/freebsd
-+++ b/client/scripts/freebsd
-@@ -89,6 +89,11 @@ exit_with_hooks() {
- . /etc/dhclient-exit-hooks
- fi
- # probably should do something with exit status of the local script
-+ if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
-+ dbus-send --system --dest=com.redhat.dhcp \
-+ --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
-+ 'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
-+ fi
- exit $exit_status
- }
-
-diff --git a/client/scripts/linux b/client/scripts/linux
-index 5fb1612..3d447b6 100755
---- a/client/scripts/linux
-+++ b/client/scripts/linux
-@@ -174,6 +174,11 @@ exit_with_hooks() {
- exit_status=$?
- fi
-
-+ if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
-+ dbus-send --system --dest=com.redhat.dhcp \
-+ --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
-+ 'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
-+ fi
- exit $exit_status
- }
-
-diff --git a/client/scripts/netbsd b/client/scripts/netbsd
-index 07383b7..aaba8e8 100755
---- a/client/scripts/netbsd
-+++ b/client/scripts/netbsd
-@@ -45,6 +45,11 @@ exit_with_hooks() {
- . /etc/dhclient-exit-hooks
- fi
- # probably should do something with exit status of the local script
-+ if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
-+ dbus-send --system --dest=com.redhat.dhcp \
-+ --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
-+ 'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
-+ fi
- exit $exit_status
- }
-
-diff --git a/client/scripts/openbsd b/client/scripts/openbsd
-index e7f4746..56b980c 100644
---- a/client/scripts/openbsd
-+++ b/client/scripts/openbsd
-@@ -45,6 +45,11 @@ exit_with_hooks() {
- . /etc/dhclient-exit-hooks
- fi
- # probably should do something with exit status of the local script
-+ if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
-+ dbus-send --system --dest=com.redhat.dhcp \
-+ --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
-+ 'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
-+ fi
- exit $exit_status
- }
-
-diff --git a/client/scripts/solaris b/client/scripts/solaris
-index af553b9..4a2aa69 100755
---- a/client/scripts/solaris
-+++ b/client/scripts/solaris
-@@ -26,6 +26,11 @@ exit_with_hooks() {
- . /etc/dhclient-exit-hooks
- fi
- # probably should do something with exit status of the local script
-+ if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
-+ dbus-send --system --dest=com.redhat.dhcp \
-+ --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
-+ 'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
-+ fi
- exit $exit_status
- }
-
---
-1.8.3.1
-
diff --git a/meta/recipes-connectivity/dhcp/dhcp/0003-link-with-lcrypto.patch b/meta/recipes-connectivity/dhcp/dhcp/0003-link-with-lcrypto.patch
deleted file mode 100644
index 5b35933a54..0000000000
--- a/meta/recipes-connectivity/dhcp/dhcp/0003-link-with-lcrypto.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From d80bd792323dbd56269309f85b4506eb6b1b60e9 Mon Sep 17 00:00:00 2001
-From: Andrei Gherzan <andrei@gherzan.ro>
-Date: Tue, 15 Aug 2017 15:05:47 +0800
-Subject: [PATCH 03/11] link with lcrypto
-
-From 4.2.0 final release, -lcrypto check was removed and we compile
-static libraries
-from bind that are linked to libcrypto. This is why i added a patch in
-order to add
--lcrypto to LIBS.
-
-Upstream-Status: Pending
-Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
-
-Rebase to 4.3.6
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- configure.ac | 4 ++++
- 1 file changed, 4 insertions(+)
-
-Index: dhcp-4.4.1/configure.ac
-===================================================================
---- dhcp-4.4.1.orig/configure.ac
-+++ dhcp-4.4.1/configure.ac
-@@ -612,6 +612,10 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],
- # Look for optional headers.
- AC_CHECK_HEADERS(sys/socket.h net/if_dl.h net/if6.h regex.h)
-
-+# find an MD5 library
-+AC_SEARCH_LIBS(MD5_Init, [crypto])
-+AC_SEARCH_LIBS(MD5Init, [crypto])
-+
- # Solaris needs some libraries for functions
- AC_SEARCH_LIBS(socket, [socket])
- AC_SEARCH_LIBS(inet_ntoa, [nsl])
diff --git a/meta/recipes-connectivity/dhcp/dhcp/0004-Fix-out-of-tree-builds.patch b/meta/recipes-connectivity/dhcp/dhcp/0004-Fix-out-of-tree-builds.patch
deleted file mode 100644
index 7b57730ffb..0000000000
--- a/meta/recipes-connectivity/dhcp/dhcp/0004-Fix-out-of-tree-builds.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From cccec0344d68dac4100b6f260ee24e7c2da9dfda Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Tue, 15 Aug 2017 15:08:22 +0800
-Subject: [PATCH 04/11] Fix out of tree builds
-
-Upstream-Status: Pending
-
-RP 2013/03/21
-
-Rebase to 4.3.6
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- client/Makefile.am | 4 ++--
- common/Makefile.am | 3 ++-
- dhcpctl/Makefile.am | 2 ++
- omapip/Makefile.am | 1 +
- relay/Makefile.am | 2 +-
- server/Makefile.am | 2 +-
- 6 files changed, 9 insertions(+), 5 deletions(-)
-
-Index: dhcp-4.4.1/common/Makefile.am
-===================================================================
---- dhcp-4.4.1.orig/common/Makefile.am
-+++ dhcp-4.4.1/common/Makefile.am
-@@ -1,4 +1,5 @@
--AM_CPPFLAGS = -I$(top_srcdir) -DLOCALSTATEDIR='"@localstatedir@"'
-+AM_CPPFLAGS = -I$(top_srcdir)/includes -I$(top_srcdir) -DLOCALSTATEDIR='"@localstatedir@"'
-+
- AM_CFLAGS = $(LDAP_CFLAGS)
-
- lib_LIBRARIES = libdhcp.a
-Index: dhcp-4.4.1/dhcpctl/Makefile.am
-===================================================================
---- dhcp-4.4.1.orig/dhcpctl/Makefile.am
-+++ dhcp-4.4.1/dhcpctl/Makefile.am
-@@ -3,6 +3,8 @@ BINDLIBDNSDIR=@BINDLIBDNSDIR@
- BINDLIBISCCFGDIR=@BINDLIBISCCFGDIR@
- BINDLIBISCDIR=@BINDLIBISCDIR@
-
-+AM_CPPFLAGS = -I$(top_srcdir)/includes -I$(top_srcdir)
-+
- bin_PROGRAMS = omshell
- lib_LIBRARIES = libdhcpctl.a
- noinst_PROGRAMS = cltest
-Index: dhcp-4.4.1/server/Makefile.am
-===================================================================
---- dhcp-4.4.1.orig/server/Makefile.am
-+++ dhcp-4.4.1/server/Makefile.am
-@@ -4,7 +4,7 @@
- # production code. Sadly, we are not there yet.
- SUBDIRS = . tests
-
--AM_CPPFLAGS = -I.. -DLOCALSTATEDIR='"@localstatedir@"'
-+AM_CPPFLAGS = -I$(top_srcdir) -DLOCALSTATEDIR='"@localstatedir@"' -I$(top_srcdir)/includes
-
- dist_sysconf_DATA = dhcpd.conf.example
- sbin_PROGRAMS = dhcpd
-Index: dhcp-4.4.1/client/Makefile.am
-===================================================================
---- dhcp-4.4.1.orig/client/Makefile.am
-+++ dhcp-4.4.1/client/Makefile.am
-@@ -5,7 +5,7 @@
- SUBDIRS = . tests
-
- AM_CPPFLAGS = -DCLIENT_PATH='"PATH=$(sbindir):/sbin:/bin:/usr/sbin:/usr/bin"'
--AM_CPPFLAGS += -DLOCALSTATEDIR='"$(localstatedir)"'
-+AM_CPPFLAGS += -DLOCALSTATEDIR='"$(localstatedir)"' -I$(top_srcdir)/includes
-
- dist_sysconf_DATA = dhclient.conf.example
- sbin_PROGRAMS = dhclient
-Index: dhcp-4.4.1/omapip/Makefile.am
-===================================================================
---- dhcp-4.4.1.orig/omapip/Makefile.am
-+++ dhcp-4.4.1/omapip/Makefile.am
-@@ -2,6 +2,7 @@ BINDLIBIRSDIR=@BINDLIBIRSDIR@
- BINDLIBDNSDIR=@BINDLIBDNSDIR@
- BINDLIBISCCFGDIR=@BINDLIBISCCFGDIR@
- BINDLIBISCDIR=@BINDLIBISCDIR@
-+AM_CPPFLAGS = -I$(top_srcdir)/includes
-
- lib_LIBRARIES = libomapi.a
- noinst_PROGRAMS = svtest
-Index: dhcp-4.4.1/relay/Makefile.am
-===================================================================
---- dhcp-4.4.1.orig/relay/Makefile.am
-+++ dhcp-4.4.1/relay/Makefile.am
-@@ -1,6 +1,6 @@
- SUBDIRS = . tests
-
--AM_CPPFLAGS = -DLOCALSTATEDIR='"@localstatedir@"'
-+AM_CPPFLAGS = -DLOCALSTATEDIR='"@localstatedir@"' -I$(top_srcdir)/includes
-
- sbin_PROGRAMS = dhcrelay
- dhcrelay_SOURCES = dhcrelay.c
diff --git a/meta/recipes-connectivity/dhcp/dhcp/0005-dhcp-client-fix-invoke-dhclient-script-failed-on-Rea.patch b/meta/recipes-connectivity/dhcp/dhcp/0005-dhcp-client-fix-invoke-dhclient-script-failed-on-Rea.patch
deleted file mode 100644
index dd56381b1d..0000000000
--- a/meta/recipes-connectivity/dhcp/dhcp/0005-dhcp-client-fix-invoke-dhclient-script-failed-on-Rea.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 2e8ff0e4f6d39e346ea86b8c514ab4ccc78fa359 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Tue, 15 Aug 2017 15:24:14 +0800
-Subject: [PATCH 05/11] dhcp-client: fix invoke dhclient-script failed on
- Read-only file system
-
-In read-only file system, '/etc' is on the readonly partition,
-and '/etc/resolv.conf' is symlinked to a separate writable
-partition.
-
-In this situation, we create temp files 'resolv.conf.dhclient-new'
-in /tmp dir.
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- client/scripts/linux | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/client/scripts/linux b/client/scripts/linux
-index 3d447b6..3122a75 100755
---- a/client/scripts/linux
-+++ b/client/scripts/linux
-@@ -40,7 +40,7 @@ make_resolv_conf() {
- # DHCPv4
- if [ -n "$new_domain_search" ] || [ -n "$new_domain_name" ] ||
- [ -n "$new_domain_name_servers" ]; then
-- new_resolv_conf=/etc/resolv.conf.dhclient-new
-+ new_resolv_conf=/tmp/resolv.conf.dhclient-new
- rm -f $new_resolv_conf
-
- if [ -n "$new_domain_name" ]; then
---
-1.8.3.1
-
diff --git a/meta/recipes-connectivity/dhcp/dhcp/0007-Add-configure-argument-to-make-the-libxml2-dependenc.patch b/meta/recipes-connectivity/dhcp/dhcp/0007-Add-configure-argument-to-make-the-libxml2-dependenc.patch
deleted file mode 100644
index feb0754fff..0000000000
--- a/meta/recipes-connectivity/dhcp/dhcp/0007-Add-configure-argument-to-make-the-libxml2-dependenc.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 7107511fd209f08f9a96f8938041ae48f3295895 Mon Sep 17 00:00:00 2001
-From: Christopher Larson <chris_larson@mentor.com>
-Date: Tue, 15 Aug 2017 16:17:49 +0800
-Subject: [PATCH 07/11] Add configure argument to make the libxml2 dependency
- explicit and determinisitic.
-
-Upstream-Status: Pending
-
-Signed-off-by: Christopher Larson <chris_larson@mentor.com>
-
-Rebase to 4.3.6
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- configure.ac | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-Index: dhcp-4.4.1/configure.ac
-===================================================================
---- dhcp-4.4.1.orig/configure.ac
-+++ dhcp-4.4.1/configure.ac
-@@ -642,6 +642,17 @@ if test "$have_nanosleep" = "rt"; then
- LIBS="-lrt $LIBS"
- fi
-
-+AC_ARG_WITH(libxml2,
-+ AS_HELP_STRING([--with-libxml2], [link against libxml2. this is needed if bind was built with xml2 support enabled]),
-+ with_libxml2="$withval", with_libxml2="no")
-+
-+if test x$with_libxml2 != xno; then
-+ AC_SEARCH_LIBS(xmlTextWriterStartElement, [xml2],
-+ [if test x$with_libxml2 != xauto; then
-+ AC_MSG_FAILURE([*** Cannot find xmlTextWriterStartElement with -lxml2 and libxml2 was requested])
-+ fi])
-+fi
-+
- # check for /dev/random (declares HAVE_DEV_RANDOM)
- AC_MSG_CHECKING(for random device)
- AC_ARG_WITH(randomdev,
-Index: dhcp-4.4.1/configure.ac+lt
-===================================================================
---- dhcp-4.4.1.orig/configure.ac+lt
-+++ dhcp-4.4.1/configure.ac+lt
-@@ -909,6 +909,18 @@ elif test "$want_libtool" = "yes" -a "$u
- fi
- AM_CONDITIONAL(INSTALL_BIND, test "$want_install_bind" = "yes")
-
-+AC_ARG_WITH(libxml2,
-+ AS_HELP_STRING([--with-libxml2], [link against libxml2. this is needed if bind was built with xml2 support enabled]),
-+ with_libxml2="$withval", with_libxml2="no")
-+
-+if test x$with_libxml2 != xno; then
-+ AC_SEARCH_LIBS(xmlTextWriterStartElement, [xml2],,
-+ [if test x$with_libxml2 != xauto; then
-+ AC_MSG_FAILURE([*** Cannot find xmlTextWriterStartElement with -lxml2 and libxml2 was requested])
-+ fi])
-+fi
-+
-+
- # OpenLDAP support.
- AC_ARG_WITH(ldap,
- AS_HELP_STRING([--with-ldap],[enable OpenLDAP support in dhcpd (default is no)]),
diff --git a/meta/recipes-connectivity/dhcp/dhcp/0009-remove-dhclient-script-bash-dependency.patch b/meta/recipes-connectivity/dhcp/dhcp/0009-remove-dhclient-script-bash-dependency.patch
deleted file mode 100644
index 912b6d6312..0000000000
--- a/meta/recipes-connectivity/dhcp/dhcp/0009-remove-dhclient-script-bash-dependency.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From f3f8b7726e50e24ef3edf5fa5a17e31d39118d7e Mon Sep 17 00:00:00 2001
-From: Andre McCurdy <armccurdy@gmail.com>
-Date: Tue, 15 Aug 2017 15:49:31 +0800
-Subject: [PATCH 09/11] remove dhclient-script bash dependency
-
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
-
-Rebase to 4.3.6
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- client/scripts/linux | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/client/scripts/linux b/client/scripts/linux
-index 3122a75..1712d7d 100755
---- a/client/scripts/linux
-+++ b/client/scripts/linux
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
- # dhclient-script for Linux. Dan Halbert, March, 1997.
- # Updated for Linux 2.[12] by Brian J. Murrell, January 1999.
- # No guarantees about this. I'm a novice at the details of Linux
---
-1.8.3.1
-
diff --git a/meta/recipes-connectivity/dhcp/dhcp/0012-dhcp-correct-the-intention-for-xml2-lib-search.patch b/meta/recipes-connectivity/dhcp/dhcp/0012-dhcp-correct-the-intention-for-xml2-lib-search.patch
deleted file mode 100644
index 39ba65fbc4..0000000000
--- a/meta/recipes-connectivity/dhcp/dhcp/0012-dhcp-correct-the-intention-for-xml2-lib-search.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 501543b3ef715488a142e3d301ff2733aa33eec7 Mon Sep 17 00:00:00 2001
-From: Awais Belal <awais_belal@mentor.com>
-Date: Wed, 25 Oct 2017 21:00:05 +0500
-Subject: [PATCH] dhcp: correct the intention for xml2 lib search
-
-A missing case breaks the build when libxml2 is
-required and found appropriately. The third argument
-to the function AC_SEARCH_LIB is action-if-found which
-was mistakenly been used for the case where the library
-is not found and hence breaks the configure phase
-where it shoud actually pass.
-We now pass on silently when action-if-found is
-executed.
-
-Upstream-Status: Pending
-
-Signed-off-by: Awais Belal <awais_belal@mentor.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: dhcp-4.4.1/configure.ac
-===================================================================
---- dhcp-4.4.1.orig/configure.ac
-+++ dhcp-4.4.1/configure.ac
-@@ -647,7 +647,7 @@ AC_ARG_WITH(libxml2,
- with_libxml2="$withval", with_libxml2="no")
-
- if test x$with_libxml2 != xno; then
-- AC_SEARCH_LIBS(xmlTextWriterStartElement, [xml2],
-+ AC_SEARCH_LIBS(xmlTextWriterStartElement, [xml2],,
- [if test x$with_libxml2 != xauto; then
- AC_MSG_FAILURE([*** Cannot find xmlTextWriterStartElement with -lxml2 and libxml2 was requested])
- fi])
diff --git a/meta/recipes-connectivity/dhcp/dhcp/0013-fixup_use_libbind.patch b/meta/recipes-connectivity/dhcp/dhcp/0013-fixup_use_libbind.patch
deleted file mode 100644
index fcec010bd0..0000000000
--- a/meta/recipes-connectivity/dhcp/dhcp/0013-fixup_use_libbind.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-lib and include path is hardcoded for use_libbind
-
-use libdir and includedir vars
-
-Upstream-Status: Pending
-Signed-off-by: Armin Kuster <akuster808@gmail.com>
-
-Index: dhcp-4.4.1/configure.ac+lt
-===================================================================
---- dhcp-4.4.1.orig/configure.ac+lt
-+++ dhcp-4.4.1/configure.ac+lt
-@@ -801,22 +801,22 @@ no)
- if test ! -d "$use_libbind"; then
- AC_MSG_ERROR([Cannot find bind directory at $use_libbind])
- fi
-- if test ! -d "$use_libbind/include" -o \
-- ! -f "$use_libbind/include/isc/buffer.h"
-+ if test ! -d "$use_libbind/$includedir" -o \
-+ ! -f "$use_libbind/$includedir/isc/buffer.h"
- then
-- AC_MSG_ERROR([Cannot find bind includes at $use_libbind/include])
-+ AC_MSG_ERROR([Cannot find bind includes at $use_libbind/$includedir])
- fi
-- if test ! -d "$use_libbind/lib" -o \
-- \( ! -f "$use_libbind/lib/libisc.a" -a \
-- ! -f "$use_libbind/lib/libisc.la" \)
-+ if test ! -d "$use_libbind/$libdir" -o \
-+ \( ! -f "$use_libbind/$libdir/libisc.a" -a \
-+ ! -f "$use_libbind/$libdir/libisc.la" \)
- then
-- AC_MSG_ERROR([Cannot find bind libraries at $use_libbind/lib])
-+ AC_MSG_ERROR([Cannot find bind libraries at $use_libbind/$libdir])
- fi
- BINDDIR="$use_libbind"
-- BINDLIBIRSDIR="$BINDDIR/lib"
-- BINDLIBDNSDIR="$BINDDIR/lib"
-- BINDLIBISCCFGDIR="$BINDDIR/lib"
-- BINDLIBISCDIR="$BINDDIR/lib"
-+ BINDLIBIRSDIR="$BINDDIR/$libdir"
-+ BINDLIBDNSDIR="$BINDDIR/$libdir"
-+ BINDLIBISCCFGDIR="$BINDDIR/$libdir"
-+ BINDLIBISCDIR="$BINDDIR/$libdir"
- DISTCHECK_LIBBIND_CONFIGURE_FLAG="--with-libbind=$use_libbind"
- ;;
- esac
-@@ -856,14 +856,14 @@ AC_ARG_ENABLE(libtool,
-
- if test "$use_libbind" != "no"; then
- if test "$want_libtool" = "yes" -a \
-- ! -f "$use_libbind/lib/libisc.la"
-+ ! -f "$use_libbind/$libdir/libisc.la"
- then
-- AC_MSG_ERROR([Cannot find dynamic libraries at $use_libbind/lib])
-+ AC_MSG_ERROR([Cannot find dynamic libraries at $use_libbind/$libdir])
- fi
- if test "$want_libtool" = "no" -a \
-- ! -f "$use_libbind/lib/libisc.a"
-+ ! -f "$use_libbind/$libdir/libisc.a"
- then
-- AC_MSG_ERROR([Cannot find static libraries at $use_libbind/lib])
-+ AC_MSG_ERROR([Cannot find static libraries at $use_libbind/$libdir])
- fi
- fi
-
diff --git a/meta/recipes-connectivity/dhcp/dhcp_4.4.2.bb b/meta/recipes-connectivity/dhcp/dhcp_4.4.2.bb
deleted file mode 100644
index b56a204821..0000000000
--- a/meta/recipes-connectivity/dhcp/dhcp_4.4.2.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-require dhcp.inc
-
-SRC_URI += "file://0001-define-macro-_PATH_DHCPD_CONF-and-_PATH_DHCLIENT_CON.patch \
- file://0002-dhclient-dbus.patch \
- file://0003-link-with-lcrypto.patch \
- file://0004-Fix-out-of-tree-builds.patch \
- file://0005-dhcp-client-fix-invoke-dhclient-script-failed-on-Rea.patch \
- file://0007-Add-configure-argument-to-make-the-libxml2-dependenc.patch \
- file://0009-remove-dhclient-script-bash-dependency.patch \
- file://0012-dhcp-correct-the-intention-for-xml2-lib-search.patch \
- file://0013-fixup_use_libbind.patch \
- file://0001-workaround-busybox-limitation-in-linux-dhclient-script.patch \
-"
-
-SRC_URI[md5sum] = "2afdaf8498dc1edaf3012efdd589b3e1"
-SRC_URI[sha256sum] = "1a7ccd64a16e5e68f7b5e0f527fd07240a2892ea53fe245620f4f5f607004521"
-
-LDFLAGS_append = " -pthread"
-
-PACKAGECONFIG ?= ""
-PACKAGECONFIG[bind-httpstats] = "--with-libxml2,--without-libxml2,libxml2"
diff --git a/meta/recipes-connectivity/dhcp/files/default-relay b/meta/recipes-connectivity/dhcp/files/default-relay
deleted file mode 100644
index 7961f014be..0000000000
--- a/meta/recipes-connectivity/dhcp/files/default-relay
+++ /dev/null
@@ -1,12 +0,0 @@
-# Defaults for dhcp-relay initscript
-# sourced by /etc/init.d/dhcp-relay
-
-# What servers should the DHCP relay forward requests to?
-# e.g: SERVERS="192.168.0.1"
-SERVERS=""
-
-# On what interfaces should the DHCP relay (dhrelay) serve DHCP requests?
-INTERFACES=""
-
-# Additional options that are passed to the DHCP relay daemon?
-OPTIONS=""
diff --git a/meta/recipes-connectivity/dhcp/files/default-server b/meta/recipes-connectivity/dhcp/files/default-server
deleted file mode 100644
index 0385d16992..0000000000
--- a/meta/recipes-connectivity/dhcp/files/default-server
+++ /dev/null
@@ -1,7 +0,0 @@
-# Defaults for dhcp initscript
-# sourced by /etc/init.d/dhcp-server
-# installed at /etc/default/dhcp-server by the maintainer scripts
-
-# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
-# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
-INTERFACES=""
diff --git a/meta/recipes-connectivity/dhcp/files/dhclient-systemd-wrapper b/meta/recipes-connectivity/dhcp/files/dhclient-systemd-wrapper
deleted file mode 100644
index 7d0e224a1d..0000000000
--- a/meta/recipes-connectivity/dhcp/files/dhclient-systemd-wrapper
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/sh
-
-# In case the interface is used for nfs, skip it.
-nfsroot=0
-interfaces=""
-exec 9<&0 < /proc/mounts
-while read dev mtpt fstype rest; do
- if test $mtpt = "/" ; then
- case $fstype in
- nfs | nfs4)
- nfsroot=1
- nfs_addr=`echo $rest | sed -e 's/^.*addr=\([0-9.]*\).*$/\1/'`
- break
- ;;
- *)
- ;;
- esac
- fi
-done
-exec 0<&9 9<&-
-
-if [ $nfsroot -eq 0 ]; then
- interfaces="$INTERFACES"
-else
- if [ -x /bin/ip -o -x /sbin/ip ] ; then
- nfs_iface=`ip route get $nfs_addr | grep dev | sed -e 's/^.*dev \([-a-z0-9.]*\).*$/\1/'`
- fi
- for i in $INTERFACES; do
- if test "x$i" = "x$nfs_iface"; then
- echo "dhclient skipping nfsroot interface $i"
- else
- interfaces="$interfaces $i"
- fi
- done
-fi
-
-if test "x$interfaces" != "x"; then
- /sbin/dhclient -d -cf /etc/dhcp/dhclient.conf -q -lf /var/lib/dhcp/dhclient.leases $interfaces
-fi
diff --git a/meta/recipes-connectivity/dhcp/files/dhclient.conf b/meta/recipes-connectivity/dhcp/files/dhclient.conf
deleted file mode 100644
index 0e6dcf96c2..0000000000
--- a/meta/recipes-connectivity/dhcp/files/dhclient.conf
+++ /dev/null
@@ -1,50 +0,0 @@
-# Configuration file for /sbin/dhclient, which is included in Debian's
-# dhcp3-client package.
-#
-# This is a sample configuration file for dhclient. See dhclient.conf's
-# man page for more information about the syntax of this file
-# and a more comprehensive list of the parameters understood by
-# dhclient.
-#
-# Normally, if the DHCP server provides reasonable information and does
-# not leave anything out (like the domain name, for example), then
-# few changes must be made to this file, if any.
-#
-
-#send host-name "andare.fugue.com";
-#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
-#send dhcp-lease-time 3600;
-#supersede domain-name "fugue.com home.vix.com";
-#prepend domain-name-servers 127.0.0.1;
-request subnet-mask, broadcast-address, time-offset, routers,
- domain-name, domain-name-servers, host-name,
- netbios-name-servers, netbios-scope;
-#require subnet-mask, domain-name-servers;
-#timeout 60;
-#retry 60;
-#reboot 10;
-#select-timeout 5;
-#initial-interval 2;
-#script "/etc/dhcp3/dhclient-script";
-#media "-link0 -link1 -link2", "link0 link1";
-#reject 192.33.137.209;
-
-#alias {
-# interface "eth0";
-# fixed-address 192.5.5.213;
-# option subnet-mask 255.255.255.255;
-#}
-
-#lease {
-# interface "eth0";
-# fixed-address 192.33.137.200;
-# medium "link0 link1";
-# option host-name "andare.swiftmedia.com";
-# option subnet-mask 255.255.255.0;
-# option broadcast-address 192.33.137.255;
-# option routers 192.33.137.250;
-# option domain-name-servers 127.0.0.1;
-# renew 2 2000/1/12 00:00:01;
-# rebind 2 2000/1/12 00:00:01;
-# expire 2 2000/1/12 00:00:01;
-#}
diff --git a/meta/recipes-connectivity/dhcp/files/dhclient.service b/meta/recipes-connectivity/dhcp/files/dhclient.service
deleted file mode 100644
index 9ddb4d1dfe..0000000000
--- a/meta/recipes-connectivity/dhcp/files/dhclient.service
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=Dynamic Host Configuration Protocol (DHCP)
-Wants=network.target
-Before=network.target
-After=systemd-udevd.service
-
-[Service]
-EnvironmentFile=-@SYSCONFDIR@/default/dhcp-client
-ExecStart=@BASE_SBINDIR@/dhclient-systemd-wrapper
-RemainAfterExit=yes
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta/recipes-connectivity/dhcp/files/dhcpd.conf b/meta/recipes-connectivity/dhcp/files/dhcpd.conf
deleted file mode 100644
index 0001c0f00e..0000000000
--- a/meta/recipes-connectivity/dhcp/files/dhcpd.conf
+++ /dev/null
@@ -1,108 +0,0 @@
-#
-# Sample configuration file for ISC dhcpd for Debian
-#
-# $Id: dhcpd.conf,v 1.1.1.1 2002/05/21 00:07:44 peloy Exp $
-#
-
-# The ddns-updates-style parameter controls whether or not the server will
-# attempt to do a DNS update when a lease is confirmed. We default to the
-# behavior of the version 2 packages ('none', since DHCP v2 didn't
-# have support for DDNS.)
-ddns-update-style none;
-
-# option definitions common to all supported networks...
-option domain-name "example.org";
-option domain-name-servers ns1.example.org, ns2.example.org;
-
-default-lease-time 600;
-max-lease-time 7200;
-
-# If this DHCP server is the official DHCP server for the local
-# network, the authoritative directive should be uncommented.
-#authoritative;
-
-# Use this to send dhcp log messages to a different log file (you also
-# have to hack syslog.conf to complete the redirection).
-log-facility local7;
-
-# No service will be given on this subnet, but declaring it helps the
-# DHCP server to understand the network topology.
-
-#subnet 10.152.187.0 netmask 255.255.255.0 {
-#}
-
-# This is a very basic subnet declaration.
-
-#subnet 10.254.239.0 netmask 255.255.255.224 {
-# range 10.254.239.10 10.254.239.20;
-# option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
-#}
-
-# This declaration allows BOOTP clients to get dynamic addresses,
-# which we don't really recommend.
-
-#subnet 10.254.239.32 netmask 255.255.255.224 {
-# range dynamic-bootp 10.254.239.40 10.254.239.60;
-# option broadcast-address 10.254.239.31;
-# option routers rtr-239-32-1.example.org;
-#}
-
-# A slightly different configuration for an internal subnet.
-#subnet 10.5.5.0 netmask 255.255.255.224 {
-# range 10.5.5.26 10.5.5.30;
-# option domain-name-servers ns1.internal.example.org;
-# option domain-name "internal.example.org";
-# option routers 10.5.5.1;
-# option broadcast-address 10.5.5.31;
-# default-lease-time 600;
-# max-lease-time 7200;
-#}
-
-# Hosts which require special configuration options can be listed in
-# host statements. If no address is specified, the address will be
-# allocated dynamically (if possible), but the host-specific information
-# will still come from the host declaration.
-
-#host passacaglia {
-# hardware ethernet 0:0:c0:5d:bd:95;
-# filename "vmunix.passacaglia";
-# server-name "toccata.fugue.com";
-#}
-
-# Fixed IP addresses can also be specified for hosts. These addresses
-# should not also be listed as being available for dynamic assignment.
-# Hosts for which fixed IP addresses have been specified can boot using
-# BOOTP or DHCP. Hosts for which no fixed address is specified can only
-# be booted with DHCP, unless there is an address range on the subnet
-# to which a BOOTP client is connected which has the dynamic-bootp flag
-# set.
-#host fantasia {
-# hardware ethernet 08:00:07:26:c0:a5;
-# fixed-address fantasia.fugue.com;
-#}
-
-# You can declare a class of clients and then do address allocation
-# based on that. The example below shows a case where all clients
-# in a certain class get addresses on the 10.17.224/24 subnet, and all
-# other clients get addresses on the 10.0.29/24 subnet.
-
-#class "foo" {
-# match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
-#}
-
-#shared-network 224-29 {
-# subnet 10.17.224.0 netmask 255.255.255.0 {
-# option routers rtr-224.example.org;
-# }
-# subnet 10.0.29.0 netmask 255.255.255.0 {
-# option routers rtr-29.example.org;
-# }
-# pool {
-# allow members of "foo";
-# range 10.17.224.10 10.17.224.250;
-# }
-# pool {
-# deny members of "foo";
-# range 10.0.29.10 10.0.29.230;
-# }
-#}
diff --git a/meta/recipes-connectivity/dhcp/files/dhcpd.service b/meta/recipes-connectivity/dhcp/files/dhcpd.service
deleted file mode 100644
index ae4f93eca5..0000000000
--- a/meta/recipes-connectivity/dhcp/files/dhcpd.service
+++ /dev/null
@@ -1,15 +0,0 @@
-[Unit]
-Description=DHCPv4 Server Daemon
-Documentation=man:dhcpd(8) man:dhcpd.conf(5)
-After=network.target
-After=time-sync.target
-
-[Service]
-PIDFile=@localstatedir@/run/dhcpd.pid
-EnvironmentFile=@SYSCONFDIR@/default/dhcp-server
-EnvironmentFile=-@SYSCONFDIR@/sysconfig/dhcp-server
-ExecStartPre=@base_bindir@/touch @localstatedir@/lib/dhcp/dhcpd.leases
-ExecStart=@SBINDIR@/dhcpd -f -cf @SYSCONFDIR@/dhcp/dhcpd.conf -pf @localstatedir@/run/dhcpd.pid $DHCPDARGS -q $INTERFACES
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta/recipes-connectivity/dhcp/files/dhcpd6.service b/meta/recipes-connectivity/dhcp/files/dhcpd6.service
deleted file mode 100644
index 52a6224dc2..0000000000
--- a/meta/recipes-connectivity/dhcp/files/dhcpd6.service
+++ /dev/null
@@ -1,15 +0,0 @@
-[Unit]
-Description=DHCPv6 Server Daemon
-Documentation=man:dhcpd(8) man:dhcpd.conf(5)
-After=network.target
-After=time-sync.target
-
-[Service]
-PIDFile=@localstatedir@/run/dhcpd6.pid
-EnvironmentFile=@SYSCONFDIR@/default/dhcp-server
-EnvironmentFile=-@SYSCONFDIR@/sysconfig/dhcpd6
-ExecStartPre=@base_bindir@/touch @localstatedir@/lib/dhcp/dhcpd6.leases
-ExecStart=@SBINDIR@/dhcpd -f -6 -cf @SYSCONFDIR@/dhcp/dhcpd6.conf -pf @localstatedir@/run/dhcpd6.pid $DHCPDARGS -q $INTERFACES
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta/recipes-connectivity/dhcp/files/dhcrelay.service b/meta/recipes-connectivity/dhcp/files/dhcrelay.service
deleted file mode 100644
index 15ff927d34..0000000000
--- a/meta/recipes-connectivity/dhcp/files/dhcrelay.service
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description=DHCP Relay Agent Daemon
-After=network.target
-
-[Service]
-EnvironmentFile=@SYSCONFDIR@/default/dhcp-relay
-ExecStart=@SBINDIR@/dhcrelay -d --no-pid -q $SERVERS
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta/recipes-connectivity/dhcp/files/init-relay b/meta/recipes-connectivity/dhcp/files/init-relay
deleted file mode 100644
index 019a7e84cf..0000000000
--- a/meta/recipes-connectivity/dhcp/files/init-relay
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/sh
-#
-# $Id: dhcp3-relay,v 1.1 2004/04/16 15:41:08 ml Exp $
-#
-
-# It is not safe to start if we don't have a default configuration...
-if [ ! -f /etc/default/dhcp-relay ]; then
- echo "/etc/default/dhcp-relay does not exist! - Aborting..."
- echo "create this file to fix the problem."
- exit 1
-fi
-
-# Read init script configuration (interfaces the daemon should listen on
-# and the DHCP server we should forward requests to.)
-. /etc/default/dhcp-relay
-
-# Build command line for interfaces (will be passed to dhrelay below.)
-IFCMD=""
-if test "$INTERFACES" != ""; then
- for I in $INTERFACES; do
- IFCMD=${IFCMD}"-i "${I}" "
- done
-fi
-
-DHCRELAYPID=/var/run/dhcrelay.pid
-
-case "$1" in
- start)
- start-stop-daemon -S -x /usr/sbin/dhcrelay -- -q $OPTIONS $IFCMD $SERVERS
- ;;
- stop)
- start-stop-daemon -K -x /usr/sbin/dhcrelay
- ;;
- restart | force-reload)
- $0 stop
- sleep 2
- $0 start
- ;;
- *)
- echo "Usage: /etc/init.d/dhcp-relay {start|stop|restart|force-reload}"
- exit 1
-esac
-
-exit 0
diff --git a/meta/recipes-connectivity/dhcp/files/init-server b/meta/recipes-connectivity/dhcp/files/init-server
deleted file mode 100644
index 5e693adf78..0000000000
--- a/meta/recipes-connectivity/dhcp/files/init-server
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/sh
-#
-# $Id: dhcp3-server.init.d,v 1.4 2003/07/13 19:12:41 mdz Exp $
-#
-
-test -f /usr/sbin/dhcpd || exit 0
-
-# It is not safe to start if we don't have a default configuration...
-if [ ! -f /etc/default/dhcp-server ]; then
- echo "/etc/default/dhcp-server does not exist! - Aborting..."
- exit 0
-fi
-
-# Read init script configuration (so far only interfaces the daemon
-# should listen on.)
-. /etc/default/dhcp-server
-
-case "$1" in
- start)
- echo -n "Starting DHCP server: "
- test -d /var/lib/dhcp/ || mkdir -p /var/lib/dhcp/
- test -f /var/lib/dhcp/dhcpd.leases || touch /var/lib/dhcp/dhcpd.leases
- start-stop-daemon -S -x /usr/sbin/dhcpd -- -q $INTERFACES -user dhcp -group dhcp
- echo "."
- ;;
- stop)
- echo -n "Stopping DHCP server: dhcpd3"
- start-stop-daemon -K -x /usr/sbin/dhcpd
- echo "."
- ;;
- restart | force-reload)
- $0 stop
- sleep 2
- $0 start
- if [ "$?" != "0" ]; then
- exit 1
- fi
- ;;
- *)
- echo "Usage: /etc/init.d/dhcp-server {start|stop|restart|force-reload}"
- exit 1
-esac
-
-exit 0
diff --git a/meta/recipes-connectivity/dhcpcd/dhcpcd_9.2.0.bb b/meta/recipes-connectivity/dhcpcd/dhcpcd_9.2.0.bb
new file mode 100644
index 0000000000..13467189b4
--- /dev/null
+++ b/meta/recipes-connectivity/dhcpcd/dhcpcd_9.2.0.bb
@@ -0,0 +1,56 @@
+SECTION = "console/network"
+SUMMARY = "dhcpcd - a DHCP client"
+DESCRIPTION = "dhcpcd runs on your machine and silently configures your \
+ computer to work on the attached networks without trouble \
+ and mostly without configuration."
+
+HOMEPAGE = "http://roy.marples.name/projects/dhcpcd/"
+
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=9674cc803c5d71306941e6e8b5c002f2"
+
+UPSTREAM_CHECK_URI = "https://roy.marples.name/downloads/dhcpcd/"
+
+SRC_URI = "https://roy.marples.name/downloads/${BPN}/${BPN}-${PV}.tar.xz \
+ file://0001-remove-INCLUDEDIR-to-prevent-build-issues.patch \
+ file://dhcpcd.service \
+ file://dhcpcd@.service \
+ "
+
+SRC_URI[sha256sum] = "fcb2d19672d445bbfd38678fdee4f556ef967a3ea6bd81092d10545df2cb9666"
+
+inherit pkgconfig autotools-brokensep systemd useradd
+
+SYSTEMD_SERVICE_${PN} = "dhcpcd.service"
+
+PACKAGECONFIG ?= "udev ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
+
+PACKAGECONFIG[udev] = "--with-udev,--without-udev,udev,udev"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6"
+# ntp conflicts with chrony
+PACKAGECONFIG[ntp] = "--with-hook=ntp, , ,ntp"
+PACKAGECONFIG[chrony] = "--with-hook=ntp, , ,chrony"
+PACKAGECONFIG[ypbind] = "--with-eghook=yp, , ,ypbind-mt"
+
+EXTRA_OECONF = "--enable-ipv4 \
+ --dbdir=${localstatedir}/lib/${BPN} \
+ --runstatedir=/run \
+ --enable-privsep \
+ --privsepuser=dhcpcd \
+ --with-hooks \
+ --with-eghooks \
+ "
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "--system -d ${localstatedir}/lib/${BPN} -M -s /bin/false -U dhcpcd"
+
+do_install_append () {
+ # install systemd unit files
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/dhcpcd*.service ${D}${systemd_unitdir}/system
+
+ chmod 700 ${D}${localstatedir}/lib/${BPN}
+ chown dhcpcd:dhcpcd ${D}${localstatedir}/lib/${BPN}
+}
+
+FILES_${PN}-dbg += "${libdir}/dhcpcd/dev/.debug"
diff --git a/meta/recipes-connectivity/dhcpcd/files/0001-remove-INCLUDEDIR-to-prevent-build-issues.patch b/meta/recipes-connectivity/dhcpcd/files/0001-remove-INCLUDEDIR-to-prevent-build-issues.patch
new file mode 100644
index 0000000000..37d2344438
--- /dev/null
+++ b/meta/recipes-connectivity/dhcpcd/files/0001-remove-INCLUDEDIR-to-prevent-build-issues.patch
@@ -0,0 +1,45 @@
+From aa9e3982c1e75ad49945a62f5e262279c7a905a4 Mon Sep 17 00:00:00 2001
+From: Stefano Cappa <stefano.cappa.ks89@gmail.com>
+Date: Sun, 13 Jan 2019 01:50:52 +0100
+Subject: [PATCH] remove INCLUDEDIR to prevent build issues
+
+Upstream-Status: Pending
+
+Signed-off-by: Stefano Cappa <stefano.cappa.ks89@gmail.com>
+---
+ configure | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/configure b/configure
+index 6c81e0db..32dea2b4 100755
+--- a/configure
++++ b/configure
+@@ -20,7 +20,6 @@ BUILD=
+ HOST=
+ HOSTCC=
+ TARGET=
+-INCLUDEDIR=
+ DEBUG=
+ FORK=
+ STATIC=
+@@ -72,7 +71,6 @@ for x do
+ --mandir) MANDIR=$var;;
+ --datadir) DATADIR=$var;;
+ --with-ccopts|CFLAGS) CFLAGS=$var;;
+- -I|--includedir) INCLUDEDIR="$INCLUDEDIR${INCLUDEDIR:+ }-I$var";;
+ CC) CC=$var;;
+ CPPFLAGS) CPPFLAGS=$var;;
+ PKG_CONFIG) PKG_CONFIG=$var;;
+@@ -309,9 +307,6 @@ if [ -n "$CPPFLAGS" ]; then
+ echo "CPPFLAGS=" >>$CONFIG_MK
+ echo "CPPFLAGS+= $CPPFLAGS" >>$CONFIG_MK
+ fi
+-if [ -n "$INCLUDEDIR" ]; then
+- echo "CPPFLAGS+= $INCLUDEDIR" >>$CONFIG_MK
+-fi
+ if [ -n "$LDFLAGS" ]; then
+ echo "LDFLAGS=" >>$CONFIG_MK
+ echo "LDFLAGS+= $LDFLAGS" >>$CONFIG_MK
+--
+2.17.2 (Apple Git-113)
+
diff --git a/meta/recipes-connectivity/dhcpcd/files/dhcpcd.service b/meta/recipes-connectivity/dhcpcd/files/dhcpcd.service
new file mode 100644
index 0000000000..bbed6d85c4
--- /dev/null
+++ b/meta/recipes-connectivity/dhcpcd/files/dhcpcd.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=A minimalistic network configuration daemon with DHCPv4, rdisc and DHCPv6 support
+Wants=network.target
+Before=network.target
+Conflicts=connman.service
+
+[Service]
+ExecStart=/usr/sbin/dhcpcd -q --nobackground
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta/recipes-connectivity/dhcpcd/files/dhcpcd@.service b/meta/recipes-connectivity/dhcpcd/files/dhcpcd@.service
new file mode 100644
index 0000000000..389b076c38
--- /dev/null
+++ b/meta/recipes-connectivity/dhcpcd/files/dhcpcd@.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=dhcpcd on %I
+Wants=network.target
+Before=network.target
+BindsTo=sys-subsystem-net-devices-%i.device
+After=sys-subsystem-net-devices-%i.device
+Conflicts=connman.service
+
+[Service]
+Type=forking
+PIDFile=/run/dhcpcd/%I.pid
+ExecStart=/usr/sbin/dhcpcd -q %I
+ExecStop=/usr/sbin/dhcpcd -x %I
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta/recipes-connectivity/inetutils/inetutils/0001-ftpd-telnetd-Fix-multiple-definitions-of-errcatch-an.patch b/meta/recipes-connectivity/inetutils/inetutils/0001-ftpd-telnetd-Fix-multiple-definitions-of-errcatch-an.patch
new file mode 100644
index 0000000000..49d319f59d
--- /dev/null
+++ b/meta/recipes-connectivity/inetutils/inetutils/0001-ftpd-telnetd-Fix-multiple-definitions-of-errcatch-an.patch
@@ -0,0 +1,58 @@
+From 7d39930468e272c740b0eed3c7e5b7fb3abf29e8 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 5 Aug 2020 10:36:22 -0700
+Subject: [PATCH] ftpd,telnetd: Fix multiple definitions of errcatch and not42
+
+This helps fix build failures when -fno-common option is used
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ ftpd/extern.h | 2 +-
+ ftpd/ftpcmd.c | 1 +
+ telnetd/utility.c | 2 +-
+ 3 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/ftpd/extern.h b/ftpd/extern.h
+index ab33cf3..91dbbee 100644
+--- a/ftpd/extern.h
++++ b/ftpd/extern.h
+@@ -90,7 +90,7 @@ extern void user (const char *);
+ extern char *sgetsave (const char *);
+
+ /* Exported from ftpd.c. */
+-jmp_buf errcatch;
++extern jmp_buf errcatch;
+ extern struct sockaddr_storage data_dest;
+ extern socklen_t data_dest_len;
+ extern struct sockaddr_storage his_addr;
+diff --git a/ftpd/ftpcmd.c b/ftpd/ftpcmd.c
+index beb1f06..d272e9d 100644
+--- a/ftpd/ftpcmd.c
++++ b/ftpd/ftpcmd.c
+@@ -106,6 +106,7 @@
+ #endif
+
+ off_t restart_point;
++jmp_buf errcatch;
+
+ static char cbuf[512]; /* Command Buffer. */
+ static char *fromname;
+diff --git a/telnetd/utility.c b/telnetd/utility.c
+index e7ffb8e..46bf91e 100644
+--- a/telnetd/utility.c
++++ b/telnetd/utility.c
+@@ -63,7 +63,7 @@ static int ncc;
+ static char ptyibuf[BUFSIZ], *ptyip;
+ static int pcc;
+
+-int not42;
++extern int not42;
+
+ static int
+ readstream (int p, char *ibuf, int bufsize)
+--
+2.28.0
+
diff --git a/meta/recipes-connectivity/inetutils/inetutils_1.9.4.bb b/meta/recipes-connectivity/inetutils/inetutils_1.9.4.bb
index 684fbe09e1..adf6d4414e 100644
--- a/meta/recipes-connectivity/inetutils/inetutils_1.9.4.bb
+++ b/meta/recipes-connectivity/inetutils/inetutils_1.9.4.bb
@@ -23,6 +23,7 @@ SRC_URI = "${GNU_MIRROR}/inetutils/inetutils-${PV}.tar.gz \
file://inetutils-only-check-pam_appl.h-when-pam-enabled.patch \
file://0001-rcp-fix-to-work-with-large-files.patch \
file://fix-buffer-fortify-tfpt.patch \
+ file://0001-ftpd-telnetd-Fix-multiple-definitions-of-errcatch-an.patch \
"
SRC_URI[md5sum] = "04852c26c47cc8c6b825f2b74f191f52"
@@ -143,11 +144,15 @@ ALTERNATIVE_${PN}-traceroute = "traceroute"
ALTERNATIVE_${PN}-hostname = "hostname"
ALTERNATIVE_LINK_NAME[hostname] = "${base_bindir}/hostname"
-ALTERNATIVE_${PN}-doc = "hostname.1 dnsdomainname.1 logger.1 syslogd.8"
+ALTERNATIVE_${PN}-doc = "hostname.1 dnsdomainname.1 logger.1 syslogd.8 \
+ tftpd.8 tftp.1 telnetd.8"
ALTERNATIVE_LINK_NAME[hostname.1] = "${mandir}/man1/hostname.1"
ALTERNATIVE_LINK_NAME[dnsdomainname.1] = "${mandir}/man1/dnsdomainname.1"
ALTERNATIVE_LINK_NAME[logger.1] = "${mandir}/man1/logger.1"
ALTERNATIVE_LINK_NAME[syslogd.8] = "${mandir}/man8/syslogd.8"
+ALTERNATIVE_LINK_NAME[telnetd.8] = "${mandir}/man8/telnetd.8"
+ALTERNATIVE_LINK_NAME[tftpd.8] = "${mandir}/man8/tftpd.8"
+ALTERNATIVE_LINK_NAME[tftp.1] = "${mandir}/man1/tftp.1"
ALTERNATIVE_${PN}-ifconfig = "ifconfig"
ALTERNATIVE_LINK_NAME[ifconfig] = "${base_sbindir}/ifconfig"
diff --git a/meta/recipes-connectivity/iproute2/iproute2/0001-devlink.c-add-missing-include.patch b/meta/recipes-connectivity/iproute2/iproute2/0001-devlink.c-add-missing-include.patch
new file mode 100644
index 0000000000..fdd8bbfb3c
--- /dev/null
+++ b/meta/recipes-connectivity/iproute2/iproute2/0001-devlink.c-add-missing-include.patch
@@ -0,0 +1,24 @@
+From ce39396d4617874323f6039a5b476e44bf552908 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Sat, 6 Jun 2020 18:00:13 +0000
+Subject: [PATCH] devlink.c: add missing include
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
+---
+ devlink/devlink.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/devlink/devlink.c b/devlink/devlink.c
+index 0982fae..93dc01c 100644
+--- a/devlink/devlink.c
++++ b/devlink/devlink.c
+@@ -33,6 +33,7 @@
+ #include <sys/select.h>
+ #include <sys/socket.h>
+ #include <sys/types.h>
++#include <signal.h>
+
+ #include "version.h"
+ #include "list.h"
diff --git a/meta/recipes-connectivity/iproute2/iproute2/0001-libc-compat.h-add-musl-workaround.patch b/meta/recipes-connectivity/iproute2/iproute2/0001-libc-compat.h-add-musl-workaround.patch
index 50c4bfb0f2..74e3de1ce9 100644
--- a/meta/recipes-connectivity/iproute2/iproute2/0001-libc-compat.h-add-musl-workaround.patch
+++ b/meta/recipes-connectivity/iproute2/iproute2/0001-libc-compat.h-add-musl-workaround.patch
@@ -1,4 +1,4 @@
-From b7d96340c55afb7023ded0041107c63dbd886196 Mon Sep 17 00:00:00 2001
+From c25f8d1f7a6203dfeb10b39f80ffd314bb84a58d Mon Sep 17 00:00:00 2001
From: Baruch Siach <baruch@tkos.co.il>
Date: Thu, 22 Dec 2016 15:26:30 +0200
Subject: [PATCH] libc-compat.h: add musl workaround
@@ -14,15 +14,16 @@ https://git.buildroot.net/buildroot/tree/package/iproute2/0001-Add-the-musl-work
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Maxin B. John <maxin.john@intel.com>
+
---
include/uapi/linux/libc-compat.h | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h
-index f38571d..30f0b67 100644
+index a159991..22198fa 100644
--- a/include/uapi/linux/libc-compat.h
+++ b/include/uapi/linux/libc-compat.h
-@@ -49,10 +49,12 @@
+@@ -50,10 +50,12 @@
#define _LIBC_COMPAT_H
/* We have included glibc headers... */
@@ -36,6 +37,3 @@ index f38571d..30f0b67 100644
/* GLIBC headers included first so don't define anything
* that would already be defined. */
---
-2.4.0
-
diff --git a/meta/recipes-connectivity/iproute2/iproute2_5.5.0.bb b/meta/recipes-connectivity/iproute2/iproute2_5.8.0.bb
index ad0ab13c9a..3a590f9122 100644
--- a/meta/recipes-connectivity/iproute2/iproute2_5.5.0.bb
+++ b/meta/recipes-connectivity/iproute2/iproute2_5.8.0.bb
@@ -2,11 +2,11 @@ require iproute2.inc
SRC_URI = "${KERNELORG_MIRROR}/linux/utils/net/${BPN}/${BP}.tar.xz \
file://0001-libc-compat.h-add-musl-workaround.patch \
- "
+ file://0001-devlink.c-add-missing-include.patch \
+ "
-SRC_URI[md5sum] = "ee8e2cdb416d4a8ef39525d39ab7c2d0"
-SRC_URI[sha256sum] = "bac543435cac208a11db44c9cc8e35aa902befef8750594654ee71941c388f7b"
+SRC_URI[sha256sum] = "cfcd1f890290f8c8afcc91d9444ad929b9252c16f9ab3f286c50dd3c59dc646e"
# CFLAGS are computed in Makefile and reference CCOPTS
#
-EXTRA_OEMAKE_append = " CCOPTS='${CFLAGS} -fcommon'"
+EXTRA_OEMAKE_append = " CCOPTS='${CFLAGS}'"
diff --git a/meta/recipes-connectivity/iw/iw_5.4.bb b/meta/recipes-connectivity/iw/iw_5.8.bb
index 9f58e49709..97ca66d66f 100644
--- a/meta/recipes-connectivity/iw/iw_5.4.bb
+++ b/meta/recipes-connectivity/iw/iw_5.8.bb
@@ -14,8 +14,8 @@ SRC_URI = "http://www.kernel.org/pub/software/network/iw/${BP}.tar.gz \
file://separate-objdir.patch \
"
-SRC_URI[md5sum] = "08a4f581a39dc62fa85d3af796d844b6"
-SRC_URI[sha256sum] = "943cd2446a6c7242fded3766d054ab2a214a3514b9a8b7e942fed8fb13c1370c"
+SRC_URI[md5sum] = "98129d64212bdbb408f009c56ed5c62a"
+SRC_URI[sha256sum] = "cd9125c7e560926d66b09977fe0f75e5365ffd05a15df67d86a421dc76f96a96"
inherit pkgconfig
diff --git a/meta/recipes-connectivity/kea/files/0001-keactrl.in-create-var-lib-kea-and-var-run-kea-folder.patch b/meta/recipes-connectivity/kea/files/0001-keactrl.in-create-var-lib-kea-and-var-run-kea-folder.patch
new file mode 100644
index 0000000000..ab3fd83946
--- /dev/null
+++ b/meta/recipes-connectivity/kea/files/0001-keactrl.in-create-var-lib-kea-and-var-run-kea-folder.patch
@@ -0,0 +1,39 @@
+From 639dc25cdabc9d1846000a542c8cc19158b69994 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Fri, 18 Sep 2020 08:18:08 +0000
+Subject: [PATCH] keactrl.in: create /var/lib/kea and /var/run/kea folder
+
+Create /var/lib/kea and /var/run/kea folder to fix below error:
+ # keactrl start
+ INFO/keactrl: Starting /usr/sbin/kea-dhcp4 -c /etc/kea/kea-dhcp4.conf
+ INFO/keactrl: Starting /usr/sbin/kea-dhcp6 -c /etc/kea/kea-dhcp6.conf
+ INFO/keactrl: Starting /usr/sbin/kea-ctrl-agent -c /etc/kea/kea-ctrl-agent.conf
+ Unable to use interprocess sync lockfile (No such file or directory): /var/run/kea/logger_lockfile
+ Service failed: Launch failed: Unable to open PID file '/var/run/kea/kea-ctrl-agent.kea-ctrl-agent.pid' for write
+ [snip]
+ ERROR [kea-dhcp4.dhcp4/615.140641792751488] DHCP4_CONFIG_LOAD_FAIL configuration error using file: /etc/kea/kea-dhcp4.conf, reason: Unable to open database: unable to open '/var/lib/kea/kea-leases4.csv'
+ [snip]
+
+Upstream-Status: Inappropriate [config specific]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ src/bin/keactrl/keactrl.in | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/bin/keactrl/keactrl.in b/src/bin/keactrl/keactrl.in
+index 12b2b3f..47cf6f9 100644
+--- a/src/bin/keactrl/keactrl.in
++++ b/src/bin/keactrl/keactrl.in
+@@ -482,6 +482,8 @@ case ${command} in
+ # The variables (dhcp4_srv, dhcp6_serv, dhcp_ddns_srv etc) are set in the
+ # keactrl.conf file that shellcheck is unable to read.
+ # shellcheck disable=SC2154
++ [ -d @LOCALSTATEDIR@/run/kea ] || mkdir -p @LOCALSTATEDIR@/run/kea
++ [ -d @LOCALSTATEDIR@/lib/kea ] || mkdir -p @LOCALSTATEDIR@/lib/kea
+ run_conditional "dhcp4" "start_server ${dhcp4_srv} -c ${kea_dhcp4_config_file} ${args}" 1
+ run_conditional "dhcp6" "start_server ${dhcp6_srv} -c ${kea_dhcp6_config_file} ${args}" 1
+ # shellcheck disable=SC2154
+--
+2.26.2
+
diff --git a/meta/recipes-connectivity/kea/files/fix-multilib-conflict.patch b/meta/recipes-connectivity/kea/files/fix-multilib-conflict.patch
new file mode 100644
index 0000000000..733adf5536
--- /dev/null
+++ b/meta/recipes-connectivity/kea/files/fix-multilib-conflict.patch
@@ -0,0 +1,55 @@
+There are conflict of config files between kea and lib32-kea:
+
+| Error: Transaction test error:
+| file /etc/kea/kea-ctrl-agent.conf conflicts between attempted installs of
+ lib32-kea-1.7.10-r0.core2_32 and kea-1.7.10-r0.core2_64
+| file /etc/kea/kea-dhcp4.conf conflicts between attempted installs of
+ lib32-kea-1.7.10-r0.core2_32 and kea-1.7.10-r0.core2_64
+
+Because they are all commented out, replace the expanded libdir path with
+'$libdir' in the config files to avoid conflict.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ src/bin/keactrl/kea-ctrl-agent.conf.pre | 3 ++-
+ src/bin/keactrl/kea-dhcp4.conf.pre | 6 ++++--
+ 2 files changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/src/bin/keactrl/kea-ctrl-agent.conf.pre b/src/bin/keactrl/kea-ctrl-agent.conf.pre
+index 211b7ff..d710ec7 100644
+--- a/src/bin/keactrl/kea-ctrl-agent.conf.pre
++++ b/src/bin/keactrl/kea-ctrl-agent.conf.pre
+@@ -45,7 +45,8 @@
+ // Agent will fail to start.
+ "hooks-libraries": [
+ // {
+-// "library": "@libdir@/kea/hooks/control-agent-commands.so",
++// // Replace $libdir with real library path /usr/lib or /usr/lib64
++// "library": "$libdir/kea/hooks/control-agent-commands.so",
+ // "parameters": {
+ // "param1": "foo"
+ // }
+diff --git a/src/bin/keactrl/kea-dhcp4.conf.pre b/src/bin/keactrl/kea-dhcp4.conf.pre
+index 5f77a32..70ae3d9 100644
+--- a/src/bin/keactrl/kea-dhcp4.conf.pre
++++ b/src/bin/keactrl/kea-dhcp4.conf.pre
+@@ -252,7 +252,8 @@
+ // // of all devices serviced by Kea, including their identifiers
+ // // (like MAC address), their location in the network, times
+ // // when they were active etc.
+- // "library": "@libdir@/kea/hooks/libdhcp_legal_log.so"
++ // // Replace $libdir with real library path /usr/lib or /usr/lib64
++ // "library": "$libdir/kea/hooks/libdhcp_legal_log.so"
+ // "parameters": {
+ // "path": "/var/lib/kea",
+ // "base-name": "kea-forensic4"
+@@ -269,7 +270,8 @@
+ // // of specific options or perhaps even a combination of several
+ // // options and fields to uniquely identify a client. Those scenarios
+ // // are addressed by the Flexible Identifiers hook application.
+- // "library": "@libdir@/kea/hooks/libdhcp_flex_id.so",
++ // // Replace $libdir with real library path /usr/lib or /usr/lib64
++ // "library": "$libdir/kea/hooks/libdhcp_flex_id.so",
+ // "parameters": {
+ // "identifier-expression": "substring(relay6[0].option[18],0,8)"
+ // }
diff --git a/meta/recipes-connectivity/kea/files/fix_pid_keactrl.patch b/meta/recipes-connectivity/kea/files/fix_pid_keactrl.patch
new file mode 100644
index 0000000000..eeeb89942b
--- /dev/null
+++ b/meta/recipes-connectivity/kea/files/fix_pid_keactrl.patch
@@ -0,0 +1,22 @@
+Busybox does not support ps -p so use pgrep
+
+Upstream-Status: Inappropriate [embedded specific]
+Based on changes from Diego Sueiro <Diego.Sueiro@arm.com>
+
+Signed-off-by: Armin kuster <akuster808@gmail.com>
+
+Index: kea-1.7.10/src/bin/keactrl/keactrl.in
+===================================================================
+--- kea-1.7.10.orig/src/bin/keactrl/keactrl.in
++++ kea-1.7.10/src/bin/keactrl/keactrl.in
+@@ -137,8 +137,8 @@ check_running() {
+ # Get the PID from the PID file (if it exists)
+ get_pid_from_file "${proc_name}"
+ if [ ${_pid} -gt 0 ]; then
+- # Use ps to check if PID is alive
+- ps -p ${_pid} 1>/dev/null
++ # Use pgrep and grep to check if PID is alive
++ pgrep -v 1 | grep ${_pid} 1>/dev/null
+ retcode=$?
+ if [ $retcode -eq 0 ]; then
+ # No error, so PID IS ALIVE
diff --git a/meta/recipes-connectivity/kea/files/kea-dhcp-ddns-server b/meta/recipes-connectivity/kea/files/kea-dhcp-ddns-server
new file mode 100644
index 0000000000..50fe40d439
--- /dev/null
+++ b/meta/recipes-connectivity/kea/files/kea-dhcp-ddns-server
@@ -0,0 +1,46 @@
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides: kea-dhcp-ddns-server
+# Required-Start: $local_fs $network $remote_fs $syslog
+# Required-Stop: $local_fs $network $remote_fs $syslog
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: ISC KEA DHCP IPv6 Server
+### END INIT INFO
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+DESC="kea-dhcp-ddns-server"
+NAME=kea-dhcp-ddns
+DAEMON=/usr/sbin/keactrl
+DAEMON_ARGS=" -s dhcp_ddns"
+
+set -e
+
+# Exit if the package is not installed
+[ -x "$DAEMON" ] || exit 0
+
+# Source function library.
+. /etc/init.d/functions
+
+case "$1" in
+ start)
+ echo -n "Starting $DESC: "
+ start-stop-daemon -S -b -n $NAME -x $DAEMON -- start $DAEMON_ARGS
+ echo "done."
+ ;;
+ stop)
+ echo -n "Stopping $DESC: "
+ kpid=`pidof $NAME`
+ kill $kpid
+ echo "done."
+ ;;
+ restart|force-reload)
+ #
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
diff --git a/meta/recipes-connectivity/kea/files/kea-dhcp-ddns.service b/meta/recipes-connectivity/kea/files/kea-dhcp-ddns.service
new file mode 100644
index 0000000000..91aa2eb14f
--- /dev/null
+++ b/meta/recipes-connectivity/kea/files/kea-dhcp-ddns.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Kea DHCP-DDNS Server
+Wants=network-online.target
+After=network-online.target
+After=time-sync.target
+
+[Service]
+ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/run/kea/
+ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/kea
+ExecStart=@SBINDIR@/kea-dhcp-ddns -c @SYSCONFDIR@/kea/kea-dhcp-ddns.conf
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta/recipes-connectivity/kea/files/kea-dhcp4-server b/meta/recipes-connectivity/kea/files/kea-dhcp4-server
new file mode 100644
index 0000000000..e83e51025d
--- /dev/null
+++ b/meta/recipes-connectivity/kea/files/kea-dhcp4-server
@@ -0,0 +1,46 @@
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides: kea-dhcp4-server
+# Required-Start: $local_fs $network $remote_fs $syslog
+# Required-Stop: $local_fs $network $remote_fs $syslog
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: ISC KEA DHCP IPv6 Server
+### END INIT INFO
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+DESC="kea-dhcp4-server"
+NAME=kea-dhcp4
+DAEMON=/usr/sbin/keactrl
+DAEMON_ARGS=" -s dhcp4"
+
+set -e
+
+# Exit if the package is not installed
+[ -x "$DAEMON" ] || exit 0
+
+# Source function library.
+. /etc/init.d/functions
+
+case "$1" in
+ start)
+ echo -n "Starting $DESC: "
+ start-stop-daemon -S -b -n $NAME -x $DAEMON -- start $DAEMON_ARGS
+ echo "done."
+ ;;
+ stop)
+ echo -n "Stopping $DESC: "
+ kpid=`pidof $NAME`
+ kill $kpid
+ echo "done."
+ ;;
+ restart|force-reload)
+ #
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
diff --git a/meta/recipes-connectivity/kea/files/kea-dhcp4.service b/meta/recipes-connectivity/kea/files/kea-dhcp4.service
new file mode 100644
index 0000000000..b851ea71c5
--- /dev/null
+++ b/meta/recipes-connectivity/kea/files/kea-dhcp4.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Kea DHCPv4 Server
+Wants=network-online.target
+After=network-online.target
+After=time-sync.target
+
+[Service]
+ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/run/kea/
+ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/lib/kea
+ExecStart=@SBINDIR@/kea-dhcp4 -c @SYSCONFDIR@/kea/kea-dhcp4.conf
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta/recipes-connectivity/kea/files/kea-dhcp6-server b/meta/recipes-connectivity/kea/files/kea-dhcp6-server
new file mode 100644
index 0000000000..10f2d22641
--- /dev/null
+++ b/meta/recipes-connectivity/kea/files/kea-dhcp6-server
@@ -0,0 +1,47 @@
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides: kea-dhcp6-server
+# Required-Start: $local_fs $network $remote_fs $syslog
+# Required-Stop: $local_fs $network $remote_fs $syslog
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: ISC KEA DHCP IPv6 Server
+### END INIT INFO
+
+# PATH should only include /usr/* if it runs after the mountnfs.sh script
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+DESC="kea-dhcp6-server"
+NAME=kea-dhcp6
+DAEMON=/usr/sbin/keactrl
+DAEMON_ARGS=" -s dhcp6"
+
+set -e
+
+# Exit if the package is not installed
+[ -x "$DAEMON" ] || exit 0
+
+# Source function library.
+. /etc/init.d/functions
+
+case "$1" in
+ start)
+ echo -n "Starting $DESC: "
+ start-stop-daemon -S -b -n $NAME -x $DAEMON -- start $DAEMON_ARGS
+ echo "done."
+ ;;
+ stop)
+ echo -n "Stopping $DESC: "
+ kpid=`pidof $NAME`
+ kill $kpid
+ echo "done."
+ ;;
+ restart|force-reload)
+ #
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
diff --git a/meta/recipes-connectivity/kea/files/kea-dhcp6.service b/meta/recipes-connectivity/kea/files/kea-dhcp6.service
new file mode 100644
index 0000000000..0f9f0ef8d9
--- /dev/null
+++ b/meta/recipes-connectivity/kea/files/kea-dhcp6.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Kea DHCPv6 Server
+Wants=network-online.target
+After=network-online.target
+After=time-sync.target
+
+[Service]
+ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/run/kea/
+ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/lib/kea
+ExecStart=@SBINDIR@/kea-dhcp6 -c @SYSCONFDIR@/kea/kea-dhcp6.conf
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta/recipes-connectivity/kea/kea_1.7.10.bb b/meta/recipes-connectivity/kea/kea_1.7.10.bb
new file mode 100644
index 0000000000..c9a5819e47
--- /dev/null
+++ b/meta/recipes-connectivity/kea/kea_1.7.10.bb
@@ -0,0 +1,73 @@
+SUMMARY = "ISC Kea DHCP Server"
+DESCRIPTION = "Kea is the next generation of DHCP software developed by ISC. It supports both DHCPv4 and DHCPv6 protocols along with their extensions, e.g. prefix delegation and dynamic updates to DNS."
+HOMEPAGE = "http://kea.isc.org"
+SECTION = "connectivity"
+LICENSE = "MPL-2.0 & Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=68d95543d2096459290a4e6b9ceccffa"
+
+DEPENDS = "boost log4cplus openssl"
+
+SRC_URI = "\
+ http://ftp.isc.org/isc/kea/${PV}/${BP}.tar.gz \
+ file://0001-keactrl.in-create-var-lib-kea-and-var-run-kea-folder.patch \
+ file://kea-dhcp4.service \
+ file://kea-dhcp6.service \
+ file://kea-dhcp-ddns.service \
+ file://kea-dhcp4-server \
+ file://kea-dhcp6-server \
+ file://kea-dhcp-ddns-server \
+ file://fix-multilib-conflict.patch \
+ file://fix_pid_keactrl.patch \
+"
+SRC_URI[sha256sum] = "4e121f0e58b175a827581c69cb1d60778647049fa47f142940dddc9ce58f3c82"
+
+inherit autotools systemd update-rc.d
+
+INITSCRIPT_NAME = "kea-dhcp4-server"
+INITSCRIPT_PARAMS = "defaults 30"
+
+SYSTEMD_SERVICE_${PN} = "kea-dhcp4.service kea-dhcp6.service kea-dhcp-ddns.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+DEBUG_OPTIMIZATION_remove_mips = " -Og"
+DEBUG_OPTIMIZATION_append_mips = " -O"
+BUILD_OPTIMIZATION_remove_mips = " -Og"
+BUILD_OPTIMIZATION_append_mips = " -O"
+
+DEBUG_OPTIMIZATION_remove_mipsel = " -Og"
+DEBUG_OPTIMIZATION_append_mipsel = " -O"
+BUILD_OPTIMIZATION_remove_mipsel = " -Og"
+BUILD_OPTIMIZATION_append_mipsel = " -O"
+
+EXTRA_OECONF = "--with-boost-libs=-lboost_system \
+ --with-log4cplus=${STAGING_DIR_TARGET}${prefix} \
+ --with-openssl=${STAGING_DIR_TARGET}${prefix}"
+
+do_configure_prepend() {
+ # replace abs_top_builddir to avoid introducing the build path
+ # don't expand the abs_top_builddir on the target as the abs_top_builddir is meanlingless on the target
+ find ${S} -type f -name *.sh.in | xargs sed -i "s:@abs_top_builddir@:@abs_top_builddir_placeholder@:g"
+ sed -i "s:@abs_top_srcdir@:@abs_top_srcdir_placeholder@:g" ${S}/src/bin/admin/kea-admin.in
+}
+
+do_install_append() {
+ install -d ${D}${sysconfdir}/init.d
+ install -d ${D}${systemd_system_unitdir}
+
+ install -m 0644 ${WORKDIR}/kea-dhcp*service ${D}${systemd_system_unitdir}
+ install -m 0755 ${WORKDIR}/kea-*-server ${D}${sysconfdir}/init.d
+ sed -i -e 's,@SBINDIR@,${sbindir},g' -e 's,@BASE_BINDIR@,${base_bindir},g' \
+ -e 's,@LOCALSTATEDIR@,${localstatedir},g' -e 's,@SYSCONFDIR@,${sysconfdir},g' \
+ ${D}${systemd_system_unitdir}/kea-dhcp*service ${D}${sbindir}/keactrl
+}
+
+do_install_append() {
+ rm -rf "${D}${localstatedir}"
+}
+
+CONFFILES_${PN} = "${sysconfdir}/kea/keactrl.conf"
+
+FILES_${PN}-staticdev += "${libdir}/kea/hooks/*.a ${libdir}/hooks/*.a"
+FILES_${PN} += "${libdir}/hooks/*.so"
+
+PARALLEL_MAKEINST = ""
diff --git a/meta/recipes-connectivity/libuv/libuv_1.39.0.bb b/meta/recipes-connectivity/libuv/libuv_1.39.0.bb
new file mode 100644
index 0000000000..b6ce4757fd
--- /dev/null
+++ b/meta/recipes-connectivity/libuv/libuv_1.39.0.bb
@@ -0,0 +1,19 @@
+SUMMARY = "A multi-platform support library with a focus on asynchronous I/O"
+HOMEPAGE = "https://github.com/libuv/libuv"
+BUGTRACKER = "https://github.com/libuv/libuv/issues"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a68902a430e32200263d182d44924d47"
+
+SRCREV = "25f4b8b8a3c0f934158cd37a37b0525d75ca488e"
+SRC_URI = "git://github.com/libuv/libuv;branch=v1.x"
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+do_configure() {
+ ${S}/autogen.sh || bbnote "${PN} failed to autogen.sh"
+ oe_runconf
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-cacheio-use-intmax_t-for-formatted-IO.patch b/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-cacheio-use-intmax_t-for-formatted-IO.patch
deleted file mode 100644
index bafff5b9c0..0000000000
--- a/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-cacheio-use-intmax_t-for-formatted-IO.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From ac32b813f5d6f9a2de944015cf9bb98d68e0203a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 1 Dec 2018 10:02:12 -0800
-Subject: [PATCH] cacheio: use intmax_t for formatted IO
-
-time_t is not same size on x32 ABI (ILP32)
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- support/nfs/cacheio.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/support/nfs/cacheio.c b/support/nfs/cacheio.c
-index 9dc4cf1..2086a95 100644
---- a/support/nfs/cacheio.c
-+++ b/support/nfs/cacheio.c
-@@ -17,6 +17,7 @@
-
- #include <nfslib.h>
- #include <stdio.h>
-+#include <inttypes.h>
- #include <stdio_ext.h>
- #include <string.h>
- #include <ctype.h>
-@@ -234,7 +235,7 @@ cache_flush(int force)
- stb.st_mtime > now)
- stb.st_mtime = time(0);
-
-- sprintf(stime, "%ld\n", stb.st_mtime);
-+ sprintf(stime, "%jd\n", (intmax_t)stb.st_mtime);
- for (c=0; cachelist[c]; c++) {
- int fd;
- sprintf(path, "/proc/net/rpc/%s/flush", cachelist[c]);
---
-2.19.2
-
diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-server.service b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-server.service
index 6481377d80..5c845b7e82 100644
--- a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-server.service
+++ b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-server.service
@@ -17,7 +17,6 @@ ExecStop=@SBINDIR@/rpc.nfsd 0
ExecStopPost=@SBINDIR@/exportfs -au
ExecStopPost=@SBINDIR@/exportfs -f
ExecReload=@SBINDIR@/exportfs -r
-StandardError=syslog
RemainAfterExit=yes
[Install]
diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.3.bb b/meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.1.bb
index 42a4ba3dbd..b8ad23a0d8 100644
--- a/meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.3.bb
+++ b/meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.1.bb
@@ -28,12 +28,10 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/nfs-utils/${PV}/nfs-utils-${PV}.tar.x
file://proc-fs-nfsd.mount \
file://nfs-utils-debianize-start-statd.patch \
file://bugfix-adjust-statd-service-name.patch \
- file://0001-cacheio-use-intmax_t-for-formatted-IO.patch \
file://0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch \
file://clang-warnings.patch \
"
-SRC_URI[md5sum] = "06020c76f531ed97f3145514901e0e7c"
-SRC_URI[sha256sum] = "af65fce5dd8370cff9ead67baac5a6cd69c376dcadfef264dc2c78c904f26599"
+SRC_URI[sha256sum] = "0f1c8170e16a07d9836bbf0836d48d0c842b6f0e0e8b18748f099751851d30c4"
# Only kernel-module-nfsd is required here (but can be built-in) - the nfsd module will
# pull in the remainder of the dependencies.
@@ -58,6 +56,7 @@ EXTRA_OECONF = "--with-statduser=rpcuser \
--disable-gss \
--disable-nfsdcltrack \
--with-statdpath=/var/lib/nfs/statd \
+ --with-rpcgen=${HOSTTOOLS_DIR}/rpcgen \
"
PACKAGECONFIG ??= "tcp-wrappers \
@@ -67,9 +66,9 @@ PACKAGECONFIG_remove_libc-musl = "tcp-wrappers"
PACKAGECONFIG[tcp-wrappers] = "--with-tcp-wrappers,--without-tcp-wrappers,tcp-wrappers"
PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
# libdevmapper is available in meta-oe
-PACKAGECONFIG[nfsv41] = "--enable-nfsv41,--disable-nfsv41,libdevmapper"
-# keyutils is available in meta-security
-PACKAGECONFIG[nfsv4] = "--enable-nfsv4,--disable-nfsv4,keyutils"
+PACKAGECONFIG[nfsv41] = "--enable-nfsv41,--disable-nfsv41,libdevmapper,libdevmapper"
+# keyutils is available in meta-oe
+PACKAGECONFIG[nfsv4] = "--enable-nfsv4,--disable-nfsv4,keyutils,python3-core"
PACKAGES =+ "${PN}-client ${PN}-mount ${PN}-stats"
@@ -91,14 +90,16 @@ RDEPENDS_${PN}-client = "${PN}-mount rpcbind"
FILES_${PN}-mount = "${base_sbindir}/*mount.nfs*"
-FILES_${PN}-stats = "${sbindir}/mountstats ${sbindir}/nfsiostat"
+FILES_${PN}-stats = "${sbindir}/mountstats ${sbindir}/nfsiostat ${sbindir}/nfsdclnts"
RDEPENDS_${PN}-stats = "python3-core"
-FILES_${PN} += "${systemd_unitdir}"
+FILES_${PN}-staticdev += "${libdir}/libnfsidmap/*.a"
+
+FILES_${PN} += "${systemd_unitdir} ${libdir}/libnfsidmap/"
do_configure_prepend() {
- sed -i -e 's,sbindir = /sbin,sbindir = ${base_sbindir},g' \
- ${S}/utils/mount/Makefile.am
+ sed -i -e 's,sbindir = /sbin,sbindir = ${base_sbindir},g' \
+ ${S}/utils/mount/Makefile.am
}
# Make clean needed because the package comes with
@@ -127,9 +128,9 @@ do_install_append () {
-e 's,@HIGH_RLIMIT_NOFILE@,${HIGH_RLIMIT_NOFILE},g' \
${D}${systemd_unitdir}/system/*.service
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -m 0644 ${WORKDIR}/proc-fs-nfsd.mount ${D}${systemd_unitdir}/system/
- install -d ${D}${systemd_unitdir}/system/sysinit.target.wants/
- ln -sf ../proc-fs-nfsd.mount ${D}${systemd_unitdir}/system/sysinit.target.wants/proc-fs-nfsd.mount
+ install -m 0644 ${WORKDIR}/proc-fs-nfsd.mount ${D}${systemd_unitdir}/system/
+ install -d ${D}${systemd_unitdir}/system/sysinit.target.wants/
+ ln -sf ../proc-fs-nfsd.mount ${D}${systemd_unitdir}/system/sysinit.target.wants/proc-fs-nfsd.mount
fi
# kernel code as of 3.8 hard-codes this path as a default
@@ -139,7 +140,6 @@ do_install_append () {
chown -R rpcuser:rpcuser ${D}${localstatedir}/lib/nfs/statd
chmod 0644 ${D}${localstatedir}/lib/nfs/statd/state
- # Make python tools use python 3
- sed -i -e '1s,#!.*python.*,#!${bindir}/python3,' ${D}${sbindir}/mountstats ${D}${sbindir}/nfsiostat
-
+ # Make python tools use python 3
+ sed -i -e '1s,#!.*python.*,#!${bindir}/python3,' ${D}${sbindir}/mountstats ${D}${sbindir}/nfsiostat
}
diff --git a/meta/recipes-connectivity/openssh/openssh/sshd.socket b/meta/recipes-connectivity/openssh/openssh/sshd.socket
index 12c39b26b5..8d76d62309 100644
--- a/meta/recipes-connectivity/openssh/openssh/sshd.socket
+++ b/meta/recipes-connectivity/openssh/openssh/sshd.socket
@@ -1,5 +1,6 @@
[Unit]
Conflicts=sshd.service
+Wants=sshdgenkeys.service
[Socket]
ExecStartPre=@BASE_BINDIR@/mkdir -p /var/run/sshd
diff --git a/meta/recipes-connectivity/openssh/openssh/sshd@.service b/meta/recipes-connectivity/openssh/openssh/sshd@.service
index 9d83dfb2bb..9d9965e624 100644
--- a/meta/recipes-connectivity/openssh/openssh/sshd@.service
+++ b/meta/recipes-connectivity/openssh/openssh/sshd@.service
@@ -1,13 +1,10 @@
[Unit]
Description=OpenSSH Per-Connection Daemon
-Wants=sshdgenkeys.service
After=sshdgenkeys.service
[Service]
Environment="SSHD_OPTS="
EnvironmentFile=-/etc/default/ssh
ExecStart=-@SBINDIR@/sshd -i $SSHD_OPTS
-ExecReload=@BASE_BINDIR@/kill -HUP $MAINPID
StandardInput=socket
-StandardError=syslog
KillMode=process
diff --git a/meta/recipes-connectivity/openssh/openssh/sshdgenkeys.service b/meta/recipes-connectivity/openssh/openssh/sshdgenkeys.service
index 603c33787f..fd81793d51 100644
--- a/meta/recipes-connectivity/openssh/openssh/sshdgenkeys.service
+++ b/meta/recipes-connectivity/openssh/openssh/sshdgenkeys.service
@@ -6,3 +6,4 @@ RequiresMountsFor=/var /run
ExecStart=@LIBEXECDIR@/sshd_check_keys
Type=oneshot
RemainAfterExit=yes
+Nice=10
diff --git a/meta/recipes-connectivity/openssh/openssh_8.2p1.bb b/meta/recipes-connectivity/openssh/openssh_8.3p1.bb
index d879efc201..e007328704 100644
--- a/meta/recipes-connectivity/openssh/openssh_8.2p1.bb
+++ b/meta/recipes-connectivity/openssh/openssh_8.3p1.bb
@@ -25,8 +25,7 @@ SRC_URI = "http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${PV}.tar
file://sshd_check_keys \
file://add-test-support-for-busybox.patch \
"
-SRC_URI[md5sum] = "3076e6413e8dbe56d33848c1054ac091"
-SRC_URI[sha256sum] = "43925151e6cf6cee1450190c0e9af4dc36b41c12737619edff8bcebdff64e671"
+SRC_URI[sha256sum] = "f2befbe0472fe7eb75d23340eb17531cb6b3aac24075e2066b41f814e12387b2"
PAM_SRC_URI = "file://sshd"
@@ -43,12 +42,15 @@ SYSTEMD_SERVICE_${PN}-sshd = "sshd.socket"
inherit autotools-brokensep ptest
-PACKAGECONFIG ??= ""
+PACKAGECONFIG ??= "rng-tools"
PACKAGECONFIG[kerberos] = "--with-kerberos5,--without-kerberos5,krb5"
PACKAGECONFIG[ldns] = "--with-ldns,--without-ldns,ldns"
PACKAGECONFIG[libedit] = "--with-libedit,--without-libedit,libedit"
PACKAGECONFIG[manpages] = "--with-mantype=man,--with-mantype=cat"
+# Add RRECOMMENDS to rng-tools for sshd package
+PACKAGECONFIG[rng-tools] = ""
+
EXTRA_AUTORECONF += "--exclude=aclocal"
# login path is hardcoded in sshd
@@ -150,7 +152,10 @@ FILES_${PN}-keygen = "${bindir}/ssh-keygen"
RDEPENDS_${PN} += "${PN}-scp ${PN}-ssh ${PN}-sshd ${PN}-keygen"
RDEPENDS_${PN}-sshd += "${PN}-keygen ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-keyinit pam-plugin-loginuid', '', d)}"
-RRECOMMENDS_${PN}-sshd_append_class-target = " rng-tools"
+RRECOMMENDS_${PN}-sshd_append_class-target = "\
+ ${@bb.utils.filter('PACKAGECONFIG', 'rng-tools', d)} \
+"
+
# gdb would make attach-ptrace test pass rather than skip but not worth the build dependencies
RDEPENDS_${PN}-ptest += "${PN}-sftp ${PN}-misc ${PN}-sftp-server make sed sudo coreutils"
diff --git a/meta/recipes-connectivity/openssl/openssl/CVE-2019-1551.patch b/meta/recipes-connectivity/openssl/openssl/CVE-2019-1551.patch
deleted file mode 100644
index 0cc19cb5f4..0000000000
--- a/meta/recipes-connectivity/openssl/openssl/CVE-2019-1551.patch
+++ /dev/null
@@ -1,758 +0,0 @@
-From 419102400a2811582a7a3d4a4e317d72e5ce0a8f Mon Sep 17 00:00:00 2001
-From: Andy Polyakov <appro@openssl.org>
-Date: Wed, 4 Dec 2019 12:48:21 +0100
-Subject: [PATCH] Fix an overflow bug in rsaz_512_sqr
-
-There is an overflow bug in the x64_64 Montgomery squaring procedure used in
-exponentiation with 512-bit moduli. No EC algorithms are affected. Analysis
-suggests that attacks against 2-prime RSA1024, 3-prime RSA1536, and DSA1024 as a
-result of this defect would be very difficult to perform and are not believed
-likely. Attacks against DH512 are considered just feasible. However, for an
-attack the target would have to re-use the DH512 private key, which is not
-recommended anyway. Also applications directly using the low level API
-BN_mod_exp may be affected if they use BN_FLG_CONSTTIME.
-
-CVE-2019-1551
-
-Reviewed-by: Paul Dale <paul.dale@oracle.com>
-Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
-(Merged from https://github.com/openssl/openssl/pull/10575)
-
-CVE: CVE-2019-1551
-Upstream-Status: Backport
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- crypto/bn/asm/rsaz-x86_64.pl | 381 ++++++++++++++++++-----------------
- 1 file changed, 197 insertions(+), 184 deletions(-)
-
-diff --git a/crypto/bn/asm/rsaz-x86_64.pl b/crypto/bn/asm/rsaz-x86_64.pl
-index b1797b649f0..7534d5cd03e 100755
---- a/crypto/bn/asm/rsaz-x86_64.pl
-+++ b/crypto/bn/asm/rsaz-x86_64.pl
-@@ -116,7 +116,7 @@
- subq \$128+24, %rsp
- .cfi_adjust_cfa_offset 128+24
- .Lsqr_body:
-- movq $mod, %rbp # common argument
-+ movq $mod, %xmm1 # common off-load
- movq ($inp), %rdx
- movq 8($inp), %rax
- movq $n0, 128(%rsp)
-@@ -134,7 +134,8 @@
- .Loop_sqr:
- movl $times,128+8(%rsp)
- #first iteration
-- movq %rdx, %rbx
-+ movq %rdx, %rbx # 0($inp)
-+ mov %rax, %rbp # 8($inp)
- mulq %rdx
- movq %rax, %r8
- movq 16($inp), %rax
-@@ -173,31 +174,29 @@
- mulq %rbx
- addq %rax, %r14
- movq %rbx, %rax
-- movq %rdx, %r15
-- adcq \$0, %r15
-+ adcq \$0, %rdx
-
-- addq %r8, %r8 #shlq \$1, %r8
-- movq %r9, %rcx
-- adcq %r9, %r9 #shld \$1, %r8, %r9
-+ xorq %rcx,%rcx # rcx:r8 = r8 << 1
-+ addq %r8, %r8
-+ movq %rdx, %r15
-+ adcq \$0, %rcx
-
- mulq %rax
-- movq %rax, (%rsp)
-- addq %rdx, %r8
-- adcq \$0, %r9
-+ addq %r8, %rdx
-+ adcq \$0, %rcx
-
-- movq %r8, 8(%rsp)
-- shrq \$63, %rcx
-+ movq %rax, (%rsp)
-+ movq %rdx, 8(%rsp)
-
- #second iteration
-- movq 8($inp), %r8
- movq 16($inp), %rax
-- mulq %r8
-+ mulq %rbp
- addq %rax, %r10
- movq 24($inp), %rax
- movq %rdx, %rbx
- adcq \$0, %rbx
-
-- mulq %r8
-+ mulq %rbp
- addq %rax, %r11
- movq 32($inp), %rax
- adcq \$0, %rdx
-@@ -205,7 +204,7 @@
- movq %rdx, %rbx
- adcq \$0, %rbx
-
-- mulq %r8
-+ mulq %rbp
- addq %rax, %r12
- movq 40($inp), %rax
- adcq \$0, %rdx
-@@ -213,7 +212,7 @@
- movq %rdx, %rbx
- adcq \$0, %rbx
-
-- mulq %r8
-+ mulq %rbp
- addq %rax, %r13
- movq 48($inp), %rax
- adcq \$0, %rdx
-@@ -221,7 +220,7 @@
- movq %rdx, %rbx
- adcq \$0, %rbx
-
-- mulq %r8
-+ mulq %rbp
- addq %rax, %r14
- movq 56($inp), %rax
- adcq \$0, %rdx
-@@ -229,39 +228,39 @@
- movq %rdx, %rbx
- adcq \$0, %rbx
-
-- mulq %r8
-+ mulq %rbp
- addq %rax, %r15
-- movq %r8, %rax
-+ movq %rbp, %rax
- adcq \$0, %rdx
- addq %rbx, %r15
-- movq %rdx, %r8
-- movq %r10, %rdx
-- adcq \$0, %r8
-+ adcq \$0, %rdx
-
-- add %rdx, %rdx
-- lea (%rcx,%r10,2), %r10 #shld \$1, %rcx, %r10
-- movq %r11, %rbx
-- adcq %r11, %r11 #shld \$1, %r10, %r11
-+ xorq %rbx, %rbx # rbx:r10:r9 = r10:r9 << 1
-+ addq %r9, %r9
-+ movq %rdx, %r8
-+ adcq %r10, %r10
-+ adcq \$0, %rbx
-
- mulq %rax
-+ addq %rcx, %rax
-+ movq 16($inp), %rbp
-+ adcq \$0, %rdx
- addq %rax, %r9
-+ movq 24($inp), %rax
- adcq %rdx, %r10
-- adcq \$0, %r11
-+ adcq \$0, %rbx
-
- movq %r9, 16(%rsp)
- movq %r10, 24(%rsp)
-- shrq \$63, %rbx
-
- #third iteration
-- movq 16($inp), %r9
-- movq 24($inp), %rax
-- mulq %r9
-+ mulq %rbp
- addq %rax, %r12
- movq 32($inp), %rax
- movq %rdx, %rcx
- adcq \$0, %rcx
-
-- mulq %r9
-+ mulq %rbp
- addq %rax, %r13
- movq 40($inp), %rax
- adcq \$0, %rdx
-@@ -269,7 +268,7 @@
- movq %rdx, %rcx
- adcq \$0, %rcx
-
-- mulq %r9
-+ mulq %rbp
- addq %rax, %r14
- movq 48($inp), %rax
- adcq \$0, %rdx
-@@ -277,9 +276,7 @@
- movq %rdx, %rcx
- adcq \$0, %rcx
-
-- mulq %r9
-- movq %r12, %r10
-- lea (%rbx,%r12,2), %r12 #shld \$1, %rbx, %r12
-+ mulq %rbp
- addq %rax, %r15
- movq 56($inp), %rax
- adcq \$0, %rdx
-@@ -287,36 +284,40 @@
- movq %rdx, %rcx
- adcq \$0, %rcx
-
-- mulq %r9
-- shrq \$63, %r10
-+ mulq %rbp
- addq %rax, %r8
-- movq %r9, %rax
-+ movq %rbp, %rax
- adcq \$0, %rdx
- addq %rcx, %r8
-- movq %rdx, %r9
-- adcq \$0, %r9
-+ adcq \$0, %rdx
-
-- movq %r13, %rcx
-- leaq (%r10,%r13,2), %r13 #shld \$1, %r12, %r13
-+ xorq %rcx, %rcx # rcx:r12:r11 = r12:r11 << 1
-+ addq %r11, %r11
-+ movq %rdx, %r9
-+ adcq %r12, %r12
-+ adcq \$0, %rcx
-
- mulq %rax
-+ addq %rbx, %rax
-+ movq 24($inp), %r10
-+ adcq \$0, %rdx
- addq %rax, %r11
-+ movq 32($inp), %rax
- adcq %rdx, %r12
-- adcq \$0, %r13
-+ adcq \$0, %rcx
-
- movq %r11, 32(%rsp)
- movq %r12, 40(%rsp)
-- shrq \$63, %rcx
-
- #fourth iteration
-- movq 24($inp), %r10
-- movq 32($inp), %rax
-+ mov %rax, %r11 # 32($inp)
- mulq %r10
- addq %rax, %r14
- movq 40($inp), %rax
- movq %rdx, %rbx
- adcq \$0, %rbx
-
-+ mov %rax, %r12 # 40($inp)
- mulq %r10
- addq %rax, %r15
- movq 48($inp), %rax
-@@ -325,9 +326,8 @@
- movq %rdx, %rbx
- adcq \$0, %rbx
-
-+ mov %rax, %rbp # 48($inp)
- mulq %r10
-- movq %r14, %r12
-- leaq (%rcx,%r14,2), %r14 #shld \$1, %rcx, %r14
- addq %rax, %r8
- movq 56($inp), %rax
- adcq \$0, %rdx
-@@ -336,32 +336,33 @@
- adcq \$0, %rbx
-
- mulq %r10
-- shrq \$63, %r12
- addq %rax, %r9
- movq %r10, %rax
- adcq \$0, %rdx
- addq %rbx, %r9
-- movq %rdx, %r10
-- adcq \$0, %r10
-+ adcq \$0, %rdx
-
-- movq %r15, %rbx
-- leaq (%r12,%r15,2),%r15 #shld \$1, %r14, %r15
-+ xorq %rbx, %rbx # rbx:r13:r14 = r13:r14 << 1
-+ addq %r13, %r13
-+ movq %rdx, %r10
-+ adcq %r14, %r14
-+ adcq \$0, %rbx
-
- mulq %rax
-+ addq %rcx, %rax
-+ adcq \$0, %rdx
- addq %rax, %r13
-+ movq %r12, %rax # 40($inp)
- adcq %rdx, %r14
-- adcq \$0, %r15
-+ adcq \$0, %rbx
-
- movq %r13, 48(%rsp)
- movq %r14, 56(%rsp)
-- shrq \$63, %rbx
-
- #fifth iteration
-- movq 32($inp), %r11
-- movq 40($inp), %rax
- mulq %r11
- addq %rax, %r8
-- movq 48($inp), %rax
-+ movq %rbp, %rax # 48($inp)
- movq %rdx, %rcx
- adcq \$0, %rcx
-
-@@ -369,97 +370,99 @@
- addq %rax, %r9
- movq 56($inp), %rax
- adcq \$0, %rdx
-- movq %r8, %r12
-- leaq (%rbx,%r8,2), %r8 #shld \$1, %rbx, %r8
- addq %rcx, %r9
- movq %rdx, %rcx
- adcq \$0, %rcx
-
-+ mov %rax, %r14 # 56($inp)
- mulq %r11
-- shrq \$63, %r12
- addq %rax, %r10
- movq %r11, %rax
- adcq \$0, %rdx
- addq %rcx, %r10
-- movq %rdx, %r11
-- adcq \$0, %r11
-+ adcq \$0, %rdx
-
-- movq %r9, %rcx
-- leaq (%r12,%r9,2), %r9 #shld \$1, %r8, %r9
-+ xorq %rcx, %rcx # rcx:r8:r15 = r8:r15 << 1
-+ addq %r15, %r15
-+ movq %rdx, %r11
-+ adcq %r8, %r8
-+ adcq \$0, %rcx
-
- mulq %rax
-+ addq %rbx, %rax
-+ adcq \$0, %rdx
- addq %rax, %r15
-+ movq %rbp, %rax # 48($inp)
- adcq %rdx, %r8
-- adcq \$0, %r9
-+ adcq \$0, %rcx
-
- movq %r15, 64(%rsp)
- movq %r8, 72(%rsp)
-- shrq \$63, %rcx
-
- #sixth iteration
-- movq 40($inp), %r12
-- movq 48($inp), %rax
- mulq %r12
- addq %rax, %r10
-- movq 56($inp), %rax
-+ movq %r14, %rax # 56($inp)
- movq %rdx, %rbx
- adcq \$0, %rbx
-
- mulq %r12
- addq %rax, %r11
- movq %r12, %rax
-- movq %r10, %r15
-- leaq (%rcx,%r10,2), %r10 #shld \$1, %rcx, %r10
- adcq \$0, %rdx
-- shrq \$63, %r15
- addq %rbx, %r11
-- movq %rdx, %r12
-- adcq \$0, %r12
-+ adcq \$0, %rdx
-
-- movq %r11, %rbx
-- leaq (%r15,%r11,2), %r11 #shld \$1, %r10, %r11
-+ xorq %rbx, %rbx # rbx:r10:r9 = r10:r9 << 1
-+ addq %r9, %r9
-+ movq %rdx, %r12
-+ adcq %r10, %r10
-+ adcq \$0, %rbx
-
- mulq %rax
-+ addq %rcx, %rax
-+ adcq \$0, %rdx
- addq %rax, %r9
-+ movq %r14, %rax # 56($inp)
- adcq %rdx, %r10
-- adcq \$0, %r11
-+ adcq \$0, %rbx
-
- movq %r9, 80(%rsp)
- movq %r10, 88(%rsp)
-
- #seventh iteration
-- movq 48($inp), %r13
-- movq 56($inp), %rax
-- mulq %r13
-+ mulq %rbp
- addq %rax, %r12
-- movq %r13, %rax
-- movq %rdx, %r13
-- adcq \$0, %r13
-+ movq %rbp, %rax
-+ adcq \$0, %rdx
-
-- xorq %r14, %r14
-- shlq \$1, %rbx
-- adcq %r12, %r12 #shld \$1, %rbx, %r12
-- adcq %r13, %r13 #shld \$1, %r12, %r13
-- adcq %r14, %r14 #shld \$1, %r13, %r14
-+ xorq %rcx, %rcx # rcx:r12:r11 = r12:r11 << 1
-+ addq %r11, %r11
-+ movq %rdx, %r13
-+ adcq %r12, %r12
-+ adcq \$0, %rcx
-
- mulq %rax
-+ addq %rbx, %rax
-+ adcq \$0, %rdx
- addq %rax, %r11
-+ movq %r14, %rax # 56($inp)
- adcq %rdx, %r12
-- adcq \$0, %r13
-+ adcq \$0, %rcx
-
- movq %r11, 96(%rsp)
- movq %r12, 104(%rsp)
-
- #eighth iteration
-- movq 56($inp), %rax
-+ xorq %rbx, %rbx # rbx:r13 = r13 << 1
-+ addq %r13, %r13
-+ adcq \$0, %rbx
-+
- mulq %rax
-- addq %rax, %r13
-+ addq %rcx, %rax
- adcq \$0, %rdx
--
-- addq %rdx, %r14
--
-- movq %r13, 112(%rsp)
-- movq %r14, 120(%rsp)
-+ addq %r13, %rax
-+ adcq %rbx, %rdx
-
- movq (%rsp), %r8
- movq 8(%rsp), %r9
-@@ -469,6 +472,10 @@
- movq 40(%rsp), %r13
- movq 48(%rsp), %r14
- movq 56(%rsp), %r15
-+ movq %xmm1, %rbp
-+
-+ movq %rax, 112(%rsp)
-+ movq %rdx, 120(%rsp)
-
- call __rsaz_512_reduce
-
-@@ -500,9 +507,9 @@
- .Loop_sqrx:
- movl $times,128+8(%rsp)
- movq $out, %xmm0 # off-load
-- movq %rbp, %xmm1 # off-load
- #first iteration
- mulx %rax, %r8, %r9
-+ mov %rax, %rbx
-
- mulx 16($inp), %rcx, %r10
- xor %rbp, %rbp # cf=0, of=0
-@@ -510,40 +517,39 @@
- mulx 24($inp), %rax, %r11
- adcx %rcx, %r9
-
-- mulx 32($inp), %rcx, %r12
-+ .byte 0xc4,0x62,0xf3,0xf6,0xa6,0x20,0x00,0x00,0x00 # mulx 32($inp), %rcx, %r12
- adcx %rax, %r10
-
-- mulx 40($inp), %rax, %r13
-+ .byte 0xc4,0x62,0xfb,0xf6,0xae,0x28,0x00,0x00,0x00 # mulx 40($inp), %rax, %r13
- adcx %rcx, %r11
-
-- .byte 0xc4,0x62,0xf3,0xf6,0xb6,0x30,0x00,0x00,0x00 # mulx 48($inp), %rcx, %r14
-+ mulx 48($inp), %rcx, %r14
- adcx %rax, %r12
- adcx %rcx, %r13
-
-- .byte 0xc4,0x62,0xfb,0xf6,0xbe,0x38,0x00,0x00,0x00 # mulx 56($inp), %rax, %r15
-+ mulx 56($inp), %rax, %r15
- adcx %rax, %r14
- adcx %rbp, %r15 # %rbp is 0
-
-- mov %r9, %rcx
-- shld \$1, %r8, %r9
-- shl \$1, %r8
--
-- xor %ebp, %ebp
-- mulx %rdx, %rax, %rdx
-- adcx %rdx, %r8
-- mov 8($inp), %rdx
-- adcx %rbp, %r9
-+ mulx %rdx, %rax, $out
-+ mov %rbx, %rdx # 8($inp)
-+ xor %rcx, %rcx
-+ adox %r8, %r8
-+ adcx $out, %r8
-+ adox %rbp, %rcx
-+ adcx %rbp, %rcx
-
- mov %rax, (%rsp)
- mov %r8, 8(%rsp)
-
- #second iteration
-- mulx 16($inp), %rax, %rbx
-+ .byte 0xc4,0xe2,0xfb,0xf6,0x9e,0x10,0x00,0x00,0x00 # mulx 16($inp), %rax, %rbx
- adox %rax, %r10
- adcx %rbx, %r11
-
-- .byte 0xc4,0x62,0xc3,0xf6,0x86,0x18,0x00,0x00,0x00 # mulx 24($inp), $out, %r8
-+ mulx 24($inp), $out, %r8
- adox $out, %r11
-+ .byte 0x66
- adcx %r8, %r12
-
- mulx 32($inp), %rax, %rbx
-@@ -561,24 +567,25 @@
- .byte 0xc4,0x62,0xc3,0xf6,0x86,0x38,0x00,0x00,0x00 # mulx 56($inp), $out, %r8
- adox $out, %r15
- adcx %rbp, %r8
-+ mulx %rdx, %rax, $out
- adox %rbp, %r8
-+ .byte 0x48,0x8b,0x96,0x10,0x00,0x00,0x00 # mov 16($inp), %rdx
-
-- mov %r11, %rbx
-- shld \$1, %r10, %r11
-- shld \$1, %rcx, %r10
--
-- xor %ebp,%ebp
-- mulx %rdx, %rax, %rcx
-- mov 16($inp), %rdx
-+ xor %rbx, %rbx
-+ adcx %rcx, %rax
-+ adox %r9, %r9
-+ adcx %rbp, $out
-+ adox %r10, %r10
- adcx %rax, %r9
-- adcx %rcx, %r10
-- adcx %rbp, %r11
-+ adox %rbp, %rbx
-+ adcx $out, %r10
-+ adcx %rbp, %rbx
-
- mov %r9, 16(%rsp)
- .byte 0x4c,0x89,0x94,0x24,0x18,0x00,0x00,0x00 # mov %r10, 24(%rsp)
-
- #third iteration
-- .byte 0xc4,0x62,0xc3,0xf6,0x8e,0x18,0x00,0x00,0x00 # mulx 24($inp), $out, %r9
-+ mulx 24($inp), $out, %r9
- adox $out, %r12
- adcx %r9, %r13
-
-@@ -586,7 +593,7 @@
- adox %rax, %r13
- adcx %rcx, %r14
-
-- mulx 40($inp), $out, %r9
-+ .byte 0xc4,0x62,0xc3,0xf6,0x8e,0x28,0x00,0x00,0x00 # mulx 40($inp), $out, %r9
- adox $out, %r14
- adcx %r9, %r15
-
-@@ -594,27 +601,28 @@
- adox %rax, %r15
- adcx %rcx, %r8
-
-- .byte 0xc4,0x62,0xc3,0xf6,0x8e,0x38,0x00,0x00,0x00 # mulx 56($inp), $out, %r9
-+ mulx 56($inp), $out, %r9
- adox $out, %r8
- adcx %rbp, %r9
-+ mulx %rdx, %rax, $out
- adox %rbp, %r9
-+ mov 24($inp), %rdx
-
-- mov %r13, %rcx
-- shld \$1, %r12, %r13
-- shld \$1, %rbx, %r12
--
-- xor %ebp, %ebp
-- mulx %rdx, %rax, %rdx
-+ xor %rcx, %rcx
-+ adcx %rbx, %rax
-+ adox %r11, %r11
-+ adcx %rbp, $out
-+ adox %r12, %r12
- adcx %rax, %r11
-- adcx %rdx, %r12
-- mov 24($inp), %rdx
-- adcx %rbp, %r13
-+ adox %rbp, %rcx
-+ adcx $out, %r12
-+ adcx %rbp, %rcx
-
- mov %r11, 32(%rsp)
-- .byte 0x4c,0x89,0xa4,0x24,0x28,0x00,0x00,0x00 # mov %r12, 40(%rsp)
-+ mov %r12, 40(%rsp)
-
- #fourth iteration
-- .byte 0xc4,0xe2,0xfb,0xf6,0x9e,0x20,0x00,0x00,0x00 # mulx 32($inp), %rax, %rbx
-+ mulx 32($inp), %rax, %rbx
- adox %rax, %r14
- adcx %rbx, %r15
-
-@@ -629,25 +637,25 @@
- mulx 56($inp), $out, %r10
- adox $out, %r9
- adcx %rbp, %r10
-+ mulx %rdx, %rax, $out
- adox %rbp, %r10
-+ mov 32($inp), %rdx
-
-- .byte 0x66
-- mov %r15, %rbx
-- shld \$1, %r14, %r15
-- shld \$1, %rcx, %r14
--
-- xor %ebp, %ebp
-- mulx %rdx, %rax, %rdx
-+ xor %rbx, %rbx
-+ adcx %rcx, %rax
-+ adox %r13, %r13
-+ adcx %rbp, $out
-+ adox %r14, %r14
- adcx %rax, %r13
-- adcx %rdx, %r14
-- mov 32($inp), %rdx
-- adcx %rbp, %r15
-+ adox %rbp, %rbx
-+ adcx $out, %r14
-+ adcx %rbp, %rbx
-
- mov %r13, 48(%rsp)
- mov %r14, 56(%rsp)
-
- #fifth iteration
-- .byte 0xc4,0x62,0xc3,0xf6,0x9e,0x28,0x00,0x00,0x00 # mulx 40($inp), $out, %r11
-+ mulx 40($inp), $out, %r11
- adox $out, %r8
- adcx %r11, %r9
-
-@@ -658,18 +666,19 @@
- mulx 56($inp), $out, %r11
- adox $out, %r10
- adcx %rbp, %r11
-+ mulx %rdx, %rax, $out
-+ mov 40($inp), %rdx
- adox %rbp, %r11
-
-- mov %r9, %rcx
-- shld \$1, %r8, %r9
-- shld \$1, %rbx, %r8
--
-- xor %ebp, %ebp
-- mulx %rdx, %rax, %rdx
-+ xor %rcx, %rcx
-+ adcx %rbx, %rax
-+ adox %r15, %r15
-+ adcx %rbp, $out
-+ adox %r8, %r8
- adcx %rax, %r15
-- adcx %rdx, %r8
-- mov 40($inp), %rdx
-- adcx %rbp, %r9
-+ adox %rbp, %rcx
-+ adcx $out, %r8
-+ adcx %rbp, %rcx
-
- mov %r15, 64(%rsp)
- mov %r8, 72(%rsp)
-@@ -682,18 +691,19 @@
- .byte 0xc4,0x62,0xc3,0xf6,0xa6,0x38,0x00,0x00,0x00 # mulx 56($inp), $out, %r12
- adox $out, %r11
- adcx %rbp, %r12
-+ mulx %rdx, %rax, $out
- adox %rbp, %r12
-+ mov 48($inp), %rdx
-
-- mov %r11, %rbx
-- shld \$1, %r10, %r11
-- shld \$1, %rcx, %r10
--
-- xor %ebp, %ebp
-- mulx %rdx, %rax, %rdx
-+ xor %rbx, %rbx
-+ adcx %rcx, %rax
-+ adox %r9, %r9
-+ adcx %rbp, $out
-+ adox %r10, %r10
- adcx %rax, %r9
-- adcx %rdx, %r10
-- mov 48($inp), %rdx
-- adcx %rbp, %r11
-+ adcx $out, %r10
-+ adox %rbp, %rbx
-+ adcx %rbp, %rbx
-
- mov %r9, 80(%rsp)
- mov %r10, 88(%rsp)
-@@ -703,31 +713,31 @@
- adox %rax, %r12
- adox %rbp, %r13
-
-- xor %r14, %r14
-- shld \$1, %r13, %r14
-- shld \$1, %r12, %r13
-- shld \$1, %rbx, %r12
--
-- xor %ebp, %ebp
-- mulx %rdx, %rax, %rdx
-- adcx %rax, %r11
-- adcx %rdx, %r12
-+ mulx %rdx, %rax, $out
-+ xor %rcx, %rcx
- mov 56($inp), %rdx
-- adcx %rbp, %r13
-+ adcx %rbx, %rax
-+ adox %r11, %r11
-+ adcx %rbp, $out
-+ adox %r12, %r12
-+ adcx %rax, %r11
-+ adox %rbp, %rcx
-+ adcx $out, %r12
-+ adcx %rbp, %rcx
-
- .byte 0x4c,0x89,0x9c,0x24,0x60,0x00,0x00,0x00 # mov %r11, 96(%rsp)
- .byte 0x4c,0x89,0xa4,0x24,0x68,0x00,0x00,0x00 # mov %r12, 104(%rsp)
-
- #eighth iteration
- mulx %rdx, %rax, %rdx
-- adox %rax, %r13
-- adox %rbp, %rdx
-+ xor %rbx, %rbx
-+ adcx %rcx, %rax
-+ adox %r13, %r13
-+ adcx %rbp, %rdx
-+ adox %rbp, %rbx
-+ adcx %r13, %rax
-+ adcx %rdx, %rbx
-
-- .byte 0x66
-- add %rdx, %r14
--
-- movq %r13, 112(%rsp)
-- movq %r14, 120(%rsp)
- movq %xmm0, $out
- movq %xmm1, %rbp
-
-@@ -741,6 +751,9 @@
- movq 48(%rsp), %r14
- movq 56(%rsp), %r15
-
-+ movq %rax, 112(%rsp)
-+ movq %rbx, 120(%rsp)
-+
- call __rsaz_512_reducex
-
- addq 64(%rsp), %r8
diff --git a/meta/recipes-connectivity/openssl/openssl_1.1.1d.bb b/meta/recipes-connectivity/openssl/openssl_1.1.1g.bb
index c2ba005f47..815955837b 100644
--- a/meta/recipes-connectivity/openssl/openssl_1.1.1d.bb
+++ b/meta/recipes-connectivity/openssl/openssl_1.1.1g.bb
@@ -16,7 +16,6 @@ SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \
file://0001-skip-test_symbol_presence.patch \
file://0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch \
file://afalg.patch \
- file://CVE-2019-1551.patch \
file://reproducible.patch \
"
@@ -24,8 +23,7 @@ SRC_URI_append_class-nativesdk = " \
file://environment.d-openssl.sh \
"
-SRC_URI[md5sum] = "3be209000dbc7e1b95bcdf47980a3baa"
-SRC_URI[sha256sum] = "1e3a91bc1f9dfce01af26026f856e064eab4c8ee0a8f457b5ae30b40b8b711f2"
+SRC_URI[sha256sum] = "ddb04774f1e32f0c49751e21b67216ac87852ceb056b75209af2443400636d46"
inherit lib_package multilib_header multilib_script ptest
MULTILIB_SCRIPTS = "${PN}-bin:${bindir}/c_rehash"
@@ -34,7 +32,7 @@ PACKAGECONFIG ?= ""
PACKAGECONFIG_class-native = ""
PACKAGECONFIG_class-nativesdk = ""
-PACKAGECONFIG[cryptodev-linux] = "enable-devcryptoeng,disable-devcryptoeng,cryptodev-linux"
+PACKAGECONFIG[cryptodev-linux] = "enable-devcryptoeng,disable-devcryptoeng,cryptodev-linux,,cryptodev-module"
B = "${WORKDIR}/build"
do_configure[cleandirs] = "${B}"
@@ -123,7 +121,7 @@ do_configure () {
fi
# WARNING: do not set compiler/linker flags (-I/-D etc.) in EXTRA_OECONF, as they will fully replace the
# environment variables set by bitbake. Adjust the environment variables instead.
- PERL5LIB="${S}/external/perl/Text-Template-1.46/lib/" \
+ HASHBANGPERL="/usr/bin/env perl" PERL=perl PERL5LIB="${S}/external/perl/Text-Template-1.46/lib/" \
perl ${S}/Configure ${EXTRA_OECONF} ${PACKAGECONFIG_CONFARGS} --prefix=$useprefix --openssldir=${libdir}/ssl-1.1 --libdir=${libdir} $target
perl ${B}/configdata.pm --dump
}
@@ -193,7 +191,9 @@ PACKAGES =+ "libcrypto libssl openssl-conf ${PN}-engines ${PN}-misc"
FILES_libcrypto = "${libdir}/libcrypto${SOLIBS}"
FILES_libssl = "${libdir}/libssl${SOLIBS}"
-FILES_openssl-conf = "${sysconfdir}/ssl/openssl.cnf"
+FILES_openssl-conf = "${sysconfdir}/ssl/openssl.cnf \
+ ${libdir}/ssl-1.1/openssl.cnf* \
+ "
FILES_${PN}-engines = "${libdir}/engines-1.1"
FILES_${PN}-misc = "${libdir}/ssl-1.1/misc"
FILES_${PN} =+ "${libdir}/ssl-1.1/*"
@@ -204,6 +204,8 @@ CONFFILES_openssl-conf = "${sysconfdir}/ssl/openssl.cnf"
RRECOMMENDS_libcrypto += "openssl-conf"
RDEPENDS_${PN}-ptest += "openssl-bin perl perl-modules bash"
+RDEPENDS_${PN}-bin += "openssl-conf"
+
BBCLASSEXTEND = "native nativesdk"
CVE_PRODUCT = "openssl:openssl"
diff --git a/meta/recipes-connectivity/ppp/ppp/0001-Fix-build-with-musl.patch b/meta/recipes-connectivity/ppp/ppp/0001-Fix-build-with-musl.patch
index 763e374488..65291368bd 100644
--- a/meta/recipes-connectivity/ppp/ppp/0001-Fix-build-with-musl.patch
+++ b/meta/recipes-connectivity/ppp/ppp/0001-Fix-build-with-musl.patch
@@ -1,4 +1,4 @@
-From 52a1e41d7541b2c936285844c59bd1be21797860 Mon Sep 17 00:00:00 2001
+From e50cdaed07e51f2508f94eb1f34fe43776e4ca78 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 May 2015 14:57:05 -0700
Subject: [PATCH] Fix build with musl
@@ -6,18 +6,16 @@ Subject: [PATCH] Fix build with musl
There are several assumption about glibc
Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
Upstream-Status: Pending
-
+---
include/net/ppp_defs.h | 2 ++
pppd/Makefile.linux | 2 +-
- pppd/magic.h | 6 +++---
- pppd/plugins/rp-pppoe/config.h | 5 ++++-
+ pppd/plugins/rp-pppoe/config.h | 3 ++-
pppd/plugins/rp-pppoe/plugin.c | 1 -
pppd/plugins/rp-pppoe/pppoe-discovery.c | 8 ++++----
pppd/plugins/rp-pppoe/pppoe.h | 2 +-
pppd/sys-linux.c | 3 ++-
- 8 files changed, 17 insertions(+), 12 deletions(-)
+ 7 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/include/net/ppp_defs.h b/include/net/ppp_defs.h
index b06eda5..dafa36c 100644
@@ -33,11 +31,11 @@ index b06eda5..dafa36c 100644
* The basic PPP frame.
*/
diff --git a/pppd/Makefile.linux b/pppd/Makefile.linux
-index 8ab2102..d7e2564 100644
+index 4e485a1..76411bc 100644
--- a/pppd/Makefile.linux
+++ b/pppd/Makefile.linux
-@@ -126,7 +126,7 @@ LIBS += -lcrypt
- #endif
+@@ -131,7 +131,7 @@ LIBS += -lcrypt
+ endif
ifdef USE_LIBUTIL
-CFLAGS += -DHAVE_LOGWTMP=1
@@ -45,24 +43,8 @@ index 8ab2102..d7e2564 100644
LIBS += -lutil
endif
-diff --git a/pppd/magic.h b/pppd/magic.h
-index c81213b..9d399e3 100644
---- a/pppd/magic.h
-+++ b/pppd/magic.h
-@@ -42,8 +42,8 @@
- * $Id: magic.h,v 1.5 2003/06/11 23:56:26 paulus Exp $
- */
-
--void magic_init __P((void)); /* Initialize the magic number generator */
--u_int32_t magic __P((void)); /* Returns the next magic number */
-+void magic_init (void); /* Initialize the magic number generator */
-+u_int32_t magic (void); /* Returns the next magic number */
-
- /* Fill buffer with random bytes */
--void random_bytes __P((unsigned char *buf, int len));
-+void random_bytes (unsigned char *buf, int len);
diff --git a/pppd/plugins/rp-pppoe/config.h b/pppd/plugins/rp-pppoe/config.h
-index 5703087..fff032e 100644
+index a708859..4a16a88 100644
--- a/pppd/plugins/rp-pppoe/config.h
+++ b/pppd/plugins/rp-pppoe/config.h
@@ -78,8 +78,9 @@
@@ -76,18 +58,8 @@ index 5703087..fff032e 100644
/* Define if you have the <net/if.h> header file. */
#define HAVE_NET_IF_H 1
-@@ -102,7 +103,9 @@
- #define HAVE_NETPACKET_PACKET_H 1
-
- /* Define if you have the <sys/cdefs.h> header file. */
-+#ifdef __GLIBC__
- #define HAVE_SYS_CDEFS_H 1
-+#endif
-
- /* Define if you have the <sys/dlpi.h> header file. */
- /* #undef HAVE_SYS_DLPI_H */
diff --git a/pppd/plugins/rp-pppoe/plugin.c b/pppd/plugins/rp-pppoe/plugin.c
-index a8c2bb4..ca34d79 100644
+index 44e0c31..93c0906 100644
--- a/pppd/plugins/rp-pppoe/plugin.c
+++ b/pppd/plugins/rp-pppoe/plugin.c
@@ -46,7 +46,6 @@ static char const RCSID[] =
@@ -99,10 +71,10 @@ index a8c2bb4..ca34d79 100644
#include <linux/ppp_defs.h>
#include <linux/if_pppox.h>
diff --git a/pppd/plugins/rp-pppoe/pppoe-discovery.c b/pppd/plugins/rp-pppoe/pppoe-discovery.c
-index 3d3bf4e..d42f619 100644
+index f19c6d8..f45df2c 100644
--- a/pppd/plugins/rp-pppoe/pppoe-discovery.c
+++ b/pppd/plugins/rp-pppoe/pppoe-discovery.c
-@@ -27,10 +27,6 @@
+@@ -29,10 +29,6 @@
#include <linux/if_packet.h>
#endif
@@ -113,22 +85,11 @@ index 3d3bf4e..d42f619 100644
#ifdef HAVE_ASM_TYPES_H
#include <asm/types.h>
#endif
-@@ -47,6 +43,10 @@
- #include <net/if_arp.h>
- #endif
-
-+#ifndef __GLIBC__
-+#define error(x...) fprintf(stderr, x)
-+#endif
-+
- char *xstrdup(const char *s);
- void usage(void);
-
diff --git a/pppd/plugins/rp-pppoe/pppoe.h b/pppd/plugins/rp-pppoe/pppoe.h
-index 9ab2eee..75b9004 100644
+index a4e7d5c..de191c8 100644
--- a/pppd/plugins/rp-pppoe/pppoe.h
+++ b/pppd/plugins/rp-pppoe/pppoe.h
-@@ -92,7 +92,7 @@ typedef unsigned long UINT32_t;
+@@ -90,7 +90,7 @@ typedef unsigned long UINT32_t;
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
@@ -138,7 +99,7 @@ index 9ab2eee..75b9004 100644
#endif
#endif
diff --git a/pppd/sys-linux.c b/pppd/sys-linux.c
-index a105505..49b0273 100644
+index a0531e9..84ee394 100644
--- a/pppd/sys-linux.c
+++ b/pppd/sys-linux.c
@@ -112,7 +112,7 @@
@@ -159,5 +120,5 @@ index a105505..49b0273 100644
/*
* This is in linux/include/net/ipv6.h.
--
-2.1.4
+2.17.1
diff --git a/meta/recipes-connectivity/ppp/ppp/0001-ppp-Fix-compilation-errors-in-Makefile.patch b/meta/recipes-connectivity/ppp/ppp/0001-ppp-Fix-compilation-errors-in-Makefile.patch
deleted file mode 100644
index ea4969b366..0000000000
--- a/meta/recipes-connectivity/ppp/ppp/0001-ppp-Fix-compilation-errors-in-Makefile.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From ba0f6058d1f25b2b60fc31ab2656bf12a71ffdab Mon Sep 17 00:00:00 2001
-From: Lu Chong <Chong.Lu@windriver.com>
-Date: Tue, 5 Nov 2013 17:32:56 +0800
-Subject: [PATCH] ppp: Fix compilation errors in Makefile
-
-Make can't exit while compilation error occurs in subdir for plugins building.
-
-Upstream-Status: Pending
-
-Signed-off-by: Lu Chong <Chong.Lu@windriver.com>
----
- pppd/plugins/Makefile.linux | 1 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/pppd/plugins/Makefile.linux b/pppd/plugins/Makefile.linux
-index 0a7ec7b..2a2c15a 100644
---- a/pppd/plugins/Makefile.linux
-+++ b/pppd/plugins/Makefile.linux
-@@ -20,7 +20,7 @@ include .depend
- endif
-
- all: $(PLUGINS)
-- for d in $(SUBDIRS); do $(MAKE) $(MFLAGS) -C $$d all; done
-+ for d in $(SUBDIRS); do $(MAKE) $(MFLAGS) -C $$d all || exit 1; done
-
- %.so: %.c
- $(CC) -o $@ $(LDFLAGS) $(CFLAGS) $^
---
-1.7.9.5
-
diff --git a/meta/recipes-connectivity/ppp/ppp/0001-pppoe-include-netinet-in.h-before-linux-in.h.patch b/meta/recipes-connectivity/ppp/ppp/0001-pppoe-include-netinet-in.h-before-linux-in.h.patch
deleted file mode 100644
index 9362d12648..0000000000
--- a/meta/recipes-connectivity/ppp/ppp/0001-pppoe-include-netinet-in.h-before-linux-in.h.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 50a2997b256e0e0ef7a46fae133f56f60fce539c Mon Sep 17 00:00:00 2001
-From: Lubomir Rintel <lkundrak@v3.sk>
-Date: Mon, 9 Jan 2017 13:34:23 +0000
-Subject: [PATCH] pppoe: include netinet/in.h before linux/in.h
-
-This fixes builds with newer kernels. Basically, <netinet/in.h> needs to be
-included before <linux/in.h> otherwise the earlier, unaware of the latter,
-tries to redefine symbols and structures. Also, <linux/if_pppox.h> doesn't work
-alone anymore, since it pulls the headers in the wrong order, so we better
-include <netinet/in.h> early.
-
-Upstream-Status: Backport
-[https://github.com/paulusmack/ppp/commit/50a2997b256e0e0ef7a46fae133f56f60fce539c]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- pppd/plugins/rp-pppoe/pppoe.h | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/pppd/plugins/rp-pppoe/pppoe.h b/pppd/plugins/rp-pppoe/pppoe.h
-index 9ab2eee..c4aaa6e 100644
---- a/pppd/plugins/rp-pppoe/pppoe.h
-+++ b/pppd/plugins/rp-pppoe/pppoe.h
-@@ -47,6 +47,10 @@
- #include <sys/socket.h>
- #endif
-
-+/* This has to be included before Linux 4.8's linux/in.h
-+ * gets dragged in. */
-+#include <netinet/in.h>
-+
- /* Ugly header files on some Linux boxes... */
- #if defined(HAVE_LINUX_IF_H)
- #include <linux/if.h>
-@@ -84,8 +88,6 @@ typedef unsigned long UINT32_t;
- #include <linux/if_ether.h>
- #endif
-
--#include <netinet/in.h>
--
- #ifdef HAVE_NETINET_IF_ETHER_H
- #include <sys/types.h>
-
-@@ -98,7 +100,6 @@ typedef unsigned long UINT32_t;
- #endif
-
-
--
- /* Ethernet frame types according to RFC 2516 */
- #define ETH_PPPOE_DISCOVERY 0x8863
- #define ETH_PPPOE_SESSION 0x8864
---
-2.7.4
-
diff --git a/meta/recipes-connectivity/ppp/ppp/cifdefroute.patch b/meta/recipes-connectivity/ppp/ppp/cifdefroute.patch
deleted file mode 100644
index 7dd69d8f4d..0000000000
--- a/meta/recipes-connectivity/ppp/ppp/cifdefroute.patch
+++ /dev/null
@@ -1,297 +0,0 @@
-This patch comes from OpenEmbedded.
-The original patch is from Debian / SuSE to implement replacedefaultroute
-Rebased it to fit ppp-2.4.5. Dongxiao Xu <dongxiao.xu@intel.com>
-
-Upstream-Status: Inappropriate [debian/suse patches]
-
-Index: ppp-2.4.7/pppd/ipcp.c
-===================================================================
---- ppp-2.4.7.orig/pppd/ipcp.c
-+++ ppp-2.4.7/pppd/ipcp.c
-@@ -198,6 +198,16 @@ static option_t ipcp_option_list[] = {
- "disable defaultroute option", OPT_ALIAS | OPT_A2CLR,
- &ipcp_wantoptions[0].default_route },
-
-+#ifdef __linux__
-+ { "replacedefaultroute", o_bool,
-+ &ipcp_wantoptions[0].replace_default_route,
-+ "Replace default route", 1
-+ },
-+ { "noreplacedefaultroute", o_bool,
-+ &ipcp_allowoptions[0].replace_default_route,
-+ "Never replace default route", OPT_A2COPY,
-+ &ipcp_wantoptions[0].replace_default_route },
-+#endif
- { "proxyarp", o_bool, &ipcp_wantoptions[0].proxy_arp,
- "Add proxy ARP entry", OPT_ENABLE|1, &ipcp_allowoptions[0].proxy_arp },
- { "noproxyarp", o_bool, &ipcp_allowoptions[0].proxy_arp,
-@@ -271,7 +281,7 @@ struct protent ipcp_protent = {
- ip_active_pkt
- };
-
--static void ipcp_clear_addrs __P((int, u_int32_t, u_int32_t));
-+static void ipcp_clear_addrs __P((int, u_int32_t, u_int32_t, bool));
- static void ipcp_script __P((char *, int)); /* Run an up/down script */
- static void ipcp_script_done __P((void *));
-
-@@ -1761,7 +1771,12 @@ ip_demand_conf(u)
- if (!sifnpmode(u, PPP_IP, NPMODE_QUEUE))
- return 0;
- if (wo->default_route)
-+#ifndef __linux__
- if (sifdefaultroute(u, wo->ouraddr, wo->hisaddr))
-+#else
-+ if (sifdefaultroute(u, wo->ouraddr, wo->hisaddr,
-+ wo->replace_default_route))
-+#endif
- default_route_set[u] = 1;
- if (wo->proxy_arp)
- if (sifproxyarp(u, wo->hisaddr))
-@@ -1849,7 +1864,8 @@ ipcp_up(f)
- */
- if (demand) {
- if (go->ouraddr != wo->ouraddr || ho->hisaddr != wo->hisaddr) {
-- ipcp_clear_addrs(f->unit, wo->ouraddr, wo->hisaddr);
-+ ipcp_clear_addrs(f->unit, wo->ouraddr, wo->hisaddr,
-+ wo->replace_default_route);
- if (go->ouraddr != wo->ouraddr) {
- warn("Local IP address changed to %I", go->ouraddr);
- script_setenv("OLDIPLOCAL", ip_ntoa(wo->ouraddr), 0);
-@@ -1874,7 +1890,12 @@ ipcp_up(f)
-
- /* assign a default route through the interface if required */
- if (ipcp_wantoptions[f->unit].default_route)
-+#ifndef __linux__
- if (sifdefaultroute(f->unit, go->ouraddr, ho->hisaddr))
-+#else
-+ if (sifdefaultroute(f->unit, go->ouraddr, ho->hisaddr,
-+ wo->replace_default_route))
-+#endif
- default_route_set[f->unit] = 1;
-
- /* Make a proxy ARP entry if requested. */
-@@ -1924,7 +1945,12 @@ ipcp_up(f)
-
- /* assign a default route through the interface if required */
- if (ipcp_wantoptions[f->unit].default_route)
-+#ifndef __linux__
- if (sifdefaultroute(f->unit, go->ouraddr, ho->hisaddr))
-+#else
-+ if (sifdefaultroute(f->unit, go->ouraddr, ho->hisaddr,
-+ wo->replace_default_route))
-+#endif
- default_route_set[f->unit] = 1;
-
- /* Make a proxy ARP entry if requested. */
-@@ -2002,7 +2028,7 @@ ipcp_down(f)
- sifnpmode(f->unit, PPP_IP, NPMODE_DROP);
- sifdown(f->unit);
- ipcp_clear_addrs(f->unit, ipcp_gotoptions[f->unit].ouraddr,
-- ipcp_hisoptions[f->unit].hisaddr);
-+ ipcp_hisoptions[f->unit].hisaddr, 0);
- }
-
- /* Execute the ip-down script */
-@@ -2018,12 +2044,21 @@ ipcp_down(f)
- * proxy arp entries, etc.
- */
- static void
--ipcp_clear_addrs(unit, ouraddr, hisaddr)
-+ipcp_clear_addrs(unit, ouraddr, hisaddr, replacedefaultroute)
- int unit;
- u_int32_t ouraddr; /* local address */
- u_int32_t hisaddr; /* remote address */
-+ bool replacedefaultroute;
- {
-- if (proxy_arp_set[unit]) {
-+ /* If replacedefaultroute, sifdefaultroute will be called soon
-+ * with replacedefaultroute set and that will overwrite the current
-+ * default route. This is the case only when doing demand, otherwise
-+ * during demand, this cifdefaultroute would restore the old default
-+ * route which is not what we want in this case. In the non-demand
-+ * case, we'll delete the default route and restore the old if there
-+ * is one saved by an sifdefaultroute with replacedefaultroute.
-+ */
-+ if (!replacedefaultroute && default_route_set[unit]) {
- cifproxyarp(unit, hisaddr);
- proxy_arp_set[unit] = 0;
- }
-Index: ppp-2.4.7/pppd/ipcp.h
-===================================================================
---- ppp-2.4.7.orig/pppd/ipcp.h
-+++ ppp-2.4.7/pppd/ipcp.h
-@@ -70,6 +70,7 @@ typedef struct ipcp_options {
- bool old_addrs; /* Use old (IP-Addresses) option? */
- bool req_addr; /* Ask peer to send IP address? */
- bool default_route; /* Assign default route through interface? */
-+ bool replace_default_route; /* Replace default route through interface? */
- bool proxy_arp; /* Make proxy ARP entry for peer? */
- bool neg_vj; /* Van Jacobson Compression? */
- bool old_vj; /* use old (short) form of VJ option? */
-Index: ppp-2.4.7/pppd/pppd.8
-===================================================================
---- ppp-2.4.7.orig/pppd/pppd.8
-+++ ppp-2.4.7/pppd/pppd.8
-@@ -121,6 +121,13 @@ the gateway, when IPCP negotiation is su
- This entry is removed when the PPP connection is broken. This option
- is privileged if the \fInodefaultroute\fR option has been specified.
- .TP
-+.B replacedefaultroute
-+This option is a flag to the defaultroute option. If defaultroute is
-+set and this flag is also set, pppd replaces an existing default route
-+with the new default route.
-+
-+
-+.TP
- .B disconnect \fIscript
- Execute the command specified by \fIscript\fR, by passing it to a
- shell, after
-@@ -734,7 +741,12 @@ disable both forms of hardware flow cont
- .TP
- .B nodefaultroute
- Disable the \fIdefaultroute\fR option. The system administrator who
--wishes to prevent users from creating default routes with pppd
-+wishes to prevent users from adding a default route with pppd
-+can do so by placing this option in the /etc/ppp/options file.
-+.TP
-+.B noreplacedefaultroute
-+Disable the \fIreplacedefaultroute\fR option. The system administrator who
-+wishes to prevent users from replacing a default route with pppd
- can do so by placing this option in the /etc/ppp/options file.
- .TP
- .B nodeflate
-Index: ppp-2.4.7/pppd/pppd.h
-===================================================================
---- ppp-2.4.7.orig/pppd/pppd.h
-+++ ppp-2.4.7/pppd/pppd.h
-@@ -665,7 +665,11 @@ int sif6addr __P((int, eui64_t, eui64_t
- int cif6addr __P((int, eui64_t, eui64_t));
- /* Remove an IPv6 address from i/f */
- #endif
-+#ifndef __linux__
- int sifdefaultroute __P((int, u_int32_t, u_int32_t));
-+#else
-+int sifdefaultroute __P((int, u_int32_t, u_int32_t, bool replace_default_rt));
-+#endif
- /* Create default route through i/f */
- int cifdefaultroute __P((int, u_int32_t, u_int32_t));
- /* Delete default route through i/f */
-Index: ppp-2.4.7/pppd/sys-linux.c
-===================================================================
---- ppp-2.4.7.orig/pppd/sys-linux.c
-+++ ppp-2.4.7/pppd/sys-linux.c
-@@ -207,6 +207,8 @@ static unsigned char inbuf[512]; /* buff
- static int if_is_up; /* Interface has been marked up */
- static int if6_is_up; /* Interface has been marked up for IPv6, to help differentiate */
- static int have_default_route; /* Gateway for default route added */
-+static struct rtentry old_def_rt; /* Old default route */
-+static int default_rt_repl_rest; /* replace and restore old default rt */
- static u_int32_t proxy_arp_addr; /* Addr for proxy arp entry added */
- static char proxy_arp_dev[16]; /* Device for proxy arp entry */
- static u_int32_t our_old_addr; /* for detecting address changes */
-@@ -1545,6 +1547,9 @@ static int read_route_table(struct rtent
- p = NULL;
- }
-
-+ SET_SA_FAMILY (rt->rt_dst, AF_INET);
-+ SET_SA_FAMILY (rt->rt_gateway, AF_INET);
-+
- SIN_ADDR(rt->rt_dst) = strtoul(cols[route_dest_col], NULL, 16);
- SIN_ADDR(rt->rt_gateway) = strtoul(cols[route_gw_col], NULL, 16);
- SIN_ADDR(rt->rt_genmask) = strtoul(cols[route_mask_col], NULL, 16);
-@@ -1614,20 +1619,51 @@ int have_route_to(u_int32_t addr)
- /********************************************************************
- *
- * sifdefaultroute - assign a default route through the address given.
-- */
--
--int sifdefaultroute (int unit, u_int32_t ouraddr, u_int32_t gateway)
--{
-- struct rtentry rt;
--
-- if (defaultroute_exists(&rt) && strcmp(rt.rt_dev, ifname) != 0) {
-- if (rt.rt_flags & RTF_GATEWAY)
-- error("not replacing existing default route via %I",
-- SIN_ADDR(rt.rt_gateway));
-- else
-- error("not replacing existing default route through %s",
-- rt.rt_dev);
-- return 0;
-+ *
-+ * If the global default_rt_repl_rest flag is set, then this function
-+ * already replaced the original system defaultroute with some other
-+ * route and it should just replace the current defaultroute with
-+ * another one, without saving the current route. Use: demand mode,
-+ * when pppd sets first a defaultroute it it's temporary ppp0 addresses
-+ * and then changes the temporary addresses to the addresses for the real
-+ * ppp connection when it has come up.
-+ */
-+
-+int sifdefaultroute (int unit, u_int32_t ouraddr, u_int32_t gateway, bool replace)
-+{
-+ struct rtentry rt, tmp_rt;
-+ struct rtentry *del_rt = NULL;
-+
-+ if (default_rt_repl_rest) {
-+ /* We have already reclaced the original defaultroute, if we
-+ * are called again, we will delete the current default route
-+ * and set the new default route in this function.
-+ * - this is normally only the case the doing demand: */
-+ if (defaultroute_exists( &tmp_rt ))
-+ del_rt = &tmp_rt;
-+ } else if ( defaultroute_exists( &old_def_rt ) &&
-+ strcmp( old_def_rt.rt_dev, ifname ) != 0) {
-+ /* We did not yet replace an existing default route, let's
-+ * check if we should save and replace a default route:
-+ */
-+ u_int32_t old_gateway = SIN_ADDR(old_def_rt.rt_gateway);
-+ if (old_gateway != gateway) {
-+ if (!replace) {
-+ error("not replacing default route to %s [%I]",
-+ old_def_rt.rt_dev, old_gateway);
-+ return 0;
-+ } else {
-+ // we need to copy rt_dev because we need it permanent too:
-+ char * tmp_dev = malloc(strlen(old_def_rt.rt_dev)+1);
-+ strcpy(tmp_dev, old_def_rt.rt_dev);
-+ old_def_rt.rt_dev = tmp_dev;
-+
-+ notice("replacing old default route to %s [%I]",
-+ old_def_rt.rt_dev, old_gateway);
-+ default_rt_repl_rest = 1;
-+ del_rt = &old_def_rt;
-+ }
-+ }
- }
-
- memset (&rt, 0, sizeof (rt));
-@@ -1646,6 +1682,12 @@ int sifdefaultroute (int unit, u_int32_t
- error("default route ioctl(SIOCADDRT): %m");
- return 0;
- }
-+ if (default_rt_repl_rest && del_rt)
-+ if (ioctl(sock_fd, SIOCDELRT, del_rt) < 0) {
-+ if ( ! ok_error ( errno ))
-+ error("del old default route ioctl(SIOCDELRT): %m(%d)", errno);
-+ return 0;
-+ }
-
- have_default_route = 1;
- return 1;
-@@ -1681,6 +1723,16 @@ int cifdefaultroute (int unit, u_int32_t
- return 0;
- }
- }
-+ if (default_rt_repl_rest) {
-+ notice("restoring old default route to %s [%I]",
-+ old_def_rt.rt_dev, SIN_ADDR(old_def_rt.rt_gateway));
-+ if (ioctl(sock_fd, SIOCADDRT, &old_def_rt) < 0) {
-+ if ( ! ok_error ( errno ))
-+ error("restore default route ioctl(SIOCADDRT): %m(%d)", errno);
-+ return 0;
-+ }
-+ default_rt_repl_rest = 0;
-+ }
-
- return 1;
- }
diff --git a/meta/recipes-connectivity/ppp/ppp/makefile-remove-hard-usr-reference.patch b/meta/recipes-connectivity/ppp/ppp/makefile-remove-hard-usr-reference.patch
index 8a69396cc7..614a474c37 100644
--- a/meta/recipes-connectivity/ppp/ppp/makefile-remove-hard-usr-reference.patch
+++ b/meta/recipes-connectivity/ppp/ppp/makefile-remove-hard-usr-reference.patch
@@ -1,3 +1,8 @@
+From 505705d0e1b55ce3fdc10d0e5eab5488f869adb6 Mon Sep 17 00:00:00 2001
+From: Andreas Oberritter <obi@opendreambox.org>
+Date: Thu, 1 Jul 2010 14:34:12 +0800
+Subject: [PATCH] ppp: Upgraded to version 2.4.5
+
The patch comes from OpenEmbedded.
Rebased for ppp-2.4.5. Dongxiao Xu <dongxiao.xu@intel.com>
@@ -6,24 +11,15 @@ Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Upstream-Status: Inappropriate [configuration]
-Index: ppp-2.4.7/pppd/Makefile.linux
-===================================================================
---- ppp-2.4.7.orig/pppd/Makefile.linux
-+++ ppp-2.4.7/pppd/Makefile.linux
-@@ -120,10 +120,10 @@ CFLAGS += -DHAS_SHADOW
- #LIBS += -lshadow $(LIBS)
- endif
-
--ifneq ($(wildcard /usr/include/crypt.h),)
-+#ifneq ($(wildcard /usr/include/crypt.h),)
- CFLAGS += -DHAVE_CRYPT_H=1
- LIBS += -lcrypt
--endif
-+#endif
-
- ifdef USE_LIBUTIL
- CFLAGS += -DHAVE_LOGWTMP=1
-@@ -177,10 +177,10 @@ LIBS += -ldl
+---
+ pppd/Makefile.linux | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/pppd/Makefile.linux b/pppd/Makefile.linux
+index 4e485a1..44c4193 100644
+--- a/pppd/Makefile.linux
++++ b/pppd/Makefile.linux
+@@ -188,10 +188,10 @@ LIBS += -ldl
endif
ifdef FILTER
diff --git a/meta/recipes-connectivity/ppp/ppp/makefile.patch b/meta/recipes-connectivity/ppp/ppp/makefile.patch
index 2d09baf5d0..25b8ded441 100644
--- a/meta/recipes-connectivity/ppp/ppp/makefile.patch
+++ b/meta/recipes-connectivity/ppp/ppp/makefile.patch
@@ -1,12 +1,27 @@
+From f7fb1d1abfa6d208fb40fca1602e0c488108f1b5 Mon Sep 17 00:00:00 2001
+From: Richard Purdie <richard@openedhand.com>
+Date: Wed, 31 Aug 2005 10:45:47 +0000
+Subject: [PATCH] Initial population
+
The patch comes from OpenEmbedded
Rebased for ppp-2.4.5. Dongxiao Xu <dongxiao.xu@intel.com>
Upstream-Status: Inappropriate [configuration]
-diff -ruN ppp-2.4.5-orig/chat/Makefile.linux ppp-2.4.5/chat/Makefile.linux
---- ppp-2.4.5-orig/chat/Makefile.linux 2010-06-30 15:51:12.050166398 +0800
-+++ ppp-2.4.5/chat/Makefile.linux 2010-06-30 15:51:30.450118446 +0800
-@@ -25,7 +25,7 @@
+---
+ chat/Makefile.linux | 2 +-
+ pppd/Makefile.linux | 4 ++--
+ pppd/plugins/radius/Makefile.linux | 10 +++++-----
+ pppd/plugins/rp-pppoe/Makefile.linux | 4 ++--
+ pppdump/Makefile.linux | 2 +-
+ pppstats/Makefile.linux | 2 +-
+ 6 files changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/chat/Makefile.linux b/chat/Makefile.linux
+index 0732ec8..f082dab 100644
+--- a/chat/Makefile.linux
++++ b/chat/Makefile.linux
+@@ -25,7 +25,7 @@ chat.o: chat.c
install: chat
mkdir -p $(BINDIR) $(MANDIR)
@@ -15,10 +30,11 @@ diff -ruN ppp-2.4.5-orig/chat/Makefile.linux ppp-2.4.5/chat/Makefile.linux
$(INSTALL) -c -m 644 chat.8 $(MANDIR)
clean:
-diff -ruN ppp-2.4.5-orig/pppd/Makefile.linux ppp-2.4.5/pppd/Makefile.linux
---- ppp-2.4.5-orig/pppd/Makefile.linux 2010-06-30 15:51:12.043682063 +0800
-+++ ppp-2.4.5/pppd/Makefile.linux 2010-06-30 15:52:11.214170607 +0800
-@@ -99,7 +99,7 @@
+diff --git a/pppd/Makefile.linux b/pppd/Makefile.linux
+index 9664f70..4e485a1 100644
+--- a/pppd/Makefile.linux
++++ b/pppd/Makefile.linux
+@@ -107,7 +107,7 @@ ifdef USE_SRP
CFLAGS += -DUSE_SRP -DOPENSSL -I/usr/local/ssl/include
LIBS += -lsrp -L/usr/local/ssl/lib -lcrypto
TARGETS += srp-entry
@@ -27,7 +43,7 @@ diff -ruN ppp-2.4.5-orig/pppd/Makefile.linux ppp-2.4.5/pppd/Makefile.linux
MANPAGES += srp-entry.8
EXTRACLEAN += srp-entry.o
NEEDDES=y
-@@ -200,7 +200,7 @@
+@@ -219,7 +219,7 @@ all: $(TARGETS)
install: pppd
mkdir -p $(BINDIR) $(MANDIR)
$(EXTRAINSTALL)
@@ -36,10 +52,11 @@ diff -ruN ppp-2.4.5-orig/pppd/Makefile.linux ppp-2.4.5/pppd/Makefile.linux
if chgrp pppusers $(BINDIR)/pppd 2>/dev/null; then \
chmod o-rx,u+s $(BINDIR)/pppd; fi
$(INSTALL) -c -m 444 pppd.8 $(MANDIR)
-diff -ruN ppp-2.4.5-orig/pppd/plugins/radius/Makefile.linux ppp-2.4.5/pppd/plugins/radius/Makefile.linux
---- ppp-2.4.5-orig/pppd/plugins/radius/Makefile.linux 2010-06-30 15:51:12.047676187 +0800
-+++ ppp-2.4.5/pppd/plugins/radius/Makefile.linux 2010-06-30 15:53:47.750182267 +0800
-@@ -36,11 +36,11 @@
+diff --git a/pppd/plugins/radius/Makefile.linux b/pppd/plugins/radius/Makefile.linux
+index e702263..af57ae3 100644
+--- a/pppd/plugins/radius/Makefile.linux
++++ b/pppd/plugins/radius/Makefile.linux
+@@ -36,11 +36,11 @@ all: $(PLUGIN)
install: all
$(INSTALL) -d -m 755 $(LIBDIR)
@@ -55,11 +72,12 @@ diff -ruN ppp-2.4.5-orig/pppd/plugins/radius/Makefile.linux ppp-2.4.5/pppd/plugi
+ $(INSTALL) -m 444 pppd-radattr.8 $(MANDIR)
radius.so: radius.o libradiusclient.a
- $(CC) -o radius.so -shared radius.o libradiusclient.a
-diff -ruN ppp-2.4.5-orig/pppd/plugins/rp-pppoe/Makefile.linux ppp-2.4.5/pppd/plugins/rp-pppoe/Makefile.linux
---- ppp-2.4.5-orig/pppd/plugins/rp-pppoe/Makefile.linux 2010-06-30 15:51:12.047676187 +0800
-+++ ppp-2.4.5/pppd/plugins/rp-pppoe/Makefile.linux 2010-06-30 15:53:15.454486877 +0800
-@@ -43,9 +43,9 @@
+ $(CC) $(LDFLAGS) -o radius.so -shared radius.o libradiusclient.a
+diff --git a/pppd/plugins/rp-pppoe/Makefile.linux b/pppd/plugins/rp-pppoe/Makefile.linux
+index 749ccc2..2c93f4a 100644
+--- a/pppd/plugins/rp-pppoe/Makefile.linux
++++ b/pppd/plugins/rp-pppoe/Makefile.linux
+@@ -43,9 +43,9 @@ rp-pppoe.so: plugin.o discovery.o if.o common.o
install: all
$(INSTALL) -d -m 755 $(LIBDIR)
@@ -71,20 +89,22 @@ diff -ruN ppp-2.4.5-orig/pppd/plugins/rp-pppoe/Makefile.linux ppp-2.4.5/pppd/plu
clean:
rm -f *.o *.so pppoe-discovery
-diff -ruN ppp-2.4.5-orig/pppdump/Makefile.linux ppp-2.4.5/pppdump/Makefile.linux
---- ppp-2.4.5-orig/pppdump/Makefile.linux 2010-06-30 15:51:12.058183383 +0800
-+++ ppp-2.4.5/pppdump/Makefile.linux 2010-06-30 15:52:25.762183537 +0800
-@@ -17,5 +17,5 @@
+diff --git a/pppdump/Makefile.linux b/pppdump/Makefile.linux
+index cdf7ac4..0457561 100644
+--- a/pppdump/Makefile.linux
++++ b/pppdump/Makefile.linux
+@@ -17,5 +17,5 @@ clean:
install:
mkdir -p $(BINDIR) $(MANDIR)
- $(INSTALL) -s -c pppdump $(BINDIR)
+ $(INSTALL) -c pppdump $(BINDIR)
$(INSTALL) -c -m 444 pppdump.8 $(MANDIR)
-diff -ruN ppp-2.4.5-orig/pppstats/Makefile.linux ppp-2.4.5/pppstats/Makefile.linux
---- ppp-2.4.5-orig/pppstats/Makefile.linux 2010-06-30 15:51:12.058183383 +0800
-+++ ppp-2.4.5/pppstats/Makefile.linux 2010-06-30 15:52:42.486341081 +0800
-@@ -22,7 +22,7 @@
+diff --git a/pppstats/Makefile.linux b/pppstats/Makefile.linux
+index 71afbe6..1819370 100644
+--- a/pppstats/Makefile.linux
++++ b/pppstats/Makefile.linux
+@@ -22,7 +22,7 @@ all: pppstats
install: pppstats
-mkdir -p $(MANDIR)
diff --git a/meta/recipes-connectivity/ppp/ppp/ppp-2.4.7-DES-openssl.patch b/meta/recipes-connectivity/ppp/ppp/ppp-2.4.7-DES-openssl.patch
deleted file mode 100644
index e53f240543..0000000000
--- a/meta/recipes-connectivity/ppp/ppp/ppp-2.4.7-DES-openssl.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-Used openssl for the DES instead of the libcrypt / glibc
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Index: ppp-2.4.7/pppd/Makefile.linux
-===================================================================
---- ppp-2.4.7.orig/pppd/Makefile.linux
-+++ ppp-2.4.7/pppd/Makefile.linux
-@@ -38,7 +38,7 @@ LIBS =
- # Uncomment the next 2 lines to include support for Microsoft's
- # MS-CHAP authentication protocol. Also, edit plugins/radius/Makefile.linux.
- CHAPMS=y
--USE_CRYPT=y
-+#USE_CRYPT=y
- # Don't use MSLANMAN unless you really know what you're doing.
- #MSLANMAN=y
- # Uncomment the next line to include support for MPPE. CHAPMS (above) must
-@@ -132,7 +132,7 @@ endif
-
- ifdef NEEDDES
- ifndef USE_CRYPT
--LIBS += -ldes $(LIBS)
-+LIBS += -lcrypto
- else
- CFLAGS += -DUSE_CRYPT=1
- endif
-Index: ppp-2.4.7/pppd/pppcrypt.c
-===================================================================
---- ppp-2.4.7.orig/pppd/pppcrypt.c
-+++ ppp-2.4.7/pppd/pppcrypt.c
-@@ -64,7 +64,7 @@ u_char *des_key; /* OUT 64 bit DES key w
- des_key[7] = Get7Bits(key, 49);
-
- #ifndef USE_CRYPT
-- des_set_odd_parity((des_cblock *)des_key);
-+ DES_set_odd_parity((DES_cblock *)des_key);
- #endif
- }
-
-@@ -158,25 +158,25 @@ u_char *clear; /* OUT 8 octets */
- }
-
- #else /* USE_CRYPT */
--static des_key_schedule key_schedule;
-+static DES_key_schedule key_schedule;
-
- bool
- DesSetkey(key)
- u_char *key;
- {
-- des_cblock des_key;
-+ DES_cblock des_key;
- MakeKey(key, des_key);
-- des_set_key(&des_key, key_schedule);
-+ DES_set_key(&des_key, &key_schedule);
- return (1);
- }
-
- bool
--DesEncrypt(clear, key, cipher)
-+DesEncrypt(clear, cipher)
- u_char *clear; /* IN 8 octets */
- u_char *cipher; /* OUT 8 octets */
- {
-- des_ecb_encrypt((des_cblock *)clear, (des_cblock *)cipher,
-- key_schedule, 1);
-+ DES_ecb_encrypt((DES_cblock *)clear, (DES_cblock *)cipher,
-+ &key_schedule, 1);
- return (1);
- }
-
-@@ -185,8 +185,8 @@ DesDecrypt(cipher, clear)
- u_char *cipher; /* IN 8 octets */
- u_char *clear; /* OUT 8 octets */
- {
-- des_ecb_encrypt((des_cblock *)cipher, (des_cblock *)clear,
-- key_schedule, 0);
-+ DES_ecb_encrypt((DES_cblock *)cipher, (DES_cblock *)clear,
-+ &key_schedule, 0);
- return (1);
- }
-
diff --git a/meta/recipes-connectivity/ppp/ppp_2.4.7.bb b/meta/recipes-connectivity/ppp/ppp_2.4.8.bb
index 60c56dd0bd..f9c60d6bad 100644
--- a/meta/recipes-connectivity/ppp/ppp_2.4.7.bb
+++ b/meta/recipes-connectivity/ppp/ppp_2.4.8.bb
@@ -13,7 +13,6 @@ LIC_FILES_CHKSUM = "file://pppd/ccp.c;beginline=1;endline=29;md5=e2c43fe6e81ff77
SRC_URI = "https://download.samba.org/pub/${BPN}/${BP}.tar.gz \
file://makefile.patch \
- file://cifdefroute.patch \
file://pppd-resolv-varrun.patch \
file://makefile-remove-hard-usr-reference.patch \
file://pon \
@@ -27,20 +26,17 @@ SRC_URI = "https://download.samba.org/pub/${BPN}/${BP}.tar.gz \
file://pap \
file://ppp_on_boot \
file://provider \
- file://0001-ppp-Fix-compilation-errors-in-Makefile.patch \
file://ppp@.service \
file://fix-CVE-2015-3310.patch \
- file://0001-pppoe-include-netinet-in.h-before-linux-in.h.patch \
file://0001-ppp-Remove-unneeded-include.patch \
- file://ppp-2.4.7-DES-openssl.patch \
file://0001-pppd-Fix-bounds-check-in-EAP-code.patch \
-"
+ "
SRC_URI_append_libc-musl = "\
file://0001-Fix-build-with-musl.patch \
"
-SRC_URI[md5sum] = "78818f40e6d33a1d1de68a1551f6595a"
-SRC_URI[sha256sum] = "02e0a3dd3e4799e33103f70ec7df75348c8540966ee7c948e4ed8a42bbccfb30"
+SRC_URI[md5sum] = "2ca8342b9804be15103fd3f687af701c"
+SRC_URI[sha256sum] = "f6bf89beae26b2943dff8f1003533d6a5a4909a0fa6edfbec44fe039bbe61bc6"
inherit autotools-brokensep systemd
diff --git a/meta/recipes-connectivity/resolvconf/resolvconf_1.82.bb b/meta/recipes-connectivity/resolvconf/resolvconf_1.83.bb
index 67959576e8..f0ffc82241 100644
--- a/meta/recipes-connectivity/resolvconf/resolvconf_1.82.bb
+++ b/meta/recipes-connectivity/resolvconf/resolvconf_1.83.bb
@@ -16,7 +16,7 @@ SRC_URI = "git://salsa.debian.org/debian/resolvconf.git;protocol=https \
file://99_resolvconf \
"
-SRCREV = "cb19bbfbe7e52174332f68bf2f295b39d119fad3"
+SRCREV = "d001dd2b7ce4c854eaa29e46b9640ab66c6e70bb"
S = "${WORKDIR}/git"
diff --git a/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/dropbear_rsa_host_key b/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/dropbear_rsa_host_key
new file mode 100644
index 0000000000..30443c9438
--- /dev/null
+++ b/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/dropbear_rsa_host_key
Binary files differ
diff --git a/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ecdsa_key b/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ecdsa_key
new file mode 100644
index 0000000000..86c2104ec8
--- /dev/null
+++ b/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ecdsa_key
@@ -0,0 +1,9 @@
+-----BEGIN OPENSSH PRIVATE KEY-----
+b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAaAAAABNlY2RzYS
+1zaGEyLW5pc3RwMjU2AAAACG5pc3RwMjU2AAAAQQRJR6iZxr/NTqQN9NOwV+WPtu42r2eF
+rJ0xsnlqw5bpmfz6aDR8RQvVHUZjRGQfR/RXPbQ5x+bjjdm176TuXNhHAAAAqAoE27MKBN
+uzAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBElHqJnGv81OpA30
+07BX5Y+27javZ4WsnTGyeWrDlumZ/PpoNHxFC9UdRmNEZB9H9Fc9tDnH5uON2bXvpO5c2E
+cAAAAgLiHv/IWhxwosz9BiNILOOPlXaueL5hVTBKUJkpOi48sAAAANcm9vdEBxZW11bWlw
+cwECAw==
+-----END OPENSSH PRIVATE KEY-----
diff --git a/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ecdsa_key.pub b/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ecdsa_key.pub
new file mode 100644
index 0000000000..a358aeb88a
--- /dev/null
+++ b/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ecdsa_key.pub
@@ -0,0 +1 @@
+ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBElHqJnGv81OpA3007BX5Y+27javZ4WsnTGyeWrDlumZ/PpoNHxFC9UdRmNEZB9H9Fc9tDnH5uON2bXvpO5c2Ec= root@qemupregen
diff --git a/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ed25519_key b/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ed25519_key
new file mode 100644
index 0000000000..00ed9adae2
--- /dev/null
+++ b/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ed25519_key
@@ -0,0 +1,7 @@
+-----BEGIN OPENSSH PRIVATE KEY-----
+b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
+QyNTUxOQAAACDHSFTAbJ3OTd1r1E8G5JleCmsJEpQHmdTGtMcYqwWbbwAAAJChFtV0oRbV
+dAAAAAtzc2gtZWQyNTUxOQAAACDHSFTAbJ3OTd1r1E8G5JleCmsJEpQHmdTGtMcYqwWbbw
+AAAEA8UiUsygsTbP0HkDi5leXpQaVXihDyCHeitkBCItJGhcdIVMBsnc5N3WvUTwbkmV4K
+awkSlAeZ1Ma0xxirBZtvAAAADXJvb3RAcWVtdW1pcHM=
+-----END OPENSSH PRIVATE KEY-----
diff --git a/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ed25519_key.pub b/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ed25519_key.pub
new file mode 100644
index 0000000000..cc0e2f43ed
--- /dev/null
+++ b/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ed25519_key.pub
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMdIVMBsnc5N3WvUTwbkmV4KawkSlAeZ1Ma0xxirBZtv root@qemupregen
diff --git a/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_rsa_key b/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_rsa_key
new file mode 100644
index 0000000000..a8e4406ba3
--- /dev/null
+++ b/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_rsa_key
@@ -0,0 +1,38 @@
+-----BEGIN OPENSSH PRIVATE KEY-----
+b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn
+NhAAAAAwEAAQAAAYEA2Q6dzF1xziCQCFq+e+Fv6w0607gNlyKnkhuoRq8G7/HEqXU2eEtC
+i3AMUrAP8k7s9kP5vI5CyfSgFuC9MxDV2YL2bsmvRxBSKgg6KbNxkoTaFBqyqHopuWQca8
+KRahvzt5dh9fsmeqamIwgMWKTSwtDHcsbyt84nmO2Z2ZrNXobgueMIj+HiJVgmWn86FQFL
+EoONAA+qb4SciPsxvmTlaQ/DMAh3llVo/IMLD9oyAyAI2kbHNnZttlYv5TmY7ICd3yCW8z
+PXrxNcEF3Qs1d68gVJxLjLKTlYGzJW2J+RwY+1DJZ0w4lozeQiZXTXVtzcJB0tm2DcvQMz
+kqyARmncSUwcPbEClEW6Y2xQnLeSHjexzlCCndiUbBTeG5iRl4OL6DN40iI9Lw2VROtj2Y
+59n9PCfaoUs08dsgJLaNrDbRHrCRLSdZJ6OQFiC/nAx/t4e4+wdUgNOqLyJqomdNdaLXPq
+tzr9ssrcY5j1DmmwKtzfTI5VM9LRQo+REIiUCNTFAAAFiFh232tYdt9rAAAAB3NzaC1yc2
+EAAAGBANkOncxdcc4gkAhavnvhb+sNOtO4DZcip5IbqEavBu/xxKl1NnhLQotwDFKwD/JO
+7PZD+byOQsn0oBbgvTMQ1dmC9m7Jr0cQUioIOimzcZKE2hQasqh6KblkHGvCkWob87eXYf
+X7JnqmpiMIDFik0sLQx3LG8rfOJ5jtmdmazV6G4LnjCI/h4iVYJlp/OhUBSxKDjQAPqm+E
+nIj7Mb5k5WkPwzAId5ZVaPyDCw/aMgMgCNpGxzZ2bbZWL+U5mOyAnd8glvMz168TXBBd0L
+NXevIFScS4yyk5WBsyVtifkcGPtQyWdMOJaM3kImV011bc3CQdLZtg3L0DM5KsgEZp3ElM
+HD2xApRFumNsUJy3kh43sc5Qgp3YlGwU3huYkZeDi+gzeNIiPS8NlUTrY9mOfZ/Twn2qFL
+NPHbICS2jaw20R6wkS0nWSejkBYgv5wMf7eHuPsHVIDTqi8iaqJnTXWi1z6rc6/bLK3GOY
+9Q5psCrc30yOVTPS0UKPkRCIlAjUxQAAAAMBAAEAAAGAGIj+bUtiwdoMbeVUAszIydkE/U
+mgv6S7LFjT/KlsL1M017LYJWDcdMaFnhMouksRngSxBg9OnWV5cxyURmFwytVy5bMGjRHb
+N8UWTgBqphU+UWdzKngkn0AhtkyYA1aFhgsml5d8EgEkZnFSc/KtoDfZU7AJX519/FtfOK
+m27Shx3pE7Nohh97avHyuidR1gTwdvuMIMke57g0BhrxPYmredaKCMZAHjjCeD6JbRcGj+
+ly3I9u8MF8BGSbLpBlLDUFCwP8G5CdmMua8bPJYhPSRqMLQhclI7hc6FaYk+gZV9B74Iv/
+SAxcCwI97dNbE0IAsbbWoUdoKGpAYQ5gOdhu5ioqZwKWjNjB3Xx48mq8xtmIR9HEnYzEnk
+b/tDWNRWrGkvNK7vpLvnbsSSKBqOAbMzmQdJxogTgjE5doSmu2/krIMR6KUcUox2ZrR8Ot
+JM6bXyNFBviiXmYvw/SZTDrVJu8BPMu5EMS5pBl8jPFBGI/ePk4qg7lWAJeQ89ThtBAAAA
+wQDEU4HjomWwJsn9UWdoodXTV5aPY9B1OPkmYnRPtsjSAcXgtBzUXMEOsmXODOK3aQjsE0
+jQKpWDAUcUf6KKZKRehxUN4MlwujCG9czn65S6B8BsP1YUfZQjpNyub8vDBfeKzlxKBEEM
+lb4iBT+LEGkihK13H5CbqRg1GDAThZzwrV4pj3S40zgyHhn8JjK4x4djEY6NwkWH8E2DgD
+8vYG/FKh5E/VIZtCgtAHa4QNAgGB4VMRn1VpSJzxjCxb1wancAAADBAPT7F34WYEI3Vc52
+p1U5rPa6dZtg5QM14V0+KtMlb3frd0/F+JVj4t6COQ8J9pkOuD0YjOYJuFXIWAAYIjCdWt
+cbTi/sSERawOWxrgSwJo2vjt5izrBQtr3N8tiB6KDGa5sdgJl5XzJ0SsdStfBbyhcJO4RV
+p9lc+X8OsUfFsClmyIs45vlxBRH06DP6/zmYCAmqvlrfZJKqlpKAEWDDObRy/3+mSNhZ0J
+BdmncASiASRlPPIoIHznyA1COUn6+TnwAAAMEA4tH89Dez2JauyPVeCyHAC680vrBKjmMx
+WYdpq2Xzd/LNl2L9oc0IEZzerLTuaCh6qsbbk2wWj1nrYXvefz/xUtDR427tvRXckcsWhP
+2HYohdYBkwTpp9QuscIV76GdwbTImuNEzvABH1hpTG6DSzqeyf/EVmSq07nptJIs5lpU49
+tW2aWraSvswHR9xfts1U79w9f4BNDy1rTmfuLERTRNF/T9CIFsk9tArLUNT64mhHtoEs8F
+9AyGuq6v49bN0bAAAADXJvb3RAcWVtdW1pcHMBAgMEBQ==
+-----END OPENSSH PRIVATE KEY-----
diff --git a/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_rsa_key.pub b/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_rsa_key.pub
new file mode 100644
index 0000000000..9eb8c3838f
--- /dev/null
+++ b/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_rsa_key.pub
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDZDp3MXXHOIJAIWr574W/rDTrTuA2XIqeSG6hGrwbv8cSpdTZ4S0KLcAxSsA/yTuz2Q/m8jkLJ9KAW4L0zENXZgvZuya9HEFIqCDops3GShNoUGrKoeim5ZBxrwpFqG/O3l2H1+yZ6pqYjCAxYpNLC0MdyxvK3zieY7ZnZms1ehuC54wiP4eIlWCZafzoVAUsSg40AD6pvhJyI+zG+ZOVpD8MwCHeWVWj8gwsP2jIDIAjaRsc2dm22Vi/lOZjsgJ3fIJbzM9evE1wQXdCzV3ryBUnEuMspOVgbMlbYn5HBj7UMlnTDiWjN5CJldNdW3NwkHS2bYNy9AzOSrIBGadxJTBw9sQKURbpjbFCct5IeN7HOUIKd2JRsFN4bmJGXg4voM3jSIj0vDZVE62PZjn2f08J9qhSzTx2yAkto2sNtEesJEtJ1kno5AWIL+cDH+3h7j7B1SA06ovImqiZ011otc+q3Ov2yytxjmPUOabAq3N9MjlUz0tFCj5EQiJQI1MU= root@qemupregen
diff --git a/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys_1.0.bb b/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys_1.0.bb
new file mode 100644
index 0000000000..ddd10e6eeb
--- /dev/null
+++ b/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys_1.0.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Pre generated host keys mainly for speeding up our qemu tests"
+
+SRC_URI = "file://dropbear_rsa_host_key \
+ file://openssh"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+INHIBIT_DEFAULT_DEPS = "1"
+
+do_install () {
+ install -d ${D}${sysconfdir}/dropbear
+ install ${WORKDIR}/dropbear_rsa_host_key -m 0600 ${D}${sysconfdir}/dropbear/
+
+ install -d ${D}${sysconfdir}/ssh
+ install ${WORKDIR}/openssh/* ${D}${sysconfdir}/ssh/
+ chmod 0600 ${D}${sysconfdir}/ssh/*
+ chmod 0644 ${D}${sysconfdir}/ssh/*.pub
+} \ No newline at end of file
diff --git a/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch
new file mode 100644
index 0000000000..53ad5d028a
--- /dev/null
+++ b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch
@@ -0,0 +1,151 @@
+From 5b78c8f961f25f4dc22d6f2b77ddd06d712cec63 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <jouni@codeaurora.org>
+Date: Wed, 3 Jun 2020 23:17:35 +0300
+Subject: [PATCH 1/3] WPS UPnP: Do not allow event subscriptions with URLs to
+ other networks
+
+The UPnP Device Architecture 2.0 specification errata ("UDA errata
+16-04-2020.docx") addresses a problem with notifications being allowed
+to go out to other domains by disallowing such cases. Do such filtering
+for the notification callback URLs to avoid undesired connections to
+external networks based on subscriptions that any device in the local
+network could request when WPS support for external registrars is
+enabled (the upnp_iface parameter in hostapd configuration).
+
+Upstream-Status: Backport
+CVE: CVE-2020-12695 patch #1
+Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+
+---
+ src/wps/wps_er.c | 2 +-
+ src/wps/wps_upnp.c | 38 ++++++++++++++++++++++++++++++++++++--
+ src/wps/wps_upnp_i.h | 3 ++-
+ 3 files changed, 39 insertions(+), 4 deletions(-)
+
+Index: wpa_supplicant-2.9/src/wps/wps_er.c
+===================================================================
+--- wpa_supplicant-2.9.orig/src/wps/wps_er.c
++++ wpa_supplicant-2.9/src/wps/wps_er.c
+@@ -1298,7 +1298,7 @@ wps_er_init(struct wps_context *wps, con
+ "with %s", filter);
+ }
+ if (get_netif_info(er->ifname, &er->ip_addr, &er->ip_addr_text,
+- er->mac_addr)) {
++ NULL, er->mac_addr)) {
+ wpa_printf(MSG_INFO, "WPS UPnP: Could not get IP/MAC address "
+ "for %s. Does it have IP address?", er->ifname);
+ wps_er_deinit(er, NULL, NULL);
+Index: wpa_supplicant-2.9/src/wps/wps_upnp.c
+===================================================================
+--- wpa_supplicant-2.9.orig/src/wps/wps_upnp.c
++++ wpa_supplicant-2.9/src/wps/wps_upnp.c
+@@ -303,6 +303,14 @@ static void subscr_addr_free_all(struct
+ }
+
+
++static int local_network_addr(struct upnp_wps_device_sm *sm,
++ struct sockaddr_in *addr)
++{
++ return (addr->sin_addr.s_addr & sm->netmask.s_addr) ==
++ (sm->ip_addr & sm->netmask.s_addr);
++}
++
++
+ /* subscr_addr_add_url -- add address(es) for one url to subscription */
+ static void subscr_addr_add_url(struct subscription *s, const char *url,
+ size_t url_len)
+@@ -381,6 +389,7 @@ static void subscr_addr_add_url(struct s
+
+ for (rp = result; rp; rp = rp->ai_next) {
+ struct subscr_addr *a;
++ struct sockaddr_in *addr = (struct sockaddr_in *) rp->ai_addr;
+
+ /* Limit no. of address to avoid denial of service attack */
+ if (dl_list_len(&s->addr_list) >= MAX_ADDR_PER_SUBSCRIPTION) {
+@@ -389,6 +398,13 @@ static void subscr_addr_add_url(struct s
+ break;
+ }
+
++ if (!local_network_addr(s->sm, addr)) {
++ wpa_printf(MSG_INFO,
++ "WPS UPnP: Ignore a delivery URL that points to another network %s",
++ inet_ntoa(addr->sin_addr));
++ continue;
++ }
++
+ a = os_zalloc(sizeof(*a) + alloc_len);
+ if (a == NULL)
+ break;
+@@ -889,11 +905,12 @@ static int eth_get(const char *device, u
+ * @net_if: Selected network interface name
+ * @ip_addr: Buffer for returning IP address in network byte order
+ * @ip_addr_text: Buffer for returning a pointer to allocated IP address text
++ * @netmask: Buffer for returning netmask or %NULL if not needed
+ * @mac: Buffer for returning MAC address
+ * Returns: 0 on success, -1 on failure
+ */
+ int get_netif_info(const char *net_if, unsigned *ip_addr, char **ip_addr_text,
+- u8 mac[ETH_ALEN])
++ struct in_addr *netmask, u8 mac[ETH_ALEN])
+ {
+ struct ifreq req;
+ int sock = -1;
+@@ -919,6 +936,19 @@ int get_netif_info(const char *net_if, u
+ in_addr.s_addr = *ip_addr;
+ os_snprintf(*ip_addr_text, 16, "%s", inet_ntoa(in_addr));
+
++ if (netmask) {
++ os_memset(&req, 0, sizeof(req));
++ os_strlcpy(req.ifr_name, net_if, sizeof(req.ifr_name));
++ if (ioctl(sock, SIOCGIFNETMASK, &req) < 0) {
++ wpa_printf(MSG_ERROR,
++ "WPS UPnP: SIOCGIFNETMASK failed: %d (%s)",
++ errno, strerror(errno));
++ goto fail;
++ }
++ addr = (struct sockaddr_in *) &req.ifr_netmask;
++ netmask->s_addr = addr->sin_addr.s_addr;
++ }
++
+ #ifdef __linux__
+ os_strlcpy(req.ifr_name, net_if, sizeof(req.ifr_name));
+ if (ioctl(sock, SIOCGIFHWADDR, &req) < 0) {
+@@ -1025,11 +1055,15 @@ static int upnp_wps_device_start(struct
+
+ /* Determine which IP and mac address we're using */
+ if (get_netif_info(net_if, &sm->ip_addr, &sm->ip_addr_text,
+- sm->mac_addr)) {
++ &sm->netmask, sm->mac_addr)) {
+ wpa_printf(MSG_INFO, "WPS UPnP: Could not get IP/MAC address "
+ "for %s. Does it have IP address?", net_if);
+ goto fail;
+ }
++ wpa_printf(MSG_DEBUG, "WPS UPnP: Local IP address %s netmask %s hwaddr "
++ MACSTR,
++ sm->ip_addr_text, inet_ntoa(sm->netmask),
++ MAC2STR(sm->mac_addr));
+
+ /* Listen for incoming TCP connections so that others
+ * can fetch our "xml files" from us.
+Index: wpa_supplicant-2.9/src/wps/wps_upnp_i.h
+===================================================================
+--- wpa_supplicant-2.9.orig/src/wps/wps_upnp_i.h
++++ wpa_supplicant-2.9/src/wps/wps_upnp_i.h
+@@ -128,6 +128,7 @@ struct upnp_wps_device_sm {
+ u8 mac_addr[ETH_ALEN]; /* mac addr of network i.f. we use */
+ char *ip_addr_text; /* IP address of network i.f. we use */
+ unsigned ip_addr; /* IP address of network i.f. we use (host order) */
++ struct in_addr netmask;
+ int multicast_sd; /* send multicast messages over this socket */
+ int ssdp_sd; /* receive discovery UPD packets on socket */
+ int ssdp_sd_registered; /* nonzero if we must unregister */
+@@ -158,7 +159,7 @@ struct subscription * subscription_find(
+ const u8 uuid[UUID_LEN]);
+ void subscr_addr_delete(struct subscr_addr *a);
+ int get_netif_info(const char *net_if, unsigned *ip_addr, char **ip_addr_text,
+- u8 mac[ETH_ALEN]);
++ struct in_addr *netmask, u8 mac[ETH_ALEN]);
+
+ /* wps_upnp_ssdp.c */
+ void msearchreply_state_machine_stop(struct advertisement_state_machine *a);
diff --git a/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch
new file mode 100644
index 0000000000..59640859dd
--- /dev/null
+++ b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch
@@ -0,0 +1,62 @@
+From f7d268864a2660b7239b9a8ff5ad37faeeb751ba Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <jouni@codeaurora.org>
+Date: Wed, 3 Jun 2020 22:41:02 +0300
+Subject: [PATCH 2/3] WPS UPnP: Fix event message generation using a long URL
+ path
+
+More than about 700 character URL ended up overflowing the wpabuf used
+for building the event notification and this resulted in the wpabuf
+buffer overflow checks terminating the hostapd process. Fix this by
+allocating the buffer to be large enough to contain the full URL path.
+However, since that around 700 character limit has been the practical
+limit for more than ten years, start explicitly enforcing that as the
+limit or the callback URLs since any longer ones had not worked before
+and there is no need to enable them now either.
+
+Upstream-Status: Backport
+CVE: CVE-2020-12695 patch #2
+Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+
+---
+ src/wps/wps_upnp.c | 9 +++++++--
+ src/wps/wps_upnp_event.c | 3 ++-
+ 2 files changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/src/wps/wps_upnp.c b/src/wps/wps_upnp.c
+index 7d4b7439940e..ab685d52ecab 100644
+--- a/src/wps/wps_upnp.c
++++ b/src/wps/wps_upnp.c
+@@ -328,9 +328,14 @@ static void subscr_addr_add_url(struct subscription *s, const char *url,
+ int rerr;
+ size_t host_len, path_len;
+
+- /* url MUST begin with http: */
+- if (url_len < 7 || os_strncasecmp(url, "http://", 7))
++ /* URL MUST begin with HTTP scheme. In addition, limit the length of
++ * the URL to 700 characters which is around the limit that was
++ * implicitly enforced for more than 10 years due to a bug in
++ * generating the event messages. */
++ if (url_len < 7 || os_strncasecmp(url, "http://", 7) || url_len > 700) {
++ wpa_printf(MSG_DEBUG, "WPS UPnP: Reject an unacceptable URL");
+ goto fail;
++ }
+ url += 7;
+ url_len -= 7;
+
+diff --git a/src/wps/wps_upnp_event.c b/src/wps/wps_upnp_event.c
+index d7e6edcc6503..08a23612f338 100644
+--- a/src/wps/wps_upnp_event.c
++++ b/src/wps/wps_upnp_event.c
+@@ -147,7 +147,8 @@ static struct wpabuf * event_build_message(struct wps_event_ *e)
+ struct wpabuf *buf;
+ char *b;
+
+- buf = wpabuf_alloc(1000 + wpabuf_len(e->data));
++ buf = wpabuf_alloc(1000 + os_strlen(e->addr->path) +
++ wpabuf_len(e->data));
+ if (buf == NULL)
+ return NULL;
+ wpabuf_printf(buf, "NOTIFY %s HTTP/1.1\r\n", e->addr->path);
+--
+2.20.1
diff --git a/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0003-WPS-UPnP-Handle-HTTP-initiation-failures-for-events-.patch b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0003-WPS-UPnP-Handle-HTTP-initiation-failures-for-events-.patch
new file mode 100644
index 0000000000..8a014ef28a
--- /dev/null
+++ b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0003-WPS-UPnP-Handle-HTTP-initiation-failures-for-events-.patch
@@ -0,0 +1,50 @@
+From 85aac526af8612c21b3117dadc8ef5944985b476 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <jouni@codeaurora.org>
+Date: Thu, 4 Jun 2020 21:24:04 +0300
+Subject: [PATCH 3/3] WPS UPnP: Handle HTTP initiation failures for events more
+ properly
+
+While it is appropriate to try to retransmit the event to another
+callback URL on a failure to initiate the HTTP client connection, there
+is no point in trying the exact same operation multiple times in a row.
+Replve the event_retry() calls with event_addr_failure() for these cases
+to avoid busy loops trying to repeat the same failing operation.
+
+These potential busy loops would go through eloop callbacks, so the
+process is not completely stuck on handling them, but unnecessary CPU
+would be used to process the continues retries that will keep failing
+for the same reason.
+
+Upstream-Status: Backport
+CVE: CVE-2020-12695 patch #2
+Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+
+---
+ src/wps/wps_upnp_event.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/wps/wps_upnp_event.c b/src/wps/wps_upnp_event.c
+index 08a23612f338..c0d9e41d9a38 100644
+--- a/src/wps/wps_upnp_event.c
++++ b/src/wps/wps_upnp_event.c
+@@ -294,7 +294,7 @@ static int event_send_start(struct subscription *s)
+
+ buf = event_build_message(e);
+ if (buf == NULL) {
+- event_retry(e, 0);
++ event_addr_failure(e);
+ return -1;
+ }
+
+@@ -302,7 +302,7 @@ static int event_send_start(struct subscription *s)
+ event_http_cb, e);
+ if (e->http_event == NULL) {
+ wpabuf_free(buf);
+- event_retry(e, 0);
++ event_addr_failure(e);
+ return -1;
+ }
+
+--
+2.20.1
diff --git a/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb
index 3e92427bb0..7cc03fef7d 100644
--- a/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb
+++ b/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb
@@ -15,7 +15,7 @@ PACKAGECONFIG[openssl] = ",,openssl"
inherit pkgconfig systemd
-SYSTEMD_SERVICE_${PN} = "wpa_supplicant.service wpa_supplicant-nl80211@.service wpa_supplicant-wired@.service"
+SYSTEMD_SERVICE_${PN} = "wpa_supplicant.service"
SYSTEMD_AUTO_ENABLE = "disable"
SRC_URI = "http://w1.fi/releases/wpa_supplicant-${PV}.tar.gz \
@@ -25,7 +25,10 @@ SRC_URI = "http://w1.fi/releases/wpa_supplicant-${PV}.tar.gz \
file://wpa_supplicant.conf-sane \
file://99_wpa_supplicant \
file://0001-replace-systemd-install-Alias-with-WantedBy.patch \
- file://0001-AP-Silently-ignore-management-frame-from-unexpected-.patch \
+ file://0001-AP-Silently-ignore-management-frame-from-unexpected-.patch \
+ file://0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch \
+ file://0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch \
+ file://0003-WPS-UPnP-Handle-HTTP-initiation-failures-for-events-.patch \
"
SRC_URI[md5sum] = "2d2958c782576dc9901092fbfecb4190"
SRC_URI[sha256sum] = "fcbdee7b4a64bea8177973299c8c824419c413ec2e3a95db63dd6a5dc3541f17"
@@ -37,13 +40,13 @@ S = "${WORKDIR}/wpa_supplicant-${PV}"
PACKAGES_prepend = "wpa-supplicant-passphrase wpa-supplicant-cli "
FILES_wpa-supplicant-passphrase = "${bindir}/wpa_passphrase"
FILES_wpa-supplicant-cli = "${sbindir}/wpa_cli"
-FILES_${PN} += "${datadir}/dbus-1/system-services/*"
+FILES_${PN} += "${datadir}/dbus-1/system-services/* ${systemd_system_unitdir}/*"
CONFFILES_${PN} += "${sysconfdir}/wpa_supplicant.conf"
do_configure () {
${MAKE} -C wpa_supplicant clean
install -m 0755 ${WORKDIR}/defconfig wpa_supplicant/.config
-
+
if echo "${PACKAGECONFIG}" | grep -qw "openssl"; then
ssl=openssl
elif echo "${PACKAGECONFIG}" | grep -qw "gnutls"; then
diff --git a/meta/recipes-core/base-passwd/base-passwd_3.5.29.bb b/meta/recipes-core/base-passwd/base-passwd_3.5.29.bb
index d1aab09181..d01cd7e297 100644
--- a/meta/recipes-core/base-passwd/base-passwd_3.5.29.bb
+++ b/meta/recipes-core/base-passwd/base-passwd_3.5.29.bb
@@ -1,7 +1,7 @@
SUMMARY = "Base system master password/group files"
DESCRIPTION = "The master copies of the user database files (/etc/passwd and /etc/group). The update-passwd tool is also provided to keep the system databases synchronized with these master files."
SECTION = "base"
-LICENSE = "GPLv2+"
+LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
RECIPE_NO_UPDATE_REASON = "Version 3.5.38 requires cdebconf for update-passwd utility"
diff --git a/meta/recipes-core/busybox/busybox-inittab_1.31.0.bb b/meta/recipes-core/busybox/busybox-inittab_1.32.0.bb
index 61fb8cbad1..61fb8cbad1 100644
--- a/meta/recipes-core/busybox/busybox-inittab_1.31.0.bb
+++ b/meta/recipes-core/busybox/busybox-inittab_1.32.0.bb
diff --git a/meta/recipes-core/busybox/busybox.inc b/meta/recipes-core/busybox/busybox.inc
index 1a82f23b0f..45aaa2b41c 100644
--- a/meta/recipes-core/busybox/busybox.inc
+++ b/meta/recipes-core/busybox/busybox.inc
@@ -7,7 +7,7 @@ DEPENDS += "kern-tools-native virtual/crypt"
# bzip2 applet in busybox is based on lightly-modified bzip2 source
# the GPL is version 2 only
-LICENSE = "GPLv2 & bzip2"
+LICENSE = "GPLv2 & bzip2-1.0.6"
LIC_FILES_CHKSUM = "file://LICENSE;md5=de10de48642ab74318e893a61105afbb"
SECTION = "base"
@@ -133,16 +133,6 @@ do_prepare_config () {
fi
}
-# returns all the elements from the src uri that are .cfg files
-def find_cfgs(d):
- sources=src_patches(d, True)
- sources_list=[]
- for s in sources:
- if s.endswith('.cfg'):
- sources_list.append(s)
-
- return sources_list
-
do_configure () {
set -x
do_prepare_config
@@ -433,6 +423,32 @@ fi
d.prependVar('pkg_postinst_%s' % pkg, postinst)
}
+pkg_postinst_${PN}_prepend () {
+ # Need path to saved utils, but they may have be removed on upgrade of busybox
+ # Only use shell to get paths. Also capture if busybox was saved.
+ BUSYBOX=""
+ if [ "x$D" = "x" ] ; then
+ for busybox_rmdir in /tmp/busyboxrm-*; do
+ if [ "$busybox_rmdir" != '/tmp/busyboxrm-*' ] ; then
+ export PATH=$busybox_rmdir:$PATH
+ if [ -e $busybox_rmdir/busybox* ] ; then
+ BUSYBOX="$busybox_rmdir/busybox*"
+ fi
+ fi
+ done
+ fi
+}
+
+pkg_postinst_${PN}_append () {
+ # If busybox exists in the remove directory it is because it was the only shell left.
+ if [ "x$D" = "x" ] ; then
+ if [ "x$BUSYBOX" != "x" ] ; then
+ update-alternatives --remove sh $BUSYBOX
+ rm -f $BUSYBOX
+ fi
+ fi
+}
+
pkg_prerm_${PN} () {
# This is so you can make busybox commit suicide - removing busybox with no other packages
# providing its files, this will make update-alternatives work, but the update-rc.d part
@@ -453,9 +469,26 @@ pkg_prerm_${PN} () {
ln -s ${base_bindir}/busybox $tmpdir/grep
ln -s ${base_bindir}/busybox $tmpdir/tail
export PATH=$PATH:$tmpdir
+
+ # If busybox is the shell, we need to save it since its the lowest priority shell
+ # Register saved bitbake as the lowest priority shell possible as back up.
+ if [ -n "$(readlink -f /bin/sh | grep busybox)" ] ; then
+ BUSYBOX=$(readlink -f /bin/sh)
+ cp $BUSYBOX $tmpdir/$(basename $BUSYBOX)
+ update-alternatives --install /bin/sh sh $tmpdir/$(basename $BUSYBOX) 1
+ fi
}
pkg_postrm_${PN} () {
+ # Add path to remove dir in case we removed our only grep
+ if [ "x$D" = "x" ] ; then
+ for busybox_rmdir in /tmp/busyboxrm-*; do
+ if [ "$busybox_rmdir" != '/tmp/busyboxrm-*' ] ; then
+ export PATH=$busybox_rmdir:$PATH
+ fi
+ done
+ fi
+
if grep -q "^${base_bindir}/bash$" $D${sysconfdir}/busybox.links* && [ ! -e $D${base_bindir}/bash ]; then
printf "$(grep -v "^${base_bindir}/bash$" $D${sysconfdir}/shells)\n" > $D${sysconfdir}/shells
fi
diff --git a/meta/recipes-core/busybox/busybox/0001-Remove-stime-function-calls.patch b/meta/recipes-core/busybox/busybox/0001-Remove-stime-function-calls.patch
deleted file mode 100644
index 9b9432844c..0000000000
--- a/meta/recipes-core/busybox/busybox/0001-Remove-stime-function-calls.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From d3539be8f27b8cbfdfee460fe08299158f08bcd9 Mon Sep 17 00:00:00 2001
-From: Alistair Francis <alistair.francis@wdc.com>
-Date: Tue, 19 Nov 2019 13:06:40 +0100
-Subject: [PATCH] Remove stime() function calls
-
-stime() has been deprecated in glibc 2.31 and replaced with
-clock_settime(). Let's replace the stime() function calls with
-clock_settime() in preperation.
-
-function old new delta
-rdate_main 197 224 +27
-clock_settime - 27 +27
-date_main 926 941 +15
-stime 37 - -37
-------------------------------------------------------------------------------
-(add/remove: 2/2 grow/shrink: 2/0 up/down: 69/-37) Total: 32 bytes
-
-Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=d3539be8f27b8cbfdfee460fe08299158f08bcd9]
-Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
-Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
----
- coreutils/date.c | 6 +++++-
- libbb/missing_syscalls.c | 8 --------
- util-linux/rdate.c | 8 ++++++--
- 3 files changed, 11 insertions(+), 11 deletions(-)
-
---- a/coreutils/date.c
-+++ b/coreutils/date.c
-@@ -279,6 +279,9 @@ int date_main(int argc UNUSED_PARAM, cha
- time(&ts.tv_sec);
- #endif
- }
-+#if !ENABLE_FEATURE_DATE_NANO
-+ ts.tv_nsec = 0;
-+#endif
- localtime_r(&ts.tv_sec, &tm_time);
-
- /* If date string is given, update tm_time, and maybe set date */
-@@ -301,9 +304,10 @@ int date_main(int argc UNUSED_PARAM, cha
- if (date_str[0] != '@')
- tm_time.tm_isdst = -1;
- ts.tv_sec = validate_tm_time(date_str, &tm_time);
-+ ts.tv_nsec = 0;
-
- /* if setting time, set it */
-- if ((opt & OPT_SET) && stime(&ts.tv_sec) < 0) {
-+ if ((opt & OPT_SET) && clock_settime(CLOCK_REALTIME, &ts) < 0) {
- bb_perror_msg("can't set date");
- }
- }
---- a/libbb/missing_syscalls.c
-+++ b/libbb/missing_syscalls.c
-@@ -15,14 +15,6 @@ pid_t getsid(pid_t pid)
- return syscall(__NR_getsid, pid);
- }
-
--int stime(const time_t *t)
--{
-- struct timeval tv;
-- tv.tv_sec = *t;
-- tv.tv_usec = 0;
-- return settimeofday(&tv, NULL);
--}
--
- int sethostname(const char *name, size_t len)
- {
- return syscall(__NR_sethostname, name, len);
---- a/util-linux/rdate.c
-+++ b/util-linux/rdate.c
-@@ -95,9 +95,13 @@ int rdate_main(int argc UNUSED_PARAM, ch
- if (!(flags & 2)) { /* no -p (-s may be present) */
- if (time(NULL) == remote_time)
- bb_error_msg("current time matches remote time");
-- else
-- if (stime(&remote_time) < 0)
-+ else {
-+ struct timespec ts;
-+ ts.tv_sec = remote_time;
-+ ts.tv_nsec = 0;
-+ if (clock_settime(CLOCK_REALTIME, &ts) < 0)
- bb_perror_msg_and_die("can't set time of day");
-+ }
- }
-
- if (flags != 1) /* not lone -s */
diff --git a/meta/recipes-core/busybox/busybox/0001-Remove-syscall-wrappers-around-clock_gettime-closes-.patch b/meta/recipes-core/busybox/busybox/0001-Remove-syscall-wrappers-around-clock_gettime-closes-.patch
deleted file mode 100644
index 0c7f9b8132..0000000000
--- a/meta/recipes-core/busybox/busybox/0001-Remove-syscall-wrappers-around-clock_gettime-closes-.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-From be5a505d771a77c640acc35ceaa470c80e62f954 Mon Sep 17 00:00:00 2001
-From: Denys Vlasenko <vda.linux@googlemail.com>
-Date: Thu, 24 Oct 2019 16:26:55 +0200
-Subject: [PATCH] Remove syscall wrappers around clock_gettime, closes 12091
-
-12091 "Direct use of __NR_clock_gettime is not time64-safe".
-
-function old new delta
-runsv_main 1698 1712 +14
-startservice 378 383 +5
-get_mono 31 25 -6
-date_main 932 926 -6
-gettimeofday_ns 17 - -17
-------------------------------------------------------------------------------
-(add/remove: 0/1 grow/shrink: 2/2 up/down: 19/-29) Total: -10 bytes
-
-Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=be5a505d771a77c640acc35ceaa470c80e62f954]
-Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
----
- Makefile.flags | 6 ++++--
- coreutils/date.c | 16 +++-------------
- libbb/time.c | 11 +----------
- runit/runsv.c | 11 +----------
- 4 files changed, 9 insertions(+), 35 deletions(-)
-
---- a/Makefile.flags
-+++ b/Makefile.flags
-@@ -129,10 +129,12 @@ endif
- # fall back to using a temp file:
- CRYPT_AVAILABLE := $(shell echo 'int main(void){return 0;}' >crypttest.c; $(CC) $(CFLAGS) -lcrypt -o /dev/null crypttest.c >/dev/null 2>&1 && echo "y"; rm crypttest.c)
- ifeq ($(CRYPT_AVAILABLE),y)
--LDLIBS += m crypt
-+LDLIBS += m rt crypt
- else
--LDLIBS += m
-+LDLIBS += m rt
- endif
-+# libm may be needed for dc, awk, ntpd
-+# librt may be needed for clock_gettime()
-
- # libpam may use libpthread, libdl and/or libaudit.
- # On some platforms that requires an explicit -lpthread, -ldl, -laudit.
---- a/coreutils/date.c
-+++ b/coreutils/date.c
-@@ -33,10 +33,9 @@
- //config: Enable option (-I) to output an ISO-8601 compliant
- //config: date/time string.
- //config:
--//config:# defaults to "no": stat's nanosecond field is a bit non-portable
- //config:config FEATURE_DATE_NANO
- //config: bool "Support %[num]N nanosecond format specifier"
--//config: default n # syscall(__NR_clock_gettime) or syscall(__NR_clock_gettime64)
-+//config: default n # stat's nanosecond field is a bit non-portable
- //config: depends on DATE
- //config: select PLATFORM_LINUX
- //config: help
-@@ -271,17 +270,8 @@ int date_main(int argc UNUSED_PARAM, cha
- */
- #endif
- } else {
--#if ENABLE_FEATURE_DATE_NANO && defined(__NR_clock_gettime)
-- /* libc has incredibly messy way of doing this,
-- * typically requiring -lrt. We just skip all this mess */
-- syscall(__NR_clock_gettime, CLOCK_REALTIME, &ts);
--#elif ENABLE_FEATURE_DATE_NANO && __TIMESIZE == 64
-- /* Let's only support the 64 suffix syscalls for 64-bit time_t.
-- * This simplifies the code for us as we don't need to convert
-- * between 64-bit and 32-bit. We also don't have a way to
-- * report overflow errors here.
-- */
-- syscall(__NR_clock_gettime64, CLOCK_REALTIME, &ts);
-+#if ENABLE_FEATURE_DATE_NANO
-+ clock_gettime(CLOCK_REALTIME, &ts);
- #else
- time(&ts.tv_sec);
- #endif
---- a/libbb/time.c
-+++ b/libbb/time.c
-@@ -253,18 +253,9 @@ char* FAST_FUNC strftime_YYYYMMDDHHMMSS(
- #define CLOCK_MONOTONIC 1
- #endif
-
--/* libc has incredibly messy way of doing this,
-- * typically requiring -lrt. We just skip all this mess */
- static void get_mono(struct timespec *ts)
- {
--#if defined(__NR_clock_gettime)
-- if (syscall(__NR_clock_gettime, CLOCK_MONOTONIC, ts))
--#elif __TIMESIZE == 64
-- if (syscall(__NR_clock_gettime64, CLOCK_MONOTONIC, ts))
--#else
--# error "We currently don't support architectures without " \
-- "the __NR_clock_gettime syscall and 32-bit time_t"
--#endif
-+ if (clock_gettime(CLOCK_MONOTONIC, ts))
- bb_error_msg_and_die("clock_gettime(MONOTONIC) failed");
- }
- unsigned long long FAST_FUNC monotonic_ns(void)
---- a/runit/runsv.c
-+++ b/runit/runsv.c
-@@ -51,18 +51,9 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAG
- #if ENABLE_MONOTONIC_SYSCALL
- #include <sys/syscall.h>
-
--/* libc has incredibly messy way of doing this,
-- * typically requiring -lrt. We just skip all this mess */
- static void gettimeofday_ns(struct timespec *ts)
- {
--#if defined(__NR_clock_gettime)
-- syscall(__NR_clock_gettime, CLOCK_REALTIME, ts);
--#elif __TIMESIZE == 64
-- syscall(__NR_clock_gettime64, CLOCK_REALTIME, ts);
--#else
--# error "We currently don't support architectures without " \
-- "the __NR_clock_gettime syscall and 32-bit time_t"
--#endif
-+ clock_gettime(CLOCK_REALTIME, ts);
- }
- #else
- static void gettimeofday_ns(struct timespec *ts)
diff --git a/meta/recipes-core/busybox/busybox/0001-date-Use-64-prefix-syscall-if-we-have-to.patch b/meta/recipes-core/busybox/busybox/0001-date-Use-64-prefix-syscall-if-we-have-to.patch
deleted file mode 100644
index 944526b7ca..0000000000
--- a/meta/recipes-core/busybox/busybox/0001-date-Use-64-prefix-syscall-if-we-have-to.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From b7b7452f292f03eefafa6fd1da9bcfc933dee15a Mon Sep 17 00:00:00 2001
-From: Alistair Francis <alistair.francis@wdc.com>
-Date: Wed, 18 Sep 2019 09:28:49 -0700
-Subject: [PATCH] date: Use 64 prefix syscall if we have to
-
-Some 32-bit architectures no longer have the 32-bit time_t syscalls.
-Instead they have suffixed syscalls that returns a 64-bit time_t. If
-the architecture doesn't have the non-suffixed syscall and is using a
-64-bit time_t let's use the suffixed syscall instead.
-
-This fixes build issues when building for RISC-V 32-bit with 5.1+ kernel
-headers.
-
-If an architecture only supports the suffixed syscalls, but is still
-using a 32-bit time_t fall back to the libc call.
-
-Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=b7b7452f292f03eefafa6fd1da9bcfc933dee15a]
-Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
-Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
----
- coreutils/date.c | 11 +++++++++--
- 1 file changed, 9 insertions(+), 2 deletions(-)
-
---- a/coreutils/date.c
-+++ b/coreutils/date.c
-@@ -36,7 +36,7 @@
- //config:# defaults to "no": stat's nanosecond field is a bit non-portable
- //config:config FEATURE_DATE_NANO
- //config: bool "Support %[num]N nanosecond format specifier"
--//config: default n # syscall(__NR_clock_gettime)
-+//config: default n # syscall(__NR_clock_gettime) or syscall(__NR_clock_gettime64)
- //config: depends on DATE
- //config: select PLATFORM_LINUX
- //config: help
-@@ -271,10 +271,17 @@ int date_main(int argc UNUSED_PARAM, cha
- */
- #endif
- } else {
--#if ENABLE_FEATURE_DATE_NANO
-+#if ENABLE_FEATURE_DATE_NANO && defined(__NR_clock_gettime)
- /* libc has incredibly messy way of doing this,
- * typically requiring -lrt. We just skip all this mess */
- syscall(__NR_clock_gettime, CLOCK_REALTIME, &ts);
-+#elif ENABLE_FEATURE_DATE_NANO && __TIMESIZE == 64
-+ /* Let's only support the 64 suffix syscalls for 64-bit time_t.
-+ * This simplifies the code for us as we don't need to convert
-+ * between 64-bit and 32-bit. We also don't have a way to
-+ * report overflow errors here.
-+ */
-+ syscall(__NR_clock_gettime64, CLOCK_REALTIME, &ts);
- #else
- time(&ts.tv_sec);
- #endif
diff --git a/meta/recipes-core/busybox/busybox/0001-hwclock-make-glibc-2.31-compatible.patch b/meta/recipes-core/busybox/busybox/0001-hwclock-make-glibc-2.31-compatible.patch
new file mode 100644
index 0000000000..8d1f272120
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox/0001-hwclock-make-glibc-2.31-compatible.patch
@@ -0,0 +1,83 @@
+From 5b2fc5746c352eb2b27bfc9fb224580d9852d0fa Mon Sep 17 00:00:00 2001
+From: Sakib Sajal <sakib.sajal@windriver.com>
+Date: Fri, 17 Jul 2020 17:27:21 +0000
+Subject: [PATCH] hwclock: make glibc 2.31 compatible
+
+NEWS for glibc version 2.31
+===========================
+
+Deprecated and removed features, and other changes affecting compatibility:
+
+* The settimeofday function can still be used to set a system-wide
+ time zone when the operating system supports it. This is because
+ the Linux kernel reused the API, on some architectures, to describe
+ a system-wide time-zone-like offset between the software clock
+ maintained by the kernel, and the "RTC" clock that keeps time when
+ the system is shut down.
+
+ However, to reduce the odds of this offset being set by accident,
+ settimeofday can no longer be used to set the time and the offset
+ simultaneously. If both of its two arguments are non-null, the call
+ will fail (setting errno to EINVAL).
+
+ Callers attempting to set this offset should also be prepared for
+ the call to fail and set errno to ENOSYS; this already happens on
+ the Hurd and on some Linux architectures. The Linux kernel
+ maintainers are discussing a more principled replacement for the
+ reused API. After a replacement becomes available, we will change
+ settimeofday to fail with ENOSYS on all platforms when its 'tzp'
+ argument is not a null pointer.
+
+ settimeofday itself is obsolescent according to POSIX. Programs
+ that set the system time should use clock_settime and/or the adjtime
+ family of functions instead. We may cease to make settimeofday
+ available to newly linked binaries after there is a replacement for
+ Linux's time-zone-like offset API.
+
+hwclock had two calls to settimeofday, in functions to_sys_clock and
+set_system_clock_timezone, where both the arguments to settimeofday
+were valid (non-null).
+Therefore, split the call, once for timezone and once for timeval.
+
+Fixes #12756
+
+Upstream-Status: Pending
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ util-linux/hwclock.c | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/util-linux/hwclock.c b/util-linux/hwclock.c
+index dc97d8f..cf346e8 100644
+--- a/util-linux/hwclock.c
++++ b/util-linux/hwclock.c
+@@ -131,8 +131,10 @@ static void to_sys_clock(const char **pp_rtcname, int utc)
+
+ tv.tv_sec = read_rtc(pp_rtcname, NULL, utc);
+ tv.tv_usec = 0;
+- if (settimeofday(&tv, &tz))
+- bb_simple_perror_msg_and_die("settimeofday");
++ if (settimeofday(NULL, &tz))
++ bb_simple_perror_msg_and_die("settimeofday: timezone");
++ if (settimeofday(&tv, NULL))
++ bb_simple_perror_msg_and_die("settimeofday: timeval");
+ }
+
+ static void from_sys_clock(const char **pp_rtcname, int utc)
+@@ -283,8 +285,10 @@ static void set_system_clock_timezone(int utc)
+ gettimeofday(&tv, NULL);
+ if (!utc)
+ tv.tv_sec += tz.tz_minuteswest * 60;
+- if (settimeofday(&tv, &tz))
+- bb_simple_perror_msg_and_die("settimeofday");
++ if (settimeofday(NULL, &tz))
++ bb_simple_perror_msg_and_die("settimeofday: timezone");
++ if (settimeofday(&tv, NULL))
++ bb_simple_perror_msg_and_die("settimeofday: timeval");
+ }
+
+ //usage:#define hwclock_trivial_usage
+--
+2.24.1
+
diff --git a/meta/recipes-core/busybox/busybox/0001-sysctl-ignore-EIO-of-stable_secret-below-proc-sys-ne.patch b/meta/recipes-core/busybox/busybox/0001-sysctl-ignore-EIO-of-stable_secret-below-proc-sys-ne.patch
new file mode 100644
index 0000000000..9f58eaef67
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox/0001-sysctl-ignore-EIO-of-stable_secret-below-proc-sys-ne.patch
@@ -0,0 +1,40 @@
+From 3bee0460d74bad88eca6592e63ca926961b43b67 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Fri, 6 Mar 2020 16:09:26 +0800
+Subject: [PATCH] sysctl: ignore EIO of stable_secret below
+ /proc/sys/net/ipv6/conf
+
+Avoid confusing messages caused by EIO on reading
+/proc/sys/net/ipv6/conf/*/stable_secret if those are not set yet.
+Make it behave the same as procps(>=3.3.13).
+
+Upstream-Status: Submitted [busybox@busybox.net mailing list]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ procps/sysctl.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/procps/sysctl.c b/procps/sysctl.c
+index 6d77185ca..42c51cc91 100644
+--- a/procps/sysctl.c
++++ b/procps/sysctl.c
+@@ -202,7 +202,14 @@ static int sysctl_act_on_setting(char *setting)
+ value = cptr = xmalloc_read(fd, NULL);
+ close(fd);
+ if (value == NULL) {
+- bb_perror_msg("error reading key '%s'", outname);
++ switch (errno) {
++ case EIO:
++ /* Ignore stable_secret below /proc/sys/net/ipv6/conf */
++ break;
++ default:
++ bb_perror_msg("error reading key '%s'", outname);
++ break;
++ }
+ retval = EXIT_FAILURE;
+ goto end;
+ }
+--
+2.17.1
+
diff --git a/meta/recipes-core/busybox/busybox/0001-time-Use-64-prefix-syscall-if-we-have-to.patch b/meta/recipes-core/busybox/busybox/0001-time-Use-64-prefix-syscall-if-we-have-to.patch
deleted file mode 100644
index 58a6c0d8a0..0000000000
--- a/meta/recipes-core/busybox/busybox/0001-time-Use-64-prefix-syscall-if-we-have-to.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 902d3992922fc8db8495d5fb30a4581711b60c62 Mon Sep 17 00:00:00 2001
-From: Alistair Francis <alistair.francis@wdc.com>
-Date: Wed, 18 Sep 2019 09:28:50 -0700
-Subject: [PATCH] time: Use 64 prefix syscall if we have to
-
-Some 32-bit architectures no longer have the 32-bit time_t syscalls.
-Instead they have suffixed syscalls that returns a 64-bit time_t. If
-the architecture doesn't have the non-suffixed syscall and is using a
-64-bit time_t let's use the suffixed syscall instead.
-
-This fixes build issues when building for RISC-V 32-bit with 5.1+ kernel
-headers.
-
-If an architecture only supports the suffixed syscalls, but is still
-using a 32-bit time_t report a compilation error. This avoids us have to
-deal with converting between 64-bit and 32-bit values. There are
-currently no architectures where this is the case.
-
-Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=902d3992922fc8db8495d5fb30a4581711b60c62]
-Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
-Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
----
- libbb/time.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
---- a/libbb/time.c
-+++ b/libbb/time.c
-@@ -257,7 +257,14 @@ char* FAST_FUNC strftime_YYYYMMDDHHMMSS(
- * typically requiring -lrt. We just skip all this mess */
- static void get_mono(struct timespec *ts)
- {
-- if (syscall(__NR_clock_gettime, CLOCK_MONOTONIC, ts))
-+#if defined(__NR_clock_gettime)
-+ if (syscall(__NR_clock_gettime, CLOCK_MONOTONIC, ts))
-+#elif __TIMESIZE == 64
-+ if (syscall(__NR_clock_gettime64, CLOCK_MONOTONIC, ts))
-+#else
-+# error "We currently don't support architectures without " \
-+ "the __NR_clock_gettime syscall and 32-bit time_t"
-+#endif
- bb_error_msg_and_die("clock_gettime(MONOTONIC) failed");
- }
- unsigned long long FAST_FUNC monotonic_ns(void)
diff --git a/meta/recipes-core/busybox/busybox/0003-runsv-Use-64-prefix-syscall-if-we-have-to.patch b/meta/recipes-core/busybox/busybox/0003-runsv-Use-64-prefix-syscall-if-we-have-to.patch
deleted file mode 100644
index 4760570441..0000000000
--- a/meta/recipes-core/busybox/busybox/0003-runsv-Use-64-prefix-syscall-if-we-have-to.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 8c7419649d6e6fda8fa7d0e863084c78ac728628 Mon Sep 17 00:00:00 2001
-From: Alistair Francis <alistair.francis@wdc.com>
-Date: Wed, 28 Aug 2019 10:54:15 -0700
-Subject: [PATCH 3/3] runsv: Use 64 prefix syscall if we have to
-
-Some 32-bit architectures no longer have the 32-bit time_t syscalls.
-Instead they have suffixed syscalls that returns a 64-bit time_t. If
-the architecture doesn't have the non-suffixed syscall and is using a
-64-bit time_t let's use the suffixed syscall instead.
-
-This fixes build issues when building for RISC-V 32-bit with 5.1+ kernel
-headers.
-
-If an architecture only supports the suffixed syscalls, but is still
-using a 32-bit time_t report a compilation error. This avoids us have to
-deal with converting between 64-bit and 32-bit values. There are
-currently no architectures where this is the case.
-
-Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
-Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=ad27d44ebe950335616f37e36863469dc181b455]
----
- runit/runsv.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/runit/runsv.c b/runit/runsv.c
-index ccc762d78..737909b0e 100644
---- a/runit/runsv.c
-+++ b/runit/runsv.c
-@@ -55,7 +55,14 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * typically requiring -lrt. We just skip all this mess */
- static void gettimeofday_ns(struct timespec *ts)
- {
-+#if defined(__NR_clock_gettime)
- syscall(__NR_clock_gettime, CLOCK_REALTIME, ts);
-+#elif __TIMESIZE == 64
-+ syscall(__NR_clock_gettime64, CLOCK_REALTIME, ts);
-+#else
-+# error "We currently don't support architectures without " \
-+ "the __NR_clock_gettime syscall and 32-bit time_t"
-+#endif
- }
- #else
- static void gettimeofday_ns(struct timespec *ts)
---
-2.22.0
-
diff --git a/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch b/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch
index 2a0a40c512..35e981d6a2 100644
--- a/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch
+++ b/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch
@@ -31,11 +31,11 @@ Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
networking/udhcp/dhcpc.c | 29 ++++++++++++++++------
1 file changed, 21 insertions(+), 8 deletions(-)
-Index: busybox-1.31.0/networking/udhcp/dhcpc.c
+Index: busybox-1.32.0/networking/udhcp/dhcpc.c
===================================================================
---- busybox-1.31.0.orig/networking/udhcp/dhcpc.c
-+++ busybox-1.31.0/networking/udhcp/dhcpc.c
-@@ -48,6 +48,8 @@
+--- busybox-1.32.0.orig/networking/udhcp/dhcpc.c
++++ busybox-1.32.0/networking/udhcp/dhcpc.c
+@@ -48,6 +48,8 @@ struct tpacket_auxdata {
};
#endif
@@ -55,7 +55,7 @@ Index: busybox-1.31.0/networking/udhcp/dhcpc.c
USE_FOR_MMU( OPTBIT_b,)
IF_FEATURE_UDHCPC_ARPING(OPTBIT_a,)
IF_FEATURE_UDHCP_PORT( OPTBIT_P,)
-@@ -1124,7 +1128,8 @@
+@@ -1084,7 +1088,8 @@
client_data.state = RENEW_REQUESTED;
break;
case RENEW_REQUESTED: /* impatient are we? fine, square 1 */
@@ -65,7 +65,7 @@ Index: busybox-1.31.0/networking/udhcp/dhcpc.c
case REQUESTING:
case RELEASED:
change_listen_mode(LISTEN_RAW);
-@@ -1160,7 +1165,8 @@
+@@ -1120,7 +1125,8 @@ static void perform_release(uint32_t server_addr, uint32_t requested_ip)
* Users requested to be notified in all cases, even if not in one
* of the states above.
*/
@@ -75,7 +75,7 @@ Index: busybox-1.31.0/networking/udhcp/dhcpc.c
change_listen_mode(LISTEN_NONE);
client_data.state = RELEASED;
-@@ -1278,7 +1284,7 @@
+@@ -1238,7 +1244,7 @@
/* Parse command line */
opt = getopt32long(argv, "^"
/* O,x: list; -T,-t,-A take numeric param */
@@ -84,7 +84,7 @@ Index: busybox-1.31.0/networking/udhcp/dhcpc.c
USE_FOR_MMU("b")
IF_FEATURE_UDHCPC_ARPING("a::")
IF_FEATURE_UDHCP_PORT("P:")
-@@ -1389,6 +1395,10 @@
+@@ -1349,6 +1355,10 @@
logmode |= LOGMODE_SYSLOG;
}
@@ -95,7 +95,7 @@ Index: busybox-1.31.0/networking/udhcp/dhcpc.c
/* Create pidfile */
write_pidfile(client_data.pidfile);
/* Goes to stdout (unless NOMMU) and possibly syslog */
-@@ -1397,7 +1407,8 @@
+@@ -1357,7 +1367,8 @@
srand(monotonic_us());
client_data.state = INIT_SELECTING;
@@ -105,17 +105,17 @@ Index: busybox-1.31.0/networking/udhcp/dhcpc.c
change_listen_mode(LISTEN_RAW);
packet_num = 0;
timeout = 0;
-@@ -1570,7 +1581,8 @@
+@@ -1530,7 +1541,8 @@
}
/* Timed out, enter init state */
- bb_info_msg("lease lost, entering init state");
+ bb_simple_info_msg("lease lost, entering init state");
- udhcp_run_script(NULL, "deconfig");
+ if (allow_deconfig)
+ udhcp_run_script(NULL, "deconfig");
client_data.state = INIT_SELECTING;
client_data.first_secs = 0; /* make secs field count from 0 */
/*timeout = 0; - already is */
-@@ -1762,8 +1774,10 @@
+@@ -1722,8 +1734,10 @@
"(got ARP reply), declining");
send_decline(/*xid,*/ server_addr, packet.yiaddr);
@@ -128,7 +128,7 @@ Index: busybox-1.31.0/networking/udhcp/dhcpc.c
change_listen_mode(LISTEN_RAW);
client_data.state = INIT_SELECTING;
client_data.first_secs = 0; /* make secs field count from 0 */
-@@ -1832,8 +1846,10 @@
+@@ -1792,8 +1806,10 @@
/* return to init state */
bb_info_msg("received %s", "DHCP NAK");
udhcp_run_script(&packet, "nak");
diff --git a/meta/recipes-core/busybox/busybox/defconfig b/meta/recipes-core/busybox/busybox/defconfig
index 0b27fcd4b3..4334a9d738 100644
--- a/meta/recipes-core/busybox/busybox/defconfig
+++ b/meta/recipes-core/busybox/busybox/defconfig
@@ -785,6 +785,7 @@ CONFIG_FEATURE_CROND_DIR=""
# 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_LESS=y
CONFIG_FEATURE_LESS_MAXLINES=9999999
diff --git a/meta/recipes-core/busybox/busybox/pgrep.cfg b/meta/recipes-core/busybox/busybox/pgrep.cfg
new file mode 100644
index 0000000000..775e487d60
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox/pgrep.cfg
@@ -0,0 +1 @@
+CONFIG_PGREP=y
diff --git a/meta/recipes-core/busybox/busybox/rev.cfg b/meta/recipes-core/busybox/busybox/rev.cfg
new file mode 100644
index 0000000000..da008c30cd
--- /dev/null
+++ b/meta/recipes-core/busybox/busybox/rev.cfg
@@ -0,0 +1 @@
+CONFIG_REV=y
diff --git a/meta/recipes-core/busybox/busybox_1.31.1.bb b/meta/recipes-core/busybox/busybox_1.32.0.bb
index ec5b580442..8e23b0d4a2 100644
--- a/meta/recipes-core/busybox/busybox_1.31.1.bb
+++ b/meta/recipes-core/busybox/busybox_1.32.0.bb
@@ -42,13 +42,12 @@ SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
file://0001-testsuite-check-uudecode-before-using-it.patch \
file://0001-testsuite-use-www.example.org-for-wget-test-cases.patch \
file://0001-du-l-works-fix-to-use-145-instead-of-144.patch \
- file://0001-date-Use-64-prefix-syscall-if-we-have-to.patch \
- file://0001-time-Use-64-prefix-syscall-if-we-have-to.patch \
- file://0003-runsv-Use-64-prefix-syscall-if-we-have-to.patch \
- file://0001-Remove-syscall-wrappers-around-clock_gettime-closes-.patch \
- file://0001-Remove-stime-function-calls.patch \
+ file://0001-sysctl-ignore-EIO-of-stable_secret-below-proc-sys-ne.patch \
+ file://0001-hwclock-make-glibc-2.31-compatible.patch \
+ file://rev.cfg \
+ file://pgrep.cfg \
"
SRC_URI_append_libc-musl = " file://musl.cfg "
-SRC_URI[tarball.md5sum] = "70913edaf2263a157393af07565c17f0"
-SRC_URI[tarball.sha256sum] = "d0f940a72f648943c1f2211e0e3117387c31d765137d92bd8284a3fb9752a998"
+SRC_URI[tarball.md5sum] = "9576986f1a960da471d03b72a62f13c7"
+SRC_URI[tarball.sha256sum] = "c35d87f1d04b2b153d33c275c2632e40d388a88f19a9e71727e0bbbff51fe689"
diff --git a/meta/recipes-core/coreutils/coreutils/0001-ls-restore-8.31-behavior-on-removed-directories.patch b/meta/recipes-core/coreutils/coreutils/0001-ls-restore-8.31-behavior-on-removed-directories.patch
new file mode 100644
index 0000000000..fa900e3a76
--- /dev/null
+++ b/meta/recipes-core/coreutils/coreutils/0001-ls-restore-8.31-behavior-on-removed-directories.patch
@@ -0,0 +1,99 @@
+From 7c273e5c6041f8c70f73f5b280fbb8f27d9b5a36 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Thu, 5 Mar 2020 17:25:29 -0800
+Subject: [PATCH] ls: restore 8.31 behavior on removed directories
+
+* NEWS: Mention this.
+* src/ls.c: Do not include <sys/sycall.h>
+(print_dir): Don't worry about whether the directory is removed.
+* tests/ls/removed-directory.sh: Adjust to match new (i.e., old)
+behavior.
+
+Upstream-Status: Backport [https://github.com/coreutils/coreutils/commit/10fcb97bd728f09d4a027eddf8ad2900f0819b0a]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ src/ls.c | 22 ----------------------
+ tests/ls/removed-directory.sh | 10 ++--------
+ 2 files changed, 2 insertions(+), 30 deletions(-)
+
+diff --git a/src/ls.c b/src/ls.c
+index 637fe7a..0111f49 100644
+--- a/src/ls.c
++++ b/src/ls.c
+@@ -49,10 +49,6 @@
+ # include <sys/ptem.h>
+ #endif
+
+-#ifdef __linux__
+-# include <sys/syscall.h>
+-#endif
+-
+ #include <stdio.h>
+ #include <assert.h>
+ #include <setjmp.h>
+@@ -2895,7 +2891,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg)
+ struct dirent *next;
+ uintmax_t total_blocks = 0;
+ static bool first = true;
+- bool found_any_entries = false;
+
+ errno = 0;
+ dirp = opendir (name);
+@@ -2971,7 +2966,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg)
+ next = readdir (dirp);
+ if (next)
+ {
+- found_any_entries = true;
+ if (! file_ignored (next->d_name))
+ {
+ enum filetype type = unknown;
+@@ -3017,22 +3011,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg)
+ if (errno != EOVERFLOW)
+ break;
+ }
+-#ifdef __linux__
+- else if (! found_any_entries)
+- {
+- /* If readdir finds no directory entries at all, not even "." or
+- "..", then double check that the directory exists. */
+- if (syscall (SYS_getdents, dirfd (dirp), NULL, 0) == -1
+- && errno != EINVAL)
+- {
+- /* We exclude EINVAL as that pertains to buffer handling,
+- and we've passed NULL as the buffer for simplicity.
+- ENOENT is returned if appropriate before buffer handling. */
+- file_failure (command_line_arg, _("reading directory %s"), name);
+- }
+- break;
+- }
+-#endif
+ else
+ break;
+
+diff --git a/tests/ls/removed-directory.sh b/tests/ls/removed-directory.sh
+index e8c835d..fe8f929 100755
+--- a/tests/ls/removed-directory.sh
++++ b/tests/ls/removed-directory.sh
+@@ -26,20 +26,14 @@ case $host_triplet in
+ *) skip_ 'non linux kernel' ;;
+ esac
+
+-LS_FAILURE=2
+-
+-cat <<\EOF >exp-err || framework_failure_
+-ls: reading directory '.': No such file or directory
+-EOF
+-
+ cwd=$(pwd)
+ mkdir d || framework_failure_
+ cd d || framework_failure_
+ rmdir ../d || framework_failure_
+
+-returns_ $LS_FAILURE ls >../out 2>../err || fail=1
++ls >../out 2>../err || fail=1
+ cd "$cwd" || framework_failure_
+ compare /dev/null out || fail=1
+-compare exp-err err || fail=1
++compare /dev/null err || fail=1
+
+ Exit $fail
diff --git a/meta/recipes-core/coreutils/coreutils/fix-selinux-flask.patch b/meta/recipes-core/coreutils/coreutils/fix-selinux-flask.patch
index 9d1ae55d47..173a57925b 100644
--- a/meta/recipes-core/coreutils/coreutils/fix-selinux-flask.patch
+++ b/meta/recipes-core/coreutils/coreutils/fix-selinux-flask.patch
@@ -1,4 +1,4 @@
-From a1d360509fa3a4aff57eedcd528cc0347a87531d Mon Sep 17 00:00:00 2001
+From 7e20a7242ba2657f73311bbf5278093da67f0721 Mon Sep 17 00:00:00 2001
From: Robert Yang <liezhi.yang@windriver.com>
Date: Tue, 16 Sep 2014 01:59:08 -0700
Subject: [PATCH] gnulib-comp.m4: selinux/flask.h should respect to
@@ -13,20 +13,20 @@ compilation terminated.
Upstream-Status: Pending
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+
---
- m4/gnulib-comp.m4 | 2 +-
+ m4/gnulib-comp.m4 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/m4/gnulib-comp.m4 b/m4/gnulib-comp.m4
-index 472d3a0..5f09734 100644
+index dead90e..0abf0bd 100644
--- a/m4/gnulib-comp.m4
+++ b/m4/gnulib-comp.m4
-@@ -1730,11 +1730,11 @@ AC_DEFUN([gl_INIT],
+@@ -1860,10 +1860,10 @@ AC_DEFUN([gl_INIT],
AC_LIBOBJ([select])
fi
gl_SYS_SELECT_MODULE_INDICATOR([select])
- AC_CHECK_HEADERS([selinux/flask.h])
- AC_LIBOBJ([selinux-at])
gl_HEADERS_SELINUX_SELINUX_H
gl_HEADERS_SELINUX_CONTEXT_H
if test "$with_selinux" != no && test "$ac_cv_header_selinux_selinux_h" = yes; then
@@ -34,6 +34,3 @@ index 472d3a0..5f09734 100644
AC_LIBOBJ([getfilecon])
fi
gl_SERVENT
---
-1.7.9.5
-
diff --git a/meta/recipes-core/coreutils/coreutils/remove-usr-local-lib-from-m4.patch b/meta/recipes-core/coreutils/coreutils/remove-usr-local-lib-from-m4.patch
index 2ef8a548ac..1a8a9b9983 100644
--- a/meta/recipes-core/coreutils/coreutils/remove-usr-local-lib-from-m4.patch
+++ b/meta/recipes-core/coreutils/coreutils/remove-usr-local-lib-from-m4.patch
@@ -1,3 +1,8 @@
+From a26530083a29eeee910bfd606ecc621acecd547a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 3 Aug 2011 14:12:30 -0700
+Subject: [PATCH] coreutils: Fix build on uclibc
+
We have problem using hardcoded directories like /usr/local here
which will be checked for cross builds. This is a special case which
is valid for AIX only. We do not have AIX as one of our supported
@@ -8,11 +13,15 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Inappropriate [Upstream does care for AIX while we may not]
-Index: coreutils-8.14/m4/getloadavg.m4
-===================================================================
---- coreutils-8.14.orig/m4/getloadavg.m4 2011-09-19 08:09:24.000000000 -0700
-+++ coreutils-8.14/m4/getloadavg.m4 2011-10-19 21:42:00.385533357 -0700
-@@ -41,16 +41,6 @@
+---
+ m4/getloadavg.m4 | 12 ------------
+ 1 file changed, 12 deletions(-)
+
+diff --git a/m4/getloadavg.m4 b/m4/getloadavg.m4
+index 8e96965..63782a2 100644
+--- a/m4/getloadavg.m4
++++ b/m4/getloadavg.m4
+@@ -41,18 +41,6 @@ AC_CHECK_FUNC([getloadavg], [],
[LIBS="-lutil $LIBS" gl_func_getloadavg_done=yes])
fi
@@ -20,7 +29,9 @@ Index: coreutils-8.14/m4/getloadavg.m4
- # There is a commonly available library for RS/6000 AIX.
- # Since it is not a standard part of AIX, it might be installed locally.
- gl_getloadavg_LIBS=$LIBS
-- LIBS="-L/usr/local/lib $LIBS"
+- if test $cross_compiling != yes; then
+- LIBS="-L/usr/local/lib $LIBS"
+- fi
- AC_CHECK_LIB([getloadavg], [getloadavg],
- [LIBS="-lgetloadavg $LIBS" gl_func_getloadavg_done=yes],
- [LIBS=$gl_getloadavg_LIBS])
diff --git a/meta/recipes-core/coreutils/coreutils/run-ptest b/meta/recipes-core/coreutils/coreutils/run-ptest
new file mode 100755
index 0000000000..6d4a7b365d
--- /dev/null
+++ b/meta/recipes-core/coreutils/coreutils/run-ptest
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+# remove any stale lock files so that the calls to groupadd/useradd don't stop
+# the ptest if re-using the same image
+rm -rf /etc/passwd.lock /etc/group.lock /etc/gshadow.lock
+
+COREUTILSLIB=@libdir@/coreutils
+LOG="${COREUTILSLIB}/ptest/coreutils_ptest_$(date +%Y%m%d-%H%M%S).log"
+USERNAME="tester"
+groupadd ugroup1
+groupadd ugroup2
+useradd -G ugroup1,ugroup2 $USERNAME || echo "user $USERNAME already exists"
+
+su tester -c "cd ${COREUTILSLIB}/ptest && make check-TESTS top_srcdir=. srcdir=." 2>&1 | tee -a ${LOG}
+userdel $USERNAME
+groupdel ugroup1
+groupdel ugroup2
diff --git a/meta/recipes-core/coreutils/coreutils/strtod_fix_clash_with_strtold.patch b/meta/recipes-core/coreutils/coreutils/strtod_fix_clash_with_strtold.patch
deleted file mode 100644
index 77770093cd..0000000000
--- a/meta/recipes-core/coreutils/coreutils/strtod_fix_clash_with_strtold.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 0562b040fa17f1722ba2b3096067b45d0582ca53 Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Mon, 11 Mar 2019 16:40:29 -0700
-Subject: [PATCH] strtod: fix clash with strtold
-
-Problem reported for RHEL 5 by Jesse Caldwell (Bug#34817).
-* lib/strtod.c (compute_minus_zero, minus_zero):
-Simplify by remving the macro / external variable,
-and having just a function. User changed. This avoids
-the need for an external variable that might clash.
-
-Upstream-Status: Backport [rhel5]
-
-Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
-
----
- ChangeLog | 9 +++++++++
- lib/strtod.c | 11 +++++------
- 2 files changed, 14 insertions(+), 6 deletions(-)
-
-diff --git a/lib/strtod.c b/lib/strtod.c
-index b9eaa51b4..69b1564e1 100644
---- a/lib/strtod.c
-+++ b/lib/strtod.c
-@@ -294,16 +294,15 @@ parse_number (const char *nptr,
- ICC 10.0 has a bug when optimizing the expression -zero.
- The expression -MIN * MIN does not work when cross-compiling
- to PowerPC on Mac OS X 10.5. */
--#if defined __hpux || defined __sgi || defined __ICC
- static DOUBLE
--compute_minus_zero (void)
-+minus_zero (void)
- {
-+#if defined __hpux || defined __sgi || defined __ICC
- return -MIN * MIN;
--}
--# define minus_zero compute_minus_zero ()
- #else
--DOUBLE minus_zero = -0.0;
-+ return -0.0;
- #endif
-+}
-
- /* Convert NPTR to a DOUBLE. If ENDPTR is not NULL, a pointer to the
- character after the last one used in the number is put in *ENDPTR. */
-@@ -479,6 +478,6 @@ STRTOD (const char *nptr, char **endptr)
- /* Special case -0.0, since at least ICC miscompiles negation. We
- can't use copysign(), as that drags in -lm on some platforms. */
- if (!num && negative)
-- return minus_zero;
-+ return minus_zero ();
- return negative ? -num : num;
- }
---
-2.20.1
-
diff --git a/meta/recipes-core/coreutils/coreutils_8.31.bb b/meta/recipes-core/coreutils/coreutils_8.32.bb
index 57b2c1bdba..9d1eceef54 100644
--- a/meta/recipes-core/coreutils/coreutils_8.31.bb
+++ b/meta/recipes-core/coreutils/coreutils_8.32.bb
@@ -5,8 +5,9 @@ every system."
HOMEPAGE = "http://www.gnu.org/software/coreutils/"
BUGTRACKER = "http://debbugs.gnu.org/coreutils"
LICENSE = "GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504\
- file://src/ls.c;beginline=1;endline=15;md5=c456f9896277a0543e3866777ccc0255"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464 \
+ file://src/ls.c;beginline=1;endline=15;md5=b7d80abf5b279320fb0e4b1007ed108b \
+ "
DEPENDS = "gmp libcap"
DEPENDS_class-native = ""
@@ -18,12 +19,12 @@ SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.xz \
file://0001-uname-report-processor-and-hardware-correctly.patch \
file://disable-ls-output-quoting.patch \
file://0001-local.mk-fix-cross-compiling-problem.patch \
- "
+ file://run-ptest \
+ file://0001-ls-restore-8.31-behavior-on-removed-directories.patch \
+ "
-SRC_URI_append_libc-musl = "file://strtod_fix_clash_with_strtold.patch"
-
-SRC_URI[md5sum] = "0009a224d8e288e8ec406ef0161f9293"
-SRC_URI[sha256sum] = "ff7a9c918edce6b4f4b2725e3f9b37b0c4d193531cac49a48b56c4d0d3a9e9fd"
+SRC_URI[md5sum] = "022042695b7d5bcf1a93559a9735e668"
+SRC_URI[sha256sum] = "4458d8de7849df44ccab15e16b1548b285224dbba5f08fac070c1c0e0bcc4cfa"
EXTRA_OECONF_class-native = "--without-gmp"
EXTRA_OECONF_class-target = "--enable-install-program=arch,hostname --libexecdir=${libdir}"
@@ -58,9 +59,20 @@ base_bindir_progs = "cat chgrp chmod chown cp date dd echo false hostname kill l
sbindir_progs= "chroot"
-PACKAGE_BEFORE_PN_class-target += "coreutils-stdbuf"
+# Split stdbuf into its own package, so one can include
+# coreutils-stdbuf without getting the rest of coreutils, but make
+# coreutils itself pull in stdbuf, so IMAGE_INSTALL += "coreutils"
+# always provides all coreutils
+PACKAGE_BEFORE_PN_class-target += "${@bb.utils.contains('PACKAGECONFIG', 'single-binary', '', 'coreutils-stdbuf', d)}"
FILES_coreutils-stdbuf = "${bindir}/stdbuf ${libdir}/coreutils/libstdbuf.so"
-RDEPENDS_coreutils_class-target += "coreutils-stdbuf"
+RDEPENDS_coreutils_class-target += "${@bb.utils.contains('PACKAGECONFIG', 'single-binary', '', 'coreutils-stdbuf', d)}"
+
+# However, when the single-binary PACKAGECONFIG is used, stdbuf
+# functionality is built into the single coreutils binary, so there's
+# no point splitting /usr/bin/stdbuf to its own package. Instead, add
+# an RPROVIDE so that rdepending on coreutils-stdbuf will work
+# regardless of whether single-binary is in effect.
+RPROVIDES_coreutils += "${@bb.utils.contains('PACKAGECONFIG', 'single-binary', 'coreutils-stdbuf', '', d)}"
# Let aclocal use the relative path for the m4 file rather than the
# absolute since coreutils has a lot of m4 files, otherwise there might
@@ -143,3 +155,47 @@ python __anonymous() {
}
BBCLASSEXTEND = "native nativesdk"
+
+inherit ptest
+
+RDEPENDS_${PN}-ptest += "bash findutils gawk liberror-perl make perl perl-modules python3-core sed shadow"
+
+# -dev automatic dependencies fails as we don't want libmodule-build-perl-dev, its too heavy
+# may need tweaking if DEPENDS changes
+RRECOMMENDS_coreutils-dev[nodeprrecs] = "1"
+RRECOMMENDS_coreutils-dev = "acl-dev attr-dev gmp-dev libcap-dev bash-dev findutils-dev gawk-dev shadow-dev"
+
+do_install_ptest () {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -r ${S}/tests/* ${D}${PTEST_PATH}/tests
+ sed -i 's/ginstall/install/g' `grep -R ginstall ${D}${PTEST_PATH}/tests | awk -F: '{print $1}' | uniq`
+ install -d ${D}${PTEST_PATH}/build-aux
+ install ${S}/build-aux/test-driver ${D}${PTEST_PATH}/build-aux/
+ cp ${B}/Makefile ${D}${PTEST_PATH}/
+ cp ${S}/init.cfg ${D}${PTEST_PATH}/
+ cp -r ${B}/src ${D}${PTEST_PATH}/
+ cp -r ${S}/src/*.c ${D}${PTEST_PATH}/src
+ sed -i '/^VPATH/s/= .*$/= ./g' ${D}${PTEST_PATH}/Makefile
+ sed -i '/^PROGRAMS/s/^/#/g' ${D}${PTEST_PATH}/Makefile
+ sed -i '/^Makefile: /s/^.*$/Makefile:/g' ${D}${PTEST_PATH}/Makefile
+ sed -i '/^abs_srcdir/s/= .*$/= \$\{PWD\}/g' ${D}${PTEST_PATH}/Makefile
+ sed -i '/^abs_top_builddir/s/= .*$/= \$\{PWD\}/g' ${D}${PTEST_PATH}/Makefile
+ sed -i '/^abs_top_srcdir/s/= .*$/= \$\{PWD\}/g' ${D}${PTEST_PATH}/Makefile
+ sed -i '/^built_programs/s/ginstall/install/g' ${D}${PTEST_PATH}/Makefile
+ chmod -R 777 ${D}${PTEST_PATH}
+
+ # Disable subcase stty-pairs.sh, it will cause test framework hang
+ sed -i '/stty-pairs.sh/d' ${D}${PTEST_PATH}/Makefile
+
+ # Disable subcase tail-2/assert.sh as it has issues on 32-bit systems
+ sed -i '/assert.sh/d' ${D}${PTEST_PATH}/Makefile
+
+ # Tweak test d_type-check to use python3 instead of python
+ sed -i "1s@.*@#!/usr/bin/python3@" ${D}${PTEST_PATH}/tests/d_type-check
+ install ${B}/src/getlimits ${D}/${bindir}
+
+ # handle multilib
+ sed -i s:@libdir@:${libdir}:g ${D}${PTEST_PATH}/run-ptest
+}
+
+FILES_${PN}-ptest += "${bindir}/getlimits"
diff --git a/meta/recipes-core/dbus/dbus-test_1.12.16.bb b/meta/recipes-core/dbus/dbus-test_1.12.20.bb
index bea0e74ed0..755c841bad 100644
--- a/meta/recipes-core/dbus/dbus-test_1.12.16.bb
+++ b/meta/recipes-core/dbus/dbus-test_1.12.20.bb
@@ -1,57 +1,31 @@
SUMMARY = "D-Bus test package (for D-bus functionality testing only)"
HOMEPAGE = "http://dbus.freedesktop.org"
SECTION = "base"
-LICENSE = "AFL-2.1 | GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=10dded3b58148f3f1fd804b26354af3e \
- file://dbus/dbus.h;beginline=6;endline=20;md5=7755c9d7abccd5dbd25a6a974538bb3c"
-DEPENDS = "dbus glib-2.0"
+require dbus.inc
-RDEPENDS_${PN}-dev = ""
+SRC_URI += "file://run-ptest \
+ file://python-config.patch \
+ "
-SRC_URI = "http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \
- file://tmpdir.patch \
- file://run-ptest \
- file://python-config.patch \
- file://clear-guid_from_server-if-send_negotiate_unix_f.patch \
- "
+DEPENDS = "dbus glib-2.0"
-SRC_URI[md5sum] = "2dbeae80dfc9e3632320c6a53d5e8890"
-SRC_URI[sha256sum] = "54a22d2fa42f2eb2a871f32811c6005b531b9613b1b93a0d269b05e7549fec80"
+RDEPENDS_${PN}-dev = ""
S="${WORKDIR}/dbus-${PV}"
FILESEXTRAPATHS =. "${FILE_DIRNAME}/dbus:"
-inherit autotools pkgconfig gettext ptest upstream-version-is-even
+inherit ptest
-EXTRA_OECONF_X = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '--with-x', '--without-x', d)}"
-EXTRA_OECONF_X_class-native = "--without-x"
-
-EXTRA_OECONF = "--enable-tests \
+EXTRA_OECONF += "--enable-tests \
--enable-modular-tests \
--enable-installed-tests \
--enable-checks \
--enable-asserts \
- --enable-largefile \
- --disable-xml-docs \
- --disable-doxygen-docs \
- --disable-libaudit \
--with-dbus-test-dir=${PTEST_PATH} \
- ${EXTRA_OECONF_X} \
--enable-embedded-tests \
"
-EXTRA_OECONF_append_class-target = " SYSTEMCTL=${base_bindir}/systemctl"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd x11', d)}"
-PACKAGECONFIG_class-native = ""
-PACKAGECONFIG_class-nativesdk = ""
-
-PACKAGECONFIG[systemd] = "--enable-systemd --with-systemdsystemunitdir=${systemd_system_unitdir},--disable-systemd --without-systemdsystemunitdir,systemd"
-PACKAGECONFIG[x11] = "--with-x --enable-x11-autolaunch,--without-x --disable-x11-autolaunch, virtual/libx11 libsm"
-PACKAGECONFIG[user-session] = "--enable-user-session --with-systemduserunitdir=${systemd_user_unitdir},--disable-user-session"
-PACKAGECONFIG[verbose-mode] = "--enable-verbose-mode,,,"
-
do_install() {
:
}
diff --git a/meta/recipes-core/dbus/dbus.inc b/meta/recipes-core/dbus/dbus.inc
new file mode 100644
index 0000000000..dcbcc0a9d6
--- /dev/null
+++ b/meta/recipes-core/dbus/dbus.inc
@@ -0,0 +1,34 @@
+inherit autotools pkgconfig gettext upstream-version-is-even
+
+LICENSE = "AFL-2.1 | GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=10dded3b58148f3f1fd804b26354af3e \
+ file://dbus/dbus.h;beginline=6;endline=20;md5=7755c9d7abccd5dbd25a6a974538bb3c"
+
+SRC_URI = "https://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \
+ file://tmpdir.patch \
+ file://dbus-1.init \
+ file://clear-guid_from_server-if-send_negotiate_unix_f.patch \
+"
+
+SRC_URI[md5sum] = "dfe8a71f412e0b53be26ed4fbfdc91c4"
+SRC_URI[sha256sum] = "f77620140ecb4cdc67f37fb444f8a6bea70b5b6461f12f1cbe2cec60fa7de5fe"
+
+EXTRA_OECONF = "--disable-xml-docs \
+ --disable-doxygen-docs \
+ --disable-libaudit \
+ --enable-largefile \
+ --with-system-socket=/run/dbus/system_bus_socket \
+ "
+EXTRA_OECONF_append_class-target = " SYSTEMCTL=${base_bindir}/systemctl"
+EXTRA_OECONF_append_class-native = " --disable-selinux"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd x11', d)} \
+ user-session \
+ "
+PACKAGECONFIG_class-native = ""
+PACKAGECONFIG_class-nativesdk = ""
+
+PACKAGECONFIG[systemd] = "--enable-systemd --with-systemdsystemunitdir=${systemd_system_unitdir},--disable-systemd --without-systemdsystemunitdir,systemd"
+PACKAGECONFIG[x11] = "--with-x --enable-x11-autolaunch,--without-x --disable-x11-autolaunch, virtual/libx11 libsm"
+PACKAGECONFIG[user-session] = "--enable-user-session --with-systemduserunitdir=${systemd_user_unitdir},--disable-user-session"
+PACKAGECONFIG[verbose-mode] = "--enable-verbose-mode,,,"
diff --git a/meta/recipes-core/dbus/dbus_1.12.16.bb b/meta/recipes-core/dbus/dbus_1.12.20.bb
index 82bb753731..cf6f7dc0ef 100644
--- a/meta/recipes-core/dbus/dbus_1.12.16.bb
+++ b/meta/recipes-core/dbus/dbus_1.12.20.bb
@@ -2,9 +2,9 @@ SUMMARY = "D-Bus message bus"
DESCRIPTION = "D-Bus is a message bus system, a simple way for applications to talk to one another. In addition to interprocess communication, D-Bus helps coordinate process lifecycle; it makes it simple and reliable to code a \"single instance\" application or daemon, and to launch applications and daemons on demand when their services are needed."
HOMEPAGE = "https://dbus.freedesktop.org"
SECTION = "base"
-LICENSE = "AFL-2.1 | GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=10dded3b58148f3f1fd804b26354af3e \
- file://dbus/dbus.h;beginline=6;endline=20;md5=7755c9d7abccd5dbd25a6a974538bb3c"
+
+require dbus.inc
+
DEPENDS = "expat virtual/libintl autoconf-archive"
RDEPENDS_dbus_class-native = ""
RDEPENDS_dbus_class-nativesdk = ""
@@ -12,16 +12,7 @@ PACKAGES += "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', '${PN}-ptest', '',
ALLOW_EMPTY_dbus-ptest = "1"
RDEPENDS_dbus-ptest_class-target = "dbus-test-ptest"
-SRC_URI = "https://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \
- file://tmpdir.patch \
- file://dbus-1.init \
- file://clear-guid_from_server-if-send_negotiate_unix_f.patch \
-"
-
-SRC_URI[md5sum] = "2dbeae80dfc9e3632320c6a53d5e8890"
-SRC_URI[sha256sum] = "54a22d2fa42f2eb2a871f32811c6005b531b9613b1b93a0d269b05e7549fec80"
-
-inherit useradd autotools pkgconfig gettext update-rc.d upstream-version-is-even
+inherit useradd update-rc.d
INITSCRIPT_NAME = "dbus-1"
INITSCRIPT_PARAMS = "start 02 5 3 2 . stop 20 0 1 6 ."
@@ -92,27 +83,7 @@ pkg_postinst_dbus() {
}
-EXTRA_OECONF = "--disable-tests \
- --disable-xml-docs \
- --disable-doxygen-docs \
- --disable-libaudit \
- --enable-largefile \
- --with-system-socket=/run/dbus/system_bus_socket \
- "
-
-EXTRA_OECONF_append_class-target = " SYSTEMCTL=${base_bindir}/systemctl"
-EXTRA_OECONF_append_class-native = " --disable-selinux"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd x11', d)} \
- user-session \
- "
-
-PACKAGECONFIG_class-native = ""
-PACKAGECONFIG_class-nativesdk = ""
-
-PACKAGECONFIG[systemd] = "--enable-systemd --with-systemdsystemunitdir=${systemd_system_unitdir},--disable-systemd --without-systemdsystemunitdir,systemd"
-PACKAGECONFIG[x11] = "--with-x --enable-x11-autolaunch,--without-x --disable-x11-autolaunch, virtual/libx11 libsm"
-PACKAGECONFIG[user-session] = "--enable-user-session --with-systemduserunitdir=${systemd_user_unitdir},--disable-user-session"
+EXTRA_OECONF += "--disable-tests"
do_install() {
autotools_do_install
diff --git a/meta/recipes-core/dropbear/dropbear.inc b/meta/recipes-core/dropbear/dropbear.inc
index 7269888a4e..080ee26b2e 100644
--- a/meta/recipes-core/dropbear/dropbear.inc
+++ b/meta/recipes-core/dropbear/dropbear.inc
@@ -5,7 +5,7 @@ SECTION = "console/network"
# some files are from other projects and have others license terms:
# public domain, OpenSSH 3.5p1, OpenSSH3.6.1p2, PuTTY
LICENSE = "MIT & BSD-3-Clause & BSD-2-Clause & PD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a5ec40cafba26fc4396d0b550f824e01"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=25cf44512b7bc8966a48b6b1a9b7605f"
DEPENDS = "zlib virtual/crypt"
RPROVIDES_${PN} = "ssh sshd"
diff --git a/meta/recipes-core/dropbear/dropbear/dropbear-disable-weak-ciphers.patch b/meta/recipes-core/dropbear/dropbear/dropbear-disable-weak-ciphers.patch
index e48a34bac0..b54581f17a 100644
--- a/meta/recipes-core/dropbear/dropbear/dropbear-disable-weak-ciphers.patch
+++ b/meta/recipes-core/dropbear/dropbear/dropbear-disable-weak-ciphers.patch
@@ -1,33 +1,24 @@
-This feature disables all CBC, SHA1, and diffie-hellman group1 ciphers
+From c347ece05a7fdbf50d76cb136b9ed45caed333f6 Mon Sep 17 00:00:00 2001
+From: Joseph Reynolds <joseph.reynolds1@ibm.com>
+Date: Thu, 20 Jun 2019 16:29:15 -0500
+Subject: [PATCH] dropbear: new feature: disable-weak-ciphers
+
+This feature disables all CBC, SHA1, and diffie-hellman group1 ciphers
in the dropbear ssh server and client since they're considered weak ciphers
and we want to support the stong algorithms.
Upstream-Status: Inappropriate [configuration]
Signed-off-by: Joseph Reynolds <joseph.reynolds1@ibm.com>
-Index: dropbear-2019.78/default_options.h
-===================================================================
---- dropbear-2019.78.orig/default_options.h
-+++ dropbear-2019.78/default_options.h
-@@ -91,7 +91,7 @@ IMPORTANT: Some options will require "ma
-
- /* Enable CBC mode for ciphers. This has security issues though
- * is the most compatible with older SSH implementations */
--#define DROPBEAR_ENABLE_CBC_MODE 1
-+#define DROPBEAR_ENABLE_CBC_MODE 0
-
- /* Enable "Counter Mode" for ciphers. This is more secure than
- * CBC mode against certain attacks. It is recommended for security
-@@ -101,7 +101,7 @@ IMPORTANT: Some options will require "ma
- /* Message integrity. sha2-256 is recommended as a default,
- sha1 for compatibility */
- #define DROPBEAR_SHA1_HMAC 1
--#define DROPBEAR_SHA1_96_HMAC 1
-+#define DROPBEAR_SHA1_96_HMAC 0
- #define DROPBEAR_SHA2_256_HMAC 1
-
- /* Hostkey/public key algorithms - at least one required, these are used
-@@ -149,12 +149,12 @@ IMPORTANT: Some options will require "ma
+---
+ default_options.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/default_options.h b/default_options.h
+index 1aa2297..7ff1394 100644
+--- a/default_options.h
++++ b/default_options.h
+@@ -163,12 +163,12 @@ IMPORTANT: Some options will require "make clean" after changes */
* Small systems should generally include either curve25519 or ecdh for performance.
* curve25519 is less widely supported but is faster
*/
diff --git a/meta/recipes-core/dropbear/dropbear/dropbearkey.service b/meta/recipes-core/dropbear/dropbear/dropbearkey.service
index c49053d57c..71a12a6110 100644
--- a/meta/recipes-core/dropbear/dropbear/dropbearkey.service
+++ b/meta/recipes-core/dropbear/dropbear/dropbearkey.service
@@ -11,3 +11,4 @@ Type=oneshot
ExecStart=@BASE_BINDIR@/mkdir -p ${DROPBEAR_RSAKEY_DIR}
ExecStart=@SBINDIR@/dropbearkey -t rsa -f ${DROPBEAR_RSAKEY_DIR}/dropbear_rsa_host_key
RemainAfterExit=yes
+Nice=10
diff --git a/meta/recipes-core/dropbear/dropbear_2019.78.bb b/meta/recipes-core/dropbear/dropbear_2019.78.bb
deleted file mode 100644
index d2cd8161bf..0000000000
--- a/meta/recipes-core/dropbear/dropbear_2019.78.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require dropbear.inc
-
-SRC_URI[md5sum] = "a972c85ed678ad0fdcb7844e1294fb54"
-SRC_URI[sha256sum] = "525965971272270995364a0eb01f35180d793182e63dd0b0c3eb0292291644a4"
diff --git a/meta/recipes-core/dropbear/dropbear_2020.80.bb b/meta/recipes-core/dropbear/dropbear_2020.80.bb
new file mode 100644
index 0000000000..088c71cb99
--- /dev/null
+++ b/meta/recipes-core/dropbear/dropbear_2020.80.bb
@@ -0,0 +1,3 @@
+require dropbear.inc
+
+SRC_URI[sha256sum] = "d927941b91f2da150b2033f1a88b6a47999bf0afb1493a73e9216cffdb5d7949"
diff --git a/meta/recipes-core/ell/ell_0.28.bb b/meta/recipes-core/ell/ell_0.33.bb
index 464bf631e3..2fa05104fb 100644
--- a/meta/recipes-core/ell/ell_0.28.bb
+++ b/meta/recipes-core/ell/ell_0.33.bb
@@ -14,8 +14,7 @@ DEPENDS = "dbus"
inherit autotools pkgconfig
SRC_URI = "https://mirrors.edge.kernel.org/pub/linux/libs/${BPN}/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "e38089e54d4b41e508bbb7f37a4a59d9"
-SRC_URI[sha256sum] = "6254fcb98d681cb2c3078dde462ba20bf90e6c10919204c6878a4381adcdb74b"
+SRC_URI[sha256sum] = "d9e40e641164150394b74b719b9726fc734f24b2cde679cf5f3be6915c34eded"
do_configure_prepend () {
mkdir -p ${S}/build-aux
diff --git a/meta/recipes-core/expat/expat/0001-Add-output-of-tests-result.patch b/meta/recipes-core/expat/expat/0001-Add-output-of-tests-result.patch
new file mode 100644
index 0000000000..c5c18ead74
--- /dev/null
+++ b/meta/recipes-core/expat/expat/0001-Add-output-of-tests-result.patch
@@ -0,0 +1,83 @@
+From aa84835a00bfd65e784d58411e76f60658e939dc Mon Sep 17 00:00:00 2001
+From: Oleksandr Popovych <oleksandr.s.popovych@globallogic.com>
+Date: Tue, 18 Feb 2020 19:04:55 +0200
+Subject: [PATCH] Add output of tests result
+
+Added console output of testing results in form 'RESULT: TEST_NAME'.
+
+Changed verbose mode of test application set by '-v' ('--verbose')
+argument to CK_NORMAL.
+Added new supported argument '-vv' ('--extra-verbose') that changes
+verbose mode of test application to CK_VERBOSE. Results of each test
+are shown in output only if this mode is set.
+
+Upstream-Status: Denied
+
+This patch changes potentially deprecated feature that shoud be changed
+in upstream. [https://github.com/libexpat/libexpat/issues/382]
+
+Signed-off-by: Oleksandr Popovych <oleksandr.s.popovych@globallogic.com>
+---
+ tests/minicheck.c | 10 +++++++++-
+ tests/runtests.c | 4 +++-
+ 2 files changed, 12 insertions(+), 2 deletions(-)
+
+diff --git a/expat/tests/minicheck.c b/expat/tests/minicheck.c
+index a5a1efb..94fa412 100644
+--- a/tests/minicheck.c
++++ b/tests/minicheck.c
+@@ -164,6 +164,8 @@ srunner_run_all(SRunner *runner, int verbosity) {
+ if (tc->setup != NULL) {
+ /* setup */
+ if (setjmp(env)) {
++ if (verbosity >= CK_VERBOSE)
++ printf("SKIP: %s\n", _check_current_function);
+ add_failure(runner, verbosity);
+ continue;
+ }
+@@ -171,6 +173,8 @@ srunner_run_all(SRunner *runner, int verbosity) {
+ }
+ /* test */
+ if (setjmp(env)) {
++ if (verbosity >= CK_VERBOSE)
++ printf("FAIL: %s\n", _check_current_function);
+ add_failure(runner, verbosity);
+ continue;
+ }
+@@ -178,12 +182,16 @@ srunner_run_all(SRunner *runner, int verbosity) {
+
+ /* teardown */
+ if (tc->teardown != NULL) {
+- if (setjmp(env)) {
++ if (setjmp(env)) {
++ if (verbosity >= CK_VERBOSE)
++ printf("PASS: %s\n", _check_current_function);
+ add_failure(runner, verbosity);
+ continue;
+ }
+ tc->teardown();
+ }
++ if (verbosity >= CK_VERBOSE)
++ printf("PASS: %s\n", _check_current_function);
+ }
+ tc = tc->next_tcase;
+ }
+diff --git a/tests/runtests.c b/expat/tests/runtests.c
+index 7791fe0..75724e5 100644
+--- a/tests/runtests.c
++++ b/tests/runtests.c
+@@ -11619,9 +11619,11 @@ main(int argc, char *argv[]) {
+ for (i = 1; i < argc; ++i) {
+ char *opt = argv[i];
+ if (strcmp(opt, "-v") == 0 || strcmp(opt, "--verbose") == 0)
+- verbosity = CK_VERBOSE;
++ verbosity = CK_NORMAL;
+ else if (strcmp(opt, "-q") == 0 || strcmp(opt, "--quiet") == 0)
+ verbosity = CK_SILENT;
++ else if (strcmp(opt, "-vv") == 0 || strcmp(opt, "--extra-verbose") == 0)
++ verbosity = CK_VERBOSE;
+ else {
+ fprintf(stderr, "runtests: unknown option '%s'\n", opt);
+ return 2;
+--
+2.17.1
diff --git a/meta/recipes-core/expat/expat/run-ptest b/meta/recipes-core/expat/expat/run-ptest
new file mode 100644
index 0000000000..1b39cec8e5
--- /dev/null
+++ b/meta/recipes-core/expat/expat/run-ptest
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+output=${1:-"expat_tests.log"} # default log file
+
+# logging function
+function testCheck() {
+ testExec="$1"
+ shift
+ echo && echo ${testExec} && ./${testExec} "$@"
+ error=$?
+ result=$([[ ${error} -eq 0 ]] && echo "PASS" || echo "FAIL")
+ echo "${result}: ${testExec}" && echo "============================"
+}
+
+export output
+export -f testCheck
+TIME=$(which time)
+
+echo "Architecture: $(uname -m)" > ${output}
+echo "Image: $(uname -sr)" >> ${output}
+${TIME} -f 'Execution time: %e s' bash -c "testCheck runtests -vv" |& tee -a ${output}
+${TIME} -f 'Execution time: %e s' bash -c "testCheck runtestspp -vv" |& tee -a ${output}
+echo
diff --git a/meta/recipes-core/expat/expat_2.2.9.bb b/meta/recipes-core/expat/expat_2.2.9.bb
index 8f3db41352..f477f99baf 100644
--- a/meta/recipes-core/expat/expat_2.2.9.bb
+++ b/meta/recipes-core/expat/expat_2.2.9.bb
@@ -8,15 +8,21 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=5b8620d98e49772d95fc1d291c26aa79"
SRC_URI = "${SOURCEFORGE_MIRROR}/expat/expat-${PV}.tar.bz2 \
file://libtool-tag.patch \
+ file://run-ptest \
+ file://0001-Add-output-of-tests-result.patch \
"
SRC_URI[md5sum] = "875a2c2ff3e8eb9e5a5cd62db2033ab5"
SRC_URI[sha256sum] = "f1063084dc4302a427dabcca499c8312b3a32a29b7d2506653ecc8f950a9a237"
-inherit autotools lib_package
+EXTRA_OECMAKE_class-native += "-DEXPAT_BUILD_DOCS=OFF"
-do_configure_prepend () {
- rm -f ${S}/conftools/libtool.m4
+RDEPENDS_${PN}-ptest += "bash"
+
+inherit cmake lib_package ptest
+
+do_install_ptest_class-target() {
+ install -m 755 ${B}/tests/* ${D}${PTEST_PATH}
}
-BBCLASSEXTEND = "native nativesdk"
+BBCLASSEXTEND += "native nativesdk"
diff --git a/meta/recipes-core/gettext/gettext-0.20.1/0001-msgmerge-Fix-behaviour-of-for-msgfmt-on-PO-files-wit.patch b/meta/recipes-core/gettext/gettext-0.20.1/0001-msgmerge-Fix-behaviour-of-for-msgfmt-on-PO-files-wit.patch
deleted file mode 100644
index 2245889386..0000000000
--- a/meta/recipes-core/gettext/gettext-0.20.1/0001-msgmerge-Fix-behaviour-of-for-msgfmt-on-PO-files-wit.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From 75e315fdec82d1a17ebcd9e0712d109323578d68 Mon Sep 17 00:00:00 2001
-From: Bruno Haible <bruno@clisp.org>
-Date: Sun, 19 May 2019 11:10:06 +0200
-Subject: [PATCH] msgmerge: Fix behaviour of --for-msgfmt on PO files with no
- translations.
-
-msgmerge: Fix behaviour of --for-msgfmt on PO files with no translations.
-
-Reported by Don Lawrence <dlawrence@iecok.com>
-in <https://lists.freedesktop.org/archives/p11-glue/2019-May/000700.html>
-via Daiki Ueno
-in <https://lists.gnu.org/archive/html/bug-gettext/2019-05/msg00124.html>.
-
-* gettext-tools/src/msgmerge.c (main): Treat force_po like true if for_msgfmt
-is true.
-* gettext-tools/tests/msgmerge-26: Add test of PO file with no translations.
-
-Upstream-Status: Backport [https://git.savannah.gnu.org/gitweb/?p=gettext.git;a=commitdiff;h=2336451ed68d91ff4b5ae1acbc1eca30e47a86a9]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gettext-tools/src/msgmerge.c | 4 ++--
- gettext-tools/tests/msgmerge-26 | 36 ++++++++++++++++++++++++++++++---
- 2 files changed, 35 insertions(+), 5 deletions(-)
-
-diff --git a/gettext-tools/src/msgmerge.c b/gettext-tools/src/msgmerge.c
-index cd762c0..92c9b7a 100644
---- a/gettext-tools/src/msgmerge.c
-+++ b/gettext-tools/src/msgmerge.c
-@@ -520,8 +520,8 @@ There is NO WARRANTY, to the extent permitted by law.\n\
- else
- {
- /* Write the merged message list out. */
-- msgdomain_list_print (result, output_file, output_syntax, force_po,
-- false);
-+ msgdomain_list_print (result, output_file, output_syntax,
-+ for_msgfmt || force_po, false);
- }
-
- exit (EXIT_SUCCESS);
-diff --git a/gettext-tools/tests/msgmerge-26 b/gettext-tools/tests/msgmerge-26
-index cd3862e..b86f7a0 100755
---- a/gettext-tools/tests/msgmerge-26
-+++ b/gettext-tools/tests/msgmerge-26
-@@ -73,7 +73,37 @@ msgstr "Papaya"
- EOF
-
- : ${DIFF=diff}
--${DIFF} mm-test26.ok mm-test26.out
--result=$?
-+${DIFF} mm-test26.ok mm-test26.out || Exit 1
-
--exit $result
-+# Test with a PO file that has no translated messages.
-+
-+cat <<\EOF > mm-test26a.in1
-+msgid ""
-+msgstr ""
-+"Content-Type: text/plain; charset=UTF-8\n"
-+
-+msgid "Hello world"
-+msgstr "Hallo Welt"
-+EOF
-+
-+cat <<\EOF > mm-test26a.in2
-+msgid ""
-+msgstr ""
-+"Content-Type: text/plain; charset=ASCII\n"
-+
-+msgid "Hello, world!"
-+msgstr ""
-+EOF
-+
-+: ${MSGMERGE=msgmerge}
-+${MSGMERGE} --for-msgfmt -o mm-test26a.tmp mm-test26a.in1 mm-test26a.in2 \
-+ || Exit 1
-+LC_ALL=C tr -d '\r' < mm-test26a.tmp > mm-test26a.out || Exit 1
-+
-+cat <<\EOF > mm-test26a.ok
-+msgid ""
-+msgstr "Content-Type: text/plain; charset=UTF-8\n"
-+EOF
-+
-+: ${DIFF=diff}
-+${DIFF} mm-test26a.ok mm-test26a.out || Exit 1
---
-2.24.1
-
diff --git a/meta/recipes-core/gettext/gettext-0.20.1/add-with-bisonlocaledir.patch b/meta/recipes-core/gettext/gettext-0.20.1/add-with-bisonlocaledir.patch
deleted file mode 100644
index 35a131067a..0000000000
--- a/meta/recipes-core/gettext/gettext-0.20.1/add-with-bisonlocaledir.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 04bd40fe2c48c6e01ab418a04d27c4aff644ad96 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 17 Feb 2016 23:54:02 -0500
-Subject: [PATCH] m4/bison-i18n.m4: add --with-bisonlocaledir to assign
- BISON_LOCALEDIR
-
-The variable BISON_LOCALEDIR is assigned only by the output of
-'bison --print-localedir', we add option --with-bisonlocaledir
-to assign it explicitly. It is helpful for user to split the
-native compile and cross compile.
-
-For backward compatibility, if option not used, it still
-make use of the output of 'bison --print-localedir'.
-
-Upstream-Status: Submitted [bison-patches@gnu.org]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- gettext-tools/gnulib-m4/bison-i18n.m4 | 10 ++++++++--
- 1 file changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/gettext-tools/gnulib-m4/bison-i18n.m4 b/gettext-tools/gnulib-m4/bison-i18n.m4
-index f5cfd3a..fb6ac4d 100644
---- a/gettext-tools/gnulib-m4/bison-i18n.m4
-+++ b/gettext-tools/gnulib-m4/bison-i18n.m4
-@@ -14,11 +14,16 @@ dnl sets BISON_LOCALEDIR to indicate where to find the bison-runtime.mo files
- dnl and defines YYENABLE_NLS if there are bison-runtime.mo files at all.
- AC_DEFUN([BISON_I18N],
- [
-+ dnl Default is not to set bisonlocaledir
-+ AC_ARG_WITH([bisonlocaledir],
-+ [ --with-bisonlocaledir sets BISON_LOCALEDIR to indicate where to find the bison-runtime.mo files],
-+ BISON_LOCALEDIR=$withval,
-+ BISON_LOCALEDIR=)
-+
- if test -z "$USE_NLS"; then
- echo "The BISON-I18N macro is used without being preceded by AM-GNU-GETTEXT." 1>&2
- exit 1
- fi
-- BISON_LOCALEDIR=
- BISON_USE_NLS=no
- if test "$USE_NLS" = yes; then
- dnl Determine bison's localedir.
-@@ -26,9 +31,10 @@ AC_DEFUN([BISON_I18N],
- dnl But even is YACC is called "yacc", it may be a script that invokes bison
- dnl and accepts the --print-localedir option.
- dnl YACC's default value is empty; BISON's default value is :.
-- if (${YACC-${BISON-:}} --print-localedir) >/dev/null 2>&1; then
-+ if test -z "$BISON_LOCALEDIR" -a ${YACC-${BISON-:}} --print-localedir >/dev/null 2>&1; then
- BISON_LOCALEDIR=`${YACC-${BISON-:}} --print-localedir`
- fi
-+ AC_MSG_RESULT([$BISON_LOCALEDIR])
- AC_SUBST([BISON_LOCALEDIR])
- if test -n "$BISON_LOCALEDIR"; then
- dnl There is no need to enable internationalization if the user doesn't
---
-1.9.1
-
diff --git a/meta/recipes-core/gettext/gettext-0.20.1/cr-statement.c-timsort.h-fix-formatting-issues.patch b/meta/recipes-core/gettext/gettext-0.20.1/cr-statement.c-timsort.h-fix-formatting-issues.patch
deleted file mode 100644
index 0561ed7d32..0000000000
--- a/meta/recipes-core/gettext/gettext-0.20.1/cr-statement.c-timsort.h-fix-formatting-issues.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From f6245ef5530fc37a6243e798df34162fbbeab6f0 Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Sun, 19 Feb 2017 23:32:46 -0800
-Subject: [PATCH] cr-statement.c/timsort.h: fix formatting issues
-
-Fixed when compile with "-Wformat -Wformat-security -Werror=format-security":
-| gettext-tools/gnulib-lib/libcroco/cr-statement.c: In function 'cr_statement_dump_charset':
-| gettext-tools/gnulib-lib/libcroco/cr-statement.c:2661:17: error: format not a string literal and no format arguments [-Werror=format-security]
-| fprintf (a_fp, str) ;
-
-And:
-gettext-tools/gnulib-lib/libxml/timsort.h:326:80: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'unsigned int' [-Wformat=]
- fprintf(stderr, "Error allocating temporary storage for tim sort: need %lu bytes", sizeof(SORT_TYPE) * new_size);
-
-Upstream-Status: Pending
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-
----
- libtextstyle/lib/libcroco/cr-statement.c | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/libtextstyle/lib/libcroco/cr-statement.c b/libtextstyle/lib/libcroco/cr-statement.c
-index 617520f..100104b 100644
---- a/libtextstyle/lib/libcroco/cr-statement.c
-+++ b/libtextstyle/lib/libcroco/cr-statement.c
-@@ -2607,7 +2607,7 @@ cr_statement_dump_ruleset (CRStatement * a_this, FILE * a_fp, glong a_indent)
- g_return_if_fail (a_fp && a_this);
- str = cr_statement_ruleset_to_string (a_this, a_indent);
- if (str) {
-- fprintf (a_fp, str);
-+ fprintf (a_fp, "%s", str);
- g_free (str);
- str = NULL;
- }
-@@ -2658,7 +2658,7 @@ cr_statement_dump_charset (CRStatement * a_this, FILE * a_fp, gulong a_indent)
- str = cr_statement_charset_to_string (a_this,
- a_indent) ;
- if (str) {
-- fprintf (a_fp, str) ;
-+ fprintf (a_fp, "%s", str) ;
- g_free (str) ;
- str = NULL ;
- }
-@@ -2685,7 +2685,7 @@ cr_statement_dump_page (CRStatement * a_this, FILE * a_fp, gulong a_indent)
-
- str = cr_statement_at_page_rule_to_string (a_this, a_indent) ;
- if (str) {
-- fprintf (a_fp, str);
-+ fprintf (a_fp, "%s", str);
- g_free (str) ;
- str = NULL ;
- }
-@@ -2711,7 +2711,7 @@ cr_statement_dump_media_rule (CRStatement * a_this,
-
- str = cr_statement_media_rule_to_string (a_this, a_indent) ;
- if (str) {
-- fprintf (a_fp, str) ;
-+ fprintf (a_fp, "%s", str) ;
- g_free (str) ;
- str = NULL ;
- }
-@@ -2737,7 +2737,7 @@ cr_statement_dump_import_rule (CRStatement * a_this, FILE * a_fp,
-
- str = cr_statement_import_rule_to_string (a_this, a_indent) ;
- if (str) {
-- fprintf (a_fp, str) ;
-+ fprintf (a_fp, "%s", str) ;
- g_free (str) ;
- str = NULL ;
- }
diff --git a/meta/recipes-core/gettext/gettext-0.21/0001-init-env.in-do-not-add-C-CXX-parameters.patch b/meta/recipes-core/gettext/gettext-0.21/0001-init-env.in-do-not-add-C-CXX-parameters.patch
new file mode 100644
index 0000000000..d45b75869a
--- /dev/null
+++ b/meta/recipes-core/gettext/gettext-0.21/0001-init-env.in-do-not-add-C-CXX-parameters.patch
@@ -0,0 +1,29 @@
+From 9b912a47f790a7b282ec0c2295a188c5d8fb6a7c Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 6 Mar 2020 21:04:05 +0000
+Subject: [PATCH] init-env.in: do not add C/CXX parameters
+
+These are taken from the cross environment and include
+sysroot paths, so are not reproducible.
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ gettext-tools/tests/init-env.in | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/gettext-tools/tests/init-env.in b/gettext-tools/tests/init-env.in
+index cc84ffd..b69c990 100644
+--- a/gettext-tools/tests/init-env.in
++++ b/gettext-tools/tests/init-env.in
+@@ -3,10 +3,6 @@ top_builddir=../..
+
+ OBJEXT="@OBJEXT@"
+ EXEEXT="@EXEEXT@"
+-CC="@CC@"
+-CFLAGS="@CFLAGS@"
+-CXX="@CXX@"
+-CXXFLAGS="@CXXFLAGS@"
+ CPPFLAGS="@CPPFLAGS@"
+ LDFLAGS="@LDFLAGS@"
+ LTLIBINTL="@LTLIBINTL@"
diff --git a/meta/recipes-core/gettext/gettext-0.21/0001-msgmerge-29-Add-executable-file-mode-bits.patch b/meta/recipes-core/gettext/gettext-0.21/0001-msgmerge-29-Add-executable-file-mode-bits.patch
new file mode 100644
index 0000000000..e42a6c0a4d
--- /dev/null
+++ b/meta/recipes-core/gettext/gettext-0.21/0001-msgmerge-29-Add-executable-file-mode-bits.patch
@@ -0,0 +1,23 @@
+From 71988f83b69c4ed98d1b9418da80edf11a931894 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 23 Sep 2020 22:08:34 -0700
+Subject: [PATCH] msgmerge-29: Add executable file mode bits
+
+This script is installed with default mode bits and executed directly
+e.g ./msgmerge-29 when doing make check which results in
+
+/bin/bash: line 9: ./msgmerge-29: Permission denied
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gettext-tools/tests/msgmerge-29 | 0
+ 1 file changed, 0 insertions(+), 0 deletions(-)
+ mode change 100644 => 100755 gettext-tools/tests/msgmerge-29
+
+diff --git a/gettext-tools/tests/msgmerge-29 b/gettext-tools/tests/msgmerge-29
+old mode 100644
+new mode 100755
+--
+2.28.0
+
diff --git a/meta/recipes-core/gettext/gettext-0.20.1/0001-tests-autopoint-3-unset-MAKEFLAGS.patch b/meta/recipes-core/gettext/gettext-0.21/0001-tests-autopoint-3-unset-MAKEFLAGS.patch
index b0bc6b97a6..b0bc6b97a6 100644
--- a/meta/recipes-core/gettext/gettext-0.20.1/0001-tests-autopoint-3-unset-MAKEFLAGS.patch
+++ b/meta/recipes-core/gettext/gettext-0.21/0001-tests-autopoint-3-unset-MAKEFLAGS.patch
diff --git a/meta/recipes-core/gettext/gettext-0.21/mingw.patch b/meta/recipes-core/gettext/gettext-0.21/mingw.patch
new file mode 100644
index 0000000000..b062c784f6
--- /dev/null
+++ b/meta/recipes-core/gettext/gettext-0.21/mingw.patch
@@ -0,0 +1,28 @@
+From 7cf68dffb2adb76375bfb0781e277510523a1f3e Mon Sep 17 00:00:00 2001
+From: Michele Locati <michele@locati.it>
+Date: Thu, 30 Jul 2020 18:58:02 +0200
+Subject: [PATCH] build: Fix build failure on Cygwin and mingw.
+
+* gettext-tools/woe32dll/gettextsrc-exports.c: Export formatstring_ruby.
+
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ gettext-tools/woe32dll/gettextsrc-exports.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/gettext-tools/woe32dll/gettextsrc-exports.c b/gettext-tools/woe32dll/gettextsrc-exports.c
+index 4477ae8..6d76089 100644
+--- a/gettext-tools/woe32dll/gettextsrc-exports.c
++++ b/gettext-tools/woe32dll/gettextsrc-exports.c
+@@ -50,6 +50,7 @@ VARIABLE(formatstring_python)
+ VARIABLE(formatstring_python_brace)
+ VARIABLE(formatstring_qt)
+ VARIABLE(formatstring_qt_plural)
++VARIABLE(formatstring_ruby)
+ VARIABLE(formatstring_scheme)
+ VARIABLE(formatstring_sh)
+ VARIABLE(formatstring_smalltalk)
+--
+1.9.1
+
diff --git a/meta/recipes-core/gettext/gettext-0.20.1/parallel.patch b/meta/recipes-core/gettext/gettext-0.21/parallel.patch
index d96a376b7d..d96a376b7d 100644
--- a/meta/recipes-core/gettext/gettext-0.20.1/parallel.patch
+++ b/meta/recipes-core/gettext/gettext-0.21/parallel.patch
diff --git a/meta/recipes-core/gettext/gettext-0.20.1/run-ptest b/meta/recipes-core/gettext/gettext-0.21/run-ptest
index f17f3c87a7..f17f3c87a7 100644
--- a/meta/recipes-core/gettext/gettext-0.20.1/run-ptest
+++ b/meta/recipes-core/gettext/gettext-0.21/run-ptest
diff --git a/meta/recipes-core/gettext/gettext-0.20.1/serial-tests-config.patch b/meta/recipes-core/gettext/gettext-0.21/serial-tests-config.patch
index 93f7c03334..93f7c03334 100644
--- a/meta/recipes-core/gettext/gettext-0.20.1/serial-tests-config.patch
+++ b/meta/recipes-core/gettext/gettext-0.21/serial-tests-config.patch
diff --git a/meta/recipes-core/gettext/gettext-0.20.1/use-pkgconfig.patch b/meta/recipes-core/gettext/gettext-0.21/use-pkgconfig.patch
index d3f3fe8e2f..fc77feb270 100644
--- a/meta/recipes-core/gettext/gettext-0.20.1/use-pkgconfig.patch
+++ b/meta/recipes-core/gettext/gettext-0.21/use-pkgconfig.patch
@@ -1,4 +1,4 @@
-From ef414b06be80c6f605731abc9e674e396b80ec9e Mon Sep 17 00:00:00 2001
+From 15647f679834be633fb4a9aeff4671b9cb95ccb8 Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@intel.com>
Date: Tue, 23 Jan 2018 00:54:13 +0000
Subject: [PATCH] gettext: beat library detection into shape
@@ -15,17 +15,17 @@ Signed-off-by: Ross Burton <ross.burton@intel.com>
---
gettext-tools/gnulib-m4/libxml.m4 | 99 +----------------
- .../gnulib-local/lib/term-styled-ostream.oo.c | 12 +-
+ .../gnulib-local/lib/term-styled-ostream.oo.c | 12 +--
libtextstyle/gnulib-local/m4/libcroco.m4 | 99 +++--------------
- libtextstyle/gnulib-local/m4/libglib.m4 | 104 +++---------------
+ libtextstyle/gnulib-local/m4/libglib.m4 | 100 +++---------------
libtextstyle/gnulib-m4/libcroco.m4 | 99 +++--------------
- libtextstyle/gnulib-m4/libglib.m4 | 104 +++---------------
- libtextstyle/lib/term-styled-ostream.c | 12 +-
- libtextstyle/lib/term-styled-ostream.oo.c | 12 +-
- 8 files changed, 87 insertions(+), 454 deletions(-)
+ libtextstyle/gnulib-m4/libglib.m4 | 100 +++---------------
+ libtextstyle/lib/term-styled-ostream.c | 12 +--
+ libtextstyle/lib/term-styled-ostream.oo.c | 12 +--
+ 8 files changed, 83 insertions(+), 450 deletions(-)
diff --git a/gettext-tools/gnulib-m4/libxml.m4 b/gettext-tools/gnulib-m4/libxml.m4
-index 05b9550..031ee65 100644
+index 2f80c37..30ce58e 100644
--- a/gettext-tools/gnulib-m4/libxml.m4
+++ b/gettext-tools/gnulib-m4/libxml.m4
@@ -13,6 +13,7 @@ dnl gl_LIBXML(FORCE-INCLUDED)
@@ -142,7 +142,7 @@ index 05b9550..031ee65 100644
])
AC_SUBST([LIBXML])
diff --git a/libtextstyle/gnulib-local/lib/term-styled-ostream.oo.c b/libtextstyle/gnulib-local/lib/term-styled-ostream.oo.c
-index 2cfd4a8..d42c8b4 100644
+index 2ff978f..5ffb17a 100644
--- a/libtextstyle/gnulib-local/lib/term-styled-ostream.oo.c
+++ b/libtextstyle/gnulib-local/lib/term-styled-ostream.oo.c
@@ -22,15 +22,15 @@
@@ -166,7 +166,7 @@ index 2cfd4a8..d42c8b4 100644
+#include <libcroco/cr-string.h>
#include "term-ostream.h"
- #include "hash.h"
+ #include "mem-hash-map.h"
diff --git a/libtextstyle/gnulib-local/m4/libcroco.m4 b/libtextstyle/gnulib-local/m4/libcroco.m4
index bc53cc6..10b2455 100644
--- a/libtextstyle/gnulib-local/m4/libcroco.m4
@@ -289,17 +289,10 @@ index bc53cc6..10b2455 100644
AC_SUBST([LTLIBCROCO])
AC_SUBST([INCCROCO])
diff --git a/libtextstyle/gnulib-local/m4/libglib.m4 b/libtextstyle/gnulib-local/m4/libglib.m4
-index bef6fa3..8841755 100644
+index 5853772..767fba2 100644
--- a/libtextstyle/gnulib-local/m4/libglib.m4
+++ b/libtextstyle/gnulib-local/m4/libglib.m4
-@@ -1,105 +1,31 @@
--# libglib.m4 serial 4
--dnl Copyright (C) 2006-2007, 2019 Free Software Foundation, Inc.
-+# libglib.m4 serial 3 (gettext-0.17)
-+dnl Copyright (C) 2006-2007, 2015-2016 Free Software Foundation, Inc.
- dnl This file is free software; the Free Software Foundation
- dnl gives unlimited permission to copy and/or distribute it,
- dnl with or without modifications, as long as this notice is preserved.
+@@ -6,100 +6,26 @@ dnl with or without modifications, as long as this notice is preserved.
dnl From Bruno Haible.
@@ -535,17 +528,10 @@ index bc53cc6..10b2455 100644
AC_SUBST([LTLIBCROCO])
AC_SUBST([INCCROCO])
diff --git a/libtextstyle/gnulib-m4/libglib.m4 b/libtextstyle/gnulib-m4/libglib.m4
-index bef6fa3..8841755 100644
+index 5853772..767fba2 100644
--- a/libtextstyle/gnulib-m4/libglib.m4
+++ b/libtextstyle/gnulib-m4/libglib.m4
-@@ -1,105 +1,31 @@
--# libglib.m4 serial 4
--dnl Copyright (C) 2006-2007, 2019 Free Software Foundation, Inc.
-+# libglib.m4 serial 3 (gettext-0.17)
-+dnl Copyright (C) 2006-2007, 2015-2016 Free Software Foundation, Inc.
- dnl This file is free software; the Free Software Foundation
- dnl gives unlimited permission to copy and/or distribute it,
- dnl with or without modifications, as long as this notice is preserved.
+@@ -6,100 +6,26 @@ dnl with or without modifications, as long as this notice is preserved.
dnl From Bruno Haible.
@@ -660,7 +646,7 @@ index bef6fa3..8841755 100644
AC_SUBST([LTLIBGLIB])
AC_SUBST([INCGLIB])
diff --git a/libtextstyle/lib/term-styled-ostream.c b/libtextstyle/lib/term-styled-ostream.c
-index 3675b5f..811e546 100644
+index 5484800..16793fa 100644
--- a/libtextstyle/lib/term-styled-ostream.c
+++ b/libtextstyle/lib/term-styled-ostream.c
@@ -28,15 +28,15 @@
@@ -684,9 +670,9 @@ index 3675b5f..811e546 100644
+#include <libcroco/cr-string.h>
#include "term-ostream.h"
- #include "hash.h"
+ #include "mem-hash-map.h"
diff --git a/libtextstyle/lib/term-styled-ostream.oo.c b/libtextstyle/lib/term-styled-ostream.oo.c
-index 2cfd4a8..d42c8b4 100644
+index 2ff978f..5ffb17a 100644
--- a/libtextstyle/lib/term-styled-ostream.oo.c
+++ b/libtextstyle/lib/term-styled-ostream.oo.c
@@ -22,15 +22,15 @@
@@ -710,4 +696,4 @@ index 2cfd4a8..d42c8b4 100644
+#include <libcroco/cr-string.h>
#include "term-ostream.h"
- #include "hash.h"
+ #include "mem-hash-map.h"
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.20.1/COPYING b/meta/recipes-core/gettext/gettext-minimal-0.21/COPYING
index 3671ab6985..3671ab6985 100644
--- a/meta/recipes-core/gettext/gettext-minimal-0.20.1/COPYING
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/COPYING
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.20.1/Makefile.in.in b/meta/recipes-core/gettext/gettext-minimal-0.21/Makefile.in.in
index fdb6ad3588..6b25f0d916 100644
--- a/meta/recipes-core/gettext/gettext-minimal-0.20.1/Makefile.in.in
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/Makefile.in.in
@@ -1,13 +1,13 @@
# Makefile for PO directory in any package using GNU gettext.
# Copyright (C) 1995-2000 Ulrich Drepper <drepper@gnu.ai.mit.edu>
-# Copyright (C) 2000-2019 Free Software Foundation, Inc.
+# Copyright (C) 2000-2020 Free Software Foundation, Inc.
#
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved. This file is offered as-is,
# without any warranty.
#
-# Origin: gettext-0.20
+# Origin: gettext-0.21
GETTEXT_MACRO_VERSION = 0.20
PACKAGE = @PACKAGE@
@@ -90,6 +90,9 @@ DISTFILESDEPS = $(DISTFILESDEPS_$(DIST_DEPENDS_ON_UPDATE_PO))
# Makevars gets inserted here. (Don't remove this line!)
+all: all-@USE_NLS@
+
+
.SUFFIXES:
.SUFFIXES: .po .gmo .sed .sin .nop .po-create .po-update
@@ -107,7 +110,8 @@ DISTFILESDEPS = $(DISTFILESDEPS_$(DIST_DEPENDS_ON_UPDATE_PO))
# the .pot file. This eliminates the need to update the .po files when the
# .pot file has changed, which would be troublesome if the .po files are put
# under version control.
-.po.gmo: $(srcdir)/$(DOMAIN).pot
+$(GMOFILES): $(srcdir)/$(DOMAIN).pot
+.po.gmo:
@lang=`echo $* | sed -e 's,.*/,,'`; \
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
echo "$${cdcmd}rm -f $${lang}.gmo && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.1po && rm -f $${lang}.1po"; \
@@ -123,8 +127,6 @@ DISTFILESDEPS = $(DISTFILESDEPS_$(DIST_DEPENDS_ON_UPDATE_PO))
mv t-$@ $@
-all: all-@USE_NLS@
-
all-yes: $(srcdir)/stamp-po
all-no:
@@ -413,12 +415,17 @@ dist distdir:
@$(MAKE) dist2
# This is a separate target because 'update-po' must be executed before.
dist2: $(srcdir)/stamp-po $(DISTFILES)
- dists="$(DISTFILES)"; \
+ @dists="$(DISTFILES)"; \
if test "$(PACKAGE)" = "gettext-tools"; then \
dists="$$dists Makevars.template"; \
fi; \
if test -f $(srcdir)/$(DOMAIN).pot; then \
dists="$$dists $(DOMAIN).pot stamp-po"; \
+ else \
+ case $(XGETTEXT) in \
+ :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \
+ *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the contents of the POTFILES.in file and the XGETTEXT_OPTIONS in the Makevars file." 1>&2;; \
+ esac; \
fi; \
if test -f $(srcdir)/ChangeLog; then \
dists="$$dists ChangeLog"; \
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/gettext.m4 b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/gettext.m4
index e7832418ea..4f25a27d93 100644
--- a/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/gettext.m4
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/gettext.m4
@@ -1,15 +1,15 @@
-# gettext.m4 serial 70 (gettext-0.20)
-dnl Copyright (C) 1995-2014, 2016, 2018 Free Software Foundation, Inc.
+# gettext.m4 serial 71 (gettext-0.20.2)
+dnl Copyright (C) 1995-2014, 2016, 2018-2020 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl
dnl This file can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
+dnl the GNU General Public License or the GNU Lesser General Public
dnl License but which still want to provide support for the GNU gettext
dnl functionality.
dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
+dnl by the GNU Lesser General Public License, and the rest of the GNU
dnl gettext package is covered by the GNU General Public License.
dnl They are *not* in the public domain.
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/host-cpu-c-abi.m4 b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/host-cpu-c-abi.m4
index 4407296d08..6db2aa25ae 100644
--- a/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/host-cpu-c-abi.m4
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/host-cpu-c-abi.m4
@@ -1,5 +1,5 @@
-# host-cpu-c-abi.m4 serial 11
-dnl Copyright (C) 2002-2019 Free Software Foundation, Inc.
+# host-cpu-c-abi.m4 serial 13
+dnl Copyright (C) 2002-2020 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@@ -55,7 +55,7 @@ AC_DEFUN([gl_HOST_CPU_C_ABI],
[case "$host_cpu" in
changequote(,)dnl
- i[4567]86 )
+ i[34567]86 )
changequote([,])dnl
gl_cv_host_cpu_c_abi=i386
;;
@@ -457,7 +457,8 @@ EOF
dnl Sets the HOST_CPU_C_ABI_32BIT variable to 'yes' if the C language ABI
-dnl (application binary interface) is a 32-bit one, or to 'no' otherwise.
+dnl (application binary interface) is a 32-bit one, to 'no' if it is a 64-bit
+dnl one, or to 'unknown' if unknown.
dnl This is a simplified variant of gl_HOST_CPU_C_ABI.
AC_DEFUN([gl_HOST_CPU_C_ABI_32BIT],
[
@@ -467,14 +468,44 @@ AC_DEFUN([gl_HOST_CPU_C_ABI_32BIT],
case "$gl_cv_host_cpu_c_abi" in
i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc)
gl_cv_host_cpu_c_abi_32bit=yes ;;
- *)
+ x86_64 | alpha | arm64 | hppa64 | ia64 | mips64 | powerpc64 | powerpc64-elfv2 | riscv*-lp64* | s390x | sparc64 )
gl_cv_host_cpu_c_abi_32bit=no ;;
+ *)
+ gl_cv_host_cpu_c_abi_32bit=unknown ;;
esac
else
case "$host_cpu" in
+ # CPUs that only support a 32-bit ABI.
+ arc \
+ | bfin \
+ | cris* \
+ | csky \
+ | epiphany \
+ | ft32 \
+ | h8300 \
+ | m68k \
+ | microblaze | microblazeel \
+ | nds32 | nds32le | nds32be \
+ | nios2 | nios2eb | nios2el \
+ | or1k* \
+ | or32 \
+ | sh | sh[1234] | sh[1234]e[lb] \
+ | tic6x \
+ | xtensa* )
+ gl_cv_host_cpu_c_abi_32bit=yes
+ ;;
+
+ # CPUs that only support a 64-bit ABI.
changequote(,)dnl
- i[4567]86 )
+ alpha | alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] \
+ | mmix )
+changequote([,])dnl
+ gl_cv_host_cpu_c_abi_32bit=no
+ ;;
+
+changequote(,)dnl
+ i[34567]86 )
changequote([,])dnl
gl_cv_host_cpu_c_abi_32bit=yes
;;
@@ -634,7 +665,7 @@ changequote([,])dnl
;;
*)
- gl_cv_host_cpu_c_abi_32bit=no
+ gl_cv_host_cpu_c_abi_32bit=unknown
;;
esac
fi
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/iconv.m4 b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/iconv.m4
index a285e9daa5..e593b7270a 100644
--- a/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/iconv.m4
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/iconv.m4
@@ -1,5 +1,5 @@
# iconv.m4 serial 21
-dnl Copyright (C) 2000-2002, 2007-2014, 2016-2019 Free Software Foundation,
+dnl Copyright (C) 2000-2002, 2007-2014, 2016-2020 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/intlmacosx.m4 b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/intlmacosx.m4
index 30e6f50e0a..ebd9937c1a 100644
--- a/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/intlmacosx.m4
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/intlmacosx.m4
@@ -1,15 +1,15 @@
-# intlmacosx.m4 serial 6 (gettext-0.20)
-dnl Copyright (C) 2004-2014, 2016, 2019 Free Software Foundation, Inc.
+# intlmacosx.m4 serial 8 (gettext-0.20.2)
+dnl Copyright (C) 2004-2014, 2016, 2019-2020 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl
dnl This file can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
+dnl the GNU General Public License or the GNU Lesser General Public
dnl License but which still want to provide support for the GNU gettext
dnl functionality.
dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
+dnl by the GNU Lesser General Public License, and the rest of the GNU
dnl gettext package is covered by the GNU General Public License.
dnl They are *not* in the public domain.
@@ -33,21 +33,15 @@ AC_DEFUN([gt_INTL_MACOSX],
AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1],
[Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
fi
- dnl Check for API introduced in Mac OS X 10.5.
- AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent],
- [gt_save_LIBS="$LIBS"
- LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM(
- [[#include <CoreFoundation/CFLocale.h>]],
- [[CFLocaleCopyCurrent();]])],
- [gt_cv_func_CFLocaleCopyCurrent=yes],
- [gt_cv_func_CFLocaleCopyCurrent=no])
- LIBS="$gt_save_LIBS"])
- if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
- AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1],
- [Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
- fi
+ dnl Don't check for the API introduced in Mac OS X 10.5, CFLocaleCopyCurrent,
+ dnl because in macOS 10.13.4 it has the following behaviour:
+ dnl When two or more languages are specified in the
+ dnl "System Preferences > Language & Region > Preferred Languages" panel,
+ dnl it returns en_CC where CC is the territory (even when English is not among
+ dnl the preferred languages!). What we want instead is what
+ dnl CFLocaleCopyCurrent returned in earlier macOS releases and what
+ dnl CFPreferencesCopyAppValue still returns, namely ll_CC where ll is the
+ dnl first among the preferred languages and CC is the territory.
AC_CACHE_CHECK([for CFLocaleCopyPreferredLanguages], [gt_cv_func_CFLocaleCopyPreferredLanguages],
[gt_save_LIBS="$LIBS"
LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
@@ -64,7 +58,6 @@ AC_DEFUN([gt_INTL_MACOSX],
fi
INTL_MACOSX_LIBS=
if test $gt_cv_func_CFPreferencesCopyAppValue = yes \
- || test $gt_cv_func_CFLocaleCopyCurrent = yes \
|| test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then
INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
fi
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/lib-ld.m4 b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/lib-ld.m4
index a18719630d..98c348faff 100644
--- a/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/lib-ld.m4
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/lib-ld.m4
@@ -1,5 +1,5 @@
# lib-ld.m4 serial 9
-dnl Copyright (C) 1996-2003, 2009-2019 Free Software Foundation, Inc.
+dnl Copyright (C) 1996-2003, 2009-2020 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/lib-link.m4 b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/lib-link.m4
index 0ff10731fa..eecf70ec76 100644
--- a/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/lib-link.m4
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/lib-link.m4
@@ -1,5 +1,5 @@
-# lib-link.m4 serial 28
-dnl Copyright (C) 2001-2019 Free Software Foundation, Inc.
+# lib-link.m4 serial 31
+dnl Copyright (C) 2001-2020 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@@ -192,6 +192,8 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
AC_LIB_WITH_FINAL_PREFIX([
eval additional_includedir=\"$includedir\"
eval additional_libdir=\"$libdir\"
+ eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\"
+ eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
])
AC_ARG_WITH(PACK[-prefix],
[[ --with-]]PACK[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib
@@ -204,17 +206,23 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
AC_LIB_WITH_FINAL_PREFIX([
eval additional_includedir=\"$includedir\"
eval additional_libdir=\"$libdir\"
+ eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\"
+ eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
])
else
additional_includedir="$withval/include"
additional_libdir="$withval/$acl_libdirstem"
- if test "$acl_libdirstem2" != "$acl_libdirstem" \
- && test ! -d "$withval/$acl_libdirstem"; then
- additional_libdir="$withval/$acl_libdirstem2"
- fi
+ additional_libdir2="$withval/$acl_libdirstem2"
+ additional_libdir3="$withval/$acl_libdirstem3"
fi
fi
])
+ if test "X$additional_libdir2" = "X$additional_libdir"; then
+ additional_libdir2=
+ fi
+ if test "X$additional_libdir3" = "X$additional_libdir"; then
+ additional_libdir3=
+ fi
dnl Search the library and its dependencies in $additional_libdir and
dnl $LDFLAGS. Using breadth-first-seach.
LIB[]NAME=
@@ -270,48 +278,54 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
shrext=
fi
if test $use_additional = yes; then
- dir="$additional_libdir"
- dnl The same code as in the loop below:
- dnl First look for a shared library.
- if test -n "$acl_shlibext"; then
- if test -f "$dir/$libname$shrext"; then
- found_dir="$dir"
- found_so="$dir/$libname$shrext"
- else
- if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
- ver=`(cd "$dir" && \
- for f in "$libname$shrext".*; do echo "$f"; done \
- | sed -e "s,^$libname$shrext\\\\.,," \
- | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
- | sed 1q ) 2>/dev/null`
- if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
- found_dir="$dir"
- found_so="$dir/$libname$shrext.$ver"
+ for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do
+ if test "X$found_dir" = "X"; then
+ eval dir=\$$additional_libdir_variable
+ if test -n "$dir"; then
+ dnl The same code as in the loop below:
+ dnl First look for a shared library.
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
+ fi
+ fi
fi
- else
- eval library_names=\"$acl_library_names_spec\"
- for f in $library_names; do
- if test -f "$dir/$f"; then
+ dnl Then look for a static library.
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then
found_dir="$dir"
- found_so="$dir/$f"
- break
+ found_a="$dir/$libname.$acl_libext"
fi
- done
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
fi
fi
- fi
- dnl Then look for a static library.
- if test "X$found_dir" = "X"; then
- if test -f "$dir/$libname.$acl_libext"; then
- found_dir="$dir"
- found_a="$dir/$libname.$acl_libext"
- fi
- fi
- if test "X$found_dir" != "X"; then
- if test -f "$dir/$libname.la"; then
- found_la="$dir/$libname.la"
- fi
- fi
+ done
fi
if test "X$found_dir" = "X"; then
for x in $LDFLAGS $LTLIB[]NAME; do
@@ -321,7 +335,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
dir=`echo "X$x" | sed -e 's/^X-L//'`
dnl First look for a shared library.
if test -n "$acl_shlibext"; then
- if test -f "$dir/$libname$shrext"; then
+ if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then
found_dir="$dir"
found_so="$dir/$libname$shrext"
else
@@ -331,14 +345,14 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
| sed -e "s,^$libname$shrext\\\\.,," \
| sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
| sed 1q ) 2>/dev/null`
- if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then
found_dir="$dir"
found_so="$dir/$libname$shrext.$ver"
fi
else
eval library_names=\"$acl_library_names_spec\"
for f in $library_names; do
- if test -f "$dir/$f"; then
+ if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then
found_dir="$dir"
found_so="$dir/$f"
break
@@ -349,7 +363,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
fi
dnl Then look for a static library.
if test "X$found_dir" = "X"; then
- if test -f "$dir/$libname.$acl_libext"; then
+ if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then
found_dir="$dir"
found_a="$dir/$libname.$acl_libext"
fi
@@ -375,7 +389,8 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
dnl standard /usr/lib.
if test "$enable_rpath" = no \
|| test "X$found_dir" = "X/usr/$acl_libdirstem" \
- || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
+ || test "X$found_dir" = "X/usr/$acl_libdirstem2" \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then
dnl No hardcoding is needed.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
else
@@ -475,6 +490,13 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
fi
additional_includedir="$basedir/include"
;;
+ */$acl_libdirstem3 | */$acl_libdirstem3/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'`
+ if test "$name" = '$1'; then
+ LIB[]NAME[]_PREFIX="$basedir"
+ fi
+ additional_includedir="$basedir/include"
+ ;;
esac
if test "X$additional_includedir" != "X"; then
dnl Potentially add $additional_includedir to $INCNAME.
@@ -525,19 +547,21 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
for dep in $dependency_libs; do
case "$dep" in
-L*)
- additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
- dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
+ dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+ dnl Potentially add $dependency_libdir to $LIBNAME and $LTLIBNAME.
dnl But don't add it
dnl 1. if it's the standard /usr/lib,
dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
dnl 3. if it's already present in $LDFLAGS or the already
dnl constructed $LIBNAME,
dnl 4. if it doesn't exist as a directory.
- if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
- && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
+ if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \
+ && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \
+ && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then
haveit=
- if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
- || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
+ if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \
+ || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \
+ || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then
if test -n "$GCC"; then
case $host_os in
linux* | gnu* | k*bsd*-gnu) haveit=yes;;
@@ -548,29 +572,29 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
haveit=
for x in $LDFLAGS $LIB[]NAME; do
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-L$additional_libdir"; then
+ if test "X$x" = "X-L$dependency_libdir"; then
haveit=yes
break
fi
done
if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- dnl Really add $additional_libdir to $LIBNAME.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
+ if test -d "$dependency_libdir"; then
+ dnl Really add $dependency_libdir to $LIBNAME.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$dependency_libdir"
fi
fi
haveit=
for x in $LDFLAGS $LTLIB[]NAME; do
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-L$additional_libdir"; then
+ if test "X$x" = "X-L$dependency_libdir"; then
haveit=yes
break
fi
done
if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- dnl Really add $additional_libdir to $LTLIBNAME.
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
+ if test -d "$dependency_libdir"; then
+ dnl Really add $dependency_libdir to $LTLIBNAME.
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$dependency_libdir"
fi
fi
fi
@@ -718,7 +742,8 @@ AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
dir="$next"
dnl No need to hardcode the standard /usr/lib.
if test "X$dir" != "X/usr/$acl_libdirstem" \
- && test "X$dir" != "X/usr/$acl_libdirstem2"; then
+ && test "X$dir" != "X/usr/$acl_libdirstem2" \
+ && test "X$dir" != "X/usr/$acl_libdirstem3"; then
rpathdirs="$rpathdirs $dir"
fi
next=
@@ -728,7 +753,8 @@ AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
-L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
dnl No need to hardcode the standard /usr/lib.
if test "X$dir" != "X/usr/$acl_libdirstem" \
- && test "X$dir" != "X/usr/$acl_libdirstem2"; then
+ && test "X$dir" != "X/usr/$acl_libdirstem2" \
+ && test "X$dir" != "X/usr/$acl_libdirstem3"; then
rpathdirs="$rpathdirs $dir"
fi
next= ;;
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/lib-prefix.m4 b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/lib-prefix.m4
index 8adb17bb91..c8a0b464c2 100644
--- a/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/lib-prefix.m4
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/lib-prefix.m4
@@ -1,5 +1,5 @@
-# lib-prefix.m4 serial 14
-dnl Copyright (C) 2001-2005, 2008-2019 Free Software Foundation, Inc.
+# lib-prefix.m4 serial 17
+dnl Copyright (C) 2001-2005, 2008-2020 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@@ -147,21 +147,24 @@ AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
])
dnl AC_LIB_PREPARE_MULTILIB creates
-dnl - a variable acl_libdirstem, containing the basename of the libdir, either
-dnl "lib" or "lib64" or "lib/64",
-dnl - a variable acl_libdirstem2, as a secondary possible value for
-dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or
-dnl "lib/amd64".
+dnl - a function acl_is_expected_elfclass, that tests whether standard input
+dn; has a 32-bit or 64-bit ELF header, depending on the host CPU ABI,
+dnl - 3 variables acl_libdirstem, acl_libdirstem2, acl_libdirstem3, containing
+dnl the basename of the libdir to try in turn, either "lib" or "lib64" or
+dnl "lib/64" or "lib32" or "lib/sparcv9" or "lib/amd64" or similar.
AC_DEFUN([AC_LIB_PREPARE_MULTILIB],
[
- dnl There is no formal standard regarding lib and lib64.
- dnl On glibc systems, the current practice is that on a system supporting
+ dnl There is no formal standard regarding lib, lib32, and lib64.
+ dnl On most glibc systems, the current practice is that on a system supporting
dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
- dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine
- dnl the compiler's default mode by looking at the compiler's library search
- dnl path. If at least one of its elements ends in /lib64 or points to a
- dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI.
- dnl Otherwise we use the default, namely "lib".
+ dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. However, on
+ dnl Arch Linux based distributions, it's the opposite: 32-bit libraries go
+ dnl under $prefix/lib32 and 64-bit libraries go under $prefix/lib.
+ dnl We determine the compiler's default mode by looking at the compiler's
+ dnl library search path. If at least one of its elements ends in /lib64 or
+ dnl points to a directory whose absolute pathname ends in /lib64, we use that
+ dnl for 64-bit ABIs. Similarly for 32-bit ABIs. Otherwise we use the default,
+ dnl namely "lib".
dnl On Solaris systems, the current practice is that on a system supporting
dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or
@@ -169,27 +172,72 @@ AC_DEFUN([AC_LIB_PREPARE_MULTILIB],
AC_REQUIRE([AC_CANONICAL_HOST])
AC_REQUIRE([gl_HOST_CPU_C_ABI_32BIT])
- case "$host_os" in
- solaris*)
- AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit],
- [AC_COMPILE_IFELSE(
- [AC_LANG_SOURCE(
- [[#ifdef _LP64
- int ok;
- #else
- error fail
- #endif
- ]])],
- [gl_cv_solaris_64bit=yes],
- [gl_cv_solaris_64bit=no])
- ]);;
- esac
+ AC_CACHE_CHECK([for ELF binary format], [gl_cv_elf],
+ [AC_EGREP_CPP([Extensible Linking Format],
+ [#ifdef __ELF__
+ Extensible Linking Format
+ #endif
+ ],
+ [gl_cv_elf=yes],
+ [gl_cv_elf=no])
+ ])
+ if test $gl_cv_elf; then
+ # Extract the ELF class of a file (5th byte) in decimal.
+ # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header
+ if od -A x < /dev/null >/dev/null 2>/dev/null; then
+ # Use POSIX od.
+ func_elfclass ()
+ {
+ od -A n -t d1 -j 4 -N 1
+ }
+ else
+ # Use BSD hexdump.
+ func_elfclass ()
+ {
+ dd bs=1 count=1 skip=4 2>/dev/null | hexdump -e '1/1 "%3d "'
+ echo
+ }
+ fi
+changequote(,)dnl
+ case $HOST_CPU_C_ABI_32BIT in
+ yes)
+ # 32-bit ABI.
+ acl_is_expected_elfclass ()
+ {
+ test "`func_elfclass | sed -e 's/[ ]//g'`" = 1
+ }
+ ;;
+ no)
+ # 64-bit ABI.
+ acl_is_expected_elfclass ()
+ {
+ test "`func_elfclass | sed -e 's/[ ]//g'`" = 2
+ }
+ ;;
+ *)
+ # Unknown.
+ acl_is_expected_elfclass ()
+ {
+ :
+ }
+ ;;
+ esac
+changequote([,])dnl
+ else
+ acl_is_expected_elfclass ()
+ {
+ :
+ }
+ fi
dnl Allow the user to override the result by setting acl_cv_libdirstems.
AC_CACHE_CHECK([for the common suffixes of directories in the library search path],
[acl_cv_libdirstems],
- [acl_libdirstem=lib
+ [dnl Try 'lib' first, because that's the default for libdir in GNU, see
+ dnl <https://www.gnu.org/prep/standards/html_node/Directory-Variables.html>.
+ acl_libdirstem=lib
acl_libdirstem2=
+ acl_libdirstem3=
case "$host_os" in
solaris*)
dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment
@@ -197,53 +245,76 @@ AC_DEFUN([AC_LIB_PREPARE_MULTILIB],
dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link."
dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the
dnl symlink is missing, so we set acl_libdirstem2 too.
- if test $gl_cv_solaris_64bit = yes; then
- acl_libdirstem=lib/64
+ if test $HOST_CPU_C_ABI_32BIT = no; then
+ acl_libdirstem2=lib/64
case "$host_cpu" in
- sparc*) acl_libdirstem2=lib/sparcv9 ;;
- i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
+ sparc*) acl_libdirstem3=lib/sparcv9 ;;
+ i*86 | x86_64) acl_libdirstem3=lib/amd64 ;;
esac
fi
;;
*)
dnl If $CC generates code for a 32-bit ABI, the libraries are
- dnl surely under $prefix/lib, not $prefix/lib64.
- if test "$HOST_CPU_C_ABI_32BIT" != yes; then
- dnl The result is a property of the system. However, non-system
- dnl compilers sometimes have odd library search paths. Therefore
- dnl prefer asking /usr/bin/gcc, if available, rather than $CC.
- searchpath=`(if test -f /usr/bin/gcc \
- && LC_ALL=C /usr/bin/gcc -print-search-dirs >/dev/null 2>/dev/null; then \
- LC_ALL=C /usr/bin/gcc -print-search-dirs; \
- else \
- LC_ALL=C $CC -print-search-dirs; \
- fi) 2>/dev/null \
- | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
- if test -n "$searchpath"; then
- acl_save_IFS="${IFS= }"; IFS=":"
- for searchdir in $searchpath; do
- if test -d "$searchdir"; then
- case "$searchdir" in
- */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
- */../ | */.. )
- # Better ignore directories of this form. They are misleading.
- ;;
- *) searchdir=`cd "$searchdir" && pwd`
- case "$searchdir" in
- */lib64 ) acl_libdirstem=lib64 ;;
- esac ;;
- esac
- fi
- done
- IFS="$acl_save_IFS"
+ dnl surely under $prefix/lib or $prefix/lib32, not $prefix/lib64.
+ dnl Similarly, if $CC generates code for a 64-bit ABI, the libraries
+ dnl are surely under $prefix/lib or $prefix/lib64, not $prefix/lib32.
+ dnl Find the compiler's search path. However, non-system compilers
+ dnl sometimes have odd library search paths. But we can't simply invoke
+ dnl '/usr/bin/gcc -print-search-dirs' because that would not take into
+ dnl account the -m32/-m31 or -m64 options from the $CC or $CFLAGS.
+ searchpath=`(LC_ALL=C $CC $CPPFLAGS $CFLAGS -print-search-dirs) 2>/dev/null \
+ | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
+ if test $HOST_CPU_C_ABI_32BIT != no; then
+ # 32-bit or unknown ABI.
+ if test -d /usr/lib32; then
+ acl_libdirstem2=lib32
+ fi
+ fi
+ if test $HOST_CPU_C_ABI_32BIT != yes; then
+ # 64-bit or unknown ABI.
+ if test -d /usr/lib64; then
+ acl_libdirstem3=lib64
+ fi
+ fi
+ if test -n "$searchpath"; then
+ acl_save_IFS="${IFS= }"; IFS=":"
+ for searchdir in $searchpath; do
+ if test -d "$searchdir"; then
+ case "$searchdir" in
+ */lib32/ | */lib32 ) acl_libdirstem2=lib32 ;;
+ */lib64/ | */lib64 ) acl_libdirstem3=lib64 ;;
+ */../ | */.. )
+ # Better ignore directories of this form. They are misleading.
+ ;;
+ *) searchdir=`cd "$searchdir" && pwd`
+ case "$searchdir" in
+ */lib32 ) acl_libdirstem2=lib32 ;;
+ */lib64 ) acl_libdirstem3=lib64 ;;
+ esac ;;
+ esac
+ fi
+ done
+ IFS="$acl_save_IFS"
+ if test $HOST_CPU_C_ABI_32BIT = yes; then
+ # 32-bit ABI.
+ acl_libdirstem3=
+ fi
+ if test $HOST_CPU_C_ABI_32BIT = no; then
+ # 64-bit ABI.
+ acl_libdirstem2=
fi
fi
;;
esac
test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
- acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2"
+ test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem"
+ acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3"
])
- # Decompose acl_cv_libdirstems into acl_libdirstem and acl_libdirstem2.
+ dnl Decompose acl_cv_libdirstems into acl_libdirstem, acl_libdirstem2, and
+ dnl acl_libdirstem3.
+changequote(,)dnl
acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'`
- acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e '/,/s/.*,//'`
+ acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,//' -e 's/,.*//'`
+ acl_libdirstem3=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,[^,]*,//' -e 's/,.*//'`
+changequote([,])dnl
])
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/nls.m4 b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/nls.m4
index b62f614857..5a506fc4b5 100644
--- a/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/nls.m4
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/nls.m4
@@ -1,16 +1,16 @@
-# nls.m4 serial 5 (gettext-0.18)
-dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016, 2019 Free Software
-dnl Foundation, Inc.
+# nls.m4 serial 6 (gettext-0.20.2)
+dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016, 2019-2020 Free
+dnl Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl
dnl This file can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
+dnl the GNU General Public License or the GNU Lesser General Public
dnl License but which still want to provide support for the GNU gettext
dnl functionality.
dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
+dnl by the GNU Lesser General Public License, and the rest of the GNU
dnl gettext package is covered by the GNU General Public License.
dnl They are *not* in the public domain.
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/po.m4 b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/po.m4
index 143792dba5..3778fd7aac 100644
--- a/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/po.m4
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/po.m4
@@ -1,15 +1,15 @@
-# po.m4 serial 30 (gettext-0.20)
-dnl Copyright (C) 1995-2014, 2016, 2018-2019 Free Software Foundation, Inc.
+# po.m4 serial 31 (gettext-0.20.2)
+dnl Copyright (C) 1995-2014, 2016, 2018-2020 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl
dnl This file can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
+dnl the GNU General Public License or the GNU Lesser General Public
dnl License but which still want to provide support for the GNU gettext
dnl functionality.
dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
+dnl by the GNU Lesser General Public License, and the rest of the GNU
dnl gettext package is covered by the GNU General Public License.
dnl They are *not* in the public domain.
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/progtest.m4 b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/progtest.m4
index 5f186b1490..f28010aed1 100644
--- a/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/progtest.m4
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/aclocal/progtest.m4
@@ -1,15 +1,15 @@
-# progtest.m4 serial 7 (gettext-0.18.2)
-dnl Copyright (C) 1996-2003, 2005, 2008-2019 Free Software Foundation, Inc.
+# progtest.m4 serial 8 (gettext-0.20.2)
+dnl Copyright (C) 1996-2003, 2005, 2008-2020 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl
dnl This file can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
+dnl the GNU General Public License or the GNU Lesser General Public
dnl License but which still want to provide support for the GNU gettext
dnl functionality.
dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
+dnl by the GNU Lesser General Public License, and the rest of the GNU
dnl gettext package is covered by the GNU General Public License.
dnl They are *not* in the public domain.
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.20.1/config.rpath b/meta/recipes-core/gettext/gettext-minimal-0.21/config.rpath
index be202c1a9e..24be79cfb6 100755
--- a/meta/recipes-core/gettext/gettext-minimal-0.20.1/config.rpath
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/config.rpath
@@ -2,7 +2,7 @@
# Output a system dependent set of variables, describing how to set the
# run time search path of shared libraries in an executable.
#
-# Copyright 1996-2019 Free Software Foundation, Inc.
+# Copyright 1996-2020 Free Software Foundation, Inc.
# Taken from GNU libtool, 2001
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
#
diff --git a/meta/recipes-core/gettext/gettext-minimal-0.20.1/remove-potcdate.sin b/meta/recipes-core/gettext/gettext-minimal-0.21/remove-potcdate.sin
index 8c70dfbf14..8c70dfbf14 100644
--- a/meta/recipes-core/gettext/gettext-minimal-0.20.1/remove-potcdate.sin
+++ b/meta/recipes-core/gettext/gettext-minimal-0.21/remove-potcdate.sin
diff --git a/meta/recipes-core/gettext/gettext-minimal-native_0.20.1.bb b/meta/recipes-core/gettext/gettext-minimal-native_0.21.bb
index 7a4dcbec57..7a4dcbec57 100644
--- a/meta/recipes-core/gettext/gettext-minimal-native_0.20.1.bb
+++ b/meta/recipes-core/gettext/gettext-minimal-native_0.21.bb
diff --git a/meta/recipes-core/gettext/gettext_0.20.1.bb b/meta/recipes-core/gettext/gettext_0.21.bb
index 214803f767..bc14867bbb 100644
--- a/meta/recipes-core/gettext/gettext_0.20.1.bb
+++ b/meta/recipes-core/gettext/gettext_0.21.bb
@@ -8,26 +8,22 @@ SECTION = "libs"
LICENSE = "GPLv3+ & LGPL-2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=c678957b0c8e964aa6c70fd77641a71e"
-# Because po-gram-gen.y has been modified by fix-CVE-2018-18751.patch,
-# it requires yacc which provided by bison-native
-# Please remove bison-native from DEPENDS* when next upgrade
-DEPENDS = "bison-native gettext-native virtual/libiconv"
-DEPENDS_class-native = "bison-native gettext-minimal-native"
+DEPENDS = "gettext-native virtual/libiconv"
+DEPENDS_class-native = "gettext-minimal-native"
PROVIDES = "virtual/libintl virtual/gettext"
PROVIDES_class-native = "virtual/gettext-native"
RCONFLICTS_${PN} = "proxy-libintl"
SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \
file://parallel.patch \
- file://add-with-bisonlocaledir.patch \
- file://cr-statement.c-timsort.h-fix-formatting-issues.patch \
file://use-pkgconfig.patch \
file://run-ptest \
file://serial-tests-config.patch \
- file://0001-msgmerge-Fix-behaviour-of-for-msgfmt-on-PO-files-wit.patch \
file://0001-tests-autopoint-3-unset-MAKEFLAGS.patch \
+ file://0001-init-env.in-do-not-add-C-CXX-parameters.patch \
+ file://mingw.patch \
+ file://0001-msgmerge-29-Add-executable-file-mode-bits.patch \
"
-SRC_URI[md5sum] = "bb5b0c0caa028105f3ca1905ddc306e2"
-SRC_URI[sha256sum] = "66415634c6e8c3fa8b71362879ec7575e27da43da562c798a8a2f223e6e47f5c"
+SRC_URI[sha256sum] = "c77d0da3102aec9c07f43671e60611ebff89a996ef159497ce8e59d075786b12"
inherit autotools texinfo pkgconfig ptest
@@ -131,7 +127,7 @@ do_install_append_class-native () {
rm ${D}${datadir}/gettext/po/remove-potcdate.sin
create_wrapper ${D}${bindir}/msgfmt \
- GETTEXTDATADIR="${STAGING_DATADIR_NATIVE}/gettext-0.20/"
+ GETTEXTDATADIR="${STAGING_DATADIR_NATIVE}/gettext-${PV}/"
}
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-ignore-return-value-of-write.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-ignore-return-value-of-write.patch
index 0ebf138d60..f3a0069633 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-ignore-return-value-of-write.patch
+++ b/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-ignore-return-value-of-write.patch
@@ -1,4 +1,4 @@
-From d250652782b65b071b7cc8f01f2db833df104e0e Mon Sep 17 00:00:00 2001
+From 658c034d92027dc8af5f784cae852123fac79b19 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 16 Apr 2016 13:28:59 -0700
Subject: [PATCH] Do not ignore return value of write()
@@ -16,10 +16,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/glib/tests/unix.c b/glib/tests/unix.c
-index 9d55a6c..a07f945 100644
+index 7639d06..f941141 100644
--- a/glib/tests/unix.c
+++ b/glib/tests/unix.c
-@@ -32,14 +32,15 @@ test_pipe (void)
+@@ -33,14 +33,15 @@ test_pipe (void)
GError *error = NULL;
int pipefd[2];
char buf[1024];
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch
index edac4c9f75..5fe3aa898e 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch
+++ b/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch
@@ -1,4 +1,4 @@
-From 60b36289ac314ad972cf81c1acd19f6f2e58ff25 Mon Sep 17 00:00:00 2001
+From 0797a40627a4cb5439a24b872edc65356dceaaf0 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Fri, 15 Feb 2019 11:17:27 +0100
Subject: [PATCH] Do not write $bindir into pkg-config files
@@ -16,13 +16,13 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/gio/meson.build b/gio/meson.build
-index 71e88c4..8ce3987 100644
+index 532b086..98468a3 100644
--- a/gio/meson.build
+++ b/gio/meson.build
-@@ -831,14 +831,14 @@ pkg.generate(libgio,
+@@ -820,14 +820,14 @@ pkg.generate(libgio,
'schemasdir=' + join_paths('${datadir}', schemas_subdir),
'bindir=' + join_paths('${prefix}', get_option('bindir')),
- 'giomoduledir=' + giomodulesdir,
+ 'giomoduledir=' + pkgconfig_giomodulesdir,
- 'gio=' + join_paths('${bindir}', 'gio'),
- 'gio_querymodules=' + join_paths('${bindir}', 'gio-querymodules'),
- 'glib_compile_schemas=' + join_paths('${bindir}', 'glib-compile-schemas'),
@@ -43,7 +43,7 @@ index 71e88c4..8ce3987 100644
install_dir : glib_pkgconfigreldir,
filebase : 'gio-2.0',
diff --git a/glib/meson.build b/glib/meson.build
-index 91a48f1..978fb73 100644
+index aaf5f00..1e0992b 100644
--- a/glib/meson.build
+++ b/glib/meson.build
@@ -375,9 +375,9 @@ pkg.generate(libglib,
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch
index d8cf269bb8..16f2d31496 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch
+++ b/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch
@@ -1,4 +1,4 @@
-From 15f807481de53942525b48952c5b6bbb9fb66542 Mon Sep 17 00:00:00 2001
+From c94e669de98a3892c699bd8d0d2b5164b2de747e Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 15 Mar 2014 22:42:29 -0700
Subject: [PATCH] Fix DATADIRNAME on uclibc/Linux
@@ -9,7 +9,7 @@ based systems therefore lets set DATADIRNAME to "share".
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Pending
-%% original patch: uclibc_musl_translation.patch
+
---
m4macros/glib-gettext.m4 | 4 ++++
1 file changed, 4 insertions(+)
@@ -29,6 +29,3 @@ index df6fbf0..47db864 100644
*)
CATOBJEXT=.mo
DATADIRNAME=lib
---
-2.17.1
-
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch
index a3d71f2b7a..597864d9ac 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch
+++ b/meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch
@@ -1,4 +1,4 @@
-From d29dfba67b1808eea6d428085f95b6e42cf2d1e4 Mon Sep 17 00:00:00 2001
+From 0015db45cd1bfefc04959dffab5dabeead93136f Mon Sep 17 00:00:00 2001
From: Jussi Kukkonen <jussi.kukkonen@intel.com>
Date: Tue, 22 Mar 2016 15:14:58 +0200
Subject: [PATCH] Install gio-querymodules as libexec_PROGRAM
@@ -14,10 +14,10 @@ Upstream-Status: Inappropriate [OE specific]
1 file changed, 1 insertion(+)
diff --git a/gio/meson.build b/gio/meson.build
-index 4e5e021..90a741a 100644
+index 2ef60ed..532b086 100644
--- a/gio/meson.build
+++ b/gio/meson.build
-@@ -940,6 +940,7 @@ gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodu
+@@ -936,6 +936,7 @@ gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodu
c_args : gio_c_args,
# intl.lib is not compatible with SAFESEH
link_args : noseh_link_args,
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch
index 67ca6240bc..6fd93526ce 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch
+++ b/meta/recipes-core/glib-2.0/glib-2.0/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch
@@ -1,7 +1,7 @@
-From 2acf40361eecd17c6981743dabd06e25a9934258 Mon Sep 17 00:00:00 2001
+From 4f47b8a8d650d185aa61aec2f56a283522a723c4 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Fri, 12 Jun 2015 17:08:46 +0300
-Subject: [PATCH 05/10] Remove the warning about deprecated paths in schemas
+Subject: [PATCH] Remove the warning about deprecated paths in schemas
Some schemas in gsettings-desktop-schemas (such as proxy and locale)
are still using deprecated paths, as of 3.16.1. This causes warning
@@ -15,10 +15,10 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
1 file changed, 13 deletions(-)
diff --git a/gio/glib-compile-schemas.c b/gio/glib-compile-schemas.c
-index b8de090..130f89b 100644
+index 7888120..7acbd5b 100644
--- a/gio/glib-compile-schemas.c
+++ b/gio/glib-compile-schemas.c
-@@ -1219,19 +1219,6 @@ parse_state_start_schema (ParseState *state,
+@@ -1232,19 +1232,6 @@ parse_state_start_schema (ParseState *state,
return;
}
@@ -38,6 +38,3 @@ index b8de090..130f89b 100644
state->schema_state = schema_state_new (path, gettext_domain,
extends, extends_name, list_of);
---
-2.14.1
-
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
index b02169e09b..d075cd3f23 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
+++ b/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
@@ -1,4 +1,4 @@
-From cfff734af6bff6a30a649f784ecf698658c01884 Mon Sep 17 00:00:00 2001
+From d3334e83ae0da9ca184eb9c8daf0854544ece023 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Wed, 13 Feb 2019 15:32:05 +0100
Subject: [PATCH] Set host_machine correctly when building with mingw32
@@ -14,10 +14,10 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
4 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/gio/tests/meson.build b/gio/tests/meson.build
-index 95aafc1..9025eb2 100644
+index dab65d2..e8bb2ee 100644
--- a/gio/tests/meson.build
+++ b/gio/tests/meson.build
-@@ -13,7 +13,7 @@ test_c_args = [
+@@ -12,7 +12,7 @@ test_c_args = [
'-UG_DISABLE_ASSERT',
]
@@ -26,7 +26,7 @@ index 95aafc1..9025eb2 100644
common_gio_tests_deps += [iphlpapi_dep, winsock2, cc.find_library ('secur32')]
endif
-@@ -120,7 +120,7 @@ if dbus1_dep.found()
+@@ -132,7 +132,7 @@ else
endif
# Test programs buildable on UNIX only
@@ -35,7 +35,7 @@ index 95aafc1..9025eb2 100644
gio_tests += {
'file' : {},
'gdbus-peer' : {
-@@ -332,7 +332,7 @@ if host_machine.system() != 'windows'
+@@ -384,7 +384,7 @@ if host_machine.system() != 'windows'
endif # unix
# Test programs buildable on Windows only
@@ -44,7 +44,7 @@ index 95aafc1..9025eb2 100644
gio_tests += {'win32-streams' : {}}
endif
-@@ -397,7 +397,7 @@ if cc.get_id() != 'msvc' and cc.get_id() != 'clang-cl'
+@@ -454,7 +454,7 @@ if cc.get_id() != 'msvc' and cc.get_id() != 'clang-cl'
}
endif
@@ -54,10 +54,10 @@ index 95aafc1..9025eb2 100644
'gdbus-example-unix-fd-client' : {
'install' : false,
diff --git a/glib/tests/meson.build b/glib/tests/meson.build
-index c47133f..cad975f 100644
+index 3dedafc..94605e6 100644
--- a/glib/tests/meson.build
+++ b/glib/tests/meson.build
-@@ -132,7 +132,7 @@ if glib_conf.has('HAVE_EVENTFD')
+@@ -134,7 +134,7 @@ if glib_conf.has('HAVE_EVENTFD')
}
endif
@@ -67,7 +67,7 @@ index c47133f..cad975f 100644
glib_tests += {
'gpoll' : {
diff --git a/meson.build b/meson.build
-index 717d1bc..2a3beb8 100644
+index e1b4b79..afb6eaa 100644
--- a/meson.build
+++ b/meson.build
@@ -32,6 +32,9 @@ else
@@ -81,10 +81,10 @@ index 717d1bc..2a3beb8 100644
glib_version = meson.project_version()
glib_api_version = '2.0'
diff --git a/tests/meson.build b/tests/meson.build
-index ce30442..5710f2c 100644
+index 6741f8f..12fdc90 100644
--- a/tests/meson.build
+++ b/tests/meson.build
-@@ -66,7 +66,7 @@ test_extra_programs = {
+@@ -73,7 +73,7 @@ test_extra_programs = {
'unicode-collate' : {},
}
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch
index 3dfef176fd..d33fdd4d8b 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch
+++ b/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch
@@ -1,4 +1,4 @@
-From 730803f2bc3f2f1a74f4db809a224066e7eae114 Mon Sep 17 00:00:00 2001
+From 92de6c7eb30b961b24a2dce812d5276487b7d23d Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Wed, 8 Jan 2020 18:22:46 +0100
Subject: [PATCH] gio/tests/resources.c: comment out a build host-only test
@@ -8,6 +8,7 @@ not cross-compatible (hardcodes ld and objcopy).
Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
---
gio/tests/resources.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch
index 833ad2540e..44482dd2b7 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch
+++ b/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch
@@ -1,4 +1,4 @@
-From cce617bec254e327ed7bcad60f58208024c6dc42 Mon Sep 17 00:00:00 2001
+From 4b97f457b7b44117e27d2a218c4b68e7fe3fe4ce Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 12 Oct 2019 17:46:26 -0700
Subject: [PATCH] meson: Run atomics test on clang as well
@@ -9,15 +9,16 @@ Fixes
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
-index 9731de4..c678931 100644
+index afb6eaa..6aa70f5 100644
--- a/meson.build
+++ b/meson.build
-@@ -1634,7 +1634,7 @@ atomicdefine = '''
+@@ -1692,7 +1692,7 @@ atomicdefine = '''
# We know that we can always use real ("lock free") atomic operations with MSVC
if cc.get_id() == 'msvc' or cc.get_id() == 'clang-cl' or cc.links(atomictest, name : 'atomic ops')
have_atomic_lock_free = true
@@ -26,6 +27,3 @@ index 9731de4..c678931 100644
# Old gcc release may provide
# __sync_bool_compare_and_swap but doesn't define
# __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4
---
-2.23.0
-
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch b/meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch
index 872340df96..1c645f3a9a 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch
+++ b/meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch
@@ -1,10 +1,11 @@
-From b9160d951b9af647b97766c57295ca4f45cf9521 Mon Sep 17 00:00:00 2001
+From 79ce7e545dd3a93f77d2146d50b6fa061fbceed9 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Tue, 3 Oct 2017 10:45:55 +0300
-Subject: [PATCH 10/10] Do not hardcode python path into various tools
+Subject: [PATCH] Do not hardcode python path into various tools
Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
---
gio/gdbus-2.0/codegen/gdbus-codegen.in | 2 +-
gobject/glib-genmarshal.in | 2 +-
@@ -12,7 +13,7 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/gio/gdbus-2.0/codegen/gdbus-codegen.in b/gio/gdbus-2.0/codegen/gdbus-codegen.in
-index 8050981..e693ef3 100755
+index 67d3675..4e92a7a 100755
--- a/gio/gdbus-2.0/codegen/gdbus-codegen.in
+++ b/gio/gdbus-2.0/codegen/gdbus-codegen.in
@@ -1,4 +1,4 @@
@@ -22,7 +23,7 @@ index 8050981..e693ef3 100755
# GDBus - GLib D-Bus Library
#
diff --git a/gobject/glib-genmarshal.in b/gobject/glib-genmarshal.in
-index 09e8408..b2f9d99 100755
+index 7380f24..c8abeaa 100755
--- a/gobject/glib-genmarshal.in
+++ b/gobject/glib-genmarshal.in
@@ -1,4 +1,4 @@
@@ -32,7 +33,7 @@ index 09e8408..b2f9d99 100755
# pylint: disable=too-many-lines, missing-docstring, invalid-name
diff --git a/gobject/glib-mkenums.in b/gobject/glib-mkenums.in
-index d4bfd11..051fce4 100755
+index 91ad779..3ebef62 100755
--- a/gobject/glib-mkenums.in
+++ b/gobject/glib-mkenums.in
@@ -1,4 +1,4 @@
@@ -41,6 +42,3 @@ index d4bfd11..051fce4 100755
# If the code below looks horrible and unpythonic, do not panic.
#
---
-2.14.1
-
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/Enable-more-tests-while-cross-compiling.patch b/meta/recipes-core/glib-2.0/glib-2.0/Enable-more-tests-while-cross-compiling.patch
index 48899ce852..41ecfa1df8 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/Enable-more-tests-while-cross-compiling.patch
+++ b/meta/recipes-core/glib-2.0/glib-2.0/Enable-more-tests-while-cross-compiling.patch
@@ -1,4 +1,4 @@
-From 0061d66057dfd7e7267772df60b36474fb180eed Mon Sep 17 00:00:00 2001
+From 7cde170afe6854d674b50e32b4c1d3b511be9abe Mon Sep 17 00:00:00 2001
From: Jussi Kukkonen <jussi.kukkonen@intel.com>
Date: Mon, 9 Nov 2015 11:07:27 +0200
Subject: [PATCH] Enable more tests while cross-compiling
@@ -15,10 +15,10 @@ Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/gio/tests/meson.build b/gio/tests/meson.build
-index 382dfcc..c171717 100644
+index 788cf97..dab65d2 100644
--- a/gio/tests/meson.build
+++ b/gio/tests/meson.build
-@@ -191,7 +191,7 @@ if host_machine.system() != 'windows'
+@@ -203,7 +203,7 @@ if host_machine.system() != 'windows'
# Test programs that need to bring up a session bus (requires dbus-daemon)
have_dbus_daemon = find_program('dbus-daemon', required : false).found()
@@ -27,8 +27,8 @@ index 382dfcc..c171717 100644
annotate_args = [
'--annotate', 'org.project.Bar', 'Key1', 'Value1',
'--annotate', 'org.project.Bar', 'org.gtk.GDBus.Internal', 'Value2',
-@@ -465,12 +465,12 @@ if installed_tests_enabled
- install_data('static-link.py', install_dir : installed_tests_execdir)
+@@ -548,12 +548,12 @@ if installed_tests_enabled
+ endforeach
endif
-if not meson.is_cross_build() or meson.has_exe_wrapper()
@@ -42,7 +42,7 @@ index 382dfcc..c171717 100644
'--target=@OUTPUT@',
'--sourcedir=' + meson.current_source_dir(),
'--generate-source',
-@@ -494,7 +494,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
+@@ -577,7 +577,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
test_gresource = custom_target('test.gresource',
input : 'test.gresource.xml',
output : 'test.gresource',
@@ -51,7 +51,7 @@ index 382dfcc..c171717 100644
'--target=@OUTPUT@',
'--sourcedir=' + meson.current_source_dir(),
'--sourcedir=' + meson.current_build_dir(),
-@@ -505,7 +505,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
+@@ -588,7 +588,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
test_resources2_c = custom_target('test_resources2.c',
input : 'test3.gresource.xml',
output : 'test_resources2.c',
@@ -60,7 +60,7 @@ index 382dfcc..c171717 100644
'--target=@OUTPUT@',
'--sourcedir=' + meson.current_source_dir(),
'--generate',
-@@ -516,7 +516,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
+@@ -599,7 +599,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
test_resources2_h = custom_target('test_resources2.h',
input : 'test3.gresource.xml',
output : 'test_resources2.h',
@@ -69,7 +69,7 @@ index 382dfcc..c171717 100644
'--target=@OUTPUT@',
'--sourcedir=' + meson.current_source_dir(),
'--generate',
-@@ -528,7 +528,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
+@@ -611,7 +611,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
input : 'test2.gresource.xml',
depends : big_test_resource,
output : 'test_resources.c',
@@ -78,7 +78,7 @@ index 382dfcc..c171717 100644
'--target=@OUTPUT@',
'--sourcedir=' + meson.current_source_dir(),
'--sourcedir=' + meson.current_build_dir(),
-@@ -539,7 +539,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
+@@ -622,7 +622,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
digit_test_resources_c = custom_target('digit_test_resources.c',
input : '111_digit_test.gresource.xml',
output : 'digit_test_resources.c',
@@ -87,7 +87,7 @@ index 382dfcc..c171717 100644
'--target=@OUTPUT@',
'--sourcedir=' + meson.current_source_dir(),
'--sourcedir=' + meson.current_build_dir(),
-@@ -550,7 +550,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
+@@ -633,7 +633,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
digit_test_resources_h = custom_target('digit_test_resources.h',
input : '111_digit_test.gresource.xml',
output : 'digit_test_resources.h',
@@ -96,11 +96,11 @@ index 382dfcc..c171717 100644
'--target=@OUTPUT@',
'--sourcedir=' + meson.current_source_dir(),
'--generate',
-@@ -579,11 +579,11 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
- # LLVM once that support is in a stable release.
- objcopy = find_program('objcopy', required : false)
+@@ -668,11 +668,11 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
-- if build_machine.system() == 'linux' and cc.get_id() == 'gcc' and objcopy.found()
+ ld = find_program('ld', required : false)
+
+- if build_machine.system() == 'linux' and cc.get_id() == 'gcc' and objcopy.found() and objcopy_supports_add_symbol and ld.found()
+ if not meson.is_cross_build()
test_gresource_binary = custom_target('test5.gresource',
input : 'test5.gresource.xml',
@@ -110,7 +110,7 @@ index 382dfcc..c171717 100644
'--target=@OUTPUT@',
'--sourcedir=' + meson.current_source_dir(),
'--sourcedir=' + meson.current_build_dir(),
-@@ -595,7 +595,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
+@@ -684,7 +684,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
test_resources_binary_c = custom_target('test_resources_binary.c',
input : 'test5.gresource.xml',
output : 'test_resources_binary.c',
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux b/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux
index 83596e0efb..adad7e62ee 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux
+++ b/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux
@@ -2,4 +2,4 @@
have_proc_self_cmdline = true
[binaries]
-env = "/usr/bin/env"
+env = '/usr/bin/env'
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch b/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
index fc320dcab8..fe87482ae2 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
+++ b/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
@@ -1,4 +1,4 @@
-From 8c623acdbea3ecc2812bbaafcfc892758fa978da Mon Sep 17 00:00:00 2001
+From 2a715765c6ceb2e8b4cc42e060aee75016111d1a Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@intel.com>
Date: Fri, 11 Mar 2016 15:35:55 +0000
Subject: [PATCH] glib-2.0: relocate the GIO module directory for native builds
@@ -19,11 +19,11 @@ Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/gio/giomodule.c b/gio/giomodule.c
-index 1007abd..5380982 100644
+index c420260..a023745 100644
--- a/gio/giomodule.c
+++ b/gio/giomodule.c
-@@ -44,6 +44,8 @@
- #include "gnetworkmonitor.h"
+@@ -47,6 +47,8 @@
+ #include "gmemorymonitordbus.h"
#ifdef G_OS_WIN32
#include "gregistrysettingsbackend.h"
+#else
@@ -32,7 +32,7 @@ index 1007abd..5380982 100644
#include <glib/gstdio.h>
@@ -1158,7 +1160,15 @@ get_gio_module_dir (void)
- #endif
+ NULL);
g_free (install_dir);
#else
- module_dir = g_strdup (GIO_MODULE_DIR);
diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.62.4.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.64.5.bb
index 5ed3b4e871..a1233e6926 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0_2.62.4.bb
+++ b/meta/recipes-core/glib-2.0/glib-2.0_2.64.5.bb
@@ -20,8 +20,7 @@ SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
SRC_URI_append_class-native = " file://relocate-modules.patch"
-SRC_URI[md5sum] = "d52234ecba128932bed90bbc3553bfe5"
-SRC_URI[sha256sum] = "4c84030d77fa9712135dfa8036ad663925655ae95b1d19399b6200e869925bbc"
+SRC_URI[sha256sum] = "9cbd5bd2715ead1c28d53c46f7b7b6ff6166f5887b772c1a9e3bf2910cfecc11"
# Find any meson cross files in FILESPATH that are relevant for the current
# build (using siteinfo) and add them to EXTRA_OEMESON.
diff --git a/meta/recipes-core/glib-2.0/glib.inc b/meta/recipes-core/glib-2.0/glib.inc
index 23c347dbf7..a0055d81b0 100644
--- a/meta/recipes-core/glib-2.0/glib.inc
+++ b/meta/recipes-core/glib-2.0/glib.inc
@@ -28,7 +28,9 @@ PACKAGES += "${PN}-codegen ${PN}-utils"
LEAD_SONAME = "libglib-2.0.*"
-inherit meson gettext gtk-doc pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache manpages features_check
+inherit meson gettext gtk-doc pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache manpages
+
+DEPENDS_append_class-target = "${@' gtk-doc' if d.getVar('GTKDOC_ENABLED') == 'True' else ''}"
GTKDOC_MESON_OPTION = "gtk_doc"
@@ -42,7 +44,7 @@ PACKAGECONFIG ??= "system-pcre libmount \
${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
# To use the system pcre it must be configured with --enable-unicode-properties
PACKAGECONFIG[system-pcre] = "-Dinternal_pcre=false,-Dinternal_pcre=true,libpcre"
-PACKAGECONFIG[libmount] = "-Dlibmount=true,-Dlibmount=false,util-linux"
+PACKAGECONFIG[libmount] = "-Dlibmount=enabled,-Dlibmount=disabled,util-linux"
PACKAGECONFIG[manpages] = "-Dman=true, -Dman=false, libxslt-native xmlto-native"
# libelf is auto-detected without a configuration option
PACKAGECONFIG[libelf] = ",,elfutils"
@@ -128,6 +130,11 @@ do_install_append_class-target () {
rm ${D}${datadir}/installed-tests/glib/gdbus-serialization.test
fi
fi
+ if [ -f ${D}${datadir}/installed-tests/glib/static-link.test ]; then
+ if test "x${MLPREFIX}" != "x"; then
+ mv ${D}${datadir}/installed-tests/glib/static-link.test ${D}${datadir}/installed-tests/glib/${MLPREFIX}static-link.test
+ fi
+ fi
}
# As we do not build python3 for windows, makes no sense to ship the script that's using it
@@ -163,6 +170,8 @@ RDEPENDS_${PN}-ptest += "\
${PN}-locale-th \
python3-core \
python3-modules \
+ python3-dbusmock \
+ ${PN}-codegen \
"
RDEPENDS_${PN}-ptest_append_libc-glibc = "\
diff --git a/meta/recipes-core/glib-networking/glib-networking/run-ptest b/meta/recipes-core/glib-networking/glib-networking/run-ptest
new file mode 100644
index 0000000000..6d520f94f6
--- /dev/null
+++ b/meta/recipes-core/glib-networking/glib-networking/run-ptest
@@ -0,0 +1,3 @@
+#! /bin/sh
+
+gnome-desktop-testing-runner glib-networking
diff --git a/meta/recipes-core/glib-networking/glib-networking_2.62.3.bb b/meta/recipes-core/glib-networking/glib-networking_2.64.3.bb
index e9596ce1a4..074389f552 100644
--- a/meta/recipes-core/glib-networking/glib-networking_2.62.3.bb
+++ b/meta/recipes-core/glib-networking/glib-networking_2.64.3.bb
@@ -9,19 +9,22 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
SECTION = "libs"
DEPENDS = "glib-2.0"
-SRC_URI[archive.md5sum] = "a758ca62bd54982a798b39c744cbf783"
-SRC_URI[archive.sha256sum] = "8ca1f86f23a76b5c7640624f7d5490705c78e81375e1741c9a1c41ce7f8f7ff7"
+SRC_URI[archive.md5sum] = "eb382907ec941fe2fb1a9676b75acf7a"
+SRC_URI[archive.sha256sum] = "937a06b124052813bfc0b0b86bff42016ff01067582e1aca65bb6dbe0845a168"
-PACKAGECONFIG ??= "gnutls"
+PACKAGECONFIG ??= "gnutls ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
PACKAGECONFIG[gnutls] = "-Dgnutls=enabled,-Dgnutls=disabled,gnutls"
PACKAGECONFIG[openssl] = "-Dopenssl=enabled,-Dopenssl=disabled,openssl"
PACKAGECONFIG[libproxy] = "-Dlibproxy=enabled,-Dlibproxy=disabled,libproxy"
+PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false"
EXTRA_OEMESON = "-Dgnome_proxy=disabled"
GNOMEBASEBUILDCLASS = "meson"
-inherit gnomebase gettext upstream-version-is-even gio-module-cache
+inherit gnomebase gettext upstream-version-is-even gio-module-cache ptest-gnome
+
+SRC_URI += "file://run-ptest"
FILES_${PN} += "\
${libdir}/gio/modules/libgio*.so \
@@ -31,4 +34,4 @@ FILES_${PN} += "\
FILES_${PN}-dev += "${libdir}/gio/modules/libgio*.la"
FILES_${PN}-staticdev += "${libdir}/gio/modules/libgio*.a"
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-core/glibc/cross-localedef-native_2.31.bb b/meta/recipes-core/glibc/cross-localedef-native_2.32.bb
index 24de55d929..5a0abbb70f 100644
--- a/meta/recipes-core/glibc/cross-localedef-native_2.31.bb
+++ b/meta/recipes-core/glibc/cross-localedef-native_2.32.bb
@@ -22,19 +22,17 @@ FILESEXTRAPATHS =. "${FILE_DIRNAME}/${PN}:${FILE_DIRNAME}/glibc:"
SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
git://github.com/kraj/localedef;branch=master;name=localedef;destsuffix=git/localedef \
\
- file://0001-localedef-Add-hardlink-resolver-to-build.patch;patchdir=localedef \
- \
file://0001-localedef-Add-hardlink-resolver-from-util-linux.patch \
file://0002-localedef-fix-ups-hardlink-to-make-it-compile.patch \
\
- file://0018-timezone-re-written-tzselect-as-posix-sh.patch \
- file://0019-Remove-bash-dependency-for-nscd-init-script.patch \
- file://0020-eglibc-Cross-building-and-testing-instructions.patch \
- file://0021-eglibc-Help-bootstrap-cross-toolchain.patch \
- file://0022-eglibc-Resolve-__fpscr_values-on-SH4.patch \
- file://0023-eglibc-Forward-port-cross-locale-generation-support.patch \
- file://0024-Define-DUMMY_LOCALE_T-if-not-defined.patch \
- file://0025-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \
+ file://0016-timezone-re-written-tzselect-as-posix-sh.patch \
+ file://0017-Remove-bash-dependency-for-nscd-init-script.patch \
+ file://0018-eglibc-Cross-building-and-testing-instructions.patch \
+ file://0019-eglibc-Help-bootstrap-cross-toolchain.patch \
+ file://0020-eglibc-Resolve-__fpscr_values-on-SH4.patch \
+ file://0021-eglibc-Forward-port-cross-locale-generation-support.patch \
+ file://0022-Define-DUMMY_LOCALE_T-if-not-defined.patch \
+ file://0023-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \
"
# Makes for a rather long rev (22 characters), but...
#
diff --git a/meta/recipes-core/glibc/glibc-common.inc b/meta/recipes-core/glibc/glibc-common.inc
index 8d412cc857..027c700998 100644
--- a/meta/recipes-core/glibc/glibc-common.inc
+++ b/meta/recipes-core/glibc/glibc-common.inc
@@ -22,4 +22,4 @@ ARM_INSTRUCTION_SET_armv6 = "arm"
#
COMPATIBLE_HOST_libc-musl_class-target = "null"
-PV = "2.31"
+PV = "2.32"
diff --git a/meta/recipes-core/glibc/glibc-locale_2.31.bb b/meta/recipes-core/glibc/glibc-locale_2.32.bb
index f7702e0358..f7702e0358 100644
--- a/meta/recipes-core/glibc/glibc-locale_2.31.bb
+++ b/meta/recipes-core/glibc/glibc-locale_2.32.bb
diff --git a/meta/recipes-core/glibc/glibc-mtrace_2.31.bb b/meta/recipes-core/glibc/glibc-mtrace_2.32.bb
index 0b69bad46a..0b69bad46a 100644
--- a/meta/recipes-core/glibc/glibc-mtrace_2.31.bb
+++ b/meta/recipes-core/glibc/glibc-mtrace_2.32.bb
diff --git a/meta/recipes-core/glibc/glibc-package.inc b/meta/recipes-core/glibc/glibc-package.inc
index 285a9aa2f5..f7e4b59a5b 100644
--- a/meta/recipes-core/glibc/glibc-package.inc
+++ b/meta/recipes-core/glibc/glibc-package.inc
@@ -23,9 +23,9 @@ ARCH_DYNAMIC_LOADER_aarch64 = "ld-linux-${TARGET_ARCH}.so.1"
libc_baselibs_append = " ${@oe.utils.conditional('ARCH_DYNAMIC_LOADER', '', '', '${root_prefix}/lib/${ARCH_DYNAMIC_LOADER}', d)}"
INSANE_SKIP_${PN}_append_aarch64 = " libdir"
-FILES_${PN} = "${libc_baselibs} ${libexecdir}/*"
-RRECOMMENDS_${PN} = "${@bb.utils.filter('DISTRO_FEATURES', 'ldconfig', d)}"
-FILES_ldconfig = "${base_sbindir}/ldconfig ${sysconfdir}/ld.so.conf"
+FILES_${PN} = "${libc_baselibs} ${libexecdir}/* ${sysconfdir}/ld.so.conf"
+RRECOMMENDS_${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'ldconfig', '${MLPREFIX}ldconfig', '', d)}"
+FILES_ldconfig = "${base_sbindir}/ldconfig"
FILES_ldd = "${bindir}/ldd"
FILES_libsegfault = "${base_libdir}/libSegFault*"
FILES_libcidn = "${base_libdir}/libcidn-*.so ${base_libdir}/libcidn.so.*"
@@ -152,7 +152,7 @@ do_install_append_armeb () {
}
do_install_armmultilib () {
- oe_multilib_header bits/endian.h bits/fcntl.h bits/fenv.h bits/fp-fast.h bits/hwcap.h bits/ipc.h bits/link.h bits/wordsize.h
+ oe_multilib_header bits/endian.h bits/fcntl.h bits/fenv.h bits/fp-fast.h bits/hwcap.h bits/ipc.h bits/link.h
oe_multilib_header bits/local_lim.h bits/mman.h bits/msq.h bits/pthreadtypes.h bits/pthreadtypes-arch.h bits/sem.h bits/semaphore.h bits/setjmp.h
oe_multilib_header bits/shm.h bits/sigstack.h bits/stat.h bits/statfs.h bits/typesizes.h
oe_multilib_header bits/procfs-id.h bits/procfs.h bits/shmlba.h
@@ -192,7 +192,6 @@ do_stash_locale () {
fi
cp -fpPR ${D}${datadir}/* $dest${datadir}
- rm -rf ${D}${datadir}/locale/
cp -fpPR ${WORKDIR}/SUPPORTED $dest
target=$dest/scripts
diff --git a/meta/recipes-core/glibc/glibc-scripts_2.31.bb b/meta/recipes-core/glibc/glibc-scripts_2.32.bb
index 5a89bd8022..5a89bd8022 100644
--- a/meta/recipes-core/glibc/glibc-scripts_2.31.bb
+++ b/meta/recipes-core/glibc/glibc-scripts_2.32.bb
diff --git a/meta/recipes-core/glibc/glibc-testsuite_2.31.bb b/meta/recipes-core/glibc/glibc-testsuite_2.32.bb
index d887aeff79..d887aeff79 100644
--- a/meta/recipes-core/glibc/glibc-testsuite_2.31.bb
+++ b/meta/recipes-core/glibc/glibc-testsuite_2.32.bb
diff --git a/meta/recipes-core/glibc/glibc-version.inc b/meta/recipes-core/glibc/glibc-version.inc
index f489650f70..1566056297 100644
--- a/meta/recipes-core/glibc/glibc-version.inc
+++ b/meta/recipes-core/glibc/glibc-version.inc
@@ -1,7 +1,7 @@
-SRCBRANCH ?= "release/2.31/master"
-PV = "2.31"
-SRCREV_glibc ?= "9ea3686266dca3f004ba874745a4087a89682617"
-SRCREV_localedef ?= "cd9f958c4c94a638fa7b2b4e21627364f1a1a655"
+SRCBRANCH ?= "release/2.32/master"
+PV = "2.32"
+SRCREV_glibc ?= "3de512be7ea6053255afed6154db9ee31d4e557a"
+SRCREV_localedef ?= "bd644c9e6f3e20c5504da1488448173c69c56c28"
GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git"
diff --git a/meta/recipes-core/glibc/glibc.inc b/meta/recipes-core/glibc/glibc.inc
index 58d2ba7bc4..d2f02ad59b 100644
--- a/meta/recipes-core/glibc/glibc.inc
+++ b/meta/recipes-core/glibc/glibc.inc
@@ -5,12 +5,15 @@ DEPENDS = "virtual/${TARGET_PREFIX}gcc libgcc-initial linux-libc-headers"
PROVIDES = "virtual/libc"
PROVIDES += "virtual/libintl virtual/libiconv"
-inherit autotools texinfo features_check systemd
+inherit autotools texinfo systemd
LEAD_SONAME = "libc.so"
+# msgfmt could come from gettext-native but we don't depend on that and
+# disable for reproducibility
CACHED_CONFIGUREVARS += " \
ac_cv_path_BASH_SHELL=${base_bindir}/bash \
+ ac_cv_prog_MSGFMT= \
libc_cv_slibdir=${base_libdir} \
libc_cv_rootsbindir=${base_sbindir} \
libc_cv_localedir=${localedir} \
diff --git a/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-from-util-linux.patch b/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-from-util-linux.patch
index d0786be8b8..e0ec1887dc 100644
--- a/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-from-util-linux.patch
+++ b/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-from-util-linux.patch
@@ -1,7 +1,7 @@
-From 3dcf144e998aed17b3fb957a255b1e923ba07d71 Mon Sep 17 00:00:00 2001
+From 5db90855621a81d02f1434d5602cefea8c45de1c Mon Sep 17 00:00:00 2001
From: Jason Wessel <jason.wessel@windriver.com>
Date: Sat, 7 Dec 2019 09:59:22 -0800
-Subject: [PATCH] localedef: Add hardlink resolver from util-linux
+Subject: [PATCH 01/29] localedef: Add hardlink resolver from util-linux
The hard link resolver that is built into localedef cannot be run in
parallel. It will search sibling directories (which are be processed
@@ -1128,3 +1128,6 @@ index 0000000000..0129a85e2e
+}
+
+#endif
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-to-build.patch b/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-to-build.patch
deleted file mode 100644
index d6652981a8..0000000000
--- a/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-to-build.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 56ae260ac24ade94e2e0e77c81751312372d253f Mon Sep 17 00:00:00 2001
-From: Jason Wessel <jason.wessel@windriver.com>
-Date: Sat, 7 Dec 2019 09:56:23 -0800
-Subject: [PATCH] localedef: Add hardlink resolver to build
-
-The sourcecode for this is imported from util-linux and is kept with
-glibc sources
-
-Upstream-Status: Pending
-Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Makefile.in | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index 77fbded..a87e5b2 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -40,6 +40,8 @@ WARNFLAGS = -Wall -Wno-format
- FULLCC = $(CC) $(CPPFLAGS) $(CFLAGS) \
- $(DEFINES) $(INCLUDES) $(WARNFLAGS)
-
-+CROSS_LOCALEDEF_HARDLINK_OBJS = cross-localedef-hardlink.o
-+
- LOCALEDEF_OBJS = charmap.o charmap-dir.o ld-address.o ld-collate.o \
- ld-ctype.o ld-identification.o ld-measurement.o \
- ld-messages.o ld-monetary.o ld-name.o ld-numeric.o \
-@@ -54,11 +56,14 @@ LOCALEDEF_OBJS = charmap.o charmap-dir.o ld-address.o ld-collate.o \
- asprintf.o getdelim.o localedef_extra.o \
- obstack_printf.o vasprintf.o
-
--all: localedef$(EXEEXT)
-+all: localedef$(EXEEXT) cross-localedef-hardlink$(EXEEXT)
-
- localedef$(EXEEXT): $(LOCALEDEF_OBJS)
- $(CC) -o $@ $(LOCALEDEF_OBJS) $(LIBS)
-
-+cross-localedef-hardlink$(EXEEXT): $(CROSS_LOCALEDEF_HARDLINK_OBJS)
-+ $(CC) -o $@ $(CROSS_LOCALEDEF_HARDLINK_OBJS) $(LIBS)
-+
- clean:
- rm -f locale$(EXEEXT) $(LOCALEDEF_OBJS)
-
-@@ -77,6 +82,7 @@ clean:
- %.o: $(srcdir)/%.c
- $(FULLCC) -c -o $@ $<
-
-+cross-localedef-hardlink.o: glibc/locale/programs/cross-localedef-hardlink.c
- charmap.o: glibc/locale/programs/charmap.c
- charmap-dir.o: glibc/locale/programs/charmap-dir.c
- ld-address.o: glibc/locale/programs/ld-address.c
diff --git a/meta/recipes-core/glibc/glibc/0002-localedef-fix-ups-hardlink-to-make-it-compile.patch b/meta/recipes-core/glibc/glibc/0002-localedef-fix-ups-hardlink-to-make-it-compile.patch
index 5222e37d1a..05b76803b4 100644
--- a/meta/recipes-core/glibc/glibc/0002-localedef-fix-ups-hardlink-to-make-it-compile.patch
+++ b/meta/recipes-core/glibc/glibc/0002-localedef-fix-ups-hardlink-to-make-it-compile.patch
@@ -1,7 +1,7 @@
-From b52dba15527380cc18635e3696e0ef87efee9a84 Mon Sep 17 00:00:00 2001
+From ab022ce3c1c01fd6c850f541a33efd0cacabe052 Mon Sep 17 00:00:00 2001
From: Jason Wessel <jason.wessel@windriver.com>
Date: Sat, 7 Dec 2019 10:01:37 -0800
-Subject: [PATCH] localedef: fix-ups hardlink to make it compile
+Subject: [PATCH 02/29] localedef: fix-ups hardlink to make it compile
Upstream-Status: Pending
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
@@ -236,3 +236,6 @@ index 63615896b0..726e6dd948 100644
}
continue;
}
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch b/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch
index 4cdc8354b6..743994f2db 100644
--- a/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch
+++ b/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch
@@ -1,7 +1,8 @@
-From 6987ad183770cb56680ccc4f6ea065a04f31ccb6 Mon Sep 17 00:00:00 2001
+From de4322ef6d4dc9fc3ee9b69af1c10edbc64a66a3 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 01:48:24 +0000
-Subject: [PATCH] nativesdk-glibc: Look for host system ld.so.cache as well
+Subject: [PATCH 03/29] nativesdk-glibc: Look for host system ld.so.cache as
+ well
Upstream-Status: Inappropriate [embedded specific]
@@ -30,10 +31,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/elf/dl-load.c b/elf/dl-load.c
-index a6b80f9395..3226f2e531 100644
+index e39980fb19..565b039b23 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
-@@ -2073,6 +2073,14 @@ _dl_map_object (struct link_map *loader, const char *name,
+@@ -2160,6 +2160,14 @@ _dl_map_object (struct link_map *loader, const char *name,
}
}
@@ -48,7 +49,7 @@ index a6b80f9395..3226f2e531 100644
#ifdef USE_LDCONFIG
if (fd == -1
&& (__glibc_likely ((mode & __RTLD_SECURE) == 0)
-@@ -2131,14 +2139,6 @@ _dl_map_object (struct link_map *loader, const char *name,
+@@ -2218,14 +2226,6 @@ _dl_map_object (struct link_map *loader, const char *name,
}
#endif
@@ -63,3 +64,6 @@ index a6b80f9395..3226f2e531 100644
/* Add another newline when we are tracing the library loading. */
if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_LIBS))
_dl_debug_printf ("\n");
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch b/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch
index 62e12897f5..a3b5b7750c 100644
--- a/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch
+++ b/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch
@@ -1,7 +1,8 @@
-From 7806340c2accc2c51e7e861b618c29fb5609a007 Mon Sep 17 00:00:00 2001
+From 258c44e4ecffd830cb89d0016d45b2bac765f559 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 01:50:00 +0000
-Subject: [PATCH] nativesdk-glibc: Fix buffer overrun with a relocated SDK
+Subject: [PATCH 04/29] nativesdk-glibc: Fix buffer overrun with a relocated
+ SDK
When ld-linux-*.so.2 is relocated to a path that is longer than the
original fixed location, the dynamic loader will crash in open_path
@@ -21,10 +22,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 12 insertions(+)
diff --git a/elf/dl-load.c b/elf/dl-load.c
-index 3226f2e531..7cb8a86fab 100644
+index 565b039b23..e1b3486549 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
-@@ -1773,7 +1773,19 @@ open_path (const char *name, size_t namelen, int mode,
+@@ -1860,7 +1860,19 @@ open_path (const char *name, size_t namelen, int mode,
given on the command line when rtld is run directly. */
return -1;
@@ -44,3 +45,6 @@ index 3226f2e531..7cb8a86fab 100644
do
{
struct r_search_path_elem *this_dir = *dirs;
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch b/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch
index 294c2b975e..2073576aac 100644
--- a/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch
+++ b/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch
@@ -1,7 +1,8 @@
-From 1b97befbe693eb93a77b6098f6ae1394a53462f4 Mon Sep 17 00:00:00 2001
+From 19cd858f5f04a6ac584fbd89a2fbc51791263b85 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 01:51:38 +0000
-Subject: [PATCH] nativesdk-glibc: Raise the size of arrays containing dl paths
+Subject: [PATCH 05/29] nativesdk-glibc: Raise the size of arrays containing dl
+ paths
This patch puts the dynamic loader path in the binaries, SYSTEM_DIRS strings
and lengths as well as ld.so.cache path in the dynamic loader to specific
@@ -25,7 +26,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
7 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/elf/dl-cache.c b/elf/dl-cache.c
-index 3eedd9afcf..efdfe5cae7 100644
+index 93d185e788..e115b18756 100644
--- a/elf/dl-cache.c
+++ b/elf/dl-cache.c
@@ -133,6 +133,10 @@ do \
@@ -40,10 +41,10 @@ index 3eedd9afcf..efdfe5cae7 100644
_dl_cache_libcmp (const char *p1, const char *p2)
{
diff --git a/elf/dl-load.c b/elf/dl-load.c
-index 7cb8a86fab..e32d4aa936 100644
+index e1b3486549..5226d0c4fa 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
-@@ -110,8 +110,8 @@ static size_t max_capstrlen attribute_relro;
+@@ -111,8 +111,8 @@ static size_t max_capstrlen attribute_relro;
gen-trusted-dirs.awk. */
#include "trusted-dirs.h"
@@ -66,10 +67,10 @@ index 331cc1df48..885b2d9476 100644
+const char __invoke_dynamic_linker__[4096] __attribute__ ((section (".interp")))
= RUNTIME_LINKER;
diff --git a/elf/ldconfig.c b/elf/ldconfig.c
-index 681ed78496..8833ed0a6b 100644
+index 0c090dca15..6bb6e0fe72 100644
--- a/elf/ldconfig.c
+++ b/elf/ldconfig.c
-@@ -168,6 +168,9 @@ static struct argp argp =
+@@ -171,6 +171,9 @@ static struct argp argp =
options, parse_opt, NULL, doc, NULL, more_help, NULL
};
@@ -80,18 +81,18 @@ index 681ed78496..8833ed0a6b 100644
a platform. */
static int
diff --git a/elf/rtld.c b/elf/rtld.c
-index 553cfbd1b7..39347c2c03 100644
+index 5b882163fa..db407b5d8b 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
-@@ -175,6 +175,7 @@ dso_name_valid_for_suid (const char *p)
+@@ -217,6 +217,7 @@ dso_name_valid_for_suid (const char *p)
}
return *p != '\0';
}
+extern const char LD_SO_CACHE[4096] __attribute__ ((section (".ldsocache")));
- /* LD_AUDIT variable contents. Must be processed before the
- audit_list below. */
-@@ -1222,13 +1223,13 @@ of this helper program; chances are you did not intend to run this program.\n\
+ static void
+ audit_list_init (struct audit_list *list)
+@@ -1286,13 +1287,13 @@ of this helper program; chances are you did not intend to run this program.\n\
--list list all dependencies and how they are resolved\n\
--verify verify that given object really is a dynamically linked\n\
object we can handle\n\
@@ -135,3 +136,6 @@ index 6b310e9e15..3877311df4 100644
#ifndef add_system_dir
# define add_system_dir(dir) add_dir (dir)
#endif
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0006-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch b/meta/recipes-core/glibc/glibc/0006-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch
index db8b6c0f1c..372dca727e 100644
--- a/meta/recipes-core/glibc/glibc/0006-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch
+++ b/meta/recipes-core/glibc/glibc/0006-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch
@@ -1,7 +1,7 @@
-From a752857cc342ee5136c9a593037b6ee6ff8af8ee Mon Sep 17 00:00:00 2001
+From bd0486cab67c3441210aed48caab67418610a765 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 31 Dec 2015 14:35:35 -0800
-Subject: [PATCH] nativesdk-glibc: Allow 64 bit atomics for x86
+Subject: [PATCH 06/29] nativesdk-glibc: Allow 64 bit atomics for x86
The fix consist of allowing 64bit atomic ops for x86.
This should be safe for i586 and newer CPUs.
@@ -37,3 +37,6 @@ index bb49648374..aa08d3c0a7 100644
# define SP_REG "esp"
# define SEG_REG "gs"
# define BR_CONSTRAINT "r"
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch b/meta/recipes-core/glibc/glibc/0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch
index d9985c2fdc..729ce1b42d 100644
--- a/meta/recipes-core/glibc/glibc/0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch
+++ b/meta/recipes-core/glibc/glibc/0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch
@@ -1,7 +1,7 @@
-From 3df91d1d8b9c7a01b3ef8133c4f9b9764227d583 Mon Sep 17 00:00:00 2001
+From 9a8bf11ea375a2fe5eddb30bc10943e64d3b96a4 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 3 Aug 2018 09:55:12 -0700
-Subject: [PATCH] nativesdk-glibc: Make relocatable install for locales
+Subject: [PATCH 07/29] nativesdk-glibc: Make relocatable install for locales
The glibc locale path is hard-coded to the install prefix, but in SDKs we need
to be able to relocate the binaries. Expand the strings to 4K and put them in a
@@ -12,10 +12,11 @@ Upstream-Status: Inappropriate (OE-specific)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
- locale/findlocale.c | 4 ++--
- locale/loadarchive.c | 2 +-
- locale/localeinfo.h | 2 +-
- 3 files changed, 4 insertions(+), 4 deletions(-)
+ locale/findlocale.c | 4 ++--
+ locale/loadarchive.c | 2 +-
+ locale/localeinfo.h | 2 +-
+ locale/programs/locale.c | 7 ++++---
+ 4 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/locale/findlocale.c b/locale/findlocale.c
index 9cd3b71a6d..84272310e0 100644
@@ -65,3 +66,38 @@ index 1bfe22aa7f..fdc283c69a 100644
/* Load the locale data for CATEGORY from the file specified by *NAME.
If *NAME is "", use environment variables as specified by POSIX, and
+diff --git a/locale/programs/locale.c b/locale/programs/locale.c
+index e2e309c2a1..61a92cdcd1 100644
+--- a/locale/programs/locale.c
++++ b/locale/programs/locale.c
+@@ -632,6 +632,7 @@ nameentcmp (const void *a, const void *b)
+ ((const struct nameent *) b)->name);
+ }
+
++static char _write_archive_locales_path[4096] attribute_hidden __attribute__ ((section (".gccrelocprefix"))) = ARCHIVE_NAME;
+
+ static int
+ write_archive_locales (void **all_datap, char *linebuf)
+@@ -645,7 +646,7 @@ write_archive_locales (void **all_datap, char *linebuf)
+ int fd, ret = 0;
+ uint32_t cnt;
+
+- fd = open64 (ARCHIVE_NAME, O_RDONLY);
++ fd = open64 (_write_archive_locales_path, O_RDONLY);
+ if (fd < 0)
+ return 0;
+
+@@ -700,8 +701,8 @@ write_archive_locales (void **all_datap, char *linebuf)
+ if (cnt)
+ putchar_unlocked ('\n');
+
+- printf ("locale: %-15.15s archive: " ARCHIVE_NAME "\n%s\n",
+- names[cnt].name, linebuf);
++ printf ("locale: %-15.15s archive: %s\n%s\n",
++ names[cnt].name, _write_archive_locales_path, linebuf);
+
+ locrec = (struct locrecent *) (addr + names[cnt].locrec_offset);
+
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0008-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch b/meta/recipes-core/glibc/glibc/0008-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch
index 3dac325380..5e3b3e2d7b 100644
--- a/meta/recipes-core/glibc/glibc/0008-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch
+++ b/meta/recipes-core/glibc/glibc/0008-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch
@@ -1,7 +1,7 @@
-From 61b6c9737897c5828ef4b40699ee0a74c570034a Mon Sep 17 00:00:00 2001
+From 59b0a78ae706a540dbd8905bc97c875220d6aeb2 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:01:50 +0000
-Subject: [PATCH] fsl e500/e5500/e6500/603e fsqrt implementation
+Subject: [PATCH 08/29] fsl e500/e5500/e6500/603e fsqrt implementation
Upstream-Status: Pending
Signed-off-by: Edmar Wienskoski <edmar@freescale.com>
@@ -1579,3 +1579,6 @@ index 0000000000..04ff8cc181
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies
@@ -0,0 +1 @@
+powerpc/powerpc64/e6500/fpu
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0010-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch b/meta/recipes-core/glibc/glibc/0009-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch
index 01446abc43..a94ed207f5 100644
--- a/meta/recipes-core/glibc/glibc/0010-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch
+++ b/meta/recipes-core/glibc/glibc/0009-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch
@@ -1,7 +1,7 @@
-From 4483a83074a340a921e319b88d72166f18e0df0b Mon Sep 17 00:00:00 2001
+From 78f67f016ca9e3f7a37af86cf6e400cf17cf1d05 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:15:07 +0000
-Subject: [PATCH] ppc/sqrt: Fix undefined reference to `__sqrt_finite'
+Subject: [PATCH 09/29] ppc/sqrt: Fix undefined reference to `__sqrt_finite'
on ppc fixes the errors like below
| ./.libs/libpulsecore-1.1.so: undefined reference to `__sqrt_finite'
@@ -203,3 +203,6 @@ index 26fa067abf..9d175122a8 100644
return f_washf (b);
}
+strong_alias (__ieee754_sqrtf, __sqrtf_finite)
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch b/meta/recipes-core/glibc/glibc/0010-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch
index 451f372650..743bea1433 100644
--- a/meta/recipes-core/glibc/glibc/0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch
+++ b/meta/recipes-core/glibc/glibc/0010-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch
@@ -1,8 +1,8 @@
-From 347b2e31d010b04c42e78157a028aa1d58fe0f5e Mon Sep 17 00:00:00 2001
+From 670b5d70ab62b42ab02a8e18b8fcee2879b8c4a0 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:16:38 +0000
-Subject: [PATCH] __ieee754_sqrt{,f} are now inline functions and call out
- __slow versions
+Subject: [PATCH 10/29] __ieee754_sqrt{,f} are now inline functions and call
+ out __slow versions
Upstream-Status: Pending
@@ -382,3 +382,6 @@ index 9d175122a8..10de1f0cc3 100644
+}
+
strong_alias (__ieee754_sqrtf, __sqrtf_finite)
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0012-Quote-from-bug-1443-which-explains-what-the-patch-do.patch b/meta/recipes-core/glibc/glibc/0011-Quote-from-bug-1443-which-explains-what-the-patch-do.patch
index a0b46c0479..a9280b7c34 100644
--- a/meta/recipes-core/glibc/glibc/0012-Quote-from-bug-1443-which-explains-what-the-patch-do.patch
+++ b/meta/recipes-core/glibc/glibc/0011-Quote-from-bug-1443-which-explains-what-the-patch-do.patch
@@ -1,7 +1,8 @@
-From 8ca8e5cd78cbd37a713e1181f8f6641b57352aa8 Mon Sep 17 00:00:00 2001
+From de7a7c04a92dbc5d35cb37e47c471e12784cc95e Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:20:09 +0000
-Subject: [PATCH] Quote from bug 1443 which explains what the patch does :
+Subject: [PATCH 11/29] Quote from bug 1443 which explains what the patch does
+ :
We build some random program and link it with -lust. When we run it,
it dies with a SIGSEGV before reaching main().
@@ -56,3 +57,6 @@ index 90856779b1..a29bb86c56 100644
break;
case R_ARM_TLS_TPOFF32:
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0013-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch b/meta/recipes-core/glibc/glibc/0012-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch
index 736de8cf04..ab07455ade 100644
--- a/meta/recipes-core/glibc/glibc/0013-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch
+++ b/meta/recipes-core/glibc/glibc/0012-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch
@@ -1,7 +1,7 @@
-From 21509735678990760d5ebf9d0c65efa4b52b838d Mon Sep 17 00:00:00 2001
+From c8807899367e64d803585e7dd4b56a1085d5893b Mon Sep 17 00:00:00 2001
From: Ting Liu <b28495@freescale.com>
Date: Wed, 19 Dec 2012 04:39:57 -0600
-Subject: [PATCH] eglibc: run libm-err-tab.pl with specific dirs in ${S}
+Subject: [PATCH 12/29] eglibc: run libm-err-tab.pl with specific dirs in ${S}
libm-err-tab.pl will parse all the files named "libm-test-ulps"
in the given dir recursively. To avoid parsing the one in
@@ -31,3 +31,6 @@ index c61e11dcd7..5d859e6f84 100644
$(move-if-change) $(objpfx)libm-err-tmp $(objpfx)libm-err.texi
touch $@
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0014-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch b/meta/recipes-core/glibc/glibc/0013-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch
index e73b640c16..d875825ff9 100644
--- a/meta/recipes-core/glibc/glibc/0014-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch
+++ b/meta/recipes-core/glibc/glibc/0013-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch
@@ -1,8 +1,8 @@
-From e33deb119734ef443ef44c42a00a569f90e1e149 Mon Sep 17 00:00:00 2001
+From 86fea3409b89f9d8884053a519282f2f30d7ea87 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:24:46 +0000
-Subject: [PATCH] __ieee754_sqrt{,f} are now inline functions and call out
- __slow versions
+Subject: [PATCH 13/29] __ieee754_sqrt{,f} are now inline functions and call
+ out __slow versions
Upstream-Status: Pending
@@ -56,3 +56,6 @@ index 812653558f..10de1f0cc3 100644
float b;
#endif
{
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0015-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch b/meta/recipes-core/glibc/glibc/0014-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch
index 0cdd0567df..954534bae2 100644
--- a/meta/recipes-core/glibc/glibc/0015-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch
+++ b/meta/recipes-core/glibc/glibc/0014-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch
@@ -1,7 +1,7 @@
-From c50cae36e90c41849301a9a668adf31e81e43a07 Mon Sep 17 00:00:00 2001
+From a3c4f67fb3cb02855073a9cdbcf2881fb53144f0 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:27:10 +0000
-Subject: [PATCH] sysdeps/gnu/configure.ac: handle correctly
+Subject: [PATCH 14/29] sysdeps/gnu/configure.ac: handle correctly
$libc_cv_rootsbindir
Upstream-Status:Pending
@@ -37,3 +37,6 @@ index 634fe4de2a..3db1697f4f 100644
+ test -n "$libc_cv_rootsbindir" || libc_cv_rootsbindir=/sbin
;;
esac
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0017-yes-within-the-path-sets-wrong-config-variables.patch b/meta/recipes-core/glibc/glibc/0015-yes-within-the-path-sets-wrong-config-variables.patch
index 49089af41e..04a9bf01c4 100644
--- a/meta/recipes-core/glibc/glibc/0017-yes-within-the-path-sets-wrong-config-variables.patch
+++ b/meta/recipes-core/glibc/glibc/0015-yes-within-the-path-sets-wrong-config-variables.patch
@@ -1,7 +1,7 @@
-From c421cd7e885497a99179b982dc4a27e8405f8857 Mon Sep 17 00:00:00 2001
+From 17a602b89cbe53a5a92d0153ccb013a737f028cb Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:31:06 +0000
-Subject: [PATCH] 'yes' within the path sets wrong config variables
+Subject: [PATCH 15/29] 'yes' within the path sets wrong config variables
It seems that the 'AC_EGREP_CPP(yes...' example is quite popular
but being such a short word to grep it is likely to produce
@@ -29,7 +29,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
12 files changed, 28 insertions(+), 28 deletions(-)
diff --git a/sysdeps/aarch64/configure b/sysdeps/aarch64/configure
-index 5bd355a691..3bc5537bc0 100644
+index ac3cf6fd36..32add94df9 100644
--- a/sysdeps/aarch64/configure
+++ b/sysdeps/aarch64/configure
@@ -148,12 +148,12 @@ else
@@ -48,7 +48,7 @@ index 5bd355a691..3bc5537bc0 100644
else
libc_cv_aarch64_be=no
diff --git a/sysdeps/aarch64/configure.ac b/sysdeps/aarch64/configure.ac
-index 7851dd4dac..6e9238171f 100644
+index 8b042d6d05..3cdd262951 100644
--- a/sysdeps/aarch64/configure.ac
+++ b/sysdeps/aarch64/configure.ac
@@ -10,8 +10,8 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
@@ -258,3 +258,6 @@ index f9cba6e15d..b21f72f1e4 100644
#endif
], libc_cv_ppc64_def_call_elf=yes, libc_cv_ppc64_def_call_elf=no)])
if test $libc_cv_ppc64_def_call_elf = no; then
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0016-Add-unused-attribute.patch b/meta/recipes-core/glibc/glibc/0016-Add-unused-attribute.patch
deleted file mode 100644
index 574e7c3503..0000000000
--- a/meta/recipes-core/glibc/glibc/0016-Add-unused-attribute.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From c323125744020a29f79e50dc4d024b55c482eafc Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 18 Mar 2015 00:28:41 +0000
-Subject: [PATCH] Add unused attribute
-
-Helps in avoiding gcc warning when header is is included in
-a source file which does not use both functions
-
- * iconv/gconv_charset.h (strip):
- Add unused attribute.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
----
- iconv/gconv_charset.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/iconv/gconv_charset.h b/iconv/gconv_charset.h
-index 348acc089b..fa92465d89 100644
---- a/iconv/gconv_charset.h
-+++ b/iconv/gconv_charset.h
-@@ -21,7 +21,7 @@
- #include <locale.h>
-
-
--static void
-+static void __attribute__ ((unused))
- strip (char *wp, const char *s)
- {
- int slash_count = 0;
diff --git a/meta/recipes-core/glibc/glibc/0018-timezone-re-written-tzselect-as-posix-sh.patch b/meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch
index 20b0ee98ea..cd072018e5 100644
--- a/meta/recipes-core/glibc/glibc/0018-timezone-re-written-tzselect-as-posix-sh.patch
+++ b/meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch
@@ -1,7 +1,7 @@
-From 2023d88c355b8af6458c8e39ce38b75c1ca4ea2a Mon Sep 17 00:00:00 2001
+From 4762386b599f5c3287310a69ad3555e0129e0c51 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:33:03 +0000
-Subject: [PATCH] timezone: re-written tzselect as posix sh
+Subject: [PATCH 16/29] timezone: re-written tzselect as posix sh
To avoid the bash dependency.
@@ -40,3 +40,6 @@ index 18fce27e24..70745f9d36 100755
# Output one argument as-is to standard output.
# Safer than 'echo', which can mishandle '\' or leading '-'.
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0019-Remove-bash-dependency-for-nscd-init-script.patch b/meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch
index 1c15a51308..57907fe660 100644
--- a/meta/recipes-core/glibc/glibc/0019-Remove-bash-dependency-for-nscd-init-script.patch
+++ b/meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch
@@ -1,7 +1,7 @@
-From 06da20d9f89907e5f2777537244e6589ca3c9703 Mon Sep 17 00:00:00 2001
+From dac46c07736a799fc82be03aa546b2d24c19ad78 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 31 Dec 2015 14:33:02 -0800
-Subject: [PATCH] Remove bash dependency for nscd init script
+Subject: [PATCH 17/29] Remove bash dependency for nscd init script
The nscd init script uses #! /bin/bash but only really uses one bashism
(translated strings), so remove them and switch the shell to #!/bin/sh.
@@ -70,3 +70,6 @@ index a882da7d8b..b02986ec15 100644
RETVAL=1
;;
esac
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0020-eglibc-Cross-building-and-testing-instructions.patch b/meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch
index eda5565371..58d41ffe04 100644
--- a/meta/recipes-core/glibc/glibc/0020-eglibc-Cross-building-and-testing-instructions.patch
+++ b/meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch
@@ -1,7 +1,7 @@
-From 5641452a24f76c5dafa3749a542fcac93f77390f Mon Sep 17 00:00:00 2001
+From 0bd1dedf77194151397c53b12e0355c2edb8bccc Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:42:58 +0000
-Subject: [PATCH] eglibc: Cross building and testing instructions
+Subject: [PATCH 18/29] eglibc: Cross building and testing instructions
Ported from eglibc
Upstream-Status: Pending
@@ -614,3 +614,6 @@ index 0000000000..b67b468466
+- Some tests require access to libstdc++.so.6 and libgcc_s.so.1; we
+ simply place copies of these libraries in the top GLIBC build
+ directory.
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0021-eglibc-Help-bootstrap-cross-toolchain.patch b/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch
index 6374ea4086..f633079f34 100644
--- a/meta/recipes-core/glibc/glibc/0021-eglibc-Help-bootstrap-cross-toolchain.patch
+++ b/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch
@@ -1,7 +1,7 @@
-From 6a32d5bf40deee5d12d24c06f3ea9b5479c16802 Mon Sep 17 00:00:00 2001
+From 5591b7653411da26fa2939352e50ea4121b327e6 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:49:28 +0000
-Subject: [PATCH] eglibc: Help bootstrap cross toolchain
+Subject: [PATCH 19/29] eglibc: Help bootstrap cross toolchain
Taken from EGLIBC, r1484 + r1525
@@ -29,7 +29,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
create mode 100644 include/stubs-bootstrap.h
diff --git a/Makefile b/Makefile
-index 8f0a93aceb..8eba23a868 100644
+index 6dcfe40c25..bc37c32e5a 100644
--- a/Makefile
+++ b/Makefile
@@ -79,9 +79,18 @@ subdir-dirs = include
@@ -95,3 +95,6 @@ index 0000000000..1d2b669aff
+ difficult headers. The <gnu/stubs.h> header depends, via the
+ EGLIBC subdir 'stubs' make targets, on every .o file in EGLIBC, but
+ an empty stubs.h like this will do fine for GCC. */
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0022-eglibc-Resolve-__fpscr_values-on-SH4.patch b/meta/recipes-core/glibc/glibc/0020-eglibc-Resolve-__fpscr_values-on-SH4.patch
index 2a503c811e..bb21c54721 100644
--- a/meta/recipes-core/glibc/glibc/0022-eglibc-Resolve-__fpscr_values-on-SH4.patch
+++ b/meta/recipes-core/glibc/glibc/0020-eglibc-Resolve-__fpscr_values-on-SH4.patch
@@ -1,7 +1,7 @@
-From 25c21857a3fc0eb26831616ba88a696dd31ecba1 Mon Sep 17 00:00:00 2001
+From d3451c186f96c6b2434a4ac9304c01730bf22061 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:55:53 +0000
-Subject: [PATCH] eglibc: Resolve __fpscr_values on SH4
+Subject: [PATCH 20/29] eglibc: Resolve __fpscr_values on SH4
2010-09-29 Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Andrew Stubbs <ams@codesourcery.com>
@@ -51,3 +51,6 @@ index 85ff3f900e..7743b8d57a 100644
+ .long 0x80000
+weak_alias (___fpscr_values, __fpscr_values)
+
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0023-eglibc-Forward-port-cross-locale-generation-support.patch b/meta/recipes-core/glibc/glibc/0021-eglibc-Forward-port-cross-locale-generation-support.patch
index 1a90f22db6..7fe5db0c2a 100644
--- a/meta/recipes-core/glibc/glibc/0023-eglibc-Forward-port-cross-locale-generation-support.patch
+++ b/meta/recipes-core/glibc/glibc/0021-eglibc-Forward-port-cross-locale-generation-support.patch
@@ -1,7 +1,7 @@
-From 30008327aadf0c775e644bb387d7c25952ed05b5 Mon Sep 17 00:00:00 2001
+From e4b8abdc2d884d721fd89d67b689546f2f780924 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 01:33:49 +0000
-Subject: [PATCH] eglibc: Forward port cross locale generation support
+Subject: [PATCH 21/29] eglibc: Forward port cross locale generation support
Upstream-Status: Pending
@@ -23,7 +23,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
create mode 100644 locale/catnames.c
diff --git a/locale/Makefile b/locale/Makefile
-index c9694e236e..ba7105fad6 100644
+index 49c0c78c7d..ebfcf4f4da 100644
--- a/locale/Makefile
+++ b/locale/Makefile
@@ -26,7 +26,8 @@ headers = langinfo.h locale.h bits/locale.h \
@@ -34,8 +34,8 @@ index c9694e236e..ba7105fad6 100644
+ newlocale duplocale freelocale uselocale \
+ catnames
tests = tst-C-locale tst-locname tst-duplocale
+ tests-container = tst-localedef-path-norm
categories = ctype messages monetary numeric time paper name \
- address telephone measurement identification collate
diff --git a/locale/catnames.c b/locale/catnames.c
new file mode 100644
index 0000000000..538f3f5edb
@@ -361,7 +361,7 @@ index 7ebd933801..5753750756 100644
size_t bufmax = 56;
diff --git a/locale/programs/localedef.c b/locale/programs/localedef.c
-index dbbb0145c0..097a8b6193 100644
+index b048bd05b9..fed15c42ec 100644
--- a/locale/programs/localedef.c
+++ b/locale/programs/localedef.c
@@ -109,6 +109,7 @@ void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version;
@@ -381,7 +381,7 @@ index dbbb0145c0..097a8b6193 100644
{ NULL, 0, NULL, 0, NULL }
};
-@@ -242,12 +245,14 @@ main (int argc, char *argv[])
+@@ -243,12 +246,14 @@ main (int argc, char *argv[])
ctype locale. (P1003.2 4.35.5.2) */
setlocale (LC_CTYPE, "POSIX");
@@ -396,7 +396,7 @@ index dbbb0145c0..097a8b6193 100644
/* Process charmap file. */
charmap = charmap_read (charmap_file, verbose, 1, be_quiet, 1);
-@@ -399,6 +404,9 @@ parse_opt (int key, char *arg, struct argp_state *state)
+@@ -400,6 +405,9 @@ parse_opt (int key, char *arg, struct argp_state *state)
/* Do not hard link to other locales. */
hard_links = false;
break;
@@ -558,3 +558,6 @@ index 030f1727bd..096d8ed895 100644
#ifdef NL_CURRENT_INDIRECT
# define WEAK_POSTLOAD(postload) weak_extern (postload)
#else
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0024-Define-DUMMY_LOCALE_T-if-not-defined.patch b/meta/recipes-core/glibc/glibc/0022-Define-DUMMY_LOCALE_T-if-not-defined.patch
index 15e460eb08..0e93183087 100644
--- a/meta/recipes-core/glibc/glibc/0024-Define-DUMMY_LOCALE_T-if-not-defined.patch
+++ b/meta/recipes-core/glibc/glibc/0022-Define-DUMMY_LOCALE_T-if-not-defined.patch
@@ -1,7 +1,7 @@
-From 067f71a381ce6626ef1179be3dd90c4ed2aa52fb Mon Sep 17 00:00:00 2001
+From ad5bc87134871b99e082e2449b8c1ce2f1375ef9 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 20 Apr 2016 21:11:00 -0700
-Subject: [PATCH] Define DUMMY_LOCALE_T if not defined
+Subject: [PATCH 22/29] Define DUMMY_LOCALE_T if not defined
This is a hack to fix building the locale bits on an older
CentOs 5.X machine
@@ -27,3 +27,6 @@ index d76d9f7e8b..92b56d7df3 100644
/* Use the internal textdomain used for libc messages. */
#define PACKAGE _libc_intl_domainname
#ifndef VERSION
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0025-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch b/meta/recipes-core/glibc/glibc/0023-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch
index 543f65d6ea..7cbf6811a1 100644
--- a/meta/recipes-core/glibc/glibc/0025-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch
+++ b/meta/recipes-core/glibc/glibc/0023-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch
@@ -1,7 +1,8 @@
-From 8f4b0bac85d14b184e08848b02de3f30775f05b1 Mon Sep 17 00:00:00 2001
+From c5fd8a3d336b8288f631fb6b6dd85f9d1076f25b Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 3 Aug 2018 09:42:06 -0700
-Subject: [PATCH] localedef --add-to-archive uses a hard-coded locale path
+Subject: [PATCH 23/29] localedef --add-to-archive uses a hard-coded locale
+ path
it doesn't exist in normal use, and there's no way to pass an
alternative filename.
@@ -78,3 +79,6 @@ index dccaf04e3b..ae0b7fe155 100644
{
if (readonly)
{
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0026-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch b/meta/recipes-core/glibc/glibc/0024-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch
index 5f6ee40f22..02e73594a0 100644
--- a/meta/recipes-core/glibc/glibc/0026-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch
+++ b/meta/recipes-core/glibc/glibc/0024-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch
@@ -1,7 +1,7 @@
-From 1dad746ce93928a57b2fe618c74722f710751826 Mon Sep 17 00:00:00 2001
+From dffa52364f8c54c455b2459ebe83f05cb6ffc9fc Mon Sep 17 00:00:00 2001
From: Mark Hatle <mark.hatle@windriver.com>
Date: Thu, 18 Aug 2016 14:07:58 -0500
-Subject: [PATCH] elf/dl-deps.c: Make _dl_build_local_scope breadth first
+Subject: [PATCH 24/29] elf/dl-deps.c: Make _dl_build_local_scope breadth first
According to the ELF specification:
@@ -24,7 +24,7 @@ Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/elf/dl-deps.c b/elf/dl-deps.c
-index 5103a8a111..54cd80aaff 100644
+index b5a43232a7..8aa8f37fa3 100644
--- a/elf/dl-deps.c
+++ b/elf/dl-deps.c
@@ -73,13 +73,19 @@ _dl_build_local_scope (struct link_map **list, struct link_map *map)
@@ -51,3 +51,6 @@ index 5103a8a111..54cd80aaff 100644
return p - list;
}
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0027-intl-Emit-no-lines-in-bison-generated-files.patch b/meta/recipes-core/glibc/glibc/0025-intl-Emit-no-lines-in-bison-generated-files.patch
index 2c317d58aa..700fb28874 100644
--- a/meta/recipes-core/glibc/glibc/0027-intl-Emit-no-lines-in-bison-generated-files.patch
+++ b/meta/recipes-core/glibc/glibc/0025-intl-Emit-no-lines-in-bison-generated-files.patch
@@ -1,7 +1,7 @@
-From 3c8d9eae83ab4f1677afc9b379f97114e8503363 Mon Sep 17 00:00:00 2001
+From bc3380877bd2a1f9368a913fa6a2ca1ee88fd95f Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 3 Aug 2018 09:44:00 -0700
-Subject: [PATCH] intl: Emit no lines in bison generated files
+Subject: [PATCH 25/29] intl: Emit no lines in bison generated files
Improve reproducibility:
Do not put any #line preprocessor commands in bison generated files.
@@ -29,3 +29,6 @@ index ce3072420f..58457840d9 100644
$(inst_localedir)/locale.alias: locale.alias $(+force)
$(do-install)
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0028-inject-file-assembly-directives.patch b/meta/recipes-core/glibc/glibc/0026-inject-file-assembly-directives.patch
index e1a030d10c..89eef82e1b 100644
--- a/meta/recipes-core/glibc/glibc/0028-inject-file-assembly-directives.patch
+++ b/meta/recipes-core/glibc/glibc/0026-inject-file-assembly-directives.patch
@@ -1,7 +1,7 @@
-From 420454f7098b5445730caa855c37b8143bfccc1b Mon Sep 17 00:00:00 2001
+From cf043d56638883157dbfaa8c6a8e2f63a6f66280 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 29 Nov 2018 17:29:35 -0800
-Subject: [PATCH] inject file assembly directives
+Subject: [PATCH 26/29] inject file assembly directives
Currently, non-IA builds are not reproducibile since build paths are
being injected into the debug symbols. These are coming from the use of
@@ -25,13 +25,12 @@ Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
- csu/abi-note.S | 2 ++
+ csu/abi-note.c | 2 ++
sysdeps/aarch64/crti.S | 2 ++
- sysdeps/aarch64/crtn.S | 2 ++
+ sysdeps/aarch64/crtn.S | 1 +
sysdeps/aarch64/dl-tlsdesc.S | 2 ++
sysdeps/aarch64/dl-trampoline.S | 2 ++
sysdeps/aarch64/start.S | 2 ++
- sysdeps/arm/abi-note.S | 2 ++
sysdeps/arm/crti.S | 2 ++
sysdeps/arm/crtn.S | 2 ++
sysdeps/arm/dl-tlsdesc.S | 2 ++
@@ -45,23 +44,8 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S | 2 ++
sysdeps/unix/sysv/linux/arm/libc-do-syscall.S | 2 ++
sysdeps/unix/sysv/linux/powerpc/dl-brk.S | 2 ++
- 20 files changed, 40 insertions(+)
+ 19 files changed, 37 insertions(+)
-diff --git a/csu/abi-note.S b/csu/abi-note.S
-index 2b4b5f8824..964843016c 100644
---- a/csu/abi-note.S
-+++ b/csu/abi-note.S
-@@ -56,6 +56,8 @@ offset length contents
- #include <config.h>
- #include <abi-tag.h> /* OS-specific ABI tag value */
-
-+ .file "abi-note.S"
-+
- /* The linker (GNU ld 2.8 and later) recognizes an allocated section whose
- name begins with `.note' and creates a PT_NOTE program header entry
- pointing at it. */
-diff --git a/sysdeps/aarch64/crti.S b/sysdeps/aarch64/crti.S
-index 1728eac37a..76a8ab590b 100644
--- a/sysdeps/aarch64/crti.S
+++ b/sysdeps/aarch64/crti.S
@@ -50,6 +50,8 @@
@@ -73,21 +57,16 @@ index 1728eac37a..76a8ab590b 100644
#if PREINIT_FUNCTION_WEAK
weak_extern (PREINIT_FUNCTION)
#else
-diff --git a/sysdeps/aarch64/crtn.S b/sysdeps/aarch64/crtn.S
-index c3e97cc449..fc2e5c2df8 100644
--- a/sysdeps/aarch64/crtn.S
+++ b/sysdeps/aarch64/crtn.S
-@@ -37,6 +37,8 @@
- /* crtn.S puts function epilogues in the .init and .fini sections
+@@ -38,6 +38,7 @@
corresponding to the prologues in crti.S. */
+ #include <sysdep.h>
+ .file "crtn.S"
-+
+
.section .init,"ax",%progbits
ldp x29, x30, [sp], 16
- RET
-diff --git a/sysdeps/aarch64/dl-tlsdesc.S b/sysdeps/aarch64/dl-tlsdesc.S
-index 557ad1d505..194a8531da 100644
--- a/sysdeps/aarch64/dl-tlsdesc.S
+++ b/sysdeps/aarch64/dl-tlsdesc.S
@@ -22,6 +22,8 @@
@@ -99,8 +78,6 @@ index 557ad1d505..194a8531da 100644
#define NSAVEDQREGPAIRS 16
#define SAVE_Q_REGISTERS \
stp q0, q1, [sp, #-32*NSAVEDQREGPAIRS]!; \
-diff --git a/sysdeps/aarch64/dl-trampoline.S b/sysdeps/aarch64/dl-trampoline.S
-index 94e965c096..ba18742f3e 100644
--- a/sysdeps/aarch64/dl-trampoline.S
+++ b/sysdeps/aarch64/dl-trampoline.S
@@ -21,6 +21,8 @@
@@ -112,8 +89,6 @@ index 94e965c096..ba18742f3e 100644
#define ip0 x16
#define ip0l PTR_REG (16)
#define ip1 x17
-diff --git a/sysdeps/aarch64/start.S b/sysdeps/aarch64/start.S
-index d96cf57e2d..07a523978a 100644
--- a/sysdeps/aarch64/start.S
+++ b/sysdeps/aarch64/start.S
@@ -18,6 +18,8 @@
@@ -125,18 +100,6 @@ index d96cf57e2d..07a523978a 100644
/* This is the canonical entry point, usually the first thing in the text
segment.
-diff --git a/sysdeps/arm/abi-note.S b/sysdeps/arm/abi-note.S
-index 07bd4c4619..7213b16f27 100644
---- a/sysdeps/arm/abi-note.S
-+++ b/sysdeps/arm/abi-note.S
-@@ -1,3 +1,5 @@
-+ .file "abi-note.S"
-+
- /* Tag_ABI_align8_preserved: This code preserves 8-byte
- alignment in any callee. */
- .eabi_attribute 25, 1
-diff --git a/sysdeps/arm/crti.S b/sysdeps/arm/crti.S
-index 8169783267..f56e0c85a6 100644
--- a/sysdeps/arm/crti.S
+++ b/sysdeps/arm/crti.S
@@ -57,6 +57,8 @@
@@ -148,8 +111,6 @@ index 8169783267..f56e0c85a6 100644
#if PREINIT_FUNCTION_WEAK
.p2align 2
.type call_weak_fn, %function
-diff --git a/sysdeps/arm/crtn.S b/sysdeps/arm/crtn.S
-index d60f9f05de..1e10ec439f 100644
--- a/sysdeps/arm/crtn.S
+++ b/sysdeps/arm/crtn.S
@@ -37,6 +37,8 @@
@@ -161,8 +122,6 @@ index d60f9f05de..1e10ec439f 100644
/* crtn.S puts function epilogues in the .init and .fini sections
corresponding to the prologues in crti.S. */
-diff --git a/sysdeps/arm/dl-tlsdesc.S b/sysdeps/arm/dl-tlsdesc.S
-index 8415e47607..29c2cb8128 100644
--- a/sysdeps/arm/dl-tlsdesc.S
+++ b/sysdeps/arm/dl-tlsdesc.S
@@ -21,6 +21,8 @@
@@ -174,8 +133,6 @@ index 8415e47607..29c2cb8128 100644
.text
@ emit debug information with cfi
@ use arm-specific pseudos for unwinding itself
-diff --git a/sysdeps/arm/dl-trampoline.S b/sysdeps/arm/dl-trampoline.S
-index a20baf555e..2dd3bef04e 100644
--- a/sysdeps/arm/dl-trampoline.S
+++ b/sysdeps/arm/dl-trampoline.S
@@ -21,6 +21,8 @@
@@ -187,8 +144,6 @@ index a20baf555e..2dd3bef04e 100644
.text
.globl _dl_runtime_resolve
.type _dl_runtime_resolve, #function
-diff --git a/sysdeps/arm/start.S b/sysdeps/arm/start.S
-index 2ff56179d2..c118046ec6 100644
--- a/sysdeps/arm/start.S
+++ b/sysdeps/arm/start.S
@@ -57,6 +57,8 @@
@@ -200,8 +155,6 @@ index 2ff56179d2..c118046ec6 100644
/* Tag_ABI_align8_preserved: This code preserves 8-byte
alignment in any callee. */
.eabi_attribute 25, 1
-diff --git a/sysdeps/mips/start.S b/sysdeps/mips/start.S
-index fabc8080df..83c6b91d7d 100644
--- a/sysdeps/mips/start.S
+++ b/sysdeps/mips/start.S
@@ -38,6 +38,8 @@
@@ -213,8 +166,6 @@ index fabc8080df..83c6b91d7d 100644
#ifndef ENTRY_POINT
#error ENTRY_POINT needs to be defined for start.S on MIPS/ELF.
#endif
-diff --git a/sysdeps/powerpc/powerpc32/dl-start.S b/sysdeps/powerpc/powerpc32/dl-start.S
-index c15242d3bc..6ca27715a4 100644
--- a/sysdeps/powerpc/powerpc32/dl-start.S
+++ b/sysdeps/powerpc/powerpc32/dl-start.S
@@ -18,6 +18,8 @@
@@ -226,8 +177,6 @@ index c15242d3bc..6ca27715a4 100644
/* Initial entry point code for the dynamic linker.
The C function `_dl_start' is the real entry point;
its return value is the user program's entry point. */
-diff --git a/sysdeps/powerpc/powerpc32/start.S b/sysdeps/powerpc/powerpc32/start.S
-index b7b9a133a2..8df714f81a 100644
--- a/sysdeps/powerpc/powerpc32/start.S
+++ b/sysdeps/powerpc/powerpc32/start.S
@@ -35,6 +35,8 @@
@@ -239,8 +188,6 @@ index b7b9a133a2..8df714f81a 100644
/* We do not want .eh_frame info for crt1.o since crt1.o is linked
before crtbegin.o, the file defining __EH_FRAME_BEGIN__. */
#undef cfi_startproc
-diff --git a/sysdeps/powerpc/powerpc64/start.S b/sysdeps/powerpc/powerpc64/start.S
-index 94bf771e83..cffb99500a 100644
--- a/sysdeps/powerpc/powerpc64/start.S
+++ b/sysdeps/powerpc/powerpc64/start.S
@@ -35,6 +35,8 @@
@@ -252,8 +199,6 @@ index 94bf771e83..cffb99500a 100644
/* We do not want .eh_frame info for crt1.o since crt1.o is linked
before crtbegin.o, the file defining __EH_FRAME_BEGIN__. */
#undef cfi_startproc
-diff --git a/sysdeps/unix/sysv/linux/aarch64/__read_tp.S b/sysdeps/unix/sysv/linux/aarch64/__read_tp.S
-index 12e1131fe7..767e0d043b 100644
--- a/sysdeps/unix/sysv/linux/aarch64/__read_tp.S
+++ b/sysdeps/unix/sysv/linux/aarch64/__read_tp.S
@@ -18,6 +18,8 @@
@@ -265,8 +210,6 @@ index 12e1131fe7..767e0d043b 100644
.hidden __read_tp
ENTRY (__read_tp)
mrs x0, tpidr_el0
-diff --git a/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S b/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S
-index 3b0d611039..4a7e476c37 100644
--- a/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S
+++ b/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S
@@ -39,6 +39,8 @@
@@ -278,8 +221,6 @@ index 3b0d611039..4a7e476c37 100644
.hidden __aeabi_read_tp
ENTRY (__aeabi_read_tp)
#ifdef ARCH_HAS_HARD_TP
-diff --git a/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S b/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S
-index fb5e0c7d97..bd07bdb38b 100644
--- a/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S
+++ b/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S
@@ -27,6 +27,8 @@
@@ -291,8 +232,6 @@ index fb5e0c7d97..bd07bdb38b 100644
#if defined(__thumb__)
.thumb
.syntax unified
-diff --git a/sysdeps/unix/sysv/linux/powerpc/dl-brk.S b/sysdeps/unix/sysv/linux/powerpc/dl-brk.S
-index eeb96544e3..da182b28f8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/dl-brk.S
+++ b/sysdeps/unix/sysv/linux/powerpc/dl-brk.S
@@ -1 +1,3 @@
diff --git a/meta/recipes-core/glibc/glibc/0029-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch b/meta/recipes-core/glibc/glibc/0027-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch
index c8c359f2b8..d2c88d2354 100644
--- a/meta/recipes-core/glibc/glibc/0029-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch
+++ b/meta/recipes-core/glibc/glibc/0027-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch
@@ -1,7 +1,7 @@
-From 66963ad83bdd3b075006ddca9dfe357aed181d6a Mon Sep 17 00:00:00 2001
+From 10aef8f0671d814aaf910ababc0225cf6f0a46e8 Mon Sep 17 00:00:00 2001
From: Martin Jansa <martin.jansa@gmail.com>
Date: Mon, 17 Dec 2018 21:36:18 +0000
-Subject: [PATCH] locale: prevent maybe-uninitialized errors with -Os [BZ
+Subject: [PATCH 27/29] locale: prevent maybe-uninitialized errors with -Os [BZ
#19444]
Fixes following error when building for aarch64 with -Os:
@@ -51,3 +51,6 @@ index e071253f85..2889c395f1 100644
const unsigned char *cp;
const unsigned char *usrc;
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0009-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch b/meta/recipes-core/glibc/glibc/0028-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch
index 456f91fb8e..25c046f5cd 100644
--- a/meta/recipes-core/glibc/glibc/0009-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch
+++ b/meta/recipes-core/glibc/glibc/0028-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch
@@ -1,7 +1,8 @@
-From 13beb1f428ec06778590bf526d6e641f73d5cf62 Mon Sep 17 00:00:00 2001
+From 70731329feb7ba20364aa37aed83d920de97f028 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:11:22 +0000
-Subject: [PATCH] readlib: Add OECORE_KNOWN_INTERPRETER_NAMES to known names
+Subject: [PATCH 28/29] readlib: Add OECORE_KNOWN_INTERPRETER_NAMES to known
+ names
This bolts in a hook for OE to pass its own version of interpreter
names into glibc especially for multilib case, where it differs from any
@@ -27,3 +28,6 @@ index 994a4426a1..baabf099b1 100644
};
static struct known_names known_libs[] =
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0029-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch b/meta/recipes-core/glibc/glibc/0029-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch
new file mode 100644
index 0000000000..0ebf8a6183
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc/0029-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch
@@ -0,0 +1,70 @@
+From bf1c4b2f01c5f86bb770fd1711a69ea727e0f56e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 15 May 2020 17:05:45 -0700
+Subject: [PATCH 29/29] wordsize.h: Unify the header between arm and aarch64
+
+This helps OE multilibs to not sythesize this header which causes all
+kind of recursions and other issues since wordsize is fundamental header
+and ends up including itself in many case e.g. clang tidy, bpf etc.
+
+Upstream-Status: Inappropriate [ OE-Specific ]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ sysdeps/aarch64/bits/wordsize.h | 8 ++++++--
+ sysdeps/{aarch64 => arm}/bits/wordsize.h | 8 ++++++--
+ 2 files changed, 12 insertions(+), 4 deletions(-)
+ copy sysdeps/{aarch64 => arm}/bits/wordsize.h (85%)
+
+diff --git a/sysdeps/aarch64/bits/wordsize.h b/sysdeps/aarch64/bits/wordsize.h
+index ee01841773..34fcdef1f1 100644
+--- a/sysdeps/aarch64/bits/wordsize.h
++++ b/sysdeps/aarch64/bits/wordsize.h
+@@ -17,12 +17,16 @@
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+-#ifdef __LP64__
++#if defined (__aarch64__) && defined (__LP64__)
+ # define __WORDSIZE 64
+-#else
++#elif defined (__aarch64__)
+ # define __WORDSIZE 32
+ # define __WORDSIZE32_SIZE_ULONG 1
+ # define __WORDSIZE32_PTRDIFF_LONG 1
++#else
++# define __WORDSIZE 32
++# define __WORDSIZE32_SIZE_ULONG 0
++# define __WORDSIZE32_PTRDIFF_LONG 0
+ #endif
+
+ #define __WORDSIZE_TIME64_COMPAT32 0
+diff --git a/sysdeps/aarch64/bits/wordsize.h b/sysdeps/arm/bits/wordsize.h
+similarity index 85%
+copy from sysdeps/aarch64/bits/wordsize.h
+copy to sysdeps/arm/bits/wordsize.h
+index ee01841773..34fcdef1f1 100644
+--- a/sysdeps/aarch64/bits/wordsize.h
++++ b/sysdeps/arm/bits/wordsize.h
+@@ -17,12 +17,16 @@
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+-#ifdef __LP64__
++#if defined (__aarch64__) && defined (__LP64__)
+ # define __WORDSIZE 64
+-#else
++#elif defined (__aarch64__)
+ # define __WORDSIZE 32
+ # define __WORDSIZE32_SIZE_ULONG 1
+ # define __WORDSIZE32_PTRDIFF_LONG 1
++#else
++# define __WORDSIZE 32
++# define __WORDSIZE32_SIZE_ULONG 0
++# define __WORDSIZE32_PTRDIFF_LONG 0
+ #endif
+
+ #define __WORDSIZE_TIME64_COMPAT32 0
+--
+2.27.0
+
diff --git a/meta/recipes-core/glibc/glibc/0030-powerpc-Do-not-ask-compiler-for-finding-arch.patch b/meta/recipes-core/glibc/glibc/0030-powerpc-Do-not-ask-compiler-for-finding-arch.patch
new file mode 100644
index 0000000000..a764552361
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc/0030-powerpc-Do-not-ask-compiler-for-finding-arch.patch
@@ -0,0 +1,51 @@
+From 8b1d521290218df8ceeaf2e6ee44a54b19d8d328 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 7 Aug 2020 14:31:16 -0700
+Subject: [PATCH 30/30] powerpc: Do not ask compiler for finding arch
+
+This does not work well in cross compiling environments like OE
+and moreover it uses its own -mcpu/-march options via cflags
+
+Upstream-Status: Inappropriate [ OE-Specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ sysdeps/powerpc/preconfigure | 5 +----
+ sysdeps/powerpc/preconfigure.ac | 5 +----
+ 2 files changed, 2 insertions(+), 8 deletions(-)
+
+diff --git a/sysdeps/powerpc/preconfigure b/sysdeps/powerpc/preconfigure
+index dfe8e20399..bbff040f0f 100644
+--- a/sysdeps/powerpc/preconfigure
++++ b/sysdeps/powerpc/preconfigure
+@@ -29,10 +29,7 @@ esac
+ # directive which shows up, and try using it.
+ case "${machine}:${submachine}" in
+ *powerpc*:)
+- archcpu=`echo "int foo () { return 0; }" \
+- | $CC $CFLAGS $CPPFLAGS -S -frecord-gcc-switches -xc -o - - \
+- | grep -E "mcpu=|.machine" -m 1 \
+- | sed -e "s/.*machine //" -e "s/.*mcpu=\(.*\)\"/\1/"`
++ archcpu=''
+ # Note if you add patterns here you must ensure that an appropriate
+ # directory exists in sysdeps/powerpc. Likewise, if we find a
+ # cpu, don't let the generic configure append extra compiler options.
+diff --git a/sysdeps/powerpc/preconfigure.ac b/sysdeps/powerpc/preconfigure.ac
+index 6c63bd8257..3e925f1d48 100644
+--- a/sysdeps/powerpc/preconfigure.ac
++++ b/sysdeps/powerpc/preconfigure.ac
+@@ -29,10 +29,7 @@ esac
+ # directive which shows up, and try using it.
+ case "${machine}:${submachine}" in
+ *powerpc*:)
+- archcpu=`echo "int foo () { return 0; }" \
+- | $CC $CFLAGS $CPPFLAGS -S -frecord-gcc-switches -xc -o - - \
+- | grep -E "mcpu=|[.]machine" -m 1 \
+- | sed -e "s/.*machine //" -e "s/.*mcpu=\(.*\)\"/\1/"`
++ archcpu=''
+ # Note if you add patterns here you must ensure that an appropriate
+ # directory exists in sysdeps/powerpc. Likewise, if we find a
+ # cpu, don't let the generic configure append extra compiler options.
+--
+2.28.0
+
diff --git a/meta/recipes-core/glibc/glibc_2.31.bb b/meta/recipes-core/glibc/glibc_2.32.bb
index 2032311b27..2a0e464385 100644
--- a/meta/recipes-core/glibc/glibc_2.31.bb
+++ b/meta/recipes-core/glibc/glibc_2.32.bb
@@ -1,6 +1,8 @@
require glibc.inc
require glibc-version.inc
+CVE_CHECK_WHITELIST += "CVE-2020-10029"
+
DEPENDS += "gperf-native bison-native make-native"
NATIVESDKFIXES ?= ""
@@ -19,27 +21,28 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
\
${NATIVESDKFIXES} \
file://0008-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch \
- file://0009-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch \
- file://0010-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch \
- file://0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \
- file://0012-Quote-from-bug-1443-which-explains-what-the-patch-do.patch \
- file://0013-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch \
- file://0014-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \
- file://0015-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch \
- file://0016-Add-unused-attribute.patch \
- file://0017-yes-within-the-path-sets-wrong-config-variables.patch \
- file://0018-timezone-re-written-tzselect-as-posix-sh.patch \
- file://0019-Remove-bash-dependency-for-nscd-init-script.patch \
- file://0020-eglibc-Cross-building-and-testing-instructions.patch \
- file://0021-eglibc-Help-bootstrap-cross-toolchain.patch \
- file://0022-eglibc-Resolve-__fpscr_values-on-SH4.patch \
- file://0023-eglibc-Forward-port-cross-locale-generation-support.patch \
- file://0024-Define-DUMMY_LOCALE_T-if-not-defined.patch \
- file://0025-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \
- file://0026-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch \
- file://0027-intl-Emit-no-lines-in-bison-generated-files.patch \
- file://0028-inject-file-assembly-directives.patch \
- file://0029-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch \
+ file://0009-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch \
+ file://0010-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \
+ file://0011-Quote-from-bug-1443-which-explains-what-the-patch-do.patch \
+ file://0012-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch \
+ file://0013-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \
+ file://0014-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch \
+ file://0015-yes-within-the-path-sets-wrong-config-variables.patch \
+ file://0016-timezone-re-written-tzselect-as-posix-sh.patch \
+ file://0017-Remove-bash-dependency-for-nscd-init-script.patch \
+ file://0018-eglibc-Cross-building-and-testing-instructions.patch \
+ file://0019-eglibc-Help-bootstrap-cross-toolchain.patch \
+ file://0020-eglibc-Resolve-__fpscr_values-on-SH4.patch \
+ file://0021-eglibc-Forward-port-cross-locale-generation-support.patch \
+ file://0022-Define-DUMMY_LOCALE_T-if-not-defined.patch \
+ file://0023-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \
+ file://0024-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch \
+ file://0025-intl-Emit-no-lines-in-bison-generated-files.patch \
+ file://0026-inject-file-assembly-directives.patch \
+ file://0027-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch \
+ file://0028-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch \
+ file://0029-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch \
+ file://0030-powerpc-Do-not-ask-compiler-for-finding-arch.patch \
"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build-${TARGET_SYS}"
@@ -66,13 +69,15 @@ EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
--enable-stackguard-randomization \
--disable-crypt \
--with-default-link \
- --enable-nscd \
${@bb.utils.contains_any('SELECTED_OPTIMIZATION', '-O0 -Og', '--disable-werror', '', d)} \
${GLIBCPIE} \
${GLIBC_EXTRA_OECONF}"
EXTRA_OECONF += "${@get_libc_fpu_setting(bb, d)}"
+PACKAGECONFIG ??= "nscd"
+PACKAGECONFIG[nscd] = "--enable-nscd,--disable-nscd"
+
do_patch_append() {
bb.build.exec_func('do_fix_readlib_c', d)
}
diff --git a/meta/recipes-core/images/build-appliance-image_15.0.0.bb b/meta/recipes-core/images/build-appliance-image_15.0.0.bb
index 91329a731b..c2c42919fd 100644
--- a/meta/recipes-core/images/build-appliance-image_15.0.0.bb
+++ b/meta/recipes-core/images/build-appliance-image_15.0.0.bb
@@ -6,7 +6,7 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
IMAGE_INSTALL = "packagegroup-core-boot packagegroup-core-ssh-openssh packagegroup-self-hosted \
- kernel-dev kernel-devsrc connman connman-plugin-ethernet dhcp-client \
+ kernel-dev kernel-devsrc connman connman-plugin-ethernet dhcpcd \
tzdata python3-pip perl-misc"
IMAGE_FEATURES += "x11-base package-management splash"
@@ -24,7 +24,7 @@ IMAGE_FSTYPES = "wic.vmdk"
inherit core-image module-base setuptools3
-SRCREV ?= "39d45ef825694705daf6d7ab4ab3066b1b8e3aa2"
+SRCREV ?= "b7591c86c159e031763ec5906b879ce6b179342d"
SRC_URI = "git://git.yoctoproject.org/poky \
file://Yocto_Build_Appliance.vmx \
file://Yocto_Build_Appliance.vmxf \
diff --git a/meta/recipes-core/images/core-image-minimal-initramfs.bb b/meta/recipes-core/images/core-image-minimal-initramfs.bb
index 7df8ab1ebd..664fe7310e 100644
--- a/meta/recipes-core/images/core-image-minimal-initramfs.bb
+++ b/meta/recipes-core/images/core-image-minimal-initramfs.bb
@@ -17,6 +17,7 @@ PACKAGE_INSTALL = "${INITRAMFS_SCRIPTS} ${VIRTUAL-RUNTIME_base-utils} udev base-
IMAGE_FEATURES = ""
export IMAGE_BASENAME = "${MLPREFIX}core-image-minimal-initramfs"
+IMAGE_NAME_SUFFIX ?= ""
IMAGE_LINGUAS = ""
LICENSE = "MIT"
@@ -27,5 +28,5 @@ inherit core-image
IMAGE_ROOTFS_SIZE = "8192"
IMAGE_ROOTFS_EXTRA_SPACE = "0"
-# Use the same restriction as initramfs-live-install
-COMPATIBLE_HOST = "(i.86|x86_64).*-linux"
+# Use the same restriction as initramfs-module-install
+COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*)-(linux.*|freebsd.*)'
diff --git a/meta/recipes-core/images/core-image-minimal.bb b/meta/recipes-core/images/core-image-minimal.bb
index 4630026aa9..19f27f8395 100644
--- a/meta/recipes-core/images/core-image-minimal.bb
+++ b/meta/recipes-core/images/core-image-minimal.bb
@@ -9,4 +9,4 @@ LICENSE = "MIT"
inherit core-image
IMAGE_ROOTFS_SIZE ?= "8192"
-IMAGE_ROOTFS_EXTRA_SPACE_append = "${@bb.utils.contains("DISTRO_FEATURES", "systemd", " + 4096", "" ,d)}"
+IMAGE_ROOTFS_EXTRA_SPACE_append = "${@bb.utils.contains("DISTRO_FEATURES", "systemd", " + 4096", "", d)}"
diff --git a/meta/recipes-core/images/core-image-tiny-initramfs.bb b/meta/recipes-core/images/core-image-tiny-initramfs.bb
index 0eca6d9944..5849900742 100644
--- a/meta/recipes-core/images/core-image-tiny-initramfs.bb
+++ b/meta/recipes-core/images/core-image-tiny-initramfs.bb
@@ -13,6 +13,7 @@ PACKAGE_INSTALL = "initramfs-live-boot-tiny packagegroup-core-boot dropbear ${VI
IMAGE_FEATURES = ""
export IMAGE_BASENAME = "core-image-tiny-initramfs"
+IMAGE_NAME_SUFFIX ?= ""
IMAGE_LINGUAS = ""
LICENSE = "MIT"
diff --git a/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb b/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb
index 733ae41f20..b6fc8a4d41 100644
--- a/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb
+++ b/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb
@@ -34,7 +34,7 @@ do_install_append_qemuall () {
touch ${D}${sysconfdir}/network/nm-disabled-eth0
}
-PACKAGE_ARCH_qemuall = "${MACHINE_ARCH}"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
RDEPENDS_${PN} = "netbase"
RCONFLICTS_${PN} = "netbase (< 1:5.0)"
diff --git a/meta/recipes-core/initrdscripts/initramfs-framework/init b/meta/recipes-core/initrdscripts/initramfs-framework/init
index c71ce0ce8c..567694aff7 100755
--- a/meta/recipes-core/initrdscripts/initramfs-framework/init
+++ b/meta/recipes-core/initrdscripts/initramfs-framework/init
@@ -88,12 +88,25 @@ fi
# populate bootparam environment
for p in `cat /proc/cmdline`; do
+ if [ -n "$quoted" ]; then
+ value="$value $p"
+ if [ "`echo $p | sed -e 's/\"$//'`" != "$p" ]; then
+ eval "bootparam_${quoted}=${value}"
+ unset quoted
+ fi
+ continue
+ fi
+
opt=`echo $p | cut -d'=' -f1`
opt=`echo $opt | sed -e 'y/.-/__/'`
if [ "`echo $p | cut -d'=' -f1`" = "$p" ]; then
eval "bootparam_${opt}=true"
else
value="`echo $p | cut -d'=' -f2-`"
+ if [ "`echo $value | sed -e 's/^\"//'`" != "$value" ]; then
+ quoted=${opt}
+ continue
+ fi
eval "bootparam_${opt}=\"${value}\""
fi
done
diff --git a/meta/recipes-core/initrdscripts/initramfs-framework/rootfs b/meta/recipes-core/initrdscripts/initramfs-framework/rootfs
index 748c9391c0..ee24e82af3 100644
--- a/meta/recipes-core/initrdscripts/initramfs-framework/rootfs
+++ b/meta/recipes-core/initrdscripts/initramfs-framework/rootfs
@@ -13,7 +13,7 @@ rootfs_run() {
C=0
delay=${bootparam_rootdelay:-1}
timeout=${bootparam_roottimeout:-5}
- while [ ! -d $ROOTFS_DIR/dev ]; do
+ while ! mountpoint -q $ROOTFS_DIR; do
if [ $(( $C * $delay )) -gt $timeout ]; then
fatal "root '$bootparam_root' doesn't exist or does not contain a /dev."
fi
@@ -61,7 +61,7 @@ rootfs_run() {
flags="$flags -t$bootparam_rootfstype"
fi
mount $flags $bootparam_root $ROOTFS_DIR
- if [ -d $ROOTFS_DIR/dev ]; then
+ if mountpoint -q $ROOTFS_DIR; then
break
else
# It is unlikely to change, but keep trying anyway.
diff --git a/meta/recipes-core/initrdscripts/initramfs-framework/udev b/meta/recipes-core/initrdscripts/initramfs-framework/udev
index 87551ff4a9..4898b89246 100644
--- a/meta/recipes-core/initrdscripts/initramfs-framework/udev
+++ b/meta/recipes-core/initrdscripts/initramfs-framework/udev
@@ -41,6 +41,9 @@ udev_run() {
mkdir -p /run
mkdir -p /var/run
+ # Workaround if console=null, systemd-udevd needs valid stdin, stdout and stderr to work
+ sh -c "exec 4< /dev/console" || { exec 0> /dev/null; exec 1> /dev/null; exec 2> /dev/null; }
+
$_UDEV_DAEMON --daemon
udevadm trigger --action=add
udevadm settle
diff --git a/meta/recipes-core/initscripts/init-system-helpers_1.58.bb b/meta/recipes-core/initscripts/init-system-helpers_1.58.bb
new file mode 100644
index 0000000000..b591f412c6
--- /dev/null
+++ b/meta/recipes-core/initscripts/init-system-helpers_1.58.bb
@@ -0,0 +1,41 @@
+SUMMARY = "helper tools for all init systems"
+DESCRIPTION = "This package contains helper tools that are necessary for switching between \
+the various init systems that Debian contains (e. g. sysvinit or \
+systemd). An example is deb-systemd-helper, a script that enables systemd unit \
+files without depending on a running systemd. \
+\
+It also includes the \"service\", \"invoke-rc.d\", and \"update-rc.d\" scripts which \
+provide an abstraction for enabling, disabling, starting, and stopping \
+services for all supported Debian init systems as specified by the policy. \
+\
+While this package is maintained by pkg-systemd-maintainers, it is NOT \
+specific to systemd at all. Maintainers of other init systems are welcome to \
+include their helpers in this package."
+HOMEPAGE = "https://salsa.debian.org/debian/init-system-helpers"
+SECTION = "base"
+LICENSE = "BSD-3-Clause & GPLv2"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=ee2b1830fcfead84d07bc060ec43e072"
+
+SRCREV = "6a1860c6f5ad295af605ddf588933544e7c24ce1"
+SRC_URI = "git://salsa.debian.org/debian/init-system-helpers.git;protocol=https"
+
+S = "${WORKDIR}/git"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+do_install() {
+ install -d -m 0755 ${D}${sbindir}
+ install -m 0755 ${S}/script/invoke-rc.d ${D}${sbindir}
+ install -m 0755 ${S}/script/service ${D}${sbindir}
+}
+
+PACKAGES += "${PN}-invoke-rc.d ${PN}-service"
+
+FILES_${PN} = ""
+FILES_${PN}-invoke-rc.d = "${sbindir}/invoke-rc.d"
+FILES_${PN}-service = "${sbindir}/service"
+
+ALLOW_EMPTY_${PN} = "1"
+
+RRECOMMENDS_${PN} += "${PN}-invoke-rc.d ${PN}-service"
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh b/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh
index 1c525b71bd..f21f48dd30 100755
--- a/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh
+++ b/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh
@@ -9,10 +9,10 @@
### END INIT INFO
# Get ROOT_DIR
-DIRNAME=`dirname $0`
-ROOT_DIR=`echo $DIRNAME | sed -ne 's:/etc/.*::p'`
+DIRNAME="$(dirname "$0")"
+ROOT_DIR="$(echo "$DIRNAME" | sed -ne 's:/etc/.*::p')"
-[ -e ${ROOT_DIR}/etc/default/rcS ] && . ${ROOT_DIR}/etc/default/rcS
+[ -e "${ROOT_DIR}/etc/default/rcS" ] && . "${ROOT_DIR}/etc/default/rcS"
# When running populate-volatile.sh at rootfs time, disable cache.
[ -n "$ROOT_DIR" ] && VOLATILE_ENABLE_CACHE=no
# If rootfs is read-only, disable cache.
@@ -26,15 +26,15 @@ COREDEF="00_core"
create_file() {
EXEC=""
- [ -z "$2" ] && {
+ if [ -z "$2" ]; then
EXEC="
touch \"$1\";
"
- } || {
+ else
EXEC="
cp \"$2\" \"$1\";
"
- }
+ fi
EXEC="
${EXEC}
chown ${TUSER}:${TGROUP} $1 || echo \"Failed to set owner -${TUSER}- for -$1-.\" >/dev/tty0 2>&1;
@@ -42,19 +42,19 @@ create_file() {
test "$VOLATILE_ENABLE_CACHE" = yes && echo "$EXEC" >> /etc/volatile.cache.build
- [ -e "$1" ] && {
+ if [ -e "$1" ]; then
[ "${VERBOSE}" != "no" ] && echo "Target already exists. Skipping."
- } || {
+ else
if [ -z "$ROOT_DIR" ]; then
- eval $EXEC
+ eval "$EXEC"
else
# Creating some files at rootfs time may fail and should fail,
# but these failures should not be logged to make sure the do_rootfs
# process doesn't fail. This does no harm, as this script will
# run on target to set up the correct files and directories.
- eval $EXEC > /dev/null 2>&1
+ eval "$EXEC" > /dev/null 2>&1
fi
- }
+ fi
}
mk_dir() {
@@ -64,17 +64,17 @@ mk_dir() {
chmod ${TMODE} $1 || echo \"Failed to set mode -${TMODE}- for -$1-.\" >/dev/tty0 2>&1 "
test "$VOLATILE_ENABLE_CACHE" = yes && echo "$EXEC" >> /etc/volatile.cache.build
- [ -e "$1" ] && {
+ if [ -e "$1" ]; then
[ "${VERBOSE}" != "no" ] && echo "Target already exists. Skipping."
- } || {
+ else
if [ -z "$ROOT_DIR" ]; then
- eval $EXEC
+ eval "$EXEC"
else
# For the same reason with create_file(), failures should
# not be logged.
- eval $EXEC > /dev/null 2>&1
+ eval "$EXEC" > /dev/null 2>&1
fi
- }
+ fi
}
link_file() {
@@ -96,11 +96,11 @@ link_file() {
test "$VOLATILE_ENABLE_CACHE" = yes && echo " $EXEC" >> /etc/volatile.cache.build
if [ -z "$ROOT_DIR" ]; then
- eval $EXEC
+ eval "$EXEC"
else
# For the same reason with create_file(), failures should
# not be logged.
- eval $EXEC > /dev/null 2>&1
+ eval "$EXEC" > /dev/null 2>&1
fi
}
@@ -117,11 +117,11 @@ check_requirements() {
TMP_DEFINED="${TMPROOT}/tmpdefined.$$"
TMP_COMBINED="${TMPROOT}/tmpcombined.$$"
- sed 's@\(^:\)*:.*@\1@' ${ROOT_DIR}/etc/passwd | sort | uniq > "${TMP_DEFINED}"
- cat ${CFGFILE} | grep -v "^#" | cut -s -d " " -f 2 > "${TMP_INTERMED}"
+ sed 's@\(^:\)*:.*@\1@' "${ROOT_DIR}/etc/passwd" | sort | uniq > "${TMP_DEFINED}"
+ grep -v "^#" "${CFGFILE}" | cut -s -d " " -f 2 > "${TMP_INTERMED}"
cat "${TMP_DEFINED}" "${TMP_INTERMED}" | sort | uniq > "${TMP_COMBINED}"
- NR_DEFINED_USERS="`cat "${TMP_DEFINED}" | wc -l`"
- NR_COMBINED_USERS="`cat "${TMP_COMBINED}" | wc -l`"
+ NR_DEFINED_USERS="$(wc -l < "${TMP_DEFINED}")"
+ NR_COMBINED_USERS="$(wc -l < "${TMP_COMBINED}")"
[ "${NR_DEFINED_USERS}" -ne "${NR_COMBINED_USERS}" ] && {
echo "Undefined users:"
@@ -131,12 +131,12 @@ check_requirements() {
}
- sed 's@\(^:\)*:.*@\1@' ${ROOT_DIR}/etc/group | sort | uniq > "${TMP_DEFINED}"
- cat ${CFGFILE} | grep -v "^#" | cut -s -d " " -f 3 > "${TMP_INTERMED}"
+ sed 's@\(^:\)*:.*@\1@' "${ROOT_DIR}/etc/group" | sort | uniq > "${TMP_DEFINED}"
+ grep -v "^#" "${CFGFILE}" | cut -s -d " " -f 3 > "${TMP_INTERMED}"
cat "${TMP_DEFINED}" "${TMP_INTERMED}" | sort | uniq > "${TMP_COMBINED}"
- NR_DEFINED_GROUPS="`cat "${TMP_DEFINED}" | wc -l`"
- NR_COMBINED_GROUPS="`cat "${TMP_COMBINED}" | wc -l`"
+ NR_DEFINED_GROUPS="$(wc -l < "${TMP_DEFINED}")"
+ NR_COMBINED_GROUPS="$(wc -l < "${TMP_COMBINED}")"
[ "${NR_DEFINED_GROUPS}" -ne "${NR_COMBINED_GROUPS}" ] && {
echo "Undefined groups:"
@@ -157,13 +157,13 @@ apply_cfgfile() {
[ "${VERBOSE}" != "no" ] && echo "Applying ${CFGFILE}"
- [ "${SKIP_REQUIREMENTS}" == "yes" ] || check_requirements "${CFGFILE}" || {
+ [ "${SKIP_REQUIREMENTS}" = "yes" ] || check_requirements "${CFGFILE}" || {
echo "Skipping ${CFGFILE}"
return 1
}
- cat ${CFGFILE} | sed 's/#.*//' | \
- while read TTYPE TUSER TGROUP TMODE TNAME TLTARGET; do
+ sed 's/#.*//' "${CFGFILE}" | \
+ while read -r TTYPE TUSER TGROUP TMODE TNAME TLTARGET; do
test -z "${TLTARGET}" && continue
TNAME=${ROOT_DIR}${TNAME}
[ "${VERBOSE}" != "no" ] && echo "Checking for -${TNAME}-."
@@ -187,14 +187,14 @@ apply_cfgfile() {
[ -L "${TNAME}" ] && {
[ "${VERBOSE}" != "no" ] && echo "Found link."
- NEWNAME=`ls -l "${TNAME}" | sed -e 's/^.*-> \(.*\)$/\1/'`
- echo ${NEWNAME} | grep -v "^/" >/dev/null && {
- TNAME="`echo ${TNAME} | sed -e 's@\(.*\)/.*@\1@'`/${NEWNAME}"
+ NEWNAME=$(ls -l "${TNAME}" | sed -e 's/^.*-> \(.*\)$/\1/')
+ if echo "${NEWNAME}" | grep -v "^/" >/dev/null; then
+ TNAME="$(echo "${TNAME}" | sed -e 's@\(.*\)/.*@\1@')/${NEWNAME}"
[ "${VERBOSE}" != "no" ] && echo "Converted relative linktarget to absolute path -${TNAME}-."
- } || {
+ else
TNAME="${NEWNAME}"
[ "${VERBOSE}" != "no" ] && echo "Using absolute link target -${TNAME}-."
- }
+ fi
}
case "${TTYPE}" in
@@ -217,7 +217,7 @@ apply_cfgfile() {
clearcache=0
exec 9</proc/cmdline
-while read line <&9
+while read -r line <&9
do
case "$line" in
*clearcache*) clearcache=1
@@ -228,11 +228,11 @@ do
done
exec 9>&-
-if test -e ${ROOT_DIR}/etc/volatile.cache -a "$VOLATILE_ENABLE_CACHE" = "yes" -a "x$1" != "xupdate" -a "x$clearcache" = "x0"
+if test -e "${ROOT_DIR}/etc/volatile.cache" -a "$VOLATILE_ENABLE_CACHE" = "yes" -a "x$1" != "xupdate" -a "x$clearcache" = "x0"
then
- sh ${ROOT_DIR}/etc/volatile.cache
+ sh "${ROOT_DIR}/etc/volatile.cache"
else
- rm -f ${ROOT_DIR}/etc/volatile.cache ${ROOT_DIR}/etc/volatile.cache.build
+ rm -f "${ROOT_DIR}/etc/volatile.cache" "${ROOT_DIR}/etc/volatile.cache.build"
# Apply the core file with out checking requirements. ${TMPROOT} is
# needed by check_requirements but is setup by this file, so it must be
@@ -246,7 +246,7 @@ else
TMP_FILE="${TMPROOT}/tmp_volatile.$$"
rm -f "$TMP_FILE"
- CFGFILES="`ls -1 "${CFGDIR}" | grep -v "^${COREDEF}\$" | sort`"
+ CFGFILES="$(ls -1 "${CFGDIR}" | grep -v "^${COREDEF}\$" | sort)"
for file in ${CFGFILES}; do
cat "${CFGDIR}/${file}" >> "$TMP_FILE"
done
@@ -264,7 +264,7 @@ else
fi
rm "$TMP_FILE"
- [ -e ${ROOT_DIR}/etc/volatile.cache.build ] && sync && mv ${ROOT_DIR}/etc/volatile.cache.build ${ROOT_DIR}/etc/volatile.cache
+ [ -e "${ROOT_DIR}/etc/volatile.cache.build" ] && sync && mv "${ROOT_DIR}/etc/volatile.cache.build" "${ROOT_DIR}/etc/volatile.cache"
fi
if [ -z "${ROOT_DIR}" ] && [ -f /etc/ld.so.cache ] && [ ! -f /var/run/ld.so.cache ]
diff --git a/meta/recipes-core/initscripts/initscripts_1.0.bb b/meta/recipes-core/initscripts/initscripts_1.0.bb
index 1a59b82fbf..32c527799e 100644
--- a/meta/recipes-core/initscripts/initscripts_1.0.bb
+++ b/meta/recipes-core/initscripts/initscripts_1.0.bb
@@ -50,6 +50,7 @@ PACKAGE_WRITE_DEPS_append = " ${@bb.utils.contains('DISTRO_FEATURES','systemd','
PACKAGES =+ "${PN}-functions ${PN}-sushell"
RDEPENDS_${PN} = "initd-functions \
${@bb.utils.contains('DISTRO_FEATURES','selinux','${PN}-sushell','',d)} \
+ init-system-helpers-service \
"
# Recommend pn-functions so that it will be a preferred default provider for initd-functions
RRECOMMENDS_${PN} = "${PN}-functions"
@@ -169,7 +170,7 @@ MASKED_SCRIPTS = " \
urandom"
pkg_postinst_${PN} () {
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ if type systemctl >/dev/null 2>/dev/null; then
if [ -n "$D" ]; then
OPTS="--root=$D"
fi
diff --git a/meta/recipes-core/kbd/kbd/0001-Use-DATADIR-and-append-i386-to-fix-libkbdfile-test08.patch b/meta/recipes-core/kbd/kbd/0001-Use-DATADIR-and-append-i386-to-fix-libkbdfile-test08.patch
deleted file mode 100644
index dc5236063b..0000000000
--- a/meta/recipes-core/kbd/kbd/0001-Use-DATADIR-and-append-i386-to-fix-libkbdfile-test08.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 4c12f76f4177cfd560cf708a16774ebfadbd41a5 Mon Sep 17 00:00:00 2001
-From: "Mingde (Matthew) Zeng" <matthew.zeng@windriver.com>
-Date: Wed, 22 Jan 2020 11:02:17 -0500
-Subject: [PATCH] Use DATADIR and append i386 to fix libkbdfile-test08 ptest
- failure
-
-Replace ABS_DATADIR with DATADIR and append i386 to dirpath.
-
-Upstream-Status: Inappropriate [OE specific]
-
-This OE specific patch applies to kbd v2.2.0 for now, the upstream
-made drastic changes since v2.2.0, in fact they got rid of ABS_DATADIR
-in commit 5b6df5c along with a series of other commits which may or
-may not fix this issue. We will find out in future releases.
-
-Signed-off-by: Matthew Zeng<Matthew.Zeng@windriver.com>
----
- tests/libkbdfile-test08.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/tests/libkbdfile-test08.c b/tests/libkbdfile-test08.c
-index bf41707..5e287f1 100644
---- a/tests/libkbdfile-test08.c
-+++ b/tests/libkbdfile-test08.c
-@@ -14,14 +14,14 @@ main(int __attribute__((unused)) argc, char **argv)
- if (!fp)
- kbd_error(EXIT_FAILURE, 0, "unable to create kbdfile");
-
-- const char *const dirpath[] = { "", DATADIR "/findfile/test_0/keymaps/**", 0 };
-+ const char *const dirpath[] = { "", DATADIR "/findfile/test_0/keymaps/i386/**", 0 };
- const char *const suffixes[] = { "", ".map", ".kmap", 0 };
-
-- const char *expect = ABS_DATADIR "/findfile/test_0/keymaps/i386/qwerty/test0.map";
-+ const char *expect = DATADIR "/findfile/test_0/keymaps/i386/qwerty/test0.map";
-
- int rc = 0;
-
-- rc = kbdfile_find((char *)(ABS_DATADIR "/findfile/test_0/keymaps/i386/qwerty/test0"), (char **) dirpath, (char **) suffixes, fp);
-+ rc = kbdfile_find((char *)"test0", (char **) dirpath, (char **) suffixes, fp);
-
- if (rc != 0)
- kbd_error(EXIT_FAILURE, 0, "unable to find file");
---
-2.24.1
-
diff --git a/meta/recipes-core/kbd/kbd/0001-analyze.l-add-missing-string-format.patch b/meta/recipes-core/kbd/kbd/0001-analyze.l-add-missing-string-format.patch
deleted file mode 100644
index 8916fd9f5e..0000000000
--- a/meta/recipes-core/kbd/kbd/0001-analyze.l-add-missing-string-format.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From dc6bf2ae0835c6569b270e8e1f26a3173f3927d9 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Wed, 4 Dec 2019 13:14:01 +0100
-Subject: [PATCH] analyze.l: add missing string format
-
-Upstream-Status: Submitted [https://github.com/legionus/kbd/pull/35]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- src/libkeymap/analyze.l | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/libkeymap/analyze.l b/src/libkeymap/analyze.l
-index e32ace6..de62f46 100644
---- a/src/libkeymap/analyze.l
-+++ b/src/libkeymap/analyze.l
-@@ -463,7 +463,7 @@ To to|To|TO
-
- strerror_r(errno, buf, sizeof(buf));
-
-- ERR(yyextra, buf);
-+ ERR(yyextra, "%s", buf);
- return(ERROR);
- }
-
diff --git a/meta/recipes-core/kbd/kbd/fix_cflags.patch b/meta/recipes-core/kbd/kbd/fix_cflags.patch
deleted file mode 100644
index 37220960ab..0000000000
--- a/meta/recipes-core/kbd/kbd/fix_cflags.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-We need to ensure our CFLAGS are preserved as well as whatever tweak configure
-tries to make. Without these, the debug prefix changes get lost and we lose
-build reproducibility, likely with other side effects.
-
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-Upstream-Status: Pending
-2020/1/27
-
-Index: kbd-2.2.0/configure.ac
-===================================================================
---- kbd-2.2.0.orig/configure.ac
-+++ kbd-2.2.0/configure.ac
-@@ -72,9 +72,9 @@ if test "$enable_code_coverage" = yes; t
- fi
-
- case "$GCC,$ac_cv_prog_cc_g" in
-- yes,yes) CFLAGS="-g $CC_O_LEVEL $FORTIFY_SOURCE" ;;
-- yes,) CFLAGS="$CC_O_LEVEL $FORTIFY_SOURCE" ;;
-- ,yes) CFLAGS="-g" ;;
-+ yes,yes) CFLAGS="-g $CC_O_LEVEL $FORTIFY_SOURCE $CFLAGS" ;;
-+ yes,) CFLAGS="$CC_O_LEVEL $FORTIFY_SOURCE $CFLAGS" ;;
-+ ,yes) CFLAGS="-g $CFLAGS" ;;
- esac
-
- CC_CHECK_CFLAGS_APPEND([\
diff --git a/meta/recipes-core/kbd/kbd/run-ptest b/meta/recipes-core/kbd/kbd/run-ptest
deleted file mode 100644
index 7a2d205f54..0000000000
--- a/meta/recipes-core/kbd/kbd/run-ptest
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-
-CURDIR=$(dirname `readlink -f $0`)
-make -k -C ${CURDIR}/tests check-TESTS
diff --git a/meta/recipes-core/kbd/kbd/set-proper-path-of-resources.patch b/meta/recipes-core/kbd/kbd/set-proper-path-of-resources.patch
deleted file mode 100644
index 4b1e5b8eeb..0000000000
--- a/meta/recipes-core/kbd/kbd/set-proper-path-of-resources.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From cb3af8fb072f8999dbb5160bdc95a102b02fd37a Mon Sep 17 00:00:00 2001
-From: Kai Kang <kai.kang@windriver.com>
-Date: Fri, 30 Sep 2016 16:49:55 +0800
-Subject: [PATCH] kbd: create ptest sub-package
-
-Upstream-Status: Inappropriate [embedded specific]
-
-kbd is out of source built, then the value of $(srcdir) is relative path of
-${S}/tests to ${B}/tests. Macro DATADIR is defined with $(srcdir) and replaced
-in .c files by compiler, and string @DATADIR@ is replaced with $(srdir) by rule
-"%: %.in" in Makefile.
-
-But kbd-ptest puts test cases and resource files in same directory, then some
-ptest cases fail to find resources.
-
-Replace DATADIR and @DATADIR@ with current directory(dot) to make test cases
-run as expected.
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
-
----
- tests/Makefile.am | 4 ++--
- tests/alt-is-meta.in | 2 +-
- tests/dumpkeys-bkeymap.in | 4 ++--
- tests/dumpkeys-fulltable.in | 2 +-
- tests/dumpkeys-mktable.in | 4 ++--
- 5 files changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/tests/Makefile.am b/tests/Makefile.am
-index 8d0ab69..5147c28 100644
---- a/tests/Makefile.am
-+++ b/tests/Makefile.am
-@@ -7,8 +7,8 @@ AM_CPPFLAGS = \
- -I$(builddir)/../src/libkeymap \
- -I$(srcdir)/../src/libkbdfile \
- -I$(builddir)/../src/libkbdfile \
-- -DDATADIR=\"$(srcdir)\" \
-- -DABS_DATADIR=\"$(realpath $(srcdir))\" \
-+ -DDATADIR=\".\" \
-+ -DABS_DATADIR=\"/usr/lib/kbd/ptest/tests\" \
- -DBUILDDIR=\"$(builddir)\"
-
- AM_CFLAGS = $(CHECK_CFLAGS) $(CODE_COVERAGE_CFLAGS)
-diff --git a/tests/alt-is-meta.in b/tests/alt-is-meta.in
-index 3a1441f..d829f2e 100755
---- a/tests/alt-is-meta.in
-+++ b/tests/alt-is-meta.in
-@@ -7,7 +7,7 @@ cd "$cwd"
- rc=0
- temp="$(mktemp "@BUILDDIR@/temp.XXXXXXXXX")"
-
--datadir="@DATADIR@/data/alt-is-meta"
-+datadir="./data/alt-is-meta"
-
- ./libkeymap-showmaps "$datadir"/alt-is-meta.map > "$temp" || rc=$?
- cmp -s "$datadir/alt-is-meta.output" "$temp" || rc=$?
-diff --git a/tests/dumpkeys-bkeymap.in b/tests/dumpkeys-bkeymap.in
-index 03d4ca2..d1d0e26 100755
---- a/tests/dumpkeys-bkeymap.in
-+++ b/tests/dumpkeys-bkeymap.in
-@@ -9,8 +9,8 @@ temp="$(mktemp "@BUILDDIR@/temp.XXXXXXXXX")"
-
- datadir="@DATADIR@"
-
--./libkeymap-bkeymap "$datadir/"../data/keymaps/i386/qwerty/defkeymap.map > "$temp" || rc=$?
--cmp -s "$datadir/data/dumpkeys-bkeymap/bkeymap.bin" "$temp" || rc=$?
-+./libkeymap-bkeymap ../data/keymaps/i386/qwerty/defkeymap.map > "$temp" || rc=$?
-+cmp -s "./data/dumpkeys-bkeymap/bkeymap.bin" "$temp" || rc=$?
-
- if [ "$rc" != 0 ]; then
- printf 'failed\n'
-diff --git a/tests/dumpkeys-fulltable.in b/tests/dumpkeys-fulltable.in
-index a3a5ece..67a73ef 100755
---- a/tests/dumpkeys-fulltable.in
-+++ b/tests/dumpkeys-fulltable.in
-@@ -5,7 +5,7 @@ cwd="$(readlink -ev "${0%/*}")"
- cd "$cwd"
-
- BUILDDIR="@BUILDDIR@"
--DATADIR="@DATADIR@"
-+DATADIR="."
-
- check_keymap() {
- local kmap temp rc
-diff --git a/tests/dumpkeys-mktable.in b/tests/dumpkeys-mktable.in
-index 0f17c40..7e5161d 100755
---- a/tests/dumpkeys-mktable.in
-+++ b/tests/dumpkeys-mktable.in
-@@ -7,8 +7,8 @@ cd "$cwd"
- rc=0
- temp="$(mktemp "@BUILDDIR@/temp.XXXXXXXXX")"
-
--./libkeymap-mktable "@DATADIR@/"../data/keymaps/i386/qwerty/defkeymap.map > "$temp" || rc=$?
--cmp -s "@DATADIR@/data/dumpkeys-mktable/defkeymap.c" "$temp" || rc=$?
-+./libkeymap-mktable ../data/keymaps/i386/qwerty/defkeymap.map > "$temp" || rc=$?
-+cmp -s "./data/dumpkeys-mktable/defkeymap.c" "$temp" || rc=$?
-
- if [ "$rc" != 0 ]; then
- printf 'failed\n'
diff --git a/meta/recipes-core/kbd/kbd_2.2.0.bb b/meta/recipes-core/kbd/kbd_2.2.0.bb
deleted file mode 100644
index e5700ff57f..0000000000
--- a/meta/recipes-core/kbd/kbd_2.2.0.bb
+++ /dev/null
@@ -1,72 +0,0 @@
-SUMMARY = "Keytable files and keyboard utilities"
-HOMEPAGE = "http://www.kbd-project.org/"
-# everything minus console-fonts is GPLv2+
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=892f569a555ba9c07a568a7c0c4fa63a"
-
-inherit autotools gettext ptest pkgconfig
-
-DEPENDS += "flex-native"
-
-RREPLACES_${PN} = "console-tools"
-RPROVIDES_${PN} = "console-tools"
-RCONFLICTS_${PN} = "console-tools"
-
-SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/${BP}.tar.xz \
- file://run-ptest \
- ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'file://set-proper-path-of-resources.patch', '', d)} \
- file://0001-analyze.l-add-missing-string-format.patch \
- file://0001-Use-DATADIR-and-append-i386-to-fix-libkbdfile-test08.patch \
- file://fix_cflags.patch \
- "
-
-SRC_URI[md5sum] = "d1d7ae0b5fb875dc082731e09cd0c8bc"
-SRC_URI[sha256sum] = "21a1bc5f6fb3b18ce9fdd717e4533368060a3182a39c7155eaf7ec0f5f83e9f7"
-
-PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \
- ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests','', d)} \
- "
-
-PACKAGECONFIG[pam] = "--enable-vlock, --disable-vlock, libpam,"
-PACKAGECONFIG[tests] = "--enable-tests, --disable-tests, libcheck"
-
-do_compile_ptest() {
- oe_runmake -C ${B}/tests alt-is-meta dumpkeys-bkeymap dumpkeys-fulltable dumpkeys-mktable
-}
-
-do_install_ptest() {
- install -D ${B}/tests/Makefile ${D}${PTEST_PATH}/tests/Makefile
- sed -i -e '/Makefile:/,/^$/d' -e '/%: %.in/,/^$/d' \
- -e 's:--sysroot=${STAGING_DIR_TARGET}::g' \
- -e 's:${DEBUG_PREFIX_MAP}::g' \
- -e 's:${HOSTTOOLS_DIR}/::g' \
- -e 's:${RECIPE_SYSROOT_NATIVE}::g' \
- -e 's:${RECIPE_SYSROOT}::g' \
- -e 's:${S}/config/missing::g' \
- -e 's:${WORKDIR}::g' \
- -e '/^lib.*_SOURCES =/d' -e '/$(EXEEXT):/,/^$/d' ${D}${PTEST_PATH}/tests/Makefile
-
- find ${B}/tests -executable -exec install {} ${D}${PTEST_PATH}/tests \;
- cp -rf ${S}/tests/data ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/findfile ${D}${PTEST_PATH}/tests
- cp -rf ${S}/data ${D}${PTEST_PATH}
-
- install -D -m 755 ${S}/config/test-driver ${D}${PTEST_PATH}/config/test-driver
-}
-
-PACKAGES += "${PN}-consolefonts ${PN}-keymaps ${PN}-unimaps ${PN}-consoletrans"
-
-FILES_${PN}-consolefonts = "${datadir}/consolefonts"
-FILES_${PN}-consoletrans = "${datadir}/consoletrans"
-FILES_${PN}-keymaps = "${datadir}/keymaps"
-FILES_${PN}-unimaps = "${datadir}/unimaps"
-
-RDEPENDS_${PN}-ptest = "make"
-
-inherit update-alternatives
-
-ALTERNATIVE_${PN} = "chvt deallocvt fgconsole openvt showkey \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'vlock','', d)}"
-ALTERNATIVE_PRIORITY = "100"
-
-BBCLASSEXTEND = "native"
diff --git a/meta/recipes-core/kbd/kbd_2.3.0.bb b/meta/recipes-core/kbd/kbd_2.3.0.bb
new file mode 100644
index 0000000000..529f49bef4
--- /dev/null
+++ b/meta/recipes-core/kbd/kbd_2.3.0.bb
@@ -0,0 +1,38 @@
+SUMMARY = "Keytable files and keyboard utilities"
+HOMEPAGE = "http://www.kbd-project.org/"
+# everything minus console-fonts is GPLv2+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=892f569a555ba9c07a568a7c0c4fa63a"
+
+inherit autotools gettext pkgconfig
+
+DEPENDS += "flex-native"
+
+RREPLACES_${PN} = "console-tools"
+RPROVIDES_${PN} = "console-tools"
+RCONFLICTS_${PN} = "console-tools"
+
+SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/${BP}.tar.xz \
+ "
+
+SRC_URI[sha256sum] = "685056143cb8effd0a1d44b5c391eb50d80dcfd014b1a4d6e2650a28d61cb82a"
+
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \
+ "
+
+PACKAGECONFIG[pam] = "--enable-vlock, --disable-vlock, libpam,"
+
+PACKAGES += "${PN}-consolefonts ${PN}-keymaps ${PN}-unimaps ${PN}-consoletrans"
+
+FILES_${PN}-consolefonts = "${datadir}/consolefonts"
+FILES_${PN}-consoletrans = "${datadir}/consoletrans"
+FILES_${PN}-keymaps = "${datadir}/keymaps"
+FILES_${PN}-unimaps = "${datadir}/unimaps"
+
+inherit update-alternatives
+
+ALTERNATIVE_${PN} = "chvt deallocvt fgconsole openvt showkey \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'vlock','', d)}"
+ALTERNATIVE_PRIORITY = "100"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.14.bb b/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.17.bb
index ba74eb1f94..ba74eb1f94 100644
--- a/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.14.bb
+++ b/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.17.bb
diff --git a/meta/recipes-core/libxcrypt/libxcrypt.inc b/meta/recipes-core/libxcrypt/libxcrypt.inc
index 416205cd5c..104a2af4d2 100644
--- a/meta/recipes-core/libxcrypt/libxcrypt.inc
+++ b/meta/recipes-core/libxcrypt/libxcrypt.inc
@@ -3,14 +3,14 @@ DESCRIPTION = "Forked code from glibc libary to extract only crypto part."
HOMEPAGE = "https://github.com/besser82/libxcrypt"
SECTION = "libs"
LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM ?= "file://LICENSING;md5=3bb6614cf5880cbf1b9dbd9e3d145e2c \
- file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
-"
+LIC_FILES_CHKSUM = "file://LICENSING;md5=102923b6e1b02a85c5a1203fa87d151d \
+ file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
+ "
inherit autotools pkgconfig
SRC_URI = "git://github.com/besser82/libxcrypt.git;branch=${SRCBRANCH}"
-SRCREV = "5c43f7d56a31667bcdaa334bbb4edafb75672872"
+SRCREV = "6b110bcd4f4caa61fc39c7339d30adc20a7dd177"
SRCBRANCH ?= "develop"
PROVIDES = "virtual/crypt"
@@ -27,9 +27,7 @@ BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir} -Wno-error"
CPPFLAGS_append_class-nativesdk = " -Wno-error"
-CFLAGS += "-fcommon"
-
API = "--disable-obsolete-api"
EXTRA_OECONF += "${API}"
-BBCLASSEXTEND = "nativesdk"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-core/libxcrypt/libxcrypt_4.4.14.bb b/meta/recipes-core/libxcrypt/libxcrypt_4.4.17.bb
index 79dba2f6dc..79dba2f6dc 100644
--- a/meta/recipes-core/libxcrypt/libxcrypt_4.4.14.bb
+++ b/meta/recipes-core/libxcrypt/libxcrypt_4.4.17.bb
diff --git a/meta/recipes-core/libxml/libxml2/CVE-2020-24977.patch b/meta/recipes-core/libxml/libxml2/CVE-2020-24977.patch
new file mode 100644
index 0000000000..8224346660
--- /dev/null
+++ b/meta/recipes-core/libxml/libxml2/CVE-2020-24977.patch
@@ -0,0 +1,41 @@
+From 50f06b3efb638efb0abd95dc62dca05ae67882c2 Mon Sep 17 00:00:00 2001
+From: Nick Wellnhofer <wellnhofer@aevum.de>
+Date: Fri, 7 Aug 2020 21:54:27 +0200
+Subject: [PATCH] Fix out-of-bounds read with 'xmllint --htmlout'
+
+Make sure that truncated UTF-8 sequences don't cause an out-of-bounds
+array access.
+
+Thanks to @SuhwanSong and the Agency for Defense Development (ADD) for
+the report.
+
+Fixes #178.
+
+CVE: CVE-2020-24977
+Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libxml2/-/commit/50f06b3efb638efb0abd95dc62dca05ae67882c2]
+
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+ xmllint.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/xmllint.c b/xmllint.c
+index f6a8e463..c647486f 100644
+--- a/xmllint.c
++++ b/xmllint.c
+@@ -528,6 +528,12 @@ static void
+ xmlHTMLEncodeSend(void) {
+ char *result;
+
++ /*
++ * xmlEncodeEntitiesReentrant assumes valid UTF-8, but the buffer might
++ * end with a truncated UTF-8 sequence. This is a hack to at least avoid
++ * an out-of-bounds read.
++ */
++ memset(&buffer[sizeof(buffer)-4], 0, 4);
+ result = (char *) xmlEncodeEntitiesReentrant(NULL, BAD_CAST buffer);
+ if (result) {
+ xmlGenericError(xmlGenericErrorContext, "%s", result);
+--
+2.17.1
+
diff --git a/meta/recipes-core/libxml/libxml2_2.9.10.bb b/meta/recipes-core/libxml/libxml2_2.9.10.bb
index 097aceb2c0..90890ffaed 100644
--- a/meta/recipes-core/libxml/libxml2_2.9.10.bb
+++ b/meta/recipes-core/libxml/libxml2_2.9.10.bb
@@ -22,6 +22,7 @@ SRC_URI = "http://www.xmlsoft.org/sources/libxml2-${PV}.tar.gz;name=libtar \
file://fix-execution-of-ptests.patch \
file://CVE-2020-7595.patch \
file://CVE-2019-20388.patch \
+ file://CVE-2020-24977.patch \
"
SRC_URI[libtar.md5sum] = "10942a1dc23137a8aa07f0639cbfece5"
@@ -37,7 +38,7 @@ PACKAGECONFIG ??= "python \
PACKAGECONFIG[python] = "--with-python=${PYTHON},--without-python,python3"
PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
-inherit autotools pkgconfig binconfig-disabled ptest features_check
+inherit autotools pkgconfig binconfig-disabled ptest
inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3native', '', d)}
diff --git a/meta/recipes-core/meta/build-sysroots.bb b/meta/recipes-core/meta/build-sysroots.bb
index 7a712e2f38..ad22a75eb2 100644
--- a/meta/recipes-core/meta/build-sysroots.bb
+++ b/meta/recipes-core/meta/build-sysroots.bb
@@ -20,6 +20,8 @@ deltask populate_sysroot
python do_build_native_sysroot () {
targetsysroot = d.getVar("STANDALONE_SYSROOT")
nativesysroot = d.getVar("STANDALONE_SYSROOT_NATIVE")
+ import os
+ os.environ['PATH'] = "%s/bin:%s/usr/bin:%s" % (nativesysroot, nativesysroot, os.environ['PATH'])
staging_populate_sysroot_dir(targetsysroot, nativesysroot, True, d)
}
do_build_native_sysroot[cleandirs] = "${STANDALONE_SYSROOT_NATIVE}"
@@ -29,6 +31,8 @@ addtask do_build_native_sysroot before do_build
python do_build_target_sysroot () {
targetsysroot = d.getVar("STANDALONE_SYSROOT")
nativesysroot = d.getVar("STANDALONE_SYSROOT_NATIVE")
+ import os
+ os.environ['PATH'] = "%s/bin:%s/usr/bin:%s" % (nativesysroot, nativesysroot, os.environ['PATH'])
staging_populate_sysroot_dir(targetsysroot, nativesysroot, False, d)
}
do_build_target_sysroot[cleandirs] = "${STANDALONE_SYSROOT}"
diff --git a/meta/recipes-core/meta/buildtools-extended-tarball.bb b/meta/recipes-core/meta/buildtools-extended-tarball.bb
index d756036373..c32d0107c3 100644
--- a/meta/recipes-core/meta/buildtools-extended-tarball.bb
+++ b/meta/recipes-core/meta/buildtools-extended-tarball.bb
@@ -21,10 +21,14 @@ TOOLCHAIN_HOST_TASK += "\
nativesdk-gettext \
nativesdk-libatomic \
nativesdk-libgcc \
+ nativesdk-libgomp-dev \
nativesdk-libstdc++ \
nativesdk-libstdc++-dev \
+ nativesdk-libstdc++-staticdev \
nativesdk-libtool \
nativesdk-pkgconfig \
+ nativesdk-glibc-utils \
+ nativesdk-libxcrypt-dev \
"
TOOLCHAIN_OUTPUTNAME = "${SDK_ARCH}-buildtools-extended-nativesdk-standalone-${DISTRO_VERSION}"
diff --git a/meta/recipes-core/meta/buildtools-tarball.bb b/meta/recipes-core/meta/buildtools-tarball.bb
index aa55cde84a..560b8d67b9 100644
--- a/meta/recipes-core/meta/buildtools-tarball.bb
+++ b/meta/recipes-core/meta/buildtools-tarball.bb
@@ -6,10 +6,12 @@ LICENSE = "MIT"
TOOLCHAIN_TARGET_TASK ?= ""
TOOLCHAIN_HOST_TASK ?= "\
+ nativesdk-sdk-provides-dummy \
nativesdk-python3-core \
nativesdk-python3-modules \
nativesdk-python3-misc \
nativesdk-python3-git \
+ nativesdk-python3-jinja2 \
nativesdk-python3-testtools \
nativesdk-python3-subunit \
nativesdk-ncurses-terminfo-base \
@@ -26,6 +28,7 @@ TOOLCHAIN_HOST_TASK ?= "\
nativesdk-libnss-nis \
nativesdk-rpcsvc-proto \
nativesdk-patch \
+ nativesdk-mtools \
"
MULTIMACH_TARGET_SYS = "${SDK_ARCH}-nativesdk${SDK_VENDOR}-${SDK_OS}"
@@ -65,20 +68,23 @@ create_sdk_files_append () {
script=${1:-${SDK_OUTPUT}/${SDKPATH}/environment-setup-${SDK_SYS}}
touch $script
echo 'export PATH=${SDKPATHNATIVE}${bindir_nativesdk}:$PATH' >> $script
- # In order for the self-extraction script to correctly extract and set up things,
- # we need a 'OECORE_NATIVE_SYSROOT=xxx' line in environment setup script.
- # However, buildtools-tarball is inherently a tool set instead of a fully functional SDK,
- # so instead of exporting the variable, we use a comment here.
- echo '#OECORE_NATIVE_SYSROOT="${SDKPATHNATIVE}"' >> $script
+ echo 'export OECORE_NATIVE_SYSROOT="${SDKPATHNATIVE}"' >> $script
+ echo 'export GIT_SSL_CAINFO="${SDKPATHNATIVE}${sysconfdir}/ssl/certs/ca-certificates.crt"' >>$script
+ echo 'export SSL_CERT_FILE="${SDKPATHNATIVE}${sysconfdir}/ssl/certs/ca-certificates.crt"' >>$script
+
toolchain_create_sdk_version ${SDK_OUTPUT}/${SDKPATH}/version-${SDK_SYS}
- echo 'export GIT_SSL_CAINFO="${SDKPATHNATIVE}${sysconfdir}/ssl/certs/ca-certificates.crt"' >>$script
- echo 'export OPENSSL_CONF="${SDKPATHNATIVE}${sysconfdir}/ssl/openssl.cnf"' >>$script
+ cat >> $script <<EOF
+if [ -d "\$OECORE_NATIVE_SYSROOT/environment-setup.d" ]; then
+ for envfile in \$OECORE_NATIVE_SYSROOT/environment-setup.d/*.sh; do
+ . \$envfile
+ done
+fi
+# We have to unset this else it can confuse oe-selftest and other tools
+# which may also use the overlapping namespace.
+unset OECORE_NATIVE_SYSROOT
+EOF
- mkdir -p ${SDK_OUTPUT}/${SDKPATHNATIVE}${sysconfdir}/
- echo '${SDKPATHNATIVE}${libdir}
-${SDKPATHNATIVE}${base_libdir}
-include /etc/ld.so.conf' > ${SDK_OUTPUT}/${SDKPATHNATIVE}${sysconfdir}/ld.so.conf
if [ "${SDKMACHINE}" = "i686" ]; then
echo 'export NO32LIBS="0"' >>$script
echo 'echo "$BB_ENV_EXTRAWHITE" | grep -q "NO32LIBS"' >>$script
diff --git a/meta/recipes-core/meta/cve-update-db-native.bb b/meta/recipes-core/meta/cve-update-db-native.bb
index 575254af40..cf2b251e21 100644
--- a/meta/recipes-core/meta/cve-update-db-native.bb
+++ b/meta/recipes-core/meta/cve-update-db-native.bb
@@ -13,16 +13,17 @@ deltask do_install
deltask do_populate_sysroot
python () {
- if not d.getVar("CVE_CHECK_DB_FILE"):
+ if not bb.data.inherits_class("cve-check", d):
raise bb.parse.SkipRecipe("Skip recipe when cve-check class is not loaded.")
}
-python do_populate_cve_db() {
+python do_fetch() {
"""
Update NVD database with json data feed
"""
import bb.utils
- import sqlite3, urllib, urllib.parse, shutil, gzip
+ import bb.progress
+ import sqlite3, urllib, urllib.parse, gzip
from datetime import date
bb.utils.export_proxies(d)
@@ -32,20 +33,25 @@ python do_populate_cve_db() {
db_file = d.getVar("CVE_CHECK_DB_FILE")
db_dir = os.path.dirname(db_file)
- json_tmpfile = os.path.join(db_dir, 'nvd.json.gz')
+
+ if os.path.exists("{0}-journal".format(db_file)):
+ # If a journal is present the last update might have been interrupted. In that case,
+ # just wipe any leftovers and force the DB to be recreated.
+ os.remove("{0}-journal".format(db_file))
+
+ if os.path.exists(db_file):
+ os.remove(db_file)
# Don't refresh the database more than once an hour
try:
import time
if time.time() - os.path.getmtime(db_file) < (60*60):
+ bb.debug(2, "Recently updated, skipping")
return
except OSError:
pass
- cve_f = open(os.path.join(d.getVar("TMPDIR"), 'cve_check'), 'a')
-
- if not os.path.isdir(db_dir):
- os.mkdir(db_dir)
+ bb.utils.mkdirhier(db_dir)
# Connect to database
conn = sqlite3.connect(db_file)
@@ -53,50 +59,65 @@ python do_populate_cve_db() {
initialize_db(c)
- for year in range(YEAR_START, date.today().year + 1):
- year_url = BASE_URL + str(year)
- meta_url = year_url + ".meta"
- json_url = year_url + ".json.gz"
-
- # Retrieve meta last modified date
- response = urllib.request.urlopen(meta_url)
- if response:
- for l in response.read().decode("utf-8").splitlines():
- key, value = l.split(":", 1)
- if key == "lastModifiedDate":
- last_modified = value
- break
- else:
- bb.warn("Cannot parse CVE metadata, update failed")
- return
-
- # Compare with current db last modified date
- c.execute("select DATE from META where YEAR = ?", (year,))
- meta = c.fetchone()
- if not meta or meta[0] != last_modified:
- # Clear products table entries corresponding to current year
- c.execute("delete from PRODUCTS where ID like ?", ('CVE-%d%%' % year,))
+ with bb.progress.ProgressHandler(d) as ph, open(os.path.join(d.getVar("TMPDIR"), 'cve_check'), 'a') as cve_f:
+ total_years = date.today().year + 1 - YEAR_START
+ for i, year in enumerate(range(YEAR_START, date.today().year + 1)):
+ bb.debug(2, "Updating %d" % year)
+ ph.update((float(i + 1) / total_years) * 100)
+ year_url = BASE_URL + str(year)
+ meta_url = year_url + ".meta"
+ json_url = year_url + ".json.gz"
- # Update db with current year json file
+ # Retrieve meta last modified date
try:
- response = urllib.request.urlopen(json_url)
- if response:
- update_db(c, gzip.decompress(response.read()).decode('utf-8'))
- c.execute("insert or replace into META values (?, ?)", [year, last_modified])
+ response = urllib.request.urlopen(meta_url)
except urllib.error.URLError as e:
- cve_f.write('Warning: CVE db update error, CVE data is outdated.\n\n')
- bb.warn("Cannot parse CVE data (%s), update failed" % e.reason)
+ cve_f.write('Warning: CVE db update error, Unable to fetch CVE data.\n\n')
+ bb.warn("Failed to fetch CVE data (%s)" % e.reason)
return
- # Update success, set the date to cve_check file.
- if year == date.today().year:
- cve_f.write('CVE database update : %s\n\n' % date.today())
+ if response:
+ for l in response.read().decode("utf-8").splitlines():
+ key, value = l.split(":", 1)
+ if key == "lastModifiedDate":
+ last_modified = value
+ break
+ else:
+ bb.warn("Cannot parse CVE metadata, update failed")
+ return
+
+ # Compare with current db last modified date
+ c.execute("select DATE from META where YEAR = ?", (year,))
+ meta = c.fetchone()
+ if not meta or meta[0] != last_modified:
+ bb.debug(2, "Updating entries")
+ # Clear products table entries corresponding to current year
+ c.execute("delete from PRODUCTS where ID like ?", ('CVE-%d%%' % year,))
+
+ # Update db with current year json file
+ try:
+ response = urllib.request.urlopen(json_url)
+ if response:
+ update_db(c, gzip.decompress(response.read()).decode('utf-8'))
+ c.execute("insert or replace into META values (?, ?)", [year, last_modified])
+ except urllib.error.URLError as e:
+ cve_f.write('Warning: CVE db update error, CVE data is outdated.\n\n')
+ bb.warn("Cannot parse CVE data (%s), update failed" % e.reason)
+ return
+ else:
+ bb.debug(2, "Already up to date (last modified %s)" % last_modified)
+ # Update success, set the date to cve_check file.
+ if year == date.today().year:
+ cve_f.write('CVE database update : %s\n\n' % date.today())
- cve_f.close()
- conn.commit()
- conn.close()
+ conn.commit()
+ conn.close()
}
+do_fetch[lockfiles] += "${CVE_CHECK_DB_FILE_LOCK}"
+do_fetch[file-checksums] = ""
+do_fetch[vardeps] = ""
+
def initialize_db(c):
c.execute("CREATE TABLE IF NOT EXISTS META (YEAR INTEGER UNIQUE, DATE TEXT)")
@@ -122,9 +143,12 @@ def parse_node_and_insert(c, node, cveId):
product = cpe23[4]
version = cpe23[5]
- if version != '*':
+ if version != '*' and version != '-':
# Version is defined, this is a '=' match
yield [cveId, vendor, product, version, '=', '', '']
+ elif version == '-':
+ # no version information is available
+ yield [cveId, vendor, product, version, '', '', '']
else:
# Parse start version, end version and operators
op_start = ''
@@ -160,15 +184,20 @@ def update_db(c, jsondata):
if not elt['impact']:
continue
+ accessVector = None
cveId = elt['cve']['CVE_data_meta']['ID']
cveDesc = elt['cve']['description']['description_data'][0]['value']
date = elt['lastModifiedDate']
- accessVector = elt['impact']['baseMetricV2']['cvssV2']['accessVector']
- cvssv2 = elt['impact']['baseMetricV2']['cvssV2']['baseScore']
-
try:
+ accessVector = elt['impact']['baseMetricV2']['cvssV2']['accessVector']
+ cvssv2 = elt['impact']['baseMetricV2']['cvssV2']['baseScore']
+ except KeyError:
+ cvssv2 = 0.0
+ try:
+ accessVector = accessVector or elt['impact']['baseMetricV3']['cvssV3']['attackVector']
cvssv3 = elt['impact']['baseMetricV3']['cvssV3']['baseScore']
- except:
+ except KeyError:
+ accessVector = accessVector or "UNKNOWN"
cvssv3 = 0.0
c.execute("insert or replace into NVD values (?, ?, ?, ?, ?, ?)",
@@ -179,7 +208,6 @@ def update_db(c, jsondata):
parse_node_and_insert(c, config, cveId)
-addtask do_populate_cve_db before do_fetch
-do_populate_cve_db[nostamp] = "1"
+do_fetch[nostamp] = "1"
EXCLUDE_FROM_WORLD = "1"
diff --git a/meta/recipes-core/meta/nativesdk-sdk-provides-dummy.bb b/meta/recipes-core/meta/nativesdk-sdk-provides-dummy.bb
index 29f4dd3633..1d71f373a4 100644
--- a/meta/recipes-core/meta/nativesdk-sdk-provides-dummy.bb
+++ b/meta/recipes-core/meta/nativesdk-sdk-provides-dummy.bb
@@ -4,8 +4,8 @@ DUMMYPROVIDES_PACKAGES = "\
pkgconfig \
"
-# Add /bin/sh?
DUMMYPROVIDES = "\
+ /bin/sh \
/bin/bash \
/usr/bin/env \
libGL.so()(64bit) \
diff --git a/meta/recipes-core/meta/signing-keys.bb b/meta/recipes-core/meta/signing-keys.bb
index 1e1c7e3459..5bab94aa36 100644
--- a/meta/recipes-core/meta/signing-keys.bb
+++ b/meta/recipes-core/meta/signing-keys.bb
@@ -67,8 +67,6 @@ do_deploy () {
fi
}
do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_RPM}"
-# cleandirs should possibly be in deploy.bbclass but we need it
-do_deploy[cleandirs] = "${DEPLOYDIR}"
# clear stamp-extra-info since MACHINE_ARCH is normally put there by
# deploy.bbclass
do_deploy[stamp-extra-info] = ""
diff --git a/meta/recipes-core/meta/testexport-tarball.bb b/meta/recipes-core/meta/testexport-tarball.bb
index c38ac902a0..daedd78cb4 100644
--- a/meta/recipes-core/meta/testexport-tarball.bb
+++ b/meta/recipes-core/meta/testexport-tarball.bb
@@ -8,7 +8,7 @@ TEST_EXPORT_SDK_PACKAGES ??= ""
TOOLCHAIN_TARGET_TASK ?= ""
-TOOLCHAIN_HOST_TASK ?= "${TEST_EXPORT_SDK_PACKAGES}"
+TOOLCHAIN_HOST_TASK ?= "${TEST_EXPORT_SDK_PACKAGES} nativesdk-sdk-provides-dummy"
MULTIMACH_TARGET_SYS = "${SDK_ARCH}-nativesdk${SDK_VENDOR}-${SDK_OS}"
PACKAGE_ARCH = "${SDK_ARCH}_${SDK_OS}"
diff --git a/meta/recipes-core/meta/uninative-tarball.bb b/meta/recipes-core/meta/uninative-tarball.bb
index 39638eb8c5..c4a6c96b4d 100644
--- a/meta/recipes-core/meta/uninative-tarball.bb
+++ b/meta/recipes-core/meta/uninative-tarball.bb
@@ -18,6 +18,7 @@ TOOLCHAIN_HOST_TASK = "\
nativesdk-libxcrypt \
nativesdk-libxcrypt-compat \
nativesdk-libnss-nis \
+ nativesdk-sdk-provides-dummy \
"
INHIBIT_DEFAULT_DEPS = "1"
diff --git a/meta/recipes-core/meta/wic-tools.bb b/meta/recipes-core/meta/wic-tools.bb
index 09eb409e87..3e7d0ed48d 100644
--- a/meta/recipes-core/meta/wic-tools.bb
+++ b/meta/recipes-core/meta/wic-tools.bb
@@ -4,9 +4,9 @@ LICENSE = "MIT"
DEPENDS = "\
parted-native syslinux-native gptfdisk-native dosfstools-native \
- mtools-native bmap-tools-native grub-efi-native cdrtools-native \
+ mtools-native bmap-tools-native grub-native cdrtools-native \
btrfs-tools-native squashfs-tools-native pseudo-native \
- e2fsprogs-native util-linux-native \
+ e2fsprogs-native util-linux-native tar-native\
"
DEPENDS_append_x86 = " syslinux grub-efi systemd-boot"
DEPENDS_append_x86-64 = " syslinux grub-efi systemd-boot"
diff --git a/meta/recipes-core/musl/libucontext/0001-pass-LDFLAGS-to-link-step.patch b/meta/recipes-core/musl/libucontext/0001-pass-LDFLAGS-to-link-step.patch
deleted file mode 100644
index 0ab8caf3e6..0000000000
--- a/meta/recipes-core/musl/libucontext/0001-pass-LDFLAGS-to-link-step.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 12d45d250d08e96e889e38e77273c3ef73e6fc97 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 25 Nov 2019 15:07:35 -0800
-Subject: [PATCH] pass LDFLAGS to link step
-
-This helps to use OE specific linker flags and fixes
-
-do_package_qa: QA Issue: No GNU_HASH in the ELF binary
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 8a605fd..d1c9637 100644
---- a/Makefile
-+++ b/Makefile
-@@ -20,7 +20,7 @@ ${LIBUCONTEXT_STATIC_NAME}: ${LIBUCONTEXT_OBJ}
-
- ${LIBUCONTEXT_NAME}: ${LIBUCONTEXT_OBJ}
- $(CC) -o ${LIBUCONTEXT_NAME} -Wl,-soname,${LIBUCONTEXT_SONAME} \
-- -shared ${LIBUCONTEXT_OBJ}
-+ -shared ${LIBUCONTEXT_OBJ} ${LDFLAGS}
-
- ${LIBUCONTEXT_SONAME}: ${LIBUCONTEXT_NAME}
- ln -sf ${LIBUCONTEXT_NAME} ${LIBUCONTEXT_SONAME}
---
-2.24.0
-
diff --git a/meta/recipes-core/musl/libucontext_git.bb b/meta/recipes-core/musl/libucontext_git.bb
index 72e15aa9a4..734ad9c953 100644
--- a/meta/recipes-core/musl/libucontext_git.bb
+++ b/meta/recipes-core/musl/libucontext_git.bb
@@ -4,25 +4,25 @@
SUMMARY = "ucontext implementation featuring glibc-compatible ABI"
HOMEPAGE = "https://github.com/kaniini/libucontext"
LICENSE = "ISC"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=864cc1445419406b7093e8e531c9515e"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6eed01fa0e673c76f5a5715438f65b1d"
SECTION = "libs"
DEPENDS = ""
-PV = "0.1.3+${SRCPV}"
-SRCREV = "e6b4d7516dae9b200e94fcfcb9ebc9331389655f"
-SRC_URI = "git://code.foxkit.us/adelie/libucontext.git;protocol=https \
- file://0001-pass-LDFLAGS-to-link-step.patch \
+PV = "0.10+${SRCPV}"
+SRCREV = "19fa1bbfc26efb92147b5e85cc0ca02a0e837561"
+SRC_URI = "git://github.com/kaniini/libucontext \
"
S = "${WORKDIR}/git"
COMPATIBLE_HOST = ".*-musl.*"
-valid_archs = "\
-i386 x86 \
-ppc powerpc powerpc64 ppc64 \
-arm aarch64 \
-s390 \
+valid_archs = " \
+ x86 x86_64 \
+ ppc ppc64 \
+ mips mips64 \
+ arm aarch64 \
+ s390x \
"
def map_kernel_arch(a, d):
@@ -30,18 +30,20 @@ def map_kernel_arch(a, d):
valid_archs = d.getVar('valid_archs').split()
- if re.match('(i.86|athlon)$', a): return 'x86'
- elif re.match('x86.64$', a): return 'x86_64'
- elif re.match('armeb$', a): return 'arm'
- elif re.match('aarch64$', a): return 'aarch64'
- elif re.match('aarch64_be$', a): return 'aarch64'
- elif re.match('aarch64_ilp32$', a): return 'aarch64'
- elif re.match('aarch64_be_ilp32$', a): return 'aarch64'
- elif re.match('mips(isa|)(32|64|)(r6|)(el|)$', a): return 'mips'
- elif re.match('p(pc|owerpc)', a): return 'ppc'
- elif re.match('p(pc64|owerpc64)', a): return 'ppc64'
- elif re.match('riscv64$', a): return 'riscv64'
- elif a in valid_archs: return a
+ if a in valid_archs: return a
+ elif re.match('(i.86|athlon)$', a): return 'x86'
+ elif re.match('x86.64$', a): return 'x86_64'
+ elif re.match('armeb$', a): return 'arm'
+ elif re.match('aarch64$', a): return 'aarch64'
+ elif re.match('aarch64_be$', a): return 'aarch64'
+ elif re.match('aarch64_ilp32$', a): return 'aarch64'
+ elif re.match('aarch64_be_ilp32$', a): return 'aarch64'
+ elif re.match('mips(isa|)(32|)(r6|)(el|)$', a): return 'mips'
+ elif re.match('mips(isa|)64(r6|)(el|)$', a): return 'mips64'
+ elif re.match('p(pc|owerpc)', a): return 'ppc'
+ elif re.match('p(pc64|owerpc64)', a): return 'ppc64'
+ elif re.match('riscv64$', a): return 'riscv64'
+ elif re.match('riscv32$', a): return 'riscv32'
else:
if not d.getVar("TARGET_OS").startswith("linux"):
return a
@@ -49,9 +51,9 @@ def map_kernel_arch(a, d):
export ARCH = "${@map_kernel_arch(d.getVar('TARGET_ARCH'), d)}"
-CFLAGS += "-Iarch/${ARCH}"
+CFLAGS += "-Iarch/${ARCH} -Iarch/common"
-EXTRA_OEMAKE = "CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}'"
+EXTRA_OEMAKE = "CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}' LIBDIR='${base_libdir}'"
do_compile() {
oe_runmake ARCH=${ARCH}
diff --git a/meta/recipes-core/musl/musl.inc b/meta/recipes-core/musl/musl.inc
index bdce412162..54edfc88e5 100644
--- a/meta/recipes-core/musl/musl.inc
+++ b/meta/recipes-core/musl/musl.inc
@@ -9,7 +9,7 @@ standards-conformance and safety."
HOMEPAGE = "http://www.musl-libc.org/"
LICENSE = "MIT"
SECTION = "libs"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=f95ee848a08ad253c04723da00cedb01"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=b03f1cc25363d094011f8f4fd8bcfb68"
INHIBIT_DEFAULT_DEPS = "1"
diff --git a/meta/recipes-core/musl/musl/0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch b/meta/recipes-core/musl/musl/0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch
index 462d338b96..ba00efe7b3 100644
--- a/meta/recipes-core/musl/musl/0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch
+++ b/meta/recipes-core/musl/musl/0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch
@@ -22,11 +22,9 @@ Upstream-Status: Pending
tools/install.sh | 8 +++++---
2 files changed, 6 insertions(+), 4 deletions(-)
-diff --git a/Makefile b/Makefile
-index 8246b78..d1dbe39 100644
--- a/Makefile
+++ b/Makefile
-@@ -215,7 +215,7 @@ $(DESTDIR)$(includedir)/%: $(srcdir)/include/%
+@@ -210,7 +210,7 @@ $(DESTDIR)$(includedir)/%: $(srcdir)/inc
$(INSTALL) -D -m 644 $< $@
$(DESTDIR)$(LDSO_PATHNAME): $(DESTDIR)$(libdir)/libc.so
@@ -35,8 +33,6 @@ index 8246b78..d1dbe39 100644
install-libs: $(ALL_LIBS:lib/%=$(DESTDIR)$(libdir)/%) $(if $(SHARED_LIBS),$(DESTDIR)$(LDSO_PATHNAME),)
-diff --git a/tools/install.sh b/tools/install.sh
-index d913b60..b6a7f79 100755
--- a/tools/install.sh
+++ b/tools/install.sh
@@ -6,18 +6,20 @@
@@ -62,7 +58,7 @@ index d913b60..b6a7f79 100755
m) mode=$OPTARG ;;
?) usage ;;
esac
-@@ -48,7 +50,7 @@ trap 'rm -f "$tmp"' EXIT INT QUIT TERM HUP
+@@ -48,7 +50,7 @@ trap 'rm -f "$tmp"' EXIT INT QUIT TERM H
umask 077
if test "$symlink" ; then
@@ -71,6 +67,3 @@ index d913b60..b6a7f79 100755
else
cat < "$1" > "$tmp"
chmod "$mode" "$tmp"
---
-2.7.4
-
diff --git a/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch b/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch
index 6a875a717e..f57aae5f3c 100644
--- a/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch
+++ b/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch
@@ -20,11 +20,9 @@ Signed-off-by: Serhey Popovych <serhe.popovych@gmail.com>
ldso/dynlink.c | 4 +++-
2 files changed, 5 insertions(+), 2 deletions(-)
-diff --git a/Makefile b/Makefile
-index b46f8ca4..c07e4ae8 100644
--- a/Makefile
+++ b/Makefile
-@@ -46,7 +46,8 @@ CFLAGS_AUTO = -Os -pipe
+@@ -47,7 +47,8 @@ CFLAGS_AUTO = -Os -pipe
CFLAGS_C99FSE = -std=c99 -ffreestanding -nostdinc
CFLAGS_ALL = $(CFLAGS_C99FSE)
@@ -34,20 +32,18 @@ index b46f8ca4..c07e4ae8 100644
CFLAGS_ALL += $(CPPFLAGS) $(CFLAGS_AUTO) $(CFLAGS)
LDFLAGS_ALL = $(LDFLAGS_AUTO) $(LDFLAGS)
-diff --git a/ldso/dynlink.c b/ldso/dynlink.c
-index ec921dfd..7c119c55 100644
--- a/ldso/dynlink.c
+++ b/ldso/dynlink.c
-@@ -22,6 +22,8 @@
+@@ -24,6 +24,8 @@
+ #include "libc.h"
#include "dynlink.h"
- #include "malloc_impl.h"
+#define SYS_PATH_DFLT SYSLIBDIR ":" LIBDIR
+
static void error(const char *, ...);
#define MAXP2(a,b) (-(-(a)&-(b)))
-@@ -1038,7 +1040,7 @@ static struct dso *load_library(const char *name, struct dso *needed_by)
+@@ -1071,7 +1073,7 @@ static struct dso *load_library(const ch
sys_path = "";
}
}
@@ -56,6 +52,3 @@ index ec921dfd..7c119c55 100644
fd = path_open(name, sys_path, buf, sizeof buf);
}
pathname = buf;
---
-2.7.4
-
diff --git a/meta/recipes-core/musl/musl_git.bb b/meta/recipes-core/musl/musl_git.bb
index afc8446547..9c0818cfa5 100644
--- a/meta/recipes-core/musl/musl_git.bb
+++ b/meta/recipes-core/musl/musl_git.bb
@@ -4,9 +4,9 @@
require musl.inc
inherit linuxloader
-SRCREV = "040c1d16b468c50c04fc94edff521f1637708328"
+SRCREV = "a5aff1972c9e3981566414b09a28e331ccd2be5d"
-BASEVER = "1.2.0"
+BASEVER = "1.2.1"
PV = "${BASEVER}+git${SRCPV}"
@@ -29,6 +29,7 @@ DEPENDS = "virtual/${TARGET_PREFIX}binutils \
libssp-nonshared \
"
GLIBC_LDSO = "${@get_glibc_loader(d)}"
+MUSL_LDSO_ARCH = "${@get_musl_loader_arch(d)}"
export CROSS_COMPILE="${TARGET_PREFIX}"
@@ -48,7 +49,7 @@ CONFIGUREOPTS = " \
--bindir=${bindir} \
--libdir=${libdir} \
--includedir=${includedir} \
- --syslibdir=${base_libdir} \
+ --syslibdir=/lib \
"
do_configure() {
@@ -61,32 +62,28 @@ do_compile() {
do_install() {
oe_runmake install DESTDIR='${D}'
-
- install -d ${D}${bindir}
+ install -d ${D}${bindir} ${D}${base_libdir} ${D}${sysconfdir}
+ echo "${base_libdir}" > ${D}${sysconfdir}/ld-musl-${MUSL_LDSO_ARCH}.path
+ echo "${libdir}" >> ${D}${sysconfdir}/ld-musl-${MUSL_LDSO_ARCH}.path
rm -f ${D}${bindir}/ldd ${D}${GLIBC_LDSO}
lnr ${D}${libdir}/libc.so ${D}${bindir}/ldd
lnr ${D}${libdir}/libc.so ${D}${GLIBC_LDSO}
- for l in crypt dl m pthread resolv rt util xnet
- do
- ln -sf libc.so ${D}${libdir}/lib$l.so
- done
- for i in libc.so.6 libcrypt.so.1 libdl.so.2 libm.so.6 libpthread.so.0 libresolv.so.2 librt.so.1 libutil.so.1; do
- ln -sf libc.so ${D}${libdir}/$i
- done
}
PACKAGES =+ "${PN}-glibc-compat"
-FILES_${PN}-glibc-compat += "\
- ${libdir}/libc.so.6 ${libdir}/libcrypt.so.1 \
- ${libdir}/libdl.so.2 ${libdir}/libm.so.6 \
- ${libdir}/libpthread.so.0 ${libdir}/libresolv.so.2 \
- ${libdir}/librt.so.1 ${libdir}/libutil.so.1 \
- ${GLIBC_LDSO} \
- "
+FILES_${PN} += "/lib/ld-musl-${MUSL_LDSO_ARCH}.so.1 ${sysconfdir}/ld-musl-${MUSL_LDSO_ARCH}.path"
+FILES_${PN}-glibc-compat += "${GLIBC_LDSO}"
+FILES_${PN}-staticdev = "${libdir}/libc.a"
+FILES_${PN}-dev =+ "${libdir}/libcrypt.a ${libdir}/libdl.a ${libdir}/libm.a \
+ ${libdir}/libpthread.a ${libdir}/libresolv.a \
+ ${libdir}/librt.a ${libdir}/libutil.a ${libdir}/libxnet.a \
+ "
RDEPENDS_${PN}-dev += "linux-libc-headers-dev bsd-headers-dev libssp-nonshared-staticdev"
RPROVIDES_${PN}-dev += "libc-dev virtual-libc-dev"
RPROVIDES_${PN} += "ldd libsegfault rtld(GNU_HASH)"
LEAD_SONAME = "libc.so"
+INSANE_SKIP_${PN}-dev = "staticdev"
+INSANE_SKIP_${PN} = "libdir"
diff --git a/meta/recipes-core/ncurses/files/config.cache b/meta/recipes-core/ncurses/files/config.cache
deleted file mode 100644
index 6a9217d5bb..0000000000
--- a/meta/recipes-core/ncurses/files/config.cache
+++ /dev/null
@@ -1,4 +0,0 @@
-#! /bin/sh
-
-cf_cv_func_nanosleep=yes
-cf_cv_func_mkstemp=yes
diff --git a/meta/recipes-core/ncurses/ncurses.inc b/meta/recipes-core/ncurses/ncurses.inc
index b7bf4c0d81..4b61889668 100644
--- a/meta/recipes-core/ncurses/ncurses.inc
+++ b/meta/recipes-core/ncurses/ncurses.inc
@@ -2,7 +2,7 @@ SUMMARY = "The New Curses library"
DESCRIPTION = "SVr4 and XSI-Curses compatible curses library and terminfo tools including tic, infocmp, captoinfo. Supports color, multiple highlights, forms-drawing characters, and automatic recognition of keypad and function-key sequences. Extensions include resizable windows and mouse support on both xterm and Linux console using the gpm library."
HOMEPAGE = "http://www.gnu.org/software/ncurses/ncurses.html"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://ncurses/base/version.c;beginline=1;endline=27;md5=cbc180a8c44ca642e97c35452fab5f66"
+LIC_FILES_CHKSUM = "file://ncurses/base/version.c;beginline=1;endline=27;md5=5526f2f3a29edc95538b368a4771edda"
SECTION = "libs"
DEPENDS = "ncurses-native"
DEPENDS_class-native = ""
@@ -16,7 +16,8 @@ inherit autotools binconfig-disabled multilib_header pkgconfig
SRC_URI = "git://salsa.debian.org/debian/ncurses.git;protocol=https"
EXTRA_AUTORECONF = "-I m4"
-CONFIG_SITE =+ "${WORKDIR}/config.cache"
+
+CACHED_CONFIGUREVARS = "cf_cv_func_nanosleep=yes"
EXTRASITECONFIG = "CFLAGS='${CFLAGS} -I${SYSROOT_DESTDIR}${includedir}'"
@@ -272,6 +273,11 @@ inherit update-alternatives
ALTERNATIVE_PRIORITY = "100"
ALTERNATIVE_ncurses-tools_class-target = "clear reset"
+ALTERNATIVE_ncurses-terminfo_class-target = "st st-256color"
+
+ALTERNATIVE_LINK_NAME[st] = "${datadir}/terminfo/s/st"
+
+ALTERNATIVE_LINK_NAME[st-256color] = "${datadir}/terminfo/s/st-256color"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-core/ncurses/ncurses_6.1+20191019.bb b/meta/recipes-core/ncurses/ncurses_6.1+20191019.bb
deleted file mode 100644
index 187777f6ef..0000000000
--- a/meta/recipes-core/ncurses/ncurses_6.1+20191019.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-require ncurses.inc
-
-SRC_URI += "file://0001-tic-hang.patch \
- file://0002-configure-reproducible.patch \
- file://config.cache \
- "
-# commit id corresponds to the revision in package version
-SRCREV = "ea70ec815b362f5bbad7a827a2edf50fd2b459cc"
-S = "${WORKDIR}/git"
-EXTRA_OECONF += "--with-abi-version=5 --cache-file=${B}/config.cache"
-UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+(\+\d+)*)"
-
-CVE_VERSION = "6.1.${@d.getVar("PV").split('+')[1]}"
diff --git a/meta/recipes-core/ncurses/ncurses_6.2.bb b/meta/recipes-core/ncurses/ncurses_6.2.bb
new file mode 100644
index 0000000000..f3c84c2877
--- /dev/null
+++ b/meta/recipes-core/ncurses/ncurses_6.2.bb
@@ -0,0 +1,13 @@
+require ncurses.inc
+
+SRC_URI += "file://0001-tic-hang.patch \
+ file://0002-configure-reproducible.patch \
+ "
+# commit id corresponds to the revision in package version
+SRCREV = "a669013cd5e9d6434e5301348ea51baf306c93c4"
+S = "${WORKDIR}/git"
+EXTRA_OECONF += "--with-abi-version=5"
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)$"
+
+# This is needed when using patchlevel versions like 6.1+20181013
+#CVE_VERSION = "${@d.getVar("PV").split('+')[0]}.${@d.getVar("PV").split('+')[1]}"
diff --git a/meta/recipes-core/netbase/netbase_6.0.bb b/meta/recipes-core/netbase/netbase_6.1.bb
index 2fb5762b30..bc0049c020 100644
--- a/meta/recipes-core/netbase/netbase_6.0.bb
+++ b/meta/recipes-core/netbase/netbase_6.1.bb
@@ -8,8 +8,8 @@ PE = "1"
SRC_URI = "${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}.tar.xz"
-SRC_URI[md5sum] = "3417b0487161f1a2b070a3308cd7f957"
-SRC_URI[sha256sum] = "692baeb7b76eba5580c7edbc97ce1784a06b5aa4b367c5ed0b39e0ce7a97d594"
+SRC_URI[md5sum] = "e5871a3a5c8390557b8033cf19316a55"
+SRC_URI[sha256sum] = "084d743bd84d4d9380bac4c71c51e57406dce44f5a69289bb823c903e9b035d8"
UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/n/netbase/"
do_install () {
diff --git a/meta/recipes-core/newlib/libgloss_3.2.0.bb b/meta/recipes-core/newlib/libgloss_3.3.0.bb
index c9ed30d988..c9ed30d988 100644
--- a/meta/recipes-core/newlib/libgloss_3.2.0.bb
+++ b/meta/recipes-core/newlib/libgloss_3.3.0.bb
diff --git a/meta/recipes-core/newlib/newlib.inc b/meta/recipes-core/newlib/newlib.inc
index 5edea8aba1..96e230f985 100644
--- a/meta/recipes-core/newlib/newlib.inc
+++ b/meta/recipes-core/newlib/newlib.inc
@@ -16,8 +16,7 @@ LIC_FILES_CHKSUM = " \
"
SRC_URI = "https://sourceware.org/pub/newlib/newlib-${PV}.tar.gz"
-SRC_URI[md5sum] = "afb3a01c8c82b6717ea55659a4de30ec"
-SRC_URI[sha256sum] = "f7b2322964a1e3b37bec0768da20f50dfb62247d729110974dd95756a53bb6d4"
+SRC_URI[sha256sum] = "58dd9e3eaedf519360d92d84205c3deef0b3fc286685d1c562e245914ef72c66"
INHIBIT_DEFAULT_DEPS = "1"
DEPENDS = "virtual/${TARGET_PREFIX}gcc"
diff --git a/meta/recipes-core/newlib/newlib_3.2.0.bb b/meta/recipes-core/newlib/newlib_3.3.0.bb
index 7ab5b2b94e..7ab5b2b94e 100644
--- a/meta/recipes-core/newlib/newlib_3.2.0.bb
+++ b/meta/recipes-core/newlib/newlib_3.3.0.bb
diff --git a/meta/recipes-core/os-release/os-release.bb b/meta/recipes-core/os-release/os-release.bb
index d5793c6fed..a29d678125 100644
--- a/meta/recipes-core/os-release/os-release.bb
+++ b/meta/recipes-core/os-release/os-release.bb
@@ -13,6 +13,7 @@ do_configure[noexec] = "1"
# Other valid fields: BUILD_ID ID_LIKE ANSI_COLOR CPE_NAME
# HOME_URL SUPPORT_URL BUG_REPORT_URL
OS_RELEASE_FIELDS = "ID ID_LIKE NAME VERSION VERSION_ID PRETTY_NAME"
+OS_RELEASE_UNQUOTED_FIELDS = "ID VERSION_ID VARIANT_ID"
ID = "${DISTRO}"
NAME = "${DISTRO_NAME}"
@@ -22,8 +23,8 @@ PRETTY_NAME = "${DISTRO_NAME} ${VERSION}"
BUILD_ID ?= "${DATETIME}"
BUILD_ID[vardepsexclude] = "DATETIME"
-def sanitise_version(ver):
- # VERSION_ID should be (from os-release(5)):
+def sanitise_value(ver):
+ # unquoted fields like VERSION_ID should be (from os-release(5)):
# lower-case string (mostly numeric, no spaces or other characters
# outside of 0-9, a-z, ".", "_" and "-")
ret = ver.replace('+', '-').replace(' ','_')
@@ -32,11 +33,14 @@ def sanitise_version(ver):
python do_compile () {
with open(d.expand('${B}/os-release'), 'w') as f:
for field in d.getVar('OS_RELEASE_FIELDS').split():
+ unquotedFields = d.getVar('OS_RELEASE_UNQUOTED_FIELDS').split()
value = d.getVar(field)
- if value and field == 'VERSION_ID':
- value = sanitise_version(value)
if value:
- f.write('{0}="{1}"\n'.format(field, value))
+ if field in unquotedFields:
+ value = sanitise_value(value)
+ f.write('{0}={1}\n'.format(field, value))
+ else:
+ f.write('{0}="{1}"\n'.format(field, value))
}
do_compile[vardeps] += "${OS_RELEASE_FIELDS}"
diff --git a/meta/recipes-core/ovmf/ovmf/0004-ovmf-Update-to-latest.patch b/meta/recipes-core/ovmf/ovmf/0001-ovmf-Update-to-latest.patch
index c10a39d95d..1d4273cdc1 100644
--- a/meta/recipes-core/ovmf/ovmf/0004-ovmf-Update-to-latest.patch
+++ b/meta/recipes-core/ovmf/ovmf/0001-ovmf-Update-to-latest.patch
@@ -1,7 +1,7 @@
-From 94eff316b31b4d0348af28c77be5c00bc09fe8e7 Mon Sep 17 00:00:00 2001
+From 640a634936ba8eca4778470fb14c6eb9cfd19953 Mon Sep 17 00:00:00 2001
From: Steve Langasek <steve.langasek@ubuntu.com>
Date: Sat, 10 Jun 2017 01:39:36 -0700
-Subject: [PATCH 4/5] ovmf: Update to latest
+Subject: [PATCH 1/2] ovmf: Update to latest
Description: pass -fno-stack-protector to all GCC toolchains
The upstream build rules inexplicably pass -fno-stack-protector only
@@ -15,12 +15,12 @@ Upstream-Status: Pending
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
-index ca0b122dbb..b0066c2ab8 100755
+index 2b17d3b297..4cd2567c2a 100755
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
-@@ -1941,10 +1941,10 @@ DEFINE GCC_X64_RC_FLAGS = -I binary -O elf64-x86-64 -B i386
- DEFINE GCC_ARM_RC_FLAGS = -I binary -O elf32-littlearm -B arm --rename-section .data=.hii
- DEFINE GCC_AARCH64_RC_FLAGS = -I binary -O elf64-littleaarch64 -B aarch64 --rename-section .data=.hii
+@@ -1950,10 +1950,10 @@ DEFINE GCC_AARCH64_RC_FLAGS = -I binary -O elf64-littleaarch64 -B aarch64
+ # GCC Build Flag for included header file list generation
+ DEFINE GCC_DEPS_FLAGS = -MMD -MF $@.deps
-DEFINE GCC48_ALL_CC_FLAGS = -g -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -ffunction-sections -fdata-sections -include AutoGen.h -fno-common -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings
+DEFINE GCC48_ALL_CC_FLAGS = -g -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -ffunction-sections -fdata-sections -fno-stack-protector -include AutoGen.h -fno-common -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings
@@ -32,7 +32,7 @@ index ca0b122dbb..b0066c2ab8 100755
DEFINE GCC48_IA32_X64_ASLDLINK_FLAGS = DEF(GCC48_IA32_X64_DLINK_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable
DEFINE GCC48_IA32_X64_DLINK_FLAGS = DEF(GCC48_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map,--whole-archive
DEFINE GCC48_IA32_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x220 DEF(GCC_DLINK2_FLAGS_COMMON)
-@@ -1953,7 +1953,7 @@ DEFINE GCC48_X64_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x228 DEF
+@@ -1962,7 +1962,7 @@ DEFINE GCC48_X64_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x228 DEF
DEFINE GCC48_ASM_FLAGS = DEF(GCC_ASM_FLAGS)
DEFINE GCC48_ARM_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ASM_FLAGS) -mlittle-endian
DEFINE GCC48_AARCH64_ASM_FLAGS = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ASM_FLAGS) -mlittle-endian
@@ -42,5 +42,5 @@ index ca0b122dbb..b0066c2ab8 100755
DEFINE GCC48_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -mcmodel=large DEF(GCC_AARCH64_CC_FLAGS)
DEFINE GCC48_AARCH64_CC_XIPFLAGS = DEF(GCC_AARCH64_CC_XIPFLAGS)
--
-2.17.1
+2.24.0
diff --git a/meta/recipes-core/ovmf/ovmf_git.bb b/meta/recipes-core/ovmf/ovmf_git.bb
index 9667fa0c86..84547630e8 100644
--- a/meta/recipes-core/ovmf/ovmf_git.bb
+++ b/meta/recipes-core/ovmf/ovmf_git.bb
@@ -12,15 +12,15 @@ LIC_FILES_CHKSUM = "file://OvmfPkg/License.txt;md5=06357ddc23f46577c2aeaeaf7b776
PACKAGECONFIG ??= ""
PACKAGECONFIG[secureboot] = ",,,"
-SRC_URI = "gitsm://github.com/tianocore/edk2.git;branch=master;protocol=git \
+SRC_URI = "gitsm://github.com/tianocore/edk2.git;branch=master;protocol=https \
file://0001-ovmf-update-path-to-native-BaseTools.patch \
file://0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch \
file://0003-ovmf-enable-long-path-file.patch \
- file://0004-ovmf-Update-to-latest.patch \
+ file://0001-ovmf-Update-to-latest.patch \
"
-PV = "edk2-stable201911"
-SRCREV = "bd85bf54c268204c7a698a96f3ccd96cd77952cd"
+PV = "edk2-stable202005"
+SRCREV = "ca407c7246bf405da6d9b1b9d93e5e7f17b4b1f9"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>edk2-stable.*)"
inherit deploy
@@ -37,7 +37,7 @@ EDK_TOOLS_DIR="edk2_basetools"
BUILD_OPTIMIZATION="-pipe"
# OVMF supports IA only, although it could conceivably support ARM someday.
-COMPATIBLE_HOST='(i.86|x86_64).*'
+COMPATIBLE_HOST_class-target='(i.86|x86_64).*'
# Additional build flags for OVMF with Secure Boot.
# Fedora also uses "-D SMM_REQUIRE -D EXCLUDE_SHELL_FROM_FD".
@@ -220,7 +220,6 @@ do_deploy[depends] += "${DEPLOYDEP}"
do_deploy() {
}
-do_deploy[cleandirs] = "${DEPLOYDIR}"
do_deploy_class-target() {
# For use with "runqemu ovmf".
for i in \
diff --git a/meta/recipes-core/packagegroups/packagegroup-base.bb b/meta/recipes-core/packagegroups/packagegroup-base.bb
index 1f802da09b..90b79adfdc 100644
--- a/meta/recipes-core/packagegroups/packagegroup-base.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-base.bb
@@ -110,16 +110,16 @@ python __anonymous () {
machine_features= set(d.getVar("MACHINE_FEATURES").split())
if "bluetooth" in distro_features and not "bluetooth" in machine_features and ("pcmcia" in machine_features or "pci" in machine_features or "usbhost" in machine_features):
- d.setVar("ADD_BT", "packagegroup-base-bluetooth")
+ d.setVar("ADD_BT", "${MLPREFIX}packagegroup-base-bluetooth")
if "wifi" in distro_features and not "wifi" in machine_features and ("pcmcia" in machine_features or "pci" in machine_features or "usbhost" in machine_features):
- d.setVar("ADD_WIFI", "packagegroup-base-wifi")
+ d.setVar("ADD_WIFI", "${MLPREFIX}packagegroup-base-wifi")
if "3g" in distro_features and not "3g" in machine_features and ("pcmcia" in machine_features or "pci" in machine_features or "usbhost" in machine_features):
- d.setVar("ADD_3G", "packagegroup-base-3g")
+ d.setVar("ADD_3G", "${MLPREFIX}packagegroup-base-3g")
if "nfc" in distro_features and not "nfc" in machine_features and ("usbhost" in machine_features):
- d.setVar("ADD_NFC", "packagegroup-base-nfc")
+ d.setVar("ADD_NFC", "${MLPREFIX}packagegroup-base-nfc")
}
#
diff --git a/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb b/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb
index 81fbdf4608..542a02057c 100644
--- a/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb
@@ -13,9 +13,12 @@ PR = "r3"
MTRACE = ""
MTRACE_libc-glibc = "libc-mtrace"
+STRACE = "strace"
+STRACE_riscv32 = ""
+
RDEPENDS_${PN} = "\
gdb \
gdbserver \
- strace \
${MTRACE} \
+ ${STRACE} \
"
diff --git a/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb b/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
index 984c2fac92..d437e28311 100644
--- a/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
@@ -28,6 +28,7 @@ PROFILETOOLS = "\
"
PERF = "perf"
PERF_libc-musl = ""
+PERF_libc-musl_arm = "perf"
# systemtap needs elfutils which is not fully buildable on some arches/libcs
SYSTEMTAP = "systemtap"
@@ -35,17 +36,12 @@ SYSTEMTAP_libc-musl = ""
SYSTEMTAP_nios2 = ""
SYSTEMTAP_riscv64 = ""
-# lttng-ust uses sched_getcpu() which is not there on for some platforms.
-LTTNGUST = "lttng-ust"
-LTTNGUST_arc = ""
-
LTTNGTOOLS = "lttng-tools"
LTTNGTOOLS_arc = ""
-
-LTTNGMODULES = "lttng-modules"
-LTTNGMODULES_arc = ""
+LTTNGTOOLS_riscv32_libc-musl = ""
BABELTRACE = "babeltrace"
+BABELTRACE2 = "babeltrace2"
# valgrind does not work on the following configurations/architectures
@@ -60,15 +56,15 @@ VALGRIND_armv6 = ""
VALGRIND_armeb = ""
VALGRIND_aarch64 = ""
VALGRIND_riscv64 = ""
+VALGRIND_powerpc = "${@bb.utils.contains('TARGET_FPU', 'soft', '', 'valgrind', d)}"
VALGRIND_linux-gnux32 = ""
VALGRIND_linux-gnun32 = ""
RDEPENDS_${PN} = "\
${PROFILETOOLS} \
- ${LTTNGUST} \
${LTTNGTOOLS} \
- ${LTTNGMODULES} \
${BABELTRACE} \
+ ${BABELTRACE2} \
${SYSTEMTAP} \
${VALGRIND} \
"
diff --git a/meta/recipes-core/packagegroups/packagegroup-go-sdk-target.bb b/meta/recipes-core/packagegroups/packagegroup-go-sdk-target.bb
index 5afb490aac..9a52b0781c 100644
--- a/meta/recipes-core/packagegroups/packagegroup-go-sdk-target.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-go-sdk-target.bb
@@ -3,9 +3,10 @@ SUMMARY = "Target packages for the Go SDK"
inherit packagegroup goarch
RDEPENDS_${PN} = " \
+ go \
go-runtime \
go-runtime-dev \
go-runtime-staticdev \
"
-COMPATIBLE_HOST = "^(?!riscv64).*"
+COMPATIBLE_HOST = "^(?!riscv32).*"
diff --git a/meta/recipes-core/psplash/files/psplash-init b/meta/recipes-core/psplash/files/psplash-init
index 4bee866b0d..f58e043733 100755
--- a/meta/recipes-core/psplash/files/psplash-init
+++ b/meta/recipes-core/psplash/files/psplash-init
@@ -23,10 +23,10 @@ for x in $CMDLINE; do
esac
done
-export TMPDIR=/mnt/.psplash
-[ -d $TMPDIR ] || mkdir -p $TMPDIR
-if ! mountpoint -q $TMPDIR; then
- mount tmpfs -t tmpfs $TMPDIR -o,size=40k
+export PSPLASH_FIFO_DIR=/mnt/.psplash
+[ -d $PSPLASH_FIFO_DIR ] || mkdir -p $PSPLASH_FIFO_DIR
+if ! mountpoint -q $PSPLASH_FIFO_DIR; then
+ mount tmpfs -t tmpfs $PSPLASH_FIFO_DIR -o,size=40k
fi
rotation=0
diff --git a/meta/recipes-core/psplash/files/psplash-start.service b/meta/recipes-core/psplash/files/psplash-start.service
new file mode 100644
index 0000000000..36c2bb38e0
--- /dev/null
+++ b/meta/recipes-core/psplash/files/psplash-start.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Start psplash boot splash screen
+DefaultDependencies=no
+RequiresMountsFor=/run
+
+[Service]
+Type=notify
+ExecStart=/usr/bin/psplash
+RemainAfterExit=yes
+
+[Install]
+WantedBy=sysinit.target
diff --git a/meta/recipes-core/psplash/files/psplash-systemd.service b/meta/recipes-core/psplash/files/psplash-systemd.service
new file mode 100644
index 0000000000..082207f232
--- /dev/null
+++ b/meta/recipes-core/psplash/files/psplash-systemd.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Start psplash-systemd progress communication helper
+DefaultDependencies=no
+After=psplash-start.service
+Requires=psplash-start.service
+RequiresMountsFor=/run
+
+[Service]
+ExecStart=/usr/bin/psplash-systemd
+RemainAfterExit=yes
+
+[Install]
+WantedBy=sysinit.target
diff --git a/meta/recipes-core/psplash/psplash_git.bb b/meta/recipes-core/psplash/psplash_git.bb
index 56734c1582..44f0007daf 100644
--- a/meta/recipes-core/psplash/psplash_git.bb
+++ b/meta/recipes-core/psplash/psplash_git.bb
@@ -3,14 +3,17 @@ DESCRIPTION = "PSplash is a userspace graphical boot splash screen for mainly em
HOMEPAGE = "http://git.yoctoproject.org/cgit/cgit.cgi/psplash"
SECTION = "base"
LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://psplash.h;beginline=1;endline=16;md5=840fb2356b10a85bed78dd09dc7745c6"
+LIC_FILES_CHKSUM = "file://psplash.h;beginline=1;endline=8;md5=8f232c1e95929eacab37f00900580224"
+DEPENDS = "gdk-pixbuf-native"
-SRCREV = "2015f7073e98dd9562db0936a254af5ef56356cf"
+SRCREV = "0a902f7cd875ccf018456451be369f05fa55f962"
PV = "0.1+git${SRCPV}"
PR = "r15"
SRC_URI = "git://git.yoctoproject.org/${BPN} \
file://psplash-init \
+ file://psplash-start.service \
+ file://psplash-systemd.service \
${SPLASH_IMAGES}"
UPSTREAM_CHECK_COMMITS = "1"
@@ -19,9 +22,9 @@ SPLASH_IMAGES = "file://psplash-poky-img.h;outsuffix=default"
python __anonymous() {
oldpkgs = d.getVar("PACKAGES").split()
splashfiles = d.getVar('SPLASH_IMAGES').split()
+ mlprefix = d.getVar('MLPREFIX') or ''
pkgs = []
localpaths = []
- haspng = False
for uri in splashfiles:
fetcher = bb.fetch2.Fetch([uri], d)
flocal = os.path.basename(fetcher.localpath(uri))
@@ -39,19 +42,14 @@ python __anonymous() {
bb.fatal("The output name '%s' derived from the URI %s is not valid, please specify the outsuffix parameter" % (outname, uri))
else:
pkgs.append(outname)
- if flocal.endswith(".png"):
- haspng = True
localpaths.append(flocal)
# Set these so that we have less work to do in do_compile and do_install_append
d.setVar("SPLASH_INSTALL", " ".join(pkgs))
d.setVar("SPLASH_LOCALPATHS", " ".join(localpaths))
+ for p in pkgs:
+ d.prependVar("PACKAGES", "%s%s " % (mlprefix, p))
- if haspng:
- d.appendVar("DEPENDS", " gdk-pixbuf-native")
-
- d.prependVar("PACKAGES", "%s " % (" ".join(pkgs)))
- mlprefix = d.getVar('MLPREFIX') or ''
pn = d.getVar('PN') or ''
for p in pkgs:
ep = '%s%s' % (mlprefix, p)
@@ -66,7 +64,11 @@ python __anonymous() {
S = "${WORKDIR}/git"
-inherit autotools pkgconfig update-rc.d update-alternatives
+inherit autotools pkgconfig update-rc.d update-alternatives systemd
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+
+PACKAGECONFIG[systemd] = "--with-systemd,--without-systemd,systemd"
ALTERNATIVE_PRIORITY = "100"
ALTERNATIVE_LINK_NAME[psplash] = "${bindir}/psplash"
@@ -78,7 +80,7 @@ python do_compile () {
# Build a separate executable for each splash image
workdir = d.getVar('WORKDIR')
convertscript = "%s/make-image-header.sh" % d.getVar('S')
- destfile = "%s/psplash-poky-img.h" % d.getVar('S')
+ destfile = "%s/psplash-poky-img.h" % d.getVar('B')
localfiles = d.getVar('SPLASH_LOCALPATHS').split()
outputfiles = d.getVar('SPLASH_INSTALL').split()
for localfile, outputfile in zip(localfiles, outputfiles):
@@ -97,8 +99,17 @@ python do_compile () {
}
do_install_append() {
- install -d ${D}${sysconfdir}/init.d/
- install -m 0755 ${WORKDIR}/psplash-init ${D}${sysconfdir}/init.d/psplash.sh
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/init.d/
+ install -m 0755 ${WORKDIR}/psplash-init ${D}${sysconfdir}/init.d/psplash.sh
+ fi
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${systemd_unitdir}/system
+ install -m 644 ${WORKDIR}/psplash-start.service ${D}/${systemd_unitdir}/system
+ install -m 644 ${WORKDIR}/psplash-systemd.service ${D}/${systemd_unitdir}/system
+ fi
+
install -d ${D}${bindir}
for i in ${SPLASH_INSTALL} ; do
install -m 0755 $i ${D}${bindir}/$i
@@ -106,15 +117,8 @@ do_install_append() {
rm -f ${D}${bindir}/psplash
}
+SYSTEMD_PACKAGES = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${PN}','',d)}"
+SYSTEMD_SERVICE_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'psplash-start.service psplash-systemd.service', '', d)}"
+
INITSCRIPT_NAME = "psplash.sh"
INITSCRIPT_PARAMS = "start 0 S . stop 20 0 1 6 ."
-
-PACKAGE_WRITE_DEPS_append = " ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd-systemctl-native','',d)}"
-pkg_postinst_${PN} () {
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- if [ -n "$D" ]; then
- OPTS="--root=$D"
- fi
- systemctl $OPTS mask psplash.service
- fi
-}
diff --git a/meta/recipes-core/readline/readline.inc b/meta/recipes-core/readline/readline.inc
index 07f54a76f1..052e2d5f3d 100644
--- a/meta/recipes-core/readline/readline.inc
+++ b/meta/recipes-core/readline/readline.inc
@@ -44,7 +44,13 @@ BBCLASSEXTEND = "native nativesdk"
CONFFILES_${PN} += "${sysconfdir}/inputrc"
+inherit update-alternatives
+
+ALTERNATIVE_PRIORITY = "100"
+ALTERNATIVE_${PN}-doc = "history.3"
+ALTERNATIVE_LINK_NAME[history.3] = "${mandir}/man3/history.3"
+
# OpenSuse injects versions into libreadline leading to conficits between our native one and theirs
# see their spec file for where this is injected. Extra versioning is harmless so we just do the same.
SRC_URI_append_class-native = " file://rl-native.map"
-LDFLAGS_append_class-native = " -Wl,--version-script=${WORKDIR}/rl-native.map" \ No newline at end of file
+LDFLAGS_append_class-native = " -Wl,--version-script=${WORKDIR}/rl-native.map"
diff --git a/meta/recipes-core/sysfsutils/sysfsutils_2.1.0.bb b/meta/recipes-core/sysfsutils/sysfsutils_2.1.0.bb
index f9f067dcad..34bf431f40 100644
--- a/meta/recipes-core/sysfsutils/sysfsutils_2.1.0.bb
+++ b/meta/recipes-core/sysfsutils/sysfsutils_2.1.0.bb
@@ -27,7 +27,5 @@ inherit autotools
PACKAGES =+ "libsysfs"
FILES_libsysfs = "${libdir}/lib*${SOLIBS}"
-FILES_libsysfs-dev = "${libdir}/lib*${SOLIBSDEV} ${includedir}"
-FILES_libsysfs-staticdev = "${libdir}/lib*.a"
export libdir = "${base_libdir}"
diff --git a/meta/recipes-core/systemd/systemd-boot_244.3.bb b/meta/recipes-core/systemd/systemd-boot_246.2.bb
index f92c639810..f92c639810 100644
--- a/meta/recipes-core/systemd/systemd-boot_244.3.bb
+++ b/meta/recipes-core/systemd/systemd-boot_246.2.bb
diff --git a/meta/recipes-core/systemd/systemd-conf/wired.network b/meta/recipes-core/systemd/systemd-conf/wired.network
index ff807ba31f..dcf3534596 100644
--- a/meta/recipes-core/systemd/systemd-conf/wired.network
+++ b/meta/recipes-core/systemd/systemd-conf/wired.network
@@ -6,5 +6,6 @@ KernelCommandLine=!nfsroot
DHCP=yes
[DHCP]
+UseMTU=yes
RouteMetric=10
ClientIdentifier=mac
diff --git a/meta/recipes-core/systemd/systemd-conf_244.3.bb b/meta/recipes-core/systemd/systemd-conf_246.1.bb
index d9ec023bfd..d9ec023bfd 100644
--- a/meta/recipes-core/systemd/systemd-conf_244.3.bb
+++ b/meta/recipes-core/systemd/systemd-conf_246.1.bb
diff --git a/meta/recipes-core/systemd/systemd-serialgetty.bb b/meta/recipes-core/systemd/systemd-serialgetty.bb
index 044c6c5b67..0cc0dc8c79 100644
--- a/meta/recipes-core/systemd/systemd-serialgetty.bb
+++ b/meta/recipes-core/systemd/systemd-serialgetty.bb
@@ -21,7 +21,7 @@ do_install() {
install -d ${D}${systemd_unitdir}/system/
install -d ${D}${sysconfdir}/systemd/system/getty.target.wants/
install -m 0644 ${WORKDIR}/serial-getty@.service ${D}${systemd_unitdir}/system/
- sed -i -e s/\@BAUDRATE\@/$default_baudrate/g ${D}${systemd_unitdir}/system/serial-getty@.service
+ sed -i -e "s/\@BAUDRATE\@/$default_baudrate/g" ${D}${systemd_unitdir}/system/serial-getty@.service
tmp="${SERIAL_CONSOLES}"
for entry in $tmp ; do
@@ -34,7 +34,7 @@ do_install() {
else
# install custom service file for the non-default baudrate
install -m 0644 ${WORKDIR}/serial-getty@.service ${D}${systemd_unitdir}/system/serial-getty$baudrate@.service
- sed -i -e s/\@BAUDRATE\@/$baudrate/g ${D}${systemd_unitdir}/system/serial-getty$baudrate@.service
+ sed -i -e "s/\@BAUDRATE\@/$baudrate/g" ${D}${systemd_unitdir}/system/serial-getty$baudrate@.service
# enable the service
ln -sf ${systemd_unitdir}/system/serial-getty$baudrate@.service \
${D}${sysconfdir}/systemd/system/getty.target.wants/serial-getty$baudrate@$ttydev.service
diff --git a/meta/recipes-core/systemd/systemd-serialgetty/serial-getty@.service b/meta/recipes-core/systemd/systemd-serialgetty/serial-getty@.service
index 15af16a9f8..549d566009 100644
--- a/meta/recipes-core/systemd/systemd-serialgetty/serial-getty@.service
+++ b/meta/recipes-core/systemd/systemd-serialgetty/serial-getty@.service
@@ -1,3 +1,5 @@
+# SPDX-License-Identifier: LGPL-2.1+
+#
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
@@ -11,7 +13,7 @@ Documentation=man:agetty(8) man:systemd-getty-generator(8)
Documentation=http://0pointer.de/blog/projects/serial-console.html
PartOf=dev-%i.device
ConditionPathExists=/dev/%i
-After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service
+After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service getty-pre.target
After=rc-local.service
# If additional gettys are spawned during boot then we should make
@@ -20,12 +22,17 @@ After=rc-local.service
Before=getty.target
IgnoreOnIsolate=yes
+# IgnoreOnIsolate causes issues with sulogin, if someone isolates
+# rescue.target or starts rescue.service from multi-user.target or
+# graphical.target.
+Conflicts=rescue.service
+Before=rescue.service
+
[Service]
Environment="TERM=xterm"
ExecStart=-/sbin/agetty -8 -L %I @BAUDRATE@ $TERM
Type=idle
Restart=always
-RestartSec=0
UtmpIdentifier=%I
TTYPath=/dev/%I
TTYReset=yes
diff --git a/meta/recipes-core/systemd/systemd.inc b/meta/recipes-core/systemd/systemd.inc
index e73b397b5d..1733565fc0 100644
--- a/meta/recipes-core/systemd/systemd.inc
+++ b/meta/recipes-core/systemd/systemd.inc
@@ -14,8 +14,8 @@ LICENSE = "GPLv2 & LGPLv2.1"
LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
-SRCREV = "b7ed902b2394f94e7f1fbe6c3194b5cd9a9429e6"
-SRCBRANCH = "v244-stable"
+SRCREV = "2ee1c57c4ff4fd3349cf03c2e89fbd18ca0b3a4a"
+SRCBRANCH = "v246-stable"
SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=git;branch=${SRCBRANCH}"
S = "${WORKDIR}/git"
diff --git a/meta/recipes-core/systemd/systemd/0001-Handle-missing-gshadow.patch b/meta/recipes-core/systemd/systemd/0001-Handle-missing-gshadow.patch
new file mode 100644
index 0000000000..c5960a0d60
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0001-Handle-missing-gshadow.patch
@@ -0,0 +1,162 @@
+From ef9580ea1e2f1e57af3c7dcb0ec392ba8dbb5c8d Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Tue, 10 Mar 2020 11:05:20 +0000
+Subject: [PATCH] Handle missing gshadow
+
+gshadow usage is now present in the userdb code. Mask all uses of it to
+allow compilation on musl
+
+Upstream-Status: Inappropriate [musl specific]
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ src/shared/group-record-nss.c | 20 ++++++++++++++++++++
+ src/shared/group-record-nss.h | 4 ++++
+ src/shared/userdb.c | 6 ++++++
+ 3 files changed, 30 insertions(+)
+
+--- a/src/shared/group-record-nss.c
++++ b/src/shared/group-record-nss.c
+@@ -19,8 +19,10 @@ int nss_group_to_group_record(
+ if (isempty(grp->gr_name))
+ return -EINVAL;
+
++#if ENABLE_GSHADOW
+ if (sgrp && !streq_ptr(sgrp->sg_namp, grp->gr_name))
+ return -EINVAL;
++#endif
+
+ g = group_record_new();
+ if (!g)
+@@ -36,6 +38,7 @@ int nss_group_to_group_record(
+
+ g->gid = grp->gr_gid;
+
++#if ENABLE_GSHADOW
+ if (sgrp) {
+ if (looks_like_hashed_password(sgrp->sg_passwd)) {
+ g->hashed_password = strv_new(sgrp->sg_passwd);
+@@ -51,6 +54,7 @@ int nss_group_to_group_record(
+ if (!g->administrators)
+ return -ENOMEM;
+ }
++#endif
+
+ r = json_build(&g->json, JSON_BUILD_OBJECT(
+ JSON_BUILD_PAIR("groupName", JSON_BUILD_STRING(g->group_name)),
+@@ -76,6 +80,7 @@ int nss_sgrp_for_group(const struct grou
+ assert(ret_sgrp);
+ assert(ret_buffer);
+
++#if ENABLE_GSHADOW
+ for (;;) {
+ _cleanup_free_ char *buf = NULL;
+ struct sgrp sgrp, *result;
+@@ -104,6 +109,9 @@ int nss_sgrp_for_group(const struct grou
+ buflen *= 2;
+ buf = mfree(buf);
+ }
++#else
++ return -ESRCH;
++#endif
+ }
+
+ int nss_group_record_by_name(
+@@ -115,7 +123,9 @@ int nss_group_record_by_name(
+ struct group grp, *result;
+ bool incomplete = false;
+ size_t buflen = 4096;
++#if ENABLE_GSHADOW
+ struct sgrp sgrp, *sresult = NULL;
++#endif
+ int r;
+
+ assert(name);
+@@ -145,6 +155,7 @@ int nss_group_record_by_name(
+ buf = mfree(buf);
+ }
+
++#if ENABLE_GSHADOW
+ if (with_shadow) {
+ r = nss_sgrp_for_group(result, &sgrp, &sbuf);
+ if (r < 0) {
+@@ -156,6 +167,9 @@ int nss_group_record_by_name(
+ incomplete = true;
+
+ r = nss_group_to_group_record(result, sresult, ret);
++#else
++ r = nss_group_to_group_record(result, NULL, ret);
++#endif
+ if (r < 0)
+ return r;
+
+@@ -172,7 +186,9 @@ int nss_group_record_by_gid(
+ struct group grp, *result;
+ bool incomplete = false;
+ size_t buflen = 4096;
++#if ENABLE_GSHADOW
+ struct sgrp sgrp, *sresult = NULL;
++#endif
+ int r;
+
+ assert(ret);
+@@ -200,6 +216,7 @@ int nss_group_record_by_gid(
+ buf = mfree(buf);
+ }
+
++#if ENABLE_GSHADOW
+ if (with_shadow) {
+ r = nss_sgrp_for_group(result, &sgrp, &sbuf);
+ if (r < 0) {
+@@ -211,6 +228,9 @@ int nss_group_record_by_gid(
+ incomplete = true;
+
+ r = nss_group_to_group_record(result, sresult, ret);
++#else
++ r = nss_group_to_group_record(result, NULL, ret);
++#endif
+ if (r < 0)
+ return r;
+
+--- a/src/shared/group-record-nss.h
++++ b/src/shared/group-record-nss.h
+@@ -2,7 +2,11 @@
+ #pragma once
+
+ #include <grp.h>
++#if ENABLE_GSHADOW
+ #include <gshadow.h>
++#else
++struct sgrp;
++#endif
+
+ #include "group-record.h"
+
+--- a/src/shared/userdb.c
++++ b/src/shared/userdb.c
+@@ -930,13 +930,16 @@ int groupdb_iterator_get(UserDBIterator
+ if (gr) {
+ _cleanup_free_ char *buffer = NULL;
+ bool incomplete = false;
++#if ENABLE_GSHADOW
+ struct sgrp sgrp;
++#endif
+
+ if (streq_ptr(gr->gr_name, "root"))
+ iterator->synthesize_root = false;
+ if (gr->gr_gid == GID_NOBODY)
+ iterator->synthesize_nobody = false;
+
++#if ENABLE_GSHADOW
+ r = nss_sgrp_for_group(gr, &sgrp, &buffer);
+ if (r < 0) {
+ log_debug_errno(r, "Failed to acquire shadow entry for group %s, ignoring: %m", gr->gr_name);
+@@ -944,6 +947,9 @@ int groupdb_iterator_get(UserDBIterator
+ }
+
+ r = nss_group_to_group_record(gr, r >= 0 ? &sgrp : NULL, ret);
++#else
++ r = nss_group_to_group_record(gr, NULL, ret);
++#endif
+ if (r < 0)
+ return r;
+
diff --git a/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch b/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch
index 6eaaec71c5..2676c144f2 100644
--- a/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch
+++ b/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch
@@ -1,4 +1,4 @@
-From c73a87871df31b4f8d96c9d443759c6f702935f6 Mon Sep 17 00:00:00 2001
+From 564830719be2017c4953589d50f21a9e856a4ecc Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Thu, 21 Feb 2019 16:23:24 +0800
Subject: [PATCH] binfmt: Don't install dependency links at install time for
@@ -25,34 +25,34 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com>
units/systemd-binfmt.service.in | 4 ++++
3 files changed, 9 insertions(+), 4 deletions(-)
-diff --git a/units/meson.build b/units/meson.build
-index 6a3a0d0dea22..bbb1b78618c3 100644
---- a/units/meson.build
-+++ b/units/meson.build
-@@ -46,8 +46,7 @@ units = [
+Index: systemd-stable/units/meson.build
+===================================================================
+--- systemd-stable.orig/units/meson.build
++++ systemd-stable/units/meson.build
+@@ -54,8 +54,7 @@ units = [
['poweroff.target', '',
- 'runlevel0.target'],
+ (with_runlevels ? 'runlevel0.target' : '')],
['printer.target', ''],
- ['proc-sys-fs-binfmt_misc.automount', 'ENABLE_BINFMT',
- 'sysinit.target.wants/'],
+ ['proc-sys-fs-binfmt_misc.automount', 'ENABLE_BINFMT'],
['proc-sys-fs-binfmt_misc.mount', 'ENABLE_BINFMT'],
['reboot.target', '',
- 'runlevel6.target ctrl-alt-del.target'],
-@@ -130,8 +129,7 @@ in_units = [
- ['systemd-ask-password-console.service', ''],
- ['systemd-ask-password-wall.service', ''],
+ (with_runlevels ? 'runlevel6.target ctrl-alt-del.target' : 'ctrl-alt-del.target')],
+@@ -162,8 +161,7 @@ in_units = [
+ ['rc-local.service', 'HAVE_SYSV_COMPAT'],
+ ['rescue.service', ''],
['systemd-backlight@.service', 'ENABLE_BACKLIGHT'],
- ['systemd-binfmt.service', 'ENABLE_BINFMT',
- 'sysinit.target.wants/'],
+ ['systemd-binfmt.service', 'ENABLE_BINFMT'],
['systemd-bless-boot.service', 'ENABLE_EFI HAVE_BLKID'],
['systemd-boot-check-no-failures.service', ''],
- ['systemd-boot-system-token.service', 'ENABLE_EFI',
-diff --git a/units/proc-sys-fs-binfmt_misc.automount b/units/proc-sys-fs-binfmt_misc.automount
-index 30a6bc991844..4231f3b70fe9 100644
---- a/units/proc-sys-fs-binfmt_misc.automount
-+++ b/units/proc-sys-fs-binfmt_misc.automount
+ ['systemd-coredump@.service', 'ENABLE_COREDUMP'],
+Index: systemd-stable/units/proc-sys-fs-binfmt_misc.automount
+===================================================================
+--- systemd-stable.orig/units/proc-sys-fs-binfmt_misc.automount
++++ systemd-stable/units/proc-sys-fs-binfmt_misc.automount
@@ -18,3 +18,6 @@ ConditionPathIsReadWrite=/proc/sys/
[Automount]
@@ -60,11 +60,11 @@ index 30a6bc991844..4231f3b70fe9 100644
+
+[Install]
+WantedBy=sysinit.target
-diff --git a/units/systemd-binfmt.service.in b/units/systemd-binfmt.service.in
-index 0c0f26451b67..763c4c466c16 100644
---- a/units/systemd-binfmt.service.in
-+++ b/units/systemd-binfmt.service.in
-@@ -14,6 +14,7 @@ Documentation=https://www.kernel.org/doc/html/latest/admin-guide/binfmt-misc.htm
+Index: systemd-stable/units/systemd-binfmt.service.in
+===================================================================
+--- systemd-stable.orig/units/systemd-binfmt.service.in
++++ systemd-stable/units/systemd-binfmt.service.in
+@@ -14,6 +14,7 @@ Documentation=https://www.kernel.org/doc
Documentation=https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems
DefaultDependencies=no
Conflicts=shutdown.target
@@ -72,9 +72,9 @@ index 0c0f26451b67..763c4c466c16 100644
After=proc-sys-fs-binfmt_misc.automount
After=proc-sys-fs-binfmt_misc.mount
Before=sysinit.target shutdown.target
-@@ -29,3 +30,6 @@ Type=oneshot
- RemainAfterExit=yes
+@@ -30,3 +31,6 @@ RemainAfterExit=yes
ExecStart=@rootlibexecdir@/systemd-binfmt
+ ExecStop=@rootlibexecdir@/systemd-binfmt --unregister
TimeoutSec=90s
+
+[Install]
diff --git a/meta/recipes-core/systemd/systemd/0001-do-not-disable-buffer-in-writing-files.patch b/meta/recipes-core/systemd/systemd/0001-do-not-disable-buffer-in-writing-files.patch
index f1c7181ef9..39a975319b 100644
--- a/meta/recipes-core/systemd/systemd/0001-do-not-disable-buffer-in-writing-files.patch
+++ b/meta/recipes-core/systemd/systemd/0001-do-not-disable-buffer-in-writing-files.patch
@@ -1,4 +1,4 @@
-From f4a0caaea346b70cf5064f9159a53a1b8020071e Mon Sep 17 00:00:00 2001
+From f92fd7e77ed5aab2dda01a20e6891c37f09415d3 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Fri, 1 Mar 2019 15:22:15 +0800
Subject: [PATCH] do not disable buffer in writing files
@@ -40,11 +40,11 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com>
src/vconsole/vconsole-setup.c | 2 +-
18 files changed, 35 insertions(+), 35 deletions(-)
-diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c
-index a5141f4cbedd..04c06e7a55cb 100644
---- a/src/basic/cgroup-util.c
-+++ b/src/basic/cgroup-util.c
-@@ -739,7 +739,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
+Index: systemd-stable/src/basic/cgroup-util.c
+===================================================================
+--- systemd-stable.orig/src/basic/cgroup-util.c
++++ systemd-stable/src/basic/cgroup-util.c
+@@ -769,7 +769,7 @@ int cg_install_release_agent(const char
sc = strstrip(contents);
if (isempty(sc)) {
@@ -53,7 +53,7 @@ index a5141f4cbedd..04c06e7a55cb 100644
if (r < 0)
return r;
} else if (!path_equal(sc, agent))
-@@ -757,7 +757,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
+@@ -787,7 +787,7 @@ int cg_install_release_agent(const char
sc = strstrip(contents);
if (streq(sc, "0")) {
@@ -62,7 +62,7 @@ index a5141f4cbedd..04c06e7a55cb 100644
if (r < 0)
return r;
-@@ -784,7 +784,7 @@ int cg_uninstall_release_agent(const char *controller) {
+@@ -814,7 +814,7 @@ int cg_uninstall_release_agent(const cha
if (r < 0)
return r;
@@ -71,7 +71,7 @@ index a5141f4cbedd..04c06e7a55cb 100644
if (r < 0)
return r;
-@@ -794,7 +794,7 @@ int cg_uninstall_release_agent(const char *controller) {
+@@ -824,7 +824,7 @@ int cg_uninstall_release_agent(const cha
if (r < 0)
return r;
@@ -80,7 +80,7 @@ index a5141f4cbedd..04c06e7a55cb 100644
if (r < 0)
return r;
-@@ -1650,7 +1650,7 @@ int cg_set_attribute(const char *controller, const char *path, const char *attri
+@@ -1656,7 +1656,7 @@ int cg_set_attribute(const char *control
if (r < 0)
return r;
@@ -89,11 +89,11 @@ index a5141f4cbedd..04c06e7a55cb 100644
}
int cg_get_attribute(const char *controller, const char *path, const char *attribute, char **ret) {
-diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c
-index da7e836f143e..2138f20bcc03 100644
---- a/src/basic/procfs-util.c
-+++ b/src/basic/procfs-util.c
-@@ -86,13 +86,13 @@ int procfs_tasks_set_limit(uint64_t limit) {
+Index: systemd-stable/src/basic/procfs-util.c
+===================================================================
+--- systemd-stable.orig/src/basic/procfs-util.c
++++ systemd-stable/src/basic/procfs-util.c
+@@ -86,13 +86,13 @@ int procfs_tasks_set_limit(uint64_t limi
* decrease it, as threads-max is the much more relevant sysctl. */
if (limit > pid_max-1) {
sprintf(buffer, "%" PRIu64, limit+1); /* Add one, since PID 0 is not a valid PID */
@@ -109,11 +109,11 @@ index da7e836f143e..2138f20bcc03 100644
if (r < 0) {
uint64_t threads_max;
-diff --git a/src/basic/smack-util.c b/src/basic/smack-util.c
-index da9a2139d31a..5e91f5b8f5d9 100644
---- a/src/basic/smack-util.c
-+++ b/src/basic/smack-util.c
-@@ -114,7 +114,7 @@ int mac_smack_apply_pid(pid_t pid, const char *label) {
+Index: systemd-stable/src/basic/smack-util.c
+===================================================================
+--- systemd-stable.orig/src/basic/smack-util.c
++++ systemd-stable/src/basic/smack-util.c
+@@ -114,7 +114,7 @@ int mac_smack_apply_pid(pid_t pid, const
return 0;
p = procfs_file_alloca(pid, "attr/current");
@@ -122,10 +122,10 @@ index da9a2139d31a..5e91f5b8f5d9 100644
if (r < 0)
return r;
-diff --git a/src/basic/util.c b/src/basic/util.c
-index 2b3b3918a32f..aff8d0fcd473 100644
---- a/src/basic/util.c
-+++ b/src/basic/util.c
+Index: systemd-stable/src/basic/util.c
+===================================================================
+--- systemd-stable.orig/src/basic/util.c
++++ systemd-stable/src/basic/util.c
@@ -267,7 +267,7 @@ void disable_coredumps(void) {
if (detect_container() > 0)
return;
@@ -135,11 +135,11 @@ index 2b3b3918a32f..aff8d0fcd473 100644
if (r < 0)
log_debug_errno(r, "Failed to turn off coredumps, ignoring: %m");
}
-diff --git a/src/binfmt/binfmt.c b/src/binfmt/binfmt.c
-index 7ff844c78c3a..5c5721d7c2f7 100644
---- a/src/binfmt/binfmt.c
-+++ b/src/binfmt/binfmt.c
-@@ -47,7 +47,7 @@ static int delete_rule(const char *rule) {
+Index: systemd-stable/src/binfmt/binfmt.c
+===================================================================
+--- systemd-stable.orig/src/binfmt/binfmt.c
++++ systemd-stable/src/binfmt/binfmt.c
+@@ -48,7 +48,7 @@ static int delete_rule(const char *rule)
if (!fn)
return log_oom();
@@ -148,7 +148,7 @@ index 7ff844c78c3a..5c5721d7c2f7 100644
}
static int apply_rule(const char *rule) {
-@@ -55,7 +55,7 @@ static int apply_rule(const char *rule) {
+@@ -56,7 +56,7 @@ static int apply_rule(const char *rule)
(void) delete_rule(rule);
@@ -157,7 +157,7 @@ index 7ff844c78c3a..5c5721d7c2f7 100644
if (r < 0)
return log_error_errno(r, "Failed to add binary format: %m");
-@@ -212,7 +212,7 @@ static int run(int argc, char *argv[]) {
+@@ -223,7 +223,7 @@ static int run(int argc, char *argv[]) {
}
/* Flush out all rules */
@@ -166,11 +166,11 @@ index 7ff844c78c3a..5c5721d7c2f7 100644
STRV_FOREACH(f, files) {
k = apply_file(*f, true);
-diff --git a/src/core/main.c b/src/core/main.c
-index c24b696b1663..195be7d2df0d 100644
---- a/src/core/main.c
-+++ b/src/core/main.c
-@@ -1303,7 +1303,7 @@ static int bump_unix_max_dgram_qlen(void) {
+Index: systemd-stable/src/core/main.c
+===================================================================
+--- systemd-stable.orig/src/core/main.c
++++ systemd-stable/src/core/main.c
+@@ -1382,7 +1382,7 @@ static int bump_unix_max_dgram_qlen(void
if (v >= DEFAULT_UNIX_MAX_DGRAM_QLEN)
return 0;
@@ -179,7 +179,7 @@ index c24b696b1663..195be7d2df0d 100644
if (r < 0)
return log_full_errno(IN_SET(r, -EROFS, -EPERM, -EACCES) ? LOG_DEBUG : LOG_WARNING, r,
"Failed to bump AF_UNIX datagram queue length, ignoring: %m");
-@@ -1527,7 +1527,7 @@ static void initialize_core_pattern(bool skip_setup) {
+@@ -1668,7 +1668,7 @@ static void initialize_core_pattern(bool
if (getpid_cached() != 1)
return;
@@ -188,11 +188,11 @@ index c24b696b1663..195be7d2df0d 100644
if (r < 0)
log_warning_errno(r, "Failed to write '%s' to /proc/sys/kernel/core_pattern, ignoring: %m", arg_early_core_pattern);
}
-diff --git a/src/core/smack-setup.c b/src/core/smack-setup.c
-index 4427397f2715..8aeb5c829513 100644
---- a/src/core/smack-setup.c
-+++ b/src/core/smack-setup.c
-@@ -325,17 +325,17 @@ int mac_smack_setup(bool *loaded_policy) {
+Index: systemd-stable/src/core/smack-setup.c
+===================================================================
+--- systemd-stable.orig/src/core/smack-setup.c
++++ systemd-stable/src/core/smack-setup.c
+@@ -325,17 +325,17 @@ int mac_smack_setup(bool *loaded_policy)
}
#ifdef SMACK_RUN_LABEL
@@ -214,10 +214,10 @@ index 4427397f2715..8aeb5c829513 100644
if (r < 0)
log_warning_errno(r, "Failed to set SMACK netlabel rule \"127.0.0.1 -CIPSO\": %m");
#endif
-diff --git a/src/hibernate-resume/hibernate-resume.c b/src/hibernate-resume/hibernate-resume.c
-index 17e7cd1a009b..87a766771663 100644
---- a/src/hibernate-resume/hibernate-resume.c
-+++ b/src/hibernate-resume/hibernate-resume.c
+Index: systemd-stable/src/hibernate-resume/hibernate-resume.c
+===================================================================
+--- systemd-stable.orig/src/hibernate-resume/hibernate-resume.c
++++ systemd-stable/src/hibernate-resume/hibernate-resume.c
@@ -45,7 +45,7 @@ int main(int argc, char *argv[]) {
return EXIT_FAILURE;
}
@@ -227,11 +227,11 @@ index 17e7cd1a009b..87a766771663 100644
if (r < 0) {
log_error_errno(r, "Failed to write '%s' to /sys/power/resume: %m", major_minor);
return EXIT_FAILURE;
-diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c
-index f35612fe12bc..20351bf7fa70 100644
---- a/src/libsystemd/sd-device/sd-device.c
-+++ b/src/libsystemd/sd-device/sd-device.c
-@@ -1849,7 +1849,7 @@ _public_ int sd_device_set_sysattr_value(sd_device *device, const char *sysattr,
+Index: systemd-stable/src/libsystemd/sd-device/sd-device.c
+===================================================================
+--- systemd-stable.orig/src/libsystemd/sd-device/sd-device.c
++++ systemd-stable/src/libsystemd/sd-device/sd-device.c
+@@ -1877,7 +1877,7 @@ _public_ int sd_device_set_sysattr_value
if (!value)
return -ENOMEM;
@@ -240,11 +240,11 @@ index f35612fe12bc..20351bf7fa70 100644
if (r < 0) {
if (r == -ELOOP)
return -EINVAL;
-diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c
-index 69b59948786f..b4973c596d48 100644
---- a/src/login/logind-dbus.c
-+++ b/src/login/logind-dbus.c
-@@ -1322,7 +1322,7 @@ static int trigger_device(Manager *m, sd_device *d) {
+Index: systemd-stable/src/login/logind-dbus.c
+===================================================================
+--- systemd-stable.orig/src/login/logind-dbus.c
++++ systemd-stable/src/login/logind-dbus.c
+@@ -1341,7 +1341,7 @@ static int trigger_device(Manager *m, sd
if (!t)
return -ENOMEM;
@@ -253,11 +253,11 @@ index 69b59948786f..b4973c596d48 100644
}
return 0;
-diff --git a/src/nspawn/nspawn-cgroup.c b/src/nspawn/nspawn-cgroup.c
-index f5048d9473cb..b6383ab5c97e 100644
---- a/src/nspawn/nspawn-cgroup.c
-+++ b/src/nspawn/nspawn-cgroup.c
-@@ -124,7 +124,7 @@ int sync_cgroup(pid_t pid, CGroupUnified unified_requested, uid_t uid_shift) {
+Index: systemd-stable/src/nspawn/nspawn-cgroup.c
+===================================================================
+--- systemd-stable.orig/src/nspawn/nspawn-cgroup.c
++++ systemd-stable/src/nspawn/nspawn-cgroup.c
+@@ -124,7 +124,7 @@ int sync_cgroup(pid_t pid, CGroupUnified
fn = strjoina(tree, cgroup, "/cgroup.procs");
sprintf(pid_string, PID_FMT, pid);
@@ -266,11 +266,11 @@ index f5048d9473cb..b6383ab5c97e 100644
if (r < 0) {
log_error_errno(r, "Failed to move process: %m");
goto finish;
-diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
-index 873a76596f0b..4e496548bb94 100644
---- a/src/nspawn/nspawn.c
-+++ b/src/nspawn/nspawn.c
-@@ -2425,7 +2425,7 @@ static int reset_audit_loginuid(void) {
+Index: systemd-stable/src/nspawn/nspawn.c
+===================================================================
+--- systemd-stable.orig/src/nspawn/nspawn.c
++++ systemd-stable/src/nspawn/nspawn.c
+@@ -2493,7 +2493,7 @@ static int reset_audit_loginuid(void) {
if (streq(p, "4294967295"))
return 0;
@@ -279,7 +279,7 @@ index 873a76596f0b..4e496548bb94 100644
if (r < 0) {
log_error_errno(r,
"Failed to reset audit login UID. This probably means that your kernel is too\n"
-@@ -3633,13 +3633,13 @@ static int setup_uid_map(pid_t pid) {
+@@ -3726,13 +3726,13 @@ static int setup_uid_map(pid_t pid) {
xsprintf(uid_map, "/proc/" PID_FMT "/uid_map", pid);
xsprintf(line, UID_FMT " " UID_FMT " " UID_FMT "\n", 0, arg_uid_shift, arg_uid_range);
@@ -295,11 +295,11 @@ index 873a76596f0b..4e496548bb94 100644
if (r < 0)
return log_error_errno(r, "Failed to write GID map: %m");
-diff --git a/src/shared/cgroup-setup.c b/src/shared/cgroup-setup.c
-index e8398cbde5ba..ba682ec0c9e7 100644
---- a/src/shared/cgroup-setup.c
-+++ b/src/shared/cgroup-setup.c
-@@ -267,7 +267,7 @@ int cg_attach(const char *controller, const char *path, pid_t pid) {
+Index: systemd-stable/src/shared/cgroup-setup.c
+===================================================================
+--- systemd-stable.orig/src/shared/cgroup-setup.c
++++ systemd-stable/src/shared/cgroup-setup.c
+@@ -267,7 +267,7 @@ int cg_attach(const char *controller, co
xsprintf(c, PID_FMT "\n", pid);
@@ -317,11 +317,11 @@ index e8398cbde5ba..ba682ec0c9e7 100644
if (r < 0) {
log_debug_errno(r, "Failed to %s controller %s for %s (%s): %m",
FLAGS_SET(mask, bit) ? "enable" : "disable", n, p, fs);
-diff --git a/src/shared/sysctl-util.c b/src/shared/sysctl-util.c
-index 12fb3ef7ea0e..132ac847c091 100644
---- a/src/shared/sysctl-util.c
-+++ b/src/shared/sysctl-util.c
-@@ -87,7 +87,7 @@ int sysctl_write_ip_property(int af, const char *ifname, const char *property, c
+Index: systemd-stable/src/shared/sysctl-util.c
+===================================================================
+--- systemd-stable.orig/src/shared/sysctl-util.c
++++ systemd-stable/src/shared/sysctl-util.c
+@@ -93,7 +93,7 @@ int sysctl_write_ip_property(int af, con
log_debug("Setting '%s' to '%s'", p, value);
@@ -330,29 +330,29 @@ index 12fb3ef7ea0e..132ac847c091 100644
}
int sysctl_read(const char *property, char **content) {
-diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c
-index 89b80367f8f4..33dbb21364d0 100644
---- a/src/sleep/sleep.c
-+++ b/src/sleep/sleep.c
-@@ -45,7 +45,7 @@ static int write_hibernate_location_info(const HibernateLocation *hibernate_loca
+Index: systemd-stable/src/sleep/sleep.c
+===================================================================
+--- systemd-stable.orig/src/sleep/sleep.c
++++ systemd-stable/src/sleep/sleep.c
+@@ -48,7 +48,7 @@ static int write_hibernate_location_info
assert(hibernate_location->swap);
- assert(hibernate_location->resume);
-- r = write_string_file("/sys/power/resume", hibernate_location->resume, WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file("/sys/power/resume", hibernate_location->resume, 0);
+ xsprintf(resume_str, "%u:%u", major(hibernate_location->devno), minor(hibernate_location->devno));
+- r = write_string_file("/sys/power/resume", resume_str, WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file("/sys/power/resume", resume_str, 0);
if (r < 0)
return log_debug_errno(r, "Failed to write partition device to /sys/power/resume for '%s': '%s': %m",
- hibernate_location->swap->device, hibernate_location->resume);
-@@ -72,7 +72,7 @@ static int write_hibernate_location_info(const HibernateLocation *hibernate_loca
+ hibernate_location->swap->device, resume_str);
+@@ -75,7 +75,7 @@ static int write_hibernate_location_info
}
- xsprintf(offset_str, "%" PRIu64, hibernate_location->resume_offset);
+ xsprintf(offset_str, "%" PRIu64, hibernate_location->offset);
- r = write_string_file("/sys/power/resume_offset", offset_str, WRITE_STRING_FILE_DISABLE_BUFFER);
+ r = write_string_file("/sys/power/resume_offset", offset_str, 0);
if (r < 0)
return log_debug_errno(r, "Failed to write swap file offset to /sys/power/resume_offset for '%s': '%s': %m",
hibernate_location->swap->device, offset_str);
-@@ -89,7 +89,7 @@ static int write_mode(char **modes) {
+@@ -92,7 +92,7 @@ static int write_mode(char **modes) {
STRV_FOREACH(mode, modes) {
int k;
@@ -361,7 +361,7 @@ index 89b80367f8f4..33dbb21364d0 100644
if (k >= 0)
return 0;
-@@ -108,7 +108,7 @@ static int write_state(FILE **f, char **states) {
+@@ -114,7 +114,7 @@ static int write_state(FILE **f, char **
STRV_FOREACH(state, states) {
int k;
@@ -370,11 +370,11 @@ index 89b80367f8f4..33dbb21364d0 100644
if (k >= 0)
return 0;
log_debug_errno(k, "Failed to write '%s' to /sys/power/state: %m", *state);
-diff --git a/src/udev/udevadm-trigger.c b/src/udev/udevadm-trigger.c
-index 60c68b5029cf..fdca03d3d42c 100644
---- a/src/udev/udevadm-trigger.c
-+++ b/src/udev/udevadm-trigger.c
-@@ -43,7 +43,7 @@ static int exec_list(sd_device_enumerator *e, const char *action, Set *settle_se
+Index: systemd-stable/src/udev/udevadm-trigger.c
+===================================================================
+--- systemd-stable.orig/src/udev/udevadm-trigger.c
++++ systemd-stable/src/udev/udevadm-trigger.c
+@@ -43,7 +43,7 @@ static int exec_list(sd_device_enumerato
if (!filename)
return log_oom();
@@ -383,11 +383,11 @@ index 60c68b5029cf..fdca03d3d42c 100644
if (r < 0) {
bool ignore = IN_SET(r, -ENOENT, -EACCES, -ENODEV, -EROFS);
-diff --git a/src/udev/udevd.c b/src/udev/udevd.c
-index 7678331897f5..6871cde7aa65 100644
---- a/src/udev/udevd.c
-+++ b/src/udev/udevd.c
-@@ -1089,7 +1089,7 @@ static int synthesize_change_one(sd_device *dev, const char *syspath) {
+Index: systemd-stable/src/udev/udevd.c
+===================================================================
+--- systemd-stable.orig/src/udev/udevd.c
++++ systemd-stable/src/udev/udevd.c
+@@ -1153,7 +1153,7 @@ static int synthesize_change_one(sd_devi
filename = strjoina(syspath, "/uevent");
log_device_debug(dev, "device is closed, synthesising 'change' on %s", syspath);
@@ -396,11 +396,11 @@ index 7678331897f5..6871cde7aa65 100644
if (r < 0)
return log_device_debug_errno(dev, r, "Failed to write 'change' to %s: %m", filename);
return 0;
-diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c
-index 9d706085fb47..30dcfa86f4d0 100644
---- a/src/vconsole/vconsole-setup.c
-+++ b/src/vconsole/vconsole-setup.c
-@@ -116,7 +116,7 @@ static int toggle_utf8_vc(const char *name, int fd, bool utf8) {
+Index: systemd-stable/src/vconsole/vconsole-setup.c
+===================================================================
+--- systemd-stable.orig/src/vconsole/vconsole-setup.c
++++ systemd-stable/src/vconsole/vconsole-setup.c
+@@ -116,7 +116,7 @@ static int toggle_utf8_vc(const char *na
static int toggle_utf8_sysfs(bool utf8) {
int r;
diff --git a/meta/recipes-core/systemd/systemd/0001-systemd.pc.in-use-ROOTPREFIX-without-suffixed-slash.patch b/meta/recipes-core/systemd/systemd/0001-systemd.pc.in-use-ROOTPREFIX-without-suffixed-slash.patch
new file mode 100644
index 0000000000..622a4108bb
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0001-systemd.pc.in-use-ROOTPREFIX-without-suffixed-slash.patch
@@ -0,0 +1,37 @@
+From 58860e0f248576a80ff2af256ba42713c186ae93 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 29 Sep 2020 18:01:41 -0700
+Subject: [PATCH] systemd.pc.in: use ROOTPREFIX without suffixed slash
+
+This complements the commit
+https://github.com/poettering/systemd/commit/b612c26ceb9f56af0271fc9f07c1724d2d260a8a
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/core/systemd.pc.in | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+--- a/src/core/systemd.pc.in
++++ b/src/core/systemd.pc.in
+@@ -65,16 +65,16 @@ systemdshutdowndir=${systemd_shutdown_di
+ tmpfiles_dir=${prefix}/lib/tmpfiles.d
+ tmpfilesdir=${tmpfiles_dir}
+
+-sysusers_dir=${rootprefix}/lib/sysusers.d
++sysusers_dir=${prefix}/lib/sysusers.d
+ sysusersdir=${sysusers_dir}
+
+-sysctl_dir=${rootprefix}/lib/sysctl.d
++sysctl_dir=${prefix}/lib/sysctl.d
+ sysctldir=${sysctl_dir}
+
+-binfmt_dir=${rootprefix}/lib/binfmt.d
++binfmt_dir=${prefix}/lib/binfmt.d
+ binfmtdir=${binfmt_dir}
+
+-modules_load_dir=${rootprefix}/lib/modules-load.d
++modules_load_dir=${prefix}/lib/modules-load.d
+ modulesloaddir=${modules_load_dir}
+
+ catalog_dir=${prefix}/lib/systemd/catalog
diff --git a/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch b/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch
index 6b85ff0f89..30fe9a14df 100644
--- a/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch
+++ b/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch
@@ -1,4 +1,4 @@
-From 49501c80d32c1bc5ecb07f40c324feb82af0b057 Mon Sep 17 00:00:00 2001
+From 3eb12a6ba0bce149717eaabeb1505d379b3d705a Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 13:41:41 +0800
Subject: [PATCH] don't use glibc-specific qsort_r
@@ -17,13 +17,13 @@ Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
src/shared/format-table.c | 36 ++++++++++++++++++++----------
3 files changed, 38 insertions(+), 31 deletions(-)
-diff --git a/src/basic/sort-util.h b/src/basic/sort-util.h
-index e029f8646eb0..27d68b341cf3 100644
---- a/src/basic/sort-util.h
-+++ b/src/basic/sort-util.h
-@@ -54,17 +54,3 @@ static inline void qsort_safe(void *base, size_t nmemb, size_t size, __compar_fn
+Index: systemd-stable/src/basic/sort-util.h
+===================================================================
+--- systemd-stable.orig/src/basic/sort-util.h
++++ systemd-stable/src/basic/sort-util.h
+@@ -54,17 +54,3 @@ static inline void _qsort_safe(void *bas
int (*_func_)(const typeof(p[0])*, const typeof(p[0])*) = func; \
- qsort_safe((p), (n), sizeof((p)[0]), (__compar_fn_t) _func_); \
+ _qsort_safe((p), (n), sizeof((p)[0]), (__compar_fn_t) _func_); \
})
-
-static inline void qsort_r_safe(void *base, size_t nmemb, size_t size, __compar_d_fn_t compar, void *userdata) {
@@ -39,11 +39,11 @@ index e029f8646eb0..27d68b341cf3 100644
- int (*_func_)(const typeof(p[0])*, const typeof(p[0])*, typeof(userdata)) = func; \
- qsort_r_safe((p), (n), sizeof((p)[0]), (__compar_d_fn_t) _func_, userdata); \
- })
-diff --git a/src/libsystemd/sd-hwdb/hwdb-util.c b/src/libsystemd/sd-hwdb/hwdb-util.c
-index c83575c7c876..72f8f3a05048 100644
---- a/src/libsystemd/sd-hwdb/hwdb-util.c
-+++ b/src/libsystemd/sd-hwdb/hwdb-util.c
-@@ -128,9 +128,13 @@ static void trie_free(struct trie *trie) {
+Index: systemd-stable/src/libsystemd/sd-hwdb/hwdb-util.c
+===================================================================
+--- systemd-stable.orig/src/libsystemd/sd-hwdb/hwdb-util.c
++++ systemd-stable/src/libsystemd/sd-hwdb/hwdb-util.c
+@@ -128,9 +128,13 @@ static void trie_free(struct trie *trie)
DEFINE_TRIVIAL_CLEANUP_FUNC(struct trie*, trie_free);
@@ -60,7 +60,7 @@ index c83575c7c876..72f8f3a05048 100644
}
static int trie_node_add_value(struct trie *trie, struct trie_node *node,
-@@ -158,7 +162,10 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
+@@ -158,7 +162,10 @@ static int trie_node_add_value(struct tr
.value_off = v,
};
@@ -72,7 +72,7 @@ index c83575c7c876..72f8f3a05048 100644
if (val) {
/* At this point we have 2 identical properties on the same match-string.
* Since we process files in order, we just replace the previous value. */
-@@ -184,7 +191,9 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
+@@ -184,7 +191,9 @@ static int trie_node_add_value(struct tr
.line_number = line_number,
};
node->values_count++;
@@ -83,11 +83,11 @@ index c83575c7c876..72f8f3a05048 100644
return 0;
}
-diff --git a/src/shared/format-table.c b/src/shared/format-table.c
-index 4617ae8badc4..17d6b9616256 100644
---- a/src/shared/format-table.c
-+++ b/src/shared/format-table.c
-@@ -1109,31 +1109,33 @@ static int cell_data_compare(TableData *a, size_t index_a, TableData *b, size_t
+Index: systemd-stable/src/shared/format-table.c
+===================================================================
+--- systemd-stable.orig/src/shared/format-table.c
++++ systemd-stable/src/shared/format-table.c
+@@ -1246,31 +1246,33 @@ static int cell_data_compare(TableData *
return CMP(index_a, index_b);
}
@@ -131,7 +131,7 @@ index 4617ae8badc4..17d6b9616256 100644
}
/* Order identical lines by the order there were originally added in */
-@@ -1533,7 +1535,12 @@ int table_print(Table *t, FILE *f) {
+@@ -1798,7 +1800,12 @@ int table_print(Table *t, FILE *f) {
for (i = 0; i < n_rows; i++)
sorted[i] = i * t->n_columns;
@@ -145,7 +145,7 @@ index 4617ae8badc4..17d6b9616256 100644
}
if (t->display_map)
-@@ -1997,7 +2004,12 @@ int table_to_json(Table *t, JsonVariant **ret) {
+@@ -2375,7 +2382,12 @@ int table_to_json(Table *t, JsonVariant
for (i = 0; i < n_rows; i++)
sorted[i] = i * t->n_columns;
diff --git a/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch b/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch
index 71e52c4967..e65c543614 100644
--- a/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch
+++ b/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch
@@ -1,4 +1,4 @@
-From 142dcaef0d24a78d3c0c94168b66fdf234497e97 Mon Sep 17 00:00:00 2001
+From 8af168cefca01f8f2da336f1c82620c284dc74f2 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 14:04:21 +0800
Subject: [PATCH] add fallback parse_printf_format implementation
@@ -22,11 +22,11 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com>
create mode 100644 src/basic/parse-printf-format.c
create mode 100644 src/basic/parse-printf-format.h
-diff --git a/meson.build b/meson.build
-index 21d6968abdf4..bab0bf84806c 100644
---- a/meson.build
-+++ b/meson.build
-@@ -628,6 +628,7 @@ endif
+Index: systemd-stable/meson.build
+===================================================================
+--- systemd-stable.orig/meson.build
++++ systemd-stable/meson.build
+@@ -638,6 +638,7 @@ endif
foreach header : ['crypt.h',
'linux/memfd.h',
'linux/vm_sockets.h',
@@ -34,11 +34,11 @@ index 21d6968abdf4..bab0bf84806c 100644
'sys/auxv.h',
'valgrind/memcheck.h',
'valgrind/valgrind.h',
-diff --git a/src/basic/meson.build b/src/basic/meson.build
-index f70d1b8bf8a0..4cd57373e10d 100644
---- a/src/basic/meson.build
-+++ b/src/basic/meson.build
-@@ -311,6 +311,11 @@ foreach item : [['af', af_list_txt, 'af', ''],
+Index: systemd-stable/src/basic/meson.build
+===================================================================
+--- systemd-stable.orig/src/basic/meson.build
++++ systemd-stable/src/basic/meson.build
+@@ -317,6 +317,11 @@ foreach item : [['af', af_list_txt,
endforeach
basic_sources += generated_gperf_headers
@@ -50,11 +50,10 @@ index f70d1b8bf8a0..4cd57373e10d 100644
basic_gcrypt_sources = files(
'gcrypt-util.c',
'gcrypt-util.h')
-diff --git a/src/basic/parse-printf-format.c b/src/basic/parse-printf-format.c
-new file mode 100644
-index 000000000000..49437e544540
+Index: systemd-stable/src/basic/parse-printf-format.c
+===================================================================
--- /dev/null
-+++ b/src/basic/parse-printf-format.c
++++ systemd-stable/src/basic/parse-printf-format.c
@@ -0,0 +1,273 @@
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
@@ -329,11 +328,10 @@ index 000000000000..49437e544540
+
+ return last;
+}
-diff --git a/src/basic/parse-printf-format.h b/src/basic/parse-printf-format.h
-new file mode 100644
-index 000000000000..47be7522d7fa
+Index: systemd-stable/src/basic/parse-printf-format.h
+===================================================================
--- /dev/null
-+++ b/src/basic/parse-printf-format.h
++++ systemd-stable/src/basic/parse-printf-format.h
@@ -0,0 +1,57 @@
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
@@ -392,10 +390,10 @@ index 000000000000..47be7522d7fa
+size_t parse_printf_format(const char *fmt, size_t n, int *types);
+
+#endif /* HAVE_PRINTF_H */
-diff --git a/src/basic/stdio-util.h b/src/basic/stdio-util.h
-index c3b9448d4f4f..2937aa13b178 100644
---- a/src/basic/stdio-util.h
-+++ b/src/basic/stdio-util.h
+Index: systemd-stable/src/basic/stdio-util.h
+===================================================================
+--- systemd-stable.orig/src/basic/stdio-util.h
++++ systemd-stable/src/basic/stdio-util.h
@@ -1,13 +1,13 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
#pragma once
@@ -411,10 +409,10 @@ index c3b9448d4f4f..2937aa13b178 100644
#define snprintf_ok(buf, len, fmt, ...) \
((size_t) snprintf(buf, len, fmt, __VA_ARGS__) < (len))
-diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c
-index 912ecef73cce..43ed756bda53 100644
---- a/src/journal/journal-send.c
-+++ b/src/journal/journal-send.c
+Index: systemd-stable/src/journal/journal-send.c
+===================================================================
+--- systemd-stable.orig/src/journal/journal-send.c
++++ systemd-stable/src/journal/journal-send.c
@@ -2,7 +2,6 @@
#include <errno.h>
@@ -423,7 +421,7 @@ index 912ecef73cce..43ed756bda53 100644
#include <stddef.h>
#include <sys/un.h>
#include <unistd.h>
-@@ -20,6 +19,7 @@
+@@ -21,6 +20,7 @@
#include "stdio-util.h"
#include "string-util.h"
#include "tmpfile-util.h"
diff --git a/meta/recipes-core/systemd/systemd/0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch b/meta/recipes-core/systemd/systemd/0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch
index 685df01a10..d394444c1c 100644
--- a/meta/recipes-core/systemd/systemd/0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch
+++ b/meta/recipes-core/systemd/systemd/0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch
@@ -1,4 +1,4 @@
-From 6883ffc99168056101c667c6421f8353d5ad675a Mon Sep 17 00:00:00 2001
+From dbe8b3ee45580defeefcac929b897c5437ffc50b Mon Sep 17 00:00:00 2001
From: Scott Murray <scott.murray@konsulko.com>
Date: Fri, 13 Sep 2019 19:26:27 -0400
Subject: [PATCH] Handle __cpu_mask usage
@@ -38,7 +38,7 @@ index 27812dfd5923..0ab40731ea93 100644
typedef struct CPUSet {
cpu_set_t *set;
diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c
-index a710db5370b8..d1601ad9292d 100644
+index c65062d2562c..8b6eefa9cdae 100644
--- a/src/test/test-sizeof.c
+++ b/src/test/test-sizeof.c
@@ -1,6 +1,5 @@
@@ -47,8 +47,8 @@ index a710db5370b8..d1601ad9292d 100644
-#include <sched.h>
#include <stdio.h>
#include <string.h>
-
-@@ -8,6 +7,7 @@
+ #include <sys/types.h>
+@@ -10,6 +9,7 @@
#include <float.h>
#include "time-util.h"
diff --git a/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch b/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch
index aa4bb063c9..8e7a2fb6e4 100644
--- a/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch
+++ b/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch
@@ -1,4 +1,4 @@
-From 9597196234a0ccf30d7f65cf185a8c24cb3158b3 Mon Sep 17 00:00:00 2001
+From 7e771de87cf728a8678f1f28f391bba3589e2496 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 14:18:21 +0800
Subject: [PATCH] src/basic/missing.h: check for missing strndupa
@@ -25,6 +25,7 @@ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
src/basic/missing_stdlib.h | 12 ++++++++++++
src/basic/mkdir.c | 1 +
src/basic/parse-util.c | 1 +
+ src/basic/path-lookup.c | 1 +
src/basic/proc-cmdline.c | 1 +
src/basic/procfs-util.c | 1 +
src/basic/selinux-util.c | 1 +
@@ -39,6 +40,7 @@ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
src/coredump/coredump-vacuum.c | 1 +
src/journal-remote/journal-remote-main.c | 1 +
src/journal/journalctl.c | 1 +
+ src/journal/sd-journal.c | 1 +
src/libsystemd/sd-bus/bus-message.c | 1 +
src/libsystemd/sd-bus/bus-objects.c | 1 +
src/libsystemd/sd-bus/bus-socket.c | 1 +
@@ -51,6 +53,7 @@ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
src/nss-mymachines/nss-mymachines.c | 1 +
src/portable/portable.c | 1 +
src/resolve/resolvectl.c | 1 +
+ src/shared/bus-get-properties.c | 1 +
src/shared/bus-unit-procs.c | 1 +
src/shared/bus-unit-util.c | 1 +
src/shared/bus-util.c | 1 +
@@ -58,29 +61,28 @@ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
src/shared/journal-importer.c | 1 +
src/shared/logs-show.c | 1 +
src/shared/pager.c | 1 +
- src/shared/path-lookup.c | 1 +
src/shared/uid-range.c | 1 +
src/socket-proxy/socket-proxyd.c | 1 +
src/test/test-hexdecoct.c | 1 +
src/udev/udev-builtin-path_id.c | 1 +
src/udev/udev-event.c | 1 +
src/udev/udev-rules.c | 1 +
- 48 files changed, 59 insertions(+)
+ 50 files changed, 61 insertions(+)
diff --git a/meson.build b/meson.build
-index bab0bf84806c..f4e1736cf09e 100644
+index 9187439bdd..bea9935a91 100644
--- a/meson.build
+++ b/meson.build
-@@ -517,6 +517,7 @@ foreach ident : [
- #include <unistd.h>'''],
- ['get_mempolicy', '''#include <stdlib.h>
- #include <unistd.h>'''],
+@@ -527,6 +527,7 @@ foreach ident : [
+ #include <unistd.h>
+ #include <signal.h>
+ #include <sys/wait.h>'''],
+ ['strndupa' , '''#include <string.h>'''],
]
have = cc.has_function(ident[0], prefix : ident[1], args : '-D_GNU_SOURCE')
diff --git a/src/backlight/backlight.c b/src/backlight/backlight.c
-index 048441429025..01d74ea0ed4e 100644
+index 3a644363e1..73946a829b 100644
--- a/src/backlight/backlight.c
+++ b/src/backlight/backlight.c
@@ -17,6 +17,7 @@
@@ -92,19 +94,19 @@ index 048441429025..01d74ea0ed4e 100644
static int find_pci_or_platform_parent(sd_device *device, sd_device **ret) {
const char *subsystem, *sysname, *value;
diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c
-index 54fc6ecf8b20..a5141f4cbedd 100644
+index e94fcfad02..856a7068b0 100644
--- a/src/basic/cgroup-util.c
+++ b/src/basic/cgroup-util.c
-@@ -37,6 +37,7 @@
- #include "strv.h"
+@@ -38,6 +38,7 @@
#include "unit-name.h"
#include "user-util.h"
+ #include "xattr-util.h"
+#include "missing_stdlib.h"
static int cg_enumerate_items(const char *controller, const char *path, FILE **_f, const char *item) {
_cleanup_free_ char *fs = NULL;
diff --git a/src/basic/env-util.c b/src/basic/env-util.c
-index b8dc98915f81..5049b37594bc 100644
+index b8dc98915f..5049b37594 100644
--- a/src/basic/env-util.c
+++ b/src/basic/env-util.c
@@ -15,6 +15,7 @@
@@ -116,10 +118,10 @@ index b8dc98915f81..5049b37594bc 100644
#define VALID_CHARS_ENV_NAME \
DIGITS LETTERS \
diff --git a/src/basic/log.c b/src/basic/log.c
-index 17557e1844b2..6cec4d324aab 100644
+index c6fe203808..b7ef932d28 100644
--- a/src/basic/log.c
+++ b/src/basic/log.c
-@@ -34,6 +34,7 @@
+@@ -35,6 +35,7 @@
#include "terminal-util.h"
#include "time-util.h"
#include "utf8.h"
@@ -128,7 +130,7 @@ index 17557e1844b2..6cec4d324aab 100644
#define SNDBUF_SIZE (8*1024*1024)
diff --git a/src/basic/missing_stdlib.h b/src/basic/missing_stdlib.h
-index 188a8d44066a..1e16ec287aad 100644
+index 188a8d4406..1e16ec287a 100644
--- a/src/basic/missing_stdlib.h
+++ b/src/basic/missing_stdlib.h
@@ -11,3 +11,15 @@
@@ -148,7 +150,7 @@ index 188a8d44066a..1e16ec287aad 100644
+ })
+#endif
diff --git a/src/basic/mkdir.c b/src/basic/mkdir.c
-index fa682d4c438e..37902551490a 100644
+index 6ebc2b95fd..88f4359bab 100644
--- a/src/basic/mkdir.c
+++ b/src/basic/mkdir.c
@@ -13,6 +13,7 @@
@@ -157,22 +159,34 @@ index fa682d4c438e..37902551490a 100644
#include "user-util.h"
+#include "missing_stdlib.h"
- int mkdir_safe_internal(const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags, mkdir_func_t _mkdir) {
- struct stat st;
+ int mkdir_safe_internal(
+ const char *path,
diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c
-index aec6099c9cc1..744b9b134ce4 100644
+index 44f0438cf4..54b4133343 100644
--- a/src/basic/parse-util.c
+++ b/src/basic/parse-util.c
-@@ -18,6 +18,7 @@
- #include "process-util.h"
+@@ -19,6 +19,7 @@
#include "stat-util.h"
#include "string-util.h"
+ #include "strv.h"
+#include "missing_stdlib.h"
int parse_boolean(const char *v) {
if (!v)
+diff --git a/src/basic/path-lookup.c b/src/basic/path-lookup.c
+index 52968dee34..2f4f7e3dcd 100644
+--- a/src/basic/path-lookup.c
++++ b/src/basic/path-lookup.c
+@@ -15,6 +15,7 @@
+ #include "strv.h"
+ #include "tmpfile-util.h"
+ #include "user-util.h"
++#include "missing_stdlib.h"
+
+ int xdg_user_runtime_dir(char **ret, const char *suffix) {
+ const char *e;
diff --git a/src/basic/proc-cmdline.c b/src/basic/proc-cmdline.c
-index d3d99d9a7f90..e0b9efad03a2 100644
+index ba47ca5812..8baf728fde 100644
--- a/src/basic/proc-cmdline.c
+++ b/src/basic/proc-cmdline.c
@@ -15,6 +15,7 @@
@@ -184,7 +198,7 @@ index d3d99d9a7f90..e0b9efad03a2 100644
int proc_cmdline(char **ret) {
const char *e;
diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c
-index 7aaf95bfced2..da7e836f143e 100644
+index 7aaf95bfce..da7e836f14 100644
--- a/src/basic/procfs-util.c
+++ b/src/basic/procfs-util.c
@@ -11,6 +11,7 @@
@@ -196,19 +210,19 @@ index 7aaf95bfced2..da7e836f143e 100644
int procfs_tasks_get_limit(uint64_t *ret) {
_cleanup_free_ char *value = NULL;
diff --git a/src/basic/selinux-util.c b/src/basic/selinux-util.c
-index f35e760233be..e4b0a8aa445e 100644
+index c94ee26bd9..14e35b4653 100644
--- a/src/basic/selinux-util.c
+++ b/src/basic/selinux-util.c
-@@ -26,6 +26,7 @@
+@@ -27,6 +27,7 @@
#include "selinux-util.h"
#include "stdio-util.h"
#include "time-util.h"
+#include "missing_stdlib.h"
#if HAVE_SELINUX
- DEFINE_TRIVIAL_CLEANUP_FUNC(char*, freecon);
+ DEFINE_TRIVIAL_CLEANUP_FUNC(context_t, context_free);
diff --git a/src/basic/time-util.c b/src/basic/time-util.c
-index bfe2c60da173..d7ef30d2fe52 100644
+index 15cc1b8851..02bb3f01f9 100644
--- a/src/basic/time-util.c
+++ b/src/basic/time-util.c
@@ -26,6 +26,7 @@
@@ -220,7 +234,7 @@ index bfe2c60da173..d7ef30d2fe52 100644
static clockid_t map_clock_id(clockid_t c) {
diff --git a/src/boot/bless-boot.c b/src/boot/bless-boot.c
-index b96e1f927fff..cba979baca3e 100644
+index b96e1f927f..cba979baca 100644
--- a/src/boot/bless-boot.c
+++ b/src/boot/bless-boot.c
@@ -18,6 +18,7 @@
@@ -232,7 +246,7 @@ index b96e1f927fff..cba979baca3e 100644
static char **arg_path = NULL;
diff --git a/src/core/dbus-cgroup.c b/src/core/dbus-cgroup.c
-index 27dc9e43c3e2..b1a83023600b 100644
+index b7d2e32639..fdbc1df95e 100644
--- a/src/core/dbus-cgroup.c
+++ b/src/core/dbus-cgroup.c
@@ -15,6 +15,7 @@
@@ -244,7 +258,7 @@ index 27dc9e43c3e2..b1a83023600b 100644
BUS_DEFINE_PROPERTY_GET(bus_property_get_tasks_max, "t", TasksMax, tasks_max_resolve);
diff --git a/src/core/dbus-execute.c b/src/core/dbus-execute.c
-index 1d0bc1ede3cb..313654913345 100644
+index 50f7ada8ce..5c760ee487 100644
--- a/src/core/dbus-execute.c
+++ b/src/core/dbus-execute.c
@@ -41,6 +41,7 @@
@@ -256,7 +270,7 @@ index 1d0bc1ede3cb..313654913345 100644
BUS_DEFINE_PROPERTY_GET_ENUM(bus_property_get_exec_output, exec_output, ExecOutput);
static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_exec_input, exec_input, ExecInput);
diff --git a/src/core/dbus-util.c b/src/core/dbus-util.c
-index 7862beaacb6d..3b1ea53a5f0d 100644
+index 951450e53d..50d134e9a1 100644
--- a/src/core/dbus-util.c
+++ b/src/core/dbus-util.c
@@ -7,6 +7,7 @@
@@ -268,10 +282,10 @@ index 7862beaacb6d..3b1ea53a5f0d 100644
int bus_property_get_triggered_unit(
sd_bus *bus,
diff --git a/src/core/execute.c b/src/core/execute.c
-index abc164ff5bef..f04b8ba05002 100644
+index 2a4840a3a9..d3f1e0e0f8 100644
--- a/src/core/execute.c
+++ b/src/core/execute.c
-@@ -88,6 +88,7 @@
+@@ -89,6 +89,7 @@
#include "unit.h"
#include "user-util.h"
#include "utmp-wtmp.h"
@@ -280,7 +294,7 @@ index abc164ff5bef..f04b8ba05002 100644
#define IDLE_TIMEOUT_USEC (5*USEC_PER_SEC)
#define IDLE_TIMEOUT2_USEC (1*USEC_PER_SEC)
diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c
-index 09ccd613e32c..f4e64fa283e9 100644
+index 09ccd613e3..f4e64fa283 100644
--- a/src/core/kmod-setup.c
+++ b/src/core/kmod-setup.c
@@ -11,6 +11,7 @@
@@ -292,7 +306,7 @@ index 09ccd613e32c..f4e64fa283e9 100644
#if HAVE_KMOD
#include "module-util.h"
diff --git a/src/core/service.c b/src/core/service.c
-index 49ad166c2604..c3b14067e201 100644
+index 00e61945ba..1ecab28354 100644
--- a/src/core/service.c
+++ b/src/core/service.c
@@ -41,6 +41,7 @@
@@ -304,7 +318,7 @@ index 49ad166c2604..c3b14067e201 100644
static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = {
[SERVICE_DEAD] = UNIT_INACTIVE,
diff --git a/src/coredump/coredump-vacuum.c b/src/coredump/coredump-vacuum.c
-index 35885dfb47c4..bb9f0660a6a0 100644
+index 35885dfb47..bb9f0660a6 100644
--- a/src/coredump/coredump-vacuum.c
+++ b/src/coredump/coredump-vacuum.c
@@ -16,6 +16,7 @@
@@ -316,10 +330,10 @@ index 35885dfb47c4..bb9f0660a6a0 100644
#define DEFAULT_MAX_USE_LOWER (uint64_t) (1ULL*1024ULL*1024ULL) /* 1 MiB */
#define DEFAULT_MAX_USE_UPPER (uint64_t) (4ULL*1024ULL*1024ULL*1024ULL) /* 4 GiB */
diff --git a/src/journal-remote/journal-remote-main.c b/src/journal-remote/journal-remote-main.c
-index ac2bf648d2af..06c86f0201af 100644
+index 77dfdefd64..e21ecbeff8 100644
--- a/src/journal-remote/journal-remote-main.c
+++ b/src/journal-remote/journal-remote-main.c
-@@ -21,6 +21,7 @@
+@@ -22,6 +22,7 @@
#include "stat-util.h"
#include "string-table.h"
#include "strv.h"
@@ -328,19 +342,31 @@ index ac2bf648d2af..06c86f0201af 100644
#define PRIV_KEY_FILE CERTIFICATE_ROOT "/private/journal-remote.pem"
#define CERT_FILE CERTIFICATE_ROOT "/certs/journal-remote.pem"
diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c
-index 95b6bfee172a..e0bcfb9d4233 100644
+index 8d4897b942..15476b3c83 100644
--- a/src/journal/journalctl.c
+++ b/src/journal/journalctl.c
-@@ -68,6 +68,7 @@
+@@ -69,6 +69,7 @@
#include "unit-name.h"
#include "user-util.h"
#include "varlink.h"
+#include "missing_stdlib.h"
#define DEFAULT_FSS_INTERVAL_USEC (15*USEC_PER_MINUTE)
+ #define PROCESS_INOTIFY_INTERVAL 1024 /* Every 1,024 messages processed */
+diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c
+index 6fb0abb419..2d94d9938e 100644
+--- a/src/journal/sd-journal.c
++++ b/src/journal/sd-journal.c
+@@ -40,6 +40,7 @@
+ #include "string-util.h"
+ #include "strv.h"
+ #include "syslog-util.h"
++#include "missing_stdlib.h"
+
+ #define JOURNAL_FILES_MAX 7168
diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c
-index eb029e445326..8da2c5d51a75 100644
+index 55e35cd902..0ed98f9224 100644
--- a/src/libsystemd/sd-bus/bus-message.c
+++ b/src/libsystemd/sd-bus/bus-message.c
@@ -21,6 +21,7 @@
@@ -352,7 +378,7 @@ index eb029e445326..8da2c5d51a75 100644
static int message_append_basic(sd_bus_message *m, char type, const void *p, const void **stored);
diff --git a/src/libsystemd/sd-bus/bus-objects.c b/src/libsystemd/sd-bus/bus-objects.c
-index ae643cacc740..f766e235206d 100644
+index 6abac8822c..c74c9cd7fa 100644
--- a/src/libsystemd/sd-bus/bus-objects.c
+++ b/src/libsystemd/sd-bus/bus-objects.c
@@ -13,6 +13,7 @@
@@ -364,7 +390,7 @@ index ae643cacc740..f766e235206d 100644
static int node_vtable_get_userdata(
sd_bus *bus,
diff --git a/src/libsystemd/sd-bus/bus-socket.c b/src/libsystemd/sd-bus/bus-socket.c
-index 18d30d010a20..be2ab703f8ed 100644
+index fc7e8e844a..7af4dd2712 100644
--- a/src/libsystemd/sd-bus/bus-socket.c
+++ b/src/libsystemd/sd-bus/bus-socket.c
@@ -28,6 +28,7 @@
@@ -376,7 +402,7 @@ index 18d30d010a20..be2ab703f8ed 100644
#define SNDBUF_SIZE (8*1024*1024)
diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c
-index 058492a83eec..54c896f572b9 100644
+index 9de5e454a6..fe86c93c63 100644
--- a/src/libsystemd/sd-bus/sd-bus.c
+++ b/src/libsystemd/sd-bus/sd-bus.c
@@ -41,6 +41,7 @@
@@ -388,7 +414,7 @@ index 058492a83eec..54c896f572b9 100644
#define log_debug_bus_message(m) \
do { \
diff --git a/src/libsystemd/sd-bus/test-bus-benchmark.c b/src/libsystemd/sd-bus/test-bus-benchmark.c
-index 8de0a859ee94..58044b6ba908 100644
+index 8de0a859ee..58044b6ba9 100644
--- a/src/libsystemd/sd-bus/test-bus-benchmark.c
+++ b/src/libsystemd/sd-bus/test-bus-benchmark.c
@@ -14,6 +14,7 @@
@@ -400,7 +426,7 @@ index 8de0a859ee94..58044b6ba908 100644
#define MAX_SIZE (2*1024*1024)
diff --git a/src/locale/keymap-util.c b/src/locale/keymap-util.c
-index 519dd0d188cf..a8f536915bb2 100644
+index 233d081300..40a32b9700 100644
--- a/src/locale/keymap-util.c
+++ b/src/locale/keymap-util.c
@@ -21,6 +21,7 @@
@@ -412,19 +438,19 @@ index 519dd0d188cf..a8f536915bb2 100644
static bool startswith_comma(const char *s, const char *prefix) {
s = startswith(s, prefix);
diff --git a/src/login/pam_systemd.c b/src/login/pam_systemd.c
-index aa6e5ea7aca8..c439c21b2872 100644
+index 16f4289585..6c5e438b36 100644
--- a/src/login/pam_systemd.c
+++ b/src/login/pam_systemd.c
-@@ -28,6 +28,7 @@
- #include "hostname-util.h"
+@@ -31,6 +31,7 @@
+ #include "locale-util.h"
#include "login-util.h"
#include "macro.h"
+#include "missing_stdlib.h"
+ #include "pam-util.h"
#include "parse-util.h"
#include "path-util.h"
- #include "process-util.h"
diff --git a/src/network/generator/network-generator.c b/src/network/generator/network-generator.c
-index 81afa9530762..2c5328f97c63 100644
+index bed1e42697..e4847c2bee 100644
--- a/src/network/generator/network-generator.c
+++ b/src/network/generator/network-generator.c
@@ -13,6 +13,7 @@
@@ -436,7 +462,7 @@ index 81afa9530762..2c5328f97c63 100644
/*
# .network
diff --git a/src/nspawn/nspawn-settings.c b/src/nspawn/nspawn-settings.c
-index 5fb5b49bbcc3..785ccc2da307 100644
+index d341fa25aa..91646bc2c2 100644
--- a/src/nspawn/nspawn-settings.c
+++ b/src/nspawn/nspawn-settings.c
@@ -16,6 +16,7 @@
@@ -448,22 +474,22 @@ index 5fb5b49bbcc3..785ccc2da307 100644
Settings *settings_new(void) {
Settings *s;
diff --git a/src/nss-mymachines/nss-mymachines.c b/src/nss-mymachines/nss-mymachines.c
-index 364356da5622..47d4ea44e40f 100644
+index 5db0dcef76..681f8677e4 100644
--- a/src/nss-mymachines/nss-mymachines.c
+++ b/src/nss-mymachines/nss-mymachines.c
@@ -19,6 +19,7 @@
+ #include "nss-util.h"
#include "signal-util.h"
#include "string-util.h"
- #include "user-util.h"
+#include "missing_stdlib.h"
NSS_GETHOSTBYNAME_PROTOTYPES(mymachines);
NSS_GETPW_PROTOTYPES(mymachines);
diff --git a/src/portable/portable.c b/src/portable/portable.c
-index 34b123e84692..5a48504d00ac 100644
+index 3a1367ec2b..f29336cb1e 100644
--- a/src/portable/portable.c
+++ b/src/portable/portable.c
-@@ -29,6 +29,7 @@
+@@ -31,6 +31,7 @@
#include "strv.h"
#include "tmpfile-util.h"
#include "user-util.h"
@@ -472,10 +498,10 @@ index 34b123e84692..5a48504d00ac 100644
static const char profile_dirs[] = CONF_PATHS_NULSTR("systemd/portable/profile");
diff --git a/src/resolve/resolvectl.c b/src/resolve/resolvectl.c
-index 0a96a18b3836..432d6ebc3730 100644
+index 3072b984e5..c46ae374bf 100644
--- a/src/resolve/resolvectl.c
+++ b/src/resolve/resolvectl.c
-@@ -31,6 +31,7 @@
+@@ -36,6 +36,7 @@
#include "strv.h"
#include "terminal-util.h"
#include "verbs.h"
@@ -483,8 +509,20 @@ index 0a96a18b3836..432d6ebc3730 100644
static int arg_family = AF_UNSPEC;
static int arg_ifindex = 0;
+diff --git a/src/shared/bus-get-properties.c b/src/shared/bus-get-properties.c
+index 8ad4694046..da5082c02a 100644
+--- a/src/shared/bus-get-properties.c
++++ b/src/shared/bus-get-properties.c
+@@ -3,6 +3,7 @@
+ #include "bus-get-properties.h"
+ #include "rlimit-util.h"
+ #include "string-util.h"
++#include "missing_stdlib.h"
+
+ int bus_property_get_bool(
+ sd_bus *bus,
diff --git a/src/shared/bus-unit-procs.c b/src/shared/bus-unit-procs.c
-index b21fe393265f..af2640005c1d 100644
+index b21fe39326..af2640005c 100644
--- a/src/shared/bus-unit-procs.c
+++ b/src/shared/bus-unit-procs.c
@@ -10,6 +10,7 @@
@@ -496,10 +534,10 @@ index b21fe393265f..af2640005c1d 100644
struct CGroupInfo {
char *cgroup_path;
diff --git a/src/shared/bus-unit-util.c b/src/shared/bus-unit-util.c
-index 22a15493d7f3..3f4c51975675 100644
+index f2652ed9a5..eb019fc89f 100644
--- a/src/shared/bus-unit-util.c
+++ b/src/shared/bus-unit-util.c
-@@ -34,6 +34,7 @@
+@@ -39,6 +39,7 @@
#include "unit-def.h"
#include "user-util.h"
#include "utf8.h"
@@ -508,19 +546,19 @@ index 22a15493d7f3..3f4c51975675 100644
int bus_parse_unit_info(sd_bus_message *message, UnitInfo *u) {
assert(message);
diff --git a/src/shared/bus-util.c b/src/shared/bus-util.c
-index aea46d311996..223426298144 100644
+index 77c1c62182..5cd31f3c15 100644
--- a/src/shared/bus-util.c
+++ b/src/shared/bus-util.c
-@@ -34,6 +34,7 @@
+@@ -22,6 +22,7 @@
+ #include "socket-util.h"
#include "stdio-util.h"
- #include "strv.h"
- #include "user-util.h"
+ /* #include "string-util.h" */
+#include "missing_stdlib.h"
static int name_owner_change_callback(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) {
sd_event *e = userdata;
diff --git a/src/shared/dns-domain.c b/src/shared/dns-domain.c
-index b812665315f6..8e68f7f8fc6c 100644
+index b812665315..8e68f7f8fc 100644
--- a/src/shared/dns-domain.c
+++ b/src/shared/dns-domain.c
@@ -23,6 +23,7 @@
@@ -532,7 +570,7 @@ index b812665315f6..8e68f7f8fc6c 100644
int dns_label_unescape(const char **name, char *dest, size_t sz, DNSLabelFlags flags) {
const char *n;
diff --git a/src/shared/journal-importer.c b/src/shared/journal-importer.c
-index 7c4fc7021dec..3fbaf5a63969 100644
+index 7c4fc7021d..3fbaf5a639 100644
--- a/src/shared/journal-importer.c
+++ b/src/shared/journal-importer.c
@@ -14,6 +14,7 @@
@@ -544,19 +582,19 @@ index 7c4fc7021dec..3fbaf5a63969 100644
enum {
IMPORTER_STATE_LINE = 0, /* waiting to read, or reading line */
diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c
-index 95b2e3376e9a..facc23aaecd5 100644
+index 899e894ab7..628854ac9c 100644
--- a/src/shared/logs-show.c
+++ b/src/shared/logs-show.c
-@@ -37,6 +37,7 @@
- #include "time-util.h"
+@@ -41,6 +41,7 @@
#include "utf8.h"
#include "util.h"
+ #include "web-util.h"
+#include "missing_stdlib.h"
/* up to three lines (each up to 100 characters) or 300 characters, whichever is less */
#define PRINT_LINE_THRESHOLD 3
diff --git a/src/shared/pager.c b/src/shared/pager.c
-index 1fe9db179176..67954b5cab93 100644
+index e03be6d23b..50e3d1f75c 100644
--- a/src/shared/pager.c
+++ b/src/shared/pager.c
@@ -23,6 +23,7 @@
@@ -567,20 +605,8 @@ index 1fe9db179176..67954b5cab93 100644
static pid_t pager_pid = 0;
-diff --git a/src/shared/path-lookup.c b/src/shared/path-lookup.c
-index 5b1620974536..0e7cd1c2af12 100644
---- a/src/shared/path-lookup.c
-+++ b/src/shared/path-lookup.c
-@@ -19,6 +19,7 @@
- #include "tmpfile-util.h"
- #include "user-util.h"
- #include "util.h"
-+#include "missing_stdlib.h"
-
- int xdg_user_runtime_dir(char **ret, const char *suffix) {
- const char *e;
diff --git a/src/shared/uid-range.c b/src/shared/uid-range.c
-index 7cb7d8a477e9..8e7d7f9e7ca6 100644
+index 7cb7d8a477..8e7d7f9e7c 100644
--- a/src/shared/uid-range.c
+++ b/src/shared/uid-range.c
@@ -9,6 +9,7 @@
@@ -592,7 +618,7 @@ index 7cb7d8a477e9..8e7d7f9e7ca6 100644
static bool uid_range_intersect(UidRange *range, uid_t start, uid_t nr) {
assert(range);
diff --git a/src/socket-proxy/socket-proxyd.c b/src/socket-proxy/socket-proxyd.c
-index 2fb9c854fa50..58cef31458f7 100644
+index b461aead60..9941695ed9 100644
--- a/src/socket-proxy/socket-proxyd.c
+++ b/src/socket-proxy/socket-proxyd.c
@@ -26,6 +26,7 @@
@@ -604,7 +630,7 @@ index 2fb9c854fa50..58cef31458f7 100644
#define BUFFER_SIZE (256 * 1024)
diff --git a/src/test/test-hexdecoct.c b/src/test/test-hexdecoct.c
-index 52217429b154..70708dedf318 100644
+index 52217429b1..70708dedf3 100644
--- a/src/test/test-hexdecoct.c
+++ b/src/test/test-hexdecoct.c
@@ -6,6 +6,7 @@
@@ -616,7 +642,7 @@ index 52217429b154..70708dedf318 100644
static void test_hexchar(void) {
assert_se(hexchar(0xa) == 'a');
diff --git a/src/udev/udev-builtin-path_id.c b/src/udev/udev-builtin-path_id.c
-index ca38f5608791..9d8cf4d2807b 100644
+index 6c020ac0ed..10723ec46c 100644
--- a/src/udev/udev-builtin-path_id.c
+++ b/src/udev/udev-builtin-path_id.c
@@ -22,6 +22,7 @@
@@ -628,7 +654,7 @@ index ca38f5608791..9d8cf4d2807b 100644
_printf_(2,3)
static void path_prepend(char **path, const char *fmt, ...) {
diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c
-index 58d484280aa5..90eab6806b55 100644
+index e1c2baf7f2..62d4086802 100644
--- a/src/udev/udev-event.c
+++ b/src/udev/udev-event.c
@@ -34,6 +34,7 @@
@@ -640,7 +666,7 @@ index 58d484280aa5..90eab6806b55 100644
typedef struct Spawn {
sd_device *device;
diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c
-index 6168b332d3b2..245fe0a64d22 100644
+index c36f032f66..36970813d8 100644
--- a/src/udev/udev-rules.c
+++ b/src/udev/udev-rules.c
@@ -30,6 +30,7 @@
diff --git a/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch b/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch
index ea003fd7da..abc438e4ba 100644
--- a/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch
+++ b/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch
@@ -1,4 +1,4 @@
-From 3932ce7f6c8ace5e1210aad20e1a141cb29329b1 Mon Sep 17 00:00:00 2001
+From 47818052121d135632f5e46c369e3e4706a0f9e0 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 26 Oct 2017 22:10:42 -0700
Subject: [PATCH] Include netinet/if_ether.h
@@ -52,10 +52,10 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com>
src/udev/udev-builtin-net_setup_link.c | 1 +
19 files changed, 18 insertions(+), 4 deletions(-)
-diff --git a/src/libsystemd-network/sd-dhcp6-client.c b/src/libsystemd-network/sd-dhcp6-client.c
-index 5417ba8c5feb..d3aba928dd96 100644
---- a/src/libsystemd-network/sd-dhcp6-client.c
-+++ b/src/libsystemd-network/sd-dhcp6-client.c
+Index: systemd-stable/src/libsystemd-network/sd-dhcp6-client.c
+===================================================================
+--- systemd-stable.orig/src/libsystemd-network/sd-dhcp6-client.c
++++ systemd-stable/src/libsystemd-network/sd-dhcp6-client.c
@@ -5,7 +5,6 @@
#include <errno.h>
@@ -64,10 +64,10 @@ index 5417ba8c5feb..d3aba928dd96 100644
#include <linux/if_infiniband.h>
#include "sd-dhcp6-client.h"
-diff --git a/src/libsystemd/sd-netlink/netlink-types.c b/src/libsystemd/sd-netlink/netlink-types.c
-index a55460f03407..6f9cd527c800 100644
---- a/src/libsystemd/sd-netlink/netlink-types.c
-+++ b/src/libsystemd/sd-netlink/netlink-types.c
+Index: systemd-stable/src/libsystemd/sd-netlink/netlink-types.c
+===================================================================
+--- systemd-stable.orig/src/libsystemd/sd-netlink/netlink-types.c
++++ systemd-stable/src/libsystemd/sd-netlink/netlink-types.c
@@ -3,6 +3,7 @@
#include <netinet/in.h>
#include <stdint.h>
@@ -76,10 +76,10 @@ index a55460f03407..6f9cd527c800 100644
#include <linux/can/vxcan.h>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>
-diff --git a/src/machine/machine-dbus.c b/src/machine/machine-dbus.c
-index 3b2ac3829859..760ccb445cd0 100644
---- a/src/machine/machine-dbus.c
-+++ b/src/machine/machine-dbus.c
+Index: systemd-stable/src/machine/machine-dbus.c
+===================================================================
+--- systemd-stable.orig/src/machine/machine-dbus.c
++++ systemd-stable/src/machine/machine-dbus.c
@@ -3,6 +3,7 @@
#include <errno.h>
#include <sys/mount.h>
@@ -88,21 +88,21 @@ index 3b2ac3829859..760ccb445cd0 100644
/* When we include libgen.h because we need dirname() we immediately
* undefine basename() since libgen.h defines it as a macro to the POSIX
-diff --git a/src/network/netdev/bond.c b/src/network/netdev/bond.c
-index 185b155440e7..dc1cd236c814 100644
---- a/src/network/netdev/bond.c
-+++ b/src/network/netdev/bond.c
+Index: systemd-stable/src/network/netdev/bond.c
+===================================================================
+--- systemd-stable.orig/src/network/netdev/bond.c
++++ systemd-stable/src/network/netdev/bond.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
+#include <netinet/if_ether.h>
#include "alloc-util.h"
#include "bond.h"
- #include "conf-parser.h"
-diff --git a/src/network/netdev/bridge.c b/src/network/netdev/bridge.c
-index 59a40faef8fa..8e821a3216b3 100644
---- a/src/network/netdev/bridge.c
-+++ b/src/network/netdev/bridge.c
+ #include "bond-util.h"
+Index: systemd-stable/src/network/netdev/bridge.c
+===================================================================
+--- systemd-stable.orig/src/network/netdev/bridge.c
++++ systemd-stable/src/network/netdev/bridge.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
@@ -110,10 +110,10 @@ index 59a40faef8fa..8e821a3216b3 100644
#include <net/if.h>
#include "bridge.h"
-diff --git a/src/network/netdev/macsec.c b/src/network/netdev/macsec.c
-index 25dc23ff0338..f20d11fbcf53 100644
---- a/src/network/netdev/macsec.c
-+++ b/src/network/netdev/macsec.c
+Index: systemd-stable/src/network/netdev/macsec.c
+===================================================================
+--- systemd-stable.orig/src/network/netdev/macsec.c
++++ systemd-stable/src/network/netdev/macsec.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
@@ -121,10 +121,10 @@ index 25dc23ff0338..f20d11fbcf53 100644
#include <netinet/in.h>
#include <linux/if_ether.h>
#include <linux/if_macsec.h>
-diff --git a/src/network/netdev/netdev-gperf.gperf b/src/network/netdev/netdev-gperf.gperf
-index 09a5f4822e03..873299b1f98a 100644
---- a/src/network/netdev/netdev-gperf.gperf
-+++ b/src/network/netdev/netdev-gperf.gperf
+Index: systemd-stable/src/network/netdev/netdev-gperf.gperf
+===================================================================
+--- systemd-stable.orig/src/network/netdev/netdev-gperf.gperf
++++ systemd-stable/src/network/netdev/netdev-gperf.gperf
@@ -2,6 +2,7 @@
#if __GNUC__ >= 7
_Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"")
@@ -133,21 +133,21 @@ index 09a5f4822e03..873299b1f98a 100644
#include <stddef.h>
#include "bond.h"
#include "bridge.h"
-diff --git a/src/network/netdev/netdev.c b/src/network/netdev/netdev.c
-index 6908c4e811b0..e0d8c459ab63 100644
---- a/src/network/netdev/netdev.c
-+++ b/src/network/netdev/netdev.c
+Index: systemd-stable/src/network/netdev/netdev.c
+===================================================================
+--- systemd-stable.orig/src/network/netdev/netdev.c
++++ systemd-stable/src/network/netdev/netdev.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
+#include <netinet/if_ether.h>
#include <net/if.h>
#include <netinet/in.h>
-
-diff --git a/src/network/networkd-brvlan.c b/src/network/networkd-brvlan.c
-index c3c5d535ac66..ebea408c89a8 100644
---- a/src/network/networkd-brvlan.c
-+++ b/src/network/networkd-brvlan.c
+ #include <unistd.h>
+Index: systemd-stable/src/network/networkd-brvlan.c
+===================================================================
+--- systemd-stable.orig/src/network/networkd-brvlan.c
++++ systemd-stable/src/network/networkd-brvlan.c
@@ -4,6 +4,7 @@
***/
@@ -156,11 +156,11 @@ index c3c5d535ac66..ebea408c89a8 100644
#include <linux/if_bridge.h>
#include <stdbool.h>
-diff --git a/src/network/networkd-dhcp-common.c b/src/network/networkd-dhcp-common.c
-index 6465a8cfe9c7..bd4b2cdfac15 100644
---- a/src/network/networkd-dhcp-common.c
-+++ b/src/network/networkd-dhcp-common.c
-@@ -4,6 +4,7 @@
+Index: systemd-stable/src/network/networkd-dhcp-common.c
+===================================================================
+--- systemd-stable.orig/src/network/networkd-dhcp-common.c
++++ systemd-stable/src/network/networkd-dhcp-common.c
+@@ -5,6 +5,7 @@
#include "escape.h"
#include "in-addr-util.h"
#include "networkd-dhcp-common.h"
@@ -168,24 +168,25 @@ index 6465a8cfe9c7..bd4b2cdfac15 100644
#include "networkd-network.h"
#include "parse-util.h"
#include "string-table.h"
-diff --git a/src/network/networkd-dhcp4.c b/src/network/networkd-dhcp4.c
-index 8ca87d99d4db..a66284896cf3 100644
---- a/src/network/networkd-dhcp4.c
-+++ b/src/network/networkd-dhcp4.c
-@@ -1,8 +1,8 @@
+Index: systemd-stable/src/network/networkd-dhcp4.c
+===================================================================
+--- systemd-stable.orig/src/network/networkd-dhcp4.c
++++ systemd-stable/src/network/networkd-dhcp4.c
+@@ -1,9 +1,9 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
+#include <netinet/if_ether.h>
#include <netinet/in.h>
+ #include <netinet/ip.h>
#include <linux/if.h>
-#include <linux/if_arp.h>
+ #include "escape.h"
#include "alloc-util.h"
- #include "dhcp-client-internal.h"
-diff --git a/src/network/networkd-dhcp6.c b/src/network/networkd-dhcp6.c
-index 647623ac3778..325c641c6231 100644
---- a/src/network/networkd-dhcp6.c
-+++ b/src/network/networkd-dhcp6.c
+Index: systemd-stable/src/network/networkd-dhcp6.c
+===================================================================
+--- systemd-stable.orig/src/network/networkd-dhcp6.c
++++ systemd-stable/src/network/networkd-dhcp6.c
@@ -3,9 +3,9 @@
Copyright © 2014 Intel Corporation. All rights reserved.
***/
@@ -194,13 +195,13 @@ index 647623ac3778..325c641c6231 100644
#include <netinet/in.h>
#include <linux/if.h>
-#include <linux/if_arp.h>
- #include "sd-radv.h"
#include "sd-dhcp6-client.h"
-diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
-index 2e60adbf7818..05aa8672d585 100644
---- a/src/network/networkd-link.c
-+++ b/src/network/networkd-link.c
+
+Index: systemd-stable/src/network/networkd-link.c
+===================================================================
+--- systemd-stable.orig/src/network/networkd-link.c
++++ systemd-stable/src/network/networkd-link.c
@@ -1,8 +1,8 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
@@ -208,13 +209,13 @@ index 2e60adbf7818..05aa8672d585 100644
#include <netinet/in.h>
#include <linux/if.h>
-#include <linux/if_arp.h>
+ #include <linux/if_link.h>
#include <unistd.h>
- #include "alloc-util.h"
-diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c
-index 6e443975f171..d1aab0ca5ba2 100644
---- a/src/network/networkd-network.c
-+++ b/src/network/networkd-network.c
+Index: systemd-stable/src/network/networkd-network.c
+===================================================================
+--- systemd-stable.orig/src/network/networkd-network.c
++++ systemd-stable/src/network/networkd-network.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
@@ -222,19 +223,19 @@ index 6e443975f171..d1aab0ca5ba2 100644
#include <net/if.h>
#include <netinet/in.h>
#include <linux/netdevice.h>
-diff --git a/src/network/test-network-tables.c b/src/network/test-network-tables.c
-index 25b939639775..530e4928835c 100644
---- a/src/network/test-network-tables.c
-+++ b/src/network/test-network-tables.c
+Index: systemd-stable/src/network/test-network-tables.c
+===================================================================
+--- systemd-stable.orig/src/network/test-network-tables.c
++++ systemd-stable/src/network/test-network-tables.c
@@ -1,3 +1,4 @@
+#include <netinet/if_ether.h>
#include "bond.h"
#include "dhcp6-internal.h"
#include "dhcp6-protocol.h"
-diff --git a/src/shared/ethtool-util.c b/src/shared/ethtool-util.c
-index 3119b2b92e3b..927ddd067eef 100644
---- a/src/shared/ethtool-util.c
-+++ b/src/shared/ethtool-util.c
+Index: systemd-stable/src/shared/ethtool-util.c
+===================================================================
+--- systemd-stable.orig/src/shared/ethtool-util.c
++++ systemd-stable/src/shared/ethtool-util.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
@@ -242,33 +243,33 @@ index 3119b2b92e3b..927ddd067eef 100644
#include <net/if.h>
#include <sys/ioctl.h>
#include <linux/ethtool.h>
-diff --git a/src/shared/ethtool-util.h b/src/shared/ethtool-util.h
-index d408bcd90a0b..7a1e399af023 100644
---- a/src/shared/ethtool-util.h
-+++ b/src/shared/ethtool-util.h
-@@ -2,6 +2,7 @@
- #pragma once
+Index: systemd-stable/src/shared/ethtool-util.h
+===================================================================
+--- systemd-stable.orig/src/shared/ethtool-util.h
++++ systemd-stable/src/shared/ethtool-util.h
+@@ -3,6 +3,7 @@
#include <macro.h>
+ #include <net/ethernet.h>
+#include <netinet/if_ether.h>
#include <linux/ethtool.h>
#include "conf-parser.h"
-diff --git a/src/udev/net/link-config.c b/src/udev/net/link-config.c
-index 7b07e2f38fa8..18680a8e5484 100644
---- a/src/udev/net/link-config.c
-+++ b/src/udev/net/link-config.c
+Index: systemd-stable/src/udev/net/link-config.c
+===================================================================
+--- systemd-stable.orig/src/udev/net/link-config.c
++++ systemd-stable/src/udev/net/link-config.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
+#include <netinet/if_ether.h>
#include <linux/netdevice.h>
#include <netinet/ether.h>
-
-diff --git a/src/udev/udev-builtin-net_setup_link.c b/src/udev/udev-builtin-net_setup_link.c
-index ee3ca9fa3846..9aa4e828741f 100644
---- a/src/udev/udev-builtin-net_setup_link.c
-+++ b/src/udev/udev-builtin-net_setup_link.c
+ #include <unistd.h>
+Index: systemd-stable/src/udev/udev-builtin-net_setup_link.c
+===================================================================
+--- systemd-stable.orig/src/udev/udev-builtin-net_setup_link.c
++++ systemd-stable/src/udev/udev-builtin-net_setup_link.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
diff --git a/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch b/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch
index 580c49fecf..dd6ecebeb4 100644
--- a/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch
+++ b/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch
@@ -23,10 +23,10 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com>
src/tmpfiles/tmpfiles.c | 10 ++++++++++
3 files changed, 38 insertions(+)
-diff --git a/src/basic/glob-util.c b/src/basic/glob-util.c
-index e3aa6c2e152b..38070b79c83a 100644
---- a/src/basic/glob-util.c
-+++ b/src/basic/glob-util.c
+Index: systemd-stable/src/basic/glob-util.c
+===================================================================
+--- systemd-stable.orig/src/basic/glob-util.c
++++ systemd-stable/src/basic/glob-util.c
@@ -12,6 +12,12 @@
#include "path-util.h"
#include "strv.h"
@@ -48,7 +48,7 @@ index e3aa6c2e152b..38070b79c83a 100644
/* We want to set GLOB_ALTDIRFUNC ourselves, don't allow it to be set. */
assert(!(flags & GLOB_ALTDIRFUNC));
-@@ -32,9 +39,14 @@ int safe_glob(const char *path, int flags, glob_t *pglob) {
+@@ -32,9 +39,14 @@ int safe_glob(const char *path, int flag
pglob->gl_lstat = lstat;
if (!pglob->gl_stat)
pglob->gl_stat = stat;
@@ -63,10 +63,10 @@ index e3aa6c2e152b..38070b79c83a 100644
if (k == GLOB_NOMATCH)
return -ENOENT;
if (k == GLOB_NOSPACE)
-diff --git a/src/test/test-glob-util.c b/src/test/test-glob-util.c
-index 667d15335fbf..76a84443aacf 100644
---- a/src/test/test-glob-util.c
-+++ b/src/test/test-glob-util.c
+Index: systemd-stable/src/test/test-glob-util.c
+===================================================================
+--- systemd-stable.orig/src/test/test-glob-util.c
++++ systemd-stable/src/test/test-glob-util.c
@@ -12,6 +12,12 @@
#include "rm-rf.h"
#include "tmpfile-util.h"
@@ -114,11 +114,11 @@ index 667d15335fbf..76a84443aacf 100644
assert_se(r == GLOB_NOMATCH);
(void) rm_rf(template, REMOVE_ROOT|REMOVE_PHYSICAL);
-diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
-index 193ed0bc781b..2f94fd2efd8f 100644
---- a/src/tmpfiles/tmpfiles.c
-+++ b/src/tmpfiles/tmpfiles.c
-@@ -58,6 +58,12 @@
+Index: systemd-stable/src/tmpfiles/tmpfiles.c
+===================================================================
+--- systemd-stable.orig/src/tmpfiles/tmpfiles.c
++++ systemd-stable/src/tmpfiles/tmpfiles.c
+@@ -59,6 +59,12 @@
#include "umask-util.h"
#include "user-util.h"
@@ -131,7 +131,7 @@ index 193ed0bc781b..2f94fd2efd8f 100644
/* This reads all files listed in /etc/tmpfiles.d/?*.conf and creates
* them in the file system. This is intended to be used to create
* properly owned directories beneath /tmp, /var/tmp, /run, which are
-@@ -1850,7 +1856,9 @@ finish:
+@@ -1867,7 +1873,9 @@ finish:
static int glob_item(Item *i, action_t action) {
_cleanup_globfree_ glob_t g = {
@@ -141,7 +141,7 @@ index 193ed0bc781b..2f94fd2efd8f 100644
};
int r = 0, k;
char **fn;
-@@ -1870,7 +1878,9 @@ static int glob_item(Item *i, action_t action) {
+@@ -1887,7 +1895,9 @@ static int glob_item(Item *i, action_t a
static int glob_item_recursively(Item *i, fdaction_t action) {
_cleanup_globfree_ glob_t g = {
diff --git a/meta/recipes-core/systemd/systemd/0010-fix-missing-of-__register_atfork-for-non-glibc-build.patch b/meta/recipes-core/systemd/systemd/0010-fix-missing-of-__register_atfork-for-non-glibc-build.patch
index 0de1121906..15055161fc 100644
--- a/meta/recipes-core/systemd/systemd/0010-fix-missing-of-__register_atfork-for-non-glibc-build.patch
+++ b/meta/recipes-core/systemd/systemd/0010-fix-missing-of-__register_atfork-for-non-glibc-build.patch
@@ -1,4 +1,4 @@
-From 5166a6657570d4072cdce118621791e4a8186e07 Mon Sep 17 00:00:00 2001
+From eed7427db98cc01db7e9b3479655d68b044bc85b Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 15:03:47 +0800
Subject: [PATCH] fix missing of __register_atfork for non-glibc builds
@@ -11,10 +11,10 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
src/basic/process-util.c | 7 +++++++
1 file changed, 7 insertions(+)
-diff --git a/src/basic/process-util.c b/src/basic/process-util.c
-index 9b6c4c31f713..24fec5ecb53a 100644
---- a/src/basic/process-util.c
-+++ b/src/basic/process-util.c
+Index: systemd-stable/src/basic/process-util.c
+===================================================================
+--- systemd-stable.orig/src/basic/process-util.c
++++ systemd-stable/src/basic/process-util.c
@@ -18,6 +18,9 @@
#if HAVE_VALGRIND_VALGRIND_H
#include <valgrind/valgrind.h>
@@ -25,7 +25,7 @@ index 9b6c4c31f713..24fec5ecb53a 100644
#include "alloc-util.h"
#include "architecture.h"
-@@ -1114,11 +1117,15 @@ void reset_cached_pid(void) {
+@@ -1143,11 +1146,15 @@ void reset_cached_pid(void) {
cached_pid = CACHED_PID_UNSET;
}
diff --git a/meta/recipes-core/systemd/systemd/0011-Use-uintmax_t-for-handling-rlim_t.patch b/meta/recipes-core/systemd/systemd/0011-Use-uintmax_t-for-handling-rlim_t.patch
index e00600ab7c..a6fcd2f5da 100644
--- a/meta/recipes-core/systemd/systemd/0011-Use-uintmax_t-for-handling-rlim_t.patch
+++ b/meta/recipes-core/systemd/systemd/0011-Use-uintmax_t-for-handling-rlim_t.patch
@@ -1,4 +1,4 @@
-From f6df7f25a6bb00d5540915216adfff8afefec2b0 Mon Sep 17 00:00:00 2001
+From 4aa91347ae975051dbe4dd2f98a1f4f459f2604f Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Mon, 25 Feb 2019 15:12:41 +0800
Subject: [PATCH] Use uintmax_t for handling rlim_t
@@ -27,11 +27,11 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
src/core/execute.c | 4 ++--
3 files changed, 8 insertions(+), 14 deletions(-)
-diff --git a/src/basic/format-util.h b/src/basic/format-util.h
-index 59622508a333..779b6826d50e 100644
---- a/src/basic/format-util.h
-+++ b/src/basic/format-util.h
-@@ -44,13 +44,7 @@
+Index: systemd-stable/src/basic/format-util.h
+===================================================================
+--- systemd-stable.orig/src/basic/format-util.h
++++ systemd-stable/src/basic/format-util.h
+@@ -32,13 +32,7 @@ assert_cc(sizeof(gid_t) == sizeof(uint32
# define PRI_TIMEX "li"
#endif
@@ -46,11 +46,11 @@ index 59622508a333..779b6826d50e 100644
#if SIZEOF_DEV_T == 8
# define DEV_FMT "%" PRIu64
-diff --git a/src/basic/rlimit-util.c b/src/basic/rlimit-util.c
-index 2dc13eabc30d..0633cc67f417 100644
---- a/src/basic/rlimit-util.c
-+++ b/src/basic/rlimit-util.c
-@@ -306,13 +306,13 @@ int rlimit_format(const struct rlimit *rl, char **ret) {
+Index: systemd-stable/src/basic/rlimit-util.c
+===================================================================
+--- systemd-stable.orig/src/basic/rlimit-util.c
++++ systemd-stable/src/basic/rlimit-util.c
+@@ -306,13 +306,13 @@ int rlimit_format(const struct rlimit *r
if (rl->rlim_cur >= RLIM_INFINITY && rl->rlim_max >= RLIM_INFINITY)
s = strdup("infinity");
else if (rl->rlim_cur >= RLIM_INFINITY)
@@ -77,11 +77,11 @@ index 2dc13eabc30d..0633cc67f417 100644
return 1;
}
-diff --git a/src/core/execute.c b/src/core/execute.c
-index f04b8ba05002..084cf1420078 100644
---- a/src/core/execute.c
-+++ b/src/core/execute.c
-@@ -4455,9 +4455,9 @@ void exec_context_dump(const ExecContext *c, FILE* f, const char *prefix) {
+Index: systemd-stable/src/core/execute.c
+===================================================================
+--- systemd-stable.orig/src/core/execute.c
++++ systemd-stable/src/core/execute.c
+@@ -4686,9 +4686,9 @@ void exec_context_dump(const ExecContext
for (i = 0; i < RLIM_NLIMITS; i++)
if (c->rlimit[i]) {
fprintf(f, "%sLimit%s: " RLIM_FMT "\n",
diff --git a/meta/recipes-core/systemd/systemd/0014-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch b/meta/recipes-core/systemd/systemd/0014-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
index aa23c7ab7d..049096d2a9 100644
--- a/meta/recipes-core/systemd/systemd/0014-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
+++ b/meta/recipes-core/systemd/systemd/0014-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
@@ -1,4 +1,4 @@
-From 7874912817b5ac7ed7f8557359a12d9d4b2f53eb Mon Sep 17 00:00:00 2001
+From 62fac5e3ff0fccd329cdc49605258b6d0e573a3e Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Wed, 28 Feb 2018 21:25:22 -0800
Subject: [PATCH] test-sizeof.c: Disable tests for missing typedefs in musl
@@ -13,10 +13,10 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
1 file changed, 4 insertions(+)
diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c
-index 7fc16a62b656..a710db5370b8 100644
+index 1020e0cb3153..c65062d2562c 100644
--- a/src/test/test-sizeof.c
+++ b/src/test/test-sizeof.c
-@@ -42,8 +42,10 @@ int main(void) {
+@@ -44,8 +44,10 @@ int main(void) {
info(unsigned);
info(long unsigned);
info(long long unsigned);
@@ -27,7 +27,7 @@ index 7fc16a62b656..a710db5370b8 100644
info(float);
info(double);
-@@ -61,7 +63,9 @@ int main(void) {
+@@ -63,7 +65,9 @@ int main(void) {
info(ssize_t);
info(time_t);
info(usec_t);
diff --git a/meta/recipes-core/systemd/systemd/0015-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch b/meta/recipes-core/systemd/systemd/0015-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
index efeef07295..0a7594c068 100644
--- a/meta/recipes-core/systemd/systemd/0015-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
+++ b/meta/recipes-core/systemd/systemd/0015-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
@@ -31,13 +31,13 @@ Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
src/shared/base-filesystem.c | 6 +++---
2 files changed, 24 insertions(+), 4 deletions(-)
-diff --git a/src/basic/fs-util.h b/src/basic/fs-util.h
-index 78d68be9fd85..c5dc84d41868 100644
---- a/src/basic/fs-util.h
-+++ b/src/basic/fs-util.h
-@@ -40,7 +40,27 @@ int fchmod_opath(int fd, mode_t m);
-
+Index: systemd-stable/src/basic/fs-util.h
+===================================================================
+--- systemd-stable.orig/src/basic/fs-util.h
++++ systemd-stable/src/basic/fs-util.h
+@@ -42,7 +42,27 @@ int fchmod_opath(int fd, mode_t m);
int fd_warn_permissions(const char *path, int fd);
+ int stat_warn_permissions(const char *path, const struct stat *st);
-#define laccess(path, mode) faccessat(AT_FDCWD, (path), (mode), AT_SYMLINK_NOFOLLOW)
+/*
@@ -64,11 +64,11 @@ index 78d68be9fd85..c5dc84d41868 100644
int touch_file(const char *path, bool parents, usec_t stamp, uid_t uid, gid_t gid, mode_t mode);
int touch(const char *path);
-diff --git a/src/shared/base-filesystem.c b/src/shared/base-filesystem.c
-index 657407da2d37..fbd5782d84fc 100644
---- a/src/shared/base-filesystem.c
-+++ b/src/shared/base-filesystem.c
-@@ -54,7 +54,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) {
+Index: systemd-stable/src/shared/base-filesystem.c
+===================================================================
+--- systemd-stable.orig/src/shared/base-filesystem.c
++++ systemd-stable/src/shared/base-filesystem.c
+@@ -54,7 +54,7 @@ int base_filesystem_create(const char *r
return log_error_errno(errno, "Failed to open root file system: %m");
for (i = 0; i < ELEMENTSOF(table); i ++) {
@@ -77,7 +77,7 @@ index 657407da2d37..fbd5782d84fc 100644
continue;
if (table[i].target) {
-@@ -62,7 +62,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) {
+@@ -62,7 +62,7 @@ int base_filesystem_create(const char *r
/* check if one of the targets exists */
NULSTR_FOREACH(s, table[i].target) {
@@ -86,7 +86,7 @@ index 657407da2d37..fbd5782d84fc 100644
continue;
/* check if a specific file exists at the target path */
-@@ -73,7 +73,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) {
+@@ -73,7 +73,7 @@ int base_filesystem_create(const char *r
if (!p)
return log_oom();
diff --git a/meta/recipes-core/systemd/systemd/0016-Define-glibc-compatible-basename-for-non-glibc-syste.patch b/meta/recipes-core/systemd/systemd/0016-Define-glibc-compatible-basename-for-non-glibc-syste.patch
index 19a3eef847..67d5041917 100644
--- a/meta/recipes-core/systemd/systemd/0016-Define-glibc-compatible-basename-for-non-glibc-syste.patch
+++ b/meta/recipes-core/systemd/systemd/0016-Define-glibc-compatible-basename-for-non-glibc-syste.patch
@@ -14,10 +14,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
src/machine/machine-dbus.c | 5 +++++
1 file changed, 5 insertions(+)
-diff --git a/src/machine/machine-dbus.c b/src/machine/machine-dbus.c
-index 760ccb445cd0..0df20f3864b3 100644
---- a/src/machine/machine-dbus.c
-+++ b/src/machine/machine-dbus.c
+Index: systemd-stable/src/machine/machine-dbus.c
+===================================================================
+--- systemd-stable.orig/src/machine/machine-dbus.c
++++ systemd-stable/src/machine/machine-dbus.c
@@ -11,6 +11,11 @@
#include <libgen.h>
#undef basename
@@ -29,4 +29,4 @@ index 760ccb445cd0..0df20f3864b3 100644
+
#include "alloc-util.h"
#include "bus-common-errors.h"
- #include "bus-internal.h"
+ #include "bus-get-properties.h"
diff --git a/meta/recipes-core/systemd/systemd/0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch b/meta/recipes-core/systemd/systemd/0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
index 56f45381de..3d456ec83a 100644
--- a/meta/recipes-core/systemd/systemd/0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
+++ b/meta/recipes-core/systemd/systemd/0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
@@ -1,4 +1,4 @@
-From a6f3359042219abaa8ae06dfcce41a4721e8c21f Mon Sep 17 00:00:00 2001
+From bb28a9c870bb47dcdb1ccebaa8e3a5a86730a244 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Wed, 4 Jul 2018 15:00:44 +0800
Subject: [PATCH] Do not disable buffering when writing to oom_score_adj
@@ -24,11 +24,11 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com>
src/basic/process-util.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/src/basic/process-util.c b/src/basic/process-util.c
-index 24fec5ecb53a..642b02443c85 100644
---- a/src/basic/process-util.c
-+++ b/src/basic/process-util.c
-@@ -1492,7 +1492,7 @@ int set_oom_score_adjust(int value) {
+Index: systemd-stable/src/basic/process-util.c
+===================================================================
+--- systemd-stable.orig/src/basic/process-util.c
++++ systemd-stable/src/basic/process-util.c
+@@ -1536,7 +1536,7 @@ int set_oom_score_adjust(int value) {
sprintf(t, "%i", value);
return write_string_file("/proc/self/oom_score_adj", t,
@@ -36,4 +36,4 @@ index 24fec5ecb53a..642b02443c85 100644
+ WRITE_STRING_FILE_VERIFY_ON_FAILURE);
}
- static const char *const ioprio_class_table[] = {
+ int pidfd_get_pid(int fd, pid_t *ret) {
diff --git a/meta/recipes-core/systemd/systemd/0018-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch b/meta/recipes-core/systemd/systemd/0018-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
index 84a492f290..48fd007e11 100644
--- a/meta/recipes-core/systemd/systemd/0018-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
+++ b/meta/recipes-core/systemd/systemd/0018-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
@@ -24,11 +24,11 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
src/libsystemd/sd-bus/bus-error.c | 5 +++++
2 files changed, 10 insertions(+)
-diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c
-index 43ed756bda53..227ea64dbb48 100644
---- a/src/journal/journal-send.c
-+++ b/src/journal/journal-send.c
-@@ -336,7 +336,12 @@ static int fill_iovec_perror_and_send(const char *message, int skip, struct iove
+Index: systemd-stable/src/journal/journal-send.c
+===================================================================
+--- systemd-stable.orig/src/journal/journal-send.c
++++ systemd-stable/src/journal/journal-send.c
+@@ -348,7 +348,12 @@ static int fill_iovec_perror_and_send(co
char* j;
errno = 0;
@@ -41,11 +41,11 @@ index 43ed756bda53..227ea64dbb48 100644
if (errno == 0) {
char error[STRLEN("ERRNO=") + DECIMAL_STR_MAX(int) + 1];
-diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c
-index f760f0fdd21c..28a5159c4480 100644
---- a/src/libsystemd/sd-bus/bus-error.c
-+++ b/src/libsystemd/sd-bus/bus-error.c
-@@ -379,7 +379,12 @@ static void bus_error_strerror(sd_bus_error *e, int error) {
+Index: systemd-stable/src/libsystemd/sd-bus/bus-error.c
+===================================================================
+--- systemd-stable.orig/src/libsystemd/sd-bus/bus-error.c
++++ systemd-stable/src/libsystemd/sd-bus/bus-error.c
+@@ -379,7 +379,12 @@ static void bus_error_strerror(sd_bus_er
return;
errno = 0;
diff --git a/meta/recipes-core/systemd/systemd/0021-Handle-missing-LOCK_EX.patch b/meta/recipes-core/systemd/systemd/0021-Handle-missing-LOCK_EX.patch
new file mode 100644
index 0000000000..67d9162c08
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0021-Handle-missing-LOCK_EX.patch
@@ -0,0 +1,23 @@
+From 190854c2114dc6e74c8859dc251e3737e3c0f353 Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Fri, 7 Aug 2020 15:19:27 +0000
+Subject: [PATCH] Handle missing LOCK_EX
+
+Upstream-Status: Inappropriate [musl specific]
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ src/partition/makefs.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/partition/makefs.c b/src/partition/makefs.c
+index 97f50c9033..7f55acd229 100644
+--- a/src/partition/makefs.c
++++ b/src/partition/makefs.c
+@@ -5,6 +5,7 @@
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <unistd.h>
++#include <sys/file.h>
+
+ #include "alloc-util.h"
+ #include "blockdev-util.h"
diff --git a/meta/recipes-core/systemd/systemd/0022-Fix-incompatible-pointer-type-struct-sockaddr_un.patch b/meta/recipes-core/systemd/systemd/0022-Fix-incompatible-pointer-type-struct-sockaddr_un.patch
new file mode 100644
index 0000000000..d57ca1fd39
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0022-Fix-incompatible-pointer-type-struct-sockaddr_un.patch
@@ -0,0 +1,37 @@
+From 328c39fae2631deb5737dd56f46159dd6b4cdbed Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Fri, 7 Aug 2020 15:20:17 +0000
+Subject: [PATCH] Fix incompatible pointer type struct sockaddr_un *
+
+| ../../../../../../workspace/sources/systemd/src/nspawn/nspawn.c: In function 'cant_be_in_netns':
+| ../../../../../../workspace/sources/systemd/src/nspawn/nspawn.c:4893:25: error: passing argument 2 of 'connect' from incompatible pointer type [-Werror=incompatible-pointer-types]
+| 4893 | if (connect(fd, &sa.un, SOCKADDR_UN_LEN(sa.un)) < 0) {
+| | ^~~~~~
+| | |
+| | struct sockaddr_un *
+| In file included from ../../../../../../workspace/sources/systemd/src/systemd/sd-daemon.h:22,
+| from ../../../../../../workspace/sources/systemd/src/nspawn/nspawn.c:21:
+| /home/ubuntu/poky/build/tmp/work/core2-64-poky-linux-musl/systemd/1_246-r0/recipe-sysroot/usr/include/sys/socket.h:384:19: note: expected 'const struct sockaddr *' but argument is of type 'struct sockaddr_un *'
+| 384 | int connect (int, const struct sockaddr *, socklen_t);
+| | ^~~~~~~~~~~~~~~~~~~~~~~
+| cc1: some warnings being treated as errors
+
+Upstream-Status: Inappropriate [musl specific]
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ src/nspawn/nspawn.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
+index 0450c9f795..7305db04ef 100644
+--- a/src/nspawn/nspawn.c
++++ b/src/nspawn/nspawn.c
+@@ -4890,7 +4890,7 @@ static int cant_be_in_netns(void) {
+ if (fd < 0)
+ return log_error_errno(errno, "Failed to allocate udev control socket: %m");
+
+- if (connect(fd, &sa.un, SOCKADDR_UN_LEN(sa.un)) < 0) {
++ if (connect(fd, (struct sockaddr *)&sa.un, SOCKADDR_UN_LEN(sa.un)) < 0) {
+
+ if (errno == ENOENT || ERRNO_IS_DISCONNECT(errno))
+ return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
diff --git a/meta/recipes-core/systemd/systemd/0022-Use-INT_MAX-instead-of-TIME_T_MAX-for-timerfd_settim.patch b/meta/recipes-core/systemd/systemd/0022-Use-INT_MAX-instead-of-TIME_T_MAX-for-timerfd_settim.patch
deleted file mode 100644
index 33c575871c..0000000000
--- a/meta/recipes-core/systemd/systemd/0022-Use-INT_MAX-instead-of-TIME_T_MAX-for-timerfd_settim.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 3cc30186f9d9adb565dc29f2d4e68889974676ae Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 16 Dec 2019 12:49:07 -0800
-Subject: [PATCH] Use INT_MAX instead of TIME_T_MAX for timerfd_settime timeout
-
-kernel prior to 64bit time_t support might not entertain such large
-timeout therefore reduce it to INT_MAX which would set timer expiration
-event after 68 years of uptime, should be good for all practical
-purposes
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-
----
- src/basic/time-util.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/basic/time-util.c b/src/basic/time-util.c
-index d7ef30d2fe52..4d3219f114b5 100644
---- a/src/basic/time-util.c
-+++ b/src/basic/time-util.c
-@@ -1487,7 +1487,7 @@ int time_change_fd(void) {
-
- /* We only care for the cancellation event, hence we set the timeout to the latest possible value. */
- static const struct itimerspec its = {
-- .it_value.tv_sec = TIME_T_MAX,
-+ .it_value.tv_sec = INT_MAX,
- };
-
- _cleanup_close_ int fd;
diff --git a/meta/recipes-core/systemd/systemd_244.3.bb b/meta/recipes-core/systemd/systemd_246.6.bb
index b686519482..9215adf8dc 100644
--- a/meta/recipes-core/systemd/systemd_244.3.bb
+++ b/meta/recipes-core/systemd/systemd_246.6.bb
@@ -17,9 +17,10 @@ REQUIRED_DISTRO_FEATURES = "systemd"
SRC_URI += "file://touchscreen.rules \
file://00-create-volatile.conf \
file://init \
+ file://99-default.preset \
file://0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch \
file://0003-implment-systemd-sysv-install-for-OE.patch \
- file://99-default.preset \
+ file://0001-systemd.pc.in-use-ROOTPREFIX-without-suffixed-slash.patch \
"
# patches needed by musl
@@ -42,12 +43,14 @@ SRC_URI_MUSL = "\
file://0019-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch \
file://0020-missing_type.h-add-__compar_d_fn_t-definition.patch \
file://0021-avoid-redefinition-of-prctl_mm_map-structure.patch \
- file://0022-Use-INT_MAX-instead-of-TIME_T_MAX-for-timerfd_settim.patch \
+ file://0021-Handle-missing-LOCK_EX.patch \
+ file://0022-Fix-incompatible-pointer-type-struct-sockaddr_un.patch \
file://0024-test-json.c-define-M_PIl.patch \
file://0001-do-not-disable-buffer-in-writing-files.patch \
file://0002-src-login-brightness.c-include-sys-wait.h.patch \
file://0003-src-basic-copy.c-include-signal.h.patch \
file://0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch \
+ file://0001-Handle-missing-gshadow.patch \
"
PAM_PLUGINS = " \
@@ -57,10 +60,9 @@ PAM_PLUGINS = " \
"
PACKAGECONFIG ??= " \
- ${@bb.utils.filter('DISTRO_FEATURES', 'efi ldconfig pam selinux usrmerge polkit', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'acl audit efi ldconfig pam selinux smack usrmerge polkit', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'rfkill', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xkbcommon', '', d)} \
- acl \
backlight \
binfmt \
gshadow \
@@ -81,10 +83,11 @@ PACKAGECONFIG ??= " \
randomseed \
resolved \
set-time-epoch \
- smack \
sysusers \
+ sysvinit \
timedated \
timesyncd \
+ userdb \
utmp \
vconsole \
xz \
@@ -98,12 +101,13 @@ PACKAGECONFIG_remove_libc-musl = " \
nss \
nss-mymachines \
nss-resolve \
- resolved \
- smack \
sysusers \
+ userdb \
utmp \
"
+CFLAGS_append_libc-musl = " -D__UAPI_DEF_ETHHDR=0 "
+
# Use the upstream systemd serial-getty@.service and rely on
# systemd-getty-generator instead of using the OE-core specific
# systemd-serialgetty.bb - not enabled by default.
@@ -138,6 +142,7 @@ PACKAGECONFIG[journal-upload] = "-Dlibcurl=true,-Dlibcurl=false,curl"
PACKAGECONFIG[kmod] = "-Dkmod=true,-Dkmod=false,kmod"
PACKAGECONFIG[ldconfig] = "-Dldconfig=true,-Dldconfig=false,,ldconfig"
PACKAGECONFIG[libidn] = "-Dlibidn=true,-Dlibidn=false,libidn"
+PACKAGECONFIG[libidn2] = "-Dlibidn2=true,-Dlibidn2=false,libidn2"
PACKAGECONFIG[localed] = "-Dlocaled=true,-Dlocaled=false"
PACKAGECONFIG[logind] = "-Dlogind=true,-Dlogind=false"
PACKAGECONFIG[lz4] = "-Dlz4=true,-Dlz4=false,lz4"
@@ -164,6 +169,7 @@ PACKAGECONFIG[seccomp] = "-Dseccomp=true,-Dseccomp=false,libseccomp"
PACKAGECONFIG[selinux] = "-Dselinux=true,-Dselinux=false,libselinux,initscripts-sushell"
PACKAGECONFIG[smack] = "-Dsmack=true,-Dsmack=false"
PACKAGECONFIG[sysusers] = "-Dsysusers=true,-Dsysusers=false"
+PACKAGECONFIG[sysvinit] = "-Dsysvinit-path=${sysconfdir}/init.d -Dsysvrcnd-path=${sysconfdir},-Dsysvinit-path= -Dsysvrcnd-path=,,systemd-compat-units update-rc.d"
# When enabled use reproducble build timestamp if set as time epoch,
# or build time if not. When disabled, time epoch is unset.
def build_epoch(d):
@@ -174,9 +180,11 @@ PACKAGECONFIG[timedated] = "-Dtimedated=true,-Dtimedated=false"
PACKAGECONFIG[timesyncd] = "-Dtimesyncd=true,-Dtimesyncd=false"
PACKAGECONFIG[usrmerge] = "-Dsplit-usr=false,-Dsplit-usr=true"
PACKAGECONFIG[sbinmerge] = "-Dsplit-bin=false,-Dsplit-bin=true"
+PACKAGECONFIG[userdb] = "-Duserdb=true,-Duserdb=false"
PACKAGECONFIG[utmp] = "-Dutmp=true,-Dutmp=false"
PACKAGECONFIG[valgrind] = "-DVALGRIND=1,,valgrind"
PACKAGECONFIG[vconsole] = "-Dvconsole=true,-Dvconsole=false,,${PN}-vconsole-setup"
+PACKAGECONFIG[xdg-autostart] = "-Dxdg-autostart=true,-Dxdg-autostart=false"
# Verify keymaps on locale change
PACKAGECONFIG[xkbcommon] = "-Dxkbcommon=true,-Dxkbcommon=false,libxkbcommon"
PACKAGECONFIG[xz] = "-Dxz=true,-Dxz=false,xz"
@@ -197,7 +205,6 @@ EXTRA_OEMESON += "-Dnobody-user=nobody \
-Dnobody-group=nobody \
-Drootlibdir=${rootlibdir} \
-Drootprefix=${rootprefix} \
- -Dsysvrcnd-path=${sysconfdir} \
-Ddefault-locale=C \
"
@@ -225,7 +232,9 @@ do_install() {
install -d ${D}${sysconfdir}/udev/rules.d/
install -d ${D}${sysconfdir}/tmpfiles.d
- install -m 0644 ${WORKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d/
+ for rule in $(find ${WORKDIR} -maxdepth 1 -type f -name "*.rules"); do
+ install -m 0644 $rule ${D}${sysconfdir}/udev/rules.d/
+ done
install -m 0644 ${WORKDIR}/00-create-volatile.conf ${D}${sysconfdir}/tmpfiles.d/
@@ -233,6 +242,7 @@ do_install() {
install -d ${D}${sysconfdir}/init.d
install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/systemd-udevd
sed -i s%@UDEVD@%${rootlibexecdir}/systemd/systemd-udevd% ${D}${sysconfdir}/init.d/systemd-udevd
+ install -Dm 0755 ${S}/src/systemctl/systemd-sysv-install.SKELETON ${D}${systemd_unitdir}/systemd-sysv-install
fi
chown root:systemd-journal ${D}/${localstatedir}/log/journal
@@ -272,7 +282,10 @@ do_install() {
sed -i -e "s%^L! /etc/resolv.conf.*$%L! /etc/resolv.conf - - - - ../run/systemd/resolve/resolv.conf%g" ${D}${exec_prefix}/lib/tmpfiles.d/etc.conf
ln -s ../run/systemd/resolve/resolv.conf ${D}${sysconfdir}/resolv-conf.systemd
fi
- install -Dm 0755 ${S}/src/systemctl/systemd-sysv-install.SKELETON ${D}${systemd_unitdir}/systemd-sysv-install
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'false', 'true', d)}; then
+ rm ${D}${exec_prefix}/lib/tmpfiles.d/x11.conf
+ rm -r ${D}${sysconfdir}/X11
+ fi
# If polkit is setup fixup permissions and ownership
if ${@bb.utils.contains('PACKAGECONFIG', 'polkit', 'true', 'false', d)}; then
@@ -292,10 +305,6 @@ do_install() {
# install default policy for presets
# https://www.freedesktop.org/wiki/Software/systemd/Preset/#howto
install -Dm 0644 ${WORKDIR}/99-default.preset ${D}${systemd_unitdir}/system-preset/99-default.preset
-
- # We use package postinsts for the hwdb update, as the update service is
- # easily triggered for no reason and will slow down boots.
- find ${D} -name systemd-hwdb-update.service -delete
}
python populate_packages_prepend (){
@@ -304,7 +313,7 @@ python populate_packages_prepend (){
}
PACKAGES_DYNAMIC += "^lib(udev|systemd|nss).*"
-PACKAGES =+ "\
+PACKAGE_BEFORE_PN = "\
${PN}-gui \
${PN}-vconsole-setup \
${PN}-initramfs \
@@ -318,6 +327,9 @@ PACKAGES =+ "\
${PN}-journal-upload \
${PN}-journal-remote \
${PN}-extra-utils \
+ ${PN}-udev-rules \
+ udev \
+ udev-hwdb \
"
SUMMARY_${PN}-container = "Tools for containers and VMs"
@@ -490,13 +502,23 @@ FILES_${PN}-extra-utils = "\
${rootlibexecdir}/systemd/systemd-cgroups-agent \
"
+FILES_${PN}-udev-rules = "\
+ ${rootlibexecdir}/udev/rules.d/70-uaccess.rules \
+ ${rootlibexecdir}/udev/rules.d/71-seat.rules \
+ ${rootlibexecdir}/udev/rules.d/73-seat-late.rules \
+ ${rootlibexecdir}/udev/rules.d/99-systemd.rules \
+"
+
CONFFILES_${PN} = "${sysconfdir}/systemd/coredump.conf \
${sysconfdir}/systemd/journald.conf \
${sysconfdir}/systemd/logind.conf \
- ${sysconfdir}/systemd/system.conf \
- ${sysconfdir}/systemd/user.conf \
+ ${sysconfdir}/systemd/networkd.conf \
+ ${sysconfdir}/systemd/pstore.conf \
${sysconfdir}/systemd/resolved.conf \
+ ${sysconfdir}/systemd/sleep.conf \
+ ${sysconfdir}/systemd/system.conf \
${sysconfdir}/systemd/timesyncd.conf \
+ ${sysconfdir}/systemd/user.conf \
"
FILES_${PN} = " ${base_bindir}/* \
@@ -535,7 +557,6 @@ FILES_${PN} = " ${base_bindir}/* \
${bindir}/resolvectl \
${bindir}/timedatectl \
${bindir}/bootctl \
- ${bindir}/kernel-install \
${exec_prefix}/lib/tmpfiles.d/*.conf \
${exec_prefix}/lib/systemd \
${exec_prefix}/lib/modules-load.d \
@@ -543,11 +564,7 @@ FILES_${PN} = " ${base_bindir}/* \
${exec_prefix}/lib/sysusers.d \
${exec_prefix}/lib/environment.d \
${localstatedir} \
- ${nonarch_base_libdir}/udev/rules.d/70-uaccess.rules \
- ${nonarch_base_libdir}/udev/rules.d/71-seat.rules \
- ${nonarch_base_libdir}/udev/rules.d/73-seat-late.rules \
- ${nonarch_base_libdir}/udev/rules.d/99-systemd.rules \
- ${nonarch_base_libdir}/modprobe.d/systemd.conf \
+ ${rootlibexecdir}/modprobe.d/systemd.conf \
${datadir}/dbus-1/system.d/org.freedesktop.timedate1.conf \
${datadir}/dbus-1/system.d/org.freedesktop.locale1.conf \
${datadir}/dbus-1/system.d/org.freedesktop.network1.conf \
@@ -561,14 +578,14 @@ FILES_${PN} = " ${base_bindir}/* \
FILES_${PN}-dev += "${base_libdir}/security/*.la ${datadir}/dbus-1/interfaces/ ${sysconfdir}/rpm/macros.systemd"
-RDEPENDS_${PN} += "kmod dbus util-linux-mount util-linux-umount udev (= ${EXTENDPKGV}) util-linux-agetty util-linux-fsck"
+RDEPENDS_${PN} += "kmod dbus util-linux-mount util-linux-umount udev (= ${EXTENDPKGV}) systemd-udev-rules util-linux-agetty util-linux-fsck"
RDEPENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', '', 'systemd-serialgetty', d)}"
-RDEPENDS_${PN} += "volatile-binds update-rc.d"
+RDEPENDS_${PN} += "volatile-binds"
RRECOMMENDS_${PN} += "systemd-extra-utils \
- systemd-compat-units udev-hwdb \
+ udev-hwdb \
e2fsprogs-e2fsck \
- kernel-module-autofs4 kernel-module-unix kernel-module-ipv6 \
+ kernel-module-autofs4 kernel-module-unix kernel-module-ipv6 kernel-module-sch-fq-codel \
os-release \
systemd-conf \
"
@@ -577,8 +594,6 @@ INSANE_SKIP_${PN} += "dev-so libdir"
INSANE_SKIP_${PN}-dbg += "libdir"
INSANE_SKIP_${PN}-doc += " libdir"
-PACKAGES =+ "udev udev-hwdb"
-
RPROVIDES_udev = "hotplug"
RDEPENDS_udev-hwdb += "udev"
@@ -598,18 +613,48 @@ FILES_udev += "${base_sbindir}/udevd \
${rootlibexecdir}/udev/scsi_id \
${rootlibexecdir}/udev/v4l_id \
${rootlibexecdir}/udev/keymaps \
- ${rootlibexecdir}/udev/rules.d/*.rules \
+ ${rootlibexecdir}/udev/rules.d/50-udev-default.rules \
+ ${rootlibexecdir}/udev/rules.d/60-autosuspend.rules \
+ ${rootlibexecdir}/udev/rules.d/60-autosuspend-chromiumos.rules \
+ ${rootlibexecdir}/udev/rules.d/60-block.rules \
+ ${rootlibexecdir}/udev/rules.d/60-cdrom_id.rules \
+ ${rootlibexecdir}/udev/rules.d/60-drm.rules \
+ ${rootlibexecdir}/udev/rules.d/60-evdev.rules \
+ ${rootlibexecdir}/udev/rules.d/60-fido-id.rules \
+ ${rootlibexecdir}/udev/rules.d/60-input-id.rules \
+ ${rootlibexecdir}/udev/rules.d/60-persistent-alsa.rules \
+ ${rootlibexecdir}/udev/rules.d/60-persistent-input.rules \
+ ${rootlibexecdir}/udev/rules.d/60-persistent-storage.rules \
+ ${rootlibexecdir}/udev/rules.d/60-persistent-storage-tape.rules \
+ ${rootlibexecdir}/udev/rules.d/60-persistent-v4l.rules \
+ ${rootlibexecdir}/udev/rules.d/60-sensor.rules \
+ ${rootlibexecdir}/udev/rules.d/60-serial.rules \
+ ${rootlibexecdir}/udev/rules.d/61-autosuspend-manual.rules \
+ ${rootlibexecdir}/udev/rules.d/64-btrfs.rules \
+ ${rootlibexecdir}/udev/rules.d/70-joystick.rules \
+ ${rootlibexecdir}/udev/rules.d/70-mouse.rules \
+ ${rootlibexecdir}/udev/rules.d/70-power-switch.rules \
+ ${rootlibexecdir}/udev/rules.d/70-touchpad.rules \
+ ${rootlibexecdir}/udev/rules.d/75-net-description.rules \
+ ${rootlibexecdir}/udev/rules.d/75-probe_mtd.rules \
+ ${rootlibexecdir}/udev/rules.d/78-sound-card.rules \
+ ${rootlibexecdir}/udev/rules.d/80-drivers.rules \
+ ${rootlibexecdir}/udev/rules.d/80-net-setup-link.rules \
+ ${rootlibexecdir}/udev/rules.d/90-vconsole.rules \
${sysconfdir}/udev \
${sysconfdir}/init.d/systemd-udevd \
${systemd_unitdir}/system/*udev* \
${systemd_unitdir}/system/*.wants/*udev* \
+ ${base_bindir}/systemd-hwdb \
${base_bindir}/udevadm \
${base_sbindir}/udevadm \
${libexecdir}/${MLPREFIX}udevadm \
${datadir}/bash-completion/completions/udevadm \
+ ${systemd_unitdir}/system/systemd-hwdb-update.service \
"
-FILES_udev-hwdb = "${rootlibexecdir}/udev/hwdb.d"
+FILES_udev-hwdb = "${rootlibexecdir}/udev/hwdb.d \
+ "
RCONFLICTS_${PN} = "tiny-init ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'resolvconf', '', d)}"
@@ -669,7 +714,7 @@ pkg_prerm_${PN}_libc-glibc () {
PACKAGE_WRITE_DEPS += "qemu-native"
pkg_postinst_udev-hwdb () {
if test -n "$D"; then
- $INTERCEPT_DIR/postinst_intercept update_udev_hwdb ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX}
+ $INTERCEPT_DIR/postinst_intercept update_udev_hwdb ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX} rootlibexecdir="${rootlibexecdir}" PREFERRED_PROVIDER_udev="${PREFERRED_PROVIDER_udev}"
else
udevadm hwdb --update
fi
diff --git a/meta/recipes-core/sysvinit/sysvinit-inittab/start_getty b/meta/recipes-core/sysvinit/sysvinit-inittab/start_getty
index 96fd6cfcfd..dfa799adac 100644
--- a/meta/recipes-core/sysvinit/sysvinit-inittab/start_getty
+++ b/meta/recipes-core/sysvinit/sysvinit-inittab/start_getty
@@ -11,7 +11,7 @@
active_serial=$(grep "serial" /proc/tty/drivers | cut -d/ -f1 | sed "s/ *$//")
# Rephrase input parameter from ttyS target index (ttyS1, ttyS2, ttyAMA0, etc).
-runtime_tty=$(echo $2 | grep -oh '[0-9]')
+runtime_tty=$(echo $2 | grep -oh '[0-9]\+')
# busybox' getty does this itself, util-linux' agetty needs extra help
getty="/sbin/getty"
@@ -36,7 +36,7 @@ for line in $active_serial; do
then
# Remove all unknown entries and discard the first line (desc).
activetty=$(grep -v "unknown" "/proc/tty/driver/$line" \
- | tail -n +2 | grep -oh "^\s*\S*[0-9]")
+ | tail -n +2 | grep -oh "^\s*\S*[0-9]\+")
for active in $activetty; do
# If indexes do match then enable the serial console.
if [ $active -eq $runtime_tty ]
diff --git a/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch b/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch
index bd4444b81b..5c39fb001b 100644
--- a/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch
+++ b/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch
@@ -1,4 +1,4 @@
-From 7276275d9a08d5ae268fb263027bbc60bc0ab2e8 Mon Sep 17 00:00:00 2001
+From c3a068cf24a22bea7349849ec111ae8d91a54db4 Mon Sep 17 00:00:00 2001
From: Jeff Dike <jdike@x86_64.user-mode-linux.org>
Date: Wed, 14 Jul 2010 14:35:52 -0400
Subject: [PATCH] sysvinit - Remove sulogin dependency on /usr/lib*/libcrypt.a
@@ -11,24 +11,26 @@ Upstream-Status: Inappropriate [configuration]
# - jdike@linux.intel.com
---
- src/Makefile | 9 ++-------
- 1 file changed, 2 insertions(+), 7 deletions(-)
+ src/Makefile | 11 ++---------
+ 1 file changed, 2 insertions(+), 9 deletions(-)
diff --git a/src/Makefile b/src/Makefile
-index 1380d7f..628e77f 100644
+index 5b1a5a2..b686394 100644
--- a/src/Makefile
+++ b/src/Makefile
-@@ -97,13 +97,8 @@ else
+@@ -97,15 +97,8 @@ else
endif
# Additional libs for GNU libc.
--ifneq ($(wildcard /usr/lib*/libcrypt.*),)
+-ifneq ($(wildcard $(ROOT)/usr/lib*/libcrypt.*),)
- SULOGINLIBS += -lcrypt
-endif
-
-# Additional libs for GNU libc / multiarch on Debian based systems.
--ifneq ($(wildcard /usr/lib/*/libcrypt.*),)
+-ifneq ($(wildcard $(ROOT)/usr/lib/*/libcrypt.*),)
+-ifneq ($(findstring -lcrypt, $(SULOGINLIBS)), -lcrypt)
- SULOGINLIBS += -lcrypt
+-endif
+ifneq ($(LCRYPT),)
+ SULOGINLIBS += $(LCRYPT)
endif
diff --git a/meta/recipes-core/sysvinit/sysvinit/install.patch b/meta/recipes-core/sysvinit/sysvinit/install.patch
index 2930fb0195..90563a6294 100644
--- a/meta/recipes-core/sysvinit/sysvinit/install.patch
+++ b/meta/recipes-core/sysvinit/sysvinit/install.patch
@@ -1,4 +1,4 @@
-From b6cc66ab245ceb6bca0116dff7a41f6d7677b96a Mon Sep 17 00:00:00 2001
+From 5e35aa105e7a2e85db2a89fee4114090b1ac55be Mon Sep 17 00:00:00 2001
From: Qing He <qing.he@intel.com>
Date: Fri, 18 Jun 2010 09:40:30 +0800
Subject: [PATCH] sysvinit: upgrade to version 2.88dsf
@@ -10,7 +10,7 @@ Upstream-Status: Pending
1 file changed, 30 insertions(+), 23 deletions(-)
diff --git a/src/Makefile b/src/Makefile
-index 9f9f09e..1380d7f 100644
+index 1b368dc..5b1a5a2 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -77,7 +77,14 @@ else
@@ -29,7 +29,7 @@ index 9f9f09e..1380d7f 100644
ifeq ($(WITH_SELINUX),yes)
SELINUX_DEF = -DWITH_SELINUX
-@@ -189,42 +196,42 @@ clobber: cleanobjs
+@@ -191,43 +198,43 @@ clobber: cleanobjs
distclean: clobber
install: all
@@ -50,6 +50,7 @@ index 9f9f09e..1380d7f 100644
+ $(INSTALL_EXEC) $$i $(ROOT)$(bindir)/ ; \
done
# $(INSTALL_DIR) $(ROOT)/etc/
+ $(INSTALL_DIR) $(ROOT)/etc/inittab.d
# $(INSTALL_EXEC) ../doc/initscript.sample $(ROOT)/etc/
- ln -sf halt $(ROOT)/sbin/reboot
- ln -sf halt $(ROOT)/sbin/poweroff
diff --git a/meta/recipes-core/sysvinit/sysvinit/rc b/meta/recipes-core/sysvinit/sysvinit/rc
index 7ca41ae1ae..fd1fdd26ba 100755
--- a/meta/recipes-core/sysvinit/sysvinit/rc
+++ b/meta/recipes-core/sysvinit/sysvinit/rc
@@ -26,11 +26,8 @@ startup_progress() {
progress=$progress_size
fi
#echo "PROGRESS is $progress $runlevel $first_step + ($step of $num_steps) $step_change $progress_size"
- #if type psplash-write >/dev/null 2>&1; then
- # TMPDIR=/mnt/.psplash psplash-write "PROGRESS $progress" || true
- #fi
- if [ -e /mnt/.psplash/psplash_fifo ]; then
- echo "PROGRESS $progress" > /mnt/.psplash/psplash_fifo
+ if type psplash-write >/dev/null 2>&1; then
+ PSPLASH_FIFO_DIR=/mnt/.psplash psplash-write "PROGRESS $progress" || true
fi
}
@@ -176,7 +173,7 @@ startup() {
#Uncomment to cause psplash to exit manually, otherwise it exits when it sees a VC switch
if [ "x$runlevel" != "xS" ] && [ ! -x /etc/rc${runlevel}.d/S??xserver-nodm ]; then
if type psplash-write >/dev/null 2>&1; then
- TMPDIR=/mnt/.psplash psplash-write "QUIT" || true
+ PSPLASH_FIFO_DIR=/mnt/.psplash psplash-write "QUIT" || true
umount -l /mnt/.psplash
fi
fi
diff --git a/meta/recipes-core/sysvinit/sysvinit_2.96.bb b/meta/recipes-core/sysvinit/sysvinit_2.97.bb
index 21ef0e9cf3..98916f7f19 100644
--- a/meta/recipes-core/sysvinit/sysvinit_2.96.bb
+++ b/meta/recipes-core/sysvinit/sysvinit_2.97.bb
@@ -21,11 +21,9 @@ SRC_URI = "${SAVANNAH_GNU_MIRROR}/sysvinit/sysvinit-${PV}.tar.xz \
file://bootlogd.init \
file://01_bootlogd \
"
-SRC_URI[md5sum] = "48cebffebf2a96ab09bec14bf9976016"
-SRC_URI[sha256sum] = "2a2e26b72aa235a23ab1c8471005f890309ce1196c83fbc9413c57b9ab62b587"
+SRC_URI[sha256sum] = "2d5996857519bfd8634d2e1debabb3238fb38440f65fbfdc46420ee8bdf25110"
S = "${WORKDIR}/sysvinit-${PV}"
-B = "${S}/src"
inherit update-alternatives features_check
DEPENDS_append = " update-rc.d-native base-passwd virtual/crypt"
@@ -70,7 +68,7 @@ FILES_${PN} += "${base_sbindir}/* ${base_bindir}/*"
FILES_sysvinit-pidof = "${base_bindir}/pidof.sysvinit ${base_sbindir}/killall5"
FILES_sysvinit-sulogin = "${base_sbindir}/sulogin.sysvinit"
-RDEPENDS_${PN} += "sysvinit-pidof initd-functions"
+RDEPENDS_${PN} += "sysvinit-pidof initd-functions base-passwd"
CFLAGS_prepend = "-D_GNU_SOURCE "
export LCRYPT = "-lcrypt"
@@ -110,4 +108,5 @@ do_install () {
# Already provided by e2fsprogs; sysvinit's version is a copy from there
rm ${D}${base_sbindir}/logsave
+ rm ${D}${mandir}/man8/logsave.8
}
diff --git a/meta/recipes-core/util-linux/util-linux/0001-hwclock-fix-for-glibc-2.31-settimeofday.patch b/meta/recipes-core/util-linux/util-linux/0001-hwclock-fix-for-glibc-2.31-settimeofday.patch
deleted file mode 100644
index 0672c3546a..0000000000
--- a/meta/recipes-core/util-linux/util-linux/0001-hwclock-fix-for-glibc-2.31-settimeofday.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-From ee85d3967ea09b215fcea5efdd90bbbf5e74a681 Mon Sep 17 00:00:00 2001
-From: Karel Zak <kzak@redhat.com>
-Date: Wed, 19 Feb 2020 15:50:47 +0100
-Subject: [PATCH] hwclock: fix for glibc 2.31 settimeofday()
-
-glibc announce:
- ... settimeofday can no longer be used to set the time and the offset
- simultaneously. If both of its two arguments are non-null, the call
- will fail (setting errno to EINVAL).
-
-It means we need to call settimeofday(NULL, tz) and settimeofday(tv, NULL).
-
-Unfortunately, settimeofday(NULL, tz) has very special warp-clock
-semantic if used as the very first settimeofday() call. It means we
-have to be sure that we do not touch warp-clock if we need only need
-to modify system TZ. So, let's always call settimeofday(NULL, 0)
-before settimeofday(NULL, tz) for UTC rtc mode when modify system TZ.
-
-Upstream-Status: Backport [https://github.com/karelzak/util-linux/commit/ee85d3967ea09b215fcea5efdd90bbbf5e74a681]
-
-CC: J William Piggott <elseifthen@gmx.com>
-Signed-off-by: Karel Zak <kzak@redhat.com>
-Addresses: https://github.com/karelzak/util-linux/issues/957
-Signed-off-by: Liwei Song <liwei.song@windriver.com>
----
- sys-utils/hwclock.c | 49 ++++++++++++++++++++++++++-------------------
- 1 file changed, 28 insertions(+), 21 deletions(-)
-
-diff --git a/sys-utils/hwclock.c b/sys-utils/hwclock.c
-index e736da7179f8..16576bc186ff 100644
---- a/sys-utils/hwclock.c
-+++ b/sys-utils/hwclock.c
-@@ -658,6 +658,9 @@ display_time(struct timeval hwctime)
- * PCIL: persistent_clock_is_local, sets the "11 minute mode" timescale.
- * firsttime: locks the warp_clock function (initialized to 1 at boot).
- *
-+ * Note that very first settimeofday(NULL, tz) modifies warp-clock as well as
-+ * system TZ.
-+ *
- * +---------------------------------------------------------------------------+
- * | op | RTC scale | settimeofday calls |
- * |---------|-----------|-----------------------------------------------------|
-@@ -675,41 +678,45 @@ set_system_clock(const struct hwclock_control *ctl,
- struct tm broken;
- int minuteswest;
- int rc = 0;
-- const struct timezone tz_utc = { 0 };
-
- localtime_r(&newtime.tv_sec, &broken);
- minuteswest = -get_gmtoff(&broken) / 60;
-
- if (ctl->verbose) {
-- if (ctl->hctosys && !ctl->universal)
-- printf(_("Calling settimeofday(NULL, %d) to set "
-- "persistent_clock_is_local.\n"), minuteswest);
-- if (ctl->systz && ctl->universal)
-+ if (ctl->universal)
- puts(_("Calling settimeofday(NULL, 0) "
-- "to lock the warp function."));
-+ "to lock the warp function."));
-+ else
-+ printf(_("Calling settimeofday(NULL, %d) to set "
-+ "persistent_clock_is_local and "
-+ "the kernel timezone.\n"), minuteswest);
-+
-+ if (ctl->universal && minuteswest)
-+ printf(_("Calling settimeofday(NULL, %d) to set "
-+ "the kernel timezone.\n"), minuteswest);
-+
- if (ctl->hctosys)
-- printf(_("Calling settimeofday(%ld.%06ld, %d)\n"),
-- newtime.tv_sec, newtime.tv_usec, minuteswest);
-- else {
-- printf(_("Calling settimeofday(NULL, %d) "), minuteswest);
-- if (ctl->universal)
-- puts(_("to set the kernel timezone."));
-- else
-- puts(_("to warp System time."));
-- }
-+ printf(_("Calling settimeofday(%ld.%06ld, 0) to set "
-+ "the kernel time.\n"), newtime.tv_sec, newtime.tv_usec);
- }
-
- if (!ctl->testing) {
-+ const struct timezone tz_utc = { 0 };
- const struct timezone tz = { minuteswest };
-
-- if (ctl->hctosys && !ctl->universal) /* set PCIL */
-+ /* warp-clock */
-+ if (ctl->universal)
-+ rc = settimeofday(NULL, &tz_utc); /* lock to UTC */
-+ else
-+ rc = settimeofday(NULL, &tz); /* set PCIL and TZ */
-+
-+ /* set timezone */
-+ if (!rc && ctl->universal && minuteswest)
- rc = settimeofday(NULL, &tz);
-- if (ctl->systz && ctl->universal) /* lock warp_clock */
-- rc = settimeofday(NULL, &tz_utc);
-+
-+ /* set time */
- if (!rc && ctl->hctosys)
-- rc = settimeofday(&newtime, &tz);
-- else if (!rc)
-- rc = settimeofday(NULL, &tz);
-+ rc = settimeofday(&newtime, NULL);
-
- if (rc) {
- warn(_("settimeofday() failed"));
---
-2.17.1
-
diff --git a/meta/recipes-core/util-linux/util-linux/0001-lsblk-force-to-print-PKNAME-for-partition.patch b/meta/recipes-core/util-linux/util-linux/0001-lsblk-force-to-print-PKNAME-for-partition.patch
deleted file mode 100644
index 5d4c148fb3..0000000000
--- a/meta/recipes-core/util-linux/util-linux/0001-lsblk-force-to-print-PKNAME-for-partition.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From e3bb9bfb76c17b1d05814436ced62c05c4011f48 Mon Sep 17 00:00:00 2001
-From: Karel Zak <kzak@redhat.com>
-Date: Thu, 27 Jun 2019 09:22:18 +0200
-Subject: [PATCH] lsblk: force to print PKNAME for partition
-
-PKNAME (parent kernel device name) is based on printed tree according
-to parent -> child relationship. The tree is optional and not printed
-if partition specified (.e.g "lsblk -o+PKNAME /dev/sda1"), but old
-versions print the PKNAME also in this case.
-
-Upstream-Status: Backport [https://github.com/karelzak/util-linux/commit/e3bb9bfb76c17b1d05814436ced62c05c4011f48]
-
-Addresses: https://github.com/karelzak/util-linux/issues/813
-Signed-off-by: Karel Zak <kzak@redhat.com>
-Signed-off-by: Liwei Song <liwei.song@windriver.com>
----
- misc-utils/lsblk.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/misc-utils/lsblk.c b/misc-utils/lsblk.c
-index e95af7af0256..3ce6da730264 100644
---- a/misc-utils/lsblk.c
-+++ b/misc-utils/lsblk.c
-@@ -1019,6 +1019,9 @@ static void device_to_scols(
- DBG(DEV, ul_debugobj(dev, "add '%s' to scols", dev->name));
- ON_DBG(DEV, if (ul_path_isopen_dirfd(dev->sysfs)) ul_debugobj(dev, " %s ---> is open!", dev->name));
-
-+ if (!parent && dev->wholedisk)
-+ parent = dev->wholedisk;
-+
- /* Do not print device more than one in --list mode */
- if (!(lsblk->flags & LSBLK_TREE) && dev->is_printed)
- return;
---
-2.17.1
-
diff --git a/meta/recipes-core/util-linux/util-linux_2.34.bb b/meta/recipes-core/util-linux/util-linux_2.34.bb
deleted file mode 100644
index 557449d140..0000000000
--- a/meta/recipes-core/util-linux/util-linux_2.34.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-require util-linux.inc
-
-SRC_URI += "file://configure-sbindir.patch \
- file://runuser.pamd \
- file://runuser-l.pamd \
- file://ptest.patch \
- file://run-ptest \
- file://display_testname_for_subtest.patch \
- file://avoid_parallel_tests.patch \
- file://0001-lsblk-force-to-print-PKNAME-for-partition.patch \
- file://0001-hwclock-fix-for-glibc-2.31-settimeofday.patch \
-"
-SRC_URI[md5sum] = "a78cbeaed9c39094b96a48ba8f891d50"
-SRC_URI[sha256sum] = "743f9d0c7252b6db246b659c1e1ce0bd45d8d4508b4dfa427bbb4a3e9b9f62b5"
diff --git a/meta/recipes-core/util-linux/util-linux.inc b/meta/recipes-core/util-linux/util-linux_2.36.bb
index 179cb3dac5..2ad00ff0a5 100644
--- a/meta/recipes-core/util-linux/util-linux.inc
+++ b/meta/recipes-core/util-linux/util-linux_2.36.bb
@@ -7,8 +7,13 @@ disk partitioning, kernel message management, filesystem creation, and system lo
SECTION = "base"
LICENSE = "GPLv2+ & LGPLv2.1+ & BSD-3-Clause & BSD-4-Clause"
+LICENSE_${PN}-libblkid = "LGPLv2.1+"
+LICENSE_${PN}-libfdisk = "LGPLv2.1+"
+LICENSE_${PN}-libmount = "LGPLv2.1+"
+LICENSE_${PN}-libsmartcols = "LGPLv2.1+"
+LICENSE_${PN}-libuuid = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://README.licensing;md5=972a134f1e14b2b060e365df2fab0099 \
+LIC_FILES_CHKSUM = "file://README.licensing;md5=0fd5c050c6187d2bf0a4492b7f4e33da \
file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://Documentation/licenses/COPYING.GPL-2.0-or-later;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://Documentation/licenses/COPYING.LGPL-2.1-or-later;md5=4fbd65380cdd255951079008b364516c \
@@ -16,7 +21,10 @@ LIC_FILES_CHKSUM = "file://README.licensing;md5=972a134f1e14b2b060e365df2fab0099
file://Documentation/licenses/COPYING.BSD-4-Clause-UC;md5=263860f8968d8bafa5392cab74285262 \
file://libuuid/COPYING;md5=6d2cafc999feb2c2de84d4d24b23290c \
file://libmount/COPYING;md5=7c7e39fb7d70ffe5d693a643e29987c2 \
- file://libblkid/COPYING;md5=693bcbbe16d3a4a4b37bc906bc01cc04"
+ file://libblkid/COPYING;md5=693bcbbe16d3a4a4b37bc906bc01cc04 \
+ file://libfdisk/COPYING;md5=693bcbbe16d3a4a4b37bc906bc01cc04 \
+ file://libsmartcols/COPYING;md5=693bcbbe16d3a4a4b37bc906bc01cc04 \
+"
#gtk-doc is not enabled as it requires xmlto which requires util-linux
inherit autotools gettext manpages pkgconfig systemd update-alternatives python3-dir bash-completion ptest
@@ -24,7 +32,15 @@ DEPENDS = "libcap-ng ncurses virtual/crypt zlib"
MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:2])}"
SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/v${MAJOR_VERSION}/${BP}.tar.xz \
+ file://configure-sbindir.patch \
+ file://runuser.pamd \
+ file://runuser-l.pamd \
+ file://ptest.patch \
+ file://run-ptest \
+ file://display_testname_for_subtest.patch \
+ file://avoid_parallel_tests.patch \
"
+SRC_URI[sha256sum] = "9e4b1c67eb13b9b67feb32ae1dc0d50e08ce9e5d82e1cccd0ee771ad2fa9e0b1"
PACKAGES =+ "${PN}-swaponoff"
PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'pylibmount', '${PN}-pylibmount', '', d)}"
@@ -105,6 +121,7 @@ EXTRA_OECONF = "\
EXTRA_OECONF_append_class-target = " --enable-setpriv"
EXTRA_OECONF_append_class-native = " --without-cap-ng --disable-setpriv"
EXTRA_OECONF_append_class-nativesdk = " --without-cap-ng --disable-setpriv"
+EXTRA_OECONF_append = " --disable-hwclock-gplv3"
# enable pcre2 for native/nativesdk to match host distros
# this helps to keep same expectations when using the SDK or
@@ -246,16 +263,19 @@ ALTERNATIVE_LINK_NAME[logger] = "${bindir}/logger"
ALTERNATIVE_LINK_NAME[losetup] = "${base_sbindir}/losetup"
ALTERNATIVE_LINK_NAME[mesg] = "${bindir}/mesg"
ALTERNATIVE_LINK_NAME[mkswap] = "${base_sbindir}/mkswap"
+ALTERNATIVE_LINK_NAME[mcookie] = "${bindir}/mcookie"
ALTERNATIVE_LINK_NAME[more] = "${base_bindir}/more"
ALTERNATIVE_LINK_NAME[mount] = "${base_bindir}/mount"
ALTERNATIVE_LINK_NAME[mountpoint] = "${base_bindir}/mountpoint"
ALTERNATIVE_LINK_NAME[nologin] = "${base_sbindir}/nologin"
ALTERNATIVE_LINK_NAME[nsenter] = "${bindir}/nsenter"
ALTERNATIVE_LINK_NAME[pivot_root] = "${base_sbindir}/pivot_root"
+ALTERNATIVE_LINK_NAME[prlimit] = "${bindir}/prlimit"
ALTERNATIVE_LINK_NAME[readprofile] = "${sbindir}/readprofile"
ALTERNATIVE_LINK_NAME[renice] = "${bindir}/renice"
ALTERNATIVE_LINK_NAME[rev] = "${bindir}/rev"
ALTERNATIVE_LINK_NAME[rfkill] = "${sbindir}/rfkill"
+ALTERNATIVE_LINK_NAME[rtcwake] = "${sbindir}/rtcwake"
ALTERNATIVE_LINK_NAME[setpriv] = "${bindir}/setpriv"
ALTERNATIVE_LINK_NAME[setsid] = "${bindir}/setsid"
ALTERNATIVE_LINK_NAME[su] = "${base_bindir}/su"
@@ -267,6 +287,7 @@ ALTERNATIVE_LINK_NAME[taskset] = "${bindir}/taskset"
ALTERNATIVE_LINK_NAME[umount] = "${base_bindir}/umount"
ALTERNATIVE_LINK_NAME[unshare] = "${bindir}/unshare"
ALTERNATIVE_LINK_NAME[utmpdump] = "${bindir}/utmpdump"
+ALTERNATIVE_LINK_NAME[uuidgen] = "${bindir}/uuidgen"
ALTERNATIVE_LINK_NAME[wall] = "${bindir}/wall"
ALTERNATIVE_${PN}-doc = "\
diff --git a/meta/recipes-core/volatile-binds/files/volatile-binds.service.in b/meta/recipes-core/volatile-binds/files/volatile-binds.service.in
index b23355a714..e2ad39f258 100644
--- a/meta/recipes-core/volatile-binds/files/volatile-binds.service.in
+++ b/meta/recipes-core/volatile-binds/files/volatile-binds.service.in
@@ -10,7 +10,6 @@ ConditionPathIsReadWrite=!@where@
[Service]
Type=oneshot
RemainAfterExit=Yes
-StandardOutput=syslog
TimeoutSec=0
ExecStart=/sbin/mount-copybind @what@ @where@
ExecStop=/bin/umount @where@
diff --git a/meta/recipes-devtools/apt/apt-native.inc b/meta/recipes-devtools/apt/apt-native.inc
deleted file mode 100644
index d826786329..0000000000
--- a/meta/recipes-devtools/apt/apt-native.inc
+++ /dev/null
@@ -1,74 +0,0 @@
-require apt.inc
-inherit native
-
-DEPENDS += "dpkg-native gettext-native db-native curl-native xz-native"
-PACKAGES = ""
-USE_NLS = "yes"
-
-SRC_URI += "file://db_linking_hack.patch \
- file://0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch \
-"
-
-python do_install () {
- bb.build.exec_func('do_install_base', d)
- bb.build.exec_func('do_install_config', d)
-}
-
-python do_install_config () {
- indir = os.path.dirname(d.getVar('FILE'))
- infile = open(oe.path.join(indir, 'files', 'apt.conf'), 'r')
- data = infile.read()
- infile.close()
-
- data = d.expand(data)
-
- outdir = oe.path.join(d.getVar('D'), d.getVar('sysconfdir'), 'apt')
- if not os.path.exists(outdir):
- os.makedirs(outdir)
-
- outpath = oe.path.join(outdir, 'apt.conf.sample')
- if not os.path.exists(outpath):
- outfile = open(outpath, 'w')
- outfile.write(data)
- outfile.close()
-}
-
-do_install_base () {
- install -d ${D}${bindir}
- install -m 0755 bin/apt-cdrom ${D}${bindir}/
- install -m 0755 bin/apt-get ${D}${bindir}/
- install -m 0755 bin/apt-config ${D}${bindir}/
- install -m 0755 bin/apt-cache ${D}${bindir}/
- install -m 0755 bin/apt-sortpkgs ${D}${bindir}/
- install -m 0755 bin/apt-extracttemplates ${D}${bindir}/
- install -m 0755 bin/apt-ftparchive ${D}${bindir}/
-
- oe_libinstall -so -C bin libapt-private ${D}${libdir}/
-
- oe_libinstall -so -C bin libapt-pkg$GLIBC_VER$LIBSTDCPP_VER ${D}${libdir}/
- oe_libinstall -so -C bin libapt-inst$GLIBC_VER$LIBSTDCPP_VER ${D}${libdir}/
-
- install -d ${D}${libdir}/apt/methods
- install -m 0755 bin/methods/* ${D}${libdir}/apt/methods/
-
- install -d ${D}${libdir}/dpkg/methods/apt
- install -m 0644 ${S}/dselect/desc.apt ${D}${libdir}/dpkg/methods/apt/
- install -m 0644 ${S}/dselect/names ${D}${libdir}/dpkg/methods/apt/
- install -m 0755 ${S}/dselect/install ${D}${libdir}/dpkg/methods/apt/
- install -m 0755 ${S}/dselect/setup ${D}${libdir}/dpkg/methods/apt/
- install -m 0755 ${S}/dselect/update ${D}${libdir}/dpkg/methods/apt/
-
- install -d ${D}${sysconfdir}/apt
- install -d ${D}${sysconfdir}/apt/apt.conf.d
- install -d ${D}${sysconfdir}/apt/preferences.d
- install -d ${D}${localstatedir}/lib/apt/lists/partial
- install -d ${D}${localstatedir}/cache/apt/archives/partial
-
- install -d ${D}${localstatedir}/log/apt/
-
- install -d ${D}${includedir}/apt-pkg
- for h in `find ${S}/apt-pkg ${S}/apt-inst -name '*.h'`
- do
- install -m 0644 $h ${D}${includedir}/apt-pkg
- done
-}
diff --git a/meta/recipes-devtools/apt/apt-native_1.2.31.bb b/meta/recipes-devtools/apt/apt-native_1.2.31.bb
deleted file mode 100644
index 5b16b503d5..0000000000
--- a/meta/recipes-devtools/apt/apt-native_1.2.31.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require apt-native.inc
-
-SRC_URI += "file://noconfigure.patch \
- file://no-curl.patch \
- file://gcc_4.x_apt-pkg-contrib-strutl.cc-Include-array-header.patch \
- file://gcc_4.x_Revert-avoid-changing-the-global-LC_TIME-for-Release.patch \
- file://gcc_4.x_Revert-use-de-localed-std-put_time-instead-rolling-o.patch"
diff --git a/meta/recipes-devtools/apt/apt-package.inc b/meta/recipes-devtools/apt/apt-package.inc
deleted file mode 100644
index 922f739d0d..0000000000
--- a/meta/recipes-devtools/apt/apt-package.inc
+++ /dev/null
@@ -1,94 +0,0 @@
-apt-manpages="doc/apt-cache.8 \
- doc/apt-cdrom.8 \
- doc/apt-config.8 \
- doc/apt-get.8 \
- doc/apt.8 \
- doc/apt.conf.5 \
- doc/apt_preferences.5 \
- doc/sources.list.5"
-apt-utils-manpages="doc/apt-extracttemplates.1 \
- doc/apt-sortpkgs.1"
-
-def get_files_apt_doc(d, bb, manpages):
- import re
- manpages = re.sub(r'\bdoc/(\S+)/(\S+)\.\1\.(.)\b', r'${mandir}/\1/man\3/\2.\3', manpages)
- manpages = re.sub(r'\bdoc/(\S+)\.(.)\b', r'${mandir}/man\2/\1.\2', manpages)
- return manpages
-
-def get_commands_apt_doc(d, bb, manpages):
- s = list()
- __dir_cache__ = list()
- for m in manpages.split():
- dest = get_files_apt_doc(d, bb, m)
- dir = os.path.dirname(dest)
- if not dir in __dir_cache__:
- s.append("install -d ${D}/%s" % dir)
- __dir_cache__.append(dir)
- s.append("install -m 0644 %s ${D}/%s" % (m, dest))
- return "\n".join(s)
-
-PACKAGES += "${PN}-utils ${PN}-utils-doc"
-FILES_${PN} = "${bindir}/apt-cdrom ${bindir}/apt-get \
- ${bindir}/apt-config ${bindir}/apt-cache \
- ${libdir}/apt ${libdir}/libapt*.so.* \
- ${localstatedir} ${sysconfdir} \
- ${libdir}/dpkg \
- ${systemd_unitdir}/system \
- "
-RDEPENDS_${PN} += "perl"
-FILES_${PN}-utils = "${bindir}/apt-sortpkgs ${bindir}/apt-extracttemplates"
-FILES_${PN}-doc = "${@get_files_apt_doc(d, bb, d.getVar('apt-manpages'))} \
- ${docdir}/apt"
-FILES_${PN}-utils-doc = "${@get_files_apt_doc(d, bb, d.getVar('apt-utils-manpages'))}"
-FILES_${PN}-dev = "${libdir}/libapt*.so ${includedir}"
-
-inherit systemd
-
-SYSTEMD_SERVICE_${PN} = "apt-daily.timer"
-
-do_install () {
- set -x
- install -d ${D}${bindir}
- install -m 0755 bin/apt-key ${D}${bindir}/
- install -m 0755 bin/apt-cdrom ${D}${bindir}/
- install -m 0755 bin/apt-get ${D}${bindir}/
- install -m 0755 bin/apt-config ${D}${bindir}/
- install -m 0755 bin/apt-cache ${D}${bindir}/
-
- install -m 0755 bin/apt-sortpkgs ${D}${bindir}/
- install -m 0755 bin/apt-extracttemplates ${D}${bindir}/
-
- oe_libinstall -so -C bin libapt-pkg ${D}${libdir}
- oe_libinstall -so -C bin libapt-inst ${D}${libdir}
-
- install -d ${D}${libdir}/apt/methods
- install -m 0755 bin/methods/* ${D}${libdir}/apt/methods/
-
- install -d ${D}${libdir}/dpkg/methods/apt
- install -m 0644 ${S}/dselect/desc.apt ${D}${libdir}/dpkg/methods/apt/
- install -m 0644 ${S}/dselect/names ${D}${libdir}/dpkg/methods/apt/
- install -m 0755 ${S}/dselect/install ${D}${libdir}/dpkg/methods/apt/
- install -m 0755 ${S}/dselect/setup ${D}${libdir}/dpkg/methods/apt/
- install -m 0755 ${S}/dselect/update ${D}${libdir}/dpkg/methods/apt/
-
- install -d ${D}${sysconfdir}/apt
- install -d ${D}${sysconfdir}/apt/apt.conf.d
- install -d ${D}${sysconfdir}/apt/sources.list.d
- install -d ${D}${sysconfdir}/apt/preferences.d
- install -d ${D}${localstatedir}/lib/apt/lists/partial
- install -d ${D}${localstatedir}/cache/apt/archives/partial
- install -d ${D}${docdir}/apt/examples
- install -m 0644 ${S}/doc/examples/* ${D}${docdir}/apt/examples/
-
- install -d ${D}${includedir}/apt-pkg/
- install -m 0644 include/apt-pkg/*.h ${D}${includedir}/apt-pkg/
-
- install -d ${D}${systemd_unitdir}/system/
- install -m 0755 ${S}/debian/apt.systemd.daily ${D}${libdir}/apt/
- install -m 0644 ${S}/debian/apt-daily.service ${D}${systemd_unitdir}/system/
- sed -i 's#/usr/lib/apt/#${libdir}/apt/#g' ${D}${systemd_unitdir}/system/apt-daily.service
- install -m 0644 ${S}/debian/apt-daily.timer ${D}${systemd_unitdir}/system/
- install -d ${D}${sysconfdir}/cron.daily/
- install -m 0755 ${S}/debian/apt.apt-compat.cron.daily ${D}${sysconfdir}/cron.daily/
- sed -i 's#/usr/lib/apt/#${libdir}/apt/#g' ${D}${sysconfdir}/cron.daily/apt.apt-compat.cron.daily
-}
diff --git a/meta/recipes-devtools/apt/apt.inc b/meta/recipes-devtools/apt/apt.inc
deleted file mode 100644
index 50c4d8484a..0000000000
--- a/meta/recipes-devtools/apt/apt.inc
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "Advanced front-end for dpkg"
-DESCRIPTION = "Provides command-line tools for searching and managing as well \
-as querying information about packages as a low-level access to all features \
-of the libapt-pkg library."
-LICENSE = "GPLv2.0+"
-SECTION = "base"
-
-SRC_URI = "https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/${BPN}/${PV}/${BPN}_${PV}.tar.xz \
- file://use-host.patch \
- file://makerace.patch \
- file://no-nls-dpkg.patch \
- file://fix-gcc-4.6-null-not-defined.patch \
- file://truncate-filename.patch \
- file://nodoc.patch \
- file://disable-configure-in-makefile.patch \
- file://disable-test.patch \
- file://0001-environment.mak-musl-based-systems-can-generate-shar.patch \
- file://0001-apt-1.2.12-Fix-musl-build.patch \
- file://0001-Include-array.h-for-std-array.patch \
- "
-SRC_URI[md5sum] = "d30eed9304e82ea8238c854b5c5a34d9"
-SRC_URI[sha256sum] = "03ded4f5e9b8d43ecec083704b2dcabf20c182ed382db9ac7251da0b0b038059"
-LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-# the package is taken from snapshots.debian.org; that source is static and goes stale
-# so we check the latest upstream from a directory that does get updated
-UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/a/apt/"
-
-inherit autotools gettext useradd
-
-EXTRA_AUTORECONF = "--exclude=autopoint,autoheader"
-
-do_configure_prepend() {
- rm -rf ${S}/buildlib/config.sub
- rm -rf ${S}/buildlib/config.guess
-}
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM_${PN} = "--system --no-create-home --home-dir /nonexistent --shell /bin/false --user-group _apt"
diff --git a/meta/recipes-devtools/apt/apt/0001-CMakeLists.txt-avoid-changing-install-paths-based-on.patch b/meta/recipes-devtools/apt/apt/0001-CMakeLists.txt-avoid-changing-install-paths-based-on.patch
new file mode 100644
index 0000000000..199f11bf20
--- /dev/null
+++ b/meta/recipes-devtools/apt/apt/0001-CMakeLists.txt-avoid-changing-install-paths-based-on.patch
@@ -0,0 +1,29 @@
+From 9023589317843df4e57f8ebef1d9a8398ddb929d Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 28 May 2020 15:34:05 +0000
+Subject: [PATCH] CMakeLists.txt: avoid changing install paths based on host
+ distro
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ CMakeLists.txt | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2cd4f8e..4759812 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -21,9 +21,9 @@ set(CMAKE_EXE_LINKER_FLAGS_COVERAGE "-lgcov")
+ set(CMAKE_SHARED_LINKER_FLAGS_COVERAGE "-lgcov")
+
+ # Work around bug in GNUInstallDirs
+-if (EXISTS "/etc/debian_version")
+- set(CMAKE_INSTALL_LIBEXECDIR "lib")
+-endif()
++#if (EXISTS "/etc/debian_version")
++set(CMAKE_INSTALL_LIBEXECDIR "lib")
++#endif()
+
+ # Include stuff
+ include(Misc)
diff --git a/meta/recipes-devtools/apt/apt/0001-Disable-documentation-directory-altogether.patch b/meta/recipes-devtools/apt/apt/0001-Disable-documentation-directory-altogether.patch
new file mode 100644
index 0000000000..cc422b74dc
--- /dev/null
+++ b/meta/recipes-devtools/apt/apt/0001-Disable-documentation-directory-altogether.patch
@@ -0,0 +1,27 @@
+From cd164b353ba7958d51b2f33f4079fb9787c983e2 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 10 May 2019 14:16:47 +0200
+Subject: [PATCH] Disable documentation directory altogether
+
+Even when WITH_DOC=False, the build requires po4a to generate manpages.
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 83334ba..2cd4f8e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -232,7 +232,7 @@ add_subdirectory(apt-private)
+ add_subdirectory(apt-inst)
+ add_subdirectory(cmdline)
+ add_subdirectory(completions)
+-add_subdirectory(doc)
++#add_subdirectory(doc)
+ add_subdirectory(dselect)
+ add_subdirectory(ftparchive)
+ add_subdirectory(methods)
diff --git a/meta/recipes-devtools/apt/apt/0001-Do-not-configure-packages-on-installation.patch b/meta/recipes-devtools/apt/apt/0001-Do-not-configure-packages-on-installation.patch
new file mode 100644
index 0000000000..2322bd8e78
--- /dev/null
+++ b/meta/recipes-devtools/apt/apt/0001-Do-not-configure-packages-on-installation.patch
@@ -0,0 +1,48 @@
+From 1ad21140787a6b8b0f774f75b50444d2c30a56f6 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 21 May 2020 20:28:12 +0000
+Subject: [PATCH] Do not configure packages on installation
+
+This is done separately in do_rootfs().
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
+---
+ apt-pkg/packagemanager.cc | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/apt-pkg/packagemanager.cc b/apt-pkg/packagemanager.cc
+index 156f7ad..0f6a87c 100644
+--- a/apt-pkg/packagemanager.cc
++++ b/apt-pkg/packagemanager.cc
+@@ -1013,10 +1013,12 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg, bool const Immediate, int c
+ return false;
+
+ if (Immediate == true) {
++#if 0
+ // Perform immediate configuration of the package.
+ if (SmartConfigure(Pkg, Depth + 1) == false)
+ _error->Error(_("Could not perform immediate configuration on '%s'. "
+ "Please see man 5 apt.conf under APT::Immediate-Configure for details. (%d)"),Pkg.FullName().c_str(),2);
++#endif
+ }
+
+ return true;
+@@ -1111,6 +1113,7 @@ pkgPackageManager::OrderResult pkgPackageManager::OrderInstall()
+ }
+ }
+
++#if 0
+ // Final run through the configure phase
+ if (ConfigureAll() == false)
+ return Failed;
+@@ -1125,7 +1128,7 @@ pkgPackageManager::OrderResult pkgPackageManager::OrderInstall()
+ return Failed;
+ }
+ }
+-
++#endif
+ return Completed;
+ }
+ // PM::DoInstallPostFork - compat /*{{{*/
diff --git a/meta/recipes-devtools/apt/apt/0001-Do-not-init-tables-from-dpkg-configuration.patch b/meta/recipes-devtools/apt/apt/0001-Do-not-init-tables-from-dpkg-configuration.patch
new file mode 100644
index 0000000000..d3d3ab026d
--- /dev/null
+++ b/meta/recipes-devtools/apt/apt/0001-Do-not-init-tables-from-dpkg-configuration.patch
@@ -0,0 +1,29 @@
+From b18d7aa7d71b53b86bac21cd1d8c3accabb28f2b Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 10 May 2019 16:47:38 +0200
+Subject: [PATCH] Do not init tables from dpkg configuration
+
+This would require sysroot relocation logic, and it's easier to just disable them.
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
+---
+ apt-pkg/init.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/apt-pkg/init.cc b/apt-pkg/init.cc
+index a619368..6e5a6cf 100644
+--- a/apt-pkg/init.cc
++++ b/apt-pkg/init.cc
+@@ -281,8 +281,8 @@ bool pkgInitSystem(Configuration &Cnf,pkgSystem *&Sys)
+ return _error->Error(_("Unable to determine a suitable packaging system type"));
+ }
+
+- if (pkgInitArchTupleMap() == false)
+- return false;
++// if (pkgInitArchTupleMap() == false)
++// return false;
+
+ return Sys->Initialize(Cnf);
+ }
diff --git a/meta/recipes-devtools/apt/apt/0001-apt-1.2.12-Fix-musl-build.patch b/meta/recipes-devtools/apt/apt/0001-Fix-musl-build.patch
index f7ac19bfd0..a6e8ef1e51 100644
--- a/meta/recipes-devtools/apt/apt/0001-apt-1.2.12-Fix-musl-build.patch
+++ b/meta/recipes-devtools/apt/apt/0001-Fix-musl-build.patch
@@ -1,10 +1,7 @@
-From 33b97e089d4a98d3acd20bd78337dd915b989bc2 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com>
-Date: Fri, 5 Aug 2016 15:24:27 -0500
-Subject: [PATCH] apt 1.2.12: Fix musl build
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
+From 081c6be2f2f1cd77f399ea414f8d89c107826624 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 22 May 2020 15:29:23 +0000
+Subject: [PATCH] Fix musl build
methods/connect.cc: Musl doesn't support AI_IDN flag in netdb.h
header so define it manually.
@@ -12,15 +9,14 @@ apt-pkg/contrib/srvrec.h: Add explicity include of sys/types.h
to avoid errors in types u_int_SIZE.
Upstream-Status: Pending
-
-Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
apt-pkg/contrib/srvrec.h | 1 +
- methods/connect.cc | 3 +++
- 2 files changed, 4 insertions(+)
+ methods/connect.cc | 5 +++++
+ 2 files changed, 6 insertions(+)
diff --git a/apt-pkg/contrib/srvrec.h b/apt-pkg/contrib/srvrec.h
-index 01b8102..15b6875 100644
+index e22b7a1..b1115f5 100644
--- a/apt-pkg/contrib/srvrec.h
+++ b/apt-pkg/contrib/srvrec.h
@@ -9,6 +9,7 @@
@@ -28,23 +24,22 @@ index 01b8102..15b6875 100644
#define SRVREC_H
+#include <sys/types.h>
- #include <arpa/nameser.h>
- #include <vector>
#include <string>
+ #include <vector>
+ #include <arpa/nameser.h>
diff --git a/methods/connect.cc b/methods/connect.cc
-index 07a730b..bb0ab5a 100644
+index 1d6f891..122df35 100644
--- a/methods/connect.cc
+++ b/methods/connect.cc
-@@ -33,6 +33,9 @@
- #include <sys/socket.h>
- #include <arpa/inet.h>
- #include <netdb.h>
+@@ -42,6 +42,11 @@
+ #include "connect.h"
+ #include "rfc2553emu.h"
+ #include <apti18n.h>
++
+#ifndef AI_IDN
+#define AI_IDN 0x0040
+#endif
++
+ /*}}}*/
- #include "connect.h"
- #include "rfc2553emu.h"
---
-2.1.4
-
+ static std::string LastHost;
diff --git a/meta/recipes-devtools/apt/apt/0001-Include-array.h-for-std-array.patch b/meta/recipes-devtools/apt/apt/0001-Include-array.h-for-std-array.patch
deleted file mode 100644
index e4a8faa2b4..0000000000
--- a/meta/recipes-devtools/apt/apt/0001-Include-array.h-for-std-array.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 4d64ec843185bf6fd1b85c3a6a4c4e3c968c8ab1 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 20 Jan 2019 18:56:58 -0800
-Subject: [PATCH] Include <array.h> for std::array
-
-When compiling using clang/libc++ it fails to build because this header
-is not included, with libstdc++ this seems to be pulled in
-automatically.
-
-Fixes below error
-
-apt-pkg/contrib/strutl.cc:949:38: error: implicit instantiation of undefined template 'std::__1::array<const char *const, 7>'
- std::array<char const * const, 7> c_weekdays = {{ "sun", "mon", "tue", "wed", "thu", "fri", "sat" }};
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Backport [https://github.com/Debian/apt/commit/24a59c62efafbdb8387b2d3c5616b04b9fd21306]
----
- apt-pkg/contrib/strutl.cc | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/apt-pkg/contrib/strutl.cc b/apt-pkg/contrib/strutl.cc
-index 60d0ca8..c2bfcbc 100644
---- a/apt-pkg/contrib/strutl.cc
-+++ b/apt-pkg/contrib/strutl.cc
-@@ -21,6 +21,7 @@
- #include <apt-pkg/fileutl.h>
- #include <apt-pkg/error.h>
-
-+#include <array>
- #include <algorithm>
- #include <iomanip>
- #include <locale>
---
-2.20.1
-
diff --git a/meta/recipes-devtools/apt/apt/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch b/meta/recipes-devtools/apt/apt/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch
index 734ba00d4f..8c4cc04503 100644
--- a/meta/recipes-devtools/apt/apt/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch
+++ b/meta/recipes-devtools/apt/apt/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch
@@ -1,11 +1,9 @@
-From dfc1370d50322e2e9d225a7a63b44993fc01a727 Mon Sep 17 00:00:00 2001
-From: Roy Li <rongqing.li@windriver.com>
-Date: Fri, 22 May 2015 08:05:15 +0800
+From 742fbb243f99e940c3e6b31296f7f416f550a57a Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 21 May 2020 20:13:25 +0000
Subject: [PATCH] Revert "always run 'dpkg --configure -a' at the end of our
dpkg callings"
-Upstream-Status: Inappropriate [embedded specific]
-
This reverts commit a2a75ff4516f7609f4c55b42270abb8d08943c60, which
always run 'dpkg --configure -a' at the end of our dpkg callings,
but it does not work for cross-compile, since the rootfs dir can not
@@ -14,19 +12,19 @@ be passed into dpkg, and lead to the below similar error:
|mkdir: cannot create directory '/usr/lib/opkg': Permission denied
-------
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
+Upstream-Status: Inappropriate [embedded specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
---
- apt-pkg/deb/dpkgpm.cc | 9 ++-------
- test/integration/test-apt-progress-fd-deb822 | 14 +++++++-------
- test/integration/test-no-fds-leaked-to-maintainer-scripts | 6 ++----
- 3 files changed, 11 insertions(+), 18 deletions(-)
+ apt-pkg/deb/dpkgpm.cc | 9 ++-------
+ 1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc
-index 533d9b367..6ce81bbd9 100644
+index ffa880d..5875e86 100644
--- a/apt-pkg/deb/dpkgpm.cc
+++ b/apt-pkg/deb/dpkgpm.cc
-@@ -1041,12 +1041,6 @@ void pkgDPkgPM::BuildPackagesProgressMap()
- PackagesTotal++;
+@@ -1215,12 +1215,6 @@ void pkgDPkgPM::BuildPackagesProgressMap()
+ }
}
}
- /* one extra: We don't want the progress bar to reach 100%, especially not
@@ -37,90 +35,14 @@ index 533d9b367..6ce81bbd9 100644
- ++PackagesTotal;
}
/*}}}*/
- bool pkgDPkgPM::Go(int StatusFd)
-@@ -1268,8 +1262,9 @@ bool pkgDPkgPM::Go(APT::Progress::PackageManager *progress)
-
- // support subpressing of triggers processing for special
- // cases like d-i that runs the triggers handling manually
-+ bool const SmartConf = (_config->Find("PackageManager::Configure", "all") != "all");
+ bool pkgDPkgPM::Go(int StatusFd) /*{{{*/
+@@ -1716,7 +1710,8 @@ bool pkgDPkgPM::Go(APT::Progress::PackageManager *progress)
+
+ // support subpressing of triggers processing for special
+ // cases like d-i that runs the triggers handling manually
+- if (_config->FindB("DPkg::ConfigurePending", true))
++ bool const SmartConf = (_config->Find("PackageManager::Configure", "all") != "all");
++ if (0)
+ List.emplace_back(Item::ConfigurePending, pkgCache::PkgIterator());
+ }
bool const TriggersPending = _config->FindB("DPkg::TriggersPending", false);
-- if (_config->FindB("DPkg::ConfigurePending", true) == true)
-+ if (_config->FindB("DPkg::ConfigurePending", SmartConf) == true)
- List.push_back(Item(Item::ConfigurePending, PkgIterator()));
-
- // for the progress
-diff --git a/test/integration/test-apt-progress-fd-deb822 b/test/integration/test-apt-progress-fd-deb822
-index a8d59608d..0c6a9bbbf 100755
---- a/test/integration/test-apt-progress-fd-deb822
-+++ b/test/integration/test-apt-progress-fd-deb822
-@@ -27,36 +27,36 @@ Message: Installing testing (amd64)
-
- Status: progress
- Package: testing:amd64
--Percent: 16.6667
-+Percent: 20
- Message: Preparing testing (amd64)
-
- Status: progress
- Package: testing:amd64
--Percent: 33.3333
-+Percent: 40
- Message: Unpacking testing (amd64)
-
- Status: progress
- Package: testing:amd64
--Percent: 50.0000
-+Percent: 60.0000
- Message: Preparing to configure testing (amd64)
-
- Status: progress
--Percent: 50.0000
-+Percent: 60.0000
- Message: Running dpkg
-
- Status: progress
- Package: testing:amd64
--Percent: 50.0000
-+Percent: 60.0000
- Message: Configuring testing (amd64)
-
- Status: progress
- Package: testing:amd64
--Percent: 66.6667
-+Percent: 80
- Message: Configuring testing (amd64)
-
- Status: progress
- Package: testing:amd64
--Percent: 83.3333
-+Percent: 100
- Message: Installed testing (amd64)
-
- Status: progress
-diff --git a/test/integration/test-no-fds-leaked-to-maintainer-scripts b/test/integration/test-no-fds-leaked-to-maintainer-scripts
-index d86e638cd..ef6d23be2 100755
---- a/test/integration/test-no-fds-leaked-to-maintainer-scripts
-+++ b/test/integration/test-no-fds-leaked-to-maintainer-scripts
-@@ -59,8 +59,7 @@ startup packages configure
- configure $PKGNAME 1.0 <none>
- status unpacked $PKGNAME 1.0
- status half-configured $PKGNAME 1.0
--status installed $PKGNAME 1.0
--startup packages configure" cut -f 3- -d' ' rootdir/var/log/dpkg.log
-+status installed $PKGNAME 1.0" cut -f 3- -d' ' rootdir/var/log/dpkg.log
- }
- checkinstall
-
-@@ -85,8 +84,7 @@ status config-files $PKGNAME 1.0
- status config-files $PKGNAME 1.0
- status config-files $PKGNAME 1.0
- status config-files $PKGNAME 1.0
--status not-installed $PKGNAME <none>
--startup packages configure" cut -f 3- -d' ' rootdir/var/log/dpkg.log
-+status not-installed $PKGNAME <none>" cut -f 3- -d' ' rootdir/var/log/dpkg.log
- }
- checkpurge
-
---
-2.11.0
-
diff --git a/meta/recipes-devtools/apt/apt/0001-environment.mak-musl-based-systems-can-generate-shar.patch b/meta/recipes-devtools/apt/apt/0001-environment.mak-musl-based-systems-can-generate-shar.patch
deleted file mode 100644
index 042372b515..0000000000
--- a/meta/recipes-devtools/apt/apt/0001-environment.mak-musl-based-systems-can-generate-shar.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 2f8aa21ace375c18977ed908b291c80a210a93c6 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 31 Dec 2015 08:06:12 +0000
-Subject: [PATCH] environment.mak: musl based systems can generate shared
- objects too
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- buildlib/environment.mak.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/buildlib/environment.mak.in b/buildlib/environment.mak.in
-index b0a8d9d..3a52344 100644
---- a/buildlib/environment.mak.in
-+++ b/buildlib/environment.mak.in
-@@ -68,7 +68,7 @@ NEED_SOCKLEN_T_DEFINE = @NEED_SOCKLEN_T_DEFINE@
-
- # Shared library things
- HOST_OS = @host_os@
--ifneq ($(words $(filter gnu% linux-gnu% kfreebsd-gnu% %-gnu,$(HOST_OS))),0)
-+ifneq ($(words $(filter gnu% linux-gnu% kfreebsd-gnu% %-gnu linux-musl%,$(HOST_OS))),0)
- SONAME_MAGIC=-Wl,-soname -Wl,
- LFLAGS_SO=
- else
---
-2.6.4
-
diff --git a/meta/recipes-devtools/apt/apt/disable-configure-in-makefile.patch b/meta/recipes-devtools/apt/apt/disable-configure-in-makefile.patch
deleted file mode 100644
index 7c2f64e3e6..0000000000
--- a/meta/recipes-devtools/apt/apt/disable-configure-in-makefile.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Disable configure at compilation stage
-
-Upstream-Status: Inappropriate [configuration]
-Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
-
-Index: apt-0.9.7.7/Makefile
-===================================================================
---- apt-0.9.7.7.orig/Makefile
-+++ apt-0.9.7.7/Makefile
-@@ -33,7 +33,7 @@ veryclean: clean
- # The startup target builds the necessary configure scripts. It should
- # be used after a CVS checkout.
- CONVERTED=environment.mak include/config.h include/apti18n.h build/doc/Doxyfile makefile
--include buildlib/configure.mak
-+#include buildlib/configure.mak
- $(BUILDDIR)/include/config.h: buildlib/config.h.in
- $(BUILDDIR)/include/apti18n.h: buildlib/apti18n.h.in
- $(BUILDDIR)/environment.mak: buildlib/environment.mak.in
diff --git a/meta/recipes-devtools/apt/apt/disable-test.patch b/meta/recipes-devtools/apt/apt/disable-test.patch
deleted file mode 100644
index d16b5c771b..0000000000
--- a/meta/recipes-devtools/apt/apt/disable-test.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 67bc7948e0a721c75d636931abc105da5dcb0763 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com>
-Date: Thu, 26 May 2016 15:32:11 -0500
-Subject: [PATCH] [PATCH] disable test
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Inappropriate [configuration]
-
-test needs gtest package, so not build the test dir
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
-Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
----
- Makefile | 9 +++------
- configure.ac | 7 -------
- 2 files changed, 3 insertions(+), 13 deletions(-)
-
-Index: apt-1.2.24/Makefile
-===================================================================
---- apt-1.2.24.orig/Makefile
-+++ apt-1.2.24/Makefile
-@@ -9,8 +9,8 @@ endif
- .PHONY: default
- default: startup all
-
--.PHONY: fast headers library clean veryclean all binary program doc test update-po
--all headers library clean veryclean binary program doc manpages docbook test update-po startup dirs:
-+.PHONY: fast headers library clean veryclean all binary program doc update-po
-+all headers library clean veryclean binary program doc manpages docbook update-po startup dirs:
- $(MAKE) -C vendor $@
- $(MAKE) -C apt-pkg $@
- $(MAKE) -C apt-inst $@
-@@ -21,8 +21,6 @@ all headers library clean veryclean bina
- $(MAKE) -C dselect $@
- # $(MAKE) -C doc $@
- $(MAKE) -C po $@
-- # FIXME: -C test has issue swith parallel builds, investigate!
-- -$(MAKE) -C test $@
-
- fast:
- $(MAKE) -C vendor all
-@@ -32,9 +30,8 @@ fast:
- $(MAKE) -C methods all
- $(MAKE) -C cmdline all
- $(MAKE) -C ftparchive all
-- $(MAKE) -C test all
-
--all headers library clean veryclean binary program doc manpages docbook test update-po: startup dirs
-+all headers library clean veryclean binary program doc manpages docbook update-po: startup dirs
-
- dirs: startup
-
-Index: apt-1.2.24/configure.ac
-===================================================================
---- apt-1.2.24.orig/configure.ac
-+++ apt-1.2.24/configure.ac
-@@ -90,13 +90,6 @@ AC_CHECK_LIB(curl, curl_easy_init,
- AC_MSG_ERROR([failed: I need CURL due https support]),
- )
-
--AC_LANG_PUSH([C++])
--AC_CHECK_HEADER(gtest/gtest.h,,
-- AC_MSG_WARN([failed: I need gtest (packaged as libgtest-dev) for unit testing]),
--)
--AC_LANG_POP([C++])
--
--
- AC_SUBST(BDBLIB)
-
- HAVE_ZLIB=no
diff --git a/meta/recipes-devtools/apt/apt/fix-gcc-4.6-null-not-defined.patch b/meta/recipes-devtools/apt/apt/fix-gcc-4.6-null-not-defined.patch
deleted file mode 100644
index 899c6ef2fc..0000000000
--- a/meta/recipes-devtools/apt/apt/fix-gcc-4.6-null-not-defined.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Upstream-Status: Pending
-
-Index: apt-1.2.24/apt-pkg/contrib/weakptr.h
-===================================================================
---- apt-1.2.24.orig/apt-pkg/contrib/weakptr.h
-+++ apt-1.2.24/apt-pkg/contrib/weakptr.h
-@@ -21,6 +21,7 @@
- #ifndef WEAK_POINTER_H
- #define WEAK_POINTER_H
-
-+#include <cstdlib>
- #include <set>
- #include <stddef.h>
-
diff --git a/meta/recipes-devtools/apt/apt/gcc_4.x_Revert-avoid-changing-the-global-LC_TIME-for-Release.patch b/meta/recipes-devtools/apt/apt/gcc_4.x_Revert-avoid-changing-the-global-LC_TIME-for-Release.patch
deleted file mode 100644
index 438de209a2..0000000000
--- a/meta/recipes-devtools/apt/apt/gcc_4.x_Revert-avoid-changing-the-global-LC_TIME-for-Release.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From 7ef2b2dba0e0bee450da3c8450ea782a3e7d6429 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com>
-Date: Tue, 22 Aug 2017 11:49:01 -0500
-Subject: [PATCH 3/3] Revert "avoid changing the global LC_TIME for Release
- writing"
-
-This reverts commit 78e7b683c645e907db12658405a4b201a6243ea8.
-
-After we drop debian8 and centos7 that has gcc < 5 (std::put_time not available)
-versions this patch can be remove.
-
-Signed-off-by: Anibal Limon <limon.anibal@gmail.com>
-
-Upstream-Status: Inappropriate [embedded specific]
----
- ftparchive/writer.cc | 29 +++++++++++++++++------------
- 1 file changed, 17 insertions(+), 12 deletions(-)
-
-diff --git a/ftparchive/writer.cc b/ftparchive/writer.cc
-index 2596382..e43a643 100644
---- a/ftparchive/writer.cc
-+++ b/ftparchive/writer.cc
-@@ -37,7 +37,6 @@
- #include <unistd.h>
- #include <ctime>
- #include <iostream>
--#include <iomanip>
- #include <sstream>
- #include <memory>
- #include <utility>
-@@ -984,29 +983,35 @@ ReleaseWriter::ReleaseWriter(FileFd * const GivenOutput, string const &/*DB*/) :
- AddPatterns(_config->FindVector("APT::FTPArchive::Release::Patterns"));
-
- time_t const now = time(NULL);
-- auto const posix = std::locale("C.UTF-8");
-
-- // FIXME: use TimeRFC1123 here? But that uses GMT to satisfy HTTP/1.1
-- std::ostringstream datestr;
-- datestr.imbue(posix);
-- datestr << std::put_time(gmtime(&now), "%a, %d %b %Y %H:%M:%S UTC");
-+ setlocale(LC_TIME, "C");
-+
-+ char datestr[128];
-+ if (strftime(datestr, sizeof(datestr), "%a, %d %b %Y %H:%M:%S UTC",
-+ gmtime(&now)) == 0)
-+ {
-+ datestr[0] = '\0';
-+ }
-
- time_t const validuntil = now + _config->FindI("APT::FTPArchive::Release::ValidTime", 0);
-- std::ostringstream validstr;
-- if (validuntil != now)
-+ char validstr[128];
-+ if (now == validuntil ||
-+ strftime(validstr, sizeof(validstr), "%a, %d %b %Y %H:%M:%S UTC",
-+ gmtime(&validuntil)) == 0)
- {
-- datestr.imbue(posix);
-- validstr << std::put_time(gmtime(&validuntil), "%a, %d %b %Y %H:%M:%S UTC");
-+ validstr[0] = '\0';
- }
-
-+ setlocale(LC_TIME, "");
-+
- map<string,string> Fields;
- Fields["Origin"] = "";
- Fields["Label"] = "";
- Fields["Suite"] = "";
- Fields["Version"] = "";
- Fields["Codename"] = "";
-- Fields["Date"] = datestr.str();
-- Fields["Valid-Until"] = validstr.str();
-+ Fields["Date"] = datestr;
-+ Fields["Valid-Until"] = validstr;
- Fields["Architectures"] = "";
- Fields["Components"] = "";
- Fields["Description"] = "";
---
-2.1.4
-
diff --git a/meta/recipes-devtools/apt/apt/gcc_4.x_Revert-use-de-localed-std-put_time-instead-rolling-o.patch b/meta/recipes-devtools/apt/apt/gcc_4.x_Revert-use-de-localed-std-put_time-instead-rolling-o.patch
deleted file mode 100644
index 088a66a3c8..0000000000
--- a/meta/recipes-devtools/apt/apt/gcc_4.x_Revert-use-de-localed-std-put_time-instead-rolling-o.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From c72ef9b6ae83a0a2fbbefd5c050335f65f0d2bc9 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com>
-Date: Tue, 22 Aug 2017 11:48:46 -0500
-Subject: [PATCH 2/3] Revert "use de-localed std::put_time instead rolling our
- own"
-
-This reverts commit 4ed2a17ab4334f019c00512aa54a162f0bf083c4.
-
-After we drop debian8 and centos7 that has gcc < 5 (std::put_time not available)
-versions this patch can be remove.
-
-Signed-off-by: Anibal Limon <limon.anibal@gmail.com>
-
-Upstream-Status: Inappropriate [embedded specific]
----
- apt-pkg/contrib/strutl.cc | 14 +++++++++-----
- 1 file changed, 9 insertions(+), 5 deletions(-)
-
-diff --git a/apt-pkg/contrib/strutl.cc b/apt-pkg/contrib/strutl.cc
-index c2ff01d..e9ef2be 100644
---- a/apt-pkg/contrib/strutl.cc
-+++ b/apt-pkg/contrib/strutl.cc
-@@ -760,11 +760,15 @@ string TimeRFC1123(time_t Date)
- if (gmtime_r(&Date, &Conv) == NULL)
- return "";
-
-- auto const posix = std::locale::classic();
-- std::ostringstream datestr;
-- datestr.imbue(posix);
-- datestr << std::put_time(&Conv, "%a, %d %b %Y %H:%M:%S GMT");
-- return datestr.str();
-+ char Buf[300];
-+ const char *Day[] = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
-+ const char *Month[] = {"Jan","Feb","Mar","Apr","May","Jun","Jul",
-+ "Aug","Sep","Oct","Nov","Dec"};
-+
-+ snprintf(Buf, sizeof(Buf), "%s, %02i %s %i %02i:%02i:%02i GMT",Day[Conv.tm_wday],
-+ Conv.tm_mday,Month[Conv.tm_mon],Conv.tm_year+1900,Conv.tm_hour,
-+ Conv.tm_min,Conv.tm_sec);
-+ return Buf;
- }
- /*}}}*/
- // ReadMessages - Read messages from the FD /*{{{*/
---
-2.1.4
-
diff --git a/meta/recipes-devtools/apt/apt/gcc_4.x_apt-pkg-contrib-strutl.cc-Include-array-header.patch b/meta/recipes-devtools/apt/apt/gcc_4.x_apt-pkg-contrib-strutl.cc-Include-array-header.patch
deleted file mode 100644
index cb32591876..0000000000
--- a/meta/recipes-devtools/apt/apt/gcc_4.x_apt-pkg-contrib-strutl.cc-Include-array-header.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From ff8562f7724c4db4b83635af9e627f3495222327 Mon Sep 17 00:00:00 2001
-From: Anibal Limon <limon.anibal@gmail.com>
-Date: Tue, 22 Aug 2017 04:41:31 -0500
-Subject: [PATCH 1/3] apt-pkg/contrib/strutl.cc: Include array header
-
-If GCC version is less than 5 the array header needs to be included
-to support std::array.
-
-After we drop debian8 and centos7 that has gcc < 5 versions this patch
-can be remove.
-
-Signed-off-by: Anibal Limon <limon.anibal@gmail.com>
-
-Upstream-Status: Inappropriate [embedded specific]
----
- apt-pkg/contrib/strutl.cc | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/apt-pkg/contrib/strutl.cc b/apt-pkg/contrib/strutl.cc
-index 60d0ca8..c2ff01d 100644
---- a/apt-pkg/contrib/strutl.cc
-+++ b/apt-pkg/contrib/strutl.cc
-@@ -27,6 +27,7 @@
- #include <sstream>
- #include <string>
- #include <vector>
-+#include <array>
-
- #include <stddef.h>
- #include <stdlib.h>
---
-2.1.4
-
diff --git a/meta/recipes-devtools/apt/apt/makerace.patch b/meta/recipes-devtools/apt/apt/makerace.patch
deleted file mode 100644
index 0c686d6e27..0000000000
--- a/meta/recipes-devtools/apt/apt/makerace.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-I was seeing various issues with parallel make, mainly due to to what was likely
-partially installed headers. If you change into the source directory and
-"NOISY=1 make ../obj/apt-pkg/sourcelist.opic" in apt-pkg, you'll see it
-doesn't have any dependencies on the headers being installed. This patch
-fixes that so things build correctly.
-
-RP 2012/3/19
-
-Upstream-Status: Pending
-
-Index: apt-1.2.24/buildlib/library.mak
-===================================================================
---- apt-1.2.24.orig/buildlib/library.mak
-+++ apt-1.2.24/buildlib/library.mak
-@@ -65,7 +65,7 @@ $(LIB)/lib$(LIBRARY).so.$(MAJOR).$(MINOR
-
- # Compilation rules
- vpath %.cc $(SUBDIRS)
--$(OBJ)/%.opic: %.cc $(LIBRARYDEPENDS)
-+$(OBJ)/%.opic: %.cc $(LIBRARYDEPENDS) $($(LOCAL)-HEADERS)
- echo Compiling $< to $@
- $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXSTD) $(CXXFLAGS) $(PICFLAGS) -o $@ '$(abspath $<)'
- $(DoDep)
diff --git a/meta/recipes-devtools/apt/apt/no-nls-dpkg.patch b/meta/recipes-devtools/apt/apt/no-nls-dpkg.patch
deleted file mode 100644
index 98b6c96caa..0000000000
--- a/meta/recipes-devtools/apt/apt/no-nls-dpkg.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Upstream-Status: Pending
-
-Index: apt-1.2.24/apt-pkg/deb/dpkgpm.cc
-===================================================================
---- apt-1.2.24.orig/apt-pkg/deb/dpkgpm.cc
-+++ apt-1.2.24/apt-pkg/deb/dpkgpm.cc
-@@ -54,6 +54,12 @@
- #include <apti18n.h>
- /*}}}*/
-
-+#ifdef USE_NLS
-+#define _dpkg(x) dgettext("dpkg", x)
-+#else
-+#define _dpkg(x) x
-+#endif
-+
- using namespace std;
-
- APT_PURE static string
-@@ -1703,7 +1709,7 @@ void pkgDPkgPM::WriteApportReport(const
- }
-
- // check if its not a follow up error
-- const char *needle = dgettext("dpkg", "dependency problems - leaving unconfigured");
-+ const char *needle = _dpkg("dependency problems - leaving unconfigured");
- if(strstr(errormsg, needle) != NULL) {
- std::clog << _("No apport report written because the error message indicates its a followup error from a previous failure.") << std::endl;
- return;
diff --git a/meta/recipes-devtools/apt/apt/noconfigure.patch b/meta/recipes-devtools/apt/apt/noconfigure.patch
deleted file mode 100644
index ebc67203b4..0000000000
--- a/meta/recipes-devtools/apt/apt/noconfigure.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
-
-
-diff --git a/apt-pkg/packagemanager.cc b/apt-pkg/packagemanager.cc
-index 249542c..0a1911f 100644
---- a/apt-pkg/packagemanager.cc
-+++ b/apt-pkg/packagemanager.cc
-@@ -952,10 +952,12 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg, bool const Immediate, int c
- return false;
-
- if (Immediate == true) {
-+#if 0
- // Perform immedate configuration of the package.
- if (SmartConfigure(Pkg, Depth + 1) == false)
- _error->Error(_("Could not perform immediate configuration on '%s'. "
- "Please see man 5 apt.conf under APT::Immediate-Configure for details. (%d)"),Pkg.FullName().c_str(),2);
-+#endif
- }
-
- return true;
-@@ -1038,6 +1040,7 @@ pkgPackageManager::OrderResult pkgPackageManager::OrderInstall()
- }
- }
-
-+#if 0
- // Final run through the configure phase
- if (ConfigureAll() == false)
- return Failed;
-@@ -1052,6 +1055,7 @@ pkgPackageManager::OrderResult pkgPackageManager::OrderInstall()
- return Failed;
- }
- }
-+#endif
-
- return Completed;
- }
diff --git a/meta/recipes-devtools/apt/apt/nodoc.patch b/meta/recipes-devtools/apt/apt/nodoc.patch
deleted file mode 100644
index 78cf53884a..0000000000
--- a/meta/recipes-devtools/apt/apt/nodoc.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Disable documentation
-
-Upstream-Status: Inappropriate [configuration]
-Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
-
-Index: apt-1.2.24/Makefile
-===================================================================
---- apt-1.2.24.orig/Makefile
-+++ apt-1.2.24/Makefile
-@@ -19,7 +19,7 @@ all headers library clean veryclean bina
- $(MAKE) -C cmdline $@
- $(MAKE) -C ftparchive $@
- $(MAKE) -C dselect $@
-- $(MAKE) -C doc $@
-+# $(MAKE) -C doc $@
- $(MAKE) -C po $@
- # FIXME: -C test has issue swith parallel builds, investigate!
- -$(MAKE) -C test $@
diff --git a/meta/recipes-devtools/apt/apt/triehash b/meta/recipes-devtools/apt/apt/triehash
new file mode 100755
index 0000000000..b08bc6ec30
--- /dev/null
+++ b/meta/recipes-devtools/apt/apt/triehash
@@ -0,0 +1,728 @@
+#!/usr/bin/perl -w
+#
+# Copyright (C) 2016 Julian Andres Klode <jak@jak-linux.org>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+=encoding utf8
+
+=head1 NAME
+
+triehash - Generate a perfect hash function derived from a trie.
+
+=cut
+
+use strict;
+use warnings;
+use utf8;
+use Getopt::Long;
+
+=head1 SYNOPSIS
+
+B<triehash> [S<I<option>>] [S<I<input file>>]
+
+=head1 DESCRIPTION
+
+triehash takes a list of words in input file and generates a function and
+an enumeration to describe the word
+
+=head1 INPUT FILE FORMAT
+
+The file consists of multiple lines of the form:
+
+ [label ~ ] word [= value]
+
+This maps word to value, and generates an enumeration with entries of the form:
+
+ label = value
+
+If I<label> is undefined, the word will be used, the minus character will be
+replaced by an underscore. If value is undefined it is counted upwards from
+the last value.
+
+There may also be one line of the format
+
+ [ label ~] = value
+
+Which defines the value to be used for non-existing keys. Note that this also
+changes default value for other keys, as for normal entries. So if you place
+
+ = 0
+
+at the beginning of the file, unknown strings map to 0, and the other strings
+map to values starting with 1. If label is not specified, the default is
+I<Unknown>.
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-C>I<.c file> B<--code>=I<.c file>
+
+Generate code in the given file.
+
+=item B<-H>I<header file> B<--header>=I<header file>
+
+Generate a header in the given file, containing a declaration of the hash
+function and an enumeration.
+
+=item B<--enum-name=>I<word>
+
+The name of the enumeration.
+
+=item B<--function-name=>I<word>
+
+The name of the function.
+
+=item B<--label-prefix=>I<word>
+
+The prefix to use for labels.
+
+=item B<--label-uppercase>
+
+Uppercase label names when normalizing them.
+
+=item B<--namespace=>I<name>
+
+Put the function and enum into a namespace (C++)
+
+=item B<--class=>I<name>
+
+Put the function and enum into a class (C++)
+
+=item B<--enum-class>
+
+Generate an enum class instead of an enum (C++)
+
+=item B<--counter-name=>I<name>
+
+Use I<name> for a counter that is set to the latest entry in the enumeration
++ 1. This can be useful for defining array sizes.
+
+=item B<--ignore-case>
+
+Ignore case for words.
+
+=item B<--multi-byte>=I<value>
+
+Generate code reading multiple bytes at once. The value is a string of power
+of twos to enable. The default value is 320 meaning that 8, 4, and single byte
+reads are enabled. Specify 0 to disable multi-byte completely, or add 2 if you
+also want to allow 2-byte reads. 2-byte reads are disabled by default because
+they negatively affect performance on older Intel architectures.
+
+This generates code for both multiple bytes and single byte reads, but only
+enables the multiple byte reads of GNU C compatible compilers, as the following
+extensions are used:
+
+=over 8
+
+=item Byte-aligned integers
+
+We must be able to generate integers that are aligned to a single byte using:
+
+ typedef uint64_t __attribute__((aligned (1))) triehash_uu64;
+
+=item Byte-order
+
+The macros __BYTE_ORDER__ and __ORDER_LITTLE_ENDIAN__ must be defined.
+
+=back
+
+We forcefully disable multi-byte reads on platforms where the variable
+I<__ARM_ARCH> is defined and I<__ARM_FEATURE_UNALIGNED> is not defined,
+as there is a measurable overhead from emulating the unaligned reads on
+ARM.
+
+=item B<--language=>I<language>
+
+Generate a file in the specified language. Currently known are 'C' and 'tree',
+the latter generating a tree.
+
+=item B<--include=>I<header>
+
+Add the header to the include statements of the header file. The value must
+be surrounded by quotes or angle brackets for C code. May be specified multiple
+times.
+
+=back
+
+=cut
+
+my $unknown = -1;
+my $unknown_label = undef;
+my $counter_start = 0;
+my $enum_name = 'PerfectKey';
+my $function_name = 'PerfectHash';
+my $enum_class = 0;
+
+my $code_name = '-';
+my $header_name = '-';
+my $code;
+my $header;
+my $label_prefix = undef;
+my $label_uppercase = 0;
+my $ignore_case = 0;
+my $multi_byte = '320';
+my $language = 'C';
+my $counter_name = undef;
+my @includes = ();
+
+
+Getopt::Long::config('default',
+ 'bundling',
+ 'no_getopt_compat',
+ 'no_auto_abbrev',
+ 'permute',
+ 'auto_help');
+
+GetOptions ('code|C=s' => \$code_name,
+ 'header|H=s' => \$header_name,
+ 'function-name=s' => \$function_name,
+ 'label-prefix=s' => \$label_prefix,
+ 'label-uppercase' => \$label_uppercase,
+ 'ignore-case' => \$ignore_case,
+ 'enum-name=s' => \$enum_name,
+ 'language|l=s' => \$language,
+ 'multi-byte=s' => \$multi_byte,
+ 'enum-class' => \$enum_class,
+ 'include=s' => \@includes,
+ 'counter-name=s' => \$counter_name)
+ or die('Could not parse options!');
+
+
+# This implements a simple trie. Each node has three attributes:
+#
+# children - A hash of keys to other nodes
+# value - The value to be stored here
+# label - A named representation of the value.
+#
+# The key at each level of the trie can consist of one or more bytes, and the
+# trie can be normalized to a form where all keys at a level have the same
+# length using rebuild_tree().
+package Trie {
+
+ sub new {
+ my $class = shift;
+ my $self = {};
+ bless $self, $class;
+
+ $self->{children} = {};
+ $self->{value} = undef;
+ $self->{label} = undef;
+
+ return $self;
+ }
+
+ # Return the largest power of 2 smaller or equal to the argument
+ sub alignpower2 {
+ my ($self, $length) = @_;
+
+ return 8 if ($length >= 8 && $multi_byte =~ /3/);
+ return 4 if ($length >= 4 && $multi_byte =~ /2/);
+ return 2 if ($length >= 2 && $multi_byte =~ /1/);
+
+ return 1;
+ }
+
+ # Split the key into a head block and a tail
+ sub split_key {
+ my ($self, $key) = @_;
+ my $length = length $key;
+ my $split = $self->alignpower2($length);
+
+ return (substr($key, 0, $split), substr($key, $split));
+ }
+
+ # Given a key, a label, and a value, insert that into the tree, possibly
+ # replacing an existing node.
+ sub insert {
+ my ($self, $key, $label, $value) = @_;
+
+ if (length($key) == 0) {
+ $self->{label} = $label;
+ $self->{value} = $value;
+ return;
+ }
+
+ my ($child, $tail) = $self->split_key($key);
+
+ $self->{children}{$child} = Trie->new if (!defined($self->{children}{$child}));
+
+ $self->{children}{$child}->insert($tail, $label, $value);
+ }
+
+ # Construct a new trie that only contains words of a given length. This
+ # is used to split up the common trie after knowing all words, so we can
+ # switch on the expected word length first, and have the per-trie function
+ # implement simple longest prefix matching.
+ sub filter_depth {
+ my ($self, $togo) = @_;
+
+ my $new = Trie->new;
+
+ if ($togo != 0) {
+ my $found = 0;
+ foreach my $key (sort keys %{$self->{children}}) {
+ if ($togo > length($key) || defined $self->{children}{$key}->{value}) {
+ my $child = $self->{children}{$key}->filter_depth($togo - length($key));
+
+ $new->{children}{$key}= $child if defined $child;
+ $found = 1 if defined $child;
+ }
+ }
+ return if (!$found);
+ } else {
+ $new->{value} = $self->{value};
+ $new->{label} = $self->{label};
+ }
+
+ return $new;
+ }
+
+ # (helper for rebuild_tree)
+ # Reinsert all value nodes into the specified $trie, prepending $prefix
+ # to their $paths.
+ sub reinsert_value_nodes_into {
+ my ($self, $trie, $prefix) = @_;
+
+ $trie->insert($prefix, $self->{label}, $self->{value}) if (defined $self->{value});
+
+ foreach my $key (sort keys %{$self->{children}}) {
+ $self->{children}{$key}->reinsert_value_nodes_into($trie, $prefix . $key);
+ }
+ }
+
+ # (helper for rebuild_tree)
+ # Find the earliest point to split a key. Normally, we split at the maximum
+ # power of 2 that is greater or equal than the length of the key. When we
+ # are building an ASCII-optimised case-insensitive trie that simply ORs
+ # each byte with 0x20, we need to split at the first ambiguous character:
+ #
+ # For example, the words a-bc and a\rbc are identical in such a situation:
+ # '-' | 0x20 == '-' == '\r' | 0x20
+ # We cannot simply switch on all 4 bytes at once, but need to split before
+ # the ambiguous character so we can process the ambiguous character on its
+ # own.
+ sub find_earlier_split {
+ my ($self, $key) = @_;
+
+ if ($ignore_case) {
+ for my $i (0..length($key)-1) {
+ # If the key starts with an ambiguous character, we need to
+ # take only it. Otherwise, we need to take everything
+ # before the character.
+ return $self->alignpower2($i || 1) if (main::ambiguous(substr($key, $i, 1)));
+ }
+ }
+ return $self->alignpower2(length $key);
+ }
+
+ # This rebuilds the trie, splitting each key before ambiguous characters
+ # as explained in find_earlier_split(), and then chooses the smallest
+ # such split at each level, so that all keys at all levels have the same
+ # length (so we can use a multi-byte switch).
+ sub rebuild_tree {
+ my $self = shift;
+ # Determine if/where we need to split before an ambiguous character
+ my $new_split = 99999999999999999;
+ foreach my $key (sort keys %{$self->{children}}) {
+ my $special_length = $self->find_earlier_split($key);
+ $new_split = $special_length if ($special_length < $new_split);
+ }
+
+ # Start building a new uniform trie
+ my $newself = Trie->new;
+ $newself->{label} = $self->{label};
+ $newself->{value} = $self->{value};
+ $newself->{children} = {};
+
+ foreach my $key (sort keys %{$self->{children}}) {
+ my $head = substr($key, 0, $new_split);
+ my $tail = substr($key, $new_split);
+ # Rebuild the child node at $head, pushing $tail downwards
+ $newself->{children}{$head} //= Trie->new;
+ $self->{children}{$key}->reinsert_value_nodes_into($newself->{children}{$head}, $tail);
+ # We took up to one special character of each key label. There might
+ # be more, so we need to rebuild recursively.
+ $newself->{children}{$head} = $newself->{children}{$head}->rebuild_tree();
+ }
+
+ return $newself;
+ }
+}
+
+# Code generator for C and C++
+package CCodeGen {
+ my $static = ($code_name eq $header_name) ? "static " : "";
+ my $enum_specifier = $enum_class ? "enum class" : "enum";
+
+ sub new {
+ my $class = shift;
+ my $self = {};
+ bless $self, $class;
+
+ return $self;
+ }
+
+ sub open_output {
+ my $self = shift;
+ if ($code_name ne '-') {
+ open($code, '>', $code_name) or die "Cannot open $code_name: $!" ;
+ } else {
+ $code = *STDOUT;
+ }
+ if($code_name eq $header_name) {
+ $header = $code;
+ } elsif ($header_name ne '-') {
+ open($header, '>', $header_name) or die "Cannot open $header_name: $!" ;
+ } else {
+ $header = *STDOUT;
+ }
+ }
+
+ sub mangle_label {
+ my ($self, $label) = @_;
+
+ $label = $label_prefix . $label if defined($label_prefix);
+ $label = uc $label if $label_uppercase;
+
+ return $label;
+ }
+
+ sub word_to_label {
+ my ($self, $word) = @_;
+
+ $word =~ s/_/__/g;
+ $word =~ s/-/_/g;
+
+ return $self->mangle_label($word);
+ }
+
+ # Return a case label, by shifting and or-ing bytes in the word
+ sub case_label {
+ my ($self, $key) = @_;
+
+ return sprintf("'%s'", substr($key, 0, 1)) if not $multi_byte;
+
+ my $output = '0';
+
+ for my $i (0..length($key)-1) {
+ $output .= sprintf("| onechar('%s', %d, %d)", substr($key, $i, 1), 8 * $i, 8*length($key));
+ }
+
+ return $output;
+ }
+
+ # Return an appropriate read instruction for $length bytes from $offset
+ sub switch_key {
+ my ($self, $offset, $length) = @_;
+
+ return "string[$offset]" if $length == 1;
+ return sprintf("*((triehash_uu%s*) &string[$offset])", $length * 8);
+ }
+
+ # Render the trie so that it matches the longest prefix.
+ sub print_table {
+ my ($self, $trie, $fh, $indent, $index) = @_;
+ $indent //= 0;
+ $index //= 0;
+
+ # If we have children, try to match them.
+ if (%{$trie->{children}}) {
+ # The difference between lowercase and uppercase alphabetical characters
+ # is that they have one bit flipped. If we have alphabetical characters
+ # in the search space, and the entire search space works fine if we
+ # always turn on the flip, just OR the character we are switching over
+ # with the bit.
+ my $want_use_bit = 0;
+ my $can_use_bit = 1;
+ my $key_length = 0;
+ foreach my $key (sort keys %{$trie->{children}}) {
+ $can_use_bit &= not main::ambiguous($key);
+ $want_use_bit |= ($key =~ /^[a-zA-Z]+$/);
+ $key_length = length($key);
+ }
+
+ if ($ignore_case && $can_use_bit && $want_use_bit) {
+ printf { $fh } ((' ' x $indent) . "switch(%s | 0x%s) {\n", $self->switch_key($index, $key_length), '20' x $key_length);
+ } else {
+ printf { $fh } ((' ' x $indent) . "switch(%s) {\n", $self->switch_key($index, $key_length));
+ }
+
+ my $notfirst = 0;
+ foreach my $key (sort keys %{$trie->{children}}) {
+ if ($notfirst) {
+ printf { $fh } (' ' x $indent . " break;\n");
+ }
+ if ($ignore_case) {
+ printf { $fh } (' ' x $indent . "case %s:\n", $self->case_label(lc($key)));
+ printf { $fh } (' ' x $indent . "case %s:\n", $self->case_label(uc($key))) if lc($key) ne uc($key) && !($can_use_bit && $want_use_bit);
+ } else {
+ printf { $fh } (' ' x $indent . "case %s:\n", $self->case_label($key));
+ }
+
+ $self->print_table($trie->{children}{$key}, $fh, $indent + 1, $index + length($key));
+
+ $notfirst=1;
+ }
+
+ printf { $fh } (' ' x $indent . "}\n");
+ }
+
+
+ # This node has a value, so it is a possible end point. If no children
+ # matched, we have found our longest prefix.
+ if (defined $trie->{value}) {
+ printf { $fh } (' ' x $indent . "return %s;\n", ($enum_class ? "${enum_name}::" : '').$trie->{label});
+ }
+
+ }
+
+ sub print_words {
+ my ($self, $trie, $fh, $indent, $sofar) = @_;
+
+ $indent //= 0;
+ $sofar //= '';
+
+
+ printf { $fh } (' ' x $indent."%s = %s,\n", $trie->{label}, $trie->{value}) if defined $trie->{value};
+
+ foreach my $key (sort keys %{$trie->{children}}) {
+ $self->print_words($trie->{children}{$key}, $fh, $indent, $sofar . $key);
+ }
+ }
+
+ sub print_functions {
+ my ($self, $trie, %lengths) = @_;
+ foreach my $local_length (sort { $a <=> $b } (keys %lengths)) {
+ print { $code } ("static enum ${enum_name} ${function_name}${local_length}(const char *string)\n");
+ print { $code } ("{\n");
+ $self->print_table($trie->filter_depth($local_length)->rebuild_tree(), $code, 1);
+ printf { $code } (" return %s$unknown_label;\n", ($enum_class ? "${enum_name}::" : ''));
+ print { $code } ("}\n");
+ }
+ }
+
+ sub main {
+ my ($self, $trie, $num_values, %lengths) = @_;
+ print { $header } ("#ifndef TRIE_HASH_${function_name}\n");
+ print { $header } ("#define TRIE_HASH_${function_name}\n");
+ print { $header } ("#include <stddef.h>\n");
+ print { $header } ("#include <stdint.h>\n");
+ foreach my $include (@includes) {
+ print { $header } ("#include $include\n");
+ }
+ printf { $header } ("enum { $counter_name = $num_values };\n") if (defined($counter_name));
+ print { $header } ("${enum_specifier} ${enum_name} {\n");
+ $self->print_words($trie, $header, 1);
+ printf { $header } (" $unknown_label = $unknown,\n");
+ print { $header } ("};\n");
+ print { $header } ("${static}enum ${enum_name} ${function_name}(const char *string, size_t length);\n");
+
+ print { $code } ("#include \"$header_name\"\n") if ($header_name ne $code_name);
+
+ if ($multi_byte) {
+ print { $code } ("#ifdef __GNUC__\n");
+ foreach my $i ((16, 32, 64)) {
+ print { $code } ("typedef uint${i}_t __attribute__((aligned (1))) triehash_uu${i};\n");
+ print { $code } ("typedef char static_assert${i}[__alignof__(triehash_uu${i}) == 1 ? 1 : -1];\n");
+ }
+
+ print { $code } ("#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__\n");
+ print { $code } ("#define onechar(c, s, l) (((uint64_t)(c)) << (s))\n");
+ print { $code } ("#else\n");
+ print { $code } ("#define onechar(c, s, l) (((uint64_t)(c)) << (l-8-s))\n");
+ print { $code } ("#endif\n");
+ print { $code } ("#if (!defined(__ARM_ARCH) || defined(__ARM_FEATURE_UNALIGNED)) && !defined(TRIE_HASH_NO_MULTI_BYTE)\n");
+ print { $code } ("#define TRIE_HASH_MULTI_BYTE\n");
+ print { $code } ("#endif\n");
+ print { $code } ("#endif /*GNUC */\n");
+
+ print { $code } ("#ifdef TRIE_HASH_MULTI_BYTE\n");
+ $self->print_functions($trie, %lengths);
+ $multi_byte = 0;
+ print { $code } ("#else\n");
+ $self->print_functions($trie, %lengths);
+ print { $code } ("#endif /* TRIE_HASH_MULTI_BYTE */\n");
+ } else {
+ $self->print_functions($trie, %lengths);
+ }
+
+ print { $code } ("${static}enum ${enum_name} ${function_name}(const char *string, size_t length)\n");
+ print { $code } ("{\n");
+ print { $code } (" switch (length) {\n");
+ foreach my $local_length (sort { $a <=> $b } (keys %lengths)) {
+ print { $code } (" case $local_length:\n");
+ print { $code } (" return ${function_name}${local_length}(string);\n");
+ }
+ print { $code } (" default:\n");
+ printf { $code } (" return %s$unknown_label;\n", ($enum_class ? "${enum_name}::" : ''));
+ print { $code } (" }\n");
+ print { $code } ("}\n");
+
+ # Print end of header here, in case header and code point to the same file
+ print { $header } ("#endif /* TRIE_HASH_${function_name} */\n");
+ }
+}
+
+# A character is ambiguous if the 1<<5 (0x20) bit does not correspond to the
+# lower case bit. A word is ambiguous if any character is. This definition is
+# used to check if we can perform the |0x20 optimization when building a case-
+# insensitive trie.
+sub ambiguous {
+ my $word = shift;
+
+ foreach my $char (split //, $word) {
+ # If 0x20 does not solely indicate lowercase, it is ambiguous
+ return 1 if ord(lc($char)) != (ord($char) | 0x20);
+ return 1 if ord(uc($char)) != (ord($char) & ~0x20);
+ }
+
+ return 0;
+}
+
+sub build_trie {
+ my $codegen = shift;
+ my $trie = Trie->new;
+
+ my $counter = $counter_start;
+ my $prev_value;
+ my %lengths;
+
+ open(my $input, '<', $ARGV[0]) or die "Cannot open $ARGV[0]: $!";
+ while (my $line = <$input>) {
+ my ($label, $word, $value) = $line =~ m{
+ (?:\s*([^~\s]+)\s*~)? # Label ~
+ (?:\s*([^~=\s]+))? # Word
+ (?:\s*=\s*([^\s]+)\s+)? # = Value
+ \s*
+ }x;
+
+ if (defined $word) {
+ $label //= $codegen->word_to_label($word);
+ $value //= defined $prev_value ? $prev_value + 1 : 0;
+
+ $trie->insert($word, $label, $value);
+ $lengths{length($word)} = 1;
+ } elsif (defined $value) {
+ $unknown = $value;
+ $unknown_label = $codegen->mangle_label($label) if defined $label;
+ } else {
+ die "Invalid line: $line";
+ }
+
+ $prev_value = $value;
+ $counter = $value + 1 if $value >= $counter;
+ }
+
+ $unknown_label //= $codegen->mangle_label('Unknown');
+
+ return ($trie, $counter, %lengths);
+}
+
+# Generates an ASCII art tree
+package TreeCodeGen {
+
+ sub new {
+ my $class = shift;
+ my $self = {};
+ bless $self, $class;
+
+ return $self;
+ }
+
+ sub mangle_label {
+ my ($self, $label) = @_;
+ return $label;
+ }
+
+ sub word_to_label {
+ my ($self, $word) = @_;
+ return $word;
+ }
+
+ sub main {
+ my ($self, $trie, $counter, %lengths) = @_;
+ printf { $code } ("┌────────────────────────────────────────────────────┐\n");
+ printf { $code } ("│ Initial trie │\n");
+ printf { $code } ("└────────────────────────────────────────────────────┘\n");
+ $self->print($trie);
+ printf { $code } ("┌────────────────────────────────────────────────────┐\n");
+ printf { $code } ("│ Rebuilt trie │\n");
+ printf { $code } ("└────────────────────────────────────────────────────┘\n");
+ $self->print($trie->rebuild_tree());
+
+ foreach my $local_length (sort { $a <=> $b } (keys %lengths)) {
+ printf { $code } ("┌────────────────────────────────────────────────────┐\n");
+ printf { $code } ("│ Trie for words of length %-4d │\n", $local_length);
+ printf { $code } ("└────────────────────────────────────────────────────┘\n");
+ $self->print($trie->filter_depth($local_length)->rebuild_tree());
+ }
+ }
+
+ sub open_output {
+ my $self = shift;
+ if ($code_name ne '-') {
+ open($code, '>:encoding(utf8)', $code_name) or die "Cannot open $ARGV[0]: $!" ;
+ } else {
+ $code = *STDOUT;
+ binmode($code, ':encoding(utf8)');
+ }
+ }
+
+ # Print a trie
+ sub print {
+ my ($self, $trie, $depth) = @_;
+ $depth //= 0;
+
+ print { $code } (' → ') if defined($trie->{label});
+ print { $code } ($trie->{label} // '', "\n");
+ foreach my $key (sort keys %{$trie->{children}}) {
+ print { $code } ('│ ' x ($depth), "├── $key");
+ $self->print($trie->{children}{$key}, $depth + 1);
+ }
+ }
+}
+
+my %codegens = (
+ C => 'CCodeGen',
+ tree => 'TreeCodeGen',
+);
+
+
+defined($codegens{$language}) or die "Unknown language $language. Valid choices: ", join(', ', keys %codegens);
+my $codegen = $codegens{$language}->new();
+my ($trie, $counter, %lengths) = build_trie($codegen);
+
+$codegen->open_output();
+$codegen->main($trie, $counter, %lengths);
+
+
+=head1 LICENSE
+
+triehash is available under the MIT/Expat license, see the source code
+for more information.
+
+=head1 AUTHOR
+
+Julian Andres Klode <jak@jak-linux.org>
+
+=cut
+
diff --git a/meta/recipes-devtools/apt/apt/truncate-filename.patch b/meta/recipes-devtools/apt/apt/truncate-filename.patch
deleted file mode 100644
index db1c42b66c..0000000000
--- a/meta/recipes-devtools/apt/apt/truncate-filename.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-strutl.cc: the filename can't be longer than 255
-
-The URItoFileName translates the path into the filename, but the
-filename can't be longer than 255 according to
-/usr/include/linux/limits.h.
-
-Truncate it when it is longer than 240 (leave some spaces for
-".Packages" and "._Release" suffix)
-
-Upstream-Status: Pending
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
----
- apt-pkg/contrib/strutl.cc | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/apt-pkg/contrib/strutl.cc b/apt-pkg/contrib/strutl.cc
---- a/apt-pkg/contrib/strutl.cc
-+++ b/apt-pkg/contrib/strutl.cc
-@@ -399,7 +399,12 @@ string URItoFileName(const string &URI)
- // "\x00-\x20{}|\\\\^\\[\\]<>\"\x7F-\xFF";
- string NewURI = QuoteString(U,"\\|{}[]<>\"^~_=!@#$%^&*");
- replace(NewURI.begin(),NewURI.end(),'/','_');
-- return NewURI;
-+
-+ // Truncate from the head when it is longer than 240
-+ if(NewURI.length() > 240)
-+ return NewURI.substr(NewURI.length() - 240, NewURI.length() - 1);
-+ else
-+ return NewURI;
- }
- /*}}}*/
- // Base64Encode - Base64 Encoding routine for short strings /*{{{*/
---
-1.7.10.4
-
diff --git a/meta/recipes-devtools/apt/apt/use-host.patch b/meta/recipes-devtools/apt/apt/use-host.patch
deleted file mode 100644
index b30fcff0d6..0000000000
--- a/meta/recipes-devtools/apt/apt/use-host.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Upstream-Status: Pending
-
-Index: apt-0.9.7.7/configure.ac
-===================================================================
---- apt-0.9.7.7.orig/configure.ac
-+++ apt-0.9.7.7/configure.ac
-@@ -112,7 +112,7 @@ dnl This is often the dpkg architecture
- dnl First check against the full canonical canoncial-system-type in $target
- dnl and if that fails, just look for the cpu
- AC_MSG_CHECKING(debian architecture)
--archset="`dpkg-architecture -qDEB_HOST_ARCH`"
-+archset="`echo $host_alias|cut -d'-' -f1`"
- if test "x$archset" = "x"; then
- AC_MSG_ERROR([failed: use --host= or output from dpkg-architecture])
- fi
diff --git a/meta/recipes-devtools/apt/apt_1.2.31.bb b/meta/recipes-devtools/apt/apt_1.2.31.bb
deleted file mode 100644
index ae0bce933d..0000000000
--- a/meta/recipes-devtools/apt/apt_1.2.31.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-DEPENDS = "curl db zlib"
-RDEPENDS_${PN} = "dpkg bash debianutils"
-require apt.inc
-
-require apt-package.inc
-
-PACKAGECONFIG ??= "lzma"
-PACKAGECONFIG[lzma] = "ac_cv_lib_lzma_lzma_easy_encoder=yes,ac_cv_lib_lzma_lzma_easy_encoder=no,xz"
-PACKAGECONFIG[bz2] = "ac_cv_lib_bz2_BZ2_bzopen=yes,ac_cv_lib_bz2_BZ2_bzopen=no,bzip2"
-PACKAGECONFIG[lz4] = "ac_cv_lib_lz4_LZ4F_createCompressionContext=yes,ac_cv_lib_lz4_LZ4F_createCompressionContext=no,lz4"
-
-FILES_${PN} += "${bindir}/apt-key"
-apt-manpages += "doc/apt-key.8"
-
-do_install_append() {
- #Write the correct apt-architecture to apt.conf
- APT_CONF=${D}/etc/apt/apt.conf
- echo 'APT::Architecture "${DPKG_ARCH}";' > ${APT_CONF}
- oe_libinstall -so -C bin libapt-private ${D}${libdir}/
-}
diff --git a/meta/recipes-devtools/apt/apt_1.8.2.1.bb b/meta/recipes-devtools/apt/apt_1.8.2.1.bb
new file mode 100644
index 0000000000..bd1f4f39c3
--- /dev/null
+++ b/meta/recipes-devtools/apt/apt_1.8.2.1.bb
@@ -0,0 +1,106 @@
+SUMMARY = "Advanced front-end for dpkg"
+LICENSE = "GPLv2.0+"
+SECTION = "base"
+
+# Triehash script taken from https://github.com/julian-klode/triehash
+SRC_URI = "${DEBIAN_MIRROR}/main/a/apt/${BPN}_${PV}.tar.xz \
+ file://triehash \
+ file://0001-Disable-documentation-directory-altogether.patch \
+ file://0001-Fix-musl-build.patch \
+ file://0001-CMakeLists.txt-avoid-changing-install-paths-based-on.patch \
+ "
+
+SRC_URI_append_class-native = " \
+ file://0001-Do-not-init-tables-from-dpkg-configuration.patch \
+ file://0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch \
+ file://0001-Do-not-configure-packages-on-installation.patch \
+ "
+
+SRC_URI[sha256sum] = "6d447f2e9437ec24e78350b63bb0592bee1f050811d51990b0c783183b0983f8"
+LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+# the package is taken from snapshots.debian.org; that source is static and goes stale
+# so we check the latest upstream from a directory that does get updated
+UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/a/apt/"
+
+inherit cmake perlnative bash-completion upstream-version-is-even
+
+BBCLASSEXTEND = "native"
+
+DEPENDS += "virtual/libiconv virtual/libintl db gnutls lz4 zlib bzip2 xz"
+
+EXTRA_OECMAKE_append = " -DCURRENT_VENDOR=debian -DWITH_DOC=False -DUSE_NLS=False -DDPKG_DATADIR=${datadir}/dpkg -DTRIEHASH_EXECUTABLE=${WORKDIR}/triehash"
+
+do_configure_prepend () {
+ echo "set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH )" >> ${WORKDIR}/toolchain.cmake
+
+}
+
+# Unfortunately apt hardcodes this all over the place
+FILES_${PN} += "${prefix}/lib/dpkg ${prefix}/lib/apt"
+RDEPENDS_${PN} += "bash perl dpkg"
+
+do_install_append_class-native() {
+ cat > ${D}${sysconfdir}/apt/apt.conf.sample << EOF
+Dir "${STAGING_DIR_NATIVE}/"
+{
+ State "var/lib/apt/"
+ {
+ Lists "#APTCONF#/lists/";
+ status "#ROOTFS#/var/lib/dpkg/status";
+ };
+ Cache "var/cache/apt/"
+ {
+ Archives "archives/";
+ pkgcache "";
+ srcpkgcache "";
+ };
+ Bin "${STAGING_BINDIR_NATIVE}/"
+ {
+ methods "${STAGING_LIBDIR}/apt/methods/";
+ gzip "/bin/gzip";
+ dpkg "dpkg";
+ dpkg-source "dpkg-source";
+ dpkg-buildpackage "dpkg-buildpackage";
+ apt-get "apt-get";
+ apt-cache "apt-cache";
+ };
+ Etc "#APTCONF#"
+ {
+ Preferences "preferences";
+ };
+ Log "var/log/apt";
+};
+
+APT
+{
+ Install-Recommends "true";
+ Immediate-Configure "false";
+ Architecture "i586";
+ Get
+ {
+ Assume-Yes "true";
+ };
+};
+
+Acquire
+{
+ AllowInsecureRepositories "true";
+};
+
+DPkg::Options {"--root=#ROOTFS#";"--admindir=#ROOTFS#/var/lib/dpkg";"--force-all";"--no-debsig"};
+DPkg::Path "";
+EOF
+}
+
+do_install_append_class-target() {
+ #Write the correct apt-architecture to apt.conf
+ APT_CONF=${D}/etc/apt/apt.conf
+ echo 'APT::Architecture "${DPKG_ARCH}";' > ${APT_CONF}
+}
+
+# Avoid non-reproducible -src package
+do_install_append () {
+ sed -i -e "s,${B},,g" \
+ ${B}/apt-pkg/tagfile-keys.cc
+}
diff --git a/meta/recipes-devtools/apt/files/apt.conf b/meta/recipes-devtools/apt/files/apt.conf
deleted file mode 100644
index 03351356bc..0000000000
--- a/meta/recipes-devtools/apt/files/apt.conf
+++ /dev/null
@@ -1,42 +0,0 @@
-Dir "${STAGING_DIR_NATIVE}/"
-{
- State "var/lib/apt/"
- {
- Lists "#APTCONF#/lists/";
- status "#ROOTFS#/var/lib/dpkg/status";
- };
- Cache "var/cache/apt/"
- {
- Archives "archives/";
- pkgcache "";
- srcpkgcache "";
- };
- Bin "${STAGING_BINDIR_NATIVE}/"
- {
- methods "${STAGING_LIBDIR}/apt/methods/";
- gzip "/bin/gzip";
- dpkg "dpkg";
- dpkg-source "dpkg-source";
- dpkg-buildpackage "dpkg-buildpackage";
- apt-get "apt-get";
- apt-cache "apt-cache";
- };
- Etc "#APTCONF#"
- {
- Preferences "preferences";
- };
-};
-
-APT
-{
- Install-Recommends "true";
- Immediate-Configure "false";
- Architecture "i586";
- Get
- {
- Assume-Yes "true";
- Force-Yes "true"
- };
-};
-
-DPkg::Options {"--root=#ROOTFS#";"--admindir=#ROOTFS#/var/lib/dpkg";"--force-all";"--no-debsig"};
diff --git a/meta/recipes-devtools/apt/files/db_linking_hack.patch b/meta/recipes-devtools/apt/files/db_linking_hack.patch
deleted file mode 100644
index a61d4b07c2..0000000000
--- a/meta/recipes-devtools/apt/files/db_linking_hack.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-Upstream-Status: Backport
-
-Index: apt-0.7.3/configure.ac
-===================================================================
---- apt-0.7.3.orig/configure.ac 2007-07-01 10:38:45.000000000 +0000
-+++ apt-0.7.3/configure.ac 2007-08-21 13:39:26.000000000 +0000
-@@ -67,8 +67,20 @@
- [AC_DEFINE(HAVE_BDB)
- BDBLIB="-ldb"
- AC_MSG_RESULT(yes)],
-- [BDBLIB=""
-- AC_MSG_RESULT(no)]
-+
-+ LIBS="$LIBS -lpthread"
-+ [AC_MSG_CHECKING(if we can link against BerkeleyDB with pthread)
-+ AC_LINK_IFELSE(
-+ [AC_LANG_PROGRAM(
-+ [#include <db.h>],
-+ [int r, s, t; db_version(&r, &s, &t);]
-+ )],
-+ [AC_DEFINE(HAVE_BDB)
-+ BDBLIB="-ldb -lpthread"
-+ AC_MSG_RESULT(yes)],
-+ [BDBLIB=""
-+ AC_MSG_RESULT(no)]
-+ )]
- )]
- )
-
diff --git a/meta/recipes-devtools/apt/files/environment.patch b/meta/recipes-devtools/apt/files/environment.patch
deleted file mode 100644
index 9a0303803e..0000000000
--- a/meta/recipes-devtools/apt/files/environment.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Upstream-Status: Backport
-
-Index: apt-0.6.46.2/buildlib/environment.mak.in
-===================================================================
---- apt-0.6.46.2.orig/buildlib/environment.mak.in 2007-03-29 11:38:58.000000000 +0100
-+++ apt-0.6.46.2/buildlib/environment.mak.in 2007-03-29 11:39:12.000000000 +0100
-@@ -62,7 +62,7 @@
-
- # Shared library things
- HOST_OS = @host_os@
--ifneq ($(words $(filter linux-gnu gnu% %gnu,$(HOST_OS))),0)
-+ifneq ($(words $(filter linux-gnu linux-gnueabi gnu% %gnu,$(HOST_OS))),0)
- SONAME_MAGIC=-Wl,-soname -Wl,
- LFLAGS_SO=
- else
diff --git a/meta/recipes-devtools/apt/files/no-curl.patch b/meta/recipes-devtools/apt/files/no-curl.patch
deleted file mode 100644
index 0838552b26..0000000000
--- a/meta/recipes-devtools/apt/files/no-curl.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-From 5d61ac822fd9a3871cd5089389c210606232ecdc Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com>
-Date: Thu, 26 May 2016 15:34:45 -0500
-Subject: [PATCH] Upstream-Status: Inappropriate [configuration]
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
----
- configure.ac | 7 -------
- methods/makefile | 7 -------
- 2 files changed, 14 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index e47f459..cd24264 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -83,13 +83,6 @@ AC_CHECK_HEADER(db.h,
-
- LIBS="$saveLIBS"
-
--AC_CHECK_LIB(curl, curl_easy_init,
-- [AC_CHECK_HEADER(curl/curl.h,
-- curl_ok=yes,
-- curl_ok=no)],
-- AC_MSG_ERROR([failed: I need CURL due https support]),
--)
--
- AC_SUBST(BDBLIB)
-
- HAVE_ZLIB=no
-diff --git a/methods/makefile b/methods/makefile
-index 3274e92..255086b 100644
---- a/methods/makefile
-+++ b/methods/makefile
-@@ -51,13 +51,6 @@ LIB_MAKES = apt-pkg/makefile
- SOURCE = http.cc http_main.cc rfc2553emu.cc connect.cc server.cc
- include $(PROGRAM_H)
-
--# The https method
--PROGRAM=https
--SLIBS = -lapt-pkg -lcurl $(INTLLIBS) -lresolv
--LIB_MAKES = apt-pkg/makefile
--SOURCE = https.cc server.cc
--include $(PROGRAM_H)
--
- # The ftp method
- PROGRAM=ftp
- SLIBS = -lapt-pkg $(SOCKETLIBS) $(INTLLIBS) -lresolv
---
-2.1.4
-
diff --git a/meta/recipes-devtools/autoconf/autoconf.inc b/meta/recipes-devtools/autoconf/autoconf.inc
index 2c87bf8296..787f30a097 100644
--- a/meta/recipes-devtools/autoconf/autoconf.inc
+++ b/meta/recipes-devtools/autoconf/autoconf.inc
@@ -5,9 +5,8 @@ file that lists the operating system features that the package can use, in the f
LICENSE = "GPLv3"
HOMEPAGE = "http://www.gnu.org/software/autoconf/"
SECTION = "devel"
-DEPENDS += "m4-native"
-DEPENDS_class-native = "m4-native gnu-config-native"
-DEPENDS_class-nativesdk = "nativesdk-m4 nativesdk-gnu-config"
+DEPENDS = "m4-native gnu-config-native"
+
RDEPENDS_${PN} = "m4 gnu-config \
perl \
perl-module-bytes \
@@ -62,11 +61,6 @@ RDEPENDS_${PN}_class-nativesdk = "\
nativesdk-perl-module-threads \
"
-
-
-SRC_URI = "${GNU_MIRROR}/autoconf/autoconf-${PV}.tar.gz \
- file://program_prefix.patch"
-
inherit autotools texinfo
PERL = "${USRBINPATH}/perl"
diff --git a/meta/recipes-devtools/autoconf/autoconf_2.69.bb b/meta/recipes-devtools/autoconf/autoconf_2.69.bb
index 8e67f4b829..2e1b9bdc90 100644
--- a/meta/recipes-devtools/autoconf/autoconf_2.69.bb
+++ b/meta/recipes-devtools/autoconf/autoconf_2.69.bb
@@ -5,17 +5,20 @@ PR = "r11"
LICENSE = "GPLv2 & GPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
file://COPYINGv3;md5=d32239bcb673463ab874e80d47fae504"
-SRC_URI += "file://check-automake-cross-warning.patch \
- file://autoreconf-exclude.patch \
- file://autoreconf-gnuconfigize.patch \
- file://config_site.patch \
- file://remove-usr-local-lib-from-m4.patch \
- file://preferbash.patch \
- file://autotest-automake-result-format.patch \
- file://add_musl_config.patch \
- file://performance.patch \
- file://AC_HEADER_MAJOR-port-to-glibc-2.25.patch \
- file://autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch \
+
+SRC_URI = "${GNU_MIRROR}/autoconf/autoconf-${PV}.tar.gz \
+ file://program_prefix.patch \
+ file://check-automake-cross-warning.patch \
+ file://autoreconf-exclude.patch \
+ file://autoreconf-gnuconfigize.patch \
+ file://config_site.patch \
+ file://remove-usr-local-lib-from-m4.patch \
+ file://preferbash.patch \
+ file://autotest-automake-result-format.patch \
+ file://add_musl_config.patch \
+ file://performance.patch \
+ file://AC_HEADER_MAJOR-port-to-glibc-2.25.patch \
+ file://autoconf-replace-w-option-in-shebangs-with-modern-use-warnings.patch \
"
SRC_URI[md5sum] = "82d05e03b93e45f5a39b828dc9c6c29b"
diff --git a/meta/recipes-devtools/automake/automake/automake-replace-w-option-in-shebangs-with-modern-use-warnings.patch b/meta/recipes-devtools/automake/automake/automake-replace-w-option-in-shebangs-with-modern-use-warnings.patch
index 1592c02cb9..0e84c4bf86 100644
--- a/meta/recipes-devtools/automake/automake/automake-replace-w-option-in-shebangs-with-modern-use-warnings.patch
+++ b/meta/recipes-devtools/automake/automake/automake-replace-w-option-in-shebangs-with-modern-use-warnings.patch
@@ -1,4 +1,4 @@
-From 081385f4d4bba367afad3bff1fa034f5263305e6 Mon Sep 17 00:00:00 2001
+From 857c843d4bcf576467b505eb05a47f3e7d32caaa Mon Sep 17 00:00:00 2001
From: Serhii Popovych <spopovyc@cisco.com>
Date: Wed, 10 Feb 2016 17:07:32 +0000
Subject: [PATCH] perl: Replace -w option in shebangs with modern "use
@@ -23,16 +23,16 @@ Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/bin/aclocal.in b/bin/aclocal.in
-index b3715d9..461d453 100644
+index 9a20325..bd185d4 100644
--- a/bin/aclocal.in
+++ b/bin/aclocal.in
@@ -1,4 +1,4 @@
-#!@PERL@ -w
+#!@PERL@
- # -*- perl -*-
+ # aclocal - create aclocal.m4 by scanning configure.ac -*- perl -*-
# @configure_input@
-
-@@ -32,6 +32,7 @@ BEGIN
+ # Copyright (C) 1996-2020 Free Software Foundation, Inc.
+@@ -26,6 +26,7 @@ BEGIN
}
use strict;
@@ -41,16 +41,16 @@ index b3715d9..461d453 100644
use Automake::Config;
use Automake::General;
diff --git a/bin/automake.in b/bin/automake.in
-index 8377d20..3a66965 100644
+index 5ed404a..d387b8e 100644
--- a/bin/automake.in
+++ b/bin/automake.in
@@ -1,4 +1,4 @@
-#!@PERL@ -w
+#!@PERL@
- # -*- perl -*-
+ # automake - create Makefile.in from Makefile.am -*- perl -*-
# @configure_input@
-
-@@ -28,6 +28,7 @@ eval 'case $# in 0) exec @PERL@ -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac'
+ # Copyright (C) 1994-2020 Free Software Foundation, Inc.
+@@ -23,6 +23,7 @@
package Automake;
use strict;
diff --git a/meta/recipes-devtools/automake/automake_1.16.1.bb b/meta/recipes-devtools/automake/automake_1.16.2.bb
index d82eed3c60..fd8ed0ed3b 100644
--- a/meta/recipes-devtools/automake/automake_1.16.1.bb
+++ b/meta/recipes-devtools/automake/automake_1.16.2.bb
@@ -28,8 +28,8 @@ SRC_URI += "file://python-libdir.patch \
file://0001-build-fix-race-in-parallel-builds.patch \
"
-SRC_URI[md5sum] = "83cc2463a4080efd46a72ba2c9f6b8f5"
-SRC_URI[sha256sum] = "608a97523f97db32f1f5d5615c98ca69326ced2054c9f82e65bade7fc4c9dea8"
+SRC_URI[md5sum] = "f1a14f2ab2b0fb861a011e1d94e589e0"
+SRC_URI[sha256sum] = "b2f361094b410b4acbf4efba7337bdb786335ca09eb2518635a09fb7319ca5c1"
PERL = "${USRBINPATH}/perl"
PERL_class-native = "${USRBINPATH}/env perl"
diff --git a/meta/recipes-devtools/binutils/binutils-2.34.inc b/meta/recipes-devtools/binutils/binutils-2.35.inc
index eaaa5ed2ac..5ae9ec4226 100644
--- a/meta/recipes-devtools/binutils/binutils-2.34.inc
+++ b/meta/recipes-devtools/binutils/binutils-2.35.inc
@@ -16,33 +16,30 @@ def binutils_branch_version(d):
# When upgrading to 2.35, please make sure there is no trailing .0, so
# that upstream version check can work correctly.
-PV = "2.34"
-CVE_VERSION = "2.34"
+PV = "2.35"
+CVE_VERSION = "2.35"
BINUPV = "${@binutils_branch_version(d)}"
#BRANCH = "binutils-${BINUPV}-branch"
-BRANCH ?= "binutils-2_34-branch"
+BRANCH ?= "binutils-2_35-branch"
UPSTREAM_CHECK_GITTAGREGEX = "binutils-(?P<pver>\d+_(\d_?)*)"
-SRCREV ?= "d4b50999b3b287b5f984ade2f8734aa8c9359440"
+SRCREV ?= "89a9065674a14a8bd94bb326b27d19a2f3583efb"
BINUTILS_GIT_URI ?= "git://sourceware.org/git/binutils-gdb.git;branch=${BRANCH};protocol=git"
SRC_URI = "\
${BINUTILS_GIT_URI} \
file://0004-configure-widen-the-regexp-for-SH-architectures.patch \
file://0005-Point-scripts-location-to-libdir.patch \
file://0006-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch \
- file://0007-Use-libtool-2.4.patch \
- file://0008-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch \
- file://0009-warn-for-uses-of-system-directories-when-cross-linki.patch \
- file://0010-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch \
- file://0011-Change-default-emulation-for-mips64-linux.patch \
- file://0012-Add-support-for-Netlogic-XLP.patch \
- file://0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch \
- file://0014-Detect-64-bit-MIPS-targets.patch \
+ file://0007-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch \
+ file://0008-warn-for-uses-of-system-directories-when-cross-linki.patch \
+ file://0009-Change-default-emulation-for-mips64-linux.patch \
+ file://0010-Add-support-for-Netlogic-XLP.patch \
+ file://0011-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch \
+ file://0012-Detect-64-bit-MIPS-targets.patch \
+ file://0013-Use-libtool-2.4.patch \
+ file://0014-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch \
file://0015-sync-with-OE-libtool-changes.patch \
+ file://0016-Check-for-clang-before-checking-gcc-version.patch \
"
S = "${WORKDIR}/git"
-
-do_configure_prepend () {
- rm -rf ${S}/gdb ${S}/libdecnumber ${S}/readline ${S}/sim
-}
diff --git a/meta/recipes-devtools/binutils/binutils-cross-canadian_2.34.bb b/meta/recipes-devtools/binutils/binutils-cross-canadian_2.35.bb
index 5dbaa03017..5dbaa03017 100644
--- a/meta/recipes-devtools/binutils/binutils-cross-canadian_2.34.bb
+++ b/meta/recipes-devtools/binutils/binutils-cross-canadian_2.35.bb
diff --git a/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.34.bb b/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.35.bb
index 07a8e7c417..07a8e7c417 100644
--- a/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.34.bb
+++ b/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.35.bb
diff --git a/meta/recipes-devtools/binutils/binutils-cross_2.34.bb b/meta/recipes-devtools/binutils/binutils-cross_2.35.bb
index fbd1f7d25a..fbd1f7d25a 100644
--- a/meta/recipes-devtools/binutils/binutils-cross_2.34.bb
+++ b/meta/recipes-devtools/binutils/binutils-cross_2.35.bb
diff --git a/meta/recipes-devtools/binutils/binutils-crosssdk_2.34.bb b/meta/recipes-devtools/binutils/binutils-crosssdk_2.35.bb
index 37f4d6d2e9..37f4d6d2e9 100644
--- a/meta/recipes-devtools/binutils/binutils-crosssdk_2.34.bb
+++ b/meta/recipes-devtools/binutils/binutils-crosssdk_2.35.bb
diff --git a/meta/recipes-devtools/binutils/binutils.inc b/meta/recipes-devtools/binutils/binutils.inc
index 6ed40a1486..e93cd50b20 100644
--- a/meta/recipes-devtools/binutils/binutils.inc
+++ b/meta/recipes-devtools/binutils/binutils.inc
@@ -38,6 +38,7 @@ FILES_${PN}-dev = " \
LDGOLD_ALTS ?= "ld.gold dwp"
LDGOLD_ALTS_riscv64 = ""
LDGOLD_ALTS_riscv32 = ""
+LDGOLD_ALTS_libc-glibc_mipsarch = ""
USE_ALTERNATIVES_FOR = " \
addr2line \
@@ -74,6 +75,11 @@ EXTRA_OECONF = "--program-prefix=${TARGET_PREFIX} \
--disable-werror \
--enable-deterministic-archives \
--enable-plugins \
+ --disable-gdb \
+ --disable-gdbserver \
+ --disable-libdecnumber \
+ --disable-readline \
+ --disable-sim \
${LDGOLD} \
${EXTRA_TARGETS} \
${@bb.utils.contains('DISTRO_FEATURES', 'multiarch', '--enable-64-bit-bfd', '', d)}"
@@ -84,6 +90,7 @@ EXTRA_TARGETS_class-native = ""
LDGOLD_class-native = ""
LDGOLD_class-crosssdk = ""
+LDGOLD_libc-glibc_mipsarch = ""
LDGOLD ?= "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '--enable-gold=default --enable-threads', '--enable-gold --enable-ld=default --enable-threads', d)}"
@@ -114,13 +121,7 @@ export CC_FOR_BUILD = "LD_LIBRARY_PATH= ${BUILD_CC}"
MULTIARCH := "${@bb.utils.contains("DISTRO_FEATURES", "multiarch", "yes", "no", d)}"
do_configure[vardeps] += "MULTIARCH"
do_configure () {
- (for d in . bfd binutils gas gold gprof ld libctf opcodes; do
- cd ${S}/$d
- autoconf
- rm -rf autom4te.cache
- done
- cd ${S}
- gnu-configize)
+ (cd ${S} && gnu-configize)
oe_runconf
#
@@ -151,6 +152,11 @@ do_install () {
install -m 644 ${S}/include/ansidecl.h ${D}${includedir}
install -m 644 ${S}/include/libiberty.h ${D}${includedir}
+ # insall pic version of libiberty if available
+ if [ -e ${B}/libiberty/pic/libiberty.a ]; then
+ install -Dm 0644 ${B}/libiberty/pic/libiberty.a ${D}${libdir}/libiberty.a
+ fi
+
cd ${D}${bindir}
# Symlinks for ease of running these on the native target
@@ -163,6 +169,8 @@ do_install () {
done
oe_multilib_header bfd.h
+ # bfd_stdint.h encodes the compiler name in the header
+ sed -i ${D}${includedir}/bfd_stdint.h -e "s,${TARGET_PREFIX},,"
}
inherit update-alternatives
diff --git a/meta/recipes-devtools/binutils/binutils/0001-binutils-crosssdk-Generate-relocatable-SDKs.patch b/meta/recipes-devtools/binutils/binutils/0001-binutils-crosssdk-Generate-relocatable-SDKs.patch
index 14e84215e0..4c1d11291b 100644
--- a/meta/recipes-devtools/binutils/binutils/0001-binutils-crosssdk-Generate-relocatable-SDKs.patch
+++ b/meta/recipes-devtools/binutils/binutils/0001-binutils-crosssdk-Generate-relocatable-SDKs.patch
@@ -1,24 +1,40 @@
-From b05f0be13aadf0b26a0b39dfe7daf2c47a300338 Mon Sep 17 00:00:00 2001
+From a0b23b160d6cfa7be4437c6e623633d76395f2ad Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 2 Mar 2015 01:58:54 +0000
-Subject: [PATCH] binutils-crosssdk: Generate relocatable SDKs
+Subject: [PATCH 01/16] binutils-crosssdk: Generate relocatable SDKs
This patch will modify the ELF linker scripts so that the crosssdk
linker will generate binaries with a 4096 bytes PT_INTERP section. When the binaries
will be relocated, at SDK install time, the interpreter path can be easily
changed by the relocating script.
+generate larger .interp section for gold linker as well
+
Upstream-Status: Inappropriate [SDK specific]
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+ gold/layout.cc | 2 +-
ld/genscripts.sh | 3 +++
ld/scripttempl/elf.sc | 4 ++--
- 2 files changed, 5 insertions(+), 2 deletions(-)
+ 3 files changed, 6 insertions(+), 3 deletions(-)
+diff --git a/gold/layout.cc b/gold/layout.cc
+index 13e533aaf21..b0afff16e2e 100644
+--- a/gold/layout.cc
++++ b/gold/layout.cc
+@@ -5019,7 +5019,7 @@ Layout::create_interp(const Target* target)
+ gold_assert(interp != NULL);
+ }
+
+- size_t len = strlen(interp) + 1;
++ size_t len = 4096;
+
+ Output_section_data* odata = new Output_data_const(interp, len, 1);
+
diff --git a/ld/genscripts.sh b/ld/genscripts.sh
-index 03392d265c..435689ea14 100755
+index 03392d265c7..435689ea144 100755
--- a/ld/genscripts.sh
+++ b/ld/genscripts.sh
@@ -304,6 +304,7 @@ DATA_ALIGNMENT_u="${DATA_ALIGNMENT_u-${DATA_ALIGNMENT_r}}"
@@ -43,10 +59,10 @@ index 03392d265c..435689ea14 100755
DATA_ALIGNMENT=${DATA_ALIGNMENT_}
RELOCATING=" "
diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc
-index 0b8b32a440..ee6b71075d 100644
+index eb74743e5c3..c9a8a47615f 100644
--- a/ld/scripttempl/elf.sc
+++ b/ld/scripttempl/elf.sc
-@@ -140,8 +140,8 @@ if test -z "$DATA_SEGMENT_ALIGN"; then
+@@ -143,8 +143,8 @@ if test -z "$DATA_SEGMENT_ALIGN"; then
DATA_SEGMENT_RELRO_END=". = DATA_SEGMENT_RELRO_END (${SEPARATE_GOTPLT-0}, .);"
fi
fi
@@ -57,3 +73,6 @@ index 0b8b32a440..ee6b71075d 100644
fi
if test -z "$PLT"; then
IPLT=".iplt ${RELOCATING-0} : { *(.iplt) }"
+--
+2.28.0
+
diff --git a/meta/recipes-devtools/binutils/binutils/0002-binutils-cross-Do-not-generate-linker-script-directo.patch b/meta/recipes-devtools/binutils/binutils/0002-binutils-cross-Do-not-generate-linker-script-directo.patch
index 91de94b768..41dff05b25 100644
--- a/meta/recipes-devtools/binutils/binutils/0002-binutils-cross-Do-not-generate-linker-script-directo.patch
+++ b/meta/recipes-devtools/binutils/binutils/0002-binutils-cross-Do-not-generate-linker-script-directo.patch
@@ -1,7 +1,8 @@
-From 6d79f81336e7cbe727b5a51134f5d314a455379d Mon Sep 17 00:00:00 2001
+From 0d14f8f333a9b519202246ce779f3e380491826c Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 6 Mar 2017 23:37:05 -0800
-Subject: [PATCH] binutils-cross: Do not generate linker script directories
+Subject: [PATCH 02/17] binutils-cross: Do not generate linker script
+ directories
We don't place target libraries within ${exec_prefix}, we'd always place these
within the target sysroot within the standard library directories. Worse, the
@@ -22,7 +23,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 25 deletions(-)
diff --git a/ld/genscripts.sh b/ld/genscripts.sh
-index 435689ea14..cff8a1467f 100755
+index 435689ea144..cff8a1467f9 100755
--- a/ld/genscripts.sh
+++ b/ld/genscripts.sh
@@ -235,31 +235,6 @@ append_to_lib_path()
@@ -57,3 +58,6 @@ index 435689ea14..cff8a1467f 100755
if [ "x${LIB_PATH}" = "x" ] && [ "x${USE_LIBPATH}" = xyes ] ; then
libs=${NATIVE_LIB_DIRS}
if [ "x${NATIVE}" = "xyes" ] ; then
+--
+2.28.0
+
diff --git a/meta/recipes-devtools/binutils/binutils/0003-binutils-nativesdk-Search-for-alternative-ld.so.conf.patch b/meta/recipes-devtools/binutils/binutils/0003-binutils-nativesdk-Search-for-alternative-ld.so.conf.patch
index 8b59ba5dec..28daf58f74 100644
--- a/meta/recipes-devtools/binutils/binutils/0003-binutils-nativesdk-Search-for-alternative-ld.so.conf.patch
+++ b/meta/recipes-devtools/binutils/binutils/0003-binutils-nativesdk-Search-for-alternative-ld.so.conf.patch
@@ -1,8 +1,8 @@
-From d057b215f114f6158b4010ab44a19cae9dcc8386 Mon Sep 17 00:00:00 2001
+From 3bbec749ec9fe681ade6812c48c541a752fcffd5 Mon Sep 17 00:00:00 2001
From: Richard Purdie <richard.purdie@linuxfoundation.org>
Date: Wed, 19 Feb 2020 09:51:16 -0800
-Subject: [PATCH] binutils-nativesdk: Search for alternative ld.so.conf in SDK
- installation
+Subject: [PATCH 03/17] binutils-nativesdk: Search for alternative ld.so.conf
+ in SDK installation
We need binutils to look at our ld.so.conf file within the SDK to ensure
we search the SDK's libdirs as well as those from the host system.
@@ -29,7 +29,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
5 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/ld/Makefile.am b/ld/Makefile.am
-index 4a9b8404b7..1c132d3ce4 100644
+index 02c4fc16395..a5762227f0a 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -42,7 +42,8 @@ ZLIBINC = @zlibinc@
@@ -43,10 +43,10 @@ index 4a9b8404b7..1c132d3ce4 100644
NO_WERROR = @NO_WERROR@
AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
diff --git a/ld/Makefile.in b/ld/Makefile.in
-index 46d9b14077..e453bc1b33 100644
+index 2fe12e14f63..8f0c83ac8d2 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
-@@ -555,7 +555,8 @@ ZLIB = @zlibdir@ -lz
+@@ -548,7 +548,8 @@ ZLIB = @zlibdir@ -lz
ZLIBINC = @zlibinc@
ELF_CLFAGS = -DELF_LIST_OPTIONS=@elf_list_options@ \
-DELF_SHLIB_LIST_OPTIONS=@elf_shlib_list_options@ \
@@ -55,12 +55,12 @@ index 46d9b14077..e453bc1b33 100644
+ -DSYSCONFDIR="\"$(sysconfdir)\""
AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
- @ENABLE_PLUGINS_FALSE@PLUGIN_C =
+
diff --git a/ld/ldelf.c b/ld/ldelf.c
-index 2e27cf48a8..a095d6aac5 100644
+index bada3ade2d7..b4784009d7a 100644
--- a/ld/ldelf.c
+++ b/ld/ldelf.c
-@@ -907,7 +907,7 @@ ldelf_check_ld_so_conf (const struct bfd_link_needed_list *l, int force,
+@@ -911,7 +911,7 @@ ldelf_check_ld_so_conf (const struct bfd_link_needed_list *l, int force,
info.path = NULL;
info.len = info.alloc = 0;
@@ -70,10 +70,10 @@ index 2e27cf48a8..a095d6aac5 100644
if (!ldelf_parse_ld_so_conf (&info, tmppath))
{
diff --git a/ld/ldmain.c b/ld/ldmain.c
-index c4af10f4e9..da1ad17763 100644
+index 08be9030cb5..f5c5a336320 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
-@@ -69,6 +69,7 @@ char *program_name;
+@@ -70,6 +70,7 @@ char *program_name;
/* The prefix for system library directories. */
const char *ld_sysroot;
@@ -82,7 +82,7 @@ index c4af10f4e9..da1ad17763 100644
/* The canonical representation of ld_sysroot. */
char *ld_canon_sysroot;
diff --git a/ld/ldmain.h b/ld/ldmain.h
-index 0f05821d1e..54c36a94ce 100644
+index ac7db5720d5..1cbe1771912 100644
--- a/ld/ldmain.h
+++ b/ld/ldmain.h
@@ -23,6 +23,7 @@
@@ -93,3 +93,6 @@ index 0f05821d1e..54c36a94ce 100644
extern char *ld_canon_sysroot;
extern int ld_canon_sysroot_len;
extern FILE *saved_script_handle;
+--
+2.28.0
+
diff --git a/meta/recipes-devtools/binutils/binutils/0004-configure-widen-the-regexp-for-SH-architectures.patch b/meta/recipes-devtools/binutils/binutils/0004-configure-widen-the-regexp-for-SH-architectures.patch
index d10a144ed5..2381c7b85e 100644
--- a/meta/recipes-devtools/binutils/binutils/0004-configure-widen-the-regexp-for-SH-architectures.patch
+++ b/meta/recipes-devtools/binutils/binutils/0004-configure-widen-the-regexp-for-SH-architectures.patch
@@ -1,7 +1,7 @@
-From f7ad8a44c10f01e03680f093fd7af71c9f5e8606 Mon Sep 17 00:00:00 2001
+From 361c2c313196c095d12d17cecf0a069107dd629b Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 2 Mar 2015 01:07:33 +0000
-Subject: [PATCH] configure: widen the regexp for SH architectures
+Subject: [PATCH 04/17] configure: widen the regexp for SH architectures
gprof needs to know about uclibc
@@ -14,10 +14,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure b/configure
-index 91dc42f6c7..7c1b747e7c 100755
+index 54d0339ab9e..6782f8b6ab8 100755
--- a/configure
+++ b/configure
-@@ -3915,7 +3915,7 @@ case "${target}" in
+@@ -3937,7 +3937,7 @@ case "${target}" in
nvptx*-*-*)
noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc"
;;
@@ -27,10 +27,10 @@ index 91dc42f6c7..7c1b747e7c 100755
sh*-*-elf)
;;
diff --git a/configure.ac b/configure.ac
-index 4bd869a63a..7187b34dfc 100644
+index a910c4fd6ba..55beb1dea46 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -1159,7 +1159,7 @@ case "${target}" in
+@@ -1178,7 +1178,7 @@ case "${target}" in
nvptx*-*-*)
noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc"
;;
@@ -39,3 +39,6 @@ index 4bd869a63a..7187b34dfc 100644
case "${target}" in
sh*-*-elf)
;;
+--
+2.28.0
+
diff --git a/meta/recipes-devtools/binutils/binutils/0005-Point-scripts-location-to-libdir.patch b/meta/recipes-devtools/binutils/binutils/0005-Point-scripts-location-to-libdir.patch
index 3ba0ba63f1..c31a0bc9a6 100644
--- a/meta/recipes-devtools/binutils/binutils/0005-Point-scripts-location-to-libdir.patch
+++ b/meta/recipes-devtools/binutils/binutils/0005-Point-scripts-location-to-libdir.patch
@@ -1,7 +1,7 @@
-From 08b088b7dd3d9707ed66948a7271ffb438eeddf5 Mon Sep 17 00:00:00 2001
+From 39b478b7e52fb1b892a392f3c3750b9023cfabc8 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 2 Mar 2015 01:09:58 +0000
-Subject: [PATCH] Point scripts location to libdir
+Subject: [PATCH 05/17] Point scripts location to libdir
Upstream-Status: Inappropriate [debian patch]
@@ -12,10 +12,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/ld/Makefile.am b/ld/Makefile.am
-index 1c132d3ce4..8d82cf2e16 100644
+index a5762227f0a..e1c665898f3 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
-@@ -64,7 +64,7 @@ endif
+@@ -51,7 +51,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
# We put the scripts in the directory $(scriptdir)/ldscripts.
# We can't put the scripts in $(datadir) because the SEARCH_DIR
# directives need to be different for native and cross linkers.
@@ -25,10 +25,10 @@ index 1c132d3ce4..8d82cf2e16 100644
EMUL = @EMUL@
EMULATION_OFILES = @EMULATION_OFILES@
diff --git a/ld/Makefile.in b/ld/Makefile.in
-index e453bc1b33..2dcd72f809 100644
+index 8f0c83ac8d2..acc24ec4130 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
-@@ -573,7 +573,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
+@@ -556,7 +556,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
# We put the scripts in the directory $(scriptdir)/ldscripts.
# We can't put the scripts in $(datadir) because the SEARCH_DIR
# directives need to be different for native and cross linkers.
@@ -37,3 +37,6 @@ index e453bc1b33..2dcd72f809 100644
BASEDIR = $(srcdir)/..
BFDDIR = $(BASEDIR)/bfd
INCDIR = $(BASEDIR)/include
+--
+2.28.0
+
diff --git a/meta/recipes-devtools/binutils/binutils/0006-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch b/meta/recipes-devtools/binutils/binutils/0006-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch
index d920729204..654b64ff78 100644
--- a/meta/recipes-devtools/binutils/binutils/0006-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch
+++ b/meta/recipes-devtools/binutils/binutils/0006-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch
@@ -1,7 +1,8 @@
-From 13791636abf518f0db209dc51c29445d80421f2e Mon Sep 17 00:00:00 2001
+From 59640ddf11104a604ccf7c078a48359d711c2f9c Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 2 Mar 2015 01:27:17 +0000
-Subject: [PATCH] Only generate an RPATH entry if LD_RUN_PATH is not empty
+Subject: [PATCH 06/17] Only generate an RPATH entry if LD_RUN_PATH is not
+ empty
for cases where -rpath isn't specified. debian (#151024)
@@ -14,10 +15,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 4 insertions(+)
diff --git a/ld/ldelf.c b/ld/ldelf.c
-index a095d6aac5..a2455a8793 100644
+index b4784009d7a..541772f4604 100644
--- a/ld/ldelf.c
+++ b/ld/ldelf.c
-@@ -1229,6 +1229,8 @@ ldelf_after_open (int use_libpath, int native, int is_linux, int is_freebsd,
+@@ -1247,6 +1247,8 @@ ldelf_after_open (int use_libpath, int native, int is_linux, int is_freebsd,
&& command_line.rpath == NULL)
{
path = (const char *) getenv ("LD_RUN_PATH");
@@ -26,7 +27,7 @@ index a095d6aac5..a2455a8793 100644
if (path
&& ldelf_search_needed (path, &n, force,
is_linux, elfsize))
-@@ -1573,6 +1575,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
+@@ -1605,6 +1607,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
rpath = command_line.rpath;
if (rpath == NULL)
rpath = (const char *) getenv ("LD_RUN_PATH");
@@ -35,3 +36,6 @@ index a095d6aac5..a2455a8793 100644
for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next)
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
+--
+2.28.0
+
diff --git a/meta/recipes-devtools/binutils/binutils/0007-Use-libtool-2.4.patch b/meta/recipes-devtools/binutils/binutils/0007-Use-libtool-2.4.patch
deleted file mode 100644
index c71e19ecb4..0000000000
--- a/meta/recipes-devtools/binutils/binutils/0007-Use-libtool-2.4.patch
+++ /dev/null
@@ -1,7115 +0,0 @@
-From 3a2e7ec956568c503a678385ebee17098337feab Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 14 Feb 2016 17:04:07 +0000
-Subject: [PATCH] Use libtool 2.4
-
-get libtool sysroot support
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- bfd/configure.ac | 2 +-
- libtool.m4 | 1080 +++++++++++------
- ltmain.sh | 2925 +++++++++++++++++++++++++++++++---------------
- ltoptions.m4 | 2 +-
- ltversion.m4 | 12 +-
- lt~obsolete.m4 | 2 +-
- 6 files changed, 2717 insertions(+), 1306 deletions(-)
-
-diff --git a/bfd/configure.ac b/bfd/configure.ac
-index af4d4b8c13..a521738244 100644
---- a/bfd/configure.ac
-+++ b/bfd/configure.ac
-@@ -296,7 +296,7 @@ changequote(,)dnl
- x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'`
- changequote([,])dnl
- if test -n "$x"; then
-- SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty"
-+ SHARED_LIBADD="`pwd`/../libiberty/pic/libiberty.a"
- fi
-
- case "${host}" in
-diff --git a/libtool.m4 b/libtool.m4
-index 434530059f..e45fdc6998 100644
---- a/libtool.m4
-+++ b/libtool.m4
-@@ -1,7 +1,8 @@
- # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
- #
- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
--# 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-+# 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
-+# Inc.
- # Written by Gordon Matzigkeit, 1996
- #
- # This file is free software; the Free Software Foundation gives
-@@ -10,7 +11,8 @@
-
- m4_define([_LT_COPYING], [dnl
- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
--# 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-+# 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
-+# Inc.
- # Written by Gordon Matzigkeit, 1996
- #
- # This file is part of GNU Libtool.
-@@ -37,7 +39,7 @@ m4_define([_LT_COPYING], [dnl
- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- ])
-
--# serial 56 LT_INIT
-+# serial 57 LT_INIT
-
-
- # LT_PREREQ(VERSION)
-@@ -92,7 +94,8 @@ _LT_SET_OPTIONS([$0], [$1])
- LIBTOOL_DEPS="$ltmain"
-
- # Always use our own libtool.
--LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-+LIBTOOL='$(SHELL) $(top_builddir)'
-+LIBTOOL="$LIBTOOL/${host_alias}-libtool"
- AC_SUBST(LIBTOOL)dnl
-
- _LT_SETUP
-@@ -166,10 +169,13 @@ _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
- dnl
- m4_require([_LT_FILEUTILS_DEFAULTS])dnl
- m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-+m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
- m4_require([_LT_CMD_RELOAD])dnl
- m4_require([_LT_CHECK_MAGIC_METHOD])dnl
-+m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
- m4_require([_LT_CMD_OLD_ARCHIVE])dnl
- m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-+m4_require([_LT_WITH_SYSROOT])dnl
-
- _LT_CONFIG_LIBTOOL_INIT([
- # See if we are running on zsh, and set the options which allow our
-@@ -199,7 +205,7 @@ aix3*)
- esac
-
- # Global variables:
--ofile=libtool
-+ofile=${host_alias}-libtool
- can_build_shared=yes
-
- # All known linkers require a `.a' archive for static linking (except MSVC,
-@@ -632,7 +638,7 @@ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
- m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
- configured by $[0], generated by m4_PACKAGE_STRING.
-
--Copyright (C) 2009 Free Software Foundation, Inc.
-+Copyright (C) 2010 Free Software Foundation, Inc.
- This config.lt script is free software; the Free Software Foundation
- gives unlimited permision to copy, distribute and modify it."
-
-@@ -746,15 +752,12 @@ _LT_EOF
- # if finds mixed CR/LF and LF-only lines. Since sed operates in
- # text mode, it properly converts lines to CR/LF. This bash problem
- # is reportedly fixed, but why not run on old versions too?
-- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
-- || (rm -f "$cfgfile"; exit 1)
-+ sed '$q' "$ltmain" >> "$cfgfile" \
-+ || (rm -f "$cfgfile"; exit 1)
-
-- _LT_PROG_XSI_SHELLFNS
-+ _LT_PROG_REPLACE_SHELLFNS
-
-- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
-- || (rm -f "$cfgfile"; exit 1)
--
-- mv -f "$cfgfile" "$ofile" ||
-+ mv -f "$cfgfile" "$ofile" ||
- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
- chmod +x "$ofile"
- ],
-@@ -980,6 +983,8 @@ _LT_EOF
- $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
- echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
- $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
-+ echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
-+ $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
- cat > conftest.c << _LT_EOF
- int main() { return 0;}
- _LT_EOF
-@@ -1069,30 +1074,41 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
- fi
- ])
-
--# _LT_SYS_MODULE_PATH_AIX
--# -----------------------
-+# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
-+# ----------------------------------
- # Links a minimal program and checks the executable
- # for the system default hardcoded library path. In most cases,
- # this is /usr/lib:/lib, but when the MPI compilers are used
- # the location of the communication and MPI libs are included too.
- # If we don't find anything, use the default library path according
- # to the aix ld manual.
-+# Store the results from the different compilers for each TAGNAME.
-+# Allow to override them for all tags through lt_cv_aix_libpath.
- m4_defun([_LT_SYS_MODULE_PATH_AIX],
- [m4_require([_LT_DECL_SED])dnl
--AC_LINK_IFELSE([AC_LANG_SOURCE([AC_LANG_PROGRAM])],[
--lt_aix_libpath_sed='
-- /Import File Strings/,/^$/ {
-- /^0/ {
-- s/^0 *\(.*\)$/\1/
-- p
-- }
-- }'
--aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
--# Check for a 64-bit object if we didn't find anything.
--if test -z "$aix_libpath"; then
-- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
--fi],[])
--if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-+if test "${lt_cv_aix_libpath+set}" = set; then
-+ aix_libpath=$lt_cv_aix_libpath
-+else
-+ AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
-+ [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
-+ lt_aix_libpath_sed='[
-+ /Import File Strings/,/^$/ {
-+ /^0/ {
-+ s/^0 *\([^ ]*\) *$/\1/
-+ p
-+ }
-+ }]'
-+ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-+ # Check for a 64-bit object if we didn't find anything.
-+ if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
-+ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-+ fi],[])
-+ if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
-+ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
-+ fi
-+ ])
-+ aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
-+fi
- ])# _LT_SYS_MODULE_PATH_AIX
-
-
-@@ -1117,7 +1133,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-
- AC_MSG_CHECKING([how to print strings])
- # Test print first, because it will be a builtin if present.
--if test "X`print -r -- -n 2>/dev/null`" = X-n && \
-+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
- test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='print -r --'
- elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
-@@ -1161,6 +1177,39 @@ _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
- ])# _LT_PROG_ECHO_BACKSLASH
-
-
-+# _LT_WITH_SYSROOT
-+# ----------------
-+AC_DEFUN([_LT_WITH_SYSROOT],
-+[AC_MSG_CHECKING([for sysroot])
-+AC_ARG_WITH([libtool-sysroot],
-+[ --with-libtool-sysroot[=DIR] Search for dependent libraries within DIR
-+ (or the compiler's sysroot if not specified).],
-+[], [with_libtool_sysroot=no])
-+
-+dnl lt_sysroot will always be passed unquoted. We quote it here
-+dnl in case the user passed a directory name.
-+lt_sysroot=
-+case ${with_libtool_sysroot} in #(
-+ yes)
-+ if test "$GCC" = yes; then
-+ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
-+ fi
-+ ;; #(
-+ /*)
-+ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
-+ ;; #(
-+ no|'')
-+ ;; #(
-+ *)
-+ AC_MSG_RESULT([${with_libtool_sysroot}])
-+ AC_MSG_ERROR([The sysroot must be an absolute path.])
-+ ;;
-+esac
-+
-+ AC_MSG_RESULT([${lt_sysroot:-no}])
-+_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
-+[dependent libraries, and in which our libraries should be installed.])])
-+
- # _LT_ENABLE_LOCK
- # ---------------
- m4_defun([_LT_ENABLE_LOCK],
-@@ -1320,14 +1369,47 @@ need_locks="$enable_libtool_lock"
- ])# _LT_ENABLE_LOCK
-
-
-+# _LT_PROG_AR
-+# -----------
-+m4_defun([_LT_PROG_AR],
-+[AC_CHECK_TOOLS(AR, [ar], false)
-+: ${AR=ar}
-+: ${AR_FLAGS=cru}
-+_LT_DECL([], [AR], [1], [The archiver])
-+_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
-+
-+AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
-+ [lt_cv_ar_at_file=no
-+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
-+ [echo conftest.$ac_objext > conftest.lst
-+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
-+ AC_TRY_EVAL([lt_ar_try])
-+ if test "$ac_status" -eq 0; then
-+ # Ensure the archiver fails upon bogus file names.
-+ rm -f conftest.$ac_objext libconftest.a
-+ AC_TRY_EVAL([lt_ar_try])
-+ if test "$ac_status" -ne 0; then
-+ lt_cv_ar_at_file=@
-+ fi
-+ fi
-+ rm -f conftest.* libconftest.a
-+ ])
-+ ])
-+
-+if test "x$lt_cv_ar_at_file" = xno; then
-+ archiver_list_spec=
-+else
-+ archiver_list_spec=$lt_cv_ar_at_file
-+fi
-+_LT_DECL([], [archiver_list_spec], [1],
-+ [How to feed a file listing to the archiver])
-+])# _LT_PROG_AR
-+
-+
- # _LT_CMD_OLD_ARCHIVE
- # -------------------
- m4_defun([_LT_CMD_OLD_ARCHIVE],
--[AC_CHECK_TOOL(AR, ar, false)
--test -z "$AR" && AR=ar
--test -z "$AR_FLAGS" && AR_FLAGS=cru
--_LT_DECL([], [AR], [1], [The archiver])
--_LT_DECL([], [AR_FLAGS], [1])
-+[_LT_PROG_AR
-
- AC_CHECK_TOOL(STRIP, strip, :)
- test -z "$STRIP" && STRIP=:
-@@ -1623,7 +1705,7 @@ else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
--[#line __oline__ "configure"
-+[#line $LINENO "configure"
- #include "confdefs.h"
-
- #if HAVE_DLFCN_H
-@@ -1667,10 +1749,10 @@ else
- /* When -fvisbility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
- #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
--void fnord () __attribute__((visibility("default")));
-+int fnord () __attribute__((visibility("default")));
- #endif
-
--void fnord () { int i=42; }
-+int fnord () { return 42; }
- int main ()
- {
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -2210,8 +2292,9 @@ cygwin* | mingw* | pw32* | cegcc*)
- need_version=no
- need_lib_prefix=no
-
-- case $GCC,$host_os in
-- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
-+ case $GCC,$cc_basename in
-+ yes,*)
-+ # gcc
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
-@@ -2244,13 +2327,71 @@ m4_if([$1], [],[
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- ;;
- esac
-+ dynamic_linker='Win32 ld.exe'
-+ ;;
-+
-+ *,cl*)
-+ # Native MSVC
-+ libname_spec='$name'
-+ soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-+ library_names_spec='${libname}.dll.lib'
-+
-+ case $build_os in
-+ mingw*)
-+ sys_lib_search_path_spec=
-+ lt_save_ifs=$IFS
-+ IFS=';'
-+ for lt_path in $LIB
-+ do
-+ IFS=$lt_save_ifs
-+ # Let DOS variable expansion print the short 8.3 style file name.
-+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
-+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
-+ done
-+ IFS=$lt_save_ifs
-+ # Convert to MSYS style.
-+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
-+ ;;
-+ cygwin*)
-+ # Convert to unix form, then to dos form, then back to unix form
-+ # but this time dos style (no spaces!) so that the unix form looks
-+ # like /cygdrive/c/PROGRA~1:/cygdr...
-+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
-+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
-+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-+ ;;
-+ *)
-+ sys_lib_search_path_spec="$LIB"
-+ if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
-+ # It is most probably a Windows format PATH.
-+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-+ else
-+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-+ fi
-+ # FIXME: find the short name or the path components, as spaces are
-+ # common. (e.g. "Program Files" -> "PROGRA~1")
-+ ;;
-+ esac
-+
-+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
-+ postinstall_cmds='base_file=`basename \${file}`~
-+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-+ dldir=$destdir/`dirname \$dlpath`~
-+ test -d \$dldir || mkdir -p \$dldir~
-+ $install_prog $dir/$dlname \$dldir/$dlname'
-+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-+ dlpath=$dir/\$dldll~
-+ $RM \$dlpath'
-+ shlibpath_overrides_runpath=yes
-+ dynamic_linker='Win32 link.exe'
- ;;
-
- *)
-+ # Assume MSVC wrapper
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
-+ dynamic_linker='Win32 ld.exe'
- ;;
- esac
-- dynamic_linker='Win32 ld.exe'
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-@@ -2342,7 +2483,7 @@ haiku*)
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LIBRARY_PATH
- shlibpath_overrides_runpath=yes
-- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
-+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
- hardcode_into_libs=yes
- ;;
-
-@@ -2950,6 +3091,11 @@ case $reload_flag in
- esac
- reload_cmds='$LD$reload_flag -o $output$reload_objs'
- case $host_os in
-+ cygwin* | mingw* | pw32* | cegcc*)
-+ if test "$GCC" != yes; then
-+ reload_cmds=false
-+ fi
-+ ;;
- darwin*)
- if test "$GCC" = yes; then
- reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-@@ -3016,7 +3162,8 @@ mingw* | pw32*)
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- else
-- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
-+ # Keep this pattern in sync with the one in func_win32_libid.
-+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- fi
- ;;
-@@ -3167,6 +3314,21 @@ tpf*)
- ;;
- esac
- ])
-+
-+file_magic_glob=
-+want_nocaseglob=no
-+if test "$build" = "$host"; then
-+ case $host_os in
-+ mingw* | pw32*)
-+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
-+ want_nocaseglob=yes
-+ else
-+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
-+ fi
-+ ;;
-+ esac
-+fi
-+
- file_magic_cmd=$lt_cv_file_magic_cmd
- deplibs_check_method=$lt_cv_deplibs_check_method
- test -z "$deplibs_check_method" && deplibs_check_method=unknown
-@@ -3174,7 +3336,11 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
- _LT_DECL([], [deplibs_check_method], [1],
- [Method to check whether dependent libraries are shared objects])
- _LT_DECL([], [file_magic_cmd], [1],
-- [Command to use when deplibs_check_method == "file_magic"])
-+ [Command to use when deplibs_check_method = "file_magic"])
-+_LT_DECL([], [file_magic_glob], [1],
-+ [How to find potential files when deplibs_check_method = "file_magic"])
-+_LT_DECL([], [want_nocaseglob], [1],
-+ [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
- ])# _LT_CHECK_MAGIC_METHOD
-
-
-@@ -3277,6 +3443,67 @@ dnl aclocal-1.4 backwards compatibility:
- dnl AC_DEFUN([AM_PROG_NM], [])
- dnl AC_DEFUN([AC_PROG_NM], [])
-
-+# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
-+# --------------------------------
-+# how to determine the name of the shared library
-+# associated with a specific link library.
-+# -- PORTME fill in with the dynamic library characteristics
-+m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
-+[m4_require([_LT_DECL_EGREP])
-+m4_require([_LT_DECL_OBJDUMP])
-+m4_require([_LT_DECL_DLLTOOL])
-+AC_CACHE_CHECK([how to associate runtime and link libraries],
-+lt_cv_sharedlib_from_linklib_cmd,
-+[lt_cv_sharedlib_from_linklib_cmd='unknown'
-+
-+case $host_os in
-+cygwin* | mingw* | pw32* | cegcc*)
-+ # two different shell functions defined in ltmain.sh
-+ # decide which to use based on capabilities of $DLLTOOL
-+ case `$DLLTOOL --help 2>&1` in
-+ *--identify-strict*)
-+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
-+ ;;
-+ *)
-+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
-+ ;;
-+ esac
-+ ;;
-+*)
-+ # fallback: assume linklib IS sharedlib
-+ lt_cv_sharedlib_from_linklib_cmd="$ECHO"
-+ ;;
-+esac
-+])
-+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
-+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-+
-+_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
-+ [Command to associate shared and link libraries])
-+])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
-+
-+
-+# _LT_PATH_MANIFEST_TOOL
-+# ----------------------
-+# locate the manifest tool
-+m4_defun([_LT_PATH_MANIFEST_TOOL],
-+[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
-+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-+AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
-+ [lt_cv_path_mainfest_tool=no
-+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
-+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
-+ cat conftest.err >&AS_MESSAGE_LOG_FD
-+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then
-+ lt_cv_path_mainfest_tool=yes
-+ fi
-+ rm -f conftest*])
-+if test "x$lt_cv_path_mainfest_tool" != xyes; then
-+ MANIFEST_TOOL=:
-+fi
-+_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
-+])# _LT_PATH_MANIFEST_TOOL
-+
-
- # LT_LIB_M
- # --------
-@@ -3403,8 +3630,8 @@ esac
- lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-
- # Transform an extracted symbol line into symbol name and symbol address
--lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'"
--lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
-+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'"
-+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
-
- # Handle CRLF in mingw tool chain
- opt_cr=
-@@ -3440,6 +3667,7 @@ for ac_symprfx in "" "_"; do
- else
- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
- fi
-+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
-
- # Check to see that the pipe works correctly.
- pipe_works=no
-@@ -3473,6 +3701,18 @@ _LT_EOF
- if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
- if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
- cat <<_LT_EOF > conftest.$ac_ext
-+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
-+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-+/* DATA imports from DLLs on WIN32 con't be const, because runtime
-+ relocations are performed -- see ld's documentation on pseudo-relocs. */
-+# define LT@&t@_DLSYM_CONST
-+#elif defined(__osf__)
-+/* This system does not cope well with relocations in const data. */
-+# define LT@&t@_DLSYM_CONST
-+#else
-+# define LT@&t@_DLSYM_CONST const
-+#endif
-+
- #ifdef __cplusplus
- extern "C" {
- #endif
-@@ -3484,7 +3724,7 @@ _LT_EOF
- cat <<_LT_EOF >> conftest.$ac_ext
-
- /* The mapping between symbol names and symbols. */
--const struct {
-+LT@&t@_DLSYM_CONST struct {
- const char *name;
- void *address;
- }
-@@ -3510,15 +3750,15 @@ static const void *lt_preloaded_setup() {
- _LT_EOF
- # Now try linking the two files.
- mv conftest.$ac_objext conftstm.$ac_objext
-- lt_save_LIBS="$LIBS"
-- lt_save_CFLAGS="$CFLAGS"
-+ lt_globsym_save_LIBS=$LIBS
-+ lt_globsym_save_CFLAGS=$CFLAGS
- LIBS="conftstm.$ac_objext"
- CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
- if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
- pipe_works=yes
- fi
-- LIBS="$lt_save_LIBS"
-- CFLAGS="$lt_save_CFLAGS"
-+ LIBS=$lt_globsym_save_LIBS
-+ CFLAGS=$lt_globsym_save_CFLAGS
- else
- echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
- fi
-@@ -3551,6 +3791,13 @@ else
- AC_MSG_RESULT(ok)
- fi
-
-+# Response file support.
-+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-+ nm_file_list_spec='@'
-+elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
-+ nm_file_list_spec='@'
-+fi
-+
- _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
- [Take the output of nm and produce a listing of raw symbols and C names])
- _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
-@@ -3561,6 +3808,8 @@ _LT_DECL([global_symbol_to_c_name_address],
- _LT_DECL([global_symbol_to_c_name_address_lib_prefix],
- [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
- [Transform the output of nm in a C name address pair when lib prefix is needed])
-+_LT_DECL([], [nm_file_list_spec], [1],
-+ [Specify filename containing input files for $NM])
- ]) # _LT_CMD_GLOBAL_SYMBOLS
-
-
-@@ -3572,7 +3821,6 @@ _LT_TAGVAR(lt_prog_compiler_wl, $1)=
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_TAGVAR(lt_prog_compiler_static, $1)=
-
--AC_MSG_CHECKING([for $compiler option to produce PIC])
- m4_if([$1], [CXX], [
- # C++ specific cases for pic, static, wl, etc.
- if test "$GXX" = yes; then
-@@ -3678,6 +3926,12 @@ m4_if([$1], [CXX], [
- ;;
- esac
- ;;
-+ mingw* | cygwin* | os2* | pw32* | cegcc*)
-+ # This hack is so that the source file can tell whether it is being
-+ # built for inclusion in a dll (and should export symbols for example).
-+ m4_if([$1], [GCJ], [],
-+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-+ ;;
- dgux*)
- case $cc_basename in
- ec++*)
-@@ -3830,7 +4084,7 @@ m4_if([$1], [CXX], [
- ;;
- solaris*)
- case $cc_basename in
-- CC*)
-+ CC* | sunCC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-@@ -4053,6 +4307,12 @@ m4_if([$1], [CXX], [
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
- ;;
-+ nagfor*)
-+ # NAG Fortran compiler
-+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
-+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-+ ;;
- pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group compilers (*not* the Pentium gcc compiler,
- # which looks to be a dead project)
-@@ -4115,7 +4375,7 @@ m4_if([$1], [CXX], [
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- case $cc_basename in
-- f77* | f90* | f95*)
-+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
- *)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
-@@ -4172,9 +4432,11 @@ case $host_os in
- _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
- ;;
- esac
--AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
--_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
-- [How to pass a linker flag through the compiler])
-+
-+AC_CACHE_CHECK([for $compiler option to produce PIC],
-+ [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
-+ [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
-+_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
-
- #
- # Check to make sure the PIC flag actually works.
-@@ -4193,6 +4455,8 @@ fi
- _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
- [Additional compiler flags for building library objects])
-
-+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
-+ [How to pass a linker flag through the compiler])
- #
- # Check to make sure the static flag actually works.
- #
-@@ -4213,6 +4477,7 @@ _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
- m4_defun([_LT_LINKER_SHLIBS],
- [AC_REQUIRE([LT_PATH_LD])dnl
- AC_REQUIRE([LT_PATH_NM])dnl
-+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
- m4_require([_LT_FILEUTILS_DEFAULTS])dnl
- m4_require([_LT_DECL_EGREP])dnl
- m4_require([_LT_DECL_SED])dnl
-@@ -4221,6 +4486,7 @@ m4_require([_LT_TAG_COMPILER])dnl
- AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
- m4_if([$1], [CXX], [
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-+ _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
- case $host_os in
- aix[[4-9]]*)
- # If we're using GNU nm, then we don't want the "-C" option.
-@@ -4235,15 +4501,20 @@ m4_if([$1], [CXX], [
- ;;
- pw32*)
- _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
-- ;;
-+ ;;
- cygwin* | mingw* | cegcc*)
-- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
-- ;;
-+ case $cc_basename in
-+ cl*) ;;
-+ *)
-+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
-+ _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
-+ ;;
-+ esac
-+ ;;
- *)
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-- ;;
-+ ;;
- esac
-- _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
- ], [
- runpath_var=
- _LT_TAGVAR(allow_undefined_flag, $1)=
-@@ -4411,7 +4682,8 @@ _LT_EOF
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=no
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
-+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
-+ _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-@@ -4510,12 +4782,12 @@ _LT_EOF
- _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
- _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
-- _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
-+ _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
- if test "x$supports_anon_versioning" = xyes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
-- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
-+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
- fi
- ;;
- esac
-@@ -4529,8 +4801,8 @@ _LT_EOF
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
- wlarc=
- else
-- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
-@@ -4548,8 +4820,8 @@ _LT_EOF
-
- _LT_EOF
- elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
-@@ -4595,8 +4867,8 @@ _LT_EOF
-
- *)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
-@@ -4726,7 +4998,7 @@ _LT_EOF
- _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
- # Determine the default libpath from the value encoded in an
- # empty executable.
-- _LT_SYS_MODULE_PATH_AIX
-+ _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
-@@ -4737,7 +5009,7 @@ _LT_EOF
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
-- _LT_SYS_MODULE_PATH_AIX
-+ _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
-@@ -4781,20 +5053,63 @@ _LT_EOF
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
-- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-- # Tell ltmain to make .lib files, not .a files.
-- libext=lib
-- # Tell ltmain to make .dll files, not .so files.
-- shrext_cmds=".dll"
-- # FIXME: Setting linknames here is a bad hack.
-- _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
-- # The linker will automatically build a .lib file if we build a DLL.
-- _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-- # FIXME: Should let the user specify the lib program.
-- _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
-- _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
-- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-+ case $cc_basename in
-+ cl*)
-+ # Native MSVC
-+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-+ _LT_TAGVAR(always_export_symbols, $1)=yes
-+ _LT_TAGVAR(file_list_spec, $1)='@'
-+ # Tell ltmain to make .lib files, not .a files.
-+ libext=lib
-+ # Tell ltmain to make .dll files, not .so files.
-+ shrext_cmds=".dll"
-+ # FIXME: Setting linknames here is a bad hack.
-+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-+ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-+ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-+ else
-+ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-+ fi~
-+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-+ linknames='
-+ # The linker will not automatically build a static lib if we build a DLL.
-+ # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
-+ # Don't use ranlib
-+ _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
-+ _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
-+ lt_tool_outputfile="@TOOL_OUTPUT@"~
-+ case $lt_outputfile in
-+ *.exe|*.EXE) ;;
-+ *)
-+ lt_outputfile="$lt_outputfile.exe"
-+ lt_tool_outputfile="$lt_tool_outputfile.exe"
-+ ;;
-+ esac~
-+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-+ $RM "$lt_outputfile.manifest";
-+ fi'
-+ ;;
-+ *)
-+ # Assume MSVC wrapper
-+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-+ # Tell ltmain to make .lib files, not .a files.
-+ libext=lib
-+ # Tell ltmain to make .dll files, not .so files.
-+ shrext_cmds=".dll"
-+ # FIXME: Setting linknames here is a bad hack.
-+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
-+ # The linker will automatically build a .lib file if we build a DLL.
-+ _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-+ # FIXME: Should let the user specify the lib program.
-+ _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
-+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-+ ;;
-+ esac
- ;;
-
- darwin* | rhapsody*)
-@@ -4828,7 +5143,7 @@ _LT_EOF
-
- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | dragonfly*)
-- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-@@ -4836,7 +5151,7 @@ _LT_EOF
-
- hpux9*)
- if test "$GCC" = yes; then
-- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- fi
-@@ -4852,7 +5167,7 @@ _LT_EOF
-
- hpux10*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- fi
-@@ -4876,10 +5191,10 @@ _LT_EOF
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
-- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
-- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- else
-@@ -4926,16 +5241,31 @@ _LT_EOF
-
- irix5* | irix6* | nonstopux*)
- if test "$GCC" = yes; then
-- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- # Try to use the -exported_symbol ld option, if it does not
- # work, assume that -exports_file does not work either and
- # implicitly export all symbols.
-- save_LDFLAGS="$LDFLAGS"
-- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-- AC_LINK_IFELSE([AC_LANG_SOURCE([int foo(void) {}])],
-- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-- )
-- LDFLAGS="$save_LDFLAGS"
-+ # This should be the same for all languages, so no per-tag cache variable.
-+ AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
-+ [lt_cv_irix_exported_symbol],
-+ [save_LDFLAGS="$LDFLAGS"
-+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-+ AC_LINK_IFELSE(
-+ [AC_LANG_SOURCE(
-+ [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
-+ [C++], [[int foo (void) { return 0; }]],
-+ [Fortran 77], [[
-+ subroutine foo
-+ end]],
-+ [Fortran], [[
-+ subroutine foo
-+ end]])])],
-+ [lt_cv_irix_exported_symbol=yes],
-+ [lt_cv_irix_exported_symbol=no])
-+ LDFLAGS="$save_LDFLAGS"])
-+ if test "$lt_cv_irix_exported_symbol" = yes; then
-+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-+ fi
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-@@ -5020,7 +5350,7 @@ _LT_EOF
- osf4* | osf5*) # as osf3* with the addition of -msym flag
- if test "$GCC" = yes; then
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- else
- _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-@@ -5039,9 +5369,9 @@ _LT_EOF
- _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
- if test "$GCC" = yes; then
- wlarc='${wl}'
-- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-+ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- else
- case `$CC -V 2>&1` in
- *"Compilers 5.0"*)
-@@ -5313,8 +5643,6 @@ _LT_TAGDECL([], [inherit_rpath], [0],
- to runtime path list])
- _LT_TAGDECL([], [link_all_deplibs], [0],
- [Whether libtool must link a program against all its dependency libraries])
--_LT_TAGDECL([], [fix_srcfile_path], [1],
-- [Fix the shell variable $srcfile for the compiler])
- _LT_TAGDECL([], [always_export_symbols], [0],
- [Set to "yes" if exported symbols are required])
- _LT_TAGDECL([], [export_symbols_cmds], [2],
-@@ -5325,6 +5653,8 @@ _LT_TAGDECL([], [include_expsyms], [1],
- [Symbols that must always be exported])
- _LT_TAGDECL([], [prelink_cmds], [2],
- [Commands necessary for linking programs (against libraries) with templates])
-+_LT_TAGDECL([], [postlink_cmds], [2],
-+ [Commands necessary for finishing linking programs])
- _LT_TAGDECL([], [file_list_spec], [1],
- [Specify filename containing input files])
- dnl FIXME: Not yet implemented
-@@ -5426,6 +5756,7 @@ CC="$lt_save_CC"
- m4_defun([_LT_LANG_CXX_CONFIG],
- [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
- m4_require([_LT_DECL_EGREP])dnl
-+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
- if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
- ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
- (test "X$CXX" != "Xg++"))) ; then
-@@ -5487,6 +5818,7 @@ if test "$_lt_caught_CXX_error" != yes; then
-
- # Allow CC to be a program name with arguments.
- lt_save_CC=$CC
-+ lt_save_CFLAGS=$CFLAGS
- lt_save_LD=$LD
- lt_save_GCC=$GCC
- GCC=$GXX
-@@ -5504,6 +5836,7 @@ if test "$_lt_caught_CXX_error" != yes; then
- fi
- test -z "${LDCXX+set}" || LD=$LDCXX
- CC=${CXX-"c++"}
-+ CFLAGS=$CXXFLAGS
- compiler=$CC
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
-@@ -5667,7 +6000,7 @@ if test "$_lt_caught_CXX_error" != yes; then
- _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
- # Determine the default libpath from the value encoded in an empty
- # executable.
-- _LT_SYS_MODULE_PATH_AIX
-+ _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-@@ -5679,7 +6012,7 @@ if test "$_lt_caught_CXX_error" != yes; then
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
-- _LT_SYS_MODULE_PATH_AIX
-+ _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
-@@ -5721,29 +6054,75 @@ if test "$_lt_caught_CXX_error" != yes; then
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
-- # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-- # as there is no search path for DLLs.
-- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
-- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-- _LT_TAGVAR(always_export_symbols, $1)=no
-- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
--
-- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-- # If the export-symbols file already is a .def file (1st line
-- # is EXPORTS), use it as is; otherwise, prepend...
-- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-- cp $export_symbols $output_objdir/$soname.def;
-- else
-- echo EXPORTS > $output_objdir/$soname.def;
-- cat $export_symbols >> $output_objdir/$soname.def;
-- fi~
-- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-- else
-- _LT_TAGVAR(ld_shlibs, $1)=no
-- fi
-- ;;
-+ case $GXX,$cc_basename in
-+ ,cl* | no,cl*)
-+ # Native MSVC
-+ # hardcode_libdir_flag_spec is actually meaningless, as there is
-+ # no search path for DLLs.
-+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-+ _LT_TAGVAR(always_export_symbols, $1)=yes
-+ _LT_TAGVAR(file_list_spec, $1)='@'
-+ # Tell ltmain to make .lib files, not .a files.
-+ libext=lib
-+ # Tell ltmain to make .dll files, not .so files.
-+ shrext_cmds=".dll"
-+ # FIXME: Setting linknames here is a bad hack.
-+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-+ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-+ $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-+ else
-+ $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-+ fi~
-+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-+ linknames='
-+ # The linker will not automatically build a static lib if we build a DLL.
-+ # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-+ # Don't use ranlib
-+ _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
-+ _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
-+ lt_tool_outputfile="@TOOL_OUTPUT@"~
-+ case $lt_outputfile in
-+ *.exe|*.EXE) ;;
-+ *)
-+ lt_outputfile="$lt_outputfile.exe"
-+ lt_tool_outputfile="$lt_tool_outputfile.exe"
-+ ;;
-+ esac~
-+ func_to_tool_file "$lt_outputfile"~
-+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-+ $RM "$lt_outputfile.manifest";
-+ fi'
-+ ;;
-+ *)
-+ # g++
-+ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-+ # as there is no search path for DLLs.
-+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
-+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-+ _LT_TAGVAR(always_export_symbols, $1)=no
-+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-+
-+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-+ # If the export-symbols file already is a .def file (1st line
-+ # is EXPORTS), use it as is; otherwise, prepend...
-+ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-+ cp $export_symbols $output_objdir/$soname.def;
-+ else
-+ echo EXPORTS > $output_objdir/$soname.def;
-+ cat $export_symbols >> $output_objdir/$soname.def;
-+ fi~
-+ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-+ else
-+ _LT_TAGVAR(ld_shlibs, $1)=no
-+ fi
-+ ;;
-+ esac
-+ ;;
- darwin* | rhapsody*)
- _LT_DARWIN_LINKER_FEATURES($1)
- ;;
-@@ -5818,7 +6197,7 @@ if test "$_lt_caught_CXX_error" != yes; then
- ;;
- *)
- if test "$GXX" = yes; then
-- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
-@@ -5889,10 +6268,10 @@ if test "$_lt_caught_CXX_error" != yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
-- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
-- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- fi
-@@ -5933,9 +6312,9 @@ if test "$_lt_caught_CXX_error" != yes; then
- *)
- if test "$GXX" = yes; then
- if test "$with_gnu_ld" = no; then
-- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
-- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
-+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
- fi
- fi
- _LT_TAGVAR(link_all_deplibs, $1)=yes
-@@ -6005,20 +6384,20 @@ if test "$_lt_caught_CXX_error" != yes; then
- _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
-+ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
- _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
-+ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
- $RANLIB $oldlib'
- _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
-+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
- ;;
- *) # Version 6 and above use weak symbols
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-@@ -6213,7 +6592,7 @@ if test "$_lt_caught_CXX_error" != yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- ;;
- *)
-- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- ;;
- esac
-
-@@ -6259,7 +6638,7 @@ if test "$_lt_caught_CXX_error" != yes; then
-
- solaris*)
- case $cc_basename in
-- CC*)
-+ CC* | sunCC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
- _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-@@ -6300,9 +6679,9 @@ if test "$_lt_caught_CXX_error" != yes; then
- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
- _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
- if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-- $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-+ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
-@@ -6431,6 +6810,7 @@ if test "$_lt_caught_CXX_error" != yes; then
- fi # test -n "$compiler"
-
- CC=$lt_save_CC
-+ CFLAGS=$lt_save_CFLAGS
- LDCXX=$LD
- LD=$lt_save_LD
- GCC=$lt_save_GCC
-@@ -6445,6 +6825,29 @@ AC_LANG_POP
- ])# _LT_LANG_CXX_CONFIG
-
-
-+# _LT_FUNC_STRIPNAME_CNF
-+# ----------------------
-+# func_stripname_cnf prefix suffix name
-+# strip PREFIX and SUFFIX off of NAME.
-+# PREFIX and SUFFIX must not contain globbing or regex special
-+# characters, hashes, percent signs, but SUFFIX may contain a leading
-+# dot (in which case that matches only a dot).
-+#
-+# This function is identical to the (non-XSI) version of func_stripname,
-+# except this one can be used by m4 code that may be executed by configure,
-+# rather than the libtool script.
-+m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
-+AC_REQUIRE([_LT_DECL_SED])
-+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
-+func_stripname_cnf ()
-+{
-+ case ${2} in
-+ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
-+ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
-+ esac
-+} # func_stripname_cnf
-+])# _LT_FUNC_STRIPNAME_CNF
-+
- # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
- # ---------------------------------
- # Figure out "hidden" library dependencies from verbose
-@@ -6453,6 +6856,7 @@ AC_LANG_POP
- # objects, libraries and library flags.
- m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
- [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-+AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
- # Dependencies to place before and after the object being linked:
- _LT_TAGVAR(predep_objects, $1)=
- _LT_TAGVAR(postdep_objects, $1)=
-@@ -6503,6 +6907,13 @@ public class foo {
- };
- _LT_EOF
- ])
-+
-+_lt_libdeps_save_CFLAGS=$CFLAGS
-+case "$CC $CFLAGS " in #(
-+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
-+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
-+esac
-+
- dnl Parse the compiler output and extract the necessary
- dnl objects, libraries and library flags.
- if AC_TRY_EVAL(ac_compile); then
-@@ -6514,7 +6925,7 @@ if AC_TRY_EVAL(ac_compile); then
- pre_test_object_deps_done=no
-
- for p in `eval "$output_verbose_link_cmd"`; do
-- case $p in
-+ case ${prev}${p} in
-
- -L* | -R* | -l*)
- # Some compilers place space between "-{L,R}" and the path.
-@@ -6523,13 +6934,22 @@ if AC_TRY_EVAL(ac_compile); then
- test $p = "-R"; then
- prev=$p
- continue
-- else
-- prev=
- fi
-
-+ # Expand the sysroot to ease extracting the directories later.
-+ if test -z "$prev"; then
-+ case $p in
-+ -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
-+ -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
-+ -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
-+ esac
-+ fi
-+ case $p in
-+ =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
-+ esac
- if test "$pre_test_object_deps_done" = no; then
-- case $p in
-- -L* | -R*)
-+ case ${prev} in
-+ -L | -R)
- # Internal compiler library paths should come after those
- # provided the user. The postdeps already come after the
- # user supplied libs so there is no need to process them.
-@@ -6549,8 +6969,10 @@ if AC_TRY_EVAL(ac_compile); then
- _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
- fi
- fi
-+ prev=
- ;;
-
-+ *.lto.$objext) ;; # Ignore GCC LTO objects
- *.$objext)
- # This assumes that the test object file only shows up
- # once in the compiler output.
-@@ -6586,6 +7008,7 @@ else
- fi
-
- $RM -f confest.$objext
-+CFLAGS=$_lt_libdeps_save_CFLAGS
-
- # PORTME: override above test on systems where it is broken
- m4_if([$1], [CXX],
-@@ -6622,7 +7045,7 @@ linux*)
-
- solaris*)
- case $cc_basename in
-- CC*)
-+ CC* | sunCC*)
- # The more standards-conforming stlport4 library is
- # incompatible with the Cstd library. Avoid specifying
- # it if it's in CXXFLAGS. Ignore libCrun as
-@@ -6735,7 +7158,9 @@ if test "$_lt_disable_F77" != yes; then
- # Allow CC to be a program name with arguments.
- lt_save_CC="$CC"
- lt_save_GCC=$GCC
-+ lt_save_CFLAGS=$CFLAGS
- CC=${F77-"f77"}
-+ CFLAGS=$FFLAGS
- compiler=$CC
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
-@@ -6789,6 +7214,7 @@ if test "$_lt_disable_F77" != yes; then
-
- GCC=$lt_save_GCC
- CC="$lt_save_CC"
-+ CFLAGS="$lt_save_CFLAGS"
- fi # test "$_lt_disable_F77" != yes
-
- AC_LANG_POP
-@@ -6865,7 +7291,9 @@ if test "$_lt_disable_FC" != yes; then
- # Allow CC to be a program name with arguments.
- lt_save_CC="$CC"
- lt_save_GCC=$GCC
-+ lt_save_CFLAGS=$CFLAGS
- CC=${FC-"f95"}
-+ CFLAGS=$FCFLAGS
- compiler=$CC
- GCC=$ac_cv_fc_compiler_gnu
-
-@@ -6921,7 +7349,8 @@ if test "$_lt_disable_FC" != yes; then
- fi # test -n "$compiler"
-
- GCC=$lt_save_GCC
-- CC="$lt_save_CC"
-+ CC=$lt_save_CC
-+ CFLAGS=$lt_save_CFLAGS
- fi # test "$_lt_disable_FC" != yes
-
- AC_LANG_POP
-@@ -6958,10 +7387,12 @@ _LT_COMPILER_BOILERPLATE
- _LT_LINKER_BOILERPLATE
-
- # Allow CC to be a program name with arguments.
--lt_save_CC="$CC"
-+lt_save_CC=$CC
-+lt_save_CFLAGS=$CFLAGS
- lt_save_GCC=$GCC
- GCC=yes
- CC=${GCJ-"gcj"}
-+CFLAGS=$GCJFLAGS
- compiler=$CC
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_TAGVAR(LD, $1)="$LD"
-@@ -6992,7 +7423,8 @@ fi
- AC_LANG_RESTORE
-
- GCC=$lt_save_GCC
--CC="$lt_save_CC"
-+CC=$lt_save_CC
-+CFLAGS=$lt_save_CFLAGS
- ])# _LT_LANG_GCJ_CONFIG
-
-
-@@ -7027,9 +7459,11 @@ _LT_LINKER_BOILERPLATE
-
- # Allow CC to be a program name with arguments.
- lt_save_CC="$CC"
-+lt_save_CFLAGS=$CFLAGS
- lt_save_GCC=$GCC
- GCC=
- CC=${RC-"windres"}
-+CFLAGS=
- compiler=$CC
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
-@@ -7042,7 +7476,8 @@ fi
-
- GCC=$lt_save_GCC
- AC_LANG_RESTORE
--CC="$lt_save_CC"
-+CC=$lt_save_CC
-+CFLAGS=$lt_save_CFLAGS
- ])# _LT_LANG_RC_CONFIG
-
-
-@@ -7101,6 +7536,15 @@ _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
- AC_SUBST([OBJDUMP])
- ])
-
-+# _LT_DECL_DLLTOOL
-+# ----------------
-+# Ensure DLLTOOL variable is set.
-+m4_defun([_LT_DECL_DLLTOOL],
-+[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-+test -z "$DLLTOOL" && DLLTOOL=dlltool
-+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
-+AC_SUBST([DLLTOOL])
-+])
-
- # _LT_DECL_SED
- # ------------
-@@ -7194,8 +7638,8 @@ m4_defun([_LT_CHECK_SHELL_FEATURES],
- # Try some XSI features
- xsi_shell=no
- ( _lt_dummy="a/b/c"
-- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
-- = c,a/b,, \
-+ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
-+ = c,a/b,b/c, \
- && eval 'test $(( 1 + 1 )) -eq 2 \
- && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
- && xsi_shell=yes
-@@ -7234,206 +7678,162 @@ _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
- ])# _LT_CHECK_SHELL_FEATURES
-
-
--# _LT_PROG_XSI_SHELLFNS
--# ---------------------
--# Bourne and XSI compatible variants of some useful shell functions.
--m4_defun([_LT_PROG_XSI_SHELLFNS],
--[case $xsi_shell in
-- yes)
-- cat << \_LT_EOF >> "$cfgfile"
--
--# func_dirname file append nondir_replacement
--# Compute the dirname of FILE. If nonempty, add APPEND to the result,
--# otherwise set result to NONDIR_REPLACEMENT.
--func_dirname ()
--{
-- case ${1} in
-- */*) func_dirname_result="${1%/*}${2}" ;;
-- * ) func_dirname_result="${3}" ;;
-- esac
--}
--
--# func_basename file
--func_basename ()
--{
-- func_basename_result="${1##*/}"
--}
--
--# func_dirname_and_basename file append nondir_replacement
--# perform func_basename and func_dirname in a single function
--# call:
--# dirname: Compute the dirname of FILE. If nonempty,
--# add APPEND to the result, otherwise set result
--# to NONDIR_REPLACEMENT.
--# value returned in "$func_dirname_result"
--# basename: Compute filename of FILE.
--# value retuned in "$func_basename_result"
--# Implementation must be kept synchronized with func_dirname
--# and func_basename. For efficiency, we do not delegate to
--# those functions but instead duplicate the functionality here.
--func_dirname_and_basename ()
--{
-- case ${1} in
-- */*) func_dirname_result="${1%/*}${2}" ;;
-- * ) func_dirname_result="${3}" ;;
-- esac
-- func_basename_result="${1##*/}"
--}
--
--# func_stripname prefix suffix name
--# strip PREFIX and SUFFIX off of NAME.
--# PREFIX and SUFFIX must not contain globbing or regex special
--# characters, hashes, percent signs, but SUFFIX may contain a leading
--# dot (in which case that matches only a dot).
--func_stripname ()
--{
-- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-- # positional parameters, so assign one to ordinary parameter first.
-- func_stripname_result=${3}
-- func_stripname_result=${func_stripname_result#"${1}"}
-- func_stripname_result=${func_stripname_result%"${2}"}
--}
--
--# func_opt_split
--func_opt_split ()
--{
-- func_opt_split_opt=${1%%=*}
-- func_opt_split_arg=${1#*=}
--}
--
--# func_lo2o object
--func_lo2o ()
--{
-- case ${1} in
-- *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-- *) func_lo2o_result=${1} ;;
-- esac
--}
--
--# func_xform libobj-or-source
--func_xform ()
--{
-- func_xform_result=${1%.*}.lo
--}
--
--# func_arith arithmetic-term...
--func_arith ()
--{
-- func_arith_result=$(( $[*] ))
--}
--
--# func_len string
--# STRING may not start with a hyphen.
--func_len ()
--{
-- func_len_result=${#1}
--}
-+# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
-+# ------------------------------------------------------
-+# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
-+# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
-+m4_defun([_LT_PROG_FUNCTION_REPLACE],
-+[dnl {
-+sed -e '/^$1 ()$/,/^} # $1 /c\
-+$1 ()\
-+{\
-+m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1])
-+} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
-+ && mv -f "$cfgfile.tmp" "$cfgfile" \
-+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+test 0 -eq $? || _lt_function_replace_fail=:
-+])
-
--_LT_EOF
-- ;;
-- *) # Bourne compatible functions.
-- cat << \_LT_EOF >> "$cfgfile"
-
--# func_dirname file append nondir_replacement
--# Compute the dirname of FILE. If nonempty, add APPEND to the result,
--# otherwise set result to NONDIR_REPLACEMENT.
--func_dirname ()
--{
-- # Extract subdirectory from the argument.
-- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
-- if test "X$func_dirname_result" = "X${1}"; then
-- func_dirname_result="${3}"
-- else
-- func_dirname_result="$func_dirname_result${2}"
-- fi
--}
-+# _LT_PROG_REPLACE_SHELLFNS
-+# -------------------------
-+# Replace existing portable implementations of several shell functions with
-+# equivalent extended shell implementations where those features are available..
-+m4_defun([_LT_PROG_REPLACE_SHELLFNS],
-+[if test x"$xsi_shell" = xyes; then
-+ _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
-+ case ${1} in
-+ */*) func_dirname_result="${1%/*}${2}" ;;
-+ * ) func_dirname_result="${3}" ;;
-+ esac])
-+
-+ _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
-+ func_basename_result="${1##*/}"])
-+
-+ _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
-+ case ${1} in
-+ */*) func_dirname_result="${1%/*}${2}" ;;
-+ * ) func_dirname_result="${3}" ;;
-+ esac
-+ func_basename_result="${1##*/}"])
-
--# func_basename file
--func_basename ()
--{
-- func_basename_result=`$ECHO "${1}" | $SED "$basename"`
--}
-+ _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
-+ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-+ # positional parameters, so assign one to ordinary parameter first.
-+ func_stripname_result=${3}
-+ func_stripname_result=${func_stripname_result#"${1}"}
-+ func_stripname_result=${func_stripname_result%"${2}"}])
-
--dnl func_dirname_and_basename
--dnl A portable version of this function is already defined in general.m4sh
--dnl so there is no need for it here.
-+ _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
-+ func_split_long_opt_name=${1%%=*}
-+ func_split_long_opt_arg=${1#*=}])
-
--# func_stripname prefix suffix name
--# strip PREFIX and SUFFIX off of NAME.
--# PREFIX and SUFFIX must not contain globbing or regex special
--# characters, hashes, percent signs, but SUFFIX may contain a leading
--# dot (in which case that matches only a dot).
--# func_strip_suffix prefix name
--func_stripname ()
--{
-- case ${2} in
-- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
-- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
-- esac
--}
-+ _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
-+ func_split_short_opt_arg=${1#??}
-+ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
-
--# sed scripts:
--my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q'
--my_sed_long_arg='1s/^-[[^=]]*=//'
-+ _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
-+ case ${1} in
-+ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-+ *) func_lo2o_result=${1} ;;
-+ esac])
-
--# func_opt_split
--func_opt_split ()
--{
-- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
-- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
--}
-+ _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo])
-
--# func_lo2o object
--func_lo2o ()
--{
-- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
--}
-+ _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))])
-
--# func_xform libobj-or-source
--func_xform ()
--{
-- func_xform_result=`$ECHO "${1}" | $SED 's/\.[[^.]]*$/.lo/'`
--}
-+ _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}])
-+fi
-
--# func_arith arithmetic-term...
--func_arith ()
--{
-- func_arith_result=`expr "$[@]"`
--}
-+if test x"$lt_shell_append" = xyes; then
-+ _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"])
-
--# func_len string
--# STRING may not start with a hyphen.
--func_len ()
--{
-- func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len`
--}
-+ _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
-+ func_quote_for_eval "${2}"
-+dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
-+ eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
-
--_LT_EOF
--esac
-+ # Save a `func_append' function call where possible by direct use of '+='
-+ sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
-+ && mv -f "$cfgfile.tmp" "$cfgfile" \
-+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+ test 0 -eq $? || _lt_function_replace_fail=:
-+else
-+ # Save a `func_append' function call even when '+=' is not available
-+ sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
-+ && mv -f "$cfgfile.tmp" "$cfgfile" \
-+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+ test 0 -eq $? || _lt_function_replace_fail=:
-+fi
-
--case $lt_shell_append in
-- yes)
-- cat << \_LT_EOF >> "$cfgfile"
-+if test x"$_lt_function_replace_fail" = x":"; then
-+ AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
-+fi
-+])
-
--# func_append var value
--# Append VALUE to the end of shell variable VAR.
--func_append ()
--{
-- eval "$[1]+=\$[2]"
--}
--_LT_EOF
-+# _LT_PATH_CONVERSION_FUNCTIONS
-+# -----------------------------
-+# Determine which file name conversion functions should be used by
-+# func_to_host_file (and, implicitly, by func_to_host_path). These are needed
-+# for certain cross-compile configurations and native mingw.
-+m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
-+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-+AC_MSG_CHECKING([how to convert $build file names to $host format])
-+AC_CACHE_VAL(lt_cv_to_host_file_cmd,
-+[case $host in
-+ *-*-mingw* )
-+ case $build in
-+ *-*-mingw* ) # actually msys
-+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
-+ ;;
-+ *-*-cygwin* )
-+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
-+ ;;
-+ * ) # otherwise, assume *nix
-+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
-+ ;;
-+ esac
- ;;
-- *)
-- cat << \_LT_EOF >> "$cfgfile"
--
--# func_append var value
--# Append VALUE to the end of shell variable VAR.
--func_append ()
--{
-- eval "$[1]=\$$[1]\$[2]"
--}
--
--_LT_EOF
-+ *-*-cygwin* )
-+ case $build in
-+ *-*-mingw* ) # actually msys
-+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
-+ ;;
-+ *-*-cygwin* )
-+ lt_cv_to_host_file_cmd=func_convert_file_noop
-+ ;;
-+ * ) # otherwise, assume *nix
-+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
-+ ;;
-+ esac
- ;;
-- esac
-+ * ) # unhandled hosts (and "normal" native builds)
-+ lt_cv_to_host_file_cmd=func_convert_file_noop
-+ ;;
-+esac
-+])
-+to_host_file_cmd=$lt_cv_to_host_file_cmd
-+AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
-+_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
-+ [0], [convert $build file names to $host format])dnl
-+
-+AC_MSG_CHECKING([how to convert $build file names to toolchain format])
-+AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
-+[#assume ordinary cross tools, or native build.
-+lt_cv_to_tool_file_cmd=func_convert_file_noop
-+case $host in
-+ *-*-mingw* )
-+ case $build in
-+ *-*-mingw* ) # actually msys
-+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
-+ ;;
-+ esac
-+ ;;
-+esac
- ])
-+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-+AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
-+_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
-+ [0], [convert $build files to toolchain format])dnl
-+])# _LT_PATH_CONVERSION_FUNCTIONS
-diff --git a/ltmain.sh b/ltmain.sh
-index 9503ec85d7..70e856e065 100644
---- a/ltmain.sh
-+++ b/ltmain.sh
-@@ -1,10 +1,9 @@
--# Generated from ltmain.m4sh.
-
--# libtool (GNU libtool 1.3134 2009-11-29) 2.2.7a
-+# libtool (GNU libtool) 2.4
- # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-
- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
--# 2007, 2008, 2009 Free Software Foundation, Inc.
-+# 2007, 2008, 2009, 2010 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.
-
-@@ -38,7 +37,6 @@
- # -n, --dry-run display commands without modifying any files
- # --features display basic configuration information and exit
- # --mode=MODE use operation mode MODE
--# --no-finish let install mode avoid finish commands
- # --preserve-dup-deps don't remove duplicate dependency libraries
- # --quiet, --silent don't print informational messages
- # --no-quiet, --no-silent
-@@ -71,17 +69,19 @@
- # compiler: $LTCC
- # compiler flags: $LTCFLAGS
- # linker: $LD (gnu? $with_gnu_ld)
--# $progname: (GNU libtool 1.3134 2009-11-29) 2.2.7a
-+# $progname: (GNU libtool) 2.4
- # automake: $automake_version
- # autoconf: $autoconf_version
- #
- # Report bugs to <bug-libtool@gnu.org>.
-+# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
-+# General help using GNU software: <http://www.gnu.org/gethelp/>.
-
- PROGRAM=libtool
- PACKAGE=libtool
--VERSION=2.2.7a
--TIMESTAMP=" 1.3134 2009-11-29"
--package_revision=1.3134
-+VERSION=2.4
-+TIMESTAMP=""
-+package_revision=1.3293
-
- # Be Bourne compatible
- if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-@@ -106,9 +106,6 @@ _LTECHO_EOF'
- }
-
- # NLS nuisances: We save the old values to restore during execute mode.
--# Only set LANG and LC_ALL to C if already set.
--# These must not be set unconditionally because not all systems understand
--# e.g. LANG=C (notably SCO).
- lt_user_locale=
- lt_safe_locale=
- for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
-@@ -121,15 +118,13 @@ do
- lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
- fi"
- done
-+LC_ALL=C
-+LANGUAGE=C
-+export LANGUAGE LC_ALL
-
- $lt_unset CDPATH
-
-
--
--
--
--
--
- # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
- # is ksh but when the shell is invoked as "sh" and the current value of
- # the _XPG environment variable is not equal to 1 (one), the special
-@@ -140,7 +135,7 @@ progpath="$0"
-
-
- : ${CP="cp -f"}
--: ${ECHO=$as_echo}
-+test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
- : ${EGREP="/bin/grep -E"}
- : ${FGREP="/bin/grep -F"}
- : ${GREP="/bin/grep"}
-@@ -149,7 +144,7 @@ progpath="$0"
- : ${MKDIR="mkdir"}
- : ${MV="mv -f"}
- : ${RM="rm -f"}
--: ${SED="/mount/endor/wildenhu/local-x86_64/bin/sed"}
-+: ${SED="/bin/sed"}
- : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
- : ${Xsed="$SED -e 1s/^X//"}
-
-@@ -169,6 +164,27 @@ IFS=" $lt_nl"
- dirname="s,/[^/]*$,,"
- basename="s,^.*/,,"
-
-+# func_dirname file append nondir_replacement
-+# Compute the dirname of FILE. If nonempty, add APPEND to the result,
-+# otherwise set result to NONDIR_REPLACEMENT.
-+func_dirname ()
-+{
-+ func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
-+ if test "X$func_dirname_result" = "X${1}"; then
-+ func_dirname_result="${3}"
-+ else
-+ func_dirname_result="$func_dirname_result${2}"
-+ fi
-+} # func_dirname may be replaced by extended shell implementation
-+
-+
-+# func_basename file
-+func_basename ()
-+{
-+ func_basename_result=`$ECHO "${1}" | $SED "$basename"`
-+} # func_basename may be replaced by extended shell implementation
-+
-+
- # func_dirname_and_basename file append nondir_replacement
- # perform func_basename and func_dirname in a single function
- # call:
-@@ -183,17 +199,31 @@ basename="s,^.*/,,"
- # those functions but instead duplicate the functionality here.
- func_dirname_and_basename ()
- {
-- # Extract subdirectory from the argument.
-- func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
-- if test "X$func_dirname_result" = "X${1}"; then
-- func_dirname_result="${3}"
-- else
-- func_dirname_result="$func_dirname_result${2}"
-- fi
-- func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
--}
-+ # Extract subdirectory from the argument.
-+ func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
-+ if test "X$func_dirname_result" = "X${1}"; then
-+ func_dirname_result="${3}"
-+ else
-+ func_dirname_result="$func_dirname_result${2}"
-+ fi
-+ func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
-+} # func_dirname_and_basename may be replaced by extended shell implementation
-+
-+
-+# func_stripname prefix suffix name
-+# strip PREFIX and SUFFIX off of NAME.
-+# PREFIX and SUFFIX must not contain globbing or regex special
-+# characters, hashes, percent signs, but SUFFIX may contain a leading
-+# dot (in which case that matches only a dot).
-+# func_strip_suffix prefix name
-+func_stripname ()
-+{
-+ case ${2} in
-+ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
-+ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
-+ esac
-+} # func_stripname may be replaced by extended shell implementation
-
--# Generated shell functions inserted here.
-
- # These SED scripts presuppose an absolute path with a trailing slash.
- pathcar='s,^/\([^/]*\).*$,\1,'
-@@ -376,6 +406,15 @@ sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
- # Same as above, but do not quote variable references.
- double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-+# Sed substitution that turns a string into a regex matching for the
-+# string literally.
-+sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
-+
-+# Sed substitution that converts a w32 file name or path
-+# which contains forward slashes, into one that contains
-+# (escaped) backslashes. A very naive implementation.
-+lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-+
- # Re-`\' parameter expansions in output of double_quote_subst that were
- # `\'-ed in input to the same. If an odd number of `\' preceded a '$'
- # in input to double_quote_subst, that '$' was protected from expansion.
-@@ -404,7 +443,7 @@ opt_warning=:
- # name if it has been set yet.
- func_echo ()
- {
-- $ECHO "$progname${mode+: }$mode: $*"
-+ $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
- }
-
- # func_verbose arg...
-@@ -430,14 +469,14 @@ func_echo_all ()
- # Echo program name prefixed message to standard error.
- func_error ()
- {
-- $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
-+ $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
- }
-
- # func_warning arg...
- # Echo program name prefixed warning message to standard error.
- func_warning ()
- {
-- $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
-+ $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
-
- # bash bug again:
- :
-@@ -656,19 +695,35 @@ func_show_eval_locale ()
- fi
- }
-
--
--
-+# func_tr_sh
-+# Turn $1 into a string suitable for a shell variable name.
-+# Result is stored in $func_tr_sh_result. All characters
-+# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
-+# if $1 begins with a digit, a '_' is prepended as well.
-+func_tr_sh ()
-+{
-+ case $1 in
-+ [0-9]* | *[!a-zA-Z0-9_]*)
-+ func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
-+ ;;
-+ * )
-+ func_tr_sh_result=$1
-+ ;;
-+ esac
-+}
-
-
- # func_version
- # Echo version message to standard output and exit.
- func_version ()
- {
-+ $opt_debug
-+
- $SED -n '/(C)/!b go
- :more
- /\./!{
- N
-- s/\n# //
-+ s/\n# / /
- b more
- }
- :go
-@@ -685,7 +740,9 @@ func_version ()
- # Echo short help message to standard output and exit.
- func_usage ()
- {
-- $SED -n '/^# Usage:/,/^# *-h/ {
-+ $opt_debug
-+
-+ $SED -n '/^# Usage:/,/^# *.*--help/ {
- s/^# //
- s/^# *$//
- s/\$progname/'$progname'/
-@@ -701,7 +758,10 @@ func_usage ()
- # unless 'noexit' is passed as argument.
- func_help ()
- {
-+ $opt_debug
-+
- $SED -n '/^# Usage:/,/# Report bugs to/ {
-+ :print
- s/^# //
- s/^# *$//
- s*\$progname*'$progname'*
-@@ -714,7 +774,11 @@ func_help ()
- s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
- s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
- p
-- }' < "$progpath"
-+ d
-+ }
-+ /^# .* home page:/b print
-+ /^# General help using/b print
-+ ' < "$progpath"
- ret=$?
- if test -z "$1"; then
- exit $ret
-@@ -726,12 +790,39 @@ func_help ()
- # exit_cmd.
- func_missing_arg ()
- {
-- func_error "missing argument for $1"
-+ $opt_debug
-+
-+ func_error "missing argument for $1."
- exit_cmd=exit
- }
-
--exit_cmd=:
-
-+# func_split_short_opt shortopt
-+# Set func_split_short_opt_name and func_split_short_opt_arg shell
-+# variables after splitting SHORTOPT after the 2nd character.
-+func_split_short_opt ()
-+{
-+ my_sed_short_opt='1s/^\(..\).*$/\1/;q'
-+ my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
-+
-+ func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
-+ func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
-+} # func_split_short_opt may be replaced by extended shell implementation
-+
-+
-+# func_split_long_opt longopt
-+# Set func_split_long_opt_name and func_split_long_opt_arg shell
-+# variables after splitting LONGOPT at the `=' sign.
-+func_split_long_opt ()
-+{
-+ my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
-+ my_sed_long_arg='1s/^--[^=]*=//'
-+
-+ func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
-+ func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
-+} # func_split_long_opt may be replaced by extended shell implementation
-+
-+exit_cmd=:
-
-
-
-@@ -741,26 +832,64 @@ magic="%%%MAGIC variable%%%"
- magic_exe="%%%MAGIC EXE variable%%%"
-
- # Global variables.
--# $mode is unset
- nonopt=
--execute_dlfiles=
- preserve_args=
- lo2o="s/\\.lo\$/.${objext}/"
- o2lo="s/\\.${objext}\$/.lo/"
- extracted_archives=
- extracted_serial=0
-
--opt_dry_run=false
--opt_finish=:
--opt_duplicate_deps=false
--opt_silent=false
--opt_debug=:
--
- # If this variable is set in any of the actions, the command in it
- # will be execed at the end. This prevents here-documents from being
- # left over by shells.
- exec_cmd=
-
-+# func_append var value
-+# Append VALUE to the end of shell variable VAR.
-+func_append ()
-+{
-+ eval "${1}=\$${1}\${2}"
-+} # func_append may be replaced by extended shell implementation
-+
-+# func_append_quoted var value
-+# Quote VALUE and append to the end of shell variable VAR, separated
-+# by a space.
-+func_append_quoted ()
-+{
-+ func_quote_for_eval "${2}"
-+ eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
-+} # func_append_quoted may be replaced by extended shell implementation
-+
-+
-+# func_arith arithmetic-term...
-+func_arith ()
-+{
-+ func_arith_result=`expr "${@}"`
-+} # func_arith may be replaced by extended shell implementation
-+
-+
-+# func_len string
-+# STRING may not start with a hyphen.
-+func_len ()
-+{
-+ func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
-+} # func_len may be replaced by extended shell implementation
-+
-+
-+# func_lo2o object
-+func_lo2o ()
-+{
-+ func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
-+} # func_lo2o may be replaced by extended shell implementation
-+
-+
-+# func_xform libobj-or-source
-+func_xform ()
-+{
-+ func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
-+} # func_xform may be replaced by extended shell implementation
-+
-+
- # func_fatal_configuration arg...
- # Echo program name prefixed message to standard error, followed by
- # a configuration failure hint, and exit.
-@@ -850,130 +979,204 @@ func_enable_tag ()
- esac
- }
-
--# Parse options once, thoroughly. This comes as soon as possible in
--# the script to make things like `libtool --version' happen quickly.
-+# func_check_version_match
-+# Ensure that we are using m4 macros, and libtool script from the same
-+# release of libtool.
-+func_check_version_match ()
- {
-+ if test "$package_revision" != "$macro_revision"; then
-+ if test "$VERSION" != "$macro_version"; then
-+ if test -z "$macro_version"; then
-+ cat >&2 <<_LT_EOF
-+$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
-+$progname: definition of this LT_INIT comes from an older release.
-+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-+$progname: and run autoconf again.
-+_LT_EOF
-+ else
-+ cat >&2 <<_LT_EOF
-+$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
-+$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
-+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-+$progname: and run autoconf again.
-+_LT_EOF
-+ fi
-+ else
-+ cat >&2 <<_LT_EOF
-+$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
-+$progname: but the definition of this LT_INIT comes from revision $macro_revision.
-+$progname: You should recreate aclocal.m4 with macros from revision $package_revision
-+$progname: of $PACKAGE $VERSION and run autoconf again.
-+_LT_EOF
-+ fi
-
-- # Shorthand for --mode=foo, only valid as the first argument
-- case $1 in
-- clean|clea|cle|cl)
-- shift; set dummy --mode clean ${1+"$@"}; shift
-- ;;
-- compile|compil|compi|comp|com|co|c)
-- shift; set dummy --mode compile ${1+"$@"}; shift
-- ;;
-- execute|execut|execu|exec|exe|ex|e)
-- shift; set dummy --mode execute ${1+"$@"}; shift
-- ;;
-- finish|finis|fini|fin|fi|f)
-- shift; set dummy --mode finish ${1+"$@"}; shift
-- ;;
-- install|instal|insta|inst|ins|in|i)
-- shift; set dummy --mode install ${1+"$@"}; shift
-- ;;
-- link|lin|li|l)
-- shift; set dummy --mode link ${1+"$@"}; shift
-- ;;
-- uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
-- shift; set dummy --mode uninstall ${1+"$@"}; shift
-- ;;
-- esac
-+ exit $EXIT_MISMATCH
-+ fi
-+}
-+
-+
-+# Shorthand for --mode=foo, only valid as the first argument
-+case $1 in
-+clean|clea|cle|cl)
-+ shift; set dummy --mode clean ${1+"$@"}; shift
-+ ;;
-+compile|compil|compi|comp|com|co|c)
-+ shift; set dummy --mode compile ${1+"$@"}; shift
-+ ;;
-+execute|execut|execu|exec|exe|ex|e)
-+ shift; set dummy --mode execute ${1+"$@"}; shift
-+ ;;
-+finish|finis|fini|fin|fi|f)
-+ shift; set dummy --mode finish ${1+"$@"}; shift
-+ ;;
-+install|instal|insta|inst|ins|in|i)
-+ shift; set dummy --mode install ${1+"$@"}; shift
-+ ;;
-+link|lin|li|l)
-+ shift; set dummy --mode link ${1+"$@"}; shift
-+ ;;
-+uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
-+ shift; set dummy --mode uninstall ${1+"$@"}; shift
-+ ;;
-+esac
-
-- # Parse non-mode specific arguments:
-- while test "$#" -gt 0; do
-+
-+
-+# Option defaults:
-+opt_debug=:
-+opt_dry_run=false
-+opt_config=false
-+opt_preserve_dup_deps=false
-+opt_features=false
-+opt_finish=false
-+opt_help=false
-+opt_help_all=false
-+opt_silent=:
-+opt_verbose=:
-+opt_silent=false
-+opt_verbose=false
-+
-+
-+# Parse options once, thoroughly. This comes as soon as possible in the
-+# script to make things like `--version' happen as quickly as we can.
-+{
-+ # this just eases exit handling
-+ while test $# -gt 0; do
- opt="$1"
- shift
--
- case $opt in
-- --config) func_config ;;
--
-- --debug) preserve_args="$preserve_args $opt"
-+ --debug|-x) opt_debug='set -x'
- func_echo "enabling shell trace mode"
-- opt_debug='set -x'
- $opt_debug
- ;;
--
-- -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break
-- execute_dlfiles="$execute_dlfiles $1"
-- shift
-+ --dry-run|--dryrun|-n)
-+ opt_dry_run=:
- ;;
--
-- --dry-run | -n) opt_dry_run=: ;;
-- --features) func_features ;;
-- --finish) mode="finish" ;;
-- --no-finish) opt_finish=false ;;
--
-- --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break
-- case $1 in
-- # Valid mode arguments:
-- clean) ;;
-- compile) ;;
-- execute) ;;
-- finish) ;;
-- install) ;;
-- link) ;;
-- relink) ;;
-- uninstall) ;;
--
-- # Catch anything else as an error
-- *) func_error "invalid argument for $opt"
-- exit_cmd=exit
-- break
-- ;;
-- esac
--
-- mode="$1"
-+ --config)
-+ opt_config=:
-+func_config
-+ ;;
-+ --dlopen|-dlopen)
-+ optarg="$1"
-+ opt_dlopen="${opt_dlopen+$opt_dlopen
-+}$optarg"
- shift
- ;;
--
- --preserve-dup-deps)
-- opt_duplicate_deps=: ;;
--
-- --quiet|--silent) preserve_args="$preserve_args $opt"
-- opt_silent=:
-- opt_verbose=false
-+ opt_preserve_dup_deps=:
- ;;
--
-- --no-quiet|--no-silent)
-- preserve_args="$preserve_args $opt"
-- opt_silent=false
-+ --features)
-+ opt_features=:
-+func_features
- ;;
--
-- --verbose| -v) preserve_args="$preserve_args $opt"
-+ --finish)
-+ opt_finish=:
-+set dummy --mode finish ${1+"$@"}; shift
-+ ;;
-+ --help)
-+ opt_help=:
-+ ;;
-+ --help-all)
-+ opt_help_all=:
-+opt_help=': help-all'
-+ ;;
-+ --mode)
-+ test $# = 0 && func_missing_arg $opt && break
-+ optarg="$1"
-+ opt_mode="$optarg"
-+case $optarg in
-+ # Valid mode arguments:
-+ clean|compile|execute|finish|install|link|relink|uninstall) ;;
-+
-+ # Catch anything else as an error
-+ *) func_error "invalid argument for $opt"
-+ exit_cmd=exit
-+ break
-+ ;;
-+esac
-+ shift
-+ ;;
-+ --no-silent|--no-quiet)
- opt_silent=false
-- opt_verbose=:
-+func_append preserve_args " $opt"
- ;;
--
-- --no-verbose) preserve_args="$preserve_args $opt"
-+ --no-verbose)
- opt_verbose=false
-+func_append preserve_args " $opt"
- ;;
--
-- --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break
-- preserve_args="$preserve_args $opt $1"
-- func_enable_tag "$1" # tagname is set here
-+ --silent|--quiet)
-+ opt_silent=:
-+func_append preserve_args " $opt"
-+ opt_verbose=false
-+ ;;
-+ --verbose|-v)
-+ opt_verbose=:
-+func_append preserve_args " $opt"
-+opt_silent=false
-+ ;;
-+ --tag)
-+ test $# = 0 && func_missing_arg $opt && break
-+ optarg="$1"
-+ opt_tag="$optarg"
-+func_append preserve_args " $opt $optarg"
-+func_enable_tag "$optarg"
- shift
- ;;
-
-+ -\?|-h) func_usage ;;
-+ --help) func_help ;;
-+ --version) func_version ;;
-+
- # Separate optargs to long options:
-- -dlopen=*|--mode=*|--tag=*)
-- func_opt_split "$opt"
-- set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
-+ --*=*)
-+ func_split_long_opt "$opt"
-+ set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
- shift
- ;;
-
-- -\?|-h) func_usage ;;
-- --help) opt_help=: ;;
-- --help-all) opt_help=': help-all' ;;
-- --version) func_version ;;
--
-- -*) func_fatal_help "unrecognized option \`$opt'" ;;
--
-- *) nonopt="$opt"
-- break
-+ # Separate non-argument short options:
-+ -\?*|-h*|-n*|-v*)
-+ func_split_short_opt "$opt"
-+ set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
-+ shift
- ;;
-+
-+ --) break ;;
-+ -*) func_fatal_help "unrecognized option \`$opt'" ;;
-+ *) set dummy "$opt" ${1+"$@"}; shift; break ;;
- esac
- done
-
-+ # Validate options:
-+
-+ # save first non-option argument
-+ if test "$#" -gt 0; then
-+ nonopt="$opt"
-+ shift
-+ fi
-+
-+ # preserve --debug
-+ test "$opt_debug" = : || func_append preserve_args " --debug"
-
- case $host in
- *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* )
-@@ -981,82 +1184,44 @@ func_enable_tag ()
- opt_duplicate_compiler_generated_deps=:
- ;;
- *)
-- opt_duplicate_compiler_generated_deps=$opt_duplicate_deps
-+ opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
- ;;
- esac
-
-- # Having warned about all mis-specified options, bail out if
-- # anything was wrong.
-- $exit_cmd $EXIT_FAILURE
--}
-+ $opt_help || {
-+ # Sanity checks first:
-+ func_check_version_match
-
--# func_check_version_match
--# Ensure that we are using m4 macros, and libtool script from the same
--# release of libtool.
--func_check_version_match ()
--{
-- if test "$package_revision" != "$macro_revision"; then
-- if test "$VERSION" != "$macro_version"; then
-- if test -z "$macro_version"; then
-- cat >&2 <<_LT_EOF
--$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
--$progname: definition of this LT_INIT comes from an older release.
--$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
--$progname: and run autoconf again.
--_LT_EOF
-- else
-- cat >&2 <<_LT_EOF
--$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
--$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
--$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
--$progname: and run autoconf again.
--_LT_EOF
-- fi
-- else
-- cat >&2 <<_LT_EOF
--$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
--$progname: but the definition of this LT_INIT comes from revision $macro_revision.
--$progname: You should recreate aclocal.m4 with macros from revision $package_revision
--$progname: of $PACKAGE $VERSION and run autoconf again.
--_LT_EOF
-+ if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-+ func_fatal_configuration "not configured to build any kind of library"
- fi
-
-- exit $EXIT_MISMATCH
-- fi
--}
--
-+ # Darwin sucks
-+ eval std_shrext=\"$shrext_cmds\"
-
--## ----------- ##
--## Main. ##
--## ----------- ##
--
--$opt_help || {
-- # Sanity checks first:
-- func_check_version_match
--
-- if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-- func_fatal_configuration "not configured to build any kind of library"
-- fi
-+ # Only execute mode is allowed to have -dlopen flags.
-+ if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
-+ func_error "unrecognized option \`-dlopen'"
-+ $ECHO "$help" 1>&2
-+ exit $EXIT_FAILURE
-+ fi
-
-- test -z "$mode" && func_fatal_error "error: you must specify a MODE."
-+ # Change the help message to a mode-specific one.
-+ generic_help="$help"
-+ help="Try \`$progname --help --mode=$opt_mode' for more information."
-+ }
-
-
-- # Darwin sucks
-- eval "std_shrext=\"$shrext_cmds\""
-+ # Bail if the options were screwed
-+ $exit_cmd $EXIT_FAILURE
-+}
-
-
-- # Only execute mode is allowed to have -dlopen flags.
-- if test -n "$execute_dlfiles" && test "$mode" != execute; then
-- func_error "unrecognized option \`-dlopen'"
-- $ECHO "$help" 1>&2
-- exit $EXIT_FAILURE
-- fi
-
-- # Change the help message to a mode-specific one.
-- generic_help="$help"
-- help="Try \`$progname --help --mode=$mode' for more information."
--}
-
-+## ----------- ##
-+## Main. ##
-+## ----------- ##
-
- # func_lalib_p file
- # True iff FILE is a libtool `.la' library or `.lo' object file.
-@@ -1121,12 +1286,9 @@ func_ltwrapper_executable_p ()
- # temporary ltwrapper_script.
- func_ltwrapper_scriptname ()
- {
-- func_ltwrapper_scriptname_result=""
-- if func_ltwrapper_executable_p "$1"; then
-- func_dirname_and_basename "$1" "" "."
-- func_stripname '' '.exe' "$func_basename_result"
-- func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
-- fi
-+ func_dirname_and_basename "$1" "" "."
-+ func_stripname '' '.exe' "$func_basename_result"
-+ func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
- }
-
- # func_ltwrapper_p file
-@@ -1149,7 +1311,7 @@ func_execute_cmds ()
- save_ifs=$IFS; IFS='~'
- for cmd in $1; do
- IFS=$save_ifs
-- eval "cmd=\"$cmd\""
-+ eval cmd=\"$cmd\"
- func_show_eval "$cmd" "${2-:}"
- done
- IFS=$save_ifs
-@@ -1172,6 +1334,37 @@ func_source ()
- }
-
-
-+# func_resolve_sysroot PATH
-+# Replace a leading = in PATH with a sysroot. Store the result into
-+# func_resolve_sysroot_result
-+func_resolve_sysroot ()
-+{
-+ func_resolve_sysroot_result=$1
-+ case $func_resolve_sysroot_result in
-+ =*)
-+ func_stripname '=' '' "$func_resolve_sysroot_result"
-+ func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
-+ ;;
-+ esac
-+}
-+
-+# func_replace_sysroot PATH
-+# If PATH begins with the sysroot, replace it with = and
-+# store the result into func_replace_sysroot_result.
-+func_replace_sysroot ()
-+{
-+ case "$lt_sysroot:$1" in
-+ ?*:"$lt_sysroot"*)
-+ func_stripname "$lt_sysroot" '' "$1"
-+ func_replace_sysroot_result="=$func_stripname_result"
-+ ;;
-+ *)
-+ # Including no sysroot.
-+ func_replace_sysroot_result=$1
-+ ;;
-+ esac
-+}
-+
- # func_infer_tag arg
- # Infer tagged configuration to use if any are available and
- # if one wasn't chosen via the "--tag" command line option.
-@@ -1184,8 +1377,7 @@ func_infer_tag ()
- if test -n "$available_tags" && test -z "$tagname"; then
- CC_quoted=
- for arg in $CC; do
-- func_quote_for_eval "$arg"
-- CC_quoted="$CC_quoted $func_quote_for_eval_result"
-+ func_append_quoted CC_quoted "$arg"
- done
- CC_expanded=`func_echo_all $CC`
- CC_quoted_expanded=`func_echo_all $CC_quoted`
-@@ -1204,8 +1396,7 @@ func_infer_tag ()
- CC_quoted=
- for arg in $CC; do
- # Double-quote args containing other shell metacharacters.
-- func_quote_for_eval "$arg"
-- CC_quoted="$CC_quoted $func_quote_for_eval_result"
-+ func_append_quoted CC_quoted "$arg"
- done
- CC_expanded=`func_echo_all $CC`
- CC_quoted_expanded=`func_echo_all $CC_quoted`
-@@ -1274,6 +1465,486 @@ EOF
- }
- }
-
-+
-+##################################################
-+# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
-+##################################################
-+
-+# func_convert_core_file_wine_to_w32 ARG
-+# Helper function used by file name conversion functions when $build is *nix,
-+# and $host is mingw, cygwin, or some other w32 environment. Relies on a
-+# correctly configured wine environment available, with the winepath program
-+# in $build's $PATH.
-+#
-+# ARG is the $build file name to be converted to w32 format.
-+# Result is available in $func_convert_core_file_wine_to_w32_result, and will
-+# be empty on error (or when ARG is empty)
-+func_convert_core_file_wine_to_w32 ()
-+{
-+ $opt_debug
-+ func_convert_core_file_wine_to_w32_result="$1"
-+ if test -n "$1"; then
-+ # Unfortunately, winepath does not exit with a non-zero error code, so we
-+ # are forced to check the contents of stdout. On the other hand, if the
-+ # command is not found, the shell will set an exit code of 127 and print
-+ # *an error message* to stdout. So we must check for both error code of
-+ # zero AND non-empty stdout, which explains the odd construction:
-+ func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
-+ if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
-+ func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
-+ $SED -e "$lt_sed_naive_backslashify"`
-+ else
-+ func_convert_core_file_wine_to_w32_result=
-+ fi
-+ fi
-+}
-+# end: func_convert_core_file_wine_to_w32
-+
-+
-+# func_convert_core_path_wine_to_w32 ARG
-+# Helper function used by path conversion functions when $build is *nix, and
-+# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
-+# configured wine environment available, with the winepath program in $build's
-+# $PATH. Assumes ARG has no leading or trailing path separator characters.
-+#
-+# ARG is path to be converted from $build format to win32.
-+# Result is available in $func_convert_core_path_wine_to_w32_result.
-+# Unconvertible file (directory) names in ARG are skipped; if no directory names
-+# are convertible, then the result may be empty.
-+func_convert_core_path_wine_to_w32 ()
-+{
-+ $opt_debug
-+ # unfortunately, winepath doesn't convert paths, only file names
-+ func_convert_core_path_wine_to_w32_result=""
-+ if test -n "$1"; then
-+ oldIFS=$IFS
-+ IFS=:
-+ for func_convert_core_path_wine_to_w32_f in $1; do
-+ IFS=$oldIFS
-+ func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
-+ if test -n "$func_convert_core_file_wine_to_w32_result" ; then
-+ if test -z "$func_convert_core_path_wine_to_w32_result"; then
-+ func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
-+ else
-+ func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
-+ fi
-+ fi
-+ done
-+ IFS=$oldIFS
-+ fi
-+}
-+# end: func_convert_core_path_wine_to_w32
-+
-+
-+# func_cygpath ARGS...
-+# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
-+# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
-+# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
-+# (2), returns the Cygwin file name or path in func_cygpath_result (input
-+# file name or path is assumed to be in w32 format, as previously converted
-+# from $build's *nix or MSYS format). In case (3), returns the w32 file name
-+# or path in func_cygpath_result (input file name or path is assumed to be in
-+# Cygwin format). Returns an empty string on error.
-+#
-+# ARGS are passed to cygpath, with the last one being the file name or path to
-+# be converted.
-+#
-+# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
-+# environment variable; do not put it in $PATH.
-+func_cygpath ()
-+{
-+ $opt_debug
-+ if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
-+ func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
-+ if test "$?" -ne 0; then
-+ # on failure, ensure result is empty
-+ func_cygpath_result=
-+ fi
-+ else
-+ func_cygpath_result=
-+ func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
-+ fi
-+}
-+#end: func_cygpath
-+
-+
-+# func_convert_core_msys_to_w32 ARG
-+# Convert file name or path ARG from MSYS format to w32 format. Return
-+# result in func_convert_core_msys_to_w32_result.
-+func_convert_core_msys_to_w32 ()
-+{
-+ $opt_debug
-+ # awkward: cmd appends spaces to result
-+ func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
-+ $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
-+}
-+#end: func_convert_core_msys_to_w32
-+
-+
-+# func_convert_file_check ARG1 ARG2
-+# Verify that ARG1 (a file name in $build format) was converted to $host
-+# format in ARG2. Otherwise, emit an error message, but continue (resetting
-+# func_to_host_file_result to ARG1).
-+func_convert_file_check ()
-+{
-+ $opt_debug
-+ if test -z "$2" && test -n "$1" ; then
-+ func_error "Could not determine host file name corresponding to"
-+ func_error " \`$1'"
-+ func_error "Continuing, but uninstalled executables may not work."
-+ # Fallback:
-+ func_to_host_file_result="$1"
-+ fi
-+}
-+# end func_convert_file_check
-+
-+
-+# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
-+# Verify that FROM_PATH (a path in $build format) was converted to $host
-+# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
-+# func_to_host_file_result to a simplistic fallback value (see below).
-+func_convert_path_check ()
-+{
-+ $opt_debug
-+ if test -z "$4" && test -n "$3"; then
-+ func_error "Could not determine the host path corresponding to"
-+ func_error " \`$3'"
-+ func_error "Continuing, but uninstalled executables may not work."
-+ # Fallback. This is a deliberately simplistic "conversion" and
-+ # should not be "improved". See libtool.info.
-+ if test "x$1" != "x$2"; then
-+ lt_replace_pathsep_chars="s|$1|$2|g"
-+ func_to_host_path_result=`echo "$3" |
-+ $SED -e "$lt_replace_pathsep_chars"`
-+ else
-+ func_to_host_path_result="$3"
-+ fi
-+ fi
-+}
-+# end func_convert_path_check
-+
-+
-+# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
-+# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
-+# and appending REPL if ORIG matches BACKPAT.
-+func_convert_path_front_back_pathsep ()
-+{
-+ $opt_debug
-+ case $4 in
-+ $1 ) func_to_host_path_result="$3$func_to_host_path_result"
-+ ;;
-+ esac
-+ case $4 in
-+ $2 ) func_append func_to_host_path_result "$3"
-+ ;;
-+ esac
-+}
-+# end func_convert_path_front_back_pathsep
-+
-+
-+##################################################
-+# $build to $host FILE NAME CONVERSION FUNCTIONS #
-+##################################################
-+# invoked via `$to_host_file_cmd ARG'
-+#
-+# In each case, ARG is the path to be converted from $build to $host format.
-+# Result will be available in $func_to_host_file_result.
-+
-+
-+# func_to_host_file ARG
-+# Converts the file name ARG from $build format to $host format. Return result
-+# in func_to_host_file_result.
-+func_to_host_file ()
-+{
-+ $opt_debug
-+ $to_host_file_cmd "$1"
-+}
-+# end func_to_host_file
-+
-+
-+# func_to_tool_file ARG LAZY
-+# converts the file name ARG from $build format to toolchain format. Return
-+# result in func_to_tool_file_result. If the conversion in use is listed
-+# in (the comma separated) LAZY, no conversion takes place.
-+func_to_tool_file ()
-+{
-+ $opt_debug
-+ case ,$2, in
-+ *,"$to_tool_file_cmd",*)
-+ func_to_tool_file_result=$1
-+ ;;
-+ *)
-+ $to_tool_file_cmd "$1"
-+ func_to_tool_file_result=$func_to_host_file_result
-+ ;;
-+ esac
-+}
-+# end func_to_tool_file
-+
-+
-+# func_convert_file_noop ARG
-+# Copy ARG to func_to_host_file_result.
-+func_convert_file_noop ()
-+{
-+ func_to_host_file_result="$1"
-+}
-+# end func_convert_file_noop
-+
-+
-+# func_convert_file_msys_to_w32 ARG
-+# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
-+# conversion to w32 is not available inside the cwrapper. Returns result in
-+# func_to_host_file_result.
-+func_convert_file_msys_to_w32 ()
-+{
-+ $opt_debug
-+ func_to_host_file_result="$1"
-+ if test -n "$1"; then
-+ func_convert_core_msys_to_w32 "$1"
-+ func_to_host_file_result="$func_convert_core_msys_to_w32_result"
-+ fi
-+ func_convert_file_check "$1" "$func_to_host_file_result"
-+}
-+# end func_convert_file_msys_to_w32
-+
-+
-+# func_convert_file_cygwin_to_w32 ARG
-+# Convert file name ARG from Cygwin to w32 format. Returns result in
-+# func_to_host_file_result.
-+func_convert_file_cygwin_to_w32 ()
-+{
-+ $opt_debug
-+ func_to_host_file_result="$1"
-+ if test -n "$1"; then
-+ # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
-+ # LT_CYGPATH in this case.
-+ func_to_host_file_result=`cygpath -m "$1"`
-+ fi
-+ func_convert_file_check "$1" "$func_to_host_file_result"
-+}
-+# end func_convert_file_cygwin_to_w32
-+
-+
-+# func_convert_file_nix_to_w32 ARG
-+# Convert file name ARG from *nix to w32 format. Requires a wine environment
-+# and a working winepath. Returns result in func_to_host_file_result.
-+func_convert_file_nix_to_w32 ()
-+{
-+ $opt_debug
-+ func_to_host_file_result="$1"
-+ if test -n "$1"; then
-+ func_convert_core_file_wine_to_w32 "$1"
-+ func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
-+ fi
-+ func_convert_file_check "$1" "$func_to_host_file_result"
-+}
-+# end func_convert_file_nix_to_w32
-+
-+
-+# func_convert_file_msys_to_cygwin ARG
-+# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
-+# Returns result in func_to_host_file_result.
-+func_convert_file_msys_to_cygwin ()
-+{
-+ $opt_debug
-+ func_to_host_file_result="$1"
-+ if test -n "$1"; then
-+ func_convert_core_msys_to_w32 "$1"
-+ func_cygpath -u "$func_convert_core_msys_to_w32_result"
-+ func_to_host_file_result="$func_cygpath_result"
-+ fi
-+ func_convert_file_check "$1" "$func_to_host_file_result"
-+}
-+# end func_convert_file_msys_to_cygwin
-+
-+
-+# func_convert_file_nix_to_cygwin ARG
-+# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed
-+# in a wine environment, working winepath, and LT_CYGPATH set. Returns result
-+# in func_to_host_file_result.
-+func_convert_file_nix_to_cygwin ()
-+{
-+ $opt_debug
-+ func_to_host_file_result="$1"
-+ if test -n "$1"; then
-+ # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
-+ func_convert_core_file_wine_to_w32 "$1"
-+ func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
-+ func_to_host_file_result="$func_cygpath_result"
-+ fi
-+ func_convert_file_check "$1" "$func_to_host_file_result"
-+}
-+# end func_convert_file_nix_to_cygwin
-+
-+
-+#############################################
-+# $build to $host PATH CONVERSION FUNCTIONS #
-+#############################################
-+# invoked via `$to_host_path_cmd ARG'
-+#
-+# In each case, ARG is the path to be converted from $build to $host format.
-+# The result will be available in $func_to_host_path_result.
-+#
-+# Path separators are also converted from $build format to $host format. If
-+# ARG begins or ends with a path separator character, it is preserved (but
-+# converted to $host format) on output.
-+#
-+# All path conversion functions are named using the following convention:
-+# file name conversion function : func_convert_file_X_to_Y ()
-+# path conversion function : func_convert_path_X_to_Y ()
-+# where, for any given $build/$host combination the 'X_to_Y' value is the
-+# same. If conversion functions are added for new $build/$host combinations,
-+# the two new functions must follow this pattern, or func_init_to_host_path_cmd
-+# will break.
-+
-+
-+# func_init_to_host_path_cmd
-+# Ensures that function "pointer" variable $to_host_path_cmd is set to the
-+# appropriate value, based on the value of $to_host_file_cmd.
-+to_host_path_cmd=
-+func_init_to_host_path_cmd ()
-+{
-+ $opt_debug
-+ if test -z "$to_host_path_cmd"; then
-+ func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
-+ to_host_path_cmd="func_convert_path_${func_stripname_result}"
-+ fi
-+}
-+
-+
-+# func_to_host_path ARG
-+# Converts the path ARG from $build format to $host format. Return result
-+# in func_to_host_path_result.
-+func_to_host_path ()
-+{
-+ $opt_debug
-+ func_init_to_host_path_cmd
-+ $to_host_path_cmd "$1"
-+}
-+# end func_to_host_path
-+
-+
-+# func_convert_path_noop ARG
-+# Copy ARG to func_to_host_path_result.
-+func_convert_path_noop ()
-+{
-+ func_to_host_path_result="$1"
-+}
-+# end func_convert_path_noop
-+
-+
-+# func_convert_path_msys_to_w32 ARG
-+# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
-+# conversion to w32 is not available inside the cwrapper. Returns result in
-+# func_to_host_path_result.
-+func_convert_path_msys_to_w32 ()
-+{
-+ $opt_debug
-+ func_to_host_path_result="$1"
-+ if test -n "$1"; then
-+ # Remove leading and trailing path separator characters from ARG. MSYS
-+ # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
-+ # and winepath ignores them completely.
-+ func_stripname : : "$1"
-+ func_to_host_path_tmp1=$func_stripname_result
-+ func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
-+ func_to_host_path_result="$func_convert_core_msys_to_w32_result"
-+ func_convert_path_check : ";" \
-+ "$func_to_host_path_tmp1" "$func_to_host_path_result"
-+ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
-+ fi
-+}
-+# end func_convert_path_msys_to_w32
-+
-+
-+# func_convert_path_cygwin_to_w32 ARG
-+# Convert path ARG from Cygwin to w32 format. Returns result in
-+# func_to_host_file_result.
-+func_convert_path_cygwin_to_w32 ()
-+{
-+ $opt_debug
-+ func_to_host_path_result="$1"
-+ if test -n "$1"; then
-+ # See func_convert_path_msys_to_w32:
-+ func_stripname : : "$1"
-+ func_to_host_path_tmp1=$func_stripname_result
-+ func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
-+ func_convert_path_check : ";" \
-+ "$func_to_host_path_tmp1" "$func_to_host_path_result"
-+ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
-+ fi
-+}
-+# end func_convert_path_cygwin_to_w32
-+
-+
-+# func_convert_path_nix_to_w32 ARG
-+# Convert path ARG from *nix to w32 format. Requires a wine environment and
-+# a working winepath. Returns result in func_to_host_file_result.
-+func_convert_path_nix_to_w32 ()
-+{
-+ $opt_debug
-+ func_to_host_path_result="$1"
-+ if test -n "$1"; then
-+ # See func_convert_path_msys_to_w32:
-+ func_stripname : : "$1"
-+ func_to_host_path_tmp1=$func_stripname_result
-+ func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
-+ func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
-+ func_convert_path_check : ";" \
-+ "$func_to_host_path_tmp1" "$func_to_host_path_result"
-+ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
-+ fi
-+}
-+# end func_convert_path_nix_to_w32
-+
-+
-+# func_convert_path_msys_to_cygwin ARG
-+# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
-+# Returns result in func_to_host_file_result.
-+func_convert_path_msys_to_cygwin ()
-+{
-+ $opt_debug
-+ func_to_host_path_result="$1"
-+ if test -n "$1"; then
-+ # See func_convert_path_msys_to_w32:
-+ func_stripname : : "$1"
-+ func_to_host_path_tmp1=$func_stripname_result
-+ func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
-+ func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
-+ func_to_host_path_result="$func_cygpath_result"
-+ func_convert_path_check : : \
-+ "$func_to_host_path_tmp1" "$func_to_host_path_result"
-+ func_convert_path_front_back_pathsep ":*" "*:" : "$1"
-+ fi
-+}
-+# end func_convert_path_msys_to_cygwin
-+
-+
-+# func_convert_path_nix_to_cygwin ARG
-+# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a
-+# a wine environment, working winepath, and LT_CYGPATH set. Returns result in
-+# func_to_host_file_result.
-+func_convert_path_nix_to_cygwin ()
-+{
-+ $opt_debug
-+ func_to_host_path_result="$1"
-+ if test -n "$1"; then
-+ # Remove leading and trailing path separator characters from
-+ # ARG. msys behavior is inconsistent here, cygpath turns them
-+ # into '.;' and ';.', and winepath ignores them completely.
-+ func_stripname : : "$1"
-+ func_to_host_path_tmp1=$func_stripname_result
-+ func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
-+ func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
-+ func_to_host_path_result="$func_cygpath_result"
-+ func_convert_path_check : : \
-+ "$func_to_host_path_tmp1" "$func_to_host_path_result"
-+ func_convert_path_front_back_pathsep ":*" "*:" : "$1"
-+ fi
-+}
-+# end func_convert_path_nix_to_cygwin
-+
-+
- # func_mode_compile arg...
- func_mode_compile ()
- {
-@@ -1314,12 +1985,12 @@ func_mode_compile ()
- ;;
-
- -pie | -fpie | -fPIE)
-- pie_flag="$pie_flag $arg"
-+ func_append pie_flag " $arg"
- continue
- ;;
-
- -shared | -static | -prefer-pic | -prefer-non-pic)
-- later="$later $arg"
-+ func_append later " $arg"
- continue
- ;;
-
-@@ -1340,15 +2011,14 @@ func_mode_compile ()
- save_ifs="$IFS"; IFS=','
- for arg in $args; do
- IFS="$save_ifs"
-- func_quote_for_eval "$arg"
-- lastarg="$lastarg $func_quote_for_eval_result"
-+ func_append_quoted lastarg "$arg"
- done
- IFS="$save_ifs"
- func_stripname ' ' '' "$lastarg"
- lastarg=$func_stripname_result
-
- # Add the arguments to base_compile.
-- base_compile="$base_compile $lastarg"
-+ func_append base_compile " $lastarg"
- continue
- ;;
-
-@@ -1364,8 +2034,7 @@ func_mode_compile ()
- esac # case $arg_mode
-
- # Aesthetically quote the previous argument.
-- func_quote_for_eval "$lastarg"
-- base_compile="$base_compile $func_quote_for_eval_result"
-+ func_append_quoted base_compile "$lastarg"
- done # for arg
-
- case $arg_mode in
-@@ -1496,17 +2165,16 @@ compiler."
- $opt_dry_run || $RM $removelist
- exit $EXIT_FAILURE
- fi
-- removelist="$removelist $output_obj"
-+ func_append removelist " $output_obj"
- $ECHO "$srcfile" > "$lockfile"
- fi
-
- $opt_dry_run || $RM $removelist
-- removelist="$removelist $lockfile"
-+ func_append removelist " $lockfile"
- trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
-
-- if test -n "$fix_srcfile_path"; then
-- eval "srcfile=\"$fix_srcfile_path\""
-- fi
-+ func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
-+ srcfile=$func_to_tool_file_result
- func_quote_for_eval "$srcfile"
- qsrcfile=$func_quote_for_eval_result
-
-@@ -1526,7 +2194,7 @@ compiler."
-
- if test -z "$output_obj"; then
- # Place PIC objects in $objdir
-- command="$command -o $lobj"
-+ func_append command " -o $lobj"
- fi
-
- func_show_eval_locale "$command" \
-@@ -1573,11 +2241,11 @@ compiler."
- command="$base_compile $qsrcfile $pic_flag"
- fi
- if test "$compiler_c_o" = yes; then
-- command="$command -o $obj"
-+ func_append command " -o $obj"
- fi
-
- # Suppress compiler output if we already did a PIC compilation.
-- command="$command$suppress_output"
-+ func_append command "$suppress_output"
- func_show_eval_locale "$command" \
- '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
-
-@@ -1622,13 +2290,13 @@ compiler."
- }
-
- $opt_help || {
-- test "$mode" = compile && func_mode_compile ${1+"$@"}
-+ test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
- }
-
- func_mode_help ()
- {
- # We need to display help for each of the modes.
-- case $mode in
-+ case $opt_mode in
- "")
- # Generic help is extracted from the usage comments
- # at the start of this file.
-@@ -1659,8 +2327,8 @@ This mode accepts the following additional options:
-
- -o OUTPUT-FILE set the output file name to OUTPUT-FILE
- -no-suppress do not suppress compiler output for multiple passes
-- -prefer-pic try to building PIC objects only
-- -prefer-non-pic try to building non-PIC objects only
-+ -prefer-pic try to build PIC objects only
-+ -prefer-non-pic try to build non-PIC objects only
- -shared do not build a \`.o' file suitable for static linking
- -static only build a \`.o' file suitable for static linking
- -Wc,FLAG pass FLAG directly to the compiler
-@@ -1804,7 +2472,7 @@ Otherwise, only FILE itself is deleted using RM."
- ;;
-
- *)
-- func_fatal_help "invalid operation mode \`$mode'"
-+ func_fatal_help "invalid operation mode \`$opt_mode'"
- ;;
- esac
-
-@@ -1819,13 +2487,13 @@ if $opt_help; then
- else
- {
- func_help noexit
-- for mode in compile link execute install finish uninstall clean; do
-+ for opt_mode in compile link execute install finish uninstall clean; do
- func_mode_help
- done
- } | sed -n '1p; 2,$s/^Usage:/ or: /p'
- {
- func_help noexit
-- for mode in compile link execute install finish uninstall clean; do
-+ for opt_mode in compile link execute install finish uninstall clean; do
- echo
- func_mode_help
- done
-@@ -1854,13 +2522,16 @@ func_mode_execute ()
- func_fatal_help "you must specify a COMMAND"
-
- # Handle -dlopen flags immediately.
-- for file in $execute_dlfiles; do
-+ for file in $opt_dlopen; do
- test -f "$file" \
- || func_fatal_help "\`$file' is not a file"
-
- dir=
- case $file in
- *.la)
-+ func_resolve_sysroot "$file"
-+ file=$func_resolve_sysroot_result
-+
- # Check to see that this really is a libtool archive.
- func_lalib_unsafe_p "$file" \
- || func_fatal_help "\`$lib' is not a valid libtool archive"
-@@ -1882,7 +2553,7 @@ func_mode_execute ()
- dir="$func_dirname_result"
-
- if test -f "$dir/$objdir/$dlname"; then
-- dir="$dir/$objdir"
-+ func_append dir "/$objdir"
- else
- if test ! -f "$dir/$dlname"; then
- func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
-@@ -1907,10 +2578,10 @@ func_mode_execute ()
- test -n "$absdir" && dir="$absdir"
-
- # Now add the directory to shlibpath_var.
-- if eval test -z \"\$$shlibpath_var\"; then
-- eval $shlibpath_var=\$dir
-+ if eval "test -z \"\$$shlibpath_var\""; then
-+ eval "$shlibpath_var=\"\$dir\""
- else
-- eval $shlibpath_var=\$dir:\$$shlibpath_var
-+ eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
- fi
- done
-
-@@ -1939,8 +2610,7 @@ func_mode_execute ()
- ;;
- esac
- # Quote arguments (to preserve shell metacharacters).
-- func_quote_for_eval "$file"
-- args="$args $func_quote_for_eval_result"
-+ func_append_quoted args "$file"
- done
-
- if test "X$opt_dry_run" = Xfalse; then
-@@ -1972,22 +2642,59 @@ func_mode_execute ()
- fi
- }
-
--test "$mode" = execute && func_mode_execute ${1+"$@"}
-+test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
-
-
- # func_mode_finish arg...
- func_mode_finish ()
- {
- $opt_debug
-- libdirs="$nonopt"
-+ libs=
-+ libdirs=
- admincmds=
-
-- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-- for dir
-- do
-- libdirs="$libdirs $dir"
-- done
-+ for opt in "$nonopt" ${1+"$@"}
-+ do
-+ if test -d "$opt"; then
-+ func_append libdirs " $opt"
-
-+ elif test -f "$opt"; then
-+ if func_lalib_unsafe_p "$opt"; then
-+ func_append libs " $opt"
-+ else
-+ func_warning "\`$opt' is not a valid libtool archive"
-+ fi
-+
-+ else
-+ func_fatal_error "invalid argument \`$opt'"
-+ fi
-+ done
-+
-+ if test -n "$libs"; then
-+ if test -n "$lt_sysroot"; then
-+ sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
-+ sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
-+ else
-+ sysroot_cmd=
-+ fi
-+
-+ # Remove sysroot references
-+ if $opt_dry_run; then
-+ for lib in $libs; do
-+ echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
-+ done
-+ else
-+ tmpdir=`func_mktempdir`
-+ for lib in $libs; do
-+ sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
-+ > $tmpdir/tmp-la
-+ mv -f $tmpdir/tmp-la $lib
-+ done
-+ ${RM}r "$tmpdir"
-+ fi
-+ fi
-+
-+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
- for libdir in $libdirs; do
- if test -n "$finish_cmds"; then
- # Do each command in the finish commands.
-@@ -1997,7 +2704,7 @@ func_mode_finish ()
- if test -n "$finish_eval"; then
- # Do the single finish_eval.
- eval cmds=\"$finish_eval\"
-- $opt_dry_run || eval "$cmds" || admincmds="$admincmds
-+ $opt_dry_run || eval "$cmds" || func_append admincmds "
- $cmds"
- fi
- done
-@@ -2006,53 +2713,55 @@ func_mode_finish ()
- # Exit here if they wanted silent mode.
- $opt_silent && exit $EXIT_SUCCESS
-
-- echo "----------------------------------------------------------------------"
-- echo "Libraries have been installed in:"
-- for libdir in $libdirs; do
-- $ECHO " $libdir"
-- done
-- echo
-- echo "If you ever happen to want to link against installed libraries"
-- echo "in a given directory, LIBDIR, you must either use libtool, and"
-- echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
-- echo "flag during linking and do at least one of the following:"
-- if test -n "$shlibpath_var"; then
-- echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
-- echo " during execution"
-- fi
-- if test -n "$runpath_var"; then
-- echo " - add LIBDIR to the \`$runpath_var' environment variable"
-- echo " during linking"
-- fi
-- if test -n "$hardcode_libdir_flag_spec"; then
-- libdir=LIBDIR
-- eval "flag=\"$hardcode_libdir_flag_spec\""
-+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-+ echo "----------------------------------------------------------------------"
-+ echo "Libraries have been installed in:"
-+ for libdir in $libdirs; do
-+ $ECHO " $libdir"
-+ done
-+ echo
-+ echo "If you ever happen to want to link against installed libraries"
-+ echo "in a given directory, LIBDIR, you must either use libtool, and"
-+ echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
-+ echo "flag during linking and do at least one of the following:"
-+ if test -n "$shlibpath_var"; then
-+ echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
-+ echo " during execution"
-+ fi
-+ if test -n "$runpath_var"; then
-+ echo " - add LIBDIR to the \`$runpath_var' environment variable"
-+ echo " during linking"
-+ fi
-+ if test -n "$hardcode_libdir_flag_spec"; then
-+ libdir=LIBDIR
-+ eval flag=\"$hardcode_libdir_flag_spec\"
-
-- $ECHO " - use the \`$flag' linker flag"
-- fi
-- if test -n "$admincmds"; then
-- $ECHO " - have your system administrator run these commands:$admincmds"
-- fi
-- if test -f /etc/ld.so.conf; then
-- echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
-- fi
-- echo
-+ $ECHO " - use the \`$flag' linker flag"
-+ fi
-+ if test -n "$admincmds"; then
-+ $ECHO " - have your system administrator run these commands:$admincmds"
-+ fi
-+ if test -f /etc/ld.so.conf; then
-+ echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
-+ fi
-+ echo
-
-- echo "See any operating system documentation about shared libraries for"
-- case $host in
-- solaris2.[6789]|solaris2.1[0-9])
-- echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
-- echo "pages."
-- ;;
-- *)
-- echo "more information, such as the ld(1) and ld.so(8) manual pages."
-- ;;
-- esac
-- echo "----------------------------------------------------------------------"
-+ echo "See any operating system documentation about shared libraries for"
-+ case $host in
-+ solaris2.[6789]|solaris2.1[0-9])
-+ echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
-+ echo "pages."
-+ ;;
-+ *)
-+ echo "more information, such as the ld(1) and ld.so(8) manual pages."
-+ ;;
-+ esac
-+ echo "----------------------------------------------------------------------"
-+ fi
- exit $EXIT_SUCCESS
- }
-
--test "$mode" = finish && func_mode_finish ${1+"$@"}
-+test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
-
-
- # func_mode_install arg...
-@@ -2077,7 +2786,7 @@ func_mode_install ()
- # The real first argument should be the name of the installation program.
- # Aesthetically quote it.
- func_quote_for_eval "$arg"
-- install_prog="$install_prog$func_quote_for_eval_result"
-+ func_append install_prog "$func_quote_for_eval_result"
- install_shared_prog=$install_prog
- case " $install_prog " in
- *[\\\ /]cp\ *) install_cp=: ;;
-@@ -2097,7 +2806,7 @@ func_mode_install ()
- do
- arg2=
- if test -n "$dest"; then
-- files="$files $dest"
-+ func_append files " $dest"
- dest=$arg
- continue
- fi
-@@ -2135,11 +2844,11 @@ func_mode_install ()
-
- # Aesthetically quote the argument.
- func_quote_for_eval "$arg"
-- install_prog="$install_prog $func_quote_for_eval_result"
-+ func_append install_prog " $func_quote_for_eval_result"
- if test -n "$arg2"; then
- func_quote_for_eval "$arg2"
- fi
-- install_shared_prog="$install_shared_prog $func_quote_for_eval_result"
-+ func_append install_shared_prog " $func_quote_for_eval_result"
- done
-
- test -z "$install_prog" && \
-@@ -2151,7 +2860,7 @@ func_mode_install ()
- if test -n "$install_override_mode" && $no_mode; then
- if $install_cp; then :; else
- func_quote_for_eval "$install_override_mode"
-- install_shared_prog="$install_shared_prog -m $func_quote_for_eval_result"
-+ func_append install_shared_prog " -m $func_quote_for_eval_result"
- fi
- fi
-
-@@ -2209,10 +2918,13 @@ func_mode_install ()
- case $file in
- *.$libext)
- # Do the static libraries later.
-- staticlibs="$staticlibs $file"
-+ func_append staticlibs " $file"
- ;;
-
- *.la)
-+ func_resolve_sysroot "$file"
-+ file=$func_resolve_sysroot_result
-+
- # Check to see that this really is a libtool archive.
- func_lalib_unsafe_p "$file" \
- || func_fatal_help "\`$file' is not a valid libtool archive"
-@@ -2226,23 +2938,30 @@ func_mode_install ()
- if test "X$destdir" = "X$libdir"; then
- case "$current_libdirs " in
- *" $libdir "*) ;;
-- *) current_libdirs="$current_libdirs $libdir" ;;
-+ *) func_append current_libdirs " $libdir" ;;
- esac
- else
- # Note the libdir as a future libdir.
- case "$future_libdirs " in
- *" $libdir "*) ;;
-- *) future_libdirs="$future_libdirs $libdir" ;;
-+ *) func_append future_libdirs " $libdir" ;;
- esac
- fi
-
- func_dirname "$file" "/" ""
- dir="$func_dirname_result"
-- dir="$dir$objdir"
-+ func_append dir "$objdir"
-
- if test -n "$relink_command"; then
-+ # Strip any trailing slash from the destination.
-+ func_stripname '' '/' "$libdir"
-+ destlibdir=$func_stripname_result
-+
-+ func_stripname '' '/' "$destdir"
-+ s_destdir=$func_stripname_result
-+
- # Determine the prefix the user has applied to our future dir.
-- inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
-+ inst_prefix_dir=`$ECHO "X$s_destdir" | $Xsed -e "s%$destlibdir\$%%"`
-
- # Don't allow the user to place us outside of our expected
- # location b/c this prevents finding dependent libraries that
-@@ -2315,7 +3034,7 @@ func_mode_install ()
- func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
-
- # Maybe install the static library, too.
-- test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
-+ test -n "$old_library" && func_append staticlibs " $dir/$old_library"
- ;;
-
- *.lo)
-@@ -2503,7 +3222,7 @@ func_mode_install ()
- test -n "$future_libdirs" && \
- func_warning "remember to run \`$progname --finish$future_libdirs'"
-
-- if test -n "$current_libdirs" && $opt_finish; then
-+ if test -n "$current_libdirs"; then
- # Maybe just do a dry run.
- $opt_dry_run && current_libdirs=" -n$current_libdirs"
- exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
-@@ -2512,7 +3231,7 @@ func_mode_install ()
- fi
- }
-
--test "$mode" = install && func_mode_install ${1+"$@"}
-+test "$opt_mode" = install && func_mode_install ${1+"$@"}
-
-
- # func_generate_dlsyms outputname originator pic_p
-@@ -2559,6 +3278,18 @@ extern \"C\" {
- #pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
- #endif
-
-+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
-+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-+/* DATA imports from DLLs on WIN32 con't be const, because runtime
-+ relocations are performed -- see ld's documentation on pseudo-relocs. */
-+# define LT_DLSYM_CONST
-+#elif defined(__osf__)
-+/* This system does not cope well with relocations in const data. */
-+# define LT_DLSYM_CONST
-+#else
-+# define LT_DLSYM_CONST const
-+#endif
-+
- /* External symbol declarations for the compiler. */\
- "
-
-@@ -2570,21 +3301,22 @@ extern \"C\" {
- # Add our own program objects to the symbol list.
- progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
- for progfile in $progfiles; do
-- func_verbose "extracting global C symbols from \`$progfile'"
-- $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
-+ func_to_tool_file "$progfile" func_convert_file_msys_to_w32
-+ func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
-+ $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
- done
-
- if test -n "$exclude_expsyms"; then
- $opt_dry_run || {
-- $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
-- $MV "$nlist"T "$nlist"
-+ eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
-+ eval '$MV "$nlist"T "$nlist"'
- }
- fi
-
- if test -n "$export_symbols_regex"; then
- $opt_dry_run || {
-- $EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T
-- $MV "$nlist"T "$nlist"
-+ eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
-+ eval '$MV "$nlist"T "$nlist"'
- }
- fi
-
-@@ -2593,23 +3325,23 @@ extern \"C\" {
- export_symbols="$output_objdir/$outputname.exp"
- $opt_dry_run || {
- $RM $export_symbols
-- ${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' < "$nlist" > "$export_symbols"
-+ eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
- case $host in
- *cygwin* | *mingw* | *cegcc* )
-- echo EXPORTS > "$output_objdir/$outputname.def"
-- cat "$export_symbols" >> "$output_objdir/$outputname.def"
-+ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
-+ eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
- ;;
- esac
- }
- else
- $opt_dry_run || {
-- ${SED} -e 's/\([].[*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/' < "$export_symbols" > "$output_objdir/$outputname.exp"
-- $GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T
-- $MV "$nlist"T "$nlist"
-+ eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
-+ eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
-+ eval '$MV "$nlist"T "$nlist"'
- case $host in
- *cygwin* | *mingw* | *cegcc* )
-- echo EXPORTS > "$output_objdir/$outputname.def"
-- cat "$nlist" >> "$output_objdir/$outputname.def"
-+ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
-+ eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
- ;;
- esac
- }
-@@ -2620,10 +3352,52 @@ extern \"C\" {
- func_verbose "extracting global C symbols from \`$dlprefile'"
- func_basename "$dlprefile"
- name="$func_basename_result"
-- $opt_dry_run || {
-- $ECHO ": $name " >> "$nlist"
-- eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
-- }
-+ case $host in
-+ *cygwin* | *mingw* | *cegcc* )
-+ # if an import library, we need to obtain dlname
-+ if func_win32_import_lib_p "$dlprefile"; then
-+ func_tr_sh "$dlprefile"
-+ eval "curr_lafile=\$libfile_$func_tr_sh_result"
-+ dlprefile_dlbasename=""
-+ if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
-+ # Use subshell, to avoid clobbering current variable values
-+ dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
-+ if test -n "$dlprefile_dlname" ; then
-+ func_basename "$dlprefile_dlname"
-+ dlprefile_dlbasename="$func_basename_result"
-+ else
-+ # no lafile. user explicitly requested -dlpreopen <import library>.
-+ $sharedlib_from_linklib_cmd "$dlprefile"
-+ dlprefile_dlbasename=$sharedlib_from_linklib_result
-+ fi
-+ fi
-+ $opt_dry_run || {
-+ if test -n "$dlprefile_dlbasename" ; then
-+ eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
-+ else
-+ func_warning "Could not compute DLL name from $name"
-+ eval '$ECHO ": $name " >> "$nlist"'
-+ fi
-+ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
-+ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
-+ $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
-+ }
-+ else # not an import lib
-+ $opt_dry_run || {
-+ eval '$ECHO ": $name " >> "$nlist"'
-+ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
-+ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
-+ }
-+ fi
-+ ;;
-+ *)
-+ $opt_dry_run || {
-+ eval '$ECHO ": $name " >> "$nlist"'
-+ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
-+ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
-+ }
-+ ;;
-+ esac
- done
-
- $opt_dry_run || {
-@@ -2661,26 +3435,9 @@ typedef struct {
- const char *name;
- void *address;
- } lt_dlsymlist;
--"
-- case $host in
-- *cygwin* | *mingw* | *cegcc* )
-- echo >> "$output_objdir/$my_dlsyms" "\
--/* DATA imports from DLLs on WIN32 con't be const, because
-- runtime relocations are performed -- see ld's documentation
-- on pseudo-relocs. */"
-- lt_dlsym_const= ;;
-- *osf5*)
-- echo >> "$output_objdir/$my_dlsyms" "\
--/* This system does not cope well with relocations in const data */"
-- lt_dlsym_const= ;;
-- *)
-- lt_dlsym_const=const ;;
-- esac
--
-- echo >> "$output_objdir/$my_dlsyms" "\
--extern $lt_dlsym_const lt_dlsymlist
-+extern LT_DLSYM_CONST lt_dlsymlist
- lt_${my_prefix}_LTX_preloaded_symbols[];
--$lt_dlsym_const lt_dlsymlist
-+LT_DLSYM_CONST lt_dlsymlist
- lt_${my_prefix}_LTX_preloaded_symbols[] =
- {\
- { \"$my_originator\", (void *) 0 },"
-@@ -2736,7 +3493,7 @@ static const void *lt_preloaded_setup() {
- for arg in $LTCFLAGS; do
- case $arg in
- -pie | -fpie | -fPIE) ;;
-- *) symtab_cflags="$symtab_cflags $arg" ;;
-+ *) func_append symtab_cflags " $arg" ;;
- esac
- done
-
-@@ -2796,9 +3553,11 @@ func_win32_libid ()
- win32_libid_type="x86 archive import"
- ;;
- *ar\ archive*) # could be an import, or static
-- if $OBJDUMP -f "$1" | $SED -e '10q' 2>/dev/null |
-- $EGREP 'file format (pe-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
-- win32_nmres=`$NM -f posix -A "$1" |
-+ # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
-+ if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
-+ $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
-+ func_to_tool_file "$1" func_convert_file_msys_to_w32
-+ win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
- $SED -n -e '
- 1,100{
- / I /{
-@@ -2827,6 +3586,131 @@ func_win32_libid ()
- $ECHO "$win32_libid_type"
- }
-
-+# func_cygming_dll_for_implib ARG
-+#
-+# Platform-specific function to extract the
-+# name of the DLL associated with the specified
-+# import library ARG.
-+# Invoked by eval'ing the libtool variable
-+# $sharedlib_from_linklib_cmd
-+# Result is available in the variable
-+# $sharedlib_from_linklib_result
-+func_cygming_dll_for_implib ()
-+{
-+ $opt_debug
-+ sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
-+}
-+
-+# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
-+#
-+# The is the core of a fallback implementation of a
-+# platform-specific function to extract the name of the
-+# DLL associated with the specified import library LIBNAME.
-+#
-+# SECTION_NAME is either .idata$6 or .idata$7, depending
-+# on the platform and compiler that created the implib.
-+#
-+# Echos the name of the DLL associated with the
-+# specified import library.
-+func_cygming_dll_for_implib_fallback_core ()
-+{
-+ $opt_debug
-+ match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
-+ $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
-+ $SED '/^Contents of section '"$match_literal"':/{
-+ # Place marker at beginning of archive member dllname section
-+ s/.*/====MARK====/
-+ p
-+ d
-+ }
-+ # These lines can sometimes be longer than 43 characters, but
-+ # are always uninteresting
-+ /:[ ]*file format pe[i]\{,1\}-/d
-+ /^In archive [^:]*:/d
-+ # Ensure marker is printed
-+ /^====MARK====/p
-+ # Remove all lines with less than 43 characters
-+ /^.\{43\}/!d
-+ # From remaining lines, remove first 43 characters
-+ s/^.\{43\}//' |
-+ $SED -n '
-+ # Join marker and all lines until next marker into a single line
-+ /^====MARK====/ b para
-+ H
-+ $ b para
-+ b
-+ :para
-+ x
-+ s/\n//g
-+ # Remove the marker
-+ s/^====MARK====//
-+ # Remove trailing dots and whitespace
-+ s/[\. \t]*$//
-+ # Print
-+ /./p' |
-+ # we now have a list, one entry per line, of the stringified
-+ # contents of the appropriate section of all members of the
-+ # archive which possess that section. Heuristic: eliminate
-+ # all those which have a first or second character that is
-+ # a '.' (that is, objdump's representation of an unprintable
-+ # character.) This should work for all archives with less than
-+ # 0x302f exports -- but will fail for DLLs whose name actually
-+ # begins with a literal '.' or a single character followed by
-+ # a '.'.
-+ #
-+ # Of those that remain, print the first one.
-+ $SED -e '/^\./d;/^.\./d;q'
-+}
-+
-+# func_cygming_gnu_implib_p ARG
-+# This predicate returns with zero status (TRUE) if
-+# ARG is a GNU/binutils-style import library. Returns
-+# with nonzero status (FALSE) otherwise.
-+func_cygming_gnu_implib_p ()
-+{
-+ $opt_debug
-+ func_to_tool_file "$1" func_convert_file_msys_to_w32
-+ func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
-+ test -n "$func_cygming_gnu_implib_tmp"
-+}
-+
-+# func_cygming_ms_implib_p ARG
-+# This predicate returns with zero status (TRUE) if
-+# ARG is an MS-style import library. Returns
-+# with nonzero status (FALSE) otherwise.
-+func_cygming_ms_implib_p ()
-+{
-+ $opt_debug
-+ func_to_tool_file "$1" func_convert_file_msys_to_w32
-+ func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
-+ test -n "$func_cygming_ms_implib_tmp"
-+}
-+
-+# func_cygming_dll_for_implib_fallback ARG
-+# Platform-specific function to extract the
-+# name of the DLL associated with the specified
-+# import library ARG.
-+#
-+# This fallback implementation is for use when $DLLTOOL
-+# does not support the --identify-strict option.
-+# Invoked by eval'ing the libtool variable
-+# $sharedlib_from_linklib_cmd
-+# Result is available in the variable
-+# $sharedlib_from_linklib_result
-+func_cygming_dll_for_implib_fallback ()
-+{
-+ $opt_debug
-+ if func_cygming_gnu_implib_p "$1" ; then
-+ # binutils import library
-+ sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
-+ elif func_cygming_ms_implib_p "$1" ; then
-+ # ms-generated import library
-+ sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
-+ else
-+ # unknown
-+ sharedlib_from_linklib_result=""
-+ fi
-+}
-
-
- # func_extract_an_archive dir oldlib
-@@ -2917,7 +3801,7 @@ func_extract_archives ()
- darwin_file=
- darwin_files=
- for darwin_file in $darwin_filelist; do
-- darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
-+ darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
- $LIPO -create -output "$darwin_file" $darwin_files
- done # $darwin_filelist
- $RM -rf unfat-$$
-@@ -2932,7 +3816,7 @@ func_extract_archives ()
- func_extract_an_archive "$my_xdir" "$my_xabs"
- ;;
- esac
-- my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
-+ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
- done
-
- func_extract_archives_result="$my_oldobjs"
-@@ -3014,7 +3898,110 @@ func_fallback_echo ()
- _LTECHO_EOF'
- }
- ECHO=\"$qECHO\"
-- fi\
-+ fi
-+
-+# Very basic option parsing. These options are (a) specific to
-+# the libtool wrapper, (b) are identical between the wrapper
-+# /script/ and the wrapper /executable/ which is used only on
-+# windows platforms, and (c) all begin with the string "--lt-"
-+# (application programs are unlikely to have options which match
-+# this pattern).
-+#
-+# There are only two supported options: --lt-debug and
-+# --lt-dump-script. There is, deliberately, no --lt-help.
-+#
-+# The first argument to this parsing function should be the
-+# script's $0 value, followed by "$@".
-+lt_option_debug=
-+func_parse_lt_options ()
-+{
-+ lt_script_arg0=\$0
-+ shift
-+ for lt_opt
-+ do
-+ case \"\$lt_opt\" in
-+ --lt-debug) lt_option_debug=1 ;;
-+ --lt-dump-script)
-+ lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
-+ test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
-+ lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
-+ cat \"\$lt_dump_D/\$lt_dump_F\"
-+ exit 0
-+ ;;
-+ --lt-*)
-+ \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
-+ exit 1
-+ ;;
-+ esac
-+ done
-+
-+ # Print the debug banner immediately:
-+ if test -n \"\$lt_option_debug\"; then
-+ echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
-+ fi
-+}
-+
-+# Used when --lt-debug. Prints its arguments to stdout
-+# (redirection is the responsibility of the caller)
-+func_lt_dump_args ()
-+{
-+ lt_dump_args_N=1;
-+ for lt_arg
-+ do
-+ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
-+ lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
-+ done
-+}
-+
-+# Core function for launching the target application
-+func_exec_program_core ()
-+{
-+"
-+ case $host in
-+ # Backslashes separate directories on plain windows
-+ *-*-mingw | *-*-os2* | *-cegcc*)
-+ $ECHO "\
-+ if test -n \"\$lt_option_debug\"; then
-+ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
-+ func_lt_dump_args \${1+\"\$@\"} 1>&2
-+ fi
-+ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
-+"
-+ ;;
-+
-+ *)
-+ $ECHO "\
-+ if test -n \"\$lt_option_debug\"; then
-+ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
-+ func_lt_dump_args \${1+\"\$@\"} 1>&2
-+ fi
-+ exec \"\$progdir/\$program\" \${1+\"\$@\"}
-+"
-+ ;;
-+ esac
-+ $ECHO "\
-+ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
-+ exit 1
-+}
-+
-+# A function to encapsulate launching the target application
-+# Strips options in the --lt-* namespace from \$@ and
-+# launches target application with the remaining arguments.
-+func_exec_program ()
-+{
-+ for lt_wr_arg
-+ do
-+ case \$lt_wr_arg in
-+ --lt-*) ;;
-+ *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
-+ esac
-+ shift
-+ done
-+ func_exec_program_core \${1+\"\$@\"}
-+}
-+
-+ # Parse options
-+ func_parse_lt_options \"\$0\" \${1+\"\$@\"}
-
- # Find the directory that this script lives in.
- thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
-@@ -3078,7 +4065,7 @@ _LTECHO_EOF'
-
- # relink executable if necessary
- if test -n \"\$relink_command\"; then
-- if relink_command_output=\`eval \"\$relink_command\" 2>&1\`; then :
-+ if relink_command_output=\`eval \$relink_command 2>&1\`; then :
- else
- $ECHO \"\$relink_command_output\" >&2
- $RM \"\$progdir/\$file\"
-@@ -3102,6 +4089,18 @@ _LTECHO_EOF'
-
- if test -f \"\$progdir/\$program\"; then"
-
-+ # fixup the dll searchpath if we need to.
-+ #
-+ # Fix the DLL searchpath if we need to. Do this before prepending
-+ # to shlibpath, because on Windows, both are PATH and uninstalled
-+ # libraries must come first.
-+ if test -n "$dllsearchpath"; then
-+ $ECHO "\
-+ # Add the dll search path components to the executable PATH
-+ PATH=$dllsearchpath:\$PATH
-+"
-+ fi
-+
- # Export our shlibpath_var if we have one.
- if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
- $ECHO "\
-@@ -3116,35 +4115,10 @@ _LTECHO_EOF'
- "
- fi
-
-- # fixup the dll searchpath if we need to.
-- if test -n "$dllsearchpath"; then
-- $ECHO "\
-- # Add the dll search path components to the executable PATH
-- PATH=$dllsearchpath:\$PATH
--"
-- fi
--
- $ECHO "\
- if test \"\$libtool_execute_magic\" != \"$magic\"; then
- # Run the actual program with our arguments.
--"
-- case $host in
-- # Backslashes separate directories on plain windows
-- *-*-mingw | *-*-os2* | *-cegcc*)
-- $ECHO "\
-- exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
--"
-- ;;
--
-- *)
-- $ECHO "\
-- exec \"\$progdir/\$program\" \${1+\"\$@\"}
--"
-- ;;
-- esac
-- $ECHO "\
-- \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
-- exit 1
-+ func_exec_program \${1+\"\$@\"}
- fi
- else
- # The program doesn't exist.
-@@ -3158,166 +4132,6 @@ fi\
- }
-
-
--# func_to_host_path arg
--#
--# Convert paths to host format when used with build tools.
--# Intended for use with "native" mingw (where libtool itself
--# is running under the msys shell), or in the following cross-
--# build environments:
--# $build $host
--# mingw (msys) mingw [e.g. native]
--# cygwin mingw
--# *nix + wine mingw
--# where wine is equipped with the `winepath' executable.
--# In the native mingw case, the (msys) shell automatically
--# converts paths for any non-msys applications it launches,
--# but that facility isn't available from inside the cwrapper.
--# Similar accommodations are necessary for $host mingw and
--# $build cygwin. Calling this function does no harm for other
--# $host/$build combinations not listed above.
--#
--# ARG is the path (on $build) that should be converted to
--# the proper representation for $host. The result is stored
--# in $func_to_host_path_result.
--func_to_host_path ()
--{
-- func_to_host_path_result="$1"
-- if test -n "$1"; then
-- case $host in
-- *mingw* )
-- lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-- case $build in
-- *mingw* ) # actually, msys
-- # awkward: cmd appends spaces to result
-- func_to_host_path_result=`( cmd //c echo "$1" ) 2>/dev/null |
-- $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
-- ;;
-- *cygwin* )
-- func_to_host_path_result=`cygpath -w "$1" |
-- $SED -e "$lt_sed_naive_backslashify"`
-- ;;
-- * )
-- # Unfortunately, winepath does not exit with a non-zero
-- # error code, so we are forced to check the contents of
-- # stdout. On the other hand, if the command is not
-- # found, the shell will set an exit code of 127 and print
-- # *an error message* to stdout. So we must check for both
-- # error code of zero AND non-empty stdout, which explains
-- # the odd construction:
-- func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
-- if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
-- func_to_host_path_result=`$ECHO "$func_to_host_path_tmp1" |
-- $SED -e "$lt_sed_naive_backslashify"`
-- else
-- # Allow warning below.
-- func_to_host_path_result=
-- fi
-- ;;
-- esac
-- if test -z "$func_to_host_path_result" ; then
-- func_error "Could not determine host path corresponding to"
-- func_error " \`$1'"
-- func_error "Continuing, but uninstalled executables may not work."
-- # Fallback:
-- func_to_host_path_result="$1"
-- fi
-- ;;
-- esac
-- fi
--}
--# end: func_to_host_path
--
--# func_to_host_pathlist arg
--#
--# Convert pathlists to host format when used with build tools.
--# See func_to_host_path(), above. This function supports the
--# following $build/$host combinations (but does no harm for
--# combinations not listed here):
--# $build $host
--# mingw (msys) mingw [e.g. native]
--# cygwin mingw
--# *nix + wine mingw
--#
--# Path separators are also converted from $build format to
--# $host format. If ARG begins or ends with a path separator
--# character, it is preserved (but converted to $host format)
--# on output.
--#
--# ARG is a pathlist (on $build) that should be converted to
--# the proper representation on $host. The result is stored
--# in $func_to_host_pathlist_result.
--func_to_host_pathlist ()
--{
-- func_to_host_pathlist_result="$1"
-- if test -n "$1"; then
-- case $host in
-- *mingw* )
-- lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-- # Remove leading and trailing path separator characters from
-- # ARG. msys behavior is inconsistent here, cygpath turns them
-- # into '.;' and ';.', and winepath ignores them completely.
-- func_stripname : : "$1"
-- func_to_host_pathlist_tmp1=$func_stripname_result
-- case $build in
-- *mingw* ) # Actually, msys.
-- # Awkward: cmd appends spaces to result.
-- func_to_host_pathlist_result=`
-- ( cmd //c echo "$func_to_host_pathlist_tmp1" ) 2>/dev/null |
-- $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
-- ;;
-- *cygwin* )
-- func_to_host_pathlist_result=`cygpath -w -p "$func_to_host_pathlist_tmp1" |
-- $SED -e "$lt_sed_naive_backslashify"`
-- ;;
-- * )
-- # unfortunately, winepath doesn't convert pathlists
-- func_to_host_pathlist_result=""
-- func_to_host_pathlist_oldIFS=$IFS
-- IFS=:
-- for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do
-- IFS=$func_to_host_pathlist_oldIFS
-- if test -n "$func_to_host_pathlist_f" ; then
-- func_to_host_path "$func_to_host_pathlist_f"
-- if test -n "$func_to_host_path_result" ; then
-- if test -z "$func_to_host_pathlist_result" ; then
-- func_to_host_pathlist_result="$func_to_host_path_result"
-- else
-- func_append func_to_host_pathlist_result ";$func_to_host_path_result"
-- fi
-- fi
-- fi
-- done
-- IFS=$func_to_host_pathlist_oldIFS
-- ;;
-- esac
-- if test -z "$func_to_host_pathlist_result"; then
-- func_error "Could not determine the host path(s) corresponding to"
-- func_error " \`$1'"
-- func_error "Continuing, but uninstalled executables may not work."
-- # Fallback. This may break if $1 contains DOS-style drive
-- # specifications. The fix is not to complicate the expression
-- # below, but for the user to provide a working wine installation
-- # with winepath so that path translation in the cross-to-mingw
-- # case works properly.
-- lt_replace_pathsep_nix_to_dos="s|:|;|g"
-- func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\
-- $SED -e "$lt_replace_pathsep_nix_to_dos"`
-- fi
-- # Now, add the leading and trailing path separators back
-- case "$1" in
-- :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result"
-- ;;
-- esac
-- case "$1" in
-- *: ) func_append func_to_host_pathlist_result ";"
-- ;;
-- esac
-- ;;
-- esac
-- fi
--}
--# end: func_to_host_pathlist
--
- # func_emit_cwrapperexe_src
- # emit the source code for a wrapper executable on stdout
- # Must ONLY be called from within func_mode_link because
-@@ -3334,10 +4148,6 @@ func_emit_cwrapperexe_src ()
-
- This wrapper executable should never be moved out of the build directory.
- If it is, it will not operate correctly.
--
-- Currently, it simply execs the wrapper *script* "$SHELL $output",
-- but could eventually absorb all of the scripts functionality and
-- exec $objdir/$outputname directly.
- */
- EOF
- cat <<"EOF"
-@@ -3462,22 +4272,13 @@ int setenv (const char *, const char *, int);
- if (stale) { free ((void *) stale); stale = 0; } \
- } while (0)
-
--#undef LTWRAPPER_DEBUGPRINTF
--#if defined LT_DEBUGWRAPPER
--# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args
--static void
--ltwrapper_debugprintf (const char *fmt, ...)
--{
-- va_list args;
-- va_start (args, fmt);
-- (void) vfprintf (stderr, fmt, args);
-- va_end (args);
--}
-+#if defined(LT_DEBUGWRAPPER)
-+static int lt_debug = 1;
- #else
--# define LTWRAPPER_DEBUGPRINTF(args)
-+static int lt_debug = 0;
- #endif
-
--const char *program_name = NULL;
-+const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
-
- void *xmalloc (size_t num);
- char *xstrdup (const char *string);
-@@ -3487,7 +4288,10 @@ char *chase_symlinks (const char *pathspec);
- int make_executable (const char *path);
- int check_executable (const char *path);
- char *strendzap (char *str, const char *pat);
--void lt_fatal (const char *message, ...);
-+void lt_debugprintf (const char *file, int line, const char *fmt, ...);
-+void lt_fatal (const char *file, int line, const char *message, ...);
-+static const char *nonnull (const char *s);
-+static const char *nonempty (const char *s);
- void lt_setenv (const char *name, const char *value);
- char *lt_extend_str (const char *orig_value, const char *add, int to_end);
- void lt_update_exe_path (const char *name, const char *value);
-@@ -3497,14 +4301,14 @@ void lt_dump_script (FILE *f);
- EOF
-
- cat <<EOF
--const char * MAGIC_EXE = "$magic_exe";
-+volatile const char * MAGIC_EXE = "$magic_exe";
- const char * LIB_PATH_VARNAME = "$shlibpath_var";
- EOF
-
- if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-- func_to_host_pathlist "$temp_rpath"
-+ func_to_host_path "$temp_rpath"
- cat <<EOF
--const char * LIB_PATH_VALUE = "$func_to_host_pathlist_result";
-+const char * LIB_PATH_VALUE = "$func_to_host_path_result";
- EOF
- else
- cat <<"EOF"
-@@ -3513,10 +4317,10 @@ EOF
- fi
-
- if test -n "$dllsearchpath"; then
-- func_to_host_pathlist "$dllsearchpath:"
-+ func_to_host_path "$dllsearchpath:"
- cat <<EOF
- const char * EXE_PATH_VARNAME = "PATH";
--const char * EXE_PATH_VALUE = "$func_to_host_pathlist_result";
-+const char * EXE_PATH_VALUE = "$func_to_host_path_result";
- EOF
- else
- cat <<"EOF"
-@@ -3539,12 +4343,10 @@ EOF
- cat <<"EOF"
-
- #define LTWRAPPER_OPTION_PREFIX "--lt-"
--#define LTWRAPPER_OPTION_PREFIX_LENGTH 5
-
--static const size_t opt_prefix_len = LTWRAPPER_OPTION_PREFIX_LENGTH;
- static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
--
- static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
-+static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug";
-
- int
- main (int argc, char *argv[])
-@@ -3561,10 +4363,13 @@ main (int argc, char *argv[])
- int i;
-
- program_name = (char *) xstrdup (base_name (argv[0]));
-- LTWRAPPER_DEBUGPRINTF (("(main) argv[0] : %s\n", argv[0]));
-- LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name));
-+ newargz = XMALLOC (char *, argc + 1);
-
-- /* very simple arg parsing; don't want to rely on getopt */
-+ /* very simple arg parsing; don't want to rely on getopt
-+ * also, copy all non cwrapper options to newargz, except
-+ * argz[0], which is handled differently
-+ */
-+ newargc=0;
- for (i = 1; i < argc; i++)
- {
- if (strcmp (argv[i], dumpscript_opt) == 0)
-@@ -3581,21 +4386,54 @@ EOF
- lt_dump_script (stdout);
- return 0;
- }
-+ if (strcmp (argv[i], debug_opt) == 0)
-+ {
-+ lt_debug = 1;
-+ continue;
-+ }
-+ if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
-+ {
-+ /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
-+ namespace, but it is not one of the ones we know about and
-+ have already dealt with, above (inluding dump-script), then
-+ report an error. Otherwise, targets might begin to believe
-+ they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
-+ namespace. The first time any user complains about this, we'll
-+ need to make LTWRAPPER_OPTION_PREFIX a configure-time option
-+ or a configure.ac-settable value.
-+ */
-+ lt_fatal (__FILE__, __LINE__,
-+ "unrecognized %s option: '%s'",
-+ ltwrapper_option_prefix, argv[i]);
-+ }
-+ /* otherwise ... */
-+ newargz[++newargc] = xstrdup (argv[i]);
- }
-+ newargz[++newargc] = NULL;
-+
-+EOF
-+ cat <<EOF
-+ /* The GNU banner must be the first non-error debug message */
-+ lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
-+EOF
-+ cat <<"EOF"
-+ lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
-+ lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
-
-- newargz = XMALLOC (char *, argc + 1);
- tmp_pathspec = find_executable (argv[0]);
- if (tmp_pathspec == NULL)
-- lt_fatal ("Couldn't find %s", argv[0]);
-- LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n",
-- tmp_pathspec));
-+ lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
-+ lt_debugprintf (__FILE__, __LINE__,
-+ "(main) found exe (before symlink chase) at: %s\n",
-+ tmp_pathspec);
-
- actual_cwrapper_path = chase_symlinks (tmp_pathspec);
-- LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n",
-- actual_cwrapper_path));
-+ lt_debugprintf (__FILE__, __LINE__,
-+ "(main) found exe (after symlink chase) at: %s\n",
-+ actual_cwrapper_path);
- XFREE (tmp_pathspec);
-
-- actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path));
-+ actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
- strendzap (actual_cwrapper_path, actual_cwrapper_name);
-
- /* wrapper name transforms */
-@@ -3613,8 +4451,9 @@ EOF
- target_name = tmp_pathspec;
- tmp_pathspec = 0;
-
-- LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n",
-- target_name));
-+ lt_debugprintf (__FILE__, __LINE__,
-+ "(main) libtool target name: %s\n",
-+ target_name);
- EOF
-
- cat <<EOF
-@@ -3664,35 +4503,19 @@ EOF
-
- lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
- lt_setenv ("DUALCASE", "1"); /* for MSK sh */
-- lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
-+ /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must
-+ be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
-+ because on Windows, both *_VARNAMEs are PATH but uninstalled
-+ libraries must come first. */
- lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
-+ lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
-
-- newargc=0;
-- for (i = 1; i < argc; i++)
-- {
-- if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0)
-- {
-- /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
-- namespace, but it is not one of the ones we know about and
-- have already dealt with, above (inluding dump-script), then
-- report an error. Otherwise, targets might begin to believe
-- they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
-- namespace. The first time any user complains about this, we'll
-- need to make LTWRAPPER_OPTION_PREFIX a configure-time option
-- or a configure.ac-settable value.
-- */
-- lt_fatal ("Unrecognized option in %s namespace: '%s'",
-- ltwrapper_option_prefix, argv[i]);
-- }
-- /* otherwise ... */
-- newargz[++newargc] = xstrdup (argv[i]);
-- }
-- newargz[++newargc] = NULL;
--
-- LTWRAPPER_DEBUGPRINTF (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>")));
-+ lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
-+ nonnull (lt_argv_zero));
- for (i = 0; i < newargc; i++)
- {
-- LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>")));
-+ lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
-+ i, nonnull (newargz[i]));
- }
-
- EOF
-@@ -3706,7 +4529,9 @@ EOF
- if (rval == -1)
- {
- /* failed to start process */
-- LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno));
-+ lt_debugprintf (__FILE__, __LINE__,
-+ "(main) failed to launch target \"%s\": %s\n",
-+ lt_argv_zero, nonnull (strerror (errno)));
- return 127;
- }
- return rval;
-@@ -3728,7 +4553,7 @@ xmalloc (size_t num)
- {
- void *p = (void *) malloc (num);
- if (!p)
-- lt_fatal ("Memory exhausted");
-+ lt_fatal (__FILE__, __LINE__, "memory exhausted");
-
- return p;
- }
-@@ -3762,8 +4587,8 @@ check_executable (const char *path)
- {
- struct stat st;
-
-- LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n",
-- path ? (*path ? path : "EMPTY!") : "NULL!"));
-+ lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
-+ nonempty (path));
- if ((!path) || (!*path))
- return 0;
-
-@@ -3780,8 +4605,8 @@ make_executable (const char *path)
- int rval = 0;
- struct stat st;
-
-- LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n",
-- path ? (*path ? path : "EMPTY!") : "NULL!"));
-+ lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
-+ nonempty (path));
- if ((!path) || (!*path))
- return 0;
-
-@@ -3807,8 +4632,8 @@ find_executable (const char *wrapper)
- int tmp_len;
- char *concat_name;
-
-- LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n",
-- wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"));
-+ lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
-+ nonempty (wrapper));
-
- if ((wrapper == NULL) || (*wrapper == '\0'))
- return NULL;
-@@ -3861,7 +4686,8 @@ find_executable (const char *wrapper)
- {
- /* empty path: current directory */
- if (getcwd (tmp, LT_PATHMAX) == NULL)
-- lt_fatal ("getcwd failed");
-+ lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
-+ nonnull (strerror (errno)));
- tmp_len = strlen (tmp);
- concat_name =
- XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
-@@ -3886,7 +4712,8 @@ find_executable (const char *wrapper)
- }
- /* Relative path | not found in path: prepend cwd */
- if (getcwd (tmp, LT_PATHMAX) == NULL)
-- lt_fatal ("getcwd failed");
-+ lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
-+ nonnull (strerror (errno)));
- tmp_len = strlen (tmp);
- concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
- memcpy (concat_name, tmp, tmp_len);
-@@ -3912,8 +4739,9 @@ chase_symlinks (const char *pathspec)
- int has_symlinks = 0;
- while (strlen (tmp_pathspec) && !has_symlinks)
- {
-- LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n",
-- tmp_pathspec));
-+ lt_debugprintf (__FILE__, __LINE__,
-+ "checking path component for symlinks: %s\n",
-+ tmp_pathspec);
- if (lstat (tmp_pathspec, &s) == 0)
- {
- if (S_ISLNK (s.st_mode) != 0)
-@@ -3935,8 +4763,9 @@ chase_symlinks (const char *pathspec)
- }
- else
- {
-- char *errstr = strerror (errno);
-- lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr);
-+ lt_fatal (__FILE__, __LINE__,
-+ "error accessing file \"%s\": %s",
-+ tmp_pathspec, nonnull (strerror (errno)));
- }
- }
- XFREE (tmp_pathspec);
-@@ -3949,7 +4778,8 @@ chase_symlinks (const char *pathspec)
- tmp_pathspec = realpath (pathspec, buf);
- if (tmp_pathspec == 0)
- {
-- lt_fatal ("Could not follow symlinks for %s", pathspec);
-+ lt_fatal (__FILE__, __LINE__,
-+ "could not follow symlinks for %s", pathspec);
- }
- return xstrdup (tmp_pathspec);
- #endif
-@@ -3975,11 +4805,25 @@ strendzap (char *str, const char *pat)
- return str;
- }
-
-+void
-+lt_debugprintf (const char *file, int line, const char *fmt, ...)
-+{
-+ va_list args;
-+ if (lt_debug)
-+ {
-+ (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
-+ va_start (args, fmt);
-+ (void) vfprintf (stderr, fmt, args);
-+ va_end (args);
-+ }
-+}
-+
- static void
--lt_error_core (int exit_status, const char *mode,
-+lt_error_core (int exit_status, const char *file,
-+ int line, const char *mode,
- const char *message, va_list ap)
- {
-- fprintf (stderr, "%s: %s: ", program_name, mode);
-+ fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
- vfprintf (stderr, message, ap);
- fprintf (stderr, ".\n");
-
-@@ -3988,20 +4832,32 @@ lt_error_core (int exit_status, const char *mode,
- }
-
- void
--lt_fatal (const char *message, ...)
-+lt_fatal (const char *file, int line, const char *message, ...)
- {
- va_list ap;
- va_start (ap, message);
-- lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
-+ lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
- va_end (ap);
- }
-
-+static const char *
-+nonnull (const char *s)
-+{
-+ return s ? s : "(null)";
-+}
-+
-+static const char *
-+nonempty (const char *s)
-+{
-+ return (s && !*s) ? "(empty)" : nonnull (s);
-+}
-+
- void
- lt_setenv (const char *name, const char *value)
- {
-- LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n",
-- (name ? name : "<NULL>"),
-- (value ? value : "<NULL>")));
-+ lt_debugprintf (__FILE__, __LINE__,
-+ "(lt_setenv) setting '%s' to '%s'\n",
-+ nonnull (name), nonnull (value));
- {
- #ifdef HAVE_SETENV
- /* always make a copy, for consistency with !HAVE_SETENV */
-@@ -4049,9 +4905,9 @@ lt_extend_str (const char *orig_value, const char *add, int to_end)
- void
- lt_update_exe_path (const char *name, const char *value)
- {
-- LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
-- (name ? name : "<NULL>"),
-- (value ? value : "<NULL>")));
-+ lt_debugprintf (__FILE__, __LINE__,
-+ "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
-+ nonnull (name), nonnull (value));
-
- if (name && *name && value && *value)
- {
-@@ -4070,9 +4926,9 @@ lt_update_exe_path (const char *name, const char *value)
- void
- lt_update_lib_path (const char *name, const char *value)
- {
-- LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
-- (name ? name : "<NULL>"),
-- (value ? value : "<NULL>")));
-+ lt_debugprintf (__FILE__, __LINE__,
-+ "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
-+ nonnull (name), nonnull (value));
-
- if (name && *name && value && *value)
- {
-@@ -4222,7 +5078,7 @@ EOF
- func_win32_import_lib_p ()
- {
- $opt_debug
-- case `eval "$file_magic_cmd \"\$1\" 2>/dev/null" | $SED -e 10q` in
-+ case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
- *import*) : ;;
- *) false ;;
- esac
-@@ -4401,9 +5257,9 @@ func_mode_link ()
- ;;
- *)
- if test "$prev" = dlfiles; then
-- dlfiles="$dlfiles $arg"
-+ func_append dlfiles " $arg"
- else
-- dlprefiles="$dlprefiles $arg"
-+ func_append dlprefiles " $arg"
- fi
- prev=
- continue
-@@ -4427,7 +5283,7 @@ func_mode_link ()
- *-*-darwin*)
- case "$deplibs " in
- *" $qarg.ltframework "*) ;;
-- *) deplibs="$deplibs $qarg.ltframework" # this is fixed later
-+ *) func_append deplibs " $qarg.ltframework" # this is fixed later
- ;;
- esac
- ;;
-@@ -4446,7 +5302,7 @@ func_mode_link ()
- moreargs=
- for fil in `cat "$save_arg"`
- do
--# moreargs="$moreargs $fil"
-+# func_append moreargs " $fil"
- arg=$fil
- # A libtool-controlled object.
-
-@@ -4475,7 +5331,7 @@ func_mode_link ()
-
- if test "$prev" = dlfiles; then
- if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-- dlfiles="$dlfiles $pic_object"
-+ func_append dlfiles " $pic_object"
- prev=
- continue
- else
-@@ -4487,7 +5343,7 @@ func_mode_link ()
- # CHECK ME: I think I busted this. -Ossama
- if test "$prev" = dlprefiles; then
- # Preload the old-style object.
-- dlprefiles="$dlprefiles $pic_object"
-+ func_append dlprefiles " $pic_object"
- prev=
- fi
-
-@@ -4557,12 +5413,12 @@ func_mode_link ()
- if test "$prev" = rpath; then
- case "$rpath " in
- *" $arg "*) ;;
-- *) rpath="$rpath $arg" ;;
-+ *) func_append rpath " $arg" ;;
- esac
- else
- case "$xrpath " in
- *" $arg "*) ;;
-- *) xrpath="$xrpath $arg" ;;
-+ *) func_append xrpath " $arg" ;;
- esac
- fi
- prev=
-@@ -4574,28 +5430,28 @@ func_mode_link ()
- continue
- ;;
- weak)
-- weak_libs="$weak_libs $arg"
-+ func_append weak_libs " $arg"
- prev=
- continue
- ;;
- xcclinker)
-- linker_flags="$linker_flags $qarg"
-- compiler_flags="$compiler_flags $qarg"
-+ func_append linker_flags " $qarg"
-+ func_append compiler_flags " $qarg"
- prev=
- func_append compile_command " $qarg"
- func_append finalize_command " $qarg"
- continue
- ;;
- xcompiler)
-- compiler_flags="$compiler_flags $qarg"
-+ func_append compiler_flags " $qarg"
- prev=
- func_append compile_command " $qarg"
- func_append finalize_command " $qarg"
- continue
- ;;
- xlinker)
-- linker_flags="$linker_flags $qarg"
-- compiler_flags="$compiler_flags $wl$qarg"
-+ func_append linker_flags " $qarg"
-+ func_append compiler_flags " $wl$qarg"
- prev=
- func_append compile_command " $wl$qarg"
- func_append finalize_command " $wl$qarg"
-@@ -4686,15 +5542,16 @@ func_mode_link ()
- ;;
-
- -L*)
-- func_stripname '-L' '' "$arg"
-- dir=$func_stripname_result
-- if test -z "$dir"; then
-+ func_stripname "-L" '' "$arg"
-+ if test -z "$func_stripname_result"; then
- if test "$#" -gt 0; then
- func_fatal_error "require no space between \`-L' and \`$1'"
- else
- func_fatal_error "need path for \`-L' option"
- fi
- fi
-+ func_resolve_sysroot "$func_stripname_result"
-+ dir=$func_resolve_sysroot_result
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
-@@ -4706,10 +5563,16 @@ func_mode_link ()
- ;;
- esac
- case "$deplibs " in
-- *" -L$dir "*) ;;
-+ *" -L$dir "* | *" $arg "*)
-+ # Will only happen for absolute or sysroot arguments
-+ ;;
- *)
-- deplibs="$deplibs -L$dir"
-- lib_search_path="$lib_search_path $dir"
-+ # Preserve sysroot, but never include relative directories
-+ case $dir in
-+ [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
-+ *) func_append deplibs " -L$dir" ;;
-+ esac
-+ func_append lib_search_path " $dir"
- ;;
- esac
- case $host in
-@@ -4718,12 +5581,12 @@ func_mode_link ()
- case :$dllsearchpath: in
- *":$dir:"*) ;;
- ::) dllsearchpath=$dir;;
-- *) dllsearchpath="$dllsearchpath:$dir";;
-+ *) func_append dllsearchpath ":$dir";;
- esac
- case :$dllsearchpath: in
- *":$testbindir:"*) ;;
- ::) dllsearchpath=$testbindir;;
-- *) dllsearchpath="$dllsearchpath:$testbindir";;
-+ *) func_append dllsearchpath ":$testbindir";;
- esac
- ;;
- esac
-@@ -4747,7 +5610,7 @@ func_mode_link ()
- ;;
- *-*-rhapsody* | *-*-darwin1.[012])
- # Rhapsody C and math libraries are in the System framework
-- deplibs="$deplibs System.ltframework"
-+ func_append deplibs " System.ltframework"
- continue
- ;;
- *-*-sco3.2v5* | *-*-sco5v6*)
-@@ -4758,9 +5621,6 @@ func_mode_link ()
- # Compiler inserts libc in the correct place for threads to work
- test "X$arg" = "X-lc" && continue
- ;;
-- *-*-linux*)
-- test "X$arg" = "X-lc" && continue
-- ;;
- esac
- elif test "X$arg" = "X-lc_r"; then
- case $host in
-@@ -4770,7 +5630,7 @@ func_mode_link ()
- ;;
- esac
- fi
-- deplibs="$deplibs $arg"
-+ func_append deplibs " $arg"
- continue
- ;;
-
-@@ -4782,8 +5642,8 @@ func_mode_link ()
- # Tru64 UNIX uses -model [arg] to determine the layout of C++
- # classes, name mangling, and exception handling.
- # Darwin uses the -arch flag to determine output architecture.
-- -model|-arch|-isysroot)
-- compiler_flags="$compiler_flags $arg"
-+ -model|-arch|-isysroot|--sysroot)
-+ func_append compiler_flags " $arg"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- prev=xcompiler
-@@ -4791,12 +5651,12 @@ func_mode_link ()
- ;;
-
- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
-- compiler_flags="$compiler_flags $arg"
-+ func_append compiler_flags " $arg"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- case "$new_inherited_linker_flags " in
- *" $arg "*) ;;
-- * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
-+ * ) func_append new_inherited_linker_flags " $arg" ;;
- esac
- continue
- ;;
-@@ -4863,13 +5723,17 @@ func_mode_link ()
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
-+ =*)
-+ func_stripname '=' '' "$dir"
-+ dir=$lt_sysroot$func_stripname_result
-+ ;;
- *)
- func_fatal_error "only absolute run-paths are allowed"
- ;;
- esac
- case "$xrpath " in
- *" $dir "*) ;;
-- *) xrpath="$xrpath $dir" ;;
-+ *) func_append xrpath " $dir" ;;
- esac
- continue
- ;;
-@@ -4922,8 +5786,8 @@ func_mode_link ()
- for flag in $args; do
- IFS="$save_ifs"
- func_quote_for_eval "$flag"
-- arg="$arg $func_quote_for_eval_result"
-- compiler_flags="$compiler_flags $func_quote_for_eval_result"
-+ func_append arg " $func_quote_for_eval_result"
-+ func_append compiler_flags " $func_quote_for_eval_result"
- done
- IFS="$save_ifs"
- func_stripname ' ' '' "$arg"
-@@ -4938,9 +5802,9 @@ func_mode_link ()
- for flag in $args; do
- IFS="$save_ifs"
- func_quote_for_eval "$flag"
-- arg="$arg $wl$func_quote_for_eval_result"
-- compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
-- linker_flags="$linker_flags $func_quote_for_eval_result"
-+ func_append arg " $wl$func_quote_for_eval_result"
-+ func_append compiler_flags " $wl$func_quote_for_eval_result"
-+ func_append linker_flags " $func_quote_for_eval_result"
- done
- IFS="$save_ifs"
- func_stripname ' ' '' "$arg"
-@@ -4968,24 +5832,27 @@ func_mode_link ()
- arg="$func_quote_for_eval_result"
- ;;
-
-- # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
-- # -r[0-9][0-9]* specifies the processor on the SGI compiler
-- # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
-- # +DA*, +DD* enable 64-bit mode on the HP compiler
-- # -q* pass through compiler args for the IBM compiler
-- # -m*, -t[45]*, -txscale* pass through architecture-specific
-- # compiler args for GCC
-- # -F/path gives path to uninstalled frameworks, gcc on darwin
-- # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
-- # @file GCC response files
-- # -tp=* Portland pgcc target processor selection
-+ # Flags to be passed through unchanged, with rationale:
-+ # -64, -mips[0-9] enable 64-bit mode for the SGI compiler
-+ # -r[0-9][0-9]* specify processor for the SGI compiler
-+ # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
-+ # +DA*, +DD* enable 64-bit mode for the HP compiler
-+ # -q* compiler args for the IBM compiler
-+ # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
-+ # -F/path path to uninstalled frameworks, gcc on darwin
-+ # -p, -pg, --coverage, -fprofile-* profiling flags for GCC
-+ # @file GCC response files
-+ # -tp=* Portland pgcc target processor selection
-+ # --sysroot=* for sysroot support
-+ # -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=*)
-+ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
-+ -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
-- compiler_flags="$compiler_flags $arg"
-+ func_append compiler_flags " $arg"
- continue
- ;;
-
-@@ -4997,7 +5864,7 @@ func_mode_link ()
-
- *.$objext)
- # A standard object.
-- objs="$objs $arg"
-+ func_append objs " $arg"
- ;;
-
- *.lo)
-@@ -5028,7 +5895,7 @@ func_mode_link ()
-
- if test "$prev" = dlfiles; then
- if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-- dlfiles="$dlfiles $pic_object"
-+ func_append dlfiles " $pic_object"
- prev=
- continue
- else
-@@ -5040,7 +5907,7 @@ func_mode_link ()
- # CHECK ME: I think I busted this. -Ossama
- if test "$prev" = dlprefiles; then
- # Preload the old-style object.
-- dlprefiles="$dlprefiles $pic_object"
-+ func_append dlprefiles " $pic_object"
- prev=
- fi
-
-@@ -5085,24 +5952,25 @@ func_mode_link ()
-
- *.$libext)
- # An archive.
-- deplibs="$deplibs $arg"
-- old_deplibs="$old_deplibs $arg"
-+ func_append deplibs " $arg"
-+ func_append old_deplibs " $arg"
- continue
- ;;
-
- *.la)
- # A libtool-controlled library.
-
-+ func_resolve_sysroot "$arg"
- if test "$prev" = dlfiles; then
- # This library was specified with -dlopen.
-- dlfiles="$dlfiles $arg"
-+ func_append dlfiles " $func_resolve_sysroot_result"
- prev=
- elif test "$prev" = dlprefiles; then
- # The library was specified with -dlpreopen.
-- dlprefiles="$dlprefiles $arg"
-+ func_append dlprefiles " $func_resolve_sysroot_result"
- prev=
- else
-- deplibs="$deplibs $arg"
-+ func_append deplibs " $func_resolve_sysroot_result"
- fi
- continue
- ;;
-@@ -5127,7 +5995,7 @@ func_mode_link ()
- func_fatal_help "the \`$prevarg' option requires an argument"
-
- if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
-- eval "arg=\"$export_dynamic_flag_spec\""
-+ eval arg=\"$export_dynamic_flag_spec\"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- fi
-@@ -5144,11 +6012,13 @@ func_mode_link ()
- else
- shlib_search_path=
- fi
-- eval "sys_lib_search_path=\"$sys_lib_search_path_spec\""
-- eval "sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\""
-+ eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
-+ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
-
- func_dirname "$output" "/" ""
- output_objdir="$func_dirname_result$objdir"
-+ func_to_tool_file "$output_objdir/"
-+ tool_output_objdir=$func_to_tool_file_result
- # Create the object directory.
- func_mkdir_p "$output_objdir"
-
-@@ -5169,12 +6039,12 @@ func_mode_link ()
- # Find all interdependent deplibs by searching for libraries
- # that are linked more than once (e.g. -la -lb -la)
- for deplib in $deplibs; do
-- if $opt_duplicate_deps ; then
-+ if $opt_preserve_dup_deps ; then
- case "$libs " in
-- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-+ *" $deplib "*) func_append specialdeplibs " $deplib" ;;
- esac
- fi
-- libs="$libs $deplib"
-+ func_append libs " $deplib"
- done
-
- if test "$linkmode" = lib; then
-@@ -5187,9 +6057,9 @@ func_mode_link ()
- if $opt_duplicate_compiler_generated_deps; then
- for pre_post_dep in $predeps $postdeps; do
- case "$pre_post_deps " in
-- *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
-+ *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
- esac
-- pre_post_deps="$pre_post_deps $pre_post_dep"
-+ func_append pre_post_deps " $pre_post_dep"
- done
- fi
- pre_post_deps=
-@@ -5256,8 +6126,9 @@ func_mode_link ()
- for lib in $dlprefiles; do
- # Ignore non-libtool-libs
- dependency_libs=
-+ func_resolve_sysroot "$lib"
- case $lib in
-- *.la) func_source "$lib" ;;
-+ *.la) func_source "$func_resolve_sysroot_result" ;;
- esac
-
- # Collect preopened libtool deplibs, except any this library
-@@ -5267,7 +6138,7 @@ func_mode_link ()
- deplib_base=$func_basename_result
- case " $weak_libs " in
- *" $deplib_base "*) ;;
-- *) deplibs="$deplibs $deplib" ;;
-+ *) func_append deplibs " $deplib" ;;
- esac
- done
- done
-@@ -5288,11 +6159,11 @@ func_mode_link ()
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
-- compiler_flags="$compiler_flags $deplib"
-+ func_append compiler_flags " $deplib"
- if test "$linkmode" = lib ; then
- case "$new_inherited_linker_flags " in
- *" $deplib "*) ;;
-- * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
-+ * ) func_append new_inherited_linker_flags " $deplib" ;;
- esac
- fi
- fi
-@@ -5377,7 +6248,7 @@ func_mode_link ()
- if test "$linkmode" = lib ; then
- case "$new_inherited_linker_flags " in
- *" $deplib "*) ;;
-- * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
-+ * ) func_append new_inherited_linker_flags " $deplib" ;;
- esac
- fi
- fi
-@@ -5390,7 +6261,8 @@ func_mode_link ()
- test "$pass" = conv && continue
- newdependency_libs="$deplib $newdependency_libs"
- func_stripname '-L' '' "$deplib"
-- newlib_search_path="$newlib_search_path $func_stripname_result"
-+ func_resolve_sysroot "$func_stripname_result"
-+ func_append newlib_search_path " $func_resolve_sysroot_result"
- ;;
- prog)
- if test "$pass" = conv; then
-@@ -5404,7 +6276,8 @@ func_mode_link ()
- finalize_deplibs="$deplib $finalize_deplibs"
- fi
- func_stripname '-L' '' "$deplib"
-- newlib_search_path="$newlib_search_path $func_stripname_result"
-+ func_resolve_sysroot "$func_stripname_result"
-+ func_append newlib_search_path " $func_resolve_sysroot_result"
- ;;
- *)
- func_warning "\`-L' is ignored for archives/objects"
-@@ -5415,17 +6288,21 @@ func_mode_link ()
- -R*)
- if test "$pass" = link; then
- func_stripname '-R' '' "$deplib"
-- dir=$func_stripname_result
-+ func_resolve_sysroot "$func_stripname_result"
-+ dir=$func_resolve_sysroot_result
- # Make sure the xrpath contains only unique directories.
- case "$xrpath " in
- *" $dir "*) ;;
-- *) xrpath="$xrpath $dir" ;;
-+ *) func_append xrpath " $dir" ;;
- esac
- fi
- deplibs="$deplib $deplibs"
- continue
- ;;
-- *.la) lib="$deplib" ;;
-+ *.la)
-+ func_resolve_sysroot "$deplib"
-+ lib=$func_resolve_sysroot_result
-+ ;;
- *.$libext)
- if test "$pass" = conv; then
- deplibs="$deplib $deplibs"
-@@ -5488,11 +6365,11 @@ func_mode_link ()
- if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
- # If there is no dlopen support or we're linking statically,
- # we need to preload.
-- newdlprefiles="$newdlprefiles $deplib"
-+ func_append newdlprefiles " $deplib"
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
-- newdlfiles="$newdlfiles $deplib"
-+ func_append newdlfiles " $deplib"
- fi
- fi
- continue
-@@ -5538,7 +6415,7 @@ func_mode_link ()
- for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
- case " $new_inherited_linker_flags " in
- *" $tmp_inherited_linker_flag "*) ;;
-- *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
-+ *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
- esac
- done
- fi
-@@ -5546,8 +6423,8 @@ func_mode_link ()
- if test "$linkmode,$pass" = "lib,link" ||
- test "$linkmode,$pass" = "prog,scan" ||
- { test "$linkmode" != prog && test "$linkmode" != lib; }; then
-- test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
-- test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
-+ test -n "$dlopen" && func_append dlfiles " $dlopen"
-+ test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
- fi
-
- if test "$pass" = conv; then
-@@ -5558,20 +6435,20 @@ func_mode_link ()
- func_fatal_error "cannot find name of link library for \`$lib'"
- fi
- # It is a libtool convenience library, so add in its objects.
-- convenience="$convenience $ladir/$objdir/$old_library"
-- old_convenience="$old_convenience $ladir/$objdir/$old_library"
-+ func_append convenience " $ladir/$objdir/$old_library"
-+ func_append old_convenience " $ladir/$objdir/$old_library"
- elif test "$linkmode" != prog && test "$linkmode" != lib; then
- func_fatal_error "\`$lib' is not a convenience library"
- fi
- tmp_libs=
- for deplib in $dependency_libs; do
- deplibs="$deplib $deplibs"
-- if $opt_duplicate_deps ; then
-+ if $opt_preserve_dup_deps ; then
- case "$tmp_libs " in
-- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-+ *" $deplib "*) func_append specialdeplibs " $deplib" ;;
- esac
- fi
-- tmp_libs="$tmp_libs $deplib"
-+ func_append tmp_libs " $deplib"
- done
- continue
- fi # $pass = conv
-@@ -5579,9 +6456,15 @@ func_mode_link ()
-
- # Get the name of the library we link against.
- linklib=
-- for l in $old_library $library_names; do
-- linklib="$l"
-- done
-+ if test -n "$old_library" &&
-+ { test "$prefer_static_libs" = yes ||
-+ test "$prefer_static_libs,$installed" = "built,no"; }; then
-+ linklib=$old_library
-+ else
-+ for l in $old_library $library_names; do
-+ linklib="$l"
-+ done
-+ fi
- if test -z "$linklib"; then
- func_fatal_error "cannot find name of link library for \`$lib'"
- fi
-@@ -5598,9 +6481,9 @@ func_mode_link ()
- # statically, we need to preload. We also need to preload any
- # dependent libraries so libltdl's deplib preloader doesn't
- # bomb out in the load deplibs phase.
-- dlprefiles="$dlprefiles $lib $dependency_libs"
-+ func_append dlprefiles " $lib $dependency_libs"
- else
-- newdlfiles="$newdlfiles $lib"
-+ func_append newdlfiles " $lib"
- fi
- continue
- fi # $pass = dlopen
-@@ -5622,14 +6505,14 @@ func_mode_link ()
-
- # Find the relevant object directory and library name.
- if test "X$installed" = Xyes; then
-- if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-+ if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
- func_warning "library \`$lib' was moved."
- dir="$ladir"
- absdir="$abs_ladir"
- libdir="$abs_ladir"
- else
-- dir="$libdir"
-- absdir="$libdir"
-+ dir="$lt_sysroot$libdir"
-+ absdir="$lt_sysroot$libdir"
- fi
- test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
- else
-@@ -5637,12 +6520,12 @@ func_mode_link ()
- dir="$ladir"
- absdir="$abs_ladir"
- # Remove this search path later
-- notinst_path="$notinst_path $abs_ladir"
-+ func_append notinst_path " $abs_ladir"
- else
- dir="$ladir/$objdir"
- absdir="$abs_ladir/$objdir"
- # Remove this search path later
-- notinst_path="$notinst_path $abs_ladir"
-+ func_append notinst_path " $abs_ladir"
- fi
- fi # $installed = yes
- func_stripname 'lib' '.la' "$laname"
-@@ -5653,20 +6536,46 @@ func_mode_link ()
- if test -z "$libdir" && test "$linkmode" = prog; then
- func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
- fi
-- # Prefer using a static library (so that no silly _DYNAMIC symbols
-- # are required to link).
-- if test -n "$old_library"; then
-- newdlprefiles="$newdlprefiles $dir/$old_library"
-- # Keep a list of preopened convenience libraries to check
-- # that they are being used correctly in the link pass.
-- test -z "$libdir" && \
-- dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
-- # Otherwise, use the dlname, so that lt_dlopen finds it.
-- elif test -n "$dlname"; then
-- newdlprefiles="$newdlprefiles $dir/$dlname"
-- else
-- newdlprefiles="$newdlprefiles $dir/$linklib"
-- fi
-+ case "$host" in
-+ # special handling for platforms with PE-DLLs.
-+ *cygwin* | *mingw* | *cegcc* )
-+ # Linker will automatically link against shared library if both
-+ # static and shared are present. Therefore, ensure we extract
-+ # symbols from the import library if a shared library is present
-+ # (otherwise, the dlopen module name will be incorrect). We do
-+ # this by putting the import library name into $newdlprefiles.
-+ # We recover the dlopen module name by 'saving' the la file
-+ # name in a special purpose variable, and (later) extracting the
-+ # dlname from the la file.
-+ if test -n "$dlname"; then
-+ func_tr_sh "$dir/$linklib"
-+ eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
-+ func_append newdlprefiles " $dir/$linklib"
-+ else
-+ func_append newdlprefiles " $dir/$old_library"
-+ # Keep a list of preopened convenience libraries to check
-+ # that they are being used correctly in the link pass.
-+ test -z "$libdir" && \
-+ func_append dlpreconveniencelibs " $dir/$old_library"
-+ fi
-+ ;;
-+ * )
-+ # Prefer using a static library (so that no silly _DYNAMIC symbols
-+ # are required to link).
-+ if test -n "$old_library"; then
-+ func_append newdlprefiles " $dir/$old_library"
-+ # Keep a list of preopened convenience libraries to check
-+ # that they are being used correctly in the link pass.
-+ test -z "$libdir" && \
-+ func_append dlpreconveniencelibs " $dir/$old_library"
-+ # Otherwise, use the dlname, so that lt_dlopen finds it.
-+ elif test -n "$dlname"; then
-+ func_append newdlprefiles " $dir/$dlname"
-+ else
-+ func_append newdlprefiles " $dir/$linklib"
-+ fi
-+ ;;
-+ esac
- fi # $pass = dlpreopen
-
- if test -z "$libdir"; then
-@@ -5684,7 +6593,7 @@ func_mode_link ()
-
-
- if test "$linkmode" = prog && test "$pass" != link; then
-- newlib_search_path="$newlib_search_path $ladir"
-+ func_append newlib_search_path " $ladir"
- deplibs="$lib $deplibs"
-
- linkalldeplibs=no
-@@ -5697,7 +6606,8 @@ func_mode_link ()
- for deplib in $dependency_libs; do
- case $deplib in
- -L*) func_stripname '-L' '' "$deplib"
-- newlib_search_path="$newlib_search_path $func_stripname_result"
-+ func_resolve_sysroot "$func_stripname_result"
-+ func_append newlib_search_path " $func_resolve_sysroot_result"
- ;;
- esac
- # Need to link against all dependency_libs?
-@@ -5708,12 +6618,12 @@ func_mode_link ()
- # or/and link against static libraries
- newdependency_libs="$deplib $newdependency_libs"
- fi
-- if $opt_duplicate_deps ; then
-+ if $opt_preserve_dup_deps ; then
- case "$tmp_libs " in
-- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-+ *" $deplib "*) func_append specialdeplibs " $deplib" ;;
- esac
- fi
-- tmp_libs="$tmp_libs $deplib"
-+ func_append tmp_libs " $deplib"
- done # for deplib
- continue
- fi # $linkmode = prog...
-@@ -5728,7 +6638,7 @@ func_mode_link ()
- # Make sure the rpath contains only unique directories.
- case "$temp_rpath:" in
- *"$absdir:"*) ;;
-- *) temp_rpath="$temp_rpath$absdir:" ;;
-+ *) func_append temp_rpath "$absdir:" ;;
- esac
- fi
-
-@@ -5740,7 +6650,7 @@ func_mode_link ()
- *)
- case "$compile_rpath " in
- *" $absdir "*) ;;
-- *) compile_rpath="$compile_rpath $absdir"
-+ *) func_append compile_rpath " $absdir" ;;
- esac
- ;;
- esac
-@@ -5749,7 +6659,7 @@ func_mode_link ()
- *)
- case "$finalize_rpath " in
- *" $libdir "*) ;;
-- *) finalize_rpath="$finalize_rpath $libdir"
-+ *) func_append finalize_rpath " $libdir" ;;
- esac
- ;;
- esac
-@@ -5774,12 +6684,12 @@ func_mode_link ()
- case $host in
- *cygwin* | *mingw* | *cegcc*)
- # No point in relinking DLLs because paths are not encoded
-- notinst_deplibs="$notinst_deplibs $lib"
-+ func_append notinst_deplibs " $lib"
- need_relink=no
- ;;
- *)
- if test "$installed" = no; then
-- notinst_deplibs="$notinst_deplibs $lib"
-+ func_append notinst_deplibs " $lib"
- need_relink=yes
- fi
- ;;
-@@ -5814,7 +6724,7 @@ func_mode_link ()
- *)
- case "$compile_rpath " in
- *" $absdir "*) ;;
-- *) compile_rpath="$compile_rpath $absdir"
-+ *) func_append compile_rpath " $absdir" ;;
- esac
- ;;
- esac
-@@ -5823,7 +6733,7 @@ func_mode_link ()
- *)
- case "$finalize_rpath " in
- *" $libdir "*) ;;
-- *) finalize_rpath="$finalize_rpath $libdir"
-+ *) func_append finalize_rpath " $libdir" ;;
- esac
- ;;
- esac
-@@ -5835,7 +6745,7 @@ func_mode_link ()
- shift
- realname="$1"
- shift
-- eval "libname=\"$libname_spec\""
-+ libname=`eval "\\$ECHO \"$libname_spec\""`
- # use dlname if we got it. it's perfectly good, no?
- if test -n "$dlname"; then
- soname="$dlname"
-@@ -5848,7 +6758,7 @@ func_mode_link ()
- versuffix="-$major"
- ;;
- esac
-- eval "soname=\"$soname_spec\""
-+ eval soname=\"$soname_spec\"
- else
- soname="$realname"
- fi
-@@ -5877,7 +6787,7 @@ func_mode_link ()
- linklib=$newlib
- fi # test -n "$old_archive_from_expsyms_cmds"
-
-- if test "$linkmode" = prog || test "$mode" != relink; then
-+ if test "$linkmode" = prog || test "$opt_mode" != relink; then
- add_shlibpath=
- add_dir=
- add=
-@@ -5933,7 +6843,7 @@ func_mode_link ()
- if test -n "$inst_prefix_dir"; then
- case $libdir in
- [\\/]*)
-- add_dir="$add_dir -L$inst_prefix_dir$libdir"
-+ func_append add_dir " -L$inst_prefix_dir$libdir"
- ;;
- esac
- fi
-@@ -5955,7 +6865,7 @@ func_mode_link ()
- if test -n "$add_shlibpath"; then
- case :$compile_shlibpath: in
- *":$add_shlibpath:"*) ;;
-- *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
-+ *) func_append compile_shlibpath "$add_shlibpath:" ;;
- esac
- fi
- if test "$linkmode" = prog; then
-@@ -5969,13 +6879,13 @@ func_mode_link ()
- test "$hardcode_shlibpath_var" = yes; then
- case :$finalize_shlibpath: in
- *":$libdir:"*) ;;
-- *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
-+ *) func_append finalize_shlibpath "$libdir:" ;;
- esac
- fi
- fi
- fi
-
-- if test "$linkmode" = prog || test "$mode" = relink; then
-+ if test "$linkmode" = prog || test "$opt_mode" = relink; then
- add_shlibpath=
- add_dir=
- add=
-@@ -5989,7 +6899,7 @@ func_mode_link ()
- elif test "$hardcode_shlibpath_var" = yes; then
- case :$finalize_shlibpath: in
- *":$libdir:"*) ;;
-- *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
-+ *) func_append finalize_shlibpath "$libdir:" ;;
- esac
- add="-l$name"
- elif test "$hardcode_automatic" = yes; then
-@@ -6001,12 +6911,12 @@ func_mode_link ()
- fi
- else
- # We cannot seem to hardcode it, guess we'll fake it.
-- add_dir="-L$libdir"
-+ add_dir="-L$lt_sysroot$libdir"
- # Try looking first in the location we're being installed to.
- if test -n "$inst_prefix_dir"; then
- case $libdir in
- [\\/]*)
-- add_dir="$add_dir -L$inst_prefix_dir$libdir"
-+ func_append add_dir " -L$inst_prefix_dir$libdir"
- ;;
- esac
- fi
-@@ -6083,27 +6993,33 @@ func_mode_link ()
- temp_xrpath=$func_stripname_result
- case " $xrpath " in
- *" $temp_xrpath "*) ;;
-- *) xrpath="$xrpath $temp_xrpath";;
-+ *) func_append xrpath " $temp_xrpath";;
- esac;;
-- *) temp_deplibs="$temp_deplibs $libdir";;
-+ *) func_append temp_deplibs " $libdir";;
- esac
- done
- dependency_libs="$temp_deplibs"
- fi
-
-- newlib_search_path="$newlib_search_path $absdir"
-+ func_append newlib_search_path " $absdir"
- # Link against this library
- test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
- # ... and its dependency_libs
- tmp_libs=
- for deplib in $dependency_libs; do
- newdependency_libs="$deplib $newdependency_libs"
-- if $opt_duplicate_deps ; then
-+ case $deplib in
-+ -L*) func_stripname '-L' '' "$deplib"
-+ func_resolve_sysroot "$func_stripname_result";;
-+ *) func_resolve_sysroot "$deplib" ;;
-+ esac
-+ if $opt_preserve_dup_deps ; then
- case "$tmp_libs " in
-- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-+ *" $func_resolve_sysroot_result "*)
-+ func_append specialdeplibs " $func_resolve_sysroot_result" ;;
- esac
- fi
-- tmp_libs="$tmp_libs $deplib"
-+ func_append tmp_libs " $func_resolve_sysroot_result"
- done
-
- if test "$link_all_deplibs" != no; then
-@@ -6113,8 +7029,10 @@ func_mode_link ()
- case $deplib in
- -L*) path="$deplib" ;;
- *.la)
-+ func_resolve_sysroot "$deplib"
-+ deplib=$func_resolve_sysroot_result
- func_dirname "$deplib" "" "."
-- dir="$func_dirname_result"
-+ dir=$func_dirname_result
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
-@@ -6130,7 +7048,7 @@ func_mode_link ()
- case $host in
- *-*-darwin*)
- depdepl=
-- deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
-+ eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
- if test -n "$deplibrary_names" ; then
- for tmp in $deplibrary_names ; do
- depdepl=$tmp
-@@ -6141,8 +7059,8 @@ func_mode_link ()
- if test -z "$darwin_install_name"; then
- darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
- fi
-- compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
-- linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
-+ func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
-+ func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
- path=
- fi
- fi
-@@ -6152,7 +7070,7 @@ func_mode_link ()
- ;;
- esac
- else
-- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
-+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
- test -z "$libdir" && \
- func_fatal_error "\`$deplib' is not a valid libtool archive"
- test "$absdir" != "$libdir" && \
-@@ -6192,7 +7110,7 @@ func_mode_link ()
- for dir in $newlib_search_path; do
- case "$lib_search_path " in
- *" $dir "*) ;;
-- *) lib_search_path="$lib_search_path $dir" ;;
-+ *) func_append lib_search_path " $dir" ;;
- esac
- done
- newlib_search_path=
-@@ -6205,7 +7123,7 @@ func_mode_link ()
- fi
- for var in $vars dependency_libs; do
- # Add libraries to $var in reverse order
-- eval tmp_libs=\$$var
-+ eval tmp_libs=\"\$$var\"
- new_libs=
- for deplib in $tmp_libs; do
- # FIXME: Pedantically, this is the right thing to do, so
-@@ -6250,13 +7168,13 @@ func_mode_link ()
- -L*)
- case " $tmp_libs " in
- *" $deplib "*) ;;
-- *) tmp_libs="$tmp_libs $deplib" ;;
-+ *) func_append tmp_libs " $deplib" ;;
- esac
- ;;
-- *) tmp_libs="$tmp_libs $deplib" ;;
-+ *) func_append tmp_libs " $deplib" ;;
- esac
- done
-- eval $var=\$tmp_libs
-+ eval $var=\"$tmp_libs\"
- done # for var
- fi
- # Last step: remove runtime libs from dependency_libs
-@@ -6269,7 +7187,7 @@ func_mode_link ()
- ;;
- esac
- if test -n "$i" ; then
-- tmp_libs="$tmp_libs $i"
-+ func_append tmp_libs " $i"
- fi
- done
- dependency_libs=$tmp_libs
-@@ -6310,7 +7228,7 @@ func_mode_link ()
- # Now set the variables for building old libraries.
- build_libtool_libs=no
- oldlibs="$output"
-- objs="$objs$old_deplibs"
-+ func_append objs "$old_deplibs"
- ;;
-
- lib)
-@@ -6319,8 +7237,8 @@ func_mode_link ()
- lib*)
- func_stripname 'lib' '.la' "$outputname"
- name=$func_stripname_result
-- eval "shared_ext=\"$shrext_cmds\""
-- eval "libname=\"$libname_spec\""
-+ eval shared_ext=\"$shrext_cmds\"
-+ eval libname=\"$libname_spec\"
- ;;
- *)
- test "$module" = no && \
-@@ -6330,8 +7248,8 @@ func_mode_link ()
- # Add the "lib" prefix for modules if required
- func_stripname '' '.la' "$outputname"
- name=$func_stripname_result
-- eval "shared_ext=\"$shrext_cmds\""
-- eval "libname=\"$libname_spec\""
-+ eval shared_ext=\"$shrext_cmds\"
-+ eval libname=\"$libname_spec\"
- else
- func_stripname '' '.la' "$outputname"
- libname=$func_stripname_result
-@@ -6346,7 +7264,7 @@ func_mode_link ()
- echo
- $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
- $ECHO "*** objects $objs is not portable!"
-- libobjs="$libobjs $objs"
-+ func_append libobjs " $objs"
- fi
- fi
-
-@@ -6544,7 +7462,7 @@ func_mode_link ()
- done
-
- # Make executables depend on our current version.
-- verstring="$verstring:${current}.0"
-+ func_append verstring ":${current}.0"
- ;;
-
- qnx)
-@@ -6612,10 +7530,10 @@ func_mode_link ()
- fi
-
- func_generate_dlsyms "$libname" "$libname" "yes"
-- libobjs="$libobjs $symfileobj"
-+ func_append libobjs " $symfileobj"
- test "X$libobjs" = "X " && libobjs=
-
-- if test "$mode" != relink; then
-+ if test "$opt_mode" != relink; then
- # Remove our outputs, but don't remove object files since they
- # may have been created when compiling PIC objects.
- removelist=
-@@ -6631,7 +7549,7 @@ func_mode_link ()
- continue
- fi
- fi
-- removelist="$removelist $p"
-+ func_append removelist " $p"
- ;;
- *) ;;
- esac
-@@ -6642,7 +7560,7 @@ func_mode_link ()
-
- # Now set the variables for building old libraries.
- if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
-- oldlibs="$oldlibs $output_objdir/$libname.$libext"
-+ func_append oldlibs " $output_objdir/$libname.$libext"
-
- # Transform .lo files to .o files.
- oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
-@@ -6659,10 +7577,11 @@ func_mode_link ()
- # If the user specified any rpath flags, then add them.
- temp_xrpath=
- for libdir in $xrpath; do
-- temp_xrpath="$temp_xrpath -R$libdir"
-+ func_replace_sysroot "$libdir"
-+ func_append temp_xrpath " -R$func_replace_sysroot_result"
- case "$finalize_rpath " in
- *" $libdir "*) ;;
-- *) finalize_rpath="$finalize_rpath $libdir" ;;
-+ *) func_append finalize_rpath " $libdir" ;;
- esac
- done
- if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
-@@ -6676,7 +7595,7 @@ func_mode_link ()
- for lib in $old_dlfiles; do
- case " $dlprefiles $dlfiles " in
- *" $lib "*) ;;
-- *) dlfiles="$dlfiles $lib" ;;
-+ *) func_append dlfiles " $lib" ;;
- esac
- done
-
-@@ -6686,7 +7605,7 @@ func_mode_link ()
- for lib in $old_dlprefiles; do
- case "$dlprefiles " in
- *" $lib "*) ;;
-- *) dlprefiles="$dlprefiles $lib" ;;
-+ *) func_append dlprefiles " $lib" ;;
- esac
- done
-
-@@ -6698,7 +7617,7 @@ func_mode_link ()
- ;;
- *-*-rhapsody* | *-*-darwin1.[012])
- # Rhapsody C library is in the System framework
-- deplibs="$deplibs System.ltframework"
-+ func_append deplibs " System.ltframework"
- ;;
- *-*-netbsd*)
- # Don't link with libc until the a.out ld.so is fixed.
-@@ -6715,7 +7634,7 @@ func_mode_link ()
- *)
- # Add libc to deplibs on all other systems if necessary.
- if test "$build_libtool_need_lc" = "yes"; then
-- deplibs="$deplibs -lc"
-+ func_append deplibs " -lc"
- fi
- ;;
- esac
-@@ -6764,18 +7683,18 @@ EOF
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $i "*)
-- newdeplibs="$newdeplibs $i"
-+ func_append newdeplibs " $i"
- i=""
- ;;
- esac
- fi
- if test -n "$i" ; then
-- eval "libname=\"$libname_spec\""
-- eval "deplib_matches=\"$library_names_spec\""
-+ libname=`eval "\\$ECHO \"$libname_spec\""`
-+ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
- set dummy $deplib_matches; shift
- deplib_match=$1
- if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-- newdeplibs="$newdeplibs $i"
-+ func_append newdeplibs " $i"
- else
- droppeddeps=yes
- echo
-@@ -6789,7 +7708,7 @@ EOF
- fi
- ;;
- *)
-- newdeplibs="$newdeplibs $i"
-+ func_append newdeplibs " $i"
- ;;
- esac
- done
-@@ -6807,18 +7726,18 @@ EOF
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $i "*)
-- newdeplibs="$newdeplibs $i"
-+ func_append newdeplibs " $i"
- i=""
- ;;
- esac
- fi
- if test -n "$i" ; then
-- eval "libname=\"$libname_spec\""
-- eval "deplib_matches=\"$library_names_spec\""
-+ libname=`eval "\\$ECHO \"$libname_spec\""`
-+ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
- set dummy $deplib_matches; shift
- deplib_match=$1
- if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-- newdeplibs="$newdeplibs $i"
-+ func_append newdeplibs " $i"
- else
- droppeddeps=yes
- echo
-@@ -6840,7 +7759,7 @@ EOF
- fi
- ;;
- *)
-- newdeplibs="$newdeplibs $i"
-+ func_append newdeplibs " $i"
- ;;
- esac
- done
-@@ -6857,15 +7776,27 @@ EOF
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $a_deplib "*)
-- newdeplibs="$newdeplibs $a_deplib"
-+ func_append newdeplibs " $a_deplib"
- a_deplib=""
- ;;
- esac
- fi
- if test -n "$a_deplib" ; then
-- eval "libname=\"$libname_spec\""
-+ libname=`eval "\\$ECHO \"$libname_spec\""`
-+ if test -n "$file_magic_glob"; then
-+ libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
-+ else
-+ libnameglob=$libname
-+ fi
-+ test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
- for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-- potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
-+ if test "$want_nocaseglob" = yes; then
-+ shopt -s nocaseglob
-+ potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
-+ $nocaseglob
-+ else
-+ potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
-+ fi
- for potent_lib in $potential_libs; do
- # Follow soft links.
- if ls -lLd "$potent_lib" 2>/dev/null |
-@@ -6885,10 +7816,10 @@ EOF
- *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
- esac
- done
-- if eval "$file_magic_cmd \"\$potlib\"" 2>/dev/null |
-+ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
- $SED -e 10q |
- $EGREP "$file_magic_regex" > /dev/null; then
-- newdeplibs="$newdeplibs $a_deplib"
-+ func_append newdeplibs " $a_deplib"
- a_deplib=""
- break 2
- fi
-@@ -6913,7 +7844,7 @@ EOF
- ;;
- *)
- # Add a -L argument.
-- newdeplibs="$newdeplibs $a_deplib"
-+ func_append newdeplibs " $a_deplib"
- ;;
- esac
- done # Gone through all deplibs.
-@@ -6929,20 +7860,20 @@ EOF
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $a_deplib "*)
-- newdeplibs="$newdeplibs $a_deplib"
-+ func_append newdeplibs " $a_deplib"
- a_deplib=""
- ;;
- esac
- fi
- if test -n "$a_deplib" ; then
-- eval "libname=\"$libname_spec\""
-+ libname=`eval "\\$ECHO \"$libname_spec\""`
- for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
- potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
- for potent_lib in $potential_libs; do
- potlib="$potent_lib" # see symlink-check above in file_magic test
- if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
- $EGREP "$match_pattern_regex" > /dev/null; then
-- newdeplibs="$newdeplibs $a_deplib"
-+ func_append newdeplibs " $a_deplib"
- a_deplib=""
- break 2
- fi
-@@ -6967,7 +7898,7 @@ EOF
- ;;
- *)
- # Add a -L argument.
-- newdeplibs="$newdeplibs $a_deplib"
-+ func_append newdeplibs " $a_deplib"
- ;;
- esac
- done # Gone through all deplibs.
-@@ -7071,7 +8002,7 @@ EOF
- *)
- case " $deplibs " in
- *" -L$path/$objdir "*)
-- new_libs="$new_libs -L$path/$objdir" ;;
-+ func_append new_libs " -L$path/$objdir" ;;
- esac
- ;;
- esac
-@@ -7081,10 +8012,10 @@ EOF
- -L*)
- case " $new_libs " in
- *" $deplib "*) ;;
-- *) new_libs="$new_libs $deplib" ;;
-+ *) func_append new_libs " $deplib" ;;
- esac
- ;;
-- *) new_libs="$new_libs $deplib" ;;
-+ *) func_append new_libs " $deplib" ;;
- esac
- done
- deplibs="$new_libs"
-@@ -7101,10 +8032,12 @@ EOF
- hardcode_libdirs=
- dep_rpath=
- rpath="$finalize_rpath"
-- test "$mode" != relink && rpath="$compile_rpath$rpath"
-+ test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
- for libdir in $rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
-+ func_replace_sysroot "$libdir"
-+ libdir=$func_replace_sysroot_result
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
-@@ -7113,18 +8046,18 @@ EOF
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
-- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-+ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
-- eval "flag=\"$hardcode_libdir_flag_spec\""
-- dep_rpath="$dep_rpath $flag"
-+ eval flag=\"$hardcode_libdir_flag_spec\"
-+ func_append dep_rpath " $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
- *" $libdir "*) ;;
-- *) perm_rpath="$perm_rpath $libdir" ;;
-+ *) func_apped perm_rpath " $libdir" ;;
- esac
- fi
- done
-@@ -7133,40 +8066,38 @@ EOF
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- if test -n "$hardcode_libdir_flag_spec_ld"; then
-- eval "dep_rpath=\"$hardcode_libdir_flag_spec_ld\""
-+ eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
- else
-- eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
-+ eval dep_rpath=\"$hardcode_libdir_flag_spec\"
- fi
- fi
- if test -n "$runpath_var" && test -n "$perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $perm_rpath; do
-- rpath="$rpath$dir:"
-+ func_append rpath "$dir:"
- done
-- eval $runpath_var=\$rpath\$$runpath_var
-- export $runpath_var
-+ eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
- fi
- test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
- fi
-
- shlibpath="$finalize_shlibpath"
-- test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
-+ test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
- if test -n "$shlibpath"; then
-- eval $shlibpath_var=\$shlibpath\$$shlibpath_var
-- export $shlibpath_var
-+ eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
- fi
-
- # Get the real and link names of the library.
-- eval "shared_ext=\"$shrext_cmds\""
-- eval "library_names=\"$library_names_spec\""
-+ eval shared_ext=\"$shrext_cmds\"
-+ eval library_names=\"$library_names_spec\"
- set dummy $library_names
- shift
- realname="$1"
- shift
-
- if test -n "$soname_spec"; then
-- eval "soname=\"$soname_spec\""
-+ eval soname=\"$soname_spec\"
- else
- soname="$realname"
- fi
-@@ -7178,7 +8109,7 @@ EOF
- linknames=
- for link
- do
-- linknames="$linknames $link"
-+ func_append linknames " $link"
- done
-
- # Use standard objects if they are pic
-@@ -7189,7 +8120,7 @@ EOF
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
- export_symbols="$output_objdir/$libname.uexp"
-- delfiles="$delfiles $export_symbols"
-+ func_append delfiles " $export_symbols"
- fi
-
- orig_export_symbols=
-@@ -7220,13 +8151,45 @@ EOF
- $opt_dry_run || $RM $export_symbols
- cmds=$export_symbols_cmds
- save_ifs="$IFS"; IFS='~'
-- for cmd in $cmds; do
-+ for cmd1 in $cmds; do
- IFS="$save_ifs"
-- eval "cmd=\"$cmd\""
-- func_len " $cmd"
-- len=$func_len_result
-- if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-+ # Take the normal branch if the nm_file_list_spec branch
-+ # doesn't work or if tool conversion is not needed.
-+ case $nm_file_list_spec~$to_tool_file_cmd in
-+ *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
-+ try_normal_branch=yes
-+ eval cmd=\"$cmd1\"
-+ func_len " $cmd"
-+ len=$func_len_result
-+ ;;
-+ *)
-+ try_normal_branch=no
-+ ;;
-+ esac
-+ if test "$try_normal_branch" = yes \
-+ && { test "$len" -lt "$max_cmd_len" \
-+ || test "$max_cmd_len" -le -1; }
-+ then
-+ func_show_eval "$cmd" 'exit $?'
-+ skipped_export=false
-+ elif test -n "$nm_file_list_spec"; then
-+ func_basename "$output"
-+ output_la=$func_basename_result
-+ save_libobjs=$libobjs
-+ save_output=$output
-+ output=${output_objdir}/${output_la}.nm
-+ func_to_tool_file "$output"
-+ libobjs=$nm_file_list_spec$func_to_tool_file_result
-+ func_append delfiles " $output"
-+ func_verbose "creating $NM input file list: $output"
-+ for obj in $save_libobjs; do
-+ func_to_tool_file "$obj"
-+ $ECHO "$func_to_tool_file_result"
-+ done > "$output"
-+ eval cmd=\"$cmd1\"
- func_show_eval "$cmd" 'exit $?'
-+ output=$save_output
-+ libobjs=$save_libobjs
- skipped_export=false
- else
- # The command line is too long to execute in one step.
-@@ -7248,7 +8211,7 @@ EOF
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- tmp_export_symbols="$export_symbols"
- test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
-- $opt_dry_run || $ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"
-+ $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
- fi
-
- if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
-@@ -7260,7 +8223,7 @@ EOF
- # global variables. join(1) would be nice here, but unfortunately
- # isn't a blessed tool.
- $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
-- delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
-+ func_append delfiles " $export_symbols $output_objdir/$libname.filter"
- export_symbols=$output_objdir/$libname.def
- $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
- fi
-@@ -7270,7 +8233,7 @@ EOF
- case " $convenience " in
- *" $test_deplib "*) ;;
- *)
-- tmp_deplibs="$tmp_deplibs $test_deplib"
-+ func_append tmp_deplibs " $test_deplib"
- ;;
- esac
- done
-@@ -7286,43 +8249,43 @@ EOF
- fi
- if test -n "$whole_archive_flag_spec"; then
- save_libobjs=$libobjs
-- eval "libobjs=\"\$libobjs $whole_archive_flag_spec\""
-+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
- test "X$libobjs" = "X " && libobjs=
- else
- gentop="$output_objdir/${outputname}x"
-- generated="$generated $gentop"
-+ func_append generated " $gentop"
-
- func_extract_archives $gentop $convenience
-- libobjs="$libobjs $func_extract_archives_result"
-+ func_append libobjs " $func_extract_archives_result"
- test "X$libobjs" = "X " && libobjs=
- fi
- fi
-
- if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
-- eval "flag=\"$thread_safe_flag_spec\""
-- linker_flags="$linker_flags $flag"
-+ eval flag=\"$thread_safe_flag_spec\"
-+ func_append linker_flags " $flag"
- fi
-
- # Make a backup of the uninstalled library when relinking
-- if test "$mode" = relink; then
-- $opt_dry_run || (cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U) || exit $?
-+ if test "$opt_mode" = relink; then
-+ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
- fi
-
- # Do each of the archive commands.
- if test "$module" = yes && test -n "$module_cmds" ; then
- if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
-- eval "test_cmds=\"$module_expsym_cmds\""
-+ eval test_cmds=\"$module_expsym_cmds\"
- cmds=$module_expsym_cmds
- else
-- eval "test_cmds=\"$module_cmds\""
-+ eval test_cmds=\"$module_cmds\"
- cmds=$module_cmds
- fi
- else
- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-- eval "test_cmds=\"$archive_expsym_cmds\""
-+ eval test_cmds=\"$archive_expsym_cmds\"
- cmds=$archive_expsym_cmds
- else
-- eval "test_cmds=\"$archive_cmds\""
-+ eval test_cmds=\"$archive_cmds\"
- cmds=$archive_cmds
- fi
- fi
-@@ -7366,10 +8329,13 @@ EOF
- echo 'INPUT (' > $output
- for obj in $save_libobjs
- do
-- $ECHO "$obj" >> $output
-+ func_to_tool_file "$obj"
-+ $ECHO "$func_to_tool_file_result" >> $output
- done
- echo ')' >> $output
-- delfiles="$delfiles $output"
-+ func_append delfiles " $output"
-+ func_to_tool_file "$output"
-+ output=$func_to_tool_file_result
- elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
- output=${output_objdir}/${output_la}.lnk
- func_verbose "creating linker input file list: $output"
-@@ -7383,15 +8349,17 @@ EOF
- fi
- for obj
- do
-- $ECHO "$obj" >> $output
-+ func_to_tool_file "$obj"
-+ $ECHO "$func_to_tool_file_result" >> $output
- done
-- delfiles="$delfiles $output"
-- output=$firstobj\"$file_list_spec$output\"
-+ func_append delfiles " $output"
-+ func_to_tool_file "$output"
-+ output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
- else
- if test -n "$save_libobjs"; then
- func_verbose "creating reloadable object files..."
- output=$output_objdir/$output_la-${k}.$objext
-- eval "test_cmds=\"$reload_cmds\""
-+ eval test_cmds=\"$reload_cmds\"
- func_len " $test_cmds"
- len0=$func_len_result
- len=$len0
-@@ -7411,12 +8379,12 @@ EOF
- if test "$k" -eq 1 ; then
- # The first file doesn't have a previous command to add.
- reload_objs=$objlist
-- eval "concat_cmds=\"$reload_cmds\""
-+ eval concat_cmds=\"$reload_cmds\"
- else
- # All subsequent reloadable object files will link in
- # the last one created.
- reload_objs="$objlist $last_robj"
-- eval "concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\""
-+ eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
- fi
- last_robj=$output_objdir/$output_la-${k}.$objext
- func_arith $k + 1
-@@ -7433,11 +8401,11 @@ EOF
- # files will link in the last one created.
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- reload_objs="$objlist $last_robj"
-- eval "concat_cmds=\"\${concat_cmds}$reload_cmds\""
-+ eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
- if test -n "$last_robj"; then
-- eval "concat_cmds=\"\${concat_cmds}~\$RM $last_robj\""
-+ eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
- fi
-- delfiles="$delfiles $output"
-+ func_append delfiles " $output"
-
- else
- output=
-@@ -7450,9 +8418,9 @@ EOF
- libobjs=$output
- # Append the command to create the export file.
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-- eval "concat_cmds=\"\$concat_cmds$export_symbols_cmds\""
-+ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
- if test -n "$last_robj"; then
-- eval "concat_cmds=\"\$concat_cmds~\$RM $last_robj\""
-+ eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
- fi
- fi
-
-@@ -7471,7 +8439,7 @@ EOF
- lt_exit=$?
-
- # Restore the uninstalled library and exit
-- if test "$mode" = relink; then
-+ if test "$opt_mode" = relink; then
- ( cd "$output_objdir" && \
- $RM "${realname}T" && \
- $MV "${realname}U" "$realname" )
-@@ -7492,7 +8460,7 @@ EOF
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- tmp_export_symbols="$export_symbols"
- test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
-- $opt_dry_run || $ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"
-+ $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
- fi
-
- if test -n "$orig_export_symbols"; then
-@@ -7504,7 +8472,7 @@ EOF
- # global variables. join(1) would be nice here, but unfortunately
- # isn't a blessed tool.
- $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
-- delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
-+ func_append delfiles " $export_symbols $output_objdir/$libname.filter"
- export_symbols=$output_objdir/$libname.def
- $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
- fi
-@@ -7515,7 +8483,7 @@ EOF
- output=$save_output
-
- if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
-- eval "libobjs=\"\$libobjs $whole_archive_flag_spec\""
-+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
- test "X$libobjs" = "X " && libobjs=
- fi
- # Expand the library linking commands again to reset the
-@@ -7539,23 +8507,23 @@ EOF
-
- if test -n "$delfiles"; then
- # Append the command to remove temporary files to $cmds.
-- eval "cmds=\"\$cmds~\$RM $delfiles\""
-+ eval cmds=\"\$cmds~\$RM $delfiles\"
- fi
-
- # Add any objects from preloaded convenience libraries
- if test -n "$dlprefiles"; then
- gentop="$output_objdir/${outputname}x"
-- generated="$generated $gentop"
-+ func_append generated " $gentop"
-
- func_extract_archives $gentop $dlprefiles
-- libobjs="$libobjs $func_extract_archives_result"
-+ func_append libobjs " $func_extract_archives_result"
- test "X$libobjs" = "X " && libobjs=
- fi
-
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
-- eval "cmd=\"$cmd\""
-+ eval cmd=\"$cmd\"
- $opt_silent || {
- func_quote_for_expand "$cmd"
- eval "func_echo $func_quote_for_expand_result"
-@@ -7564,7 +8532,7 @@ EOF
- lt_exit=$?
-
- # Restore the uninstalled library and exit
-- if test "$mode" = relink; then
-+ if test "$opt_mode" = relink; then
- ( cd "$output_objdir" && \
- $RM "${realname}T" && \
- $MV "${realname}U" "$realname" )
-@@ -7576,8 +8544,8 @@ EOF
- IFS="$save_ifs"
-
- # Restore the uninstalled library and exit
-- if test "$mode" = relink; then
-- $opt_dry_run || (cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname) || exit $?
-+ if test "$opt_mode" = relink; then
-+ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
-
- if test -n "$convenience"; then
- if test -z "$whole_archive_flag_spec"; then
-@@ -7656,17 +8624,20 @@ EOF
-
- if test -n "$convenience"; then
- if test -n "$whole_archive_flag_spec"; then
-- eval "tmp_whole_archive_flags=\"$whole_archive_flag_spec\""
-+ eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
- reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
- else
- gentop="$output_objdir/${obj}x"
-- generated="$generated $gentop"
-+ func_append generated " $gentop"
-
- func_extract_archives $gentop $convenience
- reload_conv_objs="$reload_objs $func_extract_archives_result"
- fi
- fi
-
-+ # If we're not building shared, we need to use non_pic_objs
-+ test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
-+
- # Create the old-style object.
- reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
-
-@@ -7690,7 +8661,7 @@ EOF
- # Create an invalid libtool object if no PIC, so that we don't
- # accidentally link it into a program.
- # $show "echo timestamp > $libobj"
-- # $opt_dry_run || echo timestamp > $libobj || exit $?
-+ # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
- exit $EXIT_SUCCESS
- fi
-
-@@ -7740,8 +8711,8 @@ EOF
- if test "$tagname" = CXX ; then
- case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
- 10.[0123])
-- compile_command="$compile_command ${wl}-bind_at_load"
-- finalize_command="$finalize_command ${wl}-bind_at_load"
-+ func_append compile_command " ${wl}-bind_at_load"
-+ func_append finalize_command " ${wl}-bind_at_load"
- ;;
- esac
- fi
-@@ -7761,7 +8732,7 @@ EOF
- *)
- case " $compile_deplibs " in
- *" -L$path/$objdir "*)
-- new_libs="$new_libs -L$path/$objdir" ;;
-+ func_append new_libs " -L$path/$objdir" ;;
- esac
- ;;
- esac
-@@ -7771,17 +8742,17 @@ EOF
- -L*)
- case " $new_libs " in
- *" $deplib "*) ;;
-- *) new_libs="$new_libs $deplib" ;;
-+ *) func_append new_libs " $deplib" ;;
- esac
- ;;
-- *) new_libs="$new_libs $deplib" ;;
-+ *) func_append new_libs " $deplib" ;;
- esac
- done
- compile_deplibs="$new_libs"
-
-
-- compile_command="$compile_command $compile_deplibs"
-- finalize_command="$finalize_command $finalize_deplibs"
-+ func_append compile_command " $compile_deplibs"
-+ func_append finalize_command " $finalize_deplibs"
-
- if test -n "$rpath$xrpath"; then
- # If the user specified any rpath flags, then add them.
-@@ -7789,7 +8760,7 @@ EOF
- # This is the magic to use -rpath.
- case "$finalize_rpath " in
- *" $libdir "*) ;;
-- *) finalize_rpath="$finalize_rpath $libdir" ;;
-+ *) func_append finalize_rpath " $libdir" ;;
- esac
- done
- fi
-@@ -7808,18 +8779,18 @@ EOF
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
-- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-+ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
-- eval "flag=\"$hardcode_libdir_flag_spec\""
-- rpath="$rpath $flag"
-+ eval flag=\"$hardcode_libdir_flag_spec\"
-+ func_append rpath " $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
- *" $libdir "*) ;;
-- *) perm_rpath="$perm_rpath $libdir" ;;
-+ *) func_append perm_rpath " $libdir" ;;
- esac
- fi
- case $host in
-@@ -7828,12 +8799,12 @@ EOF
- case :$dllsearchpath: in
- *":$libdir:"*) ;;
- ::) dllsearchpath=$libdir;;
-- *) dllsearchpath="$dllsearchpath:$libdir";;
-+ *) func_append dllsearchpath ":$libdir";;
- esac
- case :$dllsearchpath: in
- *":$testbindir:"*) ;;
- ::) dllsearchpath=$testbindir;;
-- *) dllsearchpath="$dllsearchpath:$testbindir";;
-+ *) func_append dllsearchpath ":$testbindir";;
- esac
- ;;
- esac
-@@ -7842,7 +8813,7 @@ EOF
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
-- eval "rpath=\" $hardcode_libdir_flag_spec\""
-+ eval rpath=\" $hardcode_libdir_flag_spec\"
- fi
- compile_rpath="$rpath"
-
-@@ -7859,18 +8830,18 @@ EOF
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
-- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-+ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
-- eval "flag=\"$hardcode_libdir_flag_spec\""
-- rpath="$rpath $flag"
-+ eval flag=\"$hardcode_libdir_flag_spec\"
-+ func_append rpath " $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$finalize_perm_rpath " in
- *" $libdir "*) ;;
-- *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
-+ *) func_append finalize_perm_rpath " $libdir" ;;
- esac
- fi
- done
-@@ -7878,7 +8849,7 @@ EOF
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
-- eval "rpath=\" $hardcode_libdir_flag_spec\""
-+ eval rpath=\" $hardcode_libdir_flag_spec\"
- fi
- finalize_rpath="$rpath"
-
-@@ -7921,6 +8892,12 @@ EOF
- exit_status=0
- func_show_eval "$link_command" 'exit_status=$?'
-
-+ if test -n "$postlink_cmds"; then
-+ func_to_tool_file "$output"
-+ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
-+ func_execute_cmds "$postlink_cmds" 'exit $?'
-+ fi
-+
- # Delete the generated files.
- if test -f "$output_objdir/${outputname}S.${objext}"; then
- func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
-@@ -7943,7 +8920,7 @@ EOF
- # We should set the runpath_var.
- rpath=
- for dir in $perm_rpath; do
-- rpath="$rpath$dir:"
-+ func_append rpath "$dir:"
- done
- compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
- fi
-@@ -7951,7 +8928,7 @@ EOF
- # We should set the runpath_var.
- rpath=
- for dir in $finalize_perm_rpath; do
-- rpath="$rpath$dir:"
-+ func_append rpath "$dir:"
- done
- finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
- fi
-@@ -7966,6 +8943,13 @@ EOF
- $opt_dry_run || $RM $output
- # Link the executable and exit
- func_show_eval "$link_command" 'exit $?'
-+
-+ if test -n "$postlink_cmds"; then
-+ func_to_tool_file "$output"
-+ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
-+ func_execute_cmds "$postlink_cmds" 'exit $?'
-+ fi
-+
- exit $EXIT_SUCCESS
- fi
-
-@@ -7999,6 +8983,12 @@ EOF
-
- func_show_eval "$link_command" 'exit $?'
-
-+ if test -n "$postlink_cmds"; then
-+ func_to_tool_file "$output_objdir/$outputname"
-+ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
-+ func_execute_cmds "$postlink_cmds" 'exit $?'
-+ fi
-+
- # Now create the wrapper script.
- func_verbose "creating $output"
-
-@@ -8096,7 +9086,7 @@ EOF
- else
- oldobjs="$old_deplibs $non_pic_objects"
- if test "$preload" = yes && test -f "$symfileobj"; then
-- oldobjs="$oldobjs $symfileobj"
-+ func_append oldobjs " $symfileobj"
- fi
- fi
- addlibs="$old_convenience"
-@@ -8104,10 +9094,10 @@ EOF
-
- if test -n "$addlibs"; then
- gentop="$output_objdir/${outputname}x"
-- generated="$generated $gentop"
-+ func_append generated " $gentop"
-
- func_extract_archives $gentop $addlibs
-- oldobjs="$oldobjs $func_extract_archives_result"
-+ func_append oldobjs " $func_extract_archives_result"
- fi
-
- # Do each command in the archive commands.
-@@ -8118,10 +9108,10 @@ EOF
- # Add any objects from preloaded convenience libraries
- if test -n "$dlprefiles"; then
- gentop="$output_objdir/${outputname}x"
-- generated="$generated $gentop"
-+ func_append generated " $gentop"
-
- func_extract_archives $gentop $dlprefiles
-- oldobjs="$oldobjs $func_extract_archives_result"
-+ func_append oldobjs " $func_extract_archives_result"
- fi
-
- # POSIX demands no paths to be encoded in archives. We have
-@@ -8139,7 +9129,7 @@ EOF
- else
- echo "copying selected object files to avoid basename conflicts..."
- gentop="$output_objdir/${outputname}x"
-- generated="$generated $gentop"
-+ func_append generated " $gentop"
- func_mkdir_p "$gentop"
- save_oldobjs=$oldobjs
- oldobjs=
-@@ -8163,18 +9153,28 @@ EOF
- esac
- done
- func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
-- oldobjs="$oldobjs $gentop/$newobj"
-+ func_append oldobjs " $gentop/$newobj"
- ;;
-- *) oldobjs="$oldobjs $obj" ;;
-+ *) func_append oldobjs " $obj" ;;
- esac
- done
- fi
-- eval "cmds=\"$old_archive_cmds\""
-+ eval cmds=\"$old_archive_cmds\"
-
- func_len " $cmds"
- len=$func_len_result
- if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
- cmds=$old_archive_cmds
-+ elif test -n "$archiver_list_spec"; then
-+ func_verbose "using command file archive linking..."
-+ for obj in $oldobjs
-+ do
-+ func_to_tool_file "$obj"
-+ $ECHO "$func_to_tool_file_result"
-+ done > $output_objdir/$libname.libcmd
-+ func_to_tool_file "$output_objdir/$libname.libcmd"
-+ oldobjs=" $archiver_list_spec$func_to_tool_file_result"
-+ cmds=$old_archive_cmds
- else
- # the command line is too long to link in one step, link in parts
- func_verbose "using piecewise archive linking..."
-@@ -8189,7 +9189,7 @@ EOF
- do
- last_oldobj=$obj
- done
-- eval "test_cmds=\"$old_archive_cmds\""
-+ eval test_cmds=\"$old_archive_cmds\"
- func_len " $test_cmds"
- len0=$func_len_result
- len=$len0
-@@ -8208,7 +9208,7 @@ EOF
- RANLIB=$save_RANLIB
- fi
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-- eval "concat_cmds=\"\${concat_cmds}$old_archive_cmds\""
-+ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
- objlist=
- len=$len0
- fi
-@@ -8216,9 +9216,9 @@ EOF
- RANLIB=$save_RANLIB
- oldobjs=$objlist
- if test "X$oldobjs" = "X" ; then
-- eval "cmds=\"\$concat_cmds\""
-+ eval cmds=\"\$concat_cmds\"
- else
-- eval "cmds=\"\$concat_cmds~\$old_archive_cmds\""
-+ eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
- fi
- fi
- fi
-@@ -8268,12 +9268,23 @@ EOF
- *.la)
- func_basename "$deplib"
- name="$func_basename_result"
-- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
-+ func_resolve_sysroot "$deplib"
-+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
- test -z "$libdir" && \
- func_fatal_error "\`$deplib' is not a valid libtool archive"
-- newdependency_libs="$newdependency_libs $libdir/$name"
-+ func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
-+ ;;
-+ -L*)
-+ func_stripname -L '' "$deplib"
-+ func_replace_sysroot "$func_stripname_result"
-+ func_append newdependency_libs " -L$func_replace_sysroot_result"
- ;;
-- *) newdependency_libs="$newdependency_libs $deplib" ;;
-+ -R*)
-+ func_stripname -R '' "$deplib"
-+ func_replace_sysroot "$func_stripname_result"
-+ func_append newdependency_libs " -R$func_replace_sysroot_result"
-+ ;;
-+ *) func_append newdependency_libs " $deplib" ;;
- esac
- done
- dependency_libs="$newdependency_libs"
-@@ -8284,12 +9295,14 @@ EOF
- *.la)
- func_basename "$lib"
- name="$func_basename_result"
-- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-+ func_resolve_sysroot "$lib"
-+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
-+
- test -z "$libdir" && \
- func_fatal_error "\`$lib' is not a valid libtool archive"
-- newdlfiles="$newdlfiles $libdir/$name"
-+ func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
- ;;
-- *) newdlfiles="$newdlfiles $lib" ;;
-+ *) func_append newdlfiles " $lib" ;;
- esac
- done
- dlfiles="$newdlfiles"
-@@ -8303,10 +9316,11 @@ EOF
- # the library:
- func_basename "$lib"
- name="$func_basename_result"
-- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-+ func_resolve_sysroot "$lib"
-+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
- test -z "$libdir" && \
- func_fatal_error "\`$lib' is not a valid libtool archive"
-- newdlprefiles="$newdlprefiles $libdir/$name"
-+ func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
- ;;
- esac
- done
-@@ -8318,7 +9332,7 @@ EOF
- [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
- *) abs=`pwd`"/$lib" ;;
- esac
-- newdlfiles="$newdlfiles $abs"
-+ func_append newdlfiles " $abs"
- done
- dlfiles="$newdlfiles"
- newdlprefiles=
-@@ -8327,7 +9341,7 @@ EOF
- [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
- *) abs=`pwd`"/$lib" ;;
- esac
-- newdlprefiles="$newdlprefiles $abs"
-+ func_append newdlprefiles " $abs"
- done
- dlprefiles="$newdlprefiles"
- fi
-@@ -8412,7 +9426,7 @@ relink_command=\"$relink_command\""
- exit $EXIT_SUCCESS
- }
-
--{ test "$mode" = link || test "$mode" = relink; } &&
-+{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
- func_mode_link ${1+"$@"}
-
-
-@@ -8432,9 +9446,9 @@ func_mode_uninstall ()
- for arg
- do
- case $arg in
-- -f) RM="$RM $arg"; rmforce=yes ;;
-- -*) RM="$RM $arg" ;;
-- *) files="$files $arg" ;;
-+ -f) func_append RM " $arg"; rmforce=yes ;;
-+ -*) func_append RM " $arg" ;;
-+ *) func_append files " $arg" ;;
- esac
- done
-
-@@ -8443,24 +9457,23 @@ func_mode_uninstall ()
-
- rmdirs=
-
-- origobjdir="$objdir"
- for file in $files; do
- func_dirname "$file" "" "."
- dir="$func_dirname_result"
- if test "X$dir" = X.; then
-- objdir="$origobjdir"
-+ odir="$objdir"
- else
-- objdir="$dir/$origobjdir"
-+ odir="$dir/$objdir"
- fi
- func_basename "$file"
- name="$func_basename_result"
-- test "$mode" = uninstall && objdir="$dir"
-+ test "$opt_mode" = uninstall && odir="$dir"
-
-- # Remember objdir for removal later, being careful to avoid duplicates
-- if test "$mode" = clean; then
-+ # Remember odir for removal later, being careful to avoid duplicates
-+ if test "$opt_mode" = clean; then
- case " $rmdirs " in
-- *" $objdir "*) ;;
-- *) rmdirs="$rmdirs $objdir" ;;
-+ *" $odir "*) ;;
-+ *) func_append rmdirs " $odir" ;;
- esac
- fi
-
-@@ -8486,18 +9499,17 @@ func_mode_uninstall ()
-
- # Delete the libtool libraries and symlinks.
- for n in $library_names; do
-- rmfiles="$rmfiles $objdir/$n"
-+ func_append rmfiles " $odir/$n"
- done
-- test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
-+ test -n "$old_library" && func_append rmfiles " $odir/$old_library"
-
-- case "$mode" in
-+ case "$opt_mode" in
- clean)
-- case " $library_names " in
-- # " " in the beginning catches empty $dlname
-+ case " $library_names " in
- *" $dlname "*) ;;
-- *) rmfiles="$rmfiles $objdir/$dlname" ;;
-+ *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
- esac
-- test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
-+ test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
- ;;
- uninstall)
- if test -n "$library_names"; then
-@@ -8525,19 +9537,19 @@ func_mode_uninstall ()
- # Add PIC object to the list of files to remove.
- if test -n "$pic_object" &&
- test "$pic_object" != none; then
-- rmfiles="$rmfiles $dir/$pic_object"
-+ func_append rmfiles " $dir/$pic_object"
- fi
-
- # Add non-PIC object to the list of files to remove.
- if test -n "$non_pic_object" &&
- test "$non_pic_object" != none; then
-- rmfiles="$rmfiles $dir/$non_pic_object"
-+ func_append rmfiles " $dir/$non_pic_object"
- fi
- fi
- ;;
-
- *)
-- if test "$mode" = clean ; then
-+ if test "$opt_mode" = clean ; then
- noexename=$name
- case $file in
- *.exe)
-@@ -8547,7 +9559,7 @@ func_mode_uninstall ()
- noexename=$func_stripname_result
- # $file with .exe has already been added to rmfiles,
- # add $file without .exe
-- rmfiles="$rmfiles $file"
-+ func_append rmfiles " $file"
- ;;
- esac
- # Do a test to see if this is a libtool program.
-@@ -8556,7 +9568,7 @@ func_mode_uninstall ()
- func_ltwrapper_scriptname "$file"
- relink_command=
- func_source $func_ltwrapper_scriptname_result
-- rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
-+ func_append rmfiles " $func_ltwrapper_scriptname_result"
- else
- relink_command=
- func_source $dir/$noexename
-@@ -8564,12 +9576,12 @@ func_mode_uninstall ()
-
- # note $name still contains .exe if it was in $file originally
- # as does the version of $file that was added into $rmfiles
-- rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
-+ func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
- if test "$fast_install" = yes && test -n "$relink_command"; then
-- rmfiles="$rmfiles $objdir/lt-$name"
-+ func_append rmfiles " $odir/lt-$name"
- fi
- if test "X$noexename" != "X$name" ; then
-- rmfiles="$rmfiles $objdir/lt-${noexename}.c"
-+ func_append rmfiles " $odir/lt-${noexename}.c"
- fi
- fi
- fi
-@@ -8577,7 +9589,6 @@ func_mode_uninstall ()
- esac
- func_show_eval "$RM $rmfiles" 'exit_status=1'
- done
-- objdir="$origobjdir"
-
- # Try to remove the ${objdir}s in the directories where we deleted files
- for dir in $rmdirs; do
-@@ -8589,16 +9600,16 @@ func_mode_uninstall ()
- exit $exit_status
- }
-
--{ test "$mode" = uninstall || test "$mode" = clean; } &&
-+{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
- func_mode_uninstall ${1+"$@"}
-
--test -z "$mode" && {
-+test -z "$opt_mode" && {
- help="$generic_help"
- func_fatal_help "you must specify a MODE"
- }
-
- test -z "$exec_cmd" && \
-- func_fatal_help "invalid operation mode \`$mode'"
-+ func_fatal_help "invalid operation mode \`$opt_mode'"
-
- if test -n "$exec_cmd"; then
- eval exec "$exec_cmd"
-diff --git a/ltoptions.m4 b/ltoptions.m4
-index 5ef12ced2a..17cfd51c0b 100644
---- a/ltoptions.m4
-+++ b/ltoptions.m4
-@@ -8,7 +8,7 @@
- # unlimited permission to copy and/or distribute it, with or without
- # modifications, as long as this notice is preserved.
-
--# serial 6 ltoptions.m4
-+# serial 7 ltoptions.m4
-
- # This is to help aclocal find these macros, as it can't see m4_define.
- AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
-diff --git a/ltversion.m4 b/ltversion.m4
-index bf87f77132..9c7b5d4118 100644
---- a/ltversion.m4
-+++ b/ltversion.m4
-@@ -7,17 +7,17 @@
- # unlimited permission to copy and/or distribute it, with or without
- # modifications, as long as this notice is preserved.
-
--# Generated from ltversion.in.
-+# @configure_input@
-
--# serial 3134 ltversion.m4
-+# serial 3293 ltversion.m4
- # This file is part of GNU Libtool
-
--m4_define([LT_PACKAGE_VERSION], [2.2.7a])
--m4_define([LT_PACKAGE_REVISION], [1.3134])
-+m4_define([LT_PACKAGE_VERSION], [2.4])
-+m4_define([LT_PACKAGE_REVISION], [1.3293])
-
- AC_DEFUN([LTVERSION_VERSION],
--[macro_version='2.2.7a'
--macro_revision='1.3134'
-+[macro_version='2.4'
-+macro_revision='1.3293'
- _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
- _LT_DECL(, macro_revision, 0)
- ])
-diff --git a/lt~obsolete.m4 b/lt~obsolete.m4
-index bf92b5e079..c573da90c5 100644
---- a/lt~obsolete.m4
-+++ b/lt~obsolete.m4
-@@ -7,7 +7,7 @@
- # unlimited permission to copy and/or distribute it, with or without
- # modifications, as long as this notice is preserved.
-
--# serial 4 lt~obsolete.m4
-+# serial 5 lt~obsolete.m4
-
- # These exist entirely to fool aclocal when bootstrapping libtool.
- #
diff --git a/meta/recipes-devtools/binutils/binutils/0008-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch b/meta/recipes-devtools/binutils/binutils/0007-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch
index b0e94ab1cb..7f8fc9a5c0 100644
--- a/meta/recipes-devtools/binutils/binutils/0008-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch
+++ b/meta/recipes-devtools/binutils/binutils/0007-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch
@@ -1,8 +1,8 @@
-From e36a4e05f900bbe6a8d744a93f3a407bc55c96f7 Mon Sep 17 00:00:00 2001
+From 2b81508b9af76db292cd756432b03035cb8157e0 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 2 Mar 2015 01:39:01 +0000
-Subject: [PATCH] don't let the distro compiler point to the wrong installation
- location
+Subject: [PATCH 07/17] don't let the distro compiler point to the wrong
+ installation location
Thanks to RP for helping find the source code causing the issue.
@@ -17,10 +17,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
-index fe738d0db4..27d818f253 100644
+index 895f701bcd0..97a53f15bb6 100644
--- a/libiberty/Makefile.in
+++ b/libiberty/Makefile.in
-@@ -365,7 +365,8 @@ install-strip: install
+@@ -367,7 +367,8 @@ install-strip: install
# multilib-specific flags, it's overridden by FLAGS_TO_PASS from the
# default multilib, so we have to take CFLAGS into account as well,
# since it will be passed the multilib flags.
@@ -30,3 +30,6 @@ index fe738d0db4..27d818f253 100644
install_to_libdir: all
if test -n "${target_header_dir}"; then \
${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR); \
+--
+2.28.0
+
diff --git a/meta/recipes-devtools/binutils/binutils/0009-warn-for-uses-of-system-directories-when-cross-linki.patch b/meta/recipes-devtools/binutils/binutils/0008-warn-for-uses-of-system-directories-when-cross-linki.patch
index 11a8110d40..2356c6a60f 100644
--- a/meta/recipes-devtools/binutils/binutils/0009-warn-for-uses-of-system-directories-when-cross-linki.patch
+++ b/meta/recipes-devtools/binutils/binutils/0008-warn-for-uses-of-system-directories-when-cross-linki.patch
@@ -1,7 +1,7 @@
-From 7b24f81e04c9d00d96de7dbd250beade6d2c6e44 Mon Sep 17 00:00:00 2001
+From 413075afbdb16e7cc05511682ca9e3c880acb5a7 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 15 Jan 2016 06:31:09 +0000
-Subject: [PATCH] warn for uses of system directories when cross linking
+Subject: [PATCH 08/17] warn for uses of system directories when cross linking
2008-07-02 Joseph Myers <joseph@codesourcery.com>
@@ -57,16 +57,16 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
ld/ld.h | 8 ++++++++
ld/ld.texi | 12 ++++++++++++
ld/ldfile.c | 17 +++++++++++++++++
- ld/ldlex.h | 2 ++
+ ld/ldlex.h | 5 +++++
ld/ldmain.c | 2 ++
- ld/lexsup.c | 15 +++++++++++++++
- 9 files changed, 85 insertions(+)
+ ld/lexsup.c | 27 +++++++++++++++++++++++++++
+ 9 files changed, 100 insertions(+)
diff --git a/ld/config.in b/ld/config.in
-index d93c9b0830..5da2742bea 100644
+index f1712107367..308e0173c16 100644
--- a/ld/config.in
+++ b/ld/config.in
-@@ -31,6 +31,9 @@
+@@ -40,6 +40,9 @@
language is requested. */
#undef ENABLE_NLS
@@ -77,7 +77,7 @@ index d93c9b0830..5da2742bea 100644
#undef EXTRA_SHLIB_EXTENSION
diff --git a/ld/configure b/ld/configure
-index 811134a503..f8c17c19ae 100755
+index f08ce9969ea..1c872c0db5f 100755
--- a/ld/configure
+++ b/ld/configure
@@ -826,6 +826,7 @@ with_lib_path
@@ -88,7 +88,7 @@ index 811134a503..f8c17c19ae 100755
enable_gold
enable_got
enable_compressed_debug_sections
-@@ -1491,6 +1492,8 @@ Optional Features:
+@@ -1493,6 +1494,8 @@ Optional Features:
--disable-largefile omit support for large files
--enable-targets alternative target configurations
--enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)
@@ -97,7 +97,7 @@ index 811134a503..f8c17c19ae 100755
--enable-gold[=ARG] build gold [ARG={default,yes,no}]
--enable-got=<type> GOT handling scheme (target, single, negative,
multigot)
-@@ -15788,6 +15791,19 @@ fi
+@@ -15793,6 +15796,19 @@ fi
@@ -118,7 +118,7 @@ index 811134a503..f8c17c19ae 100755
if test "${enable_gold+set}" = set; then :
enableval=$enable_gold; case "${enableval}" in
diff --git a/ld/configure.ac b/ld/configure.ac
-index b5e849d84a..22e022ec03 100644
+index 5a4938afdb0..dbbbde74b04 100644
--- a/ld/configure.ac
+++ b/ld/configure.ac
@@ -94,6 +94,16 @@ AC_SUBST(use_sysroot)
@@ -139,7 +139,7 @@ index b5e849d84a..22e022ec03 100644
dnl "install_as_default" is set to false if gold is the default linker.
dnl "installed_linker" is the installed BFD linker name.
diff --git a/ld/ld.h b/ld/ld.h
-index 71fd781267..5c7843100b 100644
+index 1790dc81a66..73f832eb169 100644
--- a/ld/ld.h
+++ b/ld/ld.h
@@ -166,6 +166,14 @@ typedef struct
@@ -158,10 +158,10 @@ index 71fd781267..5c7843100b 100644
enum endian_enum endian;
diff --git a/ld/ld.texi b/ld/ld.texi
-index eb7bcb9933..3c73d445a0 100644
+index 2a93e9456ac..3eeb70607fd 100644
--- a/ld/ld.texi
+++ b/ld/ld.texi
-@@ -2551,6 +2551,18 @@ string identifying the original linked file does not change.
+@@ -2655,6 +2655,18 @@ string identifying the original linked file does not change.
Passing @code{none} for @var{style} disables the setting from any
@code{--build-id} options earlier on the command line.
@@ -181,7 +181,7 @@ index eb7bcb9933..3c73d445a0 100644
@c man end
diff --git a/ld/ldfile.c b/ld/ldfile.c
-index 411f7ddf97..17db16c2cc 100644
+index e39170b5d94..fadc248a140 100644
--- a/ld/ldfile.c
+++ b/ld/ldfile.c
@@ -117,6 +117,23 @@ ldfile_add_library_path (const char *name, bfd_boolean cmdline)
@@ -209,23 +209,26 @@ index 411f7ddf97..17db16c2cc 100644
/* Try to open a BFD for a lang_input_statement. */
diff --git a/ld/ldlex.h b/ld/ldlex.h
-index 5287f19a7f..55096e4fc9 100644
+index 5ea083ebeb3..941dc5f3dc8 100644
--- a/ld/ldlex.h
+++ b/ld/ldlex.h
-@@ -150,6 +150,8 @@ enum option_values
- OPTION_FORCE_GROUP_ALLOCATION,
- OPTION_PRINT_MAP_DISCARDED,
- OPTION_NO_PRINT_MAP_DISCARDED,
+@@ -155,6 +155,11 @@ enum option_values
+ OPTION_NON_CONTIGUOUS_REGIONS,
+ OPTION_NON_CONTIGUOUS_REGIONS_WARNINGS,
+ OPTION_DEPENDENCY_FILE,
++ OPTION_CTF_VARIABLES,
++ OPTION_NO_CTF_VARIABLES,
++ OPTION_CTF_SHARE_TYPES,
+ OPTION_NO_POISON_SYSTEM_DIRECTORIES,
+ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES,
};
/* The initial parser states. */
diff --git a/ld/ldmain.c b/ld/ldmain.c
-index da1ad17763..12d0b07d8a 100644
+index f5c5a336320..516ba0360e2 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
-@@ -274,6 +274,8 @@ main (int argc, char **argv)
+@@ -322,6 +322,8 @@ main (int argc, char **argv)
command_line.warn_mismatch = TRUE;
command_line.warn_search_mismatch = TRUE;
command_line.check_section_addresses = -1;
@@ -235,13 +238,25 @@ index da1ad17763..12d0b07d8a 100644
/* We initialize DEMANGLING based on the environment variable
COLLECT_NO_DEMANGLE. The gcc collect2 program will demangle the
diff --git a/ld/lexsup.c b/ld/lexsup.c
-index 3d15cc491d..0e8b4f2b7a 100644
+index 58c6c078325..879e7bb7658 100644
--- a/ld/lexsup.c
+++ b/ld/lexsup.c
-@@ -550,6 +550,14 @@ static const struct ld_option ld_options[] =
+@@ -572,6 +572,26 @@ static const struct ld_option ld_options[] =
{ {"no-print-map-discarded", no_argument, NULL, OPTION_NO_PRINT_MAP_DISCARDED},
'\0', NULL, N_("Do not show discarded sections in map file output"),
TWO_DASHES },
++ { {"ctf-variables", no_argument, NULL, OPTION_CTF_VARIABLES},
++ '\0', NULL, N_("Emit names and types of static variables in CTF"),
++ TWO_DASHES },
++ { {"no-ctf-variables", no_argument, NULL, OPTION_NO_CTF_VARIABLES},
++ '\0', NULL, N_("Do not emit names and types of static variables in CTF"),
++ TWO_DASHES },
++ { {"ctf-share-types=<method>", required_argument, NULL,
++ OPTION_CTF_SHARE_TYPES},
++ '\0', NULL, N_("How to share CTF types between translation units.\n"
++ " <method> is: share-unconflicted (default),\n"
++ " share-duplicated"),
++ TWO_DASHES },
+ { {"no-poison-system-directories", no_argument, NULL,
+ OPTION_NO_POISON_SYSTEM_DIRECTORIES},
+ '\0', NULL, N_("Do not warn for -L options using system directories"),
@@ -253,7 +268,7 @@ index 3d15cc491d..0e8b4f2b7a 100644
};
#define OPTION_COUNT ARRAY_SIZE (ld_options)
-@@ -1603,6 +1611,13 @@ parse_args (unsigned argc, char **argv)
+@@ -1632,6 +1652,13 @@ parse_args (unsigned argc, char **argv)
case OPTION_PRINT_MAP_DISCARDED:
config.print_map_discarded = TRUE;
@@ -265,5 +280,8 @@ index 3d15cc491d..0e8b4f2b7a 100644
+ case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES:
+ command_line.error_poison_system_directories = TRUE;
break;
- }
- }
+
+ case OPTION_DEPENDENCY_FILE:
+--
+2.28.0
+
diff --git a/meta/recipes-devtools/binutils/binutils/0011-Change-default-emulation-for-mips64-linux.patch b/meta/recipes-devtools/binutils/binutils/0009-Change-default-emulation-for-mips64-linux.patch
index c49b8e863f..fb5276e183 100644
--- a/meta/recipes-devtools/binutils/binutils/0011-Change-default-emulation-for-mips64-linux.patch
+++ b/meta/recipes-devtools/binutils/binutils/0009-Change-default-emulation-for-mips64-linux.patch
@@ -1,7 +1,7 @@
-From 2182791a453f34bee6968b3e72848608cf7d7abe Mon Sep 17 00:00:00 2001
+From 13a67e9040c01abd284fe506471e0eab668ee3dc Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 2 Mar 2015 01:44:14 +0000
-Subject: [PATCH] Change default emulation for mips64*-*-linux
+Subject: [PATCH 09/17] Change default emulation for mips64*-*-linux
we change the default emulations to be N64 instead of N32
@@ -14,10 +14,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/bfd/config.bfd b/bfd/config.bfd
-index b96931f52e..847f9f0ba9 100644
+index 14523caf0c5..e5233cd1f7e 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
-@@ -911,12 +911,12 @@ case "${targ}" in
+@@ -894,12 +894,12 @@ case "${targ}" in
targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_be_vec mips_ecoff_le_vec"
;;
mips64*el-*-linux*)
@@ -35,10 +35,10 @@ index b96931f52e..847f9f0ba9 100644
mips*el-*-linux*)
targ_defvec=mips_elf32_trad_le_vec
diff --git a/ld/configure.tgt b/ld/configure.tgt
-index 23194e357f..f4f0eaf9b2 100644
+index 87c7d9a4cad..9b4bf2ca964 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
-@@ -541,12 +541,12 @@ mips*-*-vxworks*) targ_emul=elf32ebmipvxworks
+@@ -531,12 +531,12 @@ mips*-*-vxworks*) targ_emul=elf32ebmipvxworks
;;
mips*-*-windiss) targ_emul=elf32mipswindiss
;;
@@ -55,3 +55,6 @@ index 23194e357f..f4f0eaf9b2 100644
targ_extra_libpath=$targ_extra_emuls
;;
mips*el-*-linux-*) targ_emul=elf32ltsmip
+--
+2.28.0
+
diff --git a/meta/recipes-devtools/binutils/binutils/0012-Add-support-for-Netlogic-XLP.patch b/meta/recipes-devtools/binutils/binutils/0010-Add-support-for-Netlogic-XLP.patch
index c32867a238..277db4ec5c 100644
--- a/meta/recipes-devtools/binutils/binutils/0012-Add-support-for-Netlogic-XLP.patch
+++ b/meta/recipes-devtools/binutils/binutils/0010-Add-support-for-Netlogic-XLP.patch
@@ -1,7 +1,7 @@
-From a0237ec2d1e58bd35c236df39dd5a06504c6d2ed Mon Sep 17 00:00:00 2001
+From 69ab45c16f80f18fa78121f6e774750b9e9a200b Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 14 Feb 2016 17:06:19 +0000
-Subject: [PATCH] Add support for Netlogic XLP
+Subject: [PATCH 10/17] Add support for Netlogic XLP
Patch From: Nebu Philips <nphilips@netlogicmicro.com>
@@ -35,10 +35,10 @@ Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
15 files changed, 65 insertions(+), 21 deletions(-)
diff --git a/bfd/aoutx.h b/bfd/aoutx.h
-index fa3a9746b6..5078024fd5 100644
+index d352a1a3e44..2e2c3c1af86 100644
--- a/bfd/aoutx.h
+++ b/bfd/aoutx.h
-@@ -799,6 +799,7 @@ NAME (aout, machine_type) (enum bfd_architecture arch,
+@@ -810,6 +810,7 @@ NAME (aout, machine_type) (enum bfd_architecture arch,
case bfd_mach_mipsisa64r6:
case bfd_mach_mips_sb1:
case bfd_mach_mips_xlr:
@@ -47,7 +47,7 @@ index fa3a9746b6..5078024fd5 100644
arch_flags = M_MIPS2;
break;
diff --git a/bfd/archures.c b/bfd/archures.c
-index 232103817c..b2b3b8c124 100644
+index 551ec8732f0..2665b378623 100644
--- a/bfd/archures.c
+++ b/bfd/archures.c
@@ -185,6 +185,7 @@ DESCRIPTION
@@ -59,10 +59,10 @@ index 232103817c..b2b3b8c124 100644
.#define bfd_mach_mipsisa32r2 33
.#define bfd_mach_mipsisa32r3 34
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
-index 7c13bc8c91..2e453c50c1 100644
+index 35ef4d755bb..48db00af80b 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
-@@ -1568,6 +1568,7 @@ enum bfd_architecture
+@@ -1585,6 +1585,7 @@ enum bfd_architecture
#define bfd_mach_mips_octeon3 6503
#define bfd_mach_mips_xlr 887682 /* decimal 'XLR'. */
#define bfd_mach_mips_interaptiv_mr2 736550 /* decimal 'IA2'. */
@@ -71,10 +71,10 @@ index 7c13bc8c91..2e453c50c1 100644
#define bfd_mach_mipsisa32r2 33
#define bfd_mach_mipsisa32r3 34
diff --git a/bfd/config.bfd b/bfd/config.bfd
-index 847f9f0ba9..a12707f827 100644
+index e5233cd1f7e..2e4ae6bbdff 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
-@@ -894,6 +894,11 @@ case "${targ}" in
+@@ -877,6 +877,11 @@ case "${targ}" in
targ_defvec=mips_elf32_le_vec
targ_selvecs="mips_elf32_be_vec mips_elf64_be_vec mips_elf64_le_vec"
;;
@@ -87,7 +87,7 @@ index 847f9f0ba9..a12707f827 100644
targ_defvec=mips_elf32_be_vec
targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec"
diff --git a/bfd/cpu-mips.c b/bfd/cpu-mips.c
-index 802acb45f1..fd9ec4c0ad 100644
+index 802acb45f1e..fd9ec4c0ad4 100644
--- a/bfd/cpu-mips.c
+++ b/bfd/cpu-mips.c
@@ -108,7 +108,8 @@ enum
@@ -111,10 +111,10 @@ index 802acb45f1..fd9ec4c0ad 100644
/* The default architecture is mips:3000, but with a machine number of
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
-index d7e3aed3b6..7baeee9ee3 100644
+index 160febec94c..4c9499cc2cf 100644
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
-@@ -6999,6 +6999,9 @@ _bfd_elf_mips_mach (flagword flags)
+@@ -6982,6 +6982,9 @@ _bfd_elf_mips_mach (flagword flags)
case E_MIPS_MACH_IAMR2:
return bfd_mach_mips_interaptiv_mr2;
@@ -124,7 +124,7 @@ index d7e3aed3b6..7baeee9ee3 100644
default:
switch (flags & EF_MIPS_ARCH)
{
-@@ -12355,6 +12358,10 @@ mips_set_isa_flags (bfd *abfd)
+@@ -12356,6 +12359,10 @@ mips_set_isa_flags (bfd *abfd)
val = E_MIPS_ARCH_64R2 | E_MIPS_MACH_OCTEON2;
break;
@@ -135,7 +135,7 @@ index d7e3aed3b6..7baeee9ee3 100644
case bfd_mach_mipsisa32:
val = E_MIPS_ARCH_32;
break;
-@@ -14379,6 +14386,7 @@ static const struct mips_mach_extension mips_mach_extensions[] =
+@@ -14373,6 +14380,7 @@ static const struct mips_mach_extension mips_mach_extensions[] =
{ bfd_mach_mips_gs264e, bfd_mach_mips_gs464e },
{ bfd_mach_mips_gs464e, bfd_mach_mips_gs464 },
{ bfd_mach_mips_gs464, bfd_mach_mipsisa64r2 },
@@ -144,10 +144,10 @@ index d7e3aed3b6..7baeee9ee3 100644
/* MIPS64 extensions. */
{ bfd_mach_mipsisa64r2, bfd_mach_mipsisa64 },
diff --git a/binutils/readelf.c b/binutils/readelf.c
-index 6b5bebe743..d15a7828db 100644
+index 6057515a89b..ea119b0b254 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
-@@ -3440,6 +3440,7 @@ get_machine_flags (Filedata * filedata, unsigned e_flags, unsigned e_machine)
+@@ -3483,6 +3483,7 @@ get_machine_flags (Filedata * filedata, unsigned e_flags, unsigned e_machine)
case E_MIPS_MACH_OCTEON3: strcat (buf, ", octeon3"); break;
case E_MIPS_MACH_XLR: strcat (buf, ", xlr"); break;
case E_MIPS_MACH_IAMR2: strcat (buf, ", interaptiv-mr2"); break;
@@ -156,7 +156,7 @@ index 6b5bebe743..d15a7828db 100644
/* We simply ignore the field in this case to avoid confusion:
MIPS ELF does not specify EF_MIPS_MACH, it is a GNU
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
-index fc6898834e..2c7151ccdb 100644
+index 31acb77d78a..0ead168d51e 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -568,6 +568,7 @@ static int mips_32bitmode = 0;
@@ -175,7 +175,7 @@ index fc6898834e..2c7151ccdb 100644
)
/* Whether the processor uses hardware interlocks to protect reads
-@@ -20135,7 +20137,7 @@ static const struct mips_cpu_info mips_cpu_info_table[] =
+@@ -20174,7 +20176,7 @@ static const struct mips_cpu_info mips_cpu_info_table[] =
/* Broadcom XLP.
XLP is mostly like XLR, with the prominent exception that it is
MIPS64R2 rather than MIPS64. */
@@ -185,7 +185,7 @@ index fc6898834e..2c7151ccdb 100644
/* MIPS 64 Release 6. */
{ "i6400", 0, ASE_VIRT | ASE_MSA, ISA_MIPS64R6, CPU_MIPS64R6},
diff --git a/gas/configure b/gas/configure
-index 60c1a055ae..59d6d11215 100755
+index 5bccfd9d1b7..d4b13e6fc8b 100755
--- a/gas/configure
+++ b/gas/configure
@@ -12722,6 +12722,9 @@ _ACEOF
@@ -199,7 +199,7 @@ index 60c1a055ae..59d6d11215 100755
mips_cpu=r3900
;;
diff --git a/gas/configure.ac b/gas/configure.ac
-index 6f32e55a1a..11c2e0d273 100644
+index b65108fecb2..ce1f2dad9bc 100644
--- a/gas/configure.ac
+++ b/gas/configure.ac
@@ -325,6 +325,9 @@ changequote([,])dnl
@@ -213,7 +213,7 @@ index 6f32e55a1a..11c2e0d273 100644
mips_cpu=r3900
;;
diff --git a/include/elf/mips.h b/include/elf/mips.h
-index d116b036b6..dceeb3f156 100644
+index cc08ebd4318..bb518575ce1 100644
--- a/include/elf/mips.h
+++ b/include/elf/mips.h
@@ -290,6 +290,7 @@ END_RELOC_NUMBERS (R_MIPS_maxext)
@@ -225,7 +225,7 @@ index d116b036b6..dceeb3f156 100644
#define E_MIPS_MACH_OCTEON3 0x008e0000
#define E_MIPS_MACH_5400 0x00910000
diff --git a/include/opcode/mips.h b/include/opcode/mips.h
-index fd031f3758..a96a44df84 100644
+index fd031f37588..a96a44df840 100644
--- a/include/opcode/mips.h
+++ b/include/opcode/mips.h
@@ -1260,6 +1260,8 @@ static const unsigned int mips_isa_table[] = {
@@ -256,10 +256,10 @@ index fd031f3758..a96a44df84 100644
return FALSE;
}
diff --git a/ld/configure.tgt b/ld/configure.tgt
-index f4f0eaf9b2..0da3eca19c 100644
+index 9b4bf2ca964..f6d7171dff7 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
-@@ -520,6 +520,9 @@ mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
+@@ -510,6 +510,9 @@ mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
targ_emul=elf32btsmip
targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip"
;;
@@ -270,7 +270,7 @@ index f4f0eaf9b2..0da3eca19c 100644
targ_extra_emuls="elf32lr5900"
targ_extra_libpath=$targ_extra_emuls
diff --git a/opcodes/mips-dis.c b/opcodes/mips-dis.c
-index 755bbe294b..ce22ef683a 100644
+index 755bbe294bd..ce22ef683a6 100644
--- a/opcodes/mips-dis.c
+++ b/opcodes/mips-dis.c
@@ -674,13 +674,11 @@ const struct mips_arch_choice mips_arch_choices[] =
@@ -293,7 +293,7 @@ index 755bbe294b..ce22ef683a 100644
/* This entry, mips16, is here only for ISA/processor selection; do
not print its name. */
diff --git a/opcodes/mips-opc.c b/opcodes/mips-opc.c
-index 5270aeefa8..d17dc78cd7 100644
+index 5270aeefa80..d17dc78cd71 100644
--- a/opcodes/mips-opc.c
+++ b/opcodes/mips-opc.c
@@ -328,6 +328,7 @@ decode_mips_operand (const char *p)
@@ -404,3 +404,6 @@ index 5270aeefa8..d17dc78cd7 100644
{"swc0", "E,o(b)", 0xe0000000, 0xfc000000, RD_3|RD_C0|SM, 0, I1, 0, IOCT|IOCTP|IOCT2|I37 },
{"swc0", "E,A(b)", 0, (int) M_SWC0_AB, INSN_MACRO, 0, I1, 0, IOCT|IOCTP|IOCT2|I37 },
{"swc1", "T,o(b)", 0xe4000000, 0xfc000000, RD_1|RD_3|SM|FP_S, 0, I1, 0, 0 },
+--
+2.28.0
+
diff --git a/meta/recipes-devtools/binutils/binutils/0011-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch b/meta/recipes-devtools/binutils/binutils/0011-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch
new file mode 100644
index 0000000000..10c3d80865
--- /dev/null
+++ b/meta/recipes-devtools/binutils/binutils/0011-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch
@@ -0,0 +1,37 @@
+From 7836f8aa56ef0f18c8658dc7e4952a9d097ba7e8 Mon Sep 17 00:00:00 2001
+From: Zhenhua Luo <zhenhua.luo@nxp.com>
+Date: Sat, 11 Jun 2016 22:08:29 -0500
+Subject: [PATCH 11/17] fix the incorrect assembling for ppc wait mnemonic
+
+Signed-off-by: Zhenhua Luo <zhenhua.luo@nxp.com>
+
+Upstream-Status: Pending
+---
+ opcodes/ppc-opc.c | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c
+index 5e20d617664..4c9656ecf08 100644
+--- a/opcodes/ppc-opc.c
++++ b/opcodes/ppc-opc.c
+@@ -6265,8 +6265,6 @@ const struct powerpc_opcode powerpc_opcodes[] = {
+ {"waitasec", X(31,30), XRTRARB_MASK, POWER8, POWER9, {0}},
+ {"waitrsv", XWCPL(31,30,1,0),0xffffffff, POWER10, 0, {0}},
+ {"pause_short", XWCPL(31,30,2,0),0xffffffff, POWER10, 0, {0}},
+-{"wait", X(31,30), XWCPL_MASK, POWER10, 0, {WC, PL}},
+-{"wait", X(31,30), XWC_MASK, POWER9, POWER10, {WC}},
+
+ {"lwepx", X(31,31), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
+
+@@ -6326,7 +6324,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
+
+ {"waitrsv", X(31,62)|(1<<21), 0xffffffff, E500MC|PPCA2, 0, {0}},
+ {"waitimpl", X(31,62)|(2<<21), 0xffffffff, E500MC|PPCA2, 0, {0}},
+-{"wait", X(31,62), XWC_MASK, E500MC|PPCA2, 0, {WC}},
++{"wait", X(31,62), XWC_MASK, E500MC|PPCA2|POWER9|POWER10, 0, {WC}},
+
+ {"dcbstep", XRT(31,63,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
+
+--
+2.28.0
+
diff --git a/meta/recipes-devtools/binutils/binutils/0014-Detect-64-bit-MIPS-targets.patch b/meta/recipes-devtools/binutils/binutils/0012-Detect-64-bit-MIPS-targets.patch
index 6acde1f781..ef8b253b6a 100644
--- a/meta/recipes-devtools/binutils/binutils/0014-Detect-64-bit-MIPS-targets.patch
+++ b/meta/recipes-devtools/binutils/binutils/0012-Detect-64-bit-MIPS-targets.patch
@@ -1,7 +1,7 @@
-From 2f7f2389764ef1d699f6ad32057314024b7e84e7 Mon Sep 17 00:00:00 2001
+From dbff6bdf2123f5495b8be930304d9aa5e88006a7 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 31 Mar 2017 11:42:03 -0700
-Subject: [PATCH] Detect 64-bit MIPS targets
+Subject: [PATCH 12/17] Detect 64-bit MIPS targets
Add mips64 target triplets and default to N64
@@ -14,7 +14,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 14 insertions(+)
diff --git a/gold/configure.tgt b/gold/configure.tgt
-index aa7ec552ae..470515062e 100644
+index aa7ec552aec..470515062e4 100644
--- a/gold/configure.tgt
+++ b/gold/configure.tgt
@@ -153,6 +153,13 @@ aarch64*-*)
@@ -45,3 +45,6 @@ index aa7ec552ae..470515062e 100644
mips*-*-*)
targ_obj=mips
targ_machine=EM_MIPS
+--
+2.28.0
+
diff --git a/meta/recipes-devtools/binutils/binutils/0013-Use-libtool-2.4.patch b/meta/recipes-devtools/binutils/binutils/0013-Use-libtool-2.4.patch
new file mode 100644
index 0000000000..987a96f4b7
--- /dev/null
+++ b/meta/recipes-devtools/binutils/binutils/0013-Use-libtool-2.4.patch
@@ -0,0 +1,23153 @@
+From 7e2ddee8704c9c3b73760dd9464b18fade563d85 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 14 Feb 2016 17:04:07 +0000
+Subject: [PATCH 13/17] Use libtool 2.4
+
+get libtool sysroot support
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ bfd/configure | 1322 +++++++++++++++-----
+ bfd/configure.ac | 2 +-
+ binutils/configure | 1320 +++++++++++++++-----
+ gas/configure | 1320 +++++++++++++++-----
+ gprof/configure | 1320 +++++++++++++++-----
+ ld/configure | 1695 ++++++++++++++++++-------
+ libctf/configure | 1319 +++++++++++++++-----
+ libtool.m4 | 1080 +++++++++++-----
+ ltmain.sh | 2925 +++++++++++++++++++++++++++++---------------
+ ltoptions.m4 | 2 +-
+ ltversion.m4 | 12 +-
+ lt~obsolete.m4 | 2 +-
+ opcodes/configure | 1320 +++++++++++++++-----
+ zlib/configure | 1320 +++++++++++++++-----
+ 14 files changed, 10931 insertions(+), 4028 deletions(-)
+
+diff --git a/bfd/configure b/bfd/configure
+index 0340ed541b5..2012656b3b7 100755
+--- a/bfd/configure
++++ b/bfd/configure
+@@ -704,6 +704,9 @@ OTOOL
+ LIPO
+ NMEDIT
+ DSYMUTIL
++MANIFEST_TOOL
++ac_ct_AR
++DLLTOOL
+ OBJDUMP
+ LN_S
+ NM
+@@ -822,6 +825,7 @@ enable_static
+ with_pic
+ enable_fast_install
+ with_gnu_ld
++with_libtool_sysroot
+ enable_libtool_lock
+ enable_plugins
+ enable_largefile
+@@ -1504,6 +1508,8 @@ Optional Packages:
+ --with-pic try to use only PIC/non-PIC objects [default=use
+ both]
+ --with-gnu-ld assume the C compiler uses GNU ld [default=no]
++ --with-libtool-sysroot=DIR Search for dependent libraries within DIR
++ (or the compiler's sysroot if not specified).
+ --with-mmap try using mmap for BFD input files if available
+ --with-separate-debug-dir=DIR
+ Look for global separate debug info in DIR
+@@ -5693,8 +5699,8 @@ esac
+
+
+
+-macro_version='2.2.7a'
+-macro_revision='1.3134'
++macro_version='2.4'
++macro_revision='1.3293'
+
+
+
+@@ -5734,7 +5740,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+ $as_echo_n "checking how to print strings... " >&6; }
+ # Test print first, because it will be a builtin if present.
+-if test "X`print -r -- -n 2>/dev/null`" = X-n && \
++if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='print -r --'
+ elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+@@ -6420,8 +6426,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
+ # Try some XSI features
+ xsi_shell=no
+ ( _lt_dummy="a/b/c"
+- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
+- = c,a/b,, \
++ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
++ = c,a/b,b/c, \
+ && eval 'test $(( 1 + 1 )) -eq 2 \
+ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+ && xsi_shell=yes
+@@ -6470,6 +6476,80 @@ esac
+
+
+
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
++$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
++if ${lt_cv_to_host_file_cmd+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ case $host in
++ *-*-mingw* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
++ ;;
++ *-*-cygwin* )
++ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
++ ;;
++ * ) # otherwise, assume *nix
++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
++ ;;
++ esac
++ ;;
++ *-*-cygwin* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
++ ;;
++ *-*-cygwin* )
++ lt_cv_to_host_file_cmd=func_convert_file_noop
++ ;;
++ * ) # otherwise, assume *nix
++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
++ ;;
++ esac
++ ;;
++ * ) # unhandled hosts (and "normal" native builds)
++ lt_cv_to_host_file_cmd=func_convert_file_noop
++ ;;
++esac
++
++fi
++
++to_host_file_cmd=$lt_cv_to_host_file_cmd
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
++$as_echo "$lt_cv_to_host_file_cmd" >&6; }
++
++
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
++$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
++if ${lt_cv_to_tool_file_cmd+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ #assume ordinary cross tools, or native build.
++lt_cv_to_tool_file_cmd=func_convert_file_noop
++case $host in
++ *-*-mingw* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
++ ;;
++ esac
++ ;;
++esac
++
++fi
++
++to_tool_file_cmd=$lt_cv_to_tool_file_cmd
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
++$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
++
++
++
++
++
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+ $as_echo_n "checking for $LD option to reload object files... " >&6; }
+ if ${lt_cv_ld_reload_flag+:} false; then :
+@@ -6486,6 +6566,11 @@ case $reload_flag in
+ esac
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ case $host_os in
++ cygwin* | mingw* | pw32* | cegcc*)
++ if test "$GCC" != yes; then
++ reload_cmds=false
++ fi
++ ;;
+ darwin*)
+ if test "$GCC" = yes; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+@@ -6654,7 +6739,8 @@ mingw* | pw32*)
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
++ # Keep this pattern in sync with the one in func_win32_libid.
++ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+@@ -6808,6 +6894,21 @@ esac
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+ $as_echo "$lt_cv_deplibs_check_method" >&6; }
++
++file_magic_glob=
++want_nocaseglob=no
++if test "$build" = "$host"; then
++ case $host_os in
++ mingw* | pw32*)
++ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
++ want_nocaseglob=yes
++ else
++ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
++ fi
++ ;;
++ esac
++fi
++
+ file_magic_cmd=$lt_cv_file_magic_cmd
+ deplibs_check_method=$lt_cv_deplibs_check_method
+ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+@@ -6821,11 +6922,164 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
++
++
++
++
++
++
++
++
++
++
+
+
+ if test -n "$ac_tool_prefix"; then
+- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}ar; ac_word=$2
++ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
++set dummy ${ac_tool_prefix}dlltool; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_DLLTOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$DLLTOOL"; then
++ ac_cv_prog_DLLTOOL="$DLLTOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++DLLTOOL=$ac_cv_prog_DLLTOOL
++if test -n "$DLLTOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
++$as_echo "$DLLTOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++
++fi
++if test -z "$ac_cv_prog_DLLTOOL"; then
++ ac_ct_DLLTOOL=$DLLTOOL
++ # Extract the first word of "dlltool", so it can be a program name with args.
++set dummy dlltool; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$ac_ct_DLLTOOL"; then
++ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_ac_ct_DLLTOOL="dlltool"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
++if test -n "$ac_ct_DLLTOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
++$as_echo "$ac_ct_DLLTOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++ if test "x$ac_ct_DLLTOOL" = x; then
++ DLLTOOL="false"
++ else
++ case $cross_compiling:$ac_tool_warned in
++yes:)
++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
++ac_tool_warned=yes ;;
++esac
++ DLLTOOL=$ac_ct_DLLTOOL
++ fi
++else
++ DLLTOOL="$ac_cv_prog_DLLTOOL"
++fi
++
++test -z "$DLLTOOL" && DLLTOOL=dlltool
++
++
++
++
++
++
++
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
++$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
++if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_sharedlib_from_linklib_cmd='unknown'
++
++case $host_os in
++cygwin* | mingw* | pw32* | cegcc*)
++ # two different shell functions defined in ltmain.sh
++ # decide which to use based on capabilities of $DLLTOOL
++ case `$DLLTOOL --help 2>&1` in
++ *--identify-strict*)
++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
++ ;;
++ *)
++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
++ ;;
++ esac
++ ;;
++*)
++ # fallback: assume linklib IS sharedlib
++ lt_cv_sharedlib_from_linklib_cmd="$ECHO"
++ ;;
++esac
++
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
++$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
++sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
++test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
++
++
++
++
++
++
++
++if test -n "$ac_tool_prefix"; then
++ for ac_prog in ar
++ 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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+@@ -6841,7 +7095,7 @@ do
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+- ac_cv_prog_AR="${ac_tool_prefix}ar"
++ ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+@@ -6861,11 +7115,15 @@ $as_echo "no" >&6; }
+ fi
+
+
++ test -n "$AR" && break
++ done
+ fi
+-if test -z "$ac_cv_prog_AR"; then
++if test -z "$AR"; then
+ ac_ct_AR=$AR
+- # Extract the first word of "ar", so it can be a program name with args.
+-set dummy ar; ac_word=$2
++ for ac_prog in ar
++do
++ # Extract the first word of "$ac_prog", so it can be a program name with args.
++set dummy $ac_prog; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+@@ -6881,7 +7139,7 @@ do
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+- ac_cv_prog_ac_ct_AR="ar"
++ ac_cv_prog_ac_ct_AR="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+@@ -6900,6 +7158,10 @@ else
+ $as_echo "no" >&6; }
+ fi
+
++
++ test -n "$ac_ct_AR" && break
++done
++
+ if test "x$ac_ct_AR" = x; then
+ AR="false"
+ else
+@@ -6911,16 +7173,72 @@ ac_tool_warned=yes ;;
+ esac
+ AR=$ac_ct_AR
+ fi
+-else
+- AR="$ac_cv_prog_AR"
+ fi
+
+-test -z "$AR" && AR=ar
+-test -z "$AR_FLAGS" && AR_FLAGS=cru
++: ${AR=ar}
++: ${AR_FLAGS=cru}
++
++
++
++
++
++
++
++
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
++$as_echo_n "checking for archiver @FILE support... " >&6; }
++if ${lt_cv_ar_at_file+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_ar_at_file=no
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++
++int
++main ()
++{
+
++ ;
++ return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++ echo conftest.$ac_objext > conftest.lst
++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
++ (eval $lt_ar_try) 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }
++ if test "$ac_status" -eq 0; then
++ # Ensure the archiver fails upon bogus file names.
++ rm -f conftest.$ac_objext libconftest.a
++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
++ (eval $lt_ar_try) 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }
++ if test "$ac_status" -ne 0; then
++ lt_cv_ar_at_file=@
++ fi
++ fi
++ rm -f conftest.* libconftest.a
+
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
++$as_echo "$lt_cv_ar_at_file" >&6; }
+
++if test "x$lt_cv_ar_at_file" = xno; then
++ archiver_list_spec=
++else
++ archiver_list_spec=$lt_cv_ar_at_file
++fi
+
+
+
+@@ -7262,8 +7580,8 @@ esac
+ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+ # Transform an extracted symbol line into symbol name and symbol address
+-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
+-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
++lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
+
+ # Handle CRLF in mingw tool chain
+ opt_cr=
+@@ -7299,6 +7617,7 @@ for ac_symprfx in "" "_"; do
+ else
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
++ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+@@ -7340,6 +7659,18 @@ _LT_EOF
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
++#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
++/* DATA imports from DLLs on WIN32 con't be const, because runtime
++ relocations are performed -- see ld's documentation on pseudo-relocs. */
++# define LT_DLSYM_CONST
++#elif defined(__osf__)
++/* This system does not cope well with relocations in const data. */
++# define LT_DLSYM_CONST
++#else
++# define LT_DLSYM_CONST const
++#endif
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+@@ -7351,7 +7682,7 @@ _LT_EOF
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+ /* The mapping between symbol names and symbols. */
+-const struct {
++LT_DLSYM_CONST struct {
+ const char *name;
+ void *address;
+ }
+@@ -7377,8 +7708,8 @@ static const void *lt_preloaded_setup() {
+ _LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+- lt_save_LIBS="$LIBS"
+- lt_save_CFLAGS="$CFLAGS"
++ lt_globsym_save_LIBS=$LIBS
++ lt_globsym_save_CFLAGS=$CFLAGS
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+@@ -7388,8 +7719,8 @@ _LT_EOF
+ test $ac_status = 0; } && test -s conftest${ac_exeext}; then
+ pipe_works=yes
+ fi
+- LIBS="$lt_save_LIBS"
+- CFLAGS="$lt_save_CFLAGS"
++ LIBS=$lt_globsym_save_LIBS
++ CFLAGS=$lt_globsym_save_CFLAGS
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+@@ -7426,6 +7757,16 @@ else
+ $as_echo "ok" >&6; }
+ fi
+
++# Response file support.
++if test "$lt_cv_nm_interface" = "MS dumpbin"; then
++ nm_file_list_spec='@'
++elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
++ nm_file_list_spec='@'
++fi
++
++
++
++
+
+
+
+@@ -7442,6 +7783,45 @@ fi
+
+
+
++
++
++
++
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
++$as_echo_n "checking for sysroot... " >&6; }
++
++# Check whether --with-libtool-sysroot was given.
++if test "${with_libtool_sysroot+set}" = set; then :
++ withval=$with_libtool_sysroot;
++else
++ with_libtool_sysroot=no
++fi
++
++
++lt_sysroot=
++case ${with_libtool_sysroot} in #(
++ yes)
++ if test "$GCC" = yes; then
++ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
++ fi
++ ;; #(
++ /*)
++ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
++ ;; #(
++ no|'')
++ ;; #(
++ *)
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5
++$as_echo "${with_libtool_sysroot}" >&6; }
++ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
++ ;;
++esac
++
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
++$as_echo "${lt_sysroot:-no}" >&6; }
+
+
+
+@@ -7653,6 +8033,123 @@ esac
+
+ need_locks="$enable_libtool_lock"
+
++if test -n "$ac_tool_prefix"; then
++ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
++set dummy ${ac_tool_prefix}mt; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$MANIFEST_TOOL"; then
++ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
++if test -n "$MANIFEST_TOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
++$as_echo "$MANIFEST_TOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++
++fi
++if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
++ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
++ # Extract the first word of "mt", so it can be a program name with args.
++set dummy mt; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$ac_ct_MANIFEST_TOOL"; then
++ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
++if test -n "$ac_ct_MANIFEST_TOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
++$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++ if test "x$ac_ct_MANIFEST_TOOL" = x; then
++ MANIFEST_TOOL=":"
++ else
++ case $cross_compiling:$ac_tool_warned in
++yes:)
++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
++ac_tool_warned=yes ;;
++esac
++ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
++ fi
++else
++ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
++fi
++
++test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
++$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
++if ${lt_cv_path_mainfest_tool+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_path_mainfest_tool=no
++ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
++ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
++ cat conftest.err >&5
++ if $GREP 'Manifest Tool' conftest.out > /dev/null; then
++ lt_cv_path_mainfest_tool=yes
++ fi
++ rm -f conftest*
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
++$as_echo "$lt_cv_path_mainfest_tool" >&6; }
++if test "x$lt_cv_path_mainfest_tool" != xyes; then
++ MANIFEST_TOOL=:
++fi
++
++
++
++
++
+
+ case $host_os in
+ rhapsody* | darwin*)
+@@ -8216,6 +8713,8 @@ _LT_EOF
+ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+ echo "$AR cru libconftest.a conftest.o" >&5
+ $AR cru libconftest.a conftest.o 2>&5
++ echo "$RANLIB libconftest.a" >&5
++ $RANLIB libconftest.a 2>&5
+ cat > conftest.c << _LT_EOF
+ int main() { return 0;}
+ _LT_EOF
+@@ -8380,7 +8879,8 @@ fi
+ LIBTOOL_DEPS="$ltmain"
+
+ # Always use our own libtool.
+-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
++LIBTOOL='$(SHELL) $(top_builddir)'
++LIBTOOL="$LIBTOOL/${host_alias}-libtool"
+
+
+
+@@ -8469,7 +8969,7 @@ aix3*)
+ esac
+
+ # Global variables:
+-ofile=libtool
++ofile=${host_alias}-libtool
+ can_build_shared=yes
+
+ # All known linkers require a `.a' archive for static linking (except MSVC,
+@@ -8767,8 +9267,6 @@ fi
+ lt_prog_compiler_pic=
+ lt_prog_compiler_static=
+
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+
+ if test "$GCC" = yes; then
+ lt_prog_compiler_wl='-Wl,'
+@@ -8934,6 +9432,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+ lt_prog_compiler_pic='--shared'
+ lt_prog_compiler_static='--static'
+ ;;
++ nagfor*)
++ # NAG Fortran compiler
++ lt_prog_compiler_wl='-Wl,-Wl,,'
++ lt_prog_compiler_pic='-PIC'
++ lt_prog_compiler_static='-Bstatic'
++ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+@@ -8996,7 +9500,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+- f77* | f90* | f95*)
++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+@@ -9053,13 +9557,17 @@ case $host_os in
+ lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+ ;;
+ esac
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
+-$as_echo "$lt_prog_compiler_pic" >&6; }
+-
+-
+-
+-
+
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
++$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
++if ${lt_cv_prog_compiler_pic+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
++$as_echo "$lt_cv_prog_compiler_pic" >&6; }
++lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
+
+ #
+ # Check to make sure the PIC flag actually works.
+@@ -9120,6 +9628,11 @@ fi
+
+
+
++
++
++
++
++
+ #
+ # Check to make sure the static flag actually works.
+ #
+@@ -9470,7 +9983,8 @@ _LT_EOF
+ allow_undefined_flag=unsupported
+ always_export_symbols=no
+ enable_shared_with_static_runtimes=yes
+- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
++ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+@@ -9569,12 +10083,12 @@ _LT_EOF
+ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_flag_spec_ld='-rpath $libdir'
+- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+@@ -9588,8 +10102,8 @@ _LT_EOF
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+@@ -9607,8 +10121,8 @@ _LT_EOF
+
+ _LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+@@ -9654,8 +10168,8 @@ _LT_EOF
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+@@ -9785,7 +10299,13 @@ _LT_EOF
+ allow_undefined_flag='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++ if test "${lt_cv_aix_libpath+set}" = set; then
++ aix_libpath=$lt_cv_aix_libpath
++else
++ if ${lt_cv_aix_libpath_+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ int
+@@ -9798,22 +10318,29 @@ main ()
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+
+-lt_aix_libpath_sed='
+- /Import File Strings/,/^$/ {
+- /^0/ {
+- s/^0 *\(.*\)$/\1/
+- p
+- }
+- }'
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-# Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then
+- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-fi
++ lt_aix_libpath_sed='
++ /Import File Strings/,/^$/ {
++ /^0/ {
++ s/^0 *\([^ ]*\) *$/\1/
++ p
++ }
++ }'
++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ # Check for a 64-bit object if we didn't find anything.
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ fi
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_="/usr/lib:/lib"
++ fi
++
++fi
++
++ aix_libpath=$lt_cv_aix_libpath_
++fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+@@ -9825,7 +10352,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++ if test "${lt_cv_aix_libpath+set}" = set; then
++ aix_libpath=$lt_cv_aix_libpath
++else
++ if ${lt_cv_aix_libpath_+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ int
+@@ -9838,22 +10371,29 @@ main ()
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+
+-lt_aix_libpath_sed='
+- /Import File Strings/,/^$/ {
+- /^0/ {
+- s/^0 *\(.*\)$/\1/
+- p
+- }
+- }'
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-# Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then
+- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-fi
++ lt_aix_libpath_sed='
++ /Import File Strings/,/^$/ {
++ /^0/ {
++ s/^0 *\([^ ]*\) *$/\1/
++ p
++ }
++ }'
++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ # Check for a 64-bit object if we didn't find anything.
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ fi
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_="/usr/lib:/lib"
++ fi
++
++fi
++
++ aix_libpath=$lt_cv_aix_libpath_
++fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+@@ -9898,20 +10438,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+- hardcode_libdir_flag_spec=' '
+- allow_undefined_flag=unsupported
+- # Tell ltmain to make .lib files, not .a files.
+- libext=lib
+- # Tell ltmain to make .dll files, not .so files.
+- shrext_cmds=".dll"
+- # FIXME: Setting linknames here is a bad hack.
+- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+- # The linker will automatically build a .lib file if we build a DLL.
+- old_archive_from_new_cmds='true'
+- # FIXME: Should let the user specify the lib program.
+- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+- fix_srcfile_path='`cygpath -w "$srcfile"`'
+- enable_shared_with_static_runtimes=yes
++ case $cc_basename in
++ cl*)
++ # Native MSVC
++ hardcode_libdir_flag_spec=' '
++ allow_undefined_flag=unsupported
++ always_export_symbols=yes
++ file_list_spec='@'
++ # Tell ltmain to make .lib files, not .a files.
++ libext=lib
++ # Tell ltmain to make .dll files, not .so files.
++ shrext_cmds=".dll"
++ # FIXME: Setting linknames here is a bad hack.
++ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
++ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
++ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
++ else
++ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
++ fi~
++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
++ linknames='
++ # The linker will not automatically build a static lib if we build a DLL.
++ # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
++ enable_shared_with_static_runtimes=yes
++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
++ # Don't use ranlib
++ old_postinstall_cmds='chmod 644 $oldlib'
++ postlink_cmds='lt_outputfile="@OUTPUT@"~
++ lt_tool_outputfile="@TOOL_OUTPUT@"~
++ case $lt_outputfile in
++ *.exe|*.EXE) ;;
++ *)
++ lt_outputfile="$lt_outputfile.exe"
++ lt_tool_outputfile="$lt_tool_outputfile.exe"
++ ;;
++ esac~
++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
++ $RM "$lt_outputfile.manifest";
++ fi'
++ ;;
++ *)
++ # Assume MSVC wrapper
++ hardcode_libdir_flag_spec=' '
++ allow_undefined_flag=unsupported
++ # Tell ltmain to make .lib files, not .a files.
++ libext=lib
++ # Tell ltmain to make .dll files, not .so files.
++ shrext_cmds=".dll"
++ # FIXME: Setting linknames here is a bad hack.
++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
++ # The linker will automatically build a .lib file if we build a DLL.
++ old_archive_from_new_cmds='true'
++ # FIXME: Should let the user specify the lib program.
++ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
++ enable_shared_with_static_runtimes=yes
++ ;;
++ esac
+ ;;
+
+ darwin* | rhapsody*)
+@@ -9972,7 +10555,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+@@ -9980,7 +10563,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hpux9*)
+ if test "$GCC" = yes; then
+- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
++ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+@@ -9996,7 +10579,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hpux10*)
+ if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+@@ -10020,10 +10603,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+@@ -10102,23 +10685,36 @@ fi
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+- save_LDFLAGS="$LDFLAGS"
+- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++ # This should be the same for all languages, so no per-tag cache variable.
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
++$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
++if ${lt_cv_irix_exported_symbol+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ save_LDFLAGS="$LDFLAGS"
++ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+-int foo(void) {}
++int foo (void) { return 0; }
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+-
++ lt_cv_irix_exported_symbol=yes
++else
++ lt_cv_irix_exported_symbol=no
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+- LDFLAGS="$save_LDFLAGS"
++ LDFLAGS="$save_LDFLAGS"
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
++$as_echo "$lt_cv_irix_exported_symbol" >&6; }
++ if test "$lt_cv_irix_exported_symbol" = yes; then
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
++ fi
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+@@ -10203,7 +10799,7 @@ rm -f core conftest.err conftest.$ac_objext \
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
++ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+@@ -10222,9 +10818,9 @@ rm -f core conftest.err conftest.$ac_objext \
+ no_undefined_flag=' -z defs'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
++ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+@@ -10800,8 +11396,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+ need_version=no
+ need_lib_prefix=no
+
+- case $GCC,$host_os in
+- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
++ case $GCC,$cc_basename in
++ yes,*)
++ # gcc
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+@@ -10834,13 +11431,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
++ dynamic_linker='Win32 ld.exe'
++ ;;
++
++ *,cl*)
++ # Native MSVC
++ libname_spec='$name'
++ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
++ library_names_spec='${libname}.dll.lib'
++
++ case $build_os in
++ mingw*)
++ sys_lib_search_path_spec=
++ lt_save_ifs=$IFS
++ IFS=';'
++ for lt_path in $LIB
++ do
++ IFS=$lt_save_ifs
++ # Let DOS variable expansion print the short 8.3 style file name.
++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
++ done
++ IFS=$lt_save_ifs
++ # Convert to MSYS style.
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
++ ;;
++ cygwin*)
++ # Convert to unix form, then to dos form, then back to unix form
++ # but this time dos style (no spaces!) so that the unix form looks
++ # like /cygdrive/c/PROGRA~1:/cygdr...
++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
++ ;;
++ *)
++ sys_lib_search_path_spec="$LIB"
++ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
++ # It is most probably a Windows format PATH.
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
++ else
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
++ fi
++ # FIXME: find the short name or the path components, as spaces are
++ # common. (e.g. "Program Files" -> "PROGRA~1")
++ ;;
++ esac
++
++ # DLL is installed to $(libdir)/../bin by postinstall_cmds
++ postinstall_cmds='base_file=`basename \${file}`~
++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
++ dldir=$destdir/`dirname \$dlpath`~
++ test -d \$dldir || mkdir -p \$dldir~
++ $install_prog $dir/$dlname \$dldir/$dlname'
++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
++ dlpath=$dir/\$dldll~
++ $RM \$dlpath'
++ shlibpath_overrides_runpath=yes
++ dynamic_linker='Win32 link.exe'
+ ;;
+
+ *)
++ # Assume MSVC wrapper
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
++ dynamic_linker='Win32 ld.exe'
+ ;;
+ esac
+- dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+@@ -10932,7 +11587,7 @@ haiku*)
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+ hardcode_into_libs=yes
+ ;;
+
+@@ -11728,7 +12383,7 @@ else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+-#line 11731 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+@@ -11772,10 +12427,10 @@ else
+ /* When -fvisbility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+-void fnord () __attribute__((visibility("default")));
++int fnord () __attribute__((visibility("default")));
+ #endif
+
+-void fnord () { int i=42; }
++int fnord () { return 42; }
+ int main ()
+ {
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+@@ -11834,7 +12489,7 @@ else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+-#line 11837 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+@@ -11878,10 +12533,10 @@ else
+ /* When -fvisbility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+-void fnord () __attribute__((visibility("default")));
++int fnord () __attribute__((visibility("default")));
+ #endif
+
+-void fnord () { int i=42; }
++int fnord () { return 42; }
+ int main ()
+ {
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+@@ -14578,7 +15233,7 @@ SHARED_LDFLAGS=
+ if test "$enable_shared" = "yes"; then
+ x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'`
+ if test -n "$x"; then
+- SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty"
++ SHARED_LIBADD="`pwd`/../libiberty/pic/libiberty.a"
+ fi
+
+ case "${host}" in
+@@ -17197,13 +17852,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+ lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+ lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+ lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
++lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
++lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
+ reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+ reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+ OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+ deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+ file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
++file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
++want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
++DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
++sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
+ AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+ AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
++archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
+ STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+ RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+ old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+@@ -17218,14 +17880,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+ lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+ lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
++nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
++lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+ objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+ MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
++lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+ lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+ need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
++MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
+ DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+ NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+ LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+@@ -17258,12 +17923,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+ hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+ inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+ link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+-fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`'
+ always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+ export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+ exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+ include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+ prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
++postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
+ file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+ variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+ need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+@@ -17318,8 +17983,13 @@ reload_flag \
+ OBJDUMP \
+ deplibs_check_method \
+ file_magic_cmd \
++file_magic_glob \
++want_nocaseglob \
++DLLTOOL \
++sharedlib_from_linklib_cmd \
+ AR \
+ AR_FLAGS \
++archiver_list_spec \
+ STRIP \
+ RANLIB \
+ CC \
+@@ -17329,12 +17999,14 @@ lt_cv_sys_global_symbol_pipe \
+ lt_cv_sys_global_symbol_to_cdecl \
+ lt_cv_sys_global_symbol_to_c_name_address \
+ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
++nm_file_list_spec \
+ lt_prog_compiler_no_builtin_flag \
+-lt_prog_compiler_wl \
+ lt_prog_compiler_pic \
++lt_prog_compiler_wl \
+ lt_prog_compiler_static \
+ lt_cv_prog_compiler_c_o \
+ need_locks \
++MANIFEST_TOOL \
+ DSYMUTIL \
+ NMEDIT \
+ LIPO \
+@@ -17350,7 +18022,6 @@ no_undefined_flag \
+ hardcode_libdir_flag_spec \
+ hardcode_libdir_flag_spec_ld \
+ hardcode_libdir_separator \
+-fix_srcfile_path \
+ exclude_expsyms \
+ include_expsyms \
+ file_list_spec \
+@@ -17386,6 +18057,7 @@ module_cmds \
+ module_expsym_cmds \
+ export_symbols_cmds \
+ prelink_cmds \
++postlink_cmds \
+ postinstall_cmds \
+ postuninstall_cmds \
+ finish_cmds \
+@@ -18174,7 +18846,8 @@ $as_echo X"$file" |
+ # NOTE: Changes made to this file will be lost: look at ltmain.sh.
+ #
+ # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
++# Inc.
+ # Written by Gordon Matzigkeit, 1996
+ #
+ # This file is part of GNU Libtool.
+@@ -18277,19 +18950,42 @@ SP2NL=$lt_lt_SP2NL
+ # turn newlines into spaces.
+ NL2SP=$lt_lt_NL2SP
+
++# convert \$build file names to \$host format.
++to_host_file_cmd=$lt_cv_to_host_file_cmd
++
++# convert \$build files to toolchain format.
++to_tool_file_cmd=$lt_cv_to_tool_file_cmd
++
+ # An object symbol dumper.
+ OBJDUMP=$lt_OBJDUMP
+
+ # Method to check whether dependent libraries are shared objects.
+ deplibs_check_method=$lt_deplibs_check_method
+
+-# Command to use when deplibs_check_method == "file_magic".
++# Command to use when deplibs_check_method = "file_magic".
+ file_magic_cmd=$lt_file_magic_cmd
+
++# How to find potential files when deplibs_check_method = "file_magic".
++file_magic_glob=$lt_file_magic_glob
++
++# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
++want_nocaseglob=$lt_want_nocaseglob
++
++# DLL creation program.
++DLLTOOL=$lt_DLLTOOL
++
++# Command to associate shared and link libraries.
++sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
++
+ # The archiver.
+ AR=$lt_AR
++
++# Flags to create an archive.
+ AR_FLAGS=$lt_AR_FLAGS
+
++# How to feed a file listing to the archiver.
++archiver_list_spec=$lt_archiver_list_spec
++
+ # A symbol stripping program.
+ STRIP=$lt_STRIP
+
+@@ -18319,6 +19015,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+ # Transform the output of nm in a C name address pair when lib prefix is needed.
+ global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
++# Specify filename containing input files for \$NM.
++nm_file_list_spec=$lt_nm_file_list_spec
++
++# The root where to search for dependent libraries,and in which our libraries should be installed.
++lt_sysroot=$lt_sysroot
++
+ # The name of the directory that contains temporary libtool files.
+ objdir=$objdir
+
+@@ -18328,6 +19030,9 @@ MAGIC_CMD=$MAGIC_CMD
+ # Must we lock files when doing compilation?
+ need_locks=$lt_need_locks
+
++# Manifest tool.
++MANIFEST_TOOL=$lt_MANIFEST_TOOL
++
+ # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+ DSYMUTIL=$lt_DSYMUTIL
+
+@@ -18442,12 +19147,12 @@ with_gcc=$GCC
+ # Compiler flag to turn off builtin functions.
+ no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+-# How to pass a linker flag through the compiler.
+-wl=$lt_lt_prog_compiler_wl
+-
+ # Additional compiler flags for building library objects.
+ pic_flag=$lt_lt_prog_compiler_pic
+
++# How to pass a linker flag through the compiler.
++wl=$lt_lt_prog_compiler_wl
++
+ # Compiler flag to prevent dynamic linking.
+ link_static_flag=$lt_lt_prog_compiler_static
+
+@@ -18534,9 +19239,6 @@ inherit_rpath=$inherit_rpath
+ # Whether libtool must link a program against all its dependency libraries.
+ link_all_deplibs=$link_all_deplibs
+
+-# Fix the shell variable \$srcfile for the compiler.
+-fix_srcfile_path=$lt_fix_srcfile_path
+-
+ # Set to "yes" if exported symbols are required.
+ always_export_symbols=$always_export_symbols
+
+@@ -18552,6 +19254,9 @@ include_expsyms=$lt_include_expsyms
+ # Commands necessary for linking programs (against libraries) with templates.
+ prelink_cmds=$lt_prelink_cmds
+
++# Commands necessary for finishing linking programs.
++postlink_cmds=$lt_postlink_cmds
++
+ # Specify filename containing input files.
+ file_list_spec=$lt_file_list_spec
+
+@@ -18584,210 +19289,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
+- || (rm -f "$cfgfile"; exit 1)
+-
+- case $xsi_shell in
+- yes)
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_dirname file append nondir_replacement
+-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+-# otherwise set result to NONDIR_REPLACEMENT.
+-func_dirname ()
+-{
+- case ${1} in
+- */*) func_dirname_result="${1%/*}${2}" ;;
+- * ) func_dirname_result="${3}" ;;
+- esac
+-}
+-
+-# func_basename file
+-func_basename ()
+-{
+- func_basename_result="${1##*/}"
+-}
+-
+-# func_dirname_and_basename file append nondir_replacement
+-# perform func_basename and func_dirname in a single function
+-# call:
+-# dirname: Compute the dirname of FILE. If nonempty,
+-# add APPEND to the result, otherwise set result
+-# to NONDIR_REPLACEMENT.
+-# value returned in "$func_dirname_result"
+-# basename: Compute filename of FILE.
+-# value retuned in "$func_basename_result"
+-# Implementation must be kept synchronized with func_dirname
+-# and func_basename. For efficiency, we do not delegate to
+-# those functions but instead duplicate the functionality here.
+-func_dirname_and_basename ()
+-{
+- case ${1} in
+- */*) func_dirname_result="${1%/*}${2}" ;;
+- * ) func_dirname_result="${3}" ;;
+- esac
+- func_basename_result="${1##*/}"
+-}
+-
+-# func_stripname prefix suffix name
+-# strip PREFIX and SUFFIX off of NAME.
+-# PREFIX and SUFFIX must not contain globbing or regex special
+-# characters, hashes, percent signs, but SUFFIX may contain a leading
+-# dot (in which case that matches only a dot).
+-func_stripname ()
+-{
+- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+- # positional parameters, so assign one to ordinary parameter first.
+- func_stripname_result=${3}
+- func_stripname_result=${func_stripname_result#"${1}"}
+- func_stripname_result=${func_stripname_result%"${2}"}
+-}
+-
+-# func_opt_split
+-func_opt_split ()
+-{
+- func_opt_split_opt=${1%%=*}
+- func_opt_split_arg=${1#*=}
+-}
+-
+-# func_lo2o object
+-func_lo2o ()
+-{
+- case ${1} in
+- *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+- *) func_lo2o_result=${1} ;;
+- esac
+-}
+-
+-# func_xform libobj-or-source
+-func_xform ()
+-{
+- func_xform_result=${1%.*}.lo
+-}
+-
+-# func_arith arithmetic-term...
+-func_arith ()
+-{
+- func_arith_result=$(( $* ))
+-}
+-
+-# func_len string
+-# STRING may not start with a hyphen.
+-func_len ()
+-{
+- func_len_result=${#1}
+-}
+-
+-_LT_EOF
+- ;;
+- *) # Bourne compatible functions.
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_dirname file append nondir_replacement
+-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+-# otherwise set result to NONDIR_REPLACEMENT.
+-func_dirname ()
+-{
+- # Extract subdirectory from the argument.
+- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
+- if test "X$func_dirname_result" = "X${1}"; then
+- func_dirname_result="${3}"
+- else
+- func_dirname_result="$func_dirname_result${2}"
+- fi
+-}
+-
+-# func_basename file
+-func_basename ()
+-{
+- func_basename_result=`$ECHO "${1}" | $SED "$basename"`
+-}
+-
+-
+-# func_stripname prefix suffix name
+-# strip PREFIX and SUFFIX off of NAME.
+-# PREFIX and SUFFIX must not contain globbing or regex special
+-# characters, hashes, percent signs, but SUFFIX may contain a leading
+-# dot (in which case that matches only a dot).
+-# func_strip_suffix prefix name
+-func_stripname ()
+-{
+- case ${2} in
+- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+- esac
+-}
+-
+-# sed scripts:
+-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
+-my_sed_long_arg='1s/^-[^=]*=//'
+-
+-# func_opt_split
+-func_opt_split ()
+-{
+- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
+- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
+-}
+-
+-# func_lo2o object
+-func_lo2o ()
+-{
+- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
+-}
+-
+-# func_xform libobj-or-source
+-func_xform ()
+-{
+- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
+-}
+-
+-# func_arith arithmetic-term...
+-func_arith ()
+-{
+- func_arith_result=`expr "$@"`
+-}
+-
+-# func_len string
+-# STRING may not start with a hyphen.
+-func_len ()
+-{
+- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
+-}
+-
+-_LT_EOF
+-esac
+-
+-case $lt_shell_append in
+- yes)
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_append var value
+-# Append VALUE to the end of shell variable VAR.
+-func_append ()
+-{
+- eval "$1+=\$2"
+-}
+-_LT_EOF
+- ;;
+- *)
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_append var value
+-# Append VALUE to the end of shell variable VAR.
+-func_append ()
+-{
+- eval "$1=\$$1\$2"
+-}
+-
+-_LT_EOF
+- ;;
+- esac
+-
+-
+- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
+- || (rm -f "$cfgfile"; exit 1)
+-
+- mv -f "$cfgfile" "$ofile" ||
++ sed '$q' "$ltmain" >> "$cfgfile" \
++ || (rm -f "$cfgfile"; exit 1)
++
++ if test x"$xsi_shell" = xyes; then
++ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
++func_dirname ()\
++{\
++\ case ${1} in\
++\ */*) func_dirname_result="${1%/*}${2}" ;;\
++\ * ) func_dirname_result="${3}" ;;\
++\ esac\
++} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_basename ()$/,/^} # func_basename /c\
++func_basename ()\
++{\
++\ func_basename_result="${1##*/}"\
++} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
++func_dirname_and_basename ()\
++{\
++\ case ${1} in\
++\ */*) func_dirname_result="${1%/*}${2}" ;;\
++\ * ) func_dirname_result="${3}" ;;\
++\ esac\
++\ func_basename_result="${1##*/}"\
++} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
++func_stripname ()\
++{\
++\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
++\ # positional parameters, so assign one to ordinary parameter first.\
++\ func_stripname_result=${3}\
++\ func_stripname_result=${func_stripname_result#"${1}"}\
++\ func_stripname_result=${func_stripname_result%"${2}"}\
++} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
++func_split_long_opt ()\
++{\
++\ func_split_long_opt_name=${1%%=*}\
++\ func_split_long_opt_arg=${1#*=}\
++} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
++func_split_short_opt ()\
++{\
++\ func_split_short_opt_arg=${1#??}\
++\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
++} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
++func_lo2o ()\
++{\
++\ case ${1} in\
++\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
++\ *) func_lo2o_result=${1} ;;\
++\ esac\
++} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_xform ()$/,/^} # func_xform /c\
++func_xform ()\
++{\
++ func_xform_result=${1%.*}.lo\
++} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_arith ()$/,/^} # func_arith /c\
++func_arith ()\
++{\
++ func_arith_result=$(( $* ))\
++} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_len ()$/,/^} # func_len /c\
++func_len ()\
++{\
++ func_len_result=${#1}\
++} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++fi
++
++if test x"$lt_shell_append" = xyes; then
++ sed -e '/^func_append ()$/,/^} # func_append /c\
++func_append ()\
++{\
++ eval "${1}+=\\${2}"\
++} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
++func_append_quoted ()\
++{\
++\ func_quote_for_eval "${2}"\
++\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
++} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ # Save a `func_append' function call where possible by direct use of '+='
++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++ test 0 -eq $? || _lt_function_replace_fail=:
++else
++ # Save a `func_append' function call even when '+=' is not available
++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++ test 0 -eq $? || _lt_function_replace_fail=:
++fi
++
++if test x"$_lt_function_replace_fail" = x":"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
++$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
++fi
++
++
++ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+
+diff --git a/bfd/configure.ac b/bfd/configure.ac
+index 8e86f8399ce..e8700c9d4d2 100644
+--- a/bfd/configure.ac
++++ b/bfd/configure.ac
+@@ -314,7 +314,7 @@ changequote(,)dnl
+ x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'`
+ changequote([,])dnl
+ if test -n "$x"; then
+- SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty"
++ SHARED_LIBADD="`pwd`/../libiberty/pic/libiberty.a"
+ fi
+
+ case "${host}" in
+diff --git a/binutils/configure b/binutils/configure
+index 89c99abfeba..d3289a5efcd 100755
+--- a/binutils/configure
++++ b/binutils/configure
+@@ -692,8 +692,11 @@ OTOOL
+ LIPO
+ NMEDIT
+ DSYMUTIL
++MANIFEST_TOOL
+ RANLIB
++ac_ct_AR
+ AR
++DLLTOOL
+ OBJDUMP
+ LN_S
+ NM
+@@ -810,6 +813,7 @@ enable_static
+ with_pic
+ enable_fast_install
+ with_gnu_ld
++with_libtool_sysroot
+ enable_libtool_lock
+ enable_plugins
+ enable_largefile
+@@ -1490,6 +1494,8 @@ Optional Packages:
+ --with-pic try to use only PIC/non-PIC objects [default=use
+ both]
+ --with-gnu-ld assume the C compiler uses GNU ld [default=no]
++ --with-libtool-sysroot=DIR Search for dependent libraries within DIR
++ (or the compiler's sysroot if not specified).
+ --with-debuginfod Enable debuginfo lookups with debuginfod
+ (auto/yes/no)
+ --with-system-zlib use installed libz
+@@ -5467,8 +5473,8 @@ esac
+
+
+
+-macro_version='2.2.7a'
+-macro_revision='1.3134'
++macro_version='2.4'
++macro_revision='1.3293'
+
+
+
+@@ -5508,7 +5514,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+ $as_echo_n "checking how to print strings... " >&6; }
+ # Test print first, because it will be a builtin if present.
+-if test "X`print -r -- -n 2>/dev/null`" = X-n && \
++if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='print -r --'
+ elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+@@ -6194,8 +6200,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
+ # Try some XSI features
+ xsi_shell=no
+ ( _lt_dummy="a/b/c"
+- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
+- = c,a/b,, \
++ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
++ = c,a/b,b/c, \
+ && eval 'test $(( 1 + 1 )) -eq 2 \
+ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+ && xsi_shell=yes
+@@ -6244,6 +6250,80 @@ esac
+
+
+
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
++$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
++if ${lt_cv_to_host_file_cmd+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ case $host in
++ *-*-mingw* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
++ ;;
++ *-*-cygwin* )
++ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
++ ;;
++ * ) # otherwise, assume *nix
++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
++ ;;
++ esac
++ ;;
++ *-*-cygwin* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
++ ;;
++ *-*-cygwin* )
++ lt_cv_to_host_file_cmd=func_convert_file_noop
++ ;;
++ * ) # otherwise, assume *nix
++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
++ ;;
++ esac
++ ;;
++ * ) # unhandled hosts (and "normal" native builds)
++ lt_cv_to_host_file_cmd=func_convert_file_noop
++ ;;
++esac
++
++fi
++
++to_host_file_cmd=$lt_cv_to_host_file_cmd
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
++$as_echo "$lt_cv_to_host_file_cmd" >&6; }
++
++
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
++$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
++if ${lt_cv_to_tool_file_cmd+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ #assume ordinary cross tools, or native build.
++lt_cv_to_tool_file_cmd=func_convert_file_noop
++case $host in
++ *-*-mingw* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
++ ;;
++ esac
++ ;;
++esac
++
++fi
++
++to_tool_file_cmd=$lt_cv_to_tool_file_cmd
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
++$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
++
++
++
++
++
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+ $as_echo_n "checking for $LD option to reload object files... " >&6; }
+ if ${lt_cv_ld_reload_flag+:} false; then :
+@@ -6260,6 +6340,11 @@ case $reload_flag in
+ esac
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ case $host_os in
++ cygwin* | mingw* | pw32* | cegcc*)
++ if test "$GCC" != yes; then
++ reload_cmds=false
++ fi
++ ;;
+ darwin*)
+ if test "$GCC" = yes; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+@@ -6428,7 +6513,8 @@ mingw* | pw32*)
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
++ # Keep this pattern in sync with the one in func_win32_libid.
++ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+@@ -6582,6 +6668,21 @@ esac
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+ $as_echo "$lt_cv_deplibs_check_method" >&6; }
++
++file_magic_glob=
++want_nocaseglob=no
++if test "$build" = "$host"; then
++ case $host_os in
++ mingw* | pw32*)
++ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
++ want_nocaseglob=yes
++ else
++ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
++ fi
++ ;;
++ esac
++fi
++
+ file_magic_cmd=$lt_cv_file_magic_cmd
+ deplibs_check_method=$lt_cv_deplibs_check_method
+ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+@@ -6597,9 +6698,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
++
++
++
++
++
++
++
++
++
++
++if test -n "$ac_tool_prefix"; then
++ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
++set dummy ${ac_tool_prefix}dlltool; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_DLLTOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$DLLTOOL"; then
++ ac_cv_prog_DLLTOOL="$DLLTOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++DLLTOOL=$ac_cv_prog_DLLTOOL
++if test -n "$DLLTOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
++$as_echo "$DLLTOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++
++fi
++if test -z "$ac_cv_prog_DLLTOOL"; then
++ ac_ct_DLLTOOL=$DLLTOOL
++ # Extract the first word of "dlltool", so it can be a program name with args.
++set dummy dlltool; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$ac_ct_DLLTOOL"; then
++ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_ac_ct_DLLTOOL="dlltool"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
++if test -n "$ac_ct_DLLTOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
++$as_echo "$ac_ct_DLLTOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++ if test "x$ac_ct_DLLTOOL" = x; then
++ DLLTOOL="false"
++ else
++ case $cross_compiling:$ac_tool_warned in
++yes:)
++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
++ac_tool_warned=yes ;;
++esac
++ DLLTOOL=$ac_ct_DLLTOOL
++ fi
++else
++ DLLTOOL="$ac_cv_prog_DLLTOOL"
++fi
++
++test -z "$DLLTOOL" && DLLTOOL=dlltool
++
++
++
++
++
++
++
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
++$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
++if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_sharedlib_from_linklib_cmd='unknown'
++
++case $host_os in
++cygwin* | mingw* | pw32* | cegcc*)
++ # two different shell functions defined in ltmain.sh
++ # decide which to use based on capabilities of $DLLTOOL
++ case `$DLLTOOL --help 2>&1` in
++ *--identify-strict*)
++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
++ ;;
++ *)
++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
++ ;;
++ esac
++ ;;
++*)
++ # fallback: assume linklib IS sharedlib
++ lt_cv_sharedlib_from_linklib_cmd="$ECHO"
++ ;;
++esac
++
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
++$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
++sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
++test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
++
++
++
++
++
++
++
+ if test -n "$ac_tool_prefix"; then
+- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}ar; ac_word=$2
++ for ac_prog in ar
++ 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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+@@ -6615,7 +6869,7 @@ do
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+- ac_cv_prog_AR="${ac_tool_prefix}ar"
++ ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+@@ -6635,11 +6889,15 @@ $as_echo "no" >&6; }
+ fi
+
+
++ test -n "$AR" && break
++ done
+ fi
+-if test -z "$ac_cv_prog_AR"; then
++if test -z "$AR"; then
+ ac_ct_AR=$AR
+- # Extract the first word of "ar", so it can be a program name with args.
+-set dummy ar; ac_word=$2
++ for ac_prog in ar
++do
++ # Extract the first word of "$ac_prog", so it can be a program name with args.
++set dummy $ac_prog; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+@@ -6655,7 +6913,7 @@ do
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+- ac_cv_prog_ac_ct_AR="ar"
++ ac_cv_prog_ac_ct_AR="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+@@ -6674,6 +6932,10 @@ else
+ $as_echo "no" >&6; }
+ fi
+
++
++ test -n "$ac_ct_AR" && break
++done
++
+ if test "x$ac_ct_AR" = x; then
+ AR="false"
+ else
+@@ -6685,12 +6947,10 @@ ac_tool_warned=yes ;;
+ esac
+ AR=$ac_ct_AR
+ fi
+-else
+- AR="$ac_cv_prog_AR"
+ fi
+
+-test -z "$AR" && AR=ar
+-test -z "$AR_FLAGS" && AR_FLAGS=cru
++: ${AR=ar}
++: ${AR_FLAGS=cru}
+
+
+
+@@ -6702,6 +6962,64 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
+
+
+
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
++$as_echo_n "checking for archiver @FILE support... " >&6; }
++if ${lt_cv_ar_at_file+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_ar_at_file=no
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++
++int
++main ()
++{
++
++ ;
++ return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++ echo conftest.$ac_objext > conftest.lst
++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
++ (eval $lt_ar_try) 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }
++ if test "$ac_status" -eq 0; then
++ # Ensure the archiver fails upon bogus file names.
++ rm -f conftest.$ac_objext libconftest.a
++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
++ (eval $lt_ar_try) 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }
++ if test "$ac_status" -ne 0; then
++ lt_cv_ar_at_file=@
++ fi
++ fi
++ rm -f conftest.* libconftest.a
++
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
++$as_echo "$lt_cv_ar_at_file" >&6; }
++
++if test "x$lt_cv_ar_at_file" = xno; then
++ archiver_list_spec=
++else
++ archiver_list_spec=$lt_cv_ar_at_file
++fi
++
++
++
++
++
++
++
+ 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
+@@ -7036,8 +7354,8 @@ esac
+ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+ # Transform an extracted symbol line into symbol name and symbol address
+-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
+-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
++lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
+
+ # Handle CRLF in mingw tool chain
+ opt_cr=
+@@ -7073,6 +7391,7 @@ for ac_symprfx in "" "_"; do
+ else
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
++ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+@@ -7114,6 +7433,18 @@ _LT_EOF
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
++#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
++/* DATA imports from DLLs on WIN32 con't be const, because runtime
++ relocations are performed -- see ld's documentation on pseudo-relocs. */
++# define LT_DLSYM_CONST
++#elif defined(__osf__)
++/* This system does not cope well with relocations in const data. */
++# define LT_DLSYM_CONST
++#else
++# define LT_DLSYM_CONST const
++#endif
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+@@ -7125,7 +7456,7 @@ _LT_EOF
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+ /* The mapping between symbol names and symbols. */
+-const struct {
++LT_DLSYM_CONST struct {
+ const char *name;
+ void *address;
+ }
+@@ -7151,8 +7482,8 @@ static const void *lt_preloaded_setup() {
+ _LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+- lt_save_LIBS="$LIBS"
+- lt_save_CFLAGS="$CFLAGS"
++ lt_globsym_save_LIBS=$LIBS
++ lt_globsym_save_CFLAGS=$CFLAGS
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+@@ -7162,8 +7493,8 @@ _LT_EOF
+ test $ac_status = 0; } && test -s conftest${ac_exeext}; then
+ pipe_works=yes
+ fi
+- LIBS="$lt_save_LIBS"
+- CFLAGS="$lt_save_CFLAGS"
++ LIBS=$lt_globsym_save_LIBS
++ CFLAGS=$lt_globsym_save_CFLAGS
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+@@ -7200,6 +7531,21 @@ else
+ $as_echo "ok" >&6; }
+ fi
+
++# Response file support.
++if test "$lt_cv_nm_interface" = "MS dumpbin"; then
++ nm_file_list_spec='@'
++elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
++ nm_file_list_spec='@'
++fi
++
++
++
++
++
++
++
++
++
+
+
+
+@@ -7216,6 +7562,40 @@ fi
+
+
+
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
++$as_echo_n "checking for sysroot... " >&6; }
++
++# Check whether --with-libtool-sysroot was given.
++if test "${with_libtool_sysroot+set}" = set; then :
++ withval=$with_libtool_sysroot;
++else
++ with_libtool_sysroot=no
++fi
++
++
++lt_sysroot=
++case ${with_libtool_sysroot} in #(
++ yes)
++ if test "$GCC" = yes; then
++ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
++ fi
++ ;; #(
++ /*)
++ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
++ ;; #(
++ no|'')
++ ;; #(
++ *)
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5
++$as_echo "${with_libtool_sysroot}" >&6; }
++ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
++ ;;
++esac
++
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
++$as_echo "${lt_sysroot:-no}" >&6; }
+
+
+
+@@ -7427,6 +7807,123 @@ esac
+
+ need_locks="$enable_libtool_lock"
+
++if test -n "$ac_tool_prefix"; then
++ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
++set dummy ${ac_tool_prefix}mt; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$MANIFEST_TOOL"; then
++ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
++if test -n "$MANIFEST_TOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
++$as_echo "$MANIFEST_TOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++
++fi
++if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
++ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
++ # Extract the first word of "mt", so it can be a program name with args.
++set dummy mt; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$ac_ct_MANIFEST_TOOL"; then
++ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
++if test -n "$ac_ct_MANIFEST_TOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
++$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++ if test "x$ac_ct_MANIFEST_TOOL" = x; then
++ MANIFEST_TOOL=":"
++ else
++ case $cross_compiling:$ac_tool_warned in
++yes:)
++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
++ac_tool_warned=yes ;;
++esac
++ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
++ fi
++else
++ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
++fi
++
++test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
++$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
++if ${lt_cv_path_mainfest_tool+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_path_mainfest_tool=no
++ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
++ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
++ cat conftest.err >&5
++ if $GREP 'Manifest Tool' conftest.out > /dev/null; then
++ lt_cv_path_mainfest_tool=yes
++ fi
++ rm -f conftest*
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
++$as_echo "$lt_cv_path_mainfest_tool" >&6; }
++if test "x$lt_cv_path_mainfest_tool" != xyes; then
++ MANIFEST_TOOL=:
++fi
++
++
++
++
++
+
+ case $host_os in
+ rhapsody* | darwin*)
+@@ -7990,6 +8487,8 @@ _LT_EOF
+ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+ echo "$AR cru libconftest.a conftest.o" >&5
+ $AR cru libconftest.a conftest.o 2>&5
++ echo "$RANLIB libconftest.a" >&5
++ $RANLIB libconftest.a 2>&5
+ cat > conftest.c << _LT_EOF
+ int main() { return 0;}
+ _LT_EOF
+@@ -8185,7 +8684,8 @@ fi
+ LIBTOOL_DEPS="$ltmain"
+
+ # Always use our own libtool.
+-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
++LIBTOOL='$(SHELL) $(top_builddir)'
++LIBTOOL="$LIBTOOL/${host_alias}-libtool"
+
+
+
+@@ -8274,7 +8774,7 @@ aix3*)
+ esac
+
+ # Global variables:
+-ofile=libtool
++ofile=${host_alias}-libtool
+ can_build_shared=yes
+
+ # All known linkers require a `.a' archive for static linking (except MSVC,
+@@ -8572,8 +9072,6 @@ fi
+ lt_prog_compiler_pic=
+ lt_prog_compiler_static=
+
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+
+ if test "$GCC" = yes; then
+ lt_prog_compiler_wl='-Wl,'
+@@ -8739,6 +9237,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+ lt_prog_compiler_pic='--shared'
+ lt_prog_compiler_static='--static'
+ ;;
++ nagfor*)
++ # NAG Fortran compiler
++ lt_prog_compiler_wl='-Wl,-Wl,,'
++ lt_prog_compiler_pic='-PIC'
++ lt_prog_compiler_static='-Bstatic'
++ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+@@ -8801,7 +9305,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+- f77* | f90* | f95*)
++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+@@ -8858,13 +9362,17 @@ case $host_os in
+ lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+ ;;
+ esac
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
+-$as_echo "$lt_prog_compiler_pic" >&6; }
+-
+-
+-
+-
+
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
++$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
++if ${lt_cv_prog_compiler_pic+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
++$as_echo "$lt_cv_prog_compiler_pic" >&6; }
++lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
+
+ #
+ # Check to make sure the PIC flag actually works.
+@@ -8925,6 +9433,11 @@ fi
+
+
+
++
++
++
++
++
+ #
+ # Check to make sure the static flag actually works.
+ #
+@@ -9275,7 +9788,8 @@ _LT_EOF
+ allow_undefined_flag=unsupported
+ always_export_symbols=no
+ enable_shared_with_static_runtimes=yes
+- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
++ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+@@ -9374,12 +9888,12 @@ _LT_EOF
+ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_flag_spec_ld='-rpath $libdir'
+- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+@@ -9393,8 +9907,8 @@ _LT_EOF
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+@@ -9412,8 +9926,8 @@ _LT_EOF
+
+ _LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+@@ -9459,8 +9973,8 @@ _LT_EOF
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+@@ -9590,7 +10104,13 @@ _LT_EOF
+ allow_undefined_flag='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++ if test "${lt_cv_aix_libpath+set}" = set; then
++ aix_libpath=$lt_cv_aix_libpath
++else
++ if ${lt_cv_aix_libpath_+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ int
+@@ -9603,22 +10123,29 @@ main ()
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+
+-lt_aix_libpath_sed='
+- /Import File Strings/,/^$/ {
+- /^0/ {
+- s/^0 *\(.*\)$/\1/
+- p
+- }
+- }'
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-# Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then
+- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-fi
++ lt_aix_libpath_sed='
++ /Import File Strings/,/^$/ {
++ /^0/ {
++ s/^0 *\([^ ]*\) *$/\1/
++ p
++ }
++ }'
++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ # Check for a 64-bit object if we didn't find anything.
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ fi
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_="/usr/lib:/lib"
++ fi
++
++fi
++
++ aix_libpath=$lt_cv_aix_libpath_
++fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+@@ -9630,7 +10157,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++ if test "${lt_cv_aix_libpath+set}" = set; then
++ aix_libpath=$lt_cv_aix_libpath
++else
++ if ${lt_cv_aix_libpath_+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ int
+@@ -9643,22 +10176,29 @@ main ()
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+
+-lt_aix_libpath_sed='
+- /Import File Strings/,/^$/ {
+- /^0/ {
+- s/^0 *\(.*\)$/\1/
+- p
+- }
+- }'
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-# Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then
+- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-fi
++ lt_aix_libpath_sed='
++ /Import File Strings/,/^$/ {
++ /^0/ {
++ s/^0 *\([^ ]*\) *$/\1/
++ p
++ }
++ }'
++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ # Check for a 64-bit object if we didn't find anything.
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ fi
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_="/usr/lib:/lib"
++ fi
++
++fi
++
++ aix_libpath=$lt_cv_aix_libpath_
++fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+@@ -9703,20 +10243,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+- hardcode_libdir_flag_spec=' '
+- allow_undefined_flag=unsupported
+- # Tell ltmain to make .lib files, not .a files.
+- libext=lib
+- # Tell ltmain to make .dll files, not .so files.
+- shrext_cmds=".dll"
+- # FIXME: Setting linknames here is a bad hack.
+- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+- # The linker will automatically build a .lib file if we build a DLL.
+- old_archive_from_new_cmds='true'
+- # FIXME: Should let the user specify the lib program.
+- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+- fix_srcfile_path='`cygpath -w "$srcfile"`'
+- enable_shared_with_static_runtimes=yes
++ case $cc_basename in
++ cl*)
++ # Native MSVC
++ hardcode_libdir_flag_spec=' '
++ allow_undefined_flag=unsupported
++ always_export_symbols=yes
++ file_list_spec='@'
++ # Tell ltmain to make .lib files, not .a files.
++ libext=lib
++ # Tell ltmain to make .dll files, not .so files.
++ shrext_cmds=".dll"
++ # FIXME: Setting linknames here is a bad hack.
++ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
++ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
++ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
++ else
++ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
++ fi~
++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
++ linknames='
++ # The linker will not automatically build a static lib if we build a DLL.
++ # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
++ enable_shared_with_static_runtimes=yes
++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
++ # Don't use ranlib
++ old_postinstall_cmds='chmod 644 $oldlib'
++ postlink_cmds='lt_outputfile="@OUTPUT@"~
++ lt_tool_outputfile="@TOOL_OUTPUT@"~
++ case $lt_outputfile in
++ *.exe|*.EXE) ;;
++ *)
++ lt_outputfile="$lt_outputfile.exe"
++ lt_tool_outputfile="$lt_tool_outputfile.exe"
++ ;;
++ esac~
++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
++ $RM "$lt_outputfile.manifest";
++ fi'
++ ;;
++ *)
++ # Assume MSVC wrapper
++ hardcode_libdir_flag_spec=' '
++ allow_undefined_flag=unsupported
++ # Tell ltmain to make .lib files, not .a files.
++ libext=lib
++ # Tell ltmain to make .dll files, not .so files.
++ shrext_cmds=".dll"
++ # FIXME: Setting linknames here is a bad hack.
++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
++ # The linker will automatically build a .lib file if we build a DLL.
++ old_archive_from_new_cmds='true'
++ # FIXME: Should let the user specify the lib program.
++ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
++ enable_shared_with_static_runtimes=yes
++ ;;
++ esac
+ ;;
+
+ darwin* | rhapsody*)
+@@ -9777,7 +10360,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+@@ -9785,7 +10368,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hpux9*)
+ if test "$GCC" = yes; then
+- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
++ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+@@ -9801,7 +10384,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hpux10*)
+ if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+@@ -9825,10 +10408,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+@@ -9907,23 +10490,36 @@ fi
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+- save_LDFLAGS="$LDFLAGS"
+- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++ # This should be the same for all languages, so no per-tag cache variable.
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
++$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
++if ${lt_cv_irix_exported_symbol+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ save_LDFLAGS="$LDFLAGS"
++ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+-int foo(void) {}
++int foo (void) { return 0; }
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+-
++ lt_cv_irix_exported_symbol=yes
++else
++ lt_cv_irix_exported_symbol=no
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+- LDFLAGS="$save_LDFLAGS"
++ LDFLAGS="$save_LDFLAGS"
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
++$as_echo "$lt_cv_irix_exported_symbol" >&6; }
++ if test "$lt_cv_irix_exported_symbol" = yes; then
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
++ fi
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+@@ -10008,7 +10604,7 @@ rm -f core conftest.err conftest.$ac_objext \
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
++ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+@@ -10027,9 +10623,9 @@ rm -f core conftest.err conftest.$ac_objext \
+ no_undefined_flag=' -z defs'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
++ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+@@ -10605,8 +11201,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+ need_version=no
+ need_lib_prefix=no
+
+- case $GCC,$host_os in
+- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
++ case $GCC,$cc_basename in
++ yes,*)
++ # gcc
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+@@ -10639,13 +11236,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
++ dynamic_linker='Win32 ld.exe'
++ ;;
++
++ *,cl*)
++ # Native MSVC
++ libname_spec='$name'
++ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
++ library_names_spec='${libname}.dll.lib'
++
++ case $build_os in
++ mingw*)
++ sys_lib_search_path_spec=
++ lt_save_ifs=$IFS
++ IFS=';'
++ for lt_path in $LIB
++ do
++ IFS=$lt_save_ifs
++ # Let DOS variable expansion print the short 8.3 style file name.
++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
++ done
++ IFS=$lt_save_ifs
++ # Convert to MSYS style.
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
++ ;;
++ cygwin*)
++ # Convert to unix form, then to dos form, then back to unix form
++ # but this time dos style (no spaces!) so that the unix form looks
++ # like /cygdrive/c/PROGRA~1:/cygdr...
++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
++ ;;
++ *)
++ sys_lib_search_path_spec="$LIB"
++ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
++ # It is most probably a Windows format PATH.
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
++ else
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
++ fi
++ # FIXME: find the short name or the path components, as spaces are
++ # common. (e.g. "Program Files" -> "PROGRA~1")
++ ;;
++ esac
++
++ # DLL is installed to $(libdir)/../bin by postinstall_cmds
++ postinstall_cmds='base_file=`basename \${file}`~
++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
++ dldir=$destdir/`dirname \$dlpath`~
++ test -d \$dldir || mkdir -p \$dldir~
++ $install_prog $dir/$dlname \$dldir/$dlname'
++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
++ dlpath=$dir/\$dldll~
++ $RM \$dlpath'
++ shlibpath_overrides_runpath=yes
++ dynamic_linker='Win32 link.exe'
+ ;;
+
+ *)
++ # Assume MSVC wrapper
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
++ dynamic_linker='Win32 ld.exe'
+ ;;
+ esac
+- dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+@@ -10737,7 +11392,7 @@ haiku*)
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+ hardcode_into_libs=yes
+ ;;
+
+@@ -11533,7 +12188,7 @@ else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+-#line 11536 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+@@ -11577,10 +12232,10 @@ else
+ /* When -fvisbility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+-void fnord () __attribute__((visibility("default")));
++int fnord () __attribute__((visibility("default")));
+ #endif
+
+-void fnord () { int i=42; }
++int fnord () { return 42; }
+ int main ()
+ {
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+@@ -11639,7 +12294,7 @@ else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+-#line 11642 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+@@ -11683,10 +12338,10 @@ else
+ /* When -fvisbility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+-void fnord () __attribute__((visibility("default")));
++int fnord () __attribute__((visibility("default")));
+ #endif
+
+-void fnord () { int i=42; }
++int fnord () { return 42; }
+ int main ()
+ {
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+@@ -16076,13 +16731,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+ lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+ lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+ lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
++lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
++lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
+ reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+ reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+ OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+ deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+ file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
++file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
++want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
++DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
++sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
+ AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+ AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
++archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
+ STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+ RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+ old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+@@ -16097,14 +16759,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+ lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+ lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
++nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
++lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+ objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+ MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
++lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+ lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+ need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
++MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
+ DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+ NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+ LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+@@ -16137,12 +16802,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+ hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+ inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+ link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+-fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`'
+ always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+ export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+ exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+ include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+ prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
++postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
+ file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+ variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+ need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+@@ -16197,8 +16862,13 @@ reload_flag \
+ OBJDUMP \
+ deplibs_check_method \
+ file_magic_cmd \
++file_magic_glob \
++want_nocaseglob \
++DLLTOOL \
++sharedlib_from_linklib_cmd \
+ AR \
+ AR_FLAGS \
++archiver_list_spec \
+ STRIP \
+ RANLIB \
+ CC \
+@@ -16208,12 +16878,14 @@ lt_cv_sys_global_symbol_pipe \
+ lt_cv_sys_global_symbol_to_cdecl \
+ lt_cv_sys_global_symbol_to_c_name_address \
+ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
++nm_file_list_spec \
+ lt_prog_compiler_no_builtin_flag \
+-lt_prog_compiler_wl \
+ lt_prog_compiler_pic \
++lt_prog_compiler_wl \
+ lt_prog_compiler_static \
+ lt_cv_prog_compiler_c_o \
+ need_locks \
++MANIFEST_TOOL \
+ DSYMUTIL \
+ NMEDIT \
+ LIPO \
+@@ -16229,7 +16901,6 @@ no_undefined_flag \
+ hardcode_libdir_flag_spec \
+ hardcode_libdir_flag_spec_ld \
+ hardcode_libdir_separator \
+-fix_srcfile_path \
+ exclude_expsyms \
+ include_expsyms \
+ file_list_spec \
+@@ -16265,6 +16936,7 @@ module_cmds \
+ module_expsym_cmds \
+ export_symbols_cmds \
+ prelink_cmds \
++postlink_cmds \
+ postinstall_cmds \
+ postuninstall_cmds \
+ finish_cmds \
+@@ -17031,7 +17703,8 @@ $as_echo X"$file" |
+ # NOTE: Changes made to this file will be lost: look at ltmain.sh.
+ #
+ # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
++# Inc.
+ # Written by Gordon Matzigkeit, 1996
+ #
+ # This file is part of GNU Libtool.
+@@ -17134,19 +17807,42 @@ SP2NL=$lt_lt_SP2NL
+ # turn newlines into spaces.
+ NL2SP=$lt_lt_NL2SP
+
++# convert \$build file names to \$host format.
++to_host_file_cmd=$lt_cv_to_host_file_cmd
++
++# convert \$build files to toolchain format.
++to_tool_file_cmd=$lt_cv_to_tool_file_cmd
++
+ # An object symbol dumper.
+ OBJDUMP=$lt_OBJDUMP
+
+ # Method to check whether dependent libraries are shared objects.
+ deplibs_check_method=$lt_deplibs_check_method
+
+-# Command to use when deplibs_check_method == "file_magic".
++# Command to use when deplibs_check_method = "file_magic".
+ file_magic_cmd=$lt_file_magic_cmd
+
++# How to find potential files when deplibs_check_method = "file_magic".
++file_magic_glob=$lt_file_magic_glob
++
++# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
++want_nocaseglob=$lt_want_nocaseglob
++
++# DLL creation program.
++DLLTOOL=$lt_DLLTOOL
++
++# Command to associate shared and link libraries.
++sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
++
+ # The archiver.
+ AR=$lt_AR
++
++# Flags to create an archive.
+ AR_FLAGS=$lt_AR_FLAGS
+
++# How to feed a file listing to the archiver.
++archiver_list_spec=$lt_archiver_list_spec
++
+ # A symbol stripping program.
+ STRIP=$lt_STRIP
+
+@@ -17176,6 +17872,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+ # Transform the output of nm in a C name address pair when lib prefix is needed.
+ global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
++# Specify filename containing input files for \$NM.
++nm_file_list_spec=$lt_nm_file_list_spec
++
++# The root where to search for dependent libraries,and in which our libraries should be installed.
++lt_sysroot=$lt_sysroot
++
+ # The name of the directory that contains temporary libtool files.
+ objdir=$objdir
+
+@@ -17185,6 +17887,9 @@ MAGIC_CMD=$MAGIC_CMD
+ # Must we lock files when doing compilation?
+ need_locks=$lt_need_locks
+
++# Manifest tool.
++MANIFEST_TOOL=$lt_MANIFEST_TOOL
++
+ # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+ DSYMUTIL=$lt_DSYMUTIL
+
+@@ -17299,12 +18004,12 @@ with_gcc=$GCC
+ # Compiler flag to turn off builtin functions.
+ no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+-# How to pass a linker flag through the compiler.
+-wl=$lt_lt_prog_compiler_wl
+-
+ # Additional compiler flags for building library objects.
+ pic_flag=$lt_lt_prog_compiler_pic
+
++# How to pass a linker flag through the compiler.
++wl=$lt_lt_prog_compiler_wl
++
+ # Compiler flag to prevent dynamic linking.
+ link_static_flag=$lt_lt_prog_compiler_static
+
+@@ -17391,9 +18096,6 @@ inherit_rpath=$inherit_rpath
+ # Whether libtool must link a program against all its dependency libraries.
+ link_all_deplibs=$link_all_deplibs
+
+-# Fix the shell variable \$srcfile for the compiler.
+-fix_srcfile_path=$lt_fix_srcfile_path
+-
+ # Set to "yes" if exported symbols are required.
+ always_export_symbols=$always_export_symbols
+
+@@ -17409,6 +18111,9 @@ include_expsyms=$lt_include_expsyms
+ # Commands necessary for linking programs (against libraries) with templates.
+ prelink_cmds=$lt_prelink_cmds
+
++# Commands necessary for finishing linking programs.
++postlink_cmds=$lt_postlink_cmds
++
+ # Specify filename containing input files.
+ file_list_spec=$lt_file_list_spec
+
+@@ -17441,210 +18146,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
+- || (rm -f "$cfgfile"; exit 1)
+-
+- case $xsi_shell in
+- yes)
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_dirname file append nondir_replacement
+-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+-# otherwise set result to NONDIR_REPLACEMENT.
+-func_dirname ()
+-{
+- case ${1} in
+- */*) func_dirname_result="${1%/*}${2}" ;;
+- * ) func_dirname_result="${3}" ;;
+- esac
+-}
+-
+-# func_basename file
+-func_basename ()
+-{
+- func_basename_result="${1##*/}"
+-}
+-
+-# func_dirname_and_basename file append nondir_replacement
+-# perform func_basename and func_dirname in a single function
+-# call:
+-# dirname: Compute the dirname of FILE. If nonempty,
+-# add APPEND to the result, otherwise set result
+-# to NONDIR_REPLACEMENT.
+-# value returned in "$func_dirname_result"
+-# basename: Compute filename of FILE.
+-# value retuned in "$func_basename_result"
+-# Implementation must be kept synchronized with func_dirname
+-# and func_basename. For efficiency, we do not delegate to
+-# those functions but instead duplicate the functionality here.
+-func_dirname_and_basename ()
+-{
+- case ${1} in
+- */*) func_dirname_result="${1%/*}${2}" ;;
+- * ) func_dirname_result="${3}" ;;
+- esac
+- func_basename_result="${1##*/}"
+-}
+-
+-# func_stripname prefix suffix name
+-# strip PREFIX and SUFFIX off of NAME.
+-# PREFIX and SUFFIX must not contain globbing or regex special
+-# characters, hashes, percent signs, but SUFFIX may contain a leading
+-# dot (in which case that matches only a dot).
+-func_stripname ()
+-{
+- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+- # positional parameters, so assign one to ordinary parameter first.
+- func_stripname_result=${3}
+- func_stripname_result=${func_stripname_result#"${1}"}
+- func_stripname_result=${func_stripname_result%"${2}"}
+-}
+-
+-# func_opt_split
+-func_opt_split ()
+-{
+- func_opt_split_opt=${1%%=*}
+- func_opt_split_arg=${1#*=}
+-}
+-
+-# func_lo2o object
+-func_lo2o ()
+-{
+- case ${1} in
+- *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+- *) func_lo2o_result=${1} ;;
+- esac
+-}
+-
+-# func_xform libobj-or-source
+-func_xform ()
+-{
+- func_xform_result=${1%.*}.lo
+-}
+-
+-# func_arith arithmetic-term...
+-func_arith ()
+-{
+- func_arith_result=$(( $* ))
+-}
+-
+-# func_len string
+-# STRING may not start with a hyphen.
+-func_len ()
+-{
+- func_len_result=${#1}
+-}
+-
+-_LT_EOF
+- ;;
+- *) # Bourne compatible functions.
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_dirname file append nondir_replacement
+-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+-# otherwise set result to NONDIR_REPLACEMENT.
+-func_dirname ()
+-{
+- # Extract subdirectory from the argument.
+- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
+- if test "X$func_dirname_result" = "X${1}"; then
+- func_dirname_result="${3}"
+- else
+- func_dirname_result="$func_dirname_result${2}"
+- fi
+-}
+-
+-# func_basename file
+-func_basename ()
+-{
+- func_basename_result=`$ECHO "${1}" | $SED "$basename"`
+-}
+-
+-
+-# func_stripname prefix suffix name
+-# strip PREFIX and SUFFIX off of NAME.
+-# PREFIX and SUFFIX must not contain globbing or regex special
+-# characters, hashes, percent signs, but SUFFIX may contain a leading
+-# dot (in which case that matches only a dot).
+-# func_strip_suffix prefix name
+-func_stripname ()
+-{
+- case ${2} in
+- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+- esac
+-}
+-
+-# sed scripts:
+-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
+-my_sed_long_arg='1s/^-[^=]*=//'
+-
+-# func_opt_split
+-func_opt_split ()
+-{
+- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
+- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
+-}
+-
+-# func_lo2o object
+-func_lo2o ()
+-{
+- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
+-}
+-
+-# func_xform libobj-or-source
+-func_xform ()
+-{
+- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
+-}
+-
+-# func_arith arithmetic-term...
+-func_arith ()
+-{
+- func_arith_result=`expr "$@"`
+-}
+-
+-# func_len string
+-# STRING may not start with a hyphen.
+-func_len ()
+-{
+- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
+-}
+-
+-_LT_EOF
+-esac
+-
+-case $lt_shell_append in
+- yes)
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_append var value
+-# Append VALUE to the end of shell variable VAR.
+-func_append ()
+-{
+- eval "$1+=\$2"
+-}
+-_LT_EOF
+- ;;
+- *)
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_append var value
+-# Append VALUE to the end of shell variable VAR.
+-func_append ()
+-{
+- eval "$1=\$$1\$2"
+-}
+-
+-_LT_EOF
+- ;;
+- esac
+-
+-
+- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
+- || (rm -f "$cfgfile"; exit 1)
+-
+- mv -f "$cfgfile" "$ofile" ||
++ sed '$q' "$ltmain" >> "$cfgfile" \
++ || (rm -f "$cfgfile"; exit 1)
++
++ if test x"$xsi_shell" = xyes; then
++ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
++func_dirname ()\
++{\
++\ case ${1} in\
++\ */*) func_dirname_result="${1%/*}${2}" ;;\
++\ * ) func_dirname_result="${3}" ;;\
++\ esac\
++} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_basename ()$/,/^} # func_basename /c\
++func_basename ()\
++{\
++\ func_basename_result="${1##*/}"\
++} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
++func_dirname_and_basename ()\
++{\
++\ case ${1} in\
++\ */*) func_dirname_result="${1%/*}${2}" ;;\
++\ * ) func_dirname_result="${3}" ;;\
++\ esac\
++\ func_basename_result="${1##*/}"\
++} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
++func_stripname ()\
++{\
++\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
++\ # positional parameters, so assign one to ordinary parameter first.\
++\ func_stripname_result=${3}\
++\ func_stripname_result=${func_stripname_result#"${1}"}\
++\ func_stripname_result=${func_stripname_result%"${2}"}\
++} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
++func_split_long_opt ()\
++{\
++\ func_split_long_opt_name=${1%%=*}\
++\ func_split_long_opt_arg=${1#*=}\
++} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
++func_split_short_opt ()\
++{\
++\ func_split_short_opt_arg=${1#??}\
++\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
++} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
++func_lo2o ()\
++{\
++\ case ${1} in\
++\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
++\ *) func_lo2o_result=${1} ;;\
++\ esac\
++} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_xform ()$/,/^} # func_xform /c\
++func_xform ()\
++{\
++ func_xform_result=${1%.*}.lo\
++} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_arith ()$/,/^} # func_arith /c\
++func_arith ()\
++{\
++ func_arith_result=$(( $* ))\
++} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_len ()$/,/^} # func_len /c\
++func_len ()\
++{\
++ func_len_result=${#1}\
++} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++fi
++
++if test x"$lt_shell_append" = xyes; then
++ sed -e '/^func_append ()$/,/^} # func_append /c\
++func_append ()\
++{\
++ eval "${1}+=\\${2}"\
++} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
++func_append_quoted ()\
++{\
++\ func_quote_for_eval "${2}"\
++\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
++} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ # Save a `func_append' function call where possible by direct use of '+='
++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++ test 0 -eq $? || _lt_function_replace_fail=:
++else
++ # Save a `func_append' function call even when '+=' is not available
++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++ test 0 -eq $? || _lt_function_replace_fail=:
++fi
++
++if test x"$_lt_function_replace_fail" = x":"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
++$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
++fi
++
++
++ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+
+diff --git a/gas/configure b/gas/configure
+index d4b13e6fc8b..dd5224c5c81 100755
+--- a/gas/configure
++++ b/gas/configure
+@@ -681,8 +681,11 @@ OTOOL
+ LIPO
+ NMEDIT
+ DSYMUTIL
++MANIFEST_TOOL
+ RANLIB
++ac_ct_AR
+ AR
++DLLTOOL
+ OBJDUMP
+ LN_S
+ NM
+@@ -799,6 +802,7 @@ enable_static
+ with_pic
+ enable_fast_install
+ with_gnu_ld
++with_libtool_sysroot
+ enable_libtool_lock
+ enable_plugins
+ enable_largefile
+@@ -1490,6 +1494,8 @@ Optional Packages:
+ --with-pic try to use only PIC/non-PIC objects [default=use
+ both]
+ --with-gnu-ld assume the C compiler uses GNU ld [default=no]
++ --with-libtool-sysroot=DIR Search for dependent libraries within DIR
++ (or the compiler's sysroot if not specified).
+ --with-cpu=CPU default cpu variant is CPU (currently only supported
+ on ARC)
+ --with-system-zlib use installed libz
+@@ -5277,8 +5283,8 @@ esac
+
+
+
+-macro_version='2.2.7a'
+-macro_revision='1.3134'
++macro_version='2.4'
++macro_revision='1.3293'
+
+
+
+@@ -5318,7 +5324,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+ $as_echo_n "checking how to print strings... " >&6; }
+ # Test print first, because it will be a builtin if present.
+-if test "X`print -r -- -n 2>/dev/null`" = X-n && \
++if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='print -r --'
+ elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+@@ -6004,8 +6010,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
+ # Try some XSI features
+ xsi_shell=no
+ ( _lt_dummy="a/b/c"
+- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
+- = c,a/b,, \
++ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
++ = c,a/b,b/c, \
+ && eval 'test $(( 1 + 1 )) -eq 2 \
+ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+ && xsi_shell=yes
+@@ -6054,6 +6060,80 @@ esac
+
+
+
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
++$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
++if ${lt_cv_to_host_file_cmd+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ case $host in
++ *-*-mingw* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
++ ;;
++ *-*-cygwin* )
++ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
++ ;;
++ * ) # otherwise, assume *nix
++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
++ ;;
++ esac
++ ;;
++ *-*-cygwin* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
++ ;;
++ *-*-cygwin* )
++ lt_cv_to_host_file_cmd=func_convert_file_noop
++ ;;
++ * ) # otherwise, assume *nix
++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
++ ;;
++ esac
++ ;;
++ * ) # unhandled hosts (and "normal" native builds)
++ lt_cv_to_host_file_cmd=func_convert_file_noop
++ ;;
++esac
++
++fi
++
++to_host_file_cmd=$lt_cv_to_host_file_cmd
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
++$as_echo "$lt_cv_to_host_file_cmd" >&6; }
++
++
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
++$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
++if ${lt_cv_to_tool_file_cmd+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ #assume ordinary cross tools, or native build.
++lt_cv_to_tool_file_cmd=func_convert_file_noop
++case $host in
++ *-*-mingw* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
++ ;;
++ esac
++ ;;
++esac
++
++fi
++
++to_tool_file_cmd=$lt_cv_to_tool_file_cmd
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
++$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
++
++
++
++
++
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+ $as_echo_n "checking for $LD option to reload object files... " >&6; }
+ if ${lt_cv_ld_reload_flag+:} false; then :
+@@ -6070,6 +6150,11 @@ case $reload_flag in
+ esac
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ case $host_os in
++ cygwin* | mingw* | pw32* | cegcc*)
++ if test "$GCC" != yes; then
++ reload_cmds=false
++ fi
++ ;;
+ darwin*)
+ if test "$GCC" = yes; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+@@ -6238,7 +6323,8 @@ mingw* | pw32*)
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
++ # Keep this pattern in sync with the one in func_win32_libid.
++ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+@@ -6392,6 +6478,21 @@ esac
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+ $as_echo "$lt_cv_deplibs_check_method" >&6; }
++
++file_magic_glob=
++want_nocaseglob=no
++if test "$build" = "$host"; then
++ case $host_os in
++ mingw* | pw32*)
++ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
++ want_nocaseglob=yes
++ else
++ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
++ fi
++ ;;
++ esac
++fi
++
+ file_magic_cmd=$lt_cv_file_magic_cmd
+ deplibs_check_method=$lt_cv_deplibs_check_method
+ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+@@ -6407,9 +6508,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
++
++
++
++
++
++
++
++
++
++
++if test -n "$ac_tool_prefix"; then
++ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
++set dummy ${ac_tool_prefix}dlltool; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_DLLTOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$DLLTOOL"; then
++ ac_cv_prog_DLLTOOL="$DLLTOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++DLLTOOL=$ac_cv_prog_DLLTOOL
++if test -n "$DLLTOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
++$as_echo "$DLLTOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++
++fi
++if test -z "$ac_cv_prog_DLLTOOL"; then
++ ac_ct_DLLTOOL=$DLLTOOL
++ # Extract the first word of "dlltool", so it can be a program name with args.
++set dummy dlltool; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$ac_ct_DLLTOOL"; then
++ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_ac_ct_DLLTOOL="dlltool"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
++if test -n "$ac_ct_DLLTOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
++$as_echo "$ac_ct_DLLTOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++ if test "x$ac_ct_DLLTOOL" = x; then
++ DLLTOOL="false"
++ else
++ case $cross_compiling:$ac_tool_warned in
++yes:)
++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
++ac_tool_warned=yes ;;
++esac
++ DLLTOOL=$ac_ct_DLLTOOL
++ fi
++else
++ DLLTOOL="$ac_cv_prog_DLLTOOL"
++fi
++
++test -z "$DLLTOOL" && DLLTOOL=dlltool
++
++
++
++
++
++
++
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
++$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
++if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_sharedlib_from_linklib_cmd='unknown'
++
++case $host_os in
++cygwin* | mingw* | pw32* | cegcc*)
++ # two different shell functions defined in ltmain.sh
++ # decide which to use based on capabilities of $DLLTOOL
++ case `$DLLTOOL --help 2>&1` in
++ *--identify-strict*)
++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
++ ;;
++ *)
++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
++ ;;
++ esac
++ ;;
++*)
++ # fallback: assume linklib IS sharedlib
++ lt_cv_sharedlib_from_linklib_cmd="$ECHO"
++ ;;
++esac
++
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
++$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
++sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
++test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
++
++
++
++
++
++
++
+ if test -n "$ac_tool_prefix"; then
+- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}ar; ac_word=$2
++ for ac_prog in ar
++ 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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+@@ -6425,7 +6679,7 @@ do
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+- ac_cv_prog_AR="${ac_tool_prefix}ar"
++ ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+@@ -6445,11 +6699,15 @@ $as_echo "no" >&6; }
+ fi
+
+
++ test -n "$AR" && break
++ done
+ fi
+-if test -z "$ac_cv_prog_AR"; then
++if test -z "$AR"; then
+ ac_ct_AR=$AR
+- # Extract the first word of "ar", so it can be a program name with args.
+-set dummy ar; ac_word=$2
++ for ac_prog in ar
++do
++ # Extract the first word of "$ac_prog", so it can be a program name with args.
++set dummy $ac_prog; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+@@ -6465,7 +6723,7 @@ do
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+- ac_cv_prog_ac_ct_AR="ar"
++ ac_cv_prog_ac_ct_AR="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+@@ -6484,6 +6742,10 @@ else
+ $as_echo "no" >&6; }
+ fi
+
++
++ test -n "$ac_ct_AR" && break
++done
++
+ if test "x$ac_ct_AR" = x; then
+ AR="false"
+ else
+@@ -6495,12 +6757,10 @@ ac_tool_warned=yes ;;
+ esac
+ AR=$ac_ct_AR
+ fi
+-else
+- AR="$ac_cv_prog_AR"
+ fi
+
+-test -z "$AR" && AR=ar
+-test -z "$AR_FLAGS" && AR_FLAGS=cru
++: ${AR=ar}
++: ${AR_FLAGS=cru}
+
+
+
+@@ -6512,6 +6772,64 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
+
+
+
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
++$as_echo_n "checking for archiver @FILE support... " >&6; }
++if ${lt_cv_ar_at_file+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_ar_at_file=no
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++
++int
++main ()
++{
++
++ ;
++ return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++ echo conftest.$ac_objext > conftest.lst
++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
++ (eval $lt_ar_try) 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }
++ if test "$ac_status" -eq 0; then
++ # Ensure the archiver fails upon bogus file names.
++ rm -f conftest.$ac_objext libconftest.a
++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
++ (eval $lt_ar_try) 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }
++ if test "$ac_status" -ne 0; then
++ lt_cv_ar_at_file=@
++ fi
++ fi
++ rm -f conftest.* libconftest.a
++
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
++$as_echo "$lt_cv_ar_at_file" >&6; }
++
++if test "x$lt_cv_ar_at_file" = xno; then
++ archiver_list_spec=
++else
++ archiver_list_spec=$lt_cv_ar_at_file
++fi
++
++
++
++
++
++
++
+ 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
+@@ -6846,8 +7164,8 @@ esac
+ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+ # Transform an extracted symbol line into symbol name and symbol address
+-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
+-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
++lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
+
+ # Handle CRLF in mingw tool chain
+ opt_cr=
+@@ -6883,6 +7201,7 @@ for ac_symprfx in "" "_"; do
+ else
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
++ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+@@ -6924,6 +7243,18 @@ _LT_EOF
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
++#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
++/* DATA imports from DLLs on WIN32 con't be const, because runtime
++ relocations are performed -- see ld's documentation on pseudo-relocs. */
++# define LT_DLSYM_CONST
++#elif defined(__osf__)
++/* This system does not cope well with relocations in const data. */
++# define LT_DLSYM_CONST
++#else
++# define LT_DLSYM_CONST const
++#endif
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+@@ -6935,7 +7266,7 @@ _LT_EOF
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+ /* The mapping between symbol names and symbols. */
+-const struct {
++LT_DLSYM_CONST struct {
+ const char *name;
+ void *address;
+ }
+@@ -6961,8 +7292,8 @@ static const void *lt_preloaded_setup() {
+ _LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+- lt_save_LIBS="$LIBS"
+- lt_save_CFLAGS="$CFLAGS"
++ lt_globsym_save_LIBS=$LIBS
++ lt_globsym_save_CFLAGS=$CFLAGS
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+@@ -6972,8 +7303,8 @@ _LT_EOF
+ test $ac_status = 0; } && test -s conftest${ac_exeext}; then
+ pipe_works=yes
+ fi
+- LIBS="$lt_save_LIBS"
+- CFLAGS="$lt_save_CFLAGS"
++ LIBS=$lt_globsym_save_LIBS
++ CFLAGS=$lt_globsym_save_CFLAGS
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+@@ -7010,6 +7341,21 @@ else
+ $as_echo "ok" >&6; }
+ fi
+
++# Response file support.
++if test "$lt_cv_nm_interface" = "MS dumpbin"; then
++ nm_file_list_spec='@'
++elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
++ nm_file_list_spec='@'
++fi
++
++
++
++
++
++
++
++
++
+
+
+
+@@ -7026,6 +7372,40 @@ fi
+
+
+
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
++$as_echo_n "checking for sysroot... " >&6; }
++
++# Check whether --with-libtool-sysroot was given.
++if test "${with_libtool_sysroot+set}" = set; then :
++ withval=$with_libtool_sysroot;
++else
++ with_libtool_sysroot=no
++fi
++
++
++lt_sysroot=
++case ${with_libtool_sysroot} in #(
++ yes)
++ if test "$GCC" = yes; then
++ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
++ fi
++ ;; #(
++ /*)
++ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
++ ;; #(
++ no|'')
++ ;; #(
++ *)
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5
++$as_echo "${with_libtool_sysroot}" >&6; }
++ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
++ ;;
++esac
++
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
++$as_echo "${lt_sysroot:-no}" >&6; }
+
+
+
+@@ -7237,6 +7617,123 @@ esac
+
+ need_locks="$enable_libtool_lock"
+
++if test -n "$ac_tool_prefix"; then
++ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
++set dummy ${ac_tool_prefix}mt; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$MANIFEST_TOOL"; then
++ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
++if test -n "$MANIFEST_TOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
++$as_echo "$MANIFEST_TOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++
++fi
++if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
++ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
++ # Extract the first word of "mt", so it can be a program name with args.
++set dummy mt; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$ac_ct_MANIFEST_TOOL"; then
++ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
++if test -n "$ac_ct_MANIFEST_TOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
++$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++ if test "x$ac_ct_MANIFEST_TOOL" = x; then
++ MANIFEST_TOOL=":"
++ else
++ case $cross_compiling:$ac_tool_warned in
++yes:)
++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
++ac_tool_warned=yes ;;
++esac
++ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
++ fi
++else
++ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
++fi
++
++test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
++$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
++if ${lt_cv_path_mainfest_tool+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_path_mainfest_tool=no
++ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
++ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
++ cat conftest.err >&5
++ if $GREP 'Manifest Tool' conftest.out > /dev/null; then
++ lt_cv_path_mainfest_tool=yes
++ fi
++ rm -f conftest*
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
++$as_echo "$lt_cv_path_mainfest_tool" >&6; }
++if test "x$lt_cv_path_mainfest_tool" != xyes; then
++ MANIFEST_TOOL=:
++fi
++
++
++
++
++
+
+ case $host_os in
+ rhapsody* | darwin*)
+@@ -7800,6 +8297,8 @@ _LT_EOF
+ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+ echo "$AR cru libconftest.a conftest.o" >&5
+ $AR cru libconftest.a conftest.o 2>&5
++ echo "$RANLIB libconftest.a" >&5
++ $RANLIB libconftest.a 2>&5
+ cat > conftest.c << _LT_EOF
+ int main() { return 0;}
+ _LT_EOF
+@@ -7995,7 +8494,8 @@ fi
+ LIBTOOL_DEPS="$ltmain"
+
+ # Always use our own libtool.
+-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
++LIBTOOL='$(SHELL) $(top_builddir)'
++LIBTOOL="$LIBTOOL/${host_alias}-libtool"
+
+
+
+@@ -8084,7 +8584,7 @@ aix3*)
+ esac
+
+ # Global variables:
+-ofile=libtool
++ofile=${host_alias}-libtool
+ can_build_shared=yes
+
+ # All known linkers require a `.a' archive for static linking (except MSVC,
+@@ -8382,8 +8882,6 @@ fi
+ lt_prog_compiler_pic=
+ lt_prog_compiler_static=
+
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+
+ if test "$GCC" = yes; then
+ lt_prog_compiler_wl='-Wl,'
+@@ -8549,6 +9047,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+ lt_prog_compiler_pic='--shared'
+ lt_prog_compiler_static='--static'
+ ;;
++ nagfor*)
++ # NAG Fortran compiler
++ lt_prog_compiler_wl='-Wl,-Wl,,'
++ lt_prog_compiler_pic='-PIC'
++ lt_prog_compiler_static='-Bstatic'
++ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+@@ -8611,7 +9115,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+- f77* | f90* | f95*)
++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+@@ -8668,13 +9172,17 @@ case $host_os in
+ lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+ ;;
+ esac
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
+-$as_echo "$lt_prog_compiler_pic" >&6; }
+-
+-
+-
+-
+
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
++$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
++if ${lt_cv_prog_compiler_pic+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
++$as_echo "$lt_cv_prog_compiler_pic" >&6; }
++lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
+
+ #
+ # Check to make sure the PIC flag actually works.
+@@ -8735,6 +9243,11 @@ fi
+
+
+
++
++
++
++
++
+ #
+ # Check to make sure the static flag actually works.
+ #
+@@ -9085,7 +9598,8 @@ _LT_EOF
+ allow_undefined_flag=unsupported
+ always_export_symbols=no
+ enable_shared_with_static_runtimes=yes
+- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
++ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+@@ -9184,12 +9698,12 @@ _LT_EOF
+ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_flag_spec_ld='-rpath $libdir'
+- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+@@ -9203,8 +9717,8 @@ _LT_EOF
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+@@ -9222,8 +9736,8 @@ _LT_EOF
+
+ _LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+@@ -9269,8 +9783,8 @@ _LT_EOF
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+@@ -9400,7 +9914,13 @@ _LT_EOF
+ allow_undefined_flag='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++ if test "${lt_cv_aix_libpath+set}" = set; then
++ aix_libpath=$lt_cv_aix_libpath
++else
++ if ${lt_cv_aix_libpath_+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ int
+@@ -9413,22 +9933,29 @@ main ()
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+
+-lt_aix_libpath_sed='
+- /Import File Strings/,/^$/ {
+- /^0/ {
+- s/^0 *\(.*\)$/\1/
+- p
+- }
+- }'
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-# Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then
+- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-fi
++ lt_aix_libpath_sed='
++ /Import File Strings/,/^$/ {
++ /^0/ {
++ s/^0 *\([^ ]*\) *$/\1/
++ p
++ }
++ }'
++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ # Check for a 64-bit object if we didn't find anything.
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ fi
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_="/usr/lib:/lib"
++ fi
++
++fi
++
++ aix_libpath=$lt_cv_aix_libpath_
++fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+@@ -9440,7 +9967,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++ if test "${lt_cv_aix_libpath+set}" = set; then
++ aix_libpath=$lt_cv_aix_libpath
++else
++ if ${lt_cv_aix_libpath_+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ int
+@@ -9453,22 +9986,29 @@ main ()
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+
+-lt_aix_libpath_sed='
+- /Import File Strings/,/^$/ {
+- /^0/ {
+- s/^0 *\(.*\)$/\1/
+- p
+- }
+- }'
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-# Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then
+- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-fi
++ lt_aix_libpath_sed='
++ /Import File Strings/,/^$/ {
++ /^0/ {
++ s/^0 *\([^ ]*\) *$/\1/
++ p
++ }
++ }'
++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ # Check for a 64-bit object if we didn't find anything.
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ fi
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_="/usr/lib:/lib"
++ fi
++
++fi
++
++ aix_libpath=$lt_cv_aix_libpath_
++fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+@@ -9513,20 +10053,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+- hardcode_libdir_flag_spec=' '
+- allow_undefined_flag=unsupported
+- # Tell ltmain to make .lib files, not .a files.
+- libext=lib
+- # Tell ltmain to make .dll files, not .so files.
+- shrext_cmds=".dll"
+- # FIXME: Setting linknames here is a bad hack.
+- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+- # The linker will automatically build a .lib file if we build a DLL.
+- old_archive_from_new_cmds='true'
+- # FIXME: Should let the user specify the lib program.
+- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+- fix_srcfile_path='`cygpath -w "$srcfile"`'
+- enable_shared_with_static_runtimes=yes
++ case $cc_basename in
++ cl*)
++ # Native MSVC
++ hardcode_libdir_flag_spec=' '
++ allow_undefined_flag=unsupported
++ always_export_symbols=yes
++ file_list_spec='@'
++ # Tell ltmain to make .lib files, not .a files.
++ libext=lib
++ # Tell ltmain to make .dll files, not .so files.
++ shrext_cmds=".dll"
++ # FIXME: Setting linknames here is a bad hack.
++ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
++ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
++ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
++ else
++ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
++ fi~
++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
++ linknames='
++ # The linker will not automatically build a static lib if we build a DLL.
++ # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
++ enable_shared_with_static_runtimes=yes
++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
++ # Don't use ranlib
++ old_postinstall_cmds='chmod 644 $oldlib'
++ postlink_cmds='lt_outputfile="@OUTPUT@"~
++ lt_tool_outputfile="@TOOL_OUTPUT@"~
++ case $lt_outputfile in
++ *.exe|*.EXE) ;;
++ *)
++ lt_outputfile="$lt_outputfile.exe"
++ lt_tool_outputfile="$lt_tool_outputfile.exe"
++ ;;
++ esac~
++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
++ $RM "$lt_outputfile.manifest";
++ fi'
++ ;;
++ *)
++ # Assume MSVC wrapper
++ hardcode_libdir_flag_spec=' '
++ allow_undefined_flag=unsupported
++ # Tell ltmain to make .lib files, not .a files.
++ libext=lib
++ # Tell ltmain to make .dll files, not .so files.
++ shrext_cmds=".dll"
++ # FIXME: Setting linknames here is a bad hack.
++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
++ # The linker will automatically build a .lib file if we build a DLL.
++ old_archive_from_new_cmds='true'
++ # FIXME: Should let the user specify the lib program.
++ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
++ enable_shared_with_static_runtimes=yes
++ ;;
++ esac
+ ;;
+
+ darwin* | rhapsody*)
+@@ -9587,7 +10170,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+@@ -9595,7 +10178,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hpux9*)
+ if test "$GCC" = yes; then
+- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
++ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+@@ -9611,7 +10194,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hpux10*)
+ if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+@@ -9635,10 +10218,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+@@ -9717,23 +10300,36 @@ fi
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+- save_LDFLAGS="$LDFLAGS"
+- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++ # This should be the same for all languages, so no per-tag cache variable.
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
++$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
++if ${lt_cv_irix_exported_symbol+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ save_LDFLAGS="$LDFLAGS"
++ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+-int foo(void) {}
++int foo (void) { return 0; }
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+-
++ lt_cv_irix_exported_symbol=yes
++else
++ lt_cv_irix_exported_symbol=no
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+- LDFLAGS="$save_LDFLAGS"
++ LDFLAGS="$save_LDFLAGS"
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
++$as_echo "$lt_cv_irix_exported_symbol" >&6; }
++ if test "$lt_cv_irix_exported_symbol" = yes; then
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
++ fi
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+@@ -9818,7 +10414,7 @@ rm -f core conftest.err conftest.$ac_objext \
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
++ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+@@ -9837,9 +10433,9 @@ rm -f core conftest.err conftest.$ac_objext \
+ no_undefined_flag=' -z defs'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
++ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+@@ -10415,8 +11011,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+ need_version=no
+ need_lib_prefix=no
+
+- case $GCC,$host_os in
+- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
++ case $GCC,$cc_basename in
++ yes,*)
++ # gcc
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+@@ -10449,13 +11046,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
++ dynamic_linker='Win32 ld.exe'
++ ;;
++
++ *,cl*)
++ # Native MSVC
++ libname_spec='$name'
++ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
++ library_names_spec='${libname}.dll.lib'
++
++ case $build_os in
++ mingw*)
++ sys_lib_search_path_spec=
++ lt_save_ifs=$IFS
++ IFS=';'
++ for lt_path in $LIB
++ do
++ IFS=$lt_save_ifs
++ # Let DOS variable expansion print the short 8.3 style file name.
++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
++ done
++ IFS=$lt_save_ifs
++ # Convert to MSYS style.
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
++ ;;
++ cygwin*)
++ # Convert to unix form, then to dos form, then back to unix form
++ # but this time dos style (no spaces!) so that the unix form looks
++ # like /cygdrive/c/PROGRA~1:/cygdr...
++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
++ ;;
++ *)
++ sys_lib_search_path_spec="$LIB"
++ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
++ # It is most probably a Windows format PATH.
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
++ else
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
++ fi
++ # FIXME: find the short name or the path components, as spaces are
++ # common. (e.g. "Program Files" -> "PROGRA~1")
++ ;;
++ esac
++
++ # DLL is installed to $(libdir)/../bin by postinstall_cmds
++ postinstall_cmds='base_file=`basename \${file}`~
++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
++ dldir=$destdir/`dirname \$dlpath`~
++ test -d \$dldir || mkdir -p \$dldir~
++ $install_prog $dir/$dlname \$dldir/$dlname'
++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
++ dlpath=$dir/\$dldll~
++ $RM \$dlpath'
++ shlibpath_overrides_runpath=yes
++ dynamic_linker='Win32 link.exe'
+ ;;
+
+ *)
++ # Assume MSVC wrapper
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
++ dynamic_linker='Win32 ld.exe'
+ ;;
+ esac
+- dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+@@ -10547,7 +11202,7 @@ haiku*)
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+ hardcode_into_libs=yes
+ ;;
+
+@@ -11343,7 +11998,7 @@ else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+-#line 11346 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+@@ -11387,10 +12042,10 @@ else
+ /* When -fvisbility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+-void fnord () __attribute__((visibility("default")));
++int fnord () __attribute__((visibility("default")));
+ #endif
+
+-void fnord () { int i=42; }
++int fnord () { return 42; }
+ int main ()
+ {
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+@@ -11449,7 +12104,7 @@ else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+-#line 11452 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+@@ -11493,10 +12148,10 @@ else
+ /* When -fvisbility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+-void fnord () __attribute__((visibility("default")));
++int fnord () __attribute__((visibility("default")));
+ #endif
+
+-void fnord () { int i=42; }
++int fnord () { return 42; }
+ int main ()
+ {
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+@@ -15981,13 +16636,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+ lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+ lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+ lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
++lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
++lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
+ reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+ reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+ OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+ deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+ file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
++file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
++want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
++DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
++sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
+ AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+ AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
++archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
+ STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+ RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+ old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+@@ -16002,14 +16664,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+ lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+ lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
++nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
++lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+ objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+ MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
++lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+ lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+ need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
++MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
+ DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+ NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+ LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+@@ -16042,12 +16707,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+ hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+ inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+ link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+-fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`'
+ always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+ export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+ exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+ include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+ prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
++postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
+ file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+ variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+ need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+@@ -16102,8 +16767,13 @@ reload_flag \
+ OBJDUMP \
+ deplibs_check_method \
+ file_magic_cmd \
++file_magic_glob \
++want_nocaseglob \
++DLLTOOL \
++sharedlib_from_linklib_cmd \
+ AR \
+ AR_FLAGS \
++archiver_list_spec \
+ STRIP \
+ RANLIB \
+ CC \
+@@ -16113,12 +16783,14 @@ lt_cv_sys_global_symbol_pipe \
+ lt_cv_sys_global_symbol_to_cdecl \
+ lt_cv_sys_global_symbol_to_c_name_address \
+ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
++nm_file_list_spec \
+ lt_prog_compiler_no_builtin_flag \
+-lt_prog_compiler_wl \
+ lt_prog_compiler_pic \
++lt_prog_compiler_wl \
+ lt_prog_compiler_static \
+ lt_cv_prog_compiler_c_o \
+ need_locks \
++MANIFEST_TOOL \
+ DSYMUTIL \
+ NMEDIT \
+ LIPO \
+@@ -16134,7 +16806,6 @@ no_undefined_flag \
+ hardcode_libdir_flag_spec \
+ hardcode_libdir_flag_spec_ld \
+ hardcode_libdir_separator \
+-fix_srcfile_path \
+ exclude_expsyms \
+ include_expsyms \
+ file_list_spec \
+@@ -16170,6 +16841,7 @@ module_cmds \
+ module_expsym_cmds \
+ export_symbols_cmds \
+ prelink_cmds \
++postlink_cmds \
+ postinstall_cmds \
+ postuninstall_cmds \
+ finish_cmds \
+@@ -16943,7 +17615,8 @@ $as_echo X"$file" |
+ # NOTE: Changes made to this file will be lost: look at ltmain.sh.
+ #
+ # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
++# Inc.
+ # Written by Gordon Matzigkeit, 1996
+ #
+ # This file is part of GNU Libtool.
+@@ -17046,19 +17719,42 @@ SP2NL=$lt_lt_SP2NL
+ # turn newlines into spaces.
+ NL2SP=$lt_lt_NL2SP
+
++# convert \$build file names to \$host format.
++to_host_file_cmd=$lt_cv_to_host_file_cmd
++
++# convert \$build files to toolchain format.
++to_tool_file_cmd=$lt_cv_to_tool_file_cmd
++
+ # An object symbol dumper.
+ OBJDUMP=$lt_OBJDUMP
+
+ # Method to check whether dependent libraries are shared objects.
+ deplibs_check_method=$lt_deplibs_check_method
+
+-# Command to use when deplibs_check_method == "file_magic".
++# Command to use when deplibs_check_method = "file_magic".
+ file_magic_cmd=$lt_file_magic_cmd
+
++# How to find potential files when deplibs_check_method = "file_magic".
++file_magic_glob=$lt_file_magic_glob
++
++# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
++want_nocaseglob=$lt_want_nocaseglob
++
++# DLL creation program.
++DLLTOOL=$lt_DLLTOOL
++
++# Command to associate shared and link libraries.
++sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
++
+ # The archiver.
+ AR=$lt_AR
++
++# Flags to create an archive.
+ AR_FLAGS=$lt_AR_FLAGS
+
++# How to feed a file listing to the archiver.
++archiver_list_spec=$lt_archiver_list_spec
++
+ # A symbol stripping program.
+ STRIP=$lt_STRIP
+
+@@ -17088,6 +17784,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+ # Transform the output of nm in a C name address pair when lib prefix is needed.
+ global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
++# Specify filename containing input files for \$NM.
++nm_file_list_spec=$lt_nm_file_list_spec
++
++# The root where to search for dependent libraries,and in which our libraries should be installed.
++lt_sysroot=$lt_sysroot
++
+ # The name of the directory that contains temporary libtool files.
+ objdir=$objdir
+
+@@ -17097,6 +17799,9 @@ MAGIC_CMD=$MAGIC_CMD
+ # Must we lock files when doing compilation?
+ need_locks=$lt_need_locks
+
++# Manifest tool.
++MANIFEST_TOOL=$lt_MANIFEST_TOOL
++
+ # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+ DSYMUTIL=$lt_DSYMUTIL
+
+@@ -17211,12 +17916,12 @@ with_gcc=$GCC
+ # Compiler flag to turn off builtin functions.
+ no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+-# How to pass a linker flag through the compiler.
+-wl=$lt_lt_prog_compiler_wl
+-
+ # Additional compiler flags for building library objects.
+ pic_flag=$lt_lt_prog_compiler_pic
+
++# How to pass a linker flag through the compiler.
++wl=$lt_lt_prog_compiler_wl
++
+ # Compiler flag to prevent dynamic linking.
+ link_static_flag=$lt_lt_prog_compiler_static
+
+@@ -17303,9 +18008,6 @@ inherit_rpath=$inherit_rpath
+ # Whether libtool must link a program against all its dependency libraries.
+ link_all_deplibs=$link_all_deplibs
+
+-# Fix the shell variable \$srcfile for the compiler.
+-fix_srcfile_path=$lt_fix_srcfile_path
+-
+ # Set to "yes" if exported symbols are required.
+ always_export_symbols=$always_export_symbols
+
+@@ -17321,6 +18023,9 @@ include_expsyms=$lt_include_expsyms
+ # Commands necessary for linking programs (against libraries) with templates.
+ prelink_cmds=$lt_prelink_cmds
+
++# Commands necessary for finishing linking programs.
++postlink_cmds=$lt_postlink_cmds
++
+ # Specify filename containing input files.
+ file_list_spec=$lt_file_list_spec
+
+@@ -17353,210 +18058,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
+- || (rm -f "$cfgfile"; exit 1)
+-
+- case $xsi_shell in
+- yes)
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_dirname file append nondir_replacement
+-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+-# otherwise set result to NONDIR_REPLACEMENT.
+-func_dirname ()
+-{
+- case ${1} in
+- */*) func_dirname_result="${1%/*}${2}" ;;
+- * ) func_dirname_result="${3}" ;;
+- esac
+-}
+-
+-# func_basename file
+-func_basename ()
+-{
+- func_basename_result="${1##*/}"
+-}
+-
+-# func_dirname_and_basename file append nondir_replacement
+-# perform func_basename and func_dirname in a single function
+-# call:
+-# dirname: Compute the dirname of FILE. If nonempty,
+-# add APPEND to the result, otherwise set result
+-# to NONDIR_REPLACEMENT.
+-# value returned in "$func_dirname_result"
+-# basename: Compute filename of FILE.
+-# value retuned in "$func_basename_result"
+-# Implementation must be kept synchronized with func_dirname
+-# and func_basename. For efficiency, we do not delegate to
+-# those functions but instead duplicate the functionality here.
+-func_dirname_and_basename ()
+-{
+- case ${1} in
+- */*) func_dirname_result="${1%/*}${2}" ;;
+- * ) func_dirname_result="${3}" ;;
+- esac
+- func_basename_result="${1##*/}"
+-}
+-
+-# func_stripname prefix suffix name
+-# strip PREFIX and SUFFIX off of NAME.
+-# PREFIX and SUFFIX must not contain globbing or regex special
+-# characters, hashes, percent signs, but SUFFIX may contain a leading
+-# dot (in which case that matches only a dot).
+-func_stripname ()
+-{
+- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+- # positional parameters, so assign one to ordinary parameter first.
+- func_stripname_result=${3}
+- func_stripname_result=${func_stripname_result#"${1}"}
+- func_stripname_result=${func_stripname_result%"${2}"}
+-}
+-
+-# func_opt_split
+-func_opt_split ()
+-{
+- func_opt_split_opt=${1%%=*}
+- func_opt_split_arg=${1#*=}
+-}
+-
+-# func_lo2o object
+-func_lo2o ()
+-{
+- case ${1} in
+- *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+- *) func_lo2o_result=${1} ;;
+- esac
+-}
+-
+-# func_xform libobj-or-source
+-func_xform ()
+-{
+- func_xform_result=${1%.*}.lo
+-}
+-
+-# func_arith arithmetic-term...
+-func_arith ()
+-{
+- func_arith_result=$(( $* ))
+-}
+-
+-# func_len string
+-# STRING may not start with a hyphen.
+-func_len ()
+-{
+- func_len_result=${#1}
+-}
+-
+-_LT_EOF
+- ;;
+- *) # Bourne compatible functions.
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_dirname file append nondir_replacement
+-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+-# otherwise set result to NONDIR_REPLACEMENT.
+-func_dirname ()
+-{
+- # Extract subdirectory from the argument.
+- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
+- if test "X$func_dirname_result" = "X${1}"; then
+- func_dirname_result="${3}"
+- else
+- func_dirname_result="$func_dirname_result${2}"
+- fi
+-}
+-
+-# func_basename file
+-func_basename ()
+-{
+- func_basename_result=`$ECHO "${1}" | $SED "$basename"`
+-}
+-
+-
+-# func_stripname prefix suffix name
+-# strip PREFIX and SUFFIX off of NAME.
+-# PREFIX and SUFFIX must not contain globbing or regex special
+-# characters, hashes, percent signs, but SUFFIX may contain a leading
+-# dot (in which case that matches only a dot).
+-# func_strip_suffix prefix name
+-func_stripname ()
+-{
+- case ${2} in
+- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+- esac
+-}
+-
+-# sed scripts:
+-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
+-my_sed_long_arg='1s/^-[^=]*=//'
+-
+-# func_opt_split
+-func_opt_split ()
+-{
+- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
+- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
+-}
+-
+-# func_lo2o object
+-func_lo2o ()
+-{
+- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
+-}
+-
+-# func_xform libobj-or-source
+-func_xform ()
+-{
+- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
+-}
+-
+-# func_arith arithmetic-term...
+-func_arith ()
+-{
+- func_arith_result=`expr "$@"`
+-}
+-
+-# func_len string
+-# STRING may not start with a hyphen.
+-func_len ()
+-{
+- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
+-}
+-
+-_LT_EOF
+-esac
+-
+-case $lt_shell_append in
+- yes)
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_append var value
+-# Append VALUE to the end of shell variable VAR.
+-func_append ()
+-{
+- eval "$1+=\$2"
+-}
+-_LT_EOF
+- ;;
+- *)
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_append var value
+-# Append VALUE to the end of shell variable VAR.
+-func_append ()
+-{
+- eval "$1=\$$1\$2"
+-}
+-
+-_LT_EOF
+- ;;
+- esac
+-
+-
+- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
+- || (rm -f "$cfgfile"; exit 1)
+-
+- mv -f "$cfgfile" "$ofile" ||
++ sed '$q' "$ltmain" >> "$cfgfile" \
++ || (rm -f "$cfgfile"; exit 1)
++
++ if test x"$xsi_shell" = xyes; then
++ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
++func_dirname ()\
++{\
++\ case ${1} in\
++\ */*) func_dirname_result="${1%/*}${2}" ;;\
++\ * ) func_dirname_result="${3}" ;;\
++\ esac\
++} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_basename ()$/,/^} # func_basename /c\
++func_basename ()\
++{\
++\ func_basename_result="${1##*/}"\
++} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
++func_dirname_and_basename ()\
++{\
++\ case ${1} in\
++\ */*) func_dirname_result="${1%/*}${2}" ;;\
++\ * ) func_dirname_result="${3}" ;;\
++\ esac\
++\ func_basename_result="${1##*/}"\
++} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
++func_stripname ()\
++{\
++\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
++\ # positional parameters, so assign one to ordinary parameter first.\
++\ func_stripname_result=${3}\
++\ func_stripname_result=${func_stripname_result#"${1}"}\
++\ func_stripname_result=${func_stripname_result%"${2}"}\
++} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
++func_split_long_opt ()\
++{\
++\ func_split_long_opt_name=${1%%=*}\
++\ func_split_long_opt_arg=${1#*=}\
++} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
++func_split_short_opt ()\
++{\
++\ func_split_short_opt_arg=${1#??}\
++\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
++} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
++func_lo2o ()\
++{\
++\ case ${1} in\
++\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
++\ *) func_lo2o_result=${1} ;;\
++\ esac\
++} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_xform ()$/,/^} # func_xform /c\
++func_xform ()\
++{\
++ func_xform_result=${1%.*}.lo\
++} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_arith ()$/,/^} # func_arith /c\
++func_arith ()\
++{\
++ func_arith_result=$(( $* ))\
++} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_len ()$/,/^} # func_len /c\
++func_len ()\
++{\
++ func_len_result=${#1}\
++} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++fi
++
++if test x"$lt_shell_append" = xyes; then
++ sed -e '/^func_append ()$/,/^} # func_append /c\
++func_append ()\
++{\
++ eval "${1}+=\\${2}"\
++} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
++func_append_quoted ()\
++{\
++\ func_quote_for_eval "${2}"\
++\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
++} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ # Save a `func_append' function call where possible by direct use of '+='
++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++ test 0 -eq $? || _lt_function_replace_fail=:
++else
++ # Save a `func_append' function call even when '+=' is not available
++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++ test 0 -eq $? || _lt_function_replace_fail=:
++fi
++
++if test x"$_lt_function_replace_fail" = x":"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
++$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
++fi
++
++
++ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+
+diff --git a/gprof/configure b/gprof/configure
+index 3cf41b79116..e5d57f52912 100755
+--- a/gprof/configure
++++ b/gprof/configure
+@@ -662,8 +662,11 @@ OTOOL
+ LIPO
+ NMEDIT
+ DSYMUTIL
++MANIFEST_TOOL
+ RANLIB
++ac_ct_AR
+ AR
++DLLTOOL
+ OBJDUMP
+ LN_S
+ NM
+@@ -780,6 +783,7 @@ enable_static
+ with_pic
+ enable_fast_install
+ with_gnu_ld
++with_libtool_sysroot
+ enable_libtool_lock
+ enable_plugins
+ enable_largefile
+@@ -1442,6 +1446,8 @@ Optional Packages:
+ --with-pic try to use only PIC/non-PIC objects [default=use
+ both]
+ --with-gnu-ld assume the C compiler uses GNU ld [default=no]
++ --with-libtool-sysroot=DIR Search for dependent libraries within DIR
++ (or the compiler's sysroot if not specified).
+
+ Some influential environment variables:
+ CC C compiler command
+@@ -5124,8 +5130,8 @@ esac
+
+
+
+-macro_version='2.2.7a'
+-macro_revision='1.3134'
++macro_version='2.4'
++macro_revision='1.3293'
+
+
+
+@@ -5165,7 +5171,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+ $as_echo_n "checking how to print strings... " >&6; }
+ # Test print first, because it will be a builtin if present.
+-if test "X`print -r -- -n 2>/dev/null`" = X-n && \
++if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='print -r --'
+ elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+@@ -5851,8 +5857,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
+ # Try some XSI features
+ xsi_shell=no
+ ( _lt_dummy="a/b/c"
+- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
+- = c,a/b,, \
++ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
++ = c,a/b,b/c, \
+ && eval 'test $(( 1 + 1 )) -eq 2 \
+ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+ && xsi_shell=yes
+@@ -5901,6 +5907,80 @@ esac
+
+
+
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
++$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
++if ${lt_cv_to_host_file_cmd+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ case $host in
++ *-*-mingw* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
++ ;;
++ *-*-cygwin* )
++ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
++ ;;
++ * ) # otherwise, assume *nix
++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
++ ;;
++ esac
++ ;;
++ *-*-cygwin* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
++ ;;
++ *-*-cygwin* )
++ lt_cv_to_host_file_cmd=func_convert_file_noop
++ ;;
++ * ) # otherwise, assume *nix
++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
++ ;;
++ esac
++ ;;
++ * ) # unhandled hosts (and "normal" native builds)
++ lt_cv_to_host_file_cmd=func_convert_file_noop
++ ;;
++esac
++
++fi
++
++to_host_file_cmd=$lt_cv_to_host_file_cmd
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
++$as_echo "$lt_cv_to_host_file_cmd" >&6; }
++
++
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
++$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
++if ${lt_cv_to_tool_file_cmd+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ #assume ordinary cross tools, or native build.
++lt_cv_to_tool_file_cmd=func_convert_file_noop
++case $host in
++ *-*-mingw* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
++ ;;
++ esac
++ ;;
++esac
++
++fi
++
++to_tool_file_cmd=$lt_cv_to_tool_file_cmd
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
++$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
++
++
++
++
++
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+ $as_echo_n "checking for $LD option to reload object files... " >&6; }
+ if ${lt_cv_ld_reload_flag+:} false; then :
+@@ -5917,6 +5997,11 @@ case $reload_flag in
+ esac
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ case $host_os in
++ cygwin* | mingw* | pw32* | cegcc*)
++ if test "$GCC" != yes; then
++ reload_cmds=false
++ fi
++ ;;
+ darwin*)
+ if test "$GCC" = yes; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+@@ -6085,7 +6170,8 @@ mingw* | pw32*)
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
++ # Keep this pattern in sync with the one in func_win32_libid.
++ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+@@ -6239,6 +6325,21 @@ esac
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+ $as_echo "$lt_cv_deplibs_check_method" >&6; }
++
++file_magic_glob=
++want_nocaseglob=no
++if test "$build" = "$host"; then
++ case $host_os in
++ mingw* | pw32*)
++ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
++ want_nocaseglob=yes
++ else
++ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
++ fi
++ ;;
++ esac
++fi
++
+ file_magic_cmd=$lt_cv_file_magic_cmd
+ deplibs_check_method=$lt_cv_deplibs_check_method
+ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+@@ -6252,11 +6353,164 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
++
++
++
++
++
++
++
++
++
++
+
+
+ if test -n "$ac_tool_prefix"; then
+- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}ar; ac_word=$2
++ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
++set dummy ${ac_tool_prefix}dlltool; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_DLLTOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$DLLTOOL"; then
++ ac_cv_prog_DLLTOOL="$DLLTOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++DLLTOOL=$ac_cv_prog_DLLTOOL
++if test -n "$DLLTOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
++$as_echo "$DLLTOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++
++fi
++if test -z "$ac_cv_prog_DLLTOOL"; then
++ ac_ct_DLLTOOL=$DLLTOOL
++ # Extract the first word of "dlltool", so it can be a program name with args.
++set dummy dlltool; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$ac_ct_DLLTOOL"; then
++ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_ac_ct_DLLTOOL="dlltool"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
++if test -n "$ac_ct_DLLTOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
++$as_echo "$ac_ct_DLLTOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++ if test "x$ac_ct_DLLTOOL" = x; then
++ DLLTOOL="false"
++ else
++ case $cross_compiling:$ac_tool_warned in
++yes:)
++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
++ac_tool_warned=yes ;;
++esac
++ DLLTOOL=$ac_ct_DLLTOOL
++ fi
++else
++ DLLTOOL="$ac_cv_prog_DLLTOOL"
++fi
++
++test -z "$DLLTOOL" && DLLTOOL=dlltool
++
++
++
++
++
++
++
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
++$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
++if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_sharedlib_from_linklib_cmd='unknown'
++
++case $host_os in
++cygwin* | mingw* | pw32* | cegcc*)
++ # two different shell functions defined in ltmain.sh
++ # decide which to use based on capabilities of $DLLTOOL
++ case `$DLLTOOL --help 2>&1` in
++ *--identify-strict*)
++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
++ ;;
++ *)
++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
++ ;;
++ esac
++ ;;
++*)
++ # fallback: assume linklib IS sharedlib
++ lt_cv_sharedlib_from_linklib_cmd="$ECHO"
++ ;;
++esac
++
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
++$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
++sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
++test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
++
++
++
++
++
++
++
++if test -n "$ac_tool_prefix"; then
++ for ac_prog in ar
++ 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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+@@ -6272,7 +6526,7 @@ do
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+- ac_cv_prog_AR="${ac_tool_prefix}ar"
++ ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+@@ -6292,11 +6546,15 @@ $as_echo "no" >&6; }
+ fi
+
+
++ test -n "$AR" && break
++ done
+ fi
+-if test -z "$ac_cv_prog_AR"; then
++if test -z "$AR"; then
+ ac_ct_AR=$AR
+- # Extract the first word of "ar", so it can be a program name with args.
+-set dummy ar; ac_word=$2
++ for ac_prog in ar
++do
++ # Extract the first word of "$ac_prog", so it can be a program name with args.
++set dummy $ac_prog; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+@@ -6312,7 +6570,7 @@ do
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+- ac_cv_prog_ac_ct_AR="ar"
++ ac_cv_prog_ac_ct_AR="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+@@ -6331,6 +6589,10 @@ else
+ $as_echo "no" >&6; }
+ fi
+
++
++ test -n "$ac_ct_AR" && break
++done
++
+ if test "x$ac_ct_AR" = x; then
+ AR="false"
+ else
+@@ -6342,16 +6604,72 @@ ac_tool_warned=yes ;;
+ esac
+ AR=$ac_ct_AR
+ fi
+-else
+- AR="$ac_cv_prog_AR"
+ fi
+
+-test -z "$AR" && AR=ar
+-test -z "$AR_FLAGS" && AR_FLAGS=cru
++: ${AR=ar}
++: ${AR_FLAGS=cru}
++
++
++
++
++
++
++
++
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
++$as_echo_n "checking for archiver @FILE support... " >&6; }
++if ${lt_cv_ar_at_file+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_ar_at_file=no
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++
++int
++main ()
++{
+
++ ;
++ return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++ echo conftest.$ac_objext > conftest.lst
++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
++ (eval $lt_ar_try) 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }
++ if test "$ac_status" -eq 0; then
++ # Ensure the archiver fails upon bogus file names.
++ rm -f conftest.$ac_objext libconftest.a
++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
++ (eval $lt_ar_try) 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }
++ if test "$ac_status" -ne 0; then
++ lt_cv_ar_at_file=@
++ fi
++ fi
++ rm -f conftest.* libconftest.a
+
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
++$as_echo "$lt_cv_ar_at_file" >&6; }
+
++if test "x$lt_cv_ar_at_file" = xno; then
++ archiver_list_spec=
++else
++ archiver_list_spec=$lt_cv_ar_at_file
++fi
+
+
+
+@@ -6693,8 +7011,8 @@ esac
+ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+ # Transform an extracted symbol line into symbol name and symbol address
+-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
+-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
++lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
+
+ # Handle CRLF in mingw tool chain
+ opt_cr=
+@@ -6730,6 +7048,7 @@ for ac_symprfx in "" "_"; do
+ else
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
++ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+@@ -6771,6 +7090,18 @@ _LT_EOF
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
++#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
++/* DATA imports from DLLs on WIN32 con't be const, because runtime
++ relocations are performed -- see ld's documentation on pseudo-relocs. */
++# define LT_DLSYM_CONST
++#elif defined(__osf__)
++/* This system does not cope well with relocations in const data. */
++# define LT_DLSYM_CONST
++#else
++# define LT_DLSYM_CONST const
++#endif
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+@@ -6782,7 +7113,7 @@ _LT_EOF
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+ /* The mapping between symbol names and symbols. */
+-const struct {
++LT_DLSYM_CONST struct {
+ const char *name;
+ void *address;
+ }
+@@ -6808,8 +7139,8 @@ static const void *lt_preloaded_setup() {
+ _LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+- lt_save_LIBS="$LIBS"
+- lt_save_CFLAGS="$CFLAGS"
++ lt_globsym_save_LIBS=$LIBS
++ lt_globsym_save_CFLAGS=$CFLAGS
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+@@ -6819,8 +7150,8 @@ _LT_EOF
+ test $ac_status = 0; } && test -s conftest${ac_exeext}; then
+ pipe_works=yes
+ fi
+- LIBS="$lt_save_LIBS"
+- CFLAGS="$lt_save_CFLAGS"
++ LIBS=$lt_globsym_save_LIBS
++ CFLAGS=$lt_globsym_save_CFLAGS
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+@@ -6857,6 +7188,20 @@ else
+ $as_echo "ok" >&6; }
+ fi
+
++# Response file support.
++if test "$lt_cv_nm_interface" = "MS dumpbin"; then
++ nm_file_list_spec='@'
++elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
++ nm_file_list_spec='@'
++fi
++
++
++
++
++
++
++
++
+
+
+
+@@ -6873,6 +7218,41 @@ fi
+
+
+
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
++$as_echo_n "checking for sysroot... " >&6; }
++
++# Check whether --with-libtool-sysroot was given.
++if test "${with_libtool_sysroot+set}" = set; then :
++ withval=$with_libtool_sysroot;
++else
++ with_libtool_sysroot=no
++fi
++
++
++lt_sysroot=
++case ${with_libtool_sysroot} in #(
++ yes)
++ if test "$GCC" = yes; then
++ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
++ fi
++ ;; #(
++ /*)
++ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
++ ;; #(
++ no|'')
++ ;; #(
++ *)
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5
++$as_echo "${with_libtool_sysroot}" >&6; }
++ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
++ ;;
++esac
++
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
++$as_echo "${lt_sysroot:-no}" >&6; }
+
+
+
+@@ -7084,6 +7464,123 @@ esac
+
+ need_locks="$enable_libtool_lock"
+
++if test -n "$ac_tool_prefix"; then
++ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
++set dummy ${ac_tool_prefix}mt; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$MANIFEST_TOOL"; then
++ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
++if test -n "$MANIFEST_TOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
++$as_echo "$MANIFEST_TOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++
++fi
++if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
++ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
++ # Extract the first word of "mt", so it can be a program name with args.
++set dummy mt; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$ac_ct_MANIFEST_TOOL"; then
++ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
++if test -n "$ac_ct_MANIFEST_TOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
++$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++ if test "x$ac_ct_MANIFEST_TOOL" = x; then
++ MANIFEST_TOOL=":"
++ else
++ case $cross_compiling:$ac_tool_warned in
++yes:)
++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
++ac_tool_warned=yes ;;
++esac
++ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
++ fi
++else
++ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
++fi
++
++test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
++$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
++if ${lt_cv_path_mainfest_tool+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_path_mainfest_tool=no
++ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
++ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
++ cat conftest.err >&5
++ if $GREP 'Manifest Tool' conftest.out > /dev/null; then
++ lt_cv_path_mainfest_tool=yes
++ fi
++ rm -f conftest*
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
++$as_echo "$lt_cv_path_mainfest_tool" >&6; }
++if test "x$lt_cv_path_mainfest_tool" != xyes; then
++ MANIFEST_TOOL=:
++fi
++
++
++
++
++
+
+ case $host_os in
+ rhapsody* | darwin*)
+@@ -7647,6 +8144,8 @@ _LT_EOF
+ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+ echo "$AR cru libconftest.a conftest.o" >&5
+ $AR cru libconftest.a conftest.o 2>&5
++ echo "$RANLIB libconftest.a" >&5
++ $RANLIB libconftest.a 2>&5
+ cat > conftest.c << _LT_EOF
+ int main() { return 0;}
+ _LT_EOF
+@@ -7842,7 +8341,8 @@ fi
+ LIBTOOL_DEPS="$ltmain"
+
+ # Always use our own libtool.
+-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
++LIBTOOL='$(SHELL) $(top_builddir)'
++LIBTOOL="$LIBTOOL/${host_alias}-libtool"
+
+
+
+@@ -7931,7 +8431,7 @@ aix3*)
+ esac
+
+ # Global variables:
+-ofile=libtool
++ofile=${host_alias}-libtool
+ can_build_shared=yes
+
+ # All known linkers require a `.a' archive for static linking (except MSVC,
+@@ -8229,8 +8729,6 @@ fi
+ lt_prog_compiler_pic=
+ lt_prog_compiler_static=
+
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+
+ if test "$GCC" = yes; then
+ lt_prog_compiler_wl='-Wl,'
+@@ -8396,6 +8894,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+ lt_prog_compiler_pic='--shared'
+ lt_prog_compiler_static='--static'
+ ;;
++ nagfor*)
++ # NAG Fortran compiler
++ lt_prog_compiler_wl='-Wl,-Wl,,'
++ lt_prog_compiler_pic='-PIC'
++ lt_prog_compiler_static='-Bstatic'
++ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+@@ -8458,7 +8962,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+- f77* | f90* | f95*)
++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+@@ -8515,13 +9019,17 @@ case $host_os in
+ lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+ ;;
+ esac
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
+-$as_echo "$lt_prog_compiler_pic" >&6; }
+-
+-
+-
+-
+
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
++$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
++if ${lt_cv_prog_compiler_pic+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
++$as_echo "$lt_cv_prog_compiler_pic" >&6; }
++lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
+
+ #
+ # Check to make sure the PIC flag actually works.
+@@ -8582,6 +9090,11 @@ fi
+
+
+
++
++
++
++
++
+ #
+ # Check to make sure the static flag actually works.
+ #
+@@ -8932,7 +9445,8 @@ _LT_EOF
+ allow_undefined_flag=unsupported
+ always_export_symbols=no
+ enable_shared_with_static_runtimes=yes
+- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
++ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+@@ -9031,12 +9545,12 @@ _LT_EOF
+ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_flag_spec_ld='-rpath $libdir'
+- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+@@ -9050,8 +9564,8 @@ _LT_EOF
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+@@ -9069,8 +9583,8 @@ _LT_EOF
+
+ _LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+@@ -9116,8 +9630,8 @@ _LT_EOF
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+@@ -9247,7 +9761,13 @@ _LT_EOF
+ allow_undefined_flag='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++ if test "${lt_cv_aix_libpath+set}" = set; then
++ aix_libpath=$lt_cv_aix_libpath
++else
++ if ${lt_cv_aix_libpath_+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ int
+@@ -9260,22 +9780,29 @@ main ()
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+
+-lt_aix_libpath_sed='
+- /Import File Strings/,/^$/ {
+- /^0/ {
+- s/^0 *\(.*\)$/\1/
+- p
+- }
+- }'
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-# Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then
+- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-fi
++ lt_aix_libpath_sed='
++ /Import File Strings/,/^$/ {
++ /^0/ {
++ s/^0 *\([^ ]*\) *$/\1/
++ p
++ }
++ }'
++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ # Check for a 64-bit object if we didn't find anything.
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ fi
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_="/usr/lib:/lib"
++ fi
++
++fi
++
++ aix_libpath=$lt_cv_aix_libpath_
++fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+@@ -9287,7 +9814,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++ if test "${lt_cv_aix_libpath+set}" = set; then
++ aix_libpath=$lt_cv_aix_libpath
++else
++ if ${lt_cv_aix_libpath_+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ int
+@@ -9300,22 +9833,29 @@ main ()
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+
+-lt_aix_libpath_sed='
+- /Import File Strings/,/^$/ {
+- /^0/ {
+- s/^0 *\(.*\)$/\1/
+- p
+- }
+- }'
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-# Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then
+- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-fi
++ lt_aix_libpath_sed='
++ /Import File Strings/,/^$/ {
++ /^0/ {
++ s/^0 *\([^ ]*\) *$/\1/
++ p
++ }
++ }'
++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ # Check for a 64-bit object if we didn't find anything.
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ fi
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_="/usr/lib:/lib"
++ fi
++
++fi
++
++ aix_libpath=$lt_cv_aix_libpath_
++fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+@@ -9360,20 +9900,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+- hardcode_libdir_flag_spec=' '
+- allow_undefined_flag=unsupported
+- # Tell ltmain to make .lib files, not .a files.
+- libext=lib
+- # Tell ltmain to make .dll files, not .so files.
+- shrext_cmds=".dll"
+- # FIXME: Setting linknames here is a bad hack.
+- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+- # The linker will automatically build a .lib file if we build a DLL.
+- old_archive_from_new_cmds='true'
+- # FIXME: Should let the user specify the lib program.
+- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+- fix_srcfile_path='`cygpath -w "$srcfile"`'
+- enable_shared_with_static_runtimes=yes
++ case $cc_basename in
++ cl*)
++ # Native MSVC
++ hardcode_libdir_flag_spec=' '
++ allow_undefined_flag=unsupported
++ always_export_symbols=yes
++ file_list_spec='@'
++ # Tell ltmain to make .lib files, not .a files.
++ libext=lib
++ # Tell ltmain to make .dll files, not .so files.
++ shrext_cmds=".dll"
++ # FIXME: Setting linknames here is a bad hack.
++ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
++ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
++ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
++ else
++ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
++ fi~
++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
++ linknames='
++ # The linker will not automatically build a static lib if we build a DLL.
++ # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
++ enable_shared_with_static_runtimes=yes
++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
++ # Don't use ranlib
++ old_postinstall_cmds='chmod 644 $oldlib'
++ postlink_cmds='lt_outputfile="@OUTPUT@"~
++ lt_tool_outputfile="@TOOL_OUTPUT@"~
++ case $lt_outputfile in
++ *.exe|*.EXE) ;;
++ *)
++ lt_outputfile="$lt_outputfile.exe"
++ lt_tool_outputfile="$lt_tool_outputfile.exe"
++ ;;
++ esac~
++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
++ $RM "$lt_outputfile.manifest";
++ fi'
++ ;;
++ *)
++ # Assume MSVC wrapper
++ hardcode_libdir_flag_spec=' '
++ allow_undefined_flag=unsupported
++ # Tell ltmain to make .lib files, not .a files.
++ libext=lib
++ # Tell ltmain to make .dll files, not .so files.
++ shrext_cmds=".dll"
++ # FIXME: Setting linknames here is a bad hack.
++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
++ # The linker will automatically build a .lib file if we build a DLL.
++ old_archive_from_new_cmds='true'
++ # FIXME: Should let the user specify the lib program.
++ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
++ enable_shared_with_static_runtimes=yes
++ ;;
++ esac
+ ;;
+
+ darwin* | rhapsody*)
+@@ -9434,7 +10017,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+@@ -9442,7 +10025,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hpux9*)
+ if test "$GCC" = yes; then
+- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
++ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+@@ -9458,7 +10041,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hpux10*)
+ if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+@@ -9482,10 +10065,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+@@ -9564,23 +10147,36 @@ fi
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+- save_LDFLAGS="$LDFLAGS"
+- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++ # This should be the same for all languages, so no per-tag cache variable.
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
++$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
++if ${lt_cv_irix_exported_symbol+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ save_LDFLAGS="$LDFLAGS"
++ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+-int foo(void) {}
++int foo (void) { return 0; }
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+-
++ lt_cv_irix_exported_symbol=yes
++else
++ lt_cv_irix_exported_symbol=no
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+- LDFLAGS="$save_LDFLAGS"
++ LDFLAGS="$save_LDFLAGS"
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
++$as_echo "$lt_cv_irix_exported_symbol" >&6; }
++ if test "$lt_cv_irix_exported_symbol" = yes; then
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
++ fi
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+@@ -9665,7 +10261,7 @@ rm -f core conftest.err conftest.$ac_objext \
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
++ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+@@ -9684,9 +10280,9 @@ rm -f core conftest.err conftest.$ac_objext \
+ no_undefined_flag=' -z defs'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
++ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+@@ -10262,8 +10858,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+ need_version=no
+ need_lib_prefix=no
+
+- case $GCC,$host_os in
+- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
++ case $GCC,$cc_basename in
++ yes,*)
++ # gcc
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+@@ -10296,13 +10893,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
++ dynamic_linker='Win32 ld.exe'
++ ;;
++
++ *,cl*)
++ # Native MSVC
++ libname_spec='$name'
++ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
++ library_names_spec='${libname}.dll.lib'
++
++ case $build_os in
++ mingw*)
++ sys_lib_search_path_spec=
++ lt_save_ifs=$IFS
++ IFS=';'
++ for lt_path in $LIB
++ do
++ IFS=$lt_save_ifs
++ # Let DOS variable expansion print the short 8.3 style file name.
++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
++ done
++ IFS=$lt_save_ifs
++ # Convert to MSYS style.
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
++ ;;
++ cygwin*)
++ # Convert to unix form, then to dos form, then back to unix form
++ # but this time dos style (no spaces!) so that the unix form looks
++ # like /cygdrive/c/PROGRA~1:/cygdr...
++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
++ ;;
++ *)
++ sys_lib_search_path_spec="$LIB"
++ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
++ # It is most probably a Windows format PATH.
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
++ else
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
++ fi
++ # FIXME: find the short name or the path components, as spaces are
++ # common. (e.g. "Program Files" -> "PROGRA~1")
++ ;;
++ esac
++
++ # DLL is installed to $(libdir)/../bin by postinstall_cmds
++ postinstall_cmds='base_file=`basename \${file}`~
++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
++ dldir=$destdir/`dirname \$dlpath`~
++ test -d \$dldir || mkdir -p \$dldir~
++ $install_prog $dir/$dlname \$dldir/$dlname'
++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
++ dlpath=$dir/\$dldll~
++ $RM \$dlpath'
++ shlibpath_overrides_runpath=yes
++ dynamic_linker='Win32 link.exe'
+ ;;
+
+ *)
++ # Assume MSVC wrapper
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
++ dynamic_linker='Win32 ld.exe'
+ ;;
+ esac
+- dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+@@ -10394,7 +11049,7 @@ haiku*)
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+ hardcode_into_libs=yes
+ ;;
+
+@@ -11190,7 +11845,7 @@ else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+-#line 11193 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+@@ -11234,10 +11889,10 @@ else
+ /* When -fvisbility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+-void fnord () __attribute__((visibility("default")));
++int fnord () __attribute__((visibility("default")));
+ #endif
+
+-void fnord () { int i=42; }
++int fnord () { return 42; }
+ int main ()
+ {
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+@@ -11296,7 +11951,7 @@ else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+-#line 11299 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+@@ -11340,10 +11995,10 @@ else
+ /* When -fvisbility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+-void fnord () __attribute__((visibility("default")));
++int fnord () __attribute__((visibility("default")));
+ #endif
+
+-void fnord () { int i=42; }
++int fnord () { return 42; }
+ int main ()
+ {
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+@@ -13309,13 +13964,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+ lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+ lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+ lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
++lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
++lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
+ reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+ reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+ OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+ deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+ file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
++file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
++want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
++DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
++sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
+ AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+ AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
++archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
+ STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+ RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+ old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+@@ -13330,14 +13992,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+ lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+ lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
++nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
++lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+ objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+ MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
++lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+ lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+ need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
++MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
+ DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+ NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+ LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+@@ -13370,12 +14035,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+ hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+ inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+ link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+-fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`'
+ always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+ export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+ exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+ include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+ prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
++postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
+ file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+ variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+ need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+@@ -13430,8 +14095,13 @@ reload_flag \
+ OBJDUMP \
+ deplibs_check_method \
+ file_magic_cmd \
++file_magic_glob \
++want_nocaseglob \
++DLLTOOL \
++sharedlib_from_linklib_cmd \
+ AR \
+ AR_FLAGS \
++archiver_list_spec \
+ STRIP \
+ RANLIB \
+ CC \
+@@ -13441,12 +14111,14 @@ lt_cv_sys_global_symbol_pipe \
+ lt_cv_sys_global_symbol_to_cdecl \
+ lt_cv_sys_global_symbol_to_c_name_address \
+ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
++nm_file_list_spec \
+ lt_prog_compiler_no_builtin_flag \
+-lt_prog_compiler_wl \
+ lt_prog_compiler_pic \
++lt_prog_compiler_wl \
+ lt_prog_compiler_static \
+ lt_cv_prog_compiler_c_o \
+ need_locks \
++MANIFEST_TOOL \
+ DSYMUTIL \
+ NMEDIT \
+ LIPO \
+@@ -13462,7 +14134,6 @@ no_undefined_flag \
+ hardcode_libdir_flag_spec \
+ hardcode_libdir_flag_spec_ld \
+ hardcode_libdir_separator \
+-fix_srcfile_path \
+ exclude_expsyms \
+ include_expsyms \
+ file_list_spec \
+@@ -13498,6 +14169,7 @@ module_cmds \
+ module_expsym_cmds \
+ export_symbols_cmds \
+ prelink_cmds \
++postlink_cmds \
+ postinstall_cmds \
+ postuninstall_cmds \
+ finish_cmds \
+@@ -14263,7 +14935,8 @@ $as_echo X"$file" |
+ # NOTE: Changes made to this file will be lost: look at ltmain.sh.
+ #
+ # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
++# Inc.
+ # Written by Gordon Matzigkeit, 1996
+ #
+ # This file is part of GNU Libtool.
+@@ -14366,19 +15039,42 @@ SP2NL=$lt_lt_SP2NL
+ # turn newlines into spaces.
+ NL2SP=$lt_lt_NL2SP
+
++# convert \$build file names to \$host format.
++to_host_file_cmd=$lt_cv_to_host_file_cmd
++
++# convert \$build files to toolchain format.
++to_tool_file_cmd=$lt_cv_to_tool_file_cmd
++
+ # An object symbol dumper.
+ OBJDUMP=$lt_OBJDUMP
+
+ # Method to check whether dependent libraries are shared objects.
+ deplibs_check_method=$lt_deplibs_check_method
+
+-# Command to use when deplibs_check_method == "file_magic".
++# Command to use when deplibs_check_method = "file_magic".
+ file_magic_cmd=$lt_file_magic_cmd
+
++# How to find potential files when deplibs_check_method = "file_magic".
++file_magic_glob=$lt_file_magic_glob
++
++# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
++want_nocaseglob=$lt_want_nocaseglob
++
++# DLL creation program.
++DLLTOOL=$lt_DLLTOOL
++
++# Command to associate shared and link libraries.
++sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
++
+ # The archiver.
+ AR=$lt_AR
++
++# Flags to create an archive.
+ AR_FLAGS=$lt_AR_FLAGS
+
++# How to feed a file listing to the archiver.
++archiver_list_spec=$lt_archiver_list_spec
++
+ # A symbol stripping program.
+ STRIP=$lt_STRIP
+
+@@ -14408,6 +15104,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+ # Transform the output of nm in a C name address pair when lib prefix is needed.
+ global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
++# Specify filename containing input files for \$NM.
++nm_file_list_spec=$lt_nm_file_list_spec
++
++# The root where to search for dependent libraries,and in which our libraries should be installed.
++lt_sysroot=$lt_sysroot
++
+ # The name of the directory that contains temporary libtool files.
+ objdir=$objdir
+
+@@ -14417,6 +15119,9 @@ MAGIC_CMD=$MAGIC_CMD
+ # Must we lock files when doing compilation?
+ need_locks=$lt_need_locks
+
++# Manifest tool.
++MANIFEST_TOOL=$lt_MANIFEST_TOOL
++
+ # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+ DSYMUTIL=$lt_DSYMUTIL
+
+@@ -14531,12 +15236,12 @@ with_gcc=$GCC
+ # Compiler flag to turn off builtin functions.
+ no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+-# How to pass a linker flag through the compiler.
+-wl=$lt_lt_prog_compiler_wl
+-
+ # Additional compiler flags for building library objects.
+ pic_flag=$lt_lt_prog_compiler_pic
+
++# How to pass a linker flag through the compiler.
++wl=$lt_lt_prog_compiler_wl
++
+ # Compiler flag to prevent dynamic linking.
+ link_static_flag=$lt_lt_prog_compiler_static
+
+@@ -14623,9 +15328,6 @@ inherit_rpath=$inherit_rpath
+ # Whether libtool must link a program against all its dependency libraries.
+ link_all_deplibs=$link_all_deplibs
+
+-# Fix the shell variable \$srcfile for the compiler.
+-fix_srcfile_path=$lt_fix_srcfile_path
+-
+ # Set to "yes" if exported symbols are required.
+ always_export_symbols=$always_export_symbols
+
+@@ -14641,6 +15343,9 @@ include_expsyms=$lt_include_expsyms
+ # Commands necessary for linking programs (against libraries) with templates.
+ prelink_cmds=$lt_prelink_cmds
+
++# Commands necessary for finishing linking programs.
++postlink_cmds=$lt_postlink_cmds
++
+ # Specify filename containing input files.
+ file_list_spec=$lt_file_list_spec
+
+@@ -14673,210 +15378,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
+- || (rm -f "$cfgfile"; exit 1)
+-
+- case $xsi_shell in
+- yes)
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_dirname file append nondir_replacement
+-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+-# otherwise set result to NONDIR_REPLACEMENT.
+-func_dirname ()
+-{
+- case ${1} in
+- */*) func_dirname_result="${1%/*}${2}" ;;
+- * ) func_dirname_result="${3}" ;;
+- esac
+-}
+-
+-# func_basename file
+-func_basename ()
+-{
+- func_basename_result="${1##*/}"
+-}
+-
+-# func_dirname_and_basename file append nondir_replacement
+-# perform func_basename and func_dirname in a single function
+-# call:
+-# dirname: Compute the dirname of FILE. If nonempty,
+-# add APPEND to the result, otherwise set result
+-# to NONDIR_REPLACEMENT.
+-# value returned in "$func_dirname_result"
+-# basename: Compute filename of FILE.
+-# value retuned in "$func_basename_result"
+-# Implementation must be kept synchronized with func_dirname
+-# and func_basename. For efficiency, we do not delegate to
+-# those functions but instead duplicate the functionality here.
+-func_dirname_and_basename ()
+-{
+- case ${1} in
+- */*) func_dirname_result="${1%/*}${2}" ;;
+- * ) func_dirname_result="${3}" ;;
+- esac
+- func_basename_result="${1##*/}"
+-}
+-
+-# func_stripname prefix suffix name
+-# strip PREFIX and SUFFIX off of NAME.
+-# PREFIX and SUFFIX must not contain globbing or regex special
+-# characters, hashes, percent signs, but SUFFIX may contain a leading
+-# dot (in which case that matches only a dot).
+-func_stripname ()
+-{
+- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+- # positional parameters, so assign one to ordinary parameter first.
+- func_stripname_result=${3}
+- func_stripname_result=${func_stripname_result#"${1}"}
+- func_stripname_result=${func_stripname_result%"${2}"}
+-}
+-
+-# func_opt_split
+-func_opt_split ()
+-{
+- func_opt_split_opt=${1%%=*}
+- func_opt_split_arg=${1#*=}
+-}
+-
+-# func_lo2o object
+-func_lo2o ()
+-{
+- case ${1} in
+- *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+- *) func_lo2o_result=${1} ;;
+- esac
+-}
+-
+-# func_xform libobj-or-source
+-func_xform ()
+-{
+- func_xform_result=${1%.*}.lo
+-}
+-
+-# func_arith arithmetic-term...
+-func_arith ()
+-{
+- func_arith_result=$(( $* ))
+-}
+-
+-# func_len string
+-# STRING may not start with a hyphen.
+-func_len ()
+-{
+- func_len_result=${#1}
+-}
+-
+-_LT_EOF
+- ;;
+- *) # Bourne compatible functions.
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_dirname file append nondir_replacement
+-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+-# otherwise set result to NONDIR_REPLACEMENT.
+-func_dirname ()
+-{
+- # Extract subdirectory from the argument.
+- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
+- if test "X$func_dirname_result" = "X${1}"; then
+- func_dirname_result="${3}"
+- else
+- func_dirname_result="$func_dirname_result${2}"
+- fi
+-}
+-
+-# func_basename file
+-func_basename ()
+-{
+- func_basename_result=`$ECHO "${1}" | $SED "$basename"`
+-}
+-
+-
+-# func_stripname prefix suffix name
+-# strip PREFIX and SUFFIX off of NAME.
+-# PREFIX and SUFFIX must not contain globbing or regex special
+-# characters, hashes, percent signs, but SUFFIX may contain a leading
+-# dot (in which case that matches only a dot).
+-# func_strip_suffix prefix name
+-func_stripname ()
+-{
+- case ${2} in
+- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+- esac
+-}
+-
+-# sed scripts:
+-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
+-my_sed_long_arg='1s/^-[^=]*=//'
+-
+-# func_opt_split
+-func_opt_split ()
+-{
+- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
+- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
+-}
+-
+-# func_lo2o object
+-func_lo2o ()
+-{
+- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
+-}
+-
+-# func_xform libobj-or-source
+-func_xform ()
+-{
+- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
+-}
+-
+-# func_arith arithmetic-term...
+-func_arith ()
+-{
+- func_arith_result=`expr "$@"`
+-}
+-
+-# func_len string
+-# STRING may not start with a hyphen.
+-func_len ()
+-{
+- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
+-}
+-
+-_LT_EOF
+-esac
+-
+-case $lt_shell_append in
+- yes)
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_append var value
+-# Append VALUE to the end of shell variable VAR.
+-func_append ()
+-{
+- eval "$1+=\$2"
+-}
+-_LT_EOF
+- ;;
+- *)
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_append var value
+-# Append VALUE to the end of shell variable VAR.
+-func_append ()
+-{
+- eval "$1=\$$1\$2"
+-}
+-
+-_LT_EOF
+- ;;
+- esac
+-
+-
+- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
+- || (rm -f "$cfgfile"; exit 1)
+-
+- mv -f "$cfgfile" "$ofile" ||
++ sed '$q' "$ltmain" >> "$cfgfile" \
++ || (rm -f "$cfgfile"; exit 1)
++
++ if test x"$xsi_shell" = xyes; then
++ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
++func_dirname ()\
++{\
++\ case ${1} in\
++\ */*) func_dirname_result="${1%/*}${2}" ;;\
++\ * ) func_dirname_result="${3}" ;;\
++\ esac\
++} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_basename ()$/,/^} # func_basename /c\
++func_basename ()\
++{\
++\ func_basename_result="${1##*/}"\
++} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
++func_dirname_and_basename ()\
++{\
++\ case ${1} in\
++\ */*) func_dirname_result="${1%/*}${2}" ;;\
++\ * ) func_dirname_result="${3}" ;;\
++\ esac\
++\ func_basename_result="${1##*/}"\
++} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
++func_stripname ()\
++{\
++\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
++\ # positional parameters, so assign one to ordinary parameter first.\
++\ func_stripname_result=${3}\
++\ func_stripname_result=${func_stripname_result#"${1}"}\
++\ func_stripname_result=${func_stripname_result%"${2}"}\
++} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
++func_split_long_opt ()\
++{\
++\ func_split_long_opt_name=${1%%=*}\
++\ func_split_long_opt_arg=${1#*=}\
++} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
++func_split_short_opt ()\
++{\
++\ func_split_short_opt_arg=${1#??}\
++\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
++} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
++func_lo2o ()\
++{\
++\ case ${1} in\
++\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
++\ *) func_lo2o_result=${1} ;;\
++\ esac\
++} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_xform ()$/,/^} # func_xform /c\
++func_xform ()\
++{\
++ func_xform_result=${1%.*}.lo\
++} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_arith ()$/,/^} # func_arith /c\
++func_arith ()\
++{\
++ func_arith_result=$(( $* ))\
++} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_len ()$/,/^} # func_len /c\
++func_len ()\
++{\
++ func_len_result=${#1}\
++} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++fi
++
++if test x"$lt_shell_append" = xyes; then
++ sed -e '/^func_append ()$/,/^} # func_append /c\
++func_append ()\
++{\
++ eval "${1}+=\\${2}"\
++} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
++func_append_quoted ()\
++{\
++\ func_quote_for_eval "${2}"\
++\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
++} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ # Save a `func_append' function call where possible by direct use of '+='
++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++ test 0 -eq $? || _lt_function_replace_fail=:
++else
++ # Save a `func_append' function call even when '+=' is not available
++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++ test 0 -eq $? || _lt_function_replace_fail=:
++fi
++
++if test x"$_lt_function_replace_fail" = x":"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
++$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
++fi
++
++
++ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+
+diff --git a/ld/configure b/ld/configure
+index 1c872c0db5f..fe938e6c99f 100755
+--- a/ld/configure
++++ b/ld/configure
+@@ -691,8 +691,11 @@ OTOOL
+ LIPO
+ NMEDIT
+ DSYMUTIL
++MANIFEST_TOOL
+ RANLIB
++ac_ct_AR
+ AR
++DLLTOOL
+ OBJDUMP
+ LN_S
+ NM
+@@ -819,6 +822,7 @@ enable_static
+ with_pic
+ enable_fast_install
+ with_gnu_ld
++with_libtool_sysroot
+ enable_libtool_lock
+ enable_plugins
+ enable_largefile
+@@ -1520,6 +1524,8 @@ Optional Packages:
+ --with-pic try to use only PIC/non-PIC objects [default=use
+ both]
+ --with-gnu-ld assume the C compiler uses GNU ld [default=no]
++ --with-libtool-sysroot=DIR Search for dependent libraries within DIR
++ (or the compiler's sysroot if not specified).
+ --with-lib-path=dir1:dir2... set default LIB_PATH
+ --with-sysroot=DIR Search for usr/lib et al within DIR.
+ --with-system-zlib use installed libz
+@@ -5973,8 +5979,8 @@ esac
+
+
+
+-macro_version='2.2.7a'
+-macro_revision='1.3134'
++macro_version='2.4'
++macro_revision='1.3293'
+
+
+
+@@ -6014,7 +6020,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+ $as_echo_n "checking how to print strings... " >&6; }
+ # Test print first, because it will be a builtin if present.
+-if test "X`print -r -- -n 2>/dev/null`" = X-n && \
++if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='print -r --'
+ elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+@@ -6700,8 +6706,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
+ # Try some XSI features
+ xsi_shell=no
+ ( _lt_dummy="a/b/c"
+- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
+- = c,a/b,, \
++ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
++ = c,a/b,b/c, \
+ && eval 'test $(( 1 + 1 )) -eq 2 \
+ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+ && xsi_shell=yes
+@@ -6750,6 +6756,80 @@ esac
+
+
+
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
++$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
++if ${lt_cv_to_host_file_cmd+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ case $host in
++ *-*-mingw* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
++ ;;
++ *-*-cygwin* )
++ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
++ ;;
++ * ) # otherwise, assume *nix
++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
++ ;;
++ esac
++ ;;
++ *-*-cygwin* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
++ ;;
++ *-*-cygwin* )
++ lt_cv_to_host_file_cmd=func_convert_file_noop
++ ;;
++ * ) # otherwise, assume *nix
++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
++ ;;
++ esac
++ ;;
++ * ) # unhandled hosts (and "normal" native builds)
++ lt_cv_to_host_file_cmd=func_convert_file_noop
++ ;;
++esac
++
++fi
++
++to_host_file_cmd=$lt_cv_to_host_file_cmd
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
++$as_echo "$lt_cv_to_host_file_cmd" >&6; }
++
++
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
++$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
++if ${lt_cv_to_tool_file_cmd+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ #assume ordinary cross tools, or native build.
++lt_cv_to_tool_file_cmd=func_convert_file_noop
++case $host in
++ *-*-mingw* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
++ ;;
++ esac
++ ;;
++esac
++
++fi
++
++to_tool_file_cmd=$lt_cv_to_tool_file_cmd
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
++$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
++
++
++
++
++
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+ $as_echo_n "checking for $LD option to reload object files... " >&6; }
+ if ${lt_cv_ld_reload_flag+:} false; then :
+@@ -6766,6 +6846,11 @@ case $reload_flag in
+ esac
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ case $host_os in
++ cygwin* | mingw* | pw32* | cegcc*)
++ if test "$GCC" != yes; then
++ reload_cmds=false
++ fi
++ ;;
+ darwin*)
+ if test "$GCC" = yes; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+@@ -6934,7 +7019,8 @@ mingw* | pw32*)
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
++ # Keep this pattern in sync with the one in func_win32_libid.
++ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+@@ -7088,6 +7174,21 @@ esac
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+ $as_echo "$lt_cv_deplibs_check_method" >&6; }
++
++file_magic_glob=
++want_nocaseglob=no
++if test "$build" = "$host"; then
++ case $host_os in
++ mingw* | pw32*)
++ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
++ want_nocaseglob=yes
++ else
++ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
++ fi
++ ;;
++ esac
++fi
++
+ file_magic_cmd=$lt_cv_file_magic_cmd
+ deplibs_check_method=$lt_cv_deplibs_check_method
+ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+@@ -7103,9 +7204,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
++
++
++
++
++
++
++
++
++
++
++if test -n "$ac_tool_prefix"; then
++ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
++set dummy ${ac_tool_prefix}dlltool; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_DLLTOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$DLLTOOL"; then
++ ac_cv_prog_DLLTOOL="$DLLTOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++DLLTOOL=$ac_cv_prog_DLLTOOL
++if test -n "$DLLTOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
++$as_echo "$DLLTOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++
++fi
++if test -z "$ac_cv_prog_DLLTOOL"; then
++ ac_ct_DLLTOOL=$DLLTOOL
++ # Extract the first word of "dlltool", so it can be a program name with args.
++set dummy dlltool; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$ac_ct_DLLTOOL"; then
++ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_ac_ct_DLLTOOL="dlltool"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
++if test -n "$ac_ct_DLLTOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
++$as_echo "$ac_ct_DLLTOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++ if test "x$ac_ct_DLLTOOL" = x; then
++ DLLTOOL="false"
++ else
++ case $cross_compiling:$ac_tool_warned in
++yes:)
++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
++ac_tool_warned=yes ;;
++esac
++ DLLTOOL=$ac_ct_DLLTOOL
++ fi
++else
++ DLLTOOL="$ac_cv_prog_DLLTOOL"
++fi
++
++test -z "$DLLTOOL" && DLLTOOL=dlltool
++
++
++
++
++
++
++
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
++$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
++if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_sharedlib_from_linklib_cmd='unknown'
++
++case $host_os in
++cygwin* | mingw* | pw32* | cegcc*)
++ # two different shell functions defined in ltmain.sh
++ # decide which to use based on capabilities of $DLLTOOL
++ case `$DLLTOOL --help 2>&1` in
++ *--identify-strict*)
++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
++ ;;
++ *)
++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
++ ;;
++ esac
++ ;;
++*)
++ # fallback: assume linklib IS sharedlib
++ lt_cv_sharedlib_from_linklib_cmd="$ECHO"
++ ;;
++esac
++
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
++$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
++sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
++test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
++
++
++
++
++
++
++
+ if test -n "$ac_tool_prefix"; then
+- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}ar; ac_word=$2
++ for ac_prog in ar
++ 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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+@@ -7121,7 +7375,7 @@ do
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+- ac_cv_prog_AR="${ac_tool_prefix}ar"
++ ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+@@ -7141,11 +7395,15 @@ $as_echo "no" >&6; }
+ fi
+
+
++ test -n "$AR" && break
++ done
+ fi
+-if test -z "$ac_cv_prog_AR"; then
++if test -z "$AR"; then
+ ac_ct_AR=$AR
+- # Extract the first word of "ar", so it can be a program name with args.
+-set dummy ar; ac_word=$2
++ for ac_prog in ar
++do
++ # Extract the first word of "$ac_prog", so it can be a program name with args.
++set dummy $ac_prog; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+@@ -7161,7 +7419,7 @@ do
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+- ac_cv_prog_ac_ct_AR="ar"
++ ac_cv_prog_ac_ct_AR="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+@@ -7180,6 +7438,10 @@ else
+ $as_echo "no" >&6; }
+ fi
+
++
++ test -n "$ac_ct_AR" && break
++done
++
+ if test "x$ac_ct_AR" = x; then
+ AR="false"
+ else
+@@ -7191,12 +7453,12 @@ ac_tool_warned=yes ;;
+ esac
+ AR=$ac_ct_AR
+ fi
+-else
+- AR="$ac_cv_prog_AR"
+ fi
+
+-test -z "$AR" && AR=ar
+-test -z "$AR_FLAGS" && AR_FLAGS=cru
++: ${AR=ar}
++: ${AR_FLAGS=cru}
++
++
+
+
+
+@@ -7206,6 +7468,62 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
+
+
+
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
++$as_echo_n "checking for archiver @FILE support... " >&6; }
++if ${lt_cv_ar_at_file+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_ar_at_file=no
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++
++int
++main ()
++{
++
++ ;
++ return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++ echo conftest.$ac_objext > conftest.lst
++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
++ (eval $lt_ar_try) 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }
++ if test "$ac_status" -eq 0; then
++ # Ensure the archiver fails upon bogus file names.
++ rm -f conftest.$ac_objext libconftest.a
++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
++ (eval $lt_ar_try) 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }
++ if test "$ac_status" -ne 0; then
++ lt_cv_ar_at_file=@
++ fi
++ fi
++ rm -f conftest.* libconftest.a
++
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
++$as_echo "$lt_cv_ar_at_file" >&6; }
++
++if test "x$lt_cv_ar_at_file" = xno; then
++ archiver_list_spec=
++else
++ archiver_list_spec=$lt_cv_ar_at_file
++fi
++
++
++
++
++
+
+
+ if test -n "$ac_tool_prefix"; then
+@@ -7542,8 +7860,8 @@ esac
+ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+ # Transform an extracted symbol line into symbol name and symbol address
+-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
+-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
++lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
+
+ # Handle CRLF in mingw tool chain
+ opt_cr=
+@@ -7579,6 +7897,7 @@ for ac_symprfx in "" "_"; do
+ else
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
++ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+@@ -7620,6 +7939,18 @@ _LT_EOF
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
++#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
++/* DATA imports from DLLs on WIN32 con't be const, because runtime
++ relocations are performed -- see ld's documentation on pseudo-relocs. */
++# define LT_DLSYM_CONST
++#elif defined(__osf__)
++/* This system does not cope well with relocations in const data. */
++# define LT_DLSYM_CONST
++#else
++# define LT_DLSYM_CONST const
++#endif
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+@@ -7631,7 +7962,7 @@ _LT_EOF
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+ /* The mapping between symbol names and symbols. */
+-const struct {
++LT_DLSYM_CONST struct {
+ const char *name;
+ void *address;
+ }
+@@ -7657,8 +7988,8 @@ static const void *lt_preloaded_setup() {
+ _LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+- lt_save_LIBS="$LIBS"
+- lt_save_CFLAGS="$CFLAGS"
++ lt_globsym_save_LIBS=$LIBS
++ lt_globsym_save_CFLAGS=$CFLAGS
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+@@ -7668,8 +7999,8 @@ _LT_EOF
+ test $ac_status = 0; } && test -s conftest${ac_exeext}; then
+ pipe_works=yes
+ fi
+- LIBS="$lt_save_LIBS"
+- CFLAGS="$lt_save_CFLAGS"
++ LIBS=$lt_globsym_save_LIBS
++ CFLAGS=$lt_globsym_save_CFLAGS
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+@@ -7706,6 +8037,19 @@ else
+ $as_echo "ok" >&6; }
+ fi
+
++# Response file support.
++if test "$lt_cv_nm_interface" = "MS dumpbin"; then
++ nm_file_list_spec='@'
++elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
++ nm_file_list_spec='@'
++fi
++
++
++
++
++
++
++
+
+
+
+@@ -7722,6 +8066,42 @@ fi
+
+
+
++
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
++$as_echo_n "checking for sysroot... " >&6; }
++
++# Check whether --with-libtool-sysroot was given.
++if test "${with_libtool_sysroot+set}" = set; then :
++ withval=$with_libtool_sysroot;
++else
++ with_libtool_sysroot=no
++fi
++
++
++lt_sysroot=
++case ${with_libtool_sysroot} in #(
++ yes)
++ if test "$GCC" = yes; then
++ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
++ fi
++ ;; #(
++ /*)
++ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
++ ;; #(
++ no|'')
++ ;; #(
++ *)
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5
++$as_echo "${with_libtool_sysroot}" >&6; }
++ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
++ ;;
++esac
++
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
++$as_echo "${lt_sysroot:-no}" >&6; }
+
+
+
+@@ -7933,6 +8313,123 @@ esac
+
+ need_locks="$enable_libtool_lock"
+
++if test -n "$ac_tool_prefix"; then
++ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
++set dummy ${ac_tool_prefix}mt; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$MANIFEST_TOOL"; then
++ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
++if test -n "$MANIFEST_TOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
++$as_echo "$MANIFEST_TOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++
++fi
++if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
++ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
++ # Extract the first word of "mt", so it can be a program name with args.
++set dummy mt; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$ac_ct_MANIFEST_TOOL"; then
++ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
++if test -n "$ac_ct_MANIFEST_TOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
++$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++ if test "x$ac_ct_MANIFEST_TOOL" = x; then
++ MANIFEST_TOOL=":"
++ else
++ case $cross_compiling:$ac_tool_warned in
++yes:)
++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
++ac_tool_warned=yes ;;
++esac
++ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
++ fi
++else
++ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
++fi
++
++test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
++$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
++if ${lt_cv_path_mainfest_tool+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_path_mainfest_tool=no
++ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
++ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
++ cat conftest.err >&5
++ if $GREP 'Manifest Tool' conftest.out > /dev/null; then
++ lt_cv_path_mainfest_tool=yes
++ fi
++ rm -f conftest*
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
++$as_echo "$lt_cv_path_mainfest_tool" >&6; }
++if test "x$lt_cv_path_mainfest_tool" != xyes; then
++ MANIFEST_TOOL=:
++fi
++
++
++
++
++
+
+ case $host_os in
+ rhapsody* | darwin*)
+@@ -8496,6 +8993,8 @@ _LT_EOF
+ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+ echo "$AR cru libconftest.a conftest.o" >&5
+ $AR cru libconftest.a conftest.o 2>&5
++ echo "$RANLIB libconftest.a" >&5
++ $RANLIB libconftest.a 2>&5
+ cat > conftest.c << _LT_EOF
+ int main() { return 0;}
+ _LT_EOF
+@@ -8564,6 +9063,16 @@ done
+
+
+
++func_stripname_cnf ()
++{
++ case ${2} in
++ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
++ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
++ esac
++} # func_stripname_cnf
++
++
++
+
+
+ # Set options
+@@ -8692,7 +9201,8 @@ fi
+ LIBTOOL_DEPS="$ltmain"
+
+ # Always use our own libtool.
+-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
++LIBTOOL='$(SHELL) $(top_builddir)'
++LIBTOOL="$LIBTOOL/${host_alias}-libtool"
+
+
+
+@@ -8781,7 +9291,7 @@ aix3*)
+ esac
+
+ # Global variables:
+-ofile=libtool
++ofile=${host_alias}-libtool
+ can_build_shared=yes
+
+ # All known linkers require a `.a' archive for static linking (except MSVC,
+@@ -9079,8 +9589,6 @@ fi
+ lt_prog_compiler_pic=
+ lt_prog_compiler_static=
+
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+
+ if test "$GCC" = yes; then
+ lt_prog_compiler_wl='-Wl,'
+@@ -9246,6 +9754,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+ lt_prog_compiler_pic='--shared'
+ lt_prog_compiler_static='--static'
+ ;;
++ nagfor*)
++ # NAG Fortran compiler
++ lt_prog_compiler_wl='-Wl,-Wl,,'
++ lt_prog_compiler_pic='-PIC'
++ lt_prog_compiler_static='-Bstatic'
++ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+@@ -9308,7 +9822,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+- f77* | f90* | f95*)
++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+@@ -9365,13 +9879,17 @@ case $host_os in
+ lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+ ;;
+ esac
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
+-$as_echo "$lt_prog_compiler_pic" >&6; }
+-
+-
+-
+-
+
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
++$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
++if ${lt_cv_prog_compiler_pic+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
++$as_echo "$lt_cv_prog_compiler_pic" >&6; }
++lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
+
+ #
+ # Check to make sure the PIC flag actually works.
+@@ -9432,6 +9950,11 @@ fi
+
+
+
++
++
++
++
++
+ #
+ # Check to make sure the static flag actually works.
+ #
+@@ -9782,7 +10305,8 @@ _LT_EOF
+ allow_undefined_flag=unsupported
+ always_export_symbols=no
+ enable_shared_with_static_runtimes=yes
+- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
++ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+@@ -9881,12 +10405,12 @@ _LT_EOF
+ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_flag_spec_ld='-rpath $libdir'
+- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+@@ -9900,8 +10424,8 @@ _LT_EOF
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+@@ -9919,8 +10443,8 @@ _LT_EOF
+
+ _LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+@@ -9966,8 +10490,8 @@ _LT_EOF
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+@@ -10097,7 +10621,13 @@ _LT_EOF
+ allow_undefined_flag='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++ if test "${lt_cv_aix_libpath+set}" = set; then
++ aix_libpath=$lt_cv_aix_libpath
++else
++ if ${lt_cv_aix_libpath_+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ int
+@@ -10110,22 +10640,29 @@ main ()
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+
+-lt_aix_libpath_sed='
+- /Import File Strings/,/^$/ {
+- /^0/ {
+- s/^0 *\(.*\)$/\1/
+- p
+- }
+- }'
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-# Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then
+- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-fi
++ lt_aix_libpath_sed='
++ /Import File Strings/,/^$/ {
++ /^0/ {
++ s/^0 *\([^ ]*\) *$/\1/
++ p
++ }
++ }'
++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ # Check for a 64-bit object if we didn't find anything.
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ fi
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_="/usr/lib:/lib"
++ fi
++
++fi
++
++ aix_libpath=$lt_cv_aix_libpath_
++fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+@@ -10137,7 +10674,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++ if test "${lt_cv_aix_libpath+set}" = set; then
++ aix_libpath=$lt_cv_aix_libpath
++else
++ if ${lt_cv_aix_libpath_+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ int
+@@ -10150,22 +10693,29 @@ main ()
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+
+-lt_aix_libpath_sed='
+- /Import File Strings/,/^$/ {
+- /^0/ {
+- s/^0 *\(.*\)$/\1/
+- p
+- }
+- }'
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-# Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then
+- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-fi
++ lt_aix_libpath_sed='
++ /Import File Strings/,/^$/ {
++ /^0/ {
++ s/^0 *\([^ ]*\) *$/\1/
++ p
++ }
++ }'
++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ # Check for a 64-bit object if we didn't find anything.
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ fi
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_="/usr/lib:/lib"
++ fi
++
++fi
++
++ aix_libpath=$lt_cv_aix_libpath_
++fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+@@ -10209,21 +10759,64 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+- # no search path for DLLs.
+- hardcode_libdir_flag_spec=' '
+- allow_undefined_flag=unsupported
+- # Tell ltmain to make .lib files, not .a files.
+- libext=lib
+- # Tell ltmain to make .dll files, not .so files.
+- shrext_cmds=".dll"
+- # FIXME: Setting linknames here is a bad hack.
+- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+- # The linker will automatically build a .lib file if we build a DLL.
+- old_archive_from_new_cmds='true'
+- # FIXME: Should let the user specify the lib program.
+- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+- fix_srcfile_path='`cygpath -w "$srcfile"`'
+- enable_shared_with_static_runtimes=yes
++ # no search path for DLLs.
++ case $cc_basename in
++ cl*)
++ # Native MSVC
++ hardcode_libdir_flag_spec=' '
++ allow_undefined_flag=unsupported
++ always_export_symbols=yes
++ file_list_spec='@'
++ # Tell ltmain to make .lib files, not .a files.
++ libext=lib
++ # Tell ltmain to make .dll files, not .so files.
++ shrext_cmds=".dll"
++ # FIXME: Setting linknames here is a bad hack.
++ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
++ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
++ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
++ else
++ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
++ fi~
++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
++ linknames='
++ # The linker will not automatically build a static lib if we build a DLL.
++ # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
++ enable_shared_with_static_runtimes=yes
++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
++ # Don't use ranlib
++ old_postinstall_cmds='chmod 644 $oldlib'
++ postlink_cmds='lt_outputfile="@OUTPUT@"~
++ lt_tool_outputfile="@TOOL_OUTPUT@"~
++ case $lt_outputfile in
++ *.exe|*.EXE) ;;
++ *)
++ lt_outputfile="$lt_outputfile.exe"
++ lt_tool_outputfile="$lt_tool_outputfile.exe"
++ ;;
++ esac~
++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
++ $RM "$lt_outputfile.manifest";
++ fi'
++ ;;
++ *)
++ # Assume MSVC wrapper
++ hardcode_libdir_flag_spec=' '
++ allow_undefined_flag=unsupported
++ # Tell ltmain to make .lib files, not .a files.
++ libext=lib
++ # Tell ltmain to make .dll files, not .so files.
++ shrext_cmds=".dll"
++ # FIXME: Setting linknames here is a bad hack.
++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
++ # The linker will automatically build a .lib file if we build a DLL.
++ old_archive_from_new_cmds='true'
++ # FIXME: Should let the user specify the lib program.
++ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
++ enable_shared_with_static_runtimes=yes
++ ;;
++ esac
+ ;;
+
+ darwin* | rhapsody*)
+@@ -10284,7 +10877,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+@@ -10292,7 +10885,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hpux9*)
+ if test "$GCC" = yes; then
+- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
++ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+@@ -10308,7 +10901,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hpux10*)
+ if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+@@ -10332,10 +10925,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+@@ -10414,23 +11007,36 @@ fi
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+- save_LDFLAGS="$LDFLAGS"
+- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++ # This should be the same for all languages, so no per-tag cache variable.
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
++$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
++if ${lt_cv_irix_exported_symbol+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ save_LDFLAGS="$LDFLAGS"
++ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+-int foo(void) {}
++int foo (void) { return 0; }
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+-
++ lt_cv_irix_exported_symbol=yes
++else
++ lt_cv_irix_exported_symbol=no
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+- LDFLAGS="$save_LDFLAGS"
++ LDFLAGS="$save_LDFLAGS"
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
++$as_echo "$lt_cv_irix_exported_symbol" >&6; }
++ if test "$lt_cv_irix_exported_symbol" = yes; then
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
++ fi
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+@@ -10515,7 +11121,7 @@ rm -f core conftest.err conftest.$ac_objext \
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
++ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+@@ -10534,9 +11140,9 @@ rm -f core conftest.err conftest.$ac_objext \
+ no_undefined_flag=' -z defs'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
++ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+@@ -11112,8 +11718,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+ need_version=no
+ need_lib_prefix=no
+
+- case $GCC,$host_os in
+- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
++ case $GCC,$cc_basename in
++ yes,*)
++ # gcc
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+@@ -11146,13 +11753,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
++ dynamic_linker='Win32 ld.exe'
++ ;;
++
++ *,cl*)
++ # Native MSVC
++ libname_spec='$name'
++ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
++ library_names_spec='${libname}.dll.lib'
++
++ case $build_os in
++ mingw*)
++ sys_lib_search_path_spec=
++ lt_save_ifs=$IFS
++ IFS=';'
++ for lt_path in $LIB
++ do
++ IFS=$lt_save_ifs
++ # Let DOS variable expansion print the short 8.3 style file name.
++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
++ done
++ IFS=$lt_save_ifs
++ # Convert to MSYS style.
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
++ ;;
++ cygwin*)
++ # Convert to unix form, then to dos form, then back to unix form
++ # but this time dos style (no spaces!) so that the unix form looks
++ # like /cygdrive/c/PROGRA~1:/cygdr...
++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
++ ;;
++ *)
++ sys_lib_search_path_spec="$LIB"
++ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
++ # It is most probably a Windows format PATH.
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
++ else
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
++ fi
++ # FIXME: find the short name or the path components, as spaces are
++ # common. (e.g. "Program Files" -> "PROGRA~1")
++ ;;
++ esac
++
++ # DLL is installed to $(libdir)/../bin by postinstall_cmds
++ postinstall_cmds='base_file=`basename \${file}`~
++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
++ dldir=$destdir/`dirname \$dlpath`~
++ test -d \$dldir || mkdir -p \$dldir~
++ $install_prog $dir/$dlname \$dldir/$dlname'
++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
++ dlpath=$dir/\$dldll~
++ $RM \$dlpath'
++ shlibpath_overrides_runpath=yes
++ dynamic_linker='Win32 link.exe'
+ ;;
+
+ *)
++ # Assume MSVC wrapper
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
++ dynamic_linker='Win32 ld.exe'
+ ;;
+ esac
+- dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+@@ -11244,7 +11909,7 @@ haiku*)
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+ hardcode_into_libs=yes
+ ;;
+
+@@ -12040,7 +12705,7 @@ else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+-#line 12040 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+@@ -12084,10 +12749,10 @@ else
+ /* When -fvisbility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+-void fnord () __attribute__((visibility("default")));
++int fnord () __attribute__((visibility("default")));
+ #endif
+
+-void fnord () { int i=42; }
++int fnord () { return 42; }
+ int main ()
+ {
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+@@ -12146,7 +12811,7 @@ else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+-#line 12146 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+@@ -12190,10 +12855,10 @@ else
+ /* When -fvisbility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+-void fnord () __attribute__((visibility("default")));
++int fnord () __attribute__((visibility("default")));
+ #endif
+
+-void fnord () { int i=42; }
++int fnord () { return 42; }
+ int main ()
+ {
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+@@ -12585,6 +13250,7 @@ $RM -r conftest*
+
+ # Allow CC to be a program name with arguments.
+ lt_save_CC=$CC
++ lt_save_CFLAGS=$CFLAGS
+ lt_save_LD=$LD
+ lt_save_GCC=$GCC
+ GCC=$GXX
+@@ -12602,6 +13268,7 @@ $RM -r conftest*
+ fi
+ test -z "${LDCXX+set}" || LD=$LDCXX
+ CC=${CXX-"c++"}
++ CFLAGS=$CXXFLAGS
+ compiler=$CC
+ compiler_CXX=$CC
+ for cc_temp in $compiler""; do
+@@ -12884,7 +13551,13 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
+ allow_undefined_flag_CXX='-berok'
+ # Determine the default libpath from the value encoded in an empty
+ # executable.
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++ if test "${lt_cv_aix_libpath+set}" = set; then
++ aix_libpath=$lt_cv_aix_libpath
++else
++ if ${lt_cv_aix_libpath__CXX+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ int
+@@ -12897,22 +13570,29 @@ main ()
+ _ACEOF
+ if ac_fn_cxx_try_link "$LINENO"; then :
+
+-lt_aix_libpath_sed='
+- /Import File Strings/,/^$/ {
+- /^0/ {
+- s/^0 *\(.*\)$/\1/
+- p
+- }
+- }'
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-# Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then
+- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-fi
++ lt_aix_libpath_sed='
++ /Import File Strings/,/^$/ {
++ /^0/ {
++ s/^0 *\([^ ]*\) *$/\1/
++ p
++ }
++ }'
++ lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ # Check for a 64-bit object if we didn't find anything.
++ if test -z "$lt_cv_aix_libpath__CXX"; then
++ lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ fi
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
++ if test -z "$lt_cv_aix_libpath__CXX"; then
++ lt_cv_aix_libpath__CXX="/usr/lib:/lib"
++ fi
++
++fi
++
++ aix_libpath=$lt_cv_aix_libpath__CXX
++fi
+
+ hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+@@ -12925,7 +13605,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++ if test "${lt_cv_aix_libpath+set}" = set; then
++ aix_libpath=$lt_cv_aix_libpath
++else
++ if ${lt_cv_aix_libpath__CXX+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ int
+@@ -12938,22 +13624,29 @@ main ()
+ _ACEOF
+ if ac_fn_cxx_try_link "$LINENO"; then :
+
+-lt_aix_libpath_sed='
+- /Import File Strings/,/^$/ {
+- /^0/ {
+- s/^0 *\(.*\)$/\1/
+- p
+- }
+- }'
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-# Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then
+- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-fi
++ lt_aix_libpath_sed='
++ /Import File Strings/,/^$/ {
++ /^0/ {
++ s/^0 *\([^ ]*\) *$/\1/
++ p
++ }
++ }'
++ lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ # Check for a 64-bit object if we didn't find anything.
++ if test -z "$lt_cv_aix_libpath__CXX"; then
++ lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ fi
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
++ if test -z "$lt_cv_aix_libpath__CXX"; then
++ lt_cv_aix_libpath__CXX="/usr/lib:/lib"
++ fi
++
++fi
++
++ aix_libpath=$lt_cv_aix_libpath__CXX
++fi
+
+ hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+@@ -12996,29 +13689,75 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+- # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
+- # as there is no search path for DLLs.
+- hardcode_libdir_flag_spec_CXX='-L$libdir'
+- export_dynamic_flag_spec_CXX='${wl}--export-all-symbols'
+- allow_undefined_flag_CXX=unsupported
+- always_export_symbols_CXX=no
+- enable_shared_with_static_runtimes_CXX=yes
+-
+- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+- # If the export-symbols file already is a .def file (1st line
+- # is EXPORTS), use it as is; otherwise, prepend...
+- archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+- cp $export_symbols $output_objdir/$soname.def;
+- else
+- echo EXPORTS > $output_objdir/$soname.def;
+- cat $export_symbols >> $output_objdir/$soname.def;
+- fi~
+- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+- else
+- ld_shlibs_CXX=no
+- fi
+- ;;
++ case $GXX,$cc_basename in
++ ,cl* | no,cl*)
++ # Native MSVC
++ # hardcode_libdir_flag_spec is actually meaningless, as there is
++ # no search path for DLLs.
++ hardcode_libdir_flag_spec_CXX=' '
++ allow_undefined_flag_CXX=unsupported
++ always_export_symbols_CXX=yes
++ file_list_spec_CXX='@'
++ # Tell ltmain to make .lib files, not .a files.
++ libext=lib
++ # Tell ltmain to make .dll files, not .so files.
++ shrext_cmds=".dll"
++ # FIXME: Setting linknames here is a bad hack.
++ archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
++ archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
++ $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
++ else
++ $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
++ fi~
++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
++ linknames='
++ # The linker will not automatically build a static lib if we build a DLL.
++ # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true'
++ enable_shared_with_static_runtimes_CXX=yes
++ # Don't use ranlib
++ old_postinstall_cmds_CXX='chmod 644 $oldlib'
++ postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~
++ lt_tool_outputfile="@TOOL_OUTPUT@"~
++ case $lt_outputfile in
++ *.exe|*.EXE) ;;
++ *)
++ lt_outputfile="$lt_outputfile.exe"
++ lt_tool_outputfile="$lt_tool_outputfile.exe"
++ ;;
++ esac~
++ func_to_tool_file "$lt_outputfile"~
++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
++ $RM "$lt_outputfile.manifest";
++ fi'
++ ;;
++ *)
++ # g++
++ # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
++ # as there is no search path for DLLs.
++ hardcode_libdir_flag_spec_CXX='-L$libdir'
++ export_dynamic_flag_spec_CXX='${wl}--export-all-symbols'
++ allow_undefined_flag_CXX=unsupported
++ always_export_symbols_CXX=no
++ enable_shared_with_static_runtimes_CXX=yes
++
++ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
++ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
++ # If the export-symbols file already is a .def file (1st line
++ # is EXPORTS), use it as is; otherwise, prepend...
++ archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
++ cp $export_symbols $output_objdir/$soname.def;
++ else
++ echo EXPORTS > $output_objdir/$soname.def;
++ cat $export_symbols >> $output_objdir/$soname.def;
++ fi~
++ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
++ else
++ ld_shlibs_CXX=no
++ fi
++ ;;
++ esac
++ ;;
+ darwin* | rhapsody*)
+
+
+@@ -13124,7 +13863,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ ;;
+ *)
+ if test "$GXX" = yes; then
+- archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
++ archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+@@ -13195,10 +13934,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ ia64*)
+- archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
++ archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ *)
+- archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
++ archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ fi
+@@ -13239,9 +13978,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ *)
+ if test "$GXX" = yes; then
+ if test "$with_gnu_ld" = no; then
+- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
++ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
++ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
+ fi
+ fi
+ link_all_deplibs_CXX=yes
+@@ -13311,20 +14050,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ prelink_cmds_CXX='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+ old_archive_cmds_CXX='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+ $RANLIB $oldlib'
+ archive_cmds_CXX='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ archive_expsym_cmds_CXX='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ ;;
+ *) # Version 6 and above use weak symbols
+ archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+@@ -13519,7 +14258,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ ;;
+ *)
+- archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
++ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ ;;
+ esac
+
+@@ -13565,7 +14304,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ solaris*)
+ case $cc_basename in
+- CC*)
++ CC* | sunCC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ archive_cmds_need_lc_CXX=yes
+ no_undefined_flag_CXX=' -zdefs'
+@@ -13606,9 +14345,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
+ if $CC --version | $GREP -v '^2\.7' > /dev/null; then
+- archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
++ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+- $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
++ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+@@ -13743,6 +14482,13 @@ private:
+ };
+ _LT_EOF
+
++
++_lt_libdeps_save_CFLAGS=$CFLAGS
++case "$CC $CFLAGS " in #(
++*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
++*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
++esac
++
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+@@ -13756,7 +14502,7 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ pre_test_object_deps_done=no
+
+ for p in `eval "$output_verbose_link_cmd"`; do
+- case $p in
++ case ${prev}${p} in
+
+ -L* | -R* | -l*)
+ # Some compilers place space between "-{L,R}" and the path.
+@@ -13765,13 +14511,22 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ test $p = "-R"; then
+ prev=$p
+ continue
+- else
+- prev=
+ fi
+
++ # Expand the sysroot to ease extracting the directories later.
++ if test -z "$prev"; then
++ case $p in
++ -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
++ -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
++ -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
++ esac
++ fi
++ case $p in
++ =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
++ esac
+ if test "$pre_test_object_deps_done" = no; then
+- case $p in
+- -L* | -R*)
++ case ${prev} in
++ -L | -R)
+ # Internal compiler library paths should come after those
+ # provided the user. The postdeps already come after the
+ # user supplied libs so there is no need to process them.
+@@ -13791,8 +14546,10 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ postdeps_CXX="${postdeps_CXX} ${prev}${p}"
+ fi
+ fi
++ prev=
+ ;;
+
++ *.lto.$objext) ;; # Ignore GCC LTO objects
+ *.$objext)
+ # This assumes that the test object file only shows up
+ # once in the compiler output.
+@@ -13828,6 +14585,7 @@ else
+ fi
+
+ $RM -f confest.$objext
++CFLAGS=$_lt_libdeps_save_CFLAGS
+
+ # PORTME: override above test on systems where it is broken
+ case $host_os in
+@@ -13863,7 +14621,7 @@ linux*)
+
+ solaris*)
+ case $cc_basename in
+- CC*)
++ CC* | sunCC*)
+ # The more standards-conforming stlport4 library is
+ # incompatible with the Cstd library. Avoid specifying
+ # it if it's in CXXFLAGS. Ignore libCrun as
+@@ -13928,8 +14686,6 @@ fi
+ lt_prog_compiler_pic_CXX=
+ lt_prog_compiler_static_CXX=
+
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+
+ # C++ specific cases for pic, static, wl, etc.
+ if test "$GXX" = yes; then
+@@ -14034,6 +14790,11 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+ ;;
+ esac
+ ;;
++ mingw* | cygwin* | os2* | pw32* | cegcc*)
++ # This hack is so that the source file can tell whether it is being
++ # built for inclusion in a dll (and should export symbols for example).
++ lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
++ ;;
+ dgux*)
+ case $cc_basename in
+ ec++*)
+@@ -14186,7 +14947,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+ ;;
+ solaris*)
+ case $cc_basename in
+- CC*)
++ CC* | sunCC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-Bstatic'
+@@ -14251,10 +15012,17 @@ case $host_os in
+ lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
+ ;;
+ esac
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5
+-$as_echo "$lt_prog_compiler_pic_CXX" >&6; }
+-
+
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
++$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
++if ${lt_cv_prog_compiler_pic_CXX+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5
++$as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; }
++lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX
+
+ #
+ # Check to make sure the PIC flag actually works.
+@@ -14312,6 +15080,8 @@ fi
+
+
+
++
++
+ #
+ # Check to make sure the static flag actually works.
+ #
+@@ -14489,6 +15259,7 @@ fi
+ $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
++ exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+ case $host_os in
+ aix[4-9]*)
+ # If we're using GNU nm, then we don't want the "-C" option.
+@@ -14503,15 +15274,20 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
+ ;;
+ pw32*)
+ export_symbols_cmds_CXX="$ltdll_cmds"
+- ;;
++ ;;
+ cygwin* | mingw* | cegcc*)
+- export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+- ;;
++ case $cc_basename in
++ cl*) ;;
++ *)
++ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
++ exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
++ ;;
++ esac
++ ;;
+ *)
+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+- ;;
++ ;;
+ esac
+- exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
+ $as_echo "$ld_shlibs_CXX" >&6; }
+@@ -14774,8 +15550,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+ need_version=no
+ need_lib_prefix=no
+
+- case $GCC,$host_os in
+- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
++ case $GCC,$cc_basename in
++ yes,*)
++ # gcc
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+@@ -14807,13 +15584,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
++ dynamic_linker='Win32 ld.exe'
++ ;;
++
++ *,cl*)
++ # Native MSVC
++ libname_spec='$name'
++ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
++ library_names_spec='${libname}.dll.lib'
++
++ case $build_os in
++ mingw*)
++ sys_lib_search_path_spec=
++ lt_save_ifs=$IFS
++ IFS=';'
++ for lt_path in $LIB
++ do
++ IFS=$lt_save_ifs
++ # Let DOS variable expansion print the short 8.3 style file name.
++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
++ done
++ IFS=$lt_save_ifs
++ # Convert to MSYS style.
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
++ ;;
++ cygwin*)
++ # Convert to unix form, then to dos form, then back to unix form
++ # but this time dos style (no spaces!) so that the unix form looks
++ # like /cygdrive/c/PROGRA~1:/cygdr...
++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
++ ;;
++ *)
++ sys_lib_search_path_spec="$LIB"
++ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
++ # It is most probably a Windows format PATH.
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
++ else
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
++ fi
++ # FIXME: find the short name or the path components, as spaces are
++ # common. (e.g. "Program Files" -> "PROGRA~1")
++ ;;
++ esac
++
++ # DLL is installed to $(libdir)/../bin by postinstall_cmds
++ postinstall_cmds='base_file=`basename \${file}`~
++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
++ dldir=$destdir/`dirname \$dlpath`~
++ test -d \$dldir || mkdir -p \$dldir~
++ $install_prog $dir/$dlname \$dldir/$dlname'
++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
++ dlpath=$dir/\$dldll~
++ $RM \$dlpath'
++ shlibpath_overrides_runpath=yes
++ dynamic_linker='Win32 link.exe'
+ ;;
+
+ *)
++ # Assume MSVC wrapper
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
++ dynamic_linker='Win32 ld.exe'
+ ;;
+ esac
+- dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+@@ -14904,7 +15739,7 @@ haiku*)
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+ hardcode_into_libs=yes
+ ;;
+
+@@ -15363,6 +16198,7 @@ fi
+ fi # test -n "$compiler"
+
+ CC=$lt_save_CC
++ CFLAGS=$lt_save_CFLAGS
+ LDCXX=$LD
+ LD=$lt_save_LD
+ GCC=$lt_save_GCC
+@@ -18554,13 +19390,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+ lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+ lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+ lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
++lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
++lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
+ reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+ reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+ OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+ deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+ file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
++file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
++want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
++DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
++sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
+ AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+ AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
++archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
+ STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+ RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+ old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+@@ -18575,14 +19418,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+ lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+ lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
++nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
++lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+ objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+ MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
++lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+ lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+ need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
++MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
+ DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+ NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+ LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+@@ -18615,12 +19461,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+ hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+ inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+ link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+-fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`'
+ always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+ export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+ exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+ include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+ prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
++postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
+ file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+ variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+ need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+@@ -18659,8 +19505,8 @@ old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote
+ compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`'
+ GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`'
+-lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`'
++lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`'
+ lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`'
+ archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`'
+@@ -18687,12 +19533,12 @@ hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_
+ hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`'
+ inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`'
+ link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`'
+-fix_srcfile_path_CXX='`$ECHO "$fix_srcfile_path_CXX" | $SED "$delay_single_quote_subst"`'
+ always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`'
+ export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+ exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`'
+ include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`'
+ prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`'
++postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+ file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`'
+ hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`'
+ compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`'
+@@ -18730,8 +19576,13 @@ reload_flag \
+ OBJDUMP \
+ deplibs_check_method \
+ file_magic_cmd \
++file_magic_glob \
++want_nocaseglob \
++DLLTOOL \
++sharedlib_from_linklib_cmd \
+ AR \
+ AR_FLAGS \
++archiver_list_spec \
+ STRIP \
+ RANLIB \
+ CC \
+@@ -18741,12 +19592,14 @@ lt_cv_sys_global_symbol_pipe \
+ lt_cv_sys_global_symbol_to_cdecl \
+ lt_cv_sys_global_symbol_to_c_name_address \
+ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
++nm_file_list_spec \
+ lt_prog_compiler_no_builtin_flag \
+-lt_prog_compiler_wl \
+ lt_prog_compiler_pic \
++lt_prog_compiler_wl \
+ lt_prog_compiler_static \
+ lt_cv_prog_compiler_c_o \
+ need_locks \
++MANIFEST_TOOL \
+ DSYMUTIL \
+ NMEDIT \
+ LIPO \
+@@ -18762,7 +19615,6 @@ no_undefined_flag \
+ hardcode_libdir_flag_spec \
+ hardcode_libdir_flag_spec_ld \
+ hardcode_libdir_separator \
+-fix_srcfile_path \
+ exclude_expsyms \
+ include_expsyms \
+ file_list_spec \
+@@ -18784,8 +19636,8 @@ LD_CXX \
+ reload_flag_CXX \
+ compiler_CXX \
+ lt_prog_compiler_no_builtin_flag_CXX \
+-lt_prog_compiler_wl_CXX \
+ lt_prog_compiler_pic_CXX \
++lt_prog_compiler_wl_CXX \
+ lt_prog_compiler_static_CXX \
+ lt_cv_prog_compiler_c_o_CXX \
+ export_dynamic_flag_spec_CXX \
+@@ -18797,7 +19649,6 @@ no_undefined_flag_CXX \
+ hardcode_libdir_flag_spec_CXX \
+ hardcode_libdir_flag_spec_ld_CXX \
+ hardcode_libdir_separator_CXX \
+-fix_srcfile_path_CXX \
+ exclude_expsyms_CXX \
+ include_expsyms_CXX \
+ file_list_spec_CXX \
+@@ -18831,6 +19682,7 @@ module_cmds \
+ module_expsym_cmds \
+ export_symbols_cmds \
+ prelink_cmds \
++postlink_cmds \
+ postinstall_cmds \
+ postuninstall_cmds \
+ finish_cmds \
+@@ -18845,7 +19697,8 @@ archive_expsym_cmds_CXX \
+ module_cmds_CXX \
+ module_expsym_cmds_CXX \
+ export_symbols_cmds_CXX \
+-prelink_cmds_CXX; do
++prelink_cmds_CXX \
++postlink_cmds_CXX; do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+@@ -19610,7 +20463,8 @@ $as_echo X"$file" |
+ # NOTE: Changes made to this file will be lost: look at ltmain.sh.
+ #
+ # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
++# Inc.
+ # Written by Gordon Matzigkeit, 1996
+ #
+ # This file is part of GNU Libtool.
+@@ -19713,19 +20567,42 @@ SP2NL=$lt_lt_SP2NL
+ # turn newlines into spaces.
+ NL2SP=$lt_lt_NL2SP
+
++# convert \$build file names to \$host format.
++to_host_file_cmd=$lt_cv_to_host_file_cmd
++
++# convert \$build files to toolchain format.
++to_tool_file_cmd=$lt_cv_to_tool_file_cmd
++
+ # An object symbol dumper.
+ OBJDUMP=$lt_OBJDUMP
+
+ # Method to check whether dependent libraries are shared objects.
+ deplibs_check_method=$lt_deplibs_check_method
+
+-# Command to use when deplibs_check_method == "file_magic".
++# Command to use when deplibs_check_method = "file_magic".
+ file_magic_cmd=$lt_file_magic_cmd
+
++# How to find potential files when deplibs_check_method = "file_magic".
++file_magic_glob=$lt_file_magic_glob
++
++# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
++want_nocaseglob=$lt_want_nocaseglob
++
++# DLL creation program.
++DLLTOOL=$lt_DLLTOOL
++
++# Command to associate shared and link libraries.
++sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
++
+ # The archiver.
+ AR=$lt_AR
++
++# Flags to create an archive.
+ AR_FLAGS=$lt_AR_FLAGS
+
++# How to feed a file listing to the archiver.
++archiver_list_spec=$lt_archiver_list_spec
++
+ # A symbol stripping program.
+ STRIP=$lt_STRIP
+
+@@ -19755,6 +20632,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+ # Transform the output of nm in a C name address pair when lib prefix is needed.
+ global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
++# Specify filename containing input files for \$NM.
++nm_file_list_spec=$lt_nm_file_list_spec
++
++# The root where to search for dependent libraries,and in which our libraries should be installed.
++lt_sysroot=$lt_sysroot
++
+ # The name of the directory that contains temporary libtool files.
+ objdir=$objdir
+
+@@ -19764,6 +20647,9 @@ MAGIC_CMD=$MAGIC_CMD
+ # Must we lock files when doing compilation?
+ need_locks=$lt_need_locks
+
++# Manifest tool.
++MANIFEST_TOOL=$lt_MANIFEST_TOOL
++
+ # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+ DSYMUTIL=$lt_DSYMUTIL
+
+@@ -19878,12 +20764,12 @@ with_gcc=$GCC
+ # Compiler flag to turn off builtin functions.
+ no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+-# How to pass a linker flag through the compiler.
+-wl=$lt_lt_prog_compiler_wl
+-
+ # Additional compiler flags for building library objects.
+ pic_flag=$lt_lt_prog_compiler_pic
+
++# How to pass a linker flag through the compiler.
++wl=$lt_lt_prog_compiler_wl
++
+ # Compiler flag to prevent dynamic linking.
+ link_static_flag=$lt_lt_prog_compiler_static
+
+@@ -19970,9 +20856,6 @@ inherit_rpath=$inherit_rpath
+ # Whether libtool must link a program against all its dependency libraries.
+ link_all_deplibs=$link_all_deplibs
+
+-# Fix the shell variable \$srcfile for the compiler.
+-fix_srcfile_path=$lt_fix_srcfile_path
+-
+ # Set to "yes" if exported symbols are required.
+ always_export_symbols=$always_export_symbols
+
+@@ -19988,6 +20871,9 @@ include_expsyms=$lt_include_expsyms
+ # Commands necessary for linking programs (against libraries) with templates.
+ prelink_cmds=$lt_prelink_cmds
+
++# Commands necessary for finishing linking programs.
++postlink_cmds=$lt_postlink_cmds
++
+ # Specify filename containing input files.
+ file_list_spec=$lt_file_list_spec
+
+@@ -20034,210 +20920,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
+- || (rm -f "$cfgfile"; exit 1)
+-
+- case $xsi_shell in
+- yes)
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_dirname file append nondir_replacement
+-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+-# otherwise set result to NONDIR_REPLACEMENT.
+-func_dirname ()
+-{
+- case ${1} in
+- */*) func_dirname_result="${1%/*}${2}" ;;
+- * ) func_dirname_result="${3}" ;;
+- esac
+-}
+-
+-# func_basename file
+-func_basename ()
+-{
+- func_basename_result="${1##*/}"
+-}
+-
+-# func_dirname_and_basename file append nondir_replacement
+-# perform func_basename and func_dirname in a single function
+-# call:
+-# dirname: Compute the dirname of FILE. If nonempty,
+-# add APPEND to the result, otherwise set result
+-# to NONDIR_REPLACEMENT.
+-# value returned in "$func_dirname_result"
+-# basename: Compute filename of FILE.
+-# value retuned in "$func_basename_result"
+-# Implementation must be kept synchronized with func_dirname
+-# and func_basename. For efficiency, we do not delegate to
+-# those functions but instead duplicate the functionality here.
+-func_dirname_and_basename ()
+-{
+- case ${1} in
+- */*) func_dirname_result="${1%/*}${2}" ;;
+- * ) func_dirname_result="${3}" ;;
+- esac
+- func_basename_result="${1##*/}"
+-}
+-
+-# func_stripname prefix suffix name
+-# strip PREFIX and SUFFIX off of NAME.
+-# PREFIX and SUFFIX must not contain globbing or regex special
+-# characters, hashes, percent signs, but SUFFIX may contain a leading
+-# dot (in which case that matches only a dot).
+-func_stripname ()
+-{
+- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+- # positional parameters, so assign one to ordinary parameter first.
+- func_stripname_result=${3}
+- func_stripname_result=${func_stripname_result#"${1}"}
+- func_stripname_result=${func_stripname_result%"${2}"}
+-}
+-
+-# func_opt_split
+-func_opt_split ()
+-{
+- func_opt_split_opt=${1%%=*}
+- func_opt_split_arg=${1#*=}
+-}
+-
+-# func_lo2o object
+-func_lo2o ()
+-{
+- case ${1} in
+- *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+- *) func_lo2o_result=${1} ;;
+- esac
+-}
+-
+-# func_xform libobj-or-source
+-func_xform ()
+-{
+- func_xform_result=${1%.*}.lo
+-}
+-
+-# func_arith arithmetic-term...
+-func_arith ()
+-{
+- func_arith_result=$(( $* ))
+-}
+-
+-# func_len string
+-# STRING may not start with a hyphen.
+-func_len ()
+-{
+- func_len_result=${#1}
+-}
+-
+-_LT_EOF
+- ;;
+- *) # Bourne compatible functions.
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_dirname file append nondir_replacement
+-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+-# otherwise set result to NONDIR_REPLACEMENT.
+-func_dirname ()
+-{
+- # Extract subdirectory from the argument.
+- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
+- if test "X$func_dirname_result" = "X${1}"; then
+- func_dirname_result="${3}"
+- else
+- func_dirname_result="$func_dirname_result${2}"
+- fi
+-}
+-
+-# func_basename file
+-func_basename ()
+-{
+- func_basename_result=`$ECHO "${1}" | $SED "$basename"`
+-}
+-
+-
+-# func_stripname prefix suffix name
+-# strip PREFIX and SUFFIX off of NAME.
+-# PREFIX and SUFFIX must not contain globbing or regex special
+-# characters, hashes, percent signs, but SUFFIX may contain a leading
+-# dot (in which case that matches only a dot).
+-# func_strip_suffix prefix name
+-func_stripname ()
+-{
+- case ${2} in
+- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+- esac
+-}
+-
+-# sed scripts:
+-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
+-my_sed_long_arg='1s/^-[^=]*=//'
+-
+-# func_opt_split
+-func_opt_split ()
+-{
+- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
+- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
+-}
+-
+-# func_lo2o object
+-func_lo2o ()
+-{
+- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
+-}
+-
+-# func_xform libobj-or-source
+-func_xform ()
+-{
+- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
+-}
+-
+-# func_arith arithmetic-term...
+-func_arith ()
+-{
+- func_arith_result=`expr "$@"`
+-}
+-
+-# func_len string
+-# STRING may not start with a hyphen.
+-func_len ()
+-{
+- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
+-}
+-
+-_LT_EOF
+-esac
+-
+-case $lt_shell_append in
+- yes)
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_append var value
+-# Append VALUE to the end of shell variable VAR.
+-func_append ()
+-{
+- eval "$1+=\$2"
+-}
+-_LT_EOF
+- ;;
+- *)
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_append var value
+-# Append VALUE to the end of shell variable VAR.
+-func_append ()
+-{
+- eval "$1=\$$1\$2"
+-}
+-
+-_LT_EOF
+- ;;
+- esac
+-
+-
+- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
+- || (rm -f "$cfgfile"; exit 1)
+-
+- mv -f "$cfgfile" "$ofile" ||
++ sed '$q' "$ltmain" >> "$cfgfile" \
++ || (rm -f "$cfgfile"; exit 1)
++
++ if test x"$xsi_shell" = xyes; then
++ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
++func_dirname ()\
++{\
++\ case ${1} in\
++\ */*) func_dirname_result="${1%/*}${2}" ;;\
++\ * ) func_dirname_result="${3}" ;;\
++\ esac\
++} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_basename ()$/,/^} # func_basename /c\
++func_basename ()\
++{\
++\ func_basename_result="${1##*/}"\
++} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
++func_dirname_and_basename ()\
++{\
++\ case ${1} in\
++\ */*) func_dirname_result="${1%/*}${2}" ;;\
++\ * ) func_dirname_result="${3}" ;;\
++\ esac\
++\ func_basename_result="${1##*/}"\
++} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
++func_stripname ()\
++{\
++\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
++\ # positional parameters, so assign one to ordinary parameter first.\
++\ func_stripname_result=${3}\
++\ func_stripname_result=${func_stripname_result#"${1}"}\
++\ func_stripname_result=${func_stripname_result%"${2}"}\
++} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
++func_split_long_opt ()\
++{\
++\ func_split_long_opt_name=${1%%=*}\
++\ func_split_long_opt_arg=${1#*=}\
++} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
++func_split_short_opt ()\
++{\
++\ func_split_short_opt_arg=${1#??}\
++\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
++} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
++func_lo2o ()\
++{\
++\ case ${1} in\
++\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
++\ *) func_lo2o_result=${1} ;;\
++\ esac\
++} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_xform ()$/,/^} # func_xform /c\
++func_xform ()\
++{\
++ func_xform_result=${1%.*}.lo\
++} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_arith ()$/,/^} # func_arith /c\
++func_arith ()\
++{\
++ func_arith_result=$(( $* ))\
++} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_len ()$/,/^} # func_len /c\
++func_len ()\
++{\
++ func_len_result=${#1}\
++} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++fi
++
++if test x"$lt_shell_append" = xyes; then
++ sed -e '/^func_append ()$/,/^} # func_append /c\
++func_append ()\
++{\
++ eval "${1}+=\\${2}"\
++} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
++func_append_quoted ()\
++{\
++\ func_quote_for_eval "${2}"\
++\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
++} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ # Save a `func_append' function call where possible by direct use of '+='
++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++ test 0 -eq $? || _lt_function_replace_fail=:
++else
++ # Save a `func_append' function call even when '+=' is not available
++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++ test 0 -eq $? || _lt_function_replace_fail=:
++fi
++
++if test x"$_lt_function_replace_fail" = x":"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
++$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
++fi
++
++
++ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+
+@@ -20265,12 +21110,12 @@ with_gcc=$GCC_CXX
+ # Compiler flag to turn off builtin functions.
+ no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
+
+-# How to pass a linker flag through the compiler.
+-wl=$lt_lt_prog_compiler_wl_CXX
+-
+ # Additional compiler flags for building library objects.
+ pic_flag=$lt_lt_prog_compiler_pic_CXX
+
++# How to pass a linker flag through the compiler.
++wl=$lt_lt_prog_compiler_wl_CXX
++
+ # Compiler flag to prevent dynamic linking.
+ link_static_flag=$lt_lt_prog_compiler_static_CXX
+
+@@ -20357,9 +21202,6 @@ inherit_rpath=$inherit_rpath_CXX
+ # Whether libtool must link a program against all its dependency libraries.
+ link_all_deplibs=$link_all_deplibs_CXX
+
+-# Fix the shell variable \$srcfile for the compiler.
+-fix_srcfile_path=$lt_fix_srcfile_path_CXX
+-
+ # Set to "yes" if exported symbols are required.
+ always_export_symbols=$always_export_symbols_CXX
+
+@@ -20375,6 +21217,9 @@ include_expsyms=$lt_include_expsyms_CXX
+ # Commands necessary for linking programs (against libraries) with templates.
+ prelink_cmds=$lt_prelink_cmds_CXX
+
++# Commands necessary for finishing linking programs.
++postlink_cmds=$lt_postlink_cmds_CXX
++
+ # Specify filename containing input files.
+ file_list_spec=$lt_file_list_spec_CXX
+
+diff --git a/libctf/configure b/libctf/configure
+index 1dc1b65fac3..c5c2f36bbc0 100755
+--- a/libctf/configure
++++ b/libctf/configure
+@@ -663,6 +663,8 @@ OTOOL
+ LIPO
+ NMEDIT
+ DSYMUTIL
++MANIFEST_TOOL
++DLLTOOL
+ OBJDUMP
+ LN_S
+ NM
+@@ -790,6 +792,7 @@ enable_static
+ with_pic
+ enable_fast_install
+ with_gnu_ld
++with_libtool_sysroot
+ enable_libtool_lock
+ enable_largefile
+ enable_werror_always
+@@ -1448,6 +1451,8 @@ Optional Packages:
+ --with-pic try to use only PIC/non-PIC objects [default=use
+ both]
+ --with-gnu-ld assume the C compiler uses GNU ld [default=no]
++ --with-libtool-sysroot=DIR Search for dependent libraries within DIR
++ (or the compiler's sysroot if not specified).
+ --with-system-zlib use installed libz
+
+ Some influential environment variables:
+@@ -5406,8 +5411,8 @@ esac
+
+
+
+-macro_version='2.2.7a'
+-macro_revision='1.3134'
++macro_version='2.4'
++macro_revision='1.3293'
+
+
+
+@@ -5518,7 +5523,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+ $as_echo_n "checking how to print strings... " >&6; }
+ # Test print first, because it will be a builtin if present.
+-if test "X`print -r -- -n 2>/dev/null`" = X-n && \
++if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='print -r --'
+ elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+@@ -6204,8 +6209,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
+ # Try some XSI features
+ xsi_shell=no
+ ( _lt_dummy="a/b/c"
+- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
+- = c,a/b,, \
++ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
++ = c,a/b,b/c, \
+ && eval 'test $(( 1 + 1 )) -eq 2 \
+ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+ && xsi_shell=yes
+@@ -6254,6 +6259,80 @@ esac
+
+
+
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
++$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
++if ${lt_cv_to_host_file_cmd+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ case $host in
++ *-*-mingw* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
++ ;;
++ *-*-cygwin* )
++ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
++ ;;
++ * ) # otherwise, assume *nix
++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
++ ;;
++ esac
++ ;;
++ *-*-cygwin* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
++ ;;
++ *-*-cygwin* )
++ lt_cv_to_host_file_cmd=func_convert_file_noop
++ ;;
++ * ) # otherwise, assume *nix
++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
++ ;;
++ esac
++ ;;
++ * ) # unhandled hosts (and "normal" native builds)
++ lt_cv_to_host_file_cmd=func_convert_file_noop
++ ;;
++esac
++
++fi
++
++to_host_file_cmd=$lt_cv_to_host_file_cmd
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
++$as_echo "$lt_cv_to_host_file_cmd" >&6; }
++
++
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
++$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
++if ${lt_cv_to_tool_file_cmd+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ #assume ordinary cross tools, or native build.
++lt_cv_to_tool_file_cmd=func_convert_file_noop
++case $host in
++ *-*-mingw* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
++ ;;
++ esac
++ ;;
++esac
++
++fi
++
++to_tool_file_cmd=$lt_cv_to_tool_file_cmd
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
++$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
++
++
++
++
++
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+ $as_echo_n "checking for $LD option to reload object files... " >&6; }
+ if ${lt_cv_ld_reload_flag+:} false; then :
+@@ -6270,6 +6349,11 @@ case $reload_flag in
+ esac
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ case $host_os in
++ cygwin* | mingw* | pw32* | cegcc*)
++ if test "$GCC" != yes; then
++ reload_cmds=false
++ fi
++ ;;
+ darwin*)
+ if test "$GCC" = yes; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+@@ -6438,7 +6522,8 @@ mingw* | pw32*)
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
++ # Keep this pattern in sync with the one in func_win32_libid.
++ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+@@ -6592,6 +6677,21 @@ esac
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+ $as_echo "$lt_cv_deplibs_check_method" >&6; }
++
++file_magic_glob=
++want_nocaseglob=no
++if test "$build" = "$host"; then
++ case $host_os in
++ mingw* | pw32*)
++ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
++ want_nocaseglob=yes
++ else
++ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
++ fi
++ ;;
++ esac
++fi
++
+ file_magic_cmd=$lt_cv_file_magic_cmd
+ deplibs_check_method=$lt_cv_deplibs_check_method
+ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+@@ -6607,9 +6707,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
++
++
++
++
++
++
++
++
++
++
++if test -n "$ac_tool_prefix"; then
++ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
++set dummy ${ac_tool_prefix}dlltool; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_DLLTOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$DLLTOOL"; then
++ ac_cv_prog_DLLTOOL="$DLLTOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++DLLTOOL=$ac_cv_prog_DLLTOOL
++if test -n "$DLLTOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
++$as_echo "$DLLTOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++
++fi
++if test -z "$ac_cv_prog_DLLTOOL"; then
++ ac_ct_DLLTOOL=$DLLTOOL
++ # Extract the first word of "dlltool", so it can be a program name with args.
++set dummy dlltool; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$ac_ct_DLLTOOL"; then
++ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_ac_ct_DLLTOOL="dlltool"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
++if test -n "$ac_ct_DLLTOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
++$as_echo "$ac_ct_DLLTOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++ if test "x$ac_ct_DLLTOOL" = x; then
++ DLLTOOL="false"
++ else
++ case $cross_compiling:$ac_tool_warned in
++yes:)
++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
++ac_tool_warned=yes ;;
++esac
++ DLLTOOL=$ac_ct_DLLTOOL
++ fi
++else
++ DLLTOOL="$ac_cv_prog_DLLTOOL"
++fi
++
++test -z "$DLLTOOL" && DLLTOOL=dlltool
++
++
++
++
++
++
++
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
++$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
++if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_sharedlib_from_linklib_cmd='unknown'
++
++case $host_os in
++cygwin* | mingw* | pw32* | cegcc*)
++ # two different shell functions defined in ltmain.sh
++ # decide which to use based on capabilities of $DLLTOOL
++ case `$DLLTOOL --help 2>&1` in
++ *--identify-strict*)
++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
++ ;;
++ *)
++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
++ ;;
++ esac
++ ;;
++*)
++ # fallback: assume linklib IS sharedlib
++ lt_cv_sharedlib_from_linklib_cmd="$ECHO"
++ ;;
++esac
++
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
++$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
++sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
++test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
++
++
++
++
++
++
++
+ if test -n "$ac_tool_prefix"; then
+- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}ar; ac_word=$2
++ for ac_prog in ar
++ 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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+@@ -6625,7 +6878,7 @@ do
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+- ac_cv_prog_AR="${ac_tool_prefix}ar"
++ ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+@@ -6645,11 +6898,15 @@ $as_echo "no" >&6; }
+ fi
+
+
++ test -n "$AR" && break
++ done
+ fi
+-if test -z "$ac_cv_prog_AR"; then
++if test -z "$AR"; then
+ ac_ct_AR=$AR
+- # Extract the first word of "ar", so it can be a program name with args.
+-set dummy ar; ac_word=$2
++ for ac_prog in ar
++do
++ # Extract the first word of "$ac_prog", so it can be a program name with args.
++set dummy $ac_prog; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+@@ -6665,7 +6922,7 @@ do
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+- ac_cv_prog_ac_ct_AR="ar"
++ ac_cv_prog_ac_ct_AR="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+@@ -6684,6 +6941,10 @@ else
+ $as_echo "no" >&6; }
+ fi
+
++
++ test -n "$ac_ct_AR" && break
++done
++
+ if test "x$ac_ct_AR" = x; then
+ AR="false"
+ else
+@@ -6695,16 +6956,72 @@ ac_tool_warned=yes ;;
+ esac
+ AR=$ac_ct_AR
+ fi
+-else
+- AR="$ac_cv_prog_AR"
+ fi
+
+-test -z "$AR" && AR=ar
+-test -z "$AR_FLAGS" && AR_FLAGS=cru
++: ${AR=ar}
++: ${AR_FLAGS=cru}
++
++
++
++
++
++
++
++
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
++$as_echo_n "checking for archiver @FILE support... " >&6; }
++if ${lt_cv_ar_at_file+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_ar_at_file=no
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++
++int
++main ()
++{
+
++ ;
++ return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++ echo conftest.$ac_objext > conftest.lst
++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
++ (eval $lt_ar_try) 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }
++ if test "$ac_status" -eq 0; then
++ # Ensure the archiver fails upon bogus file names.
++ rm -f conftest.$ac_objext libconftest.a
++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
++ (eval $lt_ar_try) 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }
++ if test "$ac_status" -ne 0; then
++ lt_cv_ar_at_file=@
++ fi
++ fi
++ rm -f conftest.* libconftest.a
+
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
++$as_echo "$lt_cv_ar_at_file" >&6; }
+
++if test "x$lt_cv_ar_at_file" = xno; then
++ archiver_list_spec=
++else
++ archiver_list_spec=$lt_cv_ar_at_file
++fi
+
+
+
+@@ -7046,8 +7363,8 @@ esac
+ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+ # Transform an extracted symbol line into symbol name and symbol address
+-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
+-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
++lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
+
+ # Handle CRLF in mingw tool chain
+ opt_cr=
+@@ -7083,6 +7400,7 @@ for ac_symprfx in "" "_"; do
+ else
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
++ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+@@ -7124,6 +7442,18 @@ _LT_EOF
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
++#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
++/* DATA imports from DLLs on WIN32 con't be const, because runtime
++ relocations are performed -- see ld's documentation on pseudo-relocs. */
++# define LT_DLSYM_CONST
++#elif defined(__osf__)
++/* This system does not cope well with relocations in const data. */
++# define LT_DLSYM_CONST
++#else
++# define LT_DLSYM_CONST const
++#endif
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+@@ -7135,7 +7465,7 @@ _LT_EOF
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+ /* The mapping between symbol names and symbols. */
+-const struct {
++LT_DLSYM_CONST struct {
+ const char *name;
+ void *address;
+ }
+@@ -7161,8 +7491,8 @@ static const void *lt_preloaded_setup() {
+ _LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+- lt_save_LIBS="$LIBS"
+- lt_save_CFLAGS="$CFLAGS"
++ lt_globsym_save_LIBS=$LIBS
++ lt_globsym_save_CFLAGS=$CFLAGS
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+@@ -7172,8 +7502,8 @@ _LT_EOF
+ test $ac_status = 0; } && test -s conftest${ac_exeext}; then
+ pipe_works=yes
+ fi
+- LIBS="$lt_save_LIBS"
+- CFLAGS="$lt_save_CFLAGS"
++ LIBS=$lt_globsym_save_LIBS
++ CFLAGS=$lt_globsym_save_CFLAGS
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+@@ -7210,6 +7540,16 @@ else
+ $as_echo "ok" >&6; }
+ fi
+
++# Response file support.
++if test "$lt_cv_nm_interface" = "MS dumpbin"; then
++ nm_file_list_spec='@'
++elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
++ nm_file_list_spec='@'
++fi
++
++
++
++
+
+
+
+@@ -7226,6 +7566,45 @@ fi
+
+
+
++
++
++
++
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
++$as_echo_n "checking for sysroot... " >&6; }
++
++# Check whether --with-libtool-sysroot was given.
++if test "${with_libtool_sysroot+set}" = set; then :
++ withval=$with_libtool_sysroot;
++else
++ with_libtool_sysroot=no
++fi
++
++
++lt_sysroot=
++case ${with_libtool_sysroot} in #(
++ yes)
++ if test "$GCC" = yes; then
++ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
++ fi
++ ;; #(
++ /*)
++ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
++ ;; #(
++ no|'')
++ ;; #(
++ *)
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5
++$as_echo "${with_libtool_sysroot}" >&6; }
++ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
++ ;;
++esac
++
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
++$as_echo "${lt_sysroot:-no}" >&6; }
+
+
+
+@@ -7437,6 +7816,123 @@ esac
+
+ need_locks="$enable_libtool_lock"
+
++if test -n "$ac_tool_prefix"; then
++ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
++set dummy ${ac_tool_prefix}mt; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$MANIFEST_TOOL"; then
++ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
++if test -n "$MANIFEST_TOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
++$as_echo "$MANIFEST_TOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++
++fi
++if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
++ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
++ # Extract the first word of "mt", so it can be a program name with args.
++set dummy mt; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$ac_ct_MANIFEST_TOOL"; then
++ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
++if test -n "$ac_ct_MANIFEST_TOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
++$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++ if test "x$ac_ct_MANIFEST_TOOL" = x; then
++ MANIFEST_TOOL=":"
++ else
++ case $cross_compiling:$ac_tool_warned in
++yes:)
++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
++ac_tool_warned=yes ;;
++esac
++ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
++ fi
++else
++ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
++fi
++
++test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
++$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
++if ${lt_cv_path_mainfest_tool+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_path_mainfest_tool=no
++ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
++ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
++ cat conftest.err >&5
++ if $GREP 'Manifest Tool' conftest.out > /dev/null; then
++ lt_cv_path_mainfest_tool=yes
++ fi
++ rm -f conftest*
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
++$as_echo "$lt_cv_path_mainfest_tool" >&6; }
++if test "x$lt_cv_path_mainfest_tool" != xyes; then
++ MANIFEST_TOOL=:
++fi
++
++
++
++
++
+
+ case $host_os in
+ rhapsody* | darwin*)
+@@ -8000,6 +8496,8 @@ _LT_EOF
+ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+ echo "$AR cru libconftest.a conftest.o" >&5
+ $AR cru libconftest.a conftest.o 2>&5
++ echo "$RANLIB libconftest.a" >&5
++ $RANLIB libconftest.a 2>&5
+ cat > conftest.c << _LT_EOF
+ int main() { return 0;}
+ _LT_EOF
+@@ -8165,7 +8663,8 @@ fi
+ LIBTOOL_DEPS="$ltmain"
+
+ # Always use our own libtool.
+-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
++LIBTOOL='$(SHELL) $(top_builddir)'
++LIBTOOL="$LIBTOOL/${host_alias}-libtool"
+
+
+
+@@ -8254,7 +8753,7 @@ aix3*)
+ esac
+
+ # Global variables:
+-ofile=libtool
++ofile=${host_alias}-libtool
+ can_build_shared=yes
+
+ # All known linkers require a `.a' archive for static linking (except MSVC,
+@@ -8552,8 +9051,6 @@ fi
+ lt_prog_compiler_pic=
+ lt_prog_compiler_static=
+
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+
+ if test "$GCC" = yes; then
+ lt_prog_compiler_wl='-Wl,'
+@@ -8719,6 +9216,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+ lt_prog_compiler_pic='--shared'
+ lt_prog_compiler_static='--static'
+ ;;
++ nagfor*)
++ # NAG Fortran compiler
++ lt_prog_compiler_wl='-Wl,-Wl,,'
++ lt_prog_compiler_pic='-PIC'
++ lt_prog_compiler_static='-Bstatic'
++ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+@@ -8781,7 +9284,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+- f77* | f90* | f95*)
++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+@@ -8838,13 +9341,17 @@ case $host_os in
+ lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+ ;;
+ esac
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
+-$as_echo "$lt_prog_compiler_pic" >&6; }
+-
+-
+-
+-
+
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
++$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
++if ${lt_cv_prog_compiler_pic+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
++$as_echo "$lt_cv_prog_compiler_pic" >&6; }
++lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
+
+ #
+ # Check to make sure the PIC flag actually works.
+@@ -8905,6 +9412,11 @@ fi
+
+
+
++
++
++
++
++
+ #
+ # Check to make sure the static flag actually works.
+ #
+@@ -9255,7 +9767,8 @@ _LT_EOF
+ allow_undefined_flag=unsupported
+ always_export_symbols=no
+ enable_shared_with_static_runtimes=yes
+- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
++ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+@@ -9354,12 +9867,12 @@ _LT_EOF
+ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_flag_spec_ld='-rpath $libdir'
+- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+@@ -9373,8 +9886,8 @@ _LT_EOF
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+@@ -9392,8 +9905,8 @@ _LT_EOF
+
+ _LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+@@ -9439,8 +9952,8 @@ _LT_EOF
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+@@ -9570,7 +10083,13 @@ _LT_EOF
+ allow_undefined_flag='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++ if test "${lt_cv_aix_libpath+set}" = set; then
++ aix_libpath=$lt_cv_aix_libpath
++else
++ if ${lt_cv_aix_libpath_+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ int
+@@ -9583,22 +10102,29 @@ main ()
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+
+-lt_aix_libpath_sed='
+- /Import File Strings/,/^$/ {
+- /^0/ {
+- s/^0 *\(.*\)$/\1/
+- p
+- }
+- }'
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-# Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then
+- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-fi
++ lt_aix_libpath_sed='
++ /Import File Strings/,/^$/ {
++ /^0/ {
++ s/^0 *\([^ ]*\) *$/\1/
++ p
++ }
++ }'
++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ # Check for a 64-bit object if we didn't find anything.
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ fi
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_="/usr/lib:/lib"
++ fi
++
++fi
++
++ aix_libpath=$lt_cv_aix_libpath_
++fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+@@ -9610,7 +10136,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++ if test "${lt_cv_aix_libpath+set}" = set; then
++ aix_libpath=$lt_cv_aix_libpath
++else
++ if ${lt_cv_aix_libpath_+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ int
+@@ -9623,22 +10155,29 @@ main ()
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+
+-lt_aix_libpath_sed='
+- /Import File Strings/,/^$/ {
+- /^0/ {
+- s/^0 *\(.*\)$/\1/
+- p
+- }
+- }'
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-# Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then
+- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-fi
++ lt_aix_libpath_sed='
++ /Import File Strings/,/^$/ {
++ /^0/ {
++ s/^0 *\([^ ]*\) *$/\1/
++ p
++ }
++ }'
++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ # Check for a 64-bit object if we didn't find anything.
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ fi
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_="/usr/lib:/lib"
++ fi
++
++fi
++
++ aix_libpath=$lt_cv_aix_libpath_
++fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+@@ -9683,20 +10222,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+- hardcode_libdir_flag_spec=' '
+- allow_undefined_flag=unsupported
+- # Tell ltmain to make .lib files, not .a files.
+- libext=lib
+- # Tell ltmain to make .dll files, not .so files.
+- shrext_cmds=".dll"
+- # FIXME: Setting linknames here is a bad hack.
+- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+- # The linker will automatically build a .lib file if we build a DLL.
+- old_archive_from_new_cmds='true'
+- # FIXME: Should let the user specify the lib program.
+- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+- fix_srcfile_path='`cygpath -w "$srcfile"`'
+- enable_shared_with_static_runtimes=yes
++ case $cc_basename in
++ cl*)
++ # Native MSVC
++ hardcode_libdir_flag_spec=' '
++ allow_undefined_flag=unsupported
++ always_export_symbols=yes
++ file_list_spec='@'
++ # Tell ltmain to make .lib files, not .a files.
++ libext=lib
++ # Tell ltmain to make .dll files, not .so files.
++ shrext_cmds=".dll"
++ # FIXME: Setting linknames here is a bad hack.
++ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
++ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
++ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
++ else
++ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
++ fi~
++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
++ linknames='
++ # The linker will not automatically build a static lib if we build a DLL.
++ # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
++ enable_shared_with_static_runtimes=yes
++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
++ # Don't use ranlib
++ old_postinstall_cmds='chmod 644 $oldlib'
++ postlink_cmds='lt_outputfile="@OUTPUT@"~
++ lt_tool_outputfile="@TOOL_OUTPUT@"~
++ case $lt_outputfile in
++ *.exe|*.EXE) ;;
++ *)
++ lt_outputfile="$lt_outputfile.exe"
++ lt_tool_outputfile="$lt_tool_outputfile.exe"
++ ;;
++ esac~
++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
++ $RM "$lt_outputfile.manifest";
++ fi'
++ ;;
++ *)
++ # Assume MSVC wrapper
++ hardcode_libdir_flag_spec=' '
++ allow_undefined_flag=unsupported
++ # Tell ltmain to make .lib files, not .a files.
++ libext=lib
++ # Tell ltmain to make .dll files, not .so files.
++ shrext_cmds=".dll"
++ # FIXME: Setting linknames here is a bad hack.
++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
++ # The linker will automatically build a .lib file if we build a DLL.
++ old_archive_from_new_cmds='true'
++ # FIXME: Should let the user specify the lib program.
++ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
++ enable_shared_with_static_runtimes=yes
++ ;;
++ esac
+ ;;
+
+ darwin* | rhapsody*)
+@@ -9757,7 +10339,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+@@ -9765,7 +10347,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hpux9*)
+ if test "$GCC" = yes; then
+- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
++ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+@@ -9781,7 +10363,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hpux10*)
+ if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+@@ -9805,10 +10387,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+@@ -9887,23 +10469,36 @@ fi
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+- save_LDFLAGS="$LDFLAGS"
+- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++ # This should be the same for all languages, so no per-tag cache variable.
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
++$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
++if ${lt_cv_irix_exported_symbol+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ save_LDFLAGS="$LDFLAGS"
++ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+-int foo(void) {}
++int foo (void) { return 0; }
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+-
++ lt_cv_irix_exported_symbol=yes
++else
++ lt_cv_irix_exported_symbol=no
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+- LDFLAGS="$save_LDFLAGS"
++ LDFLAGS="$save_LDFLAGS"
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
++$as_echo "$lt_cv_irix_exported_symbol" >&6; }
++ if test "$lt_cv_irix_exported_symbol" = yes; then
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
++ fi
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+@@ -9988,7 +10583,7 @@ rm -f core conftest.err conftest.$ac_objext \
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
++ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+@@ -10007,9 +10602,9 @@ rm -f core conftest.err conftest.$ac_objext \
+ no_undefined_flag=' -z defs'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
++ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+@@ -10585,8 +11180,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+ need_version=no
+ need_lib_prefix=no
+
+- case $GCC,$host_os in
+- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
++ case $GCC,$cc_basename in
++ yes,*)
++ # gcc
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+@@ -10619,13 +11215,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
++ dynamic_linker='Win32 ld.exe'
++ ;;
++
++ *,cl*)
++ # Native MSVC
++ libname_spec='$name'
++ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
++ library_names_spec='${libname}.dll.lib'
++
++ case $build_os in
++ mingw*)
++ sys_lib_search_path_spec=
++ lt_save_ifs=$IFS
++ IFS=';'
++ for lt_path in $LIB
++ do
++ IFS=$lt_save_ifs
++ # Let DOS variable expansion print the short 8.3 style file name.
++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
++ done
++ IFS=$lt_save_ifs
++ # Convert to MSYS style.
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
++ ;;
++ cygwin*)
++ # Convert to unix form, then to dos form, then back to unix form
++ # but this time dos style (no spaces!) so that the unix form looks
++ # like /cygdrive/c/PROGRA~1:/cygdr...
++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
++ ;;
++ *)
++ sys_lib_search_path_spec="$LIB"
++ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
++ # It is most probably a Windows format PATH.
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
++ else
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
++ fi
++ # FIXME: find the short name or the path components, as spaces are
++ # common. (e.g. "Program Files" -> "PROGRA~1")
++ ;;
++ esac
++
++ # DLL is installed to $(libdir)/../bin by postinstall_cmds
++ postinstall_cmds='base_file=`basename \${file}`~
++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
++ dldir=$destdir/`dirname \$dlpath`~
++ test -d \$dldir || mkdir -p \$dldir~
++ $install_prog $dir/$dlname \$dldir/$dlname'
++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
++ dlpath=$dir/\$dldll~
++ $RM \$dlpath'
++ shlibpath_overrides_runpath=yes
++ dynamic_linker='Win32 link.exe'
+ ;;
+
+ *)
++ # Assume MSVC wrapper
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
++ dynamic_linker='Win32 ld.exe'
+ ;;
+ esac
+- dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+@@ -10717,7 +11371,7 @@ haiku*)
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+ hardcode_into_libs=yes
+ ;;
+
+@@ -11513,7 +12167,7 @@ else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+-#line 11516 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+@@ -11557,10 +12211,10 @@ else
+ /* When -fvisbility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+-void fnord () __attribute__((visibility("default")));
++int fnord () __attribute__((visibility("default")));
+ #endif
+
+-void fnord () { int i=42; }
++int fnord () { return 42; }
+ int main ()
+ {
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+@@ -11619,7 +12273,7 @@ else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+-#line 11622 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+@@ -11663,10 +12317,10 @@ else
+ /* When -fvisbility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+-void fnord () __attribute__((visibility("default")));
++int fnord () __attribute__((visibility("default")));
+ #endif
+
+-void fnord () { int i=42; }
++int fnord () { return 42; }
+ int main ()
+ {
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+@@ -14110,13 +14764,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+ lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+ lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+ lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
++lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
++lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
+ reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+ reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+ OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+ deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+ file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
++file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
++want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
++DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
++sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
+ AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+ AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
++archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
+ STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+ RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+ old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+@@ -14131,14 +14792,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+ lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+ lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
++nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
++lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+ objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+ MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
++lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+ lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+ need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
++MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
+ DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+ NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+ LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+@@ -14171,12 +14835,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+ hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+ inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+ link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+-fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`'
+ always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+ export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+ exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+ include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+ prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
++postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
+ file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+ variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+ need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+@@ -14231,8 +14895,13 @@ reload_flag \
+ OBJDUMP \
+ deplibs_check_method \
+ file_magic_cmd \
++file_magic_glob \
++want_nocaseglob \
++DLLTOOL \
++sharedlib_from_linklib_cmd \
+ AR \
+ AR_FLAGS \
++archiver_list_spec \
+ STRIP \
+ RANLIB \
+ CC \
+@@ -14242,12 +14911,14 @@ lt_cv_sys_global_symbol_pipe \
+ lt_cv_sys_global_symbol_to_cdecl \
+ lt_cv_sys_global_symbol_to_c_name_address \
+ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
++nm_file_list_spec \
+ lt_prog_compiler_no_builtin_flag \
+-lt_prog_compiler_wl \
+ lt_prog_compiler_pic \
++lt_prog_compiler_wl \
+ lt_prog_compiler_static \
+ lt_cv_prog_compiler_c_o \
+ need_locks \
++MANIFEST_TOOL \
+ DSYMUTIL \
+ NMEDIT \
+ LIPO \
+@@ -14263,7 +14934,6 @@ no_undefined_flag \
+ hardcode_libdir_flag_spec \
+ hardcode_libdir_flag_spec_ld \
+ hardcode_libdir_separator \
+-fix_srcfile_path \
+ exclude_expsyms \
+ include_expsyms \
+ file_list_spec \
+@@ -14299,6 +14969,7 @@ module_cmds \
+ module_expsym_cmds \
+ export_symbols_cmds \
+ prelink_cmds \
++postlink_cmds \
+ postinstall_cmds \
+ postuninstall_cmds \
+ finish_cmds \
+@@ -15055,7 +15726,8 @@ $as_echo X"$file" |
+ # NOTE: Changes made to this file will be lost: look at ltmain.sh.
+ #
+ # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
++# Inc.
+ # Written by Gordon Matzigkeit, 1996
+ #
+ # This file is part of GNU Libtool.
+@@ -15158,19 +15830,42 @@ SP2NL=$lt_lt_SP2NL
+ # turn newlines into spaces.
+ NL2SP=$lt_lt_NL2SP
+
++# convert \$build file names to \$host format.
++to_host_file_cmd=$lt_cv_to_host_file_cmd
++
++# convert \$build files to toolchain format.
++to_tool_file_cmd=$lt_cv_to_tool_file_cmd
++
+ # An object symbol dumper.
+ OBJDUMP=$lt_OBJDUMP
+
+ # Method to check whether dependent libraries are shared objects.
+ deplibs_check_method=$lt_deplibs_check_method
+
+-# Command to use when deplibs_check_method == "file_magic".
++# Command to use when deplibs_check_method = "file_magic".
+ file_magic_cmd=$lt_file_magic_cmd
+
++# How to find potential files when deplibs_check_method = "file_magic".
++file_magic_glob=$lt_file_magic_glob
++
++# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
++want_nocaseglob=$lt_want_nocaseglob
++
++# DLL creation program.
++DLLTOOL=$lt_DLLTOOL
++
++# Command to associate shared and link libraries.
++sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
++
+ # The archiver.
+ AR=$lt_AR
++
++# Flags to create an archive.
+ AR_FLAGS=$lt_AR_FLAGS
+
++# How to feed a file listing to the archiver.
++archiver_list_spec=$lt_archiver_list_spec
++
+ # A symbol stripping program.
+ STRIP=$lt_STRIP
+
+@@ -15200,6 +15895,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+ # Transform the output of nm in a C name address pair when lib prefix is needed.
+ global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
++# Specify filename containing input files for \$NM.
++nm_file_list_spec=$lt_nm_file_list_spec
++
++# The root where to search for dependent libraries,and in which our libraries should be installed.
++lt_sysroot=$lt_sysroot
++
+ # The name of the directory that contains temporary libtool files.
+ objdir=$objdir
+
+@@ -15209,6 +15910,9 @@ MAGIC_CMD=$MAGIC_CMD
+ # Must we lock files when doing compilation?
+ need_locks=$lt_need_locks
+
++# Manifest tool.
++MANIFEST_TOOL=$lt_MANIFEST_TOOL
++
+ # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+ DSYMUTIL=$lt_DSYMUTIL
+
+@@ -15323,12 +16027,12 @@ with_gcc=$GCC
+ # Compiler flag to turn off builtin functions.
+ no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+-# How to pass a linker flag through the compiler.
+-wl=$lt_lt_prog_compiler_wl
+-
+ # Additional compiler flags for building library objects.
+ pic_flag=$lt_lt_prog_compiler_pic
+
++# How to pass a linker flag through the compiler.
++wl=$lt_lt_prog_compiler_wl
++
+ # Compiler flag to prevent dynamic linking.
+ link_static_flag=$lt_lt_prog_compiler_static
+
+@@ -15415,9 +16119,6 @@ inherit_rpath=$inherit_rpath
+ # Whether libtool must link a program against all its dependency libraries.
+ link_all_deplibs=$link_all_deplibs
+
+-# Fix the shell variable \$srcfile for the compiler.
+-fix_srcfile_path=$lt_fix_srcfile_path
+-
+ # Set to "yes" if exported symbols are required.
+ always_export_symbols=$always_export_symbols
+
+@@ -15433,6 +16134,9 @@ include_expsyms=$lt_include_expsyms
+ # Commands necessary for linking programs (against libraries) with templates.
+ prelink_cmds=$lt_prelink_cmds
+
++# Commands necessary for finishing linking programs.
++postlink_cmds=$lt_postlink_cmds
++
+ # Specify filename containing input files.
+ file_list_spec=$lt_file_list_spec
+
+@@ -15465,210 +16169,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
+- || (rm -f "$cfgfile"; exit 1)
+-
+- case $xsi_shell in
+- yes)
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_dirname file append nondir_replacement
+-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+-# otherwise set result to NONDIR_REPLACEMENT.
+-func_dirname ()
+-{
+- case ${1} in
+- */*) func_dirname_result="${1%/*}${2}" ;;
+- * ) func_dirname_result="${3}" ;;
+- esac
+-}
+-
+-# func_basename file
+-func_basename ()
+-{
+- func_basename_result="${1##*/}"
+-}
+-
+-# func_dirname_and_basename file append nondir_replacement
+-# perform func_basename and func_dirname in a single function
+-# call:
+-# dirname: Compute the dirname of FILE. If nonempty,
+-# add APPEND to the result, otherwise set result
+-# to NONDIR_REPLACEMENT.
+-# value returned in "$func_dirname_result"
+-# basename: Compute filename of FILE.
+-# value retuned in "$func_basename_result"
+-# Implementation must be kept synchronized with func_dirname
+-# and func_basename. For efficiency, we do not delegate to
+-# those functions but instead duplicate the functionality here.
+-func_dirname_and_basename ()
+-{
+- case ${1} in
+- */*) func_dirname_result="${1%/*}${2}" ;;
+- * ) func_dirname_result="${3}" ;;
+- esac
+- func_basename_result="${1##*/}"
+-}
+-
+-# func_stripname prefix suffix name
+-# strip PREFIX and SUFFIX off of NAME.
+-# PREFIX and SUFFIX must not contain globbing or regex special
+-# characters, hashes, percent signs, but SUFFIX may contain a leading
+-# dot (in which case that matches only a dot).
+-func_stripname ()
+-{
+- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+- # positional parameters, so assign one to ordinary parameter first.
+- func_stripname_result=${3}
+- func_stripname_result=${func_stripname_result#"${1}"}
+- func_stripname_result=${func_stripname_result%"${2}"}
+-}
+-
+-# func_opt_split
+-func_opt_split ()
+-{
+- func_opt_split_opt=${1%%=*}
+- func_opt_split_arg=${1#*=}
+-}
+-
+-# func_lo2o object
+-func_lo2o ()
+-{
+- case ${1} in
+- *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+- *) func_lo2o_result=${1} ;;
+- esac
+-}
+-
+-# func_xform libobj-or-source
+-func_xform ()
+-{
+- func_xform_result=${1%.*}.lo
+-}
+-
+-# func_arith arithmetic-term...
+-func_arith ()
+-{
+- func_arith_result=$(( $* ))
+-}
+-
+-# func_len string
+-# STRING may not start with a hyphen.
+-func_len ()
+-{
+- func_len_result=${#1}
+-}
+-
+-_LT_EOF
+- ;;
+- *) # Bourne compatible functions.
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_dirname file append nondir_replacement
+-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+-# otherwise set result to NONDIR_REPLACEMENT.
+-func_dirname ()
+-{
+- # Extract subdirectory from the argument.
+- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
+- if test "X$func_dirname_result" = "X${1}"; then
+- func_dirname_result="${3}"
+- else
+- func_dirname_result="$func_dirname_result${2}"
+- fi
+-}
+-
+-# func_basename file
+-func_basename ()
+-{
+- func_basename_result=`$ECHO "${1}" | $SED "$basename"`
+-}
+-
+-
+-# func_stripname prefix suffix name
+-# strip PREFIX and SUFFIX off of NAME.
+-# PREFIX and SUFFIX must not contain globbing or regex special
+-# characters, hashes, percent signs, but SUFFIX may contain a leading
+-# dot (in which case that matches only a dot).
+-# func_strip_suffix prefix name
+-func_stripname ()
+-{
+- case ${2} in
+- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+- esac
+-}
+-
+-# sed scripts:
+-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
+-my_sed_long_arg='1s/^-[^=]*=//'
+-
+-# func_opt_split
+-func_opt_split ()
+-{
+- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
+- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
+-}
+-
+-# func_lo2o object
+-func_lo2o ()
+-{
+- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
+-}
+-
+-# func_xform libobj-or-source
+-func_xform ()
+-{
+- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
+-}
+-
+-# func_arith arithmetic-term...
+-func_arith ()
+-{
+- func_arith_result=`expr "$@"`
+-}
+-
+-# func_len string
+-# STRING may not start with a hyphen.
+-func_len ()
+-{
+- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
+-}
+-
+-_LT_EOF
+-esac
+-
+-case $lt_shell_append in
+- yes)
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_append var value
+-# Append VALUE to the end of shell variable VAR.
+-func_append ()
+-{
+- eval "$1+=\$2"
+-}
+-_LT_EOF
+- ;;
+- *)
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_append var value
+-# Append VALUE to the end of shell variable VAR.
+-func_append ()
+-{
+- eval "$1=\$$1\$2"
+-}
+-
+-_LT_EOF
+- ;;
+- esac
+-
+-
+- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
+- || (rm -f "$cfgfile"; exit 1)
+-
+- mv -f "$cfgfile" "$ofile" ||
++ sed '$q' "$ltmain" >> "$cfgfile" \
++ || (rm -f "$cfgfile"; exit 1)
++
++ if test x"$xsi_shell" = xyes; then
++ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
++func_dirname ()\
++{\
++\ case ${1} in\
++\ */*) func_dirname_result="${1%/*}${2}" ;;\
++\ * ) func_dirname_result="${3}" ;;\
++\ esac\
++} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_basename ()$/,/^} # func_basename /c\
++func_basename ()\
++{\
++\ func_basename_result="${1##*/}"\
++} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
++func_dirname_and_basename ()\
++{\
++\ case ${1} in\
++\ */*) func_dirname_result="${1%/*}${2}" ;;\
++\ * ) func_dirname_result="${3}" ;;\
++\ esac\
++\ func_basename_result="${1##*/}"\
++} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
++func_stripname ()\
++{\
++\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
++\ # positional parameters, so assign one to ordinary parameter first.\
++\ func_stripname_result=${3}\
++\ func_stripname_result=${func_stripname_result#"${1}"}\
++\ func_stripname_result=${func_stripname_result%"${2}"}\
++} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
++func_split_long_opt ()\
++{\
++\ func_split_long_opt_name=${1%%=*}\
++\ func_split_long_opt_arg=${1#*=}\
++} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
++func_split_short_opt ()\
++{\
++\ func_split_short_opt_arg=${1#??}\
++\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
++} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
++func_lo2o ()\
++{\
++\ case ${1} in\
++\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
++\ *) func_lo2o_result=${1} ;;\
++\ esac\
++} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_xform ()$/,/^} # func_xform /c\
++func_xform ()\
++{\
++ func_xform_result=${1%.*}.lo\
++} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_arith ()$/,/^} # func_arith /c\
++func_arith ()\
++{\
++ func_arith_result=$(( $* ))\
++} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_len ()$/,/^} # func_len /c\
++func_len ()\
++{\
++ func_len_result=${#1}\
++} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++fi
++
++if test x"$lt_shell_append" = xyes; then
++ sed -e '/^func_append ()$/,/^} # func_append /c\
++func_append ()\
++{\
++ eval "${1}+=\\${2}"\
++} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
++func_append_quoted ()\
++{\
++\ func_quote_for_eval "${2}"\
++\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
++} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ # Save a `func_append' function call where possible by direct use of '+='
++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++ test 0 -eq $? || _lt_function_replace_fail=:
++else
++ # Save a `func_append' function call even when '+=' is not available
++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++ test 0 -eq $? || _lt_function_replace_fail=:
++fi
++
++if test x"$_lt_function_replace_fail" = x":"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
++$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
++fi
++
++
++ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+
+diff --git a/libtool.m4 b/libtool.m4
+index 434530059fa..e45fdc6998c 100644
+--- a/libtool.m4
++++ b/libtool.m4
+@@ -1,7 +1,8 @@
+ # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+ #
+ # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
++# Inc.
+ # Written by Gordon Matzigkeit, 1996
+ #
+ # This file is free software; the Free Software Foundation gives
+@@ -10,7 +11,8 @@
+
+ m4_define([_LT_COPYING], [dnl
+ # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
++# Inc.
+ # Written by Gordon Matzigkeit, 1996
+ #
+ # This file is part of GNU Libtool.
+@@ -37,7 +39,7 @@ m4_define([_LT_COPYING], [dnl
+ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ ])
+
+-# serial 56 LT_INIT
++# serial 57 LT_INIT
+
+
+ # LT_PREREQ(VERSION)
+@@ -92,7 +94,8 @@ _LT_SET_OPTIONS([$0], [$1])
+ LIBTOOL_DEPS="$ltmain"
+
+ # Always use our own libtool.
+-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
++LIBTOOL='$(SHELL) $(top_builddir)'
++LIBTOOL="$LIBTOOL/${host_alias}-libtool"
+ AC_SUBST(LIBTOOL)dnl
+
+ _LT_SETUP
+@@ -166,10 +169,13 @@ _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
+ dnl
+ m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+ m4_require([_LT_CHECK_SHELL_FEATURES])dnl
++m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
+ m4_require([_LT_CMD_RELOAD])dnl
+ m4_require([_LT_CHECK_MAGIC_METHOD])dnl
++m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
+ m4_require([_LT_CMD_OLD_ARCHIVE])dnl
+ m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
++m4_require([_LT_WITH_SYSROOT])dnl
+
+ _LT_CONFIG_LIBTOOL_INIT([
+ # See if we are running on zsh, and set the options which allow our
+@@ -199,7 +205,7 @@ aix3*)
+ esac
+
+ # Global variables:
+-ofile=libtool
++ofile=${host_alias}-libtool
+ can_build_shared=yes
+
+ # All known linkers require a `.a' archive for static linking (except MSVC,
+@@ -632,7 +638,7 @@ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
+ m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
+ configured by $[0], generated by m4_PACKAGE_STRING.
+
+-Copyright (C) 2009 Free Software Foundation, Inc.
++Copyright (C) 2010 Free Software Foundation, Inc.
+ This config.lt script is free software; the Free Software Foundation
+ gives unlimited permision to copy, distribute and modify it."
+
+@@ -746,15 +752,12 @@ _LT_EOF
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
+- || (rm -f "$cfgfile"; exit 1)
++ sed '$q' "$ltmain" >> "$cfgfile" \
++ || (rm -f "$cfgfile"; exit 1)
+
+- _LT_PROG_XSI_SHELLFNS
++ _LT_PROG_REPLACE_SHELLFNS
+
+- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
+- || (rm -f "$cfgfile"; exit 1)
+-
+- mv -f "$cfgfile" "$ofile" ||
++ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+ ],
+@@ -980,6 +983,8 @@ _LT_EOF
+ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
+ echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
+ $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
++ echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
++ $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
+ cat > conftest.c << _LT_EOF
+ int main() { return 0;}
+ _LT_EOF
+@@ -1069,30 +1074,41 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
+ fi
+ ])
+
+-# _LT_SYS_MODULE_PATH_AIX
+-# -----------------------
++# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
++# ----------------------------------
+ # Links a minimal program and checks the executable
+ # for the system default hardcoded library path. In most cases,
+ # this is /usr/lib:/lib, but when the MPI compilers are used
+ # the location of the communication and MPI libs are included too.
+ # If we don't find anything, use the default library path according
+ # to the aix ld manual.
++# Store the results from the different compilers for each TAGNAME.
++# Allow to override them for all tags through lt_cv_aix_libpath.
+ m4_defun([_LT_SYS_MODULE_PATH_AIX],
+ [m4_require([_LT_DECL_SED])dnl
+-AC_LINK_IFELSE([AC_LANG_SOURCE([AC_LANG_PROGRAM])],[
+-lt_aix_libpath_sed='
+- /Import File Strings/,/^$/ {
+- /^0/ {
+- s/^0 *\(.*\)$/\1/
+- p
+- }
+- }'
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-# Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then
+- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-fi],[])
+-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
++if test "${lt_cv_aix_libpath+set}" = set; then
++ aix_libpath=$lt_cv_aix_libpath
++else
++ AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
++ [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
++ lt_aix_libpath_sed='[
++ /Import File Strings/,/^$/ {
++ /^0/ {
++ s/^0 *\([^ ]*\) *$/\1/
++ p
++ }
++ }]'
++ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ # Check for a 64-bit object if we didn't find anything.
++ if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
++ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ fi],[])
++ if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
++ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
++ fi
++ ])
++ aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
++fi
+ ])# _LT_SYS_MODULE_PATH_AIX
+
+
+@@ -1117,7 +1133,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+ AC_MSG_CHECKING([how to print strings])
+ # Test print first, because it will be a builtin if present.
+-if test "X`print -r -- -n 2>/dev/null`" = X-n && \
++if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='print -r --'
+ elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+@@ -1161,6 +1177,39 @@ _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
+ ])# _LT_PROG_ECHO_BACKSLASH
+
+
++# _LT_WITH_SYSROOT
++# ----------------
++AC_DEFUN([_LT_WITH_SYSROOT],
++[AC_MSG_CHECKING([for sysroot])
++AC_ARG_WITH([libtool-sysroot],
++[ --with-libtool-sysroot[=DIR] Search for dependent libraries within DIR
++ (or the compiler's sysroot if not specified).],
++[], [with_libtool_sysroot=no])
++
++dnl lt_sysroot will always be passed unquoted. We quote it here
++dnl in case the user passed a directory name.
++lt_sysroot=
++case ${with_libtool_sysroot} in #(
++ yes)
++ if test "$GCC" = yes; then
++ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
++ fi
++ ;; #(
++ /*)
++ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
++ ;; #(
++ no|'')
++ ;; #(
++ *)
++ AC_MSG_RESULT([${with_libtool_sysroot}])
++ AC_MSG_ERROR([The sysroot must be an absolute path.])
++ ;;
++esac
++
++ AC_MSG_RESULT([${lt_sysroot:-no}])
++_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
++[dependent libraries, and in which our libraries should be installed.])])
++
+ # _LT_ENABLE_LOCK
+ # ---------------
+ m4_defun([_LT_ENABLE_LOCK],
+@@ -1320,14 +1369,47 @@ need_locks="$enable_libtool_lock"
+ ])# _LT_ENABLE_LOCK
+
+
++# _LT_PROG_AR
++# -----------
++m4_defun([_LT_PROG_AR],
++[AC_CHECK_TOOLS(AR, [ar], false)
++: ${AR=ar}
++: ${AR_FLAGS=cru}
++_LT_DECL([], [AR], [1], [The archiver])
++_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
++
++AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
++ [lt_cv_ar_at_file=no
++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
++ [echo conftest.$ac_objext > conftest.lst
++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
++ AC_TRY_EVAL([lt_ar_try])
++ if test "$ac_status" -eq 0; then
++ # Ensure the archiver fails upon bogus file names.
++ rm -f conftest.$ac_objext libconftest.a
++ AC_TRY_EVAL([lt_ar_try])
++ if test "$ac_status" -ne 0; then
++ lt_cv_ar_at_file=@
++ fi
++ fi
++ rm -f conftest.* libconftest.a
++ ])
++ ])
++
++if test "x$lt_cv_ar_at_file" = xno; then
++ archiver_list_spec=
++else
++ archiver_list_spec=$lt_cv_ar_at_file
++fi
++_LT_DECL([], [archiver_list_spec], [1],
++ [How to feed a file listing to the archiver])
++])# _LT_PROG_AR
++
++
+ # _LT_CMD_OLD_ARCHIVE
+ # -------------------
+ m4_defun([_LT_CMD_OLD_ARCHIVE],
+-[AC_CHECK_TOOL(AR, ar, false)
+-test -z "$AR" && AR=ar
+-test -z "$AR_FLAGS" && AR_FLAGS=cru
+-_LT_DECL([], [AR], [1], [The archiver])
+-_LT_DECL([], [AR_FLAGS], [1])
++[_LT_PROG_AR
+
+ AC_CHECK_TOOL(STRIP, strip, :)
+ test -z "$STRIP" && STRIP=:
+@@ -1623,7 +1705,7 @@ else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+-[#line __oline__ "configure"
++[#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+@@ -1667,10 +1749,10 @@ else
+ /* When -fvisbility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+-void fnord () __attribute__((visibility("default")));
++int fnord () __attribute__((visibility("default")));
+ #endif
+
+-void fnord () { int i=42; }
++int fnord () { return 42; }
+ int main ()
+ {
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+@@ -2210,8 +2292,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+ need_version=no
+ need_lib_prefix=no
+
+- case $GCC,$host_os in
+- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
++ case $GCC,$cc_basename in
++ yes,*)
++ # gcc
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+@@ -2244,13 +2327,71 @@ m4_if([$1], [],[
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
++ dynamic_linker='Win32 ld.exe'
++ ;;
++
++ *,cl*)
++ # Native MSVC
++ libname_spec='$name'
++ soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
++ library_names_spec='${libname}.dll.lib'
++
++ case $build_os in
++ mingw*)
++ sys_lib_search_path_spec=
++ lt_save_ifs=$IFS
++ IFS=';'
++ for lt_path in $LIB
++ do
++ IFS=$lt_save_ifs
++ # Let DOS variable expansion print the short 8.3 style file name.
++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
++ done
++ IFS=$lt_save_ifs
++ # Convert to MSYS style.
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
++ ;;
++ cygwin*)
++ # Convert to unix form, then to dos form, then back to unix form
++ # but this time dos style (no spaces!) so that the unix form looks
++ # like /cygdrive/c/PROGRA~1:/cygdr...
++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
++ ;;
++ *)
++ sys_lib_search_path_spec="$LIB"
++ if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
++ # It is most probably a Windows format PATH.
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
++ else
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
++ fi
++ # FIXME: find the short name or the path components, as spaces are
++ # common. (e.g. "Program Files" -> "PROGRA~1")
++ ;;
++ esac
++
++ # DLL is installed to $(libdir)/../bin by postinstall_cmds
++ postinstall_cmds='base_file=`basename \${file}`~
++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
++ dldir=$destdir/`dirname \$dlpath`~
++ test -d \$dldir || mkdir -p \$dldir~
++ $install_prog $dir/$dlname \$dldir/$dlname'
++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
++ dlpath=$dir/\$dldll~
++ $RM \$dlpath'
++ shlibpath_overrides_runpath=yes
++ dynamic_linker='Win32 link.exe'
+ ;;
+
+ *)
++ # Assume MSVC wrapper
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
++ dynamic_linker='Win32 ld.exe'
+ ;;
+ esac
+- dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+@@ -2342,7 +2483,7 @@ haiku*)
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+ hardcode_into_libs=yes
+ ;;
+
+@@ -2950,6 +3091,11 @@ case $reload_flag in
+ esac
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ case $host_os in
++ cygwin* | mingw* | pw32* | cegcc*)
++ if test "$GCC" != yes; then
++ reload_cmds=false
++ fi
++ ;;
+ darwin*)
+ if test "$GCC" = yes; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+@@ -3016,7 +3162,8 @@ mingw* | pw32*)
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
++ # Keep this pattern in sync with the one in func_win32_libid.
++ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+@@ -3167,6 +3314,21 @@ tpf*)
+ ;;
+ esac
+ ])
++
++file_magic_glob=
++want_nocaseglob=no
++if test "$build" = "$host"; then
++ case $host_os in
++ mingw* | pw32*)
++ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
++ want_nocaseglob=yes
++ else
++ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
++ fi
++ ;;
++ esac
++fi
++
+ file_magic_cmd=$lt_cv_file_magic_cmd
+ deplibs_check_method=$lt_cv_deplibs_check_method
+ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+@@ -3174,7 +3336,11 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+ _LT_DECL([], [deplibs_check_method], [1],
+ [Method to check whether dependent libraries are shared objects])
+ _LT_DECL([], [file_magic_cmd], [1],
+- [Command to use when deplibs_check_method == "file_magic"])
++ [Command to use when deplibs_check_method = "file_magic"])
++_LT_DECL([], [file_magic_glob], [1],
++ [How to find potential files when deplibs_check_method = "file_magic"])
++_LT_DECL([], [want_nocaseglob], [1],
++ [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
+ ])# _LT_CHECK_MAGIC_METHOD
+
+
+@@ -3277,6 +3443,67 @@ dnl aclocal-1.4 backwards compatibility:
+ dnl AC_DEFUN([AM_PROG_NM], [])
+ dnl AC_DEFUN([AC_PROG_NM], [])
+
++# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
++# --------------------------------
++# how to determine the name of the shared library
++# associated with a specific link library.
++# -- PORTME fill in with the dynamic library characteristics
++m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
++[m4_require([_LT_DECL_EGREP])
++m4_require([_LT_DECL_OBJDUMP])
++m4_require([_LT_DECL_DLLTOOL])
++AC_CACHE_CHECK([how to associate runtime and link libraries],
++lt_cv_sharedlib_from_linklib_cmd,
++[lt_cv_sharedlib_from_linklib_cmd='unknown'
++
++case $host_os in
++cygwin* | mingw* | pw32* | cegcc*)
++ # two different shell functions defined in ltmain.sh
++ # decide which to use based on capabilities of $DLLTOOL
++ case `$DLLTOOL --help 2>&1` in
++ *--identify-strict*)
++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
++ ;;
++ *)
++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
++ ;;
++ esac
++ ;;
++*)
++ # fallback: assume linklib IS sharedlib
++ lt_cv_sharedlib_from_linklib_cmd="$ECHO"
++ ;;
++esac
++])
++sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
++test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
++
++_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
++ [Command to associate shared and link libraries])
++])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
++
++
++# _LT_PATH_MANIFEST_TOOL
++# ----------------------
++# locate the manifest tool
++m4_defun([_LT_PATH_MANIFEST_TOOL],
++[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
++test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
++AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
++ [lt_cv_path_mainfest_tool=no
++ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
++ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
++ cat conftest.err >&AS_MESSAGE_LOG_FD
++ if $GREP 'Manifest Tool' conftest.out > /dev/null; then
++ lt_cv_path_mainfest_tool=yes
++ fi
++ rm -f conftest*])
++if test "x$lt_cv_path_mainfest_tool" != xyes; then
++ MANIFEST_TOOL=:
++fi
++_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
++])# _LT_PATH_MANIFEST_TOOL
++
+
+ # LT_LIB_M
+ # --------
+@@ -3403,8 +3630,8 @@ esac
+ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+ # Transform an extracted symbol line into symbol name and symbol address
+-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'"
+-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
++lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'"
++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
+
+ # Handle CRLF in mingw tool chain
+ opt_cr=
+@@ -3440,6 +3667,7 @@ for ac_symprfx in "" "_"; do
+ else
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
++ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+@@ -3473,6 +3701,18 @@ _LT_EOF
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
++#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
++/* DATA imports from DLLs on WIN32 con't be const, because runtime
++ relocations are performed -- see ld's documentation on pseudo-relocs. */
++# define LT@&t@_DLSYM_CONST
++#elif defined(__osf__)
++/* This system does not cope well with relocations in const data. */
++# define LT@&t@_DLSYM_CONST
++#else
++# define LT@&t@_DLSYM_CONST const
++#endif
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+@@ -3484,7 +3724,7 @@ _LT_EOF
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+ /* The mapping between symbol names and symbols. */
+-const struct {
++LT@&t@_DLSYM_CONST struct {
+ const char *name;
+ void *address;
+ }
+@@ -3510,15 +3750,15 @@ static const void *lt_preloaded_setup() {
+ _LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+- lt_save_LIBS="$LIBS"
+- lt_save_CFLAGS="$CFLAGS"
++ lt_globsym_save_LIBS=$LIBS
++ lt_globsym_save_CFLAGS=$CFLAGS
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+ if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
+ pipe_works=yes
+ fi
+- LIBS="$lt_save_LIBS"
+- CFLAGS="$lt_save_CFLAGS"
++ LIBS=$lt_globsym_save_LIBS
++ CFLAGS=$lt_globsym_save_CFLAGS
+ else
+ echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+ fi
+@@ -3551,6 +3791,13 @@ else
+ AC_MSG_RESULT(ok)
+ fi
+
++# Response file support.
++if test "$lt_cv_nm_interface" = "MS dumpbin"; then
++ nm_file_list_spec='@'
++elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
++ nm_file_list_spec='@'
++fi
++
+ _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
+ [Take the output of nm and produce a listing of raw symbols and C names])
+ _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
+@@ -3561,6 +3808,8 @@ _LT_DECL([global_symbol_to_c_name_address],
+ _LT_DECL([global_symbol_to_c_name_address_lib_prefix],
+ [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
+ [Transform the output of nm in a C name address pair when lib prefix is needed])
++_LT_DECL([], [nm_file_list_spec], [1],
++ [Specify filename containing input files for $NM])
+ ]) # _LT_CMD_GLOBAL_SYMBOLS
+
+
+@@ -3572,7 +3821,6 @@ _LT_TAGVAR(lt_prog_compiler_wl, $1)=
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+ _LT_TAGVAR(lt_prog_compiler_static, $1)=
+
+-AC_MSG_CHECKING([for $compiler option to produce PIC])
+ m4_if([$1], [CXX], [
+ # C++ specific cases for pic, static, wl, etc.
+ if test "$GXX" = yes; then
+@@ -3678,6 +3926,12 @@ m4_if([$1], [CXX], [
+ ;;
+ esac
+ ;;
++ mingw* | cygwin* | os2* | pw32* | cegcc*)
++ # This hack is so that the source file can tell whether it is being
++ # built for inclusion in a dll (and should export symbols for example).
++ m4_if([$1], [GCJ], [],
++ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
++ ;;
+ dgux*)
+ case $cc_basename in
+ ec++*)
+@@ -3830,7 +4084,7 @@ m4_if([$1], [CXX], [
+ ;;
+ solaris*)
+ case $cc_basename in
+- CC*)
++ CC* | sunCC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+@@ -4053,6 +4307,12 @@ m4_if([$1], [CXX], [
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
+ ;;
++ nagfor*)
++ # NAG Fortran compiler
++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
++ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+@@ -4115,7 +4375,7 @@ m4_if([$1], [CXX], [
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ case $cc_basename in
+- f77* | f90* | f95*)
++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
+@@ -4172,9 +4432,11 @@ case $host_os in
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
+ ;;
+ esac
+-AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
+-_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
+- [How to pass a linker flag through the compiler])
++
++AC_CACHE_CHECK([for $compiler option to produce PIC],
++ [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
++ [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
++_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
+
+ #
+ # Check to make sure the PIC flag actually works.
+@@ -4193,6 +4455,8 @@ fi
+ _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
+ [Additional compiler flags for building library objects])
+
++_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
++ [How to pass a linker flag through the compiler])
+ #
+ # Check to make sure the static flag actually works.
+ #
+@@ -4213,6 +4477,7 @@ _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
+ m4_defun([_LT_LINKER_SHLIBS],
+ [AC_REQUIRE([LT_PATH_LD])dnl
+ AC_REQUIRE([LT_PATH_NM])dnl
++m4_require([_LT_PATH_MANIFEST_TOOL])dnl
+ m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+ m4_require([_LT_DECL_EGREP])dnl
+ m4_require([_LT_DECL_SED])dnl
+@@ -4221,6 +4486,7 @@ m4_require([_LT_TAG_COMPILER])dnl
+ AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+ m4_if([$1], [CXX], [
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
++ _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+ case $host_os in
+ aix[[4-9]]*)
+ # If we're using GNU nm, then we don't want the "-C" option.
+@@ -4235,15 +4501,20 @@ m4_if([$1], [CXX], [
+ ;;
+ pw32*)
+ _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+- ;;
++ ;;
+ cygwin* | mingw* | cegcc*)
+- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+- ;;
++ case $cc_basename in
++ cl*) ;;
++ *)
++ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
++ _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
++ ;;
++ esac
++ ;;
+ *)
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+- ;;
++ ;;
+ esac
+- _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+ ], [
+ runpath_var=
+ _LT_TAGVAR(allow_undefined_flag, $1)=
+@@ -4411,7 +4682,8 @@ _LT_EOF
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_TAGVAR(always_export_symbols, $1)=no
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
++ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
++ _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+@@ -4510,12 +4782,12 @@ _LT_EOF
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+ _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
+- _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
++ _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+ if test "x$supports_anon_versioning" = xyes; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+@@ -4529,8 +4801,8 @@ _LT_EOF
+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+@@ -4548,8 +4820,8 @@ _LT_EOF
+
+ _LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+@@ -4595,8 +4867,8 @@ _LT_EOF
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+@@ -4726,7 +4998,7 @@ _LT_EOF
+ _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+- _LT_SYS_MODULE_PATH_AIX
++ _LT_SYS_MODULE_PATH_AIX([$1])
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+@@ -4737,7 +5009,7 @@ _LT_EOF
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+- _LT_SYS_MODULE_PATH_AIX
++ _LT_SYS_MODULE_PATH_AIX([$1])
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+@@ -4781,20 +5053,63 @@ _LT_EOF
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+- # Tell ltmain to make .lib files, not .a files.
+- libext=lib
+- # Tell ltmain to make .dll files, not .so files.
+- shrext_cmds=".dll"
+- # FIXME: Setting linknames here is a bad hack.
+- _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+- # The linker will automatically build a .lib file if we build a DLL.
+- _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+- # FIXME: Should let the user specify the lib program.
+- _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
+- _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
+- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
++ case $cc_basename in
++ cl*)
++ # Native MSVC
++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
++ _LT_TAGVAR(always_export_symbols, $1)=yes
++ _LT_TAGVAR(file_list_spec, $1)='@'
++ # Tell ltmain to make .lib files, not .a files.
++ libext=lib
++ # Tell ltmain to make .dll files, not .so files.
++ shrext_cmds=".dll"
++ # FIXME: Setting linknames here is a bad hack.
++ _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
++ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
++ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
++ else
++ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
++ fi~
++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
++ linknames='
++ # The linker will not automatically build a static lib if we build a DLL.
++ # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
++ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
++ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
++ # Don't use ranlib
++ _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
++ _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
++ lt_tool_outputfile="@TOOL_OUTPUT@"~
++ case $lt_outputfile in
++ *.exe|*.EXE) ;;
++ *)
++ lt_outputfile="$lt_outputfile.exe"
++ lt_tool_outputfile="$lt_tool_outputfile.exe"
++ ;;
++ esac~
++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
++ $RM "$lt_outputfile.manifest";
++ fi'
++ ;;
++ *)
++ # Assume MSVC wrapper
++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
++ # Tell ltmain to make .lib files, not .a files.
++ libext=lib
++ # Tell ltmain to make .dll files, not .so files.
++ shrext_cmds=".dll"
++ # FIXME: Setting linknames here is a bad hack.
++ _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
++ # The linker will automatically build a .lib file if we build a DLL.
++ _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
++ # FIXME: Should let the user specify the lib program.
++ _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
++ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
++ ;;
++ esac
+ ;;
+
+ darwin* | rhapsody*)
+@@ -4828,7 +5143,7 @@ _LT_EOF
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+@@ -4836,7 +5151,7 @@ _LT_EOF
+
+ hpux9*)
+ if test "$GCC" = yes; then
+- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
++ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+@@ -4852,7 +5167,7 @@ _LT_EOF
+
+ hpux10*)
+ if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+@@ -4876,10 +5191,10 @@ _LT_EOF
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+@@ -4926,16 +5241,31 @@ _LT_EOF
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+- save_LDFLAGS="$LDFLAGS"
+- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+- AC_LINK_IFELSE([AC_LANG_SOURCE([int foo(void) {}])],
+- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+- )
+- LDFLAGS="$save_LDFLAGS"
++ # This should be the same for all languages, so no per-tag cache variable.
++ AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
++ [lt_cv_irix_exported_symbol],
++ [save_LDFLAGS="$LDFLAGS"
++ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
++ AC_LINK_IFELSE(
++ [AC_LANG_SOURCE(
++ [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
++ [C++], [[int foo (void) { return 0; }]],
++ [Fortran 77], [[
++ subroutine foo
++ end]],
++ [Fortran], [[
++ subroutine foo
++ end]])])],
++ [lt_cv_irix_exported_symbol=yes],
++ [lt_cv_irix_exported_symbol=no])
++ LDFLAGS="$save_LDFLAGS"])
++ if test "$lt_cv_irix_exported_symbol" = yes; then
++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
++ fi
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+@@ -5020,7 +5350,7 @@ _LT_EOF
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ else
+ _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+@@ -5039,9 +5369,9 @@ _LT_EOF
+ _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
++ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+@@ -5313,8 +5643,6 @@ _LT_TAGDECL([], [inherit_rpath], [0],
+ to runtime path list])
+ _LT_TAGDECL([], [link_all_deplibs], [0],
+ [Whether libtool must link a program against all its dependency libraries])
+-_LT_TAGDECL([], [fix_srcfile_path], [1],
+- [Fix the shell variable $srcfile for the compiler])
+ _LT_TAGDECL([], [always_export_symbols], [0],
+ [Set to "yes" if exported symbols are required])
+ _LT_TAGDECL([], [export_symbols_cmds], [2],
+@@ -5325,6 +5653,8 @@ _LT_TAGDECL([], [include_expsyms], [1],
+ [Symbols that must always be exported])
+ _LT_TAGDECL([], [prelink_cmds], [2],
+ [Commands necessary for linking programs (against libraries) with templates])
++_LT_TAGDECL([], [postlink_cmds], [2],
++ [Commands necessary for finishing linking programs])
+ _LT_TAGDECL([], [file_list_spec], [1],
+ [Specify filename containing input files])
+ dnl FIXME: Not yet implemented
+@@ -5426,6 +5756,7 @@ CC="$lt_save_CC"
+ m4_defun([_LT_LANG_CXX_CONFIG],
+ [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+ m4_require([_LT_DECL_EGREP])dnl
++m4_require([_LT_PATH_MANIFEST_TOOL])dnl
+ if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+ ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+ (test "X$CXX" != "Xg++"))) ; then
+@@ -5487,6 +5818,7 @@ if test "$_lt_caught_CXX_error" != yes; then
+
+ # Allow CC to be a program name with arguments.
+ lt_save_CC=$CC
++ lt_save_CFLAGS=$CFLAGS
+ lt_save_LD=$LD
+ lt_save_GCC=$GCC
+ GCC=$GXX
+@@ -5504,6 +5836,7 @@ if test "$_lt_caught_CXX_error" != yes; then
+ fi
+ test -z "${LDCXX+set}" || LD=$LDCXX
+ CC=${CXX-"c++"}
++ CFLAGS=$CXXFLAGS
+ compiler=$CC
+ _LT_TAGVAR(compiler, $1)=$CC
+ _LT_CC_BASENAME([$compiler])
+@@ -5667,7 +6000,7 @@ if test "$_lt_caught_CXX_error" != yes; then
+ _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+ # Determine the default libpath from the value encoded in an empty
+ # executable.
+- _LT_SYS_MODULE_PATH_AIX
++ _LT_SYS_MODULE_PATH_AIX([$1])
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+@@ -5679,7 +6012,7 @@ if test "$_lt_caught_CXX_error" != yes; then
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+- _LT_SYS_MODULE_PATH_AIX
++ _LT_SYS_MODULE_PATH_AIX([$1])
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+@@ -5721,29 +6054,75 @@ if test "$_lt_caught_CXX_error" != yes; then
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+- # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+- # as there is no search path for DLLs.
+- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
+- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+- _LT_TAGVAR(always_export_symbols, $1)=no
+- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+-
+- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+- # If the export-symbols file already is a .def file (1st line
+- # is EXPORTS), use it as is; otherwise, prepend...
+- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+- cp $export_symbols $output_objdir/$soname.def;
+- else
+- echo EXPORTS > $output_objdir/$soname.def;
+- cat $export_symbols >> $output_objdir/$soname.def;
+- fi~
+- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+- else
+- _LT_TAGVAR(ld_shlibs, $1)=no
+- fi
+- ;;
++ case $GXX,$cc_basename in
++ ,cl* | no,cl*)
++ # Native MSVC
++ # hardcode_libdir_flag_spec is actually meaningless, as there is
++ # no search path for DLLs.
++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
++ _LT_TAGVAR(always_export_symbols, $1)=yes
++ _LT_TAGVAR(file_list_spec, $1)='@'
++ # Tell ltmain to make .lib files, not .a files.
++ libext=lib
++ # Tell ltmain to make .dll files, not .so files.
++ shrext_cmds=".dll"
++ # FIXME: Setting linknames here is a bad hack.
++ _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
++ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
++ $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
++ else
++ $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
++ fi~
++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
++ linknames='
++ # The linker will not automatically build a static lib if we build a DLL.
++ # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
++ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
++ # Don't use ranlib
++ _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
++ _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
++ lt_tool_outputfile="@TOOL_OUTPUT@"~
++ case $lt_outputfile in
++ *.exe|*.EXE) ;;
++ *)
++ lt_outputfile="$lt_outputfile.exe"
++ lt_tool_outputfile="$lt_tool_outputfile.exe"
++ ;;
++ esac~
++ func_to_tool_file "$lt_outputfile"~
++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
++ $RM "$lt_outputfile.manifest";
++ fi'
++ ;;
++ *)
++ # g++
++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
++ # as there is no search path for DLLs.
++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
++ _LT_TAGVAR(always_export_symbols, $1)=no
++ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
++
++ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
++ # If the export-symbols file already is a .def file (1st line
++ # is EXPORTS), use it as is; otherwise, prepend...
++ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
++ cp $export_symbols $output_objdir/$soname.def;
++ else
++ echo EXPORTS > $output_objdir/$soname.def;
++ cat $export_symbols >> $output_objdir/$soname.def;
++ fi~
++ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
++ else
++ _LT_TAGVAR(ld_shlibs, $1)=no
++ fi
++ ;;
++ esac
++ ;;
+ darwin* | rhapsody*)
+ _LT_DARWIN_LINKER_FEATURES($1)
+ ;;
+@@ -5818,7 +6197,7 @@ if test "$_lt_caught_CXX_error" != yes; then
+ ;;
+ *)
+ if test "$GXX" = yes; then
+- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
++ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+@@ -5889,10 +6268,10 @@ if test "$_lt_caught_CXX_error" != yes; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ ia64*)
+- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ *)
+- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ fi
+@@ -5933,9 +6312,9 @@ if test "$_lt_caught_CXX_error" != yes; then
+ *)
+ if test "$GXX" = yes; then
+ if test "$with_gnu_ld" = no; then
+- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
+ fi
+ fi
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+@@ -6005,20 +6384,20 @@ if test "$_lt_caught_CXX_error" != yes; then
+ _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+ _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+ $RANLIB $oldlib'
+ _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ ;;
+ *) # Version 6 and above use weak symbols
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+@@ -6213,7 +6592,7 @@ if test "$_lt_caught_CXX_error" != yes; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ ;;
+ *)
+- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ ;;
+ esac
+
+@@ -6259,7 +6638,7 @@ if test "$_lt_caught_CXX_error" != yes; then
+
+ solaris*)
+ case $cc_basename in
+- CC*)
++ CC* | sunCC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
+ _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+@@ -6300,9 +6679,9 @@ if test "$_lt_caught_CXX_error" != yes; then
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+ if $CC --version | $GREP -v '^2\.7' > /dev/null; then
+- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+- $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
++ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+@@ -6431,6 +6810,7 @@ if test "$_lt_caught_CXX_error" != yes; then
+ fi # test -n "$compiler"
+
+ CC=$lt_save_CC
++ CFLAGS=$lt_save_CFLAGS
+ LDCXX=$LD
+ LD=$lt_save_LD
+ GCC=$lt_save_GCC
+@@ -6445,6 +6825,29 @@ AC_LANG_POP
+ ])# _LT_LANG_CXX_CONFIG
+
+
++# _LT_FUNC_STRIPNAME_CNF
++# ----------------------
++# func_stripname_cnf prefix suffix name
++# strip PREFIX and SUFFIX off of NAME.
++# PREFIX and SUFFIX must not contain globbing or regex special
++# characters, hashes, percent signs, but SUFFIX may contain a leading
++# dot (in which case that matches only a dot).
++#
++# This function is identical to the (non-XSI) version of func_stripname,
++# except this one can be used by m4 code that may be executed by configure,
++# rather than the libtool script.
++m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
++AC_REQUIRE([_LT_DECL_SED])
++AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
++func_stripname_cnf ()
++{
++ case ${2} in
++ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
++ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
++ esac
++} # func_stripname_cnf
++])# _LT_FUNC_STRIPNAME_CNF
++
+ # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
+ # ---------------------------------
+ # Figure out "hidden" library dependencies from verbose
+@@ -6453,6 +6856,7 @@ AC_LANG_POP
+ # objects, libraries and library flags.
+ m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
+ [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
++AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
+ # Dependencies to place before and after the object being linked:
+ _LT_TAGVAR(predep_objects, $1)=
+ _LT_TAGVAR(postdep_objects, $1)=
+@@ -6503,6 +6907,13 @@ public class foo {
+ };
+ _LT_EOF
+ ])
++
++_lt_libdeps_save_CFLAGS=$CFLAGS
++case "$CC $CFLAGS " in #(
++*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
++*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
++esac
++
+ dnl Parse the compiler output and extract the necessary
+ dnl objects, libraries and library flags.
+ if AC_TRY_EVAL(ac_compile); then
+@@ -6514,7 +6925,7 @@ if AC_TRY_EVAL(ac_compile); then
+ pre_test_object_deps_done=no
+
+ for p in `eval "$output_verbose_link_cmd"`; do
+- case $p in
++ case ${prev}${p} in
+
+ -L* | -R* | -l*)
+ # Some compilers place space between "-{L,R}" and the path.
+@@ -6523,13 +6934,22 @@ if AC_TRY_EVAL(ac_compile); then
+ test $p = "-R"; then
+ prev=$p
+ continue
+- else
+- prev=
+ fi
+
++ # Expand the sysroot to ease extracting the directories later.
++ if test -z "$prev"; then
++ case $p in
++ -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
++ -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
++ -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
++ esac
++ fi
++ case $p in
++ =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
++ esac
+ if test "$pre_test_object_deps_done" = no; then
+- case $p in
+- -L* | -R*)
++ case ${prev} in
++ -L | -R)
+ # Internal compiler library paths should come after those
+ # provided the user. The postdeps already come after the
+ # user supplied libs so there is no need to process them.
+@@ -6549,8 +6969,10 @@ if AC_TRY_EVAL(ac_compile); then
+ _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
+ fi
+ fi
++ prev=
+ ;;
+
++ *.lto.$objext) ;; # Ignore GCC LTO objects
+ *.$objext)
+ # This assumes that the test object file only shows up
+ # once in the compiler output.
+@@ -6586,6 +7008,7 @@ else
+ fi
+
+ $RM -f confest.$objext
++CFLAGS=$_lt_libdeps_save_CFLAGS
+
+ # PORTME: override above test on systems where it is broken
+ m4_if([$1], [CXX],
+@@ -6622,7 +7045,7 @@ linux*)
+
+ solaris*)
+ case $cc_basename in
+- CC*)
++ CC* | sunCC*)
+ # The more standards-conforming stlport4 library is
+ # incompatible with the Cstd library. Avoid specifying
+ # it if it's in CXXFLAGS. Ignore libCrun as
+@@ -6735,7 +7158,9 @@ if test "$_lt_disable_F77" != yes; then
+ # Allow CC to be a program name with arguments.
+ lt_save_CC="$CC"
+ lt_save_GCC=$GCC
++ lt_save_CFLAGS=$CFLAGS
+ CC=${F77-"f77"}
++ CFLAGS=$FFLAGS
+ compiler=$CC
+ _LT_TAGVAR(compiler, $1)=$CC
+ _LT_CC_BASENAME([$compiler])
+@@ -6789,6 +7214,7 @@ if test "$_lt_disable_F77" != yes; then
+
+ GCC=$lt_save_GCC
+ CC="$lt_save_CC"
++ CFLAGS="$lt_save_CFLAGS"
+ fi # test "$_lt_disable_F77" != yes
+
+ AC_LANG_POP
+@@ -6865,7 +7291,9 @@ if test "$_lt_disable_FC" != yes; then
+ # Allow CC to be a program name with arguments.
+ lt_save_CC="$CC"
+ lt_save_GCC=$GCC
++ lt_save_CFLAGS=$CFLAGS
+ CC=${FC-"f95"}
++ CFLAGS=$FCFLAGS
+ compiler=$CC
+ GCC=$ac_cv_fc_compiler_gnu
+
+@@ -6921,7 +7349,8 @@ if test "$_lt_disable_FC" != yes; then
+ fi # test -n "$compiler"
+
+ GCC=$lt_save_GCC
+- CC="$lt_save_CC"
++ CC=$lt_save_CC
++ CFLAGS=$lt_save_CFLAGS
+ fi # test "$_lt_disable_FC" != yes
+
+ AC_LANG_POP
+@@ -6958,10 +7387,12 @@ _LT_COMPILER_BOILERPLATE
+ _LT_LINKER_BOILERPLATE
+
+ # Allow CC to be a program name with arguments.
+-lt_save_CC="$CC"
++lt_save_CC=$CC
++lt_save_CFLAGS=$CFLAGS
+ lt_save_GCC=$GCC
+ GCC=yes
+ CC=${GCJ-"gcj"}
++CFLAGS=$GCJFLAGS
+ compiler=$CC
+ _LT_TAGVAR(compiler, $1)=$CC
+ _LT_TAGVAR(LD, $1)="$LD"
+@@ -6992,7 +7423,8 @@ fi
+ AC_LANG_RESTORE
+
+ GCC=$lt_save_GCC
+-CC="$lt_save_CC"
++CC=$lt_save_CC
++CFLAGS=$lt_save_CFLAGS
+ ])# _LT_LANG_GCJ_CONFIG
+
+
+@@ -7027,9 +7459,11 @@ _LT_LINKER_BOILERPLATE
+
+ # Allow CC to be a program name with arguments.
+ lt_save_CC="$CC"
++lt_save_CFLAGS=$CFLAGS
+ lt_save_GCC=$GCC
+ GCC=
+ CC=${RC-"windres"}
++CFLAGS=
+ compiler=$CC
+ _LT_TAGVAR(compiler, $1)=$CC
+ _LT_CC_BASENAME([$compiler])
+@@ -7042,7 +7476,8 @@ fi
+
+ GCC=$lt_save_GCC
+ AC_LANG_RESTORE
+-CC="$lt_save_CC"
++CC=$lt_save_CC
++CFLAGS=$lt_save_CFLAGS
+ ])# _LT_LANG_RC_CONFIG
+
+
+@@ -7101,6 +7536,15 @@ _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
+ AC_SUBST([OBJDUMP])
+ ])
+
++# _LT_DECL_DLLTOOL
++# ----------------
++# Ensure DLLTOOL variable is set.
++m4_defun([_LT_DECL_DLLTOOL],
++[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
++test -z "$DLLTOOL" && DLLTOOL=dlltool
++_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
++AC_SUBST([DLLTOOL])
++])
+
+ # _LT_DECL_SED
+ # ------------
+@@ -7194,8 +7638,8 @@ m4_defun([_LT_CHECK_SHELL_FEATURES],
+ # Try some XSI features
+ xsi_shell=no
+ ( _lt_dummy="a/b/c"
+- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
+- = c,a/b,, \
++ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
++ = c,a/b,b/c, \
+ && eval 'test $(( 1 + 1 )) -eq 2 \
+ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+ && xsi_shell=yes
+@@ -7234,206 +7678,162 @@ _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
+ ])# _LT_CHECK_SHELL_FEATURES
+
+
+-# _LT_PROG_XSI_SHELLFNS
+-# ---------------------
+-# Bourne and XSI compatible variants of some useful shell functions.
+-m4_defun([_LT_PROG_XSI_SHELLFNS],
+-[case $xsi_shell in
+- yes)
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_dirname file append nondir_replacement
+-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+-# otherwise set result to NONDIR_REPLACEMENT.
+-func_dirname ()
+-{
+- case ${1} in
+- */*) func_dirname_result="${1%/*}${2}" ;;
+- * ) func_dirname_result="${3}" ;;
+- esac
+-}
+-
+-# func_basename file
+-func_basename ()
+-{
+- func_basename_result="${1##*/}"
+-}
+-
+-# func_dirname_and_basename file append nondir_replacement
+-# perform func_basename and func_dirname in a single function
+-# call:
+-# dirname: Compute the dirname of FILE. If nonempty,
+-# add APPEND to the result, otherwise set result
+-# to NONDIR_REPLACEMENT.
+-# value returned in "$func_dirname_result"
+-# basename: Compute filename of FILE.
+-# value retuned in "$func_basename_result"
+-# Implementation must be kept synchronized with func_dirname
+-# and func_basename. For efficiency, we do not delegate to
+-# those functions but instead duplicate the functionality here.
+-func_dirname_and_basename ()
+-{
+- case ${1} in
+- */*) func_dirname_result="${1%/*}${2}" ;;
+- * ) func_dirname_result="${3}" ;;
+- esac
+- func_basename_result="${1##*/}"
+-}
+-
+-# func_stripname prefix suffix name
+-# strip PREFIX and SUFFIX off of NAME.
+-# PREFIX and SUFFIX must not contain globbing or regex special
+-# characters, hashes, percent signs, but SUFFIX may contain a leading
+-# dot (in which case that matches only a dot).
+-func_stripname ()
+-{
+- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+- # positional parameters, so assign one to ordinary parameter first.
+- func_stripname_result=${3}
+- func_stripname_result=${func_stripname_result#"${1}"}
+- func_stripname_result=${func_stripname_result%"${2}"}
+-}
+-
+-# func_opt_split
+-func_opt_split ()
+-{
+- func_opt_split_opt=${1%%=*}
+- func_opt_split_arg=${1#*=}
+-}
+-
+-# func_lo2o object
+-func_lo2o ()
+-{
+- case ${1} in
+- *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+- *) func_lo2o_result=${1} ;;
+- esac
+-}
+-
+-# func_xform libobj-or-source
+-func_xform ()
+-{
+- func_xform_result=${1%.*}.lo
+-}
+-
+-# func_arith arithmetic-term...
+-func_arith ()
+-{
+- func_arith_result=$(( $[*] ))
+-}
+-
+-# func_len string
+-# STRING may not start with a hyphen.
+-func_len ()
+-{
+- func_len_result=${#1}
+-}
++# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
++# ------------------------------------------------------
++# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
++# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
++m4_defun([_LT_PROG_FUNCTION_REPLACE],
++[dnl {
++sed -e '/^$1 ()$/,/^} # $1 /c\
++$1 ()\
++{\
++m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1])
++} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++])
+
+-_LT_EOF
+- ;;
+- *) # Bourne compatible functions.
+- cat << \_LT_EOF >> "$cfgfile"
+
+-# func_dirname file append nondir_replacement
+-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+-# otherwise set result to NONDIR_REPLACEMENT.
+-func_dirname ()
+-{
+- # Extract subdirectory from the argument.
+- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
+- if test "X$func_dirname_result" = "X${1}"; then
+- func_dirname_result="${3}"
+- else
+- func_dirname_result="$func_dirname_result${2}"
+- fi
+-}
++# _LT_PROG_REPLACE_SHELLFNS
++# -------------------------
++# Replace existing portable implementations of several shell functions with
++# equivalent extended shell implementations where those features are available..
++m4_defun([_LT_PROG_REPLACE_SHELLFNS],
++[if test x"$xsi_shell" = xyes; then
++ _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
++ case ${1} in
++ */*) func_dirname_result="${1%/*}${2}" ;;
++ * ) func_dirname_result="${3}" ;;
++ esac])
++
++ _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
++ func_basename_result="${1##*/}"])
++
++ _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
++ case ${1} in
++ */*) func_dirname_result="${1%/*}${2}" ;;
++ * ) func_dirname_result="${3}" ;;
++ esac
++ func_basename_result="${1##*/}"])
+
+-# func_basename file
+-func_basename ()
+-{
+- func_basename_result=`$ECHO "${1}" | $SED "$basename"`
+-}
++ _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
++ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
++ # positional parameters, so assign one to ordinary parameter first.
++ func_stripname_result=${3}
++ func_stripname_result=${func_stripname_result#"${1}"}
++ func_stripname_result=${func_stripname_result%"${2}"}])
+
+-dnl func_dirname_and_basename
+-dnl A portable version of this function is already defined in general.m4sh
+-dnl so there is no need for it here.
++ _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
++ func_split_long_opt_name=${1%%=*}
++ func_split_long_opt_arg=${1#*=}])
+
+-# func_stripname prefix suffix name
+-# strip PREFIX and SUFFIX off of NAME.
+-# PREFIX and SUFFIX must not contain globbing or regex special
+-# characters, hashes, percent signs, but SUFFIX may contain a leading
+-# dot (in which case that matches only a dot).
+-# func_strip_suffix prefix name
+-func_stripname ()
+-{
+- case ${2} in
+- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+- esac
+-}
++ _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
++ func_split_short_opt_arg=${1#??}
++ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
+
+-# sed scripts:
+-my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q'
+-my_sed_long_arg='1s/^-[[^=]]*=//'
++ _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
++ case ${1} in
++ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
++ *) func_lo2o_result=${1} ;;
++ esac])
+
+-# func_opt_split
+-func_opt_split ()
+-{
+- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
+- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
+-}
++ _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo])
+
+-# func_lo2o object
+-func_lo2o ()
+-{
+- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
+-}
++ _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))])
+
+-# func_xform libobj-or-source
+-func_xform ()
+-{
+- func_xform_result=`$ECHO "${1}" | $SED 's/\.[[^.]]*$/.lo/'`
+-}
++ _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}])
++fi
+
+-# func_arith arithmetic-term...
+-func_arith ()
+-{
+- func_arith_result=`expr "$[@]"`
+-}
++if test x"$lt_shell_append" = xyes; then
++ _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"])
+
+-# func_len string
+-# STRING may not start with a hyphen.
+-func_len ()
+-{
+- func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len`
+-}
++ _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
++ func_quote_for_eval "${2}"
++dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
++ eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
+
+-_LT_EOF
+-esac
++ # Save a `func_append' function call where possible by direct use of '+='
++ sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++ test 0 -eq $? || _lt_function_replace_fail=:
++else
++ # Save a `func_append' function call even when '+=' is not available
++ sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++ test 0 -eq $? || _lt_function_replace_fail=:
++fi
+
+-case $lt_shell_append in
+- yes)
+- cat << \_LT_EOF >> "$cfgfile"
++if test x"$_lt_function_replace_fail" = x":"; then
++ AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
++fi
++])
+
+-# func_append var value
+-# Append VALUE to the end of shell variable VAR.
+-func_append ()
+-{
+- eval "$[1]+=\$[2]"
+-}
+-_LT_EOF
++# _LT_PATH_CONVERSION_FUNCTIONS
++# -----------------------------
++# Determine which file name conversion functions should be used by
++# func_to_host_file (and, implicitly, by func_to_host_path). These are needed
++# for certain cross-compile configurations and native mingw.
++m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
++[AC_REQUIRE([AC_CANONICAL_HOST])dnl
++AC_REQUIRE([AC_CANONICAL_BUILD])dnl
++AC_MSG_CHECKING([how to convert $build file names to $host format])
++AC_CACHE_VAL(lt_cv_to_host_file_cmd,
++[case $host in
++ *-*-mingw* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
++ ;;
++ *-*-cygwin* )
++ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
++ ;;
++ * ) # otherwise, assume *nix
++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
++ ;;
++ esac
+ ;;
+- *)
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_append var value
+-# Append VALUE to the end of shell variable VAR.
+-func_append ()
+-{
+- eval "$[1]=\$$[1]\$[2]"
+-}
+-
+-_LT_EOF
++ *-*-cygwin* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
++ ;;
++ *-*-cygwin* )
++ lt_cv_to_host_file_cmd=func_convert_file_noop
++ ;;
++ * ) # otherwise, assume *nix
++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
++ ;;
++ esac
+ ;;
+- esac
++ * ) # unhandled hosts (and "normal" native builds)
++ lt_cv_to_host_file_cmd=func_convert_file_noop
++ ;;
++esac
++])
++to_host_file_cmd=$lt_cv_to_host_file_cmd
++AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
++_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
++ [0], [convert $build file names to $host format])dnl
++
++AC_MSG_CHECKING([how to convert $build file names to toolchain format])
++AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
++[#assume ordinary cross tools, or native build.
++lt_cv_to_tool_file_cmd=func_convert_file_noop
++case $host in
++ *-*-mingw* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
++ ;;
++ esac
++ ;;
++esac
+ ])
++to_tool_file_cmd=$lt_cv_to_tool_file_cmd
++AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
++_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
++ [0], [convert $build files to toolchain format])dnl
++])# _LT_PATH_CONVERSION_FUNCTIONS
+diff --git a/ltmain.sh b/ltmain.sh
+index 9503ec85d70..70e856e0659 100644
+--- a/ltmain.sh
++++ b/ltmain.sh
+@@ -1,10 +1,9 @@
+-# Generated from ltmain.m4sh.
+
+-# libtool (GNU libtool 1.3134 2009-11-29) 2.2.7a
++# libtool (GNU libtool) 2.4
+ # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+
+ # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
+-# 2007, 2008, 2009 Free Software Foundation, Inc.
++# 2007, 2008, 2009, 2010 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.
+
+@@ -38,7 +37,6 @@
+ # -n, --dry-run display commands without modifying any files
+ # --features display basic configuration information and exit
+ # --mode=MODE use operation mode MODE
+-# --no-finish let install mode avoid finish commands
+ # --preserve-dup-deps don't remove duplicate dependency libraries
+ # --quiet, --silent don't print informational messages
+ # --no-quiet, --no-silent
+@@ -71,17 +69,19 @@
+ # compiler: $LTCC
+ # compiler flags: $LTCFLAGS
+ # linker: $LD (gnu? $with_gnu_ld)
+-# $progname: (GNU libtool 1.3134 2009-11-29) 2.2.7a
++# $progname: (GNU libtool) 2.4
+ # automake: $automake_version
+ # autoconf: $autoconf_version
+ #
+ # Report bugs to <bug-libtool@gnu.org>.
++# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
++# General help using GNU software: <http://www.gnu.org/gethelp/>.
+
+ PROGRAM=libtool
+ PACKAGE=libtool
+-VERSION=2.2.7a
+-TIMESTAMP=" 1.3134 2009-11-29"
+-package_revision=1.3134
++VERSION=2.4
++TIMESTAMP=""
++package_revision=1.3293
+
+ # Be Bourne compatible
+ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+@@ -106,9 +106,6 @@ _LTECHO_EOF'
+ }
+
+ # NLS nuisances: We save the old values to restore during execute mode.
+-# Only set LANG and LC_ALL to C if already set.
+-# These must not be set unconditionally because not all systems understand
+-# e.g. LANG=C (notably SCO).
+ lt_user_locale=
+ lt_safe_locale=
+ for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+@@ -121,15 +118,13 @@ do
+ lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
+ fi"
+ done
++LC_ALL=C
++LANGUAGE=C
++export LANGUAGE LC_ALL
+
+ $lt_unset CDPATH
+
+
+-
+-
+-
+-
+-
+ # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+ # is ksh but when the shell is invoked as "sh" and the current value of
+ # the _XPG environment variable is not equal to 1 (one), the special
+@@ -140,7 +135,7 @@ progpath="$0"
+
+
+ : ${CP="cp -f"}
+-: ${ECHO=$as_echo}
++test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
+ : ${EGREP="/bin/grep -E"}
+ : ${FGREP="/bin/grep -F"}
+ : ${GREP="/bin/grep"}
+@@ -149,7 +144,7 @@ progpath="$0"
+ : ${MKDIR="mkdir"}
+ : ${MV="mv -f"}
+ : ${RM="rm -f"}
+-: ${SED="/mount/endor/wildenhu/local-x86_64/bin/sed"}
++: ${SED="/bin/sed"}
+ : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
+ : ${Xsed="$SED -e 1s/^X//"}
+
+@@ -169,6 +164,27 @@ IFS=" $lt_nl"
+ dirname="s,/[^/]*$,,"
+ basename="s,^.*/,,"
+
++# func_dirname file append nondir_replacement
++# Compute the dirname of FILE. If nonempty, add APPEND to the result,
++# otherwise set result to NONDIR_REPLACEMENT.
++func_dirname ()
++{
++ func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
++ if test "X$func_dirname_result" = "X${1}"; then
++ func_dirname_result="${3}"
++ else
++ func_dirname_result="$func_dirname_result${2}"
++ fi
++} # func_dirname may be replaced by extended shell implementation
++
++
++# func_basename file
++func_basename ()
++{
++ func_basename_result=`$ECHO "${1}" | $SED "$basename"`
++} # func_basename may be replaced by extended shell implementation
++
++
+ # func_dirname_and_basename file append nondir_replacement
+ # perform func_basename and func_dirname in a single function
+ # call:
+@@ -183,17 +199,31 @@ basename="s,^.*/,,"
+ # those functions but instead duplicate the functionality here.
+ func_dirname_and_basename ()
+ {
+- # Extract subdirectory from the argument.
+- func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
+- if test "X$func_dirname_result" = "X${1}"; then
+- func_dirname_result="${3}"
+- else
+- func_dirname_result="$func_dirname_result${2}"
+- fi
+- func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
+-}
++ # Extract subdirectory from the argument.
++ func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
++ if test "X$func_dirname_result" = "X${1}"; then
++ func_dirname_result="${3}"
++ else
++ func_dirname_result="$func_dirname_result${2}"
++ fi
++ func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
++} # func_dirname_and_basename may be replaced by extended shell implementation
++
++
++# func_stripname prefix suffix name
++# strip PREFIX and SUFFIX off of NAME.
++# PREFIX and SUFFIX must not contain globbing or regex special
++# characters, hashes, percent signs, but SUFFIX may contain a leading
++# dot (in which case that matches only a dot).
++# func_strip_suffix prefix name
++func_stripname ()
++{
++ case ${2} in
++ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
++ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
++ esac
++} # func_stripname may be replaced by extended shell implementation
+
+-# Generated shell functions inserted here.
+
+ # These SED scripts presuppose an absolute path with a trailing slash.
+ pathcar='s,^/\([^/]*\).*$,\1,'
+@@ -376,6 +406,15 @@ sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+ # Same as above, but do not quote variable references.
+ double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
++# Sed substitution that turns a string into a regex matching for the
++# string literally.
++sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
++
++# Sed substitution that converts a w32 file name or path
++# which contains forward slashes, into one that contains
++# (escaped) backslashes. A very naive implementation.
++lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
++
+ # Re-`\' parameter expansions in output of double_quote_subst that were
+ # `\'-ed in input to the same. If an odd number of `\' preceded a '$'
+ # in input to double_quote_subst, that '$' was protected from expansion.
+@@ -404,7 +443,7 @@ opt_warning=:
+ # name if it has been set yet.
+ func_echo ()
+ {
+- $ECHO "$progname${mode+: }$mode: $*"
++ $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
+ }
+
+ # func_verbose arg...
+@@ -430,14 +469,14 @@ func_echo_all ()
+ # Echo program name prefixed message to standard error.
+ func_error ()
+ {
+- $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
++ $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
+ }
+
+ # func_warning arg...
+ # Echo program name prefixed warning message to standard error.
+ func_warning ()
+ {
+- $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
++ $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
+
+ # bash bug again:
+ :
+@@ -656,19 +695,35 @@ func_show_eval_locale ()
+ fi
+ }
+
+-
+-
++# func_tr_sh
++# Turn $1 into a string suitable for a shell variable name.
++# Result is stored in $func_tr_sh_result. All characters
++# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
++# if $1 begins with a digit, a '_' is prepended as well.
++func_tr_sh ()
++{
++ case $1 in
++ [0-9]* | *[!a-zA-Z0-9_]*)
++ func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
++ ;;
++ * )
++ func_tr_sh_result=$1
++ ;;
++ esac
++}
+
+
+ # func_version
+ # Echo version message to standard output and exit.
+ func_version ()
+ {
++ $opt_debug
++
+ $SED -n '/(C)/!b go
+ :more
+ /\./!{
+ N
+- s/\n# //
++ s/\n# / /
+ b more
+ }
+ :go
+@@ -685,7 +740,9 @@ func_version ()
+ # Echo short help message to standard output and exit.
+ func_usage ()
+ {
+- $SED -n '/^# Usage:/,/^# *-h/ {
++ $opt_debug
++
++ $SED -n '/^# Usage:/,/^# *.*--help/ {
+ s/^# //
+ s/^# *$//
+ s/\$progname/'$progname'/
+@@ -701,7 +758,10 @@ func_usage ()
+ # unless 'noexit' is passed as argument.
+ func_help ()
+ {
++ $opt_debug
++
+ $SED -n '/^# Usage:/,/# Report bugs to/ {
++ :print
+ s/^# //
+ s/^# *$//
+ s*\$progname*'$progname'*
+@@ -714,7 +774,11 @@ func_help ()
+ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
+ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
+ p
+- }' < "$progpath"
++ d
++ }
++ /^# .* home page:/b print
++ /^# General help using/b print
++ ' < "$progpath"
+ ret=$?
+ if test -z "$1"; then
+ exit $ret
+@@ -726,12 +790,39 @@ func_help ()
+ # exit_cmd.
+ func_missing_arg ()
+ {
+- func_error "missing argument for $1"
++ $opt_debug
++
++ func_error "missing argument for $1."
+ exit_cmd=exit
+ }
+
+-exit_cmd=:
+
++# func_split_short_opt shortopt
++# Set func_split_short_opt_name and func_split_short_opt_arg shell
++# variables after splitting SHORTOPT after the 2nd character.
++func_split_short_opt ()
++{
++ my_sed_short_opt='1s/^\(..\).*$/\1/;q'
++ my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
++
++ func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
++ func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
++} # func_split_short_opt may be replaced by extended shell implementation
++
++
++# func_split_long_opt longopt
++# Set func_split_long_opt_name and func_split_long_opt_arg shell
++# variables after splitting LONGOPT at the `=' sign.
++func_split_long_opt ()
++{
++ my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
++ my_sed_long_arg='1s/^--[^=]*=//'
++
++ func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
++ func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
++} # func_split_long_opt may be replaced by extended shell implementation
++
++exit_cmd=:
+
+
+
+@@ -741,26 +832,64 @@ magic="%%%MAGIC variable%%%"
+ magic_exe="%%%MAGIC EXE variable%%%"
+
+ # Global variables.
+-# $mode is unset
+ nonopt=
+-execute_dlfiles=
+ preserve_args=
+ lo2o="s/\\.lo\$/.${objext}/"
+ o2lo="s/\\.${objext}\$/.lo/"
+ extracted_archives=
+ extracted_serial=0
+
+-opt_dry_run=false
+-opt_finish=:
+-opt_duplicate_deps=false
+-opt_silent=false
+-opt_debug=:
+-
+ # If this variable is set in any of the actions, the command in it
+ # will be execed at the end. This prevents here-documents from being
+ # left over by shells.
+ exec_cmd=
+
++# func_append var value
++# Append VALUE to the end of shell variable VAR.
++func_append ()
++{
++ eval "${1}=\$${1}\${2}"
++} # func_append may be replaced by extended shell implementation
++
++# func_append_quoted var value
++# Quote VALUE and append to the end of shell variable VAR, separated
++# by a space.
++func_append_quoted ()
++{
++ func_quote_for_eval "${2}"
++ eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
++} # func_append_quoted may be replaced by extended shell implementation
++
++
++# func_arith arithmetic-term...
++func_arith ()
++{
++ func_arith_result=`expr "${@}"`
++} # func_arith may be replaced by extended shell implementation
++
++
++# func_len string
++# STRING may not start with a hyphen.
++func_len ()
++{
++ func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
++} # func_len may be replaced by extended shell implementation
++
++
++# func_lo2o object
++func_lo2o ()
++{
++ func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
++} # func_lo2o may be replaced by extended shell implementation
++
++
++# func_xform libobj-or-source
++func_xform ()
++{
++ func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
++} # func_xform may be replaced by extended shell implementation
++
++
+ # func_fatal_configuration arg...
+ # Echo program name prefixed message to standard error, followed by
+ # a configuration failure hint, and exit.
+@@ -850,130 +979,204 @@ func_enable_tag ()
+ esac
+ }
+
+-# Parse options once, thoroughly. This comes as soon as possible in
+-# the script to make things like `libtool --version' happen quickly.
++# func_check_version_match
++# Ensure that we are using m4 macros, and libtool script from the same
++# release of libtool.
++func_check_version_match ()
+ {
++ if test "$package_revision" != "$macro_revision"; then
++ if test "$VERSION" != "$macro_version"; then
++ if test -z "$macro_version"; then
++ cat >&2 <<_LT_EOF
++$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
++$progname: definition of this LT_INIT comes from an older release.
++$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
++$progname: and run autoconf again.
++_LT_EOF
++ else
++ cat >&2 <<_LT_EOF
++$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
++$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
++$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
++$progname: and run autoconf again.
++_LT_EOF
++ fi
++ else
++ cat >&2 <<_LT_EOF
++$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
++$progname: but the definition of this LT_INIT comes from revision $macro_revision.
++$progname: You should recreate aclocal.m4 with macros from revision $package_revision
++$progname: of $PACKAGE $VERSION and run autoconf again.
++_LT_EOF
++ fi
+
+- # Shorthand for --mode=foo, only valid as the first argument
+- case $1 in
+- clean|clea|cle|cl)
+- shift; set dummy --mode clean ${1+"$@"}; shift
+- ;;
+- compile|compil|compi|comp|com|co|c)
+- shift; set dummy --mode compile ${1+"$@"}; shift
+- ;;
+- execute|execut|execu|exec|exe|ex|e)
+- shift; set dummy --mode execute ${1+"$@"}; shift
+- ;;
+- finish|finis|fini|fin|fi|f)
+- shift; set dummy --mode finish ${1+"$@"}; shift
+- ;;
+- install|instal|insta|inst|ins|in|i)
+- shift; set dummy --mode install ${1+"$@"}; shift
+- ;;
+- link|lin|li|l)
+- shift; set dummy --mode link ${1+"$@"}; shift
+- ;;
+- uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
+- shift; set dummy --mode uninstall ${1+"$@"}; shift
+- ;;
+- esac
++ exit $EXIT_MISMATCH
++ fi
++}
++
++
++# Shorthand for --mode=foo, only valid as the first argument
++case $1 in
++clean|clea|cle|cl)
++ shift; set dummy --mode clean ${1+"$@"}; shift
++ ;;
++compile|compil|compi|comp|com|co|c)
++ shift; set dummy --mode compile ${1+"$@"}; shift
++ ;;
++execute|execut|execu|exec|exe|ex|e)
++ shift; set dummy --mode execute ${1+"$@"}; shift
++ ;;
++finish|finis|fini|fin|fi|f)
++ shift; set dummy --mode finish ${1+"$@"}; shift
++ ;;
++install|instal|insta|inst|ins|in|i)
++ shift; set dummy --mode install ${1+"$@"}; shift
++ ;;
++link|lin|li|l)
++ shift; set dummy --mode link ${1+"$@"}; shift
++ ;;
++uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
++ shift; set dummy --mode uninstall ${1+"$@"}; shift
++ ;;
++esac
+
+- # Parse non-mode specific arguments:
+- while test "$#" -gt 0; do
++
++
++# Option defaults:
++opt_debug=:
++opt_dry_run=false
++opt_config=false
++opt_preserve_dup_deps=false
++opt_features=false
++opt_finish=false
++opt_help=false
++opt_help_all=false
++opt_silent=:
++opt_verbose=:
++opt_silent=false
++opt_verbose=false
++
++
++# Parse options once, thoroughly. This comes as soon as possible in the
++# script to make things like `--version' happen as quickly as we can.
++{
++ # this just eases exit handling
++ while test $# -gt 0; do
+ opt="$1"
+ shift
+-
+ case $opt in
+- --config) func_config ;;
+-
+- --debug) preserve_args="$preserve_args $opt"
++ --debug|-x) opt_debug='set -x'
+ func_echo "enabling shell trace mode"
+- opt_debug='set -x'
+ $opt_debug
+ ;;
+-
+- -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break
+- execute_dlfiles="$execute_dlfiles $1"
+- shift
++ --dry-run|--dryrun|-n)
++ opt_dry_run=:
+ ;;
+-
+- --dry-run | -n) opt_dry_run=: ;;
+- --features) func_features ;;
+- --finish) mode="finish" ;;
+- --no-finish) opt_finish=false ;;
+-
+- --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break
+- case $1 in
+- # Valid mode arguments:
+- clean) ;;
+- compile) ;;
+- execute) ;;
+- finish) ;;
+- install) ;;
+- link) ;;
+- relink) ;;
+- uninstall) ;;
+-
+- # Catch anything else as an error
+- *) func_error "invalid argument for $opt"
+- exit_cmd=exit
+- break
+- ;;
+- esac
+-
+- mode="$1"
++ --config)
++ opt_config=:
++func_config
++ ;;
++ --dlopen|-dlopen)
++ optarg="$1"
++ opt_dlopen="${opt_dlopen+$opt_dlopen
++}$optarg"
+ shift
+ ;;
+-
+ --preserve-dup-deps)
+- opt_duplicate_deps=: ;;
+-
+- --quiet|--silent) preserve_args="$preserve_args $opt"
+- opt_silent=:
+- opt_verbose=false
++ opt_preserve_dup_deps=:
+ ;;
+-
+- --no-quiet|--no-silent)
+- preserve_args="$preserve_args $opt"
+- opt_silent=false
++ --features)
++ opt_features=:
++func_features
+ ;;
+-
+- --verbose| -v) preserve_args="$preserve_args $opt"
++ --finish)
++ opt_finish=:
++set dummy --mode finish ${1+"$@"}; shift
++ ;;
++ --help)
++ opt_help=:
++ ;;
++ --help-all)
++ opt_help_all=:
++opt_help=': help-all'
++ ;;
++ --mode)
++ test $# = 0 && func_missing_arg $opt && break
++ optarg="$1"
++ opt_mode="$optarg"
++case $optarg in
++ # Valid mode arguments:
++ clean|compile|execute|finish|install|link|relink|uninstall) ;;
++
++ # Catch anything else as an error
++ *) func_error "invalid argument for $opt"
++ exit_cmd=exit
++ break
++ ;;
++esac
++ shift
++ ;;
++ --no-silent|--no-quiet)
+ opt_silent=false
+- opt_verbose=:
++func_append preserve_args " $opt"
+ ;;
+-
+- --no-verbose) preserve_args="$preserve_args $opt"
++ --no-verbose)
+ opt_verbose=false
++func_append preserve_args " $opt"
+ ;;
+-
+- --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break
+- preserve_args="$preserve_args $opt $1"
+- func_enable_tag "$1" # tagname is set here
++ --silent|--quiet)
++ opt_silent=:
++func_append preserve_args " $opt"
++ opt_verbose=false
++ ;;
++ --verbose|-v)
++ opt_verbose=:
++func_append preserve_args " $opt"
++opt_silent=false
++ ;;
++ --tag)
++ test $# = 0 && func_missing_arg $opt && break
++ optarg="$1"
++ opt_tag="$optarg"
++func_append preserve_args " $opt $optarg"
++func_enable_tag "$optarg"
+ shift
+ ;;
+
++ -\?|-h) func_usage ;;
++ --help) func_help ;;
++ --version) func_version ;;
++
+ # Separate optargs to long options:
+- -dlopen=*|--mode=*|--tag=*)
+- func_opt_split "$opt"
+- set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
++ --*=*)
++ func_split_long_opt "$opt"
++ set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
+ shift
+ ;;
+
+- -\?|-h) func_usage ;;
+- --help) opt_help=: ;;
+- --help-all) opt_help=': help-all' ;;
+- --version) func_version ;;
+-
+- -*) func_fatal_help "unrecognized option \`$opt'" ;;
+-
+- *) nonopt="$opt"
+- break
++ # Separate non-argument short options:
++ -\?*|-h*|-n*|-v*)
++ func_split_short_opt "$opt"
++ set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
++ shift
+ ;;
++
++ --) break ;;
++ -*) func_fatal_help "unrecognized option \`$opt'" ;;
++ *) set dummy "$opt" ${1+"$@"}; shift; break ;;
+ esac
+ done
+
++ # Validate options:
++
++ # save first non-option argument
++ if test "$#" -gt 0; then
++ nonopt="$opt"
++ shift
++ fi
++
++ # preserve --debug
++ test "$opt_debug" = : || func_append preserve_args " --debug"
+
+ case $host in
+ *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* )
+@@ -981,82 +1184,44 @@ func_enable_tag ()
+ opt_duplicate_compiler_generated_deps=:
+ ;;
+ *)
+- opt_duplicate_compiler_generated_deps=$opt_duplicate_deps
++ opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
+ ;;
+ esac
+
+- # Having warned about all mis-specified options, bail out if
+- # anything was wrong.
+- $exit_cmd $EXIT_FAILURE
+-}
++ $opt_help || {
++ # Sanity checks first:
++ func_check_version_match
+
+-# func_check_version_match
+-# Ensure that we are using m4 macros, and libtool script from the same
+-# release of libtool.
+-func_check_version_match ()
+-{
+- if test "$package_revision" != "$macro_revision"; then
+- if test "$VERSION" != "$macro_version"; then
+- if test -z "$macro_version"; then
+- cat >&2 <<_LT_EOF
+-$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
+-$progname: definition of this LT_INIT comes from an older release.
+-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+-$progname: and run autoconf again.
+-_LT_EOF
+- else
+- cat >&2 <<_LT_EOF
+-$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
+-$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
+-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+-$progname: and run autoconf again.
+-_LT_EOF
+- fi
+- else
+- cat >&2 <<_LT_EOF
+-$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
+-$progname: but the definition of this LT_INIT comes from revision $macro_revision.
+-$progname: You should recreate aclocal.m4 with macros from revision $package_revision
+-$progname: of $PACKAGE $VERSION and run autoconf again.
+-_LT_EOF
++ if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
++ func_fatal_configuration "not configured to build any kind of library"
+ fi
+
+- exit $EXIT_MISMATCH
+- fi
+-}
+-
++ # Darwin sucks
++ eval std_shrext=\"$shrext_cmds\"
+
+-## ----------- ##
+-## Main. ##
+-## ----------- ##
+-
+-$opt_help || {
+- # Sanity checks first:
+- func_check_version_match
+-
+- if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+- func_fatal_configuration "not configured to build any kind of library"
+- fi
++ # Only execute mode is allowed to have -dlopen flags.
++ if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
++ func_error "unrecognized option \`-dlopen'"
++ $ECHO "$help" 1>&2
++ exit $EXIT_FAILURE
++ fi
+
+- test -z "$mode" && func_fatal_error "error: you must specify a MODE."
++ # Change the help message to a mode-specific one.
++ generic_help="$help"
++ help="Try \`$progname --help --mode=$opt_mode' for more information."
++ }
+
+
+- # Darwin sucks
+- eval "std_shrext=\"$shrext_cmds\""
++ # Bail if the options were screwed
++ $exit_cmd $EXIT_FAILURE
++}
+
+
+- # Only execute mode is allowed to have -dlopen flags.
+- if test -n "$execute_dlfiles" && test "$mode" != execute; then
+- func_error "unrecognized option \`-dlopen'"
+- $ECHO "$help" 1>&2
+- exit $EXIT_FAILURE
+- fi
+
+- # Change the help message to a mode-specific one.
+- generic_help="$help"
+- help="Try \`$progname --help --mode=$mode' for more information."
+-}
+
++## ----------- ##
++## Main. ##
++## ----------- ##
+
+ # func_lalib_p file
+ # True iff FILE is a libtool `.la' library or `.lo' object file.
+@@ -1121,12 +1286,9 @@ func_ltwrapper_executable_p ()
+ # temporary ltwrapper_script.
+ func_ltwrapper_scriptname ()
+ {
+- func_ltwrapper_scriptname_result=""
+- if func_ltwrapper_executable_p "$1"; then
+- func_dirname_and_basename "$1" "" "."
+- func_stripname '' '.exe' "$func_basename_result"
+- func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
+- fi
++ func_dirname_and_basename "$1" "" "."
++ func_stripname '' '.exe' "$func_basename_result"
++ func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
+ }
+
+ # func_ltwrapper_p file
+@@ -1149,7 +1311,7 @@ func_execute_cmds ()
+ save_ifs=$IFS; IFS='~'
+ for cmd in $1; do
+ IFS=$save_ifs
+- eval "cmd=\"$cmd\""
++ eval cmd=\"$cmd\"
+ func_show_eval "$cmd" "${2-:}"
+ done
+ IFS=$save_ifs
+@@ -1172,6 +1334,37 @@ func_source ()
+ }
+
+
++# func_resolve_sysroot PATH
++# Replace a leading = in PATH with a sysroot. Store the result into
++# func_resolve_sysroot_result
++func_resolve_sysroot ()
++{
++ func_resolve_sysroot_result=$1
++ case $func_resolve_sysroot_result in
++ =*)
++ func_stripname '=' '' "$func_resolve_sysroot_result"
++ func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
++ ;;
++ esac
++}
++
++# func_replace_sysroot PATH
++# If PATH begins with the sysroot, replace it with = and
++# store the result into func_replace_sysroot_result.
++func_replace_sysroot ()
++{
++ case "$lt_sysroot:$1" in
++ ?*:"$lt_sysroot"*)
++ func_stripname "$lt_sysroot" '' "$1"
++ func_replace_sysroot_result="=$func_stripname_result"
++ ;;
++ *)
++ # Including no sysroot.
++ func_replace_sysroot_result=$1
++ ;;
++ esac
++}
++
+ # func_infer_tag arg
+ # Infer tagged configuration to use if any are available and
+ # if one wasn't chosen via the "--tag" command line option.
+@@ -1184,8 +1377,7 @@ func_infer_tag ()
+ if test -n "$available_tags" && test -z "$tagname"; then
+ CC_quoted=
+ for arg in $CC; do
+- func_quote_for_eval "$arg"
+- CC_quoted="$CC_quoted $func_quote_for_eval_result"
++ func_append_quoted CC_quoted "$arg"
+ done
+ CC_expanded=`func_echo_all $CC`
+ CC_quoted_expanded=`func_echo_all $CC_quoted`
+@@ -1204,8 +1396,7 @@ func_infer_tag ()
+ CC_quoted=
+ for arg in $CC; do
+ # Double-quote args containing other shell metacharacters.
+- func_quote_for_eval "$arg"
+- CC_quoted="$CC_quoted $func_quote_for_eval_result"
++ func_append_quoted CC_quoted "$arg"
+ done
+ CC_expanded=`func_echo_all $CC`
+ CC_quoted_expanded=`func_echo_all $CC_quoted`
+@@ -1274,6 +1465,486 @@ EOF
+ }
+ }
+
++
++##################################################
++# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
++##################################################
++
++# func_convert_core_file_wine_to_w32 ARG
++# Helper function used by file name conversion functions when $build is *nix,
++# and $host is mingw, cygwin, or some other w32 environment. Relies on a
++# correctly configured wine environment available, with the winepath program
++# in $build's $PATH.
++#
++# ARG is the $build file name to be converted to w32 format.
++# Result is available in $func_convert_core_file_wine_to_w32_result, and will
++# be empty on error (or when ARG is empty)
++func_convert_core_file_wine_to_w32 ()
++{
++ $opt_debug
++ func_convert_core_file_wine_to_w32_result="$1"
++ if test -n "$1"; then
++ # Unfortunately, winepath does not exit with a non-zero error code, so we
++ # are forced to check the contents of stdout. On the other hand, if the
++ # command is not found, the shell will set an exit code of 127 and print
++ # *an error message* to stdout. So we must check for both error code of
++ # zero AND non-empty stdout, which explains the odd construction:
++ func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
++ if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
++ func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
++ $SED -e "$lt_sed_naive_backslashify"`
++ else
++ func_convert_core_file_wine_to_w32_result=
++ fi
++ fi
++}
++# end: func_convert_core_file_wine_to_w32
++
++
++# func_convert_core_path_wine_to_w32 ARG
++# Helper function used by path conversion functions when $build is *nix, and
++# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
++# configured wine environment available, with the winepath program in $build's
++# $PATH. Assumes ARG has no leading or trailing path separator characters.
++#
++# ARG is path to be converted from $build format to win32.
++# Result is available in $func_convert_core_path_wine_to_w32_result.
++# Unconvertible file (directory) names in ARG are skipped; if no directory names
++# are convertible, then the result may be empty.
++func_convert_core_path_wine_to_w32 ()
++{
++ $opt_debug
++ # unfortunately, winepath doesn't convert paths, only file names
++ func_convert_core_path_wine_to_w32_result=""
++ if test -n "$1"; then
++ oldIFS=$IFS
++ IFS=:
++ for func_convert_core_path_wine_to_w32_f in $1; do
++ IFS=$oldIFS
++ func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
++ if test -n "$func_convert_core_file_wine_to_w32_result" ; then
++ if test -z "$func_convert_core_path_wine_to_w32_result"; then
++ func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
++ else
++ func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
++ fi
++ fi
++ done
++ IFS=$oldIFS
++ fi
++}
++# end: func_convert_core_path_wine_to_w32
++
++
++# func_cygpath ARGS...
++# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
++# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
++# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
++# (2), returns the Cygwin file name or path in func_cygpath_result (input
++# file name or path is assumed to be in w32 format, as previously converted
++# from $build's *nix or MSYS format). In case (3), returns the w32 file name
++# or path in func_cygpath_result (input file name or path is assumed to be in
++# Cygwin format). Returns an empty string on error.
++#
++# ARGS are passed to cygpath, with the last one being the file name or path to
++# be converted.
++#
++# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
++# environment variable; do not put it in $PATH.
++func_cygpath ()
++{
++ $opt_debug
++ if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
++ func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
++ if test "$?" -ne 0; then
++ # on failure, ensure result is empty
++ func_cygpath_result=
++ fi
++ else
++ func_cygpath_result=
++ func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
++ fi
++}
++#end: func_cygpath
++
++
++# func_convert_core_msys_to_w32 ARG
++# Convert file name or path ARG from MSYS format to w32 format. Return
++# result in func_convert_core_msys_to_w32_result.
++func_convert_core_msys_to_w32 ()
++{
++ $opt_debug
++ # awkward: cmd appends spaces to result
++ func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
++ $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
++}
++#end: func_convert_core_msys_to_w32
++
++
++# func_convert_file_check ARG1 ARG2
++# Verify that ARG1 (a file name in $build format) was converted to $host
++# format in ARG2. Otherwise, emit an error message, but continue (resetting
++# func_to_host_file_result to ARG1).
++func_convert_file_check ()
++{
++ $opt_debug
++ if test -z "$2" && test -n "$1" ; then
++ func_error "Could not determine host file name corresponding to"
++ func_error " \`$1'"
++ func_error "Continuing, but uninstalled executables may not work."
++ # Fallback:
++ func_to_host_file_result="$1"
++ fi
++}
++# end func_convert_file_check
++
++
++# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
++# Verify that FROM_PATH (a path in $build format) was converted to $host
++# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
++# func_to_host_file_result to a simplistic fallback value (see below).
++func_convert_path_check ()
++{
++ $opt_debug
++ if test -z "$4" && test -n "$3"; then
++ func_error "Could not determine the host path corresponding to"
++ func_error " \`$3'"
++ func_error "Continuing, but uninstalled executables may not work."
++ # Fallback. This is a deliberately simplistic "conversion" and
++ # should not be "improved". See libtool.info.
++ if test "x$1" != "x$2"; then
++ lt_replace_pathsep_chars="s|$1|$2|g"
++ func_to_host_path_result=`echo "$3" |
++ $SED -e "$lt_replace_pathsep_chars"`
++ else
++ func_to_host_path_result="$3"
++ fi
++ fi
++}
++# end func_convert_path_check
++
++
++# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
++# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
++# and appending REPL if ORIG matches BACKPAT.
++func_convert_path_front_back_pathsep ()
++{
++ $opt_debug
++ case $4 in
++ $1 ) func_to_host_path_result="$3$func_to_host_path_result"
++ ;;
++ esac
++ case $4 in
++ $2 ) func_append func_to_host_path_result "$3"
++ ;;
++ esac
++}
++# end func_convert_path_front_back_pathsep
++
++
++##################################################
++# $build to $host FILE NAME CONVERSION FUNCTIONS #
++##################################################
++# invoked via `$to_host_file_cmd ARG'
++#
++# In each case, ARG is the path to be converted from $build to $host format.
++# Result will be available in $func_to_host_file_result.
++
++
++# func_to_host_file ARG
++# Converts the file name ARG from $build format to $host format. Return result
++# in func_to_host_file_result.
++func_to_host_file ()
++{
++ $opt_debug
++ $to_host_file_cmd "$1"
++}
++# end func_to_host_file
++
++
++# func_to_tool_file ARG LAZY
++# converts the file name ARG from $build format to toolchain format. Return
++# result in func_to_tool_file_result. If the conversion in use is listed
++# in (the comma separated) LAZY, no conversion takes place.
++func_to_tool_file ()
++{
++ $opt_debug
++ case ,$2, in
++ *,"$to_tool_file_cmd",*)
++ func_to_tool_file_result=$1
++ ;;
++ *)
++ $to_tool_file_cmd "$1"
++ func_to_tool_file_result=$func_to_host_file_result
++ ;;
++ esac
++}
++# end func_to_tool_file
++
++
++# func_convert_file_noop ARG
++# Copy ARG to func_to_host_file_result.
++func_convert_file_noop ()
++{
++ func_to_host_file_result="$1"
++}
++# end func_convert_file_noop
++
++
++# func_convert_file_msys_to_w32 ARG
++# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
++# conversion to w32 is not available inside the cwrapper. Returns result in
++# func_to_host_file_result.
++func_convert_file_msys_to_w32 ()
++{
++ $opt_debug
++ func_to_host_file_result="$1"
++ if test -n "$1"; then
++ func_convert_core_msys_to_w32 "$1"
++ func_to_host_file_result="$func_convert_core_msys_to_w32_result"
++ fi
++ func_convert_file_check "$1" "$func_to_host_file_result"
++}
++# end func_convert_file_msys_to_w32
++
++
++# func_convert_file_cygwin_to_w32 ARG
++# Convert file name ARG from Cygwin to w32 format. Returns result in
++# func_to_host_file_result.
++func_convert_file_cygwin_to_w32 ()
++{
++ $opt_debug
++ func_to_host_file_result="$1"
++ if test -n "$1"; then
++ # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
++ # LT_CYGPATH in this case.
++ func_to_host_file_result=`cygpath -m "$1"`
++ fi
++ func_convert_file_check "$1" "$func_to_host_file_result"
++}
++# end func_convert_file_cygwin_to_w32
++
++
++# func_convert_file_nix_to_w32 ARG
++# Convert file name ARG from *nix to w32 format. Requires a wine environment
++# and a working winepath. Returns result in func_to_host_file_result.
++func_convert_file_nix_to_w32 ()
++{
++ $opt_debug
++ func_to_host_file_result="$1"
++ if test -n "$1"; then
++ func_convert_core_file_wine_to_w32 "$1"
++ func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
++ fi
++ func_convert_file_check "$1" "$func_to_host_file_result"
++}
++# end func_convert_file_nix_to_w32
++
++
++# func_convert_file_msys_to_cygwin ARG
++# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
++# Returns result in func_to_host_file_result.
++func_convert_file_msys_to_cygwin ()
++{
++ $opt_debug
++ func_to_host_file_result="$1"
++ if test -n "$1"; then
++ func_convert_core_msys_to_w32 "$1"
++ func_cygpath -u "$func_convert_core_msys_to_w32_result"
++ func_to_host_file_result="$func_cygpath_result"
++ fi
++ func_convert_file_check "$1" "$func_to_host_file_result"
++}
++# end func_convert_file_msys_to_cygwin
++
++
++# func_convert_file_nix_to_cygwin ARG
++# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed
++# in a wine environment, working winepath, and LT_CYGPATH set. Returns result
++# in func_to_host_file_result.
++func_convert_file_nix_to_cygwin ()
++{
++ $opt_debug
++ func_to_host_file_result="$1"
++ if test -n "$1"; then
++ # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
++ func_convert_core_file_wine_to_w32 "$1"
++ func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
++ func_to_host_file_result="$func_cygpath_result"
++ fi
++ func_convert_file_check "$1" "$func_to_host_file_result"
++}
++# end func_convert_file_nix_to_cygwin
++
++
++#############################################
++# $build to $host PATH CONVERSION FUNCTIONS #
++#############################################
++# invoked via `$to_host_path_cmd ARG'
++#
++# In each case, ARG is the path to be converted from $build to $host format.
++# The result will be available in $func_to_host_path_result.
++#
++# Path separators are also converted from $build format to $host format. If
++# ARG begins or ends with a path separator character, it is preserved (but
++# converted to $host format) on output.
++#
++# All path conversion functions are named using the following convention:
++# file name conversion function : func_convert_file_X_to_Y ()
++# path conversion function : func_convert_path_X_to_Y ()
++# where, for any given $build/$host combination the 'X_to_Y' value is the
++# same. If conversion functions are added for new $build/$host combinations,
++# the two new functions must follow this pattern, or func_init_to_host_path_cmd
++# will break.
++
++
++# func_init_to_host_path_cmd
++# Ensures that function "pointer" variable $to_host_path_cmd is set to the
++# appropriate value, based on the value of $to_host_file_cmd.
++to_host_path_cmd=
++func_init_to_host_path_cmd ()
++{
++ $opt_debug
++ if test -z "$to_host_path_cmd"; then
++ func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
++ to_host_path_cmd="func_convert_path_${func_stripname_result}"
++ fi
++}
++
++
++# func_to_host_path ARG
++# Converts the path ARG from $build format to $host format. Return result
++# in func_to_host_path_result.
++func_to_host_path ()
++{
++ $opt_debug
++ func_init_to_host_path_cmd
++ $to_host_path_cmd "$1"
++}
++# end func_to_host_path
++
++
++# func_convert_path_noop ARG
++# Copy ARG to func_to_host_path_result.
++func_convert_path_noop ()
++{
++ func_to_host_path_result="$1"
++}
++# end func_convert_path_noop
++
++
++# func_convert_path_msys_to_w32 ARG
++# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
++# conversion to w32 is not available inside the cwrapper. Returns result in
++# func_to_host_path_result.
++func_convert_path_msys_to_w32 ()
++{
++ $opt_debug
++ func_to_host_path_result="$1"
++ if test -n "$1"; then
++ # Remove leading and trailing path separator characters from ARG. MSYS
++ # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
++ # and winepath ignores them completely.
++ func_stripname : : "$1"
++ func_to_host_path_tmp1=$func_stripname_result
++ func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
++ func_to_host_path_result="$func_convert_core_msys_to_w32_result"
++ func_convert_path_check : ";" \
++ "$func_to_host_path_tmp1" "$func_to_host_path_result"
++ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
++ fi
++}
++# end func_convert_path_msys_to_w32
++
++
++# func_convert_path_cygwin_to_w32 ARG
++# Convert path ARG from Cygwin to w32 format. Returns result in
++# func_to_host_file_result.
++func_convert_path_cygwin_to_w32 ()
++{
++ $opt_debug
++ func_to_host_path_result="$1"
++ if test -n "$1"; then
++ # See func_convert_path_msys_to_w32:
++ func_stripname : : "$1"
++ func_to_host_path_tmp1=$func_stripname_result
++ func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
++ func_convert_path_check : ";" \
++ "$func_to_host_path_tmp1" "$func_to_host_path_result"
++ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
++ fi
++}
++# end func_convert_path_cygwin_to_w32
++
++
++# func_convert_path_nix_to_w32 ARG
++# Convert path ARG from *nix to w32 format. Requires a wine environment and
++# a working winepath. Returns result in func_to_host_file_result.
++func_convert_path_nix_to_w32 ()
++{
++ $opt_debug
++ func_to_host_path_result="$1"
++ if test -n "$1"; then
++ # See func_convert_path_msys_to_w32:
++ func_stripname : : "$1"
++ func_to_host_path_tmp1=$func_stripname_result
++ func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
++ func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
++ func_convert_path_check : ";" \
++ "$func_to_host_path_tmp1" "$func_to_host_path_result"
++ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
++ fi
++}
++# end func_convert_path_nix_to_w32
++
++
++# func_convert_path_msys_to_cygwin ARG
++# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
++# Returns result in func_to_host_file_result.
++func_convert_path_msys_to_cygwin ()
++{
++ $opt_debug
++ func_to_host_path_result="$1"
++ if test -n "$1"; then
++ # See func_convert_path_msys_to_w32:
++ func_stripname : : "$1"
++ func_to_host_path_tmp1=$func_stripname_result
++ func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
++ func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
++ func_to_host_path_result="$func_cygpath_result"
++ func_convert_path_check : : \
++ "$func_to_host_path_tmp1" "$func_to_host_path_result"
++ func_convert_path_front_back_pathsep ":*" "*:" : "$1"
++ fi
++}
++# end func_convert_path_msys_to_cygwin
++
++
++# func_convert_path_nix_to_cygwin ARG
++# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a
++# a wine environment, working winepath, and LT_CYGPATH set. Returns result in
++# func_to_host_file_result.
++func_convert_path_nix_to_cygwin ()
++{
++ $opt_debug
++ func_to_host_path_result="$1"
++ if test -n "$1"; then
++ # Remove leading and trailing path separator characters from
++ # ARG. msys behavior is inconsistent here, cygpath turns them
++ # into '.;' and ';.', and winepath ignores them completely.
++ func_stripname : : "$1"
++ func_to_host_path_tmp1=$func_stripname_result
++ func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
++ func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
++ func_to_host_path_result="$func_cygpath_result"
++ func_convert_path_check : : \
++ "$func_to_host_path_tmp1" "$func_to_host_path_result"
++ func_convert_path_front_back_pathsep ":*" "*:" : "$1"
++ fi
++}
++# end func_convert_path_nix_to_cygwin
++
++
+ # func_mode_compile arg...
+ func_mode_compile ()
+ {
+@@ -1314,12 +1985,12 @@ func_mode_compile ()
+ ;;
+
+ -pie | -fpie | -fPIE)
+- pie_flag="$pie_flag $arg"
++ func_append pie_flag " $arg"
+ continue
+ ;;
+
+ -shared | -static | -prefer-pic | -prefer-non-pic)
+- later="$later $arg"
++ func_append later " $arg"
+ continue
+ ;;
+
+@@ -1340,15 +2011,14 @@ func_mode_compile ()
+ save_ifs="$IFS"; IFS=','
+ for arg in $args; do
+ IFS="$save_ifs"
+- func_quote_for_eval "$arg"
+- lastarg="$lastarg $func_quote_for_eval_result"
++ func_append_quoted lastarg "$arg"
+ done
+ IFS="$save_ifs"
+ func_stripname ' ' '' "$lastarg"
+ lastarg=$func_stripname_result
+
+ # Add the arguments to base_compile.
+- base_compile="$base_compile $lastarg"
++ func_append base_compile " $lastarg"
+ continue
+ ;;
+
+@@ -1364,8 +2034,7 @@ func_mode_compile ()
+ esac # case $arg_mode
+
+ # Aesthetically quote the previous argument.
+- func_quote_for_eval "$lastarg"
+- base_compile="$base_compile $func_quote_for_eval_result"
++ func_append_quoted base_compile "$lastarg"
+ done # for arg
+
+ case $arg_mode in
+@@ -1496,17 +2165,16 @@ compiler."
+ $opt_dry_run || $RM $removelist
+ exit $EXIT_FAILURE
+ fi
+- removelist="$removelist $output_obj"
++ func_append removelist " $output_obj"
+ $ECHO "$srcfile" > "$lockfile"
+ fi
+
+ $opt_dry_run || $RM $removelist
+- removelist="$removelist $lockfile"
++ func_append removelist " $lockfile"
+ trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
+
+- if test -n "$fix_srcfile_path"; then
+- eval "srcfile=\"$fix_srcfile_path\""
+- fi
++ func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
++ srcfile=$func_to_tool_file_result
+ func_quote_for_eval "$srcfile"
+ qsrcfile=$func_quote_for_eval_result
+
+@@ -1526,7 +2194,7 @@ compiler."
+
+ if test -z "$output_obj"; then
+ # Place PIC objects in $objdir
+- command="$command -o $lobj"
++ func_append command " -o $lobj"
+ fi
+
+ func_show_eval_locale "$command" \
+@@ -1573,11 +2241,11 @@ compiler."
+ command="$base_compile $qsrcfile $pic_flag"
+ fi
+ if test "$compiler_c_o" = yes; then
+- command="$command -o $obj"
++ func_append command " -o $obj"
+ fi
+
+ # Suppress compiler output if we already did a PIC compilation.
+- command="$command$suppress_output"
++ func_append command "$suppress_output"
+ func_show_eval_locale "$command" \
+ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
+
+@@ -1622,13 +2290,13 @@ compiler."
+ }
+
+ $opt_help || {
+- test "$mode" = compile && func_mode_compile ${1+"$@"}
++ test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
+ }
+
+ func_mode_help ()
+ {
+ # We need to display help for each of the modes.
+- case $mode in
++ case $opt_mode in
+ "")
+ # Generic help is extracted from the usage comments
+ # at the start of this file.
+@@ -1659,8 +2327,8 @@ This mode accepts the following additional options:
+
+ -o OUTPUT-FILE set the output file name to OUTPUT-FILE
+ -no-suppress do not suppress compiler output for multiple passes
+- -prefer-pic try to building PIC objects only
+- -prefer-non-pic try to building non-PIC objects only
++ -prefer-pic try to build PIC objects only
++ -prefer-non-pic try to build non-PIC objects only
+ -shared do not build a \`.o' file suitable for static linking
+ -static only build a \`.o' file suitable for static linking
+ -Wc,FLAG pass FLAG directly to the compiler
+@@ -1804,7 +2472,7 @@ Otherwise, only FILE itself is deleted using RM."
+ ;;
+
+ *)
+- func_fatal_help "invalid operation mode \`$mode'"
++ func_fatal_help "invalid operation mode \`$opt_mode'"
+ ;;
+ esac
+
+@@ -1819,13 +2487,13 @@ if $opt_help; then
+ else
+ {
+ func_help noexit
+- for mode in compile link execute install finish uninstall clean; do
++ for opt_mode in compile link execute install finish uninstall clean; do
+ func_mode_help
+ done
+ } | sed -n '1p; 2,$s/^Usage:/ or: /p'
+ {
+ func_help noexit
+- for mode in compile link execute install finish uninstall clean; do
++ for opt_mode in compile link execute install finish uninstall clean; do
+ echo
+ func_mode_help
+ done
+@@ -1854,13 +2522,16 @@ func_mode_execute ()
+ func_fatal_help "you must specify a COMMAND"
+
+ # Handle -dlopen flags immediately.
+- for file in $execute_dlfiles; do
++ for file in $opt_dlopen; do
+ test -f "$file" \
+ || func_fatal_help "\`$file' is not a file"
+
+ dir=
+ case $file in
+ *.la)
++ func_resolve_sysroot "$file"
++ file=$func_resolve_sysroot_result
++
+ # Check to see that this really is a libtool archive.
+ func_lalib_unsafe_p "$file" \
+ || func_fatal_help "\`$lib' is not a valid libtool archive"
+@@ -1882,7 +2553,7 @@ func_mode_execute ()
+ dir="$func_dirname_result"
+
+ if test -f "$dir/$objdir/$dlname"; then
+- dir="$dir/$objdir"
++ func_append dir "/$objdir"
+ else
+ if test ! -f "$dir/$dlname"; then
+ func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
+@@ -1907,10 +2578,10 @@ func_mode_execute ()
+ test -n "$absdir" && dir="$absdir"
+
+ # Now add the directory to shlibpath_var.
+- if eval test -z \"\$$shlibpath_var\"; then
+- eval $shlibpath_var=\$dir
++ if eval "test -z \"\$$shlibpath_var\""; then
++ eval "$shlibpath_var=\"\$dir\""
+ else
+- eval $shlibpath_var=\$dir:\$$shlibpath_var
++ eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
+ fi
+ done
+
+@@ -1939,8 +2610,7 @@ func_mode_execute ()
+ ;;
+ esac
+ # Quote arguments (to preserve shell metacharacters).
+- func_quote_for_eval "$file"
+- args="$args $func_quote_for_eval_result"
++ func_append_quoted args "$file"
+ done
+
+ if test "X$opt_dry_run" = Xfalse; then
+@@ -1972,22 +2642,59 @@ func_mode_execute ()
+ fi
+ }
+
+-test "$mode" = execute && func_mode_execute ${1+"$@"}
++test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
+
+
+ # func_mode_finish arg...
+ func_mode_finish ()
+ {
+ $opt_debug
+- libdirs="$nonopt"
++ libs=
++ libdirs=
+ admincmds=
+
+- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+- for dir
+- do
+- libdirs="$libdirs $dir"
+- done
++ for opt in "$nonopt" ${1+"$@"}
++ do
++ if test -d "$opt"; then
++ func_append libdirs " $opt"
+
++ elif test -f "$opt"; then
++ if func_lalib_unsafe_p "$opt"; then
++ func_append libs " $opt"
++ else
++ func_warning "\`$opt' is not a valid libtool archive"
++ fi
++
++ else
++ func_fatal_error "invalid argument \`$opt'"
++ fi
++ done
++
++ if test -n "$libs"; then
++ if test -n "$lt_sysroot"; then
++ sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
++ sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
++ else
++ sysroot_cmd=
++ fi
++
++ # Remove sysroot references
++ if $opt_dry_run; then
++ for lib in $libs; do
++ echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
++ done
++ else
++ tmpdir=`func_mktempdir`
++ for lib in $libs; do
++ sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
++ > $tmpdir/tmp-la
++ mv -f $tmpdir/tmp-la $lib
++ done
++ ${RM}r "$tmpdir"
++ fi
++ fi
++
++ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+ for libdir in $libdirs; do
+ if test -n "$finish_cmds"; then
+ # Do each command in the finish commands.
+@@ -1997,7 +2704,7 @@ func_mode_finish ()
+ if test -n "$finish_eval"; then
+ # Do the single finish_eval.
+ eval cmds=\"$finish_eval\"
+- $opt_dry_run || eval "$cmds" || admincmds="$admincmds
++ $opt_dry_run || eval "$cmds" || func_append admincmds "
+ $cmds"
+ fi
+ done
+@@ -2006,53 +2713,55 @@ func_mode_finish ()
+ # Exit here if they wanted silent mode.
+ $opt_silent && exit $EXIT_SUCCESS
+
+- echo "----------------------------------------------------------------------"
+- echo "Libraries have been installed in:"
+- for libdir in $libdirs; do
+- $ECHO " $libdir"
+- done
+- echo
+- echo "If you ever happen to want to link against installed libraries"
+- echo "in a given directory, LIBDIR, you must either use libtool, and"
+- echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
+- echo "flag during linking and do at least one of the following:"
+- if test -n "$shlibpath_var"; then
+- echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
+- echo " during execution"
+- fi
+- if test -n "$runpath_var"; then
+- echo " - add LIBDIR to the \`$runpath_var' environment variable"
+- echo " during linking"
+- fi
+- if test -n "$hardcode_libdir_flag_spec"; then
+- libdir=LIBDIR
+- eval "flag=\"$hardcode_libdir_flag_spec\""
++ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
++ echo "----------------------------------------------------------------------"
++ echo "Libraries have been installed in:"
++ for libdir in $libdirs; do
++ $ECHO " $libdir"
++ done
++ echo
++ echo "If you ever happen to want to link against installed libraries"
++ echo "in a given directory, LIBDIR, you must either use libtool, and"
++ echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
++ echo "flag during linking and do at least one of the following:"
++ if test -n "$shlibpath_var"; then
++ echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
++ echo " during execution"
++ fi
++ if test -n "$runpath_var"; then
++ echo " - add LIBDIR to the \`$runpath_var' environment variable"
++ echo " during linking"
++ fi
++ if test -n "$hardcode_libdir_flag_spec"; then
++ libdir=LIBDIR
++ eval flag=\"$hardcode_libdir_flag_spec\"
+
+- $ECHO " - use the \`$flag' linker flag"
+- fi
+- if test -n "$admincmds"; then
+- $ECHO " - have your system administrator run these commands:$admincmds"
+- fi
+- if test -f /etc/ld.so.conf; then
+- echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+- fi
+- echo
++ $ECHO " - use the \`$flag' linker flag"
++ fi
++ if test -n "$admincmds"; then
++ $ECHO " - have your system administrator run these commands:$admincmds"
++ fi
++ if test -f /etc/ld.so.conf; then
++ echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
++ fi
++ echo
+
+- echo "See any operating system documentation about shared libraries for"
+- case $host in
+- solaris2.[6789]|solaris2.1[0-9])
+- echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
+- echo "pages."
+- ;;
+- *)
+- echo "more information, such as the ld(1) and ld.so(8) manual pages."
+- ;;
+- esac
+- echo "----------------------------------------------------------------------"
++ echo "See any operating system documentation about shared libraries for"
++ case $host in
++ solaris2.[6789]|solaris2.1[0-9])
++ echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
++ echo "pages."
++ ;;
++ *)
++ echo "more information, such as the ld(1) and ld.so(8) manual pages."
++ ;;
++ esac
++ echo "----------------------------------------------------------------------"
++ fi
+ exit $EXIT_SUCCESS
+ }
+
+-test "$mode" = finish && func_mode_finish ${1+"$@"}
++test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
+
+
+ # func_mode_install arg...
+@@ -2077,7 +2786,7 @@ func_mode_install ()
+ # The real first argument should be the name of the installation program.
+ # Aesthetically quote it.
+ func_quote_for_eval "$arg"
+- install_prog="$install_prog$func_quote_for_eval_result"
++ func_append install_prog "$func_quote_for_eval_result"
+ install_shared_prog=$install_prog
+ case " $install_prog " in
+ *[\\\ /]cp\ *) install_cp=: ;;
+@@ -2097,7 +2806,7 @@ func_mode_install ()
+ do
+ arg2=
+ if test -n "$dest"; then
+- files="$files $dest"
++ func_append files " $dest"
+ dest=$arg
+ continue
+ fi
+@@ -2135,11 +2844,11 @@ func_mode_install ()
+
+ # Aesthetically quote the argument.
+ func_quote_for_eval "$arg"
+- install_prog="$install_prog $func_quote_for_eval_result"
++ func_append install_prog " $func_quote_for_eval_result"
+ if test -n "$arg2"; then
+ func_quote_for_eval "$arg2"
+ fi
+- install_shared_prog="$install_shared_prog $func_quote_for_eval_result"
++ func_append install_shared_prog " $func_quote_for_eval_result"
+ done
+
+ test -z "$install_prog" && \
+@@ -2151,7 +2860,7 @@ func_mode_install ()
+ if test -n "$install_override_mode" && $no_mode; then
+ if $install_cp; then :; else
+ func_quote_for_eval "$install_override_mode"
+- install_shared_prog="$install_shared_prog -m $func_quote_for_eval_result"
++ func_append install_shared_prog " -m $func_quote_for_eval_result"
+ fi
+ fi
+
+@@ -2209,10 +2918,13 @@ func_mode_install ()
+ case $file in
+ *.$libext)
+ # Do the static libraries later.
+- staticlibs="$staticlibs $file"
++ func_append staticlibs " $file"
+ ;;
+
+ *.la)
++ func_resolve_sysroot "$file"
++ file=$func_resolve_sysroot_result
++
+ # Check to see that this really is a libtool archive.
+ func_lalib_unsafe_p "$file" \
+ || func_fatal_help "\`$file' is not a valid libtool archive"
+@@ -2226,23 +2938,30 @@ func_mode_install ()
+ if test "X$destdir" = "X$libdir"; then
+ case "$current_libdirs " in
+ *" $libdir "*) ;;
+- *) current_libdirs="$current_libdirs $libdir" ;;
++ *) func_append current_libdirs " $libdir" ;;
+ esac
+ else
+ # Note the libdir as a future libdir.
+ case "$future_libdirs " in
+ *" $libdir "*) ;;
+- *) future_libdirs="$future_libdirs $libdir" ;;
++ *) func_append future_libdirs " $libdir" ;;
+ esac
+ fi
+
+ func_dirname "$file" "/" ""
+ dir="$func_dirname_result"
+- dir="$dir$objdir"
++ func_append dir "$objdir"
+
+ if test -n "$relink_command"; then
++ # Strip any trailing slash from the destination.
++ func_stripname '' '/' "$libdir"
++ destlibdir=$func_stripname_result
++
++ func_stripname '' '/' "$destdir"
++ s_destdir=$func_stripname_result
++
+ # Determine the prefix the user has applied to our future dir.
+- inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
++ inst_prefix_dir=`$ECHO "X$s_destdir" | $Xsed -e "s%$destlibdir\$%%"`
+
+ # Don't allow the user to place us outside of our expected
+ # location b/c this prevents finding dependent libraries that
+@@ -2315,7 +3034,7 @@ func_mode_install ()
+ func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
+
+ # Maybe install the static library, too.
+- test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
++ test -n "$old_library" && func_append staticlibs " $dir/$old_library"
+ ;;
+
+ *.lo)
+@@ -2503,7 +3222,7 @@ func_mode_install ()
+ test -n "$future_libdirs" && \
+ func_warning "remember to run \`$progname --finish$future_libdirs'"
+
+- if test -n "$current_libdirs" && $opt_finish; then
++ if test -n "$current_libdirs"; then
+ # Maybe just do a dry run.
+ $opt_dry_run && current_libdirs=" -n$current_libdirs"
+ exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
+@@ -2512,7 +3231,7 @@ func_mode_install ()
+ fi
+ }
+
+-test "$mode" = install && func_mode_install ${1+"$@"}
++test "$opt_mode" = install && func_mode_install ${1+"$@"}
+
+
+ # func_generate_dlsyms outputname originator pic_p
+@@ -2559,6 +3278,18 @@ extern \"C\" {
+ #pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
+ #endif
+
++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
++#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
++/* DATA imports from DLLs on WIN32 con't be const, because runtime
++ relocations are performed -- see ld's documentation on pseudo-relocs. */
++# define LT_DLSYM_CONST
++#elif defined(__osf__)
++/* This system does not cope well with relocations in const data. */
++# define LT_DLSYM_CONST
++#else
++# define LT_DLSYM_CONST const
++#endif
++
+ /* External symbol declarations for the compiler. */\
+ "
+
+@@ -2570,21 +3301,22 @@ extern \"C\" {
+ # Add our own program objects to the symbol list.
+ progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
+ for progfile in $progfiles; do
+- func_verbose "extracting global C symbols from \`$progfile'"
+- $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
++ func_to_tool_file "$progfile" func_convert_file_msys_to_w32
++ func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
++ $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
+ done
+
+ if test -n "$exclude_expsyms"; then
+ $opt_dry_run || {
+- $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+- $MV "$nlist"T "$nlist"
++ eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
++ eval '$MV "$nlist"T "$nlist"'
+ }
+ fi
+
+ if test -n "$export_symbols_regex"; then
+ $opt_dry_run || {
+- $EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T
+- $MV "$nlist"T "$nlist"
++ eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
++ eval '$MV "$nlist"T "$nlist"'
+ }
+ fi
+
+@@ -2593,23 +3325,23 @@ extern \"C\" {
+ export_symbols="$output_objdir/$outputname.exp"
+ $opt_dry_run || {
+ $RM $export_symbols
+- ${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' < "$nlist" > "$export_symbols"
++ eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+ case $host in
+ *cygwin* | *mingw* | *cegcc* )
+- echo EXPORTS > "$output_objdir/$outputname.def"
+- cat "$export_symbols" >> "$output_objdir/$outputname.def"
++ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
++ eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
+ ;;
+ esac
+ }
+ else
+ $opt_dry_run || {
+- ${SED} -e 's/\([].[*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/' < "$export_symbols" > "$output_objdir/$outputname.exp"
+- $GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T
+- $MV "$nlist"T "$nlist"
++ eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
++ eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
++ eval '$MV "$nlist"T "$nlist"'
+ case $host in
+ *cygwin* | *mingw* | *cegcc* )
+- echo EXPORTS > "$output_objdir/$outputname.def"
+- cat "$nlist" >> "$output_objdir/$outputname.def"
++ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
++ eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
+ ;;
+ esac
+ }
+@@ -2620,10 +3352,52 @@ extern \"C\" {
+ func_verbose "extracting global C symbols from \`$dlprefile'"
+ func_basename "$dlprefile"
+ name="$func_basename_result"
+- $opt_dry_run || {
+- $ECHO ": $name " >> "$nlist"
+- eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+- }
++ case $host in
++ *cygwin* | *mingw* | *cegcc* )
++ # if an import library, we need to obtain dlname
++ if func_win32_import_lib_p "$dlprefile"; then
++ func_tr_sh "$dlprefile"
++ eval "curr_lafile=\$libfile_$func_tr_sh_result"
++ dlprefile_dlbasename=""
++ if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
++ # Use subshell, to avoid clobbering current variable values
++ dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
++ if test -n "$dlprefile_dlname" ; then
++ func_basename "$dlprefile_dlname"
++ dlprefile_dlbasename="$func_basename_result"
++ else
++ # no lafile. user explicitly requested -dlpreopen <import library>.
++ $sharedlib_from_linklib_cmd "$dlprefile"
++ dlprefile_dlbasename=$sharedlib_from_linklib_result
++ fi
++ fi
++ $opt_dry_run || {
++ if test -n "$dlprefile_dlbasename" ; then
++ eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
++ else
++ func_warning "Could not compute DLL name from $name"
++ eval '$ECHO ": $name " >> "$nlist"'
++ fi
++ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
++ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
++ $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
++ }
++ else # not an import lib
++ $opt_dry_run || {
++ eval '$ECHO ": $name " >> "$nlist"'
++ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
++ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
++ }
++ fi
++ ;;
++ *)
++ $opt_dry_run || {
++ eval '$ECHO ": $name " >> "$nlist"'
++ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
++ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
++ }
++ ;;
++ esac
+ done
+
+ $opt_dry_run || {
+@@ -2661,26 +3435,9 @@ typedef struct {
+ const char *name;
+ void *address;
+ } lt_dlsymlist;
+-"
+- case $host in
+- *cygwin* | *mingw* | *cegcc* )
+- echo >> "$output_objdir/$my_dlsyms" "\
+-/* DATA imports from DLLs on WIN32 con't be const, because
+- runtime relocations are performed -- see ld's documentation
+- on pseudo-relocs. */"
+- lt_dlsym_const= ;;
+- *osf5*)
+- echo >> "$output_objdir/$my_dlsyms" "\
+-/* This system does not cope well with relocations in const data */"
+- lt_dlsym_const= ;;
+- *)
+- lt_dlsym_const=const ;;
+- esac
+-
+- echo >> "$output_objdir/$my_dlsyms" "\
+-extern $lt_dlsym_const lt_dlsymlist
++extern LT_DLSYM_CONST lt_dlsymlist
+ lt_${my_prefix}_LTX_preloaded_symbols[];
+-$lt_dlsym_const lt_dlsymlist
++LT_DLSYM_CONST lt_dlsymlist
+ lt_${my_prefix}_LTX_preloaded_symbols[] =
+ {\
+ { \"$my_originator\", (void *) 0 },"
+@@ -2736,7 +3493,7 @@ static const void *lt_preloaded_setup() {
+ for arg in $LTCFLAGS; do
+ case $arg in
+ -pie | -fpie | -fPIE) ;;
+- *) symtab_cflags="$symtab_cflags $arg" ;;
++ *) func_append symtab_cflags " $arg" ;;
+ esac
+ done
+
+@@ -2796,9 +3553,11 @@ func_win32_libid ()
+ win32_libid_type="x86 archive import"
+ ;;
+ *ar\ archive*) # could be an import, or static
+- if $OBJDUMP -f "$1" | $SED -e '10q' 2>/dev/null |
+- $EGREP 'file format (pe-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
+- win32_nmres=`$NM -f posix -A "$1" |
++ # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
++ if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
++ $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
++ func_to_tool_file "$1" func_convert_file_msys_to_w32
++ win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
+ $SED -n -e '
+ 1,100{
+ / I /{
+@@ -2827,6 +3586,131 @@ func_win32_libid ()
+ $ECHO "$win32_libid_type"
+ }
+
++# func_cygming_dll_for_implib ARG
++#
++# Platform-specific function to extract the
++# name of the DLL associated with the specified
++# import library ARG.
++# Invoked by eval'ing the libtool variable
++# $sharedlib_from_linklib_cmd
++# Result is available in the variable
++# $sharedlib_from_linklib_result
++func_cygming_dll_for_implib ()
++{
++ $opt_debug
++ sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
++}
++
++# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
++#
++# The is the core of a fallback implementation of a
++# platform-specific function to extract the name of the
++# DLL associated with the specified import library LIBNAME.
++#
++# SECTION_NAME is either .idata$6 or .idata$7, depending
++# on the platform and compiler that created the implib.
++#
++# Echos the name of the DLL associated with the
++# specified import library.
++func_cygming_dll_for_implib_fallback_core ()
++{
++ $opt_debug
++ match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
++ $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
++ $SED '/^Contents of section '"$match_literal"':/{
++ # Place marker at beginning of archive member dllname section
++ s/.*/====MARK====/
++ p
++ d
++ }
++ # These lines can sometimes be longer than 43 characters, but
++ # are always uninteresting
++ /:[ ]*file format pe[i]\{,1\}-/d
++ /^In archive [^:]*:/d
++ # Ensure marker is printed
++ /^====MARK====/p
++ # Remove all lines with less than 43 characters
++ /^.\{43\}/!d
++ # From remaining lines, remove first 43 characters
++ s/^.\{43\}//' |
++ $SED -n '
++ # Join marker and all lines until next marker into a single line
++ /^====MARK====/ b para
++ H
++ $ b para
++ b
++ :para
++ x
++ s/\n//g
++ # Remove the marker
++ s/^====MARK====//
++ # Remove trailing dots and whitespace
++ s/[\. \t]*$//
++ # Print
++ /./p' |
++ # we now have a list, one entry per line, of the stringified
++ # contents of the appropriate section of all members of the
++ # archive which possess that section. Heuristic: eliminate
++ # all those which have a first or second character that is
++ # a '.' (that is, objdump's representation of an unprintable
++ # character.) This should work for all archives with less than
++ # 0x302f exports -- but will fail for DLLs whose name actually
++ # begins with a literal '.' or a single character followed by
++ # a '.'.
++ #
++ # Of those that remain, print the first one.
++ $SED -e '/^\./d;/^.\./d;q'
++}
++
++# func_cygming_gnu_implib_p ARG
++# This predicate returns with zero status (TRUE) if
++# ARG is a GNU/binutils-style import library. Returns
++# with nonzero status (FALSE) otherwise.
++func_cygming_gnu_implib_p ()
++{
++ $opt_debug
++ func_to_tool_file "$1" func_convert_file_msys_to_w32
++ func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
++ test -n "$func_cygming_gnu_implib_tmp"
++}
++
++# func_cygming_ms_implib_p ARG
++# This predicate returns with zero status (TRUE) if
++# ARG is an MS-style import library. Returns
++# with nonzero status (FALSE) otherwise.
++func_cygming_ms_implib_p ()
++{
++ $opt_debug
++ func_to_tool_file "$1" func_convert_file_msys_to_w32
++ func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
++ test -n "$func_cygming_ms_implib_tmp"
++}
++
++# func_cygming_dll_for_implib_fallback ARG
++# Platform-specific function to extract the
++# name of the DLL associated with the specified
++# import library ARG.
++#
++# This fallback implementation is for use when $DLLTOOL
++# does not support the --identify-strict option.
++# Invoked by eval'ing the libtool variable
++# $sharedlib_from_linklib_cmd
++# Result is available in the variable
++# $sharedlib_from_linklib_result
++func_cygming_dll_for_implib_fallback ()
++{
++ $opt_debug
++ if func_cygming_gnu_implib_p "$1" ; then
++ # binutils import library
++ sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
++ elif func_cygming_ms_implib_p "$1" ; then
++ # ms-generated import library
++ sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
++ else
++ # unknown
++ sharedlib_from_linklib_result=""
++ fi
++}
+
+
+ # func_extract_an_archive dir oldlib
+@@ -2917,7 +3801,7 @@ func_extract_archives ()
+ darwin_file=
+ darwin_files=
+ for darwin_file in $darwin_filelist; do
+- darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
++ darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
+ $LIPO -create -output "$darwin_file" $darwin_files
+ done # $darwin_filelist
+ $RM -rf unfat-$$
+@@ -2932,7 +3816,7 @@ func_extract_archives ()
+ func_extract_an_archive "$my_xdir" "$my_xabs"
+ ;;
+ esac
+- my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
++ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
+ done
+
+ func_extract_archives_result="$my_oldobjs"
+@@ -3014,7 +3898,110 @@ func_fallback_echo ()
+ _LTECHO_EOF'
+ }
+ ECHO=\"$qECHO\"
+- fi\
++ fi
++
++# Very basic option parsing. These options are (a) specific to
++# the libtool wrapper, (b) are identical between the wrapper
++# /script/ and the wrapper /executable/ which is used only on
++# windows platforms, and (c) all begin with the string "--lt-"
++# (application programs are unlikely to have options which match
++# this pattern).
++#
++# There are only two supported options: --lt-debug and
++# --lt-dump-script. There is, deliberately, no --lt-help.
++#
++# The first argument to this parsing function should be the
++# script's $0 value, followed by "$@".
++lt_option_debug=
++func_parse_lt_options ()
++{
++ lt_script_arg0=\$0
++ shift
++ for lt_opt
++ do
++ case \"\$lt_opt\" in
++ --lt-debug) lt_option_debug=1 ;;
++ --lt-dump-script)
++ lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
++ test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
++ lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
++ cat \"\$lt_dump_D/\$lt_dump_F\"
++ exit 0
++ ;;
++ --lt-*)
++ \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
++ exit 1
++ ;;
++ esac
++ done
++
++ # Print the debug banner immediately:
++ if test -n \"\$lt_option_debug\"; then
++ echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
++ fi
++}
++
++# Used when --lt-debug. Prints its arguments to stdout
++# (redirection is the responsibility of the caller)
++func_lt_dump_args ()
++{
++ lt_dump_args_N=1;
++ for lt_arg
++ do
++ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
++ lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
++ done
++}
++
++# Core function for launching the target application
++func_exec_program_core ()
++{
++"
++ case $host in
++ # Backslashes separate directories on plain windows
++ *-*-mingw | *-*-os2* | *-cegcc*)
++ $ECHO "\
++ if test -n \"\$lt_option_debug\"; then
++ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
++ func_lt_dump_args \${1+\"\$@\"} 1>&2
++ fi
++ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
++"
++ ;;
++
++ *)
++ $ECHO "\
++ if test -n \"\$lt_option_debug\"; then
++ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
++ func_lt_dump_args \${1+\"\$@\"} 1>&2
++ fi
++ exec \"\$progdir/\$program\" \${1+\"\$@\"}
++"
++ ;;
++ esac
++ $ECHO "\
++ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
++ exit 1
++}
++
++# A function to encapsulate launching the target application
++# Strips options in the --lt-* namespace from \$@ and
++# launches target application with the remaining arguments.
++func_exec_program ()
++{
++ for lt_wr_arg
++ do
++ case \$lt_wr_arg in
++ --lt-*) ;;
++ *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
++ esac
++ shift
++ done
++ func_exec_program_core \${1+\"\$@\"}
++}
++
++ # Parse options
++ func_parse_lt_options \"\$0\" \${1+\"\$@\"}
+
+ # Find the directory that this script lives in.
+ thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
+@@ -3078,7 +4065,7 @@ _LTECHO_EOF'
+
+ # relink executable if necessary
+ if test -n \"\$relink_command\"; then
+- if relink_command_output=\`eval \"\$relink_command\" 2>&1\`; then :
++ if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+ else
+ $ECHO \"\$relink_command_output\" >&2
+ $RM \"\$progdir/\$file\"
+@@ -3102,6 +4089,18 @@ _LTECHO_EOF'
+
+ if test -f \"\$progdir/\$program\"; then"
+
++ # fixup the dll searchpath if we need to.
++ #
++ # Fix the DLL searchpath if we need to. Do this before prepending
++ # to shlibpath, because on Windows, both are PATH and uninstalled
++ # libraries must come first.
++ if test -n "$dllsearchpath"; then
++ $ECHO "\
++ # Add the dll search path components to the executable PATH
++ PATH=$dllsearchpath:\$PATH
++"
++ fi
++
+ # Export our shlibpath_var if we have one.
+ if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+ $ECHO "\
+@@ -3116,35 +4115,10 @@ _LTECHO_EOF'
+ "
+ fi
+
+- # fixup the dll searchpath if we need to.
+- if test -n "$dllsearchpath"; then
+- $ECHO "\
+- # Add the dll search path components to the executable PATH
+- PATH=$dllsearchpath:\$PATH
+-"
+- fi
+-
+ $ECHO "\
+ if test \"\$libtool_execute_magic\" != \"$magic\"; then
+ # Run the actual program with our arguments.
+-"
+- case $host in
+- # Backslashes separate directories on plain windows
+- *-*-mingw | *-*-os2* | *-cegcc*)
+- $ECHO "\
+- exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
+-"
+- ;;
+-
+- *)
+- $ECHO "\
+- exec \"\$progdir/\$program\" \${1+\"\$@\"}
+-"
+- ;;
+- esac
+- $ECHO "\
+- \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
+- exit 1
++ func_exec_program \${1+\"\$@\"}
+ fi
+ else
+ # The program doesn't exist.
+@@ -3158,166 +4132,6 @@ fi\
+ }
+
+
+-# func_to_host_path arg
+-#
+-# Convert paths to host format when used with build tools.
+-# Intended for use with "native" mingw (where libtool itself
+-# is running under the msys shell), or in the following cross-
+-# build environments:
+-# $build $host
+-# mingw (msys) mingw [e.g. native]
+-# cygwin mingw
+-# *nix + wine mingw
+-# where wine is equipped with the `winepath' executable.
+-# In the native mingw case, the (msys) shell automatically
+-# converts paths for any non-msys applications it launches,
+-# but that facility isn't available from inside the cwrapper.
+-# Similar accommodations are necessary for $host mingw and
+-# $build cygwin. Calling this function does no harm for other
+-# $host/$build combinations not listed above.
+-#
+-# ARG is the path (on $build) that should be converted to
+-# the proper representation for $host. The result is stored
+-# in $func_to_host_path_result.
+-func_to_host_path ()
+-{
+- func_to_host_path_result="$1"
+- if test -n "$1"; then
+- case $host in
+- *mingw* )
+- lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+- case $build in
+- *mingw* ) # actually, msys
+- # awkward: cmd appends spaces to result
+- func_to_host_path_result=`( cmd //c echo "$1" ) 2>/dev/null |
+- $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
+- ;;
+- *cygwin* )
+- func_to_host_path_result=`cygpath -w "$1" |
+- $SED -e "$lt_sed_naive_backslashify"`
+- ;;
+- * )
+- # Unfortunately, winepath does not exit with a non-zero
+- # error code, so we are forced to check the contents of
+- # stdout. On the other hand, if the command is not
+- # found, the shell will set an exit code of 127 and print
+- # *an error message* to stdout. So we must check for both
+- # error code of zero AND non-empty stdout, which explains
+- # the odd construction:
+- func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
+- if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
+- func_to_host_path_result=`$ECHO "$func_to_host_path_tmp1" |
+- $SED -e "$lt_sed_naive_backslashify"`
+- else
+- # Allow warning below.
+- func_to_host_path_result=
+- fi
+- ;;
+- esac
+- if test -z "$func_to_host_path_result" ; then
+- func_error "Could not determine host path corresponding to"
+- func_error " \`$1'"
+- func_error "Continuing, but uninstalled executables may not work."
+- # Fallback:
+- func_to_host_path_result="$1"
+- fi
+- ;;
+- esac
+- fi
+-}
+-# end: func_to_host_path
+-
+-# func_to_host_pathlist arg
+-#
+-# Convert pathlists to host format when used with build tools.
+-# See func_to_host_path(), above. This function supports the
+-# following $build/$host combinations (but does no harm for
+-# combinations not listed here):
+-# $build $host
+-# mingw (msys) mingw [e.g. native]
+-# cygwin mingw
+-# *nix + wine mingw
+-#
+-# Path separators are also converted from $build format to
+-# $host format. If ARG begins or ends with a path separator
+-# character, it is preserved (but converted to $host format)
+-# on output.
+-#
+-# ARG is a pathlist (on $build) that should be converted to
+-# the proper representation on $host. The result is stored
+-# in $func_to_host_pathlist_result.
+-func_to_host_pathlist ()
+-{
+- func_to_host_pathlist_result="$1"
+- if test -n "$1"; then
+- case $host in
+- *mingw* )
+- lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+- # Remove leading and trailing path separator characters from
+- # ARG. msys behavior is inconsistent here, cygpath turns them
+- # into '.;' and ';.', and winepath ignores them completely.
+- func_stripname : : "$1"
+- func_to_host_pathlist_tmp1=$func_stripname_result
+- case $build in
+- *mingw* ) # Actually, msys.
+- # Awkward: cmd appends spaces to result.
+- func_to_host_pathlist_result=`
+- ( cmd //c echo "$func_to_host_pathlist_tmp1" ) 2>/dev/null |
+- $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
+- ;;
+- *cygwin* )
+- func_to_host_pathlist_result=`cygpath -w -p "$func_to_host_pathlist_tmp1" |
+- $SED -e "$lt_sed_naive_backslashify"`
+- ;;
+- * )
+- # unfortunately, winepath doesn't convert pathlists
+- func_to_host_pathlist_result=""
+- func_to_host_pathlist_oldIFS=$IFS
+- IFS=:
+- for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do
+- IFS=$func_to_host_pathlist_oldIFS
+- if test -n "$func_to_host_pathlist_f" ; then
+- func_to_host_path "$func_to_host_pathlist_f"
+- if test -n "$func_to_host_path_result" ; then
+- if test -z "$func_to_host_pathlist_result" ; then
+- func_to_host_pathlist_result="$func_to_host_path_result"
+- else
+- func_append func_to_host_pathlist_result ";$func_to_host_path_result"
+- fi
+- fi
+- fi
+- done
+- IFS=$func_to_host_pathlist_oldIFS
+- ;;
+- esac
+- if test -z "$func_to_host_pathlist_result"; then
+- func_error "Could not determine the host path(s) corresponding to"
+- func_error " \`$1'"
+- func_error "Continuing, but uninstalled executables may not work."
+- # Fallback. This may break if $1 contains DOS-style drive
+- # specifications. The fix is not to complicate the expression
+- # below, but for the user to provide a working wine installation
+- # with winepath so that path translation in the cross-to-mingw
+- # case works properly.
+- lt_replace_pathsep_nix_to_dos="s|:|;|g"
+- func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\
+- $SED -e "$lt_replace_pathsep_nix_to_dos"`
+- fi
+- # Now, add the leading and trailing path separators back
+- case "$1" in
+- :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result"
+- ;;
+- esac
+- case "$1" in
+- *: ) func_append func_to_host_pathlist_result ";"
+- ;;
+- esac
+- ;;
+- esac
+- fi
+-}
+-# end: func_to_host_pathlist
+-
+ # func_emit_cwrapperexe_src
+ # emit the source code for a wrapper executable on stdout
+ # Must ONLY be called from within func_mode_link because
+@@ -3334,10 +4148,6 @@ func_emit_cwrapperexe_src ()
+
+ This wrapper executable should never be moved out of the build directory.
+ If it is, it will not operate correctly.
+-
+- Currently, it simply execs the wrapper *script* "$SHELL $output",
+- but could eventually absorb all of the scripts functionality and
+- exec $objdir/$outputname directly.
+ */
+ EOF
+ cat <<"EOF"
+@@ -3462,22 +4272,13 @@ int setenv (const char *, const char *, int);
+ if (stale) { free ((void *) stale); stale = 0; } \
+ } while (0)
+
+-#undef LTWRAPPER_DEBUGPRINTF
+-#if defined LT_DEBUGWRAPPER
+-# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args
+-static void
+-ltwrapper_debugprintf (const char *fmt, ...)
+-{
+- va_list args;
+- va_start (args, fmt);
+- (void) vfprintf (stderr, fmt, args);
+- va_end (args);
+-}
++#if defined(LT_DEBUGWRAPPER)
++static int lt_debug = 1;
+ #else
+-# define LTWRAPPER_DEBUGPRINTF(args)
++static int lt_debug = 0;
+ #endif
+
+-const char *program_name = NULL;
++const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
+
+ void *xmalloc (size_t num);
+ char *xstrdup (const char *string);
+@@ -3487,7 +4288,10 @@ char *chase_symlinks (const char *pathspec);
+ int make_executable (const char *path);
+ int check_executable (const char *path);
+ char *strendzap (char *str, const char *pat);
+-void lt_fatal (const char *message, ...);
++void lt_debugprintf (const char *file, int line, const char *fmt, ...);
++void lt_fatal (const char *file, int line, const char *message, ...);
++static const char *nonnull (const char *s);
++static const char *nonempty (const char *s);
+ void lt_setenv (const char *name, const char *value);
+ char *lt_extend_str (const char *orig_value, const char *add, int to_end);
+ void lt_update_exe_path (const char *name, const char *value);
+@@ -3497,14 +4301,14 @@ void lt_dump_script (FILE *f);
+ EOF
+
+ cat <<EOF
+-const char * MAGIC_EXE = "$magic_exe";
++volatile const char * MAGIC_EXE = "$magic_exe";
+ const char * LIB_PATH_VARNAME = "$shlibpath_var";
+ EOF
+
+ if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+- func_to_host_pathlist "$temp_rpath"
++ func_to_host_path "$temp_rpath"
+ cat <<EOF
+-const char * LIB_PATH_VALUE = "$func_to_host_pathlist_result";
++const char * LIB_PATH_VALUE = "$func_to_host_path_result";
+ EOF
+ else
+ cat <<"EOF"
+@@ -3513,10 +4317,10 @@ EOF
+ fi
+
+ if test -n "$dllsearchpath"; then
+- func_to_host_pathlist "$dllsearchpath:"
++ func_to_host_path "$dllsearchpath:"
+ cat <<EOF
+ const char * EXE_PATH_VARNAME = "PATH";
+-const char * EXE_PATH_VALUE = "$func_to_host_pathlist_result";
++const char * EXE_PATH_VALUE = "$func_to_host_path_result";
+ EOF
+ else
+ cat <<"EOF"
+@@ -3539,12 +4343,10 @@ EOF
+ cat <<"EOF"
+
+ #define LTWRAPPER_OPTION_PREFIX "--lt-"
+-#define LTWRAPPER_OPTION_PREFIX_LENGTH 5
+
+-static const size_t opt_prefix_len = LTWRAPPER_OPTION_PREFIX_LENGTH;
+ static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
+-
+ static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
++static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug";
+
+ int
+ main (int argc, char *argv[])
+@@ -3561,10 +4363,13 @@ main (int argc, char *argv[])
+ int i;
+
+ program_name = (char *) xstrdup (base_name (argv[0]));
+- LTWRAPPER_DEBUGPRINTF (("(main) argv[0] : %s\n", argv[0]));
+- LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name));
++ newargz = XMALLOC (char *, argc + 1);
+
+- /* very simple arg parsing; don't want to rely on getopt */
++ /* very simple arg parsing; don't want to rely on getopt
++ * also, copy all non cwrapper options to newargz, except
++ * argz[0], which is handled differently
++ */
++ newargc=0;
+ for (i = 1; i < argc; i++)
+ {
+ if (strcmp (argv[i], dumpscript_opt) == 0)
+@@ -3581,21 +4386,54 @@ EOF
+ lt_dump_script (stdout);
+ return 0;
+ }
++ if (strcmp (argv[i], debug_opt) == 0)
++ {
++ lt_debug = 1;
++ continue;
++ }
++ if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
++ {
++ /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
++ namespace, but it is not one of the ones we know about and
++ have already dealt with, above (inluding dump-script), then
++ report an error. Otherwise, targets might begin to believe
++ they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
++ namespace. The first time any user complains about this, we'll
++ need to make LTWRAPPER_OPTION_PREFIX a configure-time option
++ or a configure.ac-settable value.
++ */
++ lt_fatal (__FILE__, __LINE__,
++ "unrecognized %s option: '%s'",
++ ltwrapper_option_prefix, argv[i]);
++ }
++ /* otherwise ... */
++ newargz[++newargc] = xstrdup (argv[i]);
+ }
++ newargz[++newargc] = NULL;
++
++EOF
++ cat <<EOF
++ /* The GNU banner must be the first non-error debug message */
++ lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
++EOF
++ cat <<"EOF"
++ lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
++ lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
+
+- newargz = XMALLOC (char *, argc + 1);
+ tmp_pathspec = find_executable (argv[0]);
+ if (tmp_pathspec == NULL)
+- lt_fatal ("Couldn't find %s", argv[0]);
+- LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n",
+- tmp_pathspec));
++ lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
++ lt_debugprintf (__FILE__, __LINE__,
++ "(main) found exe (before symlink chase) at: %s\n",
++ tmp_pathspec);
+
+ actual_cwrapper_path = chase_symlinks (tmp_pathspec);
+- LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n",
+- actual_cwrapper_path));
++ lt_debugprintf (__FILE__, __LINE__,
++ "(main) found exe (after symlink chase) at: %s\n",
++ actual_cwrapper_path);
+ XFREE (tmp_pathspec);
+
+- actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path));
++ actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
+ strendzap (actual_cwrapper_path, actual_cwrapper_name);
+
+ /* wrapper name transforms */
+@@ -3613,8 +4451,9 @@ EOF
+ target_name = tmp_pathspec;
+ tmp_pathspec = 0;
+
+- LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n",
+- target_name));
++ lt_debugprintf (__FILE__, __LINE__,
++ "(main) libtool target name: %s\n",
++ target_name);
+ EOF
+
+ cat <<EOF
+@@ -3664,35 +4503,19 @@ EOF
+
+ lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
+ lt_setenv ("DUALCASE", "1"); /* for MSK sh */
+- lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
++ /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must
++ be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
++ because on Windows, both *_VARNAMEs are PATH but uninstalled
++ libraries must come first. */
+ lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
++ lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
+
+- newargc=0;
+- for (i = 1; i < argc; i++)
+- {
+- if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0)
+- {
+- /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
+- namespace, but it is not one of the ones we know about and
+- have already dealt with, above (inluding dump-script), then
+- report an error. Otherwise, targets might begin to believe
+- they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
+- namespace. The first time any user complains about this, we'll
+- need to make LTWRAPPER_OPTION_PREFIX a configure-time option
+- or a configure.ac-settable value.
+- */
+- lt_fatal ("Unrecognized option in %s namespace: '%s'",
+- ltwrapper_option_prefix, argv[i]);
+- }
+- /* otherwise ... */
+- newargz[++newargc] = xstrdup (argv[i]);
+- }
+- newargz[++newargc] = NULL;
+-
+- LTWRAPPER_DEBUGPRINTF (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>")));
++ lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
++ nonnull (lt_argv_zero));
+ for (i = 0; i < newargc; i++)
+ {
+- LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>")));
++ lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
++ i, nonnull (newargz[i]));
+ }
+
+ EOF
+@@ -3706,7 +4529,9 @@ EOF
+ if (rval == -1)
+ {
+ /* failed to start process */
+- LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno));
++ lt_debugprintf (__FILE__, __LINE__,
++ "(main) failed to launch target \"%s\": %s\n",
++ lt_argv_zero, nonnull (strerror (errno)));
+ return 127;
+ }
+ return rval;
+@@ -3728,7 +4553,7 @@ xmalloc (size_t num)
+ {
+ void *p = (void *) malloc (num);
+ if (!p)
+- lt_fatal ("Memory exhausted");
++ lt_fatal (__FILE__, __LINE__, "memory exhausted");
+
+ return p;
+ }
+@@ -3762,8 +4587,8 @@ check_executable (const char *path)
+ {
+ struct stat st;
+
+- LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n",
+- path ? (*path ? path : "EMPTY!") : "NULL!"));
++ lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
++ nonempty (path));
+ if ((!path) || (!*path))
+ return 0;
+
+@@ -3780,8 +4605,8 @@ make_executable (const char *path)
+ int rval = 0;
+ struct stat st;
+
+- LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n",
+- path ? (*path ? path : "EMPTY!") : "NULL!"));
++ lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
++ nonempty (path));
+ if ((!path) || (!*path))
+ return 0;
+
+@@ -3807,8 +4632,8 @@ find_executable (const char *wrapper)
+ int tmp_len;
+ char *concat_name;
+
+- LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n",
+- wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"));
++ lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
++ nonempty (wrapper));
+
+ if ((wrapper == NULL) || (*wrapper == '\0'))
+ return NULL;
+@@ -3861,7 +4686,8 @@ find_executable (const char *wrapper)
+ {
+ /* empty path: current directory */
+ if (getcwd (tmp, LT_PATHMAX) == NULL)
+- lt_fatal ("getcwd failed");
++ lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
++ nonnull (strerror (errno)));
+ tmp_len = strlen (tmp);
+ concat_name =
+ XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
+@@ -3886,7 +4712,8 @@ find_executable (const char *wrapper)
+ }
+ /* Relative path | not found in path: prepend cwd */
+ if (getcwd (tmp, LT_PATHMAX) == NULL)
+- lt_fatal ("getcwd failed");
++ lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
++ nonnull (strerror (errno)));
+ tmp_len = strlen (tmp);
+ concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
+ memcpy (concat_name, tmp, tmp_len);
+@@ -3912,8 +4739,9 @@ chase_symlinks (const char *pathspec)
+ int has_symlinks = 0;
+ while (strlen (tmp_pathspec) && !has_symlinks)
+ {
+- LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n",
+- tmp_pathspec));
++ lt_debugprintf (__FILE__, __LINE__,
++ "checking path component for symlinks: %s\n",
++ tmp_pathspec);
+ if (lstat (tmp_pathspec, &s) == 0)
+ {
+ if (S_ISLNK (s.st_mode) != 0)
+@@ -3935,8 +4763,9 @@ chase_symlinks (const char *pathspec)
+ }
+ else
+ {
+- char *errstr = strerror (errno);
+- lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr);
++ lt_fatal (__FILE__, __LINE__,
++ "error accessing file \"%s\": %s",
++ tmp_pathspec, nonnull (strerror (errno)));
+ }
+ }
+ XFREE (tmp_pathspec);
+@@ -3949,7 +4778,8 @@ chase_symlinks (const char *pathspec)
+ tmp_pathspec = realpath (pathspec, buf);
+ if (tmp_pathspec == 0)
+ {
+- lt_fatal ("Could not follow symlinks for %s", pathspec);
++ lt_fatal (__FILE__, __LINE__,
++ "could not follow symlinks for %s", pathspec);
+ }
+ return xstrdup (tmp_pathspec);
+ #endif
+@@ -3975,11 +4805,25 @@ strendzap (char *str, const char *pat)
+ return str;
+ }
+
++void
++lt_debugprintf (const char *file, int line, const char *fmt, ...)
++{
++ va_list args;
++ if (lt_debug)
++ {
++ (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
++ va_start (args, fmt);
++ (void) vfprintf (stderr, fmt, args);
++ va_end (args);
++ }
++}
++
+ static void
+-lt_error_core (int exit_status, const char *mode,
++lt_error_core (int exit_status, const char *file,
++ int line, const char *mode,
+ const char *message, va_list ap)
+ {
+- fprintf (stderr, "%s: %s: ", program_name, mode);
++ fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
+ vfprintf (stderr, message, ap);
+ fprintf (stderr, ".\n");
+
+@@ -3988,20 +4832,32 @@ lt_error_core (int exit_status, const char *mode,
+ }
+
+ void
+-lt_fatal (const char *message, ...)
++lt_fatal (const char *file, int line, const char *message, ...)
+ {
+ va_list ap;
+ va_start (ap, message);
+- lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
++ lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
+ va_end (ap);
+ }
+
++static const char *
++nonnull (const char *s)
++{
++ return s ? s : "(null)";
++}
++
++static const char *
++nonempty (const char *s)
++{
++ return (s && !*s) ? "(empty)" : nonnull (s);
++}
++
+ void
+ lt_setenv (const char *name, const char *value)
+ {
+- LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n",
+- (name ? name : "<NULL>"),
+- (value ? value : "<NULL>")));
++ lt_debugprintf (__FILE__, __LINE__,
++ "(lt_setenv) setting '%s' to '%s'\n",
++ nonnull (name), nonnull (value));
+ {
+ #ifdef HAVE_SETENV
+ /* always make a copy, for consistency with !HAVE_SETENV */
+@@ -4049,9 +4905,9 @@ lt_extend_str (const char *orig_value, const char *add, int to_end)
+ void
+ lt_update_exe_path (const char *name, const char *value)
+ {
+- LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
+- (name ? name : "<NULL>"),
+- (value ? value : "<NULL>")));
++ lt_debugprintf (__FILE__, __LINE__,
++ "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
++ nonnull (name), nonnull (value));
+
+ if (name && *name && value && *value)
+ {
+@@ -4070,9 +4926,9 @@ lt_update_exe_path (const char *name, const char *value)
+ void
+ lt_update_lib_path (const char *name, const char *value)
+ {
+- LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
+- (name ? name : "<NULL>"),
+- (value ? value : "<NULL>")));
++ lt_debugprintf (__FILE__, __LINE__,
++ "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
++ nonnull (name), nonnull (value));
+
+ if (name && *name && value && *value)
+ {
+@@ -4222,7 +5078,7 @@ EOF
+ func_win32_import_lib_p ()
+ {
+ $opt_debug
+- case `eval "$file_magic_cmd \"\$1\" 2>/dev/null" | $SED -e 10q` in
++ case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
+ *import*) : ;;
+ *) false ;;
+ esac
+@@ -4401,9 +5257,9 @@ func_mode_link ()
+ ;;
+ *)
+ if test "$prev" = dlfiles; then
+- dlfiles="$dlfiles $arg"
++ func_append dlfiles " $arg"
+ else
+- dlprefiles="$dlprefiles $arg"
++ func_append dlprefiles " $arg"
+ fi
+ prev=
+ continue
+@@ -4427,7 +5283,7 @@ func_mode_link ()
+ *-*-darwin*)
+ case "$deplibs " in
+ *" $qarg.ltframework "*) ;;
+- *) deplibs="$deplibs $qarg.ltframework" # this is fixed later
++ *) func_append deplibs " $qarg.ltframework" # this is fixed later
+ ;;
+ esac
+ ;;
+@@ -4446,7 +5302,7 @@ func_mode_link ()
+ moreargs=
+ for fil in `cat "$save_arg"`
+ do
+-# moreargs="$moreargs $fil"
++# func_append moreargs " $fil"
+ arg=$fil
+ # A libtool-controlled object.
+
+@@ -4475,7 +5331,7 @@ func_mode_link ()
+
+ if test "$prev" = dlfiles; then
+ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+- dlfiles="$dlfiles $pic_object"
++ func_append dlfiles " $pic_object"
+ prev=
+ continue
+ else
+@@ -4487,7 +5343,7 @@ func_mode_link ()
+ # CHECK ME: I think I busted this. -Ossama
+ if test "$prev" = dlprefiles; then
+ # Preload the old-style object.
+- dlprefiles="$dlprefiles $pic_object"
++ func_append dlprefiles " $pic_object"
+ prev=
+ fi
+
+@@ -4557,12 +5413,12 @@ func_mode_link ()
+ if test "$prev" = rpath; then
+ case "$rpath " in
+ *" $arg "*) ;;
+- *) rpath="$rpath $arg" ;;
++ *) func_append rpath " $arg" ;;
+ esac
+ else
+ case "$xrpath " in
+ *" $arg "*) ;;
+- *) xrpath="$xrpath $arg" ;;
++ *) func_append xrpath " $arg" ;;
+ esac
+ fi
+ prev=
+@@ -4574,28 +5430,28 @@ func_mode_link ()
+ continue
+ ;;
+ weak)
+- weak_libs="$weak_libs $arg"
++ func_append weak_libs " $arg"
+ prev=
+ continue
+ ;;
+ xcclinker)
+- linker_flags="$linker_flags $qarg"
+- compiler_flags="$compiler_flags $qarg"
++ func_append linker_flags " $qarg"
++ func_append compiler_flags " $qarg"
+ prev=
+ func_append compile_command " $qarg"
+ func_append finalize_command " $qarg"
+ continue
+ ;;
+ xcompiler)
+- compiler_flags="$compiler_flags $qarg"
++ func_append compiler_flags " $qarg"
+ prev=
+ func_append compile_command " $qarg"
+ func_append finalize_command " $qarg"
+ continue
+ ;;
+ xlinker)
+- linker_flags="$linker_flags $qarg"
+- compiler_flags="$compiler_flags $wl$qarg"
++ func_append linker_flags " $qarg"
++ func_append compiler_flags " $wl$qarg"
+ prev=
+ func_append compile_command " $wl$qarg"
+ func_append finalize_command " $wl$qarg"
+@@ -4686,15 +5542,16 @@ func_mode_link ()
+ ;;
+
+ -L*)
+- func_stripname '-L' '' "$arg"
+- dir=$func_stripname_result
+- if test -z "$dir"; then
++ func_stripname "-L" '' "$arg"
++ if test -z "$func_stripname_result"; then
+ if test "$#" -gt 0; then
+ func_fatal_error "require no space between \`-L' and \`$1'"
+ else
+ func_fatal_error "need path for \`-L' option"
+ fi
+ fi
++ func_resolve_sysroot "$func_stripname_result"
++ dir=$func_resolve_sysroot_result
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+@@ -4706,10 +5563,16 @@ func_mode_link ()
+ ;;
+ esac
+ case "$deplibs " in
+- *" -L$dir "*) ;;
++ *" -L$dir "* | *" $arg "*)
++ # Will only happen for absolute or sysroot arguments
++ ;;
+ *)
+- deplibs="$deplibs -L$dir"
+- lib_search_path="$lib_search_path $dir"
++ # Preserve sysroot, but never include relative directories
++ case $dir in
++ [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
++ *) func_append deplibs " -L$dir" ;;
++ esac
++ func_append lib_search_path " $dir"
+ ;;
+ esac
+ case $host in
+@@ -4718,12 +5581,12 @@ func_mode_link ()
+ case :$dllsearchpath: in
+ *":$dir:"*) ;;
+ ::) dllsearchpath=$dir;;
+- *) dllsearchpath="$dllsearchpath:$dir";;
++ *) func_append dllsearchpath ":$dir";;
+ esac
+ case :$dllsearchpath: in
+ *":$testbindir:"*) ;;
+ ::) dllsearchpath=$testbindir;;
+- *) dllsearchpath="$dllsearchpath:$testbindir";;
++ *) func_append dllsearchpath ":$testbindir";;
+ esac
+ ;;
+ esac
+@@ -4747,7 +5610,7 @@ func_mode_link ()
+ ;;
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # Rhapsody C and math libraries are in the System framework
+- deplibs="$deplibs System.ltframework"
++ func_append deplibs " System.ltframework"
+ continue
+ ;;
+ *-*-sco3.2v5* | *-*-sco5v6*)
+@@ -4758,9 +5621,6 @@ func_mode_link ()
+ # Compiler inserts libc in the correct place for threads to work
+ test "X$arg" = "X-lc" && continue
+ ;;
+- *-*-linux*)
+- test "X$arg" = "X-lc" && continue
+- ;;
+ esac
+ elif test "X$arg" = "X-lc_r"; then
+ case $host in
+@@ -4770,7 +5630,7 @@ func_mode_link ()
+ ;;
+ esac
+ fi
+- deplibs="$deplibs $arg"
++ func_append deplibs " $arg"
+ continue
+ ;;
+
+@@ -4782,8 +5642,8 @@ func_mode_link ()
+ # Tru64 UNIX uses -model [arg] to determine the layout of C++
+ # classes, name mangling, and exception handling.
+ # Darwin uses the -arch flag to determine output architecture.
+- -model|-arch|-isysroot)
+- compiler_flags="$compiler_flags $arg"
++ -model|-arch|-isysroot|--sysroot)
++ func_append compiler_flags " $arg"
+ func_append compile_command " $arg"
+ func_append finalize_command " $arg"
+ prev=xcompiler
+@@ -4791,12 +5651,12 @@ func_mode_link ()
+ ;;
+
+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
+- compiler_flags="$compiler_flags $arg"
++ func_append compiler_flags " $arg"
+ func_append compile_command " $arg"
+ func_append finalize_command " $arg"
+ case "$new_inherited_linker_flags " in
+ *" $arg "*) ;;
+- * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
++ * ) func_append new_inherited_linker_flags " $arg" ;;
+ esac
+ continue
+ ;;
+@@ -4863,13 +5723,17 @@ func_mode_link ()
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
++ =*)
++ func_stripname '=' '' "$dir"
++ dir=$lt_sysroot$func_stripname_result
++ ;;
+ *)
+ func_fatal_error "only absolute run-paths are allowed"
+ ;;
+ esac
+ case "$xrpath " in
+ *" $dir "*) ;;
+- *) xrpath="$xrpath $dir" ;;
++ *) func_append xrpath " $dir" ;;
+ esac
+ continue
+ ;;
+@@ -4922,8 +5786,8 @@ func_mode_link ()
+ for flag in $args; do
+ IFS="$save_ifs"
+ func_quote_for_eval "$flag"
+- arg="$arg $func_quote_for_eval_result"
+- compiler_flags="$compiler_flags $func_quote_for_eval_result"
++ func_append arg " $func_quote_for_eval_result"
++ func_append compiler_flags " $func_quote_for_eval_result"
+ done
+ IFS="$save_ifs"
+ func_stripname ' ' '' "$arg"
+@@ -4938,9 +5802,9 @@ func_mode_link ()
+ for flag in $args; do
+ IFS="$save_ifs"
+ func_quote_for_eval "$flag"
+- arg="$arg $wl$func_quote_for_eval_result"
+- compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
+- linker_flags="$linker_flags $func_quote_for_eval_result"
++ func_append arg " $wl$func_quote_for_eval_result"
++ func_append compiler_flags " $wl$func_quote_for_eval_result"
++ func_append linker_flags " $func_quote_for_eval_result"
+ done
+ IFS="$save_ifs"
+ func_stripname ' ' '' "$arg"
+@@ -4968,24 +5832,27 @@ func_mode_link ()
+ arg="$func_quote_for_eval_result"
+ ;;
+
+- # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
+- # -r[0-9][0-9]* specifies the processor on the SGI compiler
+- # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
+- # +DA*, +DD* enable 64-bit mode on the HP compiler
+- # -q* pass through compiler args for the IBM compiler
+- # -m*, -t[45]*, -txscale* pass through architecture-specific
+- # compiler args for GCC
+- # -F/path gives path to uninstalled frameworks, gcc on darwin
+- # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
+- # @file GCC response files
+- # -tp=* Portland pgcc target processor selection
++ # Flags to be passed through unchanged, with rationale:
++ # -64, -mips[0-9] enable 64-bit mode for the SGI compiler
++ # -r[0-9][0-9]* specify processor for the SGI compiler
++ # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
++ # +DA*, +DD* enable 64-bit mode for the HP compiler
++ # -q* compiler args for the IBM compiler
++ # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
++ # -F/path path to uninstalled frameworks, gcc on darwin
++ # -p, -pg, --coverage, -fprofile-* profiling flags for GCC
++ # @file GCC response files
++ # -tp=* Portland pgcc target processor selection
++ # --sysroot=* for sysroot support
++ # -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=*)
++ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
++ -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
+ func_quote_for_eval "$arg"
+ arg="$func_quote_for_eval_result"
+ func_append compile_command " $arg"
+ func_append finalize_command " $arg"
+- compiler_flags="$compiler_flags $arg"
++ func_append compiler_flags " $arg"
+ continue
+ ;;
+
+@@ -4997,7 +5864,7 @@ func_mode_link ()
+
+ *.$objext)
+ # A standard object.
+- objs="$objs $arg"
++ func_append objs " $arg"
+ ;;
+
+ *.lo)
+@@ -5028,7 +5895,7 @@ func_mode_link ()
+
+ if test "$prev" = dlfiles; then
+ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+- dlfiles="$dlfiles $pic_object"
++ func_append dlfiles " $pic_object"
+ prev=
+ continue
+ else
+@@ -5040,7 +5907,7 @@ func_mode_link ()
+ # CHECK ME: I think I busted this. -Ossama
+ if test "$prev" = dlprefiles; then
+ # Preload the old-style object.
+- dlprefiles="$dlprefiles $pic_object"
++ func_append dlprefiles " $pic_object"
+ prev=
+ fi
+
+@@ -5085,24 +5952,25 @@ func_mode_link ()
+
+ *.$libext)
+ # An archive.
+- deplibs="$deplibs $arg"
+- old_deplibs="$old_deplibs $arg"
++ func_append deplibs " $arg"
++ func_append old_deplibs " $arg"
+ continue
+ ;;
+
+ *.la)
+ # A libtool-controlled library.
+
++ func_resolve_sysroot "$arg"
+ if test "$prev" = dlfiles; then
+ # This library was specified with -dlopen.
+- dlfiles="$dlfiles $arg"
++ func_append dlfiles " $func_resolve_sysroot_result"
+ prev=
+ elif test "$prev" = dlprefiles; then
+ # The library was specified with -dlpreopen.
+- dlprefiles="$dlprefiles $arg"
++ func_append dlprefiles " $func_resolve_sysroot_result"
+ prev=
+ else
+- deplibs="$deplibs $arg"
++ func_append deplibs " $func_resolve_sysroot_result"
+ fi
+ continue
+ ;;
+@@ -5127,7 +5995,7 @@ func_mode_link ()
+ func_fatal_help "the \`$prevarg' option requires an argument"
+
+ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+- eval "arg=\"$export_dynamic_flag_spec\""
++ eval arg=\"$export_dynamic_flag_spec\"
+ func_append compile_command " $arg"
+ func_append finalize_command " $arg"
+ fi
+@@ -5144,11 +6012,13 @@ func_mode_link ()
+ else
+ shlib_search_path=
+ fi
+- eval "sys_lib_search_path=\"$sys_lib_search_path_spec\""
+- eval "sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\""
++ eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
++ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+
+ func_dirname "$output" "/" ""
+ output_objdir="$func_dirname_result$objdir"
++ func_to_tool_file "$output_objdir/"
++ tool_output_objdir=$func_to_tool_file_result
+ # Create the object directory.
+ func_mkdir_p "$output_objdir"
+
+@@ -5169,12 +6039,12 @@ func_mode_link ()
+ # Find all interdependent deplibs by searching for libraries
+ # that are linked more than once (e.g. -la -lb -la)
+ for deplib in $deplibs; do
+- if $opt_duplicate_deps ; then
++ if $opt_preserve_dup_deps ; then
+ case "$libs " in
+- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
++ *" $deplib "*) func_append specialdeplibs " $deplib" ;;
+ esac
+ fi
+- libs="$libs $deplib"
++ func_append libs " $deplib"
+ done
+
+ if test "$linkmode" = lib; then
+@@ -5187,9 +6057,9 @@ func_mode_link ()
+ if $opt_duplicate_compiler_generated_deps; then
+ for pre_post_dep in $predeps $postdeps; do
+ case "$pre_post_deps " in
+- *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
++ *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
+ esac
+- pre_post_deps="$pre_post_deps $pre_post_dep"
++ func_append pre_post_deps " $pre_post_dep"
+ done
+ fi
+ pre_post_deps=
+@@ -5256,8 +6126,9 @@ func_mode_link ()
+ for lib in $dlprefiles; do
+ # Ignore non-libtool-libs
+ dependency_libs=
++ func_resolve_sysroot "$lib"
+ case $lib in
+- *.la) func_source "$lib" ;;
++ *.la) func_source "$func_resolve_sysroot_result" ;;
+ esac
+
+ # Collect preopened libtool deplibs, except any this library
+@@ -5267,7 +6138,7 @@ func_mode_link ()
+ deplib_base=$func_basename_result
+ case " $weak_libs " in
+ *" $deplib_base "*) ;;
+- *) deplibs="$deplibs $deplib" ;;
++ *) func_append deplibs " $deplib" ;;
+ esac
+ done
+ done
+@@ -5288,11 +6159,11 @@ func_mode_link ()
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+- compiler_flags="$compiler_flags $deplib"
++ func_append compiler_flags " $deplib"
+ if test "$linkmode" = lib ; then
+ case "$new_inherited_linker_flags " in
+ *" $deplib "*) ;;
+- * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
++ * ) func_append new_inherited_linker_flags " $deplib" ;;
+ esac
+ fi
+ fi
+@@ -5377,7 +6248,7 @@ func_mode_link ()
+ if test "$linkmode" = lib ; then
+ case "$new_inherited_linker_flags " in
+ *" $deplib "*) ;;
+- * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
++ * ) func_append new_inherited_linker_flags " $deplib" ;;
+ esac
+ fi
+ fi
+@@ -5390,7 +6261,8 @@ func_mode_link ()
+ test "$pass" = conv && continue
+ newdependency_libs="$deplib $newdependency_libs"
+ func_stripname '-L' '' "$deplib"
+- newlib_search_path="$newlib_search_path $func_stripname_result"
++ func_resolve_sysroot "$func_stripname_result"
++ func_append newlib_search_path " $func_resolve_sysroot_result"
+ ;;
+ prog)
+ if test "$pass" = conv; then
+@@ -5404,7 +6276,8 @@ func_mode_link ()
+ finalize_deplibs="$deplib $finalize_deplibs"
+ fi
+ func_stripname '-L' '' "$deplib"
+- newlib_search_path="$newlib_search_path $func_stripname_result"
++ func_resolve_sysroot "$func_stripname_result"
++ func_append newlib_search_path " $func_resolve_sysroot_result"
+ ;;
+ *)
+ func_warning "\`-L' is ignored for archives/objects"
+@@ -5415,17 +6288,21 @@ func_mode_link ()
+ -R*)
+ if test "$pass" = link; then
+ func_stripname '-R' '' "$deplib"
+- dir=$func_stripname_result
++ func_resolve_sysroot "$func_stripname_result"
++ dir=$func_resolve_sysroot_result
+ # Make sure the xrpath contains only unique directories.
+ case "$xrpath " in
+ *" $dir "*) ;;
+- *) xrpath="$xrpath $dir" ;;
++ *) func_append xrpath " $dir" ;;
+ esac
+ fi
+ deplibs="$deplib $deplibs"
+ continue
+ ;;
+- *.la) lib="$deplib" ;;
++ *.la)
++ func_resolve_sysroot "$deplib"
++ lib=$func_resolve_sysroot_result
++ ;;
+ *.$libext)
+ if test "$pass" = conv; then
+ deplibs="$deplib $deplibs"
+@@ -5488,11 +6365,11 @@ func_mode_link ()
+ if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+ # If there is no dlopen support or we're linking statically,
+ # we need to preload.
+- newdlprefiles="$newdlprefiles $deplib"
++ func_append newdlprefiles " $deplib"
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+- newdlfiles="$newdlfiles $deplib"
++ func_append newdlfiles " $deplib"
+ fi
+ fi
+ continue
+@@ -5538,7 +6415,7 @@ func_mode_link ()
+ for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
+ case " $new_inherited_linker_flags " in
+ *" $tmp_inherited_linker_flag "*) ;;
+- *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
++ *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
+ esac
+ done
+ fi
+@@ -5546,8 +6423,8 @@ func_mode_link ()
+ if test "$linkmode,$pass" = "lib,link" ||
+ test "$linkmode,$pass" = "prog,scan" ||
+ { test "$linkmode" != prog && test "$linkmode" != lib; }; then
+- test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
+- test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
++ test -n "$dlopen" && func_append dlfiles " $dlopen"
++ test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
+ fi
+
+ if test "$pass" = conv; then
+@@ -5558,20 +6435,20 @@ func_mode_link ()
+ func_fatal_error "cannot find name of link library for \`$lib'"
+ fi
+ # It is a libtool convenience library, so add in its objects.
+- convenience="$convenience $ladir/$objdir/$old_library"
+- old_convenience="$old_convenience $ladir/$objdir/$old_library"
++ func_append convenience " $ladir/$objdir/$old_library"
++ func_append old_convenience " $ladir/$objdir/$old_library"
+ elif test "$linkmode" != prog && test "$linkmode" != lib; then
+ func_fatal_error "\`$lib' is not a convenience library"
+ fi
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ deplibs="$deplib $deplibs"
+- if $opt_duplicate_deps ; then
++ if $opt_preserve_dup_deps ; then
+ case "$tmp_libs " in
+- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
++ *" $deplib "*) func_append specialdeplibs " $deplib" ;;
+ esac
+ fi
+- tmp_libs="$tmp_libs $deplib"
++ func_append tmp_libs " $deplib"
+ done
+ continue
+ fi # $pass = conv
+@@ -5579,9 +6456,15 @@ func_mode_link ()
+
+ # Get the name of the library we link against.
+ linklib=
+- for l in $old_library $library_names; do
+- linklib="$l"
+- done
++ if test -n "$old_library" &&
++ { test "$prefer_static_libs" = yes ||
++ test "$prefer_static_libs,$installed" = "built,no"; }; then
++ linklib=$old_library
++ else
++ for l in $old_library $library_names; do
++ linklib="$l"
++ done
++ fi
+ if test -z "$linklib"; then
+ func_fatal_error "cannot find name of link library for \`$lib'"
+ fi
+@@ -5598,9 +6481,9 @@ func_mode_link ()
+ # statically, we need to preload. We also need to preload any
+ # dependent libraries so libltdl's deplib preloader doesn't
+ # bomb out in the load deplibs phase.
+- dlprefiles="$dlprefiles $lib $dependency_libs"
++ func_append dlprefiles " $lib $dependency_libs"
+ else
+- newdlfiles="$newdlfiles $lib"
++ func_append newdlfiles " $lib"
+ fi
+ continue
+ fi # $pass = dlopen
+@@ -5622,14 +6505,14 @@ func_mode_link ()
+
+ # Find the relevant object directory and library name.
+ if test "X$installed" = Xyes; then
+- if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
++ if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+ func_warning "library \`$lib' was moved."
+ dir="$ladir"
+ absdir="$abs_ladir"
+ libdir="$abs_ladir"
+ else
+- dir="$libdir"
+- absdir="$libdir"
++ dir="$lt_sysroot$libdir"
++ absdir="$lt_sysroot$libdir"
+ fi
+ test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
+ else
+@@ -5637,12 +6520,12 @@ func_mode_link ()
+ dir="$ladir"
+ absdir="$abs_ladir"
+ # Remove this search path later
+- notinst_path="$notinst_path $abs_ladir"
++ func_append notinst_path " $abs_ladir"
+ else
+ dir="$ladir/$objdir"
+ absdir="$abs_ladir/$objdir"
+ # Remove this search path later
+- notinst_path="$notinst_path $abs_ladir"
++ func_append notinst_path " $abs_ladir"
+ fi
+ fi # $installed = yes
+ func_stripname 'lib' '.la' "$laname"
+@@ -5653,20 +6536,46 @@ func_mode_link ()
+ if test -z "$libdir" && test "$linkmode" = prog; then
+ func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
+ fi
+- # Prefer using a static library (so that no silly _DYNAMIC symbols
+- # are required to link).
+- if test -n "$old_library"; then
+- newdlprefiles="$newdlprefiles $dir/$old_library"
+- # Keep a list of preopened convenience libraries to check
+- # that they are being used correctly in the link pass.
+- test -z "$libdir" && \
+- dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
+- # Otherwise, use the dlname, so that lt_dlopen finds it.
+- elif test -n "$dlname"; then
+- newdlprefiles="$newdlprefiles $dir/$dlname"
+- else
+- newdlprefiles="$newdlprefiles $dir/$linklib"
+- fi
++ case "$host" in
++ # special handling for platforms with PE-DLLs.
++ *cygwin* | *mingw* | *cegcc* )
++ # Linker will automatically link against shared library if both
++ # static and shared are present. Therefore, ensure we extract
++ # symbols from the import library if a shared library is present
++ # (otherwise, the dlopen module name will be incorrect). We do
++ # this by putting the import library name into $newdlprefiles.
++ # We recover the dlopen module name by 'saving' the la file
++ # name in a special purpose variable, and (later) extracting the
++ # dlname from the la file.
++ if test -n "$dlname"; then
++ func_tr_sh "$dir/$linklib"
++ eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
++ func_append newdlprefiles " $dir/$linklib"
++ else
++ func_append newdlprefiles " $dir/$old_library"
++ # Keep a list of preopened convenience libraries to check
++ # that they are being used correctly in the link pass.
++ test -z "$libdir" && \
++ func_append dlpreconveniencelibs " $dir/$old_library"
++ fi
++ ;;
++ * )
++ # Prefer using a static library (so that no silly _DYNAMIC symbols
++ # are required to link).
++ if test -n "$old_library"; then
++ func_append newdlprefiles " $dir/$old_library"
++ # Keep a list of preopened convenience libraries to check
++ # that they are being used correctly in the link pass.
++ test -z "$libdir" && \
++ func_append dlpreconveniencelibs " $dir/$old_library"
++ # Otherwise, use the dlname, so that lt_dlopen finds it.
++ elif test -n "$dlname"; then
++ func_append newdlprefiles " $dir/$dlname"
++ else
++ func_append newdlprefiles " $dir/$linklib"
++ fi
++ ;;
++ esac
+ fi # $pass = dlpreopen
+
+ if test -z "$libdir"; then
+@@ -5684,7 +6593,7 @@ func_mode_link ()
+
+
+ if test "$linkmode" = prog && test "$pass" != link; then
+- newlib_search_path="$newlib_search_path $ladir"
++ func_append newlib_search_path " $ladir"
+ deplibs="$lib $deplibs"
+
+ linkalldeplibs=no
+@@ -5697,7 +6606,8 @@ func_mode_link ()
+ for deplib in $dependency_libs; do
+ case $deplib in
+ -L*) func_stripname '-L' '' "$deplib"
+- newlib_search_path="$newlib_search_path $func_stripname_result"
++ func_resolve_sysroot "$func_stripname_result"
++ func_append newlib_search_path " $func_resolve_sysroot_result"
+ ;;
+ esac
+ # Need to link against all dependency_libs?
+@@ -5708,12 +6618,12 @@ func_mode_link ()
+ # or/and link against static libraries
+ newdependency_libs="$deplib $newdependency_libs"
+ fi
+- if $opt_duplicate_deps ; then
++ if $opt_preserve_dup_deps ; then
+ case "$tmp_libs " in
+- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
++ *" $deplib "*) func_append specialdeplibs " $deplib" ;;
+ esac
+ fi
+- tmp_libs="$tmp_libs $deplib"
++ func_append tmp_libs " $deplib"
+ done # for deplib
+ continue
+ fi # $linkmode = prog...
+@@ -5728,7 +6638,7 @@ func_mode_link ()
+ # Make sure the rpath contains only unique directories.
+ case "$temp_rpath:" in
+ *"$absdir:"*) ;;
+- *) temp_rpath="$temp_rpath$absdir:" ;;
++ *) func_append temp_rpath "$absdir:" ;;
+ esac
+ fi
+
+@@ -5740,7 +6650,7 @@ func_mode_link ()
+ *)
+ case "$compile_rpath " in
+ *" $absdir "*) ;;
+- *) compile_rpath="$compile_rpath $absdir"
++ *) func_append compile_rpath " $absdir" ;;
+ esac
+ ;;
+ esac
+@@ -5749,7 +6659,7 @@ func_mode_link ()
+ *)
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+- *) finalize_rpath="$finalize_rpath $libdir"
++ *) func_append finalize_rpath " $libdir" ;;
+ esac
+ ;;
+ esac
+@@ -5774,12 +6684,12 @@ func_mode_link ()
+ case $host in
+ *cygwin* | *mingw* | *cegcc*)
+ # No point in relinking DLLs because paths are not encoded
+- notinst_deplibs="$notinst_deplibs $lib"
++ func_append notinst_deplibs " $lib"
+ need_relink=no
+ ;;
+ *)
+ if test "$installed" = no; then
+- notinst_deplibs="$notinst_deplibs $lib"
++ func_append notinst_deplibs " $lib"
+ need_relink=yes
+ fi
+ ;;
+@@ -5814,7 +6724,7 @@ func_mode_link ()
+ *)
+ case "$compile_rpath " in
+ *" $absdir "*) ;;
+- *) compile_rpath="$compile_rpath $absdir"
++ *) func_append compile_rpath " $absdir" ;;
+ esac
+ ;;
+ esac
+@@ -5823,7 +6733,7 @@ func_mode_link ()
+ *)
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+- *) finalize_rpath="$finalize_rpath $libdir"
++ *) func_append finalize_rpath " $libdir" ;;
+ esac
+ ;;
+ esac
+@@ -5835,7 +6745,7 @@ func_mode_link ()
+ shift
+ realname="$1"
+ shift
+- eval "libname=\"$libname_spec\""
++ libname=`eval "\\$ECHO \"$libname_spec\""`
+ # use dlname if we got it. it's perfectly good, no?
+ if test -n "$dlname"; then
+ soname="$dlname"
+@@ -5848,7 +6758,7 @@ func_mode_link ()
+ versuffix="-$major"
+ ;;
+ esac
+- eval "soname=\"$soname_spec\""
++ eval soname=\"$soname_spec\"
+ else
+ soname="$realname"
+ fi
+@@ -5877,7 +6787,7 @@ func_mode_link ()
+ linklib=$newlib
+ fi # test -n "$old_archive_from_expsyms_cmds"
+
+- if test "$linkmode" = prog || test "$mode" != relink; then
++ if test "$linkmode" = prog || test "$opt_mode" != relink; then
+ add_shlibpath=
+ add_dir=
+ add=
+@@ -5933,7 +6843,7 @@ func_mode_link ()
+ if test -n "$inst_prefix_dir"; then
+ case $libdir in
+ [\\/]*)
+- add_dir="$add_dir -L$inst_prefix_dir$libdir"
++ func_append add_dir " -L$inst_prefix_dir$libdir"
+ ;;
+ esac
+ fi
+@@ -5955,7 +6865,7 @@ func_mode_link ()
+ if test -n "$add_shlibpath"; then
+ case :$compile_shlibpath: in
+ *":$add_shlibpath:"*) ;;
+- *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
++ *) func_append compile_shlibpath "$add_shlibpath:" ;;
+ esac
+ fi
+ if test "$linkmode" = prog; then
+@@ -5969,13 +6879,13 @@ func_mode_link ()
+ test "$hardcode_shlibpath_var" = yes; then
+ case :$finalize_shlibpath: in
+ *":$libdir:"*) ;;
+- *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
++ *) func_append finalize_shlibpath "$libdir:" ;;
+ esac
+ fi
+ fi
+ fi
+
+- if test "$linkmode" = prog || test "$mode" = relink; then
++ if test "$linkmode" = prog || test "$opt_mode" = relink; then
+ add_shlibpath=
+ add_dir=
+ add=
+@@ -5989,7 +6899,7 @@ func_mode_link ()
+ elif test "$hardcode_shlibpath_var" = yes; then
+ case :$finalize_shlibpath: in
+ *":$libdir:"*) ;;
+- *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
++ *) func_append finalize_shlibpath "$libdir:" ;;
+ esac
+ add="-l$name"
+ elif test "$hardcode_automatic" = yes; then
+@@ -6001,12 +6911,12 @@ func_mode_link ()
+ fi
+ else
+ # We cannot seem to hardcode it, guess we'll fake it.
+- add_dir="-L$libdir"
++ add_dir="-L$lt_sysroot$libdir"
+ # Try looking first in the location we're being installed to.
+ if test -n "$inst_prefix_dir"; then
+ case $libdir in
+ [\\/]*)
+- add_dir="$add_dir -L$inst_prefix_dir$libdir"
++ func_append add_dir " -L$inst_prefix_dir$libdir"
+ ;;
+ esac
+ fi
+@@ -6083,27 +6993,33 @@ func_mode_link ()
+ temp_xrpath=$func_stripname_result
+ case " $xrpath " in
+ *" $temp_xrpath "*) ;;
+- *) xrpath="$xrpath $temp_xrpath";;
++ *) func_append xrpath " $temp_xrpath";;
+ esac;;
+- *) temp_deplibs="$temp_deplibs $libdir";;
++ *) func_append temp_deplibs " $libdir";;
+ esac
+ done
+ dependency_libs="$temp_deplibs"
+ fi
+
+- newlib_search_path="$newlib_search_path $absdir"
++ func_append newlib_search_path " $absdir"
+ # Link against this library
+ test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+ # ... and its dependency_libs
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ newdependency_libs="$deplib $newdependency_libs"
+- if $opt_duplicate_deps ; then
++ case $deplib in
++ -L*) func_stripname '-L' '' "$deplib"
++ func_resolve_sysroot "$func_stripname_result";;
++ *) func_resolve_sysroot "$deplib" ;;
++ esac
++ if $opt_preserve_dup_deps ; then
+ case "$tmp_libs " in
+- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
++ *" $func_resolve_sysroot_result "*)
++ func_append specialdeplibs " $func_resolve_sysroot_result" ;;
+ esac
+ fi
+- tmp_libs="$tmp_libs $deplib"
++ func_append tmp_libs " $func_resolve_sysroot_result"
+ done
+
+ if test "$link_all_deplibs" != no; then
+@@ -6113,8 +7029,10 @@ func_mode_link ()
+ case $deplib in
+ -L*) path="$deplib" ;;
+ *.la)
++ func_resolve_sysroot "$deplib"
++ deplib=$func_resolve_sysroot_result
+ func_dirname "$deplib" "" "."
+- dir="$func_dirname_result"
++ dir=$func_dirname_result
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+@@ -6130,7 +7048,7 @@ func_mode_link ()
+ case $host in
+ *-*-darwin*)
+ depdepl=
+- deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
++ eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+ if test -n "$deplibrary_names" ; then
+ for tmp in $deplibrary_names ; do
+ depdepl=$tmp
+@@ -6141,8 +7059,8 @@ func_mode_link ()
+ if test -z "$darwin_install_name"; then
+ darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
+ fi
+- compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
+- linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
++ func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
++ func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
+ path=
+ fi
+ fi
+@@ -6152,7 +7070,7 @@ func_mode_link ()
+ ;;
+ esac
+ else
+- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+ test -z "$libdir" && \
+ func_fatal_error "\`$deplib' is not a valid libtool archive"
+ test "$absdir" != "$libdir" && \
+@@ -6192,7 +7110,7 @@ func_mode_link ()
+ for dir in $newlib_search_path; do
+ case "$lib_search_path " in
+ *" $dir "*) ;;
+- *) lib_search_path="$lib_search_path $dir" ;;
++ *) func_append lib_search_path " $dir" ;;
+ esac
+ done
+ newlib_search_path=
+@@ -6205,7 +7123,7 @@ func_mode_link ()
+ fi
+ for var in $vars dependency_libs; do
+ # Add libraries to $var in reverse order
+- eval tmp_libs=\$$var
++ eval tmp_libs=\"\$$var\"
+ new_libs=
+ for deplib in $tmp_libs; do
+ # FIXME: Pedantically, this is the right thing to do, so
+@@ -6250,13 +7168,13 @@ func_mode_link ()
+ -L*)
+ case " $tmp_libs " in
+ *" $deplib "*) ;;
+- *) tmp_libs="$tmp_libs $deplib" ;;
++ *) func_append tmp_libs " $deplib" ;;
+ esac
+ ;;
+- *) tmp_libs="$tmp_libs $deplib" ;;
++ *) func_append tmp_libs " $deplib" ;;
+ esac
+ done
+- eval $var=\$tmp_libs
++ eval $var=\"$tmp_libs\"
+ done # for var
+ fi
+ # Last step: remove runtime libs from dependency_libs
+@@ -6269,7 +7187,7 @@ func_mode_link ()
+ ;;
+ esac
+ if test -n "$i" ; then
+- tmp_libs="$tmp_libs $i"
++ func_append tmp_libs " $i"
+ fi
+ done
+ dependency_libs=$tmp_libs
+@@ -6310,7 +7228,7 @@ func_mode_link ()
+ # Now set the variables for building old libraries.
+ build_libtool_libs=no
+ oldlibs="$output"
+- objs="$objs$old_deplibs"
++ func_append objs "$old_deplibs"
+ ;;
+
+ lib)
+@@ -6319,8 +7237,8 @@ func_mode_link ()
+ lib*)
+ func_stripname 'lib' '.la' "$outputname"
+ name=$func_stripname_result
+- eval "shared_ext=\"$shrext_cmds\""
+- eval "libname=\"$libname_spec\""
++ eval shared_ext=\"$shrext_cmds\"
++ eval libname=\"$libname_spec\"
+ ;;
+ *)
+ test "$module" = no && \
+@@ -6330,8 +7248,8 @@ func_mode_link ()
+ # Add the "lib" prefix for modules if required
+ func_stripname '' '.la' "$outputname"
+ name=$func_stripname_result
+- eval "shared_ext=\"$shrext_cmds\""
+- eval "libname=\"$libname_spec\""
++ eval shared_ext=\"$shrext_cmds\"
++ eval libname=\"$libname_spec\"
+ else
+ func_stripname '' '.la' "$outputname"
+ libname=$func_stripname_result
+@@ -6346,7 +7264,7 @@ func_mode_link ()
+ echo
+ $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
+ $ECHO "*** objects $objs is not portable!"
+- libobjs="$libobjs $objs"
++ func_append libobjs " $objs"
+ fi
+ fi
+
+@@ -6544,7 +7462,7 @@ func_mode_link ()
+ done
+
+ # Make executables depend on our current version.
+- verstring="$verstring:${current}.0"
++ func_append verstring ":${current}.0"
+ ;;
+
+ qnx)
+@@ -6612,10 +7530,10 @@ func_mode_link ()
+ fi
+
+ func_generate_dlsyms "$libname" "$libname" "yes"
+- libobjs="$libobjs $symfileobj"
++ func_append libobjs " $symfileobj"
+ test "X$libobjs" = "X " && libobjs=
+
+- if test "$mode" != relink; then
++ if test "$opt_mode" != relink; then
+ # Remove our outputs, but don't remove object files since they
+ # may have been created when compiling PIC objects.
+ removelist=
+@@ -6631,7 +7549,7 @@ func_mode_link ()
+ continue
+ fi
+ fi
+- removelist="$removelist $p"
++ func_append removelist " $p"
+ ;;
+ *) ;;
+ esac
+@@ -6642,7 +7560,7 @@ func_mode_link ()
+
+ # Now set the variables for building old libraries.
+ if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
+- oldlibs="$oldlibs $output_objdir/$libname.$libext"
++ func_append oldlibs " $output_objdir/$libname.$libext"
+
+ # Transform .lo files to .o files.
+ oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
+@@ -6659,10 +7577,11 @@ func_mode_link ()
+ # If the user specified any rpath flags, then add them.
+ temp_xrpath=
+ for libdir in $xrpath; do
+- temp_xrpath="$temp_xrpath -R$libdir"
++ func_replace_sysroot "$libdir"
++ func_append temp_xrpath " -R$func_replace_sysroot_result"
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+- *) finalize_rpath="$finalize_rpath $libdir" ;;
++ *) func_append finalize_rpath " $libdir" ;;
+ esac
+ done
+ if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
+@@ -6676,7 +7595,7 @@ func_mode_link ()
+ for lib in $old_dlfiles; do
+ case " $dlprefiles $dlfiles " in
+ *" $lib "*) ;;
+- *) dlfiles="$dlfiles $lib" ;;
++ *) func_append dlfiles " $lib" ;;
+ esac
+ done
+
+@@ -6686,7 +7605,7 @@ func_mode_link ()
+ for lib in $old_dlprefiles; do
+ case "$dlprefiles " in
+ *" $lib "*) ;;
+- *) dlprefiles="$dlprefiles $lib" ;;
++ *) func_append dlprefiles " $lib" ;;
+ esac
+ done
+
+@@ -6698,7 +7617,7 @@ func_mode_link ()
+ ;;
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # Rhapsody C library is in the System framework
+- deplibs="$deplibs System.ltframework"
++ func_append deplibs " System.ltframework"
+ ;;
+ *-*-netbsd*)
+ # Don't link with libc until the a.out ld.so is fixed.
+@@ -6715,7 +7634,7 @@ func_mode_link ()
+ *)
+ # Add libc to deplibs on all other systems if necessary.
+ if test "$build_libtool_need_lc" = "yes"; then
+- deplibs="$deplibs -lc"
++ func_append deplibs " -lc"
+ fi
+ ;;
+ esac
+@@ -6764,18 +7683,18 @@ EOF
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $i "*)
+- newdeplibs="$newdeplibs $i"
++ func_append newdeplibs " $i"
+ i=""
+ ;;
+ esac
+ fi
+ if test -n "$i" ; then
+- eval "libname=\"$libname_spec\""
+- eval "deplib_matches=\"$library_names_spec\""
++ libname=`eval "\\$ECHO \"$libname_spec\""`
++ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+ set dummy $deplib_matches; shift
+ deplib_match=$1
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+- newdeplibs="$newdeplibs $i"
++ func_append newdeplibs " $i"
+ else
+ droppeddeps=yes
+ echo
+@@ -6789,7 +7708,7 @@ EOF
+ fi
+ ;;
+ *)
+- newdeplibs="$newdeplibs $i"
++ func_append newdeplibs " $i"
+ ;;
+ esac
+ done
+@@ -6807,18 +7726,18 @@ EOF
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $i "*)
+- newdeplibs="$newdeplibs $i"
++ func_append newdeplibs " $i"
+ i=""
+ ;;
+ esac
+ fi
+ if test -n "$i" ; then
+- eval "libname=\"$libname_spec\""
+- eval "deplib_matches=\"$library_names_spec\""
++ libname=`eval "\\$ECHO \"$libname_spec\""`
++ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+ set dummy $deplib_matches; shift
+ deplib_match=$1
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+- newdeplibs="$newdeplibs $i"
++ func_append newdeplibs " $i"
+ else
+ droppeddeps=yes
+ echo
+@@ -6840,7 +7759,7 @@ EOF
+ fi
+ ;;
+ *)
+- newdeplibs="$newdeplibs $i"
++ func_append newdeplibs " $i"
+ ;;
+ esac
+ done
+@@ -6857,15 +7776,27 @@ EOF
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $a_deplib "*)
+- newdeplibs="$newdeplibs $a_deplib"
++ func_append newdeplibs " $a_deplib"
+ a_deplib=""
+ ;;
+ esac
+ fi
+ if test -n "$a_deplib" ; then
+- eval "libname=\"$libname_spec\""
++ libname=`eval "\\$ECHO \"$libname_spec\""`
++ if test -n "$file_magic_glob"; then
++ libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
++ else
++ libnameglob=$libname
++ fi
++ test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
+ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+- potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
++ if test "$want_nocaseglob" = yes; then
++ shopt -s nocaseglob
++ potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
++ $nocaseglob
++ else
++ potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
++ fi
+ for potent_lib in $potential_libs; do
+ # Follow soft links.
+ if ls -lLd "$potent_lib" 2>/dev/null |
+@@ -6885,10 +7816,10 @@ EOF
+ *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
+ esac
+ done
+- if eval "$file_magic_cmd \"\$potlib\"" 2>/dev/null |
++ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
+ $SED -e 10q |
+ $EGREP "$file_magic_regex" > /dev/null; then
+- newdeplibs="$newdeplibs $a_deplib"
++ func_append newdeplibs " $a_deplib"
+ a_deplib=""
+ break 2
+ fi
+@@ -6913,7 +7844,7 @@ EOF
+ ;;
+ *)
+ # Add a -L argument.
+- newdeplibs="$newdeplibs $a_deplib"
++ func_append newdeplibs " $a_deplib"
+ ;;
+ esac
+ done # Gone through all deplibs.
+@@ -6929,20 +7860,20 @@ EOF
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $a_deplib "*)
+- newdeplibs="$newdeplibs $a_deplib"
++ func_append newdeplibs " $a_deplib"
+ a_deplib=""
+ ;;
+ esac
+ fi
+ if test -n "$a_deplib" ; then
+- eval "libname=\"$libname_spec\""
++ libname=`eval "\\$ECHO \"$libname_spec\""`
+ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+ potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+ for potent_lib in $potential_libs; do
+ potlib="$potent_lib" # see symlink-check above in file_magic test
+ if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
+ $EGREP "$match_pattern_regex" > /dev/null; then
+- newdeplibs="$newdeplibs $a_deplib"
++ func_append newdeplibs " $a_deplib"
+ a_deplib=""
+ break 2
+ fi
+@@ -6967,7 +7898,7 @@ EOF
+ ;;
+ *)
+ # Add a -L argument.
+- newdeplibs="$newdeplibs $a_deplib"
++ func_append newdeplibs " $a_deplib"
+ ;;
+ esac
+ done # Gone through all deplibs.
+@@ -7071,7 +8002,7 @@ EOF
+ *)
+ case " $deplibs " in
+ *" -L$path/$objdir "*)
+- new_libs="$new_libs -L$path/$objdir" ;;
++ func_append new_libs " -L$path/$objdir" ;;
+ esac
+ ;;
+ esac
+@@ -7081,10 +8012,10 @@ EOF
+ -L*)
+ case " $new_libs " in
+ *" $deplib "*) ;;
+- *) new_libs="$new_libs $deplib" ;;
++ *) func_append new_libs " $deplib" ;;
+ esac
+ ;;
+- *) new_libs="$new_libs $deplib" ;;
++ *) func_append new_libs " $deplib" ;;
+ esac
+ done
+ deplibs="$new_libs"
+@@ -7101,10 +8032,12 @@ EOF
+ hardcode_libdirs=
+ dep_rpath=
+ rpath="$finalize_rpath"
+- test "$mode" != relink && rpath="$compile_rpath$rpath"
++ test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
+ for libdir in $rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
++ func_replace_sysroot "$libdir"
++ libdir=$func_replace_sysroot_result
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs="$libdir"
+ else
+@@ -7113,18 +8046,18 @@ EOF
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
++ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+- eval "flag=\"$hardcode_libdir_flag_spec\""
+- dep_rpath="$dep_rpath $flag"
++ eval flag=\"$hardcode_libdir_flag_spec\"
++ func_append dep_rpath " $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$perm_rpath " in
+ *" $libdir "*) ;;
+- *) perm_rpath="$perm_rpath $libdir" ;;
++ *) func_apped perm_rpath " $libdir" ;;
+ esac
+ fi
+ done
+@@ -7133,40 +8066,38 @@ EOF
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+ if test -n "$hardcode_libdir_flag_spec_ld"; then
+- eval "dep_rpath=\"$hardcode_libdir_flag_spec_ld\""
++ eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
+ else
+- eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
++ eval dep_rpath=\"$hardcode_libdir_flag_spec\"
+ fi
+ fi
+ if test -n "$runpath_var" && test -n "$perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $perm_rpath; do
+- rpath="$rpath$dir:"
++ func_append rpath "$dir:"
+ done
+- eval $runpath_var=\$rpath\$$runpath_var
+- export $runpath_var
++ eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
+ fi
+ test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
+ fi
+
+ shlibpath="$finalize_shlibpath"
+- test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
++ test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+ if test -n "$shlibpath"; then
+- eval $shlibpath_var=\$shlibpath\$$shlibpath_var
+- export $shlibpath_var
++ eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
+ fi
+
+ # Get the real and link names of the library.
+- eval "shared_ext=\"$shrext_cmds\""
+- eval "library_names=\"$library_names_spec\""
++ eval shared_ext=\"$shrext_cmds\"
++ eval library_names=\"$library_names_spec\"
+ set dummy $library_names
+ shift
+ realname="$1"
+ shift
+
+ if test -n "$soname_spec"; then
+- eval "soname=\"$soname_spec\""
++ eval soname=\"$soname_spec\"
+ else
+ soname="$realname"
+ fi
+@@ -7178,7 +8109,7 @@ EOF
+ linknames=
+ for link
+ do
+- linknames="$linknames $link"
++ func_append linknames " $link"
+ done
+
+ # Use standard objects if they are pic
+@@ -7189,7 +8120,7 @@ EOF
+ if test -n "$export_symbols" && test -n "$include_expsyms"; then
+ $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
+ export_symbols="$output_objdir/$libname.uexp"
+- delfiles="$delfiles $export_symbols"
++ func_append delfiles " $export_symbols"
+ fi
+
+ orig_export_symbols=
+@@ -7220,13 +8151,45 @@ EOF
+ $opt_dry_run || $RM $export_symbols
+ cmds=$export_symbols_cmds
+ save_ifs="$IFS"; IFS='~'
+- for cmd in $cmds; do
++ for cmd1 in $cmds; do
+ IFS="$save_ifs"
+- eval "cmd=\"$cmd\""
+- func_len " $cmd"
+- len=$func_len_result
+- if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
++ # Take the normal branch if the nm_file_list_spec branch
++ # doesn't work or if tool conversion is not needed.
++ case $nm_file_list_spec~$to_tool_file_cmd in
++ *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
++ try_normal_branch=yes
++ eval cmd=\"$cmd1\"
++ func_len " $cmd"
++ len=$func_len_result
++ ;;
++ *)
++ try_normal_branch=no
++ ;;
++ esac
++ if test "$try_normal_branch" = yes \
++ && { test "$len" -lt "$max_cmd_len" \
++ || test "$max_cmd_len" -le -1; }
++ then
++ func_show_eval "$cmd" 'exit $?'
++ skipped_export=false
++ elif test -n "$nm_file_list_spec"; then
++ func_basename "$output"
++ output_la=$func_basename_result
++ save_libobjs=$libobjs
++ save_output=$output
++ output=${output_objdir}/${output_la}.nm
++ func_to_tool_file "$output"
++ libobjs=$nm_file_list_spec$func_to_tool_file_result
++ func_append delfiles " $output"
++ func_verbose "creating $NM input file list: $output"
++ for obj in $save_libobjs; do
++ func_to_tool_file "$obj"
++ $ECHO "$func_to_tool_file_result"
++ done > "$output"
++ eval cmd=\"$cmd1\"
+ func_show_eval "$cmd" 'exit $?'
++ output=$save_output
++ libobjs=$save_libobjs
+ skipped_export=false
+ else
+ # The command line is too long to execute in one step.
+@@ -7248,7 +8211,7 @@ EOF
+ if test -n "$export_symbols" && test -n "$include_expsyms"; then
+ tmp_export_symbols="$export_symbols"
+ test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+- $opt_dry_run || $ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"
++ $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
+ fi
+
+ if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
+@@ -7260,7 +8223,7 @@ EOF
+ # global variables. join(1) would be nice here, but unfortunately
+ # isn't a blessed tool.
+ $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+- delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
++ func_append delfiles " $export_symbols $output_objdir/$libname.filter"
+ export_symbols=$output_objdir/$libname.def
+ $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+ fi
+@@ -7270,7 +8233,7 @@ EOF
+ case " $convenience " in
+ *" $test_deplib "*) ;;
+ *)
+- tmp_deplibs="$tmp_deplibs $test_deplib"
++ func_append tmp_deplibs " $test_deplib"
+ ;;
+ esac
+ done
+@@ -7286,43 +8249,43 @@ EOF
+ fi
+ if test -n "$whole_archive_flag_spec"; then
+ save_libobjs=$libobjs
+- eval "libobjs=\"\$libobjs $whole_archive_flag_spec\""
++ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+ test "X$libobjs" = "X " && libobjs=
+ else
+ gentop="$output_objdir/${outputname}x"
+- generated="$generated $gentop"
++ func_append generated " $gentop"
+
+ func_extract_archives $gentop $convenience
+- libobjs="$libobjs $func_extract_archives_result"
++ func_append libobjs " $func_extract_archives_result"
+ test "X$libobjs" = "X " && libobjs=
+ fi
+ fi
+
+ if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+- eval "flag=\"$thread_safe_flag_spec\""
+- linker_flags="$linker_flags $flag"
++ eval flag=\"$thread_safe_flag_spec\"
++ func_append linker_flags " $flag"
+ fi
+
+ # Make a backup of the uninstalled library when relinking
+- if test "$mode" = relink; then
+- $opt_dry_run || (cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U) || exit $?
++ if test "$opt_mode" = relink; then
++ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
+ fi
+
+ # Do each of the archive commands.
+ if test "$module" = yes && test -n "$module_cmds" ; then
+ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+- eval "test_cmds=\"$module_expsym_cmds\""
++ eval test_cmds=\"$module_expsym_cmds\"
+ cmds=$module_expsym_cmds
+ else
+- eval "test_cmds=\"$module_cmds\""
++ eval test_cmds=\"$module_cmds\"
+ cmds=$module_cmds
+ fi
+ else
+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+- eval "test_cmds=\"$archive_expsym_cmds\""
++ eval test_cmds=\"$archive_expsym_cmds\"
+ cmds=$archive_expsym_cmds
+ else
+- eval "test_cmds=\"$archive_cmds\""
++ eval test_cmds=\"$archive_cmds\"
+ cmds=$archive_cmds
+ fi
+ fi
+@@ -7366,10 +8329,13 @@ EOF
+ echo 'INPUT (' > $output
+ for obj in $save_libobjs
+ do
+- $ECHO "$obj" >> $output
++ func_to_tool_file "$obj"
++ $ECHO "$func_to_tool_file_result" >> $output
+ done
+ echo ')' >> $output
+- delfiles="$delfiles $output"
++ func_append delfiles " $output"
++ func_to_tool_file "$output"
++ output=$func_to_tool_file_result
+ elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
+ output=${output_objdir}/${output_la}.lnk
+ func_verbose "creating linker input file list: $output"
+@@ -7383,15 +8349,17 @@ EOF
+ fi
+ for obj
+ do
+- $ECHO "$obj" >> $output
++ func_to_tool_file "$obj"
++ $ECHO "$func_to_tool_file_result" >> $output
+ done
+- delfiles="$delfiles $output"
+- output=$firstobj\"$file_list_spec$output\"
++ func_append delfiles " $output"
++ func_to_tool_file "$output"
++ output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
+ else
+ if test -n "$save_libobjs"; then
+ func_verbose "creating reloadable object files..."
+ output=$output_objdir/$output_la-${k}.$objext
+- eval "test_cmds=\"$reload_cmds\""
++ eval test_cmds=\"$reload_cmds\"
+ func_len " $test_cmds"
+ len0=$func_len_result
+ len=$len0
+@@ -7411,12 +8379,12 @@ EOF
+ if test "$k" -eq 1 ; then
+ # The first file doesn't have a previous command to add.
+ reload_objs=$objlist
+- eval "concat_cmds=\"$reload_cmds\""
++ eval concat_cmds=\"$reload_cmds\"
+ else
+ # All subsequent reloadable object files will link in
+ # the last one created.
+ reload_objs="$objlist $last_robj"
+- eval "concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\""
++ eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
+ fi
+ last_robj=$output_objdir/$output_la-${k}.$objext
+ func_arith $k + 1
+@@ -7433,11 +8401,11 @@ EOF
+ # files will link in the last one created.
+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+ reload_objs="$objlist $last_robj"
+- eval "concat_cmds=\"\${concat_cmds}$reload_cmds\""
++ eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
+ if test -n "$last_robj"; then
+- eval "concat_cmds=\"\${concat_cmds}~\$RM $last_robj\""
++ eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
+ fi
+- delfiles="$delfiles $output"
++ func_append delfiles " $output"
+
+ else
+ output=
+@@ -7450,9 +8418,9 @@ EOF
+ libobjs=$output
+ # Append the command to create the export file.
+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+- eval "concat_cmds=\"\$concat_cmds$export_symbols_cmds\""
++ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
+ if test -n "$last_robj"; then
+- eval "concat_cmds=\"\$concat_cmds~\$RM $last_robj\""
++ eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
+ fi
+ fi
+
+@@ -7471,7 +8439,7 @@ EOF
+ lt_exit=$?
+
+ # Restore the uninstalled library and exit
+- if test "$mode" = relink; then
++ if test "$opt_mode" = relink; then
+ ( cd "$output_objdir" && \
+ $RM "${realname}T" && \
+ $MV "${realname}U" "$realname" )
+@@ -7492,7 +8460,7 @@ EOF
+ if test -n "$export_symbols" && test -n "$include_expsyms"; then
+ tmp_export_symbols="$export_symbols"
+ test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+- $opt_dry_run || $ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"
++ $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
+ fi
+
+ if test -n "$orig_export_symbols"; then
+@@ -7504,7 +8472,7 @@ EOF
+ # global variables. join(1) would be nice here, but unfortunately
+ # isn't a blessed tool.
+ $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+- delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
++ func_append delfiles " $export_symbols $output_objdir/$libname.filter"
+ export_symbols=$output_objdir/$libname.def
+ $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+ fi
+@@ -7515,7 +8483,7 @@ EOF
+ output=$save_output
+
+ if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
+- eval "libobjs=\"\$libobjs $whole_archive_flag_spec\""
++ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+ test "X$libobjs" = "X " && libobjs=
+ fi
+ # Expand the library linking commands again to reset the
+@@ -7539,23 +8507,23 @@ EOF
+
+ if test -n "$delfiles"; then
+ # Append the command to remove temporary files to $cmds.
+- eval "cmds=\"\$cmds~\$RM $delfiles\""
++ eval cmds=\"\$cmds~\$RM $delfiles\"
+ fi
+
+ # Add any objects from preloaded convenience libraries
+ if test -n "$dlprefiles"; then
+ gentop="$output_objdir/${outputname}x"
+- generated="$generated $gentop"
++ func_append generated " $gentop"
+
+ func_extract_archives $gentop $dlprefiles
+- libobjs="$libobjs $func_extract_archives_result"
++ func_append libobjs " $func_extract_archives_result"
+ test "X$libobjs" = "X " && libobjs=
+ fi
+
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+- eval "cmd=\"$cmd\""
++ eval cmd=\"$cmd\"
+ $opt_silent || {
+ func_quote_for_expand "$cmd"
+ eval "func_echo $func_quote_for_expand_result"
+@@ -7564,7 +8532,7 @@ EOF
+ lt_exit=$?
+
+ # Restore the uninstalled library and exit
+- if test "$mode" = relink; then
++ if test "$opt_mode" = relink; then
+ ( cd "$output_objdir" && \
+ $RM "${realname}T" && \
+ $MV "${realname}U" "$realname" )
+@@ -7576,8 +8544,8 @@ EOF
+ IFS="$save_ifs"
+
+ # Restore the uninstalled library and exit
+- if test "$mode" = relink; then
+- $opt_dry_run || (cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname) || exit $?
++ if test "$opt_mode" = relink; then
++ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
+
+ if test -n "$convenience"; then
+ if test -z "$whole_archive_flag_spec"; then
+@@ -7656,17 +8624,20 @@ EOF
+
+ if test -n "$convenience"; then
+ if test -n "$whole_archive_flag_spec"; then
+- eval "tmp_whole_archive_flags=\"$whole_archive_flag_spec\""
++ eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
+ reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
+ else
+ gentop="$output_objdir/${obj}x"
+- generated="$generated $gentop"
++ func_append generated " $gentop"
+
+ func_extract_archives $gentop $convenience
+ reload_conv_objs="$reload_objs $func_extract_archives_result"
+ fi
+ fi
+
++ # If we're not building shared, we need to use non_pic_objs
++ test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
++
+ # Create the old-style object.
+ reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+
+@@ -7690,7 +8661,7 @@ EOF
+ # Create an invalid libtool object if no PIC, so that we don't
+ # accidentally link it into a program.
+ # $show "echo timestamp > $libobj"
+- # $opt_dry_run || echo timestamp > $libobj || exit $?
++ # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
+ exit $EXIT_SUCCESS
+ fi
+
+@@ -7740,8 +8711,8 @@ EOF
+ if test "$tagname" = CXX ; then
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
+ 10.[0123])
+- compile_command="$compile_command ${wl}-bind_at_load"
+- finalize_command="$finalize_command ${wl}-bind_at_load"
++ func_append compile_command " ${wl}-bind_at_load"
++ func_append finalize_command " ${wl}-bind_at_load"
+ ;;
+ esac
+ fi
+@@ -7761,7 +8732,7 @@ EOF
+ *)
+ case " $compile_deplibs " in
+ *" -L$path/$objdir "*)
+- new_libs="$new_libs -L$path/$objdir" ;;
++ func_append new_libs " -L$path/$objdir" ;;
+ esac
+ ;;
+ esac
+@@ -7771,17 +8742,17 @@ EOF
+ -L*)
+ case " $new_libs " in
+ *" $deplib "*) ;;
+- *) new_libs="$new_libs $deplib" ;;
++ *) func_append new_libs " $deplib" ;;
+ esac
+ ;;
+- *) new_libs="$new_libs $deplib" ;;
++ *) func_append new_libs " $deplib" ;;
+ esac
+ done
+ compile_deplibs="$new_libs"
+
+
+- compile_command="$compile_command $compile_deplibs"
+- finalize_command="$finalize_command $finalize_deplibs"
++ func_append compile_command " $compile_deplibs"
++ func_append finalize_command " $finalize_deplibs"
+
+ if test -n "$rpath$xrpath"; then
+ # If the user specified any rpath flags, then add them.
+@@ -7789,7 +8760,7 @@ EOF
+ # This is the magic to use -rpath.
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+- *) finalize_rpath="$finalize_rpath $libdir" ;;
++ *) func_append finalize_rpath " $libdir" ;;
+ esac
+ done
+ fi
+@@ -7808,18 +8779,18 @@ EOF
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
++ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+- eval "flag=\"$hardcode_libdir_flag_spec\""
+- rpath="$rpath $flag"
++ eval flag=\"$hardcode_libdir_flag_spec\"
++ func_append rpath " $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$perm_rpath " in
+ *" $libdir "*) ;;
+- *) perm_rpath="$perm_rpath $libdir" ;;
++ *) func_append perm_rpath " $libdir" ;;
+ esac
+ fi
+ case $host in
+@@ -7828,12 +8799,12 @@ EOF
+ case :$dllsearchpath: in
+ *":$libdir:"*) ;;
+ ::) dllsearchpath=$libdir;;
+- *) dllsearchpath="$dllsearchpath:$libdir";;
++ *) func_append dllsearchpath ":$libdir";;
+ esac
+ case :$dllsearchpath: in
+ *":$testbindir:"*) ;;
+ ::) dllsearchpath=$testbindir;;
+- *) dllsearchpath="$dllsearchpath:$testbindir";;
++ *) func_append dllsearchpath ":$testbindir";;
+ esac
+ ;;
+ esac
+@@ -7842,7 +8813,7 @@ EOF
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+- eval "rpath=\" $hardcode_libdir_flag_spec\""
++ eval rpath=\" $hardcode_libdir_flag_spec\"
+ fi
+ compile_rpath="$rpath"
+
+@@ -7859,18 +8830,18 @@ EOF
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
++ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+- eval "flag=\"$hardcode_libdir_flag_spec\""
+- rpath="$rpath $flag"
++ eval flag=\"$hardcode_libdir_flag_spec\"
++ func_append rpath " $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$finalize_perm_rpath " in
+ *" $libdir "*) ;;
+- *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
++ *) func_append finalize_perm_rpath " $libdir" ;;
+ esac
+ fi
+ done
+@@ -7878,7 +8849,7 @@ EOF
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+- eval "rpath=\" $hardcode_libdir_flag_spec\""
++ eval rpath=\" $hardcode_libdir_flag_spec\"
+ fi
+ finalize_rpath="$rpath"
+
+@@ -7921,6 +8892,12 @@ EOF
+ exit_status=0
+ func_show_eval "$link_command" 'exit_status=$?'
+
++ if test -n "$postlink_cmds"; then
++ func_to_tool_file "$output"
++ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
++ func_execute_cmds "$postlink_cmds" 'exit $?'
++ fi
++
+ # Delete the generated files.
+ if test -f "$output_objdir/${outputname}S.${objext}"; then
+ func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
+@@ -7943,7 +8920,7 @@ EOF
+ # We should set the runpath_var.
+ rpath=
+ for dir in $perm_rpath; do
+- rpath="$rpath$dir:"
++ func_append rpath "$dir:"
+ done
+ compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+ fi
+@@ -7951,7 +8928,7 @@ EOF
+ # We should set the runpath_var.
+ rpath=
+ for dir in $finalize_perm_rpath; do
+- rpath="$rpath$dir:"
++ func_append rpath "$dir:"
+ done
+ finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+ fi
+@@ -7966,6 +8943,13 @@ EOF
+ $opt_dry_run || $RM $output
+ # Link the executable and exit
+ func_show_eval "$link_command" 'exit $?'
++
++ if test -n "$postlink_cmds"; then
++ func_to_tool_file "$output"
++ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
++ func_execute_cmds "$postlink_cmds" 'exit $?'
++ fi
++
+ exit $EXIT_SUCCESS
+ fi
+
+@@ -7999,6 +8983,12 @@ EOF
+
+ func_show_eval "$link_command" 'exit $?'
+
++ if test -n "$postlink_cmds"; then
++ func_to_tool_file "$output_objdir/$outputname"
++ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
++ func_execute_cmds "$postlink_cmds" 'exit $?'
++ fi
++
+ # Now create the wrapper script.
+ func_verbose "creating $output"
+
+@@ -8096,7 +9086,7 @@ EOF
+ else
+ oldobjs="$old_deplibs $non_pic_objects"
+ if test "$preload" = yes && test -f "$symfileobj"; then
+- oldobjs="$oldobjs $symfileobj"
++ func_append oldobjs " $symfileobj"
+ fi
+ fi
+ addlibs="$old_convenience"
+@@ -8104,10 +9094,10 @@ EOF
+
+ if test -n "$addlibs"; then
+ gentop="$output_objdir/${outputname}x"
+- generated="$generated $gentop"
++ func_append generated " $gentop"
+
+ func_extract_archives $gentop $addlibs
+- oldobjs="$oldobjs $func_extract_archives_result"
++ func_append oldobjs " $func_extract_archives_result"
+ fi
+
+ # Do each command in the archive commands.
+@@ -8118,10 +9108,10 @@ EOF
+ # Add any objects from preloaded convenience libraries
+ if test -n "$dlprefiles"; then
+ gentop="$output_objdir/${outputname}x"
+- generated="$generated $gentop"
++ func_append generated " $gentop"
+
+ func_extract_archives $gentop $dlprefiles
+- oldobjs="$oldobjs $func_extract_archives_result"
++ func_append oldobjs " $func_extract_archives_result"
+ fi
+
+ # POSIX demands no paths to be encoded in archives. We have
+@@ -8139,7 +9129,7 @@ EOF
+ else
+ echo "copying selected object files to avoid basename conflicts..."
+ gentop="$output_objdir/${outputname}x"
+- generated="$generated $gentop"
++ func_append generated " $gentop"
+ func_mkdir_p "$gentop"
+ save_oldobjs=$oldobjs
+ oldobjs=
+@@ -8163,18 +9153,28 @@ EOF
+ esac
+ done
+ func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
+- oldobjs="$oldobjs $gentop/$newobj"
++ func_append oldobjs " $gentop/$newobj"
+ ;;
+- *) oldobjs="$oldobjs $obj" ;;
++ *) func_append oldobjs " $obj" ;;
+ esac
+ done
+ fi
+- eval "cmds=\"$old_archive_cmds\""
++ eval cmds=\"$old_archive_cmds\"
+
+ func_len " $cmds"
+ len=$func_len_result
+ if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+ cmds=$old_archive_cmds
++ elif test -n "$archiver_list_spec"; then
++ func_verbose "using command file archive linking..."
++ for obj in $oldobjs
++ do
++ func_to_tool_file "$obj"
++ $ECHO "$func_to_tool_file_result"
++ done > $output_objdir/$libname.libcmd
++ func_to_tool_file "$output_objdir/$libname.libcmd"
++ oldobjs=" $archiver_list_spec$func_to_tool_file_result"
++ cmds=$old_archive_cmds
+ else
+ # the command line is too long to link in one step, link in parts
+ func_verbose "using piecewise archive linking..."
+@@ -8189,7 +9189,7 @@ EOF
+ do
+ last_oldobj=$obj
+ done
+- eval "test_cmds=\"$old_archive_cmds\""
++ eval test_cmds=\"$old_archive_cmds\"
+ func_len " $test_cmds"
+ len0=$func_len_result
+ len=$len0
+@@ -8208,7 +9208,7 @@ EOF
+ RANLIB=$save_RANLIB
+ fi
+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+- eval "concat_cmds=\"\${concat_cmds}$old_archive_cmds\""
++ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
+ objlist=
+ len=$len0
+ fi
+@@ -8216,9 +9216,9 @@ EOF
+ RANLIB=$save_RANLIB
+ oldobjs=$objlist
+ if test "X$oldobjs" = "X" ; then
+- eval "cmds=\"\$concat_cmds\""
++ eval cmds=\"\$concat_cmds\"
+ else
+- eval "cmds=\"\$concat_cmds~\$old_archive_cmds\""
++ eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
+ fi
+ fi
+ fi
+@@ -8268,12 +9268,23 @@ EOF
+ *.la)
+ func_basename "$deplib"
+ name="$func_basename_result"
+- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
++ func_resolve_sysroot "$deplib"
++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
+ test -z "$libdir" && \
+ func_fatal_error "\`$deplib' is not a valid libtool archive"
+- newdependency_libs="$newdependency_libs $libdir/$name"
++ func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
++ ;;
++ -L*)
++ func_stripname -L '' "$deplib"
++ func_replace_sysroot "$func_stripname_result"
++ func_append newdependency_libs " -L$func_replace_sysroot_result"
+ ;;
+- *) newdependency_libs="$newdependency_libs $deplib" ;;
++ -R*)
++ func_stripname -R '' "$deplib"
++ func_replace_sysroot "$func_stripname_result"
++ func_append newdependency_libs " -R$func_replace_sysroot_result"
++ ;;
++ *) func_append newdependency_libs " $deplib" ;;
+ esac
+ done
+ dependency_libs="$newdependency_libs"
+@@ -8284,12 +9295,14 @@ EOF
+ *.la)
+ func_basename "$lib"
+ name="$func_basename_result"
+- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
++ func_resolve_sysroot "$lib"
++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
++
+ test -z "$libdir" && \
+ func_fatal_error "\`$lib' is not a valid libtool archive"
+- newdlfiles="$newdlfiles $libdir/$name"
++ func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
+ ;;
+- *) newdlfiles="$newdlfiles $lib" ;;
++ *) func_append newdlfiles " $lib" ;;
+ esac
+ done
+ dlfiles="$newdlfiles"
+@@ -8303,10 +9316,11 @@ EOF
+ # the library:
+ func_basename "$lib"
+ name="$func_basename_result"
+- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
++ func_resolve_sysroot "$lib"
++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
+ test -z "$libdir" && \
+ func_fatal_error "\`$lib' is not a valid libtool archive"
+- newdlprefiles="$newdlprefiles $libdir/$name"
++ func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
+ ;;
+ esac
+ done
+@@ -8318,7 +9332,7 @@ EOF
+ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+ *) abs=`pwd`"/$lib" ;;
+ esac
+- newdlfiles="$newdlfiles $abs"
++ func_append newdlfiles " $abs"
+ done
+ dlfiles="$newdlfiles"
+ newdlprefiles=
+@@ -8327,7 +9341,7 @@ EOF
+ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+ *) abs=`pwd`"/$lib" ;;
+ esac
+- newdlprefiles="$newdlprefiles $abs"
++ func_append newdlprefiles " $abs"
+ done
+ dlprefiles="$newdlprefiles"
+ fi
+@@ -8412,7 +9426,7 @@ relink_command=\"$relink_command\""
+ exit $EXIT_SUCCESS
+ }
+
+-{ test "$mode" = link || test "$mode" = relink; } &&
++{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
+ func_mode_link ${1+"$@"}
+
+
+@@ -8432,9 +9446,9 @@ func_mode_uninstall ()
+ for arg
+ do
+ case $arg in
+- -f) RM="$RM $arg"; rmforce=yes ;;
+- -*) RM="$RM $arg" ;;
+- *) files="$files $arg" ;;
++ -f) func_append RM " $arg"; rmforce=yes ;;
++ -*) func_append RM " $arg" ;;
++ *) func_append files " $arg" ;;
+ esac
+ done
+
+@@ -8443,24 +9457,23 @@ func_mode_uninstall ()
+
+ rmdirs=
+
+- origobjdir="$objdir"
+ for file in $files; do
+ func_dirname "$file" "" "."
+ dir="$func_dirname_result"
+ if test "X$dir" = X.; then
+- objdir="$origobjdir"
++ odir="$objdir"
+ else
+- objdir="$dir/$origobjdir"
++ odir="$dir/$objdir"
+ fi
+ func_basename "$file"
+ name="$func_basename_result"
+- test "$mode" = uninstall && objdir="$dir"
++ test "$opt_mode" = uninstall && odir="$dir"
+
+- # Remember objdir for removal later, being careful to avoid duplicates
+- if test "$mode" = clean; then
++ # Remember odir for removal later, being careful to avoid duplicates
++ if test "$opt_mode" = clean; then
+ case " $rmdirs " in
+- *" $objdir "*) ;;
+- *) rmdirs="$rmdirs $objdir" ;;
++ *" $odir "*) ;;
++ *) func_append rmdirs " $odir" ;;
+ esac
+ fi
+
+@@ -8486,18 +9499,17 @@ func_mode_uninstall ()
+
+ # Delete the libtool libraries and symlinks.
+ for n in $library_names; do
+- rmfiles="$rmfiles $objdir/$n"
++ func_append rmfiles " $odir/$n"
+ done
+- test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
++ test -n "$old_library" && func_append rmfiles " $odir/$old_library"
+
+- case "$mode" in
++ case "$opt_mode" in
+ clean)
+- case " $library_names " in
+- # " " in the beginning catches empty $dlname
++ case " $library_names " in
+ *" $dlname "*) ;;
+- *) rmfiles="$rmfiles $objdir/$dlname" ;;
++ *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
+ esac
+- test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
++ test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
+ ;;
+ uninstall)
+ if test -n "$library_names"; then
+@@ -8525,19 +9537,19 @@ func_mode_uninstall ()
+ # Add PIC object to the list of files to remove.
+ if test -n "$pic_object" &&
+ test "$pic_object" != none; then
+- rmfiles="$rmfiles $dir/$pic_object"
++ func_append rmfiles " $dir/$pic_object"
+ fi
+
+ # Add non-PIC object to the list of files to remove.
+ if test -n "$non_pic_object" &&
+ test "$non_pic_object" != none; then
+- rmfiles="$rmfiles $dir/$non_pic_object"
++ func_append rmfiles " $dir/$non_pic_object"
+ fi
+ fi
+ ;;
+
+ *)
+- if test "$mode" = clean ; then
++ if test "$opt_mode" = clean ; then
+ noexename=$name
+ case $file in
+ *.exe)
+@@ -8547,7 +9559,7 @@ func_mode_uninstall ()
+ noexename=$func_stripname_result
+ # $file with .exe has already been added to rmfiles,
+ # add $file without .exe
+- rmfiles="$rmfiles $file"
++ func_append rmfiles " $file"
+ ;;
+ esac
+ # Do a test to see if this is a libtool program.
+@@ -8556,7 +9568,7 @@ func_mode_uninstall ()
+ func_ltwrapper_scriptname "$file"
+ relink_command=
+ func_source $func_ltwrapper_scriptname_result
+- rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
++ func_append rmfiles " $func_ltwrapper_scriptname_result"
+ else
+ relink_command=
+ func_source $dir/$noexename
+@@ -8564,12 +9576,12 @@ func_mode_uninstall ()
+
+ # note $name still contains .exe if it was in $file originally
+ # as does the version of $file that was added into $rmfiles
+- rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
++ func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
+ if test "$fast_install" = yes && test -n "$relink_command"; then
+- rmfiles="$rmfiles $objdir/lt-$name"
++ func_append rmfiles " $odir/lt-$name"
+ fi
+ if test "X$noexename" != "X$name" ; then
+- rmfiles="$rmfiles $objdir/lt-${noexename}.c"
++ func_append rmfiles " $odir/lt-${noexename}.c"
+ fi
+ fi
+ fi
+@@ -8577,7 +9589,6 @@ func_mode_uninstall ()
+ esac
+ func_show_eval "$RM $rmfiles" 'exit_status=1'
+ done
+- objdir="$origobjdir"
+
+ # Try to remove the ${objdir}s in the directories where we deleted files
+ for dir in $rmdirs; do
+@@ -8589,16 +9600,16 @@ func_mode_uninstall ()
+ exit $exit_status
+ }
+
+-{ test "$mode" = uninstall || test "$mode" = clean; } &&
++{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
+ func_mode_uninstall ${1+"$@"}
+
+-test -z "$mode" && {
++test -z "$opt_mode" && {
+ help="$generic_help"
+ func_fatal_help "you must specify a MODE"
+ }
+
+ test -z "$exec_cmd" && \
+- func_fatal_help "invalid operation mode \`$mode'"
++ func_fatal_help "invalid operation mode \`$opt_mode'"
+
+ if test -n "$exec_cmd"; then
+ eval exec "$exec_cmd"
+diff --git a/ltoptions.m4 b/ltoptions.m4
+index 5ef12ced2a8..17cfd51c0b3 100644
+--- a/ltoptions.m4
++++ b/ltoptions.m4
+@@ -8,7 +8,7 @@
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+
+-# serial 6 ltoptions.m4
++# serial 7 ltoptions.m4
+
+ # This is to help aclocal find these macros, as it can't see m4_define.
+ AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
+diff --git a/ltversion.m4 b/ltversion.m4
+index bf87f77132d..9c7b5d41185 100644
+--- a/ltversion.m4
++++ b/ltversion.m4
+@@ -7,17 +7,17 @@
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+
+-# Generated from ltversion.in.
++# @configure_input@
+
+-# serial 3134 ltversion.m4
++# serial 3293 ltversion.m4
+ # This file is part of GNU Libtool
+
+-m4_define([LT_PACKAGE_VERSION], [2.2.7a])
+-m4_define([LT_PACKAGE_REVISION], [1.3134])
++m4_define([LT_PACKAGE_VERSION], [2.4])
++m4_define([LT_PACKAGE_REVISION], [1.3293])
+
+ AC_DEFUN([LTVERSION_VERSION],
+-[macro_version='2.2.7a'
+-macro_revision='1.3134'
++[macro_version='2.4'
++macro_revision='1.3293'
+ _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
+ _LT_DECL(, macro_revision, 0)
+ ])
+diff --git a/lt~obsolete.m4 b/lt~obsolete.m4
+index bf92b5e0790..c573da90c5c 100644
+--- a/lt~obsolete.m4
++++ b/lt~obsolete.m4
+@@ -7,7 +7,7 @@
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+
+-# serial 4 lt~obsolete.m4
++# serial 5 lt~obsolete.m4
+
+ # These exist entirely to fool aclocal when bootstrapping libtool.
+ #
+diff --git a/opcodes/configure b/opcodes/configure
+index 8d1e561c942..a0291dfbfa7 100755
+--- a/opcodes/configure
++++ b/opcodes/configure
+@@ -680,6 +680,9 @@ OTOOL
+ LIPO
+ NMEDIT
+ DSYMUTIL
++MANIFEST_TOOL
++ac_ct_AR
++DLLTOOL
+ OBJDUMP
+ LN_S
+ NM
+@@ -798,6 +801,7 @@ enable_static
+ with_pic
+ enable_fast_install
+ with_gnu_ld
++with_libtool_sysroot
+ enable_libtool_lock
+ enable_targets
+ enable_werror
+@@ -1462,6 +1466,8 @@ Optional Packages:
+ --with-pic try to use only PIC/non-PIC objects [default=use
+ both]
+ --with-gnu-ld assume the C compiler uses GNU ld [default=no]
++ --with-libtool-sysroot=DIR Search for dependent libraries within DIR
++ (or the compiler's sysroot if not specified).
+
+ Some influential environment variables:
+ CC C compiler command
+@@ -5403,8 +5409,8 @@ esac
+
+
+
+-macro_version='2.2.7a'
+-macro_revision='1.3134'
++macro_version='2.4'
++macro_revision='1.3293'
+
+
+
+@@ -5444,7 +5450,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+ $as_echo_n "checking how to print strings... " >&6; }
+ # Test print first, because it will be a builtin if present.
+-if test "X`print -r -- -n 2>/dev/null`" = X-n && \
++if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='print -r --'
+ elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+@@ -6130,8 +6136,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
+ # Try some XSI features
+ xsi_shell=no
+ ( _lt_dummy="a/b/c"
+- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
+- = c,a/b,, \
++ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
++ = c,a/b,b/c, \
+ && eval 'test $(( 1 + 1 )) -eq 2 \
+ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+ && xsi_shell=yes
+@@ -6180,6 +6186,80 @@ esac
+
+
+
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
++$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
++if ${lt_cv_to_host_file_cmd+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ case $host in
++ *-*-mingw* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
++ ;;
++ *-*-cygwin* )
++ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
++ ;;
++ * ) # otherwise, assume *nix
++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
++ ;;
++ esac
++ ;;
++ *-*-cygwin* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
++ ;;
++ *-*-cygwin* )
++ lt_cv_to_host_file_cmd=func_convert_file_noop
++ ;;
++ * ) # otherwise, assume *nix
++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
++ ;;
++ esac
++ ;;
++ * ) # unhandled hosts (and "normal" native builds)
++ lt_cv_to_host_file_cmd=func_convert_file_noop
++ ;;
++esac
++
++fi
++
++to_host_file_cmd=$lt_cv_to_host_file_cmd
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
++$as_echo "$lt_cv_to_host_file_cmd" >&6; }
++
++
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
++$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
++if ${lt_cv_to_tool_file_cmd+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ #assume ordinary cross tools, or native build.
++lt_cv_to_tool_file_cmd=func_convert_file_noop
++case $host in
++ *-*-mingw* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
++ ;;
++ esac
++ ;;
++esac
++
++fi
++
++to_tool_file_cmd=$lt_cv_to_tool_file_cmd
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
++$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
++
++
++
++
++
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+ $as_echo_n "checking for $LD option to reload object files... " >&6; }
+ if ${lt_cv_ld_reload_flag+:} false; then :
+@@ -6196,6 +6276,11 @@ case $reload_flag in
+ esac
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ case $host_os in
++ cygwin* | mingw* | pw32* | cegcc*)
++ if test "$GCC" != yes; then
++ reload_cmds=false
++ fi
++ ;;
+ darwin*)
+ if test "$GCC" = yes; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+@@ -6364,7 +6449,8 @@ mingw* | pw32*)
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
++ # Keep this pattern in sync with the one in func_win32_libid.
++ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+@@ -6518,6 +6604,21 @@ esac
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+ $as_echo "$lt_cv_deplibs_check_method" >&6; }
++
++file_magic_glob=
++want_nocaseglob=no
++if test "$build" = "$host"; then
++ case $host_os in
++ mingw* | pw32*)
++ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
++ want_nocaseglob=yes
++ else
++ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
++ fi
++ ;;
++ esac
++fi
++
+ file_magic_cmd=$lt_cv_file_magic_cmd
+ deplibs_check_method=$lt_cv_deplibs_check_method
+ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+@@ -6531,11 +6632,164 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
++
++
++
++
++
++
++
++
++
++
+
+
+ if test -n "$ac_tool_prefix"; then
+- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}ar; ac_word=$2
++ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
++set dummy ${ac_tool_prefix}dlltool; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_DLLTOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$DLLTOOL"; then
++ ac_cv_prog_DLLTOOL="$DLLTOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++DLLTOOL=$ac_cv_prog_DLLTOOL
++if test -n "$DLLTOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
++$as_echo "$DLLTOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++
++fi
++if test -z "$ac_cv_prog_DLLTOOL"; then
++ ac_ct_DLLTOOL=$DLLTOOL
++ # Extract the first word of "dlltool", so it can be a program name with args.
++set dummy dlltool; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$ac_ct_DLLTOOL"; then
++ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_ac_ct_DLLTOOL="dlltool"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
++if test -n "$ac_ct_DLLTOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
++$as_echo "$ac_ct_DLLTOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++ if test "x$ac_ct_DLLTOOL" = x; then
++ DLLTOOL="false"
++ else
++ case $cross_compiling:$ac_tool_warned in
++yes:)
++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
++ac_tool_warned=yes ;;
++esac
++ DLLTOOL=$ac_ct_DLLTOOL
++ fi
++else
++ DLLTOOL="$ac_cv_prog_DLLTOOL"
++fi
++
++test -z "$DLLTOOL" && DLLTOOL=dlltool
++
++
++
++
++
++
++
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
++$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
++if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_sharedlib_from_linklib_cmd='unknown'
++
++case $host_os in
++cygwin* | mingw* | pw32* | cegcc*)
++ # two different shell functions defined in ltmain.sh
++ # decide which to use based on capabilities of $DLLTOOL
++ case `$DLLTOOL --help 2>&1` in
++ *--identify-strict*)
++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
++ ;;
++ *)
++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
++ ;;
++ esac
++ ;;
++*)
++ # fallback: assume linklib IS sharedlib
++ lt_cv_sharedlib_from_linklib_cmd="$ECHO"
++ ;;
++esac
++
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
++$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
++sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
++test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
++
++
++
++
++
++
++
++if test -n "$ac_tool_prefix"; then
++ for ac_prog in ar
++ 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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+@@ -6551,7 +6805,7 @@ do
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+- ac_cv_prog_AR="${ac_tool_prefix}ar"
++ ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+@@ -6571,11 +6825,15 @@ $as_echo "no" >&6; }
+ fi
+
+
++ test -n "$AR" && break
++ done
+ fi
+-if test -z "$ac_cv_prog_AR"; then
++if test -z "$AR"; then
+ ac_ct_AR=$AR
+- # Extract the first word of "ar", so it can be a program name with args.
+-set dummy ar; ac_word=$2
++ for ac_prog in ar
++do
++ # Extract the first word of "$ac_prog", so it can be a program name with args.
++set dummy $ac_prog; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+@@ -6591,7 +6849,7 @@ do
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+- ac_cv_prog_ac_ct_AR="ar"
++ ac_cv_prog_ac_ct_AR="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+@@ -6610,6 +6868,10 @@ else
+ $as_echo "no" >&6; }
+ fi
+
++
++ test -n "$ac_ct_AR" && break
++done
++
+ if test "x$ac_ct_AR" = x; then
+ AR="false"
+ else
+@@ -6621,16 +6883,72 @@ ac_tool_warned=yes ;;
+ esac
+ AR=$ac_ct_AR
+ fi
+-else
+- AR="$ac_cv_prog_AR"
+ fi
+
+-test -z "$AR" && AR=ar
+-test -z "$AR_FLAGS" && AR_FLAGS=cru
++: ${AR=ar}
++: ${AR_FLAGS=cru}
++
++
++
++
++
++
++
++
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
++$as_echo_n "checking for archiver @FILE support... " >&6; }
++if ${lt_cv_ar_at_file+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_ar_at_file=no
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++
++int
++main ()
++{
+
++ ;
++ return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++ echo conftest.$ac_objext > conftest.lst
++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
++ (eval $lt_ar_try) 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }
++ if test "$ac_status" -eq 0; then
++ # Ensure the archiver fails upon bogus file names.
++ rm -f conftest.$ac_objext libconftest.a
++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
++ (eval $lt_ar_try) 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }
++ if test "$ac_status" -ne 0; then
++ lt_cv_ar_at_file=@
++ fi
++ fi
++ rm -f conftest.* libconftest.a
+
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
++$as_echo "$lt_cv_ar_at_file" >&6; }
+
++if test "x$lt_cv_ar_at_file" = xno; then
++ archiver_list_spec=
++else
++ archiver_list_spec=$lt_cv_ar_at_file
++fi
+
+
+
+@@ -6972,8 +7290,8 @@ esac
+ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+ # Transform an extracted symbol line into symbol name and symbol address
+-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
+-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
++lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
+
+ # Handle CRLF in mingw tool chain
+ opt_cr=
+@@ -7009,6 +7327,7 @@ for ac_symprfx in "" "_"; do
+ else
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
++ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+@@ -7050,6 +7369,18 @@ _LT_EOF
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
++#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
++/* DATA imports from DLLs on WIN32 con't be const, because runtime
++ relocations are performed -- see ld's documentation on pseudo-relocs. */
++# define LT_DLSYM_CONST
++#elif defined(__osf__)
++/* This system does not cope well with relocations in const data. */
++# define LT_DLSYM_CONST
++#else
++# define LT_DLSYM_CONST const
++#endif
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+@@ -7061,7 +7392,7 @@ _LT_EOF
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+ /* The mapping between symbol names and symbols. */
+-const struct {
++LT_DLSYM_CONST struct {
+ const char *name;
+ void *address;
+ }
+@@ -7087,8 +7418,8 @@ static const void *lt_preloaded_setup() {
+ _LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+- lt_save_LIBS="$LIBS"
+- lt_save_CFLAGS="$CFLAGS"
++ lt_globsym_save_LIBS=$LIBS
++ lt_globsym_save_CFLAGS=$CFLAGS
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+@@ -7098,8 +7429,8 @@ _LT_EOF
+ test $ac_status = 0; } && test -s conftest${ac_exeext}; then
+ pipe_works=yes
+ fi
+- LIBS="$lt_save_LIBS"
+- CFLAGS="$lt_save_CFLAGS"
++ LIBS=$lt_globsym_save_LIBS
++ CFLAGS=$lt_globsym_save_CFLAGS
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+@@ -7136,6 +7467,16 @@ else
+ $as_echo "ok" >&6; }
+ fi
+
++# Response file support.
++if test "$lt_cv_nm_interface" = "MS dumpbin"; then
++ nm_file_list_spec='@'
++elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
++ nm_file_list_spec='@'
++fi
++
++
++
++
+
+
+
+@@ -7152,6 +7493,45 @@ fi
+
+
+
++
++
++
++
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
++$as_echo_n "checking for sysroot... " >&6; }
++
++# Check whether --with-libtool-sysroot was given.
++if test "${with_libtool_sysroot+set}" = set; then :
++ withval=$with_libtool_sysroot;
++else
++ with_libtool_sysroot=no
++fi
++
++
++lt_sysroot=
++case ${with_libtool_sysroot} in #(
++ yes)
++ if test "$GCC" = yes; then
++ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
++ fi
++ ;; #(
++ /*)
++ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
++ ;; #(
++ no|'')
++ ;; #(
++ *)
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5
++$as_echo "${with_libtool_sysroot}" >&6; }
++ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
++ ;;
++esac
++
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
++$as_echo "${lt_sysroot:-no}" >&6; }
+
+
+
+@@ -7363,6 +7743,123 @@ esac
+
+ need_locks="$enable_libtool_lock"
+
++if test -n "$ac_tool_prefix"; then
++ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
++set dummy ${ac_tool_prefix}mt; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$MANIFEST_TOOL"; then
++ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
++if test -n "$MANIFEST_TOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
++$as_echo "$MANIFEST_TOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++
++fi
++if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
++ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
++ # Extract the first word of "mt", so it can be a program name with args.
++set dummy mt; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$ac_ct_MANIFEST_TOOL"; then
++ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
++if test -n "$ac_ct_MANIFEST_TOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
++$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++ if test "x$ac_ct_MANIFEST_TOOL" = x; then
++ MANIFEST_TOOL=":"
++ else
++ case $cross_compiling:$ac_tool_warned in
++yes:)
++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
++ac_tool_warned=yes ;;
++esac
++ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
++ fi
++else
++ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
++fi
++
++test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
++$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
++if ${lt_cv_path_mainfest_tool+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_path_mainfest_tool=no
++ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
++ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
++ cat conftest.err >&5
++ if $GREP 'Manifest Tool' conftest.out > /dev/null; then
++ lt_cv_path_mainfest_tool=yes
++ fi
++ rm -f conftest*
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
++$as_echo "$lt_cv_path_mainfest_tool" >&6; }
++if test "x$lt_cv_path_mainfest_tool" != xyes; then
++ MANIFEST_TOOL=:
++fi
++
++
++
++
++
+
+ case $host_os in
+ rhapsody* | darwin*)
+@@ -7926,6 +8423,8 @@ _LT_EOF
+ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+ echo "$AR cru libconftest.a conftest.o" >&5
+ $AR cru libconftest.a conftest.o 2>&5
++ echo "$RANLIB libconftest.a" >&5
++ $RANLIB libconftest.a 2>&5
+ cat > conftest.c << _LT_EOF
+ int main() { return 0;}
+ _LT_EOF
+@@ -8091,7 +8590,8 @@ fi
+ LIBTOOL_DEPS="$ltmain"
+
+ # Always use our own libtool.
+-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
++LIBTOOL='$(SHELL) $(top_builddir)'
++LIBTOOL="$LIBTOOL/${host_alias}-libtool"
+
+
+
+@@ -8180,7 +8680,7 @@ aix3*)
+ esac
+
+ # Global variables:
+-ofile=libtool
++ofile=${host_alias}-libtool
+ can_build_shared=yes
+
+ # All known linkers require a `.a' archive for static linking (except MSVC,
+@@ -8478,8 +8978,6 @@ fi
+ lt_prog_compiler_pic=
+ lt_prog_compiler_static=
+
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+
+ if test "$GCC" = yes; then
+ lt_prog_compiler_wl='-Wl,'
+@@ -8645,6 +9143,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+ lt_prog_compiler_pic='--shared'
+ lt_prog_compiler_static='--static'
+ ;;
++ nagfor*)
++ # NAG Fortran compiler
++ lt_prog_compiler_wl='-Wl,-Wl,,'
++ lt_prog_compiler_pic='-PIC'
++ lt_prog_compiler_static='-Bstatic'
++ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+@@ -8707,7 +9211,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+- f77* | f90* | f95*)
++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+@@ -8764,13 +9268,17 @@ case $host_os in
+ lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+ ;;
+ esac
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
+-$as_echo "$lt_prog_compiler_pic" >&6; }
+-
+-
+-
+-
+
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
++$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
++if ${lt_cv_prog_compiler_pic+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
++$as_echo "$lt_cv_prog_compiler_pic" >&6; }
++lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
+
+ #
+ # Check to make sure the PIC flag actually works.
+@@ -8831,6 +9339,11 @@ fi
+
+
+
++
++
++
++
++
+ #
+ # Check to make sure the static flag actually works.
+ #
+@@ -9181,7 +9694,8 @@ _LT_EOF
+ allow_undefined_flag=unsupported
+ always_export_symbols=no
+ enable_shared_with_static_runtimes=yes
+- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
++ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+@@ -9280,12 +9794,12 @@ _LT_EOF
+ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_flag_spec_ld='-rpath $libdir'
+- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+@@ -9299,8 +9813,8 @@ _LT_EOF
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+@@ -9318,8 +9832,8 @@ _LT_EOF
+
+ _LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+@@ -9365,8 +9879,8 @@ _LT_EOF
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+@@ -9496,7 +10010,13 @@ _LT_EOF
+ allow_undefined_flag='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++ if test "${lt_cv_aix_libpath+set}" = set; then
++ aix_libpath=$lt_cv_aix_libpath
++else
++ if ${lt_cv_aix_libpath_+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ int
+@@ -9509,22 +10029,29 @@ main ()
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+
+-lt_aix_libpath_sed='
+- /Import File Strings/,/^$/ {
+- /^0/ {
+- s/^0 *\(.*\)$/\1/
+- p
+- }
+- }'
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-# Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then
+- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-fi
++ lt_aix_libpath_sed='
++ /Import File Strings/,/^$/ {
++ /^0/ {
++ s/^0 *\([^ ]*\) *$/\1/
++ p
++ }
++ }'
++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ # Check for a 64-bit object if we didn't find anything.
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ fi
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_="/usr/lib:/lib"
++ fi
++
++fi
++
++ aix_libpath=$lt_cv_aix_libpath_
++fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+@@ -9536,7 +10063,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++ if test "${lt_cv_aix_libpath+set}" = set; then
++ aix_libpath=$lt_cv_aix_libpath
++else
++ if ${lt_cv_aix_libpath_+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+ int
+@@ -9549,22 +10082,29 @@ main ()
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+
+-lt_aix_libpath_sed='
+- /Import File Strings/,/^$/ {
+- /^0/ {
+- s/^0 *\(.*\)$/\1/
+- p
+- }
+- }'
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-# Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then
+- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-fi
++ lt_aix_libpath_sed='
++ /Import File Strings/,/^$/ {
++ /^0/ {
++ s/^0 *\([^ ]*\) *$/\1/
++ p
++ }
++ }'
++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ # Check for a 64-bit object if we didn't find anything.
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ fi
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_="/usr/lib:/lib"
++ fi
++
++fi
++
++ aix_libpath=$lt_cv_aix_libpath_
++fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+@@ -9609,20 +10149,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+- hardcode_libdir_flag_spec=' '
+- allow_undefined_flag=unsupported
+- # Tell ltmain to make .lib files, not .a files.
+- libext=lib
+- # Tell ltmain to make .dll files, not .so files.
+- shrext_cmds=".dll"
+- # FIXME: Setting linknames here is a bad hack.
+- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+- # The linker will automatically build a .lib file if we build a DLL.
+- old_archive_from_new_cmds='true'
+- # FIXME: Should let the user specify the lib program.
+- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+- fix_srcfile_path='`cygpath -w "$srcfile"`'
+- enable_shared_with_static_runtimes=yes
++ case $cc_basename in
++ cl*)
++ # Native MSVC
++ hardcode_libdir_flag_spec=' '
++ allow_undefined_flag=unsupported
++ always_export_symbols=yes
++ file_list_spec='@'
++ # Tell ltmain to make .lib files, not .a files.
++ libext=lib
++ # Tell ltmain to make .dll files, not .so files.
++ shrext_cmds=".dll"
++ # FIXME: Setting linknames here is a bad hack.
++ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
++ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
++ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
++ else
++ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
++ fi~
++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
++ linknames='
++ # The linker will not automatically build a static lib if we build a DLL.
++ # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
++ enable_shared_with_static_runtimes=yes
++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
++ # Don't use ranlib
++ old_postinstall_cmds='chmod 644 $oldlib'
++ postlink_cmds='lt_outputfile="@OUTPUT@"~
++ lt_tool_outputfile="@TOOL_OUTPUT@"~
++ case $lt_outputfile in
++ *.exe|*.EXE) ;;
++ *)
++ lt_outputfile="$lt_outputfile.exe"
++ lt_tool_outputfile="$lt_tool_outputfile.exe"
++ ;;
++ esac~
++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
++ $RM "$lt_outputfile.manifest";
++ fi'
++ ;;
++ *)
++ # Assume MSVC wrapper
++ hardcode_libdir_flag_spec=' '
++ allow_undefined_flag=unsupported
++ # Tell ltmain to make .lib files, not .a files.
++ libext=lib
++ # Tell ltmain to make .dll files, not .so files.
++ shrext_cmds=".dll"
++ # FIXME: Setting linknames here is a bad hack.
++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
++ # The linker will automatically build a .lib file if we build a DLL.
++ old_archive_from_new_cmds='true'
++ # FIXME: Should let the user specify the lib program.
++ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
++ enable_shared_with_static_runtimes=yes
++ ;;
++ esac
+ ;;
+
+ darwin* | rhapsody*)
+@@ -9683,7 +10266,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+@@ -9691,7 +10274,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hpux9*)
+ if test "$GCC" = yes; then
+- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
++ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+@@ -9707,7 +10290,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hpux10*)
+ if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+@@ -9731,10 +10314,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+@@ -9813,23 +10396,36 @@ fi
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+- save_LDFLAGS="$LDFLAGS"
+- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++ # This should be the same for all languages, so no per-tag cache variable.
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
++$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
++if ${lt_cv_irix_exported_symbol+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ save_LDFLAGS="$LDFLAGS"
++ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+-int foo(void) {}
++int foo (void) { return 0; }
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+-
++ lt_cv_irix_exported_symbol=yes
++else
++ lt_cv_irix_exported_symbol=no
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+- LDFLAGS="$save_LDFLAGS"
++ LDFLAGS="$save_LDFLAGS"
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
++$as_echo "$lt_cv_irix_exported_symbol" >&6; }
++ if test "$lt_cv_irix_exported_symbol" = yes; then
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
++ fi
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+@@ -9914,7 +10510,7 @@ rm -f core conftest.err conftest.$ac_objext \
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
++ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+@@ -9933,9 +10529,9 @@ rm -f core conftest.err conftest.$ac_objext \
+ no_undefined_flag=' -z defs'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
++ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+@@ -10511,8 +11107,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+ need_version=no
+ need_lib_prefix=no
+
+- case $GCC,$host_os in
+- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
++ case $GCC,$cc_basename in
++ yes,*)
++ # gcc
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+@@ -10545,13 +11142,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
++ dynamic_linker='Win32 ld.exe'
++ ;;
++
++ *,cl*)
++ # Native MSVC
++ libname_spec='$name'
++ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
++ library_names_spec='${libname}.dll.lib'
++
++ case $build_os in
++ mingw*)
++ sys_lib_search_path_spec=
++ lt_save_ifs=$IFS
++ IFS=';'
++ for lt_path in $LIB
++ do
++ IFS=$lt_save_ifs
++ # Let DOS variable expansion print the short 8.3 style file name.
++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
++ done
++ IFS=$lt_save_ifs
++ # Convert to MSYS style.
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
++ ;;
++ cygwin*)
++ # Convert to unix form, then to dos form, then back to unix form
++ # but this time dos style (no spaces!) so that the unix form looks
++ # like /cygdrive/c/PROGRA~1:/cygdr...
++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
++ ;;
++ *)
++ sys_lib_search_path_spec="$LIB"
++ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
++ # It is most probably a Windows format PATH.
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
++ else
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
++ fi
++ # FIXME: find the short name or the path components, as spaces are
++ # common. (e.g. "Program Files" -> "PROGRA~1")
++ ;;
++ esac
++
++ # DLL is installed to $(libdir)/../bin by postinstall_cmds
++ postinstall_cmds='base_file=`basename \${file}`~
++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
++ dldir=$destdir/`dirname \$dlpath`~
++ test -d \$dldir || mkdir -p \$dldir~
++ $install_prog $dir/$dlname \$dldir/$dlname'
++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
++ dlpath=$dir/\$dldll~
++ $RM \$dlpath'
++ shlibpath_overrides_runpath=yes
++ dynamic_linker='Win32 link.exe'
+ ;;
+
+ *)
++ # Assume MSVC wrapper
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
++ dynamic_linker='Win32 ld.exe'
+ ;;
+ esac
+- dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+@@ -10643,7 +11298,7 @@ haiku*)
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+ hardcode_into_libs=yes
+ ;;
+
+@@ -11439,7 +12094,7 @@ else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+-#line 11442 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+@@ -11483,10 +12138,10 @@ else
+ /* When -fvisbility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+-void fnord () __attribute__((visibility("default")));
++int fnord () __attribute__((visibility("default")));
+ #endif
+
+-void fnord () { int i=42; }
++int fnord () { return 42; }
+ int main ()
+ {
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+@@ -11545,7 +12200,7 @@ else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+-#line 11548 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+@@ -11589,10 +12244,10 @@ else
+ /* When -fvisbility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+-void fnord () __attribute__((visibility("default")));
++int fnord () __attribute__((visibility("default")));
+ #endif
+
+-void fnord () { int i=42; }
++int fnord () { return 42; }
+ int main ()
+ {
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+@@ -13756,13 +14411,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+ lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+ lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+ lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
++lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
++lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
+ reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+ reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+ OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+ deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+ file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
++file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
++want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
++DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
++sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
+ AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+ AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
++archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
+ STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+ RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+ old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+@@ -13777,14 +14439,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+ lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+ lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
++nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
++lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+ objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+ MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
++lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+ lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+ need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
++MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
+ DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+ NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+ LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+@@ -13817,12 +14482,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+ hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+ inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+ link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+-fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`'
+ always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+ export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+ exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+ include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+ prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
++postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
+ file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+ variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+ need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+@@ -13877,8 +14542,13 @@ reload_flag \
+ OBJDUMP \
+ deplibs_check_method \
+ file_magic_cmd \
++file_magic_glob \
++want_nocaseglob \
++DLLTOOL \
++sharedlib_from_linklib_cmd \
+ AR \
+ AR_FLAGS \
++archiver_list_spec \
+ STRIP \
+ RANLIB \
+ CC \
+@@ -13888,12 +14558,14 @@ lt_cv_sys_global_symbol_pipe \
+ lt_cv_sys_global_symbol_to_cdecl \
+ lt_cv_sys_global_symbol_to_c_name_address \
+ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
++nm_file_list_spec \
+ lt_prog_compiler_no_builtin_flag \
+-lt_prog_compiler_wl \
+ lt_prog_compiler_pic \
++lt_prog_compiler_wl \
+ lt_prog_compiler_static \
+ lt_cv_prog_compiler_c_o \
+ need_locks \
++MANIFEST_TOOL \
+ DSYMUTIL \
+ NMEDIT \
+ LIPO \
+@@ -13909,7 +14581,6 @@ no_undefined_flag \
+ hardcode_libdir_flag_spec \
+ hardcode_libdir_flag_spec_ld \
+ hardcode_libdir_separator \
+-fix_srcfile_path \
+ exclude_expsyms \
+ include_expsyms \
+ file_list_spec \
+@@ -13945,6 +14616,7 @@ module_cmds \
+ module_expsym_cmds \
+ export_symbols_cmds \
+ prelink_cmds \
++postlink_cmds \
+ postinstall_cmds \
+ postuninstall_cmds \
+ finish_cmds \
+@@ -14710,7 +15382,8 @@ $as_echo X"$file" |
+ # NOTE: Changes made to this file will be lost: look at ltmain.sh.
+ #
+ # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
++# Inc.
+ # Written by Gordon Matzigkeit, 1996
+ #
+ # This file is part of GNU Libtool.
+@@ -14813,19 +15486,42 @@ SP2NL=$lt_lt_SP2NL
+ # turn newlines into spaces.
+ NL2SP=$lt_lt_NL2SP
+
++# convert \$build file names to \$host format.
++to_host_file_cmd=$lt_cv_to_host_file_cmd
++
++# convert \$build files to toolchain format.
++to_tool_file_cmd=$lt_cv_to_tool_file_cmd
++
+ # An object symbol dumper.
+ OBJDUMP=$lt_OBJDUMP
+
+ # Method to check whether dependent libraries are shared objects.
+ deplibs_check_method=$lt_deplibs_check_method
+
+-# Command to use when deplibs_check_method == "file_magic".
++# Command to use when deplibs_check_method = "file_magic".
+ file_magic_cmd=$lt_file_magic_cmd
+
++# How to find potential files when deplibs_check_method = "file_magic".
++file_magic_glob=$lt_file_magic_glob
++
++# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
++want_nocaseglob=$lt_want_nocaseglob
++
++# DLL creation program.
++DLLTOOL=$lt_DLLTOOL
++
++# Command to associate shared and link libraries.
++sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
++
+ # The archiver.
+ AR=$lt_AR
++
++# Flags to create an archive.
+ AR_FLAGS=$lt_AR_FLAGS
+
++# How to feed a file listing to the archiver.
++archiver_list_spec=$lt_archiver_list_spec
++
+ # A symbol stripping program.
+ STRIP=$lt_STRIP
+
+@@ -14855,6 +15551,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+ # Transform the output of nm in a C name address pair when lib prefix is needed.
+ global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
++# Specify filename containing input files for \$NM.
++nm_file_list_spec=$lt_nm_file_list_spec
++
++# The root where to search for dependent libraries,and in which our libraries should be installed.
++lt_sysroot=$lt_sysroot
++
+ # The name of the directory that contains temporary libtool files.
+ objdir=$objdir
+
+@@ -14864,6 +15566,9 @@ MAGIC_CMD=$MAGIC_CMD
+ # Must we lock files when doing compilation?
+ need_locks=$lt_need_locks
+
++# Manifest tool.
++MANIFEST_TOOL=$lt_MANIFEST_TOOL
++
+ # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+ DSYMUTIL=$lt_DSYMUTIL
+
+@@ -14978,12 +15683,12 @@ with_gcc=$GCC
+ # Compiler flag to turn off builtin functions.
+ no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+-# How to pass a linker flag through the compiler.
+-wl=$lt_lt_prog_compiler_wl
+-
+ # Additional compiler flags for building library objects.
+ pic_flag=$lt_lt_prog_compiler_pic
+
++# How to pass a linker flag through the compiler.
++wl=$lt_lt_prog_compiler_wl
++
+ # Compiler flag to prevent dynamic linking.
+ link_static_flag=$lt_lt_prog_compiler_static
+
+@@ -15070,9 +15775,6 @@ inherit_rpath=$inherit_rpath
+ # Whether libtool must link a program against all its dependency libraries.
+ link_all_deplibs=$link_all_deplibs
+
+-# Fix the shell variable \$srcfile for the compiler.
+-fix_srcfile_path=$lt_fix_srcfile_path
+-
+ # Set to "yes" if exported symbols are required.
+ always_export_symbols=$always_export_symbols
+
+@@ -15088,6 +15790,9 @@ include_expsyms=$lt_include_expsyms
+ # Commands necessary for linking programs (against libraries) with templates.
+ prelink_cmds=$lt_prelink_cmds
+
++# Commands necessary for finishing linking programs.
++postlink_cmds=$lt_postlink_cmds
++
+ # Specify filename containing input files.
+ file_list_spec=$lt_file_list_spec
+
+@@ -15120,210 +15825,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
+- || (rm -f "$cfgfile"; exit 1)
+-
+- case $xsi_shell in
+- yes)
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_dirname file append nondir_replacement
+-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+-# otherwise set result to NONDIR_REPLACEMENT.
+-func_dirname ()
+-{
+- case ${1} in
+- */*) func_dirname_result="${1%/*}${2}" ;;
+- * ) func_dirname_result="${3}" ;;
+- esac
+-}
+-
+-# func_basename file
+-func_basename ()
+-{
+- func_basename_result="${1##*/}"
+-}
+-
+-# func_dirname_and_basename file append nondir_replacement
+-# perform func_basename and func_dirname in a single function
+-# call:
+-# dirname: Compute the dirname of FILE. If nonempty,
+-# add APPEND to the result, otherwise set result
+-# to NONDIR_REPLACEMENT.
+-# value returned in "$func_dirname_result"
+-# basename: Compute filename of FILE.
+-# value retuned in "$func_basename_result"
+-# Implementation must be kept synchronized with func_dirname
+-# and func_basename. For efficiency, we do not delegate to
+-# those functions but instead duplicate the functionality here.
+-func_dirname_and_basename ()
+-{
+- case ${1} in
+- */*) func_dirname_result="${1%/*}${2}" ;;
+- * ) func_dirname_result="${3}" ;;
+- esac
+- func_basename_result="${1##*/}"
+-}
+-
+-# func_stripname prefix suffix name
+-# strip PREFIX and SUFFIX off of NAME.
+-# PREFIX and SUFFIX must not contain globbing or regex special
+-# characters, hashes, percent signs, but SUFFIX may contain a leading
+-# dot (in which case that matches only a dot).
+-func_stripname ()
+-{
+- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+- # positional parameters, so assign one to ordinary parameter first.
+- func_stripname_result=${3}
+- func_stripname_result=${func_stripname_result#"${1}"}
+- func_stripname_result=${func_stripname_result%"${2}"}
+-}
+-
+-# func_opt_split
+-func_opt_split ()
+-{
+- func_opt_split_opt=${1%%=*}
+- func_opt_split_arg=${1#*=}
+-}
+-
+-# func_lo2o object
+-func_lo2o ()
+-{
+- case ${1} in
+- *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+- *) func_lo2o_result=${1} ;;
+- esac
+-}
+-
+-# func_xform libobj-or-source
+-func_xform ()
+-{
+- func_xform_result=${1%.*}.lo
+-}
+-
+-# func_arith arithmetic-term...
+-func_arith ()
+-{
+- func_arith_result=$(( $* ))
+-}
+-
+-# func_len string
+-# STRING may not start with a hyphen.
+-func_len ()
+-{
+- func_len_result=${#1}
+-}
+-
+-_LT_EOF
+- ;;
+- *) # Bourne compatible functions.
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_dirname file append nondir_replacement
+-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+-# otherwise set result to NONDIR_REPLACEMENT.
+-func_dirname ()
+-{
+- # Extract subdirectory from the argument.
+- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
+- if test "X$func_dirname_result" = "X${1}"; then
+- func_dirname_result="${3}"
+- else
+- func_dirname_result="$func_dirname_result${2}"
+- fi
+-}
+-
+-# func_basename file
+-func_basename ()
+-{
+- func_basename_result=`$ECHO "${1}" | $SED "$basename"`
+-}
+-
+-
+-# func_stripname prefix suffix name
+-# strip PREFIX and SUFFIX off of NAME.
+-# PREFIX and SUFFIX must not contain globbing or regex special
+-# characters, hashes, percent signs, but SUFFIX may contain a leading
+-# dot (in which case that matches only a dot).
+-# func_strip_suffix prefix name
+-func_stripname ()
+-{
+- case ${2} in
+- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+- esac
+-}
+-
+-# sed scripts:
+-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
+-my_sed_long_arg='1s/^-[^=]*=//'
+-
+-# func_opt_split
+-func_opt_split ()
+-{
+- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
+- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
+-}
+-
+-# func_lo2o object
+-func_lo2o ()
+-{
+- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
+-}
+-
+-# func_xform libobj-or-source
+-func_xform ()
+-{
+- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
+-}
+-
+-# func_arith arithmetic-term...
+-func_arith ()
+-{
+- func_arith_result=`expr "$@"`
+-}
+-
+-# func_len string
+-# STRING may not start with a hyphen.
+-func_len ()
+-{
+- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
+-}
+-
+-_LT_EOF
+-esac
+-
+-case $lt_shell_append in
+- yes)
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_append var value
+-# Append VALUE to the end of shell variable VAR.
+-func_append ()
+-{
+- eval "$1+=\$2"
+-}
+-_LT_EOF
+- ;;
+- *)
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_append var value
+-# Append VALUE to the end of shell variable VAR.
+-func_append ()
+-{
+- eval "$1=\$$1\$2"
+-}
+-
+-_LT_EOF
+- ;;
+- esac
+-
+-
+- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
+- || (rm -f "$cfgfile"; exit 1)
+-
+- mv -f "$cfgfile" "$ofile" ||
++ sed '$q' "$ltmain" >> "$cfgfile" \
++ || (rm -f "$cfgfile"; exit 1)
++
++ if test x"$xsi_shell" = xyes; then
++ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
++func_dirname ()\
++{\
++\ case ${1} in\
++\ */*) func_dirname_result="${1%/*}${2}" ;;\
++\ * ) func_dirname_result="${3}" ;;\
++\ esac\
++} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_basename ()$/,/^} # func_basename /c\
++func_basename ()\
++{\
++\ func_basename_result="${1##*/}"\
++} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
++func_dirname_and_basename ()\
++{\
++\ case ${1} in\
++\ */*) func_dirname_result="${1%/*}${2}" ;;\
++\ * ) func_dirname_result="${3}" ;;\
++\ esac\
++\ func_basename_result="${1##*/}"\
++} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
++func_stripname ()\
++{\
++\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
++\ # positional parameters, so assign one to ordinary parameter first.\
++\ func_stripname_result=${3}\
++\ func_stripname_result=${func_stripname_result#"${1}"}\
++\ func_stripname_result=${func_stripname_result%"${2}"}\
++} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
++func_split_long_opt ()\
++{\
++\ func_split_long_opt_name=${1%%=*}\
++\ func_split_long_opt_arg=${1#*=}\
++} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
++func_split_short_opt ()\
++{\
++\ func_split_short_opt_arg=${1#??}\
++\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
++} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
++func_lo2o ()\
++{\
++\ case ${1} in\
++\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
++\ *) func_lo2o_result=${1} ;;\
++\ esac\
++} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_xform ()$/,/^} # func_xform /c\
++func_xform ()\
++{\
++ func_xform_result=${1%.*}.lo\
++} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_arith ()$/,/^} # func_arith /c\
++func_arith ()\
++{\
++ func_arith_result=$(( $* ))\
++} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_len ()$/,/^} # func_len /c\
++func_len ()\
++{\
++ func_len_result=${#1}\
++} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++fi
++
++if test x"$lt_shell_append" = xyes; then
++ sed -e '/^func_append ()$/,/^} # func_append /c\
++func_append ()\
++{\
++ eval "${1}+=\\${2}"\
++} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
++func_append_quoted ()\
++{\
++\ func_quote_for_eval "${2}"\
++\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
++} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ # Save a `func_append' function call where possible by direct use of '+='
++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++ test 0 -eq $? || _lt_function_replace_fail=:
++else
++ # Save a `func_append' function call even when '+=' is not available
++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++ test 0 -eq $? || _lt_function_replace_fail=:
++fi
++
++if test x"$_lt_function_replace_fail" = x":"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
++$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
++fi
++
++
++ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+
+diff --git a/zlib/configure b/zlib/configure
+index de6fa7e9960..cce448b6a53 100755
+--- a/zlib/configure
++++ b/zlib/configure
+@@ -646,8 +646,11 @@ OTOOL
+ LIPO
+ NMEDIT
+ DSYMUTIL
++MANIFEST_TOOL
+ RANLIB
++ac_ct_AR
+ AR
++DLLTOOL
+ OBJDUMP
+ LN_S
+ NM
+@@ -774,6 +777,7 @@ enable_static
+ with_pic
+ enable_fast_install
+ with_gnu_ld
++with_libtool_sysroot
+ enable_libtool_lock
+ enable_host_shared
+ '
+@@ -1428,6 +1432,8 @@ Optional Packages:
+ --with-pic try to use only PIC/non-PIC objects [default=use
+ both]
+ --with-gnu-ld assume the C compiler uses GNU ld [default=no]
++ --with-libtool-sysroot=DIR Search for dependent libraries within DIR
++ (or the compiler's sysroot if not specified).
+
+ Some influential environment variables:
+ CC C compiler command
+@@ -4147,8 +4153,8 @@ esac
+
+
+
+-macro_version='2.2.7a'
+-macro_revision='1.3134'
++macro_version='2.4'
++macro_revision='1.3293'
+
+
+
+@@ -4188,7 +4194,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+ $as_echo_n "checking how to print strings... " >&6; }
+ # Test print first, because it will be a builtin if present.
+-if test "X`print -r -- -n 2>/dev/null`" = X-n && \
++if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='print -r --'
+ elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+@@ -5004,8 +5010,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
+ # Try some XSI features
+ xsi_shell=no
+ ( _lt_dummy="a/b/c"
+- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
+- = c,a/b,, \
++ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
++ = c,a/b,b/c, \
+ && eval 'test $(( 1 + 1 )) -eq 2 \
+ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+ && xsi_shell=yes
+@@ -5054,6 +5060,80 @@ esac
+
+
+
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
++$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
++if ${lt_cv_to_host_file_cmd+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ case $host in
++ *-*-mingw* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
++ ;;
++ *-*-cygwin* )
++ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
++ ;;
++ * ) # otherwise, assume *nix
++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
++ ;;
++ esac
++ ;;
++ *-*-cygwin* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
++ ;;
++ *-*-cygwin* )
++ lt_cv_to_host_file_cmd=func_convert_file_noop
++ ;;
++ * ) # otherwise, assume *nix
++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
++ ;;
++ esac
++ ;;
++ * ) # unhandled hosts (and "normal" native builds)
++ lt_cv_to_host_file_cmd=func_convert_file_noop
++ ;;
++esac
++
++fi
++
++to_host_file_cmd=$lt_cv_to_host_file_cmd
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
++$as_echo "$lt_cv_to_host_file_cmd" >&6; }
++
++
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
++$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
++if ${lt_cv_to_tool_file_cmd+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ #assume ordinary cross tools, or native build.
++lt_cv_to_tool_file_cmd=func_convert_file_noop
++case $host in
++ *-*-mingw* )
++ case $build in
++ *-*-mingw* ) # actually msys
++ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
++ ;;
++ esac
++ ;;
++esac
++
++fi
++
++to_tool_file_cmd=$lt_cv_to_tool_file_cmd
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
++$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
++
++
++
++
++
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+ $as_echo_n "checking for $LD option to reload object files... " >&6; }
+ if ${lt_cv_ld_reload_flag+:} false; then :
+@@ -5070,6 +5150,11 @@ case $reload_flag in
+ esac
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ case $host_os in
++ cygwin* | mingw* | pw32* | cegcc*)
++ if test "$GCC" != yes; then
++ reload_cmds=false
++ fi
++ ;;
+ darwin*)
+ if test "$GCC" = yes; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+@@ -5238,7 +5323,8 @@ mingw* | pw32*)
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
++ # Keep this pattern in sync with the one in func_win32_libid.
++ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+@@ -5392,6 +5478,21 @@ esac
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+ $as_echo "$lt_cv_deplibs_check_method" >&6; }
++
++file_magic_glob=
++want_nocaseglob=no
++if test "$build" = "$host"; then
++ case $host_os in
++ mingw* | pw32*)
++ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
++ want_nocaseglob=yes
++ else
++ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
++ fi
++ ;;
++ esac
++fi
++
+ file_magic_cmd=$lt_cv_file_magic_cmd
+ deplibs_check_method=$lt_cv_deplibs_check_method
+ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+@@ -5405,11 +5506,165 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
++
++
++
++
++
++
++
++
++
++
+
+
+ if test -n "$ac_tool_prefix"; then
+- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}ar; ac_word=$2
++ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
++set dummy ${ac_tool_prefix}dlltool; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_DLLTOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$DLLTOOL"; then
++ ac_cv_prog_DLLTOOL="$DLLTOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++DLLTOOL=$ac_cv_prog_DLLTOOL
++if test -n "$DLLTOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
++$as_echo "$DLLTOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++
++fi
++if test -z "$ac_cv_prog_DLLTOOL"; then
++ ac_ct_DLLTOOL=$DLLTOOL
++ # Extract the first word of "dlltool", so it can be a program name with args.
++set dummy dlltool; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$ac_ct_DLLTOOL"; then
++ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_ac_ct_DLLTOOL="dlltool"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
++if test -n "$ac_ct_DLLTOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
++$as_echo "$ac_ct_DLLTOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++ if test "x$ac_ct_DLLTOOL" = x; then
++ DLLTOOL="false"
++ else
++ case $cross_compiling:$ac_tool_warned in
++yes:)
++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
++ac_tool_warned=yes ;;
++esac
++ DLLTOOL=$ac_ct_DLLTOOL
++ fi
++else
++ DLLTOOL="$ac_cv_prog_DLLTOOL"
++fi
++
++test -z "$DLLTOOL" && DLLTOOL=dlltool
++
++
++
++
++
++
++
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
++$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
++if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_sharedlib_from_linklib_cmd='unknown'
++
++case $host_os in
++cygwin* | mingw* | pw32* | cegcc*)
++ # two different shell functions defined in ltmain.sh
++ # decide which to use based on capabilities of $DLLTOOL
++ case `$DLLTOOL --help 2>&1` in
++ *--identify-strict*)
++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
++ ;;
++ *)
++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
++ ;;
++ esac
++ ;;
++*)
++ # fallback: assume linklib IS sharedlib
++ lt_cv_sharedlib_from_linklib_cmd="$ECHO"
++ ;;
++esac
++
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
++$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
++sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
++test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
++
++
++
++
++
++
++
++
++if test -n "$ac_tool_prefix"; then
++ for ac_prog in ar
++ 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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_AR+:} false; then :
+@@ -5425,7 +5680,7 @@ do
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+- ac_cv_prog_AR="${ac_tool_prefix}ar"
++ ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+@@ -5445,11 +5700,15 @@ $as_echo "no" >&6; }
+ fi
+
+
++ test -n "$AR" && break
++ done
+ fi
+-if test -z "$ac_cv_prog_AR"; then
++if test -z "$AR"; then
+ ac_ct_AR=$AR
+- # Extract the first word of "ar", so it can be a program name with args.
+-set dummy ar; ac_word=$2
++ for ac_prog in ar
++do
++ # Extract the first word of "$ac_prog", so it can be a program name with args.
++set dummy $ac_prog; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+@@ -5465,7 +5724,7 @@ do
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+- ac_cv_prog_ac_ct_AR="ar"
++ ac_cv_prog_ac_ct_AR="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+@@ -5484,6 +5743,10 @@ else
+ $as_echo "no" >&6; }
+ fi
+
++
++ test -n "$ac_ct_AR" && break
++done
++
+ if test "x$ac_ct_AR" = x; then
+ AR="false"
+ else
+@@ -5495,16 +5758,72 @@ ac_tool_warned=yes ;;
+ esac
+ AR=$ac_ct_AR
+ fi
+-else
+- AR="$ac_cv_prog_AR"
+ fi
+
+-test -z "$AR" && AR=ar
+-test -z "$AR_FLAGS" && AR_FLAGS=cru
++: ${AR=ar}
++: ${AR_FLAGS=cru}
++
++
++
++
++
++
++
++
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
++$as_echo_n "checking for archiver @FILE support... " >&6; }
++if ${lt_cv_ar_at_file+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_ar_at_file=no
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++
++int
++main ()
++{
+
++ ;
++ return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++ echo conftest.$ac_objext > conftest.lst
++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
++ (eval $lt_ar_try) 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }
++ if test "$ac_status" -eq 0; then
++ # Ensure the archiver fails upon bogus file names.
++ rm -f conftest.$ac_objext libconftest.a
++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
++ (eval $lt_ar_try) 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }
++ if test "$ac_status" -ne 0; then
++ lt_cv_ar_at_file=@
++ fi
++ fi
++ rm -f conftest.* libconftest.a
+
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
++$as_echo "$lt_cv_ar_at_file" >&6; }
+
++if test "x$lt_cv_ar_at_file" = xno; then
++ archiver_list_spec=
++else
++ archiver_list_spec=$lt_cv_ar_at_file
++fi
+
+
+
+@@ -5846,8 +6165,8 @@ esac
+ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+ # Transform an extracted symbol line into symbol name and symbol address
+-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
+-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
++lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
+
+ # Handle CRLF in mingw tool chain
+ opt_cr=
+@@ -5883,6 +6202,7 @@ for ac_symprfx in "" "_"; do
+ else
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
++ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+@@ -5924,6 +6244,18 @@ _LT_EOF
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
++#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
++/* DATA imports from DLLs on WIN32 con't be const, because runtime
++ relocations are performed -- see ld's documentation on pseudo-relocs. */
++# define LT_DLSYM_CONST
++#elif defined(__osf__)
++/* This system does not cope well with relocations in const data. */
++# define LT_DLSYM_CONST
++#else
++# define LT_DLSYM_CONST const
++#endif
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+@@ -5935,7 +6267,7 @@ _LT_EOF
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+ /* The mapping between symbol names and symbols. */
+-const struct {
++LT_DLSYM_CONST struct {
+ const char *name;
+ void *address;
+ }
+@@ -5961,8 +6293,8 @@ static const void *lt_preloaded_setup() {
+ _LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+- lt_save_LIBS="$LIBS"
+- lt_save_CFLAGS="$CFLAGS"
++ lt_globsym_save_LIBS=$LIBS
++ lt_globsym_save_CFLAGS=$CFLAGS
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+@@ -5972,8 +6304,8 @@ _LT_EOF
+ test $ac_status = 0; } && test -s conftest${ac_exeext}; then
+ pipe_works=yes
+ fi
+- LIBS="$lt_save_LIBS"
+- CFLAGS="$lt_save_CFLAGS"
++ LIBS=$lt_globsym_save_LIBS
++ CFLAGS=$lt_globsym_save_CFLAGS
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+@@ -6010,6 +6342,19 @@ else
+ $as_echo "ok" >&6; }
+ fi
+
++# Response file support.
++if test "$lt_cv_nm_interface" = "MS dumpbin"; then
++ nm_file_list_spec='@'
++elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
++ nm_file_list_spec='@'
++fi
++
++
++
++
++
++
++
+
+
+
+@@ -6027,6 +6372,41 @@ fi
+
+
+
++
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
++$as_echo_n "checking for sysroot... " >&6; }
++
++# Check whether --with-libtool-sysroot was given.
++if test "${with_libtool_sysroot+set}" = set; then :
++ withval=$with_libtool_sysroot;
++else
++ with_libtool_sysroot=no
++fi
++
++
++lt_sysroot=
++case ${with_libtool_sysroot} in #(
++ yes)
++ if test "$GCC" = yes; then
++ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
++ fi
++ ;; #(
++ /*)
++ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
++ ;; #(
++ no|'')
++ ;; #(
++ *)
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5
++$as_echo "${with_libtool_sysroot}" >&6; }
++ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
++ ;;
++esac
++
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
++$as_echo "${lt_sysroot:-no}" >&6; }
+
+
+
+@@ -6241,6 +6621,123 @@ esac
+
+ need_locks="$enable_libtool_lock"
+
++if test -n "$ac_tool_prefix"; then
++ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
++set dummy ${ac_tool_prefix}mt; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$MANIFEST_TOOL"; then
++ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
++if test -n "$MANIFEST_TOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
++$as_echo "$MANIFEST_TOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++
++fi
++if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
++ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
++ # Extract the first word of "mt", so it can be a program name with args.
++set dummy mt; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$ac_ct_MANIFEST_TOOL"; then
++ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++fi
++fi
++ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
++if test -n "$ac_ct_MANIFEST_TOOL"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
++$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++ if test "x$ac_ct_MANIFEST_TOOL" = x; then
++ MANIFEST_TOOL=":"
++ else
++ case $cross_compiling:$ac_tool_warned in
++yes:)
++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
++ac_tool_warned=yes ;;
++esac
++ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
++ fi
++else
++ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
++fi
++
++test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
++$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
++if ${lt_cv_path_mainfest_tool+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_path_mainfest_tool=no
++ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
++ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
++ cat conftest.err >&5
++ if $GREP 'Manifest Tool' conftest.out > /dev/null; then
++ lt_cv_path_mainfest_tool=yes
++ fi
++ rm -f conftest*
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
++$as_echo "$lt_cv_path_mainfest_tool" >&6; }
++if test "x$lt_cv_path_mainfest_tool" != xyes; then
++ MANIFEST_TOOL=:
++fi
++
++
++
++
++
+
+ case $host_os in
+ rhapsody* | darwin*)
+@@ -6807,6 +7304,8 @@ _LT_EOF
+ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+ echo "$AR cru libconftest.a conftest.o" >&5
+ $AR cru libconftest.a conftest.o 2>&5
++ echo "$RANLIB libconftest.a" >&5
++ $RANLIB libconftest.a 2>&5
+ cat > conftest.c << _LT_EOF
+ int main() { return 0;}
+ _LT_EOF
+@@ -7269,7 +7768,8 @@ fi
+ LIBTOOL_DEPS="$ltmain"
+
+ # Always use our own libtool.
+-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
++LIBTOOL='$(SHELL) $(top_builddir)'
++LIBTOOL="$LIBTOOL/${host_alias}-libtool"
+
+
+
+@@ -7358,7 +7858,7 @@ aix3*)
+ esac
+
+ # Global variables:
+-ofile=libtool
++ofile=${host_alias}-libtool
+ can_build_shared=yes
+
+ # All known linkers require a `.a' archive for static linking (except MSVC,
+@@ -7656,8 +8156,6 @@ fi
+ lt_prog_compiler_pic=
+ lt_prog_compiler_static=
+
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+
+ if test "$GCC" = yes; then
+ lt_prog_compiler_wl='-Wl,'
+@@ -7823,6 +8321,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+ lt_prog_compiler_pic='--shared'
+ lt_prog_compiler_static='--static'
+ ;;
++ nagfor*)
++ # NAG Fortran compiler
++ lt_prog_compiler_wl='-Wl,-Wl,,'
++ lt_prog_compiler_pic='-PIC'
++ lt_prog_compiler_static='-Bstatic'
++ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+@@ -7885,7 +8389,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+- f77* | f90* | f95*)
++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+@@ -7942,13 +8446,17 @@ case $host_os in
+ lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+ ;;
+ esac
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
+-$as_echo "$lt_prog_compiler_pic" >&6; }
+-
+-
+-
+-
+
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
++$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
++if ${lt_cv_prog_compiler_pic+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
++$as_echo "$lt_cv_prog_compiler_pic" >&6; }
++lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
+
+ #
+ # Check to make sure the PIC flag actually works.
+@@ -8009,6 +8517,11 @@ fi
+
+
+
++
++
++
++
++
+ #
+ # Check to make sure the static flag actually works.
+ #
+@@ -8359,7 +8872,8 @@ _LT_EOF
+ allow_undefined_flag=unsupported
+ always_export_symbols=no
+ enable_shared_with_static_runtimes=yes
+- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
++ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+@@ -8458,12 +8972,12 @@ _LT_EOF
+ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_flag_spec_ld='-rpath $libdir'
+- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+@@ -8477,8 +8991,8 @@ _LT_EOF
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+@@ -8496,8 +9010,8 @@ _LT_EOF
+
+ _LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+@@ -8543,8 +9057,8 @@ _LT_EOF
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+@@ -8674,7 +9188,13 @@ _LT_EOF
+ allow_undefined_flag='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+- if test x$gcc_no_link = xyes; then
++ if test "${lt_cv_aix_libpath+set}" = set; then
++ aix_libpath=$lt_cv_aix_libpath
++else
++ if ${lt_cv_aix_libpath_+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test x$gcc_no_link = xyes; then
+ as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
+ fi
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+@@ -8690,22 +9210,29 @@ main ()
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+
+-lt_aix_libpath_sed='
+- /Import File Strings/,/^$/ {
+- /^0/ {
+- s/^0 *\(.*\)$/\1/
+- p
+- }
+- }'
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-# Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then
+- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-fi
++ lt_aix_libpath_sed='
++ /Import File Strings/,/^$/ {
++ /^0/ {
++ s/^0 *\([^ ]*\) *$/\1/
++ p
++ }
++ }'
++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ # Check for a 64-bit object if we didn't find anything.
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ fi
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_="/usr/lib:/lib"
++ fi
++
++fi
++
++ aix_libpath=$lt_cv_aix_libpath_
++fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+@@ -8717,7 +9244,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+- if test x$gcc_no_link = xyes; then
++ if test "${lt_cv_aix_libpath+set}" = set; then
++ aix_libpath=$lt_cv_aix_libpath
++else
++ if ${lt_cv_aix_libpath_+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test x$gcc_no_link = xyes; then
+ as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
+ fi
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+@@ -8733,22 +9266,29 @@ main ()
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+
+-lt_aix_libpath_sed='
+- /Import File Strings/,/^$/ {
+- /^0/ {
+- s/^0 *\(.*\)$/\1/
+- p
+- }
+- }'
+-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-# Check for a 64-bit object if we didn't find anything.
+-if test -z "$aix_libpath"; then
+- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+-fi
++ lt_aix_libpath_sed='
++ /Import File Strings/,/^$/ {
++ /^0/ {
++ s/^0 *\([^ ]*\) *$/\1/
++ p
++ }
++ }'
++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ # Check for a 64-bit object if we didn't find anything.
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
++ fi
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
++ if test -z "$lt_cv_aix_libpath_"; then
++ lt_cv_aix_libpath_="/usr/lib:/lib"
++ fi
++
++fi
++
++ aix_libpath=$lt_cv_aix_libpath_
++fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+@@ -8793,20 +9333,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+- hardcode_libdir_flag_spec=' '
+- allow_undefined_flag=unsupported
+- # Tell ltmain to make .lib files, not .a files.
+- libext=lib
+- # Tell ltmain to make .dll files, not .so files.
+- shrext_cmds=".dll"
+- # FIXME: Setting linknames here is a bad hack.
+- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+- # The linker will automatically build a .lib file if we build a DLL.
+- old_archive_from_new_cmds='true'
+- # FIXME: Should let the user specify the lib program.
+- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+- fix_srcfile_path='`cygpath -w "$srcfile"`'
+- enable_shared_with_static_runtimes=yes
++ case $cc_basename in
++ cl*)
++ # Native MSVC
++ hardcode_libdir_flag_spec=' '
++ allow_undefined_flag=unsupported
++ always_export_symbols=yes
++ file_list_spec='@'
++ # Tell ltmain to make .lib files, not .a files.
++ libext=lib
++ # Tell ltmain to make .dll files, not .so files.
++ shrext_cmds=".dll"
++ # FIXME: Setting linknames here is a bad hack.
++ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
++ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
++ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
++ else
++ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
++ fi~
++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
++ linknames='
++ # The linker will not automatically build a static lib if we build a DLL.
++ # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
++ enable_shared_with_static_runtimes=yes
++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
++ # Don't use ranlib
++ old_postinstall_cmds='chmod 644 $oldlib'
++ postlink_cmds='lt_outputfile="@OUTPUT@"~
++ lt_tool_outputfile="@TOOL_OUTPUT@"~
++ case $lt_outputfile in
++ *.exe|*.EXE) ;;
++ *)
++ lt_outputfile="$lt_outputfile.exe"
++ lt_tool_outputfile="$lt_tool_outputfile.exe"
++ ;;
++ esac~
++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
++ $RM "$lt_outputfile.manifest";
++ fi'
++ ;;
++ *)
++ # Assume MSVC wrapper
++ hardcode_libdir_flag_spec=' '
++ allow_undefined_flag=unsupported
++ # Tell ltmain to make .lib files, not .a files.
++ libext=lib
++ # Tell ltmain to make .dll files, not .so files.
++ shrext_cmds=".dll"
++ # FIXME: Setting linknames here is a bad hack.
++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
++ # The linker will automatically build a .lib file if we build a DLL.
++ old_archive_from_new_cmds='true'
++ # FIXME: Should let the user specify the lib program.
++ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
++ enable_shared_with_static_runtimes=yes
++ ;;
++ esac
+ ;;
+
+ darwin* | rhapsody*)
+@@ -8867,7 +9450,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+@@ -8875,7 +9458,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hpux9*)
+ if test "$GCC" = yes; then
+- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
++ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+@@ -8891,7 +9474,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hpux10*)
+ if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+@@ -8915,10 +9498,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+@@ -8997,26 +9580,39 @@ fi
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+- save_LDFLAGS="$LDFLAGS"
+- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+- if test x$gcc_no_link = xyes; then
++ # This should be the same for all languages, so no per-tag cache variable.
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
++$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
++if ${lt_cv_irix_exported_symbol+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ save_LDFLAGS="$LDFLAGS"
++ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
++ if test x$gcc_no_link = xyes; then
+ as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
+ fi
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+-int foo(void) {}
++int foo (void) { return 0; }
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+-
++ lt_cv_irix_exported_symbol=yes
++else
++ lt_cv_irix_exported_symbol=no
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+- LDFLAGS="$save_LDFLAGS"
++ LDFLAGS="$save_LDFLAGS"
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
++$as_echo "$lt_cv_irix_exported_symbol" >&6; }
++ if test "$lt_cv_irix_exported_symbol" = yes; then
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
++ fi
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+@@ -9101,7 +9697,7 @@ rm -f core conftest.err conftest.$ac_objext \
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
++ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+@@ -9120,9 +9716,9 @@ rm -f core conftest.err conftest.$ac_objext \
+ no_undefined_flag=' -z defs'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
++ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
++ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+@@ -9698,8 +10294,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+ need_version=no
+ need_lib_prefix=no
+
+- case $GCC,$host_os in
+- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
++ case $GCC,$cc_basename in
++ yes,*)
++ # gcc
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+@@ -9732,13 +10329,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
++ dynamic_linker='Win32 ld.exe'
++ ;;
++
++ *,cl*)
++ # Native MSVC
++ libname_spec='$name'
++ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
++ library_names_spec='${libname}.dll.lib'
++
++ case $build_os in
++ mingw*)
++ sys_lib_search_path_spec=
++ lt_save_ifs=$IFS
++ IFS=';'
++ for lt_path in $LIB
++ do
++ IFS=$lt_save_ifs
++ # Let DOS variable expansion print the short 8.3 style file name.
++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
++ done
++ IFS=$lt_save_ifs
++ # Convert to MSYS style.
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
++ ;;
++ cygwin*)
++ # Convert to unix form, then to dos form, then back to unix form
++ # but this time dos style (no spaces!) so that the unix form looks
++ # like /cygdrive/c/PROGRA~1:/cygdr...
++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
++ ;;
++ *)
++ sys_lib_search_path_spec="$LIB"
++ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
++ # It is most probably a Windows format PATH.
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
++ else
++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
++ fi
++ # FIXME: find the short name or the path components, as spaces are
++ # common. (e.g. "Program Files" -> "PROGRA~1")
++ ;;
++ esac
++
++ # DLL is installed to $(libdir)/../bin by postinstall_cmds
++ postinstall_cmds='base_file=`basename \${file}`~
++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
++ dldir=$destdir/`dirname \$dlpath`~
++ test -d \$dldir || mkdir -p \$dldir~
++ $install_prog $dir/$dlname \$dldir/$dlname'
++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
++ dlpath=$dir/\$dldll~
++ $RM \$dlpath'
++ shlibpath_overrides_runpath=yes
++ dynamic_linker='Win32 link.exe'
+ ;;
+
+ *)
++ # Assume MSVC wrapper
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
++ dynamic_linker='Win32 ld.exe'
+ ;;
+ esac
+- dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+@@ -9830,7 +10485,7 @@ haiku*)
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+ hardcode_into_libs=yes
+ ;;
+
+@@ -10644,7 +11299,7 @@ else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+-#line 10647 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+@@ -10688,10 +11343,10 @@ else
+ /* When -fvisbility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+-void fnord () __attribute__((visibility("default")));
++int fnord () __attribute__((visibility("default")));
+ #endif
+
+-void fnord () { int i=42; }
++int fnord () { return 42; }
+ int main ()
+ {
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+@@ -10750,7 +11405,7 @@ else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+-#line 10753 "configure"
++#line $LINENO "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+@@ -10794,10 +11449,10 @@ else
+ /* When -fvisbility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+-void fnord () __attribute__((visibility("default")));
++int fnord () __attribute__((visibility("default")));
+ #endif
+
+-void fnord () { int i=42; }
++int fnord () { return 42; }
+ int main ()
+ {
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+@@ -12267,13 +12922,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+ lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+ lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+ lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
++lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
++lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
+ reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+ reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+ OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+ deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+ file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
++file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
++want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
++DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
++sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
+ AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+ AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
++archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
+ STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+ RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+ old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+@@ -12288,14 +12950,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+ lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+ lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
++nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
++lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+ objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+ MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
++lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+ lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+ lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+ need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
++MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
+ DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+ NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+ LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+@@ -12328,12 +12993,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+ hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+ inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+ link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+-fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`'
+ always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+ export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+ exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+ include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+ prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
++postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
+ file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+ variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+ need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+@@ -12388,8 +13053,13 @@ reload_flag \
+ OBJDUMP \
+ deplibs_check_method \
+ file_magic_cmd \
++file_magic_glob \
++want_nocaseglob \
++DLLTOOL \
++sharedlib_from_linklib_cmd \
+ AR \
+ AR_FLAGS \
++archiver_list_spec \
+ STRIP \
+ RANLIB \
+ CC \
+@@ -12399,12 +13069,14 @@ lt_cv_sys_global_symbol_pipe \
+ lt_cv_sys_global_symbol_to_cdecl \
+ lt_cv_sys_global_symbol_to_c_name_address \
+ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
++nm_file_list_spec \
+ lt_prog_compiler_no_builtin_flag \
+-lt_prog_compiler_wl \
+ lt_prog_compiler_pic \
++lt_prog_compiler_wl \
+ lt_prog_compiler_static \
+ lt_cv_prog_compiler_c_o \
+ need_locks \
++MANIFEST_TOOL \
+ DSYMUTIL \
+ NMEDIT \
+ LIPO \
+@@ -12420,7 +13092,6 @@ no_undefined_flag \
+ hardcode_libdir_flag_spec \
+ hardcode_libdir_flag_spec_ld \
+ hardcode_libdir_separator \
+-fix_srcfile_path \
+ exclude_expsyms \
+ include_expsyms \
+ file_list_spec \
+@@ -12456,6 +13127,7 @@ module_cmds \
+ module_expsym_cmds \
+ export_symbols_cmds \
+ prelink_cmds \
++postlink_cmds \
+ postinstall_cmds \
+ postuninstall_cmds \
+ finish_cmds \
+@@ -13054,7 +13726,8 @@ $as_echo X"$file" |
+ # NOTE: Changes made to this file will be lost: look at ltmain.sh.
+ #
+ # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
++# Inc.
+ # Written by Gordon Matzigkeit, 1996
+ #
+ # This file is part of GNU Libtool.
+@@ -13157,19 +13830,42 @@ SP2NL=$lt_lt_SP2NL
+ # turn newlines into spaces.
+ NL2SP=$lt_lt_NL2SP
+
++# convert \$build file names to \$host format.
++to_host_file_cmd=$lt_cv_to_host_file_cmd
++
++# convert \$build files to toolchain format.
++to_tool_file_cmd=$lt_cv_to_tool_file_cmd
++
+ # An object symbol dumper.
+ OBJDUMP=$lt_OBJDUMP
+
+ # Method to check whether dependent libraries are shared objects.
+ deplibs_check_method=$lt_deplibs_check_method
+
+-# Command to use when deplibs_check_method == "file_magic".
++# Command to use when deplibs_check_method = "file_magic".
+ file_magic_cmd=$lt_file_magic_cmd
+
++# How to find potential files when deplibs_check_method = "file_magic".
++file_magic_glob=$lt_file_magic_glob
++
++# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
++want_nocaseglob=$lt_want_nocaseglob
++
++# DLL creation program.
++DLLTOOL=$lt_DLLTOOL
++
++# Command to associate shared and link libraries.
++sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
++
+ # The archiver.
+ AR=$lt_AR
++
++# Flags to create an archive.
+ AR_FLAGS=$lt_AR_FLAGS
+
++# How to feed a file listing to the archiver.
++archiver_list_spec=$lt_archiver_list_spec
++
+ # A symbol stripping program.
+ STRIP=$lt_STRIP
+
+@@ -13199,6 +13895,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+ # Transform the output of nm in a C name address pair when lib prefix is needed.
+ global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
++# Specify filename containing input files for \$NM.
++nm_file_list_spec=$lt_nm_file_list_spec
++
++# The root where to search for dependent libraries,and in which our libraries should be installed.
++lt_sysroot=$lt_sysroot
++
+ # The name of the directory that contains temporary libtool files.
+ objdir=$objdir
+
+@@ -13208,6 +13910,9 @@ MAGIC_CMD=$MAGIC_CMD
+ # Must we lock files when doing compilation?
+ need_locks=$lt_need_locks
+
++# Manifest tool.
++MANIFEST_TOOL=$lt_MANIFEST_TOOL
++
+ # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+ DSYMUTIL=$lt_DSYMUTIL
+
+@@ -13322,12 +14027,12 @@ with_gcc=$GCC
+ # Compiler flag to turn off builtin functions.
+ no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+-# How to pass a linker flag through the compiler.
+-wl=$lt_lt_prog_compiler_wl
+-
+ # Additional compiler flags for building library objects.
+ pic_flag=$lt_lt_prog_compiler_pic
+
++# How to pass a linker flag through the compiler.
++wl=$lt_lt_prog_compiler_wl
++
+ # Compiler flag to prevent dynamic linking.
+ link_static_flag=$lt_lt_prog_compiler_static
+
+@@ -13414,9 +14119,6 @@ inherit_rpath=$inherit_rpath
+ # Whether libtool must link a program against all its dependency libraries.
+ link_all_deplibs=$link_all_deplibs
+
+-# Fix the shell variable \$srcfile for the compiler.
+-fix_srcfile_path=$lt_fix_srcfile_path
+-
+ # Set to "yes" if exported symbols are required.
+ always_export_symbols=$always_export_symbols
+
+@@ -13432,6 +14134,9 @@ include_expsyms=$lt_include_expsyms
+ # Commands necessary for linking programs (against libraries) with templates.
+ prelink_cmds=$lt_prelink_cmds
+
++# Commands necessary for finishing linking programs.
++postlink_cmds=$lt_postlink_cmds
++
+ # Specify filename containing input files.
+ file_list_spec=$lt_file_list_spec
+
+@@ -13464,210 +14169,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
+- || (rm -f "$cfgfile"; exit 1)
+-
+- case $xsi_shell in
+- yes)
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_dirname file append nondir_replacement
+-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+-# otherwise set result to NONDIR_REPLACEMENT.
+-func_dirname ()
+-{
+- case ${1} in
+- */*) func_dirname_result="${1%/*}${2}" ;;
+- * ) func_dirname_result="${3}" ;;
+- esac
+-}
+-
+-# func_basename file
+-func_basename ()
+-{
+- func_basename_result="${1##*/}"
+-}
+-
+-# func_dirname_and_basename file append nondir_replacement
+-# perform func_basename and func_dirname in a single function
+-# call:
+-# dirname: Compute the dirname of FILE. If nonempty,
+-# add APPEND to the result, otherwise set result
+-# to NONDIR_REPLACEMENT.
+-# value returned in "$func_dirname_result"
+-# basename: Compute filename of FILE.
+-# value retuned in "$func_basename_result"
+-# Implementation must be kept synchronized with func_dirname
+-# and func_basename. For efficiency, we do not delegate to
+-# those functions but instead duplicate the functionality here.
+-func_dirname_and_basename ()
+-{
+- case ${1} in
+- */*) func_dirname_result="${1%/*}${2}" ;;
+- * ) func_dirname_result="${3}" ;;
+- esac
+- func_basename_result="${1##*/}"
+-}
+-
+-# func_stripname prefix suffix name
+-# strip PREFIX and SUFFIX off of NAME.
+-# PREFIX and SUFFIX must not contain globbing or regex special
+-# characters, hashes, percent signs, but SUFFIX may contain a leading
+-# dot (in which case that matches only a dot).
+-func_stripname ()
+-{
+- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+- # positional parameters, so assign one to ordinary parameter first.
+- func_stripname_result=${3}
+- func_stripname_result=${func_stripname_result#"${1}"}
+- func_stripname_result=${func_stripname_result%"${2}"}
+-}
+-
+-# func_opt_split
+-func_opt_split ()
+-{
+- func_opt_split_opt=${1%%=*}
+- func_opt_split_arg=${1#*=}
+-}
+-
+-# func_lo2o object
+-func_lo2o ()
+-{
+- case ${1} in
+- *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+- *) func_lo2o_result=${1} ;;
+- esac
+-}
+-
+-# func_xform libobj-or-source
+-func_xform ()
+-{
+- func_xform_result=${1%.*}.lo
+-}
+-
+-# func_arith arithmetic-term...
+-func_arith ()
+-{
+- func_arith_result=$(( $* ))
+-}
+-
+-# func_len string
+-# STRING may not start with a hyphen.
+-func_len ()
+-{
+- func_len_result=${#1}
+-}
+-
+-_LT_EOF
+- ;;
+- *) # Bourne compatible functions.
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_dirname file append nondir_replacement
+-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+-# otherwise set result to NONDIR_REPLACEMENT.
+-func_dirname ()
+-{
+- # Extract subdirectory from the argument.
+- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
+- if test "X$func_dirname_result" = "X${1}"; then
+- func_dirname_result="${3}"
+- else
+- func_dirname_result="$func_dirname_result${2}"
+- fi
+-}
+-
+-# func_basename file
+-func_basename ()
+-{
+- func_basename_result=`$ECHO "${1}" | $SED "$basename"`
+-}
+-
+-
+-# func_stripname prefix suffix name
+-# strip PREFIX and SUFFIX off of NAME.
+-# PREFIX and SUFFIX must not contain globbing or regex special
+-# characters, hashes, percent signs, but SUFFIX may contain a leading
+-# dot (in which case that matches only a dot).
+-# func_strip_suffix prefix name
+-func_stripname ()
+-{
+- case ${2} in
+- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+- esac
+-}
+-
+-# sed scripts:
+-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
+-my_sed_long_arg='1s/^-[^=]*=//'
+-
+-# func_opt_split
+-func_opt_split ()
+-{
+- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
+- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
+-}
+-
+-# func_lo2o object
+-func_lo2o ()
+-{
+- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
+-}
+-
+-# func_xform libobj-or-source
+-func_xform ()
+-{
+- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
+-}
+-
+-# func_arith arithmetic-term...
+-func_arith ()
+-{
+- func_arith_result=`expr "$@"`
+-}
+-
+-# func_len string
+-# STRING may not start with a hyphen.
+-func_len ()
+-{
+- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
+-}
+-
+-_LT_EOF
+-esac
+-
+-case $lt_shell_append in
+- yes)
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_append var value
+-# Append VALUE to the end of shell variable VAR.
+-func_append ()
+-{
+- eval "$1+=\$2"
+-}
+-_LT_EOF
+- ;;
+- *)
+- cat << \_LT_EOF >> "$cfgfile"
+-
+-# func_append var value
+-# Append VALUE to the end of shell variable VAR.
+-func_append ()
+-{
+- eval "$1=\$$1\$2"
+-}
+-
+-_LT_EOF
+- ;;
+- esac
+-
+-
+- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
+- || (rm -f "$cfgfile"; exit 1)
+-
+- mv -f "$cfgfile" "$ofile" ||
++ sed '$q' "$ltmain" >> "$cfgfile" \
++ || (rm -f "$cfgfile"; exit 1)
++
++ if test x"$xsi_shell" = xyes; then
++ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
++func_dirname ()\
++{\
++\ case ${1} in\
++\ */*) func_dirname_result="${1%/*}${2}" ;;\
++\ * ) func_dirname_result="${3}" ;;\
++\ esac\
++} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_basename ()$/,/^} # func_basename /c\
++func_basename ()\
++{\
++\ func_basename_result="${1##*/}"\
++} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
++func_dirname_and_basename ()\
++{\
++\ case ${1} in\
++\ */*) func_dirname_result="${1%/*}${2}" ;;\
++\ * ) func_dirname_result="${3}" ;;\
++\ esac\
++\ func_basename_result="${1##*/}"\
++} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
++func_stripname ()\
++{\
++\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
++\ # positional parameters, so assign one to ordinary parameter first.\
++\ func_stripname_result=${3}\
++\ func_stripname_result=${func_stripname_result#"${1}"}\
++\ func_stripname_result=${func_stripname_result%"${2}"}\
++} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
++func_split_long_opt ()\
++{\
++\ func_split_long_opt_name=${1%%=*}\
++\ func_split_long_opt_arg=${1#*=}\
++} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
++func_split_short_opt ()\
++{\
++\ func_split_short_opt_arg=${1#??}\
++\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
++} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
++func_lo2o ()\
++{\
++\ case ${1} in\
++\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
++\ *) func_lo2o_result=${1} ;;\
++\ esac\
++} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_xform ()$/,/^} # func_xform /c\
++func_xform ()\
++{\
++ func_xform_result=${1%.*}.lo\
++} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_arith ()$/,/^} # func_arith /c\
++func_arith ()\
++{\
++ func_arith_result=$(( $* ))\
++} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_len ()$/,/^} # func_len /c\
++func_len ()\
++{\
++ func_len_result=${#1}\
++} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++fi
++
++if test x"$lt_shell_append" = xyes; then
++ sed -e '/^func_append ()$/,/^} # func_append /c\
++func_append ()\
++{\
++ eval "${1}+=\\${2}"\
++} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
++func_append_quoted ()\
++{\
++\ func_quote_for_eval "${2}"\
++\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
++} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++test 0 -eq $? || _lt_function_replace_fail=:
++
++
++ # Save a `func_append' function call where possible by direct use of '+='
++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++ test 0 -eq $? || _lt_function_replace_fail=:
++else
++ # Save a `func_append' function call even when '+=' is not available
++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
++ && mv -f "$cfgfile.tmp" "$cfgfile" \
++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
++ test 0 -eq $? || _lt_function_replace_fail=:
++fi
++
++if test x"$_lt_function_replace_fail" = x":"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
++$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
++fi
++
++
++ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+
+--
+2.28.0
+
diff --git a/meta/recipes-devtools/binutils/binutils/0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch b/meta/recipes-devtools/binutils/binutils/0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch
deleted file mode 100644
index 463de80638..0000000000
--- a/meta/recipes-devtools/binutils/binutils/0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From ef4ad1cb9ff1b5a871ffa792a71b3ad6d14eb3dc Mon Sep 17 00:00:00 2001
-From: Zhenhua Luo <zhenhua.luo@nxp.com>
-Date: Sat, 11 Jun 2016 22:08:29 -0500
-Subject: [PATCH] fix the incorrect assembling for ppc wait mnemonic
-
-Signed-off-by: Zhenhua Luo <zhenhua.luo@nxp.com>
-
-Upstream-Status: Pending
----
- opcodes/ppc-opc.c | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c
-index 7ef91d819b..145953d3c4 100644
---- a/opcodes/ppc-opc.c
-+++ b/opcodes/ppc-opc.c
-@@ -5709,7 +5709,6 @@ const struct powerpc_opcode powerpc_opcodes[] = {
- {"ldepx", X(31,29), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
-
- {"waitasec", X(31,30), XRTRARB_MASK, POWER8, POWER9, {0}},
--{"wait", X(31,30), XWC_MASK, POWER9, 0, {WC}},
-
- {"lwepx", X(31,31), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
-
-@@ -5763,7 +5762,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
-
- {"waitrsv", X(31,62)|(1<<21), 0xffffffff, E500MC|PPCA2, 0, {0}},
- {"waitimpl", X(31,62)|(2<<21), 0xffffffff, E500MC|PPCA2, 0, {0}},
--{"wait", X(31,62), XWC_MASK, E500MC|PPCA2, 0, {WC}},
-+{"wait", X(31,62), XWC_MASK, E500MC|PPCA2|POWER9, 0, {WC}},
-
- {"dcbstep", XRT(31,63,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
-
diff --git a/meta/recipes-devtools/binutils/binutils/0010-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch b/meta/recipes-devtools/binutils/binutils/0014-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch
index f4f1a068cb..69a2383782 100644
--- a/meta/recipes-devtools/binutils/binutils/0010-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch
+++ b/meta/recipes-devtools/binutils/binutils/0014-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch
@@ -1,7 +1,7 @@
-From 70f3f2d9e912ea777fa113e02cdbc3465a66e40d Mon Sep 17 00:00:00 2001
+From f791a5d84475c02356f16679b7f4ee9c9c3408aa Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 2 Mar 2015 01:42:38 +0000
-Subject: [PATCH] Fix rpath in libtool when sysroot is enabled
+Subject: [PATCH 14/17] Fix rpath in libtool when sysroot is enabled
Enabling sysroot support in libtool exposed a bug where the final
library had an RPATH encoded into it which still pointed to the
@@ -19,7 +19,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/ltmain.sh b/ltmain.sh
-index 70e856e065..11ee684ccc 100644
+index 70e856e0659..11ee684cccf 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -8035,9 +8035,11 @@ EOF
@@ -47,3 +47,6 @@ index 70e856e065..11ee684ccc 100644
if test -n "$hardcode_libdir_separator"; then
if test -z "$hardcode_libdirs"; then
hardcode_libdirs="$libdir"
+--
+2.28.0
+
diff --git a/meta/recipes-devtools/binutils/binutils/0015-sync-with-OE-libtool-changes.patch b/meta/recipes-devtools/binutils/binutils/0015-sync-with-OE-libtool-changes.patch
index a794719bd2..e848f146b0 100644
--- a/meta/recipes-devtools/binutils/binutils/0015-sync-with-OE-libtool-changes.patch
+++ b/meta/recipes-devtools/binutils/binutils/0015-sync-with-OE-libtool-changes.patch
@@ -1,7 +1,7 @@
-From 392d474a72d37b669f53ab9f0fa913b958af93f6 Mon Sep 17 00:00:00 2001
+From e087f96e219d47c4d2244c3f32397e56d41bfdec Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@intel.com>
Date: Mon, 6 Mar 2017 23:33:27 -0800
-Subject: [PATCH] sync with OE libtool changes
+Subject: [PATCH 15/17] sync with OE libtool changes
Apply these patches from our libtool patches as not only are redundant RPATHs a
waste of space but they can cause incorrect linking when native packages are
@@ -26,7 +26,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 28 insertions(+), 6 deletions(-)
diff --git a/ltmain.sh b/ltmain.sh
-index 11ee684ccc..3b19ac1532 100644
+index 11ee684cccf..3b19ac15328 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -8053,8 +8053,16 @@ EOF
@@ -84,3 +84,6 @@ index 11ee684ccc..3b19ac1532 100644
fi
elif test -n "$runpath_var"; then
case "$finalize_perm_rpath " in
+--
+2.28.0
+
diff --git a/meta/recipes-devtools/binutils/binutils/0016-Check-for-clang-before-checking-gcc-version.patch b/meta/recipes-devtools/binutils/binutils/0016-Check-for-clang-before-checking-gcc-version.patch
new file mode 100644
index 0000000000..400b79823f
--- /dev/null
+++ b/meta/recipes-devtools/binutils/binutils/0016-Check-for-clang-before-checking-gcc-version.patch
@@ -0,0 +1,48 @@
+From ae5a7d622dc9addb2ca9fc85889c45964c025a9c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 15 Apr 2020 14:17:20 -0700
+Subject: [PATCH 16/17] Check for clang before checking gcc version
+
+Clang advertises itself to be gcc 4.2.1, so when compiling this test
+here fails since gcc < 4.4.5 did not support -static-libstdc++ but thats
+not true for clang, so its better to make an additional check for clang
+before resorting to gcc version check. This should let clang enable
+static libstdc++ linking
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure | 2 +-
+ configure.ac | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure b/configure
+index 6782f8b6ab8..72f5766b363 100755
+--- a/configure
++++ b/configure
+@@ -5143,7 +5143,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+-#if (__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
++#if !defined(__clang__) && ((__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 5))
+ #error -static-libstdc++ not implemented
+ #endif
+ int main() {}
+diff --git a/configure.ac b/configure.ac
+index 55beb1dea46..3f9e613e2d9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1312,7 +1312,7 @@ if test "$GCC" = yes; then
+ AC_MSG_CHECKING([whether g++ accepts -static-libstdc++ -static-libgcc])
+ AC_LANG_PUSH(C++)
+ AC_LINK_IFELSE([AC_LANG_SOURCE([
+-#if (__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
++#if !defined(__clang__) && ((__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 5))
+ #error -static-libstdc++ not implemented
+ #endif
+ int main() {}])],
+--
+2.28.0
+
diff --git a/meta/recipes-devtools/binutils/binutils_2.34.bb b/meta/recipes-devtools/binutils/binutils_2.35.bb
index bfc9346822..2e645e1ed8 100644
--- a/meta/recipes-devtools/binutils/binutils_2.34.bb
+++ b/meta/recipes-devtools/binutils/binutils_2.35.bb
@@ -18,6 +18,11 @@ EXTRA_OECONF_class-native = "--enable-targets=all \
--enable-64-bit-bfd \
--enable-install-libiberty \
--enable-install-libbfd \
+ --disable-gdb \
+ --disable-gdbserver \
+ --disable-libdecnumber \
+ --disable-readline \
+ --disable-sim \
--disable-werror"
# gcc9.0 end up mis-compiling libbfd.so with O2 which then crashes on target
diff --git a/meta/recipes-devtools/bison/bison/dont-depend-on-help2man.patch.patch b/meta/recipes-devtools/bison/bison/dont-depend-on-help2man.patch.patch
deleted file mode 100644
index 8a41a3a762..0000000000
--- a/meta/recipes-devtools/bison/bison/dont-depend-on-help2man.patch.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 31bb81ef15c42b10844eb8af8738f672076edf0e Mon Sep 17 00:00:00 2001
-From: Marko Lindqvist <cazfi74@gmail.com>
-Date: Tue, 21 Apr 2015 00:48:45 -0700
-Subject: [PATCH] doc/local.mk: dont-depend-on-help2man.patch
-
-Upstream-Status: Inappropriate
-
-Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
-
-Updated for bison 3.0.4
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-
----
- doc/local.mk | 9 +--------
- 1 file changed, 1 insertion(+), 8 deletions(-)
-
-diff --git a/doc/local.mk b/doc/local.mk
-index d12836e..f9bf332 100644
---- a/doc/local.mk
-+++ b/doc/local.mk
-@@ -101,10 +101,7 @@ endif ! CROSS_COMPILING
- ## Man Pages. ##
- ## ----------- ##
-
--dist_man_MANS = $(top_srcdir)/doc/bison.1
--
--EXTRA_DIST += $(dist_man_MANS:.1=.x)
--MAINTAINERCLEANFILES += $(dist_man_MANS)
-+EXTRA_DIST += bison.x
-
- # Differences to ignore when comparing the man page (the date).
- remove_time_stamp = \
-@@ -127,10 +124,6 @@ $(top_srcdir)/doc/bison.1: $(MAN_DEPS)
- fi
- $(AM_V_at)rm -f $@*.tmp
-
--if ENABLE_YACC
--nodist_man_MANS = doc/yacc.1
--endif
--
- ## ----------------------------- ##
- ## Graphviz examples generation. ##
- ## ----------------------------- ##
diff --git a/meta/recipes-devtools/bison/bison_3.5.1.bb b/meta/recipes-devtools/bison/bison_3.7.2.bb
index e70252d974..ace4ea5c3f 100644
--- a/meta/recipes-devtools/bison/bison_3.5.1.bb
+++ b/meta/recipes-devtools/bison/bison_3.7.2.bb
@@ -10,20 +10,17 @@ SECTION = "devel"
DEPENDS = "bison-native flex-native"
SRC_URI = "${GNU_MIRROR}/bison/bison-${PV}.tar.xz \
- file://dont-depend-on-help2man.patch.patch \
file://add-with-bisonlocaledir.patch \
-"
+ "
+SRC_URI[sha256sum] = "7948d193104d979c0fb0294a1854c73c89d72ae41acfc081826142578a78a91b"
# No point in hardcoding path to m4, just use PATH
EXTRA_OECONF += "M4=m4"
-SRC_URI[md5sum] = "6fc5fa4488832a65db934b9e93bd5d4c"
-SRC_URI[sha256sum] = "3e7e097bd9709a2d5e40e69446b74b149733b3de864fadb7a9b54eca7b2a4dd0"
-
inherit autotools gettext texinfo
# The automatic m4 path detection gets confused, so force the right value
-acpaths = "-I ${S}/m4"
+acpaths = "-I ./m4"
do_compile_prepend() {
for i in mfcalc calc++ rpcalc; do mkdir -p ${B}/examples/$i; done
diff --git a/meta/recipes-devtools/bootchart2/bootchart2_0.14.8.bb b/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb
index a938b2da49..6571c19938 100644
--- a/meta/recipes-devtools/bootchart2/bootchart2_0.14.8.bb
+++ b/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb
@@ -97,8 +97,7 @@ SRC_URI = "git://github.com/xrmx/bootchart.git \
"
S = "${WORKDIR}/git"
-SRCREV = "331ada031f1d65f6d934d918f896e1c708c64bf7"
-PV .= "+git${SRCPV}"
+SRCREV = "868a2afab9da34f32c007d773b77253c93104636"
inherit systemd update-rc.d python3native update-alternatives
diff --git a/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.4.1.bb b/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.7.bb
index cdc971cf5d..e61ea9bf89 100644
--- a/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.4.1.bb
+++ b/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.7.bb
@@ -14,7 +14,7 @@ DEPENDS = "util-linux attr e2fsprogs lzo acl"
DEPENDS_append_class-target = " udev"
RDEPENDS_${PN} = "libgcc"
-SRCREV = "3fc2326d3474a5e4df2449f5e3043f7298501334"
+SRCREV = "11acf45eea6dd81e891564967051e2bb10bd25f7"
SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git \
file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \
"
@@ -49,4 +49,4 @@ do_install_append() {
fi
}
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/build-compare/build-compare_git.bb b/meta/recipes-devtools/build-compare/build-compare_git.bb
deleted file mode 100644
index b0560cc277..0000000000
--- a/meta/recipes-devtools/build-compare/build-compare_git.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "Build Result Compare Script"
-DESCRIPTION = "This package contains scripts to find out if the build result\
-differs to a former build."
-HOMEPAGE = "https://github.com/openSUSE/build-compare"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-SRC_URI = "git://github.com/openSUSE/build-compare.git \
- file://Ignore-DWARF-sections.patch;striplevel=1 \
- "
-
-# Date matches entry in build-compare.changes and date of SRCREV.
-#
-SRCREV = "4dfa207660776cae120afa4353aec7f1f2a998d2"
-PE = "1"
-PV = "2019.08.14+git${SRCPV}"
-UPSTREAM_CHECK_COMMITS = "1"
-
-S = "${WORKDIR}/git"
-
-BBCLASSEXTEND = "native nativesdk"
-
-do_install() {
- install -d ${D}/${bindir}
- install -m 755 functions.sh ${D}/${bindir}
- install -m 755 pkg-diff.sh ${D}/${bindir}
- install -m 755 same-build-result.sh ${D}/${bindir}
- install -m 755 srpm-check.sh ${D}/${bindir}
-}
-
-RDEPENDS_${PN} += "bash"
diff --git a/meta/recipes-devtools/build-compare/files/Ignore-DWARF-sections.patch b/meta/recipes-devtools/build-compare/files/Ignore-DWARF-sections.patch
deleted file mode 100644
index 2fb62ae8ce..0000000000
--- a/meta/recipes-devtools/build-compare/files/Ignore-DWARF-sections.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 015715694eadd714b903f30ade876e0738d44974 Mon Sep 17 00:00:00 2001
-From: Randy Witt <randy.e.witt@linux.intel.com>
-Date: Mon, 5 Jan 2015 15:09:20 -0800
-Subject: [PATCH] Ignore DWARF sections.
-
-Assume for now that we don't care about the DWARF sections due to path
-differences. However, in the case the tool is ran on a "debug" package
-it will most likely falsely say the packages have no differences.
-
-Upstream-Status: Inappropriate [other]
-
-The package difference tool is correctly labelling the packages as different
-when the DWARF sections don't match due to paths. The paths in the debug info
-should actually be made to be the same using compile flags or some other
-mechanism.
-
-However, to make the tool more useful to Yocto until the work can be done
-to ensure identical paths in debug sections, this patch is being applied.
-
-Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com>
----
- pkg-diff.sh | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pkg-diff.sh b/pkg-diff.sh
-index 9c2125e..b0d77c8 100755
---- a/pkg-diff.sh
-+++ b/pkg-diff.sh
-@@ -851,7 +851,7 @@ check_single_file()
- echo "" >$file1
- echo "" >$file2
- # Don't compare .build-id, .gnu_debuglink and .gnu_debugdata sections
-- sections="$($OBJDUMP -s new/$file | grep "Contents of section .*:" | sed -r "s,.* (.*):,\1,g" | grep -v -e "\.build-id" -e "\.gnu_debuglink" -e "\.gnu_debugdata" | tr "\n" " ")"
-+ sections="$($OBJDUMP -s new/$file | grep "Contents of section .*:" | sed -r "s,.* (.*):,\1,g" | grep -v -e "\.build-id" -e "\.gnu_debuglink" -e "\.gnu_debugdata" -e "\.debug_abbrev" -e "\.debug_aranges" -e "\.debug_frame" -e "\.debug_info" -e "\.debug_line" -e "\.debug_loc" -e "\.debug_macinfo" -e "\.debug_pubnames" -e "\.debug_pubtypes" -e "\.debug_ranges" -e "\.debug_str" | tr "\n" " ")"
- for section in $sections; do
- $OBJDUMP -s -j $section old/$file | sed "s,^old/,," > $file1
- $OBJDUMP -s -j $section new/$file | sed "s,^new/,," > $file2
diff --git a/meta/recipes-devtools/ccache/ccache.inc b/meta/recipes-devtools/ccache/ccache_3.7.11.bb
index dcbbf0ca7a..fd004f4c9b 100644
--- a/meta/recipes-devtools/ccache/ccache.inc
+++ b/meta/recipes-devtools/ccache/ccache_3.7.11.bb
@@ -5,11 +5,15 @@ same compilation is being done again. Supported languages are C, C\+\+, \
Objective-C and Objective-C++."
HOMEPAGE = "http://ccache.samba.org"
SECTION = "devel"
+
LICENSE = "GPLv3+"
+LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=22d514dbc01fdf9a9784334b6b59417a"
DEPENDS = "zlib"
SRC_URI = "https://github.com/ccache/ccache/releases/download/v${PV}/${BP}.tar.gz"
+SRC_URI[sha256sum] = "34309a59d4b6b6b33756366aa9d3144a4655587be9f914476b4c0e2d36365f01"
+
UPSTREAM_CHECK_URI = "https://github.com/ccache/ccache/releases/"
inherit autotools
diff --git a/meta/recipes-devtools/ccache/ccache_3.7.7.bb b/meta/recipes-devtools/ccache/ccache_3.7.7.bb
deleted file mode 100644
index 3e7362b28b..0000000000
--- a/meta/recipes-devtools/ccache/ccache_3.7.7.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require ccache.inc
-
-LICENSE = "GPLv3+"
-LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=22d514dbc01fdf9a9784334b6b59417a"
-
-SRC_URI[md5sum] = "500d7bd9ebc6ee3105d7fc332c1ef395"
-SRC_URI[sha256sum] = "9b61f7fab2ec15305ee8382b03365503232dfb04b57414e7b0433768d530fa8a"
diff --git a/meta/recipes-devtools/cdrtools/cdrtools-native_3.01.bb b/meta/recipes-devtools/cdrtools/cdrtools-native_3.01.bb
index 1c602e7ce7..c08da6cdca 100644
--- a/meta/recipes-devtools/cdrtools/cdrtools-native_3.01.bb
+++ b/meta/recipes-devtools/cdrtools/cdrtools-native_3.01.bb
@@ -8,10 +8,9 @@ LICENSE = "GPLv2 & CDDL-1.0 & LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=32f68170be424c2cd64804337726b312"
SRC_URI = " \
- ${SOURCEFORGE_MIRROR}/project/cdrtools/cdrtools-${REALPV}.tar.bz2 \
+ ${SOURCEFORGE_MIRROR}/project/cdrtools/cdrtools-${PV}.tar.bz2 \
file://0001-Don-t-set-uid-gid-during-install.patch \
"
-UPSTREAM_VERSION_UNKNOWN = "1"
SRC_URI[md5sum] = "7d45c5b7e1f78d85d1583b361aee6e8b"
SRC_URI[sha256sum] = "ed282eb6276c4154ce6a0b5dee0bdb81940d0cbbfc7d03f769c4735ef5f5860f"
@@ -23,11 +22,6 @@ export ac_cv_prog_CC = "${CC}"
inherit native
-PV = "3.01a31+really3.01"
-REALPV = "3.01"
-
-S = "${WORKDIR}/${BPN}-${REALPV}"
-
do_install() {
make install GMAKE_NOWARN=true INS_BASE=${prefix} DESTDIR=${D}
}
diff --git a/meta/recipes-devtools/cmake/cmake-native_3.16.1.bb b/meta/recipes-devtools/cmake/cmake-native_3.18.2.bb
index b2952ee5f5..d91e42ef9a 100644
--- a/meta/recipes-devtools/cmake/cmake-native_3.16.1.bb
+++ b/meta/recipes-devtools/cmake/cmake-native_3.18.2.bb
@@ -1,7 +1,7 @@
require cmake.inc
inherit native
-DEPENDS += "bzip2-replacement-native expat-native xz-native zlib-native curl-native ncurses-native"
+DEPENDS += "bzip2-replacement-native xz-native zlib-native curl-native ncurses-native"
SRC_URI += "file://OEToolchainConfig.cmake \
file://environment.d-cmake.sh \
@@ -21,6 +21,7 @@ CMAKE_EXTRACONF = "\
-DCMAKE_USE_SYSTEM_LIBRARY_LIBARCHIVE=0 \
-DCMAKE_USE_SYSTEM_LIBRARY_LIBUV=0 \
-DCMAKE_USE_SYSTEM_LIBRARY_LIBRHASH=0 \
+ -DCMAKE_USE_SYSTEM_LIBRARY_EXPAT=0 \
-DENABLE_ACL=0 -DHAVE_ACL_LIBACL_H=0 \
-DHAVE_SYS_ACL_H=0 \
"
diff --git a/meta/recipes-devtools/cmake/cmake.inc b/meta/recipes-devtools/cmake/cmake.inc
index 9d14c14b54..fa1b818ae4 100644
--- a/meta/recipes-devtools/cmake/cmake.inc
+++ b/meta/recipes-devtools/cmake/cmake.inc
@@ -10,8 +10,8 @@ HOMEPAGE = "http://www.cmake.org/"
BUGTRACKER = "http://public.kitware.com/Bug/my_view_page.php"
SECTION = "console/utils"
LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://Copyright.txt;md5=622747147b46f22e1953876a7cba3323 \
- file://Source/cmake.h;md5=4494dee184212fc89c469c3acd555a14;beginline=1;endline=3 \
+LIC_FILES_CHKSUM = "file://Copyright.txt;md5=c721f56fce89ba2eadc2fdd8ba1f4d83 \
+ file://Source/cmake.h;beginline=1;endline=3;md5=4494dee184212fc89c469c3acd555a14 \
"
CMAKE_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:2])}"
@@ -22,7 +22,10 @@ SRC_URI = "https://cmake.org/files/v${CMAKE_MAJOR_VERSION}/cmake-${PV}.tar.gz \
file://0004-Fail-silently-if-system-Qt-installation-is-broken.patch \
"
-SRC_URI[md5sum] = "142cf11cd9a7c298cf875604cee96434"
-SRC_URI[sha256sum] = "a275b3168fa8626eca4465da7bb159ff07c8c6cb0fb7179be59e12cbdfa725fd"
+SRC_URI[sha256sum] = "5d4e40fc775d3d828c72e5c45906b4d9b59003c9433ff1b36a1cb552bbd51d7e"
UPSTREAM_CHECK_REGEX = "cmake-(?P<pver>\d+(\.\d+)+)\.tar"
+
+# This is specific to the npm package that installs cmake, so isn't
+# relevant to OpenEmbedded
+CVE_CHECK_WHITELIST += "CVE-2016-10642"
diff --git a/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch b/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch
index e2a58d25e2..c4f81b27b5 100644
--- a/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch
+++ b/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch
@@ -1,4 +1,4 @@
-From ab272d703ce77f323aa1285526559c9efbf85834 Mon Sep 17 00:00:00 2001
+From dd0fe8d54def4684d360b3e9b10e963ef0208202 Mon Sep 17 00:00:00 2001
From: Cody P Schafer <dev@codyps.com>
Date: Thu, 27 Apr 2017 11:35:05 -0400
Subject: [PATCH] CMakeDetermineSystem: use oe environment vars to load default
@@ -25,7 +25,7 @@ Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
1 file changed, 7 insertions(+)
diff --git a/Modules/CMakeDetermineSystem.cmake b/Modules/CMakeDetermineSystem.cmake
-index dc208c6..e0af4ca 100644
+index f3ec4da..bb05656 100644
--- a/Modules/CMakeDetermineSystem.cmake
+++ b/Modules/CMakeDetermineSystem.cmake
@@ -81,6 +81,13 @@ else()
diff --git a/meta/recipes-devtools/cmake/cmake/0002-cmake-Prevent-the-detection-of-Qt5.patch b/meta/recipes-devtools/cmake/cmake/0002-cmake-Prevent-the-detection-of-Qt5.patch
index 61c8f27cd6..162bfe5783 100644
--- a/meta/recipes-devtools/cmake/cmake/0002-cmake-Prevent-the-detection-of-Qt5.patch
+++ b/meta/recipes-devtools/cmake/cmake/0002-cmake-Prevent-the-detection-of-Qt5.patch
@@ -1,4 +1,4 @@
-From 5a86c7fa987bd407f228176df2abeffd015be9ea Mon Sep 17 00:00:00 2001
+From 106cf5134d22db889e4ddf2f98ec302d5f4b9ca7 Mon Sep 17 00:00:00 2001
From: Otavio Salvador <otavio@ossystems.com.br>
Date: Wed, 17 Jan 2018 10:02:14 -0200
Subject: [PATCH] cmake: Prevent the detection of Qt5
@@ -25,7 +25,7 @@ Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
7 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/Source/QtDialog/CMakeLists.txt b/Source/QtDialog/CMakeLists.txt
-index cb89d19..9e68981 100644
+index 98dd0e2..252302b 100644
--- a/Source/QtDialog/CMakeLists.txt
+++ b/Source/QtDialog/CMakeLists.txt
@@ -3,7 +3,7 @@
@@ -38,18 +38,18 @@ index cb89d19..9e68981 100644
include_directories(${Qt5Widgets_INCLUDE_DIRS})
add_definitions(${Qt5Widgets_DEFINITONS})
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
-index 57fa7fc..d50c146 100644
+index db6dbf3..5b26879 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
-@@ -1329,7 +1329,7 @@ ${CMake_SOURCE_DIR}/Utilities/Release/push.bash --dir dev -- '${CMake_BUILD_NIGH
+@@ -215,7 +215,7 @@ if(BUILD_TESTING)
set(CMake_TEST_Qt5 1)
endif()
if(CMake_TEST_Qt5)
- find_package(Qt5Widgets QUIET NO_MODULE)
+ #find_package(Qt5Widgets QUIET NO_MODULE)
endif()
- if(CMake_TEST_Qt5 AND Qt5Widgets_FOUND)
- add_subdirectory(Qt5Autogen)
+
+ if(NOT CMake_TEST_EXTERNAL_CMAKE)
diff --git a/Tests/Qt4And5Automoc/CMakeLists.txt b/Tests/Qt4And5Automoc/CMakeLists.txt
index ad74961..a9dd74b 100644
--- a/Tests/Qt4And5Automoc/CMakeLists.txt
@@ -96,11 +96,11 @@ index c08efc4..87e25d9 100644
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/output/bin)
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
-index 6b2f117..1002005 100644
+index 10e66c3..ecc4eeb 100644
--- a/Tests/RunCMake/CMakeLists.txt
+++ b/Tests/RunCMake/CMakeLists.txt
-@@ -376,7 +376,7 @@ else()
- endif()
+@@ -440,7 +440,7 @@ if(NOT WIN32)
+ endif ()
find_package(Qt4 QUIET)
-find_package(Qt5Core QUIET)
diff --git a/meta/recipes-devtools/cmake/cmake/0003-cmake-support-OpenEmbedded-Qt4-tool-binary-names.patch b/meta/recipes-devtools/cmake/cmake/0003-cmake-support-OpenEmbedded-Qt4-tool-binary-names.patch
index e30dc51e4a..575a5cb7fb 100644
--- a/meta/recipes-devtools/cmake/cmake/0003-cmake-support-OpenEmbedded-Qt4-tool-binary-names.patch
+++ b/meta/recipes-devtools/cmake/cmake/0003-cmake-support-OpenEmbedded-Qt4-tool-binary-names.patch
@@ -1,4 +1,4 @@
-From e528861023bf69df0ad061a59fd4e527c9dde1ce Mon Sep 17 00:00:00 2001
+From 2d02ac91d5a5d72eaddba4894eaa6db3ed8fee62 Mon Sep 17 00:00:00 2001
From: Otavio Salvador <otavio@ossystems.com.br>
Date: Thu, 12 May 2011 15:36:03 +0000
Subject: [PATCH] cmake: support OpenEmbedded Qt4 tool binary names
diff --git a/meta/recipes-devtools/cmake/cmake/0004-Fail-silently-if-system-Qt-installation-is-broken.patch b/meta/recipes-devtools/cmake/cmake/0004-Fail-silently-if-system-Qt-installation-is-broken.patch
index 48f43be837..1b196db81a 100644
--- a/meta/recipes-devtools/cmake/cmake/0004-Fail-silently-if-system-Qt-installation-is-broken.patch
+++ b/meta/recipes-devtools/cmake/cmake/0004-Fail-silently-if-system-Qt-installation-is-broken.patch
@@ -1,4 +1,4 @@
-From b0aeca35187983e22ec256a439cff4702dbde331 Mon Sep 17 00:00:00 2001
+From 60864efbe52cc12018efaafbc4e4c3c8b4af2b65 Mon Sep 17 00:00:00 2001
From: Otavio Salvador <otavio@ossystems.com.br>
Date: Thu, 5 Jul 2018 10:26:48 -0300
Subject: [PATCH] Fail silently if system Qt installation is broken
diff --git a/meta/recipes-devtools/cmake/cmake/0005-Disable-use-of-ext2fs-ext2_fs.h-by-cmake-s-internal-.patch b/meta/recipes-devtools/cmake/cmake/0005-Disable-use-of-ext2fs-ext2_fs.h-by-cmake-s-internal-.patch
index ad42d409d9..d6f7308fe0 100644
--- a/meta/recipes-devtools/cmake/cmake/0005-Disable-use-of-ext2fs-ext2_fs.h-by-cmake-s-internal-.patch
+++ b/meta/recipes-devtools/cmake/cmake/0005-Disable-use-of-ext2fs-ext2_fs.h-by-cmake-s-internal-.patch
@@ -1,7 +1,8 @@
-From 0df8d46d14c371f21c327966a553c4c187a8acfe Mon Sep 17 00:00:00 2001
+From fd9a04c1434e12f21c043385e306e0b52d38d749 Mon Sep 17 00:00:00 2001
From: Otavio Salvador <otavio@ossystems.com.br>
Date: Thu, 5 Jul 2018 10:28:04 -0300
-Subject: [PATCH 5/5] Disable use of ext2fs/ext2_fs.h by cmake's internal
+Subject: [PATCH] Disable use of ext2fs/ext2_fs.h by cmake's internal
+
libarchive copy
Organization: O.S. Systems Software LTDA.
@@ -12,15 +13,16 @@ Upstream-Status: Inappropriate [config]
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+
---
Utilities/cmlibarchive/CMakeLists.txt | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/Utilities/cmlibarchive/CMakeLists.txt b/Utilities/cmlibarchive/CMakeLists.txt
-index 206f3c6a5..642fb0dd9 100644
+index bfcaf30..2960683 100644
--- a/Utilities/cmlibarchive/CMakeLists.txt
+++ b/Utilities/cmlibarchive/CMakeLists.txt
-@@ -430,12 +430,8 @@ LA_CHECK_INCLUDE_FILE("copyfile.h" HAVE_COPYFILE_H)
+@@ -682,12 +682,8 @@ LA_CHECK_INCLUDE_FILE("copyfile.h" HAVE_COPYFILE_H)
LA_CHECK_INCLUDE_FILE("direct.h" HAVE_DIRECT_H)
LA_CHECK_INCLUDE_FILE("dlfcn.h" HAVE_DLFCN_H)
LA_CHECK_INCLUDE_FILE("errno.h" HAVE_ERRNO_H)
@@ -34,7 +36,4 @@ index 206f3c6a5..642fb0dd9 100644
+SET(HAVE_WORKING_EXT2_IOC_GETFLAGS 0)
LA_CHECK_INCLUDE_FILE("fcntl.h" HAVE_FCNTL_H)
LA_CHECK_INCLUDE_FILE("grp.h" HAVE_GRP_H)
- LA_CHECK_INCLUDE_FILE("inttypes.h" HAVE_INTTYPES_H)
---
-2.18.0
-
+ LA_CHECK_INCLUDE_FILE("io.h" HAVE_IO_H)
diff --git a/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake b/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake
index 398069eef2..8f6f3a272d 100644
--- a/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake
+++ b/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake
@@ -19,7 +19,7 @@ if ($ENV{SDKTARGETSYSROOT} MATCHES "/sysroots/([a-zA-Z0-9_-]+)-.+-.+")
endif()
# Include the toolchain configuration subscripts
-file( GLOB toolchain_config_files "${CMAKE_TOOLCHAIN_FILE}.d/*.cmake" )
+file( GLOB toolchain_config_files "${CMAKE_CURRENT_LIST_FILE}.d/*.cmake" )
foreach(config ${toolchain_config_files})
include(${config})
endforeach()
diff --git a/meta/recipes-devtools/cmake/cmake_3.16.1.bb b/meta/recipes-devtools/cmake/cmake_3.18.2.bb
index e0457677e8..64c92b89f2 100644
--- a/meta/recipes-devtools/cmake/cmake_3.16.1.bb
+++ b/meta/recipes-devtools/cmake/cmake_3.18.2.bb
@@ -1,6 +1,6 @@
require cmake.inc
-inherit cmake
+inherit cmake bash-completion
DEPENDS += "curl expat zlib libarchive xz ncurses bzip2"
@@ -46,7 +46,7 @@ do_install_append_class-nativesdk() {
FILES_${PN}_append_class-nativesdk = " ${SDKPATHNATIVE}"
-FILES_${PN} += "${datadir}/cmake-${CMAKE_MAJOR_VERSION} ${datadir}/cmake ${datadir}/aclocal"
+FILES_${PN} += "${datadir}/cmake-${CMAKE_MAJOR_VERSION} ${datadir}/cmake ${datadir}/aclocal ${datadir}/emacs ${datadir}/vim"
FILES_${PN}-doc += "${docdir}/cmake-${CMAKE_MAJOR_VERSION}"
FILES_${PN}-dev = ""
diff --git a/meta/recipes-devtools/createrepo-c/createrepo-c_0.15.7.bb b/meta/recipes-devtools/createrepo-c/createrepo-c_0.16.0.bb
index c6a53ffece..c6d8963072 100644
--- a/meta/recipes-devtools/createrepo-c/createrepo-c_0.15.7.bb
+++ b/meta/recipes-devtools/createrepo-c/createrepo-c_0.16.0.bb
@@ -8,7 +8,7 @@ SRC_URI = "git://github.com/rpm-software-management/createrepo_c \
file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \
"
-SRCREV = "4ab6b56b8b718396386982afba4ade297c14d91a"
+SRCREV = "bac48ace91c51abe37792415e75452bbabd44d93"
S = "${WORKDIR}/git"
diff --git a/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.24.bb b/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.26.bb
index aecba07235..90c265aed9 100644
--- a/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.24.bb
+++ b/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.26.bb
@@ -7,8 +7,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://src/validator.c;beginline=4;endline=27;md5=281e1114ee6c486a1a0a4295986b9416"
SRC_URI = "http://freedesktop.org/software/${BPN}/releases/${BP}.tar.xz"
-SRC_URI[md5sum] = "9364b82e14cfcad881161aa7ea5257ae"
-SRC_URI[sha256sum] = "a1de5da60cbdbe91e5c9c10ac9afee6c3deb019e0cee5fdb9a99dddc245f83d9"
+SRC_URI[md5sum] = "29739e005f5887cf41639b8450f3c23f"
+SRC_URI[sha256sum] = "b26dbde79ea72c8c84fb7f9d870ffd857381d049a86d25e0038c4cef4c747309"
DEPENDS = "glib-2.0"
diff --git a/meta/recipes-devtools/distcc/distcc_3.3.3.bb b/meta/recipes-devtools/distcc/distcc_3.3.3.bb
index c52f136be8..d92b9c3046 100644
--- a/meta/recipes-devtools/distcc/distcc_3.3.3.bb
+++ b/meta/recipes-devtools/distcc/distcc_3.3.3.bb
@@ -17,6 +17,7 @@ RRECOMMENDS_${PN}-server = "avahi-daemon"
SRC_URI = "git://github.com/distcc/distcc.git \
file://fix-gnome.patch \
file://separatebuilddir.patch \
+ file://0001-Fix-build-with-gcc-10-which-defaults-to-fno-common-c.patch \
file://default \
file://distcc \
file://distcc.service"
diff --git a/meta/recipes-devtools/distcc/files/0001-Fix-build-with-gcc-10-which-defaults-to-fno-common-c.patch b/meta/recipes-devtools/distcc/files/0001-Fix-build-with-gcc-10-which-defaults-to-fno-common-c.patch
new file mode 100644
index 0000000000..86c07c11f8
--- /dev/null
+++ b/meta/recipes-devtools/distcc/files/0001-Fix-build-with-gcc-10-which-defaults-to-fno-common-c.patch
@@ -0,0 +1,34 @@
+From 98530865795300008fe06bb647a6fc2dddfc7967 Mon Sep 17 00:00:00 2001
+From: Romain Geissler <romain.geissler@amadeus.com>
+Date: Mon, 27 Jan 2020 09:28:43 +0000
+Subject: [PATCH] Fix build with gcc 10 which defaults to -fno-common (cf
+ https://gcc.gnu.org/gcc-10/porting_to.html)
+
+This fixes the following link error I see when I use the latest gcc 10
+git branch:
+/opt/1A/toolchain/x86_64-v20.0.7/lib/gcc/x86_64-1a-linux-gnu/10.0.1/../../../../x86_64-1a-linux-gnu/bin/ld: src/serve.o:(.bss+0x0): multiple definition of `stats_text'; src/prefork.o:(.bss+0x0): first defined here
+/opt/1A/toolchain/x86_64-v20.0.7/lib/gcc/x86_64-1a-linux-gnu/10.0.1/../../../../x86_64-1a-linux-gnu/bin/ld: src/stats.o:(.data+0x20): multiple definition of `stats_text'; src/prefork.o:(.bss+0x0): first defined here
+collect2: error: ld returned 1 exit status
+
+Upstream-Status: Backport [https://github.com/distcc/distcc/pull/373]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/stats.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/stats.h b/src/stats.h
+index 9bde285..74d4690 100644
+--- a/src/stats.h
++++ b/src/stats.h
+@@ -33,7 +33,7 @@ enum stats_e { STATS_TCP_ACCEPT, STATS_REJ_BAD_REQ, STATS_REJ_OVERLOAD,
+ STATS_COMPILE_OK, STATS_COMPILE_ERROR, STATS_COMPILE_TIMEOUT,
+ STATS_CLI_DISCONN, STATS_OTHER, STATS_ENUM_MAX };
+
+-const char *stats_text[20];
++extern const char *stats_text[20];
+
+ int dcc_stats_init(void);
+ void dcc_stats_init_kid(void);
+--
+2.28.0
+
diff --git a/meta/recipes-devtools/dnf/dnf/0001-dnf-write-the-log-lock-to-root.patch b/meta/recipes-devtools/dnf/dnf/0001-dnf-write-the-log-lock-to-root.patch
new file mode 100644
index 0000000000..21b50dee01
--- /dev/null
+++ b/meta/recipes-devtools/dnf/dnf/0001-dnf-write-the-log-lock-to-root.patch
@@ -0,0 +1,29 @@
+From 5e07c16a506b19cbb107d5e99fca41d679b23b9a Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Tue, 28 Apr 2020 15:55:00 +0200
+Subject: [PATCH] dnf: write the log lock to root
+
+Writing it to /var/log appears to be racing with installation
+of base-files, and if lock is created first, base-files
+will refuse to install (due to the target directory
+already existing, and base-files creating it as a symlink).
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ dnf/logging.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/dnf/logging.py b/dnf/logging.py
+index bd660470..a9d808b1 100644
+--- a/dnf/logging.py
++++ b/dnf/logging.py
+@@ -94,7 +94,7 @@ class MultiprocessRotatingFileHandler(logging.handlers.RotatingFileHandler):
+ def __init__(self, filename, mode='a', maxBytes=0, backupCount=0, encoding=None, delay=False):
+ super(MultiprocessRotatingFileHandler, self).__init__(
+ filename, mode, maxBytes, backupCount, encoding, delay)
+- self.rotate_lock = dnf.lock.build_log_lock("/var/log/", True)
++ self.rotate_lock = dnf.lock.build_log_lock("/", True)
+
+ def emit(self, record):
+ while True:
diff --git a/meta/recipes-devtools/dnf/dnf/0001-set-python-path-for-completion_helper.patch b/meta/recipes-devtools/dnf/dnf/0001-set-python-path-for-completion_helper.patch
new file mode 100644
index 0000000000..448f6408bc
--- /dev/null
+++ b/meta/recipes-devtools/dnf/dnf/0001-set-python-path-for-completion_helper.patch
@@ -0,0 +1,24 @@
+From 7e79b3b67fd5cecd7380e7e365fd88eca63b5bfa Mon Sep 17 00:00:00 2001
+From: Jeremy Puhlman <jpuhlman@mvista.com>
+Date: Wed, 11 Mar 2020 22:10:02 +0000
+Subject: [PATCH] set python path for completion_helper
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
+---
+ dnf/cli/completion_helper.py.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/dnf/cli/completion_helper.py.in b/dnf/cli/completion_helper.py.in
+index 351226759..2835cd3b6 100644
+--- a/dnf/cli/completion_helper.py.in
++++ b/dnf/cli/completion_helper.py.in
+@@ -1,4 +1,4 @@
+-#!@PYTHON_EXECUTABLE@
++#!/usr/bin/env python3
+ #
+ # This file is part of dnf.
+ #
+--
+2.23.0
+
diff --git a/meta/recipes-devtools/dnf/dnf_4.2.2.bb b/meta/recipes-devtools/dnf/dnf_4.2.23.bb
index f6e616e7f1..8cfd4d0c89 100644
--- a/meta/recipes-devtools/dnf/dnf_4.2.2.bb
+++ b/meta/recipes-devtools/dnf/dnf_4.2.23.bb
@@ -13,9 +13,11 @@ SRC_URI = "git://github.com/rpm-software-management/dnf.git \
file://0005-Do-not-prepend-installroot-to-logdir.patch \
file://0029-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \
file://0030-Run-python-scripts-using-env.patch \
+ file://0001-set-python-path-for-completion_helper.patch \
+ file://0001-dnf-write-the-log-lock-to-root.patch \
"
-SRCREV = "9947306a55271b8b7c9e2b6e3b7d582885b6045d"
+SRCREV = "126d861812f827285960592359615ed7cb195aac"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
S = "${WORKDIR}/git"
diff --git a/meta/recipes-devtools/dosfstools/dosfstools_4.1.bb b/meta/recipes-devtools/dosfstools/dosfstools_4.1.bb
index 23b8836670..97ce449954 100644
--- a/meta/recipes-devtools/dosfstools/dosfstools_4.1.bb
+++ b/meta/recipes-devtools/dosfstools/dosfstools_4.1.bb
@@ -22,7 +22,7 @@ EXTRA_OECONF = "--without-udev --enable-compat-symlinks"
CFLAGS += "-D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
# Add codepage437 to avoid error from `dosfsck -l`
RRECOMMENDS_${PN}_append_libc-glibc = " glibc-gconv-ibm437"
diff --git a/meta/recipes-devtools/dpkg/dpkg.inc b/meta/recipes-devtools/dpkg/dpkg.inc
index 1c3c585d79..04fe85c4a8 100644
--- a/meta/recipes-devtools/dpkg/dpkg.inc
+++ b/meta/recipes-devtools/dpkg/dpkg.inc
@@ -7,7 +7,7 @@ DEPENDS_class-native = "bzip2-replacement-native zlib-native virtual/update-alte
RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives} perl"
RDEPENDS_${PN}_class-native = ""
-UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/dpkg/"
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
inherit autotools gettext perlnative pkgconfig perl-version update-alternatives
@@ -30,6 +30,18 @@ EXTRA_OECONF_append_class-target = " --disable-update-alternatives DEB_HOST_ARCH
PACKAGECONFIG = "liblzma"
PACKAGECONFIG[liblzma] = "--with-liblzma,--without-liblzma, xz"
+
+#autotools.bbclass default AUTOTOOLS_AUXDIR is ${S}, we need to under ${S}/build-aux
+AUTOTOOLS_AUXDIR = "${S}/build-aux"
+
+do_configure_prepend () {
+ mkdir -p ${AUTOTOOLS_AUXDIR}
+ # autotools_do_configure updates po/Makefile.in.in, we also need
+ # update dselect/po and scripts/po
+ cp -f ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/dselect/po/
+ cp -f ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/scripts/po/
+}
+
do_install_append () {
if [ "${PN}" = "dpkg-native" ]; then
# update-alternatives doesn't have an offline mode
diff --git a/meta/recipes-devtools/dpkg/dpkg/0001-Add-support-for-riscv32-CPU.patch b/meta/recipes-devtools/dpkg/dpkg/0001-Add-support-for-riscv32-CPU.patch
new file mode 100644
index 0000000000..52e85705fa
--- /dev/null
+++ b/meta/recipes-devtools/dpkg/dpkg/0001-Add-support-for-riscv32-CPU.patch
@@ -0,0 +1,39 @@
+From 279e4c274f5f295823cf9fa95d3ba131f6d711db Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 29 Apr 2020 22:02:23 -0700
+Subject: [PATCH] Add support for riscv32 CPU
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ data/cputable | 1 +
+ scripts/Dpkg/Vendor/Debian.pm | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/data/cputable b/data/cputable
+index 9f2a8e0..1d935b1 100644
+--- a/data/cputable
++++ b/data/cputable
+@@ -41,6 +41,7 @@ powerpc powerpc (powerpc|ppc) 32 big
+ powerpcel powerpcle powerpcle 32 little
+ ppc64 powerpc64 (powerpc|ppc)64 64 big
+ ppc64el powerpc64le powerpc64le 64 little
++riscv32 riscv32 riscv32 32 little
+ riscv64 riscv64 riscv64 64 little
+ s390 s390 s390 32 big
+ s390x s390x s390x 64 big
+diff --git a/scripts/Dpkg/Vendor/Debian.pm b/scripts/Dpkg/Vendor/Debian.pm
+index a352bbd..fa1d90b 100644
+--- a/scripts/Dpkg/Vendor/Debian.pm
++++ b/scripts/Dpkg/Vendor/Debian.pm
+@@ -306,6 +306,7 @@ sub _add_build_flags {
+ powerpc
+ ppc64
+ ppc64el
++ riscv32
+ riscv64
+ s390x
+ sparc
+--
+2.26.2
+
diff --git a/meta/recipes-devtools/dpkg/dpkg/0001-build.c-ignore-return-of-1-from-tar-cf.patch b/meta/recipes-devtools/dpkg/dpkg/0001-build.c-ignore-return-of-1-from-tar-cf.patch
new file mode 100644
index 0000000000..ffe520c513
--- /dev/null
+++ b/meta/recipes-devtools/dpkg/dpkg/0001-build.c-ignore-return-of-1-from-tar-cf.patch
@@ -0,0 +1,53 @@
+From 15b081cc8bead80c493ab83369ecb3345a24a3dc Mon Sep 17 00:00:00 2001
+From: Paul Eggleton <paul.eggleton@linux.microsoft.com>
+Date: Tue, 16 Jun 2020 03:57:25 +0000
+Subject: [PATCH] build.c: ignore return of 1 from tar -cf
+
+When running do_package_write_deb, we have trees of hardlinked files
+such as the dbg source files in ${PN}-dbg. If something makes another
+copy of one of those files (or deletes one), the number of links a file
+has changes and tar can notice this, e.g.:
+
+| DEBUG: Executing python function do_package_deb
+| dpkg-deb: building package `sed-ptest' in `/media/build1/poky/build/tmp/work/i586-poky-linux/sed/4.2.2-r0/deploy-debs/i586/sed-ptest_4.2.2-r0.3_i386.deb'.
+| tar: ./usr/lib/sed/ptest/testsuite/tst-regex2: file changed as we read it
+| dpkg-deb: error: subprocess tar -cf returned error exit status 1
+
+Tar returns an error of 1 when files 'change' and other errors codes
+in other error cases. We tweak dpkg-deb here so that it ignores an exit
+code of 1 from tar. The files don't really change (and we have locking in
+place to avoid that kind of issue).
+
+Upstream-Status: Inappropriate [OE specific]
+
+Original patch by RP 2015/3/27, rebased by Paul Eggleton
+
+Signed-off-by: Paul Eggleton <paul.eggleton@microsoft.com>
+
+---
+ dpkg-deb/build.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/dpkg-deb/build.c b/dpkg-deb/build.c
+index 8436839cd..6b44a36f7 100644
+--- a/dpkg-deb/build.c
++++ b/dpkg-deb/build.c
+@@ -434,6 +434,7 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder,
+ {
+ int pipe_filenames[2], pipe_tarball[2];
+ pid_t pid_tar, pid_comp;
++ int rc;
+
+ /* Fork off a tar. We will feed it a list of filenames on stdin later. */
+ m_pipe(pipe_filenames);
+@@ -486,7 +487,9 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder,
+ /* All done, clean up wait for tar and <compress> to finish their job. */
+ close(pipe_filenames[1]);
+ subproc_reap(pid_comp, _("<compress> from tar -cf"), 0);
+- subproc_reap(pid_tar, "tar -cf", 0);
++ rc = subproc_reap(pid_tar, "tar -cf", SUBPROC_RETERROR);
++ if (rc && rc != 1)
++ ohshite(_("subprocess %s returned error exit status %d"), "tar -cf", rc);
+ }
+
+ static time_t
diff --git a/meta/recipes-devtools/dpkg/dpkg/tweak-options-require-tar-1.27.patch b/meta/recipes-devtools/dpkg/dpkg/tweak-options-require-tar-1.27.patch
deleted file mode 100644
index e9119918b1..0000000000
--- a/meta/recipes-devtools/dpkg/dpkg/tweak-options-require-tar-1.27.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-GNU tar >= 1.27 is required for --owner=NAME:ID and --group=NAME:ID. And fails
-to build .deb packages with error:
-
-| dpkg-deb: building package 'linux-libc-headers-dbg' in '.../tmp/work/i586-poky-linux/linux-libc-headers/4.19-r0/deploy-debs/i586/linux-libc-headers-dbg_ 4.19-r0.0_i386.deb'.
-| tar: root\:0: Invalid owner
-| tar: Error is not recoverable: exiting now
-| dpkg-deb: error: tar -cf subprocess returned error exit status 2
-
-Tweak tar options in dpkg-deb source code to make it work on old machines.
-
-Upstream-Status: Inappropriate [cross build specific]
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
-diff --git a/dpkg-deb/build.c b/dpkg-deb/build.c
-index 68d187511..86fe22e25 100644
---- a/dpkg-deb/build.c
-+++ b/dpkg-deb/build.c
-@@ -462,7 +462,7 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder,
- if (options->mode)
- command_add_args(&cmd, "--mode", options->mode, NULL);
- if (options->root_owner_group)
-- command_add_args(&cmd, "--owner", "root:0", "--group", "root:0", NULL);
-+ command_add_args(&cmd, "--owner", "root", "--group", "root", NULL);
- command_add_args(&cmd, "--null", "--no-unquote", "--no-recursion",
- "-T", "-", NULL);
- command_exec(&cmd);
diff --git a/meta/recipes-devtools/dpkg/dpkg_1.19.7.bb b/meta/recipes-devtools/dpkg/dpkg_1.20.5.bb
index e9dec337b3..d97b69c0b9 100644
--- a/meta/recipes-devtools/dpkg/dpkg_1.19.7.bb
+++ b/meta/recipes-devtools/dpkg/dpkg_1.20.5.bb
@@ -1,7 +1,7 @@
require dpkg.inc
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-SRC_URI = "${DEBIAN_MIRROR}/main/d/${BPN}/${BPN}_${PV}.tar.xz \
+SRC_URI = "git://salsa.debian.org/dpkg-team/dpkg.git;protocol=https \
file://noman.patch \
file://remove-tar-no-timestamp.patch \
file://arch_pm.patch \
@@ -13,10 +13,11 @@ SRC_URI = "${DEBIAN_MIRROR}/main/d/${BPN}/${BPN}_${PV}.tar.xz \
file://0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch \
file://0001-dpkg-Support-muslx32-build.patch \
file://pager.patch \
+ file://0001-Add-support-for-riscv32-CPU.patch \
"
-SRC_URI_append_class-native = " \
- file://tweak-options-require-tar-1.27.patch \
-"
-SRC_URI[md5sum] = "60f57c5494e6dfa177504d47bfa0e383"
-SRC_URI[sha256sum] = "4c27fededf620c0aa522fff1a48577ba08144445341257502e7730f2b1a296e8"
+SRC_URI_append_class-native = " file://0001-build.c-ignore-return-of-1-from-tar-cf.patch"
+
+SRCREV = "823a67d67538b1b403a32d1fef40e6e228265566"
+
+S = "${WORKDIR}/git"
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-fix-up-check-for-hardlinks-always-false-if-inode-0xF.patch b/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-fix-up-check-for-hardlinks-always-false-if-inode-0xF.patch
new file mode 100644
index 0000000000..0e8cbad25a
--- /dev/null
+++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-fix-up-check-for-hardlinks-always-false-if-inode-0xF.patch
@@ -0,0 +1,55 @@
+From dcb36fd007ddb32d8c5cfcf5e9ddb3d713d65396 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Tue, 21 Jul 2020 09:43:03 +0800
+Subject: [PATCH] fix up check for hardlinks always false if inode > 0xFFFFFFFF
+
+Since commit [382ed4a1 e2fsck: use proper types for variables][1]
+applied, it used ext2_ino_t instead of ino_t for referencing inode
+numbers, but the type of is_hardlink's `ino' should not be instead,
+The ext2_ino_t is 32bit, if inode > 0xFFFFFFFF, its value will be
+truncated.
+
+Add a debug printf to show the value of inode, when it check for hardlink
+files, it will always return false if inode > 0xFFFFFFFF
+|--- a/misc/create_inode.c
+|+++ b/misc/create_inode.c
+|@@ -605,6 +605,7 @@ static int is_hardlink(struct hdlinks_s *hdlinks, dev_t dev, ext2_ino_t ino)
+| {
+| int i;
+|
+|+ printf("%s %d, %lX, %lX\n", __FUNCTION__, __LINE__, hdlinks->hdl[i].src_ino, ino);
+| for (i = 0; i < hdlinks->count; i++) {
+| if (hdlinks->hdl[i].src_dev == dev &&
+| hdlinks->hdl[i].src_ino == ino)
+
+Here is debug message:
+is_hardlink 608, 2913DB886, 913DB886
+
+The length of ext2_ino_t is 32bit (typedef __u32 __bitwise ext2_ino_t;),
+and ino_t is 64bit on 64bit system (such as x86-64), recover `ino' to ino_t.
+
+[1] https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/commit/?id=382ed4a1c2b60acb9db7631e86dda207bde6076e
+
+Upstream-Status: Submitted [https://github.com/tytso/e2fsprogs/pull/48]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ misc/create_inode.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/misc/create_inode.c b/misc/create_inode.c
+index e8d1df6b..837f3875 100644
+--- a/misc/create_inode.c
++++ b/misc/create_inode.c
+@@ -601,7 +601,7 @@ out:
+ return err;
+ }
+
+-static int is_hardlink(struct hdlinks_s *hdlinks, dev_t dev, ext2_ino_t ino)
++static int is_hardlink(struct hdlinks_s *hdlinks, dev_t dev, ino_t ino)
+ {
+ int i;
+
+--
+2.18.2
+
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-misc-create_inode.c-set-dir-s-mode-correctly.patch b/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-misc-create_inode.c-set-dir-s-mode-correctly.patch
deleted file mode 100644
index fc4a540986..0000000000
--- a/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-misc-create_inode.c-set-dir-s-mode-correctly.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From f6d188580c2c9599319076fee22f2424652c711c Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Wed, 13 Sep 2017 19:55:35 -0700
-Subject: [PATCH] misc/create_inode.c: set dir's mode correctly
-
-The dir's mode has been set by ext2fs_mkdir() with umask, so
-reset it to the source's mode in set_inode_extra().
-
-Fixed when source dir's mode is 521, but tarball would be 721, this was
-incorrect.
-
-Upstream-Status: Submitted
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
----
- misc/create_inode.c | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/misc/create_inode.c b/misc/create_inode.c
-index 8ce3faf..50fbaa8 100644
---- a/misc/create_inode.c
-+++ b/misc/create_inode.c
-@@ -116,7 +116,14 @@ static errcode_t set_inode_extra(ext2_filsys fs, ext2_ino_t ino,
-
- inode.i_uid = st->st_uid;
- inode.i_gid = st->st_gid;
-- inode.i_mode |= st->st_mode;
-+ /*
-+ * The dir's mode has been set by ext2fs_mkdir() with umask, so
-+ * reset it to the source's mode
-+ */
-+ if S_ISDIR(st->st_mode)
-+ inode.i_mode = LINUX_S_IFDIR | st->st_mode;
-+ else
-+ inode.i_mode |= st->st_mode;
- inode.i_atime = st->st_atime;
- inode.i_mtime = st->st_mtime;
- inode.i_ctime = st->st_ctime;
---
-2.10.2
-
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs/e2fsprogs-fix-missing-check-for-permission-denied.patch b/meta/recipes-devtools/e2fsprogs/e2fsprogs/e2fsprogs-fix-missing-check-for-permission-denied.patch
index 4d335af4cf..284ac90196 100644
--- a/meta/recipes-devtools/e2fsprogs/e2fsprogs/e2fsprogs-fix-missing-check-for-permission-denied.patch
+++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs/e2fsprogs-fix-missing-check-for-permission-denied.patch
@@ -1,4 +1,4 @@
-From e8331a76983e839a3d193446ab8ae9c1b09daa07 Mon Sep 17 00:00:00 2001
+From b55dfb4b62e507ae4f0814aec7597b56f9d6292a Mon Sep 17 00:00:00 2001
From: Jackie Huang <jackie.huang@windriver.com>
Date: Wed, 10 Aug 2016 11:19:44 +0800
Subject: [PATCH] Fix missing check for permission denied.
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch b/meta/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch
index 95e6a7a2d5..aac88eed98 100644
--- a/meta/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch
+++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch
@@ -1,4 +1,4 @@
-From de6d6f0dd010f5b9d917553acb9430278f448f23 Mon Sep 17 00:00:00 2001
+From 9aa68ad81b97847dda3493145f4b0a7cc580c551 Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@intel.com>
Date: Mon, 23 Dec 2013 13:38:34 +0000
Subject: [PATCH] e2fsprogs: silence debugfs
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.4.bb b/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.6.bb
index 6e69eea21c..15054768dd 100644
--- a/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.4.bb
+++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.6.bb
@@ -4,16 +4,16 @@ SRC_URI += "file://remove.ldconfig.call.patch \
file://run-ptest \
file://ptest.patch \
file://mkdir_p.patch \
- file://0001-misc-create_inode.c-set-dir-s-mode-correctly.patch \
file://0001-configure.ac-correct-AM_GNU_GETTEXT.patch \
file://0001-intl-do-not-try-to-use-gettext-defines-that-no-longe.patch \
+ file://0001-fix-up-check-for-hardlinks-always-false-if-inode-0xF.patch \
"
SRC_URI_append_class-native = " file://e2fsprogs-fix-missing-check-for-permission-denied.patch \
file://quiet-debugfs.patch \
"
-SRCREV = "984ff8d6a0a1d5dc300505f67b38ed5047d51dac"
+SRCREV = "506d96fe640f76ab04276e0a7c578aa108ce19f8"
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+\.\d+(\.\d+)*)$"
EXTRA_OECONF += "--libdir=${base_libdir} --sbindir=${base_sbindir} \
diff --git a/meta/recipes-devtools/elfutils/elfutils_0.178.bb b/meta/recipes-devtools/elfutils/elfutils_0.180.bb
index 8f5deb2c62..61e46a4ed7 100644
--- a/meta/recipes-devtools/elfutils/elfutils_0.178.bb
+++ b/meta/recipes-devtools/elfutils/elfutils_0.180.bb
@@ -15,33 +15,20 @@ SRC_URI = "https://sourceware.org/elfutils/ftp/${PV}/${BP}.tar.bz2 \
file://0006-Fix-build-on-aarch64-musl.patch \
file://0001-libasm-may-link-with-libbz2-if-found.patch \
file://0001-libelf-elf_end.c-check-data_list.data.d.d_buf-before.patch \
- file://debian/hppa_backend.diff \
- file://debian/arm_backend.diff \
- file://debian/mips_backend.diff \
- file://debian/mips_readelf_w.patch \
- file://debian/kfreebsd_path.patch \
- file://debian/0001-Ignore-differences-between-mips-machine-identifiers.patch \
- file://debian/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch \
- file://debian/0003-Add-mips-n64-relocation-format-hack.patch \
- file://debian/hurd_path.patch \
- file://debian/ignore_strmerge.diff \
- file://debian/disable_werror.patch \
- file://debian/testsuite-ignore-elflint.diff \
- file://debian/mips_cfi.patch \
- file://debian/0001-fix-compile-failure-with-debian-patches.patch \
file://0001-skip-the-test-when-gcc-not-deployed.patch \
file://0001-ppc_initreg.c-Incliude-asm-ptrace.h-for-pt_regs-defi.patch \
file://run-ptest \
file://ptest.patch \
+ file://0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch \
"
SRC_URI_append_libc-musl = " \
file://0001-musl-obstack-fts.patch \
file://0002-musl-libs.patch \
file://0003-musl-utils.patch \
file://0004-Fix-error-on-musl.patch \
+ file://0015-config-eu.am-do-not-use-Werror.patch \
"
-SRC_URI[md5sum] = "5480d0b7174446aba13a6adde107287f"
-SRC_URI[sha256sum] = "31e7a00e96d4e9c4bda452e1f2cdac4daf8abd24f5e154dee232131899f3a0f2"
+SRC_URI[sha256sum] = "b827b6e35c59d188ba97d7cf148fa8dc6f5c68eb6c5981888dfdbb758c0b569d"
inherit autotools gettext ptest pkgconfig
@@ -56,7 +43,7 @@ PACKAGECONFIG[xz] = "--with-lzma,--without-lzma,xz"
RDEPENDS_${PN}-ptest += "libasm libelf bash make coreutils ${PN}-binutils"
-EXTRA_OECONF_append_class-target += "--disable-tests-rpath"
+EXTRA_OECONF_append_class-target = " --disable-tests-rpath"
RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils"
@@ -127,6 +114,8 @@ FILES_libdw = "${libdir}/libdw-${PV}.so ${libdir}/libdw.so.* ${libdir}/elfutils
# The package contains symlinks that trip up insane
INSANE_SKIP_${MLPREFIX}libdw = "dev-so"
+# The nlist binary in the tests uses explicitly minimal compiler flags
+INSANE_SKIP_${PN}-ptest += "ldflags"
# avoid stripping some generated binaries otherwise some of the tests such as test-nlist,
# run-strip-reloc.sh, run-strip-strmerge.sh and so on will fail
diff --git a/meta/recipes-devtools/elfutils/files/0001-musl-obstack-fts.patch b/meta/recipes-devtools/elfutils/files/0001-musl-obstack-fts.patch
index f751a2ecdb..2450b0d6b8 100644
--- a/meta/recipes-devtools/elfutils/files/0001-musl-obstack-fts.patch
+++ b/meta/recipes-devtools/elfutils/files/0001-musl-obstack-fts.patch
@@ -1,7 +1,7 @@
-From 8ccf3d92b8766b53f203df7e01b489604ef851f3 Mon Sep 17 00:00:00 2001
+From 1ec7b2208803e0fbdcbe6c07b849e7dc4d9fa8a2 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Fri, 23 Aug 2019 10:17:25 +0800
-Subject: [PATCH 1/4] musl-obstack-fts
+Subject: [PATCH] musl-obstack-fts
Look for libfts and libobstack during configure, these
libraries are external to libc when using musl, whereas
@@ -20,10 +20,10 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
3 files changed, 58 insertions(+), 4 deletions(-)
diff --git a/configure.ac b/configure.ac
-index cad7b2b..6d4229b 100644
+index e9649c2..03643c8 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -529,6 +529,60 @@ else
+@@ -538,6 +538,60 @@ else
fi
AC_SUBST([argp_LDADD])
@@ -122,6 +122,3 @@ index 13d9bda..d5a4f7d 100644
unstrip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD)
stack_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) $(demanglelib)
elfcompress_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD)
---
-2.17.1
-
diff --git a/meta/recipes-devtools/elfutils/files/0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch b/meta/recipes-devtools/elfutils/files/0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch
new file mode 100644
index 0000000000..481b912387
--- /dev/null
+++ b/meta/recipes-devtools/elfutils/files/0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch
@@ -0,0 +1,27 @@
+From 1ca86294ee5454592c9ad855e13080509d8a92d3 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Tue, 23 Jun 2020 07:49:35 +0000
+Subject: [PATCH] tests/Makefile.am: compile test_nlist with standard CFLAGS
+
+Otherwise, it will contain build paths in it and wont
+be reproducible.
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ tests/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index 8048b69..d2b28a4 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -86,7 +86,7 @@ backtrace-child-biarch$(EXEEXT): backtrace-child.c
+ test-nlist$(EXEEXT): test-nlist.c
+ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) \
+- $(test_nlist_CFLAGS) $(test_nlist_LDADD) -o $@ $<
++ $(CFLAGS) $(test_nlist_LDADD) -o $@ $<
+
+ TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \
+ update1 update2 update3 update4 \
diff --git a/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch b/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch
index cf14683864..d5ec0ec9e5 100644
--- a/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch
+++ b/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch
@@ -1,7 +1,7 @@
-From ea908c7009de5a208383abf4bec4c6b3d9519ca3 Mon Sep 17 00:00:00 2001
+From 9a57efb0f826a70ae360aa55504ee2de656b92b6 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Fri, 23 Aug 2019 10:18:47 +0800
-Subject: [PATCH 2/4] musl-libs
+Subject: [PATCH] musl-libs
Collection of fixes needed to compile libelf and other libraries
provided by elfutils for musl targets
@@ -104,7 +104,7 @@ index 7bcf61c..11dcc8b 100644
return elf_errmsg (error & 0xffff);
case OTHER_ERROR (LIBDW):
diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c
-index d46ab5a..1c3faee 100644
+index 0434f1e..5afaee8 100644
--- a/libdwfl/linux-kernel-modules.c
+++ b/libdwfl/linux-kernel-modules.c
@@ -50,6 +50,7 @@
@@ -116,7 +116,7 @@ index d46ab5a..1c3faee 100644
/* If fts.h is included before config.h, its indirect inclusions may not
give us the right LFS aliases of these functions, so map them manually. */
diff --git a/libelf/elf.h b/libelf/elf.h
-index bed273d..be228e6 100644
+index 197b557..8e5b94c 100644
--- a/libelf/elf.h
+++ b/libelf/elf.h
@@ -21,7 +21,9 @@
@@ -130,9 +130,9 @@ index bed273d..be228e6 100644
/* Standard ELF types. */
-@@ -4029,6 +4031,7 @@ enum
- #define R_NDS32_TLS_TPOFF 102
- #define R_NDS32_TLS_DESC 119
+@@ -4103,6 +4105,7 @@ enum
+ #define R_ARC_TLS_LE_S9 0x4a
+ #define R_ARC_TLS_LE_32 0x4b
-__END_DECLS
-
@@ -140,6 +140,3 @@ index bed273d..be228e6 100644
+}
+#endif
#endif /* elf.h */
---
-2.17.1
-
diff --git a/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch b/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch
index 79c9d9ad57..4f28d9d027 100644
--- a/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch
+++ b/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch
@@ -1,7 +1,7 @@
-From 94028b16e56c8eef1aa02dcc4da268a0e471b4ea Mon Sep 17 00:00:00 2001
+From 6923400b777d4ba6f040c4006413bf997326460f Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Fri, 23 Aug 2019 10:19:48 +0800
-Subject: [PATCH 3/4] musl-utils
+Subject: [PATCH] musl-utils
Provide missing defines which otherwise are available on glibc system headers
@@ -161,6 +161,3 @@ index 9b8c09a..1fb5063 100644
/* Name and version of program. */
ARGP_PROGRAM_VERSION_HOOK_DEF = print_version;
---
-2.17.1
-
diff --git a/meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch b/meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch
index 1b2f9ed98b..481e4b38eb 100644
--- a/meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch
+++ b/meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch
@@ -1,7 +1,7 @@
-From 7ff8cbecde7455b530fa7894a78d2326799f2556 Mon Sep 17 00:00:00 2001
+From 48b769ab692c8f02c1ae467229fe3404f662098a Mon Sep 17 00:00:00 2001
From: Richard Purdie <richard.purdie@linuxfoundation.org>
Date: Wed, 1 May 2019 22:15:03 +0100
-Subject: [PATCH 4/4] Fix error on musl:
+Subject: [PATCH] Fix error on musl:
| ../../elfutils-0.176/tests/elfstrmerge.c: In function 'main':
| ../../elfutils-0.176/tests/elfstrmerge.c:370:60: error: 'ALLPERMS' undeclared (first use in this function); did you mean 'EPERM'?
@@ -34,6 +34,3 @@ index ba0d68d..1d2447f 100644
/* The original ELF file. */
static int fd = -1;
static Elf *elf = NULL;
---
-2.17.1
-
diff --git a/meta/recipes-devtools/elfutils/files/0015-config-eu.am-do-not-use-Werror.patch b/meta/recipes-devtools/elfutils/files/0015-config-eu.am-do-not-use-Werror.patch
new file mode 100644
index 0000000000..c3ae357265
--- /dev/null
+++ b/meta/recipes-devtools/elfutils/files/0015-config-eu.am-do-not-use-Werror.patch
@@ -0,0 +1,36 @@
+From dce2187dd8f592316357b200ebbe8dbed9ee65cb Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 22 Jun 2020 21:35:16 +0000
+Subject: [PATCH] config/eu.am: do not use -Werror
+
+Due to re-definition of error() on musl, gcc starts throwing
+errors where none happen with glibc. Since upstream is not
+likely to be interested in musl builds, lets just disable
+Werror.
+
+Upstream-Status: Inappropriate [oe core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ config/eu.am | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/config/eu.am b/config/eu.am
+index 6c3c444..3bc0dc9 100644
+--- a/config/eu.am
++++ b/config/eu.am
+@@ -73,7 +73,6 @@ AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \
+ -Wold-style-definition -Wstrict-prototypes -Wtrampolines \
+ $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \
+ $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \
+- $(if $($(*F)_no_Werror),,-Werror) \
+ $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
+ $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
+ $(if $($(*F)_no_Wpacked_not_aligned),-Wno-packed-not-aligned,) \
+@@ -83,7 +82,6 @@ AM_CXXFLAGS = -std=c++11 -Wall -Wshadow \
+ -Wtrampolines \
+ $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \
+ $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \
+- $(if $($(*F)_no_Werror),,-Werror) \
+ $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
+ $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
+ $(if $($(*F)_no_Wpacked_not_aligned),-Wno-packed-not-aligned,) \
diff --git a/meta/recipes-devtools/elfutils/files/debian/0001-Ignore-differences-between-mips-machine-identifiers.patch b/meta/recipes-devtools/elfutils/files/debian/0001-Ignore-differences-between-mips-machine-identifiers.patch
deleted file mode 100644
index a2983c5770..0000000000
--- a/meta/recipes-devtools/elfutils/files/debian/0001-Ignore-differences-between-mips-machine-identifiers.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 77cb4a53c270d5854d3af24f19547bc3de825233 Mon Sep 17 00:00:00 2001
-From: James Cowgill <james410@cowgill.org.uk>
-Date: Mon, 5 Jan 2015 15:16:58 +0000
-Subject: [PATCH 1/3] Ignore differences between mips machine identifiers
-
-Little endian binaries actually use EM_MIPS so you can't tell the endianness
-from the elf machine id. Also, the EM_MIPS_RS3_LE machine is dead anyway (the
-kernel will not load binaries containing it).
-
-Signed-off-by: James Cowgill <james410@cowgill.org.uk>
-
-Upstream-Status: Pending [from debian]
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- backends/mips_init.c | 6 +-----
- 1 file changed, 1 insertion(+), 5 deletions(-)
-
-Index: b/backends/mips_init.c
-===================================================================
---- a/backends/mips_init.c
-+++ b/backends/mips_init.c
-@@ -45,11 +45,7 @@ mips_init (Elf *elf __attribute__ ((unus
- return NULL;
-
- /* We handle it. */
-- if (machine == EM_MIPS)
-- eh->name = "MIPS R3000 big-endian";
-- else if (machine == EM_MIPS_RS3_LE)
-- eh->name = "MIPS R3000 little-endian";
--
-+ eh->name = "MIPS";
- mips_init_reloc (eh);
- HOOK (eh, reloc_simple_type);
- HOOK (eh, return_value_location);
diff --git a/meta/recipes-devtools/elfutils/files/debian/0001-fix-compile-failure-with-debian-patches.patch b/meta/recipes-devtools/elfutils/files/debian/0001-fix-compile-failure-with-debian-patches.patch
deleted file mode 100644
index 19a2015062..0000000000
--- a/meta/recipes-devtools/elfutils/files/debian/0001-fix-compile-failure-with-debian-patches.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 3f3e7b16934ec58ab47d2bdc9982f54a55b07534 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 21 Aug 2019 16:25:33 +0800
-Subject: [PATCH] fix compile failure with debian patches
-
-While applying debian patches, there is a compile failure
-...
-elfutils-0.177/backends/mips_init.c:48:5: error: 'Ebl' {aka 'struct ebl'} has no member named 'name'
-...
-
-Since upstream applied commit [b323391 libdwelf: Add dwelf_elf_e_machine_string
-and use it in readelf], it remove 'name' from 'struct ebl'
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- backends/mips_init.c | 1 -
- backends/parisc_init.c | 1 -
- 2 files changed, 2 deletions(-)
-
-diff --git a/backends/mips_init.c b/backends/mips_init.c
-index bce5abe..e1c65c8 100644
---- a/backends/mips_init.c
-+++ b/backends/mips_init.c
-@@ -45,7 +45,6 @@ mips_init (Elf *elf __attribute__ ((unused)),
- return NULL;
-
- /* We handle it. */
-- eh->name = "MIPS";
- mips_init_reloc (eh);
- HOOK (eh, reloc_simple_type);
- HOOK (eh, return_value_location);
-diff --git a/backends/parisc_init.c b/backends/parisc_init.c
-index f1e401c..97b4a8c 100644
---- a/backends/parisc_init.c
-+++ b/backends/parisc_init.c
-@@ -56,7 +56,6 @@ parisc_init (Elf *elf __attribute__ ((unused)),
- pa64 = 1;
- }
- /* We handle it. */
-- eh->name = "PA-RISC";
- parisc_init_reloc (eh);
- HOOK (eh, reloc_simple_type);
- HOOK (eh, machine_flag_check);
---
-2.7.4
-
diff --git a/meta/recipes-devtools/elfutils/files/debian/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch b/meta/recipes-devtools/elfutils/files/debian/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch
deleted file mode 100644
index aee00cba14..0000000000
--- a/meta/recipes-devtools/elfutils/files/debian/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch
+++ /dev/null
@@ -1,171 +0,0 @@
-From fdaab18a65ed2529656baa64cb6169f34d7e507b Mon Sep 17 00:00:00 2001
-From: James Cowgill <james410@cowgill.org.uk>
-Date: Mon, 5 Jan 2015 15:17:01 +0000
-Subject: [PATCH 2/3] Add support for mips64 abis in mips_retval.c
-
-Signed-off-by: James Cowgill <james410@cowgill.org.uk>
-
-Upstream-Status: Pending [from debian]
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- backends/mips_retval.c | 104 ++++++++++++++++++++++++++++++++++++++++++++-----
- 1 file changed, 94 insertions(+), 10 deletions(-)
-
-diff --git a/backends/mips_retval.c b/backends/mips_retval.c
-index 33f12a7..d5c6ef0 100644
---- a/backends/mips_retval.c
-+++ b/backends/mips_retval.c
-@@ -91,6 +91,8 @@ enum mips_abi find_mips_abi(Elf *elf)
- default:
- if ((elf_flags & EF_MIPS_ABI2))
- return MIPS_ABI_N32;
-+ else if ((ehdr->e_ident[EI_CLASS] == ELFCLASS64))
-+ return MIPS_ABI_N64;
- }
-
- /* GCC creates a pseudo-section whose name describes the ABI. */
-@@ -195,6 +197,57 @@ static const Dwarf_Op loc_aggregate[] =
- };
- #define nloc_aggregate 1
-
-+/* Test if a struct member is a float */
-+static int is_float_child(Dwarf_Die *childdie)
-+{
-+ /* Test if this is actually a struct member */
-+ if (dwarf_tag(childdie) != DW_TAG_member)
-+ return 0;
-+
-+ /* Get type of member */
-+ Dwarf_Attribute attr_mem;
-+ Dwarf_Die child_type_mem;
-+ Dwarf_Die *child_typedie =
-+ dwarf_formref_die(dwarf_attr_integrate(childdie,
-+ DW_AT_type,
-+ &attr_mem), &child_type_mem);
-+
-+ if (dwarf_tag(child_typedie) != DW_TAG_base_type)
-+ return 0;
-+
-+ /* Get base subtype */
-+ Dwarf_Word encoding;
-+ if (dwarf_formudata (dwarf_attr_integrate (child_typedie,
-+ DW_AT_encoding,
-+ &attr_mem), &encoding) != 0)
-+ return 0;
-+
-+ return encoding == DW_ATE_float;
-+}
-+
-+/* Returns the number of fpregs which can be returned in the given struct */
-+static int get_struct_fpregs(Dwarf_Die *structtypedie)
-+{
-+ Dwarf_Die child_mem;
-+ int fpregs = 0;
-+
-+ /* Get first structure member */
-+ if (dwarf_child(structtypedie, &child_mem) != 0)
-+ return 0;
-+
-+ do
-+ {
-+ /* Ensure this register is a float */
-+ if (!is_float_child(&child_mem))
-+ return 0;
-+
-+ fpregs++;
-+ }
-+ while (dwarf_siblingof (&child_mem, &child_mem) == 0);
-+
-+ return fpregs;
-+}
-+
- int
- mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp)
- {
-@@ -240,6 +293,7 @@ mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp)
- tag = dwarf_tag (typedie);
- }
-
-+ Dwarf_Word size;
- switch (tag)
- {
- case -1:
-@@ -258,8 +312,6 @@ mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp)
- case DW_TAG_enumeration_type:
- case DW_TAG_pointer_type:
- case DW_TAG_ptr_to_member_type:
-- {
-- Dwarf_Word size;
- if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_byte_size,
- &attr_mem), &size) != 0)
- {
-@@ -289,7 +341,7 @@ mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp)
- if (size <= 4*regsize && abi == MIPS_ABI_O32)
- return nloc_fpregquad;
-
-- goto aggregate;
-+ goto large;
- }
- }
- *locp = ABI_LOC(loc_intreg, regsize);
-@@ -298,18 +350,50 @@ mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp)
- if (size <= 2*regsize)
- return nloc_intregpair;
-
-- /* Else fall through. Shouldn't happen though (at least with gcc) */
-- }
-+ /* Else pass in memory. Shouldn't happen though (at least with gcc) */
-+ goto large;
-
- case DW_TAG_structure_type:
- case DW_TAG_class_type:
- case DW_TAG_union_type:
-- case DW_TAG_array_type:
-- aggregate:
-- /* XXX TODO: Can't handle structure return with other ABI's yet :-/ */
-- if ((abi != MIPS_ABI_O32) && (abi != MIPS_ABI_O64))
-- return -2;
-+ /* Handle special cases for structures <= 128 bytes in newer ABIs */
-+ if (abi == MIPS_ABI_EABI32 || abi == MIPS_ABI_EABI64 ||
-+ abi == MIPS_ABI_N32 || abi == MIPS_ABI_N64)
-+ {
-+ if (dwarf_aggregate_size (typedie, &size) == 0 && size <= 16)
-+ {
-+ /*
-+ * Special case in N64 / N32 -
-+ * structures containing only floats are returned in fp regs.
-+ * Everything else is returned in integer regs.
-+ */
-+ if (tag != DW_TAG_union_type &&
-+ (abi == MIPS_ABI_N32 || abi == MIPS_ABI_N64))
-+ {
-+ int num_fpregs = get_struct_fpregs(typedie);
-+ if (num_fpregs == 1 || num_fpregs == 2)
-+ {
-+ *locp = loc_fpreg;
-+ if (num_fpregs == 1)
-+ return nloc_fpreg;
-+ else
-+ return nloc_fpregpair;
-+ }
-+ }
-+
-+ *locp = loc_intreg;
-+ if (size <= 8)
-+ return nloc_intreg;
-+ else
-+ return nloc_intregpair;
-+ }
-+ }
-+
-+ /* Fallthrough to handle large types */
-
-+ case DW_TAG_array_type:
-+ large:
-+ /* Return large structures in memory */
- *locp = loc_aggregate;
- return nloc_aggregate;
- }
---
-2.1.4
-
diff --git a/meta/recipes-devtools/elfutils/files/debian/0003-Add-mips-n64-relocation-format-hack.patch b/meta/recipes-devtools/elfutils/files/debian/0003-Add-mips-n64-relocation-format-hack.patch
deleted file mode 100644
index c949e96533..0000000000
--- a/meta/recipes-devtools/elfutils/files/debian/0003-Add-mips-n64-relocation-format-hack.patch
+++ /dev/null
@@ -1,229 +0,0 @@
-From 59d4b8c48e5040af7e02b34eb26ea602ec82a38e Mon Sep 17 00:00:00 2001
-From: James Cowgill <james410@cowgill.org.uk>
-Date: Mon, 5 Jan 2015 15:17:02 +0000
-Subject: [PATCH 3/3] Add mips n64 relocation format hack
-
-MIPSEL N64 ELF files use a slightly different format for storing relocation
-entries which is incompatible with the normal R_SYM / R_INFO macros.
-To workaround this, we rearrange the bytes in the relocation's r_info field
-when reading and writing the relocations.
-
-This patch also ensures that strip.c sets the correct value of e_machine
-before manipulating relocations so that these changes take effect.
-
-Signed-off-by: James Cowgill <james410@cowgill.org.uk>
-
-Upstream-Status: Pending [from debian]
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- libelf/gelf_getrel.c | 25 +++++++++++++++++++++++--
- libelf/gelf_getrela.c | 25 +++++++++++++++++++++++--
- libelf/gelf_update_rel.c | 20 +++++++++++++++++++-
- libelf/gelf_update_rela.c | 20 +++++++++++++++++++-
- src/strip.c | 17 +++++++++++++++++
- 5 files changed, 101 insertions(+), 6 deletions(-)
-
-Index: elfutils-0.175/libelf/gelf_getrel.c
-===================================================================
---- elfutils-0.175.orig/libelf/gelf_getrel.c
-+++ elfutils-0.175/libelf/gelf_getrel.c
-@@ -36,6 +36,7 @@
-
- #include "libelfP.h"
-
-+#define EF_MIPS_ABI 0x0000F000
-
- GElf_Rel *
- gelf_getrel (Elf_Data *data, int ndx, GElf_Rel *dst)
-@@ -89,8 +90,28 @@ gelf_getrel (Elf_Data *data, int ndx, GE
- result = NULL;
- }
- else
-- result = memcpy (dst, &((Elf64_Rel *) data_scn->d.d_buf)[ndx],
-- sizeof (Elf64_Rel));
-+ {
-+ GElf_Ehdr hdr;
-+ result = memcpy (dst, &((Elf64_Rel *) data_scn->d.d_buf)[ndx],
-+ sizeof (Elf64_Rel));
-+
-+ if (gelf_getehdr(scn->elf, &hdr) != NULL &&
-+ hdr.e_ident[EI_DATA] == ELFDATA2LSB &&
-+ hdr.e_machine == EM_MIPS &&
-+ (hdr.e_flags & EF_MIPS_ABI) == 0)
-+ {
-+ /*
-+ * The relocation format is mangled on MIPSEL N64
-+ * We'll adjust it so at least R_SYM will work on it
-+ */
-+ GElf_Xword r_info = dst->r_info;
-+ dst->r_info = (r_info << 32) |
-+ ((r_info >> 8) & 0xFF000000) |
-+ ((r_info >> 24) & 0x00FF0000) |
-+ ((r_info >> 40) & 0x0000FF00) |
-+ ((r_info >> 56) & 0x000000FF);
-+ }
-+ }
- }
-
- rwlock_unlock (scn->elf->lock);
-Index: elfutils-0.175/libelf/gelf_getrela.c
-===================================================================
---- elfutils-0.175.orig/libelf/gelf_getrela.c
-+++ elfutils-0.175/libelf/gelf_getrela.c
-@@ -36,6 +36,7 @@
-
- #include "libelfP.h"
-
-+#define EF_MIPS_ABI 0x0000F000
-
- GElf_Rela *
- gelf_getrela (Elf_Data *data, int ndx, GElf_Rela *dst)
-@@ -90,8 +91,28 @@ gelf_getrela (Elf_Data *data, int ndx, G
- result = NULL;
- }
- else
-- result = memcpy (dst, &((Elf64_Rela *) data_scn->d.d_buf)[ndx],
-- sizeof (Elf64_Rela));
-+ {
-+ GElf_Ehdr hdr;
-+ result = memcpy (dst, &((Elf64_Rela *) data_scn->d.d_buf)[ndx],
-+ sizeof (Elf64_Rela));
-+
-+ if (gelf_getehdr(scn->elf, &hdr) != NULL &&
-+ hdr.e_ident[EI_DATA] == ELFDATA2LSB &&
-+ hdr.e_machine == EM_MIPS &&
-+ (hdr.e_flags & EF_MIPS_ABI) == 0)
-+ {
-+ /*
-+ * The relocation format is mangled on MIPSEL N64
-+ * We'll adjust it so at least R_SYM will work on it
-+ */
-+ GElf_Xword r_info = dst->r_info;
-+ dst->r_info = (r_info << 32) |
-+ ((r_info >> 8) & 0xFF000000) |
-+ ((r_info >> 24) & 0x00FF0000) |
-+ ((r_info >> 40) & 0x0000FF00) |
-+ ((r_info >> 56) & 0x000000FF);
-+ }
-+ }
- }
-
- rwlock_unlock (scn->elf->lock);
-Index: elfutils-0.175/libelf/gelf_update_rel.c
-===================================================================
---- elfutils-0.175.orig/libelf/gelf_update_rel.c
-+++ elfutils-0.175/libelf/gelf_update_rel.c
-@@ -36,6 +36,7 @@
-
- #include "libelfP.h"
-
-+#define EF_MIPS_ABI 0x0000F000
-
- int
- gelf_update_rel (Elf_Data *dst, int ndx, GElf_Rel *src)
-@@ -86,6 +87,9 @@ gelf_update_rel (Elf_Data *dst, int ndx,
- }
- else
- {
-+ GElf_Ehdr hdr;
-+ GElf_Rel value = *src;
-+
- /* Check whether we have to resize the data buffer. */
- if (INVALID_NDX (ndx, Elf64_Rel, &data_scn->d))
- {
-@@ -93,7 +97,21 @@ gelf_update_rel (Elf_Data *dst, int ndx,
- goto out;
- }
-
-- ((Elf64_Rel *) data_scn->d.d_buf)[ndx] = *src;
-+ if (gelf_getehdr(scn->elf, &hdr) != NULL &&
-+ hdr.e_ident[EI_DATA] == ELFDATA2LSB &&
-+ hdr.e_machine == EM_MIPS &&
-+ (hdr.e_flags & EF_MIPS_ABI) == 0)
-+ {
-+ /* Undo the MIPSEL N64 hack from gelf_getrel */
-+ GElf_Xword r_info = value.r_info;
-+ value.r_info = (r_info >> 32) |
-+ ((r_info << 8) & 0x000000FF00000000) |
-+ ((r_info << 24) & 0x0000FF0000000000) |
-+ ((r_info << 40) & 0x00FF000000000000) |
-+ ((r_info << 56) & 0xFF00000000000000);
-+ }
-+
-+ ((Elf64_Rel *) data_scn->d.d_buf)[ndx] = value;
- }
-
- result = 1;
-Index: elfutils-0.175/libelf/gelf_update_rela.c
-===================================================================
---- elfutils-0.175.orig/libelf/gelf_update_rela.c
-+++ elfutils-0.175/libelf/gelf_update_rela.c
-@@ -36,6 +36,7 @@
-
- #include "libelfP.h"
-
-+#define EF_MIPS_ABI 0x0000F000
-
- int
- gelf_update_rela (Elf_Data *dst, int ndx, GElf_Rela *src)
-@@ -89,6 +90,9 @@ gelf_update_rela (Elf_Data *dst, int ndx
- }
- else
- {
-+ GElf_Ehdr hdr;
-+ GElf_Rela value = *src;
-+
- /* Check whether we have to resize the data buffer. */
- if (INVALID_NDX (ndx, Elf64_Rela, &data_scn->d))
- {
-@@ -96,7 +100,21 @@ gelf_update_rela (Elf_Data *dst, int ndx
- goto out;
- }
-
-- ((Elf64_Rela *) data_scn->d.d_buf)[ndx] = *src;
-+ if (gelf_getehdr(scn->elf, &hdr) != NULL &&
-+ hdr.e_ident[EI_DATA] == ELFDATA2LSB &&
-+ hdr.e_machine == EM_MIPS &&
-+ (hdr.e_flags & EF_MIPS_ABI) == 0)
-+ {
-+ /* Undo the MIPSEL N64 hack from gelf_getrel */
-+ GElf_Xword r_info = value.r_info;
-+ value.r_info = (r_info >> 32) |
-+ ((r_info << 8) & 0x000000FF00000000) |
-+ ((r_info << 24) & 0x0000FF0000000000) |
-+ ((r_info << 40) & 0x00FF000000000000) |
-+ ((r_info << 56) & 0xFF00000000000000);
-+ }
-+
-+ ((Elf64_Rela *) data_scn->d.d_buf)[ndx] = value;
- }
-
- result = 1;
-Index: elfutils-0.175/src/strip.c
-===================================================================
---- elfutils-0.175.orig/src/strip.c
-+++ elfutils-0.175/src/strip.c
-@@ -1062,6 +1062,23 @@ handle_elf (int fd, Elf *elf, const char
- goto fail;
- }
-
-+ /* Copy identity part of the ELF header now */
-+ newehdr = gelf_getehdr (newelf, &newehdr_mem);
-+ if (newehdr == NULL)
-+ INTERNAL_ERROR (fname);
-+
-+ memcpy (newehdr->e_ident, ehdr->e_ident, EI_NIDENT);
-+ newehdr->e_type = ehdr->e_type;
-+ newehdr->e_machine = ehdr->e_machine;
-+ newehdr->e_version = ehdr->e_version;
-+
-+ if (gelf_update_ehdr (newelf, newehdr) == 0)
-+ {
-+ error (0, 0, gettext ("%s: error while creating ELF header: %s"),
-+ fname, elf_errmsg (-1));
-+ return 1;
-+ }
-+
- /* Copy over the old program header if needed. */
- if (phnum > 0)
- {
diff --git a/meta/recipes-devtools/elfutils/files/debian/arm_backend.diff b/meta/recipes-devtools/elfutils/files/debian/arm_backend.diff
deleted file mode 100644
index ba0ce33bd4..0000000000
--- a/meta/recipes-devtools/elfutils/files/debian/arm_backend.diff
+++ /dev/null
@@ -1,624 +0,0 @@
-From 4e6fededb3d8c90694c44214c862ac216a69ecae Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 21 Aug 2019 16:50:33 +0800
-Subject: [PATCH] arm_backend
-
-Upstream-Status: Pending [from debian]
-Rebase to 0.177
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- backends/arm_init.c | 18 ++++-
- backends/arm_regs.c | 132 ++++++++++++++++++++++++++++++++++++
- backends/arm_retval.c | 43 +++++++++++-
- backends/libebl_arm.h | 9 +++
- libelf/elf.h | 11 +++
- tests/run-addrcfi.sh | 93 ++++++++++++++++++++++++-
- tests/run-allregs.sh | 95 +++++++++++++++++++++++++-
- tests/run-readelf-mixed-corenote.sh | 11 ++-
- 8 files changed, 400 insertions(+), 12 deletions(-)
- create mode 100644 backends/libebl_arm.h
-
-diff --git a/backends/arm_init.c b/backends/arm_init.c
-index af023f0..ea2bcb7 100644
---- a/backends/arm_init.c
-+++ b/backends/arm_init.c
-@@ -35,20 +35,31 @@
- #define RELOC_PREFIX R_ARM_
- #include "libebl_CPU.h"
-
-+#include "libebl_arm.h"
-+
- /* This defines the common reloc hooks based on arm_reloc.def. */
- #include "common-reloc.c"
-
-
- const char *
--arm_init (Elf *elf __attribute__ ((unused)),
-+arm_init (Elf *elf,
- GElf_Half machine __attribute__ ((unused)),
- Ebl *eh,
- size_t ehlen)
- {
-+ int soft_float = 0;
-+
- /* Check whether the Elf_BH object has a sufficent size. */
- if (ehlen < sizeof (Ebl))
- return NULL;
-
-+ if (elf) {
-+ GElf_Ehdr ehdr_mem;
-+ GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem);
-+ if (ehdr && (ehdr->e_flags & EF_ARM_SOFT_FLOAT))
-+ soft_float = 1;
-+ }
-+
- /* We handle it. */
- arm_init_reloc (eh);
- HOOK (eh, segment_type_name);
-@@ -59,7 +70,10 @@ arm_init (Elf *elf __attribute__ ((unused)),
- HOOK (eh, core_note);
- HOOK (eh, auxv_info);
- HOOK (eh, check_object_attribute);
-- HOOK (eh, return_value_location);
-+ if (soft_float)
-+ eh->return_value_location = arm_return_value_location_soft;
-+ else
-+ eh->return_value_location = arm_return_value_location_hard;
- HOOK (eh, abi_cfi);
- HOOK (eh, check_reloc_target_type);
- HOOK (eh, symbol_type_name);
-diff --git a/backends/arm_regs.c b/backends/arm_regs.c
-index a46a4c9..418c931 100644
---- a/backends/arm_regs.c
-+++ b/backends/arm_regs.c
-@@ -31,6 +31,7 @@
- #endif
-
- #include <string.h>
-+#include <stdio.h>
- #include <dwarf.h>
-
- #define BACKEND arm_
-@@ -76,6 +77,9 @@ arm_register_info (Ebl *ebl __attribute__ ((unused)),
- break;
-
- case 16 + 0 ... 16 + 7:
-+ /* AADWARF says that there are no registers in that range,
-+ * but gcc maps FPA registers here
-+ */
- regno += 96 - 16;
- FALLTHROUGH;
- case 96 + 0 ... 96 + 7:
-@@ -87,11 +91,139 @@ arm_register_info (Ebl *ebl __attribute__ ((unused)),
- namelen = 2;
- break;
-
-+ case 64 + 0 ... 64 + 9:
-+ *setname = "VFP";
-+ *bits = 32;
-+ *type = DW_ATE_float;
-+ name[0] = 's';
-+ name[1] = regno - 64 + '0';
-+ namelen = 2;
-+ break;
-+
-+ case 64 + 10 ... 64 + 31:
-+ *setname = "VFP";
-+ *bits = 32;
-+ *type = DW_ATE_float;
-+ name[0] = 's';
-+ name[1] = (regno - 64) / 10 + '0';
-+ name[2] = (regno - 64) % 10 + '0';
-+ namelen = 3;
-+ break;
-+
-+ case 104 + 0 ... 104 + 7:
-+ /* XXX TODO:
-+ * This can be either intel wireless MMX general purpose/control
-+ * registers or xscale accumulator, which have different usage.
-+ * We only have the intel wireless MMX here now.
-+ * The name needs to be changed for the xscale accumulator too. */
-+ *setname = "MMX";
-+ *type = DW_ATE_unsigned;
-+ *bits = 32;
-+ memcpy(name, "wcgr", 4);
-+ name[4] = regno - 104 + '0';
-+ namelen = 5;
-+ break;
-+
-+ case 112 + 0 ... 112 + 9:
-+ *setname = "MMX";
-+ *type = DW_ATE_unsigned;
-+ *bits = 64;
-+ name[0] = 'w';
-+ name[1] = 'r';
-+ name[2] = regno - 112 + '0';
-+ namelen = 3;
-+ break;
-+
-+ case 112 + 10 ... 112 + 15:
-+ *setname = "MMX";
-+ *type = DW_ATE_unsigned;
-+ *bits = 64;
-+ name[0] = 'w';
-+ name[1] = 'r';
-+ name[2] = '1';
-+ name[3] = regno - 112 - 10 + '0';
-+ namelen = 4;
-+ break;
-+
- case 128:
-+ *setname = "state";
- *type = DW_ATE_unsigned;
- return stpcpy (name, "spsr") + 1 - name;
-
-+ case 129:
-+ *setname = "state";
-+ *type = DW_ATE_unsigned;
-+ return stpcpy(name, "spsr_fiq") + 1 - name;
-+
-+ case 130:
-+ *setname = "state";
-+ *type = DW_ATE_unsigned;
-+ return stpcpy(name, "spsr_irq") + 1 - name;
-+
-+ case 131:
-+ *setname = "state";
-+ *type = DW_ATE_unsigned;
-+ return stpcpy(name, "spsr_abt") + 1 - name;
-+
-+ case 132:
-+ *setname = "state";
-+ *type = DW_ATE_unsigned;
-+ return stpcpy(name, "spsr_und") + 1 - name;
-+
-+ case 133:
-+ *setname = "state";
-+ *type = DW_ATE_unsigned;
-+ return stpcpy(name, "spsr_svc") + 1 - name;
-+
-+ case 144 ... 150:
-+ *setname = "integer";
-+ *type = DW_ATE_signed;
-+ *bits = 32;
-+ return sprintf(name, "r%d_usr", regno - 144 + 8) + 1;
-+
-+ case 151 ... 157:
-+ *setname = "integer";
-+ *type = DW_ATE_signed;
-+ *bits = 32;
-+ return sprintf(name, "r%d_fiq", regno - 151 + 8) + 1;
-+
-+ case 158 ... 159:
-+ *setname = "integer";
-+ *type = DW_ATE_signed;
-+ *bits = 32;
-+ return sprintf(name, "r%d_irq", regno - 158 + 13) + 1;
-+
-+ case 160 ... 161:
-+ *setname = "integer";
-+ *type = DW_ATE_signed;
-+ *bits = 32;
-+ return sprintf(name, "r%d_abt", regno - 160 + 13) + 1;
-+
-+ case 162 ... 163:
-+ *setname = "integer";
-+ *type = DW_ATE_signed;
-+ *bits = 32;
-+ return sprintf(name, "r%d_und", regno - 162 + 13) + 1;
-+
-+ case 164 ... 165:
-+ *setname = "integer";
-+ *type = DW_ATE_signed;
-+ *bits = 32;
-+ return sprintf(name, "r%d_svc", regno - 164 + 13) + 1;
-+
-+ case 192 ... 199:
-+ *setname = "MMX";
-+ *bits = 32;
-+ *type = DW_ATE_unsigned;
-+ name[0] = 'w';
-+ name[1] = 'c';
-+ name[2] = regno - 192 + '0';
-+ namelen = 3;
-+ break;
-+
- case 256 + 0 ... 256 + 9:
-+ /* XXX TODO: Neon also uses those registers and can contain
-+ * both float and integers */
- *setname = "VFP";
- *type = DW_ATE_float;
- *bits = 64;
-diff --git a/backends/arm_retval.c b/backends/arm_retval.c
-index 1c28f01..313e4eb 100644
---- a/backends/arm_retval.c
-+++ b/backends/arm_retval.c
-@@ -48,6 +48,13 @@ static const Dwarf_Op loc_intreg[] =
- #define nloc_intreg 1
- #define nloc_intregs(n) (2 * (n))
-
-+/* f1 */ /* XXX TODO: f0 can also have number 96 if program was compiled with -mabi=aapcs */
-+static const Dwarf_Op loc_fpreg[] =
-+ {
-+ { .atom = DW_OP_reg16 },
-+ };
-+#define nloc_fpreg 1
-+
- /* The return value is a structure and is actually stored in stack space
- passed in a hidden argument by the caller. But, the compiler
- helpfully returns the address of that space in r0. */
-@@ -58,8 +65,9 @@ static const Dwarf_Op loc_aggregate[] =
- #define nloc_aggregate 1
-
-
--int
--arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp)
-+static int
-+arm_return_value_location_ (Dwarf_Die *functypedie, const Dwarf_Op **locp,
-+ int soft_float)
- {
- /* Start with the function's type, and get the DW_AT_type attribute,
- which is the type of the return value. */
-@@ -98,6 +106,21 @@ arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp)
- else
- return -1;
- }
-+ if (tag == DW_TAG_base_type)
-+ {
-+ Dwarf_Word encoding;
-+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_encoding,
-+ &attr_mem), &encoding) != 0)
-+ return -1;
-+
-+ if ((encoding == DW_ATE_float) && !soft_float)
-+ {
-+ *locp = loc_fpreg;
-+ if (size <= 8)
-+ return nloc_fpreg;
-+ goto aggregate;
-+ }
-+ }
- if (size <= 16)
- {
- intreg:
-@@ -106,6 +129,7 @@ arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp)
- }
-
- aggregate:
-+ /* XXX TODO sometimes aggregates are returned in r0 (-mabi=aapcs) */
- *locp = loc_aggregate;
- return nloc_aggregate;
- }
-@@ -125,3 +149,18 @@ arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp)
- DWARF and might be valid. */
- return -2;
- }
-+
-+/* return location for -mabi=apcs-gnu -msoft-float */
-+int
-+arm_return_value_location_soft (Dwarf_Die *functypedie, const Dwarf_Op **locp)
-+{
-+ return arm_return_value_location_ (functypedie, locp, 1);
-+}
-+
-+/* return location for -mabi=apcs-gnu -mhard-float (current default) */
-+int
-+arm_return_value_location_hard (Dwarf_Die *functypedie, const Dwarf_Op **locp)
-+{
-+ return arm_return_value_location_ (functypedie, locp, 0);
-+}
-+
-diff --git a/backends/libebl_arm.h b/backends/libebl_arm.h
-new file mode 100644
-index 0000000..c00770c
---- /dev/null
-+++ b/backends/libebl_arm.h
-@@ -0,0 +1,9 @@
-+#ifndef _LIBEBL_ARM_H
-+#define _LIBEBL_ARM_H 1
-+
-+#include <libdw.h>
-+
-+extern int arm_return_value_location_soft(Dwarf_Die *, const Dwarf_Op **locp);
-+extern int arm_return_value_location_hard(Dwarf_Die *, const Dwarf_Op **locp);
-+
-+#endif
-diff --git a/libelf/elf.h b/libelf/elf.h
-index 01648bd..05b7e7e 100644
---- a/libelf/elf.h
-+++ b/libelf/elf.h
-@@ -2690,6 +2690,9 @@ enum
- #define EF_ARM_EABI_VER4 0x04000000
- #define EF_ARM_EABI_VER5 0x05000000
-
-+/* EI_OSABI values */
-+#define ELFOSABI_ARM_AEABI 64 /* Contains symbol versioning. */
-+
- /* Additional symbol types for Thumb. */
- #define STT_ARM_TFUNC STT_LOPROC /* A Thumb function. */
- #define STT_ARM_16BIT STT_HIPROC /* A Thumb label. */
-@@ -2707,12 +2710,19 @@ enum
-
- /* Processor specific values for the Phdr p_type field. */
- #define PT_ARM_EXIDX (PT_LOPROC + 1) /* ARM unwind segment. */
-+#define PT_ARM_UNWIND PT_ARM_EXIDX
-
- /* Processor specific values for the Shdr sh_type field. */
- #define SHT_ARM_EXIDX (SHT_LOPROC + 1) /* ARM unwind section. */
- #define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2) /* Preemption details. */
- #define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3) /* ARM attributes section. */
-
-+/* Processor specific values for the Dyn d_tag field. */
-+#define DT_ARM_RESERVED1 (DT_LOPROC + 0)
-+#define DT_ARM_SYMTABSZ (DT_LOPROC + 1)
-+#define DT_ARM_PREEMTMAB (DT_LOPROC + 2)
-+#define DT_ARM_RESERVED2 (DT_LOPROC + 3)
-+#define DT_ARM_NUM 4
-
- /* AArch64 relocs. */
-
-@@ -3005,6 +3015,7 @@ enum
- TLS block (LDR, STR). */
- #define R_ARM_TLS_IE12GP 111 /* 12 bit GOT entry relative
- to GOT origin (LDR). */
-+/* 112 - 127 private range */
- #define R_ARM_ME_TOO 128 /* Obsolete. */
- #define R_ARM_THM_TLS_DESCSEQ 129
- #define R_ARM_THM_TLS_DESCSEQ16 129
-diff --git a/tests/run-addrcfi.sh b/tests/run-addrcfi.sh
-index 64fa24d..1c2aa4d 100755
---- a/tests/run-addrcfi.sh
-+++ b/tests/run-addrcfi.sh
-@@ -3554,6 +3554,38 @@ dwarf_cfi_addrframe (.eh_frame): no matching address range
- FPA reg21 (f5): undefined
- FPA reg22 (f6): undefined
- FPA reg23 (f7): undefined
-+ VFP reg64 (s0): undefined
-+ VFP reg65 (s1): undefined
-+ VFP reg66 (s2): undefined
-+ VFP reg67 (s3): undefined
-+ VFP reg68 (s4): undefined
-+ VFP reg69 (s5): undefined
-+ VFP reg70 (s6): undefined
-+ VFP reg71 (s7): undefined
-+ VFP reg72 (s8): undefined
-+ VFP reg73 (s9): undefined
-+ VFP reg74 (s10): undefined
-+ VFP reg75 (s11): undefined
-+ VFP reg76 (s12): undefined
-+ VFP reg77 (s13): undefined
-+ VFP reg78 (s14): undefined
-+ VFP reg79 (s15): undefined
-+ VFP reg80 (s16): undefined
-+ VFP reg81 (s17): undefined
-+ VFP reg82 (s18): undefined
-+ VFP reg83 (s19): undefined
-+ VFP reg84 (s20): undefined
-+ VFP reg85 (s21): undefined
-+ VFP reg86 (s22): undefined
-+ VFP reg87 (s23): undefined
-+ VFP reg88 (s24): undefined
-+ VFP reg89 (s25): undefined
-+ VFP reg90 (s26): undefined
-+ VFP reg91 (s27): undefined
-+ VFP reg92 (s28): undefined
-+ VFP reg93 (s29): undefined
-+ VFP reg94 (s30): undefined
-+ VFP reg95 (s31): undefined
- FPA reg96 (f0): undefined
- FPA reg97 (f1): undefined
- FPA reg98 (f2): undefined
-@@ -3562,7 +3594,66 @@ dwarf_cfi_addrframe (.eh_frame): no matching address range
- FPA reg101 (f5): undefined
- FPA reg102 (f6): undefined
- FPA reg103 (f7): undefined
-- integer reg128 (spsr): undefined
-+ MMX reg104 (wcgr0): undefined
-+ MMX reg105 (wcgr1): undefined
-+ MMX reg106 (wcgr2): undefined
-+ MMX reg107 (wcgr3): undefined
-+ MMX reg108 (wcgr4): undefined
-+ MMX reg109 (wcgr5): undefined
-+ MMX reg110 (wcgr6): undefined
-+ MMX reg111 (wcgr7): undefined
-+ MMX reg112 (wr0): undefined
-+ MMX reg113 (wr1): undefined
-+ MMX reg114 (wr2): undefined
-+ MMX reg115 (wr3): undefined
-+ MMX reg116 (wr4): undefined
-+ MMX reg117 (wr5): undefined
-+ MMX reg118 (wr6): undefined
-+ MMX reg119 (wr7): undefined
-+ MMX reg120 (wr8): undefined
-+ MMX reg121 (wr9): undefined
-+ MMX reg122 (wr10): undefined
-+ MMX reg123 (wr11): undefined
-+ MMX reg124 (wr12): undefined
-+ MMX reg125 (wr13): undefined
-+ MMX reg126 (wr14): undefined
-+ MMX reg127 (wr15): undefined
-+ state reg128 (spsr): undefined
-+ state reg129 (spsr_fiq): undefined
-+ state reg130 (spsr_irq): undefined
-+ state reg131 (spsr_abt): undefined
-+ state reg132 (spsr_und): undefined
-+ state reg133 (spsr_svc): undefined
-+ integer reg144 (r8_usr): undefined
-+ integer reg145 (r9_usr): undefined
-+ integer reg146 (r10_usr): undefined
-+ integer reg147 (r11_usr): undefined
-+ integer reg148 (r12_usr): undefined
-+ integer reg149 (r13_usr): undefined
-+ integer reg150 (r14_usr): undefined
-+ integer reg151 (r8_fiq): undefined
-+ integer reg152 (r9_fiq): undefined
-+ integer reg153 (r10_fiq): undefined
-+ integer reg154 (r11_fiq): undefined
-+ integer reg155 (r12_fiq): undefined
-+ integer reg156 (r13_fiq): undefined
-+ integer reg157 (r14_fiq): undefined
-+ integer reg158 (r13_irq): undefined
-+ integer reg159 (r14_irq): undefined
-+ integer reg160 (r13_abt): undefined
-+ integer reg161 (r14_abt): undefined
-+ integer reg162 (r13_und): undefined
-+ integer reg163 (r14_und): undefined
-+ integer reg164 (r13_svc): undefined
-+ integer reg165 (r14_svc): undefined
-+ MMX reg192 (wc0): undefined
-+ MMX reg193 (wc1): undefined
-+ MMX reg194 (wc2): undefined
-+ MMX reg195 (wc3): undefined
-+ MMX reg196 (wc4): undefined
-+ MMX reg197 (wc5): undefined
-+ MMX reg198 (wc6): undefined
-+ MMX reg199 (wc7): undefined
- VFP reg256 (d0): undefined
- VFP reg257 (d1): undefined
- VFP reg258 (d2): undefined
-diff --git a/tests/run-allregs.sh b/tests/run-allregs.sh
-index 1422bd6..dc0fc99 100755
---- a/tests/run-allregs.sh
-+++ b/tests/run-allregs.sh
-@@ -2672,7 +2672,28 @@ integer registers:
- 13: sp (sp), address 32 bits
- 14: lr (lr), address 32 bits
- 15: pc (pc), address 32 bits
-- 128: spsr (spsr), unsigned 32 bits
-+ 144: r8_usr (r8_usr), signed 32 bits
-+ 145: r9_usr (r9_usr), signed 32 bits
-+ 146: r10_usr (r10_usr), signed 32 bits
-+ 147: r11_usr (r11_usr), signed 32 bits
-+ 148: r12_usr (r12_usr), signed 32 bits
-+ 149: r13_usr (r13_usr), signed 32 bits
-+ 150: r14_usr (r14_usr), signed 32 bits
-+ 151: r8_fiq (r8_fiq), signed 32 bits
-+ 152: r9_fiq (r9_fiq), signed 32 bits
-+ 153: r10_fiq (r10_fiq), signed 32 bits
-+ 154: r11_fiq (r11_fiq), signed 32 bits
-+ 155: r12_fiq (r12_fiq), signed 32 bits
-+ 156: r13_fiq (r13_fiq), signed 32 bits
-+ 157: r14_fiq (r14_fiq), signed 32 bits
-+ 158: r13_irq (r13_irq), signed 32 bits
-+ 159: r14_irq (r14_irq), signed 32 bits
-+ 160: r13_abt (r13_abt), signed 32 bits
-+ 161: r14_abt (r14_abt), signed 32 bits
-+ 162: r13_und (r13_und), signed 32 bits
-+ 163: r14_und (r14_und), signed 32 bits
-+ 164: r13_svc (r13_svc), signed 32 bits
-+ 165: r14_svc (r14_svc), signed 32 bits
- FPA registers:
- 16: f0 (f0), float 96 bits
- 17: f1 (f1), float 96 bits
-@@ -2690,7 +2711,72 @@ FPA registers:
- 101: f5 (f5), float 96 bits
- 102: f6 (f6), float 96 bits
- 103: f7 (f7), float 96 bits
-+MMX registers:
-+ 104: wcgr0 (wcgr0), unsigned 32 bits
-+ 105: wcgr1 (wcgr1), unsigned 32 bits
-+ 106: wcgr2 (wcgr2), unsigned 32 bits
-+ 107: wcgr3 (wcgr3), unsigned 32 bits
-+ 108: wcgr4 (wcgr4), unsigned 32 bits
-+ 109: wcgr5 (wcgr5), unsigned 32 bits
-+ 110: wcgr6 (wcgr6), unsigned 32 bits
-+ 111: wcgr7 (wcgr7), unsigned 32 bits
-+ 112: wr0 (wr0), unsigned 64 bits
-+ 113: wr1 (wr1), unsigned 64 bits
-+ 114: wr2 (wr2), unsigned 64 bits
-+ 115: wr3 (wr3), unsigned 64 bits
-+ 116: wr4 (wr4), unsigned 64 bits
-+ 117: wr5 (wr5), unsigned 64 bits
-+ 118: wr6 (wr6), unsigned 64 bits
-+ 119: wr7 (wr7), unsigned 64 bits
-+ 120: wr8 (wr8), unsigned 64 bits
-+ 121: wr9 (wr9), unsigned 64 bits
-+ 122: wr10 (wr10), unsigned 64 bits
-+ 123: wr11 (wr11), unsigned 64 bits
-+ 124: wr12 (wr12), unsigned 64 bits
-+ 125: wr13 (wr13), unsigned 64 bits
-+ 126: wr14 (wr14), unsigned 64 bits
-+ 127: wr15 (wr15), unsigned 64 bits
-+ 192: wc0 (wc0), unsigned 32 bits
-+ 193: wc1 (wc1), unsigned 32 bits
-+ 194: wc2 (wc2), unsigned 32 bits
-+ 195: wc3 (wc3), unsigned 32 bits
-+ 196: wc4 (wc4), unsigned 32 bits
-+ 197: wc5 (wc5), unsigned 32 bits
-+ 198: wc6 (wc6), unsigned 32 bits
-+ 199: wc7 (wc7), unsigned 32 bits
- VFP registers:
-+ 64: s0 (s0), float 32 bits
-+ 65: s1 (s1), float 32 bits
-+ 66: s2 (s2), float 32 bits
-+ 67: s3 (s3), float 32 bits
-+ 68: s4 (s4), float 32 bits
-+ 69: s5 (s5), float 32 bits
-+ 70: s6 (s6), float 32 bits
-+ 71: s7 (s7), float 32 bits
-+ 72: s8 (s8), float 32 bits
-+ 73: s9 (s9), float 32 bits
-+ 74: s10 (s10), float 32 bits
-+ 75: s11 (s11), float 32 bits
-+ 76: s12 (s12), float 32 bits
-+ 77: s13 (s13), float 32 bits
-+ 78: s14 (s14), float 32 bits
-+ 79: s15 (s15), float 32 bits
-+ 80: s16 (s16), float 32 bits
-+ 81: s17 (s17), float 32 bits
-+ 82: s18 (s18), float 32 bits
-+ 83: s19 (s19), float 32 bits
-+ 84: s20 (s20), float 32 bits
-+ 85: s21 (s21), float 32 bits
-+ 86: s22 (s22), float 32 bits
-+ 87: s23 (s23), float 32 bits
-+ 88: s24 (s24), float 32 bits
-+ 89: s25 (s25), float 32 bits
-+ 90: s26 (s26), float 32 bits
-+ 91: s27 (s27), float 32 bits
-+ 92: s28 (s28), float 32 bits
-+ 93: s29 (s29), float 32 bits
-+ 94: s30 (s30), float 32 bits
-+ 95: s31 (s31), float 32 bits
- 256: d0 (d0), float 64 bits
- 257: d1 (d1), float 64 bits
- 258: d2 (d2), float 64 bits
-@@ -2723,6 +2809,13 @@ VFP registers:
- 285: d29 (d29), float 64 bits
- 286: d30 (d30), float 64 bits
- 287: d31 (d31), float 64 bits
-+state registers:
-+ 128: spsr (spsr), unsigned 32 bits
-+ 129: spsr_fiq (spsr_fiq), unsigned 32 bits
-+ 130: spsr_irq (spsr_irq), unsigned 32 bits
-+ 131: spsr_abt (spsr_abt), unsigned 32 bits
-+ 132: spsr_und (spsr_und), unsigned 32 bits
-+ 133: spsr_svc (spsr_svc), unsigned 32 bits
- EOF
-
- # See run-readelf-mixed-corenote.sh for instructions to regenerate
-diff --git a/tests/run-readelf-mixed-corenote.sh b/tests/run-readelf-mixed-corenote.sh
-index c960f1d..e4bf074 100755
---- a/tests/run-readelf-mixed-corenote.sh
-+++ b/tests/run-readelf-mixed-corenote.sh
-@@ -31,12 +31,11 @@ Note segment of 892 bytes at offset 0x274:
- pid: 11087, ppid: 11063, pgrp: 11087, sid: 11063
- utime: 0.000000, stime: 0.010000, cutime: 0.000000, cstime: 0.000000
- orig_r0: -1, fpvalid: 1
-- r0: 1 r1: -1091672508 r2: -1091672500
-- r3: 0 r4: 0 r5: 0
-- r6: 33728 r7: 0 r8: 0
-- r9: 0 r10: -1225703496 r11: -1091672844
-- r12: 0 sp: 0xbeee64f4 lr: 0xb6dc3f48
-- pc: 0x00008500 spsr: 0x60000010
-+ r0: 1 r1: -1091672508 r2: -1091672500 r3: 0
-+ r4: 0 r5: 0 r6: 33728 r7: 0
-+ r8: 0 r9: 0 r10: -1225703496 r11: -1091672844
-+ r12: 0 sp: 0xbeee64f4 lr: 0xb6dc3f48 pc: 0x00008500
-+ spsr: 0x60000010
- CORE 124 PRPSINFO
- state: 0, sname: R, zomb: 0, nice: 0, flag: 0x00400500
- uid: 0, gid: 0, pid: 11087, ppid: 11063, pgrp: 11087, sid: 11063
---
-2.7.4
-
diff --git a/meta/recipes-devtools/elfutils/files/debian/disable_werror.patch b/meta/recipes-devtools/elfutils/files/debian/disable_werror.patch
deleted file mode 100644
index bd98dae4b2..0000000000
--- a/meta/recipes-devtools/elfutils/files/debian/disable_werror.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-From: Helmut Grohne <helmut@subdivi.de>
-Subject: disable -Werror as it tends to break with new gcc versions
-Bug-Debian: https://bugs.debian.org/886004
-Last-Update: 2018-01-01
-
-Upstream-Status: Pending [from debian]
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
-Index: elfutils-0.176/config/eu.am
-===================================================================
---- elfutils-0.176.orig/config/eu.am
-+++ elfutils-0.176/config/eu.am
-@@ -73,7 +73,6 @@ AM_CFLAGS = -std=gnu99 -Wall -Wshadow -W
- -Wold-style-definition -Wstrict-prototypes -Wtrampolines \
- $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \
- $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \
-- $(if $($(*F)_no_Werror),,-Werror) \
- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
- $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
- $(if $($(*F)_no_Wpacked_not_aligned),-Wno-packed-not-aligned,) \
diff --git a/meta/recipes-devtools/elfutils/files/debian/hppa_backend.diff b/meta/recipes-devtools/elfutils/files/debian/hppa_backend.diff
deleted file mode 100644
index 53fa2f435b..0000000000
--- a/meta/recipes-devtools/elfutils/files/debian/hppa_backend.diff
+++ /dev/null
@@ -1,828 +0,0 @@
-From ffb811e18d7046d5bbe54ede5b1b7e14eaac0146 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 21 Aug 2019 15:44:18 +0800
-Subject: [PATCH] hppa backend
-
-Rebase to 0.177
-Upstream-Status: Pending [from debian]
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
----
- backends/Makefile.am | 7 +-
- backends/libebl_parisc.h | 9 ++
- backends/parisc_init.c | 73 +++++++++++++
- backends/parisc_regs.c | 159 ++++++++++++++++++++++++++++
- backends/parisc_reloc.def | 128 +++++++++++++++++++++++
- backends/parisc_retval.c | 213 ++++++++++++++++++++++++++++++++++++++
- backends/parisc_symbol.c | 113 ++++++++++++++++++++
- libelf/elf.h | 11 ++
- 8 files changed, 711 insertions(+), 2 deletions(-)
- create mode 100644 backends/libebl_parisc.h
- create mode 100644 backends/parisc_init.c
- create mode 100644 backends/parisc_regs.c
- create mode 100644 backends/parisc_reloc.def
- create mode 100644 backends/parisc_retval.c
- create mode 100644 backends/parisc_symbol.c
-
-diff --git a/backends/Makefile.am b/backends/Makefile.am
-index f405212..4755f61 100644
---- a/backends/Makefile.am
-+++ b/backends/Makefile.am
-@@ -37,7 +37,9 @@ AM_CPPFLAGS += -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \
- noinst_LIBRARIES = libebl_backends.a libebl_backends_pic.a
-
- modules = i386 sh x86_64 ia64 alpha arm aarch64 sparc ppc ppc64 s390 \
-- tilegx m68k bpf riscv csky
-+ tilegx m68k bpf riscv csky parisc
-+
-+parisc_SRCS = parisc_init.c parisc_symbol.c parisc_regs.c parisc_retval.c
-
- i386_SRCS = i386_init.c i386_symbol.c i386_corenote.c i386_cfi.c \
- i386_retval.c i386_regs.c i386_auxv.c i386_syscall.c \
-@@ -102,7 +104,8 @@ libebl_backends_a_SOURCES = $(i386_SRCS) $(sh_SRCS) $(x86_64_SRCS) \
- $(ia64_SRCS) $(alpha_SRCS) $(arm_SRCS) \
- $(aarch64_SRCS) $(sparc_SRCS) $(ppc_SRCS) \
- $(ppc64_SRCS) $(s390_SRCS) $(tilegx_SRCS) \
-- $(m68k_SRCS) $(bpf_SRCS) $(riscv_SRCS) $(csky_SRCS)
-+ $(m68k_SRCS) $(bpf_SRCS) $(riscv_SRCS) $(csky_SRCS) \
-+ $(parisc_SRCS)
-
- libebl_backends_pic_a_SOURCES =
- am_libebl_backends_pic_a_OBJECTS = $(libebl_backends_a_SOURCES:.c=.os)
-diff --git a/backends/libebl_parisc.h b/backends/libebl_parisc.h
-new file mode 100644
-index 0000000..f473b79
---- /dev/null
-+++ b/backends/libebl_parisc.h
-@@ -0,0 +1,9 @@
-+#ifndef _LIBEBL_HPPA_H
-+#define _LIBEBL_HPPA_H 1
-+
-+#include <libdw.h>
-+
-+extern int parisc_return_value_location_32(Dwarf_Die *, const Dwarf_Op **locp);
-+extern int parisc_return_value_location_64(Dwarf_Die *, const Dwarf_Op **locp);
-+
-+#endif
-diff --git a/backends/parisc_init.c b/backends/parisc_init.c
-new file mode 100644
-index 0000000..f1e401c
---- /dev/null
-+++ b/backends/parisc_init.c
-@@ -0,0 +1,73 @@
-+/* Initialization of PA-RISC specific backend library.
-+ Copyright (C) 2002, 2005, 2006 Red Hat, Inc.
-+ This file is part of Red Hat elfutils.
-+ Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-+
-+ Red Hat elfutils 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; version 2 of the License.
-+
-+ Red Hat elfutils 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 Red Hat elfutils; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
-+
-+ Red Hat elfutils is an included package of the Open Invention Network.
-+ An included package of the Open Invention Network is a package for which
-+ Open Invention Network licensees cross-license their patents. No patent
-+ license is granted, either expressly or impliedly, by designation as an
-+ included package. Should you wish to participate in the Open Invention
-+ Network licensing program, please visit www.openinventionnetwork.com
-+ <http://www.openinventionnetwork.com>. */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#define BACKEND parisc_
-+#define RELOC_PREFIX R_PARISC_
-+#include "libebl_CPU.h"
-+#include "libebl_parisc.h"
-+
-+/* This defines the common reloc hooks based on parisc_reloc.def. */
-+#include "common-reloc.c"
-+
-+
-+const char *
-+parisc_init (Elf *elf __attribute__ ((unused)),
-+ GElf_Half machine __attribute__ ((unused)),
-+ Ebl *eh,
-+ size_t ehlen)
-+{
-+ int pa64 = 0;
-+
-+ /* Check whether the Elf_BH object has a sufficent size. */
-+ if (ehlen < sizeof (Ebl))
-+ return NULL;
-+
-+ if (elf) {
-+ GElf_Ehdr ehdr_mem;
-+ GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem);
-+ if (ehdr && (ehdr->e_flags & EF_PARISC_WIDE))
-+ pa64 = 1;
-+ }
-+ /* We handle it. */
-+ eh->name = "PA-RISC";
-+ parisc_init_reloc (eh);
-+ HOOK (eh, reloc_simple_type);
-+ HOOK (eh, machine_flag_check);
-+ HOOK (eh, symbol_type_name);
-+ HOOK (eh, segment_type_name);
-+ HOOK (eh, section_type_name);
-+ HOOK (eh, register_info);
-+ if (pa64)
-+ eh->return_value_location = parisc_return_value_location_64;
-+ else
-+ eh->return_value_location = parisc_return_value_location_32;
-+
-+ return MODVERSION;
-+}
-diff --git a/backends/parisc_regs.c b/backends/parisc_regs.c
-new file mode 100644
-index 0000000..3895f8e
---- /dev/null
-+++ b/backends/parisc_regs.c
-@@ -0,0 +1,159 @@
-+/* Register names and numbers for PA-RISC DWARF.
-+ Copyright (C) 2005, 2006 Red Hat, Inc.
-+ This file is part of Red Hat elfutils.
-+
-+ Red Hat elfutils 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; version 2 of the License.
-+
-+ Red Hat elfutils 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 Red Hat elfutils; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
-+
-+ Red Hat elfutils is an included package of the Open Invention Network.
-+ An included package of the Open Invention Network is a package for which
-+ Open Invention Network licensees cross-license their patents. No patent
-+ license is granted, either expressly or impliedly, by designation as an
-+ included package. Should you wish to participate in the Open Invention
-+ Network licensing program, please visit www.openinventionnetwork.com
-+ <http://www.openinventionnetwork.com>. */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#include <string.h>
-+#include <dwarf.h>
-+
-+#define BACKEND parisc_
-+#include "libebl_CPU.h"
-+
-+ssize_t
-+parisc_register_info (Ebl *ebl, int regno, char *name, size_t namelen,
-+ const char **prefix, const char **setname,
-+ int *bits, int *type)
-+{
-+ int pa64 = 0;
-+
-+ if (ebl->elf) {
-+ GElf_Ehdr ehdr_mem;
-+ GElf_Ehdr *ehdr = gelf_getehdr (ebl->elf, &ehdr_mem);
-+ if (ehdr->e_flags & EF_PARISC_WIDE)
-+ pa64 = 1;
-+ }
-+
-+ int nregs = pa64 ? 127 : 128;
-+
-+ if (name == NULL)
-+ return nregs;
-+
-+ if (regno < 0 || regno >= nregs || namelen < 6)
-+ return -1;
-+
-+ *prefix = "%";
-+
-+ if (regno < 32)
-+ {
-+ *setname = "integer";
-+ *type = DW_ATE_signed;
-+ if (pa64)
-+ {
-+ *bits = 64;
-+ }
-+ else
-+ {
-+ *bits = 32;
-+ }
-+ }
-+ else if (regno == 32)
-+ {
-+ *setname = "special";
-+ if (pa64)
-+ {
-+ *bits = 6;
-+ }
-+ else
-+ {
-+ *bits = 5;
-+ }
-+ *type = DW_ATE_unsigned;
-+ }
-+ else
-+ {
-+ *setname = "FPU";
-+ *type = DW_ATE_float;
-+ if (pa64)
-+ {
-+ *bits = 64;
-+ }
-+ else
-+ {
-+ *bits = 32;
-+ }
-+ }
-+
-+ if (regno < 33) {
-+ switch (regno)
-+ {
-+ case 0 ... 9:
-+ name[0] = 'r';
-+ name[1] = regno + '0';
-+ namelen = 2;
-+ break;
-+ case 10 ... 31:
-+ name[0] = 'r';
-+ name[1] = regno / 10 + '0';
-+ name[2] = regno % 10 + '0';
-+ namelen = 3;
-+ break;
-+ case 32:
-+ *prefix = NULL;
-+ name[0] = 'S';
-+ name[1] = 'A';
-+ name[2] = 'R';
-+ namelen = 3;
-+ break;
-+ }
-+ }
-+ else {
-+ if (pa64 && ((regno - 72) % 2)) {
-+ *setname = NULL;
-+ return 0;
-+ }
-+
-+ switch (regno)
-+ {
-+ case 72 + 0 ... 72 + 11:
-+ name[0] = 'f';
-+ name[1] = 'r';
-+ name[2] = (regno + 8 - 72) / 2 + '0';
-+ namelen = 3;
-+ if ((regno + 8 - 72) % 2) {
-+ name[3] = 'R';
-+ namelen++;
-+ }
-+ break;
-+ case 72 + 12 ... 72 + 55:
-+ name[0] = 'f';
-+ name[1] = 'r';
-+ name[2] = (regno + 8 - 72) / 2 / 10 + '0';
-+ name[3] = (regno + 8 - 72) / 2 % 10 + '0';
-+ namelen = 4;
-+ if ((regno + 8 - 72) % 2) {
-+ name[4] = 'R';
-+ namelen++;
-+ }
-+ break;
-+ default:
-+ *setname = NULL;
-+ return 0;
-+ }
-+ }
-+ name[namelen++] = '\0';
-+ return namelen;
-+}
-diff --git a/backends/parisc_reloc.def b/backends/parisc_reloc.def
-new file mode 100644
-index 0000000..1f875ba
---- /dev/null
-+++ b/backends/parisc_reloc.def
-@@ -0,0 +1,128 @@
-+/* List the relocation types for PA-RISC. -*- C -*-
-+ Copyright (C) 2005 Red Hat, Inc.
-+ This file is part of Red Hat elfutils.
-+
-+ Red Hat elfutils 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; version 2 of the License.
-+
-+ Red Hat elfutils 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 Red Hat elfutils; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
-+
-+ Red Hat elfutils is an included package of the Open Invention Network.
-+ An included package of the Open Invention Network is a package for which
-+ Open Invention Network licensees cross-license their patents. No patent
-+ license is granted, either expressly or impliedly, by designation as an
-+ included package. Should you wish to participate in the Open Invention
-+ Network licensing program, please visit www.openinventionnetwork.com
-+ <http://www.openinventionnetwork.com>. */
-+
-+/* NAME, REL|EXEC|DYN */
-+
-+RELOC_TYPE (NONE, EXEC|DYN)
-+RELOC_TYPE (DIR32, REL|EXEC|DYN)
-+RELOC_TYPE (DIR21L, REL|EXEC|DYN)
-+RELOC_TYPE (DIR17R, REL)
-+RELOC_TYPE (DIR17F, REL)
-+RELOC_TYPE (DIR14R, REL|DYN)
-+RELOC_TYPE (PCREL32, REL)
-+RELOC_TYPE (PCREL21L, REL)
-+RELOC_TYPE (PCREL17R, REL)
-+RELOC_TYPE (PCREL17F, REL)
-+RELOC_TYPE (PCREL14R, REL|EXEC)
-+RELOC_TYPE (DPREL21L, REL)
-+RELOC_TYPE (DPREL14WR, REL)
-+RELOC_TYPE (DPREL14DR, REL)
-+RELOC_TYPE (DPREL14R, REL)
-+RELOC_TYPE (GPREL21L, 0)
-+RELOC_TYPE (GPREL14R, 0)
-+RELOC_TYPE (LTOFF21L, REL)
-+RELOC_TYPE (LTOFF14R, REL)
-+RELOC_TYPE (DLTIND14F, 0)
-+RELOC_TYPE (SETBASE, 0)
-+RELOC_TYPE (SECREL32, REL)
-+RELOC_TYPE (BASEREL21L, 0)
-+RELOC_TYPE (BASEREL17R, 0)
-+RELOC_TYPE (BASEREL14R, 0)
-+RELOC_TYPE (SEGBASE, 0)
-+RELOC_TYPE (SEGREL32, REL)
-+RELOC_TYPE (PLTOFF21L, 0)
-+RELOC_TYPE (PLTOFF14R, 0)
-+RELOC_TYPE (PLTOFF14F, 0)
-+RELOC_TYPE (LTOFF_FPTR32, 0)
-+RELOC_TYPE (LTOFF_FPTR21L, 0)
-+RELOC_TYPE (LTOFF_FPTR14R, 0)
-+RELOC_TYPE (FPTR64, 0)
-+RELOC_TYPE (PLABEL32, REL|DYN)
-+RELOC_TYPE (PCREL64, 0)
-+RELOC_TYPE (PCREL22C, 0)
-+RELOC_TYPE (PCREL22F, 0)
-+RELOC_TYPE (PCREL14WR, 0)
-+RELOC_TYPE (PCREL14DR, 0)
-+RELOC_TYPE (PCREL16F, 0)
-+RELOC_TYPE (PCREL16WF, 0)
-+RELOC_TYPE (PCREL16DF, 0)
-+RELOC_TYPE (DIR64, REL|DYN)
-+RELOC_TYPE (DIR14WR, REL)
-+RELOC_TYPE (DIR14DR, REL)
-+RELOC_TYPE (DIR16F, REL)
-+RELOC_TYPE (DIR16WF, REL)
-+RELOC_TYPE (DIR16DF, REL)
-+RELOC_TYPE (GPREL64, 0)
-+RELOC_TYPE (GPREL14WR, 0)
-+RELOC_TYPE (GPREL14DR, 0)
-+RELOC_TYPE (GPREL16F, 0)
-+RELOC_TYPE (GPREL16WF, 0)
-+RELOC_TYPE (GPREL16DF, 0)
-+RELOC_TYPE (LTOFF64, 0)
-+RELOC_TYPE (LTOFF14WR, 0)
-+RELOC_TYPE (LTOFF14DR, 0)
-+RELOC_TYPE (LTOFF16F, 0)
-+RELOC_TYPE (LTOFF16WF, 0)
-+RELOC_TYPE (LTOFF16DF, 0)
-+RELOC_TYPE (SECREL64, 0)
-+RELOC_TYPE (BASEREL14WR, 0)
-+RELOC_TYPE (BASEREL14DR, 0)
-+RELOC_TYPE (SEGREL64, 0)
-+RELOC_TYPE (PLTOFF14WR, 0)
-+RELOC_TYPE (PLTOFF14DR, 0)
-+RELOC_TYPE (PLTOFF16F, 0)
-+RELOC_TYPE (PLTOFF16WF, 0)
-+RELOC_TYPE (PLTOFF16DF, 0)
-+RELOC_TYPE (LTOFF_FPTR64, 0)
-+RELOC_TYPE (LTOFF_FPTR14WR, 0)
-+RELOC_TYPE (LTOFF_FPTR14DR, 0)
-+RELOC_TYPE (LTOFF_FPTR16F, 0)
-+RELOC_TYPE (LTOFF_FPTR16WF, 0)
-+RELOC_TYPE (LTOFF_FPTR16DF, 0)
-+RELOC_TYPE (COPY, EXEC)
-+RELOC_TYPE (IPLT, EXEC|DYN)
-+RELOC_TYPE (EPLT, 0)
-+RELOC_TYPE (TPREL32, DYN)
-+RELOC_TYPE (TPREL21L, 0)
-+RELOC_TYPE (TPREL14R, 0)
-+RELOC_TYPE (LTOFF_TP21L, 0)
-+RELOC_TYPE (LTOFF_TP14R, 0)
-+RELOC_TYPE (LTOFF_TP14F, 0)
-+RELOC_TYPE (TPREL64, 0)
-+RELOC_TYPE (TPREL14WR, 0)
-+RELOC_TYPE (TPREL14DR, 0)
-+RELOC_TYPE (TPREL16F, 0)
-+RELOC_TYPE (TPREL16WF, 0)
-+RELOC_TYPE (TPREL16DF, 0)
-+RELOC_TYPE (LTOFF_TP64, 0)
-+RELOC_TYPE (LTOFF_TP14WR, 0)
-+RELOC_TYPE (LTOFF_TP14DR, 0)
-+RELOC_TYPE (LTOFF_TP16F, 0)
-+RELOC_TYPE (LTOFF_TP16WF, 0)
-+RELOC_TYPE (LTOFF_TP16DF, 0)
-+RELOC_TYPE (TLS_DTPMOD32, DYN)
-+RELOC_TYPE (TLS_DTPMOD64, DYN)
-+
-+#define NO_RELATIVE_RELOC 1
-diff --git a/backends/parisc_retval.c b/backends/parisc_retval.c
-new file mode 100644
-index 0000000..df7ec3a
---- /dev/null
-+++ b/backends/parisc_retval.c
-@@ -0,0 +1,213 @@
-+/* Function return value location for Linux/PA-RISC ABI.
-+ Copyright (C) 2005 Red Hat, Inc.
-+ This file is part of Red Hat elfutils.
-+
-+ Red Hat elfutils 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; version 2 of the License.
-+
-+ Red Hat elfutils 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 Red Hat elfutils; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
-+
-+ Red Hat elfutils is an included package of the Open Invention Network.
-+ An included package of the Open Invention Network is a package for which
-+ Open Invention Network licensees cross-license their patents. No patent
-+ license is granted, either expressly or impliedly, by designation as an
-+ included package. Should you wish to participate in the Open Invention
-+ Network licensing program, please visit www.openinventionnetwork.com
-+ <http://www.openinventionnetwork.com>. */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#include <assert.h>
-+#include <dwarf.h>
-+
-+#define BACKEND parisc_
-+#include "libebl_CPU.h"
-+#include "libebl_parisc.h"
-+
-+/* %r28, or pair %r28, %r29. */
-+static const Dwarf_Op loc_intreg32[] =
-+ {
-+ { .atom = DW_OP_reg28 }, { .atom = DW_OP_piece, .number = 4 },
-+ { .atom = DW_OP_reg29 }, { .atom = DW_OP_piece, .number = 4 },
-+ };
-+
-+static const Dwarf_Op loc_intreg[] =
-+ {
-+ { .atom = DW_OP_reg28 }, { .atom = DW_OP_piece, .number = 8 },
-+ { .atom = DW_OP_reg29 }, { .atom = DW_OP_piece, .number = 8 },
-+ };
-+#define nloc_intreg 1
-+#define nloc_intregpair 4
-+
-+/* %fr4L, or pair %fr4L, %fr4R on pa-32 */
-+static const Dwarf_Op loc_fpreg32[] =
-+ {
-+ { .atom = DW_OP_regx, .number = 72 }, { .atom = DW_OP_piece, .number = 4 },
-+ { .atom = DW_OP_regx, .number = 73 }, { .atom = DW_OP_piece, .number = 4 },
-+ };
-+#define nloc_fpreg32 2
-+#define nloc_fpregpair32 4
-+
-+/* $fr4 */
-+static const Dwarf_Op loc_fpreg[] =
-+ {
-+ { .atom = DW_OP_regx, .number = 72 },
-+ };
-+#define nloc_fpreg 1
-+
-+#if 0
-+/* The return value is a structure and is actually stored in stack space
-+ passed in a hidden argument by the caller. Address of the location is stored
-+ in %r28 before function call, but it may be changed by function. */
-+static const Dwarf_Op loc_aggregate[] =
-+ {
-+ { .atom = DW_OP_breg28 },
-+ };
-+#define nloc_aggregate 1
-+#endif
-+
-+static int
-+parisc_return_value_location_ (Dwarf_Die *functypedie, const Dwarf_Op **locp, int pa64)
-+{
-+ Dwarf_Word regsize = pa64 ? 8 : 4;
-+
-+ /* Start with the function's type, and get the DW_AT_type attribute,
-+ which is the type of the return value. */
-+
-+ Dwarf_Attribute attr_mem;
-+ Dwarf_Attribute *attr = dwarf_attr_integrate (functypedie, DW_AT_type, &attr_mem);
-+ if (attr == NULL)
-+ /* The function has no return value, like a `void' function in C. */
-+ return 0;
-+
-+ Dwarf_Die die_mem;
-+ Dwarf_Die *typedie = dwarf_formref_die (attr, &die_mem);
-+ int tag = dwarf_tag (typedie);
-+
-+ /* Follow typedefs and qualifiers to get to the actual type. */
-+ while (tag == DW_TAG_typedef
-+ || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type
-+ || tag == DW_TAG_restrict_type)
-+ {
-+ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem);
-+ typedie = dwarf_formref_die (attr, &die_mem);
-+ tag = dwarf_tag (typedie);
-+ }
-+
-+ switch (tag)
-+ {
-+ case -1:
-+ return -1;
-+
-+ case DW_TAG_subrange_type:
-+ if (! dwarf_hasattr_integrate (typedie, DW_AT_byte_size))
-+ {
-+ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem);
-+ typedie = dwarf_formref_die (attr, &die_mem);
-+ tag = dwarf_tag (typedie);
-+ }
-+ /* Fall through. */
-+
-+ case DW_TAG_base_type:
-+ case DW_TAG_enumeration_type:
-+ case DW_TAG_pointer_type:
-+ case DW_TAG_ptr_to_member_type:
-+ {
-+ Dwarf_Word size;
-+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_byte_size,
-+ &attr_mem), &size) != 0)
-+ {
-+ if (tag == DW_TAG_pointer_type || tag == DW_TAG_ptr_to_member_type)
-+ size = 4;
-+ else
-+ return -1;
-+ }
-+ if (tag == DW_TAG_base_type)
-+ {
-+ Dwarf_Word encoding;
-+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_encoding,
-+ &attr_mem), &encoding) != 0)
-+ return -1;
-+
-+ if (encoding == DW_ATE_float)
-+ {
-+ if (pa64) {
-+ *locp = loc_fpreg;
-+ if (size <= 8)
-+ return nloc_fpreg;
-+ }
-+ else {
-+ *locp = loc_fpreg32;
-+ if (size <= 4)
-+ return nloc_fpreg32;
-+ else if (size <= 8)
-+ return nloc_fpregpair32;
-+ }
-+ goto aggregate;
-+ }
-+ }
-+ if (pa64)
-+ *locp = loc_intreg;
-+ else
-+ *locp = loc_intreg32;
-+ if (size <= regsize)
-+ return nloc_intreg;
-+ if (size <= 2 * regsize)
-+ return nloc_intregpair;
-+
-+ /* Else fall through. */
-+ }
-+
-+ case DW_TAG_structure_type:
-+ case DW_TAG_class_type:
-+ case DW_TAG_union_type:
-+ case DW_TAG_array_type:
-+ aggregate: {
-+ Dwarf_Word size;
-+ if (dwarf_aggregate_size (typedie, &size) != 0)
-+ return -1;
-+ if (pa64)
-+ *locp = loc_intreg;
-+ else
-+ *locp = loc_intreg32;
-+ if (size <= regsize)
-+ return nloc_intreg;
-+ if (size <= 2 * regsize)
-+ return nloc_intregpair;
-+#if 0
-+ /* there should be some way to know this location... But I do not see it. */
-+ *locp = loc_aggregate;
-+ return nloc_aggregate;
-+#endif
-+ /* fall through. */
-+ }
-+ }
-+
-+ /* XXX We don't have a good way to return specific errors from ebl calls.
-+ This value means we do not understand the type, but it is well-formed
-+ DWARF and might be valid. */
-+ return -2;
-+}
-+
-+int
-+parisc_return_value_location_32 (Dwarf_Die *functypedie, const Dwarf_Op **locp)
-+{
-+ return parisc_return_value_location_ (functypedie, locp, 0);
-+}
-+
-+int
-+parisc_return_value_location_64 (Dwarf_Die *functypedie, const Dwarf_Op **locp)
-+{
-+ return parisc_return_value_location_ (functypedie, locp, 1);
-+}
-+
-diff --git a/backends/parisc_symbol.c b/backends/parisc_symbol.c
-new file mode 100644
-index 0000000..5754bd8
---- /dev/null
-+++ b/backends/parisc_symbol.c
-@@ -0,0 +1,113 @@
-+/* PA-RISC specific symbolic name handling.
-+ Copyright (C) 2002, 2005 Red Hat, Inc.
-+ This file is part of Red Hat elfutils.
-+ Written by Ulrich Drepper <drepper@redhat.com>, 2002.
-+
-+ Red Hat elfutils 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; version 2 of the License.
-+
-+ Red Hat elfutils 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 Red Hat elfutils; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
-+
-+ Red Hat elfutils is an included package of the Open Invention Network.
-+ An included package of the Open Invention Network is a package for which
-+ Open Invention Network licensees cross-license their patents. No patent
-+ license is granted, either expressly or impliedly, by designation as an
-+ included package. Should you wish to participate in the Open Invention
-+ Network licensing program, please visit www.openinventionnetwork.com
-+ <http://www.openinventionnetwork.com>. */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#include <elf.h>
-+#include <stddef.h>
-+
-+#define BACKEND parisc_
-+#include "libebl_CPU.h"
-+
-+const char *
-+parisc_segment_type_name (int segment, char *buf __attribute__ ((unused)),
-+ size_t len __attribute__ ((unused)))
-+{
-+ switch (segment)
-+ {
-+ case PT_PARISC_ARCHEXT:
-+ return "PARISC_ARCHEXT";
-+ case PT_PARISC_UNWIND:
-+ return "PARISC_UNWIND";
-+ default:
-+ break;
-+ }
-+ return NULL;
-+}
-+
-+/* Return symbolic representation of symbol type. */
-+const char *
-+parisc_symbol_type_name(int symbol, char *buf __attribute__ ((unused)),
-+ size_t len __attribute__ ((unused)))
-+{
-+ if (symbol == STT_PARISC_MILLICODE)
-+ return "PARISC_MILLI";
-+ return NULL;
-+}
-+
-+/* Return symbolic representation of section type. */
-+const char *
-+parisc_section_type_name (int type,
-+ char *buf __attribute__ ((unused)),
-+ size_t len __attribute__ ((unused)))
-+{
-+ switch (type)
-+ {
-+ case SHT_PARISC_EXT:
-+ return "PARISC_EXT";
-+ case SHT_PARISC_UNWIND:
-+ return "PARISC_UNWIND";
-+ case SHT_PARISC_DOC:
-+ return "PARISC_DOC";
-+ }
-+
-+ return NULL;
-+}
-+
-+/* Check whether machine flags are valid. */
-+bool
-+parisc_machine_flag_check (GElf_Word flags)
-+{
-+ if (flags &~ (EF_PARISC_TRAPNIL | EF_PARISC_EXT | EF_PARISC_LSB |
-+ EF_PARISC_WIDE | EF_PARISC_NO_KABP |
-+ EF_PARISC_LAZYSWAP | EF_PARISC_ARCH))
-+ return 0;
-+
-+ GElf_Word arch = flags & EF_PARISC_ARCH;
-+
-+ return ((arch == EFA_PARISC_1_0) || (arch == EFA_PARISC_1_1) ||
-+ (arch == EFA_PARISC_2_0));
-+}
-+
-+/* Check for the simple reloc types. */
-+Elf_Type
-+parisc_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type,
-+ int *addsub __attribute__ ((unused)))
-+{
-+ switch (type)
-+ {
-+ case R_PARISC_DIR64:
-+ case R_PARISC_SECREL64:
-+ return ELF_T_XWORD;
-+ case R_PARISC_DIR32:
-+ case R_PARISC_SECREL32:
-+ return ELF_T_WORD;
-+ default:
-+ return ELF_T_NUM;
-+ }
-+}
-diff --git a/libelf/elf.h b/libelf/elf.h
-index 01648bd..218ceb2 100644
---- a/libelf/elf.h
-+++ b/libelf/elf.h
-@@ -2162,16 +2162,24 @@ enum
- #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_DPREL14WR 19
-+#define R_PARISC_DPREL14DR 20
- #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_DLTIND14F 39
-+#define R_PARISC_SETBASE 40
- #define R_PARISC_SECREL32 41 /* 32 bits section rel. address. */
-+#define R_PARISC_BASEREL21L 42
-+#define R_PARISC_BASEREL17R 43
-+#define R_PARISC_BASEREL14R 46
- #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_PLTOFF14F 55
- #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. */
-@@ -2180,6 +2188,7 @@ enum
- #define R_PARISC_PLABEL21L 66 /* Left 21 bits of fdesc address. */
- #define R_PARISC_PLABEL14R 70 /* Right 14 bits of fdesc address. */
- #define R_PARISC_PCREL64 72 /* 64 bits PC-rel. address. */
-+#define R_PARISC_PCREL22C 73
- #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. */
-@@ -2205,6 +2214,8 @@ enum
- #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_BASEREL14WR 107
-+#define R_PARISC_BASEREL14DR 108
- #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. */
diff --git a/meta/recipes-devtools/elfutils/files/debian/hurd_path.patch b/meta/recipes-devtools/elfutils/files/debian/hurd_path.patch
deleted file mode 100644
index 62a960f3a8..0000000000
--- a/meta/recipes-devtools/elfutils/files/debian/hurd_path.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Upstream-Status: Pending [from debian]
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
-Index: elfutils-0.165/tests/run-native-test.sh
-===================================================================
---- elfutils-0.165.orig/tests/run-native-test.sh
-+++ elfutils-0.165/tests/run-native-test.sh
-@@ -83,6 +83,9 @@ native_test()
- # "cannot attach to process: Function not implemented".
- [ "$(uname)" = "GNU/kFreeBSD" ] && exit 77
-
-+# hurd's /proc/$PID/maps does not give paths yet.
-+[ "$(uname)" = "GNU" ] && exit 77
-+
- native_test ${abs_builddir}/allregs
- native_test ${abs_builddir}/funcretval
-
diff --git a/meta/recipes-devtools/elfutils/files/debian/ignore_strmerge.diff b/meta/recipes-devtools/elfutils/files/debian/ignore_strmerge.diff
deleted file mode 100644
index 55513eeddc..0000000000
--- a/meta/recipes-devtools/elfutils/files/debian/ignore_strmerge.diff
+++ /dev/null
@@ -1,14 +0,0 @@
-Upstream-Status: Pending [from debian]
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
---- elfutils-0.165.orig/tests/run-strip-strmerge.sh
-+++ elfutils-0.165/tests/run-strip-strmerge.sh
-@@ -30,7 +30,7 @@ remerged=remerged.elf
- tempfiles $merged $stripped $debugfile $remerged
-
- echo elflint $input
--testrun ${abs_top_builddir}/src/elflint --gnu $input
-+testrun_on_self_skip ${abs_top_builddir}/src/elflint --gnu $input
- echo elfstrmerge
- testrun ${abs_top_builddir}/tests/elfstrmerge -o $merged $input
- echo elflint $merged
diff --git a/meta/recipes-devtools/elfutils/files/debian/kfreebsd_path.patch b/meta/recipes-devtools/elfutils/files/debian/kfreebsd_path.patch
deleted file mode 100644
index e85a2fed9d..0000000000
--- a/meta/recipes-devtools/elfutils/files/debian/kfreebsd_path.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Upstream-Status: Pending [from debian]
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
-Index: b/tests/run-native-test.sh
-===================================================================
---- a/tests/run-native-test.sh
-+++ b/tests/run-native-test.sh
-@@ -77,6 +77,12 @@ native_test()
- test $native -eq 0 || testrun "$@" -p $native > /dev/null
- }
-
-+# On the Debian buildds, GNU/kFreeBSD linprocfs /proc/$PID/maps does
-+# not give absolute paths due to sbuild's bind mounts (bug #570805)
-+# therefore the next two test programs are expected to fail with
-+# "cannot attach to process: Function not implemented".
-+[ "$(uname)" = "GNU/kFreeBSD" ] && exit 77
-+
- native_test ${abs_builddir}/allregs
- native_test ${abs_builddir}/funcretval
-
diff --git a/meta/recipes-devtools/elfutils/files/debian/mips_backend.diff b/meta/recipes-devtools/elfutils/files/debian/mips_backend.diff
deleted file mode 100644
index 749faa403f..0000000000
--- a/meta/recipes-devtools/elfutils/files/debian/mips_backend.diff
+++ /dev/null
@@ -1,724 +0,0 @@
-From 7e0b036d087dfff7f5e306f52fc78745f99454c3 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 21 Aug 2019 15:49:52 +0800
-Subject: [PATCH] mips backend
-
-Rebase to 0.177
-Upstream-Status: Pending [from debian]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
----
- backends/Makefile.am | 6 +-
- backends/mips_init.c | 59 ++++++++
- backends/mips_regs.c | 104 +++++++++++++
- backends/mips_reloc.def | 79 ++++++++++
- backends/mips_retval.c | 321 ++++++++++++++++++++++++++++++++++++++++
- backends/mips_symbol.c | 53 +++++++
- libebl/eblopenbackend.c | 3 +
- 7 files changed, 623 insertions(+), 2 deletions(-)
- create mode 100644 backends/mips_init.c
- create mode 100644 backends/mips_regs.c
- create mode 100644 backends/mips_reloc.def
- create mode 100644 backends/mips_retval.c
- create mode 100644 backends/mips_symbol.c
-
-diff --git a/backends/Makefile.am b/backends/Makefile.am
-index 4755f61..07d45d7 100644
---- a/backends/Makefile.am
-+++ b/backends/Makefile.am
-@@ -37,7 +37,7 @@ AM_CPPFLAGS += -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \
- noinst_LIBRARIES = libebl_backends.a libebl_backends_pic.a
-
- modules = i386 sh x86_64 ia64 alpha arm aarch64 sparc ppc ppc64 s390 \
-- tilegx m68k bpf riscv csky parisc
-+ tilegx m68k bpf riscv csky parisc mips
-
- parisc_SRCS = parisc_init.c parisc_symbol.c parisc_regs.c parisc_retval.c
-
-@@ -100,12 +100,14 @@ riscv_SRCS = riscv_init.c riscv_symbol.c riscv_cfi.c riscv_regs.c \
- csky_SRCS = csky_attrs.c csky_init.c csky_symbol.c csky_cfi.c \
- csky_regs.c csky_initreg.c csky_corenote.c
-
-+mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c
-+
- libebl_backends_a_SOURCES = $(i386_SRCS) $(sh_SRCS) $(x86_64_SRCS) \
- $(ia64_SRCS) $(alpha_SRCS) $(arm_SRCS) \
- $(aarch64_SRCS) $(sparc_SRCS) $(ppc_SRCS) \
- $(ppc64_SRCS) $(s390_SRCS) $(tilegx_SRCS) \
- $(m68k_SRCS) $(bpf_SRCS) $(riscv_SRCS) $(csky_SRCS) \
-- $(parisc_SRCS)
-+ $(parisc_SRCS) $(mips_SRCS)
-
- libebl_backends_pic_a_SOURCES =
- am_libebl_backends_pic_a_OBJECTS = $(libebl_backends_a_SOURCES:.c=.os)
-diff --git a/backends/mips_init.c b/backends/mips_init.c
-new file mode 100644
-index 0000000..975c04e
---- /dev/null
-+++ b/backends/mips_init.c
-@@ -0,0 +1,59 @@
-+/* Initialization of mips specific backend library.
-+ Copyright (C) 2006 Red Hat, Inc.
-+ This file is part of Red Hat elfutils.
-+
-+ Red Hat elfutils 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; version 2 of the License.
-+
-+ Red Hat elfutils 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 Red Hat elfutils; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
-+
-+ Red Hat elfutils is an included package of the Open Invention Network.
-+ An included package of the Open Invention Network is a package for which
-+ Open Invention Network licensees cross-license their patents. No patent
-+ license is granted, either expressly or impliedly, by designation as an
-+ included package. Should you wish to participate in the Open Invention
-+ Network licensing program, please visit www.openinventionnetwork.com
-+ <http://www.openinventionnetwork.com>. */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#define BACKEND mips_
-+#define RELOC_PREFIX R_MIPS_
-+#include "libebl_CPU.h"
-+
-+/* This defines the common reloc hooks based on mips_reloc.def. */
-+#include "common-reloc.c"
-+
-+const char *
-+mips_init (Elf *elf __attribute__ ((unused)),
-+ GElf_Half machine __attribute__ ((unused)),
-+ Ebl *eh,
-+ size_t ehlen)
-+{
-+ /* Check whether the Elf_BH object has a sufficent size. */
-+ if (ehlen < sizeof (Ebl))
-+ return NULL;
-+
-+ /* We handle it. */
-+ if (machine == EM_MIPS)
-+ eh->name = "MIPS R3000 big-endian";
-+ else if (machine == EM_MIPS_RS3_LE)
-+ eh->name = "MIPS R3000 little-endian";
-+
-+ mips_init_reloc (eh);
-+ HOOK (eh, reloc_simple_type);
-+ HOOK (eh, return_value_location);
-+ HOOK (eh, register_info);
-+
-+ return MODVERSION;
-+}
-diff --git a/backends/mips_regs.c b/backends/mips_regs.c
-new file mode 100644
-index 0000000..44f86cb
---- /dev/null
-+++ b/backends/mips_regs.c
-@@ -0,0 +1,104 @@
-+/* Register names and numbers for MIPS DWARF.
-+ Copyright (C) 2006 Red Hat, Inc.
-+ This file is part of Red Hat elfutils.
-+
-+ Red Hat elfutils 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; version 2 of the License.
-+
-+ Red Hat elfutils 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 Red Hat elfutils; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
-+
-+ Red Hat elfutils is an included package of the Open Invention Network.
-+ An included package of the Open Invention Network is a package for which
-+ Open Invention Network licensees cross-license their patents. No patent
-+ license is granted, either expressly or impliedly, by designation as an
-+ included package. Should you wish to participate in the Open Invention
-+ Network licensing program, please visit www.openinventionnetwork.com
-+ <http://www.openinventionnetwork.com>. */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#include <string.h>
-+#include <dwarf.h>
-+
-+#define BACKEND mips_
-+#include "libebl_CPU.h"
-+
-+ssize_t
-+mips_register_info (Ebl *ebl __attribute__((unused)),
-+ int regno, char *name, size_t namelen,
-+ const char **prefix, const char **setname,
-+ int *bits, int *type)
-+{
-+ if (name == NULL)
-+ return 66;
-+
-+ if (regno < 0 || regno > 65 || namelen < 4)
-+ return -1;
-+
-+ *prefix = "$";
-+
-+ if (regno < 32)
-+ {
-+ *setname = "integer";
-+ *type = DW_ATE_signed;
-+ *bits = 32;
-+ if (regno < 32 + 10)
-+ {
-+ name[0] = regno + '0';
-+ namelen = 1;
-+ }
-+ else
-+ {
-+ name[0] = (regno / 10) + '0';
-+ name[1] = (regno % 10) + '0';
-+ namelen = 2;
-+ }
-+ }
-+ else if (regno < 64)
-+ {
-+ *setname = "FPU";
-+ *type = DW_ATE_float;
-+ *bits = 32;
-+ name[0] = 'f';
-+ if (regno < 32 + 10)
-+ {
-+ name[1] = (regno - 32) + '0';
-+ namelen = 2;
-+ }
-+ else
-+ {
-+ name[1] = (regno - 32) / 10 + '0';
-+ name[2] = (regno - 32) % 10 + '0';
-+ namelen = 3;
-+ }
-+ }
-+ else if (regno == 64)
-+ {
-+ *type = DW_ATE_signed;
-+ *bits = 32;
-+ name[0] = 'h';
-+ name[1] = 'i';
-+ namelen = 2;
-+ }
-+ else
-+ {
-+ *type = DW_ATE_signed;
-+ *bits = 32;
-+ name[0] = 'l';
-+ name[1] = 'o';
-+ namelen = 2;
-+ }
-+
-+ name[namelen++] = '\0';
-+ return namelen;
-+}
-diff --git a/backends/mips_reloc.def b/backends/mips_reloc.def
-new file mode 100644
-index 0000000..4579970
---- /dev/null
-+++ b/backends/mips_reloc.def
-@@ -0,0 +1,79 @@
-+/* List the relocation types for mips. -*- C -*-
-+ Copyright (C) 2006 Red Hat, Inc.
-+ This file is part of Red Hat elfutils.
-+
-+ Red Hat elfutils 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; version 2 of the License.
-+
-+ Red Hat elfutils 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 Red Hat elfutils; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
-+
-+ Red Hat elfutils is an included package of the Open Invention Network.
-+ An included package of the Open Invention Network is a package for which
-+ Open Invention Network licensees cross-license their patents. No patent
-+ license is granted, either expressly or impliedly, by designation as an
-+ included package. Should you wish to participate in the Open Invention
-+ Network licensing program, please visit www.openinventionnetwork.com
-+ <http://www.openinventionnetwork.com>. */
-+
-+/* NAME, REL|EXEC|DYN */
-+
-+RELOC_TYPE (NONE, 0)
-+RELOC_TYPE (16, 0)
-+RELOC_TYPE (32, 0)
-+RELOC_TYPE (REL32, 0)
-+RELOC_TYPE (26, 0)
-+RELOC_TYPE (HI16, 0)
-+RELOC_TYPE (LO16, 0)
-+RELOC_TYPE (GPREL16, 0)
-+RELOC_TYPE (LITERAL, 0)
-+RELOC_TYPE (GOT16, 0)
-+RELOC_TYPE (PC16, 0)
-+RELOC_TYPE (CALL16, 0)
-+RELOC_TYPE (GPREL32, 0)
-+
-+RELOC_TYPE (SHIFT5, 0)
-+RELOC_TYPE (SHIFT6, 0)
-+RELOC_TYPE (64, 0)
-+RELOC_TYPE (GOT_DISP, 0)
-+RELOC_TYPE (GOT_PAGE, 0)
-+RELOC_TYPE (GOT_OFST, 0)
-+RELOC_TYPE (GOT_HI16, 0)
-+RELOC_TYPE (GOT_LO16, 0)
-+RELOC_TYPE (SUB, 0)
-+RELOC_TYPE (INSERT_A, 0)
-+RELOC_TYPE (INSERT_B, 0)
-+RELOC_TYPE (DELETE, 0)
-+RELOC_TYPE (HIGHER, 0)
-+RELOC_TYPE (HIGHEST, 0)
-+RELOC_TYPE (CALL_HI16, 0)
-+RELOC_TYPE (CALL_LO16, 0)
-+RELOC_TYPE (SCN_DISP, 0)
-+RELOC_TYPE (REL16, 0)
-+RELOC_TYPE (ADD_IMMEDIATE, 0)
-+RELOC_TYPE (PJUMP, 0)
-+RELOC_TYPE (RELGOT, 0)
-+RELOC_TYPE (JALR, 0)
-+RELOC_TYPE (TLS_DTPMOD32, 0)
-+RELOC_TYPE (TLS_DTPREL32, 0)
-+RELOC_TYPE (TLS_DTPMOD64, 0)
-+RELOC_TYPE (TLS_DTPREL64, 0)
-+RELOC_TYPE (TLS_GD, 0)
-+RELOC_TYPE (TLS_LDM, 0)
-+RELOC_TYPE (TLS_DTPREL_HI16, 0)
-+RELOC_TYPE (TLS_DTPREL_LO16, 0)
-+RELOC_TYPE (TLS_GOTTPREL, 0)
-+RELOC_TYPE (TLS_TPREL32, 0)
-+RELOC_TYPE (TLS_TPREL64, 0)
-+RELOC_TYPE (TLS_TPREL_HI16, 0)
-+RELOC_TYPE (TLS_TPREL_LO16, 0)
-+
-+#define NO_COPY_RELOC 1
-+#define NO_RELATIVE_RELOC 1
-diff --git a/backends/mips_retval.c b/backends/mips_retval.c
-new file mode 100644
-index 0000000..656cd1f
---- /dev/null
-+++ b/backends/mips_retval.c
-@@ -0,0 +1,321 @@
-+/* Function return value location for Linux/mips ABI.
-+ Copyright (C) 2005 Red Hat, Inc.
-+ This file is part of Red Hat elfutils.
-+
-+ Red Hat elfutils 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; version 2 of the License.
-+
-+ Red Hat elfutils 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 Red Hat elfutils; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
-+
-+ Red Hat elfutils is an included package of the Open Invention Network.
-+ An included package of the Open Invention Network is a package for which
-+ Open Invention Network licensees cross-license their patents. No patent
-+ license is granted, either expressly or impliedly, by designation as an
-+ included package. Should you wish to participate in the Open Invention
-+ Network licensing program, please visit www.openinventionnetwork.com
-+ <http://www.openinventionnetwork.com>. */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#include <string.h>
-+#include <assert.h>
-+#include <dwarf.h>
-+#include <elf.h>
-+
-+#include "../libebl/libeblP.h"
-+#include "../libdw/libdwP.h"
-+
-+#define BACKEND mips_
-+#include "libebl_CPU.h"
-+
-+/* The ABI of the file. Also see EF_MIPS_ABI2 above. */
-+#define EF_MIPS_ABI 0x0000F000
-+
-+/* The original o32 abi. */
-+#define E_MIPS_ABI_O32 0x00001000
-+
-+/* O32 extended to work on 64 bit architectures */
-+#define E_MIPS_ABI_O64 0x00002000
-+
-+/* EABI in 32 bit mode */
-+#define E_MIPS_ABI_EABI32 0x00003000
-+
-+/* EABI in 64 bit mode */
-+#define E_MIPS_ABI_EABI64 0x00004000
-+
-+/* All the possible MIPS ABIs. */
-+enum mips_abi
-+ {
-+ MIPS_ABI_UNKNOWN = 0,
-+ MIPS_ABI_N32,
-+ MIPS_ABI_O32,
-+ MIPS_ABI_N64,
-+ MIPS_ABI_O64,
-+ MIPS_ABI_EABI32,
-+ MIPS_ABI_EABI64,
-+ MIPS_ABI_LAST
-+ };
-+
-+/* Find the mips ABI of the current file */
-+enum mips_abi find_mips_abi(Elf *elf)
-+{
-+ GElf_Ehdr ehdr_mem;
-+ GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem);
-+
-+ if (ehdr == NULL)
-+ return MIPS_ABI_LAST;
-+
-+ GElf_Word elf_flags = ehdr->e_flags;
-+
-+ /* Check elf_flags to see if it specifies the ABI being used. */
-+ switch ((elf_flags & EF_MIPS_ABI))
-+ {
-+ case E_MIPS_ABI_O32:
-+ return MIPS_ABI_O32;
-+ case E_MIPS_ABI_O64:
-+ return MIPS_ABI_O64;
-+ case E_MIPS_ABI_EABI32:
-+ return MIPS_ABI_EABI32;
-+ case E_MIPS_ABI_EABI64:
-+ return MIPS_ABI_EABI64;
-+ default:
-+ if ((elf_flags & EF_MIPS_ABI2))
-+ return MIPS_ABI_N32;
-+ }
-+
-+ /* GCC creates a pseudo-section whose name describes the ABI. */
-+ size_t shstrndx;
-+ if (elf_getshdrstrndx (elf, &shstrndx) < 0)
-+ return MIPS_ABI_LAST;
-+
-+ const char *name;
-+ Elf_Scn *scn = NULL;
-+ while ((scn = elf_nextscn (elf, scn)) != NULL)
-+ {
-+ GElf_Shdr shdr_mem;
-+ GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
-+ if (shdr == NULL)
-+ return MIPS_ABI_LAST;
-+
-+ name = elf_strptr (elf, shstrndx, shdr->sh_name) ?: "";
-+ if (strncmp (name, ".mdebug.", 8) != 0)
-+ continue;
-+
-+ if (strcmp (name, ".mdebug.abi32") == 0)
-+ return MIPS_ABI_O32;
-+ else if (strcmp (name, ".mdebug.abiN32") == 0)
-+ return MIPS_ABI_N32;
-+ else if (strcmp (name, ".mdebug.abi64") == 0)
-+ return MIPS_ABI_N64;
-+ else if (strcmp (name, ".mdebug.abiO64") == 0)
-+ return MIPS_ABI_O64;
-+ else if (strcmp (name, ".mdebug.eabi32") == 0)
-+ return MIPS_ABI_EABI32;
-+ else if (strcmp (name, ".mdebug.eabi64") == 0)
-+ return MIPS_ABI_EABI64;
-+ else
-+ return MIPS_ABI_UNKNOWN;
-+ }
-+
-+ return MIPS_ABI_UNKNOWN;
-+}
-+
-+unsigned int
-+mips_abi_regsize (enum mips_abi abi)
-+{
-+ switch (abi)
-+ {
-+ case MIPS_ABI_EABI32:
-+ case MIPS_ABI_O32:
-+ return 4;
-+ case MIPS_ABI_N32:
-+ case MIPS_ABI_N64:
-+ case MIPS_ABI_O64:
-+ case MIPS_ABI_EABI64:
-+ return 8;
-+ case MIPS_ABI_UNKNOWN:
-+ case MIPS_ABI_LAST:
-+ default:
-+ return 0;
-+ }
-+}
-+
-+
-+/* $v0 or pair $v0, $v1 */
-+static const Dwarf_Op loc_intreg_o32[] =
-+ {
-+ { .atom = DW_OP_reg2 }, { .atom = DW_OP_piece, .number = 4 },
-+ { .atom = DW_OP_reg3 }, { .atom = DW_OP_piece, .number = 4 },
-+ };
-+
-+static const Dwarf_Op loc_intreg[] =
-+ {
-+ { .atom = DW_OP_reg2 }, { .atom = DW_OP_piece, .number = 8 },
-+ { .atom = DW_OP_reg3 }, { .atom = DW_OP_piece, .number = 8 },
-+ };
-+#define nloc_intreg 1
-+#define nloc_intregpair 4
-+
-+/* $f0 (float), or pair $f0, $f1 (double).
-+ * f2/f3 are used for COMPLEX (= 2 doubles) returns in Fortran */
-+static const Dwarf_Op loc_fpreg_o32[] =
-+ {
-+ { .atom = DW_OP_regx, .number = 32 }, { .atom = DW_OP_piece, .number = 4 },
-+ { .atom = DW_OP_regx, .number = 33 }, { .atom = DW_OP_piece, .number = 4 },
-+ { .atom = DW_OP_regx, .number = 34 }, { .atom = DW_OP_piece, .number = 4 },
-+ { .atom = DW_OP_regx, .number = 35 }, { .atom = DW_OP_piece, .number = 4 },
-+ };
-+
-+/* $f0, or pair $f0, $f2. */
-+static const Dwarf_Op loc_fpreg[] =
-+ {
-+ { .atom = DW_OP_regx, .number = 32 }, { .atom = DW_OP_piece, .number = 8 },
-+ { .atom = DW_OP_regx, .number = 34 }, { .atom = DW_OP_piece, .number = 8 },
-+ };
-+#define nloc_fpreg 1
-+#define nloc_fpregpair 4
-+#define nloc_fpregquad 8
-+
-+/* The return value is a structure and is actually stored in stack space
-+ passed in a hidden argument by the caller. But, the compiler
-+ helpfully returns the address of that space in $v0. */
-+static const Dwarf_Op loc_aggregate[] =
-+ {
-+ { .atom = DW_OP_breg2, .number = 0 }
-+ };
-+#define nloc_aggregate 1
-+
-+int
-+mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp)
-+{
-+ /* First find the ABI used by the elf object */
-+ enum mips_abi abi = find_mips_abi(functypedie->cu->dbg->elf);
-+
-+ /* Something went seriously wrong while trying to figure out the ABI */
-+ if (abi == MIPS_ABI_LAST)
-+ return -1;
-+
-+ /* We couldn't identify the ABI, but the file seems valid */
-+ if (abi == MIPS_ABI_UNKNOWN)
-+ return -2;
-+
-+ /* Can't handle EABI variants */
-+ if ((abi == MIPS_ABI_EABI32) || (abi == MIPS_ABI_EABI64))
-+ return -2;
-+
-+ unsigned int regsize = mips_abi_regsize (abi);
-+ if (!regsize)
-+ return -2;
-+
-+ /* Start with the function's type, and get the DW_AT_type attribute,
-+ which is the type of the return value. */
-+
-+ Dwarf_Attribute attr_mem;
-+ Dwarf_Attribute *attr = dwarf_attr_integrate (functypedie, DW_AT_type, &attr_mem);
-+ if (attr == NULL)
-+ /* The function has no return value, like a `void' function in C. */
-+ return 0;
-+
-+ Dwarf_Die die_mem;
-+ Dwarf_Die *typedie = dwarf_formref_die (attr, &die_mem);
-+ int tag = dwarf_tag (typedie);
-+
-+ /* Follow typedefs and qualifiers to get to the actual type. */
-+ while (tag == DW_TAG_typedef
-+ || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type
-+ || tag == DW_TAG_restrict_type)
-+ {
-+ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem);
-+ typedie = dwarf_formref_die (attr, &die_mem);
-+ tag = dwarf_tag (typedie);
-+ }
-+
-+ switch (tag)
-+ {
-+ case -1:
-+ return -1;
-+
-+ case DW_TAG_subrange_type:
-+ if (! dwarf_hasattr_integrate (typedie, DW_AT_byte_size))
-+ {
-+ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem);
-+ typedie = dwarf_formref_die (attr, &die_mem);
-+ tag = dwarf_tag (typedie);
-+ }
-+ /* Fall through. */
-+
-+ case DW_TAG_base_type:
-+ case DW_TAG_enumeration_type:
-+ case DW_TAG_pointer_type:
-+ case DW_TAG_ptr_to_member_type:
-+ {
-+ Dwarf_Word size;
-+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_byte_size,
-+ &attr_mem), &size) != 0)
-+ {
-+ if (tag == DW_TAG_pointer_type || tag == DW_TAG_ptr_to_member_type)
-+ size = regsize;
-+ else
-+ return -1;
-+ }
-+ if (tag == DW_TAG_base_type)
-+ {
-+ Dwarf_Word encoding;
-+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_encoding,
-+ &attr_mem), &encoding) != 0)
-+ return -1;
-+
-+#define ABI_LOC(loc, regsize) ((regsize) == 4 ? (loc ## _o32) : (loc))
-+
-+ if (encoding == DW_ATE_float)
-+ {
-+ *locp = ABI_LOC(loc_fpreg, regsize);
-+ if (size <= regsize)
-+ return nloc_fpreg;
-+
-+ if (size <= 2*regsize)
-+ return nloc_fpregpair;
-+
-+ if (size <= 4*regsize && abi == MIPS_ABI_O32)
-+ return nloc_fpregquad;
-+
-+ goto aggregate;
-+ }
-+ }
-+ *locp = ABI_LOC(loc_intreg, regsize);
-+ if (size <= regsize)
-+ return nloc_intreg;
-+ if (size <= 2*regsize)
-+ return nloc_intregpair;
-+
-+ /* Else fall through. Shouldn't happen though (at least with gcc) */
-+ }
-+
-+ case DW_TAG_structure_type:
-+ case DW_TAG_class_type:
-+ case DW_TAG_union_type:
-+ case DW_TAG_array_type:
-+ aggregate:
-+ /* XXX TODO: Can't handle structure return with other ABI's yet :-/ */
-+ if ((abi != MIPS_ABI_O32) && (abi != MIPS_ABI_O64))
-+ return -2;
-+
-+ *locp = loc_aggregate;
-+ return nloc_aggregate;
-+ }
-+
-+ /* XXX We don't have a good way to return specific errors from ebl calls.
-+ This value means we do not understand the type, but it is well-formed
-+ DWARF and might be valid. */
-+ return -2;
-+}
-diff --git a/backends/mips_symbol.c b/backends/mips_symbol.c
-new file mode 100644
-index 0000000..261b05d
---- /dev/null
-+++ b/backends/mips_symbol.c
-@@ -0,0 +1,53 @@
-+/* MIPS specific symbolic name handling.
-+ Copyright (C) 2002, 2003, 2005 Red Hat, Inc.
-+ This file is part of Red Hat elfutils.
-+ Written by Jakub Jelinek <jakub@redhat.com>, 2002.
-+
-+ Red Hat elfutils 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; version 2 of the License.
-+
-+ Red Hat elfutils 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 Red Hat elfutils; if not, write to the Free Software Foundation,
-+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
-+
-+ Red Hat elfutils is an included package of the Open Invention Network.
-+ An included package of the Open Invention Network is a package for which
-+ Open Invention Network licensees cross-license their patents. No patent
-+ license is granted, either expressly or impliedly, by designation as an
-+ included package. Should you wish to participate in the Open Invention
-+ Network licensing program, please visit www.openinventionnetwork.com
-+ <http://www.openinventionnetwork.com>. */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#include <elf.h>
-+#include <stddef.h>
-+
-+#define BACKEND mips_
-+#include "libebl_CPU.h"
-+
-+/* Check for the simple reloc types. */
-+Elf_Type
-+mips_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type,
-+ int *addsub __attribute__ ((unused)))
-+{
-+ switch (type)
-+ {
-+ case R_MIPS_16:
-+ return ELF_T_HALF;
-+ case R_MIPS_32:
-+ return ELF_T_WORD;
-+ case R_MIPS_64:
-+ return ELF_T_XWORD;
-+ default:
-+ return ELF_T_NUM;
-+ }
-+}
-diff --git a/libebl/eblopenbackend.c b/libebl/eblopenbackend.c
-index 210b47e..1feac13 100644
---- a/libebl/eblopenbackend.c
-+++ b/libebl/eblopenbackend.c
-@@ -57,6 +57,7 @@ const char *m68k_init (Elf *, GElf_Half, Ebl *, size_t);
- const char *bpf_init (Elf *, GElf_Half, Ebl *, size_t);
- const char *riscv_init (Elf *, GElf_Half, Ebl *, size_t);
- const char *csky_init (Elf *, GElf_Half, Ebl *, size_t);
-+const char *mips_init (Elf *, GElf_Half, Ebl *, size_t);
-
- /* This table should contain the complete list of architectures as far
- as the ELF specification is concerned. */
-@@ -87,6 +88,8 @@ static const struct
- { sparc_init, "elf_sparc", "sparc", 5, EM_SPARC, 0, 0 },
- { sparc_init, "elf_sparcv8plus", "sparc", 5, EM_SPARC32PLUS, 0, 0 },
- { s390_init, "ebl_s390", "s390", 4, EM_S390, 0, 0 },
-+ { mips_init, "elf_mips", "mips", 4, EM_MIPS, 0, 0 },
-+ { mips_init, "elf_mipsel", "mipsel", 4, EM_MIPS_RS3_LE, 0, 0 },
-
- { NULL, "elf_m32", "m32", 3, EM_M32, 0, 0 },
- { m68k_init, "elf_m68k", "m68k", 4, EM_68K, ELFCLASS32, ELFDATA2MSB },
---
-2.17.1
-
diff --git a/meta/recipes-devtools/elfutils/files/debian/mips_cfi.patch b/meta/recipes-devtools/elfutils/files/debian/mips_cfi.patch
deleted file mode 100644
index dd8f88a454..0000000000
--- a/meta/recipes-devtools/elfutils/files/debian/mips_cfi.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-From 5bf6117a6eaf9007ce80adbb8b66a95ca98047a4 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 21 Aug 2019 17:00:30 +0800
-Subject: [PATCH] mips_cfi
-
-Upstream-Status: Pending [from debian]
-
-Rebase to 0.177
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
----
- backends/Makefile.am | 2 +-
- backends/mips_cfi.c | 80 ++++++++++++++++++++++++++++++++++++++++++++
- backends/mips_init.c | 1 +
- 3 files changed, 82 insertions(+), 1 deletion(-)
- create mode 100644 backends/mips_cfi.c
-
-diff --git a/backends/Makefile.am b/backends/Makefile.am
-index 07d45d7..dec3080 100644
---- a/backends/Makefile.am
-+++ b/backends/Makefile.am
-@@ -100,7 +100,7 @@ riscv_SRCS = riscv_init.c riscv_symbol.c riscv_cfi.c riscv_regs.c \
- csky_SRCS = csky_attrs.c csky_init.c csky_symbol.c csky_cfi.c \
- csky_regs.c csky_initreg.c csky_corenote.c
-
--mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c
-+mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c mips_cfi.c
-
- libebl_backends_a_SOURCES = $(i386_SRCS) $(sh_SRCS) $(x86_64_SRCS) \
- $(ia64_SRCS) $(alpha_SRCS) $(arm_SRCS) \
-diff --git a/backends/mips_cfi.c b/backends/mips_cfi.c
-new file mode 100644
-index 0000000..9ffdab5
---- /dev/null
-+++ b/backends/mips_cfi.c
-@@ -0,0 +1,80 @@
-+/* MIPS ABI-specified defaults for DWARF CFI.
-+ Copyright (C) 2018 Kurt Roeckx, Inc.
-+ This file is part of elfutils.
-+
-+ This file is free software; you can redistribute it and/or modify
-+ it under the terms of either
-+
-+ * the GNU Lesser General Public License as published by the Free
-+ Software Foundation; either version 3 of the License, or (at
-+ your option) any later version
-+
-+ or
-+
-+ * 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
-+
-+ or both in parallel, as here.
-+
-+ elfutils 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 copies of the GNU General Public License and
-+ the GNU Lesser General Public License along with this program. If
-+ not, see <http://www.gnu.org/licenses/>. */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#include <dwarf.h>
-+
-+#define BACKEND mips_
-+#include "libebl_CPU.h"
-+
-+int
-+mips_abi_cfi (Ebl *ebl __attribute__ ((unused)), Dwarf_CIE *abi_info)
-+{
-+ static const uint8_t abi_cfi[] =
-+ {
-+ /* Call-saved regs. */
-+ DW_CFA_same_value, ULEB128_7 (16), /* $16 */
-+ DW_CFA_same_value, ULEB128_7 (17), /* $17 */
-+ DW_CFA_same_value, ULEB128_7 (18), /* $18 */
-+ DW_CFA_same_value, ULEB128_7 (19), /* $19 */
-+ DW_CFA_same_value, ULEB128_7 (20), /* $20 */
-+ DW_CFA_same_value, ULEB128_7 (21), /* $21 */
-+ DW_CFA_same_value, ULEB128_7 (22), /* $22 */
-+ DW_CFA_same_value, ULEB128_7 (23), /* $23 */
-+ DW_CFA_same_value, ULEB128_7 (28), /* $28 */
-+ DW_CFA_same_value, ULEB128_7 (29), /* $29 */
-+ DW_CFA_same_value, ULEB128_7 (30), /* $30 */
-+
-+ DW_CFA_same_value, ULEB128_7 (52), /* $f20 */
-+ DW_CFA_same_value, ULEB128_7 (53), /* $f21 */
-+ DW_CFA_same_value, ULEB128_7 (54), /* $f22 */
-+ DW_CFA_same_value, ULEB128_7 (55), /* $f23 */
-+ DW_CFA_same_value, ULEB128_7 (56), /* $f24 */
-+ DW_CFA_same_value, ULEB128_7 (57), /* $f25 */
-+ DW_CFA_same_value, ULEB128_7 (58), /* $f26 */
-+ DW_CFA_same_value, ULEB128_7 (59), /* $f27 */
-+ DW_CFA_same_value, ULEB128_7 (60), /* $f28 */
-+ DW_CFA_same_value, ULEB128_7 (61), /* $f29 */
-+ DW_CFA_same_value, ULEB128_7 (62), /* $f30 */
-+ DW_CFA_same_value, ULEB128_7 (63), /* $f31 */
-+
-+ /* The CFA is the SP. */
-+ DW_CFA_def_cfa, ULEB128_7 (29), ULEB128_7 (0),
-+ };
-+
-+ abi_info->initial_instructions = abi_cfi;
-+ abi_info->initial_instructions_end = &abi_cfi[sizeof abi_cfi];
-+ abi_info->data_alignment_factor = 4;
-+
-+ abi_info->return_address_register = 31; /* $31 */
-+
-+ return 0;
-+}
-diff --git a/backends/mips_init.c b/backends/mips_init.c
-index 8482e7f..bce5abe 100644
---- a/backends/mips_init.c
-+++ b/backends/mips_init.c
-@@ -50,6 +50,7 @@ mips_init (Elf *elf __attribute__ ((unused)),
- HOOK (eh, reloc_simple_type);
- HOOK (eh, return_value_location);
- HOOK (eh, register_info);
-+ HOOK (eh, abi_cfi);
-
- return MODVERSION;
- }
diff --git a/meta/recipes-devtools/elfutils/files/debian/mips_readelf_w.patch b/meta/recipes-devtools/elfutils/files/debian/mips_readelf_w.patch
deleted file mode 100644
index c6d42e163a..0000000000
--- a/meta/recipes-devtools/elfutils/files/debian/mips_readelf_w.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 7bdc83296865cf2b2a5615dbdb7ac0d441fb1849 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 21 Aug 2019 16:55:01 +0800
-Subject: [PATCH] mips_readelf_w
-
-Upstream-Status: Pending [from debian]
-
-Rebase to 0.177
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- src/readelf.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/readelf.c b/src/readelf.c
-index 2084fb1..5c02a9b 100644
---- a/src/readelf.c
-+++ b/src/readelf.c
-@@ -11256,7 +11256,8 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr)
- GElf_Shdr shdr_mem;
- GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
-
-- if (shdr != NULL && shdr->sh_type == SHT_PROGBITS)
-+ if (shdr != NULL && (
-+ (shdr->sh_type == SHT_PROGBITS) || (shdr->sh_type == SHT_MIPS_DWARF)))
- {
- static const struct
- {
---
-2.7.4
-
diff --git a/meta/recipes-devtools/elfutils/files/debian/testsuite-ignore-elflint.diff b/meta/recipes-devtools/elfutils/files/debian/testsuite-ignore-elflint.diff
deleted file mode 100644
index e6d7948c67..0000000000
--- a/meta/recipes-devtools/elfutils/files/debian/testsuite-ignore-elflint.diff
+++ /dev/null
@@ -1,52 +0,0 @@
-From 6393b0e57872b3ffedf0dbd6784cd29694010878 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 21 Aug 2019 16:59:01 +0800
-Subject: [PATCH 1/2] testsuite-ignore-elflint
-
-Upstream-Status: Pending [from debian]
-
-Rebase to 0.177
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- tests/run-elflint-self.sh | 2 +-
- tests/test-subr.sh | 15 +++++++++++++++
- 2 files changed, 16 insertions(+), 1 deletion(-)
-
-diff --git a/tests/run-elflint-self.sh b/tests/run-elflint-self.sh
-index 58fa7d0..85d21a5 100755
---- a/tests/run-elflint-self.sh
-+++ b/tests/run-elflint-self.sh
-@@ -18,5 +18,5 @@
-
- . $srcdir/test-subr.sh
-
--testrun_on_self ${abs_top_builddir}/src/elflint --quiet --gnu-ld
-+testrun_on_self_skip ${abs_top_builddir}/src/elflint --quiet --gnu-ld
- testrun_on_self_compressed ${abs_top_builddir}/src/elflint --quiet --gnu-ld
-diff --git a/tests/test-subr.sh b/tests/test-subr.sh
-index 09f428d..26f61f1 100644
---- a/tests/test-subr.sh
-+++ b/tests/test-subr.sh
-@@ -201,3 +201,18 @@ testrun_on_self_quiet()
- # Only exit if something failed
- if test $exit_status != 0; then exit $exit_status; fi
- }
-+
-+# Same as testrun_on_self(), but skip on failure.
-+testrun_on_self_skip()
-+{
-+ exit_status=0
-+
-+ for file in $self_test_files; do
-+ testrun $* $file \
-+ || { echo "*** failure in $* $file"; exit_status=77; }
-+ done
-+
-+ # Only exit if something failed
-+ if test $exit_status != 0; then exit $exit_status; fi
-+}
-+
---
-2.7.4
-
diff --git a/meta/recipes-devtools/fdisk/gptfdisk/0001-gptcurses-correctly-include-curses.h.patch b/meta/recipes-devtools/fdisk/gptfdisk/0001-gptcurses-correctly-include-curses.h.patch
new file mode 100644
index 0000000000..67689e838a
--- /dev/null
+++ b/meta/recipes-devtools/fdisk/gptfdisk/0001-gptcurses-correctly-include-curses.h.patch
@@ -0,0 +1,27 @@
+From 607b0bed5e8a5f5c3754cd6ffcf499d8134c37f9 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 30 Mar 2020 17:11:19 +0200
+Subject: [PATCH] gptcurses: correctly include curses.h
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ gptcurses.cc | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/gptcurses.cc b/gptcurses.cc
+index 1b18cf2..4ebfde1 100644
+--- a/gptcurses.cc
++++ b/gptcurses.cc
+@@ -23,11 +23,7 @@
+ #include <iostream>
+ #include <string>
+ #include <sstream>
+-#ifdef __APPLE__
+ #include <ncurses.h>
+-#else
+-#include <ncursesw/ncurses.h>
+-#endif
+ #include "gptcurses.h"
+ #include "support.h"
+
diff --git a/meta/recipes-devtools/fdisk/gptfdisk_1.0.4.bb b/meta/recipes-devtools/fdisk/gptfdisk_1.0.5.bb
index b043c96543..c7850f03ca 100644
--- a/meta/recipes-devtools/fdisk/gptfdisk_1.0.4.bb
+++ b/meta/recipes-devtools/fdisk/gptfdisk_1.0.5.bb
@@ -6,9 +6,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
DEPENDS = "util-linux"
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${PV}/${BP}.tar.gz"
-SRC_URI[md5sum] = "5ecc3c44913bb6b53d3708d1ac7ac295"
-SRC_URI[sha256sum] = "b663391a6876f19a3cd901d862423a16e2b5ceaa2f4a3b9bb681e64b9c7ba78d"
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${PV}/${BP}.tar.gz \
+ file://0001-gptcurses-correctly-include-curses.h.patch \
+ "
+SRC_URI[md5sum] = "58dac67c85e46ca87b587231549aefe6"
+SRC_URI[sha256sum] = "0e7d3987cd0488ecaf4b48761bc97f40b1dc089e5ff53c4b37abe30bc67dcb2f"
UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/gptfdisk/files/gptfdisk/"
UPSTREAM_CHECK_REGEX = "/gptfdisk/(?P<pver>(\d+[\.\-_]*)+)/"
diff --git a/meta/recipes-devtools/file/file_5.38.bb b/meta/recipes-devtools/file/file_5.39.bb
index 99c75988c2..0dcc90548a 100644
--- a/meta/recipes-devtools/file/file_5.38.bb
+++ b/meta/recipes-devtools/file/file_5.39.bb
@@ -8,23 +8,28 @@ SECTION = "console/utils"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://COPYING;beginline=2;md5=0251eaec1188b20d9a72c502ecfdda1b"
-DEPENDS = "zlib file-replacement-native"
-DEPENDS_class-native = "zlib-native"
+DEPENDS = "file-replacement-native"
+DEPENDS_class-native = "bzip2-replacement-native"
SRC_URI = "git://github.com/file/file.git"
-SRCREV = "ec41083645689a787cdd00cb3b5bf578aa79e46c"
+SRCREV = "87731415de945660b00f02207d8e9d986ef9b82e"
S = "${WORKDIR}/git"
inherit autotools update-alternatives
+PACKAGECONFIG ??= "zlib"
+PACKAGECONFIG[bz2] = "--enable-bzlib, --disable-bzlib, bzip2"
+PACKAGECONFIG[lzma] = "--enable-xzlib, --disable-xzlib, xz"
+PACKAGECONFIG[zlib] = "--enable-zlib, --disable-zlib, zlib"
+
EXTRA_OECONF += "--disable-libseccomp"
ALTERNATIVE_${PN} = "file"
ALTERNATIVE_LINK_NAME[file] = "${bindir}/file"
-EXTRA_OEMAKE_append_class-target = "-e FILE_COMPILE=${STAGING_BINDIR_NATIVE}/file-native/file"
-EXTRA_OEMAKE_append_class-nativesdk = "-e FILE_COMPILE=${STAGING_BINDIR_NATIVE}/file-native/file"
+EXTRA_OEMAKE_append_class-target = " -e FILE_COMPILE=${STAGING_BINDIR_NATIVE}/file-native/file"
+EXTRA_OEMAKE_append_class-nativesdk = " -e FILE_COMPILE=${STAGING_BINDIR_NATIVE}/file-native/file"
FILES_${PN} += "${datadir}/misc/*.mgc"
diff --git a/meta/recipes-devtools/flex/flex/check-funcs.patch b/meta/recipes-devtools/flex/flex/check-funcs.patch
new file mode 100644
index 0000000000..762275e7f8
--- /dev/null
+++ b/meta/recipes-devtools/flex/flex/check-funcs.patch
@@ -0,0 +1,67 @@
+Subject: build: Move dnl comments out of AC_CHECK_FUNCS
+
+Due to a bug, autoheader (2.69) will treat M4 dnl comments in a quoted
+argument of AC_CHECK_FUNCS as function tokens and generate a lot of
+redundant and useless HAVE_* macros in config.h.in.
+(Examples: HAVE_DNL, HAVE_AVAILABLE_, HAVE_BY)
+
+It seems to be this commit dbb4e94dc7bacbcfd4acef4f085ef752fe1aa03f of
+mine that revealed this autoheader bug, and the affected config.h.in
+had been shipped within flex-2.6.4 release tarball.
+
+I have reported the autoheader bug here:
+<https://lists.gnu.org/archive/html/bug-autoconf/2018-02/msg00005.html>
+
+As a workaround, let's move comments out of AC_CHECK_FUNCS.
+
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+Signed-off-by: Kang-Che Sung <explorer09@gmail.com>
+Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
+---
+ configure.ac | 28 +++++++++++++---------------
+ 1 file changed, 13 insertions(+), 15 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 55e774b..5ea3a93 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -153,21 +153,19 @@ AC_FUNC_REALLOC
+ AS_IF([test "$cross_compiling" = yes],
+ AC_MSG_WARN([result $ac_cv_func_realloc_0_nonnull guessed because of cross compilation]))
+
+-AC_CHECK_FUNCS([dup2 dnl
+-memset dnl
+-regcomp dnl
+-strcasecmp dnl
+-strchr dnl
+-strdup dnl
+-strtol dnl
+-], [], [AC_MSG_ERROR(required library function not found on your system)])
+-
+-# Optional library functions
+-AC_CHECK_FUNCS([dnl
+-pow dnl Used only by "examples/manual/expr"
+-setlocale dnl Needed only if NLS is enabled
+-reallocarray dnl OpenBSD function. We have replacement if not available.
+-])
++dnl Autoheader (<= 2.69) bug: "dnl" comments in a quoted argument of
++dnl AC_CHECK_FUNCS will expand wierdly in config.h.in.
++dnl (https://lists.gnu.org/archive/html/bug-autoconf/2018-02/msg00005.html)
++
++AC_CHECK_FUNCS([dup2 memset regcomp strcasecmp strchr strdup strtol], [],
++ [AC_MSG_ERROR(required library function not found on your system)])
++
++# Optional library functions:
++# pow - Used only by "examples/manual/expr".
++# setlocale - Needed only if NLS is enabled.
++# reallocarr - NetBSD function. Use reallocarray if not available.
++# reallocarray - OpenBSD function. We have replacement if not available.
++AC_CHECK_FUNCS([pow setlocale reallocarr reallocarray])
+
+ AC_CONFIG_FILES(
+ Makefile
+--
+2.25.1
+
diff --git a/meta/recipes-devtools/flex/flex_2.6.4.bb b/meta/recipes-devtools/flex/flex_2.6.4.bb
index 43b2547fc6..3d57572865 100644
--- a/meta/recipes-devtools/flex/flex_2.6.4.bb
+++ b/meta/recipes-devtools/flex/flex_2.6.4.bb
@@ -15,6 +15,7 @@ SRC_URI = "https://github.com/westes/flex/releases/download/v${PV}/flex-${PV}.ta
file://0001-tests-add-a-target-for-building-tests-without-runnin.patch \
${@bb.utils.contains('PTEST_ENABLED', '1', '', 'file://disable-tests.patch', d)} \
file://0001-build-AC_USE_SYSTEM_EXTENSIONS-in-configure.ac.patch \
+ file://check-funcs.patch \
"
SRC_URI[md5sum] = "2882e3179748cc9f9c23ec593d6adc8d"
diff --git a/meta/recipes-devtools/gcc/gcc-9.2.inc b/meta/recipes-devtools/gcc/gcc-10.2.inc
index 2bae85afe3..7625af5110 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2.inc
+++ b/meta/recipes-devtools/gcc/gcc-10.2.inc
@@ -2,13 +2,13 @@ require gcc-common.inc
# Third digit in PV should be incremented after a minor release
-PV = "9.2.0"
+PV = "10.2.0"
# BINV should be incremented to a revision after a minor gcc release
-BINV = "9.2.0"
+BINV = "10.2.0"
-FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc-9.2:${FILE_DIRNAME}/gcc-9.2/backport:"
+FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc:${FILE_DIRNAME}/gcc/backport:"
DEPENDS =+ "mpfr gmp libmpc zlib flex-native"
NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native flex-native"
@@ -24,8 +24,8 @@ LIC_FILES_CHKSUM = "\
"
BASEURI ?= "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.xz"
-#RELEASE ?= "5a5ca2d"
-#BASEURI ?= "https://repo.or.cz/official-gcc.git/snapshot/${RELEASE}.tar.gz;downloadfilename=gcc-${RELEASE}.tar.gz"
+#RELEASE ?= "93a49d2d2292893b9b7f38132df949c70942838c"
+#BASEURI ?= "https://github.com/gcc-mirror/gcc/archive/${RELEASE}.zip;downloadfilename=gcc-${PV}-${RELEASE}.zip"
SRC_URI = "\
${BASEURI} \
file://0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \
@@ -47,36 +47,34 @@ SRC_URI = "\
file://0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch \
file://0018-export-CPP.patch \
file://0019-Ensure-target-gcc-headers-can-be-included.patch \
- file://0020-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch \
- file://0021-Don-t-search-host-directory-during-relink-if-inst_pr.patch \
- file://0022-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch \
- file://0023-aarch64-Add-support-for-musl-ldso.patch \
- file://0024-libcc1-fix-libcc1-s-install-path-and-rpath.patch \
- file://0025-handle-sysroot-support-for-nativesdk-gcc.patch \
- file://0026-Search-target-sysroot-gcc-version-specific-dirs-with.patch \
- file://0027-Fix-various-_FOR_BUILD-and-related-variables.patch \
- file://0028-nios2-Define-MUSL_DYNAMIC_LINKER.patch \
- file://0029-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch \
- file://0030-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch \
- file://0031-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch \
- file://0032-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch \
- file://0033-sync-gcc-stddef.h-with-musl.patch \
- file://0034-fix-segmentation-fault-in-precompiled-header-generat.patch \
- file://0035-Fix-for-testsuite-failure.patch \
- file://0036-Re-introduce-spe-commandline-options.patch \
- file://0037-Fix-up-libsanitizer-build-with-master-glibc.patch \
- file://CVE-2019-14250.patch \
- file://CVE-2019-15847_1.patch \
- file://CVE-2019-15847_2.patch \
- file://CVE-2019-15847_3.patch \
- file://re-PR-target-91102-aarch64-ICE-on-Linux-kernel-with-.patch \
+ file://0020-Don-t-search-host-directory-during-relink-if-inst_pr.patch \
+ file://0021-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch \
+ file://0022-aarch64-Add-support-for-musl-ldso.patch \
+ file://0023-libcc1-fix-libcc1-s-install-path-and-rpath.patch \
+ file://0024-handle-sysroot-support-for-nativesdk-gcc.patch \
+ file://0025-Search-target-sysroot-gcc-version-specific-dirs-with.patch \
+ file://0026-Fix-various-_FOR_BUILD-and-related-variables.patch \
+ file://0027-nios2-Define-MUSL_DYNAMIC_LINKER.patch \
+ file://0028-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch \
+ file://0029-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch \
+ file://0030-sync-gcc-stddef.h-with-musl.patch \
+ file://0031-fix-segmentation-fault-in-precompiled-header-generat.patch \
+ file://0032-Fix-for-testsuite-failure.patch \
+ file://0033-Re-introduce-spe-commandline-options.patch \
+ file://0034-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch \
+ file://0035-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch \
+ file://0036-mingw32-Enable-operation_not_supported.patch \
+ file://0037-libatomic-Do-not-enforce-march-on-aarch64.patch \
+ file://0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch \
+ file://0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch \
+ file://0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch \
+ file://0001-aarch64-Fix-up-__aarch64_cas16_acq_rel-fallback.patch \
"
-S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}"
-SRC_URI[md5sum] = "3818ad8600447f05349098232c2ddc78"
-SRC_URI[sha256sum] = "ea6ef08f121239da5695f76c9b33637a118dcf63e24164422231917fa61fb206"
+SRC_URI[sha256sum] = "b8dd4368bb9c7f0b98188317ee0254dd8cc99d1e3a18d0ff146c855fe16c1d8c"
+S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}"
# For dev release snapshotting
-#S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/official-gcc-${RELEASE}"
+#S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${RELEASE}"
#B = "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}"
# Language Overrides
@@ -92,7 +90,6 @@ EXTRA_OECONF_BASE = "\
${SSP} \
--enable-libitm \
--disable-bootstrap \
- --disable-libmudflap \
--with-system-zlib \
${@'--with-linker-hash-style=${LINKER_HASH_STYLE}' if '${LINKER_HASH_STYLE}' else ''} \
--enable-linker-build-id \
@@ -104,7 +101,6 @@ EXTRA_OECONF_BASE = "\
"
EXTRA_OECONF_INITIAL = "\
- --disable-libmudflap \
--disable-libgomp \
--disable-libitm \
--disable-libquadmath \
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0020-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch b/meta/recipes-devtools/gcc/gcc-9.2/0020-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch
deleted file mode 100644
index b0f96d06d4..0000000000
--- a/meta/recipes-devtools/gcc/gcc-9.2/0020-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 83bcd4cc47ae63971c888c117abd00dfd506532c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 20 Feb 2015 11:17:19 +0000
-Subject: [PATCH 20/36] gcc 4.8+ won't build with --disable-dependency-tracking
-
-since the *.Ppo files don't get created unless --enable-dependency-tracking is true.
-
-This patch ensures we only use those compiler options when its enabled.
-
-Upstream-Status: Submitted
-
-(Problem was already reported upstream, attached this patch there
-http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55930)
-
-RP
-2012/09/22
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- libatomic/Makefile.am | 3 ++-
- libatomic/Makefile.in | 3 ++-
- 2 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/libatomic/Makefile.am b/libatomic/Makefile.am
-index c1b7c73934a..ef43d62c07a 100644
---- a/libatomic/Makefile.am
-+++ b/libatomic/Makefile.am
-@@ -101,7 +101,8 @@ PAT_S = $(word 3,$(PAT_SPLIT))
- IFUNC_DEF = -DIFUNC_ALT=$(PAT_S)
- IFUNC_OPT = $(word $(PAT_S),$(IFUNC_OPTIONS))
-
--M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo
-+@AMDEP_TRUE@M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo
-+@AMDEP_FALSE@M_DEPS =
- M_SIZE = -DN=$(PAT_N)
- M_IFUNC = $(if $(PAT_S),$(IFUNC_DEF) $(IFUNC_OPT))
- M_FILE = $(PAT_BASE)_n.c
-diff --git a/libatomic/Makefile.in b/libatomic/Makefile.in
-index 29324e3e0ac..d5cdb4259ef 100644
---- a/libatomic/Makefile.in
-+++ b/libatomic/Makefile.in
-@@ -414,7 +414,8 @@ PAT_N = $(word 2,$(PAT_SPLIT))
- PAT_S = $(word 3,$(PAT_SPLIT))
- IFUNC_DEF = -DIFUNC_ALT=$(PAT_S)
- IFUNC_OPT = $(word $(PAT_S),$(IFUNC_OPTIONS))
--M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo
-+@AMDEP_TRUE@M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo
-+@AMDEP_FALSE@M_DEPS =
- M_SIZE = -DN=$(PAT_N)
- M_IFUNC = $(if $(PAT_S),$(IFUNC_DEF) $(IFUNC_OPT))
- M_FILE = $(PAT_BASE)_n.c
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0030-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch b/meta/recipes-devtools/gcc/gcc-9.2/0030-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch
deleted file mode 100644
index 38eab5a083..0000000000
--- a/meta/recipes-devtools/gcc/gcc-9.2/0030-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From 47467f3ab0fb2f2fcede81060fe8bb339d0909eb Mon Sep 17 00:00:00 2001
-From: Szabolcs Nagy <nsz@port70.net>
-Date: Wed, 28 Feb 2018 00:54:05 +0000
-Subject: [PATCH 10/12] ldbl128 config
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gcc/configure | 13 +++++++++++++
- gcc/configure.ac | 16 ++++++++++++++--
- 2 files changed, 27 insertions(+), 2 deletions(-)
-
-diff --git a/gcc/configure b/gcc/configure
-index 6121e163259..07ff8597d48 100755
---- a/gcc/configure
-+++ b/gcc/configure
-@@ -29309,6 +29309,15 @@ if test "${with_long_double_128+set}" = set; then :
- withval=$with_long_double_128; gcc_cv_target_ldbl128="$with_long_double_128"
- else
-
-+ case "$target" in
-+ s390*-*-linux-musl*)
-+ gcc_cv_target_ldbl128=yes
-+ ;;
-+ powerpc*-*-linux-musl*)
-+ gcc_cv_target_ldbl128=no
-+ ;;
-+ *)
-+
- if test $glibc_version_major -gt 2 \
- || ( test $glibc_version_major -eq 2 && test $glibc_version_minor -ge 4 ); then :
- gcc_cv_target_ldbl128=yes
-@@ -29320,6 +29329,10 @@ else
- && gcc_cv_target_ldbl128=yes
-
- fi
-+
-+ ;;
-+ esac
-+
- fi
-
- ;;
-diff --git a/gcc/configure.ac b/gcc/configure.ac
-index b066cc609e1..6c15ed898c0 100644
---- a/gcc/configure.ac
-+++ b/gcc/configure.ac
-@@ -5971,13 +5971,25 @@ case "$target" in
- AC_ARG_WITH(long-double-128,
- [AS_HELP_STRING([--with-long-double-128],
- [use 128-bit long double by default])],
-- gcc_cv_target_ldbl128="$with_long_double_128",
-+ gcc_cv_target_ldbl128="$with_long_double_128", [
-+ case "$target" in
-+ s390*-*-linux-musl*)
-+ gcc_cv_target_ldbl128=yes
-+ ;;
-+ powerpc*-*-linux-musl*)
-+ gcc_cv_target_ldbl128=no
-+ ;;
-+ *)]
- [GCC_GLIBC_VERSION_GTE_IFELSE([2], [4], [gcc_cv_target_ldbl128=yes], [
- [gcc_cv_target_ldbl128=no
- grep '^[ ]*#[ ]*define[ ][ ]*__LONG_DOUBLE_MATH_OPTIONAL' \
- $target_header_dir/bits/wordsize.h > /dev/null 2>&1 \
- && gcc_cv_target_ldbl128=yes
-- ]])])
-+ ]])]
-+ [
-+ ;;
-+ esac
-+ ])
- ;;
- esac
- if test x$gcc_cv_target_ldbl128 = xyes; then
---
-2.17.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0037-Fix-up-libsanitizer-build-with-master-glibc.patch b/meta/recipes-devtools/gcc/gcc-9.2/0037-Fix-up-libsanitizer-build-with-master-glibc.patch
deleted file mode 100644
index abe074c289..0000000000
--- a/meta/recipes-devtools/gcc/gcc-9.2/0037-Fix-up-libsanitizer-build-with-master-glibc.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 7ed24d12664319f34625a12fd8c0f729a0e71f5c Mon Sep 17 00:00:00 2001
-From: Auto Builder <ab@rdk>
-Date: Sun, 22 Dec 2019 02:58:24 +0000
-Subject: [PATCH] Fix up libsanitizer build with master glibc
-
-2019-11-26 Jakub Jelinek <jakub@redhat.com>
-
- PR sanitizer/92154
- * sanitizer_common/sanitizer_platform_limits_posix.h: Cherry-pick
- llvm-project revision 947f9692440836dcb8d88b74b69dd379d85974ce.
- * sanitizer_common/sanitizer_platform_limits_posix.cpp: Likewise.
-
-Upstream-Status: Backport [https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=b02486e0951bc0ed38310a03be73e479fc6f3e7a;hp=3feeac76ffc38427de2d7d086e2928e63eee2d44]
-Signed-off-by: Auto Builder <ab@rdk>
----
- .../sanitizer_platform_limits_posix.cc | 5 +++--
- .../sanitizer_platform_limits_posix.h | 15 +--------------
- 2 files changed, 4 insertions(+), 16 deletions(-)
-
-diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
-index 6cd4a5bac..d823a1219 100644
---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
-+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc
-@@ -1156,8 +1156,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid);
- CHECK_SIZE_AND_OFFSET(ipc_perm, gid);
- CHECK_SIZE_AND_OFFSET(ipc_perm, cuid);
- CHECK_SIZE_AND_OFFSET(ipc_perm, cgid);
--#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)
--/* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */
-+#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31)
-+/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit
-+ on many architectures. */
- CHECK_SIZE_AND_OFFSET(ipc_perm, mode);
- #endif
-
-diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
-index 73af92af1..6a673a7c9 100644
---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
-+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
-@@ -211,26 +211,13 @@ namespace __sanitizer {
- u64 __unused1;
- u64 __unused2;
- #elif defined(__sparc__)
--#if defined(__arch64__)
- unsigned mode;
-- unsigned short __pad1;
--#else
-- unsigned short __pad1;
-- unsigned short mode;
- unsigned short __pad2;
--#endif
- unsigned short __seq;
- unsigned long long __unused1;
- unsigned long long __unused2;
--#elif defined(__mips__) || defined(__aarch64__) || defined(__s390x__)
-- unsigned int mode;
-- unsigned short __seq;
-- unsigned short __pad1;
-- unsigned long __unused1;
-- unsigned long __unused2;
- #else
-- unsigned short mode;
-- unsigned short __pad1;
-+ unsigned int mode;
- unsigned short __seq;
- unsigned short __pad2;
- #if defined(__x86_64__) && !defined(_LP64)
---
-2.17.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-14250.patch b/meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-14250.patch
deleted file mode 100644
index 65ea34558a..0000000000
--- a/meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-14250.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 517b211a3d78366ca8d5929f580e8ca72fd2c004 Mon Sep 17 00:00:00 2001
-From: rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Thu, 25 Jul 2019 10:46:54 +0000
-Subject: [PATCH] 2019-07-25 Richard Biener <rguenther@suse.de>
-
- PR lto/90924
- Backport from mainline
- 2019-07-12 Ren Kimura <rkx1209dev@gmail.com>
-
- * simple-object-elf.c (simple_object_elf_match): Check zero value
- shstrndx.
-
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-9-branch@273793 138bc75d-0d04-0410-961f-82ee72b054a4
-
-Upstream-Status: Backport
-Affectes: < 9.2
-CVE: CVE-2019-14250
-Dropped changelog
-Signed-off-by: Armin Kuster <Akustre@mvista.com>
-
----
- libiberty/simple-object-elf.c | 8 ++++++++
- 2 files changed, 17 insertions(+)
-
-Index: gcc-9.2.0/libiberty/simple-object-elf.c
-===================================================================
---- gcc-9.2.0.orig/libiberty/simple-object-elf.c
-+++ gcc-9.2.0/libiberty/simple-object-elf.c
-@@ -557,6 +557,14 @@ simple_object_elf_match (unsigned char h
- return NULL;
- }
-
-+ if (eor->shstrndx == 0)
-+ {
-+ *errmsg = "invalid ELF shstrndx == 0";
-+ *err = 0;
-+ XDELETE (eor);
-+ return NULL;
-+ }
-+
- return (void *) eor;
- }
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-15847_1.patch b/meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-15847_1.patch
deleted file mode 100644
index 227fd47c95..0000000000
--- a/meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-15847_1.patch
+++ /dev/null
@@ -1,521 +0,0 @@
-From 8c61566116d23063ff597271884f8e00d94ab1a1 Mon Sep 17 00:00:00 2001
-From: segher <segher@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Fri, 30 Aug 2019 13:48:48 +0000
-Subject: [PATCH] Backport from trunk 2019-08-22 Segher Boessenkool
- <segher@kernel.crashing.org>
-
- * config/rs6000/altivec.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
- UNSPEC_DARN_RAW, UNSPEC_CMPRB, UNSPEC_CMPRB2, UNSPEC_CMPEQB; move to...
- * config/rs6000/rs6000.md (unspec): ... here.
- * config/rs6000/altivec.md (darn_32, darn_raw, darn, cmprb,
- *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
- cmpeqb, *cmpeqb_internal): Delete, move to...
- * config/rs6000/rs6000.md (darn_32, darn_raw, darn, cmprb,
- *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
- cmpeqb, *cmpeqb_internal): ... here.
-
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-9-branch@275170 138bc75d-0d04-0410-961f-82ee72b054a4
-
-Upstream-Status: Backport
-CVE: CVE-2019-15847 p1
-Affects <= 9.2.0
-Dropped Changelog changes
-Signed-off-by: Armin Kuster <akuster@mvista.com>
-
----
- gcc/config/rs6000/altivec.md | 223 ----------------------------------
- gcc/config/rs6000/rs6000.md | 224 +++++++++++++++++++++++++++++++++++
- 3 files changed, 239 insertions(+), 223 deletions(-)
-
-Index: gcc-9.2.0/gcc/config/rs6000/altivec.md
-===================================================================
---- gcc-9.2.0.orig/gcc/config/rs6000/altivec.md
-+++ gcc-9.2.0/gcc/config/rs6000/altivec.md
-@@ -80,9 +80,6 @@
- UNSPEC_VUPKHPX
- UNSPEC_VUPKLPX
- UNSPEC_CONVERT_4F32_8I16
-- UNSPEC_DARN
-- UNSPEC_DARN_32
-- UNSPEC_DARN_RAW
- UNSPEC_DST
- UNSPEC_DSTT
- UNSPEC_DSTST
-@@ -161,9 +158,6 @@
- UNSPEC_BCDADD
- UNSPEC_BCDSUB
- UNSPEC_BCD_OVERFLOW
-- UNSPEC_CMPRB
-- UNSPEC_CMPRB2
-- UNSPEC_CMPEQB
- UNSPEC_VRLMI
- UNSPEC_VRLNM
- ])
-@@ -4101,223 +4095,6 @@
- "bcd<bcd_add_sub>. %0,%1,%2,%3"
- [(set_attr "type" "vecsimple")])
-
--(define_insn "darn_32"
-- [(set (match_operand:SI 0 "register_operand" "=r")
-- (unspec:SI [(const_int 0)] UNSPEC_DARN_32))]
-- "TARGET_P9_MISC"
-- "darn %0,0"
-- [(set_attr "type" "integer")])
--
--(define_insn "darn_raw"
-- [(set (match_operand:DI 0 "register_operand" "=r")
-- (unspec:DI [(const_int 0)] UNSPEC_DARN_RAW))]
-- "TARGET_P9_MISC && TARGET_64BIT"
-- "darn %0,2"
-- [(set_attr "type" "integer")])
--
--(define_insn "darn"
-- [(set (match_operand:DI 0 "register_operand" "=r")
-- (unspec:DI [(const_int 0)] UNSPEC_DARN))]
-- "TARGET_P9_MISC && TARGET_64BIT"
-- "darn %0,1"
-- [(set_attr "type" "integer")])
--
--;; Test byte within range.
--;;
--;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx
--;; represents a byte whose value is ignored in this context and
--;; vv, the least significant byte, holds the byte value that is to
--;; be tested for membership within the range specified by operand 2.
--;; The bytes of operand 2 are organized as xx:xx:hi:lo.
--;;
--;; Return in target register operand 0 a value of 1 if lo <= vv and
--;; vv <= hi. Otherwise, set register operand 0 to 0.
--;;
--;; Though the instructions to which this expansion maps operate on
--;; 64-bit registers, the current implementation only operates on
--;; SI-mode operands as the high-order bits provide no information
--;; that is not already available in the low-order bits. To avoid the
--;; costs of data widening operations, future enhancements might allow
--;; DI mode for operand 0 and/or might allow operand 1 to be QI mode.
--(define_expand "cmprb"
-- [(set (match_dup 3)
-- (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r")
-- (match_operand:SI 2 "gpc_reg_operand" "r")]
-- UNSPEC_CMPRB))
-- (set (match_operand:SI 0 "gpc_reg_operand" "=r")
-- (if_then_else:SI (lt (match_dup 3)
-- (const_int 0))
-- (const_int -1)
-- (if_then_else (gt (match_dup 3)
-- (const_int 0))
-- (const_int 1)
-- (const_int 0))))]
-- "TARGET_P9_MISC"
--{
-- operands[3] = gen_reg_rtx (CCmode);
--})
--
--;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx
--;; represents a byte whose value is ignored in this context and
--;; vv, the least significant byte, holds the byte value that is to
--;; be tested for membership within the range specified by operand 2.
--;; The bytes of operand 2 are organized as xx:xx:hi:lo.
--;;
--;; Set bit 1 (the GT bit, 0x4) of CR register operand 0 to 1 if
--;; lo <= vv and vv <= hi. Otherwise, set the GT bit to 0. The other
--;; 3 bits of the target CR register are all set to 0.
--(define_insn "*cmprb_internal"
-- [(set (match_operand:CC 0 "cc_reg_operand" "=y")
-- (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r")
-- (match_operand:SI 2 "gpc_reg_operand" "r")]
-- UNSPEC_CMPRB))]
-- "TARGET_P9_MISC"
-- "cmprb %0,0,%1,%2"
-- [(set_attr "type" "logical")])
--
--;; Set operand 0 register to -1 if the LT bit (0x8) of condition
--;; register operand 1 is on. Otherwise, set operand 0 register to 1
--;; if the GT bit (0x4) of condition register operand 1 is on.
--;; Otherwise, set operand 0 to 0. Note that the result stored into
--;; register operand 0 is non-zero iff either the LT or GT bits are on
--;; within condition register operand 1.
--(define_insn "setb_signed"
-- [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
-- (if_then_else:SI (lt (match_operand:CC 1 "cc_reg_operand" "y")
-- (const_int 0))
-- (const_int -1)
-- (if_then_else (gt (match_dup 1)
-- (const_int 0))
-- (const_int 1)
-- (const_int 0))))]
-- "TARGET_P9_MISC"
-- "setb %0,%1"
-- [(set_attr "type" "logical")])
--
--(define_insn "setb_unsigned"
-- [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
-- (if_then_else:SI (ltu (match_operand:CCUNS 1 "cc_reg_operand" "y")
-- (const_int 0))
-- (const_int -1)
-- (if_then_else (gtu (match_dup 1)
-- (const_int 0))
-- (const_int 1)
-- (const_int 0))))]
-- "TARGET_P9_MISC"
-- "setb %0,%1"
-- [(set_attr "type" "logical")])
--
--;; Test byte within two ranges.
--;;
--;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx
--;; represents a byte whose value is ignored in this context and
--;; vv, the least significant byte, holds the byte value that is to
--;; be tested for membership within the range specified by operand 2.
--;; The bytes of operand 2 are organized as hi_1:lo_1:hi_2:lo_2.
--;;
--;; Return in target register operand 0 a value of 1 if (lo_1 <= vv and
--;; vv <= hi_1) or if (lo_2 <= vv and vv <= hi_2). Otherwise, set register
--;; operand 0 to 0.
--;;
--;; Though the instructions to which this expansion maps operate on
--;; 64-bit registers, the current implementation only operates on
--;; SI-mode operands as the high-order bits provide no information
--;; that is not already available in the low-order bits. To avoid the
--;; costs of data widening operations, future enhancements might allow
--;; DI mode for operand 0 and/or might allow operand 1 to be QI mode.
--(define_expand "cmprb2"
-- [(set (match_dup 3)
-- (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r")
-- (match_operand:SI 2 "gpc_reg_operand" "r")]
-- UNSPEC_CMPRB2))
-- (set (match_operand:SI 0 "gpc_reg_operand" "=r")
-- (if_then_else:SI (lt (match_dup 3)
-- (const_int 0))
-- (const_int -1)
-- (if_then_else (gt (match_dup 3)
-- (const_int 0))
-- (const_int 1)
-- (const_int 0))))]
-- "TARGET_P9_MISC"
--{
-- operands[3] = gen_reg_rtx (CCmode);
--})
--
--;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx
--;; represents a byte whose value is ignored in this context and
--;; vv, the least significant byte, holds the byte value that is to
--;; be tested for membership within the ranges specified by operand 2.
--;; The bytes of operand 2 are organized as hi_1:lo_1:hi_2:lo_2.
--;;
--;; Set bit 1 (the GT bit, 0x4) of CR register operand 0 to 1 if
--;; (lo_1 <= vv and vv <= hi_1) or if (lo_2 <= vv and vv <= hi_2).
--;; Otherwise, set the GT bit to 0. The other 3 bits of the target
--;; CR register are all set to 0.
--(define_insn "*cmprb2_internal"
-- [(set (match_operand:CC 0 "cc_reg_operand" "=y")
-- (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r")
-- (match_operand:SI 2 "gpc_reg_operand" "r")]
-- UNSPEC_CMPRB2))]
-- "TARGET_P9_MISC"
-- "cmprb %0,1,%1,%2"
-- [(set_attr "type" "logical")])
--
--;; Test byte membership within set of 8 bytes.
--;;
--;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx
--;; represents a byte whose value is ignored in this context and
--;; vv, the least significant byte, holds the byte value that is to
--;; be tested for membership within the set specified by operand 2.
--;; The bytes of operand 2 are organized as e0:e1:e2:e3:e4:e5:e6:e7.
--;;
--;; Return in target register operand 0 a value of 1 if vv equals one
--;; of the values e0, e1, e2, e3, e4, e5, e6, or e7. Otherwise, set
--;; register operand 0 to 0. Note that the 8 byte values held within
--;; operand 2 need not be unique.
--;;
--;; Though the instructions to which this expansion maps operate on
--;; 64-bit registers, the current implementation requires that operands
--;; 0 and 1 have mode SI as the high-order bits provide no information
--;; that is not already available in the low-order bits. To avoid the
--;; costs of data widening operations, future enhancements might allow
--;; DI mode for operand 0 and/or might allow operand 1 to be QI mode.
--(define_expand "cmpeqb"
-- [(set (match_dup 3)
-- (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r")
-- (match_operand:DI 2 "gpc_reg_operand" "r")]
-- UNSPEC_CMPEQB))
-- (set (match_operand:SI 0 "gpc_reg_operand" "=r")
-- (if_then_else:SI (lt (match_dup 3)
-- (const_int 0))
-- (const_int -1)
-- (if_then_else (gt (match_dup 3)
-- (const_int 0))
-- (const_int 1)
-- (const_int 0))))]
-- "TARGET_P9_MISC && TARGET_64BIT"
--{
-- operands[3] = gen_reg_rtx (CCmode);
--})
--
--;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx
--;; represents a byte whose value is ignored in this context and
--;; vv, the least significant byte, holds the byte value that is to
--;; be tested for membership within the set specified by operand 2.
--;; The bytes of operand 2 are organized as e0:e1:e2:e3:e4:e5:e6:e7.
--;;
--;; Set bit 1 (the GT bit, 0x4) of CR register operand 0 to 1 if vv
--;; equals one of the values e0, e1, e2, e3, e4, e5, e6, or e7. Otherwise,
--;; set the GT bit to zero. The other 3 bits of the target CR register
--;; are all set to 0.
--(define_insn "*cmpeqb_internal"
-- [(set (match_operand:CC 0 "cc_reg_operand" "=y")
-- (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r")
-- (match_operand:DI 2 "gpc_reg_operand" "r")]
-- UNSPEC_CMPEQB))]
-- "TARGET_P9_MISC && TARGET_64BIT"
-- "cmpeqb %0,%1,%2"
-- [(set_attr "type" "logical")])
--
- (define_expand "bcd<bcd_add_sub>_<code>"
- [(parallel [(set (reg:CCFP CR6_REGNO)
- (compare:CCFP
-Index: gcc-9.2.0/gcc/config/rs6000/rs6000.md
-===================================================================
---- gcc-9.2.0.orig/gcc/config/rs6000/rs6000.md
-+++ gcc-9.2.0/gcc/config/rs6000/rs6000.md
-@@ -137,6 +137,12 @@
- UNSPEC_LSQ
- UNSPEC_FUSION_GPR
- UNSPEC_STACK_CHECK
-+ UNSPEC_DARN
-+ UNSPEC_DARN_32
-+ UNSPEC_DARN_RAW
-+ UNSPEC_CMPRB
-+ UNSPEC_CMPRB2
-+ UNSPEC_CMPEQB
- UNSPEC_ADD_ROUND_TO_ODD
- UNSPEC_SUB_ROUND_TO_ODD
- UNSPEC_MUL_ROUND_TO_ODD
-@@ -14322,7 +14328,225 @@
- "xscmpuqp %0,%1,%2"
- [(set_attr "type" "veccmp")
- (set_attr "size" "128")])
-+
-+;; Miscellaneous ISA 3.0 (power9) instructions
-+
-+(define_insn "darn_32"
-+ [(set (match_operand:SI 0 "register_operand" "=r")
-+ (unspec:SI [(const_int 0)] UNSPEC_DARN_32))]
-+ "TARGET_P9_MISC"
-+ "darn %0,0"
-+ [(set_attr "type" "integer")])
-+
-+(define_insn "darn_raw"
-+ [(set (match_operand:DI 0 "register_operand" "=r")
-+ (unspec:DI [(const_int 0)] UNSPEC_DARN_RAW))]
-+ "TARGET_P9_MISC && TARGET_64BIT"
-+ "darn %0,2"
-+ [(set_attr "type" "integer")])
-+
-+(define_insn "darn"
-+ [(set (match_operand:DI 0 "register_operand" "=r")
-+ (unspec:DI [(const_int 0)] UNSPEC_DARN))]
-+ "TARGET_P9_MISC && TARGET_64BIT"
-+ "darn %0,1"
-+ [(set_attr "type" "integer")])
-+
-+;; Test byte within range.
-+;;
-+;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx
-+;; represents a byte whose value is ignored in this context and
-+;; vv, the least significant byte, holds the byte value that is to
-+;; be tested for membership within the range specified by operand 2.
-+;; The bytes of operand 2 are organized as xx:xx:hi:lo.
-+;;
-+;; Return in target register operand 0 a value of 1 if lo <= vv and
-+;; vv <= hi. Otherwise, set register operand 0 to 0.
-+;;
-+;; Though the instructions to which this expansion maps operate on
-+;; 64-bit registers, the current implementation only operates on
-+;; SI-mode operands as the high-order bits provide no information
-+;; that is not already available in the low-order bits. To avoid the
-+;; costs of data widening operations, future enhancements might allow
-+;; DI mode for operand 0 and/or might allow operand 1 to be QI mode.
-+(define_expand "cmprb"
-+ [(set (match_dup 3)
-+ (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r")
-+ (match_operand:SI 2 "gpc_reg_operand" "r")]
-+ UNSPEC_CMPRB))
-+ (set (match_operand:SI 0 "gpc_reg_operand" "=r")
-+ (if_then_else:SI (lt (match_dup 3)
-+ (const_int 0))
-+ (const_int -1)
-+ (if_then_else (gt (match_dup 3)
-+ (const_int 0))
-+ (const_int 1)
-+ (const_int 0))))]
-+ "TARGET_P9_MISC"
-+{
-+ operands[3] = gen_reg_rtx (CCmode);
-+})
-+
-+;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx
-+;; represents a byte whose value is ignored in this context and
-+;; vv, the least significant byte, holds the byte value that is to
-+;; be tested for membership within the range specified by operand 2.
-+;; The bytes of operand 2 are organized as xx:xx:hi:lo.
-+;;
-+;; Set bit 1 (the GT bit, 0x4) of CR register operand 0 to 1 if
-+;; lo <= vv and vv <= hi. Otherwise, set the GT bit to 0. The other
-+;; 3 bits of the target CR register are all set to 0.
-+(define_insn "*cmprb_internal"
-+ [(set (match_operand:CC 0 "cc_reg_operand" "=y")
-+ (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r")
-+ (match_operand:SI 2 "gpc_reg_operand" "r")]
-+ UNSPEC_CMPRB))]
-+ "TARGET_P9_MISC"
-+ "cmprb %0,0,%1,%2"
-+ [(set_attr "type" "logical")])
-+
-+;; Set operand 0 register to -1 if the LT bit (0x8) of condition
-+;; register operand 1 is on. Otherwise, set operand 0 register to 1
-+;; if the GT bit (0x4) of condition register operand 1 is on.
-+;; Otherwise, set operand 0 to 0. Note that the result stored into
-+;; register operand 0 is non-zero iff either the LT or GT bits are on
-+;; within condition register operand 1.
-+(define_insn "setb_signed"
-+ [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
-+ (if_then_else:SI (lt (match_operand:CC 1 "cc_reg_operand" "y")
-+ (const_int 0))
-+ (const_int -1)
-+ (if_then_else (gt (match_dup 1)
-+ (const_int 0))
-+ (const_int 1)
-+ (const_int 0))))]
-+ "TARGET_P9_MISC"
-+ "setb %0,%1"
-+ [(set_attr "type" "logical")])
-
-+(define_insn "setb_unsigned"
-+ [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
-+ (if_then_else:SI (ltu (match_operand:CCUNS 1 "cc_reg_operand" "y")
-+ (const_int 0))
-+ (const_int -1)
-+ (if_then_else (gtu (match_dup 1)
-+ (const_int 0))
-+ (const_int 1)
-+ (const_int 0))))]
-+ "TARGET_P9_MISC"
-+ "setb %0,%1"
-+ [(set_attr "type" "logical")])
-+
-+;; Test byte within two ranges.
-+;;
-+;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx
-+;; represents a byte whose value is ignored in this context and
-+;; vv, the least significant byte, holds the byte value that is to
-+;; be tested for membership within the range specified by operand 2.
-+;; The bytes of operand 2 are organized as hi_1:lo_1:hi_2:lo_2.
-+;;
-+;; Return in target register operand 0 a value of 1 if (lo_1 <= vv and
-+;; vv <= hi_1) or if (lo_2 <= vv and vv <= hi_2). Otherwise, set register
-+;; operand 0 to 0.
-+;;
-+;; Though the instructions to which this expansion maps operate on
-+;; 64-bit registers, the current implementation only operates on
-+;; SI-mode operands as the high-order bits provide no information
-+;; that is not already available in the low-order bits. To avoid the
-+;; costs of data widening operations, future enhancements might allow
-+;; DI mode for operand 0 and/or might allow operand 1 to be QI mode.
-+(define_expand "cmprb2"
-+ [(set (match_dup 3)
-+ (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r")
-+ (match_operand:SI 2 "gpc_reg_operand" "r")]
-+ UNSPEC_CMPRB2))
-+ (set (match_operand:SI 0 "gpc_reg_operand" "=r")
-+ (if_then_else:SI (lt (match_dup 3)
-+ (const_int 0))
-+ (const_int -1)
-+ (if_then_else (gt (match_dup 3)
-+ (const_int 0))
-+ (const_int 1)
-+ (const_int 0))))]
-+ "TARGET_P9_MISC"
-+{
-+ operands[3] = gen_reg_rtx (CCmode);
-+})
-+
-+;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx
-+;; represents a byte whose value is ignored in this context and
-+;; vv, the least significant byte, holds the byte value that is to
-+;; be tested for membership within the ranges specified by operand 2.
-+;; The bytes of operand 2 are organized as hi_1:lo_1:hi_2:lo_2.
-+;;
-+;; Set bit 1 (the GT bit, 0x4) of CR register operand 0 to 1 if
-+;; (lo_1 <= vv and vv <= hi_1) or if (lo_2 <= vv and vv <= hi_2).
-+;; Otherwise, set the GT bit to 0. The other 3 bits of the target
-+;; CR register are all set to 0.
-+(define_insn "*cmprb2_internal"
-+ [(set (match_operand:CC 0 "cc_reg_operand" "=y")
-+ (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r")
-+ (match_operand:SI 2 "gpc_reg_operand" "r")]
-+ UNSPEC_CMPRB2))]
-+ "TARGET_P9_MISC"
-+ "cmprb %0,1,%1,%2"
-+ [(set_attr "type" "logical")])
-+
-+;; Test byte membership within set of 8 bytes.
-+;;
-+;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx
-+;; represents a byte whose value is ignored in this context and
-+;; vv, the least significant byte, holds the byte value that is to
-+;; be tested for membership within the set specified by operand 2.
-+;; The bytes of operand 2 are organized as e0:e1:e2:e3:e4:e5:e6:e7.
-+;;
-+;; Return in target register operand 0 a value of 1 if vv equals one
-+;; of the values e0, e1, e2, e3, e4, e5, e6, or e7. Otherwise, set
-+;; register operand 0 to 0. Note that the 8 byte values held within
-+;; operand 2 need not be unique.
-+;;
-+;; Though the instructions to which this expansion maps operate on
-+;; 64-bit registers, the current implementation requires that operands
-+;; 0 and 1 have mode SI as the high-order bits provide no information
-+;; that is not already available in the low-order bits. To avoid the
-+;; costs of data widening operations, future enhancements might allow
-+;; DI mode for operand 0 and/or might allow operand 1 to be QI mode.
-+(define_expand "cmpeqb"
-+ [(set (match_dup 3)
-+ (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r")
-+ (match_operand:DI 2 "gpc_reg_operand" "r")]
-+ UNSPEC_CMPEQB))
-+ (set (match_operand:SI 0 "gpc_reg_operand" "=r")
-+ (if_then_else:SI (lt (match_dup 3)
-+ (const_int 0))
-+ (const_int -1)
-+ (if_then_else (gt (match_dup 3)
-+ (const_int 0))
-+ (const_int 1)
-+ (const_int 0))))]
-+ "TARGET_P9_MISC && TARGET_64BIT"
-+{
-+ operands[3] = gen_reg_rtx (CCmode);
-+})
-+
-+;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx
-+;; represents a byte whose value is ignored in this context and
-+;; vv, the least significant byte, holds the byte value that is to
-+;; be tested for membership within the set specified by operand 2.
-+;; The bytes of operand 2 are organized as e0:e1:e2:e3:e4:e5:e6:e7.
-+;;
-+;; Set bit 1 (the GT bit, 0x4) of CR register operand 0 to 1 if vv
-+;; equals one of the values e0, e1, e2, e3, e4, e5, e6, or e7. Otherwise,
-+;; set the GT bit to zero. The other 3 bits of the target CR register
-+;; are all set to 0.
-+(define_insn "*cmpeqb_internal"
-+ [(set (match_operand:CC 0 "cc_reg_operand" "=y")
-+ (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r")
-+ (match_operand:DI 2 "gpc_reg_operand" "r")]
-+ UNSPEC_CMPEQB))]
-+ "TARGET_P9_MISC && TARGET_64BIT"
-+ "cmpeqb %0,%1,%2"
-+ [(set_attr "type" "logical")])
-
-
- (include "sync.md")
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-15847_2.patch b/meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-15847_2.patch
deleted file mode 100644
index de7a83c23f..0000000000
--- a/meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-15847_2.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From 87bc784a7ca3a43182f7272241597a50d7491342 Mon Sep 17 00:00:00 2001
-From: segher <segher@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Fri, 30 Aug 2019 13:51:26 +0000
-Subject: [PATCH] Backport from trunk 2019-08-22 Segher Boessenkool
- <segher@kernel.crashing.org>
-
- PR target/91481
- * config/rs6000/rs6000.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
- and UNSPEC_DARN_RAW.
- (unspecv): New enumerator values UNSPECV_DARN, UNSPECV_DARN_32, and
- UNSPECV_DARN_RAW.
- (darn_32): Use an unspec_volatile, and UNSPECV_DARN_32.
- (darn_raw): Use an unspec_volatile, and UNSPECV_DARN_RAW.
- (darn): Use an unspec_volatile, and UNSPECV_DARN.
-
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-9-branch@275175 138bc75d-0d04-0410-961f-82ee72b054a4
-
-Upstream-Status: Backport
-CVE: CVE-2019-15847 p2
-Affects <= 9.2.0
-Dropped Changelog changes
-Signed-off-by: Armin Kuster <akuster@mvista.com>
-
----
- gcc/config/rs6000/rs6000.md | 12 ++++++------
- 2 files changed, 20 insertions(+), 6 deletions(-)
-
-Index: gcc-9.2.0/gcc/config/rs6000/rs6000.md
-===================================================================
---- gcc-9.2.0.orig/gcc/config/rs6000/rs6000.md
-+++ gcc-9.2.0/gcc/config/rs6000/rs6000.md
-@@ -137,9 +137,6 @@
- UNSPEC_LSQ
- UNSPEC_FUSION_GPR
- UNSPEC_STACK_CHECK
-- UNSPEC_DARN
-- UNSPEC_DARN_32
-- UNSPEC_DARN_RAW
- UNSPEC_CMPRB
- UNSPEC_CMPRB2
- UNSPEC_CMPEQB
-@@ -170,6 +167,9 @@
- UNSPECV_EH_RR ; eh_reg_restore
- UNSPECV_ISYNC ; isync instruction
- UNSPECV_MFTB ; move from time base
-+ UNSPECV_DARN ; darn 1 (deliver a random number)
-+ UNSPECV_DARN_32 ; darn 2
-+ UNSPECV_DARN_RAW ; darn 0
- UNSPECV_NLGR ; non-local goto receiver
- UNSPECV_MFFS ; Move from FPSCR
- UNSPECV_MFFSL ; Move from FPSCR light instruction version
-@@ -14333,21 +14333,21 @@
-
- (define_insn "darn_32"
- [(set (match_operand:SI 0 "register_operand" "=r")
-- (unspec:SI [(const_int 0)] UNSPEC_DARN_32))]
-+ (unspec_volatile:SI [(const_int 0)] UNSPECV_DARN_32))]
- "TARGET_P9_MISC"
- "darn %0,0"
- [(set_attr "type" "integer")])
-
- (define_insn "darn_raw"
- [(set (match_operand:DI 0 "register_operand" "=r")
-- (unspec:DI [(const_int 0)] UNSPEC_DARN_RAW))]
-+ (unspec_volatile:DI [(const_int 0)] UNSPECV_DARN_RAW))]
- "TARGET_P9_MISC && TARGET_64BIT"
- "darn %0,2"
- [(set_attr "type" "integer")])
-
- (define_insn "darn"
- [(set (match_operand:DI 0 "register_operand" "=r")
-- (unspec:DI [(const_int 0)] UNSPEC_DARN))]
-+ (unspec_volatile:DI [(const_int 0)] UNSPECV_DARN))]
- "TARGET_P9_MISC && TARGET_64BIT"
- "darn %0,1"
- [(set_attr "type" "integer")])
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-15847_3.patch b/meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-15847_3.patch
deleted file mode 100644
index ba7130ca7d..0000000000
--- a/meta/recipes-devtools/gcc/gcc-9.2/CVE-2019-15847_3.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From dc4c8dd9dbe70740ec7a684b0f35620249fb036a Mon Sep 17 00:00:00 2001
-From: segher <segher@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Fri, 30 Aug 2019 13:53:11 +0000
-Subject: [PATCH] Backport from trunk 2019-08-23 Segher Boessenkool
- <segher@kernel.crashing.org>
-
-gcc/testsuite/
- PR target/91481
- * gcc.target/powerpc/darn-3.c: New testcase.
-
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-9-branch@275176 138bc75d-0d04-0410-961f-82ee72b054a4
-
-Upstream-Status: Backport
-CVE: CVE-2019-15847 p3
-Affects <= 9.2.0
-Dropped Changelog changes
-Signed-off-by: Armin Kuster <akuster@mvista.com>
-
----
- gcc/testsuite/ChangeLog | 6 ++++++
- gcc/testsuite/gcc.target/powerpc/darn-3.c | 16 ++++++++++++++++
- 2 files changed, 22 insertions(+)
- create mode 100644 gcc/testsuite/gcc.target/powerpc/darn-3.c
-
-Index: gcc-9.2.0/gcc/testsuite/gcc.target/powerpc/darn-3.c
-===================================================================
---- /dev/null
-+++ gcc-9.2.0/gcc/testsuite/gcc.target/powerpc/darn-3.c
-@@ -0,0 +1,16 @@
-+/* { dg-do compile { target { powerpc*-*-* } } } */
-+/* { dg-skip-if "" { powerpc*-*-aix* } } */
-+/* { dg-options "-O2 -mdejagnu-cpu=power9" } */
-+
-+static int darn32(void) { return __builtin_darn_32(); }
-+
-+int four(void)
-+{
-+ int sum = 0;
-+ int i;
-+ for (i = 0; i < 4; i++)
-+ sum += darn32();
-+ return sum;
-+}
-+
-+/* { dg-final { scan-assembler-times {(?n)\mdarn .*,0\M} 4 } } */
-Index: gcc-9.2.0/gcc/testsuite/ChangeLog
-===================================================================
---- gcc-9.2.0.orig/gcc/testsuite/ChangeLog
-+++ gcc-9.2.0/gcc/testsuite/ChangeLog
-@@ -1,3 +1,11 @@
-+2019-08-30 Segher Boessenkool <segher@kernel.crashing.org>
-+
-+ Backport from trunk
-+ 2019-08-23 Segher Boessenkool <segher@kernel.crashing.org>
-+
-+ PR target/91481
-+ * gcc.target/powerpc/darn-3.c: New testcase.
-+
- 2019-08-12 Release Manager
-
- * GCC 9.2.0 released.
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/re-PR-target-91102-aarch64-ICE-on-Linux-kernel-with-.patch b/meta/recipes-devtools/gcc/gcc-9.2/re-PR-target-91102-aarch64-ICE-on-Linux-kernel-with-.patch
deleted file mode 100644
index c37e0bb9dd..0000000000
--- a/meta/recipes-devtools/gcc/gcc-9.2/re-PR-target-91102-aarch64-ICE-on-Linux-kernel-with-.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From efb0ee06f5c0186c2d1442ecd4dbbd55dbd97b44 Mon Sep 17 00:00:00 2001
-From: Vladimir Makarov <vmakarov@redhat.com>
-Date: Wed, 10 Jul 2019 16:07:10 +0000
-Subject: [PATCH] re PR target/91102 (aarch64 ICE on Linux kernel with -Os
- starting with r270266)
-
-2019-07-10 Vladimir Makarov <vmakarov@redhat.com>
-
- PR target/91102
- * lra-constraints.c (process_alt_operands): Don't match user
- defined regs only if they are early clobbers.
-
-2019-07-10 Vladimir Makarov <vmakarov@redhat.com>
-
- PR target/91102
- * gcc.target/aarch64/pr91102.c: New test.
-
-From-SVN: r273357
-Upstream-Status: Backport [https://github.com/gcc-mirror/gcc/commit/613caed2feb9cfc8158308670b59df3d031ec629]
-[takondra: dropped conflicting ChangeLog changes]
-Signed-off-by: Taras Kondratiuk <takondra@cisco.com>
----
- gcc/lra-constraints.c | 17 ++++++++++----
- gcc/testsuite/gcc.target/aarch64/pr91102.c | 26 ++++++++++++++++++++++
- 2 files changed, 39 insertions(+), 4 deletions(-)
- create mode 100644 gcc/testsuite/gcc.target/aarch64/pr91102.c
-
-diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c
-index cf33da8013e4..6382dbf852b6 100644
---- a/gcc/lra-constraints.c
-+++ b/gcc/lra-constraints.c
-@@ -2172,8 +2172,9 @@ process_alt_operands (int only_alternative)
- else
- {
- /* Operands don't match. If the operands are
-- different user defined explicit hard registers,
-- then we cannot make them match. */
-+ different user defined explicit hard
-+ registers, then we cannot make them match
-+ when one is early clobber operand. */
- if ((REG_P (*curr_id->operand_loc[nop])
- || SUBREG_P (*curr_id->operand_loc[nop]))
- && (REG_P (*curr_id->operand_loc[m])
-@@ -2192,9 +2193,17 @@ process_alt_operands (int only_alternative)
- && REG_P (m_reg)
- && HARD_REGISTER_P (m_reg)
- && REG_USERVAR_P (m_reg))
-- break;
-+ {
-+ int i;
-+
-+ for (i = 0; i < early_clobbered_regs_num; i++)
-+ if (m == early_clobbered_nops[i])
-+ break;
-+ if (i < early_clobbered_regs_num
-+ || early_clobber_p)
-+ break;
-+ }
- }
--
- /* Both operands must allow a reload register,
- otherwise we cannot make them match. */
- if (curr_alt[m] == NO_REGS)
-diff --git a/gcc/testsuite/gcc.target/aarch64/pr91102.c b/gcc/testsuite/gcc.target/aarch64/pr91102.c
-new file mode 100644
-index 000000000000..70b99045a48e
---- /dev/null
-+++ b/gcc/testsuite/gcc.target/aarch64/pr91102.c
-@@ -0,0 +1,26 @@
-+/* PR target/91102 */
-+/* { dg-do compile } */
-+/* { dg-options "-O2" } */
-+
-+int
-+foo (long d, long l)
-+{
-+ register long e asm ("x1") = d;
-+ register long f asm("x2") = l;
-+ asm ("" : : "r" (e), "r" (f));
-+ return 3;
-+}
-+
-+struct T { int i; int j; };
-+union S { long h; struct T t; };
-+
-+void
-+bar (union S b)
-+{
-+ while (1)
-+ {
-+ union S c = b;
-+ c.t.j++;
-+ b.h = foo (b.h, c.h);
-+ }
-+}
diff --git a/meta/recipes-devtools/gcc/gcc-configure-common.inc b/meta/recipes-devtools/gcc/gcc-configure-common.inc
index bb4f6923f2..a64c4caf00 100644
--- a/meta/recipes-devtools/gcc/gcc-configure-common.inc
+++ b/meta/recipes-devtools/gcc/gcc-configure-common.inc
@@ -33,6 +33,7 @@ EXTRA_OECONF = "\
--enable-libstdcxx-pch \
--program-prefix=${TARGET_PREFIX} \
--without-local-prefix \
+ --disable-install-libiberty \
${EXTRA_OECONF_BASE} \
${EXTRA_OECONF_GCC_FLOAT} \
${EXTRA_OECONF_PATHS} \
diff --git a/meta/recipes-devtools/gcc/gcc-cross-canadian.inc b/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
index 4aac345bec..d3875c94d3 100644
--- a/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
+++ b/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
@@ -106,13 +106,7 @@ do_install () {
rm -f ${D}${bindir}/*c++
# We don't care about the gcc-<version> copies
- rm -f ${D}${bindir}/*gcc-?.?*
-
- # We use libiberty from binutils
- rm -f ${D}${prefix}/${TARGET_SYS}/lib/libiberty.a
- # Not sure where the strange paths come from
- rm -f ${D}${libdir}/../lib/libiberty.a
- rm -f ${D}${libdir}/libiberty.a
+ rm -f ${D}${bindir}/*gcc-${BINV}*
# Cleanup empty directories which are not shipped
# we use rmdir instead of 'rm -f' to ensure the non empty directories are not deleted
@@ -145,6 +139,29 @@ do_install () {
chown -R root:root ${D}
cross_canadian_bindirlinks
+
+ for i in linux ${CANADIANEXTRAOS}
+ do
+ for v in ${CANADIANEXTRAVENDOR}
+ do
+ d=${D}${bindir}/../${TARGET_ARCH}$v-$i
+ install -d $d
+ for j in ${TARGET_PREFIX}gcc${EXEEXT} ${TARGET_PREFIX}g++${EXEEXT}
+ do
+ p=${TARGET_ARCH}$v-$i-`echo $j | sed -e s,${TARGET_PREFIX},,`
+ case $i in
+ *musl*)
+ rm -rf $d/$p
+ echo "#!/usr/bin/env sh" > $d/$p
+ echo "exec \`dirname \$0\`/../${TARGET_SYS}/$j -mmusl \$@" >> $d/$p
+ chmod 0755 $d/$p
+ ;;
+ *)
+ ;;
+ esac
+ done
+ done
+ done
}
ELFUTILS = "nativesdk-elfutils"
diff --git a/meta/recipes-devtools/gcc/gcc-cross-canadian_9.2.bb b/meta/recipes-devtools/gcc/gcc-cross-canadian_10.2.bb
index bf53c5cd78..bf53c5cd78 100644
--- a/meta/recipes-devtools/gcc/gcc-cross-canadian_9.2.bb
+++ b/meta/recipes-devtools/gcc/gcc-cross-canadian_10.2.bb
diff --git a/meta/recipes-devtools/gcc/gcc-cross.inc b/meta/recipes-devtools/gcc/gcc-cross.inc
index c68cdd5dc4..6fa8c274cd 100644
--- a/meta/recipes-devtools/gcc/gcc-cross.inc
+++ b/meta/recipes-devtools/gcc/gcc-cross.inc
@@ -117,10 +117,6 @@ do_install () {
cp ${S}/libquadmath/quadmath.h ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include/
cp ${S}/libquadmath/quadmath_weak.h ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include/
- # We use libiberty from binutils
- find ${D}${exec_prefix}/lib -name libiberty.a | xargs rm -f
- find ${D}${exec_prefix}/lib -name libiberty.h | xargs rm -f
-
find ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include-fixed -type f -not -name "README" -not -name limits.h -not -name syslimits.h | xargs rm -f
}
diff --git a/meta/recipes-devtools/gcc/gcc-cross_9.2.bb b/meta/recipes-devtools/gcc/gcc-cross_10.2.bb
index b43cca0c52..b43cca0c52 100644
--- a/meta/recipes-devtools/gcc/gcc-cross_9.2.bb
+++ b/meta/recipes-devtools/gcc/gcc-cross_10.2.bb
diff --git a/meta/recipes-devtools/gcc/gcc-crosssdk_9.2.bb b/meta/recipes-devtools/gcc/gcc-crosssdk_10.2.bb
index 40a6c4feff..40a6c4feff 100644
--- a/meta/recipes-devtools/gcc/gcc-crosssdk_9.2.bb
+++ b/meta/recipes-devtools/gcc/gcc-crosssdk_10.2.bb
diff --git a/meta/recipes-devtools/gcc/gcc-runtime.inc b/meta/recipes-devtools/gcc/gcc-runtime.inc
index b2c5d43bd4..9dcce26536 100644
--- a/meta/recipes-devtools/gcc/gcc-runtime.inc
+++ b/meta/recipes-devtools/gcc/gcc-runtime.inc
@@ -20,6 +20,9 @@ EXTRA_OECONF_append_libc-newlib = " --with-newlib"
# Disable ifuncs for libatomic on arm conflicts -march/-mcpu
EXTRA_OECONF_append_arm = " libat_cv_have_ifunc=no "
+EXTRA_OECONF_append_armeb = " libat_cv_have_ifunc=no "
+
+DISABLE_STATIC_class-nativesdk ?= ""
# Newlib does not support symbol versioning on libsdtcc++
SYMVERS_CONF_libc-newlib = ""
@@ -44,7 +47,6 @@ RUNTIMETARGET = "${RUNTIMELIBSSP} libstdc++-v3 libgomp libatomic ${RUNTIMELIBITM
RUNTIMETARGET_libc-newlib = "libstdc++-v3"
# libiberty
-# libmudflap
# libgfortran needs separate recipe due to libquadmath dependency
SLIB = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}"
@@ -136,6 +138,10 @@ do_install_append_class-target () {
ln -s ../${TARGET_SYS}/ext ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-${TARGET_OS}/ext
fi
+ if [ "${TARGET_ARCH}" == "x86_64" -a "${MULTILIB_VARIANTS}" != "" ];then
+ ln -sf ../${X86ARCH32}${TARGET_VENDOR}-${TARGET_OS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}/32
+ fi
+
if [ "${TCLIBC}" != "glibc" ]; then
case "${TARGET_OS}" in
"linux-musl" | "linux-*spe") extra_target_os="linux";;
@@ -164,9 +170,6 @@ PACKAGES = "\
libssp \
libssp-dev \
libssp-staticdev \
- libmudflap \
- libmudflap-dev \
- libmudflap-staticdev \
libquadmath \
libquadmath-dev \
libquadmath-staticdev \
@@ -239,23 +242,13 @@ SUMMARY_libquadmath-dev = "GNU quad-precision math library - development files"
FILES_libquadmath-staticdev = "${libdir}/libquadmath.a"
SUMMARY_libquadmath-staticdev = "GNU quad-precision math library - static development files"
-# NOTE: mudflap has been removed as of gcc 4.9 and has been superseded by the address sanitiser
-FILES_libmudflap = "${libdir}/libmudflap*.so.*"
-SUMMARY_libmudflap = "Pointer debugging library for gcc"
-FILES_libmudflap-dev = "\
- ${libdir}/libmudflap*.so \
- ${libdir}/libmudflap.la \
-"
-SUMMARY_libmudflap-dev = "Pointer debugging library for gcc - development files"
-FILES_libmudflap-staticdev = "${libdir}/libmudflap.a"
-SUMMARY_libmudflap-staticdev = "Pointer debugging library for gcc - static development files"
-
FILES_libgomp = "${libdir}/libgomp*${SOLIBS}"
SUMMARY_libgomp = "GNU OpenMP parallel programming library"
FILES_libgomp-dev = "\
${libdir}/libgomp*${SOLIBSDEV} \
${libdir}/libgomp*.la \
${libdir}/libgomp.spec \
+ ${libdir}/${TARGET_SYS}/${BINV}/include/acc_prof.h \
${libdir}/${TARGET_SYS}/${BINV}/include/omp.h \
${libdir}/${TARGET_SYS}/${BINV}/include/openacc.h \
"
diff --git a/meta/recipes-devtools/gcc/gcc-runtime_9.2.bb b/meta/recipes-devtools/gcc/gcc-runtime_10.2.bb
index dd430b57eb..dd430b57eb 100644
--- a/meta/recipes-devtools/gcc/gcc-runtime_9.2.bb
+++ b/meta/recipes-devtools/gcc/gcc-runtime_10.2.bb
diff --git a/meta/recipes-devtools/gcc/gcc-sanitizers_9.2.bb b/meta/recipes-devtools/gcc/gcc-sanitizers_10.2.bb
index f3c7058114..f3c7058114 100644
--- a/meta/recipes-devtools/gcc/gcc-sanitizers_9.2.bb
+++ b/meta/recipes-devtools/gcc/gcc-sanitizers_10.2.bb
diff --git a/meta/recipes-devtools/gcc/gcc-source_9.2.bb b/meta/recipes-devtools/gcc/gcc-source_10.2.bb
index b890fa33ea..b890fa33ea 100644
--- a/meta/recipes-devtools/gcc/gcc-source_9.2.bb
+++ b/meta/recipes-devtools/gcc/gcc-source_10.2.bb
diff --git a/meta/recipes-devtools/gcc/gcc-target.inc b/meta/recipes-devtools/gcc/gcc-target.inc
index 18d078db0a..1e25dad86b 100644
--- a/meta/recipes-devtools/gcc/gcc-target.inc
+++ b/meta/recipes-devtools/gcc/gcc-target.inc
@@ -15,10 +15,11 @@ EXTRA_OECONF_append_linuxstdbase = " --enable-clocale=gnu"
ARMFPARCHEXT ?= ""
-EXTRA_OECONF_append_armv6 = " --with-arch=armv6${ARMFPARCHEXT}"
-EXTRA_OECONF_append_armv7a = " --with-arch=armv7-a${ARMFPARCHEXT}"
-EXTRA_OECONF_append_armv7ve = " --with-arch=armv7ve${ARMFPARCHEXT}"
-EXTRA_OECONF_append_arc = " --with-cpu=${TUNE_PKGARCH}"
+EXTRA_OECONF_append_armv6_class-target = " --with-arch=armv6${ARMFPARCHEXT}"
+EXTRA_OECONF_append_armv7a_class-target = " --with-arch=armv7-a${ARMFPARCHEXT}"
+EXTRA_OECONF_append_armv7ve_class-target = " --with-arch=armv7ve${ARMFPARCHEXT}"
+EXTRA_OECONF_append_arc_class-target = " --with-cpu=${TUNE_PKGARCH}"
+EXTRA_OECONF_append_x86-64_class-target = " --with-arch=native"
# libcc1 requres gcc_cv_objdump when cross build, but gcc_cv_objdump is
# set in subdir gcc, so subdir libcc1 can't use it, export it here to
@@ -41,6 +42,7 @@ PACKAGES = "\
FILES_${PN} = "\
${bindir}/${TARGET_PREFIX}gcc* \
+ ${bindir}/${TARGET_PREFIX}lto* \
${libexecdir}/gcc/${TARGET_SYS}/${BINV}/collect2* \
${libexecdir}/gcc/${TARGET_SYS}/${BINV}/cc1plus \
${libexecdir}/gcc/${TARGET_SYS}/${BINV}/lto* \
@@ -179,6 +181,10 @@ do_install () {
# Cleanup manpages..
rm -rf ${D}${mandir}/man7
+ # Don't package details about the build host
+ rm -f ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/plugin/include/auto-build.h
+ rm -f ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/plugin/include/bconfig.h
+
cd ${D}${bindir}
# We care about g++ not c++
@@ -187,10 +193,6 @@ do_install () {
# We don't care about the gcc-<version> ones for this
rm -f *gcc-?.?*
- # We use libiberty from binutils
- find ${D}${libdir} -name libiberty.a | xargs rm -f
- find ${D}${libdir} -name libiberty.h | xargs rm -f
-
# Not sure why we end up with these but we don't want them...
rm -f ${TARGET_PREFIX}${TARGET_PREFIX}*
diff --git a/meta/recipes-devtools/gcc/gcc/0001-aarch64-Fix-up-__aarch64_cas16_acq_rel-fallback.patch b/meta/recipes-devtools/gcc/gcc/0001-aarch64-Fix-up-__aarch64_cas16_acq_rel-fallback.patch
new file mode 100644
index 0000000000..c060accd99
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc/0001-aarch64-Fix-up-__aarch64_cas16_acq_rel-fallback.patch
@@ -0,0 +1,66 @@
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From fd2ec4542fd2975e6d3f2f1c1a2639945a84f9e1 Mon Sep 17 00:00:00 2001
+From: Jakub Jelinek <jakub@redhat.com>
+Date: Mon, 3 Aug 2020 22:55:28 +0200
+Subject: [PATCH] aarch64: Fix up __aarch64_cas16_acq_rel fallback
+
+As mentioned in the PR, the fallback path when LSE is unavailable writes
+incorrect registers to the memory if the previous content compares equal
+to x0, x1 - it writes copy of x0, x1 from the start of function, but it
+should write x2, x3.
+
+2020-08-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/96402
+ * config/aarch64/lse.S (__aarch64_cas16_acq_rel): Use x2, x3 instead
+ of x(tmp0), x(tmp1) in STXP arguments.
+
+ * gcc.target/aarch64/pr96402.c: New test.
+
+(cherry picked from commit 90b43856fdff7d96d93d22970eca8a86c56e0ddc)
+---
+ gcc/testsuite/gcc.target/aarch64/pr96402.c | 16 ++++++++++++++++
+ libgcc/config/aarch64/lse.S | 2 +-
+ 2 files changed, 17 insertions(+), 1 deletion(-)
+ create mode 100644 gcc/testsuite/gcc.target/aarch64/pr96402.c
+
+diff --git a/gcc/testsuite/gcc.target/aarch64/pr96402.c b/gcc/testsuite/gcc.target/aarch64/pr96402.c
+new file mode 100644
+index 00000000000..fa2dddfac15
+--- /dev/null
++++ b/gcc/testsuite/gcc.target/aarch64/pr96402.c
+@@ -0,0 +1,16 @@
++/* PR target/96402 */
++/* { dg-do run { target int128 } } */
++/* { dg-options "-moutline-atomics" } */
++
++int
++main ()
++{
++ __int128 a = 0;
++ __sync_val_compare_and_swap (&a, (__int128) 0, (__int128) 1);
++ if (a != 1)
++ __builtin_abort ();
++ __sync_val_compare_and_swap (&a, (__int128) 1, (((__int128) 0xdeadbeeffeedbac1ULL) << 64) | 0xabadcafe00c0ffeeULL);
++ if (a != ((((__int128) 0xdeadbeeffeedbac1ULL) << 64) | 0xabadcafe00c0ffeeULL))
++ __builtin_abort ();
++ return 0;
++}
+diff --git a/libgcc/config/aarch64/lse.S b/libgcc/config/aarch64/lse.S
+index 64691c601c1..c8fbfbce4fd 100644
+--- a/libgcc/config/aarch64/lse.S
++++ b/libgcc/config/aarch64/lse.S
+@@ -203,7 +203,7 @@ STARTFN NAME(cas)
+ cmp x0, x(tmp0)
+ ccmp x1, x(tmp1), #0, eq
+ bne 1f
+- STXP w(tmp2), x(tmp0), x(tmp1), [x4]
++ STXP w(tmp2), x2, x3, [x4]
+ cbnz w(tmp2), 0b
+ 1: ret
+
+--
+2.26.2
+
diff --git a/meta/recipes-devtools/gcc/gcc/0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch b/meta/recipes-devtools/gcc/gcc/0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch
new file mode 100644
index 0000000000..73de4c7590
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc/0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch
@@ -0,0 +1,202 @@
+CVE: CVE-2020-13844
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From 1ff243934ac443b5f58cd02a5012ce58ecc31fb2 Mon Sep 17 00:00:00 2001
+From: Matthew Malcomson <matthew.malcomson@arm.com>
+Date: Thu, 9 Jul 2020 09:11:58 +0100
+Subject: [PATCH 1/3] aarch64: New Straight Line Speculation (SLS) mitigation
+ flags
+
+Here we introduce the flags that will be used for straight line speculation.
+
+The new flag introduced is `-mharden-sls=`.
+This flag can take arguments of `none`, `all`, or a comma seperated list of one
+or more of `retbr` or `blr`.
+`none` indicates no special mitigation of the straight line speculation
+vulnerability.
+`all` requests all mitigations currently implemented.
+`retbr` requests that the RET and BR instructions have a speculation barrier
+inserted after them.
+`blr` requests that BLR instructions are replaced by a BL to a function stub
+using a BR with a speculation barrier after it.
+
+Setting this on a per-function basis using attributes or the like is not
+enabled, but may be in the future.
+
+gcc/ChangeLog:
+
+2020-06-02 Matthew Malcomson <matthew.malcomson@arm.com>
+
+ * config/aarch64/aarch64-protos.h (aarch64_harden_sls_retbr_p):
+ New.
+ (aarch64_harden_sls_blr_p): New.
+ * config/aarch64/aarch64.c (enum aarch64_sls_hardening_type):
+ New.
+ (aarch64_harden_sls_retbr_p): New.
+ (aarch64_harden_sls_blr_p): New.
+ (aarch64_validate_sls_mitigation): New.
+ (aarch64_override_options): Parse options for SLS mitigation.
+ * config/aarch64/aarch64.opt (-mharden-sls): New option.
+ * doc/invoke.texi: Document new option.
+---
+ gcc/config/aarch64/aarch64-protos.h | 3 ++
+ gcc/config/aarch64/aarch64.c | 76 +++++++++++++++++++++++++++++++++++++
+ gcc/config/aarch64/aarch64.opt | 4 ++
+ gcc/doc/invoke.texi | 12 ++++++
+ 4 files changed, 95 insertions(+)
+
+diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h
+index 723d9ba..eb5f4b4 100644
+--- a/gcc/config/aarch64/aarch64-protos.h
++++ b/gcc/config/aarch64/aarch64-protos.h
+@@ -781,4 +781,7 @@ extern const atomic_ool_names aarch64_ool_ldeor_names;
+
+ tree aarch64_resolve_overloaded_builtin_general (location_t, tree, void *);
+
++extern bool aarch64_harden_sls_retbr_p (void);
++extern bool aarch64_harden_sls_blr_p (void);
++
+ #endif /* GCC_AARCH64_PROTOS_H */
+diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
+index b86434a..437a9cf 100644
+--- a/gcc/config/aarch64/aarch64.c
++++ b/gcc/config/aarch64/aarch64.c
+@@ -14494,6 +14494,79 @@ aarch64_validate_mcpu (const char *str, const struct processor **res,
+ return false;
+ }
+
++/* Straight line speculation indicators. */
++enum aarch64_sls_hardening_type
++{
++ SLS_NONE = 0,
++ SLS_RETBR = 1,
++ SLS_BLR = 2,
++ SLS_ALL = 3,
++};
++static enum aarch64_sls_hardening_type aarch64_sls_hardening;
++
++/* Return whether we should mitigatate Straight Line Speculation for the RET
++ and BR instructions. */
++bool
++aarch64_harden_sls_retbr_p (void)
++{
++ return aarch64_sls_hardening & SLS_RETBR;
++}
++
++/* Return whether we should mitigatate Straight Line Speculation for the BLR
++ instruction. */
++bool
++aarch64_harden_sls_blr_p (void)
++{
++ return aarch64_sls_hardening & SLS_BLR;
++}
++
++/* As of yet we only allow setting these options globally, in the future we may
++ allow setting them per function. */
++static void
++aarch64_validate_sls_mitigation (const char *const_str)
++{
++ char *token_save = NULL;
++ char *str = NULL;
++
++ if (strcmp (const_str, "none") == 0)
++ {
++ aarch64_sls_hardening = SLS_NONE;
++ return;
++ }
++ if (strcmp (const_str, "all") == 0)
++ {
++ aarch64_sls_hardening = SLS_ALL;
++ return;
++ }
++
++ char *str_root = xstrdup (const_str);
++ str = strtok_r (str_root, ",", &token_save);
++ if (!str)
++ error ("invalid argument given to %<-mharden-sls=%>");
++
++ int temp = SLS_NONE;
++ while (str)
++ {
++ if (strcmp (str, "blr") == 0)
++ temp |= SLS_BLR;
++ else if (strcmp (str, "retbr") == 0)
++ temp |= SLS_RETBR;
++ else if (strcmp (str, "none") == 0 || strcmp (str, "all") == 0)
++ {
++ error ("%<%s%> must be by itself for %<-mharden-sls=%>", str);
++ break;
++ }
++ else
++ {
++ error ("invalid argument %<%s%> for %<-mharden-sls=%>", str);
++ break;
++ }
++ str = strtok_r (NULL, ",", &token_save);
++ }
++ aarch64_sls_hardening = (aarch64_sls_hardening_type) temp;
++ free (str_root);
++}
++
+ /* Parses CONST_STR for branch protection features specified in
+ aarch64_branch_protect_types, and set any global variables required. Returns
+ the parsing result and assigns LAST_STR to the last processed token from
+@@ -14738,6 +14811,9 @@ aarch64_override_options (void)
+ selected_arch = NULL;
+ selected_tune = NULL;
+
++ if (aarch64_harden_sls_string)
++ aarch64_validate_sls_mitigation (aarch64_harden_sls_string);
++
+ if (aarch64_branch_protection_string)
+ aarch64_validate_mbranch_protection (aarch64_branch_protection_string);
+
+diff --git a/gcc/config/aarch64/aarch64.opt b/gcc/config/aarch64/aarch64.opt
+index d99d14c..5170361 100644
+--- a/gcc/config/aarch64/aarch64.opt
++++ b/gcc/config/aarch64/aarch64.opt
+@@ -71,6 +71,10 @@ mgeneral-regs-only
+ Target Report RejectNegative Mask(GENERAL_REGS_ONLY) Save
+ Generate code which uses only the general registers.
+
++mharden-sls=
++Target RejectNegative Joined Var(aarch64_harden_sls_string)
++Generate code to mitigate against straight line speculation.
++
+ mfix-cortex-a53-835769
+ Target Report Var(aarch64_fix_a53_err835769) Init(2) Save
+ Workaround for ARM Cortex-A53 Erratum number 835769.
+diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
+index a2794a6..bd5b77a 100644
+--- a/gcc/doc/invoke.texi
++++ b/gcc/doc/invoke.texi
+@@ -696,6 +696,7 @@ Objective-C and Objective-C++ Dialects}.
+ -msign-return-address=@var{scope} @gol
+ -mbranch-protection=@var{none}|@var{standard}|@var{pac-ret}[+@var{leaf}
+ +@var{b-key}]|@var{bti} @gol
++-mharden-sls=@var{opts} @gol
+ -march=@var{name} -mcpu=@var{name} -mtune=@var{name} @gol
+ -moverride=@var{string} -mverbose-cost-dump @gol
+ -mstack-protector-guard=@var{guard} -mstack-protector-guard-reg=@var{sysreg} @gol
+@@ -17065,6 +17066,17 @@ functions. The optional argument @samp{b-key} can be used to sign the functions
+ with the B-key instead of the A-key.
+ @samp{bti} turns on branch target identification mechanism.
+
++@item -mharden-sls=@var{opts}
++@opindex mharden-sls
++Enable compiler hardening against straight line speculation (SLS).
++@var{opts} is a comma-separated list of the following options:
++@table @samp
++@item retbr
++@item blr
++@end table
++In addition, @samp{-mharden-sls=all} enables all SLS hardening while
++@samp{-mharden-sls=none} disables all SLS hardening.
++
+ @item -msve-vector-bits=@var{bits}
+ @opindex msve-vector-bits
+ Specify the number of bits in an SVE vector register. This option only has
+--
+2.7.4
+
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch b/meta/recipes-devtools/gcc/gcc/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
index 9065c304b5..82ae9f8d14 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
+++ b/meta/recipes-devtools/gcc/gcc/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
@@ -1,7 +1,7 @@
-From 863325ec3c6eb4987be63509ac407b2d13617342 Mon Sep 17 00:00:00 2001
+From f2a5dc3bc7e5727d6bf77e1c6e8a31a6f000883d Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 08:37:11 +0400
-Subject: [PATCH 01/36] gcc-4.3.1: ARCH_FLAGS_FOR_TARGET
+Subject: [PATCH] gcc-4.3.1: ARCH_FLAGS_FOR_TARGET
Signed-off-by: Khem Raj <raj.khem@gmail.com>
@@ -12,10 +12,10 @@ Upstream-Status: Inappropriate [embedded specific]
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure b/configure
-index abd93a990a9..b121088d778 100755
+index 4cc938ebb7d..226a64939d1 100755
--- a/configure
+++ b/configure
-@@ -7603,7 +7603,7 @@ fi
+@@ -7722,7 +7722,7 @@ fi
# for target_alias and gcc doesn't manage it consistently.
target_configargs="--cache-file=./config.cache ${target_configargs}"
@@ -25,10 +25,10 @@ index abd93a990a9..b121088d778 100755
*" newlib "*)
case " $target_configargs " in
diff --git a/configure.ac b/configure.ac
-index 9db4fd14aa2..aad93c4d183 100644
+index c78d9cbea62..f024f4bac9b 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -3119,7 +3119,7 @@ fi
+@@ -3227,7 +3227,7 @@ fi
# for target_alias and gcc doesn't manage it consistently.
target_configargs="--cache-file=./config.cache ${target_configargs}"
@@ -37,6 +37,3 @@ index 9db4fd14aa2..aad93c4d183 100644
case " $target_configdirs " in
*" newlib "*)
case " $target_configargs " in
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc/0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch b/meta/recipes-devtools/gcc/gcc/0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch
new file mode 100644
index 0000000000..823cc8b668
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc/0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch
@@ -0,0 +1,607 @@
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From b1204d16e1ec96a4aa89e44de8990e2499ffdb22 Mon Sep 17 00:00:00 2001
+From: Matthew Malcomson <matthew.malcomson@arm.com>
+Date: Thu, 9 Jul 2020 09:11:59 +0100
+Subject: [PATCH 2/3] aarch64: Introduce SLS mitigation for RET and BR
+ instructions
+
+Instructions following RET or BR are not necessarily executed. In order
+to avoid speculation past RET and BR we can simply append a speculation
+barrier.
+
+Since these speculation barriers will not be architecturally executed,
+they are not expected to add a high performance penalty.
+
+The speculation barrier is to be SB when targeting architectures which
+have this enabled, and DSB SY + ISB otherwise.
+
+We add tests for each of the cases where such an instruction was seen.
+
+This is implemented by modifying each machine description pattern that
+emits either a RET or a BR instruction. We choose not to use something
+like `TARGET_ASM_FUNCTION_EPILOGUE` since it does not affect the
+`indirect_jump`, `jump`, `sibcall_insn` and `sibcall_value_insn`
+patterns and we find it preferable to implement the functionality in the
+same way for every pattern.
+
+There is one particular case which is slightly tricky. The
+implementation of TARGET_ASM_TRAMPOLINE_TEMPLATE uses a BR which needs
+to be mitigated against. The trampoline template is used *once* per
+compilation unit, and the TRAMPOLINE_SIZE is exposed to the user via the
+builtin macro __LIBGCC_TRAMPOLINE_SIZE__.
+In the future we may implement function specific attributes to turn on
+and off hardening on a per-function basis.
+The fixed nature of the trampoline described above implies it will be
+safer to ensure this speculation barrier is always used.
+
+Testing:
+ Bootstrap and regtest done on aarch64-none-linux
+ Used a temporary hack(1) to use these options on every test in the
+ testsuite and a script to check that the output never emitted an
+ unmitigated RET or BR.
+
+1) Temporary hack was a change to the testsuite to always use
+`-save-temps` and run a script on the assembly output of those
+compilations which produced one to ensure every RET or BR is immediately
+followed by a speculation barrier.
+
+gcc/ChangeLog:
+
+ * config/aarch64/aarch64-protos.h (aarch64_sls_barrier): New.
+ * config/aarch64/aarch64.c (aarch64_output_casesi): Emit
+ speculation barrier after BR instruction if needs be.
+ (aarch64_trampoline_init): Handle ptr_mode value & adjust size
+ of code copied.
+ (aarch64_sls_barrier): New.
+ (aarch64_asm_trampoline_template): Add needed barriers.
+ * config/aarch64/aarch64.h (AARCH64_ISA_SB): New.
+ (TARGET_SB): New.
+ (TRAMPOLINE_SIZE): Account for barrier.
+ * config/aarch64/aarch64.md (indirect_jump, *casesi_dispatch,
+ simple_return, *do_return, *sibcall_insn, *sibcall_value_insn):
+ Emit barrier if needs be, also account for possible barrier using
+ "sls_length" attribute.
+ (sls_length): New attribute.
+ (length): Determine default using any non-default sls_length
+ value.
+
+gcc/testsuite/ChangeLog:
+
+ * gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c: New test.
+ * gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c:
+ New test.
+ * gcc.target/aarch64/sls-mitigation/sls-mitigation.exp: New file.
+ * lib/target-supports.exp (check_effective_target_aarch64_asm_sb_ok):
+ New proc.
+---
+ gcc/config/aarch64/aarch64-protos.h | 1 +
+ gcc/config/aarch64/aarch64.c | 41 ++++++-
+ gcc/config/aarch64/aarch64.h | 10 +-
+ gcc/config/aarch64/aarch64.md | 76 +++++++++----
+ .../aarch64/sls-mitigation/sls-miti-retbr-pacret.c | 21 ++++
+ .../aarch64/sls-mitigation/sls-miti-retbr.c | 119 +++++++++++++++++++++
+ .../aarch64/sls-mitigation/sls-mitigation.exp | 73 +++++++++++++
+ gcc/testsuite/lib/target-supports.exp | 2 +-
+ 8 files changed, 318 insertions(+), 25 deletions(-)
+ create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c
+ create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c
+ create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp
+
+diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h
+index eb5f4b4..ee0ffde 100644
+--- a/gcc/config/aarch64/aarch64-protos.h
++++ b/gcc/config/aarch64/aarch64-protos.h
+@@ -781,6 +781,7 @@ extern const atomic_ool_names aarch64_ool_ldeor_names;
+
+ tree aarch64_resolve_overloaded_builtin_general (location_t, tree, void *);
+
++const char *aarch64_sls_barrier (int);
+ extern bool aarch64_harden_sls_retbr_p (void);
+ extern bool aarch64_harden_sls_blr_p (void);
+
+diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
+index 437a9cf..44e3d1f 100644
+--- a/gcc/config/aarch64/aarch64.c
++++ b/gcc/config/aarch64/aarch64.c
+@@ -10852,8 +10852,8 @@ aarch64_return_addr (int count, rtx frame ATTRIBUTE_UNUSED)
+ static void
+ aarch64_asm_trampoline_template (FILE *f)
+ {
+- int offset1 = 16;
+- int offset2 = 20;
++ int offset1 = 24;
++ int offset2 = 28;
+
+ if (aarch64_bti_enabled ())
+ {
+@@ -10876,6 +10876,17 @@ aarch64_asm_trampoline_template (FILE *f)
+ }
+ asm_fprintf (f, "\tbr\t%s\n", reg_names [IP1_REGNUM]);
+
++ /* We always emit a speculation barrier.
++ This is because the same trampoline template is used for every nested
++ function. Since nested functions are not particularly common or
++ performant we don't worry too much about the extra instructions to copy
++ around.
++ This is not yet a problem, since we have not yet implemented function
++ specific attributes to choose between hardening against straight line
++ speculation or not, but such function specific attributes are likely to
++ happen in the future. */
++ asm_fprintf (f, "\tdsb\tsy\n\tisb\n");
++
+ /* The trampoline needs an extra padding instruction. In case if BTI is
+ enabled the padding instruction is replaced by the BTI instruction at
+ the beginning. */
+@@ -10890,10 +10901,14 @@ static void
+ aarch64_trampoline_init (rtx m_tramp, tree fndecl, rtx chain_value)
+ {
+ rtx fnaddr, mem, a_tramp;
+- const int tramp_code_sz = 16;
++ const int tramp_code_sz = 24;
+
+ /* Don't need to copy the trailing D-words, we fill those in below. */
+- emit_block_move (m_tramp, assemble_trampoline_template (),
++ /* We create our own memory address in Pmode so that `emit_block_move` can
++ use parts of the backend which expect Pmode addresses. */
++ rtx temp = convert_memory_address (Pmode, XEXP (m_tramp, 0));
++ emit_block_move (gen_rtx_MEM (BLKmode, temp),
++ assemble_trampoline_template (),
+ GEN_INT (tramp_code_sz), BLOCK_OP_NORMAL);
+ mem = adjust_address (m_tramp, ptr_mode, tramp_code_sz);
+ fnaddr = XEXP (DECL_RTL (fndecl), 0);
+@@ -11084,6 +11099,8 @@ aarch64_output_casesi (rtx *operands)
+ output_asm_insn (buf, operands);
+ output_asm_insn (patterns[index][1], operands);
+ output_asm_insn ("br\t%3", operands);
++ output_asm_insn (aarch64_sls_barrier (aarch64_harden_sls_retbr_p ()),
++ operands);
+ assemble_label (asm_out_file, label);
+ return "";
+ }
+@@ -22924,6 +22941,22 @@ aarch64_file_end_indicate_exec_stack ()
+ #undef GNU_PROPERTY_AARCH64_FEATURE_1_BTI
+ #undef GNU_PROPERTY_AARCH64_FEATURE_1_AND
+
++/* Helper function for straight line speculation.
++ Return what barrier should be emitted for straight line speculation
++ mitigation.
++ When not mitigating against straight line speculation this function returns
++ an empty string.
++ When mitigating against straight line speculation, use:
++ * SB when the v8.5-A SB extension is enabled.
++ * DSB+ISB otherwise. */
++const char *
++aarch64_sls_barrier (int mitigation_required)
++{
++ return mitigation_required
++ ? (TARGET_SB ? "sb" : "dsb\tsy\n\tisb")
++ : "";
++}
++
+ /* Target-specific selftests. */
+
+ #if CHECKING_P
+diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
+index 1ce23c6..c21015f 100644
+--- a/gcc/config/aarch64/aarch64.h
++++ b/gcc/config/aarch64/aarch64.h
+@@ -281,6 +281,7 @@ extern unsigned aarch64_architecture_version;
+ #define AARCH64_ISA_F32MM (aarch64_isa_flags & AARCH64_FL_F32MM)
+ #define AARCH64_ISA_F64MM (aarch64_isa_flags & AARCH64_FL_F64MM)
+ #define AARCH64_ISA_BF16 (aarch64_isa_flags & AARCH64_FL_BF16)
++#define AARCH64_ISA_SB (aarch64_isa_flags & AARCH64_FL_SB)
+
+ /* Crypto is an optional extension to AdvSIMD. */
+ #define TARGET_CRYPTO (TARGET_SIMD && AARCH64_ISA_CRYPTO)
+@@ -378,6 +379,9 @@ extern unsigned aarch64_architecture_version;
+ #define TARGET_FIX_ERR_A53_835769_DEFAULT 1
+ #endif
+
++/* SB instruction is enabled through +sb. */
++#define TARGET_SB (AARCH64_ISA_SB)
++
+ /* Apply the workaround for Cortex-A53 erratum 835769. */
+ #define TARGET_FIX_ERR_A53_835769 \
+ ((aarch64_fix_a53_err835769 == 2) \
+@@ -1058,8 +1062,10 @@ typedef struct
+
+ #define RETURN_ADDR_RTX aarch64_return_addr
+
+-/* BTI c + 3 insns + 2 pointer-sized entries. */
+-#define TRAMPOLINE_SIZE (TARGET_ILP32 ? 24 : 32)
++/* BTI c + 3 insns
++ + sls barrier of DSB + ISB.
++ + 2 pointer-sized entries. */
++#define TRAMPOLINE_SIZE (24 + (TARGET_ILP32 ? 8 : 16))
+
+ /* Trampolines contain dwords, so must be dword aligned. */
+ #define TRAMPOLINE_ALIGNMENT 64
+diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md
+index 8c8be3c..dda04ee 100644
+--- a/gcc/config/aarch64/aarch64.md
++++ b/gcc/config/aarch64/aarch64.md
+@@ -407,10 +407,25 @@
+ ;; Attribute that specifies whether the alternative uses MOVPRFX.
+ (define_attr "movprfx" "no,yes" (const_string "no"))
+
++;; Attribute to specify that an alternative has the length of a single
++;; instruction plus a speculation barrier.
++(define_attr "sls_length" "none,retbr,casesi" (const_string "none"))
++
+ (define_attr "length" ""
+ (cond [(eq_attr "movprfx" "yes")
+ (const_int 8)
+- ] (const_int 4)))
++
++ (eq_attr "sls_length" "retbr")
++ (cond [(match_test "!aarch64_harden_sls_retbr_p ()") (const_int 4)
++ (match_test "TARGET_SB") (const_int 8)]
++ (const_int 12))
++
++ (eq_attr "sls_length" "casesi")
++ (cond [(match_test "!aarch64_harden_sls_retbr_p ()") (const_int 16)
++ (match_test "TARGET_SB") (const_int 20)]
++ (const_int 24))
++ ]
++ (const_int 4)))
+
+ ;; Strictly for compatibility with AArch32 in pipeline models, since AArch64 has
+ ;; no predicated insns.
+@@ -447,8 +462,12 @@
+ (define_insn "indirect_jump"
+ [(set (pc) (match_operand:DI 0 "register_operand" "r"))]
+ ""
+- "br\\t%0"
+- [(set_attr "type" "branch")]
++ {
++ output_asm_insn ("br\\t%0", operands);
++ return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ());
++ }
++ [(set_attr "type" "branch")
++ (set_attr "sls_length" "retbr")]
+ )
+
+ (define_insn "jump"
+@@ -765,7 +784,7 @@
+ "*
+ return aarch64_output_casesi (operands);
+ "
+- [(set_attr "length" "16")
++ [(set_attr "sls_length" "casesi")
+ (set_attr "type" "branch")]
+ )
+
+@@ -844,18 +863,23 @@
+ [(return)]
+ ""
+ {
++ const char *ret = NULL;
+ if (aarch64_return_address_signing_enabled ()
+ && TARGET_ARMV8_3
+ && !crtl->calls_eh_return)
+ {
+ if (aarch64_ra_sign_key == AARCH64_KEY_B)
+- return "retab";
++ ret = "retab";
+ else
+- return "retaa";
++ ret = "retaa";
+ }
+- return "ret";
++ else
++ ret = "ret";
++ output_asm_insn (ret, operands);
++ return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ());
+ }
+- [(set_attr "type" "branch")]
++ [(set_attr "type" "branch")
++ (set_attr "sls_length" "retbr")]
+ )
+
+ (define_expand "return"
+@@ -867,8 +891,12 @@
+ (define_insn "simple_return"
+ [(simple_return)]
+ ""
+- "ret"
+- [(set_attr "type" "branch")]
++ {
++ output_asm_insn ("ret", operands);
++ return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ());
++ }
++ [(set_attr "type" "branch")
++ (set_attr "sls_length" "retbr")]
+ )
+
+ (define_insn "*cb<optab><mode>1"
+@@ -1066,10 +1094,16 @@
+ (unspec:DI [(match_operand:DI 2 "const_int_operand")] UNSPEC_CALLEE_ABI)
+ (return)]
+ "SIBLING_CALL_P (insn)"
+- "@
+- br\\t%0
+- b\\t%c0"
+- [(set_attr "type" "branch, branch")]
++ {
++ if (which_alternative == 0)
++ {
++ output_asm_insn ("br\\t%0", operands);
++ return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ());
++ }
++ return "b\\t%c0";
++ }
++ [(set_attr "type" "branch, branch")
++ (set_attr "sls_length" "retbr,none")]
+ )
+
+ (define_insn "*sibcall_value_insn"
+@@ -1080,10 +1114,16 @@
+ (unspec:DI [(match_operand:DI 3 "const_int_operand")] UNSPEC_CALLEE_ABI)
+ (return)]
+ "SIBLING_CALL_P (insn)"
+- "@
+- br\\t%1
+- b\\t%c1"
+- [(set_attr "type" "branch, branch")]
++ {
++ if (which_alternative == 0)
++ {
++ output_asm_insn ("br\\t%1", operands);
++ return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ());
++ }
++ return "b\\t%c1";
++ }
++ [(set_attr "type" "branch, branch")
++ (set_attr "sls_length" "retbr,none")]
+ )
+
+ ;; Call subroutine returning any type.
+diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c
+new file mode 100644
+index 0000000..fa1887a
+--- /dev/null
++++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c
+@@ -0,0 +1,21 @@
++/* Avoid ILP32 since pacret is only available for LP64 */
++/* { dg-do compile { target { ! ilp32 } } } */
++/* { dg-additional-options "-mharden-sls=retbr -mbranch-protection=pac-ret -march=armv8.3-a" } */
++
++/* Testing the do_return pattern for retaa and retab. */
++long retbr_subcall(void);
++long retbr_do_return_retaa(void)
++{
++ return retbr_subcall()+1;
++}
++
++__attribute__((target("branch-protection=pac-ret+b-key")))
++long retbr_do_return_retab(void)
++{
++ return retbr_subcall()+1;
++}
++
++/* Ensure there are no BR or RET instructions which are not directly followed
++ by a speculation barrier. */
++/* { dg-final { scan-assembler-not {\t(br|ret|retaa|retab)\tx[0-9][0-9]?\n\t(?!dsb\tsy\n\tisb)} } } */
++/* { dg-final { scan-assembler-not {ret\t} } } */
+diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c
+new file mode 100644
+index 0000000..76b8d03
+--- /dev/null
++++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c
+@@ -0,0 +1,119 @@
++/* We ensure that -Wpedantic is off since it complains about the trampolines
++ we explicitly want to test. */
++/* { dg-additional-options "-mharden-sls=retbr -Wno-pedantic " } */
++/*
++ Ensure that the SLS hardening of RET and BR leaves no unprotected RET/BR
++ instructions.
++ */
++typedef int (foo) (int, int);
++typedef void (bar) (int, int);
++struct sls_testclass {
++ foo *x;
++ bar *y;
++ int left;
++ int right;
++};
++
++int
++retbr_sibcall_value_insn (struct sls_testclass x)
++{
++ return x.x(x.left, x.right);
++}
++
++void
++retbr_sibcall_insn (struct sls_testclass x)
++{
++ x.y(x.left, x.right);
++}
++
++/* Aim to test two different returns.
++ One that introduces a tail call in the middle of the function, and one that
++ has a normal return. */
++int
++retbr_multiple_returns (struct sls_testclass x)
++{
++ int temp;
++ if (x.left % 10)
++ return x.x(x.left, 100);
++ else if (x.right % 20)
++ {
++ return x.x(x.left * x.right, 100);
++ }
++ temp = x.left % x.right;
++ temp *= 100;
++ temp /= 2;
++ return temp % 3;
++}
++
++void
++retbr_multiple_returns_void (struct sls_testclass x)
++{
++ if (x.left % 10)
++ {
++ x.y(x.left, 100);
++ }
++ else if (x.right % 20)
++ {
++ x.y(x.left * x.right, 100);
++ }
++ return;
++}
++
++/* Testing the casesi jump via register. */
++__attribute__ ((optimize ("Os")))
++int
++retbr_casesi_dispatch (struct sls_testclass x)
++{
++ switch (x.left)
++ {
++ case -5:
++ return -2;
++ case -3:
++ return -1;
++ case 0:
++ return 0;
++ case 3:
++ return 1;
++ case 5:
++ break;
++ default:
++ __builtin_unreachable ();
++ }
++ return x.right;
++}
++
++/* Testing the BR in trampolines is mitigated against. */
++void f1 (void *);
++void f3 (void *, void (*)(void *));
++void f2 (void *);
++
++int
++retbr_trampolines (void *a, int b)
++{
++ if (!b)
++ {
++ f1 (a);
++ return 1;
++ }
++ if (b)
++ {
++ void retbr_tramp_internal (void *c)
++ {
++ if (c == a)
++ f2 (c);
++ }
++ f3 (a, retbr_tramp_internal);
++ }
++ return 0;
++}
++
++/* Testing the indirect_jump pattern. */
++void
++retbr_indirect_jump (int *buf)
++{
++ __builtin_longjmp(buf, 1);
++}
++
++/* Ensure there are no BR or RET instructions which are not directly followed
++ by a speculation barrier. */
++/* { dg-final { scan-assembler-not {\t(br|ret|retaa|retab)\tx[0-9][0-9]?\n\t(?!dsb\tsy\n\tisb|sb)} } } */
+diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp
+new file mode 100644
+index 0000000..8122503
+--- /dev/null
++++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp
+@@ -0,0 +1,73 @@
++# Regression driver for SLS mitigation on AArch64.
++# Copyright (C) 2020 Free Software Foundation, Inc.
++# Contributed by ARM Ltd.
++#
++# This file is part of GCC.
++#
++# GCC 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, or (at your option)
++# any later version.
++#
++# GCC 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 GCC; see the file COPYING3. If not see
++# <http://www.gnu.org/licenses/>. */
++
++# Exit immediately if this isn't an AArch64 target.
++if {![istarget aarch64*-*-*] } then {
++ return
++}
++
++# Load support procs.
++load_lib gcc-dg.exp
++load_lib torture-options.exp
++
++# If a testcase doesn't have special options, use these.
++global DEFAULT_CFLAGS
++if ![info exists DEFAULT_CFLAGS] then {
++ set DEFAULT_CFLAGS " "
++}
++
++# Initialize `dg'.
++dg-init
++torture-init
++
++# Use different architectures as well as the normal optimisation options.
++# (i.e. use both SB and DSB+ISB barriers).
++
++set save-dg-do-what-default ${dg-do-what-default}
++# Main loop.
++# Run with torture tests (i.e. a bunch of different optimisation levels) just
++# to increase test coverage.
++set dg-do-what-default assemble
++gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cCS\]]] \
++ "-save-temps" $DEFAULT_CFLAGS
++
++# Run the same tests but this time with SB extension.
++# Since not all supported assemblers will support that extension we decide
++# whether to assemble or just compile based on whether the extension is
++# supported for the available assembler.
++
++set templist {}
++foreach x $DG_TORTURE_OPTIONS {
++ lappend templist "$x -march=armv8.3-a+sb "
++ lappend templist "$x -march=armv8-a+sb "
++}
++set-torture-options $templist
++if { [check_effective_target_aarch64_asm_sb_ok] } {
++ set dg-do-what-default assemble
++} else {
++ set dg-do-what-default compile
++}
++gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cCS\]]] \
++ "-save-temps" $DEFAULT_CFLAGS
++set dg-do-what-default ${save-dg-do-what-default}
++
++# All done.
++torture-finish
++dg-finish
+diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
+index 8a186dd..9d2e093 100644
+--- a/gcc/testsuite/lib/target-supports.exp
++++ b/gcc/testsuite/lib/target-supports.exp
+@@ -9432,7 +9432,7 @@ proc check_effective_target_aarch64_tiny { } {
+ # various architecture extensions via the .arch_extension pseudo-op.
+
+ foreach { aarch64_ext } { "fp" "simd" "crypto" "crc" "lse" "dotprod" "sve"
+- "i8mm" "f32mm" "f64mm" "bf16" } {
++ "i8mm" "f32mm" "f64mm" "bf16" "sb" } {
+ eval [string map [list FUNC $aarch64_ext] {
+ proc check_effective_target_aarch64_asm_FUNC_ok { } {
+ if { [istarget aarch64*-*-*] } {
+--
+2.7.4
+
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0002-gcc-poison-system-directories.patch b/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch
index a1116e7509..30a8486016 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0002-gcc-poison-system-directories.patch
+++ b/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch
@@ -1,7 +1,7 @@
-From 68e78bc15de215fa15c7d8b56bd2e2b0539b34fa Mon Sep 17 00:00:00 2001
+From 74cc21f474402cf3578e37e1d7a1a22bbd070f6a Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 08:59:00 +0400
-Subject: [PATCH 02/36] gcc: poison-system-directories
+Subject: [PATCH] gcc: poison-system-directories
Add /sw/include and /opt/include based on the original
zecke-no-host-includes.patch patch. The original patch checked for
@@ -26,10 +26,10 @@ Upstream-Status: Pending
7 files changed, 68 insertions(+)
diff --git a/gcc/common.opt b/gcc/common.opt
-index d342c4f3749..c64fd4a6c50 100644
+index 65a82410abc..415f38fa1f4 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
-@@ -684,6 +684,10 @@ Wreturn-local-addr
+@@ -682,6 +682,10 @@ Wreturn-local-addr
Common Var(warn_return_local_addr) Init(1) Warning
Warn about returning a pointer/reference to a local or temporary variable.
@@ -41,10 +41,10 @@ index d342c4f3749..c64fd4a6c50 100644
Common Var(warn_shadow) Warning
Warn when one variable shadows another. Same as -Wshadow=global.
diff --git a/gcc/config.in b/gcc/config.in
-index a718ceaf3da..5713342efb1 100644
+index 809e7b26823..5adeaeed36b 100644
--- a/gcc/config.in
+++ b/gcc/config.in
-@@ -200,6 +200,12 @@
+@@ -224,6 +224,12 @@
#endif
@@ -58,10 +58,10 @@ index a718ceaf3da..5713342efb1 100644
optimizer and back end) to be checked for dynamic type safety at runtime.
This is quite expensive. */
diff --git a/gcc/configure b/gcc/configure
-index 481071b4265..a6ea3a8a84c 100755
+index cd3d9516fce..8de766a942c 100755
--- a/gcc/configure
+++ b/gcc/configure
-@@ -995,6 +995,7 @@ with_system_zlib
+@@ -1010,6 +1010,7 @@ with_system_zlib
enable_maintainer_mode
enable_link_mutex
enable_version_specific_runtime_libs
@@ -69,7 +69,7 @@ index 481071b4265..a6ea3a8a84c 100755
enable_plugin
enable_host_shared
enable_libquadmath_support
-@@ -1748,6 +1749,8 @@ Optional Features:
+@@ -1766,6 +1767,8 @@ Optional Features:
--enable-version-specific-runtime-libs
specify that runtime libraries should be installed
in a compiler-specific directory
@@ -78,7 +78,7 @@ index 481071b4265..a6ea3a8a84c 100755
--enable-plugin enable plugin support
--enable-host-shared build host code as shared libraries
--disable-libquadmath-support
-@@ -29750,6 +29753,19 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
+@@ -30235,6 +30238,19 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
fi
@@ -99,10 +99,10 @@ index 481071b4265..a6ea3a8a84c 100755
diff --git a/gcc/configure.ac b/gcc/configure.ac
-index ce2825580c6..d42bbd4fd1c 100644
+index 0de3b4bf97b..8bfd6feb780 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
-@@ -6378,6 +6378,16 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
+@@ -6595,6 +6595,16 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
[specify that runtime libraries should be
installed in a compiler-specific directory])])
@@ -120,18 +120,18 @@ index ce2825580c6..d42bbd4fd1c 100644
AC_SUBST(subdirs)
AC_SUBST(srcdir)
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
-index 6ef36ce02aa..09414d8cc05 100644
+index f98161391a0..f12d8d12150 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
-@@ -332,6 +332,7 @@ Objective-C and Objective-C++ Dialects}.
- -Wpacked -Wpacked-bitfield-compat -Wpacked-not-aligned -Wpadded @gol
+@@ -348,6 +348,7 @@ Objective-C and Objective-C++ Dialects}.
+ -Wpacked -Wno-packed-bitfield-compat -Wpacked-not-aligned -Wpadded @gol
-Wparentheses -Wno-pedantic-ms-format @gol
- -Wplacement-new -Wplacement-new=@var{n} @gol
+ -Wpointer-arith -Wno-pointer-compare -Wno-pointer-to-int-cast @gol
+-Wno-poison-system-directories @gol
- -Wpointer-arith -Wpointer-compare -Wno-pointer-to-int-cast @gol
-Wno-pragmas -Wno-prio-ctor-dtor -Wredundant-decls @gol
- -Wrestrict -Wno-return-local-addr @gol
-@@ -6289,6 +6290,14 @@ made up of data only and thus requires no special treatment. But, for
+ -Wrestrict -Wno-return-local-addr -Wreturn-type @gol
+ -Wno-scalar-storage-order -Wsequence-point @gol
+@@ -6924,6 +6925,14 @@ made up of data only and thus requires no special treatment. But, for
most targets, it is made up of code and thus requires the stack to be
made executable in order for the program to work properly.
@@ -147,10 +147,10 @@ index 6ef36ce02aa..09414d8cc05 100644
@opindex Wfloat-equal
@opindex Wno-float-equal
diff --git a/gcc/gcc.c b/gcc/gcc.c
-index 4f57765b012..a2601a6bb06 100644
+index 9f790db0daf..b2200c5185a 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
-@@ -1042,6 +1042,8 @@ proper position among the other output files. */
+@@ -1041,6 +1041,8 @@ proper position among the other output files. */
"%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \
"%X %{o*} %{e*} %{N} %{n} %{r}\
%{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \
@@ -160,7 +160,7 @@ index 4f57765b012..a2601a6bb06 100644
VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o "" \
%{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\
diff --git a/gcc/incpath.c b/gcc/incpath.c
-index bcbe2082905..5752298bbf2 100644
+index 8a2bda00f80..9098ab044ab 100644
--- a/gcc/incpath.c
+++ b/gcc/incpath.c
@@ -26,6 +26,7 @@
@@ -198,6 +198,3 @@ index bcbe2082905..5752298bbf2 100644
}
/* Use given -I paths for #include "..." but not #include <...>, and
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc/0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch b/meta/recipes-devtools/gcc/gcc/0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch
new file mode 100644
index 0000000000..716a367172
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc/0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch
@@ -0,0 +1,658 @@
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From a5e7efc40ed841934c1d913f39476afa17d8e5f7 Mon Sep 17 00:00:00 2001
+From: Matthew Malcomson <matthew.malcomson@arm.com>
+Date: Thu, 9 Jul 2020 09:11:59 +0100
+Subject: [PATCH 3/3] aarch64: Mitigate SLS for BLR instruction
+
+This patch introduces the mitigation for Straight Line Speculation past
+the BLR instruction.
+
+This mitigation replaces BLR instructions with a BL to a stub which uses
+a BR to jump to the original value. These function stubs are then
+appended with a speculation barrier to ensure no straight line
+speculation happens after these jumps.
+
+When optimising for speed we use a set of stubs for each function since
+this should help the branch predictor make more accurate predictions
+about where a stub should branch.
+
+When optimising for size we use one set of stubs for all functions.
+This set of stubs can have human readable names, and we are using
+`__call_indirect_x<N>` for register x<N>.
+
+When BTI branch protection is enabled the BLR instruction can jump to a
+`BTI c` instruction using any register, while the BR instruction can
+only jump to a `BTI c` instruction using the x16 or x17 registers.
+Hence, in order to ensure this transformation is safe we mov the value
+of the original register into x16 and use x16 for the BR.
+
+As an example when optimising for size:
+a
+ BLR x0
+instruction would get transformed to something like
+ BL __call_indirect_x0
+where __call_indirect_x0 labels a thunk that contains
+__call_indirect_x0:
+ MOV X16, X0
+ BR X16
+ <speculation barrier>
+
+The first version of this patch used local symbols specific to a
+compilation unit to try and avoid relocations.
+This was mistaken since functions coming from the same compilation unit
+can still be in different sections, and the assembler will insert
+relocations at jumps between sections.
+
+On any relocation the linker is permitted to emit a veneer to handle
+jumps between symbols that are very far apart. The registers x16 and
+x17 may be clobbered by these veneers.
+Hence the function stubs cannot rely on the values of x16 and x17 being
+the same as just before the function stub is called.
+
+Similar can be said for the hot/cold partitioning of single functions,
+so function-local stubs have the same restriction.
+
+This updated version of the patch never emits function stubs for x16 and
+x17, and instead forces other registers to be used.
+
+Given the above, there is now no benefit to local symbols (since they
+are not enough to avoid dealing with linker intricacies). This patch
+now uses global symbols with hidden visibility each stored in their own
+COMDAT section. This means stubs can be shared between compilation
+units while still avoiding the PLT indirection.
+
+This patch also removes the `__call_indirect_x30` stub (and
+function-local equivalent) which would simply jump back to the original
+location.
+
+The function-local stubs are emitted to the assembly output file in one
+chunk, which means we need not add the speculation barrier directly
+after each one.
+This is because we know for certain that the instructions directly after
+the BR in all but the last function stub will be from another one of
+these stubs and hence will not contain a speculation gadget.
+Instead we add a speculation barrier at the end of the sequence of
+stubs.
+
+The global stubs are emitted in COMDAT/.linkonce sections by
+themselves so that the linker can remove duplicates from multiple object
+files. This means they are not emitted in one chunk, and each one must
+include the speculation barrier.
+
+Another difference is that since the global stubs are shared across
+compilation units we do not know that all functions will be targeting an
+architecture supporting the SB instruction.
+Rather than provide multiple stubs for each architecture, we provide a
+stub that will work for all architectures -- using the DSB+ISB barrier.
+
+This mitigation does not apply for BLR instructions in the following
+places:
+- Some accesses to thread-local variables use a code sequence with a BLR
+ instruction. This code sequence is part of the binary interface between
+ compiler and linker. If this BLR instruction needs to be mitigated, it'd
+ probably be best to do so in the linker. It seems that the code sequence
+ for thread-local variable access is unlikely to lead to a Spectre Revalation
+ Gadget.
+- PLT stubs are produced by the linker and each contain a BLR instruction.
+ It seems that at most only after the last PLT stub a Spectre Revalation
+ Gadget might appear.
+
+Testing:
+ Bootstrap and regtest on AArch64
+ (with BOOT_CFLAGS="-mharden-sls=retbr,blr")
+ Used a temporary hack(1) in gcc-dg.exp to use these options on every
+ test in the testsuite, a slight modification to emit the speculation
+ barrier after every function stub, and a script to check that the
+ output never emitted a BLR, or unmitigated BR or RET instruction.
+ Similar on an aarch64-none-elf cross-compiler.
+
+1) Temporary hack emitted a speculation barrier at the end of every stub
+function, and used a script to ensure that:
+ a) Every RET or BR is immediately followed by a speculation barrier.
+ b) No BLR instruction is emitted by compiler.
+
+gcc/ChangeLog:
+
+ * config/aarch64/aarch64-protos.h (aarch64_indirect_call_asm):
+ New declaration.
+ * config/aarch64/aarch64.c (aarch64_regno_regclass): Handle new
+ stub registers class.
+ (aarch64_class_max_nregs): Likewise.
+ (aarch64_register_move_cost): Likewise.
+ (aarch64_sls_shared_thunks): Global array to store stub labels.
+ (aarch64_sls_emit_function_stub): New.
+ (aarch64_create_blr_label): New.
+ (aarch64_sls_emit_blr_function_thunks): New.
+ (aarch64_sls_emit_shared_blr_thunks): New.
+ (aarch64_asm_file_end): New.
+ (aarch64_indirect_call_asm): New.
+ (TARGET_ASM_FILE_END): Use aarch64_asm_file_end.
+ (TARGET_ASM_FUNCTION_EPILOGUE): Use
+ aarch64_sls_emit_blr_function_thunks.
+ * config/aarch64/aarch64.h (STB_REGNUM_P): New.
+ (enum reg_class): Add STUB_REGS class.
+ (machine_function): Introduce `call_via` array for
+ function-local stub labels.
+ * config/aarch64/aarch64.md (*call_insn, *call_value_insn): Use
+ aarch64_indirect_call_asm to emit code when hardening BLR
+ instructions.
+ * config/aarch64/constraints.md (Ucr): New constraint
+ representing registers for indirect calls. Is GENERAL_REGS
+ usually, and STUB_REGS when hardening BLR instruction against
+ SLS.
+ * config/aarch64/predicates.md (aarch64_general_reg): STUB_REGS class
+ is also a general register.
+
+gcc/testsuite/ChangeLog:
+
+ * gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c: New test.
+ * gcc.target/aarch64/sls-mitigation/sls-miti-blr.c: New test.
+---
+ gcc/config/aarch64/aarch64-protos.h | 1 +
+ gcc/config/aarch64/aarch64.c | 225 ++++++++++++++++++++-
+ gcc/config/aarch64/aarch64.h | 15 ++
+ gcc/config/aarch64/aarch64.md | 11 +-
+ gcc/config/aarch64/constraints.md | 9 +
+ gcc/config/aarch64/predicates.md | 3 +-
+ .../aarch64/sls-mitigation/sls-miti-blr-bti.c | 40 ++++
+ .../aarch64/sls-mitigation/sls-miti-blr.c | 33 +++
+ 8 files changed, 328 insertions(+), 9 deletions(-)
+ create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c
+ create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c
+
+diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h
+index ee0ffde..839f801 100644
+--- a/gcc/config/aarch64/aarch64-protos.h
++++ b/gcc/config/aarch64/aarch64-protos.h
+@@ -782,6 +782,7 @@ extern const atomic_ool_names aarch64_ool_ldeor_names;
+ tree aarch64_resolve_overloaded_builtin_general (location_t, tree, void *);
+
+ const char *aarch64_sls_barrier (int);
++const char *aarch64_indirect_call_asm (rtx);
+ extern bool aarch64_harden_sls_retbr_p (void);
+ extern bool aarch64_harden_sls_blr_p (void);
+
+diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
+index 2389d49..0f7bba3 100644
+--- a/gcc/config/aarch64/aarch64.c
++++ b/gcc/config/aarch64/aarch64.c
+@@ -10605,6 +10605,9 @@ aarch64_label_mentioned_p (rtx x)
+ enum reg_class
+ aarch64_regno_regclass (unsigned regno)
+ {
++ if (STUB_REGNUM_P (regno))
++ return STUB_REGS;
++
+ if (GP_REGNUM_P (regno))
+ return GENERAL_REGS;
+
+@@ -10939,6 +10942,7 @@ aarch64_class_max_nregs (reg_class_t regclass, machine_mode mode)
+ unsigned int nregs, vec_flags;
+ switch (regclass)
+ {
++ case STUB_REGS:
+ case TAILCALL_ADDR_REGS:
+ case POINTER_REGS:
+ case GENERAL_REGS:
+@@ -13155,10 +13159,12 @@ aarch64_register_move_cost (machine_mode mode,
+ = aarch64_tune_params.regmove_cost;
+
+ /* Caller save and pointer regs are equivalent to GENERAL_REGS. */
+- if (to == TAILCALL_ADDR_REGS || to == POINTER_REGS)
++ if (to == TAILCALL_ADDR_REGS || to == POINTER_REGS
++ || to == STUB_REGS)
+ to = GENERAL_REGS;
+
+- if (from == TAILCALL_ADDR_REGS || from == POINTER_REGS)
++ if (from == TAILCALL_ADDR_REGS || from == POINTER_REGS
++ || from == STUB_REGS)
+ from = GENERAL_REGS;
+
+ /* Make RDFFR very expensive. In particular, if we know that the FFR
+@@ -22957,6 +22963,215 @@ aarch64_sls_barrier (int mitigation_required)
+ : "";
+ }
+
++static GTY (()) tree aarch64_sls_shared_thunks[30];
++static GTY (()) bool aarch64_sls_shared_thunks_needed = false;
++const char *indirect_symbol_names[30] = {
++ "__call_indirect_x0",
++ "__call_indirect_x1",
++ "__call_indirect_x2",
++ "__call_indirect_x3",
++ "__call_indirect_x4",
++ "__call_indirect_x5",
++ "__call_indirect_x6",
++ "__call_indirect_x7",
++ "__call_indirect_x8",
++ "__call_indirect_x9",
++ "__call_indirect_x10",
++ "__call_indirect_x11",
++ "__call_indirect_x12",
++ "__call_indirect_x13",
++ "__call_indirect_x14",
++ "__call_indirect_x15",
++ "", /* "__call_indirect_x16", */
++ "", /* "__call_indirect_x17", */
++ "__call_indirect_x18",
++ "__call_indirect_x19",
++ "__call_indirect_x20",
++ "__call_indirect_x21",
++ "__call_indirect_x22",
++ "__call_indirect_x23",
++ "__call_indirect_x24",
++ "__call_indirect_x25",
++ "__call_indirect_x26",
++ "__call_indirect_x27",
++ "__call_indirect_x28",
++ "__call_indirect_x29",
++};
++
++/* Function to create a BLR thunk. This thunk is used to mitigate straight
++ line speculation. Instead of a simple BLR that can be speculated past,
++ we emit a BL to this thunk, and this thunk contains a BR to the relevant
++ register. These thunks have the relevant speculation barries put after
++ their indirect branch so that speculation is blocked.
++
++ We use such a thunk so the speculation barriers are kept off the
++ architecturally executed path in order to reduce the performance overhead.
++
++ When optimizing for size we use stubs shared by the linked object.
++ When optimizing for performance we emit stubs for each function in the hope
++ that the branch predictor can better train on jumps specific for a given
++ function. */
++rtx
++aarch64_sls_create_blr_label (int regnum)
++{
++ gcc_assert (STUB_REGNUM_P (regnum));
++ if (optimize_function_for_size_p (cfun))
++ {
++ /* For the thunks shared between different functions in this compilation
++ unit we use a named symbol -- this is just for users to more easily
++ understand the generated assembly. */
++ aarch64_sls_shared_thunks_needed = true;
++ const char *thunk_name = indirect_symbol_names[regnum];
++ if (aarch64_sls_shared_thunks[regnum] == NULL)
++ {
++ /* Build a decl representing this function stub and record it for
++ later. We build a decl here so we can use the GCC machinery for
++ handling sections automatically (through `get_named_section` and
++ `make_decl_one_only`). That saves us a lot of trouble handling
++ the specifics of different output file formats. */
++ tree decl = build_decl (BUILTINS_LOCATION, FUNCTION_DECL,
++ get_identifier (thunk_name),
++ build_function_type_list (void_type_node,
++ NULL_TREE));
++ DECL_RESULT (decl) = build_decl (BUILTINS_LOCATION, RESULT_DECL,
++ NULL_TREE, void_type_node);
++ TREE_PUBLIC (decl) = 1;
++ TREE_STATIC (decl) = 1;
++ DECL_IGNORED_P (decl) = 1;
++ DECL_ARTIFICIAL (decl) = 1;
++ make_decl_one_only (decl, DECL_ASSEMBLER_NAME (decl));
++ resolve_unique_section (decl, 0, false);
++ aarch64_sls_shared_thunks[regnum] = decl;
++ }
++
++ return gen_rtx_SYMBOL_REF (Pmode, thunk_name);
++ }
++
++ if (cfun->machine->call_via[regnum] == NULL)
++ cfun->machine->call_via[regnum]
++ = gen_rtx_LABEL_REF (Pmode, gen_label_rtx ());
++ return cfun->machine->call_via[regnum];
++}
++
++/* Helper function for aarch64_sls_emit_blr_function_thunks and
++ aarch64_sls_emit_shared_blr_thunks below. */
++static void
++aarch64_sls_emit_function_stub (FILE *out_file, int regnum)
++{
++ /* Save in x16 and branch to that function so this transformation does
++ not prevent jumping to `BTI c` instructions. */
++ asm_fprintf (out_file, "\tmov\tx16, x%d\n", regnum);
++ asm_fprintf (out_file, "\tbr\tx16\n");
++}
++
++/* Emit all BLR stubs for this particular function.
++ Here we emit all the BLR stubs needed for the current function. Since we
++ emit these stubs in a consecutive block we know there will be no speculation
++ gadgets between each stub, and hence we only emit a speculation barrier at
++ the end of the stub sequences.
++
++ This is called in the TARGET_ASM_FUNCTION_EPILOGUE hook. */
++void
++aarch64_sls_emit_blr_function_thunks (FILE *out_file)
++{
++ if (! aarch64_harden_sls_blr_p ())
++ return;
++
++ bool any_functions_emitted = false;
++ /* We must save and restore the current function section since this assembly
++ is emitted at the end of the function. This means it can be emitted *just
++ after* the cold section of a function. That cold part would be emitted in
++ a different section. That switch would trigger a `.cfi_endproc` directive
++ to be emitted in the original section and a `.cfi_startproc` directive to
++ be emitted in the new section. Switching to the original section without
++ restoring would mean that the `.cfi_endproc` emitted as a function ends
++ would happen in a different section -- leaving an unmatched
++ `.cfi_startproc` in the cold text section and an unmatched `.cfi_endproc`
++ in the standard text section. */
++ section *save_text_section = in_section;
++ switch_to_section (function_section (current_function_decl));
++ for (int regnum = 0; regnum < 30; ++regnum)
++ {
++ rtx specu_label = cfun->machine->call_via[regnum];
++ if (specu_label == NULL)
++ continue;
++
++ targetm.asm_out.print_operand (out_file, specu_label, 0);
++ asm_fprintf (out_file, ":\n");
++ aarch64_sls_emit_function_stub (out_file, regnum);
++ any_functions_emitted = true;
++ }
++ if (any_functions_emitted)
++ /* Can use the SB if needs be here, since this stub will only be used
++ by the current function, and hence for the current target. */
++ asm_fprintf (out_file, "\t%s\n", aarch64_sls_barrier (true));
++ switch_to_section (save_text_section);
++}
++
++/* Emit shared BLR stubs for the current compilation unit.
++ Over the course of compiling this unit we may have converted some BLR
++ instructions to a BL to a shared stub function. This is where we emit those
++ stub functions.
++ This function is for the stubs shared between different functions in this
++ compilation unit. We share when optimizing for size instead of speed.
++
++ This function is called through the TARGET_ASM_FILE_END hook. */
++void
++aarch64_sls_emit_shared_blr_thunks (FILE *out_file)
++{
++ if (! aarch64_sls_shared_thunks_needed)
++ return;
++
++ for (int regnum = 0; regnum < 30; ++regnum)
++ {
++ tree decl = aarch64_sls_shared_thunks[regnum];
++ if (!decl)
++ continue;
++
++ const char *name = indirect_symbol_names[regnum];
++ switch_to_section (get_named_section (decl, NULL, 0));
++ ASM_OUTPUT_ALIGN (out_file, 2);
++ targetm.asm_out.globalize_label (out_file, name);
++ /* Only emits if the compiler is configured for an assembler that can
++ handle visibility directives. */
++ targetm.asm_out.assemble_visibility (decl, VISIBILITY_HIDDEN);
++ ASM_OUTPUT_TYPE_DIRECTIVE (out_file, name, "function");
++ ASM_OUTPUT_LABEL (out_file, name);
++ aarch64_sls_emit_function_stub (out_file, regnum);
++ /* Use the most conservative target to ensure it can always be used by any
++ function in the translation unit. */
++ asm_fprintf (out_file, "\tdsb\tsy\n\tisb\n");
++ ASM_DECLARE_FUNCTION_SIZE (out_file, name, decl);
++ }
++}
++
++/* Implement TARGET_ASM_FILE_END. */
++void
++aarch64_asm_file_end ()
++{
++ aarch64_sls_emit_shared_blr_thunks (asm_out_file);
++ /* Since this function will be called for the ASM_FILE_END hook, we ensure
++ that what would be called otherwise (e.g. `file_end_indicate_exec_stack`
++ for FreeBSD) still gets called. */
++#ifdef TARGET_ASM_FILE_END
++ TARGET_ASM_FILE_END ();
++#endif
++}
++
++const char *
++aarch64_indirect_call_asm (rtx addr)
++{
++ gcc_assert (REG_P (addr));
++ if (aarch64_harden_sls_blr_p ())
++ {
++ rtx stub_label = aarch64_sls_create_blr_label (REGNO (addr));
++ output_asm_insn ("bl\t%0", &stub_label);
++ }
++ else
++ output_asm_insn ("blr\t%0", &addr);
++ return "";
++}
++
+ /* Target-specific selftests. */
+
+ #if CHECKING_P
+@@ -23507,6 +23722,12 @@ aarch64_libgcc_floating_mode_supported_p
+ #undef TARGET_MD_ASM_ADJUST
+ #define TARGET_MD_ASM_ADJUST arm_md_asm_adjust
+
++#undef TARGET_ASM_FILE_END
++#define TARGET_ASM_FILE_END aarch64_asm_file_end
++
++#undef TARGET_ASM_FUNCTION_EPILOGUE
++#define TARGET_ASM_FUNCTION_EPILOGUE aarch64_sls_emit_blr_function_thunks
++
+ struct gcc_target targetm = TARGET_INITIALIZER;
+
+ #include "gt-aarch64.h"
+diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
+index 8e0fc37..7331450 100644
+--- a/gcc/config/aarch64/aarch64.h
++++ b/gcc/config/aarch64/aarch64.h
+@@ -643,6 +643,16 @@ extern unsigned aarch64_architecture_version;
+ #define GP_REGNUM_P(REGNO) \
+ (((unsigned) (REGNO - R0_REGNUM)) <= (R30_REGNUM - R0_REGNUM))
+
++/* Registers known to be preserved over a BL instruction. This consists of the
++ GENERAL_REGS without x16, x17, and x30. The x30 register is changed by the
++ BL instruction itself, while the x16 and x17 registers may be used by
++ veneers which can be inserted by the linker. */
++#define STUB_REGNUM_P(REGNO) \
++ (GP_REGNUM_P (REGNO) \
++ && (REGNO) != R16_REGNUM \
++ && (REGNO) != R17_REGNUM \
++ && (REGNO) != R30_REGNUM) \
++
+ #define FP_REGNUM_P(REGNO) \
+ (((unsigned) (REGNO - V0_REGNUM)) <= (V31_REGNUM - V0_REGNUM))
+
+@@ -667,6 +677,7 @@ enum reg_class
+ {
+ NO_REGS,
+ TAILCALL_ADDR_REGS,
++ STUB_REGS,
+ GENERAL_REGS,
+ STACK_REG,
+ POINTER_REGS,
+@@ -689,6 +700,7 @@ enum reg_class
+ { \
+ "NO_REGS", \
+ "TAILCALL_ADDR_REGS", \
++ "STUB_REGS", \
+ "GENERAL_REGS", \
+ "STACK_REG", \
+ "POINTER_REGS", \
+@@ -708,6 +720,7 @@ enum reg_class
+ { \
+ { 0x00000000, 0x00000000, 0x00000000 }, /* NO_REGS */ \
+ { 0x00030000, 0x00000000, 0x00000000 }, /* TAILCALL_ADDR_REGS */\
++ { 0x3ffcffff, 0x00000000, 0x00000000 }, /* STUB_REGS */ \
+ { 0x7fffffff, 0x00000000, 0x00000003 }, /* GENERAL_REGS */ \
+ { 0x80000000, 0x00000000, 0x00000000 }, /* STACK_REG */ \
+ { 0xffffffff, 0x00000000, 0x00000003 }, /* POINTER_REGS */ \
+@@ -862,6 +875,8 @@ typedef struct GTY (()) machine_function
+ struct aarch64_frame frame;
+ /* One entry for each hard register. */
+ bool reg_is_wrapped_separately[LAST_SAVED_REGNUM];
++ /* One entry for each general purpose register. */
++ rtx call_via[SP_REGNUM];
+ bool label_is_assembled;
+ } machine_function;
+ #endif
+diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md
+index dda04ee..43da754 100644
+--- a/gcc/config/aarch64/aarch64.md
++++ b/gcc/config/aarch64/aarch64.md
+@@ -1022,16 +1022,15 @@
+ )
+
+ (define_insn "*call_insn"
+- [(call (mem:DI (match_operand:DI 0 "aarch64_call_insn_operand" "r, Usf"))
++ [(call (mem:DI (match_operand:DI 0 "aarch64_call_insn_operand" "Ucr, Usf"))
+ (match_operand 1 "" ""))
+ (unspec:DI [(match_operand:DI 2 "const_int_operand")] UNSPEC_CALLEE_ABI)
+ (clobber (reg:DI LR_REGNUM))]
+ ""
+ "@
+- blr\\t%0
++ * return aarch64_indirect_call_asm (operands[0]);
+ bl\\t%c0"
+- [(set_attr "type" "call, call")]
+-)
++ [(set_attr "type" "call, call")])
+
+ (define_expand "call_value"
+ [(parallel
+@@ -1050,13 +1049,13 @@
+
+ (define_insn "*call_value_insn"
+ [(set (match_operand 0 "" "")
+- (call (mem:DI (match_operand:DI 1 "aarch64_call_insn_operand" "r, Usf"))
++ (call (mem:DI (match_operand:DI 1 "aarch64_call_insn_operand" "Ucr, Usf"))
+ (match_operand 2 "" "")))
+ (unspec:DI [(match_operand:DI 3 "const_int_operand")] UNSPEC_CALLEE_ABI)
+ (clobber (reg:DI LR_REGNUM))]
+ ""
+ "@
+- blr\\t%1
++ * return aarch64_indirect_call_asm (operands[1]);
+ bl\\t%c1"
+ [(set_attr "type" "call, call")]
+ )
+diff --git a/gcc/config/aarch64/constraints.md b/gcc/config/aarch64/constraints.md
+index d993268..8cc6f50 100644
+--- a/gcc/config/aarch64/constraints.md
++++ b/gcc/config/aarch64/constraints.md
+@@ -24,6 +24,15 @@
+ (define_register_constraint "Ucs" "TAILCALL_ADDR_REGS"
+ "@internal Registers suitable for an indirect tail call")
+
++(define_register_constraint "Ucr"
++ "aarch64_harden_sls_blr_p () ? STUB_REGS : GENERAL_REGS"
++ "@internal Registers to be used for an indirect call.
++ This is usually the general registers, but when we are hardening against
++ Straight Line Speculation we disallow x16, x17, and x30 so we can use
++ indirection stubs. These indirection stubs cannot use the above registers
++ since they will be reached by a BL that may have to go through a linker
++ veneer.")
++
+ (define_register_constraint "w" "FP_REGS"
+ "Floating point and SIMD vector registers.")
+
+diff --git a/gcc/config/aarch64/predicates.md b/gcc/config/aarch64/predicates.md
+index 215fcec..1754b1e 100644
+--- a/gcc/config/aarch64/predicates.md
++++ b/gcc/config/aarch64/predicates.md
+@@ -32,7 +32,8 @@
+
+ (define_predicate "aarch64_general_reg"
+ (and (match_operand 0 "register_operand")
+- (match_test "REGNO_REG_CLASS (REGNO (op)) == GENERAL_REGS")))
++ (match_test "REGNO_REG_CLASS (REGNO (op)) == STUB_REGS
++ || REGNO_REG_CLASS (REGNO (op)) == GENERAL_REGS")))
+
+ ;; Return true if OP a (const_int 0) operand.
+ (define_predicate "const0_operand"
+diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c
+new file mode 100644
+index 0000000..b1fb754
+--- /dev/null
++++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c
+@@ -0,0 +1,40 @@
++/* { dg-do compile } */
++/* { dg-additional-options "-mharden-sls=blr -mbranch-protection=bti" } */
++/*
++ Ensure that the SLS hardening of BLR leaves no BLR instructions.
++ Here we also check that there are no BR instructions with anything except an
++ x16 or x17 register. This is because a `BTI c` instruction can be branched
++ to using a BLR instruction using any register, but can only be branched to
++ with a BR using an x16 or x17 register.
++ */
++typedef int (foo) (int, int);
++typedef void (bar) (int, int);
++struct sls_testclass {
++ foo *x;
++ bar *y;
++ int left;
++ int right;
++};
++
++/* We test both RTL patterns for a call which returns a value and a call which
++ does not. */
++int blr_call_value (struct sls_testclass x)
++{
++ int retval = x.x(x.left, x.right);
++ if (retval % 10)
++ return 100;
++ return 9;
++}
++
++int blr_call (struct sls_testclass x)
++{
++ x.y(x.left, x.right);
++ if (x.left % 10)
++ return 100;
++ return 9;
++}
++
++/* { dg-final { scan-assembler-not {\tblr\t} } } */
++/* { dg-final { scan-assembler-not {\tbr\tx(?!16|17)} } } */
++/* { dg-final { scan-assembler {\tbr\tx(16|17)} } } */
++
+diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c
+new file mode 100644
+index 0000000..88bafff
+--- /dev/null
++++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c
+@@ -0,0 +1,33 @@
++/* { dg-additional-options "-mharden-sls=blr -save-temps" } */
++/* Ensure that the SLS hardening of BLR leaves no BLR instructions.
++ We only test that all BLR instructions have been removed, not that the
++ resulting code makes sense. */
++typedef int (foo) (int, int);
++typedef void (bar) (int, int);
++struct sls_testclass {
++ foo *x;
++ bar *y;
++ int left;
++ int right;
++};
++
++/* We test both RTL patterns for a call which returns a value and a call which
++ does not. */
++int blr_call_value (struct sls_testclass x)
++{
++ int retval = x.x(x.left, x.right);
++ if (retval % 10)
++ return 100;
++ return 9;
++}
++
++int blr_call (struct sls_testclass x)
++{
++ x.y(x.left, x.right);
++ if (x.left % 10)
++ return 100;
++ return 9;
++}
++
++/* { dg-final { scan-assembler-not {\tblr\t} } } */
++/* { dg-final { scan-assembler {\tbr\tx[0-9][0-9]?} } } */
+--
+2.7.4
+
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch b/meta/recipes-devtools/gcc/gcc/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch
index 23039d2123..27237feb5a 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch
+++ b/meta/recipes-devtools/gcc/gcc/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch
@@ -1,7 +1,7 @@
-From f8d60c4114acb92361c7b2f4a4561d4661e8da9d Mon Sep 17 00:00:00 2001
+From 6e3395c0bc933bdc3242d1dead4896d0aa4e11a8 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:08:31 +0400
-Subject: [PATCH 03/36] gcc-4.3.3: SYSROOT_CFLAGS_FOR_TARGET
+Subject: [PATCH] gcc-4.3.3: SYSROOT_CFLAGS_FOR_TARGET
Before committing, I noticed that PR/32161 was marked as a dup of PR/32009, but my previous patch did not fix it.
@@ -26,10 +26,10 @@ Upstream-Status: Pending
1 file changed, 32 insertions(+)
diff --git a/configure b/configure
-index b121088d778..93aae5bb26f 100755
+index 226a64939d1..b31dc137fc9 100755
--- a/configure
+++ b/configure
-@@ -6864,6 +6864,38 @@ fi
+@@ -6971,6 +6971,38 @@ fi
@@ -68,6 +68,3 @@ index b121088d778..93aae5bb26f 100755
# Handle --with-headers=XXX. If the value is not "yes", the contents of
# the named directory are copied to $(tooldir)/sys-include.
if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0004-64-bit-multilib-hack.patch b/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch
index a79c40c1aa..7c751bef65 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0004-64-bit-multilib-hack.patch
+++ b/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch
@@ -1,7 +1,7 @@
-From c2081c51db589471ea713870c72f13999abda815 Mon Sep 17 00:00:00 2001
+From 85a7c5aeb82ed61e6ef6d8e061b9da9e6a4a652c Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:10:06 +0400
-Subject: [PATCH 04/36] 64-bit multilib hack.
+Subject: [PATCH] 64-bit multilib hack.
GCC has internal multilib handling code but it assumes a very specific rigid directory
layout. The build system implementation of multilib layout is very generic and allows
@@ -37,7 +37,7 @@ Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
5 files changed, 15 insertions(+), 20 deletions(-)
diff --git a/gcc/config/aarch64/t-aarch64-linux b/gcc/config/aarch64/t-aarch64-linux
-index 5ad670ba2ce..e26019e7157 100644
+index 83e59e33b85..b1356be1fb4 100644
--- a/gcc/config/aarch64/t-aarch64-linux
+++ b/gcc/config/aarch64/t-aarch64-linux
@@ -21,8 +21,8 @@
@@ -54,7 +54,7 @@ index 5ad670ba2ce..e26019e7157 100644
-MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32)
+#MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32)
diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64
-index c686ab2f0d2..c82b60dadcd 100644
+index 1171e218578..5e057b7e5db 100644
--- a/gcc/config/i386/t-linux64
+++ b/gcc/config/i386/t-linux64
@@ -32,7 +32,5 @@
@@ -68,7 +68,7 @@ index c686ab2f0d2..c82b60dadcd 100644
+MULTILIB_DIRNAMES = . .
+MULTILIB_OSDIRNAMES = ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir))
diff --git a/gcc/config/mips/t-linux64 b/gcc/config/mips/t-linux64
-index 3a2ff700d7d..13ef19576b5 100644
+index ceb58d3b5f3..43fe2bf28ab 100644
--- a/gcc/config/mips/t-linux64
+++ b/gcc/config/mips/t-linux64
@@ -17,10 +17,6 @@
@@ -98,7 +98,7 @@ index 216d2776a18..e4d817621fc 100644
+#MULTILIB_OSDIRNAMES := $(patsubst lib%,../lib%,$(MULTILIB_DIRNAMES))
+MULTILIB_OSDIRNAMES := ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir))
diff --git a/gcc/config/rs6000/t-linux64 b/gcc/config/rs6000/t-linux64
-index f3c6e2be1d9..bd0393155fa 100644
+index 264a7e27524..dc9d440f66b 100644
--- a/gcc/config/rs6000/t-linux64
+++ b/gcc/config/rs6000/t-linux64
@@ -26,10 +26,9 @@
@@ -114,6 +114,3 @@ index f3c6e2be1d9..bd0393155fa 100644
rs6000-linux.o: $(srcdir)/config/rs6000/rs6000-linux.c
$(COMPILE) $<
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0005-optional-libstdc.patch b/meta/recipes-devtools/gcc/gcc/0005-optional-libstdc.patch
index f4fac91467..4020c9e3cf 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0005-optional-libstdc.patch
+++ b/meta/recipes-devtools/gcc/gcc/0005-optional-libstdc.patch
@@ -1,7 +1,7 @@
-From e7e504f4a90cfa395e7f8ee779f8c3ed687802ca Mon Sep 17 00:00:00 2001
+From 6ddfb0bfcd1eea71acd37ab06f7a4510b9f1d12b Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:12:56 +0400
-Subject: [PATCH 05/36] optional libstdc
+Subject: [PATCH] optional libstdc
gcc-runtime builds libstdc++ separately from gcc-cross-*. Its configure tests using g++
will not run correctly since by default the linker will try to link against libstdc++
@@ -25,10 +25,10 @@ Upstream-Status: Inappropriate [embedded specific]
4 files changed, 37 insertions(+), 1 deletion(-)
diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
-index 916cc67b453..41619fa591c 100644
+index c49da99d395..35f712e2c84 100644
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
-@@ -1952,6 +1952,10 @@ nostdinc++
+@@ -2025,6 +2025,10 @@ nostdinc++
C++ ObjC++
Do not search standard system include directories for C++.
@@ -40,7 +40,7 @@ index 916cc67b453..41619fa591c 100644
C ObjC C++ ObjC++ Joined Separate
; Documented in common.opt
diff --git a/gcc/cp/g++spec.c b/gcc/cp/g++spec.c
-index 6c4574a837d..0e2657f00ee 100644
+index 0ab63bcd211..7b081e9e4f0 100644
--- a/gcc/cp/g++spec.c
+++ b/gcc/cp/g++spec.c
@@ -137,6 +137,7 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
@@ -52,10 +52,10 @@ index 6c4574a837d..0e2657f00ee 100644
library = -1;
break;
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
-index 09414d8cc05..a43969bc9f0 100644
+index f12d8d12150..cf6cb428e7d 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
-@@ -228,6 +228,9 @@ in the following sections.
+@@ -230,6 +230,9 @@ in the following sections.
-fno-weak -nostdinc++ @gol
-fvisibility-inlines-hidden @gol
-fvisibility-ms-compat @gol
@@ -63,9 +63,9 @@ index 09414d8cc05..a43969bc9f0 100644
+-fvtv-counts -fvtv-debug @gol
+-nostdlib++ @gol
-fext-numeric-literals @gol
- -Wabi=@var{n} -Wabi-tag -Wconversion-null -Wctor-dtor-privacy @gol
- -Wdelete-non-virtual-dtor -Wdeprecated-copy -Wdeprecated-copy-dtor @gol
-@@ -538,7 +541,7 @@ Objective-C and Objective-C++ Dialects}.
+ -Wabi-tag -Wcatch-value -Wcatch-value=@var{n} @gol
+ -Wno-class-conversion -Wclass-memaccess @gol
+@@ -599,7 +602,7 @@ Objective-C and Objective-C++ Dialects}.
-pie -pthread -r -rdynamic @gol
-s -static -static-pie -static-libgcc -static-libstdc++ @gol
-static-libasan -static-libtsan -static-liblsan -static-libubsan @gol
@@ -74,7 +74,7 @@ index 09414d8cc05..a43969bc9f0 100644
-T @var{script} -Wl,@var{option} -Xlinker @var{option} @gol
-u @var{symbol} -z @var{keyword}}
-@@ -13312,6 +13315,33 @@ Specify that the program entry point is @var{entry}. The argument is
+@@ -14407,6 +14410,33 @@ Specify that the program entry point is @var{entry}. The argument is
interpreted by the linker; the GNU linker accepts either a symbol name
or an address.
@@ -109,10 +109,10 @@ index 09414d8cc05..a43969bc9f0 100644
@opindex pie
Produce a dynamically linked position independent executable on targets
diff --git a/gcc/gcc.c b/gcc/gcc.c
-index a2601a6bb06..cd6c6fc95db 100644
+index b2200c5185a..f8be58ce0a6 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
-@@ -1052,6 +1052,7 @@ proper position among the other output files. */
+@@ -1051,6 +1051,7 @@ proper position among the other output files. */
%(mflib) " STACK_SPLIT_SPEC "\
%{fprofile-arcs|fprofile-generate*|coverage:-lgcov} " SANITIZER_SPEC " \
%{!nostdlib:%{!r:%{!nodefaultlibs:%(link_ssp) %(link_gcc_c_sequence)}}}\
@@ -120,6 +120,3 @@ index a2601a6bb06..cd6c6fc95db 100644
%{!nostdlib:%{!r:%{!nostartfiles:%E}}} %{T*} \n%(post_link) }}}}}}"
#endif
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0006-COLLECT_GCC_OPTIONS.patch b/meta/recipes-devtools/gcc/gcc/0006-COLLECT_GCC_OPTIONS.patch
index 9f7e603f8c..9fbbe80703 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0006-COLLECT_GCC_OPTIONS.patch
+++ b/meta/recipes-devtools/gcc/gcc/0006-COLLECT_GCC_OPTIONS.patch
@@ -1,7 +1,7 @@
-From b9260cd3ac26b0302824ed466a548464c864d95f Mon Sep 17 00:00:00 2001
+From a6c90d3a9c5010b4aa7cc30467cf81ca7e0f430e Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:16:28 +0400
-Subject: [PATCH 06/36] COLLECT_GCC_OPTIONS
+Subject: [PATCH] COLLECT_GCC_OPTIONS
This patch adds --sysroot into COLLECT_GCC_OPTIONS which is used to
invoke collect2.
@@ -14,10 +14,10 @@ Upstream-Status: Pending
1 file changed, 9 insertions(+)
diff --git a/gcc/gcc.c b/gcc/gcc.c
-index cd6c6fc95db..7da9c5d457b 100644
+index f8be58ce0a6..48b0f9dde81 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
-@@ -4804,6 +4804,15 @@ set_collect_gcc_options (void)
+@@ -4806,6 +4806,15 @@ set_collect_gcc_options (void)
sizeof ("COLLECT_GCC_OPTIONS=") - 1);
first_time = TRUE;
@@ -33,6 +33,3 @@ index cd6c6fc95db..7da9c5d457b 100644
for (i = 0; (int) i < n_switches; i++)
{
const char *const *args;
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch b/meta/recipes-devtools/gcc/gcc/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
index 28f8fc2674..a764bdd0f4 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
+++ b/meta/recipes-devtools/gcc/gcc/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
@@ -1,8 +1,7 @@
-From 88e728dad53d48c4a19f15e19f66fd23f4820b4a Mon Sep 17 00:00:00 2001
+From 5670d4489f119d2da661734895ac0be99b606d1b Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:17:25 +0400
-Subject: [PATCH 07/36] Use the defaults.h in ${B} instead of ${S}, and t-oe in
- ${B}
+Subject: [PATCH] Use the defaults.h in ${B} instead of ${S}, and t-oe in ${B}
Use the defaults.h in ${B} instead of ${S}, and t-oe in ${B}, so that
the source can be shared between gcc-cross-initial,
@@ -27,7 +26,7 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
4 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index 5f43d9de00e..41f0f592ff4 100644
+index 543b477ff18..a67d2cc18d6 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -540,7 +540,7 @@ TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@
@@ -40,10 +39,10 @@ index 5f43d9de00e..41f0f592ff4 100644
TM_MULTILIB_CONFIG=@TM_MULTILIB_CONFIG@
TM_MULTILIB_EXCEPTIONS_CONFIG=@TM_MULTILIB_EXCEPTIONS_CONFIG@
diff --git a/gcc/configure b/gcc/configure
-index a6ea3a8a84c..e3bcf8abe9a 100755
+index 8de766a942c..b26e8fc7fee 100755
--- a/gcc/configure
+++ b/gcc/configure
-@@ -12341,8 +12341,8 @@ for f in $tm_file; do
+@@ -12705,8 +12705,8 @@ for f in $tm_file; do
tm_include_list="${tm_include_list} $f"
;;
defaults.h )
@@ -55,10 +54,10 @@ index a6ea3a8a84c..e3bcf8abe9a 100755
* )
tm_file_list="${tm_file_list} \$(srcdir)/config/$f"
diff --git a/gcc/configure.ac b/gcc/configure.ac
-index d42bbd4fd1c..2ebc377a74d 100644
+index 8bfd6feb780..26fa46802c7 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
-@@ -1968,8 +1968,8 @@ for f in $tm_file; do
+@@ -2138,8 +2138,8 @@ for f in $tm_file; do
tm_include_list="${tm_include_list} $f"
;;
defaults.h )
@@ -70,7 +69,7 @@ index d42bbd4fd1c..2ebc377a74d 100644
* )
tm_file_list="${tm_file_list} \$(srcdir)/config/$f"
diff --git a/gcc/mkconfig.sh b/gcc/mkconfig.sh
-index 308b87d0cc1..19068cbc24a 100644
+index d2c677a4a42..d03852481cb 100644
--- a/gcc/mkconfig.sh
+++ b/gcc/mkconfig.sh
@@ -77,7 +77,7 @@ if [ -n "$HEADERS" ]; then
@@ -91,6 +90,3 @@ index 308b87d0cc1..19068cbc24a 100644
fi
# Add multiple inclusion protection guard, part two.
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0008-fortran-cross-compile-hack.patch b/meta/recipes-devtools/gcc/gcc/0008-fortran-cross-compile-hack.patch
index 24e3abe0bb..714db3bef5 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0008-fortran-cross-compile-hack.patch
+++ b/meta/recipes-devtools/gcc/gcc/0008-fortran-cross-compile-hack.patch
@@ -1,7 +1,7 @@
-From 010f09f2963ede24e85134e5fab2fa627a9afa05 Mon Sep 17 00:00:00 2001
+From f05062625e7a4751be723595a2f7a4b7fbeff311 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:20:01 +0400
-Subject: [PATCH 08/36] fortran cross-compile hack.
+Subject: [PATCH] fortran cross-compile hack.
* Fortran would have searched for arm-angstrom-gnueabi-gfortran but would have used
used gfortan. For gcc_4.2.2.bb we want to use the gfortran compiler from our cross
@@ -16,10 +16,10 @@ Upstream-Status: Inappropriate [embedded specific]
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/libgfortran/configure b/libgfortran/configure
-index 60867b93d0e..3fc9fca5b7b 100755
+index b4cf854ddb3..e8e0ac3b1cf 100755
--- a/libgfortran/configure
+++ b/libgfortran/configure
-@@ -13071,7 +13071,7 @@ esac
+@@ -13090,7 +13090,7 @@ esac
# We need gfortran to compile parts of the library
#AC_PROG_FC(gfortran)
@@ -29,10 +29,10 @@ index 60867b93d0e..3fc9fca5b7b 100755
ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
diff --git a/libgfortran/configure.ac b/libgfortran/configure.ac
-index 7cfce28ab69..6cd515ee1a4 100644
+index 711dc60ff78..3c9bbfbf47d 100644
--- a/libgfortran/configure.ac
+++ b/libgfortran/configure.ac
-@@ -250,7 +250,7 @@ AC_SUBST(enable_static)
+@@ -258,7 +258,7 @@ AC_SUBST(enable_static)
# We need gfortran to compile parts of the library
#AC_PROG_FC(gfortran)
@@ -41,6 +41,3 @@ index 7cfce28ab69..6cd515ee1a4 100644
AC_PROG_FC(gfortran)
# extra LD Flags which are required for targets
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0009-cpp-honor-sysroot.patch b/meta/recipes-devtools/gcc/gcc/0009-cpp-honor-sysroot.patch
index 6af0a0124a..8ad6853d81 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0009-cpp-honor-sysroot.patch
+++ b/meta/recipes-devtools/gcc/gcc/0009-cpp-honor-sysroot.patch
@@ -1,7 +1,7 @@
-From 45e9cd39d9c62454d46b9e9473a0c1034ceca15d Mon Sep 17 00:00:00 2001
+From 1d76de7f1f5c99f1fa1a4b14aedad3d702e4e136 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:22:00 +0400
-Subject: [PATCH 09/36] cpp: honor sysroot.
+Subject: [PATCH] cpp: honor sysroot.
Currently, if the gcc toolchain is relocated and installed from sstate, then you try and compile
preprocessed source (.i or .ii files), the compiler will try and access the builtin sysroot location
@@ -26,7 +26,7 @@ Upstream-Status: Pending
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/gcc/cp/lang-specs.h b/gcc/cp/lang-specs.h
-index c6e42eda283..e1ddf066467 100644
+index 0ad4a33b93e..16c744f4f90 100644
--- a/gcc/cp/lang-specs.h
+++ b/gcc/cp/lang-specs.h
@@ -66,5 +66,5 @@ along with GCC; see the file COPYING3. If not see
@@ -37,10 +37,10 @@ index c6e42eda283..e1ddf066467 100644
+ " cc1plus -fpreprocessed %i %I %(cc1_options) %2"
" %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
diff --git a/gcc/gcc.c b/gcc/gcc.c
-index 7da9c5d457b..4e7c45b268c 100644
+index 48b0f9dde81..c87f603955f 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
-@@ -1349,7 +1349,7 @@ static const struct compiler default_compilers[] =
+@@ -1348,7 +1348,7 @@ static const struct compiler default_compilers[] =
%W{o*:--output-pch=%*}}%V}}}}}}}", 0, 0, 0},
{".i", "@cpp-output", 0, 0, 0},
{"@cpp-output",
@@ -49,6 +49,3 @@ index 7da9c5d457b..4e7c45b268c 100644
{".s", "@assembler", 0, 0, 0},
{"@assembler",
"%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A }}}}", 0, 0, 0},
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0010-MIPS64-Default-to-N64-ABI.patch b/meta/recipes-devtools/gcc/gcc/0010-MIPS64-Default-to-N64-ABI.patch
index bc0c6d5bed..625e2d8709 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0010-MIPS64-Default-to-N64-ABI.patch
+++ b/meta/recipes-devtools/gcc/gcc/0010-MIPS64-Default-to-N64-ABI.patch
@@ -1,7 +1,7 @@
-From 1ff4108d707b34e399e9dc418ad1ecc42f72676d Mon Sep 17 00:00:00 2001
+From 4fad4433c96bc9d0d9d124f9674fb3389f6f426e Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:23:08 +0400
-Subject: [PATCH 10/36] MIPS64: Default to N64 ABI
+Subject: [PATCH] MIPS64: Default to N64 ABI
MIPS64 defaults to n32 ABI, this patch makes it
so that it defaults to N64 ABI
@@ -14,10 +14,10 @@ Upstream-Status: Inappropriate [OE config specific]
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/gcc/config.gcc b/gcc/config.gcc
-index ddd3b8f4d9d..fdfc0bd3e82 100644
+index cf1a87e2efd..37c4221a39f 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
-@@ -2282,29 +2282,29 @@ mips*-*-linux*) # Linux MIPS, either endian.
+@@ -2511,29 +2511,29 @@ mips*-*-linux*) # Linux MIPS, either endian.
default_mips_arch=mips32
;;
mips64el-st-linux-gnu)
@@ -52,6 +52,3 @@ index ddd3b8f4d9d..fdfc0bd3e82 100644
enable_mips_multilibs="yes"
;;
esac
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch b/meta/recipes-devtools/gcc/gcc/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
index 66fb24d4cd..e357976330 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
+++ b/meta/recipes-devtools/gcc/gcc/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
@@ -1,4 +1,4 @@
-From 72fc3975bcd720b2f8040fa87cd23d3db4c5975a Mon Sep 17 00:00:00 2001
+From 8fc016a53c22c19feccbfa13ebdf19090dc67058 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:24:50 +0400
Subject: [PATCH] Define GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER
@@ -31,7 +31,7 @@ Upstream-Status: Inappropriate [OE configuration]
12 files changed, 29 insertions(+), 34 deletions(-)
diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h
-index 824861befec..6afacce3292 100644
+index e25fcac3c59..01aca0c6542 100644
--- a/gcc/config/alpha/linux-elf.h
+++ b/gcc/config/alpha/linux-elf.h
@@ -23,8 +23,8 @@ along with GCC; see the file COPYING3. If not see
@@ -46,7 +46,7 @@ index 824861befec..6afacce3292 100644
#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
#elif DEFAULT_LIBC == LIBC_GLIBC
diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h
-index 66ec0ea3980..e4ade2e2ab0 100644
+index 5bdcfa0c5d3..0c0332f317f 100644
--- a/gcc/config/arm/linux-eabi.h
+++ b/gcc/config/arm/linux-eabi.h
@@ -65,8 +65,8 @@
@@ -61,7 +61,7 @@ index 66ec0ea3980..e4ade2e2ab0 100644
#define GLIBC_DYNAMIC_LINKER \
diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
-index 9a360defd21..98f6e960b64 100644
+index 0ec3aa53189..abfa9566d74 100644
--- a/gcc/config/arm/linux-elf.h
+++ b/gcc/config/arm/linux-elf.h
@@ -60,7 +60,7 @@
@@ -74,7 +74,7 @@ index 9a360defd21..98f6e960b64 100644
#define LINUX_TARGET_LINK_SPEC "%{h*} \
%{static:-Bstatic} \
diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h
-index 9a6e2d99896..31efbb73016 100644
+index 9f823f125ed..e0390b7d5e3 100644
--- a/gcc/config/i386/linux.h
+++ b/gcc/config/i386/linux.h
@@ -20,7 +20,7 @@ along with GCC; see the file COPYING3. If not see
@@ -87,7 +87,7 @@ index 9a6e2d99896..31efbb73016 100644
#undef MUSL_DYNAMIC_LINKER
#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1"
diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h
-index c08221c4210..dbb474d792b 100644
+index 6cb68d1ccfa..7de09ec857c 100644
--- a/gcc/config/i386/linux64.h
+++ b/gcc/config/i386/linux64.h
@@ -27,9 +27,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
@@ -104,7 +104,7 @@ index c08221c4210..dbb474d792b 100644
#undef MUSL_DYNAMIC_LINKER32
#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-i386.so.1"
diff --git a/gcc/config/linux.h b/gcc/config/linux.h
-index c3c4a219e67..4b05d8e93d1 100644
+index 95654bcdb5a..0c1a8118a26 100644
--- a/gcc/config/linux.h
+++ b/gcc/config/linux.h
@@ -94,10 +94,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
@@ -123,7 +123,7 @@ index c3c4a219e67..4b05d8e93d1 100644
#define BIONIC_DYNAMIC_LINKER32 "/system/bin/linker"
#define BIONIC_DYNAMIC_LINKER64 "/system/bin/linker64"
diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h
-index 6f79ac9c01a..25de96f9561 100644
+index 54446e58e5f..4786ee304c1 100644
--- a/gcc/config/mips/linux.h
+++ b/gcc/config/mips/linux.h
@@ -22,20 +22,20 @@ along with GCC; see the file COPYING3. If not see
@@ -154,7 +154,7 @@ index 6f79ac9c01a..25de96f9561 100644
#undef MUSL_DYNAMIC_LINKER32
#define MUSL_DYNAMIC_LINKER32 \
diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h
-index 58dd18b89f3..112ba9cd764 100644
+index 4afef7c228c..01997330741 100644
--- a/gcc/config/riscv/linux.h
+++ b/gcc/config/riscv/linux.h
@@ -22,7 +22,7 @@ along with GCC; see the file COPYING3. If not see
@@ -167,10 +167,10 @@ index 58dd18b89f3..112ba9cd764 100644
#define MUSL_ABI_SUFFIX \
"%{mabi=ilp32:-sf}" \
diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
-index 9946d3fed94..45a9a7cae59 100644
+index 34776c8421e..967c1c43c63 100644
--- a/gcc/config/rs6000/linux64.h
+++ b/gcc/config/rs6000/linux64.h
-@@ -423,24 +423,19 @@ extern int dot_symbols;
+@@ -419,24 +419,19 @@ extern int dot_symbols;
#undef LINK_OS_DEFAULT_SPEC
#define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
@@ -201,7 +201,7 @@ index 9946d3fed94..45a9a7cae59 100644
#undef DEFAULT_ASM_ENDIAN
#if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN)
diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h
-index c9897b7aca5..82f275319cc 100644
+index c1d0441d488..81373eb8336 100644
--- a/gcc/config/sh/linux.h
+++ b/gcc/config/sh/linux.h
@@ -64,7 +64,7 @@ along with GCC; see the file COPYING3. If not see
@@ -214,7 +214,7 @@ index c9897b7aca5..82f275319cc 100644
#undef SUBTARGET_LINK_EMUL_SUFFIX
#define SUBTARGET_LINK_EMUL_SUFFIX "%{mfdpic:_fd;:_linux}"
diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h
-index 08476f1d94d..80440e712ad 100644
+index 81201e67a2f..8b6fc577594 100644
--- a/gcc/config/sparc/linux.h
+++ b/gcc/config/sparc/linux.h
@@ -84,7 +84,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
@@ -227,7 +227,7 @@ index 08476f1d94d..80440e712ad 100644
#undef LINK_SPEC
#define LINK_SPEC "-m elf32_sparc %{shared:-shared} \
diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h
-index 789d1df4bd5..b920c680fb1 100644
+index a1a0efd8f28..85d1084afc2 100644
--- a/gcc/config/sparc/linux64.h
+++ b/gcc/config/sparc/linux64.h
@@ -84,8 +84,8 @@ along with GCC; see the file COPYING3. If not see
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0012-gcc-Fix-argument-list-too-long-error.patch b/meta/recipes-devtools/gcc/gcc/0012-gcc-Fix-argument-list-too-long-error.patch
index 60539795c5..88e1715b5c 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0012-gcc-Fix-argument-list-too-long-error.patch
+++ b/meta/recipes-devtools/gcc/gcc/0012-gcc-Fix-argument-list-too-long-error.patch
@@ -1,7 +1,7 @@
-From 2cb227cd8069c73242286f64183fb203f8d2618a Mon Sep 17 00:00:00 2001
+From a22d1264049d29b90663cf5667049ae6f9b7a5ce Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:26:37 +0400
-Subject: [PATCH 12/36] gcc: Fix argument list too long error.
+Subject: [PATCH] gcc: Fix argument list too long error.
There would be an "Argument list too long" error when the
build directory is longer than 200, this is caused by:
@@ -17,24 +17,25 @@ $(sort list) doesn't need this.
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+RP: gcc then added *.h and *.def additions to this list, breaking the original
+fix. Add the sort to the original gcc code, leaving the tr+sort to fix the original
+issue but include the new files too as reported by Zhuang <qiuguang.zqg@alibaba-inc.com>
+
Upstream-Status: Pending
---
gcc/Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index 41f0f592ff4..0064a282488 100644
+index a67d2cc18d6..480c9366418 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
-@@ -3537,7 +3537,7 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype
+@@ -3606,7 +3606,7 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype
# We keep the directory structure for files in config or c-family and .def
# files. All other files are flattened to a single directory.
$(mkinstalldirs) $(DESTDIR)$(plugin_includedir)
- headers=`echo $(PLUGIN_HEADERS) $$(cd $(srcdir); echo *.h *.def) | tr ' ' '\012' | sort -u`; \
-+ headers="$(sort $(PLUGIN_HEADERS) $$(cd $(srcdir); echo *.h *.def))"; \
++ headers=`echo $(sort $(PLUGIN_HEADERS)) $$(cd $(srcdir); echo *.h *.def) | tr ' ' '\012' | sort -u`; \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \
for file in $$headers; do \
if [ -f $$file ] ; then \
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0013-Disable-sdt.patch b/meta/recipes-devtools/gcc/gcc/0013-Disable-sdt.patch
index a21a63c617..207cdb57af 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0013-Disable-sdt.patch
+++ b/meta/recipes-devtools/gcc/gcc/0013-Disable-sdt.patch
@@ -1,7 +1,7 @@
-From aea5ffa9d704f4eb8fa93366884d3c26a1dbec49 Mon Sep 17 00:00:00 2001
+From fa47586935a18ecfc2ad5586802e326e21741b7b Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:28:10 +0400
-Subject: [PATCH 13/36] Disable sdt.
+Subject: [PATCH] Disable sdt.
We don't list dtrace in DEPENDS so we shouldn't be depending on this header.
It may or may not exist from preivous builds though. To be determinstic, disable
@@ -25,10 +25,10 @@ Upstream-Status: Inappropriate [hack]
4 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/gcc/configure b/gcc/configure
-index e3bcf8abe9a..1f1d22ca666 100755
+index b26e8fc7fee..6080f86145e 100755
--- a/gcc/configure
+++ b/gcc/configure
-@@ -29332,12 +29332,12 @@ fi
+@@ -29789,12 +29789,12 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking sys/sdt.h in the target C library" >&5
$as_echo_n "checking sys/sdt.h in the target C library... " >&6; }
have_sys_sdt_h=no
@@ -48,10 +48,10 @@ index e3bcf8abe9a..1f1d22ca666 100755
$as_echo "$have_sys_sdt_h" >&6; }
diff --git a/gcc/configure.ac b/gcc/configure.ac
-index 2ebc377a74d..ddc85197588 100644
+index 26fa46802c7..42be5252778 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
-@@ -5995,15 +5995,15 @@ fi
+@@ -6190,15 +6190,15 @@ fi
AC_SUBST([enable_default_ssp])
# Test for <sys/sdt.h> on the target.
@@ -77,10 +77,10 @@ index 2ebc377a74d..ddc85197588 100644
# Check if TFmode long double should be used by default or not.
# Some glibc targets used DFmode long double, but with glibc 2.4
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
-index 5acf79cba54..191bc6c5796 100755
+index 9f9c5a2419a..71ed13b815b 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
-@@ -22085,11 +22085,11 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+@@ -22615,11 +22615,11 @@ 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
@@ -96,10 +96,10 @@ index 5acf79cba54..191bc6c5796 100755
$as_echo "$glibcxx_cv_sys_sdt_h" >&6; }
diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac
-index dadd8827b49..6b1ce9957d3 100644
+index 699e55fd829..5c7a7bda439 100644
--- a/libstdc++-v3/configure.ac
+++ b/libstdc++-v3/configure.ac
-@@ -230,7 +230,7 @@ GLIBCXX_CHECK_SC_NPROCESSORS_ONLN
+@@ -241,7 +241,7 @@ GLIBCXX_CHECK_SC_NPROCESSORS_ONLN
GLIBCXX_CHECK_SC_NPROC_ONLN
GLIBCXX_CHECK_PTHREADS_NUM_PROCESSORS_NP
GLIBCXX_CHECK_SYSCTL_HW_NCPU
@@ -108,6 +108,3 @@ index dadd8827b49..6b1ce9957d3 100644
# Check for available headers.
AC_CHECK_HEADERS([endian.h execinfo.h float.h fp.h ieeefp.h inttypes.h \
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0014-libtool.patch b/meta/recipes-devtools/gcc/gcc/0014-libtool.patch
index 7a8f3afecf..f4e70c3b18 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0014-libtool.patch
+++ b/meta/recipes-devtools/gcc/gcc/0014-libtool.patch
@@ -1,7 +1,7 @@
-From 6c4d0c303ebc3e1c7e554d54a8bb807d77ed41fd Mon Sep 17 00:00:00 2001
+From 6ecd478881468934444ff85611fd43f7033b1e81 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:29:11 +0400
-Subject: [PATCH 14/36] libtool
+Subject: [PATCH] libtool
libstdc++ from gcc-runtime gets created with -rpath=/usr/lib/../lib for qemux86-64
when running on am x86_64 build host.
@@ -23,7 +23,7 @@ Upstream-Status: Pending
1 file changed, 4 insertions(+)
diff --git a/ltmain.sh b/ltmain.sh
-index 79f9ba89af5..8e222f7c16b 100644
+index 70990740b6c..ee938056bef 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -6359,6 +6359,10 @@ func_mode_link ()
@@ -37,6 +37,3 @@ index 79f9ba89af5..8e222f7c16b 100644
oldlibs=
if test -z "$rpath"; then
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch b/meta/recipes-devtools/gcc/gcc/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
index d06ae27028..bc2674abcc 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
+++ b/meta/recipes-devtools/gcc/gcc/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
@@ -1,7 +1,7 @@
-From c5662ff1e7dea2291b9cb7a83cfff3001dd31f53 Mon Sep 17 00:00:00 2001
+From de4427fa49c07dc651ee6ceaf5c5078700ca3b08 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:30:32 +0400
-Subject: [PATCH 15/36] gcc: armv4: pass fix-v4bx to linker to support EABI.
+Subject: [PATCH] gcc: armv4: pass fix-v4bx to linker to support EABI.
The LINK_SPEC for linux gets overwritten by linux-eabi.h which
means the value of TARGET_FIX_V4BX_SPEC gets lost and as a result
@@ -19,12 +19,12 @@ Upstream-Status: Pending
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h
-index e4ade2e2ab0..108863f69d2 100644
+index 0c0332f317f..7b3769e8459 100644
--- a/gcc/config/arm/linux-eabi.h
+++ b/gcc/config/arm/linux-eabi.h
@@ -91,10 +91,14 @@
#define MUSL_DYNAMIC_LINKER \
- "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}.so.1"
+ "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}%{mfdpic:-fdpic}.so.1"
+/* For armv4 we pass --fix-v4bx to linker to support EABI */
+#undef TARGET_FIX_V4BX_SPEC
@@ -38,6 +38,3 @@ index e4ade2e2ab0..108863f69d2 100644
LINUX_OR_ANDROID_LD (LINUX_TARGET_LINK_SPEC, \
LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC)
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch b/meta/recipes-devtools/gcc/gcc/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch
index 310caec4a1..1dc4bb859a 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch
+++ b/meta/recipes-devtools/gcc/gcc/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch
@@ -1,8 +1,8 @@
-From e3b693b9d6dc9496f7c98a13b28182d23084215c Mon Sep 17 00:00:00 2001
+From 6b363c2c1c089ee900efa6013aefba1003840a37 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 09:33:04 +0400
-Subject: [PATCH 16/36] Use the multilib config files from ${B} instead of
- using the ones from ${S}
+Subject: [PATCH] Use the multilib config files from ${B} instead of using the
+ ones from ${S}
Use the multilib config files from ${B} instead of using the ones from ${S}
so that the source can be shared between gcc-cross-initial,
@@ -18,10 +18,10 @@ Upstream-Status: Inappropriate [configuration]
2 files changed, 36 insertions(+), 8 deletions(-)
diff --git a/gcc/configure b/gcc/configure
-index 1f1d22ca666..911de2cf017 100755
+index 6080f86145e..825a9652329 100755
--- a/gcc/configure
+++ b/gcc/configure
-@@ -12321,10 +12321,20 @@ done
+@@ -12685,10 +12685,20 @@ done
tmake_file_=
for f in ${tmake_file}
do
@@ -44,9 +44,9 @@ index 1f1d22ca666..911de2cf017 100755
+ ;;
+ esac
done
- tmake_file="${tmake_file_}"
+ tmake_file="${tmake_file_}${omp_device_property_tmake_file}"
-@@ -12335,6 +12345,10 @@ tm_file_list="options.h"
+@@ -12699,6 +12709,10 @@ tm_file_list="options.h"
tm_include_list="options.h insn-constants.h"
for f in $tm_file; do
case $f in
@@ -58,10 +58,10 @@ index 1f1d22ca666..911de2cf017 100755
f=`echo $f | sed 's/^..//'`
tm_file_list="${tm_file_list} $f"
diff --git a/gcc/configure.ac b/gcc/configure.ac
-index ddc85197588..b413ae9bf25 100644
+index 42be5252778..6099eb3251f 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
-@@ -1948,10 +1948,20 @@ done
+@@ -2118,10 +2118,20 @@ done
tmake_file_=
for f in ${tmake_file}
do
@@ -84,9 +84,9 @@ index ddc85197588..b413ae9bf25 100644
+ ;;
+ esac
done
- tmake_file="${tmake_file_}"
+ tmake_file="${tmake_file_}${omp_device_property_tmake_file}"
-@@ -1962,6 +1972,10 @@ tm_file_list="options.h"
+@@ -2132,6 +2142,10 @@ tm_file_list="options.h"
tm_include_list="options.h insn-constants.h"
for f in $tm_file; do
case $f in
@@ -97,6 +97,3 @@ index ddc85197588..b413ae9bf25 100644
./* )
f=`echo $f | sed 's/^..//'`
tm_file_list="${tm_file_list} $f"
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch b/meta/recipes-devtools/gcc/gcc/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
index ad1d1d4eb0..05f12847e9 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
+++ b/meta/recipes-devtools/gcc/gcc/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
@@ -1,8 +1,8 @@
-From 09d9ccc1d471020949d1285a5276f17504fd60dd Mon Sep 17 00:00:00 2001
+From 08752c2f1d21553301bee5757c453c6a36cbe03c Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 20 Feb 2015 09:39:38 +0000
-Subject: [PATCH 17/36] Avoid using libdir from .la which usually points to a
- host path
+Subject: [PATCH] Avoid using libdir from .la which usually points to a host
+ path
Upstream-Status: Inappropriate [embedded specific]
@@ -13,7 +13,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 3 insertions(+)
diff --git a/ltmain.sh b/ltmain.sh
-index 8e222f7c16b..0a93b4e5c3b 100644
+index ee938056bef..9ebc7e3d1e0 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -5628,6 +5628,9 @@ func_mode_link ()
@@ -26,6 +26,3 @@ index 8e222f7c16b..0a93b4e5c3b 100644
dir="$libdir"
absdir="$libdir"
fi
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0018-export-CPP.patch b/meta/recipes-devtools/gcc/gcc/0018-export-CPP.patch
index 0f728ec542..886a1221d3 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0018-export-CPP.patch
+++ b/meta/recipes-devtools/gcc/gcc/0018-export-CPP.patch
@@ -1,7 +1,7 @@
-From 987338cd847a723de533bb317e452a60b1e52165 Mon Sep 17 00:00:00 2001
+From 5c3d66378c7ff60ca11a875aa4aa6f8a8529d43a Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 20 Feb 2015 09:40:59 +0000
-Subject: [PATCH 18/36] export CPP
+Subject: [PATCH] export CPP
The OE environment sets and exports CPP as being the target gcc. When
building gcc-cross-canadian for a mingw targetted sdk, the following can be found
@@ -37,7 +37,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+)
diff --git a/Makefile.in b/Makefile.in
-index 64e091ba71d..255822e3f27 100644
+index 36e369df6e7..c717903bb13 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -149,6 +149,7 @@ BUILD_EXPORTS = \
@@ -48,6 +48,3 @@ index 64e091ba71d..255822e3f27 100644
CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \
CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
CXX="$(CXX_FOR_BUILD)"; export CXX; \
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0019-Ensure-target-gcc-headers-can-be-included.patch b/meta/recipes-devtools/gcc/gcc/0019-Ensure-target-gcc-headers-can-be-included.patch
index 53f9e99d07..2797b2c22d 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0019-Ensure-target-gcc-headers-can-be-included.patch
+++ b/meta/recipes-devtools/gcc/gcc/0019-Ensure-target-gcc-headers-can-be-included.patch
@@ -1,7 +1,7 @@
-From d27ba49e2e5c608c43265462d6831363cc7f565b Mon Sep 17 00:00:00 2001
+From 378b752c5d9a3dba4e58cdadf8b4b4f34ea99a76 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 20 Feb 2015 10:25:11 +0000
-Subject: [PATCH 19/36] Ensure target gcc headers can be included
+Subject: [PATCH] Ensure target gcc headers can be included
There are a few headers installed as part of the OpenEmbedded
gcc-runtime target (omp.h, ssp/*.h). Being installed from a recipe
@@ -18,10 +18,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
gcc/Makefile.in | 2 ++
gcc/cppdefault.c | 4 ++++
- gcc/defaults.h | 9 +++++++++
- gcc/gcc.c | 7 -------
- 4 files changed, 15 insertions(+), 7 deletions(-)
+ 2 files changed, 6 insertions(+)
+diff --git a/gcc/Makefile.in b/gcc/Makefile.in
+index 480c9366418..011c7ac2db6 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -618,6 +618,7 @@ libexecdir = @libexecdir@
@@ -32,7 +32,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
# Directory in which the compiler finds executables
libexecsubdir = $(libexecdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix)
# Directory in which all plugin resources are installed
-@@ -2866,6 +2867,7 @@ CFLAGS-intl.o += -DLOCALEDIR=\"$(localed
+@@ -2946,6 +2947,7 @@ CFLAGS-intl.o += -DLOCALEDIR=\"$(localedir)\"
PREPROCESSOR_DEFINES = \
-DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \
@@ -40,9 +40,11 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
-DFIXED_INCLUDE_DIR=\"$(libsubdir)/include-fixed\" \
-DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
-DGPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT=$(gcc_gxx_include_dir_add_sysroot) \
+diff --git a/gcc/cppdefault.c b/gcc/cppdefault.c
+index af38cc494ea..2f43b88a0c3 100644
--- a/gcc/cppdefault.c
+++ b/gcc/cppdefault.c
-@@ -59,6 +59,10 @@ const struct default_include cpp_include
+@@ -59,6 +59,10 @@ const struct default_include cpp_include_defaults[]
/* This is the dir for gcc's private headers. */
{ GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
#endif
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0021-Don-t-search-host-directory-during-relink-if-inst_pr.patch b/meta/recipes-devtools/gcc/gcc/0020-Don-t-search-host-directory-during-relink-if-inst_pr.patch
index f36ca29b9e..c3baf8b451 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0021-Don-t-search-host-directory-during-relink-if-inst_pr.patch
+++ b/meta/recipes-devtools/gcc/gcc/0020-Don-t-search-host-directory-during-relink-if-inst_pr.patch
@@ -1,8 +1,8 @@
-From 667cc8d43e8fb4ac09654ee408da482f96b09580 Mon Sep 17 00:00:00 2001
+From 870e805d705d99d9b9d7dbd09727f9c1d2ad9c1d Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 3 Mar 2015 08:21:19 +0000
-Subject: [PATCH 21/36] Don't search host directory during "relink" if
- $inst_prefix is provided
+Subject: [PATCH] Don't search host directory during "relink" if $inst_prefix
+ is provided
http://lists.gnu.org/archive/html/libtool-patches/2011-01/msg00026.html
@@ -14,7 +14,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/ltmain.sh b/ltmain.sh
-index 0a93b4e5c3b..6de6ed2f9a0 100644
+index 9ebc7e3d1e0..7ea79fa8be6 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -6004,12 +6004,13 @@ func_mode_link ()
@@ -33,6 +33,3 @@ index 0a93b4e5c3b..6de6ed2f9a0 100644
;;
esac
fi
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0022-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch b/meta/recipes-devtools/gcc/gcc/0021-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch
index d5b9150023..abee48669d 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0022-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch
+++ b/meta/recipes-devtools/gcc/gcc/0021-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch
@@ -1,7 +1,7 @@
-From 279c4de48e3fd61e2f268787ed3f1d69ed9224f8 Mon Sep 17 00:00:00 2001
+From aba42de763a619355471efd1573561b0cbf51162 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 28 Apr 2015 23:15:27 -0700
-Subject: [PATCH 22/36] Use SYSTEMLIBS_DIR replacement instead of hardcoding
+Subject: [PATCH] Use SYSTEMLIBS_DIR replacement instead of hardcoding
base_libdir
Upstream-Status: Pending
@@ -12,7 +12,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
-index 5e8b34ded03..7e628bf661e 100644
+index e587e2e9ad6..ddc62895693 100644
--- a/gcc/config/aarch64/aarch64-linux.h
+++ b/gcc/config/aarch64/aarch64-linux.h
@@ -21,7 +21,7 @@
@@ -24,6 +24,3 @@ index 5e8b34ded03..7e628bf661e 100644
#undef MUSL_DYNAMIC_LINKER
#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0023-aarch64-Add-support-for-musl-ldso.patch b/meta/recipes-devtools/gcc/gcc/0022-aarch64-Add-support-for-musl-ldso.patch
index f811306c31..c55b66d4ba 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0023-aarch64-Add-support-for-musl-ldso.patch
+++ b/meta/recipes-devtools/gcc/gcc/0022-aarch64-Add-support-for-musl-ldso.patch
@@ -1,7 +1,7 @@
-From 1277d12058334087443828dfd57d44e3b1dfcc9a Mon Sep 17 00:00:00 2001
+From d63820a78d92f302410358293546f01c7ad17bd8 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 28 Apr 2015 23:18:39 -0700
-Subject: [PATCH 23/36] aarch64: Add support for musl ldso
+Subject: [PATCH] aarch64: Add support for musl ldso
Upstream-Status: Pending
@@ -11,7 +11,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
-index 7e628bf661e..1717cbe5471 100644
+index ddc62895693..b301825313a 100644
--- a/gcc/config/aarch64/aarch64-linux.h
+++ b/gcc/config/aarch64/aarch64-linux.h
@@ -24,7 +24,7 @@
@@ -23,6 +23,3 @@ index 7e628bf661e..1717cbe5471 100644
#undef ASAN_CC1_SPEC
#define ASAN_CC1_SPEC "%{%:sanitize(address):-funwind-tables}"
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0024-libcc1-fix-libcc1-s-install-path-and-rpath.patch b/meta/recipes-devtools/gcc/gcc/0023-libcc1-fix-libcc1-s-install-path-and-rpath.patch
index 298b0962f6..80c4d2292c 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0024-libcc1-fix-libcc1-s-install-path-and-rpath.patch
+++ b/meta/recipes-devtools/gcc/gcc/0023-libcc1-fix-libcc1-s-install-path-and-rpath.patch
@@ -1,7 +1,7 @@
-From 4a0487ad75accd780dd155aa59086cc4b11cfc47 Mon Sep 17 00:00:00 2001
+From 3474e16ad4ea8cf4e0e330568e3bc9039e723dce Mon Sep 17 00:00:00 2001
From: Robert Yang <liezhi.yang@windriver.com>
Date: Sun, 5 Jul 2015 20:25:18 -0700
-Subject: [PATCH 24/36] libcc1: fix libcc1's install path and rpath
+Subject: [PATCH] libcc1: fix libcc1's install path and rpath
* Install libcc1.so and libcc1plugin.so into
$(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version), as what we
@@ -20,7 +20,7 @@ Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/libcc1/Makefile.am b/libcc1/Makefile.am
-index 72c6aead475..42a87740b31 100644
+index c005b0dad4a..ec31d35b7b9 100644
--- a/libcc1/Makefile.am
+++ b/libcc1/Makefile.am
@@ -37,8 +37,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \
@@ -49,6 +49,3 @@ index 7104b649026..2103c477468 100644
@ENABLE_PLUGIN_TRUE@plugin_LTLIBRARIES = libcc1plugin.la libcp1plugin.la
@ENABLE_PLUGIN_TRUE@cc1lib_LTLIBRARIES = libcc1.la
shared_source = callbacks.cc callbacks.hh connection.cc connection.hh \
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0025-handle-sysroot-support-for-nativesdk-gcc.patch b/meta/recipes-devtools/gcc/gcc/0024-handle-sysroot-support-for-nativesdk-gcc.patch
index 2e7a444b58..1a65ece7bf 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0025-handle-sysroot-support-for-nativesdk-gcc.patch
+++ b/meta/recipes-devtools/gcc/gcc/0024-handle-sysroot-support-for-nativesdk-gcc.patch
@@ -1,7 +1,7 @@
-From a183c82ea2af934a8d30055a791dc1d80c9067a9 Mon Sep 17 00:00:00 2001
+From bb1f359e34649516e61305e9748534cce7e0ee70 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 7 Dec 2015 23:39:54 +0000
-Subject: [PATCH 25/36] handle sysroot support for nativesdk-gcc
+Subject: [PATCH] handle sysroot support for nativesdk-gcc
Being able to build a nativesdk gcc is useful, particularly in cases
where the host compiler may be of an incompatible version (or a 32
@@ -32,18 +32,33 @@ implementation.)
Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
---
- c-family/c-opts.c | 4 +--
- cppdefault.c | 63 +++++++++++++++++++++++++++++++++---------------------
- cppdefault.h | 13 ++++-------
- gcc.c | 20 ++++++++++++-----
- incpath.c | 12 +++++-----
- prefix.c | 4 +--
- 6 files changed, 68 insertions(+), 48 deletions(-)
+ gcc/c-family/c-opts.c | 4 +--
+ gcc/cppdefault.c | 63 ++++++++++++++++++++++++++-----------------
+ gcc/cppdefault.h | 13 ++++-----
+ gcc/gcc.c | 20 +++++++++-----
+ gcc/incpath.c | 12 ++++-----
+ gcc/prefix.c | 6 +++--
+ 6 files changed, 70 insertions(+), 48 deletions(-)
-Index: gcc-9.2.0/gcc/cppdefault.c
-===================================================================
---- gcc-9.2.0.orig/gcc/cppdefault.c
-+++ gcc-9.2.0/gcc/cppdefault.c
+diff --git a/gcc/c-family/c-opts.c b/gcc/c-family/c-opts.c
+index 58ba0948e79..806bbcfb7a5 100644
+--- a/gcc/c-family/c-opts.c
++++ b/gcc/c-family/c-opts.c
+@@ -1409,8 +1409,8 @@ add_prefixed_path (const char *suffix, incpath_kind chain)
+ size_t prefix_len, suffix_len;
+
+ suffix_len = strlen (suffix);
+- prefix = iprefix ? iprefix : cpp_GCC_INCLUDE_DIR;
+- prefix_len = iprefix ? strlen (iprefix) : cpp_GCC_INCLUDE_DIR_len;
++ prefix = iprefix ? iprefix : GCC_INCLUDE_DIRVAR;
++ prefix_len = iprefix ? strlen (iprefix) : strlen(GCC_INCLUDE_DIRVAR) - 7;
+
+ path = (char *) xmalloc (prefix_len + suffix_len + 1);
+ memcpy (path, prefix, prefix_len);
+diff --git a/gcc/cppdefault.c b/gcc/cppdefault.c
+index 2f43b88a0c3..6b6be04686c 100644
+--- a/gcc/cppdefault.c
++++ b/gcc/cppdefault.c
@@ -35,6 +35,30 @@
# undef CROSS_INCLUDE_DIR
#endif
@@ -75,7 +90,7 @@ Index: gcc-9.2.0/gcc/cppdefault.c
const struct default_include cpp_include_defaults[]
#ifdef INCLUDE_DEFAULTS
= INCLUDE_DEFAULTS;
-@@ -42,38 +66,38 @@ const struct default_include cpp_include
+@@ -42,38 +66,38 @@ const struct default_include cpp_include_defaults[]
= {
#ifdef GPLUSPLUS_INCLUDE_DIR
/* Pick up GNU C++ generic include files. */
@@ -123,7 +138,7 @@ Index: gcc-9.2.0/gcc/cppdefault.c
/* A multilib suffix needs adding if different multilibs use
different headers. */
#ifdef SYSROOT_HEADERS_SUFFIX_SPEC
-@@ -85,33 +109,24 @@ const struct default_include cpp_include
+@@ -85,33 +109,24 @@ const struct default_include cpp_include_defaults[]
#endif
#ifdef CROSS_INCLUDE_DIR
/* One place the target system's headers might be. */
@@ -163,10 +178,10 @@ Index: gcc-9.2.0/gcc/cppdefault.c
/* This value is set by cpp_relocated at runtime */
const char *gcc_exec_prefix;
-Index: gcc-9.2.0/gcc/cppdefault.h
-===================================================================
---- gcc-9.2.0.orig/gcc/cppdefault.h
-+++ gcc-9.2.0/gcc/cppdefault.h
+diff --git a/gcc/cppdefault.h b/gcc/cppdefault.h
+index a681264f75e..5e10a2fa140 100644
+--- a/gcc/cppdefault.h
++++ b/gcc/cppdefault.h
@@ -33,7 +33,8 @@
struct default_include
@@ -198,11 +213,11 @@ Index: gcc-9.2.0/gcc/cppdefault.h
/* The run-time execution prefix. This is typically the lib/gcc
subdirectory of the actual installation. */
extern const char *gcc_exec_prefix;
-Index: gcc-9.2.0/gcc/gcc.c
-===================================================================
---- gcc-9.2.0.orig/gcc/gcc.c
-+++ gcc-9.2.0/gcc/gcc.c
-@@ -253,6 +253,8 @@ FILE *report_times_to_file = NULL;
+diff --git a/gcc/gcc.c b/gcc/gcc.c
+index c87f603955f..535d5c3bb65 100644
+--- a/gcc/gcc.c
++++ b/gcc/gcc.c
+@@ -252,6 +252,8 @@ FILE *report_times_to_file = NULL;
#endif
static const char *target_system_root = DEFAULT_TARGET_SYSTEM_ROOT;
@@ -211,7 +226,7 @@ Index: gcc-9.2.0/gcc/gcc.c
/* Nonzero means pass the updated target_system_root to the compiler. */
static int target_system_root_changed;
-@@ -527,6 +529,7 @@ or with constant text in a single argume
+@@ -526,6 +528,7 @@ or with constant text in a single argument.
%G process LIBGCC_SPEC as a spec.
%R Output the concatenation of target_system_root and
target_sysroot_suffix.
@@ -219,7 +234,7 @@ Index: gcc-9.2.0/gcc/gcc.c
%S process STARTFILE_SPEC as a spec. A capital S is actually used here.
%E process ENDFILE_SPEC as a spec. A capital E is actually used here.
%C process CPP_SPEC as a spec.
-@@ -1500,10 +1503,10 @@ static const char *gcc_libexec_prefix;
+@@ -1499,10 +1502,10 @@ static const char *gcc_libexec_prefix;
gcc_exec_prefix is set because, in that case, we know where the
compiler has been installed, and use paths relative to that
location instead. */
@@ -234,7 +249,7 @@ Index: gcc-9.2.0/gcc/gcc.c
/* For native compilers, these are well-known paths containing
components that may be provided by the system. For cross
-@@ -1511,9 +1514,9 @@ static const char *const standard_startf
+@@ -1510,9 +1513,9 @@ static const char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX;
static const char *md_exec_prefix = MD_EXEC_PREFIX;
static const char *md_startfile_prefix = MD_STARTFILE_PREFIX;
static const char *md_startfile_prefix_1 = MD_STARTFILE_PREFIX_1;
@@ -246,7 +261,7 @@ Index: gcc-9.2.0/gcc/gcc.c
= STANDARD_STARTFILE_PREFIX_2;
/* A relative path to be used in finding the location of tools
-@@ -5922,6 +5925,11 @@ do_spec_1 (const char *spec, int inswitc
+@@ -5952,6 +5955,11 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
}
break;
@@ -258,26 +273,11 @@ Index: gcc-9.2.0/gcc/gcc.c
case 'S':
value = do_spec_1 (startfile_spec, 0, NULL);
if (value != 0)
-Index: gcc-9.2.0/gcc/c-family/c-opts.c
-===================================================================
---- gcc-9.2.0.orig/gcc/c-family/c-opts.c
-+++ gcc-9.2.0/gcc/c-family/c-opts.c
-@@ -1382,8 +1382,8 @@ add_prefixed_path (const char *suffix, i
- size_t prefix_len, suffix_len;
-
- suffix_len = strlen (suffix);
-- prefix = iprefix ? iprefix : cpp_GCC_INCLUDE_DIR;
-- prefix_len = iprefix ? strlen (iprefix) : cpp_GCC_INCLUDE_DIR_len;
-+ prefix = iprefix ? iprefix : GCC_INCLUDE_DIRVAR;
-+ prefix_len = iprefix ? strlen (iprefix) : strlen(GCC_INCLUDE_DIRVAR) - 7;
-
- path = (char *) xmalloc (prefix_len + suffix_len + 1);
- memcpy (path, prefix, prefix_len);
-Index: gcc-9.2.0/gcc/incpath.c
-===================================================================
---- gcc-9.2.0.orig/gcc/incpath.c
-+++ gcc-9.2.0/gcc/incpath.c
-@@ -131,7 +131,7 @@ add_standard_paths (const char *sysroot,
+diff --git a/gcc/incpath.c b/gcc/incpath.c
+index 9098ab044ab..bfad4ebe382 100644
+--- a/gcc/incpath.c
++++ b/gcc/incpath.c
+@@ -131,7 +131,7 @@ add_standard_paths (const char *sysroot, const char *iprefix,
int relocated = cpp_relocated ();
size_t len;
@@ -286,7 +286,7 @@ Index: gcc-9.2.0/gcc/incpath.c
{
/* Look for directories that start with the standard prefix.
"Translate" them, i.e. replace /usr/local/lib/gcc... with
-@@ -145,7 +145,7 @@ add_standard_paths (const char *sysroot,
+@@ -145,7 +145,7 @@ add_standard_paths (const char *sysroot, const char *iprefix,
now. */
if (sysroot && p->add_sysroot)
continue;
@@ -295,7 +295,7 @@ Index: gcc-9.2.0/gcc/incpath.c
{
char *str = concat (iprefix, p->fname + len, NULL);
if (p->multilib == 1 && imultilib)
-@@ -185,7 +185,7 @@ add_standard_paths (const char *sysroot,
+@@ -185,7 +185,7 @@ add_standard_paths (const char *sysroot, const char *iprefix,
free (sysroot_no_trailing_dir_separator);
}
else if (!p->add_sysroot && relocated
@@ -304,7 +304,7 @@ Index: gcc-9.2.0/gcc/incpath.c
{
static const char *relocated_prefix;
char *ostr;
-@@ -202,12 +202,12 @@ add_standard_paths (const char *sysroot,
+@@ -202,12 +202,12 @@ add_standard_paths (const char *sysroot, const char *iprefix,
dummy = concat (gcc_exec_prefix, "dummy", NULL);
relocated_prefix
= make_relative_prefix (dummy,
@@ -320,11 +320,11 @@ Index: gcc-9.2.0/gcc/incpath.c
NULL);
str = update_path (ostr, p->component);
free (ostr);
-Index: gcc-9.2.0/gcc/prefix.c
-===================================================================
---- gcc-9.2.0.orig/gcc/prefix.c
-+++ gcc-9.2.0/gcc/prefix.c
-@@ -72,7 +72,9 @@ License along with GCC; see the file COP
+diff --git a/gcc/prefix.c b/gcc/prefix.c
+index 1a403e535bd..3257ed3cd3e 100644
+--- a/gcc/prefix.c
++++ b/gcc/prefix.c
+@@ -72,7 +72,9 @@ License along with GCC; see the file COPYING3. If not see
#include "prefix.h"
#include "common/common-target.h"
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0026-Search-target-sysroot-gcc-version-specific-dirs-with.patch b/meta/recipes-devtools/gcc/gcc/0025-Search-target-sysroot-gcc-version-specific-dirs-with.patch
index fde206eb71..abf1f8491f 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0026-Search-target-sysroot-gcc-version-specific-dirs-with.patch
+++ b/meta/recipes-devtools/gcc/gcc/0025-Search-target-sysroot-gcc-version-specific-dirs-with.patch
@@ -1,7 +1,7 @@
-From dab4db14e319f3239a2b4c7d1fbf2971936e27ba Mon Sep 17 00:00:00 2001
+From 9c0c73ee48dbee2aad57f4dcdad1b7b74e77b944 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 7 Dec 2015 23:41:45 +0000
-Subject: [PATCH 26/36] Search target sysroot gcc version specific dirs with
+Subject: [PATCH] Search target sysroot gcc version specific dirs with
multilib.
We install the gcc libraries (such as crtbegin.p) into
@@ -51,10 +51,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 28 insertions(+), 1 deletion(-)
diff --git a/gcc/gcc.c b/gcc/gcc.c
-index db0e2934038..1c21d1b08eb 100644
+index 535d5c3bb65..04647ae812d 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
-@@ -2610,7 +2610,7 @@ for_each_path (const struct path_prefix *paths,
+@@ -2616,7 +2616,7 @@ for_each_path (const struct path_prefix *paths,
if (path == NULL)
{
len = paths->max_len + extra_space + 1;
@@ -63,7 +63,7 @@ index db0e2934038..1c21d1b08eb 100644
path = XNEWVEC (char, len);
}
-@@ -2622,6 +2622,33 @@ for_each_path (const struct path_prefix *paths,
+@@ -2628,6 +2628,33 @@ for_each_path (const struct path_prefix *paths,
/* Look first in MACHINE/VERSION subdirectory. */
if (!skip_multi_dir)
{
@@ -97,6 +97,3 @@ index db0e2934038..1c21d1b08eb 100644
memcpy (path + len, multi_suffix, suffix_len + 1);
ret = callback (path, callback_info);
if (ret)
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0027-Fix-various-_FOR_BUILD-and-related-variables.patch b/meta/recipes-devtools/gcc/gcc/0026-Fix-various-_FOR_BUILD-and-related-variables.patch
index 5d89e8e7e2..97bf2f3a73 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0027-Fix-various-_FOR_BUILD-and-related-variables.patch
+++ b/meta/recipes-devtools/gcc/gcc/0026-Fix-various-_FOR_BUILD-and-related-variables.patch
@@ -1,7 +1,7 @@
-From 8e84bb09d2b7a60487a30e438bb109f31c2c254b Mon Sep 17 00:00:00 2001
+From 3a003af8804dda90fdf4862eca5f66cb12faaf02 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 7 Dec 2015 23:42:45 +0000
-Subject: [PATCH 27/36] Fix various _FOR_BUILD and related variables
+Subject: [PATCH] Fix various _FOR_BUILD and related variables
When doing a FOR_BUILD thing, you have to override CFLAGS with
CFLAGS_FOR_BUILD. And if you use C++, you also have to override
@@ -26,7 +26,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
5 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/Makefile.in b/Makefile.in
-index 255822e3f27..9dc0dff0474 100644
+index c717903bb13..5abc649868d 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -152,6 +152,7 @@ BUILD_EXPORTS = \
@@ -55,7 +55,7 @@ index 255822e3f27..9dc0dff0474 100644
ADA_CFLAGS="$(ADA_CFLAGS)"; export ADA_CFLAGS; \
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
-@@ -775,6 +780,7 @@ BASE_FLAGS_TO_PASS = \
+@@ -776,6 +781,7 @@ BASE_FLAGS_TO_PASS = \
"CC_FOR_BUILD=$(CC_FOR_BUILD)" \
"CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
"CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \
@@ -64,7 +64,7 @@ index 255822e3f27..9dc0dff0474 100644
"FLEX=$(FLEX)" \
"INSTALL=$(INSTALL)" \
diff --git a/Makefile.tpl b/Makefile.tpl
-index 41cae58a267..d3f6b79acdc 100644
+index efed1511750..778beb705b4 100644
--- a/Makefile.tpl
+++ b/Makefile.tpl
@@ -154,6 +154,7 @@ BUILD_EXPORTS = \
@@ -94,7 +94,7 @@ index 41cae58a267..d3f6b79acdc 100644
CFLAGS="$(CFLAGS)"; export CFLAGS; \
CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index 21472745c2c..8c93f03ffdc 100644
+index 011c7ac2db6..2f1165f7b5e 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -805,7 +805,7 @@ BUILD_LDFLAGS=@BUILD_LDFLAGS@
@@ -107,10 +107,10 @@ index 21472745c2c..8c93f03ffdc 100644
# Actual name to use when installing a native compiler.
GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)')
diff --git a/gcc/configure b/gcc/configure
-index 911de2cf017..325ace34cdf 100755
+index 825a9652329..ff46cf58960 100755
--- a/gcc/configure
+++ b/gcc/configure
-@@ -11965,7 +11965,7 @@ else
+@@ -12314,7 +12314,7 @@ else
CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
CXX="${CXX_FOR_BUILD}" CXXFLAGS="${CXXFLAGS_FOR_BUILD}" \
LD="${LD_FOR_BUILD}" LDFLAGS="${LDFLAGS_FOR_BUILD}" \
@@ -118,12 +118,12 @@ index 911de2cf017..325ace34cdf 100755
+ GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \
${realsrcdir}/configure \
--enable-languages=${enable_languages-all} \
- --target=$target_alias --host=$build_alias --build=$build_alias
+ ${enable_obsolete+--enable-obsolete="$enable_obsolete"} \
diff --git a/gcc/configure.ac b/gcc/configure.ac
-index b413ae9bf25..72a6c95121b 100644
+index 6099eb3251f..b3c345b61dc 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
-@@ -1743,7 +1743,7 @@ else
+@@ -1898,7 +1898,7 @@ else
CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
CXX="${CXX_FOR_BUILD}" CXXFLAGS="${CXXFLAGS_FOR_BUILD}" \
LD="${LD_FOR_BUILD}" LDFLAGS="${LDFLAGS_FOR_BUILD}" \
@@ -131,7 +131,4 @@ index b413ae9bf25..72a6c95121b 100644
+ GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \
${realsrcdir}/configure \
--enable-languages=${enable_languages-all} \
- --target=$target_alias --host=$build_alias --build=$build_alias
---
-2.22.1
-
+ ${enable_obsolete+--enable-obsolete="$enable_obsolete"} \
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0028-nios2-Define-MUSL_DYNAMIC_LINKER.patch b/meta/recipes-devtools/gcc/gcc/0027-nios2-Define-MUSL_DYNAMIC_LINKER.patch
index 84d92a337e..3cd75b7183 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0028-nios2-Define-MUSL_DYNAMIC_LINKER.patch
+++ b/meta/recipes-devtools/gcc/gcc/0027-nios2-Define-MUSL_DYNAMIC_LINKER.patch
@@ -1,7 +1,7 @@
-From 5647f773e28b528a67800ef06ca44730f9f5dc7e Mon Sep 17 00:00:00 2001
+From 4e53d0ae70af85af0e112a48a3e4dfe4c39f4a8d Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 2 Feb 2016 10:26:10 -0800
-Subject: [PATCH 28/36] nios2: Define MUSL_DYNAMIC_LINKER
+Subject: [PATCH] nios2: Define MUSL_DYNAMIC_LINKER
Upstream-Status: Pending
@@ -12,7 +12,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+)
diff --git a/gcc/config/nios2/linux.h b/gcc/config/nios2/linux.h
-index 698734add35..eeee60ecfea 100644
+index 4bdcdcca1f0..e7943a9d640 100644
--- a/gcc/config/nios2/linux.h
+++ b/gcc/config/nios2/linux.h
@@ -30,6 +30,7 @@
@@ -23,6 +23,3 @@ index 698734add35..eeee60ecfea 100644
#undef LINK_SPEC
#define LINK_SPEC LINK_SPEC_ENDIAN \
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0029-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch b/meta/recipes-devtools/gcc/gcc/0028-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
index d19e5a08b9..2a6769a82e 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0029-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
+++ b/meta/recipes-devtools/gcc/gcc/0028-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
@@ -1,7 +1,7 @@
-From 474043ca7a064ca7b0a32308a0ed6f7c546f17b2 Mon Sep 17 00:00:00 2001
+From 5db0404eb770ac477fd99d444226bcf021067584 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 27 Jun 2017 18:10:54 -0700
-Subject: [PATCH 29/36] Add ssp_nonshared to link commandline for musl targets
+Subject: [PATCH] Add ssp_nonshared to link commandline for musl targets
when -fstack-protector options are enabled we need to
link with ssp_shared on musl since it does not provide
@@ -23,7 +23,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
3 files changed, 27 insertions(+)
diff --git a/gcc/config/linux.h b/gcc/config/linux.h
-index 4b05d8e93d1..0ca117e2ed4 100644
+index 0c1a8118a26..bdc2a2d0659 100644
--- a/gcc/config/linux.h
+++ b/gcc/config/linux.h
@@ -195,6 +195,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
@@ -41,7 +41,7 @@ index 4b05d8e93d1..0ca117e2ed4 100644
#if (DEFAULT_LIBC == LIBC_UCLIBC) && defined (SINGLE_LIBC) /* uClinux */
diff --git a/gcc/config/rs6000/linux.h b/gcc/config/rs6000/linux.h
-index ffceb32bf65..c82cb2ad05b 100644
+index b7026fcbee7..dd54d6c393e 100644
--- a/gcc/config/rs6000/linux.h
+++ b/gcc/config/rs6000/linux.h
@@ -94,6 +94,16 @@
@@ -62,10 +62,10 @@ index ffceb32bf65..c82cb2ad05b 100644
#define LINK_OS_LINUX_SPEC LINK_OS_LINUX_EMUL " %{!shared: %{!static: \
%{!static-pie: \
diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
-index 45a9a7cae59..d1e88a40e82 100644
+index 967c1c43c63..dc5e4d97975 100644
--- a/gcc/config/rs6000/linux64.h
+++ b/gcc/config/rs6000/linux64.h
-@@ -456,6 +456,16 @@ extern int dot_symbols;
+@@ -452,6 +452,16 @@ extern int dot_symbols;
" -m elf64ppc")
#endif
@@ -82,6 +82,3 @@ index 45a9a7cae59..d1e88a40e82 100644
#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " %{!shared: %{!static: \
%{!static-pie: \
%{rdynamic:-export-dynamic} \
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0031-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch b/meta/recipes-devtools/gcc/gcc/0029-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch
index dc2141d70c..767cba0380 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0031-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch
+++ b/meta/recipes-devtools/gcc/gcc/0029-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch
@@ -1,7 +1,7 @@
-From 266dcc78e4d9d38de2809118977d97dc9270cf1f Mon Sep 17 00:00:00 2001
+From fbc926dbf6a47fa623b9c94cd9b09a0e90448fdc Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 4 May 2016 21:11:34 -0700
-Subject: [PATCH 31/36] Link libgcc using LDFLAGS, not just SHLIB_LDFLAGS
+Subject: [PATCH] Link libgcc using LDFLAGS, not just SHLIB_LDFLAGS
Upstream-Status: Pending
@@ -12,7 +12,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libgcc/config/t-slibgcc b/libgcc/config/t-slibgcc
-index 099bf23e62f..436b277a79f 100644
+index c997553447c..330352c2c81 100644
--- a/libgcc/config/t-slibgcc
+++ b/libgcc/config/t-slibgcc
@@ -32,7 +32,7 @@ SHLIB_INSTALL_SOLINK = $(LN_S) $(SHLIB_SONAME) \
@@ -24,6 +24,3 @@ index 099bf23e62f..436b277a79f 100644
-o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp @multilib_flags@ \
$(SHLIB_OBJS) $(SHLIB_LC) && \
rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0033-sync-gcc-stddef.h-with-musl.patch b/meta/recipes-devtools/gcc/gcc/0030-sync-gcc-stddef.h-with-musl.patch
index b99ac429a0..4f18907a1d 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0033-sync-gcc-stddef.h-with-musl.patch
+++ b/meta/recipes-devtools/gcc/gcc/0030-sync-gcc-stddef.h-with-musl.patch
@@ -1,7 +1,7 @@
-From 39e2f61d262f9f6c7a91068998dea80791ef665e Mon Sep 17 00:00:00 2001
+From 24dc04dc8d69e3bf61322615b3ef18e02ccd311e Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 3 Feb 2017 12:56:00 -0800
-Subject: [PATCH 33/36] sync gcc stddef.h with musl
+Subject: [PATCH] sync gcc stddef.h with musl
musl defines ptrdiff_t size_t and wchar_t
so dont define them here if musl is definining them
@@ -14,7 +14,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 9 insertions(+)
diff --git a/gcc/ginclude/stddef.h b/gcc/ginclude/stddef.h
-index da692e1c01a..9a00c261adb 100644
+index 9d67eac4947..6cb5edbedb4 100644
--- a/gcc/ginclude/stddef.h
+++ b/gcc/ginclude/stddef.h
@@ -128,6 +128,7 @@ _TYPE_wchar_t;
@@ -86,6 +86,3 @@ index da692e1c01a..9a00c261adb 100644
#undef __need_wchar_t
#endif /* _STDDEF_H or __need_wchar_t. */
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0034-fix-segmentation-fault-in-precompiled-header-generat.patch b/meta/recipes-devtools/gcc/gcc/0031-fix-segmentation-fault-in-precompiled-header-generat.patch
index 06a3c9f884..702279af0e 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0034-fix-segmentation-fault-in-precompiled-header-generat.patch
+++ b/meta/recipes-devtools/gcc/gcc/0031-fix-segmentation-fault-in-precompiled-header-generat.patch
@@ -1,7 +1,7 @@
-From aaa896a57b0004a74c1d474e74b21f41147a65cb Mon Sep 17 00:00:00 2001
+From 27b8ba5555ada2dab076988529bfb84d00a4b901 Mon Sep 17 00:00:00 2001
From: Juro Bystricky <juro.bystricky@intel.com>
Date: Mon, 19 Mar 2018 22:31:20 -0700
-Subject: [PATCH 34/36] fix segmentation fault in precompiled header generation
+Subject: [PATCH] fix segmentation fault in precompiled header generation
Prevent a segmentation fault which occurs when using incorrect
structure trying to access name of some named operators, such as
@@ -19,10 +19,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 21 insertions(+), 5 deletions(-)
diff --git a/libcpp/lex.c b/libcpp/lex.c
-index eedfcbb3146..15040a1b1f0 100644
+index 56ac3a1dd73..73a951148b3 100644
--- a/libcpp/lex.c
+++ b/libcpp/lex.c
-@@ -3280,11 +3280,27 @@ cpp_spell_token (cpp_reader *pfile, const cpp_token *token,
+@@ -3311,11 +3311,27 @@ cpp_spell_token (cpp_reader *pfile, const cpp_token *token,
spell_ident:
case SPELL_IDENT:
if (forstring)
@@ -55,6 +55,3 @@ index eedfcbb3146..15040a1b1f0 100644
else
buffer = _cpp_spell_ident_ucns (buffer, token->val.node.node);
break;
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0035-Fix-for-testsuite-failure.patch b/meta/recipes-devtools/gcc/gcc/0032-Fix-for-testsuite-failure.patch
index 7470cbfcfc..0a0767b441 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0035-Fix-for-testsuite-failure.patch
+++ b/meta/recipes-devtools/gcc/gcc/0032-Fix-for-testsuite-failure.patch
@@ -1,7 +1,7 @@
-From 0f9d449c739df03782ce9d29f6b68d9af976a607 Mon Sep 17 00:00:00 2001
+From 2512aacf023c679d86d8f40caff4f6ff412b32ff Mon Sep 17 00:00:00 2001
From: RAGHUNATH LOLUR <raghunath.lolur@kpit.com>
Date: Wed, 6 Dec 2017 22:52:26 -0800
-Subject: [PATCH 35/36] Fix for testsuite failure
+Subject: [PATCH] Fix for testsuite failure
2017-11-16 Raghunath Lolur <raghunath.lolur@kpit.com>
@@ -220,7 +220,7 @@ index 96006b3e338..4287e4538bf 100644
/* This test uses __builtin_trap () instead of e.g. abort,
because due to -mpreferred-stack-boundary=3 it should not call
diff --git a/gcc/testsuite/gcc.target/i386/pr62120.c b/gcc/testsuite/gcc.target/i386/pr62120.c
-index bfb8c4703eb..ed04cf181f3 100644
+index 28d85d37712..c93266bd4bc 100644
--- a/gcc/testsuite/gcc.target/i386/pr62120.c
+++ b/gcc/testsuite/gcc.target/i386/pr62120.c
@@ -1,5 +1,5 @@
@@ -253,6 +253,3 @@ index 6cda1534311..26e37f5b8ba 100644
#define vector(elcount, type) \
__attribute__((vector_size((elcount)*sizeof(type)))) type
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0036-Re-introduce-spe-commandline-options.patch b/meta/recipes-devtools/gcc/gcc/0033-Re-introduce-spe-commandline-options.patch
index 4dbcd98945..ba7c2b8fd5 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0036-Re-introduce-spe-commandline-options.patch
+++ b/meta/recipes-devtools/gcc/gcc/0033-Re-introduce-spe-commandline-options.patch
@@ -1,7 +1,7 @@
-From 71e99c2b58a9eb00cdd65a04aeb6fb78227e3297 Mon Sep 17 00:00:00 2001
+From 3fc06241ce37e2e4b3ed21ace28d347eb511448d Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 6 Jun 2018 12:10:22 -0700
-Subject: [PATCH 36/36] Re-introduce spe commandline options
+Subject: [PATCH] Re-introduce spe commandline options
This should ensure that we keep accepting
spe options
@@ -14,10 +14,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 12 insertions(+)
diff --git a/gcc/config/rs6000/rs6000.opt b/gcc/config/rs6000/rs6000.opt
-index f4b5c91e11f..69869350fce 100644
+index f95b8279270..0e52d51409d 100644
--- a/gcc/config/rs6000/rs6000.opt
+++ b/gcc/config/rs6000/rs6000.opt
-@@ -345,6 +345,18 @@ mdebug=
+@@ -344,6 +344,18 @@ mdebug=
Target RejectNegative Joined
-mdebug= Enable debug output.
@@ -36,6 +36,3 @@ index f4b5c91e11f..69869350fce 100644
mabi=altivec
Target RejectNegative Var(rs6000_altivec_abi) Save
Use the AltiVec ABI extensions.
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc-9.2/0032-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch b/meta/recipes-devtools/gcc/gcc/0034-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch
index 8dde016ce5..4ce9dc6def 100644
--- a/meta/recipes-devtools/gcc/gcc-9.2/0032-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch
+++ b/meta/recipes-devtools/gcc/gcc/0034-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch
@@ -1,7 +1,7 @@
-From 9975b6ed3570bbf7c7d2d82f4d5f733d24ccacf5 Mon Sep 17 00:00:00 2001
+From b42ff59c3fe2967d37815c8db72a47b9b7f585b4 Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Sat, 24 Oct 2015 20:09:53 +0000
-Subject: [PATCH 32/36] libgcc_s: Use alias for __cpu_indicator_init instead of
+Subject: [PATCH] libgcc_s: Use alias for __cpu_indicator_init instead of
symver
Adapter from
@@ -26,23 +26,23 @@ gcc/Changelog:
2015-05-11 Szabolcs Nagy <szabolcs.nagy@arm.com>
- * config/i386/i386.c (ix86_expand_builtin): Make __builtin_cpu_init
+ * config/i386/i386-expand.c (ix86_expand_builtin): Make __builtin_cpu_init
call __cpu_indicator_init_local instead of __cpu_indicator_init.
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
- gcc/config/i386/i386.c | 4 ++--
- libgcc/config/i386/cpuinfo.c | 6 +++---
- libgcc/config/i386/t-linux | 2 +-
+ gcc/config/i386/i386-expand.c | 4 ++--
+ libgcc/config/i386/cpuinfo.c | 6 +++---
+ libgcc/config/i386/t-linux | 2 +-
3 files changed, 6 insertions(+), 6 deletions(-)
-diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
-index 2b37296e537..dd380ddba88 100644
---- a/gcc/config/i386/i386.c
-+++ b/gcc/config/i386/i386.c
-@@ -36658,10 +36658,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
+diff --git a/gcc/config/i386/i386-expand.c b/gcc/config/i386/i386-expand.c
+index 48f00c5fcfc..468f5f71fac 100644
+--- a/gcc/config/i386/i386-expand.c
++++ b/gcc/config/i386/i386-expand.c
+@@ -10941,10 +10941,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
{
case IX86_BUILTIN_CPU_INIT:
{
@@ -56,10 +56,10 @@ index 2b37296e537..dd380ddba88 100644
return expand_expr (call_expr, target, mode, EXPAND_NORMAL);
}
diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c
-index d6cb2de6265..ce04ef78205 100644
+index 00322c58622..f42bbb8af98 100644
--- a/libgcc/config/i386/cpuinfo.c
+++ b/libgcc/config/i386/cpuinfo.c
-@@ -504,7 +504,7 @@ __cpu_indicator_init (void)
+@@ -508,7 +508,7 @@ __cpu_indicator_init (void)
return 0;
}
@@ -81,6 +81,3 @@ index 8506a635790..564296f788e 100644
-HOST_LIBGCC2_CFLAGS += -mlong-double-80 -DUSE_ELF_SYMVER $(CET_FLAGS)
+HOST_LIBGCC2_CFLAGS += -mlong-double-80 $(CET_FLAGS)
CRTSTUFF_T_CFLAGS += $(CET_FLAGS)
---
-2.22.1
-
diff --git a/meta/recipes-devtools/gcc/gcc/0035-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch b/meta/recipes-devtools/gcc/gcc/0035-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch
new file mode 100644
index 0000000000..dd1bf6dedc
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc/0035-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch
@@ -0,0 +1,182 @@
+From 0395060a7dcf98c5f5a65103f6aaa71d6b862259 Mon Sep 17 00:00:00 2001
+From: Richard Purdie <richard.purdie@linuxfoundation.org>
+Date: Tue, 10 Mar 2020 08:26:53 -0700
+Subject: [PATCH] gentypes/genmodes: Do not use __LINE__ for maintaining
+ reproducibility
+
+Inserting line numbers into generated code means its not always reproducible wth
+differing versions of host gcc. Void the issue by not adding these.
+
+Upstream-Status: Inappropriate [OE Reproducibility specific]
+
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gcc/gengtype.c | 6 +++---
+ gcc/genmodes.c | 32 ++++++++++++++++----------------
+ 2 files changed, 19 insertions(+), 19 deletions(-)
+
+diff --git a/gcc/gengtype.c b/gcc/gengtype.c
+index 981577481af..d5700fff401 100644
+--- a/gcc/gengtype.c
++++ b/gcc/gengtype.c
+@@ -991,7 +991,7 @@ create_field_at (pair_p next, type_p type, const char *name, options_p opt,
+ /* Create a fake field with the given type and name. NEXT is the next
+ field in the chain. */
+ #define create_field(next,type,name) \
+- create_field_all (next,type,name, 0, this_file, __LINE__)
++ create_field_all (next,type,name, 0, this_file, 0)
+
+ /* Like create_field, but the field is only valid when condition COND
+ is true. */
+@@ -1024,7 +1024,7 @@ create_optional_field_ (pair_p next, type_p type, const char *name,
+ }
+
+ #define create_optional_field(next,type,name,cond) \
+- create_optional_field_(next,type,name,cond,__LINE__)
++ create_optional_field_(next,type,name,cond,0)
+
+ /* Reverse a linked list of 'struct pair's in place. */
+ pair_p
+@@ -5187,7 +5187,7 @@ main (int argc, char **argv)
+ /* These types are set up with #define or else outside of where
+ we can see them. We should initialize them before calling
+ read_input_list. */
+-#define POS_HERE(Call) do { pos.file = this_file; pos.line = __LINE__; \
++#define POS_HERE(Call) do { pos.file = this_file; pos.line = 0; \
+ Call;} while (0)
+ POS_HERE (do_scalar_typedef ("CUMULATIVE_ARGS", &pos));
+ POS_HERE (do_scalar_typedef ("REAL_VALUE_TYPE", &pos));
+diff --git a/gcc/genmodes.c b/gcc/genmodes.c
+index bd78310ea24..dbd02c51a4c 100644
+--- a/gcc/genmodes.c
++++ b/gcc/genmodes.c
+@@ -430,7 +430,7 @@ complete_all_modes (void)
+ }
+
+ /* For each mode in class CLASS, construct a corresponding complex mode. */
+-#define COMPLEX_MODES(C) make_complex_modes (MODE_##C, __FILE__, __LINE__)
++#define COMPLEX_MODES(C) make_complex_modes (MODE_##C, __FILE__, 0)
+ static void
+ make_complex_modes (enum mode_class cl,
+ const char *file, unsigned int line)
+@@ -489,7 +489,7 @@ make_complex_modes (enum mode_class cl,
+ having as many components as necessary. ORDER is the sorting order
+ of the mode, with smaller numbers indicating a higher priority. */
+ #define VECTOR_MODES_WITH_PREFIX(PREFIX, C, W, ORDER) \
+- make_vector_modes (MODE_##C, #PREFIX, W, ORDER, __FILE__, __LINE__)
++ make_vector_modes (MODE_##C, #PREFIX, W, ORDER, __FILE__, 0)
+ #define VECTOR_MODES(C, W) VECTOR_MODES_WITH_PREFIX (V, C, W, 0)
+ static void ATTRIBUTE_UNUSED
+ make_vector_modes (enum mode_class cl, const char *prefix, unsigned int width,
+@@ -541,7 +541,7 @@ make_vector_modes (enum mode_class cl, const char *prefix, unsigned int width,
+ /* Create a vector of booleans called NAME with COUNT elements and
+ BYTESIZE bytes in total. */
+ #define VECTOR_BOOL_MODE(NAME, COUNT, BYTESIZE) \
+- make_vector_bool_mode (#NAME, COUNT, BYTESIZE, __FILE__, __LINE__)
++ make_vector_bool_mode (#NAME, COUNT, BYTESIZE, __FILE__, 0)
+ static void ATTRIBUTE_UNUSED
+ make_vector_bool_mode (const char *name, unsigned int count,
+ unsigned int bytesize, const char *file,
+@@ -563,7 +563,7 @@ make_vector_bool_mode (const char *name, unsigned int count,
+ /* Input. */
+
+ #define _SPECIAL_MODE(C, N) \
+- make_special_mode (MODE_##C, #N, __FILE__, __LINE__)
++ make_special_mode (MODE_##C, #N, __FILE__, 0)
+ #define RANDOM_MODE(N) _SPECIAL_MODE (RANDOM, N)
+ #define CC_MODE(N) _SPECIAL_MODE (CC, N)
+
+@@ -576,7 +576,7 @@ make_special_mode (enum mode_class cl, const char *name,
+
+ #define INT_MODE(N, Y) FRACTIONAL_INT_MODE (N, -1U, Y)
+ #define FRACTIONAL_INT_MODE(N, B, Y) \
+- make_int_mode (#N, B, Y, __FILE__, __LINE__)
++ make_int_mode (#N, B, Y, __FILE__, 0)
+
+ static void
+ make_int_mode (const char *name,
+@@ -589,16 +589,16 @@ make_int_mode (const char *name,
+ }
+
+ #define FRACT_MODE(N, Y, F) \
+- make_fixed_point_mode (MODE_FRACT, #N, Y, 0, F, __FILE__, __LINE__)
++ make_fixed_point_mode (MODE_FRACT, #N, Y, 0, F, __FILE__, 0)
+
+ #define UFRACT_MODE(N, Y, F) \
+- make_fixed_point_mode (MODE_UFRACT, #N, Y, 0, F, __FILE__, __LINE__)
++ make_fixed_point_mode (MODE_UFRACT, #N, Y, 0, F, __FILE__, 0)
+
+ #define ACCUM_MODE(N, Y, I, F) \
+- make_fixed_point_mode (MODE_ACCUM, #N, Y, I, F, __FILE__, __LINE__)
++ make_fixed_point_mode (MODE_ACCUM, #N, Y, I, F, __FILE__, 0)
+
+ #define UACCUM_MODE(N, Y, I, F) \
+- make_fixed_point_mode (MODE_UACCUM, #N, Y, I, F, __FILE__, __LINE__)
++ make_fixed_point_mode (MODE_UACCUM, #N, Y, I, F, __FILE__, 0)
+
+ /* Create a fixed-point mode by setting CL, NAME, BYTESIZE, IBIT, FBIT,
+ FILE, and LINE. */
+@@ -619,7 +619,7 @@ make_fixed_point_mode (enum mode_class cl,
+
+ #define FLOAT_MODE(N, Y, F) FRACTIONAL_FLOAT_MODE (N, -1U, Y, F)
+ #define FRACTIONAL_FLOAT_MODE(N, B, Y, F) \
+- make_float_mode (#N, B, Y, #F, __FILE__, __LINE__)
++ make_float_mode (#N, B, Y, #F, __FILE__, 0)
+
+ static void
+ make_float_mode (const char *name,
+@@ -636,7 +636,7 @@ make_float_mode (const char *name,
+ #define DECIMAL_FLOAT_MODE(N, Y, F) \
+ FRACTIONAL_DECIMAL_FLOAT_MODE (N, -1U, Y, F)
+ #define FRACTIONAL_DECIMAL_FLOAT_MODE(N, B, Y, F) \
+- make_decimal_float_mode (#N, B, Y, #F, __FILE__, __LINE__)
++ make_decimal_float_mode (#N, B, Y, #F, __FILE__, 0)
+
+ static void
+ make_decimal_float_mode (const char *name,
+@@ -651,7 +651,7 @@ make_decimal_float_mode (const char *name,
+ }
+
+ #define RESET_FLOAT_FORMAT(N, F) \
+- reset_float_format (#N, #F, __FILE__, __LINE__)
++ reset_float_format (#N, #F, __FILE__, 0)
+ static void ATTRIBUTE_UNUSED
+ reset_float_format (const char *name, const char *format,
+ const char *file, unsigned int line)
+@@ -672,7 +672,7 @@ reset_float_format (const char *name, const char *format,
+
+ /* __intN support. */
+ #define INT_N(M,PREC) \
+- make_int_n (#M, PREC, __FILE__, __LINE__)
++ make_int_n (#M, PREC, __FILE__, 0)
+ static void ATTRIBUTE_UNUSED
+ make_int_n (const char *m, int bitsize,
+ const char *file, unsigned int line)
+@@ -701,7 +701,7 @@ make_int_n (const char *m, int bitsize,
+ /* Partial integer modes are specified by relation to a full integer
+ mode. */
+ #define PARTIAL_INT_MODE(M,PREC,NAME) \
+- make_partial_integer_mode (#M, #NAME, PREC, __FILE__, __LINE__)
++ make_partial_integer_mode (#M, #NAME, PREC, __FILE__, 0)
+ static void ATTRIBUTE_UNUSED
+ make_partial_integer_mode (const char *base, const char *name,
+ unsigned int precision,
+@@ -728,7 +728,7 @@ make_partial_integer_mode (const char *base, const char *name,
+ /* A single vector mode can be specified by naming its component
+ mode and the number of components. */
+ #define VECTOR_MODE(C, M, N) \
+- make_vector_mode (MODE_##C, #M, N, __FILE__, __LINE__);
++ make_vector_mode (MODE_##C, #M, N, __FILE__, 0);
+ static void ATTRIBUTE_UNUSED
+ make_vector_mode (enum mode_class bclass,
+ const char *base,
+@@ -771,7 +771,7 @@ make_vector_mode (enum mode_class bclass,
+
+ /* Adjustability. */
+ #define _ADD_ADJUST(A, M, X, C1, C2) \
+- new_adjust (#M, &adj_##A, #A, #X, MODE_##C1, MODE_##C2, __FILE__, __LINE__)
++ new_adjust (#M, &adj_##A, #A, #X, MODE_##C1, MODE_##C2, __FILE__, 0)
+
+ #define ADJUST_NUNITS(M, X) _ADD_ADJUST (nunits, M, X, RANDOM, RANDOM)
+ #define ADJUST_BYTESIZE(M, X) _ADD_ADJUST (bytesize, M, X, RANDOM, RANDOM)
diff --git a/meta/recipes-devtools/gcc/gcc/0036-mingw32-Enable-operation_not_supported.patch b/meta/recipes-devtools/gcc/gcc/0036-mingw32-Enable-operation_not_supported.patch
new file mode 100644
index 0000000000..de82a3a539
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc/0036-mingw32-Enable-operation_not_supported.patch
@@ -0,0 +1,26 @@
+From 6f87a095f0e696bec07a50df789c9db8bdbca43d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 12 May 2020 10:39:09 -0700
+Subject: [PATCH] mingw32: Enable operation_not_supported
+
+Fixes nativesdk build errors on mingw32 gcc-runtime
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libstdc++-v3/config/os/mingw32/error_constants.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libstdc++-v3/config/os/mingw32/error_constants.h b/libstdc++-v3/config/os/mingw32/error_constants.h
+index 68ac72a78fb..71cd5815b81 100644
+--- a/libstdc++-v3/config/os/mingw32/error_constants.h
++++ b/libstdc++-v3/config/os/mingw32/error_constants.h
+@@ -107,7 +107,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ #ifdef _GLIBCXX_HAVE_EPERM
+ operation_not_permitted = EPERM,
+ #endif
+-// operation_not_supported = EOPNOTSUPP,
++ operation_not_supported = EOPNOTSUPP,
+ #ifdef _GLIBCXX_HAVE_EWOULDBLOCK
+ operation_would_block = EWOULDBLOCK,
+ #endif
diff --git a/meta/recipes-devtools/gcc/gcc/0037-libatomic-Do-not-enforce-march-on-aarch64.patch b/meta/recipes-devtools/gcc/gcc/0037-libatomic-Do-not-enforce-march-on-aarch64.patch
new file mode 100644
index 0000000000..3946acea11
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc/0037-libatomic-Do-not-enforce-march-on-aarch64.patch
@@ -0,0 +1,42 @@
+From 38d262bfe7c0c894c364dc6e4dc7971e78a73974 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 13 May 2020 15:10:38 -0700
+Subject: [PATCH] libatomic: Do not enforce march on aarch64
+
+OE passes the right options via gcc compiler cmdline via TUNE_CCARGS
+this can conflict between -mcpu settings and -march setting here, since
+-mcpu will translate into an appropriate -march, lets depend on that
+instead of setting it explicitly
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libatomic/Makefile.am | 1 -
+ libatomic/Makefile.in | 1 -
+ 2 files changed, 2 deletions(-)
+
+diff --git a/libatomic/Makefile.am b/libatomic/Makefile.am
+index 133fbbca77e..ac1ca645876 100644
+--- a/libatomic/Makefile.am
++++ b/libatomic/Makefile.am
+@@ -125,7 +125,6 @@ libatomic_la_LIBADD = $(foreach s,$(SIZES),$(addsuffix _$(s)_.lo,$(SIZEOBJS)))
+ ## On a target-specific basis, include alternates to be selected by IFUNC.
+ if HAVE_IFUNC
+ if ARCH_AARCH64_LINUX
+-IFUNC_OPTIONS = -march=armv8-a+lse
+ libatomic_la_LIBADD += $(foreach s,$(SIZES),$(addsuffix _$(s)_1_.lo,$(SIZEOBJS)))
+ endif
+ if ARCH_ARM_LINUX
+diff --git a/libatomic/Makefile.in b/libatomic/Makefile.in
+index a51807e95c9..97df2d7ff03 100644
+--- a/libatomic/Makefile.in
++++ b/libatomic/Makefile.in
+@@ -431,7 +431,6 @@ M_SRC = $(firstword $(filter %/$(M_FILE), $(all_c_files)))
+ libatomic_la_LIBADD = $(foreach s,$(SIZES),$(addsuffix \
+ _$(s)_.lo,$(SIZEOBJS))) $(am__append_1) $(am__append_2) \
+ $(am__append_3) $(am__append_4)
+-@ARCH_AARCH64_LINUX_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=armv8-a+lse
+ @ARCH_ARM_LINUX_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=armv7-a+fp -DHAVE_KERNEL64
+ @ARCH_I386_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=i586
+ @ARCH_X86_64_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -mcx16
diff --git a/meta/recipes-devtools/gcc/gcc_9.2.bb b/meta/recipes-devtools/gcc/gcc_10.2.bb
index 7d93590588..7d93590588 100644
--- a/meta/recipes-devtools/gcc/gcc_9.2.bb
+++ b/meta/recipes-devtools/gcc/gcc_10.2.bb
diff --git a/meta/recipes-devtools/gcc/libgcc-initial_9.2.bb b/meta/recipes-devtools/gcc/libgcc-initial_10.2.bb
index 0c698c26ec..0c698c26ec 100644
--- a/meta/recipes-devtools/gcc/libgcc-initial_9.2.bb
+++ b/meta/recipes-devtools/gcc/libgcc-initial_10.2.bb
diff --git a/meta/recipes-devtools/gcc/libgcc_9.2.bb b/meta/recipes-devtools/gcc/libgcc_10.2.bb
index ea210a1130..ea210a1130 100644
--- a/meta/recipes-devtools/gcc/libgcc_9.2.bb
+++ b/meta/recipes-devtools/gcc/libgcc_10.2.bb
diff --git a/meta/recipes-devtools/gcc/libgfortran_9.2.bb b/meta/recipes-devtools/gcc/libgfortran_10.2.bb
index 71dd8b4bdc..71dd8b4bdc 100644
--- a/meta/recipes-devtools/gcc/libgfortran_9.2.bb
+++ b/meta/recipes-devtools/gcc/libgfortran_10.2.bb
diff --git a/meta/recipes-devtools/gdb/gdb-9.1.inc b/meta/recipes-devtools/gdb/gdb-9.2.inc
index d019e6b384..017b61ef62 100644
--- a/meta/recipes-devtools/gdb/gdb-9.1.inc
+++ b/meta/recipes-devtools/gdb/gdb-9.2.inc
@@ -17,5 +17,5 @@ SRC_URI = "${GNU_MIRROR}/gdb/gdb-${PV}.tar.xz \
file://0010-Fix-invalid-sigprocmask-call.patch \
file://0011-gdbserver-ctrl-c-handling.patch \
"
-SRC_URI[md5sum] = "f7e9f6236c425097d9e5f18a6ac40655"
-SRC_URI[sha256sum] = "699e0ec832fdd2f21c8266171ea5bf44024bd05164fdf064e4d10cc4cf0d1737"
+SRC_URI[md5sum] = "db95524e554870209ab7d9f8fd8dc557"
+SRC_URI[sha256sum] = "360cd7ae79b776988e89d8f9a01c985d0b1fa21c767a4295e5f88cb49175c555"
diff --git a/meta/recipes-devtools/gdb/gdb-cross-canadian_9.1.bb b/meta/recipes-devtools/gdb/gdb-cross-canadian_9.2.bb
index 301035940c..301035940c 100644
--- a/meta/recipes-devtools/gdb/gdb-cross-canadian_9.1.bb
+++ b/meta/recipes-devtools/gdb/gdb-cross-canadian_9.2.bb
diff --git a/meta/recipes-devtools/gdb/gdb-cross_9.1.bb b/meta/recipes-devtools/gdb/gdb-cross_9.2.bb
index 50cf159fdb..50cf159fdb 100644
--- a/meta/recipes-devtools/gdb/gdb-cross_9.1.bb
+++ b/meta/recipes-devtools/gdb/gdb-cross_9.2.bb
diff --git a/meta/recipes-devtools/gdb/gdb_9.1.bb b/meta/recipes-devtools/gdb/gdb_9.2.bb
index d70757a151..d70757a151 100644
--- a/meta/recipes-devtools/gdb/gdb_9.1.bb
+++ b/meta/recipes-devtools/gdb/gdb_9.2.bb
diff --git a/meta/recipes-devtools/git/git.inc b/meta/recipes-devtools/git/git.inc
index 95ab397f6a..544e23c844 100644
--- a/meta/recipes-devtools/git/git.inc
+++ b/meta/recipes-devtools/git/git.inc
@@ -21,7 +21,9 @@ PACKAGECONFIG[svn] = ""
EXTRA_OECONF = "--with-perl=${STAGING_BINDIR_NATIVE}/perl-native/perl \
--without-tcltk \
+ --without-iconv \
"
+EXTRA_OECONF_append_class-nativesdk = " --with-gitconfig=/etc/gitconfig "
# Needs brokensep as this doesn't use automake
inherit autotools-brokensep perlnative bash-completion
diff --git a/meta/recipes-devtools/git/git_2.24.1.bb b/meta/recipes-devtools/git/git_2.24.1.bb
deleted file mode 100644
index daea31eab2..0000000000
--- a/meta/recipes-devtools/git/git_2.24.1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require git.inc
-
-EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no \
- ac_cv_fread_reads_directories=${ac_cv_fread_reads_directories=yes} \
- "
-EXTRA_OEMAKE += "NO_GETTEXT=1"
-
-SRC_URI[tarball.md5sum] = "166bde96adbbc11c8843d4f8f4f9811b"
-SRC_URI[tarball.sha256sum] = "ad5334956301c86841eb1e5b1bb20884a6bad89a10a6762c958220c7cf64da02"
-SRC_URI[manpages.md5sum] = "31c2272a8979022497ba3d4202df145d"
-SRC_URI[manpages.sha256sum] = "9a7ae3a093bea39770eb96ca3e5b40bff7af0b9f6123f089d7821d0e5b8e1230"
diff --git a/meta/recipes-devtools/git/git_2.28.0.bb b/meta/recipes-devtools/git/git_2.28.0.bb
new file mode 100644
index 0000000000..e90787d060
--- /dev/null
+++ b/meta/recipes-devtools/git/git_2.28.0.bb
@@ -0,0 +1,9 @@
+require git.inc
+
+EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no \
+ ac_cv_fread_reads_directories=${ac_cv_fread_reads_directories=yes} \
+ "
+EXTRA_OEMAKE += "NO_GETTEXT=1"
+
+SRC_URI[tarball.sha256sum] = "f914c60a874d466c1e18467c864a910dd4ea22281ba6d4d58077cb0c3f115170"
+SRC_URI[manpages.sha256sum] = "3cfca28a88d5b8112ea42322b797a500a14d0acddea391aed0462aff1ab11bf7"
diff --git a/meta/recipes-devtools/glide/glide_0.13.3.bb b/meta/recipes-devtools/glide/glide_0.13.3.bb
index ebad0ec60a..31295edf90 100644
--- a/meta/recipes-devtools/glide/glide_0.13.3.bb
+++ b/meta/recipes-devtools/glide/glide_0.13.3.bb
@@ -9,6 +9,10 @@ SRCREV = "8ed5b9292379d86c39592a7e6a58eb9c903877cf"
inherit go
+# New Go versions has Go modules support enabled by default and cause the Glide
+# tool build to fail.
+export GO111MODULE = "off"
+
RDEPENDS_${PN}-dev += "bash"
RDEPENDS_${PN}-ptest += "bash"
diff --git a/meta/recipes-devtools/gnu-config/gnu-config_git.bb b/meta/recipes-devtools/gnu-config/gnu-config_git.bb
index 48b7e6d4a6..ae03a99a61 100644
--- a/meta/recipes-devtools/gnu-config/gnu-config_git.bb
+++ b/meta/recipes-devtools/gnu-config/gnu-config_git.bb
@@ -8,8 +8,8 @@ DEPENDS_class-native = "hostperl-runtime-native"
INHIBIT_DEFAULT_DEPS = "1"
-SRCREV = "5256817ace8493502ec88501a19e4051c2e220b0"
-PV = "20200117+git${SRCPV}"
+SRCREV = "0b5188819ba6091770064adf26360b204113317e"
+PV = "20200831+git${SRCPV}"
SRC_URI = "git://git.savannah.gnu.org/config.git \
file://gnu-configize.in"
diff --git a/meta/recipes-devtools/go/go-1.13/0009-ld-replace-glibc-dynamic-linker-with-musl.patch b/meta/recipes-devtools/go/go-1.13/0009-ld-replace-glibc-dynamic-linker-with-musl.patch
deleted file mode 100644
index 4bb1106f09..0000000000
--- a/meta/recipes-devtools/go/go-1.13/0009-ld-replace-glibc-dynamic-linker-with-musl.patch
+++ /dev/null
@@ -1,134 +0,0 @@
-From 973251ae0c69a35721f6115345d3f57b2847979f Mon Sep 17 00:00:00 2001
-From: Alex Kube <alexander.j.kube@gmail.com>
-Date: Wed, 23 Oct 2019 21:20:13 +0430
-Subject: [PATCH 9/9] ld: replace glibc dynamic linker with musl
-
-Rework of patch by Khem Raj <raj.khem@gmail.com>
-for go 1.10. Should be applied conditionally on
-musl being the system C library.
-
-Adapted to Go 1.13 from patches originally submitted to
-the meta/recipes-devtools/go tree by
-Matt Madison <matt@madison.systems>.
-
-Upstream-Status: Inappropriate [Real fix should be portable across libcs]
-
-Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
----
- src/cmd/link/internal/amd64/obj.go | 2 +-
- src/cmd/link/internal/arm/obj.go | 2 +-
- src/cmd/link/internal/arm64/obj.go | 2 +-
- src/cmd/link/internal/mips/obj.go | 2 +-
- src/cmd/link/internal/mips64/obj.go | 2 +-
- src/cmd/link/internal/ppc64/obj.go | 2 +-
- src/cmd/link/internal/s390x/obj.go | 2 +-
- src/cmd/link/internal/x86/obj.go | 2 +-
- 8 files changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/src/cmd/link/internal/amd64/obj.go b/src/cmd/link/internal/amd64/obj.go
-index 23741eb..8e74576 100644
---- a/src/cmd/link/internal/amd64/obj.go
-+++ b/src/cmd/link/internal/amd64/obj.go
-@@ -62,7 +62,7 @@ func Init() (*sys.Arch, ld.Arch) {
- PEreloc1: pereloc1,
- TLSIEtoLE: tlsIEtoLE,
-
-- Linuxdynld: "/lib64/ld-linux-x86-64.so.2",
-+ Linuxdynld: "/lib64/ld-musl-x86-64.so.1",
- Freebsddynld: "/libexec/ld-elf.so.1",
- Openbsddynld: "/usr/libexec/ld.so",
- Netbsddynld: "/libexec/ld.elf_so",
-diff --git a/src/cmd/link/internal/arm/obj.go b/src/cmd/link/internal/arm/obj.go
-index 45a406e..724d3e3 100644
---- a/src/cmd/link/internal/arm/obj.go
-+++ b/src/cmd/link/internal/arm/obj.go
-@@ -59,7 +59,7 @@ func Init() (*sys.Arch, ld.Arch) {
- Machoreloc1: machoreloc1,
- PEreloc1: pereloc1,
-
-- Linuxdynld: "/lib/ld-linux.so.3", // 2 for OABI, 3 for EABI
-+ Linuxdynld: "/lib/ld-musl-armhf.so.1",
- Freebsddynld: "/usr/libexec/ld-elf.so.1",
- Openbsddynld: "/usr/libexec/ld.so",
- Netbsddynld: "/libexec/ld.elf_so",
-diff --git a/src/cmd/link/internal/arm64/obj.go b/src/cmd/link/internal/arm64/obj.go
-index 7c66623..d8b1db1 100644
---- a/src/cmd/link/internal/arm64/obj.go
-+++ b/src/cmd/link/internal/arm64/obj.go
-@@ -57,7 +57,7 @@ func Init() (*sys.Arch, ld.Arch) {
- Gentext: gentext,
- Machoreloc1: machoreloc1,
-
-- Linuxdynld: "/lib/ld-linux-aarch64.so.1",
-+ Linuxdynld: "/lib/ld-musl-aarch64.so.1",
-
- Freebsddynld: "XXX",
- Openbsddynld: "/usr/libexec/ld.so",
-diff --git a/src/cmd/link/internal/mips/obj.go b/src/cmd/link/internal/mips/obj.go
-index 231e1ff..631dd7a 100644
---- a/src/cmd/link/internal/mips/obj.go
-+++ b/src/cmd/link/internal/mips/obj.go
-@@ -60,7 +60,7 @@ func Init() (*sys.Arch, ld.Arch) {
- Gentext: gentext,
- Machoreloc1: machoreloc1,
-
-- Linuxdynld: "/lib/ld.so.1",
-+ Linuxdynld: "/lib/ld-musl-mipsle.so.1",
-
- Freebsddynld: "XXX",
- Openbsddynld: "XXX",
-diff --git a/src/cmd/link/internal/mips64/obj.go b/src/cmd/link/internal/mips64/obj.go
-index 9604208..5ef3ffc 100644
---- a/src/cmd/link/internal/mips64/obj.go
-+++ b/src/cmd/link/internal/mips64/obj.go
-@@ -59,7 +59,7 @@ func Init() (*sys.Arch, ld.Arch) {
- Gentext: gentext,
- Machoreloc1: machoreloc1,
-
-- Linuxdynld: "/lib64/ld64.so.1",
-+ Linuxdynld: "/lib64/ld-musl-mips64le.so.1",
- Freebsddynld: "XXX",
- Openbsddynld: "XXX",
- Netbsddynld: "XXX",
-diff --git a/src/cmd/link/internal/ppc64/obj.go b/src/cmd/link/internal/ppc64/obj.go
-index 51d1791..b15da85 100644
---- a/src/cmd/link/internal/ppc64/obj.go
-+++ b/src/cmd/link/internal/ppc64/obj.go
-@@ -63,7 +63,7 @@ func Init() (*sys.Arch, ld.Arch) {
- Xcoffreloc1: xcoffreloc1,
-
- // TODO(austin): ABI v1 uses /usr/lib/ld.so.1,
-- Linuxdynld: "/lib64/ld64.so.1",
-+ Linuxdynld: "/lib64/ld-musl-powerpc64le.so.1",
-
- Freebsddynld: "XXX",
- Openbsddynld: "XXX",
-diff --git a/src/cmd/link/internal/s390x/obj.go b/src/cmd/link/internal/s390x/obj.go
-index 3454476..42cc346 100644
---- a/src/cmd/link/internal/s390x/obj.go
-+++ b/src/cmd/link/internal/s390x/obj.go
-@@ -57,7 +57,7 @@ func Init() (*sys.Arch, ld.Arch) {
- Gentext: gentext,
- Machoreloc1: machoreloc1,
-
-- Linuxdynld: "/lib64/ld64.so.1",
-+ Linuxdynld: "/lib64/ld-musl-s390x.so.1",
-
- // not relevant for s390x
- Freebsddynld: "XXX",
-diff --git a/src/cmd/link/internal/x86/obj.go b/src/cmd/link/internal/x86/obj.go
-index f1fad20..d2ca10c 100644
---- a/src/cmd/link/internal/x86/obj.go
-+++ b/src/cmd/link/internal/x86/obj.go
-@@ -58,7 +58,7 @@ func Init() (*sys.Arch, ld.Arch) {
- Machoreloc1: machoreloc1,
- PEreloc1: pereloc1,
-
-- Linuxdynld: "/lib/ld-linux.so.2",
-+ Linuxdynld: "/lib/ld-musl-i386.so.1",
- Freebsddynld: "/usr/libexec/ld-elf.so.1",
- Openbsddynld: "/usr/libexec/ld.so",
- Netbsddynld: "/usr/libexec/ld.elf_so",
---
-2.17.1 (Apple Git-112)
-
diff --git a/meta/recipes-devtools/go/go-1.13.inc b/meta/recipes-devtools/go/go-1.15.inc
index 7780aced89..97d748b922 100644
--- a/meta/recipes-devtools/go/go-1.13.inc
+++ b/meta/recipes-devtools/go/go-1.15.inc
@@ -1,7 +1,7 @@
require go-common.inc
-GO_BASEVERSION = "1.13"
-GO_MINOR = ".8"
+GO_BASEVERSION = "1.15"
+GO_MINOR = ".2"
PV .= "${GO_MINOR}"
FILESEXTRAPATHS_prepend := "${FILE_DIRNAME}/go-${GO_BASEVERSION}:"
@@ -17,7 +17,4 @@ SRC_URI += "\
file://0007-cmd-go-make-GOROOT-precious-by-default.patch \
file://0008-use-GOBUILDMODE-to-set-buildmode.patch \
"
-SRC_URI_append_libc-musl = " file://0009-ld-replace-glibc-dynamic-linker-with-musl.patch"
-
-SRC_URI[main.md5sum] = "984c244563f2d2f48103e8d6db8a8308"
-SRC_URI[main.sha256sum] = "b13bf04633d4d8cf53226ebeaace8d4d2fd07ae6fa676d0844a688339debec34"
+SRC_URI[main.sha256sum] = "28bf9d0bcde251011caae230a4a05d917b172ea203f2a62f2c2f9533589d4b4d"
diff --git a/meta/recipes-devtools/go/go-1.13/0001-allow-CC-and-CXX-to-have-multiple-words.patch b/meta/recipes-devtools/go/go-1.15/0001-allow-CC-and-CXX-to-have-multiple-words.patch
index ddfd5e41d1..5f4823be22 100644
--- a/meta/recipes-devtools/go/go-1.13/0001-allow-CC-and-CXX-to-have-multiple-words.patch
+++ b/meta/recipes-devtools/go/go-1.15/0001-allow-CC-and-CXX-to-have-multiple-words.patch
@@ -15,11 +15,9 @@ Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
src/cmd/go/internal/envcmd/env.go | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
-diff --git a/src/cmd/go/internal/envcmd/env.go b/src/cmd/go/internal/envcmd/env.go
-index 17852de..7b5ec5e 100644
--- a/src/cmd/go/internal/envcmd/env.go
+++ b/src/cmd/go/internal/envcmd/env.go
-@@ -100,11 +100,11 @@ func MkEnv() []cfg.EnvVar {
+@@ -103,11 +103,11 @@ func MkEnv() []cfg.EnvVar {
cc := cfg.DefaultCC(cfg.Goos, cfg.Goarch)
if env := strings.Fields(cfg.Getenv("CC")); len(env) > 0 {
@@ -33,6 +31,3 @@ index 17852de..7b5ec5e 100644
}
env = append(env, cfg.EnvVar{Name: "AR", Value: envOr("AR", "ar")})
env = append(env, cfg.EnvVar{Name: "CC", Value: cc})
---
-2.17.1 (Apple Git-112)
-
diff --git a/meta/recipes-devtools/go/go-1.13/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch b/meta/recipes-devtools/go/go-1.15/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch
index 4eddd39809..d0511c0c40 100644
--- a/meta/recipes-devtools/go/go-1.13/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch
+++ b/meta/recipes-devtools/go/go-1.15/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch
@@ -50,11 +50,9 @@ Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
src/cmd/go/internal/work/exec.go | 66 ++++++++++++++++++++++---------
2 files changed, 49 insertions(+), 19 deletions(-)
-diff --git a/src/cmd/go/internal/envcmd/env.go b/src/cmd/go/internal/envcmd/env.go
-index 7b5ec5e..292f117 100644
--- a/src/cmd/go/internal/envcmd/env.go
+++ b/src/cmd/go/internal/envcmd/env.go
-@@ -154,7 +154,7 @@ func ExtraEnvVars() []cfg.EnvVar {
+@@ -157,7 +157,7 @@ func ExtraEnvVars() []cfg.EnvVar {
func ExtraEnvVarsCostly() []cfg.EnvVar {
var b work.Builder
b.Init()
@@ -63,12 +61,10 @@ index 7b5ec5e..292f117 100644
if err != nil {
// Should not happen - b.CFlags was given an empty package.
fmt.Fprintf(os.Stderr, "go: invalid cflags: %v\n", err)
-diff --git a/src/cmd/go/internal/work/exec.go b/src/cmd/go/internal/work/exec.go
-index 7dd9a90..ccebaf8 100644
--- a/src/cmd/go/internal/work/exec.go
+++ b/src/cmd/go/internal/work/exec.go
-@@ -32,6 +32,8 @@ import (
- "time"
+@@ -33,6 +33,8 @@ import (
+ "cmd/go/internal/str"
)
+var omitGopath = os.Getenv("GOPATH_OMIT_IN_ACTIONID") != ""
@@ -76,16 +72,16 @@ index 7dd9a90..ccebaf8 100644
// actionList returns the list of actions in the dag rooted at root
// as visited in a depth-first post-order traversal.
func actionList(root *Action) []*Action {
-@@ -205,7 +207,7 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
- // The compiler hides the exact value of $GOROOT
- // when building things in GOROOT.
+@@ -209,7 +211,7 @@ func (b *Builder) buildActionID(a *Actio
// Assume b.WorkDir is being trimmed properly.
+ // When -trimpath is used with a package built from the module cache,
+ // use the module path and version instead of the directory.
- if !p.Goroot && !cfg.BuildTrimpath && !strings.HasPrefix(p.Dir, b.WorkDir) {
+ if !p.Goroot && !omitGopath && !cfg.BuildTrimpath && !strings.HasPrefix(p.Dir, b.WorkDir) {
fmt.Fprintf(h, "dir %s\n", p.Dir)
- }
- fmt.Fprintf(h, "goos %s goarch %s\n", cfg.Goos, cfg.Goarch)
-@@ -219,13 +221,13 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
+ } else if cfg.BuildTrimpath && p.Module != nil {
+ fmt.Fprintf(h, "module %s@%s\n", p.Module.Path, p.Module.Version)
+@@ -228,13 +230,13 @@ func (b *Builder) buildActionID(a *Actio
}
if len(p.CgoFiles)+len(p.SwigFiles) > 0 {
fmt.Fprintf(h, "cgo %q\n", b.toolID("cgo"))
@@ -103,7 +99,7 @@ index 7dd9a90..ccebaf8 100644
}
// TODO(rsc): Should we include the SWIG version or Fortran/GCC/G++/Objective-C compiler versions?
}
-@@ -2229,33 +2231,48 @@ var (
+@@ -2298,33 +2300,48 @@ var (
// gccCmd returns a gcc command line prefix
// defaultCC is defined in zdefaultcc.go, written by cmd/dist.
func (b *Builder) GccCmd(incdir, workdir string) []string {
@@ -161,7 +157,7 @@ index 7dd9a90..ccebaf8 100644
}
// compilerExe returns the compiler to use given an
-@@ -2264,11 +2281,16 @@ func (b *Builder) fcExe() []string {
+@@ -2333,11 +2350,16 @@ func (b *Builder) fcExe() []string {
// of the compiler but can have additional arguments if they
// were present in the environment value.
// For example if CC="gcc -DGOPHER" then the result is ["gcc", "-DGOPHER"].
@@ -179,7 +175,7 @@ index 7dd9a90..ccebaf8 100644
return compiler
}
-@@ -2429,7 +2451,7 @@ func envList(key, def string) []string {
+@@ -2510,7 +2532,7 @@ func envList(key, def string) []string {
}
// CFlags returns the flags to use when invoking the C, C++ or Fortran compilers, or cgo.
@@ -188,7 +184,7 @@ index 7dd9a90..ccebaf8 100644
defaults := "-g -O2"
if cppflags, err = buildFlags("CPPFLAGS", "", p.CgoCPPFLAGS, checkCompilerFlags); err != nil {
-@@ -2448,6 +2470,14 @@ func (b *Builder) CFlags(p *load.Package) (cppflags, cflags, cxxflags, fflags, l
+@@ -2529,6 +2551,14 @@ func (b *Builder) CFlags(p *load.Package
return
}
@@ -203,7 +199,7 @@ index 7dd9a90..ccebaf8 100644
return
}
-@@ -2462,7 +2492,7 @@ var cgoRe = lazyregexp.New(`[/\\:]`)
+@@ -2543,7 +2573,7 @@ var cgoRe = lazyregexp.New(`[/\\:]`)
func (b *Builder) cgo(a *Action, cgoExe, objdir string, pcCFLAGS, pcLDFLAGS, cgofiles, gccfiles, gxxfiles, mfiles, ffiles []string) (outGo, outObj []string, err error) {
p := a.Package
@@ -212,7 +208,7 @@ index 7dd9a90..ccebaf8 100644
if err != nil {
return nil, nil, err
}
-@@ -2821,7 +2851,7 @@ func (b *Builder) swigIntSize(objdir string) (intsize string, err error) {
+@@ -2902,7 +2932,7 @@ func (b *Builder) swigIntSize(objdir str
// Run SWIG on one SWIG input file.
func (b *Builder) swigOne(a *Action, p *load.Package, file, objdir string, pcCFLAGS []string, cxx bool, intgosize string) (outGo, outC string, err error) {
@@ -221,6 +217,3 @@ index 7dd9a90..ccebaf8 100644
if err != nil {
return "", "", err
}
---
-2.17.1 (Apple Git-112)
-
diff --git a/meta/recipes-devtools/go/go-1.13/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch b/meta/recipes-devtools/go/go-1.15/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch
index 9aa0119ae9..662c705471 100644
--- a/meta/recipes-devtools/go/go-1.13/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch
+++ b/meta/recipes-devtools/go/go-1.15/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch
@@ -17,11 +17,9 @@ Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
src/cmd/go/internal/cfg/cfg.go | 6 +++++-
2 files changed, 8 insertions(+), 2 deletions(-)
-diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go
-index 9e50311..683ca6f 100644
--- a/src/cmd/dist/build.go
+++ b/src/cmd/dist/build.go
-@@ -244,7 +244,9 @@ func xinit() {
+@@ -246,7 +246,9 @@ func xinit() {
workdir = xworkdir()
xatexit(rmworkdir)
@@ -32,11 +30,9 @@ index 9e50311..683ca6f 100644
}
// compilerEnv returns a map from "goos/goarch" to the
-diff --git a/src/cmd/go/internal/cfg/cfg.go b/src/cmd/go/internal/cfg/cfg.go
-index a3277a6..db96350 100644
--- a/src/cmd/go/internal/cfg/cfg.go
+++ b/src/cmd/go/internal/cfg/cfg.go
-@@ -60,7 +60,11 @@ func defaultContext() build.Context {
+@@ -64,7 +64,11 @@ func defaultContext() build.Context {
// variables. This matches the initialization of ToolDir in
// go/build, except for using ctxt.GOROOT rather than
// runtime.GOROOT.
@@ -49,6 +45,3 @@ index a3277a6..db96350 100644
}
ctxt.GOPATH = envOr("GOPATH", ctxt.GOPATH)
---
-2.17.1 (Apple Git-112)
-
diff --git a/meta/recipes-devtools/go/go-1.13/0004-ld-add-soname-to-shareable-objects.patch b/meta/recipes-devtools/go/go-1.15/0004-ld-add-soname-to-shareable-objects.patch
index 40763ad5b1..da29923920 100644
--- a/meta/recipes-devtools/go/go-1.13/0004-ld-add-soname-to-shareable-objects.patch
+++ b/meta/recipes-devtools/go/go-1.15/0004-ld-add-soname-to-shareable-objects.patch
@@ -17,11 +17,9 @@ Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
src/cmd/link/internal/ld/lib.go | 3 +++
1 file changed, 3 insertions(+)
-diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go
-index 3fa258d..f96fb02 100644
--- a/src/cmd/link/internal/ld/lib.go
+++ b/src/cmd/link/internal/ld/lib.go
-@@ -1215,6 +1215,7 @@ func (ctxt *Link) hostlink() {
+@@ -1446,6 +1446,7 @@ func (ctxt *Link) hostlink() {
argv = append(argv, "-Wl,-z,relro")
}
argv = append(argv, "-shared")
@@ -29,7 +27,7 @@ index 3fa258d..f96fb02 100644
if ctxt.HeadType != objabi.Hwindows {
// Pass -z nodelete to mark the shared library as
// non-closeable: a dlclose will do nothing.
-@@ -1226,6 +1227,7 @@ func (ctxt *Link) hostlink() {
+@@ -1457,6 +1458,7 @@ func (ctxt *Link) hostlink() {
argv = append(argv, "-Wl,-z,relro")
}
argv = append(argv, "-shared")
@@ -37,7 +35,7 @@ index 3fa258d..f96fb02 100644
case BuildModePlugin:
if ctxt.HeadType == objabi.Hdarwin {
argv = append(argv, "-dynamiclib")
-@@ -1234,6 +1236,7 @@ func (ctxt *Link) hostlink() {
+@@ -1465,6 +1467,7 @@ func (ctxt *Link) hostlink() {
argv = append(argv, "-Wl,-z,relro")
}
argv = append(argv, "-shared")
@@ -45,6 +43,3 @@ index 3fa258d..f96fb02 100644
}
}
---
-2.17.1 (Apple Git-112)
-
diff --git a/meta/recipes-devtools/go/go-1.13/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch b/meta/recipes-devtools/go/go-1.15/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch
index 4f2a46c6ce..59c12d9546 100644
--- a/meta/recipes-devtools/go/go-1.13/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch
+++ b/meta/recipes-devtools/go/go-1.15/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch
@@ -17,11 +17,9 @@ Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
src/make.bash | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
-diff --git a/src/make.bash b/src/make.bash
-index 92d1481..0c2822f 100755
--- a/src/make.bash
+++ b/src/make.bash
-@@ -177,7 +177,7 @@ if [ "$GOROOT_BOOTSTRAP" = "$GOROOT" ]; then
+@@ -178,7 +178,7 @@ if [ "$GOROOT_BOOTSTRAP" = "$GOROOT" ];
exit 1
fi
rm -f cmd/dist/dist
@@ -30,7 +28,7 @@ index 92d1481..0c2822f 100755
# -e doesn't propagate out of eval, so check success by hand.
eval $(./cmd/dist/dist env -p || echo FAIL=true)
-@@ -208,7 +208,7 @@ fi
+@@ -209,7 +209,7 @@ fi
# Run dist bootstrap to complete make.bash.
# Bootstrap installs a proper cmd/dist, built with the new toolchain.
# Throw ours, built with Go 1.4, away after bootstrap.
@@ -39,6 +37,3 @@ index 92d1481..0c2822f 100755
rm -f ./cmd/dist/dist
# DO NOT ADD ANY NEW CODE HERE.
---
-2.17.1 (Apple Git-112)
-
diff --git a/meta/recipes-devtools/go/go-1.13/0006-cmd-dist-separate-host-and-target-builds.patch b/meta/recipes-devtools/go/go-1.15/0006-cmd-dist-separate-host-and-target-builds.patch
index 354aaca3a1..7aee0bac43 100644
--- a/meta/recipes-devtools/go/go-1.13/0006-cmd-dist-separate-host-and-target-builds.patch
+++ b/meta/recipes-devtools/go/go-1.15/0006-cmd-dist-separate-host-and-target-builds.patch
@@ -38,8 +38,6 @@ Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
src/cmd/dist/build.go | 155 ++++++++++++++++++++++++++++++------------
1 file changed, 112 insertions(+), 43 deletions(-)
-diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go
-index 683ca6f..0ad082b 100644
--- a/src/cmd/dist/build.go
+++ b/src/cmd/dist/build.go
@@ -41,6 +41,7 @@ var (
@@ -58,7 +56,7 @@ index 683ca6f..0ad082b 100644
vflag int // verbosity
)
-@@ -247,6 +249,8 @@ func xinit() {
+@@ -249,6 +251,8 @@ func xinit() {
if tooldir = os.Getenv("GOTOOLDIR"); tooldir == "" {
tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch)
}
@@ -67,7 +65,7 @@ index 683ca6f..0ad082b 100644
}
// compilerEnv returns a map from "goos/goarch" to the
-@@ -478,8 +482,10 @@ func setup() {
+@@ -480,8 +484,10 @@ func setup() {
p := pathf("%s/pkg/%s_%s", goroot, gohostos, gohostarch)
if rebuildall {
xremoveall(p)
@@ -78,7 +76,7 @@ index 683ca6f..0ad082b 100644
if goos != gohostos || goarch != gohostarch {
p := pathf("%s/pkg/%s_%s", goroot, goos, goarch)
-@@ -1207,12 +1213,29 @@ func cmdbootstrap() {
+@@ -1244,12 +1250,29 @@ func cmdbootstrap() {
var noBanner bool
var debug bool
@@ -109,7 +107,7 @@ index 683ca6f..0ad082b 100644
// Set GOPATH to an internal directory. We shouldn't actually
// need to store files here, since the toolchain won't
// depend on modules outside of vendor directories, but if
-@@ -1266,8 +1289,13 @@ func cmdbootstrap() {
+@@ -1303,8 +1326,13 @@ func cmdbootstrap() {
xprintf("\n")
}
@@ -125,7 +123,7 @@ index 683ca6f..0ad082b 100644
goBootstrap := pathf("%s/go_bootstrap", tooldir)
cmdGo := pathf("%s/go", gobin)
if debug {
-@@ -1296,7 +1324,11 @@ func cmdbootstrap() {
+@@ -1333,7 +1361,11 @@ func cmdbootstrap() {
xprintf("\n")
}
xprintf("Building Go toolchain2 using go_bootstrap and Go toolchain1.\n")
@@ -138,7 +136,7 @@ index 683ca6f..0ad082b 100644
goInstall(goBootstrap, append([]string{"-i"}, toolchain...)...)
if debug {
run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full")
-@@ -1333,50 +1365,84 @@ func cmdbootstrap() {
+@@ -1370,50 +1402,84 @@ func cmdbootstrap() {
}
checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...)
@@ -190,8 +188,6 @@ index 683ca6f..0ad082b 100644
- timelog("build", "host toolchain")
- if vflag > 0 {
- xprintf("\n")
-- }
-- xprintf("Building packages and commands for host, %s/%s.\n", goos, goarch)
+
+ if goos == oldgoos && goarch == oldgoarch {
+ // Common case - not setting up for cross-compilation.
@@ -223,7 +219,8 @@ index 683ca6f..0ad082b 100644
+ os.Setenv("GOARCH", goarch)
+ os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
+ xprintf("Building packages and commands for target, %s/%s.\n", goos, goarch)
-+ }
+ }
+- xprintf("Building packages and commands for host, %s/%s.\n", goos, goarch)
goInstall(goBootstrap, "std", "cmd")
checkNotStale(goBootstrap, "std", "cmd")
checkNotStale(cmdGo, "std", "cmd")
@@ -231,12 +228,7 @@ index 683ca6f..0ad082b 100644
- timelog("build", "target toolchain")
- if vflag > 0 {
- xprintf("\n")
-+ if debug {
-+ run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full")
-+ run("", ShowOutput|CheckExit, pathf("%s/buildid", tooldir), pathf("%s/pkg/%s_%s/runtime/internal/sys.a", goroot, goos, goarch))
-+ checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...)
-+ copyfile(pathf("%s/compile4", tooldir), pathf("%s/compile", tooldir), writeExec)
- }
+- }
- goos = oldgoos
- goarch = oldgoarch
- os.Setenv("GOOS", goos)
@@ -257,10 +249,16 @@ index 683ca6f..0ad082b 100644
- run("", ShowOutput|CheckExit, pathf("%s/buildid", tooldir), pathf("%s/pkg/%s_%s/runtime/internal/sys.a", goroot, goos, goarch))
- checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...)
- copyfile(pathf("%s/compile4", tooldir), pathf("%s/compile", tooldir), writeExec)
++ if debug {
++ run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full")
++ run("", ShowOutput|CheckExit, pathf("%s/buildid", tooldir), pathf("%s/pkg/%s_%s/runtime/internal/sys.a", goroot, goos, goarch))
++ checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...)
++ copyfile(pathf("%s/compile4", tooldir), pathf("%s/compile", tooldir), writeExec)
++ }
}
// Check that there are no new files in $GOROOT/bin other than
-@@ -1393,8 +1459,11 @@ func cmdbootstrap() {
+@@ -1430,8 +1496,11 @@ func cmdbootstrap() {
}
}
@@ -274,6 +272,3 @@ index 683ca6f..0ad082b 100644
if goos == "android" {
// Make sure the exec wrapper will sync a fresh $GOROOT to the device.
---
-2.17.1 (Apple Git-112)
-
diff --git a/meta/recipes-devtools/go/go-1.13/0007-cmd-go-make-GOROOT-precious-by-default.patch b/meta/recipes-devtools/go/go-1.15/0007-cmd-go-make-GOROOT-precious-by-default.patch
index e232c79199..4b4d0d4f3d 100644
--- a/meta/recipes-devtools/go/go-1.13/0007-cmd-go-make-GOROOT-precious-by-default.patch
+++ b/meta/recipes-devtools/go/go-1.15/0007-cmd-go-make-GOROOT-precious-by-default.patch
@@ -27,11 +27,9 @@ Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
src/cmd/go/internal/work/exec.go | 25 +++++++++++++++++++++++++
3 files changed, 34 insertions(+)
-diff --git a/src/cmd/go/internal/work/action.go b/src/cmd/go/internal/work/action.go
-index 33b7818..7617b4c 100644
--- a/src/cmd/go/internal/work/action.go
+++ b/src/cmd/go/internal/work/action.go
-@@ -662,6 +662,9 @@ func (b *Builder) addTransitiveLinkDeps(a, a1 *Action, shlib string) {
+@@ -670,6 +670,9 @@ func (b *Builder) addTransitiveLinkDeps(
if p1 == nil || p1.Shlib == "" || haveShlib[filepath.Base(p1.Shlib)] {
continue
}
@@ -41,11 +39,9 @@ index 33b7818..7617b4c 100644
haveShlib[filepath.Base(p1.Shlib)] = true
// TODO(rsc): The use of ModeInstall here is suspect, but if we only do ModeBuild,
// we'll end up building an overall library or executable that depends at runtime
-diff --git a/src/cmd/go/internal/work/build.go b/src/cmd/go/internal/work/build.go
-index 9305b2d..6560317 100644
--- a/src/cmd/go/internal/work/build.go
+++ b/src/cmd/go/internal/work/build.go
-@@ -155,6 +155,8 @@ See also: go install, go get, go clean.
+@@ -167,6 +167,8 @@ See also: go install, go get, go clean.
const concurrentGCBackendCompilationEnabledByDefault = true
@@ -54,10 +50,10 @@ index 9305b2d..6560317 100644
func init() {
// break init cycle
CmdBuild.Run = runBuild
-@@ -167,6 +169,10 @@ func init() {
+@@ -179,6 +181,10 @@ func init() {
- AddBuildFlags(CmdBuild)
- AddBuildFlags(CmdInstall)
+ AddBuildFlags(CmdBuild, DefaultBuildFlags)
+ AddBuildFlags(CmdInstall, DefaultBuildFlags)
+
+ if x := os.Getenv("GOROOT_OVERRIDE"); x != "" {
+ goRootPrecious = false
@@ -65,11 +61,9 @@ index 9305b2d..6560317 100644
}
// Note that flags consulted by other parts of the code
-diff --git a/src/cmd/go/internal/work/exec.go b/src/cmd/go/internal/work/exec.go
-index ccebaf8..59450d7 100644
--- a/src/cmd/go/internal/work/exec.go
+++ b/src/cmd/go/internal/work/exec.go
-@@ -455,6 +455,23 @@ func (b *Builder) build(a *Action) (err error) {
+@@ -468,6 +468,23 @@ func (b *Builder) build(a *Action) (err
return errors.New("binary-only packages are no longer supported")
}
@@ -93,8 +87,8 @@ index ccebaf8..59450d7 100644
if err := b.Mkdir(a.Objdir); err != nil {
return err
}
-@@ -1499,6 +1516,14 @@ func BuildInstallFunc(b *Builder, a *Action) (err error) {
- return nil
+@@ -1520,6 +1537,14 @@ func BuildInstallFunc(b *Builder, a *Act
+ return err
}
+ if goRootPrecious && a.Package != nil {
@@ -108,6 +102,3 @@ index ccebaf8..59450d7 100644
if err := b.Mkdir(a.Objdir); err != nil {
return err
}
---
-2.17.1 (Apple Git-112)
-
diff --git a/meta/recipes-devtools/go/go-1.13/0008-use-GOBUILDMODE-to-set-buildmode.patch b/meta/recipes-devtools/go/go-1.15/0008-use-GOBUILDMODE-to-set-buildmode.patch
index 68e132f30a..4e5d5021d6 100644
--- a/meta/recipes-devtools/go/go-1.13/0008-use-GOBUILDMODE-to-set-buildmode.patch
+++ b/meta/recipes-devtools/go/go-1.15/0008-use-GOBUILDMODE-to-set-buildmode.patch
@@ -23,11 +23,9 @@ Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
src/cmd/go/internal/work/build.go | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
-diff --git a/src/cmd/go/internal/work/build.go b/src/cmd/go/internal/work/build.go
-index 6560317..5f3a988 100644
--- a/src/cmd/go/internal/work/build.go
+++ b/src/cmd/go/internal/work/build.go
-@@ -231,7 +231,13 @@ func AddBuildFlags(cmd *base.Command) {
+@@ -254,7 +254,13 @@ func AddBuildFlags(cmd *base.Command, ma
cmd.Flag.Var(&load.BuildAsmflags, "asmflags", "")
cmd.Flag.Var(buildCompiler{}, "compiler", "")
@@ -41,7 +39,4 @@ index 6560317..5f3a988 100644
+
cmd.Flag.Var(&load.BuildGcflags, "gcflags", "")
cmd.Flag.Var(&load.BuildGccgoflags, "gccgoflags", "")
- cmd.Flag.StringVar(&cfg.BuildMod, "mod", "", "")
---
-2.17.1 (Apple Git-112)
-
+ if mask&OmitModFlag == 0 {
diff --git a/meta/recipes-devtools/go/go-binary-native_1.15.2.bb b/meta/recipes-devtools/go/go-binary-native_1.15.2.bb
new file mode 100644
index 0000000000..ccd2d5ebad
--- /dev/null
+++ b/meta/recipes-devtools/go/go-binary-native_1.15.2.bb
@@ -0,0 +1,46 @@
+# This recipe is for bootstrapping our go-cross from a prebuilt binary of Go from golang.org.
+
+SUMMARY = "Go programming language compiler (upstream binary for bootstrap)"
+HOMEPAGE = " http://golang.org/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707"
+
+PROVIDES = "go-native"
+
+SRC_URI = "https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz;name=go_${BUILD_GOTUPLE}"
+SRC_URI[go_linux_amd64.sha256sum] = "b49fda1ca29a1946d6bb2a5a6982cf07ccd2aba849289508ee0f9918f6bb4552"
+SRC_URI[go_linux_arm64.sha256sum] = "c8ec460cc82d61604b048f9439c06bd591722efce5cd48f49e19b5f6226bd36d"
+
+UPSTREAM_CHECK_URI = "https://golang.org/dl/"
+UPSTREAM_CHECK_REGEX = "go(?P<pver>\d+(\.\d+)+)\.linux"
+
+S = "${WORKDIR}/go"
+
+inherit goarch native
+
+do_compile() {
+ :
+}
+
+make_wrapper() {
+ rm -f ${D}${bindir}/$1
+ cat <<END >${D}${bindir}/$1
+#!/bin/bash
+here=\`dirname \$0\`
+export GOROOT="${GOROOT:-\`readlink -f \$here/../lib/go\`}"
+\$here/../lib/go/bin/$1 "\$@"
+END
+ chmod +x ${D}${bindir}/$1
+}
+
+do_install() {
+ find ${S} -depth -type d -name testdata -exec rm -rf {} +
+
+ install -d ${D}${bindir} ${D}${libdir}/go
+ cp --preserve=mode,timestamps -R ${S}/ ${D}${libdir}/
+
+ for f in ${S}/bin/*
+ do
+ make_wrapper `basename $f`
+ done
+}
diff --git a/meta/recipes-devtools/go/go-cross-canadian_1.13.bb b/meta/recipes-devtools/go/go-cross-canadian_1.15.bb
index 7ac9449e47..7ac9449e47 100644
--- a/meta/recipes-devtools/go/go-cross-canadian_1.13.bb
+++ b/meta/recipes-devtools/go/go-cross-canadian_1.15.bb
diff --git a/meta/recipes-devtools/go/go-cross_1.13.bb b/meta/recipes-devtools/go/go-cross_1.15.bb
index 80b5a03f6c..80b5a03f6c 100644
--- a/meta/recipes-devtools/go/go-cross_1.13.bb
+++ b/meta/recipes-devtools/go/go-cross_1.15.bb
diff --git a/meta/recipes-devtools/go/go-crosssdk_1.13.bb b/meta/recipes-devtools/go/go-crosssdk_1.15.bb
index 1857c8a577..1857c8a577 100644
--- a/meta/recipes-devtools/go/go-crosssdk_1.13.bb
+++ b/meta/recipes-devtools/go/go-crosssdk_1.15.bb
diff --git a/meta/recipes-devtools/go/go-dep/0001-Update-sys-module-to-latest.patch b/meta/recipes-devtools/go/go-dep/0001-Update-sys-module-to-latest.patch
new file mode 100644
index 0000000000..b13bb9e665
--- /dev/null
+++ b/meta/recipes-devtools/go/go-dep/0001-Update-sys-module-to-latest.patch
@@ -0,0 +1,145574 @@
+From f7904cb91a1b18e893ffbd25b450926d145d0e0a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 22 Apr 2020 18:44:48 -0700
+Subject: [PATCH] Update sys module to latest
+
+Gets us riscv support
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Gopkg.lock | 4 +-
+ .../golang.org/x/sys/unix/affinity_linux.go | 86 +
+ vendor/golang.org/x/sys/unix/aliases.go | 14 +
+ vendor/golang.org/x/sys/unix/asm_aix_ppc64.s | 17 +
+ .../x/sys/unix/asm_dragonfly_amd64.s | 10 +-
+ ...sm_linux_mips64x.s => asm_freebsd_arm64.s} | 11 +-
+ vendor/golang.org/x/sys/unix/asm_linux_386.s | 36 +-
+ .../golang.org/x/sys/unix/asm_linux_amd64.s | 30 +-
+ vendor/golang.org/x/sys/unix/asm_linux_arm.s | 35 +-
+ .../golang.org/x/sys/unix/asm_linux_arm64.s | 30 +-
+ .../golang.org/x/sys/unix/asm_linux_mips64x.s | 36 +-
+ .../golang.org/x/sys/unix/asm_linux_mipsx.s | 33 +-
+ .../golang.org/x/sys/unix/asm_linux_ppc64x.s | 38 +-
+ .../golang.org/x/sys/unix/asm_linux_riscv64.s | 47 +
+ .../golang.org/x/sys/unix/asm_linux_s390x.s | 28 +
+ ...asm_linux_mips64x.s => asm_netbsd_arm64.s} | 17 +-
+ ...sm_linux_mips64x.s => asm_openbsd_arm64.s} | 9 +-
+ .../golang.org/x/sys/unix/bluetooth_linux.go | 1 +
+ vendor/golang.org/x/sys/unix/cap_freebsd.go | 30 +-
+ vendor/golang.org/x/sys/unix/constants.go | 2 +-
+ vendor/golang.org/x/sys/unix/dev_aix_ppc.go | 27 +
+ vendor/golang.org/x/sys/unix/dev_aix_ppc64.go | 29 +
+ vendor/golang.org/x/sys/unix/dev_darwin.go | 24 +
+ vendor/golang.org/x/sys/unix/dev_dragonfly.go | 30 +
+ vendor/golang.org/x/sys/unix/dev_freebsd.go | 30 +
+ vendor/golang.org/x/sys/unix/dev_linux.go | 8 +-
+ vendor/golang.org/x/sys/unix/dev_netbsd.go | 29 +
+ vendor/golang.org/x/sys/unix/dev_openbsd.go | 29 +
+ vendor/golang.org/x/sys/unix/dirent.go | 2 +-
+ vendor/golang.org/x/sys/unix/endian_little.go | 2 +-
+ vendor/golang.org/x/sys/unix/env_unix.go | 8 +-
+ vendor/golang.org/x/sys/unix/env_unset.go | 14 -
+ .../x/sys/unix/errors_freebsd_386.go | 6 +
+ .../x/sys/unix/errors_freebsd_amd64.go | 6 +
+ .../x/sys/unix/errors_freebsd_arm64.go | 17 +
+ .../x/sys/unix/{flock.go => fcntl.go} | 18 +-
+ vendor/golang.org/x/sys/unix/fcntl_darwin.go | 18 +
+ ...ck_linux_32bit.go => fcntl_linux_32bit.go} | 0
+ vendor/golang.org/x/sys/unix/fdset.go | 29 +
+ vendor/golang.org/x/sys/unix/file_unix.go | 27 -
+ vendor/golang.org/x/sys/unix/gccgo.go | 20 +-
+ vendor/golang.org/x/sys/unix/gccgo_c.c | 12 +-
+ .../x/sys/unix/gccgo_linux_amd64.go | 2 +-
+ .../x/sys/unix/gccgo_linux_sparc64.go | 20 -
+ vendor/golang.org/x/sys/unix/ioctl.go | 65 +
+ vendor/golang.org/x/sys/unix/mkasm_darwin.go | 78 +
+ vendor/golang.org/x/sys/unix/mkmerge.go | 521 +++
+ vendor/golang.org/x/sys/unix/mkpost.go | 63 +-
+ vendor/golang.org/x/sys/unix/mksyscall.go | 402 +++
+ .../x/sys/unix/mksyscall_aix_ppc.go | 415 +++
+ .../x/sys/unix/mksyscall_aix_ppc64.go | 614 ++++
+ .../x/sys/unix/mksyscall_solaris.go | 341 ++
+ .../golang.org/x/sys/unix/mksysctl_openbsd.go | 355 +++
+ vendor/golang.org/x/sys/unix/mksysnum.go | 190 ++
+ .../golang.org/x/sys/unix/openbsd_pledge.go | 38 -
+ vendor/golang.org/x/sys/unix/pagesize_unix.go | 15 +
+ .../golang.org/x/sys/unix/pledge_openbsd.go | 163 +
+ vendor/golang.org/x/sys/unix/race.go | 2 +-
+ vendor/golang.org/x/sys/unix/race0.go | 4 +-
+ .../x/sys/unix/readdirent_getdents.go | 12 +
+ .../x/sys/unix/readdirent_getdirentries.go | 19 +
+ .../x/sys/unix/sockcmsg_dragonfly.go | 16 +
+ .../golang.org/x/sys/unix/sockcmsg_linux.go | 4 +-
+ vendor/golang.org/x/sys/unix/sockcmsg_unix.go | 28 +-
+ .../x/sys/unix/sockcmsg_unix_other.go | 38 +
+ vendor/golang.org/x/sys/unix/str.go | 2 +-
+ vendor/golang.org/x/sys/unix/syscall.go | 38 +-
+ vendor/golang.org/x/sys/unix/syscall_aix.go | 536 ++++
+ .../golang.org/x/sys/unix/syscall_aix_ppc.go | 54 +
+ .../x/sys/unix/syscall_aix_ppc64.go | 85 +
+ vendor/golang.org/x/sys/unix/syscall_bsd.go | 112 +-
+ .../x/sys/unix/syscall_darwin.1_12.go | 29 +
+ .../x/sys/unix/syscall_darwin.1_13.go | 101 +
+ .../golang.org/x/sys/unix/syscall_darwin.go | 263 +-
+ .../x/sys/unix/syscall_darwin_386.1_11.go | 9 +
+ .../x/sys/unix/syscall_darwin_386.go | 45 +-
+ .../x/sys/unix/syscall_darwin_amd64.1_11.go | 9 +
+ .../x/sys/unix/syscall_darwin_amd64.go | 45 +-
+ .../x/sys/unix/syscall_darwin_arm.1_11.go | 11 +
+ .../x/sys/unix/syscall_darwin_arm.go | 51 +-
+ .../x/sys/unix/syscall_darwin_arm64.1_11.go | 11 +
+ .../x/sys/unix/syscall_darwin_arm64.go | 47 +-
+ .../x/sys/unix/syscall_darwin_libSystem.go | 33 +
+ .../x/sys/unix/syscall_dragonfly.go | 136 +-
+ .../x/sys/unix/syscall_dragonfly_amd64.go | 21 +-
+ .../golang.org/x/sys/unix/syscall_freebsd.go | 592 ++--
+ .../x/sys/unix/syscall_freebsd_386.go | 31 +-
+ .../x/sys/unix/syscall_freebsd_amd64.go | 31 +-
+ .../x/sys/unix/syscall_freebsd_arm.go | 27 +-
+ ...nfly_amd64.go => syscall_freebsd_arm64.go} | 31 +-
+ .../golang.org/x/sys/unix/syscall_illumos.go | 57 +
+ vendor/golang.org/x/sys/unix/syscall_linux.go | 1030 +++++-
+ .../x/sys/unix/syscall_linux_386.go | 47 +-
+ .../x/sys/unix/syscall_linux_amd64.go | 80 +-
+ .../x/sys/unix/syscall_linux_arm.go | 64 +-
+ .../x/sys/unix/syscall_linux_arm64.go | 111 +-
+ .../golang.org/x/sys/unix/syscall_linux_gc.go | 14 +
+ .../x/sys/unix/syscall_linux_gc_386.go | 16 +
+ .../x/sys/unix/syscall_linux_gccgo_386.go | 30 +
+ .../x/sys/unix/syscall_linux_gccgo_arm.go | 20 +
+ .../x/sys/unix/syscall_linux_mips64x.go | 53 +-
+ .../x/sys/unix/syscall_linux_mipsx.go | 47 +-
+ .../x/sys/unix/syscall_linux_ppc64x.go | 59 +-
+ ...inux_arm64.go => syscall_linux_riscv64.go} | 118 +-
+ .../x/sys/unix/syscall_linux_s390x.go | 44 +-
+ .../x/sys/unix/syscall_linux_sparc64.go | 48 +-
+ .../golang.org/x/sys/unix/syscall_netbsd.go | 156 +-
+ .../x/sys/unix/syscall_netbsd_386.go | 21 +-
+ .../x/sys/unix/syscall_netbsd_amd64.go | 21 +-
+ .../x/sys/unix/syscall_netbsd_arm.go | 21 +-
+ ...etbsd_amd64.go => syscall_netbsd_arm64.go} | 25 +-
+ .../golang.org/x/sys/unix/syscall_no_getwd.go | 11 -
+ .../golang.org/x/sys/unix/syscall_openbsd.go | 199 +-
+ .../x/sys/unix/syscall_openbsd_386.go | 25 +-
+ .../x/sys/unix/syscall_openbsd_amd64.go | 25 +-
+ .../x/sys/unix/syscall_openbsd_arm.go | 27 +-
+ .../x/sys/unix/syscall_openbsd_arm64.go | 41 +
+ .../golang.org/x/sys/unix/syscall_solaris.go | 128 +-
+ .../x/sys/unix/syscall_solaris_amd64.go | 24 +-
+ vendor/golang.org/x/sys/unix/syscall_unix.go | 176 +-
+ .../golang.org/x/sys/unix/syscall_unix_gc.go | 2 +-
+ ...l_unix_gc.go => syscall_unix_gc_ppc64x.go} | 21 +-
+ vendor/golang.org/x/sys/unix/timestruct.go | 82 +
+ .../unix/{types_netbsd.go => types_aix.go} | 196 +-
+ vendor/golang.org/x/sys/unix/types_darwin.go | 41 +-
+ .../golang.org/x/sys/unix/types_dragonfly.go | 66 +-
+ vendor/golang.org/x/sys/unix/types_freebsd.go | 178 +-
+ vendor/golang.org/x/sys/unix/types_netbsd.go | 73 +-
+ vendor/golang.org/x/sys/unix/types_openbsd.go | 78 +-
+ vendor/golang.org/x/sys/unix/types_solaris.go | 54 +-
+ .../golang.org/x/sys/unix/unveil_openbsd.go | 42 +
+ vendor/golang.org/x/sys/unix/xattr_bsd.go | 240 ++
+ .../golang.org/x/sys/unix/zerrors_aix_ppc.go | 1384 ++++++++
+ .../x/sys/unix/zerrors_aix_ppc64.go | 1385 ++++++++
+ .../x/sys/unix/zerrors_darwin_386.go | 391 ++-
+ .../x/sys/unix/zerrors_darwin_amd64.go | 391 ++-
+ .../x/sys/unix/zerrors_darwin_arm.go | 391 ++-
+ .../x/sys/unix/zerrors_darwin_arm64.go | 391 ++-
+ .../x/sys/unix/zerrors_dragonfly_amd64.go | 355 ++-
+ .../x/sys/unix/zerrors_freebsd_386.go | 508 ++-
+ .../x/sys/unix/zerrors_freebsd_amd64.go | 506 ++-
+ .../x/sys/unix/zerrors_freebsd_arm.go | 368 ++-
+ ...ebsd_amd64.go => zerrors_freebsd_arm64.go} | 509 ++-
+ vendor/golang.org/x/sys/unix/zerrors_linux.go | 2469 +++++++++++++++
+ .../x/sys/unix/zerrors_linux_386.go | 2690 ++++------------
+ .../x/sys/unix/zerrors_linux_amd64.go | 2691 ++++------------
+ .../x/sys/unix/zerrors_linux_arm.go | 2701 ++++------------
+ .../x/sys/unix/zerrors_linux_arm64.go | 2673 ++++------------
+ .../x/sys/unix/zerrors_linux_mips.go | 2702 ++++------------
+ .../x/sys/unix/zerrors_linux_mips64.go | 2702 ++++------------
+ .../x/sys/unix/zerrors_linux_mips64le.go | 2702 ++++------------
+ .../x/sys/unix/zerrors_linux_mipsle.go | 2702 ++++------------
+ .../x/sys/unix/zerrors_linux_ppc64.go | 2816 ++++-------------
+ .../x/sys/unix/zerrors_linux_ppc64le.go | 2816 ++++-------------
+ .../x/sys/unix/zerrors_linux_riscv64.go | 771 +++++
+ .../x/sys/unix/zerrors_linux_s390x.go | 2812 ++++------------
+ .../x/sys/unix/zerrors_linux_sparc64.go | 2013 +++---------
+ .../x/sys/unix/zerrors_netbsd_386.go | 325 +-
+ .../x/sys/unix/zerrors_netbsd_amd64.go | 325 +-
+ .../x/sys/unix/zerrors_netbsd_arm.go | 325 +-
+ ...etbsd_amd64.go => zerrors_netbsd_arm64.go} | 327 +-
+ .../x/sys/unix/zerrors_openbsd_386.go | 339 +-
+ .../x/sys/unix/zerrors_openbsd_amd64.go | 576 ++--
+ .../x/sys/unix/zerrors_openbsd_arm.go | 333 +-
+ ...nbsd_amd64.go => zerrors_openbsd_arm64.go} | 605 ++--
+ .../x/sys/unix/zerrors_solaris_amd64.go | 380 ++-
+ .../x/sys/unix/zptrace_armnn_linux.go | 41 +
+ .../x/sys/unix/zptrace_linux_arm64.go | 17 +
+ .../x/sys/unix/zptrace_mipsnn_linux.go | 50 +
+ .../x/sys/unix/zptrace_mipsnnle_linux.go | 50 +
+ .../x/sys/unix/zptrace_x86_linux.go | 80 +
+ .../golang.org/x/sys/unix/zsyscall_aix_ppc.go | 1484 +++++++++
+ ..._netbsd_amd64.go => zsyscall_aix_ppc64.go} | 936 +++---
+ .../x/sys/unix/zsyscall_aix_ppc64_gc.go | 1192 +++++++
+ .../x/sys/unix/zsyscall_aix_ppc64_gccgo.go | 1070 +++++++
+ ...win_arm.go => zsyscall_darwin_386.1_11.go} | 416 ++-
+ .../x/sys/unix/zsyscall_darwin_386.1_13.go | 41 +
+ .../x/sys/unix/zsyscall_darwin_386.1_13.s | 12 +
+ .../x/sys/unix/zsyscall_darwin_386.go | 1314 ++++++--
+ .../x/sys/unix/zsyscall_darwin_386.s | 284 ++
+ ...arm64.go => zsyscall_darwin_amd64.1_11.go} | 416 ++-
+ .../x/sys/unix/zsyscall_darwin_amd64.1_13.go | 41 +
+ .../x/sys/unix/zsyscall_darwin_amd64.1_13.s | 12 +
+ .../x/sys/unix/zsyscall_darwin_amd64.go | 1314 ++++++--
+ .../x/sys/unix/zsyscall_darwin_amd64.s | 284 ++
+ ...win_arm.go => zsyscall_darwin_arm.1_11.go} | 389 ++-
+ .../x/sys/unix/zsyscall_darwin_arm.1_13.go | 41 +
+ .../x/sys/unix/zsyscall_darwin_arm.1_13.s | 12 +
+ .../x/sys/unix/zsyscall_darwin_arm.go | 1301 ++++++--
+ .../x/sys/unix/zsyscall_darwin_arm.s | 282 ++
+ ...arm64.go => zsyscall_darwin_arm64.1_11.go} | 389 ++-
+ .../x/sys/unix/zsyscall_darwin_arm64.1_13.go | 41 +
+ .../x/sys/unix/zsyscall_darwin_arm64.1_13.s | 12 +
+ .../x/sys/unix/zsyscall_darwin_arm64.go | 1301 ++++++--
+ .../x/sys/unix/zsyscall_darwin_arm64.s | 282 ++
+ .../x/sys/unix/zsyscall_dragonfly_amd64.go | 238 +-
+ .../x/sys/unix/zsyscall_freebsd_386.go | 204 +-
+ .../x/sys/unix/zsyscall_freebsd_amd64.go | 204 +-
+ .../x/sys/unix/zsyscall_freebsd_arm.go | 204 +-
+ ...bsd_amd64.go => zsyscall_freebsd_arm64.go} | 206 +-
+ .../x/sys/unix/zsyscall_illumos_amd64.go | 87 +
+ ...scall_linux_s390x.go => zsyscall_linux.go} | 774 ++---
+ .../x/sys/unix/zsyscall_linux_386.go | 1573 +--------
+ .../x/sys/unix/zsyscall_linux_amd64.go | 1607 +---------
+ .../x/sys/unix/zsyscall_linux_arm.go | 1626 +---------
+ .../x/sys/unix/zsyscall_linux_arm64.go | 1513 +--------
+ .../x/sys/unix/zsyscall_linux_mips.go | 1567 +--------
+ .../x/sys/unix/zsyscall_linux_mips64.go | 1552 +--------
+ .../x/sys/unix/zsyscall_linux_mips64le.go | 1552 +--------
+ .../x/sys/unix/zsyscall_linux_mipsle.go | 1567 +--------
+ .../x/sys/unix/zsyscall_linux_ppc64.go | 1586 +---------
+ .../x/sys/unix/zsyscall_linux_ppc64le.go | 1586 +---------
+ .../x/sys/unix/zsyscall_linux_riscv64.go | 582 ++++
+ .../x/sys/unix/zsyscall_linux_s390x.go | 1570 +--------
+ .../x/sys/unix/zsyscall_linux_sparc64.go | 1247 +-------
+ .../x/sys/unix/zsyscall_netbsd_386.go | 551 +++-
+ .../x/sys/unix/zsyscall_netbsd_amd64.go | 551 +++-
+ .../x/sys/unix/zsyscall_netbsd_arm.go | 551 +++-
+ ...ebsd_amd64.go => zsyscall_netbsd_arm64.go} | 262 +-
+ .../x/sys/unix/zsyscall_openbsd_386.go | 338 +-
+ .../x/sys/unix/zsyscall_openbsd_amd64.go | 338 +-
+ .../x/sys/unix/zsyscall_openbsd_arm.go | 338 +-
+ ...arwin_386.go => zsyscall_openbsd_arm64.go} | 289 +-
+ .../x/sys/unix/zsyscall_solaris_amd64.go | 382 ++-
+ ...sctl_openbsd.go => zsysctl_openbsd_386.go} | 4 +-
+ ...tl_openbsd.go => zsysctl_openbsd_amd64.go} | 42 +-
+ ...sctl_openbsd.go => zsysctl_openbsd_arm.go} | 6 +-
+ ...tl_openbsd.go => zsysctl_openbsd_arm64.go} | 47 +-
+ .../x/sys/unix/zsysnum_darwin_386.go | 60 +-
+ .../x/sys/unix/zsysnum_darwin_amd64.go | 62 +-
+ .../x/sys/unix/zsysnum_darwin_arm.go | 14 +-
+ .../x/sys/unix/zsysnum_darwin_arm64.go | 14 +-
+ .../x/sys/unix/zsysnum_dragonfly_amd64.go | 176 +-
+ .../x/sys/unix/zsysnum_freebsd_386.go | 731 +++--
+ .../x/sys/unix/zsysnum_freebsd_amd64.go | 731 +++--
+ .../x/sys/unix/zsysnum_freebsd_arm.go | 731 +++--
+ .../x/sys/unix/zsysnum_freebsd_arm64.go | 396 +++
+ .../x/sys/unix/zsysnum_linux_386.go | 808 ++---
+ .../x/sys/unix/zsysnum_linux_amd64.go | 19 +-
+ .../x/sys/unix/zsysnum_linux_arm.go | 745 ++---
+ .../x/sys/unix/zsysnum_linux_arm64.go | 20 +-
+ .../x/sys/unix/zsysnum_linux_mips.go | 779 ++---
+ .../x/sys/unix/zsysnum_linux_mips64.go | 19 +-
+ .../x/sys/unix/zsysnum_linux_mips64le.go | 19 +-
+ .../x/sys/unix/zsysnum_linux_mipsle.go | 779 ++---
+ .../x/sys/unix/zsysnum_linux_ppc64.go | 33 +-
+ .../x/sys/unix/zsysnum_linux_ppc64le.go | 33 +-
+ ...inux_arm64.go => zsysnum_linux_riscv64.go} | 23 +-
+ .../x/sys/unix/zsysnum_linux_s390x.go | 80 +-
+ .../x/sys/unix/zsysnum_linux_sparc64.go | 35 +-
+ .../x/sys/unix/zsysnum_netbsd_386.go | 4 +-
+ .../x/sys/unix/zsysnum_netbsd_amd64.go | 4 +-
+ .../x/sys/unix/zsysnum_netbsd_arm.go | 4 +-
+ ..._netbsd_386.go => zsysnum_netbsd_arm64.go} | 6 +-
+ .../x/sys/unix/zsysnum_openbsd_386.go | 223 +-
+ .../x/sys/unix/zsysnum_openbsd_amd64.go | 223 +-
+ .../x/sys/unix/zsysnum_openbsd_arm.go | 217 +-
+ ...penbsd_arm.go => zsysnum_openbsd_arm64.go} | 218 +-
+ .../x/sys/unix/zsysnum_solaris_amd64.go | 13 -
+ .../golang.org/x/sys/unix/ztypes_aix_ppc.go | 352 +++
+ .../golang.org/x/sys/unix/ztypes_aix_ppc64.go | 356 +++
+ .../x/sys/unix/ztypes_darwin_386.go | 195 +-
+ .../x/sys/unix/ztypes_darwin_amd64.go | 241 +-
+ .../x/sys/unix/ztypes_darwin_arm.go | 195 +-
+ .../x/sys/unix/ztypes_darwin_arm64.go | 246 +-
+ .../x/sys/unix/ztypes_dragonfly_amd64.go | 213 +-
+ .../x/sys/unix/ztypes_freebsd_386.go | 426 ++-
+ .../x/sys/unix/ztypes_freebsd_amd64.go | 448 ++-
+ .../x/sys/unix/ztypes_freebsd_arm.go | 427 ++-
+ ...eebsd_amd64.go => ztypes_freebsd_arm64.go} | 430 ++-
+ vendor/golang.org/x/sys/unix/ztypes_linux.go | 2340 ++++++++++++++
+ .../golang.org/x/sys/unix/ztypes_linux_386.go | 878 ++---
+ .../x/sys/unix/ztypes_linux_amd64.go | 881 ++----
+ .../golang.org/x/sys/unix/ztypes_linux_arm.go | 899 +++---
+ .../x/sys/unix/ztypes_linux_arm64.go | 883 ++----
+ .../x/sys/unix/ztypes_linux_mips.go | 864 ++---
+ .../x/sys/unix/ztypes_linux_mips64.go | 880 ++----
+ .../x/sys/unix/ztypes_linux_mips64le.go | 880 ++----
+ .../x/sys/unix/ztypes_linux_mipsle.go | 864 ++---
+ .../x/sys/unix/ztypes_linux_ppc64.go | 889 ++----
+ .../x/sys/unix/ztypes_linux_ppc64le.go | 889 ++----
+ .../x/sys/unix/ztypes_linux_riscv64.go | 621 ++++
+ .../x/sys/unix/ztypes_linux_s390x.go | 842 ++---
+ .../x/sys/unix/ztypes_linux_sparc64.go | 910 +++---
+ .../x/sys/unix/ztypes_netbsd_386.go | 145 +-
+ .../x/sys/unix/ztypes_netbsd_amd64.go | 152 +-
+ .../x/sys/unix/ztypes_netbsd_arm.go | 151 +-
+ ...netbsd_amd64.go => ztypes_netbsd_arm64.go} | 154 +-
+ .../x/sys/unix/ztypes_openbsd_386.go | 173 +-
+ .../x/sys/unix/ztypes_openbsd_amd64.go | 264 +-
+ .../x/sys/unix/ztypes_openbsd_arm.go | 255 +-
+ ...enbsd_amd64.go => ztypes_openbsd_arm64.go} | 260 +-
+ .../x/sys/unix/ztypes_solaris_amd64.go | 239 +-
+ 293 files changed, 60017 insertions(+), 59731 deletions(-)
+ create mode 100644 vendor/golang.org/x/sys/unix/affinity_linux.go
+ create mode 100644 vendor/golang.org/x/sys/unix/aliases.go
+ create mode 100644 vendor/golang.org/x/sys/unix/asm_aix_ppc64.s
+ copy vendor/golang.org/x/sys/unix/{asm_linux_mips64x.s => asm_freebsd_arm64.s} (71%)
+ create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_riscv64.s
+ copy vendor/golang.org/x/sys/unix/{asm_linux_mips64x.s => asm_netbsd_arm64.s} (60%)
+ copy vendor/golang.org/x/sys/unix/{asm_linux_mips64x.s => asm_openbsd_arm64.s} (76%)
+ create mode 100644 vendor/golang.org/x/sys/unix/dev_aix_ppc.go
+ create mode 100644 vendor/golang.org/x/sys/unix/dev_aix_ppc64.go
+ create mode 100644 vendor/golang.org/x/sys/unix/dev_darwin.go
+ create mode 100644 vendor/golang.org/x/sys/unix/dev_dragonfly.go
+ create mode 100644 vendor/golang.org/x/sys/unix/dev_freebsd.go
+ create mode 100644 vendor/golang.org/x/sys/unix/dev_netbsd.go
+ create mode 100644 vendor/golang.org/x/sys/unix/dev_openbsd.go
+ delete mode 100644 vendor/golang.org/x/sys/unix/env_unset.go
+ create mode 100644 vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go
+ rename vendor/golang.org/x/sys/unix/{flock.go => fcntl.go} (54%)
+ create mode 100644 vendor/golang.org/x/sys/unix/fcntl_darwin.go
+ rename vendor/golang.org/x/sys/unix/{flock_linux_32bit.go => fcntl_linux_32bit.go} (100%)
+ create mode 100644 vendor/golang.org/x/sys/unix/fdset.go
+ delete mode 100644 vendor/golang.org/x/sys/unix/file_unix.go
+ delete mode 100644 vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go
+ create mode 100644 vendor/golang.org/x/sys/unix/ioctl.go
+ create mode 100644 vendor/golang.org/x/sys/unix/mkasm_darwin.go
+ create mode 100644 vendor/golang.org/x/sys/unix/mkmerge.go
+ create mode 100644 vendor/golang.org/x/sys/unix/mksyscall.go
+ create mode 100644 vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go
+ create mode 100644 vendor/golang.org/x/sys/unix/mksyscall_aix_ppc64.go
+ create mode 100644 vendor/golang.org/x/sys/unix/mksyscall_solaris.go
+ create mode 100644 vendor/golang.org/x/sys/unix/mksysctl_openbsd.go
+ create mode 100644 vendor/golang.org/x/sys/unix/mksysnum.go
+ delete mode 100644 vendor/golang.org/x/sys/unix/openbsd_pledge.go
+ create mode 100644 vendor/golang.org/x/sys/unix/pagesize_unix.go
+ create mode 100644 vendor/golang.org/x/sys/unix/pledge_openbsd.go
+ create mode 100644 vendor/golang.org/x/sys/unix/readdirent_getdents.go
+ create mode 100644 vendor/golang.org/x/sys/unix/readdirent_getdirentries.go
+ create mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go
+ create mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_aix.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_aix_ppc.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_386.1_11.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_amd64.1_11.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_arm.1_11.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_arm64.1_11.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go
+ copy vendor/golang.org/x/sys/unix/{syscall_dragonfly_amd64.go => syscall_freebsd_arm64.go} (59%)
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_illumos.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_gc.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go
+ copy vendor/golang.org/x/sys/unix/{syscall_linux_arm64.go => syscall_linux_riscv64.go} (68%)
+ copy vendor/golang.org/x/sys/unix/{syscall_netbsd_amd64.go => syscall_netbsd_arm64.go} (50%)
+ delete mode 100644 vendor/golang.org/x/sys/unix/syscall_no_getwd.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go
+ copy vendor/golang.org/x/sys/unix/{syscall_unix_gc.go => syscall_unix_gc_ppc64x.go} (51%)
+ create mode 100644 vendor/golang.org/x/sys/unix/timestruct.go
+ copy vendor/golang.org/x/sys/unix/{types_netbsd.go => types_aix.go} (53%)
+ create mode 100644 vendor/golang.org/x/sys/unix/unveil_openbsd.go
+ create mode 100644 vendor/golang.org/x/sys/unix/xattr_bsd.go
+ create mode 100644 vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go
+ create mode 100644 vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go
+ copy vendor/golang.org/x/sys/unix/{zerrors_freebsd_amd64.go => zerrors_freebsd_arm64.go} (80%)
+ create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux.go
+ create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go
+ copy vendor/golang.org/x/sys/unix/{zerrors_netbsd_amd64.go => zerrors_netbsd_arm64.go} (89%)
+ copy vendor/golang.org/x/sys/unix/{zerrors_openbsd_amd64.go => zerrors_openbsd_arm64.go} (76%)
+ create mode 100644 vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go
+ create mode 100644 vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go
+ create mode 100644 vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go
+ create mode 100644 vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go
+ create mode 100644 vendor/golang.org/x/sys/unix/zptrace_x86_linux.go
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go
+ copy vendor/golang.org/x/sys/unix/{zsyscall_netbsd_amd64.go => zsyscall_aix_ppc64.go} (57%)
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go
+ copy vendor/golang.org/x/sys/unix/{zsyscall_darwin_arm.go => zsyscall_darwin_386.1_11.go} (85%)
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.go
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.s
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s
+ copy vendor/golang.org/x/sys/unix/{zsyscall_darwin_arm64.go => zsyscall_darwin_amd64.1_11.go} (85%)
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s
+ copy vendor/golang.org/x/sys/unix/{zsyscall_darwin_arm.go => zsyscall_darwin_arm.1_11.go} (85%)
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.go
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.s
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s
+ copy vendor/golang.org/x/sys/unix/{zsyscall_darwin_arm64.go => zsyscall_darwin_arm64.1_11.go} (84%)
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s
+ copy vendor/golang.org/x/sys/unix/{zsyscall_freebsd_amd64.go => zsyscall_freebsd_arm64.go} (90%)
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go
+ copy vendor/golang.org/x/sys/unix/{zsyscall_linux_s390x.go => zsyscall_linux.go} (79%)
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go
+ copy vendor/golang.org/x/sys/unix/{zsyscall_freebsd_amd64.go => zsyscall_netbsd_arm64.go} (92%)
+ copy vendor/golang.org/x/sys/unix/{zsyscall_darwin_386.go => zsyscall_openbsd_arm64.go} (87%)
+ copy vendor/golang.org/x/sys/unix/{zsysctl_openbsd.go => zsysctl_openbsd_386.go} (99%)
+ copy vendor/golang.org/x/sys/unix/{zsysctl_openbsd.go => zsysctl_openbsd_amd64.go} (91%)
+ copy vendor/golang.org/x/sys/unix/{zsysctl_openbsd.go => zsysctl_openbsd_arm.go} (99%)
+ rename vendor/golang.org/x/sys/unix/{zsysctl_openbsd.go => zsysctl_openbsd_arm64.go} (91%)
+ create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go
+ copy vendor/golang.org/x/sys/unix/{zsysnum_linux_arm64.go => zsysnum_linux_riscv64.go} (92%)
+ copy vendor/golang.org/x/sys/unix/{zsysnum_netbsd_386.go => zsysnum_netbsd_arm64.go} (99%)
+ copy vendor/golang.org/x/sys/unix/{zsysnum_openbsd_arm.go => zsysnum_openbsd_arm64.go} (67%)
+ delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_solaris_amd64.go
+ create mode 100644 vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go
+ create mode 100644 vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go
+ copy vendor/golang.org/x/sys/unix/{ztypes_freebsd_amd64.go => ztypes_freebsd_arm64.go} (54%)
+ create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux.go
+ create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go
+ copy vendor/golang.org/x/sys/unix/{ztypes_netbsd_amd64.go => ztypes_netbsd_arm64.go} (73%)
+ copy vendor/golang.org/x/sys/unix/{ztypes_openbsd_amd64.go => ztypes_openbsd_arm64.go} (58%)
+
+diff --git a/Gopkg.lock b/Gopkg.lock
+index b4333103..01a867d5 100644
+--- a/Gopkg.lock
++++ b/Gopkg.lock
+@@ -112,11 +112,11 @@
+
+ [[projects]]
+ branch = "master"
+- digest = "1:51912e607c5e28a89fdc7e41d3377b92086ab7f76ded236765dbf98d0a704c5d"
++ digest = "1:f8181d8aa1e268255316ec12ab5402d4f671b1da6d7ad40abdf2f92c0404b67d"
+ name = "golang.org/x/sys"
+ packages = ["unix"]
+ pruneopts = "NUT"
+- revision = "bb24a47a89eac6c1227fbcb2ae37a8b9ed323366"
++ revision = "1957bb5e6d1f523308b49060df02171d06ddfc77"
+
+ [[projects]]
+ branch = "v2"
+diff --git a/vendor/golang.org/x/sys/unix/affinity_linux.go b/vendor/golang.org/x/sys/unix/affinity_linux.go
+new file mode 100644
+index 00000000..6e5c81ac
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/affinity_linux.go
+@@ -0,0 +1,86 @@
++// Copyright 2018 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// CPU affinity functions
++
++package unix
++
++import (
++ "math/bits"
++ "unsafe"
++)
++
++const cpuSetSize = _CPU_SETSIZE / _NCPUBITS
++
++// CPUSet represents a CPU affinity mask.
++type CPUSet [cpuSetSize]cpuMask
++
++func schedAffinity(trap uintptr, pid int, set *CPUSet) error {
++ _, _, e := RawSyscall(trap, uintptr(pid), uintptr(unsafe.Sizeof(*set)), uintptr(unsafe.Pointer(set)))
++ if e != 0 {
++ return errnoErr(e)
++ }
++ return nil
++}
++
++// SchedGetaffinity gets the CPU affinity mask of the thread specified by pid.
++// If pid is 0 the calling thread is used.
++func SchedGetaffinity(pid int, set *CPUSet) error {
++ return schedAffinity(SYS_SCHED_GETAFFINITY, pid, set)
++}
++
++// SchedSetaffinity sets the CPU affinity mask of the thread specified by pid.
++// If pid is 0 the calling thread is used.
++func SchedSetaffinity(pid int, set *CPUSet) error {
++ return schedAffinity(SYS_SCHED_SETAFFINITY, pid, set)
++}
++
++// Zero clears the set s, so that it contains no CPUs.
++func (s *CPUSet) Zero() {
++ for i := range s {
++ s[i] = 0
++ }
++}
++
++func cpuBitsIndex(cpu int) int {
++ return cpu / _NCPUBITS
++}
++
++func cpuBitsMask(cpu int) cpuMask {
++ return cpuMask(1 << (uint(cpu) % _NCPUBITS))
++}
++
++// Set adds cpu to the set s.
++func (s *CPUSet) Set(cpu int) {
++ i := cpuBitsIndex(cpu)
++ if i < len(s) {
++ s[i] |= cpuBitsMask(cpu)
++ }
++}
++
++// Clear removes cpu from the set s.
++func (s *CPUSet) Clear(cpu int) {
++ i := cpuBitsIndex(cpu)
++ if i < len(s) {
++ s[i] &^= cpuBitsMask(cpu)
++ }
++}
++
++// IsSet reports whether cpu is in the set s.
++func (s *CPUSet) IsSet(cpu int) bool {
++ i := cpuBitsIndex(cpu)
++ if i < len(s) {
++ return s[i]&cpuBitsMask(cpu) != 0
++ }
++ return false
++}
++
++// Count returns the number of CPUs in the set s.
++func (s *CPUSet) Count() int {
++ c := 0
++ for _, b := range s {
++ c += bits.OnesCount64(uint64(b))
++ }
++ return c
++}
+diff --git a/vendor/golang.org/x/sys/unix/aliases.go b/vendor/golang.org/x/sys/unix/aliases.go
+new file mode 100644
+index 00000000..951fce4d
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/aliases.go
+@@ -0,0 +1,14 @@
++// Copyright 2018 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
++// +build go1.9
++
++package unix
++
++import "syscall"
++
++type Signal = syscall.Signal
++type Errno = syscall.Errno
++type SysProcAttr = syscall.SysProcAttr
+diff --git a/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s b/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s
+new file mode 100644
+index 00000000..06f84b85
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s
+@@ -0,0 +1,17 @@
++// Copyright 2018 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build !gccgo
++
++#include "textflag.h"
++
++//
++// System calls for ppc64, AIX are implemented in runtime/syscall_aix.go
++//
++
++TEXT ·syscall6(SB),NOSPLIT,$0-88
++ JMP syscall·syscall6(SB)
++
++TEXT ·rawSyscall6(SB),NOSPLIT,$0-88
++ JMP syscall·rawSyscall6(SB)
+diff --git a/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s b/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s
+index d5ed6726..603dd572 100644
+--- a/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s
++++ b/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s
+@@ -13,17 +13,17 @@
+ // Just jump to package syscall's implementation for all these functions.
+ // The runtime may know about them.
+
+-TEXT ·Syscall(SB),NOSPLIT,$0-64
++TEXT ·Syscall(SB),NOSPLIT,$0-56
+ JMP syscall·Syscall(SB)
+
+-TEXT ·Syscall6(SB),NOSPLIT,$0-88
++TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ JMP syscall·Syscall6(SB)
+
+-TEXT ·Syscall9(SB),NOSPLIT,$0-112
++TEXT ·Syscall9(SB),NOSPLIT,$0-104
+ JMP syscall·Syscall9(SB)
+
+-TEXT ·RawSyscall(SB),NOSPLIT,$0-64
++TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ JMP syscall·RawSyscall(SB)
+
+-TEXT ·RawSyscall6(SB),NOSPLIT,$0-88
++TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ JMP syscall·RawSyscall6(SB)
+diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s b/vendor/golang.org/x/sys/unix/asm_freebsd_arm64.s
+similarity index 71%
+copy from vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
+copy to vendor/golang.org/x/sys/unix/asm_freebsd_arm64.s
+index 724e580c..d9318cbf 100644
+--- a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
++++ b/vendor/golang.org/x/sys/unix/asm_freebsd_arm64.s
+@@ -1,15 +1,13 @@
+-// Copyright 2015 The Go Authors. All rights reserved.
++// Copyright 2018 The Go Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+
+-// +build linux
+-// +build mips64 mips64le
+ // +build !gccgo
+
+ #include "textflag.h"
+
+ //
+-// System calls for mips64, Linux
++// System call support for ARM64, FreeBSD
+ //
+
+ // Just jump to package syscall's implementation for all these functions.
+@@ -21,7 +19,10 @@ TEXT ·Syscall(SB),NOSPLIT,$0-56
+ TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ JMP syscall·Syscall6(SB)
+
+-TEXT ·RawSyscall(SB),NOSPLIT,$0-56
++TEXT ·Syscall9(SB),NOSPLIT,$0-104
++ JMP syscall·Syscall9(SB)
++
++TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ JMP syscall·RawSyscall(SB)
+
+ TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+diff --git a/vendor/golang.org/x/sys/unix/asm_linux_386.s b/vendor/golang.org/x/sys/unix/asm_linux_386.s
+index 4db29093..448bebbb 100644
+--- a/vendor/golang.org/x/sys/unix/asm_linux_386.s
++++ b/vendor/golang.org/x/sys/unix/asm_linux_386.s
+@@ -10,21 +10,51 @@
+ // System calls for 386, Linux
+ //
+
++// See ../runtime/sys_linux_386.s for the reason why we always use int 0x80
++// instead of the glibc-specific "CALL 0x10(GS)".
++#define INVOKE_SYSCALL INT $0x80
++
+ // Just jump to package syscall's implementation for all these functions.
+ // The runtime may know about them.
+
+-TEXT ·Syscall(SB),NOSPLIT,$0-28
++TEXT ·Syscall(SB),NOSPLIT,$0-28
+ JMP syscall·Syscall(SB)
+
+-TEXT ·Syscall6(SB),NOSPLIT,$0-40
++TEXT ·Syscall6(SB),NOSPLIT,$0-40
+ JMP syscall·Syscall6(SB)
+
++TEXT ·SyscallNoError(SB),NOSPLIT,$0-24
++ CALL runtime·entersyscall(SB)
++ MOVL trap+0(FP), AX // syscall entry
++ MOVL a1+4(FP), BX
++ MOVL a2+8(FP), CX
++ MOVL a3+12(FP), DX
++ MOVL $0, SI
++ MOVL $0, DI
++ INVOKE_SYSCALL
++ MOVL AX, r1+16(FP)
++ MOVL DX, r2+20(FP)
++ CALL runtime·exitsyscall(SB)
++ RET
++
+ TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+ JMP syscall·RawSyscall(SB)
+
+-TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
++TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
+ JMP syscall·RawSyscall6(SB)
+
++TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24
++ MOVL trap+0(FP), AX // syscall entry
++ MOVL a1+4(FP), BX
++ MOVL a2+8(FP), CX
++ MOVL a3+12(FP), DX
++ MOVL $0, SI
++ MOVL $0, DI
++ INVOKE_SYSCALL
++ MOVL AX, r1+16(FP)
++ MOVL DX, r2+20(FP)
++ RET
++
+ TEXT ·socketcall(SB),NOSPLIT,$0-36
+ JMP syscall·socketcall(SB)
+
+diff --git a/vendor/golang.org/x/sys/unix/asm_linux_amd64.s b/vendor/golang.org/x/sys/unix/asm_linux_amd64.s
+index 44e25c62..c6468a95 100644
+--- a/vendor/golang.org/x/sys/unix/asm_linux_amd64.s
++++ b/vendor/golang.org/x/sys/unix/asm_linux_amd64.s
+@@ -13,17 +13,45 @@
+ // Just jump to package syscall's implementation for all these functions.
+ // The runtime may know about them.
+
+-TEXT ·Syscall(SB),NOSPLIT,$0-56
++TEXT ·Syscall(SB),NOSPLIT,$0-56
+ JMP syscall·Syscall(SB)
+
+ TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ JMP syscall·Syscall6(SB)
+
++TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
++ CALL runtime·entersyscall(SB)
++ MOVQ a1+8(FP), DI
++ MOVQ a2+16(FP), SI
++ MOVQ a3+24(FP), DX
++ MOVQ $0, R10
++ MOVQ $0, R8
++ MOVQ $0, R9
++ MOVQ trap+0(FP), AX // syscall entry
++ SYSCALL
++ MOVQ AX, r1+32(FP)
++ MOVQ DX, r2+40(FP)
++ CALL runtime·exitsyscall(SB)
++ RET
++
+ TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ JMP syscall·RawSyscall(SB)
+
+ TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ JMP syscall·RawSyscall6(SB)
+
++TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
++ MOVQ a1+8(FP), DI
++ MOVQ a2+16(FP), SI
++ MOVQ a3+24(FP), DX
++ MOVQ $0, R10
++ MOVQ $0, R8
++ MOVQ $0, R9
++ MOVQ trap+0(FP), AX // syscall entry
++ SYSCALL
++ MOVQ AX, r1+32(FP)
++ MOVQ DX, r2+40(FP)
++ RET
++
+ TEXT ·gettimeofday(SB),NOSPLIT,$0-16
+ JMP syscall·gettimeofday(SB)
+diff --git a/vendor/golang.org/x/sys/unix/asm_linux_arm.s b/vendor/golang.org/x/sys/unix/asm_linux_arm.s
+index cf0b5746..cf0f3575 100644
+--- a/vendor/golang.org/x/sys/unix/asm_linux_arm.s
++++ b/vendor/golang.org/x/sys/unix/asm_linux_arm.s
+@@ -13,17 +13,44 @@
+ // Just jump to package syscall's implementation for all these functions.
+ // The runtime may know about them.
+
+-TEXT ·Syscall(SB),NOSPLIT,$0-28
++TEXT ·Syscall(SB),NOSPLIT,$0-28
+ B syscall·Syscall(SB)
+
+-TEXT ·Syscall6(SB),NOSPLIT,$0-40
++TEXT ·Syscall6(SB),NOSPLIT,$0-40
+ B syscall·Syscall6(SB)
+
++TEXT ·SyscallNoError(SB),NOSPLIT,$0-24
++ BL runtime·entersyscall(SB)
++ MOVW trap+0(FP), R7
++ MOVW a1+4(FP), R0
++ MOVW a2+8(FP), R1
++ MOVW a3+12(FP), R2
++ MOVW $0, R3
++ MOVW $0, R4
++ MOVW $0, R5
++ SWI $0
++ MOVW R0, r1+16(FP)
++ MOVW $0, R0
++ MOVW R0, r2+20(FP)
++ BL runtime·exitsyscall(SB)
++ RET
++
+ TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+ B syscall·RawSyscall(SB)
+
+-TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
++TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
+ B syscall·RawSyscall6(SB)
+
+-TEXT ·seek(SB),NOSPLIT,$0-32
++TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24
++ MOVW trap+0(FP), R7 // syscall entry
++ MOVW a1+4(FP), R0
++ MOVW a2+8(FP), R1
++ MOVW a3+12(FP), R2
++ SWI $0
++ MOVW R0, r1+16(FP)
++ MOVW $0, R0
++ MOVW R0, r2+20(FP)
++ RET
++
++TEXT ·seek(SB),NOSPLIT,$0-28
+ B syscall·seek(SB)
+diff --git a/vendor/golang.org/x/sys/unix/asm_linux_arm64.s b/vendor/golang.org/x/sys/unix/asm_linux_arm64.s
+index 4be9bfed..afe6fdf6 100644
+--- a/vendor/golang.org/x/sys/unix/asm_linux_arm64.s
++++ b/vendor/golang.org/x/sys/unix/asm_linux_arm64.s
+@@ -11,14 +11,42 @@
+ // Just jump to package syscall's implementation for all these functions.
+ // The runtime may know about them.
+
+-TEXT ·Syscall(SB),NOSPLIT,$0-56
++TEXT ·Syscall(SB),NOSPLIT,$0-56
+ B syscall·Syscall(SB)
+
+ TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ B syscall·Syscall6(SB)
+
++TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
++ BL runtime·entersyscall(SB)
++ MOVD a1+8(FP), R0
++ MOVD a2+16(FP), R1
++ MOVD a3+24(FP), R2
++ MOVD $0, R3
++ MOVD $0, R4
++ MOVD $0, R5
++ MOVD trap+0(FP), R8 // syscall entry
++ SVC
++ MOVD R0, r1+32(FP) // r1
++ MOVD R1, r2+40(FP) // r2
++ BL runtime·exitsyscall(SB)
++ RET
++
+ TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ B syscall·RawSyscall(SB)
+
+ TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ B syscall·RawSyscall6(SB)
++
++TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
++ MOVD a1+8(FP), R0
++ MOVD a2+16(FP), R1
++ MOVD a3+24(FP), R2
++ MOVD $0, R3
++ MOVD $0, R4
++ MOVD $0, R5
++ MOVD trap+0(FP), R8 // syscall entry
++ SVC
++ MOVD R0, r1+32(FP)
++ MOVD R1, r2+40(FP)
++ RET
+diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s b/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
+index 724e580c..ab9d6383 100644
+--- a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
++++ b/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
+@@ -15,14 +15,42 @@
+ // Just jump to package syscall's implementation for all these functions.
+ // The runtime may know about them.
+
+-TEXT ·Syscall(SB),NOSPLIT,$0-56
++TEXT ·Syscall(SB),NOSPLIT,$0-56
+ JMP syscall·Syscall(SB)
+
+-TEXT ·Syscall6(SB),NOSPLIT,$0-80
++TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ JMP syscall·Syscall6(SB)
+
+-TEXT ·RawSyscall(SB),NOSPLIT,$0-56
++TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
++ JAL runtime·entersyscall(SB)
++ MOVV a1+8(FP), R4
++ MOVV a2+16(FP), R5
++ MOVV a3+24(FP), R6
++ MOVV R0, R7
++ MOVV R0, R8
++ MOVV R0, R9
++ MOVV trap+0(FP), R2 // syscall entry
++ SYSCALL
++ MOVV R2, r1+32(FP)
++ MOVV R3, r2+40(FP)
++ JAL runtime·exitsyscall(SB)
++ RET
++
++TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ JMP syscall·RawSyscall(SB)
+
+-TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
++TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ JMP syscall·RawSyscall6(SB)
++
++TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
++ MOVV a1+8(FP), R4
++ MOVV a2+16(FP), R5
++ MOVV a3+24(FP), R6
++ MOVV R0, R7
++ MOVV R0, R8
++ MOVV R0, R9
++ MOVV trap+0(FP), R2 // syscall entry
++ SYSCALL
++ MOVV R2, r1+32(FP)
++ MOVV R3, r2+40(FP)
++ RET
+diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s b/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s
+index 2ea42575..99e53990 100644
+--- a/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s
++++ b/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s
+@@ -15,17 +15,40 @@
+ // Just jump to package syscall's implementation for all these functions.
+ // The runtime may know about them.
+
+-TEXT ·Syscall(SB),NOSPLIT,$0-28
++TEXT ·Syscall(SB),NOSPLIT,$0-28
+ JMP syscall·Syscall(SB)
+
+-TEXT ·Syscall6(SB),NOSPLIT,$0-40
++TEXT ·Syscall6(SB),NOSPLIT,$0-40
+ JMP syscall·Syscall6(SB)
+
+-TEXT ·Syscall9(SB),NOSPLIT,$0-52
++TEXT ·Syscall9(SB),NOSPLIT,$0-52
+ JMP syscall·Syscall9(SB)
+
+-TEXT ·RawSyscall(SB),NOSPLIT,$0-28
++TEXT ·SyscallNoError(SB),NOSPLIT,$0-24
++ JAL runtime·entersyscall(SB)
++ MOVW a1+4(FP), R4
++ MOVW a2+8(FP), R5
++ MOVW a3+12(FP), R6
++ MOVW R0, R7
++ MOVW trap+0(FP), R2 // syscall entry
++ SYSCALL
++ MOVW R2, r1+16(FP) // r1
++ MOVW R3, r2+20(FP) // r2
++ JAL runtime·exitsyscall(SB)
++ RET
++
++TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+ JMP syscall·RawSyscall(SB)
+
+-TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
++TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
+ JMP syscall·RawSyscall6(SB)
++
++TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24
++ MOVW a1+4(FP), R4
++ MOVW a2+8(FP), R5
++ MOVW a3+12(FP), R6
++ MOVW trap+0(FP), R2 // syscall entry
++ SYSCALL
++ MOVW R2, r1+16(FP)
++ MOVW R3, r2+20(FP)
++ RET
+diff --git a/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s b/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s
+index 8d231feb..88f71255 100644
+--- a/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s
++++ b/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s
+@@ -15,14 +15,30 @@
+ // Just jump to package syscall's implementation for all these functions.
+ // The runtime may know about them.
+
+-TEXT ·Syscall(SB),NOSPLIT,$0-56
+- BR syscall·Syscall(SB)
+-
+-TEXT ·Syscall6(SB),NOSPLIT,$0-80
+- BR syscall·Syscall6(SB)
+-
+-TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+- BR syscall·RawSyscall(SB)
+-
+-TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+- BR syscall·RawSyscall6(SB)
++TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
++ BL runtime·entersyscall(SB)
++ MOVD a1+8(FP), R3
++ MOVD a2+16(FP), R4
++ MOVD a3+24(FP), R5
++ MOVD R0, R6
++ MOVD R0, R7
++ MOVD R0, R8
++ MOVD trap+0(FP), R9 // syscall entry
++ SYSCALL R9
++ MOVD R3, r1+32(FP)
++ MOVD R4, r2+40(FP)
++ BL runtime·exitsyscall(SB)
++ RET
++
++TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
++ MOVD a1+8(FP), R3
++ MOVD a2+16(FP), R4
++ MOVD a3+24(FP), R5
++ MOVD R0, R6
++ MOVD R0, R7
++ MOVD R0, R8
++ MOVD trap+0(FP), R9 // syscall entry
++ SYSCALL R9
++ MOVD R3, r1+32(FP)
++ MOVD R4, r2+40(FP)
++ RET
+diff --git a/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s b/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s
+new file mode 100644
+index 00000000..3cfefed2
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s
+@@ -0,0 +1,47 @@
++// Copyright 2019 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build riscv64,!gccgo
++
++#include "textflag.h"
++
++//
++// System calls for linux/riscv64.
++//
++// Where available, just jump to package syscall's implementation of
++// these functions.
++
++TEXT ·Syscall(SB),NOSPLIT,$0-56
++ JMP syscall·Syscall(SB)
++
++TEXT ·Syscall6(SB),NOSPLIT,$0-80
++ JMP syscall·Syscall6(SB)
++
++TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
++ CALL runtime·entersyscall(SB)
++ MOV a1+8(FP), A0
++ MOV a2+16(FP), A1
++ MOV a3+24(FP), A2
++ MOV trap+0(FP), A7 // syscall entry
++ ECALL
++ MOV A0, r1+32(FP) // r1
++ MOV A1, r2+40(FP) // r2
++ CALL runtime·exitsyscall(SB)
++ RET
++
++TEXT ·RawSyscall(SB),NOSPLIT,$0-56
++ JMP syscall·RawSyscall(SB)
++
++TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
++ JMP syscall·RawSyscall6(SB)
++
++TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
++ MOV a1+8(FP), A0
++ MOV a2+16(FP), A1
++ MOV a3+24(FP), A2
++ MOV trap+0(FP), A7 // syscall entry
++ ECALL
++ MOV A0, r1+32(FP)
++ MOV A1, r2+40(FP)
++ RET
+diff --git a/vendor/golang.org/x/sys/unix/asm_linux_s390x.s b/vendor/golang.org/x/sys/unix/asm_linux_s390x.s
+index 11889859..a5a863c6 100644
+--- a/vendor/golang.org/x/sys/unix/asm_linux_s390x.s
++++ b/vendor/golang.org/x/sys/unix/asm_linux_s390x.s
+@@ -21,8 +21,36 @@ TEXT ·Syscall(SB),NOSPLIT,$0-56
+ TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ BR syscall·Syscall6(SB)
+
++TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
++ BL runtime·entersyscall(SB)
++ MOVD a1+8(FP), R2
++ MOVD a2+16(FP), R3
++ MOVD a3+24(FP), R4
++ MOVD $0, R5
++ MOVD $0, R6
++ MOVD $0, R7
++ MOVD trap+0(FP), R1 // syscall entry
++ SYSCALL
++ MOVD R2, r1+32(FP)
++ MOVD R3, r2+40(FP)
++ BL runtime·exitsyscall(SB)
++ RET
++
+ TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ BR syscall·RawSyscall(SB)
+
+ TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ BR syscall·RawSyscall6(SB)
++
++TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
++ MOVD a1+8(FP), R2
++ MOVD a2+16(FP), R3
++ MOVD a3+24(FP), R4
++ MOVD $0, R5
++ MOVD $0, R6
++ MOVD $0, R7
++ MOVD trap+0(FP), R1 // syscall entry
++ SYSCALL
++ MOVD R2, r1+32(FP)
++ MOVD R3, r2+40(FP)
++ RET
+diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s b/vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s
+similarity index 60%
+copy from vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
+copy to vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s
+index 724e580c..6f98ba5a 100644
+--- a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
++++ b/vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s
+@@ -1,28 +1,29 @@
+-// Copyright 2015 The Go Authors. All rights reserved.
++// Copyright 2019 The Go Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+
+-// +build linux
+-// +build mips64 mips64le
+ // +build !gccgo
+
+ #include "textflag.h"
+
+ //
+-// System calls for mips64, Linux
++// System call support for ARM64, NetBSD
+ //
+
+ // Just jump to package syscall's implementation for all these functions.
+ // The runtime may know about them.
+
+ TEXT ·Syscall(SB),NOSPLIT,$0-56
+- JMP syscall·Syscall(SB)
++ B syscall·Syscall(SB)
+
+ TEXT ·Syscall6(SB),NOSPLIT,$0-80
+- JMP syscall·Syscall6(SB)
++ B syscall·Syscall6(SB)
++
++TEXT ·Syscall9(SB),NOSPLIT,$0-104
++ B syscall·Syscall9(SB)
+
+ TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+- JMP syscall·RawSyscall(SB)
++ B syscall·RawSyscall(SB)
+
+ TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+- JMP syscall·RawSyscall6(SB)
++ B syscall·RawSyscall6(SB)
+diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s b/vendor/golang.org/x/sys/unix/asm_openbsd_arm64.s
+similarity index 76%
+copy from vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
+copy to vendor/golang.org/x/sys/unix/asm_openbsd_arm64.s
+index 724e580c..0cedea3d 100644
+--- a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
++++ b/vendor/golang.org/x/sys/unix/asm_openbsd_arm64.s
+@@ -1,15 +1,13 @@
+-// Copyright 2015 The Go Authors. All rights reserved.
++// Copyright 2019 The Go Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+
+-// +build linux
+-// +build mips64 mips64le
+ // +build !gccgo
+
+ #include "textflag.h"
+
+ //
+-// System calls for mips64, Linux
++// System call support for arm64, OpenBSD
+ //
+
+ // Just jump to package syscall's implementation for all these functions.
+@@ -21,6 +19,9 @@ TEXT ·Syscall(SB),NOSPLIT,$0-56
+ TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ JMP syscall·Syscall6(SB)
+
++TEXT ·Syscall9(SB),NOSPLIT,$0-104
++ JMP syscall·Syscall9(SB)
++
+ TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ JMP syscall·RawSyscall(SB)
+
+diff --git a/vendor/golang.org/x/sys/unix/bluetooth_linux.go b/vendor/golang.org/x/sys/unix/bluetooth_linux.go
+index 6e322969..a178a614 100644
+--- a/vendor/golang.org/x/sys/unix/bluetooth_linux.go
++++ b/vendor/golang.org/x/sys/unix/bluetooth_linux.go
+@@ -23,6 +23,7 @@ const (
+ HCI_CHANNEL_USER = 1
+ HCI_CHANNEL_MONITOR = 2
+ HCI_CHANNEL_CONTROL = 3
++ HCI_CHANNEL_LOGGING = 4
+ )
+
+ // Socketoption Level
+diff --git a/vendor/golang.org/x/sys/unix/cap_freebsd.go b/vendor/golang.org/x/sys/unix/cap_freebsd.go
+index 83b6bcea..df520487 100644
+--- a/vendor/golang.org/x/sys/unix/cap_freebsd.go
++++ b/vendor/golang.org/x/sys/unix/cap_freebsd.go
+@@ -7,7 +7,7 @@
+ package unix
+
+ import (
+- errorspkg "errors"
++ "errors"
+ "fmt"
+ )
+
+@@ -60,26 +60,26 @@ func CapRightsSet(rights *CapRights, setrights []uint64) error {
+
+ n := caparsize(rights)
+ if n < capArSizeMin || n > capArSizeMax {
+- return errorspkg.New("bad rights size")
++ return errors.New("bad rights size")
+ }
+
+ for _, right := range setrights {
+ if caprver(right) != CAP_RIGHTS_VERSION_00 {
+- return errorspkg.New("bad right version")
++ return errors.New("bad right version")
+ }
+ i, err := rightToIndex(right)
+ if err != nil {
+ return err
+ }
+ if i >= n {
+- return errorspkg.New("index overflow")
++ return errors.New("index overflow")
+ }
+ if capidxbit(rights.Rights[i]) != capidxbit(right) {
+- return errorspkg.New("index mismatch")
++ return errors.New("index mismatch")
+ }
+ rights.Rights[i] |= right
+ if capidxbit(rights.Rights[i]) != capidxbit(right) {
+- return errorspkg.New("index mismatch (after assign)")
++ return errors.New("index mismatch (after assign)")
+ }
+ }
+
+@@ -95,26 +95,26 @@ func CapRightsClear(rights *CapRights, clearrights []uint64) error {
+
+ n := caparsize(rights)
+ if n < capArSizeMin || n > capArSizeMax {
+- return errorspkg.New("bad rights size")
++ return errors.New("bad rights size")
+ }
+
+ for _, right := range clearrights {
+ if caprver(right) != CAP_RIGHTS_VERSION_00 {
+- return errorspkg.New("bad right version")
++ return errors.New("bad right version")
+ }
+ i, err := rightToIndex(right)
+ if err != nil {
+ return err
+ }
+ if i >= n {
+- return errorspkg.New("index overflow")
++ return errors.New("index overflow")
+ }
+ if capidxbit(rights.Rights[i]) != capidxbit(right) {
+- return errorspkg.New("index mismatch")
++ return errors.New("index mismatch")
+ }
+ rights.Rights[i] &= ^(right & 0x01FFFFFFFFFFFFFF)
+ if capidxbit(rights.Rights[i]) != capidxbit(right) {
+- return errorspkg.New("index mismatch (after assign)")
++ return errors.New("index mismatch (after assign)")
+ }
+ }
+
+@@ -130,22 +130,22 @@ func CapRightsIsSet(rights *CapRights, setrights []uint64) (bool, error) {
+
+ n := caparsize(rights)
+ if n < capArSizeMin || n > capArSizeMax {
+- return false, errorspkg.New("bad rights size")
++ return false, errors.New("bad rights size")
+ }
+
+ for _, right := range setrights {
+ if caprver(right) != CAP_RIGHTS_VERSION_00 {
+- return false, errorspkg.New("bad right version")
++ return false, errors.New("bad right version")
+ }
+ i, err := rightToIndex(right)
+ if err != nil {
+ return false, err
+ }
+ if i >= n {
+- return false, errorspkg.New("index overflow")
++ return false, errors.New("index overflow")
+ }
+ if capidxbit(rights.Rights[i]) != capidxbit(right) {
+- return false, errorspkg.New("index mismatch")
++ return false, errors.New("index mismatch")
+ }
+ if (rights.Rights[i] & right) != right {
+ return false, nil
+diff --git a/vendor/golang.org/x/sys/unix/constants.go b/vendor/golang.org/x/sys/unix/constants.go
+index a96f0ebc..3a6ac648 100644
+--- a/vendor/golang.org/x/sys/unix/constants.go
++++ b/vendor/golang.org/x/sys/unix/constants.go
+@@ -2,7 +2,7 @@
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+
+-// +build darwin dragonfly freebsd linux netbsd openbsd solaris
++// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
+
+ package unix
+
+diff --git a/vendor/golang.org/x/sys/unix/dev_aix_ppc.go b/vendor/golang.org/x/sys/unix/dev_aix_ppc.go
+new file mode 100644
+index 00000000..5e5fb451
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/dev_aix_ppc.go
+@@ -0,0 +1,27 @@
++// Copyright 2018 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build aix
++// +build ppc
++
++// Functions to access/create device major and minor numbers matching the
++// encoding used by AIX.
++
++package unix
++
++// Major returns the major component of a Linux device number.
++func Major(dev uint64) uint32 {
++ return uint32((dev >> 16) & 0xffff)
++}
++
++// Minor returns the minor component of a Linux device number.
++func Minor(dev uint64) uint32 {
++ return uint32(dev & 0xffff)
++}
++
++// Mkdev returns a Linux device number generated from the given major and minor
++// components.
++func Mkdev(major, minor uint32) uint64 {
++ return uint64(((major) << 16) | (minor))
++}
+diff --git a/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go b/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go
+new file mode 100644
+index 00000000..8b401244
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go
+@@ -0,0 +1,29 @@
++// Copyright 2018 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build aix
++// +build ppc64
++
++// Functions to access/create device major and minor numbers matching the
++// encoding used AIX.
++
++package unix
++
++// Major returns the major component of a Linux device number.
++func Major(dev uint64) uint32 {
++ return uint32((dev & 0x3fffffff00000000) >> 32)
++}
++
++// Minor returns the minor component of a Linux device number.
++func Minor(dev uint64) uint32 {
++ return uint32((dev & 0x00000000ffffffff) >> 0)
++}
++
++// Mkdev returns a Linux device number generated from the given major and minor
++// components.
++func Mkdev(major, minor uint32) uint64 {
++ var DEVNO64 uint64
++ DEVNO64 = 0x8000000000000000
++ return ((uint64(major) << 32) | (uint64(minor) & 0x00000000FFFFFFFF) | DEVNO64)
++}
+diff --git a/vendor/golang.org/x/sys/unix/dev_darwin.go b/vendor/golang.org/x/sys/unix/dev_darwin.go
+new file mode 100644
+index 00000000..8d1dc0fa
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/dev_darwin.go
+@@ -0,0 +1,24 @@
++// Copyright 2017 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// Functions to access/create device major and minor numbers matching the
++// encoding used in Darwin's sys/types.h header.
++
++package unix
++
++// Major returns the major component of a Darwin device number.
++func Major(dev uint64) uint32 {
++ return uint32((dev >> 24) & 0xff)
++}
++
++// Minor returns the minor component of a Darwin device number.
++func Minor(dev uint64) uint32 {
++ return uint32(dev & 0xffffff)
++}
++
++// Mkdev returns a Darwin device number generated from the given major and minor
++// components.
++func Mkdev(major, minor uint32) uint64 {
++ return (uint64(major) << 24) | uint64(minor)
++}
+diff --git a/vendor/golang.org/x/sys/unix/dev_dragonfly.go b/vendor/golang.org/x/sys/unix/dev_dragonfly.go
+new file mode 100644
+index 00000000..8502f202
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/dev_dragonfly.go
+@@ -0,0 +1,30 @@
++// Copyright 2017 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// Functions to access/create device major and minor numbers matching the
++// encoding used in Dragonfly's sys/types.h header.
++//
++// The information below is extracted and adapted from sys/types.h:
++//
++// Minor gives a cookie instead of an index since in order to avoid changing the
++// meanings of bits 0-15 or wasting time and space shifting bits 16-31 for
++// devices that don't use them.
++
++package unix
++
++// Major returns the major component of a DragonFlyBSD device number.
++func Major(dev uint64) uint32 {
++ return uint32((dev >> 8) & 0xff)
++}
++
++// Minor returns the minor component of a DragonFlyBSD device number.
++func Minor(dev uint64) uint32 {
++ return uint32(dev & 0xffff00ff)
++}
++
++// Mkdev returns a DragonFlyBSD device number generated from the given major and
++// minor components.
++func Mkdev(major, minor uint32) uint64 {
++ return (uint64(major) << 8) | uint64(minor)
++}
+diff --git a/vendor/golang.org/x/sys/unix/dev_freebsd.go b/vendor/golang.org/x/sys/unix/dev_freebsd.go
+new file mode 100644
+index 00000000..eba3b4bd
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/dev_freebsd.go
+@@ -0,0 +1,30 @@
++// Copyright 2017 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// Functions to access/create device major and minor numbers matching the
++// encoding used in FreeBSD's sys/types.h header.
++//
++// The information below is extracted and adapted from sys/types.h:
++//
++// Minor gives a cookie instead of an index since in order to avoid changing the
++// meanings of bits 0-15 or wasting time and space shifting bits 16-31 for
++// devices that don't use them.
++
++package unix
++
++// Major returns the major component of a FreeBSD device number.
++func Major(dev uint64) uint32 {
++ return uint32((dev >> 8) & 0xff)
++}
++
++// Minor returns the minor component of a FreeBSD device number.
++func Minor(dev uint64) uint32 {
++ return uint32(dev & 0xffff00ff)
++}
++
++// Mkdev returns a FreeBSD device number generated from the given major and
++// minor components.
++func Mkdev(major, minor uint32) uint64 {
++ return (uint64(major) << 8) | uint64(minor)
++}
+diff --git a/vendor/golang.org/x/sys/unix/dev_linux.go b/vendor/golang.org/x/sys/unix/dev_linux.go
+index c902c39e..d165d6f3 100644
+--- a/vendor/golang.org/x/sys/unix/dev_linux.go
++++ b/vendor/golang.org/x/sys/unix/dev_linux.go
+@@ -34,9 +34,9 @@ func Minor(dev uint64) uint32 {
+ // Mkdev returns a Linux device number generated from the given major and minor
+ // components.
+ func Mkdev(major, minor uint32) uint64 {
+- dev := uint64((major & 0x00000fff) << 8)
+- dev |= uint64((major & 0xfffff000) << 32)
+- dev |= uint64((minor & 0x000000ff) << 0)
+- dev |= uint64((minor & 0xffffff00) << 12)
++ dev := (uint64(major) & 0x00000fff) << 8
++ dev |= (uint64(major) & 0xfffff000) << 32
++ dev |= (uint64(minor) & 0x000000ff) << 0
++ dev |= (uint64(minor) & 0xffffff00) << 12
+ return dev
+ }
+diff --git a/vendor/golang.org/x/sys/unix/dev_netbsd.go b/vendor/golang.org/x/sys/unix/dev_netbsd.go
+new file mode 100644
+index 00000000..b4a203d0
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/dev_netbsd.go
+@@ -0,0 +1,29 @@
++// Copyright 2017 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// Functions to access/create device major and minor numbers matching the
++// encoding used in NetBSD's sys/types.h header.
++
++package unix
++
++// Major returns the major component of a NetBSD device number.
++func Major(dev uint64) uint32 {
++ return uint32((dev & 0x000fff00) >> 8)
++}
++
++// Minor returns the minor component of a NetBSD device number.
++func Minor(dev uint64) uint32 {
++ minor := uint32((dev & 0x000000ff) >> 0)
++ minor |= uint32((dev & 0xfff00000) >> 12)
++ return minor
++}
++
++// Mkdev returns a NetBSD device number generated from the given major and minor
++// components.
++func Mkdev(major, minor uint32) uint64 {
++ dev := (uint64(major) << 8) & 0x000fff00
++ dev |= (uint64(minor) << 12) & 0xfff00000
++ dev |= (uint64(minor) << 0) & 0x000000ff
++ return dev
++}
+diff --git a/vendor/golang.org/x/sys/unix/dev_openbsd.go b/vendor/golang.org/x/sys/unix/dev_openbsd.go
+new file mode 100644
+index 00000000..f3430c42
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/dev_openbsd.go
+@@ -0,0 +1,29 @@
++// Copyright 2017 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// Functions to access/create device major and minor numbers matching the
++// encoding used in OpenBSD's sys/types.h header.
++
++package unix
++
++// Major returns the major component of an OpenBSD device number.
++func Major(dev uint64) uint32 {
++ return uint32((dev & 0x0000ff00) >> 8)
++}
++
++// Minor returns the minor component of an OpenBSD device number.
++func Minor(dev uint64) uint32 {
++ minor := uint32((dev & 0x000000ff) >> 0)
++ minor |= uint32((dev & 0xffff0000) >> 8)
++ return minor
++}
++
++// Mkdev returns an OpenBSD device number generated from the given major and minor
++// components.
++func Mkdev(major, minor uint32) uint64 {
++ dev := (uint64(major) << 8) & 0x0000ff00
++ dev |= (uint64(minor) << 8) & 0xffff0000
++ dev |= (uint64(minor) << 0) & 0x000000ff
++ return dev
++}
+diff --git a/vendor/golang.org/x/sys/unix/dirent.go b/vendor/golang.org/x/sys/unix/dirent.go
+index bd475812..304016b6 100644
+--- a/vendor/golang.org/x/sys/unix/dirent.go
++++ b/vendor/golang.org/x/sys/unix/dirent.go
+@@ -2,7 +2,7 @@
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+
+-// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris
++// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
+
+ package unix
+
+diff --git a/vendor/golang.org/x/sys/unix/endian_little.go b/vendor/golang.org/x/sys/unix/endian_little.go
+index 085df2d8..bcdb5d30 100644
+--- a/vendor/golang.org/x/sys/unix/endian_little.go
++++ b/vendor/golang.org/x/sys/unix/endian_little.go
+@@ -2,7 +2,7 @@
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+ //
+-// +build 386 amd64 amd64p32 arm arm64 ppc64le mipsle mips64le
++// +build 386 amd64 amd64p32 arm arm64 ppc64le mipsle mips64le riscv64
+
+ package unix
+
+diff --git a/vendor/golang.org/x/sys/unix/env_unix.go b/vendor/golang.org/x/sys/unix/env_unix.go
+index 45e281a0..84178b0a 100644
+--- a/vendor/golang.org/x/sys/unix/env_unix.go
++++ b/vendor/golang.org/x/sys/unix/env_unix.go
+@@ -1,8 +1,8 @@
+-// Copyright 2010 The Go Authors. All rights reserved.
++// Copyright 2010 The Go Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+
+-// +build darwin dragonfly freebsd linux netbsd openbsd solaris
++// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
+
+ // Unix environment variables.
+
+@@ -25,3 +25,7 @@ func Clearenv() {
+ func Environ() []string {
+ return syscall.Environ()
+ }
++
++func Unsetenv(key string) error {
++ return syscall.Unsetenv(key)
++}
+diff --git a/vendor/golang.org/x/sys/unix/env_unset.go b/vendor/golang.org/x/sys/unix/env_unset.go
+deleted file mode 100644
+index 92222625..00000000
+--- a/vendor/golang.org/x/sys/unix/env_unset.go
++++ /dev/null
+@@ -1,14 +0,0 @@
+-// Copyright 2014 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build go1.4
+-
+-package unix
+-
+-import "syscall"
+-
+-func Unsetenv(key string) error {
+- // This was added in Go 1.4.
+- return syscall.Unsetenv(key)
+-}
+diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_386.go b/vendor/golang.org/x/sys/unix/errors_freebsd_386.go
+index c56bc8b0..761db66e 100644
+--- a/vendor/golang.org/x/sys/unix/errors_freebsd_386.go
++++ b/vendor/golang.org/x/sys/unix/errors_freebsd_386.go
+@@ -8,6 +8,7 @@
+ package unix
+
+ const (
++ DLT_HHDLC = 0x79
+ IFF_SMART = 0x20
+ IFT_1822 = 0x2
+ IFT_A12MPPSWITCH = 0x82
+@@ -210,13 +211,18 @@ const (
+ IFT_XETHER = 0x1a
+ IPPROTO_MAXID = 0x34
+ IPV6_FAITH = 0x1d
++ IPV6_MIN_MEMBERSHIPS = 0x1f
+ IP_FAITH = 0x16
++ IP_MAX_SOURCE_FILTER = 0x400
++ IP_MIN_MEMBERSHIPS = 0x1f
+ MAP_NORESERVE = 0x40
+ MAP_RENAME = 0x20
+ NET_RT_MAXID = 0x6
+ RTF_PRCLONING = 0x10000
+ RTM_OLDADD = 0x9
+ RTM_OLDDEL = 0xa
++ RT_CACHING_CONTEXT = 0x1
++ RT_NORTREF = 0x2
+ SIOCADDRT = 0x8030720a
+ SIOCALIFADDR = 0x8118691b
+ SIOCDELRT = 0x8030720b
+diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go
+index 3e977117..070f44b6 100644
+--- a/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go
+@@ -8,6 +8,7 @@
+ package unix
+
+ const (
++ DLT_HHDLC = 0x79
+ IFF_SMART = 0x20
+ IFT_1822 = 0x2
+ IFT_A12MPPSWITCH = 0x82
+@@ -210,13 +211,18 @@ const (
+ IFT_XETHER = 0x1a
+ IPPROTO_MAXID = 0x34
+ IPV6_FAITH = 0x1d
++ IPV6_MIN_MEMBERSHIPS = 0x1f
+ IP_FAITH = 0x16
++ IP_MAX_SOURCE_FILTER = 0x400
++ IP_MIN_MEMBERSHIPS = 0x1f
+ MAP_NORESERVE = 0x40
+ MAP_RENAME = 0x20
+ NET_RT_MAXID = 0x6
+ RTF_PRCLONING = 0x10000
+ RTM_OLDADD = 0x9
+ RTM_OLDDEL = 0xa
++ RT_CACHING_CONTEXT = 0x1
++ RT_NORTREF = 0x2
+ SIOCADDRT = 0x8040720a
+ SIOCALIFADDR = 0x8118691b
+ SIOCDELRT = 0x8040720b
+diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go
+new file mode 100644
+index 00000000..946dcf3f
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go
+@@ -0,0 +1,17 @@
++// Copyright 2020 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// Constants that were deprecated or moved to enums in the FreeBSD headers. Keep
++// them here for backwards compatibility.
++
++package unix
++
++const (
++ DLT_HHDLC = 0x79
++ IPV6_MIN_MEMBERSHIPS = 0x1f
++ IP_MAX_SOURCE_FILTER = 0x400
++ IP_MIN_MEMBERSHIPS = 0x1f
++ RT_CACHING_CONTEXT = 0x1
++ RT_NORTREF = 0x2
++)
+diff --git a/vendor/golang.org/x/sys/unix/flock.go b/vendor/golang.org/x/sys/unix/fcntl.go
+similarity index 54%
+rename from vendor/golang.org/x/sys/unix/flock.go
+rename to vendor/golang.org/x/sys/unix/fcntl.go
+index 2994ce75..4dc53486 100644
+--- a/vendor/golang.org/x/sys/unix/flock.go
++++ b/vendor/golang.org/x/sys/unix/fcntl.go
+@@ -2,16 +2,30 @@
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+
+-// +build darwin dragonfly freebsd linux netbsd openbsd
++// +build dragonfly freebsd linux netbsd openbsd
+
+ package unix
+
+ import "unsafe"
+
+ // fcntl64Syscall is usually SYS_FCNTL, but is overridden on 32-bit Linux
+-// systems by flock_linux_32bit.go to be SYS_FCNTL64.
++// systems by fcntl_linux_32bit.go to be SYS_FCNTL64.
+ var fcntl64Syscall uintptr = SYS_FCNTL
+
++func fcntl(fd int, cmd, arg int) (int, error) {
++ valptr, _, errno := Syscall(fcntl64Syscall, uintptr(fd), uintptr(cmd), uintptr(arg))
++ var err error
++ if errno != 0 {
++ err = errno
++ }
++ return int(valptr), err
++}
++
++// FcntlInt performs a fcntl syscall on fd with the provided command and argument.
++func FcntlInt(fd uintptr, cmd, arg int) (int, error) {
++ return fcntl(int(fd), cmd, arg)
++}
++
+ // FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.
+ func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {
+ _, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(unsafe.Pointer(lk)))
+diff --git a/vendor/golang.org/x/sys/unix/fcntl_darwin.go b/vendor/golang.org/x/sys/unix/fcntl_darwin.go
+new file mode 100644
+index 00000000..5868a4a4
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/fcntl_darwin.go
+@@ -0,0 +1,18 @@
++// Copyright 2019 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++package unix
++
++import "unsafe"
++
++// FcntlInt performs a fcntl syscall on fd with the provided command and argument.
++func FcntlInt(fd uintptr, cmd, arg int) (int, error) {
++ return fcntl(int(fd), cmd, arg)
++}
++
++// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.
++func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {
++ _, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(lk))))
++ return err
++}
+diff --git a/vendor/golang.org/x/sys/unix/flock_linux_32bit.go b/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go
+similarity index 100%
+rename from vendor/golang.org/x/sys/unix/flock_linux_32bit.go
+rename to vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go
+diff --git a/vendor/golang.org/x/sys/unix/fdset.go b/vendor/golang.org/x/sys/unix/fdset.go
+new file mode 100644
+index 00000000..b27be0a0
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/fdset.go
+@@ -0,0 +1,29 @@
++// Copyright 2019 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
++
++package unix
++
++// Set adds fd to the set fds.
++func (fds *FdSet) Set(fd int) {
++ fds.Bits[fd/NFDBITS] |= (1 << (uintptr(fd) % NFDBITS))
++}
++
++// Clear removes fd from the set fds.
++func (fds *FdSet) Clear(fd int) {
++ fds.Bits[fd/NFDBITS] &^= (1 << (uintptr(fd) % NFDBITS))
++}
++
++// IsSet returns whether fd is in the set fds.
++func (fds *FdSet) IsSet(fd int) bool {
++ return fds.Bits[fd/NFDBITS]&(1<<(uintptr(fd)%NFDBITS)) != 0
++}
++
++// Zero clears the set fds.
++func (fds *FdSet) Zero() {
++ for i := range fds.Bits {
++ fds.Bits[i] = 0
++ }
++}
+diff --git a/vendor/golang.org/x/sys/unix/file_unix.go b/vendor/golang.org/x/sys/unix/file_unix.go
+deleted file mode 100644
+index 47f6a83f..00000000
+--- a/vendor/golang.org/x/sys/unix/file_unix.go
++++ /dev/null
+@@ -1,27 +0,0 @@
+-// Copyright 2017 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-package unix
+-
+-import (
+- "os"
+- "syscall"
+-)
+-
+-// FIXME: unexported function from os
+-// syscallMode returns the syscall-specific mode bits from Go's portable mode bits.
+-func syscallMode(i os.FileMode) (o uint32) {
+- o |= uint32(i.Perm())
+- if i&os.ModeSetuid != 0 {
+- o |= syscall.S_ISUID
+- }
+- if i&os.ModeSetgid != 0 {
+- o |= syscall.S_ISGID
+- }
+- if i&os.ModeSticky != 0 {
+- o |= syscall.S_ISVTX
+- }
+- // No mapping for Go's ModeTemporary (plan9 only).
+- return
+-}
+diff --git a/vendor/golang.org/x/sys/unix/gccgo.go b/vendor/golang.org/x/sys/unix/gccgo.go
+index 94c82321..cd6f5a61 100644
+--- a/vendor/golang.org/x/sys/unix/gccgo.go
++++ b/vendor/golang.org/x/sys/unix/gccgo.go
+@@ -1,19 +1,30 @@
+-// Copyright 2015 The Go Authors. All rights reserved.
++// Copyright 2015 The Go Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+
+ // +build gccgo
++// +build !aix
+
+ package unix
+
+ import "syscall"
+
+-// We can't use the gc-syntax .s files for gccgo. On the plus side
++// We can't use the gc-syntax .s files for gccgo. On the plus side
+ // much of the functionality can be written directly in Go.
+
++//extern gccgoRealSyscallNoError
++func realSyscallNoError(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r uintptr)
++
+ //extern gccgoRealSyscall
+ func realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r, errno uintptr)
+
++func SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) {
++ syscall.Entersyscall()
++ r := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)
++ syscall.Exitsyscall()
++ return r, 0
++}
++
+ func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {
+ syscall.Entersyscall()
+ r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)
+@@ -35,6 +46,11 @@ func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr,
+ return r, 0, syscall.Errno(errno)
+ }
+
++func RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) {
++ r := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)
++ return r, 0
++}
++
+ func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {
+ r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)
+ return r, 0, syscall.Errno(errno)
+diff --git a/vendor/golang.org/x/sys/unix/gccgo_c.c b/vendor/golang.org/x/sys/unix/gccgo_c.c
+index 07f6be03..c44730c5 100644
+--- a/vendor/golang.org/x/sys/unix/gccgo_c.c
++++ b/vendor/golang.org/x/sys/unix/gccgo_c.c
+@@ -1,8 +1,9 @@
+-// Copyright 2015 The Go Authors. All rights reserved.
++// Copyright 2015 The Go Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+
+ // +build gccgo
++// +build !aix
+
+ #include <errno.h>
+ #include <stdint.h>
+@@ -31,11 +32,8 @@ gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintp
+ return r;
+ }
+
+-// Define the use function in C so that it is not inlined.
+-
+-extern void use(void *) __asm__ (GOSYM_PREFIX GOPKGPATH ".use") __attribute__((noinline));
+-
+-void
+-use(void *p __attribute__ ((unused)))
++uintptr_t
++gccgoRealSyscallNoError(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9)
+ {
++ return syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9);
+ }
+diff --git a/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go b/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go
+index bffe1a77..251a977a 100644
+--- a/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go
++++ b/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go
+@@ -1,4 +1,4 @@
+-// Copyright 2015 The Go Authors. All rights reserved.
++// Copyright 2015 The Go Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+
+diff --git a/vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go b/vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go
+deleted file mode 100644
+index 56332692..00000000
+--- a/vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go
++++ /dev/null
+@@ -1,20 +0,0 @@
+-// Copyright 2016 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build gccgo,linux,sparc64
+-
+-package unix
+-
+-import "syscall"
+-
+-//extern sysconf
+-func realSysconf(name int) int64
+-
+-func sysconf(name int) (n int64, err syscall.Errno) {
+- r := realSysconf(name)
+- if r < 0 {
+- return 0, syscall.GetErrno()
+- }
+- return r, 0
+-}
+diff --git a/vendor/golang.org/x/sys/unix/ioctl.go b/vendor/golang.org/x/sys/unix/ioctl.go
+new file mode 100644
+index 00000000..3559e5dc
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/ioctl.go
+@@ -0,0 +1,65 @@
++// Copyright 2018 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
++
++package unix
++
++import (
++ "runtime"
++ "unsafe"
++)
++
++// ioctl itself should not be exposed directly, but additional get/set
++// functions for specific types are permissible.
++
++// IoctlSetInt performs an ioctl operation which sets an integer value
++// on fd, using the specified request number.
++func IoctlSetInt(fd int, req uint, value int) error {
++ return ioctl(fd, req, uintptr(value))
++}
++
++// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument.
++//
++// To change fd's window size, the req argument should be TIOCSWINSZ.
++func IoctlSetWinsize(fd int, req uint, value *Winsize) error {
++ // TODO: if we get the chance, remove the req parameter and
++ // hardcode TIOCSWINSZ.
++ err := ioctl(fd, req, uintptr(unsafe.Pointer(value)))
++ runtime.KeepAlive(value)
++ return err
++}
++
++// IoctlSetTermios performs an ioctl on fd with a *Termios.
++//
++// The req value will usually be TCSETA or TIOCSETA.
++func IoctlSetTermios(fd int, req uint, value *Termios) error {
++ // TODO: if we get the chance, remove the req parameter.
++ err := ioctl(fd, req, uintptr(unsafe.Pointer(value)))
++ runtime.KeepAlive(value)
++ return err
++}
++
++// IoctlGetInt performs an ioctl operation which gets an integer value
++// from fd, using the specified request number.
++//
++// A few ioctl requests use the return value as an output parameter;
++// for those, IoctlRetInt should be used instead of this function.
++func IoctlGetInt(fd int, req uint) (int, error) {
++ var value int
++ err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
++ return value, err
++}
++
++func IoctlGetWinsize(fd int, req uint) (*Winsize, error) {
++ var value Winsize
++ err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
++ return &value, err
++}
++
++func IoctlGetTermios(fd int, req uint) (*Termios, error) {
++ var value Termios
++ err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
++ return &value, err
++}
+diff --git a/vendor/golang.org/x/sys/unix/mkasm_darwin.go b/vendor/golang.org/x/sys/unix/mkasm_darwin.go
+new file mode 100644
+index 00000000..6f7bb6ed
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/mkasm_darwin.go
+@@ -0,0 +1,78 @@
++// Copyright 2018 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build ignore
++
++// mkasm_darwin.go generates assembly trampolines to call libSystem routines from Go.
++//This program must be run after mksyscall.go.
++package main
++
++import (
++ "bytes"
++ "fmt"
++ "io/ioutil"
++ "log"
++ "os"
++ "strings"
++)
++
++func writeASMFile(in string, fileName string, buildTags string) {
++ trampolines := map[string]bool{}
++
++ var out bytes.Buffer
++
++ fmt.Fprintf(&out, "// go run mkasm_darwin.go %s\n", strings.Join(os.Args[1:], " "))
++ fmt.Fprintf(&out, "// Code generated by the command above; DO NOT EDIT.\n")
++ fmt.Fprintf(&out, "\n")
++ fmt.Fprintf(&out, "// +build %s\n", buildTags)
++ fmt.Fprintf(&out, "\n")
++ fmt.Fprintf(&out, "#include \"textflag.h\"\n")
++ for _, line := range strings.Split(in, "\n") {
++ if !strings.HasPrefix(line, "func ") || !strings.HasSuffix(line, "_trampoline()") {
++ continue
++ }
++ fn := line[5 : len(line)-13]
++ if !trampolines[fn] {
++ trampolines[fn] = true
++ fmt.Fprintf(&out, "TEXT ·%s_trampoline(SB),NOSPLIT,$0-0\n", fn)
++ fmt.Fprintf(&out, "\tJMP\t%s(SB)\n", fn)
++ }
++ }
++ err := ioutil.WriteFile(fileName, out.Bytes(), 0644)
++ if err != nil {
++ log.Fatalf("can't write %s: %s", fileName, err)
++ }
++}
++
++func main() {
++ in1, err := ioutil.ReadFile("syscall_darwin.go")
++ if err != nil {
++ log.Fatalf("can't open syscall_darwin.go: %s", err)
++ }
++ arch := os.Args[1]
++ in2, err := ioutil.ReadFile(fmt.Sprintf("syscall_darwin_%s.go", arch))
++ if err != nil {
++ log.Fatalf("can't open syscall_darwin_%s.go: %s", arch, err)
++ }
++ in3, err := ioutil.ReadFile(fmt.Sprintf("zsyscall_darwin_%s.go", arch))
++ if err != nil {
++ log.Fatalf("can't open zsyscall_darwin_%s.go: %s", arch, err)
++ }
++ in := string(in1) + string(in2) + string(in3)
++
++ writeASMFile(in, fmt.Sprintf("zsyscall_darwin_%s.s", arch), "go1.12")
++
++ in1, err = ioutil.ReadFile("syscall_darwin.1_13.go")
++ if err != nil {
++ log.Fatalf("can't open syscall_darwin.1_13.go: %s", err)
++ }
++ in2, err = ioutil.ReadFile(fmt.Sprintf("zsyscall_darwin_%s.1_13.go", arch))
++ if err != nil {
++ log.Fatalf("can't open zsyscall_darwin_%s.1_13.go: %s", arch, err)
++ }
++
++ in = string(in1) + string(in2)
++
++ writeASMFile(in, fmt.Sprintf("zsyscall_darwin_%s.1_13.s", arch), "go1.13")
++}
+diff --git a/vendor/golang.org/x/sys/unix/mkmerge.go b/vendor/golang.org/x/sys/unix/mkmerge.go
+new file mode 100644
+index 00000000..8bde4501
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/mkmerge.go
+@@ -0,0 +1,521 @@
++// Copyright 2020 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build ignore
++
++// mkmerge.go parses generated source files and merges common
++// consts, funcs, and types into a common source file, per GOOS.
++//
++// Usage:
++// $ go run mkmerge.go -out MERGED FILE [FILE ...]
++//
++// Example:
++// # Remove all common consts, funcs, and types from zerrors_linux_*.go
++// # and write the common code into zerrors_linux.go
++// $ go run mkmerge.go -out zerrors_linux.go zerrors_linux_*.go
++//
++// mkmerge.go performs the merge in the following steps:
++// 1. Construct the set of common code that is idential in all
++// architecture-specific files.
++// 2. Write this common code to the merged file.
++// 3. Remove the common code from all architecture-specific files.
++package main
++
++import (
++ "bufio"
++ "bytes"
++ "flag"
++ "fmt"
++ "go/ast"
++ "go/format"
++ "go/parser"
++ "go/token"
++ "io"
++ "io/ioutil"
++ "log"
++ "os"
++ "path"
++ "path/filepath"
++ "regexp"
++ "strconv"
++ "strings"
++)
++
++const validGOOS = "aix|darwin|dragonfly|freebsd|linux|netbsd|openbsd|solaris"
++
++// getValidGOOS returns GOOS, true if filename ends with a valid "_GOOS.go"
++func getValidGOOS(filename string) (string, bool) {
++ matches := regexp.MustCompile(`_(` + validGOOS + `)\.go$`).FindStringSubmatch(filename)
++ if len(matches) != 2 {
++ return "", false
++ }
++ return matches[1], true
++}
++
++// codeElem represents an ast.Decl in a comparable way.
++type codeElem struct {
++ tok token.Token // e.g. token.CONST, token.TYPE, or token.FUNC
++ src string // the declaration formatted as source code
++}
++
++// newCodeElem returns a codeElem based on tok and node, or an error is returned.
++func newCodeElem(tok token.Token, node ast.Node) (codeElem, error) {
++ var b strings.Builder
++ err := format.Node(&b, token.NewFileSet(), node)
++ if err != nil {
++ return codeElem{}, err
++ }
++ return codeElem{tok, b.String()}, nil
++}
++
++// codeSet is a set of codeElems
++type codeSet struct {
++ set map[codeElem]bool // true for all codeElems in the set
++}
++
++// newCodeSet returns a new codeSet
++func newCodeSet() *codeSet { return &codeSet{make(map[codeElem]bool)} }
++
++// add adds elem to c
++func (c *codeSet) add(elem codeElem) { c.set[elem] = true }
++
++// has returns true if elem is in c
++func (c *codeSet) has(elem codeElem) bool { return c.set[elem] }
++
++// isEmpty returns true if the set is empty
++func (c *codeSet) isEmpty() bool { return len(c.set) == 0 }
++
++// intersection returns a new set which is the intersection of c and a
++func (c *codeSet) intersection(a *codeSet) *codeSet {
++ res := newCodeSet()
++
++ for elem := range c.set {
++ if a.has(elem) {
++ res.add(elem)
++ }
++ }
++ return res
++}
++
++// keepCommon is a filterFn for filtering the merged file with common declarations.
++func (c *codeSet) keepCommon(elem codeElem) bool {
++ switch elem.tok {
++ case token.VAR:
++ // Remove all vars from the merged file
++ return false
++ case token.CONST, token.TYPE, token.FUNC, token.COMMENT:
++ // Remove arch-specific consts, types, functions, and file-level comments from the merged file
++ return c.has(elem)
++ case token.IMPORT:
++ // Keep imports, they are handled by filterImports
++ return true
++ }
++
++ log.Fatalf("keepCommon: invalid elem %v", elem)
++ return true
++}
++
++// keepArchSpecific is a filterFn for filtering the GOARC-specific files.
++func (c *codeSet) keepArchSpecific(elem codeElem) bool {
++ switch elem.tok {
++ case token.CONST, token.TYPE, token.FUNC:
++ // Remove common consts, types, or functions from the arch-specific file
++ return !c.has(elem)
++ }
++ return true
++}
++
++// srcFile represents a source file
++type srcFile struct {
++ name string
++ src []byte
++}
++
++// filterFn is a helper for filter
++type filterFn func(codeElem) bool
++
++// filter parses and filters Go source code from src, removing top
++// level declarations using keep as predicate.
++// For src parameter, please see docs for parser.ParseFile.
++func filter(src interface{}, keep filterFn) ([]byte, error) {
++ // Parse the src into an ast
++ fset := token.NewFileSet()
++ f, err := parser.ParseFile(fset, "", src, parser.ParseComments)
++ if err != nil {
++ return nil, err
++ }
++ cmap := ast.NewCommentMap(fset, f, f.Comments)
++
++ // Group const/type specs on adjacent lines
++ var groups specGroups = make(map[string]int)
++ var groupID int
++
++ decls := f.Decls
++ f.Decls = f.Decls[:0]
++ for _, decl := range decls {
++ switch decl := decl.(type) {
++ case *ast.GenDecl:
++ // Filter imports, consts, types, vars
++ specs := decl.Specs
++ decl.Specs = decl.Specs[:0]
++ for i, spec := range specs {
++ elem, err := newCodeElem(decl.Tok, spec)
++ if err != nil {
++ return nil, err
++ }
++
++ // Create new group if there are empty lines between this and the previous spec
++ if i > 0 && fset.Position(specs[i-1].End()).Line < fset.Position(spec.Pos()).Line-1 {
++ groupID++
++ }
++
++ // Check if we should keep this spec
++ if keep(elem) {
++ decl.Specs = append(decl.Specs, spec)
++ groups.add(elem.src, groupID)
++ }
++ }
++ // Check if we should keep this decl
++ if len(decl.Specs) > 0 {
++ f.Decls = append(f.Decls, decl)
++ }
++ case *ast.FuncDecl:
++ // Filter funcs
++ elem, err := newCodeElem(token.FUNC, decl)
++ if err != nil {
++ return nil, err
++ }
++ if keep(elem) {
++ f.Decls = append(f.Decls, decl)
++ }
++ }
++ }
++
++ // Filter file level comments
++ if cmap[f] != nil {
++ commentGroups := cmap[f]
++ cmap[f] = cmap[f][:0]
++ for _, cGrp := range commentGroups {
++ if keep(codeElem{token.COMMENT, cGrp.Text()}) {
++ cmap[f] = append(cmap[f], cGrp)
++ }
++ }
++ }
++ f.Comments = cmap.Filter(f).Comments()
++
++ // Generate code for the filtered ast
++ var buf bytes.Buffer
++ if err = format.Node(&buf, fset, f); err != nil {
++ return nil, err
++ }
++
++ groupedSrc, err := groups.filterEmptyLines(&buf)
++ if err != nil {
++ return nil, err
++ }
++
++ return filterImports(groupedSrc)
++}
++
++// getCommonSet returns the set of consts, types, and funcs that are present in every file.
++func getCommonSet(files []srcFile) (*codeSet, error) {
++ if len(files) == 0 {
++ return nil, fmt.Errorf("no files provided")
++ }
++ // Use the first architecture file as the baseline
++ baseSet, err := getCodeSet(files[0].src)
++ if err != nil {
++ return nil, err
++ }
++
++ // Compare baseline set with other architecture files: discard any element,
++ // that doesn't exist in other architecture files.
++ for _, f := range files[1:] {
++ set, err := getCodeSet(f.src)
++ if err != nil {
++ return nil, err
++ }
++
++ baseSet = baseSet.intersection(set)
++ }
++ return baseSet, nil
++}
++
++// getCodeSet returns the set of all top-level consts, types, and funcs from src.
++// src must be string, []byte, or io.Reader (see go/parser.ParseFile docs)
++func getCodeSet(src interface{}) (*codeSet, error) {
++ set := newCodeSet()
++
++ fset := token.NewFileSet()
++ f, err := parser.ParseFile(fset, "", src, parser.ParseComments)
++ if err != nil {
++ return nil, err
++ }
++
++ for _, decl := range f.Decls {
++ switch decl := decl.(type) {
++ case *ast.GenDecl:
++ // Add const, and type declarations
++ if !(decl.Tok == token.CONST || decl.Tok == token.TYPE) {
++ break
++ }
++
++ for _, spec := range decl.Specs {
++ elem, err := newCodeElem(decl.Tok, spec)
++ if err != nil {
++ return nil, err
++ }
++
++ set.add(elem)
++ }
++ case *ast.FuncDecl:
++ // Add func declarations
++ elem, err := newCodeElem(token.FUNC, decl)
++ if err != nil {
++ return nil, err
++ }
++
++ set.add(elem)
++ }
++ }
++
++ // Add file level comments
++ cmap := ast.NewCommentMap(fset, f, f.Comments)
++ for _, cGrp := range cmap[f] {
++ set.add(codeElem{token.COMMENT, cGrp.Text()})
++ }
++
++ return set, nil
++}
++
++// importName returns the identifier (PackageName) for an imported package
++func importName(iSpec *ast.ImportSpec) (string, error) {
++ if iSpec.Name == nil {
++ name, err := strconv.Unquote(iSpec.Path.Value)
++ if err != nil {
++ return "", err
++ }
++ return path.Base(name), nil
++ }
++ return iSpec.Name.Name, nil
++}
++
++// specGroups tracks grouped const/type specs with a map of line: groupID pairs
++type specGroups map[string]int
++
++// add spec source to group
++func (s specGroups) add(src string, groupID int) error {
++ srcBytes, err := format.Source(bytes.TrimSpace([]byte(src)))
++ if err != nil {
++ return err
++ }
++ s[string(srcBytes)] = groupID
++ return nil
++}
++
++// filterEmptyLines removes empty lines within groups of const/type specs.
++// Returns the filtered source.
++func (s specGroups) filterEmptyLines(src io.Reader) ([]byte, error) {
++ scanner := bufio.NewScanner(src)
++ var out bytes.Buffer
++
++ var emptyLines bytes.Buffer
++ prevGroupID := -1 // Initialize to invalid group
++ for scanner.Scan() {
++ line := bytes.TrimSpace(scanner.Bytes())
++
++ if len(line) == 0 {
++ fmt.Fprintf(&emptyLines, "%s\n", scanner.Bytes())
++ continue
++ }
++
++ // Discard emptyLines if previous non-empty line belonged to the same
++ // group as this line
++ if src, err := format.Source(line); err == nil {
++ groupID, ok := s[string(src)]
++ if ok && groupID == prevGroupID {
++ emptyLines.Reset()
++ }
++ prevGroupID = groupID
++ }
++
++ emptyLines.WriteTo(&out)
++ fmt.Fprintf(&out, "%s\n", scanner.Bytes())
++ }
++ if err := scanner.Err(); err != nil {
++ return nil, err
++ }
++ return out.Bytes(), nil
++}
++
++// filterImports removes unused imports from fileSrc, and returns a formatted src.
++func filterImports(fileSrc []byte) ([]byte, error) {
++ fset := token.NewFileSet()
++ file, err := parser.ParseFile(fset, "", fileSrc, parser.ParseComments)
++ if err != nil {
++ return nil, err
++ }
++ cmap := ast.NewCommentMap(fset, file, file.Comments)
++
++ // create set of references to imported identifiers
++ keepImport := make(map[string]bool)
++ for _, u := range file.Unresolved {
++ keepImport[u.Name] = true
++ }
++
++ // filter import declarations
++ decls := file.Decls
++ file.Decls = file.Decls[:0]
++ for _, decl := range decls {
++ importDecl, ok := decl.(*ast.GenDecl)
++
++ // Keep non-import declarations
++ if !ok || importDecl.Tok != token.IMPORT {
++ file.Decls = append(file.Decls, decl)
++ continue
++ }
++
++ // Filter the import specs
++ specs := importDecl.Specs
++ importDecl.Specs = importDecl.Specs[:0]
++ for _, spec := range specs {
++ iSpec := spec.(*ast.ImportSpec)
++ name, err := importName(iSpec)
++ if err != nil {
++ return nil, err
++ }
++
++ if keepImport[name] {
++ importDecl.Specs = append(importDecl.Specs, iSpec)
++ }
++ }
++ if len(importDecl.Specs) > 0 {
++ file.Decls = append(file.Decls, importDecl)
++ }
++ }
++
++ // filter file.Imports
++ imports := file.Imports
++ file.Imports = file.Imports[:0]
++ for _, spec := range imports {
++ name, err := importName(spec)
++ if err != nil {
++ return nil, err
++ }
++
++ if keepImport[name] {
++ file.Imports = append(file.Imports, spec)
++ }
++ }
++ file.Comments = cmap.Filter(file).Comments()
++
++ var buf bytes.Buffer
++ err = format.Node(&buf, fset, file)
++ if err != nil {
++ return nil, err
++ }
++
++ return buf.Bytes(), nil
++}
++
++// merge extracts duplicate code from archFiles and merges it to mergeFile.
++// 1. Construct commonSet: the set of code that is idential in all archFiles.
++// 2. Write the code in commonSet to mergedFile.
++// 3. Remove the commonSet code from all archFiles.
++func merge(mergedFile string, archFiles ...string) error {
++ // extract and validate the GOOS part of the merged filename
++ goos, ok := getValidGOOS(mergedFile)
++ if !ok {
++ return fmt.Errorf("invalid GOOS in merged file name %s", mergedFile)
++ }
++
++ // Read architecture files
++ var inSrc []srcFile
++ for _, file := range archFiles {
++ src, err := ioutil.ReadFile(file)
++ if err != nil {
++ return fmt.Errorf("cannot read archfile %s: %w", file, err)
++ }
++
++ inSrc = append(inSrc, srcFile{file, src})
++ }
++
++ // 1. Construct the set of top-level declarations common for all files
++ commonSet, err := getCommonSet(inSrc)
++ if err != nil {
++ return err
++ }
++ if commonSet.isEmpty() {
++ // No common code => do not modify any files
++ return nil
++ }
++
++ // 2. Write the merged file
++ mergedSrc, err := filter(inSrc[0].src, commonSet.keepCommon)
++ if err != nil {
++ return err
++ }
++
++ f, err := os.Create(mergedFile)
++ if err != nil {
++ return err
++ }
++
++ buf := bufio.NewWriter(f)
++ fmt.Fprintln(buf, "// Code generated by mkmerge.go; DO NOT EDIT.")
++ fmt.Fprintln(buf)
++ fmt.Fprintf(buf, "// +build %s\n", goos)
++ fmt.Fprintln(buf)
++ buf.Write(mergedSrc)
++
++ err = buf.Flush()
++ if err != nil {
++ return err
++ }
++ err = f.Close()
++ if err != nil {
++ return err
++ }
++
++ // 3. Remove duplicate declarations from the architecture files
++ for _, inFile := range inSrc {
++ src, err := filter(inFile.src, commonSet.keepArchSpecific)
++ if err != nil {
++ return err
++ }
++ err = ioutil.WriteFile(inFile.name, src, 0644)
++ if err != nil {
++ return err
++ }
++ }
++ return nil
++}
++
++func main() {
++ var mergedFile string
++ flag.StringVar(&mergedFile, "out", "", "Write merged code to `FILE`")
++ flag.Parse()
++
++ // Expand wildcards
++ var filenames []string
++ for _, arg := range flag.Args() {
++ matches, err := filepath.Glob(arg)
++ if err != nil {
++ fmt.Fprintf(os.Stderr, "Invalid command line argument %q: %v\n", arg, err)
++ os.Exit(1)
++ }
++ filenames = append(filenames, matches...)
++ }
++
++ if len(filenames) < 2 {
++ // No need to merge
++ return
++ }
++
++ err := merge(mergedFile, filenames...)
++ if err != nil {
++ fmt.Fprintf(os.Stderr, "Merge failed with error: %v\n", err)
++ os.Exit(1)
++ }
++}
+diff --git a/vendor/golang.org/x/sys/unix/mkpost.go b/vendor/golang.org/x/sys/unix/mkpost.go
+index d3ff659b..5ee1a16b 100644
+--- a/vendor/golang.org/x/sys/unix/mkpost.go
++++ b/vendor/golang.org/x/sys/unix/mkpost.go
+@@ -28,10 +28,10 @@ func main() {
+ if goarch == "" {
+ goarch = os.Getenv("GOARCH")
+ }
+- // Check that we are using the new build system if we should be.
+- if goos == "linux" && goarch != "sparc64" {
++ // Check that we are using the Docker-based build system if we should be.
++ if goos == "linux" {
+ if os.Getenv("GOLANG_SYS_BUILD") != "docker" {
+- os.Stderr.WriteString("In the new build system, mkpost should not be called directly.\n")
++ os.Stderr.WriteString("In the Docker-based build system, mkpost should not be called directly.\n")
+ os.Stderr.WriteString("See README.md\n")
+ os.Exit(1)
+ }
+@@ -42,6 +42,21 @@ func main() {
+ log.Fatal(err)
+ }
+
++ if goos == "aix" {
++ // Replace type of Atim, Mtim and Ctim by Timespec in Stat_t
++ // to avoid having both StTimespec and Timespec.
++ sttimespec := regexp.MustCompile(`_Ctype_struct_st_timespec`)
++ b = sttimespec.ReplaceAll(b, []byte("Timespec"))
++ }
++
++ // Intentionally export __val fields in Fsid and Sigset_t
++ valRegex := regexp.MustCompile(`type (Fsid|Sigset_t) struct {(\s+)X__(bits|val)(\s+\S+\s+)}`)
++ b = valRegex.ReplaceAll(b, []byte("type $1 struct {${2}Val$4}"))
++
++ // Intentionally export __fds_bits field in FdSet
++ fdSetRegex := regexp.MustCompile(`type (FdSet) struct {(\s+)X__fds_bits(\s+\S+\s+)}`)
++ b = fdSetRegex.ReplaceAll(b, []byte("type $1 struct {${2}Bits$3}"))
++
+ // If we have empty Ptrace structs, we should delete them. Only s390x emits
+ // nonempty Ptrace structs.
+ ptraceRexexp := regexp.MustCompile(`type Ptrace((Psw|Fpregs|Per) struct {\s*})`)
+@@ -56,16 +71,31 @@ func main() {
+ removeFieldsRegex := regexp.MustCompile(`X__glibc\S*`)
+ b = removeFieldsRegex.ReplaceAll(b, []byte("_"))
+
+- // We refuse to export private fields on s390x
+- if goarch == "s390x" && goos == "linux" {
+- // Remove cgo padding fields
+- removeFieldsRegex := regexp.MustCompile(`Pad_cgo_\d+`)
+- b = removeFieldsRegex.ReplaceAll(b, []byte("_"))
++ // Convert [65]int8 to [65]byte in Utsname members to simplify
++ // conversion to string; see golang.org/issue/20753
++ convertUtsnameRegex := regexp.MustCompile(`((Sys|Node|Domain)name|Release|Version|Machine)(\s+)\[(\d+)\]u?int8`)
++ b = convertUtsnameRegex.ReplaceAll(b, []byte("$1$3[$4]byte"))
+
+- // Remove padding, hidden, or unused fields
+- removeFieldsRegex = regexp.MustCompile(`X_\S+`)
+- b = removeFieldsRegex.ReplaceAll(b, []byte("_"))
+- }
++ // Convert [n]int8 to [n]byte in Statvfs_t members to simplify
++ // conversion to string.
++ convertStatvfsRegex := regexp.MustCompile(`((Fstype|Mnton|Mntfrom)name)(\s+)\[(\d+)\]int8`)
++ b = convertStatvfsRegex.ReplaceAll(b, []byte("$1$3[$4]byte"))
++
++ // Convert [1024]int8 to [1024]byte in Ptmget members
++ convertPtmget := regexp.MustCompile(`([SC]n)(\s+)\[(\d+)\]u?int8`)
++ b = convertPtmget.ReplaceAll(b, []byte("$1[$3]byte"))
++
++ // Remove spare fields (e.g. in Statx_t)
++ spareFieldsRegex := regexp.MustCompile(`X__spare\S*`)
++ b = spareFieldsRegex.ReplaceAll(b, []byte("_"))
++
++ // Remove cgo padding fields
++ removePaddingFieldsRegex := regexp.MustCompile(`Pad_cgo_\d+`)
++ b = removePaddingFieldsRegex.ReplaceAll(b, []byte("_"))
++
++ // Remove padding, hidden, or unused fields
++ removeFieldsRegex = regexp.MustCompile(`\b(X_\S+|Padding)`)
++ b = removeFieldsRegex.ReplaceAll(b, []byte("_"))
+
+ // Remove the first line of warning from cgo
+ b = b[bytes.IndexByte(b, '\n')+1:]
+@@ -78,6 +108,15 @@ func main() {
+ cgoCommandRegex := regexp.MustCompile(`(cgo -godefs .*)`)
+ b = cgoCommandRegex.ReplaceAll(b, []byte(replacement))
+
++ // Rename Stat_t time fields
++ if goos == "freebsd" && goarch == "386" {
++ // Hide Stat_t.[AMCB]tim_ext fields
++ renameStatTimeExtFieldsRegex := regexp.MustCompile(`[AMCB]tim_ext`)
++ b = renameStatTimeExtFieldsRegex.ReplaceAll(b, []byte("_"))
++ }
++ renameStatTimeFieldsRegex := regexp.MustCompile(`([AMCB])(?:irth)?time?(?:spec)?\s+(Timespec|StTimespec)`)
++ b = renameStatTimeFieldsRegex.ReplaceAll(b, []byte("${1}tim ${2}"))
++
+ // gofmt
+ b, err = format.Source(b)
+ if err != nil {
+diff --git a/vendor/golang.org/x/sys/unix/mksyscall.go b/vendor/golang.org/x/sys/unix/mksyscall.go
+new file mode 100644
+index 00000000..9e540cc8
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/mksyscall.go
+@@ -0,0 +1,402 @@
++// Copyright 2018 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build ignore
++
++/*
++This program reads a file containing function prototypes
++(like syscall_darwin.go) and generates system call bodies.
++The prototypes are marked by lines beginning with "//sys"
++and read like func declarations if //sys is replaced by func, but:
++ * The parameter lists must give a name for each argument.
++ This includes return parameters.
++ * The parameter lists must give a type for each argument:
++ the (x, y, z int) shorthand is not allowed.
++ * If the return parameter is an error number, it must be named errno.
++
++A line beginning with //sysnb is like //sys, except that the
++goroutine will not be suspended during the execution of the system
++call. This must only be used for system calls which can never
++block, as otherwise the system call could cause all goroutines to
++hang.
++*/
++package main
++
++import (
++ "bufio"
++ "flag"
++ "fmt"
++ "os"
++ "regexp"
++ "strings"
++)
++
++var (
++ b32 = flag.Bool("b32", false, "32bit big-endian")
++ l32 = flag.Bool("l32", false, "32bit little-endian")
++ plan9 = flag.Bool("plan9", false, "plan9")
++ openbsd = flag.Bool("openbsd", false, "openbsd")
++ netbsd = flag.Bool("netbsd", false, "netbsd")
++ dragonfly = flag.Bool("dragonfly", false, "dragonfly")
++ arm = flag.Bool("arm", false, "arm") // 64-bit value should use (even, odd)-pair
++ tags = flag.String("tags", "", "build tags")
++ filename = flag.String("output", "", "output file name (standard output if omitted)")
++)
++
++// cmdLine returns this programs's commandline arguments
++func cmdLine() string {
++ return "go run mksyscall.go " + strings.Join(os.Args[1:], " ")
++}
++
++// buildTags returns build tags
++func buildTags() string {
++ return *tags
++}
++
++// Param is function parameter
++type Param struct {
++ Name string
++ Type string
++}
++
++// usage prints the program usage
++func usage() {
++ fmt.Fprintf(os.Stderr, "usage: go run mksyscall.go [-b32 | -l32] [-tags x,y] [file ...]\n")
++ os.Exit(1)
++}
++
++// parseParamList parses parameter list and returns a slice of parameters
++func parseParamList(list string) []string {
++ list = strings.TrimSpace(list)
++ if list == "" {
++ return []string{}
++ }
++ return regexp.MustCompile(`\s*,\s*`).Split(list, -1)
++}
++
++// parseParam splits a parameter into name and type
++func parseParam(p string) Param {
++ ps := regexp.MustCompile(`^(\S*) (\S*)$`).FindStringSubmatch(p)
++ if ps == nil {
++ fmt.Fprintf(os.Stderr, "malformed parameter: %s\n", p)
++ os.Exit(1)
++ }
++ return Param{ps[1], ps[2]}
++}
++
++func main() {
++ // Get the OS and architecture (using GOARCH_TARGET if it exists)
++ goos := os.Getenv("GOOS")
++ if goos == "" {
++ fmt.Fprintln(os.Stderr, "GOOS not defined in environment")
++ os.Exit(1)
++ }
++ goarch := os.Getenv("GOARCH_TARGET")
++ if goarch == "" {
++ goarch = os.Getenv("GOARCH")
++ }
++
++ // Check that we are using the Docker-based build system if we should
++ if goos == "linux" {
++ if os.Getenv("GOLANG_SYS_BUILD") != "docker" {
++ fmt.Fprintf(os.Stderr, "In the Docker-based build system, mksyscall should not be called directly.\n")
++ fmt.Fprintf(os.Stderr, "See README.md\n")
++ os.Exit(1)
++ }
++ }
++
++ flag.Usage = usage
++ flag.Parse()
++ if len(flag.Args()) <= 0 {
++ fmt.Fprintf(os.Stderr, "no files to parse provided\n")
++ usage()
++ }
++
++ endianness := ""
++ if *b32 {
++ endianness = "big-endian"
++ } else if *l32 {
++ endianness = "little-endian"
++ }
++
++ libc := false
++ if goos == "darwin" && (strings.Contains(buildTags(), ",go1.12") || strings.Contains(buildTags(), ",go1.13")) {
++ libc = true
++ }
++ trampolines := map[string]bool{}
++
++ text := ""
++ for _, path := range flag.Args() {
++ file, err := os.Open(path)
++ if err != nil {
++ fmt.Fprintf(os.Stderr, err.Error())
++ os.Exit(1)
++ }
++ s := bufio.NewScanner(file)
++ for s.Scan() {
++ t := s.Text()
++ t = strings.TrimSpace(t)
++ t = regexp.MustCompile(`\s+`).ReplaceAllString(t, ` `)
++ nonblock := regexp.MustCompile(`^\/\/sysnb `).FindStringSubmatch(t)
++ if regexp.MustCompile(`^\/\/sys `).FindStringSubmatch(t) == nil && nonblock == nil {
++ continue
++ }
++
++ // Line must be of the form
++ // func Open(path string, mode int, perm int) (fd int, errno error)
++ // Split into name, in params, out params.
++ f := regexp.MustCompile(`^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*((?i)SYS_[A-Z0-9_]+))?$`).FindStringSubmatch(t)
++ if f == nil {
++ fmt.Fprintf(os.Stderr, "%s:%s\nmalformed //sys declaration\n", path, t)
++ os.Exit(1)
++ }
++ funct, inps, outps, sysname := f[2], f[3], f[4], f[5]
++
++ // ClockGettime doesn't have a syscall number on Darwin, only generate libc wrappers.
++ if goos == "darwin" && !libc && funct == "ClockGettime" {
++ continue
++ }
++
++ // Split argument lists on comma.
++ in := parseParamList(inps)
++ out := parseParamList(outps)
++
++ // Try in vain to keep people from editing this file.
++ // The theory is that they jump into the middle of the file
++ // without reading the header.
++ text += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"
++
++ // Go function header.
++ outDecl := ""
++ if len(out) > 0 {
++ outDecl = fmt.Sprintf(" (%s)", strings.Join(out, ", "))
++ }
++ text += fmt.Sprintf("func %s(%s)%s {\n", funct, strings.Join(in, ", "), outDecl)
++
++ // Check if err return available
++ errvar := ""
++ for _, param := range out {
++ p := parseParam(param)
++ if p.Type == "error" {
++ errvar = p.Name
++ break
++ }
++ }
++
++ // Prepare arguments to Syscall.
++ var args []string
++ n := 0
++ for _, param := range in {
++ p := parseParam(param)
++ if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil {
++ args = append(args, "uintptr(unsafe.Pointer("+p.Name+"))")
++ } else if p.Type == "string" && errvar != "" {
++ text += fmt.Sprintf("\tvar _p%d *byte\n", n)
++ text += fmt.Sprintf("\t_p%d, %s = BytePtrFromString(%s)\n", n, errvar, p.Name)
++ text += fmt.Sprintf("\tif %s != nil {\n\t\treturn\n\t}\n", errvar)
++ args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n))
++ n++
++ } else if p.Type == "string" {
++ fmt.Fprintf(os.Stderr, path+":"+funct+" uses string arguments, but has no error return\n")
++ text += fmt.Sprintf("\tvar _p%d *byte\n", n)
++ text += fmt.Sprintf("\t_p%d, _ = BytePtrFromString(%s)\n", n, p.Name)
++ args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n))
++ n++
++ } else if regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type) != nil {
++ // Convert slice into pointer, length.
++ // Have to be careful not to take address of &a[0] if len == 0:
++ // pass dummy pointer in that case.
++ // Used to pass nil, but some OSes or simulators reject write(fd, nil, 0).
++ text += fmt.Sprintf("\tvar _p%d unsafe.Pointer\n", n)
++ text += fmt.Sprintf("\tif len(%s) > 0 {\n\t\t_p%d = unsafe.Pointer(&%s[0])\n\t}", p.Name, n, p.Name)
++ text += fmt.Sprintf(" else {\n\t\t_p%d = unsafe.Pointer(&_zero)\n\t}\n", n)
++ args = append(args, fmt.Sprintf("uintptr(_p%d)", n), fmt.Sprintf("uintptr(len(%s))", p.Name))
++ n++
++ } else if p.Type == "int64" && (*openbsd || *netbsd) {
++ args = append(args, "0")
++ if endianness == "big-endian" {
++ args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name))
++ } else if endianness == "little-endian" {
++ args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name))
++ } else {
++ args = append(args, fmt.Sprintf("uintptr(%s)", p.Name))
++ }
++ } else if p.Type == "int64" && *dragonfly {
++ if regexp.MustCompile(`^(?i)extp(read|write)`).FindStringSubmatch(funct) == nil {
++ args = append(args, "0")
++ }
++ if endianness == "big-endian" {
++ args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name))
++ } else if endianness == "little-endian" {
++ args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name))
++ } else {
++ args = append(args, fmt.Sprintf("uintptr(%s)", p.Name))
++ }
++ } else if (p.Type == "int64" || p.Type == "uint64") && endianness != "" {
++ if len(args)%2 == 1 && *arm {
++ // arm abi specifies 64-bit argument uses
++ // (even, odd) pair
++ args = append(args, "0")
++ }
++ if endianness == "big-endian" {
++ args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name))
++ } else {
++ args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name))
++ }
++ } else {
++ args = append(args, fmt.Sprintf("uintptr(%s)", p.Name))
++ }
++ }
++
++ // Determine which form to use; pad args with zeros.
++ asm := "Syscall"
++ if nonblock != nil {
++ if errvar == "" && goos == "linux" {
++ asm = "RawSyscallNoError"
++ } else {
++ asm = "RawSyscall"
++ }
++ } else {
++ if errvar == "" && goos == "linux" {
++ asm = "SyscallNoError"
++ }
++ }
++ if len(args) <= 3 {
++ for len(args) < 3 {
++ args = append(args, "0")
++ }
++ } else if len(args) <= 6 {
++ asm += "6"
++ for len(args) < 6 {
++ args = append(args, "0")
++ }
++ } else if len(args) <= 9 {
++ asm += "9"
++ for len(args) < 9 {
++ args = append(args, "0")
++ }
++ } else {
++ fmt.Fprintf(os.Stderr, "%s:%s too many arguments to system call\n", path, funct)
++ }
++
++ // System call number.
++ if sysname == "" {
++ sysname = "SYS_" + funct
++ sysname = regexp.MustCompile(`([a-z])([A-Z])`).ReplaceAllString(sysname, `${1}_$2`)
++ sysname = strings.ToUpper(sysname)
++ }
++
++ var libcFn string
++ if libc {
++ asm = "syscall_" + strings.ToLower(asm[:1]) + asm[1:] // internal syscall call
++ sysname = strings.TrimPrefix(sysname, "SYS_") // remove SYS_
++ sysname = strings.ToLower(sysname) // lowercase
++ libcFn = sysname
++ sysname = "funcPC(libc_" + sysname + "_trampoline)"
++ }
++
++ // Actual call.
++ arglist := strings.Join(args, ", ")
++ call := fmt.Sprintf("%s(%s, %s)", asm, sysname, arglist)
++
++ // Assign return values.
++ body := ""
++ ret := []string{"_", "_", "_"}
++ doErrno := false
++ for i := 0; i < len(out); i++ {
++ p := parseParam(out[i])
++ reg := ""
++ if p.Name == "err" && !*plan9 {
++ reg = "e1"
++ ret[2] = reg
++ doErrno = true
++ } else if p.Name == "err" && *plan9 {
++ ret[0] = "r0"
++ ret[2] = "e1"
++ break
++ } else {
++ reg = fmt.Sprintf("r%d", i)
++ ret[i] = reg
++ }
++ if p.Type == "bool" {
++ reg = fmt.Sprintf("%s != 0", reg)
++ }
++ if p.Type == "int64" && endianness != "" {
++ // 64-bit number in r1:r0 or r0:r1.
++ if i+2 > len(out) {
++ fmt.Fprintf(os.Stderr, "%s:%s not enough registers for int64 return\n", path, funct)
++ }
++ if endianness == "big-endian" {
++ reg = fmt.Sprintf("int64(r%d)<<32 | int64(r%d)", i, i+1)
++ } else {
++ reg = fmt.Sprintf("int64(r%d)<<32 | int64(r%d)", i+1, i)
++ }
++ ret[i] = fmt.Sprintf("r%d", i)
++ ret[i+1] = fmt.Sprintf("r%d", i+1)
++ }
++ if reg != "e1" || *plan9 {
++ body += fmt.Sprintf("\t%s = %s(%s)\n", p.Name, p.Type, reg)
++ }
++ }
++ if ret[0] == "_" && ret[1] == "_" && ret[2] == "_" {
++ text += fmt.Sprintf("\t%s\n", call)
++ } else {
++ if errvar == "" && goos == "linux" {
++ // raw syscall without error on Linux, see golang.org/issue/22924
++ text += fmt.Sprintf("\t%s, %s := %s\n", ret[0], ret[1], call)
++ } else {
++ text += fmt.Sprintf("\t%s, %s, %s := %s\n", ret[0], ret[1], ret[2], call)
++ }
++ }
++ text += body
++
++ if *plan9 && ret[2] == "e1" {
++ text += "\tif int32(r0) == -1 {\n"
++ text += "\t\terr = e1\n"
++ text += "\t}\n"
++ } else if doErrno {
++ text += "\tif e1 != 0 {\n"
++ text += "\t\terr = errnoErr(e1)\n"
++ text += "\t}\n"
++ }
++ text += "\treturn\n"
++ text += "}\n\n"
++
++ if libc && !trampolines[libcFn] {
++ // some system calls share a trampoline, like read and readlen.
++ trampolines[libcFn] = true
++ // Declare assembly trampoline.
++ text += fmt.Sprintf("func libc_%s_trampoline()\n", libcFn)
++ // Assembly trampoline calls the libc_* function, which this magic
++ // redirects to use the function from libSystem.
++ text += fmt.Sprintf("//go:linkname libc_%s libc_%s\n", libcFn, libcFn)
++ text += fmt.Sprintf("//go:cgo_import_dynamic libc_%s %s \"/usr/lib/libSystem.B.dylib\"\n", libcFn, libcFn)
++ text += "\n"
++ }
++ }
++ if err := s.Err(); err != nil {
++ fmt.Fprintf(os.Stderr, err.Error())
++ os.Exit(1)
++ }
++ file.Close()
++ }
++ fmt.Printf(srcTemplate, cmdLine(), buildTags(), text)
++}
++
++const srcTemplate = `// %s
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build %s
++
++package unix
++
++import (
++ "syscall"
++ "unsafe"
++)
++
++var _ syscall.Errno
++
++%s
++`
+diff --git a/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go
+new file mode 100644
+index 00000000..3be3cdfc
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go
+@@ -0,0 +1,415 @@
++// Copyright 2019 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build ignore
++
++/*
++This program reads a file containing function prototypes
++(like syscall_aix.go) and generates system call bodies.
++The prototypes are marked by lines beginning with "//sys"
++and read like func declarations if //sys is replaced by func, but:
++ * The parameter lists must give a name for each argument.
++ This includes return parameters.
++ * The parameter lists must give a type for each argument:
++ the (x, y, z int) shorthand is not allowed.
++ * If the return parameter is an error number, it must be named err.
++ * If go func name needs to be different than its libc name,
++ * or the function is not in libc, name could be specified
++ * at the end, after "=" sign, like
++ //sys getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (err error) = libsocket.getsockopt
++*/
++package main
++
++import (
++ "bufio"
++ "flag"
++ "fmt"
++ "os"
++ "regexp"
++ "strings"
++)
++
++var (
++ b32 = flag.Bool("b32", false, "32bit big-endian")
++ l32 = flag.Bool("l32", false, "32bit little-endian")
++ aix = flag.Bool("aix", false, "aix")
++ tags = flag.String("tags", "", "build tags")
++)
++
++// cmdLine returns this programs's commandline arguments
++func cmdLine() string {
++ return "go run mksyscall_aix_ppc.go " + strings.Join(os.Args[1:], " ")
++}
++
++// buildTags returns build tags
++func buildTags() string {
++ return *tags
++}
++
++// Param is function parameter
++type Param struct {
++ Name string
++ Type string
++}
++
++// usage prints the program usage
++func usage() {
++ fmt.Fprintf(os.Stderr, "usage: go run mksyscall_aix_ppc.go [-b32 | -l32] [-tags x,y] [file ...]\n")
++ os.Exit(1)
++}
++
++// parseParamList parses parameter list and returns a slice of parameters
++func parseParamList(list string) []string {
++ list = strings.TrimSpace(list)
++ if list == "" {
++ return []string{}
++ }
++ return regexp.MustCompile(`\s*,\s*`).Split(list, -1)
++}
++
++// parseParam splits a parameter into name and type
++func parseParam(p string) Param {
++ ps := regexp.MustCompile(`^(\S*) (\S*)$`).FindStringSubmatch(p)
++ if ps == nil {
++ fmt.Fprintf(os.Stderr, "malformed parameter: %s\n", p)
++ os.Exit(1)
++ }
++ return Param{ps[1], ps[2]}
++}
++
++func main() {
++ flag.Usage = usage
++ flag.Parse()
++ if len(flag.Args()) <= 0 {
++ fmt.Fprintf(os.Stderr, "no files to parse provided\n")
++ usage()
++ }
++
++ endianness := ""
++ if *b32 {
++ endianness = "big-endian"
++ } else if *l32 {
++ endianness = "little-endian"
++ }
++
++ pack := ""
++ text := ""
++ cExtern := "/*\n#include <stdint.h>\n#include <stddef.h>\n"
++ for _, path := range flag.Args() {
++ file, err := os.Open(path)
++ if err != nil {
++ fmt.Fprintf(os.Stderr, err.Error())
++ os.Exit(1)
++ }
++ s := bufio.NewScanner(file)
++ for s.Scan() {
++ t := s.Text()
++ t = strings.TrimSpace(t)
++ t = regexp.MustCompile(`\s+`).ReplaceAllString(t, ` `)
++ if p := regexp.MustCompile(`^package (\S+)$`).FindStringSubmatch(t); p != nil && pack == "" {
++ pack = p[1]
++ }
++ nonblock := regexp.MustCompile(`^\/\/sysnb `).FindStringSubmatch(t)
++ if regexp.MustCompile(`^\/\/sys `).FindStringSubmatch(t) == nil && nonblock == nil {
++ continue
++ }
++
++ // Line must be of the form
++ // func Open(path string, mode int, perm int) (fd int, err error)
++ // Split into name, in params, out params.
++ f := regexp.MustCompile(`^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*(?:(\w*)\.)?(\w*))?$`).FindStringSubmatch(t)
++ if f == nil {
++ fmt.Fprintf(os.Stderr, "%s:%s\nmalformed //sys declaration\n", path, t)
++ os.Exit(1)
++ }
++ funct, inps, outps, modname, sysname := f[2], f[3], f[4], f[5], f[6]
++
++ // Split argument lists on comma.
++ in := parseParamList(inps)
++ out := parseParamList(outps)
++
++ inps = strings.Join(in, ", ")
++ outps = strings.Join(out, ", ")
++
++ // Try in vain to keep people from editing this file.
++ // The theory is that they jump into the middle of the file
++ // without reading the header.
++ text += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"
++
++ // Check if value return, err return available
++ errvar := ""
++ retvar := ""
++ rettype := ""
++ for _, param := range out {
++ p := parseParam(param)
++ if p.Type == "error" {
++ errvar = p.Name
++ } else {
++ retvar = p.Name
++ rettype = p.Type
++ }
++ }
++
++ // System call name.
++ if sysname == "" {
++ sysname = funct
++ }
++ sysname = regexp.MustCompile(`([a-z])([A-Z])`).ReplaceAllString(sysname, `${1}_$2`)
++ sysname = strings.ToLower(sysname) // All libc functions are lowercase.
++
++ cRettype := ""
++ if rettype == "unsafe.Pointer" {
++ cRettype = "uintptr_t"
++ } else if rettype == "uintptr" {
++ cRettype = "uintptr_t"
++ } else if regexp.MustCompile(`^_`).FindStringSubmatch(rettype) != nil {
++ cRettype = "uintptr_t"
++ } else if rettype == "int" {
++ cRettype = "int"
++ } else if rettype == "int32" {
++ cRettype = "int"
++ } else if rettype == "int64" {
++ cRettype = "long long"
++ } else if rettype == "uint32" {
++ cRettype = "unsigned int"
++ } else if rettype == "uint64" {
++ cRettype = "unsigned long long"
++ } else {
++ cRettype = "int"
++ }
++ if sysname == "exit" {
++ cRettype = "void"
++ }
++
++ // Change p.Types to c
++ var cIn []string
++ for _, param := range in {
++ p := parseParam(param)
++ if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil {
++ cIn = append(cIn, "uintptr_t")
++ } else if p.Type == "string" {
++ cIn = append(cIn, "uintptr_t")
++ } else if regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type) != nil {
++ cIn = append(cIn, "uintptr_t", "size_t")
++ } else if p.Type == "unsafe.Pointer" {
++ cIn = append(cIn, "uintptr_t")
++ } else if p.Type == "uintptr" {
++ cIn = append(cIn, "uintptr_t")
++ } else if regexp.MustCompile(`^_`).FindStringSubmatch(p.Type) != nil {
++ cIn = append(cIn, "uintptr_t")
++ } else if p.Type == "int" {
++ cIn = append(cIn, "int")
++ } else if p.Type == "int32" {
++ cIn = append(cIn, "int")
++ } else if p.Type == "int64" {
++ cIn = append(cIn, "long long")
++ } else if p.Type == "uint32" {
++ cIn = append(cIn, "unsigned int")
++ } else if p.Type == "uint64" {
++ cIn = append(cIn, "unsigned long long")
++ } else {
++ cIn = append(cIn, "int")
++ }
++ }
++
++ if funct != "fcntl" && funct != "FcntlInt" && funct != "readlen" && funct != "writelen" {
++ if sysname == "select" {
++ // select is a keyword of Go. Its name is
++ // changed to c_select.
++ cExtern += "#define c_select select\n"
++ }
++ // Imports of system calls from libc
++ cExtern += fmt.Sprintf("%s %s", cRettype, sysname)
++ cIn := strings.Join(cIn, ", ")
++ cExtern += fmt.Sprintf("(%s);\n", cIn)
++ }
++
++ // So file name.
++ if *aix {
++ if modname == "" {
++ modname = "libc.a/shr_64.o"
++ } else {
++ fmt.Fprintf(os.Stderr, "%s: only syscall using libc are available\n", funct)
++ os.Exit(1)
++ }
++ }
++
++ strconvfunc := "C.CString"
++
++ // Go function header.
++ if outps != "" {
++ outps = fmt.Sprintf(" (%s)", outps)
++ }
++ if text != "" {
++ text += "\n"
++ }
++
++ text += fmt.Sprintf("func %s(%s)%s {\n", funct, strings.Join(in, ", "), outps)
++
++ // Prepare arguments to Syscall.
++ var args []string
++ n := 0
++ argN := 0
++ for _, param := range in {
++ p := parseParam(param)
++ if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil {
++ args = append(args, "C.uintptr_t(uintptr(unsafe.Pointer("+p.Name+")))")
++ } else if p.Type == "string" && errvar != "" {
++ text += fmt.Sprintf("\t_p%d := uintptr(unsafe.Pointer(%s(%s)))\n", n, strconvfunc, p.Name)
++ args = append(args, fmt.Sprintf("C.uintptr_t(_p%d)", n))
++ n++
++ } else if p.Type == "string" {
++ fmt.Fprintf(os.Stderr, path+":"+funct+" uses string arguments, but has no error return\n")
++ text += fmt.Sprintf("\t_p%d := uintptr(unsafe.Pointer(%s(%s)))\n", n, strconvfunc, p.Name)
++ args = append(args, fmt.Sprintf("C.uintptr_t(_p%d)", n))
++ n++
++ } else if m := regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type); m != nil {
++ // Convert slice into pointer, length.
++ // Have to be careful not to take address of &a[0] if len == 0:
++ // pass nil in that case.
++ text += fmt.Sprintf("\tvar _p%d *%s\n", n, m[1])
++ text += fmt.Sprintf("\tif len(%s) > 0 {\n\t\t_p%d = &%s[0]\n\t}\n", p.Name, n, p.Name)
++ args = append(args, fmt.Sprintf("C.uintptr_t(uintptr(unsafe.Pointer(_p%d)))", n))
++ n++
++ text += fmt.Sprintf("\tvar _p%d int\n", n)
++ text += fmt.Sprintf("\t_p%d = len(%s)\n", n, p.Name)
++ args = append(args, fmt.Sprintf("C.size_t(_p%d)", n))
++ n++
++ } else if p.Type == "int64" && endianness != "" {
++ if endianness == "big-endian" {
++ args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name))
++ } else {
++ args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name))
++ }
++ n++
++ } else if p.Type == "bool" {
++ text += fmt.Sprintf("\tvar _p%d uint32\n", n)
++ text += fmt.Sprintf("\tif %s {\n\t\t_p%d = 1\n\t} else {\n\t\t_p%d = 0\n\t}\n", p.Name, n, n)
++ args = append(args, fmt.Sprintf("_p%d", n))
++ } else if regexp.MustCompile(`^_`).FindStringSubmatch(p.Type) != nil {
++ args = append(args, fmt.Sprintf("C.uintptr_t(uintptr(%s))", p.Name))
++ } else if p.Type == "unsafe.Pointer" {
++ args = append(args, fmt.Sprintf("C.uintptr_t(uintptr(%s))", p.Name))
++ } else if p.Type == "int" {
++ if (argN == 2) && ((funct == "readlen") || (funct == "writelen")) {
++ args = append(args, fmt.Sprintf("C.size_t(%s)", p.Name))
++ } else if argN == 0 && funct == "fcntl" {
++ args = append(args, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
++ } else if (argN == 2) && ((funct == "fcntl") || (funct == "FcntlInt")) {
++ args = append(args, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
++ } else {
++ args = append(args, fmt.Sprintf("C.int(%s)", p.Name))
++ }
++ } else if p.Type == "int32" {
++ args = append(args, fmt.Sprintf("C.int(%s)", p.Name))
++ } else if p.Type == "int64" {
++ args = append(args, fmt.Sprintf("C.longlong(%s)", p.Name))
++ } else if p.Type == "uint32" {
++ args = append(args, fmt.Sprintf("C.uint(%s)", p.Name))
++ } else if p.Type == "uint64" {
++ args = append(args, fmt.Sprintf("C.ulonglong(%s)", p.Name))
++ } else if p.Type == "uintptr" {
++ args = append(args, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
++ } else {
++ args = append(args, fmt.Sprintf("C.int(%s)", p.Name))
++ }
++ argN++
++ }
++
++ // Actual call.
++ arglist := strings.Join(args, ", ")
++ call := ""
++ if sysname == "exit" {
++ if errvar != "" {
++ call += "er :="
++ } else {
++ call += ""
++ }
++ } else if errvar != "" {
++ call += "r0,er :="
++ } else if retvar != "" {
++ call += "r0,_ :="
++ } else {
++ call += ""
++ }
++ if sysname == "select" {
++ // select is a keyword of Go. Its name is
++ // changed to c_select.
++ call += fmt.Sprintf("C.c_%s(%s)", sysname, arglist)
++ } else {
++ call += fmt.Sprintf("C.%s(%s)", sysname, arglist)
++ }
++
++ // Assign return values.
++ body := ""
++ for i := 0; i < len(out); i++ {
++ p := parseParam(out[i])
++ reg := ""
++ if p.Name == "err" {
++ reg = "e1"
++ } else {
++ reg = "r0"
++ }
++ if reg != "e1" {
++ body += fmt.Sprintf("\t%s = %s(%s)\n", p.Name, p.Type, reg)
++ }
++ }
++
++ // verify return
++ if sysname != "exit" && errvar != "" {
++ if regexp.MustCompile(`^uintptr`).FindStringSubmatch(cRettype) != nil {
++ body += "\tif (uintptr(r0) ==^uintptr(0) && er != nil) {\n"
++ body += fmt.Sprintf("\t\t%s = er\n", errvar)
++ body += "\t}\n"
++ } else {
++ body += "\tif (r0 ==-1 && er != nil) {\n"
++ body += fmt.Sprintf("\t\t%s = er\n", errvar)
++ body += "\t}\n"
++ }
++ } else if errvar != "" {
++ body += "\tif (er != nil) {\n"
++ body += fmt.Sprintf("\t\t%s = er\n", errvar)
++ body += "\t}\n"
++ }
++
++ text += fmt.Sprintf("\t%s\n", call)
++ text += body
++
++ text += "\treturn\n"
++ text += "}\n"
++ }
++ if err := s.Err(); err != nil {
++ fmt.Fprintf(os.Stderr, err.Error())
++ os.Exit(1)
++ }
++ file.Close()
++ }
++ imp := ""
++ if pack != "unix" {
++ imp = "import \"golang.org/x/sys/unix\"\n"
++
++ }
++ fmt.Printf(srcTemplate, cmdLine(), buildTags(), pack, cExtern, imp, text)
++}
++
++const srcTemplate = `// %s
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build %s
++
++package %s
++
++
++%s
++*/
++import "C"
++import (
++ "unsafe"
++)
++
++
++%s
++
++%s
++`
+diff --git a/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc64.go b/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc64.go
+new file mode 100644
+index 00000000..c9600995
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc64.go
+@@ -0,0 +1,614 @@
++// Copyright 2019 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build ignore
++
++/*
++This program reads a file containing function prototypes
++(like syscall_aix.go) and generates system call bodies.
++The prototypes are marked by lines beginning with "//sys"
++and read like func declarations if //sys is replaced by func, but:
++ * The parameter lists must give a name for each argument.
++ This includes return parameters.
++ * The parameter lists must give a type for each argument:
++ the (x, y, z int) shorthand is not allowed.
++ * If the return parameter is an error number, it must be named err.
++ * If go func name needs to be different than its libc name,
++ * or the function is not in libc, name could be specified
++ * at the end, after "=" sign, like
++ //sys getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (err error) = libsocket.getsockopt
++
++
++This program will generate three files and handle both gc and gccgo implementation:
++ - zsyscall_aix_ppc64.go: the common part of each implementation (error handler, pointer creation)
++ - zsyscall_aix_ppc64_gc.go: gc part with //go_cgo_import_dynamic and a call to syscall6
++ - zsyscall_aix_ppc64_gccgo.go: gccgo part with C function and conversion to C type.
++
++ The generated code looks like this
++
++zsyscall_aix_ppc64.go
++func asyscall(...) (n int, err error) {
++ // Pointer Creation
++ r1, e1 := callasyscall(...)
++ // Type Conversion
++ // Error Handler
++ return
++}
++
++zsyscall_aix_ppc64_gc.go
++//go:cgo_import_dynamic libc_asyscall asyscall "libc.a/shr_64.o"
++//go:linkname libc_asyscall libc_asyscall
++var asyscall syscallFunc
++
++func callasyscall(...) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_asyscall)), "nb_args", ... )
++ return
++}
++
++zsyscall_aix_ppc64_ggcgo.go
++
++// int asyscall(...)
++
++import "C"
++
++func callasyscall(...) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.asyscall(...))
++ e1 = syscall.GetErrno()
++ return
++}
++*/
++
++package main
++
++import (
++ "bufio"
++ "flag"
++ "fmt"
++ "io/ioutil"
++ "os"
++ "regexp"
++ "strings"
++)
++
++var (
++ b32 = flag.Bool("b32", false, "32bit big-endian")
++ l32 = flag.Bool("l32", false, "32bit little-endian")
++ aix = flag.Bool("aix", false, "aix")
++ tags = flag.String("tags", "", "build tags")
++)
++
++// cmdLine returns this programs's commandline arguments
++func cmdLine() string {
++ return "go run mksyscall_aix_ppc64.go " + strings.Join(os.Args[1:], " ")
++}
++
++// buildTags returns build tags
++func buildTags() string {
++ return *tags
++}
++
++// Param is function parameter
++type Param struct {
++ Name string
++ Type string
++}
++
++// usage prints the program usage
++func usage() {
++ fmt.Fprintf(os.Stderr, "usage: go run mksyscall_aix_ppc64.go [-b32 | -l32] [-tags x,y] [file ...]\n")
++ os.Exit(1)
++}
++
++// parseParamList parses parameter list and returns a slice of parameters
++func parseParamList(list string) []string {
++ list = strings.TrimSpace(list)
++ if list == "" {
++ return []string{}
++ }
++ return regexp.MustCompile(`\s*,\s*`).Split(list, -1)
++}
++
++// parseParam splits a parameter into name and type
++func parseParam(p string) Param {
++ ps := regexp.MustCompile(`^(\S*) (\S*)$`).FindStringSubmatch(p)
++ if ps == nil {
++ fmt.Fprintf(os.Stderr, "malformed parameter: %s\n", p)
++ os.Exit(1)
++ }
++ return Param{ps[1], ps[2]}
++}
++
++func main() {
++ flag.Usage = usage
++ flag.Parse()
++ if len(flag.Args()) <= 0 {
++ fmt.Fprintf(os.Stderr, "no files to parse provided\n")
++ usage()
++ }
++
++ endianness := ""
++ if *b32 {
++ endianness = "big-endian"
++ } else if *l32 {
++ endianness = "little-endian"
++ }
++
++ pack := ""
++ // GCCGO
++ textgccgo := ""
++ cExtern := "/*\n#include <stdint.h>\n"
++ // GC
++ textgc := ""
++ dynimports := ""
++ linknames := ""
++ var vars []string
++ // COMMON
++ textcommon := ""
++ for _, path := range flag.Args() {
++ file, err := os.Open(path)
++ if err != nil {
++ fmt.Fprintf(os.Stderr, err.Error())
++ os.Exit(1)
++ }
++ s := bufio.NewScanner(file)
++ for s.Scan() {
++ t := s.Text()
++ t = strings.TrimSpace(t)
++ t = regexp.MustCompile(`\s+`).ReplaceAllString(t, ` `)
++ if p := regexp.MustCompile(`^package (\S+)$`).FindStringSubmatch(t); p != nil && pack == "" {
++ pack = p[1]
++ }
++ nonblock := regexp.MustCompile(`^\/\/sysnb `).FindStringSubmatch(t)
++ if regexp.MustCompile(`^\/\/sys `).FindStringSubmatch(t) == nil && nonblock == nil {
++ continue
++ }
++
++ // Line must be of the form
++ // func Open(path string, mode int, perm int) (fd int, err error)
++ // Split into name, in params, out params.
++ f := regexp.MustCompile(`^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*(?:(\w*)\.)?(\w*))?$`).FindStringSubmatch(t)
++ if f == nil {
++ fmt.Fprintf(os.Stderr, "%s:%s\nmalformed //sys declaration\n", path, t)
++ os.Exit(1)
++ }
++ funct, inps, outps, modname, sysname := f[2], f[3], f[4], f[5], f[6]
++
++ // Split argument lists on comma.
++ in := parseParamList(inps)
++ out := parseParamList(outps)
++
++ inps = strings.Join(in, ", ")
++ outps = strings.Join(out, ", ")
++
++ if sysname == "" {
++ sysname = funct
++ }
++
++ onlyCommon := false
++ if funct == "readlen" || funct == "writelen" || funct == "FcntlInt" || funct == "FcntlFlock" {
++ // This function call another syscall which is already implemented.
++ // Therefore, the gc and gccgo part must not be generated.
++ onlyCommon = true
++ }
++
++ // Try in vain to keep people from editing this file.
++ // The theory is that they jump into the middle of the file
++ // without reading the header.
++
++ textcommon += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"
++ if !onlyCommon {
++ textgccgo += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"
++ textgc += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"
++ }
++
++ // Check if value return, err return available
++ errvar := ""
++ rettype := ""
++ for _, param := range out {
++ p := parseParam(param)
++ if p.Type == "error" {
++ errvar = p.Name
++ } else {
++ rettype = p.Type
++ }
++ }
++
++ sysname = regexp.MustCompile(`([a-z])([A-Z])`).ReplaceAllString(sysname, `${1}_$2`)
++ sysname = strings.ToLower(sysname) // All libc functions are lowercase.
++
++ // GCCGO Prototype return type
++ cRettype := ""
++ if rettype == "unsafe.Pointer" {
++ cRettype = "uintptr_t"
++ } else if rettype == "uintptr" {
++ cRettype = "uintptr_t"
++ } else if regexp.MustCompile(`^_`).FindStringSubmatch(rettype) != nil {
++ cRettype = "uintptr_t"
++ } else if rettype == "int" {
++ cRettype = "int"
++ } else if rettype == "int32" {
++ cRettype = "int"
++ } else if rettype == "int64" {
++ cRettype = "long long"
++ } else if rettype == "uint32" {
++ cRettype = "unsigned int"
++ } else if rettype == "uint64" {
++ cRettype = "unsigned long long"
++ } else {
++ cRettype = "int"
++ }
++ if sysname == "exit" {
++ cRettype = "void"
++ }
++
++ // GCCGO Prototype arguments type
++ var cIn []string
++ for i, param := range in {
++ p := parseParam(param)
++ if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil {
++ cIn = append(cIn, "uintptr_t")
++ } else if p.Type == "string" {
++ cIn = append(cIn, "uintptr_t")
++ } else if regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type) != nil {
++ cIn = append(cIn, "uintptr_t", "size_t")
++ } else if p.Type == "unsafe.Pointer" {
++ cIn = append(cIn, "uintptr_t")
++ } else if p.Type == "uintptr" {
++ cIn = append(cIn, "uintptr_t")
++ } else if regexp.MustCompile(`^_`).FindStringSubmatch(p.Type) != nil {
++ cIn = append(cIn, "uintptr_t")
++ } else if p.Type == "int" {
++ if (i == 0 || i == 2) && funct == "fcntl" {
++ // These fcntl arguments needs to be uintptr to be able to call FcntlInt and FcntlFlock
++ cIn = append(cIn, "uintptr_t")
++ } else {
++ cIn = append(cIn, "int")
++ }
++
++ } else if p.Type == "int32" {
++ cIn = append(cIn, "int")
++ } else if p.Type == "int64" {
++ cIn = append(cIn, "long long")
++ } else if p.Type == "uint32" {
++ cIn = append(cIn, "unsigned int")
++ } else if p.Type == "uint64" {
++ cIn = append(cIn, "unsigned long long")
++ } else {
++ cIn = append(cIn, "int")
++ }
++ }
++
++ if !onlyCommon {
++ // GCCGO Prototype Generation
++ // Imports of system calls from libc
++ if sysname == "select" {
++ // select is a keyword of Go. Its name is
++ // changed to c_select.
++ cExtern += "#define c_select select\n"
++ }
++ cExtern += fmt.Sprintf("%s %s", cRettype, sysname)
++ cIn := strings.Join(cIn, ", ")
++ cExtern += fmt.Sprintf("(%s);\n", cIn)
++ }
++ // GC Library name
++ if modname == "" {
++ modname = "libc.a/shr_64.o"
++ } else {
++ fmt.Fprintf(os.Stderr, "%s: only syscall using libc are available\n", funct)
++ os.Exit(1)
++ }
++ sysvarname := fmt.Sprintf("libc_%s", sysname)
++
++ if !onlyCommon {
++ // GC Runtime import of function to allow cross-platform builds.
++ dynimports += fmt.Sprintf("//go:cgo_import_dynamic %s %s \"%s\"\n", sysvarname, sysname, modname)
++ // GC Link symbol to proc address variable.
++ linknames += fmt.Sprintf("//go:linkname %s %s\n", sysvarname, sysvarname)
++ // GC Library proc address variable.
++ vars = append(vars, sysvarname)
++ }
++
++ strconvfunc := "BytePtrFromString"
++ strconvtype := "*byte"
++
++ // Go function header.
++ if outps != "" {
++ outps = fmt.Sprintf(" (%s)", outps)
++ }
++ if textcommon != "" {
++ textcommon += "\n"
++ }
++
++ textcommon += fmt.Sprintf("func %s(%s)%s {\n", funct, strings.Join(in, ", "), outps)
++
++ // Prepare arguments tocall.
++ var argscommon []string // Arguments in the common part
++ var argscall []string // Arguments for call prototype
++ var argsgc []string // Arguments for gc call (with syscall6)
++ var argsgccgo []string // Arguments for gccgo call (with C.name_of_syscall)
++ n := 0
++ argN := 0
++ for _, param := range in {
++ p := parseParam(param)
++ if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil {
++ argscommon = append(argscommon, fmt.Sprintf("uintptr(unsafe.Pointer(%s))", p.Name))
++ argscall = append(argscall, fmt.Sprintf("%s uintptr", p.Name))
++ argsgc = append(argsgc, p.Name)
++ argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
++ } else if p.Type == "string" && errvar != "" {
++ textcommon += fmt.Sprintf("\tvar _p%d %s\n", n, strconvtype)
++ textcommon += fmt.Sprintf("\t_p%d, %s = %s(%s)\n", n, errvar, strconvfunc, p.Name)
++ textcommon += fmt.Sprintf("\tif %s != nil {\n\t\treturn\n\t}\n", errvar)
++
++ argscommon = append(argscommon, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n))
++ argscall = append(argscall, fmt.Sprintf("_p%d uintptr ", n))
++ argsgc = append(argsgc, fmt.Sprintf("_p%d", n))
++ argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(_p%d)", n))
++ n++
++ } else if p.Type == "string" {
++ fmt.Fprintf(os.Stderr, path+":"+funct+" uses string arguments, but has no error return\n")
++ textcommon += fmt.Sprintf("\tvar _p%d %s\n", n, strconvtype)
++ textcommon += fmt.Sprintf("\t_p%d, %s = %s(%s)\n", n, errvar, strconvfunc, p.Name)
++ textcommon += fmt.Sprintf("\tif %s != nil {\n\t\treturn\n\t}\n", errvar)
++
++ argscommon = append(argscommon, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n))
++ argscall = append(argscall, fmt.Sprintf("_p%d uintptr", n))
++ argsgc = append(argsgc, fmt.Sprintf("_p%d", n))
++ argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(_p%d)", n))
++ n++
++ } else if m := regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type); m != nil {
++ // Convert slice into pointer, length.
++ // Have to be careful not to take address of &a[0] if len == 0:
++ // pass nil in that case.
++ textcommon += fmt.Sprintf("\tvar _p%d *%s\n", n, m[1])
++ textcommon += fmt.Sprintf("\tif len(%s) > 0 {\n\t\t_p%d = &%s[0]\n\t}\n", p.Name, n, p.Name)
++ argscommon = append(argscommon, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n), fmt.Sprintf("len(%s)", p.Name))
++ argscall = append(argscall, fmt.Sprintf("_p%d uintptr", n), fmt.Sprintf("_lenp%d int", n))
++ argsgc = append(argsgc, fmt.Sprintf("_p%d", n), fmt.Sprintf("uintptr(_lenp%d)", n))
++ argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(_p%d)", n), fmt.Sprintf("C.size_t(_lenp%d)", n))
++ n++
++ } else if p.Type == "int64" && endianness != "" {
++ fmt.Fprintf(os.Stderr, path+":"+funct+" uses int64 with 32 bits mode. Case not yet implemented\n")
++ } else if p.Type == "bool" {
++ fmt.Fprintf(os.Stderr, path+":"+funct+" uses bool. Case not yet implemented\n")
++ } else if regexp.MustCompile(`^_`).FindStringSubmatch(p.Type) != nil || p.Type == "unsafe.Pointer" {
++ argscommon = append(argscommon, fmt.Sprintf("uintptr(%s)", p.Name))
++ argscall = append(argscall, fmt.Sprintf("%s uintptr", p.Name))
++ argsgc = append(argsgc, p.Name)
++ argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
++ } else if p.Type == "int" {
++ if (argN == 0 || argN == 2) && ((funct == "fcntl") || (funct == "FcntlInt") || (funct == "FcntlFlock")) {
++ // These fcntl arguments need to be uintptr to be able to call FcntlInt and FcntlFlock
++ argscommon = append(argscommon, fmt.Sprintf("uintptr(%s)", p.Name))
++ argscall = append(argscall, fmt.Sprintf("%s uintptr", p.Name))
++ argsgc = append(argsgc, p.Name)
++ argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
++
++ } else {
++ argscommon = append(argscommon, p.Name)
++ argscall = append(argscall, fmt.Sprintf("%s int", p.Name))
++ argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name))
++ argsgccgo = append(argsgccgo, fmt.Sprintf("C.int(%s)", p.Name))
++ }
++ } else if p.Type == "int32" {
++ argscommon = append(argscommon, p.Name)
++ argscall = append(argscall, fmt.Sprintf("%s int32", p.Name))
++ argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name))
++ argsgccgo = append(argsgccgo, fmt.Sprintf("C.int(%s)", p.Name))
++ } else if p.Type == "int64" {
++ argscommon = append(argscommon, p.Name)
++ argscall = append(argscall, fmt.Sprintf("%s int64", p.Name))
++ argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name))
++ argsgccgo = append(argsgccgo, fmt.Sprintf("C.longlong(%s)", p.Name))
++ } else if p.Type == "uint32" {
++ argscommon = append(argscommon, p.Name)
++ argscall = append(argscall, fmt.Sprintf("%s uint32", p.Name))
++ argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name))
++ argsgccgo = append(argsgccgo, fmt.Sprintf("C.uint(%s)", p.Name))
++ } else if p.Type == "uint64" {
++ argscommon = append(argscommon, p.Name)
++ argscall = append(argscall, fmt.Sprintf("%s uint64", p.Name))
++ argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name))
++ argsgccgo = append(argsgccgo, fmt.Sprintf("C.ulonglong(%s)", p.Name))
++ } else if p.Type == "uintptr" {
++ argscommon = append(argscommon, p.Name)
++ argscall = append(argscall, fmt.Sprintf("%s uintptr", p.Name))
++ argsgc = append(argsgc, p.Name)
++ argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
++ } else {
++ argscommon = append(argscommon, fmt.Sprintf("int(%s)", p.Name))
++ argscall = append(argscall, fmt.Sprintf("%s int", p.Name))
++ argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name))
++ argsgccgo = append(argsgccgo, fmt.Sprintf("C.int(%s)", p.Name))
++ }
++ argN++
++ }
++ nargs := len(argsgc)
++
++ // COMMON function generation
++ argscommonlist := strings.Join(argscommon, ", ")
++ callcommon := fmt.Sprintf("call%s(%s)", sysname, argscommonlist)
++ ret := []string{"_", "_"}
++ body := ""
++ doErrno := false
++ for i := 0; i < len(out); i++ {
++ p := parseParam(out[i])
++ reg := ""
++ if p.Name == "err" {
++ reg = "e1"
++ ret[1] = reg
++ doErrno = true
++ } else {
++ reg = "r0"
++ ret[0] = reg
++ }
++ if p.Type == "bool" {
++ reg = fmt.Sprintf("%s != 0", reg)
++ }
++ if reg != "e1" {
++ body += fmt.Sprintf("\t%s = %s(%s)\n", p.Name, p.Type, reg)
++ }
++ }
++ if ret[0] == "_" && ret[1] == "_" {
++ textcommon += fmt.Sprintf("\t%s\n", callcommon)
++ } else {
++ textcommon += fmt.Sprintf("\t%s, %s := %s\n", ret[0], ret[1], callcommon)
++ }
++ textcommon += body
++
++ if doErrno {
++ textcommon += "\tif e1 != 0 {\n"
++ textcommon += "\t\terr = errnoErr(e1)\n"
++ textcommon += "\t}\n"
++ }
++ textcommon += "\treturn\n"
++ textcommon += "}\n"
++
++ if onlyCommon {
++ continue
++ }
++
++ // CALL Prototype
++ callProto := fmt.Sprintf("func call%s(%s) (r1 uintptr, e1 Errno) {\n", sysname, strings.Join(argscall, ", "))
++
++ // GC function generation
++ asm := "syscall6"
++ if nonblock != nil {
++ asm = "rawSyscall6"
++ }
++
++ if len(argsgc) <= 6 {
++ for len(argsgc) < 6 {
++ argsgc = append(argsgc, "0")
++ }
++ } else {
++ fmt.Fprintf(os.Stderr, "%s: too many arguments to system call", funct)
++ os.Exit(1)
++ }
++ argsgclist := strings.Join(argsgc, ", ")
++ callgc := fmt.Sprintf("%s(uintptr(unsafe.Pointer(&%s)), %d, %s)", asm, sysvarname, nargs, argsgclist)
++
++ textgc += callProto
++ textgc += fmt.Sprintf("\tr1, _, e1 = %s\n", callgc)
++ textgc += "\treturn\n}\n"
++
++ // GCCGO function generation
++ argsgccgolist := strings.Join(argsgccgo, ", ")
++ var callgccgo string
++ if sysname == "select" {
++ // select is a keyword of Go. Its name is
++ // changed to c_select.
++ callgccgo = fmt.Sprintf("C.c_%s(%s)", sysname, argsgccgolist)
++ } else {
++ callgccgo = fmt.Sprintf("C.%s(%s)", sysname, argsgccgolist)
++ }
++ textgccgo += callProto
++ textgccgo += fmt.Sprintf("\tr1 = uintptr(%s)\n", callgccgo)
++ textgccgo += "\te1 = syscall.GetErrno()\n"
++ textgccgo += "\treturn\n}\n"
++ }
++ if err := s.Err(); err != nil {
++ fmt.Fprintf(os.Stderr, err.Error())
++ os.Exit(1)
++ }
++ file.Close()
++ }
++ imp := ""
++ if pack != "unix" {
++ imp = "import \"golang.org/x/sys/unix\"\n"
++
++ }
++
++ // Print zsyscall_aix_ppc64.go
++ err := ioutil.WriteFile("zsyscall_aix_ppc64.go",
++ []byte(fmt.Sprintf(srcTemplate1, cmdLine(), buildTags(), pack, imp, textcommon)),
++ 0644)
++ if err != nil {
++ fmt.Fprintf(os.Stderr, err.Error())
++ os.Exit(1)
++ }
++
++ // Print zsyscall_aix_ppc64_gc.go
++ vardecls := "\t" + strings.Join(vars, ",\n\t")
++ vardecls += " syscallFunc"
++ err = ioutil.WriteFile("zsyscall_aix_ppc64_gc.go",
++ []byte(fmt.Sprintf(srcTemplate2, cmdLine(), buildTags(), pack, imp, dynimports, linknames, vardecls, textgc)),
++ 0644)
++ if err != nil {
++ fmt.Fprintf(os.Stderr, err.Error())
++ os.Exit(1)
++ }
++
++ // Print zsyscall_aix_ppc64_gccgo.go
++ err = ioutil.WriteFile("zsyscall_aix_ppc64_gccgo.go",
++ []byte(fmt.Sprintf(srcTemplate3, cmdLine(), buildTags(), pack, cExtern, imp, textgccgo)),
++ 0644)
++ if err != nil {
++ fmt.Fprintf(os.Stderr, err.Error())
++ os.Exit(1)
++ }
++}
++
++const srcTemplate1 = `// %s
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build %s
++
++package %s
++
++import (
++ "unsafe"
++)
++
++
++%s
++
++%s
++`
++const srcTemplate2 = `// %s
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build %s
++// +build !gccgo
++
++package %s
++
++import (
++ "unsafe"
++)
++%s
++%s
++%s
++type syscallFunc uintptr
++
++var (
++%s
++)
++
++// Implemented in runtime/syscall_aix.go.
++func rawSyscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
++func syscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
++
++%s
++`
++const srcTemplate3 = `// %s
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build %s
++// +build gccgo
++
++package %s
++
++%s
++*/
++import "C"
++import (
++ "syscall"
++)
++
++
++%s
++
++%s
++`
+diff --git a/vendor/golang.org/x/sys/unix/mksyscall_solaris.go b/vendor/golang.org/x/sys/unix/mksyscall_solaris.go
+new file mode 100644
+index 00000000..675597e4
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/mksyscall_solaris.go
+@@ -0,0 +1,341 @@
++// Copyright 2019 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build ignore
++
++/*
++ This program reads a file containing function prototypes
++ (like syscall_solaris.go) and generates system call bodies.
++ The prototypes are marked by lines beginning with "//sys"
++ and read like func declarations if //sys is replaced by func, but:
++ * The parameter lists must give a name for each argument.
++ This includes return parameters.
++ * The parameter lists must give a type for each argument:
++ the (x, y, z int) shorthand is not allowed.
++ * If the return parameter is an error number, it must be named err.
++ * If go func name needs to be different than its libc name,
++ * or the function is not in libc, name could be specified
++ * at the end, after "=" sign, like
++ //sys getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (err error) = libsocket.getsockopt
++*/
++
++package main
++
++import (
++ "bufio"
++ "flag"
++ "fmt"
++ "os"
++ "regexp"
++ "strings"
++)
++
++var (
++ b32 = flag.Bool("b32", false, "32bit big-endian")
++ l32 = flag.Bool("l32", false, "32bit little-endian")
++ tags = flag.String("tags", "", "build tags")
++ illumos = flag.Bool("illumos", false, "illumos specific code generation")
++)
++
++// cmdLine returns this programs's commandline arguments
++func cmdLine() string {
++ return "go run mksyscall_solaris.go " + strings.Join(os.Args[1:], " ")
++}
++
++// buildTags returns build tags
++func buildTags() string {
++ return *tags
++}
++
++// Param is function parameter
++type Param struct {
++ Name string
++ Type string
++}
++
++// usage prints the program usage
++func usage() {
++ fmt.Fprintf(os.Stderr, "usage: go run mksyscall_solaris.go [-b32 | -l32] [-tags x,y] [file ...]\n")
++ os.Exit(1)
++}
++
++// parseParamList parses parameter list and returns a slice of parameters
++func parseParamList(list string) []string {
++ list = strings.TrimSpace(list)
++ if list == "" {
++ return []string{}
++ }
++ return regexp.MustCompile(`\s*,\s*`).Split(list, -1)
++}
++
++// parseParam splits a parameter into name and type
++func parseParam(p string) Param {
++ ps := regexp.MustCompile(`^(\S*) (\S*)$`).FindStringSubmatch(p)
++ if ps == nil {
++ fmt.Fprintf(os.Stderr, "malformed parameter: %s\n", p)
++ os.Exit(1)
++ }
++ return Param{ps[1], ps[2]}
++}
++
++func main() {
++ flag.Usage = usage
++ flag.Parse()
++ if len(flag.Args()) <= 0 {
++ fmt.Fprintf(os.Stderr, "no files to parse provided\n")
++ usage()
++ }
++
++ endianness := ""
++ if *b32 {
++ endianness = "big-endian"
++ } else if *l32 {
++ endianness = "little-endian"
++ }
++
++ pack := ""
++ text := ""
++ dynimports := ""
++ linknames := ""
++ var vars []string
++ for _, path := range flag.Args() {
++ file, err := os.Open(path)
++ if err != nil {
++ fmt.Fprintf(os.Stderr, err.Error())
++ os.Exit(1)
++ }
++ s := bufio.NewScanner(file)
++ for s.Scan() {
++ t := s.Text()
++ t = strings.TrimSpace(t)
++ t = regexp.MustCompile(`\s+`).ReplaceAllString(t, ` `)
++ if p := regexp.MustCompile(`^package (\S+)$`).FindStringSubmatch(t); p != nil && pack == "" {
++ pack = p[1]
++ }
++ nonblock := regexp.MustCompile(`^\/\/sysnb `).FindStringSubmatch(t)
++ if regexp.MustCompile(`^\/\/sys `).FindStringSubmatch(t) == nil && nonblock == nil {
++ continue
++ }
++
++ // Line must be of the form
++ // func Open(path string, mode int, perm int) (fd int, err error)
++ // Split into name, in params, out params.
++ f := regexp.MustCompile(`^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*(?:(\w*)\.)?(\w*))?$`).FindStringSubmatch(t)
++ if f == nil {
++ fmt.Fprintf(os.Stderr, "%s:%s\nmalformed //sys declaration\n", path, t)
++ os.Exit(1)
++ }
++ funct, inps, outps, modname, sysname := f[2], f[3], f[4], f[5], f[6]
++
++ // Split argument lists on comma.
++ in := parseParamList(inps)
++ out := parseParamList(outps)
++
++ inps = strings.Join(in, ", ")
++ outps = strings.Join(out, ", ")
++
++ // Try in vain to keep people from editing this file.
++ // The theory is that they jump into the middle of the file
++ // without reading the header.
++ text += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"
++
++ // So file name.
++ if modname == "" {
++ modname = "libc"
++ }
++
++ // System call name.
++ if sysname == "" {
++ sysname = funct
++ }
++
++ // System call pointer variable name.
++ sysvarname := fmt.Sprintf("proc%s", sysname)
++
++ strconvfunc := "BytePtrFromString"
++ strconvtype := "*byte"
++
++ sysname = strings.ToLower(sysname) // All libc functions are lowercase.
++
++ // Runtime import of function to allow cross-platform builds.
++ dynimports += fmt.Sprintf("//go:cgo_import_dynamic libc_%s %s \"%s.so\"\n", sysname, sysname, modname)
++ // Link symbol to proc address variable.
++ linknames += fmt.Sprintf("//go:linkname %s libc_%s\n", sysvarname, sysname)
++ // Library proc address variable.
++ vars = append(vars, sysvarname)
++
++ // Go function header.
++ outlist := strings.Join(out, ", ")
++ if outlist != "" {
++ outlist = fmt.Sprintf(" (%s)", outlist)
++ }
++ if text != "" {
++ text += "\n"
++ }
++ text += fmt.Sprintf("func %s(%s)%s {\n", funct, strings.Join(in, ", "), outlist)
++
++ // Check if err return available
++ errvar := ""
++ for _, param := range out {
++ p := parseParam(param)
++ if p.Type == "error" {
++ errvar = p.Name
++ continue
++ }
++ }
++
++ // Prepare arguments to Syscall.
++ var args []string
++ n := 0
++ for _, param := range in {
++ p := parseParam(param)
++ if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil {
++ args = append(args, "uintptr(unsafe.Pointer("+p.Name+"))")
++ } else if p.Type == "string" && errvar != "" {
++ text += fmt.Sprintf("\tvar _p%d %s\n", n, strconvtype)
++ text += fmt.Sprintf("\t_p%d, %s = %s(%s)\n", n, errvar, strconvfunc, p.Name)
++ text += fmt.Sprintf("\tif %s != nil {\n\t\treturn\n\t}\n", errvar)
++ args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n))
++ n++
++ } else if p.Type == "string" {
++ fmt.Fprintf(os.Stderr, path+":"+funct+" uses string arguments, but has no error return\n")
++ text += fmt.Sprintf("\tvar _p%d %s\n", n, strconvtype)
++ text += fmt.Sprintf("\t_p%d, _ = %s(%s)\n", n, strconvfunc, p.Name)
++ args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n))
++ n++
++ } else if s := regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type); s != nil {
++ // Convert slice into pointer, length.
++ // Have to be careful not to take address of &a[0] if len == 0:
++ // pass nil in that case.
++ text += fmt.Sprintf("\tvar _p%d *%s\n", n, s[1])
++ text += fmt.Sprintf("\tif len(%s) > 0 {\n\t\t_p%d = &%s[0]\n\t}\n", p.Name, n, p.Name)
++ args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n), fmt.Sprintf("uintptr(len(%s))", p.Name))
++ n++
++ } else if p.Type == "int64" && endianness != "" {
++ if endianness == "big-endian" {
++ args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name))
++ } else {
++ args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name))
++ }
++ } else if p.Type == "bool" {
++ text += fmt.Sprintf("\tvar _p%d uint32\n", n)
++ text += fmt.Sprintf("\tif %s {\n\t\t_p%d = 1\n\t} else {\n\t\t_p%d = 0\n\t}\n", p.Name, n, n)
++ args = append(args, fmt.Sprintf("uintptr(_p%d)", n))
++ n++
++ } else {
++ args = append(args, fmt.Sprintf("uintptr(%s)", p.Name))
++ }
++ }
++ nargs := len(args)
++
++ // Determine which form to use; pad args with zeros.
++ asm := "sysvicall6"
++ if nonblock != nil {
++ asm = "rawSysvicall6"
++ }
++ if len(args) <= 6 {
++ for len(args) < 6 {
++ args = append(args, "0")
++ }
++ } else {
++ fmt.Fprintf(os.Stderr, "%s: too many arguments to system call\n", path)
++ os.Exit(1)
++ }
++
++ // Actual call.
++ arglist := strings.Join(args, ", ")
++ call := fmt.Sprintf("%s(uintptr(unsafe.Pointer(&%s)), %d, %s)", asm, sysvarname, nargs, arglist)
++
++ // Assign return values.
++ body := ""
++ ret := []string{"_", "_", "_"}
++ doErrno := false
++ for i := 0; i < len(out); i++ {
++ p := parseParam(out[i])
++ reg := ""
++ if p.Name == "err" {
++ reg = "e1"
++ ret[2] = reg
++ doErrno = true
++ } else {
++ reg = fmt.Sprintf("r%d", i)
++ ret[i] = reg
++ }
++ if p.Type == "bool" {
++ reg = fmt.Sprintf("%d != 0", reg)
++ }
++ if p.Type == "int64" && endianness != "" {
++ // 64-bit number in r1:r0 or r0:r1.
++ if i+2 > len(out) {
++ fmt.Fprintf(os.Stderr, "%s: not enough registers for int64 return\n", path)
++ os.Exit(1)
++ }
++ if endianness == "big-endian" {
++ reg = fmt.Sprintf("int64(r%d)<<32 | int64(r%d)", i, i+1)
++ } else {
++ reg = fmt.Sprintf("int64(r%d)<<32 | int64(r%d)", i+1, i)
++ }
++ ret[i] = fmt.Sprintf("r%d", i)
++ ret[i+1] = fmt.Sprintf("r%d", i+1)
++ }
++ if reg != "e1" {
++ body += fmt.Sprintf("\t%s = %s(%s)\n", p.Name, p.Type, reg)
++ }
++ }
++ if ret[0] == "_" && ret[1] == "_" && ret[2] == "_" {
++ text += fmt.Sprintf("\t%s\n", call)
++ } else {
++ text += fmt.Sprintf("\t%s, %s, %s := %s\n", ret[0], ret[1], ret[2], call)
++ }
++ text += body
++
++ if doErrno {
++ text += "\tif e1 != 0 {\n"
++ text += "\t\terr = e1\n"
++ text += "\t}\n"
++ }
++ text += "\treturn\n"
++ text += "}\n"
++ }
++ if err := s.Err(); err != nil {
++ fmt.Fprintf(os.Stderr, err.Error())
++ os.Exit(1)
++ }
++ file.Close()
++ }
++ imp := ""
++ if pack != "unix" {
++ imp = "import \"golang.org/x/sys/unix\"\n"
++ }
++
++ syscallimp := ""
++ if !*illumos {
++ syscallimp = "\"syscall\""
++ }
++
++ vardecls := "\t" + strings.Join(vars, ",\n\t")
++ vardecls += " syscallFunc"
++ fmt.Printf(srcTemplate, cmdLine(), buildTags(), pack, syscallimp, imp, dynimports, linknames, vardecls, text)
++}
++
++const srcTemplate = `// %s
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build %s
++
++package %s
++
++import (
++ "unsafe"
++ %s
++)
++%s
++%s
++%s
++var (
++%s
++)
++
++%s
++`
+diff --git a/vendor/golang.org/x/sys/unix/mksysctl_openbsd.go b/vendor/golang.org/x/sys/unix/mksysctl_openbsd.go
+new file mode 100644
+index 00000000..b6b40990
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/mksysctl_openbsd.go
+@@ -0,0 +1,355 @@
++// Copyright 2019 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build ignore
++
++// Parse the header files for OpenBSD and generate a Go usable sysctl MIB.
++//
++// Build a MIB with each entry being an array containing the level, type and
++// a hash that will contain additional entries if the current entry is a node.
++// We then walk this MIB and create a flattened sysctl name to OID hash.
++
++package main
++
++import (
++ "bufio"
++ "fmt"
++ "os"
++ "path/filepath"
++ "regexp"
++ "sort"
++ "strings"
++)
++
++var (
++ goos, goarch string
++)
++
++// cmdLine returns this programs's commandline arguments.
++func cmdLine() string {
++ return "go run mksysctl_openbsd.go " + strings.Join(os.Args[1:], " ")
++}
++
++// buildTags returns build tags.
++func buildTags() string {
++ return fmt.Sprintf("%s,%s", goarch, goos)
++}
++
++// reMatch performs regular expression match and stores the substring slice to value pointed by m.
++func reMatch(re *regexp.Regexp, str string, m *[]string) bool {
++ *m = re.FindStringSubmatch(str)
++ if *m != nil {
++ return true
++ }
++ return false
++}
++
++type nodeElement struct {
++ n int
++ t string
++ pE *map[string]nodeElement
++}
++
++var (
++ debugEnabled bool
++ mib map[string]nodeElement
++ node *map[string]nodeElement
++ nodeMap map[string]string
++ sysCtl []string
++)
++
++var (
++ ctlNames1RE = regexp.MustCompile(`^#define\s+(CTL_NAMES)\s+{`)
++ ctlNames2RE = regexp.MustCompile(`^#define\s+(CTL_(.*)_NAMES)\s+{`)
++ ctlNames3RE = regexp.MustCompile(`^#define\s+((.*)CTL_NAMES)\s+{`)
++ netInetRE = regexp.MustCompile(`^netinet/`)
++ netInet6RE = regexp.MustCompile(`^netinet6/`)
++ netRE = regexp.MustCompile(`^net/`)
++ bracesRE = regexp.MustCompile(`{.*}`)
++ ctlTypeRE = regexp.MustCompile(`{\s+"(\w+)",\s+(CTLTYPE_[A-Z]+)\s+}`)
++ fsNetKernRE = regexp.MustCompile(`^(fs|net|kern)_`)
++)
++
++func debug(s string) {
++ if debugEnabled {
++ fmt.Fprintln(os.Stderr, s)
++ }
++}
++
++// Walk the MIB and build a sysctl name to OID mapping.
++func buildSysctl(pNode *map[string]nodeElement, name string, oid []int) {
++ lNode := pNode // local copy of pointer to node
++ var keys []string
++ for k := range *lNode {
++ keys = append(keys, k)
++ }
++ sort.Strings(keys)
++
++ for _, key := range keys {
++ nodename := name
++ if name != "" {
++ nodename += "."
++ }
++ nodename += key
++
++ nodeoid := append(oid, (*pNode)[key].n)
++
++ if (*pNode)[key].t == `CTLTYPE_NODE` {
++ if _, ok := nodeMap[nodename]; ok {
++ lNode = &mib
++ ctlName := nodeMap[nodename]
++ for _, part := range strings.Split(ctlName, ".") {
++ lNode = ((*lNode)[part]).pE
++ }
++ } else {
++ lNode = (*pNode)[key].pE
++ }
++ buildSysctl(lNode, nodename, nodeoid)
++ } else if (*pNode)[key].t != "" {
++ oidStr := []string{}
++ for j := range nodeoid {
++ oidStr = append(oidStr, fmt.Sprintf("%d", nodeoid[j]))
++ }
++ text := "\t{ \"" + nodename + "\", []_C_int{ " + strings.Join(oidStr, ", ") + " } }, \n"
++ sysCtl = append(sysCtl, text)
++ }
++ }
++}
++
++func main() {
++ // Get the OS (using GOOS_TARGET if it exist)
++ goos = os.Getenv("GOOS_TARGET")
++ if goos == "" {
++ goos = os.Getenv("GOOS")
++ }
++ // Get the architecture (using GOARCH_TARGET if it exists)
++ goarch = os.Getenv("GOARCH_TARGET")
++ if goarch == "" {
++ goarch = os.Getenv("GOARCH")
++ }
++ // Check if GOOS and GOARCH environment variables are defined
++ if goarch == "" || goos == "" {
++ fmt.Fprintf(os.Stderr, "GOARCH or GOOS not defined in environment\n")
++ os.Exit(1)
++ }
++
++ mib = make(map[string]nodeElement)
++ headers := [...]string{
++ `sys/sysctl.h`,
++ `sys/socket.h`,
++ `sys/tty.h`,
++ `sys/malloc.h`,
++ `sys/mount.h`,
++ `sys/namei.h`,
++ `sys/sem.h`,
++ `sys/shm.h`,
++ `sys/vmmeter.h`,
++ `uvm/uvmexp.h`,
++ `uvm/uvm_param.h`,
++ `uvm/uvm_swap_encrypt.h`,
++ `ddb/db_var.h`,
++ `net/if.h`,
++ `net/if_pfsync.h`,
++ `net/pipex.h`,
++ `netinet/in.h`,
++ `netinet/icmp_var.h`,
++ `netinet/igmp_var.h`,
++ `netinet/ip_ah.h`,
++ `netinet/ip_carp.h`,
++ `netinet/ip_divert.h`,
++ `netinet/ip_esp.h`,
++ `netinet/ip_ether.h`,
++ `netinet/ip_gre.h`,
++ `netinet/ip_ipcomp.h`,
++ `netinet/ip_ipip.h`,
++ `netinet/pim_var.h`,
++ `netinet/tcp_var.h`,
++ `netinet/udp_var.h`,
++ `netinet6/in6.h`,
++ `netinet6/ip6_divert.h`,
++ `netinet6/pim6_var.h`,
++ `netinet/icmp6.h`,
++ `netmpls/mpls.h`,
++ }
++
++ ctls := [...]string{
++ `kern`,
++ `vm`,
++ `fs`,
++ `net`,
++ //debug /* Special handling required */
++ `hw`,
++ //machdep /* Arch specific */
++ `user`,
++ `ddb`,
++ //vfs /* Special handling required */
++ `fs.posix`,
++ `kern.forkstat`,
++ `kern.intrcnt`,
++ `kern.malloc`,
++ `kern.nchstats`,
++ `kern.seminfo`,
++ `kern.shminfo`,
++ `kern.timecounter`,
++ `kern.tty`,
++ `kern.watchdog`,
++ `net.bpf`,
++ `net.ifq`,
++ `net.inet`,
++ `net.inet.ah`,
++ `net.inet.carp`,
++ `net.inet.divert`,
++ `net.inet.esp`,
++ `net.inet.etherip`,
++ `net.inet.gre`,
++ `net.inet.icmp`,
++ `net.inet.igmp`,
++ `net.inet.ip`,
++ `net.inet.ip.ifq`,
++ `net.inet.ipcomp`,
++ `net.inet.ipip`,
++ `net.inet.mobileip`,
++ `net.inet.pfsync`,
++ `net.inet.pim`,
++ `net.inet.tcp`,
++ `net.inet.udp`,
++ `net.inet6`,
++ `net.inet6.divert`,
++ `net.inet6.ip6`,
++ `net.inet6.icmp6`,
++ `net.inet6.pim6`,
++ `net.inet6.tcp6`,
++ `net.inet6.udp6`,
++ `net.mpls`,
++ `net.mpls.ifq`,
++ `net.key`,
++ `net.pflow`,
++ `net.pfsync`,
++ `net.pipex`,
++ `net.rt`,
++ `vm.swapencrypt`,
++ //vfsgenctl /* Special handling required */
++ }
++
++ // Node name "fixups"
++ ctlMap := map[string]string{
++ "ipproto": "net.inet",
++ "net.inet.ipproto": "net.inet",
++ "net.inet6.ipv6proto": "net.inet6",
++ "net.inet6.ipv6": "net.inet6.ip6",
++ "net.inet.icmpv6": "net.inet6.icmp6",
++ "net.inet6.divert6": "net.inet6.divert",
++ "net.inet6.tcp6": "net.inet.tcp",
++ "net.inet6.udp6": "net.inet.udp",
++ "mpls": "net.mpls",
++ "swpenc": "vm.swapencrypt",
++ }
++
++ // Node mappings
++ nodeMap = map[string]string{
++ "net.inet.ip.ifq": "net.ifq",
++ "net.inet.pfsync": "net.pfsync",
++ "net.mpls.ifq": "net.ifq",
++ }
++
++ mCtls := make(map[string]bool)
++ for _, ctl := range ctls {
++ mCtls[ctl] = true
++ }
++
++ for _, header := range headers {
++ debug("Processing " + header)
++ file, err := os.Open(filepath.Join("/usr/include", header))
++ if err != nil {
++ fmt.Fprintf(os.Stderr, "%v\n", err)
++ os.Exit(1)
++ }
++ s := bufio.NewScanner(file)
++ for s.Scan() {
++ var sub []string
++ if reMatch(ctlNames1RE, s.Text(), &sub) ||
++ reMatch(ctlNames2RE, s.Text(), &sub) ||
++ reMatch(ctlNames3RE, s.Text(), &sub) {
++ if sub[1] == `CTL_NAMES` {
++ // Top level.
++ node = &mib
++ } else {
++ // Node.
++ nodename := strings.ToLower(sub[2])
++ ctlName := ""
++ if reMatch(netInetRE, header, &sub) {
++ ctlName = "net.inet." + nodename
++ } else if reMatch(netInet6RE, header, &sub) {
++ ctlName = "net.inet6." + nodename
++ } else if reMatch(netRE, header, &sub) {
++ ctlName = "net." + nodename
++ } else {
++ ctlName = nodename
++ ctlName = fsNetKernRE.ReplaceAllString(ctlName, `$1.`)
++ }
++
++ if val, ok := ctlMap[ctlName]; ok {
++ ctlName = val
++ }
++ if _, ok := mCtls[ctlName]; !ok {
++ debug("Ignoring " + ctlName + "...")
++ continue
++ }
++
++ // Walk down from the top of the MIB.
++ node = &mib
++ for _, part := range strings.Split(ctlName, ".") {
++ if _, ok := (*node)[part]; !ok {
++ debug("Missing node " + part)
++ (*node)[part] = nodeElement{n: 0, t: "", pE: &map[string]nodeElement{}}
++ }
++ node = (*node)[part].pE
++ }
++ }
++
++ // Populate current node with entries.
++ i := -1
++ for !strings.HasPrefix(s.Text(), "}") {
++ s.Scan()
++ if reMatch(bracesRE, s.Text(), &sub) {
++ i++
++ }
++ if !reMatch(ctlTypeRE, s.Text(), &sub) {
++ continue
++ }
++ (*node)[sub[1]] = nodeElement{n: i, t: sub[2], pE: &map[string]nodeElement{}}
++ }
++ }
++ }
++ err = s.Err()
++ if err != nil {
++ fmt.Fprintf(os.Stderr, "%v\n", err)
++ os.Exit(1)
++ }
++ file.Close()
++ }
++ buildSysctl(&mib, "", []int{})
++
++ sort.Strings(sysCtl)
++ text := strings.Join(sysCtl, "")
++
++ fmt.Printf(srcTemplate, cmdLine(), buildTags(), text)
++}
++
++const srcTemplate = `// %s
++// Code generated by the command above; DO NOT EDIT.
++
++// +build %s
++
++package unix
++
++type mibentry struct {
++ ctlname string
++ ctloid []_C_int
++}
++
++var sysctlMib = []mibentry {
++%s
++}
++`
+diff --git a/vendor/golang.org/x/sys/unix/mksysnum.go b/vendor/golang.org/x/sys/unix/mksysnum.go
+new file mode 100644
+index 00000000..baa6ecd8
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/mksysnum.go
+@@ -0,0 +1,190 @@
++// Copyright 2018 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build ignore
++
++// Generate system call table for DragonFly, NetBSD,
++// FreeBSD, OpenBSD or Darwin from master list
++// (for example, /usr/src/sys/kern/syscalls.master or
++// sys/syscall.h).
++package main
++
++import (
++ "bufio"
++ "fmt"
++ "io"
++ "io/ioutil"
++ "net/http"
++ "os"
++ "regexp"
++ "strings"
++)
++
++var (
++ goos, goarch string
++)
++
++// cmdLine returns this programs's commandline arguments
++func cmdLine() string {
++ return "go run mksysnum.go " + strings.Join(os.Args[1:], " ")
++}
++
++// buildTags returns build tags
++func buildTags() string {
++ return fmt.Sprintf("%s,%s", goarch, goos)
++}
++
++func checkErr(err error) {
++ if err != nil {
++ fmt.Fprintf(os.Stderr, "%v\n", err)
++ os.Exit(1)
++ }
++}
++
++// source string and substring slice for regexp
++type re struct {
++ str string // source string
++ sub []string // matched sub-string
++}
++
++// Match performs regular expression match
++func (r *re) Match(exp string) bool {
++ r.sub = regexp.MustCompile(exp).FindStringSubmatch(r.str)
++ if r.sub != nil {
++ return true
++ }
++ return false
++}
++
++// fetchFile fetches a text file from URL
++func fetchFile(URL string) io.Reader {
++ resp, err := http.Get(URL)
++ checkErr(err)
++ defer resp.Body.Close()
++ body, err := ioutil.ReadAll(resp.Body)
++ checkErr(err)
++ return strings.NewReader(string(body))
++}
++
++// readFile reads a text file from path
++func readFile(path string) io.Reader {
++ file, err := os.Open(os.Args[1])
++ checkErr(err)
++ return file
++}
++
++func format(name, num, proto string) string {
++ name = strings.ToUpper(name)
++ // There are multiple entries for enosys and nosys, so comment them out.
++ nm := re{str: name}
++ if nm.Match(`^SYS_E?NOSYS$`) {
++ name = fmt.Sprintf("// %s", name)
++ }
++ if name == `SYS_SYS_EXIT` {
++ name = `SYS_EXIT`
++ }
++ return fmt.Sprintf(" %s = %s; // %s\n", name, num, proto)
++}
++
++func main() {
++ // Get the OS (using GOOS_TARGET if it exist)
++ goos = os.Getenv("GOOS_TARGET")
++ if goos == "" {
++ goos = os.Getenv("GOOS")
++ }
++ // Get the architecture (using GOARCH_TARGET if it exists)
++ goarch = os.Getenv("GOARCH_TARGET")
++ if goarch == "" {
++ goarch = os.Getenv("GOARCH")
++ }
++ // Check if GOOS and GOARCH environment variables are defined
++ if goarch == "" || goos == "" {
++ fmt.Fprintf(os.Stderr, "GOARCH or GOOS not defined in environment\n")
++ os.Exit(1)
++ }
++
++ file := strings.TrimSpace(os.Args[1])
++ var syscalls io.Reader
++ if strings.HasPrefix(file, "https://") || strings.HasPrefix(file, "http://") {
++ // Download syscalls.master file
++ syscalls = fetchFile(file)
++ } else {
++ syscalls = readFile(file)
++ }
++
++ var text, line string
++ s := bufio.NewScanner(syscalls)
++ for s.Scan() {
++ t := re{str: line}
++ if t.Match(`^(.*)\\$`) {
++ // Handle continuation
++ line = t.sub[1]
++ line += strings.TrimLeft(s.Text(), " \t")
++ } else {
++ // New line
++ line = s.Text()
++ }
++ t = re{str: line}
++ if t.Match(`\\$`) {
++ continue
++ }
++ t = re{str: line}
++
++ switch goos {
++ case "dragonfly":
++ if t.Match(`^([0-9]+)\s+STD\s+({ \S+\s+(\w+).*)$`) {
++ num, proto := t.sub[1], t.sub[2]
++ name := fmt.Sprintf("SYS_%s", t.sub[3])
++ text += format(name, num, proto)
++ }
++ case "freebsd":
++ if t.Match(`^([0-9]+)\s+\S+\s+(?:(?:NO)?STD|COMPAT10)\s+({ \S+\s+(\w+).*)$`) {
++ num, proto := t.sub[1], t.sub[2]
++ name := fmt.Sprintf("SYS_%s", t.sub[3])
++ text += format(name, num, proto)
++ }
++ case "openbsd":
++ if t.Match(`^([0-9]+)\s+STD\s+(NOLOCK\s+)?({ \S+\s+\*?(\w+).*)$`) {
++ num, proto, name := t.sub[1], t.sub[3], t.sub[4]
++ text += format(name, num, proto)
++ }
++ case "netbsd":
++ if t.Match(`^([0-9]+)\s+((STD)|(NOERR))\s+(RUMP\s+)?({\s+\S+\s*\*?\s*\|(\S+)\|(\S*)\|(\w+).*\s+})(\s+(\S+))?$`) {
++ num, proto, compat := t.sub[1], t.sub[6], t.sub[8]
++ name := t.sub[7] + "_" + t.sub[9]
++ if t.sub[11] != "" {
++ name = t.sub[7] + "_" + t.sub[11]
++ }
++ name = strings.ToUpper(name)
++ if compat == "" || compat == "13" || compat == "30" || compat == "50" {
++ text += fmt.Sprintf(" %s = %s; // %s\n", name, num, proto)
++ }
++ }
++ case "darwin":
++ if t.Match(`^#define\s+SYS_(\w+)\s+([0-9]+)`) {
++ name, num := t.sub[1], t.sub[2]
++ name = strings.ToUpper(name)
++ text += fmt.Sprintf(" SYS_%s = %s;\n", name, num)
++ }
++ default:
++ fmt.Fprintf(os.Stderr, "unrecognized GOOS=%s\n", goos)
++ os.Exit(1)
++
++ }
++ }
++ err := s.Err()
++ checkErr(err)
++
++ fmt.Printf(template, cmdLine(), buildTags(), text)
++}
++
++const template = `// %s
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build %s
++
++package unix
++
++const(
++%s)`
+diff --git a/vendor/golang.org/x/sys/unix/openbsd_pledge.go b/vendor/golang.org/x/sys/unix/openbsd_pledge.go
+deleted file mode 100644
+index db4f72ea..00000000
+--- a/vendor/golang.org/x/sys/unix/openbsd_pledge.go
++++ /dev/null
+@@ -1,38 +0,0 @@
+-// Copyright 2016 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build openbsd
+-// +build 386 amd64 arm
+-
+-package unix
+-
+-import (
+- "syscall"
+- "unsafe"
+-)
+-
+-const (
+- SYS_PLEDGE = 108
+-)
+-
+-// Pledge implements the pledge syscall. For more information see pledge(2).
+-func Pledge(promises string, paths []string) error {
+- promisesPtr, err := syscall.BytePtrFromString(promises)
+- if err != nil {
+- return err
+- }
+- promisesUnsafe, pathsUnsafe := unsafe.Pointer(promisesPtr), unsafe.Pointer(nil)
+- if paths != nil {
+- var pathsPtr []*byte
+- if pathsPtr, err = syscall.SlicePtrFromStrings(paths); err != nil {
+- return err
+- }
+- pathsUnsafe = unsafe.Pointer(&pathsPtr[0])
+- }
+- _, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(promisesUnsafe), uintptr(pathsUnsafe), 0)
+- if e != 0 {
+- return e
+- }
+- return nil
+-}
+diff --git a/vendor/golang.org/x/sys/unix/pagesize_unix.go b/vendor/golang.org/x/sys/unix/pagesize_unix.go
+new file mode 100644
+index 00000000..bc2f3629
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/pagesize_unix.go
+@@ -0,0 +1,15 @@
++// Copyright 2017 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
++
++// For Unix, get the pagesize from the runtime.
++
++package unix
++
++import "syscall"
++
++func Getpagesize() int {
++ return syscall.Getpagesize()
++}
+diff --git a/vendor/golang.org/x/sys/unix/pledge_openbsd.go b/vendor/golang.org/x/sys/unix/pledge_openbsd.go
+new file mode 100644
+index 00000000..eb48294b
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/pledge_openbsd.go
+@@ -0,0 +1,163 @@
++// Copyright 2016 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++package unix
++
++import (
++ "errors"
++ "fmt"
++ "strconv"
++ "syscall"
++ "unsafe"
++)
++
++// Pledge implements the pledge syscall.
++//
++// The pledge syscall does not accept execpromises on OpenBSD releases
++// before 6.3.
++//
++// execpromises must be empty when Pledge is called on OpenBSD
++// releases predating 6.3, otherwise an error will be returned.
++//
++// For more information see pledge(2).
++func Pledge(promises, execpromises string) error {
++ maj, min, err := majmin()
++ if err != nil {
++ return err
++ }
++
++ err = pledgeAvailable(maj, min, execpromises)
++ if err != nil {
++ return err
++ }
++
++ pptr, err := syscall.BytePtrFromString(promises)
++ if err != nil {
++ return err
++ }
++
++ // This variable will hold either a nil unsafe.Pointer or
++ // an unsafe.Pointer to a string (execpromises).
++ var expr unsafe.Pointer
++
++ // If we're running on OpenBSD > 6.2, pass execpromises to the syscall.
++ if maj > 6 || (maj == 6 && min > 2) {
++ exptr, err := syscall.BytePtrFromString(execpromises)
++ if err != nil {
++ return err
++ }
++ expr = unsafe.Pointer(exptr)
++ }
++
++ _, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(unsafe.Pointer(pptr)), uintptr(expr), 0)
++ if e != 0 {
++ return e
++ }
++
++ return nil
++}
++
++// PledgePromises implements the pledge syscall.
++//
++// This changes the promises and leaves the execpromises untouched.
++//
++// For more information see pledge(2).
++func PledgePromises(promises string) error {
++ maj, min, err := majmin()
++ if err != nil {
++ return err
++ }
++
++ err = pledgeAvailable(maj, min, "")
++ if err != nil {
++ return err
++ }
++
++ // This variable holds the execpromises and is always nil.
++ var expr unsafe.Pointer
++
++ pptr, err := syscall.BytePtrFromString(promises)
++ if err != nil {
++ return err
++ }
++
++ _, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(unsafe.Pointer(pptr)), uintptr(expr), 0)
++ if e != 0 {
++ return e
++ }
++
++ return nil
++}
++
++// PledgeExecpromises implements the pledge syscall.
++//
++// This changes the execpromises and leaves the promises untouched.
++//
++// For more information see pledge(2).
++func PledgeExecpromises(execpromises string) error {
++ maj, min, err := majmin()
++ if err != nil {
++ return err
++ }
++
++ err = pledgeAvailable(maj, min, execpromises)
++ if err != nil {
++ return err
++ }
++
++ // This variable holds the promises and is always nil.
++ var pptr unsafe.Pointer
++
++ exptr, err := syscall.BytePtrFromString(execpromises)
++ if err != nil {
++ return err
++ }
++
++ _, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(pptr), uintptr(unsafe.Pointer(exptr)), 0)
++ if e != 0 {
++ return e
++ }
++
++ return nil
++}
++
++// majmin returns major and minor version number for an OpenBSD system.
++func majmin() (major int, minor int, err error) {
++ var v Utsname
++ err = Uname(&v)
++ if err != nil {
++ return
++ }
++
++ major, err = strconv.Atoi(string(v.Release[0]))
++ if err != nil {
++ err = errors.New("cannot parse major version number returned by uname")
++ return
++ }
++
++ minor, err = strconv.Atoi(string(v.Release[2]))
++ if err != nil {
++ err = errors.New("cannot parse minor version number returned by uname")
++ return
++ }
++
++ return
++}
++
++// pledgeAvailable checks for availability of the pledge(2) syscall
++// based on the running OpenBSD version.
++func pledgeAvailable(maj, min int, execpromises string) error {
++ // If OpenBSD <= 5.9, pledge is not available.
++ if (maj == 5 && min != 9) || maj < 5 {
++ return fmt.Errorf("pledge syscall is not available on OpenBSD %d.%d", maj, min)
++ }
++
++ // If OpenBSD <= 6.2 and execpromises is not empty,
++ // return an error - execpromises is not available before 6.3
++ if (maj < 6 || (maj == 6 && min <= 2)) && execpromises != "" {
++ return fmt.Errorf("cannot use execpromises on OpenBSD %d.%d", maj, min)
++ }
++
++ return nil
++}
+diff --git a/vendor/golang.org/x/sys/unix/race.go b/vendor/golang.org/x/sys/unix/race.go
+index 3c7627eb..61712b51 100644
+--- a/vendor/golang.org/x/sys/unix/race.go
++++ b/vendor/golang.org/x/sys/unix/race.go
+@@ -1,4 +1,4 @@
+-// Copyright 2012 The Go Authors. All rights reserved.
++// Copyright 2012 The Go Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+
+diff --git a/vendor/golang.org/x/sys/unix/race0.go b/vendor/golang.org/x/sys/unix/race0.go
+index f8678e0d..ad026678 100644
+--- a/vendor/golang.org/x/sys/unix/race0.go
++++ b/vendor/golang.org/x/sys/unix/race0.go
+@@ -1,8 +1,8 @@
+-// Copyright 2012 The Go Authors. All rights reserved.
++// Copyright 2012 The Go Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+
+-// +build darwin,!race linux,!race freebsd,!race netbsd openbsd solaris dragonfly
++// +build aix darwin,!race linux,!race freebsd,!race netbsd openbsd solaris dragonfly
+
+ package unix
+
+diff --git a/vendor/golang.org/x/sys/unix/readdirent_getdents.go b/vendor/golang.org/x/sys/unix/readdirent_getdents.go
+new file mode 100644
+index 00000000..3a90aa6d
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/readdirent_getdents.go
+@@ -0,0 +1,12 @@
++// Copyright 2019 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build aix dragonfly freebsd linux netbsd openbsd
++
++package unix
++
++// ReadDirent reads directory entries from fd and writes them into buf.
++func ReadDirent(fd int, buf []byte) (n int, err error) {
++ return Getdents(fd, buf)
++}
+diff --git a/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go b/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go
+new file mode 100644
+index 00000000..5fdae40b
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go
+@@ -0,0 +1,19 @@
++// Copyright 2019 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build darwin
++
++package unix
++
++import "unsafe"
++
++// ReadDirent reads directory entries from fd and writes them into buf.
++func ReadDirent(fd int, buf []byte) (n int, err error) {
++ // Final argument is (basep *uintptr) and the syscall doesn't take nil.
++ // 64 bits should be enough. (32 bits isn't even on 386). Since the
++ // actual system call is getdirentries64, 64 is a good guess.
++ // TODO(rsc): Can we use a single global basep for all calls?
++ var base = (*uintptr)(unsafe.Pointer(new(uint64)))
++ return Getdirentries(fd, buf, base)
++}
+diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go b/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go
+new file mode 100644
+index 00000000..5144deec
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go
+@@ -0,0 +1,16 @@
++// Copyright 2019 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++package unix
++
++// Round the length of a raw sockaddr up to align it properly.
++func cmsgAlignOf(salen int) int {
++ salign := SizeofPtr
++ if SizeofPtr == 8 && !supportsABI(_dragonflyABIChangeVersion) {
++ // 64-bit Dragonfly before the September 2019 ABI changes still requires
++ // 32-bit aligned access to network subsystem.
++ salign = 4
++ }
++ return (salen + salign - 1) & ^(salign - 1)
++}
+diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_linux.go b/vendor/golang.org/x/sys/unix/sockcmsg_linux.go
+index d9ff4731..8bf45705 100644
+--- a/vendor/golang.org/x/sys/unix/sockcmsg_linux.go
++++ b/vendor/golang.org/x/sys/unix/sockcmsg_linux.go
+@@ -1,4 +1,4 @@
+-// Copyright 2011 The Go Authors. All rights reserved.
++// Copyright 2011 The Go Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+
+@@ -17,7 +17,7 @@ func UnixCredentials(ucred *Ucred) []byte {
+ h.Level = SOL_SOCKET
+ h.Type = SCM_CREDENTIALS
+ h.SetLen(CmsgLen(SizeofUcred))
+- *((*Ucred)(cmsgData(h))) = *ucred
++ *(*Ucred)(h.data(0)) = *ucred
+ return b
+ }
+
+diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_unix.go b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go
+index bb756ece..003916ed 100644
+--- a/vendor/golang.org/x/sys/unix/sockcmsg_unix.go
++++ b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go
+@@ -2,25 +2,15 @@
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+
+-// +build darwin dragonfly freebsd linux netbsd openbsd solaris
++// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
+
+ // Socket control messages
+
+ package unix
+
+-import "unsafe"
+-
+-// Round the length of a raw sockaddr up to align it properly.
+-func cmsgAlignOf(salen int) int {
+- salign := sizeofPtr
+- // NOTE: It seems like 64-bit Darwin, DragonFly BSD and
+- // Solaris kernels still require 32-bit aligned access to
+- // network subsystem.
+- if darwin64Bit || dragonfly64Bit || solaris64Bit {
+- salign = 4
+- }
+- return (salen + salign - 1) & ^(salign - 1)
+-}
++import (
++ "unsafe"
++)
+
+ // CmsgLen returns the value to store in the Len field of the Cmsghdr
+ // structure, taking into account any necessary alignment.
+@@ -34,8 +24,8 @@ func CmsgSpace(datalen int) int {
+ return cmsgAlignOf(SizeofCmsghdr) + cmsgAlignOf(datalen)
+ }
+
+-func cmsgData(h *Cmsghdr) unsafe.Pointer {
+- return unsafe.Pointer(uintptr(unsafe.Pointer(h)) + uintptr(cmsgAlignOf(SizeofCmsghdr)))
++func (h *Cmsghdr) data(offset uintptr) unsafe.Pointer {
++ return unsafe.Pointer(uintptr(unsafe.Pointer(h)) + uintptr(cmsgAlignOf(SizeofCmsghdr)) + offset)
+ }
+
+ // SocketControlMessage represents a socket control message.
+@@ -78,10 +68,8 @@ func UnixRights(fds ...int) []byte {
+ h.Level = SOL_SOCKET
+ h.Type = SCM_RIGHTS
+ h.SetLen(CmsgLen(datalen))
+- data := cmsgData(h)
+- for _, fd := range fds {
+- *(*int32)(data) = int32(fd)
+- data = unsafe.Pointer(uintptr(data) + 4)
++ for i, fd := range fds {
++ *(*int32)(h.data(4 * uintptr(i))) = int32(fd)
+ }
+ return b
+ }
+diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go b/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go
+new file mode 100644
+index 00000000..7d08dae5
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go
+@@ -0,0 +1,38 @@
++// Copyright 2019 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build aix darwin freebsd linux netbsd openbsd solaris
++
++package unix
++
++import (
++ "runtime"
++)
++
++// Round the length of a raw sockaddr up to align it properly.
++func cmsgAlignOf(salen int) int {
++ salign := SizeofPtr
++
++ // dragonfly needs to check ABI version at runtime, see cmsgAlignOf in
++ // sockcmsg_dragonfly.go
++ switch runtime.GOOS {
++ case "aix":
++ // There is no alignment on AIX.
++ salign = 1
++ case "darwin", "illumos", "solaris":
++ // NOTE: It seems like 64-bit Darwin, Illumos and Solaris
++ // kernels still require 32-bit aligned access to network
++ // subsystem.
++ if SizeofPtr == 8 {
++ salign = 4
++ }
++ case "netbsd", "openbsd":
++ // NetBSD and OpenBSD armv7 require 64-bit alignment.
++ if runtime.GOARCH == "arm" {
++ salign = 8
++ }
++ }
++
++ return (salen + salign - 1) & ^(salign - 1)
++}
+diff --git a/vendor/golang.org/x/sys/unix/str.go b/vendor/golang.org/x/sys/unix/str.go
+index 35ed6643..17fb6986 100644
+--- a/vendor/golang.org/x/sys/unix/str.go
++++ b/vendor/golang.org/x/sys/unix/str.go
+@@ -2,7 +2,7 @@
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+
+-// +build darwin dragonfly freebsd linux netbsd openbsd solaris
++// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
+
+ package unix
+
+diff --git a/vendor/golang.org/x/sys/unix/syscall.go b/vendor/golang.org/x/sys/unix/syscall.go
+index 85e35020..fd4ee8eb 100644
+--- a/vendor/golang.org/x/sys/unix/syscall.go
++++ b/vendor/golang.org/x/sys/unix/syscall.go
+@@ -2,33 +2,36 @@
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+
+-// +build darwin dragonfly freebsd linux netbsd openbsd solaris
++// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
+
+ // Package unix contains an interface to the low-level operating system
+-// primitives. OS details vary depending on the underlying system, and
++// primitives. OS details vary depending on the underlying system, and
+ // by default, godoc will display OS-specific documentation for the current
+-// system. If you want godoc to display OS documentation for another
+-// system, set $GOOS and $GOARCH to the desired system. For example, if
++// system. If you want godoc to display OS documentation for another
++// system, set $GOOS and $GOARCH to the desired system. For example, if
+ // you want to view documentation for freebsd/arm on linux/amd64, set $GOOS
+ // to freebsd and $GOARCH to arm.
++//
+ // The primary use of this package is inside other packages that provide a more
+ // portable interface to the system, such as "os", "time" and "net". Use
+ // those packages rather than this one if you can.
++//
+ // For details of the functions and data types in this package consult
+ // the manuals for the appropriate operating system.
++//
+ // These calls return err == nil to indicate success; otherwise
+ // err represents an operating system error describing the failure and
+ // holds a value of type syscall.Errno.
+ package unix // import "golang.org/x/sys/unix"
+
++import "strings"
++
+ // ByteSliceFromString returns a NUL-terminated slice of bytes
+ // containing the text of s. If s contains a NUL byte at any
+ // location, it returns (nil, EINVAL).
+ func ByteSliceFromString(s string) ([]byte, error) {
+- for i := 0; i < len(s); i++ {
+- if s[i] == 0 {
+- return nil, EINVAL
+- }
++ if strings.IndexByte(s, 0) != -1 {
++ return nil, EINVAL
+ }
+ a := make([]byte, len(s)+1)
+ copy(a, s)
+@@ -47,23 +50,4 @@ func BytePtrFromString(s string) (*byte, error) {
+ }
+
+ // Single-word zero for use when we need a valid pointer to 0 bytes.
+-// See mkunix.pl.
+ var _zero uintptr
+-
+-func (ts *Timespec) Unix() (sec int64, nsec int64) {
+- return int64(ts.Sec), int64(ts.Nsec)
+-}
+-
+-func (tv *Timeval) Unix() (sec int64, nsec int64) {
+- return int64(tv.Sec), int64(tv.Usec) * 1000
+-}
+-
+-func (ts *Timespec) Nano() int64 {
+- return int64(ts.Sec)*1e9 + int64(ts.Nsec)
+-}
+-
+-func (tv *Timeval) Nano() int64 {
+- return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000
+-}
+-
+-func TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 }
+diff --git a/vendor/golang.org/x/sys/unix/syscall_aix.go b/vendor/golang.org/x/sys/unix/syscall_aix.go
+new file mode 100644
+index 00000000..9ad8a0d4
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_aix.go
+@@ -0,0 +1,536 @@
++// Copyright 2018 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build aix
++
++// Aix system calls.
++// This file is compiled as ordinary Go code,
++// but it is also input to mksyscall,
++// which parses the //sys lines and generates system call stubs.
++// Note that sometimes we use a lowercase //sys name and
++// wrap it in our own nicer implementation.
++
++package unix
++
++import "unsafe"
++
++/*
++ * Wrapped
++ */
++
++//sys utimes(path string, times *[2]Timeval) (err error)
++func Utimes(path string, tv []Timeval) error {
++ if len(tv) != 2 {
++ return EINVAL
++ }
++ return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
++}
++
++//sys utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error)
++func UtimesNano(path string, ts []Timespec) error {
++ if len(ts) != 2 {
++ return EINVAL
++ }
++ return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
++}
++
++func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {
++ if ts == nil {
++ return utimensat(dirfd, path, nil, flags)
++ }
++ if len(ts) != 2 {
++ return EINVAL
++ }
++ return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)
++}
++
++func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {
++ if sa.Port < 0 || sa.Port > 0xFFFF {
++ return nil, 0, EINVAL
++ }
++ sa.raw.Family = AF_INET
++ p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))
++ p[0] = byte(sa.Port >> 8)
++ p[1] = byte(sa.Port)
++ for i := 0; i < len(sa.Addr); i++ {
++ sa.raw.Addr[i] = sa.Addr[i]
++ }
++ return unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil
++}
++
++func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {
++ if sa.Port < 0 || sa.Port > 0xFFFF {
++ return nil, 0, EINVAL
++ }
++ sa.raw.Family = AF_INET6
++ p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))
++ p[0] = byte(sa.Port >> 8)
++ p[1] = byte(sa.Port)
++ sa.raw.Scope_id = sa.ZoneId
++ for i := 0; i < len(sa.Addr); i++ {
++ sa.raw.Addr[i] = sa.Addr[i]
++ }
++ return unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil
++}
++
++func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {
++ name := sa.Name
++ n := len(name)
++ if n > len(sa.raw.Path) {
++ return nil, 0, EINVAL
++ }
++ if n == len(sa.raw.Path) && name[0] != '@' {
++ return nil, 0, EINVAL
++ }
++ sa.raw.Family = AF_UNIX
++ for i := 0; i < n; i++ {
++ sa.raw.Path[i] = uint8(name[i])
++ }
++ // length is family (uint16), name, NUL.
++ sl := _Socklen(2)
++ if n > 0 {
++ sl += _Socklen(n) + 1
++ }
++ if sa.raw.Path[0] == '@' {
++ sa.raw.Path[0] = 0
++ // Don't count trailing NUL for abstract address.
++ sl--
++ }
++
++ return unsafe.Pointer(&sa.raw), sl, nil
++}
++
++func Getsockname(fd int) (sa Sockaddr, err error) {
++ var rsa RawSockaddrAny
++ var len _Socklen = SizeofSockaddrAny
++ if err = getsockname(fd, &rsa, &len); err != nil {
++ return
++ }
++ return anyToSockaddr(fd, &rsa)
++}
++
++//sys getcwd(buf []byte) (err error)
++
++const ImplementsGetwd = true
++
++func Getwd() (ret string, err error) {
++ for len := uint64(4096); ; len *= 2 {
++ b := make([]byte, len)
++ err := getcwd(b)
++ if err == nil {
++ i := 0
++ for b[i] != 0 {
++ i++
++ }
++ return string(b[0:i]), nil
++ }
++ if err != ERANGE {
++ return "", err
++ }
++ }
++}
++
++func Getcwd(buf []byte) (n int, err error) {
++ err = getcwd(buf)
++ if err == nil {
++ i := 0
++ for buf[i] != 0 {
++ i++
++ }
++ n = i + 1
++ }
++ return
++}
++
++func Getgroups() (gids []int, err error) {
++ n, err := getgroups(0, nil)
++ if err != nil {
++ return nil, err
++ }
++ if n == 0 {
++ return nil, nil
++ }
++
++ // Sanity check group count. Max is 16 on BSD.
++ if n < 0 || n > 1000 {
++ return nil, EINVAL
++ }
++
++ a := make([]_Gid_t, n)
++ n, err = getgroups(n, &a[0])
++ if err != nil {
++ return nil, err
++ }
++ gids = make([]int, n)
++ for i, v := range a[0:n] {
++ gids[i] = int(v)
++ }
++ return
++}
++
++func Setgroups(gids []int) (err error) {
++ if len(gids) == 0 {
++ return setgroups(0, nil)
++ }
++
++ a := make([]_Gid_t, len(gids))
++ for i, v := range gids {
++ a[i] = _Gid_t(v)
++ }
++ return setgroups(len(a), &a[0])
++}
++
++/*
++ * Socket
++ */
++
++//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
++
++func Accept(fd int) (nfd int, sa Sockaddr, err error) {
++ var rsa RawSockaddrAny
++ var len _Socklen = SizeofSockaddrAny
++ nfd, err = accept(fd, &rsa, &len)
++ if nfd == -1 {
++ return
++ }
++ sa, err = anyToSockaddr(fd, &rsa)
++ if err != nil {
++ Close(nfd)
++ nfd = 0
++ }
++ return
++}
++
++func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) {
++ // Recvmsg not implemented on AIX
++ sa := new(SockaddrUnix)
++ return -1, -1, -1, sa, ENOSYS
++}
++
++func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) {
++ _, err = SendmsgN(fd, p, oob, to, flags)
++ return
++}
++
++func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) {
++ // SendmsgN not implemented on AIX
++ return -1, ENOSYS
++}
++
++func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
++ switch rsa.Addr.Family {
++
++ case AF_UNIX:
++ pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))
++ sa := new(SockaddrUnix)
++
++ // Some versions of AIX have a bug in getsockname (see IV78655).
++ // We can't rely on sa.Len being set correctly.
++ n := SizeofSockaddrUnix - 3 // subtract leading Family, Len, terminating NUL.
++ for i := 0; i < n; i++ {
++ if pp.Path[i] == 0 {
++ n = i
++ break
++ }
++ }
++
++ bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n]
++ sa.Name = string(bytes)
++ return sa, nil
++
++ case AF_INET:
++ pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))
++ sa := new(SockaddrInet4)
++ p := (*[2]byte)(unsafe.Pointer(&pp.Port))
++ sa.Port = int(p[0])<<8 + int(p[1])
++ for i := 0; i < len(sa.Addr); i++ {
++ sa.Addr[i] = pp.Addr[i]
++ }
++ return sa, nil
++
++ case AF_INET6:
++ pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))
++ sa := new(SockaddrInet6)
++ p := (*[2]byte)(unsafe.Pointer(&pp.Port))
++ sa.Port = int(p[0])<<8 + int(p[1])
++ sa.ZoneId = pp.Scope_id
++ for i := 0; i < len(sa.Addr); i++ {
++ sa.Addr[i] = pp.Addr[i]
++ }
++ return sa, nil
++ }
++ return nil, EAFNOSUPPORT
++}
++
++func Gettimeofday(tv *Timeval) (err error) {
++ err = gettimeofday(tv, nil)
++ return
++}
++
++func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
++ if raceenabled {
++ raceReleaseMerge(unsafe.Pointer(&ioSync))
++ }
++ return sendfile(outfd, infd, offset, count)
++}
++
++// TODO
++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
++ return -1, ENOSYS
++}
++
++func direntIno(buf []byte) (uint64, bool) {
++ return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))
++}
++
++func direntReclen(buf []byte) (uint64, bool) {
++ return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))
++}
++
++func direntNamlen(buf []byte) (uint64, bool) {
++ reclen, ok := direntReclen(buf)
++ if !ok {
++ return 0, false
++ }
++ return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true
++}
++
++//sys getdirent(fd int, buf []byte) (n int, err error)
++func Getdents(fd int, buf []byte) (n int, err error) {
++ return getdirent(fd, buf)
++}
++
++//sys wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error)
++func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {
++ var status _C_int
++ var r Pid_t
++ err = ERESTART
++ // AIX wait4 may return with ERESTART errno, while the processus is still
++ // active.
++ for err == ERESTART {
++ r, err = wait4(Pid_t(pid), &status, options, rusage)
++ }
++ wpid = int(r)
++ if wstatus != nil {
++ *wstatus = WaitStatus(status)
++ }
++ return
++}
++
++/*
++ * Wait
++ */
++
++type WaitStatus uint32
++
++func (w WaitStatus) Stopped() bool { return w&0x40 != 0 }
++func (w WaitStatus) StopSignal() Signal {
++ if !w.Stopped() {
++ return -1
++ }
++ return Signal(w>>8) & 0xFF
++}
++
++func (w WaitStatus) Exited() bool { return w&0xFF == 0 }
++func (w WaitStatus) ExitStatus() int {
++ if !w.Exited() {
++ return -1
++ }
++ return int((w >> 8) & 0xFF)
++}
++
++func (w WaitStatus) Signaled() bool { return w&0x40 == 0 && w&0xFF != 0 }
++func (w WaitStatus) Signal() Signal {
++ if !w.Signaled() {
++ return -1
++ }
++ return Signal(w>>16) & 0xFF
++}
++
++func (w WaitStatus) Continued() bool { return w&0x01000000 != 0 }
++
++func (w WaitStatus) CoreDump() bool { return w&0x80 == 0x80 }
++
++func (w WaitStatus) TrapCause() int { return -1 }
++
++//sys ioctl(fd int, req uint, arg uintptr) (err error)
++
++// fcntl must never be called with cmd=F_DUP2FD because it doesn't work on AIX
++// There is no way to create a custom fcntl and to keep //sys fcntl easily,
++// Therefore, the programmer must call dup2 instead of fcntl in this case.
++
++// FcntlInt performs a fcntl syscall on fd with the provided command and argument.
++//sys FcntlInt(fd uintptr, cmd int, arg int) (r int,err error) = fcntl
++
++// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.
++//sys FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) = fcntl
++
++//sys fcntl(fd int, cmd int, arg int) (val int, err error)
++
++/*
++ * Direct access
++ */
++
++//sys Acct(path string) (err error)
++//sys Chdir(path string) (err error)
++//sys Chroot(path string) (err error)
++//sys Close(fd int) (err error)
++//sys Dup(oldfd int) (fd int, err error)
++//sys Exit(code int)
++//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error)
++//sys Fchdir(fd int) (err error)
++//sys Fchmod(fd int, mode uint32) (err error)
++//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error)
++//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error)
++//sys Fdatasync(fd int) (err error)
++//sys Fsync(fd int) (err error)
++// readdir_r
++//sysnb Getpgid(pid int) (pgid int, err error)
++
++//sys Getpgrp() (pid int)
++
++//sysnb Getpid() (pid int)
++//sysnb Getppid() (ppid int)
++//sys Getpriority(which int, who int) (prio int, err error)
++//sysnb Getrusage(who int, rusage *Rusage) (err error)
++//sysnb Getsid(pid int) (sid int, err error)
++//sysnb Kill(pid int, sig Signal) (err error)
++//sys Klogctl(typ int, buf []byte) (n int, err error) = syslog
++//sys Mkdir(dirfd int, path string, mode uint32) (err error)
++//sys Mkdirat(dirfd int, path string, mode uint32) (err error)
++//sys Mkfifo(path string, mode uint32) (err error)
++//sys Mknod(path string, mode uint32, dev int) (err error)
++//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error)
++//sys Nanosleep(time *Timespec, leftover *Timespec) (err error)
++//sys Open(path string, mode int, perm uint32) (fd int, err error) = open64
++//sys Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
++//sys read(fd int, p []byte) (n int, err error)
++//sys Readlink(path string, buf []byte) (n int, err error)
++//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
++//sys Setdomainname(p []byte) (err error)
++//sys Sethostname(p []byte) (err error)
++//sysnb Setpgid(pid int, pgid int) (err error)
++//sysnb Setsid() (pid int, err error)
++//sysnb Settimeofday(tv *Timeval) (err error)
++
++//sys Setuid(uid int) (err error)
++//sys Setgid(uid int) (err error)
++
++//sys Setpriority(which int, who int, prio int) (err error)
++//sys Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error)
++//sys Sync()
++//sysnb Times(tms *Tms) (ticks uintptr, err error)
++//sysnb Umask(mask int) (oldmask int)
++//sysnb Uname(buf *Utsname) (err error)
++//sys Unlink(path string) (err error)
++//sys Unlinkat(dirfd int, path string, flags int) (err error)
++//sys Ustat(dev int, ubuf *Ustat_t) (err error)
++//sys write(fd int, p []byte) (n int, err error)
++//sys readlen(fd int, p *byte, np int) (n int, err error) = read
++//sys writelen(fd int, p *byte, np int) (n int, err error) = write
++
++//sys Dup2(oldfd int, newfd int) (err error)
++//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = posix_fadvise64
++//sys Fchown(fd int, uid int, gid int) (err error)
++//sys fstat(fd int, stat *Stat_t) (err error)
++//sys fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = fstatat
++//sys Fstatfs(fd int, buf *Statfs_t) (err error)
++//sys Ftruncate(fd int, length int64) (err error)
++//sysnb Getegid() (egid int)
++//sysnb Geteuid() (euid int)
++//sysnb Getgid() (gid int)
++//sysnb Getuid() (uid int)
++//sys Lchown(path string, uid int, gid int) (err error)
++//sys Listen(s int, n int) (err error)
++//sys lstat(path string, stat *Stat_t) (err error)
++//sys Pause() (err error)
++//sys Pread(fd int, p []byte, offset int64) (n int, err error) = pread64
++//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = pwrite64
++//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
++//sys Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error)
++//sysnb Setregid(rgid int, egid int) (err error)
++//sysnb Setreuid(ruid int, euid int) (err error)
++//sys Shutdown(fd int, how int) (err error)
++//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
++//sys stat(path string, statptr *Stat_t) (err error)
++//sys Statfs(path string, buf *Statfs_t) (err error)
++//sys Truncate(path string, length int64) (err error)
++
++//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
++//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
++//sysnb getgroups(n int, list *_Gid_t) (nn int, err error)
++//sysnb setgroups(n int, list *_Gid_t) (err error)
++//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)
++//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)
++//sysnb socket(domain int, typ int, proto int) (fd int, err error)
++//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error)
++//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
++//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
++//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
++//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
++
++// In order to use msghdr structure with Control, Controllen, nrecvmsg and nsendmsg must be used.
++//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = nrecvmsg
++//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = nsendmsg
++
++//sys munmap(addr uintptr, length uintptr) (err error)
++
++var mapper = &mmapper{
++ active: make(map[*byte][]byte),
++ mmap: mmap,
++ munmap: munmap,
++}
++
++func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {
++ return mapper.Mmap(fd, offset, length, prot, flags)
++}
++
++func Munmap(b []byte) (err error) {
++ return mapper.Munmap(b)
++}
++
++//sys Madvise(b []byte, advice int) (err error)
++//sys Mprotect(b []byte, prot int) (err error)
++//sys Mlock(b []byte) (err error)
++//sys Mlockall(flags int) (err error)
++//sys Msync(b []byte, flags int) (err error)
++//sys Munlock(b []byte) (err error)
++//sys Munlockall() (err error)
++
++//sysnb pipe(p *[2]_C_int) (err error)
++
++func Pipe(p []int) (err error) {
++ if len(p) != 2 {
++ return EINVAL
++ }
++ var pp [2]_C_int
++ err = pipe(&pp)
++ p[0] = int(pp[0])
++ p[1] = int(pp[1])
++ return
++}
++
++//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error)
++
++func Poll(fds []PollFd, timeout int) (n int, err error) {
++ if len(fds) == 0 {
++ return poll(nil, 0, timeout)
++ }
++ return poll(&fds[0], len(fds), timeout)
++}
++
++//sys gettimeofday(tv *Timeval, tzp *Timezone) (err error)
++//sysnb Time(t *Time_t) (tt Time_t, err error)
++//sys Utime(path string, buf *Utimbuf) (err error)
++
++//sys Getsystemcfg(label int) (n uint64)
++
++//sys umount(target string) (err error)
++func Unmount(target string, flags int) (err error) {
++ if flags != 0 {
++ // AIX doesn't have any flags for umount.
++ return ENOSYS
++ }
++ return umount(target)
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go
+new file mode 100644
+index 00000000..b3c8e330
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go
+@@ -0,0 +1,54 @@
++// Copyright 2018 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build aix
++// +build ppc
++
++package unix
++
++//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) = getrlimit64
++//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) = setrlimit64
++//sys Seek(fd int, offset int64, whence int) (off int64, err error) = lseek64
++
++//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
++
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: int32(sec), Nsec: int32(nsec)}
++}
++
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: int32(sec), Usec: int32(usec)}
++}
++
++func (iov *Iovec) SetLen(length int) {
++ iov.Len = uint32(length)
++}
++
++func (msghdr *Msghdr) SetControllen(length int) {
++ msghdr.Controllen = uint32(length)
++}
++
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = int32(length)
++}
++
++func (cmsg *Cmsghdr) SetLen(length int) {
++ cmsg.Len = uint32(length)
++}
++
++func Fstat(fd int, stat *Stat_t) error {
++ return fstat(fd, stat)
++}
++
++func Fstatat(dirfd int, path string, stat *Stat_t, flags int) error {
++ return fstatat(dirfd, path, stat, flags)
++}
++
++func Lstat(path string, stat *Stat_t) error {
++ return lstat(path, stat)
++}
++
++func Stat(path string, statptr *Stat_t) error {
++ return stat(path, statptr)
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go b/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go
+new file mode 100644
+index 00000000..9a6e0241
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go
+@@ -0,0 +1,85 @@
++// Copyright 2018 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build aix
++// +build ppc64
++
++package unix
++
++//sysnb Getrlimit(resource int, rlim *Rlimit) (err error)
++//sysnb Setrlimit(resource int, rlim *Rlimit) (err error)
++//sys Seek(fd int, offset int64, whence int) (off int64, err error) = lseek
++
++//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) = mmap64
++
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: sec, Nsec: nsec}
++}
++
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: int64(sec), Usec: int32(usec)}
++}
++
++func (iov *Iovec) SetLen(length int) {
++ iov.Len = uint64(length)
++}
++
++func (msghdr *Msghdr) SetControllen(length int) {
++ msghdr.Controllen = uint32(length)
++}
++
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = int32(length)
++}
++
++func (cmsg *Cmsghdr) SetLen(length int) {
++ cmsg.Len = uint32(length)
++}
++
++// In order to only have Timespec structure, type of Stat_t's fields
++// Atim, Mtim and Ctim is changed from StTimespec to Timespec during
++// ztypes generation.
++// On ppc64, Timespec.Nsec is an int64 while StTimespec.Nsec is an
++// int32, so the fields' value must be modified.
++func fixStatTimFields(stat *Stat_t) {
++ stat.Atim.Nsec >>= 32
++ stat.Mtim.Nsec >>= 32
++ stat.Ctim.Nsec >>= 32
++}
++
++func Fstat(fd int, stat *Stat_t) error {
++ err := fstat(fd, stat)
++ if err != nil {
++ return err
++ }
++ fixStatTimFields(stat)
++ return nil
++}
++
++func Fstatat(dirfd int, path string, stat *Stat_t, flags int) error {
++ err := fstatat(dirfd, path, stat, flags)
++ if err != nil {
++ return err
++ }
++ fixStatTimFields(stat)
++ return nil
++}
++
++func Lstat(path string, stat *Stat_t) error {
++ err := lstat(path, stat)
++ if err != nil {
++ return err
++ }
++ fixStatTimFields(stat)
++ return nil
++}
++
++func Stat(path string, statptr *Stat_t) error {
++ err := stat(path, statptr)
++ if err != nil {
++ return err
++ }
++ fixStatTimFields(statptr)
++ return nil
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_bsd.go b/vendor/golang.org/x/sys/unix/syscall_bsd.go
+index c2846b32..68605db6 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_bsd.go
++++ b/vendor/golang.org/x/sys/unix/syscall_bsd.go
+@@ -34,7 +34,7 @@ func Getgroups() (gids []int, err error) {
+ return nil, nil
+ }
+
+- // Sanity check group count. Max is 16 on BSD.
++ // Sanity check group count. Max is 16 on BSD.
+ if n < 0 || n > 1000 {
+ return nil, EINVAL
+ }
+@@ -63,15 +63,6 @@ func Setgroups(gids []int) (err error) {
+ return setgroups(len(a), &a[0])
+ }
+
+-func ReadDirent(fd int, buf []byte) (n int, err error) {
+- // Final argument is (basep *uintptr) and the syscall doesn't take nil.
+- // 64 bits should be enough. (32 bits isn't even on 386). Since the
+- // actual system call is getdirentries64, 64 is a good guess.
+- // TODO(rsc): Can we use a single global basep for all calls?
+- var base = (*uintptr)(unsafe.Pointer(new(uint64)))
+- return Getdirentries(fd, buf, base)
+-}
+-
+ // Wait status is 7 bits at bottom, either 0 (exited),
+ // 0x7F (stopped), or a signal number that caused an exit.
+ // The 0x80 bit is whether there was a core dump.
+@@ -86,6 +77,7 @@ const (
+ shift = 8
+
+ exited = 0
++ killed = 9
+ stopped = 0x7F
+ )
+
+@@ -112,6 +104,8 @@ func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 }
+
+ func (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP }
+
++func (w WaitStatus) Killed() bool { return w&mask == killed && syscall.Signal(w>>shift) != SIGKILL }
++
+ func (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP }
+
+ func (w WaitStatus) StopSignal() syscall.Signal {
+@@ -206,7 +200,7 @@ func (sa *SockaddrDatalink) sockaddr() (unsafe.Pointer, _Socklen, error) {
+ return unsafe.Pointer(&sa.raw), SizeofSockaddrDatalink, nil
+ }
+
+-func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {
++func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
+ switch rsa.Addr.Family {
+ case AF_LINK:
+ pp := (*RawSockaddrDatalink)(unsafe.Pointer(rsa))
+@@ -243,7 +237,7 @@ func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {
+ break
+ }
+ }
+- bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n]
++ bytes := (*[len(pp.Path)]byte)(unsafe.Pointer(&pp.Path[0]))[0:n]
+ sa.Name = string(bytes)
+ return sa, nil
+
+@@ -286,7 +280,7 @@ func Accept(fd int) (nfd int, sa Sockaddr, err error) {
+ Close(nfd)
+ return 0, nil, ECONNABORTED
+ }
+- sa, err = anyToSockaddr(&rsa)
++ sa, err = anyToSockaddr(fd, &rsa)
+ if err != nil {
+ Close(nfd)
+ nfd = 0
+@@ -306,50 +300,21 @@ func Getsockname(fd int) (sa Sockaddr, err error) {
+ rsa.Addr.Family = AF_UNIX
+ rsa.Addr.Len = SizeofSockaddrUnix
+ }
+- return anyToSockaddr(&rsa)
++ return anyToSockaddr(fd, &rsa)
+ }
+
+ //sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error)
+
+-func GetsockoptByte(fd, level, opt int) (value byte, err error) {
+- var n byte
+- vallen := _Socklen(1)
+- err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)
+- return n, err
+-}
+-
+-func GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) {
+- vallen := _Socklen(4)
+- err = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen)
+- return value, err
+-}
+-
+-func GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) {
+- var value IPMreq
+- vallen := _Socklen(SizeofIPMreq)
+- err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
+- return &value, err
+-}
+-
+-func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) {
+- var value IPv6Mreq
+- vallen := _Socklen(SizeofIPv6Mreq)
+- err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
+- return &value, err
+-}
+-
+-func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) {
+- var value IPv6MTUInfo
+- vallen := _Socklen(SizeofIPv6MTUInfo)
+- err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
+- return &value, err
+-}
+-
+-func GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) {
+- var value ICMPv6Filter
+- vallen := _Socklen(SizeofICMPv6Filter)
+- err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
+- return &value, err
++// GetsockoptString returns the string value of the socket option opt for the
++// socket associated with fd at the given socket level.
++func GetsockoptString(fd, level, opt int) (string, error) {
++ buf := make([]byte, 256)
++ vallen := _Socklen(len(buf))
++ err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)
++ if err != nil {
++ return "", err
++ }
++ return string(buf[:vallen-1]), nil
+ }
+
+ //sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
+@@ -385,7 +350,7 @@ func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from
+ recvflags = int(msg.Flags)
+ // source address is only specified if the socket is unconnected
+ if rsa.Addr.Family != AF_UNSPEC {
+- from, err = anyToSockaddr(&rsa)
++ from, err = anyToSockaddr(fd, &rsa)
+ }
+ return
+ }
+@@ -448,8 +413,6 @@ func Kevent(kq int, changes, events []Kevent_t, timeout *Timespec) (n int, err e
+ return kevent(kq, change, len(changes), event, len(events), timeout)
+ }
+
+-//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
+-
+ // sysctlmib translates name to mib number and appends any additional args.
+ func sysctlmib(name string, args ...int) ([]_C_int, error) {
+ // Translate name to mib number.
+@@ -547,6 +510,23 @@ func SysctlRaw(name string, args ...int) ([]byte, error) {
+ return buf[:n], nil
+ }
+
++func SysctlClockinfo(name string) (*Clockinfo, error) {
++ mib, err := sysctlmib(name)
++ if err != nil {
++ return nil, err
++ }
++
++ n := uintptr(SizeofClockinfo)
++ var ci Clockinfo
++ if err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil {
++ return nil, err
++ }
++ if n != SizeofClockinfo {
++ return nil, EIO
++ }
++ return &ci, nil
++}
++
+ //sys utimes(path string, timeval *[2]Timeval) (err error)
+
+ func Utimes(path string, tv []Timeval) error {
+@@ -570,7 +550,12 @@ func UtimesNano(path string, ts []Timespec) error {
+ if len(ts) != 2 {
+ return EINVAL
+ }
+- err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
++ // Darwin setattrlist can set nanosecond timestamps
++ err := setattrlistTimes(path, ts, 0)
++ if err != ENOSYS {
++ return err
++ }
++ err = utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
+ if err != ENOSYS {
+ return err
+ }
+@@ -590,6 +575,10 @@ func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {
+ if len(ts) != 2 {
+ return EINVAL
+ }
++ err := setattrlistTimes(path, ts, flags)
++ if err != ENOSYS {
++ return err
++ }
+ return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)
+ }
+
+@@ -605,7 +594,14 @@ func Futimes(fd int, tv []Timeval) error {
+ return futimes(fd, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
+ }
+
+-//sys fcntl(fd int, cmd int, arg int) (val int, err error)
++//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error)
++
++func Poll(fds []PollFd, timeout int) (n int, err error) {
++ if len(fds) == 0 {
++ return poll(nil, 0, timeout)
++ }
++ return poll(&fds[0], len(fds), timeout)
++}
+
+ // TODO: wrap
+ // Acct(name nil-string) (err error)
+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go b/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go
+new file mode 100644
+index 00000000..6a15cba6
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go
+@@ -0,0 +1,29 @@
++// Copyright 2019 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build darwin,go1.12,!go1.13
++
++package unix
++
++import (
++ "unsafe"
++)
++
++func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
++ // To implement this using libSystem we'd need syscall_syscallPtr for
++ // fdopendir. However, syscallPtr was only added in Go 1.13, so we fall
++ // back to raw syscalls for this func on Go 1.12.
++ var p unsafe.Pointer
++ if len(buf) > 0 {
++ p = unsafe.Pointer(&buf[0])
++ } else {
++ p = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(p), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ return n, errnoErr(e1)
++ }
++ return n, nil
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go b/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go
+new file mode 100644
+index 00000000..f911617b
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go
+@@ -0,0 +1,101 @@
++// Copyright 2019 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build darwin,go1.13
++
++package unix
++
++import "unsafe"
++
++//sys closedir(dir uintptr) (err error)
++//sys readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno)
++
++func fdopendir(fd int) (dir uintptr, err error) {
++ r0, _, e1 := syscall_syscallPtr(funcPC(libc_fdopendir_trampoline), uintptr(fd), 0, 0)
++ dir = uintptr(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fdopendir_trampoline()
++
++//go:linkname libc_fdopendir libc_fdopendir
++//go:cgo_import_dynamic libc_fdopendir fdopendir "/usr/lib/libSystem.B.dylib"
++
++func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
++ // Simulate Getdirentries using fdopendir/readdir_r/closedir.
++ // We store the number of entries to skip in the seek
++ // offset of fd. See issue #31368.
++ // It's not the full required semantics, but should handle the case
++ // of calling Getdirentries or ReadDirent repeatedly.
++ // It won't handle assigning the results of lseek to *basep, or handle
++ // the directory being edited underfoot.
++ skip, err := Seek(fd, 0, 1 /* SEEK_CUR */)
++ if err != nil {
++ return 0, err
++ }
++
++ // We need to duplicate the incoming file descriptor
++ // because the caller expects to retain control of it, but
++ // fdopendir expects to take control of its argument.
++ // Just Dup'ing the file descriptor is not enough, as the
++ // result shares underlying state. Use Openat to make a really
++ // new file descriptor referring to the same directory.
++ fd2, err := Openat(fd, ".", O_RDONLY, 0)
++ if err != nil {
++ return 0, err
++ }
++ d, err := fdopendir(fd2)
++ if err != nil {
++ Close(fd2)
++ return 0, err
++ }
++ defer closedir(d)
++
++ var cnt int64
++ for {
++ var entry Dirent
++ var entryp *Dirent
++ e := readdir_r(d, &entry, &entryp)
++ if e != 0 {
++ return n, errnoErr(e)
++ }
++ if entryp == nil {
++ break
++ }
++ if skip > 0 {
++ skip--
++ cnt++
++ continue
++ }
++ reclen := int(entry.Reclen)
++ if reclen > len(buf) {
++ // Not enough room. Return for now.
++ // The counter will let us know where we should start up again.
++ // Note: this strategy for suspending in the middle and
++ // restarting is O(n^2) in the length of the directory. Oh well.
++ break
++ }
++ // Copy entry into return buffer.
++ s := struct {
++ ptr unsafe.Pointer
++ siz int
++ cap int
++ }{ptr: unsafe.Pointer(&entry), siz: reclen, cap: reclen}
++ copy(buf, *(*[]byte)(unsafe.Pointer(&s)))
++ buf = buf[reclen:]
++ n += reclen
++ cnt++
++ }
++ // Set the seek offset of the input fd to record
++ // how many files we've already returned.
++ _, err = Seek(fd, cnt, 0 /* SEEK_SET */)
++ if err != nil {
++ return n, err
++ }
++
++ return n, nil
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go
+index ad74a11f..9a5a6ee5 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_darwin.go
++++ b/vendor/golang.org/x/sys/unix/syscall_darwin.go
+@@ -13,7 +13,7 @@
+ package unix
+
+ import (
+- errorspkg "errors"
++ "errors"
+ "syscall"
+ "unsafe"
+ )
+@@ -36,6 +36,7 @@ func Getwd() (string, error) {
+ return "", ENOTSUP
+ }
+
++// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.
+ type SockaddrDatalink struct {
+ Len uint8
+ Family uint8
+@@ -54,7 +55,7 @@ func nametomib(name string) (mib []_C_int, err error) {
+
+ // NOTE(rsc): It seems strange to set the buffer to have
+ // size CTL_MAXNAME+2 but use only CTL_MAXNAME
+- // as the size. I don't know why the +2 is here, but the
++ // as the size. I don't know why the +2 is here, but the
+ // kernel uses +2 for its own implementation of this function.
+ // I am scared that if we don't include the +2 here, the kernel
+ // will silently write 2 words farther than we specify
+@@ -88,7 +89,6 @@ func direntNamlen(buf []byte) (uint64, bool) {
+ return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))
+ }
+
+-//sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error)
+ func PtraceAttach(pid int) (err error) { return ptrace(PT_ATTACH, pid, 0, 0) }
+ func PtraceDetach(pid int) (err error) { return ptrace(PT_DETACH, pid, 0, 0) }
+
+@@ -109,7 +109,7 @@ type attrList struct {
+
+ func getAttrList(path string, attrList attrList, attrBuf []byte, options uint) (attrs [][]byte, err error) {
+ if len(attrBuf) < 4 {
+- return nil, errorspkg.New("attrBuf too small")
++ return nil, errors.New("attrBuf too small")
+ }
+ attrList.bitmapCount = attrBitMapCount
+
+@@ -119,17 +119,8 @@ func getAttrList(path string, attrList attrList, attrBuf []byte, options uint) (
+ return nil, err
+ }
+
+- _, _, e1 := Syscall6(
+- SYS_GETATTRLIST,
+- uintptr(unsafe.Pointer(_p0)),
+- uintptr(unsafe.Pointer(&attrList)),
+- uintptr(unsafe.Pointer(&attrBuf[0])),
+- uintptr(len(attrBuf)),
+- uintptr(options),
+- 0,
+- )
+- if e1 != 0 {
+- return nil, e1
++ if err := getattrlist(_p0, unsafe.Pointer(&attrList), unsafe.Pointer(&attrBuf[0]), uintptr(len(attrBuf)), int(options)); err != nil {
++ return nil, err
+ }
+ size := *(*uint32)(unsafe.Pointer(&attrBuf[0]))
+
+@@ -145,12 +136,12 @@ func getAttrList(path string, attrList attrList, attrBuf []byte, options uint) (
+ for i := uint32(0); int(i) < len(dat); {
+ header := dat[i:]
+ if len(header) < 8 {
+- return attrs, errorspkg.New("truncated attribute header")
++ return attrs, errors.New("truncated attribute header")
+ }
+ datOff := *(*int32)(unsafe.Pointer(&header[0]))
+ attrLen := *(*uint32)(unsafe.Pointer(&header[4]))
+ if datOff < 0 || uint32(datOff)+attrLen > uint32(len(dat)) {
+- return attrs, errorspkg.New("truncated results; attrBuf too small")
++ return attrs, errors.New("truncated results; attrBuf too small")
+ }
+ end := uint32(datOff) + attrLen
+ attrs = append(attrs, dat[datOff:end])
+@@ -162,6 +153,8 @@ func getAttrList(path string, attrList attrList, attrBuf []byte, options uint) (
+ return
+ }
+
++//sys getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error)
++
+ //sysnb pipe() (r int, w int, err error)
+
+ func Pipe(p []int) (err error) {
+@@ -179,14 +172,141 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ _p0 = unsafe.Pointer(&buf[0])
+ bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))
+ }
+- r0, _, e1 := Syscall(SYS_GETFSSTAT64, uintptr(_p0), bufsize, uintptr(flags))
+- n = int(r0)
+- if e1 != 0 {
+- err = e1
++ return getfsstat(_p0, bufsize, flags)
++}
++
++func xattrPointer(dest []byte) *byte {
++ // It's only when dest is set to NULL that the OS X implementations of
++ // getxattr() and listxattr() return the current sizes of the named attributes.
++ // An empty byte array is not sufficient. To maintain the same behaviour as the
++ // linux implementation, we wrap around the system calls and pass in NULL when
++ // dest is empty.
++ var destp *byte
++ if len(dest) > 0 {
++ destp = &dest[0]
+ }
+- return
++ return destp
++}
++
++//sys getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error)
++
++func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
++ return getxattr(path, attr, xattrPointer(dest), len(dest), 0, 0)
++}
++
++func Lgetxattr(link string, attr string, dest []byte) (sz int, err error) {
++ return getxattr(link, attr, xattrPointer(dest), len(dest), 0, XATTR_NOFOLLOW)
++}
++
++//sys fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error)
++
++func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {
++ return fgetxattr(fd, attr, xattrPointer(dest), len(dest), 0, 0)
++}
++
++//sys setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error)
++
++func Setxattr(path string, attr string, data []byte, flags int) (err error) {
++ // The parameters for the OS X implementation vary slightly compared to the
++ // linux system call, specifically the position parameter:
++ //
++ // linux:
++ // int setxattr(
++ // const char *path,
++ // const char *name,
++ // const void *value,
++ // size_t size,
++ // int flags
++ // );
++ //
++ // darwin:
++ // int setxattr(
++ // const char *path,
++ // const char *name,
++ // void *value,
++ // size_t size,
++ // u_int32_t position,
++ // int options
++ // );
++ //
++ // position specifies the offset within the extended attribute. In the
++ // current implementation, only the resource fork extended attribute makes
++ // use of this argument. For all others, position is reserved. We simply
++ // default to setting it to zero.
++ return setxattr(path, attr, xattrPointer(data), len(data), 0, flags)
++}
++
++func Lsetxattr(link string, attr string, data []byte, flags int) (err error) {
++ return setxattr(link, attr, xattrPointer(data), len(data), 0, flags|XATTR_NOFOLLOW)
++}
++
++//sys fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error)
++
++func Fsetxattr(fd int, attr string, data []byte, flags int) (err error) {
++ return fsetxattr(fd, attr, xattrPointer(data), len(data), 0, 0)
++}
++
++//sys removexattr(path string, attr string, options int) (err error)
++
++func Removexattr(path string, attr string) (err error) {
++ // We wrap around and explicitly zero out the options provided to the OS X
++ // implementation of removexattr, we do so for interoperability with the
++ // linux variant.
++ return removexattr(path, attr, 0)
++}
++
++func Lremovexattr(link string, attr string) (err error) {
++ return removexattr(link, attr, XATTR_NOFOLLOW)
++}
++
++//sys fremovexattr(fd int, attr string, options int) (err error)
++
++func Fremovexattr(fd int, attr string) (err error) {
++ return fremovexattr(fd, attr, 0)
++}
++
++//sys listxattr(path string, dest *byte, size int, options int) (sz int, err error)
++
++func Listxattr(path string, dest []byte) (sz int, err error) {
++ return listxattr(path, xattrPointer(dest), len(dest), 0)
+ }
+
++func Llistxattr(link string, dest []byte) (sz int, err error) {
++ return listxattr(link, xattrPointer(dest), len(dest), XATTR_NOFOLLOW)
++}
++
++//sys flistxattr(fd int, dest *byte, size int, options int) (sz int, err error)
++
++func Flistxattr(fd int, dest []byte) (sz int, err error) {
++ return flistxattr(fd, xattrPointer(dest), len(dest), 0)
++}
++
++func setattrlistTimes(path string, times []Timespec, flags int) error {
++ _p0, err := BytePtrFromString(path)
++ if err != nil {
++ return err
++ }
++
++ var attrList attrList
++ attrList.bitmapCount = ATTR_BIT_MAP_COUNT
++ attrList.CommonAttr = ATTR_CMN_MODTIME | ATTR_CMN_ACCTIME
++
++ // order is mtime, atime: the opposite of Chtimes
++ attributes := [2]Timespec{times[1], times[0]}
++ options := 0
++ if flags&AT_SYMLINK_NOFOLLOW != 0 {
++ options |= FSOPT_NOFOLLOW
++ }
++ return setattrlist(
++ _p0,
++ unsafe.Pointer(&attrList),
++ unsafe.Pointer(&attributes),
++ unsafe.Sizeof(attributes),
++ options)
++}
++
++//sys setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error)
++
+ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) error {
+ // Darwin doesn't support SYS_UTIMENSAT
+ return ENOSYS
+@@ -196,49 +316,74 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) error {
+ * Wrapped
+ */
+
++//sys fcntl(fd int, cmd int, arg int) (val int, err error)
++
+ //sys kill(pid int, signum int, posix int) (err error)
+
+ func Kill(pid int, signum syscall.Signal) (err error) { return kill(pid, int(signum), 1) }
+
+ //sys ioctl(fd int, req uint, arg uintptr) (err error)
+
+-// ioctl itself should not be exposed directly, but additional get/set
+-// functions for specific types are permissible.
++//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS_SYSCTL
+
+-// IoctlSetInt performs an ioctl operation which sets an integer value
+-// on fd, using the specified request number.
+-func IoctlSetInt(fd int, req uint, value int) error {
+- return ioctl(fd, req, uintptr(value))
+-}
++func Uname(uname *Utsname) error {
++ mib := []_C_int{CTL_KERN, KERN_OSTYPE}
++ n := unsafe.Sizeof(uname.Sysname)
++ if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil {
++ return err
++ }
+
+-func IoctlSetWinsize(fd int, req uint, value *Winsize) error {
+- return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
+-}
++ mib = []_C_int{CTL_KERN, KERN_HOSTNAME}
++ n = unsafe.Sizeof(uname.Nodename)
++ if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil {
++ return err
++ }
+
+-func IoctlSetTermios(fd int, req uint, value *Termios) error {
+- return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
+-}
++ mib = []_C_int{CTL_KERN, KERN_OSRELEASE}
++ n = unsafe.Sizeof(uname.Release)
++ if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil {
++ return err
++ }
+
+-// IoctlGetInt performs an ioctl operation which gets an integer value
+-// from fd, using the specified request number.
+-func IoctlGetInt(fd int, req uint) (int, error) {
+- var value int
+- err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
+- return value, err
+-}
++ mib = []_C_int{CTL_KERN, KERN_VERSION}
++ n = unsafe.Sizeof(uname.Version)
++ if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil {
++ return err
++ }
+
+-func IoctlGetWinsize(fd int, req uint) (*Winsize, error) {
+- var value Winsize
+- err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
+- return &value, err
++ // The version might have newlines or tabs in it, convert them to
++ // spaces.
++ for i, b := range uname.Version {
++ if b == '\n' || b == '\t' {
++ if i == len(uname.Version)-1 {
++ uname.Version[i] = 0
++ } else {
++ uname.Version[i] = ' '
++ }
++ }
++ }
++
++ mib = []_C_int{CTL_HW, HW_MACHINE}
++ n = unsafe.Sizeof(uname.Machine)
++ if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil {
++ return err
++ }
++
++ return nil
+ }
+
+-func IoctlGetTermios(fd int, req uint) (*Termios, error) {
+- var value Termios
+- err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
+- return &value, err
++func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
++ if raceenabled {
++ raceReleaseMerge(unsafe.Pointer(&ioSync))
++ }
++ var length = int64(count)
++ err = sendfile(infd, outfd, *offset, &length, nil, 0)
++ written = int(length)
++ return
+ }
+
++//sys sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error)
++
+ /*
+ * Exposed directly
+ */
+@@ -249,6 +394,7 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) {
+ //sys Chmod(path string, mode uint32) (err error)
+ //sys Chown(path string, uid int, gid int) (err error)
+ //sys Chroot(path string) (err error)
++//sys ClockGettime(clockid int32, time *Timespec) (err error)
+ //sys Close(fd int) (err error)
+ //sys Dup(fd int) (nfd int, err error)
+ //sys Dup2(from int, to int) (err error)
+@@ -263,11 +409,8 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) {
+ //sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error)
+ //sys Flock(fd int, how int) (err error)
+ //sys Fpathconf(fd int, name int) (val int, err error)
+-//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
+-//sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64
+ //sys Fsync(fd int) (err error)
+ //sys Ftruncate(fd int, length int64) (err error)
+-//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) = SYS_GETDIRENTRIES64
+ //sys Getdtablesize() (size int)
+ //sysnb Getegid() (egid int)
+ //sysnb Geteuid() (uid int)
+@@ -287,7 +430,6 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) {
+ //sys Link(path string, link string) (err error)
+ //sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error)
+ //sys Listen(s int, backlog int) (err error)
+-//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
+ //sys Mkdir(path string, mode uint32) (err error)
+ //sys Mkdirat(dirfd int, path string, mode uint32) (err error)
+ //sys Mkfifo(path string, mode uint32) (err error)
+@@ -305,7 +447,7 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) {
+ //sys Revoke(path string) (err error)
+ //sys Rmdir(path string) (err error)
+ //sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK
+-//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error)
++//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
+ //sys Setegid(egid int) (err error)
+ //sysnb Seteuid(euid int) (err error)
+ //sysnb Setgid(gid int) (err error)
+@@ -319,8 +461,6 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) {
+ //sysnb Setsid() (pid int, err error)
+ //sysnb Settimeofday(tp *Timeval) (err error)
+ //sysnb Setuid(uid int) (err error)
+-//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
+-//sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64
+ //sys Symlink(path string, link string) (err error)
+ //sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error)
+ //sys Sync() (err error)
+@@ -377,18 +517,9 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) {
+ // Searchfs
+ // Delete
+ // Copyfile
+-// Poll
+ // Watchevent
+ // Waitevent
+ // Modwatch
+-// Getxattr
+-// Fgetxattr
+-// Setxattr
+-// Fsetxattr
+-// Removexattr
+-// Fremovexattr
+-// Listxattr
+-// Flistxattr
+ // Fsctl
+ // Initgroups
+ // Posix_spawn
+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_386.1_11.go b/vendor/golang.org/x/sys/unix/syscall_darwin_386.1_11.go
+new file mode 100644
+index 00000000..6b223f91
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_386.1_11.go
+@@ -0,0 +1,9 @@
++// Copyright 2019 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build darwin,386,!go1.12
++
++package unix
++
++//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) = SYS_GETDIRENTRIES64
+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_386.go b/vendor/golang.org/x/sys/unix/syscall_darwin_386.go
+index c172a3da..707ba4f5 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_darwin_386.go
++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_386.go
+@@ -8,30 +8,22 @@ package unix
+
+ import (
+ "syscall"
+- "unsafe"
+ )
+
+-func Getpagesize() int { return 4096 }
++//sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error)
+
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+-
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = int32(nsec / 1e9)
+- ts.Nsec = int32(nsec % 1e9)
+- return
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: int32(sec), Nsec: int32(nsec)}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Usec = int32(nsec % 1e9 / 1e3)
+- tv.Sec = int32(nsec / 1e9)
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: int32(sec), Usec: int32(usec)}
+ }
+
+ //sysnb gettimeofday(tp *Timeval) (sec int32, usec int32, err error)
+ func Gettimeofday(tv *Timeval) (err error) {
+ // The tv passed to gettimeofday must be non-nil
+- // but is otherwise unused. The answers come back
++ // but is otherwise unused. The answers come back
+ // in the two registers.
+ sec, usec, err := gettimeofday(tv)
+ tv.Sec = int32(sec)
+@@ -53,21 +45,12 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+ }
+
+-func (cmsg *Cmsghdr) SetLen(length int) {
+- cmsg.Len = uint32(length)
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = int32(length)
+ }
+
+-func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+- var length = uint64(count)
+-
+- _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(*offset>>32), uintptr(unsafe.Pointer(&length)), 0, 0, 0, 0)
+-
+- written = int(length)
+-
+- if e1 != 0 {
+- err = e1
+- }
+- return
++func (cmsg *Cmsghdr) SetLen(length int) {
++ cmsg.Len = uint32(length)
+ }
+
+ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
+@@ -75,3 +58,11 @@ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr,
+ // SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
+ // of darwin/386 the syscall is called sysctl instead of __sysctl.
+ const SYS___SYSCTL = SYS_SYSCTL
++
++//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
++//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64
++//sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64
++//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64
++//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
++//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
++//sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64
+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.1_11.go b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.1_11.go
+new file mode 100644
+index 00000000..68ebd6fa
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.1_11.go
+@@ -0,0 +1,9 @@
++// Copyright 2019 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build darwin,amd64,!go1.12
++
++package unix
++
++//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) = SYS_GETDIRENTRIES64
+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go
+index c6c99c13..fdbfb591 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go
++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go
+@@ -8,30 +8,22 @@ package unix
+
+ import (
+ "syscall"
+- "unsafe"
+ )
+
+-func Getpagesize() int { return 4096 }
++//sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error)
+
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+-
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = nsec / 1e9
+- ts.Nsec = nsec % 1e9
+- return
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: sec, Nsec: nsec}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Usec = int32(nsec % 1e9 / 1e3)
+- tv.Sec = int64(nsec / 1e9)
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: sec, Usec: int32(usec)}
+ }
+
+ //sysnb gettimeofday(tp *Timeval) (sec int64, usec int32, err error)
+ func Gettimeofday(tv *Timeval) (err error) {
+ // The tv passed to gettimeofday must be non-nil
+- // but is otherwise unused. The answers come back
++ // but is otherwise unused. The answers come back
+ // in the two registers.
+ sec, usec, err := gettimeofday(tv)
+ tv.Sec = sec
+@@ -53,21 +45,12 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+ }
+
+-func (cmsg *Cmsghdr) SetLen(length int) {
+- cmsg.Len = uint32(length)
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = int32(length)
+ }
+
+-func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+- var length = uint64(count)
+-
+- _, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(unsafe.Pointer(&length)), 0, 0)
+-
+- written = int(length)
+-
+- if e1 != 0 {
+- err = e1
+- }
+- return
++func (cmsg *Cmsghdr) SetLen(length int) {
++ cmsg.Len = uint32(length)
+ }
+
+ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
+@@ -75,3 +58,11 @@ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr,
+ // SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
+ // of darwin/amd64 the syscall is called sysctl instead of __sysctl.
+ const SYS___SYSCTL = SYS_SYSCTL
++
++//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
++//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64
++//sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64
++//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64
++//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
++//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
++//sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64
+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.1_11.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.1_11.go
+new file mode 100644
+index 00000000..0e3f25ac
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.1_11.go
+@@ -0,0 +1,11 @@
++// Copyright 2019 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build darwin,arm,!go1.12
++
++package unix
++
++func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
++ return 0, ENOSYS
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go
+index d286cf40..f8bc4cfb 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go
++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go
+@@ -6,30 +6,24 @@ package unix
+
+ import (
+ "syscall"
+- "unsafe"
+ )
+
+-func Getpagesize() int { return 4096 }
+-
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
++func ptrace(request int, pid int, addr uintptr, data uintptr) error {
++ return ENOTSUP
++}
+
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = int32(nsec / 1e9)
+- ts.Nsec = int32(nsec % 1e9)
+- return
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: int32(sec), Nsec: int32(nsec)}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Usec = int32(nsec % 1e9 / 1e3)
+- tv.Sec = int32(nsec / 1e9)
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: int32(sec), Usec: int32(usec)}
+ }
+
+ //sysnb gettimeofday(tp *Timeval) (sec int32, usec int32, err error)
+ func Gettimeofday(tv *Timeval) (err error) {
+ // The tv passed to gettimeofday must be non-nil
+- // but is otherwise unused. The answers come back
++ // but is otherwise unused. The answers come back
+ // in the two registers.
+ sec, usec, err := gettimeofday(tv)
+ tv.Sec = int32(sec)
+@@ -51,21 +45,24 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+ }
+
+-func (cmsg *Cmsghdr) SetLen(length int) {
+- cmsg.Len = uint32(length)
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = int32(length)
+ }
+
+-func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+- var length = uint64(count)
+-
+- _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(*offset>>32), uintptr(unsafe.Pointer(&length)), 0, 0, 0, 0)
+-
+- written = int(length)
+-
+- if e1 != 0 {
+- err = e1
+- }
+- return
++func (cmsg *Cmsghdr) SetLen(length int) {
++ cmsg.Len = uint32(length)
+ }
+
+ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic
++
++// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
++// of darwin/arm the syscall is called sysctl instead of __sysctl.
++const SYS___SYSCTL = SYS_SYSCTL
++
++//sys Fstat(fd int, stat *Stat_t) (err error)
++//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
++//sys Fstatfs(fd int, stat *Statfs_t) (err error)
++//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT
++//sys Lstat(path string, stat *Stat_t) (err error)
++//sys Stat(path string, stat *Stat_t) (err error)
++//sys Statfs(path string, stat *Statfs_t) (err error)
+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.1_11.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.1_11.go
+new file mode 100644
+index 00000000..01d45040
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.1_11.go
+@@ -0,0 +1,11 @@
++// Copyright 2019 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build darwin,arm64,!go1.12
++
++package unix
++
++func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
++ return 0, ENOSYS
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go
+index c33905cd..5ede3ac3 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go
++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go
+@@ -8,30 +8,24 @@ package unix
+
+ import (
+ "syscall"
+- "unsafe"
+ )
+
+-func Getpagesize() int { return 16384 }
+-
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
++func ptrace(request int, pid int, addr uintptr, data uintptr) error {
++ return ENOTSUP
++}
+
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = nsec / 1e9
+- ts.Nsec = nsec % 1e9
+- return
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: sec, Nsec: nsec}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Usec = int32(nsec % 1e9 / 1e3)
+- tv.Sec = int64(nsec / 1e9)
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: sec, Usec: int32(usec)}
+ }
+
+ //sysnb gettimeofday(tp *Timeval) (sec int64, usec int32, err error)
+ func Gettimeofday(tv *Timeval) (err error) {
+ // The tv passed to gettimeofday must be non-nil
+- // but is otherwise unused. The answers come back
++ // but is otherwise unused. The answers come back
+ // in the two registers.
+ sec, usec, err := gettimeofday(tv)
+ tv.Sec = sec
+@@ -53,21 +47,12 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+ }
+
+-func (cmsg *Cmsghdr) SetLen(length int) {
+- cmsg.Len = uint32(length)
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = int32(length)
+ }
+
+-func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+- var length = uint64(count)
+-
+- _, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(unsafe.Pointer(&length)), 0, 0)
+-
+- written = int(length)
+-
+- if e1 != 0 {
+- err = e1
+- }
+- return
++func (cmsg *Cmsghdr) SetLen(length int) {
++ cmsg.Len = uint32(length)
+ }
+
+ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic
+@@ -75,3 +60,11 @@ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr,
+ // SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
+ // of darwin/arm64 the syscall is called sysctl instead of __sysctl.
+ const SYS___SYSCTL = SYS_SYSCTL
++
++//sys Fstat(fd int, stat *Stat_t) (err error)
++//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
++//sys Fstatfs(fd int, stat *Statfs_t) (err error)
++//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT
++//sys Lstat(path string, stat *Stat_t) (err error)
++//sys Stat(path string, stat *Stat_t) (err error)
++//sys Statfs(path string, stat *Statfs_t) (err error)
+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go
+new file mode 100644
+index 00000000..f34c86c8
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go
+@@ -0,0 +1,33 @@
++// Copyright 2018 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build darwin,go1.12
++
++package unix
++
++import "unsafe"
++
++// Implemented in the runtime package (runtime/sys_darwin.go)
++func syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)
++func syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
++func syscall_syscall6X(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
++func syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) // 32-bit only
++func syscall_rawSyscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)
++func syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
++func syscall_syscallPtr(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)
++
++//go:linkname syscall_syscall syscall.syscall
++//go:linkname syscall_syscall6 syscall.syscall6
++//go:linkname syscall_syscall6X syscall.syscall6X
++//go:linkname syscall_syscall9 syscall.syscall9
++//go:linkname syscall_rawSyscall syscall.rawSyscall
++//go:linkname syscall_rawSyscall6 syscall.rawSyscall6
++//go:linkname syscall_syscallPtr syscall.syscallPtr
++
++// Find the entry point for f. See comments in runtime/proc.go for the
++// function of the same name.
++//go:nosplit
++func funcPC(f func()) uintptr {
++ return **(**uintptr)(unsafe.Pointer(&f))
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go
+index 3a483373..8a195ae5 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go
++++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go
+@@ -12,8 +12,27 @@
+
+ package unix
+
+-import "unsafe"
++import (
++ "sync"
++ "unsafe"
++)
+
++// See version list in https://github.com/DragonFlyBSD/DragonFlyBSD/blob/master/sys/sys/param.h
++var (
++ osreldateOnce sync.Once
++ osreldate uint32
++)
++
++// First __DragonFly_version after September 2019 ABI changes
++// http://lists.dragonflybsd.org/pipermail/users/2019-September/358280.html
++const _dragonflyABIChangeVersion = 500705
++
++func supportsABI(ver uint32) bool {
++ osreldateOnce.Do(func() { osreldate, _ = SysctlUint32("kern.osreldate") })
++ return osreldate >= ver
++}
++
++// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.
+ type SockaddrDatalink struct {
+ Len uint8
+ Family uint8
+@@ -102,7 +121,7 @@ func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) {
+ if len > SizeofSockaddrAny {
+ panic("RawSockaddrAny too small")
+ }
+- sa, err = anyToSockaddr(&rsa)
++ sa, err = anyToSockaddr(fd, &rsa)
+ if err != nil {
+ Close(nfd)
+ nfd = 0
+@@ -110,6 +129,23 @@ func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) {
+ return
+ }
+
++const ImplementsGetwd = true
++
++//sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD
++
++func Getwd() (string, error) {
++ var buf [PathMax]byte
++ _, err := Getcwd(buf[0:])
++ if err != nil {
++ return "", err
++ }
++ n := clen(buf[:])
++ if n < 1 {
++ return "", EINVAL
++ }
++ return string(buf[:n]), nil
++}
++
+ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ var _p0 unsafe.Pointer
+ var bufsize uintptr
+@@ -125,6 +161,85 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ return
+ }
+
++func setattrlistTimes(path string, times []Timespec, flags int) error {
++ // used on Darwin for UtimesNano
++ return ENOSYS
++}
++
++//sys ioctl(fd int, req uint, arg uintptr) (err error)
++
++//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
++
++func sysctlUname(mib []_C_int, old *byte, oldlen *uintptr) error {
++ err := sysctl(mib, old, oldlen, nil, 0)
++ if err != nil {
++ // Utsname members on Dragonfly are only 32 bytes and
++ // the syscall returns ENOMEM in case the actual value
++ // is longer.
++ if err == ENOMEM {
++ err = nil
++ }
++ }
++ return err
++}
++
++func Uname(uname *Utsname) error {
++ mib := []_C_int{CTL_KERN, KERN_OSTYPE}
++ n := unsafe.Sizeof(uname.Sysname)
++ if err := sysctlUname(mib, &uname.Sysname[0], &n); err != nil {
++ return err
++ }
++ uname.Sysname[unsafe.Sizeof(uname.Sysname)-1] = 0
++
++ mib = []_C_int{CTL_KERN, KERN_HOSTNAME}
++ n = unsafe.Sizeof(uname.Nodename)
++ if err := sysctlUname(mib, &uname.Nodename[0], &n); err != nil {
++ return err
++ }
++ uname.Nodename[unsafe.Sizeof(uname.Nodename)-1] = 0
++
++ mib = []_C_int{CTL_KERN, KERN_OSRELEASE}
++ n = unsafe.Sizeof(uname.Release)
++ if err := sysctlUname(mib, &uname.Release[0], &n); err != nil {
++ return err
++ }
++ uname.Release[unsafe.Sizeof(uname.Release)-1] = 0
++
++ mib = []_C_int{CTL_KERN, KERN_VERSION}
++ n = unsafe.Sizeof(uname.Version)
++ if err := sysctlUname(mib, &uname.Version[0], &n); err != nil {
++ return err
++ }
++
++ // The version might have newlines or tabs in it, convert them to
++ // spaces.
++ for i, b := range uname.Version {
++ if b == '\n' || b == '\t' {
++ if i == len(uname.Version)-1 {
++ uname.Version[i] = 0
++ } else {
++ uname.Version[i] = ' '
++ }
++ }
++ }
++
++ mib = []_C_int{CTL_HW, HW_MACHINE}
++ n = unsafe.Sizeof(uname.Machine)
++ if err := sysctlUname(mib, &uname.Machine[0], &n); err != nil {
++ return err
++ }
++ uname.Machine[unsafe.Sizeof(uname.Machine)-1] = 0
++
++ return nil
++}
++
++func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
++ if raceenabled {
++ raceReleaseMerge(unsafe.Pointer(&ioSync))
++ }
++ return sendfile(outfd, infd, offset, count)
++}
++
+ /*
+ * Exposed directly
+ */
+@@ -139,16 +254,21 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ //sys Dup(fd int) (nfd int, err error)
+ //sys Dup2(from int, to int) (err error)
+ //sys Exit(code int)
++//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error)
+ //sys Fchdir(fd int) (err error)
+ //sys Fchflags(fd int, flags int) (err error)
+ //sys Fchmod(fd int, mode uint32) (err error)
++//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error)
+ //sys Fchown(fd int, uid int, gid int) (err error)
++//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error)
+ //sys Flock(fd int, how int) (err error)
+ //sys Fpathconf(fd int, name int) (val int, err error)
+ //sys Fstat(fd int, stat *Stat_t) (err error)
++//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
+ //sys Fstatfs(fd int, stat *Statfs_t) (err error)
+ //sys Fsync(fd int) (err error)
+ //sys Ftruncate(fd int, length int64) (err error)
++//sys Getdents(fd int, buf []byte) (n int, err error)
+ //sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error)
+ //sys Getdtablesize() (size int)
+ //sysnb Getegid() (egid int)
+@@ -169,21 +289,26 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ //sys Kqueue() (fd int, err error)
+ //sys Lchown(path string, uid int, gid int) (err error)
+ //sys Link(path string, link string) (err error)
++//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error)
+ //sys Listen(s int, backlog int) (err error)
+ //sys Lstat(path string, stat *Stat_t) (err error)
+ //sys Mkdir(path string, mode uint32) (err error)
++//sys Mkdirat(dirfd int, path string, mode uint32) (err error)
+ //sys Mkfifo(path string, mode uint32) (err error)
+ //sys Mknod(path string, mode uint32, dev int) (err error)
++//sys Mknodat(fd int, path string, mode uint32, dev int) (err error)
+ //sys Nanosleep(time *Timespec, leftover *Timespec) (err error)
+ //sys Open(path string, mode int, perm uint32) (fd int, err error)
++//sys Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error)
+ //sys Pathconf(path string, name int) (val int, err error)
+ //sys read(fd int, p []byte) (n int, err error)
+ //sys Readlink(path string, buf []byte) (n int, err error)
+ //sys Rename(from string, to string) (err error)
++//sys Renameat(fromfd int, from string, tofd int, to string) (err error)
+ //sys Revoke(path string) (err error)
+ //sys Rmdir(path string) (err error)
+ //sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK
+-//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error)
++//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
+ //sysnb Setegid(egid int) (err error)
+ //sysnb Seteuid(euid int) (err error)
+ //sysnb Setgid(gid int) (err error)
+@@ -201,11 +326,13 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ //sys Stat(path string, stat *Stat_t) (err error)
+ //sys Statfs(path string, stat *Statfs_t) (err error)
+ //sys Symlink(path string, link string) (err error)
++//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error)
+ //sys Sync() (err error)
+ //sys Truncate(path string, length int64) (err error)
+ //sys Umask(newmask int) (oldmask int)
+ //sys Undelete(path string) (err error)
+ //sys Unlink(path string) (err error)
++//sys Unlinkat(dirfd int, path string, flags int) (err error)
+ //sys Unmount(path string, flags int) (err error)
+ //sys write(fd int, p []byte) (n int, err error)
+ //sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)
+@@ -225,7 +352,6 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ // Getlogin
+ // Sigpending
+ // Sigaltstack
+-// Ioctl
+ // Reboot
+ // Execve
+ // Vfork
+@@ -257,7 +383,6 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ // Searchfs
+ // Delete
+ // Copyfile
+-// Poll
+ // Watchevent
+ // Waitevent
+ // Modwatch
+@@ -403,7 +528,6 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ // Pread_nocancel
+ // Pwrite_nocancel
+ // Waitid_nocancel
+-// Poll_nocancel
+ // Msgsnd_nocancel
+ // Msgrcv_nocancel
+ // Sem_wait_nocancel
+diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go
+index da7cb798..a6b4830a 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go
++++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go
+@@ -11,21 +11,12 @@ import (
+ "unsafe"
+ )
+
+-func Getpagesize() int { return 4096 }
+-
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+-
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = nsec / 1e9
+- ts.Nsec = nsec % 1e9
+- return
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: sec, Nsec: nsec}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Usec = nsec % 1e9 / 1e3
+- tv.Sec = int64(nsec / 1e9)
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: sec, Usec: usec}
+ }
+
+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
+@@ -42,6 +33,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+ }
+
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = int32(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+ }
+diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go
+index d26e52ea..6932e7c2 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_freebsd.go
++++ b/vendor/golang.org/x/sys/unix/syscall_freebsd.go
+@@ -12,8 +12,36 @@
+
+ package unix
+
+-import "unsafe"
++import (
++ "sync"
++ "unsafe"
++)
++
++const (
++ SYS_FSTAT_FREEBSD12 = 551 // { int fstat(int fd, _Out_ struct stat *sb); }
++ SYS_FSTATAT_FREEBSD12 = 552 // { int fstatat(int fd, _In_z_ char *path, \
++ SYS_GETDIRENTRIES_FREEBSD12 = 554 // { ssize_t getdirentries(int fd, \
++ SYS_STATFS_FREEBSD12 = 555 // { int statfs(_In_z_ char *path, \
++ SYS_FSTATFS_FREEBSD12 = 556 // { int fstatfs(int fd, \
++ SYS_GETFSSTAT_FREEBSD12 = 557 // { int getfsstat( \
++ SYS_MKNODAT_FREEBSD12 = 559 // { int mknodat(int fd, _In_z_ char *path, \
++)
++
++// See https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/versions.html.
++var (
++ osreldateOnce sync.Once
++ osreldate uint32
++)
++
++// INO64_FIRST from /usr/src/lib/libc/sys/compat-ino64.h
++const _ino64First = 1200031
++
++func supportsABI(ver uint32) bool {
++ osreldateOnce.Do(func() { osreldate, _ = SysctlUint32("kern.osreldate") })
++ return osreldate >= ver
++}
+
++// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.
+ type SockaddrDatalink struct {
+ Len uint8
+ Family uint8
+@@ -32,7 +60,7 @@ func nametomib(name string) (mib []_C_int, err error) {
+
+ // NOTE(rsc): It seems strange to set the buffer to have
+ // size CTL_MAXNAME+2 but use only CTL_MAXNAME
+- // as the size. I don't know why the +2 is here, but the
++ // as the size. I don't know why the +2 is here, but the
+ // kernel uses +2 for its own implementation of this function.
+ // I am scared that if we don't include the +2 here, the kernel
+ // will silently write 2 words farther than we specify
+@@ -66,14 +94,21 @@ func direntNamlen(buf []byte) (uint64, bool) {
+ return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))
+ }
+
+-//sysnb pipe() (r int, w int, err error)
+-
+ func Pipe(p []int) (err error) {
++ return Pipe2(p, 0)
++}
++
++//sysnb pipe2(p *[2]_C_int, flags int) (err error)
++
++func Pipe2(p []int, flags int) error {
+ if len(p) != 2 {
+ return EINVAL
+ }
+- p[0], p[1], err = pipe()
+- return
++ var pp [2]_C_int
++ err := pipe2(&pp, flags)
++ p[0] = int(pp[0])
++ p[1] = int(pp[1])
++ return err
+ }
+
+ func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) {
+@@ -97,7 +132,7 @@ func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) {
+ if len > SizeofSockaddrAny {
+ panic("RawSockaddrAny too small")
+ }
+- sa, err = anyToSockaddr(&rsa)
++ sa, err = anyToSockaddr(fd, &rsa)
+ if err != nil {
+ Close(nfd)
+ nfd = 0
+@@ -105,290 +140,421 @@ func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) {
+ return
+ }
+
++const ImplementsGetwd = true
++
++//sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD
++
++func Getwd() (string, error) {
++ var buf [PathMax]byte
++ _, err := Getcwd(buf[0:])
++ if err != nil {
++ return "", err
++ }
++ n := clen(buf[:])
++ if n < 1 {
++ return "", EINVAL
++ }
++ return string(buf[:n]), nil
++}
++
+ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+- var _p0 unsafe.Pointer
+- var bufsize uintptr
++ var (
++ _p0 unsafe.Pointer
++ bufsize uintptr
++ oldBuf []statfs_freebsd11_t
++ needsConvert bool
++ )
++
+ if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))
++ if supportsABI(_ino64First) {
++ _p0 = unsafe.Pointer(&buf[0])
++ bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))
++ } else {
++ n := len(buf)
++ oldBuf = make([]statfs_freebsd11_t, n)
++ _p0 = unsafe.Pointer(&oldBuf[0])
++ bufsize = unsafe.Sizeof(statfs_freebsd11_t{}) * uintptr(n)
++ needsConvert = true
++ }
++ }
++ var sysno uintptr = SYS_GETFSSTAT
++ if supportsABI(_ino64First) {
++ sysno = SYS_GETFSSTAT_FREEBSD12
+ }
+- r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags))
++ r0, _, e1 := Syscall(sysno, uintptr(_p0), bufsize, uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = e1
+ }
++ if e1 == 0 && needsConvert {
++ for i := range oldBuf {
++ buf[i].convertFrom(&oldBuf[i])
++ }
++ }
+ return
+ }
+
+-// Derive extattr namespace and attribute name
++func setattrlistTimes(path string, times []Timespec, flags int) error {
++ // used on Darwin for UtimesNano
++ return ENOSYS
++}
+
+-func xattrnamespace(fullattr string) (ns int, attr string, err error) {
+- s := -1
+- for idx, val := range fullattr {
+- if val == '.' {
+- s = idx
+- break
+- }
++//sys ioctl(fd int, req uint, arg uintptr) (err error)
++
++//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
++
++func Uname(uname *Utsname) error {
++ mib := []_C_int{CTL_KERN, KERN_OSTYPE}
++ n := unsafe.Sizeof(uname.Sysname)
++ if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil {
++ return err
+ }
+
+- if s == -1 {
+- return -1, "", ENOATTR
++ mib = []_C_int{CTL_KERN, KERN_HOSTNAME}
++ n = unsafe.Sizeof(uname.Nodename)
++ if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil {
++ return err
+ }
+
+- namespace := fullattr[0:s]
+- attr = fullattr[s+1:]
++ mib = []_C_int{CTL_KERN, KERN_OSRELEASE}
++ n = unsafe.Sizeof(uname.Release)
++ if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil {
++ return err
++ }
+
+- switch namespace {
+- case "user":
+- return EXTATTR_NAMESPACE_USER, attr, nil
+- case "system":
+- return EXTATTR_NAMESPACE_SYSTEM, attr, nil
+- default:
+- return -1, "", ENOATTR
++ mib = []_C_int{CTL_KERN, KERN_VERSION}
++ n = unsafe.Sizeof(uname.Version)
++ if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil {
++ return err
+ }
+-}
+
+-func initxattrdest(dest []byte, idx int) (d unsafe.Pointer) {
+- if len(dest) > idx {
+- return unsafe.Pointer(&dest[idx])
+- } else {
+- return unsafe.Pointer(_zero)
++ // The version might have newlines or tabs in it, convert them to
++ // spaces.
++ for i, b := range uname.Version {
++ if b == '\n' || b == '\t' {
++ if i == len(uname.Version)-1 {
++ uname.Version[i] = 0
++ } else {
++ uname.Version[i] = ' '
++ }
++ }
+ }
+-}
+
+-// FreeBSD implements its own syscalls to handle extended attributes
++ mib = []_C_int{CTL_HW, HW_MACHINE}
++ n = unsafe.Sizeof(uname.Machine)
++ if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil {
++ return err
++ }
+
+-func Getxattr(file string, attr string, dest []byte) (sz int, err error) {
+- d := initxattrdest(dest, 0)
+- destsize := len(dest)
++ return nil
++}
+
+- nsid, a, err := xattrnamespace(attr)
++func Stat(path string, st *Stat_t) (err error) {
++ var oldStat stat_freebsd11_t
++ if supportsABI(_ino64First) {
++ return fstatat_freebsd12(AT_FDCWD, path, st, 0)
++ }
++ err = stat(path, &oldStat)
+ if err != nil {
+- return -1, err
++ return err
+ }
+
+- return ExtattrGetFile(file, nsid, a, uintptr(d), destsize)
++ st.convertFrom(&oldStat)
++ return nil
+ }
+
+-func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {
+- d := initxattrdest(dest, 0)
+- destsize := len(dest)
+-
+- nsid, a, err := xattrnamespace(attr)
++func Lstat(path string, st *Stat_t) (err error) {
++ var oldStat stat_freebsd11_t
++ if supportsABI(_ino64First) {
++ return fstatat_freebsd12(AT_FDCWD, path, st, AT_SYMLINK_NOFOLLOW)
++ }
++ err = lstat(path, &oldStat)
+ if err != nil {
+- return -1, err
++ return err
+ }
+
+- return ExtattrGetFd(fd, nsid, a, uintptr(d), destsize)
++ st.convertFrom(&oldStat)
++ return nil
+ }
+
+-func Lgetxattr(link string, attr string, dest []byte) (sz int, err error) {
+- d := initxattrdest(dest, 0)
+- destsize := len(dest)
+-
+- nsid, a, err := xattrnamespace(attr)
++func Fstat(fd int, st *Stat_t) (err error) {
++ var oldStat stat_freebsd11_t
++ if supportsABI(_ino64First) {
++ return fstat_freebsd12(fd, st)
++ }
++ err = fstat(fd, &oldStat)
+ if err != nil {
+- return -1, err
++ return err
+ }
+
+- return ExtattrGetLink(link, nsid, a, uintptr(d), destsize)
++ st.convertFrom(&oldStat)
++ return nil
+ }
+
+-// flags are unused on FreeBSD
+-
+-func Fsetxattr(fd int, attr string, data []byte, flags int) (err error) {
+- d := unsafe.Pointer(&data[0])
+- datasiz := len(data)
+-
+- nsid, a, err := xattrnamespace(attr)
++func Fstatat(fd int, path string, st *Stat_t, flags int) (err error) {
++ var oldStat stat_freebsd11_t
++ if supportsABI(_ino64First) {
++ return fstatat_freebsd12(fd, path, st, flags)
++ }
++ err = fstatat(fd, path, &oldStat, flags)
+ if err != nil {
+- return
++ return err
+ }
+
+- _, err = ExtattrSetFd(fd, nsid, a, uintptr(d), datasiz)
+- return
++ st.convertFrom(&oldStat)
++ return nil
+ }
+
+-func Setxattr(file string, attr string, data []byte, flags int) (err error) {
+- d := unsafe.Pointer(&data[0])
+- datasiz := len(data)
+-
+- nsid, a, err := xattrnamespace(attr)
++func Statfs(path string, st *Statfs_t) (err error) {
++ var oldStatfs statfs_freebsd11_t
++ if supportsABI(_ino64First) {
++ return statfs_freebsd12(path, st)
++ }
++ err = statfs(path, &oldStatfs)
+ if err != nil {
+- return
++ return err
+ }
+
+- _, err = ExtattrSetFile(file, nsid, a, uintptr(d), datasiz)
+- return
++ st.convertFrom(&oldStatfs)
++ return nil
+ }
+
+-func Lsetxattr(link string, attr string, data []byte, flags int) (err error) {
+- d := unsafe.Pointer(&data[0])
+- datasiz := len(data)
+-
+- nsid, a, err := xattrnamespace(attr)
++func Fstatfs(fd int, st *Statfs_t) (err error) {
++ var oldStatfs statfs_freebsd11_t
++ if supportsABI(_ino64First) {
++ return fstatfs_freebsd12(fd, st)
++ }
++ err = fstatfs(fd, &oldStatfs)
+ if err != nil {
+- return
++ return err
+ }
+
+- _, err = ExtattrSetLink(link, nsid, a, uintptr(d), datasiz)
+- return
++ st.convertFrom(&oldStatfs)
++ return nil
+ }
+
+-func Removexattr(file string, attr string) (err error) {
+- nsid, a, err := xattrnamespace(attr)
+- if err != nil {
++func Getdents(fd int, buf []byte) (n int, err error) {
++ return Getdirentries(fd, buf, nil)
++}
++
++func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
++ if supportsABI(_ino64First) {
++ if basep == nil || unsafe.Sizeof(*basep) == 8 {
++ return getdirentries_freebsd12(fd, buf, (*uint64)(unsafe.Pointer(basep)))
++ }
++ // The freebsd12 syscall needs a 64-bit base. On 32-bit machines
++ // we can't just use the basep passed in. See #32498.
++ var base uint64 = uint64(*basep)
++ n, err = getdirentries_freebsd12(fd, buf, &base)
++ *basep = uintptr(base)
++ if base>>32 != 0 {
++ // We can't stuff the base back into a uintptr, so any
++ // future calls would be suspect. Generate an error.
++ // EIO is allowed by getdirentries.
++ err = EIO
++ }
+ return
+ }
+
+- err = ExtattrDeleteFile(file, nsid, a)
++ // The old syscall entries are smaller than the new. Use 1/4 of the original
++ // buffer size rounded up to DIRBLKSIZ (see /usr/src/lib/libc/sys/getdirentries.c).
++ oldBufLen := roundup(len(buf)/4, _dirblksiz)
++ oldBuf := make([]byte, oldBufLen)
++ n, err = getdirentries(fd, oldBuf, basep)
++ if err == nil && n > 0 {
++ n = convertFromDirents11(buf, oldBuf[:n])
++ }
+ return
+ }
+
+-func Fremovexattr(fd int, attr string) (err error) {
+- nsid, a, err := xattrnamespace(attr)
+- if err != nil {
+- return
++func Mknod(path string, mode uint32, dev uint64) (err error) {
++ var oldDev int
++ if supportsABI(_ino64First) {
++ return mknodat_freebsd12(AT_FDCWD, path, mode, dev)
+ }
+-
+- err = ExtattrDeleteFd(fd, nsid, a)
+- return
++ oldDev = int(dev)
++ return mknod(path, mode, oldDev)
+ }
+
+-func Lremovexattr(link string, attr string) (err error) {
+- nsid, a, err := xattrnamespace(attr)
+- if err != nil {
+- return
++func Mknodat(fd int, path string, mode uint32, dev uint64) (err error) {
++ var oldDev int
++ if supportsABI(_ino64First) {
++ return mknodat_freebsd12(fd, path, mode, dev)
+ }
++ oldDev = int(dev)
++ return mknodat(fd, path, mode, oldDev)
++}
+
+- err = ExtattrDeleteLink(link, nsid, a)
+- return
++// round x to the nearest multiple of y, larger or equal to x.
++//
++// from /usr/include/sys/param.h Macros for counting and rounding.
++// #define roundup(x, y) ((((x)+((y)-1))/(y))*(y))
++func roundup(x, y int) int {
++ return ((x + y - 1) / y) * y
+ }
+
+-func Listxattr(file string, dest []byte) (sz int, err error) {
+- d := initxattrdest(dest, 0)
+- destsiz := len(dest)
+-
+- // FreeBSD won't allow you to list xattrs from multiple namespaces
+- s := 0
+- var e error
+- for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} {
+- stmp, e := ExtattrListFile(file, nsid, uintptr(d), destsiz)
+-
+- /* Errors accessing system attrs are ignored so that
+- * we can implement the Linux-like behavior of omitting errors that
+- * we don't have read permissions on
+- *
+- * Linux will still error if we ask for user attributes on a file that
+- * we don't have read permissions on, so don't ignore those errors
+- */
+- if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER {
+- e = nil
+- continue
+- } else if e != nil {
+- return s, e
+- }
++func (s *Stat_t) convertFrom(old *stat_freebsd11_t) {
++ *s = Stat_t{
++ Dev: uint64(old.Dev),
++ Ino: uint64(old.Ino),
++ Nlink: uint64(old.Nlink),
++ Mode: old.Mode,
++ Uid: old.Uid,
++ Gid: old.Gid,
++ Rdev: uint64(old.Rdev),
++ Atim: old.Atim,
++ Mtim: old.Mtim,
++ Ctim: old.Ctim,
++ Btim: old.Btim,
++ Size: old.Size,
++ Blocks: old.Blocks,
++ Blksize: old.Blksize,
++ Flags: old.Flags,
++ Gen: uint64(old.Gen),
++ }
++}
+
+- s += stmp
+- destsiz -= s
+- if destsiz < 0 {
+- destsiz = 0
+- }
+- d = initxattrdest(dest, s)
++func (s *Statfs_t) convertFrom(old *statfs_freebsd11_t) {
++ *s = Statfs_t{
++ Version: _statfsVersion,
++ Type: old.Type,
++ Flags: old.Flags,
++ Bsize: old.Bsize,
++ Iosize: old.Iosize,
++ Blocks: old.Blocks,
++ Bfree: old.Bfree,
++ Bavail: old.Bavail,
++ Files: old.Files,
++ Ffree: old.Ffree,
++ Syncwrites: old.Syncwrites,
++ Asyncwrites: old.Asyncwrites,
++ Syncreads: old.Syncreads,
++ Asyncreads: old.Asyncreads,
++ // Spare
++ Namemax: old.Namemax,
++ Owner: old.Owner,
++ Fsid: old.Fsid,
++ // Charspare
++ // Fstypename
++ // Mntfromname
++ // Mntonname
+ }
+
+- return s, e
++ sl := old.Fstypename[:]
++ n := clen(*(*[]byte)(unsafe.Pointer(&sl)))
++ copy(s.Fstypename[:], old.Fstypename[:n])
++
++ sl = old.Mntfromname[:]
++ n = clen(*(*[]byte)(unsafe.Pointer(&sl)))
++ copy(s.Mntfromname[:], old.Mntfromname[:n])
++
++ sl = old.Mntonname[:]
++ n = clen(*(*[]byte)(unsafe.Pointer(&sl)))
++ copy(s.Mntonname[:], old.Mntonname[:n])
+ }
+
+-func Flistxattr(fd int, dest []byte) (sz int, err error) {
+- d := initxattrdest(dest, 0)
+- destsiz := len(dest)
++func convertFromDirents11(buf []byte, old []byte) int {
++ const (
++ fixedSize = int(unsafe.Offsetof(Dirent{}.Name))
++ oldFixedSize = int(unsafe.Offsetof(dirent_freebsd11{}.Name))
++ )
++
++ dstPos := 0
++ srcPos := 0
++ for dstPos+fixedSize < len(buf) && srcPos+oldFixedSize < len(old) {
++ var dstDirent Dirent
++ var srcDirent dirent_freebsd11
+
+- s := 0
+- var e error
+- for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} {
+- stmp, e := ExtattrListFd(fd, nsid, uintptr(d), destsiz)
+- if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER {
+- e = nil
+- continue
+- } else if e != nil {
+- return s, e
++ // If multiple direntries are written, sometimes when we reach the final one,
++ // we may have cap of old less than size of dirent_freebsd11.
++ copy((*[unsafe.Sizeof(srcDirent)]byte)(unsafe.Pointer(&srcDirent))[:], old[srcPos:])
++
++ reclen := roundup(fixedSize+int(srcDirent.Namlen)+1, 8)
++ if dstPos+reclen > len(buf) {
++ break
+ }
+
+- s += stmp
+- destsiz -= s
+- if destsiz < 0 {
+- destsiz = 0
++ dstDirent.Fileno = uint64(srcDirent.Fileno)
++ dstDirent.Off = 0
++ dstDirent.Reclen = uint16(reclen)
++ dstDirent.Type = srcDirent.Type
++ dstDirent.Pad0 = 0
++ dstDirent.Namlen = uint16(srcDirent.Namlen)
++ dstDirent.Pad1 = 0
++
++ copy(dstDirent.Name[:], srcDirent.Name[:srcDirent.Namlen])
++ copy(buf[dstPos:], (*[unsafe.Sizeof(dstDirent)]byte)(unsafe.Pointer(&dstDirent))[:])
++ padding := buf[dstPos+fixedSize+int(dstDirent.Namlen) : dstPos+reclen]
++ for i := range padding {
++ padding[i] = 0
+ }
+- d = initxattrdest(dest, s)
++
++ dstPos += int(dstDirent.Reclen)
++ srcPos += int(srcDirent.Reclen)
+ }
+
+- return s, e
++ return dstPos
+ }
+
+-func Llistxattr(link string, dest []byte) (sz int, err error) {
+- d := initxattrdest(dest, 0)
+- destsiz := len(dest)
++func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
++ if raceenabled {
++ raceReleaseMerge(unsafe.Pointer(&ioSync))
++ }
++ return sendfile(outfd, infd, offset, count)
++}
+
+- s := 0
+- var e error
+- for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} {
+- stmp, e := ExtattrListLink(link, nsid, uintptr(d), destsiz)
+- if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER {
+- e = nil
+- continue
+- } else if e != nil {
+- return s, e
+- }
++//sys ptrace(request int, pid int, addr uintptr, data int) (err error)
+
+- s += stmp
+- destsiz -= s
+- if destsiz < 0 {
+- destsiz = 0
+- }
+- d = initxattrdest(dest, s)
+- }
++func PtraceAttach(pid int) (err error) {
++ return ptrace(PTRACE_ATTACH, pid, 0, 0)
++}
+
+- return s, e
++func PtraceCont(pid int, signal int) (err error) {
++ return ptrace(PTRACE_CONT, pid, 1, signal)
+ }
+
+-//sys ioctl(fd int, req uint, arg uintptr) (err error)
++func PtraceDetach(pid int) (err error) {
++ return ptrace(PTRACE_DETACH, pid, 1, 0)
++}
++
++func PtraceGetFpRegs(pid int, fpregsout *FpReg) (err error) {
++ return ptrace(PTRACE_GETFPREGS, pid, uintptr(unsafe.Pointer(fpregsout)), 0)
++}
+
+-// ioctl itself should not be exposed directly, but additional get/set
+-// functions for specific types are permissible.
++func PtraceGetRegs(pid int, regsout *Reg) (err error) {
++ return ptrace(PTRACE_GETREGS, pid, uintptr(unsafe.Pointer(regsout)), 0)
++}
++
++func PtraceLwpEvents(pid int, enable int) (err error) {
++ return ptrace(PTRACE_LWPEVENTS, pid, 0, enable)
++}
++
++func PtraceLwpInfo(pid int, info uintptr) (err error) {
++ return ptrace(PTRACE_LWPINFO, pid, info, int(unsafe.Sizeof(PtraceLwpInfoStruct{})))
++}
+
+-// IoctlSetInt performs an ioctl operation which sets an integer value
+-// on fd, using the specified request number.
+-func IoctlSetInt(fd int, req uint, value int) error {
+- return ioctl(fd, req, uintptr(value))
++func PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) {
++ return PtraceIO(PIOD_READ_D, pid, addr, out, SizeofLong)
+ }
+
+-func IoctlSetWinsize(fd int, req uint, value *Winsize) error {
+- return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
++func PtracePeekText(pid int, addr uintptr, out []byte) (count int, err error) {
++ return PtraceIO(PIOD_READ_I, pid, addr, out, SizeofLong)
+ }
+
+-func IoctlSetTermios(fd int, req uint, value *Termios) error {
+- return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
++func PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) {
++ return PtraceIO(PIOD_WRITE_D, pid, addr, data, SizeofLong)
+ }
+
+-// IoctlGetInt performs an ioctl operation which gets an integer value
+-// from fd, using the specified request number.
+-func IoctlGetInt(fd int, req uint) (int, error) {
+- var value int
+- err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
+- return value, err
++func PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) {
++ return PtraceIO(PIOD_WRITE_I, pid, addr, data, SizeofLong)
+ }
+
+-func IoctlGetWinsize(fd int, req uint) (*Winsize, error) {
+- var value Winsize
+- err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
+- return &value, err
++func PtraceSetRegs(pid int, regs *Reg) (err error) {
++ return ptrace(PTRACE_SETREGS, pid, uintptr(unsafe.Pointer(regs)), 0)
+ }
+
+-func IoctlGetTermios(fd int, req uint) (*Termios, error) {
+- var value Termios
+- err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
+- return &value, err
++func PtraceSingleStep(pid int) (err error) {
++ return ptrace(PTRACE_SINGLESTEP, pid, 1, 0)
+ }
+
+ /*
+@@ -430,11 +596,16 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) {
+ //sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error)
+ //sys Flock(fd int, how int) (err error)
+ //sys Fpathconf(fd int, name int) (val int, err error)
+-//sys Fstat(fd int, stat *Stat_t) (err error)
+-//sys Fstatfs(fd int, stat *Statfs_t) (err error)
++//sys fstat(fd int, stat *stat_freebsd11_t) (err error)
++//sys fstat_freebsd12(fd int, stat *Stat_t) (err error)
++//sys fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error)
++//sys fstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error)
++//sys fstatfs(fd int, stat *statfs_freebsd11_t) (err error)
++//sys fstatfs_freebsd12(fd int, stat *Statfs_t) (err error)
+ //sys Fsync(fd int) (err error)
+ //sys Ftruncate(fd int, length int64) (err error)
+-//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error)
++//sys getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error)
++//sys getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error)
+ //sys Getdtablesize() (size int)
+ //sysnb Getegid() (egid int)
+ //sysnb Geteuid() (uid int)
+@@ -456,11 +627,13 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) {
+ //sys Link(path string, link string) (err error)
+ //sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error)
+ //sys Listen(s int, backlog int) (err error)
+-//sys Lstat(path string, stat *Stat_t) (err error)
++//sys lstat(path string, stat *stat_freebsd11_t) (err error)
+ //sys Mkdir(path string, mode uint32) (err error)
+ //sys Mkdirat(dirfd int, path string, mode uint32) (err error)
+ //sys Mkfifo(path string, mode uint32) (err error)
+-//sys Mknod(path string, mode uint32, dev int) (err error)
++//sys mknod(path string, mode uint32, dev int) (err error)
++//sys mknodat(fd int, path string, mode uint32, dev int) (err error)
++//sys mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error)
+ //sys Nanosleep(time *Timespec, leftover *Timespec) (err error)
+ //sys Open(path string, mode int, perm uint32) (fd int, err error)
+ //sys Openat(fdat int, path string, mode int, perm uint32) (fd int, err error)
+@@ -475,7 +648,7 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) {
+ //sys Revoke(path string) (err error)
+ //sys Rmdir(path string) (err error)
+ //sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK
+-//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error)
++//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
+ //sysnb Setegid(egid int) (err error)
+ //sysnb Seteuid(euid int) (err error)
+ //sysnb Setgid(gid int) (err error)
+@@ -490,8 +663,9 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) {
+ //sysnb Setsid() (pid int, err error)
+ //sysnb Settimeofday(tp *Timeval) (err error)
+ //sysnb Setuid(uid int) (err error)
+-//sys Stat(path string, stat *Stat_t) (err error)
+-//sys Statfs(path string, stat *Statfs_t) (err error)
++//sys stat(path string, stat *stat_freebsd11_t) (err error)
++//sys statfs(path string, stat *statfs_freebsd11_t) (err error)
++//sys statfs_freebsd12(path string, stat *Statfs_t) (err error)
+ //sys Symlink(path string, link string) (err error)
+ //sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error)
+ //sys Sync() (err error)
+@@ -546,22 +720,14 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) {
+ // Kqueue_portset
+ // Getattrlist
+ // Setattrlist
++// Getdents
+ // Getdirentriesattr
+ // Searchfs
+ // Delete
+ // Copyfile
+-// Poll
+ // Watchevent
+ // Waitevent
+ // Modwatch
+-// Getxattr
+-// Fgetxattr
+-// Setxattr
+-// Fsetxattr
+-// Removexattr
+-// Fremovexattr
+-// Listxattr
+-// Flistxattr
+ // Fsctl
+ // Initgroups
+ // Posix_spawn
+diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go
+index 6a0cd804..72a506dd 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go
++++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go
+@@ -11,21 +11,12 @@ import (
+ "unsafe"
+ )
+
+-func Getpagesize() int { return 4096 }
+-
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+-
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = int32(nsec / 1e9)
+- ts.Nsec = int32(nsec % 1e9)
+- return
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: int32(sec), Nsec: int32(nsec)}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Usec = int32(nsec % 1e9 / 1e3)
+- tv.Sec = int32(nsec / 1e9)
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: int32(sec), Usec: int32(usec)}
+ }
+
+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
+@@ -42,6 +33,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+ }
+
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = int32(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+ }
+@@ -59,3 +54,13 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ }
+
+ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
++
++func PtraceGetFsBase(pid int, fsbase *int64) (err error) {
++ return ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0)
++}
++
++func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
++ ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint32(countin)}
++ err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
++ return int(ioDesc.Len), err
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go
+index e142540e..d5e376ac 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go
+@@ -11,21 +11,12 @@ import (
+ "unsafe"
+ )
+
+-func Getpagesize() int { return 4096 }
+-
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+-
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = nsec / 1e9
+- ts.Nsec = nsec % 1e9
+- return
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: sec, Nsec: nsec}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Usec = nsec % 1e9 / 1e3
+- tv.Sec = int64(nsec / 1e9)
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: sec, Usec: usec}
+ }
+
+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
+@@ -42,6 +33,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+ }
+
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = int32(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+ }
+@@ -59,3 +54,13 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ }
+
+ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
++
++func PtraceGetFsBase(pid int, fsbase *int64) (err error) {
++ return ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0)
++}
++
++func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
++ ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)}
++ err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
++ return int(ioDesc.Len), err
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go
+index 5504cb12..4ea45bce 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go
+@@ -11,21 +11,12 @@ import (
+ "unsafe"
+ )
+
+-func Getpagesize() int { return 4096 }
+-
+-func TimespecToNsec(ts Timespec) int64 { return ts.Sec*1e9 + int64(ts.Nsec) }
+-
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = nsec / 1e9
+- ts.Nsec = int32(nsec % 1e9)
+- return
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: sec, Nsec: int32(nsec)}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Usec = int32(nsec % 1e9 / 1e3)
+- tv.Sec = nsec / 1e9
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: sec, Usec: int32(usec)}
+ }
+
+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
+@@ -42,6 +33,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+ }
+
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = int32(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+ }
+@@ -59,3 +54,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ }
+
+ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
++
++func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
++ ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint32(countin)}
++ err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
++ return int(ioDesc.Len), err
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go
+similarity index 59%
+copy from vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go
+copy to vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go
+index da7cb798..aa5326db 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go
++++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go
+@@ -1,8 +1,8 @@
+-// Copyright 2009 The Go Authors. All rights reserved.
++// Copyright 2018 The Go Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+
+-// +build amd64,dragonfly
++// +build arm64,freebsd
+
+ package unix
+
+@@ -11,21 +11,12 @@ import (
+ "unsafe"
+ )
+
+-func Getpagesize() int { return 4096 }
+-
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+-
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = nsec / 1e9
+- ts.Nsec = nsec % 1e9
+- return
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: sec, Nsec: nsec}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Usec = nsec % 1e9 / 1e3
+- tv.Sec = int64(nsec / 1e9)
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: sec, Usec: usec}
+ }
+
+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
+@@ -42,6 +33,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+ }
+
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = int32(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+ }
+@@ -59,3 +54,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ }
+
+ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
++
++func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
++ ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)}
++ err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
++ return int(ioDesc.Len), err
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_illumos.go b/vendor/golang.org/x/sys/unix/syscall_illumos.go
+new file mode 100644
+index 00000000..99e62dcd
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_illumos.go
+@@ -0,0 +1,57 @@
++// Copyright 2009 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// illumos system calls not present on Solaris.
++
++// +build amd64,illumos
++
++package unix
++
++import "unsafe"
++
++func bytes2iovec(bs [][]byte) []Iovec {
++ iovecs := make([]Iovec, len(bs))
++ for i, b := range bs {
++ iovecs[i].SetLen(len(b))
++ if len(b) > 0 {
++ // somehow Iovec.Base on illumos is (*int8), not (*byte)
++ iovecs[i].Base = (*int8)(unsafe.Pointer(&b[0]))
++ } else {
++ iovecs[i].Base = (*int8)(unsafe.Pointer(&_zero))
++ }
++ }
++ return iovecs
++}
++
++//sys readv(fd int, iovs []Iovec) (n int, err error)
++
++func Readv(fd int, iovs [][]byte) (n int, err error) {
++ iovecs := bytes2iovec(iovs)
++ n, err = readv(fd, iovecs)
++ return n, err
++}
++
++//sys preadv(fd int, iovs []Iovec, off int64) (n int, err error)
++
++func Preadv(fd int, iovs [][]byte, off int64) (n int, err error) {
++ iovecs := bytes2iovec(iovs)
++ n, err = preadv(fd, iovecs, off)
++ return n, err
++}
++
++//sys writev(fd int, iovs []Iovec) (n int, err error)
++
++func Writev(fd int, iovs [][]byte) (n int, err error) {
++ iovecs := bytes2iovec(iovs)
++ n, err = writev(fd, iovecs)
++ return n, err
++}
++
++//sys pwritev(fd int, iovs []Iovec, off int64) (n int, err error)
++
++func Pwritev(fd int, iovs [][]byte, off int64) (n int, err error) {
++ iovecs := bytes2iovec(iovs)
++ n, err = pwritev(fd, iovecs, off)
++ return n, err
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go
+index 1b7d59d8..bbe1abbc 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_linux.go
++++ b/vendor/golang.org/x/sys/unix/syscall_linux.go
+@@ -12,6 +12,8 @@
+ package unix
+
+ import (
++ "encoding/binary"
++ "runtime"
+ "syscall"
+ "unsafe"
+ )
+@@ -36,6 +38,20 @@ func Creat(path string, mode uint32) (fd int, err error) {
+ return Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode)
+ }
+
++//sys FanotifyInit(flags uint, event_f_flags uint) (fd int, err error)
++//sys fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error)
++
++func FanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname string) (err error) {
++ if pathname == "" {
++ return fanotifyMark(fd, flags, mask, dirFd, nil)
++ }
++ p, err := BytePtrFromString(pathname)
++ if err != nil {
++ return err
++ }
++ return fanotifyMark(fd, flags, mask, dirFd, p)
++}
++
+ //sys fchmodat(dirfd int, path string, mode uint32) (err error)
+
+ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
+@@ -55,37 +71,41 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
+ // ioctl itself should not be exposed directly, but additional get/set
+ // functions for specific types are permissible.
+
+-// IoctlSetInt performs an ioctl operation which sets an integer value
+-// on fd, using the specified request number.
+-func IoctlSetInt(fd int, req uint, value int) error {
+- return ioctl(fd, req, uintptr(value))
++// IoctlRetInt performs an ioctl operation specified by req on a device
++// associated with opened file descriptor fd, and returns a non-negative
++// integer that is returned by the ioctl syscall.
++func IoctlRetInt(fd int, req uint) (int, error) {
++ ret, _, err := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), 0)
++ if err != 0 {
++ return 0, err
++ }
++ return int(ret), nil
+ }
+
+-func IoctlSetWinsize(fd int, req uint, value *Winsize) error {
+- return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
++// IoctlSetPointerInt performs an ioctl operation which sets an
++// integer value on fd, using the specified request number. The ioctl
++// argument is called with a pointer to the integer value, rather than
++// passing the integer value directly.
++func IoctlSetPointerInt(fd int, req uint, value int) error {
++ v := int32(value)
++ return ioctl(fd, req, uintptr(unsafe.Pointer(&v)))
+ }
+
+-func IoctlSetTermios(fd int, req uint, value *Termios) error {
+- return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
++func IoctlSetRTCTime(fd int, value *RTCTime) error {
++ err := ioctl(fd, RTC_SET_TIME, uintptr(unsafe.Pointer(value)))
++ runtime.KeepAlive(value)
++ return err
+ }
+
+-// IoctlGetInt performs an ioctl operation which gets an integer value
+-// from fd, using the specified request number.
+-func IoctlGetInt(fd int, req uint) (int, error) {
+- var value int
++func IoctlGetUint32(fd int, req uint) (uint32, error) {
++ var value uint32
+ err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
+ return value, err
+ }
+
+-func IoctlGetWinsize(fd int, req uint) (*Winsize, error) {
+- var value Winsize
+- err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
+- return &value, err
+-}
+-
+-func IoctlGetTermios(fd int, req uint) (*Termios, error) {
+- var value Termios
+- err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
++func IoctlGetRTCTime(fd int) (*RTCTime, error) {
++ var value RTCTime
++ err := ioctl(fd, RTC_RD_TIME, uintptr(unsafe.Pointer(&value)))
+ return &value, err
+ }
+
+@@ -148,8 +168,6 @@ func Unlink(path string) error {
+
+ //sys Unlinkat(dirfd int, path string, flags int) (err error)
+
+-//sys utimes(path string, times *[2]Timeval) (err error)
+-
+ func Utimes(path string, tv []Timeval) error {
+ if tv == nil {
+ err := utimensat(AT_FDCWD, path, nil, 0)
+@@ -207,20 +225,14 @@ func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {
+ return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)
+ }
+
+-//sys futimesat(dirfd int, path *byte, times *[2]Timeval) (err error)
+-
+ func Futimesat(dirfd int, path string, tv []Timeval) error {
+- pathp, err := BytePtrFromString(path)
+- if err != nil {
+- return err
+- }
+ if tv == nil {
+- return futimesat(dirfd, pathp, nil)
++ return futimesat(dirfd, path, nil)
+ }
+ if len(tv) != 2 {
+ return EINVAL
+ }
+- return futimesat(dirfd, pathp, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
++ return futimesat(dirfd, path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
+ }
+
+ func Futimes(fd int, tv []Timeval) (err error) {
+@@ -255,7 +267,7 @@ func Getgroups() (gids []int, err error) {
+ return nil, nil
+ }
+
+- // Sanity check group count. Max is 1<<16 on Linux.
++ // Sanity check group count. Max is 1<<16 on Linux.
+ if n < 0 || n > 1<<20 {
+ return nil, EINVAL
+ }
+@@ -290,8 +302,8 @@ type WaitStatus uint32
+ // 0x7F (stopped), or a signal number that caused an exit.
+ // The 0x80 bit is whether there was a core dump.
+ // An extra number (exit code, signal causing a stop)
+-// is in the high bits. At least that's the idea.
+-// There are various irregularities. For example, the
++// is in the high bits. At least that's the idea.
++// There are various irregularities. For example, the
+ // "continued" status is 0xFFFF, distinguishing itself
+ // from stopped via the core dump bit.
+
+@@ -413,6 +425,7 @@ func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {
+ return unsafe.Pointer(&sa.raw), sl, nil
+ }
+
++// SockaddrLinklayer implements the Sockaddr interface for AF_PACKET type sockets.
+ type SockaddrLinklayer struct {
+ Protocol uint16
+ Ifindex int
+@@ -439,6 +452,7 @@ func (sa *SockaddrLinklayer) sockaddr() (unsafe.Pointer, _Socklen, error) {
+ return unsafe.Pointer(&sa.raw), SizeofSockaddrLinklayer, nil
+ }
+
++// SockaddrNetlink implements the Sockaddr interface for AF_NETLINK type sockets.
+ type SockaddrNetlink struct {
+ Family uint16
+ Pad uint16
+@@ -455,6 +469,8 @@ func (sa *SockaddrNetlink) sockaddr() (unsafe.Pointer, _Socklen, error) {
+ return unsafe.Pointer(&sa.raw), SizeofSockaddrNetlink, nil
+ }
+
++// SockaddrHCI implements the Sockaddr interface for AF_BLUETOOTH type sockets
++// using the HCI protocol.
+ type SockaddrHCI struct {
+ Dev uint16
+ Channel uint16
+@@ -468,6 +484,72 @@ func (sa *SockaddrHCI) sockaddr() (unsafe.Pointer, _Socklen, error) {
+ return unsafe.Pointer(&sa.raw), SizeofSockaddrHCI, nil
+ }
+
++// SockaddrL2 implements the Sockaddr interface for AF_BLUETOOTH type sockets
++// using the L2CAP protocol.
++type SockaddrL2 struct {
++ PSM uint16
++ CID uint16
++ Addr [6]uint8
++ AddrType uint8
++ raw RawSockaddrL2
++}
++
++func (sa *SockaddrL2) sockaddr() (unsafe.Pointer, _Socklen, error) {
++ sa.raw.Family = AF_BLUETOOTH
++ psm := (*[2]byte)(unsafe.Pointer(&sa.raw.Psm))
++ psm[0] = byte(sa.PSM)
++ psm[1] = byte(sa.PSM >> 8)
++ for i := 0; i < len(sa.Addr); i++ {
++ sa.raw.Bdaddr[i] = sa.Addr[len(sa.Addr)-1-i]
++ }
++ cid := (*[2]byte)(unsafe.Pointer(&sa.raw.Cid))
++ cid[0] = byte(sa.CID)
++ cid[1] = byte(sa.CID >> 8)
++ sa.raw.Bdaddr_type = sa.AddrType
++ return unsafe.Pointer(&sa.raw), SizeofSockaddrL2, nil
++}
++
++// SockaddrRFCOMM implements the Sockaddr interface for AF_BLUETOOTH type sockets
++// using the RFCOMM protocol.
++//
++// Server example:
++//
++// fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM)
++// _ = unix.Bind(fd, &unix.SockaddrRFCOMM{
++// Channel: 1,
++// Addr: [6]uint8{0, 0, 0, 0, 0, 0}, // BDADDR_ANY or 00:00:00:00:00:00
++// })
++// _ = Listen(fd, 1)
++// nfd, sa, _ := Accept(fd)
++// fmt.Printf("conn addr=%v fd=%d", sa.(*unix.SockaddrRFCOMM).Addr, nfd)
++// Read(nfd, buf)
++//
++// Client example:
++//
++// fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM)
++// _ = Connect(fd, &SockaddrRFCOMM{
++// Channel: 1,
++// Addr: [6]byte{0x11, 0x22, 0x33, 0xaa, 0xbb, 0xcc}, // CC:BB:AA:33:22:11
++// })
++// Write(fd, []byte(`hello`))
++type SockaddrRFCOMM struct {
++ // Addr represents a bluetooth address, byte ordering is little-endian.
++ Addr [6]uint8
++
++ // Channel is a designated bluetooth channel, only 1-30 are available for use.
++ // Since Linux 2.6.7 and further zero value is the first available channel.
++ Channel uint8
++
++ raw RawSockaddrRFCOMM
++}
++
++func (sa *SockaddrRFCOMM) sockaddr() (unsafe.Pointer, _Socklen, error) {
++ sa.raw.Family = AF_BLUETOOTH
++ sa.raw.Channel = sa.Channel
++ sa.raw.Bdaddr = sa.Addr
++ return unsafe.Pointer(&sa.raw), SizeofSockaddrRFCOMM, nil
++}
++
+ // SockaddrCAN implements the Sockaddr interface for AF_CAN type sockets.
+ // The RxID and TxID fields are used for transport protocol addressing in
+ // (CAN_TP16, CAN_TP20, CAN_MCNET, and CAN_ISOTP), they can be left with
+@@ -630,7 +712,168 @@ func (sa *SockaddrVM) sockaddr() (unsafe.Pointer, _Socklen, error) {
+ return unsafe.Pointer(&sa.raw), SizeofSockaddrVM, nil
+ }
+
+-func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {
++type SockaddrXDP struct {
++ Flags uint16
++ Ifindex uint32
++ QueueID uint32
++ SharedUmemFD uint32
++ raw RawSockaddrXDP
++}
++
++func (sa *SockaddrXDP) sockaddr() (unsafe.Pointer, _Socklen, error) {
++ sa.raw.Family = AF_XDP
++ sa.raw.Flags = sa.Flags
++ sa.raw.Ifindex = sa.Ifindex
++ sa.raw.Queue_id = sa.QueueID
++ sa.raw.Shared_umem_fd = sa.SharedUmemFD
++
++ return unsafe.Pointer(&sa.raw), SizeofSockaddrXDP, nil
++}
++
++// This constant mirrors the #define of PX_PROTO_OE in
++// linux/if_pppox.h. We're defining this by hand here instead of
++// autogenerating through mkerrors.sh because including
++// linux/if_pppox.h causes some declaration conflicts with other
++// includes (linux/if_pppox.h includes linux/in.h, which conflicts
++// with netinet/in.h). Given that we only need a single zero constant
++// out of that file, it's cleaner to just define it by hand here.
++const px_proto_oe = 0
++
++type SockaddrPPPoE struct {
++ SID uint16
++ Remote []byte
++ Dev string
++ raw RawSockaddrPPPoX
++}
++
++func (sa *SockaddrPPPoE) sockaddr() (unsafe.Pointer, _Socklen, error) {
++ if len(sa.Remote) != 6 {
++ return nil, 0, EINVAL
++ }
++ if len(sa.Dev) > IFNAMSIZ-1 {
++ return nil, 0, EINVAL
++ }
++
++ *(*uint16)(unsafe.Pointer(&sa.raw[0])) = AF_PPPOX
++ // This next field is in host-endian byte order. We can't use the
++ // same unsafe pointer cast as above, because this value is not
++ // 32-bit aligned and some architectures don't allow unaligned
++ // access.
++ //
++ // However, the value of px_proto_oe is 0, so we can use
++ // encoding/binary helpers to write the bytes without worrying
++ // about the ordering.
++ binary.BigEndian.PutUint32(sa.raw[2:6], px_proto_oe)
++ // This field is deliberately big-endian, unlike the previous
++ // one. The kernel expects SID to be in network byte order.
++ binary.BigEndian.PutUint16(sa.raw[6:8], sa.SID)
++ copy(sa.raw[8:14], sa.Remote)
++ for i := 14; i < 14+IFNAMSIZ; i++ {
++ sa.raw[i] = 0
++ }
++ copy(sa.raw[14:], sa.Dev)
++ return unsafe.Pointer(&sa.raw), SizeofSockaddrPPPoX, nil
++}
++
++// SockaddrTIPC implements the Sockaddr interface for AF_TIPC type sockets.
++// For more information on TIPC, see: http://tipc.sourceforge.net/.
++type SockaddrTIPC struct {
++ // Scope is the publication scopes when binding service/service range.
++ // Should be set to TIPC_CLUSTER_SCOPE or TIPC_NODE_SCOPE.
++ Scope int
++
++ // Addr is the type of address used to manipulate a socket. Addr must be
++ // one of:
++ // - *TIPCSocketAddr: "id" variant in the C addr union
++ // - *TIPCServiceRange: "nameseq" variant in the C addr union
++ // - *TIPCServiceName: "name" variant in the C addr union
++ //
++ // If nil, EINVAL will be returned when the structure is used.
++ Addr TIPCAddr
++
++ raw RawSockaddrTIPC
++}
++
++// TIPCAddr is implemented by types that can be used as an address for
++// SockaddrTIPC. It is only implemented by *TIPCSocketAddr, *TIPCServiceRange,
++// and *TIPCServiceName.
++type TIPCAddr interface {
++ tipcAddrtype() uint8
++ tipcAddr() [12]byte
++}
++
++func (sa *TIPCSocketAddr) tipcAddr() [12]byte {
++ var out [12]byte
++ copy(out[:], (*(*[unsafe.Sizeof(TIPCSocketAddr{})]byte)(unsafe.Pointer(sa)))[:])
++ return out
++}
++
++func (sa *TIPCSocketAddr) tipcAddrtype() uint8 { return TIPC_SOCKET_ADDR }
++
++func (sa *TIPCServiceRange) tipcAddr() [12]byte {
++ var out [12]byte
++ copy(out[:], (*(*[unsafe.Sizeof(TIPCServiceRange{})]byte)(unsafe.Pointer(sa)))[:])
++ return out
++}
++
++func (sa *TIPCServiceRange) tipcAddrtype() uint8 { return TIPC_SERVICE_RANGE }
++
++func (sa *TIPCServiceName) tipcAddr() [12]byte {
++ var out [12]byte
++ copy(out[:], (*(*[unsafe.Sizeof(TIPCServiceName{})]byte)(unsafe.Pointer(sa)))[:])
++ return out
++}
++
++func (sa *TIPCServiceName) tipcAddrtype() uint8 { return TIPC_SERVICE_ADDR }
++
++func (sa *SockaddrTIPC) sockaddr() (unsafe.Pointer, _Socklen, error) {
++ if sa.Addr == nil {
++ return nil, 0, EINVAL
++ }
++
++ sa.raw.Family = AF_TIPC
++ sa.raw.Scope = int8(sa.Scope)
++ sa.raw.Addrtype = sa.Addr.tipcAddrtype()
++ sa.raw.Addr = sa.Addr.tipcAddr()
++
++ return unsafe.Pointer(&sa.raw), SizeofSockaddrTIPC, nil
++}
++
++// SockaddrL2TPIP implements the Sockaddr interface for IPPROTO_L2TP/AF_INET sockets.
++type SockaddrL2TPIP struct {
++ Addr [4]byte
++ ConnId uint32
++ raw RawSockaddrL2TPIP
++}
++
++func (sa *SockaddrL2TPIP) sockaddr() (unsafe.Pointer, _Socklen, error) {
++ sa.raw.Family = AF_INET
++ sa.raw.Conn_id = sa.ConnId
++ for i := 0; i < len(sa.Addr); i++ {
++ sa.raw.Addr[i] = sa.Addr[i]
++ }
++ return unsafe.Pointer(&sa.raw), SizeofSockaddrL2TPIP, nil
++}
++
++// SockaddrL2TPIP6 implements the Sockaddr interface for IPPROTO_L2TP/AF_INET6 sockets.
++type SockaddrL2TPIP6 struct {
++ Addr [16]byte
++ ZoneId uint32
++ ConnId uint32
++ raw RawSockaddrL2TPIP6
++}
++
++func (sa *SockaddrL2TPIP6) sockaddr() (unsafe.Pointer, _Socklen, error) {
++ sa.raw.Family = AF_INET6
++ sa.raw.Conn_id = sa.ConnId
++ sa.raw.Scope_id = sa.ZoneId
++ for i := 0; i < len(sa.Addr); i++ {
++ sa.raw.Addr[i] = sa.Addr[i]
++ }
++ return unsafe.Pointer(&sa.raw), SizeofSockaddrL2TPIP6, nil
++}
++
++func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
+ switch rsa.Addr.Family {
+ case AF_NETLINK:
+ pp := (*RawSockaddrNetlink)(unsafe.Pointer(rsa))
+@@ -675,30 +918,63 @@ func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {
+ for n < len(pp.Path) && pp.Path[n] != 0 {
+ n++
+ }
+- bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n]
++ bytes := (*[len(pp.Path)]byte)(unsafe.Pointer(&pp.Path[0]))[0:n]
+ sa.Name = string(bytes)
+ return sa, nil
+
+ case AF_INET:
+- pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))
+- sa := new(SockaddrInet4)
+- p := (*[2]byte)(unsafe.Pointer(&pp.Port))
+- sa.Port = int(p[0])<<8 + int(p[1])
+- for i := 0; i < len(sa.Addr); i++ {
+- sa.Addr[i] = pp.Addr[i]
++ proto, err := GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL)
++ if err != nil {
++ return nil, err
++ }
++
++ switch proto {
++ case IPPROTO_L2TP:
++ pp := (*RawSockaddrL2TPIP)(unsafe.Pointer(rsa))
++ sa := new(SockaddrL2TPIP)
++ sa.ConnId = pp.Conn_id
++ for i := 0; i < len(sa.Addr); i++ {
++ sa.Addr[i] = pp.Addr[i]
++ }
++ return sa, nil
++ default:
++ pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))
++ sa := new(SockaddrInet4)
++ p := (*[2]byte)(unsafe.Pointer(&pp.Port))
++ sa.Port = int(p[0])<<8 + int(p[1])
++ for i := 0; i < len(sa.Addr); i++ {
++ sa.Addr[i] = pp.Addr[i]
++ }
++ return sa, nil
+ }
+- return sa, nil
+
+ case AF_INET6:
+- pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))
+- sa := new(SockaddrInet6)
+- p := (*[2]byte)(unsafe.Pointer(&pp.Port))
+- sa.Port = int(p[0])<<8 + int(p[1])
+- sa.ZoneId = pp.Scope_id
+- for i := 0; i < len(sa.Addr); i++ {
+- sa.Addr[i] = pp.Addr[i]
++ proto, err := GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL)
++ if err != nil {
++ return nil, err
++ }
++
++ switch proto {
++ case IPPROTO_L2TP:
++ pp := (*RawSockaddrL2TPIP6)(unsafe.Pointer(rsa))
++ sa := new(SockaddrL2TPIP6)
++ sa.ConnId = pp.Conn_id
++ sa.ZoneId = pp.Scope_id
++ for i := 0; i < len(sa.Addr); i++ {
++ sa.Addr[i] = pp.Addr[i]
++ }
++ return sa, nil
++ default:
++ pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))
++ sa := new(SockaddrInet6)
++ p := (*[2]byte)(unsafe.Pointer(&pp.Port))
++ sa.Port = int(p[0])<<8 + int(p[1])
++ sa.ZoneId = pp.Scope_id
++ for i := 0; i < len(sa.Addr); i++ {
++ sa.Addr[i] = pp.Addr[i]
++ }
++ return sa, nil
+ }
+- return sa, nil
+
+ case AF_VSOCK:
+ pp := (*RawSockaddrVM)(unsafe.Pointer(rsa))
+@@ -706,6 +982,76 @@ func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {
+ CID: pp.Cid,
+ Port: pp.Port,
+ }
++ return sa, nil
++ case AF_BLUETOOTH:
++ proto, err := GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL)
++ if err != nil {
++ return nil, err
++ }
++ // only BTPROTO_L2CAP and BTPROTO_RFCOMM can accept connections
++ switch proto {
++ case BTPROTO_L2CAP:
++ pp := (*RawSockaddrL2)(unsafe.Pointer(rsa))
++ sa := &SockaddrL2{
++ PSM: pp.Psm,
++ CID: pp.Cid,
++ Addr: pp.Bdaddr,
++ AddrType: pp.Bdaddr_type,
++ }
++ return sa, nil
++ case BTPROTO_RFCOMM:
++ pp := (*RawSockaddrRFCOMM)(unsafe.Pointer(rsa))
++ sa := &SockaddrRFCOMM{
++ Channel: pp.Channel,
++ Addr: pp.Bdaddr,
++ }
++ return sa, nil
++ }
++ case AF_XDP:
++ pp := (*RawSockaddrXDP)(unsafe.Pointer(rsa))
++ sa := &SockaddrXDP{
++ Flags: pp.Flags,
++ Ifindex: pp.Ifindex,
++ QueueID: pp.Queue_id,
++ SharedUmemFD: pp.Shared_umem_fd,
++ }
++ return sa, nil
++ case AF_PPPOX:
++ pp := (*RawSockaddrPPPoX)(unsafe.Pointer(rsa))
++ if binary.BigEndian.Uint32(pp[2:6]) != px_proto_oe {
++ return nil, EINVAL
++ }
++ sa := &SockaddrPPPoE{
++ SID: binary.BigEndian.Uint16(pp[6:8]),
++ Remote: pp[8:14],
++ }
++ for i := 14; i < 14+IFNAMSIZ; i++ {
++ if pp[i] == 0 {
++ sa.Dev = string(pp[14:i])
++ break
++ }
++ }
++ return sa, nil
++ case AF_TIPC:
++ pp := (*RawSockaddrTIPC)(unsafe.Pointer(rsa))
++
++ sa := &SockaddrTIPC{
++ Scope: int(pp.Scope),
++ }
++
++ // Determine which union variant is present in pp.Addr by checking
++ // pp.Addrtype.
++ switch pp.Addrtype {
++ case TIPC_SERVICE_RANGE:
++ sa.Addr = (*TIPCServiceRange)(unsafe.Pointer(&pp.Addr))
++ case TIPC_SERVICE_ADDR:
++ sa.Addr = (*TIPCServiceName)(unsafe.Pointer(&pp.Addr))
++ case TIPC_SOCKET_ADDR:
++ sa.Addr = (*TIPCSocketAddr)(unsafe.Pointer(&pp.Addr))
++ default:
++ return nil, EINVAL
++ }
++
+ return sa, nil
+ }
+ return nil, EAFNOSUPPORT
+@@ -718,7 +1064,7 @@ func Accept(fd int) (nfd int, sa Sockaddr, err error) {
+ if err != nil {
+ return
+ }
+- sa, err = anyToSockaddr(&rsa)
++ sa, err = anyToSockaddr(fd, &rsa)
+ if err != nil {
+ Close(nfd)
+ nfd = 0
+@@ -736,7 +1082,7 @@ func Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) {
+ if len > SizeofSockaddrAny {
+ panic("RawSockaddrAny too small")
+ }
+- sa, err = anyToSockaddr(&rsa)
++ sa, err = anyToSockaddr(fd, &rsa)
+ if err != nil {
+ Close(nfd)
+ nfd = 0
+@@ -750,20 +1096,7 @@ func Getsockname(fd int) (sa Sockaddr, err error) {
+ if err = getsockname(fd, &rsa, &len); err != nil {
+ return
+ }
+- return anyToSockaddr(&rsa)
+-}
+-
+-func GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) {
+- vallen := _Socklen(4)
+- err = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen)
+- return value, err
+-}
+-
+-func GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) {
+- var value IPMreq
+- vallen := _Socklen(SizeofIPMreq)
+- err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
+- return &value, err
++ return anyToSockaddr(fd, &rsa)
+ }
+
+ func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) {
+@@ -773,37 +1106,48 @@ func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) {
+ return &value, err
+ }
+
+-func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) {
+- var value IPv6Mreq
+- vallen := _Socklen(SizeofIPv6Mreq)
++func GetsockoptUcred(fd, level, opt int) (*Ucred, error) {
++ var value Ucred
++ vallen := _Socklen(SizeofUcred)
+ err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
+ return &value, err
+ }
+
+-func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) {
+- var value IPv6MTUInfo
+- vallen := _Socklen(SizeofIPv6MTUInfo)
++func GetsockoptTCPInfo(fd, level, opt int) (*TCPInfo, error) {
++ var value TCPInfo
++ vallen := _Socklen(SizeofTCPInfo)
+ err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
+ return &value, err
+ }
+
+-func GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) {
+- var value ICMPv6Filter
+- vallen := _Socklen(SizeofICMPv6Filter)
+- err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
+- return &value, err
++// GetsockoptString returns the string value of the socket option opt for the
++// socket associated with fd at the given socket level.
++func GetsockoptString(fd, level, opt int) (string, error) {
++ buf := make([]byte, 256)
++ vallen := _Socklen(len(buf))
++ err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)
++ if err != nil {
++ if err == ERANGE {
++ buf = make([]byte, vallen)
++ err = getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)
++ }
++ if err != nil {
++ return "", err
++ }
++ }
++ return string(buf[:vallen-1]), nil
+ }
+
+-func GetsockoptUcred(fd, level, opt int) (*Ucred, error) {
+- var value Ucred
+- vallen := _Socklen(SizeofUcred)
++func GetsockoptTpacketStats(fd, level, opt int) (*TpacketStats, error) {
++ var value TpacketStats
++ vallen := _Socklen(SizeofTpacketStats)
+ err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
+ return &value, err
+ }
+
+-func GetsockoptTCPInfo(fd, level, opt int) (*TCPInfo, error) {
+- var value TCPInfo
+- vallen := _Socklen(SizeofTCPInfo)
++func GetsockoptTpacketStatsV3(fd, level, opt int) (*TpacketStatsV3, error) {
++ var value TpacketStatsV3
++ vallen := _Socklen(SizeofTpacketStatsV3)
+ err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
+ return &value, err
+ }
+@@ -812,6 +1156,32 @@ func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) {
+ return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))
+ }
+
++func SetsockoptPacketMreq(fd, level, opt int, mreq *PacketMreq) error {
++ return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))
++}
++
++// SetsockoptSockFprog attaches a classic BPF or an extended BPF program to a
++// socket to filter incoming packets. See 'man 7 socket' for usage information.
++func SetsockoptSockFprog(fd, level, opt int, fprog *SockFprog) error {
++ return setsockopt(fd, level, opt, unsafe.Pointer(fprog), unsafe.Sizeof(*fprog))
++}
++
++func SetsockoptCanRawFilter(fd, level, opt int, filter []CanFilter) error {
++ var p unsafe.Pointer
++ if len(filter) > 0 {
++ p = unsafe.Pointer(&filter[0])
++ }
++ return setsockopt(fd, level, opt, p, uintptr(len(filter)*SizeofCanFilter))
++}
++
++func SetsockoptTpacketReq(fd, level, opt int, tp *TpacketReq) error {
++ return setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp))
++}
++
++func SetsockoptTpacketReq3(fd, level, opt int, tp *TpacketReq3) error {
++ return setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp))
++}
++
+ // Keyctl Commands (http://man7.org/linux/man-pages/man2/keyctl.2.html)
+
+ // KeyctlInt calls keyctl commands in which each argument is an int.
+@@ -919,6 +1289,34 @@ func KeyctlDHCompute(params *KeyctlDHParams, buffer []byte) (size int, err error
+ return keyctlDH(KEYCTL_DH_COMPUTE, params, buffer)
+ }
+
++// KeyctlRestrictKeyring implements the KEYCTL_RESTRICT_KEYRING command. This
++// command limits the set of keys that can be linked to the keyring, regardless
++// of keyring permissions. The command requires the "setattr" permission.
++//
++// When called with an empty keyType the command locks the keyring, preventing
++// any further keys from being linked to the keyring.
++//
++// The "asymmetric" keyType defines restrictions requiring key payloads to be
++// DER encoded X.509 certificates signed by keys in another keyring. Restrictions
++// for "asymmetric" include "builtin_trusted", "builtin_and_secondary_trusted",
++// "key_or_keyring:<key>", and "key_or_keyring:<key>:chain".
++//
++// As of Linux 4.12, only the "asymmetric" keyType defines type-specific
++// restrictions.
++//
++// See the full documentation at:
++// http://man7.org/linux/man-pages/man3/keyctl_restrict_keyring.3.html
++// http://man7.org/linux/man-pages/man2/keyctl.2.html
++func KeyctlRestrictKeyring(ringid int, keyType string, restriction string) error {
++ if keyType == "" {
++ return keyctlRestrictKeyring(KEYCTL_RESTRICT_KEYRING, ringid)
++ }
++ return keyctlRestrictKeyringByType(KEYCTL_RESTRICT_KEYRING, ringid, keyType, restriction)
++}
++
++//sys keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) = SYS_KEYCTL
++//sys keyctlRestrictKeyring(cmd int, arg2 int) (err error) = SYS_KEYCTL
++
+ func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) {
+ var msg Msghdr
+ var rsa RawSockaddrAny
+@@ -926,22 +1324,24 @@ func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from
+ msg.Namelen = uint32(SizeofSockaddrAny)
+ var iov Iovec
+ if len(p) > 0 {
+- iov.Base = (*byte)(unsafe.Pointer(&p[0]))
++ iov.Base = &p[0]
+ iov.SetLen(len(p))
+ }
+ var dummy byte
+ if len(oob) > 0 {
+- var sockType int
+- sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE)
+- if err != nil {
+- return
++ if len(p) == 0 {
++ var sockType int
++ sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE)
++ if err != nil {
++ return
++ }
++ // receive at least one normal byte
++ if sockType != SOCK_DGRAM {
++ iov.Base = &dummy
++ iov.SetLen(1)
++ }
+ }
+- // receive at least one normal byte
+- if sockType != SOCK_DGRAM && len(p) == 0 {
+- iov.Base = &dummy
+- iov.SetLen(1)
+- }
+- msg.Control = (*byte)(unsafe.Pointer(&oob[0]))
++ msg.Control = &oob[0]
+ msg.SetControllen(len(oob))
+ }
+ msg.Iov = &iov
+@@ -953,7 +1353,7 @@ func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from
+ recvflags = int(msg.Flags)
+ // source address is only specified if the socket is unconnected
+ if rsa.Addr.Family != AF_UNSPEC {
+- from, err = anyToSockaddr(&rsa)
++ from, err = anyToSockaddr(fd, &rsa)
+ }
+ return
+ }
+@@ -974,26 +1374,28 @@ func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error)
+ }
+ }
+ var msg Msghdr
+- msg.Name = (*byte)(unsafe.Pointer(ptr))
++ msg.Name = (*byte)(ptr)
+ msg.Namelen = uint32(salen)
+ var iov Iovec
+ if len(p) > 0 {
+- iov.Base = (*byte)(unsafe.Pointer(&p[0]))
++ iov.Base = &p[0]
+ iov.SetLen(len(p))
+ }
+ var dummy byte
+ if len(oob) > 0 {
+- var sockType int
+- sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE)
+- if err != nil {
+- return 0, err
++ if len(p) == 0 {
++ var sockType int
++ sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE)
++ if err != nil {
++ return 0, err
++ }
++ // send at least one normal byte
++ if sockType != SOCK_DGRAM {
++ iov.Base = &dummy
++ iov.SetLen(1)
++ }
+ }
+- // send at least one normal byte
+- if sockType != SOCK_DGRAM && len(p) == 0 {
+- iov.Base = &dummy
+- iov.SetLen(1)
+- }
+- msg.Control = (*byte)(unsafe.Pointer(&oob[0]))
++ msg.Control = &oob[0]
+ msg.SetControllen(len(oob))
+ }
+ msg.Iov = &iov
+@@ -1021,20 +1423,20 @@ func ptracePeek(req int, pid int, addr uintptr, out []byte) (count int, err erro
+ // The ptrace syscall differs from glibc's ptrace.
+ // Peeks returns the word in *data, not as the return value.
+
+- var buf [sizeofPtr]byte
++ var buf [SizeofPtr]byte
+
+- // Leading edge. PEEKTEXT/PEEKDATA don't require aligned
++ // Leading edge. PEEKTEXT/PEEKDATA don't require aligned
+ // access (PEEKUSER warns that it might), but if we don't
+ // align our reads, we might straddle an unmapped page
+ // boundary and not get the bytes leading up to the page
+ // boundary.
+ n := 0
+- if addr%sizeofPtr != 0 {
+- err = ptrace(req, pid, addr-addr%sizeofPtr, uintptr(unsafe.Pointer(&buf[0])))
++ if addr%SizeofPtr != 0 {
++ err = ptrace(req, pid, addr-addr%SizeofPtr, uintptr(unsafe.Pointer(&buf[0])))
+ if err != nil {
+ return 0, err
+ }
+- n += copy(out, buf[addr%sizeofPtr:])
++ n += copy(out, buf[addr%SizeofPtr:])
+ out = out[n:]
+ }
+
+@@ -1072,15 +1474,15 @@ func ptracePoke(pokeReq int, peekReq int, pid int, addr uintptr, data []byte) (c
+
+ // Leading edge.
+ n := 0
+- if addr%sizeofPtr != 0 {
+- var buf [sizeofPtr]byte
+- err = ptrace(peekReq, pid, addr-addr%sizeofPtr, uintptr(unsafe.Pointer(&buf[0])))
++ if addr%SizeofPtr != 0 {
++ var buf [SizeofPtr]byte
++ err = ptrace(peekReq, pid, addr-addr%SizeofPtr, uintptr(unsafe.Pointer(&buf[0])))
+ if err != nil {
+ return 0, err
+ }
+- n += copy(buf[addr%sizeofPtr:], data)
++ n += copy(buf[addr%SizeofPtr:], data)
+ word := *((*uintptr)(unsafe.Pointer(&buf[0])))
+- err = ptrace(pokeReq, pid, addr-addr%sizeofPtr, word)
++ err = ptrace(pokeReq, pid, addr-addr%SizeofPtr, word)
+ if err != nil {
+ return 0, err
+ }
+@@ -1088,19 +1490,19 @@ func ptracePoke(pokeReq int, peekReq int, pid int, addr uintptr, data []byte) (c
+ }
+
+ // Interior.
+- for len(data) > sizeofPtr {
++ for len(data) > SizeofPtr {
+ word := *((*uintptr)(unsafe.Pointer(&data[0])))
+ err = ptrace(pokeReq, pid, addr+uintptr(n), word)
+ if err != nil {
+ return n, err
+ }
+- n += sizeofPtr
+- data = data[sizeofPtr:]
++ n += SizeofPtr
++ data = data[SizeofPtr:]
+ }
+
+ // Trailing edge.
+ if len(data) > 0 {
+- var buf [sizeofPtr]byte
++ var buf [SizeofPtr]byte
+ err = ptrace(peekReq, pid, addr+uintptr(n), uintptr(unsafe.Pointer(&buf[0])))
+ if err != nil {
+ return n, err
+@@ -1125,6 +1527,10 @@ func PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) {
+ return ptracePoke(PTRACE_POKEDATA, PTRACE_PEEKDATA, pid, addr, data)
+ }
+
++func PtracePokeUser(pid int, addr uintptr, data []byte) (count int, err error) {
++ return ptracePoke(PTRACE_POKEUSR, PTRACE_PEEKUSR, pid, addr, data)
++}
++
+ func PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) {
+ return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
+ }
+@@ -1154,8 +1560,12 @@ func PtraceSyscall(pid int, signal int) (err error) {
+
+ func PtraceSingleStep(pid int) (err error) { return ptrace(PTRACE_SINGLESTEP, pid, 0, 0) }
+
++func PtraceInterrupt(pid int) (err error) { return ptrace(PTRACE_INTERRUPT, pid, 0, 0) }
++
+ func PtraceAttach(pid int) (err error) { return ptrace(PTRACE_ATTACH, pid, 0, 0) }
+
++func PtraceSeize(pid int) (err error) { return ptrace(PTRACE_SEIZE, pid, 0, 0) }
++
+ func PtraceDetach(pid int) (err error) { return ptrace(PTRACE_DETACH, pid, 0, 0) }
+
+ //sys reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error)
+@@ -1164,10 +1574,6 @@ func Reboot(cmd int) (err error) {
+ return reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, cmd, "")
+ }
+
+-func ReadDirent(fd int, buf []byte) (n int, err error) {
+- return Getdents(fd, buf)
+-}
+-
+ func direntIno(buf []byte) (uint64, bool) {
+ return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))
+ }
+@@ -1199,6 +1605,13 @@ func Mount(source string, target string, fstype string, flags uintptr, data stri
+ return mount(source, target, fstype, flags, datap)
+ }
+
++func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
++ if raceenabled {
++ raceReleaseMerge(unsafe.Pointer(&ioSync))
++ }
++ return sendfile(outfd, infd, offset, count)
++}
++
+ // Sendto
+ // Recvfrom
+ // Socketpair
+@@ -1209,26 +1622,33 @@ func Mount(source string, target string, fstype string, flags uintptr, data stri
+ //sys Acct(path string) (err error)
+ //sys AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error)
+ //sys Adjtimex(buf *Timex) (state int, err error)
++//sysnb Capget(hdr *CapUserHeader, data *CapUserData) (err error)
++//sysnb Capset(hdr *CapUserHeader, data *CapUserData) (err error)
+ //sys Chdir(path string) (err error)
+ //sys Chroot(path string) (err error)
++//sys ClockGetres(clockid int32, res *Timespec) (err error)
+ //sys ClockGettime(clockid int32, time *Timespec) (err error)
++//sys ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error)
+ //sys Close(fd int) (err error)
+ //sys CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)
++//sys DeleteModule(name string, flags int) (err error)
+ //sys Dup(oldfd int) (fd int, err error)
+ //sys Dup3(oldfd int, newfd int, flags int) (err error)
+-//sysnb EpollCreate(size int) (fd int, err error)
+ //sysnb EpollCreate1(flag int) (fd int, err error)
+ //sysnb EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error)
+ //sys Eventfd(initval uint, flags int) (fd int, err error) = SYS_EVENTFD2
+ //sys Exit(code int) = SYS_EXIT_GROUP
+-//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error)
+ //sys Fallocate(fd int, mode uint32, off int64, len int64) (err error)
+ //sys Fchdir(fd int) (err error)
+ //sys Fchmod(fd int, mode uint32) (err error)
+ //sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error)
+-//sys fcntl(fd int, cmd int, arg int) (val int, err error)
+ //sys Fdatasync(fd int) (err error)
++//sys Fgetxattr(fd int, attr string, dest []byte) (sz int, err error)
++//sys FinitModule(fd int, params string, flags int) (err error)
++//sys Flistxattr(fd int, dest []byte) (sz int, err error)
+ //sys Flock(fd int, how int) (err error)
++//sys Fremovexattr(fd int, attr string) (err error)
++//sys Fsetxattr(fd int, attr string, dest []byte, flags int) (err error)
+ //sys Fsync(fd int) (err error)
+ //sys Getdents(fd int, buf []byte) (n int, err error) = SYS_GETDENTS64
+ //sysnb Getpgid(pid int) (pgid int, err error)
+@@ -1246,6 +1666,7 @@ func Getpgrp() (pid int) {
+ //sysnb Getsid(pid int) (sid int, err error)
+ //sysnb Gettid() (tid int)
+ //sys Getxattr(path string, attr string, dest []byte) (sz int, err error)
++//sys InitModule(moduleImage []byte, params string) (err error)
+ //sys InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error)
+ //sysnb InotifyInit1(flags int) (fd int, err error)
+ //sysnb InotifyRmWatch(fd int, watchdesc uint32) (success int, err error)
+@@ -1256,15 +1677,18 @@ func Getpgrp() (pid int) {
+ //sys Llistxattr(path string, dest []byte) (sz int, err error)
+ //sys Lremovexattr(path string, attr string) (err error)
+ //sys Lsetxattr(path string, attr string, data []byte, flags int) (err error)
++//sys MemfdCreate(name string, flags int) (fd int, err error)
+ //sys Mkdirat(dirfd int, path string, mode uint32) (err error)
+ //sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error)
+ //sys Nanosleep(time *Timespec, leftover *Timespec) (err error)
++//sys PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error)
+ //sys PivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT
+ //sysnb prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT64
+ //sys Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error)
++//sys Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) = SYS_PSELECT6
+ //sys read(fd int, p []byte) (n int, err error)
+ //sys Removexattr(path string, attr string) (err error)
+-//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
++//sys Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error)
+ //sys RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error)
+ //sys Setdomainname(p []byte) (err error)
+ //sys Sethostname(p []byte) (err error)
+@@ -1273,6 +1697,17 @@ func Getpgrp() (pid int) {
+ //sysnb Settimeofday(tv *Timeval) (err error)
+ //sys Setns(fd int, nstype int) (err error)
+
++// PrctlRetInt performs a prctl operation specified by option and further
++// optional arguments arg2 through arg5 depending on option. It returns a
++// non-negative integer that is returned by the prctl syscall.
++func PrctlRetInt(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (int, error) {
++ ret, _, err := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
++ if err != 0 {
++ return 0, err
++ }
++ return int(ret), nil
++}
++
+ // issue 1435.
+ // On linux Setuid and Setgid only affects the current thread, not the process.
+ // This does not match what most callers expect so we must return an error
+@@ -1286,8 +1721,38 @@ func Setgid(uid int) (err error) {
+ return EOPNOTSUPP
+ }
+
++// SetfsgidRetGid sets fsgid for current thread and returns previous fsgid set.
++// setfsgid(2) will return a non-nil error only if its caller lacks CAP_SETUID capability.
++// If the call fails due to other reasons, current fsgid will be returned.
++func SetfsgidRetGid(gid int) (int, error) {
++ return setfsgid(gid)
++}
++
++// SetfsuidRetUid sets fsuid for current thread and returns previous fsuid set.
++// setfsgid(2) will return a non-nil error only if its caller lacks CAP_SETUID capability
++// If the call fails due to other reasons, current fsuid will be returned.
++func SetfsuidRetUid(uid int) (int, error) {
++ return setfsuid(uid)
++}
++
++func Setfsgid(gid int) error {
++ _, err := setfsgid(gid)
++ return err
++}
++
++func Setfsuid(uid int) error {
++ _, err := setfsuid(uid)
++ return err
++}
++
++func Signalfd(fd int, sigmask *Sigset_t, flags int) (newfd int, err error) {
++ return signalfd(fd, sigmask, _C__NSIG/8, flags)
++}
++
+ //sys Setpriority(which int, who int, prio int) (err error)
+ //sys Setxattr(path string, attr string, data []byte, flags int) (err error)
++//sys signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) = SYS_SIGNALFD4
++//sys Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error)
+ //sys Sync()
+ //sys Syncfs(fd int) (err error)
+ //sysnb Sysinfo(info *Sysinfo_t) (err error)
+@@ -1298,11 +1763,127 @@ func Setgid(uid int) (err error) {
+ //sysnb Uname(buf *Utsname) (err error)
+ //sys Unmount(target string, flags int) (err error) = SYS_UMOUNT2
+ //sys Unshare(flags int) (err error)
+-//sys Ustat(dev int, ubuf *Ustat_t) (err error)
+ //sys write(fd int, p []byte) (n int, err error)
+ //sys exitThread(code int) (err error) = SYS_EXIT
+ //sys readlen(fd int, p *byte, np int) (n int, err error) = SYS_READ
+ //sys writelen(fd int, p *byte, np int) (n int, err error) = SYS_WRITE
++//sys readv(fd int, iovs []Iovec) (n int, err error) = SYS_READV
++//sys writev(fd int, iovs []Iovec) (n int, err error) = SYS_WRITEV
++//sys preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PREADV
++//sys pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PWRITEV
++//sys preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PREADV2
++//sys pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PWRITEV2
++
++func bytes2iovec(bs [][]byte) []Iovec {
++ iovecs := make([]Iovec, len(bs))
++ for i, b := range bs {
++ iovecs[i].SetLen(len(b))
++ if len(b) > 0 {
++ iovecs[i].Base = &b[0]
++ } else {
++ iovecs[i].Base = (*byte)(unsafe.Pointer(&_zero))
++ }
++ }
++ return iovecs
++}
++
++// offs2lohi splits offs into its lower and upper unsigned long. On 64-bit
++// systems, hi will always be 0. On 32-bit systems, offs will be split in half.
++// preadv/pwritev chose this calling convention so they don't need to add a
++// padding-register for alignment on ARM.
++func offs2lohi(offs int64) (lo, hi uintptr) {
++ return uintptr(offs), uintptr(uint64(offs) >> SizeofLong)
++}
++
++func Readv(fd int, iovs [][]byte) (n int, err error) {
++ iovecs := bytes2iovec(iovs)
++ n, err = readv(fd, iovecs)
++ readvRacedetect(iovecs, n, err)
++ return n, err
++}
++
++func Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) {
++ iovecs := bytes2iovec(iovs)
++ lo, hi := offs2lohi(offset)
++ n, err = preadv(fd, iovecs, lo, hi)
++ readvRacedetect(iovecs, n, err)
++ return n, err
++}
++
++func Preadv2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) {
++ iovecs := bytes2iovec(iovs)
++ lo, hi := offs2lohi(offset)
++ n, err = preadv2(fd, iovecs, lo, hi, flags)
++ readvRacedetect(iovecs, n, err)
++ return n, err
++}
++
++func readvRacedetect(iovecs []Iovec, n int, err error) {
++ if !raceenabled {
++ return
++ }
++ for i := 0; n > 0 && i < len(iovecs); i++ {
++ m := int(iovecs[i].Len)
++ if m > n {
++ m = n
++ }
++ n -= m
++ if m > 0 {
++ raceWriteRange(unsafe.Pointer(iovecs[i].Base), m)
++ }
++ }
++ if err == nil {
++ raceAcquire(unsafe.Pointer(&ioSync))
++ }
++}
++
++func Writev(fd int, iovs [][]byte) (n int, err error) {
++ iovecs := bytes2iovec(iovs)
++ if raceenabled {
++ raceReleaseMerge(unsafe.Pointer(&ioSync))
++ }
++ n, err = writev(fd, iovecs)
++ writevRacedetect(iovecs, n)
++ return n, err
++}
++
++func Pwritev(fd int, iovs [][]byte, offset int64) (n int, err error) {
++ iovecs := bytes2iovec(iovs)
++ if raceenabled {
++ raceReleaseMerge(unsafe.Pointer(&ioSync))
++ }
++ lo, hi := offs2lohi(offset)
++ n, err = pwritev(fd, iovecs, lo, hi)
++ writevRacedetect(iovecs, n)
++ return n, err
++}
++
++func Pwritev2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) {
++ iovecs := bytes2iovec(iovs)
++ if raceenabled {
++ raceReleaseMerge(unsafe.Pointer(&ioSync))
++ }
++ lo, hi := offs2lohi(offset)
++ n, err = pwritev2(fd, iovecs, lo, hi, flags)
++ writevRacedetect(iovecs, n)
++ return n, err
++}
++
++func writevRacedetect(iovecs []Iovec, n int) {
++ if !raceenabled {
++ return
++ }
++ for i := 0; n > 0 && i < len(iovecs); i++ {
++ m := int(iovecs[i].Len)
++ if m > n {
++ m = n
++ }
++ n -= m
++ if m > 0 {
++ raceReadRange(unsafe.Pointer(iovecs[i].Base), m)
++ }
++ }
++}
+
+ // mmap varies by architecture; see syscall_linux_*.go.
+ //sys munmap(addr uintptr, length uintptr) (err error)
+@@ -1332,15 +1913,12 @@ func Munmap(b []byte) (err error) {
+ // Vmsplice splices user pages from a slice of Iovecs into a pipe specified by fd,
+ // using the specified flags.
+ func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) {
+- n, _, errno := Syscall6(
+- SYS_VMSPLICE,
+- uintptr(fd),
+- uintptr(unsafe.Pointer(&iovs[0])),
+- uintptr(len(iovs)),
+- uintptr(flags),
+- 0,
+- 0,
+- )
++ var p unsafe.Pointer
++ if len(iovs) > 0 {
++ p = unsafe.Pointer(&iovs[0])
++ }
++
++ n, _, errno := Syscall6(SYS_VMSPLICE, uintptr(fd), uintptr(p), uintptr(len(iovs)), uintptr(flags), 0, 0)
+ if errno != 0 {
+ return 0, syscall.Errno(errno)
+ }
+@@ -1348,6 +1926,164 @@ func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) {
+ return int(n), nil
+ }
+
++//sys faccessat(dirfd int, path string, mode uint32) (err error)
++
++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
++ if flags & ^(AT_SYMLINK_NOFOLLOW|AT_EACCESS) != 0 {
++ return EINVAL
++ }
++
++ // The Linux kernel faccessat system call does not take any flags.
++ // The glibc faccessat implements the flags itself; see
++ // https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/faccessat.c;hb=HEAD
++ // Because people naturally expect syscall.Faccessat to act
++ // like C faccessat, we do the same.
++
++ if flags == 0 {
++ return faccessat(dirfd, path, mode)
++ }
++
++ var st Stat_t
++ if err := Fstatat(dirfd, path, &st, flags&AT_SYMLINK_NOFOLLOW); err != nil {
++ return err
++ }
++
++ mode &= 7
++ if mode == 0 {
++ return nil
++ }
++
++ var uid int
++ if flags&AT_EACCESS != 0 {
++ uid = Geteuid()
++ } else {
++ uid = Getuid()
++ }
++
++ if uid == 0 {
++ if mode&1 == 0 {
++ // Root can read and write any file.
++ return nil
++ }
++ if st.Mode&0111 != 0 {
++ // Root can execute any file that anybody can execute.
++ return nil
++ }
++ return EACCES
++ }
++
++ var fmode uint32
++ if uint32(uid) == st.Uid {
++ fmode = (st.Mode >> 6) & 7
++ } else {
++ var gid int
++ if flags&AT_EACCESS != 0 {
++ gid = Getegid()
++ } else {
++ gid = Getgid()
++ }
++
++ if uint32(gid) == st.Gid {
++ fmode = (st.Mode >> 3) & 7
++ } else {
++ fmode = st.Mode & 7
++ }
++ }
++
++ if fmode&mode == mode {
++ return nil
++ }
++
++ return EACCES
++}
++
++//sys nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) = SYS_NAME_TO_HANDLE_AT
++//sys openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) = SYS_OPEN_BY_HANDLE_AT
++
++// fileHandle is the argument to nameToHandleAt and openByHandleAt. We
++// originally tried to generate it via unix/linux/types.go with "type
++// fileHandle C.struct_file_handle" but that generated empty structs
++// for mips64 and mips64le. Instead, hard code it for now (it's the
++// same everywhere else) until the mips64 generator issue is fixed.
++type fileHandle struct {
++ Bytes uint32
++ Type int32
++}
++
++// FileHandle represents the C struct file_handle used by
++// name_to_handle_at (see NameToHandleAt) and open_by_handle_at (see
++// OpenByHandleAt).
++type FileHandle struct {
++ *fileHandle
++}
++
++// NewFileHandle constructs a FileHandle.
++func NewFileHandle(handleType int32, handle []byte) FileHandle {
++ const hdrSize = unsafe.Sizeof(fileHandle{})
++ buf := make([]byte, hdrSize+uintptr(len(handle)))
++ copy(buf[hdrSize:], handle)
++ fh := (*fileHandle)(unsafe.Pointer(&buf[0]))
++ fh.Type = handleType
++ fh.Bytes = uint32(len(handle))
++ return FileHandle{fh}
++}
++
++func (fh *FileHandle) Size() int { return int(fh.fileHandle.Bytes) }
++func (fh *FileHandle) Type() int32 { return fh.fileHandle.Type }
++func (fh *FileHandle) Bytes() []byte {
++ n := fh.Size()
++ if n == 0 {
++ return nil
++ }
++ return (*[1 << 30]byte)(unsafe.Pointer(uintptr(unsafe.Pointer(&fh.fileHandle.Type)) + 4))[:n:n]
++}
++
++// NameToHandleAt wraps the name_to_handle_at system call; it obtains
++// a handle for a path name.
++func NameToHandleAt(dirfd int, path string, flags int) (handle FileHandle, mountID int, err error) {
++ var mid _C_int
++ // Try first with a small buffer, assuming the handle will
++ // only be 32 bytes.
++ size := uint32(32 + unsafe.Sizeof(fileHandle{}))
++ didResize := false
++ for {
++ buf := make([]byte, size)
++ fh := (*fileHandle)(unsafe.Pointer(&buf[0]))
++ fh.Bytes = size - uint32(unsafe.Sizeof(fileHandle{}))
++ err = nameToHandleAt(dirfd, path, fh, &mid, flags)
++ if err == EOVERFLOW {
++ if didResize {
++ // We shouldn't need to resize more than once
++ return
++ }
++ didResize = true
++ size = fh.Bytes + uint32(unsafe.Sizeof(fileHandle{}))
++ continue
++ }
++ if err != nil {
++ return
++ }
++ return FileHandle{fh}, int(mid), nil
++ }
++}
++
++// OpenByHandleAt wraps the open_by_handle_at system call; it opens a
++// file via a handle as previously returned by NameToHandleAt.
++func OpenByHandleAt(mountFD int, handle FileHandle, flags int) (fd int, err error) {
++ return openByHandleAt(mountFD, handle.fileHandle, flags)
++}
++
++// Klogset wraps the sys_syslog system call; it sets console_loglevel to
++// the value specified by arg and passes a dummy pointer to bufp.
++func Klogset(typ int, arg int) (err error) {
++ var p unsafe.Pointer
++ _, _, errno := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(p), uintptr(arg))
++ if errno != 0 {
++ return errnoErr(errno)
++ }
++ return nil
++}
++
+ /*
+ * Unimplemented
+ */
+@@ -1355,23 +2091,14 @@ func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) {
+ // Alarm
+ // ArchPrctl
+ // Brk
+-// Capget
+-// Capset
+-// ClockGetres
+ // ClockNanosleep
+ // ClockSettime
+ // Clone
+-// CreateModule
+-// DeleteModule
+ // EpollCtlOld
+ // EpollPwait
+ // EpollWaitOld
+ // Execve
+-// Fgetxattr
+-// Flistxattr
+ // Fork
+-// Fremovexattr
+-// Fsetxattr
+ // Futex
+ // GetKernelSyms
+ // GetMempolicy
+@@ -1405,13 +2132,11 @@ func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) {
+ // Msgget
+ // Msgrcv
+ // Msgsnd
+-// Newfstatat
+ // Nfsservctl
+ // Personality
+ // Pselect6
+ // Ptrace
+ // Putpmsg
+-// QueryModule
+ // Quotactl
+ // Readahead
+ // Readv
+@@ -1426,11 +2151,9 @@ func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) {
+ // RtSigtimedwait
+ // SchedGetPriorityMax
+ // SchedGetPriorityMin
+-// SchedGetaffinity
+ // SchedGetparam
+ // SchedGetscheduler
+ // SchedRrGetInterval
+-// SchedSetaffinity
+ // SchedSetparam
+ // SchedYield
+ // Security
+@@ -1447,7 +2170,6 @@ func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) {
+ // Shmdt
+ // Shmget
+ // Sigaltstack
+-// Signalfd
+ // Swapoff
+ // Swapon
+ // Sysfs
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_386.go
+index 2b881b97..a8374b67 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_linux_386.go
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_386.go
+@@ -10,25 +10,15 @@
+ package unix
+
+ import (
+- "syscall"
+ "unsafe"
+ )
+
+-func Getpagesize() int { return 4096 }
+-
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+-
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = int32(nsec / 1e9)
+- ts.Nsec = int32(nsec % 1e9)
+- return
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: int32(sec), Nsec: int32(nsec)}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Sec = int32(nsec / 1e9)
+- tv.Usec = int32(nsec % 1e9 / 1e3)
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: int32(sec), Usec: int32(usec)}
+ }
+
+ //sysnb pipe(p *[2]_C_int) (err error)
+@@ -60,9 +50,12 @@ func Pipe2(p []int, flags int) (err error) {
+ // 64-bit file system and 32-bit uid calls
+ // (386 default is 32-bit file system and 16-bit uid).
+ //sys Dup2(oldfd int, newfd int) (err error)
++//sysnb EpollCreate(size int) (fd int, err error)
++//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
+ //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64_64
+ //sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32
+ //sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
++//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64
+ //sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64
+ //sysnb Getegid() (egid int) = SYS_GETEGID32
+ //sysnb Geteuid() (euid int) = SYS_GETEUID32
+@@ -75,9 +68,10 @@ func Pipe2(p []int, flags int) (err error) {
+ //sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
+ //sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+ //sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
++//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
+ //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
+-//sys Setfsgid(gid int) (err error) = SYS_SETFSGID32
+-//sys Setfsuid(uid int) (err error) = SYS_SETFSUID32
++//sys setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32
++//sys setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32
+ //sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID32
+ //sysnb Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32
+ //sysnb Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32
+@@ -86,12 +80,12 @@ func Pipe2(p []int, flags int) (err error) {
+ //sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
+ //sys SyncFileRange(fd int, off int64, n int64, flags int) (err error)
+ //sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64
++//sys Ustat(dev int, ubuf *Ustat_t) (err error)
+ //sysnb getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32
+ //sysnb setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32
+ //sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
+
+ //sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error)
+-//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
+ //sys Pause() (err error)
+
+ func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
+@@ -165,10 +159,6 @@ func Setrlimit(resource int, rlim *Rlimit) (err error) {
+ return setrlimit(resource, &rl)
+ }
+
+-// Underlying system call writes to newoffset via pointer.
+-// Implemented in assembly to avoid allocation.
+-func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno)
+-
+ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ newoffset, errno := seek(fd, offset, whence)
+ if errno != 0 {
+@@ -177,17 +167,17 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ return newoffset, nil
+ }
+
+-// Vsyscalls on amd64.
++//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error)
+ //sysnb Gettimeofday(tv *Timeval) (err error)
+ //sysnb Time(t *Time_t) (tt Time_t, err error)
+-
+ //sys Utime(path string, buf *Utimbuf) (err error)
++//sys utimes(path string, times *[2]Timeval) (err error)
+
+ // On x86 Linux, all the socket calls go through an extra indirection,
+ // I think because the 5-register system call interface can't handle
+-// the 6-argument calls like sendto and recvfrom. Instead the
++// the 6-argument calls like sendto and recvfrom. Instead the
+ // arguments to the underlying system call are the number below
+-// and a pointer to an array of uintptr. We hide the pointer in the
++// and a pointer to an array of uintptr. We hide the pointer in the
+ // socketcall assembly to avoid allocation on every system call.
+
+ const (
+@@ -214,9 +204,6 @@ const (
+ _SENDMMSG = 20
+ )
+
+-func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno)
+-func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno)
+-
+ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+ fd, e := socketcall(_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
+ if e != 0 {
+@@ -385,6 +372,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+ }
+
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = uint32(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+ }
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
+index 9516a3fd..8ed1d546 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
+@@ -7,10 +7,12 @@
+ package unix
+
+ //sys Dup2(oldfd int, newfd int) (err error)
++//sysnb EpollCreate(size int) (fd int, err error)
+ //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
+ //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
+ //sys Fchown(fd int, uid int, gid int) (err error)
+ //sys Fstat(fd int, stat *Stat_t) (err error)
++//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT
+ //sys Fstatfs(fd int, buf *Statfs_t) (err error)
+ //sys Ftruncate(fd int, length int64) (err error)
+ //sysnb Getegid() (egid int)
+@@ -18,20 +20,43 @@ package unix
+ //sysnb Getgid() (gid int)
+ //sysnb Getrlimit(resource int, rlim *Rlimit) (err error)
+ //sysnb Getuid() (uid int)
+-//sysnb InotifyInit() (fd int, err error)
++//sysnb inotifyInit() (fd int, err error)
++
++func InotifyInit() (fd int, err error) {
++ // First try inotify_init1, because Android's seccomp policy blocks the latter.
++ fd, err = InotifyInit1(0)
++ if err == ENOSYS {
++ fd, err = inotifyInit()
++ }
++ return
++}
++
+ //sys Ioperm(from int, num int, on int) (err error)
+ //sys Iopl(level int) (err error)
+ //sys Lchown(path string, uid int, gid int) (err error)
+ //sys Listen(s int, n int) (err error)
+-//sys Lstat(path string, stat *Stat_t) (err error)
++
++func Lstat(path string, stat *Stat_t) (err error) {
++ return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW)
++}
++
+ //sys Pause() (err error)
+ //sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+ //sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
++//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
+ //sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
+-//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
++
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ var ts *Timespec
++ if timeout != nil {
++ ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}
++ }
++ return Pselect(nfd, r, w, e, ts, nil)
++}
++
+ //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
+-//sys Setfsgid(gid int) (err error)
+-//sys Setfsuid(uid int) (err error)
++//sys setfsgid(gid int) (prev int, err error)
++//sys setfsuid(uid int) (prev int, err error)
+ //sysnb Setregid(rgid int, egid int) (err error)
+ //sysnb Setresgid(rgid int, egid int, sgid int) (err error)
+ //sysnb Setresuid(ruid int, euid int, suid int) (err error)
+@@ -39,10 +64,16 @@ package unix
+ //sysnb Setreuid(ruid int, euid int) (err error)
+ //sys Shutdown(fd int, how int) (err error)
+ //sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
+-//sys Stat(path string, stat *Stat_t) (err error)
++
++func Stat(path string, stat *Stat_t) (err error) {
++ // Use fstatat, because Android's seccomp policy blocks stat.
++ return Fstatat(AT_FDCWD, path, stat, 0)
++}
++
+ //sys Statfs(path string, buf *Statfs_t) (err error)
+ //sys SyncFileRange(fd int, off int64, n int64, flags int) (err error)
+ //sys Truncate(path string, length int64) (err error)
++//sys Ustat(dev int, ubuf *Ustat_t) (err error)
+ //sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
+ //sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
+ //sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+@@ -61,6 +92,8 @@ package unix
+ //sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
+ //sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
+
++//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error)
++
+ func Gettimeofday(tv *Timeval) (err error) {
+ errno := gettimeofday(tv)
+ if errno != 0 {
+@@ -69,8 +102,6 @@ func Gettimeofday(tv *Timeval) (err error) {
+ return nil
+ }
+
+-func Getpagesize() int { return 4096 }
+-
+ func Time(t *Time_t) (tt Time_t, err error) {
+ var tv Timeval
+ errno := gettimeofday(&tv)
+@@ -84,20 +115,14 @@ func Time(t *Time_t) (tt Time_t, err error) {
+ }
+
+ //sys Utime(path string, buf *Utimbuf) (err error)
++//sys utimes(path string, times *[2]Timeval) (err error)
+
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+-
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = nsec / 1e9
+- ts.Nsec = nsec % 1e9
+- return
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: sec, Nsec: nsec}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Sec = nsec / 1e9
+- tv.Usec = nsec % 1e9 / 1e3
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: sec, Usec: usec}
+ }
+
+ //sysnb pipe(p *[2]_C_int) (err error)
+@@ -138,6 +163,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint64(length)
+ }
+
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = uint64(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint64(length)
+ }
+@@ -150,3 +179,16 @@ func Poll(fds []PollFd, timeout int) (n int, err error) {
+ }
+ return poll(&fds[0], len(fds), timeout)
+ }
++
++//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)
++
++func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {
++ cmdlineLen := len(cmdline)
++ if cmdlineLen > 0 {
++ // Account for the additional NULL byte added by
++ // BytePtrFromString in kexecFileLoad. The kexec_file_load
++ // syscall expects a NULL-terminated string.
++ cmdlineLen++
++ }
++ return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go
+index 71d87022..99ae6137 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go
+@@ -11,29 +11,26 @@ import (
+ "unsafe"
+ )
+
+-func Getpagesize() int { return 4096 }
+-
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+-
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = int32(nsec / 1e9)
+- ts.Nsec = int32(nsec % 1e9)
+- return
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: int32(sec), Nsec: int32(nsec)}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Sec = int32(nsec / 1e9)
+- tv.Usec = int32(nsec % 1e9 / 1e3)
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: int32(sec), Usec: int32(usec)}
+ }
+
++//sysnb pipe(p *[2]_C_int) (err error)
++
+ func Pipe(p []int) (err error) {
+ if len(p) != 2 {
+ return EINVAL
+ }
+ var pp [2]_C_int
++ // Try pipe2 first for Android O, then try pipe for kernel 2.6.23.
+ err = pipe2(&pp, 0)
++ if err == ENOSYS {
++ err = pipe(&pp)
++ }
+ p[0] = int(pp[0])
+ p[1] = int(pp[1])
+ return
+@@ -84,8 +81,11 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ // 64-bit file system and 32-bit uid calls
+ // (16-bit uid calls are not always supported in newer kernels)
+ //sys Dup2(oldfd int, newfd int) (err error)
++//sysnb EpollCreate(size int) (fd int, err error)
++//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
+ //sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32
+ //sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
++//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64
+ //sysnb Getegid() (egid int) = SYS_GETEGID32
+ //sysnb Geteuid() (euid int) = SYS_GETEUID32
+ //sysnb Getgid() (gid int) = SYS_GETGID32
+@@ -94,10 +94,12 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ //sys Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32
+ //sys Listen(s int, n int) (err error)
+ //sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
++//sys Pause() (err error)
++//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
+ //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
+ //sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
+-//sys Setfsgid(gid int) (err error) = SYS_SETFSGID32
+-//sys Setfsuid(uid int) (err error) = SYS_SETFSUID32
++//sys setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32
++//sys setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32
+ //sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID32
+ //sysnb Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32
+ //sysnb Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32
+@@ -105,11 +107,10 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ //sys Shutdown(fd int, how int) (err error)
+ //sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)
+ //sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
++//sys Ustat(dev int, ubuf *Ustat_t) (err error)
+
+-// Vsyscalls on amd64.
++//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error)
+ //sysnb Gettimeofday(tv *Timeval) (err error)
+-//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
+-//sys Pause() (err error)
+
+ func Time(t *Time_t) (Time_t, error) {
+ var tv Timeval
+@@ -131,6 +132,8 @@ func Utime(path string, buf *Utimbuf) error {
+ return Utimes(path, tv)
+ }
+
++//sys utimes(path string, times *[2]Timeval) (err error)
++
+ //sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+ //sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+ //sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64
+@@ -249,6 +252,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+ }
+
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = uint32(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+ }
+@@ -261,3 +268,24 @@ func Poll(fds []PollFd, timeout int) (n int, err error) {
+ }
+ return poll(&fds[0], len(fds), timeout)
+ }
++
++//sys armSyncFileRange(fd int, flags int, off int64, n int64) (err error) = SYS_ARM_SYNC_FILE_RANGE
++
++func SyncFileRange(fd int, off int64, n int64, flags int) error {
++ // The sync_file_range and arm_sync_file_range syscalls differ only in the
++ // order of their arguments.
++ return armSyncFileRange(fd, flags, off, n)
++}
++
++//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)
++
++func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {
++ cmdlineLen := len(cmdline)
++ if cmdlineLen > 0 {
++ // Account for the additional NULL byte added by
++ // BytePtrFromString in kexecFileLoad. The kexec_file_load
++ // syscall expects a NULL-terminated string.
++ cmdlineLen++
++ }
++ return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
+index 4a136396..807a0b20 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
+@@ -6,7 +6,17 @@
+
+ package unix
+
++import "unsafe"
++
++func EpollCreate(size int) (fd int, err error) {
++ if size <= 0 {
++ return -1, EINVAL
++ }
++ return EpollCreate1(0)
++}
++
+ //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT
++//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
+ //sys Fchown(fd int, uid int, gid int) (err error)
+ //sys Fstat(fd int, stat *Stat_t) (err error)
+ //sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
+@@ -20,11 +30,20 @@ package unix
+ //sys Listen(s int, n int) (err error)
+ //sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+ //sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
++//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
+ //sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
+-//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS_PSELECT6
++
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ var ts *Timespec
++ if timeout != nil {
++ ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}
++ }
++ return Pselect(nfd, r, w, e, ts, nil)
++}
++
+ //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
+-//sys Setfsgid(gid int) (err error)
+-//sys Setfsuid(uid int) (err error)
++//sys setfsgid(gid int) (prev int, err error)
++//sys setfsuid(uid int) (prev int, err error)
+ //sysnb Setregid(rgid int, egid int) (err error)
+ //sysnb Setresgid(rgid int, egid int, sgid int) (err error)
+ //sysnb Setresuid(ruid int, euid int, suid int) (err error)
+@@ -48,6 +67,11 @@ func Lstat(path string, stat *Stat_t) (err error) {
+ //sys Statfs(path string, buf *Statfs_t) (err error)
+ //sys SyncFileRange(fd int, off int64, n int64, flags int) (err error)
+ //sys Truncate(path string, length int64) (err error)
++
++func Ustat(dev int, ubuf *Ustat_t) (err error) {
++ return ENOSYS
++}
++
+ //sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
+ //sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
+ //sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+@@ -66,23 +90,26 @@ func Lstat(path string, stat *Stat_t) (err error) {
+ //sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
+ //sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
+
+-func Getpagesize() int { return 65536 }
+-
+ //sysnb Gettimeofday(tv *Timeval) (err error)
+
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: sec, Nsec: nsec}
++}
+
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = nsec / 1e9
+- ts.Nsec = nsec % 1e9
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: sec, Usec: usec}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Sec = nsec / 1e9
+- tv.Usec = nsec % 1e9 / 1e3
+- return
++func futimesat(dirfd int, path string, tv *[2]Timeval) (err error) {
++ if tv == nil {
++ return utimensat(dirfd, path, nil, 0)
++ }
++
++ ts := []Timespec{
++ NsecToTimespec(TimevalToNsec(tv[0])),
++ NsecToTimespec(TimevalToNsec(tv[1])),
++ }
++ return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
+ }
+
+ func Time(t *Time_t) (Time_t, error) {
+@@ -105,6 +132,18 @@ func Utime(path string, buf *Utimbuf) error {
+ return Utimes(path, tv)
+ }
+
++func utimes(path string, tv *[2]Timeval) (err error) {
++ if tv == nil {
++ return utimensat(AT_FDCWD, path, nil, 0)
++ }
++
++ ts := []Timespec{
++ NsecToTimespec(TimevalToNsec(tv[0])),
++ NsecToTimespec(TimevalToNsec(tv[1])),
++ }
++ return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
++}
++
+ func Pipe(p []int) (err error) {
+ if len(p) != 2 {
+ return EINVAL
+@@ -141,6 +180,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint64(length)
+ }
+
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = uint64(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint64(length)
+ }
+@@ -153,30 +196,11 @@ func Dup2(oldfd int, newfd int) (err error) {
+ return Dup3(oldfd, newfd, 0)
+ }
+
+-func Pause() (err error) {
+- _, _, e1 := Syscall6(SYS_PPOLL, 0, 0, 0, 0, 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
++func Pause() error {
++ _, err := ppoll(nil, 0, nil, nil)
++ return err
+ }
+
+-// TODO(dfc): constants that should be in zsysnum_linux_arm64.go, remove
+-// these when the deprecated syscalls that the syscall package relies on
+-// are removed.
+-const (
+- SYS_GETPGRP = 1060
+- SYS_UTIMES = 1037
+- SYS_FUTIMESAT = 1066
+- SYS_PAUSE = 1061
+- SYS_USTAT = 1070
+- SYS_UTIME = 1063
+- SYS_LCHOWN = 1032
+- SYS_TIME = 1062
+- SYS_EPOLL_CREATE = 1042
+- SYS_EPOLL_WAIT = 1069
+-)
+-
+ func Poll(fds []PollFd, timeout int) (n int, err error) {
+ var ts *Timespec
+ if timeout >= 0 {
+@@ -188,3 +212,16 @@ func Poll(fds []PollFd, timeout int) (n int, err error) {
+ }
+ return ppoll(&fds[0], len(fds), ts, nil)
+ }
++
++//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)
++
++func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {
++ cmdlineLen := len(cmdline)
++ if cmdlineLen > 0 {
++ // Account for the additional NULL byte added by
++ // BytePtrFromString in kexecFileLoad. The kexec_file_load
++ // syscall expects a NULL-terminated string.
++ cmdlineLen++
++ }
++ return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gc.go b/vendor/golang.org/x/sys/unix/syscall_linux_gc.go
+new file mode 100644
+index 00000000..c26e6ec2
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_gc.go
+@@ -0,0 +1,14 @@
++// Copyright 2018 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build linux,!gccgo
++
++package unix
++
++// SyscallNoError may be used instead of Syscall for syscalls that don't fail.
++func SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr)
++
++// RawSyscallNoError may be used instead of RawSyscall for syscalls that don't
++// fail.
++func RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr)
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go
+new file mode 100644
+index 00000000..070bd389
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go
+@@ -0,0 +1,16 @@
++// Copyright 2018 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build linux,!gccgo,386
++
++package unix
++
++import "syscall"
++
++// Underlying system call writes to newoffset via pointer.
++// Implemented in assembly to avoid allocation.
++func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno)
++
++func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno)
++func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno)
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go
+new file mode 100644
+index 00000000..308eb7ae
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go
+@@ -0,0 +1,30 @@
++// Copyright 2018 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build linux,gccgo,386
++
++package unix
++
++import (
++ "syscall"
++ "unsafe"
++)
++
++func seek(fd int, offset int64, whence int) (int64, syscall.Errno) {
++ var newoffset int64
++ offsetLow := uint32(offset & 0xffffffff)
++ offsetHigh := uint32((offset >> 32) & 0xffffffff)
++ _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0)
++ return newoffset, err
++}
++
++func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) {
++ fd, _, err := Syscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0)
++ return int(fd), err
++}
++
++func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) {
++ fd, _, err := RawSyscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0)
++ return int(fd), err
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go
+new file mode 100644
+index 00000000..aa7fc9e1
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go
+@@ -0,0 +1,20 @@
++// Copyright 2018 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build linux,gccgo,arm
++
++package unix
++
++import (
++ "syscall"
++ "unsafe"
++)
++
++func seek(fd int, offset int64, whence int) (int64, syscall.Errno) {
++ var newoffset int64
++ offsetLow := uint32(offset & 0xffffffff)
++ offsetHigh := uint32((offset >> 32) & 0xffffffff)
++ _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0)
++ return newoffset, err
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go
+index 73318e5c..af77e6e2 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go
+@@ -8,7 +8,9 @@
+ package unix
+
+ //sys Dup2(oldfd int, newfd int) (err error)
++//sysnb EpollCreate(size int) (fd int, err error)
+ //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
++//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
+ //sys Fchown(fd int, uid int, gid int) (err error)
+ //sys Fstatfs(fd int, buf *Statfs_t) (err error)
+ //sys Ftruncate(fd int, length int64) (err error)
+@@ -22,11 +24,20 @@ package unix
+ //sys Pause() (err error)
+ //sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+ //sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
++//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
+ //sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
+-//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS_PSELECT6
++
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ var ts *Timespec
++ if timeout != nil {
++ ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}
++ }
++ return Pselect(nfd, r, w, e, ts, nil)
++}
++
+ //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
+-//sys Setfsgid(gid int) (err error)
+-//sys Setfsuid(uid int) (err error)
++//sys setfsgid(gid int) (prev int, err error)
++//sys setfsuid(uid int) (prev int, err error)
+ //sysnb Setregid(rgid int, egid int) (err error)
+ //sysnb Setresgid(rgid int, egid int, sgid int) (err error)
+ //sysnb Setresuid(ruid int, euid int, suid int) (err error)
+@@ -37,6 +48,7 @@ package unix
+ //sys Statfs(path string, buf *Statfs_t) (err error)
+ //sys SyncFileRange(fd int, off int64, n int64, flags int) (err error)
+ //sys Truncate(path string, length int64) (err error)
++//sys Ustat(dev int, ubuf *Ustat_t) (err error)
+ //sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
+ //sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
+ //sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+@@ -55,8 +67,7 @@ package unix
+ //sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
+ //sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
+
+-func Getpagesize() int { return 65536 }
+-
++//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error)
+ //sysnb Gettimeofday(tv *Timeval) (err error)
+
+ func Time(t *Time_t) (tt Time_t, err error) {
+@@ -72,20 +83,14 @@ func Time(t *Time_t) (tt Time_t, err error) {
+ }
+
+ //sys Utime(path string, buf *Utimbuf) (err error)
++//sys utimes(path string, times *[2]Timeval) (err error)
+
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+-
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = nsec / 1e9
+- ts.Nsec = nsec % 1e9
+- return
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: sec, Nsec: nsec}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Sec = nsec / 1e9
+- tv.Usec = nsec % 1e9 / 1e3
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: sec, Usec: usec}
+ }
+
+ func Pipe(p []int) (err error) {
+@@ -143,6 +148,7 @@ type stat_t struct {
+ }
+
+ //sys fstat(fd int, st *stat_t) (err error)
++//sys fstatat(dirfd int, path string, st *stat_t, flags int) (err error) = SYS_NEWFSTATAT
+ //sys lstat(path string, st *stat_t) (err error)
+ //sys stat(path string, st *stat_t) (err error)
+
+@@ -153,6 +159,13 @@ func Fstat(fd int, s *Stat_t) (err error) {
+ return
+ }
+
++func Fstatat(dirfd int, path string, s *Stat_t, flags int) (err error) {
++ st := &stat_t{}
++ err = fstatat(dirfd, path, st, flags)
++ fillStat_t(s, st)
++ return
++}
++
+ func Lstat(path string, s *Stat_t) (err error) {
+ st := &stat_t{}
+ err = lstat(path, st)
+@@ -195,10 +208,18 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint64(length)
+ }
+
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = uint64(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint64(length)
+ }
+
++func InotifyInit() (fd int, err error) {
++ return InotifyInit1(0)
++}
++
+ //sys poll(fds *PollFd, nfds int, timeout int) (n int, err error)
+
+ func Poll(fds []PollFd, timeout int) (n int, err error) {
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go
+index b83d93fd..e286c6ba 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go
+@@ -15,6 +15,9 @@ import (
+ func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
+
+ //sys Dup2(oldfd int, newfd int) (err error)
++//sysnb EpollCreate(size int) (fd int, err error)
++//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
++//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
+ //sys Fchown(fd int, uid int, gid int) (err error)
+ //sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64
+ //sysnb Getegid() (egid int)
+@@ -25,20 +28,20 @@ func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr,
+ //sys Listen(s int, n int) (err error)
+ //sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+ //sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
++//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
+ //sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
+ //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
+-//sys Setfsgid(gid int) (err error)
+-//sys Setfsuid(uid int) (err error)
++//sys setfsgid(gid int) (prev int, err error)
++//sys setfsuid(uid int) (prev int, err error)
+ //sysnb Setregid(rgid int, egid int) (err error)
+ //sysnb Setresgid(rgid int, egid int, sgid int) (err error)
+ //sysnb Setresuid(ruid int, euid int, suid int) (err error)
+-
+ //sysnb Setreuid(ruid int, euid int) (err error)
+ //sys Shutdown(fd int, how int) (err error)
+-//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
+-
++//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)
+ //sys SyncFileRange(fd int, off int64, n int64, flags int) (err error)
+ //sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64
++//sys Ustat(dev int, ubuf *Ustat_t) (err error)
+ //sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
+ //sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
+ //sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+@@ -60,15 +63,17 @@ func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr,
+ //sys Ioperm(from int, num int, on int) (err error)
+ //sys Iopl(level int) (err error)
+
++//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error)
+ //sysnb Gettimeofday(tv *Timeval) (err error)
+ //sysnb Time(t *Time_t) (tt Time_t, err error)
++//sys Utime(path string, buf *Utimbuf) (err error)
++//sys utimes(path string, times *[2]Timeval) (err error)
+
+ //sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
+ //sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
++//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64
+ //sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
+
+-//sys Utime(path string, buf *Utimbuf) (err error)
+-//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
+ //sys Pause() (err error)
+
+ func Fstatfs(fd int, buf *Statfs_t) (err error) {
+@@ -99,19 +104,12 @@ func Seek(fd int, offset int64, whence int) (off int64, err error) {
+ return
+ }
+
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+-
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = int32(nsec / 1e9)
+- ts.Nsec = int32(nsec % 1e9)
+- return
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: int32(sec), Nsec: int32(nsec)}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Sec = int32(nsec / 1e9)
+- tv.Usec = int32(nsec % 1e9 / 1e3)
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: int32(sec), Usec: int32(usec)}
+ }
+
+ //sysnb pipe2(p *[2]_C_int, flags int) (err error)
+@@ -127,14 +125,13 @@ func Pipe2(p []int, flags int) (err error) {
+ return
+ }
+
++//sysnb pipe() (p1 int, p2 int, err error)
++
+ func Pipe(p []int) (err error) {
+ if len(p) != 2 {
+ return EINVAL
+ }
+- var pp [2]_C_int
+- err = pipe2(&pp, 0)
+- p[0] = int(pp[0])
+- p[1] = int(pp[1])
++ p[0], p[1], err = pipe()
+ return
+ }
+
+@@ -223,6 +220,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+ }
+
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = uint32(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+ }
+@@ -235,5 +236,3 @@ func Poll(fds []PollFd, timeout int) (n int, err error) {
+ }
+ return poll(&fds[0], len(fds), timeout)
+ }
+-
+-func Getpagesize() int { return 4096 }
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go
+index 60770f62..ca0345aa 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go
+@@ -7,10 +7,13 @@
+
+ package unix
+
+-//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
+ //sys Dup2(oldfd int, newfd int) (err error)
++//sysnb EpollCreate(size int) (fd int, err error)
++//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
++//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
+ //sys Fchown(fd int, uid int, gid int) (err error)
+ //sys Fstat(fd int, stat *Stat_t) (err error)
++//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT
+ //sys Fstatfs(fd int, buf *Statfs_t) (err error)
+ //sys Ftruncate(fd int, length int64) (err error)
+ //sysnb Getegid() (egid int)
+@@ -27,11 +30,12 @@ package unix
+ //sys Pause() (err error)
+ //sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+ //sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
++//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
+ //sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
+-//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
++//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
+ //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
+-//sys Setfsgid(gid int) (err error)
+-//sys Setfsuid(uid int) (err error)
++//sys setfsgid(gid int) (prev int, err error)
++//sys setfsuid(uid int) (prev int, err error)
+ //sysnb Setregid(rgid int, egid int) (err error)
+ //sysnb Setresgid(rgid int, egid int, sgid int) (err error)
+ //sysnb Setresuid(ruid int, euid int, suid int) (err error)
+@@ -41,8 +45,8 @@ package unix
+ //sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
+ //sys Stat(path string, stat *Stat_t) (err error)
+ //sys Statfs(path string, buf *Statfs_t) (err error)
+-//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) = SYS_SYNC_FILE_RANGE2
+ //sys Truncate(path string, length int64) (err error)
++//sys Ustat(dev int, ubuf *Ustat_t) (err error)
+ //sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
+ //sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
+ //sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+@@ -61,26 +65,18 @@ package unix
+ //sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
+ //sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
+
+-func Getpagesize() int { return 65536 }
+-
++//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error)
+ //sysnb Gettimeofday(tv *Timeval) (err error)
+ //sysnb Time(t *Time_t) (tt Time_t, err error)
+-
+ //sys Utime(path string, buf *Utimbuf) (err error)
++//sys utimes(path string, times *[2]Timeval) (err error)
+
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+-
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = nsec / 1e9
+- ts.Nsec = nsec % 1e9
+- return
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: sec, Nsec: nsec}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Sec = nsec / 1e9
+- tv.Usec = nsec % 1e9 / 1e3
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: sec, Usec: usec}
+ }
+
+ func (r *PtraceRegs) PC() uint64 { return r.Nip }
+@@ -95,6 +91,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint64(length)
+ }
+
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = uint64(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint64(length)
+ }
+@@ -133,3 +133,24 @@ func Poll(fds []PollFd, timeout int) (n int, err error) {
+ }
+ return poll(&fds[0], len(fds), timeout)
+ }
++
++//sys syncFileRange2(fd int, flags int, off int64, n int64) (err error) = SYS_SYNC_FILE_RANGE2
++
++func SyncFileRange(fd int, off int64, n int64, flags int) error {
++ // The sync_file_range and sync_file_range2 syscalls differ only in the
++ // order of their arguments.
++ return syncFileRange2(fd, flags, off, n)
++}
++
++//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)
++
++func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {
++ cmdlineLen := len(cmdline)
++ if cmdlineLen > 0 {
++ // Account for the additional NULL byte added by
++ // BytePtrFromString in kexecFileLoad. The kexec_file_load
++ // syscall expects a NULL-terminated string.
++ cmdlineLen++
++ }
++ return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go
+similarity index 68%
+copy from vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
+copy to vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go
+index 4a136396..abdabbac 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go
+@@ -1,12 +1,22 @@
+-// Copyright 2015 The Go Authors. All rights reserved.
++// Copyright 2018 The Go Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+
+-// +build arm64,linux
++// +build riscv64,linux
+
+ package unix
+
++import "unsafe"
++
++func EpollCreate(size int) (fd int, err error) {
++ if size <= 0 {
++ return -1, EINVAL
++ }
++ return EpollCreate1(0)
++}
++
+ //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT
++//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
+ //sys Fchown(fd int, uid int, gid int) (err error)
+ //sys Fstat(fd int, stat *Stat_t) (err error)
+ //sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
+@@ -21,10 +31,18 @@ package unix
+ //sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+ //sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+ //sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
+-//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS_PSELECT6
++
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ var ts *Timespec
++ if timeout != nil {
++ ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}
++ }
++ return Pselect(nfd, r, w, e, ts, nil)
++}
++
+ //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
+-//sys Setfsgid(gid int) (err error)
+-//sys Setfsuid(uid int) (err error)
++//sys setfsgid(gid int) (prev int, err error)
++//sys setfsuid(uid int) (prev int, err error)
+ //sysnb Setregid(rgid int, egid int) (err error)
+ //sysnb Setresgid(rgid int, egid int, sgid int) (err error)
+ //sysnb Setresuid(ruid int, euid int, suid int) (err error)
+@@ -48,6 +66,11 @@ func Lstat(path string, stat *Stat_t) (err error) {
+ //sys Statfs(path string, buf *Statfs_t) (err error)
+ //sys SyncFileRange(fd int, off int64, n int64, flags int) (err error)
+ //sys Truncate(path string, length int64) (err error)
++
++func Ustat(dev int, ubuf *Ustat_t) (err error) {
++ return ENOSYS
++}
++
+ //sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
+ //sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
+ //sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+@@ -66,23 +89,26 @@ func Lstat(path string, stat *Stat_t) (err error) {
+ //sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
+ //sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
+
+-func Getpagesize() int { return 65536 }
+-
+ //sysnb Gettimeofday(tv *Timeval) (err error)
+
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: sec, Nsec: nsec}
++}
+
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = nsec / 1e9
+- ts.Nsec = nsec % 1e9
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: sec, Usec: usec}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Sec = nsec / 1e9
+- tv.Usec = nsec % 1e9 / 1e3
+- return
++func futimesat(dirfd int, path string, tv *[2]Timeval) (err error) {
++ if tv == nil {
++ return utimensat(dirfd, path, nil, 0)
++ }
++
++ ts := []Timespec{
++ NsecToTimespec(TimevalToNsec(tv[0])),
++ NsecToTimespec(TimevalToNsec(tv[1])),
++ }
++ return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
+ }
+
+ func Time(t *Time_t) (Time_t, error) {
+@@ -105,6 +131,18 @@ func Utime(path string, buf *Utimbuf) error {
+ return Utimes(path, tv)
+ }
+
++func utimes(path string, tv *[2]Timeval) (err error) {
++ if tv == nil {
++ return utimensat(AT_FDCWD, path, nil, 0)
++ }
++
++ ts := []Timespec{
++ NsecToTimespec(TimevalToNsec(tv[0])),
++ NsecToTimespec(TimevalToNsec(tv[1])),
++ }
++ return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
++}
++
+ func Pipe(p []int) (err error) {
+ if len(p) != 2 {
+ return EINVAL
+@@ -141,6 +179,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint64(length)
+ }
+
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = uint64(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint64(length)
+ }
+@@ -153,30 +195,11 @@ func Dup2(oldfd int, newfd int) (err error) {
+ return Dup3(oldfd, newfd, 0)
+ }
+
+-func Pause() (err error) {
+- _, _, e1 := Syscall6(SYS_PPOLL, 0, 0, 0, 0, 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
++func Pause() error {
++ _, err := ppoll(nil, 0, nil, nil)
++ return err
+ }
+
+-// TODO(dfc): constants that should be in zsysnum_linux_arm64.go, remove
+-// these when the deprecated syscalls that the syscall package relies on
+-// are removed.
+-const (
+- SYS_GETPGRP = 1060
+- SYS_UTIMES = 1037
+- SYS_FUTIMESAT = 1066
+- SYS_PAUSE = 1061
+- SYS_USTAT = 1070
+- SYS_UTIME = 1063
+- SYS_LCHOWN = 1032
+- SYS_TIME = 1062
+- SYS_EPOLL_CREATE = 1042
+- SYS_EPOLL_WAIT = 1069
+-)
+-
+ func Poll(fds []PollFd, timeout int) (n int, err error) {
+ var ts *Timespec
+ if timeout >= 0 {
+@@ -188,3 +211,20 @@ func Poll(fds []PollFd, timeout int) (n int, err error) {
+ }
+ return ppoll(&fds[0], len(fds), ts, nil)
+ }
++
++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
++ return Renameat2(olddirfd, oldpath, newdirfd, newpath, 0)
++}
++
++//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)
++
++func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {
++ cmdlineLen := len(cmdline)
++ if cmdlineLen > 0 {
++ // Account for the additional NULL byte added by
++ // BytePtrFromString in kexecFileLoad. The kexec_file_load
++ // syscall expects a NULL-terminated string.
++ cmdlineLen++
++ }
++ return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go
+index 1708a4bb..533e9305 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go
+@@ -11,10 +11,12 @@ import (
+ )
+
+ //sys Dup2(oldfd int, newfd int) (err error)
++//sysnb EpollCreate(size int) (fd int, err error)
+ //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
+ //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
+ //sys Fchown(fd int, uid int, gid int) (err error)
+ //sys Fstat(fd int, stat *Stat_t) (err error)
++//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT
+ //sys Fstatfs(fd int, buf *Statfs_t) (err error)
+ //sys Ftruncate(fd int, length int64) (err error)
+ //sysnb Getegid() (egid int)
+@@ -28,11 +30,12 @@ import (
+ //sys Pause() (err error)
+ //sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+ //sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
++//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
+ //sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
+ //sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
+ //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
+-//sys Setfsgid(gid int) (err error)
+-//sys Setfsuid(uid int) (err error)
++//sys setfsgid(gid int) (prev int, err error)
++//sys setfsuid(uid int) (prev int, err error)
+ //sysnb Setregid(rgid int, egid int) (err error)
+ //sysnb Setresgid(rgid int, egid int, sgid int) (err error)
+ //sysnb Setresuid(ruid int, euid int, suid int) (err error)
+@@ -43,11 +46,11 @@ import (
+ //sys Statfs(path string, buf *Statfs_t) (err error)
+ //sys SyncFileRange(fd int, off int64, n int64, flags int) (err error)
+ //sys Truncate(path string, length int64) (err error)
++//sys Ustat(dev int, ubuf *Ustat_t) (err error)
+ //sysnb getgroups(n int, list *_Gid_t) (nn int, err error)
+ //sysnb setgroups(n int, list *_Gid_t) (err error)
+
+-func Getpagesize() int { return 4096 }
+-
++//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error)
+ //sysnb Gettimeofday(tv *Timeval) (err error)
+
+ func Time(t *Time_t) (tt Time_t, err error) {
+@@ -63,20 +66,14 @@ func Time(t *Time_t) (tt Time_t, err error) {
+ }
+
+ //sys Utime(path string, buf *Utimbuf) (err error)
++//sys utimes(path string, times *[2]Timeval) (err error)
+
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+-
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = nsec / 1e9
+- ts.Nsec = nsec % 1e9
+- return
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: sec, Nsec: nsec}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Sec = nsec / 1e9
+- tv.Usec = nsec % 1e9 / 1e3
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: sec, Usec: usec}
+ }
+
+ //sysnb pipe2(p *[2]_C_int, flags int) (err error)
+@@ -123,6 +120,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint64(length)
+ }
+
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = uint64(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint64(length)
+ }
+@@ -326,3 +327,16 @@ func Poll(fds []PollFd, timeout int) (n int, err error) {
+ }
+ return poll(&fds[0], len(fds), timeout)
+ }
++
++//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)
++
++func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {
++ cmdlineLen := len(cmdline)
++ if cmdlineLen > 0 {
++ // Account for the additional NULL byte added by
++ // BytePtrFromString in kexecFileLoad. The kexec_file_load
++ // syscall expects a NULL-terminated string.
++ cmdlineLen++
++ }
++ return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go
+index 20b7454d..d890a227 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go
+@@ -6,15 +6,12 @@
+
+ package unix
+
+-import (
+- "sync/atomic"
+- "syscall"
+-)
+-
+ //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
++//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
+ //sys Dup2(oldfd int, newfd int) (err error)
+ //sys Fchown(fd int, uid int, gid int) (err error)
+ //sys Fstat(fd int, stat *Stat_t) (err error)
++//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64
+ //sys Fstatfs(fd int, buf *Statfs_t) (err error)
+ //sys Ftruncate(fd int, length int64) (err error)
+ //sysnb Getegid() (egid int)
+@@ -29,11 +26,12 @@ import (
+ //sys Pause() (err error)
+ //sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+ //sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
++//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
+ //sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
+ //sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
+ //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
+-//sys Setfsgid(gid int) (err error)
+-//sys Setfsuid(uid int) (err error)
++//sys setfsgid(gid int) (prev int, err error)
++//sys setfsuid(uid int) (prev int, err error)
+ //sysnb Setregid(rgid int, egid int) (err error)
+ //sysnb Setresgid(rgid int, egid int, sgid int) (err error)
+ //sysnb Setresuid(ruid int, euid int, suid int) (err error)
+@@ -63,21 +61,6 @@ import (
+ //sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
+ //sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
+
+-func sysconf(name int) (n int64, err syscall.Errno)
+-
+-// pageSize caches the value of Getpagesize, since it can't change
+-// once the system is booted.
+-var pageSize int64 // accessed atomically
+-
+-func Getpagesize() int {
+- n := atomic.LoadInt64(&pageSize)
+- if n == 0 {
+- n, _ = sysconf(_SC_PAGESIZE)
+- atomic.StoreInt64(&pageSize, n)
+- }
+- return int(n)
+-}
+-
+ func Ioperm(from int, num int, on int) (err error) {
+ return ENOSYS
+ }
+@@ -86,6 +69,7 @@ func Iopl(level int) (err error) {
+ return ENOSYS
+ }
+
++//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error)
+ //sysnb Gettimeofday(tv *Timeval) (err error)
+
+ func Time(t *Time_t) (tt Time_t, err error) {
+@@ -101,20 +85,14 @@ func Time(t *Time_t) (tt Time_t, err error) {
+ }
+
+ //sys Utime(path string, buf *Utimbuf) (err error)
++//sys utimes(path string, times *[2]Timeval) (err error)
+
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+-
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = nsec / 1e9
+- ts.Nsec = nsec % 1e9
+- return
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: sec, Nsec: nsec}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Sec = nsec / 1e9
+- tv.Usec = int32(nsec % 1e9 / 1e3)
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: sec, Usec: int32(usec)}
+ }
+
+ func (r *PtraceRegs) PC() uint64 { return r.Tpc }
+@@ -129,6 +107,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint64(length)
+ }
+
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = uint64(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint64(length)
+ }
+diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/vendor/golang.org/x/sys/unix/syscall_netbsd.go
+index e1296684..45b50a61 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_netbsd.go
++++ b/vendor/golang.org/x/sys/unix/syscall_netbsd.go
+@@ -13,10 +13,12 @@
+ package unix
+
+ import (
++ "runtime"
+ "syscall"
+ "unsafe"
+ )
+
++// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.
+ type SockaddrDatalink struct {
+ Len uint8
+ Family uint8
+@@ -55,7 +57,6 @@ func sysctlNodes(mib []_C_int) (nodes []Sysctlnode, err error) {
+ }
+
+ func nametomib(name string) (mib []_C_int, err error) {
+-
+ // Split name into components.
+ var parts []string
+ last := 0
+@@ -114,9 +115,47 @@ func Pipe(p []int) (err error) {
+ return
+ }
+
+-//sys getdents(fd int, buf []byte) (n int, err error)
++//sys Getdents(fd int, buf []byte) (n int, err error)
+ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+- return getdents(fd, buf)
++ n, err = Getdents(fd, buf)
++ if err != nil || basep == nil {
++ return
++ }
++
++ var off int64
++ off, err = Seek(fd, 0, 1 /* SEEK_CUR */)
++ if err != nil {
++ *basep = ^uintptr(0)
++ return
++ }
++ *basep = uintptr(off)
++ if unsafe.Sizeof(*basep) == 8 {
++ return
++ }
++ if off>>32 != 0 {
++ // We can't stuff the offset back into a uintptr, so any
++ // future calls would be suspect. Generate an error.
++ // EIO is allowed by getdirentries.
++ err = EIO
++ }
++ return
++}
++
++const ImplementsGetwd = true
++
++//sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD
++
++func Getwd() (string, error) {
++ var buf [PathMax]byte
++ _, err := Getcwd(buf[0:])
++ if err != nil {
++ return "", err
++ }
++ n := clen(buf[:])
++ if n < 1 {
++ return "", EINVAL
++ }
++ return string(buf[:n]), nil
+ }
+
+ // TODO
+@@ -124,6 +163,83 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ return -1, ENOSYS
+ }
+
++func setattrlistTimes(path string, times []Timespec, flags int) error {
++ // used on Darwin for UtimesNano
++ return ENOSYS
++}
++
++//sys ioctl(fd int, req uint, arg uintptr) (err error)
++
++//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
++
++func IoctlGetPtmget(fd int, req uint) (*Ptmget, error) {
++ var value Ptmget
++ err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
++ runtime.KeepAlive(value)
++ return &value, err
++}
++
++func Uname(uname *Utsname) error {
++ mib := []_C_int{CTL_KERN, KERN_OSTYPE}
++ n := unsafe.Sizeof(uname.Sysname)
++ if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil {
++ return err
++ }
++
++ mib = []_C_int{CTL_KERN, KERN_HOSTNAME}
++ n = unsafe.Sizeof(uname.Nodename)
++ if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil {
++ return err
++ }
++
++ mib = []_C_int{CTL_KERN, KERN_OSRELEASE}
++ n = unsafe.Sizeof(uname.Release)
++ if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil {
++ return err
++ }
++
++ mib = []_C_int{CTL_KERN, KERN_VERSION}
++ n = unsafe.Sizeof(uname.Version)
++ if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil {
++ return err
++ }
++
++ // The version might have newlines or tabs in it, convert them to
++ // spaces.
++ for i, b := range uname.Version {
++ if b == '\n' || b == '\t' {
++ if i == len(uname.Version)-1 {
++ uname.Version[i] = 0
++ } else {
++ uname.Version[i] = ' '
++ }
++ }
++ }
++
++ mib = []_C_int{CTL_HW, HW_MACHINE}
++ n = unsafe.Sizeof(uname.Machine)
++ if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil {
++ return err
++ }
++
++ return nil
++}
++
++func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
++ if raceenabled {
++ raceReleaseMerge(unsafe.Pointer(&ioSync))
++ }
++ return sendfile(outfd, infd, offset, count)
++}
++
++func Fstatvfs(fd int, buf *Statvfs_t) (err error) {
++ return Fstatvfs1(fd, buf, ST_WAIT)
++}
++
++func Statvfs(path string, buf *Statvfs_t) (err error) {
++ return Statvfs1(path, buf, ST_WAIT)
++}
++
+ /*
+ * Exposed directly
+ */
+@@ -137,14 +253,33 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ //sys Close(fd int) (err error)
+ //sys Dup(fd int) (nfd int, err error)
+ //sys Dup2(from int, to int) (err error)
++//sys Dup3(from int, to int, flags int) (err error)
+ //sys Exit(code int)
++//sys ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)
++//sys ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)
++//sys ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error)
++//sys ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error)
++//sys ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)
++//sys ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)
++//sys ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error)
++//sys ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error)
++//sys ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)
++//sys ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)
++//sys ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error)
++//sys ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error)
++//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error)
++//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_POSIX_FADVISE
+ //sys Fchdir(fd int) (err error)
+ //sys Fchflags(fd int, flags int) (err error)
+ //sys Fchmod(fd int, mode uint32) (err error)
++//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error)
+ //sys Fchown(fd int, uid int, gid int) (err error)
++//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error)
+ //sys Flock(fd int, how int) (err error)
+ //sys Fpathconf(fd int, name int) (val int, err error)
+ //sys Fstat(fd int, stat *Stat_t) (err error)
++//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
++//sys Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) = SYS_FSTATVFS1
+ //sys Fsync(fd int) (err error)
+ //sys Ftruncate(fd int, length int64) (err error)
+ //sysnb Getegid() (egid int)
+@@ -165,23 +300,30 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ //sys Kqueue() (fd int, err error)
+ //sys Lchown(path string, uid int, gid int) (err error)
+ //sys Link(path string, link string) (err error)
++//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error)
+ //sys Listen(s int, backlog int) (err error)
+ //sys Lstat(path string, stat *Stat_t) (err error)
+ //sys Mkdir(path string, mode uint32) (err error)
++//sys Mkdirat(dirfd int, path string, mode uint32) (err error)
+ //sys Mkfifo(path string, mode uint32) (err error)
++//sys Mkfifoat(dirfd int, path string, mode uint32) (err error)
+ //sys Mknod(path string, mode uint32, dev int) (err error)
++//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error)
+ //sys Nanosleep(time *Timespec, leftover *Timespec) (err error)
+ //sys Open(path string, mode int, perm uint32) (fd int, err error)
++//sys Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error)
+ //sys Pathconf(path string, name int) (val int, err error)
+ //sys Pread(fd int, p []byte, offset int64) (n int, err error)
+ //sys Pwrite(fd int, p []byte, offset int64) (n int, err error)
+ //sys read(fd int, p []byte) (n int, err error)
+ //sys Readlink(path string, buf []byte) (n int, err error)
++//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error)
+ //sys Rename(from string, to string) (err error)
++//sys Renameat(fromfd int, from string, tofd int, to string) (err error)
+ //sys Revoke(path string) (err error)
+ //sys Rmdir(path string) (err error)
+ //sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK
+-//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error)
++//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
+ //sysnb Setegid(egid int) (err error)
+ //sysnb Seteuid(euid int) (err error)
+ //sysnb Setgid(gid int) (err error)
+@@ -194,11 +336,14 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ //sysnb Settimeofday(tp *Timeval) (err error)
+ //sysnb Setuid(uid int) (err error)
+ //sys Stat(path string, stat *Stat_t) (err error)
++//sys Statvfs1(path string, buf *Statvfs_t, flags int) (err error) = SYS_STATVFS1
+ //sys Symlink(path string, link string) (err error)
++//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error)
+ //sys Sync() (err error)
+ //sys Truncate(path string, length int64) (err error)
+ //sys Umask(newmask int) (oldmask int)
+ //sys Unlink(path string) (err error)
++//sys Unlinkat(dirfd int, path string, flags int) (err error)
+ //sys Unmount(path string, flags int) (err error)
+ //sys write(fd int, p []byte) (n int, err error)
+ //sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)
+@@ -225,7 +370,6 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ // __msync13
+ // __ntp_gettime30
+ // __posix_chown
+-// __posix_fadvise50
+ // __posix_fchown
+ // __posix_lchown
+ // __posix_rename
+@@ -384,7 +528,6 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ // getitimer
+ // getvfsstat
+ // getxattr
+-// ioctl
+ // ktrace
+ // lchflags
+ // lchmod
+@@ -422,7 +565,6 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ // ntp_adjtime
+ // pmc_control
+ // pmc_get_info
+-// poll
+ // pollts
+ // preadv
+ // profil
+diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go
+index afaca098..24da8b52 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go
++++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go
+@@ -6,21 +6,12 @@
+
+ package unix
+
+-func Getpagesize() int { return 4096 }
+-
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+-
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = int64(nsec / 1e9)
+- ts.Nsec = int32(nsec % 1e9)
+- return
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: sec, Nsec: int32(nsec)}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Usec = int32(nsec % 1e9 / 1e3)
+- tv.Sec = int64(nsec / 1e9)
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: sec, Usec: int32(usec)}
+ }
+
+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
+@@ -37,6 +28,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+ }
+
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = int32(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+ }
+diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go
+index a6ff04ce..25a0ac82 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go
+@@ -6,21 +6,12 @@
+
+ package unix
+
+-func Getpagesize() int { return 4096 }
+-
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+-
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = int64(nsec / 1e9)
+- ts.Nsec = int64(nsec % 1e9)
+- return
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: sec, Nsec: nsec}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Usec = int32(nsec % 1e9 / 1e3)
+- tv.Sec = int64(nsec / 1e9)
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: sec, Usec: int32(usec)}
+ }
+
+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
+@@ -37,6 +28,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+ }
+
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = int32(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+ }
+diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go
+index 68a6969b..21591ecd 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go
+@@ -6,21 +6,12 @@
+
+ package unix
+
+-func Getpagesize() int { return 4096 }
+-
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+-
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = int64(nsec / 1e9)
+- ts.Nsec = int32(nsec % 1e9)
+- return
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: sec, Nsec: int32(nsec)}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Usec = int32(nsec % 1e9 / 1e3)
+- tv.Sec = int64(nsec / 1e9)
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: sec, Usec: int32(usec)}
+ }
+
+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
+@@ -37,6 +28,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+ }
+
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = int32(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+ }
+diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go
+similarity index 50%
+copy from vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go
+copy to vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go
+index a6ff04ce..80474963 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go
+@@ -1,26 +1,17 @@
+-// Copyright 2009 The Go Authors. All rights reserved.
++// Copyright 2019 The Go Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+
+-// +build amd64,netbsd
++// +build arm64,netbsd
+
+ package unix
+
+-func Getpagesize() int { return 4096 }
+-
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+-
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = int64(nsec / 1e9)
+- ts.Nsec = int64(nsec % 1e9)
+- return
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: sec, Nsec: nsec}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Usec = int32(nsec % 1e9 / 1e3)
+- tv.Sec = int64(nsec / 1e9)
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: sec, Usec: int32(usec)}
+ }
+
+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
+@@ -37,6 +28,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+ }
+
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = int32(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+ }
+diff --git a/vendor/golang.org/x/sys/unix/syscall_no_getwd.go b/vendor/golang.org/x/sys/unix/syscall_no_getwd.go
+deleted file mode 100644
+index 530792ea..00000000
+--- a/vendor/golang.org/x/sys/unix/syscall_no_getwd.go
++++ /dev/null
+@@ -1,11 +0,0 @@
+-// Copyright 2013 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build dragonfly freebsd netbsd openbsd
+-
+-package unix
+-
+-const ImplementsGetwd = false
+-
+-func Getwd() (string, error) { return "", ENOTSUP }
+diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/vendor/golang.org/x/sys/unix/syscall_openbsd.go
+index 408e6308..a266e92a 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_openbsd.go
++++ b/vendor/golang.org/x/sys/unix/syscall_openbsd.go
+@@ -13,10 +13,12 @@
+ package unix
+
+ import (
++ "sort"
+ "syscall"
+ "unsafe"
+ )
+
++// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.
+ type SockaddrDatalink struct {
+ Len uint8
+ Family uint8
+@@ -32,23 +34,11 @@ type SockaddrDatalink struct {
+ func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
+
+ func nametomib(name string) (mib []_C_int, err error) {
+-
+- // Perform lookup via a binary search
+- left := 0
+- right := len(sysctlMib) - 1
+- for {
+- idx := left + (right-left)/2
+- switch {
+- case name == sysctlMib[idx].ctlname:
+- return sysctlMib[idx].ctloid, nil
+- case name > sysctlMib[idx].ctlname:
+- left = idx + 1
+- default:
+- right = idx - 1
+- }
+- if left > right {
+- break
+- }
++ i := sort.Search(len(sysctlMib), func(i int) bool {
++ return sysctlMib[i].ctlname >= name
++ })
++ if i < len(sysctlMib) && sysctlMib[i].ctlname == name {
++ return sysctlMib[i].ctloid, nil
+ }
+ return nil, EINVAL
+ }
+@@ -65,21 +55,87 @@ func direntNamlen(buf []byte) (uint64, bool) {
+ return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))
+ }
+
+-//sysnb pipe(p *[2]_C_int) (err error)
++func SysctlUvmexp(name string) (*Uvmexp, error) {
++ mib, err := sysctlmib(name)
++ if err != nil {
++ return nil, err
++ }
++
++ n := uintptr(SizeofUvmexp)
++ var u Uvmexp
++ if err := sysctl(mib, (*byte)(unsafe.Pointer(&u)), &n, nil, 0); err != nil {
++ return nil, err
++ }
++ if n != SizeofUvmexp {
++ return nil, EIO
++ }
++ return &u, nil
++}
++
+ func Pipe(p []int) (err error) {
++ return Pipe2(p, 0)
++}
++
++//sysnb pipe2(p *[2]_C_int, flags int) (err error)
++func Pipe2(p []int, flags int) error {
+ if len(p) != 2 {
+ return EINVAL
+ }
+ var pp [2]_C_int
+- err = pipe(&pp)
++ err := pipe2(&pp, flags)
+ p[0] = int(pp[0])
+ p[1] = int(pp[1])
+- return
++ return err
+ }
+
+-//sys getdents(fd int, buf []byte) (n int, err error)
++//sys Getdents(fd int, buf []byte) (n int, err error)
+ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+- return getdents(fd, buf)
++ n, err = Getdents(fd, buf)
++ if err != nil || basep == nil {
++ return
++ }
++
++ var off int64
++ off, err = Seek(fd, 0, 1 /* SEEK_CUR */)
++ if err != nil {
++ *basep = ^uintptr(0)
++ return
++ }
++ *basep = uintptr(off)
++ if unsafe.Sizeof(*basep) == 8 {
++ return
++ }
++ if off>>32 != 0 {
++ // We can't stuff the offset back into a uintptr, so any
++ // future calls would be suspect. Generate an error.
++ // EIO was allowed by getdirentries.
++ err = EIO
++ }
++ return
++}
++
++const ImplementsGetwd = true
++
++//sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD
++
++func Getwd() (string, error) {
++ var buf [PathMax]byte
++ _, err := Getcwd(buf[0:])
++ if err != nil {
++ return "", err
++ }
++ n := clen(buf[:])
++ if n < 1 {
++ return "", EINVAL
++ }
++ return string(buf[:n]), nil
++}
++
++func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
++ if raceenabled {
++ raceReleaseMerge(unsafe.Pointer(&ioSync))
++ }
++ return sendfile(outfd, infd, offset, count)
+ }
+
+ // TODO
+@@ -102,6 +158,70 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ return
+ }
+
++func setattrlistTimes(path string, times []Timespec, flags int) error {
++ // used on Darwin for UtimesNano
++ return ENOSYS
++}
++
++//sys ioctl(fd int, req uint, arg uintptr) (err error)
++
++//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
++
++//sys ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error)
++
++func Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
++ if len(fds) == 0 {
++ return ppoll(nil, 0, timeout, sigmask)
++ }
++ return ppoll(&fds[0], len(fds), timeout, sigmask)
++}
++
++func Uname(uname *Utsname) error {
++ mib := []_C_int{CTL_KERN, KERN_OSTYPE}
++ n := unsafe.Sizeof(uname.Sysname)
++ if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil {
++ return err
++ }
++
++ mib = []_C_int{CTL_KERN, KERN_HOSTNAME}
++ n = unsafe.Sizeof(uname.Nodename)
++ if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil {
++ return err
++ }
++
++ mib = []_C_int{CTL_KERN, KERN_OSRELEASE}
++ n = unsafe.Sizeof(uname.Release)
++ if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil {
++ return err
++ }
++
++ mib = []_C_int{CTL_KERN, KERN_VERSION}
++ n = unsafe.Sizeof(uname.Version)
++ if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil {
++ return err
++ }
++
++ // The version might have newlines or tabs in it, convert them to
++ // spaces.
++ for i, b := range uname.Version {
++ if b == '\n' || b == '\t' {
++ if i == len(uname.Version)-1 {
++ uname.Version[i] = 0
++ } else {
++ uname.Version[i] = ' '
++ }
++ }
++ }
++
++ mib = []_C_int{CTL_HW, HW_MACHINE}
++ n = unsafe.Sizeof(uname.Machine)
++ if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil {
++ return err
++ }
++
++ return nil
++}
++
+ /*
+ * Exposed directly
+ */
+@@ -115,14 +235,19 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ //sys Close(fd int) (err error)
+ //sys Dup(fd int) (nfd int, err error)
+ //sys Dup2(from int, to int) (err error)
++//sys Dup3(from int, to int, flags int) (err error)
+ //sys Exit(code int)
++//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error)
+ //sys Fchdir(fd int) (err error)
+ //sys Fchflags(fd int, flags int) (err error)
+ //sys Fchmod(fd int, mode uint32) (err error)
++//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error)
+ //sys Fchown(fd int, uid int, gid int) (err error)
++//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error)
+ //sys Flock(fd int, how int) (err error)
+ //sys Fpathconf(fd int, name int) (val int, err error)
+ //sys Fstat(fd int, stat *Stat_t) (err error)
++//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
+ //sys Fstatfs(fd int, stat *Statfs_t) (err error)
+ //sys Fsync(fd int) (err error)
+ //sys Ftruncate(fd int, length int64) (err error)
+@@ -135,6 +260,7 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ //sysnb Getppid() (ppid int)
+ //sys Getpriority(which int, who int) (prio int, err error)
+ //sysnb Getrlimit(which int, lim *Rlimit) (err error)
++//sysnb Getrtable() (rtable int, err error)
+ //sysnb Getrusage(who int, rusage *Rusage) (err error)
+ //sysnb Getsid(pid int) (sid int, err error)
+ //sysnb Gettimeofday(tv *Timeval) (err error)
+@@ -144,23 +270,30 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ //sys Kqueue() (fd int, err error)
+ //sys Lchown(path string, uid int, gid int) (err error)
+ //sys Link(path string, link string) (err error)
++//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error)
+ //sys Listen(s int, backlog int) (err error)
+ //sys Lstat(path string, stat *Stat_t) (err error)
+ //sys Mkdir(path string, mode uint32) (err error)
++//sys Mkdirat(dirfd int, path string, mode uint32) (err error)
+ //sys Mkfifo(path string, mode uint32) (err error)
++//sys Mkfifoat(dirfd int, path string, mode uint32) (err error)
+ //sys Mknod(path string, mode uint32, dev int) (err error)
++//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error)
+ //sys Nanosleep(time *Timespec, leftover *Timespec) (err error)
+ //sys Open(path string, mode int, perm uint32) (fd int, err error)
++//sys Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error)
+ //sys Pathconf(path string, name int) (val int, err error)
+ //sys Pread(fd int, p []byte, offset int64) (n int, err error)
+ //sys Pwrite(fd int, p []byte, offset int64) (n int, err error)
+ //sys read(fd int, p []byte) (n int, err error)
+ //sys Readlink(path string, buf []byte) (n int, err error)
++//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error)
+ //sys Rename(from string, to string) (err error)
++//sys Renameat(fromfd int, from string, tofd int, to string) (err error)
+ //sys Revoke(path string) (err error)
+ //sys Rmdir(path string) (err error)
+ //sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK
+-//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error)
++//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
+ //sysnb Setegid(egid int) (err error)
+ //sysnb Seteuid(euid int) (err error)
+ //sysnb Setgid(gid int) (err error)
+@@ -172,16 +305,19 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ //sysnb Setresgid(rgid int, egid int, sgid int) (err error)
+ //sysnb Setresuid(ruid int, euid int, suid int) (err error)
+ //sysnb Setrlimit(which int, lim *Rlimit) (err error)
++//sysnb Setrtable(rtable int) (err error)
+ //sysnb Setsid() (pid int, err error)
+ //sysnb Settimeofday(tp *Timeval) (err error)
+ //sysnb Setuid(uid int) (err error)
+ //sys Stat(path string, stat *Stat_t) (err error)
+ //sys Statfs(path string, stat *Statfs_t) (err error)
+ //sys Symlink(path string, link string) (err error)
++//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error)
+ //sys Sync() (err error)
+ //sys Truncate(path string, length int64) (err error)
+ //sys Umask(newmask int) (oldmask int)
+ //sys Unlink(path string) (err error)
++//sys Unlinkat(dirfd int, path string, flags int) (err error)
+ //sys Unmount(path string, flags int) (err error)
+ //sys write(fd int, p []byte) (n int, err error)
+ //sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)
+@@ -204,15 +340,10 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ // clock_settime
+ // closefrom
+ // execve
+-// faccessat
+-// fchmodat
+-// fchownat
+-// fcntl
+ // fhopen
+ // fhstat
+ // fhstatfs
+ // fork
+-// fstatat
+ // futimens
+ // getfh
+ // getgid
+@@ -220,20 +351,14 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ // getlogin
+ // getresgid
+ // getresuid
+-// getrtable
+ // getthrid
+-// ioctl
+ // ktrace
+ // lfs_bmapv
+ // lfs_markv
+ // lfs_segclean
+ // lfs_segwait
+-// linkat
+ // mincore
+ // minherit
+-// mkdirat
+-// mkfifoat
+-// mknodat
+ // mount
+ // mquery
+ // msgctl
+@@ -242,13 +367,10 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ // msgsnd
+ // nfssvc
+ // nnpfspioctl
+-// openat
+-// poll
+ // preadv
+ // profil
+ // pwritev
+ // quotactl
+-// readlinkat
+ // readv
+ // reboot
+ // renameat
+@@ -258,7 +380,6 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ // semop
+ // setgroups
+ // setitimer
+-// setrtable
+ // setsockopt
+ // shmat
+ // shmctl
+@@ -270,13 +391,11 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ // sigprocmask
+ // sigreturn
+ // sigsuspend
+-// symlinkat
+ // sysarch
+ // syscall
+ // threxit
+ // thrsigdivert
+ // thrsleep
+ // thrwakeup
+-// unlinkat
+ // vfork
+ // writev
+diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go
+index a66ddc59..42b5a0e5 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go
++++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go
+@@ -6,21 +6,12 @@
+
+ package unix
+
+-func Getpagesize() int { return 4096 }
+-
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+-
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = int64(nsec / 1e9)
+- ts.Nsec = int32(nsec % 1e9)
+- return
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: sec, Nsec: int32(nsec)}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Usec = int32(nsec % 1e9 / 1e3)
+- tv.Sec = int64(nsec / 1e9)
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: sec, Usec: int32(usec)}
+ }
+
+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
+@@ -37,6 +28,14 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+ }
+
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = uint32(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+ }
++
++// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
++// of openbsd/386 the syscall is called sysctl instead of __sysctl.
++const SYS___SYSCTL = SYS_SYSCTL
+diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go
+index 0776c1fa..6ea4b488 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go
+@@ -6,21 +6,12 @@
+
+ package unix
+
+-func Getpagesize() int { return 4096 }
+-
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+-
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = nsec / 1e9
+- ts.Nsec = nsec % 1e9
+- return
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: sec, Nsec: nsec}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Usec = nsec % 1e9 / 1e3
+- tv.Sec = nsec / 1e9
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: sec, Usec: usec}
+ }
+
+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
+@@ -37,6 +28,14 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+ }
+
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = uint32(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+ }
++
++// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
++// of openbsd/amd64 the syscall is called sysctl instead of __sysctl.
++const SYS___SYSCTL = SYS_SYSCTL
+diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go
+index 14ddaf3f..1c3d26fa 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go
+@@ -6,23 +6,12 @@
+
+ package unix
+
+-import "syscall"
+-
+-func Getpagesize() int { return syscall.Getpagesize() }
+-
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+-
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = int64(nsec / 1e9)
+- ts.Nsec = int32(nsec % 1e9)
+- return
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: sec, Nsec: int32(nsec)}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Usec = int32(nsec % 1e9 / 1e3)
+- tv.Sec = int64(nsec / 1e9)
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: sec, Usec: int32(usec)}
+ }
+
+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
+@@ -39,6 +28,14 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+ }
+
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = uint32(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+ }
++
++// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
++// of openbsd/arm the syscall is called sysctl instead of __sysctl.
++const SYS___SYSCTL = SYS_SYSCTL
+diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go
+new file mode 100644
+index 00000000..a8c458cb
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go
+@@ -0,0 +1,41 @@
++// Copyright 2019 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build arm64,openbsd
++
++package unix
++
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: sec, Nsec: nsec}
++}
++
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: sec, Usec: usec}
++}
++
++func SetKevent(k *Kevent_t, fd, mode, flags int) {
++ k.Ident = uint64(fd)
++ k.Filter = int16(mode)
++ k.Flags = uint16(flags)
++}
++
++func (iov *Iovec) SetLen(length int) {
++ iov.Len = uint64(length)
++}
++
++func (msghdr *Msghdr) SetControllen(length int) {
++ msghdr.Controllen = uint32(length)
++}
++
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = uint32(length)
++}
++
++func (cmsg *Cmsghdr) SetLen(length int) {
++ cmsg.Len = uint32(length)
++}
++
++// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
++// of openbsd/amd64 the syscall is called sysctl instead of __sysctl.
++const SYS___SYSCTL = SYS_SYSCTL
+diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris.go b/vendor/golang.org/x/sys/unix/syscall_solaris.go
+index 0d4e5c4e..0e2a696a 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_solaris.go
++++ b/vendor/golang.org/x/sys/unix/syscall_solaris.go
+@@ -13,7 +13,6 @@
+ package unix
+
+ import (
+- "sync/atomic"
+ "syscall"
+ "unsafe"
+ )
+@@ -24,6 +23,7 @@ type syscallFunc uintptr
+ func rawSysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)
+ func sysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)
+
++// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.
+ type SockaddrDatalink struct {
+ Family uint16
+ Index uint16
+@@ -35,15 +35,6 @@ type SockaddrDatalink struct {
+ raw RawSockaddrDatalink
+ }
+
+-func clen(n []byte) int {
+- for i := 0; i < len(n); i++ {
+- if n[i] == 0 {
+- return i
+- }
+- }
+- return len(n)
+-}
+-
+ func direntIno(buf []byte) (uint64, bool) {
+ return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))
+ }
+@@ -137,7 +128,19 @@ func Getsockname(fd int) (sa Sockaddr, err error) {
+ if err = getsockname(fd, &rsa, &len); err != nil {
+ return
+ }
+- return anyToSockaddr(&rsa)
++ return anyToSockaddr(fd, &rsa)
++}
++
++// GetsockoptString returns the string value of the socket option opt for the
++// socket associated with fd at the given socket level.
++func GetsockoptString(fd, level, opt int) (string, error) {
++ buf := make([]byte, 256)
++ vallen := _Socklen(len(buf))
++ err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)
++ if err != nil {
++ return "", err
++ }
++ return string(buf[:vallen-1]), nil
+ }
+
+ const ImplementsGetwd = true
+@@ -167,7 +170,7 @@ func Getwd() (wd string, err error) {
+
+ func Getgroups() (gids []int, err error) {
+ n, err := getgroups(0, nil)
+- // Check for error and sanity check group count. Newer versions of
++ // Check for error and sanity check group count. Newer versions of
+ // Solaris allow up to 1024 (NGROUPS_MAX).
+ if n < 0 || n > 1024 {
+ if err != nil {
+@@ -202,6 +205,7 @@ func Setgroups(gids []int) (err error) {
+ return setgroups(len(a), &a[0])
+ }
+
++// ReadDirent reads directory entries from fd and writes them into buf.
+ func ReadDirent(fd int, buf []byte) (n int, err error) {
+ // Final argument is (basep *uintptr) and the syscall doesn't take nil.
+ // TODO(rsc): Can we use a single global basep for all calls?
+@@ -325,6 +329,16 @@ func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {
+
+ //sys fcntl(fd int, cmd int, arg int) (val int, err error)
+
++// FcntlInt performs a fcntl syscall on fd with the provided command and argument.
++func FcntlInt(fd uintptr, cmd, arg int) (int, error) {
++ valptr, _, errno := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0)
++ var err error
++ if errno != 0 {
++ err = errno
++ }
++ return int(valptr), err
++}
++
+ // FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.
+ func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(lk)), 0, 0, 0)
+@@ -351,7 +365,7 @@ func Futimesat(dirfd int, path string, tv []Timeval) error {
+ }
+
+ // Solaris doesn't have an futimes function because it allows NULL to be
+-// specified as the path for futimesat. However, Go doesn't like
++// specified as the path for futimesat. However, Go doesn't like
+ // NULL-style string interfaces, so this simple wrapper is provided.
+ func Futimes(fd int, tv []Timeval) error {
+ if tv == nil {
+@@ -363,7 +377,7 @@ func Futimes(fd int, tv []Timeval) error {
+ return futimesat(fd, nil, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
+ }
+
+-func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {
++func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
+ switch rsa.Addr.Family {
+ case AF_UNIX:
+ pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))
+@@ -377,7 +391,7 @@ func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {
+ for n < len(pp.Path) && pp.Path[n] != 0 {
+ n++
+ }
+- bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n]
++ bytes := (*[len(pp.Path)]byte)(unsafe.Pointer(&pp.Path[0]))[0:n]
+ sa.Name = string(bytes)
+ return sa, nil
+
+@@ -414,7 +428,7 @@ func Accept(fd int) (nfd int, sa Sockaddr, err error) {
+ if nfd == -1 {
+ return
+ }
+- sa, err = anyToSockaddr(&rsa)
++ sa, err = anyToSockaddr(fd, &rsa)
+ if err != nil {
+ Close(nfd)
+ nfd = 0
+@@ -451,7 +465,7 @@ func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from
+ oobn = int(msg.Accrightslen)
+ // source address is only specified if the socket is unconnected
+ if rsa.Addr.Family != AF_UNSPEC {
+- from, err = anyToSockaddr(&rsa)
++ from, err = anyToSockaddr(fd, &rsa)
+ }
+ return
+ }
+@@ -515,50 +529,54 @@ func Acct(path string) (err error) {
+ return acct(pathp)
+ }
+
+-/*
+- * Expose the ioctl function
+- */
++//sys __makedev(version int, major uint, minor uint) (val uint64)
+
+-//sys ioctl(fd int, req uint, arg uintptr) (err error)
+-
+-func IoctlSetInt(fd int, req uint, value int) (err error) {
+- return ioctl(fd, req, uintptr(value))
++func Mkdev(major, minor uint32) uint64 {
++ return __makedev(NEWDEV, uint(major), uint(minor))
+ }
+
+-func IoctlSetWinsize(fd int, req uint, value *Winsize) (err error) {
+- return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
++//sys __major(version int, dev uint64) (val uint)
++
++func Major(dev uint64) uint32 {
++ return uint32(__major(NEWDEV, dev))
+ }
+
+-func IoctlSetTermios(fd int, req uint, value *Termios) (err error) {
+- return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
++//sys __minor(version int, dev uint64) (val uint)
++
++func Minor(dev uint64) uint32 {
++ return uint32(__minor(NEWDEV, dev))
+ }
+
++/*
++ * Expose the ioctl function
++ */
++
++//sys ioctl(fd int, req uint, arg uintptr) (err error)
++
+ func IoctlSetTermio(fd int, req uint, value *Termio) (err error) {
+ return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
+ }
+
+-func IoctlGetInt(fd int, req uint) (int, error) {
+- var value int
+- err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
+- return value, err
+-}
+-
+-func IoctlGetWinsize(fd int, req uint) (*Winsize, error) {
+- var value Winsize
++func IoctlGetTermio(fd int, req uint) (*Termio, error) {
++ var value Termio
+ err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
+ return &value, err
+ }
+
+-func IoctlGetTermios(fd int, req uint) (*Termios, error) {
+- var value Termios
+- err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
+- return &value, err
++//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error)
++
++func Poll(fds []PollFd, timeout int) (n int, err error) {
++ if len(fds) == 0 {
++ return poll(nil, 0, timeout)
++ }
++ return poll(&fds[0], len(fds), timeout)
+ }
+
+-func IoctlGetTermio(fd int, req uint) (*Termio, error) {
+- var value Termio
+- err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
+- return &value, err
++func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
++ if raceenabled {
++ raceReleaseMerge(unsafe.Pointer(&ioSync))
++ }
++ return sendfile(outfd, infd, offset, count)
+ }
+
+ /*
+@@ -575,15 +593,17 @@ func IoctlGetTermio(fd int, req uint) (*Termio, error) {
+ //sys Dup(fd int) (nfd int, err error)
+ //sys Dup2(oldfd int, newfd int) (err error)
+ //sys Exit(code int)
++//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error)
+ //sys Fchdir(fd int) (err error)
+ //sys Fchmod(fd int, mode uint32) (err error)
+ //sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error)
+ //sys Fchown(fd int, uid int, gid int) (err error)
+ //sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error)
+ //sys Fdatasync(fd int) (err error)
+-//sys Flock(fd int, how int) (err error)
++//sys Flock(fd int, how int) (err error)
+ //sys Fpathconf(fd int, name int) (val int, err error)
+ //sys Fstat(fd int, stat *Stat_t) (err error)
++//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
+ //sys Fstatvfs(fd int, vfsstat *Statvfs_t) (err error)
+ //sys Getdents(fd int, buf []byte, basep *uintptr) (n int, err error)
+ //sysnb Getgid() (gid int)
+@@ -613,6 +633,7 @@ func IoctlGetTermio(fd int, req uint) (*Termio, error) {
+ //sys Mlock(b []byte) (err error)
+ //sys Mlockall(flags int) (err error)
+ //sys Mprotect(b []byte, prot int) (err error)
++//sys Msync(b []byte, flags int) (err error)
+ //sys Munlock(b []byte) (err error)
+ //sys Munlockall() (err error)
+ //sys Nanosleep(time *Timespec, leftover *Timespec) (err error)
+@@ -628,6 +649,7 @@ func IoctlGetTermio(fd int, req uint) (*Termio, error) {
+ //sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
+ //sys Rmdir(path string) (err error)
+ //sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = lseek
++//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
+ //sysnb Setegid(egid int) (err error)
+ //sysnb Seteuid(euid int) (err error)
+ //sysnb Setgid(gid int) (err error)
+@@ -659,6 +681,7 @@ func IoctlGetTermio(fd int, req uint) (*Termio, error) {
+ //sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_connect
+ //sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)
+ //sys munmap(addr uintptr, length uintptr) (err error)
++//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = libsendfile.sendfile
+ //sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_sendto
+ //sys socket(domain int, typ int, proto int) (fd int, err error) = libsocket.__xnet_socket
+ //sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) = libsocket.__xnet_socketpair
+@@ -699,18 +722,3 @@ func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, e
+ func Munmap(b []byte) (err error) {
+ return mapper.Munmap(b)
+ }
+-
+-//sys sysconf(name int) (n int64, err error)
+-
+-// pageSize caches the value of Getpagesize, since it can't change
+-// once the system is booted.
+-var pageSize int64 // accessed atomically
+-
+-func Getpagesize() int {
+- n := atomic.LoadInt64(&pageSize)
+- if n == 0 {
+- n, _ = sysconf(_SC_PAGESIZE)
+- atomic.StoreInt64(&pageSize, n)
+- }
+- return int(n)
+-}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go
+index 5aff62c3..b22a34d7 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go
++++ b/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go
+@@ -6,30 +6,22 @@
+
+ package unix
+
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+-
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+- ts.Sec = nsec / 1e9
+- ts.Nsec = nsec % 1e9
+- return
++func setTimespec(sec, nsec int64) Timespec {
++ return Timespec{Sec: sec, Nsec: nsec}
+ }
+
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+- nsec += 999 // round up to microsecond
+- tv.Usec = nsec % 1e9 / 1e3
+- tv.Sec = int64(nsec / 1e9)
+- return
++func setTimeval(sec, usec int64) Timeval {
++ return Timeval{Sec: sec, Usec: usec}
+ }
+
+ func (iov *Iovec) SetLen(length int) {
+ iov.Len = uint64(length)
+ }
+
+-func (cmsg *Cmsghdr) SetLen(length int) {
+- cmsg.Len = uint32(length)
++func (msghdr *Msghdr) SetIovlen(length int) {
++ msghdr.Iovlen = int32(length)
+ }
+
+-func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+- // TODO(aram): implement this, see issue 5847.
+- panic("unimplemented")
++func (cmsg *Cmsghdr) SetLen(length int) {
++ cmsg.Len = uint32(length)
+ }
+diff --git a/vendor/golang.org/x/sys/unix/syscall_unix.go b/vendor/golang.org/x/sys/unix/syscall_unix.go
+index 3ed8a91f..8f710d01 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_unix.go
++++ b/vendor/golang.org/x/sys/unix/syscall_unix.go
+@@ -2,12 +2,13 @@
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+
+-// +build darwin dragonfly freebsd linux netbsd openbsd solaris
++// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
+
+ package unix
+
+ import (
+- "runtime"
++ "bytes"
++ "sort"
+ "sync"
+ "syscall"
+ "unsafe"
+@@ -19,13 +20,6 @@ var (
+ Stderr = 2
+ )
+
+-const (
+- darwin64Bit = runtime.GOOS == "darwin" && sizeofPtr == 8
+- dragonfly64Bit = runtime.GOOS == "dragonfly" && sizeofPtr == 8
+- netbsd32Bit = runtime.GOOS == "netbsd" && sizeofPtr == 4
+- solaris64Bit = runtime.GOOS == "solaris" && sizeofPtr == 8
+-)
+-
+ // Do the interface allocations only once for common
+ // Errno values.
+ var (
+@@ -34,6 +28,11 @@ var (
+ errENOENT error = syscall.ENOENT
+ )
+
++var (
++ signalNameMapOnce sync.Once
++ signalNameMap map[string]syscall.Signal
++)
++
+ // errnoErr returns common boxed Errno values, to prevent
+ // allocations at runtime.
+ func errnoErr(e syscall.Errno) error {
+@@ -50,6 +49,50 @@ func errnoErr(e syscall.Errno) error {
+ return e
+ }
+
++// ErrnoName returns the error name for error number e.
++func ErrnoName(e syscall.Errno) string {
++ i := sort.Search(len(errorList), func(i int) bool {
++ return errorList[i].num >= e
++ })
++ if i < len(errorList) && errorList[i].num == e {
++ return errorList[i].name
++ }
++ return ""
++}
++
++// SignalName returns the signal name for signal number s.
++func SignalName(s syscall.Signal) string {
++ i := sort.Search(len(signalList), func(i int) bool {
++ return signalList[i].num >= s
++ })
++ if i < len(signalList) && signalList[i].num == s {
++ return signalList[i].name
++ }
++ return ""
++}
++
++// SignalNum returns the syscall.Signal for signal named s,
++// or 0 if a signal with such name is not found.
++// The signal name should start with "SIG".
++func SignalNum(s string) syscall.Signal {
++ signalNameMapOnce.Do(func() {
++ signalNameMap = make(map[string]syscall.Signal, len(signalList))
++ for _, signal := range signalList {
++ signalNameMap[signal.name] = signal.num
++ }
++ })
++ return signalNameMap[s]
++}
++
++// clen returns the index of the first NULL byte in n or len(n) if n contains no NULL byte.
++func clen(n []byte) int {
++ i := bytes.IndexByte(n, 0)
++ if i == -1 {
++ i = len(n)
++ }
++ return i
++}
++
+ // Mmap manager, for use by operating system-specific implementations.
+
+ type mmapper struct {
+@@ -138,16 +181,19 @@ func Write(fd int, p []byte) (n int, err error) {
+ // creation of IPv6 sockets to return EAFNOSUPPORT.
+ var SocketDisableIPv6 bool
+
++// Sockaddr represents a socket address.
+ type Sockaddr interface {
+ sockaddr() (ptr unsafe.Pointer, len _Socklen, err error) // lowercase; only we can define Sockaddrs
+ }
+
++// SockaddrInet4 implements the Sockaddr interface for AF_INET type sockets.
+ type SockaddrInet4 struct {
+ Port int
+ Addr [4]byte
+ raw RawSockaddrInet4
+ }
+
++// SockaddrInet6 implements the Sockaddr interface for AF_INET6 type sockets.
+ type SockaddrInet6 struct {
+ Port int
+ ZoneId uint32
+@@ -155,6 +201,7 @@ type SockaddrInet6 struct {
+ raw RawSockaddrInet6
+ }
+
++// SockaddrUnix implements the Sockaddr interface for AF_UNIX type sockets.
+ type SockaddrUnix struct {
+ Name string
+ raw RawSockaddrUnix
+@@ -182,7 +229,14 @@ func Getpeername(fd int) (sa Sockaddr, err error) {
+ if err = getpeername(fd, &rsa, &len); err != nil {
+ return
+ }
+- return anyToSockaddr(&rsa)
++ return anyToSockaddr(fd, &rsa)
++}
++
++func GetsockoptByte(fd, level, opt int) (value byte, err error) {
++ var n byte
++ vallen := _Socklen(1)
++ err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)
++ return n, err
+ }
+
+ func GetsockoptInt(fd, level, opt int) (value int, err error) {
+@@ -192,6 +246,61 @@ func GetsockoptInt(fd, level, opt int) (value int, err error) {
+ return int(n), err
+ }
+
++func GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) {
++ vallen := _Socklen(4)
++ err = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen)
++ return value, err
++}
++
++func GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) {
++ var value IPMreq
++ vallen := _Socklen(SizeofIPMreq)
++ err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
++ return &value, err
++}
++
++func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) {
++ var value IPv6Mreq
++ vallen := _Socklen(SizeofIPv6Mreq)
++ err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
++ return &value, err
++}
++
++func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) {
++ var value IPv6MTUInfo
++ vallen := _Socklen(SizeofIPv6MTUInfo)
++ err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
++ return &value, err
++}
++
++func GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) {
++ var value ICMPv6Filter
++ vallen := _Socklen(SizeofICMPv6Filter)
++ err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
++ return &value, err
++}
++
++func GetsockoptLinger(fd, level, opt int) (*Linger, error) {
++ var linger Linger
++ vallen := _Socklen(SizeofLinger)
++ err := getsockopt(fd, level, opt, unsafe.Pointer(&linger), &vallen)
++ return &linger, err
++}
++
++func GetsockoptTimeval(fd, level, opt int) (*Timeval, error) {
++ var tv Timeval
++ vallen := _Socklen(unsafe.Sizeof(tv))
++ err := getsockopt(fd, level, opt, unsafe.Pointer(&tv), &vallen)
++ return &tv, err
++}
++
++func GetsockoptUint64(fd, level, opt int) (value uint64, err error) {
++ var n uint64
++ vallen := _Socklen(8)
++ err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)
++ return n, err
++}
++
+ func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) {
+ var rsa RawSockaddrAny
+ var len _Socklen = SizeofSockaddrAny
+@@ -199,7 +308,7 @@ func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) {
+ return
+ }
+ if rsa.Addr.Family != AF_UNSPEC {
+- from, err = anyToSockaddr(&rsa)
++ from, err = anyToSockaddr(fd, &rsa)
+ }
+ return
+ }
+@@ -242,13 +351,21 @@ func SetsockoptLinger(fd, level, opt int, l *Linger) (err error) {
+ }
+
+ func SetsockoptString(fd, level, opt int, s string) (err error) {
+- return setsockopt(fd, level, opt, unsafe.Pointer(&[]byte(s)[0]), uintptr(len(s)))
++ var p unsafe.Pointer
++ if len(s) > 0 {
++ p = unsafe.Pointer(&[]byte(s)[0])
++ }
++ return setsockopt(fd, level, opt, p, uintptr(len(s)))
+ }
+
+ func SetsockoptTimeval(fd, level, opt int, tv *Timeval) (err error) {
+ return setsockopt(fd, level, opt, unsafe.Pointer(tv), unsafe.Sizeof(*tv))
+ }
+
++func SetsockoptUint64(fd, level, opt int, value uint64) (err error) {
++ return setsockopt(fd, level, opt, unsafe.Pointer(&value), 8)
++}
++
+ func Socket(domain, typ, proto int) (fd int, err error) {
+ if domain == AF_INET6 && SocketDisableIPv6 {
+ return -1, EAFNOSUPPORT
+@@ -267,13 +384,6 @@ func Socketpair(domain, typ, proto int) (fd [2]int, err error) {
+ return
+ }
+
+-func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+- if raceenabled {
+- raceReleaseMerge(unsafe.Pointer(&ioSync))
+- }
+- return sendfile(outfd, infd, offset, count)
+-}
+-
+ var ioSync int64
+
+ func CloseOnExec(fd int) { fcntl(fd, F_SETFD, FD_CLOEXEC) }
+@@ -291,3 +401,31 @@ func SetNonblock(fd int, nonblocking bool) (err error) {
+ _, err = fcntl(fd, F_SETFL, flag)
+ return err
+ }
++
++// Exec calls execve(2), which replaces the calling executable in the process
++// tree. argv0 should be the full path to an executable ("/bin/ls") and the
++// executable name should also be the first argument in argv (["ls", "-l"]).
++// envv are the environment variables that should be passed to the new
++// process (["USER=go", "PWD=/tmp"]).
++func Exec(argv0 string, argv []string, envv []string) error {
++ return syscall.Exec(argv0, argv, envv)
++}
++
++// Lutimes sets the access and modification times tv on path. If path refers to
++// a symlink, it is not dereferenced and the timestamps are set on the symlink.
++// If tv is nil, the access and modification times are set to the current time.
++// Otherwise tv must contain exactly 2 elements, with access time as the first
++// element and modification time as the second element.
++func Lutimes(path string, tv []Timeval) error {
++ if tv == nil {
++ return UtimesNanoAt(AT_FDCWD, path, nil, AT_SYMLINK_NOFOLLOW)
++ }
++ if len(tv) != 2 {
++ return EINVAL
++ }
++ ts := []Timespec{
++ NsecToTimespec(TimevalToNsec(tv[0])),
++ NsecToTimespec(TimevalToNsec(tv[1])),
++ }
++ return UtimesNanoAt(AT_FDCWD, path, ts, AT_SYMLINK_NOFOLLOW)
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go b/vendor/golang.org/x/sys/unix/syscall_unix_gc.go
+index 4cb8e8ed..1c70d1b6 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go
++++ b/vendor/golang.org/x/sys/unix/syscall_unix_gc.go
+@@ -3,7 +3,7 @@
+ // license that can be found in the LICENSE file.
+
+ // +build darwin dragonfly freebsd linux netbsd openbsd solaris
+-// +build !gccgo
++// +build !gccgo,!ppc64le,!ppc64
+
+ package unix
+
+diff --git a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go b/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go
+similarity index 51%
+copy from vendor/golang.org/x/sys/unix/syscall_unix_gc.go
+copy to vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go
+index 4cb8e8ed..86dc765a 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go
++++ b/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go
+@@ -1,15 +1,24 @@
+-// Copyright 2016 The Go Authors. All rights reserved.
++// Copyright 2018 The Go Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+
+-// +build darwin dragonfly freebsd linux netbsd openbsd solaris
++// +build linux
++// +build ppc64le ppc64
+ // +build !gccgo
+
+ package unix
+
+ import "syscall"
+
+-func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno)
+-func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)
+-func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno)
+-func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)
++func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {
++ return syscall.Syscall(trap, a1, a2, a3)
++}
++func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {
++ return syscall.Syscall6(trap, a1, a2, a3, a4, a5, a6)
++}
++func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {
++ return syscall.RawSyscall(trap, a1, a2, a3)
++}
++func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {
++ return syscall.RawSyscall6(trap, a1, a2, a3, a4, a5, a6)
++}
+diff --git a/vendor/golang.org/x/sys/unix/timestruct.go b/vendor/golang.org/x/sys/unix/timestruct.go
+new file mode 100644
+index 00000000..4a672f56
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/timestruct.go
+@@ -0,0 +1,82 @@
++// Copyright 2017 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
++
++package unix
++
++import "time"
++
++// TimespecToNsec converts a Timespec value into a number of
++// nanoseconds since the Unix epoch.
++func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
++
++// NsecToTimespec takes a number of nanoseconds since the Unix epoch
++// and returns the corresponding Timespec value.
++func NsecToTimespec(nsec int64) Timespec {
++ sec := nsec / 1e9
++ nsec = nsec % 1e9
++ if nsec < 0 {
++ nsec += 1e9
++ sec--
++ }
++ return setTimespec(sec, nsec)
++}
++
++// TimeToTimespec converts t into a Timespec.
++// On some 32-bit systems the range of valid Timespec values are smaller
++// than that of time.Time values. So if t is out of the valid range of
++// Timespec, it returns a zero Timespec and ERANGE.
++func TimeToTimespec(t time.Time) (Timespec, error) {
++ sec := t.Unix()
++ nsec := int64(t.Nanosecond())
++ ts := setTimespec(sec, nsec)
++
++ // Currently all targets have either int32 or int64 for Timespec.Sec.
++ // If there were a new target with floating point type for it, we have
++ // to consider the rounding error.
++ if int64(ts.Sec) != sec {
++ return Timespec{}, ERANGE
++ }
++ return ts, nil
++}
++
++// TimevalToNsec converts a Timeval value into a number of nanoseconds
++// since the Unix epoch.
++func TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 }
++
++// NsecToTimeval takes a number of nanoseconds since the Unix epoch
++// and returns the corresponding Timeval value.
++func NsecToTimeval(nsec int64) Timeval {
++ nsec += 999 // round up to microsecond
++ usec := nsec % 1e9 / 1e3
++ sec := nsec / 1e9
++ if usec < 0 {
++ usec += 1e6
++ sec--
++ }
++ return setTimeval(sec, usec)
++}
++
++// Unix returns ts as the number of seconds and nanoseconds elapsed since the
++// Unix epoch.
++func (ts *Timespec) Unix() (sec int64, nsec int64) {
++ return int64(ts.Sec), int64(ts.Nsec)
++}
++
++// Unix returns tv as the number of seconds and nanoseconds elapsed since the
++// Unix epoch.
++func (tv *Timeval) Unix() (sec int64, nsec int64) {
++ return int64(tv.Sec), int64(tv.Usec) * 1000
++}
++
++// Nano returns ts as the number of nanoseconds elapsed since the Unix epoch.
++func (ts *Timespec) Nano() int64 {
++ return int64(ts.Sec)*1e9 + int64(ts.Nsec)
++}
++
++// Nano returns tv as the number of nanoseconds elapsed since the Unix epoch.
++func (tv *Timeval) Nano() int64 {
++ return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000
++}
+diff --git a/vendor/golang.org/x/sys/unix/types_netbsd.go b/vendor/golang.org/x/sys/unix/types_aix.go
+similarity index 53%
+copy from vendor/golang.org/x/sys/unix/types_netbsd.go
+copy to vendor/golang.org/x/sys/unix/types_aix.go
+index cb95c80a..40d2beed 100644
+--- a/vendor/golang.org/x/sys/unix/types_netbsd.go
++++ b/vendor/golang.org/x/sys/unix/types_aix.go
+@@ -1,11 +1,12 @@
+-// Copyright 2009 The Go Authors. All rights reserved.
++// Copyright 2018 The Go Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style
+ // license that can be found in the LICENSE file.
+
+ // +build ignore
++// +build aix
+
+ /*
+-Input to cgo -godefs. See README.md
++Input to cgo -godefs. See also mkerrors.sh and mkall.sh
+ */
+
+ // +godefs map struct_in_addr [4]byte /* in_addr */
+@@ -14,44 +15,37 @@ Input to cgo -godefs. See README.md
+ package unix
+
+ /*
+-#define KERNEL
+-#include <dirent.h>
+-#include <fcntl.h>
+-#include <signal.h>
+-#include <termios.h>
+-#include <stdio.h>
+-#include <unistd.h>
+-#include <sys/param.h>
+ #include <sys/types.h>
+-#include <sys/event.h>
+-#include <sys/mman.h>
+-#include <sys/mount.h>
+-#include <sys/ptrace.h>
+-#include <sys/resource.h>
+-#include <sys/select.h>
+-#include <sys/signal.h>
+-#include <sys/socket.h>
+-#include <sys/stat.h>
+-#include <sys/sysctl.h>
+ #include <sys/time.h>
+-#include <sys/uio.h>
++#include <sys/limits.h>
+ #include <sys/un.h>
+-#include <sys/wait.h>
+-#include <net/bpf.h>
++#include <utime.h>
++#include <sys/utsname.h>
++#include <sys/poll.h>
++#include <sys/resource.h>
++#include <sys/stat.h>
++#include <sys/statfs.h>
++#include <sys/termio.h>
++#include <sys/ioctl.h>
++
++#include <termios.h>
++
+ #include <net/if.h>
+ #include <net/if_dl.h>
+-#include <net/route.h>
+ #include <netinet/in.h>
+ #include <netinet/icmp6.h>
+-#include <netinet/tcp.h>
++
++
++#include <dirent.h>
++#include <fcntl.h>
+
+ enum {
+ sizeofPtr = sizeof(void*),
+ };
+
+ union sockaddr_all {
+- struct sockaddr s1; // this one gets used for fields
+- struct sockaddr_in s2; // these pad it out
++ struct sockaddr s1; // this one gets used for fields
++ struct sockaddr_in s2; // these pad it out
+ struct sockaddr_in6 s3;
+ struct sockaddr_un s4;
+ struct sockaddr_dl s5;
+@@ -65,14 +59,15 @@ struct sockaddr_any {
+ */
+ import "C"
+
+-// Machine characteristics; for internal use.
++// Machine characteristics
+
+ const (
+- sizeofPtr = C.sizeofPtr
+- sizeofShort = C.sizeof_short
+- sizeofInt = C.sizeof_int
+- sizeofLong = C.sizeof_long
+- sizeofLongLong = C.sizeof_longlong
++ SizeofPtr = C.sizeofPtr
++ SizeofShort = C.sizeof_short
++ SizeofInt = C.sizeof_int
++ SizeofLong = C.sizeof_long
++ SizeofLongLong = C.sizeof_longlong
++ PathMax = C.PATH_MAX
+ )
+
+ // Basic types
+@@ -84,32 +79,50 @@ type (
+ _C_long_long C.longlong
+ )
+
++type off64 C.off64_t
++type off C.off_t
++type Mode_t C.mode_t
++
+ // Time
+
+ type Timespec C.struct_timespec
+
+ type Timeval C.struct_timeval
+
++type Timeval32 C.struct_timeval32
++
++type Timex C.struct_timex
++
++type Time_t C.time_t
++
++type Tms C.struct_tms
++
++type Utimbuf C.struct_utimbuf
++
++type Timezone C.struct_timezone
++
+ // Processes
+
+ type Rusage C.struct_rusage
+
+-type Rlimit C.struct_rlimit
++type Rlimit C.struct_rlimit64
++
++type Pid_t C.pid_t
+
+ type _Gid_t C.gid_t
+
++type dev_t C.dev_t
++
+ // Files
+
+ type Stat_t C.struct_stat
+
+-type Statfs_t C.struct_statfs
++type StatxTimestamp C.struct_statx_timestamp
+
+-type Flock_t C.struct_flock
++type Statx_t C.struct_statx
+
+ type Dirent C.struct_dirent
+
+-type Fsid C.fsid_t
+-
+ // Sockets
+
+ type RawSockaddrInet4 C.struct_sockaddr_in
+@@ -126,7 +139,9 @@ type RawSockaddrAny C.struct_sockaddr_any
+
+ type _Socklen C.socklen_t
+
+-type Linger C.struct_linger
++type Cmsghdr C.struct_cmsghdr
++
++type ICMPv6Filter C.struct_icmp6_filter
+
+ type Iovec C.struct_iovec
+
+@@ -134,15 +149,11 @@ type IPMreq C.struct_ip_mreq
+
+ type IPv6Mreq C.struct_ipv6_mreq
+
+-type Msghdr C.struct_msghdr
+-
+-type Cmsghdr C.struct_cmsghdr
+-
+-type Inet6Pktinfo C.struct_in6_pktinfo
+-
+ type IPv6MTUInfo C.struct_ip6_mtuinfo
+
+-type ICMPv6Filter C.struct_icmp6_filter
++type Linger C.struct_linger
++
++type Msghdr C.struct_msghdr
+
+ const (
+ SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in
+@@ -153,87 +164,74 @@ const (
+ SizeofLinger = C.sizeof_struct_linger
+ SizeofIPMreq = C.sizeof_struct_ip_mreq
+ SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq
++ SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo
+ SizeofMsghdr = C.sizeof_struct_msghdr
+ SizeofCmsghdr = C.sizeof_struct_cmsghdr
+- SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo
+- SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo
+ SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter
+ )
+
+-// Ptrace requests
++// Routing and interface messages
+
+ const (
+- PTRACE_TRACEME = C.PT_TRACE_ME
+- PTRACE_CONT = C.PT_CONTINUE
+- PTRACE_KILL = C.PT_KILL
++ SizeofIfMsghdr = C.sizeof_struct_if_msghdr
+ )
+
+-// Events (kqueue, kevent)
+-
+-type Kevent_t C.struct_kevent
++type IfMsgHdr C.struct_if_msghdr
+
+-// Select
++// Misc
+
+ type FdSet C.fd_set
+
+-// Routing and interface messages
++type Utsname C.struct_utsname
+
+-const (
+- SizeofIfMsghdr = C.sizeof_struct_if_msghdr
+- SizeofIfData = C.sizeof_struct_if_data
+- SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr
+- SizeofIfAnnounceMsghdr = C.sizeof_struct_if_announcemsghdr
+- SizeofRtMsghdr = C.sizeof_struct_rt_msghdr
+- SizeofRtMetrics = C.sizeof_struct_rt_metrics
+-)
++type Ustat_t C.struct_ustat
+
+-type IfMsghdr C.struct_if_msghdr
++type Sigset_t C.sigset_t
+
+-type IfData C.struct_if_data
++const (
++ AT_FDCWD = C.AT_FDCWD
++ AT_REMOVEDIR = C.AT_REMOVEDIR
++ AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
++)
+
+-type IfaMsghdr C.struct_ifa_msghdr
++// Terminal handling
+
+-type IfAnnounceMsghdr C.struct_if_announcemsghdr
++type Termios C.struct_termios
+
+-type RtMsghdr C.struct_rt_msghdr
++type Termio C.struct_termio
+
+-type RtMetrics C.struct_rt_metrics
++type Winsize C.struct_winsize
+
+-type Mclpool C.struct_mclpool
++//poll
+
+-// Berkeley packet filter
++type PollFd struct {
++ Fd int32
++ Events uint16
++ Revents uint16
++}
+
+ const (
+- SizeofBpfVersion = C.sizeof_struct_bpf_version
+- SizeofBpfStat = C.sizeof_struct_bpf_stat
+- SizeofBpfProgram = C.sizeof_struct_bpf_program
+- SizeofBpfInsn = C.sizeof_struct_bpf_insn
+- SizeofBpfHdr = C.sizeof_struct_bpf_hdr
++ POLLERR = C.POLLERR
++ POLLHUP = C.POLLHUP
++ POLLIN = C.POLLIN
++ POLLNVAL = C.POLLNVAL
++ POLLOUT = C.POLLOUT
++ POLLPRI = C.POLLPRI
++ POLLRDBAND = C.POLLRDBAND
++ POLLRDNORM = C.POLLRDNORM
++ POLLWRBAND = C.POLLWRBAND
++ POLLWRNORM = C.POLLWRNORM
+ )
+
+-type BpfVersion C.struct_bpf_version
+-
+-type BpfStat C.struct_bpf_stat
+-
+-type BpfProgram C.struct_bpf_program
+-
+-type BpfInsn C.struct_bpf_insn
+-
+-type BpfHdr C.struct_bpf_hdr
+-
+-type BpfTimeval C.struct_bpf_timeval
++//flock_t
+
+-// Terminal handling
+-
+-type Termios C.struct_termios
++type Flock_t C.struct_flock64
+
+-// fchmodat-like syscalls.
++// Statfs
+
+-const (
+- AT_FDCWD = C.AT_FDCWD
+- AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
+-)
++type Fsid_t C.struct_fsid_t
++type Fsid64_t C.struct_fsid64_t
+
+-// Sysctl
++type Statfs_t C.struct_statfs
+
+-type Sysctlnode C.struct_sysctlnode
++const RNDGETENTCNT = 0x80045200
+diff --git a/vendor/golang.org/x/sys/unix/types_darwin.go b/vendor/golang.org/x/sys/unix/types_darwin.go
+index 415124d4..155c2e69 100644
+--- a/vendor/golang.org/x/sys/unix/types_darwin.go
++++ b/vendor/golang.org/x/sys/unix/types_darwin.go
+@@ -19,6 +19,7 @@ package unix
+ #define _DARWIN_USE_64_BIT_INODE
+ #include <dirent.h>
+ #include <fcntl.h>
++#include <poll.h>
+ #include <signal.h>
+ #include <termios.h>
+ #include <unistd.h>
+@@ -38,6 +39,7 @@ package unix
+ #include <sys/types.h>
+ #include <sys/uio.h>
+ #include <sys/un.h>
++#include <sys/utsname.h>
+ #include <sys/wait.h>
+ #include <net/bpf.h>
+ #include <net/if.h>
+@@ -68,14 +70,14 @@ struct sockaddr_any {
+ */
+ import "C"
+
+-// Machine characteristics; for internal use.
++// Machine characteristics
+
+ const (
+- sizeofPtr = C.sizeofPtr
+- sizeofShort = C.sizeof_short
+- sizeofInt = C.sizeof_int
+- sizeofLong = C.sizeof_long
+- sizeofLongLong = C.sizeof_longlong
++ SizeofPtr = C.sizeofPtr
++ SizeofShort = C.sizeof_short
++ SizeofInt = C.sizeof_int
++ SizeofLong = C.sizeof_long
++ SizeofLongLong = C.sizeof_longlong
+ )
+
+ // Basic types
+@@ -252,3 +254,30 @@ const (
+ AT_SYMLINK_FOLLOW = C.AT_SYMLINK_FOLLOW
+ AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
+ )
++
++// poll
++
++type PollFd C.struct_pollfd
++
++const (
++ POLLERR = C.POLLERR
++ POLLHUP = C.POLLHUP
++ POLLIN = C.POLLIN
++ POLLNVAL = C.POLLNVAL
++ POLLOUT = C.POLLOUT
++ POLLPRI = C.POLLPRI
++ POLLRDBAND = C.POLLRDBAND
++ POLLRDNORM = C.POLLRDNORM
++ POLLWRBAND = C.POLLWRBAND
++ POLLWRNORM = C.POLLWRNORM
++)
++
++// uname
++
++type Utsname C.struct_utsname
++
++// Clockinfo
++
++const SizeofClockinfo = C.sizeof_struct_clockinfo
++
++type Clockinfo C.struct_clockinfo
+diff --git a/vendor/golang.org/x/sys/unix/types_dragonfly.go b/vendor/golang.org/x/sys/unix/types_dragonfly.go
+index 80b27781..6574f6b6 100644
+--- a/vendor/golang.org/x/sys/unix/types_dragonfly.go
++++ b/vendor/golang.org/x/sys/unix/types_dragonfly.go
+@@ -17,6 +17,7 @@ package unix
+ #define KERNEL
+ #include <dirent.h>
+ #include <fcntl.h>
++#include <poll.h>
+ #include <signal.h>
+ #include <termios.h>
+ #include <stdio.h>
+@@ -34,6 +35,7 @@ package unix
+ #include <sys/time.h>
+ #include <sys/types.h>
+ #include <sys/un.h>
++#include <sys/utsname.h>
+ #include <sys/wait.h>
+ #include <net/bpf.h>
+ #include <net/if.h>
+@@ -63,14 +65,14 @@ struct sockaddr_any {
+ */
+ import "C"
+
+-// Machine characteristics; for internal use.
++// Machine characteristics
+
+ const (
+- sizeofPtr = C.sizeofPtr
+- sizeofShort = C.sizeof_short
+- sizeofInt = C.sizeof_int
+- sizeofLong = C.sizeof_long
+- sizeofLongLong = C.sizeof_longlong
++ SizeofPtr = C.sizeofPtr
++ SizeofShort = C.sizeof_short
++ SizeofInt = C.sizeof_int
++ SizeofLong = C.sizeof_long
++ SizeofLongLong = C.sizeof_longlong
+ )
+
+ // Basic types
+@@ -98,23 +100,6 @@ type _Gid_t C.gid_t
+
+ // Files
+
+-const ( // Directory mode bits
+- S_IFMT = C.S_IFMT
+- S_IFIFO = C.S_IFIFO
+- S_IFCHR = C.S_IFCHR
+- S_IFDIR = C.S_IFDIR
+- S_IFBLK = C.S_IFBLK
+- S_IFREG = C.S_IFREG
+- S_IFLNK = C.S_IFLNK
+- S_IFSOCK = C.S_IFSOCK
+- S_ISUID = C.S_ISUID
+- S_ISGID = C.S_ISGID
+- S_ISVTX = C.S_ISVTX
+- S_IRUSR = C.S_IRUSR
+- S_IWUSR = C.S_IWUSR
+- S_IXUSR = C.S_IXUSR
+-)
+-
+ type Stat_t C.struct_stat
+
+ type Statfs_t C.struct_statfs
+@@ -125,6 +110,12 @@ type Dirent C.struct_dirent
+
+ type Fsid C.struct_fsid
+
++// File system limits
++
++const (
++ PathMax = C.PATH_MAX
++)
++
+ // Sockets
+
+ type RawSockaddrInet4 C.struct_sockaddr_in
+@@ -241,9 +232,38 @@ type BpfHdr C.struct_bpf_hdr
+
+ type Termios C.struct_termios
+
++type Winsize C.struct_winsize
++
+ // fchmodat-like syscalls.
+
+ const (
+ AT_FDCWD = C.AT_FDCWD
+ AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
+ )
++
++// poll
++
++type PollFd C.struct_pollfd
++
++const (
++ POLLERR = C.POLLERR
++ POLLHUP = C.POLLHUP
++ POLLIN = C.POLLIN
++ POLLNVAL = C.POLLNVAL
++ POLLOUT = C.POLLOUT
++ POLLPRI = C.POLLPRI
++ POLLRDBAND = C.POLLRDBAND
++ POLLRDNORM = C.POLLRDNORM
++ POLLWRBAND = C.POLLWRBAND
++ POLLWRNORM = C.POLLWRNORM
++)
++
++// Uname
++
++type Utsname C.struct_utsname
++
++// Clockinfo
++
++const SizeofClockinfo = C.sizeof_struct_clockinfo
++
++type Clockinfo C.struct_clockinfo
+diff --git a/vendor/golang.org/x/sys/unix/types_freebsd.go b/vendor/golang.org/x/sys/unix/types_freebsd.go
+index 934fd7ac..c6fde424 100644
+--- a/vendor/golang.org/x/sys/unix/types_freebsd.go
++++ b/vendor/golang.org/x/sys/unix/types_freebsd.go
+@@ -14,14 +14,19 @@ Input to cgo -godefs. See README.md
+ package unix
+
+ /*
+-#define KERNEL
++#define _WANT_FREEBSD11_STAT 1
++#define _WANT_FREEBSD11_STATFS 1
++#define _WANT_FREEBSD11_DIRENT 1
++#define _WANT_FREEBSD11_KEVENT 1
++
+ #include <dirent.h>
+ #include <fcntl.h>
++#include <poll.h>
+ #include <signal.h>
+ #include <termios.h>
+ #include <stdio.h>
+ #include <unistd.h>
+-#include <sys/capability.h>
++#include <sys/capsicum.h>
+ #include <sys/event.h>
+ #include <sys/mman.h>
+ #include <sys/mount.h>
+@@ -35,6 +40,7 @@ package unix
+ #include <sys/time.h>
+ #include <sys/types.h>
+ #include <sys/un.h>
++#include <sys/utsname.h>
+ #include <sys/wait.h>
+ #include <net/bpf.h>
+ #include <net/if.h>
+@@ -61,50 +67,6 @@ struct sockaddr_any {
+ char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)];
+ };
+
+-// This structure is a duplicate of stat on FreeBSD 8-STABLE.
+-// See /usr/include/sys/stat.h.
+-struct stat8 {
+-#undef st_atimespec st_atim
+-#undef st_mtimespec st_mtim
+-#undef st_ctimespec st_ctim
+-#undef st_birthtimespec st_birthtim
+- __dev_t st_dev;
+- ino_t st_ino;
+- mode_t st_mode;
+- nlink_t st_nlink;
+- uid_t st_uid;
+- gid_t st_gid;
+- __dev_t st_rdev;
+-#if __BSD_VISIBLE
+- struct timespec st_atimespec;
+- struct timespec st_mtimespec;
+- struct timespec st_ctimespec;
+-#else
+- time_t st_atime;
+- long __st_atimensec;
+- time_t st_mtime;
+- long __st_mtimensec;
+- time_t st_ctime;
+- long __st_ctimensec;
+-#endif
+- off_t st_size;
+- blkcnt_t st_blocks;
+- blksize_t st_blksize;
+- fflags_t st_flags;
+- __uint32_t st_gen;
+- __int32_t st_lspare;
+-#if __BSD_VISIBLE
+- struct timespec st_birthtimespec;
+- unsigned int :(8 / 2) * (16 - (int)sizeof(struct timespec));
+- unsigned int :(8 / 2) * (16 - (int)sizeof(struct timespec));
+-#else
+- time_t st_birthtime;
+- long st_birthtimensec;
+- unsigned int :(8 / 2) * (16 - (int)sizeof(struct __timespec));
+- unsigned int :(8 / 2) * (16 - (int)sizeof(struct __timespec));
+-#endif
+-};
+-
+ // This structure is a duplicate of if_data on FreeBSD 8-STABLE.
+ // See /usr/include/net/if.h.
+ struct if_data8 {
+@@ -152,14 +114,14 @@ struct if_msghdr8 {
+ */
+ import "C"
+
+-// Machine characteristics; for internal use.
++// Machine characteristics
+
+ const (
+- sizeofPtr = C.sizeofPtr
+- sizeofShort = C.sizeof_short
+- sizeofInt = C.sizeof_int
+- sizeofLong = C.sizeof_long
+- sizeofLongLong = C.sizeof_longlong
++ SizeofPtr = C.sizeofPtr
++ SizeofShort = C.sizeof_short
++ SizeofInt = C.sizeof_int
++ SizeofLong = C.sizeof_long
++ SizeofLongLong = C.sizeof_longlong
+ )
+
+ // Basic types
+@@ -187,33 +149,33 @@ type _Gid_t C.gid_t
+
+ // Files
+
+-const ( // Directory mode bits
+- S_IFMT = C.S_IFMT
+- S_IFIFO = C.S_IFIFO
+- S_IFCHR = C.S_IFCHR
+- S_IFDIR = C.S_IFDIR
+- S_IFBLK = C.S_IFBLK
+- S_IFREG = C.S_IFREG
+- S_IFLNK = C.S_IFLNK
+- S_IFSOCK = C.S_IFSOCK
+- S_ISUID = C.S_ISUID
+- S_ISGID = C.S_ISGID
+- S_ISVTX = C.S_ISVTX
+- S_IRUSR = C.S_IRUSR
+- S_IWUSR = C.S_IWUSR
+- S_IXUSR = C.S_IXUSR
++const (
++ _statfsVersion = C.STATFS_VERSION
++ _dirblksiz = C.DIRBLKSIZ
+ )
+
+-type Stat_t C.struct_stat8
++type Stat_t C.struct_stat
++
++type stat_freebsd11_t C.struct_freebsd11_stat
+
+ type Statfs_t C.struct_statfs
+
++type statfs_freebsd11_t C.struct_freebsd11_statfs
++
+ type Flock_t C.struct_flock
+
+ type Dirent C.struct_dirent
+
++type dirent_freebsd11 C.struct_freebsd11_dirent
++
+ type Fsid C.struct_fsid
+
++// File system limits
++
++const (
++ PathMax = C.PATH_MAX
++)
++
+ // Advice to Fadvise
+
+ const (
+@@ -281,14 +243,58 @@ const (
+ // Ptrace requests
+
+ const (
+- PTRACE_TRACEME = C.PT_TRACE_ME
+- PTRACE_CONT = C.PT_CONTINUE
+- PTRACE_KILL = C.PT_KILL
++ PTRACE_ATTACH = C.PT_ATTACH
++ PTRACE_CONT = C.PT_CONTINUE
++ PTRACE_DETACH = C.PT_DETACH
++ PTRACE_GETFPREGS = C.PT_GETFPREGS
++ PTRACE_GETFSBASE = C.PT_GETFSBASE
++ PTRACE_GETLWPLIST = C.PT_GETLWPLIST
++ PTRACE_GETNUMLWPS = C.PT_GETNUMLWPS
++ PTRACE_GETREGS = C.PT_GETREGS
++ PTRACE_GETXSTATE = C.PT_GETXSTATE
++ PTRACE_IO = C.PT_IO
++ PTRACE_KILL = C.PT_KILL
++ PTRACE_LWPEVENTS = C.PT_LWP_EVENTS
++ PTRACE_LWPINFO = C.PT_LWPINFO
++ PTRACE_SETFPREGS = C.PT_SETFPREGS
++ PTRACE_SETREGS = C.PT_SETREGS
++ PTRACE_SINGLESTEP = C.PT_STEP
++ PTRACE_TRACEME = C.PT_TRACE_ME
++)
++
++const (
++ PIOD_READ_D = C.PIOD_READ_D
++ PIOD_WRITE_D = C.PIOD_WRITE_D
++ PIOD_READ_I = C.PIOD_READ_I
++ PIOD_WRITE_I = C.PIOD_WRITE_I
++)
++
++const (
++ PL_FLAG_BORN = C.PL_FLAG_BORN
++ PL_FLAG_EXITED = C.PL_FLAG_EXITED
++ PL_FLAG_SI = C.PL_FLAG_SI
++)
++
++const (
++ TRAP_BRKPT = C.TRAP_BRKPT
++ TRAP_TRACE = C.TRAP_TRACE
+ )
+
++type PtraceLwpInfoStruct C.struct_ptrace_lwpinfo
++
++type __Siginfo C.struct___siginfo
++
++type Sigset_t C.sigset_t
++
++type Reg C.struct_reg
++
++type FpReg C.struct_fpreg
++
++type PtraceIoDesc C.struct_ptrace_io_desc
++
+ // Events (kqueue, kevent)
+
+-type Kevent_t C.struct_kevent
++type Kevent_t C.struct_kevent_freebsd11
+
+ // Select
+
+@@ -367,6 +373,34 @@ const (
+ AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
+ )
+
++// poll
++
++type PollFd C.struct_pollfd
++
++const (
++ POLLERR = C.POLLERR
++ POLLHUP = C.POLLHUP
++ POLLIN = C.POLLIN
++ POLLINIGNEOF = C.POLLINIGNEOF
++ POLLNVAL = C.POLLNVAL
++ POLLOUT = C.POLLOUT
++ POLLPRI = C.POLLPRI
++ POLLRDBAND = C.POLLRDBAND
++ POLLRDNORM = C.POLLRDNORM
++ POLLWRBAND = C.POLLWRBAND
++ POLLWRNORM = C.POLLWRNORM
++)
++
+ // Capabilities
+
+ type CapRights C.struct_cap_rights
++
++// Uname
++
++type Utsname C.struct_utsname
++
++// Clockinfo
++
++const SizeofClockinfo = C.sizeof_struct_clockinfo
++
++type Clockinfo C.struct_clockinfo
+diff --git a/vendor/golang.org/x/sys/unix/types_netbsd.go b/vendor/golang.org/x/sys/unix/types_netbsd.go
+index cb95c80a..0a81aadb 100644
+--- a/vendor/golang.org/x/sys/unix/types_netbsd.go
++++ b/vendor/golang.org/x/sys/unix/types_netbsd.go
+@@ -17,6 +17,7 @@ package unix
+ #define KERNEL
+ #include <dirent.h>
+ #include <fcntl.h>
++#include <poll.h>
+ #include <signal.h>
+ #include <termios.h>
+ #include <stdio.h>
+@@ -32,10 +33,12 @@ package unix
+ #include <sys/signal.h>
+ #include <sys/socket.h>
+ #include <sys/stat.h>
++#include <sys/statvfs.h>
+ #include <sys/sysctl.h>
+ #include <sys/time.h>
+ #include <sys/uio.h>
+ #include <sys/un.h>
++#include <sys/utsname.h>
+ #include <sys/wait.h>
+ #include <net/bpf.h>
+ #include <net/if.h>
+@@ -65,14 +68,14 @@ struct sockaddr_any {
+ */
+ import "C"
+
+-// Machine characteristics; for internal use.
++// Machine characteristics
+
+ const (
+- sizeofPtr = C.sizeofPtr
+- sizeofShort = C.sizeof_short
+- sizeofInt = C.sizeof_int
+- sizeofLong = C.sizeof_long
+- sizeofLongLong = C.sizeof_longlong
++ SizeofPtr = C.sizeofPtr
++ SizeofShort = C.sizeof_short
++ SizeofInt = C.sizeof_int
++ SizeofLong = C.sizeof_long
++ SizeofLongLong = C.sizeof_longlong
+ )
+
+ // Basic types
+@@ -104,12 +107,38 @@ type Stat_t C.struct_stat
+
+ type Statfs_t C.struct_statfs
+
++type Statvfs_t C.struct_statvfs
++
+ type Flock_t C.struct_flock
+
+ type Dirent C.struct_dirent
+
+ type Fsid C.fsid_t
+
++// File system limits
++
++const (
++ PathMax = C.PATH_MAX
++)
++
++// Fstatvfs/Statvfs flags
++
++const (
++ ST_WAIT = C.ST_WAIT
++ ST_NOWAIT = C.ST_NOWAIT
++)
++
++// Advice to Fadvise
++
++const (
++ FADV_NORMAL = C.POSIX_FADV_NORMAL
++ FADV_RANDOM = C.POSIX_FADV_RANDOM
++ FADV_SEQUENTIAL = C.POSIX_FADV_SEQUENTIAL
++ FADV_WILLNEED = C.POSIX_FADV_WILLNEED
++ FADV_DONTNEED = C.POSIX_FADV_DONTNEED
++ FADV_NOREUSE = C.POSIX_FADV_NOREUSE
++)
++
+ // Sockets
+
+ type RawSockaddrInet4 C.struct_sockaddr_in
+@@ -227,13 +256,45 @@ type BpfTimeval C.struct_bpf_timeval
+
+ type Termios C.struct_termios
+
++type Winsize C.struct_winsize
++
++type Ptmget C.struct_ptmget
++
+ // fchmodat-like syscalls.
+
+ const (
+ AT_FDCWD = C.AT_FDCWD
++ AT_SYMLINK_FOLLOW = C.AT_SYMLINK_FOLLOW
+ AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
+ )
+
++// poll
++
++type PollFd C.struct_pollfd
++
++const (
++ POLLERR = C.POLLERR
++ POLLHUP = C.POLLHUP
++ POLLIN = C.POLLIN
++ POLLNVAL = C.POLLNVAL
++ POLLOUT = C.POLLOUT
++ POLLPRI = C.POLLPRI
++ POLLRDBAND = C.POLLRDBAND
++ POLLRDNORM = C.POLLRDNORM
++ POLLWRBAND = C.POLLWRBAND
++ POLLWRNORM = C.POLLWRNORM
++)
++
+ // Sysctl
+
+ type Sysctlnode C.struct_sysctlnode
++
++// Uname
++
++type Utsname C.struct_utsname
++
++// Clockinfo
++
++const SizeofClockinfo = C.sizeof_struct_clockinfo
++
++type Clockinfo C.struct_clockinfo
+diff --git a/vendor/golang.org/x/sys/unix/types_openbsd.go b/vendor/golang.org/x/sys/unix/types_openbsd.go
+index 392da69b..775cb57d 100644
+--- a/vendor/golang.org/x/sys/unix/types_openbsd.go
++++ b/vendor/golang.org/x/sys/unix/types_openbsd.go
+@@ -17,6 +17,7 @@ package unix
+ #define KERNEL
+ #include <dirent.h>
+ #include <fcntl.h>
++#include <poll.h>
+ #include <signal.h>
+ #include <termios.h>
+ #include <stdio.h>
+@@ -35,7 +36,9 @@ package unix
+ #include <sys/time.h>
+ #include <sys/uio.h>
+ #include <sys/un.h>
++#include <sys/utsname.h>
+ #include <sys/wait.h>
++#include <uvm/uvmexp.h>
+ #include <net/bpf.h>
+ #include <net/if.h>
+ #include <net/if_dl.h>
+@@ -64,14 +67,14 @@ struct sockaddr_any {
+ */
+ import "C"
+
+-// Machine characteristics; for internal use.
++// Machine characteristics
+
+ const (
+- sizeofPtr = C.sizeofPtr
+- sizeofShort = C.sizeof_short
+- sizeofInt = C.sizeof_int
+- sizeofLong = C.sizeof_long
+- sizeofLongLong = C.sizeof_longlong
++ SizeofPtr = C.sizeofPtr
++ SizeofShort = C.sizeof_short
++ SizeofInt = C.sizeof_int
++ SizeofLong = C.sizeof_long
++ SizeofLongLong = C.sizeof_longlong
+ )
+
+ // Basic types
+@@ -99,23 +102,6 @@ type _Gid_t C.gid_t
+
+ // Files
+
+-const ( // Directory mode bits
+- S_IFMT = C.S_IFMT
+- S_IFIFO = C.S_IFIFO
+- S_IFCHR = C.S_IFCHR
+- S_IFDIR = C.S_IFDIR
+- S_IFBLK = C.S_IFBLK
+- S_IFREG = C.S_IFREG
+- S_IFLNK = C.S_IFLNK
+- S_IFSOCK = C.S_IFSOCK
+- S_ISUID = C.S_ISUID
+- S_ISGID = C.S_ISGID
+- S_ISVTX = C.S_ISVTX
+- S_IRUSR = C.S_IRUSR
+- S_IWUSR = C.S_IWUSR
+- S_IXUSR = C.S_IXUSR
+-)
+-
+ type Stat_t C.struct_stat
+
+ type Statfs_t C.struct_statfs
+@@ -126,6 +112,12 @@ type Dirent C.struct_dirent
+
+ type Fsid C.fsid_t
+
++// File system limits
++
++const (
++ PathMax = C.PATH_MAX
++)
++
+ // Sockets
+
+ type RawSockaddrInet4 C.struct_sockaddr_in
+@@ -243,9 +235,49 @@ type BpfTimeval C.struct_bpf_timeval
+
+ type Termios C.struct_termios
+
++type Winsize C.struct_winsize
++
+ // fchmodat-like syscalls.
+
+ const (
+ AT_FDCWD = C.AT_FDCWD
++ AT_SYMLINK_FOLLOW = C.AT_SYMLINK_FOLLOW
+ AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
+ )
++
++// poll
++
++type PollFd C.struct_pollfd
++
++const (
++ POLLERR = C.POLLERR
++ POLLHUP = C.POLLHUP
++ POLLIN = C.POLLIN
++ POLLNVAL = C.POLLNVAL
++ POLLOUT = C.POLLOUT
++ POLLPRI = C.POLLPRI
++ POLLRDBAND = C.POLLRDBAND
++ POLLRDNORM = C.POLLRDNORM
++ POLLWRBAND = C.POLLWRBAND
++ POLLWRNORM = C.POLLWRNORM
++)
++
++// Signal Sets
++
++type Sigset_t C.sigset_t
++
++// Uname
++
++type Utsname C.struct_utsname
++
++// Uvmexp
++
++const SizeofUvmexp = C.sizeof_struct_uvmexp
++
++type Uvmexp C.struct_uvmexp
++
++// Clockinfo
++
++const SizeofClockinfo = C.sizeof_struct_clockinfo
++
++type Clockinfo C.struct_clockinfo
+diff --git a/vendor/golang.org/x/sys/unix/types_solaris.go b/vendor/golang.org/x/sys/unix/types_solaris.go
+index 393c7f04..d713f09e 100644
+--- a/vendor/golang.org/x/sys/unix/types_solaris.go
++++ b/vendor/golang.org/x/sys/unix/types_solaris.go
+@@ -24,6 +24,7 @@ package unix
+ #include <fcntl.h>
+ #include <netdb.h>
+ #include <limits.h>
++#include <poll.h>
+ #include <signal.h>
+ #include <termios.h>
+ #include <termio.h>
+@@ -74,14 +75,14 @@ struct sockaddr_any {
+ */
+ import "C"
+
+-// Machine characteristics; for internal use.
++// Machine characteristics
+
+ const (
+- sizeofPtr = C.sizeofPtr
+- sizeofShort = C.sizeof_short
+- sizeofInt = C.sizeof_int
+- sizeofLong = C.sizeof_long
+- sizeofLongLong = C.sizeof_longlong
++ SizeofPtr = C.sizeofPtr
++ SizeofShort = C.sizeof_short
++ SizeofInt = C.sizeof_int
++ SizeofLong = C.sizeof_long
++ SizeofLongLong = C.sizeof_longlong
+ PathMax = C.PATH_MAX
+ MaxHostNameLen = C.MAXHOSTNAMELEN
+ )
+@@ -117,23 +118,6 @@ type _Gid_t C.gid_t
+
+ // Files
+
+-const ( // Directory mode bits
+- S_IFMT = C.S_IFMT
+- S_IFIFO = C.S_IFIFO
+- S_IFCHR = C.S_IFCHR
+- S_IFDIR = C.S_IFDIR
+- S_IFBLK = C.S_IFBLK
+- S_IFREG = C.S_IFREG
+- S_IFLNK = C.S_IFLNK
+- S_IFSOCK = C.S_IFSOCK
+- S_ISUID = C.S_ISUID
+- S_ISGID = C.S_ISGID
+- S_ISVTX = C.S_ISVTX
+- S_IRUSR = C.S_IRUSR
+- S_IWUSR = C.S_IWUSR
+- S_IXUSR = C.S_IXUSR
+-)
+-
+ type Stat_t C.struct_stat
+
+ type Flock_t C.struct_flock
+@@ -174,6 +158,8 @@ type Msghdr C.struct_msghdr
+
+ type Cmsghdr C.struct_cmsghdr
+
++type Inet4Pktinfo C.struct_in_pktinfo
++
+ type Inet6Pktinfo C.struct_in6_pktinfo
+
+ type IPv6MTUInfo C.struct_ip6_mtuinfo
+@@ -191,6 +177,7 @@ const (
+ SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq
+ SizeofMsghdr = C.sizeof_struct_msghdr
+ SizeofCmsghdr = C.sizeof_struct_cmsghdr
++ SizeofInet4Pktinfo = C.sizeof_struct_in_pktinfo
+ SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo
+ SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo
+ SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter
+@@ -256,10 +243,6 @@ type BpfTimeval C.struct_bpf_timeval
+
+ type BpfHdr C.struct_bpf_hdr
+
+-// sysconf information
+-
+-const _SC_PAGESIZE = C._SC_PAGESIZE
+-
+ // Terminal handling
+
+ type Termios C.struct_termios
+@@ -267,3 +250,20 @@ type Termios C.struct_termios
+ type Termio C.struct_termio
+
+ type Winsize C.struct_winsize
++
++// poll
++
++type PollFd C.struct_pollfd
++
++const (
++ POLLERR = C.POLLERR
++ POLLHUP = C.POLLHUP
++ POLLIN = C.POLLIN
++ POLLNVAL = C.POLLNVAL
++ POLLOUT = C.POLLOUT
++ POLLPRI = C.POLLPRI
++ POLLRDBAND = C.POLLRDBAND
++ POLLRDNORM = C.POLLRDNORM
++ POLLWRBAND = C.POLLWRBAND
++ POLLWRNORM = C.POLLWRNORM
++)
+diff --git a/vendor/golang.org/x/sys/unix/unveil_openbsd.go b/vendor/golang.org/x/sys/unix/unveil_openbsd.go
+new file mode 100644
+index 00000000..168d5ae7
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/unveil_openbsd.go
+@@ -0,0 +1,42 @@
++// Copyright 2018 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++package unix
++
++import (
++ "syscall"
++ "unsafe"
++)
++
++// Unveil implements the unveil syscall.
++// For more information see unveil(2).
++// Note that the special case of blocking further
++// unveil calls is handled by UnveilBlock.
++func Unveil(path string, flags string) error {
++ pathPtr, err := syscall.BytePtrFromString(path)
++ if err != nil {
++ return err
++ }
++ flagsPtr, err := syscall.BytePtrFromString(flags)
++ if err != nil {
++ return err
++ }
++ _, _, e := syscall.Syscall(SYS_UNVEIL, uintptr(unsafe.Pointer(pathPtr)), uintptr(unsafe.Pointer(flagsPtr)), 0)
++ if e != 0 {
++ return e
++ }
++ return nil
++}
++
++// UnveilBlock blocks future unveil calls.
++// For more information see unveil(2).
++func UnveilBlock() error {
++ // Both pointers must be nil.
++ var pathUnsafe, flagsUnsafe unsafe.Pointer
++ _, _, e := syscall.Syscall(SYS_UNVEIL, uintptr(pathUnsafe), uintptr(flagsUnsafe), 0)
++ if e != 0 {
++ return e
++ }
++ return nil
++}
+diff --git a/vendor/golang.org/x/sys/unix/xattr_bsd.go b/vendor/golang.org/x/sys/unix/xattr_bsd.go
+new file mode 100644
+index 00000000..30c1d71f
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/xattr_bsd.go
+@@ -0,0 +1,240 @@
++// Copyright 2018 The Go Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style
++// license that can be found in the LICENSE file.
++
++// +build freebsd netbsd
++
++package unix
++
++import (
++ "strings"
++ "unsafe"
++)
++
++// Derive extattr namespace and attribute name
++
++func xattrnamespace(fullattr string) (ns int, attr string, err error) {
++ s := strings.IndexByte(fullattr, '.')
++ if s == -1 {
++ return -1, "", ENOATTR
++ }
++
++ namespace := fullattr[0:s]
++ attr = fullattr[s+1:]
++
++ switch namespace {
++ case "user":
++ return EXTATTR_NAMESPACE_USER, attr, nil
++ case "system":
++ return EXTATTR_NAMESPACE_SYSTEM, attr, nil
++ default:
++ return -1, "", ENOATTR
++ }
++}
++
++func initxattrdest(dest []byte, idx int) (d unsafe.Pointer) {
++ if len(dest) > idx {
++ return unsafe.Pointer(&dest[idx])
++ } else {
++ return unsafe.Pointer(_zero)
++ }
++}
++
++// FreeBSD and NetBSD implement their own syscalls to handle extended attributes
++
++func Getxattr(file string, attr string, dest []byte) (sz int, err error) {
++ d := initxattrdest(dest, 0)
++ destsize := len(dest)
++
++ nsid, a, err := xattrnamespace(attr)
++ if err != nil {
++ return -1, err
++ }
++
++ return ExtattrGetFile(file, nsid, a, uintptr(d), destsize)
++}
++
++func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {
++ d := initxattrdest(dest, 0)
++ destsize := len(dest)
++
++ nsid, a, err := xattrnamespace(attr)
++ if err != nil {
++ return -1, err
++ }
++
++ return ExtattrGetFd(fd, nsid, a, uintptr(d), destsize)
++}
++
++func Lgetxattr(link string, attr string, dest []byte) (sz int, err error) {
++ d := initxattrdest(dest, 0)
++ destsize := len(dest)
++
++ nsid, a, err := xattrnamespace(attr)
++ if err != nil {
++ return -1, err
++ }
++
++ return ExtattrGetLink(link, nsid, a, uintptr(d), destsize)
++}
++
++// flags are unused on FreeBSD
++
++func Fsetxattr(fd int, attr string, data []byte, flags int) (err error) {
++ var d unsafe.Pointer
++ if len(data) > 0 {
++ d = unsafe.Pointer(&data[0])
++ }
++ datasiz := len(data)
++
++ nsid, a, err := xattrnamespace(attr)
++ if err != nil {
++ return
++ }
++
++ _, err = ExtattrSetFd(fd, nsid, a, uintptr(d), datasiz)
++ return
++}
++
++func Setxattr(file string, attr string, data []byte, flags int) (err error) {
++ var d unsafe.Pointer
++ if len(data) > 0 {
++ d = unsafe.Pointer(&data[0])
++ }
++ datasiz := len(data)
++
++ nsid, a, err := xattrnamespace(attr)
++ if err != nil {
++ return
++ }
++
++ _, err = ExtattrSetFile(file, nsid, a, uintptr(d), datasiz)
++ return
++}
++
++func Lsetxattr(link string, attr string, data []byte, flags int) (err error) {
++ var d unsafe.Pointer
++ if len(data) > 0 {
++ d = unsafe.Pointer(&data[0])
++ }
++ datasiz := len(data)
++
++ nsid, a, err := xattrnamespace(attr)
++ if err != nil {
++ return
++ }
++
++ _, err = ExtattrSetLink(link, nsid, a, uintptr(d), datasiz)
++ return
++}
++
++func Removexattr(file string, attr string) (err error) {
++ nsid, a, err := xattrnamespace(attr)
++ if err != nil {
++ return
++ }
++
++ err = ExtattrDeleteFile(file, nsid, a)
++ return
++}
++
++func Fremovexattr(fd int, attr string) (err error) {
++ nsid, a, err := xattrnamespace(attr)
++ if err != nil {
++ return
++ }
++
++ err = ExtattrDeleteFd(fd, nsid, a)
++ return
++}
++
++func Lremovexattr(link string, attr string) (err error) {
++ nsid, a, err := xattrnamespace(attr)
++ if err != nil {
++ return
++ }
++
++ err = ExtattrDeleteLink(link, nsid, a)
++ return
++}
++
++func Listxattr(file string, dest []byte) (sz int, err error) {
++ d := initxattrdest(dest, 0)
++ destsiz := len(dest)
++
++ // FreeBSD won't allow you to list xattrs from multiple namespaces
++ s := 0
++ for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} {
++ stmp, e := ExtattrListFile(file, nsid, uintptr(d), destsiz)
++
++ /* Errors accessing system attrs are ignored so that
++ * we can implement the Linux-like behavior of omitting errors that
++ * we don't have read permissions on
++ *
++ * Linux will still error if we ask for user attributes on a file that
++ * we don't have read permissions on, so don't ignore those errors
++ */
++ if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER {
++ continue
++ } else if e != nil {
++ return s, e
++ }
++
++ s += stmp
++ destsiz -= s
++ if destsiz < 0 {
++ destsiz = 0
++ }
++ d = initxattrdest(dest, s)
++ }
++
++ return s, nil
++}
++
++func Flistxattr(fd int, dest []byte) (sz int, err error) {
++ d := initxattrdest(dest, 0)
++ destsiz := len(dest)
++
++ s := 0
++ for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} {
++ stmp, e := ExtattrListFd(fd, nsid, uintptr(d), destsiz)
++ if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER {
++ continue
++ } else if e != nil {
++ return s, e
++ }
++
++ s += stmp
++ destsiz -= s
++ if destsiz < 0 {
++ destsiz = 0
++ }
++ d = initxattrdest(dest, s)
++ }
++
++ return s, nil
++}
++
++func Llistxattr(link string, dest []byte) (sz int, err error) {
++ d := initxattrdest(dest, 0)
++ destsiz := len(dest)
++
++ s := 0
++ for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} {
++ stmp, e := ExtattrListLink(link, nsid, uintptr(d), destsiz)
++ if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER {
++ continue
++ } else if e != nil {
++ return s, e
++ }
++
++ s += stmp
++ destsiz -= s
++ if destsiz < 0 {
++ destsiz = 0
++ }
++ d = initxattrdest(dest, s)
++ }
++
++ return s, nil
++}
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go
+new file mode 100644
+index 00000000..104994bc
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go
+@@ -0,0 +1,1384 @@
++// mkerrors.sh -maix32
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build ppc,aix
++
++// Created by cgo -godefs - DO NOT EDIT
++// cgo -godefs -- -maix32 _const.go
++
++package unix
++
++import "syscall"
++
++const (
++ AF_APPLETALK = 0x10
++ AF_BYPASS = 0x19
++ AF_CCITT = 0xa
++ AF_CHAOS = 0x5
++ AF_DATAKIT = 0x9
++ AF_DECnet = 0xc
++ AF_DLI = 0xd
++ AF_ECMA = 0x8
++ AF_HYLINK = 0xf
++ AF_IMPLINK = 0x3
++ AF_INET = 0x2
++ AF_INET6 = 0x18
++ AF_INTF = 0x14
++ AF_ISO = 0x7
++ AF_LAT = 0xe
++ AF_LINK = 0x12
++ AF_LOCAL = 0x1
++ AF_MAX = 0x1e
++ AF_NDD = 0x17
++ AF_NETWARE = 0x16
++ AF_NS = 0x6
++ AF_OSI = 0x7
++ AF_PUP = 0x4
++ AF_RIF = 0x15
++ AF_ROUTE = 0x11
++ AF_SNA = 0xb
++ AF_UNIX = 0x1
++ AF_UNSPEC = 0x0
++ ALTWERASE = 0x400000
++ ARPHRD_802_3 = 0x6
++ ARPHRD_802_5 = 0x6
++ ARPHRD_ETHER = 0x1
++ ARPHRD_FDDI = 0x1
++ B0 = 0x0
++ B110 = 0x3
++ B1200 = 0x9
++ B134 = 0x4
++ B150 = 0x5
++ B1800 = 0xa
++ B19200 = 0xe
++ B200 = 0x6
++ B2400 = 0xb
++ B300 = 0x7
++ B38400 = 0xf
++ B4800 = 0xc
++ B50 = 0x1
++ B600 = 0x8
++ B75 = 0x2
++ B9600 = 0xd
++ BRKINT = 0x2
++ BS0 = 0x0
++ BS1 = 0x1000
++ BSDLY = 0x1000
++ CAP_AACCT = 0x6
++ CAP_ARM_APPLICATION = 0x5
++ CAP_BYPASS_RAC_VMM = 0x3
++ CAP_CLEAR = 0x0
++ CAP_CREDENTIALS = 0x7
++ CAP_EFFECTIVE = 0x1
++ CAP_EWLM_AGENT = 0x4
++ CAP_INHERITABLE = 0x2
++ CAP_MAXIMUM = 0x7
++ CAP_NUMA_ATTACH = 0x2
++ CAP_PERMITTED = 0x3
++ CAP_PROPAGATE = 0x1
++ CAP_PROPOGATE = 0x1
++ CAP_SET = 0x1
++ CBAUD = 0xf
++ CFLUSH = 0xf
++ CIBAUD = 0xf0000
++ CLOCAL = 0x800
++ CLOCK_MONOTONIC = 0xa
++ CLOCK_PROCESS_CPUTIME_ID = 0xb
++ CLOCK_REALTIME = 0x9
++ CLOCK_THREAD_CPUTIME_ID = 0xc
++ CR0 = 0x0
++ CR1 = 0x100
++ CR2 = 0x200
++ CR3 = 0x300
++ CRDLY = 0x300
++ CREAD = 0x80
++ CS5 = 0x0
++ CS6 = 0x10
++ CS7 = 0x20
++ CS8 = 0x30
++ CSIOCGIFCONF = -0x3ff796dc
++ CSIZE = 0x30
++ CSMAP_DIR = "/usr/lib/nls/csmap/"
++ CSTART = '\021'
++ CSTOP = '\023'
++ CSTOPB = 0x40
++ CSUSP = 0x1a
++ ECHO = 0x8
++ ECHOCTL = 0x20000
++ ECHOE = 0x10
++ ECHOK = 0x20
++ ECHOKE = 0x80000
++ ECHONL = 0x40
++ ECHOPRT = 0x40000
++ ECH_ICMPID = 0x2
++ ETHERNET_CSMACD = 0x6
++ EVENP = 0x80
++ EXCONTINUE = 0x0
++ EXDLOK = 0x3
++ EXIO = 0x2
++ EXPGIO = 0x0
++ EXRESUME = 0x2
++ EXRETURN = 0x1
++ EXSIG = 0x4
++ EXTA = 0xe
++ EXTB = 0xf
++ EXTRAP = 0x1
++ EYEC_RTENTRYA = 0x257274656e747241
++ EYEC_RTENTRYF = 0x257274656e747246
++ E_ACC = 0x0
++ FD_CLOEXEC = 0x1
++ FD_SETSIZE = 0xfffe
++ FF0 = 0x0
++ FF1 = 0x2000
++ FFDLY = 0x2000
++ FLUSHBAND = 0x40
++ FLUSHLOW = 0x8
++ FLUSHO = 0x100000
++ FLUSHR = 0x1
++ FLUSHRW = 0x3
++ FLUSHW = 0x2
++ F_CLOSEM = 0xa
++ F_DUP2FD = 0xe
++ F_DUPFD = 0x0
++ F_GETFD = 0x1
++ F_GETFL = 0x3
++ F_GETLK = 0x5
++ F_GETLK64 = 0xb
++ F_GETOWN = 0x8
++ F_LOCK = 0x1
++ F_OK = 0x0
++ F_RDLCK = 0x1
++ F_SETFD = 0x2
++ F_SETFL = 0x4
++ F_SETLK = 0x6
++ F_SETLK64 = 0xc
++ F_SETLKW = 0x7
++ F_SETLKW64 = 0xd
++ F_SETOWN = 0x9
++ F_TEST = 0x3
++ F_TLOCK = 0x2
++ F_TSTLK = 0xf
++ F_ULOCK = 0x0
++ F_UNLCK = 0x3
++ F_WRLCK = 0x2
++ HUPCL = 0x400
++ IBSHIFT = 0x10
++ ICANON = 0x2
++ ICMP6_FILTER = 0x26
++ ICMP6_SEC_SEND_DEL = 0x46
++ ICMP6_SEC_SEND_GET = 0x47
++ ICMP6_SEC_SEND_SET = 0x44
++ ICMP6_SEC_SEND_SET_CGA_ADDR = 0x45
++ ICRNL = 0x100
++ IEXTEN = 0x200000
++ IFA_FIRSTALIAS = 0x2000
++ IFA_ROUTE = 0x1
++ IFF_64BIT = 0x4000000
++ IFF_ALLCAST = 0x20000
++ IFF_ALLMULTI = 0x200
++ IFF_BPF = 0x8000000
++ IFF_BRIDGE = 0x40000
++ IFF_BROADCAST = 0x2
++ IFF_CANTCHANGE = 0x80c52
++ IFF_CHECKSUM_OFFLOAD = 0x10000000
++ IFF_D1 = 0x8000
++ IFF_D2 = 0x4000
++ IFF_D3 = 0x2000
++ IFF_D4 = 0x1000
++ IFF_DEBUG = 0x4
++ IFF_DEVHEALTH = 0x4000
++ IFF_DO_HW_LOOPBACK = 0x10000
++ IFF_GROUP_ROUTING = 0x2000000
++ IFF_IFBUFMGT = 0x800000
++ IFF_LINK0 = 0x100000
++ IFF_LINK1 = 0x200000
++ IFF_LINK2 = 0x400000
++ IFF_LOOPBACK = 0x8
++ IFF_MULTICAST = 0x80000
++ IFF_NOARP = 0x80
++ IFF_NOECHO = 0x800
++ IFF_NOTRAILERS = 0x20
++ IFF_OACTIVE = 0x400
++ IFF_POINTOPOINT = 0x10
++ IFF_PROMISC = 0x100
++ IFF_PSEG = 0x40000000
++ IFF_RUNNING = 0x40
++ IFF_SIMPLEX = 0x800
++ IFF_SNAP = 0x8000
++ IFF_TCP_DISABLE_CKSUM = 0x20000000
++ IFF_TCP_NOCKSUM = 0x1000000
++ IFF_UP = 0x1
++ IFF_VIPA = 0x80000000
++ IFNAMSIZ = 0x10
++ IFO_FLUSH = 0x1
++ IFT_1822 = 0x2
++ IFT_AAL5 = 0x31
++ IFT_ARCNET = 0x23
++ IFT_ARCNETPLUS = 0x24
++ IFT_ATM = 0x25
++ IFT_CEPT = 0x13
++ IFT_CLUSTER = 0x3e
++ IFT_DS3 = 0x1e
++ IFT_EON = 0x19
++ IFT_ETHER = 0x6
++ IFT_FCS = 0x3a
++ IFT_FDDI = 0xf
++ IFT_FRELAY = 0x20
++ IFT_FRELAYDCE = 0x2c
++ IFT_GIFTUNNEL = 0x3c
++ IFT_HDH1822 = 0x3
++ IFT_HF = 0x3d
++ IFT_HIPPI = 0x2f
++ IFT_HSSI = 0x2e
++ IFT_HY = 0xe
++ IFT_IB = 0xc7
++ IFT_ISDNBASIC = 0x14
++ IFT_ISDNPRIMARY = 0x15
++ IFT_ISO88022LLC = 0x29
++ IFT_ISO88023 = 0x7
++ IFT_ISO88024 = 0x8
++ IFT_ISO88025 = 0x9
++ IFT_ISO88026 = 0xa
++ IFT_LAPB = 0x10
++ IFT_LOCALTALK = 0x2a
++ IFT_LOOP = 0x18
++ IFT_MIOX25 = 0x26
++ IFT_MODEM = 0x30
++ IFT_NSIP = 0x1b
++ IFT_OTHER = 0x1
++ IFT_P10 = 0xc
++ IFT_P80 = 0xd
++ IFT_PARA = 0x22
++ IFT_PPP = 0x17
++ IFT_PROPMUX = 0x36
++ IFT_PROPVIRTUAL = 0x35
++ IFT_PTPSERIAL = 0x16
++ IFT_RS232 = 0x21
++ IFT_SDLC = 0x11
++ IFT_SIP = 0x1f
++ IFT_SLIP = 0x1c
++ IFT_SMDSDXI = 0x2b
++ IFT_SMDSICIP = 0x34
++ IFT_SN = 0x38
++ IFT_SONET = 0x27
++ IFT_SONETPATH = 0x32
++ IFT_SONETVT = 0x33
++ IFT_SP = 0x39
++ IFT_STARLAN = 0xb
++ IFT_T1 = 0x12
++ IFT_TUNNEL = 0x3b
++ IFT_ULTRA = 0x1d
++ IFT_V35 = 0x2d
++ IFT_VIPA = 0x37
++ IFT_X25 = 0x5
++ IFT_X25DDN = 0x4
++ IFT_X25PLE = 0x28
++ IFT_XETHER = 0x1a
++ IGNBRK = 0x1
++ IGNCR = 0x80
++ IGNPAR = 0x4
++ IMAXBEL = 0x10000
++ INLCR = 0x40
++ INPCK = 0x10
++ IN_CLASSA_HOST = 0xffffff
++ IN_CLASSA_MAX = 0x80
++ IN_CLASSA_NET = 0xff000000
++ IN_CLASSA_NSHIFT = 0x18
++ IN_CLASSB_HOST = 0xffff
++ IN_CLASSB_MAX = 0x10000
++ IN_CLASSB_NET = 0xffff0000
++ IN_CLASSB_NSHIFT = 0x10
++ IN_CLASSC_HOST = 0xff
++ IN_CLASSC_NET = 0xffffff00
++ IN_CLASSC_NSHIFT = 0x8
++ IN_CLASSD_HOST = 0xfffffff
++ IN_CLASSD_NET = 0xf0000000
++ IN_CLASSD_NSHIFT = 0x1c
++ IN_LOOPBACKNET = 0x7f
++ IN_USE = 0x1
++ IPPROTO_AH = 0x33
++ IPPROTO_BIP = 0x53
++ IPPROTO_DSTOPTS = 0x3c
++ IPPROTO_EGP = 0x8
++ IPPROTO_EON = 0x50
++ IPPROTO_ESP = 0x32
++ IPPROTO_FRAGMENT = 0x2c
++ IPPROTO_GGP = 0x3
++ IPPROTO_GIF = 0x8c
++ IPPROTO_GRE = 0x2f
++ IPPROTO_HOPOPTS = 0x0
++ IPPROTO_ICMP = 0x1
++ IPPROTO_ICMPV6 = 0x3a
++ IPPROTO_IDP = 0x16
++ IPPROTO_IGMP = 0x2
++ IPPROTO_IP = 0x0
++ IPPROTO_IPIP = 0x4
++ IPPROTO_IPV6 = 0x29
++ IPPROTO_LOCAL = 0x3f
++ IPPROTO_MAX = 0x100
++ IPPROTO_MH = 0x87
++ IPPROTO_NONE = 0x3b
++ IPPROTO_PUP = 0xc
++ IPPROTO_QOS = 0x2d
++ IPPROTO_RAW = 0xff
++ IPPROTO_ROUTING = 0x2b
++ IPPROTO_RSVP = 0x2e
++ IPPROTO_SCTP = 0x84
++ IPPROTO_TCP = 0x6
++ IPPROTO_TP = 0x1d
++ IPPROTO_UDP = 0x11
++ IPV6_ADDRFORM = 0x16
++ IPV6_ADDR_PREFERENCES = 0x4a
++ IPV6_ADD_MEMBERSHIP = 0xc
++ IPV6_AIXRAWSOCKET = 0x39
++ IPV6_CHECKSUM = 0x27
++ IPV6_DONTFRAG = 0x2d
++ IPV6_DROP_MEMBERSHIP = 0xd
++ IPV6_DSTOPTS = 0x36
++ IPV6_FLOWINFO_FLOWLABEL = 0xffffff
++ IPV6_FLOWINFO_PRIFLOW = 0xfffffff
++ IPV6_FLOWINFO_PRIORITY = 0xf000000
++ IPV6_FLOWINFO_SRFLAG = 0x10000000
++ IPV6_FLOWINFO_VERSION = 0xf0000000
++ IPV6_HOPLIMIT = 0x28
++ IPV6_HOPOPTS = 0x34
++ IPV6_JOIN_GROUP = 0xc
++ IPV6_LEAVE_GROUP = 0xd
++ IPV6_MIPDSTOPTS = 0x36
++ IPV6_MULTICAST_HOPS = 0xa
++ IPV6_MULTICAST_IF = 0x9
++ IPV6_MULTICAST_LOOP = 0xb
++ IPV6_NEXTHOP = 0x30
++ IPV6_NOPROBE = 0x1c
++ IPV6_PATHMTU = 0x2e
++ IPV6_PKTINFO = 0x21
++ IPV6_PKTOPTIONS = 0x24
++ IPV6_PRIORITY_10 = 0xa000000
++ IPV6_PRIORITY_11 = 0xb000000
++ IPV6_PRIORITY_12 = 0xc000000
++ IPV6_PRIORITY_13 = 0xd000000
++ IPV6_PRIORITY_14 = 0xe000000
++ IPV6_PRIORITY_15 = 0xf000000
++ IPV6_PRIORITY_8 = 0x8000000
++ IPV6_PRIORITY_9 = 0x9000000
++ IPV6_PRIORITY_BULK = 0x4000000
++ IPV6_PRIORITY_CONTROL = 0x7000000
++ IPV6_PRIORITY_FILLER = 0x1000000
++ IPV6_PRIORITY_INTERACTIVE = 0x6000000
++ IPV6_PRIORITY_RESERVED1 = 0x3000000
++ IPV6_PRIORITY_RESERVED2 = 0x5000000
++ IPV6_PRIORITY_UNATTENDED = 0x2000000
++ IPV6_PRIORITY_UNCHARACTERIZED = 0x0
++ IPV6_RECVDSTOPTS = 0x38
++ IPV6_RECVHOPLIMIT = 0x29
++ IPV6_RECVHOPOPTS = 0x35
++ IPV6_RECVHOPS = 0x22
++ IPV6_RECVIF = 0x1e
++ IPV6_RECVPATHMTU = 0x2f
++ IPV6_RECVPKTINFO = 0x23
++ IPV6_RECVRTHDR = 0x33
++ IPV6_RECVSRCRT = 0x1d
++ IPV6_RECVTCLASS = 0x2a
++ IPV6_RTHDR = 0x32
++ IPV6_RTHDRDSTOPTS = 0x37
++ IPV6_RTHDR_TYPE_0 = 0x0
++ IPV6_RTHDR_TYPE_2 = 0x2
++ IPV6_SENDIF = 0x1f
++ IPV6_SRFLAG_LOOSE = 0x0
++ IPV6_SRFLAG_STRICT = 0x10000000
++ IPV6_TCLASS = 0x2b
++ IPV6_TOKEN_LENGTH = 0x40
++ IPV6_UNICAST_HOPS = 0x4
++ IPV6_USE_MIN_MTU = 0x2c
++ IPV6_V6ONLY = 0x25
++ IPV6_VERSION = 0x60000000
++ IP_ADDRFORM = 0x16
++ IP_ADD_MEMBERSHIP = 0xc
++ IP_ADD_SOURCE_MEMBERSHIP = 0x3c
++ IP_BLOCK_SOURCE = 0x3a
++ IP_BROADCAST_IF = 0x10
++ IP_CACHE_LINE_SIZE = 0x80
++ IP_DEFAULT_MULTICAST_LOOP = 0x1
++ IP_DEFAULT_MULTICAST_TTL = 0x1
++ IP_DF = 0x4000
++ IP_DHCPMODE = 0x11
++ IP_DONTFRAG = 0x19
++ IP_DROP_MEMBERSHIP = 0xd
++ IP_DROP_SOURCE_MEMBERSHIP = 0x3d
++ IP_FINDPMTU = 0x1a
++ IP_HDRINCL = 0x2
++ IP_INC_MEMBERSHIPS = 0x14
++ IP_INIT_MEMBERSHIP = 0x14
++ IP_MAXPACKET = 0xffff
++ IP_MF = 0x2000
++ IP_MSS = 0x240
++ IP_MULTICAST_HOPS = 0xa
++ IP_MULTICAST_IF = 0x9
++ IP_MULTICAST_LOOP = 0xb
++ IP_MULTICAST_TTL = 0xa
++ IP_OPT = 0x1b
++ IP_OPTIONS = 0x1
++ IP_PMTUAGE = 0x1b
++ IP_RECVDSTADDR = 0x7
++ IP_RECVIF = 0x14
++ IP_RECVIFINFO = 0xf
++ IP_RECVINTERFACE = 0x20
++ IP_RECVMACHDR = 0xe
++ IP_RECVOPTS = 0x5
++ IP_RECVRETOPTS = 0x6
++ IP_RECVTTL = 0x22
++ IP_RETOPTS = 0x8
++ IP_SOURCE_FILTER = 0x48
++ IP_TOS = 0x3
++ IP_TTL = 0x4
++ IP_UNBLOCK_SOURCE = 0x3b
++ IP_UNICAST_HOPS = 0x4
++ ISIG = 0x1
++ ISTRIP = 0x20
++ IUCLC = 0x800
++ IXANY = 0x1000
++ IXOFF = 0x400
++ IXON = 0x200
++ I_FLUSH = 0x20005305
++ LNOFLSH = 0x8000
++ LOCK_EX = 0x2
++ LOCK_NB = 0x4
++ LOCK_SH = 0x1
++ LOCK_UN = 0x8
++ MADV_DONTNEED = 0x4
++ MADV_NORMAL = 0x0
++ MADV_RANDOM = 0x1
++ MADV_SEQUENTIAL = 0x2
++ MADV_SPACEAVAIL = 0x5
++ MADV_WILLNEED = 0x3
++ MAP_ANON = 0x10
++ MAP_ANONYMOUS = 0x10
++ MAP_FILE = 0x0
++ MAP_FIXED = 0x100
++ MAP_PRIVATE = 0x2
++ MAP_SHARED = 0x1
++ MAP_TYPE = 0xf0
++ MAP_VARIABLE = 0x0
++ MCAST_BLOCK_SOURCE = 0x40
++ MCAST_EXCLUDE = 0x2
++ MCAST_INCLUDE = 0x1
++ MCAST_JOIN_GROUP = 0x3e
++ MCAST_JOIN_SOURCE_GROUP = 0x42
++ MCAST_LEAVE_GROUP = 0x3f
++ MCAST_LEAVE_SOURCE_GROUP = 0x43
++ MCAST_SOURCE_FILTER = 0x49
++ MCAST_UNBLOCK_SOURCE = 0x41
++ MCL_CURRENT = 0x100
++ MCL_FUTURE = 0x200
++ MSG_ANY = 0x4
++ MSG_ARGEXT = 0x400
++ MSG_BAND = 0x2
++ MSG_COMPAT = 0x8000
++ MSG_CTRUNC = 0x20
++ MSG_DONTROUTE = 0x4
++ MSG_EOR = 0x8
++ MSG_HIPRI = 0x1
++ MSG_MAXIOVLEN = 0x10
++ MSG_MPEG2 = 0x80
++ MSG_NONBLOCK = 0x4000
++ MSG_NOSIGNAL = 0x100
++ MSG_OOB = 0x1
++ MSG_PEEK = 0x2
++ MSG_TRUNC = 0x10
++ MSG_WAITALL = 0x40
++ MSG_WAITFORONE = 0x200
++ MS_ASYNC = 0x10
++ MS_EINTR = 0x80
++ MS_INVALIDATE = 0x40
++ MS_PER_SEC = 0x3e8
++ MS_SYNC = 0x20
++ NFDBITS = 0x20
++ NL0 = 0x0
++ NL1 = 0x4000
++ NL2 = 0x8000
++ NL3 = 0xc000
++ NLDLY = 0x4000
++ NOFLSH = 0x80
++ NOFLUSH = 0x80000000
++ OCRNL = 0x8
++ OFDEL = 0x80
++ OFILL = 0x40
++ OLCUC = 0x2
++ ONLCR = 0x4
++ ONLRET = 0x20
++ ONOCR = 0x10
++ ONOEOT = 0x80000
++ OPOST = 0x1
++ OXTABS = 0x40000
++ O_ACCMODE = 0x23
++ O_APPEND = 0x8
++ O_CIO = 0x80
++ O_CIOR = 0x800000000
++ O_CLOEXEC = 0x800000
++ O_CREAT = 0x100
++ O_DEFER = 0x2000
++ O_DELAY = 0x4000
++ O_DIRECT = 0x8000000
++ O_DIRECTORY = 0x80000
++ O_DSYNC = 0x400000
++ O_EFSOFF = 0x400000000
++ O_EFSON = 0x200000000
++ O_EXCL = 0x400
++ O_EXEC = 0x20
++ O_LARGEFILE = 0x4000000
++ O_NDELAY = 0x8000
++ O_NOCACHE = 0x100000
++ O_NOCTTY = 0x800
++ O_NOFOLLOW = 0x1000000
++ O_NONBLOCK = 0x4
++ O_NONE = 0x3
++ O_NSHARE = 0x10000
++ O_RAW = 0x100000000
++ O_RDONLY = 0x0
++ O_RDWR = 0x2
++ O_RSHARE = 0x1000
++ O_RSYNC = 0x200000
++ O_SEARCH = 0x20
++ O_SNAPSHOT = 0x40
++ O_SYNC = 0x10
++ O_TRUNC = 0x200
++ O_TTY_INIT = 0x0
++ O_WRONLY = 0x1
++ PARENB = 0x100
++ PAREXT = 0x100000
++ PARMRK = 0x8
++ PARODD = 0x200
++ PENDIN = 0x20000000
++ PRIO_PGRP = 0x1
++ PRIO_PROCESS = 0x0
++ PRIO_USER = 0x2
++ PROT_EXEC = 0x4
++ PROT_NONE = 0x0
++ PROT_READ = 0x1
++ PROT_WRITE = 0x2
++ PR_64BIT = 0x20
++ PR_ADDR = 0x2
++ PR_ARGEXT = 0x400
++ PR_ATOMIC = 0x1
++ PR_CONNREQUIRED = 0x4
++ PR_FASTHZ = 0x5
++ PR_INP = 0x40
++ PR_INTRLEVEL = 0x8000
++ PR_MLS = 0x100
++ PR_MLS_1_LABEL = 0x200
++ PR_NOEOR = 0x4000
++ PR_RIGHTS = 0x10
++ PR_SLOWHZ = 0x2
++ PR_WANTRCVD = 0x8
++ RLIMIT_AS = 0x6
++ RLIMIT_CORE = 0x4
++ RLIMIT_CPU = 0x0
++ RLIMIT_DATA = 0x2
++ RLIMIT_FSIZE = 0x1
++ RLIMIT_NOFILE = 0x7
++ RLIMIT_NPROC = 0x9
++ RLIMIT_RSS = 0x5
++ RLIMIT_STACK = 0x3
++ RLIM_INFINITY = 0x7fffffff
++ RTAX_AUTHOR = 0x6
++ RTAX_BRD = 0x7
++ RTAX_DST = 0x0
++ RTAX_GATEWAY = 0x1
++ RTAX_GENMASK = 0x3
++ RTAX_IFA = 0x5
++ RTAX_IFP = 0x4
++ RTAX_MAX = 0x8
++ RTAX_NETMASK = 0x2
++ RTA_AUTHOR = 0x40
++ RTA_BRD = 0x80
++ RTA_DOWNSTREAM = 0x100
++ RTA_DST = 0x1
++ RTA_GATEWAY = 0x2
++ RTA_GENMASK = 0x8
++ RTA_IFA = 0x20
++ RTA_IFP = 0x10
++ RTA_NETMASK = 0x4
++ RTC_IA64 = 0x3
++ RTC_POWER = 0x1
++ RTC_POWER_PC = 0x2
++ RTF_ACTIVE_DGD = 0x1000000
++ RTF_BCE = 0x80000
++ RTF_BLACKHOLE = 0x1000
++ RTF_BROADCAST = 0x400000
++ RTF_BUL = 0x2000
++ RTF_CLONE = 0x10000
++ RTF_CLONED = 0x20000
++ RTF_CLONING = 0x100
++ RTF_DONE = 0x40
++ RTF_DYNAMIC = 0x10
++ RTF_FREE_IN_PROG = 0x4000000
++ RTF_GATEWAY = 0x2
++ RTF_HOST = 0x4
++ RTF_LLINFO = 0x400
++ RTF_LOCAL = 0x200000
++ RTF_MASK = 0x80
++ RTF_MODIFIED = 0x20
++ RTF_MULTICAST = 0x800000
++ RTF_PERMANENT6 = 0x8000000
++ RTF_PINNED = 0x100000
++ RTF_PROTO1 = 0x8000
++ RTF_PROTO2 = 0x4000
++ RTF_PROTO3 = 0x40000
++ RTF_REJECT = 0x8
++ RTF_SMALLMTU = 0x40000
++ RTF_STATIC = 0x800
++ RTF_STOPSRCH = 0x2000000
++ RTF_UNREACHABLE = 0x10000000
++ RTF_UP = 0x1
++ RTF_XRESOLVE = 0x200
++ RTM_ADD = 0x1
++ RTM_CHANGE = 0x3
++ RTM_DELADDR = 0xd
++ RTM_DELETE = 0x2
++ RTM_EXPIRE = 0xf
++ RTM_GET = 0x4
++ RTM_GETNEXT = 0x11
++ RTM_IFINFO = 0xe
++ RTM_LOCK = 0x8
++ RTM_LOSING = 0x5
++ RTM_MISS = 0x7
++ RTM_NEWADDR = 0xc
++ RTM_OLDADD = 0x9
++ RTM_OLDDEL = 0xa
++ RTM_REDIRECT = 0x6
++ RTM_RESOLVE = 0xb
++ RTM_RTLOST = 0x10
++ RTM_RTTUNIT = 0xf4240
++ RTM_SAMEADDR = 0x12
++ RTM_SET = 0x13
++ RTM_VERSION = 0x2
++ RTM_VERSION_GR = 0x4
++ RTM_VERSION_GR_COMPAT = 0x3
++ RTM_VERSION_POLICY = 0x5
++ RTM_VERSION_POLICY_EXT = 0x6
++ RTM_VERSION_POLICY_PRFN = 0x7
++ RTV_EXPIRE = 0x4
++ RTV_HOPCOUNT = 0x2
++ RTV_MTU = 0x1
++ RTV_RPIPE = 0x8
++ RTV_RTT = 0x40
++ RTV_RTTVAR = 0x80
++ RTV_SPIPE = 0x10
++ RTV_SSTHRESH = 0x20
++ RUSAGE_CHILDREN = -0x1
++ RUSAGE_SELF = 0x0
++ RUSAGE_THREAD = 0x1
++ SCM_RIGHTS = 0x1
++ SHUT_RD = 0x0
++ SHUT_RDWR = 0x2
++ SHUT_WR = 0x1
++ SIGMAX64 = 0xff
++ SIGQUEUE_MAX = 0x20
++ SIOCADDIFVIPA = 0x20006942
++ SIOCADDMTU = -0x7ffb9690
++ SIOCADDMULTI = -0x7fdf96cf
++ SIOCADDNETID = -0x7fd796a9
++ SIOCADDRT = -0x7fcf8df6
++ SIOCAIFADDR = -0x7fbf96e6
++ SIOCATMARK = 0x40047307
++ SIOCDARP = -0x7fb396e0
++ SIOCDELIFVIPA = 0x20006943
++ SIOCDELMTU = -0x7ffb968f
++ SIOCDELMULTI = -0x7fdf96ce
++ SIOCDELPMTU = -0x7fd78ff6
++ SIOCDELRT = -0x7fcf8df5
++ SIOCDIFADDR = -0x7fd796e7
++ SIOCDNETOPT = -0x3ffe9680
++ SIOCDX25XLATE = -0x7fd7969b
++ SIOCFIFADDR = -0x7fdf966d
++ SIOCGARP = -0x3fb396da
++ SIOCGETMTUS = 0x2000696f
++ SIOCGETSGCNT = -0x3feb8acc
++ SIOCGETVIFCNT = -0x3feb8acd
++ SIOCGHIWAT = 0x40047301
++ SIOCGIFADDR = -0x3fd796df
++ SIOCGIFADDRS = 0x2000698c
++ SIOCGIFBAUDRATE = -0x3fdf9669
++ SIOCGIFBRDADDR = -0x3fd796dd
++ SIOCGIFCONF = -0x3ff796bb
++ SIOCGIFCONFGLOB = -0x3ff79670
++ SIOCGIFDSTADDR = -0x3fd796de
++ SIOCGIFFLAGS = -0x3fd796ef
++ SIOCGIFGIDLIST = 0x20006968
++ SIOCGIFHWADDR = -0x3fab966b
++ SIOCGIFMETRIC = -0x3fd796e9
++ SIOCGIFMTU = -0x3fd796aa
++ SIOCGIFNETMASK = -0x3fd796db
++ SIOCGIFOPTIONS = -0x3fd796d6
++ SIOCGISNO = -0x3fd79695
++ SIOCGLOADF = -0x3ffb967e
++ SIOCGLOWAT = 0x40047303
++ SIOCGNETOPT = -0x3ffe96a5
++ SIOCGNETOPT1 = -0x3fdf967f
++ SIOCGNMTUS = 0x2000696e
++ SIOCGPGRP = 0x40047309
++ SIOCGSIZIFCONF = 0x4004696a
++ SIOCGSRCFILTER = -0x3fe796cb
++ SIOCGTUNEPHASE = -0x3ffb9676
++ SIOCGX25XLATE = -0x3fd7969c
++ SIOCIFATTACH = -0x7fdf9699
++ SIOCIFDETACH = -0x7fdf969a
++ SIOCIFGETPKEY = -0x7fdf969b
++ SIOCIF_ATM_DARP = -0x7fdf9683
++ SIOCIF_ATM_DUMPARP = -0x7fdf9685
++ SIOCIF_ATM_GARP = -0x7fdf9682
++ SIOCIF_ATM_IDLE = -0x7fdf9686
++ SIOCIF_ATM_SARP = -0x7fdf9681
++ SIOCIF_ATM_SNMPARP = -0x7fdf9687
++ SIOCIF_ATM_SVC = -0x7fdf9684
++ SIOCIF_ATM_UBR = -0x7fdf9688
++ SIOCIF_DEVHEALTH = -0x7ffb966c
++ SIOCIF_IB_ARP_INCOMP = -0x7fdf9677
++ SIOCIF_IB_ARP_TIMER = -0x7fdf9678
++ SIOCIF_IB_CLEAR_PINFO = -0x3fdf966f
++ SIOCIF_IB_DEL_ARP = -0x7fdf967f
++ SIOCIF_IB_DEL_PINFO = -0x3fdf9670
++ SIOCIF_IB_DUMP_ARP = -0x7fdf9680
++ SIOCIF_IB_GET_ARP = -0x7fdf967e
++ SIOCIF_IB_GET_INFO = -0x3f879675
++ SIOCIF_IB_GET_STATS = -0x3f879672
++ SIOCIF_IB_NOTIFY_ADDR_REM = -0x3f87966a
++ SIOCIF_IB_RESET_STATS = -0x3f879671
++ SIOCIF_IB_RESIZE_CQ = -0x7fdf9679
++ SIOCIF_IB_SET_ARP = -0x7fdf967d
++ SIOCIF_IB_SET_PKEY = -0x7fdf967c
++ SIOCIF_IB_SET_PORT = -0x7fdf967b
++ SIOCIF_IB_SET_QKEY = -0x7fdf9676
++ SIOCIF_IB_SET_QSIZE = -0x7fdf967a
++ SIOCLISTIFVIPA = 0x20006944
++ SIOCSARP = -0x7fb396e2
++ SIOCSHIWAT = 0x80047300
++ SIOCSIFADDR = -0x7fd796f4
++ SIOCSIFADDRORI = -0x7fdb9673
++ SIOCSIFBRDADDR = -0x7fd796ed
++ SIOCSIFDSTADDR = -0x7fd796f2
++ SIOCSIFFLAGS = -0x7fd796f0
++ SIOCSIFGIDLIST = 0x20006969
++ SIOCSIFMETRIC = -0x7fd796e8
++ SIOCSIFMTU = -0x7fd796a8
++ SIOCSIFNETDUMP = -0x7fd796e4
++ SIOCSIFNETMASK = -0x7fd796ea
++ SIOCSIFOPTIONS = -0x7fd796d7
++ SIOCSIFSUBCHAN = -0x7fd796e5
++ SIOCSISNO = -0x7fd79694
++ SIOCSLOADF = -0x3ffb967d
++ SIOCSLOWAT = 0x80047302
++ SIOCSNETOPT = -0x7ffe96a6
++ SIOCSPGRP = 0x80047308
++ SIOCSX25XLATE = -0x7fd7969d
++ SOCK_CONN_DGRAM = 0x6
++ SOCK_DGRAM = 0x2
++ SOCK_RAW = 0x3
++ SOCK_RDM = 0x4
++ SOCK_SEQPACKET = 0x5
++ SOCK_STREAM = 0x1
++ SOL_SOCKET = 0xffff
++ SOMAXCONN = 0x400
++ SO_ACCEPTCONN = 0x2
++ SO_AUDIT = 0x8000
++ SO_BROADCAST = 0x20
++ SO_CKSUMRECV = 0x800
++ SO_DEBUG = 0x1
++ SO_DONTROUTE = 0x10
++ SO_ERROR = 0x1007
++ SO_KEEPALIVE = 0x8
++ SO_KERNACCEPT = 0x2000
++ SO_LINGER = 0x80
++ SO_NOMULTIPATH = 0x4000
++ SO_NOREUSEADDR = 0x1000
++ SO_OOBINLINE = 0x100
++ SO_PEERID = 0x1009
++ SO_RCVBUF = 0x1002
++ SO_RCVLOWAT = 0x1004
++ SO_RCVTIMEO = 0x1006
++ SO_REUSEADDR = 0x4
++ SO_REUSEPORT = 0x200
++ SO_SNDBUF = 0x1001
++ SO_SNDLOWAT = 0x1003
++ SO_SNDTIMEO = 0x1005
++ SO_TIMESTAMPNS = 0x100a
++ SO_TYPE = 0x1008
++ SO_USELOOPBACK = 0x40
++ SO_USE_IFBUFS = 0x400
++ S_BANDURG = 0x400
++ S_EMODFMT = 0x3c000000
++ S_ENFMT = 0x400
++ S_ERROR = 0x100
++ S_HANGUP = 0x200
++ S_HIPRI = 0x2
++ S_ICRYPTO = 0x80000
++ S_IEXEC = 0x40
++ S_IFBLK = 0x6000
++ S_IFCHR = 0x2000
++ S_IFDIR = 0x4000
++ S_IFIFO = 0x1000
++ S_IFJOURNAL = 0x10000
++ S_IFLNK = 0xa000
++ S_IFMPX = 0x2200
++ S_IFMT = 0xf000
++ S_IFPDIR = 0x4000000
++ S_IFPSDIR = 0x8000000
++ S_IFPSSDIR = 0xc000000
++ S_IFREG = 0x8000
++ S_IFSOCK = 0xc000
++ S_IFSYSEA = 0x30000000
++ S_INPUT = 0x1
++ S_IREAD = 0x100
++ S_IRGRP = 0x20
++ S_IROTH = 0x4
++ S_IRUSR = 0x100
++ S_IRWXG = 0x38
++ S_IRWXO = 0x7
++ S_IRWXU = 0x1c0
++ S_ISGID = 0x400
++ S_ISUID = 0x800
++ S_ISVTX = 0x200
++ S_ITCB = 0x1000000
++ S_ITP = 0x800000
++ S_IWGRP = 0x10
++ S_IWOTH = 0x2
++ S_IWRITE = 0x80
++ S_IWUSR = 0x80
++ S_IXACL = 0x2000000
++ S_IXATTR = 0x40000
++ S_IXGRP = 0x8
++ S_IXINTERFACE = 0x100000
++ S_IXMOD = 0x40000000
++ S_IXOTH = 0x1
++ S_IXUSR = 0x40
++ S_MSG = 0x8
++ S_OUTPUT = 0x4
++ S_RDBAND = 0x20
++ S_RDNORM = 0x10
++ S_RESERVED1 = 0x20000
++ S_RESERVED2 = 0x200000
++ S_RESERVED3 = 0x400000
++ S_RESERVED4 = 0x80000000
++ S_RESFMT1 = 0x10000000
++ S_RESFMT10 = 0x34000000
++ S_RESFMT11 = 0x38000000
++ S_RESFMT12 = 0x3c000000
++ S_RESFMT2 = 0x14000000
++ S_RESFMT3 = 0x18000000
++ S_RESFMT4 = 0x1c000000
++ S_RESFMT5 = 0x20000000
++ S_RESFMT6 = 0x24000000
++ S_RESFMT7 = 0x28000000
++ S_RESFMT8 = 0x2c000000
++ S_WRBAND = 0x80
++ S_WRNORM = 0x40
++ TAB0 = 0x0
++ TAB1 = 0x400
++ TAB2 = 0x800
++ TAB3 = 0xc00
++ TABDLY = 0xc00
++ TCFLSH = 0x540c
++ TCGETA = 0x5405
++ TCGETS = 0x5401
++ TCIFLUSH = 0x0
++ TCIOFF = 0x2
++ TCIOFLUSH = 0x2
++ TCION = 0x3
++ TCOFLUSH = 0x1
++ TCOOFF = 0x0
++ TCOON = 0x1
++ TCP_24DAYS_WORTH_OF_SLOWTICKS = 0x3f4800
++ TCP_ACLADD = 0x23
++ TCP_ACLBIND = 0x26
++ TCP_ACLCLEAR = 0x22
++ TCP_ACLDEL = 0x24
++ TCP_ACLDENY = 0x8
++ TCP_ACLFLUSH = 0x21
++ TCP_ACLGID = 0x1
++ TCP_ACLLS = 0x25
++ TCP_ACLSUBNET = 0x4
++ TCP_ACLUID = 0x2
++ TCP_CWND_DF = 0x16
++ TCP_CWND_IF = 0x15
++ TCP_DELAY_ACK_FIN = 0x2
++ TCP_DELAY_ACK_SYN = 0x1
++ TCP_FASTNAME = 0x101080a
++ TCP_KEEPCNT = 0x13
++ TCP_KEEPIDLE = 0x11
++ TCP_KEEPINTVL = 0x12
++ TCP_LSPRIV = 0x29
++ TCP_LUID = 0x20
++ TCP_MAXBURST = 0x8
++ TCP_MAXDF = 0x64
++ TCP_MAXIF = 0x64
++ TCP_MAXSEG = 0x2
++ TCP_MAXWIN = 0xffff
++ TCP_MAXWINDOWSCALE = 0xe
++ TCP_MAX_SACK = 0x4
++ TCP_MSS = 0x5b4
++ TCP_NODELAY = 0x1
++ TCP_NODELAYACK = 0x14
++ TCP_NOREDUCE_CWND_EXIT_FRXMT = 0x19
++ TCP_NOREDUCE_CWND_IN_FRXMT = 0x18
++ TCP_NOTENTER_SSTART = 0x17
++ TCP_OPT = 0x19
++ TCP_RFC1323 = 0x4
++ TCP_SETPRIV = 0x27
++ TCP_STDURG = 0x10
++ TCP_TIMESTAMP_OPTLEN = 0xc
++ TCP_UNSETPRIV = 0x28
++ TCSAFLUSH = 0x2
++ TCSBRK = 0x5409
++ TCSETA = 0x5406
++ TCSETAF = 0x5408
++ TCSETAW = 0x5407
++ TCSETS = 0x5402
++ TCSETSF = 0x5404
++ TCSETSW = 0x5403
++ TCXONC = 0x540b
++ TIMER_ABSTIME = 0x3e7
++ TIMER_MAX = 0x20
++ TIOC = 0x5400
++ TIOCCBRK = 0x2000747a
++ TIOCCDTR = 0x20007478
++ TIOCCONS = 0x80047462
++ TIOCEXCL = 0x2000740d
++ TIOCFLUSH = 0x80047410
++ TIOCGETC = 0x40067412
++ TIOCGETD = 0x40047400
++ TIOCGETP = 0x40067408
++ TIOCGLTC = 0x40067474
++ TIOCGPGRP = 0x40047477
++ TIOCGSID = 0x40047448
++ TIOCGSIZE = 0x40087468
++ TIOCGWINSZ = 0x40087468
++ TIOCHPCL = 0x20007402
++ TIOCLBIC = 0x8004747e
++ TIOCLBIS = 0x8004747f
++ TIOCLGET = 0x4004747c
++ TIOCLSET = 0x8004747d
++ TIOCMBIC = 0x8004746b
++ TIOCMBIS = 0x8004746c
++ TIOCMGET = 0x4004746a
++ TIOCMIWAIT = 0x80047464
++ TIOCMODG = 0x40047403
++ TIOCMODS = 0x80047404
++ TIOCMSET = 0x8004746d
++ TIOCM_CAR = 0x40
++ TIOCM_CD = 0x40
++ TIOCM_CTS = 0x20
++ TIOCM_DSR = 0x100
++ TIOCM_DTR = 0x2
++ TIOCM_LE = 0x1
++ TIOCM_RI = 0x80
++ TIOCM_RNG = 0x80
++ TIOCM_RTS = 0x4
++ TIOCM_SR = 0x10
++ TIOCM_ST = 0x8
++ TIOCNOTTY = 0x20007471
++ TIOCNXCL = 0x2000740e
++ TIOCOUTQ = 0x40047473
++ TIOCPKT = 0x80047470
++ TIOCPKT_DATA = 0x0
++ TIOCPKT_DOSTOP = 0x20
++ TIOCPKT_FLUSHREAD = 0x1
++ TIOCPKT_FLUSHWRITE = 0x2
++ TIOCPKT_NOSTOP = 0x10
++ TIOCPKT_START = 0x8
++ TIOCPKT_STOP = 0x4
++ TIOCREMOTE = 0x80047469
++ TIOCSBRK = 0x2000747b
++ TIOCSDTR = 0x20007479
++ TIOCSETC = 0x80067411
++ TIOCSETD = 0x80047401
++ TIOCSETN = 0x8006740a
++ TIOCSETP = 0x80067409
++ TIOCSLTC = 0x80067475
++ TIOCSPGRP = 0x80047476
++ TIOCSSIZE = 0x80087467
++ TIOCSTART = 0x2000746e
++ TIOCSTI = 0x80017472
++ TIOCSTOP = 0x2000746f
++ TIOCSWINSZ = 0x80087467
++ TIOCUCNTL = 0x80047466
++ TOSTOP = 0x10000
++ UTIME_NOW = -0x2
++ UTIME_OMIT = -0x3
++ VDISCRD = 0xc
++ VDSUSP = 0xa
++ VEOF = 0x4
++ VEOL = 0x5
++ VEOL2 = 0x6
++ VERASE = 0x2
++ VINTR = 0x0
++ VKILL = 0x3
++ VLNEXT = 0xe
++ VMIN = 0x4
++ VQUIT = 0x1
++ VREPRINT = 0xb
++ VSTART = 0x7
++ VSTOP = 0x8
++ VSTRT = 0x7
++ VSUSP = 0x9
++ VT0 = 0x0
++ VT1 = 0x8000
++ VTDELAY = 0x2000
++ VTDLY = 0x8000
++ VTIME = 0x5
++ VWERSE = 0xd
++ WPARSTART = 0x1
++ WPARSTOP = 0x2
++ WPARTTYNAME = "Global"
++ XCASE = 0x4
++ XTABS = 0xc00
++ _FDATAFLUSH = 0x2000000000
++)
++
++// Errors
++const (
++ E2BIG = syscall.Errno(0x7)
++ EACCES = syscall.Errno(0xd)
++ EADDRINUSE = syscall.Errno(0x43)
++ EADDRNOTAVAIL = syscall.Errno(0x44)
++ EAFNOSUPPORT = syscall.Errno(0x42)
++ EAGAIN = syscall.Errno(0xb)
++ EALREADY = syscall.Errno(0x38)
++ EBADF = syscall.Errno(0x9)
++ EBADMSG = syscall.Errno(0x78)
++ EBUSY = syscall.Errno(0x10)
++ ECANCELED = syscall.Errno(0x75)
++ ECHILD = syscall.Errno(0xa)
++ ECHRNG = syscall.Errno(0x25)
++ ECLONEME = syscall.Errno(0x52)
++ ECONNABORTED = syscall.Errno(0x48)
++ ECONNREFUSED = syscall.Errno(0x4f)
++ ECONNRESET = syscall.Errno(0x49)
++ ECORRUPT = syscall.Errno(0x59)
++ EDEADLK = syscall.Errno(0x2d)
++ EDESTADDREQ = syscall.Errno(0x3a)
++ EDESTADDRREQ = syscall.Errno(0x3a)
++ EDIST = syscall.Errno(0x35)
++ EDOM = syscall.Errno(0x21)
++ EDQUOT = syscall.Errno(0x58)
++ EEXIST = syscall.Errno(0x11)
++ EFAULT = syscall.Errno(0xe)
++ EFBIG = syscall.Errno(0x1b)
++ EFORMAT = syscall.Errno(0x30)
++ EHOSTDOWN = syscall.Errno(0x50)
++ EHOSTUNREACH = syscall.Errno(0x51)
++ EIDRM = syscall.Errno(0x24)
++ EILSEQ = syscall.Errno(0x74)
++ EINPROGRESS = syscall.Errno(0x37)
++ EINTR = syscall.Errno(0x4)
++ EINVAL = syscall.Errno(0x16)
++ EIO = syscall.Errno(0x5)
++ EISCONN = syscall.Errno(0x4b)
++ EISDIR = syscall.Errno(0x15)
++ EL2HLT = syscall.Errno(0x2c)
++ EL2NSYNC = syscall.Errno(0x26)
++ EL3HLT = syscall.Errno(0x27)
++ EL3RST = syscall.Errno(0x28)
++ ELNRNG = syscall.Errno(0x29)
++ ELOOP = syscall.Errno(0x55)
++ EMEDIA = syscall.Errno(0x6e)
++ EMFILE = syscall.Errno(0x18)
++ EMLINK = syscall.Errno(0x1f)
++ EMSGSIZE = syscall.Errno(0x3b)
++ EMULTIHOP = syscall.Errno(0x7d)
++ ENAMETOOLONG = syscall.Errno(0x56)
++ ENETDOWN = syscall.Errno(0x45)
++ ENETRESET = syscall.Errno(0x47)
++ ENETUNREACH = syscall.Errno(0x46)
++ ENFILE = syscall.Errno(0x17)
++ ENOATTR = syscall.Errno(0x70)
++ ENOBUFS = syscall.Errno(0x4a)
++ ENOCONNECT = syscall.Errno(0x32)
++ ENOCSI = syscall.Errno(0x2b)
++ ENODATA = syscall.Errno(0x7a)
++ ENODEV = syscall.Errno(0x13)
++ ENOENT = syscall.Errno(0x2)
++ ENOEXEC = syscall.Errno(0x8)
++ ENOLCK = syscall.Errno(0x31)
++ ENOLINK = syscall.Errno(0x7e)
++ ENOMEM = syscall.Errno(0xc)
++ ENOMSG = syscall.Errno(0x23)
++ ENOPROTOOPT = syscall.Errno(0x3d)
++ ENOSPC = syscall.Errno(0x1c)
++ ENOSR = syscall.Errno(0x76)
++ ENOSTR = syscall.Errno(0x7b)
++ ENOSYS = syscall.Errno(0x6d)
++ ENOTBLK = syscall.Errno(0xf)
++ ENOTCONN = syscall.Errno(0x4c)
++ ENOTDIR = syscall.Errno(0x14)
++ ENOTEMPTY = syscall.Errno(0x11)
++ ENOTREADY = syscall.Errno(0x2e)
++ ENOTRECOVERABLE = syscall.Errno(0x5e)
++ ENOTRUST = syscall.Errno(0x72)
++ ENOTSOCK = syscall.Errno(0x39)
++ ENOTSUP = syscall.Errno(0x7c)
++ ENOTTY = syscall.Errno(0x19)
++ ENXIO = syscall.Errno(0x6)
++ EOPNOTSUPP = syscall.Errno(0x40)
++ EOVERFLOW = syscall.Errno(0x7f)
++ EOWNERDEAD = syscall.Errno(0x5f)
++ EPERM = syscall.Errno(0x1)
++ EPFNOSUPPORT = syscall.Errno(0x41)
++ EPIPE = syscall.Errno(0x20)
++ EPROCLIM = syscall.Errno(0x53)
++ EPROTO = syscall.Errno(0x79)
++ EPROTONOSUPPORT = syscall.Errno(0x3e)
++ EPROTOTYPE = syscall.Errno(0x3c)
++ ERANGE = syscall.Errno(0x22)
++ EREMOTE = syscall.Errno(0x5d)
++ ERESTART = syscall.Errno(0x52)
++ EROFS = syscall.Errno(0x1e)
++ ESAD = syscall.Errno(0x71)
++ ESHUTDOWN = syscall.Errno(0x4d)
++ ESOCKTNOSUPPORT = syscall.Errno(0x3f)
++ ESOFT = syscall.Errno(0x6f)
++ ESPIPE = syscall.Errno(0x1d)
++ ESRCH = syscall.Errno(0x3)
++ ESTALE = syscall.Errno(0x34)
++ ESYSERROR = syscall.Errno(0x5a)
++ ETIME = syscall.Errno(0x77)
++ ETIMEDOUT = syscall.Errno(0x4e)
++ ETOOMANYREFS = syscall.Errno(0x73)
++ ETXTBSY = syscall.Errno(0x1a)
++ EUNATCH = syscall.Errno(0x2a)
++ EUSERS = syscall.Errno(0x54)
++ EWOULDBLOCK = syscall.Errno(0xb)
++ EWRPROTECT = syscall.Errno(0x2f)
++ EXDEV = syscall.Errno(0x12)
++)
++
++// Signals
++const (
++ SIGABRT = syscall.Signal(0x6)
++ SIGAIO = syscall.Signal(0x17)
++ SIGALRM = syscall.Signal(0xe)
++ SIGALRM1 = syscall.Signal(0x26)
++ SIGBUS = syscall.Signal(0xa)
++ SIGCAPI = syscall.Signal(0x31)
++ SIGCHLD = syscall.Signal(0x14)
++ SIGCLD = syscall.Signal(0x14)
++ SIGCONT = syscall.Signal(0x13)
++ SIGCPUFAIL = syscall.Signal(0x3b)
++ SIGDANGER = syscall.Signal(0x21)
++ SIGEMT = syscall.Signal(0x7)
++ SIGFPE = syscall.Signal(0x8)
++ SIGGRANT = syscall.Signal(0x3c)
++ SIGHUP = syscall.Signal(0x1)
++ SIGILL = syscall.Signal(0x4)
++ SIGINT = syscall.Signal(0x2)
++ SIGIO = syscall.Signal(0x17)
++ SIGIOINT = syscall.Signal(0x10)
++ SIGIOT = syscall.Signal(0x6)
++ SIGKAP = syscall.Signal(0x3c)
++ SIGKILL = syscall.Signal(0x9)
++ SIGLOST = syscall.Signal(0x6)
++ SIGMAX = syscall.Signal(0x3f)
++ SIGMAX32 = syscall.Signal(0x3f)
++ SIGMIGRATE = syscall.Signal(0x23)
++ SIGMSG = syscall.Signal(0x1b)
++ SIGPIPE = syscall.Signal(0xd)
++ SIGPOLL = syscall.Signal(0x17)
++ SIGPRE = syscall.Signal(0x24)
++ SIGPROF = syscall.Signal(0x20)
++ SIGPTY = syscall.Signal(0x17)
++ SIGPWR = syscall.Signal(0x1d)
++ SIGQUIT = syscall.Signal(0x3)
++ SIGRECONFIG = syscall.Signal(0x3a)
++ SIGRETRACT = syscall.Signal(0x3d)
++ SIGSAK = syscall.Signal(0x3f)
++ SIGSEGV = syscall.Signal(0xb)
++ SIGSOUND = syscall.Signal(0x3e)
++ SIGSTOP = syscall.Signal(0x11)
++ SIGSYS = syscall.Signal(0xc)
++ SIGSYSERROR = syscall.Signal(0x30)
++ SIGTALRM = syscall.Signal(0x26)
++ SIGTERM = syscall.Signal(0xf)
++ SIGTRAP = syscall.Signal(0x5)
++ SIGTSTP = syscall.Signal(0x12)
++ SIGTTIN = syscall.Signal(0x15)
++ SIGTTOU = syscall.Signal(0x16)
++ SIGURG = syscall.Signal(0x10)
++ SIGUSR1 = syscall.Signal(0x1e)
++ SIGUSR2 = syscall.Signal(0x1f)
++ SIGVIRT = syscall.Signal(0x25)
++ SIGVTALRM = syscall.Signal(0x22)
++ SIGWAITING = syscall.Signal(0x27)
++ SIGWINCH = syscall.Signal(0x1c)
++ SIGXCPU = syscall.Signal(0x18)
++ SIGXFSZ = syscall.Signal(0x19)
++)
++
++// Error table
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "not owner"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "I/O error"},
++ {6, "ENXIO", "no such device or address"},
++ {7, "E2BIG", "arg list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file number"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EWOULDBLOCK", "resource temporarily unavailable"},
++ {12, "ENOMEM", "not enough space"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device busy"},
++ {17, "ENOTEMPTY", "file exists"},
++ {18, "EXDEV", "cross-device link"},
++ {19, "ENODEV", "no such device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "file table overflow"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "not a typewriter"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "argument out of domain"},
++ {34, "ERANGE", "result too large"},
++ {35, "ENOMSG", "no message of desired type"},
++ {36, "EIDRM", "identifier removed"},
++ {37, "ECHRNG", "channel number out of range"},
++ {38, "EL2NSYNC", "level 2 not synchronized"},
++ {39, "EL3HLT", "level 3 halted"},
++ {40, "EL3RST", "level 3 reset"},
++ {41, "ELNRNG", "link number out of range"},
++ {42, "EUNATCH", "protocol driver not attached"},
++ {43, "ENOCSI", "no CSI structure available"},
++ {44, "EL2HLT", "level 2 halted"},
++ {45, "EDEADLK", "deadlock condition if locked"},
++ {46, "ENOTREADY", "device not ready"},
++ {47, "EWRPROTECT", "write-protected media"},
++ {48, "EFORMAT", "unformatted or incompatible media"},
++ {49, "ENOLCK", "no locks available"},
++ {50, "ENOCONNECT", "cannot Establish Connection"},
++ {52, "ESTALE", "missing file or filesystem"},
++ {53, "EDIST", "requests blocked by Administrator"},
++ {55, "EINPROGRESS", "operation now in progress"},
++ {56, "EALREADY", "operation already in progress"},
++ {57, "ENOTSOCK", "socket operation on non-socket"},
++ {58, "EDESTADDREQ", "destination address required"},
++ {59, "EMSGSIZE", "message too long"},
++ {60, "EPROTOTYPE", "protocol wrong type for socket"},
++ {61, "ENOPROTOOPT", "protocol not available"},
++ {62, "EPROTONOSUPPORT", "protocol not supported"},
++ {63, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {64, "EOPNOTSUPP", "operation not supported on socket"},
++ {65, "EPFNOSUPPORT", "protocol family not supported"},
++ {66, "EAFNOSUPPORT", "addr family not supported by protocol"},
++ {67, "EADDRINUSE", "address already in use"},
++ {68, "EADDRNOTAVAIL", "can't assign requested address"},
++ {69, "ENETDOWN", "network is down"},
++ {70, "ENETUNREACH", "network is unreachable"},
++ {71, "ENETRESET", "network dropped connection on reset"},
++ {72, "ECONNABORTED", "software caused connection abort"},
++ {73, "ECONNRESET", "connection reset by peer"},
++ {74, "ENOBUFS", "no buffer space available"},
++ {75, "EISCONN", "socket is already connected"},
++ {76, "ENOTCONN", "socket is not connected"},
++ {77, "ESHUTDOWN", "can't send after socket shutdown"},
++ {78, "ETIMEDOUT", "connection timed out"},
++ {79, "ECONNREFUSED", "connection refused"},
++ {80, "EHOSTDOWN", "host is down"},
++ {81, "EHOSTUNREACH", "no route to host"},
++ {82, "ERESTART", "restart the system call"},
++ {83, "EPROCLIM", "too many processes"},
++ {84, "EUSERS", "too many users"},
++ {85, "ELOOP", "too many levels of symbolic links"},
++ {86, "ENAMETOOLONG", "file name too long"},
++ {88, "EDQUOT", "disk quota exceeded"},
++ {89, "ECORRUPT", "invalid file system control data detected"},
++ {90, "ESYSERROR", "for future use "},
++ {93, "EREMOTE", "item is not local to host"},
++ {94, "ENOTRECOVERABLE", "state not recoverable "},
++ {95, "EOWNERDEAD", "previous owner died "},
++ {109, "ENOSYS", "function not implemented"},
++ {110, "EMEDIA", "media surface error"},
++ {111, "ESOFT", "I/O completed, but needs relocation"},
++ {112, "ENOATTR", "no attribute found"},
++ {113, "ESAD", "security Authentication Denied"},
++ {114, "ENOTRUST", "not a Trusted Program"},
++ {115, "ETOOMANYREFS", "too many references: can't splice"},
++ {116, "EILSEQ", "invalid wide character"},
++ {117, "ECANCELED", "asynchronous I/O cancelled"},
++ {118, "ENOSR", "out of STREAMS resources"},
++ {119, "ETIME", "system call timed out"},
++ {120, "EBADMSG", "next message has wrong type"},
++ {121, "EPROTO", "error in protocol"},
++ {122, "ENODATA", "no message on stream head read q"},
++ {123, "ENOSTR", "fd not associated with a stream"},
++ {124, "ENOTSUP", "unsupported attribute value"},
++ {125, "EMULTIHOP", "multihop is not allowed"},
++ {126, "ENOLINK", "the server link has been severed"},
++ {127, "EOVERFLOW", "value too large to be stored in data type"},
++}
++
++// Signal table
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/BPT trap"},
++ {6, "SIGIOT", "IOT/Abort trap"},
++ {7, "SIGEMT", "EMT trap"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGBUS", "bus error"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGSYS", "bad system call"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGURG", "urgent I/O condition"},
++ {17, "SIGSTOP", "stopped (signal)"},
++ {18, "SIGTSTP", "stopped"},
++ {19, "SIGCONT", "continued"},
++ {20, "SIGCHLD", "child exited"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGIO", "I/O possible/complete"},
++ {24, "SIGXCPU", "cputime limit exceeded"},
++ {25, "SIGXFSZ", "filesize limit exceeded"},
++ {27, "SIGMSG", "input device data"},
++ {28, "SIGWINCH", "window size changes"},
++ {29, "SIGPWR", "power-failure"},
++ {30, "SIGUSR1", "user defined signal 1"},
++ {31, "SIGUSR2", "user defined signal 2"},
++ {32, "SIGPROF", "profiling timer expired"},
++ {33, "SIGDANGER", "paging space low"},
++ {34, "SIGVTALRM", "virtual timer expired"},
++ {35, "SIGMIGRATE", "signal 35"},
++ {36, "SIGPRE", "signal 36"},
++ {37, "SIGVIRT", "signal 37"},
++ {38, "SIGTALRM", "signal 38"},
++ {39, "SIGWAITING", "signal 39"},
++ {48, "SIGSYSERROR", "signal 48"},
++ {49, "SIGCAPI", "signal 49"},
++ {58, "SIGRECONFIG", "signal 58"},
++ {59, "SIGCPUFAIL", "CPU Failure Predicted"},
++ {60, "SIGKAP", "monitor mode granted"},
++ {61, "SIGRETRACT", "monitor mode retracted"},
++ {62, "SIGSOUND", "sound completed"},
++ {63, "SIGSAK", "secure attention"},
++}
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go
+new file mode 100644
+index 00000000..4fc8d306
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go
+@@ -0,0 +1,1385 @@
++// mkerrors.sh -maix64
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build ppc64,aix
++
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
++// cgo -godefs -- -maix64 _const.go
++
++package unix
++
++import "syscall"
++
++const (
++ AF_APPLETALK = 0x10
++ AF_BYPASS = 0x19
++ AF_CCITT = 0xa
++ AF_CHAOS = 0x5
++ AF_DATAKIT = 0x9
++ AF_DECnet = 0xc
++ AF_DLI = 0xd
++ AF_ECMA = 0x8
++ AF_HYLINK = 0xf
++ AF_IMPLINK = 0x3
++ AF_INET = 0x2
++ AF_INET6 = 0x18
++ AF_INTF = 0x14
++ AF_ISO = 0x7
++ AF_LAT = 0xe
++ AF_LINK = 0x12
++ AF_LOCAL = 0x1
++ AF_MAX = 0x1e
++ AF_NDD = 0x17
++ AF_NETWARE = 0x16
++ AF_NS = 0x6
++ AF_OSI = 0x7
++ AF_PUP = 0x4
++ AF_RIF = 0x15
++ AF_ROUTE = 0x11
++ AF_SNA = 0xb
++ AF_UNIX = 0x1
++ AF_UNSPEC = 0x0
++ ALTWERASE = 0x400000
++ ARPHRD_802_3 = 0x6
++ ARPHRD_802_5 = 0x6
++ ARPHRD_ETHER = 0x1
++ ARPHRD_FDDI = 0x1
++ B0 = 0x0
++ B110 = 0x3
++ B1200 = 0x9
++ B134 = 0x4
++ B150 = 0x5
++ B1800 = 0xa
++ B19200 = 0xe
++ B200 = 0x6
++ B2400 = 0xb
++ B300 = 0x7
++ B38400 = 0xf
++ B4800 = 0xc
++ B50 = 0x1
++ B600 = 0x8
++ B75 = 0x2
++ B9600 = 0xd
++ BRKINT = 0x2
++ BS0 = 0x0
++ BS1 = 0x1000
++ BSDLY = 0x1000
++ CAP_AACCT = 0x6
++ CAP_ARM_APPLICATION = 0x5
++ CAP_BYPASS_RAC_VMM = 0x3
++ CAP_CLEAR = 0x0
++ CAP_CREDENTIALS = 0x7
++ CAP_EFFECTIVE = 0x1
++ CAP_EWLM_AGENT = 0x4
++ CAP_INHERITABLE = 0x2
++ CAP_MAXIMUM = 0x7
++ CAP_NUMA_ATTACH = 0x2
++ CAP_PERMITTED = 0x3
++ CAP_PROPAGATE = 0x1
++ CAP_PROPOGATE = 0x1
++ CAP_SET = 0x1
++ CBAUD = 0xf
++ CFLUSH = 0xf
++ CIBAUD = 0xf0000
++ CLOCAL = 0x800
++ CLOCK_MONOTONIC = 0xa
++ CLOCK_PROCESS_CPUTIME_ID = 0xb
++ CLOCK_REALTIME = 0x9
++ CLOCK_THREAD_CPUTIME_ID = 0xc
++ CR0 = 0x0
++ CR1 = 0x100
++ CR2 = 0x200
++ CR3 = 0x300
++ CRDLY = 0x300
++ CREAD = 0x80
++ CS5 = 0x0
++ CS6 = 0x10
++ CS7 = 0x20
++ CS8 = 0x30
++ CSIOCGIFCONF = -0x3fef96dc
++ CSIZE = 0x30
++ CSMAP_DIR = "/usr/lib/nls/csmap/"
++ CSTART = '\021'
++ CSTOP = '\023'
++ CSTOPB = 0x40
++ CSUSP = 0x1a
++ ECHO = 0x8
++ ECHOCTL = 0x20000
++ ECHOE = 0x10
++ ECHOK = 0x20
++ ECHOKE = 0x80000
++ ECHONL = 0x40
++ ECHOPRT = 0x40000
++ ECH_ICMPID = 0x2
++ ETHERNET_CSMACD = 0x6
++ EVENP = 0x80
++ EXCONTINUE = 0x0
++ EXDLOK = 0x3
++ EXIO = 0x2
++ EXPGIO = 0x0
++ EXRESUME = 0x2
++ EXRETURN = 0x1
++ EXSIG = 0x4
++ EXTA = 0xe
++ EXTB = 0xf
++ EXTRAP = 0x1
++ EYEC_RTENTRYA = 0x257274656e747241
++ EYEC_RTENTRYF = 0x257274656e747246
++ E_ACC = 0x0
++ FD_CLOEXEC = 0x1
++ FD_SETSIZE = 0xfffe
++ FF0 = 0x0
++ FF1 = 0x2000
++ FFDLY = 0x2000
++ FLUSHBAND = 0x40
++ FLUSHLOW = 0x8
++ FLUSHO = 0x100000
++ FLUSHR = 0x1
++ FLUSHRW = 0x3
++ FLUSHW = 0x2
++ F_CLOSEM = 0xa
++ F_DUP2FD = 0xe
++ F_DUPFD = 0x0
++ F_GETFD = 0x1
++ F_GETFL = 0x3
++ F_GETLK = 0xb
++ F_GETLK64 = 0xb
++ F_GETOWN = 0x8
++ F_LOCK = 0x1
++ F_OK = 0x0
++ F_RDLCK = 0x1
++ F_SETFD = 0x2
++ F_SETFL = 0x4
++ F_SETLK = 0xc
++ F_SETLK64 = 0xc
++ F_SETLKW = 0xd
++ F_SETLKW64 = 0xd
++ F_SETOWN = 0x9
++ F_TEST = 0x3
++ F_TLOCK = 0x2
++ F_TSTLK = 0xf
++ F_ULOCK = 0x0
++ F_UNLCK = 0x3
++ F_WRLCK = 0x2
++ HUPCL = 0x400
++ IBSHIFT = 0x10
++ ICANON = 0x2
++ ICMP6_FILTER = 0x26
++ ICMP6_SEC_SEND_DEL = 0x46
++ ICMP6_SEC_SEND_GET = 0x47
++ ICMP6_SEC_SEND_SET = 0x44
++ ICMP6_SEC_SEND_SET_CGA_ADDR = 0x45
++ ICRNL = 0x100
++ IEXTEN = 0x200000
++ IFA_FIRSTALIAS = 0x2000
++ IFA_ROUTE = 0x1
++ IFF_64BIT = 0x4000000
++ IFF_ALLCAST = 0x20000
++ IFF_ALLMULTI = 0x200
++ IFF_BPF = 0x8000000
++ IFF_BRIDGE = 0x40000
++ IFF_BROADCAST = 0x2
++ IFF_CANTCHANGE = 0x80c52
++ IFF_CHECKSUM_OFFLOAD = 0x10000000
++ IFF_D1 = 0x8000
++ IFF_D2 = 0x4000
++ IFF_D3 = 0x2000
++ IFF_D4 = 0x1000
++ IFF_DEBUG = 0x4
++ IFF_DEVHEALTH = 0x4000
++ IFF_DO_HW_LOOPBACK = 0x10000
++ IFF_GROUP_ROUTING = 0x2000000
++ IFF_IFBUFMGT = 0x800000
++ IFF_LINK0 = 0x100000
++ IFF_LINK1 = 0x200000
++ IFF_LINK2 = 0x400000
++ IFF_LOOPBACK = 0x8
++ IFF_MULTICAST = 0x80000
++ IFF_NOARP = 0x80
++ IFF_NOECHO = 0x800
++ IFF_NOTRAILERS = 0x20
++ IFF_OACTIVE = 0x400
++ IFF_POINTOPOINT = 0x10
++ IFF_PROMISC = 0x100
++ IFF_PSEG = 0x40000000
++ IFF_RUNNING = 0x40
++ IFF_SIMPLEX = 0x800
++ IFF_SNAP = 0x8000
++ IFF_TCP_DISABLE_CKSUM = 0x20000000
++ IFF_TCP_NOCKSUM = 0x1000000
++ IFF_UP = 0x1
++ IFF_VIPA = 0x80000000
++ IFNAMSIZ = 0x10
++ IFO_FLUSH = 0x1
++ IFT_1822 = 0x2
++ IFT_AAL5 = 0x31
++ IFT_ARCNET = 0x23
++ IFT_ARCNETPLUS = 0x24
++ IFT_ATM = 0x25
++ IFT_CEPT = 0x13
++ IFT_CLUSTER = 0x3e
++ IFT_DS3 = 0x1e
++ IFT_EON = 0x19
++ IFT_ETHER = 0x6
++ IFT_FCS = 0x3a
++ IFT_FDDI = 0xf
++ IFT_FRELAY = 0x20
++ IFT_FRELAYDCE = 0x2c
++ IFT_GIFTUNNEL = 0x3c
++ IFT_HDH1822 = 0x3
++ IFT_HF = 0x3d
++ IFT_HIPPI = 0x2f
++ IFT_HSSI = 0x2e
++ IFT_HY = 0xe
++ IFT_IB = 0xc7
++ IFT_ISDNBASIC = 0x14
++ IFT_ISDNPRIMARY = 0x15
++ IFT_ISO88022LLC = 0x29
++ IFT_ISO88023 = 0x7
++ IFT_ISO88024 = 0x8
++ IFT_ISO88025 = 0x9
++ IFT_ISO88026 = 0xa
++ IFT_LAPB = 0x10
++ IFT_LOCALTALK = 0x2a
++ IFT_LOOP = 0x18
++ IFT_MIOX25 = 0x26
++ IFT_MODEM = 0x30
++ IFT_NSIP = 0x1b
++ IFT_OTHER = 0x1
++ IFT_P10 = 0xc
++ IFT_P80 = 0xd
++ IFT_PARA = 0x22
++ IFT_PPP = 0x17
++ IFT_PROPMUX = 0x36
++ IFT_PROPVIRTUAL = 0x35
++ IFT_PTPSERIAL = 0x16
++ IFT_RS232 = 0x21
++ IFT_SDLC = 0x11
++ IFT_SIP = 0x1f
++ IFT_SLIP = 0x1c
++ IFT_SMDSDXI = 0x2b
++ IFT_SMDSICIP = 0x34
++ IFT_SN = 0x38
++ IFT_SONET = 0x27
++ IFT_SONETPATH = 0x32
++ IFT_SONETVT = 0x33
++ IFT_SP = 0x39
++ IFT_STARLAN = 0xb
++ IFT_T1 = 0x12
++ IFT_TUNNEL = 0x3b
++ IFT_ULTRA = 0x1d
++ IFT_V35 = 0x2d
++ IFT_VIPA = 0x37
++ IFT_X25 = 0x5
++ IFT_X25DDN = 0x4
++ IFT_X25PLE = 0x28
++ IFT_XETHER = 0x1a
++ IGNBRK = 0x1
++ IGNCR = 0x80
++ IGNPAR = 0x4
++ IMAXBEL = 0x10000
++ INLCR = 0x40
++ INPCK = 0x10
++ IN_CLASSA_HOST = 0xffffff
++ IN_CLASSA_MAX = 0x80
++ IN_CLASSA_NET = 0xff000000
++ IN_CLASSA_NSHIFT = 0x18
++ IN_CLASSB_HOST = 0xffff
++ IN_CLASSB_MAX = 0x10000
++ IN_CLASSB_NET = 0xffff0000
++ IN_CLASSB_NSHIFT = 0x10
++ IN_CLASSC_HOST = 0xff
++ IN_CLASSC_NET = 0xffffff00
++ IN_CLASSC_NSHIFT = 0x8
++ IN_CLASSD_HOST = 0xfffffff
++ IN_CLASSD_NET = 0xf0000000
++ IN_CLASSD_NSHIFT = 0x1c
++ IN_LOOPBACKNET = 0x7f
++ IN_USE = 0x1
++ IPPROTO_AH = 0x33
++ IPPROTO_BIP = 0x53
++ IPPROTO_DSTOPTS = 0x3c
++ IPPROTO_EGP = 0x8
++ IPPROTO_EON = 0x50
++ IPPROTO_ESP = 0x32
++ IPPROTO_FRAGMENT = 0x2c
++ IPPROTO_GGP = 0x3
++ IPPROTO_GIF = 0x8c
++ IPPROTO_GRE = 0x2f
++ IPPROTO_HOPOPTS = 0x0
++ IPPROTO_ICMP = 0x1
++ IPPROTO_ICMPV6 = 0x3a
++ IPPROTO_IDP = 0x16
++ IPPROTO_IGMP = 0x2
++ IPPROTO_IP = 0x0
++ IPPROTO_IPIP = 0x4
++ IPPROTO_IPV6 = 0x29
++ IPPROTO_LOCAL = 0x3f
++ IPPROTO_MAX = 0x100
++ IPPROTO_MH = 0x87
++ IPPROTO_NONE = 0x3b
++ IPPROTO_PUP = 0xc
++ IPPROTO_QOS = 0x2d
++ IPPROTO_RAW = 0xff
++ IPPROTO_ROUTING = 0x2b
++ IPPROTO_RSVP = 0x2e
++ IPPROTO_SCTP = 0x84
++ IPPROTO_TCP = 0x6
++ IPPROTO_TP = 0x1d
++ IPPROTO_UDP = 0x11
++ IPV6_ADDRFORM = 0x16
++ IPV6_ADDR_PREFERENCES = 0x4a
++ IPV6_ADD_MEMBERSHIP = 0xc
++ IPV6_AIXRAWSOCKET = 0x39
++ IPV6_CHECKSUM = 0x27
++ IPV6_DONTFRAG = 0x2d
++ IPV6_DROP_MEMBERSHIP = 0xd
++ IPV6_DSTOPTS = 0x36
++ IPV6_FLOWINFO_FLOWLABEL = 0xffffff
++ IPV6_FLOWINFO_PRIFLOW = 0xfffffff
++ IPV6_FLOWINFO_PRIORITY = 0xf000000
++ IPV6_FLOWINFO_SRFLAG = 0x10000000
++ IPV6_FLOWINFO_VERSION = 0xf0000000
++ IPV6_HOPLIMIT = 0x28
++ IPV6_HOPOPTS = 0x34
++ IPV6_JOIN_GROUP = 0xc
++ IPV6_LEAVE_GROUP = 0xd
++ IPV6_MIPDSTOPTS = 0x36
++ IPV6_MULTICAST_HOPS = 0xa
++ IPV6_MULTICAST_IF = 0x9
++ IPV6_MULTICAST_LOOP = 0xb
++ IPV6_NEXTHOP = 0x30
++ IPV6_NOPROBE = 0x1c
++ IPV6_PATHMTU = 0x2e
++ IPV6_PKTINFO = 0x21
++ IPV6_PKTOPTIONS = 0x24
++ IPV6_PRIORITY_10 = 0xa000000
++ IPV6_PRIORITY_11 = 0xb000000
++ IPV6_PRIORITY_12 = 0xc000000
++ IPV6_PRIORITY_13 = 0xd000000
++ IPV6_PRIORITY_14 = 0xe000000
++ IPV6_PRIORITY_15 = 0xf000000
++ IPV6_PRIORITY_8 = 0x8000000
++ IPV6_PRIORITY_9 = 0x9000000
++ IPV6_PRIORITY_BULK = 0x4000000
++ IPV6_PRIORITY_CONTROL = 0x7000000
++ IPV6_PRIORITY_FILLER = 0x1000000
++ IPV6_PRIORITY_INTERACTIVE = 0x6000000
++ IPV6_PRIORITY_RESERVED1 = 0x3000000
++ IPV6_PRIORITY_RESERVED2 = 0x5000000
++ IPV6_PRIORITY_UNATTENDED = 0x2000000
++ IPV6_PRIORITY_UNCHARACTERIZED = 0x0
++ IPV6_RECVDSTOPTS = 0x38
++ IPV6_RECVHOPLIMIT = 0x29
++ IPV6_RECVHOPOPTS = 0x35
++ IPV6_RECVHOPS = 0x22
++ IPV6_RECVIF = 0x1e
++ IPV6_RECVPATHMTU = 0x2f
++ IPV6_RECVPKTINFO = 0x23
++ IPV6_RECVRTHDR = 0x33
++ IPV6_RECVSRCRT = 0x1d
++ IPV6_RECVTCLASS = 0x2a
++ IPV6_RTHDR = 0x32
++ IPV6_RTHDRDSTOPTS = 0x37
++ IPV6_RTHDR_TYPE_0 = 0x0
++ IPV6_RTHDR_TYPE_2 = 0x2
++ IPV6_SENDIF = 0x1f
++ IPV6_SRFLAG_LOOSE = 0x0
++ IPV6_SRFLAG_STRICT = 0x10000000
++ IPV6_TCLASS = 0x2b
++ IPV6_TOKEN_LENGTH = 0x40
++ IPV6_UNICAST_HOPS = 0x4
++ IPV6_USE_MIN_MTU = 0x2c
++ IPV6_V6ONLY = 0x25
++ IPV6_VERSION = 0x60000000
++ IP_ADDRFORM = 0x16
++ IP_ADD_MEMBERSHIP = 0xc
++ IP_ADD_SOURCE_MEMBERSHIP = 0x3c
++ IP_BLOCK_SOURCE = 0x3a
++ IP_BROADCAST_IF = 0x10
++ IP_CACHE_LINE_SIZE = 0x80
++ IP_DEFAULT_MULTICAST_LOOP = 0x1
++ IP_DEFAULT_MULTICAST_TTL = 0x1
++ IP_DF = 0x4000
++ IP_DHCPMODE = 0x11
++ IP_DONTFRAG = 0x19
++ IP_DROP_MEMBERSHIP = 0xd
++ IP_DROP_SOURCE_MEMBERSHIP = 0x3d
++ IP_FINDPMTU = 0x1a
++ IP_HDRINCL = 0x2
++ IP_INC_MEMBERSHIPS = 0x14
++ IP_INIT_MEMBERSHIP = 0x14
++ IP_MAXPACKET = 0xffff
++ IP_MF = 0x2000
++ IP_MSS = 0x240
++ IP_MULTICAST_HOPS = 0xa
++ IP_MULTICAST_IF = 0x9
++ IP_MULTICAST_LOOP = 0xb
++ IP_MULTICAST_TTL = 0xa
++ IP_OPT = 0x1b
++ IP_OPTIONS = 0x1
++ IP_PMTUAGE = 0x1b
++ IP_RECVDSTADDR = 0x7
++ IP_RECVIF = 0x14
++ IP_RECVIFINFO = 0xf
++ IP_RECVINTERFACE = 0x20
++ IP_RECVMACHDR = 0xe
++ IP_RECVOPTS = 0x5
++ IP_RECVRETOPTS = 0x6
++ IP_RECVTTL = 0x22
++ IP_RETOPTS = 0x8
++ IP_SOURCE_FILTER = 0x48
++ IP_TOS = 0x3
++ IP_TTL = 0x4
++ IP_UNBLOCK_SOURCE = 0x3b
++ IP_UNICAST_HOPS = 0x4
++ ISIG = 0x1
++ ISTRIP = 0x20
++ IUCLC = 0x800
++ IXANY = 0x1000
++ IXOFF = 0x400
++ IXON = 0x200
++ I_FLUSH = 0x20005305
++ LNOFLSH = 0x8000
++ LOCK_EX = 0x2
++ LOCK_NB = 0x4
++ LOCK_SH = 0x1
++ LOCK_UN = 0x8
++ MADV_DONTNEED = 0x4
++ MADV_NORMAL = 0x0
++ MADV_RANDOM = 0x1
++ MADV_SEQUENTIAL = 0x2
++ MADV_SPACEAVAIL = 0x5
++ MADV_WILLNEED = 0x3
++ MAP_ANON = 0x10
++ MAP_ANONYMOUS = 0x10
++ MAP_FILE = 0x0
++ MAP_FIXED = 0x100
++ MAP_PRIVATE = 0x2
++ MAP_SHARED = 0x1
++ MAP_TYPE = 0xf0
++ MAP_VARIABLE = 0x0
++ MCAST_BLOCK_SOURCE = 0x40
++ MCAST_EXCLUDE = 0x2
++ MCAST_INCLUDE = 0x1
++ MCAST_JOIN_GROUP = 0x3e
++ MCAST_JOIN_SOURCE_GROUP = 0x42
++ MCAST_LEAVE_GROUP = 0x3f
++ MCAST_LEAVE_SOURCE_GROUP = 0x43
++ MCAST_SOURCE_FILTER = 0x49
++ MCAST_UNBLOCK_SOURCE = 0x41
++ MCL_CURRENT = 0x100
++ MCL_FUTURE = 0x200
++ MSG_ANY = 0x4
++ MSG_ARGEXT = 0x400
++ MSG_BAND = 0x2
++ MSG_COMPAT = 0x8000
++ MSG_CTRUNC = 0x20
++ MSG_DONTROUTE = 0x4
++ MSG_EOR = 0x8
++ MSG_HIPRI = 0x1
++ MSG_MAXIOVLEN = 0x10
++ MSG_MPEG2 = 0x80
++ MSG_NONBLOCK = 0x4000
++ MSG_NOSIGNAL = 0x100
++ MSG_OOB = 0x1
++ MSG_PEEK = 0x2
++ MSG_TRUNC = 0x10
++ MSG_WAITALL = 0x40
++ MSG_WAITFORONE = 0x200
++ MS_ASYNC = 0x10
++ MS_EINTR = 0x80
++ MS_INVALIDATE = 0x40
++ MS_PER_SEC = 0x3e8
++ MS_SYNC = 0x20
++ NFDBITS = 0x40
++ NL0 = 0x0
++ NL1 = 0x4000
++ NL2 = 0x8000
++ NL3 = 0xc000
++ NLDLY = 0x4000
++ NOFLSH = 0x80
++ NOFLUSH = 0x80000000
++ OCRNL = 0x8
++ OFDEL = 0x80
++ OFILL = 0x40
++ OLCUC = 0x2
++ ONLCR = 0x4
++ ONLRET = 0x20
++ ONOCR = 0x10
++ ONOEOT = 0x80000
++ OPOST = 0x1
++ OXTABS = 0x40000
++ O_ACCMODE = 0x23
++ O_APPEND = 0x8
++ O_CIO = 0x80
++ O_CIOR = 0x800000000
++ O_CLOEXEC = 0x800000
++ O_CREAT = 0x100
++ O_DEFER = 0x2000
++ O_DELAY = 0x4000
++ O_DIRECT = 0x8000000
++ O_DIRECTORY = 0x80000
++ O_DSYNC = 0x400000
++ O_EFSOFF = 0x400000000
++ O_EFSON = 0x200000000
++ O_EXCL = 0x400
++ O_EXEC = 0x20
++ O_LARGEFILE = 0x4000000
++ O_NDELAY = 0x8000
++ O_NOCACHE = 0x100000
++ O_NOCTTY = 0x800
++ O_NOFOLLOW = 0x1000000
++ O_NONBLOCK = 0x4
++ O_NONE = 0x3
++ O_NSHARE = 0x10000
++ O_RAW = 0x100000000
++ O_RDONLY = 0x0
++ O_RDWR = 0x2
++ O_RSHARE = 0x1000
++ O_RSYNC = 0x200000
++ O_SEARCH = 0x20
++ O_SNAPSHOT = 0x40
++ O_SYNC = 0x10
++ O_TRUNC = 0x200
++ O_TTY_INIT = 0x0
++ O_WRONLY = 0x1
++ PARENB = 0x100
++ PAREXT = 0x100000
++ PARMRK = 0x8
++ PARODD = 0x200
++ PENDIN = 0x20000000
++ PRIO_PGRP = 0x1
++ PRIO_PROCESS = 0x0
++ PRIO_USER = 0x2
++ PROT_EXEC = 0x4
++ PROT_NONE = 0x0
++ PROT_READ = 0x1
++ PROT_WRITE = 0x2
++ PR_64BIT = 0x20
++ PR_ADDR = 0x2
++ PR_ARGEXT = 0x400
++ PR_ATOMIC = 0x1
++ PR_CONNREQUIRED = 0x4
++ PR_FASTHZ = 0x5
++ PR_INP = 0x40
++ PR_INTRLEVEL = 0x8000
++ PR_MLS = 0x100
++ PR_MLS_1_LABEL = 0x200
++ PR_NOEOR = 0x4000
++ PR_RIGHTS = 0x10
++ PR_SLOWHZ = 0x2
++ PR_WANTRCVD = 0x8
++ RLIMIT_AS = 0x6
++ RLIMIT_CORE = 0x4
++ RLIMIT_CPU = 0x0
++ RLIMIT_DATA = 0x2
++ RLIMIT_FSIZE = 0x1
++ RLIMIT_NOFILE = 0x7
++ RLIMIT_NPROC = 0x9
++ RLIMIT_RSS = 0x5
++ RLIMIT_STACK = 0x3
++ RLIM_INFINITY = 0x7fffffffffffffff
++ RTAX_AUTHOR = 0x6
++ RTAX_BRD = 0x7
++ RTAX_DST = 0x0
++ RTAX_GATEWAY = 0x1
++ RTAX_GENMASK = 0x3
++ RTAX_IFA = 0x5
++ RTAX_IFP = 0x4
++ RTAX_MAX = 0x8
++ RTAX_NETMASK = 0x2
++ RTA_AUTHOR = 0x40
++ RTA_BRD = 0x80
++ RTA_DOWNSTREAM = 0x100
++ RTA_DST = 0x1
++ RTA_GATEWAY = 0x2
++ RTA_GENMASK = 0x8
++ RTA_IFA = 0x20
++ RTA_IFP = 0x10
++ RTA_NETMASK = 0x4
++ RTC_IA64 = 0x3
++ RTC_POWER = 0x1
++ RTC_POWER_PC = 0x2
++ RTF_ACTIVE_DGD = 0x1000000
++ RTF_BCE = 0x80000
++ RTF_BLACKHOLE = 0x1000
++ RTF_BROADCAST = 0x400000
++ RTF_BUL = 0x2000
++ RTF_CLONE = 0x10000
++ RTF_CLONED = 0x20000
++ RTF_CLONING = 0x100
++ RTF_DONE = 0x40
++ RTF_DYNAMIC = 0x10
++ RTF_FREE_IN_PROG = 0x4000000
++ RTF_GATEWAY = 0x2
++ RTF_HOST = 0x4
++ RTF_LLINFO = 0x400
++ RTF_LOCAL = 0x200000
++ RTF_MASK = 0x80
++ RTF_MODIFIED = 0x20
++ RTF_MULTICAST = 0x800000
++ RTF_PERMANENT6 = 0x8000000
++ RTF_PINNED = 0x100000
++ RTF_PROTO1 = 0x8000
++ RTF_PROTO2 = 0x4000
++ RTF_PROTO3 = 0x40000
++ RTF_REJECT = 0x8
++ RTF_SMALLMTU = 0x40000
++ RTF_STATIC = 0x800
++ RTF_STOPSRCH = 0x2000000
++ RTF_UNREACHABLE = 0x10000000
++ RTF_UP = 0x1
++ RTF_XRESOLVE = 0x200
++ RTM_ADD = 0x1
++ RTM_CHANGE = 0x3
++ RTM_DELADDR = 0xd
++ RTM_DELETE = 0x2
++ RTM_EXPIRE = 0xf
++ RTM_GET = 0x4
++ RTM_GETNEXT = 0x11
++ RTM_IFINFO = 0xe
++ RTM_LOCK = 0x8
++ RTM_LOSING = 0x5
++ RTM_MISS = 0x7
++ RTM_NEWADDR = 0xc
++ RTM_OLDADD = 0x9
++ RTM_OLDDEL = 0xa
++ RTM_REDIRECT = 0x6
++ RTM_RESOLVE = 0xb
++ RTM_RTLOST = 0x10
++ RTM_RTTUNIT = 0xf4240
++ RTM_SAMEADDR = 0x12
++ RTM_SET = 0x13
++ RTM_VERSION = 0x2
++ RTM_VERSION_GR = 0x4
++ RTM_VERSION_GR_COMPAT = 0x3
++ RTM_VERSION_POLICY = 0x5
++ RTM_VERSION_POLICY_EXT = 0x6
++ RTM_VERSION_POLICY_PRFN = 0x7
++ RTV_EXPIRE = 0x4
++ RTV_HOPCOUNT = 0x2
++ RTV_MTU = 0x1
++ RTV_RPIPE = 0x8
++ RTV_RTT = 0x40
++ RTV_RTTVAR = 0x80
++ RTV_SPIPE = 0x10
++ RTV_SSTHRESH = 0x20
++ RUSAGE_CHILDREN = -0x1
++ RUSAGE_SELF = 0x0
++ RUSAGE_THREAD = 0x1
++ SCM_RIGHTS = 0x1
++ SHUT_RD = 0x0
++ SHUT_RDWR = 0x2
++ SHUT_WR = 0x1
++ SIGMAX64 = 0xff
++ SIGQUEUE_MAX = 0x20
++ SIOCADDIFVIPA = 0x20006942
++ SIOCADDMTU = -0x7ffb9690
++ SIOCADDMULTI = -0x7fdf96cf
++ SIOCADDNETID = -0x7fd796a9
++ SIOCADDRT = -0x7fc78df6
++ SIOCAIFADDR = -0x7fbf96e6
++ SIOCATMARK = 0x40047307
++ SIOCDARP = -0x7fb396e0
++ SIOCDELIFVIPA = 0x20006943
++ SIOCDELMTU = -0x7ffb968f
++ SIOCDELMULTI = -0x7fdf96ce
++ SIOCDELPMTU = -0x7fd78ff6
++ SIOCDELRT = -0x7fc78df5
++ SIOCDIFADDR = -0x7fd796e7
++ SIOCDNETOPT = -0x3ffe9680
++ SIOCDX25XLATE = -0x7fd7969b
++ SIOCFIFADDR = -0x7fdf966d
++ SIOCGARP = -0x3fb396da
++ SIOCGETMTUS = 0x2000696f
++ SIOCGETSGCNT = -0x3feb8acc
++ SIOCGETVIFCNT = -0x3feb8acd
++ SIOCGHIWAT = 0x40047301
++ SIOCGIFADDR = -0x3fd796df
++ SIOCGIFADDRS = 0x2000698c
++ SIOCGIFBAUDRATE = -0x3fdf9669
++ SIOCGIFBRDADDR = -0x3fd796dd
++ SIOCGIFCONF = -0x3fef96bb
++ SIOCGIFCONFGLOB = -0x3fef9670
++ SIOCGIFDSTADDR = -0x3fd796de
++ SIOCGIFFLAGS = -0x3fd796ef
++ SIOCGIFGIDLIST = 0x20006968
++ SIOCGIFHWADDR = -0x3fab966b
++ SIOCGIFMETRIC = -0x3fd796e9
++ SIOCGIFMTU = -0x3fd796aa
++ SIOCGIFNETMASK = -0x3fd796db
++ SIOCGIFOPTIONS = -0x3fd796d6
++ SIOCGISNO = -0x3fd79695
++ SIOCGLOADF = -0x3ffb967e
++ SIOCGLOWAT = 0x40047303
++ SIOCGNETOPT = -0x3ffe96a5
++ SIOCGNETOPT1 = -0x3fdf967f
++ SIOCGNMTUS = 0x2000696e
++ SIOCGPGRP = 0x40047309
++ SIOCGSIZIFCONF = 0x4004696a
++ SIOCGSRCFILTER = -0x3fe796cb
++ SIOCGTUNEPHASE = -0x3ffb9676
++ SIOCGX25XLATE = -0x3fd7969c
++ SIOCIFATTACH = -0x7fdf9699
++ SIOCIFDETACH = -0x7fdf969a
++ SIOCIFGETPKEY = -0x7fdf969b
++ SIOCIF_ATM_DARP = -0x7fdf9683
++ SIOCIF_ATM_DUMPARP = -0x7fdf9685
++ SIOCIF_ATM_GARP = -0x7fdf9682
++ SIOCIF_ATM_IDLE = -0x7fdf9686
++ SIOCIF_ATM_SARP = -0x7fdf9681
++ SIOCIF_ATM_SNMPARP = -0x7fdf9687
++ SIOCIF_ATM_SVC = -0x7fdf9684
++ SIOCIF_ATM_UBR = -0x7fdf9688
++ SIOCIF_DEVHEALTH = -0x7ffb966c
++ SIOCIF_IB_ARP_INCOMP = -0x7fdf9677
++ SIOCIF_IB_ARP_TIMER = -0x7fdf9678
++ SIOCIF_IB_CLEAR_PINFO = -0x3fdf966f
++ SIOCIF_IB_DEL_ARP = -0x7fdf967f
++ SIOCIF_IB_DEL_PINFO = -0x3fdf9670
++ SIOCIF_IB_DUMP_ARP = -0x7fdf9680
++ SIOCIF_IB_GET_ARP = -0x7fdf967e
++ SIOCIF_IB_GET_INFO = -0x3f879675
++ SIOCIF_IB_GET_STATS = -0x3f879672
++ SIOCIF_IB_NOTIFY_ADDR_REM = -0x3f87966a
++ SIOCIF_IB_RESET_STATS = -0x3f879671
++ SIOCIF_IB_RESIZE_CQ = -0x7fdf9679
++ SIOCIF_IB_SET_ARP = -0x7fdf967d
++ SIOCIF_IB_SET_PKEY = -0x7fdf967c
++ SIOCIF_IB_SET_PORT = -0x7fdf967b
++ SIOCIF_IB_SET_QKEY = -0x7fdf9676
++ SIOCIF_IB_SET_QSIZE = -0x7fdf967a
++ SIOCLISTIFVIPA = 0x20006944
++ SIOCSARP = -0x7fb396e2
++ SIOCSHIWAT = 0xffffffff80047300
++ SIOCSIFADDR = -0x7fd796f4
++ SIOCSIFADDRORI = -0x7fdb9673
++ SIOCSIFBRDADDR = -0x7fd796ed
++ SIOCSIFDSTADDR = -0x7fd796f2
++ SIOCSIFFLAGS = -0x7fd796f0
++ SIOCSIFGIDLIST = 0x20006969
++ SIOCSIFMETRIC = -0x7fd796e8
++ SIOCSIFMTU = -0x7fd796a8
++ SIOCSIFNETDUMP = -0x7fd796e4
++ SIOCSIFNETMASK = -0x7fd796ea
++ SIOCSIFOPTIONS = -0x7fd796d7
++ SIOCSIFSUBCHAN = -0x7fd796e5
++ SIOCSISNO = -0x7fd79694
++ SIOCSLOADF = -0x3ffb967d
++ SIOCSLOWAT = 0xffffffff80047302
++ SIOCSNETOPT = -0x7ffe96a6
++ SIOCSPGRP = 0xffffffff80047308
++ SIOCSX25XLATE = -0x7fd7969d
++ SOCK_CONN_DGRAM = 0x6
++ SOCK_DGRAM = 0x2
++ SOCK_RAW = 0x3
++ SOCK_RDM = 0x4
++ SOCK_SEQPACKET = 0x5
++ SOCK_STREAM = 0x1
++ SOL_SOCKET = 0xffff
++ SOMAXCONN = 0x400
++ SO_ACCEPTCONN = 0x2
++ SO_AUDIT = 0x8000
++ SO_BROADCAST = 0x20
++ SO_CKSUMRECV = 0x800
++ SO_DEBUG = 0x1
++ SO_DONTROUTE = 0x10
++ SO_ERROR = 0x1007
++ SO_KEEPALIVE = 0x8
++ SO_KERNACCEPT = 0x2000
++ SO_LINGER = 0x80
++ SO_NOMULTIPATH = 0x4000
++ SO_NOREUSEADDR = 0x1000
++ SO_OOBINLINE = 0x100
++ SO_PEERID = 0x1009
++ SO_RCVBUF = 0x1002
++ SO_RCVLOWAT = 0x1004
++ SO_RCVTIMEO = 0x1006
++ SO_REUSEADDR = 0x4
++ SO_REUSEPORT = 0x200
++ SO_SNDBUF = 0x1001
++ SO_SNDLOWAT = 0x1003
++ SO_SNDTIMEO = 0x1005
++ SO_TIMESTAMPNS = 0x100a
++ SO_TYPE = 0x1008
++ SO_USELOOPBACK = 0x40
++ SO_USE_IFBUFS = 0x400
++ S_BANDURG = 0x400
++ S_EMODFMT = 0x3c000000
++ S_ENFMT = 0x400
++ S_ERROR = 0x100
++ S_HANGUP = 0x200
++ S_HIPRI = 0x2
++ S_ICRYPTO = 0x80000
++ S_IEXEC = 0x40
++ S_IFBLK = 0x6000
++ S_IFCHR = 0x2000
++ S_IFDIR = 0x4000
++ S_IFIFO = 0x1000
++ S_IFJOURNAL = 0x10000
++ S_IFLNK = 0xa000
++ S_IFMPX = 0x2200
++ S_IFMT = 0xf000
++ S_IFPDIR = 0x4000000
++ S_IFPSDIR = 0x8000000
++ S_IFPSSDIR = 0xc000000
++ S_IFREG = 0x8000
++ S_IFSOCK = 0xc000
++ S_IFSYSEA = 0x30000000
++ S_INPUT = 0x1
++ S_IREAD = 0x100
++ S_IRGRP = 0x20
++ S_IROTH = 0x4
++ S_IRUSR = 0x100
++ S_IRWXG = 0x38
++ S_IRWXO = 0x7
++ S_IRWXU = 0x1c0
++ S_ISGID = 0x400
++ S_ISUID = 0x800
++ S_ISVTX = 0x200
++ S_ITCB = 0x1000000
++ S_ITP = 0x800000
++ S_IWGRP = 0x10
++ S_IWOTH = 0x2
++ S_IWRITE = 0x80
++ S_IWUSR = 0x80
++ S_IXACL = 0x2000000
++ S_IXATTR = 0x40000
++ S_IXGRP = 0x8
++ S_IXINTERFACE = 0x100000
++ S_IXMOD = 0x40000000
++ S_IXOTH = 0x1
++ S_IXUSR = 0x40
++ S_MSG = 0x8
++ S_OUTPUT = 0x4
++ S_RDBAND = 0x20
++ S_RDNORM = 0x10
++ S_RESERVED1 = 0x20000
++ S_RESERVED2 = 0x200000
++ S_RESERVED3 = 0x400000
++ S_RESERVED4 = 0x80000000
++ S_RESFMT1 = 0x10000000
++ S_RESFMT10 = 0x34000000
++ S_RESFMT11 = 0x38000000
++ S_RESFMT12 = 0x3c000000
++ S_RESFMT2 = 0x14000000
++ S_RESFMT3 = 0x18000000
++ S_RESFMT4 = 0x1c000000
++ S_RESFMT5 = 0x20000000
++ S_RESFMT6 = 0x24000000
++ S_RESFMT7 = 0x28000000
++ S_RESFMT8 = 0x2c000000
++ S_WRBAND = 0x80
++ S_WRNORM = 0x40
++ TAB0 = 0x0
++ TAB1 = 0x400
++ TAB2 = 0x800
++ TAB3 = 0xc00
++ TABDLY = 0xc00
++ TCFLSH = 0x540c
++ TCGETA = 0x5405
++ TCGETS = 0x5401
++ TCIFLUSH = 0x0
++ TCIOFF = 0x2
++ TCIOFLUSH = 0x2
++ TCION = 0x3
++ TCOFLUSH = 0x1
++ TCOOFF = 0x0
++ TCOON = 0x1
++ TCP_24DAYS_WORTH_OF_SLOWTICKS = 0x3f4800
++ TCP_ACLADD = 0x23
++ TCP_ACLBIND = 0x26
++ TCP_ACLCLEAR = 0x22
++ TCP_ACLDEL = 0x24
++ TCP_ACLDENY = 0x8
++ TCP_ACLFLUSH = 0x21
++ TCP_ACLGID = 0x1
++ TCP_ACLLS = 0x25
++ TCP_ACLSUBNET = 0x4
++ TCP_ACLUID = 0x2
++ TCP_CWND_DF = 0x16
++ TCP_CWND_IF = 0x15
++ TCP_DELAY_ACK_FIN = 0x2
++ TCP_DELAY_ACK_SYN = 0x1
++ TCP_FASTNAME = 0x101080a
++ TCP_KEEPCNT = 0x13
++ TCP_KEEPIDLE = 0x11
++ TCP_KEEPINTVL = 0x12
++ TCP_LSPRIV = 0x29
++ TCP_LUID = 0x20
++ TCP_MAXBURST = 0x8
++ TCP_MAXDF = 0x64
++ TCP_MAXIF = 0x64
++ TCP_MAXSEG = 0x2
++ TCP_MAXWIN = 0xffff
++ TCP_MAXWINDOWSCALE = 0xe
++ TCP_MAX_SACK = 0x4
++ TCP_MSS = 0x5b4
++ TCP_NODELAY = 0x1
++ TCP_NODELAYACK = 0x14
++ TCP_NOREDUCE_CWND_EXIT_FRXMT = 0x19
++ TCP_NOREDUCE_CWND_IN_FRXMT = 0x18
++ TCP_NOTENTER_SSTART = 0x17
++ TCP_OPT = 0x19
++ TCP_RFC1323 = 0x4
++ TCP_SETPRIV = 0x27
++ TCP_STDURG = 0x10
++ TCP_TIMESTAMP_OPTLEN = 0xc
++ TCP_UNSETPRIV = 0x28
++ TCSAFLUSH = 0x2
++ TCSBRK = 0x5409
++ TCSETA = 0x5406
++ TCSETAF = 0x5408
++ TCSETAW = 0x5407
++ TCSETS = 0x5402
++ TCSETSF = 0x5404
++ TCSETSW = 0x5403
++ TCXONC = 0x540b
++ TIMER_ABSTIME = 0x3e7
++ TIMER_MAX = 0x20
++ TIOC = 0x5400
++ TIOCCBRK = 0x2000747a
++ TIOCCDTR = 0x20007478
++ TIOCCONS = 0xffffffff80047462
++ TIOCEXCL = 0x2000740d
++ TIOCFLUSH = 0xffffffff80047410
++ TIOCGETC = 0x40067412
++ TIOCGETD = 0x40047400
++ TIOCGETP = 0x40067408
++ TIOCGLTC = 0x40067474
++ TIOCGPGRP = 0x40047477
++ TIOCGSID = 0x40047448
++ TIOCGSIZE = 0x40087468
++ TIOCGWINSZ = 0x40087468
++ TIOCHPCL = 0x20007402
++ TIOCLBIC = 0xffffffff8004747e
++ TIOCLBIS = 0xffffffff8004747f
++ TIOCLGET = 0x4004747c
++ TIOCLSET = 0xffffffff8004747d
++ TIOCMBIC = 0xffffffff8004746b
++ TIOCMBIS = 0xffffffff8004746c
++ TIOCMGET = 0x4004746a
++ TIOCMIWAIT = 0xffffffff80047464
++ TIOCMODG = 0x40047403
++ TIOCMODS = 0xffffffff80047404
++ TIOCMSET = 0xffffffff8004746d
++ TIOCM_CAR = 0x40
++ TIOCM_CD = 0x40
++ TIOCM_CTS = 0x20
++ TIOCM_DSR = 0x100
++ TIOCM_DTR = 0x2
++ TIOCM_LE = 0x1
++ TIOCM_RI = 0x80
++ TIOCM_RNG = 0x80
++ TIOCM_RTS = 0x4
++ TIOCM_SR = 0x10
++ TIOCM_ST = 0x8
++ TIOCNOTTY = 0x20007471
++ TIOCNXCL = 0x2000740e
++ TIOCOUTQ = 0x40047473
++ TIOCPKT = 0xffffffff80047470
++ TIOCPKT_DATA = 0x0
++ TIOCPKT_DOSTOP = 0x20
++ TIOCPKT_FLUSHREAD = 0x1
++ TIOCPKT_FLUSHWRITE = 0x2
++ TIOCPKT_NOSTOP = 0x10
++ TIOCPKT_START = 0x8
++ TIOCPKT_STOP = 0x4
++ TIOCREMOTE = 0xffffffff80047469
++ TIOCSBRK = 0x2000747b
++ TIOCSDTR = 0x20007479
++ TIOCSETC = 0xffffffff80067411
++ TIOCSETD = 0xffffffff80047401
++ TIOCSETN = 0xffffffff8006740a
++ TIOCSETP = 0xffffffff80067409
++ TIOCSLTC = 0xffffffff80067475
++ TIOCSPGRP = 0xffffffff80047476
++ TIOCSSIZE = 0xffffffff80087467
++ TIOCSTART = 0x2000746e
++ TIOCSTI = 0xffffffff80017472
++ TIOCSTOP = 0x2000746f
++ TIOCSWINSZ = 0xffffffff80087467
++ TIOCUCNTL = 0xffffffff80047466
++ TOSTOP = 0x10000
++ UTIME_NOW = -0x2
++ UTIME_OMIT = -0x3
++ VDISCRD = 0xc
++ VDSUSP = 0xa
++ VEOF = 0x4
++ VEOL = 0x5
++ VEOL2 = 0x6
++ VERASE = 0x2
++ VINTR = 0x0
++ VKILL = 0x3
++ VLNEXT = 0xe
++ VMIN = 0x4
++ VQUIT = 0x1
++ VREPRINT = 0xb
++ VSTART = 0x7
++ VSTOP = 0x8
++ VSTRT = 0x7
++ VSUSP = 0x9
++ VT0 = 0x0
++ VT1 = 0x8000
++ VTDELAY = 0x2000
++ VTDLY = 0x8000
++ VTIME = 0x5
++ VWERSE = 0xd
++ WPARSTART = 0x1
++ WPARSTOP = 0x2
++ WPARTTYNAME = "Global"
++ XCASE = 0x4
++ XTABS = 0xc00
++ _FDATAFLUSH = 0x2000000000
++)
++
++// Errors
++const (
++ E2BIG = syscall.Errno(0x7)
++ EACCES = syscall.Errno(0xd)
++ EADDRINUSE = syscall.Errno(0x43)
++ EADDRNOTAVAIL = syscall.Errno(0x44)
++ EAFNOSUPPORT = syscall.Errno(0x42)
++ EAGAIN = syscall.Errno(0xb)
++ EALREADY = syscall.Errno(0x38)
++ EBADF = syscall.Errno(0x9)
++ EBADMSG = syscall.Errno(0x78)
++ EBUSY = syscall.Errno(0x10)
++ ECANCELED = syscall.Errno(0x75)
++ ECHILD = syscall.Errno(0xa)
++ ECHRNG = syscall.Errno(0x25)
++ ECLONEME = syscall.Errno(0x52)
++ ECONNABORTED = syscall.Errno(0x48)
++ ECONNREFUSED = syscall.Errno(0x4f)
++ ECONNRESET = syscall.Errno(0x49)
++ ECORRUPT = syscall.Errno(0x59)
++ EDEADLK = syscall.Errno(0x2d)
++ EDESTADDREQ = syscall.Errno(0x3a)
++ EDESTADDRREQ = syscall.Errno(0x3a)
++ EDIST = syscall.Errno(0x35)
++ EDOM = syscall.Errno(0x21)
++ EDQUOT = syscall.Errno(0x58)
++ EEXIST = syscall.Errno(0x11)
++ EFAULT = syscall.Errno(0xe)
++ EFBIG = syscall.Errno(0x1b)
++ EFORMAT = syscall.Errno(0x30)
++ EHOSTDOWN = syscall.Errno(0x50)
++ EHOSTUNREACH = syscall.Errno(0x51)
++ EIDRM = syscall.Errno(0x24)
++ EILSEQ = syscall.Errno(0x74)
++ EINPROGRESS = syscall.Errno(0x37)
++ EINTR = syscall.Errno(0x4)
++ EINVAL = syscall.Errno(0x16)
++ EIO = syscall.Errno(0x5)
++ EISCONN = syscall.Errno(0x4b)
++ EISDIR = syscall.Errno(0x15)
++ EL2HLT = syscall.Errno(0x2c)
++ EL2NSYNC = syscall.Errno(0x26)
++ EL3HLT = syscall.Errno(0x27)
++ EL3RST = syscall.Errno(0x28)
++ ELNRNG = syscall.Errno(0x29)
++ ELOOP = syscall.Errno(0x55)
++ EMEDIA = syscall.Errno(0x6e)
++ EMFILE = syscall.Errno(0x18)
++ EMLINK = syscall.Errno(0x1f)
++ EMSGSIZE = syscall.Errno(0x3b)
++ EMULTIHOP = syscall.Errno(0x7d)
++ ENAMETOOLONG = syscall.Errno(0x56)
++ ENETDOWN = syscall.Errno(0x45)
++ ENETRESET = syscall.Errno(0x47)
++ ENETUNREACH = syscall.Errno(0x46)
++ ENFILE = syscall.Errno(0x17)
++ ENOATTR = syscall.Errno(0x70)
++ ENOBUFS = syscall.Errno(0x4a)
++ ENOCONNECT = syscall.Errno(0x32)
++ ENOCSI = syscall.Errno(0x2b)
++ ENODATA = syscall.Errno(0x7a)
++ ENODEV = syscall.Errno(0x13)
++ ENOENT = syscall.Errno(0x2)
++ ENOEXEC = syscall.Errno(0x8)
++ ENOLCK = syscall.Errno(0x31)
++ ENOLINK = syscall.Errno(0x7e)
++ ENOMEM = syscall.Errno(0xc)
++ ENOMSG = syscall.Errno(0x23)
++ ENOPROTOOPT = syscall.Errno(0x3d)
++ ENOSPC = syscall.Errno(0x1c)
++ ENOSR = syscall.Errno(0x76)
++ ENOSTR = syscall.Errno(0x7b)
++ ENOSYS = syscall.Errno(0x6d)
++ ENOTBLK = syscall.Errno(0xf)
++ ENOTCONN = syscall.Errno(0x4c)
++ ENOTDIR = syscall.Errno(0x14)
++ ENOTEMPTY = syscall.Errno(0x11)
++ ENOTREADY = syscall.Errno(0x2e)
++ ENOTRECOVERABLE = syscall.Errno(0x5e)
++ ENOTRUST = syscall.Errno(0x72)
++ ENOTSOCK = syscall.Errno(0x39)
++ ENOTSUP = syscall.Errno(0x7c)
++ ENOTTY = syscall.Errno(0x19)
++ ENXIO = syscall.Errno(0x6)
++ EOPNOTSUPP = syscall.Errno(0x40)
++ EOVERFLOW = syscall.Errno(0x7f)
++ EOWNERDEAD = syscall.Errno(0x5f)
++ EPERM = syscall.Errno(0x1)
++ EPFNOSUPPORT = syscall.Errno(0x41)
++ EPIPE = syscall.Errno(0x20)
++ EPROCLIM = syscall.Errno(0x53)
++ EPROTO = syscall.Errno(0x79)
++ EPROTONOSUPPORT = syscall.Errno(0x3e)
++ EPROTOTYPE = syscall.Errno(0x3c)
++ ERANGE = syscall.Errno(0x22)
++ EREMOTE = syscall.Errno(0x5d)
++ ERESTART = syscall.Errno(0x52)
++ EROFS = syscall.Errno(0x1e)
++ ESAD = syscall.Errno(0x71)
++ ESHUTDOWN = syscall.Errno(0x4d)
++ ESOCKTNOSUPPORT = syscall.Errno(0x3f)
++ ESOFT = syscall.Errno(0x6f)
++ ESPIPE = syscall.Errno(0x1d)
++ ESRCH = syscall.Errno(0x3)
++ ESTALE = syscall.Errno(0x34)
++ ESYSERROR = syscall.Errno(0x5a)
++ ETIME = syscall.Errno(0x77)
++ ETIMEDOUT = syscall.Errno(0x4e)
++ ETOOMANYREFS = syscall.Errno(0x73)
++ ETXTBSY = syscall.Errno(0x1a)
++ EUNATCH = syscall.Errno(0x2a)
++ EUSERS = syscall.Errno(0x54)
++ EWOULDBLOCK = syscall.Errno(0xb)
++ EWRPROTECT = syscall.Errno(0x2f)
++ EXDEV = syscall.Errno(0x12)
++)
++
++// Signals
++const (
++ SIGABRT = syscall.Signal(0x6)
++ SIGAIO = syscall.Signal(0x17)
++ SIGALRM = syscall.Signal(0xe)
++ SIGALRM1 = syscall.Signal(0x26)
++ SIGBUS = syscall.Signal(0xa)
++ SIGCAPI = syscall.Signal(0x31)
++ SIGCHLD = syscall.Signal(0x14)
++ SIGCLD = syscall.Signal(0x14)
++ SIGCONT = syscall.Signal(0x13)
++ SIGCPUFAIL = syscall.Signal(0x3b)
++ SIGDANGER = syscall.Signal(0x21)
++ SIGEMT = syscall.Signal(0x7)
++ SIGFPE = syscall.Signal(0x8)
++ SIGGRANT = syscall.Signal(0x3c)
++ SIGHUP = syscall.Signal(0x1)
++ SIGILL = syscall.Signal(0x4)
++ SIGINT = syscall.Signal(0x2)
++ SIGIO = syscall.Signal(0x17)
++ SIGIOINT = syscall.Signal(0x10)
++ SIGIOT = syscall.Signal(0x6)
++ SIGKAP = syscall.Signal(0x3c)
++ SIGKILL = syscall.Signal(0x9)
++ SIGLOST = syscall.Signal(0x6)
++ SIGMAX = syscall.Signal(0xff)
++ SIGMAX32 = syscall.Signal(0x3f)
++ SIGMIGRATE = syscall.Signal(0x23)
++ SIGMSG = syscall.Signal(0x1b)
++ SIGPIPE = syscall.Signal(0xd)
++ SIGPOLL = syscall.Signal(0x17)
++ SIGPRE = syscall.Signal(0x24)
++ SIGPROF = syscall.Signal(0x20)
++ SIGPTY = syscall.Signal(0x17)
++ SIGPWR = syscall.Signal(0x1d)
++ SIGQUIT = syscall.Signal(0x3)
++ SIGRECONFIG = syscall.Signal(0x3a)
++ SIGRETRACT = syscall.Signal(0x3d)
++ SIGSAK = syscall.Signal(0x3f)
++ SIGSEGV = syscall.Signal(0xb)
++ SIGSOUND = syscall.Signal(0x3e)
++ SIGSTOP = syscall.Signal(0x11)
++ SIGSYS = syscall.Signal(0xc)
++ SIGSYSERROR = syscall.Signal(0x30)
++ SIGTALRM = syscall.Signal(0x26)
++ SIGTERM = syscall.Signal(0xf)
++ SIGTRAP = syscall.Signal(0x5)
++ SIGTSTP = syscall.Signal(0x12)
++ SIGTTIN = syscall.Signal(0x15)
++ SIGTTOU = syscall.Signal(0x16)
++ SIGURG = syscall.Signal(0x10)
++ SIGUSR1 = syscall.Signal(0x1e)
++ SIGUSR2 = syscall.Signal(0x1f)
++ SIGVIRT = syscall.Signal(0x25)
++ SIGVTALRM = syscall.Signal(0x22)
++ SIGWAITING = syscall.Signal(0x27)
++ SIGWINCH = syscall.Signal(0x1c)
++ SIGXCPU = syscall.Signal(0x18)
++ SIGXFSZ = syscall.Signal(0x19)
++)
++
++// Error table
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "not owner"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "I/O error"},
++ {6, "ENXIO", "no such device or address"},
++ {7, "E2BIG", "arg list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file number"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EWOULDBLOCK", "resource temporarily unavailable"},
++ {12, "ENOMEM", "not enough space"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device busy"},
++ {17, "ENOTEMPTY", "file exists"},
++ {18, "EXDEV", "cross-device link"},
++ {19, "ENODEV", "no such device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "file table overflow"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "not a typewriter"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "argument out of domain"},
++ {34, "ERANGE", "result too large"},
++ {35, "ENOMSG", "no message of desired type"},
++ {36, "EIDRM", "identifier removed"},
++ {37, "ECHRNG", "channel number out of range"},
++ {38, "EL2NSYNC", "level 2 not synchronized"},
++ {39, "EL3HLT", "level 3 halted"},
++ {40, "EL3RST", "level 3 reset"},
++ {41, "ELNRNG", "link number out of range"},
++ {42, "EUNATCH", "protocol driver not attached"},
++ {43, "ENOCSI", "no CSI structure available"},
++ {44, "EL2HLT", "level 2 halted"},
++ {45, "EDEADLK", "deadlock condition if locked"},
++ {46, "ENOTREADY", "device not ready"},
++ {47, "EWRPROTECT", "write-protected media"},
++ {48, "EFORMAT", "unformatted or incompatible media"},
++ {49, "ENOLCK", "no locks available"},
++ {50, "ENOCONNECT", "cannot Establish Connection"},
++ {52, "ESTALE", "missing file or filesystem"},
++ {53, "EDIST", "requests blocked by Administrator"},
++ {55, "EINPROGRESS", "operation now in progress"},
++ {56, "EALREADY", "operation already in progress"},
++ {57, "ENOTSOCK", "socket operation on non-socket"},
++ {58, "EDESTADDREQ", "destination address required"},
++ {59, "EMSGSIZE", "message too long"},
++ {60, "EPROTOTYPE", "protocol wrong type for socket"},
++ {61, "ENOPROTOOPT", "protocol not available"},
++ {62, "EPROTONOSUPPORT", "protocol not supported"},
++ {63, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {64, "EOPNOTSUPP", "operation not supported on socket"},
++ {65, "EPFNOSUPPORT", "protocol family not supported"},
++ {66, "EAFNOSUPPORT", "addr family not supported by protocol"},
++ {67, "EADDRINUSE", "address already in use"},
++ {68, "EADDRNOTAVAIL", "can't assign requested address"},
++ {69, "ENETDOWN", "network is down"},
++ {70, "ENETUNREACH", "network is unreachable"},
++ {71, "ENETRESET", "network dropped connection on reset"},
++ {72, "ECONNABORTED", "software caused connection abort"},
++ {73, "ECONNRESET", "connection reset by peer"},
++ {74, "ENOBUFS", "no buffer space available"},
++ {75, "EISCONN", "socket is already connected"},
++ {76, "ENOTCONN", "socket is not connected"},
++ {77, "ESHUTDOWN", "can't send after socket shutdown"},
++ {78, "ETIMEDOUT", "connection timed out"},
++ {79, "ECONNREFUSED", "connection refused"},
++ {80, "EHOSTDOWN", "host is down"},
++ {81, "EHOSTUNREACH", "no route to host"},
++ {82, "ERESTART", "restart the system call"},
++ {83, "EPROCLIM", "too many processes"},
++ {84, "EUSERS", "too many users"},
++ {85, "ELOOP", "too many levels of symbolic links"},
++ {86, "ENAMETOOLONG", "file name too long"},
++ {88, "EDQUOT", "disk quota exceeded"},
++ {89, "ECORRUPT", "invalid file system control data detected"},
++ {90, "ESYSERROR", "for future use "},
++ {93, "EREMOTE", "item is not local to host"},
++ {94, "ENOTRECOVERABLE", "state not recoverable "},
++ {95, "EOWNERDEAD", "previous owner died "},
++ {109, "ENOSYS", "function not implemented"},
++ {110, "EMEDIA", "media surface error"},
++ {111, "ESOFT", "I/O completed, but needs relocation"},
++ {112, "ENOATTR", "no attribute found"},
++ {113, "ESAD", "security Authentication Denied"},
++ {114, "ENOTRUST", "not a Trusted Program"},
++ {115, "ETOOMANYREFS", "too many references: can't splice"},
++ {116, "EILSEQ", "invalid wide character"},
++ {117, "ECANCELED", "asynchronous I/O cancelled"},
++ {118, "ENOSR", "out of STREAMS resources"},
++ {119, "ETIME", "system call timed out"},
++ {120, "EBADMSG", "next message has wrong type"},
++ {121, "EPROTO", "error in protocol"},
++ {122, "ENODATA", "no message on stream head read q"},
++ {123, "ENOSTR", "fd not associated with a stream"},
++ {124, "ENOTSUP", "unsupported attribute value"},
++ {125, "EMULTIHOP", "multihop is not allowed"},
++ {126, "ENOLINK", "the server link has been severed"},
++ {127, "EOVERFLOW", "value too large to be stored in data type"},
++}
++
++// Signal table
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/BPT trap"},
++ {6, "SIGIOT", "IOT/Abort trap"},
++ {7, "SIGEMT", "EMT trap"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGBUS", "bus error"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGSYS", "bad system call"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGURG", "urgent I/O condition"},
++ {17, "SIGSTOP", "stopped (signal)"},
++ {18, "SIGTSTP", "stopped"},
++ {19, "SIGCONT", "continued"},
++ {20, "SIGCHLD", "child exited"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGIO", "I/O possible/complete"},
++ {24, "SIGXCPU", "cputime limit exceeded"},
++ {25, "SIGXFSZ", "filesize limit exceeded"},
++ {27, "SIGMSG", "input device data"},
++ {28, "SIGWINCH", "window size changes"},
++ {29, "SIGPWR", "power-failure"},
++ {30, "SIGUSR1", "user defined signal 1"},
++ {31, "SIGUSR2", "user defined signal 2"},
++ {32, "SIGPROF", "profiling timer expired"},
++ {33, "SIGDANGER", "paging space low"},
++ {34, "SIGVTALRM", "virtual timer expired"},
++ {35, "SIGMIGRATE", "signal 35"},
++ {36, "SIGPRE", "signal 36"},
++ {37, "SIGVIRT", "signal 37"},
++ {38, "SIGTALRM", "signal 38"},
++ {39, "SIGWAITING", "signal 39"},
++ {48, "SIGSYSERROR", "signal 48"},
++ {49, "SIGCAPI", "signal 49"},
++ {58, "SIGRECONFIG", "signal 58"},
++ {59, "SIGCPUFAIL", "CPU Failure Predicted"},
++ {60, "SIGGRANT", "monitor mode granted"},
++ {61, "SIGRETRACT", "monitor mode retracted"},
++ {62, "SIGSOUND", "sound completed"},
++ {63, "SIGMAX32", "secure attention"},
++ {255, "SIGMAX", "signal 255"},
++}
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go
+index 1c68758b..6217cdba 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go
+@@ -3,7 +3,7 @@
+
+ // +build 386,darwin
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m32 _const.go
+
+ package unix
+@@ -49,6 +49,86 @@ const (
+ AF_UNSPEC = 0x0
+ AF_UTUN = 0x26
+ ALTWERASE = 0x200
++ ATTR_BIT_MAP_COUNT = 0x5
++ ATTR_CMN_ACCESSMASK = 0x20000
++ ATTR_CMN_ACCTIME = 0x1000
++ ATTR_CMN_ADDEDTIME = 0x10000000
++ ATTR_CMN_BKUPTIME = 0x2000
++ ATTR_CMN_CHGTIME = 0x800
++ ATTR_CMN_CRTIME = 0x200
++ ATTR_CMN_DATA_PROTECT_FLAGS = 0x40000000
++ ATTR_CMN_DEVID = 0x2
++ ATTR_CMN_DOCUMENT_ID = 0x100000
++ ATTR_CMN_ERROR = 0x20000000
++ ATTR_CMN_EXTENDED_SECURITY = 0x400000
++ ATTR_CMN_FILEID = 0x2000000
++ ATTR_CMN_FLAGS = 0x40000
++ ATTR_CMN_FNDRINFO = 0x4000
++ ATTR_CMN_FSID = 0x4
++ ATTR_CMN_FULLPATH = 0x8000000
++ ATTR_CMN_GEN_COUNT = 0x80000
++ ATTR_CMN_GRPID = 0x10000
++ ATTR_CMN_GRPUUID = 0x1000000
++ ATTR_CMN_MODTIME = 0x400
++ ATTR_CMN_NAME = 0x1
++ ATTR_CMN_NAMEDATTRCOUNT = 0x80000
++ ATTR_CMN_NAMEDATTRLIST = 0x100000
++ ATTR_CMN_OBJID = 0x20
++ ATTR_CMN_OBJPERMANENTID = 0x40
++ ATTR_CMN_OBJTAG = 0x10
++ ATTR_CMN_OBJTYPE = 0x8
++ ATTR_CMN_OWNERID = 0x8000
++ ATTR_CMN_PARENTID = 0x4000000
++ ATTR_CMN_PAROBJID = 0x80
++ ATTR_CMN_RETURNED_ATTRS = 0x80000000
++ ATTR_CMN_SCRIPT = 0x100
++ ATTR_CMN_SETMASK = 0x41c7ff00
++ ATTR_CMN_USERACCESS = 0x200000
++ ATTR_CMN_UUID = 0x800000
++ ATTR_CMN_VALIDMASK = 0xffffffff
++ ATTR_CMN_VOLSETMASK = 0x6700
++ ATTR_FILE_ALLOCSIZE = 0x4
++ ATTR_FILE_CLUMPSIZE = 0x10
++ ATTR_FILE_DATAALLOCSIZE = 0x400
++ ATTR_FILE_DATAEXTENTS = 0x800
++ ATTR_FILE_DATALENGTH = 0x200
++ ATTR_FILE_DEVTYPE = 0x20
++ ATTR_FILE_FILETYPE = 0x40
++ ATTR_FILE_FORKCOUNT = 0x80
++ ATTR_FILE_FORKLIST = 0x100
++ ATTR_FILE_IOBLOCKSIZE = 0x8
++ ATTR_FILE_LINKCOUNT = 0x1
++ ATTR_FILE_RSRCALLOCSIZE = 0x2000
++ ATTR_FILE_RSRCEXTENTS = 0x4000
++ ATTR_FILE_RSRCLENGTH = 0x1000
++ ATTR_FILE_SETMASK = 0x20
++ ATTR_FILE_TOTALSIZE = 0x2
++ ATTR_FILE_VALIDMASK = 0x37ff
++ ATTR_VOL_ALLOCATIONCLUMP = 0x40
++ ATTR_VOL_ATTRIBUTES = 0x40000000
++ ATTR_VOL_CAPABILITIES = 0x20000
++ ATTR_VOL_DIRCOUNT = 0x400
++ ATTR_VOL_ENCODINGSUSED = 0x10000
++ ATTR_VOL_FILECOUNT = 0x200
++ ATTR_VOL_FSTYPE = 0x1
++ ATTR_VOL_INFO = 0x80000000
++ ATTR_VOL_IOBLOCKSIZE = 0x80
++ ATTR_VOL_MAXOBJCOUNT = 0x800
++ ATTR_VOL_MINALLOCATION = 0x20
++ ATTR_VOL_MOUNTEDDEVICE = 0x8000
++ ATTR_VOL_MOUNTFLAGS = 0x4000
++ ATTR_VOL_MOUNTPOINT = 0x1000
++ ATTR_VOL_NAME = 0x2000
++ ATTR_VOL_OBJCOUNT = 0x100
++ ATTR_VOL_QUOTA_SIZE = 0x10000000
++ ATTR_VOL_RESERVED_SIZE = 0x20000000
++ ATTR_VOL_SETMASK = 0x80002000
++ ATTR_VOL_SIGNATURE = 0x2
++ ATTR_VOL_SIZE = 0x4
++ ATTR_VOL_SPACEAVAIL = 0x10
++ ATTR_VOL_SPACEFREE = 0x8
++ ATTR_VOL_UUID = 0x40000
++ ATTR_VOL_VALIDMASK = 0xf007ffff
+ B0 = 0x0
+ B110 = 0x6e
+ B115200 = 0x1c200
+@@ -169,6 +249,8 @@ const (
+ CSTOP = 0x13
+ CSTOPB = 0x400
+ CSUSP = 0x1a
++ CTL_HW = 0x6
++ CTL_KERN = 0x1
+ CTL_MAXNAME = 0xc
+ CTL_NET = 0x4
+ DLT_A429 = 0xb8
+@@ -390,6 +472,11 @@ const (
+ FF1 = 0x4000
+ FFDLY = 0x4000
+ FLUSHO = 0x800000
++ FSOPT_ATTR_CMN_EXTENDED = 0x20
++ FSOPT_NOFOLLOW = 0x1
++ FSOPT_NOINMEMUPDATE = 0x2
++ FSOPT_PACK_INVAL_ATTRS = 0x8
++ FSOPT_REPORT_FULLSIZE = 0x4
+ F_ADDFILESIGS = 0x3d
+ F_ADDFILESIGS_FOR_DYLD_SIM = 0x53
+ F_ADDFILESIGS_RETURN = 0x61
+@@ -425,6 +512,7 @@ const (
+ F_PATHPKG_CHECK = 0x34
+ F_PEOFPOSMODE = 0x3
+ F_PREALLOCATE = 0x2a
++ F_PUNCHHOLE = 0x63
+ F_RDADVISE = 0x2c
+ F_RDAHEAD = 0x2d
+ F_RDLCK = 0x1
+@@ -441,10 +529,12 @@ const (
+ F_SINGLE_WRITER = 0x4c
+ F_THAW_FS = 0x36
+ F_TRANSCODEKEY = 0x4b
++ F_TRIM_ACTIVE_FILE = 0x64
+ F_UNLCK = 0x2
+ F_VOLPOSMODE = 0x4
+ F_WRLCK = 0x3
+ HUPCL = 0x4000
++ HW_MACHINE = 0x1
+ ICANON = 0x100
+ ICMP6_FILTER = 0x12
+ ICRNL = 0x100
+@@ -681,6 +771,7 @@ const (
+ IPV6_FAITH = 0x1d
+ IPV6_FLOWINFO_MASK = 0xffffff0f
+ IPV6_FLOWLABEL_MASK = 0xffff0f00
++ IPV6_FLOW_ECN_MASK = 0x300
+ IPV6_FRAGTTL = 0x3c
+ IPV6_FW_ADD = 0x1e
+ IPV6_FW_DEL = 0x1f
+@@ -771,6 +862,7 @@ const (
+ IP_RECVOPTS = 0x5
+ IP_RECVPKTINFO = 0x1a
+ IP_RECVRETOPTS = 0x6
++ IP_RECVTOS = 0x1b
+ IP_RECVTTL = 0x18
+ IP_RETOPTS = 0x8
+ IP_RF = 0x8000
+@@ -789,6 +881,10 @@ const (
+ IXANY = 0x800
+ IXOFF = 0x400
+ IXON = 0x200
++ KERN_HOSTNAME = 0xa
++ KERN_OSRELEASE = 0x2
++ KERN_OSTYPE = 0x1
++ KERN_VERSION = 0x4
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+ LOCK_SH = 0x1
+@@ -884,6 +980,7 @@ const (
+ NET_RT_MAXID = 0xa
+ NET_RT_STAT = 0x4
+ NET_RT_TRASH = 0x5
++ NFDBITS = 0x20
+ NL0 = 0x0
+ NL1 = 0x100
+ NL2 = 0x200
+@@ -1377,6 +1474,12 @@ const (
+ WORDSIZE = 0x20
+ WSTOPPED = 0x8
+ WUNTRACED = 0x2
++ XATTR_CREATE = 0x2
++ XATTR_NODEFAULT = 0x10
++ XATTR_NOFOLLOW = 0x1
++ XATTR_NOSECURITY = 0x8
++ XATTR_REPLACE = 0x4
++ XATTR_SHOWCOMPRESSION = 0x20
+ )
+
+ // Errors
+@@ -1528,146 +1631,154 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "device not configured",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource deadlock avoided",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "resource busy",
+- 17: "file exists",
+- 18: "cross-device link",
+- 19: "operation not supported by device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "result too large",
+- 35: "resource temporarily unavailable",
+- 36: "operation now in progress",
+- 37: "operation already in progress",
+- 38: "socket operation on non-socket",
+- 39: "destination address required",
+- 40: "message too long",
+- 41: "protocol wrong type for socket",
+- 42: "protocol not available",
+- 43: "protocol not supported",
+- 44: "socket type not supported",
+- 45: "operation not supported",
+- 46: "protocol family not supported",
+- 47: "address family not supported by protocol family",
+- 48: "address already in use",
+- 49: "can't assign requested address",
+- 50: "network is down",
+- 51: "network is unreachable",
+- 52: "network dropped connection on reset",
+- 53: "software caused connection abort",
+- 54: "connection reset by peer",
+- 55: "no buffer space available",
+- 56: "socket is already connected",
+- 57: "socket is not connected",
+- 58: "can't send after socket shutdown",
+- 59: "too many references: can't splice",
+- 60: "operation timed out",
+- 61: "connection refused",
+- 62: "too many levels of symbolic links",
+- 63: "file name too long",
+- 64: "host is down",
+- 65: "no route to host",
+- 66: "directory not empty",
+- 67: "too many processes",
+- 68: "too many users",
+- 69: "disc quota exceeded",
+- 70: "stale NFS file handle",
+- 71: "too many levels of remote in path",
+- 72: "RPC struct is bad",
+- 73: "RPC version wrong",
+- 74: "RPC prog. not avail",
+- 75: "program version wrong",
+- 76: "bad procedure for program",
+- 77: "no locks available",
+- 78: "function not implemented",
+- 79: "inappropriate file type or format",
+- 80: "authentication error",
+- 81: "need authenticator",
+- 82: "device power is off",
+- 83: "device error",
+- 84: "value too large to be stored in data type",
+- 85: "bad executable (or shared library)",
+- 86: "bad CPU type in executable",
+- 87: "shared library version mismatch",
+- 88: "malformed Mach-o file",
+- 89: "operation canceled",
+- 90: "identifier removed",
+- 91: "no message of desired type",
+- 92: "illegal byte sequence",
+- 93: "attribute not found",
+- 94: "bad message",
+- 95: "EMULTIHOP (Reserved)",
+- 96: "no message available on STREAM",
+- 97: "ENOLINK (Reserved)",
+- 98: "no STREAM resources",
+- 99: "not a STREAM",
+- 100: "protocol error",
+- 101: "STREAM ioctl timeout",
+- 102: "operation not supported on socket",
+- 103: "policy not found",
+- 104: "state not recoverable",
+- 105: "previous owner died",
+- 106: "interface output queue is full",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "device not configured"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EDEADLK", "resource deadlock avoided"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "resource busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "cross-device link"},
++ {19, "ENODEV", "operation not supported by device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "result too large"},
++ {35, "EAGAIN", "resource temporarily unavailable"},
++ {36, "EINPROGRESS", "operation now in progress"},
++ {37, "EALREADY", "operation already in progress"},
++ {38, "ENOTSOCK", "socket operation on non-socket"},
++ {39, "EDESTADDRREQ", "destination address required"},
++ {40, "EMSGSIZE", "message too long"},
++ {41, "EPROTOTYPE", "protocol wrong type for socket"},
++ {42, "ENOPROTOOPT", "protocol not available"},
++ {43, "EPROTONOSUPPORT", "protocol not supported"},
++ {44, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {45, "ENOTSUP", "operation not supported"},
++ {46, "EPFNOSUPPORT", "protocol family not supported"},
++ {47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++ {48, "EADDRINUSE", "address already in use"},
++ {49, "EADDRNOTAVAIL", "can't assign requested address"},
++ {50, "ENETDOWN", "network is down"},
++ {51, "ENETUNREACH", "network is unreachable"},
++ {52, "ENETRESET", "network dropped connection on reset"},
++ {53, "ECONNABORTED", "software caused connection abort"},
++ {54, "ECONNRESET", "connection reset by peer"},
++ {55, "ENOBUFS", "no buffer space available"},
++ {56, "EISCONN", "socket is already connected"},
++ {57, "ENOTCONN", "socket is not connected"},
++ {58, "ESHUTDOWN", "can't send after socket shutdown"},
++ {59, "ETOOMANYREFS", "too many references: can't splice"},
++ {60, "ETIMEDOUT", "operation timed out"},
++ {61, "ECONNREFUSED", "connection refused"},
++ {62, "ELOOP", "too many levels of symbolic links"},
++ {63, "ENAMETOOLONG", "file name too long"},
++ {64, "EHOSTDOWN", "host is down"},
++ {65, "EHOSTUNREACH", "no route to host"},
++ {66, "ENOTEMPTY", "directory not empty"},
++ {67, "EPROCLIM", "too many processes"},
++ {68, "EUSERS", "too many users"},
++ {69, "EDQUOT", "disc quota exceeded"},
++ {70, "ESTALE", "stale NFS file handle"},
++ {71, "EREMOTE", "too many levels of remote in path"},
++ {72, "EBADRPC", "RPC struct is bad"},
++ {73, "ERPCMISMATCH", "RPC version wrong"},
++ {74, "EPROGUNAVAIL", "RPC prog. not avail"},
++ {75, "EPROGMISMATCH", "program version wrong"},
++ {76, "EPROCUNAVAIL", "bad procedure for program"},
++ {77, "ENOLCK", "no locks available"},
++ {78, "ENOSYS", "function not implemented"},
++ {79, "EFTYPE", "inappropriate file type or format"},
++ {80, "EAUTH", "authentication error"},
++ {81, "ENEEDAUTH", "need authenticator"},
++ {82, "EPWROFF", "device power is off"},
++ {83, "EDEVERR", "device error"},
++ {84, "EOVERFLOW", "value too large to be stored in data type"},
++ {85, "EBADEXEC", "bad executable (or shared library)"},
++ {86, "EBADARCH", "bad CPU type in executable"},
++ {87, "ESHLIBVERS", "shared library version mismatch"},
++ {88, "EBADMACHO", "malformed Mach-o file"},
++ {89, "ECANCELED", "operation canceled"},
++ {90, "EIDRM", "identifier removed"},
++ {91, "ENOMSG", "no message of desired type"},
++ {92, "EILSEQ", "illegal byte sequence"},
++ {93, "ENOATTR", "attribute not found"},
++ {94, "EBADMSG", "bad message"},
++ {95, "EMULTIHOP", "EMULTIHOP (Reserved)"},
++ {96, "ENODATA", "no message available on STREAM"},
++ {97, "ENOLINK", "ENOLINK (Reserved)"},
++ {98, "ENOSR", "no STREAM resources"},
++ {99, "ENOSTR", "not a STREAM"},
++ {100, "EPROTO", "protocol error"},
++ {101, "ETIME", "STREAM ioctl timeout"},
++ {102, "EOPNOTSUPP", "operation not supported on socket"},
++ {103, "ENOPOLICY", "policy not found"},
++ {104, "ENOTRECOVERABLE", "state not recoverable"},
++ {105, "EOWNERDEAD", "previous owner died"},
++ {106, "EQFULL", "interface output queue is full"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/BPT trap",
+- 6: "abort trap",
+- 7: "EMT trap",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "bus error",
+- 11: "segmentation fault",
+- 12: "bad system call",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "urgent I/O condition",
+- 17: "suspended (signal)",
+- 18: "suspended",
+- 19: "continued",
+- 20: "child exited",
+- 21: "stopped (tty input)",
+- 22: "stopped (tty output)",
+- 23: "I/O possible",
+- 24: "cputime limit exceeded",
+- 25: "filesize limit exceeded",
+- 26: "virtual timer expired",
+- 27: "profiling timer expired",
+- 28: "window size changes",
+- 29: "information request",
+- 30: "user defined signal 1",
+- 31: "user defined signal 2",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/BPT trap"},
++ {6, "SIGABRT", "abort trap"},
++ {7, "SIGEMT", "EMT trap"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGBUS", "bus error"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGSYS", "bad system call"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGURG", "urgent I/O condition"},
++ {17, "SIGSTOP", "suspended (signal)"},
++ {18, "SIGTSTP", "suspended"},
++ {19, "SIGCONT", "continued"},
++ {20, "SIGCHLD", "child exited"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGIO", "I/O possible"},
++ {24, "SIGXCPU", "cputime limit exceeded"},
++ {25, "SIGXFSZ", "filesize limit exceeded"},
++ {26, "SIGVTALRM", "virtual timer expired"},
++ {27, "SIGPROF", "profiling timer expired"},
++ {28, "SIGWINCH", "window size changes"},
++ {29, "SIGINFO", "information request"},
++ {30, "SIGUSR1", "user defined signal 1"},
++ {31, "SIGUSR2", "user defined signal 2"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go
+index 48f63d4f..e3ff2ee3 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go
+@@ -3,7 +3,7 @@
+
+ // +build amd64,darwin
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+
+ package unix
+@@ -49,6 +49,86 @@ const (
+ AF_UNSPEC = 0x0
+ AF_UTUN = 0x26
+ ALTWERASE = 0x200
++ ATTR_BIT_MAP_COUNT = 0x5
++ ATTR_CMN_ACCESSMASK = 0x20000
++ ATTR_CMN_ACCTIME = 0x1000
++ ATTR_CMN_ADDEDTIME = 0x10000000
++ ATTR_CMN_BKUPTIME = 0x2000
++ ATTR_CMN_CHGTIME = 0x800
++ ATTR_CMN_CRTIME = 0x200
++ ATTR_CMN_DATA_PROTECT_FLAGS = 0x40000000
++ ATTR_CMN_DEVID = 0x2
++ ATTR_CMN_DOCUMENT_ID = 0x100000
++ ATTR_CMN_ERROR = 0x20000000
++ ATTR_CMN_EXTENDED_SECURITY = 0x400000
++ ATTR_CMN_FILEID = 0x2000000
++ ATTR_CMN_FLAGS = 0x40000
++ ATTR_CMN_FNDRINFO = 0x4000
++ ATTR_CMN_FSID = 0x4
++ ATTR_CMN_FULLPATH = 0x8000000
++ ATTR_CMN_GEN_COUNT = 0x80000
++ ATTR_CMN_GRPID = 0x10000
++ ATTR_CMN_GRPUUID = 0x1000000
++ ATTR_CMN_MODTIME = 0x400
++ ATTR_CMN_NAME = 0x1
++ ATTR_CMN_NAMEDATTRCOUNT = 0x80000
++ ATTR_CMN_NAMEDATTRLIST = 0x100000
++ ATTR_CMN_OBJID = 0x20
++ ATTR_CMN_OBJPERMANENTID = 0x40
++ ATTR_CMN_OBJTAG = 0x10
++ ATTR_CMN_OBJTYPE = 0x8
++ ATTR_CMN_OWNERID = 0x8000
++ ATTR_CMN_PARENTID = 0x4000000
++ ATTR_CMN_PAROBJID = 0x80
++ ATTR_CMN_RETURNED_ATTRS = 0x80000000
++ ATTR_CMN_SCRIPT = 0x100
++ ATTR_CMN_SETMASK = 0x41c7ff00
++ ATTR_CMN_USERACCESS = 0x200000
++ ATTR_CMN_UUID = 0x800000
++ ATTR_CMN_VALIDMASK = 0xffffffff
++ ATTR_CMN_VOLSETMASK = 0x6700
++ ATTR_FILE_ALLOCSIZE = 0x4
++ ATTR_FILE_CLUMPSIZE = 0x10
++ ATTR_FILE_DATAALLOCSIZE = 0x400
++ ATTR_FILE_DATAEXTENTS = 0x800
++ ATTR_FILE_DATALENGTH = 0x200
++ ATTR_FILE_DEVTYPE = 0x20
++ ATTR_FILE_FILETYPE = 0x40
++ ATTR_FILE_FORKCOUNT = 0x80
++ ATTR_FILE_FORKLIST = 0x100
++ ATTR_FILE_IOBLOCKSIZE = 0x8
++ ATTR_FILE_LINKCOUNT = 0x1
++ ATTR_FILE_RSRCALLOCSIZE = 0x2000
++ ATTR_FILE_RSRCEXTENTS = 0x4000
++ ATTR_FILE_RSRCLENGTH = 0x1000
++ ATTR_FILE_SETMASK = 0x20
++ ATTR_FILE_TOTALSIZE = 0x2
++ ATTR_FILE_VALIDMASK = 0x37ff
++ ATTR_VOL_ALLOCATIONCLUMP = 0x40
++ ATTR_VOL_ATTRIBUTES = 0x40000000
++ ATTR_VOL_CAPABILITIES = 0x20000
++ ATTR_VOL_DIRCOUNT = 0x400
++ ATTR_VOL_ENCODINGSUSED = 0x10000
++ ATTR_VOL_FILECOUNT = 0x200
++ ATTR_VOL_FSTYPE = 0x1
++ ATTR_VOL_INFO = 0x80000000
++ ATTR_VOL_IOBLOCKSIZE = 0x80
++ ATTR_VOL_MAXOBJCOUNT = 0x800
++ ATTR_VOL_MINALLOCATION = 0x20
++ ATTR_VOL_MOUNTEDDEVICE = 0x8000
++ ATTR_VOL_MOUNTFLAGS = 0x4000
++ ATTR_VOL_MOUNTPOINT = 0x1000
++ ATTR_VOL_NAME = 0x2000
++ ATTR_VOL_OBJCOUNT = 0x100
++ ATTR_VOL_QUOTA_SIZE = 0x10000000
++ ATTR_VOL_RESERVED_SIZE = 0x20000000
++ ATTR_VOL_SETMASK = 0x80002000
++ ATTR_VOL_SIGNATURE = 0x2
++ ATTR_VOL_SIZE = 0x4
++ ATTR_VOL_SPACEAVAIL = 0x10
++ ATTR_VOL_SPACEFREE = 0x8
++ ATTR_VOL_UUID = 0x40000
++ ATTR_VOL_VALIDMASK = 0xf007ffff
+ B0 = 0x0
+ B110 = 0x6e
+ B115200 = 0x1c200
+@@ -169,6 +249,8 @@ const (
+ CSTOP = 0x13
+ CSTOPB = 0x400
+ CSUSP = 0x1a
++ CTL_HW = 0x6
++ CTL_KERN = 0x1
+ CTL_MAXNAME = 0xc
+ CTL_NET = 0x4
+ DLT_A429 = 0xb8
+@@ -390,6 +472,11 @@ const (
+ FF1 = 0x4000
+ FFDLY = 0x4000
+ FLUSHO = 0x800000
++ FSOPT_ATTR_CMN_EXTENDED = 0x20
++ FSOPT_NOFOLLOW = 0x1
++ FSOPT_NOINMEMUPDATE = 0x2
++ FSOPT_PACK_INVAL_ATTRS = 0x8
++ FSOPT_REPORT_FULLSIZE = 0x4
+ F_ADDFILESIGS = 0x3d
+ F_ADDFILESIGS_FOR_DYLD_SIM = 0x53
+ F_ADDFILESIGS_RETURN = 0x61
+@@ -425,6 +512,7 @@ const (
+ F_PATHPKG_CHECK = 0x34
+ F_PEOFPOSMODE = 0x3
+ F_PREALLOCATE = 0x2a
++ F_PUNCHHOLE = 0x63
+ F_RDADVISE = 0x2c
+ F_RDAHEAD = 0x2d
+ F_RDLCK = 0x1
+@@ -441,10 +529,12 @@ const (
+ F_SINGLE_WRITER = 0x4c
+ F_THAW_FS = 0x36
+ F_TRANSCODEKEY = 0x4b
++ F_TRIM_ACTIVE_FILE = 0x64
+ F_UNLCK = 0x2
+ F_VOLPOSMODE = 0x4
+ F_WRLCK = 0x3
+ HUPCL = 0x4000
++ HW_MACHINE = 0x1
+ ICANON = 0x100
+ ICMP6_FILTER = 0x12
+ ICRNL = 0x100
+@@ -681,6 +771,7 @@ const (
+ IPV6_FAITH = 0x1d
+ IPV6_FLOWINFO_MASK = 0xffffff0f
+ IPV6_FLOWLABEL_MASK = 0xffff0f00
++ IPV6_FLOW_ECN_MASK = 0x300
+ IPV6_FRAGTTL = 0x3c
+ IPV6_FW_ADD = 0x1e
+ IPV6_FW_DEL = 0x1f
+@@ -771,6 +862,7 @@ const (
+ IP_RECVOPTS = 0x5
+ IP_RECVPKTINFO = 0x1a
+ IP_RECVRETOPTS = 0x6
++ IP_RECVTOS = 0x1b
+ IP_RECVTTL = 0x18
+ IP_RETOPTS = 0x8
+ IP_RF = 0x8000
+@@ -789,6 +881,10 @@ const (
+ IXANY = 0x800
+ IXOFF = 0x400
+ IXON = 0x200
++ KERN_HOSTNAME = 0xa
++ KERN_OSRELEASE = 0x2
++ KERN_OSTYPE = 0x1
++ KERN_VERSION = 0x4
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+ LOCK_SH = 0x1
+@@ -884,6 +980,7 @@ const (
+ NET_RT_MAXID = 0xa
+ NET_RT_STAT = 0x4
+ NET_RT_TRASH = 0x5
++ NFDBITS = 0x20
+ NL0 = 0x0
+ NL1 = 0x100
+ NL2 = 0x200
+@@ -1377,6 +1474,12 @@ const (
+ WORDSIZE = 0x40
+ WSTOPPED = 0x8
+ WUNTRACED = 0x2
++ XATTR_CREATE = 0x2
++ XATTR_NODEFAULT = 0x10
++ XATTR_NOFOLLOW = 0x1
++ XATTR_NOSECURITY = 0x8
++ XATTR_REPLACE = 0x4
++ XATTR_SHOWCOMPRESSION = 0x20
+ )
+
+ // Errors
+@@ -1528,146 +1631,154 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "device not configured",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource deadlock avoided",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "resource busy",
+- 17: "file exists",
+- 18: "cross-device link",
+- 19: "operation not supported by device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "result too large",
+- 35: "resource temporarily unavailable",
+- 36: "operation now in progress",
+- 37: "operation already in progress",
+- 38: "socket operation on non-socket",
+- 39: "destination address required",
+- 40: "message too long",
+- 41: "protocol wrong type for socket",
+- 42: "protocol not available",
+- 43: "protocol not supported",
+- 44: "socket type not supported",
+- 45: "operation not supported",
+- 46: "protocol family not supported",
+- 47: "address family not supported by protocol family",
+- 48: "address already in use",
+- 49: "can't assign requested address",
+- 50: "network is down",
+- 51: "network is unreachable",
+- 52: "network dropped connection on reset",
+- 53: "software caused connection abort",
+- 54: "connection reset by peer",
+- 55: "no buffer space available",
+- 56: "socket is already connected",
+- 57: "socket is not connected",
+- 58: "can't send after socket shutdown",
+- 59: "too many references: can't splice",
+- 60: "operation timed out",
+- 61: "connection refused",
+- 62: "too many levels of symbolic links",
+- 63: "file name too long",
+- 64: "host is down",
+- 65: "no route to host",
+- 66: "directory not empty",
+- 67: "too many processes",
+- 68: "too many users",
+- 69: "disc quota exceeded",
+- 70: "stale NFS file handle",
+- 71: "too many levels of remote in path",
+- 72: "RPC struct is bad",
+- 73: "RPC version wrong",
+- 74: "RPC prog. not avail",
+- 75: "program version wrong",
+- 76: "bad procedure for program",
+- 77: "no locks available",
+- 78: "function not implemented",
+- 79: "inappropriate file type or format",
+- 80: "authentication error",
+- 81: "need authenticator",
+- 82: "device power is off",
+- 83: "device error",
+- 84: "value too large to be stored in data type",
+- 85: "bad executable (or shared library)",
+- 86: "bad CPU type in executable",
+- 87: "shared library version mismatch",
+- 88: "malformed Mach-o file",
+- 89: "operation canceled",
+- 90: "identifier removed",
+- 91: "no message of desired type",
+- 92: "illegal byte sequence",
+- 93: "attribute not found",
+- 94: "bad message",
+- 95: "EMULTIHOP (Reserved)",
+- 96: "no message available on STREAM",
+- 97: "ENOLINK (Reserved)",
+- 98: "no STREAM resources",
+- 99: "not a STREAM",
+- 100: "protocol error",
+- 101: "STREAM ioctl timeout",
+- 102: "operation not supported on socket",
+- 103: "policy not found",
+- 104: "state not recoverable",
+- 105: "previous owner died",
+- 106: "interface output queue is full",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "device not configured"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EDEADLK", "resource deadlock avoided"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "resource busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "cross-device link"},
++ {19, "ENODEV", "operation not supported by device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "result too large"},
++ {35, "EAGAIN", "resource temporarily unavailable"},
++ {36, "EINPROGRESS", "operation now in progress"},
++ {37, "EALREADY", "operation already in progress"},
++ {38, "ENOTSOCK", "socket operation on non-socket"},
++ {39, "EDESTADDRREQ", "destination address required"},
++ {40, "EMSGSIZE", "message too long"},
++ {41, "EPROTOTYPE", "protocol wrong type for socket"},
++ {42, "ENOPROTOOPT", "protocol not available"},
++ {43, "EPROTONOSUPPORT", "protocol not supported"},
++ {44, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {45, "ENOTSUP", "operation not supported"},
++ {46, "EPFNOSUPPORT", "protocol family not supported"},
++ {47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++ {48, "EADDRINUSE", "address already in use"},
++ {49, "EADDRNOTAVAIL", "can't assign requested address"},
++ {50, "ENETDOWN", "network is down"},
++ {51, "ENETUNREACH", "network is unreachable"},
++ {52, "ENETRESET", "network dropped connection on reset"},
++ {53, "ECONNABORTED", "software caused connection abort"},
++ {54, "ECONNRESET", "connection reset by peer"},
++ {55, "ENOBUFS", "no buffer space available"},
++ {56, "EISCONN", "socket is already connected"},
++ {57, "ENOTCONN", "socket is not connected"},
++ {58, "ESHUTDOWN", "can't send after socket shutdown"},
++ {59, "ETOOMANYREFS", "too many references: can't splice"},
++ {60, "ETIMEDOUT", "operation timed out"},
++ {61, "ECONNREFUSED", "connection refused"},
++ {62, "ELOOP", "too many levels of symbolic links"},
++ {63, "ENAMETOOLONG", "file name too long"},
++ {64, "EHOSTDOWN", "host is down"},
++ {65, "EHOSTUNREACH", "no route to host"},
++ {66, "ENOTEMPTY", "directory not empty"},
++ {67, "EPROCLIM", "too many processes"},
++ {68, "EUSERS", "too many users"},
++ {69, "EDQUOT", "disc quota exceeded"},
++ {70, "ESTALE", "stale NFS file handle"},
++ {71, "EREMOTE", "too many levels of remote in path"},
++ {72, "EBADRPC", "RPC struct is bad"},
++ {73, "ERPCMISMATCH", "RPC version wrong"},
++ {74, "EPROGUNAVAIL", "RPC prog. not avail"},
++ {75, "EPROGMISMATCH", "program version wrong"},
++ {76, "EPROCUNAVAIL", "bad procedure for program"},
++ {77, "ENOLCK", "no locks available"},
++ {78, "ENOSYS", "function not implemented"},
++ {79, "EFTYPE", "inappropriate file type or format"},
++ {80, "EAUTH", "authentication error"},
++ {81, "ENEEDAUTH", "need authenticator"},
++ {82, "EPWROFF", "device power is off"},
++ {83, "EDEVERR", "device error"},
++ {84, "EOVERFLOW", "value too large to be stored in data type"},
++ {85, "EBADEXEC", "bad executable (or shared library)"},
++ {86, "EBADARCH", "bad CPU type in executable"},
++ {87, "ESHLIBVERS", "shared library version mismatch"},
++ {88, "EBADMACHO", "malformed Mach-o file"},
++ {89, "ECANCELED", "operation canceled"},
++ {90, "EIDRM", "identifier removed"},
++ {91, "ENOMSG", "no message of desired type"},
++ {92, "EILSEQ", "illegal byte sequence"},
++ {93, "ENOATTR", "attribute not found"},
++ {94, "EBADMSG", "bad message"},
++ {95, "EMULTIHOP", "EMULTIHOP (Reserved)"},
++ {96, "ENODATA", "no message available on STREAM"},
++ {97, "ENOLINK", "ENOLINK (Reserved)"},
++ {98, "ENOSR", "no STREAM resources"},
++ {99, "ENOSTR", "not a STREAM"},
++ {100, "EPROTO", "protocol error"},
++ {101, "ETIME", "STREAM ioctl timeout"},
++ {102, "EOPNOTSUPP", "operation not supported on socket"},
++ {103, "ENOPOLICY", "policy not found"},
++ {104, "ENOTRECOVERABLE", "state not recoverable"},
++ {105, "EOWNERDEAD", "previous owner died"},
++ {106, "EQFULL", "interface output queue is full"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/BPT trap",
+- 6: "abort trap",
+- 7: "EMT trap",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "bus error",
+- 11: "segmentation fault",
+- 12: "bad system call",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "urgent I/O condition",
+- 17: "suspended (signal)",
+- 18: "suspended",
+- 19: "continued",
+- 20: "child exited",
+- 21: "stopped (tty input)",
+- 22: "stopped (tty output)",
+- 23: "I/O possible",
+- 24: "cputime limit exceeded",
+- 25: "filesize limit exceeded",
+- 26: "virtual timer expired",
+- 27: "profiling timer expired",
+- 28: "window size changes",
+- 29: "information request",
+- 30: "user defined signal 1",
+- 31: "user defined signal 2",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/BPT trap"},
++ {6, "SIGABRT", "abort trap"},
++ {7, "SIGEMT", "EMT trap"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGBUS", "bus error"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGSYS", "bad system call"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGURG", "urgent I/O condition"},
++ {17, "SIGSTOP", "suspended (signal)"},
++ {18, "SIGTSTP", "suspended"},
++ {19, "SIGCONT", "continued"},
++ {20, "SIGCHLD", "child exited"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGIO", "I/O possible"},
++ {24, "SIGXCPU", "cputime limit exceeded"},
++ {25, "SIGXFSZ", "filesize limit exceeded"},
++ {26, "SIGVTALRM", "virtual timer expired"},
++ {27, "SIGPROF", "profiling timer expired"},
++ {28, "SIGWINCH", "window size changes"},
++ {29, "SIGINFO", "information request"},
++ {30, "SIGUSR1", "user defined signal 1"},
++ {31, "SIGUSR2", "user defined signal 2"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go
+index 24cb522d..3e417571 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go
+@@ -3,7 +3,7 @@
+
+ // +build arm,darwin
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- _const.go
+
+ package unix
+@@ -49,6 +49,86 @@ const (
+ AF_UNSPEC = 0x0
+ AF_UTUN = 0x26
+ ALTWERASE = 0x200
++ ATTR_BIT_MAP_COUNT = 0x5
++ ATTR_CMN_ACCESSMASK = 0x20000
++ ATTR_CMN_ACCTIME = 0x1000
++ ATTR_CMN_ADDEDTIME = 0x10000000
++ ATTR_CMN_BKUPTIME = 0x2000
++ ATTR_CMN_CHGTIME = 0x800
++ ATTR_CMN_CRTIME = 0x200
++ ATTR_CMN_DATA_PROTECT_FLAGS = 0x40000000
++ ATTR_CMN_DEVID = 0x2
++ ATTR_CMN_DOCUMENT_ID = 0x100000
++ ATTR_CMN_ERROR = 0x20000000
++ ATTR_CMN_EXTENDED_SECURITY = 0x400000
++ ATTR_CMN_FILEID = 0x2000000
++ ATTR_CMN_FLAGS = 0x40000
++ ATTR_CMN_FNDRINFO = 0x4000
++ ATTR_CMN_FSID = 0x4
++ ATTR_CMN_FULLPATH = 0x8000000
++ ATTR_CMN_GEN_COUNT = 0x80000
++ ATTR_CMN_GRPID = 0x10000
++ ATTR_CMN_GRPUUID = 0x1000000
++ ATTR_CMN_MODTIME = 0x400
++ ATTR_CMN_NAME = 0x1
++ ATTR_CMN_NAMEDATTRCOUNT = 0x80000
++ ATTR_CMN_NAMEDATTRLIST = 0x100000
++ ATTR_CMN_OBJID = 0x20
++ ATTR_CMN_OBJPERMANENTID = 0x40
++ ATTR_CMN_OBJTAG = 0x10
++ ATTR_CMN_OBJTYPE = 0x8
++ ATTR_CMN_OWNERID = 0x8000
++ ATTR_CMN_PARENTID = 0x4000000
++ ATTR_CMN_PAROBJID = 0x80
++ ATTR_CMN_RETURNED_ATTRS = 0x80000000
++ ATTR_CMN_SCRIPT = 0x100
++ ATTR_CMN_SETMASK = 0x41c7ff00
++ ATTR_CMN_USERACCESS = 0x200000
++ ATTR_CMN_UUID = 0x800000
++ ATTR_CMN_VALIDMASK = 0xffffffff
++ ATTR_CMN_VOLSETMASK = 0x6700
++ ATTR_FILE_ALLOCSIZE = 0x4
++ ATTR_FILE_CLUMPSIZE = 0x10
++ ATTR_FILE_DATAALLOCSIZE = 0x400
++ ATTR_FILE_DATAEXTENTS = 0x800
++ ATTR_FILE_DATALENGTH = 0x200
++ ATTR_FILE_DEVTYPE = 0x20
++ ATTR_FILE_FILETYPE = 0x40
++ ATTR_FILE_FORKCOUNT = 0x80
++ ATTR_FILE_FORKLIST = 0x100
++ ATTR_FILE_IOBLOCKSIZE = 0x8
++ ATTR_FILE_LINKCOUNT = 0x1
++ ATTR_FILE_RSRCALLOCSIZE = 0x2000
++ ATTR_FILE_RSRCEXTENTS = 0x4000
++ ATTR_FILE_RSRCLENGTH = 0x1000
++ ATTR_FILE_SETMASK = 0x20
++ ATTR_FILE_TOTALSIZE = 0x2
++ ATTR_FILE_VALIDMASK = 0x37ff
++ ATTR_VOL_ALLOCATIONCLUMP = 0x40
++ ATTR_VOL_ATTRIBUTES = 0x40000000
++ ATTR_VOL_CAPABILITIES = 0x20000
++ ATTR_VOL_DIRCOUNT = 0x400
++ ATTR_VOL_ENCODINGSUSED = 0x10000
++ ATTR_VOL_FILECOUNT = 0x200
++ ATTR_VOL_FSTYPE = 0x1
++ ATTR_VOL_INFO = 0x80000000
++ ATTR_VOL_IOBLOCKSIZE = 0x80
++ ATTR_VOL_MAXOBJCOUNT = 0x800
++ ATTR_VOL_MINALLOCATION = 0x20
++ ATTR_VOL_MOUNTEDDEVICE = 0x8000
++ ATTR_VOL_MOUNTFLAGS = 0x4000
++ ATTR_VOL_MOUNTPOINT = 0x1000
++ ATTR_VOL_NAME = 0x2000
++ ATTR_VOL_OBJCOUNT = 0x100
++ ATTR_VOL_QUOTA_SIZE = 0x10000000
++ ATTR_VOL_RESERVED_SIZE = 0x20000000
++ ATTR_VOL_SETMASK = 0x80002000
++ ATTR_VOL_SIGNATURE = 0x2
++ ATTR_VOL_SIZE = 0x4
++ ATTR_VOL_SPACEAVAIL = 0x10
++ ATTR_VOL_SPACEFREE = 0x8
++ ATTR_VOL_UUID = 0x40000
++ ATTR_VOL_VALIDMASK = 0xf007ffff
+ B0 = 0x0
+ B110 = 0x6e
+ B115200 = 0x1c200
+@@ -169,6 +249,8 @@ const (
+ CSTOP = 0x13
+ CSTOPB = 0x400
+ CSUSP = 0x1a
++ CTL_HW = 0x6
++ CTL_KERN = 0x1
+ CTL_MAXNAME = 0xc
+ CTL_NET = 0x4
+ DLT_A429 = 0xb8
+@@ -390,6 +472,11 @@ const (
+ FF1 = 0x4000
+ FFDLY = 0x4000
+ FLUSHO = 0x800000
++ FSOPT_ATTR_CMN_EXTENDED = 0x20
++ FSOPT_NOFOLLOW = 0x1
++ FSOPT_NOINMEMUPDATE = 0x2
++ FSOPT_PACK_INVAL_ATTRS = 0x8
++ FSOPT_REPORT_FULLSIZE = 0x4
+ F_ADDFILESIGS = 0x3d
+ F_ADDFILESIGS_FOR_DYLD_SIM = 0x53
+ F_ADDFILESIGS_RETURN = 0x61
+@@ -425,6 +512,7 @@ const (
+ F_PATHPKG_CHECK = 0x34
+ F_PEOFPOSMODE = 0x3
+ F_PREALLOCATE = 0x2a
++ F_PUNCHHOLE = 0x63
+ F_RDADVISE = 0x2c
+ F_RDAHEAD = 0x2d
+ F_RDLCK = 0x1
+@@ -441,10 +529,12 @@ const (
+ F_SINGLE_WRITER = 0x4c
+ F_THAW_FS = 0x36
+ F_TRANSCODEKEY = 0x4b
++ F_TRIM_ACTIVE_FILE = 0x64
+ F_UNLCK = 0x2
+ F_VOLPOSMODE = 0x4
+ F_WRLCK = 0x3
+ HUPCL = 0x4000
++ HW_MACHINE = 0x1
+ ICANON = 0x100
+ ICMP6_FILTER = 0x12
+ ICRNL = 0x100
+@@ -681,6 +771,7 @@ const (
+ IPV6_FAITH = 0x1d
+ IPV6_FLOWINFO_MASK = 0xffffff0f
+ IPV6_FLOWLABEL_MASK = 0xffff0f00
++ IPV6_FLOW_ECN_MASK = 0x300
+ IPV6_FRAGTTL = 0x3c
+ IPV6_FW_ADD = 0x1e
+ IPV6_FW_DEL = 0x1f
+@@ -771,6 +862,7 @@ const (
+ IP_RECVOPTS = 0x5
+ IP_RECVPKTINFO = 0x1a
+ IP_RECVRETOPTS = 0x6
++ IP_RECVTOS = 0x1b
+ IP_RECVTTL = 0x18
+ IP_RETOPTS = 0x8
+ IP_RF = 0x8000
+@@ -789,6 +881,10 @@ const (
+ IXANY = 0x800
+ IXOFF = 0x400
+ IXON = 0x200
++ KERN_HOSTNAME = 0xa
++ KERN_OSRELEASE = 0x2
++ KERN_OSTYPE = 0x1
++ KERN_VERSION = 0x4
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+ LOCK_SH = 0x1
+@@ -884,6 +980,7 @@ const (
+ NET_RT_MAXID = 0xa
+ NET_RT_STAT = 0x4
+ NET_RT_TRASH = 0x5
++ NFDBITS = 0x20
+ NL0 = 0x0
+ NL1 = 0x100
+ NL2 = 0x200
+@@ -1377,6 +1474,12 @@ const (
+ WORDSIZE = 0x40
+ WSTOPPED = 0x8
+ WUNTRACED = 0x2
++ XATTR_CREATE = 0x2
++ XATTR_NODEFAULT = 0x10
++ XATTR_NOFOLLOW = 0x1
++ XATTR_NOSECURITY = 0x8
++ XATTR_REPLACE = 0x4
++ XATTR_SHOWCOMPRESSION = 0x20
+ )
+
+ // Errors
+@@ -1528,146 +1631,154 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "device not configured",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource deadlock avoided",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "resource busy",
+- 17: "file exists",
+- 18: "cross-device link",
+- 19: "operation not supported by device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "result too large",
+- 35: "resource temporarily unavailable",
+- 36: "operation now in progress",
+- 37: "operation already in progress",
+- 38: "socket operation on non-socket",
+- 39: "destination address required",
+- 40: "message too long",
+- 41: "protocol wrong type for socket",
+- 42: "protocol not available",
+- 43: "protocol not supported",
+- 44: "socket type not supported",
+- 45: "operation not supported",
+- 46: "protocol family not supported",
+- 47: "address family not supported by protocol family",
+- 48: "address already in use",
+- 49: "can't assign requested address",
+- 50: "network is down",
+- 51: "network is unreachable",
+- 52: "network dropped connection on reset",
+- 53: "software caused connection abort",
+- 54: "connection reset by peer",
+- 55: "no buffer space available",
+- 56: "socket is already connected",
+- 57: "socket is not connected",
+- 58: "can't send after socket shutdown",
+- 59: "too many references: can't splice",
+- 60: "operation timed out",
+- 61: "connection refused",
+- 62: "too many levels of symbolic links",
+- 63: "file name too long",
+- 64: "host is down",
+- 65: "no route to host",
+- 66: "directory not empty",
+- 67: "too many processes",
+- 68: "too many users",
+- 69: "disc quota exceeded",
+- 70: "stale NFS file handle",
+- 71: "too many levels of remote in path",
+- 72: "RPC struct is bad",
+- 73: "RPC version wrong",
+- 74: "RPC prog. not avail",
+- 75: "program version wrong",
+- 76: "bad procedure for program",
+- 77: "no locks available",
+- 78: "function not implemented",
+- 79: "inappropriate file type or format",
+- 80: "authentication error",
+- 81: "need authenticator",
+- 82: "device power is off",
+- 83: "device error",
+- 84: "value too large to be stored in data type",
+- 85: "bad executable (or shared library)",
+- 86: "bad CPU type in executable",
+- 87: "shared library version mismatch",
+- 88: "malformed Mach-o file",
+- 89: "operation canceled",
+- 90: "identifier removed",
+- 91: "no message of desired type",
+- 92: "illegal byte sequence",
+- 93: "attribute not found",
+- 94: "bad message",
+- 95: "EMULTIHOP (Reserved)",
+- 96: "no message available on STREAM",
+- 97: "ENOLINK (Reserved)",
+- 98: "no STREAM resources",
+- 99: "not a STREAM",
+- 100: "protocol error",
+- 101: "STREAM ioctl timeout",
+- 102: "operation not supported on socket",
+- 103: "policy not found",
+- 104: "state not recoverable",
+- 105: "previous owner died",
+- 106: "interface output queue is full",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "device not configured"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EDEADLK", "resource deadlock avoided"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "resource busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "cross-device link"},
++ {19, "ENODEV", "operation not supported by device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "result too large"},
++ {35, "EAGAIN", "resource temporarily unavailable"},
++ {36, "EINPROGRESS", "operation now in progress"},
++ {37, "EALREADY", "operation already in progress"},
++ {38, "ENOTSOCK", "socket operation on non-socket"},
++ {39, "EDESTADDRREQ", "destination address required"},
++ {40, "EMSGSIZE", "message too long"},
++ {41, "EPROTOTYPE", "protocol wrong type for socket"},
++ {42, "ENOPROTOOPT", "protocol not available"},
++ {43, "EPROTONOSUPPORT", "protocol not supported"},
++ {44, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {45, "ENOTSUP", "operation not supported"},
++ {46, "EPFNOSUPPORT", "protocol family not supported"},
++ {47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++ {48, "EADDRINUSE", "address already in use"},
++ {49, "EADDRNOTAVAIL", "can't assign requested address"},
++ {50, "ENETDOWN", "network is down"},
++ {51, "ENETUNREACH", "network is unreachable"},
++ {52, "ENETRESET", "network dropped connection on reset"},
++ {53, "ECONNABORTED", "software caused connection abort"},
++ {54, "ECONNRESET", "connection reset by peer"},
++ {55, "ENOBUFS", "no buffer space available"},
++ {56, "EISCONN", "socket is already connected"},
++ {57, "ENOTCONN", "socket is not connected"},
++ {58, "ESHUTDOWN", "can't send after socket shutdown"},
++ {59, "ETOOMANYREFS", "too many references: can't splice"},
++ {60, "ETIMEDOUT", "operation timed out"},
++ {61, "ECONNREFUSED", "connection refused"},
++ {62, "ELOOP", "too many levels of symbolic links"},
++ {63, "ENAMETOOLONG", "file name too long"},
++ {64, "EHOSTDOWN", "host is down"},
++ {65, "EHOSTUNREACH", "no route to host"},
++ {66, "ENOTEMPTY", "directory not empty"},
++ {67, "EPROCLIM", "too many processes"},
++ {68, "EUSERS", "too many users"},
++ {69, "EDQUOT", "disc quota exceeded"},
++ {70, "ESTALE", "stale NFS file handle"},
++ {71, "EREMOTE", "too many levels of remote in path"},
++ {72, "EBADRPC", "RPC struct is bad"},
++ {73, "ERPCMISMATCH", "RPC version wrong"},
++ {74, "EPROGUNAVAIL", "RPC prog. not avail"},
++ {75, "EPROGMISMATCH", "program version wrong"},
++ {76, "EPROCUNAVAIL", "bad procedure for program"},
++ {77, "ENOLCK", "no locks available"},
++ {78, "ENOSYS", "function not implemented"},
++ {79, "EFTYPE", "inappropriate file type or format"},
++ {80, "EAUTH", "authentication error"},
++ {81, "ENEEDAUTH", "need authenticator"},
++ {82, "EPWROFF", "device power is off"},
++ {83, "EDEVERR", "device error"},
++ {84, "EOVERFLOW", "value too large to be stored in data type"},
++ {85, "EBADEXEC", "bad executable (or shared library)"},
++ {86, "EBADARCH", "bad CPU type in executable"},
++ {87, "ESHLIBVERS", "shared library version mismatch"},
++ {88, "EBADMACHO", "malformed Mach-o file"},
++ {89, "ECANCELED", "operation canceled"},
++ {90, "EIDRM", "identifier removed"},
++ {91, "ENOMSG", "no message of desired type"},
++ {92, "EILSEQ", "illegal byte sequence"},
++ {93, "ENOATTR", "attribute not found"},
++ {94, "EBADMSG", "bad message"},
++ {95, "EMULTIHOP", "EMULTIHOP (Reserved)"},
++ {96, "ENODATA", "no message available on STREAM"},
++ {97, "ENOLINK", "ENOLINK (Reserved)"},
++ {98, "ENOSR", "no STREAM resources"},
++ {99, "ENOSTR", "not a STREAM"},
++ {100, "EPROTO", "protocol error"},
++ {101, "ETIME", "STREAM ioctl timeout"},
++ {102, "EOPNOTSUPP", "operation not supported on socket"},
++ {103, "ENOPOLICY", "policy not found"},
++ {104, "ENOTRECOVERABLE", "state not recoverable"},
++ {105, "EOWNERDEAD", "previous owner died"},
++ {106, "EQFULL", "interface output queue is full"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/BPT trap",
+- 6: "abort trap",
+- 7: "EMT trap",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "bus error",
+- 11: "segmentation fault",
+- 12: "bad system call",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "urgent I/O condition",
+- 17: "suspended (signal)",
+- 18: "suspended",
+- 19: "continued",
+- 20: "child exited",
+- 21: "stopped (tty input)",
+- 22: "stopped (tty output)",
+- 23: "I/O possible",
+- 24: "cputime limit exceeded",
+- 25: "filesize limit exceeded",
+- 26: "virtual timer expired",
+- 27: "profiling timer expired",
+- 28: "window size changes",
+- 29: "information request",
+- 30: "user defined signal 1",
+- 31: "user defined signal 2",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/BPT trap"},
++ {6, "SIGABRT", "abort trap"},
++ {7, "SIGEMT", "EMT trap"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGBUS", "bus error"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGSYS", "bad system call"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGURG", "urgent I/O condition"},
++ {17, "SIGSTOP", "suspended (signal)"},
++ {18, "SIGTSTP", "suspended"},
++ {19, "SIGCONT", "continued"},
++ {20, "SIGCHLD", "child exited"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGIO", "I/O possible"},
++ {24, "SIGXCPU", "cputime limit exceeded"},
++ {25, "SIGXFSZ", "filesize limit exceeded"},
++ {26, "SIGVTALRM", "virtual timer expired"},
++ {27, "SIGPROF", "profiling timer expired"},
++ {28, "SIGWINCH", "window size changes"},
++ {29, "SIGINFO", "information request"},
++ {30, "SIGUSR1", "user defined signal 1"},
++ {31, "SIGUSR2", "user defined signal 2"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go
+index cc8cc5b5..cbd8ed18 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go
+@@ -3,7 +3,7 @@
+
+ // +build arm64,darwin
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+
+ package unix
+@@ -49,6 +49,86 @@ const (
+ AF_UNSPEC = 0x0
+ AF_UTUN = 0x26
+ ALTWERASE = 0x200
++ ATTR_BIT_MAP_COUNT = 0x5
++ ATTR_CMN_ACCESSMASK = 0x20000
++ ATTR_CMN_ACCTIME = 0x1000
++ ATTR_CMN_ADDEDTIME = 0x10000000
++ ATTR_CMN_BKUPTIME = 0x2000
++ ATTR_CMN_CHGTIME = 0x800
++ ATTR_CMN_CRTIME = 0x200
++ ATTR_CMN_DATA_PROTECT_FLAGS = 0x40000000
++ ATTR_CMN_DEVID = 0x2
++ ATTR_CMN_DOCUMENT_ID = 0x100000
++ ATTR_CMN_ERROR = 0x20000000
++ ATTR_CMN_EXTENDED_SECURITY = 0x400000
++ ATTR_CMN_FILEID = 0x2000000
++ ATTR_CMN_FLAGS = 0x40000
++ ATTR_CMN_FNDRINFO = 0x4000
++ ATTR_CMN_FSID = 0x4
++ ATTR_CMN_FULLPATH = 0x8000000
++ ATTR_CMN_GEN_COUNT = 0x80000
++ ATTR_CMN_GRPID = 0x10000
++ ATTR_CMN_GRPUUID = 0x1000000
++ ATTR_CMN_MODTIME = 0x400
++ ATTR_CMN_NAME = 0x1
++ ATTR_CMN_NAMEDATTRCOUNT = 0x80000
++ ATTR_CMN_NAMEDATTRLIST = 0x100000
++ ATTR_CMN_OBJID = 0x20
++ ATTR_CMN_OBJPERMANENTID = 0x40
++ ATTR_CMN_OBJTAG = 0x10
++ ATTR_CMN_OBJTYPE = 0x8
++ ATTR_CMN_OWNERID = 0x8000
++ ATTR_CMN_PARENTID = 0x4000000
++ ATTR_CMN_PAROBJID = 0x80
++ ATTR_CMN_RETURNED_ATTRS = 0x80000000
++ ATTR_CMN_SCRIPT = 0x100
++ ATTR_CMN_SETMASK = 0x41c7ff00
++ ATTR_CMN_USERACCESS = 0x200000
++ ATTR_CMN_UUID = 0x800000
++ ATTR_CMN_VALIDMASK = 0xffffffff
++ ATTR_CMN_VOLSETMASK = 0x6700
++ ATTR_FILE_ALLOCSIZE = 0x4
++ ATTR_FILE_CLUMPSIZE = 0x10
++ ATTR_FILE_DATAALLOCSIZE = 0x400
++ ATTR_FILE_DATAEXTENTS = 0x800
++ ATTR_FILE_DATALENGTH = 0x200
++ ATTR_FILE_DEVTYPE = 0x20
++ ATTR_FILE_FILETYPE = 0x40
++ ATTR_FILE_FORKCOUNT = 0x80
++ ATTR_FILE_FORKLIST = 0x100
++ ATTR_FILE_IOBLOCKSIZE = 0x8
++ ATTR_FILE_LINKCOUNT = 0x1
++ ATTR_FILE_RSRCALLOCSIZE = 0x2000
++ ATTR_FILE_RSRCEXTENTS = 0x4000
++ ATTR_FILE_RSRCLENGTH = 0x1000
++ ATTR_FILE_SETMASK = 0x20
++ ATTR_FILE_TOTALSIZE = 0x2
++ ATTR_FILE_VALIDMASK = 0x37ff
++ ATTR_VOL_ALLOCATIONCLUMP = 0x40
++ ATTR_VOL_ATTRIBUTES = 0x40000000
++ ATTR_VOL_CAPABILITIES = 0x20000
++ ATTR_VOL_DIRCOUNT = 0x400
++ ATTR_VOL_ENCODINGSUSED = 0x10000
++ ATTR_VOL_FILECOUNT = 0x200
++ ATTR_VOL_FSTYPE = 0x1
++ ATTR_VOL_INFO = 0x80000000
++ ATTR_VOL_IOBLOCKSIZE = 0x80
++ ATTR_VOL_MAXOBJCOUNT = 0x800
++ ATTR_VOL_MINALLOCATION = 0x20
++ ATTR_VOL_MOUNTEDDEVICE = 0x8000
++ ATTR_VOL_MOUNTFLAGS = 0x4000
++ ATTR_VOL_MOUNTPOINT = 0x1000
++ ATTR_VOL_NAME = 0x2000
++ ATTR_VOL_OBJCOUNT = 0x100
++ ATTR_VOL_QUOTA_SIZE = 0x10000000
++ ATTR_VOL_RESERVED_SIZE = 0x20000000
++ ATTR_VOL_SETMASK = 0x80002000
++ ATTR_VOL_SIGNATURE = 0x2
++ ATTR_VOL_SIZE = 0x4
++ ATTR_VOL_SPACEAVAIL = 0x10
++ ATTR_VOL_SPACEFREE = 0x8
++ ATTR_VOL_UUID = 0x40000
++ ATTR_VOL_VALIDMASK = 0xf007ffff
+ B0 = 0x0
+ B110 = 0x6e
+ B115200 = 0x1c200
+@@ -169,6 +249,8 @@ const (
+ CSTOP = 0x13
+ CSTOPB = 0x400
+ CSUSP = 0x1a
++ CTL_HW = 0x6
++ CTL_KERN = 0x1
+ CTL_MAXNAME = 0xc
+ CTL_NET = 0x4
+ DLT_A429 = 0xb8
+@@ -390,6 +472,11 @@ const (
+ FF1 = 0x4000
+ FFDLY = 0x4000
+ FLUSHO = 0x800000
++ FSOPT_ATTR_CMN_EXTENDED = 0x20
++ FSOPT_NOFOLLOW = 0x1
++ FSOPT_NOINMEMUPDATE = 0x2
++ FSOPT_PACK_INVAL_ATTRS = 0x8
++ FSOPT_REPORT_FULLSIZE = 0x4
+ F_ADDFILESIGS = 0x3d
+ F_ADDFILESIGS_FOR_DYLD_SIM = 0x53
+ F_ADDFILESIGS_RETURN = 0x61
+@@ -425,6 +512,7 @@ const (
+ F_PATHPKG_CHECK = 0x34
+ F_PEOFPOSMODE = 0x3
+ F_PREALLOCATE = 0x2a
++ F_PUNCHHOLE = 0x63
+ F_RDADVISE = 0x2c
+ F_RDAHEAD = 0x2d
+ F_RDLCK = 0x1
+@@ -441,10 +529,12 @@ const (
+ F_SINGLE_WRITER = 0x4c
+ F_THAW_FS = 0x36
+ F_TRANSCODEKEY = 0x4b
++ F_TRIM_ACTIVE_FILE = 0x64
+ F_UNLCK = 0x2
+ F_VOLPOSMODE = 0x4
+ F_WRLCK = 0x3
+ HUPCL = 0x4000
++ HW_MACHINE = 0x1
+ ICANON = 0x100
+ ICMP6_FILTER = 0x12
+ ICRNL = 0x100
+@@ -681,6 +771,7 @@ const (
+ IPV6_FAITH = 0x1d
+ IPV6_FLOWINFO_MASK = 0xffffff0f
+ IPV6_FLOWLABEL_MASK = 0xffff0f00
++ IPV6_FLOW_ECN_MASK = 0x300
+ IPV6_FRAGTTL = 0x3c
+ IPV6_FW_ADD = 0x1e
+ IPV6_FW_DEL = 0x1f
+@@ -771,6 +862,7 @@ const (
+ IP_RECVOPTS = 0x5
+ IP_RECVPKTINFO = 0x1a
+ IP_RECVRETOPTS = 0x6
++ IP_RECVTOS = 0x1b
+ IP_RECVTTL = 0x18
+ IP_RETOPTS = 0x8
+ IP_RF = 0x8000
+@@ -789,6 +881,10 @@ const (
+ IXANY = 0x800
+ IXOFF = 0x400
+ IXON = 0x200
++ KERN_HOSTNAME = 0xa
++ KERN_OSRELEASE = 0x2
++ KERN_OSTYPE = 0x1
++ KERN_VERSION = 0x4
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+ LOCK_SH = 0x1
+@@ -884,6 +980,7 @@ const (
+ NET_RT_MAXID = 0xa
+ NET_RT_STAT = 0x4
+ NET_RT_TRASH = 0x5
++ NFDBITS = 0x20
+ NL0 = 0x0
+ NL1 = 0x100
+ NL2 = 0x200
+@@ -1377,6 +1474,12 @@ const (
+ WORDSIZE = 0x40
+ WSTOPPED = 0x8
+ WUNTRACED = 0x2
++ XATTR_CREATE = 0x2
++ XATTR_NODEFAULT = 0x10
++ XATTR_NOFOLLOW = 0x1
++ XATTR_NOSECURITY = 0x8
++ XATTR_REPLACE = 0x4
++ XATTR_SHOWCOMPRESSION = 0x20
+ )
+
+ // Errors
+@@ -1528,146 +1631,154 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "device not configured",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource deadlock avoided",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "resource busy",
+- 17: "file exists",
+- 18: "cross-device link",
+- 19: "operation not supported by device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "result too large",
+- 35: "resource temporarily unavailable",
+- 36: "operation now in progress",
+- 37: "operation already in progress",
+- 38: "socket operation on non-socket",
+- 39: "destination address required",
+- 40: "message too long",
+- 41: "protocol wrong type for socket",
+- 42: "protocol not available",
+- 43: "protocol not supported",
+- 44: "socket type not supported",
+- 45: "operation not supported",
+- 46: "protocol family not supported",
+- 47: "address family not supported by protocol family",
+- 48: "address already in use",
+- 49: "can't assign requested address",
+- 50: "network is down",
+- 51: "network is unreachable",
+- 52: "network dropped connection on reset",
+- 53: "software caused connection abort",
+- 54: "connection reset by peer",
+- 55: "no buffer space available",
+- 56: "socket is already connected",
+- 57: "socket is not connected",
+- 58: "can't send after socket shutdown",
+- 59: "too many references: can't splice",
+- 60: "operation timed out",
+- 61: "connection refused",
+- 62: "too many levels of symbolic links",
+- 63: "file name too long",
+- 64: "host is down",
+- 65: "no route to host",
+- 66: "directory not empty",
+- 67: "too many processes",
+- 68: "too many users",
+- 69: "disc quota exceeded",
+- 70: "stale NFS file handle",
+- 71: "too many levels of remote in path",
+- 72: "RPC struct is bad",
+- 73: "RPC version wrong",
+- 74: "RPC prog. not avail",
+- 75: "program version wrong",
+- 76: "bad procedure for program",
+- 77: "no locks available",
+- 78: "function not implemented",
+- 79: "inappropriate file type or format",
+- 80: "authentication error",
+- 81: "need authenticator",
+- 82: "device power is off",
+- 83: "device error",
+- 84: "value too large to be stored in data type",
+- 85: "bad executable (or shared library)",
+- 86: "bad CPU type in executable",
+- 87: "shared library version mismatch",
+- 88: "malformed Mach-o file",
+- 89: "operation canceled",
+- 90: "identifier removed",
+- 91: "no message of desired type",
+- 92: "illegal byte sequence",
+- 93: "attribute not found",
+- 94: "bad message",
+- 95: "EMULTIHOP (Reserved)",
+- 96: "no message available on STREAM",
+- 97: "ENOLINK (Reserved)",
+- 98: "no STREAM resources",
+- 99: "not a STREAM",
+- 100: "protocol error",
+- 101: "STREAM ioctl timeout",
+- 102: "operation not supported on socket",
+- 103: "policy not found",
+- 104: "state not recoverable",
+- 105: "previous owner died",
+- 106: "interface output queue is full",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "device not configured"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EDEADLK", "resource deadlock avoided"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "resource busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "cross-device link"},
++ {19, "ENODEV", "operation not supported by device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "result too large"},
++ {35, "EAGAIN", "resource temporarily unavailable"},
++ {36, "EINPROGRESS", "operation now in progress"},
++ {37, "EALREADY", "operation already in progress"},
++ {38, "ENOTSOCK", "socket operation on non-socket"},
++ {39, "EDESTADDRREQ", "destination address required"},
++ {40, "EMSGSIZE", "message too long"},
++ {41, "EPROTOTYPE", "protocol wrong type for socket"},
++ {42, "ENOPROTOOPT", "protocol not available"},
++ {43, "EPROTONOSUPPORT", "protocol not supported"},
++ {44, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {45, "ENOTSUP", "operation not supported"},
++ {46, "EPFNOSUPPORT", "protocol family not supported"},
++ {47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++ {48, "EADDRINUSE", "address already in use"},
++ {49, "EADDRNOTAVAIL", "can't assign requested address"},
++ {50, "ENETDOWN", "network is down"},
++ {51, "ENETUNREACH", "network is unreachable"},
++ {52, "ENETRESET", "network dropped connection on reset"},
++ {53, "ECONNABORTED", "software caused connection abort"},
++ {54, "ECONNRESET", "connection reset by peer"},
++ {55, "ENOBUFS", "no buffer space available"},
++ {56, "EISCONN", "socket is already connected"},
++ {57, "ENOTCONN", "socket is not connected"},
++ {58, "ESHUTDOWN", "can't send after socket shutdown"},
++ {59, "ETOOMANYREFS", "too many references: can't splice"},
++ {60, "ETIMEDOUT", "operation timed out"},
++ {61, "ECONNREFUSED", "connection refused"},
++ {62, "ELOOP", "too many levels of symbolic links"},
++ {63, "ENAMETOOLONG", "file name too long"},
++ {64, "EHOSTDOWN", "host is down"},
++ {65, "EHOSTUNREACH", "no route to host"},
++ {66, "ENOTEMPTY", "directory not empty"},
++ {67, "EPROCLIM", "too many processes"},
++ {68, "EUSERS", "too many users"},
++ {69, "EDQUOT", "disc quota exceeded"},
++ {70, "ESTALE", "stale NFS file handle"},
++ {71, "EREMOTE", "too many levels of remote in path"},
++ {72, "EBADRPC", "RPC struct is bad"},
++ {73, "ERPCMISMATCH", "RPC version wrong"},
++ {74, "EPROGUNAVAIL", "RPC prog. not avail"},
++ {75, "EPROGMISMATCH", "program version wrong"},
++ {76, "EPROCUNAVAIL", "bad procedure for program"},
++ {77, "ENOLCK", "no locks available"},
++ {78, "ENOSYS", "function not implemented"},
++ {79, "EFTYPE", "inappropriate file type or format"},
++ {80, "EAUTH", "authentication error"},
++ {81, "ENEEDAUTH", "need authenticator"},
++ {82, "EPWROFF", "device power is off"},
++ {83, "EDEVERR", "device error"},
++ {84, "EOVERFLOW", "value too large to be stored in data type"},
++ {85, "EBADEXEC", "bad executable (or shared library)"},
++ {86, "EBADARCH", "bad CPU type in executable"},
++ {87, "ESHLIBVERS", "shared library version mismatch"},
++ {88, "EBADMACHO", "malformed Mach-o file"},
++ {89, "ECANCELED", "operation canceled"},
++ {90, "EIDRM", "identifier removed"},
++ {91, "ENOMSG", "no message of desired type"},
++ {92, "EILSEQ", "illegal byte sequence"},
++ {93, "ENOATTR", "attribute not found"},
++ {94, "EBADMSG", "bad message"},
++ {95, "EMULTIHOP", "EMULTIHOP (Reserved)"},
++ {96, "ENODATA", "no message available on STREAM"},
++ {97, "ENOLINK", "ENOLINK (Reserved)"},
++ {98, "ENOSR", "no STREAM resources"},
++ {99, "ENOSTR", "not a STREAM"},
++ {100, "EPROTO", "protocol error"},
++ {101, "ETIME", "STREAM ioctl timeout"},
++ {102, "EOPNOTSUPP", "operation not supported on socket"},
++ {103, "ENOPOLICY", "policy not found"},
++ {104, "ENOTRECOVERABLE", "state not recoverable"},
++ {105, "EOWNERDEAD", "previous owner died"},
++ {106, "EQFULL", "interface output queue is full"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/BPT trap",
+- 6: "abort trap",
+- 7: "EMT trap",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "bus error",
+- 11: "segmentation fault",
+- 12: "bad system call",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "urgent I/O condition",
+- 17: "suspended (signal)",
+- 18: "suspended",
+- 19: "continued",
+- 20: "child exited",
+- 21: "stopped (tty input)",
+- 22: "stopped (tty output)",
+- 23: "I/O possible",
+- 24: "cputime limit exceeded",
+- 25: "filesize limit exceeded",
+- 26: "virtual timer expired",
+- 27: "profiling timer expired",
+- 28: "window size changes",
+- 29: "information request",
+- 30: "user defined signal 1",
+- 31: "user defined signal 2",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/BPT trap"},
++ {6, "SIGABRT", "abort trap"},
++ {7, "SIGEMT", "EMT trap"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGBUS", "bus error"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGSYS", "bad system call"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGURG", "urgent I/O condition"},
++ {17, "SIGSTOP", "suspended (signal)"},
++ {18, "SIGTSTP", "suspended"},
++ {19, "SIGCONT", "continued"},
++ {20, "SIGCHLD", "child exited"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGIO", "I/O possible"},
++ {24, "SIGXCPU", "cputime limit exceeded"},
++ {25, "SIGXFSZ", "filesize limit exceeded"},
++ {26, "SIGVTALRM", "virtual timer expired"},
++ {27, "SIGPROF", "profiling timer expired"},
++ {28, "SIGWINCH", "window size changes"},
++ {29, "SIGINFO", "information request"},
++ {30, "SIGUSR1", "user defined signal 1"},
++ {31, "SIGUSR2", "user defined signal 2"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go
+index 8f40598b..61304717 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go
+@@ -3,7 +3,7 @@
+
+ // +build amd64,dragonfly
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+
+ package unix
+@@ -168,6 +168,8 @@ const (
+ CSTOP = 0x13
+ CSTOPB = 0x400
+ CSUSP = 0x1a
++ CTL_HW = 0x6
++ CTL_KERN = 0x1
+ CTL_MAXNAME = 0xc
+ CTL_NET = 0x4
+ DLT_A429 = 0xb8
+@@ -353,6 +355,7 @@ const (
+ F_UNLCK = 0x2
+ F_WRLCK = 0x3
+ HUPCL = 0x4000
++ HW_MACHINE = 0x1
+ ICANON = 0x100
+ ICMP6_FILTER = 0x12
+ ICRNL = 0x100
+@@ -835,6 +838,10 @@ const (
+ IXANY = 0x800
+ IXOFF = 0x400
+ IXON = 0x200
++ KERN_HOSTNAME = 0xa
++ KERN_OSRELEASE = 0x2
++ KERN_OSTYPE = 0x1
++ KERN_VERSION = 0x4
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+ LOCK_SH = 0x1
+@@ -873,6 +880,40 @@ const (
+ MAP_VPAGETABLE = 0x2000
+ MCL_CURRENT = 0x1
+ MCL_FUTURE = 0x2
++ MNT_ASYNC = 0x40
++ MNT_AUTOMOUNTED = 0x20
++ MNT_CMDFLAGS = 0xf0000
++ MNT_DEFEXPORTED = 0x200
++ MNT_DELEXPORT = 0x20000
++ MNT_EXKERB = 0x800
++ MNT_EXPORTANON = 0x400
++ MNT_EXPORTED = 0x100
++ MNT_EXPUBLIC = 0x20000000
++ MNT_EXRDONLY = 0x80
++ MNT_FORCE = 0x80000
++ MNT_IGNORE = 0x800000
++ MNT_LAZY = 0x4
++ MNT_LOCAL = 0x1000
++ MNT_NOATIME = 0x10000000
++ MNT_NOCLUSTERR = 0x40000000
++ MNT_NOCLUSTERW = 0x80000000
++ MNT_NODEV = 0x10
++ MNT_NOEXEC = 0x4
++ MNT_NOSUID = 0x8
++ MNT_NOSYMFOLLOW = 0x400000
++ MNT_NOWAIT = 0x2
++ MNT_QUOTA = 0x2000
++ MNT_RDONLY = 0x1
++ MNT_RELOAD = 0x40000
++ MNT_ROOTFS = 0x4000
++ MNT_SOFTDEP = 0x200000
++ MNT_SUIDDIR = 0x100000
++ MNT_SYNCHRONOUS = 0x2
++ MNT_TRIM = 0x1000000
++ MNT_UPDATE = 0x10000
++ MNT_USER = 0x8000
++ MNT_VISFLAGMASK = 0xf1f0ffff
++ MNT_WAIT = 0x1
+ MSG_CMSG_CLOEXEC = 0x1000
+ MSG_CTRUNC = 0x20
+ MSG_DONTROUTE = 0x4
+@@ -897,6 +938,7 @@ const (
+ NET_RT_FLAGS = 0x2
+ NET_RT_IFLIST = 0x3
+ NET_RT_MAXID = 0x4
++ NFDBITS = 0x40
+ NOFLSH = 0x80000000
+ NOKERNINFO = 0x2000000
+ NOTE_ATTRIB = 0x8
+@@ -973,7 +1015,10 @@ const (
+ RLIMIT_CPU = 0x0
+ RLIMIT_DATA = 0x2
+ RLIMIT_FSIZE = 0x1
++ RLIMIT_MEMLOCK = 0x6
+ RLIMIT_NOFILE = 0x8
++ RLIMIT_NPROC = 0x7
++ RLIMIT_RSS = 0x5
+ RLIMIT_STACK = 0x3
+ RLIM_INFINITY = 0x7fffffffffffffff
+ RTAX_AUTHOR = 0x6
+@@ -1158,6 +1203,36 @@ const (
+ SO_TIMESTAMP = 0x400
+ SO_TYPE = 0x1008
+ SO_USELOOPBACK = 0x40
++ S_BLKSIZE = 0x200
++ S_IEXEC = 0x40
++ S_IFBLK = 0x6000
++ S_IFCHR = 0x2000
++ S_IFDB = 0x9000
++ S_IFDIR = 0x4000
++ S_IFIFO = 0x1000
++ S_IFLNK = 0xa000
++ S_IFMT = 0xf000
++ S_IFREG = 0x8000
++ S_IFSOCK = 0xc000
++ S_IFWHT = 0xe000
++ S_IREAD = 0x100
++ S_IRGRP = 0x20
++ S_IROTH = 0x4
++ S_IRUSR = 0x100
++ S_IRWXG = 0x38
++ S_IRWXO = 0x7
++ S_IRWXU = 0x1c0
++ S_ISGID = 0x400
++ S_ISTXT = 0x200
++ S_ISUID = 0x800
++ S_ISVTX = 0x200
++ S_IWGRP = 0x10
++ S_IWOTH = 0x2
++ S_IWRITE = 0x80
++ S_IWUSR = 0x80
++ S_IXGRP = 0x8
++ S_IXOTH = 0x1
++ S_IXUSR = 0x40
+ TCIFLUSH = 0x1
+ TCIOFF = 0x3
+ TCIOFLUSH = 0x3
+@@ -1427,142 +1502,150 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "device not configured",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource deadlock avoided",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "device busy",
+- 17: "file exists",
+- 18: "cross-device link",
+- 19: "operation not supported by device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "result too large",
+- 35: "resource temporarily unavailable",
+- 36: "operation now in progress",
+- 37: "operation already in progress",
+- 38: "socket operation on non-socket",
+- 39: "destination address required",
+- 40: "message too long",
+- 41: "protocol wrong type for socket",
+- 42: "protocol not available",
+- 43: "protocol not supported",
+- 44: "socket type not supported",
+- 45: "operation not supported",
+- 46: "protocol family not supported",
+- 47: "address family not supported by protocol family",
+- 48: "address already in use",
+- 49: "can't assign requested address",
+- 50: "network is down",
+- 51: "network is unreachable",
+- 52: "network dropped connection on reset",
+- 53: "software caused connection abort",
+- 54: "connection reset by peer",
+- 55: "no buffer space available",
+- 56: "socket is already connected",
+- 57: "socket is not connected",
+- 58: "can't send after socket shutdown",
+- 59: "too many references: can't splice",
+- 60: "operation timed out",
+- 61: "connection refused",
+- 62: "too many levels of symbolic links",
+- 63: "file name too long",
+- 64: "host is down",
+- 65: "no route to host",
+- 66: "directory not empty",
+- 67: "too many processes",
+- 68: "too many users",
+- 69: "disc quota exceeded",
+- 70: "stale NFS file handle",
+- 71: "too many levels of remote in path",
+- 72: "RPC struct is bad",
+- 73: "RPC version wrong",
+- 74: "RPC prog. not avail",
+- 75: "program version wrong",
+- 76: "bad procedure for program",
+- 77: "no locks available",
+- 78: "function not implemented",
+- 79: "inappropriate file type or format",
+- 80: "authentication error",
+- 81: "need authenticator",
+- 82: "identifier removed",
+- 83: "no message of desired type",
+- 84: "value too large to be stored in data type",
+- 85: "operation canceled",
+- 86: "illegal byte sequence",
+- 87: "attribute not found",
+- 88: "programming error",
+- 89: "bad message",
+- 90: "multihop attempted",
+- 91: "link has been severed",
+- 92: "protocol error",
+- 93: "no medium found",
+- 94: "unknown error: 94",
+- 95: "unknown error: 95",
+- 96: "unknown error: 96",
+- 97: "unknown error: 97",
+- 98: "unknown error: 98",
+- 99: "unknown error: 99",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "device not configured"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EDEADLK", "resource deadlock avoided"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "cross-device link"},
++ {19, "ENODEV", "operation not supported by device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "result too large"},
++ {35, "EWOULDBLOCK", "resource temporarily unavailable"},
++ {36, "EINPROGRESS", "operation now in progress"},
++ {37, "EALREADY", "operation already in progress"},
++ {38, "ENOTSOCK", "socket operation on non-socket"},
++ {39, "EDESTADDRREQ", "destination address required"},
++ {40, "EMSGSIZE", "message too long"},
++ {41, "EPROTOTYPE", "protocol wrong type for socket"},
++ {42, "ENOPROTOOPT", "protocol not available"},
++ {43, "EPROTONOSUPPORT", "protocol not supported"},
++ {44, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {45, "EOPNOTSUPP", "operation not supported"},
++ {46, "EPFNOSUPPORT", "protocol family not supported"},
++ {47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++ {48, "EADDRINUSE", "address already in use"},
++ {49, "EADDRNOTAVAIL", "can't assign requested address"},
++ {50, "ENETDOWN", "network is down"},
++ {51, "ENETUNREACH", "network is unreachable"},
++ {52, "ENETRESET", "network dropped connection on reset"},
++ {53, "ECONNABORTED", "software caused connection abort"},
++ {54, "ECONNRESET", "connection reset by peer"},
++ {55, "ENOBUFS", "no buffer space available"},
++ {56, "EISCONN", "socket is already connected"},
++ {57, "ENOTCONN", "socket is not connected"},
++ {58, "ESHUTDOWN", "can't send after socket shutdown"},
++ {59, "ETOOMANYREFS", "too many references: can't splice"},
++ {60, "ETIMEDOUT", "operation timed out"},
++ {61, "ECONNREFUSED", "connection refused"},
++ {62, "ELOOP", "too many levels of symbolic links"},
++ {63, "ENAMETOOLONG", "file name too long"},
++ {64, "EHOSTDOWN", "host is down"},
++ {65, "EHOSTUNREACH", "no route to host"},
++ {66, "ENOTEMPTY", "directory not empty"},
++ {67, "EPROCLIM", "too many processes"},
++ {68, "EUSERS", "too many users"},
++ {69, "EDQUOT", "disc quota exceeded"},
++ {70, "ESTALE", "stale NFS file handle"},
++ {71, "EREMOTE", "too many levels of remote in path"},
++ {72, "EBADRPC", "RPC struct is bad"},
++ {73, "ERPCMISMATCH", "RPC version wrong"},
++ {74, "EPROGUNAVAIL", "RPC prog. not avail"},
++ {75, "EPROGMISMATCH", "program version wrong"},
++ {76, "EPROCUNAVAIL", "bad procedure for program"},
++ {77, "ENOLCK", "no locks available"},
++ {78, "ENOSYS", "function not implemented"},
++ {79, "EFTYPE", "inappropriate file type or format"},
++ {80, "EAUTH", "authentication error"},
++ {81, "ENEEDAUTH", "need authenticator"},
++ {82, "EIDRM", "identifier removed"},
++ {83, "ENOMSG", "no message of desired type"},
++ {84, "EOVERFLOW", "value too large to be stored in data type"},
++ {85, "ECANCELED", "operation canceled"},
++ {86, "EILSEQ", "illegal byte sequence"},
++ {87, "ENOATTR", "attribute not found"},
++ {88, "EDOOFUS", "programming error"},
++ {89, "EBADMSG", "bad message"},
++ {90, "EMULTIHOP", "multihop attempted"},
++ {91, "ENOLINK", "link has been severed"},
++ {92, "EPROTO", "protocol error"},
++ {93, "ENOMEDIUM", "no medium found"},
++ {94, "EUNUSED94", "unknown error: 94"},
++ {95, "EUNUSED95", "unknown error: 95"},
++ {96, "EUNUSED96", "unknown error: 96"},
++ {97, "EUNUSED97", "unknown error: 97"},
++ {98, "EUNUSED98", "unknown error: 98"},
++ {99, "ELAST", "unknown error: 99"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/BPT trap",
+- 6: "abort trap",
+- 7: "EMT trap",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "bus error",
+- 11: "segmentation fault",
+- 12: "bad system call",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "urgent I/O condition",
+- 17: "suspended (signal)",
+- 18: "suspended",
+- 19: "continued",
+- 20: "child exited",
+- 21: "stopped (tty input)",
+- 22: "stopped (tty output)",
+- 23: "I/O possible",
+- 24: "cputime limit exceeded",
+- 25: "filesize limit exceeded",
+- 26: "virtual timer expired",
+- 27: "profiling timer expired",
+- 28: "window size changes",
+- 29: "information request",
+- 30: "user defined signal 1",
+- 31: "user defined signal 2",
+- 32: "thread Scheduler",
+- 33: "checkPoint",
+- 34: "checkPointExit",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/BPT trap"},
++ {6, "SIGIOT", "abort trap"},
++ {7, "SIGEMT", "EMT trap"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGBUS", "bus error"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGSYS", "bad system call"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGURG", "urgent I/O condition"},
++ {17, "SIGSTOP", "suspended (signal)"},
++ {18, "SIGTSTP", "suspended"},
++ {19, "SIGCONT", "continued"},
++ {20, "SIGCHLD", "child exited"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGIO", "I/O possible"},
++ {24, "SIGXCPU", "cputime limit exceeded"},
++ {25, "SIGXFSZ", "filesize limit exceeded"},
++ {26, "SIGVTALRM", "virtual timer expired"},
++ {27, "SIGPROF", "profiling timer expired"},
++ {28, "SIGWINCH", "window size changes"},
++ {29, "SIGINFO", "information request"},
++ {30, "SIGUSR1", "user defined signal 1"},
++ {31, "SIGUSR2", "user defined signal 2"},
++ {32, "SIGTHR", "thread Scheduler"},
++ {33, "SIGCKPT", "checkPoint"},
++ {34, "SIGCKPTEXIT", "checkPointExit"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go
+index 1d3eec44..84824587 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go
+@@ -3,7 +3,7 @@
+
+ // +build 386,freebsd
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m32 _const.go
+
+ package unix
+@@ -351,8 +351,26 @@ const (
+ CSTOP = 0x13
+ CSTOPB = 0x400
+ CSUSP = 0x1a
++ CTL_HW = 0x6
++ CTL_KERN = 0x1
+ CTL_MAXNAME = 0x18
+ CTL_NET = 0x4
++ DIOCGATTR = 0xc144648e
++ DIOCGDELETE = 0x80106488
++ DIOCGFLUSH = 0x20006487
++ DIOCGFRONTSTUFF = 0x40086486
++ DIOCGFWHEADS = 0x40046483
++ DIOCGFWSECTORS = 0x40046482
++ DIOCGIDENT = 0x41006489
++ DIOCGMEDIASIZE = 0x40086481
++ DIOCGPHYSPATH = 0x4400648d
++ DIOCGPROVIDERNAME = 0x4400648a
++ DIOCGSECTORSIZE = 0x40046480
++ DIOCGSTRIPEOFFSET = 0x4008648c
++ DIOCGSTRIPESIZE = 0x4008648b
++ DIOCSKERNELDUMP = 0x804c6490
++ DIOCSKERNELDUMP_FREEBSD11 = 0x80046485
++ DIOCZONECMD = 0xc06c648f
+ DLT_A429 = 0xb8
+ DLT_A653_ICM = 0xb9
+ DLT_AIRONET_HEADER = 0x78
+@@ -377,11 +395,14 @@ const (
+ DLT_CHAOS = 0x5
+ DLT_CHDLC = 0x68
+ DLT_CISCO_IOS = 0x76
++ DLT_CLASS_NETBSD_RAWAF = 0x2240000
+ DLT_C_HDLC = 0x68
+ DLT_C_HDLC_WITH_DIR = 0xcd
+ DLT_DBUS = 0xe7
+ DLT_DECT = 0xdd
++ DLT_DISPLAYPORT_AUX = 0x113
+ DLT_DOCSIS = 0x8f
++ DLT_DOCSIS31_XRA31 = 0x111
+ DLT_DVB_CI = 0xeb
+ DLT_ECONET = 0x73
+ DLT_EN10MB = 0x1
+@@ -391,6 +412,7 @@ const (
+ DLT_ERF = 0xc5
+ DLT_ERF_ETH = 0xaf
+ DLT_ERF_POS = 0xb0
++ DLT_ETHERNET_MPACKET = 0x112
+ DLT_FC_2 = 0xe0
+ DLT_FC_2_WITH_FRAME_DELIMS = 0xe1
+ DLT_FDDI = 0xa
+@@ -404,7 +426,6 @@ const (
+ DLT_GPRS_LLC = 0xa9
+ DLT_GSMTAP_ABIS = 0xda
+ DLT_GSMTAP_UM = 0xd9
+- DLT_HHDLC = 0x79
+ DLT_IBM_SN = 0x92
+ DLT_IBM_SP = 0x91
+ DLT_IEEE802 = 0x6
+@@ -427,6 +448,7 @@ const (
+ DLT_IPV4 = 0xe4
+ DLT_IPV6 = 0xe5
+ DLT_IP_OVER_FC = 0x7a
++ DLT_ISO_14443 = 0x108
+ DLT_JUNIPER_ATM1 = 0x89
+ DLT_JUNIPER_ATM2 = 0x87
+ DLT_JUNIPER_ATM_CEMIC = 0xee
+@@ -459,8 +481,9 @@ const (
+ DLT_LINUX_PPP_WITHDIRECTION = 0xa6
+ DLT_LINUX_SLL = 0x71
+ DLT_LOOP = 0x6c
++ DLT_LORATAP = 0x10e
+ DLT_LTALK = 0x72
+- DLT_MATCHING_MAX = 0x104
++ DLT_MATCHING_MAX = 0x113
+ DLT_MATCHING_MIN = 0x68
+ DLT_MFR = 0xb6
+ DLT_MOST = 0xd3
+@@ -476,14 +499,16 @@ const (
+ DLT_NFC_LLCP = 0xf5
+ DLT_NFLOG = 0xef
+ DLT_NG40 = 0xf4
++ DLT_NORDIC_BLE = 0x110
+ DLT_NULL = 0x0
++ DLT_OPENFLOW = 0x10b
+ DLT_PCI_EXP = 0x7d
+ DLT_PFLOG = 0x75
+ DLT_PFSYNC = 0x79
+ DLT_PKTAP = 0x102
+ DLT_PPI = 0xc0
+ DLT_PPP = 0x9
+- DLT_PPP_BSDOS = 0x10
++ DLT_PPP_BSDOS = 0xe
+ DLT_PPP_ETHER = 0x33
+ DLT_PPP_PPPD = 0xa6
+ DLT_PPP_SERIAL = 0x32
+@@ -494,19 +519,25 @@ const (
+ DLT_PRONET = 0x4
+ DLT_RAIF1 = 0xc6
+ DLT_RAW = 0xc
++ DLT_RDS = 0x109
++ DLT_REDBACK_SMARTEDGE = 0x20
+ DLT_RIO = 0x7c
+ DLT_RTAC_SERIAL = 0xfa
+ DLT_SCCP = 0x8e
+ DLT_SCTP = 0xf8
++ DLT_SDLC = 0x10c
+ DLT_SITA = 0xc4
+ DLT_SLIP = 0x8
+- DLT_SLIP_BSDOS = 0xf
++ DLT_SLIP_BSDOS = 0xd
+ DLT_STANAG_5066_D_PDU = 0xed
+ DLT_SUNATM = 0x7b
+ DLT_SYMANTEC_FIREWALL = 0x63
++ DLT_TI_LLN_SNIFFER = 0x10d
+ DLT_TZSP = 0x80
+ DLT_USB = 0xba
+ DLT_USBPCAP = 0xf9
++ DLT_USB_DARWIN = 0x10a
++ DLT_USB_FREEBSD = 0xba
+ DLT_USB_LINUX = 0xbd
+ DLT_USB_LINUX_MMAPPED = 0xdc
+ DLT_USER0 = 0x93
+@@ -525,10 +556,14 @@ const (
+ DLT_USER7 = 0x9a
+ DLT_USER8 = 0x9b
+ DLT_USER9 = 0x9c
++ DLT_VSOCK = 0x10f
++ DLT_WATTSTOPPER_DLM = 0x107
+ DLT_WIHART = 0xdf
+ DLT_WIRESHARK_UPPER_PDU = 0xfc
+ DLT_X2E_SERIAL = 0xd5
+ DLT_X2E_XORAYA = 0xd6
++ DLT_ZWAVE_R1_R2 = 0x105
++ DLT_ZWAVE_R3 = 0x106
+ DT_BLK = 0x6
+ DT_CHR = 0x2
+ DT_DIR = 0x4
+@@ -546,6 +581,7 @@ const (
+ ECHONL = 0x10
+ ECHOPRT = 0x20
+ EVFILT_AIO = -0x3
++ EVFILT_EMPTY = -0xd
+ EVFILT_FS = -0x9
+ EVFILT_LIO = -0xa
+ EVFILT_PROC = -0x5
+@@ -553,11 +589,12 @@ const (
+ EVFILT_READ = -0x1
+ EVFILT_SENDFILE = -0xc
+ EVFILT_SIGNAL = -0x6
+- EVFILT_SYSCOUNT = 0xc
++ EVFILT_SYSCOUNT = 0xd
+ EVFILT_TIMER = -0x7
+ EVFILT_USER = -0xb
+ EVFILT_VNODE = -0x4
+ EVFILT_WRITE = -0x2
++ EVNAMEMAP_NAME_SIZE = 0x40
+ EV_ADD = 0x1
+ EV_CLEAR = 0x20
+ EV_DELETE = 0x2
+@@ -574,6 +611,7 @@ const (
+ EV_RECEIPT = 0x40
+ EV_SYSFLAGS = 0xf000
+ EXTA = 0x4b00
++ EXTATTR_MAXNAMELEN = 0xff
+ EXTATTR_NAMESPACE_EMPTY = 0x0
+ EXTATTR_NAMESPACE_SYSTEM = 0x2
+ EXTATTR_NAMESPACE_USER = 0x1
+@@ -608,12 +646,14 @@ const (
+ F_UNLCKSYS = 0x4
+ F_WRLCK = 0x3
+ HUPCL = 0x4000
++ HW_MACHINE = 0x1
+ ICANON = 0x100
+ ICMP6_FILTER = 0x12
+ ICRNL = 0x100
+ IEXTEN = 0x400
+ IFAN_ARRIVAL = 0x0
+ IFAN_DEPARTURE = 0x1
++ IFCAP_WOL_MAGIC = 0x2000
+ IFF_ALLMULTI = 0x200
+ IFF_ALTPHYS = 0x4000
+ IFF_BROADCAST = 0x2
+@@ -630,6 +670,7 @@ const (
+ IFF_MONITOR = 0x40000
+ IFF_MULTICAST = 0x8000
+ IFF_NOARP = 0x80
++ IFF_NOGROUP = 0x800000
+ IFF_OACTIVE = 0x400
+ IFF_POINTOPOINT = 0x10
+ IFF_PPROMISC = 0x20000
+@@ -804,6 +845,7 @@ const (
+ IPV6_DSTOPTS = 0x32
+ IPV6_FLOWID = 0x43
+ IPV6_FLOWINFO_MASK = 0xffffff0f
++ IPV6_FLOWLABEL_LEN = 0x14
+ IPV6_FLOWLABEL_MASK = 0xffff0f00
+ IPV6_FLOWTYPE = 0x44
+ IPV6_FRAGTTL = 0x78
+@@ -824,13 +866,13 @@ const (
+ IPV6_MAX_GROUP_SRC_FILTER = 0x200
+ IPV6_MAX_MEMBERSHIPS = 0xfff
+ IPV6_MAX_SOCK_SRC_FILTER = 0x80
+- IPV6_MIN_MEMBERSHIPS = 0x1f
+ IPV6_MMTU = 0x500
+ IPV6_MSFILTER = 0x4a
+ IPV6_MULTICAST_HOPS = 0xa
+ IPV6_MULTICAST_IF = 0x9
+ IPV6_MULTICAST_LOOP = 0xb
+ IPV6_NEXTHOP = 0x30
++ IPV6_ORIGDSTADDR = 0x48
+ IPV6_PATHMTU = 0x2c
+ IPV6_PKTINFO = 0x2e
+ IPV6_PORTRANGE = 0xe
+@@ -842,6 +884,7 @@ const (
+ IPV6_RECVFLOWID = 0x46
+ IPV6_RECVHOPLIMIT = 0x25
+ IPV6_RECVHOPOPTS = 0x27
++ IPV6_RECVORIGDSTADDR = 0x48
+ IPV6_RECVPATHMTU = 0x2b
+ IPV6_RECVPKTINFO = 0x24
+ IPV6_RECVRSSBUCKETID = 0x47
+@@ -902,10 +945,8 @@ const (
+ IP_MAX_MEMBERSHIPS = 0xfff
+ IP_MAX_SOCK_MUTE_FILTER = 0x80
+ IP_MAX_SOCK_SRC_FILTER = 0x80
+- IP_MAX_SOURCE_FILTER = 0x400
+ IP_MF = 0x2000
+ IP_MINTTL = 0x42
+- IP_MIN_MEMBERSHIPS = 0x1f
+ IP_MSFILTER = 0x4a
+ IP_MSS = 0x240
+ IP_MULTICAST_IF = 0x9
+@@ -915,6 +956,7 @@ const (
+ IP_OFFMASK = 0x1fff
+ IP_ONESBCAST = 0x17
+ IP_OPTIONS = 0x1
++ IP_ORIGDSTADDR = 0x1b
+ IP_PORTRANGE = 0x13
+ IP_PORTRANGE_DEFAULT = 0x0
+ IP_PORTRANGE_HIGH = 0x1
+@@ -923,6 +965,7 @@ const (
+ IP_RECVFLOWID = 0x5d
+ IP_RECVIF = 0x14
+ IP_RECVOPTS = 0x5
++ IP_RECVORIGDSTADDR = 0x1b
+ IP_RECVRETOPTS = 0x6
+ IP_RECVRSSBUCKETID = 0x5e
+ IP_RECVTOS = 0x44
+@@ -944,6 +987,10 @@ const (
+ IXANY = 0x800
+ IXOFF = 0x400
+ IXON = 0x200
++ KERN_HOSTNAME = 0xa
++ KERN_OSRELEASE = 0x2
++ KERN_OSTYPE = 0x1
++ KERN_VERSION = 0x4
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+ LOCK_SH = 0x1
+@@ -968,6 +1015,7 @@ const (
+ MAP_EXCL = 0x4000
+ MAP_FILE = 0x0
+ MAP_FIXED = 0x10
++ MAP_GUARD = 0x2000
+ MAP_HASSEMAPHORE = 0x200
+ MAP_NOCORE = 0x20000
+ MAP_NOSYNC = 0x800
+@@ -979,8 +1027,62 @@ const (
+ MAP_RESERVED0100 = 0x100
+ MAP_SHARED = 0x1
+ MAP_STACK = 0x400
++ MCAST_BLOCK_SOURCE = 0x54
++ MCAST_EXCLUDE = 0x2
++ MCAST_INCLUDE = 0x1
++ MCAST_JOIN_GROUP = 0x50
++ MCAST_JOIN_SOURCE_GROUP = 0x52
++ MCAST_LEAVE_GROUP = 0x51
++ MCAST_LEAVE_SOURCE_GROUP = 0x53
++ MCAST_UNBLOCK_SOURCE = 0x55
++ MCAST_UNDEFINED = 0x0
+ MCL_CURRENT = 0x1
+ MCL_FUTURE = 0x2
++ MNT_ACLS = 0x8000000
++ MNT_ASYNC = 0x40
++ MNT_AUTOMOUNTED = 0x200000000
++ MNT_BYFSID = 0x8000000
++ MNT_CMDFLAGS = 0xd0f0000
++ MNT_DEFEXPORTED = 0x200
++ MNT_DELEXPORT = 0x20000
++ MNT_EXKERB = 0x800
++ MNT_EXPORTANON = 0x400
++ MNT_EXPORTED = 0x100
++ MNT_EXPUBLIC = 0x20000000
++ MNT_EXRDONLY = 0x80
++ MNT_FORCE = 0x80000
++ MNT_GJOURNAL = 0x2000000
++ MNT_IGNORE = 0x800000
++ MNT_LAZY = 0x3
++ MNT_LOCAL = 0x1000
++ MNT_MULTILABEL = 0x4000000
++ MNT_NFS4ACLS = 0x10
++ MNT_NOATIME = 0x10000000
++ MNT_NOCLUSTERR = 0x40000000
++ MNT_NOCLUSTERW = 0x80000000
++ MNT_NOEXEC = 0x4
++ MNT_NONBUSY = 0x4000000
++ MNT_NOSUID = 0x8
++ MNT_NOSYMFOLLOW = 0x400000
++ MNT_NOWAIT = 0x2
++ MNT_QUOTA = 0x2000
++ MNT_RDONLY = 0x1
++ MNT_RELOAD = 0x40000
++ MNT_ROOTFS = 0x4000
++ MNT_SNAPSHOT = 0x1000000
++ MNT_SOFTDEP = 0x200000
++ MNT_SUIDDIR = 0x100000
++ MNT_SUJ = 0x100000000
++ MNT_SUSPEND = 0x4
++ MNT_SYNCHRONOUS = 0x2
++ MNT_UNION = 0x20
++ MNT_UNTRUSTED = 0x800000000
++ MNT_UPDATE = 0x10000
++ MNT_UPDATEMASK = 0xad8d0807e
++ MNT_USER = 0x8000
++ MNT_VERIFIED = 0x400000000
++ MNT_VISFLAGMASK = 0xffef0ffff
++ MNT_WAIT = 0x1
+ MSG_CMSG_CLOEXEC = 0x40000
+ MSG_COMPAT = 0x8000
+ MSG_CTRUNC = 0x20
+@@ -1005,8 +1107,10 @@ const (
+ NET_RT_IFLIST = 0x3
+ NET_RT_IFLISTL = 0x5
+ NET_RT_IFMALIST = 0x4
++ NFDBITS = 0x20
+ NOFLSH = 0x80000000
+ NOKERNINFO = 0x2000000
++ NOTE_ABSTIME = 0x10
+ NOTE_ATTRIB = 0x8
+ NOTE_CHILD = 0x4
+ NOTE_CLOSE = 0x100
+@@ -1161,7 +1265,6 @@ const (
+ RTV_WEIGHT = 0x100
+ RT_ALL_FIBS = -0x1
+ RT_BLACKHOLE = 0x40
+- RT_CACHING_CONTEXT = 0x1
+ RT_DEFAULT_FIB = 0x0
+ RT_HAS_GW = 0x80
+ RT_HAS_HEADER = 0x10
+@@ -1171,15 +1274,17 @@ const (
+ RT_LLE_CACHE = 0x100
+ RT_MAY_LOOP = 0x8
+ RT_MAY_LOOP_BIT = 0x3
+- RT_NORTREF = 0x2
+ RT_REJECT = 0x20
+ RUSAGE_CHILDREN = -0x1
+ RUSAGE_SELF = 0x0
+ RUSAGE_THREAD = 0x1
+ SCM_BINTIME = 0x4
+ SCM_CREDS = 0x3
++ SCM_MONOTONIC = 0x6
++ SCM_REALTIME = 0x5
+ SCM_RIGHTS = 0x1
+ SCM_TIMESTAMP = 0x2
++ SCM_TIME_INFO = 0x7
+ SHUT_RD = 0x0
+ SHUT_RDWR = 0x2
+ SHUT_WR = 0x1
+@@ -1195,6 +1300,7 @@ const (
+ SIOCGETSGCNT = 0xc0147210
+ SIOCGETVIFCNT = 0xc014720f
+ SIOCGHIWAT = 0x40047301
++ SIOCGHWADDR = 0xc020693e
+ SIOCGI2C = 0xc020693d
+ SIOCGIFADDR = 0xc0206921
+ SIOCGIFBRDADDR = 0xc0206923
+@@ -1216,8 +1322,11 @@ const (
+ SIOCGIFPDSTADDR = 0xc0206948
+ SIOCGIFPHYS = 0xc0206935
+ SIOCGIFPSRCADDR = 0xc0206947
++ SIOCGIFRSSHASH = 0xc0186997
++ SIOCGIFRSSKEY = 0xc0946996
+ SIOCGIFSTATUS = 0xc331693b
+ SIOCGIFXMEDIA = 0xc028698b
++ SIOCGLANPCP = 0xc0206998
+ SIOCGLOWAT = 0x40047303
+ SIOCGPGRP = 0x40047309
+ SIOCGPRIVATE_0 = 0xc0206950
+@@ -1248,6 +1357,7 @@ const (
+ SIOCSIFPHYS = 0x80206936
+ SIOCSIFRVNET = 0xc020695b
+ SIOCSIFVNET = 0xc020695a
++ SIOCSLANPCP = 0x80206999
+ SIOCSLOWAT = 0x80047302
+ SIOCSPGRP = 0x80047308
+ SIOCSTUNFIB = 0x8020695f
+@@ -1266,6 +1376,7 @@ const (
+ SO_BINTIME = 0x2000
+ SO_BROADCAST = 0x20
+ SO_DEBUG = 0x1
++ SO_DOMAIN = 0x1019
+ SO_DONTROUTE = 0x10
+ SO_ERROR = 0x1007
+ SO_KEEPALIVE = 0x8
+@@ -1274,6 +1385,7 @@ const (
+ SO_LISTENINCQLEN = 0x1013
+ SO_LISTENQLEN = 0x1012
+ SO_LISTENQLIMIT = 0x1011
++ SO_MAX_PACING_RATE = 0x1018
+ SO_NOSIGPIPE = 0x800
+ SO_NO_DDP = 0x8000
+ SO_NO_OFFLOAD = 0x4000
+@@ -1286,15 +1398,52 @@ const (
+ SO_RCVTIMEO = 0x1006
+ SO_REUSEADDR = 0x4
+ SO_REUSEPORT = 0x200
++ SO_REUSEPORT_LB = 0x10000
+ SO_SETFIB = 0x1014
+ SO_SNDBUF = 0x1001
+ SO_SNDLOWAT = 0x1003
+ SO_SNDTIMEO = 0x1005
+ SO_TIMESTAMP = 0x400
++ SO_TS_BINTIME = 0x1
++ SO_TS_CLOCK = 0x1017
++ SO_TS_CLOCK_MAX = 0x3
++ SO_TS_DEFAULT = 0x0
++ SO_TS_MONOTONIC = 0x3
++ SO_TS_REALTIME = 0x2
++ SO_TS_REALTIME_MICRO = 0x0
+ SO_TYPE = 0x1008
+ SO_USELOOPBACK = 0x40
+ SO_USER_COOKIE = 0x1015
+ SO_VENDOR = 0x80000000
++ S_BLKSIZE = 0x200
++ S_IEXEC = 0x40
++ S_IFBLK = 0x6000
++ S_IFCHR = 0x2000
++ S_IFDIR = 0x4000
++ S_IFIFO = 0x1000
++ S_IFLNK = 0xa000
++ S_IFMT = 0xf000
++ S_IFREG = 0x8000
++ S_IFSOCK = 0xc000
++ S_IFWHT = 0xe000
++ S_IREAD = 0x100
++ S_IRGRP = 0x20
++ S_IROTH = 0x4
++ S_IRUSR = 0x100
++ S_IRWXG = 0x38
++ S_IRWXO = 0x7
++ S_IRWXU = 0x1c0
++ S_ISGID = 0x400
++ S_ISTXT = 0x200
++ S_ISUID = 0x800
++ S_ISVTX = 0x200
++ S_IWGRP = 0x10
++ S_IWOTH = 0x2
++ S_IWRITE = 0x80
++ S_IWUSR = 0x80
++ S_IXGRP = 0x8
++ S_IXOTH = 0x1
++ S_IXUSR = 0x40
+ TAB0 = 0x0
+ TAB3 = 0x4
+ TABDLY = 0x4
+@@ -1305,10 +1454,45 @@ const (
+ TCOFLUSH = 0x2
+ TCOOFF = 0x1
+ TCOON = 0x2
++ TCP_BBR_ACK_COMP_ALG = 0x448
++ TCP_BBR_DRAIN_INC_EXTRA = 0x43c
++ TCP_BBR_DRAIN_PG = 0x42e
++ TCP_BBR_EXTRA_GAIN = 0x449
++ TCP_BBR_IWINTSO = 0x42b
++ TCP_BBR_LOWGAIN_FD = 0x436
++ TCP_BBR_LOWGAIN_HALF = 0x435
++ TCP_BBR_LOWGAIN_THRESH = 0x434
++ TCP_BBR_MAX_RTO = 0x439
++ TCP_BBR_MIN_RTO = 0x438
++ TCP_BBR_ONE_RETRAN = 0x431
++ TCP_BBR_PACE_CROSS = 0x442
++ TCP_BBR_PACE_DEL_TAR = 0x43f
++ TCP_BBR_PACE_PER_SEC = 0x43e
++ TCP_BBR_PACE_SEG_MAX = 0x440
++ TCP_BBR_PACE_SEG_MIN = 0x441
++ TCP_BBR_PROBE_RTT_GAIN = 0x44d
++ TCP_BBR_PROBE_RTT_INT = 0x430
++ TCP_BBR_PROBE_RTT_LEN = 0x44e
++ TCP_BBR_RACK_RTT_USE = 0x44a
++ TCP_BBR_RECFORCE = 0x42c
++ TCP_BBR_REC_OVER_HPTS = 0x43a
++ TCP_BBR_RETRAN_WTSO = 0x44b
++ TCP_BBR_RWND_IS_APP = 0x42f
++ TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d
++ TCP_BBR_STARTUP_LOSS_EXIT = 0x432
++ TCP_BBR_STARTUP_PG = 0x42d
++ TCP_BBR_UNLIMITED = 0x43b
++ TCP_BBR_USEDEL_RATE = 0x437
++ TCP_BBR_USE_LOWGAIN = 0x433
+ TCP_CA_NAME_MAX = 0x10
+ TCP_CCALGOOPT = 0x41
+ TCP_CONGESTION = 0x40
++ TCP_DATA_AFTER_CLOSE = 0x44c
++ TCP_DELACK = 0x48
+ TCP_FASTOPEN = 0x401
++ TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10
++ TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4
++ TCP_FASTOPEN_PSK_LEN = 0x10
+ TCP_FUNCTION_BLK = 0x2000
+ TCP_FUNCTION_NAME_LEN_MAX = 0x20
+ TCP_INFO = 0x20
+@@ -1316,6 +1500,12 @@ const (
+ TCP_KEEPIDLE = 0x100
+ TCP_KEEPINIT = 0x80
+ TCP_KEEPINTVL = 0x200
++ TCP_LOG = 0x22
++ TCP_LOGBUF = 0x23
++ TCP_LOGDUMP = 0x25
++ TCP_LOGDUMPID = 0x26
++ TCP_LOGID = 0x24
++ TCP_LOG_ID_LEN = 0x40
+ TCP_MAXBURST = 0x4
+ TCP_MAXHLEN = 0x3c
+ TCP_MAXOLEN = 0x28
+@@ -1331,8 +1521,30 @@ const (
+ TCP_NOPUSH = 0x4
+ TCP_PCAP_IN = 0x1000
+ TCP_PCAP_OUT = 0x800
++ TCP_RACK_EARLY_RECOV = 0x423
++ TCP_RACK_EARLY_SEG = 0x424
++ TCP_RACK_IDLE_REDUCE_HIGH = 0x444
++ TCP_RACK_MIN_PACE = 0x445
++ TCP_RACK_MIN_PACE_SEG = 0x446
++ TCP_RACK_MIN_TO = 0x422
++ TCP_RACK_PACE_ALWAYS = 0x41f
++ TCP_RACK_PACE_MAX_SEG = 0x41e
++ TCP_RACK_PACE_REDUCE = 0x41d
++ TCP_RACK_PKT_DELAY = 0x428
++ TCP_RACK_PROP = 0x41b
++ TCP_RACK_PROP_RATE = 0x420
++ TCP_RACK_PRR_SENDALOT = 0x421
++ TCP_RACK_REORD_FADE = 0x426
++ TCP_RACK_REORD_THRESH = 0x425
++ TCP_RACK_SESS_CWV = 0x42a
++ TCP_RACK_TLP_INC_VAR = 0x429
++ TCP_RACK_TLP_REDUCE = 0x41c
++ TCP_RACK_TLP_THRESH = 0x427
++ TCP_RACK_TLP_USE = 0x447
+ TCP_VENDOR = 0x80000000
+ TCSAFLUSH = 0x2
++ TIMER_ABSTIME = 0x1
++ TIMER_RELTIME = 0x0
+ TIOCCBRK = 0x2000747a
+ TIOCCDTR = 0x20007478
+ TIOCCONS = 0x80047462
+@@ -1396,6 +1608,8 @@ const (
+ TIOCTIMESTAMP = 0x40087459
+ TIOCUCNTL = 0x80047466
+ TOSTOP = 0x400000
++ UTIME_NOW = -0x1
++ UTIME_OMIT = -0x2
+ VDISCARD = 0xf
+ VDSUSP = 0xb
+ VEOF = 0x0
+@@ -1407,6 +1621,8 @@ const (
+ VKILL = 0x5
+ VLNEXT = 0xe
+ VMIN = 0x10
++ VM_BCACHE_SIZE_MAX = 0x70e0000
++ VM_SWZONE_SIZE_MAX = 0x2280000
+ VQUIT = 0x9
+ VREPRINT = 0x6
+ VSTART = 0xc
+@@ -1569,138 +1785,146 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "device not configured",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource deadlock avoided",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "device busy",
+- 17: "file exists",
+- 18: "cross-device link",
+- 19: "operation not supported by device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "result too large",
+- 35: "resource temporarily unavailable",
+- 36: "operation now in progress",
+- 37: "operation already in progress",
+- 38: "socket operation on non-socket",
+- 39: "destination address required",
+- 40: "message too long",
+- 41: "protocol wrong type for socket",
+- 42: "protocol not available",
+- 43: "protocol not supported",
+- 44: "socket type not supported",
+- 45: "operation not supported",
+- 46: "protocol family not supported",
+- 47: "address family not supported by protocol family",
+- 48: "address already in use",
+- 49: "can't assign requested address",
+- 50: "network is down",
+- 51: "network is unreachable",
+- 52: "network dropped connection on reset",
+- 53: "software caused connection abort",
+- 54: "connection reset by peer",
+- 55: "no buffer space available",
+- 56: "socket is already connected",
+- 57: "socket is not connected",
+- 58: "can't send after socket shutdown",
+- 59: "too many references: can't splice",
+- 60: "operation timed out",
+- 61: "connection refused",
+- 62: "too many levels of symbolic links",
+- 63: "file name too long",
+- 64: "host is down",
+- 65: "no route to host",
+- 66: "directory not empty",
+- 67: "too many processes",
+- 68: "too many users",
+- 69: "disc quota exceeded",
+- 70: "stale NFS file handle",
+- 71: "too many levels of remote in path",
+- 72: "RPC struct is bad",
+- 73: "RPC version wrong",
+- 74: "RPC prog. not avail",
+- 75: "program version wrong",
+- 76: "bad procedure for program",
+- 77: "no locks available",
+- 78: "function not implemented",
+- 79: "inappropriate file type or format",
+- 80: "authentication error",
+- 81: "need authenticator",
+- 82: "identifier removed",
+- 83: "no message of desired type",
+- 84: "value too large to be stored in data type",
+- 85: "operation canceled",
+- 86: "illegal byte sequence",
+- 87: "attribute not found",
+- 88: "programming error",
+- 89: "bad message",
+- 90: "multihop attempted",
+- 91: "link has been severed",
+- 92: "protocol error",
+- 93: "capabilities insufficient",
+- 94: "not permitted in capability mode",
+- 95: "state not recoverable",
+- 96: "previous owner died",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "device not configured"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EDEADLK", "resource deadlock avoided"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "cross-device link"},
++ {19, "ENODEV", "operation not supported by device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "result too large"},
++ {35, "EAGAIN", "resource temporarily unavailable"},
++ {36, "EINPROGRESS", "operation now in progress"},
++ {37, "EALREADY", "operation already in progress"},
++ {38, "ENOTSOCK", "socket operation on non-socket"},
++ {39, "EDESTADDRREQ", "destination address required"},
++ {40, "EMSGSIZE", "message too long"},
++ {41, "EPROTOTYPE", "protocol wrong type for socket"},
++ {42, "ENOPROTOOPT", "protocol not available"},
++ {43, "EPROTONOSUPPORT", "protocol not supported"},
++ {44, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {45, "EOPNOTSUPP", "operation not supported"},
++ {46, "EPFNOSUPPORT", "protocol family not supported"},
++ {47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++ {48, "EADDRINUSE", "address already in use"},
++ {49, "EADDRNOTAVAIL", "can't assign requested address"},
++ {50, "ENETDOWN", "network is down"},
++ {51, "ENETUNREACH", "network is unreachable"},
++ {52, "ENETRESET", "network dropped connection on reset"},
++ {53, "ECONNABORTED", "software caused connection abort"},
++ {54, "ECONNRESET", "connection reset by peer"},
++ {55, "ENOBUFS", "no buffer space available"},
++ {56, "EISCONN", "socket is already connected"},
++ {57, "ENOTCONN", "socket is not connected"},
++ {58, "ESHUTDOWN", "can't send after socket shutdown"},
++ {59, "ETOOMANYREFS", "too many references: can't splice"},
++ {60, "ETIMEDOUT", "operation timed out"},
++ {61, "ECONNREFUSED", "connection refused"},
++ {62, "ELOOP", "too many levels of symbolic links"},
++ {63, "ENAMETOOLONG", "file name too long"},
++ {64, "EHOSTDOWN", "host is down"},
++ {65, "EHOSTUNREACH", "no route to host"},
++ {66, "ENOTEMPTY", "directory not empty"},
++ {67, "EPROCLIM", "too many processes"},
++ {68, "EUSERS", "too many users"},
++ {69, "EDQUOT", "disc quota exceeded"},
++ {70, "ESTALE", "stale NFS file handle"},
++ {71, "EREMOTE", "too many levels of remote in path"},
++ {72, "EBADRPC", "RPC struct is bad"},
++ {73, "ERPCMISMATCH", "RPC version wrong"},
++ {74, "EPROGUNAVAIL", "RPC prog. not avail"},
++ {75, "EPROGMISMATCH", "program version wrong"},
++ {76, "EPROCUNAVAIL", "bad procedure for program"},
++ {77, "ENOLCK", "no locks available"},
++ {78, "ENOSYS", "function not implemented"},
++ {79, "EFTYPE", "inappropriate file type or format"},
++ {80, "EAUTH", "authentication error"},
++ {81, "ENEEDAUTH", "need authenticator"},
++ {82, "EIDRM", "identifier removed"},
++ {83, "ENOMSG", "no message of desired type"},
++ {84, "EOVERFLOW", "value too large to be stored in data type"},
++ {85, "ECANCELED", "operation canceled"},
++ {86, "EILSEQ", "illegal byte sequence"},
++ {87, "ENOATTR", "attribute not found"},
++ {88, "EDOOFUS", "programming error"},
++ {89, "EBADMSG", "bad message"},
++ {90, "EMULTIHOP", "multihop attempted"},
++ {91, "ENOLINK", "link has been severed"},
++ {92, "EPROTO", "protocol error"},
++ {93, "ENOTCAPABLE", "capabilities insufficient"},
++ {94, "ECAPMODE", "not permitted in capability mode"},
++ {95, "ENOTRECOVERABLE", "state not recoverable"},
++ {96, "EOWNERDEAD", "previous owner died"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/BPT trap",
+- 6: "abort trap",
+- 7: "EMT trap",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "bus error",
+- 11: "segmentation fault",
+- 12: "bad system call",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "urgent I/O condition",
+- 17: "suspended (signal)",
+- 18: "suspended",
+- 19: "continued",
+- 20: "child exited",
+- 21: "stopped (tty input)",
+- 22: "stopped (tty output)",
+- 23: "I/O possible",
+- 24: "cputime limit exceeded",
+- 25: "filesize limit exceeded",
+- 26: "virtual timer expired",
+- 27: "profiling timer expired",
+- 28: "window size changes",
+- 29: "information request",
+- 30: "user defined signal 1",
+- 31: "user defined signal 2",
+- 32: "unknown signal",
+- 33: "unknown signal",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/BPT trap"},
++ {6, "SIGIOT", "abort trap"},
++ {7, "SIGEMT", "EMT trap"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGBUS", "bus error"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGSYS", "bad system call"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGURG", "urgent I/O condition"},
++ {17, "SIGSTOP", "suspended (signal)"},
++ {18, "SIGTSTP", "suspended"},
++ {19, "SIGCONT", "continued"},
++ {20, "SIGCHLD", "child exited"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGIO", "I/O possible"},
++ {24, "SIGXCPU", "cputime limit exceeded"},
++ {25, "SIGXFSZ", "filesize limit exceeded"},
++ {26, "SIGVTALRM", "virtual timer expired"},
++ {27, "SIGPROF", "profiling timer expired"},
++ {28, "SIGWINCH", "window size changes"},
++ {29, "SIGINFO", "information request"},
++ {30, "SIGUSR1", "user defined signal 1"},
++ {31, "SIGUSR2", "user defined signal 2"},
++ {32, "SIGTHR", "unknown signal"},
++ {33, "SIGLIBRT", "unknown signal"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go
+index ac094f9c..4acd101c 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go
+@@ -3,7 +3,7 @@
+
+ // +build amd64,freebsd
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+
+ package unix
+@@ -351,8 +351,26 @@ const (
+ CSTOP = 0x13
+ CSTOPB = 0x400
+ CSUSP = 0x1a
++ CTL_HW = 0x6
++ CTL_KERN = 0x1
+ CTL_MAXNAME = 0x18
+ CTL_NET = 0x4
++ DIOCGATTR = 0xc148648e
++ DIOCGDELETE = 0x80106488
++ DIOCGFLUSH = 0x20006487
++ DIOCGFRONTSTUFF = 0x40086486
++ DIOCGFWHEADS = 0x40046483
++ DIOCGFWSECTORS = 0x40046482
++ DIOCGIDENT = 0x41006489
++ DIOCGMEDIASIZE = 0x40086481
++ DIOCGPHYSPATH = 0x4400648d
++ DIOCGPROVIDERNAME = 0x4400648a
++ DIOCGSECTORSIZE = 0x40046480
++ DIOCGSTRIPEOFFSET = 0x4008648c
++ DIOCGSTRIPESIZE = 0x4008648b
++ DIOCSKERNELDUMP = 0x80506490
++ DIOCSKERNELDUMP_FREEBSD11 = 0x80046485
++ DIOCZONECMD = 0xc080648f
+ DLT_A429 = 0xb8
+ DLT_A653_ICM = 0xb9
+ DLT_AIRONET_HEADER = 0x78
+@@ -377,11 +395,14 @@ const (
+ DLT_CHAOS = 0x5
+ DLT_CHDLC = 0x68
+ DLT_CISCO_IOS = 0x76
++ DLT_CLASS_NETBSD_RAWAF = 0x2240000
+ DLT_C_HDLC = 0x68
+ DLT_C_HDLC_WITH_DIR = 0xcd
+ DLT_DBUS = 0xe7
+ DLT_DECT = 0xdd
++ DLT_DISPLAYPORT_AUX = 0x113
+ DLT_DOCSIS = 0x8f
++ DLT_DOCSIS31_XRA31 = 0x111
+ DLT_DVB_CI = 0xeb
+ DLT_ECONET = 0x73
+ DLT_EN10MB = 0x1
+@@ -391,6 +412,7 @@ const (
+ DLT_ERF = 0xc5
+ DLT_ERF_ETH = 0xaf
+ DLT_ERF_POS = 0xb0
++ DLT_ETHERNET_MPACKET = 0x112
+ DLT_FC_2 = 0xe0
+ DLT_FC_2_WITH_FRAME_DELIMS = 0xe1
+ DLT_FDDI = 0xa
+@@ -404,7 +426,6 @@ const (
+ DLT_GPRS_LLC = 0xa9
+ DLT_GSMTAP_ABIS = 0xda
+ DLT_GSMTAP_UM = 0xd9
+- DLT_HHDLC = 0x79
+ DLT_IBM_SN = 0x92
+ DLT_IBM_SP = 0x91
+ DLT_IEEE802 = 0x6
+@@ -427,6 +448,7 @@ const (
+ DLT_IPV4 = 0xe4
+ DLT_IPV6 = 0xe5
+ DLT_IP_OVER_FC = 0x7a
++ DLT_ISO_14443 = 0x108
+ DLT_JUNIPER_ATM1 = 0x89
+ DLT_JUNIPER_ATM2 = 0x87
+ DLT_JUNIPER_ATM_CEMIC = 0xee
+@@ -459,8 +481,9 @@ const (
+ DLT_LINUX_PPP_WITHDIRECTION = 0xa6
+ DLT_LINUX_SLL = 0x71
+ DLT_LOOP = 0x6c
++ DLT_LORATAP = 0x10e
+ DLT_LTALK = 0x72
+- DLT_MATCHING_MAX = 0x104
++ DLT_MATCHING_MAX = 0x113
+ DLT_MATCHING_MIN = 0x68
+ DLT_MFR = 0xb6
+ DLT_MOST = 0xd3
+@@ -476,14 +499,16 @@ const (
+ DLT_NFC_LLCP = 0xf5
+ DLT_NFLOG = 0xef
+ DLT_NG40 = 0xf4
++ DLT_NORDIC_BLE = 0x110
+ DLT_NULL = 0x0
++ DLT_OPENFLOW = 0x10b
+ DLT_PCI_EXP = 0x7d
+ DLT_PFLOG = 0x75
+ DLT_PFSYNC = 0x79
+ DLT_PKTAP = 0x102
+ DLT_PPI = 0xc0
+ DLT_PPP = 0x9
+- DLT_PPP_BSDOS = 0x10
++ DLT_PPP_BSDOS = 0xe
+ DLT_PPP_ETHER = 0x33
+ DLT_PPP_PPPD = 0xa6
+ DLT_PPP_SERIAL = 0x32
+@@ -494,19 +519,25 @@ const (
+ DLT_PRONET = 0x4
+ DLT_RAIF1 = 0xc6
+ DLT_RAW = 0xc
++ DLT_RDS = 0x109
++ DLT_REDBACK_SMARTEDGE = 0x20
+ DLT_RIO = 0x7c
+ DLT_RTAC_SERIAL = 0xfa
+ DLT_SCCP = 0x8e
+ DLT_SCTP = 0xf8
++ DLT_SDLC = 0x10c
+ DLT_SITA = 0xc4
+ DLT_SLIP = 0x8
+- DLT_SLIP_BSDOS = 0xf
++ DLT_SLIP_BSDOS = 0xd
+ DLT_STANAG_5066_D_PDU = 0xed
+ DLT_SUNATM = 0x7b
+ DLT_SYMANTEC_FIREWALL = 0x63
++ DLT_TI_LLN_SNIFFER = 0x10d
+ DLT_TZSP = 0x80
+ DLT_USB = 0xba
+ DLT_USBPCAP = 0xf9
++ DLT_USB_DARWIN = 0x10a
++ DLT_USB_FREEBSD = 0xba
+ DLT_USB_LINUX = 0xbd
+ DLT_USB_LINUX_MMAPPED = 0xdc
+ DLT_USER0 = 0x93
+@@ -525,10 +556,14 @@ const (
+ DLT_USER7 = 0x9a
+ DLT_USER8 = 0x9b
+ DLT_USER9 = 0x9c
++ DLT_VSOCK = 0x10f
++ DLT_WATTSTOPPER_DLM = 0x107
+ DLT_WIHART = 0xdf
+ DLT_WIRESHARK_UPPER_PDU = 0xfc
+ DLT_X2E_SERIAL = 0xd5
+ DLT_X2E_XORAYA = 0xd6
++ DLT_ZWAVE_R1_R2 = 0x105
++ DLT_ZWAVE_R3 = 0x106
+ DT_BLK = 0x6
+ DT_CHR = 0x2
+ DT_DIR = 0x4
+@@ -546,6 +581,7 @@ const (
+ ECHONL = 0x10
+ ECHOPRT = 0x20
+ EVFILT_AIO = -0x3
++ EVFILT_EMPTY = -0xd
+ EVFILT_FS = -0x9
+ EVFILT_LIO = -0xa
+ EVFILT_PROC = -0x5
+@@ -553,11 +589,12 @@ const (
+ EVFILT_READ = -0x1
+ EVFILT_SENDFILE = -0xc
+ EVFILT_SIGNAL = -0x6
+- EVFILT_SYSCOUNT = 0xc
++ EVFILT_SYSCOUNT = 0xd
+ EVFILT_TIMER = -0x7
+ EVFILT_USER = -0xb
+ EVFILT_VNODE = -0x4
+ EVFILT_WRITE = -0x2
++ EVNAMEMAP_NAME_SIZE = 0x40
+ EV_ADD = 0x1
+ EV_CLEAR = 0x20
+ EV_DELETE = 0x2
+@@ -574,6 +611,7 @@ const (
+ EV_RECEIPT = 0x40
+ EV_SYSFLAGS = 0xf000
+ EXTA = 0x4b00
++ EXTATTR_MAXNAMELEN = 0xff
+ EXTATTR_NAMESPACE_EMPTY = 0x0
+ EXTATTR_NAMESPACE_SYSTEM = 0x2
+ EXTATTR_NAMESPACE_USER = 0x1
+@@ -608,12 +646,14 @@ const (
+ F_UNLCKSYS = 0x4
+ F_WRLCK = 0x3
+ HUPCL = 0x4000
++ HW_MACHINE = 0x1
+ ICANON = 0x100
+ ICMP6_FILTER = 0x12
+ ICRNL = 0x100
+ IEXTEN = 0x400
+ IFAN_ARRIVAL = 0x0
+ IFAN_DEPARTURE = 0x1
++ IFCAP_WOL_MAGIC = 0x2000
+ IFF_ALLMULTI = 0x200
+ IFF_ALTPHYS = 0x4000
+ IFF_BROADCAST = 0x2
+@@ -630,6 +670,7 @@ const (
+ IFF_MONITOR = 0x40000
+ IFF_MULTICAST = 0x8000
+ IFF_NOARP = 0x80
++ IFF_NOGROUP = 0x800000
+ IFF_OACTIVE = 0x400
+ IFF_POINTOPOINT = 0x10
+ IFF_PPROMISC = 0x20000
+@@ -804,6 +845,7 @@ const (
+ IPV6_DSTOPTS = 0x32
+ IPV6_FLOWID = 0x43
+ IPV6_FLOWINFO_MASK = 0xffffff0f
++ IPV6_FLOWLABEL_LEN = 0x14
+ IPV6_FLOWLABEL_MASK = 0xffff0f00
+ IPV6_FLOWTYPE = 0x44
+ IPV6_FRAGTTL = 0x78
+@@ -824,13 +866,13 @@ const (
+ IPV6_MAX_GROUP_SRC_FILTER = 0x200
+ IPV6_MAX_MEMBERSHIPS = 0xfff
+ IPV6_MAX_SOCK_SRC_FILTER = 0x80
+- IPV6_MIN_MEMBERSHIPS = 0x1f
+ IPV6_MMTU = 0x500
+ IPV6_MSFILTER = 0x4a
+ IPV6_MULTICAST_HOPS = 0xa
+ IPV6_MULTICAST_IF = 0x9
+ IPV6_MULTICAST_LOOP = 0xb
+ IPV6_NEXTHOP = 0x30
++ IPV6_ORIGDSTADDR = 0x48
+ IPV6_PATHMTU = 0x2c
+ IPV6_PKTINFO = 0x2e
+ IPV6_PORTRANGE = 0xe
+@@ -842,6 +884,7 @@ const (
+ IPV6_RECVFLOWID = 0x46
+ IPV6_RECVHOPLIMIT = 0x25
+ IPV6_RECVHOPOPTS = 0x27
++ IPV6_RECVORIGDSTADDR = 0x48
+ IPV6_RECVPATHMTU = 0x2b
+ IPV6_RECVPKTINFO = 0x24
+ IPV6_RECVRSSBUCKETID = 0x47
+@@ -902,10 +945,8 @@ const (
+ IP_MAX_MEMBERSHIPS = 0xfff
+ IP_MAX_SOCK_MUTE_FILTER = 0x80
+ IP_MAX_SOCK_SRC_FILTER = 0x80
+- IP_MAX_SOURCE_FILTER = 0x400
+ IP_MF = 0x2000
+ IP_MINTTL = 0x42
+- IP_MIN_MEMBERSHIPS = 0x1f
+ IP_MSFILTER = 0x4a
+ IP_MSS = 0x240
+ IP_MULTICAST_IF = 0x9
+@@ -915,6 +956,7 @@ const (
+ IP_OFFMASK = 0x1fff
+ IP_ONESBCAST = 0x17
+ IP_OPTIONS = 0x1
++ IP_ORIGDSTADDR = 0x1b
+ IP_PORTRANGE = 0x13
+ IP_PORTRANGE_DEFAULT = 0x0
+ IP_PORTRANGE_HIGH = 0x1
+@@ -923,6 +965,7 @@ const (
+ IP_RECVFLOWID = 0x5d
+ IP_RECVIF = 0x14
+ IP_RECVOPTS = 0x5
++ IP_RECVORIGDSTADDR = 0x1b
+ IP_RECVRETOPTS = 0x6
+ IP_RECVRSSBUCKETID = 0x5e
+ IP_RECVTOS = 0x44
+@@ -944,6 +987,10 @@ const (
+ IXANY = 0x800
+ IXOFF = 0x400
+ IXON = 0x200
++ KERN_HOSTNAME = 0xa
++ KERN_OSRELEASE = 0x2
++ KERN_OSTYPE = 0x1
++ KERN_VERSION = 0x4
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+ LOCK_SH = 0x1
+@@ -969,6 +1016,7 @@ const (
+ MAP_EXCL = 0x4000
+ MAP_FILE = 0x0
+ MAP_FIXED = 0x10
++ MAP_GUARD = 0x2000
+ MAP_HASSEMAPHORE = 0x200
+ MAP_NOCORE = 0x20000
+ MAP_NOSYNC = 0x800
+@@ -980,8 +1028,62 @@ const (
+ MAP_RESERVED0100 = 0x100
+ MAP_SHARED = 0x1
+ MAP_STACK = 0x400
++ MCAST_BLOCK_SOURCE = 0x54
++ MCAST_EXCLUDE = 0x2
++ MCAST_INCLUDE = 0x1
++ MCAST_JOIN_GROUP = 0x50
++ MCAST_JOIN_SOURCE_GROUP = 0x52
++ MCAST_LEAVE_GROUP = 0x51
++ MCAST_LEAVE_SOURCE_GROUP = 0x53
++ MCAST_UNBLOCK_SOURCE = 0x55
++ MCAST_UNDEFINED = 0x0
+ MCL_CURRENT = 0x1
+ MCL_FUTURE = 0x2
++ MNT_ACLS = 0x8000000
++ MNT_ASYNC = 0x40
++ MNT_AUTOMOUNTED = 0x200000000
++ MNT_BYFSID = 0x8000000
++ MNT_CMDFLAGS = 0xd0f0000
++ MNT_DEFEXPORTED = 0x200
++ MNT_DELEXPORT = 0x20000
++ MNT_EXKERB = 0x800
++ MNT_EXPORTANON = 0x400
++ MNT_EXPORTED = 0x100
++ MNT_EXPUBLIC = 0x20000000
++ MNT_EXRDONLY = 0x80
++ MNT_FORCE = 0x80000
++ MNT_GJOURNAL = 0x2000000
++ MNT_IGNORE = 0x800000
++ MNT_LAZY = 0x3
++ MNT_LOCAL = 0x1000
++ MNT_MULTILABEL = 0x4000000
++ MNT_NFS4ACLS = 0x10
++ MNT_NOATIME = 0x10000000
++ MNT_NOCLUSTERR = 0x40000000
++ MNT_NOCLUSTERW = 0x80000000
++ MNT_NOEXEC = 0x4
++ MNT_NONBUSY = 0x4000000
++ MNT_NOSUID = 0x8
++ MNT_NOSYMFOLLOW = 0x400000
++ MNT_NOWAIT = 0x2
++ MNT_QUOTA = 0x2000
++ MNT_RDONLY = 0x1
++ MNT_RELOAD = 0x40000
++ MNT_ROOTFS = 0x4000
++ MNT_SNAPSHOT = 0x1000000
++ MNT_SOFTDEP = 0x200000
++ MNT_SUIDDIR = 0x100000
++ MNT_SUJ = 0x100000000
++ MNT_SUSPEND = 0x4
++ MNT_SYNCHRONOUS = 0x2
++ MNT_UNION = 0x20
++ MNT_UNTRUSTED = 0x800000000
++ MNT_UPDATE = 0x10000
++ MNT_UPDATEMASK = 0xad8d0807e
++ MNT_USER = 0x8000
++ MNT_VERIFIED = 0x400000000
++ MNT_VISFLAGMASK = 0xffef0ffff
++ MNT_WAIT = 0x1
+ MSG_CMSG_CLOEXEC = 0x40000
+ MSG_COMPAT = 0x8000
+ MSG_CTRUNC = 0x20
+@@ -1006,8 +1108,10 @@ const (
+ NET_RT_IFLIST = 0x3
+ NET_RT_IFLISTL = 0x5
+ NET_RT_IFMALIST = 0x4
++ NFDBITS = 0x40
+ NOFLSH = 0x80000000
+ NOKERNINFO = 0x2000000
++ NOTE_ABSTIME = 0x10
+ NOTE_ATTRIB = 0x8
+ NOTE_CHILD = 0x4
+ NOTE_CLOSE = 0x100
+@@ -1162,7 +1266,6 @@ const (
+ RTV_WEIGHT = 0x100
+ RT_ALL_FIBS = -0x1
+ RT_BLACKHOLE = 0x40
+- RT_CACHING_CONTEXT = 0x1
+ RT_DEFAULT_FIB = 0x0
+ RT_HAS_GW = 0x80
+ RT_HAS_HEADER = 0x10
+@@ -1172,15 +1275,17 @@ const (
+ RT_LLE_CACHE = 0x100
+ RT_MAY_LOOP = 0x8
+ RT_MAY_LOOP_BIT = 0x3
+- RT_NORTREF = 0x2
+ RT_REJECT = 0x20
+ RUSAGE_CHILDREN = -0x1
+ RUSAGE_SELF = 0x0
+ RUSAGE_THREAD = 0x1
+ SCM_BINTIME = 0x4
+ SCM_CREDS = 0x3
++ SCM_MONOTONIC = 0x6
++ SCM_REALTIME = 0x5
+ SCM_RIGHTS = 0x1
+ SCM_TIMESTAMP = 0x2
++ SCM_TIME_INFO = 0x7
+ SHUT_RD = 0x0
+ SHUT_RDWR = 0x2
+ SHUT_WR = 0x1
+@@ -1196,6 +1301,7 @@ const (
+ SIOCGETSGCNT = 0xc0207210
+ SIOCGETVIFCNT = 0xc028720f
+ SIOCGHIWAT = 0x40047301
++ SIOCGHWADDR = 0xc020693e
+ SIOCGI2C = 0xc020693d
+ SIOCGIFADDR = 0xc0206921
+ SIOCGIFBRDADDR = 0xc0206923
+@@ -1217,8 +1323,11 @@ const (
+ SIOCGIFPDSTADDR = 0xc0206948
+ SIOCGIFPHYS = 0xc0206935
+ SIOCGIFPSRCADDR = 0xc0206947
++ SIOCGIFRSSHASH = 0xc0186997
++ SIOCGIFRSSKEY = 0xc0946996
+ SIOCGIFSTATUS = 0xc331693b
+ SIOCGIFXMEDIA = 0xc030698b
++ SIOCGLANPCP = 0xc0206998
+ SIOCGLOWAT = 0x40047303
+ SIOCGPGRP = 0x40047309
+ SIOCGPRIVATE_0 = 0xc0206950
+@@ -1249,6 +1358,7 @@ const (
+ SIOCSIFPHYS = 0x80206936
+ SIOCSIFRVNET = 0xc020695b
+ SIOCSIFVNET = 0xc020695a
++ SIOCSLANPCP = 0x80206999
+ SIOCSLOWAT = 0x80047302
+ SIOCSPGRP = 0x80047308
+ SIOCSTUNFIB = 0x8020695f
+@@ -1267,6 +1377,7 @@ const (
+ SO_BINTIME = 0x2000
+ SO_BROADCAST = 0x20
+ SO_DEBUG = 0x1
++ SO_DOMAIN = 0x1019
+ SO_DONTROUTE = 0x10
+ SO_ERROR = 0x1007
+ SO_KEEPALIVE = 0x8
+@@ -1275,6 +1386,7 @@ const (
+ SO_LISTENINCQLEN = 0x1013
+ SO_LISTENQLEN = 0x1012
+ SO_LISTENQLIMIT = 0x1011
++ SO_MAX_PACING_RATE = 0x1018
+ SO_NOSIGPIPE = 0x800
+ SO_NO_DDP = 0x8000
+ SO_NO_OFFLOAD = 0x4000
+@@ -1287,15 +1399,52 @@ const (
+ SO_RCVTIMEO = 0x1006
+ SO_REUSEADDR = 0x4
+ SO_REUSEPORT = 0x200
++ SO_REUSEPORT_LB = 0x10000
+ SO_SETFIB = 0x1014
+ SO_SNDBUF = 0x1001
+ SO_SNDLOWAT = 0x1003
+ SO_SNDTIMEO = 0x1005
+ SO_TIMESTAMP = 0x400
++ SO_TS_BINTIME = 0x1
++ SO_TS_CLOCK = 0x1017
++ SO_TS_CLOCK_MAX = 0x3
++ SO_TS_DEFAULT = 0x0
++ SO_TS_MONOTONIC = 0x3
++ SO_TS_REALTIME = 0x2
++ SO_TS_REALTIME_MICRO = 0x0
+ SO_TYPE = 0x1008
+ SO_USELOOPBACK = 0x40
+ SO_USER_COOKIE = 0x1015
+ SO_VENDOR = 0x80000000
++ S_BLKSIZE = 0x200
++ S_IEXEC = 0x40
++ S_IFBLK = 0x6000
++ S_IFCHR = 0x2000
++ S_IFDIR = 0x4000
++ S_IFIFO = 0x1000
++ S_IFLNK = 0xa000
++ S_IFMT = 0xf000
++ S_IFREG = 0x8000
++ S_IFSOCK = 0xc000
++ S_IFWHT = 0xe000
++ S_IREAD = 0x100
++ S_IRGRP = 0x20
++ S_IROTH = 0x4
++ S_IRUSR = 0x100
++ S_IRWXG = 0x38
++ S_IRWXO = 0x7
++ S_IRWXU = 0x1c0
++ S_ISGID = 0x400
++ S_ISTXT = 0x200
++ S_ISUID = 0x800
++ S_ISVTX = 0x200
++ S_IWGRP = 0x10
++ S_IWOTH = 0x2
++ S_IWRITE = 0x80
++ S_IWUSR = 0x80
++ S_IXGRP = 0x8
++ S_IXOTH = 0x1
++ S_IXUSR = 0x40
+ TAB0 = 0x0
+ TAB3 = 0x4
+ TABDLY = 0x4
+@@ -1306,10 +1455,45 @@ const (
+ TCOFLUSH = 0x2
+ TCOOFF = 0x1
+ TCOON = 0x2
++ TCP_BBR_ACK_COMP_ALG = 0x448
++ TCP_BBR_DRAIN_INC_EXTRA = 0x43c
++ TCP_BBR_DRAIN_PG = 0x42e
++ TCP_BBR_EXTRA_GAIN = 0x449
++ TCP_BBR_IWINTSO = 0x42b
++ TCP_BBR_LOWGAIN_FD = 0x436
++ TCP_BBR_LOWGAIN_HALF = 0x435
++ TCP_BBR_LOWGAIN_THRESH = 0x434
++ TCP_BBR_MAX_RTO = 0x439
++ TCP_BBR_MIN_RTO = 0x438
++ TCP_BBR_ONE_RETRAN = 0x431
++ TCP_BBR_PACE_CROSS = 0x442
++ TCP_BBR_PACE_DEL_TAR = 0x43f
++ TCP_BBR_PACE_PER_SEC = 0x43e
++ TCP_BBR_PACE_SEG_MAX = 0x440
++ TCP_BBR_PACE_SEG_MIN = 0x441
++ TCP_BBR_PROBE_RTT_GAIN = 0x44d
++ TCP_BBR_PROBE_RTT_INT = 0x430
++ TCP_BBR_PROBE_RTT_LEN = 0x44e
++ TCP_BBR_RACK_RTT_USE = 0x44a
++ TCP_BBR_RECFORCE = 0x42c
++ TCP_BBR_REC_OVER_HPTS = 0x43a
++ TCP_BBR_RETRAN_WTSO = 0x44b
++ TCP_BBR_RWND_IS_APP = 0x42f
++ TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d
++ TCP_BBR_STARTUP_LOSS_EXIT = 0x432
++ TCP_BBR_STARTUP_PG = 0x42d
++ TCP_BBR_UNLIMITED = 0x43b
++ TCP_BBR_USEDEL_RATE = 0x437
++ TCP_BBR_USE_LOWGAIN = 0x433
+ TCP_CA_NAME_MAX = 0x10
+ TCP_CCALGOOPT = 0x41
+ TCP_CONGESTION = 0x40
++ TCP_DATA_AFTER_CLOSE = 0x44c
++ TCP_DELACK = 0x48
+ TCP_FASTOPEN = 0x401
++ TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10
++ TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4
++ TCP_FASTOPEN_PSK_LEN = 0x10
+ TCP_FUNCTION_BLK = 0x2000
+ TCP_FUNCTION_NAME_LEN_MAX = 0x20
+ TCP_INFO = 0x20
+@@ -1317,6 +1501,12 @@ const (
+ TCP_KEEPIDLE = 0x100
+ TCP_KEEPINIT = 0x80
+ TCP_KEEPINTVL = 0x200
++ TCP_LOG = 0x22
++ TCP_LOGBUF = 0x23
++ TCP_LOGDUMP = 0x25
++ TCP_LOGDUMPID = 0x26
++ TCP_LOGID = 0x24
++ TCP_LOG_ID_LEN = 0x40
+ TCP_MAXBURST = 0x4
+ TCP_MAXHLEN = 0x3c
+ TCP_MAXOLEN = 0x28
+@@ -1332,8 +1522,30 @@ const (
+ TCP_NOPUSH = 0x4
+ TCP_PCAP_IN = 0x1000
+ TCP_PCAP_OUT = 0x800
++ TCP_RACK_EARLY_RECOV = 0x423
++ TCP_RACK_EARLY_SEG = 0x424
++ TCP_RACK_IDLE_REDUCE_HIGH = 0x444
++ TCP_RACK_MIN_PACE = 0x445
++ TCP_RACK_MIN_PACE_SEG = 0x446
++ TCP_RACK_MIN_TO = 0x422
++ TCP_RACK_PACE_ALWAYS = 0x41f
++ TCP_RACK_PACE_MAX_SEG = 0x41e
++ TCP_RACK_PACE_REDUCE = 0x41d
++ TCP_RACK_PKT_DELAY = 0x428
++ TCP_RACK_PROP = 0x41b
++ TCP_RACK_PROP_RATE = 0x420
++ TCP_RACK_PRR_SENDALOT = 0x421
++ TCP_RACK_REORD_FADE = 0x426
++ TCP_RACK_REORD_THRESH = 0x425
++ TCP_RACK_SESS_CWV = 0x42a
++ TCP_RACK_TLP_INC_VAR = 0x429
++ TCP_RACK_TLP_REDUCE = 0x41c
++ TCP_RACK_TLP_THRESH = 0x427
++ TCP_RACK_TLP_USE = 0x447
+ TCP_VENDOR = 0x80000000
+ TCSAFLUSH = 0x2
++ TIMER_ABSTIME = 0x1
++ TIMER_RELTIME = 0x0
+ TIOCCBRK = 0x2000747a
+ TIOCCDTR = 0x20007478
+ TIOCCONS = 0x80047462
+@@ -1397,6 +1609,8 @@ const (
+ TIOCTIMESTAMP = 0x40107459
+ TIOCUCNTL = 0x80047466
+ TOSTOP = 0x400000
++ UTIME_NOW = -0x1
++ UTIME_OMIT = -0x2
+ VDISCARD = 0xf
+ VDSUSP = 0xb
+ VEOF = 0x0
+@@ -1570,138 +1784,146 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "device not configured",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource deadlock avoided",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "device busy",
+- 17: "file exists",
+- 18: "cross-device link",
+- 19: "operation not supported by device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "result too large",
+- 35: "resource temporarily unavailable",
+- 36: "operation now in progress",
+- 37: "operation already in progress",
+- 38: "socket operation on non-socket",
+- 39: "destination address required",
+- 40: "message too long",
+- 41: "protocol wrong type for socket",
+- 42: "protocol not available",
+- 43: "protocol not supported",
+- 44: "socket type not supported",
+- 45: "operation not supported",
+- 46: "protocol family not supported",
+- 47: "address family not supported by protocol family",
+- 48: "address already in use",
+- 49: "can't assign requested address",
+- 50: "network is down",
+- 51: "network is unreachable",
+- 52: "network dropped connection on reset",
+- 53: "software caused connection abort",
+- 54: "connection reset by peer",
+- 55: "no buffer space available",
+- 56: "socket is already connected",
+- 57: "socket is not connected",
+- 58: "can't send after socket shutdown",
+- 59: "too many references: can't splice",
+- 60: "operation timed out",
+- 61: "connection refused",
+- 62: "too many levels of symbolic links",
+- 63: "file name too long",
+- 64: "host is down",
+- 65: "no route to host",
+- 66: "directory not empty",
+- 67: "too many processes",
+- 68: "too many users",
+- 69: "disc quota exceeded",
+- 70: "stale NFS file handle",
+- 71: "too many levels of remote in path",
+- 72: "RPC struct is bad",
+- 73: "RPC version wrong",
+- 74: "RPC prog. not avail",
+- 75: "program version wrong",
+- 76: "bad procedure for program",
+- 77: "no locks available",
+- 78: "function not implemented",
+- 79: "inappropriate file type or format",
+- 80: "authentication error",
+- 81: "need authenticator",
+- 82: "identifier removed",
+- 83: "no message of desired type",
+- 84: "value too large to be stored in data type",
+- 85: "operation canceled",
+- 86: "illegal byte sequence",
+- 87: "attribute not found",
+- 88: "programming error",
+- 89: "bad message",
+- 90: "multihop attempted",
+- 91: "link has been severed",
+- 92: "protocol error",
+- 93: "capabilities insufficient",
+- 94: "not permitted in capability mode",
+- 95: "state not recoverable",
+- 96: "previous owner died",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "device not configured"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EDEADLK", "resource deadlock avoided"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "cross-device link"},
++ {19, "ENODEV", "operation not supported by device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "result too large"},
++ {35, "EAGAIN", "resource temporarily unavailable"},
++ {36, "EINPROGRESS", "operation now in progress"},
++ {37, "EALREADY", "operation already in progress"},
++ {38, "ENOTSOCK", "socket operation on non-socket"},
++ {39, "EDESTADDRREQ", "destination address required"},
++ {40, "EMSGSIZE", "message too long"},
++ {41, "EPROTOTYPE", "protocol wrong type for socket"},
++ {42, "ENOPROTOOPT", "protocol not available"},
++ {43, "EPROTONOSUPPORT", "protocol not supported"},
++ {44, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {45, "EOPNOTSUPP", "operation not supported"},
++ {46, "EPFNOSUPPORT", "protocol family not supported"},
++ {47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++ {48, "EADDRINUSE", "address already in use"},
++ {49, "EADDRNOTAVAIL", "can't assign requested address"},
++ {50, "ENETDOWN", "network is down"},
++ {51, "ENETUNREACH", "network is unreachable"},
++ {52, "ENETRESET", "network dropped connection on reset"},
++ {53, "ECONNABORTED", "software caused connection abort"},
++ {54, "ECONNRESET", "connection reset by peer"},
++ {55, "ENOBUFS", "no buffer space available"},
++ {56, "EISCONN", "socket is already connected"},
++ {57, "ENOTCONN", "socket is not connected"},
++ {58, "ESHUTDOWN", "can't send after socket shutdown"},
++ {59, "ETOOMANYREFS", "too many references: can't splice"},
++ {60, "ETIMEDOUT", "operation timed out"},
++ {61, "ECONNREFUSED", "connection refused"},
++ {62, "ELOOP", "too many levels of symbolic links"},
++ {63, "ENAMETOOLONG", "file name too long"},
++ {64, "EHOSTDOWN", "host is down"},
++ {65, "EHOSTUNREACH", "no route to host"},
++ {66, "ENOTEMPTY", "directory not empty"},
++ {67, "EPROCLIM", "too many processes"},
++ {68, "EUSERS", "too many users"},
++ {69, "EDQUOT", "disc quota exceeded"},
++ {70, "ESTALE", "stale NFS file handle"},
++ {71, "EREMOTE", "too many levels of remote in path"},
++ {72, "EBADRPC", "RPC struct is bad"},
++ {73, "ERPCMISMATCH", "RPC version wrong"},
++ {74, "EPROGUNAVAIL", "RPC prog. not avail"},
++ {75, "EPROGMISMATCH", "program version wrong"},
++ {76, "EPROCUNAVAIL", "bad procedure for program"},
++ {77, "ENOLCK", "no locks available"},
++ {78, "ENOSYS", "function not implemented"},
++ {79, "EFTYPE", "inappropriate file type or format"},
++ {80, "EAUTH", "authentication error"},
++ {81, "ENEEDAUTH", "need authenticator"},
++ {82, "EIDRM", "identifier removed"},
++ {83, "ENOMSG", "no message of desired type"},
++ {84, "EOVERFLOW", "value too large to be stored in data type"},
++ {85, "ECANCELED", "operation canceled"},
++ {86, "EILSEQ", "illegal byte sequence"},
++ {87, "ENOATTR", "attribute not found"},
++ {88, "EDOOFUS", "programming error"},
++ {89, "EBADMSG", "bad message"},
++ {90, "EMULTIHOP", "multihop attempted"},
++ {91, "ENOLINK", "link has been severed"},
++ {92, "EPROTO", "protocol error"},
++ {93, "ENOTCAPABLE", "capabilities insufficient"},
++ {94, "ECAPMODE", "not permitted in capability mode"},
++ {95, "ENOTRECOVERABLE", "state not recoverable"},
++ {96, "EOWNERDEAD", "previous owner died"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/BPT trap",
+- 6: "abort trap",
+- 7: "EMT trap",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "bus error",
+- 11: "segmentation fault",
+- 12: "bad system call",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "urgent I/O condition",
+- 17: "suspended (signal)",
+- 18: "suspended",
+- 19: "continued",
+- 20: "child exited",
+- 21: "stopped (tty input)",
+- 22: "stopped (tty output)",
+- 23: "I/O possible",
+- 24: "cputime limit exceeded",
+- 25: "filesize limit exceeded",
+- 26: "virtual timer expired",
+- 27: "profiling timer expired",
+- 28: "window size changes",
+- 29: "information request",
+- 30: "user defined signal 1",
+- 31: "user defined signal 2",
+- 32: "unknown signal",
+- 33: "unknown signal",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/BPT trap"},
++ {6, "SIGIOT", "abort trap"},
++ {7, "SIGEMT", "EMT trap"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGBUS", "bus error"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGSYS", "bad system call"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGURG", "urgent I/O condition"},
++ {17, "SIGSTOP", "suspended (signal)"},
++ {18, "SIGTSTP", "suspended"},
++ {19, "SIGCONT", "continued"},
++ {20, "SIGCHLD", "child exited"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGIO", "I/O possible"},
++ {24, "SIGXCPU", "cputime limit exceeded"},
++ {25, "SIGXFSZ", "filesize limit exceeded"},
++ {26, "SIGVTALRM", "virtual timer expired"},
++ {27, "SIGPROF", "profiling timer expired"},
++ {28, "SIGWINCH", "window size changes"},
++ {29, "SIGINFO", "information request"},
++ {30, "SIGUSR1", "user defined signal 1"},
++ {31, "SIGUSR2", "user defined signal 2"},
++ {32, "SIGTHR", "unknown signal"},
++ {33, "SIGLIBRT", "unknown signal"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go
+index c5c6f13e..e4719873 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go
+@@ -3,7 +3,7 @@
+
+ // +build arm,freebsd
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- _const.go
+
+ package unix
+@@ -351,8 +351,26 @@ const (
+ CSTOP = 0x13
+ CSTOPB = 0x400
+ CSUSP = 0x1a
++ CTL_HW = 0x6
++ CTL_KERN = 0x1
+ CTL_MAXNAME = 0x18
+ CTL_NET = 0x4
++ DIOCGATTR = 0xc144648e
++ DIOCGDELETE = 0x80106488
++ DIOCGFLUSH = 0x20006487
++ DIOCGFRONTSTUFF = 0x40086486
++ DIOCGFWHEADS = 0x40046483
++ DIOCGFWSECTORS = 0x40046482
++ DIOCGIDENT = 0x41006489
++ DIOCGMEDIASIZE = 0x40086481
++ DIOCGPHYSPATH = 0x4400648d
++ DIOCGPROVIDERNAME = 0x4400648a
++ DIOCGSECTORSIZE = 0x40046480
++ DIOCGSTRIPEOFFSET = 0x4008648c
++ DIOCGSTRIPESIZE = 0x4008648b
++ DIOCSKERNELDUMP = 0x804c6490
++ DIOCSKERNELDUMP_FREEBSD11 = 0x80046485
++ DIOCZONECMD = 0xc06c648f
+ DLT_A429 = 0xb8
+ DLT_A653_ICM = 0xb9
+ DLT_AIRONET_HEADER = 0x78
+@@ -615,6 +633,7 @@ const (
+ F_UNLCKSYS = 0x4
+ F_WRLCK = 0x3
+ HUPCL = 0x4000
++ HW_MACHINE = 0x1
+ ICANON = 0x100
+ ICMP6_FILTER = 0x12
+ ICRNL = 0x100
+@@ -951,6 +970,10 @@ const (
+ IXANY = 0x800
+ IXOFF = 0x400
+ IXON = 0x200
++ KERN_HOSTNAME = 0xa
++ KERN_OSRELEASE = 0x2
++ KERN_OSTYPE = 0x1
++ KERN_VERSION = 0x4
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+ LOCK_SH = 0x1
+@@ -989,6 +1012,49 @@ const (
+ MAP_STACK = 0x400
+ MCL_CURRENT = 0x1
+ MCL_FUTURE = 0x2
++ MNT_ACLS = 0x8000000
++ MNT_ASYNC = 0x40
++ MNT_AUTOMOUNTED = 0x200000000
++ MNT_BYFSID = 0x8000000
++ MNT_CMDFLAGS = 0xd0f0000
++ MNT_DEFEXPORTED = 0x200
++ MNT_DELEXPORT = 0x20000
++ MNT_EXKERB = 0x800
++ MNT_EXPORTANON = 0x400
++ MNT_EXPORTED = 0x100
++ MNT_EXPUBLIC = 0x20000000
++ MNT_EXRDONLY = 0x80
++ MNT_FORCE = 0x80000
++ MNT_GJOURNAL = 0x2000000
++ MNT_IGNORE = 0x800000
++ MNT_LAZY = 0x3
++ MNT_LOCAL = 0x1000
++ MNT_MULTILABEL = 0x4000000
++ MNT_NFS4ACLS = 0x10
++ MNT_NOATIME = 0x10000000
++ MNT_NOCLUSTERR = 0x40000000
++ MNT_NOCLUSTERW = 0x80000000
++ MNT_NOEXEC = 0x4
++ MNT_NONBUSY = 0x4000000
++ MNT_NOSUID = 0x8
++ MNT_NOSYMFOLLOW = 0x400000
++ MNT_NOWAIT = 0x2
++ MNT_QUOTA = 0x2000
++ MNT_RDONLY = 0x1
++ MNT_RELOAD = 0x40000
++ MNT_ROOTFS = 0x4000
++ MNT_SNAPSHOT = 0x1000000
++ MNT_SOFTDEP = 0x200000
++ MNT_SUIDDIR = 0x100000
++ MNT_SUJ = 0x100000000
++ MNT_SUSPEND = 0x4
++ MNT_SYNCHRONOUS = 0x2
++ MNT_UNION = 0x20
++ MNT_UPDATE = 0x10000
++ MNT_UPDATEMASK = 0x2d8d0807e
++ MNT_USER = 0x8000
++ MNT_VISFLAGMASK = 0x3fef0ffff
++ MNT_WAIT = 0x1
+ MSG_CMSG_CLOEXEC = 0x40000
+ MSG_COMPAT = 0x8000
+ MSG_CTRUNC = 0x20
+@@ -1013,6 +1079,7 @@ const (
+ NET_RT_IFLIST = 0x3
+ NET_RT_IFLISTL = 0x5
+ NET_RT_IFMALIST = 0x4
++ NFDBITS = 0x20
+ NOFLSH = 0x80000000
+ NOKERNINFO = 0x2000000
+ NOTE_ATTRIB = 0x8
+@@ -1304,6 +1371,35 @@ const (
+ SO_USELOOPBACK = 0x40
+ SO_USER_COOKIE = 0x1015
+ SO_VENDOR = 0x80000000
++ S_BLKSIZE = 0x200
++ S_IEXEC = 0x40
++ S_IFBLK = 0x6000
++ S_IFCHR = 0x2000
++ S_IFDIR = 0x4000
++ S_IFIFO = 0x1000
++ S_IFLNK = 0xa000
++ S_IFMT = 0xf000
++ S_IFREG = 0x8000
++ S_IFSOCK = 0xc000
++ S_IFWHT = 0xe000
++ S_IREAD = 0x100
++ S_IRGRP = 0x20
++ S_IROTH = 0x4
++ S_IRUSR = 0x100
++ S_IRWXG = 0x38
++ S_IRWXO = 0x7
++ S_IRWXU = 0x1c0
++ S_ISGID = 0x400
++ S_ISTXT = 0x200
++ S_ISUID = 0x800
++ S_ISVTX = 0x200
++ S_IWGRP = 0x10
++ S_IWOTH = 0x2
++ S_IWRITE = 0x80
++ S_IWUSR = 0x80
++ S_IXGRP = 0x8
++ S_IXOTH = 0x1
++ S_IXUSR = 0x40
+ TAB0 = 0x0
+ TAB3 = 0x4
+ TABDLY = 0x4
+@@ -1578,138 +1674,146 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "device not configured",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource deadlock avoided",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "device busy",
+- 17: "file exists",
+- 18: "cross-device link",
+- 19: "operation not supported by device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "result too large",
+- 35: "resource temporarily unavailable",
+- 36: "operation now in progress",
+- 37: "operation already in progress",
+- 38: "socket operation on non-socket",
+- 39: "destination address required",
+- 40: "message too long",
+- 41: "protocol wrong type for socket",
+- 42: "protocol not available",
+- 43: "protocol not supported",
+- 44: "socket type not supported",
+- 45: "operation not supported",
+- 46: "protocol family not supported",
+- 47: "address family not supported by protocol family",
+- 48: "address already in use",
+- 49: "can't assign requested address",
+- 50: "network is down",
+- 51: "network is unreachable",
+- 52: "network dropped connection on reset",
+- 53: "software caused connection abort",
+- 54: "connection reset by peer",
+- 55: "no buffer space available",
+- 56: "socket is already connected",
+- 57: "socket is not connected",
+- 58: "can't send after socket shutdown",
+- 59: "too many references: can't splice",
+- 60: "operation timed out",
+- 61: "connection refused",
+- 62: "too many levels of symbolic links",
+- 63: "file name too long",
+- 64: "host is down",
+- 65: "no route to host",
+- 66: "directory not empty",
+- 67: "too many processes",
+- 68: "too many users",
+- 69: "disc quota exceeded",
+- 70: "stale NFS file handle",
+- 71: "too many levels of remote in path",
+- 72: "RPC struct is bad",
+- 73: "RPC version wrong",
+- 74: "RPC prog. not avail",
+- 75: "program version wrong",
+- 76: "bad procedure for program",
+- 77: "no locks available",
+- 78: "function not implemented",
+- 79: "inappropriate file type or format",
+- 80: "authentication error",
+- 81: "need authenticator",
+- 82: "identifier removed",
+- 83: "no message of desired type",
+- 84: "value too large to be stored in data type",
+- 85: "operation canceled",
+- 86: "illegal byte sequence",
+- 87: "attribute not found",
+- 88: "programming error",
+- 89: "bad message",
+- 90: "multihop attempted",
+- 91: "link has been severed",
+- 92: "protocol error",
+- 93: "capabilities insufficient",
+- 94: "not permitted in capability mode",
+- 95: "state not recoverable",
+- 96: "previous owner died",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "device not configured"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EDEADLK", "resource deadlock avoided"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "cross-device link"},
++ {19, "ENODEV", "operation not supported by device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "result too large"},
++ {35, "EAGAIN", "resource temporarily unavailable"},
++ {36, "EINPROGRESS", "operation now in progress"},
++ {37, "EALREADY", "operation already in progress"},
++ {38, "ENOTSOCK", "socket operation on non-socket"},
++ {39, "EDESTADDRREQ", "destination address required"},
++ {40, "EMSGSIZE", "message too long"},
++ {41, "EPROTOTYPE", "protocol wrong type for socket"},
++ {42, "ENOPROTOOPT", "protocol not available"},
++ {43, "EPROTONOSUPPORT", "protocol not supported"},
++ {44, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {45, "EOPNOTSUPP", "operation not supported"},
++ {46, "EPFNOSUPPORT", "protocol family not supported"},
++ {47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++ {48, "EADDRINUSE", "address already in use"},
++ {49, "EADDRNOTAVAIL", "can't assign requested address"},
++ {50, "ENETDOWN", "network is down"},
++ {51, "ENETUNREACH", "network is unreachable"},
++ {52, "ENETRESET", "network dropped connection on reset"},
++ {53, "ECONNABORTED", "software caused connection abort"},
++ {54, "ECONNRESET", "connection reset by peer"},
++ {55, "ENOBUFS", "no buffer space available"},
++ {56, "EISCONN", "socket is already connected"},
++ {57, "ENOTCONN", "socket is not connected"},
++ {58, "ESHUTDOWN", "can't send after socket shutdown"},
++ {59, "ETOOMANYREFS", "too many references: can't splice"},
++ {60, "ETIMEDOUT", "operation timed out"},
++ {61, "ECONNREFUSED", "connection refused"},
++ {62, "ELOOP", "too many levels of symbolic links"},
++ {63, "ENAMETOOLONG", "file name too long"},
++ {64, "EHOSTDOWN", "host is down"},
++ {65, "EHOSTUNREACH", "no route to host"},
++ {66, "ENOTEMPTY", "directory not empty"},
++ {67, "EPROCLIM", "too many processes"},
++ {68, "EUSERS", "too many users"},
++ {69, "EDQUOT", "disc quota exceeded"},
++ {70, "ESTALE", "stale NFS file handle"},
++ {71, "EREMOTE", "too many levels of remote in path"},
++ {72, "EBADRPC", "RPC struct is bad"},
++ {73, "ERPCMISMATCH", "RPC version wrong"},
++ {74, "EPROGUNAVAIL", "RPC prog. not avail"},
++ {75, "EPROGMISMATCH", "program version wrong"},
++ {76, "EPROCUNAVAIL", "bad procedure for program"},
++ {77, "ENOLCK", "no locks available"},
++ {78, "ENOSYS", "function not implemented"},
++ {79, "EFTYPE", "inappropriate file type or format"},
++ {80, "EAUTH", "authentication error"},
++ {81, "ENEEDAUTH", "need authenticator"},
++ {82, "EIDRM", "identifier removed"},
++ {83, "ENOMSG", "no message of desired type"},
++ {84, "EOVERFLOW", "value too large to be stored in data type"},
++ {85, "ECANCELED", "operation canceled"},
++ {86, "EILSEQ", "illegal byte sequence"},
++ {87, "ENOATTR", "attribute not found"},
++ {88, "EDOOFUS", "programming error"},
++ {89, "EBADMSG", "bad message"},
++ {90, "EMULTIHOP", "multihop attempted"},
++ {91, "ENOLINK", "link has been severed"},
++ {92, "EPROTO", "protocol error"},
++ {93, "ENOTCAPABLE", "capabilities insufficient"},
++ {94, "ECAPMODE", "not permitted in capability mode"},
++ {95, "ENOTRECOVERABLE", "state not recoverable"},
++ {96, "EOWNERDEAD", "previous owner died"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/BPT trap",
+- 6: "abort trap",
+- 7: "EMT trap",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "bus error",
+- 11: "segmentation fault",
+- 12: "bad system call",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "urgent I/O condition",
+- 17: "suspended (signal)",
+- 18: "suspended",
+- 19: "continued",
+- 20: "child exited",
+- 21: "stopped (tty input)",
+- 22: "stopped (tty output)",
+- 23: "I/O possible",
+- 24: "cputime limit exceeded",
+- 25: "filesize limit exceeded",
+- 26: "virtual timer expired",
+- 27: "profiling timer expired",
+- 28: "window size changes",
+- 29: "information request",
+- 30: "user defined signal 1",
+- 31: "user defined signal 2",
+- 32: "unknown signal",
+- 33: "unknown signal",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/BPT trap"},
++ {6, "SIGIOT", "abort trap"},
++ {7, "SIGEMT", "EMT trap"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGBUS", "bus error"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGSYS", "bad system call"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGURG", "urgent I/O condition"},
++ {17, "SIGSTOP", "suspended (signal)"},
++ {18, "SIGTSTP", "suspended"},
++ {19, "SIGCONT", "continued"},
++ {20, "SIGCHLD", "child exited"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGIO", "I/O possible"},
++ {24, "SIGXCPU", "cputime limit exceeded"},
++ {25, "SIGXFSZ", "filesize limit exceeded"},
++ {26, "SIGVTALRM", "virtual timer expired"},
++ {27, "SIGPROF", "profiling timer expired"},
++ {28, "SIGWINCH", "window size changes"},
++ {29, "SIGINFO", "information request"},
++ {30, "SIGUSR1", "user defined signal 1"},
++ {31, "SIGUSR2", "user defined signal 2"},
++ {32, "SIGTHR", "unknown signal"},
++ {33, "SIGLIBRT", "unknown signal"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go
+similarity index 80%
+copy from vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go
+copy to vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go
+index ac094f9c..5e49769d 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go
+@@ -1,9 +1,9 @@
+ // mkerrors.sh -m64
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+-// +build amd64,freebsd
++// +build arm64,freebsd
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+
+ package unix
+@@ -351,8 +351,26 @@ const (
+ CSTOP = 0x13
+ CSTOPB = 0x400
+ CSUSP = 0x1a
++ CTL_HW = 0x6
++ CTL_KERN = 0x1
+ CTL_MAXNAME = 0x18
+ CTL_NET = 0x4
++ DIOCGATTR = 0xc148648e
++ DIOCGDELETE = 0x80106488
++ DIOCGFLUSH = 0x20006487
++ DIOCGFRONTSTUFF = 0x40086486
++ DIOCGFWHEADS = 0x40046483
++ DIOCGFWSECTORS = 0x40046482
++ DIOCGIDENT = 0x41006489
++ DIOCGMEDIASIZE = 0x40086481
++ DIOCGPHYSPATH = 0x4400648d
++ DIOCGPROVIDERNAME = 0x4400648a
++ DIOCGSECTORSIZE = 0x40046480
++ DIOCGSTRIPEOFFSET = 0x4008648c
++ DIOCGSTRIPESIZE = 0x4008648b
++ DIOCSKERNELDUMP = 0x80506490
++ DIOCSKERNELDUMP_FREEBSD11 = 0x80046485
++ DIOCZONECMD = 0xc080648f
+ DLT_A429 = 0xb8
+ DLT_A653_ICM = 0xb9
+ DLT_AIRONET_HEADER = 0x78
+@@ -377,11 +395,14 @@ const (
+ DLT_CHAOS = 0x5
+ DLT_CHDLC = 0x68
+ DLT_CISCO_IOS = 0x76
++ DLT_CLASS_NETBSD_RAWAF = 0x2240000
+ DLT_C_HDLC = 0x68
+ DLT_C_HDLC_WITH_DIR = 0xcd
+ DLT_DBUS = 0xe7
+ DLT_DECT = 0xdd
++ DLT_DISPLAYPORT_AUX = 0x113
+ DLT_DOCSIS = 0x8f
++ DLT_DOCSIS31_XRA31 = 0x111
+ DLT_DVB_CI = 0xeb
+ DLT_ECONET = 0x73
+ DLT_EN10MB = 0x1
+@@ -391,6 +412,7 @@ const (
+ DLT_ERF = 0xc5
+ DLT_ERF_ETH = 0xaf
+ DLT_ERF_POS = 0xb0
++ DLT_ETHERNET_MPACKET = 0x112
+ DLT_FC_2 = 0xe0
+ DLT_FC_2_WITH_FRAME_DELIMS = 0xe1
+ DLT_FDDI = 0xa
+@@ -404,7 +426,6 @@ const (
+ DLT_GPRS_LLC = 0xa9
+ DLT_GSMTAP_ABIS = 0xda
+ DLT_GSMTAP_UM = 0xd9
+- DLT_HHDLC = 0x79
+ DLT_IBM_SN = 0x92
+ DLT_IBM_SP = 0x91
+ DLT_IEEE802 = 0x6
+@@ -427,6 +448,7 @@ const (
+ DLT_IPV4 = 0xe4
+ DLT_IPV6 = 0xe5
+ DLT_IP_OVER_FC = 0x7a
++ DLT_ISO_14443 = 0x108
+ DLT_JUNIPER_ATM1 = 0x89
+ DLT_JUNIPER_ATM2 = 0x87
+ DLT_JUNIPER_ATM_CEMIC = 0xee
+@@ -459,8 +481,9 @@ const (
+ DLT_LINUX_PPP_WITHDIRECTION = 0xa6
+ DLT_LINUX_SLL = 0x71
+ DLT_LOOP = 0x6c
++ DLT_LORATAP = 0x10e
+ DLT_LTALK = 0x72
+- DLT_MATCHING_MAX = 0x104
++ DLT_MATCHING_MAX = 0x113
+ DLT_MATCHING_MIN = 0x68
+ DLT_MFR = 0xb6
+ DLT_MOST = 0xd3
+@@ -476,14 +499,16 @@ const (
+ DLT_NFC_LLCP = 0xf5
+ DLT_NFLOG = 0xef
+ DLT_NG40 = 0xf4
++ DLT_NORDIC_BLE = 0x110
+ DLT_NULL = 0x0
++ DLT_OPENFLOW = 0x10b
+ DLT_PCI_EXP = 0x7d
+ DLT_PFLOG = 0x75
+ DLT_PFSYNC = 0x79
+ DLT_PKTAP = 0x102
+ DLT_PPI = 0xc0
+ DLT_PPP = 0x9
+- DLT_PPP_BSDOS = 0x10
++ DLT_PPP_BSDOS = 0xe
+ DLT_PPP_ETHER = 0x33
+ DLT_PPP_PPPD = 0xa6
+ DLT_PPP_SERIAL = 0x32
+@@ -494,19 +519,25 @@ const (
+ DLT_PRONET = 0x4
+ DLT_RAIF1 = 0xc6
+ DLT_RAW = 0xc
++ DLT_RDS = 0x109
++ DLT_REDBACK_SMARTEDGE = 0x20
+ DLT_RIO = 0x7c
+ DLT_RTAC_SERIAL = 0xfa
+ DLT_SCCP = 0x8e
+ DLT_SCTP = 0xf8
++ DLT_SDLC = 0x10c
+ DLT_SITA = 0xc4
+ DLT_SLIP = 0x8
+- DLT_SLIP_BSDOS = 0xf
++ DLT_SLIP_BSDOS = 0xd
+ DLT_STANAG_5066_D_PDU = 0xed
+ DLT_SUNATM = 0x7b
+ DLT_SYMANTEC_FIREWALL = 0x63
++ DLT_TI_LLN_SNIFFER = 0x10d
+ DLT_TZSP = 0x80
+ DLT_USB = 0xba
+ DLT_USBPCAP = 0xf9
++ DLT_USB_DARWIN = 0x10a
++ DLT_USB_FREEBSD = 0xba
+ DLT_USB_LINUX = 0xbd
+ DLT_USB_LINUX_MMAPPED = 0xdc
+ DLT_USER0 = 0x93
+@@ -525,10 +556,14 @@ const (
+ DLT_USER7 = 0x9a
+ DLT_USER8 = 0x9b
+ DLT_USER9 = 0x9c
++ DLT_VSOCK = 0x10f
++ DLT_WATTSTOPPER_DLM = 0x107
+ DLT_WIHART = 0xdf
+ DLT_WIRESHARK_UPPER_PDU = 0xfc
+ DLT_X2E_SERIAL = 0xd5
+ DLT_X2E_XORAYA = 0xd6
++ DLT_ZWAVE_R1_R2 = 0x105
++ DLT_ZWAVE_R3 = 0x106
+ DT_BLK = 0x6
+ DT_CHR = 0x2
+ DT_DIR = 0x4
+@@ -546,6 +581,7 @@ const (
+ ECHONL = 0x10
+ ECHOPRT = 0x20
+ EVFILT_AIO = -0x3
++ EVFILT_EMPTY = -0xd
+ EVFILT_FS = -0x9
+ EVFILT_LIO = -0xa
+ EVFILT_PROC = -0x5
+@@ -553,11 +589,12 @@ const (
+ EVFILT_READ = -0x1
+ EVFILT_SENDFILE = -0xc
+ EVFILT_SIGNAL = -0x6
+- EVFILT_SYSCOUNT = 0xc
++ EVFILT_SYSCOUNT = 0xd
+ EVFILT_TIMER = -0x7
+ EVFILT_USER = -0xb
+ EVFILT_VNODE = -0x4
+ EVFILT_WRITE = -0x2
++ EVNAMEMAP_NAME_SIZE = 0x40
+ EV_ADD = 0x1
+ EV_CLEAR = 0x20
+ EV_DELETE = 0x2
+@@ -574,6 +611,7 @@ const (
+ EV_RECEIPT = 0x40
+ EV_SYSFLAGS = 0xf000
+ EXTA = 0x4b00
++ EXTATTR_MAXNAMELEN = 0xff
+ EXTATTR_NAMESPACE_EMPTY = 0x0
+ EXTATTR_NAMESPACE_SYSTEM = 0x2
+ EXTATTR_NAMESPACE_USER = 0x1
+@@ -608,12 +646,14 @@ const (
+ F_UNLCKSYS = 0x4
+ F_WRLCK = 0x3
+ HUPCL = 0x4000
++ HW_MACHINE = 0x1
+ ICANON = 0x100
+ ICMP6_FILTER = 0x12
+ ICRNL = 0x100
+ IEXTEN = 0x400
+ IFAN_ARRIVAL = 0x0
+ IFAN_DEPARTURE = 0x1
++ IFCAP_WOL_MAGIC = 0x2000
+ IFF_ALLMULTI = 0x200
+ IFF_ALTPHYS = 0x4000
+ IFF_BROADCAST = 0x2
+@@ -630,6 +670,7 @@ const (
+ IFF_MONITOR = 0x40000
+ IFF_MULTICAST = 0x8000
+ IFF_NOARP = 0x80
++ IFF_NOGROUP = 0x800000
+ IFF_OACTIVE = 0x400
+ IFF_POINTOPOINT = 0x10
+ IFF_PPROMISC = 0x20000
+@@ -804,6 +845,7 @@ const (
+ IPV6_DSTOPTS = 0x32
+ IPV6_FLOWID = 0x43
+ IPV6_FLOWINFO_MASK = 0xffffff0f
++ IPV6_FLOWLABEL_LEN = 0x14
+ IPV6_FLOWLABEL_MASK = 0xffff0f00
+ IPV6_FLOWTYPE = 0x44
+ IPV6_FRAGTTL = 0x78
+@@ -824,13 +866,13 @@ const (
+ IPV6_MAX_GROUP_SRC_FILTER = 0x200
+ IPV6_MAX_MEMBERSHIPS = 0xfff
+ IPV6_MAX_SOCK_SRC_FILTER = 0x80
+- IPV6_MIN_MEMBERSHIPS = 0x1f
+ IPV6_MMTU = 0x500
+ IPV6_MSFILTER = 0x4a
+ IPV6_MULTICAST_HOPS = 0xa
+ IPV6_MULTICAST_IF = 0x9
+ IPV6_MULTICAST_LOOP = 0xb
+ IPV6_NEXTHOP = 0x30
++ IPV6_ORIGDSTADDR = 0x48
+ IPV6_PATHMTU = 0x2c
+ IPV6_PKTINFO = 0x2e
+ IPV6_PORTRANGE = 0xe
+@@ -842,6 +884,7 @@ const (
+ IPV6_RECVFLOWID = 0x46
+ IPV6_RECVHOPLIMIT = 0x25
+ IPV6_RECVHOPOPTS = 0x27
++ IPV6_RECVORIGDSTADDR = 0x48
+ IPV6_RECVPATHMTU = 0x2b
+ IPV6_RECVPKTINFO = 0x24
+ IPV6_RECVRSSBUCKETID = 0x47
+@@ -902,10 +945,8 @@ const (
+ IP_MAX_MEMBERSHIPS = 0xfff
+ IP_MAX_SOCK_MUTE_FILTER = 0x80
+ IP_MAX_SOCK_SRC_FILTER = 0x80
+- IP_MAX_SOURCE_FILTER = 0x400
+ IP_MF = 0x2000
+ IP_MINTTL = 0x42
+- IP_MIN_MEMBERSHIPS = 0x1f
+ IP_MSFILTER = 0x4a
+ IP_MSS = 0x240
+ IP_MULTICAST_IF = 0x9
+@@ -915,6 +956,7 @@ const (
+ IP_OFFMASK = 0x1fff
+ IP_ONESBCAST = 0x17
+ IP_OPTIONS = 0x1
++ IP_ORIGDSTADDR = 0x1b
+ IP_PORTRANGE = 0x13
+ IP_PORTRANGE_DEFAULT = 0x0
+ IP_PORTRANGE_HIGH = 0x1
+@@ -923,6 +965,7 @@ const (
+ IP_RECVFLOWID = 0x5d
+ IP_RECVIF = 0x14
+ IP_RECVOPTS = 0x5
++ IP_RECVORIGDSTADDR = 0x1b
+ IP_RECVRETOPTS = 0x6
+ IP_RECVRSSBUCKETID = 0x5e
+ IP_RECVTOS = 0x44
+@@ -944,6 +987,10 @@ const (
+ IXANY = 0x800
+ IXOFF = 0x400
+ IXON = 0x200
++ KERN_HOSTNAME = 0xa
++ KERN_OSRELEASE = 0x2
++ KERN_OSTYPE = 0x1
++ KERN_VERSION = 0x4
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+ LOCK_SH = 0x1
+@@ -969,6 +1016,7 @@ const (
+ MAP_EXCL = 0x4000
+ MAP_FILE = 0x0
+ MAP_FIXED = 0x10
++ MAP_GUARD = 0x2000
+ MAP_HASSEMAPHORE = 0x200
+ MAP_NOCORE = 0x20000
+ MAP_NOSYNC = 0x800
+@@ -980,8 +1028,62 @@ const (
+ MAP_RESERVED0100 = 0x100
+ MAP_SHARED = 0x1
+ MAP_STACK = 0x400
++ MCAST_BLOCK_SOURCE = 0x54
++ MCAST_EXCLUDE = 0x2
++ MCAST_INCLUDE = 0x1
++ MCAST_JOIN_GROUP = 0x50
++ MCAST_JOIN_SOURCE_GROUP = 0x52
++ MCAST_LEAVE_GROUP = 0x51
++ MCAST_LEAVE_SOURCE_GROUP = 0x53
++ MCAST_UNBLOCK_SOURCE = 0x55
++ MCAST_UNDEFINED = 0x0
+ MCL_CURRENT = 0x1
+ MCL_FUTURE = 0x2
++ MNT_ACLS = 0x8000000
++ MNT_ASYNC = 0x40
++ MNT_AUTOMOUNTED = 0x200000000
++ MNT_BYFSID = 0x8000000
++ MNT_CMDFLAGS = 0xd0f0000
++ MNT_DEFEXPORTED = 0x200
++ MNT_DELEXPORT = 0x20000
++ MNT_EXKERB = 0x800
++ MNT_EXPORTANON = 0x400
++ MNT_EXPORTED = 0x100
++ MNT_EXPUBLIC = 0x20000000
++ MNT_EXRDONLY = 0x80
++ MNT_FORCE = 0x80000
++ MNT_GJOURNAL = 0x2000000
++ MNT_IGNORE = 0x800000
++ MNT_LAZY = 0x3
++ MNT_LOCAL = 0x1000
++ MNT_MULTILABEL = 0x4000000
++ MNT_NFS4ACLS = 0x10
++ MNT_NOATIME = 0x10000000
++ MNT_NOCLUSTERR = 0x40000000
++ MNT_NOCLUSTERW = 0x80000000
++ MNT_NOEXEC = 0x4
++ MNT_NONBUSY = 0x4000000
++ MNT_NOSUID = 0x8
++ MNT_NOSYMFOLLOW = 0x400000
++ MNT_NOWAIT = 0x2
++ MNT_QUOTA = 0x2000
++ MNT_RDONLY = 0x1
++ MNT_RELOAD = 0x40000
++ MNT_ROOTFS = 0x4000
++ MNT_SNAPSHOT = 0x1000000
++ MNT_SOFTDEP = 0x200000
++ MNT_SUIDDIR = 0x100000
++ MNT_SUJ = 0x100000000
++ MNT_SUSPEND = 0x4
++ MNT_SYNCHRONOUS = 0x2
++ MNT_UNION = 0x20
++ MNT_UNTRUSTED = 0x800000000
++ MNT_UPDATE = 0x10000
++ MNT_UPDATEMASK = 0xad8d0807e
++ MNT_USER = 0x8000
++ MNT_VERIFIED = 0x400000000
++ MNT_VISFLAGMASK = 0xffef0ffff
++ MNT_WAIT = 0x1
+ MSG_CMSG_CLOEXEC = 0x40000
+ MSG_COMPAT = 0x8000
+ MSG_CTRUNC = 0x20
+@@ -1006,8 +1108,10 @@ const (
+ NET_RT_IFLIST = 0x3
+ NET_RT_IFLISTL = 0x5
+ NET_RT_IFMALIST = 0x4
++ NFDBITS = 0x40
+ NOFLSH = 0x80000000
+ NOKERNINFO = 0x2000000
++ NOTE_ABSTIME = 0x10
+ NOTE_ATTRIB = 0x8
+ NOTE_CHILD = 0x4
+ NOTE_CLOSE = 0x100
+@@ -1162,7 +1266,6 @@ const (
+ RTV_WEIGHT = 0x100
+ RT_ALL_FIBS = -0x1
+ RT_BLACKHOLE = 0x40
+- RT_CACHING_CONTEXT = 0x1
+ RT_DEFAULT_FIB = 0x0
+ RT_HAS_GW = 0x80
+ RT_HAS_HEADER = 0x10
+@@ -1172,15 +1275,17 @@ const (
+ RT_LLE_CACHE = 0x100
+ RT_MAY_LOOP = 0x8
+ RT_MAY_LOOP_BIT = 0x3
+- RT_NORTREF = 0x2
+ RT_REJECT = 0x20
+ RUSAGE_CHILDREN = -0x1
+ RUSAGE_SELF = 0x0
+ RUSAGE_THREAD = 0x1
+ SCM_BINTIME = 0x4
+ SCM_CREDS = 0x3
++ SCM_MONOTONIC = 0x6
++ SCM_REALTIME = 0x5
+ SCM_RIGHTS = 0x1
+ SCM_TIMESTAMP = 0x2
++ SCM_TIME_INFO = 0x7
+ SHUT_RD = 0x0
+ SHUT_RDWR = 0x2
+ SHUT_WR = 0x1
+@@ -1196,6 +1301,7 @@ const (
+ SIOCGETSGCNT = 0xc0207210
+ SIOCGETVIFCNT = 0xc028720f
+ SIOCGHIWAT = 0x40047301
++ SIOCGHWADDR = 0xc020693e
+ SIOCGI2C = 0xc020693d
+ SIOCGIFADDR = 0xc0206921
+ SIOCGIFBRDADDR = 0xc0206923
+@@ -1217,8 +1323,11 @@ const (
+ SIOCGIFPDSTADDR = 0xc0206948
+ SIOCGIFPHYS = 0xc0206935
+ SIOCGIFPSRCADDR = 0xc0206947
++ SIOCGIFRSSHASH = 0xc0186997
++ SIOCGIFRSSKEY = 0xc0946996
+ SIOCGIFSTATUS = 0xc331693b
+ SIOCGIFXMEDIA = 0xc030698b
++ SIOCGLANPCP = 0xc0206998
+ SIOCGLOWAT = 0x40047303
+ SIOCGPGRP = 0x40047309
+ SIOCGPRIVATE_0 = 0xc0206950
+@@ -1249,6 +1358,7 @@ const (
+ SIOCSIFPHYS = 0x80206936
+ SIOCSIFRVNET = 0xc020695b
+ SIOCSIFVNET = 0xc020695a
++ SIOCSLANPCP = 0x80206999
+ SIOCSLOWAT = 0x80047302
+ SIOCSPGRP = 0x80047308
+ SIOCSTUNFIB = 0x8020695f
+@@ -1267,6 +1377,7 @@ const (
+ SO_BINTIME = 0x2000
+ SO_BROADCAST = 0x20
+ SO_DEBUG = 0x1
++ SO_DOMAIN = 0x1019
+ SO_DONTROUTE = 0x10
+ SO_ERROR = 0x1007
+ SO_KEEPALIVE = 0x8
+@@ -1275,6 +1386,7 @@ const (
+ SO_LISTENINCQLEN = 0x1013
+ SO_LISTENQLEN = 0x1012
+ SO_LISTENQLIMIT = 0x1011
++ SO_MAX_PACING_RATE = 0x1018
+ SO_NOSIGPIPE = 0x800
+ SO_NO_DDP = 0x8000
+ SO_NO_OFFLOAD = 0x4000
+@@ -1287,15 +1399,52 @@ const (
+ SO_RCVTIMEO = 0x1006
+ SO_REUSEADDR = 0x4
+ SO_REUSEPORT = 0x200
++ SO_REUSEPORT_LB = 0x10000
+ SO_SETFIB = 0x1014
+ SO_SNDBUF = 0x1001
+ SO_SNDLOWAT = 0x1003
+ SO_SNDTIMEO = 0x1005
+ SO_TIMESTAMP = 0x400
++ SO_TS_BINTIME = 0x1
++ SO_TS_CLOCK = 0x1017
++ SO_TS_CLOCK_MAX = 0x3
++ SO_TS_DEFAULT = 0x0
++ SO_TS_MONOTONIC = 0x3
++ SO_TS_REALTIME = 0x2
++ SO_TS_REALTIME_MICRO = 0x0
+ SO_TYPE = 0x1008
+ SO_USELOOPBACK = 0x40
+ SO_USER_COOKIE = 0x1015
+ SO_VENDOR = 0x80000000
++ S_BLKSIZE = 0x200
++ S_IEXEC = 0x40
++ S_IFBLK = 0x6000
++ S_IFCHR = 0x2000
++ S_IFDIR = 0x4000
++ S_IFIFO = 0x1000
++ S_IFLNK = 0xa000
++ S_IFMT = 0xf000
++ S_IFREG = 0x8000
++ S_IFSOCK = 0xc000
++ S_IFWHT = 0xe000
++ S_IREAD = 0x100
++ S_IRGRP = 0x20
++ S_IROTH = 0x4
++ S_IRUSR = 0x100
++ S_IRWXG = 0x38
++ S_IRWXO = 0x7
++ S_IRWXU = 0x1c0
++ S_ISGID = 0x400
++ S_ISTXT = 0x200
++ S_ISUID = 0x800
++ S_ISVTX = 0x200
++ S_IWGRP = 0x10
++ S_IWOTH = 0x2
++ S_IWRITE = 0x80
++ S_IWUSR = 0x80
++ S_IXGRP = 0x8
++ S_IXOTH = 0x1
++ S_IXUSR = 0x40
+ TAB0 = 0x0
+ TAB3 = 0x4
+ TABDLY = 0x4
+@@ -1306,10 +1455,45 @@ const (
+ TCOFLUSH = 0x2
+ TCOOFF = 0x1
+ TCOON = 0x2
++ TCP_BBR_ACK_COMP_ALG = 0x448
++ TCP_BBR_DRAIN_INC_EXTRA = 0x43c
++ TCP_BBR_DRAIN_PG = 0x42e
++ TCP_BBR_EXTRA_GAIN = 0x449
++ TCP_BBR_IWINTSO = 0x42b
++ TCP_BBR_LOWGAIN_FD = 0x436
++ TCP_BBR_LOWGAIN_HALF = 0x435
++ TCP_BBR_LOWGAIN_THRESH = 0x434
++ TCP_BBR_MAX_RTO = 0x439
++ TCP_BBR_MIN_RTO = 0x438
++ TCP_BBR_ONE_RETRAN = 0x431
++ TCP_BBR_PACE_CROSS = 0x442
++ TCP_BBR_PACE_DEL_TAR = 0x43f
++ TCP_BBR_PACE_PER_SEC = 0x43e
++ TCP_BBR_PACE_SEG_MAX = 0x440
++ TCP_BBR_PACE_SEG_MIN = 0x441
++ TCP_BBR_PROBE_RTT_GAIN = 0x44d
++ TCP_BBR_PROBE_RTT_INT = 0x430
++ TCP_BBR_PROBE_RTT_LEN = 0x44e
++ TCP_BBR_RACK_RTT_USE = 0x44a
++ TCP_BBR_RECFORCE = 0x42c
++ TCP_BBR_REC_OVER_HPTS = 0x43a
++ TCP_BBR_RETRAN_WTSO = 0x44b
++ TCP_BBR_RWND_IS_APP = 0x42f
++ TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d
++ TCP_BBR_STARTUP_LOSS_EXIT = 0x432
++ TCP_BBR_STARTUP_PG = 0x42d
++ TCP_BBR_UNLIMITED = 0x43b
++ TCP_BBR_USEDEL_RATE = 0x437
++ TCP_BBR_USE_LOWGAIN = 0x433
+ TCP_CA_NAME_MAX = 0x10
+ TCP_CCALGOOPT = 0x41
+ TCP_CONGESTION = 0x40
++ TCP_DATA_AFTER_CLOSE = 0x44c
++ TCP_DELACK = 0x48
+ TCP_FASTOPEN = 0x401
++ TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10
++ TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4
++ TCP_FASTOPEN_PSK_LEN = 0x10
+ TCP_FUNCTION_BLK = 0x2000
+ TCP_FUNCTION_NAME_LEN_MAX = 0x20
+ TCP_INFO = 0x20
+@@ -1317,6 +1501,12 @@ const (
+ TCP_KEEPIDLE = 0x100
+ TCP_KEEPINIT = 0x80
+ TCP_KEEPINTVL = 0x200
++ TCP_LOG = 0x22
++ TCP_LOGBUF = 0x23
++ TCP_LOGDUMP = 0x25
++ TCP_LOGDUMPID = 0x26
++ TCP_LOGID = 0x24
++ TCP_LOG_ID_LEN = 0x40
+ TCP_MAXBURST = 0x4
+ TCP_MAXHLEN = 0x3c
+ TCP_MAXOLEN = 0x28
+@@ -1332,8 +1522,30 @@ const (
+ TCP_NOPUSH = 0x4
+ TCP_PCAP_IN = 0x1000
+ TCP_PCAP_OUT = 0x800
++ TCP_RACK_EARLY_RECOV = 0x423
++ TCP_RACK_EARLY_SEG = 0x424
++ TCP_RACK_IDLE_REDUCE_HIGH = 0x444
++ TCP_RACK_MIN_PACE = 0x445
++ TCP_RACK_MIN_PACE_SEG = 0x446
++ TCP_RACK_MIN_TO = 0x422
++ TCP_RACK_PACE_ALWAYS = 0x41f
++ TCP_RACK_PACE_MAX_SEG = 0x41e
++ TCP_RACK_PACE_REDUCE = 0x41d
++ TCP_RACK_PKT_DELAY = 0x428
++ TCP_RACK_PROP = 0x41b
++ TCP_RACK_PROP_RATE = 0x420
++ TCP_RACK_PRR_SENDALOT = 0x421
++ TCP_RACK_REORD_FADE = 0x426
++ TCP_RACK_REORD_THRESH = 0x425
++ TCP_RACK_SESS_CWV = 0x42a
++ TCP_RACK_TLP_INC_VAR = 0x429
++ TCP_RACK_TLP_REDUCE = 0x41c
++ TCP_RACK_TLP_THRESH = 0x427
++ TCP_RACK_TLP_USE = 0x447
+ TCP_VENDOR = 0x80000000
+ TCSAFLUSH = 0x2
++ TIMER_ABSTIME = 0x1
++ TIMER_RELTIME = 0x0
+ TIOCCBRK = 0x2000747a
+ TIOCCDTR = 0x20007478
+ TIOCCONS = 0x80047462
+@@ -1397,6 +1609,8 @@ const (
+ TIOCTIMESTAMP = 0x40107459
+ TIOCUCNTL = 0x80047466
+ TOSTOP = 0x400000
++ UTIME_NOW = -0x1
++ UTIME_OMIT = -0x2
+ VDISCARD = 0xf
+ VDSUSP = 0xb
+ VEOF = 0x0
+@@ -1408,6 +1622,7 @@ const (
+ VKILL = 0x5
+ VLNEXT = 0xe
+ VMIN = 0x10
++ VM_BCACHE_SIZE_MAX = 0x19000000
+ VQUIT = 0x9
+ VREPRINT = 0x6
+ VSTART = 0xc
+@@ -1570,138 +1785,146 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "device not configured",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource deadlock avoided",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "device busy",
+- 17: "file exists",
+- 18: "cross-device link",
+- 19: "operation not supported by device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "result too large",
+- 35: "resource temporarily unavailable",
+- 36: "operation now in progress",
+- 37: "operation already in progress",
+- 38: "socket operation on non-socket",
+- 39: "destination address required",
+- 40: "message too long",
+- 41: "protocol wrong type for socket",
+- 42: "protocol not available",
+- 43: "protocol not supported",
+- 44: "socket type not supported",
+- 45: "operation not supported",
+- 46: "protocol family not supported",
+- 47: "address family not supported by protocol family",
+- 48: "address already in use",
+- 49: "can't assign requested address",
+- 50: "network is down",
+- 51: "network is unreachable",
+- 52: "network dropped connection on reset",
+- 53: "software caused connection abort",
+- 54: "connection reset by peer",
+- 55: "no buffer space available",
+- 56: "socket is already connected",
+- 57: "socket is not connected",
+- 58: "can't send after socket shutdown",
+- 59: "too many references: can't splice",
+- 60: "operation timed out",
+- 61: "connection refused",
+- 62: "too many levels of symbolic links",
+- 63: "file name too long",
+- 64: "host is down",
+- 65: "no route to host",
+- 66: "directory not empty",
+- 67: "too many processes",
+- 68: "too many users",
+- 69: "disc quota exceeded",
+- 70: "stale NFS file handle",
+- 71: "too many levels of remote in path",
+- 72: "RPC struct is bad",
+- 73: "RPC version wrong",
+- 74: "RPC prog. not avail",
+- 75: "program version wrong",
+- 76: "bad procedure for program",
+- 77: "no locks available",
+- 78: "function not implemented",
+- 79: "inappropriate file type or format",
+- 80: "authentication error",
+- 81: "need authenticator",
+- 82: "identifier removed",
+- 83: "no message of desired type",
+- 84: "value too large to be stored in data type",
+- 85: "operation canceled",
+- 86: "illegal byte sequence",
+- 87: "attribute not found",
+- 88: "programming error",
+- 89: "bad message",
+- 90: "multihop attempted",
+- 91: "link has been severed",
+- 92: "protocol error",
+- 93: "capabilities insufficient",
+- 94: "not permitted in capability mode",
+- 95: "state not recoverable",
+- 96: "previous owner died",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "device not configured"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EDEADLK", "resource deadlock avoided"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "cross-device link"},
++ {19, "ENODEV", "operation not supported by device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "result too large"},
++ {35, "EAGAIN", "resource temporarily unavailable"},
++ {36, "EINPROGRESS", "operation now in progress"},
++ {37, "EALREADY", "operation already in progress"},
++ {38, "ENOTSOCK", "socket operation on non-socket"},
++ {39, "EDESTADDRREQ", "destination address required"},
++ {40, "EMSGSIZE", "message too long"},
++ {41, "EPROTOTYPE", "protocol wrong type for socket"},
++ {42, "ENOPROTOOPT", "protocol not available"},
++ {43, "EPROTONOSUPPORT", "protocol not supported"},
++ {44, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {45, "EOPNOTSUPP", "operation not supported"},
++ {46, "EPFNOSUPPORT", "protocol family not supported"},
++ {47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++ {48, "EADDRINUSE", "address already in use"},
++ {49, "EADDRNOTAVAIL", "can't assign requested address"},
++ {50, "ENETDOWN", "network is down"},
++ {51, "ENETUNREACH", "network is unreachable"},
++ {52, "ENETRESET", "network dropped connection on reset"},
++ {53, "ECONNABORTED", "software caused connection abort"},
++ {54, "ECONNRESET", "connection reset by peer"},
++ {55, "ENOBUFS", "no buffer space available"},
++ {56, "EISCONN", "socket is already connected"},
++ {57, "ENOTCONN", "socket is not connected"},
++ {58, "ESHUTDOWN", "can't send after socket shutdown"},
++ {59, "ETOOMANYREFS", "too many references: can't splice"},
++ {60, "ETIMEDOUT", "operation timed out"},
++ {61, "ECONNREFUSED", "connection refused"},
++ {62, "ELOOP", "too many levels of symbolic links"},
++ {63, "ENAMETOOLONG", "file name too long"},
++ {64, "EHOSTDOWN", "host is down"},
++ {65, "EHOSTUNREACH", "no route to host"},
++ {66, "ENOTEMPTY", "directory not empty"},
++ {67, "EPROCLIM", "too many processes"},
++ {68, "EUSERS", "too many users"},
++ {69, "EDQUOT", "disc quota exceeded"},
++ {70, "ESTALE", "stale NFS file handle"},
++ {71, "EREMOTE", "too many levels of remote in path"},
++ {72, "EBADRPC", "RPC struct is bad"},
++ {73, "ERPCMISMATCH", "RPC version wrong"},
++ {74, "EPROGUNAVAIL", "RPC prog. not avail"},
++ {75, "EPROGMISMATCH", "program version wrong"},
++ {76, "EPROCUNAVAIL", "bad procedure for program"},
++ {77, "ENOLCK", "no locks available"},
++ {78, "ENOSYS", "function not implemented"},
++ {79, "EFTYPE", "inappropriate file type or format"},
++ {80, "EAUTH", "authentication error"},
++ {81, "ENEEDAUTH", "need authenticator"},
++ {82, "EIDRM", "identifier removed"},
++ {83, "ENOMSG", "no message of desired type"},
++ {84, "EOVERFLOW", "value too large to be stored in data type"},
++ {85, "ECANCELED", "operation canceled"},
++ {86, "EILSEQ", "illegal byte sequence"},
++ {87, "ENOATTR", "attribute not found"},
++ {88, "EDOOFUS", "programming error"},
++ {89, "EBADMSG", "bad message"},
++ {90, "EMULTIHOP", "multihop attempted"},
++ {91, "ENOLINK", "link has been severed"},
++ {92, "EPROTO", "protocol error"},
++ {93, "ENOTCAPABLE", "capabilities insufficient"},
++ {94, "ECAPMODE", "not permitted in capability mode"},
++ {95, "ENOTRECOVERABLE", "state not recoverable"},
++ {96, "EOWNERDEAD", "previous owner died"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/BPT trap",
+- 6: "abort trap",
+- 7: "EMT trap",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "bus error",
+- 11: "segmentation fault",
+- 12: "bad system call",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "urgent I/O condition",
+- 17: "suspended (signal)",
+- 18: "suspended",
+- 19: "continued",
+- 20: "child exited",
+- 21: "stopped (tty input)",
+- 22: "stopped (tty output)",
+- 23: "I/O possible",
+- 24: "cputime limit exceeded",
+- 25: "filesize limit exceeded",
+- 26: "virtual timer expired",
+- 27: "profiling timer expired",
+- 28: "window size changes",
+- 29: "information request",
+- 30: "user defined signal 1",
+- 31: "user defined signal 2",
+- 32: "unknown signal",
+- 33: "unknown signal",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/BPT trap"},
++ {6, "SIGIOT", "abort trap"},
++ {7, "SIGEMT", "EMT trap"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGBUS", "bus error"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGSYS", "bad system call"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGURG", "urgent I/O condition"},
++ {17, "SIGSTOP", "suspended (signal)"},
++ {18, "SIGTSTP", "suspended"},
++ {19, "SIGCONT", "continued"},
++ {20, "SIGCHLD", "child exited"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGIO", "I/O possible"},
++ {24, "SIGXCPU", "cputime limit exceeded"},
++ {25, "SIGXFSZ", "filesize limit exceeded"},
++ {26, "SIGVTALRM", "virtual timer expired"},
++ {27, "SIGPROF", "profiling timer expired"},
++ {28, "SIGWINCH", "window size changes"},
++ {29, "SIGINFO", "information request"},
++ {30, "SIGUSR1", "user defined signal 1"},
++ {31, "SIGUSR2", "user defined signal 2"},
++ {32, "SIGTHR", "unknown signal"},
++ {33, "SIGLIBRT", "unknown signal"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux.go b/vendor/golang.org/x/sys/unix/zerrors_linux.go
+new file mode 100644
+index 00000000..21973940
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux.go
+@@ -0,0 +1,2469 @@
++// Code generated by mkmerge.go; DO NOT EDIT.
++
++// +build linux
++
++package unix
++
++import "syscall"
++
++const (
++ AAFS_MAGIC = 0x5a3c69f0
++ ADFS_SUPER_MAGIC = 0xadf5
++ AFFS_SUPER_MAGIC = 0xadff
++ AFS_FS_MAGIC = 0x6b414653
++ AFS_SUPER_MAGIC = 0x5346414f
++ AF_ALG = 0x26
++ AF_APPLETALK = 0x5
++ AF_ASH = 0x12
++ AF_ATMPVC = 0x8
++ AF_ATMSVC = 0x14
++ AF_AX25 = 0x3
++ AF_BLUETOOTH = 0x1f
++ AF_BRIDGE = 0x7
++ AF_CAIF = 0x25
++ AF_CAN = 0x1d
++ AF_DECnet = 0xc
++ AF_ECONET = 0x13
++ AF_FILE = 0x1
++ AF_IB = 0x1b
++ AF_IEEE802154 = 0x24
++ AF_INET = 0x2
++ AF_INET6 = 0xa
++ AF_IPX = 0x4
++ AF_IRDA = 0x17
++ AF_ISDN = 0x22
++ AF_IUCV = 0x20
++ AF_KCM = 0x29
++ AF_KEY = 0xf
++ AF_LLC = 0x1a
++ AF_LOCAL = 0x1
++ AF_MAX = 0x2d
++ AF_MPLS = 0x1c
++ AF_NETBEUI = 0xd
++ AF_NETLINK = 0x10
++ AF_NETROM = 0x6
++ AF_NFC = 0x27
++ AF_PACKET = 0x11
++ AF_PHONET = 0x23
++ AF_PPPOX = 0x18
++ AF_QIPCRTR = 0x2a
++ AF_RDS = 0x15
++ AF_ROSE = 0xb
++ AF_ROUTE = 0x10
++ AF_RXRPC = 0x21
++ AF_SECURITY = 0xe
++ AF_SMC = 0x2b
++ AF_SNA = 0x16
++ AF_TIPC = 0x1e
++ AF_UNIX = 0x1
++ AF_UNSPEC = 0x0
++ AF_VSOCK = 0x28
++ AF_WANPIPE = 0x19
++ AF_X25 = 0x9
++ AF_XDP = 0x2c
++ ALG_OP_DECRYPT = 0x0
++ ALG_OP_ENCRYPT = 0x1
++ ALG_SET_AEAD_ASSOCLEN = 0x4
++ ALG_SET_AEAD_AUTHSIZE = 0x5
++ ALG_SET_IV = 0x2
++ ALG_SET_KEY = 0x1
++ ALG_SET_OP = 0x3
++ ANON_INODE_FS_MAGIC = 0x9041934
++ ARPHRD_6LOWPAN = 0x339
++ ARPHRD_ADAPT = 0x108
++ ARPHRD_APPLETLK = 0x8
++ ARPHRD_ARCNET = 0x7
++ ARPHRD_ASH = 0x30d
++ ARPHRD_ATM = 0x13
++ ARPHRD_AX25 = 0x3
++ ARPHRD_BIF = 0x307
++ ARPHRD_CAIF = 0x336
++ ARPHRD_CAN = 0x118
++ ARPHRD_CHAOS = 0x5
++ ARPHRD_CISCO = 0x201
++ ARPHRD_CSLIP = 0x101
++ ARPHRD_CSLIP6 = 0x103
++ ARPHRD_DDCMP = 0x205
++ ARPHRD_DLCI = 0xf
++ ARPHRD_ECONET = 0x30e
++ ARPHRD_EETHER = 0x2
++ ARPHRD_ETHER = 0x1
++ ARPHRD_EUI64 = 0x1b
++ ARPHRD_FCAL = 0x311
++ ARPHRD_FCFABRIC = 0x313
++ ARPHRD_FCPL = 0x312
++ ARPHRD_FCPP = 0x310
++ ARPHRD_FDDI = 0x306
++ ARPHRD_FRAD = 0x302
++ ARPHRD_HDLC = 0x201
++ ARPHRD_HIPPI = 0x30c
++ ARPHRD_HWX25 = 0x110
++ ARPHRD_IEEE1394 = 0x18
++ ARPHRD_IEEE802 = 0x6
++ ARPHRD_IEEE80211 = 0x321
++ ARPHRD_IEEE80211_PRISM = 0x322
++ ARPHRD_IEEE80211_RADIOTAP = 0x323
++ ARPHRD_IEEE802154 = 0x324
++ ARPHRD_IEEE802154_MONITOR = 0x325
++ ARPHRD_IEEE802_TR = 0x320
++ ARPHRD_INFINIBAND = 0x20
++ ARPHRD_IP6GRE = 0x337
++ ARPHRD_IPDDP = 0x309
++ ARPHRD_IPGRE = 0x30a
++ ARPHRD_IRDA = 0x30f
++ ARPHRD_LAPB = 0x204
++ ARPHRD_LOCALTLK = 0x305
++ ARPHRD_LOOPBACK = 0x304
++ ARPHRD_METRICOM = 0x17
++ ARPHRD_NETLINK = 0x338
++ ARPHRD_NETROM = 0x0
++ ARPHRD_NONE = 0xfffe
++ ARPHRD_PHONET = 0x334
++ ARPHRD_PHONET_PIPE = 0x335
++ ARPHRD_PIMREG = 0x30b
++ ARPHRD_PPP = 0x200
++ ARPHRD_PRONET = 0x4
++ ARPHRD_RAWHDLC = 0x206
++ ARPHRD_RAWIP = 0x207
++ ARPHRD_ROSE = 0x10e
++ ARPHRD_RSRVD = 0x104
++ ARPHRD_SIT = 0x308
++ ARPHRD_SKIP = 0x303
++ ARPHRD_SLIP = 0x100
++ ARPHRD_SLIP6 = 0x102
++ ARPHRD_TUNNEL = 0x300
++ ARPHRD_TUNNEL6 = 0x301
++ ARPHRD_VOID = 0xffff
++ ARPHRD_VSOCKMON = 0x33a
++ ARPHRD_X25 = 0x10f
++ AUTOFS_SUPER_MAGIC = 0x187
++ B0 = 0x0
++ B110 = 0x3
++ B1200 = 0x9
++ B134 = 0x4
++ B150 = 0x5
++ B1800 = 0xa
++ B19200 = 0xe
++ B200 = 0x6
++ B2400 = 0xb
++ B300 = 0x7
++ B38400 = 0xf
++ B4800 = 0xc
++ B50 = 0x1
++ B600 = 0x8
++ B75 = 0x2
++ B9600 = 0xd
++ BALLOON_KVM_MAGIC = 0x13661366
++ BDEVFS_MAGIC = 0x62646576
++ BINDERFS_SUPER_MAGIC = 0x6c6f6f70
++ BINFMTFS_MAGIC = 0x42494e4d
++ BPF_A = 0x10
++ BPF_ABS = 0x20
++ BPF_ADD = 0x0
++ BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff
++ BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38
++ BPF_ALU = 0x4
++ BPF_ALU64 = 0x7
++ BPF_AND = 0x50
++ BPF_ANY = 0x0
++ BPF_ARSH = 0xc0
++ BPF_B = 0x10
++ BPF_BUILD_ID_SIZE = 0x14
++ BPF_CALL = 0x80
++ BPF_DEVCG_ACC_MKNOD = 0x1
++ BPF_DEVCG_ACC_READ = 0x2
++ BPF_DEVCG_ACC_WRITE = 0x4
++ BPF_DEVCG_DEV_BLOCK = 0x1
++ BPF_DEVCG_DEV_CHAR = 0x2
++ BPF_DIV = 0x30
++ BPF_DW = 0x18
++ BPF_END = 0xd0
++ BPF_EXIST = 0x2
++ BPF_EXIT = 0x90
++ BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 0x1
++ BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 0x4
++ BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 0x2
++ BPF_FROM_BE = 0x8
++ BPF_FROM_LE = 0x0
++ BPF_FS_MAGIC = 0xcafe4a11
++ BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2
++ BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4
++ BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8
++ BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10
++ BPF_F_ADJ_ROOM_FIXED_GSO = 0x1
++ BPF_F_ALLOW_MULTI = 0x2
++ BPF_F_ALLOW_OVERRIDE = 0x1
++ BPF_F_ANY_ALIGNMENT = 0x2
++ BPF_F_CLONE = 0x200
++ BPF_F_CTXLEN_MASK = 0xfffff00000000
++ BPF_F_CURRENT_CPU = 0xffffffff
++ BPF_F_CURRENT_NETNS = -0x1
++ BPF_F_DONT_FRAGMENT = 0x4
++ BPF_F_FAST_STACK_CMP = 0x200
++ BPF_F_HDR_FIELD_MASK = 0xf
++ BPF_F_INDEX_MASK = 0xffffffff
++ BPF_F_INGRESS = 0x1
++ BPF_F_INVALIDATE_HASH = 0x2
++ BPF_F_LOCK = 0x4
++ BPF_F_MARK_ENFORCE = 0x40
++ BPF_F_MARK_MANGLED_0 = 0x20
++ BPF_F_MMAPABLE = 0x400
++ BPF_F_NO_COMMON_LRU = 0x2
++ BPF_F_NO_PREALLOC = 0x1
++ BPF_F_NUMA_NODE = 0x4
++ BPF_F_PSEUDO_HDR = 0x10
++ BPF_F_QUERY_EFFECTIVE = 0x1
++ BPF_F_RDONLY = 0x8
++ BPF_F_RDONLY_PROG = 0x80
++ BPF_F_RECOMPUTE_CSUM = 0x1
++ BPF_F_REPLACE = 0x4
++ BPF_F_REUSE_STACKID = 0x400
++ BPF_F_SEQ_NUMBER = 0x8
++ BPF_F_SKIP_FIELD_MASK = 0xff
++ BPF_F_STACK_BUILD_ID = 0x20
++ BPF_F_STRICT_ALIGNMENT = 0x1
++ BPF_F_SYSCTL_BASE_NAME = 0x1
++ BPF_F_TEST_RND_HI32 = 0x4
++ BPF_F_TEST_STATE_FREQ = 0x8
++ BPF_F_TUNINFO_IPV6 = 0x1
++ BPF_F_USER_BUILD_ID = 0x800
++ BPF_F_USER_STACK = 0x100
++ BPF_F_WRONLY = 0x10
++ BPF_F_WRONLY_PROG = 0x100
++ BPF_F_ZERO_CSUM_TX = 0x2
++ BPF_F_ZERO_SEED = 0x40
++ BPF_H = 0x8
++ BPF_IMM = 0x0
++ BPF_IND = 0x40
++ BPF_JA = 0x0
++ BPF_JEQ = 0x10
++ BPF_JGE = 0x30
++ BPF_JGT = 0x20
++ BPF_JLE = 0xb0
++ BPF_JLT = 0xa0
++ BPF_JMP = 0x5
++ BPF_JMP32 = 0x6
++ BPF_JNE = 0x50
++ BPF_JSET = 0x40
++ BPF_JSGE = 0x70
++ BPF_JSGT = 0x60
++ BPF_JSLE = 0xd0
++ BPF_JSLT = 0xc0
++ BPF_K = 0x0
++ BPF_LD = 0x0
++ BPF_LDX = 0x1
++ BPF_LEN = 0x80
++ BPF_LL_OFF = -0x200000
++ BPF_LSH = 0x60
++ BPF_MAJOR_VERSION = 0x1
++ BPF_MAXINSNS = 0x1000
++ BPF_MEM = 0x60
++ BPF_MEMWORDS = 0x10
++ BPF_MINOR_VERSION = 0x1
++ BPF_MISC = 0x7
++ BPF_MOD = 0x90
++ BPF_MOV = 0xb0
++ BPF_MSH = 0xa0
++ BPF_MUL = 0x20
++ BPF_NEG = 0x80
++ BPF_NET_OFF = -0x100000
++ BPF_NOEXIST = 0x1
++ BPF_OBJ_NAME_LEN = 0x10
++ BPF_OR = 0x40
++ BPF_PSEUDO_CALL = 0x1
++ BPF_PSEUDO_MAP_FD = 0x1
++ BPF_PSEUDO_MAP_VALUE = 0x2
++ BPF_RET = 0x6
++ BPF_RSH = 0x70
++ BPF_SK_STORAGE_GET_F_CREATE = 0x1
++ BPF_SOCK_OPS_ALL_CB_FLAGS = 0xf
++ BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2
++ BPF_SOCK_OPS_RTO_CB_FLAG = 0x1
++ BPF_SOCK_OPS_RTT_CB_FLAG = 0x8
++ BPF_SOCK_OPS_STATE_CB_FLAG = 0x4
++ BPF_ST = 0x2
++ BPF_STX = 0x3
++ BPF_SUB = 0x10
++ BPF_TAG_SIZE = 0x8
++ BPF_TAX = 0x0
++ BPF_TO_BE = 0x8
++ BPF_TO_LE = 0x0
++ BPF_TXA = 0x80
++ BPF_W = 0x0
++ BPF_X = 0x8
++ BPF_XADD = 0xc0
++ BPF_XOR = 0xa0
++ BRKINT = 0x2
++ BS0 = 0x0
++ BTRFS_SUPER_MAGIC = 0x9123683e
++ BTRFS_TEST_MAGIC = 0x73727279
++ CAN_BCM = 0x2
++ CAN_EFF_FLAG = 0x80000000
++ CAN_EFF_ID_BITS = 0x1d
++ CAN_EFF_MASK = 0x1fffffff
++ CAN_ERR_FLAG = 0x20000000
++ CAN_ERR_MASK = 0x1fffffff
++ CAN_INV_FILTER = 0x20000000
++ CAN_ISOTP = 0x6
++ CAN_J1939 = 0x7
++ CAN_MAX_DLC = 0x8
++ CAN_MAX_DLEN = 0x8
++ CAN_MCNET = 0x5
++ CAN_MTU = 0x10
++ CAN_NPROTO = 0x8
++ CAN_RAW = 0x1
++ CAN_RAW_FILTER_MAX = 0x200
++ CAN_RTR_FLAG = 0x40000000
++ CAN_SFF_ID_BITS = 0xb
++ CAN_SFF_MASK = 0x7ff
++ CAN_TP16 = 0x3
++ CAN_TP20 = 0x4
++ CAP_AUDIT_CONTROL = 0x1e
++ CAP_AUDIT_READ = 0x25
++ CAP_AUDIT_WRITE = 0x1d
++ CAP_BLOCK_SUSPEND = 0x24
++ CAP_CHOWN = 0x0
++ CAP_DAC_OVERRIDE = 0x1
++ CAP_DAC_READ_SEARCH = 0x2
++ CAP_FOWNER = 0x3
++ CAP_FSETID = 0x4
++ CAP_IPC_LOCK = 0xe
++ CAP_IPC_OWNER = 0xf
++ CAP_KILL = 0x5
++ CAP_LAST_CAP = 0x25
++ CAP_LEASE = 0x1c
++ CAP_LINUX_IMMUTABLE = 0x9
++ CAP_MAC_ADMIN = 0x21
++ CAP_MAC_OVERRIDE = 0x20
++ CAP_MKNOD = 0x1b
++ CAP_NET_ADMIN = 0xc
++ CAP_NET_BIND_SERVICE = 0xa
++ CAP_NET_BROADCAST = 0xb
++ CAP_NET_RAW = 0xd
++ CAP_SETFCAP = 0x1f
++ CAP_SETGID = 0x6
++ CAP_SETPCAP = 0x8
++ CAP_SETUID = 0x7
++ CAP_SYSLOG = 0x22
++ CAP_SYS_ADMIN = 0x15
++ CAP_SYS_BOOT = 0x16
++ CAP_SYS_CHROOT = 0x12
++ CAP_SYS_MODULE = 0x10
++ CAP_SYS_NICE = 0x17
++ CAP_SYS_PACCT = 0x14
++ CAP_SYS_PTRACE = 0x13
++ CAP_SYS_RAWIO = 0x11
++ CAP_SYS_RESOURCE = 0x18
++ CAP_SYS_TIME = 0x19
++ CAP_SYS_TTY_CONFIG = 0x1a
++ CAP_WAKE_ALARM = 0x23
++ CFLUSH = 0xf
++ CGROUP2_SUPER_MAGIC = 0x63677270
++ CGROUP_SUPER_MAGIC = 0x27e0eb
++ CLOCK_BOOTTIME = 0x7
++ CLOCK_BOOTTIME_ALARM = 0x9
++ CLOCK_DEFAULT = 0x0
++ CLOCK_EXT = 0x1
++ CLOCK_INT = 0x2
++ CLOCK_MONOTONIC = 0x1
++ CLOCK_MONOTONIC_COARSE = 0x6
++ CLOCK_MONOTONIC_RAW = 0x4
++ CLOCK_PROCESS_CPUTIME_ID = 0x2
++ CLOCK_REALTIME = 0x0
++ CLOCK_REALTIME_ALARM = 0x8
++ CLOCK_REALTIME_COARSE = 0x5
++ CLOCK_TAI = 0xb
++ CLOCK_THREAD_CPUTIME_ID = 0x3
++ CLOCK_TXFROMRX = 0x4
++ CLOCK_TXINT = 0x3
++ CLONE_ARGS_SIZE_VER0 = 0x40
++ CLONE_ARGS_SIZE_VER1 = 0x50
++ CLONE_CHILD_CLEARTID = 0x200000
++ CLONE_CHILD_SETTID = 0x1000000
++ CLONE_CLEAR_SIGHAND = 0x100000000
++ CLONE_DETACHED = 0x400000
++ CLONE_FILES = 0x400
++ CLONE_FS = 0x200
++ CLONE_IO = 0x80000000
++ CLONE_NEWCGROUP = 0x2000000
++ CLONE_NEWIPC = 0x8000000
++ CLONE_NEWNET = 0x40000000
++ CLONE_NEWNS = 0x20000
++ CLONE_NEWPID = 0x20000000
++ CLONE_NEWTIME = 0x80
++ CLONE_NEWUSER = 0x10000000
++ CLONE_NEWUTS = 0x4000000
++ CLONE_PARENT = 0x8000
++ CLONE_PARENT_SETTID = 0x100000
++ CLONE_PIDFD = 0x1000
++ CLONE_PTRACE = 0x2000
++ CLONE_SETTLS = 0x80000
++ CLONE_SIGHAND = 0x800
++ CLONE_SYSVSEM = 0x40000
++ CLONE_THREAD = 0x10000
++ CLONE_UNTRACED = 0x800000
++ CLONE_VFORK = 0x4000
++ CLONE_VM = 0x100
++ CMSPAR = 0x40000000
++ CODA_SUPER_MAGIC = 0x73757245
++ CR0 = 0x0
++ CRAMFS_MAGIC = 0x28cd3d45
++ CRTSCTS = 0x80000000
++ CRYPTO_MAX_NAME = 0x40
++ CRYPTO_MSG_MAX = 0x15
++ CRYPTO_NR_MSGTYPES = 0x6
++ CRYPTO_REPORT_MAXSIZE = 0x160
++ CS5 = 0x0
++ CSIGNAL = 0xff
++ CSTART = 0x11
++ CSTATUS = 0x0
++ CSTOP = 0x13
++ CSUSP = 0x1a
++ DAXFS_MAGIC = 0x64646178
++ DEBUGFS_MAGIC = 0x64626720
++ DEVLINK_CMD_ESWITCH_MODE_GET = 0x1d
++ DEVLINK_CMD_ESWITCH_MODE_SET = 0x1e
++ DEVLINK_GENL_MCGRP_CONFIG_NAME = "config"
++ DEVLINK_GENL_NAME = "devlink"
++ DEVLINK_GENL_VERSION = 0x1
++ DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX = 0x14
++ DEVPTS_SUPER_MAGIC = 0x1cd1
++ DMA_BUF_MAGIC = 0x444d4142
++ DT_BLK = 0x6
++ DT_CHR = 0x2
++ DT_DIR = 0x4
++ DT_FIFO = 0x1
++ DT_LNK = 0xa
++ DT_REG = 0x8
++ DT_SOCK = 0xc
++ DT_UNKNOWN = 0x0
++ DT_WHT = 0xe
++ ECHO = 0x8
++ ECRYPTFS_SUPER_MAGIC = 0xf15f
++ EFD_SEMAPHORE = 0x1
++ EFIVARFS_MAGIC = 0xde5e81e4
++ EFS_SUPER_MAGIC = 0x414a53
++ ENCODING_DEFAULT = 0x0
++ ENCODING_FM_MARK = 0x3
++ ENCODING_FM_SPACE = 0x4
++ ENCODING_MANCHESTER = 0x5
++ ENCODING_NRZ = 0x1
++ ENCODING_NRZI = 0x2
++ EPOLLERR = 0x8
++ EPOLLET = 0x80000000
++ EPOLLEXCLUSIVE = 0x10000000
++ EPOLLHUP = 0x10
++ EPOLLIN = 0x1
++ EPOLLMSG = 0x400
++ EPOLLONESHOT = 0x40000000
++ EPOLLOUT = 0x4
++ EPOLLPRI = 0x2
++ EPOLLRDBAND = 0x80
++ EPOLLRDHUP = 0x2000
++ EPOLLRDNORM = 0x40
++ EPOLLWAKEUP = 0x20000000
++ EPOLLWRBAND = 0x200
++ EPOLLWRNORM = 0x100
++ EPOLL_CTL_ADD = 0x1
++ EPOLL_CTL_DEL = 0x2
++ EPOLL_CTL_MOD = 0x3
++ EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2
++ ETH_P_1588 = 0x88f7
++ ETH_P_8021AD = 0x88a8
++ ETH_P_8021AH = 0x88e7
++ ETH_P_8021Q = 0x8100
++ ETH_P_80221 = 0x8917
++ ETH_P_802_2 = 0x4
++ ETH_P_802_3 = 0x1
++ ETH_P_802_3_MIN = 0x600
++ ETH_P_802_EX1 = 0x88b5
++ ETH_P_AARP = 0x80f3
++ ETH_P_AF_IUCV = 0xfbfb
++ ETH_P_ALL = 0x3
++ ETH_P_AOE = 0x88a2
++ ETH_P_ARCNET = 0x1a
++ ETH_P_ARP = 0x806
++ ETH_P_ATALK = 0x809b
++ ETH_P_ATMFATE = 0x8884
++ ETH_P_ATMMPOA = 0x884c
++ ETH_P_AX25 = 0x2
++ ETH_P_BATMAN = 0x4305
++ ETH_P_BPQ = 0x8ff
++ ETH_P_CAIF = 0xf7
++ ETH_P_CAN = 0xc
++ ETH_P_CANFD = 0xd
++ ETH_P_CONTROL = 0x16
++ ETH_P_CUST = 0x6006
++ ETH_P_DDCMP = 0x6
++ ETH_P_DEC = 0x6000
++ ETH_P_DIAG = 0x6005
++ ETH_P_DNA_DL = 0x6001
++ ETH_P_DNA_RC = 0x6002
++ ETH_P_DNA_RT = 0x6003
++ ETH_P_DSA = 0x1b
++ ETH_P_DSA_8021Q = 0xdadb
++ ETH_P_ECONET = 0x18
++ ETH_P_EDSA = 0xdada
++ ETH_P_ERSPAN = 0x88be
++ ETH_P_ERSPAN2 = 0x22eb
++ ETH_P_FCOE = 0x8906
++ ETH_P_FIP = 0x8914
++ ETH_P_HDLC = 0x19
++ ETH_P_HSR = 0x892f
++ ETH_P_IBOE = 0x8915
++ ETH_P_IEEE802154 = 0xf6
++ ETH_P_IEEEPUP = 0xa00
++ ETH_P_IEEEPUPAT = 0xa01
++ ETH_P_IFE = 0xed3e
++ ETH_P_IP = 0x800
++ ETH_P_IPV6 = 0x86dd
++ ETH_P_IPX = 0x8137
++ ETH_P_IRDA = 0x17
++ ETH_P_LAT = 0x6004
++ ETH_P_LINK_CTL = 0x886c
++ ETH_P_LLDP = 0x88cc
++ ETH_P_LOCALTALK = 0x9
++ ETH_P_LOOP = 0x60
++ ETH_P_LOOPBACK = 0x9000
++ ETH_P_MACSEC = 0x88e5
++ ETH_P_MAP = 0xf9
++ ETH_P_MOBITEX = 0x15
++ ETH_P_MPLS_MC = 0x8848
++ ETH_P_MPLS_UC = 0x8847
++ ETH_P_MVRP = 0x88f5
++ ETH_P_NCSI = 0x88f8
++ ETH_P_NSH = 0x894f
++ ETH_P_PAE = 0x888e
++ ETH_P_PAUSE = 0x8808
++ ETH_P_PHONET = 0xf5
++ ETH_P_PPPTALK = 0x10
++ ETH_P_PPP_DISC = 0x8863
++ ETH_P_PPP_MP = 0x8
++ ETH_P_PPP_SES = 0x8864
++ ETH_P_PREAUTH = 0x88c7
++ ETH_P_PRP = 0x88fb
++ ETH_P_PUP = 0x200
++ ETH_P_PUPAT = 0x201
++ ETH_P_QINQ1 = 0x9100
++ ETH_P_QINQ2 = 0x9200
++ ETH_P_QINQ3 = 0x9300
++ ETH_P_RARP = 0x8035
++ ETH_P_SCA = 0x6007
++ ETH_P_SLOW = 0x8809
++ ETH_P_SNAP = 0x5
++ ETH_P_TDLS = 0x890d
++ ETH_P_TEB = 0x6558
++ ETH_P_TIPC = 0x88ca
++ ETH_P_TRAILER = 0x1c
++ ETH_P_TR_802_2 = 0x11
++ ETH_P_TSN = 0x22f0
++ ETH_P_WAN_PPP = 0x7
++ ETH_P_WCCP = 0x883e
++ ETH_P_X25 = 0x805
++ ETH_P_XDSA = 0xf8
++ EXABYTE_ENABLE_NEST = 0xf0
++ EXT2_SUPER_MAGIC = 0xef53
++ EXT3_SUPER_MAGIC = 0xef53
++ EXT4_SUPER_MAGIC = 0xef53
++ EXTA = 0xe
++ EXTB = 0xf
++ F2FS_SUPER_MAGIC = 0xf2f52010
++ FALLOC_FL_COLLAPSE_RANGE = 0x8
++ FALLOC_FL_INSERT_RANGE = 0x20
++ FALLOC_FL_KEEP_SIZE = 0x1
++ FALLOC_FL_NO_HIDE_STALE = 0x4
++ FALLOC_FL_PUNCH_HOLE = 0x2
++ FALLOC_FL_UNSHARE_RANGE = 0x40
++ FALLOC_FL_ZERO_RANGE = 0x10
++ FANOTIFY_METADATA_VERSION = 0x3
++ FAN_ACCESS = 0x1
++ FAN_ACCESS_PERM = 0x20000
++ FAN_ALLOW = 0x1
++ FAN_ALL_CLASS_BITS = 0xc
++ FAN_ALL_EVENTS = 0x3b
++ FAN_ALL_INIT_FLAGS = 0x3f
++ FAN_ALL_MARK_FLAGS = 0xff
++ FAN_ALL_OUTGOING_EVENTS = 0x3403b
++ FAN_ALL_PERM_EVENTS = 0x30000
++ FAN_ATTRIB = 0x4
++ FAN_AUDIT = 0x10
++ FAN_CLASS_CONTENT = 0x4
++ FAN_CLASS_NOTIF = 0x0
++ FAN_CLASS_PRE_CONTENT = 0x8
++ FAN_CLOEXEC = 0x1
++ FAN_CLOSE = 0x18
++ FAN_CLOSE_NOWRITE = 0x10
++ FAN_CLOSE_WRITE = 0x8
++ FAN_CREATE = 0x100
++ FAN_DELETE = 0x200
++ FAN_DELETE_SELF = 0x400
++ FAN_DENY = 0x2
++ FAN_ENABLE_AUDIT = 0x40
++ FAN_EVENT_INFO_TYPE_FID = 0x1
++ FAN_EVENT_METADATA_LEN = 0x18
++ FAN_EVENT_ON_CHILD = 0x8000000
++ FAN_MARK_ADD = 0x1
++ FAN_MARK_DONT_FOLLOW = 0x4
++ FAN_MARK_FILESYSTEM = 0x100
++ FAN_MARK_FLUSH = 0x80
++ FAN_MARK_IGNORED_MASK = 0x20
++ FAN_MARK_IGNORED_SURV_MODIFY = 0x40
++ FAN_MARK_INODE = 0x0
++ FAN_MARK_MOUNT = 0x10
++ FAN_MARK_ONLYDIR = 0x8
++ FAN_MARK_REMOVE = 0x2
++ FAN_MODIFY = 0x2
++ FAN_MOVE = 0xc0
++ FAN_MOVED_FROM = 0x40
++ FAN_MOVED_TO = 0x80
++ FAN_MOVE_SELF = 0x800
++ FAN_NOFD = -0x1
++ FAN_NONBLOCK = 0x2
++ FAN_ONDIR = 0x40000000
++ FAN_OPEN = 0x20
++ FAN_OPEN_EXEC = 0x1000
++ FAN_OPEN_EXEC_PERM = 0x40000
++ FAN_OPEN_PERM = 0x10000
++ FAN_Q_OVERFLOW = 0x4000
++ FAN_REPORT_FID = 0x200
++ FAN_REPORT_TID = 0x100
++ FAN_UNLIMITED_MARKS = 0x20
++ FAN_UNLIMITED_QUEUE = 0x10
++ FD_CLOEXEC = 0x1
++ FD_SETSIZE = 0x400
++ FF0 = 0x0
++ FSCRYPT_KEY_DESCRIPTOR_SIZE = 0x8
++ FSCRYPT_KEY_DESC_PREFIX = "fscrypt:"
++ FSCRYPT_KEY_DESC_PREFIX_SIZE = 0x8
++ FSCRYPT_KEY_IDENTIFIER_SIZE = 0x10
++ FSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY = 0x1
++ FSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS = 0x2
++ FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR = 0x1
++ FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER = 0x2
++ FSCRYPT_KEY_STATUS_ABSENT = 0x1
++ FSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF = 0x1
++ FSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED = 0x3
++ FSCRYPT_KEY_STATUS_PRESENT = 0x2
++ FSCRYPT_MAX_KEY_SIZE = 0x40
++ FSCRYPT_MODE_ADIANTUM = 0x9
++ FSCRYPT_MODE_AES_128_CBC = 0x5
++ FSCRYPT_MODE_AES_128_CTS = 0x6
++ FSCRYPT_MODE_AES_256_CTS = 0x4
++ FSCRYPT_MODE_AES_256_XTS = 0x1
++ FSCRYPT_POLICY_FLAGS_PAD_16 = 0x2
++ FSCRYPT_POLICY_FLAGS_PAD_32 = 0x3
++ FSCRYPT_POLICY_FLAGS_PAD_4 = 0x0
++ FSCRYPT_POLICY_FLAGS_PAD_8 = 0x1
++ FSCRYPT_POLICY_FLAGS_PAD_MASK = 0x3
++ FSCRYPT_POLICY_FLAGS_VALID = 0xf
++ FSCRYPT_POLICY_FLAG_DIRECT_KEY = 0x4
++ FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 = 0x8
++ FSCRYPT_POLICY_V1 = 0x0
++ FSCRYPT_POLICY_V2 = 0x2
++ FS_ENCRYPTION_MODE_ADIANTUM = 0x9
++ FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
++ FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
++ FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
++ FS_ENCRYPTION_MODE_AES_256_CTS = 0x4
++ FS_ENCRYPTION_MODE_AES_256_GCM = 0x2
++ FS_ENCRYPTION_MODE_AES_256_XTS = 0x1
++ FS_ENCRYPTION_MODE_INVALID = 0x0
++ FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8
++ FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7
++ FS_IOC_ADD_ENCRYPTION_KEY = 0xc0506617
++ FS_IOC_GET_ENCRYPTION_KEY_STATUS = 0xc080661a
++ FS_IOC_GET_ENCRYPTION_POLICY_EX = 0xc0096616
++ FS_IOC_MEASURE_VERITY = 0xc0046686
++ FS_IOC_REMOVE_ENCRYPTION_KEY = 0xc0406618
++ FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS = 0xc0406619
++ FS_KEY_DESCRIPTOR_SIZE = 0x8
++ FS_KEY_DESC_PREFIX = "fscrypt:"
++ FS_KEY_DESC_PREFIX_SIZE = 0x8
++ FS_MAX_KEY_SIZE = 0x40
++ FS_POLICY_FLAGS_PAD_16 = 0x2
++ FS_POLICY_FLAGS_PAD_32 = 0x3
++ FS_POLICY_FLAGS_PAD_4 = 0x0
++ FS_POLICY_FLAGS_PAD_8 = 0x1
++ FS_POLICY_FLAGS_PAD_MASK = 0x3
++ FS_POLICY_FLAGS_VALID = 0xf
++ FS_VERITY_FL = 0x100000
++ FS_VERITY_HASH_ALG_SHA256 = 0x1
++ FS_VERITY_HASH_ALG_SHA512 = 0x2
++ FUTEXFS_SUPER_MAGIC = 0xbad1dea
++ F_ADD_SEALS = 0x409
++ F_DUPFD = 0x0
++ F_DUPFD_CLOEXEC = 0x406
++ F_EXLCK = 0x4
++ F_GETFD = 0x1
++ F_GETFL = 0x3
++ F_GETLEASE = 0x401
++ F_GETOWN_EX = 0x10
++ F_GETPIPE_SZ = 0x408
++ F_GETSIG = 0xb
++ F_GET_FILE_RW_HINT = 0x40d
++ F_GET_RW_HINT = 0x40b
++ F_GET_SEALS = 0x40a
++ F_LOCK = 0x1
++ F_NOTIFY = 0x402
++ F_OFD_GETLK = 0x24
++ F_OFD_SETLK = 0x25
++ F_OFD_SETLKW = 0x26
++ F_OK = 0x0
++ F_SEAL_FUTURE_WRITE = 0x10
++ F_SEAL_GROW = 0x4
++ F_SEAL_SEAL = 0x1
++ F_SEAL_SHRINK = 0x2
++ F_SEAL_WRITE = 0x8
++ F_SETFD = 0x2
++ F_SETFL = 0x4
++ F_SETLEASE = 0x400
++ F_SETOWN_EX = 0xf
++ F_SETPIPE_SZ = 0x407
++ F_SETSIG = 0xa
++ F_SET_FILE_RW_HINT = 0x40e
++ F_SET_RW_HINT = 0x40c
++ F_SHLCK = 0x8
++ F_TEST = 0x3
++ F_TLOCK = 0x2
++ F_ULOCK = 0x0
++ GENL_ADMIN_PERM = 0x1
++ GENL_CMD_CAP_DO = 0x2
++ GENL_CMD_CAP_DUMP = 0x4
++ GENL_CMD_CAP_HASPOL = 0x8
++ GENL_HDRLEN = 0x4
++ GENL_ID_CTRL = 0x10
++ GENL_ID_PMCRAID = 0x12
++ GENL_ID_VFS_DQUOT = 0x11
++ GENL_MAX_ID = 0x3ff
++ GENL_MIN_ID = 0x10
++ GENL_NAMSIZ = 0x10
++ GENL_START_ALLOC = 0x13
++ GENL_UNS_ADMIN_PERM = 0x10
++ GRND_INSECURE = 0x4
++ GRND_NONBLOCK = 0x1
++ GRND_RANDOM = 0x2
++ HDIO_DRIVE_CMD = 0x31f
++ HDIO_DRIVE_CMD_AEB = 0x31e
++ HDIO_DRIVE_CMD_HDR_SIZE = 0x4
++ HDIO_DRIVE_HOB_HDR_SIZE = 0x8
++ HDIO_DRIVE_RESET = 0x31c
++ HDIO_DRIVE_TASK = 0x31e
++ HDIO_DRIVE_TASKFILE = 0x31d
++ HDIO_DRIVE_TASK_HDR_SIZE = 0x8
++ HDIO_GETGEO = 0x301
++ HDIO_GET_32BIT = 0x309
++ HDIO_GET_ACOUSTIC = 0x30f
++ HDIO_GET_ADDRESS = 0x310
++ HDIO_GET_BUSSTATE = 0x31a
++ HDIO_GET_DMA = 0x30b
++ HDIO_GET_IDENTITY = 0x30d
++ HDIO_GET_KEEPSETTINGS = 0x308
++ HDIO_GET_MULTCOUNT = 0x304
++ HDIO_GET_NICE = 0x30c
++ HDIO_GET_NOWERR = 0x30a
++ HDIO_GET_QDMA = 0x305
++ HDIO_GET_UNMASKINTR = 0x302
++ HDIO_GET_WCACHE = 0x30e
++ HDIO_OBSOLETE_IDENTITY = 0x307
++ HDIO_SCAN_HWIF = 0x328
++ HDIO_SET_32BIT = 0x324
++ HDIO_SET_ACOUSTIC = 0x32c
++ HDIO_SET_ADDRESS = 0x32f
++ HDIO_SET_BUSSTATE = 0x32d
++ HDIO_SET_DMA = 0x326
++ HDIO_SET_KEEPSETTINGS = 0x323
++ HDIO_SET_MULTCOUNT = 0x321
++ HDIO_SET_NICE = 0x329
++ HDIO_SET_NOWERR = 0x325
++ HDIO_SET_PIO_MODE = 0x327
++ HDIO_SET_QDMA = 0x32e
++ HDIO_SET_UNMASKINTR = 0x322
++ HDIO_SET_WCACHE = 0x32b
++ HDIO_SET_XFER = 0x306
++ HDIO_TRISTATE_HWIF = 0x31b
++ HDIO_UNREGISTER_HWIF = 0x32a
++ HOSTFS_SUPER_MAGIC = 0xc0ffee
++ HPFS_SUPER_MAGIC = 0xf995e849
++ HUGETLBFS_MAGIC = 0x958458f6
++ IBSHIFT = 0x10
++ ICMPV6_FILTER = 0x1
++ ICRNL = 0x100
++ IFA_F_DADFAILED = 0x8
++ IFA_F_DEPRECATED = 0x20
++ IFA_F_HOMEADDRESS = 0x10
++ IFA_F_MANAGETEMPADDR = 0x100
++ IFA_F_MCAUTOJOIN = 0x400
++ IFA_F_NODAD = 0x2
++ IFA_F_NOPREFIXROUTE = 0x200
++ IFA_F_OPTIMISTIC = 0x4
++ IFA_F_PERMANENT = 0x80
++ IFA_F_SECONDARY = 0x1
++ IFA_F_STABLE_PRIVACY = 0x800
++ IFA_F_TEMPORARY = 0x1
++ IFA_F_TENTATIVE = 0x40
++ IFA_MAX = 0xa
++ IFF_ALLMULTI = 0x200
++ IFF_ATTACH_QUEUE = 0x200
++ IFF_AUTOMEDIA = 0x4000
++ IFF_BROADCAST = 0x2
++ IFF_DEBUG = 0x4
++ IFF_DETACH_QUEUE = 0x400
++ IFF_DORMANT = 0x20000
++ IFF_DYNAMIC = 0x8000
++ IFF_ECHO = 0x40000
++ IFF_LOOPBACK = 0x8
++ IFF_LOWER_UP = 0x10000
++ IFF_MASTER = 0x400
++ IFF_MULTICAST = 0x1000
++ IFF_MULTI_QUEUE = 0x100
++ IFF_NAPI = 0x10
++ IFF_NAPI_FRAGS = 0x20
++ IFF_NOARP = 0x80
++ IFF_NOFILTER = 0x1000
++ IFF_NOTRAILERS = 0x20
++ IFF_NO_PI = 0x1000
++ IFF_ONE_QUEUE = 0x2000
++ IFF_PERSIST = 0x800
++ IFF_POINTOPOINT = 0x10
++ IFF_PORTSEL = 0x2000
++ IFF_PROMISC = 0x100
++ IFF_RUNNING = 0x40
++ IFF_SLAVE = 0x800
++ IFF_TAP = 0x2
++ IFF_TUN = 0x1
++ IFF_TUN_EXCL = 0x8000
++ IFF_UP = 0x1
++ IFF_VNET_HDR = 0x4000
++ IFF_VOLATILE = 0x70c5a
++ IFNAMSIZ = 0x10
++ IGNBRK = 0x1
++ IGNCR = 0x80
++ IGNPAR = 0x4
++ IMAXBEL = 0x2000
++ INLCR = 0x40
++ INPCK = 0x10
++ IN_ACCESS = 0x1
++ IN_ALL_EVENTS = 0xfff
++ IN_ATTRIB = 0x4
++ IN_CLASSA_HOST = 0xffffff
++ IN_CLASSA_MAX = 0x80
++ IN_CLASSA_NET = 0xff000000
++ IN_CLASSA_NSHIFT = 0x18
++ IN_CLASSB_HOST = 0xffff
++ IN_CLASSB_MAX = 0x10000
++ IN_CLASSB_NET = 0xffff0000
++ IN_CLASSB_NSHIFT = 0x10
++ IN_CLASSC_HOST = 0xff
++ IN_CLASSC_NET = 0xffffff00
++ IN_CLASSC_NSHIFT = 0x8
++ IN_CLOSE = 0x18
++ IN_CLOSE_NOWRITE = 0x10
++ IN_CLOSE_WRITE = 0x8
++ IN_CREATE = 0x100
++ IN_DELETE = 0x200
++ IN_DELETE_SELF = 0x400
++ IN_DONT_FOLLOW = 0x2000000
++ IN_EXCL_UNLINK = 0x4000000
++ IN_IGNORED = 0x8000
++ IN_ISDIR = 0x40000000
++ IN_LOOPBACKNET = 0x7f
++ IN_MASK_ADD = 0x20000000
++ IN_MASK_CREATE = 0x10000000
++ IN_MODIFY = 0x2
++ IN_MOVE = 0xc0
++ IN_MOVED_FROM = 0x40
++ IN_MOVED_TO = 0x80
++ IN_MOVE_SELF = 0x800
++ IN_ONESHOT = 0x80000000
++ IN_ONLYDIR = 0x1000000
++ IN_OPEN = 0x20
++ IN_Q_OVERFLOW = 0x4000
++ IN_UNMOUNT = 0x2000
++ IPPROTO_AH = 0x33
++ IPPROTO_BEETPH = 0x5e
++ IPPROTO_COMP = 0x6c
++ IPPROTO_DCCP = 0x21
++ IPPROTO_DSTOPTS = 0x3c
++ IPPROTO_EGP = 0x8
++ IPPROTO_ENCAP = 0x62
++ IPPROTO_ESP = 0x32
++ IPPROTO_FRAGMENT = 0x2c
++ IPPROTO_GRE = 0x2f
++ IPPROTO_HOPOPTS = 0x0
++ IPPROTO_ICMP = 0x1
++ IPPROTO_ICMPV6 = 0x3a
++ IPPROTO_IDP = 0x16
++ IPPROTO_IGMP = 0x2
++ IPPROTO_IP = 0x0
++ IPPROTO_IPIP = 0x4
++ IPPROTO_IPV6 = 0x29
++ IPPROTO_L2TP = 0x73
++ IPPROTO_MH = 0x87
++ IPPROTO_MPLS = 0x89
++ IPPROTO_MTP = 0x5c
++ IPPROTO_NONE = 0x3b
++ IPPROTO_PIM = 0x67
++ IPPROTO_PUP = 0xc
++ IPPROTO_RAW = 0xff
++ IPPROTO_ROUTING = 0x2b
++ IPPROTO_RSVP = 0x2e
++ IPPROTO_SCTP = 0x84
++ IPPROTO_TCP = 0x6
++ IPPROTO_TP = 0x1d
++ IPPROTO_UDP = 0x11
++ IPPROTO_UDPLITE = 0x88
++ IPV6_2292DSTOPTS = 0x4
++ IPV6_2292HOPLIMIT = 0x8
++ IPV6_2292HOPOPTS = 0x3
++ IPV6_2292PKTINFO = 0x2
++ IPV6_2292PKTOPTIONS = 0x6
++ IPV6_2292RTHDR = 0x5
++ IPV6_ADDRFORM = 0x1
++ IPV6_ADDR_PREFERENCES = 0x48
++ IPV6_ADD_MEMBERSHIP = 0x14
++ IPV6_AUTHHDR = 0xa
++ IPV6_AUTOFLOWLABEL = 0x46
++ IPV6_CHECKSUM = 0x7
++ IPV6_DONTFRAG = 0x3e
++ IPV6_DROP_MEMBERSHIP = 0x15
++ IPV6_DSTOPTS = 0x3b
++ IPV6_FREEBIND = 0x4e
++ IPV6_HDRINCL = 0x24
++ IPV6_HOPLIMIT = 0x34
++ IPV6_HOPOPTS = 0x36
++ IPV6_IPSEC_POLICY = 0x22
++ IPV6_JOIN_ANYCAST = 0x1b
++ IPV6_JOIN_GROUP = 0x14
++ IPV6_LEAVE_ANYCAST = 0x1c
++ IPV6_LEAVE_GROUP = 0x15
++ IPV6_MINHOPCOUNT = 0x49
++ IPV6_MTU = 0x18
++ IPV6_MTU_DISCOVER = 0x17
++ IPV6_MULTICAST_ALL = 0x1d
++ IPV6_MULTICAST_HOPS = 0x12
++ IPV6_MULTICAST_IF = 0x11
++ IPV6_MULTICAST_LOOP = 0x13
++ IPV6_NEXTHOP = 0x9
++ IPV6_ORIGDSTADDR = 0x4a
++ IPV6_PATHMTU = 0x3d
++ IPV6_PKTINFO = 0x32
++ IPV6_PMTUDISC_DO = 0x2
++ IPV6_PMTUDISC_DONT = 0x0
++ IPV6_PMTUDISC_INTERFACE = 0x4
++ IPV6_PMTUDISC_OMIT = 0x5
++ IPV6_PMTUDISC_PROBE = 0x3
++ IPV6_PMTUDISC_WANT = 0x1
++ IPV6_RECVDSTOPTS = 0x3a
++ IPV6_RECVERR = 0x19
++ IPV6_RECVFRAGSIZE = 0x4d
++ IPV6_RECVHOPLIMIT = 0x33
++ IPV6_RECVHOPOPTS = 0x35
++ IPV6_RECVORIGDSTADDR = 0x4a
++ IPV6_RECVPATHMTU = 0x3c
++ IPV6_RECVPKTINFO = 0x31
++ IPV6_RECVRTHDR = 0x38
++ IPV6_RECVTCLASS = 0x42
++ IPV6_ROUTER_ALERT = 0x16
++ IPV6_ROUTER_ALERT_ISOLATE = 0x1e
++ IPV6_RTHDR = 0x39
++ IPV6_RTHDRDSTOPTS = 0x37
++ IPV6_RTHDR_LOOSE = 0x0
++ IPV6_RTHDR_STRICT = 0x1
++ IPV6_RTHDR_TYPE_0 = 0x0
++ IPV6_RXDSTOPTS = 0x3b
++ IPV6_RXHOPOPTS = 0x36
++ IPV6_TCLASS = 0x43
++ IPV6_TRANSPARENT = 0x4b
++ IPV6_UNICAST_HOPS = 0x10
++ IPV6_UNICAST_IF = 0x4c
++ IPV6_V6ONLY = 0x1a
++ IPV6_XFRM_POLICY = 0x23
++ IP_ADD_MEMBERSHIP = 0x23
++ IP_ADD_SOURCE_MEMBERSHIP = 0x27
++ IP_BIND_ADDRESS_NO_PORT = 0x18
++ IP_BLOCK_SOURCE = 0x26
++ IP_CHECKSUM = 0x17
++ IP_DEFAULT_MULTICAST_LOOP = 0x1
++ IP_DEFAULT_MULTICAST_TTL = 0x1
++ IP_DF = 0x4000
++ IP_DROP_MEMBERSHIP = 0x24
++ IP_DROP_SOURCE_MEMBERSHIP = 0x28
++ IP_FREEBIND = 0xf
++ IP_HDRINCL = 0x3
++ IP_IPSEC_POLICY = 0x10
++ IP_MAXPACKET = 0xffff
++ IP_MAX_MEMBERSHIPS = 0x14
++ IP_MF = 0x2000
++ IP_MINTTL = 0x15
++ IP_MSFILTER = 0x29
++ IP_MSS = 0x240
++ IP_MTU = 0xe
++ IP_MTU_DISCOVER = 0xa
++ IP_MULTICAST_ALL = 0x31
++ IP_MULTICAST_IF = 0x20
++ IP_MULTICAST_LOOP = 0x22
++ IP_MULTICAST_TTL = 0x21
++ IP_NODEFRAG = 0x16
++ IP_OFFMASK = 0x1fff
++ IP_OPTIONS = 0x4
++ IP_ORIGDSTADDR = 0x14
++ IP_PASSSEC = 0x12
++ IP_PKTINFO = 0x8
++ IP_PKTOPTIONS = 0x9
++ IP_PMTUDISC = 0xa
++ IP_PMTUDISC_DO = 0x2
++ IP_PMTUDISC_DONT = 0x0
++ IP_PMTUDISC_INTERFACE = 0x4
++ IP_PMTUDISC_OMIT = 0x5
++ IP_PMTUDISC_PROBE = 0x3
++ IP_PMTUDISC_WANT = 0x1
++ IP_RECVERR = 0xb
++ IP_RECVFRAGSIZE = 0x19
++ IP_RECVOPTS = 0x6
++ IP_RECVORIGDSTADDR = 0x14
++ IP_RECVRETOPTS = 0x7
++ IP_RECVTOS = 0xd
++ IP_RECVTTL = 0xc
++ IP_RETOPTS = 0x7
++ IP_RF = 0x8000
++ IP_ROUTER_ALERT = 0x5
++ IP_TOS = 0x1
++ IP_TRANSPARENT = 0x13
++ IP_TTL = 0x2
++ IP_UNBLOCK_SOURCE = 0x25
++ IP_UNICAST_IF = 0x32
++ IP_XFRM_POLICY = 0x11
++ ISOFS_SUPER_MAGIC = 0x9660
++ ISTRIP = 0x20
++ IUTF8 = 0x4000
++ IXANY = 0x800
++ JFFS2_SUPER_MAGIC = 0x72b6
++ KEXEC_ARCH_386 = 0x30000
++ KEXEC_ARCH_68K = 0x40000
++ KEXEC_ARCH_AARCH64 = 0xb70000
++ KEXEC_ARCH_ARM = 0x280000
++ KEXEC_ARCH_DEFAULT = 0x0
++ KEXEC_ARCH_IA_64 = 0x320000
++ KEXEC_ARCH_MASK = 0xffff0000
++ KEXEC_ARCH_MIPS = 0x80000
++ KEXEC_ARCH_MIPS_LE = 0xa0000
++ KEXEC_ARCH_PARISC = 0xf0000
++ KEXEC_ARCH_PPC = 0x140000
++ KEXEC_ARCH_PPC64 = 0x150000
++ KEXEC_ARCH_S390 = 0x160000
++ KEXEC_ARCH_SH = 0x2a0000
++ KEXEC_ARCH_X86_64 = 0x3e0000
++ KEXEC_FILE_NO_INITRAMFS = 0x4
++ KEXEC_FILE_ON_CRASH = 0x2
++ KEXEC_FILE_UNLOAD = 0x1
++ KEXEC_ON_CRASH = 0x1
++ KEXEC_PRESERVE_CONTEXT = 0x2
++ KEXEC_SEGMENT_MAX = 0x10
++ KEYCTL_ASSUME_AUTHORITY = 0x10
++ KEYCTL_CAPABILITIES = 0x1f
++ KEYCTL_CAPS0_BIG_KEY = 0x10
++ KEYCTL_CAPS0_CAPABILITIES = 0x1
++ KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4
++ KEYCTL_CAPS0_INVALIDATE = 0x20
++ KEYCTL_CAPS0_MOVE = 0x80
++ KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2
++ KEYCTL_CAPS0_PUBLIC_KEY = 0x8
++ KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40
++ KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1
++ KEYCTL_CAPS1_NS_KEY_TAG = 0x2
++ KEYCTL_CHOWN = 0x4
++ KEYCTL_CLEAR = 0x7
++ KEYCTL_DESCRIBE = 0x6
++ KEYCTL_DH_COMPUTE = 0x17
++ KEYCTL_GET_KEYRING_ID = 0x0
++ KEYCTL_GET_PERSISTENT = 0x16
++ KEYCTL_GET_SECURITY = 0x11
++ KEYCTL_INSTANTIATE = 0xc
++ KEYCTL_INSTANTIATE_IOV = 0x14
++ KEYCTL_INVALIDATE = 0x15
++ KEYCTL_JOIN_SESSION_KEYRING = 0x1
++ KEYCTL_LINK = 0x8
++ KEYCTL_MOVE = 0x1e
++ KEYCTL_MOVE_EXCL = 0x1
++ KEYCTL_NEGATE = 0xd
++ KEYCTL_PKEY_DECRYPT = 0x1a
++ KEYCTL_PKEY_ENCRYPT = 0x19
++ KEYCTL_PKEY_QUERY = 0x18
++ KEYCTL_PKEY_SIGN = 0x1b
++ KEYCTL_PKEY_VERIFY = 0x1c
++ KEYCTL_READ = 0xb
++ KEYCTL_REJECT = 0x13
++ KEYCTL_RESTRICT_KEYRING = 0x1d
++ KEYCTL_REVOKE = 0x3
++ KEYCTL_SEARCH = 0xa
++ KEYCTL_SESSION_TO_PARENT = 0x12
++ KEYCTL_SETPERM = 0x5
++ KEYCTL_SET_REQKEY_KEYRING = 0xe
++ KEYCTL_SET_TIMEOUT = 0xf
++ KEYCTL_SUPPORTS_DECRYPT = 0x2
++ KEYCTL_SUPPORTS_ENCRYPT = 0x1
++ KEYCTL_SUPPORTS_SIGN = 0x4
++ KEYCTL_SUPPORTS_VERIFY = 0x8
++ KEYCTL_UNLINK = 0x9
++ KEYCTL_UPDATE = 0x2
++ KEY_REQKEY_DEFL_DEFAULT = 0x0
++ KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6
++ KEY_REQKEY_DEFL_NO_CHANGE = -0x1
++ KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2
++ KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7
++ KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3
++ KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1
++ KEY_REQKEY_DEFL_USER_KEYRING = 0x4
++ KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
++ KEY_SPEC_GROUP_KEYRING = -0x6
++ KEY_SPEC_PROCESS_KEYRING = -0x2
++ KEY_SPEC_REQKEY_AUTH_KEY = -0x7
++ KEY_SPEC_REQUESTOR_KEYRING = -0x8
++ KEY_SPEC_SESSION_KEYRING = -0x3
++ KEY_SPEC_THREAD_KEYRING = -0x1
++ KEY_SPEC_USER_KEYRING = -0x4
++ KEY_SPEC_USER_SESSION_KEYRING = -0x5
++ LINUX_REBOOT_CMD_CAD_OFF = 0x0
++ LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
++ LINUX_REBOOT_CMD_HALT = 0xcdef0123
++ LINUX_REBOOT_CMD_KEXEC = 0x45584543
++ LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
++ LINUX_REBOOT_CMD_RESTART = 0x1234567
++ LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
++ LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
++ LINUX_REBOOT_MAGIC1 = 0xfee1dead
++ LINUX_REBOOT_MAGIC2 = 0x28121969
++ LOCK_EX = 0x2
++ LOCK_NB = 0x4
++ LOCK_SH = 0x1
++ LOCK_UN = 0x8
++ LOOP_CLR_FD = 0x4c01
++ LOOP_CTL_ADD = 0x4c80
++ LOOP_CTL_GET_FREE = 0x4c82
++ LOOP_CTL_REMOVE = 0x4c81
++ LOOP_GET_STATUS = 0x4c03
++ LOOP_GET_STATUS64 = 0x4c05
++ LOOP_SET_BLOCK_SIZE = 0x4c09
++ LOOP_SET_CAPACITY = 0x4c07
++ LOOP_SET_DIRECT_IO = 0x4c08
++ LOOP_SET_FD = 0x4c00
++ LOOP_SET_STATUS = 0x4c02
++ LOOP_SET_STATUS64 = 0x4c04
++ LO_KEY_SIZE = 0x20
++ LO_NAME_SIZE = 0x40
++ MADV_COLD = 0x14
++ MADV_DODUMP = 0x11
++ MADV_DOFORK = 0xb
++ MADV_DONTDUMP = 0x10
++ MADV_DONTFORK = 0xa
++ MADV_DONTNEED = 0x4
++ MADV_FREE = 0x8
++ MADV_HUGEPAGE = 0xe
++ MADV_HWPOISON = 0x64
++ MADV_KEEPONFORK = 0x13
++ MADV_MERGEABLE = 0xc
++ MADV_NOHUGEPAGE = 0xf
++ MADV_NORMAL = 0x0
++ MADV_PAGEOUT = 0x15
++ MADV_RANDOM = 0x1
++ MADV_REMOVE = 0x9
++ MADV_SEQUENTIAL = 0x2
++ MADV_UNMERGEABLE = 0xd
++ MADV_WILLNEED = 0x3
++ MADV_WIPEONFORK = 0x12
++ MAP_FILE = 0x0
++ MAP_FIXED = 0x10
++ MAP_FIXED_NOREPLACE = 0x100000
++ MAP_HUGE_MASK = 0x3f
++ MAP_HUGE_SHIFT = 0x1a
++ MAP_PRIVATE = 0x2
++ MAP_SHARED = 0x1
++ MAP_SHARED_VALIDATE = 0x3
++ MAP_TYPE = 0xf
++ MCAST_BLOCK_SOURCE = 0x2b
++ MCAST_EXCLUDE = 0x0
++ MCAST_INCLUDE = 0x1
++ MCAST_JOIN_GROUP = 0x2a
++ MCAST_JOIN_SOURCE_GROUP = 0x2e
++ MCAST_LEAVE_GROUP = 0x2d
++ MCAST_LEAVE_SOURCE_GROUP = 0x2f
++ MCAST_MSFILTER = 0x30
++ MCAST_UNBLOCK_SOURCE = 0x2c
++ MFD_ALLOW_SEALING = 0x2
++ MFD_CLOEXEC = 0x1
++ MFD_HUGETLB = 0x4
++ MFD_HUGE_16GB = -0x78000000
++ MFD_HUGE_16MB = 0x60000000
++ MFD_HUGE_1GB = 0x78000000
++ MFD_HUGE_1MB = 0x50000000
++ MFD_HUGE_256MB = 0x70000000
++ MFD_HUGE_2GB = 0x7c000000
++ MFD_HUGE_2MB = 0x54000000
++ MFD_HUGE_32MB = 0x64000000
++ MFD_HUGE_512KB = 0x4c000000
++ MFD_HUGE_512MB = 0x74000000
++ MFD_HUGE_64KB = 0x40000000
++ MFD_HUGE_8MB = 0x5c000000
++ MFD_HUGE_MASK = 0x3f
++ MFD_HUGE_SHIFT = 0x1a
++ MINIX2_SUPER_MAGIC = 0x2468
++ MINIX2_SUPER_MAGIC2 = 0x2478
++ MINIX3_SUPER_MAGIC = 0x4d5a
++ MINIX_SUPER_MAGIC = 0x137f
++ MINIX_SUPER_MAGIC2 = 0x138f
++ MNT_DETACH = 0x2
++ MNT_EXPIRE = 0x4
++ MNT_FORCE = 0x1
++ MODULE_INIT_IGNORE_MODVERSIONS = 0x1
++ MODULE_INIT_IGNORE_VERMAGIC = 0x2
++ MSDOS_SUPER_MAGIC = 0x4d44
++ MSG_BATCH = 0x40000
++ MSG_CMSG_CLOEXEC = 0x40000000
++ MSG_CONFIRM = 0x800
++ MSG_CTRUNC = 0x8
++ MSG_DONTROUTE = 0x4
++ MSG_DONTWAIT = 0x40
++ MSG_EOR = 0x80
++ MSG_ERRQUEUE = 0x2000
++ MSG_FASTOPEN = 0x20000000
++ MSG_FIN = 0x200
++ MSG_MORE = 0x8000
++ MSG_NOSIGNAL = 0x4000
++ MSG_OOB = 0x1
++ MSG_PEEK = 0x2
++ MSG_PROXY = 0x10
++ MSG_RST = 0x1000
++ MSG_SYN = 0x400
++ MSG_TRUNC = 0x20
++ MSG_TRYHARD = 0x4
++ MSG_WAITALL = 0x100
++ MSG_WAITFORONE = 0x10000
++ MSG_ZEROCOPY = 0x4000000
++ MS_ACTIVE = 0x40000000
++ MS_ASYNC = 0x1
++ MS_BIND = 0x1000
++ MS_BORN = 0x20000000
++ MS_DIRSYNC = 0x80
++ MS_INVALIDATE = 0x2
++ MS_I_VERSION = 0x800000
++ MS_KERNMOUNT = 0x400000
++ MS_LAZYTIME = 0x2000000
++ MS_MANDLOCK = 0x40
++ MS_MGC_MSK = 0xffff0000
++ MS_MGC_VAL = 0xc0ed0000
++ MS_MOVE = 0x2000
++ MS_NOATIME = 0x400
++ MS_NODEV = 0x4
++ MS_NODIRATIME = 0x800
++ MS_NOEXEC = 0x8
++ MS_NOREMOTELOCK = 0x8000000
++ MS_NOSEC = 0x10000000
++ MS_NOSUID = 0x2
++ MS_NOUSER = -0x80000000
++ MS_POSIXACL = 0x10000
++ MS_PRIVATE = 0x40000
++ MS_RDONLY = 0x1
++ MS_REC = 0x4000
++ MS_RELATIME = 0x200000
++ MS_REMOUNT = 0x20
++ MS_RMT_MASK = 0x2800051
++ MS_SHARED = 0x100000
++ MS_SILENT = 0x8000
++ MS_SLAVE = 0x80000
++ MS_STRICTATIME = 0x1000000
++ MS_SUBMOUNT = 0x4000000
++ MS_SYNC = 0x4
++ MS_SYNCHRONOUS = 0x10
++ MS_UNBINDABLE = 0x20000
++ MS_VERBOSE = 0x8000
++ MTD_INODE_FS_MAGIC = 0x11307854
++ NAME_MAX = 0xff
++ NCP_SUPER_MAGIC = 0x564c
++ NETLINK_ADD_MEMBERSHIP = 0x1
++ NETLINK_AUDIT = 0x9
++ NETLINK_BROADCAST_ERROR = 0x4
++ NETLINK_CAP_ACK = 0xa
++ NETLINK_CONNECTOR = 0xb
++ NETLINK_CRYPTO = 0x15
++ NETLINK_DNRTMSG = 0xe
++ NETLINK_DROP_MEMBERSHIP = 0x2
++ NETLINK_ECRYPTFS = 0x13
++ NETLINK_EXT_ACK = 0xb
++ NETLINK_FIB_LOOKUP = 0xa
++ NETLINK_FIREWALL = 0x3
++ NETLINK_GENERIC = 0x10
++ NETLINK_GET_STRICT_CHK = 0xc
++ NETLINK_INET_DIAG = 0x4
++ NETLINK_IP6_FW = 0xd
++ NETLINK_ISCSI = 0x8
++ NETLINK_KOBJECT_UEVENT = 0xf
++ NETLINK_LISTEN_ALL_NSID = 0x8
++ NETLINK_LIST_MEMBERSHIPS = 0x9
++ NETLINK_NETFILTER = 0xc
++ NETLINK_NFLOG = 0x5
++ NETLINK_NO_ENOBUFS = 0x5
++ NETLINK_PKTINFO = 0x3
++ NETLINK_RDMA = 0x14
++ NETLINK_ROUTE = 0x0
++ NETLINK_RX_RING = 0x6
++ NETLINK_SCSITRANSPORT = 0x12
++ NETLINK_SELINUX = 0x7
++ NETLINK_SMC = 0x16
++ NETLINK_SOCK_DIAG = 0x4
++ NETLINK_TX_RING = 0x7
++ NETLINK_UNUSED = 0x1
++ NETLINK_USERSOCK = 0x2
++ NETLINK_XFRM = 0x6
++ NETNSA_MAX = 0x5
++ NETNSA_NSID_NOT_ASSIGNED = -0x1
++ NFNETLINK_V0 = 0x0
++ NFNLGRP_ACCT_QUOTA = 0x8
++ NFNLGRP_CONNTRACK_DESTROY = 0x3
++ NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6
++ NFNLGRP_CONNTRACK_EXP_NEW = 0x4
++ NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5
++ NFNLGRP_CONNTRACK_NEW = 0x1
++ NFNLGRP_CONNTRACK_UPDATE = 0x2
++ NFNLGRP_MAX = 0x9
++ NFNLGRP_NFTABLES = 0x7
++ NFNLGRP_NFTRACE = 0x9
++ NFNLGRP_NONE = 0x0
++ NFNL_BATCH_MAX = 0x1
++ NFNL_MSG_BATCH_BEGIN = 0x10
++ NFNL_MSG_BATCH_END = 0x11
++ NFNL_NFA_NEST = 0x8000
++ NFNL_SUBSYS_ACCT = 0x7
++ NFNL_SUBSYS_COUNT = 0xc
++ NFNL_SUBSYS_CTHELPER = 0x9
++ NFNL_SUBSYS_CTNETLINK = 0x1
++ NFNL_SUBSYS_CTNETLINK_EXP = 0x2
++ NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8
++ NFNL_SUBSYS_IPSET = 0x6
++ NFNL_SUBSYS_NFTABLES = 0xa
++ NFNL_SUBSYS_NFT_COMPAT = 0xb
++ NFNL_SUBSYS_NONE = 0x0
++ NFNL_SUBSYS_OSF = 0x5
++ NFNL_SUBSYS_QUEUE = 0x3
++ NFNL_SUBSYS_ULOG = 0x4
++ NFS_SUPER_MAGIC = 0x6969
++ NILFS_SUPER_MAGIC = 0x3434
++ NL0 = 0x0
++ NL1 = 0x100
++ NLA_ALIGNTO = 0x4
++ NLA_F_NESTED = 0x8000
++ NLA_F_NET_BYTEORDER = 0x4000
++ NLA_HDRLEN = 0x4
++ NLMSG_ALIGNTO = 0x4
++ NLMSG_DONE = 0x3
++ NLMSG_ERROR = 0x2
++ NLMSG_HDRLEN = 0x10
++ NLMSG_MIN_TYPE = 0x10
++ NLMSG_NOOP = 0x1
++ NLMSG_OVERRUN = 0x4
++ NLM_F_ACK = 0x4
++ NLM_F_ACK_TLVS = 0x200
++ NLM_F_APPEND = 0x800
++ NLM_F_ATOMIC = 0x400
++ NLM_F_CAPPED = 0x100
++ NLM_F_CREATE = 0x400
++ NLM_F_DUMP = 0x300
++ NLM_F_DUMP_FILTERED = 0x20
++ NLM_F_DUMP_INTR = 0x10
++ NLM_F_ECHO = 0x8
++ NLM_F_EXCL = 0x200
++ NLM_F_MATCH = 0x200
++ NLM_F_MULTI = 0x2
++ NLM_F_NONREC = 0x100
++ NLM_F_REPLACE = 0x100
++ NLM_F_REQUEST = 0x1
++ NLM_F_ROOT = 0x100
++ NSFS_MAGIC = 0x6e736673
++ OCFS2_SUPER_MAGIC = 0x7461636f
++ OCRNL = 0x8
++ OFDEL = 0x80
++ OFILL = 0x40
++ ONLRET = 0x20
++ ONOCR = 0x10
++ OPENPROM_SUPER_MAGIC = 0x9fa1
++ OPOST = 0x1
++ OVERLAYFS_SUPER_MAGIC = 0x794c7630
++ O_ACCMODE = 0x3
++ O_RDONLY = 0x0
++ O_RDWR = 0x2
++ O_WRONLY = 0x1
++ PACKET_ADD_MEMBERSHIP = 0x1
++ PACKET_AUXDATA = 0x8
++ PACKET_BROADCAST = 0x1
++ PACKET_COPY_THRESH = 0x7
++ PACKET_DROP_MEMBERSHIP = 0x2
++ PACKET_FANOUT = 0x12
++ PACKET_FANOUT_CBPF = 0x6
++ PACKET_FANOUT_CPU = 0x2
++ PACKET_FANOUT_DATA = 0x16
++ PACKET_FANOUT_EBPF = 0x7
++ PACKET_FANOUT_FLAG_DEFRAG = 0x8000
++ PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
++ PACKET_FANOUT_FLAG_UNIQUEID = 0x2000
++ PACKET_FANOUT_HASH = 0x0
++ PACKET_FANOUT_LB = 0x1
++ PACKET_FANOUT_QM = 0x5
++ PACKET_FANOUT_RND = 0x4
++ PACKET_FANOUT_ROLLOVER = 0x3
++ PACKET_FASTROUTE = 0x6
++ PACKET_HDRLEN = 0xb
++ PACKET_HOST = 0x0
++ PACKET_IGNORE_OUTGOING = 0x17
++ PACKET_KERNEL = 0x7
++ PACKET_LOOPBACK = 0x5
++ PACKET_LOSS = 0xe
++ PACKET_MR_ALLMULTI = 0x2
++ PACKET_MR_MULTICAST = 0x0
++ PACKET_MR_PROMISC = 0x1
++ PACKET_MR_UNICAST = 0x3
++ PACKET_MULTICAST = 0x2
++ PACKET_ORIGDEV = 0x9
++ PACKET_OTHERHOST = 0x3
++ PACKET_OUTGOING = 0x4
++ PACKET_QDISC_BYPASS = 0x14
++ PACKET_RECV_OUTPUT = 0x3
++ PACKET_RESERVE = 0xc
++ PACKET_ROLLOVER_STATS = 0x15
++ PACKET_RX_RING = 0x5
++ PACKET_STATISTICS = 0x6
++ PACKET_TIMESTAMP = 0x11
++ PACKET_TX_HAS_OFF = 0x13
++ PACKET_TX_RING = 0xd
++ PACKET_TX_TIMESTAMP = 0x10
++ PACKET_USER = 0x6
++ PACKET_VERSION = 0xa
++ PACKET_VNET_HDR = 0xf
++ PARITY_CRC16_PR0 = 0x2
++ PARITY_CRC16_PR0_CCITT = 0x4
++ PARITY_CRC16_PR1 = 0x3
++ PARITY_CRC16_PR1_CCITT = 0x5
++ PARITY_CRC32_PR0_CCITT = 0x6
++ PARITY_CRC32_PR1_CCITT = 0x7
++ PARITY_DEFAULT = 0x0
++ PARITY_NONE = 0x1
++ PARMRK = 0x8
++ PIPEFS_MAGIC = 0x50495045
++ PPC_CMM_MAGIC = 0xc7571590
++ PPPIOCGNPMODE = 0xc008744c
++ PPPIOCNEWUNIT = 0xc004743e
++ PRIO_PGRP = 0x1
++ PRIO_PROCESS = 0x0
++ PRIO_USER = 0x2
++ PROC_SUPER_MAGIC = 0x9fa0
++ PROT_EXEC = 0x4
++ PROT_GROWSDOWN = 0x1000000
++ PROT_GROWSUP = 0x2000000
++ PROT_NONE = 0x0
++ PROT_READ = 0x1
++ PROT_WRITE = 0x2
++ PR_CAPBSET_DROP = 0x18
++ PR_CAPBSET_READ = 0x17
++ PR_CAP_AMBIENT = 0x2f
++ PR_CAP_AMBIENT_CLEAR_ALL = 0x4
++ PR_CAP_AMBIENT_IS_SET = 0x1
++ PR_CAP_AMBIENT_LOWER = 0x3
++ PR_CAP_AMBIENT_RAISE = 0x2
++ PR_ENDIAN_BIG = 0x0
++ PR_ENDIAN_LITTLE = 0x1
++ PR_ENDIAN_PPC_LITTLE = 0x2
++ PR_FPEMU_NOPRINT = 0x1
++ PR_FPEMU_SIGFPE = 0x2
++ PR_FP_EXC_ASYNC = 0x2
++ PR_FP_EXC_DISABLED = 0x0
++ PR_FP_EXC_DIV = 0x10000
++ PR_FP_EXC_INV = 0x100000
++ PR_FP_EXC_NONRECOV = 0x1
++ PR_FP_EXC_OVF = 0x20000
++ PR_FP_EXC_PRECISE = 0x3
++ PR_FP_EXC_RES = 0x80000
++ PR_FP_EXC_SW_ENABLE = 0x80
++ PR_FP_EXC_UND = 0x40000
++ PR_FP_MODE_FR = 0x1
++ PR_FP_MODE_FRE = 0x2
++ PR_GET_CHILD_SUBREAPER = 0x25
++ PR_GET_DUMPABLE = 0x3
++ PR_GET_ENDIAN = 0x13
++ PR_GET_FPEMU = 0x9
++ PR_GET_FPEXC = 0xb
++ PR_GET_FP_MODE = 0x2e
++ PR_GET_IO_FLUSHER = 0x3a
++ PR_GET_KEEPCAPS = 0x7
++ PR_GET_NAME = 0x10
++ PR_GET_NO_NEW_PRIVS = 0x27
++ PR_GET_PDEATHSIG = 0x2
++ PR_GET_SECCOMP = 0x15
++ PR_GET_SECUREBITS = 0x1b
++ PR_GET_SPECULATION_CTRL = 0x34
++ PR_GET_TAGGED_ADDR_CTRL = 0x38
++ PR_GET_THP_DISABLE = 0x2a
++ PR_GET_TID_ADDRESS = 0x28
++ PR_GET_TIMERSLACK = 0x1e
++ PR_GET_TIMING = 0xd
++ PR_GET_TSC = 0x19
++ PR_GET_UNALIGN = 0x5
++ PR_MCE_KILL = 0x21
++ PR_MCE_KILL_CLEAR = 0x0
++ PR_MCE_KILL_DEFAULT = 0x2
++ PR_MCE_KILL_EARLY = 0x1
++ PR_MCE_KILL_GET = 0x22
++ PR_MCE_KILL_LATE = 0x0
++ PR_MCE_KILL_SET = 0x1
++ PR_MPX_DISABLE_MANAGEMENT = 0x2c
++ PR_MPX_ENABLE_MANAGEMENT = 0x2b
++ PR_PAC_APDAKEY = 0x4
++ PR_PAC_APDBKEY = 0x8
++ PR_PAC_APGAKEY = 0x10
++ PR_PAC_APIAKEY = 0x1
++ PR_PAC_APIBKEY = 0x2
++ PR_PAC_RESET_KEYS = 0x36
++ PR_SET_CHILD_SUBREAPER = 0x24
++ PR_SET_DUMPABLE = 0x4
++ PR_SET_ENDIAN = 0x14
++ PR_SET_FPEMU = 0xa
++ PR_SET_FPEXC = 0xc
++ PR_SET_FP_MODE = 0x2d
++ PR_SET_IO_FLUSHER = 0x39
++ PR_SET_KEEPCAPS = 0x8
++ PR_SET_MM = 0x23
++ PR_SET_MM_ARG_END = 0x9
++ PR_SET_MM_ARG_START = 0x8
++ PR_SET_MM_AUXV = 0xc
++ PR_SET_MM_BRK = 0x7
++ PR_SET_MM_END_CODE = 0x2
++ PR_SET_MM_END_DATA = 0x4
++ PR_SET_MM_ENV_END = 0xb
++ PR_SET_MM_ENV_START = 0xa
++ PR_SET_MM_EXE_FILE = 0xd
++ PR_SET_MM_MAP = 0xe
++ PR_SET_MM_MAP_SIZE = 0xf
++ PR_SET_MM_START_BRK = 0x6
++ PR_SET_MM_START_CODE = 0x1
++ PR_SET_MM_START_DATA = 0x3
++ PR_SET_MM_START_STACK = 0x5
++ PR_SET_NAME = 0xf
++ PR_SET_NO_NEW_PRIVS = 0x26
++ PR_SET_PDEATHSIG = 0x1
++ PR_SET_PTRACER = 0x59616d61
++ PR_SET_SECCOMP = 0x16
++ PR_SET_SECUREBITS = 0x1c
++ PR_SET_SPECULATION_CTRL = 0x35
++ PR_SET_TAGGED_ADDR_CTRL = 0x37
++ PR_SET_THP_DISABLE = 0x29
++ PR_SET_TIMERSLACK = 0x1d
++ PR_SET_TIMING = 0xe
++ PR_SET_TSC = 0x1a
++ PR_SET_UNALIGN = 0x6
++ PR_SPEC_DISABLE = 0x4
++ PR_SPEC_DISABLE_NOEXEC = 0x10
++ PR_SPEC_ENABLE = 0x2
++ PR_SPEC_FORCE_DISABLE = 0x8
++ PR_SPEC_INDIRECT_BRANCH = 0x1
++ PR_SPEC_NOT_AFFECTED = 0x0
++ PR_SPEC_PRCTL = 0x1
++ PR_SPEC_STORE_BYPASS = 0x0
++ PR_SVE_GET_VL = 0x33
++ PR_SVE_SET_VL = 0x32
++ PR_SVE_SET_VL_ONEXEC = 0x40000
++ PR_SVE_VL_INHERIT = 0x20000
++ PR_SVE_VL_LEN_MASK = 0xffff
++ PR_TAGGED_ADDR_ENABLE = 0x1
++ PR_TASK_PERF_EVENTS_DISABLE = 0x1f
++ PR_TASK_PERF_EVENTS_ENABLE = 0x20
++ PR_TIMING_STATISTICAL = 0x0
++ PR_TIMING_TIMESTAMP = 0x1
++ PR_TSC_ENABLE = 0x1
++ PR_TSC_SIGSEGV = 0x2
++ PR_UNALIGN_NOPRINT = 0x1
++ PR_UNALIGN_SIGBUS = 0x2
++ PSTOREFS_MAGIC = 0x6165676c
++ PTRACE_ATTACH = 0x10
++ PTRACE_CONT = 0x7
++ PTRACE_DETACH = 0x11
++ PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1
++ PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2
++ PTRACE_EVENT_CLONE = 0x3
++ PTRACE_EVENT_EXEC = 0x4
++ PTRACE_EVENT_EXIT = 0x6
++ PTRACE_EVENT_FORK = 0x1
++ PTRACE_EVENT_SECCOMP = 0x7
++ PTRACE_EVENT_STOP = 0x80
++ PTRACE_EVENT_VFORK = 0x2
++ PTRACE_EVENT_VFORK_DONE = 0x5
++ PTRACE_GETEVENTMSG = 0x4201
++ PTRACE_GETREGS = 0xc
++ PTRACE_GETREGSET = 0x4204
++ PTRACE_GETSIGINFO = 0x4202
++ PTRACE_GETSIGMASK = 0x420a
++ PTRACE_GET_SYSCALL_INFO = 0x420e
++ PTRACE_INTERRUPT = 0x4207
++ PTRACE_KILL = 0x8
++ PTRACE_LISTEN = 0x4208
++ PTRACE_O_EXITKILL = 0x100000
++ PTRACE_O_MASK = 0x3000ff
++ PTRACE_O_SUSPEND_SECCOMP = 0x200000
++ PTRACE_O_TRACECLONE = 0x8
++ PTRACE_O_TRACEEXEC = 0x10
++ PTRACE_O_TRACEEXIT = 0x40
++ PTRACE_O_TRACEFORK = 0x2
++ PTRACE_O_TRACESECCOMP = 0x80
++ PTRACE_O_TRACESYSGOOD = 0x1
++ PTRACE_O_TRACEVFORK = 0x4
++ PTRACE_O_TRACEVFORKDONE = 0x20
++ PTRACE_PEEKDATA = 0x2
++ PTRACE_PEEKSIGINFO = 0x4209
++ PTRACE_PEEKSIGINFO_SHARED = 0x1
++ PTRACE_PEEKTEXT = 0x1
++ PTRACE_PEEKUSR = 0x3
++ PTRACE_POKEDATA = 0x5
++ PTRACE_POKETEXT = 0x4
++ PTRACE_POKEUSR = 0x6
++ PTRACE_SECCOMP_GET_FILTER = 0x420c
++ PTRACE_SECCOMP_GET_METADATA = 0x420d
++ PTRACE_SEIZE = 0x4206
++ PTRACE_SETOPTIONS = 0x4200
++ PTRACE_SETREGS = 0xd
++ PTRACE_SETREGSET = 0x4205
++ PTRACE_SETSIGINFO = 0x4203
++ PTRACE_SETSIGMASK = 0x420b
++ PTRACE_SINGLESTEP = 0x9
++ PTRACE_SYSCALL = 0x18
++ PTRACE_SYSCALL_INFO_ENTRY = 0x1
++ PTRACE_SYSCALL_INFO_EXIT = 0x2
++ PTRACE_SYSCALL_INFO_NONE = 0x0
++ PTRACE_SYSCALL_INFO_SECCOMP = 0x3
++ PTRACE_TRACEME = 0x0
++ QNX4_SUPER_MAGIC = 0x2f
++ QNX6_SUPER_MAGIC = 0x68191122
++ RAMFS_MAGIC = 0x858458f6
++ RDTGROUP_SUPER_MAGIC = 0x7655821
++ REISERFS_SUPER_MAGIC = 0x52654973
++ RENAME_EXCHANGE = 0x2
++ RENAME_NOREPLACE = 0x1
++ RENAME_WHITEOUT = 0x4
++ RLIMIT_CORE = 0x4
++ RLIMIT_CPU = 0x0
++ RLIMIT_DATA = 0x2
++ RLIMIT_FSIZE = 0x1
++ RLIMIT_LOCKS = 0xa
++ RLIMIT_MSGQUEUE = 0xc
++ RLIMIT_NICE = 0xd
++ RLIMIT_RTPRIO = 0xe
++ RLIMIT_RTTIME = 0xf
++ RLIMIT_SIGPENDING = 0xb
++ RLIMIT_STACK = 0x3
++ RLIM_INFINITY = 0xffffffffffffffff
++ RTAX_ADVMSS = 0x8
++ RTAX_CC_ALGO = 0x10
++ RTAX_CWND = 0x7
++ RTAX_FASTOPEN_NO_COOKIE = 0x11
++ RTAX_FEATURES = 0xc
++ RTAX_FEATURE_ALLFRAG = 0x8
++ RTAX_FEATURE_ECN = 0x1
++ RTAX_FEATURE_MASK = 0xf
++ RTAX_FEATURE_SACK = 0x2
++ RTAX_FEATURE_TIMESTAMP = 0x4
++ RTAX_HOPLIMIT = 0xa
++ RTAX_INITCWND = 0xb
++ RTAX_INITRWND = 0xe
++ RTAX_LOCK = 0x1
++ RTAX_MAX = 0x11
++ RTAX_MTU = 0x2
++ RTAX_QUICKACK = 0xf
++ RTAX_REORDERING = 0x9
++ RTAX_RTO_MIN = 0xd
++ RTAX_RTT = 0x4
++ RTAX_RTTVAR = 0x5
++ RTAX_SSTHRESH = 0x6
++ RTAX_UNSPEC = 0x0
++ RTAX_WINDOW = 0x3
++ RTA_ALIGNTO = 0x4
++ RTA_MAX = 0x1e
++ RTCF_DIRECTSRC = 0x4000000
++ RTCF_DOREDIRECT = 0x1000000
++ RTCF_LOG = 0x2000000
++ RTCF_MASQ = 0x400000
++ RTCF_NAT = 0x800000
++ RTCF_VALVE = 0x200000
++ RTC_AF = 0x20
++ RTC_IRQF = 0x80
++ RTC_MAX_FREQ = 0x2000
++ RTC_PF = 0x40
++ RTC_UF = 0x10
++ RTF_ADDRCLASSMASK = 0xf8000000
++ RTF_ADDRCONF = 0x40000
++ RTF_ALLONLINK = 0x20000
++ RTF_BROADCAST = 0x10000000
++ RTF_CACHE = 0x1000000
++ RTF_DEFAULT = 0x10000
++ RTF_DYNAMIC = 0x10
++ RTF_FLOW = 0x2000000
++ RTF_GATEWAY = 0x2
++ RTF_HOST = 0x4
++ RTF_INTERFACE = 0x40000000
++ RTF_IRTT = 0x100
++ RTF_LINKRT = 0x100000
++ RTF_LOCAL = 0x80000000
++ RTF_MODIFIED = 0x20
++ RTF_MSS = 0x40
++ RTF_MTU = 0x40
++ RTF_MULTICAST = 0x20000000
++ RTF_NAT = 0x8000000
++ RTF_NOFORWARD = 0x1000
++ RTF_NONEXTHOP = 0x200000
++ RTF_NOPMTUDISC = 0x4000
++ RTF_POLICY = 0x4000000
++ RTF_REINSTATE = 0x8
++ RTF_REJECT = 0x200
++ RTF_STATIC = 0x400
++ RTF_THROW = 0x2000
++ RTF_UP = 0x1
++ RTF_WINDOW = 0x80
++ RTF_XRESOLVE = 0x800
++ RTMGRP_DECnet_IFADDR = 0x1000
++ RTMGRP_DECnet_ROUTE = 0x4000
++ RTMGRP_IPV4_IFADDR = 0x10
++ RTMGRP_IPV4_MROUTE = 0x20
++ RTMGRP_IPV4_ROUTE = 0x40
++ RTMGRP_IPV4_RULE = 0x80
++ RTMGRP_IPV6_IFADDR = 0x100
++ RTMGRP_IPV6_IFINFO = 0x800
++ RTMGRP_IPV6_MROUTE = 0x200
++ RTMGRP_IPV6_PREFIX = 0x20000
++ RTMGRP_IPV6_ROUTE = 0x400
++ RTMGRP_LINK = 0x1
++ RTMGRP_NEIGH = 0x4
++ RTMGRP_NOTIFY = 0x2
++ RTMGRP_TC = 0x8
++ RTM_BASE = 0x10
++ RTM_DELACTION = 0x31
++ RTM_DELADDR = 0x15
++ RTM_DELADDRLABEL = 0x49
++ RTM_DELCHAIN = 0x65
++ RTM_DELLINK = 0x11
++ RTM_DELLINKPROP = 0x6d
++ RTM_DELMDB = 0x55
++ RTM_DELNEIGH = 0x1d
++ RTM_DELNETCONF = 0x51
++ RTM_DELNEXTHOP = 0x69
++ RTM_DELNSID = 0x59
++ RTM_DELQDISC = 0x25
++ RTM_DELROUTE = 0x19
++ RTM_DELRULE = 0x21
++ RTM_DELTCLASS = 0x29
++ RTM_DELTFILTER = 0x2d
++ RTM_DELVLAN = 0x71
++ RTM_F_CLONED = 0x200
++ RTM_F_EQUALIZE = 0x400
++ RTM_F_FIB_MATCH = 0x2000
++ RTM_F_LOOKUP_TABLE = 0x1000
++ RTM_F_NOTIFY = 0x100
++ RTM_F_OFFLOAD = 0x4000
++ RTM_F_PREFIX = 0x800
++ RTM_F_TRAP = 0x8000
++ RTM_GETACTION = 0x32
++ RTM_GETADDR = 0x16
++ RTM_GETADDRLABEL = 0x4a
++ RTM_GETANYCAST = 0x3e
++ RTM_GETCHAIN = 0x66
++ RTM_GETDCB = 0x4e
++ RTM_GETLINK = 0x12
++ RTM_GETLINKPROP = 0x6e
++ RTM_GETMDB = 0x56
++ RTM_GETMULTICAST = 0x3a
++ RTM_GETNEIGH = 0x1e
++ RTM_GETNEIGHTBL = 0x42
++ RTM_GETNETCONF = 0x52
++ RTM_GETNEXTHOP = 0x6a
++ RTM_GETNSID = 0x5a
++ RTM_GETQDISC = 0x26
++ RTM_GETROUTE = 0x1a
++ RTM_GETRULE = 0x22
++ RTM_GETSTATS = 0x5e
++ RTM_GETTCLASS = 0x2a
++ RTM_GETTFILTER = 0x2e
++ RTM_GETVLAN = 0x72
++ RTM_MAX = 0x73
++ RTM_NEWACTION = 0x30
++ RTM_NEWADDR = 0x14
++ RTM_NEWADDRLABEL = 0x48
++ RTM_NEWCACHEREPORT = 0x60
++ RTM_NEWCHAIN = 0x64
++ RTM_NEWLINK = 0x10
++ RTM_NEWLINKPROP = 0x6c
++ RTM_NEWMDB = 0x54
++ RTM_NEWNDUSEROPT = 0x44
++ RTM_NEWNEIGH = 0x1c
++ RTM_NEWNEIGHTBL = 0x40
++ RTM_NEWNETCONF = 0x50
++ RTM_NEWNEXTHOP = 0x68
++ RTM_NEWNSID = 0x58
++ RTM_NEWNVLAN = 0x70
++ RTM_NEWPREFIX = 0x34
++ RTM_NEWQDISC = 0x24
++ RTM_NEWROUTE = 0x18
++ RTM_NEWRULE = 0x20
++ RTM_NEWSTATS = 0x5c
++ RTM_NEWTCLASS = 0x28
++ RTM_NEWTFILTER = 0x2c
++ RTM_NR_FAMILIES = 0x19
++ RTM_NR_MSGTYPES = 0x64
++ RTM_SETDCB = 0x4f
++ RTM_SETLINK = 0x13
++ RTM_SETNEIGHTBL = 0x43
++ RTNH_ALIGNTO = 0x4
++ RTNH_COMPARE_MASK = 0x19
++ RTNH_F_DEAD = 0x1
++ RTNH_F_LINKDOWN = 0x10
++ RTNH_F_OFFLOAD = 0x8
++ RTNH_F_ONLINK = 0x4
++ RTNH_F_PERVASIVE = 0x2
++ RTNH_F_UNRESOLVED = 0x20
++ RTN_MAX = 0xb
++ RTPROT_BABEL = 0x2a
++ RTPROT_BGP = 0xba
++ RTPROT_BIRD = 0xc
++ RTPROT_BOOT = 0x3
++ RTPROT_DHCP = 0x10
++ RTPROT_DNROUTED = 0xd
++ RTPROT_EIGRP = 0xc0
++ RTPROT_GATED = 0x8
++ RTPROT_ISIS = 0xbb
++ RTPROT_KERNEL = 0x2
++ RTPROT_MROUTED = 0x11
++ RTPROT_MRT = 0xa
++ RTPROT_NTK = 0xf
++ RTPROT_OSPF = 0xbc
++ RTPROT_RA = 0x9
++ RTPROT_REDIRECT = 0x1
++ RTPROT_RIP = 0xbd
++ RTPROT_STATIC = 0x4
++ RTPROT_UNSPEC = 0x0
++ RTPROT_XORP = 0xe
++ RTPROT_ZEBRA = 0xb
++ RT_CLASS_DEFAULT = 0xfd
++ RT_CLASS_LOCAL = 0xff
++ RT_CLASS_MAIN = 0xfe
++ RT_CLASS_MAX = 0xff
++ RT_CLASS_UNSPEC = 0x0
++ RUSAGE_CHILDREN = -0x1
++ RUSAGE_SELF = 0x0
++ RUSAGE_THREAD = 0x1
++ RWF_APPEND = 0x10
++ RWF_DSYNC = 0x2
++ RWF_HIPRI = 0x1
++ RWF_NOWAIT = 0x8
++ RWF_SUPPORTED = 0x1f
++ RWF_SYNC = 0x4
++ RWF_WRITE_LIFE_NOT_SET = 0x0
++ SCM_CREDENTIALS = 0x2
++ SCM_RIGHTS = 0x1
++ SCM_TIMESTAMP = 0x1d
++ SC_LOG_FLUSH = 0x100000
++ SECCOMP_MODE_DISABLED = 0x0
++ SECCOMP_MODE_FILTER = 0x2
++ SECCOMP_MODE_STRICT = 0x1
++ SECURITYFS_MAGIC = 0x73636673
++ SELINUX_MAGIC = 0xf97cff8c
++ SHUT_RD = 0x0
++ SHUT_RDWR = 0x2
++ SHUT_WR = 0x1
++ SIOCADDDLCI = 0x8980
++ SIOCADDMULTI = 0x8931
++ SIOCADDRT = 0x890b
++ SIOCBONDCHANGEACTIVE = 0x8995
++ SIOCBONDENSLAVE = 0x8990
++ SIOCBONDINFOQUERY = 0x8994
++ SIOCBONDRELEASE = 0x8991
++ SIOCBONDSETHWADDR = 0x8992
++ SIOCBONDSLAVEINFOQUERY = 0x8993
++ SIOCBRADDBR = 0x89a0
++ SIOCBRADDIF = 0x89a2
++ SIOCBRDELBR = 0x89a1
++ SIOCBRDELIF = 0x89a3
++ SIOCDARP = 0x8953
++ SIOCDELDLCI = 0x8981
++ SIOCDELMULTI = 0x8932
++ SIOCDELRT = 0x890c
++ SIOCDEVPRIVATE = 0x89f0
++ SIOCDIFADDR = 0x8936
++ SIOCDRARP = 0x8960
++ SIOCETHTOOL = 0x8946
++ SIOCGARP = 0x8954
++ SIOCGETLINKNAME = 0x89e0
++ SIOCGETNODEID = 0x89e1
++ SIOCGHWTSTAMP = 0x89b1
++ SIOCGIFADDR = 0x8915
++ SIOCGIFBR = 0x8940
++ SIOCGIFBRDADDR = 0x8919
++ SIOCGIFCONF = 0x8912
++ SIOCGIFCOUNT = 0x8938
++ SIOCGIFDSTADDR = 0x8917
++ SIOCGIFENCAP = 0x8925
++ SIOCGIFFLAGS = 0x8913
++ SIOCGIFHWADDR = 0x8927
++ SIOCGIFINDEX = 0x8933
++ SIOCGIFMAP = 0x8970
++ SIOCGIFMEM = 0x891f
++ SIOCGIFMETRIC = 0x891d
++ SIOCGIFMTU = 0x8921
++ SIOCGIFNAME = 0x8910
++ SIOCGIFNETMASK = 0x891b
++ SIOCGIFPFLAGS = 0x8935
++ SIOCGIFSLAVE = 0x8929
++ SIOCGIFTXQLEN = 0x8942
++ SIOCGIFVLAN = 0x8982
++ SIOCGMIIPHY = 0x8947
++ SIOCGMIIREG = 0x8948
++ SIOCGPPPCSTATS = 0x89f2
++ SIOCGPPPSTATS = 0x89f0
++ SIOCGPPPVER = 0x89f1
++ SIOCGRARP = 0x8961
++ SIOCGSKNS = 0x894c
++ SIOCGSTAMP = 0x8906
++ SIOCGSTAMPNS = 0x8907
++ SIOCGSTAMPNS_OLD = 0x8907
++ SIOCGSTAMP_OLD = 0x8906
++ SIOCOUTQNSD = 0x894b
++ SIOCPROTOPRIVATE = 0x89e0
++ SIOCRTMSG = 0x890d
++ SIOCSARP = 0x8955
++ SIOCSHWTSTAMP = 0x89b0
++ SIOCSIFADDR = 0x8916
++ SIOCSIFBR = 0x8941
++ SIOCSIFBRDADDR = 0x891a
++ SIOCSIFDSTADDR = 0x8918
++ SIOCSIFENCAP = 0x8926
++ SIOCSIFFLAGS = 0x8914
++ SIOCSIFHWADDR = 0x8924
++ SIOCSIFHWBROADCAST = 0x8937
++ SIOCSIFLINK = 0x8911
++ SIOCSIFMAP = 0x8971
++ SIOCSIFMEM = 0x8920
++ SIOCSIFMETRIC = 0x891e
++ SIOCSIFMTU = 0x8922
++ SIOCSIFNAME = 0x8923
++ SIOCSIFNETMASK = 0x891c
++ SIOCSIFPFLAGS = 0x8934
++ SIOCSIFSLAVE = 0x8930
++ SIOCSIFTXQLEN = 0x8943
++ SIOCSIFVLAN = 0x8983
++ SIOCSMIIREG = 0x8949
++ SIOCSRARP = 0x8962
++ SIOCWANDEV = 0x894a
++ SMACK_MAGIC = 0x43415d53
++ SMART_AUTOSAVE = 0xd2
++ SMART_AUTO_OFFLINE = 0xdb
++ SMART_DISABLE = 0xd9
++ SMART_ENABLE = 0xd8
++ SMART_HCYL_PASS = 0xc2
++ SMART_IMMEDIATE_OFFLINE = 0xd4
++ SMART_LCYL_PASS = 0x4f
++ SMART_READ_LOG_SECTOR = 0xd5
++ SMART_READ_THRESHOLDS = 0xd1
++ SMART_READ_VALUES = 0xd0
++ SMART_SAVE = 0xd3
++ SMART_STATUS = 0xda
++ SMART_WRITE_LOG_SECTOR = 0xd6
++ SMART_WRITE_THRESHOLDS = 0xd7
++ SMB_SUPER_MAGIC = 0x517b
++ SOCKFS_MAGIC = 0x534f434b
++ SOCK_DCCP = 0x6
++ SOCK_IOC_TYPE = 0x89
++ SOCK_PACKET = 0xa
++ SOCK_RAW = 0x3
++ SOCK_RDM = 0x4
++ SOCK_SEQPACKET = 0x5
++ SOL_AAL = 0x109
++ SOL_ALG = 0x117
++ SOL_ATM = 0x108
++ SOL_CAIF = 0x116
++ SOL_CAN_BASE = 0x64
++ SOL_DCCP = 0x10d
++ SOL_DECNET = 0x105
++ SOL_ICMPV6 = 0x3a
++ SOL_IP = 0x0
++ SOL_IPV6 = 0x29
++ SOL_IRDA = 0x10a
++ SOL_IUCV = 0x115
++ SOL_KCM = 0x119
++ SOL_LLC = 0x10c
++ SOL_NETBEUI = 0x10b
++ SOL_NETLINK = 0x10e
++ SOL_NFC = 0x118
++ SOL_PACKET = 0x107
++ SOL_PNPIPE = 0x113
++ SOL_PPPOL2TP = 0x111
++ SOL_RAW = 0xff
++ SOL_RDS = 0x114
++ SOL_RXRPC = 0x110
++ SOL_TCP = 0x6
++ SOL_TIPC = 0x10f
++ SOL_TLS = 0x11a
++ SOL_X25 = 0x106
++ SOL_XDP = 0x11b
++ SOMAXCONN = 0x1000
++ SO_ATTACH_FILTER = 0x1a
++ SO_DEBUG = 0x1
++ SO_DETACH_BPF = 0x1b
++ SO_DETACH_FILTER = 0x1b
++ SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1
++ SO_EE_CODE_TXTIME_MISSED = 0x2
++ SO_EE_CODE_ZEROCOPY_COPIED = 0x1
++ SO_EE_ORIGIN_ICMP = 0x2
++ SO_EE_ORIGIN_ICMP6 = 0x3
++ SO_EE_ORIGIN_LOCAL = 0x1
++ SO_EE_ORIGIN_NONE = 0x0
++ SO_EE_ORIGIN_TIMESTAMPING = 0x4
++ SO_EE_ORIGIN_TXSTATUS = 0x4
++ SO_EE_ORIGIN_TXTIME = 0x6
++ SO_EE_ORIGIN_ZEROCOPY = 0x5
++ SO_GET_FILTER = 0x1a
++ SO_NO_CHECK = 0xb
++ SO_PEERNAME = 0x1c
++ SO_PRIORITY = 0xc
++ SO_TIMESTAMP = 0x1d
++ SO_TIMESTAMP_OLD = 0x1d
++ SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
++ SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
++ SO_VM_SOCKETS_BUFFER_SIZE = 0x0
++ SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
++ SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
++ SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
++ SO_VM_SOCKETS_TRUSTED = 0x5
++ SPLICE_F_GIFT = 0x8
++ SPLICE_F_MORE = 0x4
++ SPLICE_F_MOVE = 0x1
++ SPLICE_F_NONBLOCK = 0x2
++ SQUASHFS_MAGIC = 0x73717368
++ STACK_END_MAGIC = 0x57ac6e9d
++ STATX_ALL = 0xfff
++ STATX_ATIME = 0x20
++ STATX_ATTR_APPEND = 0x20
++ STATX_ATTR_AUTOMOUNT = 0x1000
++ STATX_ATTR_COMPRESSED = 0x4
++ STATX_ATTR_ENCRYPTED = 0x800
++ STATX_ATTR_IMMUTABLE = 0x10
++ STATX_ATTR_NODUMP = 0x40
++ STATX_ATTR_VERITY = 0x100000
++ STATX_BASIC_STATS = 0x7ff
++ STATX_BLOCKS = 0x400
++ STATX_BTIME = 0x800
++ STATX_CTIME = 0x80
++ STATX_GID = 0x10
++ STATX_INO = 0x100
++ STATX_MODE = 0x2
++ STATX_MTIME = 0x40
++ STATX_NLINK = 0x4
++ STATX_SIZE = 0x200
++ STATX_TYPE = 0x1
++ STATX_UID = 0x8
++ STATX__RESERVED = 0x80000000
++ SYNC_FILE_RANGE_WAIT_AFTER = 0x4
++ SYNC_FILE_RANGE_WAIT_BEFORE = 0x1
++ SYNC_FILE_RANGE_WRITE = 0x2
++ SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7
++ SYSFS_MAGIC = 0x62656572
++ S_BLKSIZE = 0x200
++ S_IEXEC = 0x40
++ S_IFBLK = 0x6000
++ S_IFCHR = 0x2000
++ S_IFDIR = 0x4000
++ S_IFIFO = 0x1000
++ S_IFLNK = 0xa000
++ S_IFMT = 0xf000
++ S_IFREG = 0x8000
++ S_IFSOCK = 0xc000
++ S_IREAD = 0x100
++ S_IRGRP = 0x20
++ S_IROTH = 0x4
++ S_IRUSR = 0x100
++ S_IRWXG = 0x38
++ S_IRWXO = 0x7
++ S_IRWXU = 0x1c0
++ S_ISGID = 0x400
++ S_ISUID = 0x800
++ S_ISVTX = 0x200
++ S_IWGRP = 0x10
++ S_IWOTH = 0x2
++ S_IWRITE = 0x80
++ S_IWUSR = 0x80
++ S_IXGRP = 0x8
++ S_IXOTH = 0x1
++ S_IXUSR = 0x40
++ TAB0 = 0x0
++ TASKSTATS_CMD_ATTR_MAX = 0x4
++ TASKSTATS_CMD_MAX = 0x2
++ TASKSTATS_GENL_NAME = "TASKSTATS"
++ TASKSTATS_GENL_VERSION = 0x1
++ TASKSTATS_TYPE_MAX = 0x6
++ TASKSTATS_VERSION = 0xa
++ TCIFLUSH = 0x0
++ TCIOFF = 0x2
++ TCIOFLUSH = 0x2
++ TCION = 0x3
++ TCOFLUSH = 0x1
++ TCOOFF = 0x0
++ TCOON = 0x1
++ TCP_BPF_IW = 0x3e9
++ TCP_BPF_SNDCWND_CLAMP = 0x3ea
++ TCP_CC_INFO = 0x1a
++ TCP_CM_INQ = 0x24
++ TCP_CONGESTION = 0xd
++ TCP_COOKIE_IN_ALWAYS = 0x1
++ TCP_COOKIE_MAX = 0x10
++ TCP_COOKIE_MIN = 0x8
++ TCP_COOKIE_OUT_NEVER = 0x2
++ TCP_COOKIE_PAIR_SIZE = 0x20
++ TCP_COOKIE_TRANSACTIONS = 0xf
++ TCP_CORK = 0x3
++ TCP_DEFER_ACCEPT = 0x9
++ TCP_FASTOPEN = 0x17
++ TCP_FASTOPEN_CONNECT = 0x1e
++ TCP_FASTOPEN_KEY = 0x21
++ TCP_FASTOPEN_NO_COOKIE = 0x22
++ TCP_INFO = 0xb
++ TCP_INQ = 0x24
++ TCP_KEEPCNT = 0x6
++ TCP_KEEPIDLE = 0x4
++ TCP_KEEPINTVL = 0x5
++ TCP_LINGER2 = 0x8
++ TCP_MAXSEG = 0x2
++ TCP_MAXWIN = 0xffff
++ TCP_MAX_WINSHIFT = 0xe
++ TCP_MD5SIG = 0xe
++ TCP_MD5SIG_EXT = 0x20
++ TCP_MD5SIG_FLAG_PREFIX = 0x1
++ TCP_MD5SIG_MAXKEYLEN = 0x50
++ TCP_MSS = 0x200
++ TCP_MSS_DEFAULT = 0x218
++ TCP_MSS_DESIRED = 0x4c4
++ TCP_NODELAY = 0x1
++ TCP_NOTSENT_LOWAT = 0x19
++ TCP_QUEUE_SEQ = 0x15
++ TCP_QUICKACK = 0xc
++ TCP_REPAIR = 0x13
++ TCP_REPAIR_OFF = 0x0
++ TCP_REPAIR_OFF_NO_WP = -0x1
++ TCP_REPAIR_ON = 0x1
++ TCP_REPAIR_OPTIONS = 0x16
++ TCP_REPAIR_QUEUE = 0x14
++ TCP_REPAIR_WINDOW = 0x1d
++ TCP_SAVED_SYN = 0x1c
++ TCP_SAVE_SYN = 0x1b
++ TCP_SYNCNT = 0x7
++ TCP_S_DATA_IN = 0x4
++ TCP_S_DATA_OUT = 0x8
++ TCP_THIN_DUPACK = 0x11
++ TCP_THIN_LINEAR_TIMEOUTS = 0x10
++ TCP_TIMESTAMP = 0x18
++ TCP_TX_DELAY = 0x25
++ TCP_ULP = 0x1f
++ TCP_USER_TIMEOUT = 0x12
++ TCP_WINDOW_CLAMP = 0xa
++ TCP_ZEROCOPY_RECEIVE = 0x23
++ TIMER_ABSTIME = 0x1
++ TIOCM_DTR = 0x2
++ TIOCM_LE = 0x1
++ TIOCM_RTS = 0x4
++ TIOCPKT_DATA = 0x0
++ TIOCPKT_DOSTOP = 0x20
++ TIOCPKT_FLUSHREAD = 0x1
++ TIOCPKT_FLUSHWRITE = 0x2
++ TIOCPKT_IOCTL = 0x40
++ TIOCPKT_NOSTOP = 0x10
++ TIOCPKT_START = 0x8
++ TIOCPKT_STOP = 0x4
++ TIPC_ADDR_ID = 0x3
++ TIPC_ADDR_MCAST = 0x1
++ TIPC_ADDR_NAME = 0x2
++ TIPC_ADDR_NAMESEQ = 0x1
++ TIPC_AEAD_ALG_NAME = 0x20
++ TIPC_AEAD_KEYLEN_MAX = 0x24
++ TIPC_AEAD_KEYLEN_MIN = 0x14
++ TIPC_AEAD_KEY_SIZE_MAX = 0x48
++ TIPC_CFG_SRV = 0x0
++ TIPC_CLUSTER_BITS = 0xc
++ TIPC_CLUSTER_MASK = 0xfff000
++ TIPC_CLUSTER_OFFSET = 0xc
++ TIPC_CLUSTER_SIZE = 0xfff
++ TIPC_CONN_SHUTDOWN = 0x5
++ TIPC_CONN_TIMEOUT = 0x82
++ TIPC_CRITICAL_IMPORTANCE = 0x3
++ TIPC_DESTNAME = 0x3
++ TIPC_DEST_DROPPABLE = 0x81
++ TIPC_ERRINFO = 0x1
++ TIPC_ERR_NO_NAME = 0x1
++ TIPC_ERR_NO_NODE = 0x3
++ TIPC_ERR_NO_PORT = 0x2
++ TIPC_ERR_OVERLOAD = 0x4
++ TIPC_GROUP_JOIN = 0x87
++ TIPC_GROUP_LEAVE = 0x88
++ TIPC_GROUP_LOOPBACK = 0x1
++ TIPC_GROUP_MEMBER_EVTS = 0x2
++ TIPC_HIGH_IMPORTANCE = 0x2
++ TIPC_IMPORTANCE = 0x7f
++ TIPC_LINK_STATE = 0x2
++ TIPC_LOW_IMPORTANCE = 0x0
++ TIPC_MAX_BEARER_NAME = 0x20
++ TIPC_MAX_IF_NAME = 0x10
++ TIPC_MAX_LINK_NAME = 0x44
++ TIPC_MAX_MEDIA_NAME = 0x10
++ TIPC_MAX_USER_MSG_SIZE = 0x101d0
++ TIPC_MCAST_BROADCAST = 0x85
++ TIPC_MCAST_REPLICAST = 0x86
++ TIPC_MEDIUM_IMPORTANCE = 0x1
++ TIPC_NODEID_LEN = 0x10
++ TIPC_NODELAY = 0x8a
++ TIPC_NODE_BITS = 0xc
++ TIPC_NODE_MASK = 0xfff
++ TIPC_NODE_OFFSET = 0x0
++ TIPC_NODE_RECVQ_DEPTH = 0x83
++ TIPC_NODE_SIZE = 0xfff
++ TIPC_NODE_STATE = 0x0
++ TIPC_OK = 0x0
++ TIPC_PUBLISHED = 0x1
++ TIPC_RESERVED_TYPES = 0x40
++ TIPC_RETDATA = 0x2
++ TIPC_SERVICE_ADDR = 0x2
++ TIPC_SERVICE_RANGE = 0x1
++ TIPC_SOCKET_ADDR = 0x3
++ TIPC_SOCK_RECVQ_DEPTH = 0x84
++ TIPC_SOCK_RECVQ_USED = 0x89
++ TIPC_SRC_DROPPABLE = 0x80
++ TIPC_SUBSCR_TIMEOUT = 0x3
++ TIPC_SUB_CANCEL = 0x4
++ TIPC_SUB_PORTS = 0x1
++ TIPC_SUB_SERVICE = 0x2
++ TIPC_TOP_SRV = 0x1
++ TIPC_WAIT_FOREVER = 0xffffffff
++ TIPC_WITHDRAWN = 0x2
++ TIPC_ZONE_BITS = 0x8
++ TIPC_ZONE_CLUSTER_MASK = 0xfffff000
++ TIPC_ZONE_MASK = 0xff000000
++ TIPC_ZONE_OFFSET = 0x18
++ TIPC_ZONE_SCOPE = 0x1
++ TIPC_ZONE_SIZE = 0xff
++ TMPFS_MAGIC = 0x1021994
++ TPACKET_ALIGNMENT = 0x10
++ TPACKET_HDRLEN = 0x34
++ TP_STATUS_AVAILABLE = 0x0
++ TP_STATUS_BLK_TMO = 0x20
++ TP_STATUS_COPY = 0x2
++ TP_STATUS_CSUMNOTREADY = 0x8
++ TP_STATUS_CSUM_VALID = 0x80
++ TP_STATUS_KERNEL = 0x0
++ TP_STATUS_LOSING = 0x4
++ TP_STATUS_SENDING = 0x2
++ TP_STATUS_SEND_REQUEST = 0x1
++ TP_STATUS_TS_RAW_HARDWARE = 0x80000000
++ TP_STATUS_TS_SOFTWARE = 0x20000000
++ TP_STATUS_TS_SYS_HARDWARE = 0x40000000
++ TP_STATUS_USER = 0x1
++ TP_STATUS_VLAN_TPID_VALID = 0x40
++ TP_STATUS_VLAN_VALID = 0x10
++ TP_STATUS_WRONG_FORMAT = 0x4
++ TRACEFS_MAGIC = 0x74726163
++ TS_COMM_LEN = 0x20
++ UDF_SUPER_MAGIC = 0x15013346
++ UMOUNT_NOFOLLOW = 0x8
++ USBDEVICE_SUPER_MAGIC = 0x9fa2
++ UTIME_NOW = 0x3fffffff
++ UTIME_OMIT = 0x3ffffffe
++ V9FS_MAGIC = 0x1021997
++ VERASE = 0x2
++ VINTR = 0x0
++ VKILL = 0x3
++ VLNEXT = 0xf
++ VMADDR_CID_ANY = 0xffffffff
++ VMADDR_CID_HOST = 0x2
++ VMADDR_CID_HYPERVISOR = 0x0
++ VMADDR_CID_LOCAL = 0x1
++ VMADDR_PORT_ANY = 0xffffffff
++ VM_SOCKETS_INVALID_VERSION = 0xffffffff
++ VQUIT = 0x1
++ VT0 = 0x0
++ WALL = 0x40000000
++ WCLONE = 0x80000000
++ WCONTINUED = 0x8
++ WDIOC_SETPRETIMEOUT = 0xc0045708
++ WDIOC_SETTIMEOUT = 0xc0045706
++ WEXITED = 0x4
++ WIN_ACKMEDIACHANGE = 0xdb
++ WIN_CHECKPOWERMODE1 = 0xe5
++ WIN_CHECKPOWERMODE2 = 0x98
++ WIN_DEVICE_RESET = 0x8
++ WIN_DIAGNOSE = 0x90
++ WIN_DOORLOCK = 0xde
++ WIN_DOORUNLOCK = 0xdf
++ WIN_DOWNLOAD_MICROCODE = 0x92
++ WIN_FLUSH_CACHE = 0xe7
++ WIN_FLUSH_CACHE_EXT = 0xea
++ WIN_FORMAT = 0x50
++ WIN_GETMEDIASTATUS = 0xda
++ WIN_IDENTIFY = 0xec
++ WIN_IDENTIFY_DMA = 0xee
++ WIN_IDLEIMMEDIATE = 0xe1
++ WIN_INIT = 0x60
++ WIN_MEDIAEJECT = 0xed
++ WIN_MULTREAD = 0xc4
++ WIN_MULTREAD_EXT = 0x29
++ WIN_MULTWRITE = 0xc5
++ WIN_MULTWRITE_EXT = 0x39
++ WIN_NOP = 0x0
++ WIN_PACKETCMD = 0xa0
++ WIN_PIDENTIFY = 0xa1
++ WIN_POSTBOOT = 0xdc
++ WIN_PREBOOT = 0xdd
++ WIN_QUEUED_SERVICE = 0xa2
++ WIN_READ = 0x20
++ WIN_READDMA = 0xc8
++ WIN_READDMA_EXT = 0x25
++ WIN_READDMA_ONCE = 0xc9
++ WIN_READDMA_QUEUED = 0xc7
++ WIN_READDMA_QUEUED_EXT = 0x26
++ WIN_READ_BUFFER = 0xe4
++ WIN_READ_EXT = 0x24
++ WIN_READ_LONG = 0x22
++ WIN_READ_LONG_ONCE = 0x23
++ WIN_READ_NATIVE_MAX = 0xf8
++ WIN_READ_NATIVE_MAX_EXT = 0x27
++ WIN_READ_ONCE = 0x21
++ WIN_RECAL = 0x10
++ WIN_RESTORE = 0x10
++ WIN_SECURITY_DISABLE = 0xf6
++ WIN_SECURITY_ERASE_PREPARE = 0xf3
++ WIN_SECURITY_ERASE_UNIT = 0xf4
++ WIN_SECURITY_FREEZE_LOCK = 0xf5
++ WIN_SECURITY_SET_PASS = 0xf1
++ WIN_SECURITY_UNLOCK = 0xf2
++ WIN_SEEK = 0x70
++ WIN_SETFEATURES = 0xef
++ WIN_SETIDLE1 = 0xe3
++ WIN_SETIDLE2 = 0x97
++ WIN_SETMULT = 0xc6
++ WIN_SET_MAX = 0xf9
++ WIN_SET_MAX_EXT = 0x37
++ WIN_SLEEPNOW1 = 0xe6
++ WIN_SLEEPNOW2 = 0x99
++ WIN_SMART = 0xb0
++ WIN_SPECIFY = 0x91
++ WIN_SRST = 0x8
++ WIN_STANDBY = 0xe2
++ WIN_STANDBY2 = 0x96
++ WIN_STANDBYNOW1 = 0xe0
++ WIN_STANDBYNOW2 = 0x94
++ WIN_VERIFY = 0x40
++ WIN_VERIFY_EXT = 0x42
++ WIN_VERIFY_ONCE = 0x41
++ WIN_WRITE = 0x30
++ WIN_WRITEDMA = 0xca
++ WIN_WRITEDMA_EXT = 0x35
++ WIN_WRITEDMA_ONCE = 0xcb
++ WIN_WRITEDMA_QUEUED = 0xcc
++ WIN_WRITEDMA_QUEUED_EXT = 0x36
++ WIN_WRITE_BUFFER = 0xe8
++ WIN_WRITE_EXT = 0x34
++ WIN_WRITE_LONG = 0x32
++ WIN_WRITE_LONG_ONCE = 0x33
++ WIN_WRITE_ONCE = 0x31
++ WIN_WRITE_SAME = 0xe9
++ WIN_WRITE_VERIFY = 0x3c
++ WNOHANG = 0x1
++ WNOTHREAD = 0x20000000
++ WNOWAIT = 0x1000000
++ WSTOPPED = 0x2
++ WUNTRACED = 0x2
++ XATTR_CREATE = 0x1
++ XATTR_REPLACE = 0x2
++ XDP_COPY = 0x2
++ XDP_FLAGS_DRV_MODE = 0x4
++ XDP_FLAGS_HW_MODE = 0x8
++ XDP_FLAGS_MASK = 0xf
++ XDP_FLAGS_MODES = 0xe
++ XDP_FLAGS_SKB_MODE = 0x2
++ XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1
++ XDP_MMAP_OFFSETS = 0x1
++ XDP_OPTIONS = 0x8
++ XDP_OPTIONS_ZEROCOPY = 0x1
++ XDP_PACKET_HEADROOM = 0x100
++ XDP_PGOFF_RX_RING = 0x0
++ XDP_PGOFF_TX_RING = 0x80000000
++ XDP_RING_NEED_WAKEUP = 0x1
++ XDP_RX_RING = 0x2
++ XDP_SHARED_UMEM = 0x1
++ XDP_STATISTICS = 0x7
++ XDP_TX_RING = 0x3
++ XDP_UMEM_COMPLETION_RING = 0x6
++ XDP_UMEM_FILL_RING = 0x5
++ XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000
++ XDP_UMEM_PGOFF_FILL_RING = 0x100000000
++ XDP_UMEM_REG = 0x4
++ XDP_UMEM_UNALIGNED_CHUNK_FLAG = 0x1
++ XDP_USE_NEED_WAKEUP = 0x8
++ XDP_ZEROCOPY = 0x4
++ XENFS_SUPER_MAGIC = 0xabba1974
++ XFS_SUPER_MAGIC = 0x58465342
++ Z3FOLD_MAGIC = 0x33
++ ZONEFS_MAGIC = 0x5a4f4653
++ ZSMALLOC_MAGIC = 0x58295829
++)
++
++// Errors
++const (
++ E2BIG = syscall.Errno(0x7)
++ EACCES = syscall.Errno(0xd)
++ EAGAIN = syscall.Errno(0xb)
++ EBADF = syscall.Errno(0x9)
++ EBUSY = syscall.Errno(0x10)
++ ECHILD = syscall.Errno(0xa)
++ EDOM = syscall.Errno(0x21)
++ EEXIST = syscall.Errno(0x11)
++ EFAULT = syscall.Errno(0xe)
++ EFBIG = syscall.Errno(0x1b)
++ EINTR = syscall.Errno(0x4)
++ EINVAL = syscall.Errno(0x16)
++ EIO = syscall.Errno(0x5)
++ EISDIR = syscall.Errno(0x15)
++ EMFILE = syscall.Errno(0x18)
++ EMLINK = syscall.Errno(0x1f)
++ ENFILE = syscall.Errno(0x17)
++ ENODEV = syscall.Errno(0x13)
++ ENOENT = syscall.Errno(0x2)
++ ENOEXEC = syscall.Errno(0x8)
++ ENOMEM = syscall.Errno(0xc)
++ ENOSPC = syscall.Errno(0x1c)
++ ENOTBLK = syscall.Errno(0xf)
++ ENOTDIR = syscall.Errno(0x14)
++ ENOTTY = syscall.Errno(0x19)
++ ENXIO = syscall.Errno(0x6)
++ EPERM = syscall.Errno(0x1)
++ EPIPE = syscall.Errno(0x20)
++ ERANGE = syscall.Errno(0x22)
++ EROFS = syscall.Errno(0x1e)
++ ESPIPE = syscall.Errno(0x1d)
++ ESRCH = syscall.Errno(0x3)
++ ETXTBSY = syscall.Errno(0x1a)
++ EWOULDBLOCK = syscall.Errno(0xb)
++ EXDEV = syscall.Errno(0x12)
++)
++
++// Signals
++const (
++ SIGABRT = syscall.Signal(0x6)
++ SIGALRM = syscall.Signal(0xe)
++ SIGFPE = syscall.Signal(0x8)
++ SIGHUP = syscall.Signal(0x1)
++ SIGILL = syscall.Signal(0x4)
++ SIGINT = syscall.Signal(0x2)
++ SIGIOT = syscall.Signal(0x6)
++ SIGKILL = syscall.Signal(0x9)
++ SIGPIPE = syscall.Signal(0xd)
++ SIGQUIT = syscall.Signal(0x3)
++ SIGSEGV = syscall.Signal(0xb)
++ SIGTERM = syscall.Signal(0xf)
++ SIGTRAP = syscall.Signal(0x5)
++)
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go
+index 33ced1ae..028c9d87 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go
+@@ -3,7 +3,7 @@
+
+ // +build 386,linux
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 _const.go
+
+ package unix
+@@ -11,1868 +11,487 @@ package unix
+ import "syscall"
+
+ const (
+- AF_ALG = 0x26
+- AF_APPLETALK = 0x5
+- AF_ASH = 0x12
+- AF_ATMPVC = 0x8
+- AF_ATMSVC = 0x14
+- AF_AX25 = 0x3
+- AF_BLUETOOTH = 0x1f
+- AF_BRIDGE = 0x7
+- AF_CAIF = 0x25
+- AF_CAN = 0x1d
+- AF_DECnet = 0xc
+- AF_ECONET = 0x13
+- AF_FILE = 0x1
+- AF_IB = 0x1b
+- AF_IEEE802154 = 0x24
+- AF_INET = 0x2
+- AF_INET6 = 0xa
+- AF_IPX = 0x4
+- AF_IRDA = 0x17
+- AF_ISDN = 0x22
+- AF_IUCV = 0x20
+- AF_KCM = 0x29
+- AF_KEY = 0xf
+- AF_LLC = 0x1a
+- AF_LOCAL = 0x1
+- AF_MAX = 0x2b
+- AF_MPLS = 0x1c
+- AF_NETBEUI = 0xd
+- AF_NETLINK = 0x10
+- AF_NETROM = 0x6
+- AF_NFC = 0x27
+- AF_PACKET = 0x11
+- AF_PHONET = 0x23
+- AF_PPPOX = 0x18
+- AF_QIPCRTR = 0x2a
+- AF_RDS = 0x15
+- AF_ROSE = 0xb
+- AF_ROUTE = 0x10
+- AF_RXRPC = 0x21
+- AF_SECURITY = 0xe
+- AF_SNA = 0x16
+- AF_TIPC = 0x1e
+- AF_UNIX = 0x1
+- AF_UNSPEC = 0x0
+- AF_VSOCK = 0x28
+- AF_WANPIPE = 0x19
+- AF_X25 = 0x9
+- ALG_OP_DECRYPT = 0x0
+- ALG_OP_ENCRYPT = 0x1
+- ALG_SET_AEAD_ASSOCLEN = 0x4
+- ALG_SET_AEAD_AUTHSIZE = 0x5
+- ALG_SET_IV = 0x2
+- ALG_SET_KEY = 0x1
+- ALG_SET_OP = 0x3
+- ARPHRD_6LOWPAN = 0x339
+- ARPHRD_ADAPT = 0x108
+- ARPHRD_APPLETLK = 0x8
+- ARPHRD_ARCNET = 0x7
+- ARPHRD_ASH = 0x30d
+- ARPHRD_ATM = 0x13
+- ARPHRD_AX25 = 0x3
+- ARPHRD_BIF = 0x307
+- ARPHRD_CAIF = 0x336
+- ARPHRD_CAN = 0x118
+- ARPHRD_CHAOS = 0x5
+- ARPHRD_CISCO = 0x201
+- ARPHRD_CSLIP = 0x101
+- ARPHRD_CSLIP6 = 0x103
+- ARPHRD_DDCMP = 0x205
+- ARPHRD_DLCI = 0xf
+- ARPHRD_ECONET = 0x30e
+- ARPHRD_EETHER = 0x2
+- ARPHRD_ETHER = 0x1
+- ARPHRD_EUI64 = 0x1b
+- ARPHRD_FCAL = 0x311
+- ARPHRD_FCFABRIC = 0x313
+- ARPHRD_FCPL = 0x312
+- ARPHRD_FCPP = 0x310
+- ARPHRD_FDDI = 0x306
+- ARPHRD_FRAD = 0x302
+- ARPHRD_HDLC = 0x201
+- ARPHRD_HIPPI = 0x30c
+- ARPHRD_HWX25 = 0x110
+- ARPHRD_IEEE1394 = 0x18
+- ARPHRD_IEEE802 = 0x6
+- ARPHRD_IEEE80211 = 0x321
+- ARPHRD_IEEE80211_PRISM = 0x322
+- ARPHRD_IEEE80211_RADIOTAP = 0x323
+- ARPHRD_IEEE802154 = 0x324
+- ARPHRD_IEEE802154_MONITOR = 0x325
+- ARPHRD_IEEE802_TR = 0x320
+- ARPHRD_INFINIBAND = 0x20
+- ARPHRD_IP6GRE = 0x337
+- ARPHRD_IPDDP = 0x309
+- ARPHRD_IPGRE = 0x30a
+- ARPHRD_IRDA = 0x30f
+- ARPHRD_LAPB = 0x204
+- ARPHRD_LOCALTLK = 0x305
+- ARPHRD_LOOPBACK = 0x304
+- ARPHRD_METRICOM = 0x17
+- ARPHRD_NETLINK = 0x338
+- ARPHRD_NETROM = 0x0
+- ARPHRD_NONE = 0xfffe
+- ARPHRD_PHONET = 0x334
+- ARPHRD_PHONET_PIPE = 0x335
+- ARPHRD_PIMREG = 0x30b
+- ARPHRD_PPP = 0x200
+- ARPHRD_PRONET = 0x4
+- ARPHRD_RAWHDLC = 0x206
+- ARPHRD_ROSE = 0x10e
+- ARPHRD_RSRVD = 0x104
+- ARPHRD_SIT = 0x308
+- ARPHRD_SKIP = 0x303
+- ARPHRD_SLIP = 0x100
+- ARPHRD_SLIP6 = 0x102
+- ARPHRD_TUNNEL = 0x300
+- ARPHRD_TUNNEL6 = 0x301
+- ARPHRD_VOID = 0xffff
+- ARPHRD_X25 = 0x10f
+- B0 = 0x0
+- B1000000 = 0x1008
+- B110 = 0x3
+- B115200 = 0x1002
+- B1152000 = 0x1009
+- B1200 = 0x9
+- B134 = 0x4
+- B150 = 0x5
+- B1500000 = 0x100a
+- B1800 = 0xa
+- B19200 = 0xe
+- B200 = 0x6
+- B2000000 = 0x100b
+- B230400 = 0x1003
+- B2400 = 0xb
+- B2500000 = 0x100c
+- B300 = 0x7
+- B3000000 = 0x100d
+- B3500000 = 0x100e
+- B38400 = 0xf
+- B4000000 = 0x100f
+- B460800 = 0x1004
+- B4800 = 0xc
+- B50 = 0x1
+- B500000 = 0x1005
+- B57600 = 0x1001
+- B576000 = 0x1006
+- B600 = 0x8
+- B75 = 0x2
+- B921600 = 0x1007
+- B9600 = 0xd
+- BLKBSZGET = 0x80041270
+- BLKBSZSET = 0x40041271
+- BLKFLSBUF = 0x1261
+- BLKFRAGET = 0x1265
+- BLKFRASET = 0x1264
+- BLKGETSIZE = 0x1260
+- BLKGETSIZE64 = 0x80041272
+- BLKPBSZGET = 0x127b
+- BLKRAGET = 0x1263
+- BLKRASET = 0x1262
+- BLKROGET = 0x125e
+- BLKROSET = 0x125d
+- BLKRRPART = 0x125f
+- BLKSECTGET = 0x1267
+- BLKSECTSET = 0x1266
+- BLKSSZGET = 0x1268
+- BOTHER = 0x1000
+- BPF_A = 0x10
+- BPF_ABS = 0x20
+- BPF_ADD = 0x0
+- BPF_ALU = 0x4
+- BPF_AND = 0x50
+- BPF_B = 0x10
+- BPF_DIV = 0x30
+- BPF_H = 0x8
+- BPF_IMM = 0x0
+- BPF_IND = 0x40
+- BPF_JA = 0x0
+- BPF_JEQ = 0x10
+- BPF_JGE = 0x30
+- BPF_JGT = 0x20
+- BPF_JMP = 0x5
+- BPF_JSET = 0x40
+- BPF_K = 0x0
+- BPF_LD = 0x0
+- BPF_LDX = 0x1
+- BPF_LEN = 0x80
+- BPF_LL_OFF = -0x200000
+- BPF_LSH = 0x60
+- BPF_MAJOR_VERSION = 0x1
+- BPF_MAXINSNS = 0x1000
+- BPF_MEM = 0x60
+- BPF_MEMWORDS = 0x10
+- BPF_MINOR_VERSION = 0x1
+- BPF_MISC = 0x7
+- BPF_MOD = 0x90
+- BPF_MSH = 0xa0
+- BPF_MUL = 0x20
+- BPF_NEG = 0x80
+- BPF_NET_OFF = -0x100000
+- BPF_OR = 0x40
+- BPF_RET = 0x6
+- BPF_RSH = 0x70
+- BPF_ST = 0x2
+- BPF_STX = 0x3
+- BPF_SUB = 0x10
+- BPF_TAX = 0x0
+- BPF_TXA = 0x80
+- BPF_W = 0x0
+- BPF_X = 0x8
+- BPF_XOR = 0xa0
+- BRKINT = 0x2
+- BS0 = 0x0
+- BS1 = 0x2000
+- BSDLY = 0x2000
+- CAN_BCM = 0x2
+- CAN_EFF_FLAG = 0x80000000
+- CAN_EFF_ID_BITS = 0x1d
+- CAN_EFF_MASK = 0x1fffffff
+- CAN_ERR_FLAG = 0x20000000
+- CAN_ERR_MASK = 0x1fffffff
+- CAN_INV_FILTER = 0x20000000
+- CAN_ISOTP = 0x6
+- CAN_MAX_DLC = 0x8
+- CAN_MAX_DLEN = 0x8
+- CAN_MCNET = 0x5
+- CAN_MTU = 0x10
+- CAN_NPROTO = 0x7
+- CAN_RAW = 0x1
+- CAN_RAW_FILTER_MAX = 0x200
+- CAN_RTR_FLAG = 0x40000000
+- CAN_SFF_ID_BITS = 0xb
+- CAN_SFF_MASK = 0x7ff
+- CAN_TP16 = 0x3
+- CAN_TP20 = 0x4
+- CBAUD = 0x100f
+- CBAUDEX = 0x1000
+- CFLUSH = 0xf
+- CIBAUD = 0x100f0000
+- CLOCAL = 0x800
+- CLOCK_BOOTTIME = 0x7
+- CLOCK_BOOTTIME_ALARM = 0x9
+- CLOCK_DEFAULT = 0x0
+- CLOCK_EXT = 0x1
+- CLOCK_INT = 0x2
+- CLOCK_MONOTONIC = 0x1
+- CLOCK_MONOTONIC_COARSE = 0x6
+- CLOCK_MONOTONIC_RAW = 0x4
+- CLOCK_PROCESS_CPUTIME_ID = 0x2
+- CLOCK_REALTIME = 0x0
+- CLOCK_REALTIME_ALARM = 0x8
+- CLOCK_REALTIME_COARSE = 0x5
+- CLOCK_TAI = 0xb
+- CLOCK_THREAD_CPUTIME_ID = 0x3
+- CLOCK_TXFROMRX = 0x4
+- CLOCK_TXINT = 0x3
+- CLONE_CHILD_CLEARTID = 0x200000
+- CLONE_CHILD_SETTID = 0x1000000
+- CLONE_DETACHED = 0x400000
+- CLONE_FILES = 0x400
+- CLONE_FS = 0x200
+- CLONE_IO = 0x80000000
+- CLONE_NEWCGROUP = 0x2000000
+- CLONE_NEWIPC = 0x8000000
+- CLONE_NEWNET = 0x40000000
+- CLONE_NEWNS = 0x20000
+- CLONE_NEWPID = 0x20000000
+- CLONE_NEWUSER = 0x10000000
+- CLONE_NEWUTS = 0x4000000
+- CLONE_PARENT = 0x8000
+- CLONE_PARENT_SETTID = 0x100000
+- CLONE_PTRACE = 0x2000
+- CLONE_SETTLS = 0x80000
+- CLONE_SIGHAND = 0x800
+- CLONE_SYSVSEM = 0x40000
+- CLONE_THREAD = 0x10000
+- CLONE_UNTRACED = 0x800000
+- CLONE_VFORK = 0x4000
+- CLONE_VM = 0x100
+- CMSPAR = 0x40000000
+- CR0 = 0x0
+- CR1 = 0x200
+- CR2 = 0x400
+- CR3 = 0x600
+- CRDLY = 0x600
+- CREAD = 0x80
+- CRTSCTS = 0x80000000
+- CS5 = 0x0
+- CS6 = 0x10
+- CS7 = 0x20
+- CS8 = 0x30
+- CSIGNAL = 0xff
+- CSIZE = 0x30
+- CSTART = 0x11
+- CSTATUS = 0x0
+- CSTOP = 0x13
+- CSTOPB = 0x40
+- CSUSP = 0x1a
+- DT_BLK = 0x6
+- DT_CHR = 0x2
+- DT_DIR = 0x4
+- DT_FIFO = 0x1
+- DT_LNK = 0xa
+- DT_REG = 0x8
+- DT_SOCK = 0xc
+- DT_UNKNOWN = 0x0
+- DT_WHT = 0xe
+- ECHO = 0x8
+- ECHOCTL = 0x200
+- ECHOE = 0x10
+- ECHOK = 0x20
+- ECHOKE = 0x800
+- ECHONL = 0x40
+- ECHOPRT = 0x400
+- EFD_CLOEXEC = 0x80000
+- EFD_NONBLOCK = 0x800
+- EFD_SEMAPHORE = 0x1
+- ENCODING_DEFAULT = 0x0
+- ENCODING_FM_MARK = 0x3
+- ENCODING_FM_SPACE = 0x4
+- ENCODING_MANCHESTER = 0x5
+- ENCODING_NRZ = 0x1
+- ENCODING_NRZI = 0x2
+- EPOLLERR = 0x8
+- EPOLLET = 0x80000000
+- EPOLLEXCLUSIVE = 0x10000000
+- EPOLLHUP = 0x10
+- EPOLLIN = 0x1
+- EPOLLMSG = 0x400
+- EPOLLONESHOT = 0x40000000
+- EPOLLOUT = 0x4
+- EPOLLPRI = 0x2
+- EPOLLRDBAND = 0x80
+- EPOLLRDHUP = 0x2000
+- EPOLLRDNORM = 0x40
+- EPOLLWAKEUP = 0x20000000
+- EPOLLWRBAND = 0x200
+- EPOLLWRNORM = 0x100
+- EPOLL_CLOEXEC = 0x80000
+- EPOLL_CTL_ADD = 0x1
+- EPOLL_CTL_DEL = 0x2
+- EPOLL_CTL_MOD = 0x3
+- ETH_P_1588 = 0x88f7
+- ETH_P_8021AD = 0x88a8
+- ETH_P_8021AH = 0x88e7
+- ETH_P_8021Q = 0x8100
+- ETH_P_80221 = 0x8917
+- ETH_P_802_2 = 0x4
+- ETH_P_802_3 = 0x1
+- ETH_P_802_3_MIN = 0x600
+- ETH_P_802_EX1 = 0x88b5
+- ETH_P_AARP = 0x80f3
+- ETH_P_AF_IUCV = 0xfbfb
+- ETH_P_ALL = 0x3
+- ETH_P_AOE = 0x88a2
+- ETH_P_ARCNET = 0x1a
+- ETH_P_ARP = 0x806
+- ETH_P_ATALK = 0x809b
+- ETH_P_ATMFATE = 0x8884
+- ETH_P_ATMMPOA = 0x884c
+- ETH_P_AX25 = 0x2
+- ETH_P_BATMAN = 0x4305
+- ETH_P_BPQ = 0x8ff
+- ETH_P_CAIF = 0xf7
+- ETH_P_CAN = 0xc
+- ETH_P_CANFD = 0xd
+- ETH_P_CONTROL = 0x16
+- ETH_P_CUST = 0x6006
+- ETH_P_DDCMP = 0x6
+- ETH_P_DEC = 0x6000
+- ETH_P_DIAG = 0x6005
+- ETH_P_DNA_DL = 0x6001
+- ETH_P_DNA_RC = 0x6002
+- ETH_P_DNA_RT = 0x6003
+- ETH_P_DSA = 0x1b
+- ETH_P_ECONET = 0x18
+- ETH_P_EDSA = 0xdada
+- ETH_P_FCOE = 0x8906
+- ETH_P_FIP = 0x8914
+- ETH_P_HDLC = 0x19
+- ETH_P_HSR = 0x892f
+- ETH_P_IEEE802154 = 0xf6
+- ETH_P_IEEEPUP = 0xa00
+- ETH_P_IEEEPUPAT = 0xa01
+- ETH_P_IP = 0x800
+- ETH_P_IPV6 = 0x86dd
+- ETH_P_IPX = 0x8137
+- ETH_P_IRDA = 0x17
+- ETH_P_LAT = 0x6004
+- ETH_P_LINK_CTL = 0x886c
+- ETH_P_LOCALTALK = 0x9
+- ETH_P_LOOP = 0x60
+- ETH_P_LOOPBACK = 0x9000
+- ETH_P_MACSEC = 0x88e5
+- ETH_P_MOBITEX = 0x15
+- ETH_P_MPLS_MC = 0x8848
+- ETH_P_MPLS_UC = 0x8847
+- ETH_P_MVRP = 0x88f5
+- ETH_P_NCSI = 0x88f8
+- ETH_P_PAE = 0x888e
+- ETH_P_PAUSE = 0x8808
+- ETH_P_PHONET = 0xf5
+- ETH_P_PPPTALK = 0x10
+- ETH_P_PPP_DISC = 0x8863
+- ETH_P_PPP_MP = 0x8
+- ETH_P_PPP_SES = 0x8864
+- ETH_P_PRP = 0x88fb
+- ETH_P_PUP = 0x200
+- ETH_P_PUPAT = 0x201
+- ETH_P_QINQ1 = 0x9100
+- ETH_P_QINQ2 = 0x9200
+- ETH_P_QINQ3 = 0x9300
+- ETH_P_RARP = 0x8035
+- ETH_P_SCA = 0x6007
+- ETH_P_SLOW = 0x8809
+- ETH_P_SNAP = 0x5
+- ETH_P_TDLS = 0x890d
+- ETH_P_TEB = 0x6558
+- ETH_P_TIPC = 0x88ca
+- ETH_P_TRAILER = 0x1c
+- ETH_P_TR_802_2 = 0x11
+- ETH_P_TSN = 0x22f0
+- ETH_P_WAN_PPP = 0x7
+- ETH_P_WCCP = 0x883e
+- ETH_P_X25 = 0x805
+- ETH_P_XDSA = 0xf8
+- EXTA = 0xe
+- EXTB = 0xf
+- EXTPROC = 0x10000
+- FALLOC_FL_COLLAPSE_RANGE = 0x8
+- FALLOC_FL_INSERT_RANGE = 0x20
+- FALLOC_FL_KEEP_SIZE = 0x1
+- FALLOC_FL_NO_HIDE_STALE = 0x4
+- FALLOC_FL_PUNCH_HOLE = 0x2
+- FALLOC_FL_UNSHARE_RANGE = 0x40
+- FALLOC_FL_ZERO_RANGE = 0x10
+- FD_CLOEXEC = 0x1
+- FD_SETSIZE = 0x400
+- FF0 = 0x0
+- FF1 = 0x8000
+- FFDLY = 0x8000
+- FLUSHO = 0x1000
+- FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
+- FS_ENCRYPTION_MODE_AES_256_CTS = 0x4
+- FS_ENCRYPTION_MODE_AES_256_GCM = 0x2
+- FS_ENCRYPTION_MODE_AES_256_XTS = 0x1
+- FS_ENCRYPTION_MODE_INVALID = 0x0
+- FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615
+- FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614
+- FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613
+- FS_KEY_DESCRIPTOR_SIZE = 0x8
+- FS_KEY_DESC_PREFIX = "fscrypt:"
+- FS_KEY_DESC_PREFIX_SIZE = 0x8
+- FS_MAX_KEY_SIZE = 0x40
+- FS_POLICY_FLAGS_PAD_16 = 0x2
+- FS_POLICY_FLAGS_PAD_32 = 0x3
+- FS_POLICY_FLAGS_PAD_4 = 0x0
+- FS_POLICY_FLAGS_PAD_8 = 0x1
+- FS_POLICY_FLAGS_PAD_MASK = 0x3
+- FS_POLICY_FLAGS_VALID = 0x3
+- F_DUPFD = 0x0
+- F_DUPFD_CLOEXEC = 0x406
+- F_EXLCK = 0x4
+- F_GETFD = 0x1
+- F_GETFL = 0x3
+- F_GETLEASE = 0x401
+- F_GETLK = 0xc
+- F_GETLK64 = 0xc
+- F_GETOWN = 0x9
+- F_GETOWN_EX = 0x10
+- F_GETPIPE_SZ = 0x408
+- F_GETSIG = 0xb
+- F_LOCK = 0x1
+- F_NOTIFY = 0x402
+- F_OFD_GETLK = 0x24
+- F_OFD_SETLK = 0x25
+- F_OFD_SETLKW = 0x26
+- F_OK = 0x0
+- F_RDLCK = 0x0
+- F_SETFD = 0x2
+- F_SETFL = 0x4
+- F_SETLEASE = 0x400
+- F_SETLK = 0xd
+- F_SETLK64 = 0xd
+- F_SETLKW = 0xe
+- F_SETLKW64 = 0xe
+- F_SETOWN = 0x8
+- F_SETOWN_EX = 0xf
+- F_SETPIPE_SZ = 0x407
+- F_SETSIG = 0xa
+- F_SHLCK = 0x8
+- F_TEST = 0x3
+- F_TLOCK = 0x2
+- F_ULOCK = 0x0
+- F_UNLCK = 0x2
+- F_WRLCK = 0x1
+- GENL_ADMIN_PERM = 0x1
+- GENL_CMD_CAP_DO = 0x2
+- GENL_CMD_CAP_DUMP = 0x4
+- GENL_CMD_CAP_HASPOL = 0x8
+- GENL_HDRLEN = 0x4
+- GENL_ID_CTRL = 0x10
+- GENL_ID_PMCRAID = 0x12
+- GENL_ID_VFS_DQUOT = 0x11
+- GENL_MAX_ID = 0x3ff
+- GENL_MIN_ID = 0x10
+- GENL_NAMSIZ = 0x10
+- GENL_START_ALLOC = 0x13
+- GENL_UNS_ADMIN_PERM = 0x10
+- GRND_NONBLOCK = 0x1
+- GRND_RANDOM = 0x2
+- HUPCL = 0x400
+- IBSHIFT = 0x10
+- ICANON = 0x2
+- ICMPV6_FILTER = 0x1
+- ICRNL = 0x100
+- IEXTEN = 0x8000
+- IFA_F_DADFAILED = 0x8
+- IFA_F_DEPRECATED = 0x20
+- IFA_F_HOMEADDRESS = 0x10
+- IFA_F_MANAGETEMPADDR = 0x100
+- IFA_F_MCAUTOJOIN = 0x400
+- IFA_F_NODAD = 0x2
+- IFA_F_NOPREFIXROUTE = 0x200
+- IFA_F_OPTIMISTIC = 0x4
+- IFA_F_PERMANENT = 0x80
+- IFA_F_SECONDARY = 0x1
+- IFA_F_STABLE_PRIVACY = 0x800
+- IFA_F_TEMPORARY = 0x1
+- IFA_F_TENTATIVE = 0x40
+- IFA_MAX = 0x8
+- IFF_ALLMULTI = 0x200
+- IFF_ATTACH_QUEUE = 0x200
+- IFF_AUTOMEDIA = 0x4000
+- IFF_BROADCAST = 0x2
+- IFF_DEBUG = 0x4
+- IFF_DETACH_QUEUE = 0x400
+- IFF_DORMANT = 0x20000
+- IFF_DYNAMIC = 0x8000
+- IFF_ECHO = 0x40000
+- IFF_LOOPBACK = 0x8
+- IFF_LOWER_UP = 0x10000
+- IFF_MASTER = 0x400
+- IFF_MULTICAST = 0x1000
+- IFF_MULTI_QUEUE = 0x100
+- IFF_NOARP = 0x80
+- IFF_NOFILTER = 0x1000
+- IFF_NOTRAILERS = 0x20
+- IFF_NO_PI = 0x1000
+- IFF_ONE_QUEUE = 0x2000
+- IFF_PERSIST = 0x800
+- IFF_POINTOPOINT = 0x10
+- IFF_PORTSEL = 0x2000
+- IFF_PROMISC = 0x100
+- IFF_RUNNING = 0x40
+- IFF_SLAVE = 0x800
+- IFF_TAP = 0x2
+- IFF_TUN = 0x1
+- IFF_TUN_EXCL = 0x8000
+- IFF_UP = 0x1
+- IFF_VNET_HDR = 0x4000
+- IFF_VOLATILE = 0x70c5a
+- IFNAMSIZ = 0x10
+- IGNBRK = 0x1
+- IGNCR = 0x80
+- IGNPAR = 0x4
+- IMAXBEL = 0x2000
+- INLCR = 0x40
+- INPCK = 0x10
+- IN_ACCESS = 0x1
+- IN_ALL_EVENTS = 0xfff
+- IN_ATTRIB = 0x4
+- IN_CLASSA_HOST = 0xffffff
+- IN_CLASSA_MAX = 0x80
+- IN_CLASSA_NET = 0xff000000
+- IN_CLASSA_NSHIFT = 0x18
+- IN_CLASSB_HOST = 0xffff
+- IN_CLASSB_MAX = 0x10000
+- IN_CLASSB_NET = 0xffff0000
+- IN_CLASSB_NSHIFT = 0x10
+- IN_CLASSC_HOST = 0xff
+- IN_CLASSC_NET = 0xffffff00
+- IN_CLASSC_NSHIFT = 0x8
+- IN_CLOEXEC = 0x80000
+- IN_CLOSE = 0x18
+- IN_CLOSE_NOWRITE = 0x10
+- IN_CLOSE_WRITE = 0x8
+- IN_CREATE = 0x100
+- IN_DELETE = 0x200
+- IN_DELETE_SELF = 0x400
+- IN_DONT_FOLLOW = 0x2000000
+- IN_EXCL_UNLINK = 0x4000000
+- IN_IGNORED = 0x8000
+- IN_ISDIR = 0x40000000
+- IN_LOOPBACKNET = 0x7f
+- IN_MASK_ADD = 0x20000000
+- IN_MODIFY = 0x2
+- IN_MOVE = 0xc0
+- IN_MOVED_FROM = 0x40
+- IN_MOVED_TO = 0x80
+- IN_MOVE_SELF = 0x800
+- IN_NONBLOCK = 0x800
+- IN_ONESHOT = 0x80000000
+- IN_ONLYDIR = 0x1000000
+- IN_OPEN = 0x20
+- IN_Q_OVERFLOW = 0x4000
+- IN_UNMOUNT = 0x2000
+- IPPROTO_AH = 0x33
+- IPPROTO_BEETPH = 0x5e
+- IPPROTO_COMP = 0x6c
+- IPPROTO_DCCP = 0x21
+- IPPROTO_DSTOPTS = 0x3c
+- IPPROTO_EGP = 0x8
+- IPPROTO_ENCAP = 0x62
+- IPPROTO_ESP = 0x32
+- IPPROTO_FRAGMENT = 0x2c
+- IPPROTO_GRE = 0x2f
+- IPPROTO_HOPOPTS = 0x0
+- IPPROTO_ICMP = 0x1
+- IPPROTO_ICMPV6 = 0x3a
+- IPPROTO_IDP = 0x16
+- IPPROTO_IGMP = 0x2
+- IPPROTO_IP = 0x0
+- IPPROTO_IPIP = 0x4
+- IPPROTO_IPV6 = 0x29
+- IPPROTO_MH = 0x87
+- IPPROTO_MPLS = 0x89
+- IPPROTO_MTP = 0x5c
+- IPPROTO_NONE = 0x3b
+- IPPROTO_PIM = 0x67
+- IPPROTO_PUP = 0xc
+- IPPROTO_RAW = 0xff
+- IPPROTO_ROUTING = 0x2b
+- IPPROTO_RSVP = 0x2e
+- IPPROTO_SCTP = 0x84
+- IPPROTO_TCP = 0x6
+- IPPROTO_TP = 0x1d
+- IPPROTO_UDP = 0x11
+- IPPROTO_UDPLITE = 0x88
+- IPV6_2292DSTOPTS = 0x4
+- IPV6_2292HOPLIMIT = 0x8
+- IPV6_2292HOPOPTS = 0x3
+- IPV6_2292PKTINFO = 0x2
+- IPV6_2292PKTOPTIONS = 0x6
+- IPV6_2292RTHDR = 0x5
+- IPV6_ADDRFORM = 0x1
+- IPV6_ADD_MEMBERSHIP = 0x14
+- IPV6_AUTHHDR = 0xa
+- IPV6_CHECKSUM = 0x7
+- IPV6_DONTFRAG = 0x3e
+- IPV6_DROP_MEMBERSHIP = 0x15
+- IPV6_DSTOPTS = 0x3b
+- IPV6_HDRINCL = 0x24
+- IPV6_HOPLIMIT = 0x34
+- IPV6_HOPOPTS = 0x36
+- IPV6_IPSEC_POLICY = 0x22
+- IPV6_JOIN_ANYCAST = 0x1b
+- IPV6_JOIN_GROUP = 0x14
+- IPV6_LEAVE_ANYCAST = 0x1c
+- IPV6_LEAVE_GROUP = 0x15
+- IPV6_MTU = 0x18
+- IPV6_MTU_DISCOVER = 0x17
+- IPV6_MULTICAST_HOPS = 0x12
+- IPV6_MULTICAST_IF = 0x11
+- IPV6_MULTICAST_LOOP = 0x13
+- IPV6_NEXTHOP = 0x9
+- IPV6_PATHMTU = 0x3d
+- IPV6_PKTINFO = 0x32
+- IPV6_PMTUDISC_DO = 0x2
+- IPV6_PMTUDISC_DONT = 0x0
+- IPV6_PMTUDISC_INTERFACE = 0x4
+- IPV6_PMTUDISC_OMIT = 0x5
+- IPV6_PMTUDISC_PROBE = 0x3
+- IPV6_PMTUDISC_WANT = 0x1
+- IPV6_RECVDSTOPTS = 0x3a
+- IPV6_RECVERR = 0x19
+- IPV6_RECVHOPLIMIT = 0x33
+- IPV6_RECVHOPOPTS = 0x35
+- IPV6_RECVPATHMTU = 0x3c
+- IPV6_RECVPKTINFO = 0x31
+- IPV6_RECVRTHDR = 0x38
+- IPV6_RECVTCLASS = 0x42
+- IPV6_ROUTER_ALERT = 0x16
+- IPV6_RTHDR = 0x39
+- IPV6_RTHDRDSTOPTS = 0x37
+- IPV6_RTHDR_LOOSE = 0x0
+- IPV6_RTHDR_STRICT = 0x1
+- IPV6_RTHDR_TYPE_0 = 0x0
+- IPV6_RXDSTOPTS = 0x3b
+- IPV6_RXHOPOPTS = 0x36
+- IPV6_TCLASS = 0x43
+- IPV6_UNICAST_HOPS = 0x10
+- IPV6_V6ONLY = 0x1a
+- IPV6_XFRM_POLICY = 0x23
+- IP_ADD_MEMBERSHIP = 0x23
+- IP_ADD_SOURCE_MEMBERSHIP = 0x27
+- IP_BIND_ADDRESS_NO_PORT = 0x18
+- IP_BLOCK_SOURCE = 0x26
+- IP_CHECKSUM = 0x17
+- IP_DEFAULT_MULTICAST_LOOP = 0x1
+- IP_DEFAULT_MULTICAST_TTL = 0x1
+- IP_DF = 0x4000
+- IP_DROP_MEMBERSHIP = 0x24
+- IP_DROP_SOURCE_MEMBERSHIP = 0x28
+- IP_FREEBIND = 0xf
+- IP_HDRINCL = 0x3
+- IP_IPSEC_POLICY = 0x10
+- IP_MAXPACKET = 0xffff
+- IP_MAX_MEMBERSHIPS = 0x14
+- IP_MF = 0x2000
+- IP_MINTTL = 0x15
+- IP_MSFILTER = 0x29
+- IP_MSS = 0x240
+- IP_MTU = 0xe
+- IP_MTU_DISCOVER = 0xa
+- IP_MULTICAST_ALL = 0x31
+- IP_MULTICAST_IF = 0x20
+- IP_MULTICAST_LOOP = 0x22
+- IP_MULTICAST_TTL = 0x21
+- IP_NODEFRAG = 0x16
+- IP_OFFMASK = 0x1fff
+- IP_OPTIONS = 0x4
+- IP_ORIGDSTADDR = 0x14
+- IP_PASSSEC = 0x12
+- IP_PKTINFO = 0x8
+- IP_PKTOPTIONS = 0x9
+- IP_PMTUDISC = 0xa
+- IP_PMTUDISC_DO = 0x2
+- IP_PMTUDISC_DONT = 0x0
+- IP_PMTUDISC_INTERFACE = 0x4
+- IP_PMTUDISC_OMIT = 0x5
+- IP_PMTUDISC_PROBE = 0x3
+- IP_PMTUDISC_WANT = 0x1
+- IP_RECVERR = 0xb
+- IP_RECVOPTS = 0x6
+- IP_RECVORIGDSTADDR = 0x14
+- IP_RECVRETOPTS = 0x7
+- IP_RECVTOS = 0xd
+- IP_RECVTTL = 0xc
+- IP_RETOPTS = 0x7
+- IP_RF = 0x8000
+- IP_ROUTER_ALERT = 0x5
+- IP_TOS = 0x1
+- IP_TRANSPARENT = 0x13
+- IP_TTL = 0x2
+- IP_UNBLOCK_SOURCE = 0x25
+- IP_UNICAST_IF = 0x32
+- IP_XFRM_POLICY = 0x11
+- ISIG = 0x1
+- ISTRIP = 0x20
+- IUCLC = 0x200
+- IUTF8 = 0x4000
+- IXANY = 0x800
+- IXOFF = 0x1000
+- IXON = 0x400
+- KEYCTL_ASSUME_AUTHORITY = 0x10
+- KEYCTL_CHOWN = 0x4
+- KEYCTL_CLEAR = 0x7
+- KEYCTL_DESCRIBE = 0x6
+- KEYCTL_DH_COMPUTE = 0x17
+- KEYCTL_GET_KEYRING_ID = 0x0
+- KEYCTL_GET_PERSISTENT = 0x16
+- KEYCTL_GET_SECURITY = 0x11
+- KEYCTL_INSTANTIATE = 0xc
+- KEYCTL_INSTANTIATE_IOV = 0x14
+- KEYCTL_INVALIDATE = 0x15
+- KEYCTL_JOIN_SESSION_KEYRING = 0x1
+- KEYCTL_LINK = 0x8
+- KEYCTL_NEGATE = 0xd
+- KEYCTL_READ = 0xb
+- KEYCTL_REJECT = 0x13
+- KEYCTL_REVOKE = 0x3
+- KEYCTL_SEARCH = 0xa
+- KEYCTL_SESSION_TO_PARENT = 0x12
+- KEYCTL_SETPERM = 0x5
+- KEYCTL_SET_REQKEY_KEYRING = 0xe
+- KEYCTL_SET_TIMEOUT = 0xf
+- KEYCTL_UNLINK = 0x9
+- KEYCTL_UPDATE = 0x2
+- KEY_REQKEY_DEFL_DEFAULT = 0x0
+- KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6
+- KEY_REQKEY_DEFL_NO_CHANGE = -0x1
+- KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2
+- KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7
+- KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3
+- KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1
+- KEY_REQKEY_DEFL_USER_KEYRING = 0x4
+- KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
+- KEY_SPEC_GROUP_KEYRING = -0x6
+- KEY_SPEC_PROCESS_KEYRING = -0x2
+- KEY_SPEC_REQKEY_AUTH_KEY = -0x7
+- KEY_SPEC_REQUESTOR_KEYRING = -0x8
+- KEY_SPEC_SESSION_KEYRING = -0x3
+- KEY_SPEC_THREAD_KEYRING = -0x1
+- KEY_SPEC_USER_KEYRING = -0x4
+- KEY_SPEC_USER_SESSION_KEYRING = -0x5
+- LINUX_REBOOT_CMD_CAD_OFF = 0x0
+- LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
+- LINUX_REBOOT_CMD_HALT = 0xcdef0123
+- LINUX_REBOOT_CMD_KEXEC = 0x45584543
+- LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
+- LINUX_REBOOT_CMD_RESTART = 0x1234567
+- LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
+- LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
+- LINUX_REBOOT_MAGIC1 = 0xfee1dead
+- LINUX_REBOOT_MAGIC2 = 0x28121969
+- LOCK_EX = 0x2
+- LOCK_NB = 0x4
+- LOCK_SH = 0x1
+- LOCK_UN = 0x8
+- MADV_DODUMP = 0x11
+- MADV_DOFORK = 0xb
+- MADV_DONTDUMP = 0x10
+- MADV_DONTFORK = 0xa
+- MADV_DONTNEED = 0x4
+- MADV_FREE = 0x8
+- MADV_HUGEPAGE = 0xe
+- MADV_HWPOISON = 0x64
+- MADV_MERGEABLE = 0xc
+- MADV_NOHUGEPAGE = 0xf
+- MADV_NORMAL = 0x0
+- MADV_RANDOM = 0x1
+- MADV_REMOVE = 0x9
+- MADV_SEQUENTIAL = 0x2
+- MADV_UNMERGEABLE = 0xd
+- MADV_WILLNEED = 0x3
+- MAP_32BIT = 0x40
+- MAP_ANON = 0x20
+- MAP_ANONYMOUS = 0x20
+- MAP_DENYWRITE = 0x800
+- MAP_EXECUTABLE = 0x1000
+- MAP_FILE = 0x0
+- MAP_FIXED = 0x10
+- MAP_GROWSDOWN = 0x100
+- MAP_HUGETLB = 0x40000
+- MAP_HUGE_MASK = 0x3f
+- MAP_HUGE_SHIFT = 0x1a
+- MAP_LOCKED = 0x2000
+- MAP_NONBLOCK = 0x10000
+- MAP_NORESERVE = 0x4000
+- MAP_POPULATE = 0x8000
+- MAP_PRIVATE = 0x2
+- MAP_SHARED = 0x1
+- MAP_STACK = 0x20000
+- MAP_TYPE = 0xf
+- MCL_CURRENT = 0x1
+- MCL_FUTURE = 0x2
+- MCL_ONFAULT = 0x4
+- MNT_DETACH = 0x2
+- MNT_EXPIRE = 0x4
+- MNT_FORCE = 0x1
+- MSG_BATCH = 0x40000
+- MSG_CMSG_CLOEXEC = 0x40000000
+- MSG_CONFIRM = 0x800
+- MSG_CTRUNC = 0x8
+- MSG_DONTROUTE = 0x4
+- MSG_DONTWAIT = 0x40
+- MSG_EOR = 0x80
+- MSG_ERRQUEUE = 0x2000
+- MSG_FASTOPEN = 0x20000000
+- MSG_FIN = 0x200
+- MSG_MORE = 0x8000
+- MSG_NOSIGNAL = 0x4000
+- MSG_OOB = 0x1
+- MSG_PEEK = 0x2
+- MSG_PROXY = 0x10
+- MSG_RST = 0x1000
+- MSG_SYN = 0x400
+- MSG_TRUNC = 0x20
+- MSG_TRYHARD = 0x4
+- MSG_WAITALL = 0x100
+- MSG_WAITFORONE = 0x10000
+- MS_ACTIVE = 0x40000000
+- MS_ASYNC = 0x1
+- MS_BIND = 0x1000
+- MS_BORN = 0x20000000
+- MS_DIRSYNC = 0x80
+- MS_INVALIDATE = 0x2
+- MS_I_VERSION = 0x800000
+- MS_KERNMOUNT = 0x400000
+- MS_LAZYTIME = 0x2000000
+- MS_MANDLOCK = 0x40
+- MS_MGC_MSK = 0xffff0000
+- MS_MGC_VAL = 0xc0ed0000
+- MS_MOVE = 0x2000
+- MS_NOATIME = 0x400
+- MS_NODEV = 0x4
+- MS_NODIRATIME = 0x800
+- MS_NOEXEC = 0x8
+- MS_NOREMOTELOCK = 0x8000000
+- MS_NOSEC = 0x10000000
+- MS_NOSUID = 0x2
+- MS_NOUSER = -0x80000000
+- MS_POSIXACL = 0x10000
+- MS_PRIVATE = 0x40000
+- MS_RDONLY = 0x1
+- MS_REC = 0x4000
+- MS_RELATIME = 0x200000
+- MS_REMOUNT = 0x20
+- MS_RMT_MASK = 0x2800051
+- MS_SHARED = 0x100000
+- MS_SILENT = 0x8000
+- MS_SLAVE = 0x80000
+- MS_STRICTATIME = 0x1000000
+- MS_SYNC = 0x4
+- MS_SYNCHRONOUS = 0x10
+- MS_UNBINDABLE = 0x20000
+- MS_VERBOSE = 0x8000
+- NAME_MAX = 0xff
+- NETLINK_ADD_MEMBERSHIP = 0x1
+- NETLINK_AUDIT = 0x9
+- NETLINK_BROADCAST_ERROR = 0x4
+- NETLINK_CAP_ACK = 0xa
+- NETLINK_CONNECTOR = 0xb
+- NETLINK_CRYPTO = 0x15
+- NETLINK_DNRTMSG = 0xe
+- NETLINK_DROP_MEMBERSHIP = 0x2
+- NETLINK_ECRYPTFS = 0x13
+- NETLINK_FIB_LOOKUP = 0xa
+- NETLINK_FIREWALL = 0x3
+- NETLINK_GENERIC = 0x10
+- NETLINK_INET_DIAG = 0x4
+- NETLINK_IP6_FW = 0xd
+- NETLINK_ISCSI = 0x8
+- NETLINK_KOBJECT_UEVENT = 0xf
+- NETLINK_LISTEN_ALL_NSID = 0x8
+- NETLINK_LIST_MEMBERSHIPS = 0x9
+- NETLINK_NETFILTER = 0xc
+- NETLINK_NFLOG = 0x5
+- NETLINK_NO_ENOBUFS = 0x5
+- NETLINK_PKTINFO = 0x3
+- NETLINK_RDMA = 0x14
+- NETLINK_ROUTE = 0x0
+- NETLINK_RX_RING = 0x6
+- NETLINK_SCSITRANSPORT = 0x12
+- NETLINK_SELINUX = 0x7
+- NETLINK_SOCK_DIAG = 0x4
+- NETLINK_TX_RING = 0x7
+- NETLINK_UNUSED = 0x1
+- NETLINK_USERSOCK = 0x2
+- NETLINK_XFRM = 0x6
+- NL0 = 0x0
+- NL1 = 0x100
+- NLA_ALIGNTO = 0x4
+- NLA_F_NESTED = 0x8000
+- NLA_F_NET_BYTEORDER = 0x4000
+- NLA_HDRLEN = 0x4
+- NLDLY = 0x100
+- NLMSG_ALIGNTO = 0x4
+- NLMSG_DONE = 0x3
+- NLMSG_ERROR = 0x2
+- NLMSG_HDRLEN = 0x10
+- NLMSG_MIN_TYPE = 0x10
+- NLMSG_NOOP = 0x1
+- NLMSG_OVERRUN = 0x4
+- NLM_F_ACK = 0x4
+- NLM_F_APPEND = 0x800
+- NLM_F_ATOMIC = 0x400
+- NLM_F_CREATE = 0x400
+- NLM_F_DUMP = 0x300
+- NLM_F_DUMP_FILTERED = 0x20
+- NLM_F_DUMP_INTR = 0x10
+- NLM_F_ECHO = 0x8
+- NLM_F_EXCL = 0x200
+- NLM_F_MATCH = 0x200
+- NLM_F_MULTI = 0x2
+- NLM_F_REPLACE = 0x100
+- NLM_F_REQUEST = 0x1
+- NLM_F_ROOT = 0x100
+- NOFLSH = 0x80
+- OCRNL = 0x8
+- OFDEL = 0x80
+- OFILL = 0x40
+- OLCUC = 0x2
+- ONLCR = 0x4
+- ONLRET = 0x20
+- ONOCR = 0x10
+- OPOST = 0x1
+- O_ACCMODE = 0x3
+- O_APPEND = 0x400
+- O_ASYNC = 0x2000
+- O_CLOEXEC = 0x80000
+- O_CREAT = 0x40
+- O_DIRECT = 0x4000
+- O_DIRECTORY = 0x10000
+- O_DSYNC = 0x1000
+- O_EXCL = 0x80
+- O_FSYNC = 0x101000
+- O_LARGEFILE = 0x8000
+- O_NDELAY = 0x800
+- O_NOATIME = 0x40000
+- O_NOCTTY = 0x100
+- O_NOFOLLOW = 0x20000
+- O_NONBLOCK = 0x800
+- O_PATH = 0x200000
+- O_RDONLY = 0x0
+- O_RDWR = 0x2
+- O_RSYNC = 0x101000
+- O_SYNC = 0x101000
+- O_TMPFILE = 0x410000
+- O_TRUNC = 0x200
+- O_WRONLY = 0x1
+- PACKET_ADD_MEMBERSHIP = 0x1
+- PACKET_AUXDATA = 0x8
+- PACKET_BROADCAST = 0x1
+- PACKET_COPY_THRESH = 0x7
+- PACKET_DROP_MEMBERSHIP = 0x2
+- PACKET_FANOUT = 0x12
+- PACKET_FANOUT_CBPF = 0x6
+- PACKET_FANOUT_CPU = 0x2
+- PACKET_FANOUT_DATA = 0x16
+- PACKET_FANOUT_EBPF = 0x7
+- PACKET_FANOUT_FLAG_DEFRAG = 0x8000
+- PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
+- PACKET_FANOUT_HASH = 0x0
+- PACKET_FANOUT_LB = 0x1
+- PACKET_FANOUT_QM = 0x5
+- PACKET_FANOUT_RND = 0x4
+- PACKET_FANOUT_ROLLOVER = 0x3
+- PACKET_FASTROUTE = 0x6
+- PACKET_HDRLEN = 0xb
+- PACKET_HOST = 0x0
+- PACKET_KERNEL = 0x7
+- PACKET_LOOPBACK = 0x5
+- PACKET_LOSS = 0xe
+- PACKET_MR_ALLMULTI = 0x2
+- PACKET_MR_MULTICAST = 0x0
+- PACKET_MR_PROMISC = 0x1
+- PACKET_MR_UNICAST = 0x3
+- PACKET_MULTICAST = 0x2
+- PACKET_ORIGDEV = 0x9
+- PACKET_OTHERHOST = 0x3
+- PACKET_OUTGOING = 0x4
+- PACKET_QDISC_BYPASS = 0x14
+- PACKET_RECV_OUTPUT = 0x3
+- PACKET_RESERVE = 0xc
+- PACKET_ROLLOVER_STATS = 0x15
+- PACKET_RX_RING = 0x5
+- PACKET_STATISTICS = 0x6
+- PACKET_TIMESTAMP = 0x11
+- PACKET_TX_HAS_OFF = 0x13
+- PACKET_TX_RING = 0xd
+- PACKET_TX_TIMESTAMP = 0x10
+- PACKET_USER = 0x6
+- PACKET_VERSION = 0xa
+- PACKET_VNET_HDR = 0xf
+- PARENB = 0x100
+- PARITY_CRC16_PR0 = 0x2
+- PARITY_CRC16_PR0_CCITT = 0x4
+- PARITY_CRC16_PR1 = 0x3
+- PARITY_CRC16_PR1_CCITT = 0x5
+- PARITY_CRC32_PR0_CCITT = 0x6
+- PARITY_CRC32_PR1_CCITT = 0x7
+- PARITY_DEFAULT = 0x0
+- PARITY_NONE = 0x1
+- PARMRK = 0x8
+- PARODD = 0x200
+- PENDIN = 0x4000
+- PERF_EVENT_IOC_DISABLE = 0x2401
+- PERF_EVENT_IOC_ENABLE = 0x2400
+- PERF_EVENT_IOC_ID = 0x80042407
+- PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409
+- PERF_EVENT_IOC_PERIOD = 0x40082404
+- PERF_EVENT_IOC_REFRESH = 0x2402
+- PERF_EVENT_IOC_RESET = 0x2403
+- PERF_EVENT_IOC_SET_BPF = 0x40042408
+- PERF_EVENT_IOC_SET_FILTER = 0x40042406
+- PERF_EVENT_IOC_SET_OUTPUT = 0x2405
+- PRIO_PGRP = 0x1
+- PRIO_PROCESS = 0x0
+- PRIO_USER = 0x2
+- PROT_EXEC = 0x4
+- PROT_GROWSDOWN = 0x1000000
+- PROT_GROWSUP = 0x2000000
+- PROT_NONE = 0x0
+- PROT_READ = 0x1
+- PROT_WRITE = 0x2
+- PR_CAPBSET_DROP = 0x18
+- PR_CAPBSET_READ = 0x17
+- PR_CAP_AMBIENT = 0x2f
+- PR_CAP_AMBIENT_CLEAR_ALL = 0x4
+- PR_CAP_AMBIENT_IS_SET = 0x1
+- PR_CAP_AMBIENT_LOWER = 0x3
+- PR_CAP_AMBIENT_RAISE = 0x2
+- PR_ENDIAN_BIG = 0x0
+- PR_ENDIAN_LITTLE = 0x1
+- PR_ENDIAN_PPC_LITTLE = 0x2
+- PR_FPEMU_NOPRINT = 0x1
+- PR_FPEMU_SIGFPE = 0x2
+- PR_FP_EXC_ASYNC = 0x2
+- PR_FP_EXC_DISABLED = 0x0
+- PR_FP_EXC_DIV = 0x10000
+- PR_FP_EXC_INV = 0x100000
+- PR_FP_EXC_NONRECOV = 0x1
+- PR_FP_EXC_OVF = 0x20000
+- PR_FP_EXC_PRECISE = 0x3
+- PR_FP_EXC_RES = 0x80000
+- PR_FP_EXC_SW_ENABLE = 0x80
+- PR_FP_EXC_UND = 0x40000
+- PR_FP_MODE_FR = 0x1
+- PR_FP_MODE_FRE = 0x2
+- PR_GET_CHILD_SUBREAPER = 0x25
+- PR_GET_DUMPABLE = 0x3
+- PR_GET_ENDIAN = 0x13
+- PR_GET_FPEMU = 0x9
+- PR_GET_FPEXC = 0xb
+- PR_GET_FP_MODE = 0x2e
+- PR_GET_KEEPCAPS = 0x7
+- PR_GET_NAME = 0x10
+- PR_GET_NO_NEW_PRIVS = 0x27
+- PR_GET_PDEATHSIG = 0x2
+- PR_GET_SECCOMP = 0x15
+- PR_GET_SECUREBITS = 0x1b
+- PR_GET_THP_DISABLE = 0x2a
+- PR_GET_TID_ADDRESS = 0x28
+- PR_GET_TIMERSLACK = 0x1e
+- PR_GET_TIMING = 0xd
+- PR_GET_TSC = 0x19
+- PR_GET_UNALIGN = 0x5
+- PR_MCE_KILL = 0x21
+- PR_MCE_KILL_CLEAR = 0x0
+- PR_MCE_KILL_DEFAULT = 0x2
+- PR_MCE_KILL_EARLY = 0x1
+- PR_MCE_KILL_GET = 0x22
+- PR_MCE_KILL_LATE = 0x0
+- PR_MCE_KILL_SET = 0x1
+- PR_MPX_DISABLE_MANAGEMENT = 0x2c
+- PR_MPX_ENABLE_MANAGEMENT = 0x2b
+- PR_SET_CHILD_SUBREAPER = 0x24
+- PR_SET_DUMPABLE = 0x4
+- PR_SET_ENDIAN = 0x14
+- PR_SET_FPEMU = 0xa
+- PR_SET_FPEXC = 0xc
+- PR_SET_FP_MODE = 0x2d
+- PR_SET_KEEPCAPS = 0x8
+- PR_SET_MM = 0x23
+- PR_SET_MM_ARG_END = 0x9
+- PR_SET_MM_ARG_START = 0x8
+- PR_SET_MM_AUXV = 0xc
+- PR_SET_MM_BRK = 0x7
+- PR_SET_MM_END_CODE = 0x2
+- PR_SET_MM_END_DATA = 0x4
+- PR_SET_MM_ENV_END = 0xb
+- PR_SET_MM_ENV_START = 0xa
+- PR_SET_MM_EXE_FILE = 0xd
+- PR_SET_MM_MAP = 0xe
+- PR_SET_MM_MAP_SIZE = 0xf
+- PR_SET_MM_START_BRK = 0x6
+- PR_SET_MM_START_CODE = 0x1
+- PR_SET_MM_START_DATA = 0x3
+- PR_SET_MM_START_STACK = 0x5
+- PR_SET_NAME = 0xf
+- PR_SET_NO_NEW_PRIVS = 0x26
+- PR_SET_PDEATHSIG = 0x1
+- PR_SET_PTRACER = 0x59616d61
+- PR_SET_PTRACER_ANY = 0xffffffff
+- PR_SET_SECCOMP = 0x16
+- PR_SET_SECUREBITS = 0x1c
+- PR_SET_THP_DISABLE = 0x29
+- PR_SET_TIMERSLACK = 0x1d
+- PR_SET_TIMING = 0xe
+- PR_SET_TSC = 0x1a
+- PR_SET_UNALIGN = 0x6
+- PR_TASK_PERF_EVENTS_DISABLE = 0x1f
+- PR_TASK_PERF_EVENTS_ENABLE = 0x20
+- PR_TIMING_STATISTICAL = 0x0
+- PR_TIMING_TIMESTAMP = 0x1
+- PR_TSC_ENABLE = 0x1
+- PR_TSC_SIGSEGV = 0x2
+- PR_UNALIGN_NOPRINT = 0x1
+- PR_UNALIGN_SIGBUS = 0x2
+- PTRACE_ATTACH = 0x10
+- PTRACE_CONT = 0x7
+- PTRACE_DETACH = 0x11
+- PTRACE_EVENT_CLONE = 0x3
+- PTRACE_EVENT_EXEC = 0x4
+- PTRACE_EVENT_EXIT = 0x6
+- PTRACE_EVENT_FORK = 0x1
+- PTRACE_EVENT_SECCOMP = 0x7
+- PTRACE_EVENT_STOP = 0x80
+- PTRACE_EVENT_VFORK = 0x2
+- PTRACE_EVENT_VFORK_DONE = 0x5
+- PTRACE_GETEVENTMSG = 0x4201
+- PTRACE_GETFPREGS = 0xe
+- PTRACE_GETFPXREGS = 0x12
+- PTRACE_GETREGS = 0xc
+- PTRACE_GETREGSET = 0x4204
+- PTRACE_GETSIGINFO = 0x4202
+- PTRACE_GETSIGMASK = 0x420a
+- PTRACE_GET_THREAD_AREA = 0x19
+- PTRACE_INTERRUPT = 0x4207
+- PTRACE_KILL = 0x8
+- PTRACE_LISTEN = 0x4208
+- PTRACE_OLDSETOPTIONS = 0x15
+- PTRACE_O_EXITKILL = 0x100000
+- PTRACE_O_MASK = 0x3000ff
+- PTRACE_O_SUSPEND_SECCOMP = 0x200000
+- PTRACE_O_TRACECLONE = 0x8
+- PTRACE_O_TRACEEXEC = 0x10
+- PTRACE_O_TRACEEXIT = 0x40
+- PTRACE_O_TRACEFORK = 0x2
+- PTRACE_O_TRACESECCOMP = 0x80
+- PTRACE_O_TRACESYSGOOD = 0x1
+- PTRACE_O_TRACEVFORK = 0x4
+- PTRACE_O_TRACEVFORKDONE = 0x20
+- PTRACE_PEEKDATA = 0x2
+- PTRACE_PEEKSIGINFO = 0x4209
+- PTRACE_PEEKSIGINFO_SHARED = 0x1
+- PTRACE_PEEKTEXT = 0x1
+- PTRACE_PEEKUSR = 0x3
+- PTRACE_POKEDATA = 0x5
+- PTRACE_POKETEXT = 0x4
+- PTRACE_POKEUSR = 0x6
+- PTRACE_SECCOMP_GET_FILTER = 0x420c
+- PTRACE_SEIZE = 0x4206
+- PTRACE_SETFPREGS = 0xf
+- PTRACE_SETFPXREGS = 0x13
+- PTRACE_SETOPTIONS = 0x4200
+- PTRACE_SETREGS = 0xd
+- PTRACE_SETREGSET = 0x4205
+- PTRACE_SETSIGINFO = 0x4203
+- PTRACE_SETSIGMASK = 0x420b
+- PTRACE_SET_THREAD_AREA = 0x1a
+- PTRACE_SINGLEBLOCK = 0x21
+- PTRACE_SINGLESTEP = 0x9
+- PTRACE_SYSCALL = 0x18
+- PTRACE_SYSEMU = 0x1f
+- PTRACE_SYSEMU_SINGLESTEP = 0x20
+- PTRACE_TRACEME = 0x0
+- RLIMIT_AS = 0x9
+- RLIMIT_CORE = 0x4
+- RLIMIT_CPU = 0x0
+- RLIMIT_DATA = 0x2
+- RLIMIT_FSIZE = 0x1
+- RLIMIT_LOCKS = 0xa
+- RLIMIT_MEMLOCK = 0x8
+- RLIMIT_MSGQUEUE = 0xc
+- RLIMIT_NICE = 0xd
+- RLIMIT_NOFILE = 0x7
+- RLIMIT_NPROC = 0x6
+- RLIMIT_RSS = 0x5
+- RLIMIT_RTPRIO = 0xe
+- RLIMIT_RTTIME = 0xf
+- RLIMIT_SIGPENDING = 0xb
+- RLIMIT_STACK = 0x3
+- RLIM_INFINITY = -0x1
+- RTAX_ADVMSS = 0x8
+- RTAX_CC_ALGO = 0x10
+- RTAX_CWND = 0x7
+- RTAX_FEATURES = 0xc
+- RTAX_FEATURE_ALLFRAG = 0x8
+- RTAX_FEATURE_ECN = 0x1
+- RTAX_FEATURE_MASK = 0xf
+- RTAX_FEATURE_SACK = 0x2
+- RTAX_FEATURE_TIMESTAMP = 0x4
+- RTAX_HOPLIMIT = 0xa
+- RTAX_INITCWND = 0xb
+- RTAX_INITRWND = 0xe
+- RTAX_LOCK = 0x1
+- RTAX_MAX = 0x10
+- RTAX_MTU = 0x2
+- RTAX_QUICKACK = 0xf
+- RTAX_REORDERING = 0x9
+- RTAX_RTO_MIN = 0xd
+- RTAX_RTT = 0x4
+- RTAX_RTTVAR = 0x5
+- RTAX_SSTHRESH = 0x6
+- RTAX_UNSPEC = 0x0
+- RTAX_WINDOW = 0x3
+- RTA_ALIGNTO = 0x4
+- RTA_MAX = 0x19
+- RTCF_DIRECTSRC = 0x4000000
+- RTCF_DOREDIRECT = 0x1000000
+- RTCF_LOG = 0x2000000
+- RTCF_MASQ = 0x400000
+- RTCF_NAT = 0x800000
+- RTCF_VALVE = 0x200000
+- RTF_ADDRCLASSMASK = 0xf8000000
+- RTF_ADDRCONF = 0x40000
+- RTF_ALLONLINK = 0x20000
+- RTF_BROADCAST = 0x10000000
+- RTF_CACHE = 0x1000000
+- RTF_DEFAULT = 0x10000
+- RTF_DYNAMIC = 0x10
+- RTF_FLOW = 0x2000000
+- RTF_GATEWAY = 0x2
+- RTF_HOST = 0x4
+- RTF_INTERFACE = 0x40000000
+- RTF_IRTT = 0x100
+- RTF_LINKRT = 0x100000
+- RTF_LOCAL = 0x80000000
+- RTF_MODIFIED = 0x20
+- RTF_MSS = 0x40
+- RTF_MTU = 0x40
+- RTF_MULTICAST = 0x20000000
+- RTF_NAT = 0x8000000
+- RTF_NOFORWARD = 0x1000
+- RTF_NONEXTHOP = 0x200000
+- RTF_NOPMTUDISC = 0x4000
+- RTF_POLICY = 0x4000000
+- RTF_REINSTATE = 0x8
+- RTF_REJECT = 0x200
+- RTF_STATIC = 0x400
+- RTF_THROW = 0x2000
+- RTF_UP = 0x1
+- RTF_WINDOW = 0x80
+- RTF_XRESOLVE = 0x800
+- RTM_BASE = 0x10
+- RTM_DELACTION = 0x31
+- RTM_DELADDR = 0x15
+- RTM_DELADDRLABEL = 0x49
+- RTM_DELLINK = 0x11
+- RTM_DELMDB = 0x55
+- RTM_DELNEIGH = 0x1d
+- RTM_DELNSID = 0x59
+- RTM_DELQDISC = 0x25
+- RTM_DELROUTE = 0x19
+- RTM_DELRULE = 0x21
+- RTM_DELTCLASS = 0x29
+- RTM_DELTFILTER = 0x2d
+- RTM_F_CLONED = 0x200
+- RTM_F_EQUALIZE = 0x400
+- RTM_F_LOOKUP_TABLE = 0x1000
+- RTM_F_NOTIFY = 0x100
+- RTM_F_PREFIX = 0x800
+- RTM_GETACTION = 0x32
+- RTM_GETADDR = 0x16
+- RTM_GETADDRLABEL = 0x4a
+- RTM_GETANYCAST = 0x3e
+- RTM_GETDCB = 0x4e
+- RTM_GETLINK = 0x12
+- RTM_GETMDB = 0x56
+- RTM_GETMULTICAST = 0x3a
+- RTM_GETNEIGH = 0x1e
+- RTM_GETNEIGHTBL = 0x42
+- RTM_GETNETCONF = 0x52
+- RTM_GETNSID = 0x5a
+- RTM_GETQDISC = 0x26
+- RTM_GETROUTE = 0x1a
+- RTM_GETRULE = 0x22
+- RTM_GETSTATS = 0x5e
+- RTM_GETTCLASS = 0x2a
+- RTM_GETTFILTER = 0x2e
+- RTM_MAX = 0x5f
+- RTM_NEWACTION = 0x30
+- RTM_NEWADDR = 0x14
+- RTM_NEWADDRLABEL = 0x48
+- RTM_NEWLINK = 0x10
+- RTM_NEWMDB = 0x54
+- RTM_NEWNDUSEROPT = 0x44
+- RTM_NEWNEIGH = 0x1c
+- RTM_NEWNEIGHTBL = 0x40
+- RTM_NEWNETCONF = 0x50
+- RTM_NEWNSID = 0x58
+- RTM_NEWPREFIX = 0x34
+- RTM_NEWQDISC = 0x24
+- RTM_NEWROUTE = 0x18
+- RTM_NEWRULE = 0x20
+- RTM_NEWSTATS = 0x5c
+- RTM_NEWTCLASS = 0x28
+- RTM_NEWTFILTER = 0x2c
+- RTM_NR_FAMILIES = 0x14
+- RTM_NR_MSGTYPES = 0x50
+- RTM_SETDCB = 0x4f
+- RTM_SETLINK = 0x13
+- RTM_SETNEIGHTBL = 0x43
+- RTNH_ALIGNTO = 0x4
+- RTNH_COMPARE_MASK = 0x19
+- RTNH_F_DEAD = 0x1
+- RTNH_F_LINKDOWN = 0x10
+- RTNH_F_OFFLOAD = 0x8
+- RTNH_F_ONLINK = 0x4
+- RTNH_F_PERVASIVE = 0x2
+- RTN_MAX = 0xb
+- RTPROT_BABEL = 0x2a
+- RTPROT_BIRD = 0xc
+- RTPROT_BOOT = 0x3
+- RTPROT_DHCP = 0x10
+- RTPROT_DNROUTED = 0xd
+- RTPROT_GATED = 0x8
+- RTPROT_KERNEL = 0x2
+- RTPROT_MROUTED = 0x11
+- RTPROT_MRT = 0xa
+- RTPROT_NTK = 0xf
+- RTPROT_RA = 0x9
+- RTPROT_REDIRECT = 0x1
+- RTPROT_STATIC = 0x4
+- RTPROT_UNSPEC = 0x0
+- RTPROT_XORP = 0xe
+- RTPROT_ZEBRA = 0xb
+- RT_CLASS_DEFAULT = 0xfd
+- RT_CLASS_LOCAL = 0xff
+- RT_CLASS_MAIN = 0xfe
+- RT_CLASS_MAX = 0xff
+- RT_CLASS_UNSPEC = 0x0
+- RUSAGE_CHILDREN = -0x1
+- RUSAGE_SELF = 0x0
+- RUSAGE_THREAD = 0x1
+- SCM_CREDENTIALS = 0x2
+- SCM_RIGHTS = 0x1
+- SCM_TIMESTAMP = 0x1d
+- SCM_TIMESTAMPING = 0x25
+- SCM_TIMESTAMPING_OPT_STATS = 0x36
+- SCM_TIMESTAMPNS = 0x23
+- SCM_WIFI_STATUS = 0x29
+- SECCOMP_MODE_DISABLED = 0x0
+- SECCOMP_MODE_FILTER = 0x2
+- SECCOMP_MODE_STRICT = 0x1
+- SHUT_RD = 0x0
+- SHUT_RDWR = 0x2
+- SHUT_WR = 0x1
+- SIOCADDDLCI = 0x8980
+- SIOCADDMULTI = 0x8931
+- SIOCADDRT = 0x890b
+- SIOCATMARK = 0x8905
+- SIOCBONDCHANGEACTIVE = 0x8995
+- SIOCBONDENSLAVE = 0x8990
+- SIOCBONDINFOQUERY = 0x8994
+- SIOCBONDRELEASE = 0x8991
+- SIOCBONDSETHWADDR = 0x8992
+- SIOCBONDSLAVEINFOQUERY = 0x8993
+- SIOCBRADDBR = 0x89a0
+- SIOCBRADDIF = 0x89a2
+- SIOCBRDELBR = 0x89a1
+- SIOCBRDELIF = 0x89a3
+- SIOCDARP = 0x8953
+- SIOCDELDLCI = 0x8981
+- SIOCDELMULTI = 0x8932
+- SIOCDELRT = 0x890c
+- SIOCDEVPRIVATE = 0x89f0
+- SIOCDIFADDR = 0x8936
+- SIOCDRARP = 0x8960
+- SIOCETHTOOL = 0x8946
+- SIOCGARP = 0x8954
+- SIOCGHWTSTAMP = 0x89b1
+- SIOCGIFADDR = 0x8915
+- SIOCGIFBR = 0x8940
+- SIOCGIFBRDADDR = 0x8919
+- SIOCGIFCONF = 0x8912
+- SIOCGIFCOUNT = 0x8938
+- SIOCGIFDSTADDR = 0x8917
+- SIOCGIFENCAP = 0x8925
+- SIOCGIFFLAGS = 0x8913
+- SIOCGIFHWADDR = 0x8927
+- SIOCGIFINDEX = 0x8933
+- SIOCGIFMAP = 0x8970
+- SIOCGIFMEM = 0x891f
+- SIOCGIFMETRIC = 0x891d
+- SIOCGIFMTU = 0x8921
+- SIOCGIFNAME = 0x8910
+- SIOCGIFNETMASK = 0x891b
+- SIOCGIFPFLAGS = 0x8935
+- SIOCGIFSLAVE = 0x8929
+- SIOCGIFTXQLEN = 0x8942
+- SIOCGIFVLAN = 0x8982
+- SIOCGMIIPHY = 0x8947
+- SIOCGMIIREG = 0x8948
+- SIOCGPGRP = 0x8904
+- SIOCGRARP = 0x8961
+- SIOCGSKNS = 0x894c
+- SIOCGSTAMP = 0x8906
+- SIOCGSTAMPNS = 0x8907
+- SIOCINQ = 0x541b
+- SIOCOUTQ = 0x5411
+- SIOCOUTQNSD = 0x894b
+- SIOCPROTOPRIVATE = 0x89e0
+- SIOCRTMSG = 0x890d
+- SIOCSARP = 0x8955
+- SIOCSHWTSTAMP = 0x89b0
+- SIOCSIFADDR = 0x8916
+- SIOCSIFBR = 0x8941
+- SIOCSIFBRDADDR = 0x891a
+- SIOCSIFDSTADDR = 0x8918
+- SIOCSIFENCAP = 0x8926
+- SIOCSIFFLAGS = 0x8914
+- SIOCSIFHWADDR = 0x8924
+- SIOCSIFHWBROADCAST = 0x8937
+- SIOCSIFLINK = 0x8911
+- SIOCSIFMAP = 0x8971
+- SIOCSIFMEM = 0x8920
+- SIOCSIFMETRIC = 0x891e
+- SIOCSIFMTU = 0x8922
+- SIOCSIFNAME = 0x8923
+- SIOCSIFNETMASK = 0x891c
+- SIOCSIFPFLAGS = 0x8934
+- SIOCSIFSLAVE = 0x8930
+- SIOCSIFTXQLEN = 0x8943
+- SIOCSIFVLAN = 0x8983
+- SIOCSMIIREG = 0x8949
+- SIOCSPGRP = 0x8902
+- SIOCSRARP = 0x8962
+- SIOCWANDEV = 0x894a
+- SOCK_CLOEXEC = 0x80000
+- SOCK_DCCP = 0x6
+- SOCK_DGRAM = 0x2
+- SOCK_IOC_TYPE = 0x89
+- SOCK_NONBLOCK = 0x800
+- SOCK_PACKET = 0xa
+- SOCK_RAW = 0x3
+- SOCK_RDM = 0x4
+- SOCK_SEQPACKET = 0x5
+- SOCK_STREAM = 0x1
+- SOL_AAL = 0x109
+- SOL_ALG = 0x117
+- SOL_ATM = 0x108
+- SOL_CAIF = 0x116
+- SOL_CAN_BASE = 0x64
+- SOL_DCCP = 0x10d
+- SOL_DECNET = 0x105
+- SOL_ICMPV6 = 0x3a
+- SOL_IP = 0x0
+- SOL_IPV6 = 0x29
+- SOL_IRDA = 0x10a
+- SOL_IUCV = 0x115
+- SOL_KCM = 0x119
+- SOL_LLC = 0x10c
+- SOL_NETBEUI = 0x10b
+- SOL_NETLINK = 0x10e
+- SOL_NFC = 0x118
+- SOL_PACKET = 0x107
+- SOL_PNPIPE = 0x113
+- SOL_PPPOL2TP = 0x111
+- SOL_RAW = 0xff
+- SOL_RDS = 0x114
+- SOL_RXRPC = 0x110
+- SOL_SOCKET = 0x1
+- SOL_TCP = 0x6
+- SOL_TIPC = 0x10f
+- SOL_X25 = 0x106
+- SOMAXCONN = 0x80
+- SO_ACCEPTCONN = 0x1e
+- SO_ATTACH_BPF = 0x32
+- SO_ATTACH_FILTER = 0x1a
+- SO_ATTACH_REUSEPORT_CBPF = 0x33
+- SO_ATTACH_REUSEPORT_EBPF = 0x34
+- SO_BINDTODEVICE = 0x19
+- SO_BPF_EXTENSIONS = 0x30
+- SO_BROADCAST = 0x6
+- SO_BSDCOMPAT = 0xe
+- SO_BUSY_POLL = 0x2e
+- SO_CNX_ADVICE = 0x35
+- SO_DEBUG = 0x1
+- SO_DETACH_BPF = 0x1b
+- SO_DETACH_FILTER = 0x1b
+- SO_DOMAIN = 0x27
+- SO_DONTROUTE = 0x5
+- SO_ERROR = 0x4
+- SO_GET_FILTER = 0x1a
+- SO_INCOMING_CPU = 0x31
+- SO_KEEPALIVE = 0x9
+- SO_LINGER = 0xd
+- SO_LOCK_FILTER = 0x2c
+- SO_MARK = 0x24
+- SO_MAX_PACING_RATE = 0x2f
+- SO_NOFCS = 0x2b
+- SO_NO_CHECK = 0xb
+- SO_OOBINLINE = 0xa
+- SO_PASSCRED = 0x10
+- SO_PASSSEC = 0x22
+- SO_PEEK_OFF = 0x2a
+- SO_PEERCRED = 0x11
+- SO_PEERNAME = 0x1c
+- SO_PEERSEC = 0x1f
+- SO_PRIORITY = 0xc
+- SO_PROTOCOL = 0x26
+- SO_RCVBUF = 0x8
+- SO_RCVBUFFORCE = 0x21
+- SO_RCVLOWAT = 0x12
+- SO_RCVTIMEO = 0x14
+- SO_REUSEADDR = 0x2
+- SO_REUSEPORT = 0xf
+- SO_RXQ_OVFL = 0x28
+- SO_SECURITY_AUTHENTICATION = 0x16
+- SO_SECURITY_ENCRYPTION_NETWORK = 0x18
+- SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
+- SO_SELECT_ERR_QUEUE = 0x2d
+- SO_SNDBUF = 0x7
+- SO_SNDBUFFORCE = 0x20
+- SO_SNDLOWAT = 0x13
+- SO_SNDTIMEO = 0x15
+- SO_TIMESTAMP = 0x1d
+- SO_TIMESTAMPING = 0x25
+- SO_TIMESTAMPNS = 0x23
+- SO_TYPE = 0x3
+- SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
+- SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
+- SO_VM_SOCKETS_BUFFER_SIZE = 0x0
+- SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
+- SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
+- SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
+- SO_VM_SOCKETS_TRUSTED = 0x5
+- SO_WIFI_STATUS = 0x29
+- SPLICE_F_GIFT = 0x8
+- SPLICE_F_MORE = 0x4
+- SPLICE_F_MOVE = 0x1
+- SPLICE_F_NONBLOCK = 0x2
+- S_BLKSIZE = 0x200
+- S_IEXEC = 0x40
+- S_IFBLK = 0x6000
+- S_IFCHR = 0x2000
+- S_IFDIR = 0x4000
+- S_IFIFO = 0x1000
+- S_IFLNK = 0xa000
+- S_IFMT = 0xf000
+- S_IFREG = 0x8000
+- S_IFSOCK = 0xc000
+- S_IREAD = 0x100
+- S_IRGRP = 0x20
+- S_IROTH = 0x4
+- S_IRUSR = 0x100
+- S_IRWXG = 0x38
+- S_IRWXO = 0x7
+- S_IRWXU = 0x1c0
+- S_ISGID = 0x400
+- S_ISUID = 0x800
+- S_ISVTX = 0x200
+- S_IWGRP = 0x10
+- S_IWOTH = 0x2
+- S_IWRITE = 0x80
+- S_IWUSR = 0x80
+- S_IXGRP = 0x8
+- S_IXOTH = 0x1
+- S_IXUSR = 0x40
+- TAB0 = 0x0
+- TAB1 = 0x800
+- TAB2 = 0x1000
+- TAB3 = 0x1800
+- TABDLY = 0x1800
+- TASKSTATS_CMD_ATTR_MAX = 0x4
+- TASKSTATS_CMD_MAX = 0x2
+- TASKSTATS_GENL_NAME = "TASKSTATS"
+- TASKSTATS_GENL_VERSION = 0x1
+- TASKSTATS_TYPE_MAX = 0x6
+- TASKSTATS_VERSION = 0x8
+- TCFLSH = 0x540b
+- TCGETA = 0x5405
+- TCGETS = 0x5401
+- TCGETS2 = 0x802c542a
+- TCGETX = 0x5432
+- TCIFLUSH = 0x0
+- TCIOFF = 0x2
+- TCIOFLUSH = 0x2
+- TCION = 0x3
+- TCOFLUSH = 0x1
+- TCOOFF = 0x0
+- TCOON = 0x1
+- TCP_CC_INFO = 0x1a
+- TCP_CONGESTION = 0xd
+- TCP_COOKIE_IN_ALWAYS = 0x1
+- TCP_COOKIE_MAX = 0x10
+- TCP_COOKIE_MIN = 0x8
+- TCP_COOKIE_OUT_NEVER = 0x2
+- TCP_COOKIE_PAIR_SIZE = 0x20
+- TCP_COOKIE_TRANSACTIONS = 0xf
+- TCP_CORK = 0x3
+- TCP_DEFER_ACCEPT = 0x9
+- TCP_FASTOPEN = 0x17
+- TCP_INFO = 0xb
+- TCP_KEEPCNT = 0x6
+- TCP_KEEPIDLE = 0x4
+- TCP_KEEPINTVL = 0x5
+- TCP_LINGER2 = 0x8
+- TCP_MAXSEG = 0x2
+- TCP_MAXWIN = 0xffff
+- TCP_MAX_WINSHIFT = 0xe
+- TCP_MD5SIG = 0xe
+- TCP_MD5SIG_MAXKEYLEN = 0x50
+- TCP_MSS = 0x200
+- TCP_MSS_DEFAULT = 0x218
+- TCP_MSS_DESIRED = 0x4c4
+- TCP_NODELAY = 0x1
+- TCP_NOTSENT_LOWAT = 0x19
+- TCP_QUEUE_SEQ = 0x15
+- TCP_QUICKACK = 0xc
+- TCP_REPAIR = 0x13
+- TCP_REPAIR_OPTIONS = 0x16
+- TCP_REPAIR_QUEUE = 0x14
+- TCP_REPAIR_WINDOW = 0x1d
+- TCP_SAVED_SYN = 0x1c
+- TCP_SAVE_SYN = 0x1b
+- TCP_SYNCNT = 0x7
+- TCP_S_DATA_IN = 0x4
+- TCP_S_DATA_OUT = 0x8
+- TCP_THIN_DUPACK = 0x11
+- TCP_THIN_LINEAR_TIMEOUTS = 0x10
+- TCP_TIMESTAMP = 0x18
+- TCP_USER_TIMEOUT = 0x12
+- TCP_WINDOW_CLAMP = 0xa
+- TCSAFLUSH = 0x2
+- TCSBRK = 0x5409
+- TCSBRKP = 0x5425
+- TCSETA = 0x5406
+- TCSETAF = 0x5408
+- TCSETAW = 0x5407
+- TCSETS = 0x5402
+- TCSETS2 = 0x402c542b
+- TCSETSF = 0x5404
+- TCSETSF2 = 0x402c542d
+- TCSETSW = 0x5403
+- TCSETSW2 = 0x402c542c
+- TCSETX = 0x5433
+- TCSETXF = 0x5434
+- TCSETXW = 0x5435
+- TCXONC = 0x540a
+- TIOCCBRK = 0x5428
+- TIOCCONS = 0x541d
+- TIOCEXCL = 0x540c
+- TIOCGDEV = 0x80045432
+- TIOCGETD = 0x5424
+- TIOCGEXCL = 0x80045440
+- TIOCGICOUNT = 0x545d
+- TIOCGLCKTRMIOS = 0x5456
+- TIOCGPGRP = 0x540f
+- TIOCGPKT = 0x80045438
+- TIOCGPTLCK = 0x80045439
+- TIOCGPTN = 0x80045430
+- TIOCGRS485 = 0x542e
+- TIOCGSERIAL = 0x541e
+- TIOCGSID = 0x5429
+- TIOCGSOFTCAR = 0x5419
+- TIOCGWINSZ = 0x5413
+- TIOCINQ = 0x541b
+- TIOCLINUX = 0x541c
+- TIOCMBIC = 0x5417
+- TIOCMBIS = 0x5416
+- TIOCMGET = 0x5415
+- TIOCMIWAIT = 0x545c
+- TIOCMSET = 0x5418
+- TIOCM_CAR = 0x40
+- TIOCM_CD = 0x40
+- TIOCM_CTS = 0x20
+- TIOCM_DSR = 0x100
+- TIOCM_DTR = 0x2
+- TIOCM_LE = 0x1
+- TIOCM_RI = 0x80
+- TIOCM_RNG = 0x80
+- TIOCM_RTS = 0x4
+- TIOCM_SR = 0x10
+- TIOCM_ST = 0x8
+- TIOCNOTTY = 0x5422
+- TIOCNXCL = 0x540d
+- TIOCOUTQ = 0x5411
+- TIOCPKT = 0x5420
+- TIOCPKT_DATA = 0x0
+- TIOCPKT_DOSTOP = 0x20
+- TIOCPKT_FLUSHREAD = 0x1
+- TIOCPKT_FLUSHWRITE = 0x2
+- TIOCPKT_IOCTL = 0x40
+- TIOCPKT_NOSTOP = 0x10
+- TIOCPKT_START = 0x8
+- TIOCPKT_STOP = 0x4
+- TIOCSBRK = 0x5427
+- TIOCSCTTY = 0x540e
+- TIOCSERCONFIG = 0x5453
+- TIOCSERGETLSR = 0x5459
+- TIOCSERGETMULTI = 0x545a
+- TIOCSERGSTRUCT = 0x5458
+- TIOCSERGWILD = 0x5454
+- TIOCSERSETMULTI = 0x545b
+- TIOCSERSWILD = 0x5455
+- TIOCSER_TEMT = 0x1
+- TIOCSETD = 0x5423
+- TIOCSIG = 0x40045436
+- TIOCSLCKTRMIOS = 0x5457
+- TIOCSPGRP = 0x5410
+- TIOCSPTLCK = 0x40045431
+- TIOCSRS485 = 0x542f
+- TIOCSSERIAL = 0x541f
+- TIOCSSOFTCAR = 0x541a
+- TIOCSTI = 0x5412
+- TIOCSWINSZ = 0x5414
+- TIOCVHANGUP = 0x5437
+- TOSTOP = 0x100
+- TS_COMM_LEN = 0x20
+- TUNATTACHFILTER = 0x400854d5
+- TUNDETACHFILTER = 0x400854d6
+- TUNGETFEATURES = 0x800454cf
+- TUNGETFILTER = 0x800854db
+- TUNGETIFF = 0x800454d2
+- TUNGETSNDBUF = 0x800454d3
+- TUNGETVNETBE = 0x800454df
+- TUNGETVNETHDRSZ = 0x800454d7
+- TUNGETVNETLE = 0x800454dd
+- TUNSETDEBUG = 0x400454c9
+- TUNSETGROUP = 0x400454ce
+- TUNSETIFF = 0x400454ca
+- TUNSETIFINDEX = 0x400454da
+- TUNSETLINK = 0x400454cd
+- TUNSETNOCSUM = 0x400454c8
+- TUNSETOFFLOAD = 0x400454d0
+- TUNSETOWNER = 0x400454cc
+- TUNSETPERSIST = 0x400454cb
+- TUNSETQUEUE = 0x400454d9
+- TUNSETSNDBUF = 0x400454d4
+- TUNSETTXFILTER = 0x400454d1
+- TUNSETVNETBE = 0x400454de
+- TUNSETVNETHDRSZ = 0x400454d8
+- TUNSETVNETLE = 0x400454dc
+- UMOUNT_NOFOLLOW = 0x8
+- VDISCARD = 0xd
+- VEOF = 0x4
+- VEOL = 0xb
+- VEOL2 = 0x10
+- VERASE = 0x2
+- VINTR = 0x0
+- VKILL = 0x3
+- VLNEXT = 0xf
+- VMADDR_CID_ANY = 0xffffffff
+- VMADDR_CID_HOST = 0x2
+- VMADDR_CID_HYPERVISOR = 0x0
+- VMADDR_CID_RESERVED = 0x1
+- VMADDR_PORT_ANY = 0xffffffff
+- VMIN = 0x6
+- VM_SOCKETS_INVALID_VERSION = 0xffffffff
+- VQUIT = 0x1
+- VREPRINT = 0xc
+- VSTART = 0x8
+- VSTOP = 0x9
+- VSUSP = 0xa
+- VSWTC = 0x7
+- VT0 = 0x0
+- VT1 = 0x4000
+- VTDLY = 0x4000
+- VTIME = 0x5
+- VWERASE = 0xe
+- WALL = 0x40000000
+- WCLONE = 0x80000000
+- WCONTINUED = 0x8
+- WEXITED = 0x4
+- WNOHANG = 0x1
+- WNOTHREAD = 0x20000000
+- WNOWAIT = 0x1000000
+- WORDSIZE = 0x20
+- WSTOPPED = 0x2
+- WUNTRACED = 0x2
+- XATTR_CREATE = 0x1
+- XATTR_REPLACE = 0x2
+- XCASE = 0x4
+- XTABS = 0x1800
++ B1000000 = 0x1008
++ B115200 = 0x1002
++ B1152000 = 0x1009
++ B1500000 = 0x100a
++ B2000000 = 0x100b
++ B230400 = 0x1003
++ B2500000 = 0x100c
++ B3000000 = 0x100d
++ B3500000 = 0x100e
++ B4000000 = 0x100f
++ B460800 = 0x1004
++ B500000 = 0x1005
++ B57600 = 0x1001
++ B576000 = 0x1006
++ B921600 = 0x1007
++ BLKBSZGET = 0x80041270
++ BLKBSZSET = 0x40041271
++ BLKFLSBUF = 0x1261
++ BLKFRAGET = 0x1265
++ BLKFRASET = 0x1264
++ BLKGETSIZE = 0x1260
++ BLKGETSIZE64 = 0x80041272
++ BLKPBSZGET = 0x127b
++ BLKRAGET = 0x1263
++ BLKRASET = 0x1262
++ BLKROGET = 0x125e
++ BLKROSET = 0x125d
++ BLKRRPART = 0x125f
++ BLKSECTGET = 0x1267
++ BLKSECTSET = 0x1266
++ BLKSSZGET = 0x1268
++ BOTHER = 0x1000
++ BS1 = 0x2000
++ BSDLY = 0x2000
++ CBAUD = 0x100f
++ CBAUDEX = 0x1000
++ CIBAUD = 0x100f0000
++ CLOCAL = 0x800
++ CR1 = 0x200
++ CR2 = 0x400
++ CR3 = 0x600
++ CRDLY = 0x600
++ CREAD = 0x80
++ CS6 = 0x10
++ CS7 = 0x20
++ CS8 = 0x30
++ CSIZE = 0x30
++ CSTOPB = 0x40
++ ECHOCTL = 0x200
++ ECHOE = 0x10
++ ECHOK = 0x20
++ ECHOKE = 0x800
++ ECHONL = 0x40
++ ECHOPRT = 0x400
++ EFD_CLOEXEC = 0x80000
++ EFD_NONBLOCK = 0x800
++ EPOLL_CLOEXEC = 0x80000
++ EXTPROC = 0x10000
++ FF1 = 0x8000
++ FFDLY = 0x8000
++ FLUSHO = 0x1000
++ FP_XSTATE_MAGIC2 = 0x46505845
++ FS_IOC_ENABLE_VERITY = 0x40806685
++ FS_IOC_GETFLAGS = 0x80046601
++ FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615
++ FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614
++ FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613
++ F_GETLK = 0xc
++ F_GETLK64 = 0xc
++ F_GETOWN = 0x9
++ F_RDLCK = 0x0
++ F_SETLK = 0xd
++ F_SETLK64 = 0xd
++ F_SETLKW = 0xe
++ F_SETLKW64 = 0xe
++ F_SETOWN = 0x8
++ F_UNLCK = 0x2
++ F_WRLCK = 0x1
++ HUPCL = 0x400
++ ICANON = 0x2
++ IEXTEN = 0x8000
++ IN_CLOEXEC = 0x80000
++ IN_NONBLOCK = 0x800
++ IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9
++ ISIG = 0x1
++ IUCLC = 0x200
++ IXOFF = 0x1000
++ IXON = 0x400
++ MAP_32BIT = 0x40
++ MAP_ANON = 0x20
++ MAP_ANONYMOUS = 0x20
++ MAP_DENYWRITE = 0x800
++ MAP_EXECUTABLE = 0x1000
++ MAP_GROWSDOWN = 0x100
++ MAP_HUGETLB = 0x40000
++ MAP_LOCKED = 0x2000
++ MAP_NONBLOCK = 0x10000
++ MAP_NORESERVE = 0x4000
++ MAP_POPULATE = 0x8000
++ MAP_STACK = 0x20000
++ MAP_SYNC = 0x80000
++ MCL_CURRENT = 0x1
++ MCL_FUTURE = 0x2
++ MCL_ONFAULT = 0x4
++ NFDBITS = 0x20
++ NLDLY = 0x100
++ NOFLSH = 0x80
++ NS_GET_NSTYPE = 0xb703
++ NS_GET_OWNER_UID = 0xb704
++ NS_GET_PARENT = 0xb702
++ NS_GET_USERNS = 0xb701
++ OLCUC = 0x2
++ ONLCR = 0x4
++ O_APPEND = 0x400
++ O_ASYNC = 0x2000
++ O_CLOEXEC = 0x80000
++ O_CREAT = 0x40
++ O_DIRECT = 0x4000
++ O_DIRECTORY = 0x10000
++ O_DSYNC = 0x1000
++ O_EXCL = 0x80
++ O_FSYNC = 0x101000
++ O_LARGEFILE = 0x8000
++ O_NDELAY = 0x800
++ O_NOATIME = 0x40000
++ O_NOCTTY = 0x100
++ O_NOFOLLOW = 0x20000
++ O_NONBLOCK = 0x800
++ O_PATH = 0x200000
++ O_RSYNC = 0x101000
++ O_SYNC = 0x101000
++ O_TMPFILE = 0x410000
++ O_TRUNC = 0x200
++ PARENB = 0x100
++ PARODD = 0x200
++ PENDIN = 0x4000
++ PERF_EVENT_IOC_DISABLE = 0x2401
++ PERF_EVENT_IOC_ENABLE = 0x2400
++ PERF_EVENT_IOC_ID = 0x80042407
++ PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b
++ PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409
++ PERF_EVENT_IOC_PERIOD = 0x40082404
++ PERF_EVENT_IOC_QUERY_BPF = 0xc004240a
++ PERF_EVENT_IOC_REFRESH = 0x2402
++ PERF_EVENT_IOC_RESET = 0x2403
++ PERF_EVENT_IOC_SET_BPF = 0x40042408
++ PERF_EVENT_IOC_SET_FILTER = 0x40042406
++ PERF_EVENT_IOC_SET_OUTPUT = 0x2405
++ PPPIOCATTACH = 0x4004743d
++ PPPIOCATTCHAN = 0x40047438
++ PPPIOCCONNECT = 0x4004743a
++ PPPIOCDETACH = 0x4004743c
++ PPPIOCDISCONN = 0x7439
++ PPPIOCGASYNCMAP = 0x80047458
++ PPPIOCGCHAN = 0x80047437
++ PPPIOCGDEBUG = 0x80047441
++ PPPIOCGFLAGS = 0x8004745a
++ PPPIOCGIDLE = 0x8008743f
++ PPPIOCGIDLE32 = 0x8008743f
++ PPPIOCGIDLE64 = 0x8010743f
++ PPPIOCGL2TPSTATS = 0x80487436
++ PPPIOCGMRU = 0x80047453
++ PPPIOCGRASYNCMAP = 0x80047455
++ PPPIOCGUNIT = 0x80047456
++ PPPIOCGXASYNCMAP = 0x80207450
++ PPPIOCSACTIVE = 0x40087446
++ PPPIOCSASYNCMAP = 0x40047457
++ PPPIOCSCOMPRESS = 0x400c744d
++ PPPIOCSDEBUG = 0x40047440
++ PPPIOCSFLAGS = 0x40047459
++ PPPIOCSMAXCID = 0x40047451
++ PPPIOCSMRRU = 0x4004743b
++ PPPIOCSMRU = 0x40047452
++ PPPIOCSNPMODE = 0x4008744b
++ PPPIOCSPASS = 0x40087447
++ PPPIOCSRASYNCMAP = 0x40047454
++ PPPIOCSXASYNCMAP = 0x4020744f
++ PPPIOCXFERUNIT = 0x744e
++ PR_SET_PTRACER_ANY = 0xffffffff
++ PTRACE_GETFPREGS = 0xe
++ PTRACE_GETFPXREGS = 0x12
++ PTRACE_GET_THREAD_AREA = 0x19
++ PTRACE_OLDSETOPTIONS = 0x15
++ PTRACE_SETFPREGS = 0xf
++ PTRACE_SETFPXREGS = 0x13
++ PTRACE_SET_THREAD_AREA = 0x1a
++ PTRACE_SINGLEBLOCK = 0x21
++ PTRACE_SYSEMU = 0x1f
++ PTRACE_SYSEMU_SINGLESTEP = 0x20
++ RLIMIT_AS = 0x9
++ RLIMIT_MEMLOCK = 0x8
++ RLIMIT_NOFILE = 0x7
++ RLIMIT_NPROC = 0x6
++ RLIMIT_RSS = 0x5
++ RNDADDENTROPY = 0x40085203
++ RNDADDTOENTCNT = 0x40045201
++ RNDCLEARPOOL = 0x5206
++ RNDGETENTCNT = 0x80045200
++ RNDGETPOOL = 0x80085202
++ RNDRESEEDCRNG = 0x5207
++ RNDZAPENTCNT = 0x5204
++ RTC_AIE_OFF = 0x7002
++ RTC_AIE_ON = 0x7001
++ RTC_ALM_READ = 0x80247008
++ RTC_ALM_SET = 0x40247007
++ RTC_EPOCH_READ = 0x8004700d
++ RTC_EPOCH_SET = 0x4004700e
++ RTC_IRQP_READ = 0x8004700b
++ RTC_IRQP_SET = 0x4004700c
++ RTC_PIE_OFF = 0x7006
++ RTC_PIE_ON = 0x7005
++ RTC_PLL_GET = 0x801c7011
++ RTC_PLL_SET = 0x401c7012
++ RTC_RD_TIME = 0x80247009
++ RTC_SET_TIME = 0x4024700a
++ RTC_UIE_OFF = 0x7004
++ RTC_UIE_ON = 0x7003
++ RTC_VL_CLR = 0x7014
++ RTC_VL_READ = 0x80047013
++ RTC_WIE_OFF = 0x7010
++ RTC_WIE_ON = 0x700f
++ RTC_WKALM_RD = 0x80287010
++ RTC_WKALM_SET = 0x4028700f
++ SCM_TIMESTAMPING = 0x25
++ SCM_TIMESTAMPING_OPT_STATS = 0x36
++ SCM_TIMESTAMPING_PKTINFO = 0x3a
++ SCM_TIMESTAMPNS = 0x23
++ SCM_TXTIME = 0x3d
++ SCM_WIFI_STATUS = 0x29
++ SFD_CLOEXEC = 0x80000
++ SFD_NONBLOCK = 0x800
++ SIOCATMARK = 0x8905
++ SIOCGPGRP = 0x8904
++ SIOCGSTAMPNS_NEW = 0x80108907
++ SIOCGSTAMP_NEW = 0x80108906
++ SIOCINQ = 0x541b
++ SIOCOUTQ = 0x5411
++ SIOCSPGRP = 0x8902
++ SOCK_CLOEXEC = 0x80000
++ SOCK_DGRAM = 0x2
++ SOCK_NONBLOCK = 0x800
++ SOCK_STREAM = 0x1
++ SOL_SOCKET = 0x1
++ SO_ACCEPTCONN = 0x1e
++ SO_ATTACH_BPF = 0x32
++ SO_ATTACH_REUSEPORT_CBPF = 0x33
++ SO_ATTACH_REUSEPORT_EBPF = 0x34
++ SO_BINDTODEVICE = 0x19
++ SO_BINDTOIFINDEX = 0x3e
++ SO_BPF_EXTENSIONS = 0x30
++ SO_BROADCAST = 0x6
++ SO_BSDCOMPAT = 0xe
++ SO_BUSY_POLL = 0x2e
++ SO_CNX_ADVICE = 0x35
++ SO_COOKIE = 0x39
++ SO_DETACH_REUSEPORT_BPF = 0x44
++ SO_DOMAIN = 0x27
++ SO_DONTROUTE = 0x5
++ SO_ERROR = 0x4
++ SO_INCOMING_CPU = 0x31
++ SO_INCOMING_NAPI_ID = 0x38
++ SO_KEEPALIVE = 0x9
++ SO_LINGER = 0xd
++ SO_LOCK_FILTER = 0x2c
++ SO_MARK = 0x24
++ SO_MAX_PACING_RATE = 0x2f
++ SO_MEMINFO = 0x37
++ SO_NOFCS = 0x2b
++ SO_OOBINLINE = 0xa
++ SO_PASSCRED = 0x10
++ SO_PASSSEC = 0x22
++ SO_PEEK_OFF = 0x2a
++ SO_PEERCRED = 0x11
++ SO_PEERGROUPS = 0x3b
++ SO_PEERSEC = 0x1f
++ SO_PROTOCOL = 0x26
++ SO_RCVBUF = 0x8
++ SO_RCVBUFFORCE = 0x21
++ SO_RCVLOWAT = 0x12
++ SO_RCVTIMEO = 0x14
++ SO_RCVTIMEO_NEW = 0x42
++ SO_RCVTIMEO_OLD = 0x14
++ SO_REUSEADDR = 0x2
++ SO_REUSEPORT = 0xf
++ SO_RXQ_OVFL = 0x28
++ SO_SECURITY_AUTHENTICATION = 0x16
++ SO_SECURITY_ENCRYPTION_NETWORK = 0x18
++ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
++ SO_SELECT_ERR_QUEUE = 0x2d
++ SO_SNDBUF = 0x7
++ SO_SNDBUFFORCE = 0x20
++ SO_SNDLOWAT = 0x13
++ SO_SNDTIMEO = 0x15
++ SO_SNDTIMEO_NEW = 0x43
++ SO_SNDTIMEO_OLD = 0x15
++ SO_TIMESTAMPING = 0x25
++ SO_TIMESTAMPING_NEW = 0x41
++ SO_TIMESTAMPING_OLD = 0x25
++ SO_TIMESTAMPNS = 0x23
++ SO_TIMESTAMPNS_NEW = 0x40
++ SO_TIMESTAMPNS_OLD = 0x23
++ SO_TIMESTAMP_NEW = 0x3f
++ SO_TXTIME = 0x3d
++ SO_TYPE = 0x3
++ SO_WIFI_STATUS = 0x29
++ SO_ZEROCOPY = 0x3c
++ TAB1 = 0x800
++ TAB2 = 0x1000
++ TAB3 = 0x1800
++ TABDLY = 0x1800
++ TCFLSH = 0x540b
++ TCGETA = 0x5405
++ TCGETS = 0x5401
++ TCGETS2 = 0x802c542a
++ TCGETX = 0x5432
++ TCSAFLUSH = 0x2
++ TCSBRK = 0x5409
++ TCSBRKP = 0x5425
++ TCSETA = 0x5406
++ TCSETAF = 0x5408
++ TCSETAW = 0x5407
++ TCSETS = 0x5402
++ TCSETS2 = 0x402c542b
++ TCSETSF = 0x5404
++ TCSETSF2 = 0x402c542d
++ TCSETSW = 0x5403
++ TCSETSW2 = 0x402c542c
++ TCSETX = 0x5433
++ TCSETXF = 0x5434
++ TCSETXW = 0x5435
++ TCXONC = 0x540a
++ TIOCCBRK = 0x5428
++ TIOCCONS = 0x541d
++ TIOCEXCL = 0x540c
++ TIOCGDEV = 0x80045432
++ TIOCGETD = 0x5424
++ TIOCGEXCL = 0x80045440
++ TIOCGICOUNT = 0x545d
++ TIOCGISO7816 = 0x80285442
++ TIOCGLCKTRMIOS = 0x5456
++ TIOCGPGRP = 0x540f
++ TIOCGPKT = 0x80045438
++ TIOCGPTLCK = 0x80045439
++ TIOCGPTN = 0x80045430
++ TIOCGPTPEER = 0x5441
++ TIOCGRS485 = 0x542e
++ TIOCGSERIAL = 0x541e
++ TIOCGSID = 0x5429
++ TIOCGSOFTCAR = 0x5419
++ TIOCGWINSZ = 0x5413
++ TIOCINQ = 0x541b
++ TIOCLINUX = 0x541c
++ TIOCMBIC = 0x5417
++ TIOCMBIS = 0x5416
++ TIOCMGET = 0x5415
++ TIOCMIWAIT = 0x545c
++ TIOCMSET = 0x5418
++ TIOCM_CAR = 0x40
++ TIOCM_CD = 0x40
++ TIOCM_CTS = 0x20
++ TIOCM_DSR = 0x100
++ TIOCM_RI = 0x80
++ TIOCM_RNG = 0x80
++ TIOCM_SR = 0x10
++ TIOCM_ST = 0x8
++ TIOCNOTTY = 0x5422
++ TIOCNXCL = 0x540d
++ TIOCOUTQ = 0x5411
++ TIOCPKT = 0x5420
++ TIOCSBRK = 0x5427
++ TIOCSCTTY = 0x540e
++ TIOCSERCONFIG = 0x5453
++ TIOCSERGETLSR = 0x5459
++ TIOCSERGETMULTI = 0x545a
++ TIOCSERGSTRUCT = 0x5458
++ TIOCSERGWILD = 0x5454
++ TIOCSERSETMULTI = 0x545b
++ TIOCSERSWILD = 0x5455
++ TIOCSER_TEMT = 0x1
++ TIOCSETD = 0x5423
++ TIOCSIG = 0x40045436
++ TIOCSISO7816 = 0xc0285443
++ TIOCSLCKTRMIOS = 0x5457
++ TIOCSPGRP = 0x5410
++ TIOCSPTLCK = 0x40045431
++ TIOCSRS485 = 0x542f
++ TIOCSSERIAL = 0x541f
++ TIOCSSOFTCAR = 0x541a
++ TIOCSTI = 0x5412
++ TIOCSWINSZ = 0x5414
++ TIOCVHANGUP = 0x5437
++ TOSTOP = 0x100
++ TUNATTACHFILTER = 0x400854d5
++ TUNDETACHFILTER = 0x400854d6
++ TUNGETDEVNETNS = 0x54e3
++ TUNGETFEATURES = 0x800454cf
++ TUNGETFILTER = 0x800854db
++ TUNGETIFF = 0x800454d2
++ TUNGETSNDBUF = 0x800454d3
++ TUNGETVNETBE = 0x800454df
++ TUNGETVNETHDRSZ = 0x800454d7
++ TUNGETVNETLE = 0x800454dd
++ TUNSETCARRIER = 0x400454e2
++ TUNSETDEBUG = 0x400454c9
++ TUNSETFILTEREBPF = 0x800454e1
++ TUNSETGROUP = 0x400454ce
++ TUNSETIFF = 0x400454ca
++ TUNSETIFINDEX = 0x400454da
++ TUNSETLINK = 0x400454cd
++ TUNSETNOCSUM = 0x400454c8
++ TUNSETOFFLOAD = 0x400454d0
++ TUNSETOWNER = 0x400454cc
++ TUNSETPERSIST = 0x400454cb
++ TUNSETQUEUE = 0x400454d9
++ TUNSETSNDBUF = 0x400454d4
++ TUNSETSTEERINGEBPF = 0x800454e0
++ TUNSETTXFILTER = 0x400454d1
++ TUNSETVNETBE = 0x400454de
++ TUNSETVNETHDRSZ = 0x400454d8
++ TUNSETVNETLE = 0x400454dc
++ UBI_IOCATT = 0x40186f40
++ UBI_IOCDET = 0x40046f41
++ UBI_IOCEBCH = 0x40044f02
++ UBI_IOCEBER = 0x40044f01
++ UBI_IOCEBISMAP = 0x80044f05
++ UBI_IOCEBMAP = 0x40084f03
++ UBI_IOCEBUNMAP = 0x40044f04
++ UBI_IOCMKVOL = 0x40986f00
++ UBI_IOCRMVOL = 0x40046f01
++ UBI_IOCRNVOL = 0x51106f03
++ UBI_IOCRPEB = 0x40046f04
++ UBI_IOCRSVOL = 0x400c6f02
++ UBI_IOCSETVOLPROP = 0x40104f06
++ UBI_IOCSPEB = 0x40046f05
++ UBI_IOCVOLCRBLK = 0x40804f07
++ UBI_IOCVOLRMBLK = 0x4f08
++ UBI_IOCVOLUP = 0x40084f00
++ VDISCARD = 0xd
++ VEOF = 0x4
++ VEOL = 0xb
++ VEOL2 = 0x10
++ VMIN = 0x6
++ VREPRINT = 0xc
++ VSTART = 0x8
++ VSTOP = 0x9
++ VSUSP = 0xa
++ VSWTC = 0x7
++ VT1 = 0x4000
++ VTDLY = 0x4000
++ VTIME = 0x5
++ VWERASE = 0xe
++ WDIOC_GETBOOTSTATUS = 0x80045702
++ WDIOC_GETPRETIMEOUT = 0x80045709
++ WDIOC_GETSTATUS = 0x80045701
++ WDIOC_GETSUPPORT = 0x80285700
++ WDIOC_GETTEMP = 0x80045703
++ WDIOC_GETTIMELEFT = 0x8004570a
++ WDIOC_GETTIMEOUT = 0x80045707
++ WDIOC_KEEPALIVE = 0x80045705
++ WDIOC_SETOPTIONS = 0x80045704
++ WORDSIZE = 0x20
++ X86_FXSR_MAGIC = 0x0
++ XCASE = 0x4
++ XTABS = 0x1800
+ )
+
+ // Errors
+ const (
+- E2BIG = syscall.Errno(0x7)
+- EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x62)
+ EADDRNOTAVAIL = syscall.Errno(0x63)
+ EADV = syscall.Errno(0x44)
+ EAFNOSUPPORT = syscall.Errno(0x61)
+- EAGAIN = syscall.Errno(0xb)
+ EALREADY = syscall.Errno(0x72)
+ EBADE = syscall.Errno(0x34)
+- EBADF = syscall.Errno(0x9)
+ EBADFD = syscall.Errno(0x4d)
+ EBADMSG = syscall.Errno(0x4a)
+ EBADR = syscall.Errno(0x35)
+ EBADRQC = syscall.Errno(0x38)
+ EBADSLT = syscall.Errno(0x39)
+ EBFONT = syscall.Errno(0x3b)
+- EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x7d)
+- ECHILD = syscall.Errno(0xa)
+ ECHRNG = syscall.Errno(0x2c)
+ ECOMM = syscall.Errno(0x46)
+ ECONNABORTED = syscall.Errno(0x67)
+@@ -1881,23 +500,15 @@ const (
+ EDEADLK = syscall.Errno(0x23)
+ EDEADLOCK = syscall.Errno(0x23)
+ EDESTADDRREQ = syscall.Errno(0x59)
+- EDOM = syscall.Errno(0x21)
+ EDOTDOT = syscall.Errno(0x49)
+ EDQUOT = syscall.Errno(0x7a)
+- EEXIST = syscall.Errno(0x11)
+- EFAULT = syscall.Errno(0xe)
+- EFBIG = syscall.Errno(0x1b)
+ EHOSTDOWN = syscall.Errno(0x70)
+ EHOSTUNREACH = syscall.Errno(0x71)
+ EHWPOISON = syscall.Errno(0x85)
+ EIDRM = syscall.Errno(0x2b)
+ EILSEQ = syscall.Errno(0x54)
+ EINPROGRESS = syscall.Errno(0x73)
+- EINTR = syscall.Errno(0x4)
+- EINVAL = syscall.Errno(0x16)
+- EIO = syscall.Errno(0x5)
+ EISCONN = syscall.Errno(0x6a)
+- EISDIR = syscall.Errno(0x15)
+ EISNAM = syscall.Errno(0x78)
+ EKEYEXPIRED = syscall.Errno(0x7f)
+ EKEYREJECTED = syscall.Errno(0x81)
+@@ -1914,8 +525,6 @@ const (
+ ELNRNG = syscall.Errno(0x30)
+ ELOOP = syscall.Errno(0x28)
+ EMEDIUMTYPE = syscall.Errno(0x7c)
+- EMFILE = syscall.Errno(0x18)
+- EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x5a)
+ EMULTIHOP = syscall.Errno(0x48)
+ ENAMETOOLONG = syscall.Errno(0x24)
+@@ -1923,103 +532,70 @@ const (
+ ENETDOWN = syscall.Errno(0x64)
+ ENETRESET = syscall.Errno(0x66)
+ ENETUNREACH = syscall.Errno(0x65)
+- ENFILE = syscall.Errno(0x17)
+ ENOANO = syscall.Errno(0x37)
+ ENOBUFS = syscall.Errno(0x69)
+ ENOCSI = syscall.Errno(0x32)
+ ENODATA = syscall.Errno(0x3d)
+- ENODEV = syscall.Errno(0x13)
+- ENOENT = syscall.Errno(0x2)
+- ENOEXEC = syscall.Errno(0x8)
+ ENOKEY = syscall.Errno(0x7e)
+ ENOLCK = syscall.Errno(0x25)
+ ENOLINK = syscall.Errno(0x43)
+ ENOMEDIUM = syscall.Errno(0x7b)
+- ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x2a)
+ ENONET = syscall.Errno(0x40)
+ ENOPKG = syscall.Errno(0x41)
+ ENOPROTOOPT = syscall.Errno(0x5c)
+- ENOSPC = syscall.Errno(0x1c)
+ ENOSR = syscall.Errno(0x3f)
+ ENOSTR = syscall.Errno(0x3c)
+ ENOSYS = syscall.Errno(0x26)
+- ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x6b)
+- ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x27)
+ ENOTNAM = syscall.Errno(0x76)
+ ENOTRECOVERABLE = syscall.Errno(0x83)
+ ENOTSOCK = syscall.Errno(0x58)
+ ENOTSUP = syscall.Errno(0x5f)
+- ENOTTY = syscall.Errno(0x19)
+ ENOTUNIQ = syscall.Errno(0x4c)
+- ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x5f)
+ EOVERFLOW = syscall.Errno(0x4b)
+ EOWNERDEAD = syscall.Errno(0x82)
+- EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x60)
+- EPIPE = syscall.Errno(0x20)
+ EPROTO = syscall.Errno(0x47)
+ EPROTONOSUPPORT = syscall.Errno(0x5d)
+ EPROTOTYPE = syscall.Errno(0x5b)
+- ERANGE = syscall.Errno(0x22)
+ EREMCHG = syscall.Errno(0x4e)
+ EREMOTE = syscall.Errno(0x42)
+ EREMOTEIO = syscall.Errno(0x79)
+ ERESTART = syscall.Errno(0x55)
+ ERFKILL = syscall.Errno(0x84)
+- EROFS = syscall.Errno(0x1e)
+ ESHUTDOWN = syscall.Errno(0x6c)
+ ESOCKTNOSUPPORT = syscall.Errno(0x5e)
+- ESPIPE = syscall.Errno(0x1d)
+- ESRCH = syscall.Errno(0x3)
+ ESRMNT = syscall.Errno(0x45)
+ ESTALE = syscall.Errno(0x74)
+ ESTRPIPE = syscall.Errno(0x56)
+ ETIME = syscall.Errno(0x3e)
+ ETIMEDOUT = syscall.Errno(0x6e)
+ ETOOMANYREFS = syscall.Errno(0x6d)
+- ETXTBSY = syscall.Errno(0x1a)
+ EUCLEAN = syscall.Errno(0x75)
+ EUNATCH = syscall.Errno(0x31)
+ EUSERS = syscall.Errno(0x57)
+- EWOULDBLOCK = syscall.Errno(0xb)
+- EXDEV = syscall.Errno(0x12)
+ EXFULL = syscall.Errno(0x36)
+ )
+
+ // Signals
+ const (
+- SIGABRT = syscall.Signal(0x6)
+- SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0x7)
+ SIGCHLD = syscall.Signal(0x11)
+ SIGCLD = syscall.Signal(0x11)
+ SIGCONT = syscall.Signal(0x12)
+- SIGFPE = syscall.Signal(0x8)
+- SIGHUP = syscall.Signal(0x1)
+- SIGILL = syscall.Signal(0x4)
+- SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x1d)
+- SIGIOT = syscall.Signal(0x6)
+- SIGKILL = syscall.Signal(0x9)
+- SIGPIPE = syscall.Signal(0xd)
+ SIGPOLL = syscall.Signal(0x1d)
+ SIGPROF = syscall.Signal(0x1b)
+ SIGPWR = syscall.Signal(0x1e)
+- SIGQUIT = syscall.Signal(0x3)
+- SIGSEGV = syscall.Signal(0xb)
+ SIGSTKFLT = syscall.Signal(0x10)
+ SIGSTOP = syscall.Signal(0x13)
+ SIGSYS = syscall.Signal(0x1f)
+- SIGTERM = syscall.Signal(0xf)
+- SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x14)
+ SIGTTIN = syscall.Signal(0x15)
+ SIGTTOU = syscall.Signal(0x16)
+- SIGUNUSED = syscall.Signal(0x1f)
+ SIGURG = syscall.Signal(0x17)
+ SIGUSR1 = syscall.Signal(0xa)
+ SIGUSR2 = syscall.Signal(0xc)
+@@ -2030,171 +606,179 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "no such device or address",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource temporarily unavailable",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "device or resource busy",
+- 17: "file exists",
+- 18: "invalid cross-device link",
+- 19: "no such device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "numerical result out of range",
+- 35: "resource deadlock avoided",
+- 36: "file name too long",
+- 37: "no locks available",
+- 38: "function not implemented",
+- 39: "directory not empty",
+- 40: "too many levels of symbolic links",
+- 42: "no message of desired type",
+- 43: "identifier removed",
+- 44: "channel number out of range",
+- 45: "level 2 not synchronized",
+- 46: "level 3 halted",
+- 47: "level 3 reset",
+- 48: "link number out of range",
+- 49: "protocol driver not attached",
+- 50: "no CSI structure available",
+- 51: "level 2 halted",
+- 52: "invalid exchange",
+- 53: "invalid request descriptor",
+- 54: "exchange full",
+- 55: "no anode",
+- 56: "invalid request code",
+- 57: "invalid slot",
+- 59: "bad font file format",
+- 60: "device not a stream",
+- 61: "no data available",
+- 62: "timer expired",
+- 63: "out of streams resources",
+- 64: "machine is not on the network",
+- 65: "package not installed",
+- 66: "object is remote",
+- 67: "link has been severed",
+- 68: "advertise error",
+- 69: "srmount error",
+- 70: "communication error on send",
+- 71: "protocol error",
+- 72: "multihop attempted",
+- 73: "RFS specific error",
+- 74: "bad message",
+- 75: "value too large for defined data type",
+- 76: "name not unique on network",
+- 77: "file descriptor in bad state",
+- 78: "remote address changed",
+- 79: "can not access a needed shared library",
+- 80: "accessing a corrupted shared library",
+- 81: ".lib section in a.out corrupted",
+- 82: "attempting to link in too many shared libraries",
+- 83: "cannot exec a shared library directly",
+- 84: "invalid or incomplete multibyte or wide character",
+- 85: "interrupted system call should be restarted",
+- 86: "streams pipe error",
+- 87: "too many users",
+- 88: "socket operation on non-socket",
+- 89: "destination address required",
+- 90: "message too long",
+- 91: "protocol wrong type for socket",
+- 92: "protocol not available",
+- 93: "protocol not supported",
+- 94: "socket type not supported",
+- 95: "operation not supported",
+- 96: "protocol family not supported",
+- 97: "address family not supported by protocol",
+- 98: "address already in use",
+- 99: "cannot assign requested address",
+- 100: "network is down",
+- 101: "network is unreachable",
+- 102: "network dropped connection on reset",
+- 103: "software caused connection abort",
+- 104: "connection reset by peer",
+- 105: "no buffer space available",
+- 106: "transport endpoint is already connected",
+- 107: "transport endpoint is not connected",
+- 108: "cannot send after transport endpoint shutdown",
+- 109: "too many references: cannot splice",
+- 110: "connection timed out",
+- 111: "connection refused",
+- 112: "host is down",
+- 113: "no route to host",
+- 114: "operation already in progress",
+- 115: "operation now in progress",
+- 116: "stale file handle",
+- 117: "structure needs cleaning",
+- 118: "not a XENIX named type file",
+- 119: "no XENIX semaphores available",
+- 120: "is a named type file",
+- 121: "remote I/O error",
+- 122: "disk quota exceeded",
+- 123: "no medium found",
+- 124: "wrong medium type",
+- 125: "operation canceled",
+- 126: "required key not available",
+- 127: "key has expired",
+- 128: "key has been revoked",
+- 129: "key was rejected by service",
+- 130: "owner died",
+- 131: "state not recoverable",
+- 132: "operation not possible due to RF-kill",
+- 133: "memory page has hardware error",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "no such device or address"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EAGAIN", "resource temporarily unavailable"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device or resource busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "invalid cross-device link"},
++ {19, "ENODEV", "no such device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "numerical result out of range"},
++ {35, "EDEADLK", "resource deadlock avoided"},
++ {36, "ENAMETOOLONG", "file name too long"},
++ {37, "ENOLCK", "no locks available"},
++ {38, "ENOSYS", "function not implemented"},
++ {39, "ENOTEMPTY", "directory not empty"},
++ {40, "ELOOP", "too many levels of symbolic links"},
++ {42, "ENOMSG", "no message of desired type"},
++ {43, "EIDRM", "identifier removed"},
++ {44, "ECHRNG", "channel number out of range"},
++ {45, "EL2NSYNC", "level 2 not synchronized"},
++ {46, "EL3HLT", "level 3 halted"},
++ {47, "EL3RST", "level 3 reset"},
++ {48, "ELNRNG", "link number out of range"},
++ {49, "EUNATCH", "protocol driver not attached"},
++ {50, "ENOCSI", "no CSI structure available"},
++ {51, "EL2HLT", "level 2 halted"},
++ {52, "EBADE", "invalid exchange"},
++ {53, "EBADR", "invalid request descriptor"},
++ {54, "EXFULL", "exchange full"},
++ {55, "ENOANO", "no anode"},
++ {56, "EBADRQC", "invalid request code"},
++ {57, "EBADSLT", "invalid slot"},
++ {59, "EBFONT", "bad font file format"},
++ {60, "ENOSTR", "device not a stream"},
++ {61, "ENODATA", "no data available"},
++ {62, "ETIME", "timer expired"},
++ {63, "ENOSR", "out of streams resources"},
++ {64, "ENONET", "machine is not on the network"},
++ {65, "ENOPKG", "package not installed"},
++ {66, "EREMOTE", "object is remote"},
++ {67, "ENOLINK", "link has been severed"},
++ {68, "EADV", "advertise error"},
++ {69, "ESRMNT", "srmount error"},
++ {70, "ECOMM", "communication error on send"},
++ {71, "EPROTO", "protocol error"},
++ {72, "EMULTIHOP", "multihop attempted"},
++ {73, "EDOTDOT", "RFS specific error"},
++ {74, "EBADMSG", "bad message"},
++ {75, "EOVERFLOW", "value too large for defined data type"},
++ {76, "ENOTUNIQ", "name not unique on network"},
++ {77, "EBADFD", "file descriptor in bad state"},
++ {78, "EREMCHG", "remote address changed"},
++ {79, "ELIBACC", "can not access a needed shared library"},
++ {80, "ELIBBAD", "accessing a corrupted shared library"},
++ {81, "ELIBSCN", ".lib section in a.out corrupted"},
++ {82, "ELIBMAX", "attempting to link in too many shared libraries"},
++ {83, "ELIBEXEC", "cannot exec a shared library directly"},
++ {84, "EILSEQ", "invalid or incomplete multibyte or wide character"},
++ {85, "ERESTART", "interrupted system call should be restarted"},
++ {86, "ESTRPIPE", "streams pipe error"},
++ {87, "EUSERS", "too many users"},
++ {88, "ENOTSOCK", "socket operation on non-socket"},
++ {89, "EDESTADDRREQ", "destination address required"},
++ {90, "EMSGSIZE", "message too long"},
++ {91, "EPROTOTYPE", "protocol wrong type for socket"},
++ {92, "ENOPROTOOPT", "protocol not available"},
++ {93, "EPROTONOSUPPORT", "protocol not supported"},
++ {94, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {95, "ENOTSUP", "operation not supported"},
++ {96, "EPFNOSUPPORT", "protocol family not supported"},
++ {97, "EAFNOSUPPORT", "address family not supported by protocol"},
++ {98, "EADDRINUSE", "address already in use"},
++ {99, "EADDRNOTAVAIL", "cannot assign requested address"},
++ {100, "ENETDOWN", "network is down"},
++ {101, "ENETUNREACH", "network is unreachable"},
++ {102, "ENETRESET", "network dropped connection on reset"},
++ {103, "ECONNABORTED", "software caused connection abort"},
++ {104, "ECONNRESET", "connection reset by peer"},
++ {105, "ENOBUFS", "no buffer space available"},
++ {106, "EISCONN", "transport endpoint is already connected"},
++ {107, "ENOTCONN", "transport endpoint is not connected"},
++ {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"},
++ {109, "ETOOMANYREFS", "too many references: cannot splice"},
++ {110, "ETIMEDOUT", "connection timed out"},
++ {111, "ECONNREFUSED", "connection refused"},
++ {112, "EHOSTDOWN", "host is down"},
++ {113, "EHOSTUNREACH", "no route to host"},
++ {114, "EALREADY", "operation already in progress"},
++ {115, "EINPROGRESS", "operation now in progress"},
++ {116, "ESTALE", "stale file handle"},
++ {117, "EUCLEAN", "structure needs cleaning"},
++ {118, "ENOTNAM", "not a XENIX named type file"},
++ {119, "ENAVAIL", "no XENIX semaphores available"},
++ {120, "EISNAM", "is a named type file"},
++ {121, "EREMOTEIO", "remote I/O error"},
++ {122, "EDQUOT", "disk quota exceeded"},
++ {123, "ENOMEDIUM", "no medium found"},
++ {124, "EMEDIUMTYPE", "wrong medium type"},
++ {125, "ECANCELED", "operation canceled"},
++ {126, "ENOKEY", "required key not available"},
++ {127, "EKEYEXPIRED", "key has expired"},
++ {128, "EKEYREVOKED", "key has been revoked"},
++ {129, "EKEYREJECTED", "key was rejected by service"},
++ {130, "EOWNERDEAD", "owner died"},
++ {131, "ENOTRECOVERABLE", "state not recoverable"},
++ {132, "ERFKILL", "operation not possible due to RF-kill"},
++ {133, "EHWPOISON", "memory page has hardware error"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/breakpoint trap",
+- 6: "aborted",
+- 7: "bus error",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "user defined signal 1",
+- 11: "segmentation fault",
+- 12: "user defined signal 2",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "stack fault",
+- 17: "child exited",
+- 18: "continued",
+- 19: "stopped (signal)",
+- 20: "stopped",
+- 21: "stopped (tty input)",
+- 22: "stopped (tty output)",
+- 23: "urgent I/O condition",
+- 24: "CPU time limit exceeded",
+- 25: "file size limit exceeded",
+- 26: "virtual timer expired",
+- 27: "profiling timer expired",
+- 28: "window changed",
+- 29: "I/O possible",
+- 30: "power failure",
+- 31: "bad system call",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/breakpoint trap"},
++ {6, "SIGABRT", "aborted"},
++ {7, "SIGBUS", "bus error"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGUSR1", "user defined signal 1"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGUSR2", "user defined signal 2"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGSTKFLT", "stack fault"},
++ {17, "SIGCHLD", "child exited"},
++ {18, "SIGCONT", "continued"},
++ {19, "SIGSTOP", "stopped (signal)"},
++ {20, "SIGTSTP", "stopped"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGURG", "urgent I/O condition"},
++ {24, "SIGXCPU", "CPU time limit exceeded"},
++ {25, "SIGXFSZ", "file size limit exceeded"},
++ {26, "SIGVTALRM", "virtual timer expired"},
++ {27, "SIGPROF", "profiling timer expired"},
++ {28, "SIGWINCH", "window changed"},
++ {29, "SIGIO", "I/O possible"},
++ {30, "SIGPWR", "power failure"},
++ {31, "SIGSYS", "bad system call"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
+index a6618fc1..005970f7 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
+@@ -3,7 +3,7 @@
+
+ // +build amd64,linux
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 _const.go
+
+ package unix
+@@ -11,1869 +11,487 @@ package unix
+ import "syscall"
+
+ const (
+- AF_ALG = 0x26
+- AF_APPLETALK = 0x5
+- AF_ASH = 0x12
+- AF_ATMPVC = 0x8
+- AF_ATMSVC = 0x14
+- AF_AX25 = 0x3
+- AF_BLUETOOTH = 0x1f
+- AF_BRIDGE = 0x7
+- AF_CAIF = 0x25
+- AF_CAN = 0x1d
+- AF_DECnet = 0xc
+- AF_ECONET = 0x13
+- AF_FILE = 0x1
+- AF_IB = 0x1b
+- AF_IEEE802154 = 0x24
+- AF_INET = 0x2
+- AF_INET6 = 0xa
+- AF_IPX = 0x4
+- AF_IRDA = 0x17
+- AF_ISDN = 0x22
+- AF_IUCV = 0x20
+- AF_KCM = 0x29
+- AF_KEY = 0xf
+- AF_LLC = 0x1a
+- AF_LOCAL = 0x1
+- AF_MAX = 0x2b
+- AF_MPLS = 0x1c
+- AF_NETBEUI = 0xd
+- AF_NETLINK = 0x10
+- AF_NETROM = 0x6
+- AF_NFC = 0x27
+- AF_PACKET = 0x11
+- AF_PHONET = 0x23
+- AF_PPPOX = 0x18
+- AF_QIPCRTR = 0x2a
+- AF_RDS = 0x15
+- AF_ROSE = 0xb
+- AF_ROUTE = 0x10
+- AF_RXRPC = 0x21
+- AF_SECURITY = 0xe
+- AF_SNA = 0x16
+- AF_TIPC = 0x1e
+- AF_UNIX = 0x1
+- AF_UNSPEC = 0x0
+- AF_VSOCK = 0x28
+- AF_WANPIPE = 0x19
+- AF_X25 = 0x9
+- ALG_OP_DECRYPT = 0x0
+- ALG_OP_ENCRYPT = 0x1
+- ALG_SET_AEAD_ASSOCLEN = 0x4
+- ALG_SET_AEAD_AUTHSIZE = 0x5
+- ALG_SET_IV = 0x2
+- ALG_SET_KEY = 0x1
+- ALG_SET_OP = 0x3
+- ARPHRD_6LOWPAN = 0x339
+- ARPHRD_ADAPT = 0x108
+- ARPHRD_APPLETLK = 0x8
+- ARPHRD_ARCNET = 0x7
+- ARPHRD_ASH = 0x30d
+- ARPHRD_ATM = 0x13
+- ARPHRD_AX25 = 0x3
+- ARPHRD_BIF = 0x307
+- ARPHRD_CAIF = 0x336
+- ARPHRD_CAN = 0x118
+- ARPHRD_CHAOS = 0x5
+- ARPHRD_CISCO = 0x201
+- ARPHRD_CSLIP = 0x101
+- ARPHRD_CSLIP6 = 0x103
+- ARPHRD_DDCMP = 0x205
+- ARPHRD_DLCI = 0xf
+- ARPHRD_ECONET = 0x30e
+- ARPHRD_EETHER = 0x2
+- ARPHRD_ETHER = 0x1
+- ARPHRD_EUI64 = 0x1b
+- ARPHRD_FCAL = 0x311
+- ARPHRD_FCFABRIC = 0x313
+- ARPHRD_FCPL = 0x312
+- ARPHRD_FCPP = 0x310
+- ARPHRD_FDDI = 0x306
+- ARPHRD_FRAD = 0x302
+- ARPHRD_HDLC = 0x201
+- ARPHRD_HIPPI = 0x30c
+- ARPHRD_HWX25 = 0x110
+- ARPHRD_IEEE1394 = 0x18
+- ARPHRD_IEEE802 = 0x6
+- ARPHRD_IEEE80211 = 0x321
+- ARPHRD_IEEE80211_PRISM = 0x322
+- ARPHRD_IEEE80211_RADIOTAP = 0x323
+- ARPHRD_IEEE802154 = 0x324
+- ARPHRD_IEEE802154_MONITOR = 0x325
+- ARPHRD_IEEE802_TR = 0x320
+- ARPHRD_INFINIBAND = 0x20
+- ARPHRD_IP6GRE = 0x337
+- ARPHRD_IPDDP = 0x309
+- ARPHRD_IPGRE = 0x30a
+- ARPHRD_IRDA = 0x30f
+- ARPHRD_LAPB = 0x204
+- ARPHRD_LOCALTLK = 0x305
+- ARPHRD_LOOPBACK = 0x304
+- ARPHRD_METRICOM = 0x17
+- ARPHRD_NETLINK = 0x338
+- ARPHRD_NETROM = 0x0
+- ARPHRD_NONE = 0xfffe
+- ARPHRD_PHONET = 0x334
+- ARPHRD_PHONET_PIPE = 0x335
+- ARPHRD_PIMREG = 0x30b
+- ARPHRD_PPP = 0x200
+- ARPHRD_PRONET = 0x4
+- ARPHRD_RAWHDLC = 0x206
+- ARPHRD_ROSE = 0x10e
+- ARPHRD_RSRVD = 0x104
+- ARPHRD_SIT = 0x308
+- ARPHRD_SKIP = 0x303
+- ARPHRD_SLIP = 0x100
+- ARPHRD_SLIP6 = 0x102
+- ARPHRD_TUNNEL = 0x300
+- ARPHRD_TUNNEL6 = 0x301
+- ARPHRD_VOID = 0xffff
+- ARPHRD_X25 = 0x10f
+- B0 = 0x0
+- B1000000 = 0x1008
+- B110 = 0x3
+- B115200 = 0x1002
+- B1152000 = 0x1009
+- B1200 = 0x9
+- B134 = 0x4
+- B150 = 0x5
+- B1500000 = 0x100a
+- B1800 = 0xa
+- B19200 = 0xe
+- B200 = 0x6
+- B2000000 = 0x100b
+- B230400 = 0x1003
+- B2400 = 0xb
+- B2500000 = 0x100c
+- B300 = 0x7
+- B3000000 = 0x100d
+- B3500000 = 0x100e
+- B38400 = 0xf
+- B4000000 = 0x100f
+- B460800 = 0x1004
+- B4800 = 0xc
+- B50 = 0x1
+- B500000 = 0x1005
+- B57600 = 0x1001
+- B576000 = 0x1006
+- B600 = 0x8
+- B75 = 0x2
+- B921600 = 0x1007
+- B9600 = 0xd
+- BLKBSZGET = 0x80081270
+- BLKBSZSET = 0x40081271
+- BLKFLSBUF = 0x1261
+- BLKFRAGET = 0x1265
+- BLKFRASET = 0x1264
+- BLKGETSIZE = 0x1260
+- BLKGETSIZE64 = 0x80081272
+- BLKPBSZGET = 0x127b
+- BLKRAGET = 0x1263
+- BLKRASET = 0x1262
+- BLKROGET = 0x125e
+- BLKROSET = 0x125d
+- BLKRRPART = 0x125f
+- BLKSECTGET = 0x1267
+- BLKSECTSET = 0x1266
+- BLKSSZGET = 0x1268
+- BOTHER = 0x1000
+- BPF_A = 0x10
+- BPF_ABS = 0x20
+- BPF_ADD = 0x0
+- BPF_ALU = 0x4
+- BPF_AND = 0x50
+- BPF_B = 0x10
+- BPF_DIV = 0x30
+- BPF_H = 0x8
+- BPF_IMM = 0x0
+- BPF_IND = 0x40
+- BPF_JA = 0x0
+- BPF_JEQ = 0x10
+- BPF_JGE = 0x30
+- BPF_JGT = 0x20
+- BPF_JMP = 0x5
+- BPF_JSET = 0x40
+- BPF_K = 0x0
+- BPF_LD = 0x0
+- BPF_LDX = 0x1
+- BPF_LEN = 0x80
+- BPF_LL_OFF = -0x200000
+- BPF_LSH = 0x60
+- BPF_MAJOR_VERSION = 0x1
+- BPF_MAXINSNS = 0x1000
+- BPF_MEM = 0x60
+- BPF_MEMWORDS = 0x10
+- BPF_MINOR_VERSION = 0x1
+- BPF_MISC = 0x7
+- BPF_MOD = 0x90
+- BPF_MSH = 0xa0
+- BPF_MUL = 0x20
+- BPF_NEG = 0x80
+- BPF_NET_OFF = -0x100000
+- BPF_OR = 0x40
+- BPF_RET = 0x6
+- BPF_RSH = 0x70
+- BPF_ST = 0x2
+- BPF_STX = 0x3
+- BPF_SUB = 0x10
+- BPF_TAX = 0x0
+- BPF_TXA = 0x80
+- BPF_W = 0x0
+- BPF_X = 0x8
+- BPF_XOR = 0xa0
+- BRKINT = 0x2
+- BS0 = 0x0
+- BS1 = 0x2000
+- BSDLY = 0x2000
+- CAN_BCM = 0x2
+- CAN_EFF_FLAG = 0x80000000
+- CAN_EFF_ID_BITS = 0x1d
+- CAN_EFF_MASK = 0x1fffffff
+- CAN_ERR_FLAG = 0x20000000
+- CAN_ERR_MASK = 0x1fffffff
+- CAN_INV_FILTER = 0x20000000
+- CAN_ISOTP = 0x6
+- CAN_MAX_DLC = 0x8
+- CAN_MAX_DLEN = 0x8
+- CAN_MCNET = 0x5
+- CAN_MTU = 0x10
+- CAN_NPROTO = 0x7
+- CAN_RAW = 0x1
+- CAN_RAW_FILTER_MAX = 0x200
+- CAN_RTR_FLAG = 0x40000000
+- CAN_SFF_ID_BITS = 0xb
+- CAN_SFF_MASK = 0x7ff
+- CAN_TP16 = 0x3
+- CAN_TP20 = 0x4
+- CBAUD = 0x100f
+- CBAUDEX = 0x1000
+- CFLUSH = 0xf
+- CIBAUD = 0x100f0000
+- CLOCAL = 0x800
+- CLOCK_BOOTTIME = 0x7
+- CLOCK_BOOTTIME_ALARM = 0x9
+- CLOCK_DEFAULT = 0x0
+- CLOCK_EXT = 0x1
+- CLOCK_INT = 0x2
+- CLOCK_MONOTONIC = 0x1
+- CLOCK_MONOTONIC_COARSE = 0x6
+- CLOCK_MONOTONIC_RAW = 0x4
+- CLOCK_PROCESS_CPUTIME_ID = 0x2
+- CLOCK_REALTIME = 0x0
+- CLOCK_REALTIME_ALARM = 0x8
+- CLOCK_REALTIME_COARSE = 0x5
+- CLOCK_TAI = 0xb
+- CLOCK_THREAD_CPUTIME_ID = 0x3
+- CLOCK_TXFROMRX = 0x4
+- CLOCK_TXINT = 0x3
+- CLONE_CHILD_CLEARTID = 0x200000
+- CLONE_CHILD_SETTID = 0x1000000
+- CLONE_DETACHED = 0x400000
+- CLONE_FILES = 0x400
+- CLONE_FS = 0x200
+- CLONE_IO = 0x80000000
+- CLONE_NEWCGROUP = 0x2000000
+- CLONE_NEWIPC = 0x8000000
+- CLONE_NEWNET = 0x40000000
+- CLONE_NEWNS = 0x20000
+- CLONE_NEWPID = 0x20000000
+- CLONE_NEWUSER = 0x10000000
+- CLONE_NEWUTS = 0x4000000
+- CLONE_PARENT = 0x8000
+- CLONE_PARENT_SETTID = 0x100000
+- CLONE_PTRACE = 0x2000
+- CLONE_SETTLS = 0x80000
+- CLONE_SIGHAND = 0x800
+- CLONE_SYSVSEM = 0x40000
+- CLONE_THREAD = 0x10000
+- CLONE_UNTRACED = 0x800000
+- CLONE_VFORK = 0x4000
+- CLONE_VM = 0x100
+- CMSPAR = 0x40000000
+- CR0 = 0x0
+- CR1 = 0x200
+- CR2 = 0x400
+- CR3 = 0x600
+- CRDLY = 0x600
+- CREAD = 0x80
+- CRTSCTS = 0x80000000
+- CS5 = 0x0
+- CS6 = 0x10
+- CS7 = 0x20
+- CS8 = 0x30
+- CSIGNAL = 0xff
+- CSIZE = 0x30
+- CSTART = 0x11
+- CSTATUS = 0x0
+- CSTOP = 0x13
+- CSTOPB = 0x40
+- CSUSP = 0x1a
+- DT_BLK = 0x6
+- DT_CHR = 0x2
+- DT_DIR = 0x4
+- DT_FIFO = 0x1
+- DT_LNK = 0xa
+- DT_REG = 0x8
+- DT_SOCK = 0xc
+- DT_UNKNOWN = 0x0
+- DT_WHT = 0xe
+- ECHO = 0x8
+- ECHOCTL = 0x200
+- ECHOE = 0x10
+- ECHOK = 0x20
+- ECHOKE = 0x800
+- ECHONL = 0x40
+- ECHOPRT = 0x400
+- EFD_CLOEXEC = 0x80000
+- EFD_NONBLOCK = 0x800
+- EFD_SEMAPHORE = 0x1
+- ENCODING_DEFAULT = 0x0
+- ENCODING_FM_MARK = 0x3
+- ENCODING_FM_SPACE = 0x4
+- ENCODING_MANCHESTER = 0x5
+- ENCODING_NRZ = 0x1
+- ENCODING_NRZI = 0x2
+- EPOLLERR = 0x8
+- EPOLLET = 0x80000000
+- EPOLLEXCLUSIVE = 0x10000000
+- EPOLLHUP = 0x10
+- EPOLLIN = 0x1
+- EPOLLMSG = 0x400
+- EPOLLONESHOT = 0x40000000
+- EPOLLOUT = 0x4
+- EPOLLPRI = 0x2
+- EPOLLRDBAND = 0x80
+- EPOLLRDHUP = 0x2000
+- EPOLLRDNORM = 0x40
+- EPOLLWAKEUP = 0x20000000
+- EPOLLWRBAND = 0x200
+- EPOLLWRNORM = 0x100
+- EPOLL_CLOEXEC = 0x80000
+- EPOLL_CTL_ADD = 0x1
+- EPOLL_CTL_DEL = 0x2
+- EPOLL_CTL_MOD = 0x3
+- ETH_P_1588 = 0x88f7
+- ETH_P_8021AD = 0x88a8
+- ETH_P_8021AH = 0x88e7
+- ETH_P_8021Q = 0x8100
+- ETH_P_80221 = 0x8917
+- ETH_P_802_2 = 0x4
+- ETH_P_802_3 = 0x1
+- ETH_P_802_3_MIN = 0x600
+- ETH_P_802_EX1 = 0x88b5
+- ETH_P_AARP = 0x80f3
+- ETH_P_AF_IUCV = 0xfbfb
+- ETH_P_ALL = 0x3
+- ETH_P_AOE = 0x88a2
+- ETH_P_ARCNET = 0x1a
+- ETH_P_ARP = 0x806
+- ETH_P_ATALK = 0x809b
+- ETH_P_ATMFATE = 0x8884
+- ETH_P_ATMMPOA = 0x884c
+- ETH_P_AX25 = 0x2
+- ETH_P_BATMAN = 0x4305
+- ETH_P_BPQ = 0x8ff
+- ETH_P_CAIF = 0xf7
+- ETH_P_CAN = 0xc
+- ETH_P_CANFD = 0xd
+- ETH_P_CONTROL = 0x16
+- ETH_P_CUST = 0x6006
+- ETH_P_DDCMP = 0x6
+- ETH_P_DEC = 0x6000
+- ETH_P_DIAG = 0x6005
+- ETH_P_DNA_DL = 0x6001
+- ETH_P_DNA_RC = 0x6002
+- ETH_P_DNA_RT = 0x6003
+- ETH_P_DSA = 0x1b
+- ETH_P_ECONET = 0x18
+- ETH_P_EDSA = 0xdada
+- ETH_P_FCOE = 0x8906
+- ETH_P_FIP = 0x8914
+- ETH_P_HDLC = 0x19
+- ETH_P_HSR = 0x892f
+- ETH_P_IEEE802154 = 0xf6
+- ETH_P_IEEEPUP = 0xa00
+- ETH_P_IEEEPUPAT = 0xa01
+- ETH_P_IP = 0x800
+- ETH_P_IPV6 = 0x86dd
+- ETH_P_IPX = 0x8137
+- ETH_P_IRDA = 0x17
+- ETH_P_LAT = 0x6004
+- ETH_P_LINK_CTL = 0x886c
+- ETH_P_LOCALTALK = 0x9
+- ETH_P_LOOP = 0x60
+- ETH_P_LOOPBACK = 0x9000
+- ETH_P_MACSEC = 0x88e5
+- ETH_P_MOBITEX = 0x15
+- ETH_P_MPLS_MC = 0x8848
+- ETH_P_MPLS_UC = 0x8847
+- ETH_P_MVRP = 0x88f5
+- ETH_P_NCSI = 0x88f8
+- ETH_P_PAE = 0x888e
+- ETH_P_PAUSE = 0x8808
+- ETH_P_PHONET = 0xf5
+- ETH_P_PPPTALK = 0x10
+- ETH_P_PPP_DISC = 0x8863
+- ETH_P_PPP_MP = 0x8
+- ETH_P_PPP_SES = 0x8864
+- ETH_P_PRP = 0x88fb
+- ETH_P_PUP = 0x200
+- ETH_P_PUPAT = 0x201
+- ETH_P_QINQ1 = 0x9100
+- ETH_P_QINQ2 = 0x9200
+- ETH_P_QINQ3 = 0x9300
+- ETH_P_RARP = 0x8035
+- ETH_P_SCA = 0x6007
+- ETH_P_SLOW = 0x8809
+- ETH_P_SNAP = 0x5
+- ETH_P_TDLS = 0x890d
+- ETH_P_TEB = 0x6558
+- ETH_P_TIPC = 0x88ca
+- ETH_P_TRAILER = 0x1c
+- ETH_P_TR_802_2 = 0x11
+- ETH_P_TSN = 0x22f0
+- ETH_P_WAN_PPP = 0x7
+- ETH_P_WCCP = 0x883e
+- ETH_P_X25 = 0x805
+- ETH_P_XDSA = 0xf8
+- EXTA = 0xe
+- EXTB = 0xf
+- EXTPROC = 0x10000
+- FALLOC_FL_COLLAPSE_RANGE = 0x8
+- FALLOC_FL_INSERT_RANGE = 0x20
+- FALLOC_FL_KEEP_SIZE = 0x1
+- FALLOC_FL_NO_HIDE_STALE = 0x4
+- FALLOC_FL_PUNCH_HOLE = 0x2
+- FALLOC_FL_UNSHARE_RANGE = 0x40
+- FALLOC_FL_ZERO_RANGE = 0x10
+- FD_CLOEXEC = 0x1
+- FD_SETSIZE = 0x400
+- FF0 = 0x0
+- FF1 = 0x8000
+- FFDLY = 0x8000
+- FLUSHO = 0x1000
+- FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
+- FS_ENCRYPTION_MODE_AES_256_CTS = 0x4
+- FS_ENCRYPTION_MODE_AES_256_GCM = 0x2
+- FS_ENCRYPTION_MODE_AES_256_XTS = 0x1
+- FS_ENCRYPTION_MODE_INVALID = 0x0
+- FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615
+- FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614
+- FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613
+- FS_KEY_DESCRIPTOR_SIZE = 0x8
+- FS_KEY_DESC_PREFIX = "fscrypt:"
+- FS_KEY_DESC_PREFIX_SIZE = 0x8
+- FS_MAX_KEY_SIZE = 0x40
+- FS_POLICY_FLAGS_PAD_16 = 0x2
+- FS_POLICY_FLAGS_PAD_32 = 0x3
+- FS_POLICY_FLAGS_PAD_4 = 0x0
+- FS_POLICY_FLAGS_PAD_8 = 0x1
+- FS_POLICY_FLAGS_PAD_MASK = 0x3
+- FS_POLICY_FLAGS_VALID = 0x3
+- F_DUPFD = 0x0
+- F_DUPFD_CLOEXEC = 0x406
+- F_EXLCK = 0x4
+- F_GETFD = 0x1
+- F_GETFL = 0x3
+- F_GETLEASE = 0x401
+- F_GETLK = 0x5
+- F_GETLK64 = 0x5
+- F_GETOWN = 0x9
+- F_GETOWN_EX = 0x10
+- F_GETPIPE_SZ = 0x408
+- F_GETSIG = 0xb
+- F_LOCK = 0x1
+- F_NOTIFY = 0x402
+- F_OFD_GETLK = 0x24
+- F_OFD_SETLK = 0x25
+- F_OFD_SETLKW = 0x26
+- F_OK = 0x0
+- F_RDLCK = 0x0
+- F_SETFD = 0x2
+- F_SETFL = 0x4
+- F_SETLEASE = 0x400
+- F_SETLK = 0x6
+- F_SETLK64 = 0x6
+- F_SETLKW = 0x7
+- F_SETLKW64 = 0x7
+- F_SETOWN = 0x8
+- F_SETOWN_EX = 0xf
+- F_SETPIPE_SZ = 0x407
+- F_SETSIG = 0xa
+- F_SHLCK = 0x8
+- F_TEST = 0x3
+- F_TLOCK = 0x2
+- F_ULOCK = 0x0
+- F_UNLCK = 0x2
+- F_WRLCK = 0x1
+- GENL_ADMIN_PERM = 0x1
+- GENL_CMD_CAP_DO = 0x2
+- GENL_CMD_CAP_DUMP = 0x4
+- GENL_CMD_CAP_HASPOL = 0x8
+- GENL_HDRLEN = 0x4
+- GENL_ID_CTRL = 0x10
+- GENL_ID_PMCRAID = 0x12
+- GENL_ID_VFS_DQUOT = 0x11
+- GENL_MAX_ID = 0x3ff
+- GENL_MIN_ID = 0x10
+- GENL_NAMSIZ = 0x10
+- GENL_START_ALLOC = 0x13
+- GENL_UNS_ADMIN_PERM = 0x10
+- GRND_NONBLOCK = 0x1
+- GRND_RANDOM = 0x2
+- HUPCL = 0x400
+- IBSHIFT = 0x10
+- ICANON = 0x2
+- ICMPV6_FILTER = 0x1
+- ICRNL = 0x100
+- IEXTEN = 0x8000
+- IFA_F_DADFAILED = 0x8
+- IFA_F_DEPRECATED = 0x20
+- IFA_F_HOMEADDRESS = 0x10
+- IFA_F_MANAGETEMPADDR = 0x100
+- IFA_F_MCAUTOJOIN = 0x400
+- IFA_F_NODAD = 0x2
+- IFA_F_NOPREFIXROUTE = 0x200
+- IFA_F_OPTIMISTIC = 0x4
+- IFA_F_PERMANENT = 0x80
+- IFA_F_SECONDARY = 0x1
+- IFA_F_STABLE_PRIVACY = 0x800
+- IFA_F_TEMPORARY = 0x1
+- IFA_F_TENTATIVE = 0x40
+- IFA_MAX = 0x8
+- IFF_ALLMULTI = 0x200
+- IFF_ATTACH_QUEUE = 0x200
+- IFF_AUTOMEDIA = 0x4000
+- IFF_BROADCAST = 0x2
+- IFF_DEBUG = 0x4
+- IFF_DETACH_QUEUE = 0x400
+- IFF_DORMANT = 0x20000
+- IFF_DYNAMIC = 0x8000
+- IFF_ECHO = 0x40000
+- IFF_LOOPBACK = 0x8
+- IFF_LOWER_UP = 0x10000
+- IFF_MASTER = 0x400
+- IFF_MULTICAST = 0x1000
+- IFF_MULTI_QUEUE = 0x100
+- IFF_NOARP = 0x80
+- IFF_NOFILTER = 0x1000
+- IFF_NOTRAILERS = 0x20
+- IFF_NO_PI = 0x1000
+- IFF_ONE_QUEUE = 0x2000
+- IFF_PERSIST = 0x800
+- IFF_POINTOPOINT = 0x10
+- IFF_PORTSEL = 0x2000
+- IFF_PROMISC = 0x100
+- IFF_RUNNING = 0x40
+- IFF_SLAVE = 0x800
+- IFF_TAP = 0x2
+- IFF_TUN = 0x1
+- IFF_TUN_EXCL = 0x8000
+- IFF_UP = 0x1
+- IFF_VNET_HDR = 0x4000
+- IFF_VOLATILE = 0x70c5a
+- IFNAMSIZ = 0x10
+- IGNBRK = 0x1
+- IGNCR = 0x80
+- IGNPAR = 0x4
+- IMAXBEL = 0x2000
+- INLCR = 0x40
+- INPCK = 0x10
+- IN_ACCESS = 0x1
+- IN_ALL_EVENTS = 0xfff
+- IN_ATTRIB = 0x4
+- IN_CLASSA_HOST = 0xffffff
+- IN_CLASSA_MAX = 0x80
+- IN_CLASSA_NET = 0xff000000
+- IN_CLASSA_NSHIFT = 0x18
+- IN_CLASSB_HOST = 0xffff
+- IN_CLASSB_MAX = 0x10000
+- IN_CLASSB_NET = 0xffff0000
+- IN_CLASSB_NSHIFT = 0x10
+- IN_CLASSC_HOST = 0xff
+- IN_CLASSC_NET = 0xffffff00
+- IN_CLASSC_NSHIFT = 0x8
+- IN_CLOEXEC = 0x80000
+- IN_CLOSE = 0x18
+- IN_CLOSE_NOWRITE = 0x10
+- IN_CLOSE_WRITE = 0x8
+- IN_CREATE = 0x100
+- IN_DELETE = 0x200
+- IN_DELETE_SELF = 0x400
+- IN_DONT_FOLLOW = 0x2000000
+- IN_EXCL_UNLINK = 0x4000000
+- IN_IGNORED = 0x8000
+- IN_ISDIR = 0x40000000
+- IN_LOOPBACKNET = 0x7f
+- IN_MASK_ADD = 0x20000000
+- IN_MODIFY = 0x2
+- IN_MOVE = 0xc0
+- IN_MOVED_FROM = 0x40
+- IN_MOVED_TO = 0x80
+- IN_MOVE_SELF = 0x800
+- IN_NONBLOCK = 0x800
+- IN_ONESHOT = 0x80000000
+- IN_ONLYDIR = 0x1000000
+- IN_OPEN = 0x20
+- IN_Q_OVERFLOW = 0x4000
+- IN_UNMOUNT = 0x2000
+- IPPROTO_AH = 0x33
+- IPPROTO_BEETPH = 0x5e
+- IPPROTO_COMP = 0x6c
+- IPPROTO_DCCP = 0x21
+- IPPROTO_DSTOPTS = 0x3c
+- IPPROTO_EGP = 0x8
+- IPPROTO_ENCAP = 0x62
+- IPPROTO_ESP = 0x32
+- IPPROTO_FRAGMENT = 0x2c
+- IPPROTO_GRE = 0x2f
+- IPPROTO_HOPOPTS = 0x0
+- IPPROTO_ICMP = 0x1
+- IPPROTO_ICMPV6 = 0x3a
+- IPPROTO_IDP = 0x16
+- IPPROTO_IGMP = 0x2
+- IPPROTO_IP = 0x0
+- IPPROTO_IPIP = 0x4
+- IPPROTO_IPV6 = 0x29
+- IPPROTO_MH = 0x87
+- IPPROTO_MPLS = 0x89
+- IPPROTO_MTP = 0x5c
+- IPPROTO_NONE = 0x3b
+- IPPROTO_PIM = 0x67
+- IPPROTO_PUP = 0xc
+- IPPROTO_RAW = 0xff
+- IPPROTO_ROUTING = 0x2b
+- IPPROTO_RSVP = 0x2e
+- IPPROTO_SCTP = 0x84
+- IPPROTO_TCP = 0x6
+- IPPROTO_TP = 0x1d
+- IPPROTO_UDP = 0x11
+- IPPROTO_UDPLITE = 0x88
+- IPV6_2292DSTOPTS = 0x4
+- IPV6_2292HOPLIMIT = 0x8
+- IPV6_2292HOPOPTS = 0x3
+- IPV6_2292PKTINFO = 0x2
+- IPV6_2292PKTOPTIONS = 0x6
+- IPV6_2292RTHDR = 0x5
+- IPV6_ADDRFORM = 0x1
+- IPV6_ADD_MEMBERSHIP = 0x14
+- IPV6_AUTHHDR = 0xa
+- IPV6_CHECKSUM = 0x7
+- IPV6_DONTFRAG = 0x3e
+- IPV6_DROP_MEMBERSHIP = 0x15
+- IPV6_DSTOPTS = 0x3b
+- IPV6_HDRINCL = 0x24
+- IPV6_HOPLIMIT = 0x34
+- IPV6_HOPOPTS = 0x36
+- IPV6_IPSEC_POLICY = 0x22
+- IPV6_JOIN_ANYCAST = 0x1b
+- IPV6_JOIN_GROUP = 0x14
+- IPV6_LEAVE_ANYCAST = 0x1c
+- IPV6_LEAVE_GROUP = 0x15
+- IPV6_MTU = 0x18
+- IPV6_MTU_DISCOVER = 0x17
+- IPV6_MULTICAST_HOPS = 0x12
+- IPV6_MULTICAST_IF = 0x11
+- IPV6_MULTICAST_LOOP = 0x13
+- IPV6_NEXTHOP = 0x9
+- IPV6_PATHMTU = 0x3d
+- IPV6_PKTINFO = 0x32
+- IPV6_PMTUDISC_DO = 0x2
+- IPV6_PMTUDISC_DONT = 0x0
+- IPV6_PMTUDISC_INTERFACE = 0x4
+- IPV6_PMTUDISC_OMIT = 0x5
+- IPV6_PMTUDISC_PROBE = 0x3
+- IPV6_PMTUDISC_WANT = 0x1
+- IPV6_RECVDSTOPTS = 0x3a
+- IPV6_RECVERR = 0x19
+- IPV6_RECVHOPLIMIT = 0x33
+- IPV6_RECVHOPOPTS = 0x35
+- IPV6_RECVPATHMTU = 0x3c
+- IPV6_RECVPKTINFO = 0x31
+- IPV6_RECVRTHDR = 0x38
+- IPV6_RECVTCLASS = 0x42
+- IPV6_ROUTER_ALERT = 0x16
+- IPV6_RTHDR = 0x39
+- IPV6_RTHDRDSTOPTS = 0x37
+- IPV6_RTHDR_LOOSE = 0x0
+- IPV6_RTHDR_STRICT = 0x1
+- IPV6_RTHDR_TYPE_0 = 0x0
+- IPV6_RXDSTOPTS = 0x3b
+- IPV6_RXHOPOPTS = 0x36
+- IPV6_TCLASS = 0x43
+- IPV6_UNICAST_HOPS = 0x10
+- IPV6_V6ONLY = 0x1a
+- IPV6_XFRM_POLICY = 0x23
+- IP_ADD_MEMBERSHIP = 0x23
+- IP_ADD_SOURCE_MEMBERSHIP = 0x27
+- IP_BIND_ADDRESS_NO_PORT = 0x18
+- IP_BLOCK_SOURCE = 0x26
+- IP_CHECKSUM = 0x17
+- IP_DEFAULT_MULTICAST_LOOP = 0x1
+- IP_DEFAULT_MULTICAST_TTL = 0x1
+- IP_DF = 0x4000
+- IP_DROP_MEMBERSHIP = 0x24
+- IP_DROP_SOURCE_MEMBERSHIP = 0x28
+- IP_FREEBIND = 0xf
+- IP_HDRINCL = 0x3
+- IP_IPSEC_POLICY = 0x10
+- IP_MAXPACKET = 0xffff
+- IP_MAX_MEMBERSHIPS = 0x14
+- IP_MF = 0x2000
+- IP_MINTTL = 0x15
+- IP_MSFILTER = 0x29
+- IP_MSS = 0x240
+- IP_MTU = 0xe
+- IP_MTU_DISCOVER = 0xa
+- IP_MULTICAST_ALL = 0x31
+- IP_MULTICAST_IF = 0x20
+- IP_MULTICAST_LOOP = 0x22
+- IP_MULTICAST_TTL = 0x21
+- IP_NODEFRAG = 0x16
+- IP_OFFMASK = 0x1fff
+- IP_OPTIONS = 0x4
+- IP_ORIGDSTADDR = 0x14
+- IP_PASSSEC = 0x12
+- IP_PKTINFO = 0x8
+- IP_PKTOPTIONS = 0x9
+- IP_PMTUDISC = 0xa
+- IP_PMTUDISC_DO = 0x2
+- IP_PMTUDISC_DONT = 0x0
+- IP_PMTUDISC_INTERFACE = 0x4
+- IP_PMTUDISC_OMIT = 0x5
+- IP_PMTUDISC_PROBE = 0x3
+- IP_PMTUDISC_WANT = 0x1
+- IP_RECVERR = 0xb
+- IP_RECVOPTS = 0x6
+- IP_RECVORIGDSTADDR = 0x14
+- IP_RECVRETOPTS = 0x7
+- IP_RECVTOS = 0xd
+- IP_RECVTTL = 0xc
+- IP_RETOPTS = 0x7
+- IP_RF = 0x8000
+- IP_ROUTER_ALERT = 0x5
+- IP_TOS = 0x1
+- IP_TRANSPARENT = 0x13
+- IP_TTL = 0x2
+- IP_UNBLOCK_SOURCE = 0x25
+- IP_UNICAST_IF = 0x32
+- IP_XFRM_POLICY = 0x11
+- ISIG = 0x1
+- ISTRIP = 0x20
+- IUCLC = 0x200
+- IUTF8 = 0x4000
+- IXANY = 0x800
+- IXOFF = 0x1000
+- IXON = 0x400
+- KEYCTL_ASSUME_AUTHORITY = 0x10
+- KEYCTL_CHOWN = 0x4
+- KEYCTL_CLEAR = 0x7
+- KEYCTL_DESCRIBE = 0x6
+- KEYCTL_DH_COMPUTE = 0x17
+- KEYCTL_GET_KEYRING_ID = 0x0
+- KEYCTL_GET_PERSISTENT = 0x16
+- KEYCTL_GET_SECURITY = 0x11
+- KEYCTL_INSTANTIATE = 0xc
+- KEYCTL_INSTANTIATE_IOV = 0x14
+- KEYCTL_INVALIDATE = 0x15
+- KEYCTL_JOIN_SESSION_KEYRING = 0x1
+- KEYCTL_LINK = 0x8
+- KEYCTL_NEGATE = 0xd
+- KEYCTL_READ = 0xb
+- KEYCTL_REJECT = 0x13
+- KEYCTL_REVOKE = 0x3
+- KEYCTL_SEARCH = 0xa
+- KEYCTL_SESSION_TO_PARENT = 0x12
+- KEYCTL_SETPERM = 0x5
+- KEYCTL_SET_REQKEY_KEYRING = 0xe
+- KEYCTL_SET_TIMEOUT = 0xf
+- KEYCTL_UNLINK = 0x9
+- KEYCTL_UPDATE = 0x2
+- KEY_REQKEY_DEFL_DEFAULT = 0x0
+- KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6
+- KEY_REQKEY_DEFL_NO_CHANGE = -0x1
+- KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2
+- KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7
+- KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3
+- KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1
+- KEY_REQKEY_DEFL_USER_KEYRING = 0x4
+- KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
+- KEY_SPEC_GROUP_KEYRING = -0x6
+- KEY_SPEC_PROCESS_KEYRING = -0x2
+- KEY_SPEC_REQKEY_AUTH_KEY = -0x7
+- KEY_SPEC_REQUESTOR_KEYRING = -0x8
+- KEY_SPEC_SESSION_KEYRING = -0x3
+- KEY_SPEC_THREAD_KEYRING = -0x1
+- KEY_SPEC_USER_KEYRING = -0x4
+- KEY_SPEC_USER_SESSION_KEYRING = -0x5
+- LINUX_REBOOT_CMD_CAD_OFF = 0x0
+- LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
+- LINUX_REBOOT_CMD_HALT = 0xcdef0123
+- LINUX_REBOOT_CMD_KEXEC = 0x45584543
+- LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
+- LINUX_REBOOT_CMD_RESTART = 0x1234567
+- LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
+- LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
+- LINUX_REBOOT_MAGIC1 = 0xfee1dead
+- LINUX_REBOOT_MAGIC2 = 0x28121969
+- LOCK_EX = 0x2
+- LOCK_NB = 0x4
+- LOCK_SH = 0x1
+- LOCK_UN = 0x8
+- MADV_DODUMP = 0x11
+- MADV_DOFORK = 0xb
+- MADV_DONTDUMP = 0x10
+- MADV_DONTFORK = 0xa
+- MADV_DONTNEED = 0x4
+- MADV_FREE = 0x8
+- MADV_HUGEPAGE = 0xe
+- MADV_HWPOISON = 0x64
+- MADV_MERGEABLE = 0xc
+- MADV_NOHUGEPAGE = 0xf
+- MADV_NORMAL = 0x0
+- MADV_RANDOM = 0x1
+- MADV_REMOVE = 0x9
+- MADV_SEQUENTIAL = 0x2
+- MADV_UNMERGEABLE = 0xd
+- MADV_WILLNEED = 0x3
+- MAP_32BIT = 0x40
+- MAP_ANON = 0x20
+- MAP_ANONYMOUS = 0x20
+- MAP_DENYWRITE = 0x800
+- MAP_EXECUTABLE = 0x1000
+- MAP_FILE = 0x0
+- MAP_FIXED = 0x10
+- MAP_GROWSDOWN = 0x100
+- MAP_HUGETLB = 0x40000
+- MAP_HUGE_MASK = 0x3f
+- MAP_HUGE_SHIFT = 0x1a
+- MAP_LOCKED = 0x2000
+- MAP_NONBLOCK = 0x10000
+- MAP_NORESERVE = 0x4000
+- MAP_POPULATE = 0x8000
+- MAP_PRIVATE = 0x2
+- MAP_SHARED = 0x1
+- MAP_STACK = 0x20000
+- MAP_TYPE = 0xf
+- MCL_CURRENT = 0x1
+- MCL_FUTURE = 0x2
+- MCL_ONFAULT = 0x4
+- MNT_DETACH = 0x2
+- MNT_EXPIRE = 0x4
+- MNT_FORCE = 0x1
+- MSG_BATCH = 0x40000
+- MSG_CMSG_CLOEXEC = 0x40000000
+- MSG_CONFIRM = 0x800
+- MSG_CTRUNC = 0x8
+- MSG_DONTROUTE = 0x4
+- MSG_DONTWAIT = 0x40
+- MSG_EOR = 0x80
+- MSG_ERRQUEUE = 0x2000
+- MSG_FASTOPEN = 0x20000000
+- MSG_FIN = 0x200
+- MSG_MORE = 0x8000
+- MSG_NOSIGNAL = 0x4000
+- MSG_OOB = 0x1
+- MSG_PEEK = 0x2
+- MSG_PROXY = 0x10
+- MSG_RST = 0x1000
+- MSG_SYN = 0x400
+- MSG_TRUNC = 0x20
+- MSG_TRYHARD = 0x4
+- MSG_WAITALL = 0x100
+- MSG_WAITFORONE = 0x10000
+- MS_ACTIVE = 0x40000000
+- MS_ASYNC = 0x1
+- MS_BIND = 0x1000
+- MS_BORN = 0x20000000
+- MS_DIRSYNC = 0x80
+- MS_INVALIDATE = 0x2
+- MS_I_VERSION = 0x800000
+- MS_KERNMOUNT = 0x400000
+- MS_LAZYTIME = 0x2000000
+- MS_MANDLOCK = 0x40
+- MS_MGC_MSK = 0xffff0000
+- MS_MGC_VAL = 0xc0ed0000
+- MS_MOVE = 0x2000
+- MS_NOATIME = 0x400
+- MS_NODEV = 0x4
+- MS_NODIRATIME = 0x800
+- MS_NOEXEC = 0x8
+- MS_NOREMOTELOCK = 0x8000000
+- MS_NOSEC = 0x10000000
+- MS_NOSUID = 0x2
+- MS_NOUSER = -0x80000000
+- MS_POSIXACL = 0x10000
+- MS_PRIVATE = 0x40000
+- MS_RDONLY = 0x1
+- MS_REC = 0x4000
+- MS_RELATIME = 0x200000
+- MS_REMOUNT = 0x20
+- MS_RMT_MASK = 0x2800051
+- MS_SHARED = 0x100000
+- MS_SILENT = 0x8000
+- MS_SLAVE = 0x80000
+- MS_STRICTATIME = 0x1000000
+- MS_SYNC = 0x4
+- MS_SYNCHRONOUS = 0x10
+- MS_UNBINDABLE = 0x20000
+- MS_VERBOSE = 0x8000
+- NAME_MAX = 0xff
+- NETLINK_ADD_MEMBERSHIP = 0x1
+- NETLINK_AUDIT = 0x9
+- NETLINK_BROADCAST_ERROR = 0x4
+- NETLINK_CAP_ACK = 0xa
+- NETLINK_CONNECTOR = 0xb
+- NETLINK_CRYPTO = 0x15
+- NETLINK_DNRTMSG = 0xe
+- NETLINK_DROP_MEMBERSHIP = 0x2
+- NETLINK_ECRYPTFS = 0x13
+- NETLINK_FIB_LOOKUP = 0xa
+- NETLINK_FIREWALL = 0x3
+- NETLINK_GENERIC = 0x10
+- NETLINK_INET_DIAG = 0x4
+- NETLINK_IP6_FW = 0xd
+- NETLINK_ISCSI = 0x8
+- NETLINK_KOBJECT_UEVENT = 0xf
+- NETLINK_LISTEN_ALL_NSID = 0x8
+- NETLINK_LIST_MEMBERSHIPS = 0x9
+- NETLINK_NETFILTER = 0xc
+- NETLINK_NFLOG = 0x5
+- NETLINK_NO_ENOBUFS = 0x5
+- NETLINK_PKTINFO = 0x3
+- NETLINK_RDMA = 0x14
+- NETLINK_ROUTE = 0x0
+- NETLINK_RX_RING = 0x6
+- NETLINK_SCSITRANSPORT = 0x12
+- NETLINK_SELINUX = 0x7
+- NETLINK_SOCK_DIAG = 0x4
+- NETLINK_TX_RING = 0x7
+- NETLINK_UNUSED = 0x1
+- NETLINK_USERSOCK = 0x2
+- NETLINK_XFRM = 0x6
+- NL0 = 0x0
+- NL1 = 0x100
+- NLA_ALIGNTO = 0x4
+- NLA_F_NESTED = 0x8000
+- NLA_F_NET_BYTEORDER = 0x4000
+- NLA_HDRLEN = 0x4
+- NLDLY = 0x100
+- NLMSG_ALIGNTO = 0x4
+- NLMSG_DONE = 0x3
+- NLMSG_ERROR = 0x2
+- NLMSG_HDRLEN = 0x10
+- NLMSG_MIN_TYPE = 0x10
+- NLMSG_NOOP = 0x1
+- NLMSG_OVERRUN = 0x4
+- NLM_F_ACK = 0x4
+- NLM_F_APPEND = 0x800
+- NLM_F_ATOMIC = 0x400
+- NLM_F_CREATE = 0x400
+- NLM_F_DUMP = 0x300
+- NLM_F_DUMP_FILTERED = 0x20
+- NLM_F_DUMP_INTR = 0x10
+- NLM_F_ECHO = 0x8
+- NLM_F_EXCL = 0x200
+- NLM_F_MATCH = 0x200
+- NLM_F_MULTI = 0x2
+- NLM_F_REPLACE = 0x100
+- NLM_F_REQUEST = 0x1
+- NLM_F_ROOT = 0x100
+- NOFLSH = 0x80
+- OCRNL = 0x8
+- OFDEL = 0x80
+- OFILL = 0x40
+- OLCUC = 0x2
+- ONLCR = 0x4
+- ONLRET = 0x20
+- ONOCR = 0x10
+- OPOST = 0x1
+- O_ACCMODE = 0x3
+- O_APPEND = 0x400
+- O_ASYNC = 0x2000
+- O_CLOEXEC = 0x80000
+- O_CREAT = 0x40
+- O_DIRECT = 0x4000
+- O_DIRECTORY = 0x10000
+- O_DSYNC = 0x1000
+- O_EXCL = 0x80
+- O_FSYNC = 0x101000
+- O_LARGEFILE = 0x0
+- O_NDELAY = 0x800
+- O_NOATIME = 0x40000
+- O_NOCTTY = 0x100
+- O_NOFOLLOW = 0x20000
+- O_NONBLOCK = 0x800
+- O_PATH = 0x200000
+- O_RDONLY = 0x0
+- O_RDWR = 0x2
+- O_RSYNC = 0x101000
+- O_SYNC = 0x101000
+- O_TMPFILE = 0x410000
+- O_TRUNC = 0x200
+- O_WRONLY = 0x1
+- PACKET_ADD_MEMBERSHIP = 0x1
+- PACKET_AUXDATA = 0x8
+- PACKET_BROADCAST = 0x1
+- PACKET_COPY_THRESH = 0x7
+- PACKET_DROP_MEMBERSHIP = 0x2
+- PACKET_FANOUT = 0x12
+- PACKET_FANOUT_CBPF = 0x6
+- PACKET_FANOUT_CPU = 0x2
+- PACKET_FANOUT_DATA = 0x16
+- PACKET_FANOUT_EBPF = 0x7
+- PACKET_FANOUT_FLAG_DEFRAG = 0x8000
+- PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
+- PACKET_FANOUT_HASH = 0x0
+- PACKET_FANOUT_LB = 0x1
+- PACKET_FANOUT_QM = 0x5
+- PACKET_FANOUT_RND = 0x4
+- PACKET_FANOUT_ROLLOVER = 0x3
+- PACKET_FASTROUTE = 0x6
+- PACKET_HDRLEN = 0xb
+- PACKET_HOST = 0x0
+- PACKET_KERNEL = 0x7
+- PACKET_LOOPBACK = 0x5
+- PACKET_LOSS = 0xe
+- PACKET_MR_ALLMULTI = 0x2
+- PACKET_MR_MULTICAST = 0x0
+- PACKET_MR_PROMISC = 0x1
+- PACKET_MR_UNICAST = 0x3
+- PACKET_MULTICAST = 0x2
+- PACKET_ORIGDEV = 0x9
+- PACKET_OTHERHOST = 0x3
+- PACKET_OUTGOING = 0x4
+- PACKET_QDISC_BYPASS = 0x14
+- PACKET_RECV_OUTPUT = 0x3
+- PACKET_RESERVE = 0xc
+- PACKET_ROLLOVER_STATS = 0x15
+- PACKET_RX_RING = 0x5
+- PACKET_STATISTICS = 0x6
+- PACKET_TIMESTAMP = 0x11
+- PACKET_TX_HAS_OFF = 0x13
+- PACKET_TX_RING = 0xd
+- PACKET_TX_TIMESTAMP = 0x10
+- PACKET_USER = 0x6
+- PACKET_VERSION = 0xa
+- PACKET_VNET_HDR = 0xf
+- PARENB = 0x100
+- PARITY_CRC16_PR0 = 0x2
+- PARITY_CRC16_PR0_CCITT = 0x4
+- PARITY_CRC16_PR1 = 0x3
+- PARITY_CRC16_PR1_CCITT = 0x5
+- PARITY_CRC32_PR0_CCITT = 0x6
+- PARITY_CRC32_PR1_CCITT = 0x7
+- PARITY_DEFAULT = 0x0
+- PARITY_NONE = 0x1
+- PARMRK = 0x8
+- PARODD = 0x200
+- PENDIN = 0x4000
+- PERF_EVENT_IOC_DISABLE = 0x2401
+- PERF_EVENT_IOC_ENABLE = 0x2400
+- PERF_EVENT_IOC_ID = 0x80082407
+- PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409
+- PERF_EVENT_IOC_PERIOD = 0x40082404
+- PERF_EVENT_IOC_REFRESH = 0x2402
+- PERF_EVENT_IOC_RESET = 0x2403
+- PERF_EVENT_IOC_SET_BPF = 0x40042408
+- PERF_EVENT_IOC_SET_FILTER = 0x40082406
+- PERF_EVENT_IOC_SET_OUTPUT = 0x2405
+- PRIO_PGRP = 0x1
+- PRIO_PROCESS = 0x0
+- PRIO_USER = 0x2
+- PROT_EXEC = 0x4
+- PROT_GROWSDOWN = 0x1000000
+- PROT_GROWSUP = 0x2000000
+- PROT_NONE = 0x0
+- PROT_READ = 0x1
+- PROT_WRITE = 0x2
+- PR_CAPBSET_DROP = 0x18
+- PR_CAPBSET_READ = 0x17
+- PR_CAP_AMBIENT = 0x2f
+- PR_CAP_AMBIENT_CLEAR_ALL = 0x4
+- PR_CAP_AMBIENT_IS_SET = 0x1
+- PR_CAP_AMBIENT_LOWER = 0x3
+- PR_CAP_AMBIENT_RAISE = 0x2
+- PR_ENDIAN_BIG = 0x0
+- PR_ENDIAN_LITTLE = 0x1
+- PR_ENDIAN_PPC_LITTLE = 0x2
+- PR_FPEMU_NOPRINT = 0x1
+- PR_FPEMU_SIGFPE = 0x2
+- PR_FP_EXC_ASYNC = 0x2
+- PR_FP_EXC_DISABLED = 0x0
+- PR_FP_EXC_DIV = 0x10000
+- PR_FP_EXC_INV = 0x100000
+- PR_FP_EXC_NONRECOV = 0x1
+- PR_FP_EXC_OVF = 0x20000
+- PR_FP_EXC_PRECISE = 0x3
+- PR_FP_EXC_RES = 0x80000
+- PR_FP_EXC_SW_ENABLE = 0x80
+- PR_FP_EXC_UND = 0x40000
+- PR_FP_MODE_FR = 0x1
+- PR_FP_MODE_FRE = 0x2
+- PR_GET_CHILD_SUBREAPER = 0x25
+- PR_GET_DUMPABLE = 0x3
+- PR_GET_ENDIAN = 0x13
+- PR_GET_FPEMU = 0x9
+- PR_GET_FPEXC = 0xb
+- PR_GET_FP_MODE = 0x2e
+- PR_GET_KEEPCAPS = 0x7
+- PR_GET_NAME = 0x10
+- PR_GET_NO_NEW_PRIVS = 0x27
+- PR_GET_PDEATHSIG = 0x2
+- PR_GET_SECCOMP = 0x15
+- PR_GET_SECUREBITS = 0x1b
+- PR_GET_THP_DISABLE = 0x2a
+- PR_GET_TID_ADDRESS = 0x28
+- PR_GET_TIMERSLACK = 0x1e
+- PR_GET_TIMING = 0xd
+- PR_GET_TSC = 0x19
+- PR_GET_UNALIGN = 0x5
+- PR_MCE_KILL = 0x21
+- PR_MCE_KILL_CLEAR = 0x0
+- PR_MCE_KILL_DEFAULT = 0x2
+- PR_MCE_KILL_EARLY = 0x1
+- PR_MCE_KILL_GET = 0x22
+- PR_MCE_KILL_LATE = 0x0
+- PR_MCE_KILL_SET = 0x1
+- PR_MPX_DISABLE_MANAGEMENT = 0x2c
+- PR_MPX_ENABLE_MANAGEMENT = 0x2b
+- PR_SET_CHILD_SUBREAPER = 0x24
+- PR_SET_DUMPABLE = 0x4
+- PR_SET_ENDIAN = 0x14
+- PR_SET_FPEMU = 0xa
+- PR_SET_FPEXC = 0xc
+- PR_SET_FP_MODE = 0x2d
+- PR_SET_KEEPCAPS = 0x8
+- PR_SET_MM = 0x23
+- PR_SET_MM_ARG_END = 0x9
+- PR_SET_MM_ARG_START = 0x8
+- PR_SET_MM_AUXV = 0xc
+- PR_SET_MM_BRK = 0x7
+- PR_SET_MM_END_CODE = 0x2
+- PR_SET_MM_END_DATA = 0x4
+- PR_SET_MM_ENV_END = 0xb
+- PR_SET_MM_ENV_START = 0xa
+- PR_SET_MM_EXE_FILE = 0xd
+- PR_SET_MM_MAP = 0xe
+- PR_SET_MM_MAP_SIZE = 0xf
+- PR_SET_MM_START_BRK = 0x6
+- PR_SET_MM_START_CODE = 0x1
+- PR_SET_MM_START_DATA = 0x3
+- PR_SET_MM_START_STACK = 0x5
+- PR_SET_NAME = 0xf
+- PR_SET_NO_NEW_PRIVS = 0x26
+- PR_SET_PDEATHSIG = 0x1
+- PR_SET_PTRACER = 0x59616d61
+- PR_SET_PTRACER_ANY = -0x1
+- PR_SET_SECCOMP = 0x16
+- PR_SET_SECUREBITS = 0x1c
+- PR_SET_THP_DISABLE = 0x29
+- PR_SET_TIMERSLACK = 0x1d
+- PR_SET_TIMING = 0xe
+- PR_SET_TSC = 0x1a
+- PR_SET_UNALIGN = 0x6
+- PR_TASK_PERF_EVENTS_DISABLE = 0x1f
+- PR_TASK_PERF_EVENTS_ENABLE = 0x20
+- PR_TIMING_STATISTICAL = 0x0
+- PR_TIMING_TIMESTAMP = 0x1
+- PR_TSC_ENABLE = 0x1
+- PR_TSC_SIGSEGV = 0x2
+- PR_UNALIGN_NOPRINT = 0x1
+- PR_UNALIGN_SIGBUS = 0x2
+- PTRACE_ARCH_PRCTL = 0x1e
+- PTRACE_ATTACH = 0x10
+- PTRACE_CONT = 0x7
+- PTRACE_DETACH = 0x11
+- PTRACE_EVENT_CLONE = 0x3
+- PTRACE_EVENT_EXEC = 0x4
+- PTRACE_EVENT_EXIT = 0x6
+- PTRACE_EVENT_FORK = 0x1
+- PTRACE_EVENT_SECCOMP = 0x7
+- PTRACE_EVENT_STOP = 0x80
+- PTRACE_EVENT_VFORK = 0x2
+- PTRACE_EVENT_VFORK_DONE = 0x5
+- PTRACE_GETEVENTMSG = 0x4201
+- PTRACE_GETFPREGS = 0xe
+- PTRACE_GETFPXREGS = 0x12
+- PTRACE_GETREGS = 0xc
+- PTRACE_GETREGSET = 0x4204
+- PTRACE_GETSIGINFO = 0x4202
+- PTRACE_GETSIGMASK = 0x420a
+- PTRACE_GET_THREAD_AREA = 0x19
+- PTRACE_INTERRUPT = 0x4207
+- PTRACE_KILL = 0x8
+- PTRACE_LISTEN = 0x4208
+- PTRACE_OLDSETOPTIONS = 0x15
+- PTRACE_O_EXITKILL = 0x100000
+- PTRACE_O_MASK = 0x3000ff
+- PTRACE_O_SUSPEND_SECCOMP = 0x200000
+- PTRACE_O_TRACECLONE = 0x8
+- PTRACE_O_TRACEEXEC = 0x10
+- PTRACE_O_TRACEEXIT = 0x40
+- PTRACE_O_TRACEFORK = 0x2
+- PTRACE_O_TRACESECCOMP = 0x80
+- PTRACE_O_TRACESYSGOOD = 0x1
+- PTRACE_O_TRACEVFORK = 0x4
+- PTRACE_O_TRACEVFORKDONE = 0x20
+- PTRACE_PEEKDATA = 0x2
+- PTRACE_PEEKSIGINFO = 0x4209
+- PTRACE_PEEKSIGINFO_SHARED = 0x1
+- PTRACE_PEEKTEXT = 0x1
+- PTRACE_PEEKUSR = 0x3
+- PTRACE_POKEDATA = 0x5
+- PTRACE_POKETEXT = 0x4
+- PTRACE_POKEUSR = 0x6
+- PTRACE_SECCOMP_GET_FILTER = 0x420c
+- PTRACE_SEIZE = 0x4206
+- PTRACE_SETFPREGS = 0xf
+- PTRACE_SETFPXREGS = 0x13
+- PTRACE_SETOPTIONS = 0x4200
+- PTRACE_SETREGS = 0xd
+- PTRACE_SETREGSET = 0x4205
+- PTRACE_SETSIGINFO = 0x4203
+- PTRACE_SETSIGMASK = 0x420b
+- PTRACE_SET_THREAD_AREA = 0x1a
+- PTRACE_SINGLEBLOCK = 0x21
+- PTRACE_SINGLESTEP = 0x9
+- PTRACE_SYSCALL = 0x18
+- PTRACE_SYSEMU = 0x1f
+- PTRACE_SYSEMU_SINGLESTEP = 0x20
+- PTRACE_TRACEME = 0x0
+- RLIMIT_AS = 0x9
+- RLIMIT_CORE = 0x4
+- RLIMIT_CPU = 0x0
+- RLIMIT_DATA = 0x2
+- RLIMIT_FSIZE = 0x1
+- RLIMIT_LOCKS = 0xa
+- RLIMIT_MEMLOCK = 0x8
+- RLIMIT_MSGQUEUE = 0xc
+- RLIMIT_NICE = 0xd
+- RLIMIT_NOFILE = 0x7
+- RLIMIT_NPROC = 0x6
+- RLIMIT_RSS = 0x5
+- RLIMIT_RTPRIO = 0xe
+- RLIMIT_RTTIME = 0xf
+- RLIMIT_SIGPENDING = 0xb
+- RLIMIT_STACK = 0x3
+- RLIM_INFINITY = -0x1
+- RTAX_ADVMSS = 0x8
+- RTAX_CC_ALGO = 0x10
+- RTAX_CWND = 0x7
+- RTAX_FEATURES = 0xc
+- RTAX_FEATURE_ALLFRAG = 0x8
+- RTAX_FEATURE_ECN = 0x1
+- RTAX_FEATURE_MASK = 0xf
+- RTAX_FEATURE_SACK = 0x2
+- RTAX_FEATURE_TIMESTAMP = 0x4
+- RTAX_HOPLIMIT = 0xa
+- RTAX_INITCWND = 0xb
+- RTAX_INITRWND = 0xe
+- RTAX_LOCK = 0x1
+- RTAX_MAX = 0x10
+- RTAX_MTU = 0x2
+- RTAX_QUICKACK = 0xf
+- RTAX_REORDERING = 0x9
+- RTAX_RTO_MIN = 0xd
+- RTAX_RTT = 0x4
+- RTAX_RTTVAR = 0x5
+- RTAX_SSTHRESH = 0x6
+- RTAX_UNSPEC = 0x0
+- RTAX_WINDOW = 0x3
+- RTA_ALIGNTO = 0x4
+- RTA_MAX = 0x19
+- RTCF_DIRECTSRC = 0x4000000
+- RTCF_DOREDIRECT = 0x1000000
+- RTCF_LOG = 0x2000000
+- RTCF_MASQ = 0x400000
+- RTCF_NAT = 0x800000
+- RTCF_VALVE = 0x200000
+- RTF_ADDRCLASSMASK = 0xf8000000
+- RTF_ADDRCONF = 0x40000
+- RTF_ALLONLINK = 0x20000
+- RTF_BROADCAST = 0x10000000
+- RTF_CACHE = 0x1000000
+- RTF_DEFAULT = 0x10000
+- RTF_DYNAMIC = 0x10
+- RTF_FLOW = 0x2000000
+- RTF_GATEWAY = 0x2
+- RTF_HOST = 0x4
+- RTF_INTERFACE = 0x40000000
+- RTF_IRTT = 0x100
+- RTF_LINKRT = 0x100000
+- RTF_LOCAL = 0x80000000
+- RTF_MODIFIED = 0x20
+- RTF_MSS = 0x40
+- RTF_MTU = 0x40
+- RTF_MULTICAST = 0x20000000
+- RTF_NAT = 0x8000000
+- RTF_NOFORWARD = 0x1000
+- RTF_NONEXTHOP = 0x200000
+- RTF_NOPMTUDISC = 0x4000
+- RTF_POLICY = 0x4000000
+- RTF_REINSTATE = 0x8
+- RTF_REJECT = 0x200
+- RTF_STATIC = 0x400
+- RTF_THROW = 0x2000
+- RTF_UP = 0x1
+- RTF_WINDOW = 0x80
+- RTF_XRESOLVE = 0x800
+- RTM_BASE = 0x10
+- RTM_DELACTION = 0x31
+- RTM_DELADDR = 0x15
+- RTM_DELADDRLABEL = 0x49
+- RTM_DELLINK = 0x11
+- RTM_DELMDB = 0x55
+- RTM_DELNEIGH = 0x1d
+- RTM_DELNSID = 0x59
+- RTM_DELQDISC = 0x25
+- RTM_DELROUTE = 0x19
+- RTM_DELRULE = 0x21
+- RTM_DELTCLASS = 0x29
+- RTM_DELTFILTER = 0x2d
+- RTM_F_CLONED = 0x200
+- RTM_F_EQUALIZE = 0x400
+- RTM_F_LOOKUP_TABLE = 0x1000
+- RTM_F_NOTIFY = 0x100
+- RTM_F_PREFIX = 0x800
+- RTM_GETACTION = 0x32
+- RTM_GETADDR = 0x16
+- RTM_GETADDRLABEL = 0x4a
+- RTM_GETANYCAST = 0x3e
+- RTM_GETDCB = 0x4e
+- RTM_GETLINK = 0x12
+- RTM_GETMDB = 0x56
+- RTM_GETMULTICAST = 0x3a
+- RTM_GETNEIGH = 0x1e
+- RTM_GETNEIGHTBL = 0x42
+- RTM_GETNETCONF = 0x52
+- RTM_GETNSID = 0x5a
+- RTM_GETQDISC = 0x26
+- RTM_GETROUTE = 0x1a
+- RTM_GETRULE = 0x22
+- RTM_GETSTATS = 0x5e
+- RTM_GETTCLASS = 0x2a
+- RTM_GETTFILTER = 0x2e
+- RTM_MAX = 0x5f
+- RTM_NEWACTION = 0x30
+- RTM_NEWADDR = 0x14
+- RTM_NEWADDRLABEL = 0x48
+- RTM_NEWLINK = 0x10
+- RTM_NEWMDB = 0x54
+- RTM_NEWNDUSEROPT = 0x44
+- RTM_NEWNEIGH = 0x1c
+- RTM_NEWNEIGHTBL = 0x40
+- RTM_NEWNETCONF = 0x50
+- RTM_NEWNSID = 0x58
+- RTM_NEWPREFIX = 0x34
+- RTM_NEWQDISC = 0x24
+- RTM_NEWROUTE = 0x18
+- RTM_NEWRULE = 0x20
+- RTM_NEWSTATS = 0x5c
+- RTM_NEWTCLASS = 0x28
+- RTM_NEWTFILTER = 0x2c
+- RTM_NR_FAMILIES = 0x14
+- RTM_NR_MSGTYPES = 0x50
+- RTM_SETDCB = 0x4f
+- RTM_SETLINK = 0x13
+- RTM_SETNEIGHTBL = 0x43
+- RTNH_ALIGNTO = 0x4
+- RTNH_COMPARE_MASK = 0x19
+- RTNH_F_DEAD = 0x1
+- RTNH_F_LINKDOWN = 0x10
+- RTNH_F_OFFLOAD = 0x8
+- RTNH_F_ONLINK = 0x4
+- RTNH_F_PERVASIVE = 0x2
+- RTN_MAX = 0xb
+- RTPROT_BABEL = 0x2a
+- RTPROT_BIRD = 0xc
+- RTPROT_BOOT = 0x3
+- RTPROT_DHCP = 0x10
+- RTPROT_DNROUTED = 0xd
+- RTPROT_GATED = 0x8
+- RTPROT_KERNEL = 0x2
+- RTPROT_MROUTED = 0x11
+- RTPROT_MRT = 0xa
+- RTPROT_NTK = 0xf
+- RTPROT_RA = 0x9
+- RTPROT_REDIRECT = 0x1
+- RTPROT_STATIC = 0x4
+- RTPROT_UNSPEC = 0x0
+- RTPROT_XORP = 0xe
+- RTPROT_ZEBRA = 0xb
+- RT_CLASS_DEFAULT = 0xfd
+- RT_CLASS_LOCAL = 0xff
+- RT_CLASS_MAIN = 0xfe
+- RT_CLASS_MAX = 0xff
+- RT_CLASS_UNSPEC = 0x0
+- RUSAGE_CHILDREN = -0x1
+- RUSAGE_SELF = 0x0
+- RUSAGE_THREAD = 0x1
+- SCM_CREDENTIALS = 0x2
+- SCM_RIGHTS = 0x1
+- SCM_TIMESTAMP = 0x1d
+- SCM_TIMESTAMPING = 0x25
+- SCM_TIMESTAMPING_OPT_STATS = 0x36
+- SCM_TIMESTAMPNS = 0x23
+- SCM_WIFI_STATUS = 0x29
+- SECCOMP_MODE_DISABLED = 0x0
+- SECCOMP_MODE_FILTER = 0x2
+- SECCOMP_MODE_STRICT = 0x1
+- SHUT_RD = 0x0
+- SHUT_RDWR = 0x2
+- SHUT_WR = 0x1
+- SIOCADDDLCI = 0x8980
+- SIOCADDMULTI = 0x8931
+- SIOCADDRT = 0x890b
+- SIOCATMARK = 0x8905
+- SIOCBONDCHANGEACTIVE = 0x8995
+- SIOCBONDENSLAVE = 0x8990
+- SIOCBONDINFOQUERY = 0x8994
+- SIOCBONDRELEASE = 0x8991
+- SIOCBONDSETHWADDR = 0x8992
+- SIOCBONDSLAVEINFOQUERY = 0x8993
+- SIOCBRADDBR = 0x89a0
+- SIOCBRADDIF = 0x89a2
+- SIOCBRDELBR = 0x89a1
+- SIOCBRDELIF = 0x89a3
+- SIOCDARP = 0x8953
+- SIOCDELDLCI = 0x8981
+- SIOCDELMULTI = 0x8932
+- SIOCDELRT = 0x890c
+- SIOCDEVPRIVATE = 0x89f0
+- SIOCDIFADDR = 0x8936
+- SIOCDRARP = 0x8960
+- SIOCETHTOOL = 0x8946
+- SIOCGARP = 0x8954
+- SIOCGHWTSTAMP = 0x89b1
+- SIOCGIFADDR = 0x8915
+- SIOCGIFBR = 0x8940
+- SIOCGIFBRDADDR = 0x8919
+- SIOCGIFCONF = 0x8912
+- SIOCGIFCOUNT = 0x8938
+- SIOCGIFDSTADDR = 0x8917
+- SIOCGIFENCAP = 0x8925
+- SIOCGIFFLAGS = 0x8913
+- SIOCGIFHWADDR = 0x8927
+- SIOCGIFINDEX = 0x8933
+- SIOCGIFMAP = 0x8970
+- SIOCGIFMEM = 0x891f
+- SIOCGIFMETRIC = 0x891d
+- SIOCGIFMTU = 0x8921
+- SIOCGIFNAME = 0x8910
+- SIOCGIFNETMASK = 0x891b
+- SIOCGIFPFLAGS = 0x8935
+- SIOCGIFSLAVE = 0x8929
+- SIOCGIFTXQLEN = 0x8942
+- SIOCGIFVLAN = 0x8982
+- SIOCGMIIPHY = 0x8947
+- SIOCGMIIREG = 0x8948
+- SIOCGPGRP = 0x8904
+- SIOCGRARP = 0x8961
+- SIOCGSKNS = 0x894c
+- SIOCGSTAMP = 0x8906
+- SIOCGSTAMPNS = 0x8907
+- SIOCINQ = 0x541b
+- SIOCOUTQ = 0x5411
+- SIOCOUTQNSD = 0x894b
+- SIOCPROTOPRIVATE = 0x89e0
+- SIOCRTMSG = 0x890d
+- SIOCSARP = 0x8955
+- SIOCSHWTSTAMP = 0x89b0
+- SIOCSIFADDR = 0x8916
+- SIOCSIFBR = 0x8941
+- SIOCSIFBRDADDR = 0x891a
+- SIOCSIFDSTADDR = 0x8918
+- SIOCSIFENCAP = 0x8926
+- SIOCSIFFLAGS = 0x8914
+- SIOCSIFHWADDR = 0x8924
+- SIOCSIFHWBROADCAST = 0x8937
+- SIOCSIFLINK = 0x8911
+- SIOCSIFMAP = 0x8971
+- SIOCSIFMEM = 0x8920
+- SIOCSIFMETRIC = 0x891e
+- SIOCSIFMTU = 0x8922
+- SIOCSIFNAME = 0x8923
+- SIOCSIFNETMASK = 0x891c
+- SIOCSIFPFLAGS = 0x8934
+- SIOCSIFSLAVE = 0x8930
+- SIOCSIFTXQLEN = 0x8943
+- SIOCSIFVLAN = 0x8983
+- SIOCSMIIREG = 0x8949
+- SIOCSPGRP = 0x8902
+- SIOCSRARP = 0x8962
+- SIOCWANDEV = 0x894a
+- SOCK_CLOEXEC = 0x80000
+- SOCK_DCCP = 0x6
+- SOCK_DGRAM = 0x2
+- SOCK_IOC_TYPE = 0x89
+- SOCK_NONBLOCK = 0x800
+- SOCK_PACKET = 0xa
+- SOCK_RAW = 0x3
+- SOCK_RDM = 0x4
+- SOCK_SEQPACKET = 0x5
+- SOCK_STREAM = 0x1
+- SOL_AAL = 0x109
+- SOL_ALG = 0x117
+- SOL_ATM = 0x108
+- SOL_CAIF = 0x116
+- SOL_CAN_BASE = 0x64
+- SOL_DCCP = 0x10d
+- SOL_DECNET = 0x105
+- SOL_ICMPV6 = 0x3a
+- SOL_IP = 0x0
+- SOL_IPV6 = 0x29
+- SOL_IRDA = 0x10a
+- SOL_IUCV = 0x115
+- SOL_KCM = 0x119
+- SOL_LLC = 0x10c
+- SOL_NETBEUI = 0x10b
+- SOL_NETLINK = 0x10e
+- SOL_NFC = 0x118
+- SOL_PACKET = 0x107
+- SOL_PNPIPE = 0x113
+- SOL_PPPOL2TP = 0x111
+- SOL_RAW = 0xff
+- SOL_RDS = 0x114
+- SOL_RXRPC = 0x110
+- SOL_SOCKET = 0x1
+- SOL_TCP = 0x6
+- SOL_TIPC = 0x10f
+- SOL_X25 = 0x106
+- SOMAXCONN = 0x80
+- SO_ACCEPTCONN = 0x1e
+- SO_ATTACH_BPF = 0x32
+- SO_ATTACH_FILTER = 0x1a
+- SO_ATTACH_REUSEPORT_CBPF = 0x33
+- SO_ATTACH_REUSEPORT_EBPF = 0x34
+- SO_BINDTODEVICE = 0x19
+- SO_BPF_EXTENSIONS = 0x30
+- SO_BROADCAST = 0x6
+- SO_BSDCOMPAT = 0xe
+- SO_BUSY_POLL = 0x2e
+- SO_CNX_ADVICE = 0x35
+- SO_DEBUG = 0x1
+- SO_DETACH_BPF = 0x1b
+- SO_DETACH_FILTER = 0x1b
+- SO_DOMAIN = 0x27
+- SO_DONTROUTE = 0x5
+- SO_ERROR = 0x4
+- SO_GET_FILTER = 0x1a
+- SO_INCOMING_CPU = 0x31
+- SO_KEEPALIVE = 0x9
+- SO_LINGER = 0xd
+- SO_LOCK_FILTER = 0x2c
+- SO_MARK = 0x24
+- SO_MAX_PACING_RATE = 0x2f
+- SO_NOFCS = 0x2b
+- SO_NO_CHECK = 0xb
+- SO_OOBINLINE = 0xa
+- SO_PASSCRED = 0x10
+- SO_PASSSEC = 0x22
+- SO_PEEK_OFF = 0x2a
+- SO_PEERCRED = 0x11
+- SO_PEERNAME = 0x1c
+- SO_PEERSEC = 0x1f
+- SO_PRIORITY = 0xc
+- SO_PROTOCOL = 0x26
+- SO_RCVBUF = 0x8
+- SO_RCVBUFFORCE = 0x21
+- SO_RCVLOWAT = 0x12
+- SO_RCVTIMEO = 0x14
+- SO_REUSEADDR = 0x2
+- SO_REUSEPORT = 0xf
+- SO_RXQ_OVFL = 0x28
+- SO_SECURITY_AUTHENTICATION = 0x16
+- SO_SECURITY_ENCRYPTION_NETWORK = 0x18
+- SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
+- SO_SELECT_ERR_QUEUE = 0x2d
+- SO_SNDBUF = 0x7
+- SO_SNDBUFFORCE = 0x20
+- SO_SNDLOWAT = 0x13
+- SO_SNDTIMEO = 0x15
+- SO_TIMESTAMP = 0x1d
+- SO_TIMESTAMPING = 0x25
+- SO_TIMESTAMPNS = 0x23
+- SO_TYPE = 0x3
+- SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
+- SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
+- SO_VM_SOCKETS_BUFFER_SIZE = 0x0
+- SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
+- SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
+- SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
+- SO_VM_SOCKETS_TRUSTED = 0x5
+- SO_WIFI_STATUS = 0x29
+- SPLICE_F_GIFT = 0x8
+- SPLICE_F_MORE = 0x4
+- SPLICE_F_MOVE = 0x1
+- SPLICE_F_NONBLOCK = 0x2
+- S_BLKSIZE = 0x200
+- S_IEXEC = 0x40
+- S_IFBLK = 0x6000
+- S_IFCHR = 0x2000
+- S_IFDIR = 0x4000
+- S_IFIFO = 0x1000
+- S_IFLNK = 0xa000
+- S_IFMT = 0xf000
+- S_IFREG = 0x8000
+- S_IFSOCK = 0xc000
+- S_IREAD = 0x100
+- S_IRGRP = 0x20
+- S_IROTH = 0x4
+- S_IRUSR = 0x100
+- S_IRWXG = 0x38
+- S_IRWXO = 0x7
+- S_IRWXU = 0x1c0
+- S_ISGID = 0x400
+- S_ISUID = 0x800
+- S_ISVTX = 0x200
+- S_IWGRP = 0x10
+- S_IWOTH = 0x2
+- S_IWRITE = 0x80
+- S_IWUSR = 0x80
+- S_IXGRP = 0x8
+- S_IXOTH = 0x1
+- S_IXUSR = 0x40
+- TAB0 = 0x0
+- TAB1 = 0x800
+- TAB2 = 0x1000
+- TAB3 = 0x1800
+- TABDLY = 0x1800
+- TASKSTATS_CMD_ATTR_MAX = 0x4
+- TASKSTATS_CMD_MAX = 0x2
+- TASKSTATS_GENL_NAME = "TASKSTATS"
+- TASKSTATS_GENL_VERSION = 0x1
+- TASKSTATS_TYPE_MAX = 0x6
+- TASKSTATS_VERSION = 0x8
+- TCFLSH = 0x540b
+- TCGETA = 0x5405
+- TCGETS = 0x5401
+- TCGETS2 = 0x802c542a
+- TCGETX = 0x5432
+- TCIFLUSH = 0x0
+- TCIOFF = 0x2
+- TCIOFLUSH = 0x2
+- TCION = 0x3
+- TCOFLUSH = 0x1
+- TCOOFF = 0x0
+- TCOON = 0x1
+- TCP_CC_INFO = 0x1a
+- TCP_CONGESTION = 0xd
+- TCP_COOKIE_IN_ALWAYS = 0x1
+- TCP_COOKIE_MAX = 0x10
+- TCP_COOKIE_MIN = 0x8
+- TCP_COOKIE_OUT_NEVER = 0x2
+- TCP_COOKIE_PAIR_SIZE = 0x20
+- TCP_COOKIE_TRANSACTIONS = 0xf
+- TCP_CORK = 0x3
+- TCP_DEFER_ACCEPT = 0x9
+- TCP_FASTOPEN = 0x17
+- TCP_INFO = 0xb
+- TCP_KEEPCNT = 0x6
+- TCP_KEEPIDLE = 0x4
+- TCP_KEEPINTVL = 0x5
+- TCP_LINGER2 = 0x8
+- TCP_MAXSEG = 0x2
+- TCP_MAXWIN = 0xffff
+- TCP_MAX_WINSHIFT = 0xe
+- TCP_MD5SIG = 0xe
+- TCP_MD5SIG_MAXKEYLEN = 0x50
+- TCP_MSS = 0x200
+- TCP_MSS_DEFAULT = 0x218
+- TCP_MSS_DESIRED = 0x4c4
+- TCP_NODELAY = 0x1
+- TCP_NOTSENT_LOWAT = 0x19
+- TCP_QUEUE_SEQ = 0x15
+- TCP_QUICKACK = 0xc
+- TCP_REPAIR = 0x13
+- TCP_REPAIR_OPTIONS = 0x16
+- TCP_REPAIR_QUEUE = 0x14
+- TCP_REPAIR_WINDOW = 0x1d
+- TCP_SAVED_SYN = 0x1c
+- TCP_SAVE_SYN = 0x1b
+- TCP_SYNCNT = 0x7
+- TCP_S_DATA_IN = 0x4
+- TCP_S_DATA_OUT = 0x8
+- TCP_THIN_DUPACK = 0x11
+- TCP_THIN_LINEAR_TIMEOUTS = 0x10
+- TCP_TIMESTAMP = 0x18
+- TCP_USER_TIMEOUT = 0x12
+- TCP_WINDOW_CLAMP = 0xa
+- TCSAFLUSH = 0x2
+- TCSBRK = 0x5409
+- TCSBRKP = 0x5425
+- TCSETA = 0x5406
+- TCSETAF = 0x5408
+- TCSETAW = 0x5407
+- TCSETS = 0x5402
+- TCSETS2 = 0x402c542b
+- TCSETSF = 0x5404
+- TCSETSF2 = 0x402c542d
+- TCSETSW = 0x5403
+- TCSETSW2 = 0x402c542c
+- TCSETX = 0x5433
+- TCSETXF = 0x5434
+- TCSETXW = 0x5435
+- TCXONC = 0x540a
+- TIOCCBRK = 0x5428
+- TIOCCONS = 0x541d
+- TIOCEXCL = 0x540c
+- TIOCGDEV = 0x80045432
+- TIOCGETD = 0x5424
+- TIOCGEXCL = 0x80045440
+- TIOCGICOUNT = 0x545d
+- TIOCGLCKTRMIOS = 0x5456
+- TIOCGPGRP = 0x540f
+- TIOCGPKT = 0x80045438
+- TIOCGPTLCK = 0x80045439
+- TIOCGPTN = 0x80045430
+- TIOCGRS485 = 0x542e
+- TIOCGSERIAL = 0x541e
+- TIOCGSID = 0x5429
+- TIOCGSOFTCAR = 0x5419
+- TIOCGWINSZ = 0x5413
+- TIOCINQ = 0x541b
+- TIOCLINUX = 0x541c
+- TIOCMBIC = 0x5417
+- TIOCMBIS = 0x5416
+- TIOCMGET = 0x5415
+- TIOCMIWAIT = 0x545c
+- TIOCMSET = 0x5418
+- TIOCM_CAR = 0x40
+- TIOCM_CD = 0x40
+- TIOCM_CTS = 0x20
+- TIOCM_DSR = 0x100
+- TIOCM_DTR = 0x2
+- TIOCM_LE = 0x1
+- TIOCM_RI = 0x80
+- TIOCM_RNG = 0x80
+- TIOCM_RTS = 0x4
+- TIOCM_SR = 0x10
+- TIOCM_ST = 0x8
+- TIOCNOTTY = 0x5422
+- TIOCNXCL = 0x540d
+- TIOCOUTQ = 0x5411
+- TIOCPKT = 0x5420
+- TIOCPKT_DATA = 0x0
+- TIOCPKT_DOSTOP = 0x20
+- TIOCPKT_FLUSHREAD = 0x1
+- TIOCPKT_FLUSHWRITE = 0x2
+- TIOCPKT_IOCTL = 0x40
+- TIOCPKT_NOSTOP = 0x10
+- TIOCPKT_START = 0x8
+- TIOCPKT_STOP = 0x4
+- TIOCSBRK = 0x5427
+- TIOCSCTTY = 0x540e
+- TIOCSERCONFIG = 0x5453
+- TIOCSERGETLSR = 0x5459
+- TIOCSERGETMULTI = 0x545a
+- TIOCSERGSTRUCT = 0x5458
+- TIOCSERGWILD = 0x5454
+- TIOCSERSETMULTI = 0x545b
+- TIOCSERSWILD = 0x5455
+- TIOCSER_TEMT = 0x1
+- TIOCSETD = 0x5423
+- TIOCSIG = 0x40045436
+- TIOCSLCKTRMIOS = 0x5457
+- TIOCSPGRP = 0x5410
+- TIOCSPTLCK = 0x40045431
+- TIOCSRS485 = 0x542f
+- TIOCSSERIAL = 0x541f
+- TIOCSSOFTCAR = 0x541a
+- TIOCSTI = 0x5412
+- TIOCSWINSZ = 0x5414
+- TIOCVHANGUP = 0x5437
+- TOSTOP = 0x100
+- TS_COMM_LEN = 0x20
+- TUNATTACHFILTER = 0x401054d5
+- TUNDETACHFILTER = 0x401054d6
+- TUNGETFEATURES = 0x800454cf
+- TUNGETFILTER = 0x801054db
+- TUNGETIFF = 0x800454d2
+- TUNGETSNDBUF = 0x800454d3
+- TUNGETVNETBE = 0x800454df
+- TUNGETVNETHDRSZ = 0x800454d7
+- TUNGETVNETLE = 0x800454dd
+- TUNSETDEBUG = 0x400454c9
+- TUNSETGROUP = 0x400454ce
+- TUNSETIFF = 0x400454ca
+- TUNSETIFINDEX = 0x400454da
+- TUNSETLINK = 0x400454cd
+- TUNSETNOCSUM = 0x400454c8
+- TUNSETOFFLOAD = 0x400454d0
+- TUNSETOWNER = 0x400454cc
+- TUNSETPERSIST = 0x400454cb
+- TUNSETQUEUE = 0x400454d9
+- TUNSETSNDBUF = 0x400454d4
+- TUNSETTXFILTER = 0x400454d1
+- TUNSETVNETBE = 0x400454de
+- TUNSETVNETHDRSZ = 0x400454d8
+- TUNSETVNETLE = 0x400454dc
+- UMOUNT_NOFOLLOW = 0x8
+- VDISCARD = 0xd
+- VEOF = 0x4
+- VEOL = 0xb
+- VEOL2 = 0x10
+- VERASE = 0x2
+- VINTR = 0x0
+- VKILL = 0x3
+- VLNEXT = 0xf
+- VMADDR_CID_ANY = 0xffffffff
+- VMADDR_CID_HOST = 0x2
+- VMADDR_CID_HYPERVISOR = 0x0
+- VMADDR_CID_RESERVED = 0x1
+- VMADDR_PORT_ANY = 0xffffffff
+- VMIN = 0x6
+- VM_SOCKETS_INVALID_VERSION = 0xffffffff
+- VQUIT = 0x1
+- VREPRINT = 0xc
+- VSTART = 0x8
+- VSTOP = 0x9
+- VSUSP = 0xa
+- VSWTC = 0x7
+- VT0 = 0x0
+- VT1 = 0x4000
+- VTDLY = 0x4000
+- VTIME = 0x5
+- VWERASE = 0xe
+- WALL = 0x40000000
+- WCLONE = 0x80000000
+- WCONTINUED = 0x8
+- WEXITED = 0x4
+- WNOHANG = 0x1
+- WNOTHREAD = 0x20000000
+- WNOWAIT = 0x1000000
+- WORDSIZE = 0x40
+- WSTOPPED = 0x2
+- WUNTRACED = 0x2
+- XATTR_CREATE = 0x1
+- XATTR_REPLACE = 0x2
+- XCASE = 0x4
+- XTABS = 0x1800
++ B1000000 = 0x1008
++ B115200 = 0x1002
++ B1152000 = 0x1009
++ B1500000 = 0x100a
++ B2000000 = 0x100b
++ B230400 = 0x1003
++ B2500000 = 0x100c
++ B3000000 = 0x100d
++ B3500000 = 0x100e
++ B4000000 = 0x100f
++ B460800 = 0x1004
++ B500000 = 0x1005
++ B57600 = 0x1001
++ B576000 = 0x1006
++ B921600 = 0x1007
++ BLKBSZGET = 0x80081270
++ BLKBSZSET = 0x40081271
++ BLKFLSBUF = 0x1261
++ BLKFRAGET = 0x1265
++ BLKFRASET = 0x1264
++ BLKGETSIZE = 0x1260
++ BLKGETSIZE64 = 0x80081272
++ BLKPBSZGET = 0x127b
++ BLKRAGET = 0x1263
++ BLKRASET = 0x1262
++ BLKROGET = 0x125e
++ BLKROSET = 0x125d
++ BLKRRPART = 0x125f
++ BLKSECTGET = 0x1267
++ BLKSECTSET = 0x1266
++ BLKSSZGET = 0x1268
++ BOTHER = 0x1000
++ BS1 = 0x2000
++ BSDLY = 0x2000
++ CBAUD = 0x100f
++ CBAUDEX = 0x1000
++ CIBAUD = 0x100f0000
++ CLOCAL = 0x800
++ CR1 = 0x200
++ CR2 = 0x400
++ CR3 = 0x600
++ CRDLY = 0x600
++ CREAD = 0x80
++ CS6 = 0x10
++ CS7 = 0x20
++ CS8 = 0x30
++ CSIZE = 0x30
++ CSTOPB = 0x40
++ ECHOCTL = 0x200
++ ECHOE = 0x10
++ ECHOK = 0x20
++ ECHOKE = 0x800
++ ECHONL = 0x40
++ ECHOPRT = 0x400
++ EFD_CLOEXEC = 0x80000
++ EFD_NONBLOCK = 0x800
++ EPOLL_CLOEXEC = 0x80000
++ EXTPROC = 0x10000
++ FF1 = 0x8000
++ FFDLY = 0x8000
++ FLUSHO = 0x1000
++ FP_XSTATE_MAGIC2 = 0x46505845
++ FS_IOC_ENABLE_VERITY = 0x40806685
++ FS_IOC_GETFLAGS = 0x80086601
++ FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615
++ FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614
++ FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613
++ F_GETLK = 0x5
++ F_GETLK64 = 0x5
++ F_GETOWN = 0x9
++ F_RDLCK = 0x0
++ F_SETLK = 0x6
++ F_SETLK64 = 0x6
++ F_SETLKW = 0x7
++ F_SETLKW64 = 0x7
++ F_SETOWN = 0x8
++ F_UNLCK = 0x2
++ F_WRLCK = 0x1
++ HUPCL = 0x400
++ ICANON = 0x2
++ IEXTEN = 0x8000
++ IN_CLOEXEC = 0x80000
++ IN_NONBLOCK = 0x800
++ IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9
++ ISIG = 0x1
++ IUCLC = 0x200
++ IXOFF = 0x1000
++ IXON = 0x400
++ MAP_32BIT = 0x40
++ MAP_ANON = 0x20
++ MAP_ANONYMOUS = 0x20
++ MAP_DENYWRITE = 0x800
++ MAP_EXECUTABLE = 0x1000
++ MAP_GROWSDOWN = 0x100
++ MAP_HUGETLB = 0x40000
++ MAP_LOCKED = 0x2000
++ MAP_NONBLOCK = 0x10000
++ MAP_NORESERVE = 0x4000
++ MAP_POPULATE = 0x8000
++ MAP_STACK = 0x20000
++ MAP_SYNC = 0x80000
++ MCL_CURRENT = 0x1
++ MCL_FUTURE = 0x2
++ MCL_ONFAULT = 0x4
++ NFDBITS = 0x40
++ NLDLY = 0x100
++ NOFLSH = 0x80
++ NS_GET_NSTYPE = 0xb703
++ NS_GET_OWNER_UID = 0xb704
++ NS_GET_PARENT = 0xb702
++ NS_GET_USERNS = 0xb701
++ OLCUC = 0x2
++ ONLCR = 0x4
++ O_APPEND = 0x400
++ O_ASYNC = 0x2000
++ O_CLOEXEC = 0x80000
++ O_CREAT = 0x40
++ O_DIRECT = 0x4000
++ O_DIRECTORY = 0x10000
++ O_DSYNC = 0x1000
++ O_EXCL = 0x80
++ O_FSYNC = 0x101000
++ O_LARGEFILE = 0x0
++ O_NDELAY = 0x800
++ O_NOATIME = 0x40000
++ O_NOCTTY = 0x100
++ O_NOFOLLOW = 0x20000
++ O_NONBLOCK = 0x800
++ O_PATH = 0x200000
++ O_RSYNC = 0x101000
++ O_SYNC = 0x101000
++ O_TMPFILE = 0x410000
++ O_TRUNC = 0x200
++ PARENB = 0x100
++ PARODD = 0x200
++ PENDIN = 0x4000
++ PERF_EVENT_IOC_DISABLE = 0x2401
++ PERF_EVENT_IOC_ENABLE = 0x2400
++ PERF_EVENT_IOC_ID = 0x80082407
++ PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b
++ PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409
++ PERF_EVENT_IOC_PERIOD = 0x40082404
++ PERF_EVENT_IOC_QUERY_BPF = 0xc008240a
++ PERF_EVENT_IOC_REFRESH = 0x2402
++ PERF_EVENT_IOC_RESET = 0x2403
++ PERF_EVENT_IOC_SET_BPF = 0x40042408
++ PERF_EVENT_IOC_SET_FILTER = 0x40082406
++ PERF_EVENT_IOC_SET_OUTPUT = 0x2405
++ PPPIOCATTACH = 0x4004743d
++ PPPIOCATTCHAN = 0x40047438
++ PPPIOCCONNECT = 0x4004743a
++ PPPIOCDETACH = 0x4004743c
++ PPPIOCDISCONN = 0x7439
++ PPPIOCGASYNCMAP = 0x80047458
++ PPPIOCGCHAN = 0x80047437
++ PPPIOCGDEBUG = 0x80047441
++ PPPIOCGFLAGS = 0x8004745a
++ PPPIOCGIDLE = 0x8010743f
++ PPPIOCGIDLE32 = 0x8008743f
++ PPPIOCGIDLE64 = 0x8010743f
++ PPPIOCGL2TPSTATS = 0x80487436
++ PPPIOCGMRU = 0x80047453
++ PPPIOCGRASYNCMAP = 0x80047455
++ PPPIOCGUNIT = 0x80047456
++ PPPIOCGXASYNCMAP = 0x80207450
++ PPPIOCSACTIVE = 0x40107446
++ PPPIOCSASYNCMAP = 0x40047457
++ PPPIOCSCOMPRESS = 0x4010744d
++ PPPIOCSDEBUG = 0x40047440
++ PPPIOCSFLAGS = 0x40047459
++ PPPIOCSMAXCID = 0x40047451
++ PPPIOCSMRRU = 0x4004743b
++ PPPIOCSMRU = 0x40047452
++ PPPIOCSNPMODE = 0x4008744b
++ PPPIOCSPASS = 0x40107447
++ PPPIOCSRASYNCMAP = 0x40047454
++ PPPIOCSXASYNCMAP = 0x4020744f
++ PPPIOCXFERUNIT = 0x744e
++ PR_SET_PTRACER_ANY = 0xffffffffffffffff
++ PTRACE_ARCH_PRCTL = 0x1e
++ PTRACE_GETFPREGS = 0xe
++ PTRACE_GETFPXREGS = 0x12
++ PTRACE_GET_THREAD_AREA = 0x19
++ PTRACE_OLDSETOPTIONS = 0x15
++ PTRACE_SETFPREGS = 0xf
++ PTRACE_SETFPXREGS = 0x13
++ PTRACE_SET_THREAD_AREA = 0x1a
++ PTRACE_SINGLEBLOCK = 0x21
++ PTRACE_SYSEMU = 0x1f
++ PTRACE_SYSEMU_SINGLESTEP = 0x20
++ RLIMIT_AS = 0x9
++ RLIMIT_MEMLOCK = 0x8
++ RLIMIT_NOFILE = 0x7
++ RLIMIT_NPROC = 0x6
++ RLIMIT_RSS = 0x5
++ RNDADDENTROPY = 0x40085203
++ RNDADDTOENTCNT = 0x40045201
++ RNDCLEARPOOL = 0x5206
++ RNDGETENTCNT = 0x80045200
++ RNDGETPOOL = 0x80085202
++ RNDRESEEDCRNG = 0x5207
++ RNDZAPENTCNT = 0x5204
++ RTC_AIE_OFF = 0x7002
++ RTC_AIE_ON = 0x7001
++ RTC_ALM_READ = 0x80247008
++ RTC_ALM_SET = 0x40247007
++ RTC_EPOCH_READ = 0x8008700d
++ RTC_EPOCH_SET = 0x4008700e
++ RTC_IRQP_READ = 0x8008700b
++ RTC_IRQP_SET = 0x4008700c
++ RTC_PIE_OFF = 0x7006
++ RTC_PIE_ON = 0x7005
++ RTC_PLL_GET = 0x80207011
++ RTC_PLL_SET = 0x40207012
++ RTC_RD_TIME = 0x80247009
++ RTC_SET_TIME = 0x4024700a
++ RTC_UIE_OFF = 0x7004
++ RTC_UIE_ON = 0x7003
++ RTC_VL_CLR = 0x7014
++ RTC_VL_READ = 0x80047013
++ RTC_WIE_OFF = 0x7010
++ RTC_WIE_ON = 0x700f
++ RTC_WKALM_RD = 0x80287010
++ RTC_WKALM_SET = 0x4028700f
++ SCM_TIMESTAMPING = 0x25
++ SCM_TIMESTAMPING_OPT_STATS = 0x36
++ SCM_TIMESTAMPING_PKTINFO = 0x3a
++ SCM_TIMESTAMPNS = 0x23
++ SCM_TXTIME = 0x3d
++ SCM_WIFI_STATUS = 0x29
++ SFD_CLOEXEC = 0x80000
++ SFD_NONBLOCK = 0x800
++ SIOCATMARK = 0x8905
++ SIOCGPGRP = 0x8904
++ SIOCGSTAMPNS_NEW = 0x80108907
++ SIOCGSTAMP_NEW = 0x80108906
++ SIOCINQ = 0x541b
++ SIOCOUTQ = 0x5411
++ SIOCSPGRP = 0x8902
++ SOCK_CLOEXEC = 0x80000
++ SOCK_DGRAM = 0x2
++ SOCK_NONBLOCK = 0x800
++ SOCK_STREAM = 0x1
++ SOL_SOCKET = 0x1
++ SO_ACCEPTCONN = 0x1e
++ SO_ATTACH_BPF = 0x32
++ SO_ATTACH_REUSEPORT_CBPF = 0x33
++ SO_ATTACH_REUSEPORT_EBPF = 0x34
++ SO_BINDTODEVICE = 0x19
++ SO_BINDTOIFINDEX = 0x3e
++ SO_BPF_EXTENSIONS = 0x30
++ SO_BROADCAST = 0x6
++ SO_BSDCOMPAT = 0xe
++ SO_BUSY_POLL = 0x2e
++ SO_CNX_ADVICE = 0x35
++ SO_COOKIE = 0x39
++ SO_DETACH_REUSEPORT_BPF = 0x44
++ SO_DOMAIN = 0x27
++ SO_DONTROUTE = 0x5
++ SO_ERROR = 0x4
++ SO_INCOMING_CPU = 0x31
++ SO_INCOMING_NAPI_ID = 0x38
++ SO_KEEPALIVE = 0x9
++ SO_LINGER = 0xd
++ SO_LOCK_FILTER = 0x2c
++ SO_MARK = 0x24
++ SO_MAX_PACING_RATE = 0x2f
++ SO_MEMINFO = 0x37
++ SO_NOFCS = 0x2b
++ SO_OOBINLINE = 0xa
++ SO_PASSCRED = 0x10
++ SO_PASSSEC = 0x22
++ SO_PEEK_OFF = 0x2a
++ SO_PEERCRED = 0x11
++ SO_PEERGROUPS = 0x3b
++ SO_PEERSEC = 0x1f
++ SO_PROTOCOL = 0x26
++ SO_RCVBUF = 0x8
++ SO_RCVBUFFORCE = 0x21
++ SO_RCVLOWAT = 0x12
++ SO_RCVTIMEO = 0x14
++ SO_RCVTIMEO_NEW = 0x42
++ SO_RCVTIMEO_OLD = 0x14
++ SO_REUSEADDR = 0x2
++ SO_REUSEPORT = 0xf
++ SO_RXQ_OVFL = 0x28
++ SO_SECURITY_AUTHENTICATION = 0x16
++ SO_SECURITY_ENCRYPTION_NETWORK = 0x18
++ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
++ SO_SELECT_ERR_QUEUE = 0x2d
++ SO_SNDBUF = 0x7
++ SO_SNDBUFFORCE = 0x20
++ SO_SNDLOWAT = 0x13
++ SO_SNDTIMEO = 0x15
++ SO_SNDTIMEO_NEW = 0x43
++ SO_SNDTIMEO_OLD = 0x15
++ SO_TIMESTAMPING = 0x25
++ SO_TIMESTAMPING_NEW = 0x41
++ SO_TIMESTAMPING_OLD = 0x25
++ SO_TIMESTAMPNS = 0x23
++ SO_TIMESTAMPNS_NEW = 0x40
++ SO_TIMESTAMPNS_OLD = 0x23
++ SO_TIMESTAMP_NEW = 0x3f
++ SO_TXTIME = 0x3d
++ SO_TYPE = 0x3
++ SO_WIFI_STATUS = 0x29
++ SO_ZEROCOPY = 0x3c
++ TAB1 = 0x800
++ TAB2 = 0x1000
++ TAB3 = 0x1800
++ TABDLY = 0x1800
++ TCFLSH = 0x540b
++ TCGETA = 0x5405
++ TCGETS = 0x5401
++ TCGETS2 = 0x802c542a
++ TCGETX = 0x5432
++ TCSAFLUSH = 0x2
++ TCSBRK = 0x5409
++ TCSBRKP = 0x5425
++ TCSETA = 0x5406
++ TCSETAF = 0x5408
++ TCSETAW = 0x5407
++ TCSETS = 0x5402
++ TCSETS2 = 0x402c542b
++ TCSETSF = 0x5404
++ TCSETSF2 = 0x402c542d
++ TCSETSW = 0x5403
++ TCSETSW2 = 0x402c542c
++ TCSETX = 0x5433
++ TCSETXF = 0x5434
++ TCSETXW = 0x5435
++ TCXONC = 0x540a
++ TIOCCBRK = 0x5428
++ TIOCCONS = 0x541d
++ TIOCEXCL = 0x540c
++ TIOCGDEV = 0x80045432
++ TIOCGETD = 0x5424
++ TIOCGEXCL = 0x80045440
++ TIOCGICOUNT = 0x545d
++ TIOCGISO7816 = 0x80285442
++ TIOCGLCKTRMIOS = 0x5456
++ TIOCGPGRP = 0x540f
++ TIOCGPKT = 0x80045438
++ TIOCGPTLCK = 0x80045439
++ TIOCGPTN = 0x80045430
++ TIOCGPTPEER = 0x5441
++ TIOCGRS485 = 0x542e
++ TIOCGSERIAL = 0x541e
++ TIOCGSID = 0x5429
++ TIOCGSOFTCAR = 0x5419
++ TIOCGWINSZ = 0x5413
++ TIOCINQ = 0x541b
++ TIOCLINUX = 0x541c
++ TIOCMBIC = 0x5417
++ TIOCMBIS = 0x5416
++ TIOCMGET = 0x5415
++ TIOCMIWAIT = 0x545c
++ TIOCMSET = 0x5418
++ TIOCM_CAR = 0x40
++ TIOCM_CD = 0x40
++ TIOCM_CTS = 0x20
++ TIOCM_DSR = 0x100
++ TIOCM_RI = 0x80
++ TIOCM_RNG = 0x80
++ TIOCM_SR = 0x10
++ TIOCM_ST = 0x8
++ TIOCNOTTY = 0x5422
++ TIOCNXCL = 0x540d
++ TIOCOUTQ = 0x5411
++ TIOCPKT = 0x5420
++ TIOCSBRK = 0x5427
++ TIOCSCTTY = 0x540e
++ TIOCSERCONFIG = 0x5453
++ TIOCSERGETLSR = 0x5459
++ TIOCSERGETMULTI = 0x545a
++ TIOCSERGSTRUCT = 0x5458
++ TIOCSERGWILD = 0x5454
++ TIOCSERSETMULTI = 0x545b
++ TIOCSERSWILD = 0x5455
++ TIOCSER_TEMT = 0x1
++ TIOCSETD = 0x5423
++ TIOCSIG = 0x40045436
++ TIOCSISO7816 = 0xc0285443
++ TIOCSLCKTRMIOS = 0x5457
++ TIOCSPGRP = 0x5410
++ TIOCSPTLCK = 0x40045431
++ TIOCSRS485 = 0x542f
++ TIOCSSERIAL = 0x541f
++ TIOCSSOFTCAR = 0x541a
++ TIOCSTI = 0x5412
++ TIOCSWINSZ = 0x5414
++ TIOCVHANGUP = 0x5437
++ TOSTOP = 0x100
++ TUNATTACHFILTER = 0x401054d5
++ TUNDETACHFILTER = 0x401054d6
++ TUNGETDEVNETNS = 0x54e3
++ TUNGETFEATURES = 0x800454cf
++ TUNGETFILTER = 0x801054db
++ TUNGETIFF = 0x800454d2
++ TUNGETSNDBUF = 0x800454d3
++ TUNGETVNETBE = 0x800454df
++ TUNGETVNETHDRSZ = 0x800454d7
++ TUNGETVNETLE = 0x800454dd
++ TUNSETCARRIER = 0x400454e2
++ TUNSETDEBUG = 0x400454c9
++ TUNSETFILTEREBPF = 0x800454e1
++ TUNSETGROUP = 0x400454ce
++ TUNSETIFF = 0x400454ca
++ TUNSETIFINDEX = 0x400454da
++ TUNSETLINK = 0x400454cd
++ TUNSETNOCSUM = 0x400454c8
++ TUNSETOFFLOAD = 0x400454d0
++ TUNSETOWNER = 0x400454cc
++ TUNSETPERSIST = 0x400454cb
++ TUNSETQUEUE = 0x400454d9
++ TUNSETSNDBUF = 0x400454d4
++ TUNSETSTEERINGEBPF = 0x800454e0
++ TUNSETTXFILTER = 0x400454d1
++ TUNSETVNETBE = 0x400454de
++ TUNSETVNETHDRSZ = 0x400454d8
++ TUNSETVNETLE = 0x400454dc
++ UBI_IOCATT = 0x40186f40
++ UBI_IOCDET = 0x40046f41
++ UBI_IOCEBCH = 0x40044f02
++ UBI_IOCEBER = 0x40044f01
++ UBI_IOCEBISMAP = 0x80044f05
++ UBI_IOCEBMAP = 0x40084f03
++ UBI_IOCEBUNMAP = 0x40044f04
++ UBI_IOCMKVOL = 0x40986f00
++ UBI_IOCRMVOL = 0x40046f01
++ UBI_IOCRNVOL = 0x51106f03
++ UBI_IOCRPEB = 0x40046f04
++ UBI_IOCRSVOL = 0x400c6f02
++ UBI_IOCSETVOLPROP = 0x40104f06
++ UBI_IOCSPEB = 0x40046f05
++ UBI_IOCVOLCRBLK = 0x40804f07
++ UBI_IOCVOLRMBLK = 0x4f08
++ UBI_IOCVOLUP = 0x40084f00
++ VDISCARD = 0xd
++ VEOF = 0x4
++ VEOL = 0xb
++ VEOL2 = 0x10
++ VMIN = 0x6
++ VREPRINT = 0xc
++ VSTART = 0x8
++ VSTOP = 0x9
++ VSUSP = 0xa
++ VSWTC = 0x7
++ VT1 = 0x4000
++ VTDLY = 0x4000
++ VTIME = 0x5
++ VWERASE = 0xe
++ WDIOC_GETBOOTSTATUS = 0x80045702
++ WDIOC_GETPRETIMEOUT = 0x80045709
++ WDIOC_GETSTATUS = 0x80045701
++ WDIOC_GETSUPPORT = 0x80285700
++ WDIOC_GETTEMP = 0x80045703
++ WDIOC_GETTIMELEFT = 0x8004570a
++ WDIOC_GETTIMEOUT = 0x80045707
++ WDIOC_KEEPALIVE = 0x80045705
++ WDIOC_SETOPTIONS = 0x80045704
++ WORDSIZE = 0x40
++ XCASE = 0x4
++ XTABS = 0x1800
+ )
+
+ // Errors
+ const (
+- E2BIG = syscall.Errno(0x7)
+- EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x62)
+ EADDRNOTAVAIL = syscall.Errno(0x63)
+ EADV = syscall.Errno(0x44)
+ EAFNOSUPPORT = syscall.Errno(0x61)
+- EAGAIN = syscall.Errno(0xb)
+ EALREADY = syscall.Errno(0x72)
+ EBADE = syscall.Errno(0x34)
+- EBADF = syscall.Errno(0x9)
+ EBADFD = syscall.Errno(0x4d)
+ EBADMSG = syscall.Errno(0x4a)
+ EBADR = syscall.Errno(0x35)
+ EBADRQC = syscall.Errno(0x38)
+ EBADSLT = syscall.Errno(0x39)
+ EBFONT = syscall.Errno(0x3b)
+- EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x7d)
+- ECHILD = syscall.Errno(0xa)
+ ECHRNG = syscall.Errno(0x2c)
+ ECOMM = syscall.Errno(0x46)
+ ECONNABORTED = syscall.Errno(0x67)
+@@ -1882,23 +500,15 @@ const (
+ EDEADLK = syscall.Errno(0x23)
+ EDEADLOCK = syscall.Errno(0x23)
+ EDESTADDRREQ = syscall.Errno(0x59)
+- EDOM = syscall.Errno(0x21)
+ EDOTDOT = syscall.Errno(0x49)
+ EDQUOT = syscall.Errno(0x7a)
+- EEXIST = syscall.Errno(0x11)
+- EFAULT = syscall.Errno(0xe)
+- EFBIG = syscall.Errno(0x1b)
+ EHOSTDOWN = syscall.Errno(0x70)
+ EHOSTUNREACH = syscall.Errno(0x71)
+ EHWPOISON = syscall.Errno(0x85)
+ EIDRM = syscall.Errno(0x2b)
+ EILSEQ = syscall.Errno(0x54)
+ EINPROGRESS = syscall.Errno(0x73)
+- EINTR = syscall.Errno(0x4)
+- EINVAL = syscall.Errno(0x16)
+- EIO = syscall.Errno(0x5)
+ EISCONN = syscall.Errno(0x6a)
+- EISDIR = syscall.Errno(0x15)
+ EISNAM = syscall.Errno(0x78)
+ EKEYEXPIRED = syscall.Errno(0x7f)
+ EKEYREJECTED = syscall.Errno(0x81)
+@@ -1915,8 +525,6 @@ const (
+ ELNRNG = syscall.Errno(0x30)
+ ELOOP = syscall.Errno(0x28)
+ EMEDIUMTYPE = syscall.Errno(0x7c)
+- EMFILE = syscall.Errno(0x18)
+- EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x5a)
+ EMULTIHOP = syscall.Errno(0x48)
+ ENAMETOOLONG = syscall.Errno(0x24)
+@@ -1924,103 +532,70 @@ const (
+ ENETDOWN = syscall.Errno(0x64)
+ ENETRESET = syscall.Errno(0x66)
+ ENETUNREACH = syscall.Errno(0x65)
+- ENFILE = syscall.Errno(0x17)
+ ENOANO = syscall.Errno(0x37)
+ ENOBUFS = syscall.Errno(0x69)
+ ENOCSI = syscall.Errno(0x32)
+ ENODATA = syscall.Errno(0x3d)
+- ENODEV = syscall.Errno(0x13)
+- ENOENT = syscall.Errno(0x2)
+- ENOEXEC = syscall.Errno(0x8)
+ ENOKEY = syscall.Errno(0x7e)
+ ENOLCK = syscall.Errno(0x25)
+ ENOLINK = syscall.Errno(0x43)
+ ENOMEDIUM = syscall.Errno(0x7b)
+- ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x2a)
+ ENONET = syscall.Errno(0x40)
+ ENOPKG = syscall.Errno(0x41)
+ ENOPROTOOPT = syscall.Errno(0x5c)
+- ENOSPC = syscall.Errno(0x1c)
+ ENOSR = syscall.Errno(0x3f)
+ ENOSTR = syscall.Errno(0x3c)
+ ENOSYS = syscall.Errno(0x26)
+- ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x6b)
+- ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x27)
+ ENOTNAM = syscall.Errno(0x76)
+ ENOTRECOVERABLE = syscall.Errno(0x83)
+ ENOTSOCK = syscall.Errno(0x58)
+ ENOTSUP = syscall.Errno(0x5f)
+- ENOTTY = syscall.Errno(0x19)
+ ENOTUNIQ = syscall.Errno(0x4c)
+- ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x5f)
+ EOVERFLOW = syscall.Errno(0x4b)
+ EOWNERDEAD = syscall.Errno(0x82)
+- EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x60)
+- EPIPE = syscall.Errno(0x20)
+ EPROTO = syscall.Errno(0x47)
+ EPROTONOSUPPORT = syscall.Errno(0x5d)
+ EPROTOTYPE = syscall.Errno(0x5b)
+- ERANGE = syscall.Errno(0x22)
+ EREMCHG = syscall.Errno(0x4e)
+ EREMOTE = syscall.Errno(0x42)
+ EREMOTEIO = syscall.Errno(0x79)
+ ERESTART = syscall.Errno(0x55)
+ ERFKILL = syscall.Errno(0x84)
+- EROFS = syscall.Errno(0x1e)
+ ESHUTDOWN = syscall.Errno(0x6c)
+ ESOCKTNOSUPPORT = syscall.Errno(0x5e)
+- ESPIPE = syscall.Errno(0x1d)
+- ESRCH = syscall.Errno(0x3)
+ ESRMNT = syscall.Errno(0x45)
+ ESTALE = syscall.Errno(0x74)
+ ESTRPIPE = syscall.Errno(0x56)
+ ETIME = syscall.Errno(0x3e)
+ ETIMEDOUT = syscall.Errno(0x6e)
+ ETOOMANYREFS = syscall.Errno(0x6d)
+- ETXTBSY = syscall.Errno(0x1a)
+ EUCLEAN = syscall.Errno(0x75)
+ EUNATCH = syscall.Errno(0x31)
+ EUSERS = syscall.Errno(0x57)
+- EWOULDBLOCK = syscall.Errno(0xb)
+- EXDEV = syscall.Errno(0x12)
+ EXFULL = syscall.Errno(0x36)
+ )
+
+ // Signals
+ const (
+- SIGABRT = syscall.Signal(0x6)
+- SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0x7)
+ SIGCHLD = syscall.Signal(0x11)
+ SIGCLD = syscall.Signal(0x11)
+ SIGCONT = syscall.Signal(0x12)
+- SIGFPE = syscall.Signal(0x8)
+- SIGHUP = syscall.Signal(0x1)
+- SIGILL = syscall.Signal(0x4)
+- SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x1d)
+- SIGIOT = syscall.Signal(0x6)
+- SIGKILL = syscall.Signal(0x9)
+- SIGPIPE = syscall.Signal(0xd)
+ SIGPOLL = syscall.Signal(0x1d)
+ SIGPROF = syscall.Signal(0x1b)
+ SIGPWR = syscall.Signal(0x1e)
+- SIGQUIT = syscall.Signal(0x3)
+- SIGSEGV = syscall.Signal(0xb)
+ SIGSTKFLT = syscall.Signal(0x10)
+ SIGSTOP = syscall.Signal(0x13)
+ SIGSYS = syscall.Signal(0x1f)
+- SIGTERM = syscall.Signal(0xf)
+- SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x14)
+ SIGTTIN = syscall.Signal(0x15)
+ SIGTTOU = syscall.Signal(0x16)
+- SIGUNUSED = syscall.Signal(0x1f)
+ SIGURG = syscall.Signal(0x17)
+ SIGUSR1 = syscall.Signal(0xa)
+ SIGUSR2 = syscall.Signal(0xc)
+@@ -2031,171 +606,179 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "no such device or address",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource temporarily unavailable",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "device or resource busy",
+- 17: "file exists",
+- 18: "invalid cross-device link",
+- 19: "no such device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "numerical result out of range",
+- 35: "resource deadlock avoided",
+- 36: "file name too long",
+- 37: "no locks available",
+- 38: "function not implemented",
+- 39: "directory not empty",
+- 40: "too many levels of symbolic links",
+- 42: "no message of desired type",
+- 43: "identifier removed",
+- 44: "channel number out of range",
+- 45: "level 2 not synchronized",
+- 46: "level 3 halted",
+- 47: "level 3 reset",
+- 48: "link number out of range",
+- 49: "protocol driver not attached",
+- 50: "no CSI structure available",
+- 51: "level 2 halted",
+- 52: "invalid exchange",
+- 53: "invalid request descriptor",
+- 54: "exchange full",
+- 55: "no anode",
+- 56: "invalid request code",
+- 57: "invalid slot",
+- 59: "bad font file format",
+- 60: "device not a stream",
+- 61: "no data available",
+- 62: "timer expired",
+- 63: "out of streams resources",
+- 64: "machine is not on the network",
+- 65: "package not installed",
+- 66: "object is remote",
+- 67: "link has been severed",
+- 68: "advertise error",
+- 69: "srmount error",
+- 70: "communication error on send",
+- 71: "protocol error",
+- 72: "multihop attempted",
+- 73: "RFS specific error",
+- 74: "bad message",
+- 75: "value too large for defined data type",
+- 76: "name not unique on network",
+- 77: "file descriptor in bad state",
+- 78: "remote address changed",
+- 79: "can not access a needed shared library",
+- 80: "accessing a corrupted shared library",
+- 81: ".lib section in a.out corrupted",
+- 82: "attempting to link in too many shared libraries",
+- 83: "cannot exec a shared library directly",
+- 84: "invalid or incomplete multibyte or wide character",
+- 85: "interrupted system call should be restarted",
+- 86: "streams pipe error",
+- 87: "too many users",
+- 88: "socket operation on non-socket",
+- 89: "destination address required",
+- 90: "message too long",
+- 91: "protocol wrong type for socket",
+- 92: "protocol not available",
+- 93: "protocol not supported",
+- 94: "socket type not supported",
+- 95: "operation not supported",
+- 96: "protocol family not supported",
+- 97: "address family not supported by protocol",
+- 98: "address already in use",
+- 99: "cannot assign requested address",
+- 100: "network is down",
+- 101: "network is unreachable",
+- 102: "network dropped connection on reset",
+- 103: "software caused connection abort",
+- 104: "connection reset by peer",
+- 105: "no buffer space available",
+- 106: "transport endpoint is already connected",
+- 107: "transport endpoint is not connected",
+- 108: "cannot send after transport endpoint shutdown",
+- 109: "too many references: cannot splice",
+- 110: "connection timed out",
+- 111: "connection refused",
+- 112: "host is down",
+- 113: "no route to host",
+- 114: "operation already in progress",
+- 115: "operation now in progress",
+- 116: "stale file handle",
+- 117: "structure needs cleaning",
+- 118: "not a XENIX named type file",
+- 119: "no XENIX semaphores available",
+- 120: "is a named type file",
+- 121: "remote I/O error",
+- 122: "disk quota exceeded",
+- 123: "no medium found",
+- 124: "wrong medium type",
+- 125: "operation canceled",
+- 126: "required key not available",
+- 127: "key has expired",
+- 128: "key has been revoked",
+- 129: "key was rejected by service",
+- 130: "owner died",
+- 131: "state not recoverable",
+- 132: "operation not possible due to RF-kill",
+- 133: "memory page has hardware error",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "no such device or address"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EAGAIN", "resource temporarily unavailable"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device or resource busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "invalid cross-device link"},
++ {19, "ENODEV", "no such device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "numerical result out of range"},
++ {35, "EDEADLK", "resource deadlock avoided"},
++ {36, "ENAMETOOLONG", "file name too long"},
++ {37, "ENOLCK", "no locks available"},
++ {38, "ENOSYS", "function not implemented"},
++ {39, "ENOTEMPTY", "directory not empty"},
++ {40, "ELOOP", "too many levels of symbolic links"},
++ {42, "ENOMSG", "no message of desired type"},
++ {43, "EIDRM", "identifier removed"},
++ {44, "ECHRNG", "channel number out of range"},
++ {45, "EL2NSYNC", "level 2 not synchronized"},
++ {46, "EL3HLT", "level 3 halted"},
++ {47, "EL3RST", "level 3 reset"},
++ {48, "ELNRNG", "link number out of range"},
++ {49, "EUNATCH", "protocol driver not attached"},
++ {50, "ENOCSI", "no CSI structure available"},
++ {51, "EL2HLT", "level 2 halted"},
++ {52, "EBADE", "invalid exchange"},
++ {53, "EBADR", "invalid request descriptor"},
++ {54, "EXFULL", "exchange full"},
++ {55, "ENOANO", "no anode"},
++ {56, "EBADRQC", "invalid request code"},
++ {57, "EBADSLT", "invalid slot"},
++ {59, "EBFONT", "bad font file format"},
++ {60, "ENOSTR", "device not a stream"},
++ {61, "ENODATA", "no data available"},
++ {62, "ETIME", "timer expired"},
++ {63, "ENOSR", "out of streams resources"},
++ {64, "ENONET", "machine is not on the network"},
++ {65, "ENOPKG", "package not installed"},
++ {66, "EREMOTE", "object is remote"},
++ {67, "ENOLINK", "link has been severed"},
++ {68, "EADV", "advertise error"},
++ {69, "ESRMNT", "srmount error"},
++ {70, "ECOMM", "communication error on send"},
++ {71, "EPROTO", "protocol error"},
++ {72, "EMULTIHOP", "multihop attempted"},
++ {73, "EDOTDOT", "RFS specific error"},
++ {74, "EBADMSG", "bad message"},
++ {75, "EOVERFLOW", "value too large for defined data type"},
++ {76, "ENOTUNIQ", "name not unique on network"},
++ {77, "EBADFD", "file descriptor in bad state"},
++ {78, "EREMCHG", "remote address changed"},
++ {79, "ELIBACC", "can not access a needed shared library"},
++ {80, "ELIBBAD", "accessing a corrupted shared library"},
++ {81, "ELIBSCN", ".lib section in a.out corrupted"},
++ {82, "ELIBMAX", "attempting to link in too many shared libraries"},
++ {83, "ELIBEXEC", "cannot exec a shared library directly"},
++ {84, "EILSEQ", "invalid or incomplete multibyte or wide character"},
++ {85, "ERESTART", "interrupted system call should be restarted"},
++ {86, "ESTRPIPE", "streams pipe error"},
++ {87, "EUSERS", "too many users"},
++ {88, "ENOTSOCK", "socket operation on non-socket"},
++ {89, "EDESTADDRREQ", "destination address required"},
++ {90, "EMSGSIZE", "message too long"},
++ {91, "EPROTOTYPE", "protocol wrong type for socket"},
++ {92, "ENOPROTOOPT", "protocol not available"},
++ {93, "EPROTONOSUPPORT", "protocol not supported"},
++ {94, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {95, "ENOTSUP", "operation not supported"},
++ {96, "EPFNOSUPPORT", "protocol family not supported"},
++ {97, "EAFNOSUPPORT", "address family not supported by protocol"},
++ {98, "EADDRINUSE", "address already in use"},
++ {99, "EADDRNOTAVAIL", "cannot assign requested address"},
++ {100, "ENETDOWN", "network is down"},
++ {101, "ENETUNREACH", "network is unreachable"},
++ {102, "ENETRESET", "network dropped connection on reset"},
++ {103, "ECONNABORTED", "software caused connection abort"},
++ {104, "ECONNRESET", "connection reset by peer"},
++ {105, "ENOBUFS", "no buffer space available"},
++ {106, "EISCONN", "transport endpoint is already connected"},
++ {107, "ENOTCONN", "transport endpoint is not connected"},
++ {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"},
++ {109, "ETOOMANYREFS", "too many references: cannot splice"},
++ {110, "ETIMEDOUT", "connection timed out"},
++ {111, "ECONNREFUSED", "connection refused"},
++ {112, "EHOSTDOWN", "host is down"},
++ {113, "EHOSTUNREACH", "no route to host"},
++ {114, "EALREADY", "operation already in progress"},
++ {115, "EINPROGRESS", "operation now in progress"},
++ {116, "ESTALE", "stale file handle"},
++ {117, "EUCLEAN", "structure needs cleaning"},
++ {118, "ENOTNAM", "not a XENIX named type file"},
++ {119, "ENAVAIL", "no XENIX semaphores available"},
++ {120, "EISNAM", "is a named type file"},
++ {121, "EREMOTEIO", "remote I/O error"},
++ {122, "EDQUOT", "disk quota exceeded"},
++ {123, "ENOMEDIUM", "no medium found"},
++ {124, "EMEDIUMTYPE", "wrong medium type"},
++ {125, "ECANCELED", "operation canceled"},
++ {126, "ENOKEY", "required key not available"},
++ {127, "EKEYEXPIRED", "key has expired"},
++ {128, "EKEYREVOKED", "key has been revoked"},
++ {129, "EKEYREJECTED", "key was rejected by service"},
++ {130, "EOWNERDEAD", "owner died"},
++ {131, "ENOTRECOVERABLE", "state not recoverable"},
++ {132, "ERFKILL", "operation not possible due to RF-kill"},
++ {133, "EHWPOISON", "memory page has hardware error"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/breakpoint trap",
+- 6: "aborted",
+- 7: "bus error",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "user defined signal 1",
+- 11: "segmentation fault",
+- 12: "user defined signal 2",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "stack fault",
+- 17: "child exited",
+- 18: "continued",
+- 19: "stopped (signal)",
+- 20: "stopped",
+- 21: "stopped (tty input)",
+- 22: "stopped (tty output)",
+- 23: "urgent I/O condition",
+- 24: "CPU time limit exceeded",
+- 25: "file size limit exceeded",
+- 26: "virtual timer expired",
+- 27: "profiling timer expired",
+- 28: "window changed",
+- 29: "I/O possible",
+- 30: "power failure",
+- 31: "bad system call",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/breakpoint trap"},
++ {6, "SIGABRT", "aborted"},
++ {7, "SIGBUS", "bus error"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGUSR1", "user defined signal 1"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGUSR2", "user defined signal 2"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGSTKFLT", "stack fault"},
++ {17, "SIGCHLD", "child exited"},
++ {18, "SIGCONT", "continued"},
++ {19, "SIGSTOP", "stopped (signal)"},
++ {20, "SIGTSTP", "stopped"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGURG", "urgent I/O condition"},
++ {24, "SIGXCPU", "CPU time limit exceeded"},
++ {25, "SIGXFSZ", "file size limit exceeded"},
++ {26, "SIGVTALRM", "virtual timer expired"},
++ {27, "SIGPROF", "profiling timer expired"},
++ {28, "SIGWINCH", "window changed"},
++ {29, "SIGIO", "I/O possible"},
++ {30, "SIGPWR", "power failure"},
++ {31, "SIGSYS", "bad system call"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
+index 1adff0b2..0541f36e 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
+@@ -3,7 +3,7 @@
+
+ // +build arm,linux
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
+
+ package unix
+@@ -11,1873 +11,493 @@ package unix
+ import "syscall"
+
+ const (
+- AF_ALG = 0x26
+- AF_APPLETALK = 0x5
+- AF_ASH = 0x12
+- AF_ATMPVC = 0x8
+- AF_ATMSVC = 0x14
+- AF_AX25 = 0x3
+- AF_BLUETOOTH = 0x1f
+- AF_BRIDGE = 0x7
+- AF_CAIF = 0x25
+- AF_CAN = 0x1d
+- AF_DECnet = 0xc
+- AF_ECONET = 0x13
+- AF_FILE = 0x1
+- AF_IB = 0x1b
+- AF_IEEE802154 = 0x24
+- AF_INET = 0x2
+- AF_INET6 = 0xa
+- AF_IPX = 0x4
+- AF_IRDA = 0x17
+- AF_ISDN = 0x22
+- AF_IUCV = 0x20
+- AF_KCM = 0x29
+- AF_KEY = 0xf
+- AF_LLC = 0x1a
+- AF_LOCAL = 0x1
+- AF_MAX = 0x2b
+- AF_MPLS = 0x1c
+- AF_NETBEUI = 0xd
+- AF_NETLINK = 0x10
+- AF_NETROM = 0x6
+- AF_NFC = 0x27
+- AF_PACKET = 0x11
+- AF_PHONET = 0x23
+- AF_PPPOX = 0x18
+- AF_QIPCRTR = 0x2a
+- AF_RDS = 0x15
+- AF_ROSE = 0xb
+- AF_ROUTE = 0x10
+- AF_RXRPC = 0x21
+- AF_SECURITY = 0xe
+- AF_SNA = 0x16
+- AF_TIPC = 0x1e
+- AF_UNIX = 0x1
+- AF_UNSPEC = 0x0
+- AF_VSOCK = 0x28
+- AF_WANPIPE = 0x19
+- AF_X25 = 0x9
+- ALG_OP_DECRYPT = 0x0
+- ALG_OP_ENCRYPT = 0x1
+- ALG_SET_AEAD_ASSOCLEN = 0x4
+- ALG_SET_AEAD_AUTHSIZE = 0x5
+- ALG_SET_IV = 0x2
+- ALG_SET_KEY = 0x1
+- ALG_SET_OP = 0x3
+- ARPHRD_6LOWPAN = 0x339
+- ARPHRD_ADAPT = 0x108
+- ARPHRD_APPLETLK = 0x8
+- ARPHRD_ARCNET = 0x7
+- ARPHRD_ASH = 0x30d
+- ARPHRD_ATM = 0x13
+- ARPHRD_AX25 = 0x3
+- ARPHRD_BIF = 0x307
+- ARPHRD_CAIF = 0x336
+- ARPHRD_CAN = 0x118
+- ARPHRD_CHAOS = 0x5
+- ARPHRD_CISCO = 0x201
+- ARPHRD_CSLIP = 0x101
+- ARPHRD_CSLIP6 = 0x103
+- ARPHRD_DDCMP = 0x205
+- ARPHRD_DLCI = 0xf
+- ARPHRD_ECONET = 0x30e
+- ARPHRD_EETHER = 0x2
+- ARPHRD_ETHER = 0x1
+- ARPHRD_EUI64 = 0x1b
+- ARPHRD_FCAL = 0x311
+- ARPHRD_FCFABRIC = 0x313
+- ARPHRD_FCPL = 0x312
+- ARPHRD_FCPP = 0x310
+- ARPHRD_FDDI = 0x306
+- ARPHRD_FRAD = 0x302
+- ARPHRD_HDLC = 0x201
+- ARPHRD_HIPPI = 0x30c
+- ARPHRD_HWX25 = 0x110
+- ARPHRD_IEEE1394 = 0x18
+- ARPHRD_IEEE802 = 0x6
+- ARPHRD_IEEE80211 = 0x321
+- ARPHRD_IEEE80211_PRISM = 0x322
+- ARPHRD_IEEE80211_RADIOTAP = 0x323
+- ARPHRD_IEEE802154 = 0x324
+- ARPHRD_IEEE802154_MONITOR = 0x325
+- ARPHRD_IEEE802_TR = 0x320
+- ARPHRD_INFINIBAND = 0x20
+- ARPHRD_IP6GRE = 0x337
+- ARPHRD_IPDDP = 0x309
+- ARPHRD_IPGRE = 0x30a
+- ARPHRD_IRDA = 0x30f
+- ARPHRD_LAPB = 0x204
+- ARPHRD_LOCALTLK = 0x305
+- ARPHRD_LOOPBACK = 0x304
+- ARPHRD_METRICOM = 0x17
+- ARPHRD_NETLINK = 0x338
+- ARPHRD_NETROM = 0x0
+- ARPHRD_NONE = 0xfffe
+- ARPHRD_PHONET = 0x334
+- ARPHRD_PHONET_PIPE = 0x335
+- ARPHRD_PIMREG = 0x30b
+- ARPHRD_PPP = 0x200
+- ARPHRD_PRONET = 0x4
+- ARPHRD_RAWHDLC = 0x206
+- ARPHRD_ROSE = 0x10e
+- ARPHRD_RSRVD = 0x104
+- ARPHRD_SIT = 0x308
+- ARPHRD_SKIP = 0x303
+- ARPHRD_SLIP = 0x100
+- ARPHRD_SLIP6 = 0x102
+- ARPHRD_TUNNEL = 0x300
+- ARPHRD_TUNNEL6 = 0x301
+- ARPHRD_VOID = 0xffff
+- ARPHRD_X25 = 0x10f
+- B0 = 0x0
+- B1000000 = 0x1008
+- B110 = 0x3
+- B115200 = 0x1002
+- B1152000 = 0x1009
+- B1200 = 0x9
+- B134 = 0x4
+- B150 = 0x5
+- B1500000 = 0x100a
+- B1800 = 0xa
+- B19200 = 0xe
+- B200 = 0x6
+- B2000000 = 0x100b
+- B230400 = 0x1003
+- B2400 = 0xb
+- B2500000 = 0x100c
+- B300 = 0x7
+- B3000000 = 0x100d
+- B3500000 = 0x100e
+- B38400 = 0xf
+- B4000000 = 0x100f
+- B460800 = 0x1004
+- B4800 = 0xc
+- B50 = 0x1
+- B500000 = 0x1005
+- B57600 = 0x1001
+- B576000 = 0x1006
+- B600 = 0x8
+- B75 = 0x2
+- B921600 = 0x1007
+- B9600 = 0xd
+- BLKBSZGET = 0x80041270
+- BLKBSZSET = 0x40041271
+- BLKFLSBUF = 0x1261
+- BLKFRAGET = 0x1265
+- BLKFRASET = 0x1264
+- BLKGETSIZE = 0x1260
+- BLKGETSIZE64 = 0x80041272
+- BLKPBSZGET = 0x127b
+- BLKRAGET = 0x1263
+- BLKRASET = 0x1262
+- BLKROGET = 0x125e
+- BLKROSET = 0x125d
+- BLKRRPART = 0x125f
+- BLKSECTGET = 0x1267
+- BLKSECTSET = 0x1266
+- BLKSSZGET = 0x1268
+- BOTHER = 0x1000
+- BPF_A = 0x10
+- BPF_ABS = 0x20
+- BPF_ADD = 0x0
+- BPF_ALU = 0x4
+- BPF_AND = 0x50
+- BPF_B = 0x10
+- BPF_DIV = 0x30
+- BPF_H = 0x8
+- BPF_IMM = 0x0
+- BPF_IND = 0x40
+- BPF_JA = 0x0
+- BPF_JEQ = 0x10
+- BPF_JGE = 0x30
+- BPF_JGT = 0x20
+- BPF_JMP = 0x5
+- BPF_JSET = 0x40
+- BPF_K = 0x0
+- BPF_LD = 0x0
+- BPF_LDX = 0x1
+- BPF_LEN = 0x80
+- BPF_LL_OFF = -0x200000
+- BPF_LSH = 0x60
+- BPF_MAJOR_VERSION = 0x1
+- BPF_MAXINSNS = 0x1000
+- BPF_MEM = 0x60
+- BPF_MEMWORDS = 0x10
+- BPF_MINOR_VERSION = 0x1
+- BPF_MISC = 0x7
+- BPF_MOD = 0x90
+- BPF_MSH = 0xa0
+- BPF_MUL = 0x20
+- BPF_NEG = 0x80
+- BPF_NET_OFF = -0x100000
+- BPF_OR = 0x40
+- BPF_RET = 0x6
+- BPF_RSH = 0x70
+- BPF_ST = 0x2
+- BPF_STX = 0x3
+- BPF_SUB = 0x10
+- BPF_TAX = 0x0
+- BPF_TXA = 0x80
+- BPF_W = 0x0
+- BPF_X = 0x8
+- BPF_XOR = 0xa0
+- BRKINT = 0x2
+- BS0 = 0x0
+- BS1 = 0x2000
+- BSDLY = 0x2000
+- CAN_BCM = 0x2
+- CAN_EFF_FLAG = 0x80000000
+- CAN_EFF_ID_BITS = 0x1d
+- CAN_EFF_MASK = 0x1fffffff
+- CAN_ERR_FLAG = 0x20000000
+- CAN_ERR_MASK = 0x1fffffff
+- CAN_INV_FILTER = 0x20000000
+- CAN_ISOTP = 0x6
+- CAN_MAX_DLC = 0x8
+- CAN_MAX_DLEN = 0x8
+- CAN_MCNET = 0x5
+- CAN_MTU = 0x10
+- CAN_NPROTO = 0x7
+- CAN_RAW = 0x1
+- CAN_RAW_FILTER_MAX = 0x200
+- CAN_RTR_FLAG = 0x40000000
+- CAN_SFF_ID_BITS = 0xb
+- CAN_SFF_MASK = 0x7ff
+- CAN_TP16 = 0x3
+- CAN_TP20 = 0x4
+- CBAUD = 0x100f
+- CBAUDEX = 0x1000
+- CFLUSH = 0xf
+- CIBAUD = 0x100f0000
+- CLOCAL = 0x800
+- CLOCK_BOOTTIME = 0x7
+- CLOCK_BOOTTIME_ALARM = 0x9
+- CLOCK_DEFAULT = 0x0
+- CLOCK_EXT = 0x1
+- CLOCK_INT = 0x2
+- CLOCK_MONOTONIC = 0x1
+- CLOCK_MONOTONIC_COARSE = 0x6
+- CLOCK_MONOTONIC_RAW = 0x4
+- CLOCK_PROCESS_CPUTIME_ID = 0x2
+- CLOCK_REALTIME = 0x0
+- CLOCK_REALTIME_ALARM = 0x8
+- CLOCK_REALTIME_COARSE = 0x5
+- CLOCK_TAI = 0xb
+- CLOCK_THREAD_CPUTIME_ID = 0x3
+- CLOCK_TXFROMRX = 0x4
+- CLOCK_TXINT = 0x3
+- CLONE_CHILD_CLEARTID = 0x200000
+- CLONE_CHILD_SETTID = 0x1000000
+- CLONE_DETACHED = 0x400000
+- CLONE_FILES = 0x400
+- CLONE_FS = 0x200
+- CLONE_IO = 0x80000000
+- CLONE_NEWCGROUP = 0x2000000
+- CLONE_NEWIPC = 0x8000000
+- CLONE_NEWNET = 0x40000000
+- CLONE_NEWNS = 0x20000
+- CLONE_NEWPID = 0x20000000
+- CLONE_NEWUSER = 0x10000000
+- CLONE_NEWUTS = 0x4000000
+- CLONE_PARENT = 0x8000
+- CLONE_PARENT_SETTID = 0x100000
+- CLONE_PTRACE = 0x2000
+- CLONE_SETTLS = 0x80000
+- CLONE_SIGHAND = 0x800
+- CLONE_SYSVSEM = 0x40000
+- CLONE_THREAD = 0x10000
+- CLONE_UNTRACED = 0x800000
+- CLONE_VFORK = 0x4000
+- CLONE_VM = 0x100
+- CMSPAR = 0x40000000
+- CR0 = 0x0
+- CR1 = 0x200
+- CR2 = 0x400
+- CR3 = 0x600
+- CRDLY = 0x600
+- CREAD = 0x80
+- CRTSCTS = 0x80000000
+- CS5 = 0x0
+- CS6 = 0x10
+- CS7 = 0x20
+- CS8 = 0x30
+- CSIGNAL = 0xff
+- CSIZE = 0x30
+- CSTART = 0x11
+- CSTATUS = 0x0
+- CSTOP = 0x13
+- CSTOPB = 0x40
+- CSUSP = 0x1a
+- DT_BLK = 0x6
+- DT_CHR = 0x2
+- DT_DIR = 0x4
+- DT_FIFO = 0x1
+- DT_LNK = 0xa
+- DT_REG = 0x8
+- DT_SOCK = 0xc
+- DT_UNKNOWN = 0x0
+- DT_WHT = 0xe
+- ECHO = 0x8
+- ECHOCTL = 0x200
+- ECHOE = 0x10
+- ECHOK = 0x20
+- ECHOKE = 0x800
+- ECHONL = 0x40
+- ECHOPRT = 0x400
+- EFD_CLOEXEC = 0x80000
+- EFD_NONBLOCK = 0x800
+- EFD_SEMAPHORE = 0x1
+- ENCODING_DEFAULT = 0x0
+- ENCODING_FM_MARK = 0x3
+- ENCODING_FM_SPACE = 0x4
+- ENCODING_MANCHESTER = 0x5
+- ENCODING_NRZ = 0x1
+- ENCODING_NRZI = 0x2
+- EPOLLERR = 0x8
+- EPOLLET = 0x80000000
+- EPOLLEXCLUSIVE = 0x10000000
+- EPOLLHUP = 0x10
+- EPOLLIN = 0x1
+- EPOLLMSG = 0x400
+- EPOLLONESHOT = 0x40000000
+- EPOLLOUT = 0x4
+- EPOLLPRI = 0x2
+- EPOLLRDBAND = 0x80
+- EPOLLRDHUP = 0x2000
+- EPOLLRDNORM = 0x40
+- EPOLLWAKEUP = 0x20000000
+- EPOLLWRBAND = 0x200
+- EPOLLWRNORM = 0x100
+- EPOLL_CLOEXEC = 0x80000
+- EPOLL_CTL_ADD = 0x1
+- EPOLL_CTL_DEL = 0x2
+- EPOLL_CTL_MOD = 0x3
+- ETH_P_1588 = 0x88f7
+- ETH_P_8021AD = 0x88a8
+- ETH_P_8021AH = 0x88e7
+- ETH_P_8021Q = 0x8100
+- ETH_P_80221 = 0x8917
+- ETH_P_802_2 = 0x4
+- ETH_P_802_3 = 0x1
+- ETH_P_802_3_MIN = 0x600
+- ETH_P_802_EX1 = 0x88b5
+- ETH_P_AARP = 0x80f3
+- ETH_P_AF_IUCV = 0xfbfb
+- ETH_P_ALL = 0x3
+- ETH_P_AOE = 0x88a2
+- ETH_P_ARCNET = 0x1a
+- ETH_P_ARP = 0x806
+- ETH_P_ATALK = 0x809b
+- ETH_P_ATMFATE = 0x8884
+- ETH_P_ATMMPOA = 0x884c
+- ETH_P_AX25 = 0x2
+- ETH_P_BATMAN = 0x4305
+- ETH_P_BPQ = 0x8ff
+- ETH_P_CAIF = 0xf7
+- ETH_P_CAN = 0xc
+- ETH_P_CANFD = 0xd
+- ETH_P_CONTROL = 0x16
+- ETH_P_CUST = 0x6006
+- ETH_P_DDCMP = 0x6
+- ETH_P_DEC = 0x6000
+- ETH_P_DIAG = 0x6005
+- ETH_P_DNA_DL = 0x6001
+- ETH_P_DNA_RC = 0x6002
+- ETH_P_DNA_RT = 0x6003
+- ETH_P_DSA = 0x1b
+- ETH_P_ECONET = 0x18
+- ETH_P_EDSA = 0xdada
+- ETH_P_FCOE = 0x8906
+- ETH_P_FIP = 0x8914
+- ETH_P_HDLC = 0x19
+- ETH_P_HSR = 0x892f
+- ETH_P_IEEE802154 = 0xf6
+- ETH_P_IEEEPUP = 0xa00
+- ETH_P_IEEEPUPAT = 0xa01
+- ETH_P_IP = 0x800
+- ETH_P_IPV6 = 0x86dd
+- ETH_P_IPX = 0x8137
+- ETH_P_IRDA = 0x17
+- ETH_P_LAT = 0x6004
+- ETH_P_LINK_CTL = 0x886c
+- ETH_P_LOCALTALK = 0x9
+- ETH_P_LOOP = 0x60
+- ETH_P_LOOPBACK = 0x9000
+- ETH_P_MACSEC = 0x88e5
+- ETH_P_MOBITEX = 0x15
+- ETH_P_MPLS_MC = 0x8848
+- ETH_P_MPLS_UC = 0x8847
+- ETH_P_MVRP = 0x88f5
+- ETH_P_NCSI = 0x88f8
+- ETH_P_PAE = 0x888e
+- ETH_P_PAUSE = 0x8808
+- ETH_P_PHONET = 0xf5
+- ETH_P_PPPTALK = 0x10
+- ETH_P_PPP_DISC = 0x8863
+- ETH_P_PPP_MP = 0x8
+- ETH_P_PPP_SES = 0x8864
+- ETH_P_PRP = 0x88fb
+- ETH_P_PUP = 0x200
+- ETH_P_PUPAT = 0x201
+- ETH_P_QINQ1 = 0x9100
+- ETH_P_QINQ2 = 0x9200
+- ETH_P_QINQ3 = 0x9300
+- ETH_P_RARP = 0x8035
+- ETH_P_SCA = 0x6007
+- ETH_P_SLOW = 0x8809
+- ETH_P_SNAP = 0x5
+- ETH_P_TDLS = 0x890d
+- ETH_P_TEB = 0x6558
+- ETH_P_TIPC = 0x88ca
+- ETH_P_TRAILER = 0x1c
+- ETH_P_TR_802_2 = 0x11
+- ETH_P_TSN = 0x22f0
+- ETH_P_WAN_PPP = 0x7
+- ETH_P_WCCP = 0x883e
+- ETH_P_X25 = 0x805
+- ETH_P_XDSA = 0xf8
+- EXTA = 0xe
+- EXTB = 0xf
+- EXTPROC = 0x10000
+- FALLOC_FL_COLLAPSE_RANGE = 0x8
+- FALLOC_FL_INSERT_RANGE = 0x20
+- FALLOC_FL_KEEP_SIZE = 0x1
+- FALLOC_FL_NO_HIDE_STALE = 0x4
+- FALLOC_FL_PUNCH_HOLE = 0x2
+- FALLOC_FL_UNSHARE_RANGE = 0x40
+- FALLOC_FL_ZERO_RANGE = 0x10
+- FD_CLOEXEC = 0x1
+- FD_SETSIZE = 0x400
+- FF0 = 0x0
+- FF1 = 0x8000
+- FFDLY = 0x8000
+- FLUSHO = 0x1000
+- FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
+- FS_ENCRYPTION_MODE_AES_256_CTS = 0x4
+- FS_ENCRYPTION_MODE_AES_256_GCM = 0x2
+- FS_ENCRYPTION_MODE_AES_256_XTS = 0x1
+- FS_ENCRYPTION_MODE_INVALID = 0x0
+- FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615
+- FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614
+- FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613
+- FS_KEY_DESCRIPTOR_SIZE = 0x8
+- FS_KEY_DESC_PREFIX = "fscrypt:"
+- FS_KEY_DESC_PREFIX_SIZE = 0x8
+- FS_MAX_KEY_SIZE = 0x40
+- FS_POLICY_FLAGS_PAD_16 = 0x2
+- FS_POLICY_FLAGS_PAD_32 = 0x3
+- FS_POLICY_FLAGS_PAD_4 = 0x0
+- FS_POLICY_FLAGS_PAD_8 = 0x1
+- FS_POLICY_FLAGS_PAD_MASK = 0x3
+- FS_POLICY_FLAGS_VALID = 0x3
+- F_DUPFD = 0x0
+- F_DUPFD_CLOEXEC = 0x406
+- F_EXLCK = 0x4
+- F_GETFD = 0x1
+- F_GETFL = 0x3
+- F_GETLEASE = 0x401
+- F_GETLK = 0xc
+- F_GETLK64 = 0xc
+- F_GETOWN = 0x9
+- F_GETOWN_EX = 0x10
+- F_GETPIPE_SZ = 0x408
+- F_GETSIG = 0xb
+- F_LOCK = 0x1
+- F_NOTIFY = 0x402
+- F_OFD_GETLK = 0x24
+- F_OFD_SETLK = 0x25
+- F_OFD_SETLKW = 0x26
+- F_OK = 0x0
+- F_RDLCK = 0x0
+- F_SETFD = 0x2
+- F_SETFL = 0x4
+- F_SETLEASE = 0x400
+- F_SETLK = 0xd
+- F_SETLK64 = 0xd
+- F_SETLKW = 0xe
+- F_SETLKW64 = 0xe
+- F_SETOWN = 0x8
+- F_SETOWN_EX = 0xf
+- F_SETPIPE_SZ = 0x407
+- F_SETSIG = 0xa
+- F_SHLCK = 0x8
+- F_TEST = 0x3
+- F_TLOCK = 0x2
+- F_ULOCK = 0x0
+- F_UNLCK = 0x2
+- F_WRLCK = 0x1
+- GENL_ADMIN_PERM = 0x1
+- GENL_CMD_CAP_DO = 0x2
+- GENL_CMD_CAP_DUMP = 0x4
+- GENL_CMD_CAP_HASPOL = 0x8
+- GENL_HDRLEN = 0x4
+- GENL_ID_CTRL = 0x10
+- GENL_ID_PMCRAID = 0x12
+- GENL_ID_VFS_DQUOT = 0x11
+- GENL_MAX_ID = 0x3ff
+- GENL_MIN_ID = 0x10
+- GENL_NAMSIZ = 0x10
+- GENL_START_ALLOC = 0x13
+- GENL_UNS_ADMIN_PERM = 0x10
+- GRND_NONBLOCK = 0x1
+- GRND_RANDOM = 0x2
+- HUPCL = 0x400
+- IBSHIFT = 0x10
+- ICANON = 0x2
+- ICMPV6_FILTER = 0x1
+- ICRNL = 0x100
+- IEXTEN = 0x8000
+- IFA_F_DADFAILED = 0x8
+- IFA_F_DEPRECATED = 0x20
+- IFA_F_HOMEADDRESS = 0x10
+- IFA_F_MANAGETEMPADDR = 0x100
+- IFA_F_MCAUTOJOIN = 0x400
+- IFA_F_NODAD = 0x2
+- IFA_F_NOPREFIXROUTE = 0x200
+- IFA_F_OPTIMISTIC = 0x4
+- IFA_F_PERMANENT = 0x80
+- IFA_F_SECONDARY = 0x1
+- IFA_F_STABLE_PRIVACY = 0x800
+- IFA_F_TEMPORARY = 0x1
+- IFA_F_TENTATIVE = 0x40
+- IFA_MAX = 0x8
+- IFF_ALLMULTI = 0x200
+- IFF_ATTACH_QUEUE = 0x200
+- IFF_AUTOMEDIA = 0x4000
+- IFF_BROADCAST = 0x2
+- IFF_DEBUG = 0x4
+- IFF_DETACH_QUEUE = 0x400
+- IFF_DORMANT = 0x20000
+- IFF_DYNAMIC = 0x8000
+- IFF_ECHO = 0x40000
+- IFF_LOOPBACK = 0x8
+- IFF_LOWER_UP = 0x10000
+- IFF_MASTER = 0x400
+- IFF_MULTICAST = 0x1000
+- IFF_MULTI_QUEUE = 0x100
+- IFF_NOARP = 0x80
+- IFF_NOFILTER = 0x1000
+- IFF_NOTRAILERS = 0x20
+- IFF_NO_PI = 0x1000
+- IFF_ONE_QUEUE = 0x2000
+- IFF_PERSIST = 0x800
+- IFF_POINTOPOINT = 0x10
+- IFF_PORTSEL = 0x2000
+- IFF_PROMISC = 0x100
+- IFF_RUNNING = 0x40
+- IFF_SLAVE = 0x800
+- IFF_TAP = 0x2
+- IFF_TUN = 0x1
+- IFF_TUN_EXCL = 0x8000
+- IFF_UP = 0x1
+- IFF_VNET_HDR = 0x4000
+- IFF_VOLATILE = 0x70c5a
+- IFNAMSIZ = 0x10
+- IGNBRK = 0x1
+- IGNCR = 0x80
+- IGNPAR = 0x4
+- IMAXBEL = 0x2000
+- INLCR = 0x40
+- INPCK = 0x10
+- IN_ACCESS = 0x1
+- IN_ALL_EVENTS = 0xfff
+- IN_ATTRIB = 0x4
+- IN_CLASSA_HOST = 0xffffff
+- IN_CLASSA_MAX = 0x80
+- IN_CLASSA_NET = 0xff000000
+- IN_CLASSA_NSHIFT = 0x18
+- IN_CLASSB_HOST = 0xffff
+- IN_CLASSB_MAX = 0x10000
+- IN_CLASSB_NET = 0xffff0000
+- IN_CLASSB_NSHIFT = 0x10
+- IN_CLASSC_HOST = 0xff
+- IN_CLASSC_NET = 0xffffff00
+- IN_CLASSC_NSHIFT = 0x8
+- IN_CLOEXEC = 0x80000
+- IN_CLOSE = 0x18
+- IN_CLOSE_NOWRITE = 0x10
+- IN_CLOSE_WRITE = 0x8
+- IN_CREATE = 0x100
+- IN_DELETE = 0x200
+- IN_DELETE_SELF = 0x400
+- IN_DONT_FOLLOW = 0x2000000
+- IN_EXCL_UNLINK = 0x4000000
+- IN_IGNORED = 0x8000
+- IN_ISDIR = 0x40000000
+- IN_LOOPBACKNET = 0x7f
+- IN_MASK_ADD = 0x20000000
+- IN_MODIFY = 0x2
+- IN_MOVE = 0xc0
+- IN_MOVED_FROM = 0x40
+- IN_MOVED_TO = 0x80
+- IN_MOVE_SELF = 0x800
+- IN_NONBLOCK = 0x800
+- IN_ONESHOT = 0x80000000
+- IN_ONLYDIR = 0x1000000
+- IN_OPEN = 0x20
+- IN_Q_OVERFLOW = 0x4000
+- IN_UNMOUNT = 0x2000
+- IPPROTO_AH = 0x33
+- IPPROTO_BEETPH = 0x5e
+- IPPROTO_COMP = 0x6c
+- IPPROTO_DCCP = 0x21
+- IPPROTO_DSTOPTS = 0x3c
+- IPPROTO_EGP = 0x8
+- IPPROTO_ENCAP = 0x62
+- IPPROTO_ESP = 0x32
+- IPPROTO_FRAGMENT = 0x2c
+- IPPROTO_GRE = 0x2f
+- IPPROTO_HOPOPTS = 0x0
+- IPPROTO_ICMP = 0x1
+- IPPROTO_ICMPV6 = 0x3a
+- IPPROTO_IDP = 0x16
+- IPPROTO_IGMP = 0x2
+- IPPROTO_IP = 0x0
+- IPPROTO_IPIP = 0x4
+- IPPROTO_IPV6 = 0x29
+- IPPROTO_MH = 0x87
+- IPPROTO_MPLS = 0x89
+- IPPROTO_MTP = 0x5c
+- IPPROTO_NONE = 0x3b
+- IPPROTO_PIM = 0x67
+- IPPROTO_PUP = 0xc
+- IPPROTO_RAW = 0xff
+- IPPROTO_ROUTING = 0x2b
+- IPPROTO_RSVP = 0x2e
+- IPPROTO_SCTP = 0x84
+- IPPROTO_TCP = 0x6
+- IPPROTO_TP = 0x1d
+- IPPROTO_UDP = 0x11
+- IPPROTO_UDPLITE = 0x88
+- IPV6_2292DSTOPTS = 0x4
+- IPV6_2292HOPLIMIT = 0x8
+- IPV6_2292HOPOPTS = 0x3
+- IPV6_2292PKTINFO = 0x2
+- IPV6_2292PKTOPTIONS = 0x6
+- IPV6_2292RTHDR = 0x5
+- IPV6_ADDRFORM = 0x1
+- IPV6_ADD_MEMBERSHIP = 0x14
+- IPV6_AUTHHDR = 0xa
+- IPV6_CHECKSUM = 0x7
+- IPV6_DONTFRAG = 0x3e
+- IPV6_DROP_MEMBERSHIP = 0x15
+- IPV6_DSTOPTS = 0x3b
+- IPV6_HDRINCL = 0x24
+- IPV6_HOPLIMIT = 0x34
+- IPV6_HOPOPTS = 0x36
+- IPV6_IPSEC_POLICY = 0x22
+- IPV6_JOIN_ANYCAST = 0x1b
+- IPV6_JOIN_GROUP = 0x14
+- IPV6_LEAVE_ANYCAST = 0x1c
+- IPV6_LEAVE_GROUP = 0x15
+- IPV6_MTU = 0x18
+- IPV6_MTU_DISCOVER = 0x17
+- IPV6_MULTICAST_HOPS = 0x12
+- IPV6_MULTICAST_IF = 0x11
+- IPV6_MULTICAST_LOOP = 0x13
+- IPV6_NEXTHOP = 0x9
+- IPV6_PATHMTU = 0x3d
+- IPV6_PKTINFO = 0x32
+- IPV6_PMTUDISC_DO = 0x2
+- IPV6_PMTUDISC_DONT = 0x0
+- IPV6_PMTUDISC_INTERFACE = 0x4
+- IPV6_PMTUDISC_OMIT = 0x5
+- IPV6_PMTUDISC_PROBE = 0x3
+- IPV6_PMTUDISC_WANT = 0x1
+- IPV6_RECVDSTOPTS = 0x3a
+- IPV6_RECVERR = 0x19
+- IPV6_RECVHOPLIMIT = 0x33
+- IPV6_RECVHOPOPTS = 0x35
+- IPV6_RECVPATHMTU = 0x3c
+- IPV6_RECVPKTINFO = 0x31
+- IPV6_RECVRTHDR = 0x38
+- IPV6_RECVTCLASS = 0x42
+- IPV6_ROUTER_ALERT = 0x16
+- IPV6_RTHDR = 0x39
+- IPV6_RTHDRDSTOPTS = 0x37
+- IPV6_RTHDR_LOOSE = 0x0
+- IPV6_RTHDR_STRICT = 0x1
+- IPV6_RTHDR_TYPE_0 = 0x0
+- IPV6_RXDSTOPTS = 0x3b
+- IPV6_RXHOPOPTS = 0x36
+- IPV6_TCLASS = 0x43
+- IPV6_UNICAST_HOPS = 0x10
+- IPV6_V6ONLY = 0x1a
+- IPV6_XFRM_POLICY = 0x23
+- IP_ADD_MEMBERSHIP = 0x23
+- IP_ADD_SOURCE_MEMBERSHIP = 0x27
+- IP_BIND_ADDRESS_NO_PORT = 0x18
+- IP_BLOCK_SOURCE = 0x26
+- IP_CHECKSUM = 0x17
+- IP_DEFAULT_MULTICAST_LOOP = 0x1
+- IP_DEFAULT_MULTICAST_TTL = 0x1
+- IP_DF = 0x4000
+- IP_DROP_MEMBERSHIP = 0x24
+- IP_DROP_SOURCE_MEMBERSHIP = 0x28
+- IP_FREEBIND = 0xf
+- IP_HDRINCL = 0x3
+- IP_IPSEC_POLICY = 0x10
+- IP_MAXPACKET = 0xffff
+- IP_MAX_MEMBERSHIPS = 0x14
+- IP_MF = 0x2000
+- IP_MINTTL = 0x15
+- IP_MSFILTER = 0x29
+- IP_MSS = 0x240
+- IP_MTU = 0xe
+- IP_MTU_DISCOVER = 0xa
+- IP_MULTICAST_ALL = 0x31
+- IP_MULTICAST_IF = 0x20
+- IP_MULTICAST_LOOP = 0x22
+- IP_MULTICAST_TTL = 0x21
+- IP_NODEFRAG = 0x16
+- IP_OFFMASK = 0x1fff
+- IP_OPTIONS = 0x4
+- IP_ORIGDSTADDR = 0x14
+- IP_PASSSEC = 0x12
+- IP_PKTINFO = 0x8
+- IP_PKTOPTIONS = 0x9
+- IP_PMTUDISC = 0xa
+- IP_PMTUDISC_DO = 0x2
+- IP_PMTUDISC_DONT = 0x0
+- IP_PMTUDISC_INTERFACE = 0x4
+- IP_PMTUDISC_OMIT = 0x5
+- IP_PMTUDISC_PROBE = 0x3
+- IP_PMTUDISC_WANT = 0x1
+- IP_RECVERR = 0xb
+- IP_RECVOPTS = 0x6
+- IP_RECVORIGDSTADDR = 0x14
+- IP_RECVRETOPTS = 0x7
+- IP_RECVTOS = 0xd
+- IP_RECVTTL = 0xc
+- IP_RETOPTS = 0x7
+- IP_RF = 0x8000
+- IP_ROUTER_ALERT = 0x5
+- IP_TOS = 0x1
+- IP_TRANSPARENT = 0x13
+- IP_TTL = 0x2
+- IP_UNBLOCK_SOURCE = 0x25
+- IP_UNICAST_IF = 0x32
+- IP_XFRM_POLICY = 0x11
+- ISIG = 0x1
+- ISTRIP = 0x20
+- IUCLC = 0x200
+- IUTF8 = 0x4000
+- IXANY = 0x800
+- IXOFF = 0x1000
+- IXON = 0x400
+- KEYCTL_ASSUME_AUTHORITY = 0x10
+- KEYCTL_CHOWN = 0x4
+- KEYCTL_CLEAR = 0x7
+- KEYCTL_DESCRIBE = 0x6
+- KEYCTL_DH_COMPUTE = 0x17
+- KEYCTL_GET_KEYRING_ID = 0x0
+- KEYCTL_GET_PERSISTENT = 0x16
+- KEYCTL_GET_SECURITY = 0x11
+- KEYCTL_INSTANTIATE = 0xc
+- KEYCTL_INSTANTIATE_IOV = 0x14
+- KEYCTL_INVALIDATE = 0x15
+- KEYCTL_JOIN_SESSION_KEYRING = 0x1
+- KEYCTL_LINK = 0x8
+- KEYCTL_NEGATE = 0xd
+- KEYCTL_READ = 0xb
+- KEYCTL_REJECT = 0x13
+- KEYCTL_REVOKE = 0x3
+- KEYCTL_SEARCH = 0xa
+- KEYCTL_SESSION_TO_PARENT = 0x12
+- KEYCTL_SETPERM = 0x5
+- KEYCTL_SET_REQKEY_KEYRING = 0xe
+- KEYCTL_SET_TIMEOUT = 0xf
+- KEYCTL_UNLINK = 0x9
+- KEYCTL_UPDATE = 0x2
+- KEY_REQKEY_DEFL_DEFAULT = 0x0
+- KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6
+- KEY_REQKEY_DEFL_NO_CHANGE = -0x1
+- KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2
+- KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7
+- KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3
+- KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1
+- KEY_REQKEY_DEFL_USER_KEYRING = 0x4
+- KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
+- KEY_SPEC_GROUP_KEYRING = -0x6
+- KEY_SPEC_PROCESS_KEYRING = -0x2
+- KEY_SPEC_REQKEY_AUTH_KEY = -0x7
+- KEY_SPEC_REQUESTOR_KEYRING = -0x8
+- KEY_SPEC_SESSION_KEYRING = -0x3
+- KEY_SPEC_THREAD_KEYRING = -0x1
+- KEY_SPEC_USER_KEYRING = -0x4
+- KEY_SPEC_USER_SESSION_KEYRING = -0x5
+- LINUX_REBOOT_CMD_CAD_OFF = 0x0
+- LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
+- LINUX_REBOOT_CMD_HALT = 0xcdef0123
+- LINUX_REBOOT_CMD_KEXEC = 0x45584543
+- LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
+- LINUX_REBOOT_CMD_RESTART = 0x1234567
+- LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
+- LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
+- LINUX_REBOOT_MAGIC1 = 0xfee1dead
+- LINUX_REBOOT_MAGIC2 = 0x28121969
+- LOCK_EX = 0x2
+- LOCK_NB = 0x4
+- LOCK_SH = 0x1
+- LOCK_UN = 0x8
+- MADV_DODUMP = 0x11
+- MADV_DOFORK = 0xb
+- MADV_DONTDUMP = 0x10
+- MADV_DONTFORK = 0xa
+- MADV_DONTNEED = 0x4
+- MADV_FREE = 0x8
+- MADV_HUGEPAGE = 0xe
+- MADV_HWPOISON = 0x64
+- MADV_MERGEABLE = 0xc
+- MADV_NOHUGEPAGE = 0xf
+- MADV_NORMAL = 0x0
+- MADV_RANDOM = 0x1
+- MADV_REMOVE = 0x9
+- MADV_SEQUENTIAL = 0x2
+- MADV_UNMERGEABLE = 0xd
+- MADV_WILLNEED = 0x3
+- MAP_ANON = 0x20
+- MAP_ANONYMOUS = 0x20
+- MAP_DENYWRITE = 0x800
+- MAP_EXECUTABLE = 0x1000
+- MAP_FILE = 0x0
+- MAP_FIXED = 0x10
+- MAP_GROWSDOWN = 0x100
+- MAP_HUGETLB = 0x40000
+- MAP_HUGE_MASK = 0x3f
+- MAP_HUGE_SHIFT = 0x1a
+- MAP_LOCKED = 0x2000
+- MAP_NONBLOCK = 0x10000
+- MAP_NORESERVE = 0x4000
+- MAP_POPULATE = 0x8000
+- MAP_PRIVATE = 0x2
+- MAP_SHARED = 0x1
+- MAP_STACK = 0x20000
+- MAP_TYPE = 0xf
+- MCL_CURRENT = 0x1
+- MCL_FUTURE = 0x2
+- MCL_ONFAULT = 0x4
+- MNT_DETACH = 0x2
+- MNT_EXPIRE = 0x4
+- MNT_FORCE = 0x1
+- MSG_BATCH = 0x40000
+- MSG_CMSG_CLOEXEC = 0x40000000
+- MSG_CONFIRM = 0x800
+- MSG_CTRUNC = 0x8
+- MSG_DONTROUTE = 0x4
+- MSG_DONTWAIT = 0x40
+- MSG_EOR = 0x80
+- MSG_ERRQUEUE = 0x2000
+- MSG_FASTOPEN = 0x20000000
+- MSG_FIN = 0x200
+- MSG_MORE = 0x8000
+- MSG_NOSIGNAL = 0x4000
+- MSG_OOB = 0x1
+- MSG_PEEK = 0x2
+- MSG_PROXY = 0x10
+- MSG_RST = 0x1000
+- MSG_SYN = 0x400
+- MSG_TRUNC = 0x20
+- MSG_TRYHARD = 0x4
+- MSG_WAITALL = 0x100
+- MSG_WAITFORONE = 0x10000
+- MS_ACTIVE = 0x40000000
+- MS_ASYNC = 0x1
+- MS_BIND = 0x1000
+- MS_BORN = 0x20000000
+- MS_DIRSYNC = 0x80
+- MS_INVALIDATE = 0x2
+- MS_I_VERSION = 0x800000
+- MS_KERNMOUNT = 0x400000
+- MS_LAZYTIME = 0x2000000
+- MS_MANDLOCK = 0x40
+- MS_MGC_MSK = 0xffff0000
+- MS_MGC_VAL = 0xc0ed0000
+- MS_MOVE = 0x2000
+- MS_NOATIME = 0x400
+- MS_NODEV = 0x4
+- MS_NODIRATIME = 0x800
+- MS_NOEXEC = 0x8
+- MS_NOREMOTELOCK = 0x8000000
+- MS_NOSEC = 0x10000000
+- MS_NOSUID = 0x2
+- MS_NOUSER = -0x80000000
+- MS_POSIXACL = 0x10000
+- MS_PRIVATE = 0x40000
+- MS_RDONLY = 0x1
+- MS_REC = 0x4000
+- MS_RELATIME = 0x200000
+- MS_REMOUNT = 0x20
+- MS_RMT_MASK = 0x2800051
+- MS_SHARED = 0x100000
+- MS_SILENT = 0x8000
+- MS_SLAVE = 0x80000
+- MS_STRICTATIME = 0x1000000
+- MS_SYNC = 0x4
+- MS_SYNCHRONOUS = 0x10
+- MS_UNBINDABLE = 0x20000
+- MS_VERBOSE = 0x8000
+- NAME_MAX = 0xff
+- NETLINK_ADD_MEMBERSHIP = 0x1
+- NETLINK_AUDIT = 0x9
+- NETLINK_BROADCAST_ERROR = 0x4
+- NETLINK_CAP_ACK = 0xa
+- NETLINK_CONNECTOR = 0xb
+- NETLINK_CRYPTO = 0x15
+- NETLINK_DNRTMSG = 0xe
+- NETLINK_DROP_MEMBERSHIP = 0x2
+- NETLINK_ECRYPTFS = 0x13
+- NETLINK_FIB_LOOKUP = 0xa
+- NETLINK_FIREWALL = 0x3
+- NETLINK_GENERIC = 0x10
+- NETLINK_INET_DIAG = 0x4
+- NETLINK_IP6_FW = 0xd
+- NETLINK_ISCSI = 0x8
+- NETLINK_KOBJECT_UEVENT = 0xf
+- NETLINK_LISTEN_ALL_NSID = 0x8
+- NETLINK_LIST_MEMBERSHIPS = 0x9
+- NETLINK_NETFILTER = 0xc
+- NETLINK_NFLOG = 0x5
+- NETLINK_NO_ENOBUFS = 0x5
+- NETLINK_PKTINFO = 0x3
+- NETLINK_RDMA = 0x14
+- NETLINK_ROUTE = 0x0
+- NETLINK_RX_RING = 0x6
+- NETLINK_SCSITRANSPORT = 0x12
+- NETLINK_SELINUX = 0x7
+- NETLINK_SOCK_DIAG = 0x4
+- NETLINK_TX_RING = 0x7
+- NETLINK_UNUSED = 0x1
+- NETLINK_USERSOCK = 0x2
+- NETLINK_XFRM = 0x6
+- NL0 = 0x0
+- NL1 = 0x100
+- NLA_ALIGNTO = 0x4
+- NLA_F_NESTED = 0x8000
+- NLA_F_NET_BYTEORDER = 0x4000
+- NLA_HDRLEN = 0x4
+- NLDLY = 0x100
+- NLMSG_ALIGNTO = 0x4
+- NLMSG_DONE = 0x3
+- NLMSG_ERROR = 0x2
+- NLMSG_HDRLEN = 0x10
+- NLMSG_MIN_TYPE = 0x10
+- NLMSG_NOOP = 0x1
+- NLMSG_OVERRUN = 0x4
+- NLM_F_ACK = 0x4
+- NLM_F_APPEND = 0x800
+- NLM_F_ATOMIC = 0x400
+- NLM_F_CREATE = 0x400
+- NLM_F_DUMP = 0x300
+- NLM_F_DUMP_FILTERED = 0x20
+- NLM_F_DUMP_INTR = 0x10
+- NLM_F_ECHO = 0x8
+- NLM_F_EXCL = 0x200
+- NLM_F_MATCH = 0x200
+- NLM_F_MULTI = 0x2
+- NLM_F_REPLACE = 0x100
+- NLM_F_REQUEST = 0x1
+- NLM_F_ROOT = 0x100
+- NOFLSH = 0x80
+- OCRNL = 0x8
+- OFDEL = 0x80
+- OFILL = 0x40
+- OLCUC = 0x2
+- ONLCR = 0x4
+- ONLRET = 0x20
+- ONOCR = 0x10
+- OPOST = 0x1
+- O_ACCMODE = 0x3
+- O_APPEND = 0x400
+- O_ASYNC = 0x2000
+- O_CLOEXEC = 0x80000
+- O_CREAT = 0x40
+- O_DIRECT = 0x10000
+- O_DIRECTORY = 0x4000
+- O_DSYNC = 0x1000
+- O_EXCL = 0x80
+- O_FSYNC = 0x101000
+- O_LARGEFILE = 0x20000
+- O_NDELAY = 0x800
+- O_NOATIME = 0x40000
+- O_NOCTTY = 0x100
+- O_NOFOLLOW = 0x8000
+- O_NONBLOCK = 0x800
+- O_PATH = 0x200000
+- O_RDONLY = 0x0
+- O_RDWR = 0x2
+- O_RSYNC = 0x101000
+- O_SYNC = 0x101000
+- O_TMPFILE = 0x404000
+- O_TRUNC = 0x200
+- O_WRONLY = 0x1
+- PACKET_ADD_MEMBERSHIP = 0x1
+- PACKET_AUXDATA = 0x8
+- PACKET_BROADCAST = 0x1
+- PACKET_COPY_THRESH = 0x7
+- PACKET_DROP_MEMBERSHIP = 0x2
+- PACKET_FANOUT = 0x12
+- PACKET_FANOUT_CBPF = 0x6
+- PACKET_FANOUT_CPU = 0x2
+- PACKET_FANOUT_DATA = 0x16
+- PACKET_FANOUT_EBPF = 0x7
+- PACKET_FANOUT_FLAG_DEFRAG = 0x8000
+- PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
+- PACKET_FANOUT_HASH = 0x0
+- PACKET_FANOUT_LB = 0x1
+- PACKET_FANOUT_QM = 0x5
+- PACKET_FANOUT_RND = 0x4
+- PACKET_FANOUT_ROLLOVER = 0x3
+- PACKET_FASTROUTE = 0x6
+- PACKET_HDRLEN = 0xb
+- PACKET_HOST = 0x0
+- PACKET_KERNEL = 0x7
+- PACKET_LOOPBACK = 0x5
+- PACKET_LOSS = 0xe
+- PACKET_MR_ALLMULTI = 0x2
+- PACKET_MR_MULTICAST = 0x0
+- PACKET_MR_PROMISC = 0x1
+- PACKET_MR_UNICAST = 0x3
+- PACKET_MULTICAST = 0x2
+- PACKET_ORIGDEV = 0x9
+- PACKET_OTHERHOST = 0x3
+- PACKET_OUTGOING = 0x4
+- PACKET_QDISC_BYPASS = 0x14
+- PACKET_RECV_OUTPUT = 0x3
+- PACKET_RESERVE = 0xc
+- PACKET_ROLLOVER_STATS = 0x15
+- PACKET_RX_RING = 0x5
+- PACKET_STATISTICS = 0x6
+- PACKET_TIMESTAMP = 0x11
+- PACKET_TX_HAS_OFF = 0x13
+- PACKET_TX_RING = 0xd
+- PACKET_TX_TIMESTAMP = 0x10
+- PACKET_USER = 0x6
+- PACKET_VERSION = 0xa
+- PACKET_VNET_HDR = 0xf
+- PARENB = 0x100
+- PARITY_CRC16_PR0 = 0x2
+- PARITY_CRC16_PR0_CCITT = 0x4
+- PARITY_CRC16_PR1 = 0x3
+- PARITY_CRC16_PR1_CCITT = 0x5
+- PARITY_CRC32_PR0_CCITT = 0x6
+- PARITY_CRC32_PR1_CCITT = 0x7
+- PARITY_DEFAULT = 0x0
+- PARITY_NONE = 0x1
+- PARMRK = 0x8
+- PARODD = 0x200
+- PENDIN = 0x4000
+- PERF_EVENT_IOC_DISABLE = 0x2401
+- PERF_EVENT_IOC_ENABLE = 0x2400
+- PERF_EVENT_IOC_ID = 0x80042407
+- PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409
+- PERF_EVENT_IOC_PERIOD = 0x40082404
+- PERF_EVENT_IOC_REFRESH = 0x2402
+- PERF_EVENT_IOC_RESET = 0x2403
+- PERF_EVENT_IOC_SET_BPF = 0x40042408
+- PERF_EVENT_IOC_SET_FILTER = 0x40042406
+- PERF_EVENT_IOC_SET_OUTPUT = 0x2405
+- PRIO_PGRP = 0x1
+- PRIO_PROCESS = 0x0
+- PRIO_USER = 0x2
+- PROT_EXEC = 0x4
+- PROT_GROWSDOWN = 0x1000000
+- PROT_GROWSUP = 0x2000000
+- PROT_NONE = 0x0
+- PROT_READ = 0x1
+- PROT_WRITE = 0x2
+- PR_CAPBSET_DROP = 0x18
+- PR_CAPBSET_READ = 0x17
+- PR_CAP_AMBIENT = 0x2f
+- PR_CAP_AMBIENT_CLEAR_ALL = 0x4
+- PR_CAP_AMBIENT_IS_SET = 0x1
+- PR_CAP_AMBIENT_LOWER = 0x3
+- PR_CAP_AMBIENT_RAISE = 0x2
+- PR_ENDIAN_BIG = 0x0
+- PR_ENDIAN_LITTLE = 0x1
+- PR_ENDIAN_PPC_LITTLE = 0x2
+- PR_FPEMU_NOPRINT = 0x1
+- PR_FPEMU_SIGFPE = 0x2
+- PR_FP_EXC_ASYNC = 0x2
+- PR_FP_EXC_DISABLED = 0x0
+- PR_FP_EXC_DIV = 0x10000
+- PR_FP_EXC_INV = 0x100000
+- PR_FP_EXC_NONRECOV = 0x1
+- PR_FP_EXC_OVF = 0x20000
+- PR_FP_EXC_PRECISE = 0x3
+- PR_FP_EXC_RES = 0x80000
+- PR_FP_EXC_SW_ENABLE = 0x80
+- PR_FP_EXC_UND = 0x40000
+- PR_FP_MODE_FR = 0x1
+- PR_FP_MODE_FRE = 0x2
+- PR_GET_CHILD_SUBREAPER = 0x25
+- PR_GET_DUMPABLE = 0x3
+- PR_GET_ENDIAN = 0x13
+- PR_GET_FPEMU = 0x9
+- PR_GET_FPEXC = 0xb
+- PR_GET_FP_MODE = 0x2e
+- PR_GET_KEEPCAPS = 0x7
+- PR_GET_NAME = 0x10
+- PR_GET_NO_NEW_PRIVS = 0x27
+- PR_GET_PDEATHSIG = 0x2
+- PR_GET_SECCOMP = 0x15
+- PR_GET_SECUREBITS = 0x1b
+- PR_GET_THP_DISABLE = 0x2a
+- PR_GET_TID_ADDRESS = 0x28
+- PR_GET_TIMERSLACK = 0x1e
+- PR_GET_TIMING = 0xd
+- PR_GET_TSC = 0x19
+- PR_GET_UNALIGN = 0x5
+- PR_MCE_KILL = 0x21
+- PR_MCE_KILL_CLEAR = 0x0
+- PR_MCE_KILL_DEFAULT = 0x2
+- PR_MCE_KILL_EARLY = 0x1
+- PR_MCE_KILL_GET = 0x22
+- PR_MCE_KILL_LATE = 0x0
+- PR_MCE_KILL_SET = 0x1
+- PR_MPX_DISABLE_MANAGEMENT = 0x2c
+- PR_MPX_ENABLE_MANAGEMENT = 0x2b
+- PR_SET_CHILD_SUBREAPER = 0x24
+- PR_SET_DUMPABLE = 0x4
+- PR_SET_ENDIAN = 0x14
+- PR_SET_FPEMU = 0xa
+- PR_SET_FPEXC = 0xc
+- PR_SET_FP_MODE = 0x2d
+- PR_SET_KEEPCAPS = 0x8
+- PR_SET_MM = 0x23
+- PR_SET_MM_ARG_END = 0x9
+- PR_SET_MM_ARG_START = 0x8
+- PR_SET_MM_AUXV = 0xc
+- PR_SET_MM_BRK = 0x7
+- PR_SET_MM_END_CODE = 0x2
+- PR_SET_MM_END_DATA = 0x4
+- PR_SET_MM_ENV_END = 0xb
+- PR_SET_MM_ENV_START = 0xa
+- PR_SET_MM_EXE_FILE = 0xd
+- PR_SET_MM_MAP = 0xe
+- PR_SET_MM_MAP_SIZE = 0xf
+- PR_SET_MM_START_BRK = 0x6
+- PR_SET_MM_START_CODE = 0x1
+- PR_SET_MM_START_DATA = 0x3
+- PR_SET_MM_START_STACK = 0x5
+- PR_SET_NAME = 0xf
+- PR_SET_NO_NEW_PRIVS = 0x26
+- PR_SET_PDEATHSIG = 0x1
+- PR_SET_PTRACER = 0x59616d61
+- PR_SET_PTRACER_ANY = 0xffffffff
+- PR_SET_SECCOMP = 0x16
+- PR_SET_SECUREBITS = 0x1c
+- PR_SET_THP_DISABLE = 0x29
+- PR_SET_TIMERSLACK = 0x1d
+- PR_SET_TIMING = 0xe
+- PR_SET_TSC = 0x1a
+- PR_SET_UNALIGN = 0x6
+- PR_TASK_PERF_EVENTS_DISABLE = 0x1f
+- PR_TASK_PERF_EVENTS_ENABLE = 0x20
+- PR_TIMING_STATISTICAL = 0x0
+- PR_TIMING_TIMESTAMP = 0x1
+- PR_TSC_ENABLE = 0x1
+- PR_TSC_SIGSEGV = 0x2
+- PR_UNALIGN_NOPRINT = 0x1
+- PR_UNALIGN_SIGBUS = 0x2
+- PTRACE_ATTACH = 0x10
+- PTRACE_CONT = 0x7
+- PTRACE_DETACH = 0x11
+- PTRACE_EVENT_CLONE = 0x3
+- PTRACE_EVENT_EXEC = 0x4
+- PTRACE_EVENT_EXIT = 0x6
+- PTRACE_EVENT_FORK = 0x1
+- PTRACE_EVENT_SECCOMP = 0x7
+- PTRACE_EVENT_STOP = 0x80
+- PTRACE_EVENT_VFORK = 0x2
+- PTRACE_EVENT_VFORK_DONE = 0x5
+- PTRACE_GETCRUNCHREGS = 0x19
+- PTRACE_GETEVENTMSG = 0x4201
+- PTRACE_GETFPREGS = 0xe
+- PTRACE_GETHBPREGS = 0x1d
+- PTRACE_GETREGS = 0xc
+- PTRACE_GETREGSET = 0x4204
+- PTRACE_GETSIGINFO = 0x4202
+- PTRACE_GETSIGMASK = 0x420a
+- PTRACE_GETVFPREGS = 0x1b
+- PTRACE_GETWMMXREGS = 0x12
+- PTRACE_GET_THREAD_AREA = 0x16
+- PTRACE_INTERRUPT = 0x4207
+- PTRACE_KILL = 0x8
+- PTRACE_LISTEN = 0x4208
+- PTRACE_OLDSETOPTIONS = 0x15
+- PTRACE_O_EXITKILL = 0x100000
+- PTRACE_O_MASK = 0x3000ff
+- PTRACE_O_SUSPEND_SECCOMP = 0x200000
+- PTRACE_O_TRACECLONE = 0x8
+- PTRACE_O_TRACEEXEC = 0x10
+- PTRACE_O_TRACEEXIT = 0x40
+- PTRACE_O_TRACEFORK = 0x2
+- PTRACE_O_TRACESECCOMP = 0x80
+- PTRACE_O_TRACESYSGOOD = 0x1
+- PTRACE_O_TRACEVFORK = 0x4
+- PTRACE_O_TRACEVFORKDONE = 0x20
+- PTRACE_PEEKDATA = 0x2
+- PTRACE_PEEKSIGINFO = 0x4209
+- PTRACE_PEEKSIGINFO_SHARED = 0x1
+- PTRACE_PEEKTEXT = 0x1
+- PTRACE_PEEKUSR = 0x3
+- PTRACE_POKEDATA = 0x5
+- PTRACE_POKETEXT = 0x4
+- PTRACE_POKEUSR = 0x6
+- PTRACE_SECCOMP_GET_FILTER = 0x420c
+- PTRACE_SEIZE = 0x4206
+- PTRACE_SETCRUNCHREGS = 0x1a
+- PTRACE_SETFPREGS = 0xf
+- PTRACE_SETHBPREGS = 0x1e
+- PTRACE_SETOPTIONS = 0x4200
+- PTRACE_SETREGS = 0xd
+- PTRACE_SETREGSET = 0x4205
+- PTRACE_SETSIGINFO = 0x4203
+- PTRACE_SETSIGMASK = 0x420b
+- PTRACE_SETVFPREGS = 0x1c
+- PTRACE_SETWMMXREGS = 0x13
+- PTRACE_SET_SYSCALL = 0x17
+- PTRACE_SINGLESTEP = 0x9
+- PTRACE_SYSCALL = 0x18
+- PTRACE_TRACEME = 0x0
+- PT_DATA_ADDR = 0x10004
+- PT_TEXT_ADDR = 0x10000
+- PT_TEXT_END_ADDR = 0x10008
+- RLIMIT_AS = 0x9
+- RLIMIT_CORE = 0x4
+- RLIMIT_CPU = 0x0
+- RLIMIT_DATA = 0x2
+- RLIMIT_FSIZE = 0x1
+- RLIMIT_LOCKS = 0xa
+- RLIMIT_MEMLOCK = 0x8
+- RLIMIT_MSGQUEUE = 0xc
+- RLIMIT_NICE = 0xd
+- RLIMIT_NOFILE = 0x7
+- RLIMIT_NPROC = 0x6
+- RLIMIT_RSS = 0x5
+- RLIMIT_RTPRIO = 0xe
+- RLIMIT_RTTIME = 0xf
+- RLIMIT_SIGPENDING = 0xb
+- RLIMIT_STACK = 0x3
+- RLIM_INFINITY = -0x1
+- RTAX_ADVMSS = 0x8
+- RTAX_CC_ALGO = 0x10
+- RTAX_CWND = 0x7
+- RTAX_FEATURES = 0xc
+- RTAX_FEATURE_ALLFRAG = 0x8
+- RTAX_FEATURE_ECN = 0x1
+- RTAX_FEATURE_MASK = 0xf
+- RTAX_FEATURE_SACK = 0x2
+- RTAX_FEATURE_TIMESTAMP = 0x4
+- RTAX_HOPLIMIT = 0xa
+- RTAX_INITCWND = 0xb
+- RTAX_INITRWND = 0xe
+- RTAX_LOCK = 0x1
+- RTAX_MAX = 0x10
+- RTAX_MTU = 0x2
+- RTAX_QUICKACK = 0xf
+- RTAX_REORDERING = 0x9
+- RTAX_RTO_MIN = 0xd
+- RTAX_RTT = 0x4
+- RTAX_RTTVAR = 0x5
+- RTAX_SSTHRESH = 0x6
+- RTAX_UNSPEC = 0x0
+- RTAX_WINDOW = 0x3
+- RTA_ALIGNTO = 0x4
+- RTA_MAX = 0x19
+- RTCF_DIRECTSRC = 0x4000000
+- RTCF_DOREDIRECT = 0x1000000
+- RTCF_LOG = 0x2000000
+- RTCF_MASQ = 0x400000
+- RTCF_NAT = 0x800000
+- RTCF_VALVE = 0x200000
+- RTF_ADDRCLASSMASK = 0xf8000000
+- RTF_ADDRCONF = 0x40000
+- RTF_ALLONLINK = 0x20000
+- RTF_BROADCAST = 0x10000000
+- RTF_CACHE = 0x1000000
+- RTF_DEFAULT = 0x10000
+- RTF_DYNAMIC = 0x10
+- RTF_FLOW = 0x2000000
+- RTF_GATEWAY = 0x2
+- RTF_HOST = 0x4
+- RTF_INTERFACE = 0x40000000
+- RTF_IRTT = 0x100
+- RTF_LINKRT = 0x100000
+- RTF_LOCAL = 0x80000000
+- RTF_MODIFIED = 0x20
+- RTF_MSS = 0x40
+- RTF_MTU = 0x40
+- RTF_MULTICAST = 0x20000000
+- RTF_NAT = 0x8000000
+- RTF_NOFORWARD = 0x1000
+- RTF_NONEXTHOP = 0x200000
+- RTF_NOPMTUDISC = 0x4000
+- RTF_POLICY = 0x4000000
+- RTF_REINSTATE = 0x8
+- RTF_REJECT = 0x200
+- RTF_STATIC = 0x400
+- RTF_THROW = 0x2000
+- RTF_UP = 0x1
+- RTF_WINDOW = 0x80
+- RTF_XRESOLVE = 0x800
+- RTM_BASE = 0x10
+- RTM_DELACTION = 0x31
+- RTM_DELADDR = 0x15
+- RTM_DELADDRLABEL = 0x49
+- RTM_DELLINK = 0x11
+- RTM_DELMDB = 0x55
+- RTM_DELNEIGH = 0x1d
+- RTM_DELNSID = 0x59
+- RTM_DELQDISC = 0x25
+- RTM_DELROUTE = 0x19
+- RTM_DELRULE = 0x21
+- RTM_DELTCLASS = 0x29
+- RTM_DELTFILTER = 0x2d
+- RTM_F_CLONED = 0x200
+- RTM_F_EQUALIZE = 0x400
+- RTM_F_LOOKUP_TABLE = 0x1000
+- RTM_F_NOTIFY = 0x100
+- RTM_F_PREFIX = 0x800
+- RTM_GETACTION = 0x32
+- RTM_GETADDR = 0x16
+- RTM_GETADDRLABEL = 0x4a
+- RTM_GETANYCAST = 0x3e
+- RTM_GETDCB = 0x4e
+- RTM_GETLINK = 0x12
+- RTM_GETMDB = 0x56
+- RTM_GETMULTICAST = 0x3a
+- RTM_GETNEIGH = 0x1e
+- RTM_GETNEIGHTBL = 0x42
+- RTM_GETNETCONF = 0x52
+- RTM_GETNSID = 0x5a
+- RTM_GETQDISC = 0x26
+- RTM_GETROUTE = 0x1a
+- RTM_GETRULE = 0x22
+- RTM_GETSTATS = 0x5e
+- RTM_GETTCLASS = 0x2a
+- RTM_GETTFILTER = 0x2e
+- RTM_MAX = 0x5f
+- RTM_NEWACTION = 0x30
+- RTM_NEWADDR = 0x14
+- RTM_NEWADDRLABEL = 0x48
+- RTM_NEWLINK = 0x10
+- RTM_NEWMDB = 0x54
+- RTM_NEWNDUSEROPT = 0x44
+- RTM_NEWNEIGH = 0x1c
+- RTM_NEWNEIGHTBL = 0x40
+- RTM_NEWNETCONF = 0x50
+- RTM_NEWNSID = 0x58
+- RTM_NEWPREFIX = 0x34
+- RTM_NEWQDISC = 0x24
+- RTM_NEWROUTE = 0x18
+- RTM_NEWRULE = 0x20
+- RTM_NEWSTATS = 0x5c
+- RTM_NEWTCLASS = 0x28
+- RTM_NEWTFILTER = 0x2c
+- RTM_NR_FAMILIES = 0x14
+- RTM_NR_MSGTYPES = 0x50
+- RTM_SETDCB = 0x4f
+- RTM_SETLINK = 0x13
+- RTM_SETNEIGHTBL = 0x43
+- RTNH_ALIGNTO = 0x4
+- RTNH_COMPARE_MASK = 0x19
+- RTNH_F_DEAD = 0x1
+- RTNH_F_LINKDOWN = 0x10
+- RTNH_F_OFFLOAD = 0x8
+- RTNH_F_ONLINK = 0x4
+- RTNH_F_PERVASIVE = 0x2
+- RTN_MAX = 0xb
+- RTPROT_BABEL = 0x2a
+- RTPROT_BIRD = 0xc
+- RTPROT_BOOT = 0x3
+- RTPROT_DHCP = 0x10
+- RTPROT_DNROUTED = 0xd
+- RTPROT_GATED = 0x8
+- RTPROT_KERNEL = 0x2
+- RTPROT_MROUTED = 0x11
+- RTPROT_MRT = 0xa
+- RTPROT_NTK = 0xf
+- RTPROT_RA = 0x9
+- RTPROT_REDIRECT = 0x1
+- RTPROT_STATIC = 0x4
+- RTPROT_UNSPEC = 0x0
+- RTPROT_XORP = 0xe
+- RTPROT_ZEBRA = 0xb
+- RT_CLASS_DEFAULT = 0xfd
+- RT_CLASS_LOCAL = 0xff
+- RT_CLASS_MAIN = 0xfe
+- RT_CLASS_MAX = 0xff
+- RT_CLASS_UNSPEC = 0x0
+- RUSAGE_CHILDREN = -0x1
+- RUSAGE_SELF = 0x0
+- RUSAGE_THREAD = 0x1
+- SCM_CREDENTIALS = 0x2
+- SCM_RIGHTS = 0x1
+- SCM_TIMESTAMP = 0x1d
+- SCM_TIMESTAMPING = 0x25
+- SCM_TIMESTAMPING_OPT_STATS = 0x36
+- SCM_TIMESTAMPNS = 0x23
+- SCM_WIFI_STATUS = 0x29
+- SECCOMP_MODE_DISABLED = 0x0
+- SECCOMP_MODE_FILTER = 0x2
+- SECCOMP_MODE_STRICT = 0x1
+- SHUT_RD = 0x0
+- SHUT_RDWR = 0x2
+- SHUT_WR = 0x1
+- SIOCADDDLCI = 0x8980
+- SIOCADDMULTI = 0x8931
+- SIOCADDRT = 0x890b
+- SIOCATMARK = 0x8905
+- SIOCBONDCHANGEACTIVE = 0x8995
+- SIOCBONDENSLAVE = 0x8990
+- SIOCBONDINFOQUERY = 0x8994
+- SIOCBONDRELEASE = 0x8991
+- SIOCBONDSETHWADDR = 0x8992
+- SIOCBONDSLAVEINFOQUERY = 0x8993
+- SIOCBRADDBR = 0x89a0
+- SIOCBRADDIF = 0x89a2
+- SIOCBRDELBR = 0x89a1
+- SIOCBRDELIF = 0x89a3
+- SIOCDARP = 0x8953
+- SIOCDELDLCI = 0x8981
+- SIOCDELMULTI = 0x8932
+- SIOCDELRT = 0x890c
+- SIOCDEVPRIVATE = 0x89f0
+- SIOCDIFADDR = 0x8936
+- SIOCDRARP = 0x8960
+- SIOCETHTOOL = 0x8946
+- SIOCGARP = 0x8954
+- SIOCGHWTSTAMP = 0x89b1
+- SIOCGIFADDR = 0x8915
+- SIOCGIFBR = 0x8940
+- SIOCGIFBRDADDR = 0x8919
+- SIOCGIFCONF = 0x8912
+- SIOCGIFCOUNT = 0x8938
+- SIOCGIFDSTADDR = 0x8917
+- SIOCGIFENCAP = 0x8925
+- SIOCGIFFLAGS = 0x8913
+- SIOCGIFHWADDR = 0x8927
+- SIOCGIFINDEX = 0x8933
+- SIOCGIFMAP = 0x8970
+- SIOCGIFMEM = 0x891f
+- SIOCGIFMETRIC = 0x891d
+- SIOCGIFMTU = 0x8921
+- SIOCGIFNAME = 0x8910
+- SIOCGIFNETMASK = 0x891b
+- SIOCGIFPFLAGS = 0x8935
+- SIOCGIFSLAVE = 0x8929
+- SIOCGIFTXQLEN = 0x8942
+- SIOCGIFVLAN = 0x8982
+- SIOCGMIIPHY = 0x8947
+- SIOCGMIIREG = 0x8948
+- SIOCGPGRP = 0x8904
+- SIOCGRARP = 0x8961
+- SIOCGSKNS = 0x894c
+- SIOCGSTAMP = 0x8906
+- SIOCGSTAMPNS = 0x8907
+- SIOCINQ = 0x541b
+- SIOCOUTQ = 0x5411
+- SIOCOUTQNSD = 0x894b
+- SIOCPROTOPRIVATE = 0x89e0
+- SIOCRTMSG = 0x890d
+- SIOCSARP = 0x8955
+- SIOCSHWTSTAMP = 0x89b0
+- SIOCSIFADDR = 0x8916
+- SIOCSIFBR = 0x8941
+- SIOCSIFBRDADDR = 0x891a
+- SIOCSIFDSTADDR = 0x8918
+- SIOCSIFENCAP = 0x8926
+- SIOCSIFFLAGS = 0x8914
+- SIOCSIFHWADDR = 0x8924
+- SIOCSIFHWBROADCAST = 0x8937
+- SIOCSIFLINK = 0x8911
+- SIOCSIFMAP = 0x8971
+- SIOCSIFMEM = 0x8920
+- SIOCSIFMETRIC = 0x891e
+- SIOCSIFMTU = 0x8922
+- SIOCSIFNAME = 0x8923
+- SIOCSIFNETMASK = 0x891c
+- SIOCSIFPFLAGS = 0x8934
+- SIOCSIFSLAVE = 0x8930
+- SIOCSIFTXQLEN = 0x8943
+- SIOCSIFVLAN = 0x8983
+- SIOCSMIIREG = 0x8949
+- SIOCSPGRP = 0x8902
+- SIOCSRARP = 0x8962
+- SIOCWANDEV = 0x894a
+- SOCK_CLOEXEC = 0x80000
+- SOCK_DCCP = 0x6
+- SOCK_DGRAM = 0x2
+- SOCK_IOC_TYPE = 0x89
+- SOCK_NONBLOCK = 0x800
+- SOCK_PACKET = 0xa
+- SOCK_RAW = 0x3
+- SOCK_RDM = 0x4
+- SOCK_SEQPACKET = 0x5
+- SOCK_STREAM = 0x1
+- SOL_AAL = 0x109
+- SOL_ALG = 0x117
+- SOL_ATM = 0x108
+- SOL_CAIF = 0x116
+- SOL_CAN_BASE = 0x64
+- SOL_DCCP = 0x10d
+- SOL_DECNET = 0x105
+- SOL_ICMPV6 = 0x3a
+- SOL_IP = 0x0
+- SOL_IPV6 = 0x29
+- SOL_IRDA = 0x10a
+- SOL_IUCV = 0x115
+- SOL_KCM = 0x119
+- SOL_LLC = 0x10c
+- SOL_NETBEUI = 0x10b
+- SOL_NETLINK = 0x10e
+- SOL_NFC = 0x118
+- SOL_PACKET = 0x107
+- SOL_PNPIPE = 0x113
+- SOL_PPPOL2TP = 0x111
+- SOL_RAW = 0xff
+- SOL_RDS = 0x114
+- SOL_RXRPC = 0x110
+- SOL_SOCKET = 0x1
+- SOL_TCP = 0x6
+- SOL_TIPC = 0x10f
+- SOL_X25 = 0x106
+- SOMAXCONN = 0x80
+- SO_ACCEPTCONN = 0x1e
+- SO_ATTACH_BPF = 0x32
+- SO_ATTACH_FILTER = 0x1a
+- SO_ATTACH_REUSEPORT_CBPF = 0x33
+- SO_ATTACH_REUSEPORT_EBPF = 0x34
+- SO_BINDTODEVICE = 0x19
+- SO_BPF_EXTENSIONS = 0x30
+- SO_BROADCAST = 0x6
+- SO_BSDCOMPAT = 0xe
+- SO_BUSY_POLL = 0x2e
+- SO_CNX_ADVICE = 0x35
+- SO_DEBUG = 0x1
+- SO_DETACH_BPF = 0x1b
+- SO_DETACH_FILTER = 0x1b
+- SO_DOMAIN = 0x27
+- SO_DONTROUTE = 0x5
+- SO_ERROR = 0x4
+- SO_GET_FILTER = 0x1a
+- SO_INCOMING_CPU = 0x31
+- SO_KEEPALIVE = 0x9
+- SO_LINGER = 0xd
+- SO_LOCK_FILTER = 0x2c
+- SO_MARK = 0x24
+- SO_MAX_PACING_RATE = 0x2f
+- SO_NOFCS = 0x2b
+- SO_NO_CHECK = 0xb
+- SO_OOBINLINE = 0xa
+- SO_PASSCRED = 0x10
+- SO_PASSSEC = 0x22
+- SO_PEEK_OFF = 0x2a
+- SO_PEERCRED = 0x11
+- SO_PEERNAME = 0x1c
+- SO_PEERSEC = 0x1f
+- SO_PRIORITY = 0xc
+- SO_PROTOCOL = 0x26
+- SO_RCVBUF = 0x8
+- SO_RCVBUFFORCE = 0x21
+- SO_RCVLOWAT = 0x12
+- SO_RCVTIMEO = 0x14
+- SO_REUSEADDR = 0x2
+- SO_REUSEPORT = 0xf
+- SO_RXQ_OVFL = 0x28
+- SO_SECURITY_AUTHENTICATION = 0x16
+- SO_SECURITY_ENCRYPTION_NETWORK = 0x18
+- SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
+- SO_SELECT_ERR_QUEUE = 0x2d
+- SO_SNDBUF = 0x7
+- SO_SNDBUFFORCE = 0x20
+- SO_SNDLOWAT = 0x13
+- SO_SNDTIMEO = 0x15
+- SO_TIMESTAMP = 0x1d
+- SO_TIMESTAMPING = 0x25
+- SO_TIMESTAMPNS = 0x23
+- SO_TYPE = 0x3
+- SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
+- SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
+- SO_VM_SOCKETS_BUFFER_SIZE = 0x0
+- SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
+- SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
+- SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
+- SO_VM_SOCKETS_TRUSTED = 0x5
+- SO_WIFI_STATUS = 0x29
+- SPLICE_F_GIFT = 0x8
+- SPLICE_F_MORE = 0x4
+- SPLICE_F_MOVE = 0x1
+- SPLICE_F_NONBLOCK = 0x2
+- S_BLKSIZE = 0x200
+- S_IEXEC = 0x40
+- S_IFBLK = 0x6000
+- S_IFCHR = 0x2000
+- S_IFDIR = 0x4000
+- S_IFIFO = 0x1000
+- S_IFLNK = 0xa000
+- S_IFMT = 0xf000
+- S_IFREG = 0x8000
+- S_IFSOCK = 0xc000
+- S_IREAD = 0x100
+- S_IRGRP = 0x20
+- S_IROTH = 0x4
+- S_IRUSR = 0x100
+- S_IRWXG = 0x38
+- S_IRWXO = 0x7
+- S_IRWXU = 0x1c0
+- S_ISGID = 0x400
+- S_ISUID = 0x800
+- S_ISVTX = 0x200
+- S_IWGRP = 0x10
+- S_IWOTH = 0x2
+- S_IWRITE = 0x80
+- S_IWUSR = 0x80
+- S_IXGRP = 0x8
+- S_IXOTH = 0x1
+- S_IXUSR = 0x40
+- TAB0 = 0x0
+- TAB1 = 0x800
+- TAB2 = 0x1000
+- TAB3 = 0x1800
+- TABDLY = 0x1800
+- TASKSTATS_CMD_ATTR_MAX = 0x4
+- TASKSTATS_CMD_MAX = 0x2
+- TASKSTATS_GENL_NAME = "TASKSTATS"
+- TASKSTATS_GENL_VERSION = 0x1
+- TASKSTATS_TYPE_MAX = 0x6
+- TASKSTATS_VERSION = 0x8
+- TCFLSH = 0x540b
+- TCGETA = 0x5405
+- TCGETS = 0x5401
+- TCGETS2 = 0x802c542a
+- TCGETX = 0x5432
+- TCIFLUSH = 0x0
+- TCIOFF = 0x2
+- TCIOFLUSH = 0x2
+- TCION = 0x3
+- TCOFLUSH = 0x1
+- TCOOFF = 0x0
+- TCOON = 0x1
+- TCP_CC_INFO = 0x1a
+- TCP_CONGESTION = 0xd
+- TCP_COOKIE_IN_ALWAYS = 0x1
+- TCP_COOKIE_MAX = 0x10
+- TCP_COOKIE_MIN = 0x8
+- TCP_COOKIE_OUT_NEVER = 0x2
+- TCP_COOKIE_PAIR_SIZE = 0x20
+- TCP_COOKIE_TRANSACTIONS = 0xf
+- TCP_CORK = 0x3
+- TCP_DEFER_ACCEPT = 0x9
+- TCP_FASTOPEN = 0x17
+- TCP_INFO = 0xb
+- TCP_KEEPCNT = 0x6
+- TCP_KEEPIDLE = 0x4
+- TCP_KEEPINTVL = 0x5
+- TCP_LINGER2 = 0x8
+- TCP_MAXSEG = 0x2
+- TCP_MAXWIN = 0xffff
+- TCP_MAX_WINSHIFT = 0xe
+- TCP_MD5SIG = 0xe
+- TCP_MD5SIG_MAXKEYLEN = 0x50
+- TCP_MSS = 0x200
+- TCP_MSS_DEFAULT = 0x218
+- TCP_MSS_DESIRED = 0x4c4
+- TCP_NODELAY = 0x1
+- TCP_NOTSENT_LOWAT = 0x19
+- TCP_QUEUE_SEQ = 0x15
+- TCP_QUICKACK = 0xc
+- TCP_REPAIR = 0x13
+- TCP_REPAIR_OPTIONS = 0x16
+- TCP_REPAIR_QUEUE = 0x14
+- TCP_REPAIR_WINDOW = 0x1d
+- TCP_SAVED_SYN = 0x1c
+- TCP_SAVE_SYN = 0x1b
+- TCP_SYNCNT = 0x7
+- TCP_S_DATA_IN = 0x4
+- TCP_S_DATA_OUT = 0x8
+- TCP_THIN_DUPACK = 0x11
+- TCP_THIN_LINEAR_TIMEOUTS = 0x10
+- TCP_TIMESTAMP = 0x18
+- TCP_USER_TIMEOUT = 0x12
+- TCP_WINDOW_CLAMP = 0xa
+- TCSAFLUSH = 0x2
+- TCSBRK = 0x5409
+- TCSBRKP = 0x5425
+- TCSETA = 0x5406
+- TCSETAF = 0x5408
+- TCSETAW = 0x5407
+- TCSETS = 0x5402
+- TCSETS2 = 0x402c542b
+- TCSETSF = 0x5404
+- TCSETSF2 = 0x402c542d
+- TCSETSW = 0x5403
+- TCSETSW2 = 0x402c542c
+- TCSETX = 0x5433
+- TCSETXF = 0x5434
+- TCSETXW = 0x5435
+- TCXONC = 0x540a
+- TIOCCBRK = 0x5428
+- TIOCCONS = 0x541d
+- TIOCEXCL = 0x540c
+- TIOCGDEV = 0x80045432
+- TIOCGETD = 0x5424
+- TIOCGEXCL = 0x80045440
+- TIOCGICOUNT = 0x545d
+- TIOCGLCKTRMIOS = 0x5456
+- TIOCGPGRP = 0x540f
+- TIOCGPKT = 0x80045438
+- TIOCGPTLCK = 0x80045439
+- TIOCGPTN = 0x80045430
+- TIOCGRS485 = 0x542e
+- TIOCGSERIAL = 0x541e
+- TIOCGSID = 0x5429
+- TIOCGSOFTCAR = 0x5419
+- TIOCGWINSZ = 0x5413
+- TIOCINQ = 0x541b
+- TIOCLINUX = 0x541c
+- TIOCMBIC = 0x5417
+- TIOCMBIS = 0x5416
+- TIOCMGET = 0x5415
+- TIOCMIWAIT = 0x545c
+- TIOCMSET = 0x5418
+- TIOCM_CAR = 0x40
+- TIOCM_CD = 0x40
+- TIOCM_CTS = 0x20
+- TIOCM_DSR = 0x100
+- TIOCM_DTR = 0x2
+- TIOCM_LE = 0x1
+- TIOCM_RI = 0x80
+- TIOCM_RNG = 0x80
+- TIOCM_RTS = 0x4
+- TIOCM_SR = 0x10
+- TIOCM_ST = 0x8
+- TIOCNOTTY = 0x5422
+- TIOCNXCL = 0x540d
+- TIOCOUTQ = 0x5411
+- TIOCPKT = 0x5420
+- TIOCPKT_DATA = 0x0
+- TIOCPKT_DOSTOP = 0x20
+- TIOCPKT_FLUSHREAD = 0x1
+- TIOCPKT_FLUSHWRITE = 0x2
+- TIOCPKT_IOCTL = 0x40
+- TIOCPKT_NOSTOP = 0x10
+- TIOCPKT_START = 0x8
+- TIOCPKT_STOP = 0x4
+- TIOCSBRK = 0x5427
+- TIOCSCTTY = 0x540e
+- TIOCSERCONFIG = 0x5453
+- TIOCSERGETLSR = 0x5459
+- TIOCSERGETMULTI = 0x545a
+- TIOCSERGSTRUCT = 0x5458
+- TIOCSERGWILD = 0x5454
+- TIOCSERSETMULTI = 0x545b
+- TIOCSERSWILD = 0x5455
+- TIOCSER_TEMT = 0x1
+- TIOCSETD = 0x5423
+- TIOCSIG = 0x40045436
+- TIOCSLCKTRMIOS = 0x5457
+- TIOCSPGRP = 0x5410
+- TIOCSPTLCK = 0x40045431
+- TIOCSRS485 = 0x542f
+- TIOCSSERIAL = 0x541f
+- TIOCSSOFTCAR = 0x541a
+- TIOCSTI = 0x5412
+- TIOCSWINSZ = 0x5414
+- TIOCVHANGUP = 0x5437
+- TOSTOP = 0x100
+- TS_COMM_LEN = 0x20
+- TUNATTACHFILTER = 0x400854d5
+- TUNDETACHFILTER = 0x400854d6
+- TUNGETFEATURES = 0x800454cf
+- TUNGETFILTER = 0x800854db
+- TUNGETIFF = 0x800454d2
+- TUNGETSNDBUF = 0x800454d3
+- TUNGETVNETBE = 0x800454df
+- TUNGETVNETHDRSZ = 0x800454d7
+- TUNGETVNETLE = 0x800454dd
+- TUNSETDEBUG = 0x400454c9
+- TUNSETGROUP = 0x400454ce
+- TUNSETIFF = 0x400454ca
+- TUNSETIFINDEX = 0x400454da
+- TUNSETLINK = 0x400454cd
+- TUNSETNOCSUM = 0x400454c8
+- TUNSETOFFLOAD = 0x400454d0
+- TUNSETOWNER = 0x400454cc
+- TUNSETPERSIST = 0x400454cb
+- TUNSETQUEUE = 0x400454d9
+- TUNSETSNDBUF = 0x400454d4
+- TUNSETTXFILTER = 0x400454d1
+- TUNSETVNETBE = 0x400454de
+- TUNSETVNETHDRSZ = 0x400454d8
+- TUNSETVNETLE = 0x400454dc
+- UMOUNT_NOFOLLOW = 0x8
+- VDISCARD = 0xd
+- VEOF = 0x4
+- VEOL = 0xb
+- VEOL2 = 0x10
+- VERASE = 0x2
+- VINTR = 0x0
+- VKILL = 0x3
+- VLNEXT = 0xf
+- VMADDR_CID_ANY = 0xffffffff
+- VMADDR_CID_HOST = 0x2
+- VMADDR_CID_HYPERVISOR = 0x0
+- VMADDR_CID_RESERVED = 0x1
+- VMADDR_PORT_ANY = 0xffffffff
+- VMIN = 0x6
+- VM_SOCKETS_INVALID_VERSION = 0xffffffff
+- VQUIT = 0x1
+- VREPRINT = 0xc
+- VSTART = 0x8
+- VSTOP = 0x9
+- VSUSP = 0xa
+- VSWTC = 0x7
+- VT0 = 0x0
+- VT1 = 0x4000
+- VTDLY = 0x4000
+- VTIME = 0x5
+- VWERASE = 0xe
+- WALL = 0x40000000
+- WCLONE = 0x80000000
+- WCONTINUED = 0x8
+- WEXITED = 0x4
+- WNOHANG = 0x1
+- WNOTHREAD = 0x20000000
+- WNOWAIT = 0x1000000
+- WORDSIZE = 0x20
+- WSTOPPED = 0x2
+- WUNTRACED = 0x2
+- XATTR_CREATE = 0x1
+- XATTR_REPLACE = 0x2
+- XCASE = 0x4
+- XTABS = 0x1800
++ B1000000 = 0x1008
++ B115200 = 0x1002
++ B1152000 = 0x1009
++ B1500000 = 0x100a
++ B2000000 = 0x100b
++ B230400 = 0x1003
++ B2500000 = 0x100c
++ B3000000 = 0x100d
++ B3500000 = 0x100e
++ B4000000 = 0x100f
++ B460800 = 0x1004
++ B500000 = 0x1005
++ B57600 = 0x1001
++ B576000 = 0x1006
++ B921600 = 0x1007
++ BLKBSZGET = 0x80041270
++ BLKBSZSET = 0x40041271
++ BLKFLSBUF = 0x1261
++ BLKFRAGET = 0x1265
++ BLKFRASET = 0x1264
++ BLKGETSIZE = 0x1260
++ BLKGETSIZE64 = 0x80041272
++ BLKPBSZGET = 0x127b
++ BLKRAGET = 0x1263
++ BLKRASET = 0x1262
++ BLKROGET = 0x125e
++ BLKROSET = 0x125d
++ BLKRRPART = 0x125f
++ BLKSECTGET = 0x1267
++ BLKSECTSET = 0x1266
++ BLKSSZGET = 0x1268
++ BOTHER = 0x1000
++ BS1 = 0x2000
++ BSDLY = 0x2000
++ CBAUD = 0x100f
++ CBAUDEX = 0x1000
++ CIBAUD = 0x100f0000
++ CLOCAL = 0x800
++ CR1 = 0x200
++ CR2 = 0x400
++ CR3 = 0x600
++ CRDLY = 0x600
++ CREAD = 0x80
++ CS6 = 0x10
++ CS7 = 0x20
++ CS8 = 0x30
++ CSIZE = 0x30
++ CSTOPB = 0x40
++ ECHOCTL = 0x200
++ ECHOE = 0x10
++ ECHOK = 0x20
++ ECHOKE = 0x800
++ ECHONL = 0x40
++ ECHOPRT = 0x400
++ EFD_CLOEXEC = 0x80000
++ EFD_NONBLOCK = 0x800
++ EPOLL_CLOEXEC = 0x80000
++ EXTPROC = 0x10000
++ FF1 = 0x8000
++ FFDLY = 0x8000
++ FLUSHO = 0x1000
++ FS_IOC_ENABLE_VERITY = 0x40806685
++ FS_IOC_GETFLAGS = 0x80046601
++ FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615
++ FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614
++ FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613
++ F_GETLK = 0xc
++ F_GETLK64 = 0xc
++ F_GETOWN = 0x9
++ F_RDLCK = 0x0
++ F_SETLK = 0xd
++ F_SETLK64 = 0xd
++ F_SETLKW = 0xe
++ F_SETLKW64 = 0xe
++ F_SETOWN = 0x8
++ F_UNLCK = 0x2
++ F_WRLCK = 0x1
++ HUPCL = 0x400
++ ICANON = 0x2
++ IEXTEN = 0x8000
++ IN_CLOEXEC = 0x80000
++ IN_NONBLOCK = 0x800
++ IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9
++ ISIG = 0x1
++ IUCLC = 0x200
++ IXOFF = 0x1000
++ IXON = 0x400
++ MAP_ANON = 0x20
++ MAP_ANONYMOUS = 0x20
++ MAP_DENYWRITE = 0x800
++ MAP_EXECUTABLE = 0x1000
++ MAP_GROWSDOWN = 0x100
++ MAP_HUGETLB = 0x40000
++ MAP_LOCKED = 0x2000
++ MAP_NONBLOCK = 0x10000
++ MAP_NORESERVE = 0x4000
++ MAP_POPULATE = 0x8000
++ MAP_STACK = 0x20000
++ MAP_SYNC = 0x80000
++ MCL_CURRENT = 0x1
++ MCL_FUTURE = 0x2
++ MCL_ONFAULT = 0x4
++ NFDBITS = 0x20
++ NLDLY = 0x100
++ NOFLSH = 0x80
++ NS_GET_NSTYPE = 0xb703
++ NS_GET_OWNER_UID = 0xb704
++ NS_GET_PARENT = 0xb702
++ NS_GET_USERNS = 0xb701
++ OLCUC = 0x2
++ ONLCR = 0x4
++ O_APPEND = 0x400
++ O_ASYNC = 0x2000
++ O_CLOEXEC = 0x80000
++ O_CREAT = 0x40
++ O_DIRECT = 0x10000
++ O_DIRECTORY = 0x4000
++ O_DSYNC = 0x1000
++ O_EXCL = 0x80
++ O_FSYNC = 0x101000
++ O_LARGEFILE = 0x20000
++ O_NDELAY = 0x800
++ O_NOATIME = 0x40000
++ O_NOCTTY = 0x100
++ O_NOFOLLOW = 0x8000
++ O_NONBLOCK = 0x800
++ O_PATH = 0x200000
++ O_RSYNC = 0x101000
++ O_SYNC = 0x101000
++ O_TMPFILE = 0x404000
++ O_TRUNC = 0x200
++ PARENB = 0x100
++ PARODD = 0x200
++ PENDIN = 0x4000
++ PERF_EVENT_IOC_DISABLE = 0x2401
++ PERF_EVENT_IOC_ENABLE = 0x2400
++ PERF_EVENT_IOC_ID = 0x80042407
++ PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b
++ PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409
++ PERF_EVENT_IOC_PERIOD = 0x40082404
++ PERF_EVENT_IOC_QUERY_BPF = 0xc004240a
++ PERF_EVENT_IOC_REFRESH = 0x2402
++ PERF_EVENT_IOC_RESET = 0x2403
++ PERF_EVENT_IOC_SET_BPF = 0x40042408
++ PERF_EVENT_IOC_SET_FILTER = 0x40042406
++ PERF_EVENT_IOC_SET_OUTPUT = 0x2405
++ PPPIOCATTACH = 0x4004743d
++ PPPIOCATTCHAN = 0x40047438
++ PPPIOCCONNECT = 0x4004743a
++ PPPIOCDETACH = 0x4004743c
++ PPPIOCDISCONN = 0x7439
++ PPPIOCGASYNCMAP = 0x80047458
++ PPPIOCGCHAN = 0x80047437
++ PPPIOCGDEBUG = 0x80047441
++ PPPIOCGFLAGS = 0x8004745a
++ PPPIOCGIDLE = 0x8008743f
++ PPPIOCGIDLE32 = 0x8008743f
++ PPPIOCGIDLE64 = 0x8010743f
++ PPPIOCGL2TPSTATS = 0x80487436
++ PPPIOCGMRU = 0x80047453
++ PPPIOCGRASYNCMAP = 0x80047455
++ PPPIOCGUNIT = 0x80047456
++ PPPIOCGXASYNCMAP = 0x80207450
++ PPPIOCSACTIVE = 0x40087446
++ PPPIOCSASYNCMAP = 0x40047457
++ PPPIOCSCOMPRESS = 0x400c744d
++ PPPIOCSDEBUG = 0x40047440
++ PPPIOCSFLAGS = 0x40047459
++ PPPIOCSMAXCID = 0x40047451
++ PPPIOCSMRRU = 0x4004743b
++ PPPIOCSMRU = 0x40047452
++ PPPIOCSNPMODE = 0x4008744b
++ PPPIOCSPASS = 0x40087447
++ PPPIOCSRASYNCMAP = 0x40047454
++ PPPIOCSXASYNCMAP = 0x4020744f
++ PPPIOCXFERUNIT = 0x744e
++ PR_SET_PTRACER_ANY = 0xffffffff
++ PTRACE_GETCRUNCHREGS = 0x19
++ PTRACE_GETFDPIC = 0x1f
++ PTRACE_GETFDPIC_EXEC = 0x0
++ PTRACE_GETFDPIC_INTERP = 0x1
++ PTRACE_GETFPREGS = 0xe
++ PTRACE_GETHBPREGS = 0x1d
++ PTRACE_GETVFPREGS = 0x1b
++ PTRACE_GETWMMXREGS = 0x12
++ PTRACE_GET_THREAD_AREA = 0x16
++ PTRACE_OLDSETOPTIONS = 0x15
++ PTRACE_SETCRUNCHREGS = 0x1a
++ PTRACE_SETFPREGS = 0xf
++ PTRACE_SETHBPREGS = 0x1e
++ PTRACE_SETVFPREGS = 0x1c
++ PTRACE_SETWMMXREGS = 0x13
++ PTRACE_SET_SYSCALL = 0x17
++ PT_DATA_ADDR = 0x10004
++ PT_TEXT_ADDR = 0x10000
++ PT_TEXT_END_ADDR = 0x10008
++ RLIMIT_AS = 0x9
++ RLIMIT_MEMLOCK = 0x8
++ RLIMIT_NOFILE = 0x7
++ RLIMIT_NPROC = 0x6
++ RLIMIT_RSS = 0x5
++ RNDADDENTROPY = 0x40085203
++ RNDADDTOENTCNT = 0x40045201
++ RNDCLEARPOOL = 0x5206
++ RNDGETENTCNT = 0x80045200
++ RNDGETPOOL = 0x80085202
++ RNDRESEEDCRNG = 0x5207
++ RNDZAPENTCNT = 0x5204
++ RTC_AIE_OFF = 0x7002
++ RTC_AIE_ON = 0x7001
++ RTC_ALM_READ = 0x80247008
++ RTC_ALM_SET = 0x40247007
++ RTC_EPOCH_READ = 0x8004700d
++ RTC_EPOCH_SET = 0x4004700e
++ RTC_IRQP_READ = 0x8004700b
++ RTC_IRQP_SET = 0x4004700c
++ RTC_PIE_OFF = 0x7006
++ RTC_PIE_ON = 0x7005
++ RTC_PLL_GET = 0x801c7011
++ RTC_PLL_SET = 0x401c7012
++ RTC_RD_TIME = 0x80247009
++ RTC_SET_TIME = 0x4024700a
++ RTC_UIE_OFF = 0x7004
++ RTC_UIE_ON = 0x7003
++ RTC_VL_CLR = 0x7014
++ RTC_VL_READ = 0x80047013
++ RTC_WIE_OFF = 0x7010
++ RTC_WIE_ON = 0x700f
++ RTC_WKALM_RD = 0x80287010
++ RTC_WKALM_SET = 0x4028700f
++ SCM_TIMESTAMPING = 0x25
++ SCM_TIMESTAMPING_OPT_STATS = 0x36
++ SCM_TIMESTAMPING_PKTINFO = 0x3a
++ SCM_TIMESTAMPNS = 0x23
++ SCM_TXTIME = 0x3d
++ SCM_WIFI_STATUS = 0x29
++ SFD_CLOEXEC = 0x80000
++ SFD_NONBLOCK = 0x800
++ SIOCATMARK = 0x8905
++ SIOCGPGRP = 0x8904
++ SIOCGSTAMPNS_NEW = 0x80108907
++ SIOCGSTAMP_NEW = 0x80108906
++ SIOCINQ = 0x541b
++ SIOCOUTQ = 0x5411
++ SIOCSPGRP = 0x8902
++ SOCK_CLOEXEC = 0x80000
++ SOCK_DGRAM = 0x2
++ SOCK_NONBLOCK = 0x800
++ SOCK_STREAM = 0x1
++ SOL_SOCKET = 0x1
++ SO_ACCEPTCONN = 0x1e
++ SO_ATTACH_BPF = 0x32
++ SO_ATTACH_REUSEPORT_CBPF = 0x33
++ SO_ATTACH_REUSEPORT_EBPF = 0x34
++ SO_BINDTODEVICE = 0x19
++ SO_BINDTOIFINDEX = 0x3e
++ SO_BPF_EXTENSIONS = 0x30
++ SO_BROADCAST = 0x6
++ SO_BSDCOMPAT = 0xe
++ SO_BUSY_POLL = 0x2e
++ SO_CNX_ADVICE = 0x35
++ SO_COOKIE = 0x39
++ SO_DETACH_REUSEPORT_BPF = 0x44
++ SO_DOMAIN = 0x27
++ SO_DONTROUTE = 0x5
++ SO_ERROR = 0x4
++ SO_INCOMING_CPU = 0x31
++ SO_INCOMING_NAPI_ID = 0x38
++ SO_KEEPALIVE = 0x9
++ SO_LINGER = 0xd
++ SO_LOCK_FILTER = 0x2c
++ SO_MARK = 0x24
++ SO_MAX_PACING_RATE = 0x2f
++ SO_MEMINFO = 0x37
++ SO_NOFCS = 0x2b
++ SO_OOBINLINE = 0xa
++ SO_PASSCRED = 0x10
++ SO_PASSSEC = 0x22
++ SO_PEEK_OFF = 0x2a
++ SO_PEERCRED = 0x11
++ SO_PEERGROUPS = 0x3b
++ SO_PEERSEC = 0x1f
++ SO_PROTOCOL = 0x26
++ SO_RCVBUF = 0x8
++ SO_RCVBUFFORCE = 0x21
++ SO_RCVLOWAT = 0x12
++ SO_RCVTIMEO = 0x14
++ SO_RCVTIMEO_NEW = 0x42
++ SO_RCVTIMEO_OLD = 0x14
++ SO_REUSEADDR = 0x2
++ SO_REUSEPORT = 0xf
++ SO_RXQ_OVFL = 0x28
++ SO_SECURITY_AUTHENTICATION = 0x16
++ SO_SECURITY_ENCRYPTION_NETWORK = 0x18
++ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
++ SO_SELECT_ERR_QUEUE = 0x2d
++ SO_SNDBUF = 0x7
++ SO_SNDBUFFORCE = 0x20
++ SO_SNDLOWAT = 0x13
++ SO_SNDTIMEO = 0x15
++ SO_SNDTIMEO_NEW = 0x43
++ SO_SNDTIMEO_OLD = 0x15
++ SO_TIMESTAMPING = 0x25
++ SO_TIMESTAMPING_NEW = 0x41
++ SO_TIMESTAMPING_OLD = 0x25
++ SO_TIMESTAMPNS = 0x23
++ SO_TIMESTAMPNS_NEW = 0x40
++ SO_TIMESTAMPNS_OLD = 0x23
++ SO_TIMESTAMP_NEW = 0x3f
++ SO_TXTIME = 0x3d
++ SO_TYPE = 0x3
++ SO_WIFI_STATUS = 0x29
++ SO_ZEROCOPY = 0x3c
++ TAB1 = 0x800
++ TAB2 = 0x1000
++ TAB3 = 0x1800
++ TABDLY = 0x1800
++ TCFLSH = 0x540b
++ TCGETA = 0x5405
++ TCGETS = 0x5401
++ TCGETS2 = 0x802c542a
++ TCGETX = 0x5432
++ TCSAFLUSH = 0x2
++ TCSBRK = 0x5409
++ TCSBRKP = 0x5425
++ TCSETA = 0x5406
++ TCSETAF = 0x5408
++ TCSETAW = 0x5407
++ TCSETS = 0x5402
++ TCSETS2 = 0x402c542b
++ TCSETSF = 0x5404
++ TCSETSF2 = 0x402c542d
++ TCSETSW = 0x5403
++ TCSETSW2 = 0x402c542c
++ TCSETX = 0x5433
++ TCSETXF = 0x5434
++ TCSETXW = 0x5435
++ TCXONC = 0x540a
++ TIOCCBRK = 0x5428
++ TIOCCONS = 0x541d
++ TIOCEXCL = 0x540c
++ TIOCGDEV = 0x80045432
++ TIOCGETD = 0x5424
++ TIOCGEXCL = 0x80045440
++ TIOCGICOUNT = 0x545d
++ TIOCGISO7816 = 0x80285442
++ TIOCGLCKTRMIOS = 0x5456
++ TIOCGPGRP = 0x540f
++ TIOCGPKT = 0x80045438
++ TIOCGPTLCK = 0x80045439
++ TIOCGPTN = 0x80045430
++ TIOCGPTPEER = 0x5441
++ TIOCGRS485 = 0x542e
++ TIOCGSERIAL = 0x541e
++ TIOCGSID = 0x5429
++ TIOCGSOFTCAR = 0x5419
++ TIOCGWINSZ = 0x5413
++ TIOCINQ = 0x541b
++ TIOCLINUX = 0x541c
++ TIOCMBIC = 0x5417
++ TIOCMBIS = 0x5416
++ TIOCMGET = 0x5415
++ TIOCMIWAIT = 0x545c
++ TIOCMSET = 0x5418
++ TIOCM_CAR = 0x40
++ TIOCM_CD = 0x40
++ TIOCM_CTS = 0x20
++ TIOCM_DSR = 0x100
++ TIOCM_RI = 0x80
++ TIOCM_RNG = 0x80
++ TIOCM_SR = 0x10
++ TIOCM_ST = 0x8
++ TIOCNOTTY = 0x5422
++ TIOCNXCL = 0x540d
++ TIOCOUTQ = 0x5411
++ TIOCPKT = 0x5420
++ TIOCSBRK = 0x5427
++ TIOCSCTTY = 0x540e
++ TIOCSERCONFIG = 0x5453
++ TIOCSERGETLSR = 0x5459
++ TIOCSERGETMULTI = 0x545a
++ TIOCSERGSTRUCT = 0x5458
++ TIOCSERGWILD = 0x5454
++ TIOCSERSETMULTI = 0x545b
++ TIOCSERSWILD = 0x5455
++ TIOCSER_TEMT = 0x1
++ TIOCSETD = 0x5423
++ TIOCSIG = 0x40045436
++ TIOCSISO7816 = 0xc0285443
++ TIOCSLCKTRMIOS = 0x5457
++ TIOCSPGRP = 0x5410
++ TIOCSPTLCK = 0x40045431
++ TIOCSRS485 = 0x542f
++ TIOCSSERIAL = 0x541f
++ TIOCSSOFTCAR = 0x541a
++ TIOCSTI = 0x5412
++ TIOCSWINSZ = 0x5414
++ TIOCVHANGUP = 0x5437
++ TOSTOP = 0x100
++ TUNATTACHFILTER = 0x400854d5
++ TUNDETACHFILTER = 0x400854d6
++ TUNGETDEVNETNS = 0x54e3
++ TUNGETFEATURES = 0x800454cf
++ TUNGETFILTER = 0x800854db
++ TUNGETIFF = 0x800454d2
++ TUNGETSNDBUF = 0x800454d3
++ TUNGETVNETBE = 0x800454df
++ TUNGETVNETHDRSZ = 0x800454d7
++ TUNGETVNETLE = 0x800454dd
++ TUNSETCARRIER = 0x400454e2
++ TUNSETDEBUG = 0x400454c9
++ TUNSETFILTEREBPF = 0x800454e1
++ TUNSETGROUP = 0x400454ce
++ TUNSETIFF = 0x400454ca
++ TUNSETIFINDEX = 0x400454da
++ TUNSETLINK = 0x400454cd
++ TUNSETNOCSUM = 0x400454c8
++ TUNSETOFFLOAD = 0x400454d0
++ TUNSETOWNER = 0x400454cc
++ TUNSETPERSIST = 0x400454cb
++ TUNSETQUEUE = 0x400454d9
++ TUNSETSNDBUF = 0x400454d4
++ TUNSETSTEERINGEBPF = 0x800454e0
++ TUNSETTXFILTER = 0x400454d1
++ TUNSETVNETBE = 0x400454de
++ TUNSETVNETHDRSZ = 0x400454d8
++ TUNSETVNETLE = 0x400454dc
++ UBI_IOCATT = 0x40186f40
++ UBI_IOCDET = 0x40046f41
++ UBI_IOCEBCH = 0x40044f02
++ UBI_IOCEBER = 0x40044f01
++ UBI_IOCEBISMAP = 0x80044f05
++ UBI_IOCEBMAP = 0x40084f03
++ UBI_IOCEBUNMAP = 0x40044f04
++ UBI_IOCMKVOL = 0x40986f00
++ UBI_IOCRMVOL = 0x40046f01
++ UBI_IOCRNVOL = 0x51106f03
++ UBI_IOCRPEB = 0x40046f04
++ UBI_IOCRSVOL = 0x400c6f02
++ UBI_IOCSETVOLPROP = 0x40104f06
++ UBI_IOCSPEB = 0x40046f05
++ UBI_IOCVOLCRBLK = 0x40804f07
++ UBI_IOCVOLRMBLK = 0x4f08
++ UBI_IOCVOLUP = 0x40084f00
++ VDISCARD = 0xd
++ VEOF = 0x4
++ VEOL = 0xb
++ VEOL2 = 0x10
++ VMIN = 0x6
++ VREPRINT = 0xc
++ VSTART = 0x8
++ VSTOP = 0x9
++ VSUSP = 0xa
++ VSWTC = 0x7
++ VT1 = 0x4000
++ VTDLY = 0x4000
++ VTIME = 0x5
++ VWERASE = 0xe
++ WDIOC_GETBOOTSTATUS = 0x80045702
++ WDIOC_GETPRETIMEOUT = 0x80045709
++ WDIOC_GETSTATUS = 0x80045701
++ WDIOC_GETSUPPORT = 0x80285700
++ WDIOC_GETTEMP = 0x80045703
++ WDIOC_GETTIMELEFT = 0x8004570a
++ WDIOC_GETTIMEOUT = 0x80045707
++ WDIOC_KEEPALIVE = 0x80045705
++ WDIOC_SETOPTIONS = 0x80045704
++ WORDSIZE = 0x20
++ XCASE = 0x4
++ XTABS = 0x1800
+ )
+
+ // Errors
+ const (
+- E2BIG = syscall.Errno(0x7)
+- EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x62)
+ EADDRNOTAVAIL = syscall.Errno(0x63)
+ EADV = syscall.Errno(0x44)
+ EAFNOSUPPORT = syscall.Errno(0x61)
+- EAGAIN = syscall.Errno(0xb)
+ EALREADY = syscall.Errno(0x72)
+ EBADE = syscall.Errno(0x34)
+- EBADF = syscall.Errno(0x9)
+ EBADFD = syscall.Errno(0x4d)
+ EBADMSG = syscall.Errno(0x4a)
+ EBADR = syscall.Errno(0x35)
+ EBADRQC = syscall.Errno(0x38)
+ EBADSLT = syscall.Errno(0x39)
+ EBFONT = syscall.Errno(0x3b)
+- EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x7d)
+- ECHILD = syscall.Errno(0xa)
+ ECHRNG = syscall.Errno(0x2c)
+ ECOMM = syscall.Errno(0x46)
+ ECONNABORTED = syscall.Errno(0x67)
+@@ -1886,23 +506,15 @@ const (
+ EDEADLK = syscall.Errno(0x23)
+ EDEADLOCK = syscall.Errno(0x23)
+ EDESTADDRREQ = syscall.Errno(0x59)
+- EDOM = syscall.Errno(0x21)
+ EDOTDOT = syscall.Errno(0x49)
+ EDQUOT = syscall.Errno(0x7a)
+- EEXIST = syscall.Errno(0x11)
+- EFAULT = syscall.Errno(0xe)
+- EFBIG = syscall.Errno(0x1b)
+ EHOSTDOWN = syscall.Errno(0x70)
+ EHOSTUNREACH = syscall.Errno(0x71)
+ EHWPOISON = syscall.Errno(0x85)
+ EIDRM = syscall.Errno(0x2b)
+ EILSEQ = syscall.Errno(0x54)
+ EINPROGRESS = syscall.Errno(0x73)
+- EINTR = syscall.Errno(0x4)
+- EINVAL = syscall.Errno(0x16)
+- EIO = syscall.Errno(0x5)
+ EISCONN = syscall.Errno(0x6a)
+- EISDIR = syscall.Errno(0x15)
+ EISNAM = syscall.Errno(0x78)
+ EKEYEXPIRED = syscall.Errno(0x7f)
+ EKEYREJECTED = syscall.Errno(0x81)
+@@ -1919,8 +531,6 @@ const (
+ ELNRNG = syscall.Errno(0x30)
+ ELOOP = syscall.Errno(0x28)
+ EMEDIUMTYPE = syscall.Errno(0x7c)
+- EMFILE = syscall.Errno(0x18)
+- EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x5a)
+ EMULTIHOP = syscall.Errno(0x48)
+ ENAMETOOLONG = syscall.Errno(0x24)
+@@ -1928,103 +538,70 @@ const (
+ ENETDOWN = syscall.Errno(0x64)
+ ENETRESET = syscall.Errno(0x66)
+ ENETUNREACH = syscall.Errno(0x65)
+- ENFILE = syscall.Errno(0x17)
+ ENOANO = syscall.Errno(0x37)
+ ENOBUFS = syscall.Errno(0x69)
+ ENOCSI = syscall.Errno(0x32)
+ ENODATA = syscall.Errno(0x3d)
+- ENODEV = syscall.Errno(0x13)
+- ENOENT = syscall.Errno(0x2)
+- ENOEXEC = syscall.Errno(0x8)
+ ENOKEY = syscall.Errno(0x7e)
+ ENOLCK = syscall.Errno(0x25)
+ ENOLINK = syscall.Errno(0x43)
+ ENOMEDIUM = syscall.Errno(0x7b)
+- ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x2a)
+ ENONET = syscall.Errno(0x40)
+ ENOPKG = syscall.Errno(0x41)
+ ENOPROTOOPT = syscall.Errno(0x5c)
+- ENOSPC = syscall.Errno(0x1c)
+ ENOSR = syscall.Errno(0x3f)
+ ENOSTR = syscall.Errno(0x3c)
+ ENOSYS = syscall.Errno(0x26)
+- ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x6b)
+- ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x27)
+ ENOTNAM = syscall.Errno(0x76)
+ ENOTRECOVERABLE = syscall.Errno(0x83)
+ ENOTSOCK = syscall.Errno(0x58)
+ ENOTSUP = syscall.Errno(0x5f)
+- ENOTTY = syscall.Errno(0x19)
+ ENOTUNIQ = syscall.Errno(0x4c)
+- ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x5f)
+ EOVERFLOW = syscall.Errno(0x4b)
+ EOWNERDEAD = syscall.Errno(0x82)
+- EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x60)
+- EPIPE = syscall.Errno(0x20)
+ EPROTO = syscall.Errno(0x47)
+ EPROTONOSUPPORT = syscall.Errno(0x5d)
+ EPROTOTYPE = syscall.Errno(0x5b)
+- ERANGE = syscall.Errno(0x22)
+ EREMCHG = syscall.Errno(0x4e)
+ EREMOTE = syscall.Errno(0x42)
+ EREMOTEIO = syscall.Errno(0x79)
+ ERESTART = syscall.Errno(0x55)
+ ERFKILL = syscall.Errno(0x84)
+- EROFS = syscall.Errno(0x1e)
+ ESHUTDOWN = syscall.Errno(0x6c)
+ ESOCKTNOSUPPORT = syscall.Errno(0x5e)
+- ESPIPE = syscall.Errno(0x1d)
+- ESRCH = syscall.Errno(0x3)
+ ESRMNT = syscall.Errno(0x45)
+ ESTALE = syscall.Errno(0x74)
+ ESTRPIPE = syscall.Errno(0x56)
+ ETIME = syscall.Errno(0x3e)
+ ETIMEDOUT = syscall.Errno(0x6e)
+ ETOOMANYREFS = syscall.Errno(0x6d)
+- ETXTBSY = syscall.Errno(0x1a)
+ EUCLEAN = syscall.Errno(0x75)
+ EUNATCH = syscall.Errno(0x31)
+ EUSERS = syscall.Errno(0x57)
+- EWOULDBLOCK = syscall.Errno(0xb)
+- EXDEV = syscall.Errno(0x12)
+ EXFULL = syscall.Errno(0x36)
+ )
+
+ // Signals
+ const (
+- SIGABRT = syscall.Signal(0x6)
+- SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0x7)
+ SIGCHLD = syscall.Signal(0x11)
+ SIGCLD = syscall.Signal(0x11)
+ SIGCONT = syscall.Signal(0x12)
+- SIGFPE = syscall.Signal(0x8)
+- SIGHUP = syscall.Signal(0x1)
+- SIGILL = syscall.Signal(0x4)
+- SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x1d)
+- SIGIOT = syscall.Signal(0x6)
+- SIGKILL = syscall.Signal(0x9)
+- SIGPIPE = syscall.Signal(0xd)
+ SIGPOLL = syscall.Signal(0x1d)
+ SIGPROF = syscall.Signal(0x1b)
+ SIGPWR = syscall.Signal(0x1e)
+- SIGQUIT = syscall.Signal(0x3)
+- SIGSEGV = syscall.Signal(0xb)
+ SIGSTKFLT = syscall.Signal(0x10)
+ SIGSTOP = syscall.Signal(0x13)
+ SIGSYS = syscall.Signal(0x1f)
+- SIGTERM = syscall.Signal(0xf)
+- SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x14)
+ SIGTTIN = syscall.Signal(0x15)
+ SIGTTOU = syscall.Signal(0x16)
+- SIGUNUSED = syscall.Signal(0x1f)
+ SIGURG = syscall.Signal(0x17)
+ SIGUSR1 = syscall.Signal(0xa)
+ SIGUSR2 = syscall.Signal(0xc)
+@@ -2035,171 +612,179 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "no such device or address",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource temporarily unavailable",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "device or resource busy",
+- 17: "file exists",
+- 18: "invalid cross-device link",
+- 19: "no such device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "numerical result out of range",
+- 35: "resource deadlock avoided",
+- 36: "file name too long",
+- 37: "no locks available",
+- 38: "function not implemented",
+- 39: "directory not empty",
+- 40: "too many levels of symbolic links",
+- 42: "no message of desired type",
+- 43: "identifier removed",
+- 44: "channel number out of range",
+- 45: "level 2 not synchronized",
+- 46: "level 3 halted",
+- 47: "level 3 reset",
+- 48: "link number out of range",
+- 49: "protocol driver not attached",
+- 50: "no CSI structure available",
+- 51: "level 2 halted",
+- 52: "invalid exchange",
+- 53: "invalid request descriptor",
+- 54: "exchange full",
+- 55: "no anode",
+- 56: "invalid request code",
+- 57: "invalid slot",
+- 59: "bad font file format",
+- 60: "device not a stream",
+- 61: "no data available",
+- 62: "timer expired",
+- 63: "out of streams resources",
+- 64: "machine is not on the network",
+- 65: "package not installed",
+- 66: "object is remote",
+- 67: "link has been severed",
+- 68: "advertise error",
+- 69: "srmount error",
+- 70: "communication error on send",
+- 71: "protocol error",
+- 72: "multihop attempted",
+- 73: "RFS specific error",
+- 74: "bad message",
+- 75: "value too large for defined data type",
+- 76: "name not unique on network",
+- 77: "file descriptor in bad state",
+- 78: "remote address changed",
+- 79: "can not access a needed shared library",
+- 80: "accessing a corrupted shared library",
+- 81: ".lib section in a.out corrupted",
+- 82: "attempting to link in too many shared libraries",
+- 83: "cannot exec a shared library directly",
+- 84: "invalid or incomplete multibyte or wide character",
+- 85: "interrupted system call should be restarted",
+- 86: "streams pipe error",
+- 87: "too many users",
+- 88: "socket operation on non-socket",
+- 89: "destination address required",
+- 90: "message too long",
+- 91: "protocol wrong type for socket",
+- 92: "protocol not available",
+- 93: "protocol not supported",
+- 94: "socket type not supported",
+- 95: "operation not supported",
+- 96: "protocol family not supported",
+- 97: "address family not supported by protocol",
+- 98: "address already in use",
+- 99: "cannot assign requested address",
+- 100: "network is down",
+- 101: "network is unreachable",
+- 102: "network dropped connection on reset",
+- 103: "software caused connection abort",
+- 104: "connection reset by peer",
+- 105: "no buffer space available",
+- 106: "transport endpoint is already connected",
+- 107: "transport endpoint is not connected",
+- 108: "cannot send after transport endpoint shutdown",
+- 109: "too many references: cannot splice",
+- 110: "connection timed out",
+- 111: "connection refused",
+- 112: "host is down",
+- 113: "no route to host",
+- 114: "operation already in progress",
+- 115: "operation now in progress",
+- 116: "stale file handle",
+- 117: "structure needs cleaning",
+- 118: "not a XENIX named type file",
+- 119: "no XENIX semaphores available",
+- 120: "is a named type file",
+- 121: "remote I/O error",
+- 122: "disk quota exceeded",
+- 123: "no medium found",
+- 124: "wrong medium type",
+- 125: "operation canceled",
+- 126: "required key not available",
+- 127: "key has expired",
+- 128: "key has been revoked",
+- 129: "key was rejected by service",
+- 130: "owner died",
+- 131: "state not recoverable",
+- 132: "operation not possible due to RF-kill",
+- 133: "memory page has hardware error",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "no such device or address"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EAGAIN", "resource temporarily unavailable"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device or resource busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "invalid cross-device link"},
++ {19, "ENODEV", "no such device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "numerical result out of range"},
++ {35, "EDEADLK", "resource deadlock avoided"},
++ {36, "ENAMETOOLONG", "file name too long"},
++ {37, "ENOLCK", "no locks available"},
++ {38, "ENOSYS", "function not implemented"},
++ {39, "ENOTEMPTY", "directory not empty"},
++ {40, "ELOOP", "too many levels of symbolic links"},
++ {42, "ENOMSG", "no message of desired type"},
++ {43, "EIDRM", "identifier removed"},
++ {44, "ECHRNG", "channel number out of range"},
++ {45, "EL2NSYNC", "level 2 not synchronized"},
++ {46, "EL3HLT", "level 3 halted"},
++ {47, "EL3RST", "level 3 reset"},
++ {48, "ELNRNG", "link number out of range"},
++ {49, "EUNATCH", "protocol driver not attached"},
++ {50, "ENOCSI", "no CSI structure available"},
++ {51, "EL2HLT", "level 2 halted"},
++ {52, "EBADE", "invalid exchange"},
++ {53, "EBADR", "invalid request descriptor"},
++ {54, "EXFULL", "exchange full"},
++ {55, "ENOANO", "no anode"},
++ {56, "EBADRQC", "invalid request code"},
++ {57, "EBADSLT", "invalid slot"},
++ {59, "EBFONT", "bad font file format"},
++ {60, "ENOSTR", "device not a stream"},
++ {61, "ENODATA", "no data available"},
++ {62, "ETIME", "timer expired"},
++ {63, "ENOSR", "out of streams resources"},
++ {64, "ENONET", "machine is not on the network"},
++ {65, "ENOPKG", "package not installed"},
++ {66, "EREMOTE", "object is remote"},
++ {67, "ENOLINK", "link has been severed"},
++ {68, "EADV", "advertise error"},
++ {69, "ESRMNT", "srmount error"},
++ {70, "ECOMM", "communication error on send"},
++ {71, "EPROTO", "protocol error"},
++ {72, "EMULTIHOP", "multihop attempted"},
++ {73, "EDOTDOT", "RFS specific error"},
++ {74, "EBADMSG", "bad message"},
++ {75, "EOVERFLOW", "value too large for defined data type"},
++ {76, "ENOTUNIQ", "name not unique on network"},
++ {77, "EBADFD", "file descriptor in bad state"},
++ {78, "EREMCHG", "remote address changed"},
++ {79, "ELIBACC", "can not access a needed shared library"},
++ {80, "ELIBBAD", "accessing a corrupted shared library"},
++ {81, "ELIBSCN", ".lib section in a.out corrupted"},
++ {82, "ELIBMAX", "attempting to link in too many shared libraries"},
++ {83, "ELIBEXEC", "cannot exec a shared library directly"},
++ {84, "EILSEQ", "invalid or incomplete multibyte or wide character"},
++ {85, "ERESTART", "interrupted system call should be restarted"},
++ {86, "ESTRPIPE", "streams pipe error"},
++ {87, "EUSERS", "too many users"},
++ {88, "ENOTSOCK", "socket operation on non-socket"},
++ {89, "EDESTADDRREQ", "destination address required"},
++ {90, "EMSGSIZE", "message too long"},
++ {91, "EPROTOTYPE", "protocol wrong type for socket"},
++ {92, "ENOPROTOOPT", "protocol not available"},
++ {93, "EPROTONOSUPPORT", "protocol not supported"},
++ {94, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {95, "ENOTSUP", "operation not supported"},
++ {96, "EPFNOSUPPORT", "protocol family not supported"},
++ {97, "EAFNOSUPPORT", "address family not supported by protocol"},
++ {98, "EADDRINUSE", "address already in use"},
++ {99, "EADDRNOTAVAIL", "cannot assign requested address"},
++ {100, "ENETDOWN", "network is down"},
++ {101, "ENETUNREACH", "network is unreachable"},
++ {102, "ENETRESET", "network dropped connection on reset"},
++ {103, "ECONNABORTED", "software caused connection abort"},
++ {104, "ECONNRESET", "connection reset by peer"},
++ {105, "ENOBUFS", "no buffer space available"},
++ {106, "EISCONN", "transport endpoint is already connected"},
++ {107, "ENOTCONN", "transport endpoint is not connected"},
++ {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"},
++ {109, "ETOOMANYREFS", "too many references: cannot splice"},
++ {110, "ETIMEDOUT", "connection timed out"},
++ {111, "ECONNREFUSED", "connection refused"},
++ {112, "EHOSTDOWN", "host is down"},
++ {113, "EHOSTUNREACH", "no route to host"},
++ {114, "EALREADY", "operation already in progress"},
++ {115, "EINPROGRESS", "operation now in progress"},
++ {116, "ESTALE", "stale file handle"},
++ {117, "EUCLEAN", "structure needs cleaning"},
++ {118, "ENOTNAM", "not a XENIX named type file"},
++ {119, "ENAVAIL", "no XENIX semaphores available"},
++ {120, "EISNAM", "is a named type file"},
++ {121, "EREMOTEIO", "remote I/O error"},
++ {122, "EDQUOT", "disk quota exceeded"},
++ {123, "ENOMEDIUM", "no medium found"},
++ {124, "EMEDIUMTYPE", "wrong medium type"},
++ {125, "ECANCELED", "operation canceled"},
++ {126, "ENOKEY", "required key not available"},
++ {127, "EKEYEXPIRED", "key has expired"},
++ {128, "EKEYREVOKED", "key has been revoked"},
++ {129, "EKEYREJECTED", "key was rejected by service"},
++ {130, "EOWNERDEAD", "owner died"},
++ {131, "ENOTRECOVERABLE", "state not recoverable"},
++ {132, "ERFKILL", "operation not possible due to RF-kill"},
++ {133, "EHWPOISON", "memory page has hardware error"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/breakpoint trap",
+- 6: "aborted",
+- 7: "bus error",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "user defined signal 1",
+- 11: "segmentation fault",
+- 12: "user defined signal 2",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "stack fault",
+- 17: "child exited",
+- 18: "continued",
+- 19: "stopped (signal)",
+- 20: "stopped",
+- 21: "stopped (tty input)",
+- 22: "stopped (tty output)",
+- 23: "urgent I/O condition",
+- 24: "CPU time limit exceeded",
+- 25: "file size limit exceeded",
+- 26: "virtual timer expired",
+- 27: "profiling timer expired",
+- 28: "window changed",
+- 29: "I/O possible",
+- 30: "power failure",
+- 31: "bad system call",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/breakpoint trap"},
++ {6, "SIGABRT", "aborted"},
++ {7, "SIGBUS", "bus error"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGUSR1", "user defined signal 1"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGUSR2", "user defined signal 2"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGSTKFLT", "stack fault"},
++ {17, "SIGCHLD", "child exited"},
++ {18, "SIGCONT", "continued"},
++ {19, "SIGSTOP", "stopped (signal)"},
++ {20, "SIGTSTP", "stopped"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGURG", "urgent I/O condition"},
++ {24, "SIGXCPU", "CPU time limit exceeded"},
++ {25, "SIGXFSZ", "file size limit exceeded"},
++ {26, "SIGVTALRM", "virtual timer expired"},
++ {27, "SIGPROF", "profiling timer expired"},
++ {28, "SIGWINCH", "window changed"},
++ {29, "SIGIO", "I/O possible"},
++ {30, "SIGPWR", "power failure"},
++ {31, "SIGSYS", "bad system call"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
+index c0ecd47c..9ee8d1bc 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
+@@ -3,7 +3,7 @@
+
+ // +build arm64,linux
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char _const.go
+
+ package unix
+@@ -11,1858 +11,480 @@ package unix
+ import "syscall"
+
+ const (
+- AF_ALG = 0x26
+- AF_APPLETALK = 0x5
+- AF_ASH = 0x12
+- AF_ATMPVC = 0x8
+- AF_ATMSVC = 0x14
+- AF_AX25 = 0x3
+- AF_BLUETOOTH = 0x1f
+- AF_BRIDGE = 0x7
+- AF_CAIF = 0x25
+- AF_CAN = 0x1d
+- AF_DECnet = 0xc
+- AF_ECONET = 0x13
+- AF_FILE = 0x1
+- AF_IB = 0x1b
+- AF_IEEE802154 = 0x24
+- AF_INET = 0x2
+- AF_INET6 = 0xa
+- AF_IPX = 0x4
+- AF_IRDA = 0x17
+- AF_ISDN = 0x22
+- AF_IUCV = 0x20
+- AF_KCM = 0x29
+- AF_KEY = 0xf
+- AF_LLC = 0x1a
+- AF_LOCAL = 0x1
+- AF_MAX = 0x2b
+- AF_MPLS = 0x1c
+- AF_NETBEUI = 0xd
+- AF_NETLINK = 0x10
+- AF_NETROM = 0x6
+- AF_NFC = 0x27
+- AF_PACKET = 0x11
+- AF_PHONET = 0x23
+- AF_PPPOX = 0x18
+- AF_QIPCRTR = 0x2a
+- AF_RDS = 0x15
+- AF_ROSE = 0xb
+- AF_ROUTE = 0x10
+- AF_RXRPC = 0x21
+- AF_SECURITY = 0xe
+- AF_SNA = 0x16
+- AF_TIPC = 0x1e
+- AF_UNIX = 0x1
+- AF_UNSPEC = 0x0
+- AF_VSOCK = 0x28
+- AF_WANPIPE = 0x19
+- AF_X25 = 0x9
+- ALG_OP_DECRYPT = 0x0
+- ALG_OP_ENCRYPT = 0x1
+- ALG_SET_AEAD_ASSOCLEN = 0x4
+- ALG_SET_AEAD_AUTHSIZE = 0x5
+- ALG_SET_IV = 0x2
+- ALG_SET_KEY = 0x1
+- ALG_SET_OP = 0x3
+- ARPHRD_6LOWPAN = 0x339
+- ARPHRD_ADAPT = 0x108
+- ARPHRD_APPLETLK = 0x8
+- ARPHRD_ARCNET = 0x7
+- ARPHRD_ASH = 0x30d
+- ARPHRD_ATM = 0x13
+- ARPHRD_AX25 = 0x3
+- ARPHRD_BIF = 0x307
+- ARPHRD_CAIF = 0x336
+- ARPHRD_CAN = 0x118
+- ARPHRD_CHAOS = 0x5
+- ARPHRD_CISCO = 0x201
+- ARPHRD_CSLIP = 0x101
+- ARPHRD_CSLIP6 = 0x103
+- ARPHRD_DDCMP = 0x205
+- ARPHRD_DLCI = 0xf
+- ARPHRD_ECONET = 0x30e
+- ARPHRD_EETHER = 0x2
+- ARPHRD_ETHER = 0x1
+- ARPHRD_EUI64 = 0x1b
+- ARPHRD_FCAL = 0x311
+- ARPHRD_FCFABRIC = 0x313
+- ARPHRD_FCPL = 0x312
+- ARPHRD_FCPP = 0x310
+- ARPHRD_FDDI = 0x306
+- ARPHRD_FRAD = 0x302
+- ARPHRD_HDLC = 0x201
+- ARPHRD_HIPPI = 0x30c
+- ARPHRD_HWX25 = 0x110
+- ARPHRD_IEEE1394 = 0x18
+- ARPHRD_IEEE802 = 0x6
+- ARPHRD_IEEE80211 = 0x321
+- ARPHRD_IEEE80211_PRISM = 0x322
+- ARPHRD_IEEE80211_RADIOTAP = 0x323
+- ARPHRD_IEEE802154 = 0x324
+- ARPHRD_IEEE802154_MONITOR = 0x325
+- ARPHRD_IEEE802_TR = 0x320
+- ARPHRD_INFINIBAND = 0x20
+- ARPHRD_IP6GRE = 0x337
+- ARPHRD_IPDDP = 0x309
+- ARPHRD_IPGRE = 0x30a
+- ARPHRD_IRDA = 0x30f
+- ARPHRD_LAPB = 0x204
+- ARPHRD_LOCALTLK = 0x305
+- ARPHRD_LOOPBACK = 0x304
+- ARPHRD_METRICOM = 0x17
+- ARPHRD_NETLINK = 0x338
+- ARPHRD_NETROM = 0x0
+- ARPHRD_NONE = 0xfffe
+- ARPHRD_PHONET = 0x334
+- ARPHRD_PHONET_PIPE = 0x335
+- ARPHRD_PIMREG = 0x30b
+- ARPHRD_PPP = 0x200
+- ARPHRD_PRONET = 0x4
+- ARPHRD_RAWHDLC = 0x206
+- ARPHRD_ROSE = 0x10e
+- ARPHRD_RSRVD = 0x104
+- ARPHRD_SIT = 0x308
+- ARPHRD_SKIP = 0x303
+- ARPHRD_SLIP = 0x100
+- ARPHRD_SLIP6 = 0x102
+- ARPHRD_TUNNEL = 0x300
+- ARPHRD_TUNNEL6 = 0x301
+- ARPHRD_VOID = 0xffff
+- ARPHRD_X25 = 0x10f
+- B0 = 0x0
+- B1000000 = 0x1008
+- B110 = 0x3
+- B115200 = 0x1002
+- B1152000 = 0x1009
+- B1200 = 0x9
+- B134 = 0x4
+- B150 = 0x5
+- B1500000 = 0x100a
+- B1800 = 0xa
+- B19200 = 0xe
+- B200 = 0x6
+- B2000000 = 0x100b
+- B230400 = 0x1003
+- B2400 = 0xb
+- B2500000 = 0x100c
+- B300 = 0x7
+- B3000000 = 0x100d
+- B3500000 = 0x100e
+- B38400 = 0xf
+- B4000000 = 0x100f
+- B460800 = 0x1004
+- B4800 = 0xc
+- B50 = 0x1
+- B500000 = 0x1005
+- B57600 = 0x1001
+- B576000 = 0x1006
+- B600 = 0x8
+- B75 = 0x2
+- B921600 = 0x1007
+- B9600 = 0xd
+- BLKBSZGET = 0x80081270
+- BLKBSZSET = 0x40081271
+- BLKFLSBUF = 0x1261
+- BLKFRAGET = 0x1265
+- BLKFRASET = 0x1264
+- BLKGETSIZE = 0x1260
+- BLKGETSIZE64 = 0x80081272
+- BLKPBSZGET = 0x127b
+- BLKRAGET = 0x1263
+- BLKRASET = 0x1262
+- BLKROGET = 0x125e
+- BLKROSET = 0x125d
+- BLKRRPART = 0x125f
+- BLKSECTGET = 0x1267
+- BLKSECTSET = 0x1266
+- BLKSSZGET = 0x1268
+- BOTHER = 0x1000
+- BPF_A = 0x10
+- BPF_ABS = 0x20
+- BPF_ADD = 0x0
+- BPF_ALU = 0x4
+- BPF_AND = 0x50
+- BPF_B = 0x10
+- BPF_DIV = 0x30
+- BPF_H = 0x8
+- BPF_IMM = 0x0
+- BPF_IND = 0x40
+- BPF_JA = 0x0
+- BPF_JEQ = 0x10
+- BPF_JGE = 0x30
+- BPF_JGT = 0x20
+- BPF_JMP = 0x5
+- BPF_JSET = 0x40
+- BPF_K = 0x0
+- BPF_LD = 0x0
+- BPF_LDX = 0x1
+- BPF_LEN = 0x80
+- BPF_LL_OFF = -0x200000
+- BPF_LSH = 0x60
+- BPF_MAJOR_VERSION = 0x1
+- BPF_MAXINSNS = 0x1000
+- BPF_MEM = 0x60
+- BPF_MEMWORDS = 0x10
+- BPF_MINOR_VERSION = 0x1
+- BPF_MISC = 0x7
+- BPF_MOD = 0x90
+- BPF_MSH = 0xa0
+- BPF_MUL = 0x20
+- BPF_NEG = 0x80
+- BPF_NET_OFF = -0x100000
+- BPF_OR = 0x40
+- BPF_RET = 0x6
+- BPF_RSH = 0x70
+- BPF_ST = 0x2
+- BPF_STX = 0x3
+- BPF_SUB = 0x10
+- BPF_TAX = 0x0
+- BPF_TXA = 0x80
+- BPF_W = 0x0
+- BPF_X = 0x8
+- BPF_XOR = 0xa0
+- BRKINT = 0x2
+- BS0 = 0x0
+- BS1 = 0x2000
+- BSDLY = 0x2000
+- CAN_BCM = 0x2
+- CAN_EFF_FLAG = 0x80000000
+- CAN_EFF_ID_BITS = 0x1d
+- CAN_EFF_MASK = 0x1fffffff
+- CAN_ERR_FLAG = 0x20000000
+- CAN_ERR_MASK = 0x1fffffff
+- CAN_INV_FILTER = 0x20000000
+- CAN_ISOTP = 0x6
+- CAN_MAX_DLC = 0x8
+- CAN_MAX_DLEN = 0x8
+- CAN_MCNET = 0x5
+- CAN_MTU = 0x10
+- CAN_NPROTO = 0x7
+- CAN_RAW = 0x1
+- CAN_RAW_FILTER_MAX = 0x200
+- CAN_RTR_FLAG = 0x40000000
+- CAN_SFF_ID_BITS = 0xb
+- CAN_SFF_MASK = 0x7ff
+- CAN_TP16 = 0x3
+- CAN_TP20 = 0x4
+- CBAUD = 0x100f
+- CBAUDEX = 0x1000
+- CFLUSH = 0xf
+- CIBAUD = 0x100f0000
+- CLOCAL = 0x800
+- CLOCK_BOOTTIME = 0x7
+- CLOCK_BOOTTIME_ALARM = 0x9
+- CLOCK_DEFAULT = 0x0
+- CLOCK_EXT = 0x1
+- CLOCK_INT = 0x2
+- CLOCK_MONOTONIC = 0x1
+- CLOCK_MONOTONIC_COARSE = 0x6
+- CLOCK_MONOTONIC_RAW = 0x4
+- CLOCK_PROCESS_CPUTIME_ID = 0x2
+- CLOCK_REALTIME = 0x0
+- CLOCK_REALTIME_ALARM = 0x8
+- CLOCK_REALTIME_COARSE = 0x5
+- CLOCK_TAI = 0xb
+- CLOCK_THREAD_CPUTIME_ID = 0x3
+- CLOCK_TXFROMRX = 0x4
+- CLOCK_TXINT = 0x3
+- CLONE_CHILD_CLEARTID = 0x200000
+- CLONE_CHILD_SETTID = 0x1000000
+- CLONE_DETACHED = 0x400000
+- CLONE_FILES = 0x400
+- CLONE_FS = 0x200
+- CLONE_IO = 0x80000000
+- CLONE_NEWCGROUP = 0x2000000
+- CLONE_NEWIPC = 0x8000000
+- CLONE_NEWNET = 0x40000000
+- CLONE_NEWNS = 0x20000
+- CLONE_NEWPID = 0x20000000
+- CLONE_NEWUSER = 0x10000000
+- CLONE_NEWUTS = 0x4000000
+- CLONE_PARENT = 0x8000
+- CLONE_PARENT_SETTID = 0x100000
+- CLONE_PTRACE = 0x2000
+- CLONE_SETTLS = 0x80000
+- CLONE_SIGHAND = 0x800
+- CLONE_SYSVSEM = 0x40000
+- CLONE_THREAD = 0x10000
+- CLONE_UNTRACED = 0x800000
+- CLONE_VFORK = 0x4000
+- CLONE_VM = 0x100
+- CMSPAR = 0x40000000
+- CR0 = 0x0
+- CR1 = 0x200
+- CR2 = 0x400
+- CR3 = 0x600
+- CRDLY = 0x600
+- CREAD = 0x80
+- CRTSCTS = 0x80000000
+- CS5 = 0x0
+- CS6 = 0x10
+- CS7 = 0x20
+- CS8 = 0x30
+- CSIGNAL = 0xff
+- CSIZE = 0x30
+- CSTART = 0x11
+- CSTATUS = 0x0
+- CSTOP = 0x13
+- CSTOPB = 0x40
+- CSUSP = 0x1a
+- DT_BLK = 0x6
+- DT_CHR = 0x2
+- DT_DIR = 0x4
+- DT_FIFO = 0x1
+- DT_LNK = 0xa
+- DT_REG = 0x8
+- DT_SOCK = 0xc
+- DT_UNKNOWN = 0x0
+- DT_WHT = 0xe
+- ECHO = 0x8
+- ECHOCTL = 0x200
+- ECHOE = 0x10
+- ECHOK = 0x20
+- ECHOKE = 0x800
+- ECHONL = 0x40
+- ECHOPRT = 0x400
+- EFD_CLOEXEC = 0x80000
+- EFD_NONBLOCK = 0x800
+- EFD_SEMAPHORE = 0x1
+- ENCODING_DEFAULT = 0x0
+- ENCODING_FM_MARK = 0x3
+- ENCODING_FM_SPACE = 0x4
+- ENCODING_MANCHESTER = 0x5
+- ENCODING_NRZ = 0x1
+- ENCODING_NRZI = 0x2
+- EPOLLERR = 0x8
+- EPOLLET = 0x80000000
+- EPOLLEXCLUSIVE = 0x10000000
+- EPOLLHUP = 0x10
+- EPOLLIN = 0x1
+- EPOLLMSG = 0x400
+- EPOLLONESHOT = 0x40000000
+- EPOLLOUT = 0x4
+- EPOLLPRI = 0x2
+- EPOLLRDBAND = 0x80
+- EPOLLRDHUP = 0x2000
+- EPOLLRDNORM = 0x40
+- EPOLLWAKEUP = 0x20000000
+- EPOLLWRBAND = 0x200
+- EPOLLWRNORM = 0x100
+- EPOLL_CLOEXEC = 0x80000
+- EPOLL_CTL_ADD = 0x1
+- EPOLL_CTL_DEL = 0x2
+- EPOLL_CTL_MOD = 0x3
+- ESR_MAGIC = 0x45535201
+- ETH_P_1588 = 0x88f7
+- ETH_P_8021AD = 0x88a8
+- ETH_P_8021AH = 0x88e7
+- ETH_P_8021Q = 0x8100
+- ETH_P_80221 = 0x8917
+- ETH_P_802_2 = 0x4
+- ETH_P_802_3 = 0x1
+- ETH_P_802_3_MIN = 0x600
+- ETH_P_802_EX1 = 0x88b5
+- ETH_P_AARP = 0x80f3
+- ETH_P_AF_IUCV = 0xfbfb
+- ETH_P_ALL = 0x3
+- ETH_P_AOE = 0x88a2
+- ETH_P_ARCNET = 0x1a
+- ETH_P_ARP = 0x806
+- ETH_P_ATALK = 0x809b
+- ETH_P_ATMFATE = 0x8884
+- ETH_P_ATMMPOA = 0x884c
+- ETH_P_AX25 = 0x2
+- ETH_P_BATMAN = 0x4305
+- ETH_P_BPQ = 0x8ff
+- ETH_P_CAIF = 0xf7
+- ETH_P_CAN = 0xc
+- ETH_P_CANFD = 0xd
+- ETH_P_CONTROL = 0x16
+- ETH_P_CUST = 0x6006
+- ETH_P_DDCMP = 0x6
+- ETH_P_DEC = 0x6000
+- ETH_P_DIAG = 0x6005
+- ETH_P_DNA_DL = 0x6001
+- ETH_P_DNA_RC = 0x6002
+- ETH_P_DNA_RT = 0x6003
+- ETH_P_DSA = 0x1b
+- ETH_P_ECONET = 0x18
+- ETH_P_EDSA = 0xdada
+- ETH_P_FCOE = 0x8906
+- ETH_P_FIP = 0x8914
+- ETH_P_HDLC = 0x19
+- ETH_P_HSR = 0x892f
+- ETH_P_IEEE802154 = 0xf6
+- ETH_P_IEEEPUP = 0xa00
+- ETH_P_IEEEPUPAT = 0xa01
+- ETH_P_IP = 0x800
+- ETH_P_IPV6 = 0x86dd
+- ETH_P_IPX = 0x8137
+- ETH_P_IRDA = 0x17
+- ETH_P_LAT = 0x6004
+- ETH_P_LINK_CTL = 0x886c
+- ETH_P_LOCALTALK = 0x9
+- ETH_P_LOOP = 0x60
+- ETH_P_LOOPBACK = 0x9000
+- ETH_P_MACSEC = 0x88e5
+- ETH_P_MOBITEX = 0x15
+- ETH_P_MPLS_MC = 0x8848
+- ETH_P_MPLS_UC = 0x8847
+- ETH_P_MVRP = 0x88f5
+- ETH_P_NCSI = 0x88f8
+- ETH_P_PAE = 0x888e
+- ETH_P_PAUSE = 0x8808
+- ETH_P_PHONET = 0xf5
+- ETH_P_PPPTALK = 0x10
+- ETH_P_PPP_DISC = 0x8863
+- ETH_P_PPP_MP = 0x8
+- ETH_P_PPP_SES = 0x8864
+- ETH_P_PRP = 0x88fb
+- ETH_P_PUP = 0x200
+- ETH_P_PUPAT = 0x201
+- ETH_P_QINQ1 = 0x9100
+- ETH_P_QINQ2 = 0x9200
+- ETH_P_QINQ3 = 0x9300
+- ETH_P_RARP = 0x8035
+- ETH_P_SCA = 0x6007
+- ETH_P_SLOW = 0x8809
+- ETH_P_SNAP = 0x5
+- ETH_P_TDLS = 0x890d
+- ETH_P_TEB = 0x6558
+- ETH_P_TIPC = 0x88ca
+- ETH_P_TRAILER = 0x1c
+- ETH_P_TR_802_2 = 0x11
+- ETH_P_TSN = 0x22f0
+- ETH_P_WAN_PPP = 0x7
+- ETH_P_WCCP = 0x883e
+- ETH_P_X25 = 0x805
+- ETH_P_XDSA = 0xf8
+- EXTA = 0xe
+- EXTB = 0xf
+- EXTPROC = 0x10000
+- FALLOC_FL_COLLAPSE_RANGE = 0x8
+- FALLOC_FL_INSERT_RANGE = 0x20
+- FALLOC_FL_KEEP_SIZE = 0x1
+- FALLOC_FL_NO_HIDE_STALE = 0x4
+- FALLOC_FL_PUNCH_HOLE = 0x2
+- FALLOC_FL_UNSHARE_RANGE = 0x40
+- FALLOC_FL_ZERO_RANGE = 0x10
+- FD_CLOEXEC = 0x1
+- FD_SETSIZE = 0x400
+- FF0 = 0x0
+- FF1 = 0x8000
+- FFDLY = 0x8000
+- FLUSHO = 0x1000
+- FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
+- FS_ENCRYPTION_MODE_AES_256_CTS = 0x4
+- FS_ENCRYPTION_MODE_AES_256_GCM = 0x2
+- FS_ENCRYPTION_MODE_AES_256_XTS = 0x1
+- FS_ENCRYPTION_MODE_INVALID = 0x0
+- FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615
+- FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614
+- FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613
+- FS_KEY_DESCRIPTOR_SIZE = 0x8
+- FS_KEY_DESC_PREFIX = "fscrypt:"
+- FS_KEY_DESC_PREFIX_SIZE = 0x8
+- FS_MAX_KEY_SIZE = 0x40
+- FS_POLICY_FLAGS_PAD_16 = 0x2
+- FS_POLICY_FLAGS_PAD_32 = 0x3
+- FS_POLICY_FLAGS_PAD_4 = 0x0
+- FS_POLICY_FLAGS_PAD_8 = 0x1
+- FS_POLICY_FLAGS_PAD_MASK = 0x3
+- FS_POLICY_FLAGS_VALID = 0x3
+- F_DUPFD = 0x0
+- F_DUPFD_CLOEXEC = 0x406
+- F_EXLCK = 0x4
+- F_GETFD = 0x1
+- F_GETFL = 0x3
+- F_GETLEASE = 0x401
+- F_GETLK = 0x5
+- F_GETLK64 = 0x5
+- F_GETOWN = 0x9
+- F_GETOWN_EX = 0x10
+- F_GETPIPE_SZ = 0x408
+- F_GETSIG = 0xb
+- F_LOCK = 0x1
+- F_NOTIFY = 0x402
+- F_OFD_GETLK = 0x24
+- F_OFD_SETLK = 0x25
+- F_OFD_SETLKW = 0x26
+- F_OK = 0x0
+- F_RDLCK = 0x0
+- F_SETFD = 0x2
+- F_SETFL = 0x4
+- F_SETLEASE = 0x400
+- F_SETLK = 0x6
+- F_SETLK64 = 0x6
+- F_SETLKW = 0x7
+- F_SETLKW64 = 0x7
+- F_SETOWN = 0x8
+- F_SETOWN_EX = 0xf
+- F_SETPIPE_SZ = 0x407
+- F_SETSIG = 0xa
+- F_SHLCK = 0x8
+- F_TEST = 0x3
+- F_TLOCK = 0x2
+- F_ULOCK = 0x0
+- F_UNLCK = 0x2
+- F_WRLCK = 0x1
+- GENL_ADMIN_PERM = 0x1
+- GENL_CMD_CAP_DO = 0x2
+- GENL_CMD_CAP_DUMP = 0x4
+- GENL_CMD_CAP_HASPOL = 0x8
+- GENL_HDRLEN = 0x4
+- GENL_ID_CTRL = 0x10
+- GENL_ID_PMCRAID = 0x12
+- GENL_ID_VFS_DQUOT = 0x11
+- GENL_MAX_ID = 0x3ff
+- GENL_MIN_ID = 0x10
+- GENL_NAMSIZ = 0x10
+- GENL_START_ALLOC = 0x13
+- GENL_UNS_ADMIN_PERM = 0x10
+- GRND_NONBLOCK = 0x1
+- GRND_RANDOM = 0x2
+- HUPCL = 0x400
+- IBSHIFT = 0x10
+- ICANON = 0x2
+- ICMPV6_FILTER = 0x1
+- ICRNL = 0x100
+- IEXTEN = 0x8000
+- IFA_F_DADFAILED = 0x8
+- IFA_F_DEPRECATED = 0x20
+- IFA_F_HOMEADDRESS = 0x10
+- IFA_F_MANAGETEMPADDR = 0x100
+- IFA_F_MCAUTOJOIN = 0x400
+- IFA_F_NODAD = 0x2
+- IFA_F_NOPREFIXROUTE = 0x200
+- IFA_F_OPTIMISTIC = 0x4
+- IFA_F_PERMANENT = 0x80
+- IFA_F_SECONDARY = 0x1
+- IFA_F_STABLE_PRIVACY = 0x800
+- IFA_F_TEMPORARY = 0x1
+- IFA_F_TENTATIVE = 0x40
+- IFA_MAX = 0x8
+- IFF_ALLMULTI = 0x200
+- IFF_ATTACH_QUEUE = 0x200
+- IFF_AUTOMEDIA = 0x4000
+- IFF_BROADCAST = 0x2
+- IFF_DEBUG = 0x4
+- IFF_DETACH_QUEUE = 0x400
+- IFF_DORMANT = 0x20000
+- IFF_DYNAMIC = 0x8000
+- IFF_ECHO = 0x40000
+- IFF_LOOPBACK = 0x8
+- IFF_LOWER_UP = 0x10000
+- IFF_MASTER = 0x400
+- IFF_MULTICAST = 0x1000
+- IFF_MULTI_QUEUE = 0x100
+- IFF_NOARP = 0x80
+- IFF_NOFILTER = 0x1000
+- IFF_NOTRAILERS = 0x20
+- IFF_NO_PI = 0x1000
+- IFF_ONE_QUEUE = 0x2000
+- IFF_PERSIST = 0x800
+- IFF_POINTOPOINT = 0x10
+- IFF_PORTSEL = 0x2000
+- IFF_PROMISC = 0x100
+- IFF_RUNNING = 0x40
+- IFF_SLAVE = 0x800
+- IFF_TAP = 0x2
+- IFF_TUN = 0x1
+- IFF_TUN_EXCL = 0x8000
+- IFF_UP = 0x1
+- IFF_VNET_HDR = 0x4000
+- IFF_VOLATILE = 0x70c5a
+- IFNAMSIZ = 0x10
+- IGNBRK = 0x1
+- IGNCR = 0x80
+- IGNPAR = 0x4
+- IMAXBEL = 0x2000
+- INLCR = 0x40
+- INPCK = 0x10
+- IN_ACCESS = 0x1
+- IN_ALL_EVENTS = 0xfff
+- IN_ATTRIB = 0x4
+- IN_CLASSA_HOST = 0xffffff
+- IN_CLASSA_MAX = 0x80
+- IN_CLASSA_NET = 0xff000000
+- IN_CLASSA_NSHIFT = 0x18
+- IN_CLASSB_HOST = 0xffff
+- IN_CLASSB_MAX = 0x10000
+- IN_CLASSB_NET = 0xffff0000
+- IN_CLASSB_NSHIFT = 0x10
+- IN_CLASSC_HOST = 0xff
+- IN_CLASSC_NET = 0xffffff00
+- IN_CLASSC_NSHIFT = 0x8
+- IN_CLOEXEC = 0x80000
+- IN_CLOSE = 0x18
+- IN_CLOSE_NOWRITE = 0x10
+- IN_CLOSE_WRITE = 0x8
+- IN_CREATE = 0x100
+- IN_DELETE = 0x200
+- IN_DELETE_SELF = 0x400
+- IN_DONT_FOLLOW = 0x2000000
+- IN_EXCL_UNLINK = 0x4000000
+- IN_IGNORED = 0x8000
+- IN_ISDIR = 0x40000000
+- IN_LOOPBACKNET = 0x7f
+- IN_MASK_ADD = 0x20000000
+- IN_MODIFY = 0x2
+- IN_MOVE = 0xc0
+- IN_MOVED_FROM = 0x40
+- IN_MOVED_TO = 0x80
+- IN_MOVE_SELF = 0x800
+- IN_NONBLOCK = 0x800
+- IN_ONESHOT = 0x80000000
+- IN_ONLYDIR = 0x1000000
+- IN_OPEN = 0x20
+- IN_Q_OVERFLOW = 0x4000
+- IN_UNMOUNT = 0x2000
+- IPPROTO_AH = 0x33
+- IPPROTO_BEETPH = 0x5e
+- IPPROTO_COMP = 0x6c
+- IPPROTO_DCCP = 0x21
+- IPPROTO_DSTOPTS = 0x3c
+- IPPROTO_EGP = 0x8
+- IPPROTO_ENCAP = 0x62
+- IPPROTO_ESP = 0x32
+- IPPROTO_FRAGMENT = 0x2c
+- IPPROTO_GRE = 0x2f
+- IPPROTO_HOPOPTS = 0x0
+- IPPROTO_ICMP = 0x1
+- IPPROTO_ICMPV6 = 0x3a
+- IPPROTO_IDP = 0x16
+- IPPROTO_IGMP = 0x2
+- IPPROTO_IP = 0x0
+- IPPROTO_IPIP = 0x4
+- IPPROTO_IPV6 = 0x29
+- IPPROTO_MH = 0x87
+- IPPROTO_MPLS = 0x89
+- IPPROTO_MTP = 0x5c
+- IPPROTO_NONE = 0x3b
+- IPPROTO_PIM = 0x67
+- IPPROTO_PUP = 0xc
+- IPPROTO_RAW = 0xff
+- IPPROTO_ROUTING = 0x2b
+- IPPROTO_RSVP = 0x2e
+- IPPROTO_SCTP = 0x84
+- IPPROTO_TCP = 0x6
+- IPPROTO_TP = 0x1d
+- IPPROTO_UDP = 0x11
+- IPPROTO_UDPLITE = 0x88
+- IPV6_2292DSTOPTS = 0x4
+- IPV6_2292HOPLIMIT = 0x8
+- IPV6_2292HOPOPTS = 0x3
+- IPV6_2292PKTINFO = 0x2
+- IPV6_2292PKTOPTIONS = 0x6
+- IPV6_2292RTHDR = 0x5
+- IPV6_ADDRFORM = 0x1
+- IPV6_ADD_MEMBERSHIP = 0x14
+- IPV6_AUTHHDR = 0xa
+- IPV6_CHECKSUM = 0x7
+- IPV6_DONTFRAG = 0x3e
+- IPV6_DROP_MEMBERSHIP = 0x15
+- IPV6_DSTOPTS = 0x3b
+- IPV6_HDRINCL = 0x24
+- IPV6_HOPLIMIT = 0x34
+- IPV6_HOPOPTS = 0x36
+- IPV6_IPSEC_POLICY = 0x22
+- IPV6_JOIN_ANYCAST = 0x1b
+- IPV6_JOIN_GROUP = 0x14
+- IPV6_LEAVE_ANYCAST = 0x1c
+- IPV6_LEAVE_GROUP = 0x15
+- IPV6_MTU = 0x18
+- IPV6_MTU_DISCOVER = 0x17
+- IPV6_MULTICAST_HOPS = 0x12
+- IPV6_MULTICAST_IF = 0x11
+- IPV6_MULTICAST_LOOP = 0x13
+- IPV6_NEXTHOP = 0x9
+- IPV6_PATHMTU = 0x3d
+- IPV6_PKTINFO = 0x32
+- IPV6_PMTUDISC_DO = 0x2
+- IPV6_PMTUDISC_DONT = 0x0
+- IPV6_PMTUDISC_INTERFACE = 0x4
+- IPV6_PMTUDISC_OMIT = 0x5
+- IPV6_PMTUDISC_PROBE = 0x3
+- IPV6_PMTUDISC_WANT = 0x1
+- IPV6_RECVDSTOPTS = 0x3a
+- IPV6_RECVERR = 0x19
+- IPV6_RECVHOPLIMIT = 0x33
+- IPV6_RECVHOPOPTS = 0x35
+- IPV6_RECVPATHMTU = 0x3c
+- IPV6_RECVPKTINFO = 0x31
+- IPV6_RECVRTHDR = 0x38
+- IPV6_RECVTCLASS = 0x42
+- IPV6_ROUTER_ALERT = 0x16
+- IPV6_RTHDR = 0x39
+- IPV6_RTHDRDSTOPTS = 0x37
+- IPV6_RTHDR_LOOSE = 0x0
+- IPV6_RTHDR_STRICT = 0x1
+- IPV6_RTHDR_TYPE_0 = 0x0
+- IPV6_RXDSTOPTS = 0x3b
+- IPV6_RXHOPOPTS = 0x36
+- IPV6_TCLASS = 0x43
+- IPV6_UNICAST_HOPS = 0x10
+- IPV6_V6ONLY = 0x1a
+- IPV6_XFRM_POLICY = 0x23
+- IP_ADD_MEMBERSHIP = 0x23
+- IP_ADD_SOURCE_MEMBERSHIP = 0x27
+- IP_BIND_ADDRESS_NO_PORT = 0x18
+- IP_BLOCK_SOURCE = 0x26
+- IP_CHECKSUM = 0x17
+- IP_DEFAULT_MULTICAST_LOOP = 0x1
+- IP_DEFAULT_MULTICAST_TTL = 0x1
+- IP_DF = 0x4000
+- IP_DROP_MEMBERSHIP = 0x24
+- IP_DROP_SOURCE_MEMBERSHIP = 0x28
+- IP_FREEBIND = 0xf
+- IP_HDRINCL = 0x3
+- IP_IPSEC_POLICY = 0x10
+- IP_MAXPACKET = 0xffff
+- IP_MAX_MEMBERSHIPS = 0x14
+- IP_MF = 0x2000
+- IP_MINTTL = 0x15
+- IP_MSFILTER = 0x29
+- IP_MSS = 0x240
+- IP_MTU = 0xe
+- IP_MTU_DISCOVER = 0xa
+- IP_MULTICAST_ALL = 0x31
+- IP_MULTICAST_IF = 0x20
+- IP_MULTICAST_LOOP = 0x22
+- IP_MULTICAST_TTL = 0x21
+- IP_NODEFRAG = 0x16
+- IP_OFFMASK = 0x1fff
+- IP_OPTIONS = 0x4
+- IP_ORIGDSTADDR = 0x14
+- IP_PASSSEC = 0x12
+- IP_PKTINFO = 0x8
+- IP_PKTOPTIONS = 0x9
+- IP_PMTUDISC = 0xa
+- IP_PMTUDISC_DO = 0x2
+- IP_PMTUDISC_DONT = 0x0
+- IP_PMTUDISC_INTERFACE = 0x4
+- IP_PMTUDISC_OMIT = 0x5
+- IP_PMTUDISC_PROBE = 0x3
+- IP_PMTUDISC_WANT = 0x1
+- IP_RECVERR = 0xb
+- IP_RECVOPTS = 0x6
+- IP_RECVORIGDSTADDR = 0x14
+- IP_RECVRETOPTS = 0x7
+- IP_RECVTOS = 0xd
+- IP_RECVTTL = 0xc
+- IP_RETOPTS = 0x7
+- IP_RF = 0x8000
+- IP_ROUTER_ALERT = 0x5
+- IP_TOS = 0x1
+- IP_TRANSPARENT = 0x13
+- IP_TTL = 0x2
+- IP_UNBLOCK_SOURCE = 0x25
+- IP_UNICAST_IF = 0x32
+- IP_XFRM_POLICY = 0x11
+- ISIG = 0x1
+- ISTRIP = 0x20
+- IUCLC = 0x200
+- IUTF8 = 0x4000
+- IXANY = 0x800
+- IXOFF = 0x1000
+- IXON = 0x400
+- KEYCTL_ASSUME_AUTHORITY = 0x10
+- KEYCTL_CHOWN = 0x4
+- KEYCTL_CLEAR = 0x7
+- KEYCTL_DESCRIBE = 0x6
+- KEYCTL_DH_COMPUTE = 0x17
+- KEYCTL_GET_KEYRING_ID = 0x0
+- KEYCTL_GET_PERSISTENT = 0x16
+- KEYCTL_GET_SECURITY = 0x11
+- KEYCTL_INSTANTIATE = 0xc
+- KEYCTL_INSTANTIATE_IOV = 0x14
+- KEYCTL_INVALIDATE = 0x15
+- KEYCTL_JOIN_SESSION_KEYRING = 0x1
+- KEYCTL_LINK = 0x8
+- KEYCTL_NEGATE = 0xd
+- KEYCTL_READ = 0xb
+- KEYCTL_REJECT = 0x13
+- KEYCTL_REVOKE = 0x3
+- KEYCTL_SEARCH = 0xa
+- KEYCTL_SESSION_TO_PARENT = 0x12
+- KEYCTL_SETPERM = 0x5
+- KEYCTL_SET_REQKEY_KEYRING = 0xe
+- KEYCTL_SET_TIMEOUT = 0xf
+- KEYCTL_UNLINK = 0x9
+- KEYCTL_UPDATE = 0x2
+- KEY_REQKEY_DEFL_DEFAULT = 0x0
+- KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6
+- KEY_REQKEY_DEFL_NO_CHANGE = -0x1
+- KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2
+- KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7
+- KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3
+- KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1
+- KEY_REQKEY_DEFL_USER_KEYRING = 0x4
+- KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
+- KEY_SPEC_GROUP_KEYRING = -0x6
+- KEY_SPEC_PROCESS_KEYRING = -0x2
+- KEY_SPEC_REQKEY_AUTH_KEY = -0x7
+- KEY_SPEC_REQUESTOR_KEYRING = -0x8
+- KEY_SPEC_SESSION_KEYRING = -0x3
+- KEY_SPEC_THREAD_KEYRING = -0x1
+- KEY_SPEC_USER_KEYRING = -0x4
+- KEY_SPEC_USER_SESSION_KEYRING = -0x5
+- LINUX_REBOOT_CMD_CAD_OFF = 0x0
+- LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
+- LINUX_REBOOT_CMD_HALT = 0xcdef0123
+- LINUX_REBOOT_CMD_KEXEC = 0x45584543
+- LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
+- LINUX_REBOOT_CMD_RESTART = 0x1234567
+- LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
+- LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
+- LINUX_REBOOT_MAGIC1 = 0xfee1dead
+- LINUX_REBOOT_MAGIC2 = 0x28121969
+- LOCK_EX = 0x2
+- LOCK_NB = 0x4
+- LOCK_SH = 0x1
+- LOCK_UN = 0x8
+- MADV_DODUMP = 0x11
+- MADV_DOFORK = 0xb
+- MADV_DONTDUMP = 0x10
+- MADV_DONTFORK = 0xa
+- MADV_DONTNEED = 0x4
+- MADV_FREE = 0x8
+- MADV_HUGEPAGE = 0xe
+- MADV_HWPOISON = 0x64
+- MADV_MERGEABLE = 0xc
+- MADV_NOHUGEPAGE = 0xf
+- MADV_NORMAL = 0x0
+- MADV_RANDOM = 0x1
+- MADV_REMOVE = 0x9
+- MADV_SEQUENTIAL = 0x2
+- MADV_UNMERGEABLE = 0xd
+- MADV_WILLNEED = 0x3
+- MAP_ANON = 0x20
+- MAP_ANONYMOUS = 0x20
+- MAP_DENYWRITE = 0x800
+- MAP_EXECUTABLE = 0x1000
+- MAP_FILE = 0x0
+- MAP_FIXED = 0x10
+- MAP_GROWSDOWN = 0x100
+- MAP_HUGETLB = 0x40000
+- MAP_HUGE_MASK = 0x3f
+- MAP_HUGE_SHIFT = 0x1a
+- MAP_LOCKED = 0x2000
+- MAP_NONBLOCK = 0x10000
+- MAP_NORESERVE = 0x4000
+- MAP_POPULATE = 0x8000
+- MAP_PRIVATE = 0x2
+- MAP_SHARED = 0x1
+- MAP_STACK = 0x20000
+- MAP_TYPE = 0xf
+- MCL_CURRENT = 0x1
+- MCL_FUTURE = 0x2
+- MCL_ONFAULT = 0x4
+- MNT_DETACH = 0x2
+- MNT_EXPIRE = 0x4
+- MNT_FORCE = 0x1
+- MSG_BATCH = 0x40000
+- MSG_CMSG_CLOEXEC = 0x40000000
+- MSG_CONFIRM = 0x800
+- MSG_CTRUNC = 0x8
+- MSG_DONTROUTE = 0x4
+- MSG_DONTWAIT = 0x40
+- MSG_EOR = 0x80
+- MSG_ERRQUEUE = 0x2000
+- MSG_FASTOPEN = 0x20000000
+- MSG_FIN = 0x200
+- MSG_MORE = 0x8000
+- MSG_NOSIGNAL = 0x4000
+- MSG_OOB = 0x1
+- MSG_PEEK = 0x2
+- MSG_PROXY = 0x10
+- MSG_RST = 0x1000
+- MSG_SYN = 0x400
+- MSG_TRUNC = 0x20
+- MSG_TRYHARD = 0x4
+- MSG_WAITALL = 0x100
+- MSG_WAITFORONE = 0x10000
+- MS_ACTIVE = 0x40000000
+- MS_ASYNC = 0x1
+- MS_BIND = 0x1000
+- MS_BORN = 0x20000000
+- MS_DIRSYNC = 0x80
+- MS_INVALIDATE = 0x2
+- MS_I_VERSION = 0x800000
+- MS_KERNMOUNT = 0x400000
+- MS_LAZYTIME = 0x2000000
+- MS_MANDLOCK = 0x40
+- MS_MGC_MSK = 0xffff0000
+- MS_MGC_VAL = 0xc0ed0000
+- MS_MOVE = 0x2000
+- MS_NOATIME = 0x400
+- MS_NODEV = 0x4
+- MS_NODIRATIME = 0x800
+- MS_NOEXEC = 0x8
+- MS_NOREMOTELOCK = 0x8000000
+- MS_NOSEC = 0x10000000
+- MS_NOSUID = 0x2
+- MS_NOUSER = -0x80000000
+- MS_POSIXACL = 0x10000
+- MS_PRIVATE = 0x40000
+- MS_RDONLY = 0x1
+- MS_REC = 0x4000
+- MS_RELATIME = 0x200000
+- MS_REMOUNT = 0x20
+- MS_RMT_MASK = 0x2800051
+- MS_SHARED = 0x100000
+- MS_SILENT = 0x8000
+- MS_SLAVE = 0x80000
+- MS_STRICTATIME = 0x1000000
+- MS_SYNC = 0x4
+- MS_SYNCHRONOUS = 0x10
+- MS_UNBINDABLE = 0x20000
+- MS_VERBOSE = 0x8000
+- NAME_MAX = 0xff
+- NETLINK_ADD_MEMBERSHIP = 0x1
+- NETLINK_AUDIT = 0x9
+- NETLINK_BROADCAST_ERROR = 0x4
+- NETLINK_CAP_ACK = 0xa
+- NETLINK_CONNECTOR = 0xb
+- NETLINK_CRYPTO = 0x15
+- NETLINK_DNRTMSG = 0xe
+- NETLINK_DROP_MEMBERSHIP = 0x2
+- NETLINK_ECRYPTFS = 0x13
+- NETLINK_FIB_LOOKUP = 0xa
+- NETLINK_FIREWALL = 0x3
+- NETLINK_GENERIC = 0x10
+- NETLINK_INET_DIAG = 0x4
+- NETLINK_IP6_FW = 0xd
+- NETLINK_ISCSI = 0x8
+- NETLINK_KOBJECT_UEVENT = 0xf
+- NETLINK_LISTEN_ALL_NSID = 0x8
+- NETLINK_LIST_MEMBERSHIPS = 0x9
+- NETLINK_NETFILTER = 0xc
+- NETLINK_NFLOG = 0x5
+- NETLINK_NO_ENOBUFS = 0x5
+- NETLINK_PKTINFO = 0x3
+- NETLINK_RDMA = 0x14
+- NETLINK_ROUTE = 0x0
+- NETLINK_RX_RING = 0x6
+- NETLINK_SCSITRANSPORT = 0x12
+- NETLINK_SELINUX = 0x7
+- NETLINK_SOCK_DIAG = 0x4
+- NETLINK_TX_RING = 0x7
+- NETLINK_UNUSED = 0x1
+- NETLINK_USERSOCK = 0x2
+- NETLINK_XFRM = 0x6
+- NL0 = 0x0
+- NL1 = 0x100
+- NLA_ALIGNTO = 0x4
+- NLA_F_NESTED = 0x8000
+- NLA_F_NET_BYTEORDER = 0x4000
+- NLA_HDRLEN = 0x4
+- NLDLY = 0x100
+- NLMSG_ALIGNTO = 0x4
+- NLMSG_DONE = 0x3
+- NLMSG_ERROR = 0x2
+- NLMSG_HDRLEN = 0x10
+- NLMSG_MIN_TYPE = 0x10
+- NLMSG_NOOP = 0x1
+- NLMSG_OVERRUN = 0x4
+- NLM_F_ACK = 0x4
+- NLM_F_APPEND = 0x800
+- NLM_F_ATOMIC = 0x400
+- NLM_F_CREATE = 0x400
+- NLM_F_DUMP = 0x300
+- NLM_F_DUMP_FILTERED = 0x20
+- NLM_F_DUMP_INTR = 0x10
+- NLM_F_ECHO = 0x8
+- NLM_F_EXCL = 0x200
+- NLM_F_MATCH = 0x200
+- NLM_F_MULTI = 0x2
+- NLM_F_REPLACE = 0x100
+- NLM_F_REQUEST = 0x1
+- NLM_F_ROOT = 0x100
+- NOFLSH = 0x80
+- OCRNL = 0x8
+- OFDEL = 0x80
+- OFILL = 0x40
+- OLCUC = 0x2
+- ONLCR = 0x4
+- ONLRET = 0x20
+- ONOCR = 0x10
+- OPOST = 0x1
+- O_ACCMODE = 0x3
+- O_APPEND = 0x400
+- O_ASYNC = 0x2000
+- O_CLOEXEC = 0x80000
+- O_CREAT = 0x40
+- O_DIRECT = 0x10000
+- O_DIRECTORY = 0x4000
+- O_DSYNC = 0x1000
+- O_EXCL = 0x80
+- O_FSYNC = 0x101000
+- O_LARGEFILE = 0x0
+- O_NDELAY = 0x800
+- O_NOATIME = 0x40000
+- O_NOCTTY = 0x100
+- O_NOFOLLOW = 0x8000
+- O_NONBLOCK = 0x800
+- O_PATH = 0x200000
+- O_RDONLY = 0x0
+- O_RDWR = 0x2
+- O_RSYNC = 0x101000
+- O_SYNC = 0x101000
+- O_TMPFILE = 0x404000
+- O_TRUNC = 0x200
+- O_WRONLY = 0x1
+- PACKET_ADD_MEMBERSHIP = 0x1
+- PACKET_AUXDATA = 0x8
+- PACKET_BROADCAST = 0x1
+- PACKET_COPY_THRESH = 0x7
+- PACKET_DROP_MEMBERSHIP = 0x2
+- PACKET_FANOUT = 0x12
+- PACKET_FANOUT_CBPF = 0x6
+- PACKET_FANOUT_CPU = 0x2
+- PACKET_FANOUT_DATA = 0x16
+- PACKET_FANOUT_EBPF = 0x7
+- PACKET_FANOUT_FLAG_DEFRAG = 0x8000
+- PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
+- PACKET_FANOUT_HASH = 0x0
+- PACKET_FANOUT_LB = 0x1
+- PACKET_FANOUT_QM = 0x5
+- PACKET_FANOUT_RND = 0x4
+- PACKET_FANOUT_ROLLOVER = 0x3
+- PACKET_FASTROUTE = 0x6
+- PACKET_HDRLEN = 0xb
+- PACKET_HOST = 0x0
+- PACKET_KERNEL = 0x7
+- PACKET_LOOPBACK = 0x5
+- PACKET_LOSS = 0xe
+- PACKET_MR_ALLMULTI = 0x2
+- PACKET_MR_MULTICAST = 0x0
+- PACKET_MR_PROMISC = 0x1
+- PACKET_MR_UNICAST = 0x3
+- PACKET_MULTICAST = 0x2
+- PACKET_ORIGDEV = 0x9
+- PACKET_OTHERHOST = 0x3
+- PACKET_OUTGOING = 0x4
+- PACKET_QDISC_BYPASS = 0x14
+- PACKET_RECV_OUTPUT = 0x3
+- PACKET_RESERVE = 0xc
+- PACKET_ROLLOVER_STATS = 0x15
+- PACKET_RX_RING = 0x5
+- PACKET_STATISTICS = 0x6
+- PACKET_TIMESTAMP = 0x11
+- PACKET_TX_HAS_OFF = 0x13
+- PACKET_TX_RING = 0xd
+- PACKET_TX_TIMESTAMP = 0x10
+- PACKET_USER = 0x6
+- PACKET_VERSION = 0xa
+- PACKET_VNET_HDR = 0xf
+- PARENB = 0x100
+- PARITY_CRC16_PR0 = 0x2
+- PARITY_CRC16_PR0_CCITT = 0x4
+- PARITY_CRC16_PR1 = 0x3
+- PARITY_CRC16_PR1_CCITT = 0x5
+- PARITY_CRC32_PR0_CCITT = 0x6
+- PARITY_CRC32_PR1_CCITT = 0x7
+- PARITY_DEFAULT = 0x0
+- PARITY_NONE = 0x1
+- PARMRK = 0x8
+- PARODD = 0x200
+- PENDIN = 0x4000
+- PERF_EVENT_IOC_DISABLE = 0x2401
+- PERF_EVENT_IOC_ENABLE = 0x2400
+- PERF_EVENT_IOC_ID = 0x80082407
+- PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409
+- PERF_EVENT_IOC_PERIOD = 0x40082404
+- PERF_EVENT_IOC_REFRESH = 0x2402
+- PERF_EVENT_IOC_RESET = 0x2403
+- PERF_EVENT_IOC_SET_BPF = 0x40042408
+- PERF_EVENT_IOC_SET_FILTER = 0x40082406
+- PERF_EVENT_IOC_SET_OUTPUT = 0x2405
+- PRIO_PGRP = 0x1
+- PRIO_PROCESS = 0x0
+- PRIO_USER = 0x2
+- PROT_EXEC = 0x4
+- PROT_GROWSDOWN = 0x1000000
+- PROT_GROWSUP = 0x2000000
+- PROT_NONE = 0x0
+- PROT_READ = 0x1
+- PROT_WRITE = 0x2
+- PR_CAPBSET_DROP = 0x18
+- PR_CAPBSET_READ = 0x17
+- PR_CAP_AMBIENT = 0x2f
+- PR_CAP_AMBIENT_CLEAR_ALL = 0x4
+- PR_CAP_AMBIENT_IS_SET = 0x1
+- PR_CAP_AMBIENT_LOWER = 0x3
+- PR_CAP_AMBIENT_RAISE = 0x2
+- PR_ENDIAN_BIG = 0x0
+- PR_ENDIAN_LITTLE = 0x1
+- PR_ENDIAN_PPC_LITTLE = 0x2
+- PR_FPEMU_NOPRINT = 0x1
+- PR_FPEMU_SIGFPE = 0x2
+- PR_FP_EXC_ASYNC = 0x2
+- PR_FP_EXC_DISABLED = 0x0
+- PR_FP_EXC_DIV = 0x10000
+- PR_FP_EXC_INV = 0x100000
+- PR_FP_EXC_NONRECOV = 0x1
+- PR_FP_EXC_OVF = 0x20000
+- PR_FP_EXC_PRECISE = 0x3
+- PR_FP_EXC_RES = 0x80000
+- PR_FP_EXC_SW_ENABLE = 0x80
+- PR_FP_EXC_UND = 0x40000
+- PR_FP_MODE_FR = 0x1
+- PR_FP_MODE_FRE = 0x2
+- PR_GET_CHILD_SUBREAPER = 0x25
+- PR_GET_DUMPABLE = 0x3
+- PR_GET_ENDIAN = 0x13
+- PR_GET_FPEMU = 0x9
+- PR_GET_FPEXC = 0xb
+- PR_GET_FP_MODE = 0x2e
+- PR_GET_KEEPCAPS = 0x7
+- PR_GET_NAME = 0x10
+- PR_GET_NO_NEW_PRIVS = 0x27
+- PR_GET_PDEATHSIG = 0x2
+- PR_GET_SECCOMP = 0x15
+- PR_GET_SECUREBITS = 0x1b
+- PR_GET_THP_DISABLE = 0x2a
+- PR_GET_TID_ADDRESS = 0x28
+- PR_GET_TIMERSLACK = 0x1e
+- PR_GET_TIMING = 0xd
+- PR_GET_TSC = 0x19
+- PR_GET_UNALIGN = 0x5
+- PR_MCE_KILL = 0x21
+- PR_MCE_KILL_CLEAR = 0x0
+- PR_MCE_KILL_DEFAULT = 0x2
+- PR_MCE_KILL_EARLY = 0x1
+- PR_MCE_KILL_GET = 0x22
+- PR_MCE_KILL_LATE = 0x0
+- PR_MCE_KILL_SET = 0x1
+- PR_MPX_DISABLE_MANAGEMENT = 0x2c
+- PR_MPX_ENABLE_MANAGEMENT = 0x2b
+- PR_SET_CHILD_SUBREAPER = 0x24
+- PR_SET_DUMPABLE = 0x4
+- PR_SET_ENDIAN = 0x14
+- PR_SET_FPEMU = 0xa
+- PR_SET_FPEXC = 0xc
+- PR_SET_FP_MODE = 0x2d
+- PR_SET_KEEPCAPS = 0x8
+- PR_SET_MM = 0x23
+- PR_SET_MM_ARG_END = 0x9
+- PR_SET_MM_ARG_START = 0x8
+- PR_SET_MM_AUXV = 0xc
+- PR_SET_MM_BRK = 0x7
+- PR_SET_MM_END_CODE = 0x2
+- PR_SET_MM_END_DATA = 0x4
+- PR_SET_MM_ENV_END = 0xb
+- PR_SET_MM_ENV_START = 0xa
+- PR_SET_MM_EXE_FILE = 0xd
+- PR_SET_MM_MAP = 0xe
+- PR_SET_MM_MAP_SIZE = 0xf
+- PR_SET_MM_START_BRK = 0x6
+- PR_SET_MM_START_CODE = 0x1
+- PR_SET_MM_START_DATA = 0x3
+- PR_SET_MM_START_STACK = 0x5
+- PR_SET_NAME = 0xf
+- PR_SET_NO_NEW_PRIVS = 0x26
+- PR_SET_PDEATHSIG = 0x1
+- PR_SET_PTRACER = 0x59616d61
+- PR_SET_PTRACER_ANY = -0x1
+- PR_SET_SECCOMP = 0x16
+- PR_SET_SECUREBITS = 0x1c
+- PR_SET_THP_DISABLE = 0x29
+- PR_SET_TIMERSLACK = 0x1d
+- PR_SET_TIMING = 0xe
+- PR_SET_TSC = 0x1a
+- PR_SET_UNALIGN = 0x6
+- PR_TASK_PERF_EVENTS_DISABLE = 0x1f
+- PR_TASK_PERF_EVENTS_ENABLE = 0x20
+- PR_TIMING_STATISTICAL = 0x0
+- PR_TIMING_TIMESTAMP = 0x1
+- PR_TSC_ENABLE = 0x1
+- PR_TSC_SIGSEGV = 0x2
+- PR_UNALIGN_NOPRINT = 0x1
+- PR_UNALIGN_SIGBUS = 0x2
+- PTRACE_ATTACH = 0x10
+- PTRACE_CONT = 0x7
+- PTRACE_DETACH = 0x11
+- PTRACE_EVENT_CLONE = 0x3
+- PTRACE_EVENT_EXEC = 0x4
+- PTRACE_EVENT_EXIT = 0x6
+- PTRACE_EVENT_FORK = 0x1
+- PTRACE_EVENT_SECCOMP = 0x7
+- PTRACE_EVENT_STOP = 0x80
+- PTRACE_EVENT_VFORK = 0x2
+- PTRACE_EVENT_VFORK_DONE = 0x5
+- PTRACE_GETEVENTMSG = 0x4201
+- PTRACE_GETREGS = 0xc
+- PTRACE_GETREGSET = 0x4204
+- PTRACE_GETSIGINFO = 0x4202
+- PTRACE_GETSIGMASK = 0x420a
+- PTRACE_INTERRUPT = 0x4207
+- PTRACE_KILL = 0x8
+- PTRACE_LISTEN = 0x4208
+- PTRACE_O_EXITKILL = 0x100000
+- PTRACE_O_MASK = 0x3000ff
+- PTRACE_O_SUSPEND_SECCOMP = 0x200000
+- PTRACE_O_TRACECLONE = 0x8
+- PTRACE_O_TRACEEXEC = 0x10
+- PTRACE_O_TRACEEXIT = 0x40
+- PTRACE_O_TRACEFORK = 0x2
+- PTRACE_O_TRACESECCOMP = 0x80
+- PTRACE_O_TRACESYSGOOD = 0x1
+- PTRACE_O_TRACEVFORK = 0x4
+- PTRACE_O_TRACEVFORKDONE = 0x20
+- PTRACE_PEEKDATA = 0x2
+- PTRACE_PEEKSIGINFO = 0x4209
+- PTRACE_PEEKSIGINFO_SHARED = 0x1
+- PTRACE_PEEKTEXT = 0x1
+- PTRACE_PEEKUSR = 0x3
+- PTRACE_POKEDATA = 0x5
+- PTRACE_POKETEXT = 0x4
+- PTRACE_POKEUSR = 0x6
+- PTRACE_SECCOMP_GET_FILTER = 0x420c
+- PTRACE_SEIZE = 0x4206
+- PTRACE_SETOPTIONS = 0x4200
+- PTRACE_SETREGS = 0xd
+- PTRACE_SETREGSET = 0x4205
+- PTRACE_SETSIGINFO = 0x4203
+- PTRACE_SETSIGMASK = 0x420b
+- PTRACE_SINGLESTEP = 0x9
+- PTRACE_SYSCALL = 0x18
+- PTRACE_TRACEME = 0x0
+- RLIMIT_AS = 0x9
+- RLIMIT_CORE = 0x4
+- RLIMIT_CPU = 0x0
+- RLIMIT_DATA = 0x2
+- RLIMIT_FSIZE = 0x1
+- RLIMIT_LOCKS = 0xa
+- RLIMIT_MEMLOCK = 0x8
+- RLIMIT_MSGQUEUE = 0xc
+- RLIMIT_NICE = 0xd
+- RLIMIT_NOFILE = 0x7
+- RLIMIT_NPROC = 0x6
+- RLIMIT_RSS = 0x5
+- RLIMIT_RTPRIO = 0xe
+- RLIMIT_RTTIME = 0xf
+- RLIMIT_SIGPENDING = 0xb
+- RLIMIT_STACK = 0x3
+- RLIM_INFINITY = -0x1
+- RTAX_ADVMSS = 0x8
+- RTAX_CC_ALGO = 0x10
+- RTAX_CWND = 0x7
+- RTAX_FEATURES = 0xc
+- RTAX_FEATURE_ALLFRAG = 0x8
+- RTAX_FEATURE_ECN = 0x1
+- RTAX_FEATURE_MASK = 0xf
+- RTAX_FEATURE_SACK = 0x2
+- RTAX_FEATURE_TIMESTAMP = 0x4
+- RTAX_HOPLIMIT = 0xa
+- RTAX_INITCWND = 0xb
+- RTAX_INITRWND = 0xe
+- RTAX_LOCK = 0x1
+- RTAX_MAX = 0x10
+- RTAX_MTU = 0x2
+- RTAX_QUICKACK = 0xf
+- RTAX_REORDERING = 0x9
+- RTAX_RTO_MIN = 0xd
+- RTAX_RTT = 0x4
+- RTAX_RTTVAR = 0x5
+- RTAX_SSTHRESH = 0x6
+- RTAX_UNSPEC = 0x0
+- RTAX_WINDOW = 0x3
+- RTA_ALIGNTO = 0x4
+- RTA_MAX = 0x19
+- RTCF_DIRECTSRC = 0x4000000
+- RTCF_DOREDIRECT = 0x1000000
+- RTCF_LOG = 0x2000000
+- RTCF_MASQ = 0x400000
+- RTCF_NAT = 0x800000
+- RTCF_VALVE = 0x200000
+- RTF_ADDRCLASSMASK = 0xf8000000
+- RTF_ADDRCONF = 0x40000
+- RTF_ALLONLINK = 0x20000
+- RTF_BROADCAST = 0x10000000
+- RTF_CACHE = 0x1000000
+- RTF_DEFAULT = 0x10000
+- RTF_DYNAMIC = 0x10
+- RTF_FLOW = 0x2000000
+- RTF_GATEWAY = 0x2
+- RTF_HOST = 0x4
+- RTF_INTERFACE = 0x40000000
+- RTF_IRTT = 0x100
+- RTF_LINKRT = 0x100000
+- RTF_LOCAL = 0x80000000
+- RTF_MODIFIED = 0x20
+- RTF_MSS = 0x40
+- RTF_MTU = 0x40
+- RTF_MULTICAST = 0x20000000
+- RTF_NAT = 0x8000000
+- RTF_NOFORWARD = 0x1000
+- RTF_NONEXTHOP = 0x200000
+- RTF_NOPMTUDISC = 0x4000
+- RTF_POLICY = 0x4000000
+- RTF_REINSTATE = 0x8
+- RTF_REJECT = 0x200
+- RTF_STATIC = 0x400
+- RTF_THROW = 0x2000
+- RTF_UP = 0x1
+- RTF_WINDOW = 0x80
+- RTF_XRESOLVE = 0x800
+- RTM_BASE = 0x10
+- RTM_DELACTION = 0x31
+- RTM_DELADDR = 0x15
+- RTM_DELADDRLABEL = 0x49
+- RTM_DELLINK = 0x11
+- RTM_DELMDB = 0x55
+- RTM_DELNEIGH = 0x1d
+- RTM_DELNSID = 0x59
+- RTM_DELQDISC = 0x25
+- RTM_DELROUTE = 0x19
+- RTM_DELRULE = 0x21
+- RTM_DELTCLASS = 0x29
+- RTM_DELTFILTER = 0x2d
+- RTM_F_CLONED = 0x200
+- RTM_F_EQUALIZE = 0x400
+- RTM_F_LOOKUP_TABLE = 0x1000
+- RTM_F_NOTIFY = 0x100
+- RTM_F_PREFIX = 0x800
+- RTM_GETACTION = 0x32
+- RTM_GETADDR = 0x16
+- RTM_GETADDRLABEL = 0x4a
+- RTM_GETANYCAST = 0x3e
+- RTM_GETDCB = 0x4e
+- RTM_GETLINK = 0x12
+- RTM_GETMDB = 0x56
+- RTM_GETMULTICAST = 0x3a
+- RTM_GETNEIGH = 0x1e
+- RTM_GETNEIGHTBL = 0x42
+- RTM_GETNETCONF = 0x52
+- RTM_GETNSID = 0x5a
+- RTM_GETQDISC = 0x26
+- RTM_GETROUTE = 0x1a
+- RTM_GETRULE = 0x22
+- RTM_GETSTATS = 0x5e
+- RTM_GETTCLASS = 0x2a
+- RTM_GETTFILTER = 0x2e
+- RTM_MAX = 0x5f
+- RTM_NEWACTION = 0x30
+- RTM_NEWADDR = 0x14
+- RTM_NEWADDRLABEL = 0x48
+- RTM_NEWLINK = 0x10
+- RTM_NEWMDB = 0x54
+- RTM_NEWNDUSEROPT = 0x44
+- RTM_NEWNEIGH = 0x1c
+- RTM_NEWNEIGHTBL = 0x40
+- RTM_NEWNETCONF = 0x50
+- RTM_NEWNSID = 0x58
+- RTM_NEWPREFIX = 0x34
+- RTM_NEWQDISC = 0x24
+- RTM_NEWROUTE = 0x18
+- RTM_NEWRULE = 0x20
+- RTM_NEWSTATS = 0x5c
+- RTM_NEWTCLASS = 0x28
+- RTM_NEWTFILTER = 0x2c
+- RTM_NR_FAMILIES = 0x14
+- RTM_NR_MSGTYPES = 0x50
+- RTM_SETDCB = 0x4f
+- RTM_SETLINK = 0x13
+- RTM_SETNEIGHTBL = 0x43
+- RTNH_ALIGNTO = 0x4
+- RTNH_COMPARE_MASK = 0x19
+- RTNH_F_DEAD = 0x1
+- RTNH_F_LINKDOWN = 0x10
+- RTNH_F_OFFLOAD = 0x8
+- RTNH_F_ONLINK = 0x4
+- RTNH_F_PERVASIVE = 0x2
+- RTN_MAX = 0xb
+- RTPROT_BABEL = 0x2a
+- RTPROT_BIRD = 0xc
+- RTPROT_BOOT = 0x3
+- RTPROT_DHCP = 0x10
+- RTPROT_DNROUTED = 0xd
+- RTPROT_GATED = 0x8
+- RTPROT_KERNEL = 0x2
+- RTPROT_MROUTED = 0x11
+- RTPROT_MRT = 0xa
+- RTPROT_NTK = 0xf
+- RTPROT_RA = 0x9
+- RTPROT_REDIRECT = 0x1
+- RTPROT_STATIC = 0x4
+- RTPROT_UNSPEC = 0x0
+- RTPROT_XORP = 0xe
+- RTPROT_ZEBRA = 0xb
+- RT_CLASS_DEFAULT = 0xfd
+- RT_CLASS_LOCAL = 0xff
+- RT_CLASS_MAIN = 0xfe
+- RT_CLASS_MAX = 0xff
+- RT_CLASS_UNSPEC = 0x0
+- RUSAGE_CHILDREN = -0x1
+- RUSAGE_SELF = 0x0
+- RUSAGE_THREAD = 0x1
+- SCM_CREDENTIALS = 0x2
+- SCM_RIGHTS = 0x1
+- SCM_TIMESTAMP = 0x1d
+- SCM_TIMESTAMPING = 0x25
+- SCM_TIMESTAMPING_OPT_STATS = 0x36
+- SCM_TIMESTAMPNS = 0x23
+- SCM_WIFI_STATUS = 0x29
+- SECCOMP_MODE_DISABLED = 0x0
+- SECCOMP_MODE_FILTER = 0x2
+- SECCOMP_MODE_STRICT = 0x1
+- SHUT_RD = 0x0
+- SHUT_RDWR = 0x2
+- SHUT_WR = 0x1
+- SIOCADDDLCI = 0x8980
+- SIOCADDMULTI = 0x8931
+- SIOCADDRT = 0x890b
+- SIOCATMARK = 0x8905
+- SIOCBONDCHANGEACTIVE = 0x8995
+- SIOCBONDENSLAVE = 0x8990
+- SIOCBONDINFOQUERY = 0x8994
+- SIOCBONDRELEASE = 0x8991
+- SIOCBONDSETHWADDR = 0x8992
+- SIOCBONDSLAVEINFOQUERY = 0x8993
+- SIOCBRADDBR = 0x89a0
+- SIOCBRADDIF = 0x89a2
+- SIOCBRDELBR = 0x89a1
+- SIOCBRDELIF = 0x89a3
+- SIOCDARP = 0x8953
+- SIOCDELDLCI = 0x8981
+- SIOCDELMULTI = 0x8932
+- SIOCDELRT = 0x890c
+- SIOCDEVPRIVATE = 0x89f0
+- SIOCDIFADDR = 0x8936
+- SIOCDRARP = 0x8960
+- SIOCETHTOOL = 0x8946
+- SIOCGARP = 0x8954
+- SIOCGHWTSTAMP = 0x89b1
+- SIOCGIFADDR = 0x8915
+- SIOCGIFBR = 0x8940
+- SIOCGIFBRDADDR = 0x8919
+- SIOCGIFCONF = 0x8912
+- SIOCGIFCOUNT = 0x8938
+- SIOCGIFDSTADDR = 0x8917
+- SIOCGIFENCAP = 0x8925
+- SIOCGIFFLAGS = 0x8913
+- SIOCGIFHWADDR = 0x8927
+- SIOCGIFINDEX = 0x8933
+- SIOCGIFMAP = 0x8970
+- SIOCGIFMEM = 0x891f
+- SIOCGIFMETRIC = 0x891d
+- SIOCGIFMTU = 0x8921
+- SIOCGIFNAME = 0x8910
+- SIOCGIFNETMASK = 0x891b
+- SIOCGIFPFLAGS = 0x8935
+- SIOCGIFSLAVE = 0x8929
+- SIOCGIFTXQLEN = 0x8942
+- SIOCGIFVLAN = 0x8982
+- SIOCGMIIPHY = 0x8947
+- SIOCGMIIREG = 0x8948
+- SIOCGPGRP = 0x8904
+- SIOCGRARP = 0x8961
+- SIOCGSKNS = 0x894c
+- SIOCGSTAMP = 0x8906
+- SIOCGSTAMPNS = 0x8907
+- SIOCINQ = 0x541b
+- SIOCOUTQ = 0x5411
+- SIOCOUTQNSD = 0x894b
+- SIOCPROTOPRIVATE = 0x89e0
+- SIOCRTMSG = 0x890d
+- SIOCSARP = 0x8955
+- SIOCSHWTSTAMP = 0x89b0
+- SIOCSIFADDR = 0x8916
+- SIOCSIFBR = 0x8941
+- SIOCSIFBRDADDR = 0x891a
+- SIOCSIFDSTADDR = 0x8918
+- SIOCSIFENCAP = 0x8926
+- SIOCSIFFLAGS = 0x8914
+- SIOCSIFHWADDR = 0x8924
+- SIOCSIFHWBROADCAST = 0x8937
+- SIOCSIFLINK = 0x8911
+- SIOCSIFMAP = 0x8971
+- SIOCSIFMEM = 0x8920
+- SIOCSIFMETRIC = 0x891e
+- SIOCSIFMTU = 0x8922
+- SIOCSIFNAME = 0x8923
+- SIOCSIFNETMASK = 0x891c
+- SIOCSIFPFLAGS = 0x8934
+- SIOCSIFSLAVE = 0x8930
+- SIOCSIFTXQLEN = 0x8943
+- SIOCSIFVLAN = 0x8983
+- SIOCSMIIREG = 0x8949
+- SIOCSPGRP = 0x8902
+- SIOCSRARP = 0x8962
+- SIOCWANDEV = 0x894a
+- SOCK_CLOEXEC = 0x80000
+- SOCK_DCCP = 0x6
+- SOCK_DGRAM = 0x2
+- SOCK_IOC_TYPE = 0x89
+- SOCK_NONBLOCK = 0x800
+- SOCK_PACKET = 0xa
+- SOCK_RAW = 0x3
+- SOCK_RDM = 0x4
+- SOCK_SEQPACKET = 0x5
+- SOCK_STREAM = 0x1
+- SOL_AAL = 0x109
+- SOL_ALG = 0x117
+- SOL_ATM = 0x108
+- SOL_CAIF = 0x116
+- SOL_CAN_BASE = 0x64
+- SOL_DCCP = 0x10d
+- SOL_DECNET = 0x105
+- SOL_ICMPV6 = 0x3a
+- SOL_IP = 0x0
+- SOL_IPV6 = 0x29
+- SOL_IRDA = 0x10a
+- SOL_IUCV = 0x115
+- SOL_KCM = 0x119
+- SOL_LLC = 0x10c
+- SOL_NETBEUI = 0x10b
+- SOL_NETLINK = 0x10e
+- SOL_NFC = 0x118
+- SOL_PACKET = 0x107
+- SOL_PNPIPE = 0x113
+- SOL_PPPOL2TP = 0x111
+- SOL_RAW = 0xff
+- SOL_RDS = 0x114
+- SOL_RXRPC = 0x110
+- SOL_SOCKET = 0x1
+- SOL_TCP = 0x6
+- SOL_TIPC = 0x10f
+- SOL_X25 = 0x106
+- SOMAXCONN = 0x80
+- SO_ACCEPTCONN = 0x1e
+- SO_ATTACH_BPF = 0x32
+- SO_ATTACH_FILTER = 0x1a
+- SO_ATTACH_REUSEPORT_CBPF = 0x33
+- SO_ATTACH_REUSEPORT_EBPF = 0x34
+- SO_BINDTODEVICE = 0x19
+- SO_BPF_EXTENSIONS = 0x30
+- SO_BROADCAST = 0x6
+- SO_BSDCOMPAT = 0xe
+- SO_BUSY_POLL = 0x2e
+- SO_CNX_ADVICE = 0x35
+- SO_DEBUG = 0x1
+- SO_DETACH_BPF = 0x1b
+- SO_DETACH_FILTER = 0x1b
+- SO_DOMAIN = 0x27
+- SO_DONTROUTE = 0x5
+- SO_ERROR = 0x4
+- SO_GET_FILTER = 0x1a
+- SO_INCOMING_CPU = 0x31
+- SO_KEEPALIVE = 0x9
+- SO_LINGER = 0xd
+- SO_LOCK_FILTER = 0x2c
+- SO_MARK = 0x24
+- SO_MAX_PACING_RATE = 0x2f
+- SO_NOFCS = 0x2b
+- SO_NO_CHECK = 0xb
+- SO_OOBINLINE = 0xa
+- SO_PASSCRED = 0x10
+- SO_PASSSEC = 0x22
+- SO_PEEK_OFF = 0x2a
+- SO_PEERCRED = 0x11
+- SO_PEERNAME = 0x1c
+- SO_PEERSEC = 0x1f
+- SO_PRIORITY = 0xc
+- SO_PROTOCOL = 0x26
+- SO_RCVBUF = 0x8
+- SO_RCVBUFFORCE = 0x21
+- SO_RCVLOWAT = 0x12
+- SO_RCVTIMEO = 0x14
+- SO_REUSEADDR = 0x2
+- SO_REUSEPORT = 0xf
+- SO_RXQ_OVFL = 0x28
+- SO_SECURITY_AUTHENTICATION = 0x16
+- SO_SECURITY_ENCRYPTION_NETWORK = 0x18
+- SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
+- SO_SELECT_ERR_QUEUE = 0x2d
+- SO_SNDBUF = 0x7
+- SO_SNDBUFFORCE = 0x20
+- SO_SNDLOWAT = 0x13
+- SO_SNDTIMEO = 0x15
+- SO_TIMESTAMP = 0x1d
+- SO_TIMESTAMPING = 0x25
+- SO_TIMESTAMPNS = 0x23
+- SO_TYPE = 0x3
+- SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
+- SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
+- SO_VM_SOCKETS_BUFFER_SIZE = 0x0
+- SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
+- SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
+- SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
+- SO_VM_SOCKETS_TRUSTED = 0x5
+- SO_WIFI_STATUS = 0x29
+- SPLICE_F_GIFT = 0x8
+- SPLICE_F_MORE = 0x4
+- SPLICE_F_MOVE = 0x1
+- SPLICE_F_NONBLOCK = 0x2
+- S_BLKSIZE = 0x200
+- S_IEXEC = 0x40
+- S_IFBLK = 0x6000
+- S_IFCHR = 0x2000
+- S_IFDIR = 0x4000
+- S_IFIFO = 0x1000
+- S_IFLNK = 0xa000
+- S_IFMT = 0xf000
+- S_IFREG = 0x8000
+- S_IFSOCK = 0xc000
+- S_IREAD = 0x100
+- S_IRGRP = 0x20
+- S_IROTH = 0x4
+- S_IRUSR = 0x100
+- S_IRWXG = 0x38
+- S_IRWXO = 0x7
+- S_IRWXU = 0x1c0
+- S_ISGID = 0x400
+- S_ISUID = 0x800
+- S_ISVTX = 0x200
+- S_IWGRP = 0x10
+- S_IWOTH = 0x2
+- S_IWRITE = 0x80
+- S_IWUSR = 0x80
+- S_IXGRP = 0x8
+- S_IXOTH = 0x1
+- S_IXUSR = 0x40
+- TAB0 = 0x0
+- TAB1 = 0x800
+- TAB2 = 0x1000
+- TAB3 = 0x1800
+- TABDLY = 0x1800
+- TASKSTATS_CMD_ATTR_MAX = 0x4
+- TASKSTATS_CMD_MAX = 0x2
+- TASKSTATS_GENL_NAME = "TASKSTATS"
+- TASKSTATS_GENL_VERSION = 0x1
+- TASKSTATS_TYPE_MAX = 0x6
+- TASKSTATS_VERSION = 0x8
+- TCFLSH = 0x540b
+- TCGETA = 0x5405
+- TCGETS = 0x5401
+- TCGETS2 = 0x802c542a
+- TCGETX = 0x5432
+- TCIFLUSH = 0x0
+- TCIOFF = 0x2
+- TCIOFLUSH = 0x2
+- TCION = 0x3
+- TCOFLUSH = 0x1
+- TCOOFF = 0x0
+- TCOON = 0x1
+- TCP_CC_INFO = 0x1a
+- TCP_CONGESTION = 0xd
+- TCP_COOKIE_IN_ALWAYS = 0x1
+- TCP_COOKIE_MAX = 0x10
+- TCP_COOKIE_MIN = 0x8
+- TCP_COOKIE_OUT_NEVER = 0x2
+- TCP_COOKIE_PAIR_SIZE = 0x20
+- TCP_COOKIE_TRANSACTIONS = 0xf
+- TCP_CORK = 0x3
+- TCP_DEFER_ACCEPT = 0x9
+- TCP_FASTOPEN = 0x17
+- TCP_INFO = 0xb
+- TCP_KEEPCNT = 0x6
+- TCP_KEEPIDLE = 0x4
+- TCP_KEEPINTVL = 0x5
+- TCP_LINGER2 = 0x8
+- TCP_MAXSEG = 0x2
+- TCP_MAXWIN = 0xffff
+- TCP_MAX_WINSHIFT = 0xe
+- TCP_MD5SIG = 0xe
+- TCP_MD5SIG_MAXKEYLEN = 0x50
+- TCP_MSS = 0x200
+- TCP_MSS_DEFAULT = 0x218
+- TCP_MSS_DESIRED = 0x4c4
+- TCP_NODELAY = 0x1
+- TCP_NOTSENT_LOWAT = 0x19
+- TCP_QUEUE_SEQ = 0x15
+- TCP_QUICKACK = 0xc
+- TCP_REPAIR = 0x13
+- TCP_REPAIR_OPTIONS = 0x16
+- TCP_REPAIR_QUEUE = 0x14
+- TCP_REPAIR_WINDOW = 0x1d
+- TCP_SAVED_SYN = 0x1c
+- TCP_SAVE_SYN = 0x1b
+- TCP_SYNCNT = 0x7
+- TCP_S_DATA_IN = 0x4
+- TCP_S_DATA_OUT = 0x8
+- TCP_THIN_DUPACK = 0x11
+- TCP_THIN_LINEAR_TIMEOUTS = 0x10
+- TCP_TIMESTAMP = 0x18
+- TCP_USER_TIMEOUT = 0x12
+- TCP_WINDOW_CLAMP = 0xa
+- TCSAFLUSH = 0x2
+- TCSBRK = 0x5409
+- TCSBRKP = 0x5425
+- TCSETA = 0x5406
+- TCSETAF = 0x5408
+- TCSETAW = 0x5407
+- TCSETS = 0x5402
+- TCSETS2 = 0x402c542b
+- TCSETSF = 0x5404
+- TCSETSF2 = 0x402c542d
+- TCSETSW = 0x5403
+- TCSETSW2 = 0x402c542c
+- TCSETX = 0x5433
+- TCSETXF = 0x5434
+- TCSETXW = 0x5435
+- TCXONC = 0x540a
+- TIOCCBRK = 0x5428
+- TIOCCONS = 0x541d
+- TIOCEXCL = 0x540c
+- TIOCGDEV = 0x80045432
+- TIOCGETD = 0x5424
+- TIOCGEXCL = 0x80045440
+- TIOCGICOUNT = 0x545d
+- TIOCGLCKTRMIOS = 0x5456
+- TIOCGPGRP = 0x540f
+- TIOCGPKT = 0x80045438
+- TIOCGPTLCK = 0x80045439
+- TIOCGPTN = 0x80045430
+- TIOCGRS485 = 0x542e
+- TIOCGSERIAL = 0x541e
+- TIOCGSID = 0x5429
+- TIOCGSOFTCAR = 0x5419
+- TIOCGWINSZ = 0x5413
+- TIOCINQ = 0x541b
+- TIOCLINUX = 0x541c
+- TIOCMBIC = 0x5417
+- TIOCMBIS = 0x5416
+- TIOCMGET = 0x5415
+- TIOCMIWAIT = 0x545c
+- TIOCMSET = 0x5418
+- TIOCM_CAR = 0x40
+- TIOCM_CD = 0x40
+- TIOCM_CTS = 0x20
+- TIOCM_DSR = 0x100
+- TIOCM_DTR = 0x2
+- TIOCM_LE = 0x1
+- TIOCM_RI = 0x80
+- TIOCM_RNG = 0x80
+- TIOCM_RTS = 0x4
+- TIOCM_SR = 0x10
+- TIOCM_ST = 0x8
+- TIOCNOTTY = 0x5422
+- TIOCNXCL = 0x540d
+- TIOCOUTQ = 0x5411
+- TIOCPKT = 0x5420
+- TIOCPKT_DATA = 0x0
+- TIOCPKT_DOSTOP = 0x20
+- TIOCPKT_FLUSHREAD = 0x1
+- TIOCPKT_FLUSHWRITE = 0x2
+- TIOCPKT_IOCTL = 0x40
+- TIOCPKT_NOSTOP = 0x10
+- TIOCPKT_START = 0x8
+- TIOCPKT_STOP = 0x4
+- TIOCSBRK = 0x5427
+- TIOCSCTTY = 0x540e
+- TIOCSERCONFIG = 0x5453
+- TIOCSERGETLSR = 0x5459
+- TIOCSERGETMULTI = 0x545a
+- TIOCSERGSTRUCT = 0x5458
+- TIOCSERGWILD = 0x5454
+- TIOCSERSETMULTI = 0x545b
+- TIOCSERSWILD = 0x5455
+- TIOCSER_TEMT = 0x1
+- TIOCSETD = 0x5423
+- TIOCSIG = 0x40045436
+- TIOCSLCKTRMIOS = 0x5457
+- TIOCSPGRP = 0x5410
+- TIOCSPTLCK = 0x40045431
+- TIOCSRS485 = 0x542f
+- TIOCSSERIAL = 0x541f
+- TIOCSSOFTCAR = 0x541a
+- TIOCSTI = 0x5412
+- TIOCSWINSZ = 0x5414
+- TIOCVHANGUP = 0x5437
+- TOSTOP = 0x100
+- TS_COMM_LEN = 0x20
+- TUNATTACHFILTER = 0x401054d5
+- TUNDETACHFILTER = 0x401054d6
+- TUNGETFEATURES = 0x800454cf
+- TUNGETFILTER = 0x801054db
+- TUNGETIFF = 0x800454d2
+- TUNGETSNDBUF = 0x800454d3
+- TUNGETVNETBE = 0x800454df
+- TUNGETVNETHDRSZ = 0x800454d7
+- TUNGETVNETLE = 0x800454dd
+- TUNSETDEBUG = 0x400454c9
+- TUNSETGROUP = 0x400454ce
+- TUNSETIFF = 0x400454ca
+- TUNSETIFINDEX = 0x400454da
+- TUNSETLINK = 0x400454cd
+- TUNSETNOCSUM = 0x400454c8
+- TUNSETOFFLOAD = 0x400454d0
+- TUNSETOWNER = 0x400454cc
+- TUNSETPERSIST = 0x400454cb
+- TUNSETQUEUE = 0x400454d9
+- TUNSETSNDBUF = 0x400454d4
+- TUNSETTXFILTER = 0x400454d1
+- TUNSETVNETBE = 0x400454de
+- TUNSETVNETHDRSZ = 0x400454d8
+- TUNSETVNETLE = 0x400454dc
+- UMOUNT_NOFOLLOW = 0x8
+- VDISCARD = 0xd
+- VEOF = 0x4
+- VEOL = 0xb
+- VEOL2 = 0x10
+- VERASE = 0x2
+- VINTR = 0x0
+- VKILL = 0x3
+- VLNEXT = 0xf
+- VMADDR_CID_ANY = 0xffffffff
+- VMADDR_CID_HOST = 0x2
+- VMADDR_CID_HYPERVISOR = 0x0
+- VMADDR_CID_RESERVED = 0x1
+- VMADDR_PORT_ANY = 0xffffffff
+- VMIN = 0x6
+- VM_SOCKETS_INVALID_VERSION = 0xffffffff
+- VQUIT = 0x1
+- VREPRINT = 0xc
+- VSTART = 0x8
+- VSTOP = 0x9
+- VSUSP = 0xa
+- VSWTC = 0x7
+- VT0 = 0x0
+- VT1 = 0x4000
+- VTDLY = 0x4000
+- VTIME = 0x5
+- VWERASE = 0xe
+- WALL = 0x40000000
+- WCLONE = 0x80000000
+- WCONTINUED = 0x8
+- WEXITED = 0x4
+- WNOHANG = 0x1
+- WNOTHREAD = 0x20000000
+- WNOWAIT = 0x1000000
+- WORDSIZE = 0x40
+- WSTOPPED = 0x2
+- WUNTRACED = 0x2
+- XATTR_CREATE = 0x1
+- XATTR_REPLACE = 0x2
+- XCASE = 0x4
+- XTABS = 0x1800
++ B1000000 = 0x1008
++ B115200 = 0x1002
++ B1152000 = 0x1009
++ B1500000 = 0x100a
++ B2000000 = 0x100b
++ B230400 = 0x1003
++ B2500000 = 0x100c
++ B3000000 = 0x100d
++ B3500000 = 0x100e
++ B4000000 = 0x100f
++ B460800 = 0x1004
++ B500000 = 0x1005
++ B57600 = 0x1001
++ B576000 = 0x1006
++ B921600 = 0x1007
++ BLKBSZGET = 0x80081270
++ BLKBSZSET = 0x40081271
++ BLKFLSBUF = 0x1261
++ BLKFRAGET = 0x1265
++ BLKFRASET = 0x1264
++ BLKGETSIZE = 0x1260
++ BLKGETSIZE64 = 0x80081272
++ BLKPBSZGET = 0x127b
++ BLKRAGET = 0x1263
++ BLKRASET = 0x1262
++ BLKROGET = 0x125e
++ BLKROSET = 0x125d
++ BLKRRPART = 0x125f
++ BLKSECTGET = 0x1267
++ BLKSECTSET = 0x1266
++ BLKSSZGET = 0x1268
++ BOTHER = 0x1000
++ BS1 = 0x2000
++ BSDLY = 0x2000
++ CBAUD = 0x100f
++ CBAUDEX = 0x1000
++ CIBAUD = 0x100f0000
++ CLOCAL = 0x800
++ CR1 = 0x200
++ CR2 = 0x400
++ CR3 = 0x600
++ CRDLY = 0x600
++ CREAD = 0x80
++ CS6 = 0x10
++ CS7 = 0x20
++ CS8 = 0x30
++ CSIZE = 0x30
++ CSTOPB = 0x40
++ ECHOCTL = 0x200
++ ECHOE = 0x10
++ ECHOK = 0x20
++ ECHOKE = 0x800
++ ECHONL = 0x40
++ ECHOPRT = 0x400
++ EFD_CLOEXEC = 0x80000
++ EFD_NONBLOCK = 0x800
++ EPOLL_CLOEXEC = 0x80000
++ ESR_MAGIC = 0x45535201
++ EXTPROC = 0x10000
++ EXTRA_MAGIC = 0x45585401
++ FF1 = 0x8000
++ FFDLY = 0x8000
++ FLUSHO = 0x1000
++ FPSIMD_MAGIC = 0x46508001
++ FS_IOC_ENABLE_VERITY = 0x40806685
++ FS_IOC_GETFLAGS = 0x80086601
++ FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615
++ FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614
++ FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613
++ F_GETLK = 0x5
++ F_GETLK64 = 0x5
++ F_GETOWN = 0x9
++ F_RDLCK = 0x0
++ F_SETLK = 0x6
++ F_SETLK64 = 0x6
++ F_SETLKW = 0x7
++ F_SETLKW64 = 0x7
++ F_SETOWN = 0x8
++ F_UNLCK = 0x2
++ F_WRLCK = 0x1
++ HUPCL = 0x400
++ ICANON = 0x2
++ IEXTEN = 0x8000
++ IN_CLOEXEC = 0x80000
++ IN_NONBLOCK = 0x800
++ IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9
++ ISIG = 0x1
++ IUCLC = 0x200
++ IXOFF = 0x1000
++ IXON = 0x400
++ MAP_ANON = 0x20
++ MAP_ANONYMOUS = 0x20
++ MAP_DENYWRITE = 0x800
++ MAP_EXECUTABLE = 0x1000
++ MAP_GROWSDOWN = 0x100
++ MAP_HUGETLB = 0x40000
++ MAP_LOCKED = 0x2000
++ MAP_NONBLOCK = 0x10000
++ MAP_NORESERVE = 0x4000
++ MAP_POPULATE = 0x8000
++ MAP_STACK = 0x20000
++ MAP_SYNC = 0x80000
++ MCL_CURRENT = 0x1
++ MCL_FUTURE = 0x2
++ MCL_ONFAULT = 0x4
++ NFDBITS = 0x40
++ NLDLY = 0x100
++ NOFLSH = 0x80
++ NS_GET_NSTYPE = 0xb703
++ NS_GET_OWNER_UID = 0xb704
++ NS_GET_PARENT = 0xb702
++ NS_GET_USERNS = 0xb701
++ OLCUC = 0x2
++ ONLCR = 0x4
++ O_APPEND = 0x400
++ O_ASYNC = 0x2000
++ O_CLOEXEC = 0x80000
++ O_CREAT = 0x40
++ O_DIRECT = 0x10000
++ O_DIRECTORY = 0x4000
++ O_DSYNC = 0x1000
++ O_EXCL = 0x80
++ O_FSYNC = 0x101000
++ O_LARGEFILE = 0x0
++ O_NDELAY = 0x800
++ O_NOATIME = 0x40000
++ O_NOCTTY = 0x100
++ O_NOFOLLOW = 0x8000
++ O_NONBLOCK = 0x800
++ O_PATH = 0x200000
++ O_RSYNC = 0x101000
++ O_SYNC = 0x101000
++ O_TMPFILE = 0x404000
++ O_TRUNC = 0x200
++ PARENB = 0x100
++ PARODD = 0x200
++ PENDIN = 0x4000
++ PERF_EVENT_IOC_DISABLE = 0x2401
++ PERF_EVENT_IOC_ENABLE = 0x2400
++ PERF_EVENT_IOC_ID = 0x80082407
++ PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b
++ PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409
++ PERF_EVENT_IOC_PERIOD = 0x40082404
++ PERF_EVENT_IOC_QUERY_BPF = 0xc008240a
++ PERF_EVENT_IOC_REFRESH = 0x2402
++ PERF_EVENT_IOC_RESET = 0x2403
++ PERF_EVENT_IOC_SET_BPF = 0x40042408
++ PERF_EVENT_IOC_SET_FILTER = 0x40082406
++ PERF_EVENT_IOC_SET_OUTPUT = 0x2405
++ PPPIOCATTACH = 0x4004743d
++ PPPIOCATTCHAN = 0x40047438
++ PPPIOCCONNECT = 0x4004743a
++ PPPIOCDETACH = 0x4004743c
++ PPPIOCDISCONN = 0x7439
++ PPPIOCGASYNCMAP = 0x80047458
++ PPPIOCGCHAN = 0x80047437
++ PPPIOCGDEBUG = 0x80047441
++ PPPIOCGFLAGS = 0x8004745a
++ PPPIOCGIDLE = 0x8010743f
++ PPPIOCGIDLE32 = 0x8008743f
++ PPPIOCGIDLE64 = 0x8010743f
++ PPPIOCGL2TPSTATS = 0x80487436
++ PPPIOCGMRU = 0x80047453
++ PPPIOCGRASYNCMAP = 0x80047455
++ PPPIOCGUNIT = 0x80047456
++ PPPIOCGXASYNCMAP = 0x80207450
++ PPPIOCSACTIVE = 0x40107446
++ PPPIOCSASYNCMAP = 0x40047457
++ PPPIOCSCOMPRESS = 0x4010744d
++ PPPIOCSDEBUG = 0x40047440
++ PPPIOCSFLAGS = 0x40047459
++ PPPIOCSMAXCID = 0x40047451
++ PPPIOCSMRRU = 0x4004743b
++ PPPIOCSMRU = 0x40047452
++ PPPIOCSNPMODE = 0x4008744b
++ PPPIOCSPASS = 0x40107447
++ PPPIOCSRASYNCMAP = 0x40047454
++ PPPIOCSXASYNCMAP = 0x4020744f
++ PPPIOCXFERUNIT = 0x744e
++ PR_SET_PTRACER_ANY = 0xffffffffffffffff
++ PTRACE_SYSEMU = 0x1f
++ PTRACE_SYSEMU_SINGLESTEP = 0x20
++ RLIMIT_AS = 0x9
++ RLIMIT_MEMLOCK = 0x8
++ RLIMIT_NOFILE = 0x7
++ RLIMIT_NPROC = 0x6
++ RLIMIT_RSS = 0x5
++ RNDADDENTROPY = 0x40085203
++ RNDADDTOENTCNT = 0x40045201
++ RNDCLEARPOOL = 0x5206
++ RNDGETENTCNT = 0x80045200
++ RNDGETPOOL = 0x80085202
++ RNDRESEEDCRNG = 0x5207
++ RNDZAPENTCNT = 0x5204
++ RTC_AIE_OFF = 0x7002
++ RTC_AIE_ON = 0x7001
++ RTC_ALM_READ = 0x80247008
++ RTC_ALM_SET = 0x40247007
++ RTC_EPOCH_READ = 0x8008700d
++ RTC_EPOCH_SET = 0x4008700e
++ RTC_IRQP_READ = 0x8008700b
++ RTC_IRQP_SET = 0x4008700c
++ RTC_PIE_OFF = 0x7006
++ RTC_PIE_ON = 0x7005
++ RTC_PLL_GET = 0x80207011
++ RTC_PLL_SET = 0x40207012
++ RTC_RD_TIME = 0x80247009
++ RTC_SET_TIME = 0x4024700a
++ RTC_UIE_OFF = 0x7004
++ RTC_UIE_ON = 0x7003
++ RTC_VL_CLR = 0x7014
++ RTC_VL_READ = 0x80047013
++ RTC_WIE_OFF = 0x7010
++ RTC_WIE_ON = 0x700f
++ RTC_WKALM_RD = 0x80287010
++ RTC_WKALM_SET = 0x4028700f
++ SCM_TIMESTAMPING = 0x25
++ SCM_TIMESTAMPING_OPT_STATS = 0x36
++ SCM_TIMESTAMPING_PKTINFO = 0x3a
++ SCM_TIMESTAMPNS = 0x23
++ SCM_TXTIME = 0x3d
++ SCM_WIFI_STATUS = 0x29
++ SFD_CLOEXEC = 0x80000
++ SFD_NONBLOCK = 0x800
++ SIOCATMARK = 0x8905
++ SIOCGPGRP = 0x8904
++ SIOCGSTAMPNS_NEW = 0x80108907
++ SIOCGSTAMP_NEW = 0x80108906
++ SIOCINQ = 0x541b
++ SIOCOUTQ = 0x5411
++ SIOCSPGRP = 0x8902
++ SOCK_CLOEXEC = 0x80000
++ SOCK_DGRAM = 0x2
++ SOCK_NONBLOCK = 0x800
++ SOCK_STREAM = 0x1
++ SOL_SOCKET = 0x1
++ SO_ACCEPTCONN = 0x1e
++ SO_ATTACH_BPF = 0x32
++ SO_ATTACH_REUSEPORT_CBPF = 0x33
++ SO_ATTACH_REUSEPORT_EBPF = 0x34
++ SO_BINDTODEVICE = 0x19
++ SO_BINDTOIFINDEX = 0x3e
++ SO_BPF_EXTENSIONS = 0x30
++ SO_BROADCAST = 0x6
++ SO_BSDCOMPAT = 0xe
++ SO_BUSY_POLL = 0x2e
++ SO_CNX_ADVICE = 0x35
++ SO_COOKIE = 0x39
++ SO_DETACH_REUSEPORT_BPF = 0x44
++ SO_DOMAIN = 0x27
++ SO_DONTROUTE = 0x5
++ SO_ERROR = 0x4
++ SO_INCOMING_CPU = 0x31
++ SO_INCOMING_NAPI_ID = 0x38
++ SO_KEEPALIVE = 0x9
++ SO_LINGER = 0xd
++ SO_LOCK_FILTER = 0x2c
++ SO_MARK = 0x24
++ SO_MAX_PACING_RATE = 0x2f
++ SO_MEMINFO = 0x37
++ SO_NOFCS = 0x2b
++ SO_OOBINLINE = 0xa
++ SO_PASSCRED = 0x10
++ SO_PASSSEC = 0x22
++ SO_PEEK_OFF = 0x2a
++ SO_PEERCRED = 0x11
++ SO_PEERGROUPS = 0x3b
++ SO_PEERSEC = 0x1f
++ SO_PROTOCOL = 0x26
++ SO_RCVBUF = 0x8
++ SO_RCVBUFFORCE = 0x21
++ SO_RCVLOWAT = 0x12
++ SO_RCVTIMEO = 0x14
++ SO_RCVTIMEO_NEW = 0x42
++ SO_RCVTIMEO_OLD = 0x14
++ SO_REUSEADDR = 0x2
++ SO_REUSEPORT = 0xf
++ SO_RXQ_OVFL = 0x28
++ SO_SECURITY_AUTHENTICATION = 0x16
++ SO_SECURITY_ENCRYPTION_NETWORK = 0x18
++ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
++ SO_SELECT_ERR_QUEUE = 0x2d
++ SO_SNDBUF = 0x7
++ SO_SNDBUFFORCE = 0x20
++ SO_SNDLOWAT = 0x13
++ SO_SNDTIMEO = 0x15
++ SO_SNDTIMEO_NEW = 0x43
++ SO_SNDTIMEO_OLD = 0x15
++ SO_TIMESTAMPING = 0x25
++ SO_TIMESTAMPING_NEW = 0x41
++ SO_TIMESTAMPING_OLD = 0x25
++ SO_TIMESTAMPNS = 0x23
++ SO_TIMESTAMPNS_NEW = 0x40
++ SO_TIMESTAMPNS_OLD = 0x23
++ SO_TIMESTAMP_NEW = 0x3f
++ SO_TXTIME = 0x3d
++ SO_TYPE = 0x3
++ SO_WIFI_STATUS = 0x29
++ SO_ZEROCOPY = 0x3c
++ SVE_MAGIC = 0x53564501
++ TAB1 = 0x800
++ TAB2 = 0x1000
++ TAB3 = 0x1800
++ TABDLY = 0x1800
++ TCFLSH = 0x540b
++ TCGETA = 0x5405
++ TCGETS = 0x5401
++ TCGETS2 = 0x802c542a
++ TCGETX = 0x5432
++ TCSAFLUSH = 0x2
++ TCSBRK = 0x5409
++ TCSBRKP = 0x5425
++ TCSETA = 0x5406
++ TCSETAF = 0x5408
++ TCSETAW = 0x5407
++ TCSETS = 0x5402
++ TCSETS2 = 0x402c542b
++ TCSETSF = 0x5404
++ TCSETSF2 = 0x402c542d
++ TCSETSW = 0x5403
++ TCSETSW2 = 0x402c542c
++ TCSETX = 0x5433
++ TCSETXF = 0x5434
++ TCSETXW = 0x5435
++ TCXONC = 0x540a
++ TIOCCBRK = 0x5428
++ TIOCCONS = 0x541d
++ TIOCEXCL = 0x540c
++ TIOCGDEV = 0x80045432
++ TIOCGETD = 0x5424
++ TIOCGEXCL = 0x80045440
++ TIOCGICOUNT = 0x545d
++ TIOCGISO7816 = 0x80285442
++ TIOCGLCKTRMIOS = 0x5456
++ TIOCGPGRP = 0x540f
++ TIOCGPKT = 0x80045438
++ TIOCGPTLCK = 0x80045439
++ TIOCGPTN = 0x80045430
++ TIOCGPTPEER = 0x5441
++ TIOCGRS485 = 0x542e
++ TIOCGSERIAL = 0x541e
++ TIOCGSID = 0x5429
++ TIOCGSOFTCAR = 0x5419
++ TIOCGWINSZ = 0x5413
++ TIOCINQ = 0x541b
++ TIOCLINUX = 0x541c
++ TIOCMBIC = 0x5417
++ TIOCMBIS = 0x5416
++ TIOCMGET = 0x5415
++ TIOCMIWAIT = 0x545c
++ TIOCMSET = 0x5418
++ TIOCM_CAR = 0x40
++ TIOCM_CD = 0x40
++ TIOCM_CTS = 0x20
++ TIOCM_DSR = 0x100
++ TIOCM_RI = 0x80
++ TIOCM_RNG = 0x80
++ TIOCM_SR = 0x10
++ TIOCM_ST = 0x8
++ TIOCNOTTY = 0x5422
++ TIOCNXCL = 0x540d
++ TIOCOUTQ = 0x5411
++ TIOCPKT = 0x5420
++ TIOCSBRK = 0x5427
++ TIOCSCTTY = 0x540e
++ TIOCSERCONFIG = 0x5453
++ TIOCSERGETLSR = 0x5459
++ TIOCSERGETMULTI = 0x545a
++ TIOCSERGSTRUCT = 0x5458
++ TIOCSERGWILD = 0x5454
++ TIOCSERSETMULTI = 0x545b
++ TIOCSERSWILD = 0x5455
++ TIOCSER_TEMT = 0x1
++ TIOCSETD = 0x5423
++ TIOCSIG = 0x40045436
++ TIOCSISO7816 = 0xc0285443
++ TIOCSLCKTRMIOS = 0x5457
++ TIOCSPGRP = 0x5410
++ TIOCSPTLCK = 0x40045431
++ TIOCSRS485 = 0x542f
++ TIOCSSERIAL = 0x541f
++ TIOCSSOFTCAR = 0x541a
++ TIOCSTI = 0x5412
++ TIOCSWINSZ = 0x5414
++ TIOCVHANGUP = 0x5437
++ TOSTOP = 0x100
++ TUNATTACHFILTER = 0x401054d5
++ TUNDETACHFILTER = 0x401054d6
++ TUNGETDEVNETNS = 0x54e3
++ TUNGETFEATURES = 0x800454cf
++ TUNGETFILTER = 0x801054db
++ TUNGETIFF = 0x800454d2
++ TUNGETSNDBUF = 0x800454d3
++ TUNGETVNETBE = 0x800454df
++ TUNGETVNETHDRSZ = 0x800454d7
++ TUNGETVNETLE = 0x800454dd
++ TUNSETCARRIER = 0x400454e2
++ TUNSETDEBUG = 0x400454c9
++ TUNSETFILTEREBPF = 0x800454e1
++ TUNSETGROUP = 0x400454ce
++ TUNSETIFF = 0x400454ca
++ TUNSETIFINDEX = 0x400454da
++ TUNSETLINK = 0x400454cd
++ TUNSETNOCSUM = 0x400454c8
++ TUNSETOFFLOAD = 0x400454d0
++ TUNSETOWNER = 0x400454cc
++ TUNSETPERSIST = 0x400454cb
++ TUNSETQUEUE = 0x400454d9
++ TUNSETSNDBUF = 0x400454d4
++ TUNSETSTEERINGEBPF = 0x800454e0
++ TUNSETTXFILTER = 0x400454d1
++ TUNSETVNETBE = 0x400454de
++ TUNSETVNETHDRSZ = 0x400454d8
++ TUNSETVNETLE = 0x400454dc
++ UBI_IOCATT = 0x40186f40
++ UBI_IOCDET = 0x40046f41
++ UBI_IOCEBCH = 0x40044f02
++ UBI_IOCEBER = 0x40044f01
++ UBI_IOCEBISMAP = 0x80044f05
++ UBI_IOCEBMAP = 0x40084f03
++ UBI_IOCEBUNMAP = 0x40044f04
++ UBI_IOCMKVOL = 0x40986f00
++ UBI_IOCRMVOL = 0x40046f01
++ UBI_IOCRNVOL = 0x51106f03
++ UBI_IOCRPEB = 0x40046f04
++ UBI_IOCRSVOL = 0x400c6f02
++ UBI_IOCSETVOLPROP = 0x40104f06
++ UBI_IOCSPEB = 0x40046f05
++ UBI_IOCVOLCRBLK = 0x40804f07
++ UBI_IOCVOLRMBLK = 0x4f08
++ UBI_IOCVOLUP = 0x40084f00
++ VDISCARD = 0xd
++ VEOF = 0x4
++ VEOL = 0xb
++ VEOL2 = 0x10
++ VMIN = 0x6
++ VREPRINT = 0xc
++ VSTART = 0x8
++ VSTOP = 0x9
++ VSUSP = 0xa
++ VSWTC = 0x7
++ VT1 = 0x4000
++ VTDLY = 0x4000
++ VTIME = 0x5
++ VWERASE = 0xe
++ WDIOC_GETBOOTSTATUS = 0x80045702
++ WDIOC_GETPRETIMEOUT = 0x80045709
++ WDIOC_GETSTATUS = 0x80045701
++ WDIOC_GETSUPPORT = 0x80285700
++ WDIOC_GETTEMP = 0x80045703
++ WDIOC_GETTIMELEFT = 0x8004570a
++ WDIOC_GETTIMEOUT = 0x80045707
++ WDIOC_KEEPALIVE = 0x80045705
++ WDIOC_SETOPTIONS = 0x80045704
++ WORDSIZE = 0x40
++ XCASE = 0x4
++ XTABS = 0x1800
+ )
+
+ // Errors
+ const (
+- E2BIG = syscall.Errno(0x7)
+- EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x62)
+ EADDRNOTAVAIL = syscall.Errno(0x63)
+ EADV = syscall.Errno(0x44)
+ EAFNOSUPPORT = syscall.Errno(0x61)
+- EAGAIN = syscall.Errno(0xb)
+ EALREADY = syscall.Errno(0x72)
+ EBADE = syscall.Errno(0x34)
+- EBADF = syscall.Errno(0x9)
+ EBADFD = syscall.Errno(0x4d)
+ EBADMSG = syscall.Errno(0x4a)
+ EBADR = syscall.Errno(0x35)
+ EBADRQC = syscall.Errno(0x38)
+ EBADSLT = syscall.Errno(0x39)
+ EBFONT = syscall.Errno(0x3b)
+- EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x7d)
+- ECHILD = syscall.Errno(0xa)
+ ECHRNG = syscall.Errno(0x2c)
+ ECOMM = syscall.Errno(0x46)
+ ECONNABORTED = syscall.Errno(0x67)
+@@ -1871,23 +493,15 @@ const (
+ EDEADLK = syscall.Errno(0x23)
+ EDEADLOCK = syscall.Errno(0x23)
+ EDESTADDRREQ = syscall.Errno(0x59)
+- EDOM = syscall.Errno(0x21)
+ EDOTDOT = syscall.Errno(0x49)
+ EDQUOT = syscall.Errno(0x7a)
+- EEXIST = syscall.Errno(0x11)
+- EFAULT = syscall.Errno(0xe)
+- EFBIG = syscall.Errno(0x1b)
+ EHOSTDOWN = syscall.Errno(0x70)
+ EHOSTUNREACH = syscall.Errno(0x71)
+ EHWPOISON = syscall.Errno(0x85)
+ EIDRM = syscall.Errno(0x2b)
+ EILSEQ = syscall.Errno(0x54)
+ EINPROGRESS = syscall.Errno(0x73)
+- EINTR = syscall.Errno(0x4)
+- EINVAL = syscall.Errno(0x16)
+- EIO = syscall.Errno(0x5)
+ EISCONN = syscall.Errno(0x6a)
+- EISDIR = syscall.Errno(0x15)
+ EISNAM = syscall.Errno(0x78)
+ EKEYEXPIRED = syscall.Errno(0x7f)
+ EKEYREJECTED = syscall.Errno(0x81)
+@@ -1904,8 +518,6 @@ const (
+ ELNRNG = syscall.Errno(0x30)
+ ELOOP = syscall.Errno(0x28)
+ EMEDIUMTYPE = syscall.Errno(0x7c)
+- EMFILE = syscall.Errno(0x18)
+- EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x5a)
+ EMULTIHOP = syscall.Errno(0x48)
+ ENAMETOOLONG = syscall.Errno(0x24)
+@@ -1913,103 +525,70 @@ const (
+ ENETDOWN = syscall.Errno(0x64)
+ ENETRESET = syscall.Errno(0x66)
+ ENETUNREACH = syscall.Errno(0x65)
+- ENFILE = syscall.Errno(0x17)
+ ENOANO = syscall.Errno(0x37)
+ ENOBUFS = syscall.Errno(0x69)
+ ENOCSI = syscall.Errno(0x32)
+ ENODATA = syscall.Errno(0x3d)
+- ENODEV = syscall.Errno(0x13)
+- ENOENT = syscall.Errno(0x2)
+- ENOEXEC = syscall.Errno(0x8)
+ ENOKEY = syscall.Errno(0x7e)
+ ENOLCK = syscall.Errno(0x25)
+ ENOLINK = syscall.Errno(0x43)
+ ENOMEDIUM = syscall.Errno(0x7b)
+- ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x2a)
+ ENONET = syscall.Errno(0x40)
+ ENOPKG = syscall.Errno(0x41)
+ ENOPROTOOPT = syscall.Errno(0x5c)
+- ENOSPC = syscall.Errno(0x1c)
+ ENOSR = syscall.Errno(0x3f)
+ ENOSTR = syscall.Errno(0x3c)
+ ENOSYS = syscall.Errno(0x26)
+- ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x6b)
+- ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x27)
+ ENOTNAM = syscall.Errno(0x76)
+ ENOTRECOVERABLE = syscall.Errno(0x83)
+ ENOTSOCK = syscall.Errno(0x58)
+ ENOTSUP = syscall.Errno(0x5f)
+- ENOTTY = syscall.Errno(0x19)
+ ENOTUNIQ = syscall.Errno(0x4c)
+- ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x5f)
+ EOVERFLOW = syscall.Errno(0x4b)
+ EOWNERDEAD = syscall.Errno(0x82)
+- EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x60)
+- EPIPE = syscall.Errno(0x20)
+ EPROTO = syscall.Errno(0x47)
+ EPROTONOSUPPORT = syscall.Errno(0x5d)
+ EPROTOTYPE = syscall.Errno(0x5b)
+- ERANGE = syscall.Errno(0x22)
+ EREMCHG = syscall.Errno(0x4e)
+ EREMOTE = syscall.Errno(0x42)
+ EREMOTEIO = syscall.Errno(0x79)
+ ERESTART = syscall.Errno(0x55)
+ ERFKILL = syscall.Errno(0x84)
+- EROFS = syscall.Errno(0x1e)
+ ESHUTDOWN = syscall.Errno(0x6c)
+ ESOCKTNOSUPPORT = syscall.Errno(0x5e)
+- ESPIPE = syscall.Errno(0x1d)
+- ESRCH = syscall.Errno(0x3)
+ ESRMNT = syscall.Errno(0x45)
+ ESTALE = syscall.Errno(0x74)
+ ESTRPIPE = syscall.Errno(0x56)
+ ETIME = syscall.Errno(0x3e)
+ ETIMEDOUT = syscall.Errno(0x6e)
+ ETOOMANYREFS = syscall.Errno(0x6d)
+- ETXTBSY = syscall.Errno(0x1a)
+ EUCLEAN = syscall.Errno(0x75)
+ EUNATCH = syscall.Errno(0x31)
+ EUSERS = syscall.Errno(0x57)
+- EWOULDBLOCK = syscall.Errno(0xb)
+- EXDEV = syscall.Errno(0x12)
+ EXFULL = syscall.Errno(0x36)
+ )
+
+ // Signals
+ const (
+- SIGABRT = syscall.Signal(0x6)
+- SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0x7)
+ SIGCHLD = syscall.Signal(0x11)
+ SIGCLD = syscall.Signal(0x11)
+ SIGCONT = syscall.Signal(0x12)
+- SIGFPE = syscall.Signal(0x8)
+- SIGHUP = syscall.Signal(0x1)
+- SIGILL = syscall.Signal(0x4)
+- SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x1d)
+- SIGIOT = syscall.Signal(0x6)
+- SIGKILL = syscall.Signal(0x9)
+- SIGPIPE = syscall.Signal(0xd)
+ SIGPOLL = syscall.Signal(0x1d)
+ SIGPROF = syscall.Signal(0x1b)
+ SIGPWR = syscall.Signal(0x1e)
+- SIGQUIT = syscall.Signal(0x3)
+- SIGSEGV = syscall.Signal(0xb)
+ SIGSTKFLT = syscall.Signal(0x10)
+ SIGSTOP = syscall.Signal(0x13)
+ SIGSYS = syscall.Signal(0x1f)
+- SIGTERM = syscall.Signal(0xf)
+- SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x14)
+ SIGTTIN = syscall.Signal(0x15)
+ SIGTTOU = syscall.Signal(0x16)
+- SIGUNUSED = syscall.Signal(0x1f)
+ SIGURG = syscall.Signal(0x17)
+ SIGUSR1 = syscall.Signal(0xa)
+ SIGUSR2 = syscall.Signal(0xc)
+@@ -2020,171 +599,179 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "no such device or address",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource temporarily unavailable",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "device or resource busy",
+- 17: "file exists",
+- 18: "invalid cross-device link",
+- 19: "no such device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "numerical result out of range",
+- 35: "resource deadlock avoided",
+- 36: "file name too long",
+- 37: "no locks available",
+- 38: "function not implemented",
+- 39: "directory not empty",
+- 40: "too many levels of symbolic links",
+- 42: "no message of desired type",
+- 43: "identifier removed",
+- 44: "channel number out of range",
+- 45: "level 2 not synchronized",
+- 46: "level 3 halted",
+- 47: "level 3 reset",
+- 48: "link number out of range",
+- 49: "protocol driver not attached",
+- 50: "no CSI structure available",
+- 51: "level 2 halted",
+- 52: "invalid exchange",
+- 53: "invalid request descriptor",
+- 54: "exchange full",
+- 55: "no anode",
+- 56: "invalid request code",
+- 57: "invalid slot",
+- 59: "bad font file format",
+- 60: "device not a stream",
+- 61: "no data available",
+- 62: "timer expired",
+- 63: "out of streams resources",
+- 64: "machine is not on the network",
+- 65: "package not installed",
+- 66: "object is remote",
+- 67: "link has been severed",
+- 68: "advertise error",
+- 69: "srmount error",
+- 70: "communication error on send",
+- 71: "protocol error",
+- 72: "multihop attempted",
+- 73: "RFS specific error",
+- 74: "bad message",
+- 75: "value too large for defined data type",
+- 76: "name not unique on network",
+- 77: "file descriptor in bad state",
+- 78: "remote address changed",
+- 79: "can not access a needed shared library",
+- 80: "accessing a corrupted shared library",
+- 81: ".lib section in a.out corrupted",
+- 82: "attempting to link in too many shared libraries",
+- 83: "cannot exec a shared library directly",
+- 84: "invalid or incomplete multibyte or wide character",
+- 85: "interrupted system call should be restarted",
+- 86: "streams pipe error",
+- 87: "too many users",
+- 88: "socket operation on non-socket",
+- 89: "destination address required",
+- 90: "message too long",
+- 91: "protocol wrong type for socket",
+- 92: "protocol not available",
+- 93: "protocol not supported",
+- 94: "socket type not supported",
+- 95: "operation not supported",
+- 96: "protocol family not supported",
+- 97: "address family not supported by protocol",
+- 98: "address already in use",
+- 99: "cannot assign requested address",
+- 100: "network is down",
+- 101: "network is unreachable",
+- 102: "network dropped connection on reset",
+- 103: "software caused connection abort",
+- 104: "connection reset by peer",
+- 105: "no buffer space available",
+- 106: "transport endpoint is already connected",
+- 107: "transport endpoint is not connected",
+- 108: "cannot send after transport endpoint shutdown",
+- 109: "too many references: cannot splice",
+- 110: "connection timed out",
+- 111: "connection refused",
+- 112: "host is down",
+- 113: "no route to host",
+- 114: "operation already in progress",
+- 115: "operation now in progress",
+- 116: "stale file handle",
+- 117: "structure needs cleaning",
+- 118: "not a XENIX named type file",
+- 119: "no XENIX semaphores available",
+- 120: "is a named type file",
+- 121: "remote I/O error",
+- 122: "disk quota exceeded",
+- 123: "no medium found",
+- 124: "wrong medium type",
+- 125: "operation canceled",
+- 126: "required key not available",
+- 127: "key has expired",
+- 128: "key has been revoked",
+- 129: "key was rejected by service",
+- 130: "owner died",
+- 131: "state not recoverable",
+- 132: "operation not possible due to RF-kill",
+- 133: "memory page has hardware error",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "no such device or address"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EAGAIN", "resource temporarily unavailable"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device or resource busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "invalid cross-device link"},
++ {19, "ENODEV", "no such device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "numerical result out of range"},
++ {35, "EDEADLK", "resource deadlock avoided"},
++ {36, "ENAMETOOLONG", "file name too long"},
++ {37, "ENOLCK", "no locks available"},
++ {38, "ENOSYS", "function not implemented"},
++ {39, "ENOTEMPTY", "directory not empty"},
++ {40, "ELOOP", "too many levels of symbolic links"},
++ {42, "ENOMSG", "no message of desired type"},
++ {43, "EIDRM", "identifier removed"},
++ {44, "ECHRNG", "channel number out of range"},
++ {45, "EL2NSYNC", "level 2 not synchronized"},
++ {46, "EL3HLT", "level 3 halted"},
++ {47, "EL3RST", "level 3 reset"},
++ {48, "ELNRNG", "link number out of range"},
++ {49, "EUNATCH", "protocol driver not attached"},
++ {50, "ENOCSI", "no CSI structure available"},
++ {51, "EL2HLT", "level 2 halted"},
++ {52, "EBADE", "invalid exchange"},
++ {53, "EBADR", "invalid request descriptor"},
++ {54, "EXFULL", "exchange full"},
++ {55, "ENOANO", "no anode"},
++ {56, "EBADRQC", "invalid request code"},
++ {57, "EBADSLT", "invalid slot"},
++ {59, "EBFONT", "bad font file format"},
++ {60, "ENOSTR", "device not a stream"},
++ {61, "ENODATA", "no data available"},
++ {62, "ETIME", "timer expired"},
++ {63, "ENOSR", "out of streams resources"},
++ {64, "ENONET", "machine is not on the network"},
++ {65, "ENOPKG", "package not installed"},
++ {66, "EREMOTE", "object is remote"},
++ {67, "ENOLINK", "link has been severed"},
++ {68, "EADV", "advertise error"},
++ {69, "ESRMNT", "srmount error"},
++ {70, "ECOMM", "communication error on send"},
++ {71, "EPROTO", "protocol error"},
++ {72, "EMULTIHOP", "multihop attempted"},
++ {73, "EDOTDOT", "RFS specific error"},
++ {74, "EBADMSG", "bad message"},
++ {75, "EOVERFLOW", "value too large for defined data type"},
++ {76, "ENOTUNIQ", "name not unique on network"},
++ {77, "EBADFD", "file descriptor in bad state"},
++ {78, "EREMCHG", "remote address changed"},
++ {79, "ELIBACC", "can not access a needed shared library"},
++ {80, "ELIBBAD", "accessing a corrupted shared library"},
++ {81, "ELIBSCN", ".lib section in a.out corrupted"},
++ {82, "ELIBMAX", "attempting to link in too many shared libraries"},
++ {83, "ELIBEXEC", "cannot exec a shared library directly"},
++ {84, "EILSEQ", "invalid or incomplete multibyte or wide character"},
++ {85, "ERESTART", "interrupted system call should be restarted"},
++ {86, "ESTRPIPE", "streams pipe error"},
++ {87, "EUSERS", "too many users"},
++ {88, "ENOTSOCK", "socket operation on non-socket"},
++ {89, "EDESTADDRREQ", "destination address required"},
++ {90, "EMSGSIZE", "message too long"},
++ {91, "EPROTOTYPE", "protocol wrong type for socket"},
++ {92, "ENOPROTOOPT", "protocol not available"},
++ {93, "EPROTONOSUPPORT", "protocol not supported"},
++ {94, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {95, "ENOTSUP", "operation not supported"},
++ {96, "EPFNOSUPPORT", "protocol family not supported"},
++ {97, "EAFNOSUPPORT", "address family not supported by protocol"},
++ {98, "EADDRINUSE", "address already in use"},
++ {99, "EADDRNOTAVAIL", "cannot assign requested address"},
++ {100, "ENETDOWN", "network is down"},
++ {101, "ENETUNREACH", "network is unreachable"},
++ {102, "ENETRESET", "network dropped connection on reset"},
++ {103, "ECONNABORTED", "software caused connection abort"},
++ {104, "ECONNRESET", "connection reset by peer"},
++ {105, "ENOBUFS", "no buffer space available"},
++ {106, "EISCONN", "transport endpoint is already connected"},
++ {107, "ENOTCONN", "transport endpoint is not connected"},
++ {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"},
++ {109, "ETOOMANYREFS", "too many references: cannot splice"},
++ {110, "ETIMEDOUT", "connection timed out"},
++ {111, "ECONNREFUSED", "connection refused"},
++ {112, "EHOSTDOWN", "host is down"},
++ {113, "EHOSTUNREACH", "no route to host"},
++ {114, "EALREADY", "operation already in progress"},
++ {115, "EINPROGRESS", "operation now in progress"},
++ {116, "ESTALE", "stale file handle"},
++ {117, "EUCLEAN", "structure needs cleaning"},
++ {118, "ENOTNAM", "not a XENIX named type file"},
++ {119, "ENAVAIL", "no XENIX semaphores available"},
++ {120, "EISNAM", "is a named type file"},
++ {121, "EREMOTEIO", "remote I/O error"},
++ {122, "EDQUOT", "disk quota exceeded"},
++ {123, "ENOMEDIUM", "no medium found"},
++ {124, "EMEDIUMTYPE", "wrong medium type"},
++ {125, "ECANCELED", "operation canceled"},
++ {126, "ENOKEY", "required key not available"},
++ {127, "EKEYEXPIRED", "key has expired"},
++ {128, "EKEYREVOKED", "key has been revoked"},
++ {129, "EKEYREJECTED", "key was rejected by service"},
++ {130, "EOWNERDEAD", "owner died"},
++ {131, "ENOTRECOVERABLE", "state not recoverable"},
++ {132, "ERFKILL", "operation not possible due to RF-kill"},
++ {133, "EHWPOISON", "memory page has hardware error"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/breakpoint trap",
+- 6: "aborted",
+- 7: "bus error",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "user defined signal 1",
+- 11: "segmentation fault",
+- 12: "user defined signal 2",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "stack fault",
+- 17: "child exited",
+- 18: "continued",
+- 19: "stopped (signal)",
+- 20: "stopped",
+- 21: "stopped (tty input)",
+- 22: "stopped (tty output)",
+- 23: "urgent I/O condition",
+- 24: "CPU time limit exceeded",
+- 25: "file size limit exceeded",
+- 26: "virtual timer expired",
+- 27: "profiling timer expired",
+- 28: "window changed",
+- 29: "I/O possible",
+- 30: "power failure",
+- 31: "bad system call",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/breakpoint trap"},
++ {6, "SIGABRT", "aborted"},
++ {7, "SIGBUS", "bus error"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGUSR1", "user defined signal 1"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGUSR2", "user defined signal 2"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGSTKFLT", "stack fault"},
++ {17, "SIGCHLD", "child exited"},
++ {18, "SIGCONT", "continued"},
++ {19, "SIGSTOP", "stopped (signal)"},
++ {20, "SIGTSTP", "stopped"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGURG", "urgent I/O condition"},
++ {24, "SIGXCPU", "CPU time limit exceeded"},
++ {25, "SIGXFSZ", "file size limit exceeded"},
++ {26, "SIGVTALRM", "virtual timer expired"},
++ {27, "SIGPROF", "profiling timer expired"},
++ {28, "SIGWINCH", "window changed"},
++ {29, "SIGIO", "I/O possible"},
++ {30, "SIGPWR", "power failure"},
++ {31, "SIGSYS", "bad system call"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
+index 900f568a..4826bd70 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
+@@ -3,7 +3,7 @@
+
+ // +build mips,linux
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
+
+ package unix
+@@ -11,1873 +11,489 @@ package unix
+ import "syscall"
+
+ const (
+- AF_ALG = 0x26
+- AF_APPLETALK = 0x5
+- AF_ASH = 0x12
+- AF_ATMPVC = 0x8
+- AF_ATMSVC = 0x14
+- AF_AX25 = 0x3
+- AF_BLUETOOTH = 0x1f
+- AF_BRIDGE = 0x7
+- AF_CAIF = 0x25
+- AF_CAN = 0x1d
+- AF_DECnet = 0xc
+- AF_ECONET = 0x13
+- AF_FILE = 0x1
+- AF_IB = 0x1b
+- AF_IEEE802154 = 0x24
+- AF_INET = 0x2
+- AF_INET6 = 0xa
+- AF_IPX = 0x4
+- AF_IRDA = 0x17
+- AF_ISDN = 0x22
+- AF_IUCV = 0x20
+- AF_KCM = 0x29
+- AF_KEY = 0xf
+- AF_LLC = 0x1a
+- AF_LOCAL = 0x1
+- AF_MAX = 0x2b
+- AF_MPLS = 0x1c
+- AF_NETBEUI = 0xd
+- AF_NETLINK = 0x10
+- AF_NETROM = 0x6
+- AF_NFC = 0x27
+- AF_PACKET = 0x11
+- AF_PHONET = 0x23
+- AF_PPPOX = 0x18
+- AF_QIPCRTR = 0x2a
+- AF_RDS = 0x15
+- AF_ROSE = 0xb
+- AF_ROUTE = 0x10
+- AF_RXRPC = 0x21
+- AF_SECURITY = 0xe
+- AF_SNA = 0x16
+- AF_TIPC = 0x1e
+- AF_UNIX = 0x1
+- AF_UNSPEC = 0x0
+- AF_VSOCK = 0x28
+- AF_WANPIPE = 0x19
+- AF_X25 = 0x9
+- ALG_OP_DECRYPT = 0x0
+- ALG_OP_ENCRYPT = 0x1
+- ALG_SET_AEAD_ASSOCLEN = 0x4
+- ALG_SET_AEAD_AUTHSIZE = 0x5
+- ALG_SET_IV = 0x2
+- ALG_SET_KEY = 0x1
+- ALG_SET_OP = 0x3
+- ARPHRD_6LOWPAN = 0x339
+- ARPHRD_ADAPT = 0x108
+- ARPHRD_APPLETLK = 0x8
+- ARPHRD_ARCNET = 0x7
+- ARPHRD_ASH = 0x30d
+- ARPHRD_ATM = 0x13
+- ARPHRD_AX25 = 0x3
+- ARPHRD_BIF = 0x307
+- ARPHRD_CAIF = 0x336
+- ARPHRD_CAN = 0x118
+- ARPHRD_CHAOS = 0x5
+- ARPHRD_CISCO = 0x201
+- ARPHRD_CSLIP = 0x101
+- ARPHRD_CSLIP6 = 0x103
+- ARPHRD_DDCMP = 0x205
+- ARPHRD_DLCI = 0xf
+- ARPHRD_ECONET = 0x30e
+- ARPHRD_EETHER = 0x2
+- ARPHRD_ETHER = 0x1
+- ARPHRD_EUI64 = 0x1b
+- ARPHRD_FCAL = 0x311
+- ARPHRD_FCFABRIC = 0x313
+- ARPHRD_FCPL = 0x312
+- ARPHRD_FCPP = 0x310
+- ARPHRD_FDDI = 0x306
+- ARPHRD_FRAD = 0x302
+- ARPHRD_HDLC = 0x201
+- ARPHRD_HIPPI = 0x30c
+- ARPHRD_HWX25 = 0x110
+- ARPHRD_IEEE1394 = 0x18
+- ARPHRD_IEEE802 = 0x6
+- ARPHRD_IEEE80211 = 0x321
+- ARPHRD_IEEE80211_PRISM = 0x322
+- ARPHRD_IEEE80211_RADIOTAP = 0x323
+- ARPHRD_IEEE802154 = 0x324
+- ARPHRD_IEEE802154_MONITOR = 0x325
+- ARPHRD_IEEE802_TR = 0x320
+- ARPHRD_INFINIBAND = 0x20
+- ARPHRD_IP6GRE = 0x337
+- ARPHRD_IPDDP = 0x309
+- ARPHRD_IPGRE = 0x30a
+- ARPHRD_IRDA = 0x30f
+- ARPHRD_LAPB = 0x204
+- ARPHRD_LOCALTLK = 0x305
+- ARPHRD_LOOPBACK = 0x304
+- ARPHRD_METRICOM = 0x17
+- ARPHRD_NETLINK = 0x338
+- ARPHRD_NETROM = 0x0
+- ARPHRD_NONE = 0xfffe
+- ARPHRD_PHONET = 0x334
+- ARPHRD_PHONET_PIPE = 0x335
+- ARPHRD_PIMREG = 0x30b
+- ARPHRD_PPP = 0x200
+- ARPHRD_PRONET = 0x4
+- ARPHRD_RAWHDLC = 0x206
+- ARPHRD_ROSE = 0x10e
+- ARPHRD_RSRVD = 0x104
+- ARPHRD_SIT = 0x308
+- ARPHRD_SKIP = 0x303
+- ARPHRD_SLIP = 0x100
+- ARPHRD_SLIP6 = 0x102
+- ARPHRD_TUNNEL = 0x300
+- ARPHRD_TUNNEL6 = 0x301
+- ARPHRD_VOID = 0xffff
+- ARPHRD_X25 = 0x10f
+- B0 = 0x0
+- B1000000 = 0x1008
+- B110 = 0x3
+- B115200 = 0x1002
+- B1152000 = 0x1009
+- B1200 = 0x9
+- B134 = 0x4
+- B150 = 0x5
+- B1500000 = 0x100a
+- B1800 = 0xa
+- B19200 = 0xe
+- B200 = 0x6
+- B2000000 = 0x100b
+- B230400 = 0x1003
+- B2400 = 0xb
+- B2500000 = 0x100c
+- B300 = 0x7
+- B3000000 = 0x100d
+- B3500000 = 0x100e
+- B38400 = 0xf
+- B4000000 = 0x100f
+- B460800 = 0x1004
+- B4800 = 0xc
+- B50 = 0x1
+- B500000 = 0x1005
+- B57600 = 0x1001
+- B576000 = 0x1006
+- B600 = 0x8
+- B75 = 0x2
+- B921600 = 0x1007
+- B9600 = 0xd
+- BLKBSZGET = 0x40041270
+- BLKBSZSET = 0x80041271
+- BLKFLSBUF = 0x20001261
+- BLKFRAGET = 0x20001265
+- BLKFRASET = 0x20001264
+- BLKGETSIZE = 0x20001260
+- BLKGETSIZE64 = 0x40041272
+- BLKPBSZGET = 0x2000127b
+- BLKRAGET = 0x20001263
+- BLKRASET = 0x20001262
+- BLKROGET = 0x2000125e
+- BLKROSET = 0x2000125d
+- BLKRRPART = 0x2000125f
+- BLKSECTGET = 0x20001267
+- BLKSECTSET = 0x20001266
+- BLKSSZGET = 0x20001268
+- BOTHER = 0x1000
+- BPF_A = 0x10
+- BPF_ABS = 0x20
+- BPF_ADD = 0x0
+- BPF_ALU = 0x4
+- BPF_AND = 0x50
+- BPF_B = 0x10
+- BPF_DIV = 0x30
+- BPF_H = 0x8
+- BPF_IMM = 0x0
+- BPF_IND = 0x40
+- BPF_JA = 0x0
+- BPF_JEQ = 0x10
+- BPF_JGE = 0x30
+- BPF_JGT = 0x20
+- BPF_JMP = 0x5
+- BPF_JSET = 0x40
+- BPF_K = 0x0
+- BPF_LD = 0x0
+- BPF_LDX = 0x1
+- BPF_LEN = 0x80
+- BPF_LL_OFF = -0x200000
+- BPF_LSH = 0x60
+- BPF_MAJOR_VERSION = 0x1
+- BPF_MAXINSNS = 0x1000
+- BPF_MEM = 0x60
+- BPF_MEMWORDS = 0x10
+- BPF_MINOR_VERSION = 0x1
+- BPF_MISC = 0x7
+- BPF_MOD = 0x90
+- BPF_MSH = 0xa0
+- BPF_MUL = 0x20
+- BPF_NEG = 0x80
+- BPF_NET_OFF = -0x100000
+- BPF_OR = 0x40
+- BPF_RET = 0x6
+- BPF_RSH = 0x70
+- BPF_ST = 0x2
+- BPF_STX = 0x3
+- BPF_SUB = 0x10
+- BPF_TAX = 0x0
+- BPF_TXA = 0x80
+- BPF_W = 0x0
+- BPF_X = 0x8
+- BPF_XOR = 0xa0
+- BRKINT = 0x2
+- BS0 = 0x0
+- BS1 = 0x2000
+- BSDLY = 0x2000
+- CAN_BCM = 0x2
+- CAN_EFF_FLAG = 0x80000000
+- CAN_EFF_ID_BITS = 0x1d
+- CAN_EFF_MASK = 0x1fffffff
+- CAN_ERR_FLAG = 0x20000000
+- CAN_ERR_MASK = 0x1fffffff
+- CAN_INV_FILTER = 0x20000000
+- CAN_ISOTP = 0x6
+- CAN_MAX_DLC = 0x8
+- CAN_MAX_DLEN = 0x8
+- CAN_MCNET = 0x5
+- CAN_MTU = 0x10
+- CAN_NPROTO = 0x7
+- CAN_RAW = 0x1
+- CAN_RAW_FILTER_MAX = 0x200
+- CAN_RTR_FLAG = 0x40000000
+- CAN_SFF_ID_BITS = 0xb
+- CAN_SFF_MASK = 0x7ff
+- CAN_TP16 = 0x3
+- CAN_TP20 = 0x4
+- CBAUD = 0x100f
+- CBAUDEX = 0x1000
+- CFLUSH = 0xf
+- CIBAUD = 0x100f0000
+- CLOCAL = 0x800
+- CLOCK_BOOTTIME = 0x7
+- CLOCK_BOOTTIME_ALARM = 0x9
+- CLOCK_DEFAULT = 0x0
+- CLOCK_EXT = 0x1
+- CLOCK_INT = 0x2
+- CLOCK_MONOTONIC = 0x1
+- CLOCK_MONOTONIC_COARSE = 0x6
+- CLOCK_MONOTONIC_RAW = 0x4
+- CLOCK_PROCESS_CPUTIME_ID = 0x2
+- CLOCK_REALTIME = 0x0
+- CLOCK_REALTIME_ALARM = 0x8
+- CLOCK_REALTIME_COARSE = 0x5
+- CLOCK_TAI = 0xb
+- CLOCK_THREAD_CPUTIME_ID = 0x3
+- CLOCK_TXFROMRX = 0x4
+- CLOCK_TXINT = 0x3
+- CLONE_CHILD_CLEARTID = 0x200000
+- CLONE_CHILD_SETTID = 0x1000000
+- CLONE_DETACHED = 0x400000
+- CLONE_FILES = 0x400
+- CLONE_FS = 0x200
+- CLONE_IO = 0x80000000
+- CLONE_NEWCGROUP = 0x2000000
+- CLONE_NEWIPC = 0x8000000
+- CLONE_NEWNET = 0x40000000
+- CLONE_NEWNS = 0x20000
+- CLONE_NEWPID = 0x20000000
+- CLONE_NEWUSER = 0x10000000
+- CLONE_NEWUTS = 0x4000000
+- CLONE_PARENT = 0x8000
+- CLONE_PARENT_SETTID = 0x100000
+- CLONE_PTRACE = 0x2000
+- CLONE_SETTLS = 0x80000
+- CLONE_SIGHAND = 0x800
+- CLONE_SYSVSEM = 0x40000
+- CLONE_THREAD = 0x10000
+- CLONE_UNTRACED = 0x800000
+- CLONE_VFORK = 0x4000
+- CLONE_VM = 0x100
+- CMSPAR = 0x40000000
+- CR0 = 0x0
+- CR1 = 0x200
+- CR2 = 0x400
+- CR3 = 0x600
+- CRDLY = 0x600
+- CREAD = 0x80
+- CRTSCTS = 0x80000000
+- CS5 = 0x0
+- CS6 = 0x10
+- CS7 = 0x20
+- CS8 = 0x30
+- CSIGNAL = 0xff
+- CSIZE = 0x30
+- CSTART = 0x11
+- CSTATUS = 0x0
+- CSTOP = 0x13
+- CSTOPB = 0x40
+- CSUSP = 0x1a
+- DT_BLK = 0x6
+- DT_CHR = 0x2
+- DT_DIR = 0x4
+- DT_FIFO = 0x1
+- DT_LNK = 0xa
+- DT_REG = 0x8
+- DT_SOCK = 0xc
+- DT_UNKNOWN = 0x0
+- DT_WHT = 0xe
+- ECHO = 0x8
+- ECHOCTL = 0x200
+- ECHOE = 0x10
+- ECHOK = 0x20
+- ECHOKE = 0x800
+- ECHONL = 0x40
+- ECHOPRT = 0x400
+- EFD_CLOEXEC = 0x80000
+- EFD_NONBLOCK = 0x80
+- EFD_SEMAPHORE = 0x1
+- ENCODING_DEFAULT = 0x0
+- ENCODING_FM_MARK = 0x3
+- ENCODING_FM_SPACE = 0x4
+- ENCODING_MANCHESTER = 0x5
+- ENCODING_NRZ = 0x1
+- ENCODING_NRZI = 0x2
+- EPOLLERR = 0x8
+- EPOLLET = 0x80000000
+- EPOLLEXCLUSIVE = 0x10000000
+- EPOLLHUP = 0x10
+- EPOLLIN = 0x1
+- EPOLLMSG = 0x400
+- EPOLLONESHOT = 0x40000000
+- EPOLLOUT = 0x4
+- EPOLLPRI = 0x2
+- EPOLLRDBAND = 0x80
+- EPOLLRDHUP = 0x2000
+- EPOLLRDNORM = 0x40
+- EPOLLWAKEUP = 0x20000000
+- EPOLLWRBAND = 0x200
+- EPOLLWRNORM = 0x100
+- EPOLL_CLOEXEC = 0x80000
+- EPOLL_CTL_ADD = 0x1
+- EPOLL_CTL_DEL = 0x2
+- EPOLL_CTL_MOD = 0x3
+- ETH_P_1588 = 0x88f7
+- ETH_P_8021AD = 0x88a8
+- ETH_P_8021AH = 0x88e7
+- ETH_P_8021Q = 0x8100
+- ETH_P_80221 = 0x8917
+- ETH_P_802_2 = 0x4
+- ETH_P_802_3 = 0x1
+- ETH_P_802_3_MIN = 0x600
+- ETH_P_802_EX1 = 0x88b5
+- ETH_P_AARP = 0x80f3
+- ETH_P_AF_IUCV = 0xfbfb
+- ETH_P_ALL = 0x3
+- ETH_P_AOE = 0x88a2
+- ETH_P_ARCNET = 0x1a
+- ETH_P_ARP = 0x806
+- ETH_P_ATALK = 0x809b
+- ETH_P_ATMFATE = 0x8884
+- ETH_P_ATMMPOA = 0x884c
+- ETH_P_AX25 = 0x2
+- ETH_P_BATMAN = 0x4305
+- ETH_P_BPQ = 0x8ff
+- ETH_P_CAIF = 0xf7
+- ETH_P_CAN = 0xc
+- ETH_P_CANFD = 0xd
+- ETH_P_CONTROL = 0x16
+- ETH_P_CUST = 0x6006
+- ETH_P_DDCMP = 0x6
+- ETH_P_DEC = 0x6000
+- ETH_P_DIAG = 0x6005
+- ETH_P_DNA_DL = 0x6001
+- ETH_P_DNA_RC = 0x6002
+- ETH_P_DNA_RT = 0x6003
+- ETH_P_DSA = 0x1b
+- ETH_P_ECONET = 0x18
+- ETH_P_EDSA = 0xdada
+- ETH_P_FCOE = 0x8906
+- ETH_P_FIP = 0x8914
+- ETH_P_HDLC = 0x19
+- ETH_P_HSR = 0x892f
+- ETH_P_IEEE802154 = 0xf6
+- ETH_P_IEEEPUP = 0xa00
+- ETH_P_IEEEPUPAT = 0xa01
+- ETH_P_IP = 0x800
+- ETH_P_IPV6 = 0x86dd
+- ETH_P_IPX = 0x8137
+- ETH_P_IRDA = 0x17
+- ETH_P_LAT = 0x6004
+- ETH_P_LINK_CTL = 0x886c
+- ETH_P_LOCALTALK = 0x9
+- ETH_P_LOOP = 0x60
+- ETH_P_LOOPBACK = 0x9000
+- ETH_P_MACSEC = 0x88e5
+- ETH_P_MOBITEX = 0x15
+- ETH_P_MPLS_MC = 0x8848
+- ETH_P_MPLS_UC = 0x8847
+- ETH_P_MVRP = 0x88f5
+- ETH_P_NCSI = 0x88f8
+- ETH_P_PAE = 0x888e
+- ETH_P_PAUSE = 0x8808
+- ETH_P_PHONET = 0xf5
+- ETH_P_PPPTALK = 0x10
+- ETH_P_PPP_DISC = 0x8863
+- ETH_P_PPP_MP = 0x8
+- ETH_P_PPP_SES = 0x8864
+- ETH_P_PRP = 0x88fb
+- ETH_P_PUP = 0x200
+- ETH_P_PUPAT = 0x201
+- ETH_P_QINQ1 = 0x9100
+- ETH_P_QINQ2 = 0x9200
+- ETH_P_QINQ3 = 0x9300
+- ETH_P_RARP = 0x8035
+- ETH_P_SCA = 0x6007
+- ETH_P_SLOW = 0x8809
+- ETH_P_SNAP = 0x5
+- ETH_P_TDLS = 0x890d
+- ETH_P_TEB = 0x6558
+- ETH_P_TIPC = 0x88ca
+- ETH_P_TRAILER = 0x1c
+- ETH_P_TR_802_2 = 0x11
+- ETH_P_TSN = 0x22f0
+- ETH_P_WAN_PPP = 0x7
+- ETH_P_WCCP = 0x883e
+- ETH_P_X25 = 0x805
+- ETH_P_XDSA = 0xf8
+- EXTA = 0xe
+- EXTB = 0xf
+- EXTPROC = 0x10000
+- FALLOC_FL_COLLAPSE_RANGE = 0x8
+- FALLOC_FL_INSERT_RANGE = 0x20
+- FALLOC_FL_KEEP_SIZE = 0x1
+- FALLOC_FL_NO_HIDE_STALE = 0x4
+- FALLOC_FL_PUNCH_HOLE = 0x2
+- FALLOC_FL_UNSHARE_RANGE = 0x40
+- FALLOC_FL_ZERO_RANGE = 0x10
+- FD_CLOEXEC = 0x1
+- FD_SETSIZE = 0x400
+- FF0 = 0x0
+- FF1 = 0x8000
+- FFDLY = 0x8000
+- FLUSHO = 0x2000
+- FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
+- FS_ENCRYPTION_MODE_AES_256_CTS = 0x4
+- FS_ENCRYPTION_MODE_AES_256_GCM = 0x2
+- FS_ENCRYPTION_MODE_AES_256_XTS = 0x1
+- FS_ENCRYPTION_MODE_INVALID = 0x0
+- FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615
+- FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614
+- FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613
+- FS_KEY_DESCRIPTOR_SIZE = 0x8
+- FS_KEY_DESC_PREFIX = "fscrypt:"
+- FS_KEY_DESC_PREFIX_SIZE = 0x8
+- FS_MAX_KEY_SIZE = 0x40
+- FS_POLICY_FLAGS_PAD_16 = 0x2
+- FS_POLICY_FLAGS_PAD_32 = 0x3
+- FS_POLICY_FLAGS_PAD_4 = 0x0
+- FS_POLICY_FLAGS_PAD_8 = 0x1
+- FS_POLICY_FLAGS_PAD_MASK = 0x3
+- FS_POLICY_FLAGS_VALID = 0x3
+- F_DUPFD = 0x0
+- F_DUPFD_CLOEXEC = 0x406
+- F_EXLCK = 0x4
+- F_GETFD = 0x1
+- F_GETFL = 0x3
+- F_GETLEASE = 0x401
+- F_GETLK = 0x21
+- F_GETLK64 = 0x21
+- F_GETOWN = 0x17
+- F_GETOWN_EX = 0x10
+- F_GETPIPE_SZ = 0x408
+- F_GETSIG = 0xb
+- F_LOCK = 0x1
+- F_NOTIFY = 0x402
+- F_OFD_GETLK = 0x24
+- F_OFD_SETLK = 0x25
+- F_OFD_SETLKW = 0x26
+- F_OK = 0x0
+- F_RDLCK = 0x0
+- F_SETFD = 0x2
+- F_SETFL = 0x4
+- F_SETLEASE = 0x400
+- F_SETLK = 0x22
+- F_SETLK64 = 0x22
+- F_SETLKW = 0x23
+- F_SETLKW64 = 0x23
+- F_SETOWN = 0x18
+- F_SETOWN_EX = 0xf
+- F_SETPIPE_SZ = 0x407
+- F_SETSIG = 0xa
+- F_SHLCK = 0x8
+- F_TEST = 0x3
+- F_TLOCK = 0x2
+- F_ULOCK = 0x0
+- F_UNLCK = 0x2
+- F_WRLCK = 0x1
+- GENL_ADMIN_PERM = 0x1
+- GENL_CMD_CAP_DO = 0x2
+- GENL_CMD_CAP_DUMP = 0x4
+- GENL_CMD_CAP_HASPOL = 0x8
+- GENL_HDRLEN = 0x4
+- GENL_ID_CTRL = 0x10
+- GENL_ID_PMCRAID = 0x12
+- GENL_ID_VFS_DQUOT = 0x11
+- GENL_MAX_ID = 0x3ff
+- GENL_MIN_ID = 0x10
+- GENL_NAMSIZ = 0x10
+- GENL_START_ALLOC = 0x13
+- GENL_UNS_ADMIN_PERM = 0x10
+- GRND_NONBLOCK = 0x1
+- GRND_RANDOM = 0x2
+- HUPCL = 0x400
+- IBSHIFT = 0x10
+- ICANON = 0x2
+- ICMPV6_FILTER = 0x1
+- ICRNL = 0x100
+- IEXTEN = 0x100
+- IFA_F_DADFAILED = 0x8
+- IFA_F_DEPRECATED = 0x20
+- IFA_F_HOMEADDRESS = 0x10
+- IFA_F_MANAGETEMPADDR = 0x100
+- IFA_F_MCAUTOJOIN = 0x400
+- IFA_F_NODAD = 0x2
+- IFA_F_NOPREFIXROUTE = 0x200
+- IFA_F_OPTIMISTIC = 0x4
+- IFA_F_PERMANENT = 0x80
+- IFA_F_SECONDARY = 0x1
+- IFA_F_STABLE_PRIVACY = 0x800
+- IFA_F_TEMPORARY = 0x1
+- IFA_F_TENTATIVE = 0x40
+- IFA_MAX = 0x8
+- IFF_ALLMULTI = 0x200
+- IFF_ATTACH_QUEUE = 0x200
+- IFF_AUTOMEDIA = 0x4000
+- IFF_BROADCAST = 0x2
+- IFF_DEBUG = 0x4
+- IFF_DETACH_QUEUE = 0x400
+- IFF_DORMANT = 0x20000
+- IFF_DYNAMIC = 0x8000
+- IFF_ECHO = 0x40000
+- IFF_LOOPBACK = 0x8
+- IFF_LOWER_UP = 0x10000
+- IFF_MASTER = 0x400
+- IFF_MULTICAST = 0x1000
+- IFF_MULTI_QUEUE = 0x100
+- IFF_NOARP = 0x80
+- IFF_NOFILTER = 0x1000
+- IFF_NOTRAILERS = 0x20
+- IFF_NO_PI = 0x1000
+- IFF_ONE_QUEUE = 0x2000
+- IFF_PERSIST = 0x800
+- IFF_POINTOPOINT = 0x10
+- IFF_PORTSEL = 0x2000
+- IFF_PROMISC = 0x100
+- IFF_RUNNING = 0x40
+- IFF_SLAVE = 0x800
+- IFF_TAP = 0x2
+- IFF_TUN = 0x1
+- IFF_TUN_EXCL = 0x8000
+- IFF_UP = 0x1
+- IFF_VNET_HDR = 0x4000
+- IFF_VOLATILE = 0x70c5a
+- IFNAMSIZ = 0x10
+- IGNBRK = 0x1
+- IGNCR = 0x80
+- IGNPAR = 0x4
+- IMAXBEL = 0x2000
+- INLCR = 0x40
+- INPCK = 0x10
+- IN_ACCESS = 0x1
+- IN_ALL_EVENTS = 0xfff
+- IN_ATTRIB = 0x4
+- IN_CLASSA_HOST = 0xffffff
+- IN_CLASSA_MAX = 0x80
+- IN_CLASSA_NET = 0xff000000
+- IN_CLASSA_NSHIFT = 0x18
+- IN_CLASSB_HOST = 0xffff
+- IN_CLASSB_MAX = 0x10000
+- IN_CLASSB_NET = 0xffff0000
+- IN_CLASSB_NSHIFT = 0x10
+- IN_CLASSC_HOST = 0xff
+- IN_CLASSC_NET = 0xffffff00
+- IN_CLASSC_NSHIFT = 0x8
+- IN_CLOEXEC = 0x80000
+- IN_CLOSE = 0x18
+- IN_CLOSE_NOWRITE = 0x10
+- IN_CLOSE_WRITE = 0x8
+- IN_CREATE = 0x100
+- IN_DELETE = 0x200
+- IN_DELETE_SELF = 0x400
+- IN_DONT_FOLLOW = 0x2000000
+- IN_EXCL_UNLINK = 0x4000000
+- IN_IGNORED = 0x8000
+- IN_ISDIR = 0x40000000
+- IN_LOOPBACKNET = 0x7f
+- IN_MASK_ADD = 0x20000000
+- IN_MODIFY = 0x2
+- IN_MOVE = 0xc0
+- IN_MOVED_FROM = 0x40
+- IN_MOVED_TO = 0x80
+- IN_MOVE_SELF = 0x800
+- IN_NONBLOCK = 0x80
+- IN_ONESHOT = 0x80000000
+- IN_ONLYDIR = 0x1000000
+- IN_OPEN = 0x20
+- IN_Q_OVERFLOW = 0x4000
+- IN_UNMOUNT = 0x2000
+- IPPROTO_AH = 0x33
+- IPPROTO_BEETPH = 0x5e
+- IPPROTO_COMP = 0x6c
+- IPPROTO_DCCP = 0x21
+- IPPROTO_DSTOPTS = 0x3c
+- IPPROTO_EGP = 0x8
+- IPPROTO_ENCAP = 0x62
+- IPPROTO_ESP = 0x32
+- IPPROTO_FRAGMENT = 0x2c
+- IPPROTO_GRE = 0x2f
+- IPPROTO_HOPOPTS = 0x0
+- IPPROTO_ICMP = 0x1
+- IPPROTO_ICMPV6 = 0x3a
+- IPPROTO_IDP = 0x16
+- IPPROTO_IGMP = 0x2
+- IPPROTO_IP = 0x0
+- IPPROTO_IPIP = 0x4
+- IPPROTO_IPV6 = 0x29
+- IPPROTO_MH = 0x87
+- IPPROTO_MPLS = 0x89
+- IPPROTO_MTP = 0x5c
+- IPPROTO_NONE = 0x3b
+- IPPROTO_PIM = 0x67
+- IPPROTO_PUP = 0xc
+- IPPROTO_RAW = 0xff
+- IPPROTO_ROUTING = 0x2b
+- IPPROTO_RSVP = 0x2e
+- IPPROTO_SCTP = 0x84
+- IPPROTO_TCP = 0x6
+- IPPROTO_TP = 0x1d
+- IPPROTO_UDP = 0x11
+- IPPROTO_UDPLITE = 0x88
+- IPV6_2292DSTOPTS = 0x4
+- IPV6_2292HOPLIMIT = 0x8
+- IPV6_2292HOPOPTS = 0x3
+- IPV6_2292PKTINFO = 0x2
+- IPV6_2292PKTOPTIONS = 0x6
+- IPV6_2292RTHDR = 0x5
+- IPV6_ADDRFORM = 0x1
+- IPV6_ADD_MEMBERSHIP = 0x14
+- IPV6_AUTHHDR = 0xa
+- IPV6_CHECKSUM = 0x7
+- IPV6_DONTFRAG = 0x3e
+- IPV6_DROP_MEMBERSHIP = 0x15
+- IPV6_DSTOPTS = 0x3b
+- IPV6_HDRINCL = 0x24
+- IPV6_HOPLIMIT = 0x34
+- IPV6_HOPOPTS = 0x36
+- IPV6_IPSEC_POLICY = 0x22
+- IPV6_JOIN_ANYCAST = 0x1b
+- IPV6_JOIN_GROUP = 0x14
+- IPV6_LEAVE_ANYCAST = 0x1c
+- IPV6_LEAVE_GROUP = 0x15
+- IPV6_MTU = 0x18
+- IPV6_MTU_DISCOVER = 0x17
+- IPV6_MULTICAST_HOPS = 0x12
+- IPV6_MULTICAST_IF = 0x11
+- IPV6_MULTICAST_LOOP = 0x13
+- IPV6_NEXTHOP = 0x9
+- IPV6_PATHMTU = 0x3d
+- IPV6_PKTINFO = 0x32
+- IPV6_PMTUDISC_DO = 0x2
+- IPV6_PMTUDISC_DONT = 0x0
+- IPV6_PMTUDISC_INTERFACE = 0x4
+- IPV6_PMTUDISC_OMIT = 0x5
+- IPV6_PMTUDISC_PROBE = 0x3
+- IPV6_PMTUDISC_WANT = 0x1
+- IPV6_RECVDSTOPTS = 0x3a
+- IPV6_RECVERR = 0x19
+- IPV6_RECVHOPLIMIT = 0x33
+- IPV6_RECVHOPOPTS = 0x35
+- IPV6_RECVPATHMTU = 0x3c
+- IPV6_RECVPKTINFO = 0x31
+- IPV6_RECVRTHDR = 0x38
+- IPV6_RECVTCLASS = 0x42
+- IPV6_ROUTER_ALERT = 0x16
+- IPV6_RTHDR = 0x39
+- IPV6_RTHDRDSTOPTS = 0x37
+- IPV6_RTHDR_LOOSE = 0x0
+- IPV6_RTHDR_STRICT = 0x1
+- IPV6_RTHDR_TYPE_0 = 0x0
+- IPV6_RXDSTOPTS = 0x3b
+- IPV6_RXHOPOPTS = 0x36
+- IPV6_TCLASS = 0x43
+- IPV6_UNICAST_HOPS = 0x10
+- IPV6_V6ONLY = 0x1a
+- IPV6_XFRM_POLICY = 0x23
+- IP_ADD_MEMBERSHIP = 0x23
+- IP_ADD_SOURCE_MEMBERSHIP = 0x27
+- IP_BIND_ADDRESS_NO_PORT = 0x18
+- IP_BLOCK_SOURCE = 0x26
+- IP_CHECKSUM = 0x17
+- IP_DEFAULT_MULTICAST_LOOP = 0x1
+- IP_DEFAULT_MULTICAST_TTL = 0x1
+- IP_DF = 0x4000
+- IP_DROP_MEMBERSHIP = 0x24
+- IP_DROP_SOURCE_MEMBERSHIP = 0x28
+- IP_FREEBIND = 0xf
+- IP_HDRINCL = 0x3
+- IP_IPSEC_POLICY = 0x10
+- IP_MAXPACKET = 0xffff
+- IP_MAX_MEMBERSHIPS = 0x14
+- IP_MF = 0x2000
+- IP_MINTTL = 0x15
+- IP_MSFILTER = 0x29
+- IP_MSS = 0x240
+- IP_MTU = 0xe
+- IP_MTU_DISCOVER = 0xa
+- IP_MULTICAST_ALL = 0x31
+- IP_MULTICAST_IF = 0x20
+- IP_MULTICAST_LOOP = 0x22
+- IP_MULTICAST_TTL = 0x21
+- IP_NODEFRAG = 0x16
+- IP_OFFMASK = 0x1fff
+- IP_OPTIONS = 0x4
+- IP_ORIGDSTADDR = 0x14
+- IP_PASSSEC = 0x12
+- IP_PKTINFO = 0x8
+- IP_PKTOPTIONS = 0x9
+- IP_PMTUDISC = 0xa
+- IP_PMTUDISC_DO = 0x2
+- IP_PMTUDISC_DONT = 0x0
+- IP_PMTUDISC_INTERFACE = 0x4
+- IP_PMTUDISC_OMIT = 0x5
+- IP_PMTUDISC_PROBE = 0x3
+- IP_PMTUDISC_WANT = 0x1
+- IP_RECVERR = 0xb
+- IP_RECVOPTS = 0x6
+- IP_RECVORIGDSTADDR = 0x14
+- IP_RECVRETOPTS = 0x7
+- IP_RECVTOS = 0xd
+- IP_RECVTTL = 0xc
+- IP_RETOPTS = 0x7
+- IP_RF = 0x8000
+- IP_ROUTER_ALERT = 0x5
+- IP_TOS = 0x1
+- IP_TRANSPARENT = 0x13
+- IP_TTL = 0x2
+- IP_UNBLOCK_SOURCE = 0x25
+- IP_UNICAST_IF = 0x32
+- IP_XFRM_POLICY = 0x11
+- ISIG = 0x1
+- ISTRIP = 0x20
+- IUCLC = 0x200
+- IUTF8 = 0x4000
+- IXANY = 0x800
+- IXOFF = 0x1000
+- IXON = 0x400
+- KEYCTL_ASSUME_AUTHORITY = 0x10
+- KEYCTL_CHOWN = 0x4
+- KEYCTL_CLEAR = 0x7
+- KEYCTL_DESCRIBE = 0x6
+- KEYCTL_DH_COMPUTE = 0x17
+- KEYCTL_GET_KEYRING_ID = 0x0
+- KEYCTL_GET_PERSISTENT = 0x16
+- KEYCTL_GET_SECURITY = 0x11
+- KEYCTL_INSTANTIATE = 0xc
+- KEYCTL_INSTANTIATE_IOV = 0x14
+- KEYCTL_INVALIDATE = 0x15
+- KEYCTL_JOIN_SESSION_KEYRING = 0x1
+- KEYCTL_LINK = 0x8
+- KEYCTL_NEGATE = 0xd
+- KEYCTL_READ = 0xb
+- KEYCTL_REJECT = 0x13
+- KEYCTL_REVOKE = 0x3
+- KEYCTL_SEARCH = 0xa
+- KEYCTL_SESSION_TO_PARENT = 0x12
+- KEYCTL_SETPERM = 0x5
+- KEYCTL_SET_REQKEY_KEYRING = 0xe
+- KEYCTL_SET_TIMEOUT = 0xf
+- KEYCTL_UNLINK = 0x9
+- KEYCTL_UPDATE = 0x2
+- KEY_REQKEY_DEFL_DEFAULT = 0x0
+- KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6
+- KEY_REQKEY_DEFL_NO_CHANGE = -0x1
+- KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2
+- KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7
+- KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3
+- KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1
+- KEY_REQKEY_DEFL_USER_KEYRING = 0x4
+- KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
+- KEY_SPEC_GROUP_KEYRING = -0x6
+- KEY_SPEC_PROCESS_KEYRING = -0x2
+- KEY_SPEC_REQKEY_AUTH_KEY = -0x7
+- KEY_SPEC_REQUESTOR_KEYRING = -0x8
+- KEY_SPEC_SESSION_KEYRING = -0x3
+- KEY_SPEC_THREAD_KEYRING = -0x1
+- KEY_SPEC_USER_KEYRING = -0x4
+- KEY_SPEC_USER_SESSION_KEYRING = -0x5
+- LINUX_REBOOT_CMD_CAD_OFF = 0x0
+- LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
+- LINUX_REBOOT_CMD_HALT = 0xcdef0123
+- LINUX_REBOOT_CMD_KEXEC = 0x45584543
+- LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
+- LINUX_REBOOT_CMD_RESTART = 0x1234567
+- LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
+- LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
+- LINUX_REBOOT_MAGIC1 = 0xfee1dead
+- LINUX_REBOOT_MAGIC2 = 0x28121969
+- LOCK_EX = 0x2
+- LOCK_NB = 0x4
+- LOCK_SH = 0x1
+- LOCK_UN = 0x8
+- MADV_DODUMP = 0x11
+- MADV_DOFORK = 0xb
+- MADV_DONTDUMP = 0x10
+- MADV_DONTFORK = 0xa
+- MADV_DONTNEED = 0x4
+- MADV_FREE = 0x8
+- MADV_HUGEPAGE = 0xe
+- MADV_HWPOISON = 0x64
+- MADV_MERGEABLE = 0xc
+- MADV_NOHUGEPAGE = 0xf
+- MADV_NORMAL = 0x0
+- MADV_RANDOM = 0x1
+- MADV_REMOVE = 0x9
+- MADV_SEQUENTIAL = 0x2
+- MADV_UNMERGEABLE = 0xd
+- MADV_WILLNEED = 0x3
+- MAP_ANON = 0x800
+- MAP_ANONYMOUS = 0x800
+- MAP_DENYWRITE = 0x2000
+- MAP_EXECUTABLE = 0x4000
+- MAP_FILE = 0x0
+- MAP_FIXED = 0x10
+- MAP_GROWSDOWN = 0x1000
+- MAP_HUGETLB = 0x80000
+- MAP_HUGE_MASK = 0x3f
+- MAP_HUGE_SHIFT = 0x1a
+- MAP_LOCKED = 0x8000
+- MAP_NONBLOCK = 0x20000
+- MAP_NORESERVE = 0x400
+- MAP_POPULATE = 0x10000
+- MAP_PRIVATE = 0x2
+- MAP_RENAME = 0x800
+- MAP_SHARED = 0x1
+- MAP_STACK = 0x40000
+- MAP_TYPE = 0xf
+- MCL_CURRENT = 0x1
+- MCL_FUTURE = 0x2
+- MCL_ONFAULT = 0x4
+- MNT_DETACH = 0x2
+- MNT_EXPIRE = 0x4
+- MNT_FORCE = 0x1
+- MSG_BATCH = 0x40000
+- MSG_CMSG_CLOEXEC = 0x40000000
+- MSG_CONFIRM = 0x800
+- MSG_CTRUNC = 0x8
+- MSG_DONTROUTE = 0x4
+- MSG_DONTWAIT = 0x40
+- MSG_EOR = 0x80
+- MSG_ERRQUEUE = 0x2000
+- MSG_FASTOPEN = 0x20000000
+- MSG_FIN = 0x200
+- MSG_MORE = 0x8000
+- MSG_NOSIGNAL = 0x4000
+- MSG_OOB = 0x1
+- MSG_PEEK = 0x2
+- MSG_PROXY = 0x10
+- MSG_RST = 0x1000
+- MSG_SYN = 0x400
+- MSG_TRUNC = 0x20
+- MSG_TRYHARD = 0x4
+- MSG_WAITALL = 0x100
+- MSG_WAITFORONE = 0x10000
+- MS_ACTIVE = 0x40000000
+- MS_ASYNC = 0x1
+- MS_BIND = 0x1000
+- MS_BORN = 0x20000000
+- MS_DIRSYNC = 0x80
+- MS_INVALIDATE = 0x2
+- MS_I_VERSION = 0x800000
+- MS_KERNMOUNT = 0x400000
+- MS_LAZYTIME = 0x2000000
+- MS_MANDLOCK = 0x40
+- MS_MGC_MSK = 0xffff0000
+- MS_MGC_VAL = 0xc0ed0000
+- MS_MOVE = 0x2000
+- MS_NOATIME = 0x400
+- MS_NODEV = 0x4
+- MS_NODIRATIME = 0x800
+- MS_NOEXEC = 0x8
+- MS_NOREMOTELOCK = 0x8000000
+- MS_NOSEC = 0x10000000
+- MS_NOSUID = 0x2
+- MS_NOUSER = -0x80000000
+- MS_POSIXACL = 0x10000
+- MS_PRIVATE = 0x40000
+- MS_RDONLY = 0x1
+- MS_REC = 0x4000
+- MS_RELATIME = 0x200000
+- MS_REMOUNT = 0x20
+- MS_RMT_MASK = 0x2800051
+- MS_SHARED = 0x100000
+- MS_SILENT = 0x8000
+- MS_SLAVE = 0x80000
+- MS_STRICTATIME = 0x1000000
+- MS_SYNC = 0x4
+- MS_SYNCHRONOUS = 0x10
+- MS_UNBINDABLE = 0x20000
+- MS_VERBOSE = 0x8000
+- NAME_MAX = 0xff
+- NETLINK_ADD_MEMBERSHIP = 0x1
+- NETLINK_AUDIT = 0x9
+- NETLINK_BROADCAST_ERROR = 0x4
+- NETLINK_CAP_ACK = 0xa
+- NETLINK_CONNECTOR = 0xb
+- NETLINK_CRYPTO = 0x15
+- NETLINK_DNRTMSG = 0xe
+- NETLINK_DROP_MEMBERSHIP = 0x2
+- NETLINK_ECRYPTFS = 0x13
+- NETLINK_FIB_LOOKUP = 0xa
+- NETLINK_FIREWALL = 0x3
+- NETLINK_GENERIC = 0x10
+- NETLINK_INET_DIAG = 0x4
+- NETLINK_IP6_FW = 0xd
+- NETLINK_ISCSI = 0x8
+- NETLINK_KOBJECT_UEVENT = 0xf
+- NETLINK_LISTEN_ALL_NSID = 0x8
+- NETLINK_LIST_MEMBERSHIPS = 0x9
+- NETLINK_NETFILTER = 0xc
+- NETLINK_NFLOG = 0x5
+- NETLINK_NO_ENOBUFS = 0x5
+- NETLINK_PKTINFO = 0x3
+- NETLINK_RDMA = 0x14
+- NETLINK_ROUTE = 0x0
+- NETLINK_RX_RING = 0x6
+- NETLINK_SCSITRANSPORT = 0x12
+- NETLINK_SELINUX = 0x7
+- NETLINK_SOCK_DIAG = 0x4
+- NETLINK_TX_RING = 0x7
+- NETLINK_UNUSED = 0x1
+- NETLINK_USERSOCK = 0x2
+- NETLINK_XFRM = 0x6
+- NL0 = 0x0
+- NL1 = 0x100
+- NLA_ALIGNTO = 0x4
+- NLA_F_NESTED = 0x8000
+- NLA_F_NET_BYTEORDER = 0x4000
+- NLA_HDRLEN = 0x4
+- NLDLY = 0x100
+- NLMSG_ALIGNTO = 0x4
+- NLMSG_DONE = 0x3
+- NLMSG_ERROR = 0x2
+- NLMSG_HDRLEN = 0x10
+- NLMSG_MIN_TYPE = 0x10
+- NLMSG_NOOP = 0x1
+- NLMSG_OVERRUN = 0x4
+- NLM_F_ACK = 0x4
+- NLM_F_APPEND = 0x800
+- NLM_F_ATOMIC = 0x400
+- NLM_F_CREATE = 0x400
+- NLM_F_DUMP = 0x300
+- NLM_F_DUMP_FILTERED = 0x20
+- NLM_F_DUMP_INTR = 0x10
+- NLM_F_ECHO = 0x8
+- NLM_F_EXCL = 0x200
+- NLM_F_MATCH = 0x200
+- NLM_F_MULTI = 0x2
+- NLM_F_REPLACE = 0x100
+- NLM_F_REQUEST = 0x1
+- NLM_F_ROOT = 0x100
+- NOFLSH = 0x80
+- OCRNL = 0x8
+- OFDEL = 0x80
+- OFILL = 0x40
+- OLCUC = 0x2
+- ONLCR = 0x4
+- ONLRET = 0x20
+- ONOCR = 0x10
+- OPOST = 0x1
+- O_ACCMODE = 0x3
+- O_APPEND = 0x8
+- O_ASYNC = 0x1000
+- O_CLOEXEC = 0x80000
+- O_CREAT = 0x100
+- O_DIRECT = 0x8000
+- O_DIRECTORY = 0x10000
+- O_DSYNC = 0x10
+- O_EXCL = 0x400
+- O_FSYNC = 0x4010
+- O_LARGEFILE = 0x2000
+- O_NDELAY = 0x80
+- O_NOATIME = 0x40000
+- O_NOCTTY = 0x800
+- O_NOFOLLOW = 0x20000
+- O_NONBLOCK = 0x80
+- O_PATH = 0x200000
+- O_RDONLY = 0x0
+- O_RDWR = 0x2
+- O_RSYNC = 0x4010
+- O_SYNC = 0x4010
+- O_TMPFILE = 0x410000
+- O_TRUNC = 0x200
+- O_WRONLY = 0x1
+- PACKET_ADD_MEMBERSHIP = 0x1
+- PACKET_AUXDATA = 0x8
+- PACKET_BROADCAST = 0x1
+- PACKET_COPY_THRESH = 0x7
+- PACKET_DROP_MEMBERSHIP = 0x2
+- PACKET_FANOUT = 0x12
+- PACKET_FANOUT_CBPF = 0x6
+- PACKET_FANOUT_CPU = 0x2
+- PACKET_FANOUT_DATA = 0x16
+- PACKET_FANOUT_EBPF = 0x7
+- PACKET_FANOUT_FLAG_DEFRAG = 0x8000
+- PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
+- PACKET_FANOUT_HASH = 0x0
+- PACKET_FANOUT_LB = 0x1
+- PACKET_FANOUT_QM = 0x5
+- PACKET_FANOUT_RND = 0x4
+- PACKET_FANOUT_ROLLOVER = 0x3
+- PACKET_FASTROUTE = 0x6
+- PACKET_HDRLEN = 0xb
+- PACKET_HOST = 0x0
+- PACKET_KERNEL = 0x7
+- PACKET_LOOPBACK = 0x5
+- PACKET_LOSS = 0xe
+- PACKET_MR_ALLMULTI = 0x2
+- PACKET_MR_MULTICAST = 0x0
+- PACKET_MR_PROMISC = 0x1
+- PACKET_MR_UNICAST = 0x3
+- PACKET_MULTICAST = 0x2
+- PACKET_ORIGDEV = 0x9
+- PACKET_OTHERHOST = 0x3
+- PACKET_OUTGOING = 0x4
+- PACKET_QDISC_BYPASS = 0x14
+- PACKET_RECV_OUTPUT = 0x3
+- PACKET_RESERVE = 0xc
+- PACKET_ROLLOVER_STATS = 0x15
+- PACKET_RX_RING = 0x5
+- PACKET_STATISTICS = 0x6
+- PACKET_TIMESTAMP = 0x11
+- PACKET_TX_HAS_OFF = 0x13
+- PACKET_TX_RING = 0xd
+- PACKET_TX_TIMESTAMP = 0x10
+- PACKET_USER = 0x6
+- PACKET_VERSION = 0xa
+- PACKET_VNET_HDR = 0xf
+- PARENB = 0x100
+- PARITY_CRC16_PR0 = 0x2
+- PARITY_CRC16_PR0_CCITT = 0x4
+- PARITY_CRC16_PR1 = 0x3
+- PARITY_CRC16_PR1_CCITT = 0x5
+- PARITY_CRC32_PR0_CCITT = 0x6
+- PARITY_CRC32_PR1_CCITT = 0x7
+- PARITY_DEFAULT = 0x0
+- PARITY_NONE = 0x1
+- PARMRK = 0x8
+- PARODD = 0x200
+- PENDIN = 0x4000
+- PERF_EVENT_IOC_DISABLE = 0x20002401
+- PERF_EVENT_IOC_ENABLE = 0x20002400
+- PERF_EVENT_IOC_ID = 0x40042407
+- PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409
+- PERF_EVENT_IOC_PERIOD = 0x80082404
+- PERF_EVENT_IOC_REFRESH = 0x20002402
+- PERF_EVENT_IOC_RESET = 0x20002403
+- PERF_EVENT_IOC_SET_BPF = 0x80042408
+- PERF_EVENT_IOC_SET_FILTER = 0x80042406
+- PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
+- PRIO_PGRP = 0x1
+- PRIO_PROCESS = 0x0
+- PRIO_USER = 0x2
+- PROT_EXEC = 0x4
+- PROT_GROWSDOWN = 0x1000000
+- PROT_GROWSUP = 0x2000000
+- PROT_NONE = 0x0
+- PROT_READ = 0x1
+- PROT_WRITE = 0x2
+- PR_CAPBSET_DROP = 0x18
+- PR_CAPBSET_READ = 0x17
+- PR_CAP_AMBIENT = 0x2f
+- PR_CAP_AMBIENT_CLEAR_ALL = 0x4
+- PR_CAP_AMBIENT_IS_SET = 0x1
+- PR_CAP_AMBIENT_LOWER = 0x3
+- PR_CAP_AMBIENT_RAISE = 0x2
+- PR_ENDIAN_BIG = 0x0
+- PR_ENDIAN_LITTLE = 0x1
+- PR_ENDIAN_PPC_LITTLE = 0x2
+- PR_FPEMU_NOPRINT = 0x1
+- PR_FPEMU_SIGFPE = 0x2
+- PR_FP_EXC_ASYNC = 0x2
+- PR_FP_EXC_DISABLED = 0x0
+- PR_FP_EXC_DIV = 0x10000
+- PR_FP_EXC_INV = 0x100000
+- PR_FP_EXC_NONRECOV = 0x1
+- PR_FP_EXC_OVF = 0x20000
+- PR_FP_EXC_PRECISE = 0x3
+- PR_FP_EXC_RES = 0x80000
+- PR_FP_EXC_SW_ENABLE = 0x80
+- PR_FP_EXC_UND = 0x40000
+- PR_FP_MODE_FR = 0x1
+- PR_FP_MODE_FRE = 0x2
+- PR_GET_CHILD_SUBREAPER = 0x25
+- PR_GET_DUMPABLE = 0x3
+- PR_GET_ENDIAN = 0x13
+- PR_GET_FPEMU = 0x9
+- PR_GET_FPEXC = 0xb
+- PR_GET_FP_MODE = 0x2e
+- PR_GET_KEEPCAPS = 0x7
+- PR_GET_NAME = 0x10
+- PR_GET_NO_NEW_PRIVS = 0x27
+- PR_GET_PDEATHSIG = 0x2
+- PR_GET_SECCOMP = 0x15
+- PR_GET_SECUREBITS = 0x1b
+- PR_GET_THP_DISABLE = 0x2a
+- PR_GET_TID_ADDRESS = 0x28
+- PR_GET_TIMERSLACK = 0x1e
+- PR_GET_TIMING = 0xd
+- PR_GET_TSC = 0x19
+- PR_GET_UNALIGN = 0x5
+- PR_MCE_KILL = 0x21
+- PR_MCE_KILL_CLEAR = 0x0
+- PR_MCE_KILL_DEFAULT = 0x2
+- PR_MCE_KILL_EARLY = 0x1
+- PR_MCE_KILL_GET = 0x22
+- PR_MCE_KILL_LATE = 0x0
+- PR_MCE_KILL_SET = 0x1
+- PR_MPX_DISABLE_MANAGEMENT = 0x2c
+- PR_MPX_ENABLE_MANAGEMENT = 0x2b
+- PR_SET_CHILD_SUBREAPER = 0x24
+- PR_SET_DUMPABLE = 0x4
+- PR_SET_ENDIAN = 0x14
+- PR_SET_FPEMU = 0xa
+- PR_SET_FPEXC = 0xc
+- PR_SET_FP_MODE = 0x2d
+- PR_SET_KEEPCAPS = 0x8
+- PR_SET_MM = 0x23
+- PR_SET_MM_ARG_END = 0x9
+- PR_SET_MM_ARG_START = 0x8
+- PR_SET_MM_AUXV = 0xc
+- PR_SET_MM_BRK = 0x7
+- PR_SET_MM_END_CODE = 0x2
+- PR_SET_MM_END_DATA = 0x4
+- PR_SET_MM_ENV_END = 0xb
+- PR_SET_MM_ENV_START = 0xa
+- PR_SET_MM_EXE_FILE = 0xd
+- PR_SET_MM_MAP = 0xe
+- PR_SET_MM_MAP_SIZE = 0xf
+- PR_SET_MM_START_BRK = 0x6
+- PR_SET_MM_START_CODE = 0x1
+- PR_SET_MM_START_DATA = 0x3
+- PR_SET_MM_START_STACK = 0x5
+- PR_SET_NAME = 0xf
+- PR_SET_NO_NEW_PRIVS = 0x26
+- PR_SET_PDEATHSIG = 0x1
+- PR_SET_PTRACER = 0x59616d61
+- PR_SET_PTRACER_ANY = 0xffffffff
+- PR_SET_SECCOMP = 0x16
+- PR_SET_SECUREBITS = 0x1c
+- PR_SET_THP_DISABLE = 0x29
+- PR_SET_TIMERSLACK = 0x1d
+- PR_SET_TIMING = 0xe
+- PR_SET_TSC = 0x1a
+- PR_SET_UNALIGN = 0x6
+- PR_TASK_PERF_EVENTS_DISABLE = 0x1f
+- PR_TASK_PERF_EVENTS_ENABLE = 0x20
+- PR_TIMING_STATISTICAL = 0x0
+- PR_TIMING_TIMESTAMP = 0x1
+- PR_TSC_ENABLE = 0x1
+- PR_TSC_SIGSEGV = 0x2
+- PR_UNALIGN_NOPRINT = 0x1
+- PR_UNALIGN_SIGBUS = 0x2
+- PTRACE_ATTACH = 0x10
+- PTRACE_CONT = 0x7
+- PTRACE_DETACH = 0x11
+- PTRACE_EVENT_CLONE = 0x3
+- PTRACE_EVENT_EXEC = 0x4
+- PTRACE_EVENT_EXIT = 0x6
+- PTRACE_EVENT_FORK = 0x1
+- PTRACE_EVENT_SECCOMP = 0x7
+- PTRACE_EVENT_STOP = 0x80
+- PTRACE_EVENT_VFORK = 0x2
+- PTRACE_EVENT_VFORK_DONE = 0x5
+- PTRACE_GETEVENTMSG = 0x4201
+- PTRACE_GETFPREGS = 0xe
+- PTRACE_GETREGS = 0xc
+- PTRACE_GETREGSET = 0x4204
+- PTRACE_GETSIGINFO = 0x4202
+- PTRACE_GETSIGMASK = 0x420a
+- PTRACE_GET_THREAD_AREA = 0x19
+- PTRACE_GET_THREAD_AREA_3264 = 0xc4
+- PTRACE_GET_WATCH_REGS = 0xd0
+- PTRACE_INTERRUPT = 0x4207
+- PTRACE_KILL = 0x8
+- PTRACE_LISTEN = 0x4208
+- PTRACE_OLDSETOPTIONS = 0x15
+- PTRACE_O_EXITKILL = 0x100000
+- PTRACE_O_MASK = 0x3000ff
+- PTRACE_O_SUSPEND_SECCOMP = 0x200000
+- PTRACE_O_TRACECLONE = 0x8
+- PTRACE_O_TRACEEXEC = 0x10
+- PTRACE_O_TRACEEXIT = 0x40
+- PTRACE_O_TRACEFORK = 0x2
+- PTRACE_O_TRACESECCOMP = 0x80
+- PTRACE_O_TRACESYSGOOD = 0x1
+- PTRACE_O_TRACEVFORK = 0x4
+- PTRACE_O_TRACEVFORKDONE = 0x20
+- PTRACE_PEEKDATA = 0x2
+- PTRACE_PEEKDATA_3264 = 0xc1
+- PTRACE_PEEKSIGINFO = 0x4209
+- PTRACE_PEEKSIGINFO_SHARED = 0x1
+- PTRACE_PEEKTEXT = 0x1
+- PTRACE_PEEKTEXT_3264 = 0xc0
+- PTRACE_PEEKUSR = 0x3
+- PTRACE_POKEDATA = 0x5
+- PTRACE_POKEDATA_3264 = 0xc3
+- PTRACE_POKETEXT = 0x4
+- PTRACE_POKETEXT_3264 = 0xc2
+- PTRACE_POKEUSR = 0x6
+- PTRACE_SECCOMP_GET_FILTER = 0x420c
+- PTRACE_SEIZE = 0x4206
+- PTRACE_SETFPREGS = 0xf
+- PTRACE_SETOPTIONS = 0x4200
+- PTRACE_SETREGS = 0xd
+- PTRACE_SETREGSET = 0x4205
+- PTRACE_SETSIGINFO = 0x4203
+- PTRACE_SETSIGMASK = 0x420b
+- PTRACE_SET_THREAD_AREA = 0x1a
+- PTRACE_SET_WATCH_REGS = 0xd1
+- PTRACE_SINGLESTEP = 0x9
+- PTRACE_SYSCALL = 0x18
+- PTRACE_TRACEME = 0x0
+- RLIMIT_AS = 0x6
+- RLIMIT_CORE = 0x4
+- RLIMIT_CPU = 0x0
+- RLIMIT_DATA = 0x2
+- RLIMIT_FSIZE = 0x1
+- RLIMIT_LOCKS = 0xa
+- RLIMIT_MEMLOCK = 0x9
+- RLIMIT_MSGQUEUE = 0xc
+- RLIMIT_NICE = 0xd
+- RLIMIT_NOFILE = 0x5
+- RLIMIT_NPROC = 0x8
+- RLIMIT_RSS = 0x7
+- RLIMIT_RTPRIO = 0xe
+- RLIMIT_RTTIME = 0xf
+- RLIMIT_SIGPENDING = 0xb
+- RLIMIT_STACK = 0x3
+- RLIM_INFINITY = -0x1
+- RTAX_ADVMSS = 0x8
+- RTAX_CC_ALGO = 0x10
+- RTAX_CWND = 0x7
+- RTAX_FEATURES = 0xc
+- RTAX_FEATURE_ALLFRAG = 0x8
+- RTAX_FEATURE_ECN = 0x1
+- RTAX_FEATURE_MASK = 0xf
+- RTAX_FEATURE_SACK = 0x2
+- RTAX_FEATURE_TIMESTAMP = 0x4
+- RTAX_HOPLIMIT = 0xa
+- RTAX_INITCWND = 0xb
+- RTAX_INITRWND = 0xe
+- RTAX_LOCK = 0x1
+- RTAX_MAX = 0x10
+- RTAX_MTU = 0x2
+- RTAX_QUICKACK = 0xf
+- RTAX_REORDERING = 0x9
+- RTAX_RTO_MIN = 0xd
+- RTAX_RTT = 0x4
+- RTAX_RTTVAR = 0x5
+- RTAX_SSTHRESH = 0x6
+- RTAX_UNSPEC = 0x0
+- RTAX_WINDOW = 0x3
+- RTA_ALIGNTO = 0x4
+- RTA_MAX = 0x19
+- RTCF_DIRECTSRC = 0x4000000
+- RTCF_DOREDIRECT = 0x1000000
+- RTCF_LOG = 0x2000000
+- RTCF_MASQ = 0x400000
+- RTCF_NAT = 0x800000
+- RTCF_VALVE = 0x200000
+- RTF_ADDRCLASSMASK = 0xf8000000
+- RTF_ADDRCONF = 0x40000
+- RTF_ALLONLINK = 0x20000
+- RTF_BROADCAST = 0x10000000
+- RTF_CACHE = 0x1000000
+- RTF_DEFAULT = 0x10000
+- RTF_DYNAMIC = 0x10
+- RTF_FLOW = 0x2000000
+- RTF_GATEWAY = 0x2
+- RTF_HOST = 0x4
+- RTF_INTERFACE = 0x40000000
+- RTF_IRTT = 0x100
+- RTF_LINKRT = 0x100000
+- RTF_LOCAL = 0x80000000
+- RTF_MODIFIED = 0x20
+- RTF_MSS = 0x40
+- RTF_MTU = 0x40
+- RTF_MULTICAST = 0x20000000
+- RTF_NAT = 0x8000000
+- RTF_NOFORWARD = 0x1000
+- RTF_NONEXTHOP = 0x200000
+- RTF_NOPMTUDISC = 0x4000
+- RTF_POLICY = 0x4000000
+- RTF_REINSTATE = 0x8
+- RTF_REJECT = 0x200
+- RTF_STATIC = 0x400
+- RTF_THROW = 0x2000
+- RTF_UP = 0x1
+- RTF_WINDOW = 0x80
+- RTF_XRESOLVE = 0x800
+- RTM_BASE = 0x10
+- RTM_DELACTION = 0x31
+- RTM_DELADDR = 0x15
+- RTM_DELADDRLABEL = 0x49
+- RTM_DELLINK = 0x11
+- RTM_DELMDB = 0x55
+- RTM_DELNEIGH = 0x1d
+- RTM_DELNSID = 0x59
+- RTM_DELQDISC = 0x25
+- RTM_DELROUTE = 0x19
+- RTM_DELRULE = 0x21
+- RTM_DELTCLASS = 0x29
+- RTM_DELTFILTER = 0x2d
+- RTM_F_CLONED = 0x200
+- RTM_F_EQUALIZE = 0x400
+- RTM_F_LOOKUP_TABLE = 0x1000
+- RTM_F_NOTIFY = 0x100
+- RTM_F_PREFIX = 0x800
+- RTM_GETACTION = 0x32
+- RTM_GETADDR = 0x16
+- RTM_GETADDRLABEL = 0x4a
+- RTM_GETANYCAST = 0x3e
+- RTM_GETDCB = 0x4e
+- RTM_GETLINK = 0x12
+- RTM_GETMDB = 0x56
+- RTM_GETMULTICAST = 0x3a
+- RTM_GETNEIGH = 0x1e
+- RTM_GETNEIGHTBL = 0x42
+- RTM_GETNETCONF = 0x52
+- RTM_GETNSID = 0x5a
+- RTM_GETQDISC = 0x26
+- RTM_GETROUTE = 0x1a
+- RTM_GETRULE = 0x22
+- RTM_GETSTATS = 0x5e
+- RTM_GETTCLASS = 0x2a
+- RTM_GETTFILTER = 0x2e
+- RTM_MAX = 0x5f
+- RTM_NEWACTION = 0x30
+- RTM_NEWADDR = 0x14
+- RTM_NEWADDRLABEL = 0x48
+- RTM_NEWLINK = 0x10
+- RTM_NEWMDB = 0x54
+- RTM_NEWNDUSEROPT = 0x44
+- RTM_NEWNEIGH = 0x1c
+- RTM_NEWNEIGHTBL = 0x40
+- RTM_NEWNETCONF = 0x50
+- RTM_NEWNSID = 0x58
+- RTM_NEWPREFIX = 0x34
+- RTM_NEWQDISC = 0x24
+- RTM_NEWROUTE = 0x18
+- RTM_NEWRULE = 0x20
+- RTM_NEWSTATS = 0x5c
+- RTM_NEWTCLASS = 0x28
+- RTM_NEWTFILTER = 0x2c
+- RTM_NR_FAMILIES = 0x14
+- RTM_NR_MSGTYPES = 0x50
+- RTM_SETDCB = 0x4f
+- RTM_SETLINK = 0x13
+- RTM_SETNEIGHTBL = 0x43
+- RTNH_ALIGNTO = 0x4
+- RTNH_COMPARE_MASK = 0x19
+- RTNH_F_DEAD = 0x1
+- RTNH_F_LINKDOWN = 0x10
+- RTNH_F_OFFLOAD = 0x8
+- RTNH_F_ONLINK = 0x4
+- RTNH_F_PERVASIVE = 0x2
+- RTN_MAX = 0xb
+- RTPROT_BABEL = 0x2a
+- RTPROT_BIRD = 0xc
+- RTPROT_BOOT = 0x3
+- RTPROT_DHCP = 0x10
+- RTPROT_DNROUTED = 0xd
+- RTPROT_GATED = 0x8
+- RTPROT_KERNEL = 0x2
+- RTPROT_MROUTED = 0x11
+- RTPROT_MRT = 0xa
+- RTPROT_NTK = 0xf
+- RTPROT_RA = 0x9
+- RTPROT_REDIRECT = 0x1
+- RTPROT_STATIC = 0x4
+- RTPROT_UNSPEC = 0x0
+- RTPROT_XORP = 0xe
+- RTPROT_ZEBRA = 0xb
+- RT_CLASS_DEFAULT = 0xfd
+- RT_CLASS_LOCAL = 0xff
+- RT_CLASS_MAIN = 0xfe
+- RT_CLASS_MAX = 0xff
+- RT_CLASS_UNSPEC = 0x0
+- RUSAGE_CHILDREN = -0x1
+- RUSAGE_SELF = 0x0
+- RUSAGE_THREAD = 0x1
+- SCM_CREDENTIALS = 0x2
+- SCM_RIGHTS = 0x1
+- SCM_TIMESTAMP = 0x1d
+- SCM_TIMESTAMPING = 0x25
+- SCM_TIMESTAMPING_OPT_STATS = 0x36
+- SCM_TIMESTAMPNS = 0x23
+- SCM_WIFI_STATUS = 0x29
+- SECCOMP_MODE_DISABLED = 0x0
+- SECCOMP_MODE_FILTER = 0x2
+- SECCOMP_MODE_STRICT = 0x1
+- SHUT_RD = 0x0
+- SHUT_RDWR = 0x2
+- SHUT_WR = 0x1
+- SIOCADDDLCI = 0x8980
+- SIOCADDMULTI = 0x8931
+- SIOCADDRT = 0x890b
+- SIOCATMARK = 0x40047307
+- SIOCBONDCHANGEACTIVE = 0x8995
+- SIOCBONDENSLAVE = 0x8990
+- SIOCBONDINFOQUERY = 0x8994
+- SIOCBONDRELEASE = 0x8991
+- SIOCBONDSETHWADDR = 0x8992
+- SIOCBONDSLAVEINFOQUERY = 0x8993
+- SIOCBRADDBR = 0x89a0
+- SIOCBRADDIF = 0x89a2
+- SIOCBRDELBR = 0x89a1
+- SIOCBRDELIF = 0x89a3
+- SIOCDARP = 0x8953
+- SIOCDELDLCI = 0x8981
+- SIOCDELMULTI = 0x8932
+- SIOCDELRT = 0x890c
+- SIOCDEVPRIVATE = 0x89f0
+- SIOCDIFADDR = 0x8936
+- SIOCDRARP = 0x8960
+- SIOCETHTOOL = 0x8946
+- SIOCGARP = 0x8954
+- SIOCGHWTSTAMP = 0x89b1
+- SIOCGIFADDR = 0x8915
+- SIOCGIFBR = 0x8940
+- SIOCGIFBRDADDR = 0x8919
+- SIOCGIFCONF = 0x8912
+- SIOCGIFCOUNT = 0x8938
+- SIOCGIFDSTADDR = 0x8917
+- SIOCGIFENCAP = 0x8925
+- SIOCGIFFLAGS = 0x8913
+- SIOCGIFHWADDR = 0x8927
+- SIOCGIFINDEX = 0x8933
+- SIOCGIFMAP = 0x8970
+- SIOCGIFMEM = 0x891f
+- SIOCGIFMETRIC = 0x891d
+- SIOCGIFMTU = 0x8921
+- SIOCGIFNAME = 0x8910
+- SIOCGIFNETMASK = 0x891b
+- SIOCGIFPFLAGS = 0x8935
+- SIOCGIFSLAVE = 0x8929
+- SIOCGIFTXQLEN = 0x8942
+- SIOCGIFVLAN = 0x8982
+- SIOCGMIIPHY = 0x8947
+- SIOCGMIIREG = 0x8948
+- SIOCGPGRP = 0x40047309
+- SIOCGRARP = 0x8961
+- SIOCGSKNS = 0x894c
+- SIOCGSTAMP = 0x8906
+- SIOCGSTAMPNS = 0x8907
+- SIOCINQ = 0x467f
+- SIOCOUTQ = 0x7472
+- SIOCOUTQNSD = 0x894b
+- SIOCPROTOPRIVATE = 0x89e0
+- SIOCRTMSG = 0x890d
+- SIOCSARP = 0x8955
+- SIOCSHWTSTAMP = 0x89b0
+- SIOCSIFADDR = 0x8916
+- SIOCSIFBR = 0x8941
+- SIOCSIFBRDADDR = 0x891a
+- SIOCSIFDSTADDR = 0x8918
+- SIOCSIFENCAP = 0x8926
+- SIOCSIFFLAGS = 0x8914
+- SIOCSIFHWADDR = 0x8924
+- SIOCSIFHWBROADCAST = 0x8937
+- SIOCSIFLINK = 0x8911
+- SIOCSIFMAP = 0x8971
+- SIOCSIFMEM = 0x8920
+- SIOCSIFMETRIC = 0x891e
+- SIOCSIFMTU = 0x8922
+- SIOCSIFNAME = 0x8923
+- SIOCSIFNETMASK = 0x891c
+- SIOCSIFPFLAGS = 0x8934
+- SIOCSIFSLAVE = 0x8930
+- SIOCSIFTXQLEN = 0x8943
+- SIOCSIFVLAN = 0x8983
+- SIOCSMIIREG = 0x8949
+- SIOCSPGRP = 0x80047308
+- SIOCSRARP = 0x8962
+- SIOCWANDEV = 0x894a
+- SOCK_CLOEXEC = 0x80000
+- SOCK_DCCP = 0x6
+- SOCK_DGRAM = 0x1
+- SOCK_IOC_TYPE = 0x89
+- SOCK_NONBLOCK = 0x80
+- SOCK_PACKET = 0xa
+- SOCK_RAW = 0x3
+- SOCK_RDM = 0x4
+- SOCK_SEQPACKET = 0x5
+- SOCK_STREAM = 0x2
+- SOL_AAL = 0x109
+- SOL_ALG = 0x117
+- SOL_ATM = 0x108
+- SOL_CAIF = 0x116
+- SOL_CAN_BASE = 0x64
+- SOL_DCCP = 0x10d
+- SOL_DECNET = 0x105
+- SOL_ICMPV6 = 0x3a
+- SOL_IP = 0x0
+- SOL_IPV6 = 0x29
+- SOL_IRDA = 0x10a
+- SOL_IUCV = 0x115
+- SOL_KCM = 0x119
+- SOL_LLC = 0x10c
+- SOL_NETBEUI = 0x10b
+- SOL_NETLINK = 0x10e
+- SOL_NFC = 0x118
+- SOL_PACKET = 0x107
+- SOL_PNPIPE = 0x113
+- SOL_PPPOL2TP = 0x111
+- SOL_RAW = 0xff
+- SOL_RDS = 0x114
+- SOL_RXRPC = 0x110
+- SOL_SOCKET = 0xffff
+- SOL_TCP = 0x6
+- SOL_TIPC = 0x10f
+- SOL_X25 = 0x106
+- SOMAXCONN = 0x80
+- SO_ACCEPTCONN = 0x1009
+- SO_ATTACH_BPF = 0x32
+- SO_ATTACH_FILTER = 0x1a
+- SO_ATTACH_REUSEPORT_CBPF = 0x33
+- SO_ATTACH_REUSEPORT_EBPF = 0x34
+- SO_BINDTODEVICE = 0x19
+- SO_BPF_EXTENSIONS = 0x30
+- SO_BROADCAST = 0x20
+- SO_BSDCOMPAT = 0xe
+- SO_BUSY_POLL = 0x2e
+- SO_CNX_ADVICE = 0x35
+- SO_DEBUG = 0x1
+- SO_DETACH_BPF = 0x1b
+- SO_DETACH_FILTER = 0x1b
+- SO_DOMAIN = 0x1029
+- SO_DONTROUTE = 0x10
+- SO_ERROR = 0x1007
+- SO_GET_FILTER = 0x1a
+- SO_INCOMING_CPU = 0x31
+- SO_KEEPALIVE = 0x8
+- SO_LINGER = 0x80
+- SO_LOCK_FILTER = 0x2c
+- SO_MARK = 0x24
+- SO_MAX_PACING_RATE = 0x2f
+- SO_NOFCS = 0x2b
+- SO_NO_CHECK = 0xb
+- SO_OOBINLINE = 0x100
+- SO_PASSCRED = 0x11
+- SO_PASSSEC = 0x22
+- SO_PEEK_OFF = 0x2a
+- SO_PEERCRED = 0x12
+- SO_PEERNAME = 0x1c
+- SO_PEERSEC = 0x1e
+- SO_PRIORITY = 0xc
+- SO_PROTOCOL = 0x1028
+- SO_RCVBUF = 0x1002
+- SO_RCVBUFFORCE = 0x21
+- SO_RCVLOWAT = 0x1004
+- SO_RCVTIMEO = 0x1006
+- SO_REUSEADDR = 0x4
+- SO_REUSEPORT = 0x200
+- SO_RXQ_OVFL = 0x28
+- SO_SECURITY_AUTHENTICATION = 0x16
+- SO_SECURITY_ENCRYPTION_NETWORK = 0x18
+- SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
+- SO_SELECT_ERR_QUEUE = 0x2d
+- SO_SNDBUF = 0x1001
+- SO_SNDBUFFORCE = 0x1f
+- SO_SNDLOWAT = 0x1003
+- SO_SNDTIMEO = 0x1005
+- SO_STYLE = 0x1008
+- SO_TIMESTAMP = 0x1d
+- SO_TIMESTAMPING = 0x25
+- SO_TIMESTAMPNS = 0x23
+- SO_TYPE = 0x1008
+- SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
+- SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
+- SO_VM_SOCKETS_BUFFER_SIZE = 0x0
+- SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
+- SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
+- SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
+- SO_VM_SOCKETS_TRUSTED = 0x5
+- SO_WIFI_STATUS = 0x29
+- SPLICE_F_GIFT = 0x8
+- SPLICE_F_MORE = 0x4
+- SPLICE_F_MOVE = 0x1
+- SPLICE_F_NONBLOCK = 0x2
+- S_BLKSIZE = 0x200
+- S_IEXEC = 0x40
+- S_IFBLK = 0x6000
+- S_IFCHR = 0x2000
+- S_IFDIR = 0x4000
+- S_IFIFO = 0x1000
+- S_IFLNK = 0xa000
+- S_IFMT = 0xf000
+- S_IFREG = 0x8000
+- S_IFSOCK = 0xc000
+- S_IREAD = 0x100
+- S_IRGRP = 0x20
+- S_IROTH = 0x4
+- S_IRUSR = 0x100
+- S_IRWXG = 0x38
+- S_IRWXO = 0x7
+- S_IRWXU = 0x1c0
+- S_ISGID = 0x400
+- S_ISUID = 0x800
+- S_ISVTX = 0x200
+- S_IWGRP = 0x10
+- S_IWOTH = 0x2
+- S_IWRITE = 0x80
+- S_IWUSR = 0x80
+- S_IXGRP = 0x8
+- S_IXOTH = 0x1
+- S_IXUSR = 0x40
+- TAB0 = 0x0
+- TAB1 = 0x800
+- TAB2 = 0x1000
+- TAB3 = 0x1800
+- TABDLY = 0x1800
+- TASKSTATS_CMD_ATTR_MAX = 0x4
+- TASKSTATS_CMD_MAX = 0x2
+- TASKSTATS_GENL_NAME = "TASKSTATS"
+- TASKSTATS_GENL_VERSION = 0x1
+- TASKSTATS_TYPE_MAX = 0x6
+- TASKSTATS_VERSION = 0x8
+- TCFLSH = 0x5407
+- TCGETA = 0x5401
+- TCGETS = 0x540d
+- TCGETS2 = 0x4030542a
+- TCIFLUSH = 0x0
+- TCIOFF = 0x2
+- TCIOFLUSH = 0x2
+- TCION = 0x3
+- TCOFLUSH = 0x1
+- TCOOFF = 0x0
+- TCOON = 0x1
+- TCP_CC_INFO = 0x1a
+- TCP_CONGESTION = 0xd
+- TCP_COOKIE_IN_ALWAYS = 0x1
+- TCP_COOKIE_MAX = 0x10
+- TCP_COOKIE_MIN = 0x8
+- TCP_COOKIE_OUT_NEVER = 0x2
+- TCP_COOKIE_PAIR_SIZE = 0x20
+- TCP_COOKIE_TRANSACTIONS = 0xf
+- TCP_CORK = 0x3
+- TCP_DEFER_ACCEPT = 0x9
+- TCP_FASTOPEN = 0x17
+- TCP_INFO = 0xb
+- TCP_KEEPCNT = 0x6
+- TCP_KEEPIDLE = 0x4
+- TCP_KEEPINTVL = 0x5
+- TCP_LINGER2 = 0x8
+- TCP_MAXSEG = 0x2
+- TCP_MAXWIN = 0xffff
+- TCP_MAX_WINSHIFT = 0xe
+- TCP_MD5SIG = 0xe
+- TCP_MD5SIG_MAXKEYLEN = 0x50
+- TCP_MSS = 0x200
+- TCP_MSS_DEFAULT = 0x218
+- TCP_MSS_DESIRED = 0x4c4
+- TCP_NODELAY = 0x1
+- TCP_NOTSENT_LOWAT = 0x19
+- TCP_QUEUE_SEQ = 0x15
+- TCP_QUICKACK = 0xc
+- TCP_REPAIR = 0x13
+- TCP_REPAIR_OPTIONS = 0x16
+- TCP_REPAIR_QUEUE = 0x14
+- TCP_REPAIR_WINDOW = 0x1d
+- TCP_SAVED_SYN = 0x1c
+- TCP_SAVE_SYN = 0x1b
+- TCP_SYNCNT = 0x7
+- TCP_S_DATA_IN = 0x4
+- TCP_S_DATA_OUT = 0x8
+- TCP_THIN_DUPACK = 0x11
+- TCP_THIN_LINEAR_TIMEOUTS = 0x10
+- TCP_TIMESTAMP = 0x18
+- TCP_USER_TIMEOUT = 0x12
+- TCP_WINDOW_CLAMP = 0xa
+- TCSAFLUSH = 0x5410
+- TCSBRK = 0x5405
+- TCSBRKP = 0x5486
+- TCSETA = 0x5402
+- TCSETAF = 0x5404
+- TCSETAW = 0x5403
+- TCSETS = 0x540e
+- TCSETS2 = 0x8030542b
+- TCSETSF = 0x5410
+- TCSETSF2 = 0x8030542d
+- TCSETSW = 0x540f
+- TCSETSW2 = 0x8030542c
+- TCXONC = 0x5406
+- TIOCCBRK = 0x5428
+- TIOCCONS = 0x80047478
+- TIOCEXCL = 0x740d
+- TIOCGDEV = 0x40045432
+- TIOCGETD = 0x7400
+- TIOCGETP = 0x7408
+- TIOCGEXCL = 0x40045440
+- TIOCGICOUNT = 0x5492
+- TIOCGLCKTRMIOS = 0x548b
+- TIOCGLTC = 0x7474
+- TIOCGPGRP = 0x40047477
+- TIOCGPKT = 0x40045438
+- TIOCGPTLCK = 0x40045439
+- TIOCGPTN = 0x40045430
+- TIOCGRS485 = 0x4020542e
+- TIOCGSERIAL = 0x5484
+- TIOCGSID = 0x7416
+- TIOCGSOFTCAR = 0x5481
+- TIOCGWINSZ = 0x40087468
+- TIOCINQ = 0x467f
+- TIOCLINUX = 0x5483
+- TIOCMBIC = 0x741c
+- TIOCMBIS = 0x741b
+- TIOCMGET = 0x741d
+- TIOCMIWAIT = 0x5491
+- TIOCMSET = 0x741a
+- TIOCM_CAR = 0x100
+- TIOCM_CD = 0x100
+- TIOCM_CTS = 0x40
+- TIOCM_DSR = 0x400
+- TIOCM_DTR = 0x2
+- TIOCM_LE = 0x1
+- TIOCM_RI = 0x200
+- TIOCM_RNG = 0x200
+- TIOCM_RTS = 0x4
+- TIOCM_SR = 0x20
+- TIOCM_ST = 0x10
+- TIOCNOTTY = 0x5471
+- TIOCNXCL = 0x740e
+- TIOCOUTQ = 0x7472
+- TIOCPKT = 0x5470
+- TIOCPKT_DATA = 0x0
+- TIOCPKT_DOSTOP = 0x20
+- TIOCPKT_FLUSHREAD = 0x1
+- TIOCPKT_FLUSHWRITE = 0x2
+- TIOCPKT_IOCTL = 0x40
+- TIOCPKT_NOSTOP = 0x10
+- TIOCPKT_START = 0x8
+- TIOCPKT_STOP = 0x4
+- TIOCSBRK = 0x5427
+- TIOCSCTTY = 0x5480
+- TIOCSERCONFIG = 0x5488
+- TIOCSERGETLSR = 0x548e
+- TIOCSERGETMULTI = 0x548f
+- TIOCSERGSTRUCT = 0x548d
+- TIOCSERGWILD = 0x5489
+- TIOCSERSETMULTI = 0x5490
+- TIOCSERSWILD = 0x548a
+- TIOCSER_TEMT = 0x1
+- TIOCSETD = 0x7401
+- TIOCSETN = 0x740a
+- TIOCSETP = 0x7409
+- TIOCSIG = 0x80045436
+- TIOCSLCKTRMIOS = 0x548c
+- TIOCSLTC = 0x7475
+- TIOCSPGRP = 0x80047476
+- TIOCSPTLCK = 0x80045431
+- TIOCSRS485 = 0xc020542f
+- TIOCSSERIAL = 0x5485
+- TIOCSSOFTCAR = 0x5482
+- TIOCSTI = 0x5472
+- TIOCSWINSZ = 0x80087467
+- TIOCVHANGUP = 0x5437
+- TOSTOP = 0x8000
+- TS_COMM_LEN = 0x20
+- TUNATTACHFILTER = 0x800854d5
+- TUNDETACHFILTER = 0x800854d6
+- TUNGETFEATURES = 0x400454cf
+- TUNGETFILTER = 0x400854db
+- TUNGETIFF = 0x400454d2
+- TUNGETSNDBUF = 0x400454d3
+- TUNGETVNETBE = 0x400454df
+- TUNGETVNETHDRSZ = 0x400454d7
+- TUNGETVNETLE = 0x400454dd
+- TUNSETDEBUG = 0x800454c9
+- TUNSETGROUP = 0x800454ce
+- TUNSETIFF = 0x800454ca
+- TUNSETIFINDEX = 0x800454da
+- TUNSETLINK = 0x800454cd
+- TUNSETNOCSUM = 0x800454c8
+- TUNSETOFFLOAD = 0x800454d0
+- TUNSETOWNER = 0x800454cc
+- TUNSETPERSIST = 0x800454cb
+- TUNSETQUEUE = 0x800454d9
+- TUNSETSNDBUF = 0x800454d4
+- TUNSETTXFILTER = 0x800454d1
+- TUNSETVNETBE = 0x800454de
+- TUNSETVNETHDRSZ = 0x800454d8
+- TUNSETVNETLE = 0x800454dc
+- UMOUNT_NOFOLLOW = 0x8
+- VDISCARD = 0xd
+- VEOF = 0x10
+- VEOL = 0x11
+- VEOL2 = 0x6
+- VERASE = 0x2
+- VINTR = 0x0
+- VKILL = 0x3
+- VLNEXT = 0xf
+- VMADDR_CID_ANY = 0xffffffff
+- VMADDR_CID_HOST = 0x2
+- VMADDR_CID_HYPERVISOR = 0x0
+- VMADDR_CID_RESERVED = 0x1
+- VMADDR_PORT_ANY = 0xffffffff
+- VMIN = 0x4
+- VM_SOCKETS_INVALID_VERSION = 0xffffffff
+- VQUIT = 0x1
+- VREPRINT = 0xc
+- VSTART = 0x8
+- VSTOP = 0x9
+- VSUSP = 0xa
+- VSWTC = 0x7
+- VSWTCH = 0x7
+- VT0 = 0x0
+- VT1 = 0x4000
+- VTDLY = 0x4000
+- VTIME = 0x5
+- VWERASE = 0xe
+- WALL = 0x40000000
+- WCLONE = 0x80000000
+- WCONTINUED = 0x8
+- WEXITED = 0x4
+- WNOHANG = 0x1
+- WNOTHREAD = 0x20000000
+- WNOWAIT = 0x1000000
+- WORDSIZE = 0x20
+- WSTOPPED = 0x2
+- WUNTRACED = 0x2
+- XATTR_CREATE = 0x1
+- XATTR_REPLACE = 0x2
+- XCASE = 0x4
+- XTABS = 0x1800
++ B1000000 = 0x1008
++ B115200 = 0x1002
++ B1152000 = 0x1009
++ B1500000 = 0x100a
++ B2000000 = 0x100b
++ B230400 = 0x1003
++ B2500000 = 0x100c
++ B3000000 = 0x100d
++ B3500000 = 0x100e
++ B4000000 = 0x100f
++ B460800 = 0x1004
++ B500000 = 0x1005
++ B57600 = 0x1001
++ B576000 = 0x1006
++ B921600 = 0x1007
++ BLKBSZGET = 0x40041270
++ BLKBSZSET = 0x80041271
++ BLKFLSBUF = 0x20001261
++ BLKFRAGET = 0x20001265
++ BLKFRASET = 0x20001264
++ BLKGETSIZE = 0x20001260
++ BLKGETSIZE64 = 0x40041272
++ BLKPBSZGET = 0x2000127b
++ BLKRAGET = 0x20001263
++ BLKRASET = 0x20001262
++ BLKROGET = 0x2000125e
++ BLKROSET = 0x2000125d
++ BLKRRPART = 0x2000125f
++ BLKSECTGET = 0x20001267
++ BLKSECTSET = 0x20001266
++ BLKSSZGET = 0x20001268
++ BOTHER = 0x1000
++ BS1 = 0x2000
++ BSDLY = 0x2000
++ CBAUD = 0x100f
++ CBAUDEX = 0x1000
++ CIBAUD = 0x100f0000
++ CLOCAL = 0x800
++ CR1 = 0x200
++ CR2 = 0x400
++ CR3 = 0x600
++ CRDLY = 0x600
++ CREAD = 0x80
++ CS6 = 0x10
++ CS7 = 0x20
++ CS8 = 0x30
++ CSIZE = 0x30
++ CSTOPB = 0x40
++ ECHOCTL = 0x200
++ ECHOE = 0x10
++ ECHOK = 0x20
++ ECHOKE = 0x800
++ ECHONL = 0x40
++ ECHOPRT = 0x400
++ EFD_CLOEXEC = 0x80000
++ EFD_NONBLOCK = 0x80
++ EPOLL_CLOEXEC = 0x80000
++ EXTPROC = 0x10000
++ FF1 = 0x8000
++ FFDLY = 0x8000
++ FLUSHO = 0x2000
++ FS_IOC_ENABLE_VERITY = 0x80806685
++ FS_IOC_GETFLAGS = 0x40046601
++ FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615
++ FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614
++ FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613
++ F_GETLK = 0x21
++ F_GETLK64 = 0x21
++ F_GETOWN = 0x17
++ F_RDLCK = 0x0
++ F_SETLK = 0x22
++ F_SETLK64 = 0x22
++ F_SETLKW = 0x23
++ F_SETLKW64 = 0x23
++ F_SETOWN = 0x18
++ F_UNLCK = 0x2
++ F_WRLCK = 0x1
++ HUPCL = 0x400
++ ICANON = 0x2
++ IEXTEN = 0x100
++ IN_CLOEXEC = 0x80000
++ IN_NONBLOCK = 0x80
++ IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9
++ ISIG = 0x1
++ IUCLC = 0x200
++ IXOFF = 0x1000
++ IXON = 0x400
++ MAP_ANON = 0x800
++ MAP_ANONYMOUS = 0x800
++ MAP_DENYWRITE = 0x2000
++ MAP_EXECUTABLE = 0x4000
++ MAP_GROWSDOWN = 0x1000
++ MAP_HUGETLB = 0x80000
++ MAP_LOCKED = 0x8000
++ MAP_NONBLOCK = 0x20000
++ MAP_NORESERVE = 0x400
++ MAP_POPULATE = 0x10000
++ MAP_RENAME = 0x800
++ MAP_STACK = 0x40000
++ MCL_CURRENT = 0x1
++ MCL_FUTURE = 0x2
++ MCL_ONFAULT = 0x4
++ NFDBITS = 0x20
++ NLDLY = 0x100
++ NOFLSH = 0x80
++ NS_GET_NSTYPE = 0x2000b703
++ NS_GET_OWNER_UID = 0x2000b704
++ NS_GET_PARENT = 0x2000b702
++ NS_GET_USERNS = 0x2000b701
++ OLCUC = 0x2
++ ONLCR = 0x4
++ O_APPEND = 0x8
++ O_ASYNC = 0x1000
++ O_CLOEXEC = 0x80000
++ O_CREAT = 0x100
++ O_DIRECT = 0x8000
++ O_DIRECTORY = 0x10000
++ O_DSYNC = 0x10
++ O_EXCL = 0x400
++ O_FSYNC = 0x4010
++ O_LARGEFILE = 0x2000
++ O_NDELAY = 0x80
++ O_NOATIME = 0x40000
++ O_NOCTTY = 0x800
++ O_NOFOLLOW = 0x20000
++ O_NONBLOCK = 0x80
++ O_PATH = 0x200000
++ O_RSYNC = 0x4010
++ O_SYNC = 0x4010
++ O_TMPFILE = 0x410000
++ O_TRUNC = 0x200
++ PARENB = 0x100
++ PARODD = 0x200
++ PENDIN = 0x4000
++ PERF_EVENT_IOC_DISABLE = 0x20002401
++ PERF_EVENT_IOC_ENABLE = 0x20002400
++ PERF_EVENT_IOC_ID = 0x40042407
++ PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b
++ PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409
++ PERF_EVENT_IOC_PERIOD = 0x80082404
++ PERF_EVENT_IOC_QUERY_BPF = 0xc004240a
++ PERF_EVENT_IOC_REFRESH = 0x20002402
++ PERF_EVENT_IOC_RESET = 0x20002403
++ PERF_EVENT_IOC_SET_BPF = 0x80042408
++ PERF_EVENT_IOC_SET_FILTER = 0x80042406
++ PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
++ PPPIOCATTACH = 0x8004743d
++ PPPIOCATTCHAN = 0x80047438
++ PPPIOCCONNECT = 0x8004743a
++ PPPIOCDETACH = 0x8004743c
++ PPPIOCDISCONN = 0x20007439
++ PPPIOCGASYNCMAP = 0x40047458
++ PPPIOCGCHAN = 0x40047437
++ PPPIOCGDEBUG = 0x40047441
++ PPPIOCGFLAGS = 0x4004745a
++ PPPIOCGIDLE = 0x4008743f
++ PPPIOCGIDLE32 = 0x4008743f
++ PPPIOCGIDLE64 = 0x4010743f
++ PPPIOCGL2TPSTATS = 0x40487436
++ PPPIOCGMRU = 0x40047453
++ PPPIOCGRASYNCMAP = 0x40047455
++ PPPIOCGUNIT = 0x40047456
++ PPPIOCGXASYNCMAP = 0x40207450
++ PPPIOCSACTIVE = 0x80087446
++ PPPIOCSASYNCMAP = 0x80047457
++ PPPIOCSCOMPRESS = 0x800c744d
++ PPPIOCSDEBUG = 0x80047440
++ PPPIOCSFLAGS = 0x80047459
++ PPPIOCSMAXCID = 0x80047451
++ PPPIOCSMRRU = 0x8004743b
++ PPPIOCSMRU = 0x80047452
++ PPPIOCSNPMODE = 0x8008744b
++ PPPIOCSPASS = 0x80087447
++ PPPIOCSRASYNCMAP = 0x80047454
++ PPPIOCSXASYNCMAP = 0x8020744f
++ PPPIOCXFERUNIT = 0x2000744e
++ PR_SET_PTRACER_ANY = 0xffffffff
++ PTRACE_GETFPREGS = 0xe
++ PTRACE_GET_THREAD_AREA = 0x19
++ PTRACE_GET_THREAD_AREA_3264 = 0xc4
++ PTRACE_GET_WATCH_REGS = 0xd0
++ PTRACE_OLDSETOPTIONS = 0x15
++ PTRACE_PEEKDATA_3264 = 0xc1
++ PTRACE_PEEKTEXT_3264 = 0xc0
++ PTRACE_POKEDATA_3264 = 0xc3
++ PTRACE_POKETEXT_3264 = 0xc2
++ PTRACE_SETFPREGS = 0xf
++ PTRACE_SET_THREAD_AREA = 0x1a
++ PTRACE_SET_WATCH_REGS = 0xd1
++ RLIMIT_AS = 0x6
++ RLIMIT_MEMLOCK = 0x9
++ RLIMIT_NOFILE = 0x5
++ RLIMIT_NPROC = 0x8
++ RLIMIT_RSS = 0x7
++ RNDADDENTROPY = 0x80085203
++ RNDADDTOENTCNT = 0x80045201
++ RNDCLEARPOOL = 0x20005206
++ RNDGETENTCNT = 0x40045200
++ RNDGETPOOL = 0x40085202
++ RNDRESEEDCRNG = 0x20005207
++ RNDZAPENTCNT = 0x20005204
++ RTC_AIE_OFF = 0x20007002
++ RTC_AIE_ON = 0x20007001
++ RTC_ALM_READ = 0x40247008
++ RTC_ALM_SET = 0x80247007
++ RTC_EPOCH_READ = 0x4004700d
++ RTC_EPOCH_SET = 0x8004700e
++ RTC_IRQP_READ = 0x4004700b
++ RTC_IRQP_SET = 0x8004700c
++ RTC_PIE_OFF = 0x20007006
++ RTC_PIE_ON = 0x20007005
++ RTC_PLL_GET = 0x401c7011
++ RTC_PLL_SET = 0x801c7012
++ RTC_RD_TIME = 0x40247009
++ RTC_SET_TIME = 0x8024700a
++ RTC_UIE_OFF = 0x20007004
++ RTC_UIE_ON = 0x20007003
++ RTC_VL_CLR = 0x20007014
++ RTC_VL_READ = 0x40047013
++ RTC_WIE_OFF = 0x20007010
++ RTC_WIE_ON = 0x2000700f
++ RTC_WKALM_RD = 0x40287010
++ RTC_WKALM_SET = 0x8028700f
++ SCM_TIMESTAMPING = 0x25
++ SCM_TIMESTAMPING_OPT_STATS = 0x36
++ SCM_TIMESTAMPING_PKTINFO = 0x3a
++ SCM_TIMESTAMPNS = 0x23
++ SCM_TXTIME = 0x3d
++ SCM_WIFI_STATUS = 0x29
++ SFD_CLOEXEC = 0x80000
++ SFD_NONBLOCK = 0x80
++ SIOCATMARK = 0x40047307
++ SIOCGPGRP = 0x40047309
++ SIOCGSTAMPNS_NEW = 0x40108907
++ SIOCGSTAMP_NEW = 0x40108906
++ SIOCINQ = 0x467f
++ SIOCOUTQ = 0x7472
++ SIOCSPGRP = 0x80047308
++ SOCK_CLOEXEC = 0x80000
++ SOCK_DGRAM = 0x1
++ SOCK_NONBLOCK = 0x80
++ SOCK_STREAM = 0x2
++ SOL_SOCKET = 0xffff
++ SO_ACCEPTCONN = 0x1009
++ SO_ATTACH_BPF = 0x32
++ SO_ATTACH_REUSEPORT_CBPF = 0x33
++ SO_ATTACH_REUSEPORT_EBPF = 0x34
++ SO_BINDTODEVICE = 0x19
++ SO_BINDTOIFINDEX = 0x3e
++ SO_BPF_EXTENSIONS = 0x30
++ SO_BROADCAST = 0x20
++ SO_BSDCOMPAT = 0xe
++ SO_BUSY_POLL = 0x2e
++ SO_CNX_ADVICE = 0x35
++ SO_COOKIE = 0x39
++ SO_DETACH_REUSEPORT_BPF = 0x44
++ SO_DOMAIN = 0x1029
++ SO_DONTROUTE = 0x10
++ SO_ERROR = 0x1007
++ SO_INCOMING_CPU = 0x31
++ SO_INCOMING_NAPI_ID = 0x38
++ SO_KEEPALIVE = 0x8
++ SO_LINGER = 0x80
++ SO_LOCK_FILTER = 0x2c
++ SO_MARK = 0x24
++ SO_MAX_PACING_RATE = 0x2f
++ SO_MEMINFO = 0x37
++ SO_NOFCS = 0x2b
++ SO_OOBINLINE = 0x100
++ SO_PASSCRED = 0x11
++ SO_PASSSEC = 0x22
++ SO_PEEK_OFF = 0x2a
++ SO_PEERCRED = 0x12
++ SO_PEERGROUPS = 0x3b
++ SO_PEERSEC = 0x1e
++ SO_PROTOCOL = 0x1028
++ SO_RCVBUF = 0x1002
++ SO_RCVBUFFORCE = 0x21
++ SO_RCVLOWAT = 0x1004
++ SO_RCVTIMEO = 0x1006
++ SO_RCVTIMEO_NEW = 0x42
++ SO_RCVTIMEO_OLD = 0x1006
++ SO_REUSEADDR = 0x4
++ SO_REUSEPORT = 0x200
++ SO_RXQ_OVFL = 0x28
++ SO_SECURITY_AUTHENTICATION = 0x16
++ SO_SECURITY_ENCRYPTION_NETWORK = 0x18
++ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
++ SO_SELECT_ERR_QUEUE = 0x2d
++ SO_SNDBUF = 0x1001
++ SO_SNDBUFFORCE = 0x1f
++ SO_SNDLOWAT = 0x1003
++ SO_SNDTIMEO = 0x1005
++ SO_SNDTIMEO_NEW = 0x43
++ SO_SNDTIMEO_OLD = 0x1005
++ SO_STYLE = 0x1008
++ SO_TIMESTAMPING = 0x25
++ SO_TIMESTAMPING_NEW = 0x41
++ SO_TIMESTAMPING_OLD = 0x25
++ SO_TIMESTAMPNS = 0x23
++ SO_TIMESTAMPNS_NEW = 0x40
++ SO_TIMESTAMPNS_OLD = 0x23
++ SO_TIMESTAMP_NEW = 0x3f
++ SO_TXTIME = 0x3d
++ SO_TYPE = 0x1008
++ SO_WIFI_STATUS = 0x29
++ SO_ZEROCOPY = 0x3c
++ TAB1 = 0x800
++ TAB2 = 0x1000
++ TAB3 = 0x1800
++ TABDLY = 0x1800
++ TCFLSH = 0x5407
++ TCGETA = 0x5401
++ TCGETS = 0x540d
++ TCGETS2 = 0x4030542a
++ TCSAFLUSH = 0x5410
++ TCSBRK = 0x5405
++ TCSBRKP = 0x5486
++ TCSETA = 0x5402
++ TCSETAF = 0x5404
++ TCSETAW = 0x5403
++ TCSETS = 0x540e
++ TCSETS2 = 0x8030542b
++ TCSETSF = 0x5410
++ TCSETSF2 = 0x8030542d
++ TCSETSW = 0x540f
++ TCSETSW2 = 0x8030542c
++ TCXONC = 0x5406
++ TIOCCBRK = 0x5428
++ TIOCCONS = 0x80047478
++ TIOCEXCL = 0x740d
++ TIOCGDEV = 0x40045432
++ TIOCGETD = 0x7400
++ TIOCGETP = 0x7408
++ TIOCGEXCL = 0x40045440
++ TIOCGICOUNT = 0x5492
++ TIOCGISO7816 = 0x40285442
++ TIOCGLCKTRMIOS = 0x548b
++ TIOCGLTC = 0x7474
++ TIOCGPGRP = 0x40047477
++ TIOCGPKT = 0x40045438
++ TIOCGPTLCK = 0x40045439
++ TIOCGPTN = 0x40045430
++ TIOCGPTPEER = 0x20005441
++ TIOCGRS485 = 0x4020542e
++ TIOCGSERIAL = 0x5484
++ TIOCGSID = 0x7416
++ TIOCGSOFTCAR = 0x5481
++ TIOCGWINSZ = 0x40087468
++ TIOCINQ = 0x467f
++ TIOCLINUX = 0x5483
++ TIOCMBIC = 0x741c
++ TIOCMBIS = 0x741b
++ TIOCMGET = 0x741d
++ TIOCMIWAIT = 0x5491
++ TIOCMSET = 0x741a
++ TIOCM_CAR = 0x100
++ TIOCM_CD = 0x100
++ TIOCM_CTS = 0x40
++ TIOCM_DSR = 0x400
++ TIOCM_RI = 0x200
++ TIOCM_RNG = 0x200
++ TIOCM_SR = 0x20
++ TIOCM_ST = 0x10
++ TIOCNOTTY = 0x5471
++ TIOCNXCL = 0x740e
++ TIOCOUTQ = 0x7472
++ TIOCPKT = 0x5470
++ TIOCSBRK = 0x5427
++ TIOCSCTTY = 0x5480
++ TIOCSERCONFIG = 0x5488
++ TIOCSERGETLSR = 0x548e
++ TIOCSERGETMULTI = 0x548f
++ TIOCSERGSTRUCT = 0x548d
++ TIOCSERGWILD = 0x5489
++ TIOCSERSETMULTI = 0x5490
++ TIOCSERSWILD = 0x548a
++ TIOCSER_TEMT = 0x1
++ TIOCSETD = 0x7401
++ TIOCSETN = 0x740a
++ TIOCSETP = 0x7409
++ TIOCSIG = 0x80045436
++ TIOCSISO7816 = 0xc0285443
++ TIOCSLCKTRMIOS = 0x548c
++ TIOCSLTC = 0x7475
++ TIOCSPGRP = 0x80047476
++ TIOCSPTLCK = 0x80045431
++ TIOCSRS485 = 0xc020542f
++ TIOCSSERIAL = 0x5485
++ TIOCSSOFTCAR = 0x5482
++ TIOCSTI = 0x5472
++ TIOCSWINSZ = 0x80087467
++ TIOCVHANGUP = 0x5437
++ TOSTOP = 0x8000
++ TUNATTACHFILTER = 0x800854d5
++ TUNDETACHFILTER = 0x800854d6
++ TUNGETDEVNETNS = 0x200054e3
++ TUNGETFEATURES = 0x400454cf
++ TUNGETFILTER = 0x400854db
++ TUNGETIFF = 0x400454d2
++ TUNGETSNDBUF = 0x400454d3
++ TUNGETVNETBE = 0x400454df
++ TUNGETVNETHDRSZ = 0x400454d7
++ TUNGETVNETLE = 0x400454dd
++ TUNSETCARRIER = 0x800454e2
++ TUNSETDEBUG = 0x800454c9
++ TUNSETFILTEREBPF = 0x400454e1
++ TUNSETGROUP = 0x800454ce
++ TUNSETIFF = 0x800454ca
++ TUNSETIFINDEX = 0x800454da
++ TUNSETLINK = 0x800454cd
++ TUNSETNOCSUM = 0x800454c8
++ TUNSETOFFLOAD = 0x800454d0
++ TUNSETOWNER = 0x800454cc
++ TUNSETPERSIST = 0x800454cb
++ TUNSETQUEUE = 0x800454d9
++ TUNSETSNDBUF = 0x800454d4
++ TUNSETSTEERINGEBPF = 0x400454e0
++ TUNSETTXFILTER = 0x800454d1
++ TUNSETVNETBE = 0x800454de
++ TUNSETVNETHDRSZ = 0x800454d8
++ TUNSETVNETLE = 0x800454dc
++ UBI_IOCATT = 0x80186f40
++ UBI_IOCDET = 0x80046f41
++ UBI_IOCEBCH = 0x80044f02
++ UBI_IOCEBER = 0x80044f01
++ UBI_IOCEBISMAP = 0x40044f05
++ UBI_IOCEBMAP = 0x80084f03
++ UBI_IOCEBUNMAP = 0x80044f04
++ UBI_IOCMKVOL = 0x80986f00
++ UBI_IOCRMVOL = 0x80046f01
++ UBI_IOCRNVOL = 0x91106f03
++ UBI_IOCRPEB = 0x80046f04
++ UBI_IOCRSVOL = 0x800c6f02
++ UBI_IOCSETVOLPROP = 0x80104f06
++ UBI_IOCSPEB = 0x80046f05
++ UBI_IOCVOLCRBLK = 0x80804f07
++ UBI_IOCVOLRMBLK = 0x20004f08
++ UBI_IOCVOLUP = 0x80084f00
++ VDISCARD = 0xd
++ VEOF = 0x10
++ VEOL = 0x11
++ VEOL2 = 0x6
++ VMIN = 0x4
++ VREPRINT = 0xc
++ VSTART = 0x8
++ VSTOP = 0x9
++ VSUSP = 0xa
++ VSWTC = 0x7
++ VSWTCH = 0x7
++ VT1 = 0x4000
++ VTDLY = 0x4000
++ VTIME = 0x5
++ VWERASE = 0xe
++ WDIOC_GETBOOTSTATUS = 0x40045702
++ WDIOC_GETPRETIMEOUT = 0x40045709
++ WDIOC_GETSTATUS = 0x40045701
++ WDIOC_GETSUPPORT = 0x40285700
++ WDIOC_GETTEMP = 0x40045703
++ WDIOC_GETTIMELEFT = 0x4004570a
++ WDIOC_GETTIMEOUT = 0x40045707
++ WDIOC_KEEPALIVE = 0x40045705
++ WDIOC_SETOPTIONS = 0x40045704
++ WORDSIZE = 0x20
++ XCASE = 0x4
++ XTABS = 0x1800
+ )
+
+ // Errors
+ const (
+- E2BIG = syscall.Errno(0x7)
+- EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x7d)
+ EADDRNOTAVAIL = syscall.Errno(0x7e)
+ EADV = syscall.Errno(0x44)
+ EAFNOSUPPORT = syscall.Errno(0x7c)
+- EAGAIN = syscall.Errno(0xb)
+ EALREADY = syscall.Errno(0x95)
+ EBADE = syscall.Errno(0x32)
+- EBADF = syscall.Errno(0x9)
+ EBADFD = syscall.Errno(0x51)
+ EBADMSG = syscall.Errno(0x4d)
+ EBADR = syscall.Errno(0x33)
+ EBADRQC = syscall.Errno(0x36)
+ EBADSLT = syscall.Errno(0x37)
+ EBFONT = syscall.Errno(0x3b)
+- EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x9e)
+- ECHILD = syscall.Errno(0xa)
+ ECHRNG = syscall.Errno(0x25)
+ ECOMM = syscall.Errno(0x46)
+ ECONNABORTED = syscall.Errno(0x82)
+@@ -1886,12 +502,8 @@ const (
+ EDEADLK = syscall.Errno(0x2d)
+ EDEADLOCK = syscall.Errno(0x38)
+ EDESTADDRREQ = syscall.Errno(0x60)
+- EDOM = syscall.Errno(0x21)
+ EDOTDOT = syscall.Errno(0x49)
+ EDQUOT = syscall.Errno(0x46d)
+- EEXIST = syscall.Errno(0x11)
+- EFAULT = syscall.Errno(0xe)
+- EFBIG = syscall.Errno(0x1b)
+ EHOSTDOWN = syscall.Errno(0x93)
+ EHOSTUNREACH = syscall.Errno(0x94)
+ EHWPOISON = syscall.Errno(0xa8)
+@@ -1899,11 +511,7 @@ const (
+ EILSEQ = syscall.Errno(0x58)
+ EINIT = syscall.Errno(0x8d)
+ EINPROGRESS = syscall.Errno(0x96)
+- EINTR = syscall.Errno(0x4)
+- EINVAL = syscall.Errno(0x16)
+- EIO = syscall.Errno(0x5)
+ EISCONN = syscall.Errno(0x85)
+- EISDIR = syscall.Errno(0x15)
+ EISNAM = syscall.Errno(0x8b)
+ EKEYEXPIRED = syscall.Errno(0xa2)
+ EKEYREJECTED = syscall.Errno(0xa4)
+@@ -1920,8 +528,6 @@ const (
+ ELNRNG = syscall.Errno(0x29)
+ ELOOP = syscall.Errno(0x5a)
+ EMEDIUMTYPE = syscall.Errno(0xa0)
+- EMFILE = syscall.Errno(0x18)
+- EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x61)
+ EMULTIHOP = syscall.Errno(0x4a)
+ ENAMETOOLONG = syscall.Errno(0x4e)
+@@ -1929,100 +535,68 @@ const (
+ ENETDOWN = syscall.Errno(0x7f)
+ ENETRESET = syscall.Errno(0x81)
+ ENETUNREACH = syscall.Errno(0x80)
+- ENFILE = syscall.Errno(0x17)
+ ENOANO = syscall.Errno(0x35)
+ ENOBUFS = syscall.Errno(0x84)
+ ENOCSI = syscall.Errno(0x2b)
+ ENODATA = syscall.Errno(0x3d)
+- ENODEV = syscall.Errno(0x13)
+- ENOENT = syscall.Errno(0x2)
+- ENOEXEC = syscall.Errno(0x8)
+ ENOKEY = syscall.Errno(0xa1)
+ ENOLCK = syscall.Errno(0x2e)
+ ENOLINK = syscall.Errno(0x43)
+ ENOMEDIUM = syscall.Errno(0x9f)
+- ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x23)
+ ENONET = syscall.Errno(0x40)
+ ENOPKG = syscall.Errno(0x41)
+ ENOPROTOOPT = syscall.Errno(0x63)
+- ENOSPC = syscall.Errno(0x1c)
+ ENOSR = syscall.Errno(0x3f)
+ ENOSTR = syscall.Errno(0x3c)
+ ENOSYS = syscall.Errno(0x59)
+- ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x86)
+- ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x5d)
+ ENOTNAM = syscall.Errno(0x89)
+ ENOTRECOVERABLE = syscall.Errno(0xa6)
+ ENOTSOCK = syscall.Errno(0x5f)
+ ENOTSUP = syscall.Errno(0x7a)
+- ENOTTY = syscall.Errno(0x19)
+ ENOTUNIQ = syscall.Errno(0x50)
+- ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x7a)
+ EOVERFLOW = syscall.Errno(0x4f)
+ EOWNERDEAD = syscall.Errno(0xa5)
+- EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x7b)
+- EPIPE = syscall.Errno(0x20)
+ EPROTO = syscall.Errno(0x47)
+ EPROTONOSUPPORT = syscall.Errno(0x78)
+ EPROTOTYPE = syscall.Errno(0x62)
+- ERANGE = syscall.Errno(0x22)
+ EREMCHG = syscall.Errno(0x52)
+ EREMDEV = syscall.Errno(0x8e)
+ EREMOTE = syscall.Errno(0x42)
+ EREMOTEIO = syscall.Errno(0x8c)
+ ERESTART = syscall.Errno(0x5b)
+ ERFKILL = syscall.Errno(0xa7)
+- EROFS = syscall.Errno(0x1e)
+ ESHUTDOWN = syscall.Errno(0x8f)
+ ESOCKTNOSUPPORT = syscall.Errno(0x79)
+- ESPIPE = syscall.Errno(0x1d)
+- ESRCH = syscall.Errno(0x3)
+ ESRMNT = syscall.Errno(0x45)
+ ESTALE = syscall.Errno(0x97)
+ ESTRPIPE = syscall.Errno(0x5c)
+ ETIME = syscall.Errno(0x3e)
+ ETIMEDOUT = syscall.Errno(0x91)
+ ETOOMANYREFS = syscall.Errno(0x90)
+- ETXTBSY = syscall.Errno(0x1a)
+ EUCLEAN = syscall.Errno(0x87)
+ EUNATCH = syscall.Errno(0x2a)
+ EUSERS = syscall.Errno(0x5e)
+- EWOULDBLOCK = syscall.Errno(0xb)
+- EXDEV = syscall.Errno(0x12)
+ EXFULL = syscall.Errno(0x34)
+ )
+
+ // Signals
+ const (
+- SIGABRT = syscall.Signal(0x6)
+- SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0xa)
+ SIGCHLD = syscall.Signal(0x12)
+ SIGCLD = syscall.Signal(0x12)
+ SIGCONT = syscall.Signal(0x19)
+ SIGEMT = syscall.Signal(0x7)
+- SIGFPE = syscall.Signal(0x8)
+- SIGHUP = syscall.Signal(0x1)
+- SIGILL = syscall.Signal(0x4)
+- SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x16)
+- SIGIOT = syscall.Signal(0x6)
+- SIGKILL = syscall.Signal(0x9)
+- SIGPIPE = syscall.Signal(0xd)
+ SIGPOLL = syscall.Signal(0x16)
+ SIGPROF = syscall.Signal(0x1d)
+ SIGPWR = syscall.Signal(0x13)
+- SIGQUIT = syscall.Signal(0x3)
+- SIGSEGV = syscall.Signal(0xb)
+ SIGSTOP = syscall.Signal(0x17)
+ SIGSYS = syscall.Signal(0xc)
+- SIGTERM = syscall.Signal(0xf)
+- SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x18)
+ SIGTTIN = syscall.Signal(0x1a)
+ SIGTTOU = syscall.Signal(0x1b)
+@@ -2036,174 +610,182 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "no such device or address",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource temporarily unavailable",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "device or resource busy",
+- 17: "file exists",
+- 18: "invalid cross-device link",
+- 19: "no such device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "numerical result out of range",
+- 35: "no message of desired type",
+- 36: "identifier removed",
+- 37: "channel number out of range",
+- 38: "level 2 not synchronized",
+- 39: "level 3 halted",
+- 40: "level 3 reset",
+- 41: "link number out of range",
+- 42: "protocol driver not attached",
+- 43: "no CSI structure available",
+- 44: "level 2 halted",
+- 45: "resource deadlock avoided",
+- 46: "no locks available",
+- 50: "invalid exchange",
+- 51: "invalid request descriptor",
+- 52: "exchange full",
+- 53: "no anode",
+- 54: "invalid request code",
+- 55: "invalid slot",
+- 56: "file locking deadlock error",
+- 59: "bad font file format",
+- 60: "device not a stream",
+- 61: "no data available",
+- 62: "timer expired",
+- 63: "out of streams resources",
+- 64: "machine is not on the network",
+- 65: "package not installed",
+- 66: "object is remote",
+- 67: "link has been severed",
+- 68: "advertise error",
+- 69: "srmount error",
+- 70: "communication error on send",
+- 71: "protocol error",
+- 73: "RFS specific error",
+- 74: "multihop attempted",
+- 77: "bad message",
+- 78: "file name too long",
+- 79: "value too large for defined data type",
+- 80: "name not unique on network",
+- 81: "file descriptor in bad state",
+- 82: "remote address changed",
+- 83: "can not access a needed shared library",
+- 84: "accessing a corrupted shared library",
+- 85: ".lib section in a.out corrupted",
+- 86: "attempting to link in too many shared libraries",
+- 87: "cannot exec a shared library directly",
+- 88: "invalid or incomplete multibyte or wide character",
+- 89: "function not implemented",
+- 90: "too many levels of symbolic links",
+- 91: "interrupted system call should be restarted",
+- 92: "streams pipe error",
+- 93: "directory not empty",
+- 94: "too many users",
+- 95: "socket operation on non-socket",
+- 96: "destination address required",
+- 97: "message too long",
+- 98: "protocol wrong type for socket",
+- 99: "protocol not available",
+- 120: "protocol not supported",
+- 121: "socket type not supported",
+- 122: "operation not supported",
+- 123: "protocol family not supported",
+- 124: "address family not supported by protocol",
+- 125: "address already in use",
+- 126: "cannot assign requested address",
+- 127: "network is down",
+- 128: "network is unreachable",
+- 129: "network dropped connection on reset",
+- 130: "software caused connection abort",
+- 131: "connection reset by peer",
+- 132: "no buffer space available",
+- 133: "transport endpoint is already connected",
+- 134: "transport endpoint is not connected",
+- 135: "structure needs cleaning",
+- 137: "not a XENIX named type file",
+- 138: "no XENIX semaphores available",
+- 139: "is a named type file",
+- 140: "remote I/O error",
+- 141: "unknown error 141",
+- 142: "unknown error 142",
+- 143: "cannot send after transport endpoint shutdown",
+- 144: "too many references: cannot splice",
+- 145: "connection timed out",
+- 146: "connection refused",
+- 147: "host is down",
+- 148: "no route to host",
+- 149: "operation already in progress",
+- 150: "operation now in progress",
+- 151: "stale file handle",
+- 158: "operation canceled",
+- 159: "no medium found",
+- 160: "wrong medium type",
+- 161: "required key not available",
+- 162: "key has expired",
+- 163: "key has been revoked",
+- 164: "key was rejected by service",
+- 165: "owner died",
+- 166: "state not recoverable",
+- 167: "operation not possible due to RF-kill",
+- 168: "memory page has hardware error",
+- 1133: "disk quota exceeded",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "no such device or address"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EAGAIN", "resource temporarily unavailable"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device or resource busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "invalid cross-device link"},
++ {19, "ENODEV", "no such device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "numerical result out of range"},
++ {35, "ENOMSG", "no message of desired type"},
++ {36, "EIDRM", "identifier removed"},
++ {37, "ECHRNG", "channel number out of range"},
++ {38, "EL2NSYNC", "level 2 not synchronized"},
++ {39, "EL3HLT", "level 3 halted"},
++ {40, "EL3RST", "level 3 reset"},
++ {41, "ELNRNG", "link number out of range"},
++ {42, "EUNATCH", "protocol driver not attached"},
++ {43, "ENOCSI", "no CSI structure available"},
++ {44, "EL2HLT", "level 2 halted"},
++ {45, "EDEADLK", "resource deadlock avoided"},
++ {46, "ENOLCK", "no locks available"},
++ {50, "EBADE", "invalid exchange"},
++ {51, "EBADR", "invalid request descriptor"},
++ {52, "EXFULL", "exchange full"},
++ {53, "ENOANO", "no anode"},
++ {54, "EBADRQC", "invalid request code"},
++ {55, "EBADSLT", "invalid slot"},
++ {56, "EDEADLOCK", "file locking deadlock error"},
++ {59, "EBFONT", "bad font file format"},
++ {60, "ENOSTR", "device not a stream"},
++ {61, "ENODATA", "no data available"},
++ {62, "ETIME", "timer expired"},
++ {63, "ENOSR", "out of streams resources"},
++ {64, "ENONET", "machine is not on the network"},
++ {65, "ENOPKG", "package not installed"},
++ {66, "EREMOTE", "object is remote"},
++ {67, "ENOLINK", "link has been severed"},
++ {68, "EADV", "advertise error"},
++ {69, "ESRMNT", "srmount error"},
++ {70, "ECOMM", "communication error on send"},
++ {71, "EPROTO", "protocol error"},
++ {73, "EDOTDOT", "RFS specific error"},
++ {74, "EMULTIHOP", "multihop attempted"},
++ {77, "EBADMSG", "bad message"},
++ {78, "ENAMETOOLONG", "file name too long"},
++ {79, "EOVERFLOW", "value too large for defined data type"},
++ {80, "ENOTUNIQ", "name not unique on network"},
++ {81, "EBADFD", "file descriptor in bad state"},
++ {82, "EREMCHG", "remote address changed"},
++ {83, "ELIBACC", "can not access a needed shared library"},
++ {84, "ELIBBAD", "accessing a corrupted shared library"},
++ {85, "ELIBSCN", ".lib section in a.out corrupted"},
++ {86, "ELIBMAX", "attempting to link in too many shared libraries"},
++ {87, "ELIBEXEC", "cannot exec a shared library directly"},
++ {88, "EILSEQ", "invalid or incomplete multibyte or wide character"},
++ {89, "ENOSYS", "function not implemented"},
++ {90, "ELOOP", "too many levels of symbolic links"},
++ {91, "ERESTART", "interrupted system call should be restarted"},
++ {92, "ESTRPIPE", "streams pipe error"},
++ {93, "ENOTEMPTY", "directory not empty"},
++ {94, "EUSERS", "too many users"},
++ {95, "ENOTSOCK", "socket operation on non-socket"},
++ {96, "EDESTADDRREQ", "destination address required"},
++ {97, "EMSGSIZE", "message too long"},
++ {98, "EPROTOTYPE", "protocol wrong type for socket"},
++ {99, "ENOPROTOOPT", "protocol not available"},
++ {120, "EPROTONOSUPPORT", "protocol not supported"},
++ {121, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {122, "ENOTSUP", "operation not supported"},
++ {123, "EPFNOSUPPORT", "protocol family not supported"},
++ {124, "EAFNOSUPPORT", "address family not supported by protocol"},
++ {125, "EADDRINUSE", "address already in use"},
++ {126, "EADDRNOTAVAIL", "cannot assign requested address"},
++ {127, "ENETDOWN", "network is down"},
++ {128, "ENETUNREACH", "network is unreachable"},
++ {129, "ENETRESET", "network dropped connection on reset"},
++ {130, "ECONNABORTED", "software caused connection abort"},
++ {131, "ECONNRESET", "connection reset by peer"},
++ {132, "ENOBUFS", "no buffer space available"},
++ {133, "EISCONN", "transport endpoint is already connected"},
++ {134, "ENOTCONN", "transport endpoint is not connected"},
++ {135, "EUCLEAN", "structure needs cleaning"},
++ {137, "ENOTNAM", "not a XENIX named type file"},
++ {138, "ENAVAIL", "no XENIX semaphores available"},
++ {139, "EISNAM", "is a named type file"},
++ {140, "EREMOTEIO", "remote I/O error"},
++ {141, "EINIT", "unknown error 141"},
++ {142, "EREMDEV", "unknown error 142"},
++ {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"},
++ {144, "ETOOMANYREFS", "too many references: cannot splice"},
++ {145, "ETIMEDOUT", "connection timed out"},
++ {146, "ECONNREFUSED", "connection refused"},
++ {147, "EHOSTDOWN", "host is down"},
++ {148, "EHOSTUNREACH", "no route to host"},
++ {149, "EALREADY", "operation already in progress"},
++ {150, "EINPROGRESS", "operation now in progress"},
++ {151, "ESTALE", "stale file handle"},
++ {158, "ECANCELED", "operation canceled"},
++ {159, "ENOMEDIUM", "no medium found"},
++ {160, "EMEDIUMTYPE", "wrong medium type"},
++ {161, "ENOKEY", "required key not available"},
++ {162, "EKEYEXPIRED", "key has expired"},
++ {163, "EKEYREVOKED", "key has been revoked"},
++ {164, "EKEYREJECTED", "key was rejected by service"},
++ {165, "EOWNERDEAD", "owner died"},
++ {166, "ENOTRECOVERABLE", "state not recoverable"},
++ {167, "ERFKILL", "operation not possible due to RF-kill"},
++ {168, "EHWPOISON", "memory page has hardware error"},
++ {1133, "EDQUOT", "disk quota exceeded"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/breakpoint trap",
+- 6: "aborted",
+- 7: "EMT trap",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "bus error",
+- 11: "segmentation fault",
+- 12: "bad system call",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "user defined signal 1",
+- 17: "user defined signal 2",
+- 18: "child exited",
+- 19: "power failure",
+- 20: "window changed",
+- 21: "urgent I/O condition",
+- 22: "I/O possible",
+- 23: "stopped (signal)",
+- 24: "stopped",
+- 25: "continued",
+- 26: "stopped (tty input)",
+- 27: "stopped (tty output)",
+- 28: "virtual timer expired",
+- 29: "profiling timer expired",
+- 30: "CPU time limit exceeded",
+- 31: "file size limit exceeded",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/breakpoint trap"},
++ {6, "SIGABRT", "aborted"},
++ {7, "SIGEMT", "EMT trap"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGBUS", "bus error"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGSYS", "bad system call"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGUSR1", "user defined signal 1"},
++ {17, "SIGUSR2", "user defined signal 2"},
++ {18, "SIGCHLD", "child exited"},
++ {19, "SIGPWR", "power failure"},
++ {20, "SIGWINCH", "window changed"},
++ {21, "SIGURG", "urgent I/O condition"},
++ {22, "SIGIO", "I/O possible"},
++ {23, "SIGSTOP", "stopped (signal)"},
++ {24, "SIGTSTP", "stopped"},
++ {25, "SIGCONT", "continued"},
++ {26, "SIGTTIN", "stopped (tty input)"},
++ {27, "SIGTTOU", "stopped (tty output)"},
++ {28, "SIGVTALRM", "virtual timer expired"},
++ {29, "SIGPROF", "profiling timer expired"},
++ {30, "SIGXCPU", "CPU time limit exceeded"},
++ {31, "SIGXFSZ", "file size limit exceeded"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
+index 4148f277..2346dc55 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
+@@ -3,7 +3,7 @@
+
+ // +build mips64,linux
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
+
+ package unix
+@@ -11,1873 +11,489 @@ package unix
+ import "syscall"
+
+ const (
+- AF_ALG = 0x26
+- AF_APPLETALK = 0x5
+- AF_ASH = 0x12
+- AF_ATMPVC = 0x8
+- AF_ATMSVC = 0x14
+- AF_AX25 = 0x3
+- AF_BLUETOOTH = 0x1f
+- AF_BRIDGE = 0x7
+- AF_CAIF = 0x25
+- AF_CAN = 0x1d
+- AF_DECnet = 0xc
+- AF_ECONET = 0x13
+- AF_FILE = 0x1
+- AF_IB = 0x1b
+- AF_IEEE802154 = 0x24
+- AF_INET = 0x2
+- AF_INET6 = 0xa
+- AF_IPX = 0x4
+- AF_IRDA = 0x17
+- AF_ISDN = 0x22
+- AF_IUCV = 0x20
+- AF_KCM = 0x29
+- AF_KEY = 0xf
+- AF_LLC = 0x1a
+- AF_LOCAL = 0x1
+- AF_MAX = 0x2b
+- AF_MPLS = 0x1c
+- AF_NETBEUI = 0xd
+- AF_NETLINK = 0x10
+- AF_NETROM = 0x6
+- AF_NFC = 0x27
+- AF_PACKET = 0x11
+- AF_PHONET = 0x23
+- AF_PPPOX = 0x18
+- AF_QIPCRTR = 0x2a
+- AF_RDS = 0x15
+- AF_ROSE = 0xb
+- AF_ROUTE = 0x10
+- AF_RXRPC = 0x21
+- AF_SECURITY = 0xe
+- AF_SNA = 0x16
+- AF_TIPC = 0x1e
+- AF_UNIX = 0x1
+- AF_UNSPEC = 0x0
+- AF_VSOCK = 0x28
+- AF_WANPIPE = 0x19
+- AF_X25 = 0x9
+- ALG_OP_DECRYPT = 0x0
+- ALG_OP_ENCRYPT = 0x1
+- ALG_SET_AEAD_ASSOCLEN = 0x4
+- ALG_SET_AEAD_AUTHSIZE = 0x5
+- ALG_SET_IV = 0x2
+- ALG_SET_KEY = 0x1
+- ALG_SET_OP = 0x3
+- ARPHRD_6LOWPAN = 0x339
+- ARPHRD_ADAPT = 0x108
+- ARPHRD_APPLETLK = 0x8
+- ARPHRD_ARCNET = 0x7
+- ARPHRD_ASH = 0x30d
+- ARPHRD_ATM = 0x13
+- ARPHRD_AX25 = 0x3
+- ARPHRD_BIF = 0x307
+- ARPHRD_CAIF = 0x336
+- ARPHRD_CAN = 0x118
+- ARPHRD_CHAOS = 0x5
+- ARPHRD_CISCO = 0x201
+- ARPHRD_CSLIP = 0x101
+- ARPHRD_CSLIP6 = 0x103
+- ARPHRD_DDCMP = 0x205
+- ARPHRD_DLCI = 0xf
+- ARPHRD_ECONET = 0x30e
+- ARPHRD_EETHER = 0x2
+- ARPHRD_ETHER = 0x1
+- ARPHRD_EUI64 = 0x1b
+- ARPHRD_FCAL = 0x311
+- ARPHRD_FCFABRIC = 0x313
+- ARPHRD_FCPL = 0x312
+- ARPHRD_FCPP = 0x310
+- ARPHRD_FDDI = 0x306
+- ARPHRD_FRAD = 0x302
+- ARPHRD_HDLC = 0x201
+- ARPHRD_HIPPI = 0x30c
+- ARPHRD_HWX25 = 0x110
+- ARPHRD_IEEE1394 = 0x18
+- ARPHRD_IEEE802 = 0x6
+- ARPHRD_IEEE80211 = 0x321
+- ARPHRD_IEEE80211_PRISM = 0x322
+- ARPHRD_IEEE80211_RADIOTAP = 0x323
+- ARPHRD_IEEE802154 = 0x324
+- ARPHRD_IEEE802154_MONITOR = 0x325
+- ARPHRD_IEEE802_TR = 0x320
+- ARPHRD_INFINIBAND = 0x20
+- ARPHRD_IP6GRE = 0x337
+- ARPHRD_IPDDP = 0x309
+- ARPHRD_IPGRE = 0x30a
+- ARPHRD_IRDA = 0x30f
+- ARPHRD_LAPB = 0x204
+- ARPHRD_LOCALTLK = 0x305
+- ARPHRD_LOOPBACK = 0x304
+- ARPHRD_METRICOM = 0x17
+- ARPHRD_NETLINK = 0x338
+- ARPHRD_NETROM = 0x0
+- ARPHRD_NONE = 0xfffe
+- ARPHRD_PHONET = 0x334
+- ARPHRD_PHONET_PIPE = 0x335
+- ARPHRD_PIMREG = 0x30b
+- ARPHRD_PPP = 0x200
+- ARPHRD_PRONET = 0x4
+- ARPHRD_RAWHDLC = 0x206
+- ARPHRD_ROSE = 0x10e
+- ARPHRD_RSRVD = 0x104
+- ARPHRD_SIT = 0x308
+- ARPHRD_SKIP = 0x303
+- ARPHRD_SLIP = 0x100
+- ARPHRD_SLIP6 = 0x102
+- ARPHRD_TUNNEL = 0x300
+- ARPHRD_TUNNEL6 = 0x301
+- ARPHRD_VOID = 0xffff
+- ARPHRD_X25 = 0x10f
+- B0 = 0x0
+- B1000000 = 0x1008
+- B110 = 0x3
+- B115200 = 0x1002
+- B1152000 = 0x1009
+- B1200 = 0x9
+- B134 = 0x4
+- B150 = 0x5
+- B1500000 = 0x100a
+- B1800 = 0xa
+- B19200 = 0xe
+- B200 = 0x6
+- B2000000 = 0x100b
+- B230400 = 0x1003
+- B2400 = 0xb
+- B2500000 = 0x100c
+- B300 = 0x7
+- B3000000 = 0x100d
+- B3500000 = 0x100e
+- B38400 = 0xf
+- B4000000 = 0x100f
+- B460800 = 0x1004
+- B4800 = 0xc
+- B50 = 0x1
+- B500000 = 0x1005
+- B57600 = 0x1001
+- B576000 = 0x1006
+- B600 = 0x8
+- B75 = 0x2
+- B921600 = 0x1007
+- B9600 = 0xd
+- BLKBSZGET = 0x40081270
+- BLKBSZSET = 0x80081271
+- BLKFLSBUF = 0x20001261
+- BLKFRAGET = 0x20001265
+- BLKFRASET = 0x20001264
+- BLKGETSIZE = 0x20001260
+- BLKGETSIZE64 = 0x40081272
+- BLKPBSZGET = 0x2000127b
+- BLKRAGET = 0x20001263
+- BLKRASET = 0x20001262
+- BLKROGET = 0x2000125e
+- BLKROSET = 0x2000125d
+- BLKRRPART = 0x2000125f
+- BLKSECTGET = 0x20001267
+- BLKSECTSET = 0x20001266
+- BLKSSZGET = 0x20001268
+- BOTHER = 0x1000
+- BPF_A = 0x10
+- BPF_ABS = 0x20
+- BPF_ADD = 0x0
+- BPF_ALU = 0x4
+- BPF_AND = 0x50
+- BPF_B = 0x10
+- BPF_DIV = 0x30
+- BPF_H = 0x8
+- BPF_IMM = 0x0
+- BPF_IND = 0x40
+- BPF_JA = 0x0
+- BPF_JEQ = 0x10
+- BPF_JGE = 0x30
+- BPF_JGT = 0x20
+- BPF_JMP = 0x5
+- BPF_JSET = 0x40
+- BPF_K = 0x0
+- BPF_LD = 0x0
+- BPF_LDX = 0x1
+- BPF_LEN = 0x80
+- BPF_LL_OFF = -0x200000
+- BPF_LSH = 0x60
+- BPF_MAJOR_VERSION = 0x1
+- BPF_MAXINSNS = 0x1000
+- BPF_MEM = 0x60
+- BPF_MEMWORDS = 0x10
+- BPF_MINOR_VERSION = 0x1
+- BPF_MISC = 0x7
+- BPF_MOD = 0x90
+- BPF_MSH = 0xa0
+- BPF_MUL = 0x20
+- BPF_NEG = 0x80
+- BPF_NET_OFF = -0x100000
+- BPF_OR = 0x40
+- BPF_RET = 0x6
+- BPF_RSH = 0x70
+- BPF_ST = 0x2
+- BPF_STX = 0x3
+- BPF_SUB = 0x10
+- BPF_TAX = 0x0
+- BPF_TXA = 0x80
+- BPF_W = 0x0
+- BPF_X = 0x8
+- BPF_XOR = 0xa0
+- BRKINT = 0x2
+- BS0 = 0x0
+- BS1 = 0x2000
+- BSDLY = 0x2000
+- CAN_BCM = 0x2
+- CAN_EFF_FLAG = 0x80000000
+- CAN_EFF_ID_BITS = 0x1d
+- CAN_EFF_MASK = 0x1fffffff
+- CAN_ERR_FLAG = 0x20000000
+- CAN_ERR_MASK = 0x1fffffff
+- CAN_INV_FILTER = 0x20000000
+- CAN_ISOTP = 0x6
+- CAN_MAX_DLC = 0x8
+- CAN_MAX_DLEN = 0x8
+- CAN_MCNET = 0x5
+- CAN_MTU = 0x10
+- CAN_NPROTO = 0x7
+- CAN_RAW = 0x1
+- CAN_RAW_FILTER_MAX = 0x200
+- CAN_RTR_FLAG = 0x40000000
+- CAN_SFF_ID_BITS = 0xb
+- CAN_SFF_MASK = 0x7ff
+- CAN_TP16 = 0x3
+- CAN_TP20 = 0x4
+- CBAUD = 0x100f
+- CBAUDEX = 0x1000
+- CFLUSH = 0xf
+- CIBAUD = 0x100f0000
+- CLOCAL = 0x800
+- CLOCK_BOOTTIME = 0x7
+- CLOCK_BOOTTIME_ALARM = 0x9
+- CLOCK_DEFAULT = 0x0
+- CLOCK_EXT = 0x1
+- CLOCK_INT = 0x2
+- CLOCK_MONOTONIC = 0x1
+- CLOCK_MONOTONIC_COARSE = 0x6
+- CLOCK_MONOTONIC_RAW = 0x4
+- CLOCK_PROCESS_CPUTIME_ID = 0x2
+- CLOCK_REALTIME = 0x0
+- CLOCK_REALTIME_ALARM = 0x8
+- CLOCK_REALTIME_COARSE = 0x5
+- CLOCK_TAI = 0xb
+- CLOCK_THREAD_CPUTIME_ID = 0x3
+- CLOCK_TXFROMRX = 0x4
+- CLOCK_TXINT = 0x3
+- CLONE_CHILD_CLEARTID = 0x200000
+- CLONE_CHILD_SETTID = 0x1000000
+- CLONE_DETACHED = 0x400000
+- CLONE_FILES = 0x400
+- CLONE_FS = 0x200
+- CLONE_IO = 0x80000000
+- CLONE_NEWCGROUP = 0x2000000
+- CLONE_NEWIPC = 0x8000000
+- CLONE_NEWNET = 0x40000000
+- CLONE_NEWNS = 0x20000
+- CLONE_NEWPID = 0x20000000
+- CLONE_NEWUSER = 0x10000000
+- CLONE_NEWUTS = 0x4000000
+- CLONE_PARENT = 0x8000
+- CLONE_PARENT_SETTID = 0x100000
+- CLONE_PTRACE = 0x2000
+- CLONE_SETTLS = 0x80000
+- CLONE_SIGHAND = 0x800
+- CLONE_SYSVSEM = 0x40000
+- CLONE_THREAD = 0x10000
+- CLONE_UNTRACED = 0x800000
+- CLONE_VFORK = 0x4000
+- CLONE_VM = 0x100
+- CMSPAR = 0x40000000
+- CR0 = 0x0
+- CR1 = 0x200
+- CR2 = 0x400
+- CR3 = 0x600
+- CRDLY = 0x600
+- CREAD = 0x80
+- CRTSCTS = 0x80000000
+- CS5 = 0x0
+- CS6 = 0x10
+- CS7 = 0x20
+- CS8 = 0x30
+- CSIGNAL = 0xff
+- CSIZE = 0x30
+- CSTART = 0x11
+- CSTATUS = 0x0
+- CSTOP = 0x13
+- CSTOPB = 0x40
+- CSUSP = 0x1a
+- DT_BLK = 0x6
+- DT_CHR = 0x2
+- DT_DIR = 0x4
+- DT_FIFO = 0x1
+- DT_LNK = 0xa
+- DT_REG = 0x8
+- DT_SOCK = 0xc
+- DT_UNKNOWN = 0x0
+- DT_WHT = 0xe
+- ECHO = 0x8
+- ECHOCTL = 0x200
+- ECHOE = 0x10
+- ECHOK = 0x20
+- ECHOKE = 0x800
+- ECHONL = 0x40
+- ECHOPRT = 0x400
+- EFD_CLOEXEC = 0x80000
+- EFD_NONBLOCK = 0x80
+- EFD_SEMAPHORE = 0x1
+- ENCODING_DEFAULT = 0x0
+- ENCODING_FM_MARK = 0x3
+- ENCODING_FM_SPACE = 0x4
+- ENCODING_MANCHESTER = 0x5
+- ENCODING_NRZ = 0x1
+- ENCODING_NRZI = 0x2
+- EPOLLERR = 0x8
+- EPOLLET = 0x80000000
+- EPOLLEXCLUSIVE = 0x10000000
+- EPOLLHUP = 0x10
+- EPOLLIN = 0x1
+- EPOLLMSG = 0x400
+- EPOLLONESHOT = 0x40000000
+- EPOLLOUT = 0x4
+- EPOLLPRI = 0x2
+- EPOLLRDBAND = 0x80
+- EPOLLRDHUP = 0x2000
+- EPOLLRDNORM = 0x40
+- EPOLLWAKEUP = 0x20000000
+- EPOLLWRBAND = 0x200
+- EPOLLWRNORM = 0x100
+- EPOLL_CLOEXEC = 0x80000
+- EPOLL_CTL_ADD = 0x1
+- EPOLL_CTL_DEL = 0x2
+- EPOLL_CTL_MOD = 0x3
+- ETH_P_1588 = 0x88f7
+- ETH_P_8021AD = 0x88a8
+- ETH_P_8021AH = 0x88e7
+- ETH_P_8021Q = 0x8100
+- ETH_P_80221 = 0x8917
+- ETH_P_802_2 = 0x4
+- ETH_P_802_3 = 0x1
+- ETH_P_802_3_MIN = 0x600
+- ETH_P_802_EX1 = 0x88b5
+- ETH_P_AARP = 0x80f3
+- ETH_P_AF_IUCV = 0xfbfb
+- ETH_P_ALL = 0x3
+- ETH_P_AOE = 0x88a2
+- ETH_P_ARCNET = 0x1a
+- ETH_P_ARP = 0x806
+- ETH_P_ATALK = 0x809b
+- ETH_P_ATMFATE = 0x8884
+- ETH_P_ATMMPOA = 0x884c
+- ETH_P_AX25 = 0x2
+- ETH_P_BATMAN = 0x4305
+- ETH_P_BPQ = 0x8ff
+- ETH_P_CAIF = 0xf7
+- ETH_P_CAN = 0xc
+- ETH_P_CANFD = 0xd
+- ETH_P_CONTROL = 0x16
+- ETH_P_CUST = 0x6006
+- ETH_P_DDCMP = 0x6
+- ETH_P_DEC = 0x6000
+- ETH_P_DIAG = 0x6005
+- ETH_P_DNA_DL = 0x6001
+- ETH_P_DNA_RC = 0x6002
+- ETH_P_DNA_RT = 0x6003
+- ETH_P_DSA = 0x1b
+- ETH_P_ECONET = 0x18
+- ETH_P_EDSA = 0xdada
+- ETH_P_FCOE = 0x8906
+- ETH_P_FIP = 0x8914
+- ETH_P_HDLC = 0x19
+- ETH_P_HSR = 0x892f
+- ETH_P_IEEE802154 = 0xf6
+- ETH_P_IEEEPUP = 0xa00
+- ETH_P_IEEEPUPAT = 0xa01
+- ETH_P_IP = 0x800
+- ETH_P_IPV6 = 0x86dd
+- ETH_P_IPX = 0x8137
+- ETH_P_IRDA = 0x17
+- ETH_P_LAT = 0x6004
+- ETH_P_LINK_CTL = 0x886c
+- ETH_P_LOCALTALK = 0x9
+- ETH_P_LOOP = 0x60
+- ETH_P_LOOPBACK = 0x9000
+- ETH_P_MACSEC = 0x88e5
+- ETH_P_MOBITEX = 0x15
+- ETH_P_MPLS_MC = 0x8848
+- ETH_P_MPLS_UC = 0x8847
+- ETH_P_MVRP = 0x88f5
+- ETH_P_NCSI = 0x88f8
+- ETH_P_PAE = 0x888e
+- ETH_P_PAUSE = 0x8808
+- ETH_P_PHONET = 0xf5
+- ETH_P_PPPTALK = 0x10
+- ETH_P_PPP_DISC = 0x8863
+- ETH_P_PPP_MP = 0x8
+- ETH_P_PPP_SES = 0x8864
+- ETH_P_PRP = 0x88fb
+- ETH_P_PUP = 0x200
+- ETH_P_PUPAT = 0x201
+- ETH_P_QINQ1 = 0x9100
+- ETH_P_QINQ2 = 0x9200
+- ETH_P_QINQ3 = 0x9300
+- ETH_P_RARP = 0x8035
+- ETH_P_SCA = 0x6007
+- ETH_P_SLOW = 0x8809
+- ETH_P_SNAP = 0x5
+- ETH_P_TDLS = 0x890d
+- ETH_P_TEB = 0x6558
+- ETH_P_TIPC = 0x88ca
+- ETH_P_TRAILER = 0x1c
+- ETH_P_TR_802_2 = 0x11
+- ETH_P_TSN = 0x22f0
+- ETH_P_WAN_PPP = 0x7
+- ETH_P_WCCP = 0x883e
+- ETH_P_X25 = 0x805
+- ETH_P_XDSA = 0xf8
+- EXTA = 0xe
+- EXTB = 0xf
+- EXTPROC = 0x10000
+- FALLOC_FL_COLLAPSE_RANGE = 0x8
+- FALLOC_FL_INSERT_RANGE = 0x20
+- FALLOC_FL_KEEP_SIZE = 0x1
+- FALLOC_FL_NO_HIDE_STALE = 0x4
+- FALLOC_FL_PUNCH_HOLE = 0x2
+- FALLOC_FL_UNSHARE_RANGE = 0x40
+- FALLOC_FL_ZERO_RANGE = 0x10
+- FD_CLOEXEC = 0x1
+- FD_SETSIZE = 0x400
+- FF0 = 0x0
+- FF1 = 0x8000
+- FFDLY = 0x8000
+- FLUSHO = 0x2000
+- FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
+- FS_ENCRYPTION_MODE_AES_256_CTS = 0x4
+- FS_ENCRYPTION_MODE_AES_256_GCM = 0x2
+- FS_ENCRYPTION_MODE_AES_256_XTS = 0x1
+- FS_ENCRYPTION_MODE_INVALID = 0x0
+- FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615
+- FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614
+- FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613
+- FS_KEY_DESCRIPTOR_SIZE = 0x8
+- FS_KEY_DESC_PREFIX = "fscrypt:"
+- FS_KEY_DESC_PREFIX_SIZE = 0x8
+- FS_MAX_KEY_SIZE = 0x40
+- FS_POLICY_FLAGS_PAD_16 = 0x2
+- FS_POLICY_FLAGS_PAD_32 = 0x3
+- FS_POLICY_FLAGS_PAD_4 = 0x0
+- FS_POLICY_FLAGS_PAD_8 = 0x1
+- FS_POLICY_FLAGS_PAD_MASK = 0x3
+- FS_POLICY_FLAGS_VALID = 0x3
+- F_DUPFD = 0x0
+- F_DUPFD_CLOEXEC = 0x406
+- F_EXLCK = 0x4
+- F_GETFD = 0x1
+- F_GETFL = 0x3
+- F_GETLEASE = 0x401
+- F_GETLK = 0xe
+- F_GETLK64 = 0xe
+- F_GETOWN = 0x17
+- F_GETOWN_EX = 0x10
+- F_GETPIPE_SZ = 0x408
+- F_GETSIG = 0xb
+- F_LOCK = 0x1
+- F_NOTIFY = 0x402
+- F_OFD_GETLK = 0x24
+- F_OFD_SETLK = 0x25
+- F_OFD_SETLKW = 0x26
+- F_OK = 0x0
+- F_RDLCK = 0x0
+- F_SETFD = 0x2
+- F_SETFL = 0x4
+- F_SETLEASE = 0x400
+- F_SETLK = 0x6
+- F_SETLK64 = 0x6
+- F_SETLKW = 0x7
+- F_SETLKW64 = 0x7
+- F_SETOWN = 0x18
+- F_SETOWN_EX = 0xf
+- F_SETPIPE_SZ = 0x407
+- F_SETSIG = 0xa
+- F_SHLCK = 0x8
+- F_TEST = 0x3
+- F_TLOCK = 0x2
+- F_ULOCK = 0x0
+- F_UNLCK = 0x2
+- F_WRLCK = 0x1
+- GENL_ADMIN_PERM = 0x1
+- GENL_CMD_CAP_DO = 0x2
+- GENL_CMD_CAP_DUMP = 0x4
+- GENL_CMD_CAP_HASPOL = 0x8
+- GENL_HDRLEN = 0x4
+- GENL_ID_CTRL = 0x10
+- GENL_ID_PMCRAID = 0x12
+- GENL_ID_VFS_DQUOT = 0x11
+- GENL_MAX_ID = 0x3ff
+- GENL_MIN_ID = 0x10
+- GENL_NAMSIZ = 0x10
+- GENL_START_ALLOC = 0x13
+- GENL_UNS_ADMIN_PERM = 0x10
+- GRND_NONBLOCK = 0x1
+- GRND_RANDOM = 0x2
+- HUPCL = 0x400
+- IBSHIFT = 0x10
+- ICANON = 0x2
+- ICMPV6_FILTER = 0x1
+- ICRNL = 0x100
+- IEXTEN = 0x100
+- IFA_F_DADFAILED = 0x8
+- IFA_F_DEPRECATED = 0x20
+- IFA_F_HOMEADDRESS = 0x10
+- IFA_F_MANAGETEMPADDR = 0x100
+- IFA_F_MCAUTOJOIN = 0x400
+- IFA_F_NODAD = 0x2
+- IFA_F_NOPREFIXROUTE = 0x200
+- IFA_F_OPTIMISTIC = 0x4
+- IFA_F_PERMANENT = 0x80
+- IFA_F_SECONDARY = 0x1
+- IFA_F_STABLE_PRIVACY = 0x800
+- IFA_F_TEMPORARY = 0x1
+- IFA_F_TENTATIVE = 0x40
+- IFA_MAX = 0x8
+- IFF_ALLMULTI = 0x200
+- IFF_ATTACH_QUEUE = 0x200
+- IFF_AUTOMEDIA = 0x4000
+- IFF_BROADCAST = 0x2
+- IFF_DEBUG = 0x4
+- IFF_DETACH_QUEUE = 0x400
+- IFF_DORMANT = 0x20000
+- IFF_DYNAMIC = 0x8000
+- IFF_ECHO = 0x40000
+- IFF_LOOPBACK = 0x8
+- IFF_LOWER_UP = 0x10000
+- IFF_MASTER = 0x400
+- IFF_MULTICAST = 0x1000
+- IFF_MULTI_QUEUE = 0x100
+- IFF_NOARP = 0x80
+- IFF_NOFILTER = 0x1000
+- IFF_NOTRAILERS = 0x20
+- IFF_NO_PI = 0x1000
+- IFF_ONE_QUEUE = 0x2000
+- IFF_PERSIST = 0x800
+- IFF_POINTOPOINT = 0x10
+- IFF_PORTSEL = 0x2000
+- IFF_PROMISC = 0x100
+- IFF_RUNNING = 0x40
+- IFF_SLAVE = 0x800
+- IFF_TAP = 0x2
+- IFF_TUN = 0x1
+- IFF_TUN_EXCL = 0x8000
+- IFF_UP = 0x1
+- IFF_VNET_HDR = 0x4000
+- IFF_VOLATILE = 0x70c5a
+- IFNAMSIZ = 0x10
+- IGNBRK = 0x1
+- IGNCR = 0x80
+- IGNPAR = 0x4
+- IMAXBEL = 0x2000
+- INLCR = 0x40
+- INPCK = 0x10
+- IN_ACCESS = 0x1
+- IN_ALL_EVENTS = 0xfff
+- IN_ATTRIB = 0x4
+- IN_CLASSA_HOST = 0xffffff
+- IN_CLASSA_MAX = 0x80
+- IN_CLASSA_NET = 0xff000000
+- IN_CLASSA_NSHIFT = 0x18
+- IN_CLASSB_HOST = 0xffff
+- IN_CLASSB_MAX = 0x10000
+- IN_CLASSB_NET = 0xffff0000
+- IN_CLASSB_NSHIFT = 0x10
+- IN_CLASSC_HOST = 0xff
+- IN_CLASSC_NET = 0xffffff00
+- IN_CLASSC_NSHIFT = 0x8
+- IN_CLOEXEC = 0x80000
+- IN_CLOSE = 0x18
+- IN_CLOSE_NOWRITE = 0x10
+- IN_CLOSE_WRITE = 0x8
+- IN_CREATE = 0x100
+- IN_DELETE = 0x200
+- IN_DELETE_SELF = 0x400
+- IN_DONT_FOLLOW = 0x2000000
+- IN_EXCL_UNLINK = 0x4000000
+- IN_IGNORED = 0x8000
+- IN_ISDIR = 0x40000000
+- IN_LOOPBACKNET = 0x7f
+- IN_MASK_ADD = 0x20000000
+- IN_MODIFY = 0x2
+- IN_MOVE = 0xc0
+- IN_MOVED_FROM = 0x40
+- IN_MOVED_TO = 0x80
+- IN_MOVE_SELF = 0x800
+- IN_NONBLOCK = 0x80
+- IN_ONESHOT = 0x80000000
+- IN_ONLYDIR = 0x1000000
+- IN_OPEN = 0x20
+- IN_Q_OVERFLOW = 0x4000
+- IN_UNMOUNT = 0x2000
+- IPPROTO_AH = 0x33
+- IPPROTO_BEETPH = 0x5e
+- IPPROTO_COMP = 0x6c
+- IPPROTO_DCCP = 0x21
+- IPPROTO_DSTOPTS = 0x3c
+- IPPROTO_EGP = 0x8
+- IPPROTO_ENCAP = 0x62
+- IPPROTO_ESP = 0x32
+- IPPROTO_FRAGMENT = 0x2c
+- IPPROTO_GRE = 0x2f
+- IPPROTO_HOPOPTS = 0x0
+- IPPROTO_ICMP = 0x1
+- IPPROTO_ICMPV6 = 0x3a
+- IPPROTO_IDP = 0x16
+- IPPROTO_IGMP = 0x2
+- IPPROTO_IP = 0x0
+- IPPROTO_IPIP = 0x4
+- IPPROTO_IPV6 = 0x29
+- IPPROTO_MH = 0x87
+- IPPROTO_MPLS = 0x89
+- IPPROTO_MTP = 0x5c
+- IPPROTO_NONE = 0x3b
+- IPPROTO_PIM = 0x67
+- IPPROTO_PUP = 0xc
+- IPPROTO_RAW = 0xff
+- IPPROTO_ROUTING = 0x2b
+- IPPROTO_RSVP = 0x2e
+- IPPROTO_SCTP = 0x84
+- IPPROTO_TCP = 0x6
+- IPPROTO_TP = 0x1d
+- IPPROTO_UDP = 0x11
+- IPPROTO_UDPLITE = 0x88
+- IPV6_2292DSTOPTS = 0x4
+- IPV6_2292HOPLIMIT = 0x8
+- IPV6_2292HOPOPTS = 0x3
+- IPV6_2292PKTINFO = 0x2
+- IPV6_2292PKTOPTIONS = 0x6
+- IPV6_2292RTHDR = 0x5
+- IPV6_ADDRFORM = 0x1
+- IPV6_ADD_MEMBERSHIP = 0x14
+- IPV6_AUTHHDR = 0xa
+- IPV6_CHECKSUM = 0x7
+- IPV6_DONTFRAG = 0x3e
+- IPV6_DROP_MEMBERSHIP = 0x15
+- IPV6_DSTOPTS = 0x3b
+- IPV6_HDRINCL = 0x24
+- IPV6_HOPLIMIT = 0x34
+- IPV6_HOPOPTS = 0x36
+- IPV6_IPSEC_POLICY = 0x22
+- IPV6_JOIN_ANYCAST = 0x1b
+- IPV6_JOIN_GROUP = 0x14
+- IPV6_LEAVE_ANYCAST = 0x1c
+- IPV6_LEAVE_GROUP = 0x15
+- IPV6_MTU = 0x18
+- IPV6_MTU_DISCOVER = 0x17
+- IPV6_MULTICAST_HOPS = 0x12
+- IPV6_MULTICAST_IF = 0x11
+- IPV6_MULTICAST_LOOP = 0x13
+- IPV6_NEXTHOP = 0x9
+- IPV6_PATHMTU = 0x3d
+- IPV6_PKTINFO = 0x32
+- IPV6_PMTUDISC_DO = 0x2
+- IPV6_PMTUDISC_DONT = 0x0
+- IPV6_PMTUDISC_INTERFACE = 0x4
+- IPV6_PMTUDISC_OMIT = 0x5
+- IPV6_PMTUDISC_PROBE = 0x3
+- IPV6_PMTUDISC_WANT = 0x1
+- IPV6_RECVDSTOPTS = 0x3a
+- IPV6_RECVERR = 0x19
+- IPV6_RECVHOPLIMIT = 0x33
+- IPV6_RECVHOPOPTS = 0x35
+- IPV6_RECVPATHMTU = 0x3c
+- IPV6_RECVPKTINFO = 0x31
+- IPV6_RECVRTHDR = 0x38
+- IPV6_RECVTCLASS = 0x42
+- IPV6_ROUTER_ALERT = 0x16
+- IPV6_RTHDR = 0x39
+- IPV6_RTHDRDSTOPTS = 0x37
+- IPV6_RTHDR_LOOSE = 0x0
+- IPV6_RTHDR_STRICT = 0x1
+- IPV6_RTHDR_TYPE_0 = 0x0
+- IPV6_RXDSTOPTS = 0x3b
+- IPV6_RXHOPOPTS = 0x36
+- IPV6_TCLASS = 0x43
+- IPV6_UNICAST_HOPS = 0x10
+- IPV6_V6ONLY = 0x1a
+- IPV6_XFRM_POLICY = 0x23
+- IP_ADD_MEMBERSHIP = 0x23
+- IP_ADD_SOURCE_MEMBERSHIP = 0x27
+- IP_BIND_ADDRESS_NO_PORT = 0x18
+- IP_BLOCK_SOURCE = 0x26
+- IP_CHECKSUM = 0x17
+- IP_DEFAULT_MULTICAST_LOOP = 0x1
+- IP_DEFAULT_MULTICAST_TTL = 0x1
+- IP_DF = 0x4000
+- IP_DROP_MEMBERSHIP = 0x24
+- IP_DROP_SOURCE_MEMBERSHIP = 0x28
+- IP_FREEBIND = 0xf
+- IP_HDRINCL = 0x3
+- IP_IPSEC_POLICY = 0x10
+- IP_MAXPACKET = 0xffff
+- IP_MAX_MEMBERSHIPS = 0x14
+- IP_MF = 0x2000
+- IP_MINTTL = 0x15
+- IP_MSFILTER = 0x29
+- IP_MSS = 0x240
+- IP_MTU = 0xe
+- IP_MTU_DISCOVER = 0xa
+- IP_MULTICAST_ALL = 0x31
+- IP_MULTICAST_IF = 0x20
+- IP_MULTICAST_LOOP = 0x22
+- IP_MULTICAST_TTL = 0x21
+- IP_NODEFRAG = 0x16
+- IP_OFFMASK = 0x1fff
+- IP_OPTIONS = 0x4
+- IP_ORIGDSTADDR = 0x14
+- IP_PASSSEC = 0x12
+- IP_PKTINFO = 0x8
+- IP_PKTOPTIONS = 0x9
+- IP_PMTUDISC = 0xa
+- IP_PMTUDISC_DO = 0x2
+- IP_PMTUDISC_DONT = 0x0
+- IP_PMTUDISC_INTERFACE = 0x4
+- IP_PMTUDISC_OMIT = 0x5
+- IP_PMTUDISC_PROBE = 0x3
+- IP_PMTUDISC_WANT = 0x1
+- IP_RECVERR = 0xb
+- IP_RECVOPTS = 0x6
+- IP_RECVORIGDSTADDR = 0x14
+- IP_RECVRETOPTS = 0x7
+- IP_RECVTOS = 0xd
+- IP_RECVTTL = 0xc
+- IP_RETOPTS = 0x7
+- IP_RF = 0x8000
+- IP_ROUTER_ALERT = 0x5
+- IP_TOS = 0x1
+- IP_TRANSPARENT = 0x13
+- IP_TTL = 0x2
+- IP_UNBLOCK_SOURCE = 0x25
+- IP_UNICAST_IF = 0x32
+- IP_XFRM_POLICY = 0x11
+- ISIG = 0x1
+- ISTRIP = 0x20
+- IUCLC = 0x200
+- IUTF8 = 0x4000
+- IXANY = 0x800
+- IXOFF = 0x1000
+- IXON = 0x400
+- KEYCTL_ASSUME_AUTHORITY = 0x10
+- KEYCTL_CHOWN = 0x4
+- KEYCTL_CLEAR = 0x7
+- KEYCTL_DESCRIBE = 0x6
+- KEYCTL_DH_COMPUTE = 0x17
+- KEYCTL_GET_KEYRING_ID = 0x0
+- KEYCTL_GET_PERSISTENT = 0x16
+- KEYCTL_GET_SECURITY = 0x11
+- KEYCTL_INSTANTIATE = 0xc
+- KEYCTL_INSTANTIATE_IOV = 0x14
+- KEYCTL_INVALIDATE = 0x15
+- KEYCTL_JOIN_SESSION_KEYRING = 0x1
+- KEYCTL_LINK = 0x8
+- KEYCTL_NEGATE = 0xd
+- KEYCTL_READ = 0xb
+- KEYCTL_REJECT = 0x13
+- KEYCTL_REVOKE = 0x3
+- KEYCTL_SEARCH = 0xa
+- KEYCTL_SESSION_TO_PARENT = 0x12
+- KEYCTL_SETPERM = 0x5
+- KEYCTL_SET_REQKEY_KEYRING = 0xe
+- KEYCTL_SET_TIMEOUT = 0xf
+- KEYCTL_UNLINK = 0x9
+- KEYCTL_UPDATE = 0x2
+- KEY_REQKEY_DEFL_DEFAULT = 0x0
+- KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6
+- KEY_REQKEY_DEFL_NO_CHANGE = -0x1
+- KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2
+- KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7
+- KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3
+- KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1
+- KEY_REQKEY_DEFL_USER_KEYRING = 0x4
+- KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
+- KEY_SPEC_GROUP_KEYRING = -0x6
+- KEY_SPEC_PROCESS_KEYRING = -0x2
+- KEY_SPEC_REQKEY_AUTH_KEY = -0x7
+- KEY_SPEC_REQUESTOR_KEYRING = -0x8
+- KEY_SPEC_SESSION_KEYRING = -0x3
+- KEY_SPEC_THREAD_KEYRING = -0x1
+- KEY_SPEC_USER_KEYRING = -0x4
+- KEY_SPEC_USER_SESSION_KEYRING = -0x5
+- LINUX_REBOOT_CMD_CAD_OFF = 0x0
+- LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
+- LINUX_REBOOT_CMD_HALT = 0xcdef0123
+- LINUX_REBOOT_CMD_KEXEC = 0x45584543
+- LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
+- LINUX_REBOOT_CMD_RESTART = 0x1234567
+- LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
+- LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
+- LINUX_REBOOT_MAGIC1 = 0xfee1dead
+- LINUX_REBOOT_MAGIC2 = 0x28121969
+- LOCK_EX = 0x2
+- LOCK_NB = 0x4
+- LOCK_SH = 0x1
+- LOCK_UN = 0x8
+- MADV_DODUMP = 0x11
+- MADV_DOFORK = 0xb
+- MADV_DONTDUMP = 0x10
+- MADV_DONTFORK = 0xa
+- MADV_DONTNEED = 0x4
+- MADV_FREE = 0x8
+- MADV_HUGEPAGE = 0xe
+- MADV_HWPOISON = 0x64
+- MADV_MERGEABLE = 0xc
+- MADV_NOHUGEPAGE = 0xf
+- MADV_NORMAL = 0x0
+- MADV_RANDOM = 0x1
+- MADV_REMOVE = 0x9
+- MADV_SEQUENTIAL = 0x2
+- MADV_UNMERGEABLE = 0xd
+- MADV_WILLNEED = 0x3
+- MAP_ANON = 0x800
+- MAP_ANONYMOUS = 0x800
+- MAP_DENYWRITE = 0x2000
+- MAP_EXECUTABLE = 0x4000
+- MAP_FILE = 0x0
+- MAP_FIXED = 0x10
+- MAP_GROWSDOWN = 0x1000
+- MAP_HUGETLB = 0x80000
+- MAP_HUGE_MASK = 0x3f
+- MAP_HUGE_SHIFT = 0x1a
+- MAP_LOCKED = 0x8000
+- MAP_NONBLOCK = 0x20000
+- MAP_NORESERVE = 0x400
+- MAP_POPULATE = 0x10000
+- MAP_PRIVATE = 0x2
+- MAP_RENAME = 0x800
+- MAP_SHARED = 0x1
+- MAP_STACK = 0x40000
+- MAP_TYPE = 0xf
+- MCL_CURRENT = 0x1
+- MCL_FUTURE = 0x2
+- MCL_ONFAULT = 0x4
+- MNT_DETACH = 0x2
+- MNT_EXPIRE = 0x4
+- MNT_FORCE = 0x1
+- MSG_BATCH = 0x40000
+- MSG_CMSG_CLOEXEC = 0x40000000
+- MSG_CONFIRM = 0x800
+- MSG_CTRUNC = 0x8
+- MSG_DONTROUTE = 0x4
+- MSG_DONTWAIT = 0x40
+- MSG_EOR = 0x80
+- MSG_ERRQUEUE = 0x2000
+- MSG_FASTOPEN = 0x20000000
+- MSG_FIN = 0x200
+- MSG_MORE = 0x8000
+- MSG_NOSIGNAL = 0x4000
+- MSG_OOB = 0x1
+- MSG_PEEK = 0x2
+- MSG_PROXY = 0x10
+- MSG_RST = 0x1000
+- MSG_SYN = 0x400
+- MSG_TRUNC = 0x20
+- MSG_TRYHARD = 0x4
+- MSG_WAITALL = 0x100
+- MSG_WAITFORONE = 0x10000
+- MS_ACTIVE = 0x40000000
+- MS_ASYNC = 0x1
+- MS_BIND = 0x1000
+- MS_BORN = 0x20000000
+- MS_DIRSYNC = 0x80
+- MS_INVALIDATE = 0x2
+- MS_I_VERSION = 0x800000
+- MS_KERNMOUNT = 0x400000
+- MS_LAZYTIME = 0x2000000
+- MS_MANDLOCK = 0x40
+- MS_MGC_MSK = 0xffff0000
+- MS_MGC_VAL = 0xc0ed0000
+- MS_MOVE = 0x2000
+- MS_NOATIME = 0x400
+- MS_NODEV = 0x4
+- MS_NODIRATIME = 0x800
+- MS_NOEXEC = 0x8
+- MS_NOREMOTELOCK = 0x8000000
+- MS_NOSEC = 0x10000000
+- MS_NOSUID = 0x2
+- MS_NOUSER = -0x80000000
+- MS_POSIXACL = 0x10000
+- MS_PRIVATE = 0x40000
+- MS_RDONLY = 0x1
+- MS_REC = 0x4000
+- MS_RELATIME = 0x200000
+- MS_REMOUNT = 0x20
+- MS_RMT_MASK = 0x2800051
+- MS_SHARED = 0x100000
+- MS_SILENT = 0x8000
+- MS_SLAVE = 0x80000
+- MS_STRICTATIME = 0x1000000
+- MS_SYNC = 0x4
+- MS_SYNCHRONOUS = 0x10
+- MS_UNBINDABLE = 0x20000
+- MS_VERBOSE = 0x8000
+- NAME_MAX = 0xff
+- NETLINK_ADD_MEMBERSHIP = 0x1
+- NETLINK_AUDIT = 0x9
+- NETLINK_BROADCAST_ERROR = 0x4
+- NETLINK_CAP_ACK = 0xa
+- NETLINK_CONNECTOR = 0xb
+- NETLINK_CRYPTO = 0x15
+- NETLINK_DNRTMSG = 0xe
+- NETLINK_DROP_MEMBERSHIP = 0x2
+- NETLINK_ECRYPTFS = 0x13
+- NETLINK_FIB_LOOKUP = 0xa
+- NETLINK_FIREWALL = 0x3
+- NETLINK_GENERIC = 0x10
+- NETLINK_INET_DIAG = 0x4
+- NETLINK_IP6_FW = 0xd
+- NETLINK_ISCSI = 0x8
+- NETLINK_KOBJECT_UEVENT = 0xf
+- NETLINK_LISTEN_ALL_NSID = 0x8
+- NETLINK_LIST_MEMBERSHIPS = 0x9
+- NETLINK_NETFILTER = 0xc
+- NETLINK_NFLOG = 0x5
+- NETLINK_NO_ENOBUFS = 0x5
+- NETLINK_PKTINFO = 0x3
+- NETLINK_RDMA = 0x14
+- NETLINK_ROUTE = 0x0
+- NETLINK_RX_RING = 0x6
+- NETLINK_SCSITRANSPORT = 0x12
+- NETLINK_SELINUX = 0x7
+- NETLINK_SOCK_DIAG = 0x4
+- NETLINK_TX_RING = 0x7
+- NETLINK_UNUSED = 0x1
+- NETLINK_USERSOCK = 0x2
+- NETLINK_XFRM = 0x6
+- NL0 = 0x0
+- NL1 = 0x100
+- NLA_ALIGNTO = 0x4
+- NLA_F_NESTED = 0x8000
+- NLA_F_NET_BYTEORDER = 0x4000
+- NLA_HDRLEN = 0x4
+- NLDLY = 0x100
+- NLMSG_ALIGNTO = 0x4
+- NLMSG_DONE = 0x3
+- NLMSG_ERROR = 0x2
+- NLMSG_HDRLEN = 0x10
+- NLMSG_MIN_TYPE = 0x10
+- NLMSG_NOOP = 0x1
+- NLMSG_OVERRUN = 0x4
+- NLM_F_ACK = 0x4
+- NLM_F_APPEND = 0x800
+- NLM_F_ATOMIC = 0x400
+- NLM_F_CREATE = 0x400
+- NLM_F_DUMP = 0x300
+- NLM_F_DUMP_FILTERED = 0x20
+- NLM_F_DUMP_INTR = 0x10
+- NLM_F_ECHO = 0x8
+- NLM_F_EXCL = 0x200
+- NLM_F_MATCH = 0x200
+- NLM_F_MULTI = 0x2
+- NLM_F_REPLACE = 0x100
+- NLM_F_REQUEST = 0x1
+- NLM_F_ROOT = 0x100
+- NOFLSH = 0x80
+- OCRNL = 0x8
+- OFDEL = 0x80
+- OFILL = 0x40
+- OLCUC = 0x2
+- ONLCR = 0x4
+- ONLRET = 0x20
+- ONOCR = 0x10
+- OPOST = 0x1
+- O_ACCMODE = 0x3
+- O_APPEND = 0x8
+- O_ASYNC = 0x1000
+- O_CLOEXEC = 0x80000
+- O_CREAT = 0x100
+- O_DIRECT = 0x8000
+- O_DIRECTORY = 0x10000
+- O_DSYNC = 0x10
+- O_EXCL = 0x400
+- O_FSYNC = 0x4010
+- O_LARGEFILE = 0x0
+- O_NDELAY = 0x80
+- O_NOATIME = 0x40000
+- O_NOCTTY = 0x800
+- O_NOFOLLOW = 0x20000
+- O_NONBLOCK = 0x80
+- O_PATH = 0x200000
+- O_RDONLY = 0x0
+- O_RDWR = 0x2
+- O_RSYNC = 0x4010
+- O_SYNC = 0x4010
+- O_TMPFILE = 0x410000
+- O_TRUNC = 0x200
+- O_WRONLY = 0x1
+- PACKET_ADD_MEMBERSHIP = 0x1
+- PACKET_AUXDATA = 0x8
+- PACKET_BROADCAST = 0x1
+- PACKET_COPY_THRESH = 0x7
+- PACKET_DROP_MEMBERSHIP = 0x2
+- PACKET_FANOUT = 0x12
+- PACKET_FANOUT_CBPF = 0x6
+- PACKET_FANOUT_CPU = 0x2
+- PACKET_FANOUT_DATA = 0x16
+- PACKET_FANOUT_EBPF = 0x7
+- PACKET_FANOUT_FLAG_DEFRAG = 0x8000
+- PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
+- PACKET_FANOUT_HASH = 0x0
+- PACKET_FANOUT_LB = 0x1
+- PACKET_FANOUT_QM = 0x5
+- PACKET_FANOUT_RND = 0x4
+- PACKET_FANOUT_ROLLOVER = 0x3
+- PACKET_FASTROUTE = 0x6
+- PACKET_HDRLEN = 0xb
+- PACKET_HOST = 0x0
+- PACKET_KERNEL = 0x7
+- PACKET_LOOPBACK = 0x5
+- PACKET_LOSS = 0xe
+- PACKET_MR_ALLMULTI = 0x2
+- PACKET_MR_MULTICAST = 0x0
+- PACKET_MR_PROMISC = 0x1
+- PACKET_MR_UNICAST = 0x3
+- PACKET_MULTICAST = 0x2
+- PACKET_ORIGDEV = 0x9
+- PACKET_OTHERHOST = 0x3
+- PACKET_OUTGOING = 0x4
+- PACKET_QDISC_BYPASS = 0x14
+- PACKET_RECV_OUTPUT = 0x3
+- PACKET_RESERVE = 0xc
+- PACKET_ROLLOVER_STATS = 0x15
+- PACKET_RX_RING = 0x5
+- PACKET_STATISTICS = 0x6
+- PACKET_TIMESTAMP = 0x11
+- PACKET_TX_HAS_OFF = 0x13
+- PACKET_TX_RING = 0xd
+- PACKET_TX_TIMESTAMP = 0x10
+- PACKET_USER = 0x6
+- PACKET_VERSION = 0xa
+- PACKET_VNET_HDR = 0xf
+- PARENB = 0x100
+- PARITY_CRC16_PR0 = 0x2
+- PARITY_CRC16_PR0_CCITT = 0x4
+- PARITY_CRC16_PR1 = 0x3
+- PARITY_CRC16_PR1_CCITT = 0x5
+- PARITY_CRC32_PR0_CCITT = 0x6
+- PARITY_CRC32_PR1_CCITT = 0x7
+- PARITY_DEFAULT = 0x0
+- PARITY_NONE = 0x1
+- PARMRK = 0x8
+- PARODD = 0x200
+- PENDIN = 0x4000
+- PERF_EVENT_IOC_DISABLE = 0x20002401
+- PERF_EVENT_IOC_ENABLE = 0x20002400
+- PERF_EVENT_IOC_ID = 0x40082407
+- PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409
+- PERF_EVENT_IOC_PERIOD = 0x80082404
+- PERF_EVENT_IOC_REFRESH = 0x20002402
+- PERF_EVENT_IOC_RESET = 0x20002403
+- PERF_EVENT_IOC_SET_BPF = 0x80042408
+- PERF_EVENT_IOC_SET_FILTER = 0x80082406
+- PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
+- PRIO_PGRP = 0x1
+- PRIO_PROCESS = 0x0
+- PRIO_USER = 0x2
+- PROT_EXEC = 0x4
+- PROT_GROWSDOWN = 0x1000000
+- PROT_GROWSUP = 0x2000000
+- PROT_NONE = 0x0
+- PROT_READ = 0x1
+- PROT_WRITE = 0x2
+- PR_CAPBSET_DROP = 0x18
+- PR_CAPBSET_READ = 0x17
+- PR_CAP_AMBIENT = 0x2f
+- PR_CAP_AMBIENT_CLEAR_ALL = 0x4
+- PR_CAP_AMBIENT_IS_SET = 0x1
+- PR_CAP_AMBIENT_LOWER = 0x3
+- PR_CAP_AMBIENT_RAISE = 0x2
+- PR_ENDIAN_BIG = 0x0
+- PR_ENDIAN_LITTLE = 0x1
+- PR_ENDIAN_PPC_LITTLE = 0x2
+- PR_FPEMU_NOPRINT = 0x1
+- PR_FPEMU_SIGFPE = 0x2
+- PR_FP_EXC_ASYNC = 0x2
+- PR_FP_EXC_DISABLED = 0x0
+- PR_FP_EXC_DIV = 0x10000
+- PR_FP_EXC_INV = 0x100000
+- PR_FP_EXC_NONRECOV = 0x1
+- PR_FP_EXC_OVF = 0x20000
+- PR_FP_EXC_PRECISE = 0x3
+- PR_FP_EXC_RES = 0x80000
+- PR_FP_EXC_SW_ENABLE = 0x80
+- PR_FP_EXC_UND = 0x40000
+- PR_FP_MODE_FR = 0x1
+- PR_FP_MODE_FRE = 0x2
+- PR_GET_CHILD_SUBREAPER = 0x25
+- PR_GET_DUMPABLE = 0x3
+- PR_GET_ENDIAN = 0x13
+- PR_GET_FPEMU = 0x9
+- PR_GET_FPEXC = 0xb
+- PR_GET_FP_MODE = 0x2e
+- PR_GET_KEEPCAPS = 0x7
+- PR_GET_NAME = 0x10
+- PR_GET_NO_NEW_PRIVS = 0x27
+- PR_GET_PDEATHSIG = 0x2
+- PR_GET_SECCOMP = 0x15
+- PR_GET_SECUREBITS = 0x1b
+- PR_GET_THP_DISABLE = 0x2a
+- PR_GET_TID_ADDRESS = 0x28
+- PR_GET_TIMERSLACK = 0x1e
+- PR_GET_TIMING = 0xd
+- PR_GET_TSC = 0x19
+- PR_GET_UNALIGN = 0x5
+- PR_MCE_KILL = 0x21
+- PR_MCE_KILL_CLEAR = 0x0
+- PR_MCE_KILL_DEFAULT = 0x2
+- PR_MCE_KILL_EARLY = 0x1
+- PR_MCE_KILL_GET = 0x22
+- PR_MCE_KILL_LATE = 0x0
+- PR_MCE_KILL_SET = 0x1
+- PR_MPX_DISABLE_MANAGEMENT = 0x2c
+- PR_MPX_ENABLE_MANAGEMENT = 0x2b
+- PR_SET_CHILD_SUBREAPER = 0x24
+- PR_SET_DUMPABLE = 0x4
+- PR_SET_ENDIAN = 0x14
+- PR_SET_FPEMU = 0xa
+- PR_SET_FPEXC = 0xc
+- PR_SET_FP_MODE = 0x2d
+- PR_SET_KEEPCAPS = 0x8
+- PR_SET_MM = 0x23
+- PR_SET_MM_ARG_END = 0x9
+- PR_SET_MM_ARG_START = 0x8
+- PR_SET_MM_AUXV = 0xc
+- PR_SET_MM_BRK = 0x7
+- PR_SET_MM_END_CODE = 0x2
+- PR_SET_MM_END_DATA = 0x4
+- PR_SET_MM_ENV_END = 0xb
+- PR_SET_MM_ENV_START = 0xa
+- PR_SET_MM_EXE_FILE = 0xd
+- PR_SET_MM_MAP = 0xe
+- PR_SET_MM_MAP_SIZE = 0xf
+- PR_SET_MM_START_BRK = 0x6
+- PR_SET_MM_START_CODE = 0x1
+- PR_SET_MM_START_DATA = 0x3
+- PR_SET_MM_START_STACK = 0x5
+- PR_SET_NAME = 0xf
+- PR_SET_NO_NEW_PRIVS = 0x26
+- PR_SET_PDEATHSIG = 0x1
+- PR_SET_PTRACER = 0x59616d61
+- PR_SET_PTRACER_ANY = -0x1
+- PR_SET_SECCOMP = 0x16
+- PR_SET_SECUREBITS = 0x1c
+- PR_SET_THP_DISABLE = 0x29
+- PR_SET_TIMERSLACK = 0x1d
+- PR_SET_TIMING = 0xe
+- PR_SET_TSC = 0x1a
+- PR_SET_UNALIGN = 0x6
+- PR_TASK_PERF_EVENTS_DISABLE = 0x1f
+- PR_TASK_PERF_EVENTS_ENABLE = 0x20
+- PR_TIMING_STATISTICAL = 0x0
+- PR_TIMING_TIMESTAMP = 0x1
+- PR_TSC_ENABLE = 0x1
+- PR_TSC_SIGSEGV = 0x2
+- PR_UNALIGN_NOPRINT = 0x1
+- PR_UNALIGN_SIGBUS = 0x2
+- PTRACE_ATTACH = 0x10
+- PTRACE_CONT = 0x7
+- PTRACE_DETACH = 0x11
+- PTRACE_EVENT_CLONE = 0x3
+- PTRACE_EVENT_EXEC = 0x4
+- PTRACE_EVENT_EXIT = 0x6
+- PTRACE_EVENT_FORK = 0x1
+- PTRACE_EVENT_SECCOMP = 0x7
+- PTRACE_EVENT_STOP = 0x80
+- PTRACE_EVENT_VFORK = 0x2
+- PTRACE_EVENT_VFORK_DONE = 0x5
+- PTRACE_GETEVENTMSG = 0x4201
+- PTRACE_GETFPREGS = 0xe
+- PTRACE_GETREGS = 0xc
+- PTRACE_GETREGSET = 0x4204
+- PTRACE_GETSIGINFO = 0x4202
+- PTRACE_GETSIGMASK = 0x420a
+- PTRACE_GET_THREAD_AREA = 0x19
+- PTRACE_GET_THREAD_AREA_3264 = 0xc4
+- PTRACE_GET_WATCH_REGS = 0xd0
+- PTRACE_INTERRUPT = 0x4207
+- PTRACE_KILL = 0x8
+- PTRACE_LISTEN = 0x4208
+- PTRACE_OLDSETOPTIONS = 0x15
+- PTRACE_O_EXITKILL = 0x100000
+- PTRACE_O_MASK = 0x3000ff
+- PTRACE_O_SUSPEND_SECCOMP = 0x200000
+- PTRACE_O_TRACECLONE = 0x8
+- PTRACE_O_TRACEEXEC = 0x10
+- PTRACE_O_TRACEEXIT = 0x40
+- PTRACE_O_TRACEFORK = 0x2
+- PTRACE_O_TRACESECCOMP = 0x80
+- PTRACE_O_TRACESYSGOOD = 0x1
+- PTRACE_O_TRACEVFORK = 0x4
+- PTRACE_O_TRACEVFORKDONE = 0x20
+- PTRACE_PEEKDATA = 0x2
+- PTRACE_PEEKDATA_3264 = 0xc1
+- PTRACE_PEEKSIGINFO = 0x4209
+- PTRACE_PEEKSIGINFO_SHARED = 0x1
+- PTRACE_PEEKTEXT = 0x1
+- PTRACE_PEEKTEXT_3264 = 0xc0
+- PTRACE_PEEKUSR = 0x3
+- PTRACE_POKEDATA = 0x5
+- PTRACE_POKEDATA_3264 = 0xc3
+- PTRACE_POKETEXT = 0x4
+- PTRACE_POKETEXT_3264 = 0xc2
+- PTRACE_POKEUSR = 0x6
+- PTRACE_SECCOMP_GET_FILTER = 0x420c
+- PTRACE_SEIZE = 0x4206
+- PTRACE_SETFPREGS = 0xf
+- PTRACE_SETOPTIONS = 0x4200
+- PTRACE_SETREGS = 0xd
+- PTRACE_SETREGSET = 0x4205
+- PTRACE_SETSIGINFO = 0x4203
+- PTRACE_SETSIGMASK = 0x420b
+- PTRACE_SET_THREAD_AREA = 0x1a
+- PTRACE_SET_WATCH_REGS = 0xd1
+- PTRACE_SINGLESTEP = 0x9
+- PTRACE_SYSCALL = 0x18
+- PTRACE_TRACEME = 0x0
+- RLIMIT_AS = 0x6
+- RLIMIT_CORE = 0x4
+- RLIMIT_CPU = 0x0
+- RLIMIT_DATA = 0x2
+- RLIMIT_FSIZE = 0x1
+- RLIMIT_LOCKS = 0xa
+- RLIMIT_MEMLOCK = 0x9
+- RLIMIT_MSGQUEUE = 0xc
+- RLIMIT_NICE = 0xd
+- RLIMIT_NOFILE = 0x5
+- RLIMIT_NPROC = 0x8
+- RLIMIT_RSS = 0x7
+- RLIMIT_RTPRIO = 0xe
+- RLIMIT_RTTIME = 0xf
+- RLIMIT_SIGPENDING = 0xb
+- RLIMIT_STACK = 0x3
+- RLIM_INFINITY = -0x1
+- RTAX_ADVMSS = 0x8
+- RTAX_CC_ALGO = 0x10
+- RTAX_CWND = 0x7
+- RTAX_FEATURES = 0xc
+- RTAX_FEATURE_ALLFRAG = 0x8
+- RTAX_FEATURE_ECN = 0x1
+- RTAX_FEATURE_MASK = 0xf
+- RTAX_FEATURE_SACK = 0x2
+- RTAX_FEATURE_TIMESTAMP = 0x4
+- RTAX_HOPLIMIT = 0xa
+- RTAX_INITCWND = 0xb
+- RTAX_INITRWND = 0xe
+- RTAX_LOCK = 0x1
+- RTAX_MAX = 0x10
+- RTAX_MTU = 0x2
+- RTAX_QUICKACK = 0xf
+- RTAX_REORDERING = 0x9
+- RTAX_RTO_MIN = 0xd
+- RTAX_RTT = 0x4
+- RTAX_RTTVAR = 0x5
+- RTAX_SSTHRESH = 0x6
+- RTAX_UNSPEC = 0x0
+- RTAX_WINDOW = 0x3
+- RTA_ALIGNTO = 0x4
+- RTA_MAX = 0x19
+- RTCF_DIRECTSRC = 0x4000000
+- RTCF_DOREDIRECT = 0x1000000
+- RTCF_LOG = 0x2000000
+- RTCF_MASQ = 0x400000
+- RTCF_NAT = 0x800000
+- RTCF_VALVE = 0x200000
+- RTF_ADDRCLASSMASK = 0xf8000000
+- RTF_ADDRCONF = 0x40000
+- RTF_ALLONLINK = 0x20000
+- RTF_BROADCAST = 0x10000000
+- RTF_CACHE = 0x1000000
+- RTF_DEFAULT = 0x10000
+- RTF_DYNAMIC = 0x10
+- RTF_FLOW = 0x2000000
+- RTF_GATEWAY = 0x2
+- RTF_HOST = 0x4
+- RTF_INTERFACE = 0x40000000
+- RTF_IRTT = 0x100
+- RTF_LINKRT = 0x100000
+- RTF_LOCAL = 0x80000000
+- RTF_MODIFIED = 0x20
+- RTF_MSS = 0x40
+- RTF_MTU = 0x40
+- RTF_MULTICAST = 0x20000000
+- RTF_NAT = 0x8000000
+- RTF_NOFORWARD = 0x1000
+- RTF_NONEXTHOP = 0x200000
+- RTF_NOPMTUDISC = 0x4000
+- RTF_POLICY = 0x4000000
+- RTF_REINSTATE = 0x8
+- RTF_REJECT = 0x200
+- RTF_STATIC = 0x400
+- RTF_THROW = 0x2000
+- RTF_UP = 0x1
+- RTF_WINDOW = 0x80
+- RTF_XRESOLVE = 0x800
+- RTM_BASE = 0x10
+- RTM_DELACTION = 0x31
+- RTM_DELADDR = 0x15
+- RTM_DELADDRLABEL = 0x49
+- RTM_DELLINK = 0x11
+- RTM_DELMDB = 0x55
+- RTM_DELNEIGH = 0x1d
+- RTM_DELNSID = 0x59
+- RTM_DELQDISC = 0x25
+- RTM_DELROUTE = 0x19
+- RTM_DELRULE = 0x21
+- RTM_DELTCLASS = 0x29
+- RTM_DELTFILTER = 0x2d
+- RTM_F_CLONED = 0x200
+- RTM_F_EQUALIZE = 0x400
+- RTM_F_LOOKUP_TABLE = 0x1000
+- RTM_F_NOTIFY = 0x100
+- RTM_F_PREFIX = 0x800
+- RTM_GETACTION = 0x32
+- RTM_GETADDR = 0x16
+- RTM_GETADDRLABEL = 0x4a
+- RTM_GETANYCAST = 0x3e
+- RTM_GETDCB = 0x4e
+- RTM_GETLINK = 0x12
+- RTM_GETMDB = 0x56
+- RTM_GETMULTICAST = 0x3a
+- RTM_GETNEIGH = 0x1e
+- RTM_GETNEIGHTBL = 0x42
+- RTM_GETNETCONF = 0x52
+- RTM_GETNSID = 0x5a
+- RTM_GETQDISC = 0x26
+- RTM_GETROUTE = 0x1a
+- RTM_GETRULE = 0x22
+- RTM_GETSTATS = 0x5e
+- RTM_GETTCLASS = 0x2a
+- RTM_GETTFILTER = 0x2e
+- RTM_MAX = 0x5f
+- RTM_NEWACTION = 0x30
+- RTM_NEWADDR = 0x14
+- RTM_NEWADDRLABEL = 0x48
+- RTM_NEWLINK = 0x10
+- RTM_NEWMDB = 0x54
+- RTM_NEWNDUSEROPT = 0x44
+- RTM_NEWNEIGH = 0x1c
+- RTM_NEWNEIGHTBL = 0x40
+- RTM_NEWNETCONF = 0x50
+- RTM_NEWNSID = 0x58
+- RTM_NEWPREFIX = 0x34
+- RTM_NEWQDISC = 0x24
+- RTM_NEWROUTE = 0x18
+- RTM_NEWRULE = 0x20
+- RTM_NEWSTATS = 0x5c
+- RTM_NEWTCLASS = 0x28
+- RTM_NEWTFILTER = 0x2c
+- RTM_NR_FAMILIES = 0x14
+- RTM_NR_MSGTYPES = 0x50
+- RTM_SETDCB = 0x4f
+- RTM_SETLINK = 0x13
+- RTM_SETNEIGHTBL = 0x43
+- RTNH_ALIGNTO = 0x4
+- RTNH_COMPARE_MASK = 0x19
+- RTNH_F_DEAD = 0x1
+- RTNH_F_LINKDOWN = 0x10
+- RTNH_F_OFFLOAD = 0x8
+- RTNH_F_ONLINK = 0x4
+- RTNH_F_PERVASIVE = 0x2
+- RTN_MAX = 0xb
+- RTPROT_BABEL = 0x2a
+- RTPROT_BIRD = 0xc
+- RTPROT_BOOT = 0x3
+- RTPROT_DHCP = 0x10
+- RTPROT_DNROUTED = 0xd
+- RTPROT_GATED = 0x8
+- RTPROT_KERNEL = 0x2
+- RTPROT_MROUTED = 0x11
+- RTPROT_MRT = 0xa
+- RTPROT_NTK = 0xf
+- RTPROT_RA = 0x9
+- RTPROT_REDIRECT = 0x1
+- RTPROT_STATIC = 0x4
+- RTPROT_UNSPEC = 0x0
+- RTPROT_XORP = 0xe
+- RTPROT_ZEBRA = 0xb
+- RT_CLASS_DEFAULT = 0xfd
+- RT_CLASS_LOCAL = 0xff
+- RT_CLASS_MAIN = 0xfe
+- RT_CLASS_MAX = 0xff
+- RT_CLASS_UNSPEC = 0x0
+- RUSAGE_CHILDREN = -0x1
+- RUSAGE_SELF = 0x0
+- RUSAGE_THREAD = 0x1
+- SCM_CREDENTIALS = 0x2
+- SCM_RIGHTS = 0x1
+- SCM_TIMESTAMP = 0x1d
+- SCM_TIMESTAMPING = 0x25
+- SCM_TIMESTAMPING_OPT_STATS = 0x36
+- SCM_TIMESTAMPNS = 0x23
+- SCM_WIFI_STATUS = 0x29
+- SECCOMP_MODE_DISABLED = 0x0
+- SECCOMP_MODE_FILTER = 0x2
+- SECCOMP_MODE_STRICT = 0x1
+- SHUT_RD = 0x0
+- SHUT_RDWR = 0x2
+- SHUT_WR = 0x1
+- SIOCADDDLCI = 0x8980
+- SIOCADDMULTI = 0x8931
+- SIOCADDRT = 0x890b
+- SIOCATMARK = 0x40047307
+- SIOCBONDCHANGEACTIVE = 0x8995
+- SIOCBONDENSLAVE = 0x8990
+- SIOCBONDINFOQUERY = 0x8994
+- SIOCBONDRELEASE = 0x8991
+- SIOCBONDSETHWADDR = 0x8992
+- SIOCBONDSLAVEINFOQUERY = 0x8993
+- SIOCBRADDBR = 0x89a0
+- SIOCBRADDIF = 0x89a2
+- SIOCBRDELBR = 0x89a1
+- SIOCBRDELIF = 0x89a3
+- SIOCDARP = 0x8953
+- SIOCDELDLCI = 0x8981
+- SIOCDELMULTI = 0x8932
+- SIOCDELRT = 0x890c
+- SIOCDEVPRIVATE = 0x89f0
+- SIOCDIFADDR = 0x8936
+- SIOCDRARP = 0x8960
+- SIOCETHTOOL = 0x8946
+- SIOCGARP = 0x8954
+- SIOCGHWTSTAMP = 0x89b1
+- SIOCGIFADDR = 0x8915
+- SIOCGIFBR = 0x8940
+- SIOCGIFBRDADDR = 0x8919
+- SIOCGIFCONF = 0x8912
+- SIOCGIFCOUNT = 0x8938
+- SIOCGIFDSTADDR = 0x8917
+- SIOCGIFENCAP = 0x8925
+- SIOCGIFFLAGS = 0x8913
+- SIOCGIFHWADDR = 0x8927
+- SIOCGIFINDEX = 0x8933
+- SIOCGIFMAP = 0x8970
+- SIOCGIFMEM = 0x891f
+- SIOCGIFMETRIC = 0x891d
+- SIOCGIFMTU = 0x8921
+- SIOCGIFNAME = 0x8910
+- SIOCGIFNETMASK = 0x891b
+- SIOCGIFPFLAGS = 0x8935
+- SIOCGIFSLAVE = 0x8929
+- SIOCGIFTXQLEN = 0x8942
+- SIOCGIFVLAN = 0x8982
+- SIOCGMIIPHY = 0x8947
+- SIOCGMIIREG = 0x8948
+- SIOCGPGRP = 0x40047309
+- SIOCGRARP = 0x8961
+- SIOCGSKNS = 0x894c
+- SIOCGSTAMP = 0x8906
+- SIOCGSTAMPNS = 0x8907
+- SIOCINQ = 0x467f
+- SIOCOUTQ = 0x7472
+- SIOCOUTQNSD = 0x894b
+- SIOCPROTOPRIVATE = 0x89e0
+- SIOCRTMSG = 0x890d
+- SIOCSARP = 0x8955
+- SIOCSHWTSTAMP = 0x89b0
+- SIOCSIFADDR = 0x8916
+- SIOCSIFBR = 0x8941
+- SIOCSIFBRDADDR = 0x891a
+- SIOCSIFDSTADDR = 0x8918
+- SIOCSIFENCAP = 0x8926
+- SIOCSIFFLAGS = 0x8914
+- SIOCSIFHWADDR = 0x8924
+- SIOCSIFHWBROADCAST = 0x8937
+- SIOCSIFLINK = 0x8911
+- SIOCSIFMAP = 0x8971
+- SIOCSIFMEM = 0x8920
+- SIOCSIFMETRIC = 0x891e
+- SIOCSIFMTU = 0x8922
+- SIOCSIFNAME = 0x8923
+- SIOCSIFNETMASK = 0x891c
+- SIOCSIFPFLAGS = 0x8934
+- SIOCSIFSLAVE = 0x8930
+- SIOCSIFTXQLEN = 0x8943
+- SIOCSIFVLAN = 0x8983
+- SIOCSMIIREG = 0x8949
+- SIOCSPGRP = 0x80047308
+- SIOCSRARP = 0x8962
+- SIOCWANDEV = 0x894a
+- SOCK_CLOEXEC = 0x80000
+- SOCK_DCCP = 0x6
+- SOCK_DGRAM = 0x1
+- SOCK_IOC_TYPE = 0x89
+- SOCK_NONBLOCK = 0x80
+- SOCK_PACKET = 0xa
+- SOCK_RAW = 0x3
+- SOCK_RDM = 0x4
+- SOCK_SEQPACKET = 0x5
+- SOCK_STREAM = 0x2
+- SOL_AAL = 0x109
+- SOL_ALG = 0x117
+- SOL_ATM = 0x108
+- SOL_CAIF = 0x116
+- SOL_CAN_BASE = 0x64
+- SOL_DCCP = 0x10d
+- SOL_DECNET = 0x105
+- SOL_ICMPV6 = 0x3a
+- SOL_IP = 0x0
+- SOL_IPV6 = 0x29
+- SOL_IRDA = 0x10a
+- SOL_IUCV = 0x115
+- SOL_KCM = 0x119
+- SOL_LLC = 0x10c
+- SOL_NETBEUI = 0x10b
+- SOL_NETLINK = 0x10e
+- SOL_NFC = 0x118
+- SOL_PACKET = 0x107
+- SOL_PNPIPE = 0x113
+- SOL_PPPOL2TP = 0x111
+- SOL_RAW = 0xff
+- SOL_RDS = 0x114
+- SOL_RXRPC = 0x110
+- SOL_SOCKET = 0xffff
+- SOL_TCP = 0x6
+- SOL_TIPC = 0x10f
+- SOL_X25 = 0x106
+- SOMAXCONN = 0x80
+- SO_ACCEPTCONN = 0x1009
+- SO_ATTACH_BPF = 0x32
+- SO_ATTACH_FILTER = 0x1a
+- SO_ATTACH_REUSEPORT_CBPF = 0x33
+- SO_ATTACH_REUSEPORT_EBPF = 0x34
+- SO_BINDTODEVICE = 0x19
+- SO_BPF_EXTENSIONS = 0x30
+- SO_BROADCAST = 0x20
+- SO_BSDCOMPAT = 0xe
+- SO_BUSY_POLL = 0x2e
+- SO_CNX_ADVICE = 0x35
+- SO_DEBUG = 0x1
+- SO_DETACH_BPF = 0x1b
+- SO_DETACH_FILTER = 0x1b
+- SO_DOMAIN = 0x1029
+- SO_DONTROUTE = 0x10
+- SO_ERROR = 0x1007
+- SO_GET_FILTER = 0x1a
+- SO_INCOMING_CPU = 0x31
+- SO_KEEPALIVE = 0x8
+- SO_LINGER = 0x80
+- SO_LOCK_FILTER = 0x2c
+- SO_MARK = 0x24
+- SO_MAX_PACING_RATE = 0x2f
+- SO_NOFCS = 0x2b
+- SO_NO_CHECK = 0xb
+- SO_OOBINLINE = 0x100
+- SO_PASSCRED = 0x11
+- SO_PASSSEC = 0x22
+- SO_PEEK_OFF = 0x2a
+- SO_PEERCRED = 0x12
+- SO_PEERNAME = 0x1c
+- SO_PEERSEC = 0x1e
+- SO_PRIORITY = 0xc
+- SO_PROTOCOL = 0x1028
+- SO_RCVBUF = 0x1002
+- SO_RCVBUFFORCE = 0x21
+- SO_RCVLOWAT = 0x1004
+- SO_RCVTIMEO = 0x1006
+- SO_REUSEADDR = 0x4
+- SO_REUSEPORT = 0x200
+- SO_RXQ_OVFL = 0x28
+- SO_SECURITY_AUTHENTICATION = 0x16
+- SO_SECURITY_ENCRYPTION_NETWORK = 0x18
+- SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
+- SO_SELECT_ERR_QUEUE = 0x2d
+- SO_SNDBUF = 0x1001
+- SO_SNDBUFFORCE = 0x1f
+- SO_SNDLOWAT = 0x1003
+- SO_SNDTIMEO = 0x1005
+- SO_STYLE = 0x1008
+- SO_TIMESTAMP = 0x1d
+- SO_TIMESTAMPING = 0x25
+- SO_TIMESTAMPNS = 0x23
+- SO_TYPE = 0x1008
+- SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
+- SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
+- SO_VM_SOCKETS_BUFFER_SIZE = 0x0
+- SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
+- SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
+- SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
+- SO_VM_SOCKETS_TRUSTED = 0x5
+- SO_WIFI_STATUS = 0x29
+- SPLICE_F_GIFT = 0x8
+- SPLICE_F_MORE = 0x4
+- SPLICE_F_MOVE = 0x1
+- SPLICE_F_NONBLOCK = 0x2
+- S_BLKSIZE = 0x200
+- S_IEXEC = 0x40
+- S_IFBLK = 0x6000
+- S_IFCHR = 0x2000
+- S_IFDIR = 0x4000
+- S_IFIFO = 0x1000
+- S_IFLNK = 0xa000
+- S_IFMT = 0xf000
+- S_IFREG = 0x8000
+- S_IFSOCK = 0xc000
+- S_IREAD = 0x100
+- S_IRGRP = 0x20
+- S_IROTH = 0x4
+- S_IRUSR = 0x100
+- S_IRWXG = 0x38
+- S_IRWXO = 0x7
+- S_IRWXU = 0x1c0
+- S_ISGID = 0x400
+- S_ISUID = 0x800
+- S_ISVTX = 0x200
+- S_IWGRP = 0x10
+- S_IWOTH = 0x2
+- S_IWRITE = 0x80
+- S_IWUSR = 0x80
+- S_IXGRP = 0x8
+- S_IXOTH = 0x1
+- S_IXUSR = 0x40
+- TAB0 = 0x0
+- TAB1 = 0x800
+- TAB2 = 0x1000
+- TAB3 = 0x1800
+- TABDLY = 0x1800
+- TASKSTATS_CMD_ATTR_MAX = 0x4
+- TASKSTATS_CMD_MAX = 0x2
+- TASKSTATS_GENL_NAME = "TASKSTATS"
+- TASKSTATS_GENL_VERSION = 0x1
+- TASKSTATS_TYPE_MAX = 0x6
+- TASKSTATS_VERSION = 0x8
+- TCFLSH = 0x5407
+- TCGETA = 0x5401
+- TCGETS = 0x540d
+- TCGETS2 = 0x4030542a
+- TCIFLUSH = 0x0
+- TCIOFF = 0x2
+- TCIOFLUSH = 0x2
+- TCION = 0x3
+- TCOFLUSH = 0x1
+- TCOOFF = 0x0
+- TCOON = 0x1
+- TCP_CC_INFO = 0x1a
+- TCP_CONGESTION = 0xd
+- TCP_COOKIE_IN_ALWAYS = 0x1
+- TCP_COOKIE_MAX = 0x10
+- TCP_COOKIE_MIN = 0x8
+- TCP_COOKIE_OUT_NEVER = 0x2
+- TCP_COOKIE_PAIR_SIZE = 0x20
+- TCP_COOKIE_TRANSACTIONS = 0xf
+- TCP_CORK = 0x3
+- TCP_DEFER_ACCEPT = 0x9
+- TCP_FASTOPEN = 0x17
+- TCP_INFO = 0xb
+- TCP_KEEPCNT = 0x6
+- TCP_KEEPIDLE = 0x4
+- TCP_KEEPINTVL = 0x5
+- TCP_LINGER2 = 0x8
+- TCP_MAXSEG = 0x2
+- TCP_MAXWIN = 0xffff
+- TCP_MAX_WINSHIFT = 0xe
+- TCP_MD5SIG = 0xe
+- TCP_MD5SIG_MAXKEYLEN = 0x50
+- TCP_MSS = 0x200
+- TCP_MSS_DEFAULT = 0x218
+- TCP_MSS_DESIRED = 0x4c4
+- TCP_NODELAY = 0x1
+- TCP_NOTSENT_LOWAT = 0x19
+- TCP_QUEUE_SEQ = 0x15
+- TCP_QUICKACK = 0xc
+- TCP_REPAIR = 0x13
+- TCP_REPAIR_OPTIONS = 0x16
+- TCP_REPAIR_QUEUE = 0x14
+- TCP_REPAIR_WINDOW = 0x1d
+- TCP_SAVED_SYN = 0x1c
+- TCP_SAVE_SYN = 0x1b
+- TCP_SYNCNT = 0x7
+- TCP_S_DATA_IN = 0x4
+- TCP_S_DATA_OUT = 0x8
+- TCP_THIN_DUPACK = 0x11
+- TCP_THIN_LINEAR_TIMEOUTS = 0x10
+- TCP_TIMESTAMP = 0x18
+- TCP_USER_TIMEOUT = 0x12
+- TCP_WINDOW_CLAMP = 0xa
+- TCSAFLUSH = 0x5410
+- TCSBRK = 0x5405
+- TCSBRKP = 0x5486
+- TCSETA = 0x5402
+- TCSETAF = 0x5404
+- TCSETAW = 0x5403
+- TCSETS = 0x540e
+- TCSETS2 = 0x8030542b
+- TCSETSF = 0x5410
+- TCSETSF2 = 0x8030542d
+- TCSETSW = 0x540f
+- TCSETSW2 = 0x8030542c
+- TCXONC = 0x5406
+- TIOCCBRK = 0x5428
+- TIOCCONS = 0x80047478
+- TIOCEXCL = 0x740d
+- TIOCGDEV = 0x40045432
+- TIOCGETD = 0x7400
+- TIOCGETP = 0x7408
+- TIOCGEXCL = 0x40045440
+- TIOCGICOUNT = 0x5492
+- TIOCGLCKTRMIOS = 0x548b
+- TIOCGLTC = 0x7474
+- TIOCGPGRP = 0x40047477
+- TIOCGPKT = 0x40045438
+- TIOCGPTLCK = 0x40045439
+- TIOCGPTN = 0x40045430
+- TIOCGRS485 = 0x4020542e
+- TIOCGSERIAL = 0x5484
+- TIOCGSID = 0x7416
+- TIOCGSOFTCAR = 0x5481
+- TIOCGWINSZ = 0x40087468
+- TIOCINQ = 0x467f
+- TIOCLINUX = 0x5483
+- TIOCMBIC = 0x741c
+- TIOCMBIS = 0x741b
+- TIOCMGET = 0x741d
+- TIOCMIWAIT = 0x5491
+- TIOCMSET = 0x741a
+- TIOCM_CAR = 0x100
+- TIOCM_CD = 0x100
+- TIOCM_CTS = 0x40
+- TIOCM_DSR = 0x400
+- TIOCM_DTR = 0x2
+- TIOCM_LE = 0x1
+- TIOCM_RI = 0x200
+- TIOCM_RNG = 0x200
+- TIOCM_RTS = 0x4
+- TIOCM_SR = 0x20
+- TIOCM_ST = 0x10
+- TIOCNOTTY = 0x5471
+- TIOCNXCL = 0x740e
+- TIOCOUTQ = 0x7472
+- TIOCPKT = 0x5470
+- TIOCPKT_DATA = 0x0
+- TIOCPKT_DOSTOP = 0x20
+- TIOCPKT_FLUSHREAD = 0x1
+- TIOCPKT_FLUSHWRITE = 0x2
+- TIOCPKT_IOCTL = 0x40
+- TIOCPKT_NOSTOP = 0x10
+- TIOCPKT_START = 0x8
+- TIOCPKT_STOP = 0x4
+- TIOCSBRK = 0x5427
+- TIOCSCTTY = 0x5480
+- TIOCSERCONFIG = 0x5488
+- TIOCSERGETLSR = 0x548e
+- TIOCSERGETMULTI = 0x548f
+- TIOCSERGSTRUCT = 0x548d
+- TIOCSERGWILD = 0x5489
+- TIOCSERSETMULTI = 0x5490
+- TIOCSERSWILD = 0x548a
+- TIOCSER_TEMT = 0x1
+- TIOCSETD = 0x7401
+- TIOCSETN = 0x740a
+- TIOCSETP = 0x7409
+- TIOCSIG = 0x80045436
+- TIOCSLCKTRMIOS = 0x548c
+- TIOCSLTC = 0x7475
+- TIOCSPGRP = 0x80047476
+- TIOCSPTLCK = 0x80045431
+- TIOCSRS485 = 0xc020542f
+- TIOCSSERIAL = 0x5485
+- TIOCSSOFTCAR = 0x5482
+- TIOCSTI = 0x5472
+- TIOCSWINSZ = 0x80087467
+- TIOCVHANGUP = 0x5437
+- TOSTOP = 0x8000
+- TS_COMM_LEN = 0x20
+- TUNATTACHFILTER = 0x801054d5
+- TUNDETACHFILTER = 0x801054d6
+- TUNGETFEATURES = 0x400454cf
+- TUNGETFILTER = 0x401054db
+- TUNGETIFF = 0x400454d2
+- TUNGETSNDBUF = 0x400454d3
+- TUNGETVNETBE = 0x400454df
+- TUNGETVNETHDRSZ = 0x400454d7
+- TUNGETVNETLE = 0x400454dd
+- TUNSETDEBUG = 0x800454c9
+- TUNSETGROUP = 0x800454ce
+- TUNSETIFF = 0x800454ca
+- TUNSETIFINDEX = 0x800454da
+- TUNSETLINK = 0x800454cd
+- TUNSETNOCSUM = 0x800454c8
+- TUNSETOFFLOAD = 0x800454d0
+- TUNSETOWNER = 0x800454cc
+- TUNSETPERSIST = 0x800454cb
+- TUNSETQUEUE = 0x800454d9
+- TUNSETSNDBUF = 0x800454d4
+- TUNSETTXFILTER = 0x800454d1
+- TUNSETVNETBE = 0x800454de
+- TUNSETVNETHDRSZ = 0x800454d8
+- TUNSETVNETLE = 0x800454dc
+- UMOUNT_NOFOLLOW = 0x8
+- VDISCARD = 0xd
+- VEOF = 0x10
+- VEOL = 0x11
+- VEOL2 = 0x6
+- VERASE = 0x2
+- VINTR = 0x0
+- VKILL = 0x3
+- VLNEXT = 0xf
+- VMADDR_CID_ANY = 0xffffffff
+- VMADDR_CID_HOST = 0x2
+- VMADDR_CID_HYPERVISOR = 0x0
+- VMADDR_CID_RESERVED = 0x1
+- VMADDR_PORT_ANY = 0xffffffff
+- VMIN = 0x4
+- VM_SOCKETS_INVALID_VERSION = 0xffffffff
+- VQUIT = 0x1
+- VREPRINT = 0xc
+- VSTART = 0x8
+- VSTOP = 0x9
+- VSUSP = 0xa
+- VSWTC = 0x7
+- VSWTCH = 0x7
+- VT0 = 0x0
+- VT1 = 0x4000
+- VTDLY = 0x4000
+- VTIME = 0x5
+- VWERASE = 0xe
+- WALL = 0x40000000
+- WCLONE = 0x80000000
+- WCONTINUED = 0x8
+- WEXITED = 0x4
+- WNOHANG = 0x1
+- WNOTHREAD = 0x20000000
+- WNOWAIT = 0x1000000
+- WORDSIZE = 0x40
+- WSTOPPED = 0x2
+- WUNTRACED = 0x2
+- XATTR_CREATE = 0x1
+- XATTR_REPLACE = 0x2
+- XCASE = 0x4
+- XTABS = 0x1800
++ B1000000 = 0x1008
++ B115200 = 0x1002
++ B1152000 = 0x1009
++ B1500000 = 0x100a
++ B2000000 = 0x100b
++ B230400 = 0x1003
++ B2500000 = 0x100c
++ B3000000 = 0x100d
++ B3500000 = 0x100e
++ B4000000 = 0x100f
++ B460800 = 0x1004
++ B500000 = 0x1005
++ B57600 = 0x1001
++ B576000 = 0x1006
++ B921600 = 0x1007
++ BLKBSZGET = 0x40081270
++ BLKBSZSET = 0x80081271
++ BLKFLSBUF = 0x20001261
++ BLKFRAGET = 0x20001265
++ BLKFRASET = 0x20001264
++ BLKGETSIZE = 0x20001260
++ BLKGETSIZE64 = 0x40081272
++ BLKPBSZGET = 0x2000127b
++ BLKRAGET = 0x20001263
++ BLKRASET = 0x20001262
++ BLKROGET = 0x2000125e
++ BLKROSET = 0x2000125d
++ BLKRRPART = 0x2000125f
++ BLKSECTGET = 0x20001267
++ BLKSECTSET = 0x20001266
++ BLKSSZGET = 0x20001268
++ BOTHER = 0x1000
++ BS1 = 0x2000
++ BSDLY = 0x2000
++ CBAUD = 0x100f
++ CBAUDEX = 0x1000
++ CIBAUD = 0x100f0000
++ CLOCAL = 0x800
++ CR1 = 0x200
++ CR2 = 0x400
++ CR3 = 0x600
++ CRDLY = 0x600
++ CREAD = 0x80
++ CS6 = 0x10
++ CS7 = 0x20
++ CS8 = 0x30
++ CSIZE = 0x30
++ CSTOPB = 0x40
++ ECHOCTL = 0x200
++ ECHOE = 0x10
++ ECHOK = 0x20
++ ECHOKE = 0x800
++ ECHONL = 0x40
++ ECHOPRT = 0x400
++ EFD_CLOEXEC = 0x80000
++ EFD_NONBLOCK = 0x80
++ EPOLL_CLOEXEC = 0x80000
++ EXTPROC = 0x10000
++ FF1 = 0x8000
++ FFDLY = 0x8000
++ FLUSHO = 0x2000
++ FS_IOC_ENABLE_VERITY = 0x80806685
++ FS_IOC_GETFLAGS = 0x40086601
++ FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615
++ FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614
++ FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613
++ F_GETLK = 0xe
++ F_GETLK64 = 0xe
++ F_GETOWN = 0x17
++ F_RDLCK = 0x0
++ F_SETLK = 0x6
++ F_SETLK64 = 0x6
++ F_SETLKW = 0x7
++ F_SETLKW64 = 0x7
++ F_SETOWN = 0x18
++ F_UNLCK = 0x2
++ F_WRLCK = 0x1
++ HUPCL = 0x400
++ ICANON = 0x2
++ IEXTEN = 0x100
++ IN_CLOEXEC = 0x80000
++ IN_NONBLOCK = 0x80
++ IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9
++ ISIG = 0x1
++ IUCLC = 0x200
++ IXOFF = 0x1000
++ IXON = 0x400
++ MAP_ANON = 0x800
++ MAP_ANONYMOUS = 0x800
++ MAP_DENYWRITE = 0x2000
++ MAP_EXECUTABLE = 0x4000
++ MAP_GROWSDOWN = 0x1000
++ MAP_HUGETLB = 0x80000
++ MAP_LOCKED = 0x8000
++ MAP_NONBLOCK = 0x20000
++ MAP_NORESERVE = 0x400
++ MAP_POPULATE = 0x10000
++ MAP_RENAME = 0x800
++ MAP_STACK = 0x40000
++ MCL_CURRENT = 0x1
++ MCL_FUTURE = 0x2
++ MCL_ONFAULT = 0x4
++ NFDBITS = 0x40
++ NLDLY = 0x100
++ NOFLSH = 0x80
++ NS_GET_NSTYPE = 0x2000b703
++ NS_GET_OWNER_UID = 0x2000b704
++ NS_GET_PARENT = 0x2000b702
++ NS_GET_USERNS = 0x2000b701
++ OLCUC = 0x2
++ ONLCR = 0x4
++ O_APPEND = 0x8
++ O_ASYNC = 0x1000
++ O_CLOEXEC = 0x80000
++ O_CREAT = 0x100
++ O_DIRECT = 0x8000
++ O_DIRECTORY = 0x10000
++ O_DSYNC = 0x10
++ O_EXCL = 0x400
++ O_FSYNC = 0x4010
++ O_LARGEFILE = 0x0
++ O_NDELAY = 0x80
++ O_NOATIME = 0x40000
++ O_NOCTTY = 0x800
++ O_NOFOLLOW = 0x20000
++ O_NONBLOCK = 0x80
++ O_PATH = 0x200000
++ O_RSYNC = 0x4010
++ O_SYNC = 0x4010
++ O_TMPFILE = 0x410000
++ O_TRUNC = 0x200
++ PARENB = 0x100
++ PARODD = 0x200
++ PENDIN = 0x4000
++ PERF_EVENT_IOC_DISABLE = 0x20002401
++ PERF_EVENT_IOC_ENABLE = 0x20002400
++ PERF_EVENT_IOC_ID = 0x40082407
++ PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b
++ PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409
++ PERF_EVENT_IOC_PERIOD = 0x80082404
++ PERF_EVENT_IOC_QUERY_BPF = 0xc008240a
++ PERF_EVENT_IOC_REFRESH = 0x20002402
++ PERF_EVENT_IOC_RESET = 0x20002403
++ PERF_EVENT_IOC_SET_BPF = 0x80042408
++ PERF_EVENT_IOC_SET_FILTER = 0x80082406
++ PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
++ PPPIOCATTACH = 0x8004743d
++ PPPIOCATTCHAN = 0x80047438
++ PPPIOCCONNECT = 0x8004743a
++ PPPIOCDETACH = 0x8004743c
++ PPPIOCDISCONN = 0x20007439
++ PPPIOCGASYNCMAP = 0x40047458
++ PPPIOCGCHAN = 0x40047437
++ PPPIOCGDEBUG = 0x40047441
++ PPPIOCGFLAGS = 0x4004745a
++ PPPIOCGIDLE = 0x4010743f
++ PPPIOCGIDLE32 = 0x4008743f
++ PPPIOCGIDLE64 = 0x4010743f
++ PPPIOCGL2TPSTATS = 0x40487436
++ PPPIOCGMRU = 0x40047453
++ PPPIOCGRASYNCMAP = 0x40047455
++ PPPIOCGUNIT = 0x40047456
++ PPPIOCGXASYNCMAP = 0x40207450
++ PPPIOCSACTIVE = 0x80107446
++ PPPIOCSASYNCMAP = 0x80047457
++ PPPIOCSCOMPRESS = 0x8010744d
++ PPPIOCSDEBUG = 0x80047440
++ PPPIOCSFLAGS = 0x80047459
++ PPPIOCSMAXCID = 0x80047451
++ PPPIOCSMRRU = 0x8004743b
++ PPPIOCSMRU = 0x80047452
++ PPPIOCSNPMODE = 0x8008744b
++ PPPIOCSPASS = 0x80107447
++ PPPIOCSRASYNCMAP = 0x80047454
++ PPPIOCSXASYNCMAP = 0x8020744f
++ PPPIOCXFERUNIT = 0x2000744e
++ PR_SET_PTRACER_ANY = 0xffffffffffffffff
++ PTRACE_GETFPREGS = 0xe
++ PTRACE_GET_THREAD_AREA = 0x19
++ PTRACE_GET_THREAD_AREA_3264 = 0xc4
++ PTRACE_GET_WATCH_REGS = 0xd0
++ PTRACE_OLDSETOPTIONS = 0x15
++ PTRACE_PEEKDATA_3264 = 0xc1
++ PTRACE_PEEKTEXT_3264 = 0xc0
++ PTRACE_POKEDATA_3264 = 0xc3
++ PTRACE_POKETEXT_3264 = 0xc2
++ PTRACE_SETFPREGS = 0xf
++ PTRACE_SET_THREAD_AREA = 0x1a
++ PTRACE_SET_WATCH_REGS = 0xd1
++ RLIMIT_AS = 0x6
++ RLIMIT_MEMLOCK = 0x9
++ RLIMIT_NOFILE = 0x5
++ RLIMIT_NPROC = 0x8
++ RLIMIT_RSS = 0x7
++ RNDADDENTROPY = 0x80085203
++ RNDADDTOENTCNT = 0x80045201
++ RNDCLEARPOOL = 0x20005206
++ RNDGETENTCNT = 0x40045200
++ RNDGETPOOL = 0x40085202
++ RNDRESEEDCRNG = 0x20005207
++ RNDZAPENTCNT = 0x20005204
++ RTC_AIE_OFF = 0x20007002
++ RTC_AIE_ON = 0x20007001
++ RTC_ALM_READ = 0x40247008
++ RTC_ALM_SET = 0x80247007
++ RTC_EPOCH_READ = 0x4008700d
++ RTC_EPOCH_SET = 0x8008700e
++ RTC_IRQP_READ = 0x4008700b
++ RTC_IRQP_SET = 0x8008700c
++ RTC_PIE_OFF = 0x20007006
++ RTC_PIE_ON = 0x20007005
++ RTC_PLL_GET = 0x40207011
++ RTC_PLL_SET = 0x80207012
++ RTC_RD_TIME = 0x40247009
++ RTC_SET_TIME = 0x8024700a
++ RTC_UIE_OFF = 0x20007004
++ RTC_UIE_ON = 0x20007003
++ RTC_VL_CLR = 0x20007014
++ RTC_VL_READ = 0x40047013
++ RTC_WIE_OFF = 0x20007010
++ RTC_WIE_ON = 0x2000700f
++ RTC_WKALM_RD = 0x40287010
++ RTC_WKALM_SET = 0x8028700f
++ SCM_TIMESTAMPING = 0x25
++ SCM_TIMESTAMPING_OPT_STATS = 0x36
++ SCM_TIMESTAMPING_PKTINFO = 0x3a
++ SCM_TIMESTAMPNS = 0x23
++ SCM_TXTIME = 0x3d
++ SCM_WIFI_STATUS = 0x29
++ SFD_CLOEXEC = 0x80000
++ SFD_NONBLOCK = 0x80
++ SIOCATMARK = 0x40047307
++ SIOCGPGRP = 0x40047309
++ SIOCGSTAMPNS_NEW = 0x40108907
++ SIOCGSTAMP_NEW = 0x40108906
++ SIOCINQ = 0x467f
++ SIOCOUTQ = 0x7472
++ SIOCSPGRP = 0x80047308
++ SOCK_CLOEXEC = 0x80000
++ SOCK_DGRAM = 0x1
++ SOCK_NONBLOCK = 0x80
++ SOCK_STREAM = 0x2
++ SOL_SOCKET = 0xffff
++ SO_ACCEPTCONN = 0x1009
++ SO_ATTACH_BPF = 0x32
++ SO_ATTACH_REUSEPORT_CBPF = 0x33
++ SO_ATTACH_REUSEPORT_EBPF = 0x34
++ SO_BINDTODEVICE = 0x19
++ SO_BINDTOIFINDEX = 0x3e
++ SO_BPF_EXTENSIONS = 0x30
++ SO_BROADCAST = 0x20
++ SO_BSDCOMPAT = 0xe
++ SO_BUSY_POLL = 0x2e
++ SO_CNX_ADVICE = 0x35
++ SO_COOKIE = 0x39
++ SO_DETACH_REUSEPORT_BPF = 0x44
++ SO_DOMAIN = 0x1029
++ SO_DONTROUTE = 0x10
++ SO_ERROR = 0x1007
++ SO_INCOMING_CPU = 0x31
++ SO_INCOMING_NAPI_ID = 0x38
++ SO_KEEPALIVE = 0x8
++ SO_LINGER = 0x80
++ SO_LOCK_FILTER = 0x2c
++ SO_MARK = 0x24
++ SO_MAX_PACING_RATE = 0x2f
++ SO_MEMINFO = 0x37
++ SO_NOFCS = 0x2b
++ SO_OOBINLINE = 0x100
++ SO_PASSCRED = 0x11
++ SO_PASSSEC = 0x22
++ SO_PEEK_OFF = 0x2a
++ SO_PEERCRED = 0x12
++ SO_PEERGROUPS = 0x3b
++ SO_PEERSEC = 0x1e
++ SO_PROTOCOL = 0x1028
++ SO_RCVBUF = 0x1002
++ SO_RCVBUFFORCE = 0x21
++ SO_RCVLOWAT = 0x1004
++ SO_RCVTIMEO = 0x1006
++ SO_RCVTIMEO_NEW = 0x42
++ SO_RCVTIMEO_OLD = 0x1006
++ SO_REUSEADDR = 0x4
++ SO_REUSEPORT = 0x200
++ SO_RXQ_OVFL = 0x28
++ SO_SECURITY_AUTHENTICATION = 0x16
++ SO_SECURITY_ENCRYPTION_NETWORK = 0x18
++ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
++ SO_SELECT_ERR_QUEUE = 0x2d
++ SO_SNDBUF = 0x1001
++ SO_SNDBUFFORCE = 0x1f
++ SO_SNDLOWAT = 0x1003
++ SO_SNDTIMEO = 0x1005
++ SO_SNDTIMEO_NEW = 0x43
++ SO_SNDTIMEO_OLD = 0x1005
++ SO_STYLE = 0x1008
++ SO_TIMESTAMPING = 0x25
++ SO_TIMESTAMPING_NEW = 0x41
++ SO_TIMESTAMPING_OLD = 0x25
++ SO_TIMESTAMPNS = 0x23
++ SO_TIMESTAMPNS_NEW = 0x40
++ SO_TIMESTAMPNS_OLD = 0x23
++ SO_TIMESTAMP_NEW = 0x3f
++ SO_TXTIME = 0x3d
++ SO_TYPE = 0x1008
++ SO_WIFI_STATUS = 0x29
++ SO_ZEROCOPY = 0x3c
++ TAB1 = 0x800
++ TAB2 = 0x1000
++ TAB3 = 0x1800
++ TABDLY = 0x1800
++ TCFLSH = 0x5407
++ TCGETA = 0x5401
++ TCGETS = 0x540d
++ TCGETS2 = 0x4030542a
++ TCSAFLUSH = 0x5410
++ TCSBRK = 0x5405
++ TCSBRKP = 0x5486
++ TCSETA = 0x5402
++ TCSETAF = 0x5404
++ TCSETAW = 0x5403
++ TCSETS = 0x540e
++ TCSETS2 = 0x8030542b
++ TCSETSF = 0x5410
++ TCSETSF2 = 0x8030542d
++ TCSETSW = 0x540f
++ TCSETSW2 = 0x8030542c
++ TCXONC = 0x5406
++ TIOCCBRK = 0x5428
++ TIOCCONS = 0x80047478
++ TIOCEXCL = 0x740d
++ TIOCGDEV = 0x40045432
++ TIOCGETD = 0x7400
++ TIOCGETP = 0x7408
++ TIOCGEXCL = 0x40045440
++ TIOCGICOUNT = 0x5492
++ TIOCGISO7816 = 0x40285442
++ TIOCGLCKTRMIOS = 0x548b
++ TIOCGLTC = 0x7474
++ TIOCGPGRP = 0x40047477
++ TIOCGPKT = 0x40045438
++ TIOCGPTLCK = 0x40045439
++ TIOCGPTN = 0x40045430
++ TIOCGPTPEER = 0x20005441
++ TIOCGRS485 = 0x4020542e
++ TIOCGSERIAL = 0x5484
++ TIOCGSID = 0x7416
++ TIOCGSOFTCAR = 0x5481
++ TIOCGWINSZ = 0x40087468
++ TIOCINQ = 0x467f
++ TIOCLINUX = 0x5483
++ TIOCMBIC = 0x741c
++ TIOCMBIS = 0x741b
++ TIOCMGET = 0x741d
++ TIOCMIWAIT = 0x5491
++ TIOCMSET = 0x741a
++ TIOCM_CAR = 0x100
++ TIOCM_CD = 0x100
++ TIOCM_CTS = 0x40
++ TIOCM_DSR = 0x400
++ TIOCM_RI = 0x200
++ TIOCM_RNG = 0x200
++ TIOCM_SR = 0x20
++ TIOCM_ST = 0x10
++ TIOCNOTTY = 0x5471
++ TIOCNXCL = 0x740e
++ TIOCOUTQ = 0x7472
++ TIOCPKT = 0x5470
++ TIOCSBRK = 0x5427
++ TIOCSCTTY = 0x5480
++ TIOCSERCONFIG = 0x5488
++ TIOCSERGETLSR = 0x548e
++ TIOCSERGETMULTI = 0x548f
++ TIOCSERGSTRUCT = 0x548d
++ TIOCSERGWILD = 0x5489
++ TIOCSERSETMULTI = 0x5490
++ TIOCSERSWILD = 0x548a
++ TIOCSER_TEMT = 0x1
++ TIOCSETD = 0x7401
++ TIOCSETN = 0x740a
++ TIOCSETP = 0x7409
++ TIOCSIG = 0x80045436
++ TIOCSISO7816 = 0xc0285443
++ TIOCSLCKTRMIOS = 0x548c
++ TIOCSLTC = 0x7475
++ TIOCSPGRP = 0x80047476
++ TIOCSPTLCK = 0x80045431
++ TIOCSRS485 = 0xc020542f
++ TIOCSSERIAL = 0x5485
++ TIOCSSOFTCAR = 0x5482
++ TIOCSTI = 0x5472
++ TIOCSWINSZ = 0x80087467
++ TIOCVHANGUP = 0x5437
++ TOSTOP = 0x8000
++ TUNATTACHFILTER = 0x801054d5
++ TUNDETACHFILTER = 0x801054d6
++ TUNGETDEVNETNS = 0x200054e3
++ TUNGETFEATURES = 0x400454cf
++ TUNGETFILTER = 0x401054db
++ TUNGETIFF = 0x400454d2
++ TUNGETSNDBUF = 0x400454d3
++ TUNGETVNETBE = 0x400454df
++ TUNGETVNETHDRSZ = 0x400454d7
++ TUNGETVNETLE = 0x400454dd
++ TUNSETCARRIER = 0x800454e2
++ TUNSETDEBUG = 0x800454c9
++ TUNSETFILTEREBPF = 0x400454e1
++ TUNSETGROUP = 0x800454ce
++ TUNSETIFF = 0x800454ca
++ TUNSETIFINDEX = 0x800454da
++ TUNSETLINK = 0x800454cd
++ TUNSETNOCSUM = 0x800454c8
++ TUNSETOFFLOAD = 0x800454d0
++ TUNSETOWNER = 0x800454cc
++ TUNSETPERSIST = 0x800454cb
++ TUNSETQUEUE = 0x800454d9
++ TUNSETSNDBUF = 0x800454d4
++ TUNSETSTEERINGEBPF = 0x400454e0
++ TUNSETTXFILTER = 0x800454d1
++ TUNSETVNETBE = 0x800454de
++ TUNSETVNETHDRSZ = 0x800454d8
++ TUNSETVNETLE = 0x800454dc
++ UBI_IOCATT = 0x80186f40
++ UBI_IOCDET = 0x80046f41
++ UBI_IOCEBCH = 0x80044f02
++ UBI_IOCEBER = 0x80044f01
++ UBI_IOCEBISMAP = 0x40044f05
++ UBI_IOCEBMAP = 0x80084f03
++ UBI_IOCEBUNMAP = 0x80044f04
++ UBI_IOCMKVOL = 0x80986f00
++ UBI_IOCRMVOL = 0x80046f01
++ UBI_IOCRNVOL = 0x91106f03
++ UBI_IOCRPEB = 0x80046f04
++ UBI_IOCRSVOL = 0x800c6f02
++ UBI_IOCSETVOLPROP = 0x80104f06
++ UBI_IOCSPEB = 0x80046f05
++ UBI_IOCVOLCRBLK = 0x80804f07
++ UBI_IOCVOLRMBLK = 0x20004f08
++ UBI_IOCVOLUP = 0x80084f00
++ VDISCARD = 0xd
++ VEOF = 0x10
++ VEOL = 0x11
++ VEOL2 = 0x6
++ VMIN = 0x4
++ VREPRINT = 0xc
++ VSTART = 0x8
++ VSTOP = 0x9
++ VSUSP = 0xa
++ VSWTC = 0x7
++ VSWTCH = 0x7
++ VT1 = 0x4000
++ VTDLY = 0x4000
++ VTIME = 0x5
++ VWERASE = 0xe
++ WDIOC_GETBOOTSTATUS = 0x40045702
++ WDIOC_GETPRETIMEOUT = 0x40045709
++ WDIOC_GETSTATUS = 0x40045701
++ WDIOC_GETSUPPORT = 0x40285700
++ WDIOC_GETTEMP = 0x40045703
++ WDIOC_GETTIMELEFT = 0x4004570a
++ WDIOC_GETTIMEOUT = 0x40045707
++ WDIOC_KEEPALIVE = 0x40045705
++ WDIOC_SETOPTIONS = 0x40045704
++ WORDSIZE = 0x40
++ XCASE = 0x4
++ XTABS = 0x1800
+ )
+
+ // Errors
+ const (
+- E2BIG = syscall.Errno(0x7)
+- EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x7d)
+ EADDRNOTAVAIL = syscall.Errno(0x7e)
+ EADV = syscall.Errno(0x44)
+ EAFNOSUPPORT = syscall.Errno(0x7c)
+- EAGAIN = syscall.Errno(0xb)
+ EALREADY = syscall.Errno(0x95)
+ EBADE = syscall.Errno(0x32)
+- EBADF = syscall.Errno(0x9)
+ EBADFD = syscall.Errno(0x51)
+ EBADMSG = syscall.Errno(0x4d)
+ EBADR = syscall.Errno(0x33)
+ EBADRQC = syscall.Errno(0x36)
+ EBADSLT = syscall.Errno(0x37)
+ EBFONT = syscall.Errno(0x3b)
+- EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x9e)
+- ECHILD = syscall.Errno(0xa)
+ ECHRNG = syscall.Errno(0x25)
+ ECOMM = syscall.Errno(0x46)
+ ECONNABORTED = syscall.Errno(0x82)
+@@ -1886,12 +502,8 @@ const (
+ EDEADLK = syscall.Errno(0x2d)
+ EDEADLOCK = syscall.Errno(0x38)
+ EDESTADDRREQ = syscall.Errno(0x60)
+- EDOM = syscall.Errno(0x21)
+ EDOTDOT = syscall.Errno(0x49)
+ EDQUOT = syscall.Errno(0x46d)
+- EEXIST = syscall.Errno(0x11)
+- EFAULT = syscall.Errno(0xe)
+- EFBIG = syscall.Errno(0x1b)
+ EHOSTDOWN = syscall.Errno(0x93)
+ EHOSTUNREACH = syscall.Errno(0x94)
+ EHWPOISON = syscall.Errno(0xa8)
+@@ -1899,11 +511,7 @@ const (
+ EILSEQ = syscall.Errno(0x58)
+ EINIT = syscall.Errno(0x8d)
+ EINPROGRESS = syscall.Errno(0x96)
+- EINTR = syscall.Errno(0x4)
+- EINVAL = syscall.Errno(0x16)
+- EIO = syscall.Errno(0x5)
+ EISCONN = syscall.Errno(0x85)
+- EISDIR = syscall.Errno(0x15)
+ EISNAM = syscall.Errno(0x8b)
+ EKEYEXPIRED = syscall.Errno(0xa2)
+ EKEYREJECTED = syscall.Errno(0xa4)
+@@ -1920,8 +528,6 @@ const (
+ ELNRNG = syscall.Errno(0x29)
+ ELOOP = syscall.Errno(0x5a)
+ EMEDIUMTYPE = syscall.Errno(0xa0)
+- EMFILE = syscall.Errno(0x18)
+- EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x61)
+ EMULTIHOP = syscall.Errno(0x4a)
+ ENAMETOOLONG = syscall.Errno(0x4e)
+@@ -1929,100 +535,68 @@ const (
+ ENETDOWN = syscall.Errno(0x7f)
+ ENETRESET = syscall.Errno(0x81)
+ ENETUNREACH = syscall.Errno(0x80)
+- ENFILE = syscall.Errno(0x17)
+ ENOANO = syscall.Errno(0x35)
+ ENOBUFS = syscall.Errno(0x84)
+ ENOCSI = syscall.Errno(0x2b)
+ ENODATA = syscall.Errno(0x3d)
+- ENODEV = syscall.Errno(0x13)
+- ENOENT = syscall.Errno(0x2)
+- ENOEXEC = syscall.Errno(0x8)
+ ENOKEY = syscall.Errno(0xa1)
+ ENOLCK = syscall.Errno(0x2e)
+ ENOLINK = syscall.Errno(0x43)
+ ENOMEDIUM = syscall.Errno(0x9f)
+- ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x23)
+ ENONET = syscall.Errno(0x40)
+ ENOPKG = syscall.Errno(0x41)
+ ENOPROTOOPT = syscall.Errno(0x63)
+- ENOSPC = syscall.Errno(0x1c)
+ ENOSR = syscall.Errno(0x3f)
+ ENOSTR = syscall.Errno(0x3c)
+ ENOSYS = syscall.Errno(0x59)
+- ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x86)
+- ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x5d)
+ ENOTNAM = syscall.Errno(0x89)
+ ENOTRECOVERABLE = syscall.Errno(0xa6)
+ ENOTSOCK = syscall.Errno(0x5f)
+ ENOTSUP = syscall.Errno(0x7a)
+- ENOTTY = syscall.Errno(0x19)
+ ENOTUNIQ = syscall.Errno(0x50)
+- ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x7a)
+ EOVERFLOW = syscall.Errno(0x4f)
+ EOWNERDEAD = syscall.Errno(0xa5)
+- EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x7b)
+- EPIPE = syscall.Errno(0x20)
+ EPROTO = syscall.Errno(0x47)
+ EPROTONOSUPPORT = syscall.Errno(0x78)
+ EPROTOTYPE = syscall.Errno(0x62)
+- ERANGE = syscall.Errno(0x22)
+ EREMCHG = syscall.Errno(0x52)
+ EREMDEV = syscall.Errno(0x8e)
+ EREMOTE = syscall.Errno(0x42)
+ EREMOTEIO = syscall.Errno(0x8c)
+ ERESTART = syscall.Errno(0x5b)
+ ERFKILL = syscall.Errno(0xa7)
+- EROFS = syscall.Errno(0x1e)
+ ESHUTDOWN = syscall.Errno(0x8f)
+ ESOCKTNOSUPPORT = syscall.Errno(0x79)
+- ESPIPE = syscall.Errno(0x1d)
+- ESRCH = syscall.Errno(0x3)
+ ESRMNT = syscall.Errno(0x45)
+ ESTALE = syscall.Errno(0x97)
+ ESTRPIPE = syscall.Errno(0x5c)
+ ETIME = syscall.Errno(0x3e)
+ ETIMEDOUT = syscall.Errno(0x91)
+ ETOOMANYREFS = syscall.Errno(0x90)
+- ETXTBSY = syscall.Errno(0x1a)
+ EUCLEAN = syscall.Errno(0x87)
+ EUNATCH = syscall.Errno(0x2a)
+ EUSERS = syscall.Errno(0x5e)
+- EWOULDBLOCK = syscall.Errno(0xb)
+- EXDEV = syscall.Errno(0x12)
+ EXFULL = syscall.Errno(0x34)
+ )
+
+ // Signals
+ const (
+- SIGABRT = syscall.Signal(0x6)
+- SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0xa)
+ SIGCHLD = syscall.Signal(0x12)
+ SIGCLD = syscall.Signal(0x12)
+ SIGCONT = syscall.Signal(0x19)
+ SIGEMT = syscall.Signal(0x7)
+- SIGFPE = syscall.Signal(0x8)
+- SIGHUP = syscall.Signal(0x1)
+- SIGILL = syscall.Signal(0x4)
+- SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x16)
+- SIGIOT = syscall.Signal(0x6)
+- SIGKILL = syscall.Signal(0x9)
+- SIGPIPE = syscall.Signal(0xd)
+ SIGPOLL = syscall.Signal(0x16)
+ SIGPROF = syscall.Signal(0x1d)
+ SIGPWR = syscall.Signal(0x13)
+- SIGQUIT = syscall.Signal(0x3)
+- SIGSEGV = syscall.Signal(0xb)
+ SIGSTOP = syscall.Signal(0x17)
+ SIGSYS = syscall.Signal(0xc)
+- SIGTERM = syscall.Signal(0xf)
+- SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x18)
+ SIGTTIN = syscall.Signal(0x1a)
+ SIGTTOU = syscall.Signal(0x1b)
+@@ -2036,174 +610,182 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "no such device or address",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource temporarily unavailable",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "device or resource busy",
+- 17: "file exists",
+- 18: "invalid cross-device link",
+- 19: "no such device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "numerical result out of range",
+- 35: "no message of desired type",
+- 36: "identifier removed",
+- 37: "channel number out of range",
+- 38: "level 2 not synchronized",
+- 39: "level 3 halted",
+- 40: "level 3 reset",
+- 41: "link number out of range",
+- 42: "protocol driver not attached",
+- 43: "no CSI structure available",
+- 44: "level 2 halted",
+- 45: "resource deadlock avoided",
+- 46: "no locks available",
+- 50: "invalid exchange",
+- 51: "invalid request descriptor",
+- 52: "exchange full",
+- 53: "no anode",
+- 54: "invalid request code",
+- 55: "invalid slot",
+- 56: "file locking deadlock error",
+- 59: "bad font file format",
+- 60: "device not a stream",
+- 61: "no data available",
+- 62: "timer expired",
+- 63: "out of streams resources",
+- 64: "machine is not on the network",
+- 65: "package not installed",
+- 66: "object is remote",
+- 67: "link has been severed",
+- 68: "advertise error",
+- 69: "srmount error",
+- 70: "communication error on send",
+- 71: "protocol error",
+- 73: "RFS specific error",
+- 74: "multihop attempted",
+- 77: "bad message",
+- 78: "file name too long",
+- 79: "value too large for defined data type",
+- 80: "name not unique on network",
+- 81: "file descriptor in bad state",
+- 82: "remote address changed",
+- 83: "can not access a needed shared library",
+- 84: "accessing a corrupted shared library",
+- 85: ".lib section in a.out corrupted",
+- 86: "attempting to link in too many shared libraries",
+- 87: "cannot exec a shared library directly",
+- 88: "invalid or incomplete multibyte or wide character",
+- 89: "function not implemented",
+- 90: "too many levels of symbolic links",
+- 91: "interrupted system call should be restarted",
+- 92: "streams pipe error",
+- 93: "directory not empty",
+- 94: "too many users",
+- 95: "socket operation on non-socket",
+- 96: "destination address required",
+- 97: "message too long",
+- 98: "protocol wrong type for socket",
+- 99: "protocol not available",
+- 120: "protocol not supported",
+- 121: "socket type not supported",
+- 122: "operation not supported",
+- 123: "protocol family not supported",
+- 124: "address family not supported by protocol",
+- 125: "address already in use",
+- 126: "cannot assign requested address",
+- 127: "network is down",
+- 128: "network is unreachable",
+- 129: "network dropped connection on reset",
+- 130: "software caused connection abort",
+- 131: "connection reset by peer",
+- 132: "no buffer space available",
+- 133: "transport endpoint is already connected",
+- 134: "transport endpoint is not connected",
+- 135: "structure needs cleaning",
+- 137: "not a XENIX named type file",
+- 138: "no XENIX semaphores available",
+- 139: "is a named type file",
+- 140: "remote I/O error",
+- 141: "unknown error 141",
+- 142: "unknown error 142",
+- 143: "cannot send after transport endpoint shutdown",
+- 144: "too many references: cannot splice",
+- 145: "connection timed out",
+- 146: "connection refused",
+- 147: "host is down",
+- 148: "no route to host",
+- 149: "operation already in progress",
+- 150: "operation now in progress",
+- 151: "stale file handle",
+- 158: "operation canceled",
+- 159: "no medium found",
+- 160: "wrong medium type",
+- 161: "required key not available",
+- 162: "key has expired",
+- 163: "key has been revoked",
+- 164: "key was rejected by service",
+- 165: "owner died",
+- 166: "state not recoverable",
+- 167: "operation not possible due to RF-kill",
+- 168: "memory page has hardware error",
+- 1133: "disk quota exceeded",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "no such device or address"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EAGAIN", "resource temporarily unavailable"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device or resource busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "invalid cross-device link"},
++ {19, "ENODEV", "no such device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "numerical result out of range"},
++ {35, "ENOMSG", "no message of desired type"},
++ {36, "EIDRM", "identifier removed"},
++ {37, "ECHRNG", "channel number out of range"},
++ {38, "EL2NSYNC", "level 2 not synchronized"},
++ {39, "EL3HLT", "level 3 halted"},
++ {40, "EL3RST", "level 3 reset"},
++ {41, "ELNRNG", "link number out of range"},
++ {42, "EUNATCH", "protocol driver not attached"},
++ {43, "ENOCSI", "no CSI structure available"},
++ {44, "EL2HLT", "level 2 halted"},
++ {45, "EDEADLK", "resource deadlock avoided"},
++ {46, "ENOLCK", "no locks available"},
++ {50, "EBADE", "invalid exchange"},
++ {51, "EBADR", "invalid request descriptor"},
++ {52, "EXFULL", "exchange full"},
++ {53, "ENOANO", "no anode"},
++ {54, "EBADRQC", "invalid request code"},
++ {55, "EBADSLT", "invalid slot"},
++ {56, "EDEADLOCK", "file locking deadlock error"},
++ {59, "EBFONT", "bad font file format"},
++ {60, "ENOSTR", "device not a stream"},
++ {61, "ENODATA", "no data available"},
++ {62, "ETIME", "timer expired"},
++ {63, "ENOSR", "out of streams resources"},
++ {64, "ENONET", "machine is not on the network"},
++ {65, "ENOPKG", "package not installed"},
++ {66, "EREMOTE", "object is remote"},
++ {67, "ENOLINK", "link has been severed"},
++ {68, "EADV", "advertise error"},
++ {69, "ESRMNT", "srmount error"},
++ {70, "ECOMM", "communication error on send"},
++ {71, "EPROTO", "protocol error"},
++ {73, "EDOTDOT", "RFS specific error"},
++ {74, "EMULTIHOP", "multihop attempted"},
++ {77, "EBADMSG", "bad message"},
++ {78, "ENAMETOOLONG", "file name too long"},
++ {79, "EOVERFLOW", "value too large for defined data type"},
++ {80, "ENOTUNIQ", "name not unique on network"},
++ {81, "EBADFD", "file descriptor in bad state"},
++ {82, "EREMCHG", "remote address changed"},
++ {83, "ELIBACC", "can not access a needed shared library"},
++ {84, "ELIBBAD", "accessing a corrupted shared library"},
++ {85, "ELIBSCN", ".lib section in a.out corrupted"},
++ {86, "ELIBMAX", "attempting to link in too many shared libraries"},
++ {87, "ELIBEXEC", "cannot exec a shared library directly"},
++ {88, "EILSEQ", "invalid or incomplete multibyte or wide character"},
++ {89, "ENOSYS", "function not implemented"},
++ {90, "ELOOP", "too many levels of symbolic links"},
++ {91, "ERESTART", "interrupted system call should be restarted"},
++ {92, "ESTRPIPE", "streams pipe error"},
++ {93, "ENOTEMPTY", "directory not empty"},
++ {94, "EUSERS", "too many users"},
++ {95, "ENOTSOCK", "socket operation on non-socket"},
++ {96, "EDESTADDRREQ", "destination address required"},
++ {97, "EMSGSIZE", "message too long"},
++ {98, "EPROTOTYPE", "protocol wrong type for socket"},
++ {99, "ENOPROTOOPT", "protocol not available"},
++ {120, "EPROTONOSUPPORT", "protocol not supported"},
++ {121, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {122, "ENOTSUP", "operation not supported"},
++ {123, "EPFNOSUPPORT", "protocol family not supported"},
++ {124, "EAFNOSUPPORT", "address family not supported by protocol"},
++ {125, "EADDRINUSE", "address already in use"},
++ {126, "EADDRNOTAVAIL", "cannot assign requested address"},
++ {127, "ENETDOWN", "network is down"},
++ {128, "ENETUNREACH", "network is unreachable"},
++ {129, "ENETRESET", "network dropped connection on reset"},
++ {130, "ECONNABORTED", "software caused connection abort"},
++ {131, "ECONNRESET", "connection reset by peer"},
++ {132, "ENOBUFS", "no buffer space available"},
++ {133, "EISCONN", "transport endpoint is already connected"},
++ {134, "ENOTCONN", "transport endpoint is not connected"},
++ {135, "EUCLEAN", "structure needs cleaning"},
++ {137, "ENOTNAM", "not a XENIX named type file"},
++ {138, "ENAVAIL", "no XENIX semaphores available"},
++ {139, "EISNAM", "is a named type file"},
++ {140, "EREMOTEIO", "remote I/O error"},
++ {141, "EINIT", "unknown error 141"},
++ {142, "EREMDEV", "unknown error 142"},
++ {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"},
++ {144, "ETOOMANYREFS", "too many references: cannot splice"},
++ {145, "ETIMEDOUT", "connection timed out"},
++ {146, "ECONNREFUSED", "connection refused"},
++ {147, "EHOSTDOWN", "host is down"},
++ {148, "EHOSTUNREACH", "no route to host"},
++ {149, "EALREADY", "operation already in progress"},
++ {150, "EINPROGRESS", "operation now in progress"},
++ {151, "ESTALE", "stale file handle"},
++ {158, "ECANCELED", "operation canceled"},
++ {159, "ENOMEDIUM", "no medium found"},
++ {160, "EMEDIUMTYPE", "wrong medium type"},
++ {161, "ENOKEY", "required key not available"},
++ {162, "EKEYEXPIRED", "key has expired"},
++ {163, "EKEYREVOKED", "key has been revoked"},
++ {164, "EKEYREJECTED", "key was rejected by service"},
++ {165, "EOWNERDEAD", "owner died"},
++ {166, "ENOTRECOVERABLE", "state not recoverable"},
++ {167, "ERFKILL", "operation not possible due to RF-kill"},
++ {168, "EHWPOISON", "memory page has hardware error"},
++ {1133, "EDQUOT", "disk quota exceeded"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/breakpoint trap",
+- 6: "aborted",
+- 7: "EMT trap",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "bus error",
+- 11: "segmentation fault",
+- 12: "bad system call",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "user defined signal 1",
+- 17: "user defined signal 2",
+- 18: "child exited",
+- 19: "power failure",
+- 20: "window changed",
+- 21: "urgent I/O condition",
+- 22: "I/O possible",
+- 23: "stopped (signal)",
+- 24: "stopped",
+- 25: "continued",
+- 26: "stopped (tty input)",
+- 27: "stopped (tty output)",
+- 28: "virtual timer expired",
+- 29: "profiling timer expired",
+- 30: "CPU time limit exceeded",
+- 31: "file size limit exceeded",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/breakpoint trap"},
++ {6, "SIGABRT", "aborted"},
++ {7, "SIGEMT", "EMT trap"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGBUS", "bus error"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGSYS", "bad system call"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGUSR1", "user defined signal 1"},
++ {17, "SIGUSR2", "user defined signal 2"},
++ {18, "SIGCHLD", "child exited"},
++ {19, "SIGPWR", "power failure"},
++ {20, "SIGWINCH", "window changed"},
++ {21, "SIGURG", "urgent I/O condition"},
++ {22, "SIGIO", "I/O possible"},
++ {23, "SIGSTOP", "stopped (signal)"},
++ {24, "SIGTSTP", "stopped"},
++ {25, "SIGCONT", "continued"},
++ {26, "SIGTTIN", "stopped (tty input)"},
++ {27, "SIGTTOU", "stopped (tty output)"},
++ {28, "SIGVTALRM", "virtual timer expired"},
++ {29, "SIGPROF", "profiling timer expired"},
++ {30, "SIGXCPU", "CPU time limit exceeded"},
++ {31, "SIGXFSZ", "file size limit exceeded"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
+index 2310beeb..e758b61e 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
+@@ -3,7 +3,7 @@
+
+ // +build mips64le,linux
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
+
+ package unix
+@@ -11,1873 +11,489 @@ package unix
+ import "syscall"
+
+ const (
+- AF_ALG = 0x26
+- AF_APPLETALK = 0x5
+- AF_ASH = 0x12
+- AF_ATMPVC = 0x8
+- AF_ATMSVC = 0x14
+- AF_AX25 = 0x3
+- AF_BLUETOOTH = 0x1f
+- AF_BRIDGE = 0x7
+- AF_CAIF = 0x25
+- AF_CAN = 0x1d
+- AF_DECnet = 0xc
+- AF_ECONET = 0x13
+- AF_FILE = 0x1
+- AF_IB = 0x1b
+- AF_IEEE802154 = 0x24
+- AF_INET = 0x2
+- AF_INET6 = 0xa
+- AF_IPX = 0x4
+- AF_IRDA = 0x17
+- AF_ISDN = 0x22
+- AF_IUCV = 0x20
+- AF_KCM = 0x29
+- AF_KEY = 0xf
+- AF_LLC = 0x1a
+- AF_LOCAL = 0x1
+- AF_MAX = 0x2b
+- AF_MPLS = 0x1c
+- AF_NETBEUI = 0xd
+- AF_NETLINK = 0x10
+- AF_NETROM = 0x6
+- AF_NFC = 0x27
+- AF_PACKET = 0x11
+- AF_PHONET = 0x23
+- AF_PPPOX = 0x18
+- AF_QIPCRTR = 0x2a
+- AF_RDS = 0x15
+- AF_ROSE = 0xb
+- AF_ROUTE = 0x10
+- AF_RXRPC = 0x21
+- AF_SECURITY = 0xe
+- AF_SNA = 0x16
+- AF_TIPC = 0x1e
+- AF_UNIX = 0x1
+- AF_UNSPEC = 0x0
+- AF_VSOCK = 0x28
+- AF_WANPIPE = 0x19
+- AF_X25 = 0x9
+- ALG_OP_DECRYPT = 0x0
+- ALG_OP_ENCRYPT = 0x1
+- ALG_SET_AEAD_ASSOCLEN = 0x4
+- ALG_SET_AEAD_AUTHSIZE = 0x5
+- ALG_SET_IV = 0x2
+- ALG_SET_KEY = 0x1
+- ALG_SET_OP = 0x3
+- ARPHRD_6LOWPAN = 0x339
+- ARPHRD_ADAPT = 0x108
+- ARPHRD_APPLETLK = 0x8
+- ARPHRD_ARCNET = 0x7
+- ARPHRD_ASH = 0x30d
+- ARPHRD_ATM = 0x13
+- ARPHRD_AX25 = 0x3
+- ARPHRD_BIF = 0x307
+- ARPHRD_CAIF = 0x336
+- ARPHRD_CAN = 0x118
+- ARPHRD_CHAOS = 0x5
+- ARPHRD_CISCO = 0x201
+- ARPHRD_CSLIP = 0x101
+- ARPHRD_CSLIP6 = 0x103
+- ARPHRD_DDCMP = 0x205
+- ARPHRD_DLCI = 0xf
+- ARPHRD_ECONET = 0x30e
+- ARPHRD_EETHER = 0x2
+- ARPHRD_ETHER = 0x1
+- ARPHRD_EUI64 = 0x1b
+- ARPHRD_FCAL = 0x311
+- ARPHRD_FCFABRIC = 0x313
+- ARPHRD_FCPL = 0x312
+- ARPHRD_FCPP = 0x310
+- ARPHRD_FDDI = 0x306
+- ARPHRD_FRAD = 0x302
+- ARPHRD_HDLC = 0x201
+- ARPHRD_HIPPI = 0x30c
+- ARPHRD_HWX25 = 0x110
+- ARPHRD_IEEE1394 = 0x18
+- ARPHRD_IEEE802 = 0x6
+- ARPHRD_IEEE80211 = 0x321
+- ARPHRD_IEEE80211_PRISM = 0x322
+- ARPHRD_IEEE80211_RADIOTAP = 0x323
+- ARPHRD_IEEE802154 = 0x324
+- ARPHRD_IEEE802154_MONITOR = 0x325
+- ARPHRD_IEEE802_TR = 0x320
+- ARPHRD_INFINIBAND = 0x20
+- ARPHRD_IP6GRE = 0x337
+- ARPHRD_IPDDP = 0x309
+- ARPHRD_IPGRE = 0x30a
+- ARPHRD_IRDA = 0x30f
+- ARPHRD_LAPB = 0x204
+- ARPHRD_LOCALTLK = 0x305
+- ARPHRD_LOOPBACK = 0x304
+- ARPHRD_METRICOM = 0x17
+- ARPHRD_NETLINK = 0x338
+- ARPHRD_NETROM = 0x0
+- ARPHRD_NONE = 0xfffe
+- ARPHRD_PHONET = 0x334
+- ARPHRD_PHONET_PIPE = 0x335
+- ARPHRD_PIMREG = 0x30b
+- ARPHRD_PPP = 0x200
+- ARPHRD_PRONET = 0x4
+- ARPHRD_RAWHDLC = 0x206
+- ARPHRD_ROSE = 0x10e
+- ARPHRD_RSRVD = 0x104
+- ARPHRD_SIT = 0x308
+- ARPHRD_SKIP = 0x303
+- ARPHRD_SLIP = 0x100
+- ARPHRD_SLIP6 = 0x102
+- ARPHRD_TUNNEL = 0x300
+- ARPHRD_TUNNEL6 = 0x301
+- ARPHRD_VOID = 0xffff
+- ARPHRD_X25 = 0x10f
+- B0 = 0x0
+- B1000000 = 0x1008
+- B110 = 0x3
+- B115200 = 0x1002
+- B1152000 = 0x1009
+- B1200 = 0x9
+- B134 = 0x4
+- B150 = 0x5
+- B1500000 = 0x100a
+- B1800 = 0xa
+- B19200 = 0xe
+- B200 = 0x6
+- B2000000 = 0x100b
+- B230400 = 0x1003
+- B2400 = 0xb
+- B2500000 = 0x100c
+- B300 = 0x7
+- B3000000 = 0x100d
+- B3500000 = 0x100e
+- B38400 = 0xf
+- B4000000 = 0x100f
+- B460800 = 0x1004
+- B4800 = 0xc
+- B50 = 0x1
+- B500000 = 0x1005
+- B57600 = 0x1001
+- B576000 = 0x1006
+- B600 = 0x8
+- B75 = 0x2
+- B921600 = 0x1007
+- B9600 = 0xd
+- BLKBSZGET = 0x40081270
+- BLKBSZSET = 0x80081271
+- BLKFLSBUF = 0x20001261
+- BLKFRAGET = 0x20001265
+- BLKFRASET = 0x20001264
+- BLKGETSIZE = 0x20001260
+- BLKGETSIZE64 = 0x40081272
+- BLKPBSZGET = 0x2000127b
+- BLKRAGET = 0x20001263
+- BLKRASET = 0x20001262
+- BLKROGET = 0x2000125e
+- BLKROSET = 0x2000125d
+- BLKRRPART = 0x2000125f
+- BLKSECTGET = 0x20001267
+- BLKSECTSET = 0x20001266
+- BLKSSZGET = 0x20001268
+- BOTHER = 0x1000
+- BPF_A = 0x10
+- BPF_ABS = 0x20
+- BPF_ADD = 0x0
+- BPF_ALU = 0x4
+- BPF_AND = 0x50
+- BPF_B = 0x10
+- BPF_DIV = 0x30
+- BPF_H = 0x8
+- BPF_IMM = 0x0
+- BPF_IND = 0x40
+- BPF_JA = 0x0
+- BPF_JEQ = 0x10
+- BPF_JGE = 0x30
+- BPF_JGT = 0x20
+- BPF_JMP = 0x5
+- BPF_JSET = 0x40
+- BPF_K = 0x0
+- BPF_LD = 0x0
+- BPF_LDX = 0x1
+- BPF_LEN = 0x80
+- BPF_LL_OFF = -0x200000
+- BPF_LSH = 0x60
+- BPF_MAJOR_VERSION = 0x1
+- BPF_MAXINSNS = 0x1000
+- BPF_MEM = 0x60
+- BPF_MEMWORDS = 0x10
+- BPF_MINOR_VERSION = 0x1
+- BPF_MISC = 0x7
+- BPF_MOD = 0x90
+- BPF_MSH = 0xa0
+- BPF_MUL = 0x20
+- BPF_NEG = 0x80
+- BPF_NET_OFF = -0x100000
+- BPF_OR = 0x40
+- BPF_RET = 0x6
+- BPF_RSH = 0x70
+- BPF_ST = 0x2
+- BPF_STX = 0x3
+- BPF_SUB = 0x10
+- BPF_TAX = 0x0
+- BPF_TXA = 0x80
+- BPF_W = 0x0
+- BPF_X = 0x8
+- BPF_XOR = 0xa0
+- BRKINT = 0x2
+- BS0 = 0x0
+- BS1 = 0x2000
+- BSDLY = 0x2000
+- CAN_BCM = 0x2
+- CAN_EFF_FLAG = 0x80000000
+- CAN_EFF_ID_BITS = 0x1d
+- CAN_EFF_MASK = 0x1fffffff
+- CAN_ERR_FLAG = 0x20000000
+- CAN_ERR_MASK = 0x1fffffff
+- CAN_INV_FILTER = 0x20000000
+- CAN_ISOTP = 0x6
+- CAN_MAX_DLC = 0x8
+- CAN_MAX_DLEN = 0x8
+- CAN_MCNET = 0x5
+- CAN_MTU = 0x10
+- CAN_NPROTO = 0x7
+- CAN_RAW = 0x1
+- CAN_RAW_FILTER_MAX = 0x200
+- CAN_RTR_FLAG = 0x40000000
+- CAN_SFF_ID_BITS = 0xb
+- CAN_SFF_MASK = 0x7ff
+- CAN_TP16 = 0x3
+- CAN_TP20 = 0x4
+- CBAUD = 0x100f
+- CBAUDEX = 0x1000
+- CFLUSH = 0xf
+- CIBAUD = 0x100f0000
+- CLOCAL = 0x800
+- CLOCK_BOOTTIME = 0x7
+- CLOCK_BOOTTIME_ALARM = 0x9
+- CLOCK_DEFAULT = 0x0
+- CLOCK_EXT = 0x1
+- CLOCK_INT = 0x2
+- CLOCK_MONOTONIC = 0x1
+- CLOCK_MONOTONIC_COARSE = 0x6
+- CLOCK_MONOTONIC_RAW = 0x4
+- CLOCK_PROCESS_CPUTIME_ID = 0x2
+- CLOCK_REALTIME = 0x0
+- CLOCK_REALTIME_ALARM = 0x8
+- CLOCK_REALTIME_COARSE = 0x5
+- CLOCK_TAI = 0xb
+- CLOCK_THREAD_CPUTIME_ID = 0x3
+- CLOCK_TXFROMRX = 0x4
+- CLOCK_TXINT = 0x3
+- CLONE_CHILD_CLEARTID = 0x200000
+- CLONE_CHILD_SETTID = 0x1000000
+- CLONE_DETACHED = 0x400000
+- CLONE_FILES = 0x400
+- CLONE_FS = 0x200
+- CLONE_IO = 0x80000000
+- CLONE_NEWCGROUP = 0x2000000
+- CLONE_NEWIPC = 0x8000000
+- CLONE_NEWNET = 0x40000000
+- CLONE_NEWNS = 0x20000
+- CLONE_NEWPID = 0x20000000
+- CLONE_NEWUSER = 0x10000000
+- CLONE_NEWUTS = 0x4000000
+- CLONE_PARENT = 0x8000
+- CLONE_PARENT_SETTID = 0x100000
+- CLONE_PTRACE = 0x2000
+- CLONE_SETTLS = 0x80000
+- CLONE_SIGHAND = 0x800
+- CLONE_SYSVSEM = 0x40000
+- CLONE_THREAD = 0x10000
+- CLONE_UNTRACED = 0x800000
+- CLONE_VFORK = 0x4000
+- CLONE_VM = 0x100
+- CMSPAR = 0x40000000
+- CR0 = 0x0
+- CR1 = 0x200
+- CR2 = 0x400
+- CR3 = 0x600
+- CRDLY = 0x600
+- CREAD = 0x80
+- CRTSCTS = 0x80000000
+- CS5 = 0x0
+- CS6 = 0x10
+- CS7 = 0x20
+- CS8 = 0x30
+- CSIGNAL = 0xff
+- CSIZE = 0x30
+- CSTART = 0x11
+- CSTATUS = 0x0
+- CSTOP = 0x13
+- CSTOPB = 0x40
+- CSUSP = 0x1a
+- DT_BLK = 0x6
+- DT_CHR = 0x2
+- DT_DIR = 0x4
+- DT_FIFO = 0x1
+- DT_LNK = 0xa
+- DT_REG = 0x8
+- DT_SOCK = 0xc
+- DT_UNKNOWN = 0x0
+- DT_WHT = 0xe
+- ECHO = 0x8
+- ECHOCTL = 0x200
+- ECHOE = 0x10
+- ECHOK = 0x20
+- ECHOKE = 0x800
+- ECHONL = 0x40
+- ECHOPRT = 0x400
+- EFD_CLOEXEC = 0x80000
+- EFD_NONBLOCK = 0x80
+- EFD_SEMAPHORE = 0x1
+- ENCODING_DEFAULT = 0x0
+- ENCODING_FM_MARK = 0x3
+- ENCODING_FM_SPACE = 0x4
+- ENCODING_MANCHESTER = 0x5
+- ENCODING_NRZ = 0x1
+- ENCODING_NRZI = 0x2
+- EPOLLERR = 0x8
+- EPOLLET = 0x80000000
+- EPOLLEXCLUSIVE = 0x10000000
+- EPOLLHUP = 0x10
+- EPOLLIN = 0x1
+- EPOLLMSG = 0x400
+- EPOLLONESHOT = 0x40000000
+- EPOLLOUT = 0x4
+- EPOLLPRI = 0x2
+- EPOLLRDBAND = 0x80
+- EPOLLRDHUP = 0x2000
+- EPOLLRDNORM = 0x40
+- EPOLLWAKEUP = 0x20000000
+- EPOLLWRBAND = 0x200
+- EPOLLWRNORM = 0x100
+- EPOLL_CLOEXEC = 0x80000
+- EPOLL_CTL_ADD = 0x1
+- EPOLL_CTL_DEL = 0x2
+- EPOLL_CTL_MOD = 0x3
+- ETH_P_1588 = 0x88f7
+- ETH_P_8021AD = 0x88a8
+- ETH_P_8021AH = 0x88e7
+- ETH_P_8021Q = 0x8100
+- ETH_P_80221 = 0x8917
+- ETH_P_802_2 = 0x4
+- ETH_P_802_3 = 0x1
+- ETH_P_802_3_MIN = 0x600
+- ETH_P_802_EX1 = 0x88b5
+- ETH_P_AARP = 0x80f3
+- ETH_P_AF_IUCV = 0xfbfb
+- ETH_P_ALL = 0x3
+- ETH_P_AOE = 0x88a2
+- ETH_P_ARCNET = 0x1a
+- ETH_P_ARP = 0x806
+- ETH_P_ATALK = 0x809b
+- ETH_P_ATMFATE = 0x8884
+- ETH_P_ATMMPOA = 0x884c
+- ETH_P_AX25 = 0x2
+- ETH_P_BATMAN = 0x4305
+- ETH_P_BPQ = 0x8ff
+- ETH_P_CAIF = 0xf7
+- ETH_P_CAN = 0xc
+- ETH_P_CANFD = 0xd
+- ETH_P_CONTROL = 0x16
+- ETH_P_CUST = 0x6006
+- ETH_P_DDCMP = 0x6
+- ETH_P_DEC = 0x6000
+- ETH_P_DIAG = 0x6005
+- ETH_P_DNA_DL = 0x6001
+- ETH_P_DNA_RC = 0x6002
+- ETH_P_DNA_RT = 0x6003
+- ETH_P_DSA = 0x1b
+- ETH_P_ECONET = 0x18
+- ETH_P_EDSA = 0xdada
+- ETH_P_FCOE = 0x8906
+- ETH_P_FIP = 0x8914
+- ETH_P_HDLC = 0x19
+- ETH_P_HSR = 0x892f
+- ETH_P_IEEE802154 = 0xf6
+- ETH_P_IEEEPUP = 0xa00
+- ETH_P_IEEEPUPAT = 0xa01
+- ETH_P_IP = 0x800
+- ETH_P_IPV6 = 0x86dd
+- ETH_P_IPX = 0x8137
+- ETH_P_IRDA = 0x17
+- ETH_P_LAT = 0x6004
+- ETH_P_LINK_CTL = 0x886c
+- ETH_P_LOCALTALK = 0x9
+- ETH_P_LOOP = 0x60
+- ETH_P_LOOPBACK = 0x9000
+- ETH_P_MACSEC = 0x88e5
+- ETH_P_MOBITEX = 0x15
+- ETH_P_MPLS_MC = 0x8848
+- ETH_P_MPLS_UC = 0x8847
+- ETH_P_MVRP = 0x88f5
+- ETH_P_NCSI = 0x88f8
+- ETH_P_PAE = 0x888e
+- ETH_P_PAUSE = 0x8808
+- ETH_P_PHONET = 0xf5
+- ETH_P_PPPTALK = 0x10
+- ETH_P_PPP_DISC = 0x8863
+- ETH_P_PPP_MP = 0x8
+- ETH_P_PPP_SES = 0x8864
+- ETH_P_PRP = 0x88fb
+- ETH_P_PUP = 0x200
+- ETH_P_PUPAT = 0x201
+- ETH_P_QINQ1 = 0x9100
+- ETH_P_QINQ2 = 0x9200
+- ETH_P_QINQ3 = 0x9300
+- ETH_P_RARP = 0x8035
+- ETH_P_SCA = 0x6007
+- ETH_P_SLOW = 0x8809
+- ETH_P_SNAP = 0x5
+- ETH_P_TDLS = 0x890d
+- ETH_P_TEB = 0x6558
+- ETH_P_TIPC = 0x88ca
+- ETH_P_TRAILER = 0x1c
+- ETH_P_TR_802_2 = 0x11
+- ETH_P_TSN = 0x22f0
+- ETH_P_WAN_PPP = 0x7
+- ETH_P_WCCP = 0x883e
+- ETH_P_X25 = 0x805
+- ETH_P_XDSA = 0xf8
+- EXTA = 0xe
+- EXTB = 0xf
+- EXTPROC = 0x10000
+- FALLOC_FL_COLLAPSE_RANGE = 0x8
+- FALLOC_FL_INSERT_RANGE = 0x20
+- FALLOC_FL_KEEP_SIZE = 0x1
+- FALLOC_FL_NO_HIDE_STALE = 0x4
+- FALLOC_FL_PUNCH_HOLE = 0x2
+- FALLOC_FL_UNSHARE_RANGE = 0x40
+- FALLOC_FL_ZERO_RANGE = 0x10
+- FD_CLOEXEC = 0x1
+- FD_SETSIZE = 0x400
+- FF0 = 0x0
+- FF1 = 0x8000
+- FFDLY = 0x8000
+- FLUSHO = 0x2000
+- FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
+- FS_ENCRYPTION_MODE_AES_256_CTS = 0x4
+- FS_ENCRYPTION_MODE_AES_256_GCM = 0x2
+- FS_ENCRYPTION_MODE_AES_256_XTS = 0x1
+- FS_ENCRYPTION_MODE_INVALID = 0x0
+- FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615
+- FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614
+- FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613
+- FS_KEY_DESCRIPTOR_SIZE = 0x8
+- FS_KEY_DESC_PREFIX = "fscrypt:"
+- FS_KEY_DESC_PREFIX_SIZE = 0x8
+- FS_MAX_KEY_SIZE = 0x40
+- FS_POLICY_FLAGS_PAD_16 = 0x2
+- FS_POLICY_FLAGS_PAD_32 = 0x3
+- FS_POLICY_FLAGS_PAD_4 = 0x0
+- FS_POLICY_FLAGS_PAD_8 = 0x1
+- FS_POLICY_FLAGS_PAD_MASK = 0x3
+- FS_POLICY_FLAGS_VALID = 0x3
+- F_DUPFD = 0x0
+- F_DUPFD_CLOEXEC = 0x406
+- F_EXLCK = 0x4
+- F_GETFD = 0x1
+- F_GETFL = 0x3
+- F_GETLEASE = 0x401
+- F_GETLK = 0xe
+- F_GETLK64 = 0xe
+- F_GETOWN = 0x17
+- F_GETOWN_EX = 0x10
+- F_GETPIPE_SZ = 0x408
+- F_GETSIG = 0xb
+- F_LOCK = 0x1
+- F_NOTIFY = 0x402
+- F_OFD_GETLK = 0x24
+- F_OFD_SETLK = 0x25
+- F_OFD_SETLKW = 0x26
+- F_OK = 0x0
+- F_RDLCK = 0x0
+- F_SETFD = 0x2
+- F_SETFL = 0x4
+- F_SETLEASE = 0x400
+- F_SETLK = 0x6
+- F_SETLK64 = 0x6
+- F_SETLKW = 0x7
+- F_SETLKW64 = 0x7
+- F_SETOWN = 0x18
+- F_SETOWN_EX = 0xf
+- F_SETPIPE_SZ = 0x407
+- F_SETSIG = 0xa
+- F_SHLCK = 0x8
+- F_TEST = 0x3
+- F_TLOCK = 0x2
+- F_ULOCK = 0x0
+- F_UNLCK = 0x2
+- F_WRLCK = 0x1
+- GENL_ADMIN_PERM = 0x1
+- GENL_CMD_CAP_DO = 0x2
+- GENL_CMD_CAP_DUMP = 0x4
+- GENL_CMD_CAP_HASPOL = 0x8
+- GENL_HDRLEN = 0x4
+- GENL_ID_CTRL = 0x10
+- GENL_ID_PMCRAID = 0x12
+- GENL_ID_VFS_DQUOT = 0x11
+- GENL_MAX_ID = 0x3ff
+- GENL_MIN_ID = 0x10
+- GENL_NAMSIZ = 0x10
+- GENL_START_ALLOC = 0x13
+- GENL_UNS_ADMIN_PERM = 0x10
+- GRND_NONBLOCK = 0x1
+- GRND_RANDOM = 0x2
+- HUPCL = 0x400
+- IBSHIFT = 0x10
+- ICANON = 0x2
+- ICMPV6_FILTER = 0x1
+- ICRNL = 0x100
+- IEXTEN = 0x100
+- IFA_F_DADFAILED = 0x8
+- IFA_F_DEPRECATED = 0x20
+- IFA_F_HOMEADDRESS = 0x10
+- IFA_F_MANAGETEMPADDR = 0x100
+- IFA_F_MCAUTOJOIN = 0x400
+- IFA_F_NODAD = 0x2
+- IFA_F_NOPREFIXROUTE = 0x200
+- IFA_F_OPTIMISTIC = 0x4
+- IFA_F_PERMANENT = 0x80
+- IFA_F_SECONDARY = 0x1
+- IFA_F_STABLE_PRIVACY = 0x800
+- IFA_F_TEMPORARY = 0x1
+- IFA_F_TENTATIVE = 0x40
+- IFA_MAX = 0x8
+- IFF_ALLMULTI = 0x200
+- IFF_ATTACH_QUEUE = 0x200
+- IFF_AUTOMEDIA = 0x4000
+- IFF_BROADCAST = 0x2
+- IFF_DEBUG = 0x4
+- IFF_DETACH_QUEUE = 0x400
+- IFF_DORMANT = 0x20000
+- IFF_DYNAMIC = 0x8000
+- IFF_ECHO = 0x40000
+- IFF_LOOPBACK = 0x8
+- IFF_LOWER_UP = 0x10000
+- IFF_MASTER = 0x400
+- IFF_MULTICAST = 0x1000
+- IFF_MULTI_QUEUE = 0x100
+- IFF_NOARP = 0x80
+- IFF_NOFILTER = 0x1000
+- IFF_NOTRAILERS = 0x20
+- IFF_NO_PI = 0x1000
+- IFF_ONE_QUEUE = 0x2000
+- IFF_PERSIST = 0x800
+- IFF_POINTOPOINT = 0x10
+- IFF_PORTSEL = 0x2000
+- IFF_PROMISC = 0x100
+- IFF_RUNNING = 0x40
+- IFF_SLAVE = 0x800
+- IFF_TAP = 0x2
+- IFF_TUN = 0x1
+- IFF_TUN_EXCL = 0x8000
+- IFF_UP = 0x1
+- IFF_VNET_HDR = 0x4000
+- IFF_VOLATILE = 0x70c5a
+- IFNAMSIZ = 0x10
+- IGNBRK = 0x1
+- IGNCR = 0x80
+- IGNPAR = 0x4
+- IMAXBEL = 0x2000
+- INLCR = 0x40
+- INPCK = 0x10
+- IN_ACCESS = 0x1
+- IN_ALL_EVENTS = 0xfff
+- IN_ATTRIB = 0x4
+- IN_CLASSA_HOST = 0xffffff
+- IN_CLASSA_MAX = 0x80
+- IN_CLASSA_NET = 0xff000000
+- IN_CLASSA_NSHIFT = 0x18
+- IN_CLASSB_HOST = 0xffff
+- IN_CLASSB_MAX = 0x10000
+- IN_CLASSB_NET = 0xffff0000
+- IN_CLASSB_NSHIFT = 0x10
+- IN_CLASSC_HOST = 0xff
+- IN_CLASSC_NET = 0xffffff00
+- IN_CLASSC_NSHIFT = 0x8
+- IN_CLOEXEC = 0x80000
+- IN_CLOSE = 0x18
+- IN_CLOSE_NOWRITE = 0x10
+- IN_CLOSE_WRITE = 0x8
+- IN_CREATE = 0x100
+- IN_DELETE = 0x200
+- IN_DELETE_SELF = 0x400
+- IN_DONT_FOLLOW = 0x2000000
+- IN_EXCL_UNLINK = 0x4000000
+- IN_IGNORED = 0x8000
+- IN_ISDIR = 0x40000000
+- IN_LOOPBACKNET = 0x7f
+- IN_MASK_ADD = 0x20000000
+- IN_MODIFY = 0x2
+- IN_MOVE = 0xc0
+- IN_MOVED_FROM = 0x40
+- IN_MOVED_TO = 0x80
+- IN_MOVE_SELF = 0x800
+- IN_NONBLOCK = 0x80
+- IN_ONESHOT = 0x80000000
+- IN_ONLYDIR = 0x1000000
+- IN_OPEN = 0x20
+- IN_Q_OVERFLOW = 0x4000
+- IN_UNMOUNT = 0x2000
+- IPPROTO_AH = 0x33
+- IPPROTO_BEETPH = 0x5e
+- IPPROTO_COMP = 0x6c
+- IPPROTO_DCCP = 0x21
+- IPPROTO_DSTOPTS = 0x3c
+- IPPROTO_EGP = 0x8
+- IPPROTO_ENCAP = 0x62
+- IPPROTO_ESP = 0x32
+- IPPROTO_FRAGMENT = 0x2c
+- IPPROTO_GRE = 0x2f
+- IPPROTO_HOPOPTS = 0x0
+- IPPROTO_ICMP = 0x1
+- IPPROTO_ICMPV6 = 0x3a
+- IPPROTO_IDP = 0x16
+- IPPROTO_IGMP = 0x2
+- IPPROTO_IP = 0x0
+- IPPROTO_IPIP = 0x4
+- IPPROTO_IPV6 = 0x29
+- IPPROTO_MH = 0x87
+- IPPROTO_MPLS = 0x89
+- IPPROTO_MTP = 0x5c
+- IPPROTO_NONE = 0x3b
+- IPPROTO_PIM = 0x67
+- IPPROTO_PUP = 0xc
+- IPPROTO_RAW = 0xff
+- IPPROTO_ROUTING = 0x2b
+- IPPROTO_RSVP = 0x2e
+- IPPROTO_SCTP = 0x84
+- IPPROTO_TCP = 0x6
+- IPPROTO_TP = 0x1d
+- IPPROTO_UDP = 0x11
+- IPPROTO_UDPLITE = 0x88
+- IPV6_2292DSTOPTS = 0x4
+- IPV6_2292HOPLIMIT = 0x8
+- IPV6_2292HOPOPTS = 0x3
+- IPV6_2292PKTINFO = 0x2
+- IPV6_2292PKTOPTIONS = 0x6
+- IPV6_2292RTHDR = 0x5
+- IPV6_ADDRFORM = 0x1
+- IPV6_ADD_MEMBERSHIP = 0x14
+- IPV6_AUTHHDR = 0xa
+- IPV6_CHECKSUM = 0x7
+- IPV6_DONTFRAG = 0x3e
+- IPV6_DROP_MEMBERSHIP = 0x15
+- IPV6_DSTOPTS = 0x3b
+- IPV6_HDRINCL = 0x24
+- IPV6_HOPLIMIT = 0x34
+- IPV6_HOPOPTS = 0x36
+- IPV6_IPSEC_POLICY = 0x22
+- IPV6_JOIN_ANYCAST = 0x1b
+- IPV6_JOIN_GROUP = 0x14
+- IPV6_LEAVE_ANYCAST = 0x1c
+- IPV6_LEAVE_GROUP = 0x15
+- IPV6_MTU = 0x18
+- IPV6_MTU_DISCOVER = 0x17
+- IPV6_MULTICAST_HOPS = 0x12
+- IPV6_MULTICAST_IF = 0x11
+- IPV6_MULTICAST_LOOP = 0x13
+- IPV6_NEXTHOP = 0x9
+- IPV6_PATHMTU = 0x3d
+- IPV6_PKTINFO = 0x32
+- IPV6_PMTUDISC_DO = 0x2
+- IPV6_PMTUDISC_DONT = 0x0
+- IPV6_PMTUDISC_INTERFACE = 0x4
+- IPV6_PMTUDISC_OMIT = 0x5
+- IPV6_PMTUDISC_PROBE = 0x3
+- IPV6_PMTUDISC_WANT = 0x1
+- IPV6_RECVDSTOPTS = 0x3a
+- IPV6_RECVERR = 0x19
+- IPV6_RECVHOPLIMIT = 0x33
+- IPV6_RECVHOPOPTS = 0x35
+- IPV6_RECVPATHMTU = 0x3c
+- IPV6_RECVPKTINFO = 0x31
+- IPV6_RECVRTHDR = 0x38
+- IPV6_RECVTCLASS = 0x42
+- IPV6_ROUTER_ALERT = 0x16
+- IPV6_RTHDR = 0x39
+- IPV6_RTHDRDSTOPTS = 0x37
+- IPV6_RTHDR_LOOSE = 0x0
+- IPV6_RTHDR_STRICT = 0x1
+- IPV6_RTHDR_TYPE_0 = 0x0
+- IPV6_RXDSTOPTS = 0x3b
+- IPV6_RXHOPOPTS = 0x36
+- IPV6_TCLASS = 0x43
+- IPV6_UNICAST_HOPS = 0x10
+- IPV6_V6ONLY = 0x1a
+- IPV6_XFRM_POLICY = 0x23
+- IP_ADD_MEMBERSHIP = 0x23
+- IP_ADD_SOURCE_MEMBERSHIP = 0x27
+- IP_BIND_ADDRESS_NO_PORT = 0x18
+- IP_BLOCK_SOURCE = 0x26
+- IP_CHECKSUM = 0x17
+- IP_DEFAULT_MULTICAST_LOOP = 0x1
+- IP_DEFAULT_MULTICAST_TTL = 0x1
+- IP_DF = 0x4000
+- IP_DROP_MEMBERSHIP = 0x24
+- IP_DROP_SOURCE_MEMBERSHIP = 0x28
+- IP_FREEBIND = 0xf
+- IP_HDRINCL = 0x3
+- IP_IPSEC_POLICY = 0x10
+- IP_MAXPACKET = 0xffff
+- IP_MAX_MEMBERSHIPS = 0x14
+- IP_MF = 0x2000
+- IP_MINTTL = 0x15
+- IP_MSFILTER = 0x29
+- IP_MSS = 0x240
+- IP_MTU = 0xe
+- IP_MTU_DISCOVER = 0xa
+- IP_MULTICAST_ALL = 0x31
+- IP_MULTICAST_IF = 0x20
+- IP_MULTICAST_LOOP = 0x22
+- IP_MULTICAST_TTL = 0x21
+- IP_NODEFRAG = 0x16
+- IP_OFFMASK = 0x1fff
+- IP_OPTIONS = 0x4
+- IP_ORIGDSTADDR = 0x14
+- IP_PASSSEC = 0x12
+- IP_PKTINFO = 0x8
+- IP_PKTOPTIONS = 0x9
+- IP_PMTUDISC = 0xa
+- IP_PMTUDISC_DO = 0x2
+- IP_PMTUDISC_DONT = 0x0
+- IP_PMTUDISC_INTERFACE = 0x4
+- IP_PMTUDISC_OMIT = 0x5
+- IP_PMTUDISC_PROBE = 0x3
+- IP_PMTUDISC_WANT = 0x1
+- IP_RECVERR = 0xb
+- IP_RECVOPTS = 0x6
+- IP_RECVORIGDSTADDR = 0x14
+- IP_RECVRETOPTS = 0x7
+- IP_RECVTOS = 0xd
+- IP_RECVTTL = 0xc
+- IP_RETOPTS = 0x7
+- IP_RF = 0x8000
+- IP_ROUTER_ALERT = 0x5
+- IP_TOS = 0x1
+- IP_TRANSPARENT = 0x13
+- IP_TTL = 0x2
+- IP_UNBLOCK_SOURCE = 0x25
+- IP_UNICAST_IF = 0x32
+- IP_XFRM_POLICY = 0x11
+- ISIG = 0x1
+- ISTRIP = 0x20
+- IUCLC = 0x200
+- IUTF8 = 0x4000
+- IXANY = 0x800
+- IXOFF = 0x1000
+- IXON = 0x400
+- KEYCTL_ASSUME_AUTHORITY = 0x10
+- KEYCTL_CHOWN = 0x4
+- KEYCTL_CLEAR = 0x7
+- KEYCTL_DESCRIBE = 0x6
+- KEYCTL_DH_COMPUTE = 0x17
+- KEYCTL_GET_KEYRING_ID = 0x0
+- KEYCTL_GET_PERSISTENT = 0x16
+- KEYCTL_GET_SECURITY = 0x11
+- KEYCTL_INSTANTIATE = 0xc
+- KEYCTL_INSTANTIATE_IOV = 0x14
+- KEYCTL_INVALIDATE = 0x15
+- KEYCTL_JOIN_SESSION_KEYRING = 0x1
+- KEYCTL_LINK = 0x8
+- KEYCTL_NEGATE = 0xd
+- KEYCTL_READ = 0xb
+- KEYCTL_REJECT = 0x13
+- KEYCTL_REVOKE = 0x3
+- KEYCTL_SEARCH = 0xa
+- KEYCTL_SESSION_TO_PARENT = 0x12
+- KEYCTL_SETPERM = 0x5
+- KEYCTL_SET_REQKEY_KEYRING = 0xe
+- KEYCTL_SET_TIMEOUT = 0xf
+- KEYCTL_UNLINK = 0x9
+- KEYCTL_UPDATE = 0x2
+- KEY_REQKEY_DEFL_DEFAULT = 0x0
+- KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6
+- KEY_REQKEY_DEFL_NO_CHANGE = -0x1
+- KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2
+- KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7
+- KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3
+- KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1
+- KEY_REQKEY_DEFL_USER_KEYRING = 0x4
+- KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
+- KEY_SPEC_GROUP_KEYRING = -0x6
+- KEY_SPEC_PROCESS_KEYRING = -0x2
+- KEY_SPEC_REQKEY_AUTH_KEY = -0x7
+- KEY_SPEC_REQUESTOR_KEYRING = -0x8
+- KEY_SPEC_SESSION_KEYRING = -0x3
+- KEY_SPEC_THREAD_KEYRING = -0x1
+- KEY_SPEC_USER_KEYRING = -0x4
+- KEY_SPEC_USER_SESSION_KEYRING = -0x5
+- LINUX_REBOOT_CMD_CAD_OFF = 0x0
+- LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
+- LINUX_REBOOT_CMD_HALT = 0xcdef0123
+- LINUX_REBOOT_CMD_KEXEC = 0x45584543
+- LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
+- LINUX_REBOOT_CMD_RESTART = 0x1234567
+- LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
+- LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
+- LINUX_REBOOT_MAGIC1 = 0xfee1dead
+- LINUX_REBOOT_MAGIC2 = 0x28121969
+- LOCK_EX = 0x2
+- LOCK_NB = 0x4
+- LOCK_SH = 0x1
+- LOCK_UN = 0x8
+- MADV_DODUMP = 0x11
+- MADV_DOFORK = 0xb
+- MADV_DONTDUMP = 0x10
+- MADV_DONTFORK = 0xa
+- MADV_DONTNEED = 0x4
+- MADV_FREE = 0x8
+- MADV_HUGEPAGE = 0xe
+- MADV_HWPOISON = 0x64
+- MADV_MERGEABLE = 0xc
+- MADV_NOHUGEPAGE = 0xf
+- MADV_NORMAL = 0x0
+- MADV_RANDOM = 0x1
+- MADV_REMOVE = 0x9
+- MADV_SEQUENTIAL = 0x2
+- MADV_UNMERGEABLE = 0xd
+- MADV_WILLNEED = 0x3
+- MAP_ANON = 0x800
+- MAP_ANONYMOUS = 0x800
+- MAP_DENYWRITE = 0x2000
+- MAP_EXECUTABLE = 0x4000
+- MAP_FILE = 0x0
+- MAP_FIXED = 0x10
+- MAP_GROWSDOWN = 0x1000
+- MAP_HUGETLB = 0x80000
+- MAP_HUGE_MASK = 0x3f
+- MAP_HUGE_SHIFT = 0x1a
+- MAP_LOCKED = 0x8000
+- MAP_NONBLOCK = 0x20000
+- MAP_NORESERVE = 0x400
+- MAP_POPULATE = 0x10000
+- MAP_PRIVATE = 0x2
+- MAP_RENAME = 0x800
+- MAP_SHARED = 0x1
+- MAP_STACK = 0x40000
+- MAP_TYPE = 0xf
+- MCL_CURRENT = 0x1
+- MCL_FUTURE = 0x2
+- MCL_ONFAULT = 0x4
+- MNT_DETACH = 0x2
+- MNT_EXPIRE = 0x4
+- MNT_FORCE = 0x1
+- MSG_BATCH = 0x40000
+- MSG_CMSG_CLOEXEC = 0x40000000
+- MSG_CONFIRM = 0x800
+- MSG_CTRUNC = 0x8
+- MSG_DONTROUTE = 0x4
+- MSG_DONTWAIT = 0x40
+- MSG_EOR = 0x80
+- MSG_ERRQUEUE = 0x2000
+- MSG_FASTOPEN = 0x20000000
+- MSG_FIN = 0x200
+- MSG_MORE = 0x8000
+- MSG_NOSIGNAL = 0x4000
+- MSG_OOB = 0x1
+- MSG_PEEK = 0x2
+- MSG_PROXY = 0x10
+- MSG_RST = 0x1000
+- MSG_SYN = 0x400
+- MSG_TRUNC = 0x20
+- MSG_TRYHARD = 0x4
+- MSG_WAITALL = 0x100
+- MSG_WAITFORONE = 0x10000
+- MS_ACTIVE = 0x40000000
+- MS_ASYNC = 0x1
+- MS_BIND = 0x1000
+- MS_BORN = 0x20000000
+- MS_DIRSYNC = 0x80
+- MS_INVALIDATE = 0x2
+- MS_I_VERSION = 0x800000
+- MS_KERNMOUNT = 0x400000
+- MS_LAZYTIME = 0x2000000
+- MS_MANDLOCK = 0x40
+- MS_MGC_MSK = 0xffff0000
+- MS_MGC_VAL = 0xc0ed0000
+- MS_MOVE = 0x2000
+- MS_NOATIME = 0x400
+- MS_NODEV = 0x4
+- MS_NODIRATIME = 0x800
+- MS_NOEXEC = 0x8
+- MS_NOREMOTELOCK = 0x8000000
+- MS_NOSEC = 0x10000000
+- MS_NOSUID = 0x2
+- MS_NOUSER = -0x80000000
+- MS_POSIXACL = 0x10000
+- MS_PRIVATE = 0x40000
+- MS_RDONLY = 0x1
+- MS_REC = 0x4000
+- MS_RELATIME = 0x200000
+- MS_REMOUNT = 0x20
+- MS_RMT_MASK = 0x2800051
+- MS_SHARED = 0x100000
+- MS_SILENT = 0x8000
+- MS_SLAVE = 0x80000
+- MS_STRICTATIME = 0x1000000
+- MS_SYNC = 0x4
+- MS_SYNCHRONOUS = 0x10
+- MS_UNBINDABLE = 0x20000
+- MS_VERBOSE = 0x8000
+- NAME_MAX = 0xff
+- NETLINK_ADD_MEMBERSHIP = 0x1
+- NETLINK_AUDIT = 0x9
+- NETLINK_BROADCAST_ERROR = 0x4
+- NETLINK_CAP_ACK = 0xa
+- NETLINK_CONNECTOR = 0xb
+- NETLINK_CRYPTO = 0x15
+- NETLINK_DNRTMSG = 0xe
+- NETLINK_DROP_MEMBERSHIP = 0x2
+- NETLINK_ECRYPTFS = 0x13
+- NETLINK_FIB_LOOKUP = 0xa
+- NETLINK_FIREWALL = 0x3
+- NETLINK_GENERIC = 0x10
+- NETLINK_INET_DIAG = 0x4
+- NETLINK_IP6_FW = 0xd
+- NETLINK_ISCSI = 0x8
+- NETLINK_KOBJECT_UEVENT = 0xf
+- NETLINK_LISTEN_ALL_NSID = 0x8
+- NETLINK_LIST_MEMBERSHIPS = 0x9
+- NETLINK_NETFILTER = 0xc
+- NETLINK_NFLOG = 0x5
+- NETLINK_NO_ENOBUFS = 0x5
+- NETLINK_PKTINFO = 0x3
+- NETLINK_RDMA = 0x14
+- NETLINK_ROUTE = 0x0
+- NETLINK_RX_RING = 0x6
+- NETLINK_SCSITRANSPORT = 0x12
+- NETLINK_SELINUX = 0x7
+- NETLINK_SOCK_DIAG = 0x4
+- NETLINK_TX_RING = 0x7
+- NETLINK_UNUSED = 0x1
+- NETLINK_USERSOCK = 0x2
+- NETLINK_XFRM = 0x6
+- NL0 = 0x0
+- NL1 = 0x100
+- NLA_ALIGNTO = 0x4
+- NLA_F_NESTED = 0x8000
+- NLA_F_NET_BYTEORDER = 0x4000
+- NLA_HDRLEN = 0x4
+- NLDLY = 0x100
+- NLMSG_ALIGNTO = 0x4
+- NLMSG_DONE = 0x3
+- NLMSG_ERROR = 0x2
+- NLMSG_HDRLEN = 0x10
+- NLMSG_MIN_TYPE = 0x10
+- NLMSG_NOOP = 0x1
+- NLMSG_OVERRUN = 0x4
+- NLM_F_ACK = 0x4
+- NLM_F_APPEND = 0x800
+- NLM_F_ATOMIC = 0x400
+- NLM_F_CREATE = 0x400
+- NLM_F_DUMP = 0x300
+- NLM_F_DUMP_FILTERED = 0x20
+- NLM_F_DUMP_INTR = 0x10
+- NLM_F_ECHO = 0x8
+- NLM_F_EXCL = 0x200
+- NLM_F_MATCH = 0x200
+- NLM_F_MULTI = 0x2
+- NLM_F_REPLACE = 0x100
+- NLM_F_REQUEST = 0x1
+- NLM_F_ROOT = 0x100
+- NOFLSH = 0x80
+- OCRNL = 0x8
+- OFDEL = 0x80
+- OFILL = 0x40
+- OLCUC = 0x2
+- ONLCR = 0x4
+- ONLRET = 0x20
+- ONOCR = 0x10
+- OPOST = 0x1
+- O_ACCMODE = 0x3
+- O_APPEND = 0x8
+- O_ASYNC = 0x1000
+- O_CLOEXEC = 0x80000
+- O_CREAT = 0x100
+- O_DIRECT = 0x8000
+- O_DIRECTORY = 0x10000
+- O_DSYNC = 0x10
+- O_EXCL = 0x400
+- O_FSYNC = 0x4010
+- O_LARGEFILE = 0x0
+- O_NDELAY = 0x80
+- O_NOATIME = 0x40000
+- O_NOCTTY = 0x800
+- O_NOFOLLOW = 0x20000
+- O_NONBLOCK = 0x80
+- O_PATH = 0x200000
+- O_RDONLY = 0x0
+- O_RDWR = 0x2
+- O_RSYNC = 0x4010
+- O_SYNC = 0x4010
+- O_TMPFILE = 0x410000
+- O_TRUNC = 0x200
+- O_WRONLY = 0x1
+- PACKET_ADD_MEMBERSHIP = 0x1
+- PACKET_AUXDATA = 0x8
+- PACKET_BROADCAST = 0x1
+- PACKET_COPY_THRESH = 0x7
+- PACKET_DROP_MEMBERSHIP = 0x2
+- PACKET_FANOUT = 0x12
+- PACKET_FANOUT_CBPF = 0x6
+- PACKET_FANOUT_CPU = 0x2
+- PACKET_FANOUT_DATA = 0x16
+- PACKET_FANOUT_EBPF = 0x7
+- PACKET_FANOUT_FLAG_DEFRAG = 0x8000
+- PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
+- PACKET_FANOUT_HASH = 0x0
+- PACKET_FANOUT_LB = 0x1
+- PACKET_FANOUT_QM = 0x5
+- PACKET_FANOUT_RND = 0x4
+- PACKET_FANOUT_ROLLOVER = 0x3
+- PACKET_FASTROUTE = 0x6
+- PACKET_HDRLEN = 0xb
+- PACKET_HOST = 0x0
+- PACKET_KERNEL = 0x7
+- PACKET_LOOPBACK = 0x5
+- PACKET_LOSS = 0xe
+- PACKET_MR_ALLMULTI = 0x2
+- PACKET_MR_MULTICAST = 0x0
+- PACKET_MR_PROMISC = 0x1
+- PACKET_MR_UNICAST = 0x3
+- PACKET_MULTICAST = 0x2
+- PACKET_ORIGDEV = 0x9
+- PACKET_OTHERHOST = 0x3
+- PACKET_OUTGOING = 0x4
+- PACKET_QDISC_BYPASS = 0x14
+- PACKET_RECV_OUTPUT = 0x3
+- PACKET_RESERVE = 0xc
+- PACKET_ROLLOVER_STATS = 0x15
+- PACKET_RX_RING = 0x5
+- PACKET_STATISTICS = 0x6
+- PACKET_TIMESTAMP = 0x11
+- PACKET_TX_HAS_OFF = 0x13
+- PACKET_TX_RING = 0xd
+- PACKET_TX_TIMESTAMP = 0x10
+- PACKET_USER = 0x6
+- PACKET_VERSION = 0xa
+- PACKET_VNET_HDR = 0xf
+- PARENB = 0x100
+- PARITY_CRC16_PR0 = 0x2
+- PARITY_CRC16_PR0_CCITT = 0x4
+- PARITY_CRC16_PR1 = 0x3
+- PARITY_CRC16_PR1_CCITT = 0x5
+- PARITY_CRC32_PR0_CCITT = 0x6
+- PARITY_CRC32_PR1_CCITT = 0x7
+- PARITY_DEFAULT = 0x0
+- PARITY_NONE = 0x1
+- PARMRK = 0x8
+- PARODD = 0x200
+- PENDIN = 0x4000
+- PERF_EVENT_IOC_DISABLE = 0x20002401
+- PERF_EVENT_IOC_ENABLE = 0x20002400
+- PERF_EVENT_IOC_ID = 0x40082407
+- PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409
+- PERF_EVENT_IOC_PERIOD = 0x80082404
+- PERF_EVENT_IOC_REFRESH = 0x20002402
+- PERF_EVENT_IOC_RESET = 0x20002403
+- PERF_EVENT_IOC_SET_BPF = 0x80042408
+- PERF_EVENT_IOC_SET_FILTER = 0x80082406
+- PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
+- PRIO_PGRP = 0x1
+- PRIO_PROCESS = 0x0
+- PRIO_USER = 0x2
+- PROT_EXEC = 0x4
+- PROT_GROWSDOWN = 0x1000000
+- PROT_GROWSUP = 0x2000000
+- PROT_NONE = 0x0
+- PROT_READ = 0x1
+- PROT_WRITE = 0x2
+- PR_CAPBSET_DROP = 0x18
+- PR_CAPBSET_READ = 0x17
+- PR_CAP_AMBIENT = 0x2f
+- PR_CAP_AMBIENT_CLEAR_ALL = 0x4
+- PR_CAP_AMBIENT_IS_SET = 0x1
+- PR_CAP_AMBIENT_LOWER = 0x3
+- PR_CAP_AMBIENT_RAISE = 0x2
+- PR_ENDIAN_BIG = 0x0
+- PR_ENDIAN_LITTLE = 0x1
+- PR_ENDIAN_PPC_LITTLE = 0x2
+- PR_FPEMU_NOPRINT = 0x1
+- PR_FPEMU_SIGFPE = 0x2
+- PR_FP_EXC_ASYNC = 0x2
+- PR_FP_EXC_DISABLED = 0x0
+- PR_FP_EXC_DIV = 0x10000
+- PR_FP_EXC_INV = 0x100000
+- PR_FP_EXC_NONRECOV = 0x1
+- PR_FP_EXC_OVF = 0x20000
+- PR_FP_EXC_PRECISE = 0x3
+- PR_FP_EXC_RES = 0x80000
+- PR_FP_EXC_SW_ENABLE = 0x80
+- PR_FP_EXC_UND = 0x40000
+- PR_FP_MODE_FR = 0x1
+- PR_FP_MODE_FRE = 0x2
+- PR_GET_CHILD_SUBREAPER = 0x25
+- PR_GET_DUMPABLE = 0x3
+- PR_GET_ENDIAN = 0x13
+- PR_GET_FPEMU = 0x9
+- PR_GET_FPEXC = 0xb
+- PR_GET_FP_MODE = 0x2e
+- PR_GET_KEEPCAPS = 0x7
+- PR_GET_NAME = 0x10
+- PR_GET_NO_NEW_PRIVS = 0x27
+- PR_GET_PDEATHSIG = 0x2
+- PR_GET_SECCOMP = 0x15
+- PR_GET_SECUREBITS = 0x1b
+- PR_GET_THP_DISABLE = 0x2a
+- PR_GET_TID_ADDRESS = 0x28
+- PR_GET_TIMERSLACK = 0x1e
+- PR_GET_TIMING = 0xd
+- PR_GET_TSC = 0x19
+- PR_GET_UNALIGN = 0x5
+- PR_MCE_KILL = 0x21
+- PR_MCE_KILL_CLEAR = 0x0
+- PR_MCE_KILL_DEFAULT = 0x2
+- PR_MCE_KILL_EARLY = 0x1
+- PR_MCE_KILL_GET = 0x22
+- PR_MCE_KILL_LATE = 0x0
+- PR_MCE_KILL_SET = 0x1
+- PR_MPX_DISABLE_MANAGEMENT = 0x2c
+- PR_MPX_ENABLE_MANAGEMENT = 0x2b
+- PR_SET_CHILD_SUBREAPER = 0x24
+- PR_SET_DUMPABLE = 0x4
+- PR_SET_ENDIAN = 0x14
+- PR_SET_FPEMU = 0xa
+- PR_SET_FPEXC = 0xc
+- PR_SET_FP_MODE = 0x2d
+- PR_SET_KEEPCAPS = 0x8
+- PR_SET_MM = 0x23
+- PR_SET_MM_ARG_END = 0x9
+- PR_SET_MM_ARG_START = 0x8
+- PR_SET_MM_AUXV = 0xc
+- PR_SET_MM_BRK = 0x7
+- PR_SET_MM_END_CODE = 0x2
+- PR_SET_MM_END_DATA = 0x4
+- PR_SET_MM_ENV_END = 0xb
+- PR_SET_MM_ENV_START = 0xa
+- PR_SET_MM_EXE_FILE = 0xd
+- PR_SET_MM_MAP = 0xe
+- PR_SET_MM_MAP_SIZE = 0xf
+- PR_SET_MM_START_BRK = 0x6
+- PR_SET_MM_START_CODE = 0x1
+- PR_SET_MM_START_DATA = 0x3
+- PR_SET_MM_START_STACK = 0x5
+- PR_SET_NAME = 0xf
+- PR_SET_NO_NEW_PRIVS = 0x26
+- PR_SET_PDEATHSIG = 0x1
+- PR_SET_PTRACER = 0x59616d61
+- PR_SET_PTRACER_ANY = -0x1
+- PR_SET_SECCOMP = 0x16
+- PR_SET_SECUREBITS = 0x1c
+- PR_SET_THP_DISABLE = 0x29
+- PR_SET_TIMERSLACK = 0x1d
+- PR_SET_TIMING = 0xe
+- PR_SET_TSC = 0x1a
+- PR_SET_UNALIGN = 0x6
+- PR_TASK_PERF_EVENTS_DISABLE = 0x1f
+- PR_TASK_PERF_EVENTS_ENABLE = 0x20
+- PR_TIMING_STATISTICAL = 0x0
+- PR_TIMING_TIMESTAMP = 0x1
+- PR_TSC_ENABLE = 0x1
+- PR_TSC_SIGSEGV = 0x2
+- PR_UNALIGN_NOPRINT = 0x1
+- PR_UNALIGN_SIGBUS = 0x2
+- PTRACE_ATTACH = 0x10
+- PTRACE_CONT = 0x7
+- PTRACE_DETACH = 0x11
+- PTRACE_EVENT_CLONE = 0x3
+- PTRACE_EVENT_EXEC = 0x4
+- PTRACE_EVENT_EXIT = 0x6
+- PTRACE_EVENT_FORK = 0x1
+- PTRACE_EVENT_SECCOMP = 0x7
+- PTRACE_EVENT_STOP = 0x80
+- PTRACE_EVENT_VFORK = 0x2
+- PTRACE_EVENT_VFORK_DONE = 0x5
+- PTRACE_GETEVENTMSG = 0x4201
+- PTRACE_GETFPREGS = 0xe
+- PTRACE_GETREGS = 0xc
+- PTRACE_GETREGSET = 0x4204
+- PTRACE_GETSIGINFO = 0x4202
+- PTRACE_GETSIGMASK = 0x420a
+- PTRACE_GET_THREAD_AREA = 0x19
+- PTRACE_GET_THREAD_AREA_3264 = 0xc4
+- PTRACE_GET_WATCH_REGS = 0xd0
+- PTRACE_INTERRUPT = 0x4207
+- PTRACE_KILL = 0x8
+- PTRACE_LISTEN = 0x4208
+- PTRACE_OLDSETOPTIONS = 0x15
+- PTRACE_O_EXITKILL = 0x100000
+- PTRACE_O_MASK = 0x3000ff
+- PTRACE_O_SUSPEND_SECCOMP = 0x200000
+- PTRACE_O_TRACECLONE = 0x8
+- PTRACE_O_TRACEEXEC = 0x10
+- PTRACE_O_TRACEEXIT = 0x40
+- PTRACE_O_TRACEFORK = 0x2
+- PTRACE_O_TRACESECCOMP = 0x80
+- PTRACE_O_TRACESYSGOOD = 0x1
+- PTRACE_O_TRACEVFORK = 0x4
+- PTRACE_O_TRACEVFORKDONE = 0x20
+- PTRACE_PEEKDATA = 0x2
+- PTRACE_PEEKDATA_3264 = 0xc1
+- PTRACE_PEEKSIGINFO = 0x4209
+- PTRACE_PEEKSIGINFO_SHARED = 0x1
+- PTRACE_PEEKTEXT = 0x1
+- PTRACE_PEEKTEXT_3264 = 0xc0
+- PTRACE_PEEKUSR = 0x3
+- PTRACE_POKEDATA = 0x5
+- PTRACE_POKEDATA_3264 = 0xc3
+- PTRACE_POKETEXT = 0x4
+- PTRACE_POKETEXT_3264 = 0xc2
+- PTRACE_POKEUSR = 0x6
+- PTRACE_SECCOMP_GET_FILTER = 0x420c
+- PTRACE_SEIZE = 0x4206
+- PTRACE_SETFPREGS = 0xf
+- PTRACE_SETOPTIONS = 0x4200
+- PTRACE_SETREGS = 0xd
+- PTRACE_SETREGSET = 0x4205
+- PTRACE_SETSIGINFO = 0x4203
+- PTRACE_SETSIGMASK = 0x420b
+- PTRACE_SET_THREAD_AREA = 0x1a
+- PTRACE_SET_WATCH_REGS = 0xd1
+- PTRACE_SINGLESTEP = 0x9
+- PTRACE_SYSCALL = 0x18
+- PTRACE_TRACEME = 0x0
+- RLIMIT_AS = 0x6
+- RLIMIT_CORE = 0x4
+- RLIMIT_CPU = 0x0
+- RLIMIT_DATA = 0x2
+- RLIMIT_FSIZE = 0x1
+- RLIMIT_LOCKS = 0xa
+- RLIMIT_MEMLOCK = 0x9
+- RLIMIT_MSGQUEUE = 0xc
+- RLIMIT_NICE = 0xd
+- RLIMIT_NOFILE = 0x5
+- RLIMIT_NPROC = 0x8
+- RLIMIT_RSS = 0x7
+- RLIMIT_RTPRIO = 0xe
+- RLIMIT_RTTIME = 0xf
+- RLIMIT_SIGPENDING = 0xb
+- RLIMIT_STACK = 0x3
+- RLIM_INFINITY = -0x1
+- RTAX_ADVMSS = 0x8
+- RTAX_CC_ALGO = 0x10
+- RTAX_CWND = 0x7
+- RTAX_FEATURES = 0xc
+- RTAX_FEATURE_ALLFRAG = 0x8
+- RTAX_FEATURE_ECN = 0x1
+- RTAX_FEATURE_MASK = 0xf
+- RTAX_FEATURE_SACK = 0x2
+- RTAX_FEATURE_TIMESTAMP = 0x4
+- RTAX_HOPLIMIT = 0xa
+- RTAX_INITCWND = 0xb
+- RTAX_INITRWND = 0xe
+- RTAX_LOCK = 0x1
+- RTAX_MAX = 0x10
+- RTAX_MTU = 0x2
+- RTAX_QUICKACK = 0xf
+- RTAX_REORDERING = 0x9
+- RTAX_RTO_MIN = 0xd
+- RTAX_RTT = 0x4
+- RTAX_RTTVAR = 0x5
+- RTAX_SSTHRESH = 0x6
+- RTAX_UNSPEC = 0x0
+- RTAX_WINDOW = 0x3
+- RTA_ALIGNTO = 0x4
+- RTA_MAX = 0x19
+- RTCF_DIRECTSRC = 0x4000000
+- RTCF_DOREDIRECT = 0x1000000
+- RTCF_LOG = 0x2000000
+- RTCF_MASQ = 0x400000
+- RTCF_NAT = 0x800000
+- RTCF_VALVE = 0x200000
+- RTF_ADDRCLASSMASK = 0xf8000000
+- RTF_ADDRCONF = 0x40000
+- RTF_ALLONLINK = 0x20000
+- RTF_BROADCAST = 0x10000000
+- RTF_CACHE = 0x1000000
+- RTF_DEFAULT = 0x10000
+- RTF_DYNAMIC = 0x10
+- RTF_FLOW = 0x2000000
+- RTF_GATEWAY = 0x2
+- RTF_HOST = 0x4
+- RTF_INTERFACE = 0x40000000
+- RTF_IRTT = 0x100
+- RTF_LINKRT = 0x100000
+- RTF_LOCAL = 0x80000000
+- RTF_MODIFIED = 0x20
+- RTF_MSS = 0x40
+- RTF_MTU = 0x40
+- RTF_MULTICAST = 0x20000000
+- RTF_NAT = 0x8000000
+- RTF_NOFORWARD = 0x1000
+- RTF_NONEXTHOP = 0x200000
+- RTF_NOPMTUDISC = 0x4000
+- RTF_POLICY = 0x4000000
+- RTF_REINSTATE = 0x8
+- RTF_REJECT = 0x200
+- RTF_STATIC = 0x400
+- RTF_THROW = 0x2000
+- RTF_UP = 0x1
+- RTF_WINDOW = 0x80
+- RTF_XRESOLVE = 0x800
+- RTM_BASE = 0x10
+- RTM_DELACTION = 0x31
+- RTM_DELADDR = 0x15
+- RTM_DELADDRLABEL = 0x49
+- RTM_DELLINK = 0x11
+- RTM_DELMDB = 0x55
+- RTM_DELNEIGH = 0x1d
+- RTM_DELNSID = 0x59
+- RTM_DELQDISC = 0x25
+- RTM_DELROUTE = 0x19
+- RTM_DELRULE = 0x21
+- RTM_DELTCLASS = 0x29
+- RTM_DELTFILTER = 0x2d
+- RTM_F_CLONED = 0x200
+- RTM_F_EQUALIZE = 0x400
+- RTM_F_LOOKUP_TABLE = 0x1000
+- RTM_F_NOTIFY = 0x100
+- RTM_F_PREFIX = 0x800
+- RTM_GETACTION = 0x32
+- RTM_GETADDR = 0x16
+- RTM_GETADDRLABEL = 0x4a
+- RTM_GETANYCAST = 0x3e
+- RTM_GETDCB = 0x4e
+- RTM_GETLINK = 0x12
+- RTM_GETMDB = 0x56
+- RTM_GETMULTICAST = 0x3a
+- RTM_GETNEIGH = 0x1e
+- RTM_GETNEIGHTBL = 0x42
+- RTM_GETNETCONF = 0x52
+- RTM_GETNSID = 0x5a
+- RTM_GETQDISC = 0x26
+- RTM_GETROUTE = 0x1a
+- RTM_GETRULE = 0x22
+- RTM_GETSTATS = 0x5e
+- RTM_GETTCLASS = 0x2a
+- RTM_GETTFILTER = 0x2e
+- RTM_MAX = 0x5f
+- RTM_NEWACTION = 0x30
+- RTM_NEWADDR = 0x14
+- RTM_NEWADDRLABEL = 0x48
+- RTM_NEWLINK = 0x10
+- RTM_NEWMDB = 0x54
+- RTM_NEWNDUSEROPT = 0x44
+- RTM_NEWNEIGH = 0x1c
+- RTM_NEWNEIGHTBL = 0x40
+- RTM_NEWNETCONF = 0x50
+- RTM_NEWNSID = 0x58
+- RTM_NEWPREFIX = 0x34
+- RTM_NEWQDISC = 0x24
+- RTM_NEWROUTE = 0x18
+- RTM_NEWRULE = 0x20
+- RTM_NEWSTATS = 0x5c
+- RTM_NEWTCLASS = 0x28
+- RTM_NEWTFILTER = 0x2c
+- RTM_NR_FAMILIES = 0x14
+- RTM_NR_MSGTYPES = 0x50
+- RTM_SETDCB = 0x4f
+- RTM_SETLINK = 0x13
+- RTM_SETNEIGHTBL = 0x43
+- RTNH_ALIGNTO = 0x4
+- RTNH_COMPARE_MASK = 0x19
+- RTNH_F_DEAD = 0x1
+- RTNH_F_LINKDOWN = 0x10
+- RTNH_F_OFFLOAD = 0x8
+- RTNH_F_ONLINK = 0x4
+- RTNH_F_PERVASIVE = 0x2
+- RTN_MAX = 0xb
+- RTPROT_BABEL = 0x2a
+- RTPROT_BIRD = 0xc
+- RTPROT_BOOT = 0x3
+- RTPROT_DHCP = 0x10
+- RTPROT_DNROUTED = 0xd
+- RTPROT_GATED = 0x8
+- RTPROT_KERNEL = 0x2
+- RTPROT_MROUTED = 0x11
+- RTPROT_MRT = 0xa
+- RTPROT_NTK = 0xf
+- RTPROT_RA = 0x9
+- RTPROT_REDIRECT = 0x1
+- RTPROT_STATIC = 0x4
+- RTPROT_UNSPEC = 0x0
+- RTPROT_XORP = 0xe
+- RTPROT_ZEBRA = 0xb
+- RT_CLASS_DEFAULT = 0xfd
+- RT_CLASS_LOCAL = 0xff
+- RT_CLASS_MAIN = 0xfe
+- RT_CLASS_MAX = 0xff
+- RT_CLASS_UNSPEC = 0x0
+- RUSAGE_CHILDREN = -0x1
+- RUSAGE_SELF = 0x0
+- RUSAGE_THREAD = 0x1
+- SCM_CREDENTIALS = 0x2
+- SCM_RIGHTS = 0x1
+- SCM_TIMESTAMP = 0x1d
+- SCM_TIMESTAMPING = 0x25
+- SCM_TIMESTAMPING_OPT_STATS = 0x36
+- SCM_TIMESTAMPNS = 0x23
+- SCM_WIFI_STATUS = 0x29
+- SECCOMP_MODE_DISABLED = 0x0
+- SECCOMP_MODE_FILTER = 0x2
+- SECCOMP_MODE_STRICT = 0x1
+- SHUT_RD = 0x0
+- SHUT_RDWR = 0x2
+- SHUT_WR = 0x1
+- SIOCADDDLCI = 0x8980
+- SIOCADDMULTI = 0x8931
+- SIOCADDRT = 0x890b
+- SIOCATMARK = 0x40047307
+- SIOCBONDCHANGEACTIVE = 0x8995
+- SIOCBONDENSLAVE = 0x8990
+- SIOCBONDINFOQUERY = 0x8994
+- SIOCBONDRELEASE = 0x8991
+- SIOCBONDSETHWADDR = 0x8992
+- SIOCBONDSLAVEINFOQUERY = 0x8993
+- SIOCBRADDBR = 0x89a0
+- SIOCBRADDIF = 0x89a2
+- SIOCBRDELBR = 0x89a1
+- SIOCBRDELIF = 0x89a3
+- SIOCDARP = 0x8953
+- SIOCDELDLCI = 0x8981
+- SIOCDELMULTI = 0x8932
+- SIOCDELRT = 0x890c
+- SIOCDEVPRIVATE = 0x89f0
+- SIOCDIFADDR = 0x8936
+- SIOCDRARP = 0x8960
+- SIOCETHTOOL = 0x8946
+- SIOCGARP = 0x8954
+- SIOCGHWTSTAMP = 0x89b1
+- SIOCGIFADDR = 0x8915
+- SIOCGIFBR = 0x8940
+- SIOCGIFBRDADDR = 0x8919
+- SIOCGIFCONF = 0x8912
+- SIOCGIFCOUNT = 0x8938
+- SIOCGIFDSTADDR = 0x8917
+- SIOCGIFENCAP = 0x8925
+- SIOCGIFFLAGS = 0x8913
+- SIOCGIFHWADDR = 0x8927
+- SIOCGIFINDEX = 0x8933
+- SIOCGIFMAP = 0x8970
+- SIOCGIFMEM = 0x891f
+- SIOCGIFMETRIC = 0x891d
+- SIOCGIFMTU = 0x8921
+- SIOCGIFNAME = 0x8910
+- SIOCGIFNETMASK = 0x891b
+- SIOCGIFPFLAGS = 0x8935
+- SIOCGIFSLAVE = 0x8929
+- SIOCGIFTXQLEN = 0x8942
+- SIOCGIFVLAN = 0x8982
+- SIOCGMIIPHY = 0x8947
+- SIOCGMIIREG = 0x8948
+- SIOCGPGRP = 0x40047309
+- SIOCGRARP = 0x8961
+- SIOCGSKNS = 0x894c
+- SIOCGSTAMP = 0x8906
+- SIOCGSTAMPNS = 0x8907
+- SIOCINQ = 0x467f
+- SIOCOUTQ = 0x7472
+- SIOCOUTQNSD = 0x894b
+- SIOCPROTOPRIVATE = 0x89e0
+- SIOCRTMSG = 0x890d
+- SIOCSARP = 0x8955
+- SIOCSHWTSTAMP = 0x89b0
+- SIOCSIFADDR = 0x8916
+- SIOCSIFBR = 0x8941
+- SIOCSIFBRDADDR = 0x891a
+- SIOCSIFDSTADDR = 0x8918
+- SIOCSIFENCAP = 0x8926
+- SIOCSIFFLAGS = 0x8914
+- SIOCSIFHWADDR = 0x8924
+- SIOCSIFHWBROADCAST = 0x8937
+- SIOCSIFLINK = 0x8911
+- SIOCSIFMAP = 0x8971
+- SIOCSIFMEM = 0x8920
+- SIOCSIFMETRIC = 0x891e
+- SIOCSIFMTU = 0x8922
+- SIOCSIFNAME = 0x8923
+- SIOCSIFNETMASK = 0x891c
+- SIOCSIFPFLAGS = 0x8934
+- SIOCSIFSLAVE = 0x8930
+- SIOCSIFTXQLEN = 0x8943
+- SIOCSIFVLAN = 0x8983
+- SIOCSMIIREG = 0x8949
+- SIOCSPGRP = 0x80047308
+- SIOCSRARP = 0x8962
+- SIOCWANDEV = 0x894a
+- SOCK_CLOEXEC = 0x80000
+- SOCK_DCCP = 0x6
+- SOCK_DGRAM = 0x1
+- SOCK_IOC_TYPE = 0x89
+- SOCK_NONBLOCK = 0x80
+- SOCK_PACKET = 0xa
+- SOCK_RAW = 0x3
+- SOCK_RDM = 0x4
+- SOCK_SEQPACKET = 0x5
+- SOCK_STREAM = 0x2
+- SOL_AAL = 0x109
+- SOL_ALG = 0x117
+- SOL_ATM = 0x108
+- SOL_CAIF = 0x116
+- SOL_CAN_BASE = 0x64
+- SOL_DCCP = 0x10d
+- SOL_DECNET = 0x105
+- SOL_ICMPV6 = 0x3a
+- SOL_IP = 0x0
+- SOL_IPV6 = 0x29
+- SOL_IRDA = 0x10a
+- SOL_IUCV = 0x115
+- SOL_KCM = 0x119
+- SOL_LLC = 0x10c
+- SOL_NETBEUI = 0x10b
+- SOL_NETLINK = 0x10e
+- SOL_NFC = 0x118
+- SOL_PACKET = 0x107
+- SOL_PNPIPE = 0x113
+- SOL_PPPOL2TP = 0x111
+- SOL_RAW = 0xff
+- SOL_RDS = 0x114
+- SOL_RXRPC = 0x110
+- SOL_SOCKET = 0xffff
+- SOL_TCP = 0x6
+- SOL_TIPC = 0x10f
+- SOL_X25 = 0x106
+- SOMAXCONN = 0x80
+- SO_ACCEPTCONN = 0x1009
+- SO_ATTACH_BPF = 0x32
+- SO_ATTACH_FILTER = 0x1a
+- SO_ATTACH_REUSEPORT_CBPF = 0x33
+- SO_ATTACH_REUSEPORT_EBPF = 0x34
+- SO_BINDTODEVICE = 0x19
+- SO_BPF_EXTENSIONS = 0x30
+- SO_BROADCAST = 0x20
+- SO_BSDCOMPAT = 0xe
+- SO_BUSY_POLL = 0x2e
+- SO_CNX_ADVICE = 0x35
+- SO_DEBUG = 0x1
+- SO_DETACH_BPF = 0x1b
+- SO_DETACH_FILTER = 0x1b
+- SO_DOMAIN = 0x1029
+- SO_DONTROUTE = 0x10
+- SO_ERROR = 0x1007
+- SO_GET_FILTER = 0x1a
+- SO_INCOMING_CPU = 0x31
+- SO_KEEPALIVE = 0x8
+- SO_LINGER = 0x80
+- SO_LOCK_FILTER = 0x2c
+- SO_MARK = 0x24
+- SO_MAX_PACING_RATE = 0x2f
+- SO_NOFCS = 0x2b
+- SO_NO_CHECK = 0xb
+- SO_OOBINLINE = 0x100
+- SO_PASSCRED = 0x11
+- SO_PASSSEC = 0x22
+- SO_PEEK_OFF = 0x2a
+- SO_PEERCRED = 0x12
+- SO_PEERNAME = 0x1c
+- SO_PEERSEC = 0x1e
+- SO_PRIORITY = 0xc
+- SO_PROTOCOL = 0x1028
+- SO_RCVBUF = 0x1002
+- SO_RCVBUFFORCE = 0x21
+- SO_RCVLOWAT = 0x1004
+- SO_RCVTIMEO = 0x1006
+- SO_REUSEADDR = 0x4
+- SO_REUSEPORT = 0x200
+- SO_RXQ_OVFL = 0x28
+- SO_SECURITY_AUTHENTICATION = 0x16
+- SO_SECURITY_ENCRYPTION_NETWORK = 0x18
+- SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
+- SO_SELECT_ERR_QUEUE = 0x2d
+- SO_SNDBUF = 0x1001
+- SO_SNDBUFFORCE = 0x1f
+- SO_SNDLOWAT = 0x1003
+- SO_SNDTIMEO = 0x1005
+- SO_STYLE = 0x1008
+- SO_TIMESTAMP = 0x1d
+- SO_TIMESTAMPING = 0x25
+- SO_TIMESTAMPNS = 0x23
+- SO_TYPE = 0x1008
+- SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
+- SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
+- SO_VM_SOCKETS_BUFFER_SIZE = 0x0
+- SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
+- SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
+- SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
+- SO_VM_SOCKETS_TRUSTED = 0x5
+- SO_WIFI_STATUS = 0x29
+- SPLICE_F_GIFT = 0x8
+- SPLICE_F_MORE = 0x4
+- SPLICE_F_MOVE = 0x1
+- SPLICE_F_NONBLOCK = 0x2
+- S_BLKSIZE = 0x200
+- S_IEXEC = 0x40
+- S_IFBLK = 0x6000
+- S_IFCHR = 0x2000
+- S_IFDIR = 0x4000
+- S_IFIFO = 0x1000
+- S_IFLNK = 0xa000
+- S_IFMT = 0xf000
+- S_IFREG = 0x8000
+- S_IFSOCK = 0xc000
+- S_IREAD = 0x100
+- S_IRGRP = 0x20
+- S_IROTH = 0x4
+- S_IRUSR = 0x100
+- S_IRWXG = 0x38
+- S_IRWXO = 0x7
+- S_IRWXU = 0x1c0
+- S_ISGID = 0x400
+- S_ISUID = 0x800
+- S_ISVTX = 0x200
+- S_IWGRP = 0x10
+- S_IWOTH = 0x2
+- S_IWRITE = 0x80
+- S_IWUSR = 0x80
+- S_IXGRP = 0x8
+- S_IXOTH = 0x1
+- S_IXUSR = 0x40
+- TAB0 = 0x0
+- TAB1 = 0x800
+- TAB2 = 0x1000
+- TAB3 = 0x1800
+- TABDLY = 0x1800
+- TASKSTATS_CMD_ATTR_MAX = 0x4
+- TASKSTATS_CMD_MAX = 0x2
+- TASKSTATS_GENL_NAME = "TASKSTATS"
+- TASKSTATS_GENL_VERSION = 0x1
+- TASKSTATS_TYPE_MAX = 0x6
+- TASKSTATS_VERSION = 0x8
+- TCFLSH = 0x5407
+- TCGETA = 0x5401
+- TCGETS = 0x540d
+- TCGETS2 = 0x4030542a
+- TCIFLUSH = 0x0
+- TCIOFF = 0x2
+- TCIOFLUSH = 0x2
+- TCION = 0x3
+- TCOFLUSH = 0x1
+- TCOOFF = 0x0
+- TCOON = 0x1
+- TCP_CC_INFO = 0x1a
+- TCP_CONGESTION = 0xd
+- TCP_COOKIE_IN_ALWAYS = 0x1
+- TCP_COOKIE_MAX = 0x10
+- TCP_COOKIE_MIN = 0x8
+- TCP_COOKIE_OUT_NEVER = 0x2
+- TCP_COOKIE_PAIR_SIZE = 0x20
+- TCP_COOKIE_TRANSACTIONS = 0xf
+- TCP_CORK = 0x3
+- TCP_DEFER_ACCEPT = 0x9
+- TCP_FASTOPEN = 0x17
+- TCP_INFO = 0xb
+- TCP_KEEPCNT = 0x6
+- TCP_KEEPIDLE = 0x4
+- TCP_KEEPINTVL = 0x5
+- TCP_LINGER2 = 0x8
+- TCP_MAXSEG = 0x2
+- TCP_MAXWIN = 0xffff
+- TCP_MAX_WINSHIFT = 0xe
+- TCP_MD5SIG = 0xe
+- TCP_MD5SIG_MAXKEYLEN = 0x50
+- TCP_MSS = 0x200
+- TCP_MSS_DEFAULT = 0x218
+- TCP_MSS_DESIRED = 0x4c4
+- TCP_NODELAY = 0x1
+- TCP_NOTSENT_LOWAT = 0x19
+- TCP_QUEUE_SEQ = 0x15
+- TCP_QUICKACK = 0xc
+- TCP_REPAIR = 0x13
+- TCP_REPAIR_OPTIONS = 0x16
+- TCP_REPAIR_QUEUE = 0x14
+- TCP_REPAIR_WINDOW = 0x1d
+- TCP_SAVED_SYN = 0x1c
+- TCP_SAVE_SYN = 0x1b
+- TCP_SYNCNT = 0x7
+- TCP_S_DATA_IN = 0x4
+- TCP_S_DATA_OUT = 0x8
+- TCP_THIN_DUPACK = 0x11
+- TCP_THIN_LINEAR_TIMEOUTS = 0x10
+- TCP_TIMESTAMP = 0x18
+- TCP_USER_TIMEOUT = 0x12
+- TCP_WINDOW_CLAMP = 0xa
+- TCSAFLUSH = 0x5410
+- TCSBRK = 0x5405
+- TCSBRKP = 0x5486
+- TCSETA = 0x5402
+- TCSETAF = 0x5404
+- TCSETAW = 0x5403
+- TCSETS = 0x540e
+- TCSETS2 = 0x8030542b
+- TCSETSF = 0x5410
+- TCSETSF2 = 0x8030542d
+- TCSETSW = 0x540f
+- TCSETSW2 = 0x8030542c
+- TCXONC = 0x5406
+- TIOCCBRK = 0x5428
+- TIOCCONS = 0x80047478
+- TIOCEXCL = 0x740d
+- TIOCGDEV = 0x40045432
+- TIOCGETD = 0x7400
+- TIOCGETP = 0x7408
+- TIOCGEXCL = 0x40045440
+- TIOCGICOUNT = 0x5492
+- TIOCGLCKTRMIOS = 0x548b
+- TIOCGLTC = 0x7474
+- TIOCGPGRP = 0x40047477
+- TIOCGPKT = 0x40045438
+- TIOCGPTLCK = 0x40045439
+- TIOCGPTN = 0x40045430
+- TIOCGRS485 = 0x4020542e
+- TIOCGSERIAL = 0x5484
+- TIOCGSID = 0x7416
+- TIOCGSOFTCAR = 0x5481
+- TIOCGWINSZ = 0x40087468
+- TIOCINQ = 0x467f
+- TIOCLINUX = 0x5483
+- TIOCMBIC = 0x741c
+- TIOCMBIS = 0x741b
+- TIOCMGET = 0x741d
+- TIOCMIWAIT = 0x5491
+- TIOCMSET = 0x741a
+- TIOCM_CAR = 0x100
+- TIOCM_CD = 0x100
+- TIOCM_CTS = 0x40
+- TIOCM_DSR = 0x400
+- TIOCM_DTR = 0x2
+- TIOCM_LE = 0x1
+- TIOCM_RI = 0x200
+- TIOCM_RNG = 0x200
+- TIOCM_RTS = 0x4
+- TIOCM_SR = 0x20
+- TIOCM_ST = 0x10
+- TIOCNOTTY = 0x5471
+- TIOCNXCL = 0x740e
+- TIOCOUTQ = 0x7472
+- TIOCPKT = 0x5470
+- TIOCPKT_DATA = 0x0
+- TIOCPKT_DOSTOP = 0x20
+- TIOCPKT_FLUSHREAD = 0x1
+- TIOCPKT_FLUSHWRITE = 0x2
+- TIOCPKT_IOCTL = 0x40
+- TIOCPKT_NOSTOP = 0x10
+- TIOCPKT_START = 0x8
+- TIOCPKT_STOP = 0x4
+- TIOCSBRK = 0x5427
+- TIOCSCTTY = 0x5480
+- TIOCSERCONFIG = 0x5488
+- TIOCSERGETLSR = 0x548e
+- TIOCSERGETMULTI = 0x548f
+- TIOCSERGSTRUCT = 0x548d
+- TIOCSERGWILD = 0x5489
+- TIOCSERSETMULTI = 0x5490
+- TIOCSERSWILD = 0x548a
+- TIOCSER_TEMT = 0x1
+- TIOCSETD = 0x7401
+- TIOCSETN = 0x740a
+- TIOCSETP = 0x7409
+- TIOCSIG = 0x80045436
+- TIOCSLCKTRMIOS = 0x548c
+- TIOCSLTC = 0x7475
+- TIOCSPGRP = 0x80047476
+- TIOCSPTLCK = 0x80045431
+- TIOCSRS485 = 0xc020542f
+- TIOCSSERIAL = 0x5485
+- TIOCSSOFTCAR = 0x5482
+- TIOCSTI = 0x5472
+- TIOCSWINSZ = 0x80087467
+- TIOCVHANGUP = 0x5437
+- TOSTOP = 0x8000
+- TS_COMM_LEN = 0x20
+- TUNATTACHFILTER = 0x801054d5
+- TUNDETACHFILTER = 0x801054d6
+- TUNGETFEATURES = 0x400454cf
+- TUNGETFILTER = 0x401054db
+- TUNGETIFF = 0x400454d2
+- TUNGETSNDBUF = 0x400454d3
+- TUNGETVNETBE = 0x400454df
+- TUNGETVNETHDRSZ = 0x400454d7
+- TUNGETVNETLE = 0x400454dd
+- TUNSETDEBUG = 0x800454c9
+- TUNSETGROUP = 0x800454ce
+- TUNSETIFF = 0x800454ca
+- TUNSETIFINDEX = 0x800454da
+- TUNSETLINK = 0x800454cd
+- TUNSETNOCSUM = 0x800454c8
+- TUNSETOFFLOAD = 0x800454d0
+- TUNSETOWNER = 0x800454cc
+- TUNSETPERSIST = 0x800454cb
+- TUNSETQUEUE = 0x800454d9
+- TUNSETSNDBUF = 0x800454d4
+- TUNSETTXFILTER = 0x800454d1
+- TUNSETVNETBE = 0x800454de
+- TUNSETVNETHDRSZ = 0x800454d8
+- TUNSETVNETLE = 0x800454dc
+- UMOUNT_NOFOLLOW = 0x8
+- VDISCARD = 0xd
+- VEOF = 0x10
+- VEOL = 0x11
+- VEOL2 = 0x6
+- VERASE = 0x2
+- VINTR = 0x0
+- VKILL = 0x3
+- VLNEXT = 0xf
+- VMADDR_CID_ANY = 0xffffffff
+- VMADDR_CID_HOST = 0x2
+- VMADDR_CID_HYPERVISOR = 0x0
+- VMADDR_CID_RESERVED = 0x1
+- VMADDR_PORT_ANY = 0xffffffff
+- VMIN = 0x4
+- VM_SOCKETS_INVALID_VERSION = 0xffffffff
+- VQUIT = 0x1
+- VREPRINT = 0xc
+- VSTART = 0x8
+- VSTOP = 0x9
+- VSUSP = 0xa
+- VSWTC = 0x7
+- VSWTCH = 0x7
+- VT0 = 0x0
+- VT1 = 0x4000
+- VTDLY = 0x4000
+- VTIME = 0x5
+- VWERASE = 0xe
+- WALL = 0x40000000
+- WCLONE = 0x80000000
+- WCONTINUED = 0x8
+- WEXITED = 0x4
+- WNOHANG = 0x1
+- WNOTHREAD = 0x20000000
+- WNOWAIT = 0x1000000
+- WORDSIZE = 0x40
+- WSTOPPED = 0x2
+- WUNTRACED = 0x2
+- XATTR_CREATE = 0x1
+- XATTR_REPLACE = 0x2
+- XCASE = 0x4
+- XTABS = 0x1800
++ B1000000 = 0x1008
++ B115200 = 0x1002
++ B1152000 = 0x1009
++ B1500000 = 0x100a
++ B2000000 = 0x100b
++ B230400 = 0x1003
++ B2500000 = 0x100c
++ B3000000 = 0x100d
++ B3500000 = 0x100e
++ B4000000 = 0x100f
++ B460800 = 0x1004
++ B500000 = 0x1005
++ B57600 = 0x1001
++ B576000 = 0x1006
++ B921600 = 0x1007
++ BLKBSZGET = 0x40081270
++ BLKBSZSET = 0x80081271
++ BLKFLSBUF = 0x20001261
++ BLKFRAGET = 0x20001265
++ BLKFRASET = 0x20001264
++ BLKGETSIZE = 0x20001260
++ BLKGETSIZE64 = 0x40081272
++ BLKPBSZGET = 0x2000127b
++ BLKRAGET = 0x20001263
++ BLKRASET = 0x20001262
++ BLKROGET = 0x2000125e
++ BLKROSET = 0x2000125d
++ BLKRRPART = 0x2000125f
++ BLKSECTGET = 0x20001267
++ BLKSECTSET = 0x20001266
++ BLKSSZGET = 0x20001268
++ BOTHER = 0x1000
++ BS1 = 0x2000
++ BSDLY = 0x2000
++ CBAUD = 0x100f
++ CBAUDEX = 0x1000
++ CIBAUD = 0x100f0000
++ CLOCAL = 0x800
++ CR1 = 0x200
++ CR2 = 0x400
++ CR3 = 0x600
++ CRDLY = 0x600
++ CREAD = 0x80
++ CS6 = 0x10
++ CS7 = 0x20
++ CS8 = 0x30
++ CSIZE = 0x30
++ CSTOPB = 0x40
++ ECHOCTL = 0x200
++ ECHOE = 0x10
++ ECHOK = 0x20
++ ECHOKE = 0x800
++ ECHONL = 0x40
++ ECHOPRT = 0x400
++ EFD_CLOEXEC = 0x80000
++ EFD_NONBLOCK = 0x80
++ EPOLL_CLOEXEC = 0x80000
++ EXTPROC = 0x10000
++ FF1 = 0x8000
++ FFDLY = 0x8000
++ FLUSHO = 0x2000
++ FS_IOC_ENABLE_VERITY = 0x80806685
++ FS_IOC_GETFLAGS = 0x40086601
++ FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615
++ FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614
++ FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613
++ F_GETLK = 0xe
++ F_GETLK64 = 0xe
++ F_GETOWN = 0x17
++ F_RDLCK = 0x0
++ F_SETLK = 0x6
++ F_SETLK64 = 0x6
++ F_SETLKW = 0x7
++ F_SETLKW64 = 0x7
++ F_SETOWN = 0x18
++ F_UNLCK = 0x2
++ F_WRLCK = 0x1
++ HUPCL = 0x400
++ ICANON = 0x2
++ IEXTEN = 0x100
++ IN_CLOEXEC = 0x80000
++ IN_NONBLOCK = 0x80
++ IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9
++ ISIG = 0x1
++ IUCLC = 0x200
++ IXOFF = 0x1000
++ IXON = 0x400
++ MAP_ANON = 0x800
++ MAP_ANONYMOUS = 0x800
++ MAP_DENYWRITE = 0x2000
++ MAP_EXECUTABLE = 0x4000
++ MAP_GROWSDOWN = 0x1000
++ MAP_HUGETLB = 0x80000
++ MAP_LOCKED = 0x8000
++ MAP_NONBLOCK = 0x20000
++ MAP_NORESERVE = 0x400
++ MAP_POPULATE = 0x10000
++ MAP_RENAME = 0x800
++ MAP_STACK = 0x40000
++ MCL_CURRENT = 0x1
++ MCL_FUTURE = 0x2
++ MCL_ONFAULT = 0x4
++ NFDBITS = 0x40
++ NLDLY = 0x100
++ NOFLSH = 0x80
++ NS_GET_NSTYPE = 0x2000b703
++ NS_GET_OWNER_UID = 0x2000b704
++ NS_GET_PARENT = 0x2000b702
++ NS_GET_USERNS = 0x2000b701
++ OLCUC = 0x2
++ ONLCR = 0x4
++ O_APPEND = 0x8
++ O_ASYNC = 0x1000
++ O_CLOEXEC = 0x80000
++ O_CREAT = 0x100
++ O_DIRECT = 0x8000
++ O_DIRECTORY = 0x10000
++ O_DSYNC = 0x10
++ O_EXCL = 0x400
++ O_FSYNC = 0x4010
++ O_LARGEFILE = 0x0
++ O_NDELAY = 0x80
++ O_NOATIME = 0x40000
++ O_NOCTTY = 0x800
++ O_NOFOLLOW = 0x20000
++ O_NONBLOCK = 0x80
++ O_PATH = 0x200000
++ O_RSYNC = 0x4010
++ O_SYNC = 0x4010
++ O_TMPFILE = 0x410000
++ O_TRUNC = 0x200
++ PARENB = 0x100
++ PARODD = 0x200
++ PENDIN = 0x4000
++ PERF_EVENT_IOC_DISABLE = 0x20002401
++ PERF_EVENT_IOC_ENABLE = 0x20002400
++ PERF_EVENT_IOC_ID = 0x40082407
++ PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b
++ PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409
++ PERF_EVENT_IOC_PERIOD = 0x80082404
++ PERF_EVENT_IOC_QUERY_BPF = 0xc008240a
++ PERF_EVENT_IOC_REFRESH = 0x20002402
++ PERF_EVENT_IOC_RESET = 0x20002403
++ PERF_EVENT_IOC_SET_BPF = 0x80042408
++ PERF_EVENT_IOC_SET_FILTER = 0x80082406
++ PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
++ PPPIOCATTACH = 0x8004743d
++ PPPIOCATTCHAN = 0x80047438
++ PPPIOCCONNECT = 0x8004743a
++ PPPIOCDETACH = 0x8004743c
++ PPPIOCDISCONN = 0x20007439
++ PPPIOCGASYNCMAP = 0x40047458
++ PPPIOCGCHAN = 0x40047437
++ PPPIOCGDEBUG = 0x40047441
++ PPPIOCGFLAGS = 0x4004745a
++ PPPIOCGIDLE = 0x4010743f
++ PPPIOCGIDLE32 = 0x4008743f
++ PPPIOCGIDLE64 = 0x4010743f
++ PPPIOCGL2TPSTATS = 0x40487436
++ PPPIOCGMRU = 0x40047453
++ PPPIOCGRASYNCMAP = 0x40047455
++ PPPIOCGUNIT = 0x40047456
++ PPPIOCGXASYNCMAP = 0x40207450
++ PPPIOCSACTIVE = 0x80107446
++ PPPIOCSASYNCMAP = 0x80047457
++ PPPIOCSCOMPRESS = 0x8010744d
++ PPPIOCSDEBUG = 0x80047440
++ PPPIOCSFLAGS = 0x80047459
++ PPPIOCSMAXCID = 0x80047451
++ PPPIOCSMRRU = 0x8004743b
++ PPPIOCSMRU = 0x80047452
++ PPPIOCSNPMODE = 0x8008744b
++ PPPIOCSPASS = 0x80107447
++ PPPIOCSRASYNCMAP = 0x80047454
++ PPPIOCSXASYNCMAP = 0x8020744f
++ PPPIOCXFERUNIT = 0x2000744e
++ PR_SET_PTRACER_ANY = 0xffffffffffffffff
++ PTRACE_GETFPREGS = 0xe
++ PTRACE_GET_THREAD_AREA = 0x19
++ PTRACE_GET_THREAD_AREA_3264 = 0xc4
++ PTRACE_GET_WATCH_REGS = 0xd0
++ PTRACE_OLDSETOPTIONS = 0x15
++ PTRACE_PEEKDATA_3264 = 0xc1
++ PTRACE_PEEKTEXT_3264 = 0xc0
++ PTRACE_POKEDATA_3264 = 0xc3
++ PTRACE_POKETEXT_3264 = 0xc2
++ PTRACE_SETFPREGS = 0xf
++ PTRACE_SET_THREAD_AREA = 0x1a
++ PTRACE_SET_WATCH_REGS = 0xd1
++ RLIMIT_AS = 0x6
++ RLIMIT_MEMLOCK = 0x9
++ RLIMIT_NOFILE = 0x5
++ RLIMIT_NPROC = 0x8
++ RLIMIT_RSS = 0x7
++ RNDADDENTROPY = 0x80085203
++ RNDADDTOENTCNT = 0x80045201
++ RNDCLEARPOOL = 0x20005206
++ RNDGETENTCNT = 0x40045200
++ RNDGETPOOL = 0x40085202
++ RNDRESEEDCRNG = 0x20005207
++ RNDZAPENTCNT = 0x20005204
++ RTC_AIE_OFF = 0x20007002
++ RTC_AIE_ON = 0x20007001
++ RTC_ALM_READ = 0x40247008
++ RTC_ALM_SET = 0x80247007
++ RTC_EPOCH_READ = 0x4008700d
++ RTC_EPOCH_SET = 0x8008700e
++ RTC_IRQP_READ = 0x4008700b
++ RTC_IRQP_SET = 0x8008700c
++ RTC_PIE_OFF = 0x20007006
++ RTC_PIE_ON = 0x20007005
++ RTC_PLL_GET = 0x40207011
++ RTC_PLL_SET = 0x80207012
++ RTC_RD_TIME = 0x40247009
++ RTC_SET_TIME = 0x8024700a
++ RTC_UIE_OFF = 0x20007004
++ RTC_UIE_ON = 0x20007003
++ RTC_VL_CLR = 0x20007014
++ RTC_VL_READ = 0x40047013
++ RTC_WIE_OFF = 0x20007010
++ RTC_WIE_ON = 0x2000700f
++ RTC_WKALM_RD = 0x40287010
++ RTC_WKALM_SET = 0x8028700f
++ SCM_TIMESTAMPING = 0x25
++ SCM_TIMESTAMPING_OPT_STATS = 0x36
++ SCM_TIMESTAMPING_PKTINFO = 0x3a
++ SCM_TIMESTAMPNS = 0x23
++ SCM_TXTIME = 0x3d
++ SCM_WIFI_STATUS = 0x29
++ SFD_CLOEXEC = 0x80000
++ SFD_NONBLOCK = 0x80
++ SIOCATMARK = 0x40047307
++ SIOCGPGRP = 0x40047309
++ SIOCGSTAMPNS_NEW = 0x40108907
++ SIOCGSTAMP_NEW = 0x40108906
++ SIOCINQ = 0x467f
++ SIOCOUTQ = 0x7472
++ SIOCSPGRP = 0x80047308
++ SOCK_CLOEXEC = 0x80000
++ SOCK_DGRAM = 0x1
++ SOCK_NONBLOCK = 0x80
++ SOCK_STREAM = 0x2
++ SOL_SOCKET = 0xffff
++ SO_ACCEPTCONN = 0x1009
++ SO_ATTACH_BPF = 0x32
++ SO_ATTACH_REUSEPORT_CBPF = 0x33
++ SO_ATTACH_REUSEPORT_EBPF = 0x34
++ SO_BINDTODEVICE = 0x19
++ SO_BINDTOIFINDEX = 0x3e
++ SO_BPF_EXTENSIONS = 0x30
++ SO_BROADCAST = 0x20
++ SO_BSDCOMPAT = 0xe
++ SO_BUSY_POLL = 0x2e
++ SO_CNX_ADVICE = 0x35
++ SO_COOKIE = 0x39
++ SO_DETACH_REUSEPORT_BPF = 0x44
++ SO_DOMAIN = 0x1029
++ SO_DONTROUTE = 0x10
++ SO_ERROR = 0x1007
++ SO_INCOMING_CPU = 0x31
++ SO_INCOMING_NAPI_ID = 0x38
++ SO_KEEPALIVE = 0x8
++ SO_LINGER = 0x80
++ SO_LOCK_FILTER = 0x2c
++ SO_MARK = 0x24
++ SO_MAX_PACING_RATE = 0x2f
++ SO_MEMINFO = 0x37
++ SO_NOFCS = 0x2b
++ SO_OOBINLINE = 0x100
++ SO_PASSCRED = 0x11
++ SO_PASSSEC = 0x22
++ SO_PEEK_OFF = 0x2a
++ SO_PEERCRED = 0x12
++ SO_PEERGROUPS = 0x3b
++ SO_PEERSEC = 0x1e
++ SO_PROTOCOL = 0x1028
++ SO_RCVBUF = 0x1002
++ SO_RCVBUFFORCE = 0x21
++ SO_RCVLOWAT = 0x1004
++ SO_RCVTIMEO = 0x1006
++ SO_RCVTIMEO_NEW = 0x42
++ SO_RCVTIMEO_OLD = 0x1006
++ SO_REUSEADDR = 0x4
++ SO_REUSEPORT = 0x200
++ SO_RXQ_OVFL = 0x28
++ SO_SECURITY_AUTHENTICATION = 0x16
++ SO_SECURITY_ENCRYPTION_NETWORK = 0x18
++ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
++ SO_SELECT_ERR_QUEUE = 0x2d
++ SO_SNDBUF = 0x1001
++ SO_SNDBUFFORCE = 0x1f
++ SO_SNDLOWAT = 0x1003
++ SO_SNDTIMEO = 0x1005
++ SO_SNDTIMEO_NEW = 0x43
++ SO_SNDTIMEO_OLD = 0x1005
++ SO_STYLE = 0x1008
++ SO_TIMESTAMPING = 0x25
++ SO_TIMESTAMPING_NEW = 0x41
++ SO_TIMESTAMPING_OLD = 0x25
++ SO_TIMESTAMPNS = 0x23
++ SO_TIMESTAMPNS_NEW = 0x40
++ SO_TIMESTAMPNS_OLD = 0x23
++ SO_TIMESTAMP_NEW = 0x3f
++ SO_TXTIME = 0x3d
++ SO_TYPE = 0x1008
++ SO_WIFI_STATUS = 0x29
++ SO_ZEROCOPY = 0x3c
++ TAB1 = 0x800
++ TAB2 = 0x1000
++ TAB3 = 0x1800
++ TABDLY = 0x1800
++ TCFLSH = 0x5407
++ TCGETA = 0x5401
++ TCGETS = 0x540d
++ TCGETS2 = 0x4030542a
++ TCSAFLUSH = 0x5410
++ TCSBRK = 0x5405
++ TCSBRKP = 0x5486
++ TCSETA = 0x5402
++ TCSETAF = 0x5404
++ TCSETAW = 0x5403
++ TCSETS = 0x540e
++ TCSETS2 = 0x8030542b
++ TCSETSF = 0x5410
++ TCSETSF2 = 0x8030542d
++ TCSETSW = 0x540f
++ TCSETSW2 = 0x8030542c
++ TCXONC = 0x5406
++ TIOCCBRK = 0x5428
++ TIOCCONS = 0x80047478
++ TIOCEXCL = 0x740d
++ TIOCGDEV = 0x40045432
++ TIOCGETD = 0x7400
++ TIOCGETP = 0x7408
++ TIOCGEXCL = 0x40045440
++ TIOCGICOUNT = 0x5492
++ TIOCGISO7816 = 0x40285442
++ TIOCGLCKTRMIOS = 0x548b
++ TIOCGLTC = 0x7474
++ TIOCGPGRP = 0x40047477
++ TIOCGPKT = 0x40045438
++ TIOCGPTLCK = 0x40045439
++ TIOCGPTN = 0x40045430
++ TIOCGPTPEER = 0x20005441
++ TIOCGRS485 = 0x4020542e
++ TIOCGSERIAL = 0x5484
++ TIOCGSID = 0x7416
++ TIOCGSOFTCAR = 0x5481
++ TIOCGWINSZ = 0x40087468
++ TIOCINQ = 0x467f
++ TIOCLINUX = 0x5483
++ TIOCMBIC = 0x741c
++ TIOCMBIS = 0x741b
++ TIOCMGET = 0x741d
++ TIOCMIWAIT = 0x5491
++ TIOCMSET = 0x741a
++ TIOCM_CAR = 0x100
++ TIOCM_CD = 0x100
++ TIOCM_CTS = 0x40
++ TIOCM_DSR = 0x400
++ TIOCM_RI = 0x200
++ TIOCM_RNG = 0x200
++ TIOCM_SR = 0x20
++ TIOCM_ST = 0x10
++ TIOCNOTTY = 0x5471
++ TIOCNXCL = 0x740e
++ TIOCOUTQ = 0x7472
++ TIOCPKT = 0x5470
++ TIOCSBRK = 0x5427
++ TIOCSCTTY = 0x5480
++ TIOCSERCONFIG = 0x5488
++ TIOCSERGETLSR = 0x548e
++ TIOCSERGETMULTI = 0x548f
++ TIOCSERGSTRUCT = 0x548d
++ TIOCSERGWILD = 0x5489
++ TIOCSERSETMULTI = 0x5490
++ TIOCSERSWILD = 0x548a
++ TIOCSER_TEMT = 0x1
++ TIOCSETD = 0x7401
++ TIOCSETN = 0x740a
++ TIOCSETP = 0x7409
++ TIOCSIG = 0x80045436
++ TIOCSISO7816 = 0xc0285443
++ TIOCSLCKTRMIOS = 0x548c
++ TIOCSLTC = 0x7475
++ TIOCSPGRP = 0x80047476
++ TIOCSPTLCK = 0x80045431
++ TIOCSRS485 = 0xc020542f
++ TIOCSSERIAL = 0x5485
++ TIOCSSOFTCAR = 0x5482
++ TIOCSTI = 0x5472
++ TIOCSWINSZ = 0x80087467
++ TIOCVHANGUP = 0x5437
++ TOSTOP = 0x8000
++ TUNATTACHFILTER = 0x801054d5
++ TUNDETACHFILTER = 0x801054d6
++ TUNGETDEVNETNS = 0x200054e3
++ TUNGETFEATURES = 0x400454cf
++ TUNGETFILTER = 0x401054db
++ TUNGETIFF = 0x400454d2
++ TUNGETSNDBUF = 0x400454d3
++ TUNGETVNETBE = 0x400454df
++ TUNGETVNETHDRSZ = 0x400454d7
++ TUNGETVNETLE = 0x400454dd
++ TUNSETCARRIER = 0x800454e2
++ TUNSETDEBUG = 0x800454c9
++ TUNSETFILTEREBPF = 0x400454e1
++ TUNSETGROUP = 0x800454ce
++ TUNSETIFF = 0x800454ca
++ TUNSETIFINDEX = 0x800454da
++ TUNSETLINK = 0x800454cd
++ TUNSETNOCSUM = 0x800454c8
++ TUNSETOFFLOAD = 0x800454d0
++ TUNSETOWNER = 0x800454cc
++ TUNSETPERSIST = 0x800454cb
++ TUNSETQUEUE = 0x800454d9
++ TUNSETSNDBUF = 0x800454d4
++ TUNSETSTEERINGEBPF = 0x400454e0
++ TUNSETTXFILTER = 0x800454d1
++ TUNSETVNETBE = 0x800454de
++ TUNSETVNETHDRSZ = 0x800454d8
++ TUNSETVNETLE = 0x800454dc
++ UBI_IOCATT = 0x80186f40
++ UBI_IOCDET = 0x80046f41
++ UBI_IOCEBCH = 0x80044f02
++ UBI_IOCEBER = 0x80044f01
++ UBI_IOCEBISMAP = 0x40044f05
++ UBI_IOCEBMAP = 0x80084f03
++ UBI_IOCEBUNMAP = 0x80044f04
++ UBI_IOCMKVOL = 0x80986f00
++ UBI_IOCRMVOL = 0x80046f01
++ UBI_IOCRNVOL = 0x91106f03
++ UBI_IOCRPEB = 0x80046f04
++ UBI_IOCRSVOL = 0x800c6f02
++ UBI_IOCSETVOLPROP = 0x80104f06
++ UBI_IOCSPEB = 0x80046f05
++ UBI_IOCVOLCRBLK = 0x80804f07
++ UBI_IOCVOLRMBLK = 0x20004f08
++ UBI_IOCVOLUP = 0x80084f00
++ VDISCARD = 0xd
++ VEOF = 0x10
++ VEOL = 0x11
++ VEOL2 = 0x6
++ VMIN = 0x4
++ VREPRINT = 0xc
++ VSTART = 0x8
++ VSTOP = 0x9
++ VSUSP = 0xa
++ VSWTC = 0x7
++ VSWTCH = 0x7
++ VT1 = 0x4000
++ VTDLY = 0x4000
++ VTIME = 0x5
++ VWERASE = 0xe
++ WDIOC_GETBOOTSTATUS = 0x40045702
++ WDIOC_GETPRETIMEOUT = 0x40045709
++ WDIOC_GETSTATUS = 0x40045701
++ WDIOC_GETSUPPORT = 0x40285700
++ WDIOC_GETTEMP = 0x40045703
++ WDIOC_GETTIMELEFT = 0x4004570a
++ WDIOC_GETTIMEOUT = 0x40045707
++ WDIOC_KEEPALIVE = 0x40045705
++ WDIOC_SETOPTIONS = 0x40045704
++ WORDSIZE = 0x40
++ XCASE = 0x4
++ XTABS = 0x1800
+ )
+
+ // Errors
+ const (
+- E2BIG = syscall.Errno(0x7)
+- EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x7d)
+ EADDRNOTAVAIL = syscall.Errno(0x7e)
+ EADV = syscall.Errno(0x44)
+ EAFNOSUPPORT = syscall.Errno(0x7c)
+- EAGAIN = syscall.Errno(0xb)
+ EALREADY = syscall.Errno(0x95)
+ EBADE = syscall.Errno(0x32)
+- EBADF = syscall.Errno(0x9)
+ EBADFD = syscall.Errno(0x51)
+ EBADMSG = syscall.Errno(0x4d)
+ EBADR = syscall.Errno(0x33)
+ EBADRQC = syscall.Errno(0x36)
+ EBADSLT = syscall.Errno(0x37)
+ EBFONT = syscall.Errno(0x3b)
+- EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x9e)
+- ECHILD = syscall.Errno(0xa)
+ ECHRNG = syscall.Errno(0x25)
+ ECOMM = syscall.Errno(0x46)
+ ECONNABORTED = syscall.Errno(0x82)
+@@ -1886,12 +502,8 @@ const (
+ EDEADLK = syscall.Errno(0x2d)
+ EDEADLOCK = syscall.Errno(0x38)
+ EDESTADDRREQ = syscall.Errno(0x60)
+- EDOM = syscall.Errno(0x21)
+ EDOTDOT = syscall.Errno(0x49)
+ EDQUOT = syscall.Errno(0x46d)
+- EEXIST = syscall.Errno(0x11)
+- EFAULT = syscall.Errno(0xe)
+- EFBIG = syscall.Errno(0x1b)
+ EHOSTDOWN = syscall.Errno(0x93)
+ EHOSTUNREACH = syscall.Errno(0x94)
+ EHWPOISON = syscall.Errno(0xa8)
+@@ -1899,11 +511,7 @@ const (
+ EILSEQ = syscall.Errno(0x58)
+ EINIT = syscall.Errno(0x8d)
+ EINPROGRESS = syscall.Errno(0x96)
+- EINTR = syscall.Errno(0x4)
+- EINVAL = syscall.Errno(0x16)
+- EIO = syscall.Errno(0x5)
+ EISCONN = syscall.Errno(0x85)
+- EISDIR = syscall.Errno(0x15)
+ EISNAM = syscall.Errno(0x8b)
+ EKEYEXPIRED = syscall.Errno(0xa2)
+ EKEYREJECTED = syscall.Errno(0xa4)
+@@ -1920,8 +528,6 @@ const (
+ ELNRNG = syscall.Errno(0x29)
+ ELOOP = syscall.Errno(0x5a)
+ EMEDIUMTYPE = syscall.Errno(0xa0)
+- EMFILE = syscall.Errno(0x18)
+- EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x61)
+ EMULTIHOP = syscall.Errno(0x4a)
+ ENAMETOOLONG = syscall.Errno(0x4e)
+@@ -1929,100 +535,68 @@ const (
+ ENETDOWN = syscall.Errno(0x7f)
+ ENETRESET = syscall.Errno(0x81)
+ ENETUNREACH = syscall.Errno(0x80)
+- ENFILE = syscall.Errno(0x17)
+ ENOANO = syscall.Errno(0x35)
+ ENOBUFS = syscall.Errno(0x84)
+ ENOCSI = syscall.Errno(0x2b)
+ ENODATA = syscall.Errno(0x3d)
+- ENODEV = syscall.Errno(0x13)
+- ENOENT = syscall.Errno(0x2)
+- ENOEXEC = syscall.Errno(0x8)
+ ENOKEY = syscall.Errno(0xa1)
+ ENOLCK = syscall.Errno(0x2e)
+ ENOLINK = syscall.Errno(0x43)
+ ENOMEDIUM = syscall.Errno(0x9f)
+- ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x23)
+ ENONET = syscall.Errno(0x40)
+ ENOPKG = syscall.Errno(0x41)
+ ENOPROTOOPT = syscall.Errno(0x63)
+- ENOSPC = syscall.Errno(0x1c)
+ ENOSR = syscall.Errno(0x3f)
+ ENOSTR = syscall.Errno(0x3c)
+ ENOSYS = syscall.Errno(0x59)
+- ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x86)
+- ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x5d)
+ ENOTNAM = syscall.Errno(0x89)
+ ENOTRECOVERABLE = syscall.Errno(0xa6)
+ ENOTSOCK = syscall.Errno(0x5f)
+ ENOTSUP = syscall.Errno(0x7a)
+- ENOTTY = syscall.Errno(0x19)
+ ENOTUNIQ = syscall.Errno(0x50)
+- ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x7a)
+ EOVERFLOW = syscall.Errno(0x4f)
+ EOWNERDEAD = syscall.Errno(0xa5)
+- EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x7b)
+- EPIPE = syscall.Errno(0x20)
+ EPROTO = syscall.Errno(0x47)
+ EPROTONOSUPPORT = syscall.Errno(0x78)
+ EPROTOTYPE = syscall.Errno(0x62)
+- ERANGE = syscall.Errno(0x22)
+ EREMCHG = syscall.Errno(0x52)
+ EREMDEV = syscall.Errno(0x8e)
+ EREMOTE = syscall.Errno(0x42)
+ EREMOTEIO = syscall.Errno(0x8c)
+ ERESTART = syscall.Errno(0x5b)
+ ERFKILL = syscall.Errno(0xa7)
+- EROFS = syscall.Errno(0x1e)
+ ESHUTDOWN = syscall.Errno(0x8f)
+ ESOCKTNOSUPPORT = syscall.Errno(0x79)
+- ESPIPE = syscall.Errno(0x1d)
+- ESRCH = syscall.Errno(0x3)
+ ESRMNT = syscall.Errno(0x45)
+ ESTALE = syscall.Errno(0x97)
+ ESTRPIPE = syscall.Errno(0x5c)
+ ETIME = syscall.Errno(0x3e)
+ ETIMEDOUT = syscall.Errno(0x91)
+ ETOOMANYREFS = syscall.Errno(0x90)
+- ETXTBSY = syscall.Errno(0x1a)
+ EUCLEAN = syscall.Errno(0x87)
+ EUNATCH = syscall.Errno(0x2a)
+ EUSERS = syscall.Errno(0x5e)
+- EWOULDBLOCK = syscall.Errno(0xb)
+- EXDEV = syscall.Errno(0x12)
+ EXFULL = syscall.Errno(0x34)
+ )
+
+ // Signals
+ const (
+- SIGABRT = syscall.Signal(0x6)
+- SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0xa)
+ SIGCHLD = syscall.Signal(0x12)
+ SIGCLD = syscall.Signal(0x12)
+ SIGCONT = syscall.Signal(0x19)
+ SIGEMT = syscall.Signal(0x7)
+- SIGFPE = syscall.Signal(0x8)
+- SIGHUP = syscall.Signal(0x1)
+- SIGILL = syscall.Signal(0x4)
+- SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x16)
+- SIGIOT = syscall.Signal(0x6)
+- SIGKILL = syscall.Signal(0x9)
+- SIGPIPE = syscall.Signal(0xd)
+ SIGPOLL = syscall.Signal(0x16)
+ SIGPROF = syscall.Signal(0x1d)
+ SIGPWR = syscall.Signal(0x13)
+- SIGQUIT = syscall.Signal(0x3)
+- SIGSEGV = syscall.Signal(0xb)
+ SIGSTOP = syscall.Signal(0x17)
+ SIGSYS = syscall.Signal(0xc)
+- SIGTERM = syscall.Signal(0xf)
+- SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x18)
+ SIGTTIN = syscall.Signal(0x1a)
+ SIGTTOU = syscall.Signal(0x1b)
+@@ -2036,174 +610,182 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "no such device or address",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource temporarily unavailable",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "device or resource busy",
+- 17: "file exists",
+- 18: "invalid cross-device link",
+- 19: "no such device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "numerical result out of range",
+- 35: "no message of desired type",
+- 36: "identifier removed",
+- 37: "channel number out of range",
+- 38: "level 2 not synchronized",
+- 39: "level 3 halted",
+- 40: "level 3 reset",
+- 41: "link number out of range",
+- 42: "protocol driver not attached",
+- 43: "no CSI structure available",
+- 44: "level 2 halted",
+- 45: "resource deadlock avoided",
+- 46: "no locks available",
+- 50: "invalid exchange",
+- 51: "invalid request descriptor",
+- 52: "exchange full",
+- 53: "no anode",
+- 54: "invalid request code",
+- 55: "invalid slot",
+- 56: "file locking deadlock error",
+- 59: "bad font file format",
+- 60: "device not a stream",
+- 61: "no data available",
+- 62: "timer expired",
+- 63: "out of streams resources",
+- 64: "machine is not on the network",
+- 65: "package not installed",
+- 66: "object is remote",
+- 67: "link has been severed",
+- 68: "advertise error",
+- 69: "srmount error",
+- 70: "communication error on send",
+- 71: "protocol error",
+- 73: "RFS specific error",
+- 74: "multihop attempted",
+- 77: "bad message",
+- 78: "file name too long",
+- 79: "value too large for defined data type",
+- 80: "name not unique on network",
+- 81: "file descriptor in bad state",
+- 82: "remote address changed",
+- 83: "can not access a needed shared library",
+- 84: "accessing a corrupted shared library",
+- 85: ".lib section in a.out corrupted",
+- 86: "attempting to link in too many shared libraries",
+- 87: "cannot exec a shared library directly",
+- 88: "invalid or incomplete multibyte or wide character",
+- 89: "function not implemented",
+- 90: "too many levels of symbolic links",
+- 91: "interrupted system call should be restarted",
+- 92: "streams pipe error",
+- 93: "directory not empty",
+- 94: "too many users",
+- 95: "socket operation on non-socket",
+- 96: "destination address required",
+- 97: "message too long",
+- 98: "protocol wrong type for socket",
+- 99: "protocol not available",
+- 120: "protocol not supported",
+- 121: "socket type not supported",
+- 122: "operation not supported",
+- 123: "protocol family not supported",
+- 124: "address family not supported by protocol",
+- 125: "address already in use",
+- 126: "cannot assign requested address",
+- 127: "network is down",
+- 128: "network is unreachable",
+- 129: "network dropped connection on reset",
+- 130: "software caused connection abort",
+- 131: "connection reset by peer",
+- 132: "no buffer space available",
+- 133: "transport endpoint is already connected",
+- 134: "transport endpoint is not connected",
+- 135: "structure needs cleaning",
+- 137: "not a XENIX named type file",
+- 138: "no XENIX semaphores available",
+- 139: "is a named type file",
+- 140: "remote I/O error",
+- 141: "unknown error 141",
+- 142: "unknown error 142",
+- 143: "cannot send after transport endpoint shutdown",
+- 144: "too many references: cannot splice",
+- 145: "connection timed out",
+- 146: "connection refused",
+- 147: "host is down",
+- 148: "no route to host",
+- 149: "operation already in progress",
+- 150: "operation now in progress",
+- 151: "stale file handle",
+- 158: "operation canceled",
+- 159: "no medium found",
+- 160: "wrong medium type",
+- 161: "required key not available",
+- 162: "key has expired",
+- 163: "key has been revoked",
+- 164: "key was rejected by service",
+- 165: "owner died",
+- 166: "state not recoverable",
+- 167: "operation not possible due to RF-kill",
+- 168: "memory page has hardware error",
+- 1133: "disk quota exceeded",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "no such device or address"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EAGAIN", "resource temporarily unavailable"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device or resource busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "invalid cross-device link"},
++ {19, "ENODEV", "no such device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "numerical result out of range"},
++ {35, "ENOMSG", "no message of desired type"},
++ {36, "EIDRM", "identifier removed"},
++ {37, "ECHRNG", "channel number out of range"},
++ {38, "EL2NSYNC", "level 2 not synchronized"},
++ {39, "EL3HLT", "level 3 halted"},
++ {40, "EL3RST", "level 3 reset"},
++ {41, "ELNRNG", "link number out of range"},
++ {42, "EUNATCH", "protocol driver not attached"},
++ {43, "ENOCSI", "no CSI structure available"},
++ {44, "EL2HLT", "level 2 halted"},
++ {45, "EDEADLK", "resource deadlock avoided"},
++ {46, "ENOLCK", "no locks available"},
++ {50, "EBADE", "invalid exchange"},
++ {51, "EBADR", "invalid request descriptor"},
++ {52, "EXFULL", "exchange full"},
++ {53, "ENOANO", "no anode"},
++ {54, "EBADRQC", "invalid request code"},
++ {55, "EBADSLT", "invalid slot"},
++ {56, "EDEADLOCK", "file locking deadlock error"},
++ {59, "EBFONT", "bad font file format"},
++ {60, "ENOSTR", "device not a stream"},
++ {61, "ENODATA", "no data available"},
++ {62, "ETIME", "timer expired"},
++ {63, "ENOSR", "out of streams resources"},
++ {64, "ENONET", "machine is not on the network"},
++ {65, "ENOPKG", "package not installed"},
++ {66, "EREMOTE", "object is remote"},
++ {67, "ENOLINK", "link has been severed"},
++ {68, "EADV", "advertise error"},
++ {69, "ESRMNT", "srmount error"},
++ {70, "ECOMM", "communication error on send"},
++ {71, "EPROTO", "protocol error"},
++ {73, "EDOTDOT", "RFS specific error"},
++ {74, "EMULTIHOP", "multihop attempted"},
++ {77, "EBADMSG", "bad message"},
++ {78, "ENAMETOOLONG", "file name too long"},
++ {79, "EOVERFLOW", "value too large for defined data type"},
++ {80, "ENOTUNIQ", "name not unique on network"},
++ {81, "EBADFD", "file descriptor in bad state"},
++ {82, "EREMCHG", "remote address changed"},
++ {83, "ELIBACC", "can not access a needed shared library"},
++ {84, "ELIBBAD", "accessing a corrupted shared library"},
++ {85, "ELIBSCN", ".lib section in a.out corrupted"},
++ {86, "ELIBMAX", "attempting to link in too many shared libraries"},
++ {87, "ELIBEXEC", "cannot exec a shared library directly"},
++ {88, "EILSEQ", "invalid or incomplete multibyte or wide character"},
++ {89, "ENOSYS", "function not implemented"},
++ {90, "ELOOP", "too many levels of symbolic links"},
++ {91, "ERESTART", "interrupted system call should be restarted"},
++ {92, "ESTRPIPE", "streams pipe error"},
++ {93, "ENOTEMPTY", "directory not empty"},
++ {94, "EUSERS", "too many users"},
++ {95, "ENOTSOCK", "socket operation on non-socket"},
++ {96, "EDESTADDRREQ", "destination address required"},
++ {97, "EMSGSIZE", "message too long"},
++ {98, "EPROTOTYPE", "protocol wrong type for socket"},
++ {99, "ENOPROTOOPT", "protocol not available"},
++ {120, "EPROTONOSUPPORT", "protocol not supported"},
++ {121, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {122, "ENOTSUP", "operation not supported"},
++ {123, "EPFNOSUPPORT", "protocol family not supported"},
++ {124, "EAFNOSUPPORT", "address family not supported by protocol"},
++ {125, "EADDRINUSE", "address already in use"},
++ {126, "EADDRNOTAVAIL", "cannot assign requested address"},
++ {127, "ENETDOWN", "network is down"},
++ {128, "ENETUNREACH", "network is unreachable"},
++ {129, "ENETRESET", "network dropped connection on reset"},
++ {130, "ECONNABORTED", "software caused connection abort"},
++ {131, "ECONNRESET", "connection reset by peer"},
++ {132, "ENOBUFS", "no buffer space available"},
++ {133, "EISCONN", "transport endpoint is already connected"},
++ {134, "ENOTCONN", "transport endpoint is not connected"},
++ {135, "EUCLEAN", "structure needs cleaning"},
++ {137, "ENOTNAM", "not a XENIX named type file"},
++ {138, "ENAVAIL", "no XENIX semaphores available"},
++ {139, "EISNAM", "is a named type file"},
++ {140, "EREMOTEIO", "remote I/O error"},
++ {141, "EINIT", "unknown error 141"},
++ {142, "EREMDEV", "unknown error 142"},
++ {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"},
++ {144, "ETOOMANYREFS", "too many references: cannot splice"},
++ {145, "ETIMEDOUT", "connection timed out"},
++ {146, "ECONNREFUSED", "connection refused"},
++ {147, "EHOSTDOWN", "host is down"},
++ {148, "EHOSTUNREACH", "no route to host"},
++ {149, "EALREADY", "operation already in progress"},
++ {150, "EINPROGRESS", "operation now in progress"},
++ {151, "ESTALE", "stale file handle"},
++ {158, "ECANCELED", "operation canceled"},
++ {159, "ENOMEDIUM", "no medium found"},
++ {160, "EMEDIUMTYPE", "wrong medium type"},
++ {161, "ENOKEY", "required key not available"},
++ {162, "EKEYEXPIRED", "key has expired"},
++ {163, "EKEYREVOKED", "key has been revoked"},
++ {164, "EKEYREJECTED", "key was rejected by service"},
++ {165, "EOWNERDEAD", "owner died"},
++ {166, "ENOTRECOVERABLE", "state not recoverable"},
++ {167, "ERFKILL", "operation not possible due to RF-kill"},
++ {168, "EHWPOISON", "memory page has hardware error"},
++ {1133, "EDQUOT", "disk quota exceeded"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/breakpoint trap",
+- 6: "aborted",
+- 7: "EMT trap",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "bus error",
+- 11: "segmentation fault",
+- 12: "bad system call",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "user defined signal 1",
+- 17: "user defined signal 2",
+- 18: "child exited",
+- 19: "power failure",
+- 20: "window changed",
+- 21: "urgent I/O condition",
+- 22: "I/O possible",
+- 23: "stopped (signal)",
+- 24: "stopped",
+- 25: "continued",
+- 26: "stopped (tty input)",
+- 27: "stopped (tty output)",
+- 28: "virtual timer expired",
+- 29: "profiling timer expired",
+- 30: "CPU time limit exceeded",
+- 31: "file size limit exceeded",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/breakpoint trap"},
++ {6, "SIGABRT", "aborted"},
++ {7, "SIGEMT", "EMT trap"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGBUS", "bus error"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGSYS", "bad system call"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGUSR1", "user defined signal 1"},
++ {17, "SIGUSR2", "user defined signal 2"},
++ {18, "SIGCHLD", "child exited"},
++ {19, "SIGPWR", "power failure"},
++ {20, "SIGWINCH", "window changed"},
++ {21, "SIGURG", "urgent I/O condition"},
++ {22, "SIGIO", "I/O possible"},
++ {23, "SIGSTOP", "stopped (signal)"},
++ {24, "SIGTSTP", "stopped"},
++ {25, "SIGCONT", "continued"},
++ {26, "SIGTTIN", "stopped (tty input)"},
++ {27, "SIGTTOU", "stopped (tty output)"},
++ {28, "SIGVTALRM", "virtual timer expired"},
++ {29, "SIGPROF", "profiling timer expired"},
++ {30, "SIGXCPU", "CPU time limit exceeded"},
++ {31, "SIGXFSZ", "file size limit exceeded"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
+index 44191b0c..2dfe6bba 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
+@@ -3,7 +3,7 @@
+
+ // +build mipsle,linux
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
+
+ package unix
+@@ -11,1873 +11,489 @@ package unix
+ import "syscall"
+
+ const (
+- AF_ALG = 0x26
+- AF_APPLETALK = 0x5
+- AF_ASH = 0x12
+- AF_ATMPVC = 0x8
+- AF_ATMSVC = 0x14
+- AF_AX25 = 0x3
+- AF_BLUETOOTH = 0x1f
+- AF_BRIDGE = 0x7
+- AF_CAIF = 0x25
+- AF_CAN = 0x1d
+- AF_DECnet = 0xc
+- AF_ECONET = 0x13
+- AF_FILE = 0x1
+- AF_IB = 0x1b
+- AF_IEEE802154 = 0x24
+- AF_INET = 0x2
+- AF_INET6 = 0xa
+- AF_IPX = 0x4
+- AF_IRDA = 0x17
+- AF_ISDN = 0x22
+- AF_IUCV = 0x20
+- AF_KCM = 0x29
+- AF_KEY = 0xf
+- AF_LLC = 0x1a
+- AF_LOCAL = 0x1
+- AF_MAX = 0x2b
+- AF_MPLS = 0x1c
+- AF_NETBEUI = 0xd
+- AF_NETLINK = 0x10
+- AF_NETROM = 0x6
+- AF_NFC = 0x27
+- AF_PACKET = 0x11
+- AF_PHONET = 0x23
+- AF_PPPOX = 0x18
+- AF_QIPCRTR = 0x2a
+- AF_RDS = 0x15
+- AF_ROSE = 0xb
+- AF_ROUTE = 0x10
+- AF_RXRPC = 0x21
+- AF_SECURITY = 0xe
+- AF_SNA = 0x16
+- AF_TIPC = 0x1e
+- AF_UNIX = 0x1
+- AF_UNSPEC = 0x0
+- AF_VSOCK = 0x28
+- AF_WANPIPE = 0x19
+- AF_X25 = 0x9
+- ALG_OP_DECRYPT = 0x0
+- ALG_OP_ENCRYPT = 0x1
+- ALG_SET_AEAD_ASSOCLEN = 0x4
+- ALG_SET_AEAD_AUTHSIZE = 0x5
+- ALG_SET_IV = 0x2
+- ALG_SET_KEY = 0x1
+- ALG_SET_OP = 0x3
+- ARPHRD_6LOWPAN = 0x339
+- ARPHRD_ADAPT = 0x108
+- ARPHRD_APPLETLK = 0x8
+- ARPHRD_ARCNET = 0x7
+- ARPHRD_ASH = 0x30d
+- ARPHRD_ATM = 0x13
+- ARPHRD_AX25 = 0x3
+- ARPHRD_BIF = 0x307
+- ARPHRD_CAIF = 0x336
+- ARPHRD_CAN = 0x118
+- ARPHRD_CHAOS = 0x5
+- ARPHRD_CISCO = 0x201
+- ARPHRD_CSLIP = 0x101
+- ARPHRD_CSLIP6 = 0x103
+- ARPHRD_DDCMP = 0x205
+- ARPHRD_DLCI = 0xf
+- ARPHRD_ECONET = 0x30e
+- ARPHRD_EETHER = 0x2
+- ARPHRD_ETHER = 0x1
+- ARPHRD_EUI64 = 0x1b
+- ARPHRD_FCAL = 0x311
+- ARPHRD_FCFABRIC = 0x313
+- ARPHRD_FCPL = 0x312
+- ARPHRD_FCPP = 0x310
+- ARPHRD_FDDI = 0x306
+- ARPHRD_FRAD = 0x302
+- ARPHRD_HDLC = 0x201
+- ARPHRD_HIPPI = 0x30c
+- ARPHRD_HWX25 = 0x110
+- ARPHRD_IEEE1394 = 0x18
+- ARPHRD_IEEE802 = 0x6
+- ARPHRD_IEEE80211 = 0x321
+- ARPHRD_IEEE80211_PRISM = 0x322
+- ARPHRD_IEEE80211_RADIOTAP = 0x323
+- ARPHRD_IEEE802154 = 0x324
+- ARPHRD_IEEE802154_MONITOR = 0x325
+- ARPHRD_IEEE802_TR = 0x320
+- ARPHRD_INFINIBAND = 0x20
+- ARPHRD_IP6GRE = 0x337
+- ARPHRD_IPDDP = 0x309
+- ARPHRD_IPGRE = 0x30a
+- ARPHRD_IRDA = 0x30f
+- ARPHRD_LAPB = 0x204
+- ARPHRD_LOCALTLK = 0x305
+- ARPHRD_LOOPBACK = 0x304
+- ARPHRD_METRICOM = 0x17
+- ARPHRD_NETLINK = 0x338
+- ARPHRD_NETROM = 0x0
+- ARPHRD_NONE = 0xfffe
+- ARPHRD_PHONET = 0x334
+- ARPHRD_PHONET_PIPE = 0x335
+- ARPHRD_PIMREG = 0x30b
+- ARPHRD_PPP = 0x200
+- ARPHRD_PRONET = 0x4
+- ARPHRD_RAWHDLC = 0x206
+- ARPHRD_ROSE = 0x10e
+- ARPHRD_RSRVD = 0x104
+- ARPHRD_SIT = 0x308
+- ARPHRD_SKIP = 0x303
+- ARPHRD_SLIP = 0x100
+- ARPHRD_SLIP6 = 0x102
+- ARPHRD_TUNNEL = 0x300
+- ARPHRD_TUNNEL6 = 0x301
+- ARPHRD_VOID = 0xffff
+- ARPHRD_X25 = 0x10f
+- B0 = 0x0
+- B1000000 = 0x1008
+- B110 = 0x3
+- B115200 = 0x1002
+- B1152000 = 0x1009
+- B1200 = 0x9
+- B134 = 0x4
+- B150 = 0x5
+- B1500000 = 0x100a
+- B1800 = 0xa
+- B19200 = 0xe
+- B200 = 0x6
+- B2000000 = 0x100b
+- B230400 = 0x1003
+- B2400 = 0xb
+- B2500000 = 0x100c
+- B300 = 0x7
+- B3000000 = 0x100d
+- B3500000 = 0x100e
+- B38400 = 0xf
+- B4000000 = 0x100f
+- B460800 = 0x1004
+- B4800 = 0xc
+- B50 = 0x1
+- B500000 = 0x1005
+- B57600 = 0x1001
+- B576000 = 0x1006
+- B600 = 0x8
+- B75 = 0x2
+- B921600 = 0x1007
+- B9600 = 0xd
+- BLKBSZGET = 0x40041270
+- BLKBSZSET = 0x80041271
+- BLKFLSBUF = 0x20001261
+- BLKFRAGET = 0x20001265
+- BLKFRASET = 0x20001264
+- BLKGETSIZE = 0x20001260
+- BLKGETSIZE64 = 0x40041272
+- BLKPBSZGET = 0x2000127b
+- BLKRAGET = 0x20001263
+- BLKRASET = 0x20001262
+- BLKROGET = 0x2000125e
+- BLKROSET = 0x2000125d
+- BLKRRPART = 0x2000125f
+- BLKSECTGET = 0x20001267
+- BLKSECTSET = 0x20001266
+- BLKSSZGET = 0x20001268
+- BOTHER = 0x1000
+- BPF_A = 0x10
+- BPF_ABS = 0x20
+- BPF_ADD = 0x0
+- BPF_ALU = 0x4
+- BPF_AND = 0x50
+- BPF_B = 0x10
+- BPF_DIV = 0x30
+- BPF_H = 0x8
+- BPF_IMM = 0x0
+- BPF_IND = 0x40
+- BPF_JA = 0x0
+- BPF_JEQ = 0x10
+- BPF_JGE = 0x30
+- BPF_JGT = 0x20
+- BPF_JMP = 0x5
+- BPF_JSET = 0x40
+- BPF_K = 0x0
+- BPF_LD = 0x0
+- BPF_LDX = 0x1
+- BPF_LEN = 0x80
+- BPF_LL_OFF = -0x200000
+- BPF_LSH = 0x60
+- BPF_MAJOR_VERSION = 0x1
+- BPF_MAXINSNS = 0x1000
+- BPF_MEM = 0x60
+- BPF_MEMWORDS = 0x10
+- BPF_MINOR_VERSION = 0x1
+- BPF_MISC = 0x7
+- BPF_MOD = 0x90
+- BPF_MSH = 0xa0
+- BPF_MUL = 0x20
+- BPF_NEG = 0x80
+- BPF_NET_OFF = -0x100000
+- BPF_OR = 0x40
+- BPF_RET = 0x6
+- BPF_RSH = 0x70
+- BPF_ST = 0x2
+- BPF_STX = 0x3
+- BPF_SUB = 0x10
+- BPF_TAX = 0x0
+- BPF_TXA = 0x80
+- BPF_W = 0x0
+- BPF_X = 0x8
+- BPF_XOR = 0xa0
+- BRKINT = 0x2
+- BS0 = 0x0
+- BS1 = 0x2000
+- BSDLY = 0x2000
+- CAN_BCM = 0x2
+- CAN_EFF_FLAG = 0x80000000
+- CAN_EFF_ID_BITS = 0x1d
+- CAN_EFF_MASK = 0x1fffffff
+- CAN_ERR_FLAG = 0x20000000
+- CAN_ERR_MASK = 0x1fffffff
+- CAN_INV_FILTER = 0x20000000
+- CAN_ISOTP = 0x6
+- CAN_MAX_DLC = 0x8
+- CAN_MAX_DLEN = 0x8
+- CAN_MCNET = 0x5
+- CAN_MTU = 0x10
+- CAN_NPROTO = 0x7
+- CAN_RAW = 0x1
+- CAN_RAW_FILTER_MAX = 0x200
+- CAN_RTR_FLAG = 0x40000000
+- CAN_SFF_ID_BITS = 0xb
+- CAN_SFF_MASK = 0x7ff
+- CAN_TP16 = 0x3
+- CAN_TP20 = 0x4
+- CBAUD = 0x100f
+- CBAUDEX = 0x1000
+- CFLUSH = 0xf
+- CIBAUD = 0x100f0000
+- CLOCAL = 0x800
+- CLOCK_BOOTTIME = 0x7
+- CLOCK_BOOTTIME_ALARM = 0x9
+- CLOCK_DEFAULT = 0x0
+- CLOCK_EXT = 0x1
+- CLOCK_INT = 0x2
+- CLOCK_MONOTONIC = 0x1
+- CLOCK_MONOTONIC_COARSE = 0x6
+- CLOCK_MONOTONIC_RAW = 0x4
+- CLOCK_PROCESS_CPUTIME_ID = 0x2
+- CLOCK_REALTIME = 0x0
+- CLOCK_REALTIME_ALARM = 0x8
+- CLOCK_REALTIME_COARSE = 0x5
+- CLOCK_TAI = 0xb
+- CLOCK_THREAD_CPUTIME_ID = 0x3
+- CLOCK_TXFROMRX = 0x4
+- CLOCK_TXINT = 0x3
+- CLONE_CHILD_CLEARTID = 0x200000
+- CLONE_CHILD_SETTID = 0x1000000
+- CLONE_DETACHED = 0x400000
+- CLONE_FILES = 0x400
+- CLONE_FS = 0x200
+- CLONE_IO = 0x80000000
+- CLONE_NEWCGROUP = 0x2000000
+- CLONE_NEWIPC = 0x8000000
+- CLONE_NEWNET = 0x40000000
+- CLONE_NEWNS = 0x20000
+- CLONE_NEWPID = 0x20000000
+- CLONE_NEWUSER = 0x10000000
+- CLONE_NEWUTS = 0x4000000
+- CLONE_PARENT = 0x8000
+- CLONE_PARENT_SETTID = 0x100000
+- CLONE_PTRACE = 0x2000
+- CLONE_SETTLS = 0x80000
+- CLONE_SIGHAND = 0x800
+- CLONE_SYSVSEM = 0x40000
+- CLONE_THREAD = 0x10000
+- CLONE_UNTRACED = 0x800000
+- CLONE_VFORK = 0x4000
+- CLONE_VM = 0x100
+- CMSPAR = 0x40000000
+- CR0 = 0x0
+- CR1 = 0x200
+- CR2 = 0x400
+- CR3 = 0x600
+- CRDLY = 0x600
+- CREAD = 0x80
+- CRTSCTS = 0x80000000
+- CS5 = 0x0
+- CS6 = 0x10
+- CS7 = 0x20
+- CS8 = 0x30
+- CSIGNAL = 0xff
+- CSIZE = 0x30
+- CSTART = 0x11
+- CSTATUS = 0x0
+- CSTOP = 0x13
+- CSTOPB = 0x40
+- CSUSP = 0x1a
+- DT_BLK = 0x6
+- DT_CHR = 0x2
+- DT_DIR = 0x4
+- DT_FIFO = 0x1
+- DT_LNK = 0xa
+- DT_REG = 0x8
+- DT_SOCK = 0xc
+- DT_UNKNOWN = 0x0
+- DT_WHT = 0xe
+- ECHO = 0x8
+- ECHOCTL = 0x200
+- ECHOE = 0x10
+- ECHOK = 0x20
+- ECHOKE = 0x800
+- ECHONL = 0x40
+- ECHOPRT = 0x400
+- EFD_CLOEXEC = 0x80000
+- EFD_NONBLOCK = 0x80
+- EFD_SEMAPHORE = 0x1
+- ENCODING_DEFAULT = 0x0
+- ENCODING_FM_MARK = 0x3
+- ENCODING_FM_SPACE = 0x4
+- ENCODING_MANCHESTER = 0x5
+- ENCODING_NRZ = 0x1
+- ENCODING_NRZI = 0x2
+- EPOLLERR = 0x8
+- EPOLLET = 0x80000000
+- EPOLLEXCLUSIVE = 0x10000000
+- EPOLLHUP = 0x10
+- EPOLLIN = 0x1
+- EPOLLMSG = 0x400
+- EPOLLONESHOT = 0x40000000
+- EPOLLOUT = 0x4
+- EPOLLPRI = 0x2
+- EPOLLRDBAND = 0x80
+- EPOLLRDHUP = 0x2000
+- EPOLLRDNORM = 0x40
+- EPOLLWAKEUP = 0x20000000
+- EPOLLWRBAND = 0x200
+- EPOLLWRNORM = 0x100
+- EPOLL_CLOEXEC = 0x80000
+- EPOLL_CTL_ADD = 0x1
+- EPOLL_CTL_DEL = 0x2
+- EPOLL_CTL_MOD = 0x3
+- ETH_P_1588 = 0x88f7
+- ETH_P_8021AD = 0x88a8
+- ETH_P_8021AH = 0x88e7
+- ETH_P_8021Q = 0x8100
+- ETH_P_80221 = 0x8917
+- ETH_P_802_2 = 0x4
+- ETH_P_802_3 = 0x1
+- ETH_P_802_3_MIN = 0x600
+- ETH_P_802_EX1 = 0x88b5
+- ETH_P_AARP = 0x80f3
+- ETH_P_AF_IUCV = 0xfbfb
+- ETH_P_ALL = 0x3
+- ETH_P_AOE = 0x88a2
+- ETH_P_ARCNET = 0x1a
+- ETH_P_ARP = 0x806
+- ETH_P_ATALK = 0x809b
+- ETH_P_ATMFATE = 0x8884
+- ETH_P_ATMMPOA = 0x884c
+- ETH_P_AX25 = 0x2
+- ETH_P_BATMAN = 0x4305
+- ETH_P_BPQ = 0x8ff
+- ETH_P_CAIF = 0xf7
+- ETH_P_CAN = 0xc
+- ETH_P_CANFD = 0xd
+- ETH_P_CONTROL = 0x16
+- ETH_P_CUST = 0x6006
+- ETH_P_DDCMP = 0x6
+- ETH_P_DEC = 0x6000
+- ETH_P_DIAG = 0x6005
+- ETH_P_DNA_DL = 0x6001
+- ETH_P_DNA_RC = 0x6002
+- ETH_P_DNA_RT = 0x6003
+- ETH_P_DSA = 0x1b
+- ETH_P_ECONET = 0x18
+- ETH_P_EDSA = 0xdada
+- ETH_P_FCOE = 0x8906
+- ETH_P_FIP = 0x8914
+- ETH_P_HDLC = 0x19
+- ETH_P_HSR = 0x892f
+- ETH_P_IEEE802154 = 0xf6
+- ETH_P_IEEEPUP = 0xa00
+- ETH_P_IEEEPUPAT = 0xa01
+- ETH_P_IP = 0x800
+- ETH_P_IPV6 = 0x86dd
+- ETH_P_IPX = 0x8137
+- ETH_P_IRDA = 0x17
+- ETH_P_LAT = 0x6004
+- ETH_P_LINK_CTL = 0x886c
+- ETH_P_LOCALTALK = 0x9
+- ETH_P_LOOP = 0x60
+- ETH_P_LOOPBACK = 0x9000
+- ETH_P_MACSEC = 0x88e5
+- ETH_P_MOBITEX = 0x15
+- ETH_P_MPLS_MC = 0x8848
+- ETH_P_MPLS_UC = 0x8847
+- ETH_P_MVRP = 0x88f5
+- ETH_P_NCSI = 0x88f8
+- ETH_P_PAE = 0x888e
+- ETH_P_PAUSE = 0x8808
+- ETH_P_PHONET = 0xf5
+- ETH_P_PPPTALK = 0x10
+- ETH_P_PPP_DISC = 0x8863
+- ETH_P_PPP_MP = 0x8
+- ETH_P_PPP_SES = 0x8864
+- ETH_P_PRP = 0x88fb
+- ETH_P_PUP = 0x200
+- ETH_P_PUPAT = 0x201
+- ETH_P_QINQ1 = 0x9100
+- ETH_P_QINQ2 = 0x9200
+- ETH_P_QINQ3 = 0x9300
+- ETH_P_RARP = 0x8035
+- ETH_P_SCA = 0x6007
+- ETH_P_SLOW = 0x8809
+- ETH_P_SNAP = 0x5
+- ETH_P_TDLS = 0x890d
+- ETH_P_TEB = 0x6558
+- ETH_P_TIPC = 0x88ca
+- ETH_P_TRAILER = 0x1c
+- ETH_P_TR_802_2 = 0x11
+- ETH_P_TSN = 0x22f0
+- ETH_P_WAN_PPP = 0x7
+- ETH_P_WCCP = 0x883e
+- ETH_P_X25 = 0x805
+- ETH_P_XDSA = 0xf8
+- EXTA = 0xe
+- EXTB = 0xf
+- EXTPROC = 0x10000
+- FALLOC_FL_COLLAPSE_RANGE = 0x8
+- FALLOC_FL_INSERT_RANGE = 0x20
+- FALLOC_FL_KEEP_SIZE = 0x1
+- FALLOC_FL_NO_HIDE_STALE = 0x4
+- FALLOC_FL_PUNCH_HOLE = 0x2
+- FALLOC_FL_UNSHARE_RANGE = 0x40
+- FALLOC_FL_ZERO_RANGE = 0x10
+- FD_CLOEXEC = 0x1
+- FD_SETSIZE = 0x400
+- FF0 = 0x0
+- FF1 = 0x8000
+- FFDLY = 0x8000
+- FLUSHO = 0x2000
+- FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
+- FS_ENCRYPTION_MODE_AES_256_CTS = 0x4
+- FS_ENCRYPTION_MODE_AES_256_GCM = 0x2
+- FS_ENCRYPTION_MODE_AES_256_XTS = 0x1
+- FS_ENCRYPTION_MODE_INVALID = 0x0
+- FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615
+- FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614
+- FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613
+- FS_KEY_DESCRIPTOR_SIZE = 0x8
+- FS_KEY_DESC_PREFIX = "fscrypt:"
+- FS_KEY_DESC_PREFIX_SIZE = 0x8
+- FS_MAX_KEY_SIZE = 0x40
+- FS_POLICY_FLAGS_PAD_16 = 0x2
+- FS_POLICY_FLAGS_PAD_32 = 0x3
+- FS_POLICY_FLAGS_PAD_4 = 0x0
+- FS_POLICY_FLAGS_PAD_8 = 0x1
+- FS_POLICY_FLAGS_PAD_MASK = 0x3
+- FS_POLICY_FLAGS_VALID = 0x3
+- F_DUPFD = 0x0
+- F_DUPFD_CLOEXEC = 0x406
+- F_EXLCK = 0x4
+- F_GETFD = 0x1
+- F_GETFL = 0x3
+- F_GETLEASE = 0x401
+- F_GETLK = 0x21
+- F_GETLK64 = 0x21
+- F_GETOWN = 0x17
+- F_GETOWN_EX = 0x10
+- F_GETPIPE_SZ = 0x408
+- F_GETSIG = 0xb
+- F_LOCK = 0x1
+- F_NOTIFY = 0x402
+- F_OFD_GETLK = 0x24
+- F_OFD_SETLK = 0x25
+- F_OFD_SETLKW = 0x26
+- F_OK = 0x0
+- F_RDLCK = 0x0
+- F_SETFD = 0x2
+- F_SETFL = 0x4
+- F_SETLEASE = 0x400
+- F_SETLK = 0x22
+- F_SETLK64 = 0x22
+- F_SETLKW = 0x23
+- F_SETLKW64 = 0x23
+- F_SETOWN = 0x18
+- F_SETOWN_EX = 0xf
+- F_SETPIPE_SZ = 0x407
+- F_SETSIG = 0xa
+- F_SHLCK = 0x8
+- F_TEST = 0x3
+- F_TLOCK = 0x2
+- F_ULOCK = 0x0
+- F_UNLCK = 0x2
+- F_WRLCK = 0x1
+- GENL_ADMIN_PERM = 0x1
+- GENL_CMD_CAP_DO = 0x2
+- GENL_CMD_CAP_DUMP = 0x4
+- GENL_CMD_CAP_HASPOL = 0x8
+- GENL_HDRLEN = 0x4
+- GENL_ID_CTRL = 0x10
+- GENL_ID_PMCRAID = 0x12
+- GENL_ID_VFS_DQUOT = 0x11
+- GENL_MAX_ID = 0x3ff
+- GENL_MIN_ID = 0x10
+- GENL_NAMSIZ = 0x10
+- GENL_START_ALLOC = 0x13
+- GENL_UNS_ADMIN_PERM = 0x10
+- GRND_NONBLOCK = 0x1
+- GRND_RANDOM = 0x2
+- HUPCL = 0x400
+- IBSHIFT = 0x10
+- ICANON = 0x2
+- ICMPV6_FILTER = 0x1
+- ICRNL = 0x100
+- IEXTEN = 0x100
+- IFA_F_DADFAILED = 0x8
+- IFA_F_DEPRECATED = 0x20
+- IFA_F_HOMEADDRESS = 0x10
+- IFA_F_MANAGETEMPADDR = 0x100
+- IFA_F_MCAUTOJOIN = 0x400
+- IFA_F_NODAD = 0x2
+- IFA_F_NOPREFIXROUTE = 0x200
+- IFA_F_OPTIMISTIC = 0x4
+- IFA_F_PERMANENT = 0x80
+- IFA_F_SECONDARY = 0x1
+- IFA_F_STABLE_PRIVACY = 0x800
+- IFA_F_TEMPORARY = 0x1
+- IFA_F_TENTATIVE = 0x40
+- IFA_MAX = 0x8
+- IFF_ALLMULTI = 0x200
+- IFF_ATTACH_QUEUE = 0x200
+- IFF_AUTOMEDIA = 0x4000
+- IFF_BROADCAST = 0x2
+- IFF_DEBUG = 0x4
+- IFF_DETACH_QUEUE = 0x400
+- IFF_DORMANT = 0x20000
+- IFF_DYNAMIC = 0x8000
+- IFF_ECHO = 0x40000
+- IFF_LOOPBACK = 0x8
+- IFF_LOWER_UP = 0x10000
+- IFF_MASTER = 0x400
+- IFF_MULTICAST = 0x1000
+- IFF_MULTI_QUEUE = 0x100
+- IFF_NOARP = 0x80
+- IFF_NOFILTER = 0x1000
+- IFF_NOTRAILERS = 0x20
+- IFF_NO_PI = 0x1000
+- IFF_ONE_QUEUE = 0x2000
+- IFF_PERSIST = 0x800
+- IFF_POINTOPOINT = 0x10
+- IFF_PORTSEL = 0x2000
+- IFF_PROMISC = 0x100
+- IFF_RUNNING = 0x40
+- IFF_SLAVE = 0x800
+- IFF_TAP = 0x2
+- IFF_TUN = 0x1
+- IFF_TUN_EXCL = 0x8000
+- IFF_UP = 0x1
+- IFF_VNET_HDR = 0x4000
+- IFF_VOLATILE = 0x70c5a
+- IFNAMSIZ = 0x10
+- IGNBRK = 0x1
+- IGNCR = 0x80
+- IGNPAR = 0x4
+- IMAXBEL = 0x2000
+- INLCR = 0x40
+- INPCK = 0x10
+- IN_ACCESS = 0x1
+- IN_ALL_EVENTS = 0xfff
+- IN_ATTRIB = 0x4
+- IN_CLASSA_HOST = 0xffffff
+- IN_CLASSA_MAX = 0x80
+- IN_CLASSA_NET = 0xff000000
+- IN_CLASSA_NSHIFT = 0x18
+- IN_CLASSB_HOST = 0xffff
+- IN_CLASSB_MAX = 0x10000
+- IN_CLASSB_NET = 0xffff0000
+- IN_CLASSB_NSHIFT = 0x10
+- IN_CLASSC_HOST = 0xff
+- IN_CLASSC_NET = 0xffffff00
+- IN_CLASSC_NSHIFT = 0x8
+- IN_CLOEXEC = 0x80000
+- IN_CLOSE = 0x18
+- IN_CLOSE_NOWRITE = 0x10
+- IN_CLOSE_WRITE = 0x8
+- IN_CREATE = 0x100
+- IN_DELETE = 0x200
+- IN_DELETE_SELF = 0x400
+- IN_DONT_FOLLOW = 0x2000000
+- IN_EXCL_UNLINK = 0x4000000
+- IN_IGNORED = 0x8000
+- IN_ISDIR = 0x40000000
+- IN_LOOPBACKNET = 0x7f
+- IN_MASK_ADD = 0x20000000
+- IN_MODIFY = 0x2
+- IN_MOVE = 0xc0
+- IN_MOVED_FROM = 0x40
+- IN_MOVED_TO = 0x80
+- IN_MOVE_SELF = 0x800
+- IN_NONBLOCK = 0x80
+- IN_ONESHOT = 0x80000000
+- IN_ONLYDIR = 0x1000000
+- IN_OPEN = 0x20
+- IN_Q_OVERFLOW = 0x4000
+- IN_UNMOUNT = 0x2000
+- IPPROTO_AH = 0x33
+- IPPROTO_BEETPH = 0x5e
+- IPPROTO_COMP = 0x6c
+- IPPROTO_DCCP = 0x21
+- IPPROTO_DSTOPTS = 0x3c
+- IPPROTO_EGP = 0x8
+- IPPROTO_ENCAP = 0x62
+- IPPROTO_ESP = 0x32
+- IPPROTO_FRAGMENT = 0x2c
+- IPPROTO_GRE = 0x2f
+- IPPROTO_HOPOPTS = 0x0
+- IPPROTO_ICMP = 0x1
+- IPPROTO_ICMPV6 = 0x3a
+- IPPROTO_IDP = 0x16
+- IPPROTO_IGMP = 0x2
+- IPPROTO_IP = 0x0
+- IPPROTO_IPIP = 0x4
+- IPPROTO_IPV6 = 0x29
+- IPPROTO_MH = 0x87
+- IPPROTO_MPLS = 0x89
+- IPPROTO_MTP = 0x5c
+- IPPROTO_NONE = 0x3b
+- IPPROTO_PIM = 0x67
+- IPPROTO_PUP = 0xc
+- IPPROTO_RAW = 0xff
+- IPPROTO_ROUTING = 0x2b
+- IPPROTO_RSVP = 0x2e
+- IPPROTO_SCTP = 0x84
+- IPPROTO_TCP = 0x6
+- IPPROTO_TP = 0x1d
+- IPPROTO_UDP = 0x11
+- IPPROTO_UDPLITE = 0x88
+- IPV6_2292DSTOPTS = 0x4
+- IPV6_2292HOPLIMIT = 0x8
+- IPV6_2292HOPOPTS = 0x3
+- IPV6_2292PKTINFO = 0x2
+- IPV6_2292PKTOPTIONS = 0x6
+- IPV6_2292RTHDR = 0x5
+- IPV6_ADDRFORM = 0x1
+- IPV6_ADD_MEMBERSHIP = 0x14
+- IPV6_AUTHHDR = 0xa
+- IPV6_CHECKSUM = 0x7
+- IPV6_DONTFRAG = 0x3e
+- IPV6_DROP_MEMBERSHIP = 0x15
+- IPV6_DSTOPTS = 0x3b
+- IPV6_HDRINCL = 0x24
+- IPV6_HOPLIMIT = 0x34
+- IPV6_HOPOPTS = 0x36
+- IPV6_IPSEC_POLICY = 0x22
+- IPV6_JOIN_ANYCAST = 0x1b
+- IPV6_JOIN_GROUP = 0x14
+- IPV6_LEAVE_ANYCAST = 0x1c
+- IPV6_LEAVE_GROUP = 0x15
+- IPV6_MTU = 0x18
+- IPV6_MTU_DISCOVER = 0x17
+- IPV6_MULTICAST_HOPS = 0x12
+- IPV6_MULTICAST_IF = 0x11
+- IPV6_MULTICAST_LOOP = 0x13
+- IPV6_NEXTHOP = 0x9
+- IPV6_PATHMTU = 0x3d
+- IPV6_PKTINFO = 0x32
+- IPV6_PMTUDISC_DO = 0x2
+- IPV6_PMTUDISC_DONT = 0x0
+- IPV6_PMTUDISC_INTERFACE = 0x4
+- IPV6_PMTUDISC_OMIT = 0x5
+- IPV6_PMTUDISC_PROBE = 0x3
+- IPV6_PMTUDISC_WANT = 0x1
+- IPV6_RECVDSTOPTS = 0x3a
+- IPV6_RECVERR = 0x19
+- IPV6_RECVHOPLIMIT = 0x33
+- IPV6_RECVHOPOPTS = 0x35
+- IPV6_RECVPATHMTU = 0x3c
+- IPV6_RECVPKTINFO = 0x31
+- IPV6_RECVRTHDR = 0x38
+- IPV6_RECVTCLASS = 0x42
+- IPV6_ROUTER_ALERT = 0x16
+- IPV6_RTHDR = 0x39
+- IPV6_RTHDRDSTOPTS = 0x37
+- IPV6_RTHDR_LOOSE = 0x0
+- IPV6_RTHDR_STRICT = 0x1
+- IPV6_RTHDR_TYPE_0 = 0x0
+- IPV6_RXDSTOPTS = 0x3b
+- IPV6_RXHOPOPTS = 0x36
+- IPV6_TCLASS = 0x43
+- IPV6_UNICAST_HOPS = 0x10
+- IPV6_V6ONLY = 0x1a
+- IPV6_XFRM_POLICY = 0x23
+- IP_ADD_MEMBERSHIP = 0x23
+- IP_ADD_SOURCE_MEMBERSHIP = 0x27
+- IP_BIND_ADDRESS_NO_PORT = 0x18
+- IP_BLOCK_SOURCE = 0x26
+- IP_CHECKSUM = 0x17
+- IP_DEFAULT_MULTICAST_LOOP = 0x1
+- IP_DEFAULT_MULTICAST_TTL = 0x1
+- IP_DF = 0x4000
+- IP_DROP_MEMBERSHIP = 0x24
+- IP_DROP_SOURCE_MEMBERSHIP = 0x28
+- IP_FREEBIND = 0xf
+- IP_HDRINCL = 0x3
+- IP_IPSEC_POLICY = 0x10
+- IP_MAXPACKET = 0xffff
+- IP_MAX_MEMBERSHIPS = 0x14
+- IP_MF = 0x2000
+- IP_MINTTL = 0x15
+- IP_MSFILTER = 0x29
+- IP_MSS = 0x240
+- IP_MTU = 0xe
+- IP_MTU_DISCOVER = 0xa
+- IP_MULTICAST_ALL = 0x31
+- IP_MULTICAST_IF = 0x20
+- IP_MULTICAST_LOOP = 0x22
+- IP_MULTICAST_TTL = 0x21
+- IP_NODEFRAG = 0x16
+- IP_OFFMASK = 0x1fff
+- IP_OPTIONS = 0x4
+- IP_ORIGDSTADDR = 0x14
+- IP_PASSSEC = 0x12
+- IP_PKTINFO = 0x8
+- IP_PKTOPTIONS = 0x9
+- IP_PMTUDISC = 0xa
+- IP_PMTUDISC_DO = 0x2
+- IP_PMTUDISC_DONT = 0x0
+- IP_PMTUDISC_INTERFACE = 0x4
+- IP_PMTUDISC_OMIT = 0x5
+- IP_PMTUDISC_PROBE = 0x3
+- IP_PMTUDISC_WANT = 0x1
+- IP_RECVERR = 0xb
+- IP_RECVOPTS = 0x6
+- IP_RECVORIGDSTADDR = 0x14
+- IP_RECVRETOPTS = 0x7
+- IP_RECVTOS = 0xd
+- IP_RECVTTL = 0xc
+- IP_RETOPTS = 0x7
+- IP_RF = 0x8000
+- IP_ROUTER_ALERT = 0x5
+- IP_TOS = 0x1
+- IP_TRANSPARENT = 0x13
+- IP_TTL = 0x2
+- IP_UNBLOCK_SOURCE = 0x25
+- IP_UNICAST_IF = 0x32
+- IP_XFRM_POLICY = 0x11
+- ISIG = 0x1
+- ISTRIP = 0x20
+- IUCLC = 0x200
+- IUTF8 = 0x4000
+- IXANY = 0x800
+- IXOFF = 0x1000
+- IXON = 0x400
+- KEYCTL_ASSUME_AUTHORITY = 0x10
+- KEYCTL_CHOWN = 0x4
+- KEYCTL_CLEAR = 0x7
+- KEYCTL_DESCRIBE = 0x6
+- KEYCTL_DH_COMPUTE = 0x17
+- KEYCTL_GET_KEYRING_ID = 0x0
+- KEYCTL_GET_PERSISTENT = 0x16
+- KEYCTL_GET_SECURITY = 0x11
+- KEYCTL_INSTANTIATE = 0xc
+- KEYCTL_INSTANTIATE_IOV = 0x14
+- KEYCTL_INVALIDATE = 0x15
+- KEYCTL_JOIN_SESSION_KEYRING = 0x1
+- KEYCTL_LINK = 0x8
+- KEYCTL_NEGATE = 0xd
+- KEYCTL_READ = 0xb
+- KEYCTL_REJECT = 0x13
+- KEYCTL_REVOKE = 0x3
+- KEYCTL_SEARCH = 0xa
+- KEYCTL_SESSION_TO_PARENT = 0x12
+- KEYCTL_SETPERM = 0x5
+- KEYCTL_SET_REQKEY_KEYRING = 0xe
+- KEYCTL_SET_TIMEOUT = 0xf
+- KEYCTL_UNLINK = 0x9
+- KEYCTL_UPDATE = 0x2
+- KEY_REQKEY_DEFL_DEFAULT = 0x0
+- KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6
+- KEY_REQKEY_DEFL_NO_CHANGE = -0x1
+- KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2
+- KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7
+- KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3
+- KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1
+- KEY_REQKEY_DEFL_USER_KEYRING = 0x4
+- KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
+- KEY_SPEC_GROUP_KEYRING = -0x6
+- KEY_SPEC_PROCESS_KEYRING = -0x2
+- KEY_SPEC_REQKEY_AUTH_KEY = -0x7
+- KEY_SPEC_REQUESTOR_KEYRING = -0x8
+- KEY_SPEC_SESSION_KEYRING = -0x3
+- KEY_SPEC_THREAD_KEYRING = -0x1
+- KEY_SPEC_USER_KEYRING = -0x4
+- KEY_SPEC_USER_SESSION_KEYRING = -0x5
+- LINUX_REBOOT_CMD_CAD_OFF = 0x0
+- LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
+- LINUX_REBOOT_CMD_HALT = 0xcdef0123
+- LINUX_REBOOT_CMD_KEXEC = 0x45584543
+- LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
+- LINUX_REBOOT_CMD_RESTART = 0x1234567
+- LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
+- LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
+- LINUX_REBOOT_MAGIC1 = 0xfee1dead
+- LINUX_REBOOT_MAGIC2 = 0x28121969
+- LOCK_EX = 0x2
+- LOCK_NB = 0x4
+- LOCK_SH = 0x1
+- LOCK_UN = 0x8
+- MADV_DODUMP = 0x11
+- MADV_DOFORK = 0xb
+- MADV_DONTDUMP = 0x10
+- MADV_DONTFORK = 0xa
+- MADV_DONTNEED = 0x4
+- MADV_FREE = 0x8
+- MADV_HUGEPAGE = 0xe
+- MADV_HWPOISON = 0x64
+- MADV_MERGEABLE = 0xc
+- MADV_NOHUGEPAGE = 0xf
+- MADV_NORMAL = 0x0
+- MADV_RANDOM = 0x1
+- MADV_REMOVE = 0x9
+- MADV_SEQUENTIAL = 0x2
+- MADV_UNMERGEABLE = 0xd
+- MADV_WILLNEED = 0x3
+- MAP_ANON = 0x800
+- MAP_ANONYMOUS = 0x800
+- MAP_DENYWRITE = 0x2000
+- MAP_EXECUTABLE = 0x4000
+- MAP_FILE = 0x0
+- MAP_FIXED = 0x10
+- MAP_GROWSDOWN = 0x1000
+- MAP_HUGETLB = 0x80000
+- MAP_HUGE_MASK = 0x3f
+- MAP_HUGE_SHIFT = 0x1a
+- MAP_LOCKED = 0x8000
+- MAP_NONBLOCK = 0x20000
+- MAP_NORESERVE = 0x400
+- MAP_POPULATE = 0x10000
+- MAP_PRIVATE = 0x2
+- MAP_RENAME = 0x800
+- MAP_SHARED = 0x1
+- MAP_STACK = 0x40000
+- MAP_TYPE = 0xf
+- MCL_CURRENT = 0x1
+- MCL_FUTURE = 0x2
+- MCL_ONFAULT = 0x4
+- MNT_DETACH = 0x2
+- MNT_EXPIRE = 0x4
+- MNT_FORCE = 0x1
+- MSG_BATCH = 0x40000
+- MSG_CMSG_CLOEXEC = 0x40000000
+- MSG_CONFIRM = 0x800
+- MSG_CTRUNC = 0x8
+- MSG_DONTROUTE = 0x4
+- MSG_DONTWAIT = 0x40
+- MSG_EOR = 0x80
+- MSG_ERRQUEUE = 0x2000
+- MSG_FASTOPEN = 0x20000000
+- MSG_FIN = 0x200
+- MSG_MORE = 0x8000
+- MSG_NOSIGNAL = 0x4000
+- MSG_OOB = 0x1
+- MSG_PEEK = 0x2
+- MSG_PROXY = 0x10
+- MSG_RST = 0x1000
+- MSG_SYN = 0x400
+- MSG_TRUNC = 0x20
+- MSG_TRYHARD = 0x4
+- MSG_WAITALL = 0x100
+- MSG_WAITFORONE = 0x10000
+- MS_ACTIVE = 0x40000000
+- MS_ASYNC = 0x1
+- MS_BIND = 0x1000
+- MS_BORN = 0x20000000
+- MS_DIRSYNC = 0x80
+- MS_INVALIDATE = 0x2
+- MS_I_VERSION = 0x800000
+- MS_KERNMOUNT = 0x400000
+- MS_LAZYTIME = 0x2000000
+- MS_MANDLOCK = 0x40
+- MS_MGC_MSK = 0xffff0000
+- MS_MGC_VAL = 0xc0ed0000
+- MS_MOVE = 0x2000
+- MS_NOATIME = 0x400
+- MS_NODEV = 0x4
+- MS_NODIRATIME = 0x800
+- MS_NOEXEC = 0x8
+- MS_NOREMOTELOCK = 0x8000000
+- MS_NOSEC = 0x10000000
+- MS_NOSUID = 0x2
+- MS_NOUSER = -0x80000000
+- MS_POSIXACL = 0x10000
+- MS_PRIVATE = 0x40000
+- MS_RDONLY = 0x1
+- MS_REC = 0x4000
+- MS_RELATIME = 0x200000
+- MS_REMOUNT = 0x20
+- MS_RMT_MASK = 0x2800051
+- MS_SHARED = 0x100000
+- MS_SILENT = 0x8000
+- MS_SLAVE = 0x80000
+- MS_STRICTATIME = 0x1000000
+- MS_SYNC = 0x4
+- MS_SYNCHRONOUS = 0x10
+- MS_UNBINDABLE = 0x20000
+- MS_VERBOSE = 0x8000
+- NAME_MAX = 0xff
+- NETLINK_ADD_MEMBERSHIP = 0x1
+- NETLINK_AUDIT = 0x9
+- NETLINK_BROADCAST_ERROR = 0x4
+- NETLINK_CAP_ACK = 0xa
+- NETLINK_CONNECTOR = 0xb
+- NETLINK_CRYPTO = 0x15
+- NETLINK_DNRTMSG = 0xe
+- NETLINK_DROP_MEMBERSHIP = 0x2
+- NETLINK_ECRYPTFS = 0x13
+- NETLINK_FIB_LOOKUP = 0xa
+- NETLINK_FIREWALL = 0x3
+- NETLINK_GENERIC = 0x10
+- NETLINK_INET_DIAG = 0x4
+- NETLINK_IP6_FW = 0xd
+- NETLINK_ISCSI = 0x8
+- NETLINK_KOBJECT_UEVENT = 0xf
+- NETLINK_LISTEN_ALL_NSID = 0x8
+- NETLINK_LIST_MEMBERSHIPS = 0x9
+- NETLINK_NETFILTER = 0xc
+- NETLINK_NFLOG = 0x5
+- NETLINK_NO_ENOBUFS = 0x5
+- NETLINK_PKTINFO = 0x3
+- NETLINK_RDMA = 0x14
+- NETLINK_ROUTE = 0x0
+- NETLINK_RX_RING = 0x6
+- NETLINK_SCSITRANSPORT = 0x12
+- NETLINK_SELINUX = 0x7
+- NETLINK_SOCK_DIAG = 0x4
+- NETLINK_TX_RING = 0x7
+- NETLINK_UNUSED = 0x1
+- NETLINK_USERSOCK = 0x2
+- NETLINK_XFRM = 0x6
+- NL0 = 0x0
+- NL1 = 0x100
+- NLA_ALIGNTO = 0x4
+- NLA_F_NESTED = 0x8000
+- NLA_F_NET_BYTEORDER = 0x4000
+- NLA_HDRLEN = 0x4
+- NLDLY = 0x100
+- NLMSG_ALIGNTO = 0x4
+- NLMSG_DONE = 0x3
+- NLMSG_ERROR = 0x2
+- NLMSG_HDRLEN = 0x10
+- NLMSG_MIN_TYPE = 0x10
+- NLMSG_NOOP = 0x1
+- NLMSG_OVERRUN = 0x4
+- NLM_F_ACK = 0x4
+- NLM_F_APPEND = 0x800
+- NLM_F_ATOMIC = 0x400
+- NLM_F_CREATE = 0x400
+- NLM_F_DUMP = 0x300
+- NLM_F_DUMP_FILTERED = 0x20
+- NLM_F_DUMP_INTR = 0x10
+- NLM_F_ECHO = 0x8
+- NLM_F_EXCL = 0x200
+- NLM_F_MATCH = 0x200
+- NLM_F_MULTI = 0x2
+- NLM_F_REPLACE = 0x100
+- NLM_F_REQUEST = 0x1
+- NLM_F_ROOT = 0x100
+- NOFLSH = 0x80
+- OCRNL = 0x8
+- OFDEL = 0x80
+- OFILL = 0x40
+- OLCUC = 0x2
+- ONLCR = 0x4
+- ONLRET = 0x20
+- ONOCR = 0x10
+- OPOST = 0x1
+- O_ACCMODE = 0x3
+- O_APPEND = 0x8
+- O_ASYNC = 0x1000
+- O_CLOEXEC = 0x80000
+- O_CREAT = 0x100
+- O_DIRECT = 0x8000
+- O_DIRECTORY = 0x10000
+- O_DSYNC = 0x10
+- O_EXCL = 0x400
+- O_FSYNC = 0x4010
+- O_LARGEFILE = 0x2000
+- O_NDELAY = 0x80
+- O_NOATIME = 0x40000
+- O_NOCTTY = 0x800
+- O_NOFOLLOW = 0x20000
+- O_NONBLOCK = 0x80
+- O_PATH = 0x200000
+- O_RDONLY = 0x0
+- O_RDWR = 0x2
+- O_RSYNC = 0x4010
+- O_SYNC = 0x4010
+- O_TMPFILE = 0x410000
+- O_TRUNC = 0x200
+- O_WRONLY = 0x1
+- PACKET_ADD_MEMBERSHIP = 0x1
+- PACKET_AUXDATA = 0x8
+- PACKET_BROADCAST = 0x1
+- PACKET_COPY_THRESH = 0x7
+- PACKET_DROP_MEMBERSHIP = 0x2
+- PACKET_FANOUT = 0x12
+- PACKET_FANOUT_CBPF = 0x6
+- PACKET_FANOUT_CPU = 0x2
+- PACKET_FANOUT_DATA = 0x16
+- PACKET_FANOUT_EBPF = 0x7
+- PACKET_FANOUT_FLAG_DEFRAG = 0x8000
+- PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
+- PACKET_FANOUT_HASH = 0x0
+- PACKET_FANOUT_LB = 0x1
+- PACKET_FANOUT_QM = 0x5
+- PACKET_FANOUT_RND = 0x4
+- PACKET_FANOUT_ROLLOVER = 0x3
+- PACKET_FASTROUTE = 0x6
+- PACKET_HDRLEN = 0xb
+- PACKET_HOST = 0x0
+- PACKET_KERNEL = 0x7
+- PACKET_LOOPBACK = 0x5
+- PACKET_LOSS = 0xe
+- PACKET_MR_ALLMULTI = 0x2
+- PACKET_MR_MULTICAST = 0x0
+- PACKET_MR_PROMISC = 0x1
+- PACKET_MR_UNICAST = 0x3
+- PACKET_MULTICAST = 0x2
+- PACKET_ORIGDEV = 0x9
+- PACKET_OTHERHOST = 0x3
+- PACKET_OUTGOING = 0x4
+- PACKET_QDISC_BYPASS = 0x14
+- PACKET_RECV_OUTPUT = 0x3
+- PACKET_RESERVE = 0xc
+- PACKET_ROLLOVER_STATS = 0x15
+- PACKET_RX_RING = 0x5
+- PACKET_STATISTICS = 0x6
+- PACKET_TIMESTAMP = 0x11
+- PACKET_TX_HAS_OFF = 0x13
+- PACKET_TX_RING = 0xd
+- PACKET_TX_TIMESTAMP = 0x10
+- PACKET_USER = 0x6
+- PACKET_VERSION = 0xa
+- PACKET_VNET_HDR = 0xf
+- PARENB = 0x100
+- PARITY_CRC16_PR0 = 0x2
+- PARITY_CRC16_PR0_CCITT = 0x4
+- PARITY_CRC16_PR1 = 0x3
+- PARITY_CRC16_PR1_CCITT = 0x5
+- PARITY_CRC32_PR0_CCITT = 0x6
+- PARITY_CRC32_PR1_CCITT = 0x7
+- PARITY_DEFAULT = 0x0
+- PARITY_NONE = 0x1
+- PARMRK = 0x8
+- PARODD = 0x200
+- PENDIN = 0x4000
+- PERF_EVENT_IOC_DISABLE = 0x20002401
+- PERF_EVENT_IOC_ENABLE = 0x20002400
+- PERF_EVENT_IOC_ID = 0x40042407
+- PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409
+- PERF_EVENT_IOC_PERIOD = 0x80082404
+- PERF_EVENT_IOC_REFRESH = 0x20002402
+- PERF_EVENT_IOC_RESET = 0x20002403
+- PERF_EVENT_IOC_SET_BPF = 0x80042408
+- PERF_EVENT_IOC_SET_FILTER = 0x80042406
+- PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
+- PRIO_PGRP = 0x1
+- PRIO_PROCESS = 0x0
+- PRIO_USER = 0x2
+- PROT_EXEC = 0x4
+- PROT_GROWSDOWN = 0x1000000
+- PROT_GROWSUP = 0x2000000
+- PROT_NONE = 0x0
+- PROT_READ = 0x1
+- PROT_WRITE = 0x2
+- PR_CAPBSET_DROP = 0x18
+- PR_CAPBSET_READ = 0x17
+- PR_CAP_AMBIENT = 0x2f
+- PR_CAP_AMBIENT_CLEAR_ALL = 0x4
+- PR_CAP_AMBIENT_IS_SET = 0x1
+- PR_CAP_AMBIENT_LOWER = 0x3
+- PR_CAP_AMBIENT_RAISE = 0x2
+- PR_ENDIAN_BIG = 0x0
+- PR_ENDIAN_LITTLE = 0x1
+- PR_ENDIAN_PPC_LITTLE = 0x2
+- PR_FPEMU_NOPRINT = 0x1
+- PR_FPEMU_SIGFPE = 0x2
+- PR_FP_EXC_ASYNC = 0x2
+- PR_FP_EXC_DISABLED = 0x0
+- PR_FP_EXC_DIV = 0x10000
+- PR_FP_EXC_INV = 0x100000
+- PR_FP_EXC_NONRECOV = 0x1
+- PR_FP_EXC_OVF = 0x20000
+- PR_FP_EXC_PRECISE = 0x3
+- PR_FP_EXC_RES = 0x80000
+- PR_FP_EXC_SW_ENABLE = 0x80
+- PR_FP_EXC_UND = 0x40000
+- PR_FP_MODE_FR = 0x1
+- PR_FP_MODE_FRE = 0x2
+- PR_GET_CHILD_SUBREAPER = 0x25
+- PR_GET_DUMPABLE = 0x3
+- PR_GET_ENDIAN = 0x13
+- PR_GET_FPEMU = 0x9
+- PR_GET_FPEXC = 0xb
+- PR_GET_FP_MODE = 0x2e
+- PR_GET_KEEPCAPS = 0x7
+- PR_GET_NAME = 0x10
+- PR_GET_NO_NEW_PRIVS = 0x27
+- PR_GET_PDEATHSIG = 0x2
+- PR_GET_SECCOMP = 0x15
+- PR_GET_SECUREBITS = 0x1b
+- PR_GET_THP_DISABLE = 0x2a
+- PR_GET_TID_ADDRESS = 0x28
+- PR_GET_TIMERSLACK = 0x1e
+- PR_GET_TIMING = 0xd
+- PR_GET_TSC = 0x19
+- PR_GET_UNALIGN = 0x5
+- PR_MCE_KILL = 0x21
+- PR_MCE_KILL_CLEAR = 0x0
+- PR_MCE_KILL_DEFAULT = 0x2
+- PR_MCE_KILL_EARLY = 0x1
+- PR_MCE_KILL_GET = 0x22
+- PR_MCE_KILL_LATE = 0x0
+- PR_MCE_KILL_SET = 0x1
+- PR_MPX_DISABLE_MANAGEMENT = 0x2c
+- PR_MPX_ENABLE_MANAGEMENT = 0x2b
+- PR_SET_CHILD_SUBREAPER = 0x24
+- PR_SET_DUMPABLE = 0x4
+- PR_SET_ENDIAN = 0x14
+- PR_SET_FPEMU = 0xa
+- PR_SET_FPEXC = 0xc
+- PR_SET_FP_MODE = 0x2d
+- PR_SET_KEEPCAPS = 0x8
+- PR_SET_MM = 0x23
+- PR_SET_MM_ARG_END = 0x9
+- PR_SET_MM_ARG_START = 0x8
+- PR_SET_MM_AUXV = 0xc
+- PR_SET_MM_BRK = 0x7
+- PR_SET_MM_END_CODE = 0x2
+- PR_SET_MM_END_DATA = 0x4
+- PR_SET_MM_ENV_END = 0xb
+- PR_SET_MM_ENV_START = 0xa
+- PR_SET_MM_EXE_FILE = 0xd
+- PR_SET_MM_MAP = 0xe
+- PR_SET_MM_MAP_SIZE = 0xf
+- PR_SET_MM_START_BRK = 0x6
+- PR_SET_MM_START_CODE = 0x1
+- PR_SET_MM_START_DATA = 0x3
+- PR_SET_MM_START_STACK = 0x5
+- PR_SET_NAME = 0xf
+- PR_SET_NO_NEW_PRIVS = 0x26
+- PR_SET_PDEATHSIG = 0x1
+- PR_SET_PTRACER = 0x59616d61
+- PR_SET_PTRACER_ANY = 0xffffffff
+- PR_SET_SECCOMP = 0x16
+- PR_SET_SECUREBITS = 0x1c
+- PR_SET_THP_DISABLE = 0x29
+- PR_SET_TIMERSLACK = 0x1d
+- PR_SET_TIMING = 0xe
+- PR_SET_TSC = 0x1a
+- PR_SET_UNALIGN = 0x6
+- PR_TASK_PERF_EVENTS_DISABLE = 0x1f
+- PR_TASK_PERF_EVENTS_ENABLE = 0x20
+- PR_TIMING_STATISTICAL = 0x0
+- PR_TIMING_TIMESTAMP = 0x1
+- PR_TSC_ENABLE = 0x1
+- PR_TSC_SIGSEGV = 0x2
+- PR_UNALIGN_NOPRINT = 0x1
+- PR_UNALIGN_SIGBUS = 0x2
+- PTRACE_ATTACH = 0x10
+- PTRACE_CONT = 0x7
+- PTRACE_DETACH = 0x11
+- PTRACE_EVENT_CLONE = 0x3
+- PTRACE_EVENT_EXEC = 0x4
+- PTRACE_EVENT_EXIT = 0x6
+- PTRACE_EVENT_FORK = 0x1
+- PTRACE_EVENT_SECCOMP = 0x7
+- PTRACE_EVENT_STOP = 0x80
+- PTRACE_EVENT_VFORK = 0x2
+- PTRACE_EVENT_VFORK_DONE = 0x5
+- PTRACE_GETEVENTMSG = 0x4201
+- PTRACE_GETFPREGS = 0xe
+- PTRACE_GETREGS = 0xc
+- PTRACE_GETREGSET = 0x4204
+- PTRACE_GETSIGINFO = 0x4202
+- PTRACE_GETSIGMASK = 0x420a
+- PTRACE_GET_THREAD_AREA = 0x19
+- PTRACE_GET_THREAD_AREA_3264 = 0xc4
+- PTRACE_GET_WATCH_REGS = 0xd0
+- PTRACE_INTERRUPT = 0x4207
+- PTRACE_KILL = 0x8
+- PTRACE_LISTEN = 0x4208
+- PTRACE_OLDSETOPTIONS = 0x15
+- PTRACE_O_EXITKILL = 0x100000
+- PTRACE_O_MASK = 0x3000ff
+- PTRACE_O_SUSPEND_SECCOMP = 0x200000
+- PTRACE_O_TRACECLONE = 0x8
+- PTRACE_O_TRACEEXEC = 0x10
+- PTRACE_O_TRACEEXIT = 0x40
+- PTRACE_O_TRACEFORK = 0x2
+- PTRACE_O_TRACESECCOMP = 0x80
+- PTRACE_O_TRACESYSGOOD = 0x1
+- PTRACE_O_TRACEVFORK = 0x4
+- PTRACE_O_TRACEVFORKDONE = 0x20
+- PTRACE_PEEKDATA = 0x2
+- PTRACE_PEEKDATA_3264 = 0xc1
+- PTRACE_PEEKSIGINFO = 0x4209
+- PTRACE_PEEKSIGINFO_SHARED = 0x1
+- PTRACE_PEEKTEXT = 0x1
+- PTRACE_PEEKTEXT_3264 = 0xc0
+- PTRACE_PEEKUSR = 0x3
+- PTRACE_POKEDATA = 0x5
+- PTRACE_POKEDATA_3264 = 0xc3
+- PTRACE_POKETEXT = 0x4
+- PTRACE_POKETEXT_3264 = 0xc2
+- PTRACE_POKEUSR = 0x6
+- PTRACE_SECCOMP_GET_FILTER = 0x420c
+- PTRACE_SEIZE = 0x4206
+- PTRACE_SETFPREGS = 0xf
+- PTRACE_SETOPTIONS = 0x4200
+- PTRACE_SETREGS = 0xd
+- PTRACE_SETREGSET = 0x4205
+- PTRACE_SETSIGINFO = 0x4203
+- PTRACE_SETSIGMASK = 0x420b
+- PTRACE_SET_THREAD_AREA = 0x1a
+- PTRACE_SET_WATCH_REGS = 0xd1
+- PTRACE_SINGLESTEP = 0x9
+- PTRACE_SYSCALL = 0x18
+- PTRACE_TRACEME = 0x0
+- RLIMIT_AS = 0x6
+- RLIMIT_CORE = 0x4
+- RLIMIT_CPU = 0x0
+- RLIMIT_DATA = 0x2
+- RLIMIT_FSIZE = 0x1
+- RLIMIT_LOCKS = 0xa
+- RLIMIT_MEMLOCK = 0x9
+- RLIMIT_MSGQUEUE = 0xc
+- RLIMIT_NICE = 0xd
+- RLIMIT_NOFILE = 0x5
+- RLIMIT_NPROC = 0x8
+- RLIMIT_RSS = 0x7
+- RLIMIT_RTPRIO = 0xe
+- RLIMIT_RTTIME = 0xf
+- RLIMIT_SIGPENDING = 0xb
+- RLIMIT_STACK = 0x3
+- RLIM_INFINITY = -0x1
+- RTAX_ADVMSS = 0x8
+- RTAX_CC_ALGO = 0x10
+- RTAX_CWND = 0x7
+- RTAX_FEATURES = 0xc
+- RTAX_FEATURE_ALLFRAG = 0x8
+- RTAX_FEATURE_ECN = 0x1
+- RTAX_FEATURE_MASK = 0xf
+- RTAX_FEATURE_SACK = 0x2
+- RTAX_FEATURE_TIMESTAMP = 0x4
+- RTAX_HOPLIMIT = 0xa
+- RTAX_INITCWND = 0xb
+- RTAX_INITRWND = 0xe
+- RTAX_LOCK = 0x1
+- RTAX_MAX = 0x10
+- RTAX_MTU = 0x2
+- RTAX_QUICKACK = 0xf
+- RTAX_REORDERING = 0x9
+- RTAX_RTO_MIN = 0xd
+- RTAX_RTT = 0x4
+- RTAX_RTTVAR = 0x5
+- RTAX_SSTHRESH = 0x6
+- RTAX_UNSPEC = 0x0
+- RTAX_WINDOW = 0x3
+- RTA_ALIGNTO = 0x4
+- RTA_MAX = 0x19
+- RTCF_DIRECTSRC = 0x4000000
+- RTCF_DOREDIRECT = 0x1000000
+- RTCF_LOG = 0x2000000
+- RTCF_MASQ = 0x400000
+- RTCF_NAT = 0x800000
+- RTCF_VALVE = 0x200000
+- RTF_ADDRCLASSMASK = 0xf8000000
+- RTF_ADDRCONF = 0x40000
+- RTF_ALLONLINK = 0x20000
+- RTF_BROADCAST = 0x10000000
+- RTF_CACHE = 0x1000000
+- RTF_DEFAULT = 0x10000
+- RTF_DYNAMIC = 0x10
+- RTF_FLOW = 0x2000000
+- RTF_GATEWAY = 0x2
+- RTF_HOST = 0x4
+- RTF_INTERFACE = 0x40000000
+- RTF_IRTT = 0x100
+- RTF_LINKRT = 0x100000
+- RTF_LOCAL = 0x80000000
+- RTF_MODIFIED = 0x20
+- RTF_MSS = 0x40
+- RTF_MTU = 0x40
+- RTF_MULTICAST = 0x20000000
+- RTF_NAT = 0x8000000
+- RTF_NOFORWARD = 0x1000
+- RTF_NONEXTHOP = 0x200000
+- RTF_NOPMTUDISC = 0x4000
+- RTF_POLICY = 0x4000000
+- RTF_REINSTATE = 0x8
+- RTF_REJECT = 0x200
+- RTF_STATIC = 0x400
+- RTF_THROW = 0x2000
+- RTF_UP = 0x1
+- RTF_WINDOW = 0x80
+- RTF_XRESOLVE = 0x800
+- RTM_BASE = 0x10
+- RTM_DELACTION = 0x31
+- RTM_DELADDR = 0x15
+- RTM_DELADDRLABEL = 0x49
+- RTM_DELLINK = 0x11
+- RTM_DELMDB = 0x55
+- RTM_DELNEIGH = 0x1d
+- RTM_DELNSID = 0x59
+- RTM_DELQDISC = 0x25
+- RTM_DELROUTE = 0x19
+- RTM_DELRULE = 0x21
+- RTM_DELTCLASS = 0x29
+- RTM_DELTFILTER = 0x2d
+- RTM_F_CLONED = 0x200
+- RTM_F_EQUALIZE = 0x400
+- RTM_F_LOOKUP_TABLE = 0x1000
+- RTM_F_NOTIFY = 0x100
+- RTM_F_PREFIX = 0x800
+- RTM_GETACTION = 0x32
+- RTM_GETADDR = 0x16
+- RTM_GETADDRLABEL = 0x4a
+- RTM_GETANYCAST = 0x3e
+- RTM_GETDCB = 0x4e
+- RTM_GETLINK = 0x12
+- RTM_GETMDB = 0x56
+- RTM_GETMULTICAST = 0x3a
+- RTM_GETNEIGH = 0x1e
+- RTM_GETNEIGHTBL = 0x42
+- RTM_GETNETCONF = 0x52
+- RTM_GETNSID = 0x5a
+- RTM_GETQDISC = 0x26
+- RTM_GETROUTE = 0x1a
+- RTM_GETRULE = 0x22
+- RTM_GETSTATS = 0x5e
+- RTM_GETTCLASS = 0x2a
+- RTM_GETTFILTER = 0x2e
+- RTM_MAX = 0x5f
+- RTM_NEWACTION = 0x30
+- RTM_NEWADDR = 0x14
+- RTM_NEWADDRLABEL = 0x48
+- RTM_NEWLINK = 0x10
+- RTM_NEWMDB = 0x54
+- RTM_NEWNDUSEROPT = 0x44
+- RTM_NEWNEIGH = 0x1c
+- RTM_NEWNEIGHTBL = 0x40
+- RTM_NEWNETCONF = 0x50
+- RTM_NEWNSID = 0x58
+- RTM_NEWPREFIX = 0x34
+- RTM_NEWQDISC = 0x24
+- RTM_NEWROUTE = 0x18
+- RTM_NEWRULE = 0x20
+- RTM_NEWSTATS = 0x5c
+- RTM_NEWTCLASS = 0x28
+- RTM_NEWTFILTER = 0x2c
+- RTM_NR_FAMILIES = 0x14
+- RTM_NR_MSGTYPES = 0x50
+- RTM_SETDCB = 0x4f
+- RTM_SETLINK = 0x13
+- RTM_SETNEIGHTBL = 0x43
+- RTNH_ALIGNTO = 0x4
+- RTNH_COMPARE_MASK = 0x19
+- RTNH_F_DEAD = 0x1
+- RTNH_F_LINKDOWN = 0x10
+- RTNH_F_OFFLOAD = 0x8
+- RTNH_F_ONLINK = 0x4
+- RTNH_F_PERVASIVE = 0x2
+- RTN_MAX = 0xb
+- RTPROT_BABEL = 0x2a
+- RTPROT_BIRD = 0xc
+- RTPROT_BOOT = 0x3
+- RTPROT_DHCP = 0x10
+- RTPROT_DNROUTED = 0xd
+- RTPROT_GATED = 0x8
+- RTPROT_KERNEL = 0x2
+- RTPROT_MROUTED = 0x11
+- RTPROT_MRT = 0xa
+- RTPROT_NTK = 0xf
+- RTPROT_RA = 0x9
+- RTPROT_REDIRECT = 0x1
+- RTPROT_STATIC = 0x4
+- RTPROT_UNSPEC = 0x0
+- RTPROT_XORP = 0xe
+- RTPROT_ZEBRA = 0xb
+- RT_CLASS_DEFAULT = 0xfd
+- RT_CLASS_LOCAL = 0xff
+- RT_CLASS_MAIN = 0xfe
+- RT_CLASS_MAX = 0xff
+- RT_CLASS_UNSPEC = 0x0
+- RUSAGE_CHILDREN = -0x1
+- RUSAGE_SELF = 0x0
+- RUSAGE_THREAD = 0x1
+- SCM_CREDENTIALS = 0x2
+- SCM_RIGHTS = 0x1
+- SCM_TIMESTAMP = 0x1d
+- SCM_TIMESTAMPING = 0x25
+- SCM_TIMESTAMPING_OPT_STATS = 0x36
+- SCM_TIMESTAMPNS = 0x23
+- SCM_WIFI_STATUS = 0x29
+- SECCOMP_MODE_DISABLED = 0x0
+- SECCOMP_MODE_FILTER = 0x2
+- SECCOMP_MODE_STRICT = 0x1
+- SHUT_RD = 0x0
+- SHUT_RDWR = 0x2
+- SHUT_WR = 0x1
+- SIOCADDDLCI = 0x8980
+- SIOCADDMULTI = 0x8931
+- SIOCADDRT = 0x890b
+- SIOCATMARK = 0x40047307
+- SIOCBONDCHANGEACTIVE = 0x8995
+- SIOCBONDENSLAVE = 0x8990
+- SIOCBONDINFOQUERY = 0x8994
+- SIOCBONDRELEASE = 0x8991
+- SIOCBONDSETHWADDR = 0x8992
+- SIOCBONDSLAVEINFOQUERY = 0x8993
+- SIOCBRADDBR = 0x89a0
+- SIOCBRADDIF = 0x89a2
+- SIOCBRDELBR = 0x89a1
+- SIOCBRDELIF = 0x89a3
+- SIOCDARP = 0x8953
+- SIOCDELDLCI = 0x8981
+- SIOCDELMULTI = 0x8932
+- SIOCDELRT = 0x890c
+- SIOCDEVPRIVATE = 0x89f0
+- SIOCDIFADDR = 0x8936
+- SIOCDRARP = 0x8960
+- SIOCETHTOOL = 0x8946
+- SIOCGARP = 0x8954
+- SIOCGHWTSTAMP = 0x89b1
+- SIOCGIFADDR = 0x8915
+- SIOCGIFBR = 0x8940
+- SIOCGIFBRDADDR = 0x8919
+- SIOCGIFCONF = 0x8912
+- SIOCGIFCOUNT = 0x8938
+- SIOCGIFDSTADDR = 0x8917
+- SIOCGIFENCAP = 0x8925
+- SIOCGIFFLAGS = 0x8913
+- SIOCGIFHWADDR = 0x8927
+- SIOCGIFINDEX = 0x8933
+- SIOCGIFMAP = 0x8970
+- SIOCGIFMEM = 0x891f
+- SIOCGIFMETRIC = 0x891d
+- SIOCGIFMTU = 0x8921
+- SIOCGIFNAME = 0x8910
+- SIOCGIFNETMASK = 0x891b
+- SIOCGIFPFLAGS = 0x8935
+- SIOCGIFSLAVE = 0x8929
+- SIOCGIFTXQLEN = 0x8942
+- SIOCGIFVLAN = 0x8982
+- SIOCGMIIPHY = 0x8947
+- SIOCGMIIREG = 0x8948
+- SIOCGPGRP = 0x40047309
+- SIOCGRARP = 0x8961
+- SIOCGSKNS = 0x894c
+- SIOCGSTAMP = 0x8906
+- SIOCGSTAMPNS = 0x8907
+- SIOCINQ = 0x467f
+- SIOCOUTQ = 0x7472
+- SIOCOUTQNSD = 0x894b
+- SIOCPROTOPRIVATE = 0x89e0
+- SIOCRTMSG = 0x890d
+- SIOCSARP = 0x8955
+- SIOCSHWTSTAMP = 0x89b0
+- SIOCSIFADDR = 0x8916
+- SIOCSIFBR = 0x8941
+- SIOCSIFBRDADDR = 0x891a
+- SIOCSIFDSTADDR = 0x8918
+- SIOCSIFENCAP = 0x8926
+- SIOCSIFFLAGS = 0x8914
+- SIOCSIFHWADDR = 0x8924
+- SIOCSIFHWBROADCAST = 0x8937
+- SIOCSIFLINK = 0x8911
+- SIOCSIFMAP = 0x8971
+- SIOCSIFMEM = 0x8920
+- SIOCSIFMETRIC = 0x891e
+- SIOCSIFMTU = 0x8922
+- SIOCSIFNAME = 0x8923
+- SIOCSIFNETMASK = 0x891c
+- SIOCSIFPFLAGS = 0x8934
+- SIOCSIFSLAVE = 0x8930
+- SIOCSIFTXQLEN = 0x8943
+- SIOCSIFVLAN = 0x8983
+- SIOCSMIIREG = 0x8949
+- SIOCSPGRP = 0x80047308
+- SIOCSRARP = 0x8962
+- SIOCWANDEV = 0x894a
+- SOCK_CLOEXEC = 0x80000
+- SOCK_DCCP = 0x6
+- SOCK_DGRAM = 0x1
+- SOCK_IOC_TYPE = 0x89
+- SOCK_NONBLOCK = 0x80
+- SOCK_PACKET = 0xa
+- SOCK_RAW = 0x3
+- SOCK_RDM = 0x4
+- SOCK_SEQPACKET = 0x5
+- SOCK_STREAM = 0x2
+- SOL_AAL = 0x109
+- SOL_ALG = 0x117
+- SOL_ATM = 0x108
+- SOL_CAIF = 0x116
+- SOL_CAN_BASE = 0x64
+- SOL_DCCP = 0x10d
+- SOL_DECNET = 0x105
+- SOL_ICMPV6 = 0x3a
+- SOL_IP = 0x0
+- SOL_IPV6 = 0x29
+- SOL_IRDA = 0x10a
+- SOL_IUCV = 0x115
+- SOL_KCM = 0x119
+- SOL_LLC = 0x10c
+- SOL_NETBEUI = 0x10b
+- SOL_NETLINK = 0x10e
+- SOL_NFC = 0x118
+- SOL_PACKET = 0x107
+- SOL_PNPIPE = 0x113
+- SOL_PPPOL2TP = 0x111
+- SOL_RAW = 0xff
+- SOL_RDS = 0x114
+- SOL_RXRPC = 0x110
+- SOL_SOCKET = 0xffff
+- SOL_TCP = 0x6
+- SOL_TIPC = 0x10f
+- SOL_X25 = 0x106
+- SOMAXCONN = 0x80
+- SO_ACCEPTCONN = 0x1009
+- SO_ATTACH_BPF = 0x32
+- SO_ATTACH_FILTER = 0x1a
+- SO_ATTACH_REUSEPORT_CBPF = 0x33
+- SO_ATTACH_REUSEPORT_EBPF = 0x34
+- SO_BINDTODEVICE = 0x19
+- SO_BPF_EXTENSIONS = 0x30
+- SO_BROADCAST = 0x20
+- SO_BSDCOMPAT = 0xe
+- SO_BUSY_POLL = 0x2e
+- SO_CNX_ADVICE = 0x35
+- SO_DEBUG = 0x1
+- SO_DETACH_BPF = 0x1b
+- SO_DETACH_FILTER = 0x1b
+- SO_DOMAIN = 0x1029
+- SO_DONTROUTE = 0x10
+- SO_ERROR = 0x1007
+- SO_GET_FILTER = 0x1a
+- SO_INCOMING_CPU = 0x31
+- SO_KEEPALIVE = 0x8
+- SO_LINGER = 0x80
+- SO_LOCK_FILTER = 0x2c
+- SO_MARK = 0x24
+- SO_MAX_PACING_RATE = 0x2f
+- SO_NOFCS = 0x2b
+- SO_NO_CHECK = 0xb
+- SO_OOBINLINE = 0x100
+- SO_PASSCRED = 0x11
+- SO_PASSSEC = 0x22
+- SO_PEEK_OFF = 0x2a
+- SO_PEERCRED = 0x12
+- SO_PEERNAME = 0x1c
+- SO_PEERSEC = 0x1e
+- SO_PRIORITY = 0xc
+- SO_PROTOCOL = 0x1028
+- SO_RCVBUF = 0x1002
+- SO_RCVBUFFORCE = 0x21
+- SO_RCVLOWAT = 0x1004
+- SO_RCVTIMEO = 0x1006
+- SO_REUSEADDR = 0x4
+- SO_REUSEPORT = 0x200
+- SO_RXQ_OVFL = 0x28
+- SO_SECURITY_AUTHENTICATION = 0x16
+- SO_SECURITY_ENCRYPTION_NETWORK = 0x18
+- SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
+- SO_SELECT_ERR_QUEUE = 0x2d
+- SO_SNDBUF = 0x1001
+- SO_SNDBUFFORCE = 0x1f
+- SO_SNDLOWAT = 0x1003
+- SO_SNDTIMEO = 0x1005
+- SO_STYLE = 0x1008
+- SO_TIMESTAMP = 0x1d
+- SO_TIMESTAMPING = 0x25
+- SO_TIMESTAMPNS = 0x23
+- SO_TYPE = 0x1008
+- SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
+- SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
+- SO_VM_SOCKETS_BUFFER_SIZE = 0x0
+- SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
+- SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
+- SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
+- SO_VM_SOCKETS_TRUSTED = 0x5
+- SO_WIFI_STATUS = 0x29
+- SPLICE_F_GIFT = 0x8
+- SPLICE_F_MORE = 0x4
+- SPLICE_F_MOVE = 0x1
+- SPLICE_F_NONBLOCK = 0x2
+- S_BLKSIZE = 0x200
+- S_IEXEC = 0x40
+- S_IFBLK = 0x6000
+- S_IFCHR = 0x2000
+- S_IFDIR = 0x4000
+- S_IFIFO = 0x1000
+- S_IFLNK = 0xa000
+- S_IFMT = 0xf000
+- S_IFREG = 0x8000
+- S_IFSOCK = 0xc000
+- S_IREAD = 0x100
+- S_IRGRP = 0x20
+- S_IROTH = 0x4
+- S_IRUSR = 0x100
+- S_IRWXG = 0x38
+- S_IRWXO = 0x7
+- S_IRWXU = 0x1c0
+- S_ISGID = 0x400
+- S_ISUID = 0x800
+- S_ISVTX = 0x200
+- S_IWGRP = 0x10
+- S_IWOTH = 0x2
+- S_IWRITE = 0x80
+- S_IWUSR = 0x80
+- S_IXGRP = 0x8
+- S_IXOTH = 0x1
+- S_IXUSR = 0x40
+- TAB0 = 0x0
+- TAB1 = 0x800
+- TAB2 = 0x1000
+- TAB3 = 0x1800
+- TABDLY = 0x1800
+- TASKSTATS_CMD_ATTR_MAX = 0x4
+- TASKSTATS_CMD_MAX = 0x2
+- TASKSTATS_GENL_NAME = "TASKSTATS"
+- TASKSTATS_GENL_VERSION = 0x1
+- TASKSTATS_TYPE_MAX = 0x6
+- TASKSTATS_VERSION = 0x8
+- TCFLSH = 0x5407
+- TCGETA = 0x5401
+- TCGETS = 0x540d
+- TCGETS2 = 0x4030542a
+- TCIFLUSH = 0x0
+- TCIOFF = 0x2
+- TCIOFLUSH = 0x2
+- TCION = 0x3
+- TCOFLUSH = 0x1
+- TCOOFF = 0x0
+- TCOON = 0x1
+- TCP_CC_INFO = 0x1a
+- TCP_CONGESTION = 0xd
+- TCP_COOKIE_IN_ALWAYS = 0x1
+- TCP_COOKIE_MAX = 0x10
+- TCP_COOKIE_MIN = 0x8
+- TCP_COOKIE_OUT_NEVER = 0x2
+- TCP_COOKIE_PAIR_SIZE = 0x20
+- TCP_COOKIE_TRANSACTIONS = 0xf
+- TCP_CORK = 0x3
+- TCP_DEFER_ACCEPT = 0x9
+- TCP_FASTOPEN = 0x17
+- TCP_INFO = 0xb
+- TCP_KEEPCNT = 0x6
+- TCP_KEEPIDLE = 0x4
+- TCP_KEEPINTVL = 0x5
+- TCP_LINGER2 = 0x8
+- TCP_MAXSEG = 0x2
+- TCP_MAXWIN = 0xffff
+- TCP_MAX_WINSHIFT = 0xe
+- TCP_MD5SIG = 0xe
+- TCP_MD5SIG_MAXKEYLEN = 0x50
+- TCP_MSS = 0x200
+- TCP_MSS_DEFAULT = 0x218
+- TCP_MSS_DESIRED = 0x4c4
+- TCP_NODELAY = 0x1
+- TCP_NOTSENT_LOWAT = 0x19
+- TCP_QUEUE_SEQ = 0x15
+- TCP_QUICKACK = 0xc
+- TCP_REPAIR = 0x13
+- TCP_REPAIR_OPTIONS = 0x16
+- TCP_REPAIR_QUEUE = 0x14
+- TCP_REPAIR_WINDOW = 0x1d
+- TCP_SAVED_SYN = 0x1c
+- TCP_SAVE_SYN = 0x1b
+- TCP_SYNCNT = 0x7
+- TCP_S_DATA_IN = 0x4
+- TCP_S_DATA_OUT = 0x8
+- TCP_THIN_DUPACK = 0x11
+- TCP_THIN_LINEAR_TIMEOUTS = 0x10
+- TCP_TIMESTAMP = 0x18
+- TCP_USER_TIMEOUT = 0x12
+- TCP_WINDOW_CLAMP = 0xa
+- TCSAFLUSH = 0x5410
+- TCSBRK = 0x5405
+- TCSBRKP = 0x5486
+- TCSETA = 0x5402
+- TCSETAF = 0x5404
+- TCSETAW = 0x5403
+- TCSETS = 0x540e
+- TCSETS2 = 0x8030542b
+- TCSETSF = 0x5410
+- TCSETSF2 = 0x8030542d
+- TCSETSW = 0x540f
+- TCSETSW2 = 0x8030542c
+- TCXONC = 0x5406
+- TIOCCBRK = 0x5428
+- TIOCCONS = 0x80047478
+- TIOCEXCL = 0x740d
+- TIOCGDEV = 0x40045432
+- TIOCGETD = 0x7400
+- TIOCGETP = 0x7408
+- TIOCGEXCL = 0x40045440
+- TIOCGICOUNT = 0x5492
+- TIOCGLCKTRMIOS = 0x548b
+- TIOCGLTC = 0x7474
+- TIOCGPGRP = 0x40047477
+- TIOCGPKT = 0x40045438
+- TIOCGPTLCK = 0x40045439
+- TIOCGPTN = 0x40045430
+- TIOCGRS485 = 0x4020542e
+- TIOCGSERIAL = 0x5484
+- TIOCGSID = 0x7416
+- TIOCGSOFTCAR = 0x5481
+- TIOCGWINSZ = 0x40087468
+- TIOCINQ = 0x467f
+- TIOCLINUX = 0x5483
+- TIOCMBIC = 0x741c
+- TIOCMBIS = 0x741b
+- TIOCMGET = 0x741d
+- TIOCMIWAIT = 0x5491
+- TIOCMSET = 0x741a
+- TIOCM_CAR = 0x100
+- TIOCM_CD = 0x100
+- TIOCM_CTS = 0x40
+- TIOCM_DSR = 0x400
+- TIOCM_DTR = 0x2
+- TIOCM_LE = 0x1
+- TIOCM_RI = 0x200
+- TIOCM_RNG = 0x200
+- TIOCM_RTS = 0x4
+- TIOCM_SR = 0x20
+- TIOCM_ST = 0x10
+- TIOCNOTTY = 0x5471
+- TIOCNXCL = 0x740e
+- TIOCOUTQ = 0x7472
+- TIOCPKT = 0x5470
+- TIOCPKT_DATA = 0x0
+- TIOCPKT_DOSTOP = 0x20
+- TIOCPKT_FLUSHREAD = 0x1
+- TIOCPKT_FLUSHWRITE = 0x2
+- TIOCPKT_IOCTL = 0x40
+- TIOCPKT_NOSTOP = 0x10
+- TIOCPKT_START = 0x8
+- TIOCPKT_STOP = 0x4
+- TIOCSBRK = 0x5427
+- TIOCSCTTY = 0x5480
+- TIOCSERCONFIG = 0x5488
+- TIOCSERGETLSR = 0x548e
+- TIOCSERGETMULTI = 0x548f
+- TIOCSERGSTRUCT = 0x548d
+- TIOCSERGWILD = 0x5489
+- TIOCSERSETMULTI = 0x5490
+- TIOCSERSWILD = 0x548a
+- TIOCSER_TEMT = 0x1
+- TIOCSETD = 0x7401
+- TIOCSETN = 0x740a
+- TIOCSETP = 0x7409
+- TIOCSIG = 0x80045436
+- TIOCSLCKTRMIOS = 0x548c
+- TIOCSLTC = 0x7475
+- TIOCSPGRP = 0x80047476
+- TIOCSPTLCK = 0x80045431
+- TIOCSRS485 = 0xc020542f
+- TIOCSSERIAL = 0x5485
+- TIOCSSOFTCAR = 0x5482
+- TIOCSTI = 0x5472
+- TIOCSWINSZ = 0x80087467
+- TIOCVHANGUP = 0x5437
+- TOSTOP = 0x8000
+- TS_COMM_LEN = 0x20
+- TUNATTACHFILTER = 0x800854d5
+- TUNDETACHFILTER = 0x800854d6
+- TUNGETFEATURES = 0x400454cf
+- TUNGETFILTER = 0x400854db
+- TUNGETIFF = 0x400454d2
+- TUNGETSNDBUF = 0x400454d3
+- TUNGETVNETBE = 0x400454df
+- TUNGETVNETHDRSZ = 0x400454d7
+- TUNGETVNETLE = 0x400454dd
+- TUNSETDEBUG = 0x800454c9
+- TUNSETGROUP = 0x800454ce
+- TUNSETIFF = 0x800454ca
+- TUNSETIFINDEX = 0x800454da
+- TUNSETLINK = 0x800454cd
+- TUNSETNOCSUM = 0x800454c8
+- TUNSETOFFLOAD = 0x800454d0
+- TUNSETOWNER = 0x800454cc
+- TUNSETPERSIST = 0x800454cb
+- TUNSETQUEUE = 0x800454d9
+- TUNSETSNDBUF = 0x800454d4
+- TUNSETTXFILTER = 0x800454d1
+- TUNSETVNETBE = 0x800454de
+- TUNSETVNETHDRSZ = 0x800454d8
+- TUNSETVNETLE = 0x800454dc
+- UMOUNT_NOFOLLOW = 0x8
+- VDISCARD = 0xd
+- VEOF = 0x10
+- VEOL = 0x11
+- VEOL2 = 0x6
+- VERASE = 0x2
+- VINTR = 0x0
+- VKILL = 0x3
+- VLNEXT = 0xf
+- VMADDR_CID_ANY = 0xffffffff
+- VMADDR_CID_HOST = 0x2
+- VMADDR_CID_HYPERVISOR = 0x0
+- VMADDR_CID_RESERVED = 0x1
+- VMADDR_PORT_ANY = 0xffffffff
+- VMIN = 0x4
+- VM_SOCKETS_INVALID_VERSION = 0xffffffff
+- VQUIT = 0x1
+- VREPRINT = 0xc
+- VSTART = 0x8
+- VSTOP = 0x9
+- VSUSP = 0xa
+- VSWTC = 0x7
+- VSWTCH = 0x7
+- VT0 = 0x0
+- VT1 = 0x4000
+- VTDLY = 0x4000
+- VTIME = 0x5
+- VWERASE = 0xe
+- WALL = 0x40000000
+- WCLONE = 0x80000000
+- WCONTINUED = 0x8
+- WEXITED = 0x4
+- WNOHANG = 0x1
+- WNOTHREAD = 0x20000000
+- WNOWAIT = 0x1000000
+- WORDSIZE = 0x20
+- WSTOPPED = 0x2
+- WUNTRACED = 0x2
+- XATTR_CREATE = 0x1
+- XATTR_REPLACE = 0x2
+- XCASE = 0x4
+- XTABS = 0x1800
++ B1000000 = 0x1008
++ B115200 = 0x1002
++ B1152000 = 0x1009
++ B1500000 = 0x100a
++ B2000000 = 0x100b
++ B230400 = 0x1003
++ B2500000 = 0x100c
++ B3000000 = 0x100d
++ B3500000 = 0x100e
++ B4000000 = 0x100f
++ B460800 = 0x1004
++ B500000 = 0x1005
++ B57600 = 0x1001
++ B576000 = 0x1006
++ B921600 = 0x1007
++ BLKBSZGET = 0x40041270
++ BLKBSZSET = 0x80041271
++ BLKFLSBUF = 0x20001261
++ BLKFRAGET = 0x20001265
++ BLKFRASET = 0x20001264
++ BLKGETSIZE = 0x20001260
++ BLKGETSIZE64 = 0x40041272
++ BLKPBSZGET = 0x2000127b
++ BLKRAGET = 0x20001263
++ BLKRASET = 0x20001262
++ BLKROGET = 0x2000125e
++ BLKROSET = 0x2000125d
++ BLKRRPART = 0x2000125f
++ BLKSECTGET = 0x20001267
++ BLKSECTSET = 0x20001266
++ BLKSSZGET = 0x20001268
++ BOTHER = 0x1000
++ BS1 = 0x2000
++ BSDLY = 0x2000
++ CBAUD = 0x100f
++ CBAUDEX = 0x1000
++ CIBAUD = 0x100f0000
++ CLOCAL = 0x800
++ CR1 = 0x200
++ CR2 = 0x400
++ CR3 = 0x600
++ CRDLY = 0x600
++ CREAD = 0x80
++ CS6 = 0x10
++ CS7 = 0x20
++ CS8 = 0x30
++ CSIZE = 0x30
++ CSTOPB = 0x40
++ ECHOCTL = 0x200
++ ECHOE = 0x10
++ ECHOK = 0x20
++ ECHOKE = 0x800
++ ECHONL = 0x40
++ ECHOPRT = 0x400
++ EFD_CLOEXEC = 0x80000
++ EFD_NONBLOCK = 0x80
++ EPOLL_CLOEXEC = 0x80000
++ EXTPROC = 0x10000
++ FF1 = 0x8000
++ FFDLY = 0x8000
++ FLUSHO = 0x2000
++ FS_IOC_ENABLE_VERITY = 0x80806685
++ FS_IOC_GETFLAGS = 0x40046601
++ FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615
++ FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614
++ FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613
++ F_GETLK = 0x21
++ F_GETLK64 = 0x21
++ F_GETOWN = 0x17
++ F_RDLCK = 0x0
++ F_SETLK = 0x22
++ F_SETLK64 = 0x22
++ F_SETLKW = 0x23
++ F_SETLKW64 = 0x23
++ F_SETOWN = 0x18
++ F_UNLCK = 0x2
++ F_WRLCK = 0x1
++ HUPCL = 0x400
++ ICANON = 0x2
++ IEXTEN = 0x100
++ IN_CLOEXEC = 0x80000
++ IN_NONBLOCK = 0x80
++ IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9
++ ISIG = 0x1
++ IUCLC = 0x200
++ IXOFF = 0x1000
++ IXON = 0x400
++ MAP_ANON = 0x800
++ MAP_ANONYMOUS = 0x800
++ MAP_DENYWRITE = 0x2000
++ MAP_EXECUTABLE = 0x4000
++ MAP_GROWSDOWN = 0x1000
++ MAP_HUGETLB = 0x80000
++ MAP_LOCKED = 0x8000
++ MAP_NONBLOCK = 0x20000
++ MAP_NORESERVE = 0x400
++ MAP_POPULATE = 0x10000
++ MAP_RENAME = 0x800
++ MAP_STACK = 0x40000
++ MCL_CURRENT = 0x1
++ MCL_FUTURE = 0x2
++ MCL_ONFAULT = 0x4
++ NFDBITS = 0x20
++ NLDLY = 0x100
++ NOFLSH = 0x80
++ NS_GET_NSTYPE = 0x2000b703
++ NS_GET_OWNER_UID = 0x2000b704
++ NS_GET_PARENT = 0x2000b702
++ NS_GET_USERNS = 0x2000b701
++ OLCUC = 0x2
++ ONLCR = 0x4
++ O_APPEND = 0x8
++ O_ASYNC = 0x1000
++ O_CLOEXEC = 0x80000
++ O_CREAT = 0x100
++ O_DIRECT = 0x8000
++ O_DIRECTORY = 0x10000
++ O_DSYNC = 0x10
++ O_EXCL = 0x400
++ O_FSYNC = 0x4010
++ O_LARGEFILE = 0x2000
++ O_NDELAY = 0x80
++ O_NOATIME = 0x40000
++ O_NOCTTY = 0x800
++ O_NOFOLLOW = 0x20000
++ O_NONBLOCK = 0x80
++ O_PATH = 0x200000
++ O_RSYNC = 0x4010
++ O_SYNC = 0x4010
++ O_TMPFILE = 0x410000
++ O_TRUNC = 0x200
++ PARENB = 0x100
++ PARODD = 0x200
++ PENDIN = 0x4000
++ PERF_EVENT_IOC_DISABLE = 0x20002401
++ PERF_EVENT_IOC_ENABLE = 0x20002400
++ PERF_EVENT_IOC_ID = 0x40042407
++ PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b
++ PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409
++ PERF_EVENT_IOC_PERIOD = 0x80082404
++ PERF_EVENT_IOC_QUERY_BPF = 0xc004240a
++ PERF_EVENT_IOC_REFRESH = 0x20002402
++ PERF_EVENT_IOC_RESET = 0x20002403
++ PERF_EVENT_IOC_SET_BPF = 0x80042408
++ PERF_EVENT_IOC_SET_FILTER = 0x80042406
++ PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
++ PPPIOCATTACH = 0x8004743d
++ PPPIOCATTCHAN = 0x80047438
++ PPPIOCCONNECT = 0x8004743a
++ PPPIOCDETACH = 0x8004743c
++ PPPIOCDISCONN = 0x20007439
++ PPPIOCGASYNCMAP = 0x40047458
++ PPPIOCGCHAN = 0x40047437
++ PPPIOCGDEBUG = 0x40047441
++ PPPIOCGFLAGS = 0x4004745a
++ PPPIOCGIDLE = 0x4008743f
++ PPPIOCGIDLE32 = 0x4008743f
++ PPPIOCGIDLE64 = 0x4010743f
++ PPPIOCGL2TPSTATS = 0x40487436
++ PPPIOCGMRU = 0x40047453
++ PPPIOCGRASYNCMAP = 0x40047455
++ PPPIOCGUNIT = 0x40047456
++ PPPIOCGXASYNCMAP = 0x40207450
++ PPPIOCSACTIVE = 0x80087446
++ PPPIOCSASYNCMAP = 0x80047457
++ PPPIOCSCOMPRESS = 0x800c744d
++ PPPIOCSDEBUG = 0x80047440
++ PPPIOCSFLAGS = 0x80047459
++ PPPIOCSMAXCID = 0x80047451
++ PPPIOCSMRRU = 0x8004743b
++ PPPIOCSMRU = 0x80047452
++ PPPIOCSNPMODE = 0x8008744b
++ PPPIOCSPASS = 0x80087447
++ PPPIOCSRASYNCMAP = 0x80047454
++ PPPIOCSXASYNCMAP = 0x8020744f
++ PPPIOCXFERUNIT = 0x2000744e
++ PR_SET_PTRACER_ANY = 0xffffffff
++ PTRACE_GETFPREGS = 0xe
++ PTRACE_GET_THREAD_AREA = 0x19
++ PTRACE_GET_THREAD_AREA_3264 = 0xc4
++ PTRACE_GET_WATCH_REGS = 0xd0
++ PTRACE_OLDSETOPTIONS = 0x15
++ PTRACE_PEEKDATA_3264 = 0xc1
++ PTRACE_PEEKTEXT_3264 = 0xc0
++ PTRACE_POKEDATA_3264 = 0xc3
++ PTRACE_POKETEXT_3264 = 0xc2
++ PTRACE_SETFPREGS = 0xf
++ PTRACE_SET_THREAD_AREA = 0x1a
++ PTRACE_SET_WATCH_REGS = 0xd1
++ RLIMIT_AS = 0x6
++ RLIMIT_MEMLOCK = 0x9
++ RLIMIT_NOFILE = 0x5
++ RLIMIT_NPROC = 0x8
++ RLIMIT_RSS = 0x7
++ RNDADDENTROPY = 0x80085203
++ RNDADDTOENTCNT = 0x80045201
++ RNDCLEARPOOL = 0x20005206
++ RNDGETENTCNT = 0x40045200
++ RNDGETPOOL = 0x40085202
++ RNDRESEEDCRNG = 0x20005207
++ RNDZAPENTCNT = 0x20005204
++ RTC_AIE_OFF = 0x20007002
++ RTC_AIE_ON = 0x20007001
++ RTC_ALM_READ = 0x40247008
++ RTC_ALM_SET = 0x80247007
++ RTC_EPOCH_READ = 0x4004700d
++ RTC_EPOCH_SET = 0x8004700e
++ RTC_IRQP_READ = 0x4004700b
++ RTC_IRQP_SET = 0x8004700c
++ RTC_PIE_OFF = 0x20007006
++ RTC_PIE_ON = 0x20007005
++ RTC_PLL_GET = 0x401c7011
++ RTC_PLL_SET = 0x801c7012
++ RTC_RD_TIME = 0x40247009
++ RTC_SET_TIME = 0x8024700a
++ RTC_UIE_OFF = 0x20007004
++ RTC_UIE_ON = 0x20007003
++ RTC_VL_CLR = 0x20007014
++ RTC_VL_READ = 0x40047013
++ RTC_WIE_OFF = 0x20007010
++ RTC_WIE_ON = 0x2000700f
++ RTC_WKALM_RD = 0x40287010
++ RTC_WKALM_SET = 0x8028700f
++ SCM_TIMESTAMPING = 0x25
++ SCM_TIMESTAMPING_OPT_STATS = 0x36
++ SCM_TIMESTAMPING_PKTINFO = 0x3a
++ SCM_TIMESTAMPNS = 0x23
++ SCM_TXTIME = 0x3d
++ SCM_WIFI_STATUS = 0x29
++ SFD_CLOEXEC = 0x80000
++ SFD_NONBLOCK = 0x80
++ SIOCATMARK = 0x40047307
++ SIOCGPGRP = 0x40047309
++ SIOCGSTAMPNS_NEW = 0x40108907
++ SIOCGSTAMP_NEW = 0x40108906
++ SIOCINQ = 0x467f
++ SIOCOUTQ = 0x7472
++ SIOCSPGRP = 0x80047308
++ SOCK_CLOEXEC = 0x80000
++ SOCK_DGRAM = 0x1
++ SOCK_NONBLOCK = 0x80
++ SOCK_STREAM = 0x2
++ SOL_SOCKET = 0xffff
++ SO_ACCEPTCONN = 0x1009
++ SO_ATTACH_BPF = 0x32
++ SO_ATTACH_REUSEPORT_CBPF = 0x33
++ SO_ATTACH_REUSEPORT_EBPF = 0x34
++ SO_BINDTODEVICE = 0x19
++ SO_BINDTOIFINDEX = 0x3e
++ SO_BPF_EXTENSIONS = 0x30
++ SO_BROADCAST = 0x20
++ SO_BSDCOMPAT = 0xe
++ SO_BUSY_POLL = 0x2e
++ SO_CNX_ADVICE = 0x35
++ SO_COOKIE = 0x39
++ SO_DETACH_REUSEPORT_BPF = 0x44
++ SO_DOMAIN = 0x1029
++ SO_DONTROUTE = 0x10
++ SO_ERROR = 0x1007
++ SO_INCOMING_CPU = 0x31
++ SO_INCOMING_NAPI_ID = 0x38
++ SO_KEEPALIVE = 0x8
++ SO_LINGER = 0x80
++ SO_LOCK_FILTER = 0x2c
++ SO_MARK = 0x24
++ SO_MAX_PACING_RATE = 0x2f
++ SO_MEMINFO = 0x37
++ SO_NOFCS = 0x2b
++ SO_OOBINLINE = 0x100
++ SO_PASSCRED = 0x11
++ SO_PASSSEC = 0x22
++ SO_PEEK_OFF = 0x2a
++ SO_PEERCRED = 0x12
++ SO_PEERGROUPS = 0x3b
++ SO_PEERSEC = 0x1e
++ SO_PROTOCOL = 0x1028
++ SO_RCVBUF = 0x1002
++ SO_RCVBUFFORCE = 0x21
++ SO_RCVLOWAT = 0x1004
++ SO_RCVTIMEO = 0x1006
++ SO_RCVTIMEO_NEW = 0x42
++ SO_RCVTIMEO_OLD = 0x1006
++ SO_REUSEADDR = 0x4
++ SO_REUSEPORT = 0x200
++ SO_RXQ_OVFL = 0x28
++ SO_SECURITY_AUTHENTICATION = 0x16
++ SO_SECURITY_ENCRYPTION_NETWORK = 0x18
++ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
++ SO_SELECT_ERR_QUEUE = 0x2d
++ SO_SNDBUF = 0x1001
++ SO_SNDBUFFORCE = 0x1f
++ SO_SNDLOWAT = 0x1003
++ SO_SNDTIMEO = 0x1005
++ SO_SNDTIMEO_NEW = 0x43
++ SO_SNDTIMEO_OLD = 0x1005
++ SO_STYLE = 0x1008
++ SO_TIMESTAMPING = 0x25
++ SO_TIMESTAMPING_NEW = 0x41
++ SO_TIMESTAMPING_OLD = 0x25
++ SO_TIMESTAMPNS = 0x23
++ SO_TIMESTAMPNS_NEW = 0x40
++ SO_TIMESTAMPNS_OLD = 0x23
++ SO_TIMESTAMP_NEW = 0x3f
++ SO_TXTIME = 0x3d
++ SO_TYPE = 0x1008
++ SO_WIFI_STATUS = 0x29
++ SO_ZEROCOPY = 0x3c
++ TAB1 = 0x800
++ TAB2 = 0x1000
++ TAB3 = 0x1800
++ TABDLY = 0x1800
++ TCFLSH = 0x5407
++ TCGETA = 0x5401
++ TCGETS = 0x540d
++ TCGETS2 = 0x4030542a
++ TCSAFLUSH = 0x5410
++ TCSBRK = 0x5405
++ TCSBRKP = 0x5486
++ TCSETA = 0x5402
++ TCSETAF = 0x5404
++ TCSETAW = 0x5403
++ TCSETS = 0x540e
++ TCSETS2 = 0x8030542b
++ TCSETSF = 0x5410
++ TCSETSF2 = 0x8030542d
++ TCSETSW = 0x540f
++ TCSETSW2 = 0x8030542c
++ TCXONC = 0x5406
++ TIOCCBRK = 0x5428
++ TIOCCONS = 0x80047478
++ TIOCEXCL = 0x740d
++ TIOCGDEV = 0x40045432
++ TIOCGETD = 0x7400
++ TIOCGETP = 0x7408
++ TIOCGEXCL = 0x40045440
++ TIOCGICOUNT = 0x5492
++ TIOCGISO7816 = 0x40285442
++ TIOCGLCKTRMIOS = 0x548b
++ TIOCGLTC = 0x7474
++ TIOCGPGRP = 0x40047477
++ TIOCGPKT = 0x40045438
++ TIOCGPTLCK = 0x40045439
++ TIOCGPTN = 0x40045430
++ TIOCGPTPEER = 0x20005441
++ TIOCGRS485 = 0x4020542e
++ TIOCGSERIAL = 0x5484
++ TIOCGSID = 0x7416
++ TIOCGSOFTCAR = 0x5481
++ TIOCGWINSZ = 0x40087468
++ TIOCINQ = 0x467f
++ TIOCLINUX = 0x5483
++ TIOCMBIC = 0x741c
++ TIOCMBIS = 0x741b
++ TIOCMGET = 0x741d
++ TIOCMIWAIT = 0x5491
++ TIOCMSET = 0x741a
++ TIOCM_CAR = 0x100
++ TIOCM_CD = 0x100
++ TIOCM_CTS = 0x40
++ TIOCM_DSR = 0x400
++ TIOCM_RI = 0x200
++ TIOCM_RNG = 0x200
++ TIOCM_SR = 0x20
++ TIOCM_ST = 0x10
++ TIOCNOTTY = 0x5471
++ TIOCNXCL = 0x740e
++ TIOCOUTQ = 0x7472
++ TIOCPKT = 0x5470
++ TIOCSBRK = 0x5427
++ TIOCSCTTY = 0x5480
++ TIOCSERCONFIG = 0x5488
++ TIOCSERGETLSR = 0x548e
++ TIOCSERGETMULTI = 0x548f
++ TIOCSERGSTRUCT = 0x548d
++ TIOCSERGWILD = 0x5489
++ TIOCSERSETMULTI = 0x5490
++ TIOCSERSWILD = 0x548a
++ TIOCSER_TEMT = 0x1
++ TIOCSETD = 0x7401
++ TIOCSETN = 0x740a
++ TIOCSETP = 0x7409
++ TIOCSIG = 0x80045436
++ TIOCSISO7816 = 0xc0285443
++ TIOCSLCKTRMIOS = 0x548c
++ TIOCSLTC = 0x7475
++ TIOCSPGRP = 0x80047476
++ TIOCSPTLCK = 0x80045431
++ TIOCSRS485 = 0xc020542f
++ TIOCSSERIAL = 0x5485
++ TIOCSSOFTCAR = 0x5482
++ TIOCSTI = 0x5472
++ TIOCSWINSZ = 0x80087467
++ TIOCVHANGUP = 0x5437
++ TOSTOP = 0x8000
++ TUNATTACHFILTER = 0x800854d5
++ TUNDETACHFILTER = 0x800854d6
++ TUNGETDEVNETNS = 0x200054e3
++ TUNGETFEATURES = 0x400454cf
++ TUNGETFILTER = 0x400854db
++ TUNGETIFF = 0x400454d2
++ TUNGETSNDBUF = 0x400454d3
++ TUNGETVNETBE = 0x400454df
++ TUNGETVNETHDRSZ = 0x400454d7
++ TUNGETVNETLE = 0x400454dd
++ TUNSETCARRIER = 0x800454e2
++ TUNSETDEBUG = 0x800454c9
++ TUNSETFILTEREBPF = 0x400454e1
++ TUNSETGROUP = 0x800454ce
++ TUNSETIFF = 0x800454ca
++ TUNSETIFINDEX = 0x800454da
++ TUNSETLINK = 0x800454cd
++ TUNSETNOCSUM = 0x800454c8
++ TUNSETOFFLOAD = 0x800454d0
++ TUNSETOWNER = 0x800454cc
++ TUNSETPERSIST = 0x800454cb
++ TUNSETQUEUE = 0x800454d9
++ TUNSETSNDBUF = 0x800454d4
++ TUNSETSTEERINGEBPF = 0x400454e0
++ TUNSETTXFILTER = 0x800454d1
++ TUNSETVNETBE = 0x800454de
++ TUNSETVNETHDRSZ = 0x800454d8
++ TUNSETVNETLE = 0x800454dc
++ UBI_IOCATT = 0x80186f40
++ UBI_IOCDET = 0x80046f41
++ UBI_IOCEBCH = 0x80044f02
++ UBI_IOCEBER = 0x80044f01
++ UBI_IOCEBISMAP = 0x40044f05
++ UBI_IOCEBMAP = 0x80084f03
++ UBI_IOCEBUNMAP = 0x80044f04
++ UBI_IOCMKVOL = 0x80986f00
++ UBI_IOCRMVOL = 0x80046f01
++ UBI_IOCRNVOL = 0x91106f03
++ UBI_IOCRPEB = 0x80046f04
++ UBI_IOCRSVOL = 0x800c6f02
++ UBI_IOCSETVOLPROP = 0x80104f06
++ UBI_IOCSPEB = 0x80046f05
++ UBI_IOCVOLCRBLK = 0x80804f07
++ UBI_IOCVOLRMBLK = 0x20004f08
++ UBI_IOCVOLUP = 0x80084f00
++ VDISCARD = 0xd
++ VEOF = 0x10
++ VEOL = 0x11
++ VEOL2 = 0x6
++ VMIN = 0x4
++ VREPRINT = 0xc
++ VSTART = 0x8
++ VSTOP = 0x9
++ VSUSP = 0xa
++ VSWTC = 0x7
++ VSWTCH = 0x7
++ VT1 = 0x4000
++ VTDLY = 0x4000
++ VTIME = 0x5
++ VWERASE = 0xe
++ WDIOC_GETBOOTSTATUS = 0x40045702
++ WDIOC_GETPRETIMEOUT = 0x40045709
++ WDIOC_GETSTATUS = 0x40045701
++ WDIOC_GETSUPPORT = 0x40285700
++ WDIOC_GETTEMP = 0x40045703
++ WDIOC_GETTIMELEFT = 0x4004570a
++ WDIOC_GETTIMEOUT = 0x40045707
++ WDIOC_KEEPALIVE = 0x40045705
++ WDIOC_SETOPTIONS = 0x40045704
++ WORDSIZE = 0x20
++ XCASE = 0x4
++ XTABS = 0x1800
+ )
+
+ // Errors
+ const (
+- E2BIG = syscall.Errno(0x7)
+- EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x7d)
+ EADDRNOTAVAIL = syscall.Errno(0x7e)
+ EADV = syscall.Errno(0x44)
+ EAFNOSUPPORT = syscall.Errno(0x7c)
+- EAGAIN = syscall.Errno(0xb)
+ EALREADY = syscall.Errno(0x95)
+ EBADE = syscall.Errno(0x32)
+- EBADF = syscall.Errno(0x9)
+ EBADFD = syscall.Errno(0x51)
+ EBADMSG = syscall.Errno(0x4d)
+ EBADR = syscall.Errno(0x33)
+ EBADRQC = syscall.Errno(0x36)
+ EBADSLT = syscall.Errno(0x37)
+ EBFONT = syscall.Errno(0x3b)
+- EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x9e)
+- ECHILD = syscall.Errno(0xa)
+ ECHRNG = syscall.Errno(0x25)
+ ECOMM = syscall.Errno(0x46)
+ ECONNABORTED = syscall.Errno(0x82)
+@@ -1886,12 +502,8 @@ const (
+ EDEADLK = syscall.Errno(0x2d)
+ EDEADLOCK = syscall.Errno(0x38)
+ EDESTADDRREQ = syscall.Errno(0x60)
+- EDOM = syscall.Errno(0x21)
+ EDOTDOT = syscall.Errno(0x49)
+ EDQUOT = syscall.Errno(0x46d)
+- EEXIST = syscall.Errno(0x11)
+- EFAULT = syscall.Errno(0xe)
+- EFBIG = syscall.Errno(0x1b)
+ EHOSTDOWN = syscall.Errno(0x93)
+ EHOSTUNREACH = syscall.Errno(0x94)
+ EHWPOISON = syscall.Errno(0xa8)
+@@ -1899,11 +511,7 @@ const (
+ EILSEQ = syscall.Errno(0x58)
+ EINIT = syscall.Errno(0x8d)
+ EINPROGRESS = syscall.Errno(0x96)
+- EINTR = syscall.Errno(0x4)
+- EINVAL = syscall.Errno(0x16)
+- EIO = syscall.Errno(0x5)
+ EISCONN = syscall.Errno(0x85)
+- EISDIR = syscall.Errno(0x15)
+ EISNAM = syscall.Errno(0x8b)
+ EKEYEXPIRED = syscall.Errno(0xa2)
+ EKEYREJECTED = syscall.Errno(0xa4)
+@@ -1920,8 +528,6 @@ const (
+ ELNRNG = syscall.Errno(0x29)
+ ELOOP = syscall.Errno(0x5a)
+ EMEDIUMTYPE = syscall.Errno(0xa0)
+- EMFILE = syscall.Errno(0x18)
+- EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x61)
+ EMULTIHOP = syscall.Errno(0x4a)
+ ENAMETOOLONG = syscall.Errno(0x4e)
+@@ -1929,100 +535,68 @@ const (
+ ENETDOWN = syscall.Errno(0x7f)
+ ENETRESET = syscall.Errno(0x81)
+ ENETUNREACH = syscall.Errno(0x80)
+- ENFILE = syscall.Errno(0x17)
+ ENOANO = syscall.Errno(0x35)
+ ENOBUFS = syscall.Errno(0x84)
+ ENOCSI = syscall.Errno(0x2b)
+ ENODATA = syscall.Errno(0x3d)
+- ENODEV = syscall.Errno(0x13)
+- ENOENT = syscall.Errno(0x2)
+- ENOEXEC = syscall.Errno(0x8)
+ ENOKEY = syscall.Errno(0xa1)
+ ENOLCK = syscall.Errno(0x2e)
+ ENOLINK = syscall.Errno(0x43)
+ ENOMEDIUM = syscall.Errno(0x9f)
+- ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x23)
+ ENONET = syscall.Errno(0x40)
+ ENOPKG = syscall.Errno(0x41)
+ ENOPROTOOPT = syscall.Errno(0x63)
+- ENOSPC = syscall.Errno(0x1c)
+ ENOSR = syscall.Errno(0x3f)
+ ENOSTR = syscall.Errno(0x3c)
+ ENOSYS = syscall.Errno(0x59)
+- ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x86)
+- ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x5d)
+ ENOTNAM = syscall.Errno(0x89)
+ ENOTRECOVERABLE = syscall.Errno(0xa6)
+ ENOTSOCK = syscall.Errno(0x5f)
+ ENOTSUP = syscall.Errno(0x7a)
+- ENOTTY = syscall.Errno(0x19)
+ ENOTUNIQ = syscall.Errno(0x50)
+- ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x7a)
+ EOVERFLOW = syscall.Errno(0x4f)
+ EOWNERDEAD = syscall.Errno(0xa5)
+- EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x7b)
+- EPIPE = syscall.Errno(0x20)
+ EPROTO = syscall.Errno(0x47)
+ EPROTONOSUPPORT = syscall.Errno(0x78)
+ EPROTOTYPE = syscall.Errno(0x62)
+- ERANGE = syscall.Errno(0x22)
+ EREMCHG = syscall.Errno(0x52)
+ EREMDEV = syscall.Errno(0x8e)
+ EREMOTE = syscall.Errno(0x42)
+ EREMOTEIO = syscall.Errno(0x8c)
+ ERESTART = syscall.Errno(0x5b)
+ ERFKILL = syscall.Errno(0xa7)
+- EROFS = syscall.Errno(0x1e)
+ ESHUTDOWN = syscall.Errno(0x8f)
+ ESOCKTNOSUPPORT = syscall.Errno(0x79)
+- ESPIPE = syscall.Errno(0x1d)
+- ESRCH = syscall.Errno(0x3)
+ ESRMNT = syscall.Errno(0x45)
+ ESTALE = syscall.Errno(0x97)
+ ESTRPIPE = syscall.Errno(0x5c)
+ ETIME = syscall.Errno(0x3e)
+ ETIMEDOUT = syscall.Errno(0x91)
+ ETOOMANYREFS = syscall.Errno(0x90)
+- ETXTBSY = syscall.Errno(0x1a)
+ EUCLEAN = syscall.Errno(0x87)
+ EUNATCH = syscall.Errno(0x2a)
+ EUSERS = syscall.Errno(0x5e)
+- EWOULDBLOCK = syscall.Errno(0xb)
+- EXDEV = syscall.Errno(0x12)
+ EXFULL = syscall.Errno(0x34)
+ )
+
+ // Signals
+ const (
+- SIGABRT = syscall.Signal(0x6)
+- SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0xa)
+ SIGCHLD = syscall.Signal(0x12)
+ SIGCLD = syscall.Signal(0x12)
+ SIGCONT = syscall.Signal(0x19)
+ SIGEMT = syscall.Signal(0x7)
+- SIGFPE = syscall.Signal(0x8)
+- SIGHUP = syscall.Signal(0x1)
+- SIGILL = syscall.Signal(0x4)
+- SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x16)
+- SIGIOT = syscall.Signal(0x6)
+- SIGKILL = syscall.Signal(0x9)
+- SIGPIPE = syscall.Signal(0xd)
+ SIGPOLL = syscall.Signal(0x16)
+ SIGPROF = syscall.Signal(0x1d)
+ SIGPWR = syscall.Signal(0x13)
+- SIGQUIT = syscall.Signal(0x3)
+- SIGSEGV = syscall.Signal(0xb)
+ SIGSTOP = syscall.Signal(0x17)
+ SIGSYS = syscall.Signal(0xc)
+- SIGTERM = syscall.Signal(0xf)
+- SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x18)
+ SIGTTIN = syscall.Signal(0x1a)
+ SIGTTOU = syscall.Signal(0x1b)
+@@ -2036,174 +610,182 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "no such device or address",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource temporarily unavailable",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "device or resource busy",
+- 17: "file exists",
+- 18: "invalid cross-device link",
+- 19: "no such device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "numerical result out of range",
+- 35: "no message of desired type",
+- 36: "identifier removed",
+- 37: "channel number out of range",
+- 38: "level 2 not synchronized",
+- 39: "level 3 halted",
+- 40: "level 3 reset",
+- 41: "link number out of range",
+- 42: "protocol driver not attached",
+- 43: "no CSI structure available",
+- 44: "level 2 halted",
+- 45: "resource deadlock avoided",
+- 46: "no locks available",
+- 50: "invalid exchange",
+- 51: "invalid request descriptor",
+- 52: "exchange full",
+- 53: "no anode",
+- 54: "invalid request code",
+- 55: "invalid slot",
+- 56: "file locking deadlock error",
+- 59: "bad font file format",
+- 60: "device not a stream",
+- 61: "no data available",
+- 62: "timer expired",
+- 63: "out of streams resources",
+- 64: "machine is not on the network",
+- 65: "package not installed",
+- 66: "object is remote",
+- 67: "link has been severed",
+- 68: "advertise error",
+- 69: "srmount error",
+- 70: "communication error on send",
+- 71: "protocol error",
+- 73: "RFS specific error",
+- 74: "multihop attempted",
+- 77: "bad message",
+- 78: "file name too long",
+- 79: "value too large for defined data type",
+- 80: "name not unique on network",
+- 81: "file descriptor in bad state",
+- 82: "remote address changed",
+- 83: "can not access a needed shared library",
+- 84: "accessing a corrupted shared library",
+- 85: ".lib section in a.out corrupted",
+- 86: "attempting to link in too many shared libraries",
+- 87: "cannot exec a shared library directly",
+- 88: "invalid or incomplete multibyte or wide character",
+- 89: "function not implemented",
+- 90: "too many levels of symbolic links",
+- 91: "interrupted system call should be restarted",
+- 92: "streams pipe error",
+- 93: "directory not empty",
+- 94: "too many users",
+- 95: "socket operation on non-socket",
+- 96: "destination address required",
+- 97: "message too long",
+- 98: "protocol wrong type for socket",
+- 99: "protocol not available",
+- 120: "protocol not supported",
+- 121: "socket type not supported",
+- 122: "operation not supported",
+- 123: "protocol family not supported",
+- 124: "address family not supported by protocol",
+- 125: "address already in use",
+- 126: "cannot assign requested address",
+- 127: "network is down",
+- 128: "network is unreachable",
+- 129: "network dropped connection on reset",
+- 130: "software caused connection abort",
+- 131: "connection reset by peer",
+- 132: "no buffer space available",
+- 133: "transport endpoint is already connected",
+- 134: "transport endpoint is not connected",
+- 135: "structure needs cleaning",
+- 137: "not a XENIX named type file",
+- 138: "no XENIX semaphores available",
+- 139: "is a named type file",
+- 140: "remote I/O error",
+- 141: "unknown error 141",
+- 142: "unknown error 142",
+- 143: "cannot send after transport endpoint shutdown",
+- 144: "too many references: cannot splice",
+- 145: "connection timed out",
+- 146: "connection refused",
+- 147: "host is down",
+- 148: "no route to host",
+- 149: "operation already in progress",
+- 150: "operation now in progress",
+- 151: "stale file handle",
+- 158: "operation canceled",
+- 159: "no medium found",
+- 160: "wrong medium type",
+- 161: "required key not available",
+- 162: "key has expired",
+- 163: "key has been revoked",
+- 164: "key was rejected by service",
+- 165: "owner died",
+- 166: "state not recoverable",
+- 167: "operation not possible due to RF-kill",
+- 168: "memory page has hardware error",
+- 1133: "disk quota exceeded",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "no such device or address"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EAGAIN", "resource temporarily unavailable"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device or resource busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "invalid cross-device link"},
++ {19, "ENODEV", "no such device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "numerical result out of range"},
++ {35, "ENOMSG", "no message of desired type"},
++ {36, "EIDRM", "identifier removed"},
++ {37, "ECHRNG", "channel number out of range"},
++ {38, "EL2NSYNC", "level 2 not synchronized"},
++ {39, "EL3HLT", "level 3 halted"},
++ {40, "EL3RST", "level 3 reset"},
++ {41, "ELNRNG", "link number out of range"},
++ {42, "EUNATCH", "protocol driver not attached"},
++ {43, "ENOCSI", "no CSI structure available"},
++ {44, "EL2HLT", "level 2 halted"},
++ {45, "EDEADLK", "resource deadlock avoided"},
++ {46, "ENOLCK", "no locks available"},
++ {50, "EBADE", "invalid exchange"},
++ {51, "EBADR", "invalid request descriptor"},
++ {52, "EXFULL", "exchange full"},
++ {53, "ENOANO", "no anode"},
++ {54, "EBADRQC", "invalid request code"},
++ {55, "EBADSLT", "invalid slot"},
++ {56, "EDEADLOCK", "file locking deadlock error"},
++ {59, "EBFONT", "bad font file format"},
++ {60, "ENOSTR", "device not a stream"},
++ {61, "ENODATA", "no data available"},
++ {62, "ETIME", "timer expired"},
++ {63, "ENOSR", "out of streams resources"},
++ {64, "ENONET", "machine is not on the network"},
++ {65, "ENOPKG", "package not installed"},
++ {66, "EREMOTE", "object is remote"},
++ {67, "ENOLINK", "link has been severed"},
++ {68, "EADV", "advertise error"},
++ {69, "ESRMNT", "srmount error"},
++ {70, "ECOMM", "communication error on send"},
++ {71, "EPROTO", "protocol error"},
++ {73, "EDOTDOT", "RFS specific error"},
++ {74, "EMULTIHOP", "multihop attempted"},
++ {77, "EBADMSG", "bad message"},
++ {78, "ENAMETOOLONG", "file name too long"},
++ {79, "EOVERFLOW", "value too large for defined data type"},
++ {80, "ENOTUNIQ", "name not unique on network"},
++ {81, "EBADFD", "file descriptor in bad state"},
++ {82, "EREMCHG", "remote address changed"},
++ {83, "ELIBACC", "can not access a needed shared library"},
++ {84, "ELIBBAD", "accessing a corrupted shared library"},
++ {85, "ELIBSCN", ".lib section in a.out corrupted"},
++ {86, "ELIBMAX", "attempting to link in too many shared libraries"},
++ {87, "ELIBEXEC", "cannot exec a shared library directly"},
++ {88, "EILSEQ", "invalid or incomplete multibyte or wide character"},
++ {89, "ENOSYS", "function not implemented"},
++ {90, "ELOOP", "too many levels of symbolic links"},
++ {91, "ERESTART", "interrupted system call should be restarted"},
++ {92, "ESTRPIPE", "streams pipe error"},
++ {93, "ENOTEMPTY", "directory not empty"},
++ {94, "EUSERS", "too many users"},
++ {95, "ENOTSOCK", "socket operation on non-socket"},
++ {96, "EDESTADDRREQ", "destination address required"},
++ {97, "EMSGSIZE", "message too long"},
++ {98, "EPROTOTYPE", "protocol wrong type for socket"},
++ {99, "ENOPROTOOPT", "protocol not available"},
++ {120, "EPROTONOSUPPORT", "protocol not supported"},
++ {121, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {122, "ENOTSUP", "operation not supported"},
++ {123, "EPFNOSUPPORT", "protocol family not supported"},
++ {124, "EAFNOSUPPORT", "address family not supported by protocol"},
++ {125, "EADDRINUSE", "address already in use"},
++ {126, "EADDRNOTAVAIL", "cannot assign requested address"},
++ {127, "ENETDOWN", "network is down"},
++ {128, "ENETUNREACH", "network is unreachable"},
++ {129, "ENETRESET", "network dropped connection on reset"},
++ {130, "ECONNABORTED", "software caused connection abort"},
++ {131, "ECONNRESET", "connection reset by peer"},
++ {132, "ENOBUFS", "no buffer space available"},
++ {133, "EISCONN", "transport endpoint is already connected"},
++ {134, "ENOTCONN", "transport endpoint is not connected"},
++ {135, "EUCLEAN", "structure needs cleaning"},
++ {137, "ENOTNAM", "not a XENIX named type file"},
++ {138, "ENAVAIL", "no XENIX semaphores available"},
++ {139, "EISNAM", "is a named type file"},
++ {140, "EREMOTEIO", "remote I/O error"},
++ {141, "EINIT", "unknown error 141"},
++ {142, "EREMDEV", "unknown error 142"},
++ {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"},
++ {144, "ETOOMANYREFS", "too many references: cannot splice"},
++ {145, "ETIMEDOUT", "connection timed out"},
++ {146, "ECONNREFUSED", "connection refused"},
++ {147, "EHOSTDOWN", "host is down"},
++ {148, "EHOSTUNREACH", "no route to host"},
++ {149, "EALREADY", "operation already in progress"},
++ {150, "EINPROGRESS", "operation now in progress"},
++ {151, "ESTALE", "stale file handle"},
++ {158, "ECANCELED", "operation canceled"},
++ {159, "ENOMEDIUM", "no medium found"},
++ {160, "EMEDIUMTYPE", "wrong medium type"},
++ {161, "ENOKEY", "required key not available"},
++ {162, "EKEYEXPIRED", "key has expired"},
++ {163, "EKEYREVOKED", "key has been revoked"},
++ {164, "EKEYREJECTED", "key was rejected by service"},
++ {165, "EOWNERDEAD", "owner died"},
++ {166, "ENOTRECOVERABLE", "state not recoverable"},
++ {167, "ERFKILL", "operation not possible due to RF-kill"},
++ {168, "EHWPOISON", "memory page has hardware error"},
++ {1133, "EDQUOT", "disk quota exceeded"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/breakpoint trap",
+- 6: "aborted",
+- 7: "EMT trap",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "bus error",
+- 11: "segmentation fault",
+- 12: "bad system call",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "user defined signal 1",
+- 17: "user defined signal 2",
+- 18: "child exited",
+- 19: "power failure",
+- 20: "window changed",
+- 21: "urgent I/O condition",
+- 22: "I/O possible",
+- 23: "stopped (signal)",
+- 24: "stopped",
+- 25: "continued",
+- 26: "stopped (tty input)",
+- 27: "stopped (tty output)",
+- 28: "virtual timer expired",
+- 29: "profiling timer expired",
+- 30: "CPU time limit exceeded",
+- 31: "file size limit exceeded",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/breakpoint trap"},
++ {6, "SIGABRT", "aborted"},
++ {7, "SIGEMT", "EMT trap"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGBUS", "bus error"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGSYS", "bad system call"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGUSR1", "user defined signal 1"},
++ {17, "SIGUSR2", "user defined signal 2"},
++ {18, "SIGCHLD", "child exited"},
++ {19, "SIGPWR", "power failure"},
++ {20, "SIGWINCH", "window changed"},
++ {21, "SIGURG", "urgent I/O condition"},
++ {22, "SIGIO", "I/O possible"},
++ {23, "SIGSTOP", "stopped (signal)"},
++ {24, "SIGTSTP", "stopped"},
++ {25, "SIGCONT", "continued"},
++ {26, "SIGTTIN", "stopped (tty input)"},
++ {27, "SIGTTOU", "stopped (tty output)"},
++ {28, "SIGVTALRM", "virtual timer expired"},
++ {29, "SIGPROF", "profiling timer expired"},
++ {30, "SIGXCPU", "CPU time limit exceeded"},
++ {31, "SIGXFSZ", "file size limit exceeded"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
+index 6772a59b..51858667 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
+@@ -3,7 +3,7 @@
+
+ // +build ppc64,linux
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
+
+ package unix
+@@ -11,1930 +11,549 @@ package unix
+ import "syscall"
+
+ const (
+- AF_ALG = 0x26
+- AF_APPLETALK = 0x5
+- AF_ASH = 0x12
+- AF_ATMPVC = 0x8
+- AF_ATMSVC = 0x14
+- AF_AX25 = 0x3
+- AF_BLUETOOTH = 0x1f
+- AF_BRIDGE = 0x7
+- AF_CAIF = 0x25
+- AF_CAN = 0x1d
+- AF_DECnet = 0xc
+- AF_ECONET = 0x13
+- AF_FILE = 0x1
+- AF_IB = 0x1b
+- AF_IEEE802154 = 0x24
+- AF_INET = 0x2
+- AF_INET6 = 0xa
+- AF_IPX = 0x4
+- AF_IRDA = 0x17
+- AF_ISDN = 0x22
+- AF_IUCV = 0x20
+- AF_KCM = 0x29
+- AF_KEY = 0xf
+- AF_LLC = 0x1a
+- AF_LOCAL = 0x1
+- AF_MAX = 0x2b
+- AF_MPLS = 0x1c
+- AF_NETBEUI = 0xd
+- AF_NETLINK = 0x10
+- AF_NETROM = 0x6
+- AF_NFC = 0x27
+- AF_PACKET = 0x11
+- AF_PHONET = 0x23
+- AF_PPPOX = 0x18
+- AF_QIPCRTR = 0x2a
+- AF_RDS = 0x15
+- AF_ROSE = 0xb
+- AF_ROUTE = 0x10
+- AF_RXRPC = 0x21
+- AF_SECURITY = 0xe
+- AF_SNA = 0x16
+- AF_TIPC = 0x1e
+- AF_UNIX = 0x1
+- AF_UNSPEC = 0x0
+- AF_VSOCK = 0x28
+- AF_WANPIPE = 0x19
+- AF_X25 = 0x9
+- ALG_OP_DECRYPT = 0x0
+- ALG_OP_ENCRYPT = 0x1
+- ALG_SET_AEAD_ASSOCLEN = 0x4
+- ALG_SET_AEAD_AUTHSIZE = 0x5
+- ALG_SET_IV = 0x2
+- ALG_SET_KEY = 0x1
+- ALG_SET_OP = 0x3
+- ARPHRD_6LOWPAN = 0x339
+- ARPHRD_ADAPT = 0x108
+- ARPHRD_APPLETLK = 0x8
+- ARPHRD_ARCNET = 0x7
+- ARPHRD_ASH = 0x30d
+- ARPHRD_ATM = 0x13
+- ARPHRD_AX25 = 0x3
+- ARPHRD_BIF = 0x307
+- ARPHRD_CAIF = 0x336
+- ARPHRD_CAN = 0x118
+- ARPHRD_CHAOS = 0x5
+- ARPHRD_CISCO = 0x201
+- ARPHRD_CSLIP = 0x101
+- ARPHRD_CSLIP6 = 0x103
+- ARPHRD_DDCMP = 0x205
+- ARPHRD_DLCI = 0xf
+- ARPHRD_ECONET = 0x30e
+- ARPHRD_EETHER = 0x2
+- ARPHRD_ETHER = 0x1
+- ARPHRD_EUI64 = 0x1b
+- ARPHRD_FCAL = 0x311
+- ARPHRD_FCFABRIC = 0x313
+- ARPHRD_FCPL = 0x312
+- ARPHRD_FCPP = 0x310
+- ARPHRD_FDDI = 0x306
+- ARPHRD_FRAD = 0x302
+- ARPHRD_HDLC = 0x201
+- ARPHRD_HIPPI = 0x30c
+- ARPHRD_HWX25 = 0x110
+- ARPHRD_IEEE1394 = 0x18
+- ARPHRD_IEEE802 = 0x6
+- ARPHRD_IEEE80211 = 0x321
+- ARPHRD_IEEE80211_PRISM = 0x322
+- ARPHRD_IEEE80211_RADIOTAP = 0x323
+- ARPHRD_IEEE802154 = 0x324
+- ARPHRD_IEEE802154_MONITOR = 0x325
+- ARPHRD_IEEE802_TR = 0x320
+- ARPHRD_INFINIBAND = 0x20
+- ARPHRD_IP6GRE = 0x337
+- ARPHRD_IPDDP = 0x309
+- ARPHRD_IPGRE = 0x30a
+- ARPHRD_IRDA = 0x30f
+- ARPHRD_LAPB = 0x204
+- ARPHRD_LOCALTLK = 0x305
+- ARPHRD_LOOPBACK = 0x304
+- ARPHRD_METRICOM = 0x17
+- ARPHRD_NETLINK = 0x338
+- ARPHRD_NETROM = 0x0
+- ARPHRD_NONE = 0xfffe
+- ARPHRD_PHONET = 0x334
+- ARPHRD_PHONET_PIPE = 0x335
+- ARPHRD_PIMREG = 0x30b
+- ARPHRD_PPP = 0x200
+- ARPHRD_PRONET = 0x4
+- ARPHRD_RAWHDLC = 0x206
+- ARPHRD_ROSE = 0x10e
+- ARPHRD_RSRVD = 0x104
+- ARPHRD_SIT = 0x308
+- ARPHRD_SKIP = 0x303
+- ARPHRD_SLIP = 0x100
+- ARPHRD_SLIP6 = 0x102
+- ARPHRD_TUNNEL = 0x300
+- ARPHRD_TUNNEL6 = 0x301
+- ARPHRD_VOID = 0xffff
+- ARPHRD_X25 = 0x10f
+- B0 = 0x0
+- B1000000 = 0x17
+- B110 = 0x3
+- B115200 = 0x11
+- B1152000 = 0x18
+- B1200 = 0x9
+- B134 = 0x4
+- B150 = 0x5
+- B1500000 = 0x19
+- B1800 = 0xa
+- B19200 = 0xe
+- B200 = 0x6
+- B2000000 = 0x1a
+- B230400 = 0x12
+- B2400 = 0xb
+- B2500000 = 0x1b
+- B300 = 0x7
+- B3000000 = 0x1c
+- B3500000 = 0x1d
+- B38400 = 0xf
+- B4000000 = 0x1e
+- B460800 = 0x13
+- B4800 = 0xc
+- B50 = 0x1
+- B500000 = 0x14
+- B57600 = 0x10
+- B576000 = 0x15
+- B600 = 0x8
+- B75 = 0x2
+- B921600 = 0x16
+- B9600 = 0xd
+- BLKBSZGET = 0x40081270
+- BLKBSZSET = 0x80081271
+- BLKFLSBUF = 0x20001261
+- BLKFRAGET = 0x20001265
+- BLKFRASET = 0x20001264
+- BLKGETSIZE = 0x20001260
+- BLKGETSIZE64 = 0x40081272
+- BLKPBSZGET = 0x2000127b
+- BLKRAGET = 0x20001263
+- BLKRASET = 0x20001262
+- BLKROGET = 0x2000125e
+- BLKROSET = 0x2000125d
+- BLKRRPART = 0x2000125f
+- BLKSECTGET = 0x20001267
+- BLKSECTSET = 0x20001266
+- BLKSSZGET = 0x20001268
+- BOTHER = 0x1f
+- BPF_A = 0x10
+- BPF_ABS = 0x20
+- BPF_ADD = 0x0
+- BPF_ALU = 0x4
+- BPF_AND = 0x50
+- BPF_B = 0x10
+- BPF_DIV = 0x30
+- BPF_H = 0x8
+- BPF_IMM = 0x0
+- BPF_IND = 0x40
+- BPF_JA = 0x0
+- BPF_JEQ = 0x10
+- BPF_JGE = 0x30
+- BPF_JGT = 0x20
+- BPF_JMP = 0x5
+- BPF_JSET = 0x40
+- BPF_K = 0x0
+- BPF_LD = 0x0
+- BPF_LDX = 0x1
+- BPF_LEN = 0x80
+- BPF_LL_OFF = -0x200000
+- BPF_LSH = 0x60
+- BPF_MAJOR_VERSION = 0x1
+- BPF_MAXINSNS = 0x1000
+- BPF_MEM = 0x60
+- BPF_MEMWORDS = 0x10
+- BPF_MINOR_VERSION = 0x1
+- BPF_MISC = 0x7
+- BPF_MOD = 0x90
+- BPF_MSH = 0xa0
+- BPF_MUL = 0x20
+- BPF_NEG = 0x80
+- BPF_NET_OFF = -0x100000
+- BPF_OR = 0x40
+- BPF_RET = 0x6
+- BPF_RSH = 0x70
+- BPF_ST = 0x2
+- BPF_STX = 0x3
+- BPF_SUB = 0x10
+- BPF_TAX = 0x0
+- BPF_TXA = 0x80
+- BPF_W = 0x0
+- BPF_X = 0x8
+- BPF_XOR = 0xa0
+- BRKINT = 0x2
+- BS0 = 0x0
+- BS1 = 0x8000
+- BSDLY = 0x8000
+- CAN_BCM = 0x2
+- CAN_EFF_FLAG = 0x80000000
+- CAN_EFF_ID_BITS = 0x1d
+- CAN_EFF_MASK = 0x1fffffff
+- CAN_ERR_FLAG = 0x20000000
+- CAN_ERR_MASK = 0x1fffffff
+- CAN_INV_FILTER = 0x20000000
+- CAN_ISOTP = 0x6
+- CAN_MAX_DLC = 0x8
+- CAN_MAX_DLEN = 0x8
+- CAN_MCNET = 0x5
+- CAN_MTU = 0x10
+- CAN_NPROTO = 0x7
+- CAN_RAW = 0x1
+- CAN_RAW_FILTER_MAX = 0x200
+- CAN_RTR_FLAG = 0x40000000
+- CAN_SFF_ID_BITS = 0xb
+- CAN_SFF_MASK = 0x7ff
+- CAN_TP16 = 0x3
+- CAN_TP20 = 0x4
+- CBAUD = 0xff
+- CBAUDEX = 0x0
+- CFLUSH = 0xf
+- CIBAUD = 0xff0000
+- CLOCAL = 0x8000
+- CLOCK_BOOTTIME = 0x7
+- CLOCK_BOOTTIME_ALARM = 0x9
+- CLOCK_DEFAULT = 0x0
+- CLOCK_EXT = 0x1
+- CLOCK_INT = 0x2
+- CLOCK_MONOTONIC = 0x1
+- CLOCK_MONOTONIC_COARSE = 0x6
+- CLOCK_MONOTONIC_RAW = 0x4
+- CLOCK_PROCESS_CPUTIME_ID = 0x2
+- CLOCK_REALTIME = 0x0
+- CLOCK_REALTIME_ALARM = 0x8
+- CLOCK_REALTIME_COARSE = 0x5
+- CLOCK_TAI = 0xb
+- CLOCK_THREAD_CPUTIME_ID = 0x3
+- CLOCK_TXFROMRX = 0x4
+- CLOCK_TXINT = 0x3
+- CLONE_CHILD_CLEARTID = 0x200000
+- CLONE_CHILD_SETTID = 0x1000000
+- CLONE_DETACHED = 0x400000
+- CLONE_FILES = 0x400
+- CLONE_FS = 0x200
+- CLONE_IO = 0x80000000
+- CLONE_NEWCGROUP = 0x2000000
+- CLONE_NEWIPC = 0x8000000
+- CLONE_NEWNET = 0x40000000
+- CLONE_NEWNS = 0x20000
+- CLONE_NEWPID = 0x20000000
+- CLONE_NEWUSER = 0x10000000
+- CLONE_NEWUTS = 0x4000000
+- CLONE_PARENT = 0x8000
+- CLONE_PARENT_SETTID = 0x100000
+- CLONE_PTRACE = 0x2000
+- CLONE_SETTLS = 0x80000
+- CLONE_SIGHAND = 0x800
+- CLONE_SYSVSEM = 0x40000
+- CLONE_THREAD = 0x10000
+- CLONE_UNTRACED = 0x800000
+- CLONE_VFORK = 0x4000
+- CLONE_VM = 0x100
+- CMSPAR = 0x40000000
+- CR0 = 0x0
+- CR1 = 0x1000
+- CR2 = 0x2000
+- CR3 = 0x3000
+- CRDLY = 0x3000
+- CREAD = 0x800
+- CRTSCTS = 0x80000000
+- CS5 = 0x0
+- CS6 = 0x100
+- CS7 = 0x200
+- CS8 = 0x300
+- CSIGNAL = 0xff
+- CSIZE = 0x300
+- CSTART = 0x11
+- CSTATUS = 0x0
+- CSTOP = 0x13
+- CSTOPB = 0x400
+- CSUSP = 0x1a
+- DT_BLK = 0x6
+- DT_CHR = 0x2
+- DT_DIR = 0x4
+- DT_FIFO = 0x1
+- DT_LNK = 0xa
+- DT_REG = 0x8
+- DT_SOCK = 0xc
+- DT_UNKNOWN = 0x0
+- DT_WHT = 0xe
+- ECHO = 0x8
+- ECHOCTL = 0x40
+- ECHOE = 0x2
+- ECHOK = 0x4
+- ECHOKE = 0x1
+- ECHONL = 0x10
+- ECHOPRT = 0x20
+- EFD_CLOEXEC = 0x80000
+- EFD_NONBLOCK = 0x800
+- EFD_SEMAPHORE = 0x1
+- ENCODING_DEFAULT = 0x0
+- ENCODING_FM_MARK = 0x3
+- ENCODING_FM_SPACE = 0x4
+- ENCODING_MANCHESTER = 0x5
+- ENCODING_NRZ = 0x1
+- ENCODING_NRZI = 0x2
+- EPOLLERR = 0x8
+- EPOLLET = 0x80000000
+- EPOLLEXCLUSIVE = 0x10000000
+- EPOLLHUP = 0x10
+- EPOLLIN = 0x1
+- EPOLLMSG = 0x400
+- EPOLLONESHOT = 0x40000000
+- EPOLLOUT = 0x4
+- EPOLLPRI = 0x2
+- EPOLLRDBAND = 0x80
+- EPOLLRDHUP = 0x2000
+- EPOLLRDNORM = 0x40
+- EPOLLWAKEUP = 0x20000000
+- EPOLLWRBAND = 0x200
+- EPOLLWRNORM = 0x100
+- EPOLL_CLOEXEC = 0x80000
+- EPOLL_CTL_ADD = 0x1
+- EPOLL_CTL_DEL = 0x2
+- EPOLL_CTL_MOD = 0x3
+- ETH_P_1588 = 0x88f7
+- ETH_P_8021AD = 0x88a8
+- ETH_P_8021AH = 0x88e7
+- ETH_P_8021Q = 0x8100
+- ETH_P_80221 = 0x8917
+- ETH_P_802_2 = 0x4
+- ETH_P_802_3 = 0x1
+- ETH_P_802_3_MIN = 0x600
+- ETH_P_802_EX1 = 0x88b5
+- ETH_P_AARP = 0x80f3
+- ETH_P_AF_IUCV = 0xfbfb
+- ETH_P_ALL = 0x3
+- ETH_P_AOE = 0x88a2
+- ETH_P_ARCNET = 0x1a
+- ETH_P_ARP = 0x806
+- ETH_P_ATALK = 0x809b
+- ETH_P_ATMFATE = 0x8884
+- ETH_P_ATMMPOA = 0x884c
+- ETH_P_AX25 = 0x2
+- ETH_P_BATMAN = 0x4305
+- ETH_P_BPQ = 0x8ff
+- ETH_P_CAIF = 0xf7
+- ETH_P_CAN = 0xc
+- ETH_P_CANFD = 0xd
+- ETH_P_CONTROL = 0x16
+- ETH_P_CUST = 0x6006
+- ETH_P_DDCMP = 0x6
+- ETH_P_DEC = 0x6000
+- ETH_P_DIAG = 0x6005
+- ETH_P_DNA_DL = 0x6001
+- ETH_P_DNA_RC = 0x6002
+- ETH_P_DNA_RT = 0x6003
+- ETH_P_DSA = 0x1b
+- ETH_P_ECONET = 0x18
+- ETH_P_EDSA = 0xdada
+- ETH_P_FCOE = 0x8906
+- ETH_P_FIP = 0x8914
+- ETH_P_HDLC = 0x19
+- ETH_P_HSR = 0x892f
+- ETH_P_IEEE802154 = 0xf6
+- ETH_P_IEEEPUP = 0xa00
+- ETH_P_IEEEPUPAT = 0xa01
+- ETH_P_IP = 0x800
+- ETH_P_IPV6 = 0x86dd
+- ETH_P_IPX = 0x8137
+- ETH_P_IRDA = 0x17
+- ETH_P_LAT = 0x6004
+- ETH_P_LINK_CTL = 0x886c
+- ETH_P_LOCALTALK = 0x9
+- ETH_P_LOOP = 0x60
+- ETH_P_LOOPBACK = 0x9000
+- ETH_P_MACSEC = 0x88e5
+- ETH_P_MOBITEX = 0x15
+- ETH_P_MPLS_MC = 0x8848
+- ETH_P_MPLS_UC = 0x8847
+- ETH_P_MVRP = 0x88f5
+- ETH_P_NCSI = 0x88f8
+- ETH_P_PAE = 0x888e
+- ETH_P_PAUSE = 0x8808
+- ETH_P_PHONET = 0xf5
+- ETH_P_PPPTALK = 0x10
+- ETH_P_PPP_DISC = 0x8863
+- ETH_P_PPP_MP = 0x8
+- ETH_P_PPP_SES = 0x8864
+- ETH_P_PRP = 0x88fb
+- ETH_P_PUP = 0x200
+- ETH_P_PUPAT = 0x201
+- ETH_P_QINQ1 = 0x9100
+- ETH_P_QINQ2 = 0x9200
+- ETH_P_QINQ3 = 0x9300
+- ETH_P_RARP = 0x8035
+- ETH_P_SCA = 0x6007
+- ETH_P_SLOW = 0x8809
+- ETH_P_SNAP = 0x5
+- ETH_P_TDLS = 0x890d
+- ETH_P_TEB = 0x6558
+- ETH_P_TIPC = 0x88ca
+- ETH_P_TRAILER = 0x1c
+- ETH_P_TR_802_2 = 0x11
+- ETH_P_TSN = 0x22f0
+- ETH_P_WAN_PPP = 0x7
+- ETH_P_WCCP = 0x883e
+- ETH_P_X25 = 0x805
+- ETH_P_XDSA = 0xf8
+- EXTA = 0xe
+- EXTB = 0xf
+- EXTPROC = 0x10000000
+- FALLOC_FL_COLLAPSE_RANGE = 0x8
+- FALLOC_FL_INSERT_RANGE = 0x20
+- FALLOC_FL_KEEP_SIZE = 0x1
+- FALLOC_FL_NO_HIDE_STALE = 0x4
+- FALLOC_FL_PUNCH_HOLE = 0x2
+- FALLOC_FL_UNSHARE_RANGE = 0x40
+- FALLOC_FL_ZERO_RANGE = 0x10
+- FD_CLOEXEC = 0x1
+- FD_SETSIZE = 0x400
+- FF0 = 0x0
+- FF1 = 0x4000
+- FFDLY = 0x4000
+- FLUSHO = 0x800000
+- FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
+- FS_ENCRYPTION_MODE_AES_256_CTS = 0x4
+- FS_ENCRYPTION_MODE_AES_256_GCM = 0x2
+- FS_ENCRYPTION_MODE_AES_256_XTS = 0x1
+- FS_ENCRYPTION_MODE_INVALID = 0x0
+- FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615
+- FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614
+- FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613
+- FS_KEY_DESCRIPTOR_SIZE = 0x8
+- FS_KEY_DESC_PREFIX = "fscrypt:"
+- FS_KEY_DESC_PREFIX_SIZE = 0x8
+- FS_MAX_KEY_SIZE = 0x40
+- FS_POLICY_FLAGS_PAD_16 = 0x2
+- FS_POLICY_FLAGS_PAD_32 = 0x3
+- FS_POLICY_FLAGS_PAD_4 = 0x0
+- FS_POLICY_FLAGS_PAD_8 = 0x1
+- FS_POLICY_FLAGS_PAD_MASK = 0x3
+- FS_POLICY_FLAGS_VALID = 0x3
+- F_DUPFD = 0x0
+- F_DUPFD_CLOEXEC = 0x406
+- F_EXLCK = 0x4
+- F_GETFD = 0x1
+- F_GETFL = 0x3
+- F_GETLEASE = 0x401
+- F_GETLK = 0x5
+- F_GETLK64 = 0xc
+- F_GETOWN = 0x9
+- F_GETOWN_EX = 0x10
+- F_GETPIPE_SZ = 0x408
+- F_GETSIG = 0xb
+- F_LOCK = 0x1
+- F_NOTIFY = 0x402
+- F_OFD_GETLK = 0x24
+- F_OFD_SETLK = 0x25
+- F_OFD_SETLKW = 0x26
+- F_OK = 0x0
+- F_RDLCK = 0x0
+- F_SETFD = 0x2
+- F_SETFL = 0x4
+- F_SETLEASE = 0x400
+- F_SETLK = 0x6
+- F_SETLK64 = 0xd
+- F_SETLKW = 0x7
+- F_SETLKW64 = 0xe
+- F_SETOWN = 0x8
+- F_SETOWN_EX = 0xf
+- F_SETPIPE_SZ = 0x407
+- F_SETSIG = 0xa
+- F_SHLCK = 0x8
+- F_TEST = 0x3
+- F_TLOCK = 0x2
+- F_ULOCK = 0x0
+- F_UNLCK = 0x2
+- F_WRLCK = 0x1
+- GENL_ADMIN_PERM = 0x1
+- GENL_CMD_CAP_DO = 0x2
+- GENL_CMD_CAP_DUMP = 0x4
+- GENL_CMD_CAP_HASPOL = 0x8
+- GENL_HDRLEN = 0x4
+- GENL_ID_CTRL = 0x10
+- GENL_ID_PMCRAID = 0x12
+- GENL_ID_VFS_DQUOT = 0x11
+- GENL_MAX_ID = 0x3ff
+- GENL_MIN_ID = 0x10
+- GENL_NAMSIZ = 0x10
+- GENL_START_ALLOC = 0x13
+- GENL_UNS_ADMIN_PERM = 0x10
+- GRND_NONBLOCK = 0x1
+- GRND_RANDOM = 0x2
+- HUPCL = 0x4000
+- IBSHIFT = 0x10
+- ICANON = 0x100
+- ICMPV6_FILTER = 0x1
+- ICRNL = 0x100
+- IEXTEN = 0x400
+- IFA_F_DADFAILED = 0x8
+- IFA_F_DEPRECATED = 0x20
+- IFA_F_HOMEADDRESS = 0x10
+- IFA_F_MANAGETEMPADDR = 0x100
+- IFA_F_MCAUTOJOIN = 0x400
+- IFA_F_NODAD = 0x2
+- IFA_F_NOPREFIXROUTE = 0x200
+- IFA_F_OPTIMISTIC = 0x4
+- IFA_F_PERMANENT = 0x80
+- IFA_F_SECONDARY = 0x1
+- IFA_F_STABLE_PRIVACY = 0x800
+- IFA_F_TEMPORARY = 0x1
+- IFA_F_TENTATIVE = 0x40
+- IFA_MAX = 0x8
+- IFF_ALLMULTI = 0x200
+- IFF_ATTACH_QUEUE = 0x200
+- IFF_AUTOMEDIA = 0x4000
+- IFF_BROADCAST = 0x2
+- IFF_DEBUG = 0x4
+- IFF_DETACH_QUEUE = 0x400
+- IFF_DORMANT = 0x20000
+- IFF_DYNAMIC = 0x8000
+- IFF_ECHO = 0x40000
+- IFF_LOOPBACK = 0x8
+- IFF_LOWER_UP = 0x10000
+- IFF_MASTER = 0x400
+- IFF_MULTICAST = 0x1000
+- IFF_MULTI_QUEUE = 0x100
+- IFF_NOARP = 0x80
+- IFF_NOFILTER = 0x1000
+- IFF_NOTRAILERS = 0x20
+- IFF_NO_PI = 0x1000
+- IFF_ONE_QUEUE = 0x2000
+- IFF_PERSIST = 0x800
+- IFF_POINTOPOINT = 0x10
+- IFF_PORTSEL = 0x2000
+- IFF_PROMISC = 0x100
+- IFF_RUNNING = 0x40
+- IFF_SLAVE = 0x800
+- IFF_TAP = 0x2
+- IFF_TUN = 0x1
+- IFF_TUN_EXCL = 0x8000
+- IFF_UP = 0x1
+- IFF_VNET_HDR = 0x4000
+- IFF_VOLATILE = 0x70c5a
+- IFNAMSIZ = 0x10
+- IGNBRK = 0x1
+- IGNCR = 0x80
+- IGNPAR = 0x4
+- IMAXBEL = 0x2000
+- INLCR = 0x40
+- INPCK = 0x10
+- IN_ACCESS = 0x1
+- IN_ALL_EVENTS = 0xfff
+- IN_ATTRIB = 0x4
+- IN_CLASSA_HOST = 0xffffff
+- IN_CLASSA_MAX = 0x80
+- IN_CLASSA_NET = 0xff000000
+- IN_CLASSA_NSHIFT = 0x18
+- IN_CLASSB_HOST = 0xffff
+- IN_CLASSB_MAX = 0x10000
+- IN_CLASSB_NET = 0xffff0000
+- IN_CLASSB_NSHIFT = 0x10
+- IN_CLASSC_HOST = 0xff
+- IN_CLASSC_NET = 0xffffff00
+- IN_CLASSC_NSHIFT = 0x8
+- IN_CLOEXEC = 0x80000
+- IN_CLOSE = 0x18
+- IN_CLOSE_NOWRITE = 0x10
+- IN_CLOSE_WRITE = 0x8
+- IN_CREATE = 0x100
+- IN_DELETE = 0x200
+- IN_DELETE_SELF = 0x400
+- IN_DONT_FOLLOW = 0x2000000
+- IN_EXCL_UNLINK = 0x4000000
+- IN_IGNORED = 0x8000
+- IN_ISDIR = 0x40000000
+- IN_LOOPBACKNET = 0x7f
+- IN_MASK_ADD = 0x20000000
+- IN_MODIFY = 0x2
+- IN_MOVE = 0xc0
+- IN_MOVED_FROM = 0x40
+- IN_MOVED_TO = 0x80
+- IN_MOVE_SELF = 0x800
+- IN_NONBLOCK = 0x800
+- IN_ONESHOT = 0x80000000
+- IN_ONLYDIR = 0x1000000
+- IN_OPEN = 0x20
+- IN_Q_OVERFLOW = 0x4000
+- IN_UNMOUNT = 0x2000
+- IPPROTO_AH = 0x33
+- IPPROTO_BEETPH = 0x5e
+- IPPROTO_COMP = 0x6c
+- IPPROTO_DCCP = 0x21
+- IPPROTO_DSTOPTS = 0x3c
+- IPPROTO_EGP = 0x8
+- IPPROTO_ENCAP = 0x62
+- IPPROTO_ESP = 0x32
+- IPPROTO_FRAGMENT = 0x2c
+- IPPROTO_GRE = 0x2f
+- IPPROTO_HOPOPTS = 0x0
+- IPPROTO_ICMP = 0x1
+- IPPROTO_ICMPV6 = 0x3a
+- IPPROTO_IDP = 0x16
+- IPPROTO_IGMP = 0x2
+- IPPROTO_IP = 0x0
+- IPPROTO_IPIP = 0x4
+- IPPROTO_IPV6 = 0x29
+- IPPROTO_MH = 0x87
+- IPPROTO_MPLS = 0x89
+- IPPROTO_MTP = 0x5c
+- IPPROTO_NONE = 0x3b
+- IPPROTO_PIM = 0x67
+- IPPROTO_PUP = 0xc
+- IPPROTO_RAW = 0xff
+- IPPROTO_ROUTING = 0x2b
+- IPPROTO_RSVP = 0x2e
+- IPPROTO_SCTP = 0x84
+- IPPROTO_TCP = 0x6
+- IPPROTO_TP = 0x1d
+- IPPROTO_UDP = 0x11
+- IPPROTO_UDPLITE = 0x88
+- IPV6_2292DSTOPTS = 0x4
+- IPV6_2292HOPLIMIT = 0x8
+- IPV6_2292HOPOPTS = 0x3
+- IPV6_2292PKTINFO = 0x2
+- IPV6_2292PKTOPTIONS = 0x6
+- IPV6_2292RTHDR = 0x5
+- IPV6_ADDRFORM = 0x1
+- IPV6_ADD_MEMBERSHIP = 0x14
+- IPV6_AUTHHDR = 0xa
+- IPV6_CHECKSUM = 0x7
+- IPV6_DONTFRAG = 0x3e
+- IPV6_DROP_MEMBERSHIP = 0x15
+- IPV6_DSTOPTS = 0x3b
+- IPV6_HDRINCL = 0x24
+- IPV6_HOPLIMIT = 0x34
+- IPV6_HOPOPTS = 0x36
+- IPV6_IPSEC_POLICY = 0x22
+- IPV6_JOIN_ANYCAST = 0x1b
+- IPV6_JOIN_GROUP = 0x14
+- IPV6_LEAVE_ANYCAST = 0x1c
+- IPV6_LEAVE_GROUP = 0x15
+- IPV6_MTU = 0x18
+- IPV6_MTU_DISCOVER = 0x17
+- IPV6_MULTICAST_HOPS = 0x12
+- IPV6_MULTICAST_IF = 0x11
+- IPV6_MULTICAST_LOOP = 0x13
+- IPV6_NEXTHOP = 0x9
+- IPV6_PATHMTU = 0x3d
+- IPV6_PKTINFO = 0x32
+- IPV6_PMTUDISC_DO = 0x2
+- IPV6_PMTUDISC_DONT = 0x0
+- IPV6_PMTUDISC_INTERFACE = 0x4
+- IPV6_PMTUDISC_OMIT = 0x5
+- IPV6_PMTUDISC_PROBE = 0x3
+- IPV6_PMTUDISC_WANT = 0x1
+- IPV6_RECVDSTOPTS = 0x3a
+- IPV6_RECVERR = 0x19
+- IPV6_RECVHOPLIMIT = 0x33
+- IPV6_RECVHOPOPTS = 0x35
+- IPV6_RECVPATHMTU = 0x3c
+- IPV6_RECVPKTINFO = 0x31
+- IPV6_RECVRTHDR = 0x38
+- IPV6_RECVTCLASS = 0x42
+- IPV6_ROUTER_ALERT = 0x16
+- IPV6_RTHDR = 0x39
+- IPV6_RTHDRDSTOPTS = 0x37
+- IPV6_RTHDR_LOOSE = 0x0
+- IPV6_RTHDR_STRICT = 0x1
+- IPV6_RTHDR_TYPE_0 = 0x0
+- IPV6_RXDSTOPTS = 0x3b
+- IPV6_RXHOPOPTS = 0x36
+- IPV6_TCLASS = 0x43
+- IPV6_UNICAST_HOPS = 0x10
+- IPV6_V6ONLY = 0x1a
+- IPV6_XFRM_POLICY = 0x23
+- IP_ADD_MEMBERSHIP = 0x23
+- IP_ADD_SOURCE_MEMBERSHIP = 0x27
+- IP_BIND_ADDRESS_NO_PORT = 0x18
+- IP_BLOCK_SOURCE = 0x26
+- IP_CHECKSUM = 0x17
+- IP_DEFAULT_MULTICAST_LOOP = 0x1
+- IP_DEFAULT_MULTICAST_TTL = 0x1
+- IP_DF = 0x4000
+- IP_DROP_MEMBERSHIP = 0x24
+- IP_DROP_SOURCE_MEMBERSHIP = 0x28
+- IP_FREEBIND = 0xf
+- IP_HDRINCL = 0x3
+- IP_IPSEC_POLICY = 0x10
+- IP_MAXPACKET = 0xffff
+- IP_MAX_MEMBERSHIPS = 0x14
+- IP_MF = 0x2000
+- IP_MINTTL = 0x15
+- IP_MSFILTER = 0x29
+- IP_MSS = 0x240
+- IP_MTU = 0xe
+- IP_MTU_DISCOVER = 0xa
+- IP_MULTICAST_ALL = 0x31
+- IP_MULTICAST_IF = 0x20
+- IP_MULTICAST_LOOP = 0x22
+- IP_MULTICAST_TTL = 0x21
+- IP_NODEFRAG = 0x16
+- IP_OFFMASK = 0x1fff
+- IP_OPTIONS = 0x4
+- IP_ORIGDSTADDR = 0x14
+- IP_PASSSEC = 0x12
+- IP_PKTINFO = 0x8
+- IP_PKTOPTIONS = 0x9
+- IP_PMTUDISC = 0xa
+- IP_PMTUDISC_DO = 0x2
+- IP_PMTUDISC_DONT = 0x0
+- IP_PMTUDISC_INTERFACE = 0x4
+- IP_PMTUDISC_OMIT = 0x5
+- IP_PMTUDISC_PROBE = 0x3
+- IP_PMTUDISC_WANT = 0x1
+- IP_RECVERR = 0xb
+- IP_RECVOPTS = 0x6
+- IP_RECVORIGDSTADDR = 0x14
+- IP_RECVRETOPTS = 0x7
+- IP_RECVTOS = 0xd
+- IP_RECVTTL = 0xc
+- IP_RETOPTS = 0x7
+- IP_RF = 0x8000
+- IP_ROUTER_ALERT = 0x5
+- IP_TOS = 0x1
+- IP_TRANSPARENT = 0x13
+- IP_TTL = 0x2
+- IP_UNBLOCK_SOURCE = 0x25
+- IP_UNICAST_IF = 0x32
+- IP_XFRM_POLICY = 0x11
+- ISIG = 0x80
+- ISTRIP = 0x20
+- IUCLC = 0x1000
+- IUTF8 = 0x4000
+- IXANY = 0x800
+- IXOFF = 0x400
+- IXON = 0x200
+- KEYCTL_ASSUME_AUTHORITY = 0x10
+- KEYCTL_CHOWN = 0x4
+- KEYCTL_CLEAR = 0x7
+- KEYCTL_DESCRIBE = 0x6
+- KEYCTL_DH_COMPUTE = 0x17
+- KEYCTL_GET_KEYRING_ID = 0x0
+- KEYCTL_GET_PERSISTENT = 0x16
+- KEYCTL_GET_SECURITY = 0x11
+- KEYCTL_INSTANTIATE = 0xc
+- KEYCTL_INSTANTIATE_IOV = 0x14
+- KEYCTL_INVALIDATE = 0x15
+- KEYCTL_JOIN_SESSION_KEYRING = 0x1
+- KEYCTL_LINK = 0x8
+- KEYCTL_NEGATE = 0xd
+- KEYCTL_READ = 0xb
+- KEYCTL_REJECT = 0x13
+- KEYCTL_REVOKE = 0x3
+- KEYCTL_SEARCH = 0xa
+- KEYCTL_SESSION_TO_PARENT = 0x12
+- KEYCTL_SETPERM = 0x5
+- KEYCTL_SET_REQKEY_KEYRING = 0xe
+- KEYCTL_SET_TIMEOUT = 0xf
+- KEYCTL_UNLINK = 0x9
+- KEYCTL_UPDATE = 0x2
+- KEY_REQKEY_DEFL_DEFAULT = 0x0
+- KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6
+- KEY_REQKEY_DEFL_NO_CHANGE = -0x1
+- KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2
+- KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7
+- KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3
+- KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1
+- KEY_REQKEY_DEFL_USER_KEYRING = 0x4
+- KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
+- KEY_SPEC_GROUP_KEYRING = -0x6
+- KEY_SPEC_PROCESS_KEYRING = -0x2
+- KEY_SPEC_REQKEY_AUTH_KEY = -0x7
+- KEY_SPEC_REQUESTOR_KEYRING = -0x8
+- KEY_SPEC_SESSION_KEYRING = -0x3
+- KEY_SPEC_THREAD_KEYRING = -0x1
+- KEY_SPEC_USER_KEYRING = -0x4
+- KEY_SPEC_USER_SESSION_KEYRING = -0x5
+- LINUX_REBOOT_CMD_CAD_OFF = 0x0
+- LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
+- LINUX_REBOOT_CMD_HALT = 0xcdef0123
+- LINUX_REBOOT_CMD_KEXEC = 0x45584543
+- LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
+- LINUX_REBOOT_CMD_RESTART = 0x1234567
+- LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
+- LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
+- LINUX_REBOOT_MAGIC1 = 0xfee1dead
+- LINUX_REBOOT_MAGIC2 = 0x28121969
+- LOCK_EX = 0x2
+- LOCK_NB = 0x4
+- LOCK_SH = 0x1
+- LOCK_UN = 0x8
+- MADV_DODUMP = 0x11
+- MADV_DOFORK = 0xb
+- MADV_DONTDUMP = 0x10
+- MADV_DONTFORK = 0xa
+- MADV_DONTNEED = 0x4
+- MADV_FREE = 0x8
+- MADV_HUGEPAGE = 0xe
+- MADV_HWPOISON = 0x64
+- MADV_MERGEABLE = 0xc
+- MADV_NOHUGEPAGE = 0xf
+- MADV_NORMAL = 0x0
+- MADV_RANDOM = 0x1
+- MADV_REMOVE = 0x9
+- MADV_SEQUENTIAL = 0x2
+- MADV_UNMERGEABLE = 0xd
+- MADV_WILLNEED = 0x3
+- MAP_ANON = 0x20
+- MAP_ANONYMOUS = 0x20
+- MAP_DENYWRITE = 0x800
+- MAP_EXECUTABLE = 0x1000
+- MAP_FILE = 0x0
+- MAP_FIXED = 0x10
+- MAP_GROWSDOWN = 0x100
+- MAP_HUGETLB = 0x40000
+- MAP_HUGE_MASK = 0x3f
+- MAP_HUGE_SHIFT = 0x1a
+- MAP_LOCKED = 0x80
+- MAP_NONBLOCK = 0x10000
+- MAP_NORESERVE = 0x40
+- MAP_POPULATE = 0x8000
+- MAP_PRIVATE = 0x2
+- MAP_SHARED = 0x1
+- MAP_STACK = 0x20000
+- MAP_TYPE = 0xf
+- MCL_CURRENT = 0x2000
+- MCL_FUTURE = 0x4000
+- MCL_ONFAULT = 0x8000
+- MNT_DETACH = 0x2
+- MNT_EXPIRE = 0x4
+- MNT_FORCE = 0x1
+- MSG_BATCH = 0x40000
+- MSG_CMSG_CLOEXEC = 0x40000000
+- MSG_CONFIRM = 0x800
+- MSG_CTRUNC = 0x8
+- MSG_DONTROUTE = 0x4
+- MSG_DONTWAIT = 0x40
+- MSG_EOR = 0x80
+- MSG_ERRQUEUE = 0x2000
+- MSG_FASTOPEN = 0x20000000
+- MSG_FIN = 0x200
+- MSG_MORE = 0x8000
+- MSG_NOSIGNAL = 0x4000
+- MSG_OOB = 0x1
+- MSG_PEEK = 0x2
+- MSG_PROXY = 0x10
+- MSG_RST = 0x1000
+- MSG_SYN = 0x400
+- MSG_TRUNC = 0x20
+- MSG_TRYHARD = 0x4
+- MSG_WAITALL = 0x100
+- MSG_WAITFORONE = 0x10000
+- MS_ACTIVE = 0x40000000
+- MS_ASYNC = 0x1
+- MS_BIND = 0x1000
+- MS_BORN = 0x20000000
+- MS_DIRSYNC = 0x80
+- MS_INVALIDATE = 0x2
+- MS_I_VERSION = 0x800000
+- MS_KERNMOUNT = 0x400000
+- MS_LAZYTIME = 0x2000000
+- MS_MANDLOCK = 0x40
+- MS_MGC_MSK = 0xffff0000
+- MS_MGC_VAL = 0xc0ed0000
+- MS_MOVE = 0x2000
+- MS_NOATIME = 0x400
+- MS_NODEV = 0x4
+- MS_NODIRATIME = 0x800
+- MS_NOEXEC = 0x8
+- MS_NOREMOTELOCK = 0x8000000
+- MS_NOSEC = 0x10000000
+- MS_NOSUID = 0x2
+- MS_NOUSER = -0x80000000
+- MS_POSIXACL = 0x10000
+- MS_PRIVATE = 0x40000
+- MS_RDONLY = 0x1
+- MS_REC = 0x4000
+- MS_RELATIME = 0x200000
+- MS_REMOUNT = 0x20
+- MS_RMT_MASK = 0x2800051
+- MS_SHARED = 0x100000
+- MS_SILENT = 0x8000
+- MS_SLAVE = 0x80000
+- MS_STRICTATIME = 0x1000000
+- MS_SYNC = 0x4
+- MS_SYNCHRONOUS = 0x10
+- MS_UNBINDABLE = 0x20000
+- MS_VERBOSE = 0x8000
+- NAME_MAX = 0xff
+- NETLINK_ADD_MEMBERSHIP = 0x1
+- NETLINK_AUDIT = 0x9
+- NETLINK_BROADCAST_ERROR = 0x4
+- NETLINK_CAP_ACK = 0xa
+- NETLINK_CONNECTOR = 0xb
+- NETLINK_CRYPTO = 0x15
+- NETLINK_DNRTMSG = 0xe
+- NETLINK_DROP_MEMBERSHIP = 0x2
+- NETLINK_ECRYPTFS = 0x13
+- NETLINK_FIB_LOOKUP = 0xa
+- NETLINK_FIREWALL = 0x3
+- NETLINK_GENERIC = 0x10
+- NETLINK_INET_DIAG = 0x4
+- NETLINK_IP6_FW = 0xd
+- NETLINK_ISCSI = 0x8
+- NETLINK_KOBJECT_UEVENT = 0xf
+- NETLINK_LISTEN_ALL_NSID = 0x8
+- NETLINK_LIST_MEMBERSHIPS = 0x9
+- NETLINK_NETFILTER = 0xc
+- NETLINK_NFLOG = 0x5
+- NETLINK_NO_ENOBUFS = 0x5
+- NETLINK_PKTINFO = 0x3
+- NETLINK_RDMA = 0x14
+- NETLINK_ROUTE = 0x0
+- NETLINK_RX_RING = 0x6
+- NETLINK_SCSITRANSPORT = 0x12
+- NETLINK_SELINUX = 0x7
+- NETLINK_SOCK_DIAG = 0x4
+- NETLINK_TX_RING = 0x7
+- NETLINK_UNUSED = 0x1
+- NETLINK_USERSOCK = 0x2
+- NETLINK_XFRM = 0x6
+- NL0 = 0x0
+- NL1 = 0x100
+- NL2 = 0x200
+- NL3 = 0x300
+- NLA_ALIGNTO = 0x4
+- NLA_F_NESTED = 0x8000
+- NLA_F_NET_BYTEORDER = 0x4000
+- NLA_HDRLEN = 0x4
+- NLDLY = 0x300
+- NLMSG_ALIGNTO = 0x4
+- NLMSG_DONE = 0x3
+- NLMSG_ERROR = 0x2
+- NLMSG_HDRLEN = 0x10
+- NLMSG_MIN_TYPE = 0x10
+- NLMSG_NOOP = 0x1
+- NLMSG_OVERRUN = 0x4
+- NLM_F_ACK = 0x4
+- NLM_F_APPEND = 0x800
+- NLM_F_ATOMIC = 0x400
+- NLM_F_CREATE = 0x400
+- NLM_F_DUMP = 0x300
+- NLM_F_DUMP_FILTERED = 0x20
+- NLM_F_DUMP_INTR = 0x10
+- NLM_F_ECHO = 0x8
+- NLM_F_EXCL = 0x200
+- NLM_F_MATCH = 0x200
+- NLM_F_MULTI = 0x2
+- NLM_F_REPLACE = 0x100
+- NLM_F_REQUEST = 0x1
+- NLM_F_ROOT = 0x100
+- NOFLSH = 0x80000000
+- OCRNL = 0x8
+- OFDEL = 0x80
+- OFILL = 0x40
+- OLCUC = 0x4
+- ONLCR = 0x2
+- ONLRET = 0x20
+- ONOCR = 0x10
+- OPOST = 0x1
+- O_ACCMODE = 0x3
+- O_APPEND = 0x400
+- O_ASYNC = 0x2000
+- O_CLOEXEC = 0x80000
+- O_CREAT = 0x40
+- O_DIRECT = 0x20000
+- O_DIRECTORY = 0x4000
+- O_DSYNC = 0x1000
+- O_EXCL = 0x80
+- O_FSYNC = 0x101000
+- O_LARGEFILE = 0x0
+- O_NDELAY = 0x800
+- O_NOATIME = 0x40000
+- O_NOCTTY = 0x100
+- O_NOFOLLOW = 0x8000
+- O_NONBLOCK = 0x800
+- O_PATH = 0x200000
+- O_RDONLY = 0x0
+- O_RDWR = 0x2
+- O_RSYNC = 0x101000
+- O_SYNC = 0x101000
+- O_TMPFILE = 0x404000
+- O_TRUNC = 0x200
+- O_WRONLY = 0x1
+- PACKET_ADD_MEMBERSHIP = 0x1
+- PACKET_AUXDATA = 0x8
+- PACKET_BROADCAST = 0x1
+- PACKET_COPY_THRESH = 0x7
+- PACKET_DROP_MEMBERSHIP = 0x2
+- PACKET_FANOUT = 0x12
+- PACKET_FANOUT_CBPF = 0x6
+- PACKET_FANOUT_CPU = 0x2
+- PACKET_FANOUT_DATA = 0x16
+- PACKET_FANOUT_EBPF = 0x7
+- PACKET_FANOUT_FLAG_DEFRAG = 0x8000
+- PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
+- PACKET_FANOUT_HASH = 0x0
+- PACKET_FANOUT_LB = 0x1
+- PACKET_FANOUT_QM = 0x5
+- PACKET_FANOUT_RND = 0x4
+- PACKET_FANOUT_ROLLOVER = 0x3
+- PACKET_FASTROUTE = 0x6
+- PACKET_HDRLEN = 0xb
+- PACKET_HOST = 0x0
+- PACKET_KERNEL = 0x7
+- PACKET_LOOPBACK = 0x5
+- PACKET_LOSS = 0xe
+- PACKET_MR_ALLMULTI = 0x2
+- PACKET_MR_MULTICAST = 0x0
+- PACKET_MR_PROMISC = 0x1
+- PACKET_MR_UNICAST = 0x3
+- PACKET_MULTICAST = 0x2
+- PACKET_ORIGDEV = 0x9
+- PACKET_OTHERHOST = 0x3
+- PACKET_OUTGOING = 0x4
+- PACKET_QDISC_BYPASS = 0x14
+- PACKET_RECV_OUTPUT = 0x3
+- PACKET_RESERVE = 0xc
+- PACKET_ROLLOVER_STATS = 0x15
+- PACKET_RX_RING = 0x5
+- PACKET_STATISTICS = 0x6
+- PACKET_TIMESTAMP = 0x11
+- PACKET_TX_HAS_OFF = 0x13
+- PACKET_TX_RING = 0xd
+- PACKET_TX_TIMESTAMP = 0x10
+- PACKET_USER = 0x6
+- PACKET_VERSION = 0xa
+- PACKET_VNET_HDR = 0xf
+- PARENB = 0x1000
+- PARITY_CRC16_PR0 = 0x2
+- PARITY_CRC16_PR0_CCITT = 0x4
+- PARITY_CRC16_PR1 = 0x3
+- PARITY_CRC16_PR1_CCITT = 0x5
+- PARITY_CRC32_PR0_CCITT = 0x6
+- PARITY_CRC32_PR1_CCITT = 0x7
+- PARITY_DEFAULT = 0x0
+- PARITY_NONE = 0x1
+- PARMRK = 0x8
+- PARODD = 0x2000
+- PENDIN = 0x20000000
+- PERF_EVENT_IOC_DISABLE = 0x20002401
+- PERF_EVENT_IOC_ENABLE = 0x20002400
+- PERF_EVENT_IOC_ID = 0x40082407
+- PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409
+- PERF_EVENT_IOC_PERIOD = 0x80082404
+- PERF_EVENT_IOC_REFRESH = 0x20002402
+- PERF_EVENT_IOC_RESET = 0x20002403
+- PERF_EVENT_IOC_SET_BPF = 0x80042408
+- PERF_EVENT_IOC_SET_FILTER = 0x80082406
+- PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
+- PRIO_PGRP = 0x1
+- PRIO_PROCESS = 0x0
+- PRIO_USER = 0x2
+- PROT_EXEC = 0x4
+- PROT_GROWSDOWN = 0x1000000
+- PROT_GROWSUP = 0x2000000
+- PROT_NONE = 0x0
+- PROT_READ = 0x1
+- PROT_SAO = 0x10
+- PROT_WRITE = 0x2
+- PR_CAPBSET_DROP = 0x18
+- PR_CAPBSET_READ = 0x17
+- PR_CAP_AMBIENT = 0x2f
+- PR_CAP_AMBIENT_CLEAR_ALL = 0x4
+- PR_CAP_AMBIENT_IS_SET = 0x1
+- PR_CAP_AMBIENT_LOWER = 0x3
+- PR_CAP_AMBIENT_RAISE = 0x2
+- PR_ENDIAN_BIG = 0x0
+- PR_ENDIAN_LITTLE = 0x1
+- PR_ENDIAN_PPC_LITTLE = 0x2
+- PR_FPEMU_NOPRINT = 0x1
+- PR_FPEMU_SIGFPE = 0x2
+- PR_FP_EXC_ASYNC = 0x2
+- PR_FP_EXC_DISABLED = 0x0
+- PR_FP_EXC_DIV = 0x10000
+- PR_FP_EXC_INV = 0x100000
+- PR_FP_EXC_NONRECOV = 0x1
+- PR_FP_EXC_OVF = 0x20000
+- PR_FP_EXC_PRECISE = 0x3
+- PR_FP_EXC_RES = 0x80000
+- PR_FP_EXC_SW_ENABLE = 0x80
+- PR_FP_EXC_UND = 0x40000
+- PR_FP_MODE_FR = 0x1
+- PR_FP_MODE_FRE = 0x2
+- PR_GET_CHILD_SUBREAPER = 0x25
+- PR_GET_DUMPABLE = 0x3
+- PR_GET_ENDIAN = 0x13
+- PR_GET_FPEMU = 0x9
+- PR_GET_FPEXC = 0xb
+- PR_GET_FP_MODE = 0x2e
+- PR_GET_KEEPCAPS = 0x7
+- PR_GET_NAME = 0x10
+- PR_GET_NO_NEW_PRIVS = 0x27
+- PR_GET_PDEATHSIG = 0x2
+- PR_GET_SECCOMP = 0x15
+- PR_GET_SECUREBITS = 0x1b
+- PR_GET_THP_DISABLE = 0x2a
+- PR_GET_TID_ADDRESS = 0x28
+- PR_GET_TIMERSLACK = 0x1e
+- PR_GET_TIMING = 0xd
+- PR_GET_TSC = 0x19
+- PR_GET_UNALIGN = 0x5
+- PR_MCE_KILL = 0x21
+- PR_MCE_KILL_CLEAR = 0x0
+- PR_MCE_KILL_DEFAULT = 0x2
+- PR_MCE_KILL_EARLY = 0x1
+- PR_MCE_KILL_GET = 0x22
+- PR_MCE_KILL_LATE = 0x0
+- PR_MCE_KILL_SET = 0x1
+- PR_MPX_DISABLE_MANAGEMENT = 0x2c
+- PR_MPX_ENABLE_MANAGEMENT = 0x2b
+- PR_SET_CHILD_SUBREAPER = 0x24
+- PR_SET_DUMPABLE = 0x4
+- PR_SET_ENDIAN = 0x14
+- PR_SET_FPEMU = 0xa
+- PR_SET_FPEXC = 0xc
+- PR_SET_FP_MODE = 0x2d
+- PR_SET_KEEPCAPS = 0x8
+- PR_SET_MM = 0x23
+- PR_SET_MM_ARG_END = 0x9
+- PR_SET_MM_ARG_START = 0x8
+- PR_SET_MM_AUXV = 0xc
+- PR_SET_MM_BRK = 0x7
+- PR_SET_MM_END_CODE = 0x2
+- PR_SET_MM_END_DATA = 0x4
+- PR_SET_MM_ENV_END = 0xb
+- PR_SET_MM_ENV_START = 0xa
+- PR_SET_MM_EXE_FILE = 0xd
+- PR_SET_MM_MAP = 0xe
+- PR_SET_MM_MAP_SIZE = 0xf
+- PR_SET_MM_START_BRK = 0x6
+- PR_SET_MM_START_CODE = 0x1
+- PR_SET_MM_START_DATA = 0x3
+- PR_SET_MM_START_STACK = 0x5
+- PR_SET_NAME = 0xf
+- PR_SET_NO_NEW_PRIVS = 0x26
+- PR_SET_PDEATHSIG = 0x1
+- PR_SET_PTRACER = 0x59616d61
+- PR_SET_PTRACER_ANY = -0x1
+- PR_SET_SECCOMP = 0x16
+- PR_SET_SECUREBITS = 0x1c
+- PR_SET_THP_DISABLE = 0x29
+- PR_SET_TIMERSLACK = 0x1d
+- PR_SET_TIMING = 0xe
+- PR_SET_TSC = 0x1a
+- PR_SET_UNALIGN = 0x6
+- PR_TASK_PERF_EVENTS_DISABLE = 0x1f
+- PR_TASK_PERF_EVENTS_ENABLE = 0x20
+- PR_TIMING_STATISTICAL = 0x0
+- PR_TIMING_TIMESTAMP = 0x1
+- PR_TSC_ENABLE = 0x1
+- PR_TSC_SIGSEGV = 0x2
+- PR_UNALIGN_NOPRINT = 0x1
+- PR_UNALIGN_SIGBUS = 0x2
+- PTRACE_ATTACH = 0x10
+- PTRACE_CONT = 0x7
+- PTRACE_DETACH = 0x11
+- PTRACE_EVENT_CLONE = 0x3
+- PTRACE_EVENT_EXEC = 0x4
+- PTRACE_EVENT_EXIT = 0x6
+- PTRACE_EVENT_FORK = 0x1
+- PTRACE_EVENT_SECCOMP = 0x7
+- PTRACE_EVENT_STOP = 0x80
+- PTRACE_EVENT_VFORK = 0x2
+- PTRACE_EVENT_VFORK_DONE = 0x5
+- PTRACE_GETEVENTMSG = 0x4201
+- PTRACE_GETEVRREGS = 0x14
+- PTRACE_GETFPREGS = 0xe
+- PTRACE_GETREGS = 0xc
+- PTRACE_GETREGS64 = 0x16
+- PTRACE_GETREGSET = 0x4204
+- PTRACE_GETSIGINFO = 0x4202
+- PTRACE_GETSIGMASK = 0x420a
+- PTRACE_GETVRREGS = 0x12
+- PTRACE_GETVSRREGS = 0x1b
+- PTRACE_GET_DEBUGREG = 0x19
+- PTRACE_INTERRUPT = 0x4207
+- PTRACE_KILL = 0x8
+- PTRACE_LISTEN = 0x4208
+- PTRACE_O_EXITKILL = 0x100000
+- PTRACE_O_MASK = 0x3000ff
+- PTRACE_O_SUSPEND_SECCOMP = 0x200000
+- PTRACE_O_TRACECLONE = 0x8
+- PTRACE_O_TRACEEXEC = 0x10
+- PTRACE_O_TRACEEXIT = 0x40
+- PTRACE_O_TRACEFORK = 0x2
+- PTRACE_O_TRACESECCOMP = 0x80
+- PTRACE_O_TRACESYSGOOD = 0x1
+- PTRACE_O_TRACEVFORK = 0x4
+- PTRACE_O_TRACEVFORKDONE = 0x20
+- PTRACE_PEEKDATA = 0x2
+- PTRACE_PEEKSIGINFO = 0x4209
+- PTRACE_PEEKSIGINFO_SHARED = 0x1
+- PTRACE_PEEKTEXT = 0x1
+- PTRACE_PEEKUSR = 0x3
+- PTRACE_POKEDATA = 0x5
+- PTRACE_POKETEXT = 0x4
+- PTRACE_POKEUSR = 0x6
+- PTRACE_SECCOMP_GET_FILTER = 0x420c
+- PTRACE_SEIZE = 0x4206
+- PTRACE_SETEVRREGS = 0x15
+- PTRACE_SETFPREGS = 0xf
+- PTRACE_SETOPTIONS = 0x4200
+- PTRACE_SETREGS = 0xd
+- PTRACE_SETREGS64 = 0x17
+- PTRACE_SETREGSET = 0x4205
+- PTRACE_SETSIGINFO = 0x4203
+- PTRACE_SETSIGMASK = 0x420b
+- PTRACE_SETVRREGS = 0x13
+- PTRACE_SETVSRREGS = 0x1c
+- PTRACE_SET_DEBUGREG = 0x1a
+- PTRACE_SINGLEBLOCK = 0x100
+- PTRACE_SINGLESTEP = 0x9
+- PTRACE_SYSCALL = 0x18
+- PTRACE_TRACEME = 0x0
+- PT_CCR = 0x26
+- PT_CTR = 0x23
+- PT_DAR = 0x29
+- PT_DSCR = 0x2c
+- PT_DSISR = 0x2a
+- PT_FPR0 = 0x30
+- PT_FPSCR = 0x50
+- PT_LNK = 0x24
+- PT_MSR = 0x21
+- PT_NIP = 0x20
+- PT_ORIG_R3 = 0x22
+- PT_R0 = 0x0
+- PT_R1 = 0x1
+- PT_R10 = 0xa
+- PT_R11 = 0xb
+- PT_R12 = 0xc
+- PT_R13 = 0xd
+- PT_R14 = 0xe
+- PT_R15 = 0xf
+- PT_R16 = 0x10
+- PT_R17 = 0x11
+- PT_R18 = 0x12
+- PT_R19 = 0x13
+- PT_R2 = 0x2
+- PT_R20 = 0x14
+- PT_R21 = 0x15
+- PT_R22 = 0x16
+- PT_R23 = 0x17
+- PT_R24 = 0x18
+- PT_R25 = 0x19
+- PT_R26 = 0x1a
+- PT_R27 = 0x1b
+- PT_R28 = 0x1c
+- PT_R29 = 0x1d
+- PT_R3 = 0x3
+- PT_R30 = 0x1e
+- PT_R31 = 0x1f
+- PT_R4 = 0x4
+- PT_R5 = 0x5
+- PT_R6 = 0x6
+- PT_R7 = 0x7
+- PT_R8 = 0x8
+- PT_R9 = 0x9
+- PT_REGS_COUNT = 0x2c
+- PT_RESULT = 0x2b
+- PT_SOFTE = 0x27
+- PT_TRAP = 0x28
+- PT_VR0 = 0x52
+- PT_VRSAVE = 0x94
+- PT_VSCR = 0x93
+- PT_VSR0 = 0x96
+- PT_VSR31 = 0xd4
+- PT_XER = 0x25
+- RLIMIT_AS = 0x9
+- RLIMIT_CORE = 0x4
+- RLIMIT_CPU = 0x0
+- RLIMIT_DATA = 0x2
+- RLIMIT_FSIZE = 0x1
+- RLIMIT_LOCKS = 0xa
+- RLIMIT_MEMLOCK = 0x8
+- RLIMIT_MSGQUEUE = 0xc
+- RLIMIT_NICE = 0xd
+- RLIMIT_NOFILE = 0x7
+- RLIMIT_NPROC = 0x6
+- RLIMIT_RSS = 0x5
+- RLIMIT_RTPRIO = 0xe
+- RLIMIT_RTTIME = 0xf
+- RLIMIT_SIGPENDING = 0xb
+- RLIMIT_STACK = 0x3
+- RLIM_INFINITY = -0x1
+- RTAX_ADVMSS = 0x8
+- RTAX_CC_ALGO = 0x10
+- RTAX_CWND = 0x7
+- RTAX_FEATURES = 0xc
+- RTAX_FEATURE_ALLFRAG = 0x8
+- RTAX_FEATURE_ECN = 0x1
+- RTAX_FEATURE_MASK = 0xf
+- RTAX_FEATURE_SACK = 0x2
+- RTAX_FEATURE_TIMESTAMP = 0x4
+- RTAX_HOPLIMIT = 0xa
+- RTAX_INITCWND = 0xb
+- RTAX_INITRWND = 0xe
+- RTAX_LOCK = 0x1
+- RTAX_MAX = 0x10
+- RTAX_MTU = 0x2
+- RTAX_QUICKACK = 0xf
+- RTAX_REORDERING = 0x9
+- RTAX_RTO_MIN = 0xd
+- RTAX_RTT = 0x4
+- RTAX_RTTVAR = 0x5
+- RTAX_SSTHRESH = 0x6
+- RTAX_UNSPEC = 0x0
+- RTAX_WINDOW = 0x3
+- RTA_ALIGNTO = 0x4
+- RTA_MAX = 0x19
+- RTCF_DIRECTSRC = 0x4000000
+- RTCF_DOREDIRECT = 0x1000000
+- RTCF_LOG = 0x2000000
+- RTCF_MASQ = 0x400000
+- RTCF_NAT = 0x800000
+- RTCF_VALVE = 0x200000
+- RTF_ADDRCLASSMASK = 0xf8000000
+- RTF_ADDRCONF = 0x40000
+- RTF_ALLONLINK = 0x20000
+- RTF_BROADCAST = 0x10000000
+- RTF_CACHE = 0x1000000
+- RTF_DEFAULT = 0x10000
+- RTF_DYNAMIC = 0x10
+- RTF_FLOW = 0x2000000
+- RTF_GATEWAY = 0x2
+- RTF_HOST = 0x4
+- RTF_INTERFACE = 0x40000000
+- RTF_IRTT = 0x100
+- RTF_LINKRT = 0x100000
+- RTF_LOCAL = 0x80000000
+- RTF_MODIFIED = 0x20
+- RTF_MSS = 0x40
+- RTF_MTU = 0x40
+- RTF_MULTICAST = 0x20000000
+- RTF_NAT = 0x8000000
+- RTF_NOFORWARD = 0x1000
+- RTF_NONEXTHOP = 0x200000
+- RTF_NOPMTUDISC = 0x4000
+- RTF_POLICY = 0x4000000
+- RTF_REINSTATE = 0x8
+- RTF_REJECT = 0x200
+- RTF_STATIC = 0x400
+- RTF_THROW = 0x2000
+- RTF_UP = 0x1
+- RTF_WINDOW = 0x80
+- RTF_XRESOLVE = 0x800
+- RTM_BASE = 0x10
+- RTM_DELACTION = 0x31
+- RTM_DELADDR = 0x15
+- RTM_DELADDRLABEL = 0x49
+- RTM_DELLINK = 0x11
+- RTM_DELMDB = 0x55
+- RTM_DELNEIGH = 0x1d
+- RTM_DELNSID = 0x59
+- RTM_DELQDISC = 0x25
+- RTM_DELROUTE = 0x19
+- RTM_DELRULE = 0x21
+- RTM_DELTCLASS = 0x29
+- RTM_DELTFILTER = 0x2d
+- RTM_F_CLONED = 0x200
+- RTM_F_EQUALIZE = 0x400
+- RTM_F_LOOKUP_TABLE = 0x1000
+- RTM_F_NOTIFY = 0x100
+- RTM_F_PREFIX = 0x800
+- RTM_GETACTION = 0x32
+- RTM_GETADDR = 0x16
+- RTM_GETADDRLABEL = 0x4a
+- RTM_GETANYCAST = 0x3e
+- RTM_GETDCB = 0x4e
+- RTM_GETLINK = 0x12
+- RTM_GETMDB = 0x56
+- RTM_GETMULTICAST = 0x3a
+- RTM_GETNEIGH = 0x1e
+- RTM_GETNEIGHTBL = 0x42
+- RTM_GETNETCONF = 0x52
+- RTM_GETNSID = 0x5a
+- RTM_GETQDISC = 0x26
+- RTM_GETROUTE = 0x1a
+- RTM_GETRULE = 0x22
+- RTM_GETSTATS = 0x5e
+- RTM_GETTCLASS = 0x2a
+- RTM_GETTFILTER = 0x2e
+- RTM_MAX = 0x5f
+- RTM_NEWACTION = 0x30
+- RTM_NEWADDR = 0x14
+- RTM_NEWADDRLABEL = 0x48
+- RTM_NEWLINK = 0x10
+- RTM_NEWMDB = 0x54
+- RTM_NEWNDUSEROPT = 0x44
+- RTM_NEWNEIGH = 0x1c
+- RTM_NEWNEIGHTBL = 0x40
+- RTM_NEWNETCONF = 0x50
+- RTM_NEWNSID = 0x58
+- RTM_NEWPREFIX = 0x34
+- RTM_NEWQDISC = 0x24
+- RTM_NEWROUTE = 0x18
+- RTM_NEWRULE = 0x20
+- RTM_NEWSTATS = 0x5c
+- RTM_NEWTCLASS = 0x28
+- RTM_NEWTFILTER = 0x2c
+- RTM_NR_FAMILIES = 0x14
+- RTM_NR_MSGTYPES = 0x50
+- RTM_SETDCB = 0x4f
+- RTM_SETLINK = 0x13
+- RTM_SETNEIGHTBL = 0x43
+- RTNH_ALIGNTO = 0x4
+- RTNH_COMPARE_MASK = 0x19
+- RTNH_F_DEAD = 0x1
+- RTNH_F_LINKDOWN = 0x10
+- RTNH_F_OFFLOAD = 0x8
+- RTNH_F_ONLINK = 0x4
+- RTNH_F_PERVASIVE = 0x2
+- RTN_MAX = 0xb
+- RTPROT_BABEL = 0x2a
+- RTPROT_BIRD = 0xc
+- RTPROT_BOOT = 0x3
+- RTPROT_DHCP = 0x10
+- RTPROT_DNROUTED = 0xd
+- RTPROT_GATED = 0x8
+- RTPROT_KERNEL = 0x2
+- RTPROT_MROUTED = 0x11
+- RTPROT_MRT = 0xa
+- RTPROT_NTK = 0xf
+- RTPROT_RA = 0x9
+- RTPROT_REDIRECT = 0x1
+- RTPROT_STATIC = 0x4
+- RTPROT_UNSPEC = 0x0
+- RTPROT_XORP = 0xe
+- RTPROT_ZEBRA = 0xb
+- RT_CLASS_DEFAULT = 0xfd
+- RT_CLASS_LOCAL = 0xff
+- RT_CLASS_MAIN = 0xfe
+- RT_CLASS_MAX = 0xff
+- RT_CLASS_UNSPEC = 0x0
+- RUSAGE_CHILDREN = -0x1
+- RUSAGE_SELF = 0x0
+- RUSAGE_THREAD = 0x1
+- SCM_CREDENTIALS = 0x2
+- SCM_RIGHTS = 0x1
+- SCM_TIMESTAMP = 0x1d
+- SCM_TIMESTAMPING = 0x25
+- SCM_TIMESTAMPING_OPT_STATS = 0x36
+- SCM_TIMESTAMPNS = 0x23
+- SCM_WIFI_STATUS = 0x29
+- SECCOMP_MODE_DISABLED = 0x0
+- SECCOMP_MODE_FILTER = 0x2
+- SECCOMP_MODE_STRICT = 0x1
+- SHUT_RD = 0x0
+- SHUT_RDWR = 0x2
+- SHUT_WR = 0x1
+- SIOCADDDLCI = 0x8980
+- SIOCADDMULTI = 0x8931
+- SIOCADDRT = 0x890b
+- SIOCATMARK = 0x8905
+- SIOCBONDCHANGEACTIVE = 0x8995
+- SIOCBONDENSLAVE = 0x8990
+- SIOCBONDINFOQUERY = 0x8994
+- SIOCBONDRELEASE = 0x8991
+- SIOCBONDSETHWADDR = 0x8992
+- SIOCBONDSLAVEINFOQUERY = 0x8993
+- SIOCBRADDBR = 0x89a0
+- SIOCBRADDIF = 0x89a2
+- SIOCBRDELBR = 0x89a1
+- SIOCBRDELIF = 0x89a3
+- SIOCDARP = 0x8953
+- SIOCDELDLCI = 0x8981
+- SIOCDELMULTI = 0x8932
+- SIOCDELRT = 0x890c
+- SIOCDEVPRIVATE = 0x89f0
+- SIOCDIFADDR = 0x8936
+- SIOCDRARP = 0x8960
+- SIOCETHTOOL = 0x8946
+- SIOCGARP = 0x8954
+- SIOCGHWTSTAMP = 0x89b1
+- SIOCGIFADDR = 0x8915
+- SIOCGIFBR = 0x8940
+- SIOCGIFBRDADDR = 0x8919
+- SIOCGIFCONF = 0x8912
+- SIOCGIFCOUNT = 0x8938
+- SIOCGIFDSTADDR = 0x8917
+- SIOCGIFENCAP = 0x8925
+- SIOCGIFFLAGS = 0x8913
+- SIOCGIFHWADDR = 0x8927
+- SIOCGIFINDEX = 0x8933
+- SIOCGIFMAP = 0x8970
+- SIOCGIFMEM = 0x891f
+- SIOCGIFMETRIC = 0x891d
+- SIOCGIFMTU = 0x8921
+- SIOCGIFNAME = 0x8910
+- SIOCGIFNETMASK = 0x891b
+- SIOCGIFPFLAGS = 0x8935
+- SIOCGIFSLAVE = 0x8929
+- SIOCGIFTXQLEN = 0x8942
+- SIOCGIFVLAN = 0x8982
+- SIOCGMIIPHY = 0x8947
+- SIOCGMIIREG = 0x8948
+- SIOCGPGRP = 0x8904
+- SIOCGRARP = 0x8961
+- SIOCGSKNS = 0x894c
+- SIOCGSTAMP = 0x8906
+- SIOCGSTAMPNS = 0x8907
+- SIOCINQ = 0x4004667f
+- SIOCOUTQ = 0x40047473
+- SIOCOUTQNSD = 0x894b
+- SIOCPROTOPRIVATE = 0x89e0
+- SIOCRTMSG = 0x890d
+- SIOCSARP = 0x8955
+- SIOCSHWTSTAMP = 0x89b0
+- SIOCSIFADDR = 0x8916
+- SIOCSIFBR = 0x8941
+- SIOCSIFBRDADDR = 0x891a
+- SIOCSIFDSTADDR = 0x8918
+- SIOCSIFENCAP = 0x8926
+- SIOCSIFFLAGS = 0x8914
+- SIOCSIFHWADDR = 0x8924
+- SIOCSIFHWBROADCAST = 0x8937
+- SIOCSIFLINK = 0x8911
+- SIOCSIFMAP = 0x8971
+- SIOCSIFMEM = 0x8920
+- SIOCSIFMETRIC = 0x891e
+- SIOCSIFMTU = 0x8922
+- SIOCSIFNAME = 0x8923
+- SIOCSIFNETMASK = 0x891c
+- SIOCSIFPFLAGS = 0x8934
+- SIOCSIFSLAVE = 0x8930
+- SIOCSIFTXQLEN = 0x8943
+- SIOCSIFVLAN = 0x8983
+- SIOCSMIIREG = 0x8949
+- SIOCSPGRP = 0x8902
+- SIOCSRARP = 0x8962
+- SIOCWANDEV = 0x894a
+- SOCK_CLOEXEC = 0x80000
+- SOCK_DCCP = 0x6
+- SOCK_DGRAM = 0x2
+- SOCK_IOC_TYPE = 0x89
+- SOCK_NONBLOCK = 0x800
+- SOCK_PACKET = 0xa
+- SOCK_RAW = 0x3
+- SOCK_RDM = 0x4
+- SOCK_SEQPACKET = 0x5
+- SOCK_STREAM = 0x1
+- SOL_AAL = 0x109
+- SOL_ALG = 0x117
+- SOL_ATM = 0x108
+- SOL_CAIF = 0x116
+- SOL_CAN_BASE = 0x64
+- SOL_DCCP = 0x10d
+- SOL_DECNET = 0x105
+- SOL_ICMPV6 = 0x3a
+- SOL_IP = 0x0
+- SOL_IPV6 = 0x29
+- SOL_IRDA = 0x10a
+- SOL_IUCV = 0x115
+- SOL_KCM = 0x119
+- SOL_LLC = 0x10c
+- SOL_NETBEUI = 0x10b
+- SOL_NETLINK = 0x10e
+- SOL_NFC = 0x118
+- SOL_PACKET = 0x107
+- SOL_PNPIPE = 0x113
+- SOL_PPPOL2TP = 0x111
+- SOL_RAW = 0xff
+- SOL_RDS = 0x114
+- SOL_RXRPC = 0x110
+- SOL_SOCKET = 0x1
+- SOL_TCP = 0x6
+- SOL_TIPC = 0x10f
+- SOL_X25 = 0x106
+- SOMAXCONN = 0x80
+- SO_ACCEPTCONN = 0x1e
+- SO_ATTACH_BPF = 0x32
+- SO_ATTACH_FILTER = 0x1a
+- SO_ATTACH_REUSEPORT_CBPF = 0x33
+- SO_ATTACH_REUSEPORT_EBPF = 0x34
+- SO_BINDTODEVICE = 0x19
+- SO_BPF_EXTENSIONS = 0x30
+- SO_BROADCAST = 0x6
+- SO_BSDCOMPAT = 0xe
+- SO_BUSY_POLL = 0x2e
+- SO_CNX_ADVICE = 0x35
+- SO_DEBUG = 0x1
+- SO_DETACH_BPF = 0x1b
+- SO_DETACH_FILTER = 0x1b
+- SO_DOMAIN = 0x27
+- SO_DONTROUTE = 0x5
+- SO_ERROR = 0x4
+- SO_GET_FILTER = 0x1a
+- SO_INCOMING_CPU = 0x31
+- SO_KEEPALIVE = 0x9
+- SO_LINGER = 0xd
+- SO_LOCK_FILTER = 0x2c
+- SO_MARK = 0x24
+- SO_MAX_PACING_RATE = 0x2f
+- SO_NOFCS = 0x2b
+- SO_NO_CHECK = 0xb
+- SO_OOBINLINE = 0xa
+- SO_PASSCRED = 0x14
+- SO_PASSSEC = 0x22
+- SO_PEEK_OFF = 0x2a
+- SO_PEERCRED = 0x15
+- SO_PEERNAME = 0x1c
+- SO_PEERSEC = 0x1f
+- SO_PRIORITY = 0xc
+- SO_PROTOCOL = 0x26
+- SO_RCVBUF = 0x8
+- SO_RCVBUFFORCE = 0x21
+- SO_RCVLOWAT = 0x10
+- SO_RCVTIMEO = 0x12
+- SO_REUSEADDR = 0x2
+- SO_REUSEPORT = 0xf
+- SO_RXQ_OVFL = 0x28
+- SO_SECURITY_AUTHENTICATION = 0x16
+- SO_SECURITY_ENCRYPTION_NETWORK = 0x18
+- SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
+- SO_SELECT_ERR_QUEUE = 0x2d
+- SO_SNDBUF = 0x7
+- SO_SNDBUFFORCE = 0x20
+- SO_SNDLOWAT = 0x11
+- SO_SNDTIMEO = 0x13
+- SO_TIMESTAMP = 0x1d
+- SO_TIMESTAMPING = 0x25
+- SO_TIMESTAMPNS = 0x23
+- SO_TYPE = 0x3
+- SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
+- SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
+- SO_VM_SOCKETS_BUFFER_SIZE = 0x0
+- SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
+- SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
+- SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
+- SO_VM_SOCKETS_TRUSTED = 0x5
+- SO_WIFI_STATUS = 0x29
+- SPLICE_F_GIFT = 0x8
+- SPLICE_F_MORE = 0x4
+- SPLICE_F_MOVE = 0x1
+- SPLICE_F_NONBLOCK = 0x2
+- S_BLKSIZE = 0x200
+- S_IEXEC = 0x40
+- S_IFBLK = 0x6000
+- S_IFCHR = 0x2000
+- S_IFDIR = 0x4000
+- S_IFIFO = 0x1000
+- S_IFLNK = 0xa000
+- S_IFMT = 0xf000
+- S_IFREG = 0x8000
+- S_IFSOCK = 0xc000
+- S_IREAD = 0x100
+- S_IRGRP = 0x20
+- S_IROTH = 0x4
+- S_IRUSR = 0x100
+- S_IRWXG = 0x38
+- S_IRWXO = 0x7
+- S_IRWXU = 0x1c0
+- S_ISGID = 0x400
+- S_ISUID = 0x800
+- S_ISVTX = 0x200
+- S_IWGRP = 0x10
+- S_IWOTH = 0x2
+- S_IWRITE = 0x80
+- S_IWUSR = 0x80
+- S_IXGRP = 0x8
+- S_IXOTH = 0x1
+- S_IXUSR = 0x40
+- TAB0 = 0x0
+- TAB1 = 0x400
+- TAB2 = 0x800
+- TAB3 = 0xc00
+- TABDLY = 0xc00
+- TASKSTATS_CMD_ATTR_MAX = 0x4
+- TASKSTATS_CMD_MAX = 0x2
+- TASKSTATS_GENL_NAME = "TASKSTATS"
+- TASKSTATS_GENL_VERSION = 0x1
+- TASKSTATS_TYPE_MAX = 0x6
+- TASKSTATS_VERSION = 0x8
+- TCFLSH = 0x2000741f
+- TCGETA = 0x40147417
+- TCGETS = 0x402c7413
+- TCIFLUSH = 0x0
+- TCIOFF = 0x2
+- TCIOFLUSH = 0x2
+- TCION = 0x3
+- TCOFLUSH = 0x1
+- TCOOFF = 0x0
+- TCOON = 0x1
+- TCP_CC_INFO = 0x1a
+- TCP_CONGESTION = 0xd
+- TCP_COOKIE_IN_ALWAYS = 0x1
+- TCP_COOKIE_MAX = 0x10
+- TCP_COOKIE_MIN = 0x8
+- TCP_COOKIE_OUT_NEVER = 0x2
+- TCP_COOKIE_PAIR_SIZE = 0x20
+- TCP_COOKIE_TRANSACTIONS = 0xf
+- TCP_CORK = 0x3
+- TCP_DEFER_ACCEPT = 0x9
+- TCP_FASTOPEN = 0x17
+- TCP_INFO = 0xb
+- TCP_KEEPCNT = 0x6
+- TCP_KEEPIDLE = 0x4
+- TCP_KEEPINTVL = 0x5
+- TCP_LINGER2 = 0x8
+- TCP_MAXSEG = 0x2
+- TCP_MAXWIN = 0xffff
+- TCP_MAX_WINSHIFT = 0xe
+- TCP_MD5SIG = 0xe
+- TCP_MD5SIG_MAXKEYLEN = 0x50
+- TCP_MSS = 0x200
+- TCP_MSS_DEFAULT = 0x218
+- TCP_MSS_DESIRED = 0x4c4
+- TCP_NODELAY = 0x1
+- TCP_NOTSENT_LOWAT = 0x19
+- TCP_QUEUE_SEQ = 0x15
+- TCP_QUICKACK = 0xc
+- TCP_REPAIR = 0x13
+- TCP_REPAIR_OPTIONS = 0x16
+- TCP_REPAIR_QUEUE = 0x14
+- TCP_REPAIR_WINDOW = 0x1d
+- TCP_SAVED_SYN = 0x1c
+- TCP_SAVE_SYN = 0x1b
+- TCP_SYNCNT = 0x7
+- TCP_S_DATA_IN = 0x4
+- TCP_S_DATA_OUT = 0x8
+- TCP_THIN_DUPACK = 0x11
+- TCP_THIN_LINEAR_TIMEOUTS = 0x10
+- TCP_TIMESTAMP = 0x18
+- TCP_USER_TIMEOUT = 0x12
+- TCP_WINDOW_CLAMP = 0xa
+- TCSAFLUSH = 0x2
+- TCSBRK = 0x2000741d
+- TCSBRKP = 0x5425
+- TCSETA = 0x80147418
+- TCSETAF = 0x8014741c
+- TCSETAW = 0x80147419
+- TCSETS = 0x802c7414
+- TCSETSF = 0x802c7416
+- TCSETSW = 0x802c7415
+- TCXONC = 0x2000741e
+- TIOCCBRK = 0x5428
+- TIOCCONS = 0x541d
+- TIOCEXCL = 0x540c
+- TIOCGDEV = 0x40045432
+- TIOCGETC = 0x40067412
+- TIOCGETD = 0x5424
+- TIOCGETP = 0x40067408
+- TIOCGEXCL = 0x40045440
+- TIOCGICOUNT = 0x545d
+- TIOCGLCKTRMIOS = 0x5456
+- TIOCGLTC = 0x40067474
+- TIOCGPGRP = 0x40047477
+- TIOCGPKT = 0x40045438
+- TIOCGPTLCK = 0x40045439
+- TIOCGPTN = 0x40045430
+- TIOCGRS485 = 0x542e
+- TIOCGSERIAL = 0x541e
+- TIOCGSID = 0x5429
+- TIOCGSOFTCAR = 0x5419
+- TIOCGWINSZ = 0x40087468
+- TIOCINQ = 0x4004667f
+- TIOCLINUX = 0x541c
+- TIOCMBIC = 0x5417
+- TIOCMBIS = 0x5416
+- TIOCMGET = 0x5415
+- TIOCMIWAIT = 0x545c
+- TIOCMSET = 0x5418
+- TIOCM_CAR = 0x40
+- TIOCM_CD = 0x40
+- TIOCM_CTS = 0x20
+- TIOCM_DSR = 0x100
+- TIOCM_DTR = 0x2
+- TIOCM_LE = 0x1
+- TIOCM_LOOP = 0x8000
+- TIOCM_OUT1 = 0x2000
+- TIOCM_OUT2 = 0x4000
+- TIOCM_RI = 0x80
+- TIOCM_RNG = 0x80
+- TIOCM_RTS = 0x4
+- TIOCM_SR = 0x10
+- TIOCM_ST = 0x8
+- TIOCNOTTY = 0x5422
+- TIOCNXCL = 0x540d
+- TIOCOUTQ = 0x40047473
+- TIOCPKT = 0x5420
+- TIOCPKT_DATA = 0x0
+- TIOCPKT_DOSTOP = 0x20
+- TIOCPKT_FLUSHREAD = 0x1
+- TIOCPKT_FLUSHWRITE = 0x2
+- TIOCPKT_IOCTL = 0x40
+- TIOCPKT_NOSTOP = 0x10
+- TIOCPKT_START = 0x8
+- TIOCPKT_STOP = 0x4
+- TIOCSBRK = 0x5427
+- TIOCSCTTY = 0x540e
+- TIOCSERCONFIG = 0x5453
+- TIOCSERGETLSR = 0x5459
+- TIOCSERGETMULTI = 0x545a
+- TIOCSERGSTRUCT = 0x5458
+- TIOCSERGWILD = 0x5454
+- TIOCSERSETMULTI = 0x545b
+- TIOCSERSWILD = 0x5455
+- TIOCSER_TEMT = 0x1
+- TIOCSETC = 0x80067411
+- TIOCSETD = 0x5423
+- TIOCSETN = 0x8006740a
+- TIOCSETP = 0x80067409
+- TIOCSIG = 0x80045436
+- TIOCSLCKTRMIOS = 0x5457
+- TIOCSLTC = 0x80067475
+- TIOCSPGRP = 0x80047476
+- TIOCSPTLCK = 0x80045431
+- TIOCSRS485 = 0x542f
+- TIOCSSERIAL = 0x541f
+- TIOCSSOFTCAR = 0x541a
+- TIOCSTART = 0x2000746e
+- TIOCSTI = 0x5412
+- TIOCSTOP = 0x2000746f
+- TIOCSWINSZ = 0x80087467
+- TIOCVHANGUP = 0x5437
+- TOSTOP = 0x400000
+- TS_COMM_LEN = 0x20
+- TUNATTACHFILTER = 0x801054d5
+- TUNDETACHFILTER = 0x801054d6
+- TUNGETFEATURES = 0x400454cf
+- TUNGETFILTER = 0x401054db
+- TUNGETIFF = 0x400454d2
+- TUNGETSNDBUF = 0x400454d3
+- TUNGETVNETBE = 0x400454df
+- TUNGETVNETHDRSZ = 0x400454d7
+- TUNGETVNETLE = 0x400454dd
+- TUNSETDEBUG = 0x800454c9
+- TUNSETGROUP = 0x800454ce
+- TUNSETIFF = 0x800454ca
+- TUNSETIFINDEX = 0x800454da
+- TUNSETLINK = 0x800454cd
+- TUNSETNOCSUM = 0x800454c8
+- TUNSETOFFLOAD = 0x800454d0
+- TUNSETOWNER = 0x800454cc
+- TUNSETPERSIST = 0x800454cb
+- TUNSETQUEUE = 0x800454d9
+- TUNSETSNDBUF = 0x800454d4
+- TUNSETTXFILTER = 0x800454d1
+- TUNSETVNETBE = 0x800454de
+- TUNSETVNETHDRSZ = 0x800454d8
+- TUNSETVNETLE = 0x800454dc
+- UMOUNT_NOFOLLOW = 0x8
+- VDISCARD = 0x10
+- VEOF = 0x4
+- VEOL = 0x6
+- VEOL2 = 0x8
+- VERASE = 0x2
+- VINTR = 0x0
+- VKILL = 0x3
+- VLNEXT = 0xf
+- VMADDR_CID_ANY = 0xffffffff
+- VMADDR_CID_HOST = 0x2
+- VMADDR_CID_HYPERVISOR = 0x0
+- VMADDR_CID_RESERVED = 0x1
+- VMADDR_PORT_ANY = 0xffffffff
+- VMIN = 0x5
+- VM_SOCKETS_INVALID_VERSION = 0xffffffff
+- VQUIT = 0x1
+- VREPRINT = 0xb
+- VSTART = 0xd
+- VSTOP = 0xe
+- VSUSP = 0xc
+- VSWTC = 0x9
+- VT0 = 0x0
+- VT1 = 0x10000
+- VTDLY = 0x10000
+- VTIME = 0x7
+- VWERASE = 0xa
+- WALL = 0x40000000
+- WCLONE = 0x80000000
+- WCONTINUED = 0x8
+- WEXITED = 0x4
+- WNOHANG = 0x1
+- WNOTHREAD = 0x20000000
+- WNOWAIT = 0x1000000
+- WORDSIZE = 0x40
+- WSTOPPED = 0x2
+- WUNTRACED = 0x2
+- XATTR_CREATE = 0x1
+- XATTR_REPLACE = 0x2
+- XCASE = 0x4000
+- XTABS = 0xc00
++ B1000000 = 0x17
++ B115200 = 0x11
++ B1152000 = 0x18
++ B1500000 = 0x19
++ B2000000 = 0x1a
++ B230400 = 0x12
++ B2500000 = 0x1b
++ B3000000 = 0x1c
++ B3500000 = 0x1d
++ B4000000 = 0x1e
++ B460800 = 0x13
++ B500000 = 0x14
++ B57600 = 0x10
++ B576000 = 0x15
++ B921600 = 0x16
++ BLKBSZGET = 0x40081270
++ BLKBSZSET = 0x80081271
++ BLKFLSBUF = 0x20001261
++ BLKFRAGET = 0x20001265
++ BLKFRASET = 0x20001264
++ BLKGETSIZE = 0x20001260
++ BLKGETSIZE64 = 0x40081272
++ BLKPBSZGET = 0x2000127b
++ BLKRAGET = 0x20001263
++ BLKRASET = 0x20001262
++ BLKROGET = 0x2000125e
++ BLKROSET = 0x2000125d
++ BLKRRPART = 0x2000125f
++ BLKSECTGET = 0x20001267
++ BLKSECTSET = 0x20001266
++ BLKSSZGET = 0x20001268
++ BOTHER = 0x1f
++ BS1 = 0x8000
++ BSDLY = 0x8000
++ CBAUD = 0xff
++ CBAUDEX = 0x0
++ CIBAUD = 0xff0000
++ CLOCAL = 0x8000
++ CR1 = 0x1000
++ CR2 = 0x2000
++ CR3 = 0x3000
++ CRDLY = 0x3000
++ CREAD = 0x800
++ CS6 = 0x100
++ CS7 = 0x200
++ CS8 = 0x300
++ CSIZE = 0x300
++ CSTOPB = 0x400
++ ECHOCTL = 0x40
++ ECHOE = 0x2
++ ECHOK = 0x4
++ ECHOKE = 0x1
++ ECHONL = 0x10
++ ECHOPRT = 0x20
++ EFD_CLOEXEC = 0x80000
++ EFD_NONBLOCK = 0x800
++ EPOLL_CLOEXEC = 0x80000
++ EXTPROC = 0x10000000
++ FF1 = 0x4000
++ FFDLY = 0x4000
++ FLUSHO = 0x800000
++ FS_IOC_ENABLE_VERITY = 0x80806685
++ FS_IOC_GETFLAGS = 0x40086601
++ FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615
++ FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614
++ FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613
++ F_GETLK = 0x5
++ F_GETLK64 = 0xc
++ F_GETOWN = 0x9
++ F_RDLCK = 0x0
++ F_SETLK = 0x6
++ F_SETLK64 = 0xd
++ F_SETLKW = 0x7
++ F_SETLKW64 = 0xe
++ F_SETOWN = 0x8
++ F_UNLCK = 0x2
++ F_WRLCK = 0x1
++ HUPCL = 0x4000
++ ICANON = 0x100
++ IEXTEN = 0x400
++ IN_CLOEXEC = 0x80000
++ IN_NONBLOCK = 0x800
++ IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9
++ ISIG = 0x80
++ IUCLC = 0x1000
++ IXOFF = 0x400
++ IXON = 0x200
++ MAP_ANON = 0x20
++ MAP_ANONYMOUS = 0x20
++ MAP_DENYWRITE = 0x800
++ MAP_EXECUTABLE = 0x1000
++ MAP_GROWSDOWN = 0x100
++ MAP_HUGETLB = 0x40000
++ MAP_LOCKED = 0x80
++ MAP_NONBLOCK = 0x10000
++ MAP_NORESERVE = 0x40
++ MAP_POPULATE = 0x8000
++ MAP_STACK = 0x20000
++ MAP_SYNC = 0x80000
++ MCL_CURRENT = 0x2000
++ MCL_FUTURE = 0x4000
++ MCL_ONFAULT = 0x8000
++ NFDBITS = 0x40
++ NL2 = 0x200
++ NL3 = 0x300
++ NLDLY = 0x300
++ NOFLSH = 0x80000000
++ NS_GET_NSTYPE = 0x2000b703
++ NS_GET_OWNER_UID = 0x2000b704
++ NS_GET_PARENT = 0x2000b702
++ NS_GET_USERNS = 0x2000b701
++ OLCUC = 0x4
++ ONLCR = 0x2
++ O_APPEND = 0x400
++ O_ASYNC = 0x2000
++ O_CLOEXEC = 0x80000
++ O_CREAT = 0x40
++ O_DIRECT = 0x20000
++ O_DIRECTORY = 0x4000
++ O_DSYNC = 0x1000
++ O_EXCL = 0x80
++ O_FSYNC = 0x101000
++ O_LARGEFILE = 0x0
++ O_NDELAY = 0x800
++ O_NOATIME = 0x40000
++ O_NOCTTY = 0x100
++ O_NOFOLLOW = 0x8000
++ O_NONBLOCK = 0x800
++ O_PATH = 0x200000
++ O_RSYNC = 0x101000
++ O_SYNC = 0x101000
++ O_TMPFILE = 0x404000
++ O_TRUNC = 0x200
++ PARENB = 0x1000
++ PARODD = 0x2000
++ PENDIN = 0x20000000
++ PERF_EVENT_IOC_DISABLE = 0x20002401
++ PERF_EVENT_IOC_ENABLE = 0x20002400
++ PERF_EVENT_IOC_ID = 0x40082407
++ PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b
++ PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409
++ PERF_EVENT_IOC_PERIOD = 0x80082404
++ PERF_EVENT_IOC_QUERY_BPF = 0xc008240a
++ PERF_EVENT_IOC_REFRESH = 0x20002402
++ PERF_EVENT_IOC_RESET = 0x20002403
++ PERF_EVENT_IOC_SET_BPF = 0x80042408
++ PERF_EVENT_IOC_SET_FILTER = 0x80082406
++ PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
++ PPPIOCATTACH = 0x8004743d
++ PPPIOCATTCHAN = 0x80047438
++ PPPIOCCONNECT = 0x8004743a
++ PPPIOCDETACH = 0x8004743c
++ PPPIOCDISCONN = 0x20007439
++ PPPIOCGASYNCMAP = 0x40047458
++ PPPIOCGCHAN = 0x40047437
++ PPPIOCGDEBUG = 0x40047441
++ PPPIOCGFLAGS = 0x4004745a
++ PPPIOCGIDLE = 0x4010743f
++ PPPIOCGIDLE32 = 0x4008743f
++ PPPIOCGIDLE64 = 0x4010743f
++ PPPIOCGL2TPSTATS = 0x40487436
++ PPPIOCGMRU = 0x40047453
++ PPPIOCGRASYNCMAP = 0x40047455
++ PPPIOCGUNIT = 0x40047456
++ PPPIOCGXASYNCMAP = 0x40207450
++ PPPIOCSACTIVE = 0x80107446
++ PPPIOCSASYNCMAP = 0x80047457
++ PPPIOCSCOMPRESS = 0x8010744d
++ PPPIOCSDEBUG = 0x80047440
++ PPPIOCSFLAGS = 0x80047459
++ PPPIOCSMAXCID = 0x80047451
++ PPPIOCSMRRU = 0x8004743b
++ PPPIOCSMRU = 0x80047452
++ PPPIOCSNPMODE = 0x8008744b
++ PPPIOCSPASS = 0x80107447
++ PPPIOCSRASYNCMAP = 0x80047454
++ PPPIOCSXASYNCMAP = 0x8020744f
++ PPPIOCXFERUNIT = 0x2000744e
++ PROT_SAO = 0x10
++ PR_SET_PTRACER_ANY = 0xffffffffffffffff
++ PTRACE_GETEVRREGS = 0x14
++ PTRACE_GETFPREGS = 0xe
++ PTRACE_GETREGS64 = 0x16
++ PTRACE_GETVRREGS = 0x12
++ PTRACE_GETVSRREGS = 0x1b
++ PTRACE_GET_DEBUGREG = 0x19
++ PTRACE_SETEVRREGS = 0x15
++ PTRACE_SETFPREGS = 0xf
++ PTRACE_SETREGS64 = 0x17
++ PTRACE_SETVRREGS = 0x13
++ PTRACE_SETVSRREGS = 0x1c
++ PTRACE_SET_DEBUGREG = 0x1a
++ PTRACE_SINGLEBLOCK = 0x100
++ PTRACE_SYSEMU = 0x1d
++ PTRACE_SYSEMU_SINGLESTEP = 0x1e
++ PT_CCR = 0x26
++ PT_CTR = 0x23
++ PT_DAR = 0x29
++ PT_DSCR = 0x2c
++ PT_DSISR = 0x2a
++ PT_FPR0 = 0x30
++ PT_FPSCR = 0x50
++ PT_LNK = 0x24
++ PT_MSR = 0x21
++ PT_NIP = 0x20
++ PT_ORIG_R3 = 0x22
++ PT_R0 = 0x0
++ PT_R1 = 0x1
++ PT_R10 = 0xa
++ PT_R11 = 0xb
++ PT_R12 = 0xc
++ PT_R13 = 0xd
++ PT_R14 = 0xe
++ PT_R15 = 0xf
++ PT_R16 = 0x10
++ PT_R17 = 0x11
++ PT_R18 = 0x12
++ PT_R19 = 0x13
++ PT_R2 = 0x2
++ PT_R20 = 0x14
++ PT_R21 = 0x15
++ PT_R22 = 0x16
++ PT_R23 = 0x17
++ PT_R24 = 0x18
++ PT_R25 = 0x19
++ PT_R26 = 0x1a
++ PT_R27 = 0x1b
++ PT_R28 = 0x1c
++ PT_R29 = 0x1d
++ PT_R3 = 0x3
++ PT_R30 = 0x1e
++ PT_R31 = 0x1f
++ PT_R4 = 0x4
++ PT_R5 = 0x5
++ PT_R6 = 0x6
++ PT_R7 = 0x7
++ PT_R8 = 0x8
++ PT_R9 = 0x9
++ PT_REGS_COUNT = 0x2c
++ PT_RESULT = 0x2b
++ PT_SOFTE = 0x27
++ PT_TRAP = 0x28
++ PT_VR0 = 0x52
++ PT_VRSAVE = 0x94
++ PT_VSCR = 0x93
++ PT_VSR0 = 0x96
++ PT_VSR31 = 0xd4
++ PT_XER = 0x25
++ RLIMIT_AS = 0x9
++ RLIMIT_MEMLOCK = 0x8
++ RLIMIT_NOFILE = 0x7
++ RLIMIT_NPROC = 0x6
++ RLIMIT_RSS = 0x5
++ RNDADDENTROPY = 0x80085203
++ RNDADDTOENTCNT = 0x80045201
++ RNDCLEARPOOL = 0x20005206
++ RNDGETENTCNT = 0x40045200
++ RNDGETPOOL = 0x40085202
++ RNDRESEEDCRNG = 0x20005207
++ RNDZAPENTCNT = 0x20005204
++ RTC_AIE_OFF = 0x20007002
++ RTC_AIE_ON = 0x20007001
++ RTC_ALM_READ = 0x40247008
++ RTC_ALM_SET = 0x80247007
++ RTC_EPOCH_READ = 0x4008700d
++ RTC_EPOCH_SET = 0x8008700e
++ RTC_IRQP_READ = 0x4008700b
++ RTC_IRQP_SET = 0x8008700c
++ RTC_PIE_OFF = 0x20007006
++ RTC_PIE_ON = 0x20007005
++ RTC_PLL_GET = 0x40207011
++ RTC_PLL_SET = 0x80207012
++ RTC_RD_TIME = 0x40247009
++ RTC_SET_TIME = 0x8024700a
++ RTC_UIE_OFF = 0x20007004
++ RTC_UIE_ON = 0x20007003
++ RTC_VL_CLR = 0x20007014
++ RTC_VL_READ = 0x40047013
++ RTC_WIE_OFF = 0x20007010
++ RTC_WIE_ON = 0x2000700f
++ RTC_WKALM_RD = 0x40287010
++ RTC_WKALM_SET = 0x8028700f
++ SCM_TIMESTAMPING = 0x25
++ SCM_TIMESTAMPING_OPT_STATS = 0x36
++ SCM_TIMESTAMPING_PKTINFO = 0x3a
++ SCM_TIMESTAMPNS = 0x23
++ SCM_TXTIME = 0x3d
++ SCM_WIFI_STATUS = 0x29
++ SFD_CLOEXEC = 0x80000
++ SFD_NONBLOCK = 0x800
++ SIOCATMARK = 0x8905
++ SIOCGPGRP = 0x8904
++ SIOCGSTAMPNS_NEW = 0x40108907
++ SIOCGSTAMP_NEW = 0x40108906
++ SIOCINQ = 0x4004667f
++ SIOCOUTQ = 0x40047473
++ SIOCSPGRP = 0x8902
++ SOCK_CLOEXEC = 0x80000
++ SOCK_DGRAM = 0x2
++ SOCK_NONBLOCK = 0x800
++ SOCK_STREAM = 0x1
++ SOL_SOCKET = 0x1
++ SO_ACCEPTCONN = 0x1e
++ SO_ATTACH_BPF = 0x32
++ SO_ATTACH_REUSEPORT_CBPF = 0x33
++ SO_ATTACH_REUSEPORT_EBPF = 0x34
++ SO_BINDTODEVICE = 0x19
++ SO_BINDTOIFINDEX = 0x3e
++ SO_BPF_EXTENSIONS = 0x30
++ SO_BROADCAST = 0x6
++ SO_BSDCOMPAT = 0xe
++ SO_BUSY_POLL = 0x2e
++ SO_CNX_ADVICE = 0x35
++ SO_COOKIE = 0x39
++ SO_DETACH_REUSEPORT_BPF = 0x44
++ SO_DOMAIN = 0x27
++ SO_DONTROUTE = 0x5
++ SO_ERROR = 0x4
++ SO_INCOMING_CPU = 0x31
++ SO_INCOMING_NAPI_ID = 0x38
++ SO_KEEPALIVE = 0x9
++ SO_LINGER = 0xd
++ SO_LOCK_FILTER = 0x2c
++ SO_MARK = 0x24
++ SO_MAX_PACING_RATE = 0x2f
++ SO_MEMINFO = 0x37
++ SO_NOFCS = 0x2b
++ SO_OOBINLINE = 0xa
++ SO_PASSCRED = 0x14
++ SO_PASSSEC = 0x22
++ SO_PEEK_OFF = 0x2a
++ SO_PEERCRED = 0x15
++ SO_PEERGROUPS = 0x3b
++ SO_PEERSEC = 0x1f
++ SO_PROTOCOL = 0x26
++ SO_RCVBUF = 0x8
++ SO_RCVBUFFORCE = 0x21
++ SO_RCVLOWAT = 0x10
++ SO_RCVTIMEO = 0x12
++ SO_RCVTIMEO_NEW = 0x42
++ SO_RCVTIMEO_OLD = 0x12
++ SO_REUSEADDR = 0x2
++ SO_REUSEPORT = 0xf
++ SO_RXQ_OVFL = 0x28
++ SO_SECURITY_AUTHENTICATION = 0x16
++ SO_SECURITY_ENCRYPTION_NETWORK = 0x18
++ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
++ SO_SELECT_ERR_QUEUE = 0x2d
++ SO_SNDBUF = 0x7
++ SO_SNDBUFFORCE = 0x20
++ SO_SNDLOWAT = 0x11
++ SO_SNDTIMEO = 0x13
++ SO_SNDTIMEO_NEW = 0x43
++ SO_SNDTIMEO_OLD = 0x13
++ SO_TIMESTAMPING = 0x25
++ SO_TIMESTAMPING_NEW = 0x41
++ SO_TIMESTAMPING_OLD = 0x25
++ SO_TIMESTAMPNS = 0x23
++ SO_TIMESTAMPNS_NEW = 0x40
++ SO_TIMESTAMPNS_OLD = 0x23
++ SO_TIMESTAMP_NEW = 0x3f
++ SO_TXTIME = 0x3d
++ SO_TYPE = 0x3
++ SO_WIFI_STATUS = 0x29
++ SO_ZEROCOPY = 0x3c
++ TAB1 = 0x400
++ TAB2 = 0x800
++ TAB3 = 0xc00
++ TABDLY = 0xc00
++ TCFLSH = 0x2000741f
++ TCGETA = 0x40147417
++ TCGETS = 0x402c7413
++ TCSAFLUSH = 0x2
++ TCSBRK = 0x2000741d
++ TCSBRKP = 0x5425
++ TCSETA = 0x80147418
++ TCSETAF = 0x8014741c
++ TCSETAW = 0x80147419
++ TCSETS = 0x802c7414
++ TCSETSF = 0x802c7416
++ TCSETSW = 0x802c7415
++ TCXONC = 0x2000741e
++ TIOCCBRK = 0x5428
++ TIOCCONS = 0x541d
++ TIOCEXCL = 0x540c
++ TIOCGDEV = 0x40045432
++ TIOCGETC = 0x40067412
++ TIOCGETD = 0x5424
++ TIOCGETP = 0x40067408
++ TIOCGEXCL = 0x40045440
++ TIOCGICOUNT = 0x545d
++ TIOCGISO7816 = 0x40285442
++ TIOCGLCKTRMIOS = 0x5456
++ TIOCGLTC = 0x40067474
++ TIOCGPGRP = 0x40047477
++ TIOCGPKT = 0x40045438
++ TIOCGPTLCK = 0x40045439
++ TIOCGPTN = 0x40045430
++ TIOCGPTPEER = 0x20005441
++ TIOCGRS485 = 0x542e
++ TIOCGSERIAL = 0x541e
++ TIOCGSID = 0x5429
++ TIOCGSOFTCAR = 0x5419
++ TIOCGWINSZ = 0x40087468
++ TIOCINQ = 0x4004667f
++ TIOCLINUX = 0x541c
++ TIOCMBIC = 0x5417
++ TIOCMBIS = 0x5416
++ TIOCMGET = 0x5415
++ TIOCMIWAIT = 0x545c
++ TIOCMSET = 0x5418
++ TIOCM_CAR = 0x40
++ TIOCM_CD = 0x40
++ TIOCM_CTS = 0x20
++ TIOCM_DSR = 0x100
++ TIOCM_LOOP = 0x8000
++ TIOCM_OUT1 = 0x2000
++ TIOCM_OUT2 = 0x4000
++ TIOCM_RI = 0x80
++ TIOCM_RNG = 0x80
++ TIOCM_SR = 0x10
++ TIOCM_ST = 0x8
++ TIOCNOTTY = 0x5422
++ TIOCNXCL = 0x540d
++ TIOCOUTQ = 0x40047473
++ TIOCPKT = 0x5420
++ TIOCSBRK = 0x5427
++ TIOCSCTTY = 0x540e
++ TIOCSERCONFIG = 0x5453
++ TIOCSERGETLSR = 0x5459
++ TIOCSERGETMULTI = 0x545a
++ TIOCSERGSTRUCT = 0x5458
++ TIOCSERGWILD = 0x5454
++ TIOCSERSETMULTI = 0x545b
++ TIOCSERSWILD = 0x5455
++ TIOCSER_TEMT = 0x1
++ TIOCSETC = 0x80067411
++ TIOCSETD = 0x5423
++ TIOCSETN = 0x8006740a
++ TIOCSETP = 0x80067409
++ TIOCSIG = 0x80045436
++ TIOCSISO7816 = 0xc0285443
++ TIOCSLCKTRMIOS = 0x5457
++ TIOCSLTC = 0x80067475
++ TIOCSPGRP = 0x80047476
++ TIOCSPTLCK = 0x80045431
++ TIOCSRS485 = 0x542f
++ TIOCSSERIAL = 0x541f
++ TIOCSSOFTCAR = 0x541a
++ TIOCSTART = 0x2000746e
++ TIOCSTI = 0x5412
++ TIOCSTOP = 0x2000746f
++ TIOCSWINSZ = 0x80087467
++ TIOCVHANGUP = 0x5437
++ TOSTOP = 0x400000
++ TUNATTACHFILTER = 0x801054d5
++ TUNDETACHFILTER = 0x801054d6
++ TUNGETDEVNETNS = 0x200054e3
++ TUNGETFEATURES = 0x400454cf
++ TUNGETFILTER = 0x401054db
++ TUNGETIFF = 0x400454d2
++ TUNGETSNDBUF = 0x400454d3
++ TUNGETVNETBE = 0x400454df
++ TUNGETVNETHDRSZ = 0x400454d7
++ TUNGETVNETLE = 0x400454dd
++ TUNSETCARRIER = 0x800454e2
++ TUNSETDEBUG = 0x800454c9
++ TUNSETFILTEREBPF = 0x400454e1
++ TUNSETGROUP = 0x800454ce
++ TUNSETIFF = 0x800454ca
++ TUNSETIFINDEX = 0x800454da
++ TUNSETLINK = 0x800454cd
++ TUNSETNOCSUM = 0x800454c8
++ TUNSETOFFLOAD = 0x800454d0
++ TUNSETOWNER = 0x800454cc
++ TUNSETPERSIST = 0x800454cb
++ TUNSETQUEUE = 0x800454d9
++ TUNSETSNDBUF = 0x800454d4
++ TUNSETSTEERINGEBPF = 0x400454e0
++ TUNSETTXFILTER = 0x800454d1
++ TUNSETVNETBE = 0x800454de
++ TUNSETVNETHDRSZ = 0x800454d8
++ TUNSETVNETLE = 0x800454dc
++ UBI_IOCATT = 0x80186f40
++ UBI_IOCDET = 0x80046f41
++ UBI_IOCEBCH = 0x80044f02
++ UBI_IOCEBER = 0x80044f01
++ UBI_IOCEBISMAP = 0x40044f05
++ UBI_IOCEBMAP = 0x80084f03
++ UBI_IOCEBUNMAP = 0x80044f04
++ UBI_IOCMKVOL = 0x80986f00
++ UBI_IOCRMVOL = 0x80046f01
++ UBI_IOCRNVOL = 0x91106f03
++ UBI_IOCRPEB = 0x80046f04
++ UBI_IOCRSVOL = 0x800c6f02
++ UBI_IOCSETVOLPROP = 0x80104f06
++ UBI_IOCSPEB = 0x80046f05
++ UBI_IOCVOLCRBLK = 0x80804f07
++ UBI_IOCVOLRMBLK = 0x20004f08
++ UBI_IOCVOLUP = 0x80084f00
++ VDISCARD = 0x10
++ VEOF = 0x4
++ VEOL = 0x6
++ VEOL2 = 0x8
++ VMIN = 0x5
++ VREPRINT = 0xb
++ VSTART = 0xd
++ VSTOP = 0xe
++ VSUSP = 0xc
++ VSWTC = 0x9
++ VT1 = 0x10000
++ VTDLY = 0x10000
++ VTIME = 0x7
++ VWERASE = 0xa
++ WDIOC_GETBOOTSTATUS = 0x40045702
++ WDIOC_GETPRETIMEOUT = 0x40045709
++ WDIOC_GETSTATUS = 0x40045701
++ WDIOC_GETSUPPORT = 0x40285700
++ WDIOC_GETTEMP = 0x40045703
++ WDIOC_GETTIMELEFT = 0x4004570a
++ WDIOC_GETTIMEOUT = 0x40045707
++ WDIOC_KEEPALIVE = 0x40045705
++ WDIOC_SETOPTIONS = 0x40045704
++ WORDSIZE = 0x40
++ XCASE = 0x4000
++ XTABS = 0xc00
+ )
+
+ // Errors
+ const (
+- E2BIG = syscall.Errno(0x7)
+- EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x62)
+ EADDRNOTAVAIL = syscall.Errno(0x63)
+ EADV = syscall.Errno(0x44)
+ EAFNOSUPPORT = syscall.Errno(0x61)
+- EAGAIN = syscall.Errno(0xb)
+ EALREADY = syscall.Errno(0x72)
+ EBADE = syscall.Errno(0x34)
+- EBADF = syscall.Errno(0x9)
+ EBADFD = syscall.Errno(0x4d)
+ EBADMSG = syscall.Errno(0x4a)
+ EBADR = syscall.Errno(0x35)
+ EBADRQC = syscall.Errno(0x38)
+ EBADSLT = syscall.Errno(0x39)
+ EBFONT = syscall.Errno(0x3b)
+- EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x7d)
+- ECHILD = syscall.Errno(0xa)
+ ECHRNG = syscall.Errno(0x2c)
+ ECOMM = syscall.Errno(0x46)
+ ECONNABORTED = syscall.Errno(0x67)
+@@ -1943,23 +562,15 @@ const (
+ EDEADLK = syscall.Errno(0x23)
+ EDEADLOCK = syscall.Errno(0x3a)
+ EDESTADDRREQ = syscall.Errno(0x59)
+- EDOM = syscall.Errno(0x21)
+ EDOTDOT = syscall.Errno(0x49)
+ EDQUOT = syscall.Errno(0x7a)
+- EEXIST = syscall.Errno(0x11)
+- EFAULT = syscall.Errno(0xe)
+- EFBIG = syscall.Errno(0x1b)
+ EHOSTDOWN = syscall.Errno(0x70)
+ EHOSTUNREACH = syscall.Errno(0x71)
+ EHWPOISON = syscall.Errno(0x85)
+ EIDRM = syscall.Errno(0x2b)
+ EILSEQ = syscall.Errno(0x54)
+ EINPROGRESS = syscall.Errno(0x73)
+- EINTR = syscall.Errno(0x4)
+- EINVAL = syscall.Errno(0x16)
+- EIO = syscall.Errno(0x5)
+ EISCONN = syscall.Errno(0x6a)
+- EISDIR = syscall.Errno(0x15)
+ EISNAM = syscall.Errno(0x78)
+ EKEYEXPIRED = syscall.Errno(0x7f)
+ EKEYREJECTED = syscall.Errno(0x81)
+@@ -1976,8 +587,6 @@ const (
+ ELNRNG = syscall.Errno(0x30)
+ ELOOP = syscall.Errno(0x28)
+ EMEDIUMTYPE = syscall.Errno(0x7c)
+- EMFILE = syscall.Errno(0x18)
+- EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x5a)
+ EMULTIHOP = syscall.Errno(0x48)
+ ENAMETOOLONG = syscall.Errno(0x24)
+@@ -1985,103 +594,70 @@ const (
+ ENETDOWN = syscall.Errno(0x64)
+ ENETRESET = syscall.Errno(0x66)
+ ENETUNREACH = syscall.Errno(0x65)
+- ENFILE = syscall.Errno(0x17)
+ ENOANO = syscall.Errno(0x37)
+ ENOBUFS = syscall.Errno(0x69)
+ ENOCSI = syscall.Errno(0x32)
+ ENODATA = syscall.Errno(0x3d)
+- ENODEV = syscall.Errno(0x13)
+- ENOENT = syscall.Errno(0x2)
+- ENOEXEC = syscall.Errno(0x8)
+ ENOKEY = syscall.Errno(0x7e)
+ ENOLCK = syscall.Errno(0x25)
+ ENOLINK = syscall.Errno(0x43)
+ ENOMEDIUM = syscall.Errno(0x7b)
+- ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x2a)
+ ENONET = syscall.Errno(0x40)
+ ENOPKG = syscall.Errno(0x41)
+ ENOPROTOOPT = syscall.Errno(0x5c)
+- ENOSPC = syscall.Errno(0x1c)
+ ENOSR = syscall.Errno(0x3f)
+ ENOSTR = syscall.Errno(0x3c)
+ ENOSYS = syscall.Errno(0x26)
+- ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x6b)
+- ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x27)
+ ENOTNAM = syscall.Errno(0x76)
+ ENOTRECOVERABLE = syscall.Errno(0x83)
+ ENOTSOCK = syscall.Errno(0x58)
+ ENOTSUP = syscall.Errno(0x5f)
+- ENOTTY = syscall.Errno(0x19)
+ ENOTUNIQ = syscall.Errno(0x4c)
+- ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x5f)
+ EOVERFLOW = syscall.Errno(0x4b)
+ EOWNERDEAD = syscall.Errno(0x82)
+- EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x60)
+- EPIPE = syscall.Errno(0x20)
+ EPROTO = syscall.Errno(0x47)
+ EPROTONOSUPPORT = syscall.Errno(0x5d)
+ EPROTOTYPE = syscall.Errno(0x5b)
+- ERANGE = syscall.Errno(0x22)
+ EREMCHG = syscall.Errno(0x4e)
+ EREMOTE = syscall.Errno(0x42)
+ EREMOTEIO = syscall.Errno(0x79)
+ ERESTART = syscall.Errno(0x55)
+ ERFKILL = syscall.Errno(0x84)
+- EROFS = syscall.Errno(0x1e)
+ ESHUTDOWN = syscall.Errno(0x6c)
+ ESOCKTNOSUPPORT = syscall.Errno(0x5e)
+- ESPIPE = syscall.Errno(0x1d)
+- ESRCH = syscall.Errno(0x3)
+ ESRMNT = syscall.Errno(0x45)
+ ESTALE = syscall.Errno(0x74)
+ ESTRPIPE = syscall.Errno(0x56)
+ ETIME = syscall.Errno(0x3e)
+ ETIMEDOUT = syscall.Errno(0x6e)
+ ETOOMANYREFS = syscall.Errno(0x6d)
+- ETXTBSY = syscall.Errno(0x1a)
+ EUCLEAN = syscall.Errno(0x75)
+ EUNATCH = syscall.Errno(0x31)
+ EUSERS = syscall.Errno(0x57)
+- EWOULDBLOCK = syscall.Errno(0xb)
+- EXDEV = syscall.Errno(0x12)
+ EXFULL = syscall.Errno(0x36)
+ )
+
+ // Signals
+ const (
+- SIGABRT = syscall.Signal(0x6)
+- SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0x7)
+ SIGCHLD = syscall.Signal(0x11)
+ SIGCLD = syscall.Signal(0x11)
+ SIGCONT = syscall.Signal(0x12)
+- SIGFPE = syscall.Signal(0x8)
+- SIGHUP = syscall.Signal(0x1)
+- SIGILL = syscall.Signal(0x4)
+- SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x1d)
+- SIGIOT = syscall.Signal(0x6)
+- SIGKILL = syscall.Signal(0x9)
+- SIGPIPE = syscall.Signal(0xd)
+ SIGPOLL = syscall.Signal(0x1d)
+ SIGPROF = syscall.Signal(0x1b)
+ SIGPWR = syscall.Signal(0x1e)
+- SIGQUIT = syscall.Signal(0x3)
+- SIGSEGV = syscall.Signal(0xb)
+ SIGSTKFLT = syscall.Signal(0x10)
+ SIGSTOP = syscall.Signal(0x13)
+ SIGSYS = syscall.Signal(0x1f)
+- SIGTERM = syscall.Signal(0xf)
+- SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x14)
+ SIGTTIN = syscall.Signal(0x15)
+ SIGTTOU = syscall.Signal(0x16)
+- SIGUNUSED = syscall.Signal(0x1f)
+ SIGURG = syscall.Signal(0x17)
+ SIGUSR1 = syscall.Signal(0xa)
+ SIGUSR2 = syscall.Signal(0xc)
+@@ -2092,172 +668,180 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "no such device or address",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource temporarily unavailable",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "device or resource busy",
+- 17: "file exists",
+- 18: "invalid cross-device link",
+- 19: "no such device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "numerical result out of range",
+- 35: "resource deadlock avoided",
+- 36: "file name too long",
+- 37: "no locks available",
+- 38: "function not implemented",
+- 39: "directory not empty",
+- 40: "too many levels of symbolic links",
+- 42: "no message of desired type",
+- 43: "identifier removed",
+- 44: "channel number out of range",
+- 45: "level 2 not synchronized",
+- 46: "level 3 halted",
+- 47: "level 3 reset",
+- 48: "link number out of range",
+- 49: "protocol driver not attached",
+- 50: "no CSI structure available",
+- 51: "level 2 halted",
+- 52: "invalid exchange",
+- 53: "invalid request descriptor",
+- 54: "exchange full",
+- 55: "no anode",
+- 56: "invalid request code",
+- 57: "invalid slot",
+- 58: "file locking deadlock error",
+- 59: "bad font file format",
+- 60: "device not a stream",
+- 61: "no data available",
+- 62: "timer expired",
+- 63: "out of streams resources",
+- 64: "machine is not on the network",
+- 65: "package not installed",
+- 66: "object is remote",
+- 67: "link has been severed",
+- 68: "advertise error",
+- 69: "srmount error",
+- 70: "communication error on send",
+- 71: "protocol error",
+- 72: "multihop attempted",
+- 73: "RFS specific error",
+- 74: "bad message",
+- 75: "value too large for defined data type",
+- 76: "name not unique on network",
+- 77: "file descriptor in bad state",
+- 78: "remote address changed",
+- 79: "can not access a needed shared library",
+- 80: "accessing a corrupted shared library",
+- 81: ".lib section in a.out corrupted",
+- 82: "attempting to link in too many shared libraries",
+- 83: "cannot exec a shared library directly",
+- 84: "invalid or incomplete multibyte or wide character",
+- 85: "interrupted system call should be restarted",
+- 86: "streams pipe error",
+- 87: "too many users",
+- 88: "socket operation on non-socket",
+- 89: "destination address required",
+- 90: "message too long",
+- 91: "protocol wrong type for socket",
+- 92: "protocol not available",
+- 93: "protocol not supported",
+- 94: "socket type not supported",
+- 95: "operation not supported",
+- 96: "protocol family not supported",
+- 97: "address family not supported by protocol",
+- 98: "address already in use",
+- 99: "cannot assign requested address",
+- 100: "network is down",
+- 101: "network is unreachable",
+- 102: "network dropped connection on reset",
+- 103: "software caused connection abort",
+- 104: "connection reset by peer",
+- 105: "no buffer space available",
+- 106: "transport endpoint is already connected",
+- 107: "transport endpoint is not connected",
+- 108: "cannot send after transport endpoint shutdown",
+- 109: "too many references: cannot splice",
+- 110: "connection timed out",
+- 111: "connection refused",
+- 112: "host is down",
+- 113: "no route to host",
+- 114: "operation already in progress",
+- 115: "operation now in progress",
+- 116: "stale file handle",
+- 117: "structure needs cleaning",
+- 118: "not a XENIX named type file",
+- 119: "no XENIX semaphores available",
+- 120: "is a named type file",
+- 121: "remote I/O error",
+- 122: "disk quota exceeded",
+- 123: "no medium found",
+- 124: "wrong medium type",
+- 125: "operation canceled",
+- 126: "required key not available",
+- 127: "key has expired",
+- 128: "key has been revoked",
+- 129: "key was rejected by service",
+- 130: "owner died",
+- 131: "state not recoverable",
+- 132: "operation not possible due to RF-kill",
+- 133: "memory page has hardware error",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "no such device or address"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EAGAIN", "resource temporarily unavailable"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device or resource busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "invalid cross-device link"},
++ {19, "ENODEV", "no such device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "numerical result out of range"},
++ {35, "EDEADLK", "resource deadlock avoided"},
++ {36, "ENAMETOOLONG", "file name too long"},
++ {37, "ENOLCK", "no locks available"},
++ {38, "ENOSYS", "function not implemented"},
++ {39, "ENOTEMPTY", "directory not empty"},
++ {40, "ELOOP", "too many levels of symbolic links"},
++ {42, "ENOMSG", "no message of desired type"},
++ {43, "EIDRM", "identifier removed"},
++ {44, "ECHRNG", "channel number out of range"},
++ {45, "EL2NSYNC", "level 2 not synchronized"},
++ {46, "EL3HLT", "level 3 halted"},
++ {47, "EL3RST", "level 3 reset"},
++ {48, "ELNRNG", "link number out of range"},
++ {49, "EUNATCH", "protocol driver not attached"},
++ {50, "ENOCSI", "no CSI structure available"},
++ {51, "EL2HLT", "level 2 halted"},
++ {52, "EBADE", "invalid exchange"},
++ {53, "EBADR", "invalid request descriptor"},
++ {54, "EXFULL", "exchange full"},
++ {55, "ENOANO", "no anode"},
++ {56, "EBADRQC", "invalid request code"},
++ {57, "EBADSLT", "invalid slot"},
++ {58, "EDEADLOCK", "file locking deadlock error"},
++ {59, "EBFONT", "bad font file format"},
++ {60, "ENOSTR", "device not a stream"},
++ {61, "ENODATA", "no data available"},
++ {62, "ETIME", "timer expired"},
++ {63, "ENOSR", "out of streams resources"},
++ {64, "ENONET", "machine is not on the network"},
++ {65, "ENOPKG", "package not installed"},
++ {66, "EREMOTE", "object is remote"},
++ {67, "ENOLINK", "link has been severed"},
++ {68, "EADV", "advertise error"},
++ {69, "ESRMNT", "srmount error"},
++ {70, "ECOMM", "communication error on send"},
++ {71, "EPROTO", "protocol error"},
++ {72, "EMULTIHOP", "multihop attempted"},
++ {73, "EDOTDOT", "RFS specific error"},
++ {74, "EBADMSG", "bad message"},
++ {75, "EOVERFLOW", "value too large for defined data type"},
++ {76, "ENOTUNIQ", "name not unique on network"},
++ {77, "EBADFD", "file descriptor in bad state"},
++ {78, "EREMCHG", "remote address changed"},
++ {79, "ELIBACC", "can not access a needed shared library"},
++ {80, "ELIBBAD", "accessing a corrupted shared library"},
++ {81, "ELIBSCN", ".lib section in a.out corrupted"},
++ {82, "ELIBMAX", "attempting to link in too many shared libraries"},
++ {83, "ELIBEXEC", "cannot exec a shared library directly"},
++ {84, "EILSEQ", "invalid or incomplete multibyte or wide character"},
++ {85, "ERESTART", "interrupted system call should be restarted"},
++ {86, "ESTRPIPE", "streams pipe error"},
++ {87, "EUSERS", "too many users"},
++ {88, "ENOTSOCK", "socket operation on non-socket"},
++ {89, "EDESTADDRREQ", "destination address required"},
++ {90, "EMSGSIZE", "message too long"},
++ {91, "EPROTOTYPE", "protocol wrong type for socket"},
++ {92, "ENOPROTOOPT", "protocol not available"},
++ {93, "EPROTONOSUPPORT", "protocol not supported"},
++ {94, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {95, "ENOTSUP", "operation not supported"},
++ {96, "EPFNOSUPPORT", "protocol family not supported"},
++ {97, "EAFNOSUPPORT", "address family not supported by protocol"},
++ {98, "EADDRINUSE", "address already in use"},
++ {99, "EADDRNOTAVAIL", "cannot assign requested address"},
++ {100, "ENETDOWN", "network is down"},
++ {101, "ENETUNREACH", "network is unreachable"},
++ {102, "ENETRESET", "network dropped connection on reset"},
++ {103, "ECONNABORTED", "software caused connection abort"},
++ {104, "ECONNRESET", "connection reset by peer"},
++ {105, "ENOBUFS", "no buffer space available"},
++ {106, "EISCONN", "transport endpoint is already connected"},
++ {107, "ENOTCONN", "transport endpoint is not connected"},
++ {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"},
++ {109, "ETOOMANYREFS", "too many references: cannot splice"},
++ {110, "ETIMEDOUT", "connection timed out"},
++ {111, "ECONNREFUSED", "connection refused"},
++ {112, "EHOSTDOWN", "host is down"},
++ {113, "EHOSTUNREACH", "no route to host"},
++ {114, "EALREADY", "operation already in progress"},
++ {115, "EINPROGRESS", "operation now in progress"},
++ {116, "ESTALE", "stale file handle"},
++ {117, "EUCLEAN", "structure needs cleaning"},
++ {118, "ENOTNAM", "not a XENIX named type file"},
++ {119, "ENAVAIL", "no XENIX semaphores available"},
++ {120, "EISNAM", "is a named type file"},
++ {121, "EREMOTEIO", "remote I/O error"},
++ {122, "EDQUOT", "disk quota exceeded"},
++ {123, "ENOMEDIUM", "no medium found"},
++ {124, "EMEDIUMTYPE", "wrong medium type"},
++ {125, "ECANCELED", "operation canceled"},
++ {126, "ENOKEY", "required key not available"},
++ {127, "EKEYEXPIRED", "key has expired"},
++ {128, "EKEYREVOKED", "key has been revoked"},
++ {129, "EKEYREJECTED", "key was rejected by service"},
++ {130, "EOWNERDEAD", "owner died"},
++ {131, "ENOTRECOVERABLE", "state not recoverable"},
++ {132, "ERFKILL", "operation not possible due to RF-kill"},
++ {133, "EHWPOISON", "memory page has hardware error"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/breakpoint trap",
+- 6: "aborted",
+- 7: "bus error",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "user defined signal 1",
+- 11: "segmentation fault",
+- 12: "user defined signal 2",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "stack fault",
+- 17: "child exited",
+- 18: "continued",
+- 19: "stopped (signal)",
+- 20: "stopped",
+- 21: "stopped (tty input)",
+- 22: "stopped (tty output)",
+- 23: "urgent I/O condition",
+- 24: "CPU time limit exceeded",
+- 25: "file size limit exceeded",
+- 26: "virtual timer expired",
+- 27: "profiling timer expired",
+- 28: "window changed",
+- 29: "I/O possible",
+- 30: "power failure",
+- 31: "bad system call",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/breakpoint trap"},
++ {6, "SIGABRT", "aborted"},
++ {7, "SIGBUS", "bus error"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGUSR1", "user defined signal 1"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGUSR2", "user defined signal 2"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGSTKFLT", "stack fault"},
++ {17, "SIGCHLD", "child exited"},
++ {18, "SIGCONT", "continued"},
++ {19, "SIGSTOP", "stopped (signal)"},
++ {20, "SIGTSTP", "stopped"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGURG", "urgent I/O condition"},
++ {24, "SIGXCPU", "CPU time limit exceeded"},
++ {25, "SIGXFSZ", "file size limit exceeded"},
++ {26, "SIGVTALRM", "virtual timer expired"},
++ {27, "SIGPROF", "profiling timer expired"},
++ {28, "SIGWINCH", "window changed"},
++ {29, "SIGIO", "I/O possible"},
++ {30, "SIGPWR", "power failure"},
++ {31, "SIGSYS", "bad system call"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
+index ad29c3d3..4231b20b 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
+@@ -3,7 +3,7 @@
+
+ // +build ppc64le,linux
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
+
+ package unix
+@@ -11,1930 +11,549 @@ package unix
+ import "syscall"
+
+ const (
+- AF_ALG = 0x26
+- AF_APPLETALK = 0x5
+- AF_ASH = 0x12
+- AF_ATMPVC = 0x8
+- AF_ATMSVC = 0x14
+- AF_AX25 = 0x3
+- AF_BLUETOOTH = 0x1f
+- AF_BRIDGE = 0x7
+- AF_CAIF = 0x25
+- AF_CAN = 0x1d
+- AF_DECnet = 0xc
+- AF_ECONET = 0x13
+- AF_FILE = 0x1
+- AF_IB = 0x1b
+- AF_IEEE802154 = 0x24
+- AF_INET = 0x2
+- AF_INET6 = 0xa
+- AF_IPX = 0x4
+- AF_IRDA = 0x17
+- AF_ISDN = 0x22
+- AF_IUCV = 0x20
+- AF_KCM = 0x29
+- AF_KEY = 0xf
+- AF_LLC = 0x1a
+- AF_LOCAL = 0x1
+- AF_MAX = 0x2b
+- AF_MPLS = 0x1c
+- AF_NETBEUI = 0xd
+- AF_NETLINK = 0x10
+- AF_NETROM = 0x6
+- AF_NFC = 0x27
+- AF_PACKET = 0x11
+- AF_PHONET = 0x23
+- AF_PPPOX = 0x18
+- AF_QIPCRTR = 0x2a
+- AF_RDS = 0x15
+- AF_ROSE = 0xb
+- AF_ROUTE = 0x10
+- AF_RXRPC = 0x21
+- AF_SECURITY = 0xe
+- AF_SNA = 0x16
+- AF_TIPC = 0x1e
+- AF_UNIX = 0x1
+- AF_UNSPEC = 0x0
+- AF_VSOCK = 0x28
+- AF_WANPIPE = 0x19
+- AF_X25 = 0x9
+- ALG_OP_DECRYPT = 0x0
+- ALG_OP_ENCRYPT = 0x1
+- ALG_SET_AEAD_ASSOCLEN = 0x4
+- ALG_SET_AEAD_AUTHSIZE = 0x5
+- ALG_SET_IV = 0x2
+- ALG_SET_KEY = 0x1
+- ALG_SET_OP = 0x3
+- ARPHRD_6LOWPAN = 0x339
+- ARPHRD_ADAPT = 0x108
+- ARPHRD_APPLETLK = 0x8
+- ARPHRD_ARCNET = 0x7
+- ARPHRD_ASH = 0x30d
+- ARPHRD_ATM = 0x13
+- ARPHRD_AX25 = 0x3
+- ARPHRD_BIF = 0x307
+- ARPHRD_CAIF = 0x336
+- ARPHRD_CAN = 0x118
+- ARPHRD_CHAOS = 0x5
+- ARPHRD_CISCO = 0x201
+- ARPHRD_CSLIP = 0x101
+- ARPHRD_CSLIP6 = 0x103
+- ARPHRD_DDCMP = 0x205
+- ARPHRD_DLCI = 0xf
+- ARPHRD_ECONET = 0x30e
+- ARPHRD_EETHER = 0x2
+- ARPHRD_ETHER = 0x1
+- ARPHRD_EUI64 = 0x1b
+- ARPHRD_FCAL = 0x311
+- ARPHRD_FCFABRIC = 0x313
+- ARPHRD_FCPL = 0x312
+- ARPHRD_FCPP = 0x310
+- ARPHRD_FDDI = 0x306
+- ARPHRD_FRAD = 0x302
+- ARPHRD_HDLC = 0x201
+- ARPHRD_HIPPI = 0x30c
+- ARPHRD_HWX25 = 0x110
+- ARPHRD_IEEE1394 = 0x18
+- ARPHRD_IEEE802 = 0x6
+- ARPHRD_IEEE80211 = 0x321
+- ARPHRD_IEEE80211_PRISM = 0x322
+- ARPHRD_IEEE80211_RADIOTAP = 0x323
+- ARPHRD_IEEE802154 = 0x324
+- ARPHRD_IEEE802154_MONITOR = 0x325
+- ARPHRD_IEEE802_TR = 0x320
+- ARPHRD_INFINIBAND = 0x20
+- ARPHRD_IP6GRE = 0x337
+- ARPHRD_IPDDP = 0x309
+- ARPHRD_IPGRE = 0x30a
+- ARPHRD_IRDA = 0x30f
+- ARPHRD_LAPB = 0x204
+- ARPHRD_LOCALTLK = 0x305
+- ARPHRD_LOOPBACK = 0x304
+- ARPHRD_METRICOM = 0x17
+- ARPHRD_NETLINK = 0x338
+- ARPHRD_NETROM = 0x0
+- ARPHRD_NONE = 0xfffe
+- ARPHRD_PHONET = 0x334
+- ARPHRD_PHONET_PIPE = 0x335
+- ARPHRD_PIMREG = 0x30b
+- ARPHRD_PPP = 0x200
+- ARPHRD_PRONET = 0x4
+- ARPHRD_RAWHDLC = 0x206
+- ARPHRD_ROSE = 0x10e
+- ARPHRD_RSRVD = 0x104
+- ARPHRD_SIT = 0x308
+- ARPHRD_SKIP = 0x303
+- ARPHRD_SLIP = 0x100
+- ARPHRD_SLIP6 = 0x102
+- ARPHRD_TUNNEL = 0x300
+- ARPHRD_TUNNEL6 = 0x301
+- ARPHRD_VOID = 0xffff
+- ARPHRD_X25 = 0x10f
+- B0 = 0x0
+- B1000000 = 0x17
+- B110 = 0x3
+- B115200 = 0x11
+- B1152000 = 0x18
+- B1200 = 0x9
+- B134 = 0x4
+- B150 = 0x5
+- B1500000 = 0x19
+- B1800 = 0xa
+- B19200 = 0xe
+- B200 = 0x6
+- B2000000 = 0x1a
+- B230400 = 0x12
+- B2400 = 0xb
+- B2500000 = 0x1b
+- B300 = 0x7
+- B3000000 = 0x1c
+- B3500000 = 0x1d
+- B38400 = 0xf
+- B4000000 = 0x1e
+- B460800 = 0x13
+- B4800 = 0xc
+- B50 = 0x1
+- B500000 = 0x14
+- B57600 = 0x10
+- B576000 = 0x15
+- B600 = 0x8
+- B75 = 0x2
+- B921600 = 0x16
+- B9600 = 0xd
+- BLKBSZGET = 0x40081270
+- BLKBSZSET = 0x80081271
+- BLKFLSBUF = 0x20001261
+- BLKFRAGET = 0x20001265
+- BLKFRASET = 0x20001264
+- BLKGETSIZE = 0x20001260
+- BLKGETSIZE64 = 0x40081272
+- BLKPBSZGET = 0x2000127b
+- BLKRAGET = 0x20001263
+- BLKRASET = 0x20001262
+- BLKROGET = 0x2000125e
+- BLKROSET = 0x2000125d
+- BLKRRPART = 0x2000125f
+- BLKSECTGET = 0x20001267
+- BLKSECTSET = 0x20001266
+- BLKSSZGET = 0x20001268
+- BOTHER = 0x1f
+- BPF_A = 0x10
+- BPF_ABS = 0x20
+- BPF_ADD = 0x0
+- BPF_ALU = 0x4
+- BPF_AND = 0x50
+- BPF_B = 0x10
+- BPF_DIV = 0x30
+- BPF_H = 0x8
+- BPF_IMM = 0x0
+- BPF_IND = 0x40
+- BPF_JA = 0x0
+- BPF_JEQ = 0x10
+- BPF_JGE = 0x30
+- BPF_JGT = 0x20
+- BPF_JMP = 0x5
+- BPF_JSET = 0x40
+- BPF_K = 0x0
+- BPF_LD = 0x0
+- BPF_LDX = 0x1
+- BPF_LEN = 0x80
+- BPF_LL_OFF = -0x200000
+- BPF_LSH = 0x60
+- BPF_MAJOR_VERSION = 0x1
+- BPF_MAXINSNS = 0x1000
+- BPF_MEM = 0x60
+- BPF_MEMWORDS = 0x10
+- BPF_MINOR_VERSION = 0x1
+- BPF_MISC = 0x7
+- BPF_MOD = 0x90
+- BPF_MSH = 0xa0
+- BPF_MUL = 0x20
+- BPF_NEG = 0x80
+- BPF_NET_OFF = -0x100000
+- BPF_OR = 0x40
+- BPF_RET = 0x6
+- BPF_RSH = 0x70
+- BPF_ST = 0x2
+- BPF_STX = 0x3
+- BPF_SUB = 0x10
+- BPF_TAX = 0x0
+- BPF_TXA = 0x80
+- BPF_W = 0x0
+- BPF_X = 0x8
+- BPF_XOR = 0xa0
+- BRKINT = 0x2
+- BS0 = 0x0
+- BS1 = 0x8000
+- BSDLY = 0x8000
+- CAN_BCM = 0x2
+- CAN_EFF_FLAG = 0x80000000
+- CAN_EFF_ID_BITS = 0x1d
+- CAN_EFF_MASK = 0x1fffffff
+- CAN_ERR_FLAG = 0x20000000
+- CAN_ERR_MASK = 0x1fffffff
+- CAN_INV_FILTER = 0x20000000
+- CAN_ISOTP = 0x6
+- CAN_MAX_DLC = 0x8
+- CAN_MAX_DLEN = 0x8
+- CAN_MCNET = 0x5
+- CAN_MTU = 0x10
+- CAN_NPROTO = 0x7
+- CAN_RAW = 0x1
+- CAN_RAW_FILTER_MAX = 0x200
+- CAN_RTR_FLAG = 0x40000000
+- CAN_SFF_ID_BITS = 0xb
+- CAN_SFF_MASK = 0x7ff
+- CAN_TP16 = 0x3
+- CAN_TP20 = 0x4
+- CBAUD = 0xff
+- CBAUDEX = 0x0
+- CFLUSH = 0xf
+- CIBAUD = 0xff0000
+- CLOCAL = 0x8000
+- CLOCK_BOOTTIME = 0x7
+- CLOCK_BOOTTIME_ALARM = 0x9
+- CLOCK_DEFAULT = 0x0
+- CLOCK_EXT = 0x1
+- CLOCK_INT = 0x2
+- CLOCK_MONOTONIC = 0x1
+- CLOCK_MONOTONIC_COARSE = 0x6
+- CLOCK_MONOTONIC_RAW = 0x4
+- CLOCK_PROCESS_CPUTIME_ID = 0x2
+- CLOCK_REALTIME = 0x0
+- CLOCK_REALTIME_ALARM = 0x8
+- CLOCK_REALTIME_COARSE = 0x5
+- CLOCK_TAI = 0xb
+- CLOCK_THREAD_CPUTIME_ID = 0x3
+- CLOCK_TXFROMRX = 0x4
+- CLOCK_TXINT = 0x3
+- CLONE_CHILD_CLEARTID = 0x200000
+- CLONE_CHILD_SETTID = 0x1000000
+- CLONE_DETACHED = 0x400000
+- CLONE_FILES = 0x400
+- CLONE_FS = 0x200
+- CLONE_IO = 0x80000000
+- CLONE_NEWCGROUP = 0x2000000
+- CLONE_NEWIPC = 0x8000000
+- CLONE_NEWNET = 0x40000000
+- CLONE_NEWNS = 0x20000
+- CLONE_NEWPID = 0x20000000
+- CLONE_NEWUSER = 0x10000000
+- CLONE_NEWUTS = 0x4000000
+- CLONE_PARENT = 0x8000
+- CLONE_PARENT_SETTID = 0x100000
+- CLONE_PTRACE = 0x2000
+- CLONE_SETTLS = 0x80000
+- CLONE_SIGHAND = 0x800
+- CLONE_SYSVSEM = 0x40000
+- CLONE_THREAD = 0x10000
+- CLONE_UNTRACED = 0x800000
+- CLONE_VFORK = 0x4000
+- CLONE_VM = 0x100
+- CMSPAR = 0x40000000
+- CR0 = 0x0
+- CR1 = 0x1000
+- CR2 = 0x2000
+- CR3 = 0x3000
+- CRDLY = 0x3000
+- CREAD = 0x800
+- CRTSCTS = 0x80000000
+- CS5 = 0x0
+- CS6 = 0x100
+- CS7 = 0x200
+- CS8 = 0x300
+- CSIGNAL = 0xff
+- CSIZE = 0x300
+- CSTART = 0x11
+- CSTATUS = 0x0
+- CSTOP = 0x13
+- CSTOPB = 0x400
+- CSUSP = 0x1a
+- DT_BLK = 0x6
+- DT_CHR = 0x2
+- DT_DIR = 0x4
+- DT_FIFO = 0x1
+- DT_LNK = 0xa
+- DT_REG = 0x8
+- DT_SOCK = 0xc
+- DT_UNKNOWN = 0x0
+- DT_WHT = 0xe
+- ECHO = 0x8
+- ECHOCTL = 0x40
+- ECHOE = 0x2
+- ECHOK = 0x4
+- ECHOKE = 0x1
+- ECHONL = 0x10
+- ECHOPRT = 0x20
+- EFD_CLOEXEC = 0x80000
+- EFD_NONBLOCK = 0x800
+- EFD_SEMAPHORE = 0x1
+- ENCODING_DEFAULT = 0x0
+- ENCODING_FM_MARK = 0x3
+- ENCODING_FM_SPACE = 0x4
+- ENCODING_MANCHESTER = 0x5
+- ENCODING_NRZ = 0x1
+- ENCODING_NRZI = 0x2
+- EPOLLERR = 0x8
+- EPOLLET = 0x80000000
+- EPOLLEXCLUSIVE = 0x10000000
+- EPOLLHUP = 0x10
+- EPOLLIN = 0x1
+- EPOLLMSG = 0x400
+- EPOLLONESHOT = 0x40000000
+- EPOLLOUT = 0x4
+- EPOLLPRI = 0x2
+- EPOLLRDBAND = 0x80
+- EPOLLRDHUP = 0x2000
+- EPOLLRDNORM = 0x40
+- EPOLLWAKEUP = 0x20000000
+- EPOLLWRBAND = 0x200
+- EPOLLWRNORM = 0x100
+- EPOLL_CLOEXEC = 0x80000
+- EPOLL_CTL_ADD = 0x1
+- EPOLL_CTL_DEL = 0x2
+- EPOLL_CTL_MOD = 0x3
+- ETH_P_1588 = 0x88f7
+- ETH_P_8021AD = 0x88a8
+- ETH_P_8021AH = 0x88e7
+- ETH_P_8021Q = 0x8100
+- ETH_P_80221 = 0x8917
+- ETH_P_802_2 = 0x4
+- ETH_P_802_3 = 0x1
+- ETH_P_802_3_MIN = 0x600
+- ETH_P_802_EX1 = 0x88b5
+- ETH_P_AARP = 0x80f3
+- ETH_P_AF_IUCV = 0xfbfb
+- ETH_P_ALL = 0x3
+- ETH_P_AOE = 0x88a2
+- ETH_P_ARCNET = 0x1a
+- ETH_P_ARP = 0x806
+- ETH_P_ATALK = 0x809b
+- ETH_P_ATMFATE = 0x8884
+- ETH_P_ATMMPOA = 0x884c
+- ETH_P_AX25 = 0x2
+- ETH_P_BATMAN = 0x4305
+- ETH_P_BPQ = 0x8ff
+- ETH_P_CAIF = 0xf7
+- ETH_P_CAN = 0xc
+- ETH_P_CANFD = 0xd
+- ETH_P_CONTROL = 0x16
+- ETH_P_CUST = 0x6006
+- ETH_P_DDCMP = 0x6
+- ETH_P_DEC = 0x6000
+- ETH_P_DIAG = 0x6005
+- ETH_P_DNA_DL = 0x6001
+- ETH_P_DNA_RC = 0x6002
+- ETH_P_DNA_RT = 0x6003
+- ETH_P_DSA = 0x1b
+- ETH_P_ECONET = 0x18
+- ETH_P_EDSA = 0xdada
+- ETH_P_FCOE = 0x8906
+- ETH_P_FIP = 0x8914
+- ETH_P_HDLC = 0x19
+- ETH_P_HSR = 0x892f
+- ETH_P_IEEE802154 = 0xf6
+- ETH_P_IEEEPUP = 0xa00
+- ETH_P_IEEEPUPAT = 0xa01
+- ETH_P_IP = 0x800
+- ETH_P_IPV6 = 0x86dd
+- ETH_P_IPX = 0x8137
+- ETH_P_IRDA = 0x17
+- ETH_P_LAT = 0x6004
+- ETH_P_LINK_CTL = 0x886c
+- ETH_P_LOCALTALK = 0x9
+- ETH_P_LOOP = 0x60
+- ETH_P_LOOPBACK = 0x9000
+- ETH_P_MACSEC = 0x88e5
+- ETH_P_MOBITEX = 0x15
+- ETH_P_MPLS_MC = 0x8848
+- ETH_P_MPLS_UC = 0x8847
+- ETH_P_MVRP = 0x88f5
+- ETH_P_NCSI = 0x88f8
+- ETH_P_PAE = 0x888e
+- ETH_P_PAUSE = 0x8808
+- ETH_P_PHONET = 0xf5
+- ETH_P_PPPTALK = 0x10
+- ETH_P_PPP_DISC = 0x8863
+- ETH_P_PPP_MP = 0x8
+- ETH_P_PPP_SES = 0x8864
+- ETH_P_PRP = 0x88fb
+- ETH_P_PUP = 0x200
+- ETH_P_PUPAT = 0x201
+- ETH_P_QINQ1 = 0x9100
+- ETH_P_QINQ2 = 0x9200
+- ETH_P_QINQ3 = 0x9300
+- ETH_P_RARP = 0x8035
+- ETH_P_SCA = 0x6007
+- ETH_P_SLOW = 0x8809
+- ETH_P_SNAP = 0x5
+- ETH_P_TDLS = 0x890d
+- ETH_P_TEB = 0x6558
+- ETH_P_TIPC = 0x88ca
+- ETH_P_TRAILER = 0x1c
+- ETH_P_TR_802_2 = 0x11
+- ETH_P_TSN = 0x22f0
+- ETH_P_WAN_PPP = 0x7
+- ETH_P_WCCP = 0x883e
+- ETH_P_X25 = 0x805
+- ETH_P_XDSA = 0xf8
+- EXTA = 0xe
+- EXTB = 0xf
+- EXTPROC = 0x10000000
+- FALLOC_FL_COLLAPSE_RANGE = 0x8
+- FALLOC_FL_INSERT_RANGE = 0x20
+- FALLOC_FL_KEEP_SIZE = 0x1
+- FALLOC_FL_NO_HIDE_STALE = 0x4
+- FALLOC_FL_PUNCH_HOLE = 0x2
+- FALLOC_FL_UNSHARE_RANGE = 0x40
+- FALLOC_FL_ZERO_RANGE = 0x10
+- FD_CLOEXEC = 0x1
+- FD_SETSIZE = 0x400
+- FF0 = 0x0
+- FF1 = 0x4000
+- FFDLY = 0x4000
+- FLUSHO = 0x800000
+- FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
+- FS_ENCRYPTION_MODE_AES_256_CTS = 0x4
+- FS_ENCRYPTION_MODE_AES_256_GCM = 0x2
+- FS_ENCRYPTION_MODE_AES_256_XTS = 0x1
+- FS_ENCRYPTION_MODE_INVALID = 0x0
+- FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615
+- FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614
+- FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613
+- FS_KEY_DESCRIPTOR_SIZE = 0x8
+- FS_KEY_DESC_PREFIX = "fscrypt:"
+- FS_KEY_DESC_PREFIX_SIZE = 0x8
+- FS_MAX_KEY_SIZE = 0x40
+- FS_POLICY_FLAGS_PAD_16 = 0x2
+- FS_POLICY_FLAGS_PAD_32 = 0x3
+- FS_POLICY_FLAGS_PAD_4 = 0x0
+- FS_POLICY_FLAGS_PAD_8 = 0x1
+- FS_POLICY_FLAGS_PAD_MASK = 0x3
+- FS_POLICY_FLAGS_VALID = 0x3
+- F_DUPFD = 0x0
+- F_DUPFD_CLOEXEC = 0x406
+- F_EXLCK = 0x4
+- F_GETFD = 0x1
+- F_GETFL = 0x3
+- F_GETLEASE = 0x401
+- F_GETLK = 0x5
+- F_GETLK64 = 0xc
+- F_GETOWN = 0x9
+- F_GETOWN_EX = 0x10
+- F_GETPIPE_SZ = 0x408
+- F_GETSIG = 0xb
+- F_LOCK = 0x1
+- F_NOTIFY = 0x402
+- F_OFD_GETLK = 0x24
+- F_OFD_SETLK = 0x25
+- F_OFD_SETLKW = 0x26
+- F_OK = 0x0
+- F_RDLCK = 0x0
+- F_SETFD = 0x2
+- F_SETFL = 0x4
+- F_SETLEASE = 0x400
+- F_SETLK = 0x6
+- F_SETLK64 = 0xd
+- F_SETLKW = 0x7
+- F_SETLKW64 = 0xe
+- F_SETOWN = 0x8
+- F_SETOWN_EX = 0xf
+- F_SETPIPE_SZ = 0x407
+- F_SETSIG = 0xa
+- F_SHLCK = 0x8
+- F_TEST = 0x3
+- F_TLOCK = 0x2
+- F_ULOCK = 0x0
+- F_UNLCK = 0x2
+- F_WRLCK = 0x1
+- GENL_ADMIN_PERM = 0x1
+- GENL_CMD_CAP_DO = 0x2
+- GENL_CMD_CAP_DUMP = 0x4
+- GENL_CMD_CAP_HASPOL = 0x8
+- GENL_HDRLEN = 0x4
+- GENL_ID_CTRL = 0x10
+- GENL_ID_PMCRAID = 0x12
+- GENL_ID_VFS_DQUOT = 0x11
+- GENL_MAX_ID = 0x3ff
+- GENL_MIN_ID = 0x10
+- GENL_NAMSIZ = 0x10
+- GENL_START_ALLOC = 0x13
+- GENL_UNS_ADMIN_PERM = 0x10
+- GRND_NONBLOCK = 0x1
+- GRND_RANDOM = 0x2
+- HUPCL = 0x4000
+- IBSHIFT = 0x10
+- ICANON = 0x100
+- ICMPV6_FILTER = 0x1
+- ICRNL = 0x100
+- IEXTEN = 0x400
+- IFA_F_DADFAILED = 0x8
+- IFA_F_DEPRECATED = 0x20
+- IFA_F_HOMEADDRESS = 0x10
+- IFA_F_MANAGETEMPADDR = 0x100
+- IFA_F_MCAUTOJOIN = 0x400
+- IFA_F_NODAD = 0x2
+- IFA_F_NOPREFIXROUTE = 0x200
+- IFA_F_OPTIMISTIC = 0x4
+- IFA_F_PERMANENT = 0x80
+- IFA_F_SECONDARY = 0x1
+- IFA_F_STABLE_PRIVACY = 0x800
+- IFA_F_TEMPORARY = 0x1
+- IFA_F_TENTATIVE = 0x40
+- IFA_MAX = 0x8
+- IFF_ALLMULTI = 0x200
+- IFF_ATTACH_QUEUE = 0x200
+- IFF_AUTOMEDIA = 0x4000
+- IFF_BROADCAST = 0x2
+- IFF_DEBUG = 0x4
+- IFF_DETACH_QUEUE = 0x400
+- IFF_DORMANT = 0x20000
+- IFF_DYNAMIC = 0x8000
+- IFF_ECHO = 0x40000
+- IFF_LOOPBACK = 0x8
+- IFF_LOWER_UP = 0x10000
+- IFF_MASTER = 0x400
+- IFF_MULTICAST = 0x1000
+- IFF_MULTI_QUEUE = 0x100
+- IFF_NOARP = 0x80
+- IFF_NOFILTER = 0x1000
+- IFF_NOTRAILERS = 0x20
+- IFF_NO_PI = 0x1000
+- IFF_ONE_QUEUE = 0x2000
+- IFF_PERSIST = 0x800
+- IFF_POINTOPOINT = 0x10
+- IFF_PORTSEL = 0x2000
+- IFF_PROMISC = 0x100
+- IFF_RUNNING = 0x40
+- IFF_SLAVE = 0x800
+- IFF_TAP = 0x2
+- IFF_TUN = 0x1
+- IFF_TUN_EXCL = 0x8000
+- IFF_UP = 0x1
+- IFF_VNET_HDR = 0x4000
+- IFF_VOLATILE = 0x70c5a
+- IFNAMSIZ = 0x10
+- IGNBRK = 0x1
+- IGNCR = 0x80
+- IGNPAR = 0x4
+- IMAXBEL = 0x2000
+- INLCR = 0x40
+- INPCK = 0x10
+- IN_ACCESS = 0x1
+- IN_ALL_EVENTS = 0xfff
+- IN_ATTRIB = 0x4
+- IN_CLASSA_HOST = 0xffffff
+- IN_CLASSA_MAX = 0x80
+- IN_CLASSA_NET = 0xff000000
+- IN_CLASSA_NSHIFT = 0x18
+- IN_CLASSB_HOST = 0xffff
+- IN_CLASSB_MAX = 0x10000
+- IN_CLASSB_NET = 0xffff0000
+- IN_CLASSB_NSHIFT = 0x10
+- IN_CLASSC_HOST = 0xff
+- IN_CLASSC_NET = 0xffffff00
+- IN_CLASSC_NSHIFT = 0x8
+- IN_CLOEXEC = 0x80000
+- IN_CLOSE = 0x18
+- IN_CLOSE_NOWRITE = 0x10
+- IN_CLOSE_WRITE = 0x8
+- IN_CREATE = 0x100
+- IN_DELETE = 0x200
+- IN_DELETE_SELF = 0x400
+- IN_DONT_FOLLOW = 0x2000000
+- IN_EXCL_UNLINK = 0x4000000
+- IN_IGNORED = 0x8000
+- IN_ISDIR = 0x40000000
+- IN_LOOPBACKNET = 0x7f
+- IN_MASK_ADD = 0x20000000
+- IN_MODIFY = 0x2
+- IN_MOVE = 0xc0
+- IN_MOVED_FROM = 0x40
+- IN_MOVED_TO = 0x80
+- IN_MOVE_SELF = 0x800
+- IN_NONBLOCK = 0x800
+- IN_ONESHOT = 0x80000000
+- IN_ONLYDIR = 0x1000000
+- IN_OPEN = 0x20
+- IN_Q_OVERFLOW = 0x4000
+- IN_UNMOUNT = 0x2000
+- IPPROTO_AH = 0x33
+- IPPROTO_BEETPH = 0x5e
+- IPPROTO_COMP = 0x6c
+- IPPROTO_DCCP = 0x21
+- IPPROTO_DSTOPTS = 0x3c
+- IPPROTO_EGP = 0x8
+- IPPROTO_ENCAP = 0x62
+- IPPROTO_ESP = 0x32
+- IPPROTO_FRAGMENT = 0x2c
+- IPPROTO_GRE = 0x2f
+- IPPROTO_HOPOPTS = 0x0
+- IPPROTO_ICMP = 0x1
+- IPPROTO_ICMPV6 = 0x3a
+- IPPROTO_IDP = 0x16
+- IPPROTO_IGMP = 0x2
+- IPPROTO_IP = 0x0
+- IPPROTO_IPIP = 0x4
+- IPPROTO_IPV6 = 0x29
+- IPPROTO_MH = 0x87
+- IPPROTO_MPLS = 0x89
+- IPPROTO_MTP = 0x5c
+- IPPROTO_NONE = 0x3b
+- IPPROTO_PIM = 0x67
+- IPPROTO_PUP = 0xc
+- IPPROTO_RAW = 0xff
+- IPPROTO_ROUTING = 0x2b
+- IPPROTO_RSVP = 0x2e
+- IPPROTO_SCTP = 0x84
+- IPPROTO_TCP = 0x6
+- IPPROTO_TP = 0x1d
+- IPPROTO_UDP = 0x11
+- IPPROTO_UDPLITE = 0x88
+- IPV6_2292DSTOPTS = 0x4
+- IPV6_2292HOPLIMIT = 0x8
+- IPV6_2292HOPOPTS = 0x3
+- IPV6_2292PKTINFO = 0x2
+- IPV6_2292PKTOPTIONS = 0x6
+- IPV6_2292RTHDR = 0x5
+- IPV6_ADDRFORM = 0x1
+- IPV6_ADD_MEMBERSHIP = 0x14
+- IPV6_AUTHHDR = 0xa
+- IPV6_CHECKSUM = 0x7
+- IPV6_DONTFRAG = 0x3e
+- IPV6_DROP_MEMBERSHIP = 0x15
+- IPV6_DSTOPTS = 0x3b
+- IPV6_HDRINCL = 0x24
+- IPV6_HOPLIMIT = 0x34
+- IPV6_HOPOPTS = 0x36
+- IPV6_IPSEC_POLICY = 0x22
+- IPV6_JOIN_ANYCAST = 0x1b
+- IPV6_JOIN_GROUP = 0x14
+- IPV6_LEAVE_ANYCAST = 0x1c
+- IPV6_LEAVE_GROUP = 0x15
+- IPV6_MTU = 0x18
+- IPV6_MTU_DISCOVER = 0x17
+- IPV6_MULTICAST_HOPS = 0x12
+- IPV6_MULTICAST_IF = 0x11
+- IPV6_MULTICAST_LOOP = 0x13
+- IPV6_NEXTHOP = 0x9
+- IPV6_PATHMTU = 0x3d
+- IPV6_PKTINFO = 0x32
+- IPV6_PMTUDISC_DO = 0x2
+- IPV6_PMTUDISC_DONT = 0x0
+- IPV6_PMTUDISC_INTERFACE = 0x4
+- IPV6_PMTUDISC_OMIT = 0x5
+- IPV6_PMTUDISC_PROBE = 0x3
+- IPV6_PMTUDISC_WANT = 0x1
+- IPV6_RECVDSTOPTS = 0x3a
+- IPV6_RECVERR = 0x19
+- IPV6_RECVHOPLIMIT = 0x33
+- IPV6_RECVHOPOPTS = 0x35
+- IPV6_RECVPATHMTU = 0x3c
+- IPV6_RECVPKTINFO = 0x31
+- IPV6_RECVRTHDR = 0x38
+- IPV6_RECVTCLASS = 0x42
+- IPV6_ROUTER_ALERT = 0x16
+- IPV6_RTHDR = 0x39
+- IPV6_RTHDRDSTOPTS = 0x37
+- IPV6_RTHDR_LOOSE = 0x0
+- IPV6_RTHDR_STRICT = 0x1
+- IPV6_RTHDR_TYPE_0 = 0x0
+- IPV6_RXDSTOPTS = 0x3b
+- IPV6_RXHOPOPTS = 0x36
+- IPV6_TCLASS = 0x43
+- IPV6_UNICAST_HOPS = 0x10
+- IPV6_V6ONLY = 0x1a
+- IPV6_XFRM_POLICY = 0x23
+- IP_ADD_MEMBERSHIP = 0x23
+- IP_ADD_SOURCE_MEMBERSHIP = 0x27
+- IP_BIND_ADDRESS_NO_PORT = 0x18
+- IP_BLOCK_SOURCE = 0x26
+- IP_CHECKSUM = 0x17
+- IP_DEFAULT_MULTICAST_LOOP = 0x1
+- IP_DEFAULT_MULTICAST_TTL = 0x1
+- IP_DF = 0x4000
+- IP_DROP_MEMBERSHIP = 0x24
+- IP_DROP_SOURCE_MEMBERSHIP = 0x28
+- IP_FREEBIND = 0xf
+- IP_HDRINCL = 0x3
+- IP_IPSEC_POLICY = 0x10
+- IP_MAXPACKET = 0xffff
+- IP_MAX_MEMBERSHIPS = 0x14
+- IP_MF = 0x2000
+- IP_MINTTL = 0x15
+- IP_MSFILTER = 0x29
+- IP_MSS = 0x240
+- IP_MTU = 0xe
+- IP_MTU_DISCOVER = 0xa
+- IP_MULTICAST_ALL = 0x31
+- IP_MULTICAST_IF = 0x20
+- IP_MULTICAST_LOOP = 0x22
+- IP_MULTICAST_TTL = 0x21
+- IP_NODEFRAG = 0x16
+- IP_OFFMASK = 0x1fff
+- IP_OPTIONS = 0x4
+- IP_ORIGDSTADDR = 0x14
+- IP_PASSSEC = 0x12
+- IP_PKTINFO = 0x8
+- IP_PKTOPTIONS = 0x9
+- IP_PMTUDISC = 0xa
+- IP_PMTUDISC_DO = 0x2
+- IP_PMTUDISC_DONT = 0x0
+- IP_PMTUDISC_INTERFACE = 0x4
+- IP_PMTUDISC_OMIT = 0x5
+- IP_PMTUDISC_PROBE = 0x3
+- IP_PMTUDISC_WANT = 0x1
+- IP_RECVERR = 0xb
+- IP_RECVOPTS = 0x6
+- IP_RECVORIGDSTADDR = 0x14
+- IP_RECVRETOPTS = 0x7
+- IP_RECVTOS = 0xd
+- IP_RECVTTL = 0xc
+- IP_RETOPTS = 0x7
+- IP_RF = 0x8000
+- IP_ROUTER_ALERT = 0x5
+- IP_TOS = 0x1
+- IP_TRANSPARENT = 0x13
+- IP_TTL = 0x2
+- IP_UNBLOCK_SOURCE = 0x25
+- IP_UNICAST_IF = 0x32
+- IP_XFRM_POLICY = 0x11
+- ISIG = 0x80
+- ISTRIP = 0x20
+- IUCLC = 0x1000
+- IUTF8 = 0x4000
+- IXANY = 0x800
+- IXOFF = 0x400
+- IXON = 0x200
+- KEYCTL_ASSUME_AUTHORITY = 0x10
+- KEYCTL_CHOWN = 0x4
+- KEYCTL_CLEAR = 0x7
+- KEYCTL_DESCRIBE = 0x6
+- KEYCTL_DH_COMPUTE = 0x17
+- KEYCTL_GET_KEYRING_ID = 0x0
+- KEYCTL_GET_PERSISTENT = 0x16
+- KEYCTL_GET_SECURITY = 0x11
+- KEYCTL_INSTANTIATE = 0xc
+- KEYCTL_INSTANTIATE_IOV = 0x14
+- KEYCTL_INVALIDATE = 0x15
+- KEYCTL_JOIN_SESSION_KEYRING = 0x1
+- KEYCTL_LINK = 0x8
+- KEYCTL_NEGATE = 0xd
+- KEYCTL_READ = 0xb
+- KEYCTL_REJECT = 0x13
+- KEYCTL_REVOKE = 0x3
+- KEYCTL_SEARCH = 0xa
+- KEYCTL_SESSION_TO_PARENT = 0x12
+- KEYCTL_SETPERM = 0x5
+- KEYCTL_SET_REQKEY_KEYRING = 0xe
+- KEYCTL_SET_TIMEOUT = 0xf
+- KEYCTL_UNLINK = 0x9
+- KEYCTL_UPDATE = 0x2
+- KEY_REQKEY_DEFL_DEFAULT = 0x0
+- KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6
+- KEY_REQKEY_DEFL_NO_CHANGE = -0x1
+- KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2
+- KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7
+- KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3
+- KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1
+- KEY_REQKEY_DEFL_USER_KEYRING = 0x4
+- KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
+- KEY_SPEC_GROUP_KEYRING = -0x6
+- KEY_SPEC_PROCESS_KEYRING = -0x2
+- KEY_SPEC_REQKEY_AUTH_KEY = -0x7
+- KEY_SPEC_REQUESTOR_KEYRING = -0x8
+- KEY_SPEC_SESSION_KEYRING = -0x3
+- KEY_SPEC_THREAD_KEYRING = -0x1
+- KEY_SPEC_USER_KEYRING = -0x4
+- KEY_SPEC_USER_SESSION_KEYRING = -0x5
+- LINUX_REBOOT_CMD_CAD_OFF = 0x0
+- LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
+- LINUX_REBOOT_CMD_HALT = 0xcdef0123
+- LINUX_REBOOT_CMD_KEXEC = 0x45584543
+- LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
+- LINUX_REBOOT_CMD_RESTART = 0x1234567
+- LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
+- LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
+- LINUX_REBOOT_MAGIC1 = 0xfee1dead
+- LINUX_REBOOT_MAGIC2 = 0x28121969
+- LOCK_EX = 0x2
+- LOCK_NB = 0x4
+- LOCK_SH = 0x1
+- LOCK_UN = 0x8
+- MADV_DODUMP = 0x11
+- MADV_DOFORK = 0xb
+- MADV_DONTDUMP = 0x10
+- MADV_DONTFORK = 0xa
+- MADV_DONTNEED = 0x4
+- MADV_FREE = 0x8
+- MADV_HUGEPAGE = 0xe
+- MADV_HWPOISON = 0x64
+- MADV_MERGEABLE = 0xc
+- MADV_NOHUGEPAGE = 0xf
+- MADV_NORMAL = 0x0
+- MADV_RANDOM = 0x1
+- MADV_REMOVE = 0x9
+- MADV_SEQUENTIAL = 0x2
+- MADV_UNMERGEABLE = 0xd
+- MADV_WILLNEED = 0x3
+- MAP_ANON = 0x20
+- MAP_ANONYMOUS = 0x20
+- MAP_DENYWRITE = 0x800
+- MAP_EXECUTABLE = 0x1000
+- MAP_FILE = 0x0
+- MAP_FIXED = 0x10
+- MAP_GROWSDOWN = 0x100
+- MAP_HUGETLB = 0x40000
+- MAP_HUGE_MASK = 0x3f
+- MAP_HUGE_SHIFT = 0x1a
+- MAP_LOCKED = 0x80
+- MAP_NONBLOCK = 0x10000
+- MAP_NORESERVE = 0x40
+- MAP_POPULATE = 0x8000
+- MAP_PRIVATE = 0x2
+- MAP_SHARED = 0x1
+- MAP_STACK = 0x20000
+- MAP_TYPE = 0xf
+- MCL_CURRENT = 0x2000
+- MCL_FUTURE = 0x4000
+- MCL_ONFAULT = 0x8000
+- MNT_DETACH = 0x2
+- MNT_EXPIRE = 0x4
+- MNT_FORCE = 0x1
+- MSG_BATCH = 0x40000
+- MSG_CMSG_CLOEXEC = 0x40000000
+- MSG_CONFIRM = 0x800
+- MSG_CTRUNC = 0x8
+- MSG_DONTROUTE = 0x4
+- MSG_DONTWAIT = 0x40
+- MSG_EOR = 0x80
+- MSG_ERRQUEUE = 0x2000
+- MSG_FASTOPEN = 0x20000000
+- MSG_FIN = 0x200
+- MSG_MORE = 0x8000
+- MSG_NOSIGNAL = 0x4000
+- MSG_OOB = 0x1
+- MSG_PEEK = 0x2
+- MSG_PROXY = 0x10
+- MSG_RST = 0x1000
+- MSG_SYN = 0x400
+- MSG_TRUNC = 0x20
+- MSG_TRYHARD = 0x4
+- MSG_WAITALL = 0x100
+- MSG_WAITFORONE = 0x10000
+- MS_ACTIVE = 0x40000000
+- MS_ASYNC = 0x1
+- MS_BIND = 0x1000
+- MS_BORN = 0x20000000
+- MS_DIRSYNC = 0x80
+- MS_INVALIDATE = 0x2
+- MS_I_VERSION = 0x800000
+- MS_KERNMOUNT = 0x400000
+- MS_LAZYTIME = 0x2000000
+- MS_MANDLOCK = 0x40
+- MS_MGC_MSK = 0xffff0000
+- MS_MGC_VAL = 0xc0ed0000
+- MS_MOVE = 0x2000
+- MS_NOATIME = 0x400
+- MS_NODEV = 0x4
+- MS_NODIRATIME = 0x800
+- MS_NOEXEC = 0x8
+- MS_NOREMOTELOCK = 0x8000000
+- MS_NOSEC = 0x10000000
+- MS_NOSUID = 0x2
+- MS_NOUSER = -0x80000000
+- MS_POSIXACL = 0x10000
+- MS_PRIVATE = 0x40000
+- MS_RDONLY = 0x1
+- MS_REC = 0x4000
+- MS_RELATIME = 0x200000
+- MS_REMOUNT = 0x20
+- MS_RMT_MASK = 0x2800051
+- MS_SHARED = 0x100000
+- MS_SILENT = 0x8000
+- MS_SLAVE = 0x80000
+- MS_STRICTATIME = 0x1000000
+- MS_SYNC = 0x4
+- MS_SYNCHRONOUS = 0x10
+- MS_UNBINDABLE = 0x20000
+- MS_VERBOSE = 0x8000
+- NAME_MAX = 0xff
+- NETLINK_ADD_MEMBERSHIP = 0x1
+- NETLINK_AUDIT = 0x9
+- NETLINK_BROADCAST_ERROR = 0x4
+- NETLINK_CAP_ACK = 0xa
+- NETLINK_CONNECTOR = 0xb
+- NETLINK_CRYPTO = 0x15
+- NETLINK_DNRTMSG = 0xe
+- NETLINK_DROP_MEMBERSHIP = 0x2
+- NETLINK_ECRYPTFS = 0x13
+- NETLINK_FIB_LOOKUP = 0xa
+- NETLINK_FIREWALL = 0x3
+- NETLINK_GENERIC = 0x10
+- NETLINK_INET_DIAG = 0x4
+- NETLINK_IP6_FW = 0xd
+- NETLINK_ISCSI = 0x8
+- NETLINK_KOBJECT_UEVENT = 0xf
+- NETLINK_LISTEN_ALL_NSID = 0x8
+- NETLINK_LIST_MEMBERSHIPS = 0x9
+- NETLINK_NETFILTER = 0xc
+- NETLINK_NFLOG = 0x5
+- NETLINK_NO_ENOBUFS = 0x5
+- NETLINK_PKTINFO = 0x3
+- NETLINK_RDMA = 0x14
+- NETLINK_ROUTE = 0x0
+- NETLINK_RX_RING = 0x6
+- NETLINK_SCSITRANSPORT = 0x12
+- NETLINK_SELINUX = 0x7
+- NETLINK_SOCK_DIAG = 0x4
+- NETLINK_TX_RING = 0x7
+- NETLINK_UNUSED = 0x1
+- NETLINK_USERSOCK = 0x2
+- NETLINK_XFRM = 0x6
+- NL0 = 0x0
+- NL1 = 0x100
+- NL2 = 0x200
+- NL3 = 0x300
+- NLA_ALIGNTO = 0x4
+- NLA_F_NESTED = 0x8000
+- NLA_F_NET_BYTEORDER = 0x4000
+- NLA_HDRLEN = 0x4
+- NLDLY = 0x300
+- NLMSG_ALIGNTO = 0x4
+- NLMSG_DONE = 0x3
+- NLMSG_ERROR = 0x2
+- NLMSG_HDRLEN = 0x10
+- NLMSG_MIN_TYPE = 0x10
+- NLMSG_NOOP = 0x1
+- NLMSG_OVERRUN = 0x4
+- NLM_F_ACK = 0x4
+- NLM_F_APPEND = 0x800
+- NLM_F_ATOMIC = 0x400
+- NLM_F_CREATE = 0x400
+- NLM_F_DUMP = 0x300
+- NLM_F_DUMP_FILTERED = 0x20
+- NLM_F_DUMP_INTR = 0x10
+- NLM_F_ECHO = 0x8
+- NLM_F_EXCL = 0x200
+- NLM_F_MATCH = 0x200
+- NLM_F_MULTI = 0x2
+- NLM_F_REPLACE = 0x100
+- NLM_F_REQUEST = 0x1
+- NLM_F_ROOT = 0x100
+- NOFLSH = 0x80000000
+- OCRNL = 0x8
+- OFDEL = 0x80
+- OFILL = 0x40
+- OLCUC = 0x4
+- ONLCR = 0x2
+- ONLRET = 0x20
+- ONOCR = 0x10
+- OPOST = 0x1
+- O_ACCMODE = 0x3
+- O_APPEND = 0x400
+- O_ASYNC = 0x2000
+- O_CLOEXEC = 0x80000
+- O_CREAT = 0x40
+- O_DIRECT = 0x20000
+- O_DIRECTORY = 0x4000
+- O_DSYNC = 0x1000
+- O_EXCL = 0x80
+- O_FSYNC = 0x101000
+- O_LARGEFILE = 0x0
+- O_NDELAY = 0x800
+- O_NOATIME = 0x40000
+- O_NOCTTY = 0x100
+- O_NOFOLLOW = 0x8000
+- O_NONBLOCK = 0x800
+- O_PATH = 0x200000
+- O_RDONLY = 0x0
+- O_RDWR = 0x2
+- O_RSYNC = 0x101000
+- O_SYNC = 0x101000
+- O_TMPFILE = 0x404000
+- O_TRUNC = 0x200
+- O_WRONLY = 0x1
+- PACKET_ADD_MEMBERSHIP = 0x1
+- PACKET_AUXDATA = 0x8
+- PACKET_BROADCAST = 0x1
+- PACKET_COPY_THRESH = 0x7
+- PACKET_DROP_MEMBERSHIP = 0x2
+- PACKET_FANOUT = 0x12
+- PACKET_FANOUT_CBPF = 0x6
+- PACKET_FANOUT_CPU = 0x2
+- PACKET_FANOUT_DATA = 0x16
+- PACKET_FANOUT_EBPF = 0x7
+- PACKET_FANOUT_FLAG_DEFRAG = 0x8000
+- PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
+- PACKET_FANOUT_HASH = 0x0
+- PACKET_FANOUT_LB = 0x1
+- PACKET_FANOUT_QM = 0x5
+- PACKET_FANOUT_RND = 0x4
+- PACKET_FANOUT_ROLLOVER = 0x3
+- PACKET_FASTROUTE = 0x6
+- PACKET_HDRLEN = 0xb
+- PACKET_HOST = 0x0
+- PACKET_KERNEL = 0x7
+- PACKET_LOOPBACK = 0x5
+- PACKET_LOSS = 0xe
+- PACKET_MR_ALLMULTI = 0x2
+- PACKET_MR_MULTICAST = 0x0
+- PACKET_MR_PROMISC = 0x1
+- PACKET_MR_UNICAST = 0x3
+- PACKET_MULTICAST = 0x2
+- PACKET_ORIGDEV = 0x9
+- PACKET_OTHERHOST = 0x3
+- PACKET_OUTGOING = 0x4
+- PACKET_QDISC_BYPASS = 0x14
+- PACKET_RECV_OUTPUT = 0x3
+- PACKET_RESERVE = 0xc
+- PACKET_ROLLOVER_STATS = 0x15
+- PACKET_RX_RING = 0x5
+- PACKET_STATISTICS = 0x6
+- PACKET_TIMESTAMP = 0x11
+- PACKET_TX_HAS_OFF = 0x13
+- PACKET_TX_RING = 0xd
+- PACKET_TX_TIMESTAMP = 0x10
+- PACKET_USER = 0x6
+- PACKET_VERSION = 0xa
+- PACKET_VNET_HDR = 0xf
+- PARENB = 0x1000
+- PARITY_CRC16_PR0 = 0x2
+- PARITY_CRC16_PR0_CCITT = 0x4
+- PARITY_CRC16_PR1 = 0x3
+- PARITY_CRC16_PR1_CCITT = 0x5
+- PARITY_CRC32_PR0_CCITT = 0x6
+- PARITY_CRC32_PR1_CCITT = 0x7
+- PARITY_DEFAULT = 0x0
+- PARITY_NONE = 0x1
+- PARMRK = 0x8
+- PARODD = 0x2000
+- PENDIN = 0x20000000
+- PERF_EVENT_IOC_DISABLE = 0x20002401
+- PERF_EVENT_IOC_ENABLE = 0x20002400
+- PERF_EVENT_IOC_ID = 0x40082407
+- PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409
+- PERF_EVENT_IOC_PERIOD = 0x80082404
+- PERF_EVENT_IOC_REFRESH = 0x20002402
+- PERF_EVENT_IOC_RESET = 0x20002403
+- PERF_EVENT_IOC_SET_BPF = 0x80042408
+- PERF_EVENT_IOC_SET_FILTER = 0x80082406
+- PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
+- PRIO_PGRP = 0x1
+- PRIO_PROCESS = 0x0
+- PRIO_USER = 0x2
+- PROT_EXEC = 0x4
+- PROT_GROWSDOWN = 0x1000000
+- PROT_GROWSUP = 0x2000000
+- PROT_NONE = 0x0
+- PROT_READ = 0x1
+- PROT_SAO = 0x10
+- PROT_WRITE = 0x2
+- PR_CAPBSET_DROP = 0x18
+- PR_CAPBSET_READ = 0x17
+- PR_CAP_AMBIENT = 0x2f
+- PR_CAP_AMBIENT_CLEAR_ALL = 0x4
+- PR_CAP_AMBIENT_IS_SET = 0x1
+- PR_CAP_AMBIENT_LOWER = 0x3
+- PR_CAP_AMBIENT_RAISE = 0x2
+- PR_ENDIAN_BIG = 0x0
+- PR_ENDIAN_LITTLE = 0x1
+- PR_ENDIAN_PPC_LITTLE = 0x2
+- PR_FPEMU_NOPRINT = 0x1
+- PR_FPEMU_SIGFPE = 0x2
+- PR_FP_EXC_ASYNC = 0x2
+- PR_FP_EXC_DISABLED = 0x0
+- PR_FP_EXC_DIV = 0x10000
+- PR_FP_EXC_INV = 0x100000
+- PR_FP_EXC_NONRECOV = 0x1
+- PR_FP_EXC_OVF = 0x20000
+- PR_FP_EXC_PRECISE = 0x3
+- PR_FP_EXC_RES = 0x80000
+- PR_FP_EXC_SW_ENABLE = 0x80
+- PR_FP_EXC_UND = 0x40000
+- PR_FP_MODE_FR = 0x1
+- PR_FP_MODE_FRE = 0x2
+- PR_GET_CHILD_SUBREAPER = 0x25
+- PR_GET_DUMPABLE = 0x3
+- PR_GET_ENDIAN = 0x13
+- PR_GET_FPEMU = 0x9
+- PR_GET_FPEXC = 0xb
+- PR_GET_FP_MODE = 0x2e
+- PR_GET_KEEPCAPS = 0x7
+- PR_GET_NAME = 0x10
+- PR_GET_NO_NEW_PRIVS = 0x27
+- PR_GET_PDEATHSIG = 0x2
+- PR_GET_SECCOMP = 0x15
+- PR_GET_SECUREBITS = 0x1b
+- PR_GET_THP_DISABLE = 0x2a
+- PR_GET_TID_ADDRESS = 0x28
+- PR_GET_TIMERSLACK = 0x1e
+- PR_GET_TIMING = 0xd
+- PR_GET_TSC = 0x19
+- PR_GET_UNALIGN = 0x5
+- PR_MCE_KILL = 0x21
+- PR_MCE_KILL_CLEAR = 0x0
+- PR_MCE_KILL_DEFAULT = 0x2
+- PR_MCE_KILL_EARLY = 0x1
+- PR_MCE_KILL_GET = 0x22
+- PR_MCE_KILL_LATE = 0x0
+- PR_MCE_KILL_SET = 0x1
+- PR_MPX_DISABLE_MANAGEMENT = 0x2c
+- PR_MPX_ENABLE_MANAGEMENT = 0x2b
+- PR_SET_CHILD_SUBREAPER = 0x24
+- PR_SET_DUMPABLE = 0x4
+- PR_SET_ENDIAN = 0x14
+- PR_SET_FPEMU = 0xa
+- PR_SET_FPEXC = 0xc
+- PR_SET_FP_MODE = 0x2d
+- PR_SET_KEEPCAPS = 0x8
+- PR_SET_MM = 0x23
+- PR_SET_MM_ARG_END = 0x9
+- PR_SET_MM_ARG_START = 0x8
+- PR_SET_MM_AUXV = 0xc
+- PR_SET_MM_BRK = 0x7
+- PR_SET_MM_END_CODE = 0x2
+- PR_SET_MM_END_DATA = 0x4
+- PR_SET_MM_ENV_END = 0xb
+- PR_SET_MM_ENV_START = 0xa
+- PR_SET_MM_EXE_FILE = 0xd
+- PR_SET_MM_MAP = 0xe
+- PR_SET_MM_MAP_SIZE = 0xf
+- PR_SET_MM_START_BRK = 0x6
+- PR_SET_MM_START_CODE = 0x1
+- PR_SET_MM_START_DATA = 0x3
+- PR_SET_MM_START_STACK = 0x5
+- PR_SET_NAME = 0xf
+- PR_SET_NO_NEW_PRIVS = 0x26
+- PR_SET_PDEATHSIG = 0x1
+- PR_SET_PTRACER = 0x59616d61
+- PR_SET_PTRACER_ANY = -0x1
+- PR_SET_SECCOMP = 0x16
+- PR_SET_SECUREBITS = 0x1c
+- PR_SET_THP_DISABLE = 0x29
+- PR_SET_TIMERSLACK = 0x1d
+- PR_SET_TIMING = 0xe
+- PR_SET_TSC = 0x1a
+- PR_SET_UNALIGN = 0x6
+- PR_TASK_PERF_EVENTS_DISABLE = 0x1f
+- PR_TASK_PERF_EVENTS_ENABLE = 0x20
+- PR_TIMING_STATISTICAL = 0x0
+- PR_TIMING_TIMESTAMP = 0x1
+- PR_TSC_ENABLE = 0x1
+- PR_TSC_SIGSEGV = 0x2
+- PR_UNALIGN_NOPRINT = 0x1
+- PR_UNALIGN_SIGBUS = 0x2
+- PTRACE_ATTACH = 0x10
+- PTRACE_CONT = 0x7
+- PTRACE_DETACH = 0x11
+- PTRACE_EVENT_CLONE = 0x3
+- PTRACE_EVENT_EXEC = 0x4
+- PTRACE_EVENT_EXIT = 0x6
+- PTRACE_EVENT_FORK = 0x1
+- PTRACE_EVENT_SECCOMP = 0x7
+- PTRACE_EVENT_STOP = 0x80
+- PTRACE_EVENT_VFORK = 0x2
+- PTRACE_EVENT_VFORK_DONE = 0x5
+- PTRACE_GETEVENTMSG = 0x4201
+- PTRACE_GETEVRREGS = 0x14
+- PTRACE_GETFPREGS = 0xe
+- PTRACE_GETREGS = 0xc
+- PTRACE_GETREGS64 = 0x16
+- PTRACE_GETREGSET = 0x4204
+- PTRACE_GETSIGINFO = 0x4202
+- PTRACE_GETSIGMASK = 0x420a
+- PTRACE_GETVRREGS = 0x12
+- PTRACE_GETVSRREGS = 0x1b
+- PTRACE_GET_DEBUGREG = 0x19
+- PTRACE_INTERRUPT = 0x4207
+- PTRACE_KILL = 0x8
+- PTRACE_LISTEN = 0x4208
+- PTRACE_O_EXITKILL = 0x100000
+- PTRACE_O_MASK = 0x3000ff
+- PTRACE_O_SUSPEND_SECCOMP = 0x200000
+- PTRACE_O_TRACECLONE = 0x8
+- PTRACE_O_TRACEEXEC = 0x10
+- PTRACE_O_TRACEEXIT = 0x40
+- PTRACE_O_TRACEFORK = 0x2
+- PTRACE_O_TRACESECCOMP = 0x80
+- PTRACE_O_TRACESYSGOOD = 0x1
+- PTRACE_O_TRACEVFORK = 0x4
+- PTRACE_O_TRACEVFORKDONE = 0x20
+- PTRACE_PEEKDATA = 0x2
+- PTRACE_PEEKSIGINFO = 0x4209
+- PTRACE_PEEKSIGINFO_SHARED = 0x1
+- PTRACE_PEEKTEXT = 0x1
+- PTRACE_PEEKUSR = 0x3
+- PTRACE_POKEDATA = 0x5
+- PTRACE_POKETEXT = 0x4
+- PTRACE_POKEUSR = 0x6
+- PTRACE_SECCOMP_GET_FILTER = 0x420c
+- PTRACE_SEIZE = 0x4206
+- PTRACE_SETEVRREGS = 0x15
+- PTRACE_SETFPREGS = 0xf
+- PTRACE_SETOPTIONS = 0x4200
+- PTRACE_SETREGS = 0xd
+- PTRACE_SETREGS64 = 0x17
+- PTRACE_SETREGSET = 0x4205
+- PTRACE_SETSIGINFO = 0x4203
+- PTRACE_SETSIGMASK = 0x420b
+- PTRACE_SETVRREGS = 0x13
+- PTRACE_SETVSRREGS = 0x1c
+- PTRACE_SET_DEBUGREG = 0x1a
+- PTRACE_SINGLEBLOCK = 0x100
+- PTRACE_SINGLESTEP = 0x9
+- PTRACE_SYSCALL = 0x18
+- PTRACE_TRACEME = 0x0
+- PT_CCR = 0x26
+- PT_CTR = 0x23
+- PT_DAR = 0x29
+- PT_DSCR = 0x2c
+- PT_DSISR = 0x2a
+- PT_FPR0 = 0x30
+- PT_FPSCR = 0x50
+- PT_LNK = 0x24
+- PT_MSR = 0x21
+- PT_NIP = 0x20
+- PT_ORIG_R3 = 0x22
+- PT_R0 = 0x0
+- PT_R1 = 0x1
+- PT_R10 = 0xa
+- PT_R11 = 0xb
+- PT_R12 = 0xc
+- PT_R13 = 0xd
+- PT_R14 = 0xe
+- PT_R15 = 0xf
+- PT_R16 = 0x10
+- PT_R17 = 0x11
+- PT_R18 = 0x12
+- PT_R19 = 0x13
+- PT_R2 = 0x2
+- PT_R20 = 0x14
+- PT_R21 = 0x15
+- PT_R22 = 0x16
+- PT_R23 = 0x17
+- PT_R24 = 0x18
+- PT_R25 = 0x19
+- PT_R26 = 0x1a
+- PT_R27 = 0x1b
+- PT_R28 = 0x1c
+- PT_R29 = 0x1d
+- PT_R3 = 0x3
+- PT_R30 = 0x1e
+- PT_R31 = 0x1f
+- PT_R4 = 0x4
+- PT_R5 = 0x5
+- PT_R6 = 0x6
+- PT_R7 = 0x7
+- PT_R8 = 0x8
+- PT_R9 = 0x9
+- PT_REGS_COUNT = 0x2c
+- PT_RESULT = 0x2b
+- PT_SOFTE = 0x27
+- PT_TRAP = 0x28
+- PT_VR0 = 0x52
+- PT_VRSAVE = 0x94
+- PT_VSCR = 0x93
+- PT_VSR0 = 0x96
+- PT_VSR31 = 0xd4
+- PT_XER = 0x25
+- RLIMIT_AS = 0x9
+- RLIMIT_CORE = 0x4
+- RLIMIT_CPU = 0x0
+- RLIMIT_DATA = 0x2
+- RLIMIT_FSIZE = 0x1
+- RLIMIT_LOCKS = 0xa
+- RLIMIT_MEMLOCK = 0x8
+- RLIMIT_MSGQUEUE = 0xc
+- RLIMIT_NICE = 0xd
+- RLIMIT_NOFILE = 0x7
+- RLIMIT_NPROC = 0x6
+- RLIMIT_RSS = 0x5
+- RLIMIT_RTPRIO = 0xe
+- RLIMIT_RTTIME = 0xf
+- RLIMIT_SIGPENDING = 0xb
+- RLIMIT_STACK = 0x3
+- RLIM_INFINITY = -0x1
+- RTAX_ADVMSS = 0x8
+- RTAX_CC_ALGO = 0x10
+- RTAX_CWND = 0x7
+- RTAX_FEATURES = 0xc
+- RTAX_FEATURE_ALLFRAG = 0x8
+- RTAX_FEATURE_ECN = 0x1
+- RTAX_FEATURE_MASK = 0xf
+- RTAX_FEATURE_SACK = 0x2
+- RTAX_FEATURE_TIMESTAMP = 0x4
+- RTAX_HOPLIMIT = 0xa
+- RTAX_INITCWND = 0xb
+- RTAX_INITRWND = 0xe
+- RTAX_LOCK = 0x1
+- RTAX_MAX = 0x10
+- RTAX_MTU = 0x2
+- RTAX_QUICKACK = 0xf
+- RTAX_REORDERING = 0x9
+- RTAX_RTO_MIN = 0xd
+- RTAX_RTT = 0x4
+- RTAX_RTTVAR = 0x5
+- RTAX_SSTHRESH = 0x6
+- RTAX_UNSPEC = 0x0
+- RTAX_WINDOW = 0x3
+- RTA_ALIGNTO = 0x4
+- RTA_MAX = 0x19
+- RTCF_DIRECTSRC = 0x4000000
+- RTCF_DOREDIRECT = 0x1000000
+- RTCF_LOG = 0x2000000
+- RTCF_MASQ = 0x400000
+- RTCF_NAT = 0x800000
+- RTCF_VALVE = 0x200000
+- RTF_ADDRCLASSMASK = 0xf8000000
+- RTF_ADDRCONF = 0x40000
+- RTF_ALLONLINK = 0x20000
+- RTF_BROADCAST = 0x10000000
+- RTF_CACHE = 0x1000000
+- RTF_DEFAULT = 0x10000
+- RTF_DYNAMIC = 0x10
+- RTF_FLOW = 0x2000000
+- RTF_GATEWAY = 0x2
+- RTF_HOST = 0x4
+- RTF_INTERFACE = 0x40000000
+- RTF_IRTT = 0x100
+- RTF_LINKRT = 0x100000
+- RTF_LOCAL = 0x80000000
+- RTF_MODIFIED = 0x20
+- RTF_MSS = 0x40
+- RTF_MTU = 0x40
+- RTF_MULTICAST = 0x20000000
+- RTF_NAT = 0x8000000
+- RTF_NOFORWARD = 0x1000
+- RTF_NONEXTHOP = 0x200000
+- RTF_NOPMTUDISC = 0x4000
+- RTF_POLICY = 0x4000000
+- RTF_REINSTATE = 0x8
+- RTF_REJECT = 0x200
+- RTF_STATIC = 0x400
+- RTF_THROW = 0x2000
+- RTF_UP = 0x1
+- RTF_WINDOW = 0x80
+- RTF_XRESOLVE = 0x800
+- RTM_BASE = 0x10
+- RTM_DELACTION = 0x31
+- RTM_DELADDR = 0x15
+- RTM_DELADDRLABEL = 0x49
+- RTM_DELLINK = 0x11
+- RTM_DELMDB = 0x55
+- RTM_DELNEIGH = 0x1d
+- RTM_DELNSID = 0x59
+- RTM_DELQDISC = 0x25
+- RTM_DELROUTE = 0x19
+- RTM_DELRULE = 0x21
+- RTM_DELTCLASS = 0x29
+- RTM_DELTFILTER = 0x2d
+- RTM_F_CLONED = 0x200
+- RTM_F_EQUALIZE = 0x400
+- RTM_F_LOOKUP_TABLE = 0x1000
+- RTM_F_NOTIFY = 0x100
+- RTM_F_PREFIX = 0x800
+- RTM_GETACTION = 0x32
+- RTM_GETADDR = 0x16
+- RTM_GETADDRLABEL = 0x4a
+- RTM_GETANYCAST = 0x3e
+- RTM_GETDCB = 0x4e
+- RTM_GETLINK = 0x12
+- RTM_GETMDB = 0x56
+- RTM_GETMULTICAST = 0x3a
+- RTM_GETNEIGH = 0x1e
+- RTM_GETNEIGHTBL = 0x42
+- RTM_GETNETCONF = 0x52
+- RTM_GETNSID = 0x5a
+- RTM_GETQDISC = 0x26
+- RTM_GETROUTE = 0x1a
+- RTM_GETRULE = 0x22
+- RTM_GETSTATS = 0x5e
+- RTM_GETTCLASS = 0x2a
+- RTM_GETTFILTER = 0x2e
+- RTM_MAX = 0x5f
+- RTM_NEWACTION = 0x30
+- RTM_NEWADDR = 0x14
+- RTM_NEWADDRLABEL = 0x48
+- RTM_NEWLINK = 0x10
+- RTM_NEWMDB = 0x54
+- RTM_NEWNDUSEROPT = 0x44
+- RTM_NEWNEIGH = 0x1c
+- RTM_NEWNEIGHTBL = 0x40
+- RTM_NEWNETCONF = 0x50
+- RTM_NEWNSID = 0x58
+- RTM_NEWPREFIX = 0x34
+- RTM_NEWQDISC = 0x24
+- RTM_NEWROUTE = 0x18
+- RTM_NEWRULE = 0x20
+- RTM_NEWSTATS = 0x5c
+- RTM_NEWTCLASS = 0x28
+- RTM_NEWTFILTER = 0x2c
+- RTM_NR_FAMILIES = 0x14
+- RTM_NR_MSGTYPES = 0x50
+- RTM_SETDCB = 0x4f
+- RTM_SETLINK = 0x13
+- RTM_SETNEIGHTBL = 0x43
+- RTNH_ALIGNTO = 0x4
+- RTNH_COMPARE_MASK = 0x19
+- RTNH_F_DEAD = 0x1
+- RTNH_F_LINKDOWN = 0x10
+- RTNH_F_OFFLOAD = 0x8
+- RTNH_F_ONLINK = 0x4
+- RTNH_F_PERVASIVE = 0x2
+- RTN_MAX = 0xb
+- RTPROT_BABEL = 0x2a
+- RTPROT_BIRD = 0xc
+- RTPROT_BOOT = 0x3
+- RTPROT_DHCP = 0x10
+- RTPROT_DNROUTED = 0xd
+- RTPROT_GATED = 0x8
+- RTPROT_KERNEL = 0x2
+- RTPROT_MROUTED = 0x11
+- RTPROT_MRT = 0xa
+- RTPROT_NTK = 0xf
+- RTPROT_RA = 0x9
+- RTPROT_REDIRECT = 0x1
+- RTPROT_STATIC = 0x4
+- RTPROT_UNSPEC = 0x0
+- RTPROT_XORP = 0xe
+- RTPROT_ZEBRA = 0xb
+- RT_CLASS_DEFAULT = 0xfd
+- RT_CLASS_LOCAL = 0xff
+- RT_CLASS_MAIN = 0xfe
+- RT_CLASS_MAX = 0xff
+- RT_CLASS_UNSPEC = 0x0
+- RUSAGE_CHILDREN = -0x1
+- RUSAGE_SELF = 0x0
+- RUSAGE_THREAD = 0x1
+- SCM_CREDENTIALS = 0x2
+- SCM_RIGHTS = 0x1
+- SCM_TIMESTAMP = 0x1d
+- SCM_TIMESTAMPING = 0x25
+- SCM_TIMESTAMPING_OPT_STATS = 0x36
+- SCM_TIMESTAMPNS = 0x23
+- SCM_WIFI_STATUS = 0x29
+- SECCOMP_MODE_DISABLED = 0x0
+- SECCOMP_MODE_FILTER = 0x2
+- SECCOMP_MODE_STRICT = 0x1
+- SHUT_RD = 0x0
+- SHUT_RDWR = 0x2
+- SHUT_WR = 0x1
+- SIOCADDDLCI = 0x8980
+- SIOCADDMULTI = 0x8931
+- SIOCADDRT = 0x890b
+- SIOCATMARK = 0x8905
+- SIOCBONDCHANGEACTIVE = 0x8995
+- SIOCBONDENSLAVE = 0x8990
+- SIOCBONDINFOQUERY = 0x8994
+- SIOCBONDRELEASE = 0x8991
+- SIOCBONDSETHWADDR = 0x8992
+- SIOCBONDSLAVEINFOQUERY = 0x8993
+- SIOCBRADDBR = 0x89a0
+- SIOCBRADDIF = 0x89a2
+- SIOCBRDELBR = 0x89a1
+- SIOCBRDELIF = 0x89a3
+- SIOCDARP = 0x8953
+- SIOCDELDLCI = 0x8981
+- SIOCDELMULTI = 0x8932
+- SIOCDELRT = 0x890c
+- SIOCDEVPRIVATE = 0x89f0
+- SIOCDIFADDR = 0x8936
+- SIOCDRARP = 0x8960
+- SIOCETHTOOL = 0x8946
+- SIOCGARP = 0x8954
+- SIOCGHWTSTAMP = 0x89b1
+- SIOCGIFADDR = 0x8915
+- SIOCGIFBR = 0x8940
+- SIOCGIFBRDADDR = 0x8919
+- SIOCGIFCONF = 0x8912
+- SIOCGIFCOUNT = 0x8938
+- SIOCGIFDSTADDR = 0x8917
+- SIOCGIFENCAP = 0x8925
+- SIOCGIFFLAGS = 0x8913
+- SIOCGIFHWADDR = 0x8927
+- SIOCGIFINDEX = 0x8933
+- SIOCGIFMAP = 0x8970
+- SIOCGIFMEM = 0x891f
+- SIOCGIFMETRIC = 0x891d
+- SIOCGIFMTU = 0x8921
+- SIOCGIFNAME = 0x8910
+- SIOCGIFNETMASK = 0x891b
+- SIOCGIFPFLAGS = 0x8935
+- SIOCGIFSLAVE = 0x8929
+- SIOCGIFTXQLEN = 0x8942
+- SIOCGIFVLAN = 0x8982
+- SIOCGMIIPHY = 0x8947
+- SIOCGMIIREG = 0x8948
+- SIOCGPGRP = 0x8904
+- SIOCGRARP = 0x8961
+- SIOCGSKNS = 0x894c
+- SIOCGSTAMP = 0x8906
+- SIOCGSTAMPNS = 0x8907
+- SIOCINQ = 0x4004667f
+- SIOCOUTQ = 0x40047473
+- SIOCOUTQNSD = 0x894b
+- SIOCPROTOPRIVATE = 0x89e0
+- SIOCRTMSG = 0x890d
+- SIOCSARP = 0x8955
+- SIOCSHWTSTAMP = 0x89b0
+- SIOCSIFADDR = 0x8916
+- SIOCSIFBR = 0x8941
+- SIOCSIFBRDADDR = 0x891a
+- SIOCSIFDSTADDR = 0x8918
+- SIOCSIFENCAP = 0x8926
+- SIOCSIFFLAGS = 0x8914
+- SIOCSIFHWADDR = 0x8924
+- SIOCSIFHWBROADCAST = 0x8937
+- SIOCSIFLINK = 0x8911
+- SIOCSIFMAP = 0x8971
+- SIOCSIFMEM = 0x8920
+- SIOCSIFMETRIC = 0x891e
+- SIOCSIFMTU = 0x8922
+- SIOCSIFNAME = 0x8923
+- SIOCSIFNETMASK = 0x891c
+- SIOCSIFPFLAGS = 0x8934
+- SIOCSIFSLAVE = 0x8930
+- SIOCSIFTXQLEN = 0x8943
+- SIOCSIFVLAN = 0x8983
+- SIOCSMIIREG = 0x8949
+- SIOCSPGRP = 0x8902
+- SIOCSRARP = 0x8962
+- SIOCWANDEV = 0x894a
+- SOCK_CLOEXEC = 0x80000
+- SOCK_DCCP = 0x6
+- SOCK_DGRAM = 0x2
+- SOCK_IOC_TYPE = 0x89
+- SOCK_NONBLOCK = 0x800
+- SOCK_PACKET = 0xa
+- SOCK_RAW = 0x3
+- SOCK_RDM = 0x4
+- SOCK_SEQPACKET = 0x5
+- SOCK_STREAM = 0x1
+- SOL_AAL = 0x109
+- SOL_ALG = 0x117
+- SOL_ATM = 0x108
+- SOL_CAIF = 0x116
+- SOL_CAN_BASE = 0x64
+- SOL_DCCP = 0x10d
+- SOL_DECNET = 0x105
+- SOL_ICMPV6 = 0x3a
+- SOL_IP = 0x0
+- SOL_IPV6 = 0x29
+- SOL_IRDA = 0x10a
+- SOL_IUCV = 0x115
+- SOL_KCM = 0x119
+- SOL_LLC = 0x10c
+- SOL_NETBEUI = 0x10b
+- SOL_NETLINK = 0x10e
+- SOL_NFC = 0x118
+- SOL_PACKET = 0x107
+- SOL_PNPIPE = 0x113
+- SOL_PPPOL2TP = 0x111
+- SOL_RAW = 0xff
+- SOL_RDS = 0x114
+- SOL_RXRPC = 0x110
+- SOL_SOCKET = 0x1
+- SOL_TCP = 0x6
+- SOL_TIPC = 0x10f
+- SOL_X25 = 0x106
+- SOMAXCONN = 0x80
+- SO_ACCEPTCONN = 0x1e
+- SO_ATTACH_BPF = 0x32
+- SO_ATTACH_FILTER = 0x1a
+- SO_ATTACH_REUSEPORT_CBPF = 0x33
+- SO_ATTACH_REUSEPORT_EBPF = 0x34
+- SO_BINDTODEVICE = 0x19
+- SO_BPF_EXTENSIONS = 0x30
+- SO_BROADCAST = 0x6
+- SO_BSDCOMPAT = 0xe
+- SO_BUSY_POLL = 0x2e
+- SO_CNX_ADVICE = 0x35
+- SO_DEBUG = 0x1
+- SO_DETACH_BPF = 0x1b
+- SO_DETACH_FILTER = 0x1b
+- SO_DOMAIN = 0x27
+- SO_DONTROUTE = 0x5
+- SO_ERROR = 0x4
+- SO_GET_FILTER = 0x1a
+- SO_INCOMING_CPU = 0x31
+- SO_KEEPALIVE = 0x9
+- SO_LINGER = 0xd
+- SO_LOCK_FILTER = 0x2c
+- SO_MARK = 0x24
+- SO_MAX_PACING_RATE = 0x2f
+- SO_NOFCS = 0x2b
+- SO_NO_CHECK = 0xb
+- SO_OOBINLINE = 0xa
+- SO_PASSCRED = 0x14
+- SO_PASSSEC = 0x22
+- SO_PEEK_OFF = 0x2a
+- SO_PEERCRED = 0x15
+- SO_PEERNAME = 0x1c
+- SO_PEERSEC = 0x1f
+- SO_PRIORITY = 0xc
+- SO_PROTOCOL = 0x26
+- SO_RCVBUF = 0x8
+- SO_RCVBUFFORCE = 0x21
+- SO_RCVLOWAT = 0x10
+- SO_RCVTIMEO = 0x12
+- SO_REUSEADDR = 0x2
+- SO_REUSEPORT = 0xf
+- SO_RXQ_OVFL = 0x28
+- SO_SECURITY_AUTHENTICATION = 0x16
+- SO_SECURITY_ENCRYPTION_NETWORK = 0x18
+- SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
+- SO_SELECT_ERR_QUEUE = 0x2d
+- SO_SNDBUF = 0x7
+- SO_SNDBUFFORCE = 0x20
+- SO_SNDLOWAT = 0x11
+- SO_SNDTIMEO = 0x13
+- SO_TIMESTAMP = 0x1d
+- SO_TIMESTAMPING = 0x25
+- SO_TIMESTAMPNS = 0x23
+- SO_TYPE = 0x3
+- SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
+- SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
+- SO_VM_SOCKETS_BUFFER_SIZE = 0x0
+- SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
+- SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
+- SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
+- SO_VM_SOCKETS_TRUSTED = 0x5
+- SO_WIFI_STATUS = 0x29
+- SPLICE_F_GIFT = 0x8
+- SPLICE_F_MORE = 0x4
+- SPLICE_F_MOVE = 0x1
+- SPLICE_F_NONBLOCK = 0x2
+- S_BLKSIZE = 0x200
+- S_IEXEC = 0x40
+- S_IFBLK = 0x6000
+- S_IFCHR = 0x2000
+- S_IFDIR = 0x4000
+- S_IFIFO = 0x1000
+- S_IFLNK = 0xa000
+- S_IFMT = 0xf000
+- S_IFREG = 0x8000
+- S_IFSOCK = 0xc000
+- S_IREAD = 0x100
+- S_IRGRP = 0x20
+- S_IROTH = 0x4
+- S_IRUSR = 0x100
+- S_IRWXG = 0x38
+- S_IRWXO = 0x7
+- S_IRWXU = 0x1c0
+- S_ISGID = 0x400
+- S_ISUID = 0x800
+- S_ISVTX = 0x200
+- S_IWGRP = 0x10
+- S_IWOTH = 0x2
+- S_IWRITE = 0x80
+- S_IWUSR = 0x80
+- S_IXGRP = 0x8
+- S_IXOTH = 0x1
+- S_IXUSR = 0x40
+- TAB0 = 0x0
+- TAB1 = 0x400
+- TAB2 = 0x800
+- TAB3 = 0xc00
+- TABDLY = 0xc00
+- TASKSTATS_CMD_ATTR_MAX = 0x4
+- TASKSTATS_CMD_MAX = 0x2
+- TASKSTATS_GENL_NAME = "TASKSTATS"
+- TASKSTATS_GENL_VERSION = 0x1
+- TASKSTATS_TYPE_MAX = 0x6
+- TASKSTATS_VERSION = 0x8
+- TCFLSH = 0x2000741f
+- TCGETA = 0x40147417
+- TCGETS = 0x402c7413
+- TCIFLUSH = 0x0
+- TCIOFF = 0x2
+- TCIOFLUSH = 0x2
+- TCION = 0x3
+- TCOFLUSH = 0x1
+- TCOOFF = 0x0
+- TCOON = 0x1
+- TCP_CC_INFO = 0x1a
+- TCP_CONGESTION = 0xd
+- TCP_COOKIE_IN_ALWAYS = 0x1
+- TCP_COOKIE_MAX = 0x10
+- TCP_COOKIE_MIN = 0x8
+- TCP_COOKIE_OUT_NEVER = 0x2
+- TCP_COOKIE_PAIR_SIZE = 0x20
+- TCP_COOKIE_TRANSACTIONS = 0xf
+- TCP_CORK = 0x3
+- TCP_DEFER_ACCEPT = 0x9
+- TCP_FASTOPEN = 0x17
+- TCP_INFO = 0xb
+- TCP_KEEPCNT = 0x6
+- TCP_KEEPIDLE = 0x4
+- TCP_KEEPINTVL = 0x5
+- TCP_LINGER2 = 0x8
+- TCP_MAXSEG = 0x2
+- TCP_MAXWIN = 0xffff
+- TCP_MAX_WINSHIFT = 0xe
+- TCP_MD5SIG = 0xe
+- TCP_MD5SIG_MAXKEYLEN = 0x50
+- TCP_MSS = 0x200
+- TCP_MSS_DEFAULT = 0x218
+- TCP_MSS_DESIRED = 0x4c4
+- TCP_NODELAY = 0x1
+- TCP_NOTSENT_LOWAT = 0x19
+- TCP_QUEUE_SEQ = 0x15
+- TCP_QUICKACK = 0xc
+- TCP_REPAIR = 0x13
+- TCP_REPAIR_OPTIONS = 0x16
+- TCP_REPAIR_QUEUE = 0x14
+- TCP_REPAIR_WINDOW = 0x1d
+- TCP_SAVED_SYN = 0x1c
+- TCP_SAVE_SYN = 0x1b
+- TCP_SYNCNT = 0x7
+- TCP_S_DATA_IN = 0x4
+- TCP_S_DATA_OUT = 0x8
+- TCP_THIN_DUPACK = 0x11
+- TCP_THIN_LINEAR_TIMEOUTS = 0x10
+- TCP_TIMESTAMP = 0x18
+- TCP_USER_TIMEOUT = 0x12
+- TCP_WINDOW_CLAMP = 0xa
+- TCSAFLUSH = 0x2
+- TCSBRK = 0x2000741d
+- TCSBRKP = 0x5425
+- TCSETA = 0x80147418
+- TCSETAF = 0x8014741c
+- TCSETAW = 0x80147419
+- TCSETS = 0x802c7414
+- TCSETSF = 0x802c7416
+- TCSETSW = 0x802c7415
+- TCXONC = 0x2000741e
+- TIOCCBRK = 0x5428
+- TIOCCONS = 0x541d
+- TIOCEXCL = 0x540c
+- TIOCGDEV = 0x40045432
+- TIOCGETC = 0x40067412
+- TIOCGETD = 0x5424
+- TIOCGETP = 0x40067408
+- TIOCGEXCL = 0x40045440
+- TIOCGICOUNT = 0x545d
+- TIOCGLCKTRMIOS = 0x5456
+- TIOCGLTC = 0x40067474
+- TIOCGPGRP = 0x40047477
+- TIOCGPKT = 0x40045438
+- TIOCGPTLCK = 0x40045439
+- TIOCGPTN = 0x40045430
+- TIOCGRS485 = 0x542e
+- TIOCGSERIAL = 0x541e
+- TIOCGSID = 0x5429
+- TIOCGSOFTCAR = 0x5419
+- TIOCGWINSZ = 0x40087468
+- TIOCINQ = 0x4004667f
+- TIOCLINUX = 0x541c
+- TIOCMBIC = 0x5417
+- TIOCMBIS = 0x5416
+- TIOCMGET = 0x5415
+- TIOCMIWAIT = 0x545c
+- TIOCMSET = 0x5418
+- TIOCM_CAR = 0x40
+- TIOCM_CD = 0x40
+- TIOCM_CTS = 0x20
+- TIOCM_DSR = 0x100
+- TIOCM_DTR = 0x2
+- TIOCM_LE = 0x1
+- TIOCM_LOOP = 0x8000
+- TIOCM_OUT1 = 0x2000
+- TIOCM_OUT2 = 0x4000
+- TIOCM_RI = 0x80
+- TIOCM_RNG = 0x80
+- TIOCM_RTS = 0x4
+- TIOCM_SR = 0x10
+- TIOCM_ST = 0x8
+- TIOCNOTTY = 0x5422
+- TIOCNXCL = 0x540d
+- TIOCOUTQ = 0x40047473
+- TIOCPKT = 0x5420
+- TIOCPKT_DATA = 0x0
+- TIOCPKT_DOSTOP = 0x20
+- TIOCPKT_FLUSHREAD = 0x1
+- TIOCPKT_FLUSHWRITE = 0x2
+- TIOCPKT_IOCTL = 0x40
+- TIOCPKT_NOSTOP = 0x10
+- TIOCPKT_START = 0x8
+- TIOCPKT_STOP = 0x4
+- TIOCSBRK = 0x5427
+- TIOCSCTTY = 0x540e
+- TIOCSERCONFIG = 0x5453
+- TIOCSERGETLSR = 0x5459
+- TIOCSERGETMULTI = 0x545a
+- TIOCSERGSTRUCT = 0x5458
+- TIOCSERGWILD = 0x5454
+- TIOCSERSETMULTI = 0x545b
+- TIOCSERSWILD = 0x5455
+- TIOCSER_TEMT = 0x1
+- TIOCSETC = 0x80067411
+- TIOCSETD = 0x5423
+- TIOCSETN = 0x8006740a
+- TIOCSETP = 0x80067409
+- TIOCSIG = 0x80045436
+- TIOCSLCKTRMIOS = 0x5457
+- TIOCSLTC = 0x80067475
+- TIOCSPGRP = 0x80047476
+- TIOCSPTLCK = 0x80045431
+- TIOCSRS485 = 0x542f
+- TIOCSSERIAL = 0x541f
+- TIOCSSOFTCAR = 0x541a
+- TIOCSTART = 0x2000746e
+- TIOCSTI = 0x5412
+- TIOCSTOP = 0x2000746f
+- TIOCSWINSZ = 0x80087467
+- TIOCVHANGUP = 0x5437
+- TOSTOP = 0x400000
+- TS_COMM_LEN = 0x20
+- TUNATTACHFILTER = 0x801054d5
+- TUNDETACHFILTER = 0x801054d6
+- TUNGETFEATURES = 0x400454cf
+- TUNGETFILTER = 0x401054db
+- TUNGETIFF = 0x400454d2
+- TUNGETSNDBUF = 0x400454d3
+- TUNGETVNETBE = 0x400454df
+- TUNGETVNETHDRSZ = 0x400454d7
+- TUNGETVNETLE = 0x400454dd
+- TUNSETDEBUG = 0x800454c9
+- TUNSETGROUP = 0x800454ce
+- TUNSETIFF = 0x800454ca
+- TUNSETIFINDEX = 0x800454da
+- TUNSETLINK = 0x800454cd
+- TUNSETNOCSUM = 0x800454c8
+- TUNSETOFFLOAD = 0x800454d0
+- TUNSETOWNER = 0x800454cc
+- TUNSETPERSIST = 0x800454cb
+- TUNSETQUEUE = 0x800454d9
+- TUNSETSNDBUF = 0x800454d4
+- TUNSETTXFILTER = 0x800454d1
+- TUNSETVNETBE = 0x800454de
+- TUNSETVNETHDRSZ = 0x800454d8
+- TUNSETVNETLE = 0x800454dc
+- UMOUNT_NOFOLLOW = 0x8
+- VDISCARD = 0x10
+- VEOF = 0x4
+- VEOL = 0x6
+- VEOL2 = 0x8
+- VERASE = 0x2
+- VINTR = 0x0
+- VKILL = 0x3
+- VLNEXT = 0xf
+- VMADDR_CID_ANY = 0xffffffff
+- VMADDR_CID_HOST = 0x2
+- VMADDR_CID_HYPERVISOR = 0x0
+- VMADDR_CID_RESERVED = 0x1
+- VMADDR_PORT_ANY = 0xffffffff
+- VMIN = 0x5
+- VM_SOCKETS_INVALID_VERSION = 0xffffffff
+- VQUIT = 0x1
+- VREPRINT = 0xb
+- VSTART = 0xd
+- VSTOP = 0xe
+- VSUSP = 0xc
+- VSWTC = 0x9
+- VT0 = 0x0
+- VT1 = 0x10000
+- VTDLY = 0x10000
+- VTIME = 0x7
+- VWERASE = 0xa
+- WALL = 0x40000000
+- WCLONE = 0x80000000
+- WCONTINUED = 0x8
+- WEXITED = 0x4
+- WNOHANG = 0x1
+- WNOTHREAD = 0x20000000
+- WNOWAIT = 0x1000000
+- WORDSIZE = 0x40
+- WSTOPPED = 0x2
+- WUNTRACED = 0x2
+- XATTR_CREATE = 0x1
+- XATTR_REPLACE = 0x2
+- XCASE = 0x4000
+- XTABS = 0xc00
++ B1000000 = 0x17
++ B115200 = 0x11
++ B1152000 = 0x18
++ B1500000 = 0x19
++ B2000000 = 0x1a
++ B230400 = 0x12
++ B2500000 = 0x1b
++ B3000000 = 0x1c
++ B3500000 = 0x1d
++ B4000000 = 0x1e
++ B460800 = 0x13
++ B500000 = 0x14
++ B57600 = 0x10
++ B576000 = 0x15
++ B921600 = 0x16
++ BLKBSZGET = 0x40081270
++ BLKBSZSET = 0x80081271
++ BLKFLSBUF = 0x20001261
++ BLKFRAGET = 0x20001265
++ BLKFRASET = 0x20001264
++ BLKGETSIZE = 0x20001260
++ BLKGETSIZE64 = 0x40081272
++ BLKPBSZGET = 0x2000127b
++ BLKRAGET = 0x20001263
++ BLKRASET = 0x20001262
++ BLKROGET = 0x2000125e
++ BLKROSET = 0x2000125d
++ BLKRRPART = 0x2000125f
++ BLKSECTGET = 0x20001267
++ BLKSECTSET = 0x20001266
++ BLKSSZGET = 0x20001268
++ BOTHER = 0x1f
++ BS1 = 0x8000
++ BSDLY = 0x8000
++ CBAUD = 0xff
++ CBAUDEX = 0x0
++ CIBAUD = 0xff0000
++ CLOCAL = 0x8000
++ CR1 = 0x1000
++ CR2 = 0x2000
++ CR3 = 0x3000
++ CRDLY = 0x3000
++ CREAD = 0x800
++ CS6 = 0x100
++ CS7 = 0x200
++ CS8 = 0x300
++ CSIZE = 0x300
++ CSTOPB = 0x400
++ ECHOCTL = 0x40
++ ECHOE = 0x2
++ ECHOK = 0x4
++ ECHOKE = 0x1
++ ECHONL = 0x10
++ ECHOPRT = 0x20
++ EFD_CLOEXEC = 0x80000
++ EFD_NONBLOCK = 0x800
++ EPOLL_CLOEXEC = 0x80000
++ EXTPROC = 0x10000000
++ FF1 = 0x4000
++ FFDLY = 0x4000
++ FLUSHO = 0x800000
++ FS_IOC_ENABLE_VERITY = 0x80806685
++ FS_IOC_GETFLAGS = 0x40086601
++ FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615
++ FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614
++ FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613
++ F_GETLK = 0x5
++ F_GETLK64 = 0xc
++ F_GETOWN = 0x9
++ F_RDLCK = 0x0
++ F_SETLK = 0x6
++ F_SETLK64 = 0xd
++ F_SETLKW = 0x7
++ F_SETLKW64 = 0xe
++ F_SETOWN = 0x8
++ F_UNLCK = 0x2
++ F_WRLCK = 0x1
++ HUPCL = 0x4000
++ ICANON = 0x100
++ IEXTEN = 0x400
++ IN_CLOEXEC = 0x80000
++ IN_NONBLOCK = 0x800
++ IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9
++ ISIG = 0x80
++ IUCLC = 0x1000
++ IXOFF = 0x400
++ IXON = 0x200
++ MAP_ANON = 0x20
++ MAP_ANONYMOUS = 0x20
++ MAP_DENYWRITE = 0x800
++ MAP_EXECUTABLE = 0x1000
++ MAP_GROWSDOWN = 0x100
++ MAP_HUGETLB = 0x40000
++ MAP_LOCKED = 0x80
++ MAP_NONBLOCK = 0x10000
++ MAP_NORESERVE = 0x40
++ MAP_POPULATE = 0x8000
++ MAP_STACK = 0x20000
++ MAP_SYNC = 0x80000
++ MCL_CURRENT = 0x2000
++ MCL_FUTURE = 0x4000
++ MCL_ONFAULT = 0x8000
++ NFDBITS = 0x40
++ NL2 = 0x200
++ NL3 = 0x300
++ NLDLY = 0x300
++ NOFLSH = 0x80000000
++ NS_GET_NSTYPE = 0x2000b703
++ NS_GET_OWNER_UID = 0x2000b704
++ NS_GET_PARENT = 0x2000b702
++ NS_GET_USERNS = 0x2000b701
++ OLCUC = 0x4
++ ONLCR = 0x2
++ O_APPEND = 0x400
++ O_ASYNC = 0x2000
++ O_CLOEXEC = 0x80000
++ O_CREAT = 0x40
++ O_DIRECT = 0x20000
++ O_DIRECTORY = 0x4000
++ O_DSYNC = 0x1000
++ O_EXCL = 0x80
++ O_FSYNC = 0x101000
++ O_LARGEFILE = 0x0
++ O_NDELAY = 0x800
++ O_NOATIME = 0x40000
++ O_NOCTTY = 0x100
++ O_NOFOLLOW = 0x8000
++ O_NONBLOCK = 0x800
++ O_PATH = 0x200000
++ O_RSYNC = 0x101000
++ O_SYNC = 0x101000
++ O_TMPFILE = 0x404000
++ O_TRUNC = 0x200
++ PARENB = 0x1000
++ PARODD = 0x2000
++ PENDIN = 0x20000000
++ PERF_EVENT_IOC_DISABLE = 0x20002401
++ PERF_EVENT_IOC_ENABLE = 0x20002400
++ PERF_EVENT_IOC_ID = 0x40082407
++ PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b
++ PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409
++ PERF_EVENT_IOC_PERIOD = 0x80082404
++ PERF_EVENT_IOC_QUERY_BPF = 0xc008240a
++ PERF_EVENT_IOC_REFRESH = 0x20002402
++ PERF_EVENT_IOC_RESET = 0x20002403
++ PERF_EVENT_IOC_SET_BPF = 0x80042408
++ PERF_EVENT_IOC_SET_FILTER = 0x80082406
++ PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
++ PPPIOCATTACH = 0x8004743d
++ PPPIOCATTCHAN = 0x80047438
++ PPPIOCCONNECT = 0x8004743a
++ PPPIOCDETACH = 0x8004743c
++ PPPIOCDISCONN = 0x20007439
++ PPPIOCGASYNCMAP = 0x40047458
++ PPPIOCGCHAN = 0x40047437
++ PPPIOCGDEBUG = 0x40047441
++ PPPIOCGFLAGS = 0x4004745a
++ PPPIOCGIDLE = 0x4010743f
++ PPPIOCGIDLE32 = 0x4008743f
++ PPPIOCGIDLE64 = 0x4010743f
++ PPPIOCGL2TPSTATS = 0x40487436
++ PPPIOCGMRU = 0x40047453
++ PPPIOCGRASYNCMAP = 0x40047455
++ PPPIOCGUNIT = 0x40047456
++ PPPIOCGXASYNCMAP = 0x40207450
++ PPPIOCSACTIVE = 0x80107446
++ PPPIOCSASYNCMAP = 0x80047457
++ PPPIOCSCOMPRESS = 0x8010744d
++ PPPIOCSDEBUG = 0x80047440
++ PPPIOCSFLAGS = 0x80047459
++ PPPIOCSMAXCID = 0x80047451
++ PPPIOCSMRRU = 0x8004743b
++ PPPIOCSMRU = 0x80047452
++ PPPIOCSNPMODE = 0x8008744b
++ PPPIOCSPASS = 0x80107447
++ PPPIOCSRASYNCMAP = 0x80047454
++ PPPIOCSXASYNCMAP = 0x8020744f
++ PPPIOCXFERUNIT = 0x2000744e
++ PROT_SAO = 0x10
++ PR_SET_PTRACER_ANY = 0xffffffffffffffff
++ PTRACE_GETEVRREGS = 0x14
++ PTRACE_GETFPREGS = 0xe
++ PTRACE_GETREGS64 = 0x16
++ PTRACE_GETVRREGS = 0x12
++ PTRACE_GETVSRREGS = 0x1b
++ PTRACE_GET_DEBUGREG = 0x19
++ PTRACE_SETEVRREGS = 0x15
++ PTRACE_SETFPREGS = 0xf
++ PTRACE_SETREGS64 = 0x17
++ PTRACE_SETVRREGS = 0x13
++ PTRACE_SETVSRREGS = 0x1c
++ PTRACE_SET_DEBUGREG = 0x1a
++ PTRACE_SINGLEBLOCK = 0x100
++ PTRACE_SYSEMU = 0x1d
++ PTRACE_SYSEMU_SINGLESTEP = 0x1e
++ PT_CCR = 0x26
++ PT_CTR = 0x23
++ PT_DAR = 0x29
++ PT_DSCR = 0x2c
++ PT_DSISR = 0x2a
++ PT_FPR0 = 0x30
++ PT_FPSCR = 0x50
++ PT_LNK = 0x24
++ PT_MSR = 0x21
++ PT_NIP = 0x20
++ PT_ORIG_R3 = 0x22
++ PT_R0 = 0x0
++ PT_R1 = 0x1
++ PT_R10 = 0xa
++ PT_R11 = 0xb
++ PT_R12 = 0xc
++ PT_R13 = 0xd
++ PT_R14 = 0xe
++ PT_R15 = 0xf
++ PT_R16 = 0x10
++ PT_R17 = 0x11
++ PT_R18 = 0x12
++ PT_R19 = 0x13
++ PT_R2 = 0x2
++ PT_R20 = 0x14
++ PT_R21 = 0x15
++ PT_R22 = 0x16
++ PT_R23 = 0x17
++ PT_R24 = 0x18
++ PT_R25 = 0x19
++ PT_R26 = 0x1a
++ PT_R27 = 0x1b
++ PT_R28 = 0x1c
++ PT_R29 = 0x1d
++ PT_R3 = 0x3
++ PT_R30 = 0x1e
++ PT_R31 = 0x1f
++ PT_R4 = 0x4
++ PT_R5 = 0x5
++ PT_R6 = 0x6
++ PT_R7 = 0x7
++ PT_R8 = 0x8
++ PT_R9 = 0x9
++ PT_REGS_COUNT = 0x2c
++ PT_RESULT = 0x2b
++ PT_SOFTE = 0x27
++ PT_TRAP = 0x28
++ PT_VR0 = 0x52
++ PT_VRSAVE = 0x94
++ PT_VSCR = 0x93
++ PT_VSR0 = 0x96
++ PT_VSR31 = 0xd4
++ PT_XER = 0x25
++ RLIMIT_AS = 0x9
++ RLIMIT_MEMLOCK = 0x8
++ RLIMIT_NOFILE = 0x7
++ RLIMIT_NPROC = 0x6
++ RLIMIT_RSS = 0x5
++ RNDADDENTROPY = 0x80085203
++ RNDADDTOENTCNT = 0x80045201
++ RNDCLEARPOOL = 0x20005206
++ RNDGETENTCNT = 0x40045200
++ RNDGETPOOL = 0x40085202
++ RNDRESEEDCRNG = 0x20005207
++ RNDZAPENTCNT = 0x20005204
++ RTC_AIE_OFF = 0x20007002
++ RTC_AIE_ON = 0x20007001
++ RTC_ALM_READ = 0x40247008
++ RTC_ALM_SET = 0x80247007
++ RTC_EPOCH_READ = 0x4008700d
++ RTC_EPOCH_SET = 0x8008700e
++ RTC_IRQP_READ = 0x4008700b
++ RTC_IRQP_SET = 0x8008700c
++ RTC_PIE_OFF = 0x20007006
++ RTC_PIE_ON = 0x20007005
++ RTC_PLL_GET = 0x40207011
++ RTC_PLL_SET = 0x80207012
++ RTC_RD_TIME = 0x40247009
++ RTC_SET_TIME = 0x8024700a
++ RTC_UIE_OFF = 0x20007004
++ RTC_UIE_ON = 0x20007003
++ RTC_VL_CLR = 0x20007014
++ RTC_VL_READ = 0x40047013
++ RTC_WIE_OFF = 0x20007010
++ RTC_WIE_ON = 0x2000700f
++ RTC_WKALM_RD = 0x40287010
++ RTC_WKALM_SET = 0x8028700f
++ SCM_TIMESTAMPING = 0x25
++ SCM_TIMESTAMPING_OPT_STATS = 0x36
++ SCM_TIMESTAMPING_PKTINFO = 0x3a
++ SCM_TIMESTAMPNS = 0x23
++ SCM_TXTIME = 0x3d
++ SCM_WIFI_STATUS = 0x29
++ SFD_CLOEXEC = 0x80000
++ SFD_NONBLOCK = 0x800
++ SIOCATMARK = 0x8905
++ SIOCGPGRP = 0x8904
++ SIOCGSTAMPNS_NEW = 0x40108907
++ SIOCGSTAMP_NEW = 0x40108906
++ SIOCINQ = 0x4004667f
++ SIOCOUTQ = 0x40047473
++ SIOCSPGRP = 0x8902
++ SOCK_CLOEXEC = 0x80000
++ SOCK_DGRAM = 0x2
++ SOCK_NONBLOCK = 0x800
++ SOCK_STREAM = 0x1
++ SOL_SOCKET = 0x1
++ SO_ACCEPTCONN = 0x1e
++ SO_ATTACH_BPF = 0x32
++ SO_ATTACH_REUSEPORT_CBPF = 0x33
++ SO_ATTACH_REUSEPORT_EBPF = 0x34
++ SO_BINDTODEVICE = 0x19
++ SO_BINDTOIFINDEX = 0x3e
++ SO_BPF_EXTENSIONS = 0x30
++ SO_BROADCAST = 0x6
++ SO_BSDCOMPAT = 0xe
++ SO_BUSY_POLL = 0x2e
++ SO_CNX_ADVICE = 0x35
++ SO_COOKIE = 0x39
++ SO_DETACH_REUSEPORT_BPF = 0x44
++ SO_DOMAIN = 0x27
++ SO_DONTROUTE = 0x5
++ SO_ERROR = 0x4
++ SO_INCOMING_CPU = 0x31
++ SO_INCOMING_NAPI_ID = 0x38
++ SO_KEEPALIVE = 0x9
++ SO_LINGER = 0xd
++ SO_LOCK_FILTER = 0x2c
++ SO_MARK = 0x24
++ SO_MAX_PACING_RATE = 0x2f
++ SO_MEMINFO = 0x37
++ SO_NOFCS = 0x2b
++ SO_OOBINLINE = 0xa
++ SO_PASSCRED = 0x14
++ SO_PASSSEC = 0x22
++ SO_PEEK_OFF = 0x2a
++ SO_PEERCRED = 0x15
++ SO_PEERGROUPS = 0x3b
++ SO_PEERSEC = 0x1f
++ SO_PROTOCOL = 0x26
++ SO_RCVBUF = 0x8
++ SO_RCVBUFFORCE = 0x21
++ SO_RCVLOWAT = 0x10
++ SO_RCVTIMEO = 0x12
++ SO_RCVTIMEO_NEW = 0x42
++ SO_RCVTIMEO_OLD = 0x12
++ SO_REUSEADDR = 0x2
++ SO_REUSEPORT = 0xf
++ SO_RXQ_OVFL = 0x28
++ SO_SECURITY_AUTHENTICATION = 0x16
++ SO_SECURITY_ENCRYPTION_NETWORK = 0x18
++ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
++ SO_SELECT_ERR_QUEUE = 0x2d
++ SO_SNDBUF = 0x7
++ SO_SNDBUFFORCE = 0x20
++ SO_SNDLOWAT = 0x11
++ SO_SNDTIMEO = 0x13
++ SO_SNDTIMEO_NEW = 0x43
++ SO_SNDTIMEO_OLD = 0x13
++ SO_TIMESTAMPING = 0x25
++ SO_TIMESTAMPING_NEW = 0x41
++ SO_TIMESTAMPING_OLD = 0x25
++ SO_TIMESTAMPNS = 0x23
++ SO_TIMESTAMPNS_NEW = 0x40
++ SO_TIMESTAMPNS_OLD = 0x23
++ SO_TIMESTAMP_NEW = 0x3f
++ SO_TXTIME = 0x3d
++ SO_TYPE = 0x3
++ SO_WIFI_STATUS = 0x29
++ SO_ZEROCOPY = 0x3c
++ TAB1 = 0x400
++ TAB2 = 0x800
++ TAB3 = 0xc00
++ TABDLY = 0xc00
++ TCFLSH = 0x2000741f
++ TCGETA = 0x40147417
++ TCGETS = 0x402c7413
++ TCSAFLUSH = 0x2
++ TCSBRK = 0x2000741d
++ TCSBRKP = 0x5425
++ TCSETA = 0x80147418
++ TCSETAF = 0x8014741c
++ TCSETAW = 0x80147419
++ TCSETS = 0x802c7414
++ TCSETSF = 0x802c7416
++ TCSETSW = 0x802c7415
++ TCXONC = 0x2000741e
++ TIOCCBRK = 0x5428
++ TIOCCONS = 0x541d
++ TIOCEXCL = 0x540c
++ TIOCGDEV = 0x40045432
++ TIOCGETC = 0x40067412
++ TIOCGETD = 0x5424
++ TIOCGETP = 0x40067408
++ TIOCGEXCL = 0x40045440
++ TIOCGICOUNT = 0x545d
++ TIOCGISO7816 = 0x40285442
++ TIOCGLCKTRMIOS = 0x5456
++ TIOCGLTC = 0x40067474
++ TIOCGPGRP = 0x40047477
++ TIOCGPKT = 0x40045438
++ TIOCGPTLCK = 0x40045439
++ TIOCGPTN = 0x40045430
++ TIOCGPTPEER = 0x20005441
++ TIOCGRS485 = 0x542e
++ TIOCGSERIAL = 0x541e
++ TIOCGSID = 0x5429
++ TIOCGSOFTCAR = 0x5419
++ TIOCGWINSZ = 0x40087468
++ TIOCINQ = 0x4004667f
++ TIOCLINUX = 0x541c
++ TIOCMBIC = 0x5417
++ TIOCMBIS = 0x5416
++ TIOCMGET = 0x5415
++ TIOCMIWAIT = 0x545c
++ TIOCMSET = 0x5418
++ TIOCM_CAR = 0x40
++ TIOCM_CD = 0x40
++ TIOCM_CTS = 0x20
++ TIOCM_DSR = 0x100
++ TIOCM_LOOP = 0x8000
++ TIOCM_OUT1 = 0x2000
++ TIOCM_OUT2 = 0x4000
++ TIOCM_RI = 0x80
++ TIOCM_RNG = 0x80
++ TIOCM_SR = 0x10
++ TIOCM_ST = 0x8
++ TIOCNOTTY = 0x5422
++ TIOCNXCL = 0x540d
++ TIOCOUTQ = 0x40047473
++ TIOCPKT = 0x5420
++ TIOCSBRK = 0x5427
++ TIOCSCTTY = 0x540e
++ TIOCSERCONFIG = 0x5453
++ TIOCSERGETLSR = 0x5459
++ TIOCSERGETMULTI = 0x545a
++ TIOCSERGSTRUCT = 0x5458
++ TIOCSERGWILD = 0x5454
++ TIOCSERSETMULTI = 0x545b
++ TIOCSERSWILD = 0x5455
++ TIOCSER_TEMT = 0x1
++ TIOCSETC = 0x80067411
++ TIOCSETD = 0x5423
++ TIOCSETN = 0x8006740a
++ TIOCSETP = 0x80067409
++ TIOCSIG = 0x80045436
++ TIOCSISO7816 = 0xc0285443
++ TIOCSLCKTRMIOS = 0x5457
++ TIOCSLTC = 0x80067475
++ TIOCSPGRP = 0x80047476
++ TIOCSPTLCK = 0x80045431
++ TIOCSRS485 = 0x542f
++ TIOCSSERIAL = 0x541f
++ TIOCSSOFTCAR = 0x541a
++ TIOCSTART = 0x2000746e
++ TIOCSTI = 0x5412
++ TIOCSTOP = 0x2000746f
++ TIOCSWINSZ = 0x80087467
++ TIOCVHANGUP = 0x5437
++ TOSTOP = 0x400000
++ TUNATTACHFILTER = 0x801054d5
++ TUNDETACHFILTER = 0x801054d6
++ TUNGETDEVNETNS = 0x200054e3
++ TUNGETFEATURES = 0x400454cf
++ TUNGETFILTER = 0x401054db
++ TUNGETIFF = 0x400454d2
++ TUNGETSNDBUF = 0x400454d3
++ TUNGETVNETBE = 0x400454df
++ TUNGETVNETHDRSZ = 0x400454d7
++ TUNGETVNETLE = 0x400454dd
++ TUNSETCARRIER = 0x800454e2
++ TUNSETDEBUG = 0x800454c9
++ TUNSETFILTEREBPF = 0x400454e1
++ TUNSETGROUP = 0x800454ce
++ TUNSETIFF = 0x800454ca
++ TUNSETIFINDEX = 0x800454da
++ TUNSETLINK = 0x800454cd
++ TUNSETNOCSUM = 0x800454c8
++ TUNSETOFFLOAD = 0x800454d0
++ TUNSETOWNER = 0x800454cc
++ TUNSETPERSIST = 0x800454cb
++ TUNSETQUEUE = 0x800454d9
++ TUNSETSNDBUF = 0x800454d4
++ TUNSETSTEERINGEBPF = 0x400454e0
++ TUNSETTXFILTER = 0x800454d1
++ TUNSETVNETBE = 0x800454de
++ TUNSETVNETHDRSZ = 0x800454d8
++ TUNSETVNETLE = 0x800454dc
++ UBI_IOCATT = 0x80186f40
++ UBI_IOCDET = 0x80046f41
++ UBI_IOCEBCH = 0x80044f02
++ UBI_IOCEBER = 0x80044f01
++ UBI_IOCEBISMAP = 0x40044f05
++ UBI_IOCEBMAP = 0x80084f03
++ UBI_IOCEBUNMAP = 0x80044f04
++ UBI_IOCMKVOL = 0x80986f00
++ UBI_IOCRMVOL = 0x80046f01
++ UBI_IOCRNVOL = 0x91106f03
++ UBI_IOCRPEB = 0x80046f04
++ UBI_IOCRSVOL = 0x800c6f02
++ UBI_IOCSETVOLPROP = 0x80104f06
++ UBI_IOCSPEB = 0x80046f05
++ UBI_IOCVOLCRBLK = 0x80804f07
++ UBI_IOCVOLRMBLK = 0x20004f08
++ UBI_IOCVOLUP = 0x80084f00
++ VDISCARD = 0x10
++ VEOF = 0x4
++ VEOL = 0x6
++ VEOL2 = 0x8
++ VMIN = 0x5
++ VREPRINT = 0xb
++ VSTART = 0xd
++ VSTOP = 0xe
++ VSUSP = 0xc
++ VSWTC = 0x9
++ VT1 = 0x10000
++ VTDLY = 0x10000
++ VTIME = 0x7
++ VWERASE = 0xa
++ WDIOC_GETBOOTSTATUS = 0x40045702
++ WDIOC_GETPRETIMEOUT = 0x40045709
++ WDIOC_GETSTATUS = 0x40045701
++ WDIOC_GETSUPPORT = 0x40285700
++ WDIOC_GETTEMP = 0x40045703
++ WDIOC_GETTIMELEFT = 0x4004570a
++ WDIOC_GETTIMEOUT = 0x40045707
++ WDIOC_KEEPALIVE = 0x40045705
++ WDIOC_SETOPTIONS = 0x40045704
++ WORDSIZE = 0x40
++ XCASE = 0x4000
++ XTABS = 0xc00
+ )
+
+ // Errors
+ const (
+- E2BIG = syscall.Errno(0x7)
+- EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x62)
+ EADDRNOTAVAIL = syscall.Errno(0x63)
+ EADV = syscall.Errno(0x44)
+ EAFNOSUPPORT = syscall.Errno(0x61)
+- EAGAIN = syscall.Errno(0xb)
+ EALREADY = syscall.Errno(0x72)
+ EBADE = syscall.Errno(0x34)
+- EBADF = syscall.Errno(0x9)
+ EBADFD = syscall.Errno(0x4d)
+ EBADMSG = syscall.Errno(0x4a)
+ EBADR = syscall.Errno(0x35)
+ EBADRQC = syscall.Errno(0x38)
+ EBADSLT = syscall.Errno(0x39)
+ EBFONT = syscall.Errno(0x3b)
+- EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x7d)
+- ECHILD = syscall.Errno(0xa)
+ ECHRNG = syscall.Errno(0x2c)
+ ECOMM = syscall.Errno(0x46)
+ ECONNABORTED = syscall.Errno(0x67)
+@@ -1943,23 +562,15 @@ const (
+ EDEADLK = syscall.Errno(0x23)
+ EDEADLOCK = syscall.Errno(0x3a)
+ EDESTADDRREQ = syscall.Errno(0x59)
+- EDOM = syscall.Errno(0x21)
+ EDOTDOT = syscall.Errno(0x49)
+ EDQUOT = syscall.Errno(0x7a)
+- EEXIST = syscall.Errno(0x11)
+- EFAULT = syscall.Errno(0xe)
+- EFBIG = syscall.Errno(0x1b)
+ EHOSTDOWN = syscall.Errno(0x70)
+ EHOSTUNREACH = syscall.Errno(0x71)
+ EHWPOISON = syscall.Errno(0x85)
+ EIDRM = syscall.Errno(0x2b)
+ EILSEQ = syscall.Errno(0x54)
+ EINPROGRESS = syscall.Errno(0x73)
+- EINTR = syscall.Errno(0x4)
+- EINVAL = syscall.Errno(0x16)
+- EIO = syscall.Errno(0x5)
+ EISCONN = syscall.Errno(0x6a)
+- EISDIR = syscall.Errno(0x15)
+ EISNAM = syscall.Errno(0x78)
+ EKEYEXPIRED = syscall.Errno(0x7f)
+ EKEYREJECTED = syscall.Errno(0x81)
+@@ -1976,8 +587,6 @@ const (
+ ELNRNG = syscall.Errno(0x30)
+ ELOOP = syscall.Errno(0x28)
+ EMEDIUMTYPE = syscall.Errno(0x7c)
+- EMFILE = syscall.Errno(0x18)
+- EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x5a)
+ EMULTIHOP = syscall.Errno(0x48)
+ ENAMETOOLONG = syscall.Errno(0x24)
+@@ -1985,103 +594,70 @@ const (
+ ENETDOWN = syscall.Errno(0x64)
+ ENETRESET = syscall.Errno(0x66)
+ ENETUNREACH = syscall.Errno(0x65)
+- ENFILE = syscall.Errno(0x17)
+ ENOANO = syscall.Errno(0x37)
+ ENOBUFS = syscall.Errno(0x69)
+ ENOCSI = syscall.Errno(0x32)
+ ENODATA = syscall.Errno(0x3d)
+- ENODEV = syscall.Errno(0x13)
+- ENOENT = syscall.Errno(0x2)
+- ENOEXEC = syscall.Errno(0x8)
+ ENOKEY = syscall.Errno(0x7e)
+ ENOLCK = syscall.Errno(0x25)
+ ENOLINK = syscall.Errno(0x43)
+ ENOMEDIUM = syscall.Errno(0x7b)
+- ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x2a)
+ ENONET = syscall.Errno(0x40)
+ ENOPKG = syscall.Errno(0x41)
+ ENOPROTOOPT = syscall.Errno(0x5c)
+- ENOSPC = syscall.Errno(0x1c)
+ ENOSR = syscall.Errno(0x3f)
+ ENOSTR = syscall.Errno(0x3c)
+ ENOSYS = syscall.Errno(0x26)
+- ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x6b)
+- ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x27)
+ ENOTNAM = syscall.Errno(0x76)
+ ENOTRECOVERABLE = syscall.Errno(0x83)
+ ENOTSOCK = syscall.Errno(0x58)
+ ENOTSUP = syscall.Errno(0x5f)
+- ENOTTY = syscall.Errno(0x19)
+ ENOTUNIQ = syscall.Errno(0x4c)
+- ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x5f)
+ EOVERFLOW = syscall.Errno(0x4b)
+ EOWNERDEAD = syscall.Errno(0x82)
+- EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x60)
+- EPIPE = syscall.Errno(0x20)
+ EPROTO = syscall.Errno(0x47)
+ EPROTONOSUPPORT = syscall.Errno(0x5d)
+ EPROTOTYPE = syscall.Errno(0x5b)
+- ERANGE = syscall.Errno(0x22)
+ EREMCHG = syscall.Errno(0x4e)
+ EREMOTE = syscall.Errno(0x42)
+ EREMOTEIO = syscall.Errno(0x79)
+ ERESTART = syscall.Errno(0x55)
+ ERFKILL = syscall.Errno(0x84)
+- EROFS = syscall.Errno(0x1e)
+ ESHUTDOWN = syscall.Errno(0x6c)
+ ESOCKTNOSUPPORT = syscall.Errno(0x5e)
+- ESPIPE = syscall.Errno(0x1d)
+- ESRCH = syscall.Errno(0x3)
+ ESRMNT = syscall.Errno(0x45)
+ ESTALE = syscall.Errno(0x74)
+ ESTRPIPE = syscall.Errno(0x56)
+ ETIME = syscall.Errno(0x3e)
+ ETIMEDOUT = syscall.Errno(0x6e)
+ ETOOMANYREFS = syscall.Errno(0x6d)
+- ETXTBSY = syscall.Errno(0x1a)
+ EUCLEAN = syscall.Errno(0x75)
+ EUNATCH = syscall.Errno(0x31)
+ EUSERS = syscall.Errno(0x57)
+- EWOULDBLOCK = syscall.Errno(0xb)
+- EXDEV = syscall.Errno(0x12)
+ EXFULL = syscall.Errno(0x36)
+ )
+
+ // Signals
+ const (
+- SIGABRT = syscall.Signal(0x6)
+- SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0x7)
+ SIGCHLD = syscall.Signal(0x11)
+ SIGCLD = syscall.Signal(0x11)
+ SIGCONT = syscall.Signal(0x12)
+- SIGFPE = syscall.Signal(0x8)
+- SIGHUP = syscall.Signal(0x1)
+- SIGILL = syscall.Signal(0x4)
+- SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x1d)
+- SIGIOT = syscall.Signal(0x6)
+- SIGKILL = syscall.Signal(0x9)
+- SIGPIPE = syscall.Signal(0xd)
+ SIGPOLL = syscall.Signal(0x1d)
+ SIGPROF = syscall.Signal(0x1b)
+ SIGPWR = syscall.Signal(0x1e)
+- SIGQUIT = syscall.Signal(0x3)
+- SIGSEGV = syscall.Signal(0xb)
+ SIGSTKFLT = syscall.Signal(0x10)
+ SIGSTOP = syscall.Signal(0x13)
+ SIGSYS = syscall.Signal(0x1f)
+- SIGTERM = syscall.Signal(0xf)
+- SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x14)
+ SIGTTIN = syscall.Signal(0x15)
+ SIGTTOU = syscall.Signal(0x16)
+- SIGUNUSED = syscall.Signal(0x1f)
+ SIGURG = syscall.Signal(0x17)
+ SIGUSR1 = syscall.Signal(0xa)
+ SIGUSR2 = syscall.Signal(0xc)
+@@ -2092,172 +668,180 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "no such device or address",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource temporarily unavailable",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "device or resource busy",
+- 17: "file exists",
+- 18: "invalid cross-device link",
+- 19: "no such device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "numerical result out of range",
+- 35: "resource deadlock avoided",
+- 36: "file name too long",
+- 37: "no locks available",
+- 38: "function not implemented",
+- 39: "directory not empty",
+- 40: "too many levels of symbolic links",
+- 42: "no message of desired type",
+- 43: "identifier removed",
+- 44: "channel number out of range",
+- 45: "level 2 not synchronized",
+- 46: "level 3 halted",
+- 47: "level 3 reset",
+- 48: "link number out of range",
+- 49: "protocol driver not attached",
+- 50: "no CSI structure available",
+- 51: "level 2 halted",
+- 52: "invalid exchange",
+- 53: "invalid request descriptor",
+- 54: "exchange full",
+- 55: "no anode",
+- 56: "invalid request code",
+- 57: "invalid slot",
+- 58: "file locking deadlock error",
+- 59: "bad font file format",
+- 60: "device not a stream",
+- 61: "no data available",
+- 62: "timer expired",
+- 63: "out of streams resources",
+- 64: "machine is not on the network",
+- 65: "package not installed",
+- 66: "object is remote",
+- 67: "link has been severed",
+- 68: "advertise error",
+- 69: "srmount error",
+- 70: "communication error on send",
+- 71: "protocol error",
+- 72: "multihop attempted",
+- 73: "RFS specific error",
+- 74: "bad message",
+- 75: "value too large for defined data type",
+- 76: "name not unique on network",
+- 77: "file descriptor in bad state",
+- 78: "remote address changed",
+- 79: "can not access a needed shared library",
+- 80: "accessing a corrupted shared library",
+- 81: ".lib section in a.out corrupted",
+- 82: "attempting to link in too many shared libraries",
+- 83: "cannot exec a shared library directly",
+- 84: "invalid or incomplete multibyte or wide character",
+- 85: "interrupted system call should be restarted",
+- 86: "streams pipe error",
+- 87: "too many users",
+- 88: "socket operation on non-socket",
+- 89: "destination address required",
+- 90: "message too long",
+- 91: "protocol wrong type for socket",
+- 92: "protocol not available",
+- 93: "protocol not supported",
+- 94: "socket type not supported",
+- 95: "operation not supported",
+- 96: "protocol family not supported",
+- 97: "address family not supported by protocol",
+- 98: "address already in use",
+- 99: "cannot assign requested address",
+- 100: "network is down",
+- 101: "network is unreachable",
+- 102: "network dropped connection on reset",
+- 103: "software caused connection abort",
+- 104: "connection reset by peer",
+- 105: "no buffer space available",
+- 106: "transport endpoint is already connected",
+- 107: "transport endpoint is not connected",
+- 108: "cannot send after transport endpoint shutdown",
+- 109: "too many references: cannot splice",
+- 110: "connection timed out",
+- 111: "connection refused",
+- 112: "host is down",
+- 113: "no route to host",
+- 114: "operation already in progress",
+- 115: "operation now in progress",
+- 116: "stale file handle",
+- 117: "structure needs cleaning",
+- 118: "not a XENIX named type file",
+- 119: "no XENIX semaphores available",
+- 120: "is a named type file",
+- 121: "remote I/O error",
+- 122: "disk quota exceeded",
+- 123: "no medium found",
+- 124: "wrong medium type",
+- 125: "operation canceled",
+- 126: "required key not available",
+- 127: "key has expired",
+- 128: "key has been revoked",
+- 129: "key was rejected by service",
+- 130: "owner died",
+- 131: "state not recoverable",
+- 132: "operation not possible due to RF-kill",
+- 133: "memory page has hardware error",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "no such device or address"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EAGAIN", "resource temporarily unavailable"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device or resource busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "invalid cross-device link"},
++ {19, "ENODEV", "no such device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "numerical result out of range"},
++ {35, "EDEADLK", "resource deadlock avoided"},
++ {36, "ENAMETOOLONG", "file name too long"},
++ {37, "ENOLCK", "no locks available"},
++ {38, "ENOSYS", "function not implemented"},
++ {39, "ENOTEMPTY", "directory not empty"},
++ {40, "ELOOP", "too many levels of symbolic links"},
++ {42, "ENOMSG", "no message of desired type"},
++ {43, "EIDRM", "identifier removed"},
++ {44, "ECHRNG", "channel number out of range"},
++ {45, "EL2NSYNC", "level 2 not synchronized"},
++ {46, "EL3HLT", "level 3 halted"},
++ {47, "EL3RST", "level 3 reset"},
++ {48, "ELNRNG", "link number out of range"},
++ {49, "EUNATCH", "protocol driver not attached"},
++ {50, "ENOCSI", "no CSI structure available"},
++ {51, "EL2HLT", "level 2 halted"},
++ {52, "EBADE", "invalid exchange"},
++ {53, "EBADR", "invalid request descriptor"},
++ {54, "EXFULL", "exchange full"},
++ {55, "ENOANO", "no anode"},
++ {56, "EBADRQC", "invalid request code"},
++ {57, "EBADSLT", "invalid slot"},
++ {58, "EDEADLOCK", "file locking deadlock error"},
++ {59, "EBFONT", "bad font file format"},
++ {60, "ENOSTR", "device not a stream"},
++ {61, "ENODATA", "no data available"},
++ {62, "ETIME", "timer expired"},
++ {63, "ENOSR", "out of streams resources"},
++ {64, "ENONET", "machine is not on the network"},
++ {65, "ENOPKG", "package not installed"},
++ {66, "EREMOTE", "object is remote"},
++ {67, "ENOLINK", "link has been severed"},
++ {68, "EADV", "advertise error"},
++ {69, "ESRMNT", "srmount error"},
++ {70, "ECOMM", "communication error on send"},
++ {71, "EPROTO", "protocol error"},
++ {72, "EMULTIHOP", "multihop attempted"},
++ {73, "EDOTDOT", "RFS specific error"},
++ {74, "EBADMSG", "bad message"},
++ {75, "EOVERFLOW", "value too large for defined data type"},
++ {76, "ENOTUNIQ", "name not unique on network"},
++ {77, "EBADFD", "file descriptor in bad state"},
++ {78, "EREMCHG", "remote address changed"},
++ {79, "ELIBACC", "can not access a needed shared library"},
++ {80, "ELIBBAD", "accessing a corrupted shared library"},
++ {81, "ELIBSCN", ".lib section in a.out corrupted"},
++ {82, "ELIBMAX", "attempting to link in too many shared libraries"},
++ {83, "ELIBEXEC", "cannot exec a shared library directly"},
++ {84, "EILSEQ", "invalid or incomplete multibyte or wide character"},
++ {85, "ERESTART", "interrupted system call should be restarted"},
++ {86, "ESTRPIPE", "streams pipe error"},
++ {87, "EUSERS", "too many users"},
++ {88, "ENOTSOCK", "socket operation on non-socket"},
++ {89, "EDESTADDRREQ", "destination address required"},
++ {90, "EMSGSIZE", "message too long"},
++ {91, "EPROTOTYPE", "protocol wrong type for socket"},
++ {92, "ENOPROTOOPT", "protocol not available"},
++ {93, "EPROTONOSUPPORT", "protocol not supported"},
++ {94, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {95, "ENOTSUP", "operation not supported"},
++ {96, "EPFNOSUPPORT", "protocol family not supported"},
++ {97, "EAFNOSUPPORT", "address family not supported by protocol"},
++ {98, "EADDRINUSE", "address already in use"},
++ {99, "EADDRNOTAVAIL", "cannot assign requested address"},
++ {100, "ENETDOWN", "network is down"},
++ {101, "ENETUNREACH", "network is unreachable"},
++ {102, "ENETRESET", "network dropped connection on reset"},
++ {103, "ECONNABORTED", "software caused connection abort"},
++ {104, "ECONNRESET", "connection reset by peer"},
++ {105, "ENOBUFS", "no buffer space available"},
++ {106, "EISCONN", "transport endpoint is already connected"},
++ {107, "ENOTCONN", "transport endpoint is not connected"},
++ {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"},
++ {109, "ETOOMANYREFS", "too many references: cannot splice"},
++ {110, "ETIMEDOUT", "connection timed out"},
++ {111, "ECONNREFUSED", "connection refused"},
++ {112, "EHOSTDOWN", "host is down"},
++ {113, "EHOSTUNREACH", "no route to host"},
++ {114, "EALREADY", "operation already in progress"},
++ {115, "EINPROGRESS", "operation now in progress"},
++ {116, "ESTALE", "stale file handle"},
++ {117, "EUCLEAN", "structure needs cleaning"},
++ {118, "ENOTNAM", "not a XENIX named type file"},
++ {119, "ENAVAIL", "no XENIX semaphores available"},
++ {120, "EISNAM", "is a named type file"},
++ {121, "EREMOTEIO", "remote I/O error"},
++ {122, "EDQUOT", "disk quota exceeded"},
++ {123, "ENOMEDIUM", "no medium found"},
++ {124, "EMEDIUMTYPE", "wrong medium type"},
++ {125, "ECANCELED", "operation canceled"},
++ {126, "ENOKEY", "required key not available"},
++ {127, "EKEYEXPIRED", "key has expired"},
++ {128, "EKEYREVOKED", "key has been revoked"},
++ {129, "EKEYREJECTED", "key was rejected by service"},
++ {130, "EOWNERDEAD", "owner died"},
++ {131, "ENOTRECOVERABLE", "state not recoverable"},
++ {132, "ERFKILL", "operation not possible due to RF-kill"},
++ {133, "EHWPOISON", "memory page has hardware error"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/breakpoint trap",
+- 6: "aborted",
+- 7: "bus error",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "user defined signal 1",
+- 11: "segmentation fault",
+- 12: "user defined signal 2",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "stack fault",
+- 17: "child exited",
+- 18: "continued",
+- 19: "stopped (signal)",
+- 20: "stopped",
+- 21: "stopped (tty input)",
+- 22: "stopped (tty output)",
+- 23: "urgent I/O condition",
+- 24: "CPU time limit exceeded",
+- 25: "file size limit exceeded",
+- 26: "virtual timer expired",
+- 27: "profiling timer expired",
+- 28: "window changed",
+- 29: "I/O possible",
+- 30: "power failure",
+- 31: "bad system call",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/breakpoint trap"},
++ {6, "SIGABRT", "aborted"},
++ {7, "SIGBUS", "bus error"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGUSR1", "user defined signal 1"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGUSR2", "user defined signal 2"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGSTKFLT", "stack fault"},
++ {17, "SIGCHLD", "child exited"},
++ {18, "SIGCONT", "continued"},
++ {19, "SIGSTOP", "stopped (signal)"},
++ {20, "SIGTSTP", "stopped"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGURG", "urgent I/O condition"},
++ {24, "SIGXCPU", "CPU time limit exceeded"},
++ {25, "SIGXFSZ", "file size limit exceeded"},
++ {26, "SIGVTALRM", "virtual timer expired"},
++ {27, "SIGPROF", "profiling timer expired"},
++ {28, "SIGWINCH", "window changed"},
++ {29, "SIGIO", "I/O possible"},
++ {30, "SIGPWR", "power failure"},
++ {31, "SIGSYS", "bad system call"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go
+new file mode 100644
+index 00000000..6a0b2d29
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go
+@@ -0,0 +1,771 @@
++// mkerrors.sh -Wall -Werror -static -I/tmp/include
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build riscv64,linux
++
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
++// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
++
++package unix
++
++import "syscall"
++
++const (
++ B1000000 = 0x1008
++ B115200 = 0x1002
++ B1152000 = 0x1009
++ B1500000 = 0x100a
++ B2000000 = 0x100b
++ B230400 = 0x1003
++ B2500000 = 0x100c
++ B3000000 = 0x100d
++ B3500000 = 0x100e
++ B4000000 = 0x100f
++ B460800 = 0x1004
++ B500000 = 0x1005
++ B57600 = 0x1001
++ B576000 = 0x1006
++ B921600 = 0x1007
++ BLKBSZGET = 0x80081270
++ BLKBSZSET = 0x40081271
++ BLKFLSBUF = 0x1261
++ BLKFRAGET = 0x1265
++ BLKFRASET = 0x1264
++ BLKGETSIZE = 0x1260
++ BLKGETSIZE64 = 0x80081272
++ BLKPBSZGET = 0x127b
++ BLKRAGET = 0x1263
++ BLKRASET = 0x1262
++ BLKROGET = 0x125e
++ BLKROSET = 0x125d
++ BLKRRPART = 0x125f
++ BLKSECTGET = 0x1267
++ BLKSECTSET = 0x1266
++ BLKSSZGET = 0x1268
++ BOTHER = 0x1000
++ BS1 = 0x2000
++ BSDLY = 0x2000
++ CBAUD = 0x100f
++ CBAUDEX = 0x1000
++ CIBAUD = 0x100f0000
++ CLOCAL = 0x800
++ CR1 = 0x200
++ CR2 = 0x400
++ CR3 = 0x600
++ CRDLY = 0x600
++ CREAD = 0x80
++ CS6 = 0x10
++ CS7 = 0x20
++ CS8 = 0x30
++ CSIZE = 0x30
++ CSTOPB = 0x40
++ ECHOCTL = 0x200
++ ECHOE = 0x10
++ ECHOK = 0x20
++ ECHOKE = 0x800
++ ECHONL = 0x40
++ ECHOPRT = 0x400
++ EFD_CLOEXEC = 0x80000
++ EFD_NONBLOCK = 0x800
++ EPOLL_CLOEXEC = 0x80000
++ EXTPROC = 0x10000
++ FF1 = 0x8000
++ FFDLY = 0x8000
++ FLUSHO = 0x1000
++ FS_IOC_ENABLE_VERITY = 0x40806685
++ FS_IOC_GETFLAGS = 0x80086601
++ FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615
++ FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614
++ FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613
++ F_GETLK = 0x5
++ F_GETLK64 = 0x5
++ F_GETOWN = 0x9
++ F_RDLCK = 0x0
++ F_SETLK = 0x6
++ F_SETLK64 = 0x6
++ F_SETLKW = 0x7
++ F_SETLKW64 = 0x7
++ F_SETOWN = 0x8
++ F_UNLCK = 0x2
++ F_WRLCK = 0x1
++ HUPCL = 0x400
++ ICANON = 0x2
++ IEXTEN = 0x8000
++ IN_CLOEXEC = 0x80000
++ IN_NONBLOCK = 0x800
++ IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9
++ ISIG = 0x1
++ IUCLC = 0x200
++ IXOFF = 0x1000
++ IXON = 0x400
++ MAP_ANON = 0x20
++ MAP_ANONYMOUS = 0x20
++ MAP_DENYWRITE = 0x800
++ MAP_EXECUTABLE = 0x1000
++ MAP_GROWSDOWN = 0x100
++ MAP_HUGETLB = 0x40000
++ MAP_LOCKED = 0x2000
++ MAP_NONBLOCK = 0x10000
++ MAP_NORESERVE = 0x4000
++ MAP_POPULATE = 0x8000
++ MAP_STACK = 0x20000
++ MAP_SYNC = 0x80000
++ MCL_CURRENT = 0x1
++ MCL_FUTURE = 0x2
++ MCL_ONFAULT = 0x4
++ NFDBITS = 0x40
++ NLDLY = 0x100
++ NOFLSH = 0x80
++ NS_GET_NSTYPE = 0xb703
++ NS_GET_OWNER_UID = 0xb704
++ NS_GET_PARENT = 0xb702
++ NS_GET_USERNS = 0xb701
++ OLCUC = 0x2
++ ONLCR = 0x4
++ O_APPEND = 0x400
++ O_ASYNC = 0x2000
++ O_CLOEXEC = 0x80000
++ O_CREAT = 0x40
++ O_DIRECT = 0x4000
++ O_DIRECTORY = 0x10000
++ O_DSYNC = 0x1000
++ O_EXCL = 0x80
++ O_FSYNC = 0x101000
++ O_LARGEFILE = 0x0
++ O_NDELAY = 0x800
++ O_NOATIME = 0x40000
++ O_NOCTTY = 0x100
++ O_NOFOLLOW = 0x20000
++ O_NONBLOCK = 0x800
++ O_PATH = 0x200000
++ O_RSYNC = 0x101000
++ O_SYNC = 0x101000
++ O_TMPFILE = 0x410000
++ O_TRUNC = 0x200
++ PARENB = 0x100
++ PARODD = 0x200
++ PENDIN = 0x4000
++ PERF_EVENT_IOC_DISABLE = 0x2401
++ PERF_EVENT_IOC_ENABLE = 0x2400
++ PERF_EVENT_IOC_ID = 0x80082407
++ PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b
++ PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409
++ PERF_EVENT_IOC_PERIOD = 0x40082404
++ PERF_EVENT_IOC_QUERY_BPF = 0xc008240a
++ PERF_EVENT_IOC_REFRESH = 0x2402
++ PERF_EVENT_IOC_RESET = 0x2403
++ PERF_EVENT_IOC_SET_BPF = 0x40042408
++ PERF_EVENT_IOC_SET_FILTER = 0x40082406
++ PERF_EVENT_IOC_SET_OUTPUT = 0x2405
++ PPPIOCATTACH = 0x4004743d
++ PPPIOCATTCHAN = 0x40047438
++ PPPIOCCONNECT = 0x4004743a
++ PPPIOCDETACH = 0x4004743c
++ PPPIOCDISCONN = 0x7439
++ PPPIOCGASYNCMAP = 0x80047458
++ PPPIOCGCHAN = 0x80047437
++ PPPIOCGDEBUG = 0x80047441
++ PPPIOCGFLAGS = 0x8004745a
++ PPPIOCGIDLE = 0x8010743f
++ PPPIOCGIDLE32 = 0x8008743f
++ PPPIOCGIDLE64 = 0x8010743f
++ PPPIOCGL2TPSTATS = 0x80487436
++ PPPIOCGMRU = 0x80047453
++ PPPIOCGRASYNCMAP = 0x80047455
++ PPPIOCGUNIT = 0x80047456
++ PPPIOCGXASYNCMAP = 0x80207450
++ PPPIOCSACTIVE = 0x40107446
++ PPPIOCSASYNCMAP = 0x40047457
++ PPPIOCSCOMPRESS = 0x4010744d
++ PPPIOCSDEBUG = 0x40047440
++ PPPIOCSFLAGS = 0x40047459
++ PPPIOCSMAXCID = 0x40047451
++ PPPIOCSMRRU = 0x4004743b
++ PPPIOCSMRU = 0x40047452
++ PPPIOCSNPMODE = 0x4008744b
++ PPPIOCSPASS = 0x40107447
++ PPPIOCSRASYNCMAP = 0x40047454
++ PPPIOCSXASYNCMAP = 0x4020744f
++ PPPIOCXFERUNIT = 0x744e
++ PR_SET_PTRACER_ANY = 0xffffffffffffffff
++ RLIMIT_AS = 0x9
++ RLIMIT_MEMLOCK = 0x8
++ RLIMIT_NOFILE = 0x7
++ RLIMIT_NPROC = 0x6
++ RLIMIT_RSS = 0x5
++ RNDADDENTROPY = 0x40085203
++ RNDADDTOENTCNT = 0x40045201
++ RNDCLEARPOOL = 0x5206
++ RNDGETENTCNT = 0x80045200
++ RNDGETPOOL = 0x80085202
++ RNDRESEEDCRNG = 0x5207
++ RNDZAPENTCNT = 0x5204
++ RTC_AIE_OFF = 0x7002
++ RTC_AIE_ON = 0x7001
++ RTC_ALM_READ = 0x80247008
++ RTC_ALM_SET = 0x40247007
++ RTC_EPOCH_READ = 0x8008700d
++ RTC_EPOCH_SET = 0x4008700e
++ RTC_IRQP_READ = 0x8008700b
++ RTC_IRQP_SET = 0x4008700c
++ RTC_PIE_OFF = 0x7006
++ RTC_PIE_ON = 0x7005
++ RTC_PLL_GET = 0x80207011
++ RTC_PLL_SET = 0x40207012
++ RTC_RD_TIME = 0x80247009
++ RTC_SET_TIME = 0x4024700a
++ RTC_UIE_OFF = 0x7004
++ RTC_UIE_ON = 0x7003
++ RTC_VL_CLR = 0x7014
++ RTC_VL_READ = 0x80047013
++ RTC_WIE_OFF = 0x7010
++ RTC_WIE_ON = 0x700f
++ RTC_WKALM_RD = 0x80287010
++ RTC_WKALM_SET = 0x4028700f
++ SCM_TIMESTAMPING = 0x25
++ SCM_TIMESTAMPING_OPT_STATS = 0x36
++ SCM_TIMESTAMPING_PKTINFO = 0x3a
++ SCM_TIMESTAMPNS = 0x23
++ SCM_TXTIME = 0x3d
++ SCM_WIFI_STATUS = 0x29
++ SFD_CLOEXEC = 0x80000
++ SFD_NONBLOCK = 0x800
++ SIOCATMARK = 0x8905
++ SIOCGPGRP = 0x8904
++ SIOCGSTAMPNS_NEW = 0x80108907
++ SIOCGSTAMP_NEW = 0x80108906
++ SIOCINQ = 0x541b
++ SIOCOUTQ = 0x5411
++ SIOCSPGRP = 0x8902
++ SOCK_CLOEXEC = 0x80000
++ SOCK_DGRAM = 0x2
++ SOCK_NONBLOCK = 0x800
++ SOCK_STREAM = 0x1
++ SOL_SOCKET = 0x1
++ SO_ACCEPTCONN = 0x1e
++ SO_ATTACH_BPF = 0x32
++ SO_ATTACH_REUSEPORT_CBPF = 0x33
++ SO_ATTACH_REUSEPORT_EBPF = 0x34
++ SO_BINDTODEVICE = 0x19
++ SO_BINDTOIFINDEX = 0x3e
++ SO_BPF_EXTENSIONS = 0x30
++ SO_BROADCAST = 0x6
++ SO_BSDCOMPAT = 0xe
++ SO_BUSY_POLL = 0x2e
++ SO_CNX_ADVICE = 0x35
++ SO_COOKIE = 0x39
++ SO_DETACH_REUSEPORT_BPF = 0x44
++ SO_DOMAIN = 0x27
++ SO_DONTROUTE = 0x5
++ SO_ERROR = 0x4
++ SO_INCOMING_CPU = 0x31
++ SO_INCOMING_NAPI_ID = 0x38
++ SO_KEEPALIVE = 0x9
++ SO_LINGER = 0xd
++ SO_LOCK_FILTER = 0x2c
++ SO_MARK = 0x24
++ SO_MAX_PACING_RATE = 0x2f
++ SO_MEMINFO = 0x37
++ SO_NOFCS = 0x2b
++ SO_OOBINLINE = 0xa
++ SO_PASSCRED = 0x10
++ SO_PASSSEC = 0x22
++ SO_PEEK_OFF = 0x2a
++ SO_PEERCRED = 0x11
++ SO_PEERGROUPS = 0x3b
++ SO_PEERSEC = 0x1f
++ SO_PROTOCOL = 0x26
++ SO_RCVBUF = 0x8
++ SO_RCVBUFFORCE = 0x21
++ SO_RCVLOWAT = 0x12
++ SO_RCVTIMEO = 0x14
++ SO_RCVTIMEO_NEW = 0x42
++ SO_RCVTIMEO_OLD = 0x14
++ SO_REUSEADDR = 0x2
++ SO_REUSEPORT = 0xf
++ SO_RXQ_OVFL = 0x28
++ SO_SECURITY_AUTHENTICATION = 0x16
++ SO_SECURITY_ENCRYPTION_NETWORK = 0x18
++ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
++ SO_SELECT_ERR_QUEUE = 0x2d
++ SO_SNDBUF = 0x7
++ SO_SNDBUFFORCE = 0x20
++ SO_SNDLOWAT = 0x13
++ SO_SNDTIMEO = 0x15
++ SO_SNDTIMEO_NEW = 0x43
++ SO_SNDTIMEO_OLD = 0x15
++ SO_TIMESTAMPING = 0x25
++ SO_TIMESTAMPING_NEW = 0x41
++ SO_TIMESTAMPING_OLD = 0x25
++ SO_TIMESTAMPNS = 0x23
++ SO_TIMESTAMPNS_NEW = 0x40
++ SO_TIMESTAMPNS_OLD = 0x23
++ SO_TIMESTAMP_NEW = 0x3f
++ SO_TXTIME = 0x3d
++ SO_TYPE = 0x3
++ SO_WIFI_STATUS = 0x29
++ SO_ZEROCOPY = 0x3c
++ TAB1 = 0x800
++ TAB2 = 0x1000
++ TAB3 = 0x1800
++ TABDLY = 0x1800
++ TCFLSH = 0x540b
++ TCGETA = 0x5405
++ TCGETS = 0x5401
++ TCGETS2 = 0x802c542a
++ TCGETX = 0x5432
++ TCSAFLUSH = 0x2
++ TCSBRK = 0x5409
++ TCSBRKP = 0x5425
++ TCSETA = 0x5406
++ TCSETAF = 0x5408
++ TCSETAW = 0x5407
++ TCSETS = 0x5402
++ TCSETS2 = 0x402c542b
++ TCSETSF = 0x5404
++ TCSETSF2 = 0x402c542d
++ TCSETSW = 0x5403
++ TCSETSW2 = 0x402c542c
++ TCSETX = 0x5433
++ TCSETXF = 0x5434
++ TCSETXW = 0x5435
++ TCXONC = 0x540a
++ TIOCCBRK = 0x5428
++ TIOCCONS = 0x541d
++ TIOCEXCL = 0x540c
++ TIOCGDEV = 0x80045432
++ TIOCGETD = 0x5424
++ TIOCGEXCL = 0x80045440
++ TIOCGICOUNT = 0x545d
++ TIOCGISO7816 = 0x80285442
++ TIOCGLCKTRMIOS = 0x5456
++ TIOCGPGRP = 0x540f
++ TIOCGPKT = 0x80045438
++ TIOCGPTLCK = 0x80045439
++ TIOCGPTN = 0x80045430
++ TIOCGPTPEER = 0x5441
++ TIOCGRS485 = 0x542e
++ TIOCGSERIAL = 0x541e
++ TIOCGSID = 0x5429
++ TIOCGSOFTCAR = 0x5419
++ TIOCGWINSZ = 0x5413
++ TIOCINQ = 0x541b
++ TIOCLINUX = 0x541c
++ TIOCMBIC = 0x5417
++ TIOCMBIS = 0x5416
++ TIOCMGET = 0x5415
++ TIOCMIWAIT = 0x545c
++ TIOCMSET = 0x5418
++ TIOCM_CAR = 0x40
++ TIOCM_CD = 0x40
++ TIOCM_CTS = 0x20
++ TIOCM_DSR = 0x100
++ TIOCM_RI = 0x80
++ TIOCM_RNG = 0x80
++ TIOCM_SR = 0x10
++ TIOCM_ST = 0x8
++ TIOCNOTTY = 0x5422
++ TIOCNXCL = 0x540d
++ TIOCOUTQ = 0x5411
++ TIOCPKT = 0x5420
++ TIOCSBRK = 0x5427
++ TIOCSCTTY = 0x540e
++ TIOCSERCONFIG = 0x5453
++ TIOCSERGETLSR = 0x5459
++ TIOCSERGETMULTI = 0x545a
++ TIOCSERGSTRUCT = 0x5458
++ TIOCSERGWILD = 0x5454
++ TIOCSERSETMULTI = 0x545b
++ TIOCSERSWILD = 0x5455
++ TIOCSER_TEMT = 0x1
++ TIOCSETD = 0x5423
++ TIOCSIG = 0x40045436
++ TIOCSISO7816 = 0xc0285443
++ TIOCSLCKTRMIOS = 0x5457
++ TIOCSPGRP = 0x5410
++ TIOCSPTLCK = 0x40045431
++ TIOCSRS485 = 0x542f
++ TIOCSSERIAL = 0x541f
++ TIOCSSOFTCAR = 0x541a
++ TIOCSTI = 0x5412
++ TIOCSWINSZ = 0x5414
++ TIOCVHANGUP = 0x5437
++ TOSTOP = 0x100
++ TUNATTACHFILTER = 0x401054d5
++ TUNDETACHFILTER = 0x401054d6
++ TUNGETDEVNETNS = 0x54e3
++ TUNGETFEATURES = 0x800454cf
++ TUNGETFILTER = 0x801054db
++ TUNGETIFF = 0x800454d2
++ TUNGETSNDBUF = 0x800454d3
++ TUNGETVNETBE = 0x800454df
++ TUNGETVNETHDRSZ = 0x800454d7
++ TUNGETVNETLE = 0x800454dd
++ TUNSETCARRIER = 0x400454e2
++ TUNSETDEBUG = 0x400454c9
++ TUNSETFILTEREBPF = 0x800454e1
++ TUNSETGROUP = 0x400454ce
++ TUNSETIFF = 0x400454ca
++ TUNSETIFINDEX = 0x400454da
++ TUNSETLINK = 0x400454cd
++ TUNSETNOCSUM = 0x400454c8
++ TUNSETOFFLOAD = 0x400454d0
++ TUNSETOWNER = 0x400454cc
++ TUNSETPERSIST = 0x400454cb
++ TUNSETQUEUE = 0x400454d9
++ TUNSETSNDBUF = 0x400454d4
++ TUNSETSTEERINGEBPF = 0x800454e0
++ TUNSETTXFILTER = 0x400454d1
++ TUNSETVNETBE = 0x400454de
++ TUNSETVNETHDRSZ = 0x400454d8
++ TUNSETVNETLE = 0x400454dc
++ UBI_IOCATT = 0x40186f40
++ UBI_IOCDET = 0x40046f41
++ UBI_IOCEBCH = 0x40044f02
++ UBI_IOCEBER = 0x40044f01
++ UBI_IOCEBISMAP = 0x80044f05
++ UBI_IOCEBMAP = 0x40084f03
++ UBI_IOCEBUNMAP = 0x40044f04
++ UBI_IOCMKVOL = 0x40986f00
++ UBI_IOCRMVOL = 0x40046f01
++ UBI_IOCRNVOL = 0x51106f03
++ UBI_IOCRPEB = 0x40046f04
++ UBI_IOCRSVOL = 0x400c6f02
++ UBI_IOCSETVOLPROP = 0x40104f06
++ UBI_IOCSPEB = 0x40046f05
++ UBI_IOCVOLCRBLK = 0x40804f07
++ UBI_IOCVOLRMBLK = 0x4f08
++ UBI_IOCVOLUP = 0x40084f00
++ VDISCARD = 0xd
++ VEOF = 0x4
++ VEOL = 0xb
++ VEOL2 = 0x10
++ VMIN = 0x6
++ VREPRINT = 0xc
++ VSTART = 0x8
++ VSTOP = 0x9
++ VSUSP = 0xa
++ VSWTC = 0x7
++ VT1 = 0x4000
++ VTDLY = 0x4000
++ VTIME = 0x5
++ VWERASE = 0xe
++ WDIOC_GETBOOTSTATUS = 0x80045702
++ WDIOC_GETPRETIMEOUT = 0x80045709
++ WDIOC_GETSTATUS = 0x80045701
++ WDIOC_GETSUPPORT = 0x80285700
++ WDIOC_GETTEMP = 0x80045703
++ WDIOC_GETTIMELEFT = 0x8004570a
++ WDIOC_GETTIMEOUT = 0x80045707
++ WDIOC_KEEPALIVE = 0x80045705
++ WDIOC_SETOPTIONS = 0x80045704
++ WORDSIZE = 0x40
++ XCASE = 0x4
++ XTABS = 0x1800
++)
++
++// Errors
++const (
++ EADDRINUSE = syscall.Errno(0x62)
++ EADDRNOTAVAIL = syscall.Errno(0x63)
++ EADV = syscall.Errno(0x44)
++ EAFNOSUPPORT = syscall.Errno(0x61)
++ EALREADY = syscall.Errno(0x72)
++ EBADE = syscall.Errno(0x34)
++ EBADFD = syscall.Errno(0x4d)
++ EBADMSG = syscall.Errno(0x4a)
++ EBADR = syscall.Errno(0x35)
++ EBADRQC = syscall.Errno(0x38)
++ EBADSLT = syscall.Errno(0x39)
++ EBFONT = syscall.Errno(0x3b)
++ ECANCELED = syscall.Errno(0x7d)
++ ECHRNG = syscall.Errno(0x2c)
++ ECOMM = syscall.Errno(0x46)
++ ECONNABORTED = syscall.Errno(0x67)
++ ECONNREFUSED = syscall.Errno(0x6f)
++ ECONNRESET = syscall.Errno(0x68)
++ EDEADLK = syscall.Errno(0x23)
++ EDEADLOCK = syscall.Errno(0x23)
++ EDESTADDRREQ = syscall.Errno(0x59)
++ EDOTDOT = syscall.Errno(0x49)
++ EDQUOT = syscall.Errno(0x7a)
++ EHOSTDOWN = syscall.Errno(0x70)
++ EHOSTUNREACH = syscall.Errno(0x71)
++ EHWPOISON = syscall.Errno(0x85)
++ EIDRM = syscall.Errno(0x2b)
++ EILSEQ = syscall.Errno(0x54)
++ EINPROGRESS = syscall.Errno(0x73)
++ EISCONN = syscall.Errno(0x6a)
++ EISNAM = syscall.Errno(0x78)
++ EKEYEXPIRED = syscall.Errno(0x7f)
++ EKEYREJECTED = syscall.Errno(0x81)
++ EKEYREVOKED = syscall.Errno(0x80)
++ EL2HLT = syscall.Errno(0x33)
++ EL2NSYNC = syscall.Errno(0x2d)
++ EL3HLT = syscall.Errno(0x2e)
++ EL3RST = syscall.Errno(0x2f)
++ ELIBACC = syscall.Errno(0x4f)
++ ELIBBAD = syscall.Errno(0x50)
++ ELIBEXEC = syscall.Errno(0x53)
++ ELIBMAX = syscall.Errno(0x52)
++ ELIBSCN = syscall.Errno(0x51)
++ ELNRNG = syscall.Errno(0x30)
++ ELOOP = syscall.Errno(0x28)
++ EMEDIUMTYPE = syscall.Errno(0x7c)
++ EMSGSIZE = syscall.Errno(0x5a)
++ EMULTIHOP = syscall.Errno(0x48)
++ ENAMETOOLONG = syscall.Errno(0x24)
++ ENAVAIL = syscall.Errno(0x77)
++ ENETDOWN = syscall.Errno(0x64)
++ ENETRESET = syscall.Errno(0x66)
++ ENETUNREACH = syscall.Errno(0x65)
++ ENOANO = syscall.Errno(0x37)
++ ENOBUFS = syscall.Errno(0x69)
++ ENOCSI = syscall.Errno(0x32)
++ ENODATA = syscall.Errno(0x3d)
++ ENOKEY = syscall.Errno(0x7e)
++ ENOLCK = syscall.Errno(0x25)
++ ENOLINK = syscall.Errno(0x43)
++ ENOMEDIUM = syscall.Errno(0x7b)
++ ENOMSG = syscall.Errno(0x2a)
++ ENONET = syscall.Errno(0x40)
++ ENOPKG = syscall.Errno(0x41)
++ ENOPROTOOPT = syscall.Errno(0x5c)
++ ENOSR = syscall.Errno(0x3f)
++ ENOSTR = syscall.Errno(0x3c)
++ ENOSYS = syscall.Errno(0x26)
++ ENOTCONN = syscall.Errno(0x6b)
++ ENOTEMPTY = syscall.Errno(0x27)
++ ENOTNAM = syscall.Errno(0x76)
++ ENOTRECOVERABLE = syscall.Errno(0x83)
++ ENOTSOCK = syscall.Errno(0x58)
++ ENOTSUP = syscall.Errno(0x5f)
++ ENOTUNIQ = syscall.Errno(0x4c)
++ EOPNOTSUPP = syscall.Errno(0x5f)
++ EOVERFLOW = syscall.Errno(0x4b)
++ EOWNERDEAD = syscall.Errno(0x82)
++ EPFNOSUPPORT = syscall.Errno(0x60)
++ EPROTO = syscall.Errno(0x47)
++ EPROTONOSUPPORT = syscall.Errno(0x5d)
++ EPROTOTYPE = syscall.Errno(0x5b)
++ EREMCHG = syscall.Errno(0x4e)
++ EREMOTE = syscall.Errno(0x42)
++ EREMOTEIO = syscall.Errno(0x79)
++ ERESTART = syscall.Errno(0x55)
++ ERFKILL = syscall.Errno(0x84)
++ ESHUTDOWN = syscall.Errno(0x6c)
++ ESOCKTNOSUPPORT = syscall.Errno(0x5e)
++ ESRMNT = syscall.Errno(0x45)
++ ESTALE = syscall.Errno(0x74)
++ ESTRPIPE = syscall.Errno(0x56)
++ ETIME = syscall.Errno(0x3e)
++ ETIMEDOUT = syscall.Errno(0x6e)
++ ETOOMANYREFS = syscall.Errno(0x6d)
++ EUCLEAN = syscall.Errno(0x75)
++ EUNATCH = syscall.Errno(0x31)
++ EUSERS = syscall.Errno(0x57)
++ EXFULL = syscall.Errno(0x36)
++)
++
++// Signals
++const (
++ SIGBUS = syscall.Signal(0x7)
++ SIGCHLD = syscall.Signal(0x11)
++ SIGCLD = syscall.Signal(0x11)
++ SIGCONT = syscall.Signal(0x12)
++ SIGIO = syscall.Signal(0x1d)
++ SIGPOLL = syscall.Signal(0x1d)
++ SIGPROF = syscall.Signal(0x1b)
++ SIGPWR = syscall.Signal(0x1e)
++ SIGSTKFLT = syscall.Signal(0x10)
++ SIGSTOP = syscall.Signal(0x13)
++ SIGSYS = syscall.Signal(0x1f)
++ SIGTSTP = syscall.Signal(0x14)
++ SIGTTIN = syscall.Signal(0x15)
++ SIGTTOU = syscall.Signal(0x16)
++ SIGURG = syscall.Signal(0x17)
++ SIGUSR1 = syscall.Signal(0xa)
++ SIGUSR2 = syscall.Signal(0xc)
++ SIGVTALRM = syscall.Signal(0x1a)
++ SIGWINCH = syscall.Signal(0x1c)
++ SIGXCPU = syscall.Signal(0x18)
++ SIGXFSZ = syscall.Signal(0x19)
++)
++
++// Error table
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "no such device or address"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EAGAIN", "resource temporarily unavailable"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device or resource busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "invalid cross-device link"},
++ {19, "ENODEV", "no such device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "numerical result out of range"},
++ {35, "EDEADLK", "resource deadlock avoided"},
++ {36, "ENAMETOOLONG", "file name too long"},
++ {37, "ENOLCK", "no locks available"},
++ {38, "ENOSYS", "function not implemented"},
++ {39, "ENOTEMPTY", "directory not empty"},
++ {40, "ELOOP", "too many levels of symbolic links"},
++ {42, "ENOMSG", "no message of desired type"},
++ {43, "EIDRM", "identifier removed"},
++ {44, "ECHRNG", "channel number out of range"},
++ {45, "EL2NSYNC", "level 2 not synchronized"},
++ {46, "EL3HLT", "level 3 halted"},
++ {47, "EL3RST", "level 3 reset"},
++ {48, "ELNRNG", "link number out of range"},
++ {49, "EUNATCH", "protocol driver not attached"},
++ {50, "ENOCSI", "no CSI structure available"},
++ {51, "EL2HLT", "level 2 halted"},
++ {52, "EBADE", "invalid exchange"},
++ {53, "EBADR", "invalid request descriptor"},
++ {54, "EXFULL", "exchange full"},
++ {55, "ENOANO", "no anode"},
++ {56, "EBADRQC", "invalid request code"},
++ {57, "EBADSLT", "invalid slot"},
++ {59, "EBFONT", "bad font file format"},
++ {60, "ENOSTR", "device not a stream"},
++ {61, "ENODATA", "no data available"},
++ {62, "ETIME", "timer expired"},
++ {63, "ENOSR", "out of streams resources"},
++ {64, "ENONET", "machine is not on the network"},
++ {65, "ENOPKG", "package not installed"},
++ {66, "EREMOTE", "object is remote"},
++ {67, "ENOLINK", "link has been severed"},
++ {68, "EADV", "advertise error"},
++ {69, "ESRMNT", "srmount error"},
++ {70, "ECOMM", "communication error on send"},
++ {71, "EPROTO", "protocol error"},
++ {72, "EMULTIHOP", "multihop attempted"},
++ {73, "EDOTDOT", "RFS specific error"},
++ {74, "EBADMSG", "bad message"},
++ {75, "EOVERFLOW", "value too large for defined data type"},
++ {76, "ENOTUNIQ", "name not unique on network"},
++ {77, "EBADFD", "file descriptor in bad state"},
++ {78, "EREMCHG", "remote address changed"},
++ {79, "ELIBACC", "can not access a needed shared library"},
++ {80, "ELIBBAD", "accessing a corrupted shared library"},
++ {81, "ELIBSCN", ".lib section in a.out corrupted"},
++ {82, "ELIBMAX", "attempting to link in too many shared libraries"},
++ {83, "ELIBEXEC", "cannot exec a shared library directly"},
++ {84, "EILSEQ", "invalid or incomplete multibyte or wide character"},
++ {85, "ERESTART", "interrupted system call should be restarted"},
++ {86, "ESTRPIPE", "streams pipe error"},
++ {87, "EUSERS", "too many users"},
++ {88, "ENOTSOCK", "socket operation on non-socket"},
++ {89, "EDESTADDRREQ", "destination address required"},
++ {90, "EMSGSIZE", "message too long"},
++ {91, "EPROTOTYPE", "protocol wrong type for socket"},
++ {92, "ENOPROTOOPT", "protocol not available"},
++ {93, "EPROTONOSUPPORT", "protocol not supported"},
++ {94, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {95, "ENOTSUP", "operation not supported"},
++ {96, "EPFNOSUPPORT", "protocol family not supported"},
++ {97, "EAFNOSUPPORT", "address family not supported by protocol"},
++ {98, "EADDRINUSE", "address already in use"},
++ {99, "EADDRNOTAVAIL", "cannot assign requested address"},
++ {100, "ENETDOWN", "network is down"},
++ {101, "ENETUNREACH", "network is unreachable"},
++ {102, "ENETRESET", "network dropped connection on reset"},
++ {103, "ECONNABORTED", "software caused connection abort"},
++ {104, "ECONNRESET", "connection reset by peer"},
++ {105, "ENOBUFS", "no buffer space available"},
++ {106, "EISCONN", "transport endpoint is already connected"},
++ {107, "ENOTCONN", "transport endpoint is not connected"},
++ {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"},
++ {109, "ETOOMANYREFS", "too many references: cannot splice"},
++ {110, "ETIMEDOUT", "connection timed out"},
++ {111, "ECONNREFUSED", "connection refused"},
++ {112, "EHOSTDOWN", "host is down"},
++ {113, "EHOSTUNREACH", "no route to host"},
++ {114, "EALREADY", "operation already in progress"},
++ {115, "EINPROGRESS", "operation now in progress"},
++ {116, "ESTALE", "stale file handle"},
++ {117, "EUCLEAN", "structure needs cleaning"},
++ {118, "ENOTNAM", "not a XENIX named type file"},
++ {119, "ENAVAIL", "no XENIX semaphores available"},
++ {120, "EISNAM", "is a named type file"},
++ {121, "EREMOTEIO", "remote I/O error"},
++ {122, "EDQUOT", "disk quota exceeded"},
++ {123, "ENOMEDIUM", "no medium found"},
++ {124, "EMEDIUMTYPE", "wrong medium type"},
++ {125, "ECANCELED", "operation canceled"},
++ {126, "ENOKEY", "required key not available"},
++ {127, "EKEYEXPIRED", "key has expired"},
++ {128, "EKEYREVOKED", "key has been revoked"},
++ {129, "EKEYREJECTED", "key was rejected by service"},
++ {130, "EOWNERDEAD", "owner died"},
++ {131, "ENOTRECOVERABLE", "state not recoverable"},
++ {132, "ERFKILL", "operation not possible due to RF-kill"},
++ {133, "EHWPOISON", "memory page has hardware error"},
++}
++
++// Signal table
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/breakpoint trap"},
++ {6, "SIGABRT", "aborted"},
++ {7, "SIGBUS", "bus error"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGUSR1", "user defined signal 1"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGUSR2", "user defined signal 2"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGSTKFLT", "stack fault"},
++ {17, "SIGCHLD", "child exited"},
++ {18, "SIGCONT", "continued"},
++ {19, "SIGSTOP", "stopped (signal)"},
++ {20, "SIGTSTP", "stopped"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGURG", "urgent I/O condition"},
++ {24, "SIGXCPU", "CPU time limit exceeded"},
++ {25, "SIGXFSZ", "file size limit exceeded"},
++ {26, "SIGVTALRM", "virtual timer expired"},
++ {27, "SIGPROF", "profiling timer expired"},
++ {28, "SIGWINCH", "window changed"},
++ {29, "SIGIO", "I/O possible"},
++ {30, "SIGPWR", "power failure"},
++ {31, "SIGSYS", "bad system call"},
++}
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
+index 3b570754..95e950fc 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
+@@ -3,7 +3,7 @@
+
+ // +build s390x,linux
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char _const.go
+
+ package unix
+@@ -11,1930 +11,547 @@ package unix
+ import "syscall"
+
+ const (
+- AF_ALG = 0x26
+- AF_APPLETALK = 0x5
+- AF_ASH = 0x12
+- AF_ATMPVC = 0x8
+- AF_ATMSVC = 0x14
+- AF_AX25 = 0x3
+- AF_BLUETOOTH = 0x1f
+- AF_BRIDGE = 0x7
+- AF_CAIF = 0x25
+- AF_CAN = 0x1d
+- AF_DECnet = 0xc
+- AF_ECONET = 0x13
+- AF_FILE = 0x1
+- AF_IB = 0x1b
+- AF_IEEE802154 = 0x24
+- AF_INET = 0x2
+- AF_INET6 = 0xa
+- AF_IPX = 0x4
+- AF_IRDA = 0x17
+- AF_ISDN = 0x22
+- AF_IUCV = 0x20
+- AF_KCM = 0x29
+- AF_KEY = 0xf
+- AF_LLC = 0x1a
+- AF_LOCAL = 0x1
+- AF_MAX = 0x2b
+- AF_MPLS = 0x1c
+- AF_NETBEUI = 0xd
+- AF_NETLINK = 0x10
+- AF_NETROM = 0x6
+- AF_NFC = 0x27
+- AF_PACKET = 0x11
+- AF_PHONET = 0x23
+- AF_PPPOX = 0x18
+- AF_QIPCRTR = 0x2a
+- AF_RDS = 0x15
+- AF_ROSE = 0xb
+- AF_ROUTE = 0x10
+- AF_RXRPC = 0x21
+- AF_SECURITY = 0xe
+- AF_SNA = 0x16
+- AF_TIPC = 0x1e
+- AF_UNIX = 0x1
+- AF_UNSPEC = 0x0
+- AF_VSOCK = 0x28
+- AF_WANPIPE = 0x19
+- AF_X25 = 0x9
+- ALG_OP_DECRYPT = 0x0
+- ALG_OP_ENCRYPT = 0x1
+- ALG_SET_AEAD_ASSOCLEN = 0x4
+- ALG_SET_AEAD_AUTHSIZE = 0x5
+- ALG_SET_IV = 0x2
+- ALG_SET_KEY = 0x1
+- ALG_SET_OP = 0x3
+- ARPHRD_6LOWPAN = 0x339
+- ARPHRD_ADAPT = 0x108
+- ARPHRD_APPLETLK = 0x8
+- ARPHRD_ARCNET = 0x7
+- ARPHRD_ASH = 0x30d
+- ARPHRD_ATM = 0x13
+- ARPHRD_AX25 = 0x3
+- ARPHRD_BIF = 0x307
+- ARPHRD_CAIF = 0x336
+- ARPHRD_CAN = 0x118
+- ARPHRD_CHAOS = 0x5
+- ARPHRD_CISCO = 0x201
+- ARPHRD_CSLIP = 0x101
+- ARPHRD_CSLIP6 = 0x103
+- ARPHRD_DDCMP = 0x205
+- ARPHRD_DLCI = 0xf
+- ARPHRD_ECONET = 0x30e
+- ARPHRD_EETHER = 0x2
+- ARPHRD_ETHER = 0x1
+- ARPHRD_EUI64 = 0x1b
+- ARPHRD_FCAL = 0x311
+- ARPHRD_FCFABRIC = 0x313
+- ARPHRD_FCPL = 0x312
+- ARPHRD_FCPP = 0x310
+- ARPHRD_FDDI = 0x306
+- ARPHRD_FRAD = 0x302
+- ARPHRD_HDLC = 0x201
+- ARPHRD_HIPPI = 0x30c
+- ARPHRD_HWX25 = 0x110
+- ARPHRD_IEEE1394 = 0x18
+- ARPHRD_IEEE802 = 0x6
+- ARPHRD_IEEE80211 = 0x321
+- ARPHRD_IEEE80211_PRISM = 0x322
+- ARPHRD_IEEE80211_RADIOTAP = 0x323
+- ARPHRD_IEEE802154 = 0x324
+- ARPHRD_IEEE802154_MONITOR = 0x325
+- ARPHRD_IEEE802_TR = 0x320
+- ARPHRD_INFINIBAND = 0x20
+- ARPHRD_IP6GRE = 0x337
+- ARPHRD_IPDDP = 0x309
+- ARPHRD_IPGRE = 0x30a
+- ARPHRD_IRDA = 0x30f
+- ARPHRD_LAPB = 0x204
+- ARPHRD_LOCALTLK = 0x305
+- ARPHRD_LOOPBACK = 0x304
+- ARPHRD_METRICOM = 0x17
+- ARPHRD_NETLINK = 0x338
+- ARPHRD_NETROM = 0x0
+- ARPHRD_NONE = 0xfffe
+- ARPHRD_PHONET = 0x334
+- ARPHRD_PHONET_PIPE = 0x335
+- ARPHRD_PIMREG = 0x30b
+- ARPHRD_PPP = 0x200
+- ARPHRD_PRONET = 0x4
+- ARPHRD_RAWHDLC = 0x206
+- ARPHRD_ROSE = 0x10e
+- ARPHRD_RSRVD = 0x104
+- ARPHRD_SIT = 0x308
+- ARPHRD_SKIP = 0x303
+- ARPHRD_SLIP = 0x100
+- ARPHRD_SLIP6 = 0x102
+- ARPHRD_TUNNEL = 0x300
+- ARPHRD_TUNNEL6 = 0x301
+- ARPHRD_VOID = 0xffff
+- ARPHRD_X25 = 0x10f
+- B0 = 0x0
+- B1000000 = 0x1008
+- B110 = 0x3
+- B115200 = 0x1002
+- B1152000 = 0x1009
+- B1200 = 0x9
+- B134 = 0x4
+- B150 = 0x5
+- B1500000 = 0x100a
+- B1800 = 0xa
+- B19200 = 0xe
+- B200 = 0x6
+- B2000000 = 0x100b
+- B230400 = 0x1003
+- B2400 = 0xb
+- B2500000 = 0x100c
+- B300 = 0x7
+- B3000000 = 0x100d
+- B3500000 = 0x100e
+- B38400 = 0xf
+- B4000000 = 0x100f
+- B460800 = 0x1004
+- B4800 = 0xc
+- B50 = 0x1
+- B500000 = 0x1005
+- B57600 = 0x1001
+- B576000 = 0x1006
+- B600 = 0x8
+- B75 = 0x2
+- B921600 = 0x1007
+- B9600 = 0xd
+- BLKBSZGET = 0x80081270
+- BLKBSZSET = 0x40081271
+- BLKFLSBUF = 0x1261
+- BLKFRAGET = 0x1265
+- BLKFRASET = 0x1264
+- BLKGETSIZE = 0x1260
+- BLKGETSIZE64 = 0x80081272
+- BLKPBSZGET = 0x127b
+- BLKRAGET = 0x1263
+- BLKRASET = 0x1262
+- BLKROGET = 0x125e
+- BLKROSET = 0x125d
+- BLKRRPART = 0x125f
+- BLKSECTGET = 0x1267
+- BLKSECTSET = 0x1266
+- BLKSSZGET = 0x1268
+- BOTHER = 0x1000
+- BPF_A = 0x10
+- BPF_ABS = 0x20
+- BPF_ADD = 0x0
+- BPF_ALU = 0x4
+- BPF_AND = 0x50
+- BPF_B = 0x10
+- BPF_DIV = 0x30
+- BPF_H = 0x8
+- BPF_IMM = 0x0
+- BPF_IND = 0x40
+- BPF_JA = 0x0
+- BPF_JEQ = 0x10
+- BPF_JGE = 0x30
+- BPF_JGT = 0x20
+- BPF_JMP = 0x5
+- BPF_JSET = 0x40
+- BPF_K = 0x0
+- BPF_LD = 0x0
+- BPF_LDX = 0x1
+- BPF_LEN = 0x80
+- BPF_LL_OFF = -0x200000
+- BPF_LSH = 0x60
+- BPF_MAJOR_VERSION = 0x1
+- BPF_MAXINSNS = 0x1000
+- BPF_MEM = 0x60
+- BPF_MEMWORDS = 0x10
+- BPF_MINOR_VERSION = 0x1
+- BPF_MISC = 0x7
+- BPF_MOD = 0x90
+- BPF_MSH = 0xa0
+- BPF_MUL = 0x20
+- BPF_NEG = 0x80
+- BPF_NET_OFF = -0x100000
+- BPF_OR = 0x40
+- BPF_RET = 0x6
+- BPF_RSH = 0x70
+- BPF_ST = 0x2
+- BPF_STX = 0x3
+- BPF_SUB = 0x10
+- BPF_TAX = 0x0
+- BPF_TXA = 0x80
+- BPF_W = 0x0
+- BPF_X = 0x8
+- BPF_XOR = 0xa0
+- BRKINT = 0x2
+- BS0 = 0x0
+- BS1 = 0x2000
+- BSDLY = 0x2000
+- CAN_BCM = 0x2
+- CAN_EFF_FLAG = 0x80000000
+- CAN_EFF_ID_BITS = 0x1d
+- CAN_EFF_MASK = 0x1fffffff
+- CAN_ERR_FLAG = 0x20000000
+- CAN_ERR_MASK = 0x1fffffff
+- CAN_INV_FILTER = 0x20000000
+- CAN_ISOTP = 0x6
+- CAN_MAX_DLC = 0x8
+- CAN_MAX_DLEN = 0x8
+- CAN_MCNET = 0x5
+- CAN_MTU = 0x10
+- CAN_NPROTO = 0x7
+- CAN_RAW = 0x1
+- CAN_RAW_FILTER_MAX = 0x200
+- CAN_RTR_FLAG = 0x40000000
+- CAN_SFF_ID_BITS = 0xb
+- CAN_SFF_MASK = 0x7ff
+- CAN_TP16 = 0x3
+- CAN_TP20 = 0x4
+- CBAUD = 0x100f
+- CBAUDEX = 0x1000
+- CFLUSH = 0xf
+- CIBAUD = 0x100f0000
+- CLOCAL = 0x800
+- CLOCK_BOOTTIME = 0x7
+- CLOCK_BOOTTIME_ALARM = 0x9
+- CLOCK_DEFAULT = 0x0
+- CLOCK_EXT = 0x1
+- CLOCK_INT = 0x2
+- CLOCK_MONOTONIC = 0x1
+- CLOCK_MONOTONIC_COARSE = 0x6
+- CLOCK_MONOTONIC_RAW = 0x4
+- CLOCK_PROCESS_CPUTIME_ID = 0x2
+- CLOCK_REALTIME = 0x0
+- CLOCK_REALTIME_ALARM = 0x8
+- CLOCK_REALTIME_COARSE = 0x5
+- CLOCK_TAI = 0xb
+- CLOCK_THREAD_CPUTIME_ID = 0x3
+- CLOCK_TXFROMRX = 0x4
+- CLOCK_TXINT = 0x3
+- CLONE_CHILD_CLEARTID = 0x200000
+- CLONE_CHILD_SETTID = 0x1000000
+- CLONE_DETACHED = 0x400000
+- CLONE_FILES = 0x400
+- CLONE_FS = 0x200
+- CLONE_IO = 0x80000000
+- CLONE_NEWCGROUP = 0x2000000
+- CLONE_NEWIPC = 0x8000000
+- CLONE_NEWNET = 0x40000000
+- CLONE_NEWNS = 0x20000
+- CLONE_NEWPID = 0x20000000
+- CLONE_NEWUSER = 0x10000000
+- CLONE_NEWUTS = 0x4000000
+- CLONE_PARENT = 0x8000
+- CLONE_PARENT_SETTID = 0x100000
+- CLONE_PTRACE = 0x2000
+- CLONE_SETTLS = 0x80000
+- CLONE_SIGHAND = 0x800
+- CLONE_SYSVSEM = 0x40000
+- CLONE_THREAD = 0x10000
+- CLONE_UNTRACED = 0x800000
+- CLONE_VFORK = 0x4000
+- CLONE_VM = 0x100
+- CMSPAR = 0x40000000
+- CR0 = 0x0
+- CR1 = 0x200
+- CR2 = 0x400
+- CR3 = 0x600
+- CRDLY = 0x600
+- CREAD = 0x80
+- CRTSCTS = 0x80000000
+- CS5 = 0x0
+- CS6 = 0x10
+- CS7 = 0x20
+- CS8 = 0x30
+- CSIGNAL = 0xff
+- CSIZE = 0x30
+- CSTART = 0x11
+- CSTATUS = 0x0
+- CSTOP = 0x13
+- CSTOPB = 0x40
+- CSUSP = 0x1a
+- DT_BLK = 0x6
+- DT_CHR = 0x2
+- DT_DIR = 0x4
+- DT_FIFO = 0x1
+- DT_LNK = 0xa
+- DT_REG = 0x8
+- DT_SOCK = 0xc
+- DT_UNKNOWN = 0x0
+- DT_WHT = 0xe
+- ECHO = 0x8
+- ECHOCTL = 0x200
+- ECHOE = 0x10
+- ECHOK = 0x20
+- ECHOKE = 0x800
+- ECHONL = 0x40
+- ECHOPRT = 0x400
+- EFD_CLOEXEC = 0x80000
+- EFD_NONBLOCK = 0x800
+- EFD_SEMAPHORE = 0x1
+- ENCODING_DEFAULT = 0x0
+- ENCODING_FM_MARK = 0x3
+- ENCODING_FM_SPACE = 0x4
+- ENCODING_MANCHESTER = 0x5
+- ENCODING_NRZ = 0x1
+- ENCODING_NRZI = 0x2
+- EPOLLERR = 0x8
+- EPOLLET = 0x80000000
+- EPOLLEXCLUSIVE = 0x10000000
+- EPOLLHUP = 0x10
+- EPOLLIN = 0x1
+- EPOLLMSG = 0x400
+- EPOLLONESHOT = 0x40000000
+- EPOLLOUT = 0x4
+- EPOLLPRI = 0x2
+- EPOLLRDBAND = 0x80
+- EPOLLRDHUP = 0x2000
+- EPOLLRDNORM = 0x40
+- EPOLLWAKEUP = 0x20000000
+- EPOLLWRBAND = 0x200
+- EPOLLWRNORM = 0x100
+- EPOLL_CLOEXEC = 0x80000
+- EPOLL_CTL_ADD = 0x1
+- EPOLL_CTL_DEL = 0x2
+- EPOLL_CTL_MOD = 0x3
+- ETH_P_1588 = 0x88f7
+- ETH_P_8021AD = 0x88a8
+- ETH_P_8021AH = 0x88e7
+- ETH_P_8021Q = 0x8100
+- ETH_P_80221 = 0x8917
+- ETH_P_802_2 = 0x4
+- ETH_P_802_3 = 0x1
+- ETH_P_802_3_MIN = 0x600
+- ETH_P_802_EX1 = 0x88b5
+- ETH_P_AARP = 0x80f3
+- ETH_P_AF_IUCV = 0xfbfb
+- ETH_P_ALL = 0x3
+- ETH_P_AOE = 0x88a2
+- ETH_P_ARCNET = 0x1a
+- ETH_P_ARP = 0x806
+- ETH_P_ATALK = 0x809b
+- ETH_P_ATMFATE = 0x8884
+- ETH_P_ATMMPOA = 0x884c
+- ETH_P_AX25 = 0x2
+- ETH_P_BATMAN = 0x4305
+- ETH_P_BPQ = 0x8ff
+- ETH_P_CAIF = 0xf7
+- ETH_P_CAN = 0xc
+- ETH_P_CANFD = 0xd
+- ETH_P_CONTROL = 0x16
+- ETH_P_CUST = 0x6006
+- ETH_P_DDCMP = 0x6
+- ETH_P_DEC = 0x6000
+- ETH_P_DIAG = 0x6005
+- ETH_P_DNA_DL = 0x6001
+- ETH_P_DNA_RC = 0x6002
+- ETH_P_DNA_RT = 0x6003
+- ETH_P_DSA = 0x1b
+- ETH_P_ECONET = 0x18
+- ETH_P_EDSA = 0xdada
+- ETH_P_FCOE = 0x8906
+- ETH_P_FIP = 0x8914
+- ETH_P_HDLC = 0x19
+- ETH_P_HSR = 0x892f
+- ETH_P_IEEE802154 = 0xf6
+- ETH_P_IEEEPUP = 0xa00
+- ETH_P_IEEEPUPAT = 0xa01
+- ETH_P_IP = 0x800
+- ETH_P_IPV6 = 0x86dd
+- ETH_P_IPX = 0x8137
+- ETH_P_IRDA = 0x17
+- ETH_P_LAT = 0x6004
+- ETH_P_LINK_CTL = 0x886c
+- ETH_P_LOCALTALK = 0x9
+- ETH_P_LOOP = 0x60
+- ETH_P_LOOPBACK = 0x9000
+- ETH_P_MACSEC = 0x88e5
+- ETH_P_MOBITEX = 0x15
+- ETH_P_MPLS_MC = 0x8848
+- ETH_P_MPLS_UC = 0x8847
+- ETH_P_MVRP = 0x88f5
+- ETH_P_NCSI = 0x88f8
+- ETH_P_PAE = 0x888e
+- ETH_P_PAUSE = 0x8808
+- ETH_P_PHONET = 0xf5
+- ETH_P_PPPTALK = 0x10
+- ETH_P_PPP_DISC = 0x8863
+- ETH_P_PPP_MP = 0x8
+- ETH_P_PPP_SES = 0x8864
+- ETH_P_PRP = 0x88fb
+- ETH_P_PUP = 0x200
+- ETH_P_PUPAT = 0x201
+- ETH_P_QINQ1 = 0x9100
+- ETH_P_QINQ2 = 0x9200
+- ETH_P_QINQ3 = 0x9300
+- ETH_P_RARP = 0x8035
+- ETH_P_SCA = 0x6007
+- ETH_P_SLOW = 0x8809
+- ETH_P_SNAP = 0x5
+- ETH_P_TDLS = 0x890d
+- ETH_P_TEB = 0x6558
+- ETH_P_TIPC = 0x88ca
+- ETH_P_TRAILER = 0x1c
+- ETH_P_TR_802_2 = 0x11
+- ETH_P_TSN = 0x22f0
+- ETH_P_WAN_PPP = 0x7
+- ETH_P_WCCP = 0x883e
+- ETH_P_X25 = 0x805
+- ETH_P_XDSA = 0xf8
+- EXTA = 0xe
+- EXTB = 0xf
+- EXTPROC = 0x10000
+- FALLOC_FL_COLLAPSE_RANGE = 0x8
+- FALLOC_FL_INSERT_RANGE = 0x20
+- FALLOC_FL_KEEP_SIZE = 0x1
+- FALLOC_FL_NO_HIDE_STALE = 0x4
+- FALLOC_FL_PUNCH_HOLE = 0x2
+- FALLOC_FL_UNSHARE_RANGE = 0x40
+- FALLOC_FL_ZERO_RANGE = 0x10
+- FD_CLOEXEC = 0x1
+- FD_SETSIZE = 0x400
+- FF0 = 0x0
+- FF1 = 0x8000
+- FFDLY = 0x8000
+- FLUSHO = 0x1000
+- FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
+- FS_ENCRYPTION_MODE_AES_256_CTS = 0x4
+- FS_ENCRYPTION_MODE_AES_256_GCM = 0x2
+- FS_ENCRYPTION_MODE_AES_256_XTS = 0x1
+- FS_ENCRYPTION_MODE_INVALID = 0x0
+- FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615
+- FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614
+- FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613
+- FS_KEY_DESCRIPTOR_SIZE = 0x8
+- FS_KEY_DESC_PREFIX = "fscrypt:"
+- FS_KEY_DESC_PREFIX_SIZE = 0x8
+- FS_MAX_KEY_SIZE = 0x40
+- FS_POLICY_FLAGS_PAD_16 = 0x2
+- FS_POLICY_FLAGS_PAD_32 = 0x3
+- FS_POLICY_FLAGS_PAD_4 = 0x0
+- FS_POLICY_FLAGS_PAD_8 = 0x1
+- FS_POLICY_FLAGS_PAD_MASK = 0x3
+- FS_POLICY_FLAGS_VALID = 0x3
+- F_DUPFD = 0x0
+- F_DUPFD_CLOEXEC = 0x406
+- F_EXLCK = 0x4
+- F_GETFD = 0x1
+- F_GETFL = 0x3
+- F_GETLEASE = 0x401
+- F_GETLK = 0x5
+- F_GETLK64 = 0x5
+- F_GETOWN = 0x9
+- F_GETOWN_EX = 0x10
+- F_GETPIPE_SZ = 0x408
+- F_GETSIG = 0xb
+- F_LOCK = 0x1
+- F_NOTIFY = 0x402
+- F_OFD_GETLK = 0x24
+- F_OFD_SETLK = 0x25
+- F_OFD_SETLKW = 0x26
+- F_OK = 0x0
+- F_RDLCK = 0x0
+- F_SETFD = 0x2
+- F_SETFL = 0x4
+- F_SETLEASE = 0x400
+- F_SETLK = 0x6
+- F_SETLK64 = 0x6
+- F_SETLKW = 0x7
+- F_SETLKW64 = 0x7
+- F_SETOWN = 0x8
+- F_SETOWN_EX = 0xf
+- F_SETPIPE_SZ = 0x407
+- F_SETSIG = 0xa
+- F_SHLCK = 0x8
+- F_TEST = 0x3
+- F_TLOCK = 0x2
+- F_ULOCK = 0x0
+- F_UNLCK = 0x2
+- F_WRLCK = 0x1
+- GENL_ADMIN_PERM = 0x1
+- GENL_CMD_CAP_DO = 0x2
+- GENL_CMD_CAP_DUMP = 0x4
+- GENL_CMD_CAP_HASPOL = 0x8
+- GENL_HDRLEN = 0x4
+- GENL_ID_CTRL = 0x10
+- GENL_ID_PMCRAID = 0x12
+- GENL_ID_VFS_DQUOT = 0x11
+- GENL_MAX_ID = 0x3ff
+- GENL_MIN_ID = 0x10
+- GENL_NAMSIZ = 0x10
+- GENL_START_ALLOC = 0x13
+- GENL_UNS_ADMIN_PERM = 0x10
+- GRND_NONBLOCK = 0x1
+- GRND_RANDOM = 0x2
+- HUPCL = 0x400
+- IBSHIFT = 0x10
+- ICANON = 0x2
+- ICMPV6_FILTER = 0x1
+- ICRNL = 0x100
+- IEXTEN = 0x8000
+- IFA_F_DADFAILED = 0x8
+- IFA_F_DEPRECATED = 0x20
+- IFA_F_HOMEADDRESS = 0x10
+- IFA_F_MANAGETEMPADDR = 0x100
+- IFA_F_MCAUTOJOIN = 0x400
+- IFA_F_NODAD = 0x2
+- IFA_F_NOPREFIXROUTE = 0x200
+- IFA_F_OPTIMISTIC = 0x4
+- IFA_F_PERMANENT = 0x80
+- IFA_F_SECONDARY = 0x1
+- IFA_F_STABLE_PRIVACY = 0x800
+- IFA_F_TEMPORARY = 0x1
+- IFA_F_TENTATIVE = 0x40
+- IFA_MAX = 0x8
+- IFF_ALLMULTI = 0x200
+- IFF_ATTACH_QUEUE = 0x200
+- IFF_AUTOMEDIA = 0x4000
+- IFF_BROADCAST = 0x2
+- IFF_DEBUG = 0x4
+- IFF_DETACH_QUEUE = 0x400
+- IFF_DORMANT = 0x20000
+- IFF_DYNAMIC = 0x8000
+- IFF_ECHO = 0x40000
+- IFF_LOOPBACK = 0x8
+- IFF_LOWER_UP = 0x10000
+- IFF_MASTER = 0x400
+- IFF_MULTICAST = 0x1000
+- IFF_MULTI_QUEUE = 0x100
+- IFF_NOARP = 0x80
+- IFF_NOFILTER = 0x1000
+- IFF_NOTRAILERS = 0x20
+- IFF_NO_PI = 0x1000
+- IFF_ONE_QUEUE = 0x2000
+- IFF_PERSIST = 0x800
+- IFF_POINTOPOINT = 0x10
+- IFF_PORTSEL = 0x2000
+- IFF_PROMISC = 0x100
+- IFF_RUNNING = 0x40
+- IFF_SLAVE = 0x800
+- IFF_TAP = 0x2
+- IFF_TUN = 0x1
+- IFF_TUN_EXCL = 0x8000
+- IFF_UP = 0x1
+- IFF_VNET_HDR = 0x4000
+- IFF_VOLATILE = 0x70c5a
+- IFNAMSIZ = 0x10
+- IGNBRK = 0x1
+- IGNCR = 0x80
+- IGNPAR = 0x4
+- IMAXBEL = 0x2000
+- INLCR = 0x40
+- INPCK = 0x10
+- IN_ACCESS = 0x1
+- IN_ALL_EVENTS = 0xfff
+- IN_ATTRIB = 0x4
+- IN_CLASSA_HOST = 0xffffff
+- IN_CLASSA_MAX = 0x80
+- IN_CLASSA_NET = 0xff000000
+- IN_CLASSA_NSHIFT = 0x18
+- IN_CLASSB_HOST = 0xffff
+- IN_CLASSB_MAX = 0x10000
+- IN_CLASSB_NET = 0xffff0000
+- IN_CLASSB_NSHIFT = 0x10
+- IN_CLASSC_HOST = 0xff
+- IN_CLASSC_NET = 0xffffff00
+- IN_CLASSC_NSHIFT = 0x8
+- IN_CLOEXEC = 0x80000
+- IN_CLOSE = 0x18
+- IN_CLOSE_NOWRITE = 0x10
+- IN_CLOSE_WRITE = 0x8
+- IN_CREATE = 0x100
+- IN_DELETE = 0x200
+- IN_DELETE_SELF = 0x400
+- IN_DONT_FOLLOW = 0x2000000
+- IN_EXCL_UNLINK = 0x4000000
+- IN_IGNORED = 0x8000
+- IN_ISDIR = 0x40000000
+- IN_LOOPBACKNET = 0x7f
+- IN_MASK_ADD = 0x20000000
+- IN_MODIFY = 0x2
+- IN_MOVE = 0xc0
+- IN_MOVED_FROM = 0x40
+- IN_MOVED_TO = 0x80
+- IN_MOVE_SELF = 0x800
+- IN_NONBLOCK = 0x800
+- IN_ONESHOT = 0x80000000
+- IN_ONLYDIR = 0x1000000
+- IN_OPEN = 0x20
+- IN_Q_OVERFLOW = 0x4000
+- IN_UNMOUNT = 0x2000
+- IPPROTO_AH = 0x33
+- IPPROTO_BEETPH = 0x5e
+- IPPROTO_COMP = 0x6c
+- IPPROTO_DCCP = 0x21
+- IPPROTO_DSTOPTS = 0x3c
+- IPPROTO_EGP = 0x8
+- IPPROTO_ENCAP = 0x62
+- IPPROTO_ESP = 0x32
+- IPPROTO_FRAGMENT = 0x2c
+- IPPROTO_GRE = 0x2f
+- IPPROTO_HOPOPTS = 0x0
+- IPPROTO_ICMP = 0x1
+- IPPROTO_ICMPV6 = 0x3a
+- IPPROTO_IDP = 0x16
+- IPPROTO_IGMP = 0x2
+- IPPROTO_IP = 0x0
+- IPPROTO_IPIP = 0x4
+- IPPROTO_IPV6 = 0x29
+- IPPROTO_MH = 0x87
+- IPPROTO_MPLS = 0x89
+- IPPROTO_MTP = 0x5c
+- IPPROTO_NONE = 0x3b
+- IPPROTO_PIM = 0x67
+- IPPROTO_PUP = 0xc
+- IPPROTO_RAW = 0xff
+- IPPROTO_ROUTING = 0x2b
+- IPPROTO_RSVP = 0x2e
+- IPPROTO_SCTP = 0x84
+- IPPROTO_TCP = 0x6
+- IPPROTO_TP = 0x1d
+- IPPROTO_UDP = 0x11
+- IPPROTO_UDPLITE = 0x88
+- IPV6_2292DSTOPTS = 0x4
+- IPV6_2292HOPLIMIT = 0x8
+- IPV6_2292HOPOPTS = 0x3
+- IPV6_2292PKTINFO = 0x2
+- IPV6_2292PKTOPTIONS = 0x6
+- IPV6_2292RTHDR = 0x5
+- IPV6_ADDRFORM = 0x1
+- IPV6_ADD_MEMBERSHIP = 0x14
+- IPV6_AUTHHDR = 0xa
+- IPV6_CHECKSUM = 0x7
+- IPV6_DONTFRAG = 0x3e
+- IPV6_DROP_MEMBERSHIP = 0x15
+- IPV6_DSTOPTS = 0x3b
+- IPV6_HDRINCL = 0x24
+- IPV6_HOPLIMIT = 0x34
+- IPV6_HOPOPTS = 0x36
+- IPV6_IPSEC_POLICY = 0x22
+- IPV6_JOIN_ANYCAST = 0x1b
+- IPV6_JOIN_GROUP = 0x14
+- IPV6_LEAVE_ANYCAST = 0x1c
+- IPV6_LEAVE_GROUP = 0x15
+- IPV6_MTU = 0x18
+- IPV6_MTU_DISCOVER = 0x17
+- IPV6_MULTICAST_HOPS = 0x12
+- IPV6_MULTICAST_IF = 0x11
+- IPV6_MULTICAST_LOOP = 0x13
+- IPV6_NEXTHOP = 0x9
+- IPV6_PATHMTU = 0x3d
+- IPV6_PKTINFO = 0x32
+- IPV6_PMTUDISC_DO = 0x2
+- IPV6_PMTUDISC_DONT = 0x0
+- IPV6_PMTUDISC_INTERFACE = 0x4
+- IPV6_PMTUDISC_OMIT = 0x5
+- IPV6_PMTUDISC_PROBE = 0x3
+- IPV6_PMTUDISC_WANT = 0x1
+- IPV6_RECVDSTOPTS = 0x3a
+- IPV6_RECVERR = 0x19
+- IPV6_RECVHOPLIMIT = 0x33
+- IPV6_RECVHOPOPTS = 0x35
+- IPV6_RECVPATHMTU = 0x3c
+- IPV6_RECVPKTINFO = 0x31
+- IPV6_RECVRTHDR = 0x38
+- IPV6_RECVTCLASS = 0x42
+- IPV6_ROUTER_ALERT = 0x16
+- IPV6_RTHDR = 0x39
+- IPV6_RTHDRDSTOPTS = 0x37
+- IPV6_RTHDR_LOOSE = 0x0
+- IPV6_RTHDR_STRICT = 0x1
+- IPV6_RTHDR_TYPE_0 = 0x0
+- IPV6_RXDSTOPTS = 0x3b
+- IPV6_RXHOPOPTS = 0x36
+- IPV6_TCLASS = 0x43
+- IPV6_UNICAST_HOPS = 0x10
+- IPV6_V6ONLY = 0x1a
+- IPV6_XFRM_POLICY = 0x23
+- IP_ADD_MEMBERSHIP = 0x23
+- IP_ADD_SOURCE_MEMBERSHIP = 0x27
+- IP_BIND_ADDRESS_NO_PORT = 0x18
+- IP_BLOCK_SOURCE = 0x26
+- IP_CHECKSUM = 0x17
+- IP_DEFAULT_MULTICAST_LOOP = 0x1
+- IP_DEFAULT_MULTICAST_TTL = 0x1
+- IP_DF = 0x4000
+- IP_DROP_MEMBERSHIP = 0x24
+- IP_DROP_SOURCE_MEMBERSHIP = 0x28
+- IP_FREEBIND = 0xf
+- IP_HDRINCL = 0x3
+- IP_IPSEC_POLICY = 0x10
+- IP_MAXPACKET = 0xffff
+- IP_MAX_MEMBERSHIPS = 0x14
+- IP_MF = 0x2000
+- IP_MINTTL = 0x15
+- IP_MSFILTER = 0x29
+- IP_MSS = 0x240
+- IP_MTU = 0xe
+- IP_MTU_DISCOVER = 0xa
+- IP_MULTICAST_ALL = 0x31
+- IP_MULTICAST_IF = 0x20
+- IP_MULTICAST_LOOP = 0x22
+- IP_MULTICAST_TTL = 0x21
+- IP_NODEFRAG = 0x16
+- IP_OFFMASK = 0x1fff
+- IP_OPTIONS = 0x4
+- IP_ORIGDSTADDR = 0x14
+- IP_PASSSEC = 0x12
+- IP_PKTINFO = 0x8
+- IP_PKTOPTIONS = 0x9
+- IP_PMTUDISC = 0xa
+- IP_PMTUDISC_DO = 0x2
+- IP_PMTUDISC_DONT = 0x0
+- IP_PMTUDISC_INTERFACE = 0x4
+- IP_PMTUDISC_OMIT = 0x5
+- IP_PMTUDISC_PROBE = 0x3
+- IP_PMTUDISC_WANT = 0x1
+- IP_RECVERR = 0xb
+- IP_RECVOPTS = 0x6
+- IP_RECVORIGDSTADDR = 0x14
+- IP_RECVRETOPTS = 0x7
+- IP_RECVTOS = 0xd
+- IP_RECVTTL = 0xc
+- IP_RETOPTS = 0x7
+- IP_RF = 0x8000
+- IP_ROUTER_ALERT = 0x5
+- IP_TOS = 0x1
+- IP_TRANSPARENT = 0x13
+- IP_TTL = 0x2
+- IP_UNBLOCK_SOURCE = 0x25
+- IP_UNICAST_IF = 0x32
+- IP_XFRM_POLICY = 0x11
+- ISIG = 0x1
+- ISTRIP = 0x20
+- IUCLC = 0x200
+- IUTF8 = 0x4000
+- IXANY = 0x800
+- IXOFF = 0x1000
+- IXON = 0x400
+- KEYCTL_ASSUME_AUTHORITY = 0x10
+- KEYCTL_CHOWN = 0x4
+- KEYCTL_CLEAR = 0x7
+- KEYCTL_DESCRIBE = 0x6
+- KEYCTL_DH_COMPUTE = 0x17
+- KEYCTL_GET_KEYRING_ID = 0x0
+- KEYCTL_GET_PERSISTENT = 0x16
+- KEYCTL_GET_SECURITY = 0x11
+- KEYCTL_INSTANTIATE = 0xc
+- KEYCTL_INSTANTIATE_IOV = 0x14
+- KEYCTL_INVALIDATE = 0x15
+- KEYCTL_JOIN_SESSION_KEYRING = 0x1
+- KEYCTL_LINK = 0x8
+- KEYCTL_NEGATE = 0xd
+- KEYCTL_READ = 0xb
+- KEYCTL_REJECT = 0x13
+- KEYCTL_REVOKE = 0x3
+- KEYCTL_SEARCH = 0xa
+- KEYCTL_SESSION_TO_PARENT = 0x12
+- KEYCTL_SETPERM = 0x5
+- KEYCTL_SET_REQKEY_KEYRING = 0xe
+- KEYCTL_SET_TIMEOUT = 0xf
+- KEYCTL_UNLINK = 0x9
+- KEYCTL_UPDATE = 0x2
+- KEY_REQKEY_DEFL_DEFAULT = 0x0
+- KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6
+- KEY_REQKEY_DEFL_NO_CHANGE = -0x1
+- KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2
+- KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7
+- KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3
+- KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1
+- KEY_REQKEY_DEFL_USER_KEYRING = 0x4
+- KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
+- KEY_SPEC_GROUP_KEYRING = -0x6
+- KEY_SPEC_PROCESS_KEYRING = -0x2
+- KEY_SPEC_REQKEY_AUTH_KEY = -0x7
+- KEY_SPEC_REQUESTOR_KEYRING = -0x8
+- KEY_SPEC_SESSION_KEYRING = -0x3
+- KEY_SPEC_THREAD_KEYRING = -0x1
+- KEY_SPEC_USER_KEYRING = -0x4
+- KEY_SPEC_USER_SESSION_KEYRING = -0x5
+- LINUX_REBOOT_CMD_CAD_OFF = 0x0
+- LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
+- LINUX_REBOOT_CMD_HALT = 0xcdef0123
+- LINUX_REBOOT_CMD_KEXEC = 0x45584543
+- LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
+- LINUX_REBOOT_CMD_RESTART = 0x1234567
+- LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
+- LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
+- LINUX_REBOOT_MAGIC1 = 0xfee1dead
+- LINUX_REBOOT_MAGIC2 = 0x28121969
+- LOCK_EX = 0x2
+- LOCK_NB = 0x4
+- LOCK_SH = 0x1
+- LOCK_UN = 0x8
+- MADV_DODUMP = 0x11
+- MADV_DOFORK = 0xb
+- MADV_DONTDUMP = 0x10
+- MADV_DONTFORK = 0xa
+- MADV_DONTNEED = 0x4
+- MADV_FREE = 0x8
+- MADV_HUGEPAGE = 0xe
+- MADV_HWPOISON = 0x64
+- MADV_MERGEABLE = 0xc
+- MADV_NOHUGEPAGE = 0xf
+- MADV_NORMAL = 0x0
+- MADV_RANDOM = 0x1
+- MADV_REMOVE = 0x9
+- MADV_SEQUENTIAL = 0x2
+- MADV_UNMERGEABLE = 0xd
+- MADV_WILLNEED = 0x3
+- MAP_ANON = 0x20
+- MAP_ANONYMOUS = 0x20
+- MAP_DENYWRITE = 0x800
+- MAP_EXECUTABLE = 0x1000
+- MAP_FILE = 0x0
+- MAP_FIXED = 0x10
+- MAP_GROWSDOWN = 0x100
+- MAP_HUGETLB = 0x40000
+- MAP_HUGE_MASK = 0x3f
+- MAP_HUGE_SHIFT = 0x1a
+- MAP_LOCKED = 0x2000
+- MAP_NONBLOCK = 0x10000
+- MAP_NORESERVE = 0x4000
+- MAP_POPULATE = 0x8000
+- MAP_PRIVATE = 0x2
+- MAP_SHARED = 0x1
+- MAP_STACK = 0x20000
+- MAP_TYPE = 0xf
+- MCL_CURRENT = 0x1
+- MCL_FUTURE = 0x2
+- MCL_ONFAULT = 0x4
+- MNT_DETACH = 0x2
+- MNT_EXPIRE = 0x4
+- MNT_FORCE = 0x1
+- MSG_BATCH = 0x40000
+- MSG_CMSG_CLOEXEC = 0x40000000
+- MSG_CONFIRM = 0x800
+- MSG_CTRUNC = 0x8
+- MSG_DONTROUTE = 0x4
+- MSG_DONTWAIT = 0x40
+- MSG_EOR = 0x80
+- MSG_ERRQUEUE = 0x2000
+- MSG_FASTOPEN = 0x20000000
+- MSG_FIN = 0x200
+- MSG_MORE = 0x8000
+- MSG_NOSIGNAL = 0x4000
+- MSG_OOB = 0x1
+- MSG_PEEK = 0x2
+- MSG_PROXY = 0x10
+- MSG_RST = 0x1000
+- MSG_SYN = 0x400
+- MSG_TRUNC = 0x20
+- MSG_TRYHARD = 0x4
+- MSG_WAITALL = 0x100
+- MSG_WAITFORONE = 0x10000
+- MS_ACTIVE = 0x40000000
+- MS_ASYNC = 0x1
+- MS_BIND = 0x1000
+- MS_BORN = 0x20000000
+- MS_DIRSYNC = 0x80
+- MS_INVALIDATE = 0x2
+- MS_I_VERSION = 0x800000
+- MS_KERNMOUNT = 0x400000
+- MS_LAZYTIME = 0x2000000
+- MS_MANDLOCK = 0x40
+- MS_MGC_MSK = 0xffff0000
+- MS_MGC_VAL = 0xc0ed0000
+- MS_MOVE = 0x2000
+- MS_NOATIME = 0x400
+- MS_NODEV = 0x4
+- MS_NODIRATIME = 0x800
+- MS_NOEXEC = 0x8
+- MS_NOREMOTELOCK = 0x8000000
+- MS_NOSEC = 0x10000000
+- MS_NOSUID = 0x2
+- MS_NOUSER = -0x80000000
+- MS_POSIXACL = 0x10000
+- MS_PRIVATE = 0x40000
+- MS_RDONLY = 0x1
+- MS_REC = 0x4000
+- MS_RELATIME = 0x200000
+- MS_REMOUNT = 0x20
+- MS_RMT_MASK = 0x2800051
+- MS_SHARED = 0x100000
+- MS_SILENT = 0x8000
+- MS_SLAVE = 0x80000
+- MS_STRICTATIME = 0x1000000
+- MS_SYNC = 0x4
+- MS_SYNCHRONOUS = 0x10
+- MS_UNBINDABLE = 0x20000
+- MS_VERBOSE = 0x8000
+- NAME_MAX = 0xff
+- NETLINK_ADD_MEMBERSHIP = 0x1
+- NETLINK_AUDIT = 0x9
+- NETLINK_BROADCAST_ERROR = 0x4
+- NETLINK_CAP_ACK = 0xa
+- NETLINK_CONNECTOR = 0xb
+- NETLINK_CRYPTO = 0x15
+- NETLINK_DNRTMSG = 0xe
+- NETLINK_DROP_MEMBERSHIP = 0x2
+- NETLINK_ECRYPTFS = 0x13
+- NETLINK_FIB_LOOKUP = 0xa
+- NETLINK_FIREWALL = 0x3
+- NETLINK_GENERIC = 0x10
+- NETLINK_INET_DIAG = 0x4
+- NETLINK_IP6_FW = 0xd
+- NETLINK_ISCSI = 0x8
+- NETLINK_KOBJECT_UEVENT = 0xf
+- NETLINK_LISTEN_ALL_NSID = 0x8
+- NETLINK_LIST_MEMBERSHIPS = 0x9
+- NETLINK_NETFILTER = 0xc
+- NETLINK_NFLOG = 0x5
+- NETLINK_NO_ENOBUFS = 0x5
+- NETLINK_PKTINFO = 0x3
+- NETLINK_RDMA = 0x14
+- NETLINK_ROUTE = 0x0
+- NETLINK_RX_RING = 0x6
+- NETLINK_SCSITRANSPORT = 0x12
+- NETLINK_SELINUX = 0x7
+- NETLINK_SOCK_DIAG = 0x4
+- NETLINK_TX_RING = 0x7
+- NETLINK_UNUSED = 0x1
+- NETLINK_USERSOCK = 0x2
+- NETLINK_XFRM = 0x6
+- NL0 = 0x0
+- NL1 = 0x100
+- NLA_ALIGNTO = 0x4
+- NLA_F_NESTED = 0x8000
+- NLA_F_NET_BYTEORDER = 0x4000
+- NLA_HDRLEN = 0x4
+- NLDLY = 0x100
+- NLMSG_ALIGNTO = 0x4
+- NLMSG_DONE = 0x3
+- NLMSG_ERROR = 0x2
+- NLMSG_HDRLEN = 0x10
+- NLMSG_MIN_TYPE = 0x10
+- NLMSG_NOOP = 0x1
+- NLMSG_OVERRUN = 0x4
+- NLM_F_ACK = 0x4
+- NLM_F_APPEND = 0x800
+- NLM_F_ATOMIC = 0x400
+- NLM_F_CREATE = 0x400
+- NLM_F_DUMP = 0x300
+- NLM_F_DUMP_FILTERED = 0x20
+- NLM_F_DUMP_INTR = 0x10
+- NLM_F_ECHO = 0x8
+- NLM_F_EXCL = 0x200
+- NLM_F_MATCH = 0x200
+- NLM_F_MULTI = 0x2
+- NLM_F_REPLACE = 0x100
+- NLM_F_REQUEST = 0x1
+- NLM_F_ROOT = 0x100
+- NOFLSH = 0x80
+- OCRNL = 0x8
+- OFDEL = 0x80
+- OFILL = 0x40
+- OLCUC = 0x2
+- ONLCR = 0x4
+- ONLRET = 0x20
+- ONOCR = 0x10
+- OPOST = 0x1
+- O_ACCMODE = 0x3
+- O_APPEND = 0x400
+- O_ASYNC = 0x2000
+- O_CLOEXEC = 0x80000
+- O_CREAT = 0x40
+- O_DIRECT = 0x4000
+- O_DIRECTORY = 0x10000
+- O_DSYNC = 0x1000
+- O_EXCL = 0x80
+- O_FSYNC = 0x101000
+- O_LARGEFILE = 0x0
+- O_NDELAY = 0x800
+- O_NOATIME = 0x40000
+- O_NOCTTY = 0x100
+- O_NOFOLLOW = 0x20000
+- O_NONBLOCK = 0x800
+- O_PATH = 0x200000
+- O_RDONLY = 0x0
+- O_RDWR = 0x2
+- O_RSYNC = 0x101000
+- O_SYNC = 0x101000
+- O_TMPFILE = 0x410000
+- O_TRUNC = 0x200
+- O_WRONLY = 0x1
+- PACKET_ADD_MEMBERSHIP = 0x1
+- PACKET_AUXDATA = 0x8
+- PACKET_BROADCAST = 0x1
+- PACKET_COPY_THRESH = 0x7
+- PACKET_DROP_MEMBERSHIP = 0x2
+- PACKET_FANOUT = 0x12
+- PACKET_FANOUT_CBPF = 0x6
+- PACKET_FANOUT_CPU = 0x2
+- PACKET_FANOUT_DATA = 0x16
+- PACKET_FANOUT_EBPF = 0x7
+- PACKET_FANOUT_FLAG_DEFRAG = 0x8000
+- PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
+- PACKET_FANOUT_HASH = 0x0
+- PACKET_FANOUT_LB = 0x1
+- PACKET_FANOUT_QM = 0x5
+- PACKET_FANOUT_RND = 0x4
+- PACKET_FANOUT_ROLLOVER = 0x3
+- PACKET_FASTROUTE = 0x6
+- PACKET_HDRLEN = 0xb
+- PACKET_HOST = 0x0
+- PACKET_KERNEL = 0x7
+- PACKET_LOOPBACK = 0x5
+- PACKET_LOSS = 0xe
+- PACKET_MR_ALLMULTI = 0x2
+- PACKET_MR_MULTICAST = 0x0
+- PACKET_MR_PROMISC = 0x1
+- PACKET_MR_UNICAST = 0x3
+- PACKET_MULTICAST = 0x2
+- PACKET_ORIGDEV = 0x9
+- PACKET_OTHERHOST = 0x3
+- PACKET_OUTGOING = 0x4
+- PACKET_QDISC_BYPASS = 0x14
+- PACKET_RECV_OUTPUT = 0x3
+- PACKET_RESERVE = 0xc
+- PACKET_ROLLOVER_STATS = 0x15
+- PACKET_RX_RING = 0x5
+- PACKET_STATISTICS = 0x6
+- PACKET_TIMESTAMP = 0x11
+- PACKET_TX_HAS_OFF = 0x13
+- PACKET_TX_RING = 0xd
+- PACKET_TX_TIMESTAMP = 0x10
+- PACKET_USER = 0x6
+- PACKET_VERSION = 0xa
+- PACKET_VNET_HDR = 0xf
+- PARENB = 0x100
+- PARITY_CRC16_PR0 = 0x2
+- PARITY_CRC16_PR0_CCITT = 0x4
+- PARITY_CRC16_PR1 = 0x3
+- PARITY_CRC16_PR1_CCITT = 0x5
+- PARITY_CRC32_PR0_CCITT = 0x6
+- PARITY_CRC32_PR1_CCITT = 0x7
+- PARITY_DEFAULT = 0x0
+- PARITY_NONE = 0x1
+- PARMRK = 0x8
+- PARODD = 0x200
+- PENDIN = 0x4000
+- PERF_EVENT_IOC_DISABLE = 0x2401
+- PERF_EVENT_IOC_ENABLE = 0x2400
+- PERF_EVENT_IOC_ID = 0x80082407
+- PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409
+- PERF_EVENT_IOC_PERIOD = 0x40082404
+- PERF_EVENT_IOC_REFRESH = 0x2402
+- PERF_EVENT_IOC_RESET = 0x2403
+- PERF_EVENT_IOC_SET_BPF = 0x40042408
+- PERF_EVENT_IOC_SET_FILTER = 0x40082406
+- PERF_EVENT_IOC_SET_OUTPUT = 0x2405
+- PRIO_PGRP = 0x1
+- PRIO_PROCESS = 0x0
+- PRIO_USER = 0x2
+- PROT_EXEC = 0x4
+- PROT_GROWSDOWN = 0x1000000
+- PROT_GROWSUP = 0x2000000
+- PROT_NONE = 0x0
+- PROT_READ = 0x1
+- PROT_WRITE = 0x2
+- PR_CAPBSET_DROP = 0x18
+- PR_CAPBSET_READ = 0x17
+- PR_CAP_AMBIENT = 0x2f
+- PR_CAP_AMBIENT_CLEAR_ALL = 0x4
+- PR_CAP_AMBIENT_IS_SET = 0x1
+- PR_CAP_AMBIENT_LOWER = 0x3
+- PR_CAP_AMBIENT_RAISE = 0x2
+- PR_ENDIAN_BIG = 0x0
+- PR_ENDIAN_LITTLE = 0x1
+- PR_ENDIAN_PPC_LITTLE = 0x2
+- PR_FPEMU_NOPRINT = 0x1
+- PR_FPEMU_SIGFPE = 0x2
+- PR_FP_EXC_ASYNC = 0x2
+- PR_FP_EXC_DISABLED = 0x0
+- PR_FP_EXC_DIV = 0x10000
+- PR_FP_EXC_INV = 0x100000
+- PR_FP_EXC_NONRECOV = 0x1
+- PR_FP_EXC_OVF = 0x20000
+- PR_FP_EXC_PRECISE = 0x3
+- PR_FP_EXC_RES = 0x80000
+- PR_FP_EXC_SW_ENABLE = 0x80
+- PR_FP_EXC_UND = 0x40000
+- PR_FP_MODE_FR = 0x1
+- PR_FP_MODE_FRE = 0x2
+- PR_GET_CHILD_SUBREAPER = 0x25
+- PR_GET_DUMPABLE = 0x3
+- PR_GET_ENDIAN = 0x13
+- PR_GET_FPEMU = 0x9
+- PR_GET_FPEXC = 0xb
+- PR_GET_FP_MODE = 0x2e
+- PR_GET_KEEPCAPS = 0x7
+- PR_GET_NAME = 0x10
+- PR_GET_NO_NEW_PRIVS = 0x27
+- PR_GET_PDEATHSIG = 0x2
+- PR_GET_SECCOMP = 0x15
+- PR_GET_SECUREBITS = 0x1b
+- PR_GET_THP_DISABLE = 0x2a
+- PR_GET_TID_ADDRESS = 0x28
+- PR_GET_TIMERSLACK = 0x1e
+- PR_GET_TIMING = 0xd
+- PR_GET_TSC = 0x19
+- PR_GET_UNALIGN = 0x5
+- PR_MCE_KILL = 0x21
+- PR_MCE_KILL_CLEAR = 0x0
+- PR_MCE_KILL_DEFAULT = 0x2
+- PR_MCE_KILL_EARLY = 0x1
+- PR_MCE_KILL_GET = 0x22
+- PR_MCE_KILL_LATE = 0x0
+- PR_MCE_KILL_SET = 0x1
+- PR_MPX_DISABLE_MANAGEMENT = 0x2c
+- PR_MPX_ENABLE_MANAGEMENT = 0x2b
+- PR_SET_CHILD_SUBREAPER = 0x24
+- PR_SET_DUMPABLE = 0x4
+- PR_SET_ENDIAN = 0x14
+- PR_SET_FPEMU = 0xa
+- PR_SET_FPEXC = 0xc
+- PR_SET_FP_MODE = 0x2d
+- PR_SET_KEEPCAPS = 0x8
+- PR_SET_MM = 0x23
+- PR_SET_MM_ARG_END = 0x9
+- PR_SET_MM_ARG_START = 0x8
+- PR_SET_MM_AUXV = 0xc
+- PR_SET_MM_BRK = 0x7
+- PR_SET_MM_END_CODE = 0x2
+- PR_SET_MM_END_DATA = 0x4
+- PR_SET_MM_ENV_END = 0xb
+- PR_SET_MM_ENV_START = 0xa
+- PR_SET_MM_EXE_FILE = 0xd
+- PR_SET_MM_MAP = 0xe
+- PR_SET_MM_MAP_SIZE = 0xf
+- PR_SET_MM_START_BRK = 0x6
+- PR_SET_MM_START_CODE = 0x1
+- PR_SET_MM_START_DATA = 0x3
+- PR_SET_MM_START_STACK = 0x5
+- PR_SET_NAME = 0xf
+- PR_SET_NO_NEW_PRIVS = 0x26
+- PR_SET_PDEATHSIG = 0x1
+- PR_SET_PTRACER = 0x59616d61
+- PR_SET_PTRACER_ANY = -0x1
+- PR_SET_SECCOMP = 0x16
+- PR_SET_SECUREBITS = 0x1c
+- PR_SET_THP_DISABLE = 0x29
+- PR_SET_TIMERSLACK = 0x1d
+- PR_SET_TIMING = 0xe
+- PR_SET_TSC = 0x1a
+- PR_SET_UNALIGN = 0x6
+- PR_TASK_PERF_EVENTS_DISABLE = 0x1f
+- PR_TASK_PERF_EVENTS_ENABLE = 0x20
+- PR_TIMING_STATISTICAL = 0x0
+- PR_TIMING_TIMESTAMP = 0x1
+- PR_TSC_ENABLE = 0x1
+- PR_TSC_SIGSEGV = 0x2
+- PR_UNALIGN_NOPRINT = 0x1
+- PR_UNALIGN_SIGBUS = 0x2
+- PTRACE_ATTACH = 0x10
+- PTRACE_CONT = 0x7
+- PTRACE_DETACH = 0x11
+- PTRACE_DISABLE_TE = 0x5010
+- PTRACE_ENABLE_TE = 0x5009
+- PTRACE_EVENT_CLONE = 0x3
+- PTRACE_EVENT_EXEC = 0x4
+- PTRACE_EVENT_EXIT = 0x6
+- PTRACE_EVENT_FORK = 0x1
+- PTRACE_EVENT_SECCOMP = 0x7
+- PTRACE_EVENT_STOP = 0x80
+- PTRACE_EVENT_VFORK = 0x2
+- PTRACE_EVENT_VFORK_DONE = 0x5
+- PTRACE_GETEVENTMSG = 0x4201
+- PTRACE_GETREGS = 0xc
+- PTRACE_GETREGSET = 0x4204
+- PTRACE_GETSIGINFO = 0x4202
+- PTRACE_GETSIGMASK = 0x420a
+- PTRACE_GET_LAST_BREAK = 0x5006
+- PTRACE_INTERRUPT = 0x4207
+- PTRACE_KILL = 0x8
+- PTRACE_LISTEN = 0x4208
+- PTRACE_OLDSETOPTIONS = 0x15
+- PTRACE_O_EXITKILL = 0x100000
+- PTRACE_O_MASK = 0x3000ff
+- PTRACE_O_SUSPEND_SECCOMP = 0x200000
+- PTRACE_O_TRACECLONE = 0x8
+- PTRACE_O_TRACEEXEC = 0x10
+- PTRACE_O_TRACEEXIT = 0x40
+- PTRACE_O_TRACEFORK = 0x2
+- PTRACE_O_TRACESECCOMP = 0x80
+- PTRACE_O_TRACESYSGOOD = 0x1
+- PTRACE_O_TRACEVFORK = 0x4
+- PTRACE_O_TRACEVFORKDONE = 0x20
+- PTRACE_PEEKDATA = 0x2
+- PTRACE_PEEKDATA_AREA = 0x5003
+- PTRACE_PEEKSIGINFO = 0x4209
+- PTRACE_PEEKSIGINFO_SHARED = 0x1
+- PTRACE_PEEKTEXT = 0x1
+- PTRACE_PEEKTEXT_AREA = 0x5002
+- PTRACE_PEEKUSR = 0x3
+- PTRACE_PEEKUSR_AREA = 0x5000
+- PTRACE_PEEK_SYSTEM_CALL = 0x5007
+- PTRACE_POKEDATA = 0x5
+- PTRACE_POKEDATA_AREA = 0x5005
+- PTRACE_POKETEXT = 0x4
+- PTRACE_POKETEXT_AREA = 0x5004
+- PTRACE_POKEUSR = 0x6
+- PTRACE_POKEUSR_AREA = 0x5001
+- PTRACE_POKE_SYSTEM_CALL = 0x5008
+- PTRACE_PROT = 0x15
+- PTRACE_SECCOMP_GET_FILTER = 0x420c
+- PTRACE_SEIZE = 0x4206
+- PTRACE_SETOPTIONS = 0x4200
+- PTRACE_SETREGS = 0xd
+- PTRACE_SETREGSET = 0x4205
+- PTRACE_SETSIGINFO = 0x4203
+- PTRACE_SETSIGMASK = 0x420b
+- PTRACE_SINGLEBLOCK = 0xc
+- PTRACE_SINGLESTEP = 0x9
+- PTRACE_SYSCALL = 0x18
+- PTRACE_TE_ABORT_RAND = 0x5011
+- PTRACE_TRACEME = 0x0
+- PT_ACR0 = 0x90
+- PT_ACR1 = 0x94
+- PT_ACR10 = 0xb8
+- PT_ACR11 = 0xbc
+- PT_ACR12 = 0xc0
+- PT_ACR13 = 0xc4
+- PT_ACR14 = 0xc8
+- PT_ACR15 = 0xcc
+- PT_ACR2 = 0x98
+- PT_ACR3 = 0x9c
+- PT_ACR4 = 0xa0
+- PT_ACR5 = 0xa4
+- PT_ACR6 = 0xa8
+- PT_ACR7 = 0xac
+- PT_ACR8 = 0xb0
+- PT_ACR9 = 0xb4
+- PT_CR_10 = 0x168
+- PT_CR_11 = 0x170
+- PT_CR_9 = 0x160
+- PT_ENDREGS = 0x1af
+- PT_FPC = 0xd8
+- PT_FPR0 = 0xe0
+- PT_FPR1 = 0xe8
+- PT_FPR10 = 0x130
+- PT_FPR11 = 0x138
+- PT_FPR12 = 0x140
+- PT_FPR13 = 0x148
+- PT_FPR14 = 0x150
+- PT_FPR15 = 0x158
+- PT_FPR2 = 0xf0
+- PT_FPR3 = 0xf8
+- PT_FPR4 = 0x100
+- PT_FPR5 = 0x108
+- PT_FPR6 = 0x110
+- PT_FPR7 = 0x118
+- PT_FPR8 = 0x120
+- PT_FPR9 = 0x128
+- PT_GPR0 = 0x10
+- PT_GPR1 = 0x18
+- PT_GPR10 = 0x60
+- PT_GPR11 = 0x68
+- PT_GPR12 = 0x70
+- PT_GPR13 = 0x78
+- PT_GPR14 = 0x80
+- PT_GPR15 = 0x88
+- PT_GPR2 = 0x20
+- PT_GPR3 = 0x28
+- PT_GPR4 = 0x30
+- PT_GPR5 = 0x38
+- PT_GPR6 = 0x40
+- PT_GPR7 = 0x48
+- PT_GPR8 = 0x50
+- PT_GPR9 = 0x58
+- PT_IEEE_IP = 0x1a8
+- PT_LASTOFF = 0x1a8
+- PT_ORIGGPR2 = 0xd0
+- PT_PSWADDR = 0x8
+- PT_PSWMASK = 0x0
+- RLIMIT_AS = 0x9
+- RLIMIT_CORE = 0x4
+- RLIMIT_CPU = 0x0
+- RLIMIT_DATA = 0x2
+- RLIMIT_FSIZE = 0x1
+- RLIMIT_LOCKS = 0xa
+- RLIMIT_MEMLOCK = 0x8
+- RLIMIT_MSGQUEUE = 0xc
+- RLIMIT_NICE = 0xd
+- RLIMIT_NOFILE = 0x7
+- RLIMIT_NPROC = 0x6
+- RLIMIT_RSS = 0x5
+- RLIMIT_RTPRIO = 0xe
+- RLIMIT_RTTIME = 0xf
+- RLIMIT_SIGPENDING = 0xb
+- RLIMIT_STACK = 0x3
+- RLIM_INFINITY = -0x1
+- RTAX_ADVMSS = 0x8
+- RTAX_CC_ALGO = 0x10
+- RTAX_CWND = 0x7
+- RTAX_FEATURES = 0xc
+- RTAX_FEATURE_ALLFRAG = 0x8
+- RTAX_FEATURE_ECN = 0x1
+- RTAX_FEATURE_MASK = 0xf
+- RTAX_FEATURE_SACK = 0x2
+- RTAX_FEATURE_TIMESTAMP = 0x4
+- RTAX_HOPLIMIT = 0xa
+- RTAX_INITCWND = 0xb
+- RTAX_INITRWND = 0xe
+- RTAX_LOCK = 0x1
+- RTAX_MAX = 0x10
+- RTAX_MTU = 0x2
+- RTAX_QUICKACK = 0xf
+- RTAX_REORDERING = 0x9
+- RTAX_RTO_MIN = 0xd
+- RTAX_RTT = 0x4
+- RTAX_RTTVAR = 0x5
+- RTAX_SSTHRESH = 0x6
+- RTAX_UNSPEC = 0x0
+- RTAX_WINDOW = 0x3
+- RTA_ALIGNTO = 0x4
+- RTA_MAX = 0x19
+- RTCF_DIRECTSRC = 0x4000000
+- RTCF_DOREDIRECT = 0x1000000
+- RTCF_LOG = 0x2000000
+- RTCF_MASQ = 0x400000
+- RTCF_NAT = 0x800000
+- RTCF_VALVE = 0x200000
+- RTF_ADDRCLASSMASK = 0xf8000000
+- RTF_ADDRCONF = 0x40000
+- RTF_ALLONLINK = 0x20000
+- RTF_BROADCAST = 0x10000000
+- RTF_CACHE = 0x1000000
+- RTF_DEFAULT = 0x10000
+- RTF_DYNAMIC = 0x10
+- RTF_FLOW = 0x2000000
+- RTF_GATEWAY = 0x2
+- RTF_HOST = 0x4
+- RTF_INTERFACE = 0x40000000
+- RTF_IRTT = 0x100
+- RTF_LINKRT = 0x100000
+- RTF_LOCAL = 0x80000000
+- RTF_MODIFIED = 0x20
+- RTF_MSS = 0x40
+- RTF_MTU = 0x40
+- RTF_MULTICAST = 0x20000000
+- RTF_NAT = 0x8000000
+- RTF_NOFORWARD = 0x1000
+- RTF_NONEXTHOP = 0x200000
+- RTF_NOPMTUDISC = 0x4000
+- RTF_POLICY = 0x4000000
+- RTF_REINSTATE = 0x8
+- RTF_REJECT = 0x200
+- RTF_STATIC = 0x400
+- RTF_THROW = 0x2000
+- RTF_UP = 0x1
+- RTF_WINDOW = 0x80
+- RTF_XRESOLVE = 0x800
+- RTM_BASE = 0x10
+- RTM_DELACTION = 0x31
+- RTM_DELADDR = 0x15
+- RTM_DELADDRLABEL = 0x49
+- RTM_DELLINK = 0x11
+- RTM_DELMDB = 0x55
+- RTM_DELNEIGH = 0x1d
+- RTM_DELNSID = 0x59
+- RTM_DELQDISC = 0x25
+- RTM_DELROUTE = 0x19
+- RTM_DELRULE = 0x21
+- RTM_DELTCLASS = 0x29
+- RTM_DELTFILTER = 0x2d
+- RTM_F_CLONED = 0x200
+- RTM_F_EQUALIZE = 0x400
+- RTM_F_LOOKUP_TABLE = 0x1000
+- RTM_F_NOTIFY = 0x100
+- RTM_F_PREFIX = 0x800
+- RTM_GETACTION = 0x32
+- RTM_GETADDR = 0x16
+- RTM_GETADDRLABEL = 0x4a
+- RTM_GETANYCAST = 0x3e
+- RTM_GETDCB = 0x4e
+- RTM_GETLINK = 0x12
+- RTM_GETMDB = 0x56
+- RTM_GETMULTICAST = 0x3a
+- RTM_GETNEIGH = 0x1e
+- RTM_GETNEIGHTBL = 0x42
+- RTM_GETNETCONF = 0x52
+- RTM_GETNSID = 0x5a
+- RTM_GETQDISC = 0x26
+- RTM_GETROUTE = 0x1a
+- RTM_GETRULE = 0x22
+- RTM_GETSTATS = 0x5e
+- RTM_GETTCLASS = 0x2a
+- RTM_GETTFILTER = 0x2e
+- RTM_MAX = 0x5f
+- RTM_NEWACTION = 0x30
+- RTM_NEWADDR = 0x14
+- RTM_NEWADDRLABEL = 0x48
+- RTM_NEWLINK = 0x10
+- RTM_NEWMDB = 0x54
+- RTM_NEWNDUSEROPT = 0x44
+- RTM_NEWNEIGH = 0x1c
+- RTM_NEWNEIGHTBL = 0x40
+- RTM_NEWNETCONF = 0x50
+- RTM_NEWNSID = 0x58
+- RTM_NEWPREFIX = 0x34
+- RTM_NEWQDISC = 0x24
+- RTM_NEWROUTE = 0x18
+- RTM_NEWRULE = 0x20
+- RTM_NEWSTATS = 0x5c
+- RTM_NEWTCLASS = 0x28
+- RTM_NEWTFILTER = 0x2c
+- RTM_NR_FAMILIES = 0x14
+- RTM_NR_MSGTYPES = 0x50
+- RTM_SETDCB = 0x4f
+- RTM_SETLINK = 0x13
+- RTM_SETNEIGHTBL = 0x43
+- RTNH_ALIGNTO = 0x4
+- RTNH_COMPARE_MASK = 0x19
+- RTNH_F_DEAD = 0x1
+- RTNH_F_LINKDOWN = 0x10
+- RTNH_F_OFFLOAD = 0x8
+- RTNH_F_ONLINK = 0x4
+- RTNH_F_PERVASIVE = 0x2
+- RTN_MAX = 0xb
+- RTPROT_BABEL = 0x2a
+- RTPROT_BIRD = 0xc
+- RTPROT_BOOT = 0x3
+- RTPROT_DHCP = 0x10
+- RTPROT_DNROUTED = 0xd
+- RTPROT_GATED = 0x8
+- RTPROT_KERNEL = 0x2
+- RTPROT_MROUTED = 0x11
+- RTPROT_MRT = 0xa
+- RTPROT_NTK = 0xf
+- RTPROT_RA = 0x9
+- RTPROT_REDIRECT = 0x1
+- RTPROT_STATIC = 0x4
+- RTPROT_UNSPEC = 0x0
+- RTPROT_XORP = 0xe
+- RTPROT_ZEBRA = 0xb
+- RT_CLASS_DEFAULT = 0xfd
+- RT_CLASS_LOCAL = 0xff
+- RT_CLASS_MAIN = 0xfe
+- RT_CLASS_MAX = 0xff
+- RT_CLASS_UNSPEC = 0x0
+- RUSAGE_CHILDREN = -0x1
+- RUSAGE_SELF = 0x0
+- RUSAGE_THREAD = 0x1
+- SCM_CREDENTIALS = 0x2
+- SCM_RIGHTS = 0x1
+- SCM_TIMESTAMP = 0x1d
+- SCM_TIMESTAMPING = 0x25
+- SCM_TIMESTAMPING_OPT_STATS = 0x36
+- SCM_TIMESTAMPNS = 0x23
+- SCM_WIFI_STATUS = 0x29
+- SECCOMP_MODE_DISABLED = 0x0
+- SECCOMP_MODE_FILTER = 0x2
+- SECCOMP_MODE_STRICT = 0x1
+- SHUT_RD = 0x0
+- SHUT_RDWR = 0x2
+- SHUT_WR = 0x1
+- SIOCADDDLCI = 0x8980
+- SIOCADDMULTI = 0x8931
+- SIOCADDRT = 0x890b
+- SIOCATMARK = 0x8905
+- SIOCBONDCHANGEACTIVE = 0x8995
+- SIOCBONDENSLAVE = 0x8990
+- SIOCBONDINFOQUERY = 0x8994
+- SIOCBONDRELEASE = 0x8991
+- SIOCBONDSETHWADDR = 0x8992
+- SIOCBONDSLAVEINFOQUERY = 0x8993
+- SIOCBRADDBR = 0x89a0
+- SIOCBRADDIF = 0x89a2
+- SIOCBRDELBR = 0x89a1
+- SIOCBRDELIF = 0x89a3
+- SIOCDARP = 0x8953
+- SIOCDELDLCI = 0x8981
+- SIOCDELMULTI = 0x8932
+- SIOCDELRT = 0x890c
+- SIOCDEVPRIVATE = 0x89f0
+- SIOCDIFADDR = 0x8936
+- SIOCDRARP = 0x8960
+- SIOCETHTOOL = 0x8946
+- SIOCGARP = 0x8954
+- SIOCGHWTSTAMP = 0x89b1
+- SIOCGIFADDR = 0x8915
+- SIOCGIFBR = 0x8940
+- SIOCGIFBRDADDR = 0x8919
+- SIOCGIFCONF = 0x8912
+- SIOCGIFCOUNT = 0x8938
+- SIOCGIFDSTADDR = 0x8917
+- SIOCGIFENCAP = 0x8925
+- SIOCGIFFLAGS = 0x8913
+- SIOCGIFHWADDR = 0x8927
+- SIOCGIFINDEX = 0x8933
+- SIOCGIFMAP = 0x8970
+- SIOCGIFMEM = 0x891f
+- SIOCGIFMETRIC = 0x891d
+- SIOCGIFMTU = 0x8921
+- SIOCGIFNAME = 0x8910
+- SIOCGIFNETMASK = 0x891b
+- SIOCGIFPFLAGS = 0x8935
+- SIOCGIFSLAVE = 0x8929
+- SIOCGIFTXQLEN = 0x8942
+- SIOCGIFVLAN = 0x8982
+- SIOCGMIIPHY = 0x8947
+- SIOCGMIIREG = 0x8948
+- SIOCGPGRP = 0x8904
+- SIOCGRARP = 0x8961
+- SIOCGSKNS = 0x894c
+- SIOCGSTAMP = 0x8906
+- SIOCGSTAMPNS = 0x8907
+- SIOCINQ = 0x541b
+- SIOCOUTQ = 0x5411
+- SIOCOUTQNSD = 0x894b
+- SIOCPROTOPRIVATE = 0x89e0
+- SIOCRTMSG = 0x890d
+- SIOCSARP = 0x8955
+- SIOCSHWTSTAMP = 0x89b0
+- SIOCSIFADDR = 0x8916
+- SIOCSIFBR = 0x8941
+- SIOCSIFBRDADDR = 0x891a
+- SIOCSIFDSTADDR = 0x8918
+- SIOCSIFENCAP = 0x8926
+- SIOCSIFFLAGS = 0x8914
+- SIOCSIFHWADDR = 0x8924
+- SIOCSIFHWBROADCAST = 0x8937
+- SIOCSIFLINK = 0x8911
+- SIOCSIFMAP = 0x8971
+- SIOCSIFMEM = 0x8920
+- SIOCSIFMETRIC = 0x891e
+- SIOCSIFMTU = 0x8922
+- SIOCSIFNAME = 0x8923
+- SIOCSIFNETMASK = 0x891c
+- SIOCSIFPFLAGS = 0x8934
+- SIOCSIFSLAVE = 0x8930
+- SIOCSIFTXQLEN = 0x8943
+- SIOCSIFVLAN = 0x8983
+- SIOCSMIIREG = 0x8949
+- SIOCSPGRP = 0x8902
+- SIOCSRARP = 0x8962
+- SIOCWANDEV = 0x894a
+- SOCK_CLOEXEC = 0x80000
+- SOCK_DCCP = 0x6
+- SOCK_DGRAM = 0x2
+- SOCK_IOC_TYPE = 0x89
+- SOCK_NONBLOCK = 0x800
+- SOCK_PACKET = 0xa
+- SOCK_RAW = 0x3
+- SOCK_RDM = 0x4
+- SOCK_SEQPACKET = 0x5
+- SOCK_STREAM = 0x1
+- SOL_AAL = 0x109
+- SOL_ALG = 0x117
+- SOL_ATM = 0x108
+- SOL_CAIF = 0x116
+- SOL_CAN_BASE = 0x64
+- SOL_DCCP = 0x10d
+- SOL_DECNET = 0x105
+- SOL_ICMPV6 = 0x3a
+- SOL_IP = 0x0
+- SOL_IPV6 = 0x29
+- SOL_IRDA = 0x10a
+- SOL_IUCV = 0x115
+- SOL_KCM = 0x119
+- SOL_LLC = 0x10c
+- SOL_NETBEUI = 0x10b
+- SOL_NETLINK = 0x10e
+- SOL_NFC = 0x118
+- SOL_PACKET = 0x107
+- SOL_PNPIPE = 0x113
+- SOL_PPPOL2TP = 0x111
+- SOL_RAW = 0xff
+- SOL_RDS = 0x114
+- SOL_RXRPC = 0x110
+- SOL_SOCKET = 0x1
+- SOL_TCP = 0x6
+- SOL_TIPC = 0x10f
+- SOL_X25 = 0x106
+- SOMAXCONN = 0x80
+- SO_ACCEPTCONN = 0x1e
+- SO_ATTACH_BPF = 0x32
+- SO_ATTACH_FILTER = 0x1a
+- SO_ATTACH_REUSEPORT_CBPF = 0x33
+- SO_ATTACH_REUSEPORT_EBPF = 0x34
+- SO_BINDTODEVICE = 0x19
+- SO_BPF_EXTENSIONS = 0x30
+- SO_BROADCAST = 0x6
+- SO_BSDCOMPAT = 0xe
+- SO_BUSY_POLL = 0x2e
+- SO_CNX_ADVICE = 0x35
+- SO_DEBUG = 0x1
+- SO_DETACH_BPF = 0x1b
+- SO_DETACH_FILTER = 0x1b
+- SO_DOMAIN = 0x27
+- SO_DONTROUTE = 0x5
+- SO_ERROR = 0x4
+- SO_GET_FILTER = 0x1a
+- SO_INCOMING_CPU = 0x31
+- SO_KEEPALIVE = 0x9
+- SO_LINGER = 0xd
+- SO_LOCK_FILTER = 0x2c
+- SO_MARK = 0x24
+- SO_MAX_PACING_RATE = 0x2f
+- SO_NOFCS = 0x2b
+- SO_NO_CHECK = 0xb
+- SO_OOBINLINE = 0xa
+- SO_PASSCRED = 0x10
+- SO_PASSSEC = 0x22
+- SO_PEEK_OFF = 0x2a
+- SO_PEERCRED = 0x11
+- SO_PEERNAME = 0x1c
+- SO_PEERSEC = 0x1f
+- SO_PRIORITY = 0xc
+- SO_PROTOCOL = 0x26
+- SO_RCVBUF = 0x8
+- SO_RCVBUFFORCE = 0x21
+- SO_RCVLOWAT = 0x12
+- SO_RCVTIMEO = 0x14
+- SO_REUSEADDR = 0x2
+- SO_REUSEPORT = 0xf
+- SO_RXQ_OVFL = 0x28
+- SO_SECURITY_AUTHENTICATION = 0x16
+- SO_SECURITY_ENCRYPTION_NETWORK = 0x18
+- SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
+- SO_SELECT_ERR_QUEUE = 0x2d
+- SO_SNDBUF = 0x7
+- SO_SNDBUFFORCE = 0x20
+- SO_SNDLOWAT = 0x13
+- SO_SNDTIMEO = 0x15
+- SO_TIMESTAMP = 0x1d
+- SO_TIMESTAMPING = 0x25
+- SO_TIMESTAMPNS = 0x23
+- SO_TYPE = 0x3
+- SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
+- SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
+- SO_VM_SOCKETS_BUFFER_SIZE = 0x0
+- SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
+- SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
+- SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
+- SO_VM_SOCKETS_TRUSTED = 0x5
+- SO_WIFI_STATUS = 0x29
+- SPLICE_F_GIFT = 0x8
+- SPLICE_F_MORE = 0x4
+- SPLICE_F_MOVE = 0x1
+- SPLICE_F_NONBLOCK = 0x2
+- S_BLKSIZE = 0x200
+- S_IEXEC = 0x40
+- S_IFBLK = 0x6000
+- S_IFCHR = 0x2000
+- S_IFDIR = 0x4000
+- S_IFIFO = 0x1000
+- S_IFLNK = 0xa000
+- S_IFMT = 0xf000
+- S_IFREG = 0x8000
+- S_IFSOCK = 0xc000
+- S_IREAD = 0x100
+- S_IRGRP = 0x20
+- S_IROTH = 0x4
+- S_IRUSR = 0x100
+- S_IRWXG = 0x38
+- S_IRWXO = 0x7
+- S_IRWXU = 0x1c0
+- S_ISGID = 0x400
+- S_ISUID = 0x800
+- S_ISVTX = 0x200
+- S_IWGRP = 0x10
+- S_IWOTH = 0x2
+- S_IWRITE = 0x80
+- S_IWUSR = 0x80
+- S_IXGRP = 0x8
+- S_IXOTH = 0x1
+- S_IXUSR = 0x40
+- TAB0 = 0x0
+- TAB1 = 0x800
+- TAB2 = 0x1000
+- TAB3 = 0x1800
+- TABDLY = 0x1800
+- TASKSTATS_CMD_ATTR_MAX = 0x4
+- TASKSTATS_CMD_MAX = 0x2
+- TASKSTATS_GENL_NAME = "TASKSTATS"
+- TASKSTATS_GENL_VERSION = 0x1
+- TASKSTATS_TYPE_MAX = 0x6
+- TASKSTATS_VERSION = 0x8
+- TCFLSH = 0x540b
+- TCGETA = 0x5405
+- TCGETS = 0x5401
+- TCGETS2 = 0x802c542a
+- TCGETX = 0x5432
+- TCIFLUSH = 0x0
+- TCIOFF = 0x2
+- TCIOFLUSH = 0x2
+- TCION = 0x3
+- TCOFLUSH = 0x1
+- TCOOFF = 0x0
+- TCOON = 0x1
+- TCP_CC_INFO = 0x1a
+- TCP_CONGESTION = 0xd
+- TCP_COOKIE_IN_ALWAYS = 0x1
+- TCP_COOKIE_MAX = 0x10
+- TCP_COOKIE_MIN = 0x8
+- TCP_COOKIE_OUT_NEVER = 0x2
+- TCP_COOKIE_PAIR_SIZE = 0x20
+- TCP_COOKIE_TRANSACTIONS = 0xf
+- TCP_CORK = 0x3
+- TCP_DEFER_ACCEPT = 0x9
+- TCP_FASTOPEN = 0x17
+- TCP_INFO = 0xb
+- TCP_KEEPCNT = 0x6
+- TCP_KEEPIDLE = 0x4
+- TCP_KEEPINTVL = 0x5
+- TCP_LINGER2 = 0x8
+- TCP_MAXSEG = 0x2
+- TCP_MAXWIN = 0xffff
+- TCP_MAX_WINSHIFT = 0xe
+- TCP_MD5SIG = 0xe
+- TCP_MD5SIG_MAXKEYLEN = 0x50
+- TCP_MSS = 0x200
+- TCP_MSS_DEFAULT = 0x218
+- TCP_MSS_DESIRED = 0x4c4
+- TCP_NODELAY = 0x1
+- TCP_NOTSENT_LOWAT = 0x19
+- TCP_QUEUE_SEQ = 0x15
+- TCP_QUICKACK = 0xc
+- TCP_REPAIR = 0x13
+- TCP_REPAIR_OPTIONS = 0x16
+- TCP_REPAIR_QUEUE = 0x14
+- TCP_REPAIR_WINDOW = 0x1d
+- TCP_SAVED_SYN = 0x1c
+- TCP_SAVE_SYN = 0x1b
+- TCP_SYNCNT = 0x7
+- TCP_S_DATA_IN = 0x4
+- TCP_S_DATA_OUT = 0x8
+- TCP_THIN_DUPACK = 0x11
+- TCP_THIN_LINEAR_TIMEOUTS = 0x10
+- TCP_TIMESTAMP = 0x18
+- TCP_USER_TIMEOUT = 0x12
+- TCP_WINDOW_CLAMP = 0xa
+- TCSAFLUSH = 0x2
+- TCSBRK = 0x5409
+- TCSBRKP = 0x5425
+- TCSETA = 0x5406
+- TCSETAF = 0x5408
+- TCSETAW = 0x5407
+- TCSETS = 0x5402
+- TCSETS2 = 0x402c542b
+- TCSETSF = 0x5404
+- TCSETSF2 = 0x402c542d
+- TCSETSW = 0x5403
+- TCSETSW2 = 0x402c542c
+- TCSETX = 0x5433
+- TCSETXF = 0x5434
+- TCSETXW = 0x5435
+- TCXONC = 0x540a
+- TIOCCBRK = 0x5428
+- TIOCCONS = 0x541d
+- TIOCEXCL = 0x540c
+- TIOCGDEV = 0x80045432
+- TIOCGETD = 0x5424
+- TIOCGEXCL = 0x80045440
+- TIOCGICOUNT = 0x545d
+- TIOCGLCKTRMIOS = 0x5456
+- TIOCGPGRP = 0x540f
+- TIOCGPKT = 0x80045438
+- TIOCGPTLCK = 0x80045439
+- TIOCGPTN = 0x80045430
+- TIOCGRS485 = 0x542e
+- TIOCGSERIAL = 0x541e
+- TIOCGSID = 0x5429
+- TIOCGSOFTCAR = 0x5419
+- TIOCGWINSZ = 0x5413
+- TIOCINQ = 0x541b
+- TIOCLINUX = 0x541c
+- TIOCMBIC = 0x5417
+- TIOCMBIS = 0x5416
+- TIOCMGET = 0x5415
+- TIOCMIWAIT = 0x545c
+- TIOCMSET = 0x5418
+- TIOCM_CAR = 0x40
+- TIOCM_CD = 0x40
+- TIOCM_CTS = 0x20
+- TIOCM_DSR = 0x100
+- TIOCM_DTR = 0x2
+- TIOCM_LE = 0x1
+- TIOCM_RI = 0x80
+- TIOCM_RNG = 0x80
+- TIOCM_RTS = 0x4
+- TIOCM_SR = 0x10
+- TIOCM_ST = 0x8
+- TIOCNOTTY = 0x5422
+- TIOCNXCL = 0x540d
+- TIOCOUTQ = 0x5411
+- TIOCPKT = 0x5420
+- TIOCPKT_DATA = 0x0
+- TIOCPKT_DOSTOP = 0x20
+- TIOCPKT_FLUSHREAD = 0x1
+- TIOCPKT_FLUSHWRITE = 0x2
+- TIOCPKT_IOCTL = 0x40
+- TIOCPKT_NOSTOP = 0x10
+- TIOCPKT_START = 0x8
+- TIOCPKT_STOP = 0x4
+- TIOCSBRK = 0x5427
+- TIOCSCTTY = 0x540e
+- TIOCSERCONFIG = 0x5453
+- TIOCSERGETLSR = 0x5459
+- TIOCSERGETMULTI = 0x545a
+- TIOCSERGSTRUCT = 0x5458
+- TIOCSERGWILD = 0x5454
+- TIOCSERSETMULTI = 0x545b
+- TIOCSERSWILD = 0x5455
+- TIOCSER_TEMT = 0x1
+- TIOCSETD = 0x5423
+- TIOCSIG = 0x40045436
+- TIOCSLCKTRMIOS = 0x5457
+- TIOCSPGRP = 0x5410
+- TIOCSPTLCK = 0x40045431
+- TIOCSRS485 = 0x542f
+- TIOCSSERIAL = 0x541f
+- TIOCSSOFTCAR = 0x541a
+- TIOCSTI = 0x5412
+- TIOCSWINSZ = 0x5414
+- TIOCVHANGUP = 0x5437
+- TOSTOP = 0x100
+- TS_COMM_LEN = 0x20
+- TUNATTACHFILTER = 0x401054d5
+- TUNDETACHFILTER = 0x401054d6
+- TUNGETFEATURES = 0x800454cf
+- TUNGETFILTER = 0x801054db
+- TUNGETIFF = 0x800454d2
+- TUNGETSNDBUF = 0x800454d3
+- TUNGETVNETBE = 0x800454df
+- TUNGETVNETHDRSZ = 0x800454d7
+- TUNGETVNETLE = 0x800454dd
+- TUNSETDEBUG = 0x400454c9
+- TUNSETGROUP = 0x400454ce
+- TUNSETIFF = 0x400454ca
+- TUNSETIFINDEX = 0x400454da
+- TUNSETLINK = 0x400454cd
+- TUNSETNOCSUM = 0x400454c8
+- TUNSETOFFLOAD = 0x400454d0
+- TUNSETOWNER = 0x400454cc
+- TUNSETPERSIST = 0x400454cb
+- TUNSETQUEUE = 0x400454d9
+- TUNSETSNDBUF = 0x400454d4
+- TUNSETTXFILTER = 0x400454d1
+- TUNSETVNETBE = 0x400454de
+- TUNSETVNETHDRSZ = 0x400454d8
+- TUNSETVNETLE = 0x400454dc
+- UMOUNT_NOFOLLOW = 0x8
+- VDISCARD = 0xd
+- VEOF = 0x4
+- VEOL = 0xb
+- VEOL2 = 0x10
+- VERASE = 0x2
+- VINTR = 0x0
+- VKILL = 0x3
+- VLNEXT = 0xf
+- VMADDR_CID_ANY = 0xffffffff
+- VMADDR_CID_HOST = 0x2
+- VMADDR_CID_HYPERVISOR = 0x0
+- VMADDR_CID_RESERVED = 0x1
+- VMADDR_PORT_ANY = 0xffffffff
+- VMIN = 0x6
+- VM_SOCKETS_INVALID_VERSION = 0xffffffff
+- VQUIT = 0x1
+- VREPRINT = 0xc
+- VSTART = 0x8
+- VSTOP = 0x9
+- VSUSP = 0xa
+- VSWTC = 0x7
+- VT0 = 0x0
+- VT1 = 0x4000
+- VTDLY = 0x4000
+- VTIME = 0x5
+- VWERASE = 0xe
+- WALL = 0x40000000
+- WCLONE = 0x80000000
+- WCONTINUED = 0x8
+- WEXITED = 0x4
+- WNOHANG = 0x1
+- WNOTHREAD = 0x20000000
+- WNOWAIT = 0x1000000
+- WORDSIZE = 0x40
+- WSTOPPED = 0x2
+- WUNTRACED = 0x2
+- XATTR_CREATE = 0x1
+- XATTR_REPLACE = 0x2
+- XCASE = 0x4
+- XTABS = 0x1800
++ B1000000 = 0x1008
++ B115200 = 0x1002
++ B1152000 = 0x1009
++ B1500000 = 0x100a
++ B2000000 = 0x100b
++ B230400 = 0x1003
++ B2500000 = 0x100c
++ B3000000 = 0x100d
++ B3500000 = 0x100e
++ B4000000 = 0x100f
++ B460800 = 0x1004
++ B500000 = 0x1005
++ B57600 = 0x1001
++ B576000 = 0x1006
++ B921600 = 0x1007
++ BLKBSZGET = 0x80081270
++ BLKBSZSET = 0x40081271
++ BLKFLSBUF = 0x1261
++ BLKFRAGET = 0x1265
++ BLKFRASET = 0x1264
++ BLKGETSIZE = 0x1260
++ BLKGETSIZE64 = 0x80081272
++ BLKPBSZGET = 0x127b
++ BLKRAGET = 0x1263
++ BLKRASET = 0x1262
++ BLKROGET = 0x125e
++ BLKROSET = 0x125d
++ BLKRRPART = 0x125f
++ BLKSECTGET = 0x1267
++ BLKSECTSET = 0x1266
++ BLKSSZGET = 0x1268
++ BOTHER = 0x1000
++ BS1 = 0x2000
++ BSDLY = 0x2000
++ CBAUD = 0x100f
++ CBAUDEX = 0x1000
++ CIBAUD = 0x100f0000
++ CLOCAL = 0x800
++ CR1 = 0x200
++ CR2 = 0x400
++ CR3 = 0x600
++ CRDLY = 0x600
++ CREAD = 0x80
++ CS6 = 0x10
++ CS7 = 0x20
++ CS8 = 0x30
++ CSIZE = 0x30
++ CSTOPB = 0x40
++ ECHOCTL = 0x200
++ ECHOE = 0x10
++ ECHOK = 0x20
++ ECHOKE = 0x800
++ ECHONL = 0x40
++ ECHOPRT = 0x400
++ EFD_CLOEXEC = 0x80000
++ EFD_NONBLOCK = 0x800
++ EPOLL_CLOEXEC = 0x80000
++ EXTPROC = 0x10000
++ FF1 = 0x8000
++ FFDLY = 0x8000
++ FLUSHO = 0x1000
++ FS_IOC_ENABLE_VERITY = 0x40806685
++ FS_IOC_GETFLAGS = 0x80086601
++ FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615
++ FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614
++ FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613
++ F_GETLK = 0x5
++ F_GETLK64 = 0x5
++ F_GETOWN = 0x9
++ F_RDLCK = 0x0
++ F_SETLK = 0x6
++ F_SETLK64 = 0x6
++ F_SETLKW = 0x7
++ F_SETLKW64 = 0x7
++ F_SETOWN = 0x8
++ F_UNLCK = 0x2
++ F_WRLCK = 0x1
++ HUPCL = 0x400
++ ICANON = 0x2
++ IEXTEN = 0x8000
++ IN_CLOEXEC = 0x80000
++ IN_NONBLOCK = 0x800
++ IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9
++ ISIG = 0x1
++ IUCLC = 0x200
++ IXOFF = 0x1000
++ IXON = 0x400
++ MAP_ANON = 0x20
++ MAP_ANONYMOUS = 0x20
++ MAP_DENYWRITE = 0x800
++ MAP_EXECUTABLE = 0x1000
++ MAP_GROWSDOWN = 0x100
++ MAP_HUGETLB = 0x40000
++ MAP_LOCKED = 0x2000
++ MAP_NONBLOCK = 0x10000
++ MAP_NORESERVE = 0x4000
++ MAP_POPULATE = 0x8000
++ MAP_STACK = 0x20000
++ MAP_SYNC = 0x80000
++ MCL_CURRENT = 0x1
++ MCL_FUTURE = 0x2
++ MCL_ONFAULT = 0x4
++ NFDBITS = 0x40
++ NLDLY = 0x100
++ NOFLSH = 0x80
++ NS_GET_NSTYPE = 0xb703
++ NS_GET_OWNER_UID = 0xb704
++ NS_GET_PARENT = 0xb702
++ NS_GET_USERNS = 0xb701
++ OLCUC = 0x2
++ ONLCR = 0x4
++ O_APPEND = 0x400
++ O_ASYNC = 0x2000
++ O_CLOEXEC = 0x80000
++ O_CREAT = 0x40
++ O_DIRECT = 0x4000
++ O_DIRECTORY = 0x10000
++ O_DSYNC = 0x1000
++ O_EXCL = 0x80
++ O_FSYNC = 0x101000
++ O_LARGEFILE = 0x0
++ O_NDELAY = 0x800
++ O_NOATIME = 0x40000
++ O_NOCTTY = 0x100
++ O_NOFOLLOW = 0x20000
++ O_NONBLOCK = 0x800
++ O_PATH = 0x200000
++ O_RSYNC = 0x101000
++ O_SYNC = 0x101000
++ O_TMPFILE = 0x410000
++ O_TRUNC = 0x200
++ PARENB = 0x100
++ PARODD = 0x200
++ PENDIN = 0x4000
++ PERF_EVENT_IOC_DISABLE = 0x2401
++ PERF_EVENT_IOC_ENABLE = 0x2400
++ PERF_EVENT_IOC_ID = 0x80082407
++ PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b
++ PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409
++ PERF_EVENT_IOC_PERIOD = 0x40082404
++ PERF_EVENT_IOC_QUERY_BPF = 0xc008240a
++ PERF_EVENT_IOC_REFRESH = 0x2402
++ PERF_EVENT_IOC_RESET = 0x2403
++ PERF_EVENT_IOC_SET_BPF = 0x40042408
++ PERF_EVENT_IOC_SET_FILTER = 0x40082406
++ PERF_EVENT_IOC_SET_OUTPUT = 0x2405
++ PPPIOCATTACH = 0x4004743d
++ PPPIOCATTCHAN = 0x40047438
++ PPPIOCCONNECT = 0x4004743a
++ PPPIOCDETACH = 0x4004743c
++ PPPIOCDISCONN = 0x7439
++ PPPIOCGASYNCMAP = 0x80047458
++ PPPIOCGCHAN = 0x80047437
++ PPPIOCGDEBUG = 0x80047441
++ PPPIOCGFLAGS = 0x8004745a
++ PPPIOCGIDLE = 0x8010743f
++ PPPIOCGIDLE32 = 0x8008743f
++ PPPIOCGIDLE64 = 0x8010743f
++ PPPIOCGL2TPSTATS = 0x80487436
++ PPPIOCGMRU = 0x80047453
++ PPPIOCGRASYNCMAP = 0x80047455
++ PPPIOCGUNIT = 0x80047456
++ PPPIOCGXASYNCMAP = 0x80207450
++ PPPIOCSACTIVE = 0x40107446
++ PPPIOCSASYNCMAP = 0x40047457
++ PPPIOCSCOMPRESS = 0x4010744d
++ PPPIOCSDEBUG = 0x40047440
++ PPPIOCSFLAGS = 0x40047459
++ PPPIOCSMAXCID = 0x40047451
++ PPPIOCSMRRU = 0x4004743b
++ PPPIOCSMRU = 0x40047452
++ PPPIOCSNPMODE = 0x4008744b
++ PPPIOCSPASS = 0x40107447
++ PPPIOCSRASYNCMAP = 0x40047454
++ PPPIOCSXASYNCMAP = 0x4020744f
++ PPPIOCXFERUNIT = 0x744e
++ PR_SET_PTRACER_ANY = 0xffffffffffffffff
++ PTRACE_DISABLE_TE = 0x5010
++ PTRACE_ENABLE_TE = 0x5009
++ PTRACE_GET_LAST_BREAK = 0x5006
++ PTRACE_OLDSETOPTIONS = 0x15
++ PTRACE_PEEKDATA_AREA = 0x5003
++ PTRACE_PEEKTEXT_AREA = 0x5002
++ PTRACE_PEEKUSR_AREA = 0x5000
++ PTRACE_PEEK_SYSTEM_CALL = 0x5007
++ PTRACE_POKEDATA_AREA = 0x5005
++ PTRACE_POKETEXT_AREA = 0x5004
++ PTRACE_POKEUSR_AREA = 0x5001
++ PTRACE_POKE_SYSTEM_CALL = 0x5008
++ PTRACE_PROT = 0x15
++ PTRACE_SINGLEBLOCK = 0xc
++ PTRACE_TE_ABORT_RAND = 0x5011
++ PT_ACR0 = 0x90
++ PT_ACR1 = 0x94
++ PT_ACR10 = 0xb8
++ PT_ACR11 = 0xbc
++ PT_ACR12 = 0xc0
++ PT_ACR13 = 0xc4
++ PT_ACR14 = 0xc8
++ PT_ACR15 = 0xcc
++ PT_ACR2 = 0x98
++ PT_ACR3 = 0x9c
++ PT_ACR4 = 0xa0
++ PT_ACR5 = 0xa4
++ PT_ACR6 = 0xa8
++ PT_ACR7 = 0xac
++ PT_ACR8 = 0xb0
++ PT_ACR9 = 0xb4
++ PT_CR_10 = 0x168
++ PT_CR_11 = 0x170
++ PT_CR_9 = 0x160
++ PT_ENDREGS = 0x1af
++ PT_FPC = 0xd8
++ PT_FPR0 = 0xe0
++ PT_FPR1 = 0xe8
++ PT_FPR10 = 0x130
++ PT_FPR11 = 0x138
++ PT_FPR12 = 0x140
++ PT_FPR13 = 0x148
++ PT_FPR14 = 0x150
++ PT_FPR15 = 0x158
++ PT_FPR2 = 0xf0
++ PT_FPR3 = 0xf8
++ PT_FPR4 = 0x100
++ PT_FPR5 = 0x108
++ PT_FPR6 = 0x110
++ PT_FPR7 = 0x118
++ PT_FPR8 = 0x120
++ PT_FPR9 = 0x128
++ PT_GPR0 = 0x10
++ PT_GPR1 = 0x18
++ PT_GPR10 = 0x60
++ PT_GPR11 = 0x68
++ PT_GPR12 = 0x70
++ PT_GPR13 = 0x78
++ PT_GPR14 = 0x80
++ PT_GPR15 = 0x88
++ PT_GPR2 = 0x20
++ PT_GPR3 = 0x28
++ PT_GPR4 = 0x30
++ PT_GPR5 = 0x38
++ PT_GPR6 = 0x40
++ PT_GPR7 = 0x48
++ PT_GPR8 = 0x50
++ PT_GPR9 = 0x58
++ PT_IEEE_IP = 0x1a8
++ PT_LASTOFF = 0x1a8
++ PT_ORIGGPR2 = 0xd0
++ PT_PSWADDR = 0x8
++ PT_PSWMASK = 0x0
++ RLIMIT_AS = 0x9
++ RLIMIT_MEMLOCK = 0x8
++ RLIMIT_NOFILE = 0x7
++ RLIMIT_NPROC = 0x6
++ RLIMIT_RSS = 0x5
++ RNDADDENTROPY = 0x40085203
++ RNDADDTOENTCNT = 0x40045201
++ RNDCLEARPOOL = 0x5206
++ RNDGETENTCNT = 0x80045200
++ RNDGETPOOL = 0x80085202
++ RNDRESEEDCRNG = 0x5207
++ RNDZAPENTCNT = 0x5204
++ RTC_AIE_OFF = 0x7002
++ RTC_AIE_ON = 0x7001
++ RTC_ALM_READ = 0x80247008
++ RTC_ALM_SET = 0x40247007
++ RTC_EPOCH_READ = 0x8008700d
++ RTC_EPOCH_SET = 0x4008700e
++ RTC_IRQP_READ = 0x8008700b
++ RTC_IRQP_SET = 0x4008700c
++ RTC_PIE_OFF = 0x7006
++ RTC_PIE_ON = 0x7005
++ RTC_PLL_GET = 0x80207011
++ RTC_PLL_SET = 0x40207012
++ RTC_RD_TIME = 0x80247009
++ RTC_SET_TIME = 0x4024700a
++ RTC_UIE_OFF = 0x7004
++ RTC_UIE_ON = 0x7003
++ RTC_VL_CLR = 0x7014
++ RTC_VL_READ = 0x80047013
++ RTC_WIE_OFF = 0x7010
++ RTC_WIE_ON = 0x700f
++ RTC_WKALM_RD = 0x80287010
++ RTC_WKALM_SET = 0x4028700f
++ SCM_TIMESTAMPING = 0x25
++ SCM_TIMESTAMPING_OPT_STATS = 0x36
++ SCM_TIMESTAMPING_PKTINFO = 0x3a
++ SCM_TIMESTAMPNS = 0x23
++ SCM_TXTIME = 0x3d
++ SCM_WIFI_STATUS = 0x29
++ SFD_CLOEXEC = 0x80000
++ SFD_NONBLOCK = 0x800
++ SIOCATMARK = 0x8905
++ SIOCGPGRP = 0x8904
++ SIOCGSTAMPNS_NEW = 0x80108907
++ SIOCGSTAMP_NEW = 0x80108906
++ SIOCINQ = 0x541b
++ SIOCOUTQ = 0x5411
++ SIOCSPGRP = 0x8902
++ SOCK_CLOEXEC = 0x80000
++ SOCK_DGRAM = 0x2
++ SOCK_NONBLOCK = 0x800
++ SOCK_STREAM = 0x1
++ SOL_SOCKET = 0x1
++ SO_ACCEPTCONN = 0x1e
++ SO_ATTACH_BPF = 0x32
++ SO_ATTACH_REUSEPORT_CBPF = 0x33
++ SO_ATTACH_REUSEPORT_EBPF = 0x34
++ SO_BINDTODEVICE = 0x19
++ SO_BINDTOIFINDEX = 0x3e
++ SO_BPF_EXTENSIONS = 0x30
++ SO_BROADCAST = 0x6
++ SO_BSDCOMPAT = 0xe
++ SO_BUSY_POLL = 0x2e
++ SO_CNX_ADVICE = 0x35
++ SO_COOKIE = 0x39
++ SO_DETACH_REUSEPORT_BPF = 0x44
++ SO_DOMAIN = 0x27
++ SO_DONTROUTE = 0x5
++ SO_ERROR = 0x4
++ SO_INCOMING_CPU = 0x31
++ SO_INCOMING_NAPI_ID = 0x38
++ SO_KEEPALIVE = 0x9
++ SO_LINGER = 0xd
++ SO_LOCK_FILTER = 0x2c
++ SO_MARK = 0x24
++ SO_MAX_PACING_RATE = 0x2f
++ SO_MEMINFO = 0x37
++ SO_NOFCS = 0x2b
++ SO_OOBINLINE = 0xa
++ SO_PASSCRED = 0x10
++ SO_PASSSEC = 0x22
++ SO_PEEK_OFF = 0x2a
++ SO_PEERCRED = 0x11
++ SO_PEERGROUPS = 0x3b
++ SO_PEERSEC = 0x1f
++ SO_PROTOCOL = 0x26
++ SO_RCVBUF = 0x8
++ SO_RCVBUFFORCE = 0x21
++ SO_RCVLOWAT = 0x12
++ SO_RCVTIMEO = 0x14
++ SO_RCVTIMEO_NEW = 0x42
++ SO_RCVTIMEO_OLD = 0x14
++ SO_REUSEADDR = 0x2
++ SO_REUSEPORT = 0xf
++ SO_RXQ_OVFL = 0x28
++ SO_SECURITY_AUTHENTICATION = 0x16
++ SO_SECURITY_ENCRYPTION_NETWORK = 0x18
++ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
++ SO_SELECT_ERR_QUEUE = 0x2d
++ SO_SNDBUF = 0x7
++ SO_SNDBUFFORCE = 0x20
++ SO_SNDLOWAT = 0x13
++ SO_SNDTIMEO = 0x15
++ SO_SNDTIMEO_NEW = 0x43
++ SO_SNDTIMEO_OLD = 0x15
++ SO_TIMESTAMPING = 0x25
++ SO_TIMESTAMPING_NEW = 0x41
++ SO_TIMESTAMPING_OLD = 0x25
++ SO_TIMESTAMPNS = 0x23
++ SO_TIMESTAMPNS_NEW = 0x40
++ SO_TIMESTAMPNS_OLD = 0x23
++ SO_TIMESTAMP_NEW = 0x3f
++ SO_TXTIME = 0x3d
++ SO_TYPE = 0x3
++ SO_WIFI_STATUS = 0x29
++ SO_ZEROCOPY = 0x3c
++ TAB1 = 0x800
++ TAB2 = 0x1000
++ TAB3 = 0x1800
++ TABDLY = 0x1800
++ TCFLSH = 0x540b
++ TCGETA = 0x5405
++ TCGETS = 0x5401
++ TCGETS2 = 0x802c542a
++ TCGETX = 0x5432
++ TCSAFLUSH = 0x2
++ TCSBRK = 0x5409
++ TCSBRKP = 0x5425
++ TCSETA = 0x5406
++ TCSETAF = 0x5408
++ TCSETAW = 0x5407
++ TCSETS = 0x5402
++ TCSETS2 = 0x402c542b
++ TCSETSF = 0x5404
++ TCSETSF2 = 0x402c542d
++ TCSETSW = 0x5403
++ TCSETSW2 = 0x402c542c
++ TCSETX = 0x5433
++ TCSETXF = 0x5434
++ TCSETXW = 0x5435
++ TCXONC = 0x540a
++ TIOCCBRK = 0x5428
++ TIOCCONS = 0x541d
++ TIOCEXCL = 0x540c
++ TIOCGDEV = 0x80045432
++ TIOCGETD = 0x5424
++ TIOCGEXCL = 0x80045440
++ TIOCGICOUNT = 0x545d
++ TIOCGISO7816 = 0x80285442
++ TIOCGLCKTRMIOS = 0x5456
++ TIOCGPGRP = 0x540f
++ TIOCGPKT = 0x80045438
++ TIOCGPTLCK = 0x80045439
++ TIOCGPTN = 0x80045430
++ TIOCGPTPEER = 0x5441
++ TIOCGRS485 = 0x542e
++ TIOCGSERIAL = 0x541e
++ TIOCGSID = 0x5429
++ TIOCGSOFTCAR = 0x5419
++ TIOCGWINSZ = 0x5413
++ TIOCINQ = 0x541b
++ TIOCLINUX = 0x541c
++ TIOCMBIC = 0x5417
++ TIOCMBIS = 0x5416
++ TIOCMGET = 0x5415
++ TIOCMIWAIT = 0x545c
++ TIOCMSET = 0x5418
++ TIOCM_CAR = 0x40
++ TIOCM_CD = 0x40
++ TIOCM_CTS = 0x20
++ TIOCM_DSR = 0x100
++ TIOCM_RI = 0x80
++ TIOCM_RNG = 0x80
++ TIOCM_SR = 0x10
++ TIOCM_ST = 0x8
++ TIOCNOTTY = 0x5422
++ TIOCNXCL = 0x540d
++ TIOCOUTQ = 0x5411
++ TIOCPKT = 0x5420
++ TIOCSBRK = 0x5427
++ TIOCSCTTY = 0x540e
++ TIOCSERCONFIG = 0x5453
++ TIOCSERGETLSR = 0x5459
++ TIOCSERGETMULTI = 0x545a
++ TIOCSERGSTRUCT = 0x5458
++ TIOCSERGWILD = 0x5454
++ TIOCSERSETMULTI = 0x545b
++ TIOCSERSWILD = 0x5455
++ TIOCSER_TEMT = 0x1
++ TIOCSETD = 0x5423
++ TIOCSIG = 0x40045436
++ TIOCSISO7816 = 0xc0285443
++ TIOCSLCKTRMIOS = 0x5457
++ TIOCSPGRP = 0x5410
++ TIOCSPTLCK = 0x40045431
++ TIOCSRS485 = 0x542f
++ TIOCSSERIAL = 0x541f
++ TIOCSSOFTCAR = 0x541a
++ TIOCSTI = 0x5412
++ TIOCSWINSZ = 0x5414
++ TIOCVHANGUP = 0x5437
++ TOSTOP = 0x100
++ TUNATTACHFILTER = 0x401054d5
++ TUNDETACHFILTER = 0x401054d6
++ TUNGETDEVNETNS = 0x54e3
++ TUNGETFEATURES = 0x800454cf
++ TUNGETFILTER = 0x801054db
++ TUNGETIFF = 0x800454d2
++ TUNGETSNDBUF = 0x800454d3
++ TUNGETVNETBE = 0x800454df
++ TUNGETVNETHDRSZ = 0x800454d7
++ TUNGETVNETLE = 0x800454dd
++ TUNSETCARRIER = 0x400454e2
++ TUNSETDEBUG = 0x400454c9
++ TUNSETFILTEREBPF = 0x800454e1
++ TUNSETGROUP = 0x400454ce
++ TUNSETIFF = 0x400454ca
++ TUNSETIFINDEX = 0x400454da
++ TUNSETLINK = 0x400454cd
++ TUNSETNOCSUM = 0x400454c8
++ TUNSETOFFLOAD = 0x400454d0
++ TUNSETOWNER = 0x400454cc
++ TUNSETPERSIST = 0x400454cb
++ TUNSETQUEUE = 0x400454d9
++ TUNSETSNDBUF = 0x400454d4
++ TUNSETSTEERINGEBPF = 0x800454e0
++ TUNSETTXFILTER = 0x400454d1
++ TUNSETVNETBE = 0x400454de
++ TUNSETVNETHDRSZ = 0x400454d8
++ TUNSETVNETLE = 0x400454dc
++ UBI_IOCATT = 0x40186f40
++ UBI_IOCDET = 0x40046f41
++ UBI_IOCEBCH = 0x40044f02
++ UBI_IOCEBER = 0x40044f01
++ UBI_IOCEBISMAP = 0x80044f05
++ UBI_IOCEBMAP = 0x40084f03
++ UBI_IOCEBUNMAP = 0x40044f04
++ UBI_IOCMKVOL = 0x40986f00
++ UBI_IOCRMVOL = 0x40046f01
++ UBI_IOCRNVOL = 0x51106f03
++ UBI_IOCRPEB = 0x40046f04
++ UBI_IOCRSVOL = 0x400c6f02
++ UBI_IOCSETVOLPROP = 0x40104f06
++ UBI_IOCSPEB = 0x40046f05
++ UBI_IOCVOLCRBLK = 0x40804f07
++ UBI_IOCVOLRMBLK = 0x4f08
++ UBI_IOCVOLUP = 0x40084f00
++ VDISCARD = 0xd
++ VEOF = 0x4
++ VEOL = 0xb
++ VEOL2 = 0x10
++ VMIN = 0x6
++ VREPRINT = 0xc
++ VSTART = 0x8
++ VSTOP = 0x9
++ VSUSP = 0xa
++ VSWTC = 0x7
++ VT1 = 0x4000
++ VTDLY = 0x4000
++ VTIME = 0x5
++ VWERASE = 0xe
++ WDIOC_GETBOOTSTATUS = 0x80045702
++ WDIOC_GETPRETIMEOUT = 0x80045709
++ WDIOC_GETSTATUS = 0x80045701
++ WDIOC_GETSUPPORT = 0x80285700
++ WDIOC_GETTEMP = 0x80045703
++ WDIOC_GETTIMELEFT = 0x8004570a
++ WDIOC_GETTIMEOUT = 0x80045707
++ WDIOC_KEEPALIVE = 0x80045705
++ WDIOC_SETOPTIONS = 0x80045704
++ WORDSIZE = 0x40
++ XCASE = 0x4
++ XTABS = 0x1800
+ )
+
+ // Errors
+ const (
+- E2BIG = syscall.Errno(0x7)
+- EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x62)
+ EADDRNOTAVAIL = syscall.Errno(0x63)
+ EADV = syscall.Errno(0x44)
+ EAFNOSUPPORT = syscall.Errno(0x61)
+- EAGAIN = syscall.Errno(0xb)
+ EALREADY = syscall.Errno(0x72)
+ EBADE = syscall.Errno(0x34)
+- EBADF = syscall.Errno(0x9)
+ EBADFD = syscall.Errno(0x4d)
+ EBADMSG = syscall.Errno(0x4a)
+ EBADR = syscall.Errno(0x35)
+ EBADRQC = syscall.Errno(0x38)
+ EBADSLT = syscall.Errno(0x39)
+ EBFONT = syscall.Errno(0x3b)
+- EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x7d)
+- ECHILD = syscall.Errno(0xa)
+ ECHRNG = syscall.Errno(0x2c)
+ ECOMM = syscall.Errno(0x46)
+ ECONNABORTED = syscall.Errno(0x67)
+@@ -1943,23 +560,15 @@ const (
+ EDEADLK = syscall.Errno(0x23)
+ EDEADLOCK = syscall.Errno(0x23)
+ EDESTADDRREQ = syscall.Errno(0x59)
+- EDOM = syscall.Errno(0x21)
+ EDOTDOT = syscall.Errno(0x49)
+ EDQUOT = syscall.Errno(0x7a)
+- EEXIST = syscall.Errno(0x11)
+- EFAULT = syscall.Errno(0xe)
+- EFBIG = syscall.Errno(0x1b)
+ EHOSTDOWN = syscall.Errno(0x70)
+ EHOSTUNREACH = syscall.Errno(0x71)
+ EHWPOISON = syscall.Errno(0x85)
+ EIDRM = syscall.Errno(0x2b)
+ EILSEQ = syscall.Errno(0x54)
+ EINPROGRESS = syscall.Errno(0x73)
+- EINTR = syscall.Errno(0x4)
+- EINVAL = syscall.Errno(0x16)
+- EIO = syscall.Errno(0x5)
+ EISCONN = syscall.Errno(0x6a)
+- EISDIR = syscall.Errno(0x15)
+ EISNAM = syscall.Errno(0x78)
+ EKEYEXPIRED = syscall.Errno(0x7f)
+ EKEYREJECTED = syscall.Errno(0x81)
+@@ -1976,8 +585,6 @@ const (
+ ELNRNG = syscall.Errno(0x30)
+ ELOOP = syscall.Errno(0x28)
+ EMEDIUMTYPE = syscall.Errno(0x7c)
+- EMFILE = syscall.Errno(0x18)
+- EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x5a)
+ EMULTIHOP = syscall.Errno(0x48)
+ ENAMETOOLONG = syscall.Errno(0x24)
+@@ -1985,103 +592,70 @@ const (
+ ENETDOWN = syscall.Errno(0x64)
+ ENETRESET = syscall.Errno(0x66)
+ ENETUNREACH = syscall.Errno(0x65)
+- ENFILE = syscall.Errno(0x17)
+ ENOANO = syscall.Errno(0x37)
+ ENOBUFS = syscall.Errno(0x69)
+ ENOCSI = syscall.Errno(0x32)
+ ENODATA = syscall.Errno(0x3d)
+- ENODEV = syscall.Errno(0x13)
+- ENOENT = syscall.Errno(0x2)
+- ENOEXEC = syscall.Errno(0x8)
+ ENOKEY = syscall.Errno(0x7e)
+ ENOLCK = syscall.Errno(0x25)
+ ENOLINK = syscall.Errno(0x43)
+ ENOMEDIUM = syscall.Errno(0x7b)
+- ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x2a)
+ ENONET = syscall.Errno(0x40)
+ ENOPKG = syscall.Errno(0x41)
+ ENOPROTOOPT = syscall.Errno(0x5c)
+- ENOSPC = syscall.Errno(0x1c)
+ ENOSR = syscall.Errno(0x3f)
+ ENOSTR = syscall.Errno(0x3c)
+ ENOSYS = syscall.Errno(0x26)
+- ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x6b)
+- ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x27)
+ ENOTNAM = syscall.Errno(0x76)
+ ENOTRECOVERABLE = syscall.Errno(0x83)
+ ENOTSOCK = syscall.Errno(0x58)
+ ENOTSUP = syscall.Errno(0x5f)
+- ENOTTY = syscall.Errno(0x19)
+ ENOTUNIQ = syscall.Errno(0x4c)
+- ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x5f)
+ EOVERFLOW = syscall.Errno(0x4b)
+ EOWNERDEAD = syscall.Errno(0x82)
+- EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x60)
+- EPIPE = syscall.Errno(0x20)
+ EPROTO = syscall.Errno(0x47)
+ EPROTONOSUPPORT = syscall.Errno(0x5d)
+ EPROTOTYPE = syscall.Errno(0x5b)
+- ERANGE = syscall.Errno(0x22)
+ EREMCHG = syscall.Errno(0x4e)
+ EREMOTE = syscall.Errno(0x42)
+ EREMOTEIO = syscall.Errno(0x79)
+ ERESTART = syscall.Errno(0x55)
+ ERFKILL = syscall.Errno(0x84)
+- EROFS = syscall.Errno(0x1e)
+ ESHUTDOWN = syscall.Errno(0x6c)
+ ESOCKTNOSUPPORT = syscall.Errno(0x5e)
+- ESPIPE = syscall.Errno(0x1d)
+- ESRCH = syscall.Errno(0x3)
+ ESRMNT = syscall.Errno(0x45)
+ ESTALE = syscall.Errno(0x74)
+ ESTRPIPE = syscall.Errno(0x56)
+ ETIME = syscall.Errno(0x3e)
+ ETIMEDOUT = syscall.Errno(0x6e)
+ ETOOMANYREFS = syscall.Errno(0x6d)
+- ETXTBSY = syscall.Errno(0x1a)
+ EUCLEAN = syscall.Errno(0x75)
+ EUNATCH = syscall.Errno(0x31)
+ EUSERS = syscall.Errno(0x57)
+- EWOULDBLOCK = syscall.Errno(0xb)
+- EXDEV = syscall.Errno(0x12)
+ EXFULL = syscall.Errno(0x36)
+ )
+
+ // Signals
+ const (
+- SIGABRT = syscall.Signal(0x6)
+- SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0x7)
+ SIGCHLD = syscall.Signal(0x11)
+ SIGCLD = syscall.Signal(0x11)
+ SIGCONT = syscall.Signal(0x12)
+- SIGFPE = syscall.Signal(0x8)
+- SIGHUP = syscall.Signal(0x1)
+- SIGILL = syscall.Signal(0x4)
+- SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x1d)
+- SIGIOT = syscall.Signal(0x6)
+- SIGKILL = syscall.Signal(0x9)
+- SIGPIPE = syscall.Signal(0xd)
+ SIGPOLL = syscall.Signal(0x1d)
+ SIGPROF = syscall.Signal(0x1b)
+ SIGPWR = syscall.Signal(0x1e)
+- SIGQUIT = syscall.Signal(0x3)
+- SIGSEGV = syscall.Signal(0xb)
+ SIGSTKFLT = syscall.Signal(0x10)
+ SIGSTOP = syscall.Signal(0x13)
+ SIGSYS = syscall.Signal(0x1f)
+- SIGTERM = syscall.Signal(0xf)
+- SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x14)
+ SIGTTIN = syscall.Signal(0x15)
+ SIGTTOU = syscall.Signal(0x16)
+- SIGUNUSED = syscall.Signal(0x1f)
+ SIGURG = syscall.Signal(0x17)
+ SIGUSR1 = syscall.Signal(0xa)
+ SIGUSR2 = syscall.Signal(0xc)
+@@ -2092,171 +666,179 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "no such device or address",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource temporarily unavailable",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "device or resource busy",
+- 17: "file exists",
+- 18: "invalid cross-device link",
+- 19: "no such device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "numerical result out of range",
+- 35: "resource deadlock avoided",
+- 36: "file name too long",
+- 37: "no locks available",
+- 38: "function not implemented",
+- 39: "directory not empty",
+- 40: "too many levels of symbolic links",
+- 42: "no message of desired type",
+- 43: "identifier removed",
+- 44: "channel number out of range",
+- 45: "level 2 not synchronized",
+- 46: "level 3 halted",
+- 47: "level 3 reset",
+- 48: "link number out of range",
+- 49: "protocol driver not attached",
+- 50: "no CSI structure available",
+- 51: "level 2 halted",
+- 52: "invalid exchange",
+- 53: "invalid request descriptor",
+- 54: "exchange full",
+- 55: "no anode",
+- 56: "invalid request code",
+- 57: "invalid slot",
+- 59: "bad font file format",
+- 60: "device not a stream",
+- 61: "no data available",
+- 62: "timer expired",
+- 63: "out of streams resources",
+- 64: "machine is not on the network",
+- 65: "package not installed",
+- 66: "object is remote",
+- 67: "link has been severed",
+- 68: "advertise error",
+- 69: "srmount error",
+- 70: "communication error on send",
+- 71: "protocol error",
+- 72: "multihop attempted",
+- 73: "RFS specific error",
+- 74: "bad message",
+- 75: "value too large for defined data type",
+- 76: "name not unique on network",
+- 77: "file descriptor in bad state",
+- 78: "remote address changed",
+- 79: "can not access a needed shared library",
+- 80: "accessing a corrupted shared library",
+- 81: ".lib section in a.out corrupted",
+- 82: "attempting to link in too many shared libraries",
+- 83: "cannot exec a shared library directly",
+- 84: "invalid or incomplete multibyte or wide character",
+- 85: "interrupted system call should be restarted",
+- 86: "streams pipe error",
+- 87: "too many users",
+- 88: "socket operation on non-socket",
+- 89: "destination address required",
+- 90: "message too long",
+- 91: "protocol wrong type for socket",
+- 92: "protocol not available",
+- 93: "protocol not supported",
+- 94: "socket type not supported",
+- 95: "operation not supported",
+- 96: "protocol family not supported",
+- 97: "address family not supported by protocol",
+- 98: "address already in use",
+- 99: "cannot assign requested address",
+- 100: "network is down",
+- 101: "network is unreachable",
+- 102: "network dropped connection on reset",
+- 103: "software caused connection abort",
+- 104: "connection reset by peer",
+- 105: "no buffer space available",
+- 106: "transport endpoint is already connected",
+- 107: "transport endpoint is not connected",
+- 108: "cannot send after transport endpoint shutdown",
+- 109: "too many references: cannot splice",
+- 110: "connection timed out",
+- 111: "connection refused",
+- 112: "host is down",
+- 113: "no route to host",
+- 114: "operation already in progress",
+- 115: "operation now in progress",
+- 116: "stale file handle",
+- 117: "structure needs cleaning",
+- 118: "not a XENIX named type file",
+- 119: "no XENIX semaphores available",
+- 120: "is a named type file",
+- 121: "remote I/O error",
+- 122: "disk quota exceeded",
+- 123: "no medium found",
+- 124: "wrong medium type",
+- 125: "operation canceled",
+- 126: "required key not available",
+- 127: "key has expired",
+- 128: "key has been revoked",
+- 129: "key was rejected by service",
+- 130: "owner died",
+- 131: "state not recoverable",
+- 132: "operation not possible due to RF-kill",
+- 133: "memory page has hardware error",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "no such device or address"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EAGAIN", "resource temporarily unavailable"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device or resource busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "invalid cross-device link"},
++ {19, "ENODEV", "no such device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "numerical result out of range"},
++ {35, "EDEADLK", "resource deadlock avoided"},
++ {36, "ENAMETOOLONG", "file name too long"},
++ {37, "ENOLCK", "no locks available"},
++ {38, "ENOSYS", "function not implemented"},
++ {39, "ENOTEMPTY", "directory not empty"},
++ {40, "ELOOP", "too many levels of symbolic links"},
++ {42, "ENOMSG", "no message of desired type"},
++ {43, "EIDRM", "identifier removed"},
++ {44, "ECHRNG", "channel number out of range"},
++ {45, "EL2NSYNC", "level 2 not synchronized"},
++ {46, "EL3HLT", "level 3 halted"},
++ {47, "EL3RST", "level 3 reset"},
++ {48, "ELNRNG", "link number out of range"},
++ {49, "EUNATCH", "protocol driver not attached"},
++ {50, "ENOCSI", "no CSI structure available"},
++ {51, "EL2HLT", "level 2 halted"},
++ {52, "EBADE", "invalid exchange"},
++ {53, "EBADR", "invalid request descriptor"},
++ {54, "EXFULL", "exchange full"},
++ {55, "ENOANO", "no anode"},
++ {56, "EBADRQC", "invalid request code"},
++ {57, "EBADSLT", "invalid slot"},
++ {59, "EBFONT", "bad font file format"},
++ {60, "ENOSTR", "device not a stream"},
++ {61, "ENODATA", "no data available"},
++ {62, "ETIME", "timer expired"},
++ {63, "ENOSR", "out of streams resources"},
++ {64, "ENONET", "machine is not on the network"},
++ {65, "ENOPKG", "package not installed"},
++ {66, "EREMOTE", "object is remote"},
++ {67, "ENOLINK", "link has been severed"},
++ {68, "EADV", "advertise error"},
++ {69, "ESRMNT", "srmount error"},
++ {70, "ECOMM", "communication error on send"},
++ {71, "EPROTO", "protocol error"},
++ {72, "EMULTIHOP", "multihop attempted"},
++ {73, "EDOTDOT", "RFS specific error"},
++ {74, "EBADMSG", "bad message"},
++ {75, "EOVERFLOW", "value too large for defined data type"},
++ {76, "ENOTUNIQ", "name not unique on network"},
++ {77, "EBADFD", "file descriptor in bad state"},
++ {78, "EREMCHG", "remote address changed"},
++ {79, "ELIBACC", "can not access a needed shared library"},
++ {80, "ELIBBAD", "accessing a corrupted shared library"},
++ {81, "ELIBSCN", ".lib section in a.out corrupted"},
++ {82, "ELIBMAX", "attempting to link in too many shared libraries"},
++ {83, "ELIBEXEC", "cannot exec a shared library directly"},
++ {84, "EILSEQ", "invalid or incomplete multibyte or wide character"},
++ {85, "ERESTART", "interrupted system call should be restarted"},
++ {86, "ESTRPIPE", "streams pipe error"},
++ {87, "EUSERS", "too many users"},
++ {88, "ENOTSOCK", "socket operation on non-socket"},
++ {89, "EDESTADDRREQ", "destination address required"},
++ {90, "EMSGSIZE", "message too long"},
++ {91, "EPROTOTYPE", "protocol wrong type for socket"},
++ {92, "ENOPROTOOPT", "protocol not available"},
++ {93, "EPROTONOSUPPORT", "protocol not supported"},
++ {94, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {95, "ENOTSUP", "operation not supported"},
++ {96, "EPFNOSUPPORT", "protocol family not supported"},
++ {97, "EAFNOSUPPORT", "address family not supported by protocol"},
++ {98, "EADDRINUSE", "address already in use"},
++ {99, "EADDRNOTAVAIL", "cannot assign requested address"},
++ {100, "ENETDOWN", "network is down"},
++ {101, "ENETUNREACH", "network is unreachable"},
++ {102, "ENETRESET", "network dropped connection on reset"},
++ {103, "ECONNABORTED", "software caused connection abort"},
++ {104, "ECONNRESET", "connection reset by peer"},
++ {105, "ENOBUFS", "no buffer space available"},
++ {106, "EISCONN", "transport endpoint is already connected"},
++ {107, "ENOTCONN", "transport endpoint is not connected"},
++ {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"},
++ {109, "ETOOMANYREFS", "too many references: cannot splice"},
++ {110, "ETIMEDOUT", "connection timed out"},
++ {111, "ECONNREFUSED", "connection refused"},
++ {112, "EHOSTDOWN", "host is down"},
++ {113, "EHOSTUNREACH", "no route to host"},
++ {114, "EALREADY", "operation already in progress"},
++ {115, "EINPROGRESS", "operation now in progress"},
++ {116, "ESTALE", "stale file handle"},
++ {117, "EUCLEAN", "structure needs cleaning"},
++ {118, "ENOTNAM", "not a XENIX named type file"},
++ {119, "ENAVAIL", "no XENIX semaphores available"},
++ {120, "EISNAM", "is a named type file"},
++ {121, "EREMOTEIO", "remote I/O error"},
++ {122, "EDQUOT", "disk quota exceeded"},
++ {123, "ENOMEDIUM", "no medium found"},
++ {124, "EMEDIUMTYPE", "wrong medium type"},
++ {125, "ECANCELED", "operation canceled"},
++ {126, "ENOKEY", "required key not available"},
++ {127, "EKEYEXPIRED", "key has expired"},
++ {128, "EKEYREVOKED", "key has been revoked"},
++ {129, "EKEYREJECTED", "key was rejected by service"},
++ {130, "EOWNERDEAD", "owner died"},
++ {131, "ENOTRECOVERABLE", "state not recoverable"},
++ {132, "ERFKILL", "operation not possible due to RF-kill"},
++ {133, "EHWPOISON", "memory page has hardware error"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/breakpoint trap",
+- 6: "aborted",
+- 7: "bus error",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "user defined signal 1",
+- 11: "segmentation fault",
+- 12: "user defined signal 2",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "stack fault",
+- 17: "child exited",
+- 18: "continued",
+- 19: "stopped (signal)",
+- 20: "stopped",
+- 21: "stopped (tty input)",
+- 22: "stopped (tty output)",
+- 23: "urgent I/O condition",
+- 24: "CPU time limit exceeded",
+- 25: "file size limit exceeded",
+- 26: "virtual timer expired",
+- 27: "profiling timer expired",
+- 28: "window changed",
+- 29: "I/O possible",
+- 30: "power failure",
+- 31: "bad system call",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/breakpoint trap"},
++ {6, "SIGABRT", "aborted"},
++ {7, "SIGBUS", "bus error"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGUSR1", "user defined signal 1"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGUSR2", "user defined signal 2"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGSTKFLT", "stack fault"},
++ {17, "SIGCHLD", "child exited"},
++ {18, "SIGCONT", "continued"},
++ {19, "SIGSTOP", "stopped (signal)"},
++ {20, "SIGTSTP", "stopped"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGURG", "urgent I/O condition"},
++ {24, "SIGXCPU", "CPU time limit exceeded"},
++ {25, "SIGXFSZ", "file size limit exceeded"},
++ {26, "SIGVTALRM", "virtual timer expired"},
++ {27, "SIGPROF", "profiling timer expired"},
++ {28, "SIGWINCH", "window changed"},
++ {29, "SIGIO", "I/O possible"},
++ {30, "SIGPWR", "power failure"},
++ {31, "SIGSYS", "bad system call"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
+index 95de199f..079762fa 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
+@@ -1,915 +1,132 @@
+-// mkerrors.sh -m64
+-// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
++// mkerrors.sh -Wall -Werror -static -I/tmp/include
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build sparc64,linux
+
+-// Created by cgo -godefs - DO NOT EDIT
+-// cgo -godefs -- -m64 _const.go
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
++// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
+
+ package unix
+
+ import "syscall"
+
+ const (
+- AF_ALG = 0x26
+- AF_APPLETALK = 0x5
+- AF_ASH = 0x12
+- AF_ATMPVC = 0x8
+- AF_ATMSVC = 0x14
+- AF_AX25 = 0x3
+- AF_BLUETOOTH = 0x1f
+- AF_BRIDGE = 0x7
+- AF_CAIF = 0x25
+- AF_CAN = 0x1d
+- AF_DECnet = 0xc
+- AF_ECONET = 0x13
+- AF_FILE = 0x1
+- AF_IB = 0x1b
+- AF_IEEE802154 = 0x24
+- AF_INET = 0x2
+- AF_INET6 = 0xa
+- AF_IPX = 0x4
+- AF_IRDA = 0x17
+- AF_ISDN = 0x22
+- AF_IUCV = 0x20
+- AF_KCM = 0x29
+- AF_KEY = 0xf
+- AF_LLC = 0x1a
+- AF_LOCAL = 0x1
+- AF_MAX = 0x2a
+- AF_MPLS = 0x1c
+- AF_NETBEUI = 0xd
+- AF_NETLINK = 0x10
+- AF_NETROM = 0x6
+- AF_NFC = 0x27
+- AF_PACKET = 0x11
+- AF_PHONET = 0x23
+- AF_PPPOX = 0x18
+- AF_RDS = 0x15
+- AF_ROSE = 0xb
+- AF_ROUTE = 0x10
+- AF_RXRPC = 0x21
+- AF_SECURITY = 0xe
+- AF_SNA = 0x16
+- AF_TIPC = 0x1e
+- AF_UNIX = 0x1
+- AF_UNSPEC = 0x0
+- AF_VSOCK = 0x28
+- AF_WANPIPE = 0x19
+- AF_X25 = 0x9
+- ALG_OP_DECRYPT = 0x0
+- ALG_OP_ENCRYPT = 0x1
+- ALG_SET_AEAD_ASSOCLEN = 0x4
+- ALG_SET_AEAD_AUTHSIZE = 0x5
+- ALG_SET_IV = 0x2
+- ALG_SET_KEY = 0x1
+- ALG_SET_OP = 0x3
+- ARPHRD_6LOWPAN = 0x339
+- ARPHRD_ADAPT = 0x108
+- ARPHRD_APPLETLK = 0x8
+- ARPHRD_ARCNET = 0x7
+- ARPHRD_ASH = 0x30d
+- ARPHRD_ATM = 0x13
+- ARPHRD_AX25 = 0x3
+- ARPHRD_BIF = 0x307
+- ARPHRD_CAIF = 0x336
+- ARPHRD_CAN = 0x118
+- ARPHRD_CHAOS = 0x5
+- ARPHRD_CISCO = 0x201
+- ARPHRD_CSLIP = 0x101
+- ARPHRD_CSLIP6 = 0x103
+- ARPHRD_DDCMP = 0x205
+- ARPHRD_DLCI = 0xf
+- ARPHRD_ECONET = 0x30e
+- ARPHRD_EETHER = 0x2
+- ARPHRD_ETHER = 0x1
+- ARPHRD_EUI64 = 0x1b
+- ARPHRD_FCAL = 0x311
+- ARPHRD_FCFABRIC = 0x313
+- ARPHRD_FCPL = 0x312
+- ARPHRD_FCPP = 0x310
+- ARPHRD_FDDI = 0x306
+- ARPHRD_FRAD = 0x302
+- ARPHRD_HDLC = 0x201
+- ARPHRD_HIPPI = 0x30c
+- ARPHRD_HWX25 = 0x110
+- ARPHRD_IEEE1394 = 0x18
+- ARPHRD_IEEE802 = 0x6
+- ARPHRD_IEEE80211 = 0x321
+- ARPHRD_IEEE80211_PRISM = 0x322
+- ARPHRD_IEEE80211_RADIOTAP = 0x323
+- ARPHRD_IEEE802154 = 0x324
+- ARPHRD_IEEE802154_MONITOR = 0x325
+- ARPHRD_IEEE802_TR = 0x320
+- ARPHRD_INFINIBAND = 0x20
+- ARPHRD_IP6GRE = 0x337
+- ARPHRD_IPDDP = 0x309
+- ARPHRD_IPGRE = 0x30a
+- ARPHRD_IRDA = 0x30f
+- ARPHRD_LAPB = 0x204
+- ARPHRD_LOCALTLK = 0x305
+- ARPHRD_LOOPBACK = 0x304
+- ARPHRD_METRICOM = 0x17
+- ARPHRD_NETLINK = 0x338
+- ARPHRD_NETROM = 0x0
+- ARPHRD_NONE = 0xfffe
+- ARPHRD_PHONET = 0x334
+- ARPHRD_PHONET_PIPE = 0x335
+- ARPHRD_PIMREG = 0x30b
+- ARPHRD_PPP = 0x200
+- ARPHRD_PRONET = 0x4
+- ARPHRD_RAWHDLC = 0x206
+- ARPHRD_ROSE = 0x10e
+- ARPHRD_RSRVD = 0x104
+- ARPHRD_SIT = 0x308
+- ARPHRD_SKIP = 0x303
+- ARPHRD_SLIP = 0x100
+- ARPHRD_SLIP6 = 0x102
+- ARPHRD_TUNNEL = 0x300
+- ARPHRD_TUNNEL6 = 0x301
+- ARPHRD_VOID = 0xffff
+- ARPHRD_X25 = 0x10f
+ ASI_LEON_DFLUSH = 0x11
+ ASI_LEON_IFLUSH = 0x10
+ ASI_LEON_MMUFLUSH = 0x18
+- B0 = 0x0
+- B1000000 = 0x100c
+- B110 = 0x3
++ B1000000 = 0x1008
+ B115200 = 0x1002
+- B1152000 = 0x100d
+- B1200 = 0x9
+- B134 = 0x4
+- B150 = 0x5
+- B1500000 = 0x100e
+- B153600 = 0x1006
+- B1800 = 0xa
+- B19200 = 0xe
+- B200 = 0x6
+- B2000000 = 0x100f
++ B1152000 = 0x1009
++ B1500000 = 0x100a
++ B2000000 = 0x100b
+ B230400 = 0x1003
+- B2400 = 0xb
+- B300 = 0x7
+- B307200 = 0x1007
+- B38400 = 0xf
++ B2500000 = 0x100c
++ B3000000 = 0x100d
++ B3500000 = 0x100e
++ B4000000 = 0x100f
+ B460800 = 0x1004
+- B4800 = 0xc
+- B50 = 0x1
+- B500000 = 0x100a
++ B500000 = 0x1005
+ B57600 = 0x1001
+- B576000 = 0x100b
+- B600 = 0x8
+- B614400 = 0x1008
+- B75 = 0x2
+- B76800 = 0x1005
+- B921600 = 0x1009
+- B9600 = 0xd
+- BLKBSZGET = 0x80081270
+- BLKBSZSET = 0x40081271
+- BLKFLSBUF = 0x1261
+- BLKFRAGET = 0x1265
+- BLKFRASET = 0x1264
+- BLKGETSIZE = 0x1260
+- BLKGETSIZE64 = 0x80081272
+- BLKRAGET = 0x1263
+- BLKRASET = 0x1262
+- BLKROGET = 0x125e
+- BLKROSET = 0x125d
+- BLKRRPART = 0x125f
+- BLKSECTGET = 0x1267
+- BLKSECTSET = 0x1266
+- BLKSSZGET = 0x1268
++ B576000 = 0x1006
++ B921600 = 0x1007
++ BLKBSZGET = 0x40081270
++ BLKBSZSET = 0x80081271
++ BLKFLSBUF = 0x20001261
++ BLKFRAGET = 0x20001265
++ BLKFRASET = 0x20001264
++ BLKGETSIZE = 0x20001260
++ BLKGETSIZE64 = 0x40081272
++ BLKPBSZGET = 0x2000127b
++ BLKRAGET = 0x20001263
++ BLKRASET = 0x20001262
++ BLKROGET = 0x2000125e
++ BLKROSET = 0x2000125d
++ BLKRRPART = 0x2000125f
++ BLKSECTGET = 0x20001267
++ BLKSECTSET = 0x20001266
++ BLKSSZGET = 0x20001268
+ BOTHER = 0x1000
+- BPF_A = 0x10
+- BPF_ABS = 0x20
+- BPF_ADD = 0x0
+- BPF_ALU = 0x4
+- BPF_AND = 0x50
+- BPF_B = 0x10
+- BPF_DIV = 0x30
+- BPF_H = 0x8
+- BPF_IMM = 0x0
+- BPF_IND = 0x40
+- BPF_JA = 0x0
+- BPF_JEQ = 0x10
+- BPF_JGE = 0x30
+- BPF_JGT = 0x20
+- BPF_JMP = 0x5
+- BPF_JSET = 0x40
+- BPF_K = 0x0
+- BPF_LD = 0x0
+- BPF_LDX = 0x1
+- BPF_LEN = 0x80
+- BPF_LL_OFF = -0x200000
+- BPF_LSH = 0x60
+- BPF_MAJOR_VERSION = 0x1
+- BPF_MAXINSNS = 0x1000
+- BPF_MEM = 0x60
+- BPF_MEMWORDS = 0x10
+- BPF_MINOR_VERSION = 0x1
+- BPF_MISC = 0x7
+- BPF_MOD = 0x90
+- BPF_MSH = 0xa0
+- BPF_MUL = 0x20
+- BPF_NEG = 0x80
+- BPF_NET_OFF = -0x100000
+- BPF_OR = 0x40
+- BPF_RET = 0x6
+- BPF_RSH = 0x70
+- BPF_ST = 0x2
+- BPF_STX = 0x3
+- BPF_SUB = 0x10
+- BPF_TAX = 0x0
+- BPF_TXA = 0x80
+- BPF_W = 0x0
+- BPF_X = 0x8
+- BPF_XOR = 0xa0
+- BRKINT = 0x2
+- BS0 = 0x0
+ BS1 = 0x2000
+ BSDLY = 0x2000
+- CAN_BCM = 0x2
+- CAN_EFF_FLAG = 0x80000000
+- CAN_EFF_ID_BITS = 0x1d
+- CAN_EFF_MASK = 0x1fffffff
+- CAN_ERR_FLAG = 0x20000000
+- CAN_ERR_MASK = 0x1fffffff
+- CAN_INV_FILTER = 0x20000000
+- CAN_ISOTP = 0x6
+- CAN_MAX_DLC = 0x8
+- CAN_MAX_DLEN = 0x8
+- CAN_MCNET = 0x5
+- CAN_MTU = 0x10
+- CAN_NPROTO = 0x7
+- CAN_RAW = 0x1
+- CAN_RTR_FLAG = 0x40000000
+- CAN_SFF_ID_BITS = 0xb
+- CAN_SFF_MASK = 0x7ff
+- CAN_TP16 = 0x3
+- CAN_TP20 = 0x4
+ CBAUD = 0x100f
+ CBAUDEX = 0x1000
+- CFLUSH = 0xf
+ CIBAUD = 0x100f0000
+ CLOCAL = 0x800
+- CLOCK_BOOTTIME = 0x7
+- CLOCK_BOOTTIME_ALARM = 0x9
+- CLOCK_DEFAULT = 0x0
+- CLOCK_EXT = 0x1
+- CLOCK_INT = 0x2
+- CLOCK_MONOTONIC = 0x1
+- CLOCK_MONOTONIC_COARSE = 0x6
+- CLOCK_MONOTONIC_RAW = 0x4
+- CLOCK_PROCESS_CPUTIME_ID = 0x2
+- CLOCK_REALTIME = 0x0
+- CLOCK_REALTIME_ALARM = 0x8
+- CLOCK_REALTIME_COARSE = 0x5
+- CLOCK_TAI = 0xb
+- CLOCK_THREAD_CPUTIME_ID = 0x3
+- CLOCK_TXFROMRX = 0x4
+- CLOCK_TXINT = 0x3
+- CLONE_CHILD_CLEARTID = 0x200000
+- CLONE_CHILD_SETTID = 0x1000000
+- CLONE_DETACHED = 0x400000
+- CLONE_FILES = 0x400
+- CLONE_FS = 0x200
+- CLONE_IO = 0x80000000
+- CLONE_NEWCGROUP = 0x2000000
+- CLONE_NEWIPC = 0x8000000
+- CLONE_NEWNET = 0x40000000
+- CLONE_NEWNS = 0x20000
+- CLONE_NEWPID = 0x20000000
+- CLONE_NEWUSER = 0x10000000
+- CLONE_NEWUTS = 0x4000000
+- CLONE_PARENT = 0x8000
+- CLONE_PARENT_SETTID = 0x100000
+- CLONE_PTRACE = 0x2000
+- CLONE_SETTLS = 0x80000
+- CLONE_SIGHAND = 0x800
+- CLONE_SYSVSEM = 0x40000
+- CLONE_THREAD = 0x10000
+- CLONE_UNTRACED = 0x800000
+- CLONE_VFORK = 0x4000
+- CLONE_VM = 0x100
+- CMSPAR = 0x40000000
+- CR0 = 0x0
+ CR1 = 0x200
+ CR2 = 0x400
+ CR3 = 0x600
+ CRDLY = 0x600
+ CREAD = 0x80
+- CRTSCTS = 0x80000000
+- CS5 = 0x0
+ CS6 = 0x10
+ CS7 = 0x20
+ CS8 = 0x30
+- CSIGNAL = 0xff
+ CSIZE = 0x30
+- CSTART = 0x11
+- CSTATUS = 0x0
+- CSTOP = 0x13
+ CSTOPB = 0x40
+- CSUSP = 0x1a
+- DT_BLK = 0x6
+- DT_CHR = 0x2
+- DT_DIR = 0x4
+- DT_FIFO = 0x1
+- DT_LNK = 0xa
+- DT_REG = 0x8
+- DT_SOCK = 0xc
+- DT_UNKNOWN = 0x0
+- DT_WHT = 0xe
+- ECHO = 0x8
+ ECHOCTL = 0x200
+ ECHOE = 0x10
+ ECHOK = 0x20
+ ECHOKE = 0x800
+ ECHONL = 0x40
+ ECHOPRT = 0x400
++ EFD_CLOEXEC = 0x400000
++ EFD_NONBLOCK = 0x4000
+ EMT_TAGOVF = 0x1
+- ENCODING_DEFAULT = 0x0
+- ENCODING_FM_MARK = 0x3
+- ENCODING_FM_SPACE = 0x4
+- ENCODING_MANCHESTER = 0x5
+- ENCODING_NRZ = 0x1
+- ENCODING_NRZI = 0x2
+- EPOLLERR = 0x8
+- EPOLLET = 0x80000000
+- EPOLLEXCLUSIVE = 0x10000000
+- EPOLLHUP = 0x10
+- EPOLLIN = 0x1
+- EPOLLMSG = 0x400
+- EPOLLONESHOT = 0x40000000
+- EPOLLOUT = 0x4
+- EPOLLPRI = 0x2
+- EPOLLRDBAND = 0x80
+- EPOLLRDHUP = 0x2000
+- EPOLLRDNORM = 0x40
+- EPOLLWAKEUP = 0x20000000
+- EPOLLWRBAND = 0x200
+- EPOLLWRNORM = 0x100
+ EPOLL_CLOEXEC = 0x400000
+- EPOLL_CTL_ADD = 0x1
+- EPOLL_CTL_DEL = 0x2
+- EPOLL_CTL_MOD = 0x3
+- ETH_P_1588 = 0x88f7
+- ETH_P_8021AD = 0x88a8
+- ETH_P_8021AH = 0x88e7
+- ETH_P_8021Q = 0x8100
+- ETH_P_80221 = 0x8917
+- ETH_P_802_2 = 0x4
+- ETH_P_802_3 = 0x1
+- ETH_P_802_3_MIN = 0x600
+- ETH_P_802_EX1 = 0x88b5
+- ETH_P_AARP = 0x80f3
+- ETH_P_AF_IUCV = 0xfbfb
+- ETH_P_ALL = 0x3
+- ETH_P_AOE = 0x88a2
+- ETH_P_ARCNET = 0x1a
+- ETH_P_ARP = 0x806
+- ETH_P_ATALK = 0x809b
+- ETH_P_ATMFATE = 0x8884
+- ETH_P_ATMMPOA = 0x884c
+- ETH_P_AX25 = 0x2
+- ETH_P_BATMAN = 0x4305
+- ETH_P_BPQ = 0x8ff
+- ETH_P_CAIF = 0xf7
+- ETH_P_CAN = 0xc
+- ETH_P_CANFD = 0xd
+- ETH_P_CONTROL = 0x16
+- ETH_P_CUST = 0x6006
+- ETH_P_DDCMP = 0x6
+- ETH_P_DEC = 0x6000
+- ETH_P_DIAG = 0x6005
+- ETH_P_DNA_DL = 0x6001
+- ETH_P_DNA_RC = 0x6002
+- ETH_P_DNA_RT = 0x6003
+- ETH_P_DSA = 0x1b
+- ETH_P_ECONET = 0x18
+- ETH_P_EDSA = 0xdada
+- ETH_P_FCOE = 0x8906
+- ETH_P_FIP = 0x8914
+- ETH_P_HDLC = 0x19
+- ETH_P_HSR = 0x892f
+- ETH_P_IEEE802154 = 0xf6
+- ETH_P_IEEEPUP = 0xa00
+- ETH_P_IEEEPUPAT = 0xa01
+- ETH_P_IP = 0x800
+- ETH_P_IPV6 = 0x86dd
+- ETH_P_IPX = 0x8137
+- ETH_P_IRDA = 0x17
+- ETH_P_LAT = 0x6004
+- ETH_P_LINK_CTL = 0x886c
+- ETH_P_LOCALTALK = 0x9
+- ETH_P_LOOP = 0x60
+- ETH_P_LOOPBACK = 0x9000
+- ETH_P_MACSEC = 0x88e5
+- ETH_P_MOBITEX = 0x15
+- ETH_P_MPLS_MC = 0x8848
+- ETH_P_MPLS_UC = 0x8847
+- ETH_P_MVRP = 0x88f5
+- ETH_P_PAE = 0x888e
+- ETH_P_PAUSE = 0x8808
+- ETH_P_PHONET = 0xf5
+- ETH_P_PPPTALK = 0x10
+- ETH_P_PPP_DISC = 0x8863
+- ETH_P_PPP_MP = 0x8
+- ETH_P_PPP_SES = 0x8864
+- ETH_P_PRP = 0x88fb
+- ETH_P_PUP = 0x200
+- ETH_P_PUPAT = 0x201
+- ETH_P_QINQ1 = 0x9100
+- ETH_P_QINQ2 = 0x9200
+- ETH_P_QINQ3 = 0x9300
+- ETH_P_RARP = 0x8035
+- ETH_P_SCA = 0x6007
+- ETH_P_SLOW = 0x8809
+- ETH_P_SNAP = 0x5
+- ETH_P_TDLS = 0x890d
+- ETH_P_TEB = 0x6558
+- ETH_P_TIPC = 0x88ca
+- ETH_P_TRAILER = 0x1c
+- ETH_P_TR_802_2 = 0x11
+- ETH_P_TSN = 0x22f0
+- ETH_P_WAN_PPP = 0x7
+- ETH_P_WCCP = 0x883e
+- ETH_P_X25 = 0x805
+- ETH_P_XDSA = 0xf8
+- EXTA = 0xe
+- EXTB = 0xf
+ EXTPROC = 0x10000
+- FALLOC_FL_COLLAPSE_RANGE = 0x8
+- FALLOC_FL_INSERT_RANGE = 0x20
+- FALLOC_FL_KEEP_SIZE = 0x1
+- FALLOC_FL_NO_HIDE_STALE = 0x4
+- FALLOC_FL_PUNCH_HOLE = 0x2
+- FALLOC_FL_ZERO_RANGE = 0x10
+- FD_CLOEXEC = 0x1
+- FD_SETSIZE = 0x400
+- FF0 = 0x0
+ FF1 = 0x8000
+ FFDLY = 0x8000
+- FLUSHO = 0x2000
+- F_DUPFD = 0x0
+- F_DUPFD_CLOEXEC = 0x406
+- F_EXLCK = 0x4
+- F_GETFD = 0x1
+- F_GETFL = 0x3
+- F_GETLEASE = 0x401
++ FLUSHO = 0x1000
++ FS_IOC_ENABLE_VERITY = 0x80806685
++ FS_IOC_GETFLAGS = 0x40086601
++ FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615
++ FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614
++ FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613
+ F_GETLK = 0x7
+ F_GETLK64 = 0x7
+ F_GETOWN = 0x5
+- F_GETOWN_EX = 0x10
+- F_GETPIPE_SZ = 0x408
+- F_GETSIG = 0xb
+- F_LOCK = 0x1
+- F_NOTIFY = 0x402
+- F_OFD_GETLK = 0x24
+- F_OFD_SETLK = 0x25
+- F_OFD_SETLKW = 0x26
+- F_OK = 0x0
+ F_RDLCK = 0x1
+- F_SETFD = 0x2
+- F_SETFL = 0x4
+- F_SETLEASE = 0x400
+ F_SETLK = 0x8
+ F_SETLK64 = 0x8
+ F_SETLKW = 0x9
+ F_SETLKW64 = 0x9
+ F_SETOWN = 0x6
+- F_SETOWN_EX = 0xf
+- F_SETPIPE_SZ = 0x407
+- F_SETSIG = 0xa
+- F_SHLCK = 0x8
+- F_TEST = 0x3
+- F_TLOCK = 0x2
+- F_ULOCK = 0x0
+ F_UNLCK = 0x3
+ F_WRLCK = 0x2
+- GRND_NONBLOCK = 0x1
+- GRND_RANDOM = 0x2
+ HUPCL = 0x400
+- IBSHIFT = 0x10
+ ICANON = 0x2
+- ICMPV6_FILTER = 0x1
+- ICRNL = 0x100
+ IEXTEN = 0x8000
+- IFA_F_DADFAILED = 0x8
+- IFA_F_DEPRECATED = 0x20
+- IFA_F_HOMEADDRESS = 0x10
+- IFA_F_MANAGETEMPADDR = 0x100
+- IFA_F_MCAUTOJOIN = 0x400
+- IFA_F_NODAD = 0x2
+- IFA_F_NOPREFIXROUTE = 0x200
+- IFA_F_OPTIMISTIC = 0x4
+- IFA_F_PERMANENT = 0x80
+- IFA_F_SECONDARY = 0x1
+- IFA_F_STABLE_PRIVACY = 0x800
+- IFA_F_TEMPORARY = 0x1
+- IFA_F_TENTATIVE = 0x40
+- IFA_MAX = 0x8
+- IFF_ALLMULTI = 0x200
+- IFF_ATTACH_QUEUE = 0x200
+- IFF_AUTOMEDIA = 0x4000
+- IFF_BROADCAST = 0x2
+- IFF_DEBUG = 0x4
+- IFF_DETACH_QUEUE = 0x400
+- IFF_DORMANT = 0x20000
+- IFF_DYNAMIC = 0x8000
+- IFF_ECHO = 0x40000
+- IFF_LOOPBACK = 0x8
+- IFF_LOWER_UP = 0x10000
+- IFF_MASTER = 0x400
+- IFF_MULTICAST = 0x1000
+- IFF_MULTI_QUEUE = 0x100
+- IFF_NOARP = 0x80
+- IFF_NOFILTER = 0x1000
+- IFF_NOTRAILERS = 0x20
+- IFF_NO_PI = 0x1000
+- IFF_ONE_QUEUE = 0x2000
+- IFF_PERSIST = 0x800
+- IFF_POINTOPOINT = 0x10
+- IFF_PORTSEL = 0x2000
+- IFF_PROMISC = 0x100
+- IFF_RUNNING = 0x40
+- IFF_SLAVE = 0x800
+- IFF_TAP = 0x2
+- IFF_TUN = 0x1
+- IFF_TUN_EXCL = 0x8000
+- IFF_UP = 0x1
+- IFF_VNET_HDR = 0x4000
+- IFF_VOLATILE = 0x70c5a
+- IFNAMSIZ = 0x10
+- IGNBRK = 0x1
+- IGNCR = 0x80
+- IGNPAR = 0x4
+- IMAXBEL = 0x2000
+- INLCR = 0x40
+- INPCK = 0x10
+- IN_ACCESS = 0x1
+- IN_ALL_EVENTS = 0xfff
+- IN_ATTRIB = 0x4
+- IN_CLASSA_HOST = 0xffffff
+- IN_CLASSA_MAX = 0x80
+- IN_CLASSA_NET = 0xff000000
+- IN_CLASSA_NSHIFT = 0x18
+- IN_CLASSB_HOST = 0xffff
+- IN_CLASSB_MAX = 0x10000
+- IN_CLASSB_NET = 0xffff0000
+- IN_CLASSB_NSHIFT = 0x10
+- IN_CLASSC_HOST = 0xff
+- IN_CLASSC_NET = 0xffffff00
+- IN_CLASSC_NSHIFT = 0x8
+ IN_CLOEXEC = 0x400000
+- IN_CLOSE = 0x18
+- IN_CLOSE_NOWRITE = 0x10
+- IN_CLOSE_WRITE = 0x8
+- IN_CREATE = 0x100
+- IN_DELETE = 0x200
+- IN_DELETE_SELF = 0x400
+- IN_DONT_FOLLOW = 0x2000000
+- IN_EXCL_UNLINK = 0x4000000
+- IN_IGNORED = 0x8000
+- IN_ISDIR = 0x40000000
+- IN_LOOPBACKNET = 0x7f
+- IN_MASK_ADD = 0x20000000
+- IN_MODIFY = 0x2
+- IN_MOVE = 0xc0
+- IN_MOVED_FROM = 0x40
+- IN_MOVED_TO = 0x80
+- IN_MOVE_SELF = 0x800
+ IN_NONBLOCK = 0x4000
+- IN_ONESHOT = 0x80000000
+- IN_ONLYDIR = 0x1000000
+- IN_OPEN = 0x20
+- IN_Q_OVERFLOW = 0x4000
+- IN_UNMOUNT = 0x2000
+- IPPROTO_AH = 0x33
+- IPPROTO_BEETPH = 0x5e
+- IPPROTO_COMP = 0x6c
+- IPPROTO_DCCP = 0x21
+- IPPROTO_DSTOPTS = 0x3c
+- IPPROTO_EGP = 0x8
+- IPPROTO_ENCAP = 0x62
+- IPPROTO_ESP = 0x32
+- IPPROTO_FRAGMENT = 0x2c
+- IPPROTO_GRE = 0x2f
+- IPPROTO_HOPOPTS = 0x0
+- IPPROTO_ICMP = 0x1
+- IPPROTO_ICMPV6 = 0x3a
+- IPPROTO_IDP = 0x16
+- IPPROTO_IGMP = 0x2
+- IPPROTO_IP = 0x0
+- IPPROTO_IPIP = 0x4
+- IPPROTO_IPV6 = 0x29
+- IPPROTO_MH = 0x87
+- IPPROTO_MPLS = 0x89
+- IPPROTO_MTP = 0x5c
+- IPPROTO_NONE = 0x3b
+- IPPROTO_PIM = 0x67
+- IPPROTO_PUP = 0xc
+- IPPROTO_RAW = 0xff
+- IPPROTO_ROUTING = 0x2b
+- IPPROTO_RSVP = 0x2e
+- IPPROTO_SCTP = 0x84
+- IPPROTO_TCP = 0x6
+- IPPROTO_TP = 0x1d
+- IPPROTO_UDP = 0x11
+- IPPROTO_UDPLITE = 0x88
+- IPV6_2292DSTOPTS = 0x4
+- IPV6_2292HOPLIMIT = 0x8
+- IPV6_2292HOPOPTS = 0x3
+- IPV6_2292PKTINFO = 0x2
+- IPV6_2292PKTOPTIONS = 0x6
+- IPV6_2292RTHDR = 0x5
+- IPV6_ADDRFORM = 0x1
+- IPV6_ADD_MEMBERSHIP = 0x14
+- IPV6_AUTHHDR = 0xa
+- IPV6_CHECKSUM = 0x7
+- IPV6_DONTFRAG = 0x3e
+- IPV6_DROP_MEMBERSHIP = 0x15
+- IPV6_DSTOPTS = 0x3b
+- IPV6_HDRINCL = 0x24
+- IPV6_HOPLIMIT = 0x34
+- IPV6_HOPOPTS = 0x36
+- IPV6_IPSEC_POLICY = 0x22
+- IPV6_JOIN_ANYCAST = 0x1b
+- IPV6_JOIN_GROUP = 0x14
+- IPV6_LEAVE_ANYCAST = 0x1c
+- IPV6_LEAVE_GROUP = 0x15
+- IPV6_MTU = 0x18
+- IPV6_MTU_DISCOVER = 0x17
+- IPV6_MULTICAST_HOPS = 0x12
+- IPV6_MULTICAST_IF = 0x11
+- IPV6_MULTICAST_LOOP = 0x13
+- IPV6_NEXTHOP = 0x9
+- IPV6_PATHMTU = 0x3d
+- IPV6_PKTINFO = 0x32
+- IPV6_PMTUDISC_DO = 0x2
+- IPV6_PMTUDISC_DONT = 0x0
+- IPV6_PMTUDISC_INTERFACE = 0x4
+- IPV6_PMTUDISC_OMIT = 0x5
+- IPV6_PMTUDISC_PROBE = 0x3
+- IPV6_PMTUDISC_WANT = 0x1
+- IPV6_RECVDSTOPTS = 0x3a
+- IPV6_RECVERR = 0x19
+- IPV6_RECVHOPLIMIT = 0x33
+- IPV6_RECVHOPOPTS = 0x35
+- IPV6_RECVPATHMTU = 0x3c
+- IPV6_RECVPKTINFO = 0x31
+- IPV6_RECVRTHDR = 0x38
+- IPV6_RECVTCLASS = 0x42
+- IPV6_ROUTER_ALERT = 0x16
+- IPV6_RTHDR = 0x39
+- IPV6_RTHDRDSTOPTS = 0x37
+- IPV6_RTHDR_LOOSE = 0x0
+- IPV6_RTHDR_STRICT = 0x1
+- IPV6_RTHDR_TYPE_0 = 0x0
+- IPV6_RXDSTOPTS = 0x3b
+- IPV6_RXHOPOPTS = 0x36
+- IPV6_TCLASS = 0x43
+- IPV6_UNICAST_HOPS = 0x10
+- IPV6_V6ONLY = 0x1a
+- IPV6_XFRM_POLICY = 0x23
+- IP_ADD_MEMBERSHIP = 0x23
+- IP_ADD_SOURCE_MEMBERSHIP = 0x27
+- IP_BIND_ADDRESS_NO_PORT = 0x18
+- IP_BLOCK_SOURCE = 0x26
+- IP_CHECKSUM = 0x17
+- IP_DEFAULT_MULTICAST_LOOP = 0x1
+- IP_DEFAULT_MULTICAST_TTL = 0x1
+- IP_DF = 0x4000
+- IP_DROP_MEMBERSHIP = 0x24
+- IP_DROP_SOURCE_MEMBERSHIP = 0x28
+- IP_FREEBIND = 0xf
+- IP_HDRINCL = 0x3
+- IP_IPSEC_POLICY = 0x10
+- IP_MAXPACKET = 0xffff
+- IP_MAX_MEMBERSHIPS = 0x14
+- IP_MF = 0x2000
+- IP_MINTTL = 0x15
+- IP_MSFILTER = 0x29
+- IP_MSS = 0x240
+- IP_MTU = 0xe
+- IP_MTU_DISCOVER = 0xa
+- IP_MULTICAST_ALL = 0x31
+- IP_MULTICAST_IF = 0x20
+- IP_MULTICAST_LOOP = 0x22
+- IP_MULTICAST_TTL = 0x21
+- IP_NODEFRAG = 0x16
+- IP_OFFMASK = 0x1fff
+- IP_OPTIONS = 0x4
+- IP_ORIGDSTADDR = 0x14
+- IP_PASSSEC = 0x12
+- IP_PKTINFO = 0x8
+- IP_PKTOPTIONS = 0x9
+- IP_PMTUDISC = 0xa
+- IP_PMTUDISC_DO = 0x2
+- IP_PMTUDISC_DONT = 0x0
+- IP_PMTUDISC_INTERFACE = 0x4
+- IP_PMTUDISC_OMIT = 0x5
+- IP_PMTUDISC_PROBE = 0x3
+- IP_PMTUDISC_WANT = 0x1
+- IP_RECVERR = 0xb
+- IP_RECVOPTS = 0x6
+- IP_RECVORIGDSTADDR = 0x14
+- IP_RECVRETOPTS = 0x7
+- IP_RECVTOS = 0xd
+- IP_RECVTTL = 0xc
+- IP_RETOPTS = 0x7
+- IP_RF = 0x8000
+- IP_ROUTER_ALERT = 0x5
+- IP_TOS = 0x1
+- IP_TRANSPARENT = 0x13
+- IP_TTL = 0x2
+- IP_UNBLOCK_SOURCE = 0x25
+- IP_UNICAST_IF = 0x32
+- IP_XFRM_POLICY = 0x11
++ IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9
+ ISIG = 0x1
+- ISTRIP = 0x20
+ IUCLC = 0x200
+- IUTF8 = 0x4000
+- IXANY = 0x800
+ IXOFF = 0x1000
+ IXON = 0x400
+- LINUX_REBOOT_CMD_CAD_OFF = 0x0
+- LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
+- LINUX_REBOOT_CMD_HALT = 0xcdef0123
+- LINUX_REBOOT_CMD_KEXEC = 0x45584543
+- LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
+- LINUX_REBOOT_CMD_RESTART = 0x1234567
+- LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
+- LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
+- LINUX_REBOOT_MAGIC1 = 0xfee1dead
+- LINUX_REBOOT_MAGIC2 = 0x28121969
+- LOCK_EX = 0x2
+- LOCK_NB = 0x4
+- LOCK_SH = 0x1
+- LOCK_UN = 0x8
+- MADV_DODUMP = 0x11
+- MADV_DOFORK = 0xb
+- MADV_DONTDUMP = 0x10
+- MADV_DONTFORK = 0xa
+- MADV_DONTNEED = 0x4
+- MADV_FREE = 0x8
+- MADV_HUGEPAGE = 0xe
+- MADV_HWPOISON = 0x64
+- MADV_MERGEABLE = 0xc
+- MADV_NOHUGEPAGE = 0xf
+- MADV_NORMAL = 0x0
+- MADV_RANDOM = 0x1
+- MADV_REMOVE = 0x9
+- MADV_SEQUENTIAL = 0x2
+- MADV_UNMERGEABLE = 0xd
+- MADV_WILLNEED = 0x3
+ MAP_ANON = 0x20
+ MAP_ANONYMOUS = 0x20
+ MAP_DENYWRITE = 0x800
+ MAP_EXECUTABLE = 0x1000
+- MAP_FILE = 0x0
+- MAP_FIXED = 0x10
+ MAP_GROWSDOWN = 0x200
+ MAP_HUGETLB = 0x40000
+- MAP_HUGE_MASK = 0x3f
+- MAP_HUGE_SHIFT = 0x1a
+ MAP_LOCKED = 0x100
+ MAP_NONBLOCK = 0x10000
+ MAP_NORESERVE = 0x40
+ MAP_POPULATE = 0x8000
+- MAP_PRIVATE = 0x2
+ MAP_RENAME = 0x20
+- MAP_SHARED = 0x1
+ MAP_STACK = 0x20000
+- MAP_TYPE = 0xf
++ MAP_SYNC = 0x80000
+ MCL_CURRENT = 0x2000
+ MCL_FUTURE = 0x4000
+ MCL_ONFAULT = 0x8000
+- MNT_DETACH = 0x2
+- MNT_EXPIRE = 0x4
+- MNT_FORCE = 0x1
+- MSG_BATCH = 0x40000
+- MSG_CMSG_CLOEXEC = 0x40000000
+- MSG_CONFIRM = 0x800
+- MSG_CTRUNC = 0x8
+- MSG_DONTROUTE = 0x4
+- MSG_DONTWAIT = 0x40
+- MSG_EOR = 0x80
+- MSG_ERRQUEUE = 0x2000
+- MSG_FASTOPEN = 0x20000000
+- MSG_FIN = 0x200
+- MSG_MORE = 0x8000
+- MSG_NOSIGNAL = 0x4000
+- MSG_OOB = 0x1
+- MSG_PEEK = 0x2
+- MSG_PROXY = 0x10
+- MSG_RST = 0x1000
+- MSG_SYN = 0x400
+- MSG_TRUNC = 0x20
+- MSG_TRYHARD = 0x4
+- MSG_WAITALL = 0x100
+- MSG_WAITFORONE = 0x10000
+- MS_ACTIVE = 0x40000000
+- MS_ASYNC = 0x1
+- MS_BIND = 0x1000
+- MS_DIRSYNC = 0x80
+- MS_INVALIDATE = 0x2
+- MS_I_VERSION = 0x800000
+- MS_KERNMOUNT = 0x400000
+- MS_LAZYTIME = 0x2000000
+- MS_MANDLOCK = 0x40
+- MS_MGC_MSK = 0xffff0000
+- MS_MGC_VAL = 0xc0ed0000
+- MS_MOVE = 0x2000
+- MS_NOATIME = 0x400
+- MS_NODEV = 0x4
+- MS_NODIRATIME = 0x800
+- MS_NOEXEC = 0x8
+- MS_NOSUID = 0x2
+- MS_NOUSER = -0x80000000
+- MS_POSIXACL = 0x10000
+- MS_PRIVATE = 0x40000
+- MS_RDONLY = 0x1
+- MS_REC = 0x4000
+- MS_RELATIME = 0x200000
+- MS_REMOUNT = 0x20
+- MS_RMT_MASK = 0x2800051
+- MS_SHARED = 0x100000
+- MS_SILENT = 0x8000
+- MS_SLAVE = 0x80000
+- MS_STRICTATIME = 0x1000000
+- MS_SYNC = 0x4
+- MS_SYNCHRONOUS = 0x10
+- MS_UNBINDABLE = 0x20000
+- NAME_MAX = 0xff
+- NETLINK_ADD_MEMBERSHIP = 0x1
+- NETLINK_AUDIT = 0x9
+- NETLINK_BROADCAST_ERROR = 0x4
+- NETLINK_CAP_ACK = 0xa
+- NETLINK_CONNECTOR = 0xb
+- NETLINK_CRYPTO = 0x15
+- NETLINK_DNRTMSG = 0xe
+- NETLINK_DROP_MEMBERSHIP = 0x2
+- NETLINK_ECRYPTFS = 0x13
+- NETLINK_FIB_LOOKUP = 0xa
+- NETLINK_FIREWALL = 0x3
+- NETLINK_GENERIC = 0x10
+- NETLINK_INET_DIAG = 0x4
+- NETLINK_IP6_FW = 0xd
+- NETLINK_ISCSI = 0x8
+- NETLINK_KOBJECT_UEVENT = 0xf
+- NETLINK_LISTEN_ALL_NSID = 0x8
+- NETLINK_LIST_MEMBERSHIPS = 0x9
+- NETLINK_NETFILTER = 0xc
+- NETLINK_NFLOG = 0x5
+- NETLINK_NO_ENOBUFS = 0x5
+- NETLINK_PKTINFO = 0x3
+- NETLINK_RDMA = 0x14
+- NETLINK_ROUTE = 0x0
+- NETLINK_RX_RING = 0x6
+- NETLINK_SCSITRANSPORT = 0x12
+- NETLINK_SELINUX = 0x7
+- NETLINK_SOCK_DIAG = 0x4
+- NETLINK_TX_RING = 0x7
+- NETLINK_UNUSED = 0x1
+- NETLINK_USERSOCK = 0x2
+- NETLINK_XFRM = 0x6
+- NL0 = 0x0
+- NL1 = 0x100
+- NLA_ALIGNTO = 0x4
+- NLA_F_NESTED = 0x8000
+- NLA_F_NET_BYTEORDER = 0x4000
+- NLA_HDRLEN = 0x4
++ NFDBITS = 0x40
+ NLDLY = 0x100
+- NLMSG_ALIGNTO = 0x4
+- NLMSG_DONE = 0x3
+- NLMSG_ERROR = 0x2
+- NLMSG_HDRLEN = 0x10
+- NLMSG_MIN_TYPE = 0x10
+- NLMSG_NOOP = 0x1
+- NLMSG_OVERRUN = 0x4
+- NLM_F_ACK = 0x4
+- NLM_F_APPEND = 0x800
+- NLM_F_ATOMIC = 0x400
+- NLM_F_CREATE = 0x400
+- NLM_F_DUMP = 0x300
+- NLM_F_DUMP_FILTERED = 0x20
+- NLM_F_DUMP_INTR = 0x10
+- NLM_F_ECHO = 0x8
+- NLM_F_EXCL = 0x200
+- NLM_F_MATCH = 0x200
+- NLM_F_MULTI = 0x2
+- NLM_F_REPLACE = 0x100
+- NLM_F_REQUEST = 0x1
+- NLM_F_ROOT = 0x100
+ NOFLSH = 0x80
+- OCRNL = 0x8
+- OFDEL = 0x80
+- OFILL = 0x40
++ NS_GET_NSTYPE = 0x2000b703
++ NS_GET_OWNER_UID = 0x2000b704
++ NS_GET_PARENT = 0x2000b702
++ NS_GET_USERNS = 0x2000b701
+ OLCUC = 0x2
+ ONLCR = 0x4
+- ONLRET = 0x20
+- ONOCR = 0x10
+- OPOST = 0x1
+- O_ACCMODE = 0x3
+ O_APPEND = 0x8
+ O_ASYNC = 0x40
+ O_CLOEXEC = 0x400000
+@@ -926,231 +143,67 @@ const (
+ O_NOFOLLOW = 0x20000
+ O_NONBLOCK = 0x4000
+ O_PATH = 0x1000000
+- O_RDONLY = 0x0
+- O_RDWR = 0x2
+ O_RSYNC = 0x802000
+ O_SYNC = 0x802000
+ O_TMPFILE = 0x2010000
+ O_TRUNC = 0x400
+- O_WRONLY = 0x1
+- PACKET_ADD_MEMBERSHIP = 0x1
+- PACKET_AUXDATA = 0x8
+- PACKET_BROADCAST = 0x1
+- PACKET_COPY_THRESH = 0x7
+- PACKET_DROP_MEMBERSHIP = 0x2
+- PACKET_FANOUT = 0x12
+- PACKET_FANOUT_CBPF = 0x6
+- PACKET_FANOUT_CPU = 0x2
+- PACKET_FANOUT_DATA = 0x16
+- PACKET_FANOUT_EBPF = 0x7
+- PACKET_FANOUT_FLAG_DEFRAG = 0x8000
+- PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
+- PACKET_FANOUT_HASH = 0x0
+- PACKET_FANOUT_LB = 0x1
+- PACKET_FANOUT_QM = 0x5
+- PACKET_FANOUT_RND = 0x4
+- PACKET_FANOUT_ROLLOVER = 0x3
+- PACKET_FASTROUTE = 0x6
+- PACKET_HDRLEN = 0xb
+- PACKET_HOST = 0x0
+- PACKET_KERNEL = 0x7
+- PACKET_LOOPBACK = 0x5
+- PACKET_LOSS = 0xe
+- PACKET_MR_ALLMULTI = 0x2
+- PACKET_MR_MULTICAST = 0x0
+- PACKET_MR_PROMISC = 0x1
+- PACKET_MR_UNICAST = 0x3
+- PACKET_MULTICAST = 0x2
+- PACKET_ORIGDEV = 0x9
+- PACKET_OTHERHOST = 0x3
+- PACKET_OUTGOING = 0x4
+- PACKET_QDISC_BYPASS = 0x14
+- PACKET_RECV_OUTPUT = 0x3
+- PACKET_RESERVE = 0xc
+- PACKET_ROLLOVER_STATS = 0x15
+- PACKET_RX_RING = 0x5
+- PACKET_STATISTICS = 0x6
+- PACKET_TIMESTAMP = 0x11
+- PACKET_TX_HAS_OFF = 0x13
+- PACKET_TX_RING = 0xd
+- PACKET_TX_TIMESTAMP = 0x10
+- PACKET_USER = 0x6
+- PACKET_VERSION = 0xa
+- PACKET_VNET_HDR = 0xf
+ PARENB = 0x100
+- PARITY_CRC16_PR0 = 0x2
+- PARITY_CRC16_PR0_CCITT = 0x4
+- PARITY_CRC16_PR1 = 0x3
+- PARITY_CRC16_PR1_CCITT = 0x5
+- PARITY_CRC32_PR0_CCITT = 0x6
+- PARITY_CRC32_PR1_CCITT = 0x7
+- PARITY_DEFAULT = 0x0
+- PARITY_NONE = 0x1
+- PARMRK = 0x8
+ PARODD = 0x200
+ PENDIN = 0x4000
+- PRIO_PGRP = 0x1
+- PRIO_PROCESS = 0x0
+- PRIO_USER = 0x2
+- PROT_EXEC = 0x4
+- PROT_GROWSDOWN = 0x1000000
+- PROT_GROWSUP = 0x2000000
+- PROT_NONE = 0x0
+- PROT_READ = 0x1
+- PROT_WRITE = 0x2
+- PR_CAPBSET_DROP = 0x18
+- PR_CAPBSET_READ = 0x17
+- PR_CAP_AMBIENT = 0x2f
+- PR_CAP_AMBIENT_CLEAR_ALL = 0x4
+- PR_CAP_AMBIENT_IS_SET = 0x1
+- PR_CAP_AMBIENT_LOWER = 0x3
+- PR_CAP_AMBIENT_RAISE = 0x2
+- PR_ENDIAN_BIG = 0x0
+- PR_ENDIAN_LITTLE = 0x1
+- PR_ENDIAN_PPC_LITTLE = 0x2
+- PR_FPEMU_NOPRINT = 0x1
+- PR_FPEMU_SIGFPE = 0x2
+- PR_FP_EXC_ASYNC = 0x2
+- PR_FP_EXC_DISABLED = 0x0
+- PR_FP_EXC_DIV = 0x10000
+- PR_FP_EXC_INV = 0x100000
+- PR_FP_EXC_NONRECOV = 0x1
+- PR_FP_EXC_OVF = 0x20000
+- PR_FP_EXC_PRECISE = 0x3
+- PR_FP_EXC_RES = 0x80000
+- PR_FP_EXC_SW_ENABLE = 0x80
+- PR_FP_EXC_UND = 0x40000
+- PR_FP_MODE_FR = 0x1
+- PR_FP_MODE_FRE = 0x2
+- PR_GET_CHILD_SUBREAPER = 0x25
+- PR_GET_DUMPABLE = 0x3
+- PR_GET_ENDIAN = 0x13
+- PR_GET_FPEMU = 0x9
+- PR_GET_FPEXC = 0xb
+- PR_GET_FP_MODE = 0x2e
+- PR_GET_KEEPCAPS = 0x7
+- PR_GET_NAME = 0x10
+- PR_GET_NO_NEW_PRIVS = 0x27
+- PR_GET_PDEATHSIG = 0x2
+- PR_GET_SECCOMP = 0x15
+- PR_GET_SECUREBITS = 0x1b
+- PR_GET_THP_DISABLE = 0x2a
+- PR_GET_TID_ADDRESS = 0x28
+- PR_GET_TIMERSLACK = 0x1e
+- PR_GET_TIMING = 0xd
+- PR_GET_TSC = 0x19
+- PR_GET_UNALIGN = 0x5
+- PR_MCE_KILL = 0x21
+- PR_MCE_KILL_CLEAR = 0x0
+- PR_MCE_KILL_DEFAULT = 0x2
+- PR_MCE_KILL_EARLY = 0x1
+- PR_MCE_KILL_GET = 0x22
+- PR_MCE_KILL_LATE = 0x0
+- PR_MCE_KILL_SET = 0x1
+- PR_MPX_DISABLE_MANAGEMENT = 0x2c
+- PR_MPX_ENABLE_MANAGEMENT = 0x2b
+- PR_SET_CHILD_SUBREAPER = 0x24
+- PR_SET_DUMPABLE = 0x4
+- PR_SET_ENDIAN = 0x14
+- PR_SET_FPEMU = 0xa
+- PR_SET_FPEXC = 0xc
+- PR_SET_FP_MODE = 0x2d
+- PR_SET_KEEPCAPS = 0x8
+- PR_SET_MM = 0x23
+- PR_SET_MM_ARG_END = 0x9
+- PR_SET_MM_ARG_START = 0x8
+- PR_SET_MM_AUXV = 0xc
+- PR_SET_MM_BRK = 0x7
+- PR_SET_MM_END_CODE = 0x2
+- PR_SET_MM_END_DATA = 0x4
+- PR_SET_MM_ENV_END = 0xb
+- PR_SET_MM_ENV_START = 0xa
+- PR_SET_MM_EXE_FILE = 0xd
+- PR_SET_MM_MAP = 0xe
+- PR_SET_MM_MAP_SIZE = 0xf
+- PR_SET_MM_START_BRK = 0x6
+- PR_SET_MM_START_CODE = 0x1
+- PR_SET_MM_START_DATA = 0x3
+- PR_SET_MM_START_STACK = 0x5
+- PR_SET_NAME = 0xf
+- PR_SET_NO_NEW_PRIVS = 0x26
+- PR_SET_PDEATHSIG = 0x1
+- PR_SET_PTRACER = 0x59616d61
+- PR_SET_PTRACER_ANY = -0x1
+- PR_SET_SECCOMP = 0x16
+- PR_SET_SECUREBITS = 0x1c
+- PR_SET_THP_DISABLE = 0x29
+- PR_SET_TIMERSLACK = 0x1d
+- PR_SET_TIMING = 0xe
+- PR_SET_TSC = 0x1a
+- PR_SET_UNALIGN = 0x6
+- PR_TASK_PERF_EVENTS_DISABLE = 0x1f
+- PR_TASK_PERF_EVENTS_ENABLE = 0x20
+- PR_TIMING_STATISTICAL = 0x0
+- PR_TIMING_TIMESTAMP = 0x1
+- PR_TSC_ENABLE = 0x1
+- PR_TSC_SIGSEGV = 0x2
+- PR_UNALIGN_NOPRINT = 0x1
+- PR_UNALIGN_SIGBUS = 0x2
+- PTRACE_ATTACH = 0x10
+- PTRACE_CONT = 0x7
+- PTRACE_DETACH = 0x11
+- PTRACE_EVENT_CLONE = 0x3
+- PTRACE_EVENT_EXEC = 0x4
+- PTRACE_EVENT_EXIT = 0x6
+- PTRACE_EVENT_FORK = 0x1
+- PTRACE_EVENT_SECCOMP = 0x7
+- PTRACE_EVENT_STOP = 0x80
+- PTRACE_EVENT_VFORK = 0x2
+- PTRACE_EVENT_VFORK_DONE = 0x5
+- PTRACE_GETEVENTMSG = 0x4201
++ PERF_EVENT_IOC_DISABLE = 0x20002401
++ PERF_EVENT_IOC_ENABLE = 0x20002400
++ PERF_EVENT_IOC_ID = 0x40082407
++ PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b
++ PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409
++ PERF_EVENT_IOC_PERIOD = 0x80082404
++ PERF_EVENT_IOC_QUERY_BPF = 0xc008240a
++ PERF_EVENT_IOC_REFRESH = 0x20002402
++ PERF_EVENT_IOC_RESET = 0x20002403
++ PERF_EVENT_IOC_SET_BPF = 0x80042408
++ PERF_EVENT_IOC_SET_FILTER = 0x80082406
++ PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
++ PPPIOCATTACH = 0x8004743d
++ PPPIOCATTCHAN = 0x80047438
++ PPPIOCCONNECT = 0x8004743a
++ PPPIOCDETACH = 0x8004743c
++ PPPIOCDISCONN = 0x20007439
++ PPPIOCGASYNCMAP = 0x40047458
++ PPPIOCGCHAN = 0x40047437
++ PPPIOCGDEBUG = 0x40047441
++ PPPIOCGFLAGS = 0x4004745a
++ PPPIOCGIDLE = 0x4010743f
++ PPPIOCGIDLE32 = 0x4008743f
++ PPPIOCGIDLE64 = 0x4010743f
++ PPPIOCGL2TPSTATS = 0x40487436
++ PPPIOCGMRU = 0x40047453
++ PPPIOCGRASYNCMAP = 0x40047455
++ PPPIOCGUNIT = 0x40047456
++ PPPIOCGXASYNCMAP = 0x40207450
++ PPPIOCSACTIVE = 0x80107446
++ PPPIOCSASYNCMAP = 0x80047457
++ PPPIOCSCOMPRESS = 0x8010744d
++ PPPIOCSDEBUG = 0x80047440
++ PPPIOCSFLAGS = 0x80047459
++ PPPIOCSMAXCID = 0x80047451
++ PPPIOCSMRRU = 0x8004743b
++ PPPIOCSMRU = 0x80047452
++ PPPIOCSNPMODE = 0x8008744b
++ PPPIOCSPASS = 0x80107447
++ PPPIOCSRASYNCMAP = 0x80047454
++ PPPIOCSXASYNCMAP = 0x8020744f
++ PPPIOCXFERUNIT = 0x2000744e
++ PR_SET_PTRACER_ANY = 0xffffffffffffffff
+ PTRACE_GETFPAREGS = 0x14
+ PTRACE_GETFPREGS = 0xe
+ PTRACE_GETFPREGS64 = 0x19
+- PTRACE_GETREGS = 0xc
+ PTRACE_GETREGS64 = 0x16
+- PTRACE_GETREGSET = 0x4204
+- PTRACE_GETSIGINFO = 0x4202
+- PTRACE_GETSIGMASK = 0x420a
+- PTRACE_INTERRUPT = 0x4207
+- PTRACE_KILL = 0x8
+- PTRACE_LISTEN = 0x4208
+- PTRACE_O_EXITKILL = 0x100000
+- PTRACE_O_MASK = 0x3000ff
+- PTRACE_O_SUSPEND_SECCOMP = 0x200000
+- PTRACE_O_TRACECLONE = 0x8
+- PTRACE_O_TRACEEXEC = 0x10
+- PTRACE_O_TRACEEXIT = 0x40
+- PTRACE_O_TRACEFORK = 0x2
+- PTRACE_O_TRACESECCOMP = 0x80
+- PTRACE_O_TRACESYSGOOD = 0x1
+- PTRACE_O_TRACEVFORK = 0x4
+- PTRACE_O_TRACEVFORKDONE = 0x20
+- PTRACE_PEEKDATA = 0x2
+- PTRACE_PEEKSIGINFO = 0x4209
+- PTRACE_PEEKSIGINFO_SHARED = 0x1
+- PTRACE_PEEKTEXT = 0x1
+- PTRACE_PEEKUSR = 0x3
+- PTRACE_POKEDATA = 0x5
+- PTRACE_POKETEXT = 0x4
+- PTRACE_POKEUSR = 0x6
+ PTRACE_READDATA = 0x10
+ PTRACE_READTEXT = 0x12
+- PTRACE_SECCOMP_GET_FILTER = 0x420c
+- PTRACE_SEIZE = 0x4206
+ PTRACE_SETFPAREGS = 0x15
+ PTRACE_SETFPREGS = 0xf
+ PTRACE_SETFPREGS64 = 0x1a
+- PTRACE_SETOPTIONS = 0x4200
+- PTRACE_SETREGS = 0xd
+ PTRACE_SETREGS64 = 0x17
+- PTRACE_SETREGSET = 0x4205
+- PTRACE_SETSIGINFO = 0x4203
+- PTRACE_SETSIGMASK = 0x420b
+- PTRACE_SINGLESTEP = 0x9
+ PTRACE_SPARC_DETACH = 0xb
+- PTRACE_SYSCALL = 0x18
+- PTRACE_TRACEME = 0x0
+ PTRACE_WRITEDATA = 0x11
+ PTRACE_WRITETEXT = 0x13
+ PT_FP = 0x48
+@@ -1202,329 +255,98 @@ const (
+ PT_WIM = 0x10
+ PT_Y = 0xc
+ RLIMIT_AS = 0x9
+- RLIMIT_CORE = 0x4
+- RLIMIT_CPU = 0x0
+- RLIMIT_DATA = 0x2
+- RLIMIT_FSIZE = 0x1
++ RLIMIT_MEMLOCK = 0x8
+ RLIMIT_NOFILE = 0x6
+- RLIMIT_STACK = 0x3
+- RLIM_INFINITY = -0x1
+- RTAX_ADVMSS = 0x8
+- RTAX_CC_ALGO = 0x10
+- RTAX_CWND = 0x7
+- RTAX_FEATURES = 0xc
+- RTAX_FEATURE_ALLFRAG = 0x8
+- RTAX_FEATURE_ECN = 0x1
+- RTAX_FEATURE_MASK = 0xf
+- RTAX_FEATURE_SACK = 0x2
+- RTAX_FEATURE_TIMESTAMP = 0x4
+- RTAX_HOPLIMIT = 0xa
+- RTAX_INITCWND = 0xb
+- RTAX_INITRWND = 0xe
+- RTAX_LOCK = 0x1
+- RTAX_MAX = 0x10
+- RTAX_MTU = 0x2
+- RTAX_QUICKACK = 0xf
+- RTAX_REORDERING = 0x9
+- RTAX_RTO_MIN = 0xd
+- RTAX_RTT = 0x4
+- RTAX_RTTVAR = 0x5
+- RTAX_SSTHRESH = 0x6
+- RTAX_UNSPEC = 0x0
+- RTAX_WINDOW = 0x3
+- RTA_ALIGNTO = 0x4
+- RTA_MAX = 0x18
+- RTCF_DIRECTSRC = 0x4000000
+- RTCF_DOREDIRECT = 0x1000000
+- RTCF_LOG = 0x2000000
+- RTCF_MASQ = 0x400000
+- RTCF_NAT = 0x800000
+- RTCF_VALVE = 0x200000
+- RTF_ADDRCLASSMASK = 0xf8000000
+- RTF_ADDRCONF = 0x40000
+- RTF_ALLONLINK = 0x20000
+- RTF_BROADCAST = 0x10000000
+- RTF_CACHE = 0x1000000
+- RTF_DEFAULT = 0x10000
+- RTF_DYNAMIC = 0x10
+- RTF_FLOW = 0x2000000
+- RTF_GATEWAY = 0x2
+- RTF_HOST = 0x4
+- RTF_INTERFACE = 0x40000000
+- RTF_IRTT = 0x100
+- RTF_LINKRT = 0x100000
+- RTF_LOCAL = 0x80000000
+- RTF_MODIFIED = 0x20
+- RTF_MSS = 0x40
+- RTF_MTU = 0x40
+- RTF_MULTICAST = 0x20000000
+- RTF_NAT = 0x8000000
+- RTF_NOFORWARD = 0x1000
+- RTF_NONEXTHOP = 0x200000
+- RTF_NOPMTUDISC = 0x4000
+- RTF_POLICY = 0x4000000
+- RTF_REINSTATE = 0x8
+- RTF_REJECT = 0x200
+- RTF_STATIC = 0x400
+- RTF_THROW = 0x2000
+- RTF_UP = 0x1
+- RTF_WINDOW = 0x80
+- RTF_XRESOLVE = 0x800
+- RTM_BASE = 0x10
+- RTM_DELACTION = 0x31
+- RTM_DELADDR = 0x15
+- RTM_DELADDRLABEL = 0x49
+- RTM_DELLINK = 0x11
+- RTM_DELMDB = 0x55
+- RTM_DELNEIGH = 0x1d
+- RTM_DELNSID = 0x59
+- RTM_DELQDISC = 0x25
+- RTM_DELROUTE = 0x19
+- RTM_DELRULE = 0x21
+- RTM_DELTCLASS = 0x29
+- RTM_DELTFILTER = 0x2d
+- RTM_F_CLONED = 0x200
+- RTM_F_EQUALIZE = 0x400
+- RTM_F_LOOKUP_TABLE = 0x1000
+- RTM_F_NOTIFY = 0x100
+- RTM_F_PREFIX = 0x800
+- RTM_GETACTION = 0x32
+- RTM_GETADDR = 0x16
+- RTM_GETADDRLABEL = 0x4a
+- RTM_GETANYCAST = 0x3e
+- RTM_GETDCB = 0x4e
+- RTM_GETLINK = 0x12
+- RTM_GETMDB = 0x56
+- RTM_GETMULTICAST = 0x3a
+- RTM_GETNEIGH = 0x1e
+- RTM_GETNEIGHTBL = 0x42
+- RTM_GETNETCONF = 0x52
+- RTM_GETNSID = 0x5a
+- RTM_GETQDISC = 0x26
+- RTM_GETROUTE = 0x1a
+- RTM_GETRULE = 0x22
+- RTM_GETSTATS = 0x5e
+- RTM_GETTCLASS = 0x2a
+- RTM_GETTFILTER = 0x2e
+- RTM_MAX = 0x5f
+- RTM_NEWACTION = 0x30
+- RTM_NEWADDR = 0x14
+- RTM_NEWADDRLABEL = 0x48
+- RTM_NEWLINK = 0x10
+- RTM_NEWMDB = 0x54
+- RTM_NEWNDUSEROPT = 0x44
+- RTM_NEWNEIGH = 0x1c
+- RTM_NEWNEIGHTBL = 0x40
+- RTM_NEWNETCONF = 0x50
+- RTM_NEWNSID = 0x58
+- RTM_NEWPREFIX = 0x34
+- RTM_NEWQDISC = 0x24
+- RTM_NEWROUTE = 0x18
+- RTM_NEWRULE = 0x20
+- RTM_NEWSTATS = 0x5c
+- RTM_NEWTCLASS = 0x28
+- RTM_NEWTFILTER = 0x2c
+- RTM_NR_FAMILIES = 0x14
+- RTM_NR_MSGTYPES = 0x50
+- RTM_SETDCB = 0x4f
+- RTM_SETLINK = 0x13
+- RTM_SETNEIGHTBL = 0x43
+- RTNH_ALIGNTO = 0x4
+- RTNH_COMPARE_MASK = 0x11
+- RTNH_F_DEAD = 0x1
+- RTNH_F_LINKDOWN = 0x10
+- RTNH_F_OFFLOAD = 0x8
+- RTNH_F_ONLINK = 0x4
+- RTNH_F_PERVASIVE = 0x2
+- RTN_MAX = 0xb
+- RTPROT_BABEL = 0x2a
+- RTPROT_BIRD = 0xc
+- RTPROT_BOOT = 0x3
+- RTPROT_DHCP = 0x10
+- RTPROT_DNROUTED = 0xd
+- RTPROT_GATED = 0x8
+- RTPROT_KERNEL = 0x2
+- RTPROT_MROUTED = 0x11
+- RTPROT_MRT = 0xa
+- RTPROT_NTK = 0xf
+- RTPROT_RA = 0x9
+- RTPROT_REDIRECT = 0x1
+- RTPROT_STATIC = 0x4
+- RTPROT_UNSPEC = 0x0
+- RTPROT_XORP = 0xe
+- RTPROT_ZEBRA = 0xb
+- RT_CLASS_DEFAULT = 0xfd
+- RT_CLASS_LOCAL = 0xff
+- RT_CLASS_MAIN = 0xfe
+- RT_CLASS_MAX = 0xff
+- RT_CLASS_UNSPEC = 0x0
+- RUSAGE_CHILDREN = -0x1
+- RUSAGE_SELF = 0x0
+- RUSAGE_THREAD = 0x1
+- SCM_CREDENTIALS = 0x2
+- SCM_RIGHTS = 0x1
+- SCM_TIMESTAMP = 0x1d
++ RLIMIT_NPROC = 0x7
++ RLIMIT_RSS = 0x5
++ RNDADDENTROPY = 0x80085203
++ RNDADDTOENTCNT = 0x80045201
++ RNDCLEARPOOL = 0x20005206
++ RNDGETENTCNT = 0x40045200
++ RNDGETPOOL = 0x40085202
++ RNDRESEEDCRNG = 0x20005207
++ RNDZAPENTCNT = 0x20005204
++ RTC_AIE_OFF = 0x20007002
++ RTC_AIE_ON = 0x20007001
++ RTC_ALM_READ = 0x40247008
++ RTC_ALM_SET = 0x80247007
++ RTC_EPOCH_READ = 0x4008700d
++ RTC_EPOCH_SET = 0x8008700e
++ RTC_IRQP_READ = 0x4008700b
++ RTC_IRQP_SET = 0x8008700c
++ RTC_PIE_OFF = 0x20007006
++ RTC_PIE_ON = 0x20007005
++ RTC_PLL_GET = 0x40207011
++ RTC_PLL_SET = 0x80207012
++ RTC_RD_TIME = 0x40247009
++ RTC_SET_TIME = 0x8024700a
++ RTC_UIE_OFF = 0x20007004
++ RTC_UIE_ON = 0x20007003
++ RTC_VL_CLR = 0x20007014
++ RTC_VL_READ = 0x40047013
++ RTC_WIE_OFF = 0x20007010
++ RTC_WIE_ON = 0x2000700f
++ RTC_WKALM_RD = 0x40287010
++ RTC_WKALM_SET = 0x8028700f
+ SCM_TIMESTAMPING = 0x23
++ SCM_TIMESTAMPING_OPT_STATS = 0x38
++ SCM_TIMESTAMPING_PKTINFO = 0x3c
+ SCM_TIMESTAMPNS = 0x21
++ SCM_TXTIME = 0x3f
+ SCM_WIFI_STATUS = 0x25
+- SHUT_RD = 0x0
+- SHUT_RDWR = 0x2
+- SHUT_WR = 0x1
+- SIOCADDDLCI = 0x8980
+- SIOCADDMULTI = 0x8931
+- SIOCADDRT = 0x890b
++ SFD_CLOEXEC = 0x400000
++ SFD_NONBLOCK = 0x4000
+ SIOCATMARK = 0x8905
+- SIOCBONDCHANGEACTIVE = 0x8995
+- SIOCBONDENSLAVE = 0x8990
+- SIOCBONDINFOQUERY = 0x8994
+- SIOCBONDRELEASE = 0x8991
+- SIOCBONDSETHWADDR = 0x8992
+- SIOCBONDSLAVEINFOQUERY = 0x8993
+- SIOCBRADDBR = 0x89a0
+- SIOCBRADDIF = 0x89a2
+- SIOCBRDELBR = 0x89a1
+- SIOCBRDELIF = 0x89a3
+- SIOCDARP = 0x8953
+- SIOCDELDLCI = 0x8981
+- SIOCDELMULTI = 0x8932
+- SIOCDELRT = 0x890c
+- SIOCDEVPRIVATE = 0x89f0
+- SIOCDIFADDR = 0x8936
+- SIOCDRARP = 0x8960
+- SIOCETHTOOL = 0x8946
+- SIOCGARP = 0x8954
+- SIOCGHWTSTAMP = 0x89b1
+- SIOCGIFADDR = 0x8915
+- SIOCGIFBR = 0x8940
+- SIOCGIFBRDADDR = 0x8919
+- SIOCGIFCONF = 0x8912
+- SIOCGIFCOUNT = 0x8938
+- SIOCGIFDSTADDR = 0x8917
+- SIOCGIFENCAP = 0x8925
+- SIOCGIFFLAGS = 0x8913
+- SIOCGIFHWADDR = 0x8927
+- SIOCGIFINDEX = 0x8933
+- SIOCGIFMAP = 0x8970
+- SIOCGIFMEM = 0x891f
+- SIOCGIFMETRIC = 0x891d
+- SIOCGIFMTU = 0x8921
+- SIOCGIFNAME = 0x8910
+- SIOCGIFNETMASK = 0x891b
+- SIOCGIFPFLAGS = 0x8935
+- SIOCGIFSLAVE = 0x8929
+- SIOCGIFTXQLEN = 0x8942
+- SIOCGIFVLAN = 0x8982
+- SIOCGMIIPHY = 0x8947
+- SIOCGMIIREG = 0x8948
+ SIOCGPGRP = 0x8904
+- SIOCGRARP = 0x8961
+- SIOCGSTAMP = 0x8906
+- SIOCGSTAMPNS = 0x8907
++ SIOCGSTAMPNS_NEW = 0x40108907
++ SIOCGSTAMP_NEW = 0x40108906
+ SIOCINQ = 0x4004667f
+ SIOCOUTQ = 0x40047473
+- SIOCOUTQNSD = 0x894b
+- SIOCPROTOPRIVATE = 0x89e0
+- SIOCRTMSG = 0x890d
+- SIOCSARP = 0x8955
+- SIOCSHWTSTAMP = 0x89b0
+- SIOCSIFADDR = 0x8916
+- SIOCSIFBR = 0x8941
+- SIOCSIFBRDADDR = 0x891a
+- SIOCSIFDSTADDR = 0x8918
+- SIOCSIFENCAP = 0x8926
+- SIOCSIFFLAGS = 0x8914
+- SIOCSIFHWADDR = 0x8924
+- SIOCSIFHWBROADCAST = 0x8937
+- SIOCSIFLINK = 0x8911
+- SIOCSIFMAP = 0x8971
+- SIOCSIFMEM = 0x8920
+- SIOCSIFMETRIC = 0x891e
+- SIOCSIFMTU = 0x8922
+- SIOCSIFNAME = 0x8923
+- SIOCSIFNETMASK = 0x891c
+- SIOCSIFPFLAGS = 0x8934
+- SIOCSIFSLAVE = 0x8930
+- SIOCSIFTXQLEN = 0x8943
+- SIOCSIFVLAN = 0x8983
+- SIOCSMIIREG = 0x8949
+ SIOCSPGRP = 0x8902
+- SIOCSRARP = 0x8962
+- SIOCWANDEV = 0x894a
+ SOCK_CLOEXEC = 0x400000
+- SOCK_DCCP = 0x6
+ SOCK_DGRAM = 0x2
+ SOCK_NONBLOCK = 0x4000
+- SOCK_PACKET = 0xa
+- SOCK_RAW = 0x3
+- SOCK_RDM = 0x4
+- SOCK_SEQPACKET = 0x5
+ SOCK_STREAM = 0x1
+- SOL_AAL = 0x109
+- SOL_ALG = 0x117
+- SOL_ATM = 0x108
+- SOL_CAIF = 0x116
+- SOL_DCCP = 0x10d
+- SOL_DECNET = 0x105
+- SOL_ICMPV6 = 0x3a
+- SOL_IP = 0x0
+- SOL_IPV6 = 0x29
+- SOL_IRDA = 0x10a
+- SOL_IUCV = 0x115
+- SOL_KCM = 0x119
+- SOL_LLC = 0x10c
+- SOL_NETBEUI = 0x10b
+- SOL_NETLINK = 0x10e
+- SOL_NFC = 0x118
+- SOL_PACKET = 0x107
+- SOL_PNPIPE = 0x113
+- SOL_PPPOL2TP = 0x111
+- SOL_RAW = 0xff
+- SOL_RDS = 0x114
+- SOL_RXRPC = 0x110
+ SOL_SOCKET = 0xffff
+- SOL_TCP = 0x6
+- SOL_TIPC = 0x10f
+- SOL_X25 = 0x106
+- SOMAXCONN = 0x80
+ SO_ACCEPTCONN = 0x8000
+ SO_ATTACH_BPF = 0x34
+- SO_ATTACH_FILTER = 0x1a
+ SO_ATTACH_REUSEPORT_CBPF = 0x35
+ SO_ATTACH_REUSEPORT_EBPF = 0x36
+ SO_BINDTODEVICE = 0xd
++ SO_BINDTOIFINDEX = 0x41
+ SO_BPF_EXTENSIONS = 0x32
+ SO_BROADCAST = 0x20
+ SO_BSDCOMPAT = 0x400
+ SO_BUSY_POLL = 0x30
+ SO_CNX_ADVICE = 0x37
+- SO_DEBUG = 0x1
+- SO_DETACH_BPF = 0x1b
+- SO_DETACH_FILTER = 0x1b
++ SO_COOKIE = 0x3b
++ SO_DETACH_REUSEPORT_BPF = 0x47
+ SO_DOMAIN = 0x1029
+ SO_DONTROUTE = 0x10
+ SO_ERROR = 0x1007
+- SO_GET_FILTER = 0x1a
+ SO_INCOMING_CPU = 0x33
++ SO_INCOMING_NAPI_ID = 0x3a
+ SO_KEEPALIVE = 0x8
+ SO_LINGER = 0x80
+ SO_LOCK_FILTER = 0x28
+ SO_MARK = 0x22
+ SO_MAX_PACING_RATE = 0x31
++ SO_MEMINFO = 0x39
+ SO_NOFCS = 0x27
+- SO_NO_CHECK = 0xb
+ SO_OOBINLINE = 0x100
+ SO_PASSCRED = 0x2
+ SO_PASSSEC = 0x1f
+ SO_PEEK_OFF = 0x26
+ SO_PEERCRED = 0x40
+- SO_PEERNAME = 0x1c
++ SO_PEERGROUPS = 0x3d
+ SO_PEERSEC = 0x1e
+- SO_PRIORITY = 0xc
+ SO_PROTOCOL = 0x1028
+ SO_RCVBUF = 0x1002
+ SO_RCVBUFFORCE = 0x100b
+ SO_RCVLOWAT = 0x800
+ SO_RCVTIMEO = 0x2000
++ SO_RCVTIMEO_NEW = 0x44
++ SO_RCVTIMEO_OLD = 0x2000
+ SO_REUSEADDR = 0x4
+ SO_REUSEPORT = 0x200
+ SO_RXQ_OVFL = 0x24
+@@ -1536,50 +358,19 @@ const (
+ SO_SNDBUFFORCE = 0x100a
+ SO_SNDLOWAT = 0x1000
+ SO_SNDTIMEO = 0x4000
+- SO_TIMESTAMP = 0x1d
++ SO_SNDTIMEO_NEW = 0x45
++ SO_SNDTIMEO_OLD = 0x4000
+ SO_TIMESTAMPING = 0x23
++ SO_TIMESTAMPING_NEW = 0x43
++ SO_TIMESTAMPING_OLD = 0x23
+ SO_TIMESTAMPNS = 0x21
++ SO_TIMESTAMPNS_NEW = 0x42
++ SO_TIMESTAMPNS_OLD = 0x21
++ SO_TIMESTAMP_NEW = 0x46
++ SO_TXTIME = 0x3f
+ SO_TYPE = 0x1008
+- SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
+- SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
+- SO_VM_SOCKETS_BUFFER_SIZE = 0x0
+- SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
+- SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
+- SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
+- SO_VM_SOCKETS_TRUSTED = 0x5
+ SO_WIFI_STATUS = 0x25
+- SPLICE_F_GIFT = 0x8
+- SPLICE_F_MORE = 0x4
+- SPLICE_F_MOVE = 0x1
+- SPLICE_F_NONBLOCK = 0x2
+- S_BLKSIZE = 0x200
+- S_IEXEC = 0x40
+- S_IFBLK = 0x6000
+- S_IFCHR = 0x2000
+- S_IFDIR = 0x4000
+- S_IFIFO = 0x1000
+- S_IFLNK = 0xa000
+- S_IFMT = 0xf000
+- S_IFREG = 0x8000
+- S_IFSOCK = 0xc000
+- S_IREAD = 0x100
+- S_IRGRP = 0x20
+- S_IROTH = 0x4
+- S_IRUSR = 0x100
+- S_IRWXG = 0x38
+- S_IRWXO = 0x7
+- S_IRWXU = 0x1c0
+- S_ISGID = 0x400
+- S_ISUID = 0x800
+- S_ISVTX = 0x200
+- S_IWGRP = 0x10
+- S_IWOTH = 0x2
+- S_IWRITE = 0x80
+- S_IWUSR = 0x80
+- S_IXGRP = 0x8
+- S_IXOTH = 0x1
+- S_IXUSR = 0x40
+- TAB0 = 0x0
++ SO_ZEROCOPY = 0x3e
+ TAB1 = 0x800
+ TAB2 = 0x1000
+ TAB3 = 0x1800
+@@ -1588,54 +379,6 @@ const (
+ TCGETA = 0x40125401
+ TCGETS = 0x40245408
+ TCGETS2 = 0x402c540c
+- TCIFLUSH = 0x0
+- TCIOFF = 0x2
+- TCIOFLUSH = 0x2
+- TCION = 0x3
+- TCOFLUSH = 0x1
+- TCOOFF = 0x0
+- TCOON = 0x1
+- TCP_CC_INFO = 0x1a
+- TCP_CONGESTION = 0xd
+- TCP_COOKIE_IN_ALWAYS = 0x1
+- TCP_COOKIE_MAX = 0x10
+- TCP_COOKIE_MIN = 0x8
+- TCP_COOKIE_OUT_NEVER = 0x2
+- TCP_COOKIE_PAIR_SIZE = 0x20
+- TCP_COOKIE_TRANSACTIONS = 0xf
+- TCP_CORK = 0x3
+- TCP_DEFER_ACCEPT = 0x9
+- TCP_FASTOPEN = 0x17
+- TCP_INFO = 0xb
+- TCP_KEEPCNT = 0x6
+- TCP_KEEPIDLE = 0x4
+- TCP_KEEPINTVL = 0x5
+- TCP_LINGER2 = 0x8
+- TCP_MAXSEG = 0x2
+- TCP_MAXWIN = 0xffff
+- TCP_MAX_WINSHIFT = 0xe
+- TCP_MD5SIG = 0xe
+- TCP_MD5SIG_MAXKEYLEN = 0x50
+- TCP_MSS = 0x200
+- TCP_MSS_DEFAULT = 0x218
+- TCP_MSS_DESIRED = 0x4c4
+- TCP_NODELAY = 0x1
+- TCP_NOTSENT_LOWAT = 0x19
+- TCP_QUEUE_SEQ = 0x15
+- TCP_QUICKACK = 0xc
+- TCP_REPAIR = 0x13
+- TCP_REPAIR_OPTIONS = 0x16
+- TCP_REPAIR_QUEUE = 0x14
+- TCP_SAVED_SYN = 0x1c
+- TCP_SAVE_SYN = 0x1b
+- TCP_SYNCNT = 0x7
+- TCP_S_DATA_IN = 0x4
+- TCP_S_DATA_OUT = 0x8
+- TCP_THIN_DUPACK = 0x11
+- TCP_THIN_LINEAR_TIMEOUTS = 0x10
+- TCP_TIMESTAMP = 0x18
+- TCP_USER_TIMEOUT = 0x12
+- TCP_WINDOW_CLAMP = 0xa
+ TCSAFLUSH = 0x2
+ TCSBRK = 0x20005405
+ TCSBRKP = 0x5425
+@@ -1656,11 +399,13 @@ const (
+ TIOCGETD = 0x40047400
+ TIOCGEXCL = 0x40045440
+ TIOCGICOUNT = 0x545d
++ TIOCGISO7816 = 0x40285443
+ TIOCGLCKTRMIOS = 0x5456
+ TIOCGPGRP = 0x40047483
+ TIOCGPKT = 0x40045438
+ TIOCGPTLCK = 0x40045439
+ TIOCGPTN = 0x40047486
++ TIOCGPTPEER = 0x20007489
+ TIOCGRS485 = 0x40205441
+ TIOCGSERIAL = 0x541e
+ TIOCGSID = 0x40047485
+@@ -1677,28 +422,14 @@ const (
+ TIOCM_CD = 0x40
+ TIOCM_CTS = 0x20
+ TIOCM_DSR = 0x100
+- TIOCM_DTR = 0x2
+- TIOCM_LE = 0x1
+- TIOCM_LOOP = 0x8000
+- TIOCM_OUT1 = 0x2000
+- TIOCM_OUT2 = 0x4000
+ TIOCM_RI = 0x80
+ TIOCM_RNG = 0x80
+- TIOCM_RTS = 0x4
+ TIOCM_SR = 0x10
+ TIOCM_ST = 0x8
+ TIOCNOTTY = 0x20007471
+ TIOCNXCL = 0x2000740e
+ TIOCOUTQ = 0x40047473
+ TIOCPKT = 0x80047470
+- TIOCPKT_DATA = 0x0
+- TIOCPKT_DOSTOP = 0x20
+- TIOCPKT_FLUSHREAD = 0x1
+- TIOCPKT_FLUSHWRITE = 0x2
+- TIOCPKT_IOCTL = 0x40
+- TIOCPKT_NOSTOP = 0x10
+- TIOCPKT_START = 0x8
+- TIOCPKT_STOP = 0x4
+ TIOCSBRK = 0x2000747b
+ TIOCSCTTY = 0x20007484
+ TIOCSERCONFIG = 0x5453
+@@ -1708,9 +439,9 @@ const (
+ TIOCSERGWILD = 0x5454
+ TIOCSERSETMULTI = 0x545b
+ TIOCSERSWILD = 0x5455
+- TIOCSER_TEMT = 0x1
+ TIOCSETD = 0x80047401
+ TIOCSIG = 0x80047488
++ TIOCSISO7816 = 0xc0285444
+ TIOCSLCKTRMIOS = 0x5457
+ TIOCSPGRP = 0x80047482
+ TIOCSPTLCK = 0x80047487
+@@ -1725,6 +456,7 @@ const (
+ TOSTOP = 0x100
+ TUNATTACHFILTER = 0x801054d5
+ TUNDETACHFILTER = 0x801054d6
++ TUNGETDEVNETNS = 0x200054e3
+ TUNGETFEATURES = 0x400454cf
+ TUNGETFILTER = 0x401054db
+ TUNGETIFF = 0x400454d2
+@@ -1732,7 +464,9 @@ const (
+ TUNGETVNETBE = 0x400454df
+ TUNGETVNETHDRSZ = 0x400454d7
+ TUNGETVNETLE = 0x400454dd
++ TUNSETCARRIER = 0x800454e2
+ TUNSETDEBUG = 0x800454c9
++ TUNSETFILTEREBPF = 0x400454e1
+ TUNSETGROUP = 0x800454ce
+ TUNSETIFF = 0x800454ca
+ TUNSETIFINDEX = 0x800454da
+@@ -1743,47 +477,52 @@ const (
+ TUNSETPERSIST = 0x800454cb
+ TUNSETQUEUE = 0x800454d9
+ TUNSETSNDBUF = 0x800454d4
++ TUNSETSTEERINGEBPF = 0x400454e0
+ TUNSETTXFILTER = 0x800454d1
+ TUNSETVNETBE = 0x800454de
+ TUNSETVNETHDRSZ = 0x800454d8
+ TUNSETVNETLE = 0x800454dc
++ UBI_IOCATT = 0x80186f40
++ UBI_IOCDET = 0x80046f41
++ UBI_IOCEBCH = 0x80044f02
++ UBI_IOCEBER = 0x80044f01
++ UBI_IOCEBISMAP = 0x40044f05
++ UBI_IOCEBMAP = 0x80084f03
++ UBI_IOCEBUNMAP = 0x80044f04
++ UBI_IOCMKVOL = 0x80986f00
++ UBI_IOCRMVOL = 0x80046f01
++ UBI_IOCRNVOL = 0x91106f03
++ UBI_IOCRPEB = 0x80046f04
++ UBI_IOCRSVOL = 0x800c6f02
++ UBI_IOCSETVOLPROP = 0x80104f06
++ UBI_IOCSPEB = 0x80046f05
++ UBI_IOCVOLCRBLK = 0x80804f07
++ UBI_IOCVOLRMBLK = 0x20004f08
++ UBI_IOCVOLUP = 0x80084f00
+ VDISCARD = 0xd
+- VDSUSP = 0xb
+ VEOF = 0x4
+- VEOL = 0x5
+- VEOL2 = 0x6
+- VERASE = 0x2
+- VINTR = 0x0
+- VKILL = 0x3
+- VLNEXT = 0xf
+- VMADDR_CID_ANY = 0xffffffff
+- VMADDR_CID_HOST = 0x2
+- VMADDR_CID_HYPERVISOR = 0x0
+- VMADDR_CID_RESERVED = 0x1
+- VMADDR_PORT_ANY = 0xffffffff
+- VMIN = 0x4
+- VQUIT = 0x1
++ VEOL = 0xb
++ VEOL2 = 0x10
++ VMIN = 0x6
+ VREPRINT = 0xc
+ VSTART = 0x8
+ VSTOP = 0x9
+ VSUSP = 0xa
+ VSWTC = 0x7
+- VT0 = 0x0
+ VT1 = 0x4000
+ VTDLY = 0x4000
+ VTIME = 0x5
+ VWERASE = 0xe
+- WALL = 0x40000000
+- WCLONE = 0x80000000
+- WCONTINUED = 0x8
+- WEXITED = 0x4
+- WNOHANG = 0x1
+- WNOTHREAD = 0x20000000
+- WNOWAIT = 0x1000000
++ WDIOC_GETBOOTSTATUS = 0x40045702
++ WDIOC_GETPRETIMEOUT = 0x40045709
++ WDIOC_GETSTATUS = 0x40045701
++ WDIOC_GETSUPPORT = 0x40285700
++ WDIOC_GETTEMP = 0x40045703
++ WDIOC_GETTIMELEFT = 0x4004570a
++ WDIOC_GETTIMEOUT = 0x40045707
++ WDIOC_KEEPALIVE = 0x40045705
++ WDIOC_SETOPTIONS = 0x40045704
+ WORDSIZE = 0x40
+- WRAP = 0x20000
+- WSTOPPED = 0x2
+- WUNTRACED = 0x2
+ XCASE = 0x4
+ XTABS = 0x1800
+ __TIOCFLUSH = 0x80047410
+@@ -1791,25 +530,19 @@ const (
+
+ // Errors
+ const (
+- E2BIG = syscall.Errno(0x7)
+- EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x30)
+ EADDRNOTAVAIL = syscall.Errno(0x31)
+ EADV = syscall.Errno(0x53)
+ EAFNOSUPPORT = syscall.Errno(0x2f)
+- EAGAIN = syscall.Errno(0xb)
+ EALREADY = syscall.Errno(0x25)
+ EBADE = syscall.Errno(0x66)
+- EBADF = syscall.Errno(0x9)
+ EBADFD = syscall.Errno(0x5d)
+ EBADMSG = syscall.Errno(0x4c)
+ EBADR = syscall.Errno(0x67)
+ EBADRQC = syscall.Errno(0x6a)
+ EBADSLT = syscall.Errno(0x6b)
+ EBFONT = syscall.Errno(0x6d)
+- EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x7f)
+- ECHILD = syscall.Errno(0xa)
+ ECHRNG = syscall.Errno(0x5e)
+ ECOMM = syscall.Errno(0x55)
+ ECONNABORTED = syscall.Errno(0x35)
+@@ -1818,23 +551,15 @@ const (
+ EDEADLK = syscall.Errno(0x4e)
+ EDEADLOCK = syscall.Errno(0x6c)
+ EDESTADDRREQ = syscall.Errno(0x27)
+- EDOM = syscall.Errno(0x21)
+ EDOTDOT = syscall.Errno(0x58)
+ EDQUOT = syscall.Errno(0x45)
+- EEXIST = syscall.Errno(0x11)
+- EFAULT = syscall.Errno(0xe)
+- EFBIG = syscall.Errno(0x1b)
+ EHOSTDOWN = syscall.Errno(0x40)
+ EHOSTUNREACH = syscall.Errno(0x41)
+ EHWPOISON = syscall.Errno(0x87)
+ EIDRM = syscall.Errno(0x4d)
+ EILSEQ = syscall.Errno(0x7a)
+ EINPROGRESS = syscall.Errno(0x24)
+- EINTR = syscall.Errno(0x4)
+- EINVAL = syscall.Errno(0x16)
+- EIO = syscall.Errno(0x5)
+ EISCONN = syscall.Errno(0x38)
+- EISDIR = syscall.Errno(0x15)
+ EISNAM = syscall.Errno(0x78)
+ EKEYEXPIRED = syscall.Errno(0x81)
+ EKEYREJECTED = syscall.Errno(0x83)
+@@ -1851,8 +576,6 @@ const (
+ ELNRNG = syscall.Errno(0x62)
+ ELOOP = syscall.Errno(0x3e)
+ EMEDIUMTYPE = syscall.Errno(0x7e)
+- EMFILE = syscall.Errno(0x18)
+- EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x28)
+ EMULTIHOP = syscall.Errno(0x57)
+ ENAMETOOLONG = syscall.Errno(0x3f)
+@@ -1860,102 +583,70 @@ const (
+ ENETDOWN = syscall.Errno(0x32)
+ ENETRESET = syscall.Errno(0x34)
+ ENETUNREACH = syscall.Errno(0x33)
+- ENFILE = syscall.Errno(0x17)
+ ENOANO = syscall.Errno(0x69)
+ ENOBUFS = syscall.Errno(0x37)
+ ENOCSI = syscall.Errno(0x64)
+ ENODATA = syscall.Errno(0x6f)
+- ENODEV = syscall.Errno(0x13)
+- ENOENT = syscall.Errno(0x2)
+- ENOEXEC = syscall.Errno(0x8)
+ ENOKEY = syscall.Errno(0x80)
+ ENOLCK = syscall.Errno(0x4f)
+ ENOLINK = syscall.Errno(0x52)
+ ENOMEDIUM = syscall.Errno(0x7d)
+- ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x4b)
+ ENONET = syscall.Errno(0x50)
+ ENOPKG = syscall.Errno(0x71)
+ ENOPROTOOPT = syscall.Errno(0x2a)
+- ENOSPC = syscall.Errno(0x1c)
+ ENOSR = syscall.Errno(0x4a)
+ ENOSTR = syscall.Errno(0x48)
+ ENOSYS = syscall.Errno(0x5a)
+- ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x39)
+- ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x42)
+ ENOTNAM = syscall.Errno(0x76)
+ ENOTRECOVERABLE = syscall.Errno(0x85)
+ ENOTSOCK = syscall.Errno(0x26)
+ ENOTSUP = syscall.Errno(0x2d)
+- ENOTTY = syscall.Errno(0x19)
+ ENOTUNIQ = syscall.Errno(0x73)
+- ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x2d)
+ EOVERFLOW = syscall.Errno(0x5c)
+ EOWNERDEAD = syscall.Errno(0x84)
+- EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x2e)
+- EPIPE = syscall.Errno(0x20)
+ EPROCLIM = syscall.Errno(0x43)
+ EPROTO = syscall.Errno(0x56)
+ EPROTONOSUPPORT = syscall.Errno(0x2b)
+ EPROTOTYPE = syscall.Errno(0x29)
+- ERANGE = syscall.Errno(0x22)
+ EREMCHG = syscall.Errno(0x59)
+ EREMOTE = syscall.Errno(0x47)
+ EREMOTEIO = syscall.Errno(0x79)
+ ERESTART = syscall.Errno(0x74)
+ ERFKILL = syscall.Errno(0x86)
+- EROFS = syscall.Errno(0x1e)
+ ERREMOTE = syscall.Errno(0x51)
+ ESHUTDOWN = syscall.Errno(0x3a)
+ ESOCKTNOSUPPORT = syscall.Errno(0x2c)
+- ESPIPE = syscall.Errno(0x1d)
+- ESRCH = syscall.Errno(0x3)
+ ESRMNT = syscall.Errno(0x54)
+ ESTALE = syscall.Errno(0x46)
+ ESTRPIPE = syscall.Errno(0x5b)
+ ETIME = syscall.Errno(0x49)
+ ETIMEDOUT = syscall.Errno(0x3c)
+ ETOOMANYREFS = syscall.Errno(0x3b)
+- ETXTBSY = syscall.Errno(0x1a)
+ EUCLEAN = syscall.Errno(0x75)
+ EUNATCH = syscall.Errno(0x63)
+ EUSERS = syscall.Errno(0x44)
+- EWOULDBLOCK = syscall.Errno(0xb)
+- EXDEV = syscall.Errno(0x12)
+ EXFULL = syscall.Errno(0x68)
+ )
+
+ // Signals
+ const (
+- SIGABRT = syscall.Signal(0x6)
+- SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0xa)
+ SIGCHLD = syscall.Signal(0x14)
+ SIGCLD = syscall.Signal(0x14)
+ SIGCONT = syscall.Signal(0x13)
+ SIGEMT = syscall.Signal(0x7)
+- SIGFPE = syscall.Signal(0x8)
+- SIGHUP = syscall.Signal(0x1)
+- SIGILL = syscall.Signal(0x4)
+- SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x17)
+- SIGIOT = syscall.Signal(0x6)
+- SIGKILL = syscall.Signal(0x9)
+ SIGLOST = syscall.Signal(0x1d)
+- SIGPIPE = syscall.Signal(0xd)
+ SIGPOLL = syscall.Signal(0x17)
+ SIGPROF = syscall.Signal(0x1b)
+ SIGPWR = syscall.Signal(0x1d)
+- SIGQUIT = syscall.Signal(0x3)
+- SIGSEGV = syscall.Signal(0xb)
+ SIGSTOP = syscall.Signal(0x11)
+ SIGSYS = syscall.Signal(0xc)
+- SIGTERM = syscall.Signal(0xf)
+- SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x12)
+ SIGTTIN = syscall.Signal(0x15)
+ SIGTTOU = syscall.Signal(0x16)
+@@ -1969,174 +660,182 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "no such device or address",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource temporarily unavailable",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "device or resource busy",
+- 17: "file exists",
+- 18: "invalid cross-device link",
+- 19: "no such device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "numerical result out of range",
+- 36: "operation now in progress",
+- 37: "operation already in progress",
+- 38: "socket operation on non-socket",
+- 39: "destination address required",
+- 40: "message too long",
+- 41: "protocol wrong type for socket",
+- 42: "protocol not available",
+- 43: "protocol not supported",
+- 44: "socket type not supported",
+- 45: "operation not supported",
+- 46: "protocol family not supported",
+- 47: "address family not supported by protocol",
+- 48: "address already in use",
+- 49: "cannot assign requested address",
+- 50: "network is down",
+- 51: "network is unreachable",
+- 52: "network dropped connection on reset",
+- 53: "software caused connection abort",
+- 54: "connection reset by peer",
+- 55: "no buffer space available",
+- 56: "transport endpoint is already connected",
+- 57: "transport endpoint is not connected",
+- 58: "cannot send after transport endpoint shutdown",
+- 59: "too many references: cannot splice",
+- 60: "connection timed out",
+- 61: "connection refused",
+- 62: "too many levels of symbolic links",
+- 63: "file name too long",
+- 64: "host is down",
+- 65: "no route to host",
+- 66: "directory not empty",
+- 67: "too many processes",
+- 68: "too many users",
+- 69: "disk quota exceeded",
+- 70: "stale file handle",
+- 71: "object is remote",
+- 72: "device not a stream",
+- 73: "timer expired",
+- 74: "out of streams resources",
+- 75: "no message of desired type",
+- 76: "bad message",
+- 77: "identifier removed",
+- 78: "resource deadlock avoided",
+- 79: "no locks available",
+- 80: "machine is not on the network",
+- 81: "unknown error 81",
+- 82: "link has been severed",
+- 83: "advertise error",
+- 84: "srmount error",
+- 85: "communication error on send",
+- 86: "protocol error",
+- 87: "multihop attempted",
+- 88: "RFS specific error",
+- 89: "remote address changed",
+- 90: "function not implemented",
+- 91: "streams pipe error",
+- 92: "value too large for defined data type",
+- 93: "file descriptor in bad state",
+- 94: "channel number out of range",
+- 95: "level 2 not synchronized",
+- 96: "level 3 halted",
+- 97: "level 3 reset",
+- 98: "link number out of range",
+- 99: "protocol driver not attached",
+- 100: "no CSI structure available",
+- 101: "level 2 halted",
+- 102: "invalid exchange",
+- 103: "invalid request descriptor",
+- 104: "exchange full",
+- 105: "no anode",
+- 106: "invalid request code",
+- 107: "invalid slot",
+- 108: "file locking deadlock error",
+- 109: "bad font file format",
+- 110: "cannot exec a shared library directly",
+- 111: "no data available",
+- 112: "accessing a corrupted shared library",
+- 113: "package not installed",
+- 114: "can not access a needed shared library",
+- 115: "name not unique on network",
+- 116: "interrupted system call should be restarted",
+- 117: "structure needs cleaning",
+- 118: "not a XENIX named type file",
+- 119: "no XENIX semaphores available",
+- 120: "is a named type file",
+- 121: "remote I/O error",
+- 122: "invalid or incomplete multibyte or wide character",
+- 123: "attempting to link in too many shared libraries",
+- 124: ".lib section in a.out corrupted",
+- 125: "no medium found",
+- 126: "wrong medium type",
+- 127: "operation canceled",
+- 128: "required key not available",
+- 129: "key has expired",
+- 130: "key has been revoked",
+- 131: "key was rejected by service",
+- 132: "owner died",
+- 133: "state not recoverable",
+- 134: "operation not possible due to RF-kill",
+- 135: "memory page has hardware error",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "no such device or address"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EAGAIN", "resource temporarily unavailable"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device or resource busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "invalid cross-device link"},
++ {19, "ENODEV", "no such device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "numerical result out of range"},
++ {36, "EINPROGRESS", "operation now in progress"},
++ {37, "EALREADY", "operation already in progress"},
++ {38, "ENOTSOCK", "socket operation on non-socket"},
++ {39, "EDESTADDRREQ", "destination address required"},
++ {40, "EMSGSIZE", "message too long"},
++ {41, "EPROTOTYPE", "protocol wrong type for socket"},
++ {42, "ENOPROTOOPT", "protocol not available"},
++ {43, "EPROTONOSUPPORT", "protocol not supported"},
++ {44, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {45, "ENOTSUP", "operation not supported"},
++ {46, "EPFNOSUPPORT", "protocol family not supported"},
++ {47, "EAFNOSUPPORT", "address family not supported by protocol"},
++ {48, "EADDRINUSE", "address already in use"},
++ {49, "EADDRNOTAVAIL", "cannot assign requested address"},
++ {50, "ENETDOWN", "network is down"},
++ {51, "ENETUNREACH", "network is unreachable"},
++ {52, "ENETRESET", "network dropped connection on reset"},
++ {53, "ECONNABORTED", "software caused connection abort"},
++ {54, "ECONNRESET", "connection reset by peer"},
++ {55, "ENOBUFS", "no buffer space available"},
++ {56, "EISCONN", "transport endpoint is already connected"},
++ {57, "ENOTCONN", "transport endpoint is not connected"},
++ {58, "ESHUTDOWN", "cannot send after transport endpoint shutdown"},
++ {59, "ETOOMANYREFS", "too many references: cannot splice"},
++ {60, "ETIMEDOUT", "connection timed out"},
++ {61, "ECONNREFUSED", "connection refused"},
++ {62, "ELOOP", "too many levels of symbolic links"},
++ {63, "ENAMETOOLONG", "file name too long"},
++ {64, "EHOSTDOWN", "host is down"},
++ {65, "EHOSTUNREACH", "no route to host"},
++ {66, "ENOTEMPTY", "directory not empty"},
++ {67, "EPROCLIM", "too many processes"},
++ {68, "EUSERS", "too many users"},
++ {69, "EDQUOT", "disk quota exceeded"},
++ {70, "ESTALE", "stale file handle"},
++ {71, "EREMOTE", "object is remote"},
++ {72, "ENOSTR", "device not a stream"},
++ {73, "ETIME", "timer expired"},
++ {74, "ENOSR", "out of streams resources"},
++ {75, "ENOMSG", "no message of desired type"},
++ {76, "EBADMSG", "bad message"},
++ {77, "EIDRM", "identifier removed"},
++ {78, "EDEADLK", "resource deadlock avoided"},
++ {79, "ENOLCK", "no locks available"},
++ {80, "ENONET", "machine is not on the network"},
++ {81, "ERREMOTE", "unknown error 81"},
++ {82, "ENOLINK", "link has been severed"},
++ {83, "EADV", "advertise error"},
++ {84, "ESRMNT", "srmount error"},
++ {85, "ECOMM", "communication error on send"},
++ {86, "EPROTO", "protocol error"},
++ {87, "EMULTIHOP", "multihop attempted"},
++ {88, "EDOTDOT", "RFS specific error"},
++ {89, "EREMCHG", "remote address changed"},
++ {90, "ENOSYS", "function not implemented"},
++ {91, "ESTRPIPE", "streams pipe error"},
++ {92, "EOVERFLOW", "value too large for defined data type"},
++ {93, "EBADFD", "file descriptor in bad state"},
++ {94, "ECHRNG", "channel number out of range"},
++ {95, "EL2NSYNC", "level 2 not synchronized"},
++ {96, "EL3HLT", "level 3 halted"},
++ {97, "EL3RST", "level 3 reset"},
++ {98, "ELNRNG", "link number out of range"},
++ {99, "EUNATCH", "protocol driver not attached"},
++ {100, "ENOCSI", "no CSI structure available"},
++ {101, "EL2HLT", "level 2 halted"},
++ {102, "EBADE", "invalid exchange"},
++ {103, "EBADR", "invalid request descriptor"},
++ {104, "EXFULL", "exchange full"},
++ {105, "ENOANO", "no anode"},
++ {106, "EBADRQC", "invalid request code"},
++ {107, "EBADSLT", "invalid slot"},
++ {108, "EDEADLOCK", "file locking deadlock error"},
++ {109, "EBFONT", "bad font file format"},
++ {110, "ELIBEXEC", "cannot exec a shared library directly"},
++ {111, "ENODATA", "no data available"},
++ {112, "ELIBBAD", "accessing a corrupted shared library"},
++ {113, "ENOPKG", "package not installed"},
++ {114, "ELIBACC", "can not access a needed shared library"},
++ {115, "ENOTUNIQ", "name not unique on network"},
++ {116, "ERESTART", "interrupted system call should be restarted"},
++ {117, "EUCLEAN", "structure needs cleaning"},
++ {118, "ENOTNAM", "not a XENIX named type file"},
++ {119, "ENAVAIL", "no XENIX semaphores available"},
++ {120, "EISNAM", "is a named type file"},
++ {121, "EREMOTEIO", "remote I/O error"},
++ {122, "EILSEQ", "invalid or incomplete multibyte or wide character"},
++ {123, "ELIBMAX", "attempting to link in too many shared libraries"},
++ {124, "ELIBSCN", ".lib section in a.out corrupted"},
++ {125, "ENOMEDIUM", "no medium found"},
++ {126, "EMEDIUMTYPE", "wrong medium type"},
++ {127, "ECANCELED", "operation canceled"},
++ {128, "ENOKEY", "required key not available"},
++ {129, "EKEYEXPIRED", "key has expired"},
++ {130, "EKEYREVOKED", "key has been revoked"},
++ {131, "EKEYREJECTED", "key was rejected by service"},
++ {132, "EOWNERDEAD", "owner died"},
++ {133, "ENOTRECOVERABLE", "state not recoverable"},
++ {134, "ERFKILL", "operation not possible due to RF-kill"},
++ {135, "EHWPOISON", "memory page has hardware error"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/breakpoint trap",
+- 6: "aborted",
+- 7: "EMT trap",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "bus error",
+- 11: "segmentation fault",
+- 12: "bad system call",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "urgent I/O condition",
+- 17: "stopped (signal)",
+- 18: "stopped",
+- 19: "continued",
+- 20: "child exited",
+- 21: "stopped (tty input)",
+- 22: "stopped (tty output)",
+- 23: "I/O possible",
+- 24: "CPU time limit exceeded",
+- 25: "file size limit exceeded",
+- 26: "virtual timer expired",
+- 27: "profiling timer expired",
+- 28: "window changed",
+- 29: "resource lost",
+- 30: "user defined signal 1",
+- 31: "user defined signal 2",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/breakpoint trap"},
++ {6, "SIGABRT", "aborted"},
++ {7, "SIGEMT", "EMT trap"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGBUS", "bus error"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGSYS", "bad system call"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGURG", "urgent I/O condition"},
++ {17, "SIGSTOP", "stopped (signal)"},
++ {18, "SIGTSTP", "stopped"},
++ {19, "SIGCONT", "continued"},
++ {20, "SIGCHLD", "child exited"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGIO", "I/O possible"},
++ {24, "SIGXCPU", "CPU time limit exceeded"},
++ {25, "SIGXFSZ", "file size limit exceeded"},
++ {26, "SIGVTALRM", "virtual timer expired"},
++ {27, "SIGPROF", "profiling timer expired"},
++ {28, "SIGWINCH", "window changed"},
++ {29, "SIGLOST", "power failure"},
++ {30, "SIGUSR1", "user defined signal 1"},
++ {31, "SIGUSR2", "user defined signal 2"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go
+index b4338d5f..96b9b8ab 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go
+@@ -1,9 +1,9 @@
+ // mkerrors.sh -m32
+-// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build 386,netbsd
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m32 _const.go
+
+ package unix
+@@ -159,6 +159,7 @@ const (
+ CLONE_VFORK = 0x4000
+ CLONE_VM = 0x100
+ CREAD = 0x800
++ CRTSCTS = 0x10000
+ CS5 = 0x0
+ CS6 = 0x100
+ CS7 = 0x200
+@@ -169,6 +170,8 @@ const (
+ CSTOP = 0x13
+ CSTOPB = 0x400
+ CSUSP = 0x1a
++ CTL_HW = 0x6
++ CTL_KERN = 0x1
+ CTL_MAXNAME = 0xc
+ CTL_NET = 0x4
+ CTL_QUERY = -0x2
+@@ -547,6 +550,10 @@ const (
+ EV_ONESHOT = 0x10
+ EV_SYSFLAGS = 0xf000
+ EXTA = 0x4b00
++ EXTATTR_CMD_START = 0x1
++ EXTATTR_CMD_STOP = 0x2
++ EXTATTR_NAMESPACE_SYSTEM = 0x2
++ EXTATTR_NAMESPACE_USER = 0x1
+ EXTB = 0x9600
+ EXTPROC = 0x800
+ FD_CLOEXEC = 0x1
+@@ -581,6 +588,7 @@ const (
+ F_UNLCK = 0x2
+ F_WRLCK = 0x3
+ HUPCL = 0x4000
++ HW_MACHINE = 0x1
+ ICANON = 0x100
+ ICMP6_FILTER = 0x12
+ ICRNL = 0x100
+@@ -970,6 +978,10 @@ const (
+ IXANY = 0x800
+ IXOFF = 0x400
+ IXON = 0x200
++ KERN_HOSTNAME = 0xa
++ KERN_OSRELEASE = 0x2
++ KERN_OSTYPE = 0x1
++ KERN_VERSION = 0x4
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+ LOCK_SH = 0x1
+@@ -1008,6 +1020,43 @@ const (
+ MAP_WIRED = 0x800
+ MCL_CURRENT = 0x1
+ MCL_FUTURE = 0x2
++ MNT_ASYNC = 0x40
++ MNT_BASIC_FLAGS = 0xe782807f
++ MNT_DEFEXPORTED = 0x200
++ MNT_DISCARD = 0x800000
++ MNT_EXKERB = 0x800
++ MNT_EXNORESPORT = 0x8000000
++ MNT_EXPORTANON = 0x400
++ MNT_EXPORTED = 0x100
++ MNT_EXPUBLIC = 0x10000000
++ MNT_EXRDONLY = 0x80
++ MNT_EXTATTR = 0x1000000
++ MNT_FORCE = 0x80000
++ MNT_GETARGS = 0x400000
++ MNT_IGNORE = 0x100000
++ MNT_LAZY = 0x3
++ MNT_LOCAL = 0x1000
++ MNT_LOG = 0x2000000
++ MNT_NOATIME = 0x4000000
++ MNT_NOCOREDUMP = 0x8000
++ MNT_NODEV = 0x10
++ MNT_NODEVMTIME = 0x40000000
++ MNT_NOEXEC = 0x4
++ MNT_NOSUID = 0x8
++ MNT_NOWAIT = 0x2
++ MNT_OP_FLAGS = 0x4d0000
++ MNT_QUOTA = 0x2000
++ MNT_RDONLY = 0x1
++ MNT_RELATIME = 0x20000
++ MNT_RELOAD = 0x40000
++ MNT_ROOTFS = 0x4000
++ MNT_SOFTDEP = 0x80000000
++ MNT_SYMPERM = 0x20000000
++ MNT_SYNCHRONOUS = 0x2
++ MNT_UNION = 0x20
++ MNT_UPDATE = 0x10000
++ MNT_VISFLAGMASK = 0xff90ffff
++ MNT_WAIT = 0x1
+ MSG_BCAST = 0x100
+ MSG_CMSG_CLOEXEC = 0x800
+ MSG_CONTROLMBUF = 0x2000000
+@@ -1036,6 +1085,7 @@ const (
+ NET_RT_MAXID = 0x6
+ NET_RT_OIFLIST = 0x4
+ NET_RT_OOIFLIST = 0x3
++ NFDBITS = 0x20
+ NOFLSH = 0x80000000
+ NOTE_ATTRIB = 0x8
+ NOTE_CHILD = 0x4
+@@ -1101,7 +1151,10 @@ const (
+ RLIMIT_CPU = 0x0
+ RLIMIT_DATA = 0x2
+ RLIMIT_FSIZE = 0x1
++ RLIMIT_MEMLOCK = 0x6
+ RLIMIT_NOFILE = 0x8
++ RLIMIT_NPROC = 0x7
++ RLIMIT_RSS = 0x5
+ RLIMIT_STACK = 0x3
+ RLIM_INFINITY = 0x7fffffffffffffff
+ RTAX_AUTHOR = 0x6
+@@ -1576,137 +1629,145 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "device not configured",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource deadlock avoided",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "device busy",
+- 17: "file exists",
+- 18: "cross-device link",
+- 19: "operation not supported by device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "result too large or too small",
+- 35: "resource temporarily unavailable",
+- 36: "operation now in progress",
+- 37: "operation already in progress",
+- 38: "socket operation on non-socket",
+- 39: "destination address required",
+- 40: "message too long",
+- 41: "protocol wrong type for socket",
+- 42: "protocol option not available",
+- 43: "protocol not supported",
+- 44: "socket type not supported",
+- 45: "operation not supported",
+- 46: "protocol family not supported",
+- 47: "address family not supported by protocol family",
+- 48: "address already in use",
+- 49: "can't assign requested address",
+- 50: "network is down",
+- 51: "network is unreachable",
+- 52: "network dropped connection on reset",
+- 53: "software caused connection abort",
+- 54: "connection reset by peer",
+- 55: "no buffer space available",
+- 56: "socket is already connected",
+- 57: "socket is not connected",
+- 58: "can't send after socket shutdown",
+- 59: "too many references: can't splice",
+- 60: "connection timed out",
+- 61: "connection refused",
+- 62: "too many levels of symbolic links",
+- 63: "file name too long",
+- 64: "host is down",
+- 65: "no route to host",
+- 66: "directory not empty",
+- 67: "too many processes",
+- 68: "too many users",
+- 69: "disc quota exceeded",
+- 70: "stale NFS file handle",
+- 71: "too many levels of remote in path",
+- 72: "RPC struct is bad",
+- 73: "RPC version wrong",
+- 74: "RPC prog. not avail",
+- 75: "program version wrong",
+- 76: "bad procedure for program",
+- 77: "no locks available",
+- 78: "function not implemented",
+- 79: "inappropriate file type or format",
+- 80: "authentication error",
+- 81: "need authenticator",
+- 82: "identifier removed",
+- 83: "no message of desired type",
+- 84: "value too large to be stored in data type",
+- 85: "illegal byte sequence",
+- 86: "not supported",
+- 87: "operation Canceled",
+- 88: "bad or Corrupt message",
+- 89: "no message available",
+- 90: "no STREAM resources",
+- 91: "not a STREAM",
+- 92: "STREAM ioctl timeout",
+- 93: "attribute not found",
+- 94: "multihop attempted",
+- 95: "link has been severed",
+- 96: "protocol error",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "device not configured"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EDEADLK", "resource deadlock avoided"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "cross-device link"},
++ {19, "ENODEV", "operation not supported by device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "result too large or too small"},
++ {35, "EAGAIN", "resource temporarily unavailable"},
++ {36, "EINPROGRESS", "operation now in progress"},
++ {37, "EALREADY", "operation already in progress"},
++ {38, "ENOTSOCK", "socket operation on non-socket"},
++ {39, "EDESTADDRREQ", "destination address required"},
++ {40, "EMSGSIZE", "message too long"},
++ {41, "EPROTOTYPE", "protocol wrong type for socket"},
++ {42, "ENOPROTOOPT", "protocol option not available"},
++ {43, "EPROTONOSUPPORT", "protocol not supported"},
++ {44, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {45, "EOPNOTSUPP", "operation not supported"},
++ {46, "EPFNOSUPPORT", "protocol family not supported"},
++ {47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++ {48, "EADDRINUSE", "address already in use"},
++ {49, "EADDRNOTAVAIL", "can't assign requested address"},
++ {50, "ENETDOWN", "network is down"},
++ {51, "ENETUNREACH", "network is unreachable"},
++ {52, "ENETRESET", "network dropped connection on reset"},
++ {53, "ECONNABORTED", "software caused connection abort"},
++ {54, "ECONNRESET", "connection reset by peer"},
++ {55, "ENOBUFS", "no buffer space available"},
++ {56, "EISCONN", "socket is already connected"},
++ {57, "ENOTCONN", "socket is not connected"},
++ {58, "ESHUTDOWN", "can't send after socket shutdown"},
++ {59, "ETOOMANYREFS", "too many references: can't splice"},
++ {60, "ETIMEDOUT", "connection timed out"},
++ {61, "ECONNREFUSED", "connection refused"},
++ {62, "ELOOP", "too many levels of symbolic links"},
++ {63, "ENAMETOOLONG", "file name too long"},
++ {64, "EHOSTDOWN", "host is down"},
++ {65, "EHOSTUNREACH", "no route to host"},
++ {66, "ENOTEMPTY", "directory not empty"},
++ {67, "EPROCLIM", "too many processes"},
++ {68, "EUSERS", "too many users"},
++ {69, "EDQUOT", "disc quota exceeded"},
++ {70, "ESTALE", "stale NFS file handle"},
++ {71, "EREMOTE", "too many levels of remote in path"},
++ {72, "EBADRPC", "RPC struct is bad"},
++ {73, "ERPCMISMATCH", "RPC version wrong"},
++ {74, "EPROGUNAVAIL", "RPC prog. not avail"},
++ {75, "EPROGMISMATCH", "program version wrong"},
++ {76, "EPROCUNAVAIL", "bad procedure for program"},
++ {77, "ENOLCK", "no locks available"},
++ {78, "ENOSYS", "function not implemented"},
++ {79, "EFTYPE", "inappropriate file type or format"},
++ {80, "EAUTH", "authentication error"},
++ {81, "ENEEDAUTH", "need authenticator"},
++ {82, "EIDRM", "identifier removed"},
++ {83, "ENOMSG", "no message of desired type"},
++ {84, "EOVERFLOW", "value too large to be stored in data type"},
++ {85, "EILSEQ", "illegal byte sequence"},
++ {86, "ENOTSUP", "not supported"},
++ {87, "ECANCELED", "operation Canceled"},
++ {88, "EBADMSG", "bad or Corrupt message"},
++ {89, "ENODATA", "no message available"},
++ {90, "ENOSR", "no STREAM resources"},
++ {91, "ENOSTR", "not a STREAM"},
++ {92, "ETIME", "STREAM ioctl timeout"},
++ {93, "ENOATTR", "attribute not found"},
++ {94, "EMULTIHOP", "multihop attempted"},
++ {95, "ENOLINK", "link has been severed"},
++ {96, "ELAST", "protocol error"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/BPT trap",
+- 6: "abort trap",
+- 7: "EMT trap",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "bus error",
+- 11: "segmentation fault",
+- 12: "bad system call",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "urgent I/O condition",
+- 17: "stopped (signal)",
+- 18: "stopped",
+- 19: "continued",
+- 20: "child exited",
+- 21: "stopped (tty input)",
+- 22: "stopped (tty output)",
+- 23: "I/O possible",
+- 24: "cputime limit exceeded",
+- 25: "filesize limit exceeded",
+- 26: "virtual timer expired",
+- 27: "profiling timer expired",
+- 28: "window size changes",
+- 29: "information request",
+- 30: "user defined signal 1",
+- 31: "user defined signal 2",
+- 32: "power fail/restart",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/BPT trap"},
++ {6, "SIGIOT", "abort trap"},
++ {7, "SIGEMT", "EMT trap"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGBUS", "bus error"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGSYS", "bad system call"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGURG", "urgent I/O condition"},
++ {17, "SIGSTOP", "stopped (signal)"},
++ {18, "SIGTSTP", "stopped"},
++ {19, "SIGCONT", "continued"},
++ {20, "SIGCHLD", "child exited"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGIO", "I/O possible"},
++ {24, "SIGXCPU", "cputime limit exceeded"},
++ {25, "SIGXFSZ", "filesize limit exceeded"},
++ {26, "SIGVTALRM", "virtual timer expired"},
++ {27, "SIGPROF", "profiling timer expired"},
++ {28, "SIGWINCH", "window size changes"},
++ {29, "SIGINFO", "information request"},
++ {30, "SIGUSR1", "user defined signal 1"},
++ {31, "SIGUSR2", "user defined signal 2"},
++ {32, "SIGPWR", "power fail/restart"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go
+index 4994437b..ed522a84 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go
+@@ -1,9 +1,9 @@
+ // mkerrors.sh -m64
+-// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build amd64,netbsd
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+
+ package unix
+@@ -159,6 +159,7 @@ const (
+ CLONE_VFORK = 0x4000
+ CLONE_VM = 0x100
+ CREAD = 0x800
++ CRTSCTS = 0x10000
+ CS5 = 0x0
+ CS6 = 0x100
+ CS7 = 0x200
+@@ -169,6 +170,8 @@ const (
+ CSTOP = 0x13
+ CSTOPB = 0x400
+ CSUSP = 0x1a
++ CTL_HW = 0x6
++ CTL_KERN = 0x1
+ CTL_MAXNAME = 0xc
+ CTL_NET = 0x4
+ CTL_QUERY = -0x2
+@@ -537,6 +540,10 @@ const (
+ EV_ONESHOT = 0x10
+ EV_SYSFLAGS = 0xf000
+ EXTA = 0x4b00
++ EXTATTR_CMD_START = 0x1
++ EXTATTR_CMD_STOP = 0x2
++ EXTATTR_NAMESPACE_SYSTEM = 0x2
++ EXTATTR_NAMESPACE_USER = 0x1
+ EXTB = 0x9600
+ EXTPROC = 0x800
+ FD_CLOEXEC = 0x1
+@@ -571,6 +578,7 @@ const (
+ F_UNLCK = 0x2
+ F_WRLCK = 0x3
+ HUPCL = 0x4000
++ HW_MACHINE = 0x1
+ ICANON = 0x100
+ ICMP6_FILTER = 0x12
+ ICRNL = 0x100
+@@ -960,6 +968,10 @@ const (
+ IXANY = 0x800
+ IXOFF = 0x400
+ IXON = 0x200
++ KERN_HOSTNAME = 0xa
++ KERN_OSRELEASE = 0x2
++ KERN_OSTYPE = 0x1
++ KERN_VERSION = 0x4
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+ LOCK_SH = 0x1
+@@ -998,6 +1010,43 @@ const (
+ MAP_WIRED = 0x800
+ MCL_CURRENT = 0x1
+ MCL_FUTURE = 0x2
++ MNT_ASYNC = 0x40
++ MNT_BASIC_FLAGS = 0xe782807f
++ MNT_DEFEXPORTED = 0x200
++ MNT_DISCARD = 0x800000
++ MNT_EXKERB = 0x800
++ MNT_EXNORESPORT = 0x8000000
++ MNT_EXPORTANON = 0x400
++ MNT_EXPORTED = 0x100
++ MNT_EXPUBLIC = 0x10000000
++ MNT_EXRDONLY = 0x80
++ MNT_EXTATTR = 0x1000000
++ MNT_FORCE = 0x80000
++ MNT_GETARGS = 0x400000
++ MNT_IGNORE = 0x100000
++ MNT_LAZY = 0x3
++ MNT_LOCAL = 0x1000
++ MNT_LOG = 0x2000000
++ MNT_NOATIME = 0x4000000
++ MNT_NOCOREDUMP = 0x8000
++ MNT_NODEV = 0x10
++ MNT_NODEVMTIME = 0x40000000
++ MNT_NOEXEC = 0x4
++ MNT_NOSUID = 0x8
++ MNT_NOWAIT = 0x2
++ MNT_OP_FLAGS = 0x4d0000
++ MNT_QUOTA = 0x2000
++ MNT_RDONLY = 0x1
++ MNT_RELATIME = 0x20000
++ MNT_RELOAD = 0x40000
++ MNT_ROOTFS = 0x4000
++ MNT_SOFTDEP = 0x80000000
++ MNT_SYMPERM = 0x20000000
++ MNT_SYNCHRONOUS = 0x2
++ MNT_UNION = 0x20
++ MNT_UPDATE = 0x10000
++ MNT_VISFLAGMASK = 0xff90ffff
++ MNT_WAIT = 0x1
+ MSG_BCAST = 0x100
+ MSG_CMSG_CLOEXEC = 0x800
+ MSG_CONTROLMBUF = 0x2000000
+@@ -1026,6 +1075,7 @@ const (
+ NET_RT_MAXID = 0x6
+ NET_RT_OIFLIST = 0x4
+ NET_RT_OOIFLIST = 0x3
++ NFDBITS = 0x20
+ NOFLSH = 0x80000000
+ NOTE_ATTRIB = 0x8
+ NOTE_CHILD = 0x4
+@@ -1091,7 +1141,10 @@ const (
+ RLIMIT_CPU = 0x0
+ RLIMIT_DATA = 0x2
+ RLIMIT_FSIZE = 0x1
++ RLIMIT_MEMLOCK = 0x6
+ RLIMIT_NOFILE = 0x8
++ RLIMIT_NPROC = 0x7
++ RLIMIT_RSS = 0x5
+ RLIMIT_STACK = 0x3
+ RLIM_INFINITY = 0x7fffffffffffffff
+ RTAX_AUTHOR = 0x6
+@@ -1566,137 +1619,145 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "device not configured",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource deadlock avoided",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "device busy",
+- 17: "file exists",
+- 18: "cross-device link",
+- 19: "operation not supported by device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "result too large or too small",
+- 35: "resource temporarily unavailable",
+- 36: "operation now in progress",
+- 37: "operation already in progress",
+- 38: "socket operation on non-socket",
+- 39: "destination address required",
+- 40: "message too long",
+- 41: "protocol wrong type for socket",
+- 42: "protocol option not available",
+- 43: "protocol not supported",
+- 44: "socket type not supported",
+- 45: "operation not supported",
+- 46: "protocol family not supported",
+- 47: "address family not supported by protocol family",
+- 48: "address already in use",
+- 49: "can't assign requested address",
+- 50: "network is down",
+- 51: "network is unreachable",
+- 52: "network dropped connection on reset",
+- 53: "software caused connection abort",
+- 54: "connection reset by peer",
+- 55: "no buffer space available",
+- 56: "socket is already connected",
+- 57: "socket is not connected",
+- 58: "can't send after socket shutdown",
+- 59: "too many references: can't splice",
+- 60: "connection timed out",
+- 61: "connection refused",
+- 62: "too many levels of symbolic links",
+- 63: "file name too long",
+- 64: "host is down",
+- 65: "no route to host",
+- 66: "directory not empty",
+- 67: "too many processes",
+- 68: "too many users",
+- 69: "disc quota exceeded",
+- 70: "stale NFS file handle",
+- 71: "too many levels of remote in path",
+- 72: "RPC struct is bad",
+- 73: "RPC version wrong",
+- 74: "RPC prog. not avail",
+- 75: "program version wrong",
+- 76: "bad procedure for program",
+- 77: "no locks available",
+- 78: "function not implemented",
+- 79: "inappropriate file type or format",
+- 80: "authentication error",
+- 81: "need authenticator",
+- 82: "identifier removed",
+- 83: "no message of desired type",
+- 84: "value too large to be stored in data type",
+- 85: "illegal byte sequence",
+- 86: "not supported",
+- 87: "operation Canceled",
+- 88: "bad or Corrupt message",
+- 89: "no message available",
+- 90: "no STREAM resources",
+- 91: "not a STREAM",
+- 92: "STREAM ioctl timeout",
+- 93: "attribute not found",
+- 94: "multihop attempted",
+- 95: "link has been severed",
+- 96: "protocol error",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "device not configured"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EDEADLK", "resource deadlock avoided"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "cross-device link"},
++ {19, "ENODEV", "operation not supported by device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "result too large or too small"},
++ {35, "EAGAIN", "resource temporarily unavailable"},
++ {36, "EINPROGRESS", "operation now in progress"},
++ {37, "EALREADY", "operation already in progress"},
++ {38, "ENOTSOCK", "socket operation on non-socket"},
++ {39, "EDESTADDRREQ", "destination address required"},
++ {40, "EMSGSIZE", "message too long"},
++ {41, "EPROTOTYPE", "protocol wrong type for socket"},
++ {42, "ENOPROTOOPT", "protocol option not available"},
++ {43, "EPROTONOSUPPORT", "protocol not supported"},
++ {44, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {45, "EOPNOTSUPP", "operation not supported"},
++ {46, "EPFNOSUPPORT", "protocol family not supported"},
++ {47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++ {48, "EADDRINUSE", "address already in use"},
++ {49, "EADDRNOTAVAIL", "can't assign requested address"},
++ {50, "ENETDOWN", "network is down"},
++ {51, "ENETUNREACH", "network is unreachable"},
++ {52, "ENETRESET", "network dropped connection on reset"},
++ {53, "ECONNABORTED", "software caused connection abort"},
++ {54, "ECONNRESET", "connection reset by peer"},
++ {55, "ENOBUFS", "no buffer space available"},
++ {56, "EISCONN", "socket is already connected"},
++ {57, "ENOTCONN", "socket is not connected"},
++ {58, "ESHUTDOWN", "can't send after socket shutdown"},
++ {59, "ETOOMANYREFS", "too many references: can't splice"},
++ {60, "ETIMEDOUT", "connection timed out"},
++ {61, "ECONNREFUSED", "connection refused"},
++ {62, "ELOOP", "too many levels of symbolic links"},
++ {63, "ENAMETOOLONG", "file name too long"},
++ {64, "EHOSTDOWN", "host is down"},
++ {65, "EHOSTUNREACH", "no route to host"},
++ {66, "ENOTEMPTY", "directory not empty"},
++ {67, "EPROCLIM", "too many processes"},
++ {68, "EUSERS", "too many users"},
++ {69, "EDQUOT", "disc quota exceeded"},
++ {70, "ESTALE", "stale NFS file handle"},
++ {71, "EREMOTE", "too many levels of remote in path"},
++ {72, "EBADRPC", "RPC struct is bad"},
++ {73, "ERPCMISMATCH", "RPC version wrong"},
++ {74, "EPROGUNAVAIL", "RPC prog. not avail"},
++ {75, "EPROGMISMATCH", "program version wrong"},
++ {76, "EPROCUNAVAIL", "bad procedure for program"},
++ {77, "ENOLCK", "no locks available"},
++ {78, "ENOSYS", "function not implemented"},
++ {79, "EFTYPE", "inappropriate file type or format"},
++ {80, "EAUTH", "authentication error"},
++ {81, "ENEEDAUTH", "need authenticator"},
++ {82, "EIDRM", "identifier removed"},
++ {83, "ENOMSG", "no message of desired type"},
++ {84, "EOVERFLOW", "value too large to be stored in data type"},
++ {85, "EILSEQ", "illegal byte sequence"},
++ {86, "ENOTSUP", "not supported"},
++ {87, "ECANCELED", "operation Canceled"},
++ {88, "EBADMSG", "bad or Corrupt message"},
++ {89, "ENODATA", "no message available"},
++ {90, "ENOSR", "no STREAM resources"},
++ {91, "ENOSTR", "not a STREAM"},
++ {92, "ETIME", "STREAM ioctl timeout"},
++ {93, "ENOATTR", "attribute not found"},
++ {94, "EMULTIHOP", "multihop attempted"},
++ {95, "ENOLINK", "link has been severed"},
++ {96, "ELAST", "protocol error"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/BPT trap",
+- 6: "abort trap",
+- 7: "EMT trap",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "bus error",
+- 11: "segmentation fault",
+- 12: "bad system call",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "urgent I/O condition",
+- 17: "stopped (signal)",
+- 18: "stopped",
+- 19: "continued",
+- 20: "child exited",
+- 21: "stopped (tty input)",
+- 22: "stopped (tty output)",
+- 23: "I/O possible",
+- 24: "cputime limit exceeded",
+- 25: "filesize limit exceeded",
+- 26: "virtual timer expired",
+- 27: "profiling timer expired",
+- 28: "window size changes",
+- 29: "information request",
+- 30: "user defined signal 1",
+- 31: "user defined signal 2",
+- 32: "power fail/restart",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/BPT trap"},
++ {6, "SIGIOT", "abort trap"},
++ {7, "SIGEMT", "EMT trap"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGBUS", "bus error"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGSYS", "bad system call"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGURG", "urgent I/O condition"},
++ {17, "SIGSTOP", "stopped (signal)"},
++ {18, "SIGTSTP", "stopped"},
++ {19, "SIGCONT", "continued"},
++ {20, "SIGCHLD", "child exited"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGIO", "I/O possible"},
++ {24, "SIGXCPU", "cputime limit exceeded"},
++ {25, "SIGXFSZ", "filesize limit exceeded"},
++ {26, "SIGVTALRM", "virtual timer expired"},
++ {27, "SIGPROF", "profiling timer expired"},
++ {28, "SIGWINCH", "window size changes"},
++ {29, "SIGINFO", "information request"},
++ {30, "SIGUSR1", "user defined signal 1"},
++ {31, "SIGUSR2", "user defined signal 2"},
++ {32, "SIGPWR", "power fail/restart"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go
+index 206c75f0..c8d36fe9 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go
+@@ -1,9 +1,9 @@
+ // mkerrors.sh -marm
+-// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build arm,netbsd
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -marm _const.go
+
+ package unix
+@@ -151,6 +151,7 @@ const (
+ CFLUSH = 0xf
+ CLOCAL = 0x8000
+ CREAD = 0x800
++ CRTSCTS = 0x10000
+ CS5 = 0x0
+ CS6 = 0x100
+ CS7 = 0x200
+@@ -161,6 +162,8 @@ const (
+ CSTOP = 0x13
+ CSTOPB = 0x400
+ CSUSP = 0x1a
++ CTL_HW = 0x6
++ CTL_KERN = 0x1
+ CTL_MAXNAME = 0xc
+ CTL_NET = 0x4
+ CTL_QUERY = -0x2
+@@ -529,6 +532,10 @@ const (
+ EV_ONESHOT = 0x10
+ EV_SYSFLAGS = 0xf000
+ EXTA = 0x4b00
++ EXTATTR_CMD_START = 0x1
++ EXTATTR_CMD_STOP = 0x2
++ EXTATTR_NAMESPACE_SYSTEM = 0x2
++ EXTATTR_NAMESPACE_USER = 0x1
+ EXTB = 0x9600
+ EXTPROC = 0x800
+ FD_CLOEXEC = 0x1
+@@ -563,6 +570,7 @@ const (
+ F_UNLCK = 0x2
+ F_WRLCK = 0x3
+ HUPCL = 0x4000
++ HW_MACHINE = 0x1
+ ICANON = 0x100
+ ICMP6_FILTER = 0x12
+ ICRNL = 0x100
+@@ -952,6 +960,10 @@ const (
+ IXANY = 0x800
+ IXOFF = 0x400
+ IXON = 0x200
++ KERN_HOSTNAME = 0xa
++ KERN_OSRELEASE = 0x2
++ KERN_OSTYPE = 0x1
++ KERN_VERSION = 0x4
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+ LOCK_SH = 0x1
+@@ -988,6 +1000,43 @@ const (
+ MAP_STACK = 0x2000
+ MAP_TRYFIXED = 0x400
+ MAP_WIRED = 0x800
++ MNT_ASYNC = 0x40
++ MNT_BASIC_FLAGS = 0xe782807f
++ MNT_DEFEXPORTED = 0x200
++ MNT_DISCARD = 0x800000
++ MNT_EXKERB = 0x800
++ MNT_EXNORESPORT = 0x8000000
++ MNT_EXPORTANON = 0x400
++ MNT_EXPORTED = 0x100
++ MNT_EXPUBLIC = 0x10000000
++ MNT_EXRDONLY = 0x80
++ MNT_EXTATTR = 0x1000000
++ MNT_FORCE = 0x80000
++ MNT_GETARGS = 0x400000
++ MNT_IGNORE = 0x100000
++ MNT_LAZY = 0x3
++ MNT_LOCAL = 0x1000
++ MNT_LOG = 0x2000000
++ MNT_NOATIME = 0x4000000
++ MNT_NOCOREDUMP = 0x8000
++ MNT_NODEV = 0x10
++ MNT_NODEVMTIME = 0x40000000
++ MNT_NOEXEC = 0x4
++ MNT_NOSUID = 0x8
++ MNT_NOWAIT = 0x2
++ MNT_OP_FLAGS = 0x4d0000
++ MNT_QUOTA = 0x2000
++ MNT_RDONLY = 0x1
++ MNT_RELATIME = 0x20000
++ MNT_RELOAD = 0x40000
++ MNT_ROOTFS = 0x4000
++ MNT_SOFTDEP = 0x80000000
++ MNT_SYMPERM = 0x20000000
++ MNT_SYNCHRONOUS = 0x2
++ MNT_UNION = 0x20
++ MNT_UPDATE = 0x10000
++ MNT_VISFLAGMASK = 0xff90ffff
++ MNT_WAIT = 0x1
+ MSG_BCAST = 0x100
+ MSG_CMSG_CLOEXEC = 0x800
+ MSG_CONTROLMBUF = 0x2000000
+@@ -1016,6 +1065,7 @@ const (
+ NET_RT_MAXID = 0x6
+ NET_RT_OIFLIST = 0x4
+ NET_RT_OOIFLIST = 0x3
++ NFDBITS = 0x20
+ NOFLSH = 0x80000000
+ NOTE_ATTRIB = 0x8
+ NOTE_CHILD = 0x4
+@@ -1081,7 +1131,10 @@ const (
+ RLIMIT_CPU = 0x0
+ RLIMIT_DATA = 0x2
+ RLIMIT_FSIZE = 0x1
++ RLIMIT_MEMLOCK = 0x6
+ RLIMIT_NOFILE = 0x8
++ RLIMIT_NPROC = 0x7
++ RLIMIT_RSS = 0x5
+ RLIMIT_STACK = 0x3
+ RLIM_INFINITY = 0x7fffffffffffffff
+ RTAX_AUTHOR = 0x6
+@@ -1555,137 +1608,145 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "device not configured",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource deadlock avoided",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "device busy",
+- 17: "file exists",
+- 18: "cross-device link",
+- 19: "operation not supported by device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "result too large or too small",
+- 35: "resource temporarily unavailable",
+- 36: "operation now in progress",
+- 37: "operation already in progress",
+- 38: "socket operation on non-socket",
+- 39: "destination address required",
+- 40: "message too long",
+- 41: "protocol wrong type for socket",
+- 42: "protocol option not available",
+- 43: "protocol not supported",
+- 44: "socket type not supported",
+- 45: "operation not supported",
+- 46: "protocol family not supported",
+- 47: "address family not supported by protocol family",
+- 48: "address already in use",
+- 49: "can't assign requested address",
+- 50: "network is down",
+- 51: "network is unreachable",
+- 52: "network dropped connection on reset",
+- 53: "software caused connection abort",
+- 54: "connection reset by peer",
+- 55: "no buffer space available",
+- 56: "socket is already connected",
+- 57: "socket is not connected",
+- 58: "can't send after socket shutdown",
+- 59: "too many references: can't splice",
+- 60: "connection timed out",
+- 61: "connection refused",
+- 62: "too many levels of symbolic links",
+- 63: "file name too long",
+- 64: "host is down",
+- 65: "no route to host",
+- 66: "directory not empty",
+- 67: "too many processes",
+- 68: "too many users",
+- 69: "disc quota exceeded",
+- 70: "stale NFS file handle",
+- 71: "too many levels of remote in path",
+- 72: "RPC struct is bad",
+- 73: "RPC version wrong",
+- 74: "RPC prog. not avail",
+- 75: "program version wrong",
+- 76: "bad procedure for program",
+- 77: "no locks available",
+- 78: "function not implemented",
+- 79: "inappropriate file type or format",
+- 80: "authentication error",
+- 81: "need authenticator",
+- 82: "identifier removed",
+- 83: "no message of desired type",
+- 84: "value too large to be stored in data type",
+- 85: "illegal byte sequence",
+- 86: "not supported",
+- 87: "operation Canceled",
+- 88: "bad or Corrupt message",
+- 89: "no message available",
+- 90: "no STREAM resources",
+- 91: "not a STREAM",
+- 92: "STREAM ioctl timeout",
+- 93: "attribute not found",
+- 94: "multihop attempted",
+- 95: "link has been severed",
+- 96: "protocol error",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "device not configured"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EDEADLK", "resource deadlock avoided"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "cross-device link"},
++ {19, "ENODEV", "operation not supported by device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "result too large or too small"},
++ {35, "EAGAIN", "resource temporarily unavailable"},
++ {36, "EINPROGRESS", "operation now in progress"},
++ {37, "EALREADY", "operation already in progress"},
++ {38, "ENOTSOCK", "socket operation on non-socket"},
++ {39, "EDESTADDRREQ", "destination address required"},
++ {40, "EMSGSIZE", "message too long"},
++ {41, "EPROTOTYPE", "protocol wrong type for socket"},
++ {42, "ENOPROTOOPT", "protocol option not available"},
++ {43, "EPROTONOSUPPORT", "protocol not supported"},
++ {44, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {45, "EOPNOTSUPP", "operation not supported"},
++ {46, "EPFNOSUPPORT", "protocol family not supported"},
++ {47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++ {48, "EADDRINUSE", "address already in use"},
++ {49, "EADDRNOTAVAIL", "can't assign requested address"},
++ {50, "ENETDOWN", "network is down"},
++ {51, "ENETUNREACH", "network is unreachable"},
++ {52, "ENETRESET", "network dropped connection on reset"},
++ {53, "ECONNABORTED", "software caused connection abort"},
++ {54, "ECONNRESET", "connection reset by peer"},
++ {55, "ENOBUFS", "no buffer space available"},
++ {56, "EISCONN", "socket is already connected"},
++ {57, "ENOTCONN", "socket is not connected"},
++ {58, "ESHUTDOWN", "can't send after socket shutdown"},
++ {59, "ETOOMANYREFS", "too many references: can't splice"},
++ {60, "ETIMEDOUT", "connection timed out"},
++ {61, "ECONNREFUSED", "connection refused"},
++ {62, "ELOOP", "too many levels of symbolic links"},
++ {63, "ENAMETOOLONG", "file name too long"},
++ {64, "EHOSTDOWN", "host is down"},
++ {65, "EHOSTUNREACH", "no route to host"},
++ {66, "ENOTEMPTY", "directory not empty"},
++ {67, "EPROCLIM", "too many processes"},
++ {68, "EUSERS", "too many users"},
++ {69, "EDQUOT", "disc quota exceeded"},
++ {70, "ESTALE", "stale NFS file handle"},
++ {71, "EREMOTE", "too many levels of remote in path"},
++ {72, "EBADRPC", "RPC struct is bad"},
++ {73, "ERPCMISMATCH", "RPC version wrong"},
++ {74, "EPROGUNAVAIL", "RPC prog. not avail"},
++ {75, "EPROGMISMATCH", "program version wrong"},
++ {76, "EPROCUNAVAIL", "bad procedure for program"},
++ {77, "ENOLCK", "no locks available"},
++ {78, "ENOSYS", "function not implemented"},
++ {79, "EFTYPE", "inappropriate file type or format"},
++ {80, "EAUTH", "authentication error"},
++ {81, "ENEEDAUTH", "need authenticator"},
++ {82, "EIDRM", "identifier removed"},
++ {83, "ENOMSG", "no message of desired type"},
++ {84, "EOVERFLOW", "value too large to be stored in data type"},
++ {85, "EILSEQ", "illegal byte sequence"},
++ {86, "ENOTSUP", "not supported"},
++ {87, "ECANCELED", "operation Canceled"},
++ {88, "EBADMSG", "bad or Corrupt message"},
++ {89, "ENODATA", "no message available"},
++ {90, "ENOSR", "no STREAM resources"},
++ {91, "ENOSTR", "not a STREAM"},
++ {92, "ETIME", "STREAM ioctl timeout"},
++ {93, "ENOATTR", "attribute not found"},
++ {94, "EMULTIHOP", "multihop attempted"},
++ {95, "ENOLINK", "link has been severed"},
++ {96, "ELAST", "protocol error"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/BPT trap",
+- 6: "abort trap",
+- 7: "EMT trap",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "bus error",
+- 11: "segmentation fault",
+- 12: "bad system call",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "urgent I/O condition",
+- 17: "stopped (signal)",
+- 18: "stopped",
+- 19: "continued",
+- 20: "child exited",
+- 21: "stopped (tty input)",
+- 22: "stopped (tty output)",
+- 23: "I/O possible",
+- 24: "cputime limit exceeded",
+- 25: "filesize limit exceeded",
+- 26: "virtual timer expired",
+- 27: "profiling timer expired",
+- 28: "window size changes",
+- 29: "information request",
+- 30: "user defined signal 1",
+- 31: "user defined signal 2",
+- 32: "power fail/restart",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/BPT trap"},
++ {6, "SIGIOT", "abort trap"},
++ {7, "SIGEMT", "EMT trap"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGBUS", "bus error"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGSYS", "bad system call"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGURG", "urgent I/O condition"},
++ {17, "SIGSTOP", "stopped (signal)"},
++ {18, "SIGTSTP", "stopped"},
++ {19, "SIGCONT", "continued"},
++ {20, "SIGCHLD", "child exited"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGIO", "I/O possible"},
++ {24, "SIGXCPU", "cputime limit exceeded"},
++ {25, "SIGXFSZ", "filesize limit exceeded"},
++ {26, "SIGVTALRM", "virtual timer expired"},
++ {27, "SIGPROF", "profiling timer expired"},
++ {28, "SIGWINCH", "window size changes"},
++ {29, "SIGINFO", "information request"},
++ {30, "SIGUSR1", "user defined signal 1"},
++ {31, "SIGUSR2", "user defined signal 2"},
++ {32, "SIGPWR", "power fail/restart"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go
+similarity index 89%
+copy from vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go
+copy to vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go
+index 4994437b..f1c146a7 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go
+@@ -1,9 +1,9 @@
+ // mkerrors.sh -m64
+-// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+-// +build amd64,netbsd
++// +build arm64,netbsd
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+
+ package unix
+@@ -159,6 +159,7 @@ const (
+ CLONE_VFORK = 0x4000
+ CLONE_VM = 0x100
+ CREAD = 0x800
++ CRTSCTS = 0x10000
+ CS5 = 0x0
+ CS6 = 0x100
+ CS7 = 0x200
+@@ -169,6 +170,8 @@ const (
+ CSTOP = 0x13
+ CSTOPB = 0x400
+ CSUSP = 0x1a
++ CTL_HW = 0x6
++ CTL_KERN = 0x1
+ CTL_MAXNAME = 0xc
+ CTL_NET = 0x4
+ CTL_QUERY = -0x2
+@@ -537,6 +540,10 @@ const (
+ EV_ONESHOT = 0x10
+ EV_SYSFLAGS = 0xf000
+ EXTA = 0x4b00
++ EXTATTR_CMD_START = 0x1
++ EXTATTR_CMD_STOP = 0x2
++ EXTATTR_NAMESPACE_SYSTEM = 0x2
++ EXTATTR_NAMESPACE_USER = 0x1
+ EXTB = 0x9600
+ EXTPROC = 0x800
+ FD_CLOEXEC = 0x1
+@@ -571,6 +578,7 @@ const (
+ F_UNLCK = 0x2
+ F_WRLCK = 0x3
+ HUPCL = 0x4000
++ HW_MACHINE = 0x1
+ ICANON = 0x100
+ ICMP6_FILTER = 0x12
+ ICRNL = 0x100
+@@ -960,6 +968,10 @@ const (
+ IXANY = 0x800
+ IXOFF = 0x400
+ IXON = 0x200
++ KERN_HOSTNAME = 0xa
++ KERN_OSRELEASE = 0x2
++ KERN_OSTYPE = 0x1
++ KERN_VERSION = 0x4
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+ LOCK_SH = 0x1
+@@ -998,6 +1010,43 @@ const (
+ MAP_WIRED = 0x800
+ MCL_CURRENT = 0x1
+ MCL_FUTURE = 0x2
++ MNT_ASYNC = 0x40
++ MNT_BASIC_FLAGS = 0xe782807f
++ MNT_DEFEXPORTED = 0x200
++ MNT_DISCARD = 0x800000
++ MNT_EXKERB = 0x800
++ MNT_EXNORESPORT = 0x8000000
++ MNT_EXPORTANON = 0x400
++ MNT_EXPORTED = 0x100
++ MNT_EXPUBLIC = 0x10000000
++ MNT_EXRDONLY = 0x80
++ MNT_EXTATTR = 0x1000000
++ MNT_FORCE = 0x80000
++ MNT_GETARGS = 0x400000
++ MNT_IGNORE = 0x100000
++ MNT_LAZY = 0x3
++ MNT_LOCAL = 0x1000
++ MNT_LOG = 0x2000000
++ MNT_NOATIME = 0x4000000
++ MNT_NOCOREDUMP = 0x8000
++ MNT_NODEV = 0x10
++ MNT_NODEVMTIME = 0x40000000
++ MNT_NOEXEC = 0x4
++ MNT_NOSUID = 0x8
++ MNT_NOWAIT = 0x2
++ MNT_OP_FLAGS = 0x4d0000
++ MNT_QUOTA = 0x2000
++ MNT_RDONLY = 0x1
++ MNT_RELATIME = 0x20000
++ MNT_RELOAD = 0x40000
++ MNT_ROOTFS = 0x4000
++ MNT_SOFTDEP = 0x80000000
++ MNT_SYMPERM = 0x20000000
++ MNT_SYNCHRONOUS = 0x2
++ MNT_UNION = 0x20
++ MNT_UPDATE = 0x10000
++ MNT_VISFLAGMASK = 0xff90ffff
++ MNT_WAIT = 0x1
+ MSG_BCAST = 0x100
+ MSG_CMSG_CLOEXEC = 0x800
+ MSG_CONTROLMBUF = 0x2000000
+@@ -1026,6 +1075,7 @@ const (
+ NET_RT_MAXID = 0x6
+ NET_RT_OIFLIST = 0x4
+ NET_RT_OOIFLIST = 0x3
++ NFDBITS = 0x20
+ NOFLSH = 0x80000000
+ NOTE_ATTRIB = 0x8
+ NOTE_CHILD = 0x4
+@@ -1091,7 +1141,10 @@ const (
+ RLIMIT_CPU = 0x0
+ RLIMIT_DATA = 0x2
+ RLIMIT_FSIZE = 0x1
++ RLIMIT_MEMLOCK = 0x6
+ RLIMIT_NOFILE = 0x8
++ RLIMIT_NPROC = 0x7
++ RLIMIT_RSS = 0x5
+ RLIMIT_STACK = 0x3
+ RLIM_INFINITY = 0x7fffffffffffffff
+ RTAX_AUTHOR = 0x6
+@@ -1566,137 +1619,145 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "device not configured",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource deadlock avoided",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "device busy",
+- 17: "file exists",
+- 18: "cross-device link",
+- 19: "operation not supported by device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "result too large or too small",
+- 35: "resource temporarily unavailable",
+- 36: "operation now in progress",
+- 37: "operation already in progress",
+- 38: "socket operation on non-socket",
+- 39: "destination address required",
+- 40: "message too long",
+- 41: "protocol wrong type for socket",
+- 42: "protocol option not available",
+- 43: "protocol not supported",
+- 44: "socket type not supported",
+- 45: "operation not supported",
+- 46: "protocol family not supported",
+- 47: "address family not supported by protocol family",
+- 48: "address already in use",
+- 49: "can't assign requested address",
+- 50: "network is down",
+- 51: "network is unreachable",
+- 52: "network dropped connection on reset",
+- 53: "software caused connection abort",
+- 54: "connection reset by peer",
+- 55: "no buffer space available",
+- 56: "socket is already connected",
+- 57: "socket is not connected",
+- 58: "can't send after socket shutdown",
+- 59: "too many references: can't splice",
+- 60: "connection timed out",
+- 61: "connection refused",
+- 62: "too many levels of symbolic links",
+- 63: "file name too long",
+- 64: "host is down",
+- 65: "no route to host",
+- 66: "directory not empty",
+- 67: "too many processes",
+- 68: "too many users",
+- 69: "disc quota exceeded",
+- 70: "stale NFS file handle",
+- 71: "too many levels of remote in path",
+- 72: "RPC struct is bad",
+- 73: "RPC version wrong",
+- 74: "RPC prog. not avail",
+- 75: "program version wrong",
+- 76: "bad procedure for program",
+- 77: "no locks available",
+- 78: "function not implemented",
+- 79: "inappropriate file type or format",
+- 80: "authentication error",
+- 81: "need authenticator",
+- 82: "identifier removed",
+- 83: "no message of desired type",
+- 84: "value too large to be stored in data type",
+- 85: "illegal byte sequence",
+- 86: "not supported",
+- 87: "operation Canceled",
+- 88: "bad or Corrupt message",
+- 89: "no message available",
+- 90: "no STREAM resources",
+- 91: "not a STREAM",
+- 92: "STREAM ioctl timeout",
+- 93: "attribute not found",
+- 94: "multihop attempted",
+- 95: "link has been severed",
+- 96: "protocol error",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "device not configured"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EDEADLK", "resource deadlock avoided"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "cross-device link"},
++ {19, "ENODEV", "operation not supported by device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "result too large or too small"},
++ {35, "EAGAIN", "resource temporarily unavailable"},
++ {36, "EINPROGRESS", "operation now in progress"},
++ {37, "EALREADY", "operation already in progress"},
++ {38, "ENOTSOCK", "socket operation on non-socket"},
++ {39, "EDESTADDRREQ", "destination address required"},
++ {40, "EMSGSIZE", "message too long"},
++ {41, "EPROTOTYPE", "protocol wrong type for socket"},
++ {42, "ENOPROTOOPT", "protocol option not available"},
++ {43, "EPROTONOSUPPORT", "protocol not supported"},
++ {44, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {45, "EOPNOTSUPP", "operation not supported"},
++ {46, "EPFNOSUPPORT", "protocol family not supported"},
++ {47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++ {48, "EADDRINUSE", "address already in use"},
++ {49, "EADDRNOTAVAIL", "can't assign requested address"},
++ {50, "ENETDOWN", "network is down"},
++ {51, "ENETUNREACH", "network is unreachable"},
++ {52, "ENETRESET", "network dropped connection on reset"},
++ {53, "ECONNABORTED", "software caused connection abort"},
++ {54, "ECONNRESET", "connection reset by peer"},
++ {55, "ENOBUFS", "no buffer space available"},
++ {56, "EISCONN", "socket is already connected"},
++ {57, "ENOTCONN", "socket is not connected"},
++ {58, "ESHUTDOWN", "can't send after socket shutdown"},
++ {59, "ETOOMANYREFS", "too many references: can't splice"},
++ {60, "ETIMEDOUT", "connection timed out"},
++ {61, "ECONNREFUSED", "connection refused"},
++ {62, "ELOOP", "too many levels of symbolic links"},
++ {63, "ENAMETOOLONG", "file name too long"},
++ {64, "EHOSTDOWN", "host is down"},
++ {65, "EHOSTUNREACH", "no route to host"},
++ {66, "ENOTEMPTY", "directory not empty"},
++ {67, "EPROCLIM", "too many processes"},
++ {68, "EUSERS", "too many users"},
++ {69, "EDQUOT", "disc quota exceeded"},
++ {70, "ESTALE", "stale NFS file handle"},
++ {71, "EREMOTE", "too many levels of remote in path"},
++ {72, "EBADRPC", "RPC struct is bad"},
++ {73, "ERPCMISMATCH", "RPC version wrong"},
++ {74, "EPROGUNAVAIL", "RPC prog. not avail"},
++ {75, "EPROGMISMATCH", "program version wrong"},
++ {76, "EPROCUNAVAIL", "bad procedure for program"},
++ {77, "ENOLCK", "no locks available"},
++ {78, "ENOSYS", "function not implemented"},
++ {79, "EFTYPE", "inappropriate file type or format"},
++ {80, "EAUTH", "authentication error"},
++ {81, "ENEEDAUTH", "need authenticator"},
++ {82, "EIDRM", "identifier removed"},
++ {83, "ENOMSG", "no message of desired type"},
++ {84, "EOVERFLOW", "value too large to be stored in data type"},
++ {85, "EILSEQ", "illegal byte sequence"},
++ {86, "ENOTSUP", "not supported"},
++ {87, "ECANCELED", "operation Canceled"},
++ {88, "EBADMSG", "bad or Corrupt message"},
++ {89, "ENODATA", "no message available"},
++ {90, "ENOSR", "no STREAM resources"},
++ {91, "ENOSTR", "not a STREAM"},
++ {92, "ETIME", "STREAM ioctl timeout"},
++ {93, "ENOATTR", "attribute not found"},
++ {94, "EMULTIHOP", "multihop attempted"},
++ {95, "ENOLINK", "link has been severed"},
++ {96, "ELAST", "protocol error"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/BPT trap",
+- 6: "abort trap",
+- 7: "EMT trap",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "bus error",
+- 11: "segmentation fault",
+- 12: "bad system call",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "urgent I/O condition",
+- 17: "stopped (signal)",
+- 18: "stopped",
+- 19: "continued",
+- 20: "child exited",
+- 21: "stopped (tty input)",
+- 22: "stopped (tty output)",
+- 23: "I/O possible",
+- 24: "cputime limit exceeded",
+- 25: "filesize limit exceeded",
+- 26: "virtual timer expired",
+- 27: "profiling timer expired",
+- 28: "window size changes",
+- 29: "information request",
+- 30: "user defined signal 1",
+- 31: "user defined signal 2",
+- 32: "power fail/restart",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/BPT trap"},
++ {6, "SIGIOT", "abort trap"},
++ {7, "SIGEMT", "EMT trap"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGBUS", "bus error"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGSYS", "bad system call"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGURG", "urgent I/O condition"},
++ {17, "SIGSTOP", "stopped (signal)"},
++ {18, "SIGTSTP", "stopped"},
++ {19, "SIGCONT", "continued"},
++ {20, "SIGCHLD", "child exited"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGIO", "I/O possible"},
++ {24, "SIGXCPU", "cputime limit exceeded"},
++ {25, "SIGXFSZ", "filesize limit exceeded"},
++ {26, "SIGVTALRM", "virtual timer expired"},
++ {27, "SIGPROF", "profiling timer expired"},
++ {28, "SIGWINCH", "window size changes"},
++ {29, "SIGINFO", "information request"},
++ {30, "SIGUSR1", "user defined signal 1"},
++ {31, "SIGUSR2", "user defined signal 2"},
++ {32, "SIGPWR", "power fail/restart"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go
+index 3322e998..5402bd55 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go
+@@ -1,9 +1,9 @@
+ // mkerrors.sh -m32
+-// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build 386,openbsd
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m32 _const.go
+
+ package unix
+@@ -147,6 +147,7 @@ const (
+ CFLUSH = 0xf
+ CLOCAL = 0x8000
+ CREAD = 0x800
++ CRTSCTS = 0x10000
+ CS5 = 0x0
+ CS6 = 0x100
+ CS7 = 0x200
+@@ -157,6 +158,8 @@ const (
+ CSTOP = 0x13
+ CSTOPB = 0x400
+ CSUSP = 0x1a
++ CTL_HW = 0x6
++ CTL_KERN = 0x1
+ CTL_MAXNAME = 0xc
+ CTL_NET = 0x4
+ DIOCOSFPFLUSH = 0x2000444e
+@@ -442,6 +445,7 @@ const (
+ F_UNLCK = 0x2
+ F_WRLCK = 0x3
+ HUPCL = 0x4000
++ HW_MACHINE = 0x1
+ ICANON = 0x100
+ ICMP6_FILTER = 0x12
+ ICRNL = 0x100
+@@ -860,6 +864,10 @@ const (
+ IXANY = 0x800
+ IXOFF = 0x400
+ IXON = 0x200
++ KERN_HOSTNAME = 0xa
++ KERN_OSRELEASE = 0x2
++ KERN_OSTYPE = 0x1
++ KERN_VERSION = 0x4
+ LCNT_OVERLOAD_FLUSH = 0x6
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+@@ -873,14 +881,15 @@ const (
+ MADV_SPACEAVAIL = 0x5
+ MADV_WILLNEED = 0x3
+ MAP_ANON = 0x1000
+- MAP_COPY = 0x4
++ MAP_ANONYMOUS = 0x1000
++ MAP_CONCEAL = 0x8000
++ MAP_COPY = 0x2
+ MAP_FILE = 0x0
+ MAP_FIXED = 0x10
+- MAP_FLAGMASK = 0x1ff7
+- MAP_HASSEMAPHORE = 0x200
+- MAP_INHERIT = 0x80
++ MAP_FLAGMASK = 0xfff7
++ MAP_HASSEMAPHORE = 0x0
++ MAP_INHERIT = 0x0
+ MAP_INHERIT_COPY = 0x1
+- MAP_INHERIT_DONATE_COPY = 0x3
+ MAP_INHERIT_NONE = 0x2
+ MAP_INHERIT_SHARE = 0x0
+ MAP_NOEXTEND = 0x100
+@@ -888,9 +897,36 @@ const (
+ MAP_PRIVATE = 0x2
+ MAP_RENAME = 0x20
+ MAP_SHARED = 0x1
+- MAP_TRYFIXED = 0x400
++ MAP_STACK = 0x4000
++ MAP_TRYFIXED = 0x0
+ MCL_CURRENT = 0x1
+ MCL_FUTURE = 0x2
++ MNT_ASYNC = 0x40
++ MNT_DEFEXPORTED = 0x200
++ MNT_DELEXPORT = 0x20000
++ MNT_DOOMED = 0x8000000
++ MNT_EXPORTANON = 0x400
++ MNT_EXPORTED = 0x100
++ MNT_EXRDONLY = 0x80
++ MNT_FORCE = 0x80000
++ MNT_LAZY = 0x3
++ MNT_LOCAL = 0x1000
++ MNT_NOATIME = 0x8000
++ MNT_NODEV = 0x10
++ MNT_NOEXEC = 0x4
++ MNT_NOSUID = 0x8
++ MNT_NOWAIT = 0x2
++ MNT_QUOTA = 0x2000
++ MNT_RDONLY = 0x1
++ MNT_RELOAD = 0x40000
++ MNT_ROOTFS = 0x4000
++ MNT_SOFTDEP = 0x4000000
++ MNT_SYNCHRONOUS = 0x2
++ MNT_UPDATE = 0x10000
++ MNT_VISFLAGMASK = 0x400ffff
++ MNT_WAIT = 0x1
++ MNT_WANTRDWR = 0x2000000
++ MNT_WXALLOWED = 0x800
+ MSG_BCAST = 0x100
+ MSG_CTRUNC = 0x20
+ MSG_DONTROUTE = 0x4
+@@ -912,6 +948,7 @@ const (
+ NET_RT_MAXID = 0x6
+ NET_RT_STATS = 0x4
+ NET_RT_TABLE = 0x5
++ NFDBITS = 0x20
+ NOFLSH = 0x80000000
+ NOTE_ATTRIB = 0x8
+ NOTE_CHILD = 0x4
+@@ -1210,6 +1247,34 @@ const (
+ SO_TIMESTAMP = 0x800
+ SO_TYPE = 0x1008
+ SO_USELOOPBACK = 0x40
++ S_BLKSIZE = 0x200
++ S_IEXEC = 0x40
++ S_IFBLK = 0x6000
++ S_IFCHR = 0x2000
++ S_IFDIR = 0x4000
++ S_IFIFO = 0x1000
++ S_IFLNK = 0xa000
++ S_IFMT = 0xf000
++ S_IFREG = 0x8000
++ S_IFSOCK = 0xc000
++ S_IREAD = 0x100
++ S_IRGRP = 0x20
++ S_IROTH = 0x4
++ S_IRUSR = 0x100
++ S_IRWXG = 0x38
++ S_IRWXO = 0x7
++ S_IRWXU = 0x1c0
++ S_ISGID = 0x400
++ S_ISTXT = 0x200
++ S_ISUID = 0x800
++ S_ISVTX = 0x200
++ S_IWGRP = 0x10
++ S_IWOTH = 0x2
++ S_IWRITE = 0x80
++ S_IWUSR = 0x80
++ S_IXGRP = 0x8
++ S_IXOTH = 0x1
++ S_IXUSR = 0x40
+ TCIFLUSH = 0x1
+ TCIOFLUSH = 0x3
+ TCOFLUSH = 0x2
+@@ -1453,132 +1518,140 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "device not configured",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource deadlock avoided",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "device busy",
+- 17: "file exists",
+- 18: "cross-device link",
+- 19: "operation not supported by device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "result too large",
+- 35: "resource temporarily unavailable",
+- 36: "operation now in progress",
+- 37: "operation already in progress",
+- 38: "socket operation on non-socket",
+- 39: "destination address required",
+- 40: "message too long",
+- 41: "protocol wrong type for socket",
+- 42: "protocol not available",
+- 43: "protocol not supported",
+- 44: "socket type not supported",
+- 45: "operation not supported",
+- 46: "protocol family not supported",
+- 47: "address family not supported by protocol family",
+- 48: "address already in use",
+- 49: "can't assign requested address",
+- 50: "network is down",
+- 51: "network is unreachable",
+- 52: "network dropped connection on reset",
+- 53: "software caused connection abort",
+- 54: "connection reset by peer",
+- 55: "no buffer space available",
+- 56: "socket is already connected",
+- 57: "socket is not connected",
+- 58: "can't send after socket shutdown",
+- 59: "too many references: can't splice",
+- 60: "connection timed out",
+- 61: "connection refused",
+- 62: "too many levels of symbolic links",
+- 63: "file name too long",
+- 64: "host is down",
+- 65: "no route to host",
+- 66: "directory not empty",
+- 67: "too many processes",
+- 68: "too many users",
+- 69: "disc quota exceeded",
+- 70: "stale NFS file handle",
+- 71: "too many levels of remote in path",
+- 72: "RPC struct is bad",
+- 73: "RPC version wrong",
+- 74: "RPC prog. not avail",
+- 75: "program version wrong",
+- 76: "bad procedure for program",
+- 77: "no locks available",
+- 78: "function not implemented",
+- 79: "inappropriate file type or format",
+- 80: "authentication error",
+- 81: "need authenticator",
+- 82: "IPsec processing failure",
+- 83: "attribute not found",
+- 84: "illegal byte sequence",
+- 85: "no medium found",
+- 86: "wrong medium type",
+- 87: "value too large to be stored in data type",
+- 88: "operation canceled",
+- 89: "identifier removed",
+- 90: "no message of desired type",
+- 91: "not supported",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "device not configured"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EDEADLK", "resource deadlock avoided"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "cross-device link"},
++ {19, "ENODEV", "operation not supported by device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "result too large"},
++ {35, "EWOULDBLOCK", "resource temporarily unavailable"},
++ {36, "EINPROGRESS", "operation now in progress"},
++ {37, "EALREADY", "operation already in progress"},
++ {38, "ENOTSOCK", "socket operation on non-socket"},
++ {39, "EDESTADDRREQ", "destination address required"},
++ {40, "EMSGSIZE", "message too long"},
++ {41, "EPROTOTYPE", "protocol wrong type for socket"},
++ {42, "ENOPROTOOPT", "protocol not available"},
++ {43, "EPROTONOSUPPORT", "protocol not supported"},
++ {44, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {45, "EOPNOTSUPP", "operation not supported"},
++ {46, "EPFNOSUPPORT", "protocol family not supported"},
++ {47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++ {48, "EADDRINUSE", "address already in use"},
++ {49, "EADDRNOTAVAIL", "can't assign requested address"},
++ {50, "ENETDOWN", "network is down"},
++ {51, "ENETUNREACH", "network is unreachable"},
++ {52, "ENETRESET", "network dropped connection on reset"},
++ {53, "ECONNABORTED", "software caused connection abort"},
++ {54, "ECONNRESET", "connection reset by peer"},
++ {55, "ENOBUFS", "no buffer space available"},
++ {56, "EISCONN", "socket is already connected"},
++ {57, "ENOTCONN", "socket is not connected"},
++ {58, "ESHUTDOWN", "can't send after socket shutdown"},
++ {59, "ETOOMANYREFS", "too many references: can't splice"},
++ {60, "ETIMEDOUT", "operation timed out"},
++ {61, "ECONNREFUSED", "connection refused"},
++ {62, "ELOOP", "too many levels of symbolic links"},
++ {63, "ENAMETOOLONG", "file name too long"},
++ {64, "EHOSTDOWN", "host is down"},
++ {65, "EHOSTUNREACH", "no route to host"},
++ {66, "ENOTEMPTY", "directory not empty"},
++ {67, "EPROCLIM", "too many processes"},
++ {68, "EUSERS", "too many users"},
++ {69, "EDQUOT", "disk quota exceeded"},
++ {70, "ESTALE", "stale NFS file handle"},
++ {71, "EREMOTE", "too many levels of remote in path"},
++ {72, "EBADRPC", "RPC struct is bad"},
++ {73, "ERPCMISMATCH", "RPC version wrong"},
++ {74, "EPROGUNAVAIL", "RPC program not available"},
++ {75, "EPROGMISMATCH", "program version wrong"},
++ {76, "EPROCUNAVAIL", "bad procedure for program"},
++ {77, "ENOLCK", "no locks available"},
++ {78, "ENOSYS", "function not implemented"},
++ {79, "EFTYPE", "inappropriate file type or format"},
++ {80, "EAUTH", "authentication error"},
++ {81, "ENEEDAUTH", "need authenticator"},
++ {82, "EIPSEC", "IPsec processing failure"},
++ {83, "ENOATTR", "attribute not found"},
++ {84, "EILSEQ", "illegal byte sequence"},
++ {85, "ENOMEDIUM", "no medium found"},
++ {86, "EMEDIUMTYPE", "wrong medium type"},
++ {87, "EOVERFLOW", "value too large to be stored in data type"},
++ {88, "ECANCELED", "operation canceled"},
++ {89, "EIDRM", "identifier removed"},
++ {90, "ENOMSG", "no message of desired type"},
++ {91, "ELAST", "not supported"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/BPT trap",
+- 6: "abort trap",
+- 7: "EMT trap",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "bus error",
+- 11: "segmentation fault",
+- 12: "bad system call",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "urgent I/O condition",
+- 17: "stopped (signal)",
+- 18: "stopped",
+- 19: "continued",
+- 20: "child exited",
+- 21: "stopped (tty input)",
+- 22: "stopped (tty output)",
+- 23: "I/O possible",
+- 24: "cputime limit exceeded",
+- 25: "filesize limit exceeded",
+- 26: "virtual timer expired",
+- 27: "profiling timer expired",
+- 28: "window size changes",
+- 29: "information request",
+- 30: "user defined signal 1",
+- 31: "user defined signal 2",
+- 32: "thread AST",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/BPT trap"},
++ {6, "SIGABRT", "abort trap"},
++ {7, "SIGEMT", "EMT trap"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGBUS", "bus error"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGSYS", "bad system call"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGURG", "urgent I/O condition"},
++ {17, "SIGSTOP", "suspended (signal)"},
++ {18, "SIGTSTP", "suspended"},
++ {19, "SIGCONT", "continued"},
++ {20, "SIGCHLD", "child exited"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGIO", "I/O possible"},
++ {24, "SIGXCPU", "cputime limit exceeded"},
++ {25, "SIGXFSZ", "filesize limit exceeded"},
++ {26, "SIGVTALRM", "virtual timer expired"},
++ {27, "SIGPROF", "profiling timer expired"},
++ {28, "SIGWINCH", "window size changes"},
++ {29, "SIGINFO", "information request"},
++ {30, "SIGUSR1", "user defined signal 1"},
++ {31, "SIGUSR2", "user defined signal 2"},
++ {32, "SIGTHR", "thread AST"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go
+index 1758ecca..ffaf2d2f 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go
+@@ -1,9 +1,9 @@
+ // mkerrors.sh -m64
+-// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build amd64,openbsd
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+
+ package unix
+@@ -45,6 +45,7 @@ const (
+ AF_SNA = 0xb
+ AF_UNIX = 0x1
+ AF_UNSPEC = 0x0
++ ALTWERASE = 0x200
+ ARPHRD_ETHER = 0x1
+ ARPHRD_FRELAY = 0xf
+ ARPHRD_IEEE1394 = 0x18
+@@ -146,7 +147,14 @@ const (
+ BRKINT = 0x2
+ CFLUSH = 0xf
+ CLOCAL = 0x8000
++ CLOCK_BOOTTIME = 0x6
++ CLOCK_MONOTONIC = 0x3
++ CLOCK_PROCESS_CPUTIME_ID = 0x2
++ CLOCK_REALTIME = 0x0
++ CLOCK_THREAD_CPUTIME_ID = 0x4
++ CLOCK_UPTIME = 0x5
+ CREAD = 0x800
++ CRTSCTS = 0x10000
+ CS5 = 0x0
+ CS6 = 0x100
+ CS7 = 0x200
+@@ -157,6 +165,8 @@ const (
+ CSTOP = 0x13
+ CSTOPB = 0x400
+ CSUSP = 0x1a
++ CTL_HW = 0x6
++ CTL_KERN = 0x1
+ CTL_MAXNAME = 0xc
+ CTL_NET = 0x4
+ DIOCOSFPFLUSH = 0x2000444e
+@@ -175,6 +185,7 @@ const (
+ DLT_LOOP = 0xc
+ DLT_MPLS = 0xdb
+ DLT_NULL = 0x0
++ DLT_OPENFLOW = 0x10b
+ DLT_PFLOG = 0x75
+ DLT_PFSYNC = 0x12
+ DLT_PPP = 0x9
+@@ -185,6 +196,23 @@ const (
+ DLT_RAW = 0xe
+ DLT_SLIP = 0x8
+ DLT_SLIP_BSDOS = 0xf
++ DLT_USBPCAP = 0xf9
++ DLT_USER0 = 0x93
++ DLT_USER1 = 0x94
++ DLT_USER10 = 0x9d
++ DLT_USER11 = 0x9e
++ DLT_USER12 = 0x9f
++ DLT_USER13 = 0xa0
++ DLT_USER14 = 0xa1
++ DLT_USER15 = 0xa2
++ DLT_USER2 = 0x95
++ DLT_USER3 = 0x96
++ DLT_USER4 = 0x97
++ DLT_USER5 = 0x98
++ DLT_USER6 = 0x99
++ DLT_USER7 = 0x9a
++ DLT_USER8 = 0x9b
++ DLT_USER9 = 0x9c
+ DT_BLK = 0x6
+ DT_CHR = 0x2
+ DT_DIR = 0x4
+@@ -398,27 +426,38 @@ const (
+ ETHER_CRC_POLY_LE = 0xedb88320
+ ETHER_HDR_LEN = 0xe
+ ETHER_MAX_DIX_LEN = 0x600
++ ETHER_MAX_HARDMTU_LEN = 0xff9b
+ ETHER_MAX_LEN = 0x5ee
+ ETHER_MIN_LEN = 0x40
+ ETHER_TYPE_LEN = 0x2
+ ETHER_VLAN_ENCAP_LEN = 0x4
+ EVFILT_AIO = -0x3
++ EVFILT_DEVICE = -0x8
+ EVFILT_PROC = -0x5
+ EVFILT_READ = -0x1
+ EVFILT_SIGNAL = -0x6
+- EVFILT_SYSCOUNT = 0x7
++ EVFILT_SYSCOUNT = 0x8
+ EVFILT_TIMER = -0x7
+ EVFILT_VNODE = -0x4
+ EVFILT_WRITE = -0x2
++ EVL_ENCAPLEN = 0x4
++ EVL_PRIO_BITS = 0xd
++ EVL_PRIO_MAX = 0x7
++ EVL_VLID_MASK = 0xfff
++ EVL_VLID_MAX = 0xffe
++ EVL_VLID_MIN = 0x1
++ EVL_VLID_NULL = 0x0
+ EV_ADD = 0x1
+ EV_CLEAR = 0x20
+ EV_DELETE = 0x2
+ EV_DISABLE = 0x8
++ EV_DISPATCH = 0x80
+ EV_ENABLE = 0x4
+ EV_EOF = 0x8000
+ EV_ERROR = 0x4000
+ EV_FLAG1 = 0x2000
+ EV_ONESHOT = 0x10
++ EV_RECEIPT = 0x40
+ EV_SYSFLAGS = 0xf000
+ EXTA = 0x4b00
+ EXTB = 0x9600
+@@ -432,6 +471,7 @@ const (
+ F_GETFL = 0x3
+ F_GETLK = 0x7
+ F_GETOWN = 0x5
++ F_ISATTY = 0xb
+ F_OK = 0x0
+ F_RDLCK = 0x1
+ F_SETFD = 0x2
+@@ -442,13 +482,13 @@ const (
+ F_UNLCK = 0x2
+ F_WRLCK = 0x3
+ HUPCL = 0x4000
++ HW_MACHINE = 0x1
+ ICANON = 0x100
+ ICMP6_FILTER = 0x12
+ ICRNL = 0x100
+ IEXTEN = 0x400
+ IFAN_ARRIVAL = 0x0
+ IFAN_DEPARTURE = 0x1
+- IFA_ROUTE = 0x1
+ IFF_ALLMULTI = 0x200
+ IFF_BROADCAST = 0x2
+ IFF_CANTCHANGE = 0x8e52
+@@ -459,12 +499,12 @@ const (
+ IFF_LOOPBACK = 0x8
+ IFF_MULTICAST = 0x8000
+ IFF_NOARP = 0x80
+- IFF_NOTRAILERS = 0x20
+ IFF_OACTIVE = 0x400
+ IFF_POINTOPOINT = 0x10
+ IFF_PROMISC = 0x100
+ IFF_RUNNING = 0x40
+ IFF_SIMPLEX = 0x800
++ IFF_STATICARP = 0x20
+ IFF_UP = 0x1
+ IFNAMSIZ = 0x10
+ IFT_1822 = 0x2
+@@ -593,6 +633,7 @@ const (
+ IFT_LINEGROUP = 0xd2
+ IFT_LOCALTALK = 0x2a
+ IFT_LOOP = 0x18
++ IFT_MBIM = 0xfa
+ IFT_MEDIAMAILOVERIP = 0x8b
+ IFT_MFSIGLINK = 0xa7
+ IFT_MIOX25 = 0x26
+@@ -717,8 +758,6 @@ const (
+ IPPROTO_AH = 0x33
+ IPPROTO_CARP = 0x70
+ IPPROTO_DIVERT = 0x102
+- IPPROTO_DIVERT_INIT = 0x2
+- IPPROTO_DIVERT_RESP = 0x1
+ IPPROTO_DONE = 0x101
+ IPPROTO_DSTOPTS = 0x3c
+ IPPROTO_EGP = 0x8
+@@ -775,6 +814,7 @@ const (
+ IPV6_LEAVE_GROUP = 0xd
+ IPV6_MAXHLIM = 0xff
+ IPV6_MAXPACKET = 0xffff
++ IPV6_MINHOPCOUNT = 0x41
+ IPV6_MMTU = 0x500
+ IPV6_MULTICAST_HOPS = 0xa
+ IPV6_MULTICAST_IF = 0x9
+@@ -814,12 +854,12 @@ const (
+ IP_DEFAULT_MULTICAST_LOOP = 0x1
+ IP_DEFAULT_MULTICAST_TTL = 0x1
+ IP_DF = 0x4000
+- IP_DIVERTFL = 0x1022
+ IP_DROP_MEMBERSHIP = 0xd
+ IP_ESP_NETWORK_LEVEL = 0x16
+ IP_ESP_TRANS_LEVEL = 0x15
+ IP_HDRINCL = 0x2
+ IP_IPCOMP_LEVEL = 0x1d
++ IP_IPDEFTTL = 0x25
+ IP_IPSECFLOWINFO = 0x24
+ IP_IPSEC_LOCAL_AUTH = 0x1b
+ IP_IPSEC_LOCAL_CRED = 0x19
+@@ -853,13 +893,19 @@ const (
+ IP_RETOPTS = 0x8
+ IP_RF = 0x8000
+ IP_RTABLE = 0x1021
++ IP_SENDSRCADDR = 0x7
+ IP_TOS = 0x3
+ IP_TTL = 0x4
+ ISIG = 0x80
+ ISTRIP = 0x20
++ IUCLC = 0x1000
+ IXANY = 0x800
+ IXOFF = 0x400
+ IXON = 0x200
++ KERN_HOSTNAME = 0xa
++ KERN_OSRELEASE = 0x2
++ KERN_OSTYPE = 0x1
++ KERN_VERSION = 0x4
+ LCNT_OVERLOAD_FLUSH = 0x6
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+@@ -873,25 +919,57 @@ const (
+ MADV_SPACEAVAIL = 0x5
+ MADV_WILLNEED = 0x3
+ MAP_ANON = 0x1000
+- MAP_COPY = 0x4
++ MAP_ANONYMOUS = 0x1000
++ MAP_CONCEAL = 0x8000
++ MAP_COPY = 0x2
+ MAP_FILE = 0x0
+ MAP_FIXED = 0x10
+- MAP_FLAGMASK = 0x1ff7
+- MAP_HASSEMAPHORE = 0x200
+- MAP_INHERIT = 0x80
++ MAP_FLAGMASK = 0xfff7
++ MAP_HASSEMAPHORE = 0x0
++ MAP_INHERIT = 0x0
+ MAP_INHERIT_COPY = 0x1
+- MAP_INHERIT_DONATE_COPY = 0x3
+ MAP_INHERIT_NONE = 0x2
+ MAP_INHERIT_SHARE = 0x0
+- MAP_NOEXTEND = 0x100
+- MAP_NORESERVE = 0x40
++ MAP_INHERIT_ZERO = 0x3
++ MAP_NOEXTEND = 0x0
++ MAP_NORESERVE = 0x0
+ MAP_PRIVATE = 0x2
+- MAP_RENAME = 0x20
++ MAP_RENAME = 0x0
+ MAP_SHARED = 0x1
+- MAP_TRYFIXED = 0x400
++ MAP_STACK = 0x4000
++ MAP_TRYFIXED = 0x0
+ MCL_CURRENT = 0x1
+ MCL_FUTURE = 0x2
++ MNT_ASYNC = 0x40
++ MNT_DEFEXPORTED = 0x200
++ MNT_DELEXPORT = 0x20000
++ MNT_DOOMED = 0x8000000
++ MNT_EXPORTANON = 0x400
++ MNT_EXPORTED = 0x100
++ MNT_EXRDONLY = 0x80
++ MNT_FORCE = 0x80000
++ MNT_LAZY = 0x3
++ MNT_LOCAL = 0x1000
++ MNT_NOATIME = 0x8000
++ MNT_NODEV = 0x10
++ MNT_NOEXEC = 0x4
++ MNT_NOPERM = 0x20
++ MNT_NOSUID = 0x8
++ MNT_NOWAIT = 0x2
++ MNT_QUOTA = 0x2000
++ MNT_RDONLY = 0x1
++ MNT_RELOAD = 0x40000
++ MNT_ROOTFS = 0x4000
++ MNT_SOFTDEP = 0x4000000
++ MNT_STALLED = 0x100000
++ MNT_SYNCHRONOUS = 0x2
++ MNT_UPDATE = 0x10000
++ MNT_VISFLAGMASK = 0x400ffff
++ MNT_WAIT = 0x1
++ MNT_WANTRDWR = 0x2000000
++ MNT_WXALLOWED = 0x800
+ MSG_BCAST = 0x100
++ MSG_CMSG_CLOEXEC = 0x800
+ MSG_CTRUNC = 0x20
+ MSG_DONTROUTE = 0x4
+ MSG_DONTWAIT = 0x80
+@@ -909,11 +987,15 @@ const (
+ NET_RT_DUMP = 0x1
+ NET_RT_FLAGS = 0x2
+ NET_RT_IFLIST = 0x3
+- NET_RT_MAXID = 0x6
++ NET_RT_IFNAMES = 0x6
++ NET_RT_MAXID = 0x7
+ NET_RT_STATS = 0x4
+ NET_RT_TABLE = 0x5
++ NFDBITS = 0x20
+ NOFLSH = 0x80000000
++ NOKERNINFO = 0x2000000
+ NOTE_ATTRIB = 0x8
++ NOTE_CHANGE = 0x1
+ NOTE_CHILD = 0x4
+ NOTE_DELETE = 0x1
+ NOTE_EOF = 0x2
+@@ -932,11 +1014,13 @@ const (
+ NOTE_TRUNCATE = 0x80
+ NOTE_WRITE = 0x2
+ OCRNL = 0x10
++ OLCUC = 0x20
+ ONLCR = 0x2
+ ONLRET = 0x80
+ ONOCR = 0x40
+ ONOEOT = 0x8
+ OPOST = 0x1
++ OXTABS = 0x4
+ O_ACCMODE = 0x3
+ O_APPEND = 0x8
+ O_ASYNC = 0x40
+@@ -974,23 +1058,32 @@ const (
+ RLIMIT_CPU = 0x0
+ RLIMIT_DATA = 0x2
+ RLIMIT_FSIZE = 0x1
++ RLIMIT_MEMLOCK = 0x6
+ RLIMIT_NOFILE = 0x8
++ RLIMIT_NPROC = 0x7
++ RLIMIT_RSS = 0x5
+ RLIMIT_STACK = 0x3
+ RLIM_INFINITY = 0x7fffffffffffffff
+ RTAX_AUTHOR = 0x6
++ RTAX_BFD = 0xb
+ RTAX_BRD = 0x7
++ RTAX_DNS = 0xc
+ RTAX_DST = 0x0
+ RTAX_GATEWAY = 0x1
+ RTAX_GENMASK = 0x3
+ RTAX_IFA = 0x5
+ RTAX_IFP = 0x4
+ RTAX_LABEL = 0xa
+- RTAX_MAX = 0xb
++ RTAX_MAX = 0xf
+ RTAX_NETMASK = 0x2
++ RTAX_SEARCH = 0xe
+ RTAX_SRC = 0x8
+ RTAX_SRCMASK = 0x9
++ RTAX_STATIC = 0xd
+ RTA_AUTHOR = 0x40
++ RTA_BFD = 0x800
+ RTA_BRD = 0x80
++ RTA_DNS = 0x1000
+ RTA_DST = 0x1
+ RTA_GATEWAY = 0x2
+ RTA_GENMASK = 0x8
+@@ -998,34 +1091,39 @@ const (
+ RTA_IFP = 0x10
+ RTA_LABEL = 0x400
+ RTA_NETMASK = 0x4
++ RTA_SEARCH = 0x4000
+ RTA_SRC = 0x100
+ RTA_SRCMASK = 0x200
++ RTA_STATIC = 0x2000
+ RTF_ANNOUNCE = 0x4000
++ RTF_BFD = 0x1000000
+ RTF_BLACKHOLE = 0x1000
++ RTF_BROADCAST = 0x400000
++ RTF_CACHED = 0x20000
+ RTF_CLONED = 0x10000
+ RTF_CLONING = 0x100
++ RTF_CONNECTED = 0x800000
+ RTF_DONE = 0x40
+ RTF_DYNAMIC = 0x10
+- RTF_FMASK = 0x10f808
++ RTF_FMASK = 0x110fc08
+ RTF_GATEWAY = 0x2
+ RTF_HOST = 0x4
+ RTF_LLINFO = 0x400
+- RTF_MASK = 0x80
++ RTF_LOCAL = 0x200000
+ RTF_MODIFIED = 0x20
+ RTF_MPATH = 0x40000
+ RTF_MPLS = 0x100000
++ RTF_MULTICAST = 0x200
+ RTF_PERMANENT_ARP = 0x2000
+ RTF_PROTO1 = 0x8000
+ RTF_PROTO2 = 0x4000
+ RTF_PROTO3 = 0x2000
+ RTF_REJECT = 0x8
+- RTF_SOURCE = 0x20000
+ RTF_STATIC = 0x800
+- RTF_TUNNEL = 0x100000
+ RTF_UP = 0x1
+ RTF_USETRAILERS = 0x8000
+- RTF_XRESOLVE = 0x200
+ RTM_ADD = 0x1
++ RTM_BFD = 0x12
+ RTM_CHANGE = 0x3
+ RTM_DELADDR = 0xd
+ RTM_DELETE = 0x2
+@@ -1033,11 +1131,13 @@ const (
+ RTM_GET = 0x4
+ RTM_IFANNOUNCE = 0xf
+ RTM_IFINFO = 0xe
++ RTM_INVALIDATE = 0x11
+ RTM_LOCK = 0x8
+ RTM_LOSING = 0x5
+ RTM_MAXSIZE = 0x800
+ RTM_MISS = 0x7
+ RTM_NEWADDR = 0xc
++ RTM_PROPOSAL = 0x13
+ RTM_REDIRECT = 0x6
+ RTM_RESOLVE = 0xb
+ RTM_RTTUNIT = 0xf4240
+@@ -1050,6 +1150,8 @@ const (
+ RTV_RTTVAR = 0x80
+ RTV_SPIPE = 0x10
+ RTV_SSTHRESH = 0x20
++ RT_TABLEID_BITS = 0x8
++ RT_TABLEID_MASK = 0xff
+ RT_TABLEID_MAX = 0xff
+ RUSAGE_CHILDREN = -0x1
+ RUSAGE_SELF = 0x0
+@@ -1062,55 +1164,55 @@ const (
+ SIOCADDMULTI = 0x80206931
+ SIOCAIFADDR = 0x8040691a
+ SIOCAIFGROUP = 0x80286987
+- SIOCALIFADDR = 0x8218691c
+ SIOCATMARK = 0x40047307
+- SIOCBRDGADD = 0x8058693c
+- SIOCBRDGADDS = 0x80586941
+- SIOCBRDGARL = 0x806e694d
++ SIOCBRDGADD = 0x8060693c
++ SIOCBRDGADDL = 0x80606949
++ SIOCBRDGADDS = 0x80606941
++ SIOCBRDGARL = 0x808c694d
+ SIOCBRDGDADDR = 0x81286947
+- SIOCBRDGDEL = 0x8058693d
+- SIOCBRDGDELS = 0x80586942
+- SIOCBRDGFLUSH = 0x80586948
+- SIOCBRDGFRL = 0x806e694e
+- SIOCBRDGGCACHE = 0xc0146941
+- SIOCBRDGGFD = 0xc0146952
+- SIOCBRDGGHT = 0xc0146951
+- SIOCBRDGGIFFLGS = 0xc058693e
+- SIOCBRDGGMA = 0xc0146953
++ SIOCBRDGDEL = 0x8060693d
++ SIOCBRDGDELS = 0x80606942
++ SIOCBRDGFLUSH = 0x80606948
++ SIOCBRDGFRL = 0x808c694e
++ SIOCBRDGGCACHE = 0xc0186941
++ SIOCBRDGGFD = 0xc0186952
++ SIOCBRDGGHT = 0xc0186951
++ SIOCBRDGGIFFLGS = 0xc060693e
++ SIOCBRDGGMA = 0xc0186953
+ SIOCBRDGGPARAM = 0xc0406958
+- SIOCBRDGGPRI = 0xc0146950
++ SIOCBRDGGPRI = 0xc0186950
+ SIOCBRDGGRL = 0xc030694f
+- SIOCBRDGGSIFS = 0xc058693c
+- SIOCBRDGGTO = 0xc0146946
+- SIOCBRDGIFS = 0xc0586942
++ SIOCBRDGGTO = 0xc0186946
++ SIOCBRDGIFS = 0xc0606942
+ SIOCBRDGRTS = 0xc0206943
+ SIOCBRDGSADDR = 0xc1286944
+- SIOCBRDGSCACHE = 0x80146940
+- SIOCBRDGSFD = 0x80146952
+- SIOCBRDGSHT = 0x80146951
+- SIOCBRDGSIFCOST = 0x80586955
+- SIOCBRDGSIFFLGS = 0x8058693f
+- SIOCBRDGSIFPRIO = 0x80586954
+- SIOCBRDGSMA = 0x80146953
+- SIOCBRDGSPRI = 0x80146950
+- SIOCBRDGSPROTO = 0x8014695a
+- SIOCBRDGSTO = 0x80146945
+- SIOCBRDGSTXHC = 0x80146959
++ SIOCBRDGSCACHE = 0x80186940
++ SIOCBRDGSFD = 0x80186952
++ SIOCBRDGSHT = 0x80186951
++ SIOCBRDGSIFCOST = 0x80606955
++ SIOCBRDGSIFFLGS = 0x8060693f
++ SIOCBRDGSIFPRIO = 0x80606954
++ SIOCBRDGSIFPROT = 0x8060694a
++ SIOCBRDGSMA = 0x80186953
++ SIOCBRDGSPRI = 0x80186950
++ SIOCBRDGSPROTO = 0x8018695a
++ SIOCBRDGSTO = 0x80186945
++ SIOCBRDGSTXHC = 0x80186959
+ SIOCDELMULTI = 0x80206932
+ SIOCDIFADDR = 0x80206919
+ SIOCDIFGROUP = 0x80286989
++ SIOCDIFPARENT = 0x802069b4
+ SIOCDIFPHYADDR = 0x80206949
+- SIOCDLIFADDR = 0x8218691e
++ SIOCDVNETID = 0x802069af
+ SIOCGETKALIVE = 0xc01869a4
+ SIOCGETLABEL = 0x8020699a
++ SIOCGETMPWCFG = 0xc02069ae
+ SIOCGETPFLOW = 0xc02069fe
+ SIOCGETPFSYNC = 0xc02069f8
+ SIOCGETSGCNT = 0xc0207534
+ SIOCGETVIFCNT = 0xc0287533
+ SIOCGETVLAN = 0xc0206990
+- SIOCGHIWAT = 0x40047301
+ SIOCGIFADDR = 0xc0206921
+- SIOCGIFASYNCMAP = 0xc020697c
+ SIOCGIFBRDADDR = 0xc0206923
+ SIOCGIFCONF = 0xc0106924
+ SIOCGIFDATA = 0xc020691b
+@@ -1122,37 +1224,41 @@ const (
+ SIOCGIFGMEMB = 0xc028698a
+ SIOCGIFGROUP = 0xc0286988
+ SIOCGIFHARDMTU = 0xc02069a5
+- SIOCGIFMEDIA = 0xc0306936
++ SIOCGIFLLPRIO = 0xc02069b6
++ SIOCGIFMEDIA = 0xc0406938
+ SIOCGIFMETRIC = 0xc0206917
+ SIOCGIFMTU = 0xc020697e
+ SIOCGIFNETMASK = 0xc0206925
+- SIOCGIFPDSTADDR = 0xc0206948
++ SIOCGIFPAIR = 0xc02069b1
++ SIOCGIFPARENT = 0xc02069b3
+ SIOCGIFPRIORITY = 0xc020699c
+- SIOCGIFPSRCADDR = 0xc0206947
+ SIOCGIFRDOMAIN = 0xc02069a0
+ SIOCGIFRTLABEL = 0xc0206983
+- SIOCGIFTIMESLOT = 0xc0206986
++ SIOCGIFRXR = 0x802069aa
+ SIOCGIFXFLAGS = 0xc020699e
+- SIOCGLIFADDR = 0xc218691d
+ SIOCGLIFPHYADDR = 0xc218694b
++ SIOCGLIFPHYDF = 0xc02069c2
+ SIOCGLIFPHYRTABLE = 0xc02069a2
+ SIOCGLIFPHYTTL = 0xc02069a9
+- SIOCGLOWAT = 0x40047303
+ SIOCGPGRP = 0x40047309
+ SIOCGSPPPPARAMS = 0xc0206994
++ SIOCGUMBINFO = 0xc02069be
++ SIOCGUMBPARAM = 0xc02069c0
+ SIOCGVH = 0xc02069f6
++ SIOCGVNETFLOWID = 0xc02069c4
+ SIOCGVNETID = 0xc02069a7
++ SIOCIFAFATTACH = 0x801169ab
++ SIOCIFAFDETACH = 0x801169ac
+ SIOCIFCREATE = 0x8020697a
+ SIOCIFDESTROY = 0x80206979
+ SIOCIFGCLONERS = 0xc0106978
+ SIOCSETKALIVE = 0x801869a3
+ SIOCSETLABEL = 0x80206999
++ SIOCSETMPWCFG = 0x802069ad
+ SIOCSETPFLOW = 0x802069fd
+ SIOCSETPFSYNC = 0x802069f7
+ SIOCSETVLAN = 0x8020698f
+- SIOCSHIWAT = 0x80047300
+ SIOCSIFADDR = 0x8020690c
+- SIOCSIFASYNCMAP = 0x8020697d
+ SIOCSIFBRDADDR = 0x80206913
+ SIOCSIFDESCR = 0x80206980
+ SIOCSIFDSTADDR = 0x8020690e
+@@ -1160,25 +1266,36 @@ const (
+ SIOCSIFGATTR = 0x8028698c
+ SIOCSIFGENERIC = 0x80206939
+ SIOCSIFLLADDR = 0x8020691f
+- SIOCSIFMEDIA = 0xc0206935
++ SIOCSIFLLPRIO = 0x802069b5
++ SIOCSIFMEDIA = 0xc0206937
+ SIOCSIFMETRIC = 0x80206918
+ SIOCSIFMTU = 0x8020697f
+ SIOCSIFNETMASK = 0x80206916
+- SIOCSIFPHYADDR = 0x80406946
++ SIOCSIFPAIR = 0x802069b0
++ SIOCSIFPARENT = 0x802069b2
+ SIOCSIFPRIORITY = 0x8020699b
+ SIOCSIFRDOMAIN = 0x8020699f
+ SIOCSIFRTLABEL = 0x80206982
+- SIOCSIFTIMESLOT = 0x80206985
+ SIOCSIFXFLAGS = 0x8020699d
+ SIOCSLIFPHYADDR = 0x8218694a
++ SIOCSLIFPHYDF = 0x802069c1
+ SIOCSLIFPHYRTABLE = 0x802069a1
+ SIOCSLIFPHYTTL = 0x802069a8
+- SIOCSLOWAT = 0x80047302
+ SIOCSPGRP = 0x80047308
+ SIOCSSPPPPARAMS = 0x80206993
++ SIOCSUMBPARAM = 0x802069bf
+ SIOCSVH = 0xc02069f5
++ SIOCSVNETFLOWID = 0x802069c3
+ SIOCSVNETID = 0x802069a6
++ SIOCSWGDPID = 0xc018695b
++ SIOCSWGMAXFLOW = 0xc0186960
++ SIOCSWGMAXGROUP = 0xc018695d
++ SIOCSWSDPID = 0x8018695c
++ SIOCSWSPORTNO = 0xc060695f
++ SOCK_CLOEXEC = 0x8000
+ SOCK_DGRAM = 0x2
++ SOCK_DNS = 0x1000
++ SOCK_NONBLOCK = 0x4000
+ SOCK_RAW = 0x3
+ SOCK_RDM = 0x4
+ SOCK_SEQPACKET = 0x5
+@@ -1209,9 +1326,42 @@ const (
+ SO_TIMESTAMP = 0x800
+ SO_TYPE = 0x1008
+ SO_USELOOPBACK = 0x40
++ SO_ZEROIZE = 0x2000
++ S_BLKSIZE = 0x200
++ S_IEXEC = 0x40
++ S_IFBLK = 0x6000
++ S_IFCHR = 0x2000
++ S_IFDIR = 0x4000
++ S_IFIFO = 0x1000
++ S_IFLNK = 0xa000
++ S_IFMT = 0xf000
++ S_IFREG = 0x8000
++ S_IFSOCK = 0xc000
++ S_IREAD = 0x100
++ S_IRGRP = 0x20
++ S_IROTH = 0x4
++ S_IRUSR = 0x100
++ S_IRWXG = 0x38
++ S_IRWXO = 0x7
++ S_IRWXU = 0x1c0
++ S_ISGID = 0x400
++ S_ISTXT = 0x200
++ S_ISUID = 0x800
++ S_ISVTX = 0x200
++ S_IWGRP = 0x10
++ S_IWOTH = 0x2
++ S_IWRITE = 0x80
++ S_IWUSR = 0x80
++ S_IXGRP = 0x8
++ S_IXOTH = 0x1
++ S_IXUSR = 0x40
+ TCIFLUSH = 0x1
++ TCIOFF = 0x3
+ TCIOFLUSH = 0x3
++ TCION = 0x4
+ TCOFLUSH = 0x2
++ TCOOFF = 0x1
++ TCOON = 0x2
+ TCP_MAXBURST = 0x4
+ TCP_MAXSEG = 0x2
+ TCP_MAXWIN = 0xffff
+@@ -1221,11 +1371,12 @@ const (
+ TCP_MSS = 0x200
+ TCP_NODELAY = 0x1
+ TCP_NOPUSH = 0x10
+- TCP_NSTATES = 0xb
+ TCP_SACK_ENABLE = 0x8
+ TCSAFLUSH = 0x2
+ TIOCCBRK = 0x2000747a
+ TIOCCDTR = 0x20007478
++ TIOCCHKVERAUTH = 0x2000741e
++ TIOCCLRVERAUTH = 0x2000741d
+ TIOCCONS = 0x80047462
+ TIOCDRAIN = 0x2000745e
+ TIOCEXCL = 0x2000740d
+@@ -1280,17 +1431,22 @@ const (
+ TIOCSETAF = 0x802c7416
+ TIOCSETAW = 0x802c7415
+ TIOCSETD = 0x8004741b
++ TIOCSETVERAUTH = 0x8004741c
+ TIOCSFLAGS = 0x8004745c
+ TIOCSIG = 0x8004745f
+ TIOCSPGRP = 0x80047476
+ TIOCSTART = 0x2000746e
+- TIOCSTAT = 0x80047465
++ TIOCSTAT = 0x20007465
+ TIOCSTI = 0x80017472
+ TIOCSTOP = 0x2000746f
+ TIOCSTSTAMP = 0x8008745a
+ TIOCSWINSZ = 0x80087467
+ TIOCUCNTL = 0x80047466
++ TIOCUCNTL_CBRK = 0x7a
++ TIOCUCNTL_SBRK = 0x7b
+ TOSTOP = 0x400000
++ UTIME_NOW = -0x2
++ UTIME_OMIT = -0x1
+ VDISCARD = 0xf
+ VDSUSP = 0xb
+ VEOF = 0x0
+@@ -1301,6 +1457,18 @@ const (
+ VKILL = 0x5
+ VLNEXT = 0xe
+ VMIN = 0x10
++ VM_ANONMIN = 0x7
++ VM_LOADAVG = 0x2
++ VM_MAXID = 0xc
++ VM_MAXSLP = 0xa
++ VM_METER = 0x1
++ VM_NKMEMPAGES = 0x6
++ VM_PSSTRINGS = 0x3
++ VM_SWAPENCRYPT = 0x5
++ VM_USPACE = 0xb
++ VM_UVMEXP = 0x4
++ VM_VNODEMIN = 0x9
++ VM_VTEXTMIN = 0x8
+ VQUIT = 0x9
+ VREPRINT = 0x6
+ VSTART = 0xc
+@@ -1313,8 +1481,8 @@ const (
+ WCONTINUED = 0x8
+ WCOREFLAG = 0x80
+ WNOHANG = 0x1
+- WSTOPPED = 0x7f
+ WUNTRACED = 0x2
++ XCASE = 0x1000000
+ )
+
+ // Errors
+@@ -1328,6 +1496,7 @@ const (
+ EALREADY = syscall.Errno(0x25)
+ EAUTH = syscall.Errno(0x50)
+ EBADF = syscall.Errno(0x9)
++ EBADMSG = syscall.Errno(0x5c)
+ EBADRPC = syscall.Errno(0x48)
+ EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x58)
+@@ -1354,7 +1523,7 @@ const (
+ EIPSEC = syscall.Errno(0x52)
+ EISCONN = syscall.Errno(0x38)
+ EISDIR = syscall.Errno(0x15)
+- ELAST = syscall.Errno(0x5b)
++ ELAST = syscall.Errno(0x5f)
+ ELOOP = syscall.Errno(0x3e)
+ EMEDIUMTYPE = syscall.Errno(0x56)
+ EMFILE = syscall.Errno(0x18)
+@@ -1382,12 +1551,14 @@ const (
+ ENOTCONN = syscall.Errno(0x39)
+ ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x42)
++ ENOTRECOVERABLE = syscall.Errno(0x5d)
+ ENOTSOCK = syscall.Errno(0x26)
+ ENOTSUP = syscall.Errno(0x5b)
+ ENOTTY = syscall.Errno(0x19)
+ ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x2d)
+ EOVERFLOW = syscall.Errno(0x57)
++ EOWNERDEAD = syscall.Errno(0x5e)
+ EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x2e)
+ EPIPE = syscall.Errno(0x20)
+@@ -1395,6 +1566,7 @@ const (
+ EPROCUNAVAIL = syscall.Errno(0x4c)
+ EPROGMISMATCH = syscall.Errno(0x4b)
+ EPROGUNAVAIL = syscall.Errno(0x4a)
++ EPROTO = syscall.Errno(0x5f)
+ EPROTONOSUPPORT = syscall.Errno(0x2b)
+ EPROTOTYPE = syscall.Errno(0x29)
+ ERANGE = syscall.Errno(0x22)
+@@ -1452,132 +1624,144 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "device not configured",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource deadlock avoided",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "device busy",
+- 17: "file exists",
+- 18: "cross-device link",
+- 19: "operation not supported by device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "result too large",
+- 35: "resource temporarily unavailable",
+- 36: "operation now in progress",
+- 37: "operation already in progress",
+- 38: "socket operation on non-socket",
+- 39: "destination address required",
+- 40: "message too long",
+- 41: "protocol wrong type for socket",
+- 42: "protocol not available",
+- 43: "protocol not supported",
+- 44: "socket type not supported",
+- 45: "operation not supported",
+- 46: "protocol family not supported",
+- 47: "address family not supported by protocol family",
+- 48: "address already in use",
+- 49: "can't assign requested address",
+- 50: "network is down",
+- 51: "network is unreachable",
+- 52: "network dropped connection on reset",
+- 53: "software caused connection abort",
+- 54: "connection reset by peer",
+- 55: "no buffer space available",
+- 56: "socket is already connected",
+- 57: "socket is not connected",
+- 58: "can't send after socket shutdown",
+- 59: "too many references: can't splice",
+- 60: "connection timed out",
+- 61: "connection refused",
+- 62: "too many levels of symbolic links",
+- 63: "file name too long",
+- 64: "host is down",
+- 65: "no route to host",
+- 66: "directory not empty",
+- 67: "too many processes",
+- 68: "too many users",
+- 69: "disc quota exceeded",
+- 70: "stale NFS file handle",
+- 71: "too many levels of remote in path",
+- 72: "RPC struct is bad",
+- 73: "RPC version wrong",
+- 74: "RPC prog. not avail",
+- 75: "program version wrong",
+- 76: "bad procedure for program",
+- 77: "no locks available",
+- 78: "function not implemented",
+- 79: "inappropriate file type or format",
+- 80: "authentication error",
+- 81: "need authenticator",
+- 82: "IPsec processing failure",
+- 83: "attribute not found",
+- 84: "illegal byte sequence",
+- 85: "no medium found",
+- 86: "wrong medium type",
+- 87: "value too large to be stored in data type",
+- 88: "operation canceled",
+- 89: "identifier removed",
+- 90: "no message of desired type",
+- 91: "not supported",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "device not configured"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EDEADLK", "resource deadlock avoided"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "cross-device link"},
++ {19, "ENODEV", "operation not supported by device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "result too large"},
++ {35, "EAGAIN", "resource temporarily unavailable"},
++ {36, "EINPROGRESS", "operation now in progress"},
++ {37, "EALREADY", "operation already in progress"},
++ {38, "ENOTSOCK", "socket operation on non-socket"},
++ {39, "EDESTADDRREQ", "destination address required"},
++ {40, "EMSGSIZE", "message too long"},
++ {41, "EPROTOTYPE", "protocol wrong type for socket"},
++ {42, "ENOPROTOOPT", "protocol not available"},
++ {43, "EPROTONOSUPPORT", "protocol not supported"},
++ {44, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {45, "EOPNOTSUPP", "operation not supported"},
++ {46, "EPFNOSUPPORT", "protocol family not supported"},
++ {47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++ {48, "EADDRINUSE", "address already in use"},
++ {49, "EADDRNOTAVAIL", "can't assign requested address"},
++ {50, "ENETDOWN", "network is down"},
++ {51, "ENETUNREACH", "network is unreachable"},
++ {52, "ENETRESET", "network dropped connection on reset"},
++ {53, "ECONNABORTED", "software caused connection abort"},
++ {54, "ECONNRESET", "connection reset by peer"},
++ {55, "ENOBUFS", "no buffer space available"},
++ {56, "EISCONN", "socket is already connected"},
++ {57, "ENOTCONN", "socket is not connected"},
++ {58, "ESHUTDOWN", "can't send after socket shutdown"},
++ {59, "ETOOMANYREFS", "too many references: can't splice"},
++ {60, "ETIMEDOUT", "operation timed out"},
++ {61, "ECONNREFUSED", "connection refused"},
++ {62, "ELOOP", "too many levels of symbolic links"},
++ {63, "ENAMETOOLONG", "file name too long"},
++ {64, "EHOSTDOWN", "host is down"},
++ {65, "EHOSTUNREACH", "no route to host"},
++ {66, "ENOTEMPTY", "directory not empty"},
++ {67, "EPROCLIM", "too many processes"},
++ {68, "EUSERS", "too many users"},
++ {69, "EDQUOT", "disk quota exceeded"},
++ {70, "ESTALE", "stale NFS file handle"},
++ {71, "EREMOTE", "too many levels of remote in path"},
++ {72, "EBADRPC", "RPC struct is bad"},
++ {73, "ERPCMISMATCH", "RPC version wrong"},
++ {74, "EPROGUNAVAIL", "RPC program not available"},
++ {75, "EPROGMISMATCH", "program version wrong"},
++ {76, "EPROCUNAVAIL", "bad procedure for program"},
++ {77, "ENOLCK", "no locks available"},
++ {78, "ENOSYS", "function not implemented"},
++ {79, "EFTYPE", "inappropriate file type or format"},
++ {80, "EAUTH", "authentication error"},
++ {81, "ENEEDAUTH", "need authenticator"},
++ {82, "EIPSEC", "IPsec processing failure"},
++ {83, "ENOATTR", "attribute not found"},
++ {84, "EILSEQ", "illegal byte sequence"},
++ {85, "ENOMEDIUM", "no medium found"},
++ {86, "EMEDIUMTYPE", "wrong medium type"},
++ {87, "EOVERFLOW", "value too large to be stored in data type"},
++ {88, "ECANCELED", "operation canceled"},
++ {89, "EIDRM", "identifier removed"},
++ {90, "ENOMSG", "no message of desired type"},
++ {91, "ENOTSUP", "not supported"},
++ {92, "EBADMSG", "bad message"},
++ {93, "ENOTRECOVERABLE", "state not recoverable"},
++ {94, "EOWNERDEAD", "previous owner died"},
++ {95, "ELAST", "protocol error"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/BPT trap",
+- 6: "abort trap",
+- 7: "EMT trap",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "bus error",
+- 11: "segmentation fault",
+- 12: "bad system call",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "urgent I/O condition",
+- 17: "stopped (signal)",
+- 18: "stopped",
+- 19: "continued",
+- 20: "child exited",
+- 21: "stopped (tty input)",
+- 22: "stopped (tty output)",
+- 23: "I/O possible",
+- 24: "cputime limit exceeded",
+- 25: "filesize limit exceeded",
+- 26: "virtual timer expired",
+- 27: "profiling timer expired",
+- 28: "window size changes",
+- 29: "information request",
+- 30: "user defined signal 1",
+- 31: "user defined signal 2",
+- 32: "thread AST",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/BPT trap"},
++ {6, "SIGABRT", "abort trap"},
++ {7, "SIGEMT", "EMT trap"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGBUS", "bus error"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGSYS", "bad system call"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGURG", "urgent I/O condition"},
++ {17, "SIGSTOP", "suspended (signal)"},
++ {18, "SIGTSTP", "suspended"},
++ {19, "SIGCONT", "continued"},
++ {20, "SIGCHLD", "child exited"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGIO", "I/O possible"},
++ {24, "SIGXCPU", "cputime limit exceeded"},
++ {25, "SIGXFSZ", "filesize limit exceeded"},
++ {26, "SIGVTALRM", "virtual timer expired"},
++ {27, "SIGPROF", "profiling timer expired"},
++ {28, "SIGWINCH", "window size changes"},
++ {29, "SIGINFO", "information request"},
++ {30, "SIGUSR1", "user defined signal 1"},
++ {31, "SIGUSR2", "user defined signal 2"},
++ {32, "SIGTHR", "thread AST"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go
+index 3ed0b260..7aa796a6 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go
+@@ -1,11 +1,11 @@
+ // mkerrors.sh
+-// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+-
+-// Created by cgo -godefs - DO NOT EDIT
+-// cgo -godefs -- _const.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build arm,openbsd
+
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
++// cgo -godefs -- _const.go
++
+ package unix
+
+ import "syscall"
+@@ -147,6 +147,7 @@ const (
+ CFLUSH = 0xf
+ CLOCAL = 0x8000
+ CREAD = 0x800
++ CRTSCTS = 0x10000
+ CS5 = 0x0
+ CS6 = 0x100
+ CS7 = 0x200
+@@ -157,6 +158,8 @@ const (
+ CSTOP = 0x13
+ CSTOPB = 0x400
+ CSUSP = 0x1a
++ CTL_HW = 0x6
++ CTL_KERN = 0x1
+ CTL_MAXNAME = 0xc
+ CTL_NET = 0x4
+ DIOCOSFPFLUSH = 0x2000444e
+@@ -441,6 +444,7 @@ const (
+ F_UNLCK = 0x2
+ F_WRLCK = 0x3
+ HUPCL = 0x4000
++ HW_MACHINE = 0x1
+ ICANON = 0x100
+ ICMP6_FILTER = 0x12
+ ICRNL = 0x100
+@@ -859,6 +863,10 @@ const (
+ IXANY = 0x800
+ IXOFF = 0x400
+ IXON = 0x200
++ KERN_HOSTNAME = 0xa
++ KERN_OSRELEASE = 0x2
++ KERN_OSTYPE = 0x1
++ KERN_VERSION = 0x4
+ LCNT_OVERLOAD_FLUSH = 0x6
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+@@ -873,10 +881,11 @@ const (
+ MADV_WILLNEED = 0x3
+ MAP_ANON = 0x1000
+ MAP_ANONYMOUS = 0x1000
++ MAP_CONCEAL = 0x8000
+ MAP_COPY = 0x2
+ MAP_FILE = 0x0
+ MAP_FIXED = 0x10
+- MAP_FLAGMASK = 0x3ff7
++ MAP_FLAGMASK = 0xfff7
+ MAP_HASSEMAPHORE = 0x0
+ MAP_INHERIT = 0x0
+ MAP_INHERIT_COPY = 0x1
+@@ -888,9 +897,36 @@ const (
+ MAP_PRIVATE = 0x2
+ MAP_RENAME = 0x0
+ MAP_SHARED = 0x1
++ MAP_STACK = 0x4000
+ MAP_TRYFIXED = 0x0
+ MCL_CURRENT = 0x1
+ MCL_FUTURE = 0x2
++ MNT_ASYNC = 0x40
++ MNT_DEFEXPORTED = 0x200
++ MNT_DELEXPORT = 0x20000
++ MNT_DOOMED = 0x8000000
++ MNT_EXPORTANON = 0x400
++ MNT_EXPORTED = 0x100
++ MNT_EXRDONLY = 0x80
++ MNT_FORCE = 0x80000
++ MNT_LAZY = 0x3
++ MNT_LOCAL = 0x1000
++ MNT_NOATIME = 0x8000
++ MNT_NODEV = 0x10
++ MNT_NOEXEC = 0x4
++ MNT_NOSUID = 0x8
++ MNT_NOWAIT = 0x2
++ MNT_QUOTA = 0x2000
++ MNT_RDONLY = 0x1
++ MNT_RELOAD = 0x40000
++ MNT_ROOTFS = 0x4000
++ MNT_SOFTDEP = 0x4000000
++ MNT_SYNCHRONOUS = 0x2
++ MNT_UPDATE = 0x10000
++ MNT_VISFLAGMASK = 0x400ffff
++ MNT_WAIT = 0x1
++ MNT_WANTRDWR = 0x2000000
++ MNT_WXALLOWED = 0x800
+ MSG_BCAST = 0x100
+ MSG_CMSG_CLOEXEC = 0x800
+ MSG_CTRUNC = 0x20
+@@ -913,6 +949,7 @@ const (
+ NET_RT_MAXID = 0x6
+ NET_RT_STATS = 0x4
+ NET_RT_TABLE = 0x5
++ NFDBITS = 0x20
+ NOFLSH = 0x80000000
+ NOTE_ATTRIB = 0x8
+ NOTE_CHILD = 0x4
+@@ -1213,6 +1250,34 @@ const (
+ SO_TIMESTAMP = 0x800
+ SO_TYPE = 0x1008
+ SO_USELOOPBACK = 0x40
++ S_BLKSIZE = 0x200
++ S_IEXEC = 0x40
++ S_IFBLK = 0x6000
++ S_IFCHR = 0x2000
++ S_IFDIR = 0x4000
++ S_IFIFO = 0x1000
++ S_IFLNK = 0xa000
++ S_IFMT = 0xf000
++ S_IFREG = 0x8000
++ S_IFSOCK = 0xc000
++ S_IREAD = 0x100
++ S_IRGRP = 0x20
++ S_IROTH = 0x4
++ S_IRUSR = 0x100
++ S_IRWXG = 0x38
++ S_IRWXO = 0x7
++ S_IRWXU = 0x1c0
++ S_ISGID = 0x400
++ S_ISTXT = 0x200
++ S_ISUID = 0x800
++ S_ISVTX = 0x200
++ S_IWGRP = 0x10
++ S_IWOTH = 0x2
++ S_IWRITE = 0x80
++ S_IWUSR = 0x80
++ S_IXGRP = 0x8
++ S_IXOTH = 0x1
++ S_IXUSR = 0x40
+ TCIFLUSH = 0x1
+ TCIOFLUSH = 0x3
+ TCOFLUSH = 0x2
+@@ -1455,132 +1520,140 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "device not configured",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource deadlock avoided",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "device busy",
+- 17: "file exists",
+- 18: "cross-device link",
+- 19: "operation not supported by device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "result too large",
+- 35: "resource temporarily unavailable",
+- 36: "operation now in progress",
+- 37: "operation already in progress",
+- 38: "socket operation on non-socket",
+- 39: "destination address required",
+- 40: "message too long",
+- 41: "protocol wrong type for socket",
+- 42: "protocol not available",
+- 43: "protocol not supported",
+- 44: "socket type not supported",
+- 45: "operation not supported",
+- 46: "protocol family not supported",
+- 47: "address family not supported by protocol family",
+- 48: "address already in use",
+- 49: "can't assign requested address",
+- 50: "network is down",
+- 51: "network is unreachable",
+- 52: "network dropped connection on reset",
+- 53: "software caused connection abort",
+- 54: "connection reset by peer",
+- 55: "no buffer space available",
+- 56: "socket is already connected",
+- 57: "socket is not connected",
+- 58: "can't send after socket shutdown",
+- 59: "too many references: can't splice",
+- 60: "connection timed out",
+- 61: "connection refused",
+- 62: "too many levels of symbolic links",
+- 63: "file name too long",
+- 64: "host is down",
+- 65: "no route to host",
+- 66: "directory not empty",
+- 67: "too many processes",
+- 68: "too many users",
+- 69: "disc quota exceeded",
+- 70: "stale NFS file handle",
+- 71: "too many levels of remote in path",
+- 72: "RPC struct is bad",
+- 73: "RPC version wrong",
+- 74: "RPC prog. not avail",
+- 75: "program version wrong",
+- 76: "bad procedure for program",
+- 77: "no locks available",
+- 78: "function not implemented",
+- 79: "inappropriate file type or format",
+- 80: "authentication error",
+- 81: "need authenticator",
+- 82: "IPsec processing failure",
+- 83: "attribute not found",
+- 84: "illegal byte sequence",
+- 85: "no medium found",
+- 86: "wrong medium type",
+- 87: "value too large to be stored in data type",
+- 88: "operation canceled",
+- 89: "identifier removed",
+- 90: "no message of desired type",
+- 91: "not supported",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "device not configured"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EDEADLK", "resource deadlock avoided"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "cross-device link"},
++ {19, "ENODEV", "operation not supported by device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "result too large"},
++ {35, "EWOULDBLOCK", "resource temporarily unavailable"},
++ {36, "EINPROGRESS", "operation now in progress"},
++ {37, "EALREADY", "operation already in progress"},
++ {38, "ENOTSOCK", "socket operation on non-socket"},
++ {39, "EDESTADDRREQ", "destination address required"},
++ {40, "EMSGSIZE", "message too long"},
++ {41, "EPROTOTYPE", "protocol wrong type for socket"},
++ {42, "ENOPROTOOPT", "protocol not available"},
++ {43, "EPROTONOSUPPORT", "protocol not supported"},
++ {44, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {45, "EOPNOTSUPP", "operation not supported"},
++ {46, "EPFNOSUPPORT", "protocol family not supported"},
++ {47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++ {48, "EADDRINUSE", "address already in use"},
++ {49, "EADDRNOTAVAIL", "can't assign requested address"},
++ {50, "ENETDOWN", "network is down"},
++ {51, "ENETUNREACH", "network is unreachable"},
++ {52, "ENETRESET", "network dropped connection on reset"},
++ {53, "ECONNABORTED", "software caused connection abort"},
++ {54, "ECONNRESET", "connection reset by peer"},
++ {55, "ENOBUFS", "no buffer space available"},
++ {56, "EISCONN", "socket is already connected"},
++ {57, "ENOTCONN", "socket is not connected"},
++ {58, "ESHUTDOWN", "can't send after socket shutdown"},
++ {59, "ETOOMANYREFS", "too many references: can't splice"},
++ {60, "ETIMEDOUT", "operation timed out"},
++ {61, "ECONNREFUSED", "connection refused"},
++ {62, "ELOOP", "too many levels of symbolic links"},
++ {63, "ENAMETOOLONG", "file name too long"},
++ {64, "EHOSTDOWN", "host is down"},
++ {65, "EHOSTUNREACH", "no route to host"},
++ {66, "ENOTEMPTY", "directory not empty"},
++ {67, "EPROCLIM", "too many processes"},
++ {68, "EUSERS", "too many users"},
++ {69, "EDQUOT", "disk quota exceeded"},
++ {70, "ESTALE", "stale NFS file handle"},
++ {71, "EREMOTE", "too many levels of remote in path"},
++ {72, "EBADRPC", "RPC struct is bad"},
++ {73, "ERPCMISMATCH", "RPC version wrong"},
++ {74, "EPROGUNAVAIL", "RPC program not available"},
++ {75, "EPROGMISMATCH", "program version wrong"},
++ {76, "EPROCUNAVAIL", "bad procedure for program"},
++ {77, "ENOLCK", "no locks available"},
++ {78, "ENOSYS", "function not implemented"},
++ {79, "EFTYPE", "inappropriate file type or format"},
++ {80, "EAUTH", "authentication error"},
++ {81, "ENEEDAUTH", "need authenticator"},
++ {82, "EIPSEC", "IPsec processing failure"},
++ {83, "ENOATTR", "attribute not found"},
++ {84, "EILSEQ", "illegal byte sequence"},
++ {85, "ENOMEDIUM", "no medium found"},
++ {86, "EMEDIUMTYPE", "wrong medium type"},
++ {87, "EOVERFLOW", "value too large to be stored in data type"},
++ {88, "ECANCELED", "operation canceled"},
++ {89, "EIDRM", "identifier removed"},
++ {90, "ENOMSG", "no message of desired type"},
++ {91, "ELAST", "not supported"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/BPT trap",
+- 6: "abort trap",
+- 7: "EMT trap",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "bus error",
+- 11: "segmentation fault",
+- 12: "bad system call",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "urgent I/O condition",
+- 17: "stopped (signal)",
+- 18: "stopped",
+- 19: "continued",
+- 20: "child exited",
+- 21: "stopped (tty input)",
+- 22: "stopped (tty output)",
+- 23: "I/O possible",
+- 24: "cputime limit exceeded",
+- 25: "filesize limit exceeded",
+- 26: "virtual timer expired",
+- 27: "profiling timer expired",
+- 28: "window size changes",
+- 29: "information request",
+- 30: "user defined signal 1",
+- 31: "user defined signal 2",
+- 32: "thread AST",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/BPT trap"},
++ {6, "SIGABRT", "abort trap"},
++ {7, "SIGEMT", "EMT trap"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGBUS", "bus error"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGSYS", "bad system call"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGURG", "urgent I/O condition"},
++ {17, "SIGSTOP", "suspended (signal)"},
++ {18, "SIGTSTP", "suspended"},
++ {19, "SIGCONT", "continued"},
++ {20, "SIGCHLD", "child exited"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGIO", "I/O possible"},
++ {24, "SIGXCPU", "cputime limit exceeded"},
++ {25, "SIGXFSZ", "filesize limit exceeded"},
++ {26, "SIGVTALRM", "virtual timer expired"},
++ {27, "SIGPROF", "profiling timer expired"},
++ {28, "SIGWINCH", "window size changes"},
++ {29, "SIGINFO", "information request"},
++ {30, "SIGUSR1", "user defined signal 1"},
++ {31, "SIGUSR2", "user defined signal 2"},
++ {32, "SIGTHR", "thread AST"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go
+similarity index 76%
+copy from vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go
+copy to vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go
+index 1758ecca..1792d3f1 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go
+@@ -1,9 +1,9 @@
+ // mkerrors.sh -m64
+-// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+-// +build amd64,openbsd
++// +build arm64,openbsd
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+
+ package unix
+@@ -45,6 +45,7 @@ const (
+ AF_SNA = 0xb
+ AF_UNIX = 0x1
+ AF_UNSPEC = 0x0
++ ALTWERASE = 0x200
+ ARPHRD_ETHER = 0x1
+ ARPHRD_FRELAY = 0xf
+ ARPHRD_IEEE1394 = 0x18
+@@ -107,6 +108,9 @@ const (
+ BPF_DIRECTION_IN = 0x1
+ BPF_DIRECTION_OUT = 0x2
+ BPF_DIV = 0x30
++ BPF_FILDROP_CAPTURE = 0x1
++ BPF_FILDROP_DROP = 0x2
++ BPF_FILDROP_PASS = 0x0
+ BPF_H = 0x8
+ BPF_IMM = 0x0
+ BPF_IND = 0x40
+@@ -146,7 +150,14 @@ const (
+ BRKINT = 0x2
+ CFLUSH = 0xf
+ CLOCAL = 0x8000
++ CLOCK_BOOTTIME = 0x6
++ CLOCK_MONOTONIC = 0x3
++ CLOCK_PROCESS_CPUTIME_ID = 0x2
++ CLOCK_REALTIME = 0x0
++ CLOCK_THREAD_CPUTIME_ID = 0x4
++ CLOCK_UPTIME = 0x5
+ CREAD = 0x800
++ CRTSCTS = 0x10000
+ CS5 = 0x0
+ CS6 = 0x100
+ CS7 = 0x200
+@@ -157,6 +168,8 @@ const (
+ CSTOP = 0x13
+ CSTOPB = 0x400
+ CSUSP = 0x1a
++ CTL_HW = 0x6
++ CTL_KERN = 0x1
+ CTL_MAXNAME = 0xc
+ CTL_NET = 0x4
+ DIOCOSFPFLUSH = 0x2000444e
+@@ -175,6 +188,7 @@ const (
+ DLT_LOOP = 0xc
+ DLT_MPLS = 0xdb
+ DLT_NULL = 0x0
++ DLT_OPENFLOW = 0x10b
+ DLT_PFLOG = 0x75
+ DLT_PFSYNC = 0x12
+ DLT_PPP = 0x9
+@@ -185,6 +199,23 @@ const (
+ DLT_RAW = 0xe
+ DLT_SLIP = 0x8
+ DLT_SLIP_BSDOS = 0xf
++ DLT_USBPCAP = 0xf9
++ DLT_USER0 = 0x93
++ DLT_USER1 = 0x94
++ DLT_USER10 = 0x9d
++ DLT_USER11 = 0x9e
++ DLT_USER12 = 0x9f
++ DLT_USER13 = 0xa0
++ DLT_USER14 = 0xa1
++ DLT_USER15 = 0xa2
++ DLT_USER2 = 0x95
++ DLT_USER3 = 0x96
++ DLT_USER4 = 0x97
++ DLT_USER5 = 0x98
++ DLT_USER6 = 0x99
++ DLT_USER7 = 0x9a
++ DLT_USER8 = 0x9b
++ DLT_USER9 = 0x9c
+ DT_BLK = 0x6
+ DT_CHR = 0x2
+ DT_DIR = 0x4
+@@ -324,6 +355,7 @@ const (
+ ETHERTYPE_OS9NET = 0x7009
+ ETHERTYPE_PACER = 0x80c6
+ ETHERTYPE_PAE = 0x888e
++ ETHERTYPE_PBB = 0x88e7
+ ETHERTYPE_PCS = 0x4242
+ ETHERTYPE_PLANNING = 0x8044
+ ETHERTYPE_PPP = 0x880b
+@@ -398,27 +430,38 @@ const (
+ ETHER_CRC_POLY_LE = 0xedb88320
+ ETHER_HDR_LEN = 0xe
+ ETHER_MAX_DIX_LEN = 0x600
++ ETHER_MAX_HARDMTU_LEN = 0xff9b
+ ETHER_MAX_LEN = 0x5ee
+ ETHER_MIN_LEN = 0x40
+ ETHER_TYPE_LEN = 0x2
+ ETHER_VLAN_ENCAP_LEN = 0x4
+ EVFILT_AIO = -0x3
++ EVFILT_DEVICE = -0x8
+ EVFILT_PROC = -0x5
+ EVFILT_READ = -0x1
+ EVFILT_SIGNAL = -0x6
+- EVFILT_SYSCOUNT = 0x7
++ EVFILT_SYSCOUNT = 0x8
+ EVFILT_TIMER = -0x7
+ EVFILT_VNODE = -0x4
+ EVFILT_WRITE = -0x2
++ EVL_ENCAPLEN = 0x4
++ EVL_PRIO_BITS = 0xd
++ EVL_PRIO_MAX = 0x7
++ EVL_VLID_MASK = 0xfff
++ EVL_VLID_MAX = 0xffe
++ EVL_VLID_MIN = 0x1
++ EVL_VLID_NULL = 0x0
+ EV_ADD = 0x1
+ EV_CLEAR = 0x20
+ EV_DELETE = 0x2
+ EV_DISABLE = 0x8
++ EV_DISPATCH = 0x80
+ EV_ENABLE = 0x4
+ EV_EOF = 0x8000
+ EV_ERROR = 0x4000
+ EV_FLAG1 = 0x2000
+ EV_ONESHOT = 0x10
++ EV_RECEIPT = 0x40
+ EV_SYSFLAGS = 0xf000
+ EXTA = 0x4b00
+ EXTB = 0x9600
+@@ -432,6 +475,7 @@ const (
+ F_GETFL = 0x3
+ F_GETLK = 0x7
+ F_GETOWN = 0x5
++ F_ISATTY = 0xb
+ F_OK = 0x0
+ F_RDLCK = 0x1
+ F_SETFD = 0x2
+@@ -442,13 +486,13 @@ const (
+ F_UNLCK = 0x2
+ F_WRLCK = 0x3
+ HUPCL = 0x4000
++ HW_MACHINE = 0x1
+ ICANON = 0x100
+ ICMP6_FILTER = 0x12
+ ICRNL = 0x100
+ IEXTEN = 0x400
+ IFAN_ARRIVAL = 0x0
+ IFAN_DEPARTURE = 0x1
+- IFA_ROUTE = 0x1
+ IFF_ALLMULTI = 0x200
+ IFF_BROADCAST = 0x2
+ IFF_CANTCHANGE = 0x8e52
+@@ -459,12 +503,12 @@ const (
+ IFF_LOOPBACK = 0x8
+ IFF_MULTICAST = 0x8000
+ IFF_NOARP = 0x80
+- IFF_NOTRAILERS = 0x20
+ IFF_OACTIVE = 0x400
+ IFF_POINTOPOINT = 0x10
+ IFF_PROMISC = 0x100
+ IFF_RUNNING = 0x40
+ IFF_SIMPLEX = 0x800
++ IFF_STATICARP = 0x20
+ IFF_UP = 0x1
+ IFNAMSIZ = 0x10
+ IFT_1822 = 0x2
+@@ -593,6 +637,7 @@ const (
+ IFT_LINEGROUP = 0xd2
+ IFT_LOCALTALK = 0x2a
+ IFT_LOOP = 0x18
++ IFT_MBIM = 0xfa
+ IFT_MEDIAMAILOVERIP = 0x8b
+ IFT_MFSIGLINK = 0xa7
+ IFT_MIOX25 = 0x26
+@@ -717,8 +762,6 @@ const (
+ IPPROTO_AH = 0x33
+ IPPROTO_CARP = 0x70
+ IPPROTO_DIVERT = 0x102
+- IPPROTO_DIVERT_INIT = 0x2
+- IPPROTO_DIVERT_RESP = 0x1
+ IPPROTO_DONE = 0x101
+ IPPROTO_DSTOPTS = 0x3c
+ IPPROTO_EGP = 0x8
+@@ -775,6 +818,7 @@ const (
+ IPV6_LEAVE_GROUP = 0xd
+ IPV6_MAXHLIM = 0xff
+ IPV6_MAXPACKET = 0xffff
++ IPV6_MINHOPCOUNT = 0x41
+ IPV6_MMTU = 0x500
+ IPV6_MULTICAST_HOPS = 0xa
+ IPV6_MULTICAST_IF = 0x9
+@@ -814,12 +858,12 @@ const (
+ IP_DEFAULT_MULTICAST_LOOP = 0x1
+ IP_DEFAULT_MULTICAST_TTL = 0x1
+ IP_DF = 0x4000
+- IP_DIVERTFL = 0x1022
+ IP_DROP_MEMBERSHIP = 0xd
+ IP_ESP_NETWORK_LEVEL = 0x16
+ IP_ESP_TRANS_LEVEL = 0x15
+ IP_HDRINCL = 0x2
+ IP_IPCOMP_LEVEL = 0x1d
++ IP_IPDEFTTL = 0x25
+ IP_IPSECFLOWINFO = 0x24
+ IP_IPSEC_LOCAL_AUTH = 0x1b
+ IP_IPSEC_LOCAL_CRED = 0x19
+@@ -853,13 +897,19 @@ const (
+ IP_RETOPTS = 0x8
+ IP_RF = 0x8000
+ IP_RTABLE = 0x1021
++ IP_SENDSRCADDR = 0x7
+ IP_TOS = 0x3
+ IP_TTL = 0x4
+ ISIG = 0x80
+ ISTRIP = 0x20
++ IUCLC = 0x1000
+ IXANY = 0x800
+ IXOFF = 0x400
+ IXON = 0x200
++ KERN_HOSTNAME = 0xa
++ KERN_OSRELEASE = 0x2
++ KERN_OSTYPE = 0x1
++ KERN_VERSION = 0x4
+ LCNT_OVERLOAD_FLUSH = 0x6
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+@@ -873,25 +923,58 @@ const (
+ MADV_SPACEAVAIL = 0x5
+ MADV_WILLNEED = 0x3
+ MAP_ANON = 0x1000
+- MAP_COPY = 0x4
++ MAP_ANONYMOUS = 0x1000
++ MAP_CONCEAL = 0x8000
++ MAP_COPY = 0x2
+ MAP_FILE = 0x0
+ MAP_FIXED = 0x10
+- MAP_FLAGMASK = 0x1ff7
+- MAP_HASSEMAPHORE = 0x200
+- MAP_INHERIT = 0x80
++ MAP_FLAGMASK = 0xfff7
++ MAP_HASSEMAPHORE = 0x0
++ MAP_INHERIT = 0x0
+ MAP_INHERIT_COPY = 0x1
+- MAP_INHERIT_DONATE_COPY = 0x3
+ MAP_INHERIT_NONE = 0x2
+ MAP_INHERIT_SHARE = 0x0
+- MAP_NOEXTEND = 0x100
+- MAP_NORESERVE = 0x40
++ MAP_INHERIT_ZERO = 0x3
++ MAP_NOEXTEND = 0x0
++ MAP_NORESERVE = 0x0
+ MAP_PRIVATE = 0x2
+- MAP_RENAME = 0x20
++ MAP_RENAME = 0x0
+ MAP_SHARED = 0x1
+- MAP_TRYFIXED = 0x400
++ MAP_STACK = 0x4000
++ MAP_TRYFIXED = 0x0
+ MCL_CURRENT = 0x1
+ MCL_FUTURE = 0x2
++ MNT_ASYNC = 0x40
++ MNT_DEFEXPORTED = 0x200
++ MNT_DELEXPORT = 0x20000
++ MNT_DOOMED = 0x8000000
++ MNT_EXPORTANON = 0x400
++ MNT_EXPORTED = 0x100
++ MNT_EXRDONLY = 0x80
++ MNT_FORCE = 0x80000
++ MNT_LAZY = 0x3
++ MNT_LOCAL = 0x1000
++ MNT_NOATIME = 0x8000
++ MNT_NODEV = 0x10
++ MNT_NOEXEC = 0x4
++ MNT_NOPERM = 0x20
++ MNT_NOSUID = 0x8
++ MNT_NOWAIT = 0x2
++ MNT_QUOTA = 0x2000
++ MNT_RDONLY = 0x1
++ MNT_RELOAD = 0x40000
++ MNT_ROOTFS = 0x4000
++ MNT_SOFTDEP = 0x4000000
++ MNT_STALLED = 0x100000
++ MNT_SWAPPABLE = 0x200000
++ MNT_SYNCHRONOUS = 0x2
++ MNT_UPDATE = 0x10000
++ MNT_VISFLAGMASK = 0x400ffff
++ MNT_WAIT = 0x1
++ MNT_WANTRDWR = 0x2000000
++ MNT_WXALLOWED = 0x800
+ MSG_BCAST = 0x100
++ MSG_CMSG_CLOEXEC = 0x800
+ MSG_CTRUNC = 0x20
+ MSG_DONTROUTE = 0x4
+ MSG_DONTWAIT = 0x80
+@@ -909,11 +992,15 @@ const (
+ NET_RT_DUMP = 0x1
+ NET_RT_FLAGS = 0x2
+ NET_RT_IFLIST = 0x3
+- NET_RT_MAXID = 0x6
++ NET_RT_IFNAMES = 0x6
++ NET_RT_MAXID = 0x7
+ NET_RT_STATS = 0x4
+ NET_RT_TABLE = 0x5
++ NFDBITS = 0x20
+ NOFLSH = 0x80000000
++ NOKERNINFO = 0x2000000
+ NOTE_ATTRIB = 0x8
++ NOTE_CHANGE = 0x1
+ NOTE_CHILD = 0x4
+ NOTE_DELETE = 0x1
+ NOTE_EOF = 0x2
+@@ -932,11 +1019,13 @@ const (
+ NOTE_TRUNCATE = 0x80
+ NOTE_WRITE = 0x2
+ OCRNL = 0x10
++ OLCUC = 0x20
+ ONLCR = 0x2
+ ONLRET = 0x80
+ ONOCR = 0x40
+ ONOEOT = 0x8
+ OPOST = 0x1
++ OXTABS = 0x4
+ O_ACCMODE = 0x3
+ O_APPEND = 0x8
+ O_ASYNC = 0x40
+@@ -974,23 +1063,32 @@ const (
+ RLIMIT_CPU = 0x0
+ RLIMIT_DATA = 0x2
+ RLIMIT_FSIZE = 0x1
++ RLIMIT_MEMLOCK = 0x6
+ RLIMIT_NOFILE = 0x8
++ RLIMIT_NPROC = 0x7
++ RLIMIT_RSS = 0x5
+ RLIMIT_STACK = 0x3
+ RLIM_INFINITY = 0x7fffffffffffffff
+ RTAX_AUTHOR = 0x6
++ RTAX_BFD = 0xb
+ RTAX_BRD = 0x7
++ RTAX_DNS = 0xc
+ RTAX_DST = 0x0
+ RTAX_GATEWAY = 0x1
+ RTAX_GENMASK = 0x3
+ RTAX_IFA = 0x5
+ RTAX_IFP = 0x4
+ RTAX_LABEL = 0xa
+- RTAX_MAX = 0xb
++ RTAX_MAX = 0xf
+ RTAX_NETMASK = 0x2
++ RTAX_SEARCH = 0xe
+ RTAX_SRC = 0x8
+ RTAX_SRCMASK = 0x9
++ RTAX_STATIC = 0xd
+ RTA_AUTHOR = 0x40
++ RTA_BFD = 0x800
+ RTA_BRD = 0x80
++ RTA_DNS = 0x1000
+ RTA_DST = 0x1
+ RTA_GATEWAY = 0x2
+ RTA_GENMASK = 0x8
+@@ -998,46 +1096,54 @@ const (
+ RTA_IFP = 0x10
+ RTA_LABEL = 0x400
+ RTA_NETMASK = 0x4
++ RTA_SEARCH = 0x4000
+ RTA_SRC = 0x100
+ RTA_SRCMASK = 0x200
++ RTA_STATIC = 0x2000
+ RTF_ANNOUNCE = 0x4000
++ RTF_BFD = 0x1000000
+ RTF_BLACKHOLE = 0x1000
++ RTF_BROADCAST = 0x400000
++ RTF_CACHED = 0x20000
+ RTF_CLONED = 0x10000
+ RTF_CLONING = 0x100
++ RTF_CONNECTED = 0x800000
+ RTF_DONE = 0x40
+ RTF_DYNAMIC = 0x10
+- RTF_FMASK = 0x10f808
++ RTF_FMASK = 0x110fc08
+ RTF_GATEWAY = 0x2
+ RTF_HOST = 0x4
+ RTF_LLINFO = 0x400
+- RTF_MASK = 0x80
++ RTF_LOCAL = 0x200000
+ RTF_MODIFIED = 0x20
+ RTF_MPATH = 0x40000
+ RTF_MPLS = 0x100000
++ RTF_MULTICAST = 0x200
+ RTF_PERMANENT_ARP = 0x2000
+ RTF_PROTO1 = 0x8000
+ RTF_PROTO2 = 0x4000
+ RTF_PROTO3 = 0x2000
+ RTF_REJECT = 0x8
+- RTF_SOURCE = 0x20000
+ RTF_STATIC = 0x800
+- RTF_TUNNEL = 0x100000
+ RTF_UP = 0x1
+ RTF_USETRAILERS = 0x8000
+- RTF_XRESOLVE = 0x200
++ RTM_80211INFO = 0x15
+ RTM_ADD = 0x1
++ RTM_BFD = 0x12
+ RTM_CHANGE = 0x3
++ RTM_CHGADDRATTR = 0x14
+ RTM_DELADDR = 0xd
+ RTM_DELETE = 0x2
+ RTM_DESYNC = 0x10
+ RTM_GET = 0x4
+ RTM_IFANNOUNCE = 0xf
+ RTM_IFINFO = 0xe
+- RTM_LOCK = 0x8
++ RTM_INVALIDATE = 0x11
+ RTM_LOSING = 0x5
+ RTM_MAXSIZE = 0x800
+ RTM_MISS = 0x7
+ RTM_NEWADDR = 0xc
++ RTM_PROPOSAL = 0x13
+ RTM_REDIRECT = 0x6
+ RTM_RESOLVE = 0xb
+ RTM_RTTUNIT = 0xf4240
+@@ -1050,6 +1156,8 @@ const (
+ RTV_RTTVAR = 0x80
+ RTV_SPIPE = 0x10
+ RTV_SSTHRESH = 0x20
++ RT_TABLEID_BITS = 0x8
++ RT_TABLEID_MASK = 0xff
+ RT_TABLEID_MAX = 0xff
+ RUSAGE_CHILDREN = -0x1
+ RUSAGE_SELF = 0x0
+@@ -1062,55 +1170,57 @@ const (
+ SIOCADDMULTI = 0x80206931
+ SIOCAIFADDR = 0x8040691a
+ SIOCAIFGROUP = 0x80286987
+- SIOCALIFADDR = 0x8218691c
+ SIOCATMARK = 0x40047307
+- SIOCBRDGADD = 0x8058693c
+- SIOCBRDGADDS = 0x80586941
+- SIOCBRDGARL = 0x806e694d
++ SIOCBRDGADD = 0x8060693c
++ SIOCBRDGADDL = 0x80606949
++ SIOCBRDGADDS = 0x80606941
++ SIOCBRDGARL = 0x808c694d
+ SIOCBRDGDADDR = 0x81286947
+- SIOCBRDGDEL = 0x8058693d
+- SIOCBRDGDELS = 0x80586942
+- SIOCBRDGFLUSH = 0x80586948
+- SIOCBRDGFRL = 0x806e694e
+- SIOCBRDGGCACHE = 0xc0146941
+- SIOCBRDGGFD = 0xc0146952
+- SIOCBRDGGHT = 0xc0146951
+- SIOCBRDGGIFFLGS = 0xc058693e
+- SIOCBRDGGMA = 0xc0146953
++ SIOCBRDGDEL = 0x8060693d
++ SIOCBRDGDELS = 0x80606942
++ SIOCBRDGFLUSH = 0x80606948
++ SIOCBRDGFRL = 0x808c694e
++ SIOCBRDGGCACHE = 0xc0186941
++ SIOCBRDGGFD = 0xc0186952
++ SIOCBRDGGHT = 0xc0186951
++ SIOCBRDGGIFFLGS = 0xc060693e
++ SIOCBRDGGMA = 0xc0186953
+ SIOCBRDGGPARAM = 0xc0406958
+- SIOCBRDGGPRI = 0xc0146950
++ SIOCBRDGGPRI = 0xc0186950
+ SIOCBRDGGRL = 0xc030694f
+- SIOCBRDGGSIFS = 0xc058693c
+- SIOCBRDGGTO = 0xc0146946
+- SIOCBRDGIFS = 0xc0586942
++ SIOCBRDGGTO = 0xc0186946
++ SIOCBRDGIFS = 0xc0606942
+ SIOCBRDGRTS = 0xc0206943
+ SIOCBRDGSADDR = 0xc1286944
+- SIOCBRDGSCACHE = 0x80146940
+- SIOCBRDGSFD = 0x80146952
+- SIOCBRDGSHT = 0x80146951
+- SIOCBRDGSIFCOST = 0x80586955
+- SIOCBRDGSIFFLGS = 0x8058693f
+- SIOCBRDGSIFPRIO = 0x80586954
+- SIOCBRDGSMA = 0x80146953
+- SIOCBRDGSPRI = 0x80146950
+- SIOCBRDGSPROTO = 0x8014695a
+- SIOCBRDGSTO = 0x80146945
+- SIOCBRDGSTXHC = 0x80146959
++ SIOCBRDGSCACHE = 0x80186940
++ SIOCBRDGSFD = 0x80186952
++ SIOCBRDGSHT = 0x80186951
++ SIOCBRDGSIFCOST = 0x80606955
++ SIOCBRDGSIFFLGS = 0x8060693f
++ SIOCBRDGSIFPRIO = 0x80606954
++ SIOCBRDGSIFPROT = 0x8060694a
++ SIOCBRDGSMA = 0x80186953
++ SIOCBRDGSPRI = 0x80186950
++ SIOCBRDGSPROTO = 0x8018695a
++ SIOCBRDGSTO = 0x80186945
++ SIOCBRDGSTXHC = 0x80186959
++ SIOCDELLABEL = 0x80206997
+ SIOCDELMULTI = 0x80206932
+ SIOCDIFADDR = 0x80206919
+ SIOCDIFGROUP = 0x80286989
++ SIOCDIFPARENT = 0x802069b4
+ SIOCDIFPHYADDR = 0x80206949
+- SIOCDLIFADDR = 0x8218691e
++ SIOCDPWE3NEIGHBOR = 0x802069de
++ SIOCDVNETID = 0x802069af
+ SIOCGETKALIVE = 0xc01869a4
+ SIOCGETLABEL = 0x8020699a
++ SIOCGETMPWCFG = 0xc02069ae
+ SIOCGETPFLOW = 0xc02069fe
+ SIOCGETPFSYNC = 0xc02069f8
+ SIOCGETSGCNT = 0xc0207534
+ SIOCGETVIFCNT = 0xc0287533
+ SIOCGETVLAN = 0xc0206990
+- SIOCGHIWAT = 0x40047301
+ SIOCGIFADDR = 0xc0206921
+- SIOCGIFASYNCMAP = 0xc020697c
+ SIOCGIFBRDADDR = 0xc0206923
+ SIOCGIFCONF = 0xc0106924
+ SIOCGIFDATA = 0xc020691b
+@@ -1119,40 +1229,52 @@ const (
+ SIOCGIFFLAGS = 0xc0206911
+ SIOCGIFGATTR = 0xc028698b
+ SIOCGIFGENERIC = 0xc020693a
++ SIOCGIFGLIST = 0xc028698d
+ SIOCGIFGMEMB = 0xc028698a
+ SIOCGIFGROUP = 0xc0286988
+ SIOCGIFHARDMTU = 0xc02069a5
+- SIOCGIFMEDIA = 0xc0306936
++ SIOCGIFLLPRIO = 0xc02069b6
++ SIOCGIFMEDIA = 0xc0406938
+ SIOCGIFMETRIC = 0xc0206917
+ SIOCGIFMTU = 0xc020697e
+ SIOCGIFNETMASK = 0xc0206925
+- SIOCGIFPDSTADDR = 0xc0206948
++ SIOCGIFPAIR = 0xc02069b1
++ SIOCGIFPARENT = 0xc02069b3
+ SIOCGIFPRIORITY = 0xc020699c
+- SIOCGIFPSRCADDR = 0xc0206947
+ SIOCGIFRDOMAIN = 0xc02069a0
+ SIOCGIFRTLABEL = 0xc0206983
+- SIOCGIFTIMESLOT = 0xc0206986
++ SIOCGIFRXR = 0x802069aa
++ SIOCGIFSFFPAGE = 0xc1126939
+ SIOCGIFXFLAGS = 0xc020699e
+- SIOCGLIFADDR = 0xc218691d
+ SIOCGLIFPHYADDR = 0xc218694b
++ SIOCGLIFPHYDF = 0xc02069c2
++ SIOCGLIFPHYECN = 0xc02069c8
+ SIOCGLIFPHYRTABLE = 0xc02069a2
+ SIOCGLIFPHYTTL = 0xc02069a9
+- SIOCGLOWAT = 0x40047303
+ SIOCGPGRP = 0x40047309
++ SIOCGPWE3 = 0xc0206998
++ SIOCGPWE3CTRLWORD = 0xc02069dc
++ SIOCGPWE3FAT = 0xc02069dd
++ SIOCGPWE3NEIGHBOR = 0xc21869de
+ SIOCGSPPPPARAMS = 0xc0206994
++ SIOCGTXHPRIO = 0xc02069c6
++ SIOCGUMBINFO = 0xc02069be
++ SIOCGUMBPARAM = 0xc02069c0
+ SIOCGVH = 0xc02069f6
++ SIOCGVNETFLOWID = 0xc02069c4
+ SIOCGVNETID = 0xc02069a7
++ SIOCIFAFATTACH = 0x801169ab
++ SIOCIFAFDETACH = 0x801169ac
+ SIOCIFCREATE = 0x8020697a
+ SIOCIFDESTROY = 0x80206979
+ SIOCIFGCLONERS = 0xc0106978
+ SIOCSETKALIVE = 0x801869a3
+ SIOCSETLABEL = 0x80206999
++ SIOCSETMPWCFG = 0x802069ad
+ SIOCSETPFLOW = 0x802069fd
+ SIOCSETPFSYNC = 0x802069f7
+ SIOCSETVLAN = 0x8020698f
+- SIOCSHIWAT = 0x80047300
+ SIOCSIFADDR = 0x8020690c
+- SIOCSIFASYNCMAP = 0x8020697d
+ SIOCSIFBRDADDR = 0x80206913
+ SIOCSIFDESCR = 0x80206980
+ SIOCSIFDSTADDR = 0x8020690e
+@@ -1160,25 +1282,41 @@ const (
+ SIOCSIFGATTR = 0x8028698c
+ SIOCSIFGENERIC = 0x80206939
+ SIOCSIFLLADDR = 0x8020691f
+- SIOCSIFMEDIA = 0xc0206935
++ SIOCSIFLLPRIO = 0x802069b5
++ SIOCSIFMEDIA = 0xc0206937
+ SIOCSIFMETRIC = 0x80206918
+ SIOCSIFMTU = 0x8020697f
+ SIOCSIFNETMASK = 0x80206916
+- SIOCSIFPHYADDR = 0x80406946
++ SIOCSIFPAIR = 0x802069b0
++ SIOCSIFPARENT = 0x802069b2
+ SIOCSIFPRIORITY = 0x8020699b
+ SIOCSIFRDOMAIN = 0x8020699f
+ SIOCSIFRTLABEL = 0x80206982
+- SIOCSIFTIMESLOT = 0x80206985
+ SIOCSIFXFLAGS = 0x8020699d
+ SIOCSLIFPHYADDR = 0x8218694a
++ SIOCSLIFPHYDF = 0x802069c1
++ SIOCSLIFPHYECN = 0x802069c7
+ SIOCSLIFPHYRTABLE = 0x802069a1
+ SIOCSLIFPHYTTL = 0x802069a8
+- SIOCSLOWAT = 0x80047302
+ SIOCSPGRP = 0x80047308
++ SIOCSPWE3CTRLWORD = 0x802069dc
++ SIOCSPWE3FAT = 0x802069dd
++ SIOCSPWE3NEIGHBOR = 0x821869de
+ SIOCSSPPPPARAMS = 0x80206993
++ SIOCSTXHPRIO = 0x802069c5
++ SIOCSUMBPARAM = 0x802069bf
+ SIOCSVH = 0xc02069f5
++ SIOCSVNETFLOWID = 0x802069c3
+ SIOCSVNETID = 0x802069a6
++ SIOCSWGDPID = 0xc018695b
++ SIOCSWGMAXFLOW = 0xc0186960
++ SIOCSWGMAXGROUP = 0xc018695d
++ SIOCSWSDPID = 0x8018695c
++ SIOCSWSPORTNO = 0xc060695f
++ SOCK_CLOEXEC = 0x8000
+ SOCK_DGRAM = 0x2
++ SOCK_DNS = 0x1000
++ SOCK_NONBLOCK = 0x4000
+ SOCK_RAW = 0x3
+ SOCK_RDM = 0x4
+ SOCK_SEQPACKET = 0x5
+@@ -1209,9 +1347,42 @@ const (
+ SO_TIMESTAMP = 0x800
+ SO_TYPE = 0x1008
+ SO_USELOOPBACK = 0x40
++ SO_ZEROIZE = 0x2000
++ S_BLKSIZE = 0x200
++ S_IEXEC = 0x40
++ S_IFBLK = 0x6000
++ S_IFCHR = 0x2000
++ S_IFDIR = 0x4000
++ S_IFIFO = 0x1000
++ S_IFLNK = 0xa000
++ S_IFMT = 0xf000
++ S_IFREG = 0x8000
++ S_IFSOCK = 0xc000
++ S_IREAD = 0x100
++ S_IRGRP = 0x20
++ S_IROTH = 0x4
++ S_IRUSR = 0x100
++ S_IRWXG = 0x38
++ S_IRWXO = 0x7
++ S_IRWXU = 0x1c0
++ S_ISGID = 0x400
++ S_ISTXT = 0x200
++ S_ISUID = 0x800
++ S_ISVTX = 0x200
++ S_IWGRP = 0x10
++ S_IWOTH = 0x2
++ S_IWRITE = 0x80
++ S_IWUSR = 0x80
++ S_IXGRP = 0x8
++ S_IXOTH = 0x1
++ S_IXUSR = 0x40
+ TCIFLUSH = 0x1
++ TCIOFF = 0x3
+ TCIOFLUSH = 0x3
++ TCION = 0x4
+ TCOFLUSH = 0x2
++ TCOOFF = 0x1
++ TCOON = 0x2
+ TCP_MAXBURST = 0x4
+ TCP_MAXSEG = 0x2
+ TCP_MAXWIN = 0xffff
+@@ -1221,11 +1392,14 @@ const (
+ TCP_MSS = 0x200
+ TCP_NODELAY = 0x1
+ TCP_NOPUSH = 0x10
+- TCP_NSTATES = 0xb
+ TCP_SACK_ENABLE = 0x8
+ TCSAFLUSH = 0x2
++ TIMER_ABSTIME = 0x1
++ TIMER_RELTIME = 0x0
+ TIOCCBRK = 0x2000747a
+ TIOCCDTR = 0x20007478
++ TIOCCHKVERAUTH = 0x2000741e
++ TIOCCLRVERAUTH = 0x2000741d
+ TIOCCONS = 0x80047462
+ TIOCDRAIN = 0x2000745e
+ TIOCEXCL = 0x2000740d
+@@ -1280,17 +1454,21 @@ const (
+ TIOCSETAF = 0x802c7416
+ TIOCSETAW = 0x802c7415
+ TIOCSETD = 0x8004741b
++ TIOCSETVERAUTH = 0x8004741c
+ TIOCSFLAGS = 0x8004745c
+ TIOCSIG = 0x8004745f
+ TIOCSPGRP = 0x80047476
+ TIOCSTART = 0x2000746e
+- TIOCSTAT = 0x80047465
+- TIOCSTI = 0x80017472
++ TIOCSTAT = 0x20007465
+ TIOCSTOP = 0x2000746f
+ TIOCSTSTAMP = 0x8008745a
+ TIOCSWINSZ = 0x80087467
+ TIOCUCNTL = 0x80047466
++ TIOCUCNTL_CBRK = 0x7a
++ TIOCUCNTL_SBRK = 0x7b
+ TOSTOP = 0x400000
++ UTIME_NOW = -0x2
++ UTIME_OMIT = -0x1
+ VDISCARD = 0xf
+ VDSUSP = 0xb
+ VEOF = 0x0
+@@ -1301,6 +1479,19 @@ const (
+ VKILL = 0x5
+ VLNEXT = 0xe
+ VMIN = 0x10
++ VM_ANONMIN = 0x7
++ VM_LOADAVG = 0x2
++ VM_MALLOC_CONF = 0xc
++ VM_MAXID = 0xd
++ VM_MAXSLP = 0xa
++ VM_METER = 0x1
++ VM_NKMEMPAGES = 0x6
++ VM_PSSTRINGS = 0x3
++ VM_SWAPENCRYPT = 0x5
++ VM_USPACE = 0xb
++ VM_UVMEXP = 0x4
++ VM_VNODEMIN = 0x9
++ VM_VTEXTMIN = 0x8
+ VQUIT = 0x9
+ VREPRINT = 0x6
+ VSTART = 0xc
+@@ -1313,8 +1504,8 @@ const (
+ WCONTINUED = 0x8
+ WCOREFLAG = 0x80
+ WNOHANG = 0x1
+- WSTOPPED = 0x7f
+ WUNTRACED = 0x2
++ XCASE = 0x1000000
+ )
+
+ // Errors
+@@ -1328,6 +1519,7 @@ const (
+ EALREADY = syscall.Errno(0x25)
+ EAUTH = syscall.Errno(0x50)
+ EBADF = syscall.Errno(0x9)
++ EBADMSG = syscall.Errno(0x5c)
+ EBADRPC = syscall.Errno(0x48)
+ EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x58)
+@@ -1354,7 +1546,7 @@ const (
+ EIPSEC = syscall.Errno(0x52)
+ EISCONN = syscall.Errno(0x38)
+ EISDIR = syscall.Errno(0x15)
+- ELAST = syscall.Errno(0x5b)
++ ELAST = syscall.Errno(0x5f)
+ ELOOP = syscall.Errno(0x3e)
+ EMEDIUMTYPE = syscall.Errno(0x56)
+ EMFILE = syscall.Errno(0x18)
+@@ -1382,12 +1574,14 @@ const (
+ ENOTCONN = syscall.Errno(0x39)
+ ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x42)
++ ENOTRECOVERABLE = syscall.Errno(0x5d)
+ ENOTSOCK = syscall.Errno(0x26)
+ ENOTSUP = syscall.Errno(0x5b)
+ ENOTTY = syscall.Errno(0x19)
+ ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x2d)
+ EOVERFLOW = syscall.Errno(0x57)
++ EOWNERDEAD = syscall.Errno(0x5e)
+ EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x2e)
+ EPIPE = syscall.Errno(0x20)
+@@ -1395,6 +1589,7 @@ const (
+ EPROCUNAVAIL = syscall.Errno(0x4c)
+ EPROGMISMATCH = syscall.Errno(0x4b)
+ EPROGUNAVAIL = syscall.Errno(0x4a)
++ EPROTO = syscall.Errno(0x5f)
+ EPROTONOSUPPORT = syscall.Errno(0x2b)
+ EPROTOTYPE = syscall.Errno(0x29)
+ ERANGE = syscall.Errno(0x22)
+@@ -1452,132 +1647,144 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "operation not permitted",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "input/output error",
+- 6: "device not configured",
+- 7: "argument list too long",
+- 8: "exec format error",
+- 9: "bad file descriptor",
+- 10: "no child processes",
+- 11: "resource deadlock avoided",
+- 12: "cannot allocate memory",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "device busy",
+- 17: "file exists",
+- 18: "cross-device link",
+- 19: "operation not supported by device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "too many open files in system",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "numerical argument out of domain",
+- 34: "result too large",
+- 35: "resource temporarily unavailable",
+- 36: "operation now in progress",
+- 37: "operation already in progress",
+- 38: "socket operation on non-socket",
+- 39: "destination address required",
+- 40: "message too long",
+- 41: "protocol wrong type for socket",
+- 42: "protocol not available",
+- 43: "protocol not supported",
+- 44: "socket type not supported",
+- 45: "operation not supported",
+- 46: "protocol family not supported",
+- 47: "address family not supported by protocol family",
+- 48: "address already in use",
+- 49: "can't assign requested address",
+- 50: "network is down",
+- 51: "network is unreachable",
+- 52: "network dropped connection on reset",
+- 53: "software caused connection abort",
+- 54: "connection reset by peer",
+- 55: "no buffer space available",
+- 56: "socket is already connected",
+- 57: "socket is not connected",
+- 58: "can't send after socket shutdown",
+- 59: "too many references: can't splice",
+- 60: "connection timed out",
+- 61: "connection refused",
+- 62: "too many levels of symbolic links",
+- 63: "file name too long",
+- 64: "host is down",
+- 65: "no route to host",
+- 66: "directory not empty",
+- 67: "too many processes",
+- 68: "too many users",
+- 69: "disc quota exceeded",
+- 70: "stale NFS file handle",
+- 71: "too many levels of remote in path",
+- 72: "RPC struct is bad",
+- 73: "RPC version wrong",
+- 74: "RPC prog. not avail",
+- 75: "program version wrong",
+- 76: "bad procedure for program",
+- 77: "no locks available",
+- 78: "function not implemented",
+- 79: "inappropriate file type or format",
+- 80: "authentication error",
+- 81: "need authenticator",
+- 82: "IPsec processing failure",
+- 83: "attribute not found",
+- 84: "illegal byte sequence",
+- 85: "no medium found",
+- 86: "wrong medium type",
+- 87: "value too large to be stored in data type",
+- 88: "operation canceled",
+- 89: "identifier removed",
+- 90: "no message of desired type",
+- 91: "not supported",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "operation not permitted"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "input/output error"},
++ {6, "ENXIO", "device not configured"},
++ {7, "E2BIG", "argument list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file descriptor"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EDEADLK", "resource deadlock avoided"},
++ {12, "ENOMEM", "cannot allocate memory"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "cross-device link"},
++ {19, "ENODEV", "operation not supported by device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "too many open files in system"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "numerical argument out of domain"},
++ {34, "ERANGE", "result too large"},
++ {35, "EAGAIN", "resource temporarily unavailable"},
++ {36, "EINPROGRESS", "operation now in progress"},
++ {37, "EALREADY", "operation already in progress"},
++ {38, "ENOTSOCK", "socket operation on non-socket"},
++ {39, "EDESTADDRREQ", "destination address required"},
++ {40, "EMSGSIZE", "message too long"},
++ {41, "EPROTOTYPE", "protocol wrong type for socket"},
++ {42, "ENOPROTOOPT", "protocol not available"},
++ {43, "EPROTONOSUPPORT", "protocol not supported"},
++ {44, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {45, "EOPNOTSUPP", "operation not supported"},
++ {46, "EPFNOSUPPORT", "protocol family not supported"},
++ {47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++ {48, "EADDRINUSE", "address already in use"},
++ {49, "EADDRNOTAVAIL", "can't assign requested address"},
++ {50, "ENETDOWN", "network is down"},
++ {51, "ENETUNREACH", "network is unreachable"},
++ {52, "ENETRESET", "network dropped connection on reset"},
++ {53, "ECONNABORTED", "software caused connection abort"},
++ {54, "ECONNRESET", "connection reset by peer"},
++ {55, "ENOBUFS", "no buffer space available"},
++ {56, "EISCONN", "socket is already connected"},
++ {57, "ENOTCONN", "socket is not connected"},
++ {58, "ESHUTDOWN", "can't send after socket shutdown"},
++ {59, "ETOOMANYREFS", "too many references: can't splice"},
++ {60, "ETIMEDOUT", "operation timed out"},
++ {61, "ECONNREFUSED", "connection refused"},
++ {62, "ELOOP", "too many levels of symbolic links"},
++ {63, "ENAMETOOLONG", "file name too long"},
++ {64, "EHOSTDOWN", "host is down"},
++ {65, "EHOSTUNREACH", "no route to host"},
++ {66, "ENOTEMPTY", "directory not empty"},
++ {67, "EPROCLIM", "too many processes"},
++ {68, "EUSERS", "too many users"},
++ {69, "EDQUOT", "disk quota exceeded"},
++ {70, "ESTALE", "stale NFS file handle"},
++ {71, "EREMOTE", "too many levels of remote in path"},
++ {72, "EBADRPC", "RPC struct is bad"},
++ {73, "ERPCMISMATCH", "RPC version wrong"},
++ {74, "EPROGUNAVAIL", "RPC program not available"},
++ {75, "EPROGMISMATCH", "program version wrong"},
++ {76, "EPROCUNAVAIL", "bad procedure for program"},
++ {77, "ENOLCK", "no locks available"},
++ {78, "ENOSYS", "function not implemented"},
++ {79, "EFTYPE", "inappropriate file type or format"},
++ {80, "EAUTH", "authentication error"},
++ {81, "ENEEDAUTH", "need authenticator"},
++ {82, "EIPSEC", "IPsec processing failure"},
++ {83, "ENOATTR", "attribute not found"},
++ {84, "EILSEQ", "illegal byte sequence"},
++ {85, "ENOMEDIUM", "no medium found"},
++ {86, "EMEDIUMTYPE", "wrong medium type"},
++ {87, "EOVERFLOW", "value too large to be stored in data type"},
++ {88, "ECANCELED", "operation canceled"},
++ {89, "EIDRM", "identifier removed"},
++ {90, "ENOMSG", "no message of desired type"},
++ {91, "ENOTSUP", "not supported"},
++ {92, "EBADMSG", "bad message"},
++ {93, "ENOTRECOVERABLE", "state not recoverable"},
++ {94, "EOWNERDEAD", "previous owner died"},
++ {95, "ELAST", "protocol error"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal instruction",
+- 5: "trace/BPT trap",
+- 6: "abort trap",
+- 7: "EMT trap",
+- 8: "floating point exception",
+- 9: "killed",
+- 10: "bus error",
+- 11: "segmentation fault",
+- 12: "bad system call",
+- 13: "broken pipe",
+- 14: "alarm clock",
+- 15: "terminated",
+- 16: "urgent I/O condition",
+- 17: "stopped (signal)",
+- 18: "stopped",
+- 19: "continued",
+- 20: "child exited",
+- 21: "stopped (tty input)",
+- 22: "stopped (tty output)",
+- 23: "I/O possible",
+- 24: "cputime limit exceeded",
+- 25: "filesize limit exceeded",
+- 26: "virtual timer expired",
+- 27: "profiling timer expired",
+- 28: "window size changes",
+- 29: "information request",
+- 30: "user defined signal 1",
+- 31: "user defined signal 2",
+- 32: "thread AST",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal instruction"},
++ {5, "SIGTRAP", "trace/BPT trap"},
++ {6, "SIGABRT", "abort trap"},
++ {7, "SIGEMT", "EMT trap"},
++ {8, "SIGFPE", "floating point exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGBUS", "bus error"},
++ {11, "SIGSEGV", "segmentation fault"},
++ {12, "SIGSYS", "bad system call"},
++ {13, "SIGPIPE", "broken pipe"},
++ {14, "SIGALRM", "alarm clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGURG", "urgent I/O condition"},
++ {17, "SIGSTOP", "suspended (signal)"},
++ {18, "SIGTSTP", "suspended"},
++ {19, "SIGCONT", "continued"},
++ {20, "SIGCHLD", "child exited"},
++ {21, "SIGTTIN", "stopped (tty input)"},
++ {22, "SIGTTOU", "stopped (tty output)"},
++ {23, "SIGIO", "I/O possible"},
++ {24, "SIGXCPU", "cputime limit exceeded"},
++ {25, "SIGXFSZ", "filesize limit exceeded"},
++ {26, "SIGVTALRM", "virtual timer expired"},
++ {27, "SIGPROF", "profiling timer expired"},
++ {28, "SIGWINCH", "window size changes"},
++ {29, "SIGINFO", "information request"},
++ {30, "SIGUSR1", "user defined signal 1"},
++ {31, "SIGUSR2", "user defined signal 2"},
++ {32, "SIGTHR", "thread AST"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go
+index 81e83d78..46e054cc 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go
+@@ -3,7 +3,7 @@
+
+ // +build amd64,solaris
+
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+
+ package unix
+@@ -664,6 +664,9 @@ const (
+ MS_OLDSYNC = 0x0
+ MS_SYNC = 0x4
+ M_FLUSH = 0x86
++ NAME_MAX = 0xff
++ NEWDEV = 0x1
++ NFDBITS = 0x40
+ NL0 = 0x0
+ NL1 = 0x100
+ NLDLY = 0x100
+@@ -672,6 +675,9 @@ const (
+ OFDEL = 0x80
+ OFILL = 0x40
+ OLCUC = 0x2
++ OLDDEV = 0x0
++ ONBITSMAJOR = 0x7
++ ONBITSMINOR = 0x8
+ ONLCR = 0x4
+ ONLRET = 0x20
+ ONOCR = 0x10
+@@ -991,6 +997,39 @@ const (
+ SO_USELOOPBACK = 0x40
+ SO_VRRP = 0x1017
+ SO_WROFF = 0x2
++ S_ENFMT = 0x400
++ S_IAMB = 0x1ff
++ S_IEXEC = 0x40
++ S_IFBLK = 0x6000
++ S_IFCHR = 0x2000
++ S_IFDIR = 0x4000
++ S_IFDOOR = 0xd000
++ S_IFIFO = 0x1000
++ S_IFLNK = 0xa000
++ S_IFMT = 0xf000
++ S_IFNAM = 0x5000
++ S_IFPORT = 0xe000
++ S_IFREG = 0x8000
++ S_IFSOCK = 0xc000
++ S_INSEM = 0x1
++ S_INSHD = 0x2
++ S_IREAD = 0x100
++ S_IRGRP = 0x20
++ S_IROTH = 0x4
++ S_IRUSR = 0x100
++ S_IRWXG = 0x38
++ S_IRWXO = 0x7
++ S_IRWXU = 0x1c0
++ S_ISGID = 0x400
++ S_ISUID = 0x800
++ S_ISVTX = 0x200
++ S_IWGRP = 0x10
++ S_IWOTH = 0x2
++ S_IWRITE = 0x80
++ S_IWUSR = 0x80
++ S_IXGRP = 0x8
++ S_IXOTH = 0x1
++ S_IXUSR = 0x40
+ TAB0 = 0x0
+ TAB1 = 0x800
+ TAB2 = 0x1000
+@@ -1097,6 +1136,8 @@ const (
+ TIOCSTOP = 0x746f
+ TIOCSWINSZ = 0x5467
+ TOSTOP = 0x100
++ UTIME_NOW = -0x1
++ UTIME_OMIT = -0x2
+ VCEOF = 0x8
+ VCEOL = 0x9
+ VDISCARD = 0xd
+@@ -1105,6 +1146,7 @@ const (
+ VEOL = 0x5
+ VEOL2 = 0x6
+ VERASE = 0x2
++ VERASE2 = 0x11
+ VINTR = 0x0
+ VKILL = 0x3
+ VLNEXT = 0xf
+@@ -1313,171 +1355,179 @@ const (
+ )
+
+ // Error table
+-var errors = [...]string{
+- 1: "not owner",
+- 2: "no such file or directory",
+- 3: "no such process",
+- 4: "interrupted system call",
+- 5: "I/O error",
+- 6: "no such device or address",
+- 7: "arg list too long",
+- 8: "exec format error",
+- 9: "bad file number",
+- 10: "no child processes",
+- 11: "resource temporarily unavailable",
+- 12: "not enough space",
+- 13: "permission denied",
+- 14: "bad address",
+- 15: "block device required",
+- 16: "device busy",
+- 17: "file exists",
+- 18: "cross-device link",
+- 19: "no such device",
+- 20: "not a directory",
+- 21: "is a directory",
+- 22: "invalid argument",
+- 23: "file table overflow",
+- 24: "too many open files",
+- 25: "inappropriate ioctl for device",
+- 26: "text file busy",
+- 27: "file too large",
+- 28: "no space left on device",
+- 29: "illegal seek",
+- 30: "read-only file system",
+- 31: "too many links",
+- 32: "broken pipe",
+- 33: "argument out of domain",
+- 34: "result too large",
+- 35: "no message of desired type",
+- 36: "identifier removed",
+- 37: "channel number out of range",
+- 38: "level 2 not synchronized",
+- 39: "level 3 halted",
+- 40: "level 3 reset",
+- 41: "link number out of range",
+- 42: "protocol driver not attached",
+- 43: "no CSI structure available",
+- 44: "level 2 halted",
+- 45: "deadlock situation detected/avoided",
+- 46: "no record locks available",
+- 47: "operation canceled",
+- 48: "operation not supported",
+- 49: "disc quota exceeded",
+- 50: "bad exchange descriptor",
+- 51: "bad request descriptor",
+- 52: "message tables full",
+- 53: "anode table overflow",
+- 54: "bad request code",
+- 55: "invalid slot",
+- 56: "file locking deadlock",
+- 57: "bad font file format",
+- 58: "owner of the lock died",
+- 59: "lock is not recoverable",
+- 60: "not a stream device",
+- 61: "no data available",
+- 62: "timer expired",
+- 63: "out of stream resources",
+- 64: "machine is not on the network",
+- 65: "package not installed",
+- 66: "object is remote",
+- 67: "link has been severed",
+- 68: "advertise error",
+- 69: "srmount error",
+- 70: "communication error on send",
+- 71: "protocol error",
+- 72: "locked lock was unmapped ",
+- 73: "facility is not active",
+- 74: "multihop attempted",
+- 77: "not a data message",
+- 78: "file name too long",
+- 79: "value too large for defined data type",
+- 80: "name not unique on network",
+- 81: "file descriptor in bad state",
+- 82: "remote address changed",
+- 83: "can not access a needed shared library",
+- 84: "accessing a corrupted shared library",
+- 85: ".lib section in a.out corrupted",
+- 86: "attempting to link in more shared libraries than system limit",
+- 87: "can not exec a shared library directly",
+- 88: "illegal byte sequence",
+- 89: "operation not applicable",
+- 90: "number of symbolic links encountered during path name traversal exceeds MAXSYMLINKS",
+- 91: "error 91",
+- 92: "error 92",
+- 93: "directory not empty",
+- 94: "too many users",
+- 95: "socket operation on non-socket",
+- 96: "destination address required",
+- 97: "message too long",
+- 98: "protocol wrong type for socket",
+- 99: "option not supported by protocol",
+- 120: "protocol not supported",
+- 121: "socket type not supported",
+- 122: "operation not supported on transport endpoint",
+- 123: "protocol family not supported",
+- 124: "address family not supported by protocol family",
+- 125: "address already in use",
+- 126: "cannot assign requested address",
+- 127: "network is down",
+- 128: "network is unreachable",
+- 129: "network dropped connection because of reset",
+- 130: "software caused connection abort",
+- 131: "connection reset by peer",
+- 132: "no buffer space available",
+- 133: "transport endpoint is already connected",
+- 134: "transport endpoint is not connected",
+- 143: "cannot send after socket shutdown",
+- 144: "too many references: cannot splice",
+- 145: "connection timed out",
+- 146: "connection refused",
+- 147: "host is down",
+- 148: "no route to host",
+- 149: "operation already in progress",
+- 150: "operation now in progress",
+- 151: "stale NFS file handle",
++var errorList = [...]struct {
++ num syscall.Errno
++ name string
++ desc string
++}{
++ {1, "EPERM", "not owner"},
++ {2, "ENOENT", "no such file or directory"},
++ {3, "ESRCH", "no such process"},
++ {4, "EINTR", "interrupted system call"},
++ {5, "EIO", "I/O error"},
++ {6, "ENXIO", "no such device or address"},
++ {7, "E2BIG", "arg list too long"},
++ {8, "ENOEXEC", "exec format error"},
++ {9, "EBADF", "bad file number"},
++ {10, "ECHILD", "no child processes"},
++ {11, "EAGAIN", "resource temporarily unavailable"},
++ {12, "ENOMEM", "not enough space"},
++ {13, "EACCES", "permission denied"},
++ {14, "EFAULT", "bad address"},
++ {15, "ENOTBLK", "block device required"},
++ {16, "EBUSY", "device busy"},
++ {17, "EEXIST", "file exists"},
++ {18, "EXDEV", "cross-device link"},
++ {19, "ENODEV", "no such device"},
++ {20, "ENOTDIR", "not a directory"},
++ {21, "EISDIR", "is a directory"},
++ {22, "EINVAL", "invalid argument"},
++ {23, "ENFILE", "file table overflow"},
++ {24, "EMFILE", "too many open files"},
++ {25, "ENOTTY", "inappropriate ioctl for device"},
++ {26, "ETXTBSY", "text file busy"},
++ {27, "EFBIG", "file too large"},
++ {28, "ENOSPC", "no space left on device"},
++ {29, "ESPIPE", "illegal seek"},
++ {30, "EROFS", "read-only file system"},
++ {31, "EMLINK", "too many links"},
++ {32, "EPIPE", "broken pipe"},
++ {33, "EDOM", "argument out of domain"},
++ {34, "ERANGE", "result too large"},
++ {35, "ENOMSG", "no message of desired type"},
++ {36, "EIDRM", "identifier removed"},
++ {37, "ECHRNG", "channel number out of range"},
++ {38, "EL2NSYNC", "level 2 not synchronized"},
++ {39, "EL3HLT", "level 3 halted"},
++ {40, "EL3RST", "level 3 reset"},
++ {41, "ELNRNG", "link number out of range"},
++ {42, "EUNATCH", "protocol driver not attached"},
++ {43, "ENOCSI", "no CSI structure available"},
++ {44, "EL2HLT", "level 2 halted"},
++ {45, "EDEADLK", "deadlock situation detected/avoided"},
++ {46, "ENOLCK", "no record locks available"},
++ {47, "ECANCELED", "operation canceled"},
++ {48, "ENOTSUP", "operation not supported"},
++ {49, "EDQUOT", "disc quota exceeded"},
++ {50, "EBADE", "bad exchange descriptor"},
++ {51, "EBADR", "bad request descriptor"},
++ {52, "EXFULL", "message tables full"},
++ {53, "ENOANO", "anode table overflow"},
++ {54, "EBADRQC", "bad request code"},
++ {55, "EBADSLT", "invalid slot"},
++ {56, "EDEADLOCK", "file locking deadlock"},
++ {57, "EBFONT", "bad font file format"},
++ {58, "EOWNERDEAD", "owner of the lock died"},
++ {59, "ENOTRECOVERABLE", "lock is not recoverable"},
++ {60, "ENOSTR", "not a stream device"},
++ {61, "ENODATA", "no data available"},
++ {62, "ETIME", "timer expired"},
++ {63, "ENOSR", "out of stream resources"},
++ {64, "ENONET", "machine is not on the network"},
++ {65, "ENOPKG", "package not installed"},
++ {66, "EREMOTE", "object is remote"},
++ {67, "ENOLINK", "link has been severed"},
++ {68, "EADV", "advertise error"},
++ {69, "ESRMNT", "srmount error"},
++ {70, "ECOMM", "communication error on send"},
++ {71, "EPROTO", "protocol error"},
++ {72, "ELOCKUNMAPPED", "locked lock was unmapped "},
++ {73, "ENOTACTIVE", "facility is not active"},
++ {74, "EMULTIHOP", "multihop attempted"},
++ {77, "EBADMSG", "not a data message"},
++ {78, "ENAMETOOLONG", "file name too long"},
++ {79, "EOVERFLOW", "value too large for defined data type"},
++ {80, "ENOTUNIQ", "name not unique on network"},
++ {81, "EBADFD", "file descriptor in bad state"},
++ {82, "EREMCHG", "remote address changed"},
++ {83, "ELIBACC", "can not access a needed shared library"},
++ {84, "ELIBBAD", "accessing a corrupted shared library"},
++ {85, "ELIBSCN", ".lib section in a.out corrupted"},
++ {86, "ELIBMAX", "attempting to link in more shared libraries than system limit"},
++ {87, "ELIBEXEC", "can not exec a shared library directly"},
++ {88, "EILSEQ", "illegal byte sequence"},
++ {89, "ENOSYS", "operation not applicable"},
++ {90, "ELOOP", "number of symbolic links encountered during path name traversal exceeds MAXSYMLINKS"},
++ {91, "ERESTART", "error 91"},
++ {92, "ESTRPIPE", "error 92"},
++ {93, "ENOTEMPTY", "directory not empty"},
++ {94, "EUSERS", "too many users"},
++ {95, "ENOTSOCK", "socket operation on non-socket"},
++ {96, "EDESTADDRREQ", "destination address required"},
++ {97, "EMSGSIZE", "message too long"},
++ {98, "EPROTOTYPE", "protocol wrong type for socket"},
++ {99, "ENOPROTOOPT", "option not supported by protocol"},
++ {120, "EPROTONOSUPPORT", "protocol not supported"},
++ {121, "ESOCKTNOSUPPORT", "socket type not supported"},
++ {122, "EOPNOTSUPP", "operation not supported on transport endpoint"},
++ {123, "EPFNOSUPPORT", "protocol family not supported"},
++ {124, "EAFNOSUPPORT", "address family not supported by protocol family"},
++ {125, "EADDRINUSE", "address already in use"},
++ {126, "EADDRNOTAVAIL", "cannot assign requested address"},
++ {127, "ENETDOWN", "network is down"},
++ {128, "ENETUNREACH", "network is unreachable"},
++ {129, "ENETRESET", "network dropped connection because of reset"},
++ {130, "ECONNABORTED", "software caused connection abort"},
++ {131, "ECONNRESET", "connection reset by peer"},
++ {132, "ENOBUFS", "no buffer space available"},
++ {133, "EISCONN", "transport endpoint is already connected"},
++ {134, "ENOTCONN", "transport endpoint is not connected"},
++ {143, "ESHUTDOWN", "cannot send after socket shutdown"},
++ {144, "ETOOMANYREFS", "too many references: cannot splice"},
++ {145, "ETIMEDOUT", "connection timed out"},
++ {146, "ECONNREFUSED", "connection refused"},
++ {147, "EHOSTDOWN", "host is down"},
++ {148, "EHOSTUNREACH", "no route to host"},
++ {149, "EALREADY", "operation already in progress"},
++ {150, "EINPROGRESS", "operation now in progress"},
++ {151, "ESTALE", "stale NFS file handle"},
+ }
+
+ // Signal table
+-var signals = [...]string{
+- 1: "hangup",
+- 2: "interrupt",
+- 3: "quit",
+- 4: "illegal Instruction",
+- 5: "trace/Breakpoint Trap",
+- 6: "abort",
+- 7: "emulation Trap",
+- 8: "arithmetic Exception",
+- 9: "killed",
+- 10: "bus Error",
+- 11: "segmentation Fault",
+- 12: "bad System Call",
+- 13: "broken Pipe",
+- 14: "alarm Clock",
+- 15: "terminated",
+- 16: "user Signal 1",
+- 17: "user Signal 2",
+- 18: "child Status Changed",
+- 19: "power-Fail/Restart",
+- 20: "window Size Change",
+- 21: "urgent Socket Condition",
+- 22: "pollable Event",
+- 23: "stopped (signal)",
+- 24: "stopped (user)",
+- 25: "continued",
+- 26: "stopped (tty input)",
+- 27: "stopped (tty output)",
+- 28: "virtual Timer Expired",
+- 29: "profiling Timer Expired",
+- 30: "cpu Limit Exceeded",
+- 31: "file Size Limit Exceeded",
+- 32: "no runnable lwp",
+- 33: "inter-lwp signal",
+- 34: "checkpoint Freeze",
+- 35: "checkpoint Thaw",
+- 36: "thread Cancellation",
+- 37: "resource Lost",
+- 38: "resource Control Exceeded",
+- 39: "reserved for JVM 1",
+- 40: "reserved for JVM 2",
+- 41: "information Request",
++var signalList = [...]struct {
++ num syscall.Signal
++ name string
++ desc string
++}{
++ {1, "SIGHUP", "hangup"},
++ {2, "SIGINT", "interrupt"},
++ {3, "SIGQUIT", "quit"},
++ {4, "SIGILL", "illegal Instruction"},
++ {5, "SIGTRAP", "trace/Breakpoint Trap"},
++ {6, "SIGABRT", "abort"},
++ {7, "SIGEMT", "emulation Trap"},
++ {8, "SIGFPE", "arithmetic Exception"},
++ {9, "SIGKILL", "killed"},
++ {10, "SIGBUS", "bus Error"},
++ {11, "SIGSEGV", "segmentation Fault"},
++ {12, "SIGSYS", "bad System Call"},
++ {13, "SIGPIPE", "broken Pipe"},
++ {14, "SIGALRM", "alarm Clock"},
++ {15, "SIGTERM", "terminated"},
++ {16, "SIGUSR1", "user Signal 1"},
++ {17, "SIGUSR2", "user Signal 2"},
++ {18, "SIGCHLD", "child Status Changed"},
++ {19, "SIGPWR", "power-Fail/Restart"},
++ {20, "SIGWINCH", "window Size Change"},
++ {21, "SIGURG", "urgent Socket Condition"},
++ {22, "SIGIO", "pollable Event"},
++ {23, "SIGSTOP", "stopped (signal)"},
++ {24, "SIGTSTP", "stopped (user)"},
++ {25, "SIGCONT", "continued"},
++ {26, "SIGTTIN", "stopped (tty input)"},
++ {27, "SIGTTOU", "stopped (tty output)"},
++ {28, "SIGVTALRM", "virtual Timer Expired"},
++ {29, "SIGPROF", "profiling Timer Expired"},
++ {30, "SIGXCPU", "cpu Limit Exceeded"},
++ {31, "SIGXFSZ", "file Size Limit Exceeded"},
++ {32, "SIGWAITING", "no runnable lwp"},
++ {33, "SIGLWP", "inter-lwp signal"},
++ {34, "SIGFREEZE", "checkpoint Freeze"},
++ {35, "SIGTHAW", "checkpoint Thaw"},
++ {36, "SIGCANCEL", "thread Cancellation"},
++ {37, "SIGLOST", "resource Lost"},
++ {38, "SIGXRES", "resource Control Exceeded"},
++ {39, "SIGJVM1", "reserved for JVM 1"},
++ {40, "SIGJVM2", "reserved for JVM 2"},
++ {41, "SIGINFO", "information Request"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go b/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go
+new file mode 100644
+index 00000000..89c5920e
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go
+@@ -0,0 +1,41 @@
++// Code generated by linux/mkall.go generatePtracePair("arm", "arm64"). DO NOT EDIT.
++
++// +build linux
++// +build arm arm64
++
++package unix
++
++import "unsafe"
++
++// PtraceRegsArm is the registers used by arm binaries.
++type PtraceRegsArm struct {
++ Uregs [18]uint32
++}
++
++// PtraceGetRegsArm fetches the registers used by arm binaries.
++func PtraceGetRegsArm(pid int, regsout *PtraceRegsArm) error {
++ return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
++}
++
++// PtraceSetRegsArm sets the registers used by arm binaries.
++func PtraceSetRegsArm(pid int, regs *PtraceRegsArm) error {
++ return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
++}
++
++// PtraceRegsArm64 is the registers used by arm64 binaries.
++type PtraceRegsArm64 struct {
++ Regs [31]uint64
++ Sp uint64
++ Pc uint64
++ Pstate uint64
++}
++
++// PtraceGetRegsArm64 fetches the registers used by arm64 binaries.
++func PtraceGetRegsArm64(pid int, regsout *PtraceRegsArm64) error {
++ return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
++}
++
++// PtraceSetRegsArm64 sets the registers used by arm64 binaries.
++func PtraceSetRegsArm64(pid int, regs *PtraceRegsArm64) error {
++ return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
++}
+diff --git a/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go b/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go
+new file mode 100644
+index 00000000..6cb6d688
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go
+@@ -0,0 +1,17 @@
++// Code generated by linux/mkall.go generatePtraceRegSet("arm64"). DO NOT EDIT.
++
++package unix
++
++import "unsafe"
++
++// PtraceGetRegSetArm64 fetches the registers used by arm64 binaries.
++func PtraceGetRegSetArm64(pid, addr int, regsout *PtraceRegsArm64) error {
++ iovec := Iovec{(*byte)(unsafe.Pointer(regsout)), uint64(unsafe.Sizeof(*regsout))}
++ return ptrace(PTRACE_GETREGSET, pid, uintptr(addr), uintptr(unsafe.Pointer(&iovec)))
++}
++
++// PtraceSetRegSetArm64 sets the registers used by arm64 binaries.
++func PtraceSetRegSetArm64(pid, addr int, regs *PtraceRegsArm64) error {
++ iovec := Iovec{(*byte)(unsafe.Pointer(regs)), uint64(unsafe.Sizeof(*regs))}
++ return ptrace(PTRACE_SETREGSET, pid, uintptr(addr), uintptr(unsafe.Pointer(&iovec)))
++}
+diff --git a/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go b/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go
+new file mode 100644
+index 00000000..24b841ee
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go
+@@ -0,0 +1,50 @@
++// Code generated by linux/mkall.go generatePtracePair("mips", "mips64"). DO NOT EDIT.
++
++// +build linux
++// +build mips mips64
++
++package unix
++
++import "unsafe"
++
++// PtraceRegsMips is the registers used by mips binaries.
++type PtraceRegsMips struct {
++ Regs [32]uint64
++ Lo uint64
++ Hi uint64
++ Epc uint64
++ Badvaddr uint64
++ Status uint64
++ Cause uint64
++}
++
++// PtraceGetRegsMips fetches the registers used by mips binaries.
++func PtraceGetRegsMips(pid int, regsout *PtraceRegsMips) error {
++ return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
++}
++
++// PtraceSetRegsMips sets the registers used by mips binaries.
++func PtraceSetRegsMips(pid int, regs *PtraceRegsMips) error {
++ return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
++}
++
++// PtraceRegsMips64 is the registers used by mips64 binaries.
++type PtraceRegsMips64 struct {
++ Regs [32]uint64
++ Lo uint64
++ Hi uint64
++ Epc uint64
++ Badvaddr uint64
++ Status uint64
++ Cause uint64
++}
++
++// PtraceGetRegsMips64 fetches the registers used by mips64 binaries.
++func PtraceGetRegsMips64(pid int, regsout *PtraceRegsMips64) error {
++ return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
++}
++
++// PtraceSetRegsMips64 sets the registers used by mips64 binaries.
++func PtraceSetRegsMips64(pid int, regs *PtraceRegsMips64) error {
++ return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
++}
+diff --git a/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go b/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go
+new file mode 100644
+index 00000000..47b04895
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go
+@@ -0,0 +1,50 @@
++// Code generated by linux/mkall.go generatePtracePair("mipsle", "mips64le"). DO NOT EDIT.
++
++// +build linux
++// +build mipsle mips64le
++
++package unix
++
++import "unsafe"
++
++// PtraceRegsMipsle is the registers used by mipsle binaries.
++type PtraceRegsMipsle struct {
++ Regs [32]uint64
++ Lo uint64
++ Hi uint64
++ Epc uint64
++ Badvaddr uint64
++ Status uint64
++ Cause uint64
++}
++
++// PtraceGetRegsMipsle fetches the registers used by mipsle binaries.
++func PtraceGetRegsMipsle(pid int, regsout *PtraceRegsMipsle) error {
++ return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
++}
++
++// PtraceSetRegsMipsle sets the registers used by mipsle binaries.
++func PtraceSetRegsMipsle(pid int, regs *PtraceRegsMipsle) error {
++ return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
++}
++
++// PtraceRegsMips64le is the registers used by mips64le binaries.
++type PtraceRegsMips64le struct {
++ Regs [32]uint64
++ Lo uint64
++ Hi uint64
++ Epc uint64
++ Badvaddr uint64
++ Status uint64
++ Cause uint64
++}
++
++// PtraceGetRegsMips64le fetches the registers used by mips64le binaries.
++func PtraceGetRegsMips64le(pid int, regsout *PtraceRegsMips64le) error {
++ return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
++}
++
++// PtraceSetRegsMips64le sets the registers used by mips64le binaries.
++func PtraceSetRegsMips64le(pid int, regs *PtraceRegsMips64le) error {
++ return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
++}
+diff --git a/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go b/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go
+new file mode 100644
+index 00000000..ea5d9cb5
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go
+@@ -0,0 +1,80 @@
++// Code generated by linux/mkall.go generatePtracePair("386", "amd64"). DO NOT EDIT.
++
++// +build linux
++// +build 386 amd64
++
++package unix
++
++import "unsafe"
++
++// PtraceRegs386 is the registers used by 386 binaries.
++type PtraceRegs386 struct {
++ Ebx int32
++ Ecx int32
++ Edx int32
++ Esi int32
++ Edi int32
++ Ebp int32
++ Eax int32
++ Xds int32
++ Xes int32
++ Xfs int32
++ Xgs int32
++ Orig_eax int32
++ Eip int32
++ Xcs int32
++ Eflags int32
++ Esp int32
++ Xss int32
++}
++
++// PtraceGetRegs386 fetches the registers used by 386 binaries.
++func PtraceGetRegs386(pid int, regsout *PtraceRegs386) error {
++ return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
++}
++
++// PtraceSetRegs386 sets the registers used by 386 binaries.
++func PtraceSetRegs386(pid int, regs *PtraceRegs386) error {
++ return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
++}
++
++// PtraceRegsAmd64 is the registers used by amd64 binaries.
++type PtraceRegsAmd64 struct {
++ R15 uint64
++ R14 uint64
++ R13 uint64
++ R12 uint64
++ Rbp uint64
++ Rbx uint64
++ R11 uint64
++ R10 uint64
++ R9 uint64
++ R8 uint64
++ Rax uint64
++ Rcx uint64
++ Rdx uint64
++ Rsi uint64
++ Rdi uint64
++ Orig_rax uint64
++ Rip uint64
++ Cs uint64
++ Eflags uint64
++ Rsp uint64
++ Ss uint64
++ Fs_base uint64
++ Gs_base uint64
++ Ds uint64
++ Es uint64
++ Fs uint64
++ Gs uint64
++}
++
++// PtraceGetRegsAmd64 fetches the registers used by amd64 binaries.
++func PtraceGetRegsAmd64(pid int, regsout *PtraceRegsAmd64) error {
++ return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
++}
++
++// PtraceSetRegsAmd64 sets the registers used by amd64 binaries.
++func PtraceSetRegsAmd64(pid int, regs *PtraceRegsAmd64) error {
++ return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
++}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go
+new file mode 100644
+index 00000000..ed657ff1
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go
+@@ -0,0 +1,1484 @@
++// go run mksyscall_aix_ppc.go -aix -tags aix,ppc syscall_aix.go syscall_aix_ppc.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build aix,ppc
++
++package unix
++
++/*
++#include <stdint.h>
++#include <stddef.h>
++int utimes(uintptr_t, uintptr_t);
++int utimensat(int, uintptr_t, uintptr_t, int);
++int getcwd(uintptr_t, size_t);
++int accept(int, uintptr_t, uintptr_t);
++int getdirent(int, uintptr_t, size_t);
++int wait4(int, uintptr_t, int, uintptr_t);
++int ioctl(int, int, uintptr_t);
++int fcntl(uintptr_t, int, uintptr_t);
++int acct(uintptr_t);
++int chdir(uintptr_t);
++int chroot(uintptr_t);
++int close(int);
++int dup(int);
++void exit(int);
++int faccessat(int, uintptr_t, unsigned int, int);
++int fchdir(int);
++int fchmod(int, unsigned int);
++int fchmodat(int, uintptr_t, unsigned int, int);
++int fchownat(int, uintptr_t, int, int, int);
++int fdatasync(int);
++int fsync(int);
++int getpgid(int);
++int getpgrp();
++int getpid();
++int getppid();
++int getpriority(int, int);
++int getrusage(int, uintptr_t);
++int getsid(int);
++int kill(int, int);
++int syslog(int, uintptr_t, size_t);
++int mkdir(int, uintptr_t, unsigned int);
++int mkdirat(int, uintptr_t, unsigned int);
++int mkfifo(uintptr_t, unsigned int);
++int mknod(uintptr_t, unsigned int, int);
++int mknodat(int, uintptr_t, unsigned int, int);
++int nanosleep(uintptr_t, uintptr_t);
++int open64(uintptr_t, int, unsigned int);
++int openat(int, uintptr_t, int, unsigned int);
++int read(int, uintptr_t, size_t);
++int readlink(uintptr_t, uintptr_t, size_t);
++int renameat(int, uintptr_t, int, uintptr_t);
++int setdomainname(uintptr_t, size_t);
++int sethostname(uintptr_t, size_t);
++int setpgid(int, int);
++int setsid();
++int settimeofday(uintptr_t);
++int setuid(int);
++int setgid(int);
++int setpriority(int, int, int);
++int statx(int, uintptr_t, int, int, uintptr_t);
++int sync();
++uintptr_t times(uintptr_t);
++int umask(int);
++int uname(uintptr_t);
++int unlink(uintptr_t);
++int unlinkat(int, uintptr_t, int);
++int ustat(int, uintptr_t);
++int write(int, uintptr_t, size_t);
++int dup2(int, int);
++int posix_fadvise64(int, long long, long long, int);
++int fchown(int, int, int);
++int fstat(int, uintptr_t);
++int fstatat(int, uintptr_t, uintptr_t, int);
++int fstatfs(int, uintptr_t);
++int ftruncate(int, long long);
++int getegid();
++int geteuid();
++int getgid();
++int getuid();
++int lchown(uintptr_t, int, int);
++int listen(int, int);
++int lstat(uintptr_t, uintptr_t);
++int pause();
++int pread64(int, uintptr_t, size_t, long long);
++int pwrite64(int, uintptr_t, size_t, long long);
++#define c_select select
++int select(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
++int pselect(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
++int setregid(int, int);
++int setreuid(int, int);
++int shutdown(int, int);
++long long splice(int, uintptr_t, int, uintptr_t, int, int);
++int stat(uintptr_t, uintptr_t);
++int statfs(uintptr_t, uintptr_t);
++int truncate(uintptr_t, long long);
++int bind(int, uintptr_t, uintptr_t);
++int connect(int, uintptr_t, uintptr_t);
++int getgroups(int, uintptr_t);
++int setgroups(int, uintptr_t);
++int getsockopt(int, int, int, uintptr_t, uintptr_t);
++int setsockopt(int, int, int, uintptr_t, uintptr_t);
++int socket(int, int, int);
++int socketpair(int, int, int, uintptr_t);
++int getpeername(int, uintptr_t, uintptr_t);
++int getsockname(int, uintptr_t, uintptr_t);
++int recvfrom(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);
++int sendto(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);
++int nrecvmsg(int, uintptr_t, int);
++int nsendmsg(int, uintptr_t, int);
++int munmap(uintptr_t, uintptr_t);
++int madvise(uintptr_t, size_t, int);
++int mprotect(uintptr_t, size_t, int);
++int mlock(uintptr_t, size_t);
++int mlockall(int);
++int msync(uintptr_t, size_t, int);
++int munlock(uintptr_t, size_t);
++int munlockall();
++int pipe(uintptr_t);
++int poll(uintptr_t, int, int);
++int gettimeofday(uintptr_t, uintptr_t);
++int time(uintptr_t);
++int utime(uintptr_t, uintptr_t);
++unsigned long long getsystemcfg(int);
++int umount(uintptr_t);
++int getrlimit64(int, uintptr_t);
++int setrlimit64(int, uintptr_t);
++long long lseek64(int, long long, int);
++uintptr_t mmap(uintptr_t, uintptr_t, int, int, int, long long);
++
++*/
++import "C"
++import (
++ "unsafe"
++)
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func utimes(path string, times *[2]Timeval) (err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(path)))
++ r0, er := C.utimes(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(times))))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(path)))
++ r0, er := C.utimensat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(times))), C.int(flag))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getcwd(buf []byte) (err error) {
++ var _p0 *byte
++ if len(buf) > 0 {
++ _p0 = &buf[0]
++ }
++ var _p1 int
++ _p1 = len(buf)
++ r0, er := C.getcwd(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
++ r0, er := C.accept(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen))))
++ fd = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getdirent(fd int, buf []byte) (n int, err error) {
++ var _p0 *byte
++ if len(buf) > 0 {
++ _p0 = &buf[0]
++ }
++ var _p1 int
++ _p1 = len(buf)
++ r0, er := C.getdirent(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))
++ n = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) {
++ r0, er := C.wait4(C.int(pid), C.uintptr_t(uintptr(unsafe.Pointer(status))), C.int(options), C.uintptr_t(uintptr(unsafe.Pointer(rusage))))
++ wpid = Pid_t(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ioctl(fd int, req uint, arg uintptr) (err error) {
++ r0, er := C.ioctl(C.int(fd), C.int(req), C.uintptr_t(arg))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func FcntlInt(fd uintptr, cmd int, arg int) (r int, err error) {
++ r0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg))
++ r = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) {
++ r0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(uintptr(unsafe.Pointer(lk))))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fcntl(fd int, cmd int, arg int) (val int, err error) {
++ r0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg))
++ val = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Acct(path string) (err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(path)))
++ r0, er := C.acct(C.uintptr_t(_p0))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Chdir(path string) (err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(path)))
++ r0, er := C.chdir(C.uintptr_t(_p0))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Chroot(path string) (err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(path)))
++ r0, er := C.chroot(C.uintptr_t(_p0))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Close(fd int) (err error) {
++ r0, er := C.close(C.int(fd))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Dup(oldfd int) (fd int, err error) {
++ r0, er := C.dup(C.int(oldfd))
++ fd = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Exit(code int) {
++ C.exit(C.int(code))
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(path)))
++ r0, er := C.faccessat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fchdir(fd int) (err error) {
++ r0, er := C.fchdir(C.int(fd))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fchmod(fd int, mode uint32) (err error) {
++ r0, er := C.fchmod(C.int(fd), C.uint(mode))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(path)))
++ r0, er := C.fchmodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(path)))
++ r0, er := C.fchownat(C.int(dirfd), C.uintptr_t(_p0), C.int(uid), C.int(gid), C.int(flags))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fdatasync(fd int) (err error) {
++ r0, er := C.fdatasync(C.int(fd))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fsync(fd int) (err error) {
++ r0, er := C.fsync(C.int(fd))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getpgid(pid int) (pgid int, err error) {
++ r0, er := C.getpgid(C.int(pid))
++ pgid = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getpgrp() (pid int) {
++ r0, _ := C.getpgrp()
++ pid = int(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getpid() (pid int) {
++ r0, _ := C.getpid()
++ pid = int(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getppid() (ppid int) {
++ r0, _ := C.getppid()
++ ppid = int(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getpriority(which int, who int) (prio int, err error) {
++ r0, er := C.getpriority(C.int(which), C.int(who))
++ prio = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getrusage(who int, rusage *Rusage) (err error) {
++ r0, er := C.getrusage(C.int(who), C.uintptr_t(uintptr(unsafe.Pointer(rusage))))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getsid(pid int) (sid int, err error) {
++ r0, er := C.getsid(C.int(pid))
++ sid = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Kill(pid int, sig Signal) (err error) {
++ r0, er := C.kill(C.int(pid), C.int(sig))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Klogctl(typ int, buf []byte) (n int, err error) {
++ var _p0 *byte
++ if len(buf) > 0 {
++ _p0 = &buf[0]
++ }
++ var _p1 int
++ _p1 = len(buf)
++ r0, er := C.syslog(C.int(typ), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))
++ n = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Mkdir(dirfd int, path string, mode uint32) (err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(path)))
++ r0, er := C.mkdir(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Mkdirat(dirfd int, path string, mode uint32) (err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(path)))
++ r0, er := C.mkdirat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Mkfifo(path string, mode uint32) (err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(path)))
++ r0, er := C.mkfifo(C.uintptr_t(_p0), C.uint(mode))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Mknod(path string, mode uint32, dev int) (err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(path)))
++ r0, er := C.mknod(C.uintptr_t(_p0), C.uint(mode), C.int(dev))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(path)))
++ r0, er := C.mknodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(dev))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
++ r0, er := C.nanosleep(C.uintptr_t(uintptr(unsafe.Pointer(time))), C.uintptr_t(uintptr(unsafe.Pointer(leftover))))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Open(path string, mode int, perm uint32) (fd int, err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(path)))
++ r0, er := C.open64(C.uintptr_t(_p0), C.int(mode), C.uint(perm))
++ fd = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(path)))
++ r0, er := C.openat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.uint(mode))
++ fd = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func read(fd int, p []byte) (n int, err error) {
++ var _p0 *byte
++ if len(p) > 0 {
++ _p0 = &p[0]
++ }
++ var _p1 int
++ _p1 = len(p)
++ r0, er := C.read(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))
++ n = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Readlink(path string, buf []byte) (n int, err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(path)))
++ var _p1 *byte
++ if len(buf) > 0 {
++ _p1 = &buf[0]
++ }
++ var _p2 int
++ _p2 = len(buf)
++ r0, er := C.readlink(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(_p1))), C.size_t(_p2))
++ n = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(oldpath)))
++ _p1 := uintptr(unsafe.Pointer(C.CString(newpath)))
++ r0, er := C.renameat(C.int(olddirfd), C.uintptr_t(_p0), C.int(newdirfd), C.uintptr_t(_p1))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setdomainname(p []byte) (err error) {
++ var _p0 *byte
++ if len(p) > 0 {
++ _p0 = &p[0]
++ }
++ var _p1 int
++ _p1 = len(p)
++ r0, er := C.setdomainname(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Sethostname(p []byte) (err error) {
++ var _p0 *byte
++ if len(p) > 0 {
++ _p0 = &p[0]
++ }
++ var _p1 int
++ _p1 = len(p)
++ r0, er := C.sethostname(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setpgid(pid int, pgid int) (err error) {
++ r0, er := C.setpgid(C.int(pid), C.int(pgid))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setsid() (pid int, err error) {
++ r0, er := C.setsid()
++ pid = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Settimeofday(tv *Timeval) (err error) {
++ r0, er := C.settimeofday(C.uintptr_t(uintptr(unsafe.Pointer(tv))))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setuid(uid int) (err error) {
++ r0, er := C.setuid(C.int(uid))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setgid(uid int) (err error) {
++ r0, er := C.setgid(C.int(uid))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setpriority(which int, who int, prio int) (err error) {
++ r0, er := C.setpriority(C.int(which), C.int(who), C.int(prio))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(path)))
++ r0, er := C.statx(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.int(mask), C.uintptr_t(uintptr(unsafe.Pointer(stat))))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Sync() {
++ C.sync()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Times(tms *Tms) (ticks uintptr, err error) {
++ r0, er := C.times(C.uintptr_t(uintptr(unsafe.Pointer(tms))))
++ ticks = uintptr(r0)
++ if uintptr(r0) == ^uintptr(0) && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Umask(mask int) (oldmask int) {
++ r0, _ := C.umask(C.int(mask))
++ oldmask = int(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Uname(buf *Utsname) (err error) {
++ r0, er := C.uname(C.uintptr_t(uintptr(unsafe.Pointer(buf))))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Unlink(path string) (err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(path)))
++ r0, er := C.unlink(C.uintptr_t(_p0))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Unlinkat(dirfd int, path string, flags int) (err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(path)))
++ r0, er := C.unlinkat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Ustat(dev int, ubuf *Ustat_t) (err error) {
++ r0, er := C.ustat(C.int(dev), C.uintptr_t(uintptr(unsafe.Pointer(ubuf))))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func write(fd int, p []byte) (n int, err error) {
++ var _p0 *byte
++ if len(p) > 0 {
++ _p0 = &p[0]
++ }
++ var _p1 int
++ _p1 = len(p)
++ r0, er := C.write(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))
++ n = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func readlen(fd int, p *byte, np int) (n int, err error) {
++ r0, er := C.read(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(p))), C.size_t(np))
++ n = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func writelen(fd int, p *byte, np int) (n int, err error) {
++ r0, er := C.write(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(p))), C.size_t(np))
++ n = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Dup2(oldfd int, newfd int) (err error) {
++ r0, er := C.dup2(C.int(oldfd), C.int(newfd))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
++ r0, er := C.posix_fadvise64(C.int(fd), C.longlong(offset), C.longlong(length), C.int(advice))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fchown(fd int, uid int, gid int) (err error) {
++ r0, er := C.fchown(C.int(fd), C.int(uid), C.int(gid))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fstat(fd int, stat *Stat_t) (err error) {
++ r0, er := C.fstat(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(stat))))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(path)))
++ r0, er := C.fstatat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(stat))), C.int(flags))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatfs(fd int, buf *Statfs_t) (err error) {
++ r0, er := C.fstatfs(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(buf))))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Ftruncate(fd int, length int64) (err error) {
++ r0, er := C.ftruncate(C.int(fd), C.longlong(length))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getegid() (egid int) {
++ r0, _ := C.getegid()
++ egid = int(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Geteuid() (euid int) {
++ r0, _ := C.geteuid()
++ euid = int(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getgid() (gid int) {
++ r0, _ := C.getgid()
++ gid = int(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getuid() (uid int) {
++ r0, _ := C.getuid()
++ uid = int(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Lchown(path string, uid int, gid int) (err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(path)))
++ r0, er := C.lchown(C.uintptr_t(_p0), C.int(uid), C.int(gid))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Listen(s int, n int) (err error) {
++ r0, er := C.listen(C.int(s), C.int(n))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func lstat(path string, stat *Stat_t) (err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(path)))
++ r0, er := C.lstat(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(stat))))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Pause() (err error) {
++ r0, er := C.pause()
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Pread(fd int, p []byte, offset int64) (n int, err error) {
++ var _p0 *byte
++ if len(p) > 0 {
++ _p0 = &p[0]
++ }
++ var _p1 int
++ _p1 = len(p)
++ r0, er := C.pread64(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.longlong(offset))
++ n = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
++ var _p0 *byte
++ if len(p) > 0 {
++ _p0 = &p[0]
++ }
++ var _p1 int
++ _p1 = len(p)
++ r0, er := C.pwrite64(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.longlong(offset))
++ n = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ r0, er := C.c_select(C.int(nfd), C.uintptr_t(uintptr(unsafe.Pointer(r))), C.uintptr_t(uintptr(unsafe.Pointer(w))), C.uintptr_t(uintptr(unsafe.Pointer(e))), C.uintptr_t(uintptr(unsafe.Pointer(timeout))))
++ n = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
++ r0, er := C.pselect(C.int(nfd), C.uintptr_t(uintptr(unsafe.Pointer(r))), C.uintptr_t(uintptr(unsafe.Pointer(w))), C.uintptr_t(uintptr(unsafe.Pointer(e))), C.uintptr_t(uintptr(unsafe.Pointer(timeout))), C.uintptr_t(uintptr(unsafe.Pointer(sigmask))))
++ n = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setregid(rgid int, egid int) (err error) {
++ r0, er := C.setregid(C.int(rgid), C.int(egid))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setreuid(ruid int, euid int) (err error) {
++ r0, er := C.setreuid(C.int(ruid), C.int(euid))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Shutdown(fd int, how int) (err error) {
++ r0, er := C.shutdown(C.int(fd), C.int(how))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
++ r0, er := C.splice(C.int(rfd), C.uintptr_t(uintptr(unsafe.Pointer(roff))), C.int(wfd), C.uintptr_t(uintptr(unsafe.Pointer(woff))), C.int(len), C.int(flags))
++ n = int64(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func stat(path string, statptr *Stat_t) (err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(path)))
++ r0, er := C.stat(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(statptr))))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Statfs(path string, buf *Statfs_t) (err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(path)))
++ r0, er := C.statfs(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(buf))))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Truncate(path string, length int64) (err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(path)))
++ r0, er := C.truncate(C.uintptr_t(_p0), C.longlong(length))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
++ r0, er := C.bind(C.int(s), C.uintptr_t(uintptr(addr)), C.uintptr_t(uintptr(addrlen)))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
++ r0, er := C.connect(C.int(s), C.uintptr_t(uintptr(addr)), C.uintptr_t(uintptr(addrlen)))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getgroups(n int, list *_Gid_t) (nn int, err error) {
++ r0, er := C.getgroups(C.int(n), C.uintptr_t(uintptr(unsafe.Pointer(list))))
++ nn = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setgroups(n int, list *_Gid_t) (err error) {
++ r0, er := C.setgroups(C.int(n), C.uintptr_t(uintptr(unsafe.Pointer(list))))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
++ r0, er := C.getsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(uintptr(val)), C.uintptr_t(uintptr(unsafe.Pointer(vallen))))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
++ r0, er := C.setsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(uintptr(val)), C.uintptr_t(vallen))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func socket(domain int, typ int, proto int) (fd int, err error) {
++ r0, er := C.socket(C.int(domain), C.int(typ), C.int(proto))
++ fd = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
++ r0, er := C.socketpair(C.int(domain), C.int(typ), C.int(proto), C.uintptr_t(uintptr(unsafe.Pointer(fd))))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
++ r0, er := C.getpeername(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen))))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
++ r0, er := C.getsockname(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen))))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
++ var _p0 *byte
++ if len(p) > 0 {
++ _p0 = &p[0]
++ }
++ var _p1 int
++ _p1 = len(p)
++ r0, er := C.recvfrom(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags), C.uintptr_t(uintptr(unsafe.Pointer(from))), C.uintptr_t(uintptr(unsafe.Pointer(fromlen))))
++ n = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
++ var _p0 *byte
++ if len(buf) > 0 {
++ _p0 = &buf[0]
++ }
++ var _p1 int
++ _p1 = len(buf)
++ r0, er := C.sendto(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags), C.uintptr_t(uintptr(to)), C.uintptr_t(uintptr(addrlen)))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
++ r0, er := C.nrecvmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags))
++ n = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
++ r0, er := C.nsendmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags))
++ n = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func munmap(addr uintptr, length uintptr) (err error) {
++ r0, er := C.munmap(C.uintptr_t(addr), C.uintptr_t(length))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Madvise(b []byte, advice int) (err error) {
++ var _p0 *byte
++ if len(b) > 0 {
++ _p0 = &b[0]
++ }
++ var _p1 int
++ _p1 = len(b)
++ r0, er := C.madvise(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(advice))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Mprotect(b []byte, prot int) (err error) {
++ var _p0 *byte
++ if len(b) > 0 {
++ _p0 = &b[0]
++ }
++ var _p1 int
++ _p1 = len(b)
++ r0, er := C.mprotect(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(prot))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Mlock(b []byte) (err error) {
++ var _p0 *byte
++ if len(b) > 0 {
++ _p0 = &b[0]
++ }
++ var _p1 int
++ _p1 = len(b)
++ r0, er := C.mlock(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Mlockall(flags int) (err error) {
++ r0, er := C.mlockall(C.int(flags))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Msync(b []byte, flags int) (err error) {
++ var _p0 *byte
++ if len(b) > 0 {
++ _p0 = &b[0]
++ }
++ var _p1 int
++ _p1 = len(b)
++ r0, er := C.msync(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Munlock(b []byte) (err error) {
++ var _p0 *byte
++ if len(b) > 0 {
++ _p0 = &b[0]
++ }
++ var _p1 int
++ _p1 = len(b)
++ r0, er := C.munlock(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Munlockall() (err error) {
++ r0, er := C.munlockall()
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func pipe(p *[2]_C_int) (err error) {
++ r0, er := C.pipe(C.uintptr_t(uintptr(unsafe.Pointer(p))))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++ r0, er := C.poll(C.uintptr_t(uintptr(unsafe.Pointer(fds))), C.int(nfds), C.int(timeout))
++ n = int(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func gettimeofday(tv *Timeval, tzp *Timezone) (err error) {
++ r0, er := C.gettimeofday(C.uintptr_t(uintptr(unsafe.Pointer(tv))), C.uintptr_t(uintptr(unsafe.Pointer(tzp))))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Time(t *Time_t) (tt Time_t, err error) {
++ r0, er := C.time(C.uintptr_t(uintptr(unsafe.Pointer(t))))
++ tt = Time_t(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Utime(path string, buf *Utimbuf) (err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(path)))
++ r0, er := C.utime(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(buf))))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getsystemcfg(label int) (n uint64) {
++ r0, _ := C.getsystemcfg(C.int(label))
++ n = uint64(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func umount(target string) (err error) {
++ _p0 := uintptr(unsafe.Pointer(C.CString(target)))
++ r0, er := C.umount(C.uintptr_t(_p0))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getrlimit(resource int, rlim *Rlimit) (err error) {
++ r0, er := C.getrlimit64(C.int(resource), C.uintptr_t(uintptr(unsafe.Pointer(rlim))))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setrlimit(resource int, rlim *Rlimit) (err error) {
++ r0, er := C.setrlimit64(C.int(resource), C.uintptr_t(uintptr(unsafe.Pointer(rlim))))
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Seek(fd int, offset int64, whence int) (off int64, err error) {
++ r0, er := C.lseek64(C.int(fd), C.longlong(offset), C.int(whence))
++ off = int64(r0)
++ if r0 == -1 && er != nil {
++ err = er
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
++ r0, er := C.mmap(C.uintptr_t(addr), C.uintptr_t(length), C.int(prot), C.int(flags), C.int(fd), C.longlong(offset))
++ xaddr = uintptr(r0)
++ if uintptr(r0) == ^uintptr(0) && er != nil {
++ err = er
++ }
++ return
++}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go
+similarity index 57%
+copy from vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go
+copy to vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go
+index 7b6c2c87..664b293b 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go
+@@ -1,22 +1,23 @@
+-// mksyscall.pl -netbsd -tags netbsd,amd64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_amd64.go
++// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+-// +build netbsd,amd64
++// +build aix,ppc64
+
+ package unix
+
+ import (
+- "syscall"
+ "unsafe"
+ )
+
+-var _ syscall.Errno
+-
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+- n = int(r0)
++func utimes(path string, times *[2]Timeval) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, e1 := callutimes(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -25,8 +26,13 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func setgroups(ngid int, gid *_Gid_t) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
++func utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, e1 := callutimensat(dirfd, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), flag)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -35,9 +41,12 @@ func setgroups(ngid int, gid *_Gid_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+- r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+- wpid = int(r0)
++func getcwd(buf []byte) (err error) {
++ var _p0 *byte
++ if len(buf) > 0 {
++ _p0 = &buf[0]
++ }
++ _, e1 := callgetcwd(uintptr(unsafe.Pointer(_p0)), len(buf))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -47,7 +56,7 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
++ r0, e1 := callaccept(s, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -57,8 +66,13 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+- _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
++func getdirent(fd int, buf []byte) (n int, err error) {
++ var _p0 *byte
++ if len(buf) > 0 {
++ _p0 = &buf[0]
++ }
++ r0, e1 := callgetdirent(fd, uintptr(unsafe.Pointer(_p0)), len(buf))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -67,8 +81,9 @@ func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+- _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
++func wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) {
++ r0, e1 := callwait4(int(pid), uintptr(unsafe.Pointer(status)), options, uintptr(unsafe.Pointer(rusage)))
++ wpid = Pid_t(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -77,9 +92,8 @@ func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func socket(domain int, typ int, proto int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
+- fd = int(r0)
++func ioctl(fd int, req uint, arg uintptr) (err error) {
++ _, e1 := callioctl(fd, int(req), arg)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -88,8 +102,9 @@ func socket(domain int, typ int, proto int) (fd int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+- _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
++func FcntlInt(fd uintptr, cmd int, arg int) (r int, err error) {
++ r0, e1 := callfcntl(fd, cmd, uintptr(arg))
++ r = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -98,8 +113,8 @@ func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
++func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) {
++ _, e1 := callfcntl(fd, cmd, uintptr(unsafe.Pointer(lk)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -108,8 +123,9 @@ func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr)
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
++func fcntl(fd int, cmd int, arg int) (val int, err error) {
++ r0, e1 := callfcntl(uintptr(fd), cmd, uintptr(arg))
++ val = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -118,8 +134,13 @@ func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
++func Acct(path string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, e1 := callacct(uintptr(unsafe.Pointer(_p0)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -128,8 +149,13 @@ func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Shutdown(s int, how int) (err error) {
+- _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)
++func Chdir(path string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, e1 := callchdir(uintptr(unsafe.Pointer(_p0)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -138,8 +164,13 @@ func Shutdown(s int, how int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+- _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
++func Chroot(path string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, e1 := callchroot(uintptr(unsafe.Pointer(_p0)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -148,15 +179,8 @@ func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+- n = int(r0)
++func Close(fd int) (err error) {
++ _, e1 := callclose(fd)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -165,14 +189,9 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
++func Dup(oldfd int) (fd int, err error) {
++ r0, e1 := calldup(oldfd)
++ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -181,9 +200,20 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+- n = int(r0)
++func Exit(code int) {
++ callexit(code)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, e1 := callfaccessat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, flags)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -192,9 +222,8 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+- n = int(r0)
++func Fchdir(fd int) (err error) {
++ _, e1 := callfchdir(fd)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -203,9 +232,8 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
+- n = int(r0)
++func Fchmod(fd int, mode uint32) (err error) {
++ _, e1 := callfchmod(fd, mode)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -214,14 +242,13 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+- var _p0 unsafe.Pointer
+- if len(mib) > 0 {
+- _p0 = unsafe.Pointer(&mib[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
++func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
+ }
+- _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
++ _, e1 := callfchmodat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, flags)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -230,13 +257,13 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr)
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func utimes(path string, timeval *[2]Timeval) (err error) {
++func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
++ _, e1 := callfchownat(dirfd, uintptr(unsafe.Pointer(_p0)), uid, gid, flags)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -245,8 +272,8 @@ func utimes(path string, timeval *[2]Timeval) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func futimes(fd int, timeval *[2]Timeval) (err error) {
+- _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
++func Fdatasync(fd int) (err error) {
++ _, e1 := callfdatasync(fd)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -255,9 +282,8 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
++func Fsync(fd int) (err error) {
++ _, e1 := callfsync(fd)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -266,14 +292,9 @@ func fcntl(fd int, cmd int, arg int) (val int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Madvise(b []byte, behav int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))
++func Getpgid(pid int) (pgid int, err error) {
++ r0, e1 := callgetpgid(pid)
++ pgid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -282,56 +303,33 @@ func Madvise(b []byte, behav int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Mlock(b []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
++func Getpgrp() (pid int) {
++ r0, _ := callgetpgrp()
++ pid = int(r0)
+ return
+ }
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Mlockall(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
++func Getpid() (pid int) {
++ r0, _ := callgetpid()
++ pid = int(r0)
+ return
+ }
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Mprotect(b []byte, prot int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
++func Getppid() (ppid int) {
++ r0, _ := callgetppid()
++ ppid = int(r0)
+ return
+ }
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Msync(b []byte, flags int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
++func Getpriority(which int, who int) (prio int, err error) {
++ r0, e1 := callgetpriority(which, who)
++ prio = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -340,14 +338,8 @@ func Msync(b []byte, flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Munlock(b []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
++func Getrusage(who int, rusage *Rusage) (err error) {
++ _, e1 := callgetrusage(who, uintptr(unsafe.Pointer(rusage)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -356,8 +348,9 @@ func Munlock(b []byte) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Munlockall() (err error) {
+- _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
++func Getsid(pid int) (sid int, err error) {
++ r0, e1 := callgetsid(pid)
++ sid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -366,10 +359,8 @@ func Munlockall() (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func pipe() (fd1 int, fd2 int, err error) {
+- r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
+- fd1 = int(r0)
+- fd2 = int(r1)
++func Kill(pid int, sig Signal) (err error) {
++ _, e1 := callkill(pid, int(sig))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -378,14 +369,12 @@ func pipe() (fd1 int, fd2 int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func getdents(fd int, buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
++func Klogctl(typ int, buf []byte) (n int, err error) {
++ var _p0 *byte
+ if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
++ _p0 = &buf[0]
+ }
+- r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
++ r0, e1 := callsyslog(typ, uintptr(unsafe.Pointer(_p0)), len(buf))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -395,13 +384,13 @@ func getdents(fd int, buf []byte) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Access(path string, mode uint32) (err error) {
++func Mkdir(dirfd int, path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++ _, e1 := callmkdir(dirfd, uintptr(unsafe.Pointer(_p0)), mode)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -410,8 +399,13 @@ func Access(path string, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+- _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
++func Mkdirat(dirfd int, path string, mode uint32) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, e1 := callmkdirat(dirfd, uintptr(unsafe.Pointer(_p0)), mode)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -420,13 +414,13 @@ func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Chdir(path string) (err error) {
++func Mkfifo(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, e1 := callmkfifo(uintptr(unsafe.Pointer(_p0)), mode)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -435,13 +429,13 @@ func Chdir(path string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Chflags(path string, flags int) (err error) {
++func Mknod(path string, mode uint32, dev int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++ _, e1 := callmknod(uintptr(unsafe.Pointer(_p0)), mode, dev)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -450,13 +444,13 @@ func Chflags(path string, flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Chmod(path string, mode uint32) (err error) {
++func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++ _, e1 := callmknodat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, dev)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -465,13 +459,8 @@ func Chmod(path string, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Chown(path string, uid int, gid int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
++func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
++ _, e1 := callnanosleep(uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -480,13 +469,14 @@ func Chown(path string, uid int, gid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Chroot(path string) (err error) {
++func Open(path string, mode int, perm uint32) (fd int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ r0, e1 := callopen64(uintptr(unsafe.Pointer(_p0)), mode, perm)
++ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -495,8 +485,14 @@ func Chroot(path string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Close(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
++func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ r0, e1 := callopenat(dirfd, uintptr(unsafe.Pointer(_p0)), flags, mode)
++ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -505,9 +501,13 @@ func Close(fd int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Dup(fd int) (nfd int, err error) {
+- r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)
+- nfd = int(r0)
++func read(fd int, p []byte) (n int, err error) {
++ var _p0 *byte
++ if len(p) > 0 {
++ _p0 = &p[0]
++ }
++ r0, e1 := callread(fd, uintptr(unsafe.Pointer(_p0)), len(p))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -516,8 +516,18 @@ func Dup(fd int) (nfd int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Dup2(from int, to int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)
++func Readlink(path string, buf []byte) (n int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ if len(buf) > 0 {
++ _p1 = &buf[0]
++ }
++ r0, e1 := callreadlink(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), len(buf))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -526,15 +536,32 @@ func Dup2(from int, to int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Exit(code int) {
+- Syscall(SYS_EXIT, uintptr(code), 0, 0)
++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(oldpath)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(newpath)
++ if err != nil {
++ return
++ }
++ _, e1 := callrenameat(olddirfd, uintptr(unsafe.Pointer(_p0)), newdirfd, uintptr(unsafe.Pointer(_p1)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
+ return
+ }
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fchdir(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
++func Setdomainname(p []byte) (err error) {
++ var _p0 *byte
++ if len(p) > 0 {
++ _p0 = &p[0]
++ }
++ _, e1 := callsetdomainname(uintptr(unsafe.Pointer(_p0)), len(p))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -543,8 +570,12 @@ func Fchdir(fd int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fchflags(fd int, flags int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)
++func Sethostname(p []byte) (err error) {
++ var _p0 *byte
++ if len(p) > 0 {
++ _p0 = &p[0]
++ }
++ _, e1 := callsethostname(uintptr(unsafe.Pointer(_p0)), len(p))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -553,8 +584,8 @@ func Fchflags(fd int, flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fchmod(fd int, mode uint32) (err error) {
+- _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
++func Setpgid(pid int, pgid int) (err error) {
++ _, e1 := callsetpgid(pid, pgid)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -563,8 +594,9 @@ func Fchmod(fd int, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fchown(fd int, uid int, gid int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
++func Setsid() (pid int, err error) {
++ r0, e1 := callsetsid()
++ pid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -573,8 +605,8 @@ func Fchown(fd int, uid int, gid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Flock(fd int, how int) (err error) {
+- _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
++func Settimeofday(tv *Timeval) (err error) {
++ _, e1 := callsettimeofday(uintptr(unsafe.Pointer(tv)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -583,9 +615,8 @@ func Flock(fd int, how int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fpathconf(fd int, name int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)
+- val = int(r0)
++func Setuid(uid int) (err error) {
++ _, e1 := callsetuid(uid)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -594,8 +625,8 @@ func Fpathconf(fd int, name int) (val int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fstat(fd int, stat *Stat_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++func Setgid(uid int) (err error) {
++ _, e1 := callsetgid(uid)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -604,8 +635,8 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fsync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
++func Setpriority(which int, who int, prio int) (err error) {
++ _, e1 := callsetpriority(which, who, prio)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -614,8 +645,13 @@ func Fsync(fd int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Ftruncate(fd int, length int64) (err error) {
+- _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length))
++func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, e1 := callstatx(dirfd, uintptr(unsafe.Pointer(_p0)), flags, mask, uintptr(unsafe.Pointer(stat)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -624,33 +660,34 @@ func Ftruncate(fd int, length int64) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Getegid() (egid int) {
+- r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+- egid = int(r0)
++func Sync() {
++ callsync()
+ return
+ }
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Geteuid() (uid int) {
+- r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+- uid = int(r0)
++func Times(tms *Tms) (ticks uintptr, err error) {
++ r0, e1 := calltimes(uintptr(unsafe.Pointer(tms)))
++ ticks = uintptr(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
+ return
+ }
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Getgid() (gid int) {
+- r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+- gid = int(r0)
++func Umask(mask int) (oldmask int) {
++ r0, _ := callumask(mask)
++ oldmask = int(r0)
+ return
+ }
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Getpgid(pid int) (pgid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+- pgid = int(r0)
++func Uname(buf *Utsname) (err error) {
++ _, e1 := calluname(uintptr(unsafe.Pointer(buf)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -659,33 +696,53 @@ func Getpgid(pid int) (pgid int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Getpgrp() (pgrp int) {
+- r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)
+- pgrp = int(r0)
++func Unlink(path string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, e1 := callunlink(uintptr(unsafe.Pointer(_p0)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
+ return
+ }
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Getpid() (pid int) {
+- r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+- pid = int(r0)
++func Unlinkat(dirfd int, path string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, e1 := callunlinkat(dirfd, uintptr(unsafe.Pointer(_p0)), flags)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
+ return
+ }
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Getppid() (ppid int) {
+- r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+- ppid = int(r0)
++func Ustat(dev int, ubuf *Ustat_t) (err error) {
++ _, e1 := callustat(dev, uintptr(unsafe.Pointer(ubuf)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
+ return
+ }
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Getpriority(which int, who int) (prio int, err error) {
+- r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+- prio = int(r0)
++func write(fd int, p []byte) (n int, err error) {
++ var _p0 *byte
++ if len(p) > 0 {
++ _p0 = &p[0]
++ }
++ r0, e1 := callwrite(fd, uintptr(unsafe.Pointer(_p0)), len(p))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -694,8 +751,9 @@ func Getpriority(which int, who int) (prio int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Getrlimit(which int, lim *Rlimit) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
++func readlen(fd int, p *byte, np int) (n int, err error) {
++ r0, e1 := callread(fd, uintptr(unsafe.Pointer(p)), np)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -704,8 +762,9 @@ func Getrlimit(which int, lim *Rlimit) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Getrusage(who int, rusage *Rusage) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
++func writelen(fd int, p *byte, np int) (n int, err error) {
++ r0, e1 := callwrite(fd, uintptr(unsafe.Pointer(p)), np)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -714,9 +773,8 @@ func Getrusage(who int, rusage *Rusage) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Getsid(pid int) (sid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+- sid = int(r0)
++func Dup2(oldfd int, newfd int) (err error) {
++ _, e1 := calldup2(oldfd, newfd)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -725,8 +783,8 @@ func Getsid(pid int) (sid int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Gettimeofday(tv *Timeval) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
++func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
++ _, e1 := callposix_fadvise64(fd, offset, length, advice)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -735,24 +793,33 @@ func Gettimeofday(tv *Timeval) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Getuid() (uid int) {
+- r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+- uid = int(r0)
++func Fchown(fd int, uid int, gid int) (err error) {
++ _, e1 := callfchown(fd, uid, gid)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
+ return
+ }
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Issetugid() (tainted bool) {
+- r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)
+- tainted = bool(r0 != 0)
++func fstat(fd int, stat *Stat_t) (err error) {
++ _, e1 := callfstat(fd, uintptr(unsafe.Pointer(stat)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
+ return
+ }
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Kill(pid int, signum syscall.Signal) (err error) {
+- _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)
++func fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, e1 := callfstatat(dirfd, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), flags)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -761,9 +828,8 @@ func Kill(pid int, signum syscall.Signal) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Kqueue() (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)
+- fd = int(r0)
++func Fstatfs(fd int, buf *Statfs_t) (err error) {
++ _, e1 := callfstatfs(fd, uintptr(unsafe.Pointer(buf)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -772,13 +838,8 @@ func Kqueue() (fd int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Lchown(path string, uid int, gid int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
++func Ftruncate(fd int, length int64) (err error) {
++ _, e1 := callftruncate(fd, length)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -787,18 +848,45 @@ func Lchown(path string, uid int, gid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Link(path string, link string) (err error) {
++func Getegid() (egid int) {
++ r0, _ := callgetegid()
++ egid = int(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Geteuid() (euid int) {
++ r0, _ := callgeteuid()
++ euid = int(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getgid() (gid int) {
++ r0, _ := callgetgid()
++ gid = int(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getuid() (uid int) {
++ r0, _ := callgetuid()
++ uid = int(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Lchown(path string, uid int, gid int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(link)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++ _, e1 := calllchown(uintptr(unsafe.Pointer(_p0)), uid, gid)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -807,8 +895,8 @@ func Link(path string, link string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Listen(s int, backlog int) (err error) {
+- _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
++func Listen(s int, n int) (err error) {
++ _, e1 := calllisten(s, n)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -817,13 +905,13 @@ func Listen(s int, backlog int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Lstat(path string, stat *Stat_t) (err error) {
++func lstat(path string, stat *Stat_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ _, e1 := calllstat(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -832,13 +920,8 @@ func Lstat(path string, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Mkdir(path string, mode uint32) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++func Pause() (err error) {
++ _, e1 := callpause()
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -847,13 +930,13 @@ func Mkdir(path string, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Mkfifo(path string, mode uint32) (err error) {
++func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
++ if len(p) > 0 {
++ _p0 = &p[0]
+ }
+- _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++ r0, e1 := callpread64(fd, uintptr(unsafe.Pointer(_p0)), len(p), offset)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -862,13 +945,13 @@ func Mkfifo(path string, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Mknod(path string, mode uint32, dev int) (err error) {
++func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
++ if len(p) > 0 {
++ _p0 = &p[0]
+ }
+- _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
++ r0, e1 := callpwrite64(fd, uintptr(unsafe.Pointer(_p0)), len(p), offset)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -877,8 +960,9 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+- _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ r0, e1 := callselect(nfd, uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -887,14 +971,9 @@ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Open(path string, mode int, perm uint32) (fd int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+- fd = int(r0)
++func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
++ r0, e1 := callpselect(nfd, uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -903,14 +982,8 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Pathconf(path string, name int) (val int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
+- val = int(r0)
++func Setregid(rgid int, egid int) (err error) {
++ _, e1 := callsetregid(rgid, egid)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -919,15 +992,8 @@ func Pathconf(path string, name int) (val int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Pread(fd int, p []byte, offset int64) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)
+- n = int(r0)
++func Setreuid(ruid int, euid int) (err error) {
++ _, e1 := callsetreuid(ruid, euid)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -936,15 +1002,8 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)
+- n = int(r0)
++func Shutdown(fd int, how int) (err error) {
++ _, e1 := callshutdown(fd, how)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -953,15 +1012,9 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func read(fd int, p []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+- n = int(r0)
++func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
++ r0, e1 := callsplice(rfd, uintptr(unsafe.Pointer(roff)), wfd, uintptr(unsafe.Pointer(woff)), len, flags)
++ n = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -970,20 +1023,13 @@ func read(fd int, p []byte) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Readlink(path string, buf []byte) (n int, err error) {
++func stat(path string, statptr *Stat_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+- var _p1 unsafe.Pointer
+- if len(buf) > 0 {
+- _p1 = unsafe.Pointer(&buf[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
+- n = int(r0)
++ _, e1 := callstat(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(statptr)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -992,18 +1038,13 @@ func Readlink(path string, buf []byte) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Rename(from string, to string) (err error) {
++func Statfs(path string, buf *Statfs_t) (err error) {
+ var _p0 *byte
+- _p0, err = BytePtrFromString(from)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(to)
++ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++ _, e1 := callstatfs(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1012,13 +1053,13 @@ func Rename(from string, to string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Revoke(path string) (err error) {
++func Truncate(path string, length int64) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, e1 := calltruncate(uintptr(unsafe.Pointer(_p0)), length)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1027,13 +1068,8 @@ func Revoke(path string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Rmdir(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
++ _, e1 := callbind(s, uintptr(addr), uintptr(addrlen))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1042,9 +1078,8 @@ func Rmdir(path string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+- r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0)
+- newoffset = int64(r0)
++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
++ _, e1 := callconnect(s, uintptr(addr), uintptr(addrlen))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1053,8 +1088,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+- _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++func getgroups(n int, list *_Gid_t) (nn int, err error) {
++ r0, e1 := callgetgroups(n, uintptr(unsafe.Pointer(list)))
++ nn = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1063,8 +1099,8 @@ func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setegid(egid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)
++func setgroups(n int, list *_Gid_t) (err error) {
++ _, e1 := callsetgroups(n, uintptr(unsafe.Pointer(list)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1073,8 +1109,8 @@ func Setegid(egid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Seteuid(euid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)
++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
++ _, e1 := callgetsockopt(s, level, name, uintptr(val), uintptr(unsafe.Pointer(vallen)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1083,8 +1119,8 @@ func Seteuid(euid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setgid(gid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)
++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
++ _, e1 := callsetsockopt(s, level, name, uintptr(val), vallen)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1093,8 +1129,9 @@ func Setgid(gid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setpgid(pid int, pgid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
++func socket(domain int, typ int, proto int) (fd int, err error) {
++ r0, e1 := callsocket(domain, typ, proto)
++ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1103,8 +1140,8 @@ func Setpgid(pid int, pgid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setpriority(which int, who int, prio int) (err error) {
+- _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
++ _, e1 := callsocketpair(domain, typ, proto, uintptr(unsafe.Pointer(fd)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1113,8 +1150,8 @@ func Setpriority(which int, who int, prio int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setregid(rgid int, egid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
++ _, e1 := callgetpeername(fd, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1123,8 +1160,8 @@ func Setregid(rgid int, egid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setreuid(ruid int, euid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
++ _, e1 := callgetsockname(fd, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1133,8 +1170,13 @@ func Setreuid(ruid int, euid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setrlimit(which int, lim *Rlimit) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
++ var _p0 *byte
++ if len(p) > 0 {
++ _p0 = &p[0]
++ }
++ r0, e1 := callrecvfrom(fd, uintptr(unsafe.Pointer(_p0)), len(p), flags, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1143,9 +1185,12 @@ func Setrlimit(which int, lim *Rlimit) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setsid() (pid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+- pid = int(r0)
++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
++ var _p0 *byte
++ if len(buf) > 0 {
++ _p0 = &buf[0]
++ }
++ _, e1 := callsendto(s, uintptr(unsafe.Pointer(_p0)), len(buf), flags, uintptr(to), uintptr(addrlen))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1154,8 +1199,9 @@ func Setsid() (pid int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Settimeofday(tp *Timeval) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
++ r0, e1 := callnrecvmsg(s, uintptr(unsafe.Pointer(msg)), flags)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1164,8 +1210,9 @@ func Settimeofday(tp *Timeval) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setuid(uid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)
++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
++ r0, e1 := callnsendmsg(s, uintptr(unsafe.Pointer(msg)), flags)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1174,13 +1221,8 @@ func Setuid(uid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Stat(path string, stat *Stat_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++func munmap(addr uintptr, length uintptr) (err error) {
++ _, e1 := callmunmap(addr, length)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1189,18 +1231,12 @@ func Stat(path string, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Symlink(path string, link string) (err error) {
++func Madvise(b []byte, advice int) (err error) {
+ var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(link)
+- if err != nil {
+- return
++ if len(b) > 0 {
++ _p0 = &b[0]
+ }
+- _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++ _, e1 := callmadvise(uintptr(unsafe.Pointer(_p0)), len(b), advice)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1209,8 +1245,12 @@ func Symlink(path string, link string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Sync() (err error) {
+- _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
++func Mprotect(b []byte, prot int) (err error) {
++ var _p0 *byte
++ if len(b) > 0 {
++ _p0 = &b[0]
++ }
++ _, e1 := callmprotect(uintptr(unsafe.Pointer(_p0)), len(b), prot)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1219,13 +1259,12 @@ func Sync() (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Truncate(path string, length int64) (err error) {
++func Mlock(b []byte) (err error) {
+ var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
++ if len(b) > 0 {
++ _p0 = &b[0]
+ }
+- _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))
++ _, e1 := callmlock(uintptr(unsafe.Pointer(_p0)), len(b))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1234,21 +1273,22 @@ func Truncate(path string, length int64) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Umask(newmask int) (oldmask int) {
+- r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)
+- oldmask = int(r0)
++func Mlockall(flags int) (err error) {
++ _, e1 := callmlockall(flags)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
+ return
+ }
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Unlink(path string) (err error) {
++func Msync(b []byte, flags int) (err error) {
+ var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
++ if len(b) > 0 {
++ _p0 = &b[0]
+ }
+- _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, e1 := callmsync(uintptr(unsafe.Pointer(_p0)), len(b), flags)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1257,13 +1297,12 @@ func Unlink(path string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Unmount(path string, flags int) (err error) {
++func Munlock(b []byte) (err error) {
+ var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
++ if len(b) > 0 {
++ _p0 = &b[0]
+ }
+- _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++ _, e1 := callmunlock(uintptr(unsafe.Pointer(_p0)), len(b))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1272,15 +1311,8 @@ func Unmount(path string, flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func write(fd int, p []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+- n = int(r0)
++func Munlockall() (err error) {
++ _, e1 := callmunlockall()
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1289,9 +1321,8 @@ func write(fd int, p []byte) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
+- r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0)
+- ret = uintptr(r0)
++func pipe(p *[2]_C_int) (err error) {
++ _, e1 := callpipe(uintptr(unsafe.Pointer(p)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1300,8 +1331,9 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func munmap(addr uintptr, length uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++ r0, e1 := callpoll(uintptr(unsafe.Pointer(fds)), nfds, timeout)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1310,9 +1342,8 @@ func munmap(addr uintptr, length uintptr) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+- n = int(r0)
++func gettimeofday(tv *Timeval, tzp *Timezone) (err error) {
++ _, e1 := callgettimeofday(uintptr(unsafe.Pointer(tv)), uintptr(unsafe.Pointer(tzp)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1321,9 +1352,9 @@ func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+- n = int(r0)
++func Time(t *Time_t) (tt Time_t, err error) {
++ r0, e1 := calltime(uintptr(unsafe.Pointer(t)))
++ tt = Time_t(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1332,13 +1363,78 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
++func Utime(path string, buf *Utimbuf) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
++ _, e1 := callutime(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getsystemcfg(label int) (n uint64) {
++ r0, _ := callgetsystemcfg(label)
++ n = uint64(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func umount(target string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(target)
++ if err != nil {
++ return
++ }
++ _, e1 := callumount(uintptr(unsafe.Pointer(_p0)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getrlimit(resource int, rlim *Rlimit) (err error) {
++ _, e1 := callgetrlimit(resource, uintptr(unsafe.Pointer(rlim)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setrlimit(resource int, rlim *Rlimit) (err error) {
++ _, e1 := callsetrlimit(resource, uintptr(unsafe.Pointer(rlim)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Seek(fd int, offset int64, whence int) (off int64, err error) {
++ r0, e1 := calllseek(fd, offset, whence)
++ off = int64(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
++ r0, e1 := callmmap64(addr, length, prot, flags, fd, offset)
++ xaddr = uintptr(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go
+new file mode 100644
+index 00000000..4b3a8ad7
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go
+@@ -0,0 +1,1192 @@
++// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build aix,ppc64
++// +build !gccgo
++
++package unix
++
++import (
++ "unsafe"
++)
++
++//go:cgo_import_dynamic libc_utimes utimes "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_utimensat utimensat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getcwd getcwd "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_accept accept "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getdirent getdirent "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_wait4 wait4 "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_ioctl ioctl "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_fcntl fcntl "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_acct acct "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_chdir chdir "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_chroot chroot "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_close close "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_dup dup "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_exit exit "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_faccessat faccessat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_fchdir fchdir "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_fchmod fchmod "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_fchownat fchownat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_fdatasync fdatasync "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_fsync fsync "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getpgid getpgid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getpid getpid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getppid getppid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getpriority getpriority "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getrusage getrusage "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getsid getsid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_kill kill "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_syslog syslog "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_mkdir mkdir "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_mknod mknod "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_mknodat mknodat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_open64 open64 "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_openat openat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_read read "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_readlink readlink "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_renameat renameat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_setdomainname setdomainname "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_sethostname sethostname "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_setpgid setpgid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_setsid setsid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_setuid setuid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_setgid setgid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_setpriority setpriority "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_statx statx "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_sync sync "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_times times "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_umask umask "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_uname uname "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_unlink unlink "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_ustat ustat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_write write "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_dup2 dup2 "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_posix_fadvise64 posix_fadvise64 "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_fchown fchown "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_fstat fstat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_fstatat fstatat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getegid getegid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_geteuid geteuid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getgid getgid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getuid getuid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_lchown lchown "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_listen listen "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_lstat lstat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_pause pause "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_pread64 pread64 "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_pwrite64 pwrite64 "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_select select "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_pselect pselect "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_setregid setregid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_setreuid setreuid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_shutdown shutdown "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_splice splice "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_stat stat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_statfs statfs "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_truncate truncate "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_bind bind "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_connect connect "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getgroups getgroups "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_setgroups setgroups "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_socket socket "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_socketpair socketpair "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getpeername getpeername "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getsockname getsockname "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_sendto sendto "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_nrecvmsg nrecvmsg "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_nsendmsg nsendmsg "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_munmap munmap "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_madvise madvise "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_mprotect mprotect "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_mlock mlock "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_mlockall mlockall "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_msync msync "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_munlock munlock "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_munlockall munlockall "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_pipe pipe "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_poll poll "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_time time "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_utime utime "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getsystemcfg getsystemcfg "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_umount umount "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_lseek lseek "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_mmap64 mmap64 "libc.a/shr_64.o"
++
++//go:linkname libc_utimes libc_utimes
++//go:linkname libc_utimensat libc_utimensat
++//go:linkname libc_getcwd libc_getcwd
++//go:linkname libc_accept libc_accept
++//go:linkname libc_getdirent libc_getdirent
++//go:linkname libc_wait4 libc_wait4
++//go:linkname libc_ioctl libc_ioctl
++//go:linkname libc_fcntl libc_fcntl
++//go:linkname libc_acct libc_acct
++//go:linkname libc_chdir libc_chdir
++//go:linkname libc_chroot libc_chroot
++//go:linkname libc_close libc_close
++//go:linkname libc_dup libc_dup
++//go:linkname libc_exit libc_exit
++//go:linkname libc_faccessat libc_faccessat
++//go:linkname libc_fchdir libc_fchdir
++//go:linkname libc_fchmod libc_fchmod
++//go:linkname libc_fchmodat libc_fchmodat
++//go:linkname libc_fchownat libc_fchownat
++//go:linkname libc_fdatasync libc_fdatasync
++//go:linkname libc_fsync libc_fsync
++//go:linkname libc_getpgid libc_getpgid
++//go:linkname libc_getpgrp libc_getpgrp
++//go:linkname libc_getpid libc_getpid
++//go:linkname libc_getppid libc_getppid
++//go:linkname libc_getpriority libc_getpriority
++//go:linkname libc_getrusage libc_getrusage
++//go:linkname libc_getsid libc_getsid
++//go:linkname libc_kill libc_kill
++//go:linkname libc_syslog libc_syslog
++//go:linkname libc_mkdir libc_mkdir
++//go:linkname libc_mkdirat libc_mkdirat
++//go:linkname libc_mkfifo libc_mkfifo
++//go:linkname libc_mknod libc_mknod
++//go:linkname libc_mknodat libc_mknodat
++//go:linkname libc_nanosleep libc_nanosleep
++//go:linkname libc_open64 libc_open64
++//go:linkname libc_openat libc_openat
++//go:linkname libc_read libc_read
++//go:linkname libc_readlink libc_readlink
++//go:linkname libc_renameat libc_renameat
++//go:linkname libc_setdomainname libc_setdomainname
++//go:linkname libc_sethostname libc_sethostname
++//go:linkname libc_setpgid libc_setpgid
++//go:linkname libc_setsid libc_setsid
++//go:linkname libc_settimeofday libc_settimeofday
++//go:linkname libc_setuid libc_setuid
++//go:linkname libc_setgid libc_setgid
++//go:linkname libc_setpriority libc_setpriority
++//go:linkname libc_statx libc_statx
++//go:linkname libc_sync libc_sync
++//go:linkname libc_times libc_times
++//go:linkname libc_umask libc_umask
++//go:linkname libc_uname libc_uname
++//go:linkname libc_unlink libc_unlink
++//go:linkname libc_unlinkat libc_unlinkat
++//go:linkname libc_ustat libc_ustat
++//go:linkname libc_write libc_write
++//go:linkname libc_dup2 libc_dup2
++//go:linkname libc_posix_fadvise64 libc_posix_fadvise64
++//go:linkname libc_fchown libc_fchown
++//go:linkname libc_fstat libc_fstat
++//go:linkname libc_fstatat libc_fstatat
++//go:linkname libc_fstatfs libc_fstatfs
++//go:linkname libc_ftruncate libc_ftruncate
++//go:linkname libc_getegid libc_getegid
++//go:linkname libc_geteuid libc_geteuid
++//go:linkname libc_getgid libc_getgid
++//go:linkname libc_getuid libc_getuid
++//go:linkname libc_lchown libc_lchown
++//go:linkname libc_listen libc_listen
++//go:linkname libc_lstat libc_lstat
++//go:linkname libc_pause libc_pause
++//go:linkname libc_pread64 libc_pread64
++//go:linkname libc_pwrite64 libc_pwrite64
++//go:linkname libc_select libc_select
++//go:linkname libc_pselect libc_pselect
++//go:linkname libc_setregid libc_setregid
++//go:linkname libc_setreuid libc_setreuid
++//go:linkname libc_shutdown libc_shutdown
++//go:linkname libc_splice libc_splice
++//go:linkname libc_stat libc_stat
++//go:linkname libc_statfs libc_statfs
++//go:linkname libc_truncate libc_truncate
++//go:linkname libc_bind libc_bind
++//go:linkname libc_connect libc_connect
++//go:linkname libc_getgroups libc_getgroups
++//go:linkname libc_setgroups libc_setgroups
++//go:linkname libc_getsockopt libc_getsockopt
++//go:linkname libc_setsockopt libc_setsockopt
++//go:linkname libc_socket libc_socket
++//go:linkname libc_socketpair libc_socketpair
++//go:linkname libc_getpeername libc_getpeername
++//go:linkname libc_getsockname libc_getsockname
++//go:linkname libc_recvfrom libc_recvfrom
++//go:linkname libc_sendto libc_sendto
++//go:linkname libc_nrecvmsg libc_nrecvmsg
++//go:linkname libc_nsendmsg libc_nsendmsg
++//go:linkname libc_munmap libc_munmap
++//go:linkname libc_madvise libc_madvise
++//go:linkname libc_mprotect libc_mprotect
++//go:linkname libc_mlock libc_mlock
++//go:linkname libc_mlockall libc_mlockall
++//go:linkname libc_msync libc_msync
++//go:linkname libc_munlock libc_munlock
++//go:linkname libc_munlockall libc_munlockall
++//go:linkname libc_pipe libc_pipe
++//go:linkname libc_poll libc_poll
++//go:linkname libc_gettimeofday libc_gettimeofday
++//go:linkname libc_time libc_time
++//go:linkname libc_utime libc_utime
++//go:linkname libc_getsystemcfg libc_getsystemcfg
++//go:linkname libc_umount libc_umount
++//go:linkname libc_getrlimit libc_getrlimit
++//go:linkname libc_setrlimit libc_setrlimit
++//go:linkname libc_lseek libc_lseek
++//go:linkname libc_mmap64 libc_mmap64
++
++type syscallFunc uintptr
++
++var (
++ libc_utimes,
++ libc_utimensat,
++ libc_getcwd,
++ libc_accept,
++ libc_getdirent,
++ libc_wait4,
++ libc_ioctl,
++ libc_fcntl,
++ libc_acct,
++ libc_chdir,
++ libc_chroot,
++ libc_close,
++ libc_dup,
++ libc_exit,
++ libc_faccessat,
++ libc_fchdir,
++ libc_fchmod,
++ libc_fchmodat,
++ libc_fchownat,
++ libc_fdatasync,
++ libc_fsync,
++ libc_getpgid,
++ libc_getpgrp,
++ libc_getpid,
++ libc_getppid,
++ libc_getpriority,
++ libc_getrusage,
++ libc_getsid,
++ libc_kill,
++ libc_syslog,
++ libc_mkdir,
++ libc_mkdirat,
++ libc_mkfifo,
++ libc_mknod,
++ libc_mknodat,
++ libc_nanosleep,
++ libc_open64,
++ libc_openat,
++ libc_read,
++ libc_readlink,
++ libc_renameat,
++ libc_setdomainname,
++ libc_sethostname,
++ libc_setpgid,
++ libc_setsid,
++ libc_settimeofday,
++ libc_setuid,
++ libc_setgid,
++ libc_setpriority,
++ libc_statx,
++ libc_sync,
++ libc_times,
++ libc_umask,
++ libc_uname,
++ libc_unlink,
++ libc_unlinkat,
++ libc_ustat,
++ libc_write,
++ libc_dup2,
++ libc_posix_fadvise64,
++ libc_fchown,
++ libc_fstat,
++ libc_fstatat,
++ libc_fstatfs,
++ libc_ftruncate,
++ libc_getegid,
++ libc_geteuid,
++ libc_getgid,
++ libc_getuid,
++ libc_lchown,
++ libc_listen,
++ libc_lstat,
++ libc_pause,
++ libc_pread64,
++ libc_pwrite64,
++ libc_select,
++ libc_pselect,
++ libc_setregid,
++ libc_setreuid,
++ libc_shutdown,
++ libc_splice,
++ libc_stat,
++ libc_statfs,
++ libc_truncate,
++ libc_bind,
++ libc_connect,
++ libc_getgroups,
++ libc_setgroups,
++ libc_getsockopt,
++ libc_setsockopt,
++ libc_socket,
++ libc_socketpair,
++ libc_getpeername,
++ libc_getsockname,
++ libc_recvfrom,
++ libc_sendto,
++ libc_nrecvmsg,
++ libc_nsendmsg,
++ libc_munmap,
++ libc_madvise,
++ libc_mprotect,
++ libc_mlock,
++ libc_mlockall,
++ libc_msync,
++ libc_munlock,
++ libc_munlockall,
++ libc_pipe,
++ libc_poll,
++ libc_gettimeofday,
++ libc_time,
++ libc_utime,
++ libc_getsystemcfg,
++ libc_umount,
++ libc_getrlimit,
++ libc_setrlimit,
++ libc_lseek,
++ libc_mmap64 syscallFunc
++)
++
++// Implemented in runtime/syscall_aix.go.
++func rawSyscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
++func syscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callutimes(_p0 uintptr, times uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utimes)), 2, _p0, times, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callutimensat(dirfd int, _p0 uintptr, times uintptr, flag int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utimensat)), 4, uintptr(dirfd), _p0, times, uintptr(flag), 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetcwd(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getcwd)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callaccept(s int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_accept)), 3, uintptr(s), rsa, addrlen, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetdirent(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getdirent)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callwait4(pid int, status uintptr, options int, rusage uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_wait4)), 4, uintptr(pid), status, uintptr(options), rusage, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callioctl(fd int, req int, arg uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ioctl)), 3, uintptr(fd), uintptr(req), arg, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfcntl(fd uintptr, cmd int, arg uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fcntl)), 3, fd, uintptr(cmd), arg, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callacct(_p0 uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_acct)), 1, _p0, 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callchdir(_p0 uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_chdir)), 1, _p0, 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callchroot(_p0 uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_chroot)), 1, _p0, 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callclose(fd int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_close)), 1, uintptr(fd), 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calldup(oldfd int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_dup)), 1, uintptr(oldfd), 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callexit(code int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_exit)), 1, uintptr(code), 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfaccessat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_faccessat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(flags), 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfchdir(fd int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchdir)), 1, uintptr(fd), 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfchmod(fd int, mode uint32) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfchmodat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchmodat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(flags), 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfchownat(dirfd int, _p0 uintptr, uid int, gid int, flags int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchownat)), 5, uintptr(dirfd), _p0, uintptr(uid), uintptr(gid), uintptr(flags), 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfdatasync(fd int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfsync(fd int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fsync)), 1, uintptr(fd), 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetpgid(pid int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetpgrp() (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getpgrp)), 0, 0, 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetpid() (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpid)), 0, 0, 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetppid() (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getppid)), 0, 0, 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetpriority(which int, who int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getpriority)), 2, uintptr(which), uintptr(who), 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetrusage(who int, rusage uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrusage)), 2, uintptr(who), rusage, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetsid(pid int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getsid)), 1, uintptr(pid), 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callkill(pid int, sig int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_kill)), 2, uintptr(pid), uintptr(sig), 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsyslog(typ int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_syslog)), 3, uintptr(typ), _p0, uintptr(_lenp0), 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmkdir(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkdir)), 3, uintptr(dirfd), _p0, uintptr(mode), 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmkdirat(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkdirat)), 3, uintptr(dirfd), _p0, uintptr(mode), 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmkfifo(_p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkfifo)), 2, _p0, uintptr(mode), 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmknod(_p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mknod)), 3, _p0, uintptr(mode), uintptr(dev), 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmknodat(dirfd int, _p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mknodat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(dev), 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callnanosleep(time uintptr, leftover uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nanosleep)), 2, time, leftover, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callopen64(_p0 uintptr, mode int, perm uint32) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_open64)), 3, _p0, uintptr(mode), uintptr(perm), 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callopenat(dirfd int, _p0 uintptr, flags int, mode uint32) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_openat)), 4, uintptr(dirfd), _p0, uintptr(flags), uintptr(mode), 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callread(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_read)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callreadlink(_p0 uintptr, _p1 uintptr, _lenp1 int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_readlink)), 3, _p0, _p1, uintptr(_lenp1), 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callrenameat(olddirfd int, _p0 uintptr, newdirfd int, _p1 uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_renameat)), 4, uintptr(olddirfd), _p0, uintptr(newdirfd), _p1, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetdomainname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setdomainname)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsethostname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sethostname)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetpgid(pid int, pgid int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetsid() (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setsid)), 0, 0, 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsettimeofday(tv uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_settimeofday)), 1, tv, 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetuid(uid int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setuid)), 1, uintptr(uid), 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetgid(uid int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setgid)), 1, uintptr(uid), 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetpriority(which int, who int, prio int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callstatx(dirfd int, _p0 uintptr, flags int, mask int, stat uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_statx)), 5, uintptr(dirfd), _p0, uintptr(flags), uintptr(mask), stat, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsync() (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sync)), 0, 0, 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calltimes(tms uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_times)), 1, tms, 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callumask(mask int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_umask)), 1, uintptr(mask), 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calluname(buf uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_uname)), 1, buf, 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callunlink(_p0 uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_unlink)), 1, _p0, 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callunlinkat(dirfd int, _p0 uintptr, flags int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_unlinkat)), 3, uintptr(dirfd), _p0, uintptr(flags), 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callustat(dev int, ubuf uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ustat)), 2, uintptr(dev), ubuf, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callwrite(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_write)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calldup2(oldfd int, newfd int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_dup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callposix_fadvise64(fd int, offset int64, length int64, advice int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_posix_fadvise64)), 4, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfchown(fd int, uid int, gid int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfstat(fd int, stat uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstat)), 2, uintptr(fd), stat, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfstatat(dirfd int, _p0 uintptr, stat uintptr, flags int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstatat)), 4, uintptr(dirfd), _p0, stat, uintptr(flags), 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfstatfs(fd int, buf uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstatfs)), 2, uintptr(fd), buf, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callftruncate(fd int, length int64) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ftruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetegid() (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getegid)), 0, 0, 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgeteuid() (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_geteuid)), 0, 0, 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetgid() (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getgid)), 0, 0, 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetuid() (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getuid)), 0, 0, 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calllchown(_p0 uintptr, uid int, gid int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lchown)), 3, _p0, uintptr(uid), uintptr(gid), 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calllisten(s int, n int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_listen)), 2, uintptr(s), uintptr(n), 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calllstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lstat)), 2, _p0, stat, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callpause() (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pause)), 0, 0, 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callpread64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pread64)), 4, uintptr(fd), _p0, uintptr(_lenp0), uintptr(offset), 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pwrite64)), 4, uintptr(fd), _p0, uintptr(_lenp0), uintptr(offset), 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_select)), 5, uintptr(nfd), r, w, e, timeout, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callpselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr, sigmask uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pselect)), 6, uintptr(nfd), r, w, e, timeout, sigmask)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetregid(rgid int, egid int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetreuid(ruid int, euid int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callshutdown(fd int, how int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_shutdown)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_splice)), 6, uintptr(rfd), roff, uintptr(wfd), woff, uintptr(len), uintptr(flags))
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callstat(_p0 uintptr, statptr uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_stat)), 2, _p0, statptr, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callstatfs(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_statfs)), 2, _p0, buf, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calltruncate(_p0 uintptr, length int64) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_truncate)), 2, _p0, uintptr(length), 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callbind(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_bind)), 3, uintptr(s), addr, addrlen, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callconnect(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_connect)), 3, uintptr(s), addr, addrlen, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getgroups)), 2, uintptr(n), list, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setgroups)), 2, uintptr(n), list, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), val, vallen, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), val, vallen, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsocket(domain int, typ int, proto int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsocketpair(domain int, typ int, proto int, fd uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_socketpair)), 4, uintptr(domain), uintptr(typ), uintptr(proto), fd, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetpeername(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpeername)), 3, uintptr(fd), rsa, addrlen, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetsockname(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getsockname)), 3, uintptr(fd), rsa, addrlen, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callrecvfrom(fd int, _p0 uintptr, _lenp0 int, flags int, from uintptr, fromlen uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_recvfrom)), 6, uintptr(fd), _p0, uintptr(_lenp0), uintptr(flags), from, fromlen)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sendto)), 6, uintptr(s), _p0, uintptr(_lenp0), uintptr(flags), to, addrlen)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callnrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nrecvmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callnsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nsendmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmunmap(addr uintptr, length uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munmap)), 2, addr, length, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmadvise(_p0 uintptr, _lenp0 int, advice int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_madvise)), 3, _p0, uintptr(_lenp0), uintptr(advice), 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmprotect(_p0 uintptr, _lenp0 int, prot int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mprotect)), 3, _p0, uintptr(_lenp0), uintptr(prot), 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mlock)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmlockall(flags int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mlockall)), 1, uintptr(flags), 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmsync(_p0 uintptr, _lenp0 int, flags int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_msync)), 3, _p0, uintptr(_lenp0), uintptr(flags), 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmunlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munlock)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmunlockall() (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munlockall)), 0, 0, 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callpipe(p uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_pipe)), 1, p, 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callpoll(fds uintptr, nfds int, timeout int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_poll)), 3, fds, uintptr(nfds), uintptr(timeout), 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgettimeofday(tv uintptr, tzp uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_gettimeofday)), 2, tv, tzp, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calltime(t uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_time)), 1, t, 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utime)), 2, _p0, buf, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetsystemcfg(label int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsystemcfg)), 1, uintptr(label), 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callumount(_p0 uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_umount)), 1, _p0, 0, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrlimit)), 2, uintptr(resource), rlim, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setrlimit)), 2, uintptr(resource), rlim, 0, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calllseek(fd int, offset int64, whence int) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmmap64(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (r1 uintptr, e1 Errno) {
++ r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mmap64)), 6, addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))
++ return
++}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go
+new file mode 100644
+index 00000000..cde4dbc5
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go
+@@ -0,0 +1,1070 @@
++// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build aix,ppc64
++// +build gccgo
++
++package unix
++
++/*
++#include <stdint.h>
++int utimes(uintptr_t, uintptr_t);
++int utimensat(int, uintptr_t, uintptr_t, int);
++int getcwd(uintptr_t, size_t);
++int accept(int, uintptr_t, uintptr_t);
++int getdirent(int, uintptr_t, size_t);
++int wait4(int, uintptr_t, int, uintptr_t);
++int ioctl(int, int, uintptr_t);
++int fcntl(uintptr_t, int, uintptr_t);
++int acct(uintptr_t);
++int chdir(uintptr_t);
++int chroot(uintptr_t);
++int close(int);
++int dup(int);
++void exit(int);
++int faccessat(int, uintptr_t, unsigned int, int);
++int fchdir(int);
++int fchmod(int, unsigned int);
++int fchmodat(int, uintptr_t, unsigned int, int);
++int fchownat(int, uintptr_t, int, int, int);
++int fdatasync(int);
++int fsync(int);
++int getpgid(int);
++int getpgrp();
++int getpid();
++int getppid();
++int getpriority(int, int);
++int getrusage(int, uintptr_t);
++int getsid(int);
++int kill(int, int);
++int syslog(int, uintptr_t, size_t);
++int mkdir(int, uintptr_t, unsigned int);
++int mkdirat(int, uintptr_t, unsigned int);
++int mkfifo(uintptr_t, unsigned int);
++int mknod(uintptr_t, unsigned int, int);
++int mknodat(int, uintptr_t, unsigned int, int);
++int nanosleep(uintptr_t, uintptr_t);
++int open64(uintptr_t, int, unsigned int);
++int openat(int, uintptr_t, int, unsigned int);
++int read(int, uintptr_t, size_t);
++int readlink(uintptr_t, uintptr_t, size_t);
++int renameat(int, uintptr_t, int, uintptr_t);
++int setdomainname(uintptr_t, size_t);
++int sethostname(uintptr_t, size_t);
++int setpgid(int, int);
++int setsid();
++int settimeofday(uintptr_t);
++int setuid(int);
++int setgid(int);
++int setpriority(int, int, int);
++int statx(int, uintptr_t, int, int, uintptr_t);
++int sync();
++uintptr_t times(uintptr_t);
++int umask(int);
++int uname(uintptr_t);
++int unlink(uintptr_t);
++int unlinkat(int, uintptr_t, int);
++int ustat(int, uintptr_t);
++int write(int, uintptr_t, size_t);
++int dup2(int, int);
++int posix_fadvise64(int, long long, long long, int);
++int fchown(int, int, int);
++int fstat(int, uintptr_t);
++int fstatat(int, uintptr_t, uintptr_t, int);
++int fstatfs(int, uintptr_t);
++int ftruncate(int, long long);
++int getegid();
++int geteuid();
++int getgid();
++int getuid();
++int lchown(uintptr_t, int, int);
++int listen(int, int);
++int lstat(uintptr_t, uintptr_t);
++int pause();
++int pread64(int, uintptr_t, size_t, long long);
++int pwrite64(int, uintptr_t, size_t, long long);
++#define c_select select
++int select(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
++int pselect(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
++int setregid(int, int);
++int setreuid(int, int);
++int shutdown(int, int);
++long long splice(int, uintptr_t, int, uintptr_t, int, int);
++int stat(uintptr_t, uintptr_t);
++int statfs(uintptr_t, uintptr_t);
++int truncate(uintptr_t, long long);
++int bind(int, uintptr_t, uintptr_t);
++int connect(int, uintptr_t, uintptr_t);
++int getgroups(int, uintptr_t);
++int setgroups(int, uintptr_t);
++int getsockopt(int, int, int, uintptr_t, uintptr_t);
++int setsockopt(int, int, int, uintptr_t, uintptr_t);
++int socket(int, int, int);
++int socketpair(int, int, int, uintptr_t);
++int getpeername(int, uintptr_t, uintptr_t);
++int getsockname(int, uintptr_t, uintptr_t);
++int recvfrom(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);
++int sendto(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);
++int nrecvmsg(int, uintptr_t, int);
++int nsendmsg(int, uintptr_t, int);
++int munmap(uintptr_t, uintptr_t);
++int madvise(uintptr_t, size_t, int);
++int mprotect(uintptr_t, size_t, int);
++int mlock(uintptr_t, size_t);
++int mlockall(int);
++int msync(uintptr_t, size_t, int);
++int munlock(uintptr_t, size_t);
++int munlockall();
++int pipe(uintptr_t);
++int poll(uintptr_t, int, int);
++int gettimeofday(uintptr_t, uintptr_t);
++int time(uintptr_t);
++int utime(uintptr_t, uintptr_t);
++unsigned long long getsystemcfg(int);
++int umount(uintptr_t);
++int getrlimit(int, uintptr_t);
++int setrlimit(int, uintptr_t);
++long long lseek(int, long long, int);
++uintptr_t mmap64(uintptr_t, uintptr_t, int, int, int, long long);
++
++*/
++import "C"
++import (
++ "syscall"
++)
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callutimes(_p0 uintptr, times uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.utimes(C.uintptr_t(_p0), C.uintptr_t(times)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callutimensat(dirfd int, _p0 uintptr, times uintptr, flag int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.utimensat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(times), C.int(flag)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetcwd(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.getcwd(C.uintptr_t(_p0), C.size_t(_lenp0)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callaccept(s int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.accept(C.int(s), C.uintptr_t(rsa), C.uintptr_t(addrlen)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetdirent(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.getdirent(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callwait4(pid int, status uintptr, options int, rusage uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.wait4(C.int(pid), C.uintptr_t(status), C.int(options), C.uintptr_t(rusage)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callioctl(fd int, req int, arg uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.ioctl(C.int(fd), C.int(req), C.uintptr_t(arg)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfcntl(fd uintptr, cmd int, arg uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callacct(_p0 uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.acct(C.uintptr_t(_p0)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callchdir(_p0 uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.chdir(C.uintptr_t(_p0)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callchroot(_p0 uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.chroot(C.uintptr_t(_p0)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callclose(fd int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.close(C.int(fd)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calldup(oldfd int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.dup(C.int(oldfd)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callexit(code int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.exit(C.int(code)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfaccessat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.faccessat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfchdir(fd int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.fchdir(C.int(fd)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfchmod(fd int, mode uint32) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.fchmod(C.int(fd), C.uint(mode)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfchmodat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.fchmodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfchownat(dirfd int, _p0 uintptr, uid int, gid int, flags int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.fchownat(C.int(dirfd), C.uintptr_t(_p0), C.int(uid), C.int(gid), C.int(flags)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfdatasync(fd int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.fdatasync(C.int(fd)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfsync(fd int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.fsync(C.int(fd)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetpgid(pid int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.getpgid(C.int(pid)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetpgrp() (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.getpgrp())
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetpid() (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.getpid())
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetppid() (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.getppid())
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetpriority(which int, who int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.getpriority(C.int(which), C.int(who)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetrusage(who int, rusage uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.getrusage(C.int(who), C.uintptr_t(rusage)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetsid(pid int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.getsid(C.int(pid)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callkill(pid int, sig int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.kill(C.int(pid), C.int(sig)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsyslog(typ int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.syslog(C.int(typ), C.uintptr_t(_p0), C.size_t(_lenp0)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmkdir(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.mkdir(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmkdirat(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.mkdirat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmkfifo(_p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.mkfifo(C.uintptr_t(_p0), C.uint(mode)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmknod(_p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.mknod(C.uintptr_t(_p0), C.uint(mode), C.int(dev)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmknodat(dirfd int, _p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.mknodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(dev)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callnanosleep(time uintptr, leftover uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.nanosleep(C.uintptr_t(time), C.uintptr_t(leftover)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callopen64(_p0 uintptr, mode int, perm uint32) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.open64(C.uintptr_t(_p0), C.int(mode), C.uint(perm)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callopenat(dirfd int, _p0 uintptr, flags int, mode uint32) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.openat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.uint(mode)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callread(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.read(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callreadlink(_p0 uintptr, _p1 uintptr, _lenp1 int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.readlink(C.uintptr_t(_p0), C.uintptr_t(_p1), C.size_t(_lenp1)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callrenameat(olddirfd int, _p0 uintptr, newdirfd int, _p1 uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.renameat(C.int(olddirfd), C.uintptr_t(_p0), C.int(newdirfd), C.uintptr_t(_p1)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetdomainname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.setdomainname(C.uintptr_t(_p0), C.size_t(_lenp0)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsethostname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.sethostname(C.uintptr_t(_p0), C.size_t(_lenp0)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetpgid(pid int, pgid int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.setpgid(C.int(pid), C.int(pgid)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetsid() (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.setsid())
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsettimeofday(tv uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.settimeofday(C.uintptr_t(tv)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetuid(uid int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.setuid(C.int(uid)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetgid(uid int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.setgid(C.int(uid)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetpriority(which int, who int, prio int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.setpriority(C.int(which), C.int(who), C.int(prio)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callstatx(dirfd int, _p0 uintptr, flags int, mask int, stat uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.statx(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.int(mask), C.uintptr_t(stat)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsync() (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.sync())
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calltimes(tms uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.times(C.uintptr_t(tms)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callumask(mask int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.umask(C.int(mask)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calluname(buf uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.uname(C.uintptr_t(buf)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callunlink(_p0 uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.unlink(C.uintptr_t(_p0)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callunlinkat(dirfd int, _p0 uintptr, flags int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.unlinkat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callustat(dev int, ubuf uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.ustat(C.int(dev), C.uintptr_t(ubuf)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callwrite(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.write(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calldup2(oldfd int, newfd int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.dup2(C.int(oldfd), C.int(newfd)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callposix_fadvise64(fd int, offset int64, length int64, advice int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.posix_fadvise64(C.int(fd), C.longlong(offset), C.longlong(length), C.int(advice)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfchown(fd int, uid int, gid int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.fchown(C.int(fd), C.int(uid), C.int(gid)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfstat(fd int, stat uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.fstat(C.int(fd), C.uintptr_t(stat)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfstatat(dirfd int, _p0 uintptr, stat uintptr, flags int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.fstatat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(stat), C.int(flags)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfstatfs(fd int, buf uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.fstatfs(C.int(fd), C.uintptr_t(buf)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callftruncate(fd int, length int64) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.ftruncate(C.int(fd), C.longlong(length)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetegid() (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.getegid())
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgeteuid() (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.geteuid())
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetgid() (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.getgid())
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetuid() (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.getuid())
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calllchown(_p0 uintptr, uid int, gid int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.lchown(C.uintptr_t(_p0), C.int(uid), C.int(gid)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calllisten(s int, n int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.listen(C.int(s), C.int(n)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calllstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.lstat(C.uintptr_t(_p0), C.uintptr_t(stat)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callpause() (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.pause())
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callpread64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.pread64(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.longlong(offset)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.pwrite64(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.longlong(offset)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.c_select(C.int(nfd), C.uintptr_t(r), C.uintptr_t(w), C.uintptr_t(e), C.uintptr_t(timeout)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callpselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr, sigmask uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.pselect(C.int(nfd), C.uintptr_t(r), C.uintptr_t(w), C.uintptr_t(e), C.uintptr_t(timeout), C.uintptr_t(sigmask)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetregid(rgid int, egid int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.setregid(C.int(rgid), C.int(egid)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetreuid(ruid int, euid int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.setreuid(C.int(ruid), C.int(euid)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callshutdown(fd int, how int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.shutdown(C.int(fd), C.int(how)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.splice(C.int(rfd), C.uintptr_t(roff), C.int(wfd), C.uintptr_t(woff), C.int(len), C.int(flags)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callstat(_p0 uintptr, statptr uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.stat(C.uintptr_t(_p0), C.uintptr_t(statptr)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callstatfs(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.statfs(C.uintptr_t(_p0), C.uintptr_t(buf)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calltruncate(_p0 uintptr, length int64) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.truncate(C.uintptr_t(_p0), C.longlong(length)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callbind(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.bind(C.int(s), C.uintptr_t(addr), C.uintptr_t(addrlen)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callconnect(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.connect(C.int(s), C.uintptr_t(addr), C.uintptr_t(addrlen)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.getgroups(C.int(n), C.uintptr_t(list)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.setgroups(C.int(n), C.uintptr_t(list)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.getsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(val), C.uintptr_t(vallen)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.setsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(val), C.uintptr_t(vallen)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsocket(domain int, typ int, proto int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.socket(C.int(domain), C.int(typ), C.int(proto)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsocketpair(domain int, typ int, proto int, fd uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.socketpair(C.int(domain), C.int(typ), C.int(proto), C.uintptr_t(fd)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetpeername(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.getpeername(C.int(fd), C.uintptr_t(rsa), C.uintptr_t(addrlen)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetsockname(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.getsockname(C.int(fd), C.uintptr_t(rsa), C.uintptr_t(addrlen)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callrecvfrom(fd int, _p0 uintptr, _lenp0 int, flags int, from uintptr, fromlen uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.recvfrom(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags), C.uintptr_t(from), C.uintptr_t(fromlen)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.sendto(C.int(s), C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags), C.uintptr_t(to), C.uintptr_t(addrlen)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callnrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.nrecvmsg(C.int(s), C.uintptr_t(msg), C.int(flags)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callnsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.nsendmsg(C.int(s), C.uintptr_t(msg), C.int(flags)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmunmap(addr uintptr, length uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.munmap(C.uintptr_t(addr), C.uintptr_t(length)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmadvise(_p0 uintptr, _lenp0 int, advice int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.madvise(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(advice)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmprotect(_p0 uintptr, _lenp0 int, prot int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.mprotect(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(prot)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.mlock(C.uintptr_t(_p0), C.size_t(_lenp0)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmlockall(flags int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.mlockall(C.int(flags)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmsync(_p0 uintptr, _lenp0 int, flags int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.msync(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmunlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.munlock(C.uintptr_t(_p0), C.size_t(_lenp0)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmunlockall() (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.munlockall())
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callpipe(p uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.pipe(C.uintptr_t(p)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callpoll(fds uintptr, nfds int, timeout int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.poll(C.uintptr_t(fds), C.int(nfds), C.int(timeout)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgettimeofday(tv uintptr, tzp uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.gettimeofday(C.uintptr_t(tv), C.uintptr_t(tzp)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calltime(t uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.time(C.uintptr_t(t)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.utime(C.uintptr_t(_p0), C.uintptr_t(buf)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetsystemcfg(label int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.getsystemcfg(C.int(label)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callumount(_p0 uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.umount(C.uintptr_t(_p0)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.getrlimit(C.int(resource), C.uintptr_t(rlim)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.setrlimit(C.int(resource), C.uintptr_t(rlim)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calllseek(fd int, offset int64, whence int) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.lseek(C.int(fd), C.longlong(offset), C.int(whence)))
++ e1 = syscall.GetErrno()
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmmap64(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (r1 uintptr, e1 Errno) {
++ r1 = uintptr(C.mmap64(C.uintptr_t(addr), C.uintptr_t(length), C.int(prot), C.int(flags), C.int(fd), C.longlong(offset)))
++ e1 = syscall.GetErrno()
++ return
++}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go
+similarity index 85%
+copy from vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go
+copy to vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go
+index 7a409745..c1cc0a41 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go
+@@ -1,7 +1,7 @@
+-// mksyscall.pl -tags darwin,arm syscall_bsd.go syscall_darwin.go syscall_darwin_arm.go
++// go run mksyscall.go -l32 -tags darwin,386,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_386.1_11.go syscall_darwin_386.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+-// +build darwin,arm
++// +build darwin,386,!go1.12
+
+ package unix
+
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+- var _p0 unsafe.Pointer
+- if len(mib) > 0 {
+- _p0 = unsafe.Pointer(&mib[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func utimes(path string, timeval *[2]Timeval) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -366,8 +350,8 @@ func Munlockall() (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
++func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++ _, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -388,6 +372,161 @@ func pipe() (r int, w int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func removexattr(path string, attr string, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fremovexattr(fd int, attr string, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func listxattr(path string, dest *byte, size int, options int) (sz int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {
++ r0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++ _, _, e1 := Syscall6(SYS_SETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fcntl(fd int, cmd int, arg int) (val int, err error) {
++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
++ val = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func kill(pid int, signum int, posix int) (err error) {
+ _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix))
+ if e1 != 0 {
+@@ -408,6 +547,32 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
++ var _p0 unsafe.Pointer
++ if len(mib) > 0 {
++ _p0 = unsafe.Pointer(&mib[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := Syscall6(SYS_SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {
++ _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Access(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -672,26 +837,6 @@ func Fpathconf(fd int, name int) (val int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fstat(fd int, stat *Stat_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fstatfs(fd int, stat *Statfs_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func Fsync(fd int) (err error) {
+ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+ if e1 != 0 {
+@@ -712,23 +857,6 @@ func Ftruncate(fd int, length int64) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func Getdtablesize() (size int) {
+ r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
+ size = int(r0)
+@@ -930,21 +1058,6 @@ func Listen(s int, backlog int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Lstat(path string, stat *Stat_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func Mkdir(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1229,8 +1342,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+- _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1375,36 +1489,6 @@ func Setuid(uid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Stat(path string, stat *Stat_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Statfs(path string, stat *Statfs_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func Symlink(path string, link string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1598,6 +1682,33 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(buf) > 0 {
++ _p0 = unsafe.Pointer(&buf[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
++ _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) {
+ r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
+ sec = int32(r0)
+@@ -1607,3 +1718,94 @@ func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) {
+ }
+ return
+ }
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstat(fd int, stat *Stat_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatfs(fd int, stat *Statfs_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {
++ r0, _, e1 := Syscall(SYS_GETFSSTAT64, uintptr(buf), uintptr(size), uintptr(flags))
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Lstat(path string, stat *Stat_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Stat(path string, stat *Stat_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Statfs(path string, stat *Statfs_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.go
+new file mode 100644
+index 00000000..e263fbdb
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.go
+@@ -0,0 +1,41 @@
++// go run mksyscall.go -l32 -tags darwin,386,go1.13 syscall_darwin.1_13.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build darwin,386,go1.13
++
++package unix
++
++import (
++ "syscall"
++ "unsafe"
++)
++
++var _ syscall.Errno
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func closedir(dir uintptr) (err error) {
++ _, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_closedir_trampoline()
++
++//go:linkname libc_closedir libc_closedir
++//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) {
++ r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result)))
++ res = Errno(r0)
++ return
++}
++
++func libc_readdir_r_trampoline()
++
++//go:linkname libc_readdir_r libc_readdir_r
++//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib"
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.s
+new file mode 100644
+index 00000000..00da1ebf
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.s
+@@ -0,0 +1,12 @@
++// go run mkasm_darwin.go 386
++// Code generated by the command above; DO NOT EDIT.
++
++// +build go1.13
++
++#include "textflag.h"
++TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fdopendir(SB)
++TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_closedir(SB)
++TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_readdir_r(SB)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go
+index 10491e9e..a3fc4900 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go
+@@ -1,7 +1,7 @@
+-// mksyscall.pl -l32 -tags darwin,386 syscall_bsd.go syscall_darwin.go syscall_darwin_386.go
++// go run mksyscall.go -l32 -tags darwin,386,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_386.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+-// +build darwin,386
++// +build darwin,386,go1.12
+
+ package unix
+
+@@ -15,7 +15,7 @@ var _ syscall.Errno
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
++ r0, _, e1 := syscall_rawSyscall(funcPC(libc_getgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -23,20 +23,30 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+ return
+ }
+
++func libc_getgroups_trampoline()
++
++//go:linkname libc_getgroups libc_getgroups
++//go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func setgroups(ngid int, gid *_Gid_t) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setgroups_trampoline()
++
++//go:linkname libc_setgroups libc_setgroups
++//go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+- r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
++ r0, _, e1 := syscall_syscall6(funcPC(libc_wait4_trampoline), uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+ wpid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -44,10 +54,15 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err
+ return
+ }
+
++func libc_wait4_trampoline()
++
++//go:linkname libc_wait4 libc_wait4
++//go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
++ r0, _, e1 := syscall_syscall(funcPC(libc_accept_trampoline), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -55,30 +70,45 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+ return
+ }
+
++func libc_accept_trampoline()
++
++//go:linkname libc_accept libc_accept
++//go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+- _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
++ _, _, e1 := syscall_syscall(funcPC(libc_bind_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_bind_trampoline()
++
++//go:linkname libc_bind libc_bind
++//go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+- _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
++ _, _, e1 := syscall_syscall(funcPC(libc_connect_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_connect_trampoline()
++
++//go:linkname libc_connect libc_connect
++//go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func socket(domain int, typ int, proto int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
++ r0, _, e1 := syscall_rawSyscall(funcPC(libc_socket_trampoline), uintptr(domain), uintptr(typ), uintptr(proto))
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -86,66 +116,101 @@ func socket(domain int, typ int, proto int) (fd int, err error) {
+ return
+ }
+
++func libc_socket_trampoline()
++
++//go:linkname libc_socket libc_socket
++//go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+- _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_getsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_getsockopt_trampoline()
++
++//go:linkname libc_getsockopt libc_getsockopt
++//go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_setsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setsockopt_trampoline()
++
++//go:linkname libc_setsockopt libc_setsockopt
++//go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_getpeername_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_getpeername_trampoline()
++
++//go:linkname libc_getpeername libc_getpeername
++//go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_getsockname_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_getsockname_trampoline()
++
++//go:linkname libc_getsockname libc_getsockname
++//go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Shutdown(s int, how int) (err error) {
+- _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_shutdown_trampoline), uintptr(s), uintptr(how), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_shutdown_trampoline()
++
++//go:linkname libc_shutdown libc_shutdown
++//go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+- _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
++ _, _, e1 := syscall_rawSyscall6(funcPC(libc_socketpair_trampoline), uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_socketpair_trampoline()
++
++//go:linkname libc_socketpair libc_socketpair
++//go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+@@ -155,7 +220,7 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
++ r0, _, e1 := syscall_syscall6(funcPC(libc_recvfrom_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -163,6 +228,11 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl
+ return
+ }
+
++func libc_recvfrom_trampoline()
++
++//go:linkname libc_recvfrom libc_recvfrom
++//go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+@@ -172,17 +242,22 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
++ _, _, e1 := syscall_syscall6(funcPC(libc_sendto_trampoline), uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_sendto_trampoline()
++
++//go:linkname libc_sendto libc_sendto
++//go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
++ r0, _, e1 := syscall_syscall(funcPC(libc_recvmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -190,10 +265,15 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ return
+ }
+
++func libc_recvmsg_trampoline()
++
++//go:linkname libc_recvmsg libc_recvmsg
++//go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
++ r0, _, e1 := syscall_syscall(funcPC(libc_sendmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -201,10 +281,15 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ return
+ }
+
++func libc_sendmsg_trampoline()
++
++//go:linkname libc_sendmsg libc_sendmsg
++//go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
++ r0, _, e1 := syscall_syscall6(funcPC(libc_kevent_trampoline), uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -212,21 +297,10 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_kevent_trampoline()
+
+-func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+- var _p0 unsafe.Pointer
+- if len(mib) > 0 {
+- _p0 = unsafe.Pointer(&mib[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++//go:linkname libc_kevent libc_kevent
++//go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+@@ -236,34 +310,49 @@ func utimes(path string, timeval *[2]Timeval) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_utimes_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_utimes_trampoline()
++
++//go:linkname libc_utimes libc_utimes
++//go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func futimes(fd int, timeval *[2]Timeval) (err error) {
+- _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_futimes_trampoline), uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_futimes_trampoline()
++
++//go:linkname libc_futimes libc_futimes
++//go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++ r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_poll_trampoline()
++
++//go:linkname libc_poll libc_poll
++//go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Madvise(b []byte, behav int) (err error) {
+@@ -273,13 +362,18 @@ func Madvise(b []byte, behav int) (err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))
++ _, _, e1 := syscall_syscall(funcPC(libc_madvise_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(behav))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_madvise_trampoline()
++
++//go:linkname libc_madvise libc_madvise
++//go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Mlock(b []byte) (err error) {
+@@ -289,23 +383,33 @@ func Mlock(b []byte) (err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_mlock_trampoline), uintptr(_p0), uintptr(len(b)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mlock_trampoline()
++
++//go:linkname libc_mlock libc_mlock
++//go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Mlockall(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_mlockall_trampoline), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mlockall_trampoline()
++
++//go:linkname libc_mlockall libc_mlockall
++//go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Mprotect(b []byte, prot int) (err error) {
+@@ -315,13 +419,18 @@ func Mprotect(b []byte, prot int) (err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
++ _, _, e1 := syscall_syscall(funcPC(libc_mprotect_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(prot))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mprotect_trampoline()
++
++//go:linkname libc_mprotect libc_mprotect
++//go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Msync(b []byte, flags int) (err error) {
+@@ -331,13 +440,18 @@ func Msync(b []byte, flags int) (err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
++ _, _, e1 := syscall_syscall(funcPC(libc_msync_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(flags))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_msync_trampoline()
++
++//go:linkname libc_msync libc_msync
++//go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Munlock(b []byte) (err error) {
+@@ -347,37 +461,52 @@ func Munlock(b []byte) (err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_munlock_trampoline), uintptr(_p0), uintptr(len(b)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_munlock_trampoline()
++
++//go:linkname libc_munlock libc_munlock
++//go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Munlockall() (err error) {
+- _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_munlockall_trampoline), 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_munlockall_trampoline()
++
++//go:linkname libc_munlockall libc_munlockall
++//go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
++func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++ _, _, e1 := syscall_syscall6(funcPC(libc_getattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_getattrlist_trampoline()
++
++//go:linkname libc_getattrlist libc_getattrlist
++//go:cgo_import_dynamic libc_getattrlist getattrlist "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func pipe() (r int, w int, err error) {
+- r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
++ r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0)
+ r = int(r0)
+ w = int(r1)
+ if e1 != 0 {
+@@ -386,26 +515,282 @@ func pipe() (r int, w int, err error) {
+ return
+ }
+
++func libc_pipe_trampoline()
++
++//go:linkname libc_pipe libc_pipe
++//go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := syscall_syscall6(funcPC(libc_getxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_getxattr_trampoline()
++
++//go:linkname libc_getxattr libc_getxattr
++//go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := syscall_syscall6(funcPC(libc_fgetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fgetxattr_trampoline()
++
++//go:linkname libc_fgetxattr libc_fgetxattr
++//go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall6(funcPC(libc_setxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_setxattr_trampoline()
++
++//go:linkname libc_setxattr libc_setxattr
++//go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall6(funcPC(libc_fsetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fsetxattr_trampoline()
++
++//go:linkname libc_fsetxattr libc_fsetxattr
++//go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func removexattr(path string, attr string, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall(funcPC(libc_removexattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_removexattr_trampoline()
++
++//go:linkname libc_removexattr libc_removexattr
++//go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fremovexattr(fd int, attr string, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall(funcPC(libc_fremovexattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fremovexattr_trampoline()
++
++//go:linkname libc_fremovexattr libc_fremovexattr
++//go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func listxattr(path string, dest *byte, size int, options int) (sz int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := syscall_syscall6(funcPC(libc_listxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_listxattr_trampoline()
++
++//go:linkname libc_listxattr libc_listxattr
++//go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {
++ r0, _, e1 := syscall_syscall6(funcPC(libc_flistxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_flistxattr_trampoline()
++
++//go:linkname libc_flistxattr libc_flistxattr
++//go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++ _, _, e1 := syscall_syscall6(funcPC(libc_setattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_setattrlist_trampoline()
++
++//go:linkname libc_setattrlist libc_setattrlist
++//go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fcntl(fd int, cmd int, arg int) (val int, err error) {
++ r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg))
++ val = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fcntl_trampoline()
++
++//go:linkname libc_fcntl libc_fcntl
++//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func kill(pid int, signum int, posix int) (err error) {
+- _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix))
++ _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_kill_trampoline()
++
++//go:linkname libc_kill libc_kill
++//go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func ioctl(fd int, req uint, arg uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
++ _, _, e1 := syscall_syscall(funcPC(libc_ioctl_trampoline), uintptr(fd), uintptr(req), uintptr(arg))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_ioctl_trampoline()
++
++//go:linkname libc_ioctl libc_ioctl
++//go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
++ var _p0 unsafe.Pointer
++ if len(mib) > 0 {
++ _p0 = unsafe.Pointer(&mib[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := syscall_syscall6(funcPC(libc_sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_sysctl_trampoline()
++
++//go:linkname libc_sysctl libc_sysctl
++//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {
++ _, _, e1 := syscall_syscall9(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_sendfile_trampoline()
++
++//go:linkname libc_sendfile libc_sendfile
++//go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Access(path string, mode uint32) (err error) {
+@@ -414,23 +799,33 @@ func Access(path string, mode uint32) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_access_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_access_trampoline()
++
++//go:linkname libc_access libc_access
++//go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+- _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_adjtime_trampoline), uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_adjtime_trampoline()
++
++//go:linkname libc_adjtime libc_adjtime
++//go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Chdir(path string) (err error) {
+@@ -439,13 +834,18 @@ func Chdir(path string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_chdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_chdir_trampoline()
++
++//go:linkname libc_chdir libc_chdir
++//go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Chflags(path string, flags int) (err error) {
+@@ -454,13 +854,18 @@ func Chflags(path string, flags int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_chflags_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_chflags_trampoline()
++
++//go:linkname libc_chflags libc_chflags
++//go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Chmod(path string, mode uint32) (err error) {
+@@ -469,13 +874,18 @@ func Chmod(path string, mode uint32) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_chmod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_chmod_trampoline()
++
++//go:linkname libc_chmod libc_chmod
++//go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Chown(path string, uid int, gid int) (err error) {
+@@ -484,13 +894,18 @@ func Chown(path string, uid int, gid int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
++ _, _, e1 := syscall_syscall(funcPC(libc_chown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_chown_trampoline()
++
++//go:linkname libc_chown libc_chown
++//go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Chroot(path string) (err error) {
+@@ -499,27 +914,52 @@ func Chroot(path string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_chroot_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_chroot_trampoline()
++
++//go:linkname libc_chroot libc_chroot
++//go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ClockGettime(clockid int32, time *Timespec) (err error) {
++ _, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_clock_gettime_trampoline()
++
++//go:linkname libc_clock_gettime libc_clock_gettime
++//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Close(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_close_trampoline()
++
++//go:linkname libc_close libc_close
++//go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Dup(fd int) (nfd int, err error) {
+- r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)
++ r0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0)
+ nfd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -527,16 +967,26 @@ func Dup(fd int) (nfd int, err error) {
+ return
+ }
+
++func libc_dup_trampoline()
++
++//go:linkname libc_dup libc_dup
++//go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Dup2(from int, to int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_dup2_trampoline), uintptr(from), uintptr(to), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_dup2_trampoline()
++
++//go:linkname libc_dup2 libc_dup2
++//go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Exchangedata(path1 string, path2 string, options int) (err error) {
+@@ -550,20 +1000,30 @@ func Exchangedata(path1 string, path2 string, options int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
++ _, _, e1 := syscall_syscall(funcPC(libc_exchangedata_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_exchangedata_trampoline()
++
++//go:linkname libc_exchangedata libc_exchangedata
++//go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Exit(code int) {
+- Syscall(SYS_EXIT, uintptr(code), 0, 0)
++ syscall_syscall(funcPC(libc_exit_trampoline), uintptr(code), 0, 0)
+ return
+ }
+
++func libc_exit_trampoline()
++
++//go:linkname libc_exit libc_exit
++//go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+@@ -572,43 +1032,63 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_faccessat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_faccessat_trampoline()
++
++//go:linkname libc_faccessat libc_faccessat
++//go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fchdir(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_fchdir_trampoline), uintptr(fd), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_fchdir_trampoline()
++
++//go:linkname libc_fchdir libc_fchdir
++//go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fchflags(fd int, flags int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_fchflags_trampoline), uintptr(fd), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_fchflags_trampoline()
++
++//go:linkname libc_fchflags libc_fchflags
++//go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fchmod(fd int, mode uint32) (err error) {
+- _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_fchmod_trampoline), uintptr(fd), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_fchmod_trampoline()
++
++//go:linkname libc_fchmod libc_fchmod
++//go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
+@@ -617,23 +1097,33 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_fchmodat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_fchmodat_trampoline()
++
++//go:linkname libc_fchmodat libc_fchmodat
++//go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fchown(fd int, uid int, gid int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
++ _, _, e1 := syscall_syscall(funcPC(libc_fchown_trampoline), uintptr(fd), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_fchown_trampoline()
++
++//go:linkname libc_fchown libc_fchown
++//go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+@@ -642,27 +1132,37 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_fchownat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_fchownat_trampoline()
++
++//go:linkname libc_fchownat libc_fchownat
++//go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Flock(fd int, how int) (err error) {
+- _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_flock_trampoline()
++
++//go:linkname libc_flock libc_flock
++//go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fpathconf(fd int, name int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)
++ r0, _, e1 := syscall_syscall(funcPC(libc_fpathconf_trampoline), uintptr(fd), uintptr(name), 0)
+ val = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -670,99 +1170,97 @@ func Fpathconf(fd int, name int) (val int, err error) {
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_fpathconf_trampoline()
+
+-func Fstat(fd int, stat *Stat_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++//go:linkname libc_fpathconf libc_fpathconf
++//go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fstatfs(fd int, stat *Statfs_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++func Fsync(fd int) (err error) {
++ _, _, e1 := syscall_syscall(funcPC(libc_fsync_trampoline), uintptr(fd), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_fsync_trampoline()
+
+-func Fsync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++//go:linkname libc_fsync libc_fsync
++//go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Ftruncate(fd int, length int64) (err error) {
+- _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32))
++ _, _, e1 := syscall_syscall(funcPC(libc_ftruncate_trampoline), uintptr(fd), uintptr(length), uintptr(length>>32))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_ftruncate_trampoline()
+
+-func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++//go:linkname libc_ftruncate libc_ftruncate
++//go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getdtablesize() (size int) {
+- r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
++ r0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0)
+ size = int(r0)
+ return
+ }
+
++func libc_getdtablesize_trampoline()
++
++//go:linkname libc_getdtablesize libc_getdtablesize
++//go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getegid() (egid int) {
+- r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_getegid_trampoline), 0, 0, 0)
+ egid = int(r0)
+ return
+ }
+
++func libc_getegid_trampoline()
++
++//go:linkname libc_getegid libc_getegid
++//go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Geteuid() (uid int) {
+- r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_geteuid_trampoline), 0, 0, 0)
+ uid = int(r0)
+ return
+ }
+
++func libc_geteuid_trampoline()
++
++//go:linkname libc_geteuid libc_geteuid
++//go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getgid() (gid int) {
+- r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_getgid_trampoline), 0, 0, 0)
+ gid = int(r0)
+ return
+ }
+
++func libc_getgid_trampoline()
++
++//go:linkname libc_getgid libc_getgid
++//go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getpgid(pid int) (pgid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
++ r0, _, e1 := syscall_rawSyscall(funcPC(libc_getpgid_trampoline), uintptr(pid), 0, 0)
+ pgid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -770,34 +1268,54 @@ func Getpgid(pid int) (pgid int, err error) {
+ return
+ }
+
++func libc_getpgid_trampoline()
++
++//go:linkname libc_getpgid libc_getpgid
++//go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getpgrp() (pgrp int) {
+- r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_getpgrp_trampoline), 0, 0, 0)
+ pgrp = int(r0)
+ return
+ }
+
++func libc_getpgrp_trampoline()
++
++//go:linkname libc_getpgrp libc_getpgrp
++//go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getpid() (pid int) {
+- r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_getpid_trampoline), 0, 0, 0)
+ pid = int(r0)
+ return
+ }
+
++func libc_getpid_trampoline()
++
++//go:linkname libc_getpid libc_getpid
++//go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getppid() (ppid int) {
+- r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_getppid_trampoline), 0, 0, 0)
+ ppid = int(r0)
+ return
+ }
+
++func libc_getppid_trampoline()
++
++//go:linkname libc_getppid libc_getppid
++//go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getpriority(which int, who int) (prio int, err error) {
+- r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
++ r0, _, e1 := syscall_syscall(funcPC(libc_getpriority_trampoline), uintptr(which), uintptr(who), 0)
+ prio = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -805,30 +1323,45 @@ func Getpriority(which int, who int) (prio int, err error) {
+ return
+ }
+
++func libc_getpriority_trampoline()
++
++//go:linkname libc_getpriority libc_getpriority
++//go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getrlimit(which int, lim *Rlimit) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_getrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_getrlimit_trampoline()
++
++//go:linkname libc_getrlimit libc_getrlimit
++//go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getrusage(who int, rusage *Rusage) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_getrusage_trampoline), uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_getrusage_trampoline()
++
++//go:linkname libc_getrusage libc_getrusage
++//go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getsid(pid int) (sid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
++ r0, _, e1 := syscall_rawSyscall(funcPC(libc_getsid_trampoline), uintptr(pid), 0, 0)
+ sid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -836,26 +1369,41 @@ func Getsid(pid int) (sid int, err error) {
+ return
+ }
+
++func libc_getsid_trampoline()
++
++//go:linkname libc_getsid libc_getsid
++//go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getuid() (uid int) {
+- r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0)
+ uid = int(r0)
+ return
+ }
+
++func libc_getuid_trampoline()
++
++//go:linkname libc_getuid libc_getuid
++//go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Issetugid() (tainted bool) {
+- r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_issetugid_trampoline), 0, 0, 0)
+ tainted = bool(r0 != 0)
+ return
+ }
+
++func libc_issetugid_trampoline()
++
++//go:linkname libc_issetugid libc_issetugid
++//go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Kqueue() (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)
++ r0, _, e1 := syscall_syscall(funcPC(libc_kqueue_trampoline), 0, 0, 0)
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -863,6 +1411,11 @@ func Kqueue() (fd int, err error) {
+ return
+ }
+
++func libc_kqueue_trampoline()
++
++//go:linkname libc_kqueue libc_kqueue
++//go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Lchown(path string, uid int, gid int) (err error) {
+@@ -871,13 +1424,18 @@ func Lchown(path string, uid int, gid int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
++ _, _, e1 := syscall_syscall(funcPC(libc_lchown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_lchown_trampoline()
++
++//go:linkname libc_lchown libc_lchown
++//go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Link(path string, link string) (err error) {
+@@ -891,13 +1449,18 @@ func Link(path string, link string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_link_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_link_trampoline()
++
++//go:linkname libc_link libc_link
++//go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {
+@@ -911,37 +1474,32 @@ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err er
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_linkat_trampoline), uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_linkat_trampoline()
++
++//go:linkname libc_linkat libc_linkat
++//go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Listen(s int, backlog int) (err error) {
+- _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_listen_trampoline), uintptr(s), uintptr(backlog), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_listen_trampoline()
+
+-func Lstat(path string, stat *Stat_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++//go:linkname libc_listen libc_listen
++//go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+@@ -951,13 +1509,18 @@ func Mkdir(path string, mode uint32) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_mkdir_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mkdir_trampoline()
++
++//go:linkname libc_mkdir libc_mkdir
++//go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+@@ -966,13 +1529,18 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
++ _, _, e1 := syscall_syscall(funcPC(libc_mkdirat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mkdirat_trampoline()
++
++//go:linkname libc_mkdirat libc_mkdirat
++//go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Mkfifo(path string, mode uint32) (err error) {
+@@ -981,13 +1549,18 @@ func Mkfifo(path string, mode uint32) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_mkfifo_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mkfifo_trampoline()
++
++//go:linkname libc_mkfifo libc_mkfifo
++//go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Mknod(path string, mode uint32, dev int) (err error) {
+@@ -996,13 +1569,18 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
++ _, _, e1 := syscall_syscall(funcPC(libc_mknod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mknod_trampoline()
++
++//go:linkname libc_mknod libc_mknod
++//go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Open(path string, mode int, perm uint32) (fd int, err error) {
+@@ -1011,7 +1589,7 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ if err != nil {
+ return
+ }
+- r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
++ r0, _, e1 := syscall_syscall(funcPC(libc_open_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1019,6 +1597,11 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ return
+ }
+
++func libc_open_trampoline()
++
++//go:linkname libc_open libc_open
++//go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+@@ -1027,7 +1610,7 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+ if err != nil {
+ return
+ }
+- r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
++ r0, _, e1 := syscall_syscall6(funcPC(libc_openat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1035,6 +1618,11 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+ return
+ }
+
++func libc_openat_trampoline()
++
++//go:linkname libc_openat libc_openat
++//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Pathconf(path string, name int) (val int, err error) {
+@@ -1043,7 +1631,7 @@ func Pathconf(path string, name int) (val int, err error) {
+ if err != nil {
+ return
+ }
+- r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
++ r0, _, e1 := syscall_syscall(funcPC(libc_pathconf_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
+ val = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1051,6 +1639,11 @@ func Pathconf(path string, name int) (val int, err error) {
+ return
+ }
+
++func libc_pathconf_trampoline()
++
++//go:linkname libc_pathconf libc_pathconf
++//go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+@@ -1060,7 +1653,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
++ r0, _, e1 := syscall_syscall6(funcPC(libc_pread_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1068,6 +1661,11 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ return
+ }
+
++func libc_pread_trampoline()
++
++//go:linkname libc_pread libc_pread
++//go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+@@ -1077,7 +1675,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
++ r0, _, e1 := syscall_syscall6(funcPC(libc_pwrite_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1085,6 +1683,11 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ return
+ }
+
++func libc_pwrite_trampoline()
++
++//go:linkname libc_pwrite libc_pwrite
++//go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func read(fd int, p []byte) (n int, err error) {
+@@ -1094,7 +1697,7 @@ func read(fd int, p []byte) (n int, err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
++ r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1102,6 +1705,11 @@ func read(fd int, p []byte) (n int, err error) {
+ return
+ }
+
++func libc_read_trampoline()
++
++//go:linkname libc_read libc_read
++//go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Readlink(path string, buf []byte) (n int, err error) {
+@@ -1116,7 +1724,7 @@ func Readlink(path string, buf []byte) (n int, err error) {
+ } else {
+ _p1 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
++ r0, _, e1 := syscall_syscall(funcPC(libc_readlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1124,6 +1732,11 @@ func Readlink(path string, buf []byte) (n int, err error) {
+ return
+ }
+
++func libc_readlink_trampoline()
++
++//go:linkname libc_readlink libc_readlink
++//go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+@@ -1138,7 +1751,7 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ } else {
+ _p1 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
++ r0, _, e1 := syscall_syscall6(funcPC(libc_readlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1146,6 +1759,11 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ return
+ }
+
++func libc_readlinkat_trampoline()
++
++//go:linkname libc_readlinkat libc_readlinkat
++//go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Rename(from string, to string) (err error) {
+@@ -1159,13 +1777,18 @@ func Rename(from string, to string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_rename_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_rename_trampoline()
++
++//go:linkname libc_rename libc_rename
++//go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Renameat(fromfd int, from string, tofd int, to string) (err error) {
+@@ -1179,13 +1802,18 @@ func Renameat(fromfd int, from string, tofd int, to string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_renameat_trampoline), uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_renameat_trampoline()
++
++//go:linkname libc_renameat libc_renameat
++//go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Revoke(path string) (err error) {
+@@ -1194,13 +1822,18 @@ func Revoke(path string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_revoke_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_revoke_trampoline()
++
++//go:linkname libc_revoke libc_revoke
++//go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Rmdir(path string) (err error) {
+@@ -1209,17 +1842,22 @@ func Rmdir(path string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_rmdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_rmdir_trampoline()
++
++//go:linkname libc_rmdir libc_rmdir
++//go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+- r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0)
++ r0, r1, e1 := syscall_syscall6(funcPC(libc_lseek_trampoline), uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0)
+ newoffset = int64(int64(r1)<<32 | int64(r0))
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1227,46 +1865,72 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ return
+ }
+
++func libc_lseek_trampoline()
++
++//go:linkname libc_lseek libc_lseek
++//go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+- _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ r0, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_select_trampoline()
++
++//go:linkname libc_select libc_select
++//go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setegid(egid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_setegid_trampoline), uintptr(egid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setegid_trampoline()
++
++//go:linkname libc_setegid libc_setegid
++//go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Seteuid(euid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_seteuid_trampoline), uintptr(euid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_seteuid_trampoline()
++
++//go:linkname libc_seteuid libc_seteuid
++//go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setgid(gid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setgid_trampoline), uintptr(gid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setgid_trampoline()
++
++//go:linkname libc_setgid libc_setgid
++//go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setlogin(name string) (err error) {
+@@ -1275,77 +1939,112 @@ func Setlogin(name string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_setlogin_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setlogin_trampoline()
++
++//go:linkname libc_setlogin libc_setlogin
++//go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setpgid(pid int, pgid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setpgid_trampoline), uintptr(pid), uintptr(pgid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setpgid_trampoline()
++
++//go:linkname libc_setpgid libc_setpgid
++//go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setpriority(which int, who int, prio int) (err error) {
+- _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
++ _, _, e1 := syscall_syscall(funcPC(libc_setpriority_trampoline), uintptr(which), uintptr(who), uintptr(prio))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setpriority_trampoline()
++
++//go:linkname libc_setpriority libc_setpriority
++//go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setprivexec(flag int) (err error) {
+- _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_setprivexec_trampoline), uintptr(flag), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setprivexec_trampoline()
++
++//go:linkname libc_setprivexec libc_setprivexec
++//go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setregid(rgid int, egid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setregid_trampoline), uintptr(rgid), uintptr(egid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setregid_trampoline()
++
++//go:linkname libc_setregid libc_setregid
++//go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setreuid(ruid int, euid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setreuid_trampoline), uintptr(ruid), uintptr(euid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setreuid_trampoline()
++
++//go:linkname libc_setreuid libc_setreuid
++//go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setrlimit(which int, lim *Rlimit) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setrlimit_trampoline()
++
++//go:linkname libc_setrlimit libc_setrlimit
++//go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setsid() (pid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
++ r0, _, e1 := syscall_rawSyscall(funcPC(libc_setsid_trampoline), 0, 0, 0)
+ pid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1353,55 +2052,40 @@ func Setsid() (pid int, err error) {
+ return
+ }
+
++func libc_setsid_trampoline()
++
++//go:linkname libc_setsid libc_setsid
++//go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Settimeofday(tp *Timeval) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_settimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_settimeofday_trampoline()
+
+-func Setuid(uid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++//go:linkname libc_settimeofday libc_settimeofday
++//go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Stat(path string, stat *Stat_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++func Setuid(uid int) (err error) {
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setuid_trampoline), uintptr(uid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_setuid_trampoline()
+
+-func Statfs(path string, stat *Statfs_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++//go:linkname libc_setuid libc_setuid
++//go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+@@ -1416,13 +2100,18 @@ func Symlink(path string, link string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_symlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_symlink_trampoline()
++
++//go:linkname libc_symlink libc_symlink
++//go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+@@ -1436,23 +2125,33 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
++ _, _, e1 := syscall_syscall(funcPC(libc_symlinkat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_symlinkat_trampoline()
++
++//go:linkname libc_symlinkat libc_symlinkat
++//go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Sync() (err error) {
+- _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_sync_trampoline), 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_sync_trampoline()
++
++//go:linkname libc_sync libc_sync
++//go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Truncate(path string, length int64) (err error) {
+@@ -1461,21 +2160,31 @@ func Truncate(path string, length int64) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))
++ _, _, e1 := syscall_syscall(funcPC(libc_truncate_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_truncate_trampoline()
++
++//go:linkname libc_truncate libc_truncate
++//go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Umask(newmask int) (oldmask int) {
+- r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)
++ r0, _, _ := syscall_syscall(funcPC(libc_umask_trampoline), uintptr(newmask), 0, 0)
+ oldmask = int(r0)
+ return
+ }
+
++func libc_umask_trampoline()
++
++//go:linkname libc_umask libc_umask
++//go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Undelete(path string) (err error) {
+@@ -1484,13 +2193,18 @@ func Undelete(path string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_undelete_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_undelete_trampoline()
++
++//go:linkname libc_undelete libc_undelete
++//go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Unlink(path string) (err error) {
+@@ -1499,13 +2213,18 @@ func Unlink(path string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_unlink_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_unlink_trampoline()
++
++//go:linkname libc_unlink libc_unlink
++//go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Unlinkat(dirfd int, path string, flags int) (err error) {
+@@ -1514,13 +2233,18 @@ func Unlinkat(dirfd int, path string, flags int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
++ _, _, e1 := syscall_syscall(funcPC(libc_unlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_unlinkat_trampoline()
++
++//go:linkname libc_unlinkat libc_unlinkat
++//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Unmount(path string, flags int) (err error) {
+@@ -1529,13 +2253,18 @@ func Unmount(path string, flags int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_unmount_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_unmount_trampoline()
++
++//go:linkname libc_unmount libc_unmount
++//go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func write(fd int, p []byte) (n int, err error) {
+@@ -1545,7 +2274,7 @@ func write(fd int, p []byte) (n int, err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
++ r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1553,10 +2282,15 @@ func write(fd int, p []byte) (n int, err error) {
+ return
+ }
+
++func libc_write_trampoline()
++
++//go:linkname libc_write libc_write
++//go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
+- r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0)
++ r0, _, e1 := syscall_syscall9(funcPC(libc_mmap_trampoline), uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0)
+ ret = uintptr(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1564,20 +2298,30 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (
+ return
+ }
+
++func libc_mmap_trampoline()
++
++//go:linkname libc_mmap libc_mmap
++//go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func munmap(addr uintptr, length uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_munmap_trampoline), uintptr(addr), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_munmap_trampoline()
++
++//go:linkname libc_munmap libc_munmap
++//go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
++ r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1588,7 +2332,7 @@ func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
++ r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1598,8 +2342,23 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
++ _, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_ptrace_trampoline()
++
++//go:linkname libc_ptrace libc_ptrace
++//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) {
+- r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
++ r0, r1, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)
+ sec = int32(r0)
+ usec = int32(r1)
+ if e1 != 0 {
+@@ -1607,3 +2366,134 @@ func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) {
+ }
+ return
+ }
++
++func libc_gettimeofday_trampoline()
++
++//go:linkname libc_gettimeofday libc_gettimeofday
++//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstat(fd int, stat *Stat_t) (err error) {
++ _, _, e1 := syscall_syscall(funcPC(libc_fstat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fstat64_trampoline()
++
++//go:linkname libc_fstat64 libc_fstat64
++//go:cgo_import_dynamic libc_fstat64 fstat64 "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall6(funcPC(libc_fstatat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fstatat64_trampoline()
++
++//go:linkname libc_fstatat64 libc_fstatat64
++//go:cgo_import_dynamic libc_fstatat64 fstatat64 "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatfs(fd int, stat *Statfs_t) (err error) {
++ _, _, e1 := syscall_syscall(funcPC(libc_fstatfs64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fstatfs64_trampoline()
++
++//go:linkname libc_fstatfs64 libc_fstatfs64
++//go:cgo_import_dynamic libc_fstatfs64 fstatfs64 "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {
++ r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat64_trampoline), uintptr(buf), uintptr(size), uintptr(flags))
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_getfsstat64_trampoline()
++
++//go:linkname libc_getfsstat64 libc_getfsstat64
++//go:cgo_import_dynamic libc_getfsstat64 getfsstat64 "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Lstat(path string, stat *Stat_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall(funcPC(libc_lstat64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_lstat64_trampoline()
++
++//go:linkname libc_lstat64 libc_lstat64
++//go:cgo_import_dynamic libc_lstat64 lstat64 "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Stat(path string, stat *Stat_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall(funcPC(libc_stat64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_stat64_trampoline()
++
++//go:linkname libc_stat64 libc_stat64
++//go:cgo_import_dynamic libc_stat64 stat64 "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Statfs(path string, stat *Statfs_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall(funcPC(libc_statfs64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_statfs64_trampoline()
++
++//go:linkname libc_statfs64 libc_statfs64
++//go:cgo_import_dynamic libc_statfs64 statfs64 "/usr/lib/libSystem.B.dylib"
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s
+new file mode 100644
+index 00000000..6836a412
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s
+@@ -0,0 +1,284 @@
++// go run mkasm_darwin.go 386
++// Code generated by the command above; DO NOT EDIT.
++
++// +build go1.12
++
++#include "textflag.h"
++TEXT ·libc_getgroups_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getgroups(SB)
++TEXT ·libc_setgroups_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setgroups(SB)
++TEXT ·libc_wait4_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_wait4(SB)
++TEXT ·libc_accept_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_accept(SB)
++TEXT ·libc_bind_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_bind(SB)
++TEXT ·libc_connect_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_connect(SB)
++TEXT ·libc_socket_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_socket(SB)
++TEXT ·libc_getsockopt_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getsockopt(SB)
++TEXT ·libc_setsockopt_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setsockopt(SB)
++TEXT ·libc_getpeername_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getpeername(SB)
++TEXT ·libc_getsockname_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getsockname(SB)
++TEXT ·libc_shutdown_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_shutdown(SB)
++TEXT ·libc_socketpair_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_socketpair(SB)
++TEXT ·libc_recvfrom_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_recvfrom(SB)
++TEXT ·libc_sendto_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_sendto(SB)
++TEXT ·libc_recvmsg_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_recvmsg(SB)
++TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_sendmsg(SB)
++TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_kevent(SB)
++TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_utimes(SB)
++TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_futimes(SB)
++TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_poll(SB)
++TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_madvise(SB)
++TEXT ·libc_mlock_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mlock(SB)
++TEXT ·libc_mlockall_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mlockall(SB)
++TEXT ·libc_mprotect_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mprotect(SB)
++TEXT ·libc_msync_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_msync(SB)
++TEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_munlock(SB)
++TEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_munlockall(SB)
++TEXT ·libc_getattrlist_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getattrlist(SB)
++TEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_pipe(SB)
++TEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getxattr(SB)
++TEXT ·libc_fgetxattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fgetxattr(SB)
++TEXT ·libc_setxattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setxattr(SB)
++TEXT ·libc_fsetxattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fsetxattr(SB)
++TEXT ·libc_removexattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_removexattr(SB)
++TEXT ·libc_fremovexattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fremovexattr(SB)
++TEXT ·libc_listxattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_listxattr(SB)
++TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_flistxattr(SB)
++TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setattrlist(SB)
++TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fcntl(SB)
++TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_kill(SB)
++TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_ioctl(SB)
++TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_sysctl(SB)
++TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_sendfile(SB)
++TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_access(SB)
++TEXT ·libc_adjtime_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_adjtime(SB)
++TEXT ·libc_chdir_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_chdir(SB)
++TEXT ·libc_chflags_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_chflags(SB)
++TEXT ·libc_chmod_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_chmod(SB)
++TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_chown(SB)
++TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_chroot(SB)
++TEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_clock_gettime(SB)
++TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_close(SB)
++TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_dup(SB)
++TEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_dup2(SB)
++TEXT ·libc_exchangedata_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_exchangedata(SB)
++TEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_exit(SB)
++TEXT ·libc_faccessat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_faccessat(SB)
++TEXT ·libc_fchdir_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fchdir(SB)
++TEXT ·libc_fchflags_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fchflags(SB)
++TEXT ·libc_fchmod_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fchmod(SB)
++TEXT ·libc_fchmodat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fchmodat(SB)
++TEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fchown(SB)
++TEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fchownat(SB)
++TEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_flock(SB)
++TEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fpathconf(SB)
++TEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fsync(SB)
++TEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_ftruncate(SB)
++TEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getdtablesize(SB)
++TEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getegid(SB)
++TEXT ·libc_geteuid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_geteuid(SB)
++TEXT ·libc_getgid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getgid(SB)
++TEXT ·libc_getpgid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getpgid(SB)
++TEXT ·libc_getpgrp_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getpgrp(SB)
++TEXT ·libc_getpid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getpid(SB)
++TEXT ·libc_getppid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getppid(SB)
++TEXT ·libc_getpriority_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getpriority(SB)
++TEXT ·libc_getrlimit_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getrlimit(SB)
++TEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getrusage(SB)
++TEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getsid(SB)
++TEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getuid(SB)
++TEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_issetugid(SB)
++TEXT ·libc_kqueue_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_kqueue(SB)
++TEXT ·libc_lchown_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_lchown(SB)
++TEXT ·libc_link_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_link(SB)
++TEXT ·libc_linkat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_linkat(SB)
++TEXT ·libc_listen_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_listen(SB)
++TEXT ·libc_mkdir_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mkdir(SB)
++TEXT ·libc_mkdirat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mkdirat(SB)
++TEXT ·libc_mkfifo_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mkfifo(SB)
++TEXT ·libc_mknod_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mknod(SB)
++TEXT ·libc_open_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_open(SB)
++TEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_openat(SB)
++TEXT ·libc_pathconf_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_pathconf(SB)
++TEXT ·libc_pread_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_pread(SB)
++TEXT ·libc_pwrite_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_pwrite(SB)
++TEXT ·libc_read_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_read(SB)
++TEXT ·libc_readlink_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_readlink(SB)
++TEXT ·libc_readlinkat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_readlinkat(SB)
++TEXT ·libc_rename_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_rename(SB)
++TEXT ·libc_renameat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_renameat(SB)
++TEXT ·libc_revoke_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_revoke(SB)
++TEXT ·libc_rmdir_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_rmdir(SB)
++TEXT ·libc_lseek_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_lseek(SB)
++TEXT ·libc_select_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_select(SB)
++TEXT ·libc_setegid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setegid(SB)
++TEXT ·libc_seteuid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_seteuid(SB)
++TEXT ·libc_setgid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setgid(SB)
++TEXT ·libc_setlogin_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setlogin(SB)
++TEXT ·libc_setpgid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setpgid(SB)
++TEXT ·libc_setpriority_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setpriority(SB)
++TEXT ·libc_setprivexec_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setprivexec(SB)
++TEXT ·libc_setregid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setregid(SB)
++TEXT ·libc_setreuid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setreuid(SB)
++TEXT ·libc_setrlimit_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setrlimit(SB)
++TEXT ·libc_setsid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setsid(SB)
++TEXT ·libc_settimeofday_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_settimeofday(SB)
++TEXT ·libc_setuid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setuid(SB)
++TEXT ·libc_symlink_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_symlink(SB)
++TEXT ·libc_symlinkat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_symlinkat(SB)
++TEXT ·libc_sync_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_sync(SB)
++TEXT ·libc_truncate_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_truncate(SB)
++TEXT ·libc_umask_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_umask(SB)
++TEXT ·libc_undelete_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_undelete(SB)
++TEXT ·libc_unlink_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_unlink(SB)
++TEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_unlinkat(SB)
++TEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_unmount(SB)
++TEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_write(SB)
++TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mmap(SB)
++TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_munmap(SB)
++TEXT ·libc_ptrace_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_ptrace(SB)
++TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_gettimeofday(SB)
++TEXT ·libc_fstat64_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fstat64(SB)
++TEXT ·libc_fstatat64_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fstatat64(SB)
++TEXT ·libc_fstatfs64_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fstatfs64(SB)
++TEXT ·libc_getfsstat64_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getfsstat64(SB)
++TEXT ·libc_lstat64_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_lstat64(SB)
++TEXT ·libc_stat64_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_stat64(SB)
++TEXT ·libc_statfs64_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_statfs64(SB)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go
+similarity index 85%
+copy from vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
+copy to vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go
+index 07c6ebc9..f8e5c37c 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go
+@@ -1,7 +1,7 @@
+-// mksyscall.pl -tags darwin,arm64 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go
++// go run mksyscall.go -tags darwin,amd64,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.1_11.go syscall_darwin_amd64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+-// +build darwin,arm64
++// +build darwin,amd64,!go1.12
+
+ package unix
+
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+- var _p0 unsafe.Pointer
+- if len(mib) > 0 {
+- _p0 = unsafe.Pointer(&mib[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func utimes(path string, timeval *[2]Timeval) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -366,8 +350,8 @@ func Munlockall() (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
++func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++ _, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -388,6 +372,161 @@ func pipe() (r int, w int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func removexattr(path string, attr string, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fremovexattr(fd int, attr string, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func listxattr(path string, dest *byte, size int, options int) (sz int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {
++ r0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++ _, _, e1 := Syscall6(SYS_SETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fcntl(fd int, cmd int, arg int) (val int, err error) {
++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
++ val = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func kill(pid int, signum int, posix int) (err error) {
+ _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix))
+ if e1 != 0 {
+@@ -408,6 +547,32 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
++ var _p0 unsafe.Pointer
++ if len(mib) > 0 {
++ _p0 = unsafe.Pointer(&mib[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := Syscall6(SYS_SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {
++ _, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Access(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -672,26 +837,6 @@ func Fpathconf(fd int, name int) (val int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fstat(fd int, stat *Stat_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fstatfs(fd int, stat *Statfs_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func Fsync(fd int) (err error) {
+ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+ if e1 != 0 {
+@@ -712,23 +857,6 @@ func Ftruncate(fd int, length int64) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func Getdtablesize() (size int) {
+ r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
+ size = int(r0)
+@@ -930,21 +1058,6 @@ func Listen(s int, backlog int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Lstat(path string, stat *Stat_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func Mkdir(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1229,8 +1342,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+- _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1375,36 +1489,6 @@ func Setuid(uid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Stat(path string, stat *Stat_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Statfs(path string, stat *Statfs_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func Symlink(path string, link string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1598,6 +1682,33 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(buf) > 0 {
++ _p0 = unsafe.Pointer(&buf[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
++ _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) {
+ r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
+ sec = int64(r0)
+@@ -1607,3 +1718,94 @@ func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) {
+ }
+ return
+ }
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstat(fd int, stat *Stat_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatfs(fd int, stat *Statfs_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {
++ r0, _, e1 := Syscall(SYS_GETFSSTAT64, uintptr(buf), uintptr(size), uintptr(flags))
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Lstat(path string, stat *Stat_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Stat(path string, stat *Stat_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Statfs(path string, stat *Statfs_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go
+new file mode 100644
+index 00000000..314042a9
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go
+@@ -0,0 +1,41 @@
++// go run mksyscall.go -tags darwin,amd64,go1.13 syscall_darwin.1_13.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build darwin,amd64,go1.13
++
++package unix
++
++import (
++ "syscall"
++ "unsafe"
++)
++
++var _ syscall.Errno
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func closedir(dir uintptr) (err error) {
++ _, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_closedir_trampoline()
++
++//go:linkname libc_closedir libc_closedir
++//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) {
++ r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result)))
++ res = Errno(r0)
++ return
++}
++
++func libc_readdir_r_trampoline()
++
++//go:linkname libc_readdir_r libc_readdir_r
++//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib"
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s
+new file mode 100644
+index 00000000..d671e831
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s
+@@ -0,0 +1,12 @@
++// go run mkasm_darwin.go amd64
++// Code generated by the command above; DO NOT EDIT.
++
++// +build go1.13
++
++#include "textflag.h"
++TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fdopendir(SB)
++TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_closedir(SB)
++TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_readdir_r(SB)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go
+index 5f1f6bfe..50d6437e 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go
+@@ -1,7 +1,7 @@
+-// mksyscall.pl -tags darwin,amd64 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go
++// go run mksyscall.go -tags darwin,amd64,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+-// +build darwin,amd64
++// +build darwin,amd64,go1.12
+
+ package unix
+
+@@ -15,7 +15,7 @@ var _ syscall.Errno
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
++ r0, _, e1 := syscall_rawSyscall(funcPC(libc_getgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -23,20 +23,30 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+ return
+ }
+
++func libc_getgroups_trampoline()
++
++//go:linkname libc_getgroups libc_getgroups
++//go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func setgroups(ngid int, gid *_Gid_t) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setgroups_trampoline()
++
++//go:linkname libc_setgroups libc_setgroups
++//go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+- r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
++ r0, _, e1 := syscall_syscall6(funcPC(libc_wait4_trampoline), uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+ wpid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -44,10 +54,15 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err
+ return
+ }
+
++func libc_wait4_trampoline()
++
++//go:linkname libc_wait4 libc_wait4
++//go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
++ r0, _, e1 := syscall_syscall(funcPC(libc_accept_trampoline), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -55,30 +70,45 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+ return
+ }
+
++func libc_accept_trampoline()
++
++//go:linkname libc_accept libc_accept
++//go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+- _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
++ _, _, e1 := syscall_syscall(funcPC(libc_bind_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_bind_trampoline()
++
++//go:linkname libc_bind libc_bind
++//go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+- _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
++ _, _, e1 := syscall_syscall(funcPC(libc_connect_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_connect_trampoline()
++
++//go:linkname libc_connect libc_connect
++//go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func socket(domain int, typ int, proto int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
++ r0, _, e1 := syscall_rawSyscall(funcPC(libc_socket_trampoline), uintptr(domain), uintptr(typ), uintptr(proto))
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -86,66 +116,101 @@ func socket(domain int, typ int, proto int) (fd int, err error) {
+ return
+ }
+
++func libc_socket_trampoline()
++
++//go:linkname libc_socket libc_socket
++//go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+- _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_getsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_getsockopt_trampoline()
++
++//go:linkname libc_getsockopt libc_getsockopt
++//go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_setsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setsockopt_trampoline()
++
++//go:linkname libc_setsockopt libc_setsockopt
++//go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_getpeername_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_getpeername_trampoline()
++
++//go:linkname libc_getpeername libc_getpeername
++//go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_getsockname_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_getsockname_trampoline()
++
++//go:linkname libc_getsockname libc_getsockname
++//go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Shutdown(s int, how int) (err error) {
+- _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_shutdown_trampoline), uintptr(s), uintptr(how), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_shutdown_trampoline()
++
++//go:linkname libc_shutdown libc_shutdown
++//go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+- _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
++ _, _, e1 := syscall_rawSyscall6(funcPC(libc_socketpair_trampoline), uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_socketpair_trampoline()
++
++//go:linkname libc_socketpair libc_socketpair
++//go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+@@ -155,7 +220,7 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
++ r0, _, e1 := syscall_syscall6(funcPC(libc_recvfrom_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -163,6 +228,11 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl
+ return
+ }
+
++func libc_recvfrom_trampoline()
++
++//go:linkname libc_recvfrom libc_recvfrom
++//go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+@@ -172,17 +242,22 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
++ _, _, e1 := syscall_syscall6(funcPC(libc_sendto_trampoline), uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_sendto_trampoline()
++
++//go:linkname libc_sendto libc_sendto
++//go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
++ r0, _, e1 := syscall_syscall(funcPC(libc_recvmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -190,10 +265,15 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ return
+ }
+
++func libc_recvmsg_trampoline()
++
++//go:linkname libc_recvmsg libc_recvmsg
++//go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
++ r0, _, e1 := syscall_syscall(funcPC(libc_sendmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -201,10 +281,15 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ return
+ }
+
++func libc_sendmsg_trampoline()
++
++//go:linkname libc_sendmsg libc_sendmsg
++//go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
++ r0, _, e1 := syscall_syscall6(funcPC(libc_kevent_trampoline), uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -212,21 +297,10 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_kevent_trampoline()
+
+-func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+- var _p0 unsafe.Pointer
+- if len(mib) > 0 {
+- _p0 = unsafe.Pointer(&mib[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++//go:linkname libc_kevent libc_kevent
++//go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+@@ -236,34 +310,49 @@ func utimes(path string, timeval *[2]Timeval) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_utimes_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_utimes_trampoline()
++
++//go:linkname libc_utimes libc_utimes
++//go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func futimes(fd int, timeval *[2]Timeval) (err error) {
+- _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_futimes_trampoline), uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_futimes_trampoline()
++
++//go:linkname libc_futimes libc_futimes
++//go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++ r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_poll_trampoline()
++
++//go:linkname libc_poll libc_poll
++//go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Madvise(b []byte, behav int) (err error) {
+@@ -273,13 +362,18 @@ func Madvise(b []byte, behav int) (err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))
++ _, _, e1 := syscall_syscall(funcPC(libc_madvise_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(behav))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_madvise_trampoline()
++
++//go:linkname libc_madvise libc_madvise
++//go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Mlock(b []byte) (err error) {
+@@ -289,23 +383,33 @@ func Mlock(b []byte) (err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_mlock_trampoline), uintptr(_p0), uintptr(len(b)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mlock_trampoline()
++
++//go:linkname libc_mlock libc_mlock
++//go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Mlockall(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_mlockall_trampoline), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mlockall_trampoline()
++
++//go:linkname libc_mlockall libc_mlockall
++//go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Mprotect(b []byte, prot int) (err error) {
+@@ -315,13 +419,18 @@ func Mprotect(b []byte, prot int) (err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
++ _, _, e1 := syscall_syscall(funcPC(libc_mprotect_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(prot))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mprotect_trampoline()
++
++//go:linkname libc_mprotect libc_mprotect
++//go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Msync(b []byte, flags int) (err error) {
+@@ -331,13 +440,18 @@ func Msync(b []byte, flags int) (err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
++ _, _, e1 := syscall_syscall(funcPC(libc_msync_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(flags))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_msync_trampoline()
++
++//go:linkname libc_msync libc_msync
++//go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Munlock(b []byte) (err error) {
+@@ -347,37 +461,52 @@ func Munlock(b []byte) (err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_munlock_trampoline), uintptr(_p0), uintptr(len(b)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_munlock_trampoline()
++
++//go:linkname libc_munlock libc_munlock
++//go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Munlockall() (err error) {
+- _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_munlockall_trampoline), 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_munlockall_trampoline()
++
++//go:linkname libc_munlockall libc_munlockall
++//go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
++func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++ _, _, e1 := syscall_syscall6(funcPC(libc_getattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_getattrlist_trampoline()
++
++//go:linkname libc_getattrlist libc_getattrlist
++//go:cgo_import_dynamic libc_getattrlist getattrlist "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func pipe() (r int, w int, err error) {
+- r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
++ r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0)
+ r = int(r0)
+ w = int(r1)
+ if e1 != 0 {
+@@ -386,26 +515,282 @@ func pipe() (r int, w int, err error) {
+ return
+ }
+
++func libc_pipe_trampoline()
++
++//go:linkname libc_pipe libc_pipe
++//go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := syscall_syscall6(funcPC(libc_getxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_getxattr_trampoline()
++
++//go:linkname libc_getxattr libc_getxattr
++//go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := syscall_syscall6(funcPC(libc_fgetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fgetxattr_trampoline()
++
++//go:linkname libc_fgetxattr libc_fgetxattr
++//go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall6(funcPC(libc_setxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_setxattr_trampoline()
++
++//go:linkname libc_setxattr libc_setxattr
++//go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall6(funcPC(libc_fsetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fsetxattr_trampoline()
++
++//go:linkname libc_fsetxattr libc_fsetxattr
++//go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func removexattr(path string, attr string, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall(funcPC(libc_removexattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_removexattr_trampoline()
++
++//go:linkname libc_removexattr libc_removexattr
++//go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fremovexattr(fd int, attr string, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall(funcPC(libc_fremovexattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fremovexattr_trampoline()
++
++//go:linkname libc_fremovexattr libc_fremovexattr
++//go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func listxattr(path string, dest *byte, size int, options int) (sz int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := syscall_syscall6(funcPC(libc_listxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_listxattr_trampoline()
++
++//go:linkname libc_listxattr libc_listxattr
++//go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {
++ r0, _, e1 := syscall_syscall6(funcPC(libc_flistxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_flistxattr_trampoline()
++
++//go:linkname libc_flistxattr libc_flistxattr
++//go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++ _, _, e1 := syscall_syscall6(funcPC(libc_setattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_setattrlist_trampoline()
++
++//go:linkname libc_setattrlist libc_setattrlist
++//go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fcntl(fd int, cmd int, arg int) (val int, err error) {
++ r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg))
++ val = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fcntl_trampoline()
++
++//go:linkname libc_fcntl libc_fcntl
++//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func kill(pid int, signum int, posix int) (err error) {
+- _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix))
++ _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_kill_trampoline()
++
++//go:linkname libc_kill libc_kill
++//go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func ioctl(fd int, req uint, arg uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
++ _, _, e1 := syscall_syscall(funcPC(libc_ioctl_trampoline), uintptr(fd), uintptr(req), uintptr(arg))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_ioctl_trampoline()
++
++//go:linkname libc_ioctl libc_ioctl
++//go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
++ var _p0 unsafe.Pointer
++ if len(mib) > 0 {
++ _p0 = unsafe.Pointer(&mib[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := syscall_syscall6(funcPC(libc_sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_sysctl_trampoline()
++
++//go:linkname libc_sysctl libc_sysctl
++//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {
++ _, _, e1 := syscall_syscall6(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_sendfile_trampoline()
++
++//go:linkname libc_sendfile libc_sendfile
++//go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Access(path string, mode uint32) (err error) {
+@@ -414,23 +799,33 @@ func Access(path string, mode uint32) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_access_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_access_trampoline()
++
++//go:linkname libc_access libc_access
++//go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+- _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_adjtime_trampoline), uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_adjtime_trampoline()
++
++//go:linkname libc_adjtime libc_adjtime
++//go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Chdir(path string) (err error) {
+@@ -439,13 +834,18 @@ func Chdir(path string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_chdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_chdir_trampoline()
++
++//go:linkname libc_chdir libc_chdir
++//go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Chflags(path string, flags int) (err error) {
+@@ -454,13 +854,18 @@ func Chflags(path string, flags int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_chflags_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_chflags_trampoline()
++
++//go:linkname libc_chflags libc_chflags
++//go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Chmod(path string, mode uint32) (err error) {
+@@ -469,13 +874,18 @@ func Chmod(path string, mode uint32) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_chmod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_chmod_trampoline()
++
++//go:linkname libc_chmod libc_chmod
++//go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Chown(path string, uid int, gid int) (err error) {
+@@ -484,13 +894,18 @@ func Chown(path string, uid int, gid int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
++ _, _, e1 := syscall_syscall(funcPC(libc_chown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_chown_trampoline()
++
++//go:linkname libc_chown libc_chown
++//go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Chroot(path string) (err error) {
+@@ -499,27 +914,52 @@ func Chroot(path string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_chroot_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_chroot_trampoline()
++
++//go:linkname libc_chroot libc_chroot
++//go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ClockGettime(clockid int32, time *Timespec) (err error) {
++ _, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_clock_gettime_trampoline()
++
++//go:linkname libc_clock_gettime libc_clock_gettime
++//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Close(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_close_trampoline()
++
++//go:linkname libc_close libc_close
++//go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Dup(fd int) (nfd int, err error) {
+- r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)
++ r0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0)
+ nfd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -527,16 +967,26 @@ func Dup(fd int) (nfd int, err error) {
+ return
+ }
+
++func libc_dup_trampoline()
++
++//go:linkname libc_dup libc_dup
++//go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Dup2(from int, to int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_dup2_trampoline), uintptr(from), uintptr(to), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_dup2_trampoline()
++
++//go:linkname libc_dup2 libc_dup2
++//go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Exchangedata(path1 string, path2 string, options int) (err error) {
+@@ -550,20 +1000,30 @@ func Exchangedata(path1 string, path2 string, options int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
++ _, _, e1 := syscall_syscall(funcPC(libc_exchangedata_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_exchangedata_trampoline()
++
++//go:linkname libc_exchangedata libc_exchangedata
++//go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Exit(code int) {
+- Syscall(SYS_EXIT, uintptr(code), 0, 0)
++ syscall_syscall(funcPC(libc_exit_trampoline), uintptr(code), 0, 0)
+ return
+ }
+
++func libc_exit_trampoline()
++
++//go:linkname libc_exit libc_exit
++//go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+@@ -572,43 +1032,63 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_faccessat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_faccessat_trampoline()
++
++//go:linkname libc_faccessat libc_faccessat
++//go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fchdir(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_fchdir_trampoline), uintptr(fd), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_fchdir_trampoline()
++
++//go:linkname libc_fchdir libc_fchdir
++//go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fchflags(fd int, flags int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_fchflags_trampoline), uintptr(fd), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_fchflags_trampoline()
++
++//go:linkname libc_fchflags libc_fchflags
++//go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fchmod(fd int, mode uint32) (err error) {
+- _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_fchmod_trampoline), uintptr(fd), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_fchmod_trampoline()
++
++//go:linkname libc_fchmod libc_fchmod
++//go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
+@@ -617,23 +1097,33 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_fchmodat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_fchmodat_trampoline()
++
++//go:linkname libc_fchmodat libc_fchmodat
++//go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fchown(fd int, uid int, gid int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
++ _, _, e1 := syscall_syscall(funcPC(libc_fchown_trampoline), uintptr(fd), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_fchown_trampoline()
++
++//go:linkname libc_fchown libc_fchown
++//go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+@@ -642,27 +1132,37 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_fchownat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_fchownat_trampoline()
++
++//go:linkname libc_fchownat libc_fchownat
++//go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Flock(fd int, how int) (err error) {
+- _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_flock_trampoline()
++
++//go:linkname libc_flock libc_flock
++//go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fpathconf(fd int, name int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)
++ r0, _, e1 := syscall_syscall(funcPC(libc_fpathconf_trampoline), uintptr(fd), uintptr(name), 0)
+ val = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -670,99 +1170,97 @@ func Fpathconf(fd int, name int) (val int, err error) {
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_fpathconf_trampoline()
+
+-func Fstat(fd int, stat *Stat_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++//go:linkname libc_fpathconf libc_fpathconf
++//go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fstatfs(fd int, stat *Statfs_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++func Fsync(fd int) (err error) {
++ _, _, e1 := syscall_syscall(funcPC(libc_fsync_trampoline), uintptr(fd), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_fsync_trampoline()
+
+-func Fsync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++//go:linkname libc_fsync libc_fsync
++//go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Ftruncate(fd int, length int64) (err error) {
+- _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_ftruncate_trampoline), uintptr(fd), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_ftruncate_trampoline()
+
+-func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++//go:linkname libc_ftruncate libc_ftruncate
++//go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getdtablesize() (size int) {
+- r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
++ r0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0)
+ size = int(r0)
+ return
+ }
+
++func libc_getdtablesize_trampoline()
++
++//go:linkname libc_getdtablesize libc_getdtablesize
++//go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getegid() (egid int) {
+- r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_getegid_trampoline), 0, 0, 0)
+ egid = int(r0)
+ return
+ }
+
++func libc_getegid_trampoline()
++
++//go:linkname libc_getegid libc_getegid
++//go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Geteuid() (uid int) {
+- r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_geteuid_trampoline), 0, 0, 0)
+ uid = int(r0)
+ return
+ }
+
++func libc_geteuid_trampoline()
++
++//go:linkname libc_geteuid libc_geteuid
++//go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getgid() (gid int) {
+- r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_getgid_trampoline), 0, 0, 0)
+ gid = int(r0)
+ return
+ }
+
++func libc_getgid_trampoline()
++
++//go:linkname libc_getgid libc_getgid
++//go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getpgid(pid int) (pgid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
++ r0, _, e1 := syscall_rawSyscall(funcPC(libc_getpgid_trampoline), uintptr(pid), 0, 0)
+ pgid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -770,34 +1268,54 @@ func Getpgid(pid int) (pgid int, err error) {
+ return
+ }
+
++func libc_getpgid_trampoline()
++
++//go:linkname libc_getpgid libc_getpgid
++//go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getpgrp() (pgrp int) {
+- r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_getpgrp_trampoline), 0, 0, 0)
+ pgrp = int(r0)
+ return
+ }
+
++func libc_getpgrp_trampoline()
++
++//go:linkname libc_getpgrp libc_getpgrp
++//go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getpid() (pid int) {
+- r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_getpid_trampoline), 0, 0, 0)
+ pid = int(r0)
+ return
+ }
+
++func libc_getpid_trampoline()
++
++//go:linkname libc_getpid libc_getpid
++//go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getppid() (ppid int) {
+- r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_getppid_trampoline), 0, 0, 0)
+ ppid = int(r0)
+ return
+ }
+
++func libc_getppid_trampoline()
++
++//go:linkname libc_getppid libc_getppid
++//go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getpriority(which int, who int) (prio int, err error) {
+- r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
++ r0, _, e1 := syscall_syscall(funcPC(libc_getpriority_trampoline), uintptr(which), uintptr(who), 0)
+ prio = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -805,30 +1323,45 @@ func Getpriority(which int, who int) (prio int, err error) {
+ return
+ }
+
++func libc_getpriority_trampoline()
++
++//go:linkname libc_getpriority libc_getpriority
++//go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getrlimit(which int, lim *Rlimit) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_getrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_getrlimit_trampoline()
++
++//go:linkname libc_getrlimit libc_getrlimit
++//go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getrusage(who int, rusage *Rusage) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_getrusage_trampoline), uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_getrusage_trampoline()
++
++//go:linkname libc_getrusage libc_getrusage
++//go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getsid(pid int) (sid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
++ r0, _, e1 := syscall_rawSyscall(funcPC(libc_getsid_trampoline), uintptr(pid), 0, 0)
+ sid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -836,26 +1369,41 @@ func Getsid(pid int) (sid int, err error) {
+ return
+ }
+
++func libc_getsid_trampoline()
++
++//go:linkname libc_getsid libc_getsid
++//go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getuid() (uid int) {
+- r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0)
+ uid = int(r0)
+ return
+ }
+
++func libc_getuid_trampoline()
++
++//go:linkname libc_getuid libc_getuid
++//go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Issetugid() (tainted bool) {
+- r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_issetugid_trampoline), 0, 0, 0)
+ tainted = bool(r0 != 0)
+ return
+ }
+
++func libc_issetugid_trampoline()
++
++//go:linkname libc_issetugid libc_issetugid
++//go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Kqueue() (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)
++ r0, _, e1 := syscall_syscall(funcPC(libc_kqueue_trampoline), 0, 0, 0)
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -863,6 +1411,11 @@ func Kqueue() (fd int, err error) {
+ return
+ }
+
++func libc_kqueue_trampoline()
++
++//go:linkname libc_kqueue libc_kqueue
++//go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Lchown(path string, uid int, gid int) (err error) {
+@@ -871,13 +1424,18 @@ func Lchown(path string, uid int, gid int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
++ _, _, e1 := syscall_syscall(funcPC(libc_lchown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_lchown_trampoline()
++
++//go:linkname libc_lchown libc_lchown
++//go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Link(path string, link string) (err error) {
+@@ -891,13 +1449,18 @@ func Link(path string, link string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_link_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_link_trampoline()
++
++//go:linkname libc_link libc_link
++//go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {
+@@ -911,37 +1474,32 @@ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err er
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_linkat_trampoline), uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_linkat_trampoline()
++
++//go:linkname libc_linkat libc_linkat
++//go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Listen(s int, backlog int) (err error) {
+- _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_listen_trampoline), uintptr(s), uintptr(backlog), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_listen_trampoline()
+
+-func Lstat(path string, stat *Stat_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++//go:linkname libc_listen libc_listen
++//go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+@@ -951,13 +1509,18 @@ func Mkdir(path string, mode uint32) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_mkdir_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mkdir_trampoline()
++
++//go:linkname libc_mkdir libc_mkdir
++//go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+@@ -966,13 +1529,18 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
++ _, _, e1 := syscall_syscall(funcPC(libc_mkdirat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mkdirat_trampoline()
++
++//go:linkname libc_mkdirat libc_mkdirat
++//go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Mkfifo(path string, mode uint32) (err error) {
+@@ -981,13 +1549,18 @@ func Mkfifo(path string, mode uint32) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_mkfifo_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mkfifo_trampoline()
++
++//go:linkname libc_mkfifo libc_mkfifo
++//go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Mknod(path string, mode uint32, dev int) (err error) {
+@@ -996,13 +1569,18 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
++ _, _, e1 := syscall_syscall(funcPC(libc_mknod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mknod_trampoline()
++
++//go:linkname libc_mknod libc_mknod
++//go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Open(path string, mode int, perm uint32) (fd int, err error) {
+@@ -1011,7 +1589,7 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ if err != nil {
+ return
+ }
+- r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
++ r0, _, e1 := syscall_syscall(funcPC(libc_open_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1019,6 +1597,11 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ return
+ }
+
++func libc_open_trampoline()
++
++//go:linkname libc_open libc_open
++//go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+@@ -1027,7 +1610,7 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+ if err != nil {
+ return
+ }
+- r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
++ r0, _, e1 := syscall_syscall6(funcPC(libc_openat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1035,6 +1618,11 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+ return
+ }
+
++func libc_openat_trampoline()
++
++//go:linkname libc_openat libc_openat
++//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Pathconf(path string, name int) (val int, err error) {
+@@ -1043,7 +1631,7 @@ func Pathconf(path string, name int) (val int, err error) {
+ if err != nil {
+ return
+ }
+- r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
++ r0, _, e1 := syscall_syscall(funcPC(libc_pathconf_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
+ val = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1051,6 +1639,11 @@ func Pathconf(path string, name int) (val int, err error) {
+ return
+ }
+
++func libc_pathconf_trampoline()
++
++//go:linkname libc_pathconf libc_pathconf
++//go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+@@ -1060,7 +1653,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
++ r0, _, e1 := syscall_syscall6(funcPC(libc_pread_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1068,6 +1661,11 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ return
+ }
+
++func libc_pread_trampoline()
++
++//go:linkname libc_pread libc_pread
++//go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+@@ -1077,7 +1675,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
++ r0, _, e1 := syscall_syscall6(funcPC(libc_pwrite_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1085,6 +1683,11 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ return
+ }
+
++func libc_pwrite_trampoline()
++
++//go:linkname libc_pwrite libc_pwrite
++//go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func read(fd int, p []byte) (n int, err error) {
+@@ -1094,7 +1697,7 @@ func read(fd int, p []byte) (n int, err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
++ r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1102,6 +1705,11 @@ func read(fd int, p []byte) (n int, err error) {
+ return
+ }
+
++func libc_read_trampoline()
++
++//go:linkname libc_read libc_read
++//go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Readlink(path string, buf []byte) (n int, err error) {
+@@ -1116,7 +1724,7 @@ func Readlink(path string, buf []byte) (n int, err error) {
+ } else {
+ _p1 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
++ r0, _, e1 := syscall_syscall(funcPC(libc_readlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1124,6 +1732,11 @@ func Readlink(path string, buf []byte) (n int, err error) {
+ return
+ }
+
++func libc_readlink_trampoline()
++
++//go:linkname libc_readlink libc_readlink
++//go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+@@ -1138,7 +1751,7 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ } else {
+ _p1 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
++ r0, _, e1 := syscall_syscall6(funcPC(libc_readlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1146,6 +1759,11 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ return
+ }
+
++func libc_readlinkat_trampoline()
++
++//go:linkname libc_readlinkat libc_readlinkat
++//go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Rename(from string, to string) (err error) {
+@@ -1159,13 +1777,18 @@ func Rename(from string, to string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_rename_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_rename_trampoline()
++
++//go:linkname libc_rename libc_rename
++//go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Renameat(fromfd int, from string, tofd int, to string) (err error) {
+@@ -1179,13 +1802,18 @@ func Renameat(fromfd int, from string, tofd int, to string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_renameat_trampoline), uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_renameat_trampoline()
++
++//go:linkname libc_renameat libc_renameat
++//go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Revoke(path string) (err error) {
+@@ -1194,13 +1822,18 @@ func Revoke(path string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_revoke_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_revoke_trampoline()
++
++//go:linkname libc_revoke libc_revoke
++//go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Rmdir(path string) (err error) {
+@@ -1209,17 +1842,22 @@ func Rmdir(path string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_rmdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_rmdir_trampoline()
++
++//go:linkname libc_rmdir libc_rmdir
++//go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+- r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
++ r0, _, e1 := syscall_syscall(funcPC(libc_lseek_trampoline), uintptr(fd), uintptr(offset), uintptr(whence))
+ newoffset = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1227,46 +1865,72 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ return
+ }
+
++func libc_lseek_trampoline()
++
++//go:linkname libc_lseek libc_lseek
++//go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+- _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ r0, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_select_trampoline()
++
++//go:linkname libc_select libc_select
++//go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setegid(egid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_setegid_trampoline), uintptr(egid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setegid_trampoline()
++
++//go:linkname libc_setegid libc_setegid
++//go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Seteuid(euid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_seteuid_trampoline), uintptr(euid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_seteuid_trampoline()
++
++//go:linkname libc_seteuid libc_seteuid
++//go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setgid(gid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setgid_trampoline), uintptr(gid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setgid_trampoline()
++
++//go:linkname libc_setgid libc_setgid
++//go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setlogin(name string) (err error) {
+@@ -1275,77 +1939,112 @@ func Setlogin(name string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_setlogin_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setlogin_trampoline()
++
++//go:linkname libc_setlogin libc_setlogin
++//go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setpgid(pid int, pgid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setpgid_trampoline), uintptr(pid), uintptr(pgid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setpgid_trampoline()
++
++//go:linkname libc_setpgid libc_setpgid
++//go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setpriority(which int, who int, prio int) (err error) {
+- _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
++ _, _, e1 := syscall_syscall(funcPC(libc_setpriority_trampoline), uintptr(which), uintptr(who), uintptr(prio))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setpriority_trampoline()
++
++//go:linkname libc_setpriority libc_setpriority
++//go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setprivexec(flag int) (err error) {
+- _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_setprivexec_trampoline), uintptr(flag), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setprivexec_trampoline()
++
++//go:linkname libc_setprivexec libc_setprivexec
++//go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setregid(rgid int, egid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setregid_trampoline), uintptr(rgid), uintptr(egid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setregid_trampoline()
++
++//go:linkname libc_setregid libc_setregid
++//go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setreuid(ruid int, euid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setreuid_trampoline), uintptr(ruid), uintptr(euid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setreuid_trampoline()
++
++//go:linkname libc_setreuid libc_setreuid
++//go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setrlimit(which int, lim *Rlimit) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setrlimit_trampoline()
++
++//go:linkname libc_setrlimit libc_setrlimit
++//go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setsid() (pid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
++ r0, _, e1 := syscall_rawSyscall(funcPC(libc_setsid_trampoline), 0, 0, 0)
+ pid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1353,55 +2052,40 @@ func Setsid() (pid int, err error) {
+ return
+ }
+
++func libc_setsid_trampoline()
++
++//go:linkname libc_setsid libc_setsid
++//go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Settimeofday(tp *Timeval) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_settimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_settimeofday_trampoline()
+
+-func Setuid(uid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++//go:linkname libc_settimeofday libc_settimeofday
++//go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Stat(path string, stat *Stat_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++func Setuid(uid int) (err error) {
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setuid_trampoline), uintptr(uid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_setuid_trampoline()
+
+-func Statfs(path string, stat *Statfs_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++//go:linkname libc_setuid libc_setuid
++//go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+@@ -1416,13 +2100,18 @@ func Symlink(path string, link string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_symlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_symlink_trampoline()
++
++//go:linkname libc_symlink libc_symlink
++//go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+@@ -1436,23 +2125,33 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
++ _, _, e1 := syscall_syscall(funcPC(libc_symlinkat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_symlinkat_trampoline()
++
++//go:linkname libc_symlinkat libc_symlinkat
++//go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Sync() (err error) {
+- _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_sync_trampoline), 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_sync_trampoline()
++
++//go:linkname libc_sync libc_sync
++//go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Truncate(path string, length int64) (err error) {
+@@ -1461,21 +2160,31 @@ func Truncate(path string, length int64) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_truncate_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_truncate_trampoline()
++
++//go:linkname libc_truncate libc_truncate
++//go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Umask(newmask int) (oldmask int) {
+- r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)
++ r0, _, _ := syscall_syscall(funcPC(libc_umask_trampoline), uintptr(newmask), 0, 0)
+ oldmask = int(r0)
+ return
+ }
+
++func libc_umask_trampoline()
++
++//go:linkname libc_umask libc_umask
++//go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Undelete(path string) (err error) {
+@@ -1484,13 +2193,18 @@ func Undelete(path string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_undelete_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_undelete_trampoline()
++
++//go:linkname libc_undelete libc_undelete
++//go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Unlink(path string) (err error) {
+@@ -1499,13 +2213,18 @@ func Unlink(path string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_unlink_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_unlink_trampoline()
++
++//go:linkname libc_unlink libc_unlink
++//go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Unlinkat(dirfd int, path string, flags int) (err error) {
+@@ -1514,13 +2233,18 @@ func Unlinkat(dirfd int, path string, flags int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
++ _, _, e1 := syscall_syscall(funcPC(libc_unlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_unlinkat_trampoline()
++
++//go:linkname libc_unlinkat libc_unlinkat
++//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Unmount(path string, flags int) (err error) {
+@@ -1529,13 +2253,18 @@ func Unmount(path string, flags int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_unmount_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_unmount_trampoline()
++
++//go:linkname libc_unmount libc_unmount
++//go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func write(fd int, p []byte) (n int, err error) {
+@@ -1545,7 +2274,7 @@ func write(fd int, p []byte) (n int, err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
++ r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1553,10 +2282,15 @@ func write(fd int, p []byte) (n int, err error) {
+ return
+ }
+
++func libc_write_trampoline()
++
++//go:linkname libc_write libc_write
++//go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
+- r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))
++ r0, _, e1 := syscall_syscall6(funcPC(libc_mmap_trampoline), uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))
+ ret = uintptr(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1564,20 +2298,30 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (
+ return
+ }
+
++func libc_mmap_trampoline()
++
++//go:linkname libc_mmap libc_mmap
++//go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func munmap(addr uintptr, length uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_munmap_trampoline), uintptr(addr), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_munmap_trampoline()
++
++//go:linkname libc_munmap libc_munmap
++//go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
++ r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1588,7 +2332,7 @@ func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
++ r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1598,8 +2342,23 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
++ _, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_ptrace_trampoline()
++
++//go:linkname libc_ptrace libc_ptrace
++//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) {
+- r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
++ r0, r1, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)
+ sec = int64(r0)
+ usec = int32(r1)
+ if e1 != 0 {
+@@ -1607,3 +2366,134 @@ func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) {
+ }
+ return
+ }
++
++func libc_gettimeofday_trampoline()
++
++//go:linkname libc_gettimeofday libc_gettimeofday
++//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstat(fd int, stat *Stat_t) (err error) {
++ _, _, e1 := syscall_syscall(funcPC(libc_fstat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fstat64_trampoline()
++
++//go:linkname libc_fstat64 libc_fstat64
++//go:cgo_import_dynamic libc_fstat64 fstat64 "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall6(funcPC(libc_fstatat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fstatat64_trampoline()
++
++//go:linkname libc_fstatat64 libc_fstatat64
++//go:cgo_import_dynamic libc_fstatat64 fstatat64 "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatfs(fd int, stat *Statfs_t) (err error) {
++ _, _, e1 := syscall_syscall(funcPC(libc_fstatfs64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fstatfs64_trampoline()
++
++//go:linkname libc_fstatfs64 libc_fstatfs64
++//go:cgo_import_dynamic libc_fstatfs64 fstatfs64 "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {
++ r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat64_trampoline), uintptr(buf), uintptr(size), uintptr(flags))
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_getfsstat64_trampoline()
++
++//go:linkname libc_getfsstat64 libc_getfsstat64
++//go:cgo_import_dynamic libc_getfsstat64 getfsstat64 "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Lstat(path string, stat *Stat_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall(funcPC(libc_lstat64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_lstat64_trampoline()
++
++//go:linkname libc_lstat64 libc_lstat64
++//go:cgo_import_dynamic libc_lstat64 lstat64 "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Stat(path string, stat *Stat_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall(funcPC(libc_stat64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_stat64_trampoline()
++
++//go:linkname libc_stat64 libc_stat64
++//go:cgo_import_dynamic libc_stat64 stat64 "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Statfs(path string, stat *Statfs_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall(funcPC(libc_statfs64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_statfs64_trampoline()
++
++//go:linkname libc_statfs64 libc_statfs64
++//go:cgo_import_dynamic libc_statfs64 statfs64 "/usr/lib/libSystem.B.dylib"
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s
+new file mode 100644
+index 00000000..a3fdf099
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s
+@@ -0,0 +1,284 @@
++// go run mkasm_darwin.go amd64
++// Code generated by the command above; DO NOT EDIT.
++
++// +build go1.12
++
++#include "textflag.h"
++TEXT ·libc_getgroups_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getgroups(SB)
++TEXT ·libc_setgroups_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setgroups(SB)
++TEXT ·libc_wait4_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_wait4(SB)
++TEXT ·libc_accept_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_accept(SB)
++TEXT ·libc_bind_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_bind(SB)
++TEXT ·libc_connect_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_connect(SB)
++TEXT ·libc_socket_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_socket(SB)
++TEXT ·libc_getsockopt_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getsockopt(SB)
++TEXT ·libc_setsockopt_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setsockopt(SB)
++TEXT ·libc_getpeername_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getpeername(SB)
++TEXT ·libc_getsockname_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getsockname(SB)
++TEXT ·libc_shutdown_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_shutdown(SB)
++TEXT ·libc_socketpair_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_socketpair(SB)
++TEXT ·libc_recvfrom_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_recvfrom(SB)
++TEXT ·libc_sendto_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_sendto(SB)
++TEXT ·libc_recvmsg_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_recvmsg(SB)
++TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_sendmsg(SB)
++TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_kevent(SB)
++TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_utimes(SB)
++TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_futimes(SB)
++TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_poll(SB)
++TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_madvise(SB)
++TEXT ·libc_mlock_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mlock(SB)
++TEXT ·libc_mlockall_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mlockall(SB)
++TEXT ·libc_mprotect_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mprotect(SB)
++TEXT ·libc_msync_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_msync(SB)
++TEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_munlock(SB)
++TEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_munlockall(SB)
++TEXT ·libc_getattrlist_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getattrlist(SB)
++TEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_pipe(SB)
++TEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getxattr(SB)
++TEXT ·libc_fgetxattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fgetxattr(SB)
++TEXT ·libc_setxattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setxattr(SB)
++TEXT ·libc_fsetxattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fsetxattr(SB)
++TEXT ·libc_removexattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_removexattr(SB)
++TEXT ·libc_fremovexattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fremovexattr(SB)
++TEXT ·libc_listxattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_listxattr(SB)
++TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_flistxattr(SB)
++TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setattrlist(SB)
++TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fcntl(SB)
++TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_kill(SB)
++TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_ioctl(SB)
++TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_sysctl(SB)
++TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_sendfile(SB)
++TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_access(SB)
++TEXT ·libc_adjtime_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_adjtime(SB)
++TEXT ·libc_chdir_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_chdir(SB)
++TEXT ·libc_chflags_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_chflags(SB)
++TEXT ·libc_chmod_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_chmod(SB)
++TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_chown(SB)
++TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_chroot(SB)
++TEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_clock_gettime(SB)
++TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_close(SB)
++TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_dup(SB)
++TEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_dup2(SB)
++TEXT ·libc_exchangedata_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_exchangedata(SB)
++TEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_exit(SB)
++TEXT ·libc_faccessat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_faccessat(SB)
++TEXT ·libc_fchdir_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fchdir(SB)
++TEXT ·libc_fchflags_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fchflags(SB)
++TEXT ·libc_fchmod_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fchmod(SB)
++TEXT ·libc_fchmodat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fchmodat(SB)
++TEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fchown(SB)
++TEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fchownat(SB)
++TEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_flock(SB)
++TEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fpathconf(SB)
++TEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fsync(SB)
++TEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_ftruncate(SB)
++TEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getdtablesize(SB)
++TEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getegid(SB)
++TEXT ·libc_geteuid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_geteuid(SB)
++TEXT ·libc_getgid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getgid(SB)
++TEXT ·libc_getpgid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getpgid(SB)
++TEXT ·libc_getpgrp_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getpgrp(SB)
++TEXT ·libc_getpid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getpid(SB)
++TEXT ·libc_getppid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getppid(SB)
++TEXT ·libc_getpriority_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getpriority(SB)
++TEXT ·libc_getrlimit_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getrlimit(SB)
++TEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getrusage(SB)
++TEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getsid(SB)
++TEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getuid(SB)
++TEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_issetugid(SB)
++TEXT ·libc_kqueue_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_kqueue(SB)
++TEXT ·libc_lchown_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_lchown(SB)
++TEXT ·libc_link_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_link(SB)
++TEXT ·libc_linkat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_linkat(SB)
++TEXT ·libc_listen_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_listen(SB)
++TEXT ·libc_mkdir_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mkdir(SB)
++TEXT ·libc_mkdirat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mkdirat(SB)
++TEXT ·libc_mkfifo_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mkfifo(SB)
++TEXT ·libc_mknod_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mknod(SB)
++TEXT ·libc_open_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_open(SB)
++TEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_openat(SB)
++TEXT ·libc_pathconf_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_pathconf(SB)
++TEXT ·libc_pread_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_pread(SB)
++TEXT ·libc_pwrite_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_pwrite(SB)
++TEXT ·libc_read_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_read(SB)
++TEXT ·libc_readlink_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_readlink(SB)
++TEXT ·libc_readlinkat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_readlinkat(SB)
++TEXT ·libc_rename_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_rename(SB)
++TEXT ·libc_renameat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_renameat(SB)
++TEXT ·libc_revoke_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_revoke(SB)
++TEXT ·libc_rmdir_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_rmdir(SB)
++TEXT ·libc_lseek_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_lseek(SB)
++TEXT ·libc_select_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_select(SB)
++TEXT ·libc_setegid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setegid(SB)
++TEXT ·libc_seteuid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_seteuid(SB)
++TEXT ·libc_setgid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setgid(SB)
++TEXT ·libc_setlogin_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setlogin(SB)
++TEXT ·libc_setpgid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setpgid(SB)
++TEXT ·libc_setpriority_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setpriority(SB)
++TEXT ·libc_setprivexec_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setprivexec(SB)
++TEXT ·libc_setregid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setregid(SB)
++TEXT ·libc_setreuid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setreuid(SB)
++TEXT ·libc_setrlimit_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setrlimit(SB)
++TEXT ·libc_setsid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setsid(SB)
++TEXT ·libc_settimeofday_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_settimeofday(SB)
++TEXT ·libc_setuid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setuid(SB)
++TEXT ·libc_symlink_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_symlink(SB)
++TEXT ·libc_symlinkat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_symlinkat(SB)
++TEXT ·libc_sync_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_sync(SB)
++TEXT ·libc_truncate_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_truncate(SB)
++TEXT ·libc_umask_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_umask(SB)
++TEXT ·libc_undelete_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_undelete(SB)
++TEXT ·libc_unlink_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_unlink(SB)
++TEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_unlinkat(SB)
++TEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_unmount(SB)
++TEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_write(SB)
++TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mmap(SB)
++TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_munmap(SB)
++TEXT ·libc_ptrace_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_ptrace(SB)
++TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_gettimeofday(SB)
++TEXT ·libc_fstat64_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fstat64(SB)
++TEXT ·libc_fstatat64_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fstatat64(SB)
++TEXT ·libc_fstatfs64_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fstatfs64(SB)
++TEXT ·libc_getfsstat64_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getfsstat64(SB)
++TEXT ·libc_lstat64_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_lstat64(SB)
++TEXT ·libc_stat64_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_stat64(SB)
++TEXT ·libc_statfs64_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_statfs64(SB)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go
+similarity index 85%
+copy from vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go
+copy to vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go
+index 7a409745..cea04e04 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go
+@@ -1,7 +1,7 @@
+-// mksyscall.pl -tags darwin,arm syscall_bsd.go syscall_darwin.go syscall_darwin_arm.go
++// go run mksyscall.go -l32 -tags darwin,arm,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm.1_11.go syscall_darwin_arm.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+-// +build darwin,arm
++// +build darwin,arm,!go1.12
+
+ package unix
+
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+- var _p0 unsafe.Pointer
+- if len(mib) > 0 {
+- _p0 = unsafe.Pointer(&mib[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func utimes(path string, timeval *[2]Timeval) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -366,8 +350,8 @@ func Munlockall() (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
++func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++ _, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -388,6 +372,161 @@ func pipe() (r int, w int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func removexattr(path string, attr string, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fremovexattr(fd int, attr string, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func listxattr(path string, dest *byte, size int, options int) (sz int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {
++ r0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++ _, _, e1 := Syscall6(SYS_SETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fcntl(fd int, cmd int, arg int) (val int, err error) {
++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
++ val = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func kill(pid int, signum int, posix int) (err error) {
+ _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix))
+ if e1 != 0 {
+@@ -408,6 +547,32 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
++ var _p0 unsafe.Pointer
++ if len(mib) > 0 {
++ _p0 = unsafe.Pointer(&mib[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := Syscall6(SYS_SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {
++ _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Access(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -672,26 +837,6 @@ func Fpathconf(fd int, name int) (val int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fstat(fd int, stat *Stat_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fstatfs(fd int, stat *Statfs_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func Fsync(fd int) (err error) {
+ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+ if e1 != 0 {
+@@ -712,23 +857,6 @@ func Ftruncate(fd int, length int64) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func Getdtablesize() (size int) {
+ r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
+ size = int(r0)
+@@ -930,21 +1058,6 @@ func Listen(s int, backlog int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Lstat(path string, stat *Stat_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func Mkdir(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1229,8 +1342,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+- _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1375,36 +1489,6 @@ func Setuid(uid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Stat(path string, stat *Stat_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Statfs(path string, stat *Statfs_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func Symlink(path string, link string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1607,3 +1691,94 @@ func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) {
+ }
+ return
+ }
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstat(fd int, stat *Stat_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatfs(fd int, stat *Statfs_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {
++ r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(buf), uintptr(size), uintptr(flags))
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Lstat(path string, stat *Stat_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Stat(path string, stat *Stat_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Statfs(path string, stat *Statfs_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.go
+new file mode 100644
+index 00000000..f519ce9a
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.go
+@@ -0,0 +1,41 @@
++// go run mksyscall.go -l32 -tags darwin,arm,go1.13 syscall_darwin.1_13.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build darwin,arm,go1.13
++
++package unix
++
++import (
++ "syscall"
++ "unsafe"
++)
++
++var _ syscall.Errno
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func closedir(dir uintptr) (err error) {
++ _, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_closedir_trampoline()
++
++//go:linkname libc_closedir libc_closedir
++//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) {
++ r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result)))
++ res = Errno(r0)
++ return
++}
++
++func libc_readdir_r_trampoline()
++
++//go:linkname libc_readdir_r libc_readdir_r
++//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib"
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.s
+new file mode 100644
+index 00000000..488e5570
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.s
+@@ -0,0 +1,12 @@
++// go run mkasm_darwin.go arm
++// Code generated by the command above; DO NOT EDIT.
++
++// +build go1.13
++
++#include "textflag.h"
++TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fdopendir(SB)
++TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_closedir(SB)
++TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_readdir_r(SB)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go
+index 7a409745..63103950 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go
+@@ -1,7 +1,7 @@
+-// mksyscall.pl -tags darwin,arm syscall_bsd.go syscall_darwin.go syscall_darwin_arm.go
++// go run mksyscall.go -l32 -tags darwin,arm,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+-// +build darwin,arm
++// +build darwin,arm,go1.12
+
+ package unix
+
+@@ -15,7 +15,7 @@ var _ syscall.Errno
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
++ r0, _, e1 := syscall_rawSyscall(funcPC(libc_getgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -23,20 +23,30 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+ return
+ }
+
++func libc_getgroups_trampoline()
++
++//go:linkname libc_getgroups libc_getgroups
++//go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func setgroups(ngid int, gid *_Gid_t) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setgroups_trampoline()
++
++//go:linkname libc_setgroups libc_setgroups
++//go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+- r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
++ r0, _, e1 := syscall_syscall6(funcPC(libc_wait4_trampoline), uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+ wpid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -44,10 +54,15 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err
+ return
+ }
+
++func libc_wait4_trampoline()
++
++//go:linkname libc_wait4 libc_wait4
++//go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
++ r0, _, e1 := syscall_syscall(funcPC(libc_accept_trampoline), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -55,30 +70,45 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+ return
+ }
+
++func libc_accept_trampoline()
++
++//go:linkname libc_accept libc_accept
++//go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+- _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
++ _, _, e1 := syscall_syscall(funcPC(libc_bind_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_bind_trampoline()
++
++//go:linkname libc_bind libc_bind
++//go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+- _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
++ _, _, e1 := syscall_syscall(funcPC(libc_connect_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_connect_trampoline()
++
++//go:linkname libc_connect libc_connect
++//go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func socket(domain int, typ int, proto int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
++ r0, _, e1 := syscall_rawSyscall(funcPC(libc_socket_trampoline), uintptr(domain), uintptr(typ), uintptr(proto))
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -86,66 +116,101 @@ func socket(domain int, typ int, proto int) (fd int, err error) {
+ return
+ }
+
++func libc_socket_trampoline()
++
++//go:linkname libc_socket libc_socket
++//go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+- _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_getsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_getsockopt_trampoline()
++
++//go:linkname libc_getsockopt libc_getsockopt
++//go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_setsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setsockopt_trampoline()
++
++//go:linkname libc_setsockopt libc_setsockopt
++//go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_getpeername_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_getpeername_trampoline()
++
++//go:linkname libc_getpeername libc_getpeername
++//go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_getsockname_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_getsockname_trampoline()
++
++//go:linkname libc_getsockname libc_getsockname
++//go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Shutdown(s int, how int) (err error) {
+- _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_shutdown_trampoline), uintptr(s), uintptr(how), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_shutdown_trampoline()
++
++//go:linkname libc_shutdown libc_shutdown
++//go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+- _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
++ _, _, e1 := syscall_rawSyscall6(funcPC(libc_socketpair_trampoline), uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_socketpair_trampoline()
++
++//go:linkname libc_socketpair libc_socketpair
++//go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+@@ -155,7 +220,7 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
++ r0, _, e1 := syscall_syscall6(funcPC(libc_recvfrom_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -163,6 +228,11 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl
+ return
+ }
+
++func libc_recvfrom_trampoline()
++
++//go:linkname libc_recvfrom libc_recvfrom
++//go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+@@ -172,17 +242,22 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
++ _, _, e1 := syscall_syscall6(funcPC(libc_sendto_trampoline), uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_sendto_trampoline()
++
++//go:linkname libc_sendto libc_sendto
++//go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
++ r0, _, e1 := syscall_syscall(funcPC(libc_recvmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -190,10 +265,15 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ return
+ }
+
++func libc_recvmsg_trampoline()
++
++//go:linkname libc_recvmsg libc_recvmsg
++//go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
++ r0, _, e1 := syscall_syscall(funcPC(libc_sendmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -201,10 +281,15 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ return
+ }
+
++func libc_sendmsg_trampoline()
++
++//go:linkname libc_sendmsg libc_sendmsg
++//go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
++ r0, _, e1 := syscall_syscall6(funcPC(libc_kevent_trampoline), uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -212,21 +297,10 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_kevent_trampoline()
+
+-func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+- var _p0 unsafe.Pointer
+- if len(mib) > 0 {
+- _p0 = unsafe.Pointer(&mib[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++//go:linkname libc_kevent libc_kevent
++//go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+@@ -236,34 +310,49 @@ func utimes(path string, timeval *[2]Timeval) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_utimes_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_utimes_trampoline()
++
++//go:linkname libc_utimes libc_utimes
++//go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func futimes(fd int, timeval *[2]Timeval) (err error) {
+- _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_futimes_trampoline), uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_futimes_trampoline()
++
++//go:linkname libc_futimes libc_futimes
++//go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++ r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_poll_trampoline()
++
++//go:linkname libc_poll libc_poll
++//go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Madvise(b []byte, behav int) (err error) {
+@@ -273,13 +362,18 @@ func Madvise(b []byte, behav int) (err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))
++ _, _, e1 := syscall_syscall(funcPC(libc_madvise_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(behav))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_madvise_trampoline()
++
++//go:linkname libc_madvise libc_madvise
++//go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Mlock(b []byte) (err error) {
+@@ -289,23 +383,33 @@ func Mlock(b []byte) (err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_mlock_trampoline), uintptr(_p0), uintptr(len(b)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mlock_trampoline()
++
++//go:linkname libc_mlock libc_mlock
++//go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Mlockall(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_mlockall_trampoline), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mlockall_trampoline()
++
++//go:linkname libc_mlockall libc_mlockall
++//go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Mprotect(b []byte, prot int) (err error) {
+@@ -315,13 +419,18 @@ func Mprotect(b []byte, prot int) (err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
++ _, _, e1 := syscall_syscall(funcPC(libc_mprotect_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(prot))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mprotect_trampoline()
++
++//go:linkname libc_mprotect libc_mprotect
++//go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Msync(b []byte, flags int) (err error) {
+@@ -331,13 +440,18 @@ func Msync(b []byte, flags int) (err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
++ _, _, e1 := syscall_syscall(funcPC(libc_msync_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(flags))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_msync_trampoline()
++
++//go:linkname libc_msync libc_msync
++//go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Munlock(b []byte) (err error) {
+@@ -347,37 +461,52 @@ func Munlock(b []byte) (err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_munlock_trampoline), uintptr(_p0), uintptr(len(b)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_munlock_trampoline()
++
++//go:linkname libc_munlock libc_munlock
++//go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Munlockall() (err error) {
+- _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_munlockall_trampoline), 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_munlockall_trampoline()
++
++//go:linkname libc_munlockall libc_munlockall
++//go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
++func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++ _, _, e1 := syscall_syscall6(funcPC(libc_getattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_getattrlist_trampoline()
++
++//go:linkname libc_getattrlist libc_getattrlist
++//go:cgo_import_dynamic libc_getattrlist getattrlist "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func pipe() (r int, w int, err error) {
+- r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
++ r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0)
+ r = int(r0)
+ w = int(r1)
+ if e1 != 0 {
+@@ -386,26 +515,282 @@ func pipe() (r int, w int, err error) {
+ return
+ }
+
++func libc_pipe_trampoline()
++
++//go:linkname libc_pipe libc_pipe
++//go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := syscall_syscall6(funcPC(libc_getxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_getxattr_trampoline()
++
++//go:linkname libc_getxattr libc_getxattr
++//go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := syscall_syscall6(funcPC(libc_fgetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fgetxattr_trampoline()
++
++//go:linkname libc_fgetxattr libc_fgetxattr
++//go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall6(funcPC(libc_setxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_setxattr_trampoline()
++
++//go:linkname libc_setxattr libc_setxattr
++//go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall6(funcPC(libc_fsetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fsetxattr_trampoline()
++
++//go:linkname libc_fsetxattr libc_fsetxattr
++//go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func removexattr(path string, attr string, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall(funcPC(libc_removexattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_removexattr_trampoline()
++
++//go:linkname libc_removexattr libc_removexattr
++//go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fremovexattr(fd int, attr string, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall(funcPC(libc_fremovexattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fremovexattr_trampoline()
++
++//go:linkname libc_fremovexattr libc_fremovexattr
++//go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func listxattr(path string, dest *byte, size int, options int) (sz int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := syscall_syscall6(funcPC(libc_listxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_listxattr_trampoline()
++
++//go:linkname libc_listxattr libc_listxattr
++//go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {
++ r0, _, e1 := syscall_syscall6(funcPC(libc_flistxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_flistxattr_trampoline()
++
++//go:linkname libc_flistxattr libc_flistxattr
++//go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++ _, _, e1 := syscall_syscall6(funcPC(libc_setattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_setattrlist_trampoline()
++
++//go:linkname libc_setattrlist libc_setattrlist
++//go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fcntl(fd int, cmd int, arg int) (val int, err error) {
++ r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg))
++ val = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fcntl_trampoline()
++
++//go:linkname libc_fcntl libc_fcntl
++//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func kill(pid int, signum int, posix int) (err error) {
+- _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix))
++ _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_kill_trampoline()
++
++//go:linkname libc_kill libc_kill
++//go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func ioctl(fd int, req uint, arg uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
++ _, _, e1 := syscall_syscall(funcPC(libc_ioctl_trampoline), uintptr(fd), uintptr(req), uintptr(arg))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_ioctl_trampoline()
++
++//go:linkname libc_ioctl libc_ioctl
++//go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
++ var _p0 unsafe.Pointer
++ if len(mib) > 0 {
++ _p0 = unsafe.Pointer(&mib[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := syscall_syscall6(funcPC(libc_sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_sysctl_trampoline()
++
++//go:linkname libc_sysctl libc_sysctl
++//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {
++ _, _, e1 := syscall_syscall9(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_sendfile_trampoline()
++
++//go:linkname libc_sendfile libc_sendfile
++//go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Access(path string, mode uint32) (err error) {
+@@ -414,23 +799,33 @@ func Access(path string, mode uint32) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_access_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_access_trampoline()
++
++//go:linkname libc_access libc_access
++//go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+- _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_adjtime_trampoline), uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_adjtime_trampoline()
++
++//go:linkname libc_adjtime libc_adjtime
++//go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Chdir(path string) (err error) {
+@@ -439,13 +834,18 @@ func Chdir(path string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_chdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_chdir_trampoline()
++
++//go:linkname libc_chdir libc_chdir
++//go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Chflags(path string, flags int) (err error) {
+@@ -454,13 +854,18 @@ func Chflags(path string, flags int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_chflags_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_chflags_trampoline()
++
++//go:linkname libc_chflags libc_chflags
++//go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Chmod(path string, mode uint32) (err error) {
+@@ -469,13 +874,18 @@ func Chmod(path string, mode uint32) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_chmod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_chmod_trampoline()
++
++//go:linkname libc_chmod libc_chmod
++//go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Chown(path string, uid int, gid int) (err error) {
+@@ -484,13 +894,18 @@ func Chown(path string, uid int, gid int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
++ _, _, e1 := syscall_syscall(funcPC(libc_chown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_chown_trampoline()
++
++//go:linkname libc_chown libc_chown
++//go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Chroot(path string) (err error) {
+@@ -499,27 +914,52 @@ func Chroot(path string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_chroot_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_chroot_trampoline()
++
++//go:linkname libc_chroot libc_chroot
++//go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ClockGettime(clockid int32, time *Timespec) (err error) {
++ _, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_clock_gettime_trampoline()
++
++//go:linkname libc_clock_gettime libc_clock_gettime
++//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Close(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_close_trampoline()
++
++//go:linkname libc_close libc_close
++//go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Dup(fd int) (nfd int, err error) {
+- r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)
++ r0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0)
+ nfd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -527,16 +967,26 @@ func Dup(fd int) (nfd int, err error) {
+ return
+ }
+
++func libc_dup_trampoline()
++
++//go:linkname libc_dup libc_dup
++//go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Dup2(from int, to int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_dup2_trampoline), uintptr(from), uintptr(to), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_dup2_trampoline()
++
++//go:linkname libc_dup2 libc_dup2
++//go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Exchangedata(path1 string, path2 string, options int) (err error) {
+@@ -550,20 +1000,30 @@ func Exchangedata(path1 string, path2 string, options int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
++ _, _, e1 := syscall_syscall(funcPC(libc_exchangedata_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_exchangedata_trampoline()
++
++//go:linkname libc_exchangedata libc_exchangedata
++//go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Exit(code int) {
+- Syscall(SYS_EXIT, uintptr(code), 0, 0)
++ syscall_syscall(funcPC(libc_exit_trampoline), uintptr(code), 0, 0)
+ return
+ }
+
++func libc_exit_trampoline()
++
++//go:linkname libc_exit libc_exit
++//go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+@@ -572,43 +1032,63 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_faccessat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_faccessat_trampoline()
++
++//go:linkname libc_faccessat libc_faccessat
++//go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fchdir(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_fchdir_trampoline), uintptr(fd), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_fchdir_trampoline()
++
++//go:linkname libc_fchdir libc_fchdir
++//go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fchflags(fd int, flags int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_fchflags_trampoline), uintptr(fd), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_fchflags_trampoline()
++
++//go:linkname libc_fchflags libc_fchflags
++//go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fchmod(fd int, mode uint32) (err error) {
+- _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_fchmod_trampoline), uintptr(fd), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_fchmod_trampoline()
++
++//go:linkname libc_fchmod libc_fchmod
++//go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
+@@ -617,23 +1097,33 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_fchmodat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_fchmodat_trampoline()
++
++//go:linkname libc_fchmodat libc_fchmodat
++//go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fchown(fd int, uid int, gid int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
++ _, _, e1 := syscall_syscall(funcPC(libc_fchown_trampoline), uintptr(fd), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_fchown_trampoline()
++
++//go:linkname libc_fchown libc_fchown
++//go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+@@ -642,27 +1132,37 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_fchownat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_fchownat_trampoline()
++
++//go:linkname libc_fchownat libc_fchownat
++//go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Flock(fd int, how int) (err error) {
+- _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_flock_trampoline()
++
++//go:linkname libc_flock libc_flock
++//go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fpathconf(fd int, name int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)
++ r0, _, e1 := syscall_syscall(funcPC(libc_fpathconf_trampoline), uintptr(fd), uintptr(name), 0)
+ val = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -670,99 +1170,97 @@ func Fpathconf(fd int, name int) (val int, err error) {
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_fpathconf_trampoline()
+
+-func Fstat(fd int, stat *Stat_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++//go:linkname libc_fpathconf libc_fpathconf
++//go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fstatfs(fd int, stat *Statfs_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++func Fsync(fd int) (err error) {
++ _, _, e1 := syscall_syscall(funcPC(libc_fsync_trampoline), uintptr(fd), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_fsync_trampoline()
+
+-func Fsync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++//go:linkname libc_fsync libc_fsync
++//go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Ftruncate(fd int, length int64) (err error) {
+- _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32))
++ _, _, e1 := syscall_syscall(funcPC(libc_ftruncate_trampoline), uintptr(fd), uintptr(length), uintptr(length>>32))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++func libc_ftruncate_trampoline()
++
++//go:linkname libc_ftruncate libc_ftruncate
++//go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getdtablesize() (size int) {
+- r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
++ r0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0)
+ size = int(r0)
+ return
+ }
+
++func libc_getdtablesize_trampoline()
++
++//go:linkname libc_getdtablesize libc_getdtablesize
++//go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getegid() (egid int) {
+- r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_getegid_trampoline), 0, 0, 0)
+ egid = int(r0)
+ return
+ }
+
++func libc_getegid_trampoline()
++
++//go:linkname libc_getegid libc_getegid
++//go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Geteuid() (uid int) {
+- r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_geteuid_trampoline), 0, 0, 0)
+ uid = int(r0)
+ return
+ }
+
++func libc_geteuid_trampoline()
++
++//go:linkname libc_geteuid libc_geteuid
++//go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getgid() (gid int) {
+- r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_getgid_trampoline), 0, 0, 0)
+ gid = int(r0)
+ return
+ }
+
++func libc_getgid_trampoline()
++
++//go:linkname libc_getgid libc_getgid
++//go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getpgid(pid int) (pgid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
++ r0, _, e1 := syscall_rawSyscall(funcPC(libc_getpgid_trampoline), uintptr(pid), 0, 0)
+ pgid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -770,34 +1268,54 @@ func Getpgid(pid int) (pgid int, err error) {
+ return
+ }
+
++func libc_getpgid_trampoline()
++
++//go:linkname libc_getpgid libc_getpgid
++//go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getpgrp() (pgrp int) {
+- r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_getpgrp_trampoline), 0, 0, 0)
+ pgrp = int(r0)
+ return
+ }
+
++func libc_getpgrp_trampoline()
++
++//go:linkname libc_getpgrp libc_getpgrp
++//go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getpid() (pid int) {
+- r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_getpid_trampoline), 0, 0, 0)
+ pid = int(r0)
+ return
+ }
+
++func libc_getpid_trampoline()
++
++//go:linkname libc_getpid libc_getpid
++//go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getppid() (ppid int) {
+- r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_getppid_trampoline), 0, 0, 0)
+ ppid = int(r0)
+ return
+ }
+
++func libc_getppid_trampoline()
++
++//go:linkname libc_getppid libc_getppid
++//go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getpriority(which int, who int) (prio int, err error) {
+- r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
++ r0, _, e1 := syscall_syscall(funcPC(libc_getpriority_trampoline), uintptr(which), uintptr(who), 0)
+ prio = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -805,30 +1323,45 @@ func Getpriority(which int, who int) (prio int, err error) {
+ return
+ }
+
++func libc_getpriority_trampoline()
++
++//go:linkname libc_getpriority libc_getpriority
++//go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getrlimit(which int, lim *Rlimit) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_getrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_getrlimit_trampoline()
++
++//go:linkname libc_getrlimit libc_getrlimit
++//go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getrusage(who int, rusage *Rusage) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_getrusage_trampoline), uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_getrusage_trampoline()
++
++//go:linkname libc_getrusage libc_getrusage
++//go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getsid(pid int) (sid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
++ r0, _, e1 := syscall_rawSyscall(funcPC(libc_getsid_trampoline), uintptr(pid), 0, 0)
+ sid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -836,26 +1369,41 @@ func Getsid(pid int) (sid int, err error) {
+ return
+ }
+
++func libc_getsid_trampoline()
++
++//go:linkname libc_getsid libc_getsid
++//go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getuid() (uid int) {
+- r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0)
+ uid = int(r0)
+ return
+ }
+
++func libc_getuid_trampoline()
++
++//go:linkname libc_getuid libc_getuid
++//go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Issetugid() (tainted bool) {
+- r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_issetugid_trampoline), 0, 0, 0)
+ tainted = bool(r0 != 0)
+ return
+ }
+
++func libc_issetugid_trampoline()
++
++//go:linkname libc_issetugid libc_issetugid
++//go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Kqueue() (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)
++ r0, _, e1 := syscall_syscall(funcPC(libc_kqueue_trampoline), 0, 0, 0)
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -863,6 +1411,11 @@ func Kqueue() (fd int, err error) {
+ return
+ }
+
++func libc_kqueue_trampoline()
++
++//go:linkname libc_kqueue libc_kqueue
++//go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Lchown(path string, uid int, gid int) (err error) {
+@@ -871,13 +1424,18 @@ func Lchown(path string, uid int, gid int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
++ _, _, e1 := syscall_syscall(funcPC(libc_lchown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_lchown_trampoline()
++
++//go:linkname libc_lchown libc_lchown
++//go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Link(path string, link string) (err error) {
+@@ -891,13 +1449,18 @@ func Link(path string, link string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_link_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_link_trampoline()
++
++//go:linkname libc_link libc_link
++//go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {
+@@ -911,37 +1474,32 @@ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err er
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_linkat_trampoline), uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_linkat_trampoline()
++
++//go:linkname libc_linkat libc_linkat
++//go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Listen(s int, backlog int) (err error) {
+- _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_listen_trampoline), uintptr(s), uintptr(backlog), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_listen_trampoline()
+
+-func Lstat(path string, stat *Stat_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++//go:linkname libc_listen libc_listen
++//go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+@@ -951,13 +1509,18 @@ func Mkdir(path string, mode uint32) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_mkdir_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mkdir_trampoline()
++
++//go:linkname libc_mkdir libc_mkdir
++//go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+@@ -966,13 +1529,18 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
++ _, _, e1 := syscall_syscall(funcPC(libc_mkdirat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mkdirat_trampoline()
++
++//go:linkname libc_mkdirat libc_mkdirat
++//go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Mkfifo(path string, mode uint32) (err error) {
+@@ -981,13 +1549,18 @@ func Mkfifo(path string, mode uint32) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_mkfifo_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mkfifo_trampoline()
++
++//go:linkname libc_mkfifo libc_mkfifo
++//go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Mknod(path string, mode uint32, dev int) (err error) {
+@@ -996,13 +1569,18 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
++ _, _, e1 := syscall_syscall(funcPC(libc_mknod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mknod_trampoline()
++
++//go:linkname libc_mknod libc_mknod
++//go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Open(path string, mode int, perm uint32) (fd int, err error) {
+@@ -1011,7 +1589,7 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ if err != nil {
+ return
+ }
+- r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
++ r0, _, e1 := syscall_syscall(funcPC(libc_open_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1019,6 +1597,11 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ return
+ }
+
++func libc_open_trampoline()
++
++//go:linkname libc_open libc_open
++//go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+@@ -1027,7 +1610,7 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+ if err != nil {
+ return
+ }
+- r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
++ r0, _, e1 := syscall_syscall6(funcPC(libc_openat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1035,6 +1618,11 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+ return
+ }
+
++func libc_openat_trampoline()
++
++//go:linkname libc_openat libc_openat
++//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Pathconf(path string, name int) (val int, err error) {
+@@ -1043,7 +1631,7 @@ func Pathconf(path string, name int) (val int, err error) {
+ if err != nil {
+ return
+ }
+- r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
++ r0, _, e1 := syscall_syscall(funcPC(libc_pathconf_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
+ val = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1051,6 +1639,11 @@ func Pathconf(path string, name int) (val int, err error) {
+ return
+ }
+
++func libc_pathconf_trampoline()
++
++//go:linkname libc_pathconf libc_pathconf
++//go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+@@ -1060,7 +1653,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
++ r0, _, e1 := syscall_syscall6(funcPC(libc_pread_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1068,6 +1661,11 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ return
+ }
+
++func libc_pread_trampoline()
++
++//go:linkname libc_pread libc_pread
++//go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+@@ -1077,7 +1675,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
++ r0, _, e1 := syscall_syscall6(funcPC(libc_pwrite_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1085,6 +1683,11 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ return
+ }
+
++func libc_pwrite_trampoline()
++
++//go:linkname libc_pwrite libc_pwrite
++//go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func read(fd int, p []byte) (n int, err error) {
+@@ -1094,7 +1697,7 @@ func read(fd int, p []byte) (n int, err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
++ r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1102,6 +1705,11 @@ func read(fd int, p []byte) (n int, err error) {
+ return
+ }
+
++func libc_read_trampoline()
++
++//go:linkname libc_read libc_read
++//go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Readlink(path string, buf []byte) (n int, err error) {
+@@ -1116,7 +1724,7 @@ func Readlink(path string, buf []byte) (n int, err error) {
+ } else {
+ _p1 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
++ r0, _, e1 := syscall_syscall(funcPC(libc_readlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1124,6 +1732,11 @@ func Readlink(path string, buf []byte) (n int, err error) {
+ return
+ }
+
++func libc_readlink_trampoline()
++
++//go:linkname libc_readlink libc_readlink
++//go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+@@ -1138,7 +1751,7 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ } else {
+ _p1 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
++ r0, _, e1 := syscall_syscall6(funcPC(libc_readlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1146,6 +1759,11 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ return
+ }
+
++func libc_readlinkat_trampoline()
++
++//go:linkname libc_readlinkat libc_readlinkat
++//go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Rename(from string, to string) (err error) {
+@@ -1159,13 +1777,18 @@ func Rename(from string, to string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_rename_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_rename_trampoline()
++
++//go:linkname libc_rename libc_rename
++//go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Renameat(fromfd int, from string, tofd int, to string) (err error) {
+@@ -1179,13 +1802,18 @@ func Renameat(fromfd int, from string, tofd int, to string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_renameat_trampoline), uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_renameat_trampoline()
++
++//go:linkname libc_renameat libc_renameat
++//go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Revoke(path string) (err error) {
+@@ -1194,13 +1822,18 @@ func Revoke(path string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_revoke_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_revoke_trampoline()
++
++//go:linkname libc_revoke libc_revoke
++//go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Rmdir(path string) (err error) {
+@@ -1209,17 +1842,22 @@ func Rmdir(path string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_rmdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_rmdir_trampoline()
++
++//go:linkname libc_rmdir libc_rmdir
++//go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+- r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0)
++ r0, r1, e1 := syscall_syscall6(funcPC(libc_lseek_trampoline), uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0)
+ newoffset = int64(int64(r1)<<32 | int64(r0))
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1227,46 +1865,72 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ return
+ }
+
++func libc_lseek_trampoline()
++
++//go:linkname libc_lseek libc_lseek
++//go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+- _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ r0, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_select_trampoline()
++
++//go:linkname libc_select libc_select
++//go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setegid(egid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_setegid_trampoline), uintptr(egid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setegid_trampoline()
++
++//go:linkname libc_setegid libc_setegid
++//go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Seteuid(euid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_seteuid_trampoline), uintptr(euid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_seteuid_trampoline()
++
++//go:linkname libc_seteuid libc_seteuid
++//go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setgid(gid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setgid_trampoline), uintptr(gid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setgid_trampoline()
++
++//go:linkname libc_setgid libc_setgid
++//go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setlogin(name string) (err error) {
+@@ -1275,77 +1939,112 @@ func Setlogin(name string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_setlogin_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setlogin_trampoline()
++
++//go:linkname libc_setlogin libc_setlogin
++//go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setpgid(pid int, pgid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setpgid_trampoline), uintptr(pid), uintptr(pgid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setpgid_trampoline()
++
++//go:linkname libc_setpgid libc_setpgid
++//go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setpriority(which int, who int, prio int) (err error) {
+- _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
++ _, _, e1 := syscall_syscall(funcPC(libc_setpriority_trampoline), uintptr(which), uintptr(who), uintptr(prio))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setpriority_trampoline()
++
++//go:linkname libc_setpriority libc_setpriority
++//go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setprivexec(flag int) (err error) {
+- _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_setprivexec_trampoline), uintptr(flag), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setprivexec_trampoline()
++
++//go:linkname libc_setprivexec libc_setprivexec
++//go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setregid(rgid int, egid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setregid_trampoline), uintptr(rgid), uintptr(egid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setregid_trampoline()
++
++//go:linkname libc_setregid libc_setregid
++//go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setreuid(ruid int, euid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setreuid_trampoline), uintptr(ruid), uintptr(euid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setreuid_trampoline()
++
++//go:linkname libc_setreuid libc_setreuid
++//go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setrlimit(which int, lim *Rlimit) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setrlimit_trampoline()
++
++//go:linkname libc_setrlimit libc_setrlimit
++//go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setsid() (pid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
++ r0, _, e1 := syscall_rawSyscall(funcPC(libc_setsid_trampoline), 0, 0, 0)
+ pid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1353,55 +2052,40 @@ func Setsid() (pid int, err error) {
+ return
+ }
+
++func libc_setsid_trampoline()
++
++//go:linkname libc_setsid libc_setsid
++//go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Settimeofday(tp *Timeval) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_settimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_settimeofday_trampoline()
+
+-func Setuid(uid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++//go:linkname libc_settimeofday libc_settimeofday
++//go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Stat(path string, stat *Stat_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++func Setuid(uid int) (err error) {
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setuid_trampoline), uintptr(uid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_setuid_trampoline()
+
+-func Statfs(path string, stat *Statfs_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++//go:linkname libc_setuid libc_setuid
++//go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+@@ -1416,13 +2100,18 @@ func Symlink(path string, link string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_symlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_symlink_trampoline()
++
++//go:linkname libc_symlink libc_symlink
++//go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+@@ -1436,23 +2125,33 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
++ _, _, e1 := syscall_syscall(funcPC(libc_symlinkat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_symlinkat_trampoline()
++
++//go:linkname libc_symlinkat libc_symlinkat
++//go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Sync() (err error) {
+- _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_sync_trampoline), 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_sync_trampoline()
++
++//go:linkname libc_sync libc_sync
++//go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Truncate(path string, length int64) (err error) {
+@@ -1461,21 +2160,31 @@ func Truncate(path string, length int64) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))
++ _, _, e1 := syscall_syscall(funcPC(libc_truncate_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_truncate_trampoline()
++
++//go:linkname libc_truncate libc_truncate
++//go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Umask(newmask int) (oldmask int) {
+- r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)
++ r0, _, _ := syscall_syscall(funcPC(libc_umask_trampoline), uintptr(newmask), 0, 0)
+ oldmask = int(r0)
+ return
+ }
+
++func libc_umask_trampoline()
++
++//go:linkname libc_umask libc_umask
++//go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Undelete(path string) (err error) {
+@@ -1484,13 +2193,18 @@ func Undelete(path string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_undelete_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_undelete_trampoline()
++
++//go:linkname libc_undelete libc_undelete
++//go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Unlink(path string) (err error) {
+@@ -1499,13 +2213,18 @@ func Unlink(path string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_unlink_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_unlink_trampoline()
++
++//go:linkname libc_unlink libc_unlink
++//go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Unlinkat(dirfd int, path string, flags int) (err error) {
+@@ -1514,13 +2233,18 @@ func Unlinkat(dirfd int, path string, flags int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
++ _, _, e1 := syscall_syscall(funcPC(libc_unlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_unlinkat_trampoline()
++
++//go:linkname libc_unlinkat libc_unlinkat
++//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Unmount(path string, flags int) (err error) {
+@@ -1529,13 +2253,18 @@ func Unmount(path string, flags int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_unmount_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_unmount_trampoline()
++
++//go:linkname libc_unmount libc_unmount
++//go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func write(fd int, p []byte) (n int, err error) {
+@@ -1545,7 +2274,7 @@ func write(fd int, p []byte) (n int, err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
++ r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1553,10 +2282,15 @@ func write(fd int, p []byte) (n int, err error) {
+ return
+ }
+
++func libc_write_trampoline()
++
++//go:linkname libc_write libc_write
++//go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
+- r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0)
++ r0, _, e1 := syscall_syscall9(funcPC(libc_mmap_trampoline), uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0)
+ ret = uintptr(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1564,20 +2298,30 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (
+ return
+ }
+
++func libc_mmap_trampoline()
++
++//go:linkname libc_mmap libc_mmap
++//go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func munmap(addr uintptr, length uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_munmap_trampoline), uintptr(addr), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_munmap_trampoline()
++
++//go:linkname libc_munmap libc_munmap
++//go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
++ r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1588,7 +2332,7 @@ func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
++ r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1599,7 +2343,7 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) {
+- r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
++ r0, r1, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)
+ sec = int32(r0)
+ usec = int32(r1)
+ if e1 != 0 {
+@@ -1607,3 +2351,134 @@ func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) {
+ }
+ return
+ }
++
++func libc_gettimeofday_trampoline()
++
++//go:linkname libc_gettimeofday libc_gettimeofday
++//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstat(fd int, stat *Stat_t) (err error) {
++ _, _, e1 := syscall_syscall(funcPC(libc_fstat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fstat_trampoline()
++
++//go:linkname libc_fstat libc_fstat
++//go:cgo_import_dynamic libc_fstat fstat "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall6(funcPC(libc_fstatat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fstatat_trampoline()
++
++//go:linkname libc_fstatat libc_fstatat
++//go:cgo_import_dynamic libc_fstatat fstatat "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatfs(fd int, stat *Statfs_t) (err error) {
++ _, _, e1 := syscall_syscall(funcPC(libc_fstatfs_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fstatfs_trampoline()
++
++//go:linkname libc_fstatfs libc_fstatfs
++//go:cgo_import_dynamic libc_fstatfs fstatfs "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {
++ r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat_trampoline), uintptr(buf), uintptr(size), uintptr(flags))
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_getfsstat_trampoline()
++
++//go:linkname libc_getfsstat libc_getfsstat
++//go:cgo_import_dynamic libc_getfsstat getfsstat "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Lstat(path string, stat *Stat_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall(funcPC(libc_lstat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_lstat_trampoline()
++
++//go:linkname libc_lstat libc_lstat
++//go:cgo_import_dynamic libc_lstat lstat "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Stat(path string, stat *Stat_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall(funcPC(libc_stat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_stat_trampoline()
++
++//go:linkname libc_stat libc_stat
++//go:cgo_import_dynamic libc_stat stat "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Statfs(path string, stat *Statfs_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall(funcPC(libc_statfs_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_statfs_trampoline()
++
++//go:linkname libc_statfs libc_statfs
++//go:cgo_import_dynamic libc_statfs statfs "/usr/lib/libSystem.B.dylib"
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s
+new file mode 100644
+index 00000000..b67f518f
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s
+@@ -0,0 +1,282 @@
++// go run mkasm_darwin.go arm
++// Code generated by the command above; DO NOT EDIT.
++
++// +build go1.12
++
++#include "textflag.h"
++TEXT ·libc_getgroups_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getgroups(SB)
++TEXT ·libc_setgroups_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setgroups(SB)
++TEXT ·libc_wait4_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_wait4(SB)
++TEXT ·libc_accept_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_accept(SB)
++TEXT ·libc_bind_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_bind(SB)
++TEXT ·libc_connect_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_connect(SB)
++TEXT ·libc_socket_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_socket(SB)
++TEXT ·libc_getsockopt_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getsockopt(SB)
++TEXT ·libc_setsockopt_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setsockopt(SB)
++TEXT ·libc_getpeername_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getpeername(SB)
++TEXT ·libc_getsockname_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getsockname(SB)
++TEXT ·libc_shutdown_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_shutdown(SB)
++TEXT ·libc_socketpair_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_socketpair(SB)
++TEXT ·libc_recvfrom_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_recvfrom(SB)
++TEXT ·libc_sendto_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_sendto(SB)
++TEXT ·libc_recvmsg_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_recvmsg(SB)
++TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_sendmsg(SB)
++TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_kevent(SB)
++TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_utimes(SB)
++TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_futimes(SB)
++TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_poll(SB)
++TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_madvise(SB)
++TEXT ·libc_mlock_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mlock(SB)
++TEXT ·libc_mlockall_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mlockall(SB)
++TEXT ·libc_mprotect_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mprotect(SB)
++TEXT ·libc_msync_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_msync(SB)
++TEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_munlock(SB)
++TEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_munlockall(SB)
++TEXT ·libc_getattrlist_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getattrlist(SB)
++TEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_pipe(SB)
++TEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getxattr(SB)
++TEXT ·libc_fgetxattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fgetxattr(SB)
++TEXT ·libc_setxattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setxattr(SB)
++TEXT ·libc_fsetxattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fsetxattr(SB)
++TEXT ·libc_removexattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_removexattr(SB)
++TEXT ·libc_fremovexattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fremovexattr(SB)
++TEXT ·libc_listxattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_listxattr(SB)
++TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_flistxattr(SB)
++TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setattrlist(SB)
++TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fcntl(SB)
++TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_kill(SB)
++TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_ioctl(SB)
++TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_sysctl(SB)
++TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_sendfile(SB)
++TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_access(SB)
++TEXT ·libc_adjtime_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_adjtime(SB)
++TEXT ·libc_chdir_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_chdir(SB)
++TEXT ·libc_chflags_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_chflags(SB)
++TEXT ·libc_chmod_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_chmod(SB)
++TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_chown(SB)
++TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_chroot(SB)
++TEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_clock_gettime(SB)
++TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_close(SB)
++TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_dup(SB)
++TEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_dup2(SB)
++TEXT ·libc_exchangedata_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_exchangedata(SB)
++TEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_exit(SB)
++TEXT ·libc_faccessat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_faccessat(SB)
++TEXT ·libc_fchdir_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fchdir(SB)
++TEXT ·libc_fchflags_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fchflags(SB)
++TEXT ·libc_fchmod_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fchmod(SB)
++TEXT ·libc_fchmodat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fchmodat(SB)
++TEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fchown(SB)
++TEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fchownat(SB)
++TEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_flock(SB)
++TEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fpathconf(SB)
++TEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fsync(SB)
++TEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_ftruncate(SB)
++TEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getdtablesize(SB)
++TEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getegid(SB)
++TEXT ·libc_geteuid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_geteuid(SB)
++TEXT ·libc_getgid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getgid(SB)
++TEXT ·libc_getpgid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getpgid(SB)
++TEXT ·libc_getpgrp_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getpgrp(SB)
++TEXT ·libc_getpid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getpid(SB)
++TEXT ·libc_getppid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getppid(SB)
++TEXT ·libc_getpriority_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getpriority(SB)
++TEXT ·libc_getrlimit_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getrlimit(SB)
++TEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getrusage(SB)
++TEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getsid(SB)
++TEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getuid(SB)
++TEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_issetugid(SB)
++TEXT ·libc_kqueue_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_kqueue(SB)
++TEXT ·libc_lchown_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_lchown(SB)
++TEXT ·libc_link_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_link(SB)
++TEXT ·libc_linkat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_linkat(SB)
++TEXT ·libc_listen_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_listen(SB)
++TEXT ·libc_mkdir_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mkdir(SB)
++TEXT ·libc_mkdirat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mkdirat(SB)
++TEXT ·libc_mkfifo_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mkfifo(SB)
++TEXT ·libc_mknod_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mknod(SB)
++TEXT ·libc_open_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_open(SB)
++TEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_openat(SB)
++TEXT ·libc_pathconf_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_pathconf(SB)
++TEXT ·libc_pread_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_pread(SB)
++TEXT ·libc_pwrite_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_pwrite(SB)
++TEXT ·libc_read_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_read(SB)
++TEXT ·libc_readlink_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_readlink(SB)
++TEXT ·libc_readlinkat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_readlinkat(SB)
++TEXT ·libc_rename_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_rename(SB)
++TEXT ·libc_renameat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_renameat(SB)
++TEXT ·libc_revoke_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_revoke(SB)
++TEXT ·libc_rmdir_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_rmdir(SB)
++TEXT ·libc_lseek_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_lseek(SB)
++TEXT ·libc_select_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_select(SB)
++TEXT ·libc_setegid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setegid(SB)
++TEXT ·libc_seteuid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_seteuid(SB)
++TEXT ·libc_setgid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setgid(SB)
++TEXT ·libc_setlogin_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setlogin(SB)
++TEXT ·libc_setpgid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setpgid(SB)
++TEXT ·libc_setpriority_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setpriority(SB)
++TEXT ·libc_setprivexec_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setprivexec(SB)
++TEXT ·libc_setregid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setregid(SB)
++TEXT ·libc_setreuid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setreuid(SB)
++TEXT ·libc_setrlimit_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setrlimit(SB)
++TEXT ·libc_setsid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setsid(SB)
++TEXT ·libc_settimeofday_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_settimeofday(SB)
++TEXT ·libc_setuid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setuid(SB)
++TEXT ·libc_symlink_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_symlink(SB)
++TEXT ·libc_symlinkat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_symlinkat(SB)
++TEXT ·libc_sync_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_sync(SB)
++TEXT ·libc_truncate_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_truncate(SB)
++TEXT ·libc_umask_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_umask(SB)
++TEXT ·libc_undelete_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_undelete(SB)
++TEXT ·libc_unlink_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_unlink(SB)
++TEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_unlinkat(SB)
++TEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_unmount(SB)
++TEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_write(SB)
++TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mmap(SB)
++TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_munmap(SB)
++TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_gettimeofday(SB)
++TEXT ·libc_fstat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fstat(SB)
++TEXT ·libc_fstatat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fstatat(SB)
++TEXT ·libc_fstatfs_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fstatfs(SB)
++TEXT ·libc_getfsstat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getfsstat(SB)
++TEXT ·libc_lstat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_lstat(SB)
++TEXT ·libc_stat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_stat(SB)
++TEXT ·libc_statfs_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_statfs(SB)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go
+similarity index 84%
+copy from vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
+copy to vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go
+index 07c6ebc9..8c3bb3a2 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go
+@@ -1,7 +1,7 @@
+-// mksyscall.pl -tags darwin,arm64 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go
++// go run mksyscall.go -tags darwin,arm64,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.1_11.go syscall_darwin_arm64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+-// +build darwin,arm64
++// +build darwin,arm64,!go1.12
+
+ package unix
+
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+- var _p0 unsafe.Pointer
+- if len(mib) > 0 {
+- _p0 = unsafe.Pointer(&mib[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func utimes(path string, timeval *[2]Timeval) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -366,8 +350,8 @@ func Munlockall() (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
++func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++ _, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -388,6 +372,161 @@ func pipe() (r int, w int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func removexattr(path string, attr string, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fremovexattr(fd int, attr string, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func listxattr(path string, dest *byte, size int, options int) (sz int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {
++ r0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++ _, _, e1 := Syscall6(SYS_SETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fcntl(fd int, cmd int, arg int) (val int, err error) {
++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
++ val = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func kill(pid int, signum int, posix int) (err error) {
+ _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix))
+ if e1 != 0 {
+@@ -408,6 +547,32 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
++ var _p0 unsafe.Pointer
++ if len(mib) > 0 {
++ _p0 = unsafe.Pointer(&mib[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := Syscall6(SYS_SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {
++ _, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Access(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -672,26 +837,6 @@ func Fpathconf(fd int, name int) (val int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fstat(fd int, stat *Stat_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fstatfs(fd int, stat *Statfs_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func Fsync(fd int) (err error) {
+ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+ if e1 != 0 {
+@@ -712,23 +857,6 @@ func Ftruncate(fd int, length int64) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func Getdtablesize() (size int) {
+ r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
+ size = int(r0)
+@@ -930,21 +1058,6 @@ func Listen(s int, backlog int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Lstat(path string, stat *Stat_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func Mkdir(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1229,8 +1342,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+- _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1375,36 +1489,6 @@ func Setuid(uid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Stat(path string, stat *Stat_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Statfs(path string, stat *Statfs_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func Symlink(path string, link string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1607,3 +1691,94 @@ func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) {
+ }
+ return
+ }
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstat(fd int, stat *Stat_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatfs(fd int, stat *Statfs_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {
++ r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(buf), uintptr(size), uintptr(flags))
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Lstat(path string, stat *Stat_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Stat(path string, stat *Stat_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Statfs(path string, stat *Statfs_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go
+new file mode 100644
+index 00000000..d64e6c80
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go
+@@ -0,0 +1,41 @@
++// go run mksyscall.go -tags darwin,arm64,go1.13 syscall_darwin.1_13.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build darwin,arm64,go1.13
++
++package unix
++
++import (
++ "syscall"
++ "unsafe"
++)
++
++var _ syscall.Errno
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func closedir(dir uintptr) (err error) {
++ _, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_closedir_trampoline()
++
++//go:linkname libc_closedir libc_closedir
++//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) {
++ r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result)))
++ res = Errno(r0)
++ return
++}
++
++func libc_readdir_r_trampoline()
++
++//go:linkname libc_readdir_r libc_readdir_r
++//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib"
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s
+new file mode 100644
+index 00000000..b29dabb0
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s
+@@ -0,0 +1,12 @@
++// go run mkasm_darwin.go arm64
++// Code generated by the command above; DO NOT EDIT.
++
++// +build go1.13
++
++#include "textflag.h"
++TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fdopendir(SB)
++TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_closedir(SB)
++TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_readdir_r(SB)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
+index 07c6ebc9..a8709f72 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
+@@ -1,7 +1,7 @@
+-// mksyscall.pl -tags darwin,arm64 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go
++// go run mksyscall.go -tags darwin,arm64,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+-// +build darwin,arm64
++// +build darwin,arm64,go1.12
+
+ package unix
+
+@@ -15,7 +15,7 @@ var _ syscall.Errno
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
++ r0, _, e1 := syscall_rawSyscall(funcPC(libc_getgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -23,20 +23,30 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+ return
+ }
+
++func libc_getgroups_trampoline()
++
++//go:linkname libc_getgroups libc_getgroups
++//go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func setgroups(ngid int, gid *_Gid_t) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setgroups_trampoline()
++
++//go:linkname libc_setgroups libc_setgroups
++//go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+- r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
++ r0, _, e1 := syscall_syscall6(funcPC(libc_wait4_trampoline), uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+ wpid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -44,10 +54,15 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err
+ return
+ }
+
++func libc_wait4_trampoline()
++
++//go:linkname libc_wait4 libc_wait4
++//go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
++ r0, _, e1 := syscall_syscall(funcPC(libc_accept_trampoline), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -55,30 +70,45 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+ return
+ }
+
++func libc_accept_trampoline()
++
++//go:linkname libc_accept libc_accept
++//go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+- _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
++ _, _, e1 := syscall_syscall(funcPC(libc_bind_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_bind_trampoline()
++
++//go:linkname libc_bind libc_bind
++//go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+- _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
++ _, _, e1 := syscall_syscall(funcPC(libc_connect_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_connect_trampoline()
++
++//go:linkname libc_connect libc_connect
++//go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func socket(domain int, typ int, proto int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
++ r0, _, e1 := syscall_rawSyscall(funcPC(libc_socket_trampoline), uintptr(domain), uintptr(typ), uintptr(proto))
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -86,66 +116,101 @@ func socket(domain int, typ int, proto int) (fd int, err error) {
+ return
+ }
+
++func libc_socket_trampoline()
++
++//go:linkname libc_socket libc_socket
++//go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+- _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_getsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_getsockopt_trampoline()
++
++//go:linkname libc_getsockopt libc_getsockopt
++//go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_setsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setsockopt_trampoline()
++
++//go:linkname libc_setsockopt libc_setsockopt
++//go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_getpeername_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_getpeername_trampoline()
++
++//go:linkname libc_getpeername libc_getpeername
++//go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_getsockname_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_getsockname_trampoline()
++
++//go:linkname libc_getsockname libc_getsockname
++//go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Shutdown(s int, how int) (err error) {
+- _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_shutdown_trampoline), uintptr(s), uintptr(how), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_shutdown_trampoline()
++
++//go:linkname libc_shutdown libc_shutdown
++//go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+- _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
++ _, _, e1 := syscall_rawSyscall6(funcPC(libc_socketpair_trampoline), uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_socketpair_trampoline()
++
++//go:linkname libc_socketpair libc_socketpair
++//go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+@@ -155,7 +220,7 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
++ r0, _, e1 := syscall_syscall6(funcPC(libc_recvfrom_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -163,6 +228,11 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl
+ return
+ }
+
++func libc_recvfrom_trampoline()
++
++//go:linkname libc_recvfrom libc_recvfrom
++//go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+@@ -172,17 +242,22 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
++ _, _, e1 := syscall_syscall6(funcPC(libc_sendto_trampoline), uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_sendto_trampoline()
++
++//go:linkname libc_sendto libc_sendto
++//go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
++ r0, _, e1 := syscall_syscall(funcPC(libc_recvmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -190,10 +265,15 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ return
+ }
+
++func libc_recvmsg_trampoline()
++
++//go:linkname libc_recvmsg libc_recvmsg
++//go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
++ r0, _, e1 := syscall_syscall(funcPC(libc_sendmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -201,10 +281,15 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ return
+ }
+
++func libc_sendmsg_trampoline()
++
++//go:linkname libc_sendmsg libc_sendmsg
++//go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
++ r0, _, e1 := syscall_syscall6(funcPC(libc_kevent_trampoline), uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -212,21 +297,10 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_kevent_trampoline()
+
+-func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+- var _p0 unsafe.Pointer
+- if len(mib) > 0 {
+- _p0 = unsafe.Pointer(&mib[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++//go:linkname libc_kevent libc_kevent
++//go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+@@ -236,34 +310,49 @@ func utimes(path string, timeval *[2]Timeval) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_utimes_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_utimes_trampoline()
++
++//go:linkname libc_utimes libc_utimes
++//go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func futimes(fd int, timeval *[2]Timeval) (err error) {
+- _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_futimes_trampoline), uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_futimes_trampoline()
++
++//go:linkname libc_futimes libc_futimes
++//go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++ r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_poll_trampoline()
++
++//go:linkname libc_poll libc_poll
++//go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Madvise(b []byte, behav int) (err error) {
+@@ -273,13 +362,18 @@ func Madvise(b []byte, behav int) (err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))
++ _, _, e1 := syscall_syscall(funcPC(libc_madvise_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(behav))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_madvise_trampoline()
++
++//go:linkname libc_madvise libc_madvise
++//go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Mlock(b []byte) (err error) {
+@@ -289,23 +383,33 @@ func Mlock(b []byte) (err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_mlock_trampoline), uintptr(_p0), uintptr(len(b)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mlock_trampoline()
++
++//go:linkname libc_mlock libc_mlock
++//go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Mlockall(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_mlockall_trampoline), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mlockall_trampoline()
++
++//go:linkname libc_mlockall libc_mlockall
++//go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Mprotect(b []byte, prot int) (err error) {
+@@ -315,13 +419,18 @@ func Mprotect(b []byte, prot int) (err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
++ _, _, e1 := syscall_syscall(funcPC(libc_mprotect_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(prot))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mprotect_trampoline()
++
++//go:linkname libc_mprotect libc_mprotect
++//go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Msync(b []byte, flags int) (err error) {
+@@ -331,13 +440,18 @@ func Msync(b []byte, flags int) (err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
++ _, _, e1 := syscall_syscall(funcPC(libc_msync_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(flags))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_msync_trampoline()
++
++//go:linkname libc_msync libc_msync
++//go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Munlock(b []byte) (err error) {
+@@ -347,37 +461,52 @@ func Munlock(b []byte) (err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_munlock_trampoline), uintptr(_p0), uintptr(len(b)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_munlock_trampoline()
++
++//go:linkname libc_munlock libc_munlock
++//go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Munlockall() (err error) {
+- _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_munlockall_trampoline), 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_munlockall_trampoline()
++
++//go:linkname libc_munlockall libc_munlockall
++//go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
++func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++ _, _, e1 := syscall_syscall6(funcPC(libc_getattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_getattrlist_trampoline()
++
++//go:linkname libc_getattrlist libc_getattrlist
++//go:cgo_import_dynamic libc_getattrlist getattrlist "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func pipe() (r int, w int, err error) {
+- r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
++ r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0)
+ r = int(r0)
+ w = int(r1)
+ if e1 != 0 {
+@@ -386,26 +515,282 @@ func pipe() (r int, w int, err error) {
+ return
+ }
+
++func libc_pipe_trampoline()
++
++//go:linkname libc_pipe libc_pipe
++//go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := syscall_syscall6(funcPC(libc_getxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_getxattr_trampoline()
++
++//go:linkname libc_getxattr libc_getxattr
++//go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := syscall_syscall6(funcPC(libc_fgetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fgetxattr_trampoline()
++
++//go:linkname libc_fgetxattr libc_fgetxattr
++//go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall6(funcPC(libc_setxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_setxattr_trampoline()
++
++//go:linkname libc_setxattr libc_setxattr
++//go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall6(funcPC(libc_fsetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fsetxattr_trampoline()
++
++//go:linkname libc_fsetxattr libc_fsetxattr
++//go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func removexattr(path string, attr string, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall(funcPC(libc_removexattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_removexattr_trampoline()
++
++//go:linkname libc_removexattr libc_removexattr
++//go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fremovexattr(fd int, attr string, options int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall(funcPC(libc_fremovexattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fremovexattr_trampoline()
++
++//go:linkname libc_fremovexattr libc_fremovexattr
++//go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func listxattr(path string, dest *byte, size int, options int) (sz int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := syscall_syscall6(funcPC(libc_listxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_listxattr_trampoline()
++
++//go:linkname libc_listxattr libc_listxattr
++//go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {
++ r0, _, e1 := syscall_syscall6(funcPC(libc_flistxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)
++ sz = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_flistxattr_trampoline()
++
++//go:linkname libc_flistxattr libc_flistxattr
++//go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++ _, _, e1 := syscall_syscall6(funcPC(libc_setattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_setattrlist_trampoline()
++
++//go:linkname libc_setattrlist libc_setattrlist
++//go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fcntl(fd int, cmd int, arg int) (val int, err error) {
++ r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg))
++ val = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fcntl_trampoline()
++
++//go:linkname libc_fcntl libc_fcntl
++//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func kill(pid int, signum int, posix int) (err error) {
+- _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix))
++ _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_kill_trampoline()
++
++//go:linkname libc_kill libc_kill
++//go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func ioctl(fd int, req uint, arg uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
++ _, _, e1 := syscall_syscall(funcPC(libc_ioctl_trampoline), uintptr(fd), uintptr(req), uintptr(arg))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_ioctl_trampoline()
++
++//go:linkname libc_ioctl libc_ioctl
++//go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
++ var _p0 unsafe.Pointer
++ if len(mib) > 0 {
++ _p0 = unsafe.Pointer(&mib[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := syscall_syscall6(funcPC(libc_sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_sysctl_trampoline()
++
++//go:linkname libc_sysctl libc_sysctl
++//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {
++ _, _, e1 := syscall_syscall6(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_sendfile_trampoline()
++
++//go:linkname libc_sendfile libc_sendfile
++//go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Access(path string, mode uint32) (err error) {
+@@ -414,23 +799,33 @@ func Access(path string, mode uint32) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_access_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_access_trampoline()
++
++//go:linkname libc_access libc_access
++//go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+- _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_adjtime_trampoline), uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_adjtime_trampoline()
++
++//go:linkname libc_adjtime libc_adjtime
++//go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Chdir(path string) (err error) {
+@@ -439,13 +834,18 @@ func Chdir(path string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_chdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_chdir_trampoline()
++
++//go:linkname libc_chdir libc_chdir
++//go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Chflags(path string, flags int) (err error) {
+@@ -454,13 +854,18 @@ func Chflags(path string, flags int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_chflags_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_chflags_trampoline()
++
++//go:linkname libc_chflags libc_chflags
++//go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Chmod(path string, mode uint32) (err error) {
+@@ -469,13 +874,18 @@ func Chmod(path string, mode uint32) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_chmod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_chmod_trampoline()
++
++//go:linkname libc_chmod libc_chmod
++//go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Chown(path string, uid int, gid int) (err error) {
+@@ -484,13 +894,18 @@ func Chown(path string, uid int, gid int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
++ _, _, e1 := syscall_syscall(funcPC(libc_chown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_chown_trampoline()
++
++//go:linkname libc_chown libc_chown
++//go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Chroot(path string) (err error) {
+@@ -499,27 +914,52 @@ func Chroot(path string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_chroot_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_chroot_trampoline()
++
++//go:linkname libc_chroot libc_chroot
++//go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ClockGettime(clockid int32, time *Timespec) (err error) {
++ _, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_clock_gettime_trampoline()
++
++//go:linkname libc_clock_gettime libc_clock_gettime
++//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Close(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_close_trampoline()
++
++//go:linkname libc_close libc_close
++//go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Dup(fd int) (nfd int, err error) {
+- r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)
++ r0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0)
+ nfd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -527,16 +967,26 @@ func Dup(fd int) (nfd int, err error) {
+ return
+ }
+
++func libc_dup_trampoline()
++
++//go:linkname libc_dup libc_dup
++//go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Dup2(from int, to int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_dup2_trampoline), uintptr(from), uintptr(to), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_dup2_trampoline()
++
++//go:linkname libc_dup2 libc_dup2
++//go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Exchangedata(path1 string, path2 string, options int) (err error) {
+@@ -550,20 +1000,30 @@ func Exchangedata(path1 string, path2 string, options int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
++ _, _, e1 := syscall_syscall(funcPC(libc_exchangedata_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_exchangedata_trampoline()
++
++//go:linkname libc_exchangedata libc_exchangedata
++//go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Exit(code int) {
+- Syscall(SYS_EXIT, uintptr(code), 0, 0)
++ syscall_syscall(funcPC(libc_exit_trampoline), uintptr(code), 0, 0)
+ return
+ }
+
++func libc_exit_trampoline()
++
++//go:linkname libc_exit libc_exit
++//go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+@@ -572,43 +1032,63 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_faccessat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_faccessat_trampoline()
++
++//go:linkname libc_faccessat libc_faccessat
++//go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fchdir(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_fchdir_trampoline), uintptr(fd), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_fchdir_trampoline()
++
++//go:linkname libc_fchdir libc_fchdir
++//go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fchflags(fd int, flags int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_fchflags_trampoline), uintptr(fd), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_fchflags_trampoline()
++
++//go:linkname libc_fchflags libc_fchflags
++//go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fchmod(fd int, mode uint32) (err error) {
+- _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_fchmod_trampoline), uintptr(fd), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_fchmod_trampoline()
++
++//go:linkname libc_fchmod libc_fchmod
++//go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
+@@ -617,23 +1097,33 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_fchmodat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_fchmodat_trampoline()
++
++//go:linkname libc_fchmodat libc_fchmodat
++//go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fchown(fd int, uid int, gid int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
++ _, _, e1 := syscall_syscall(funcPC(libc_fchown_trampoline), uintptr(fd), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_fchown_trampoline()
++
++//go:linkname libc_fchown libc_fchown
++//go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+@@ -642,27 +1132,37 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_fchownat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_fchownat_trampoline()
++
++//go:linkname libc_fchownat libc_fchownat
++//go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Flock(fd int, how int) (err error) {
+- _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_flock_trampoline()
++
++//go:linkname libc_flock libc_flock
++//go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fpathconf(fd int, name int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)
++ r0, _, e1 := syscall_syscall(funcPC(libc_fpathconf_trampoline), uintptr(fd), uintptr(name), 0)
+ val = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -670,99 +1170,97 @@ func Fpathconf(fd int, name int) (val int, err error) {
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_fpathconf_trampoline()
+
+-func Fstat(fd int, stat *Stat_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++//go:linkname libc_fpathconf libc_fpathconf
++//go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fstatfs(fd int, stat *Statfs_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++func Fsync(fd int) (err error) {
++ _, _, e1 := syscall_syscall(funcPC(libc_fsync_trampoline), uintptr(fd), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_fsync_trampoline()
+
+-func Fsync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++//go:linkname libc_fsync libc_fsync
++//go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Ftruncate(fd int, length int64) (err error) {
+- _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_ftruncate_trampoline), uintptr(fd), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++func libc_ftruncate_trampoline()
++
++//go:linkname libc_ftruncate libc_ftruncate
++//go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getdtablesize() (size int) {
+- r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
++ r0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0)
+ size = int(r0)
+ return
+ }
+
++func libc_getdtablesize_trampoline()
++
++//go:linkname libc_getdtablesize libc_getdtablesize
++//go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getegid() (egid int) {
+- r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_getegid_trampoline), 0, 0, 0)
+ egid = int(r0)
+ return
+ }
+
++func libc_getegid_trampoline()
++
++//go:linkname libc_getegid libc_getegid
++//go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Geteuid() (uid int) {
+- r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_geteuid_trampoline), 0, 0, 0)
+ uid = int(r0)
+ return
+ }
+
++func libc_geteuid_trampoline()
++
++//go:linkname libc_geteuid libc_geteuid
++//go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getgid() (gid int) {
+- r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_getgid_trampoline), 0, 0, 0)
+ gid = int(r0)
+ return
+ }
+
++func libc_getgid_trampoline()
++
++//go:linkname libc_getgid libc_getgid
++//go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getpgid(pid int) (pgid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
++ r0, _, e1 := syscall_rawSyscall(funcPC(libc_getpgid_trampoline), uintptr(pid), 0, 0)
+ pgid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -770,34 +1268,54 @@ func Getpgid(pid int) (pgid int, err error) {
+ return
+ }
+
++func libc_getpgid_trampoline()
++
++//go:linkname libc_getpgid libc_getpgid
++//go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getpgrp() (pgrp int) {
+- r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_getpgrp_trampoline), 0, 0, 0)
+ pgrp = int(r0)
+ return
+ }
+
++func libc_getpgrp_trampoline()
++
++//go:linkname libc_getpgrp libc_getpgrp
++//go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getpid() (pid int) {
+- r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_getpid_trampoline), 0, 0, 0)
+ pid = int(r0)
+ return
+ }
+
++func libc_getpid_trampoline()
++
++//go:linkname libc_getpid libc_getpid
++//go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getppid() (ppid int) {
+- r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_getppid_trampoline), 0, 0, 0)
+ ppid = int(r0)
+ return
+ }
+
++func libc_getppid_trampoline()
++
++//go:linkname libc_getppid libc_getppid
++//go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getpriority(which int, who int) (prio int, err error) {
+- r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
++ r0, _, e1 := syscall_syscall(funcPC(libc_getpriority_trampoline), uintptr(which), uintptr(who), 0)
+ prio = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -805,30 +1323,45 @@ func Getpriority(which int, who int) (prio int, err error) {
+ return
+ }
+
++func libc_getpriority_trampoline()
++
++//go:linkname libc_getpriority libc_getpriority
++//go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getrlimit(which int, lim *Rlimit) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_getrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_getrlimit_trampoline()
++
++//go:linkname libc_getrlimit libc_getrlimit
++//go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getrusage(who int, rusage *Rusage) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_getrusage_trampoline), uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_getrusage_trampoline()
++
++//go:linkname libc_getrusage libc_getrusage
++//go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getsid(pid int) (sid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
++ r0, _, e1 := syscall_rawSyscall(funcPC(libc_getsid_trampoline), uintptr(pid), 0, 0)
+ sid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -836,26 +1369,41 @@ func Getsid(pid int) (sid int, err error) {
+ return
+ }
+
++func libc_getsid_trampoline()
++
++//go:linkname libc_getsid libc_getsid
++//go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getuid() (uid int) {
+- r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0)
+ uid = int(r0)
+ return
+ }
+
++func libc_getuid_trampoline()
++
++//go:linkname libc_getuid libc_getuid
++//go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Issetugid() (tainted bool) {
+- r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0)
++ r0, _, _ := syscall_rawSyscall(funcPC(libc_issetugid_trampoline), 0, 0, 0)
+ tainted = bool(r0 != 0)
+ return
+ }
+
++func libc_issetugid_trampoline()
++
++//go:linkname libc_issetugid libc_issetugid
++//go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Kqueue() (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)
++ r0, _, e1 := syscall_syscall(funcPC(libc_kqueue_trampoline), 0, 0, 0)
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -863,6 +1411,11 @@ func Kqueue() (fd int, err error) {
+ return
+ }
+
++func libc_kqueue_trampoline()
++
++//go:linkname libc_kqueue libc_kqueue
++//go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Lchown(path string, uid int, gid int) (err error) {
+@@ -871,13 +1424,18 @@ func Lchown(path string, uid int, gid int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
++ _, _, e1 := syscall_syscall(funcPC(libc_lchown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_lchown_trampoline()
++
++//go:linkname libc_lchown libc_lchown
++//go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Link(path string, link string) (err error) {
+@@ -891,13 +1449,18 @@ func Link(path string, link string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_link_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_link_trampoline()
++
++//go:linkname libc_link libc_link
++//go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {
+@@ -911,37 +1474,32 @@ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err er
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_linkat_trampoline), uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_linkat_trampoline()
++
++//go:linkname libc_linkat libc_linkat
++//go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Listen(s int, backlog int) (err error) {
+- _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_listen_trampoline), uintptr(s), uintptr(backlog), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_listen_trampoline()
+
+-func Lstat(path string, stat *Stat_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++//go:linkname libc_listen libc_listen
++//go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+@@ -951,13 +1509,18 @@ func Mkdir(path string, mode uint32) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_mkdir_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mkdir_trampoline()
++
++//go:linkname libc_mkdir libc_mkdir
++//go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+@@ -966,13 +1529,18 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
++ _, _, e1 := syscall_syscall(funcPC(libc_mkdirat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mkdirat_trampoline()
++
++//go:linkname libc_mkdirat libc_mkdirat
++//go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Mkfifo(path string, mode uint32) (err error) {
+@@ -981,13 +1549,18 @@ func Mkfifo(path string, mode uint32) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_mkfifo_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mkfifo_trampoline()
++
++//go:linkname libc_mkfifo libc_mkfifo
++//go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Mknod(path string, mode uint32, dev int) (err error) {
+@@ -996,13 +1569,18 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
++ _, _, e1 := syscall_syscall(funcPC(libc_mknod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_mknod_trampoline()
++
++//go:linkname libc_mknod libc_mknod
++//go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Open(path string, mode int, perm uint32) (fd int, err error) {
+@@ -1011,7 +1589,7 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ if err != nil {
+ return
+ }
+- r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
++ r0, _, e1 := syscall_syscall(funcPC(libc_open_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1019,6 +1597,11 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ return
+ }
+
++func libc_open_trampoline()
++
++//go:linkname libc_open libc_open
++//go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+@@ -1027,7 +1610,7 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+ if err != nil {
+ return
+ }
+- r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
++ r0, _, e1 := syscall_syscall6(funcPC(libc_openat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1035,6 +1618,11 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+ return
+ }
+
++func libc_openat_trampoline()
++
++//go:linkname libc_openat libc_openat
++//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Pathconf(path string, name int) (val int, err error) {
+@@ -1043,7 +1631,7 @@ func Pathconf(path string, name int) (val int, err error) {
+ if err != nil {
+ return
+ }
+- r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
++ r0, _, e1 := syscall_syscall(funcPC(libc_pathconf_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
+ val = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1051,6 +1639,11 @@ func Pathconf(path string, name int) (val int, err error) {
+ return
+ }
+
++func libc_pathconf_trampoline()
++
++//go:linkname libc_pathconf libc_pathconf
++//go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+@@ -1060,7 +1653,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
++ r0, _, e1 := syscall_syscall6(funcPC(libc_pread_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1068,6 +1661,11 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ return
+ }
+
++func libc_pread_trampoline()
++
++//go:linkname libc_pread libc_pread
++//go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+@@ -1077,7 +1675,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
++ r0, _, e1 := syscall_syscall6(funcPC(libc_pwrite_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1085,6 +1683,11 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ return
+ }
+
++func libc_pwrite_trampoline()
++
++//go:linkname libc_pwrite libc_pwrite
++//go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func read(fd int, p []byte) (n int, err error) {
+@@ -1094,7 +1697,7 @@ func read(fd int, p []byte) (n int, err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
++ r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1102,6 +1705,11 @@ func read(fd int, p []byte) (n int, err error) {
+ return
+ }
+
++func libc_read_trampoline()
++
++//go:linkname libc_read libc_read
++//go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Readlink(path string, buf []byte) (n int, err error) {
+@@ -1116,7 +1724,7 @@ func Readlink(path string, buf []byte) (n int, err error) {
+ } else {
+ _p1 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
++ r0, _, e1 := syscall_syscall(funcPC(libc_readlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1124,6 +1732,11 @@ func Readlink(path string, buf []byte) (n int, err error) {
+ return
+ }
+
++func libc_readlink_trampoline()
++
++//go:linkname libc_readlink libc_readlink
++//go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+@@ -1138,7 +1751,7 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ } else {
+ _p1 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
++ r0, _, e1 := syscall_syscall6(funcPC(libc_readlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1146,6 +1759,11 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ return
+ }
+
++func libc_readlinkat_trampoline()
++
++//go:linkname libc_readlinkat libc_readlinkat
++//go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Rename(from string, to string) (err error) {
+@@ -1159,13 +1777,18 @@ func Rename(from string, to string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_rename_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_rename_trampoline()
++
++//go:linkname libc_rename libc_rename
++//go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Renameat(fromfd int, from string, tofd int, to string) (err error) {
+@@ -1179,13 +1802,18 @@ func Renameat(fromfd int, from string, tofd int, to string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)
++ _, _, e1 := syscall_syscall6(funcPC(libc_renameat_trampoline), uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_renameat_trampoline()
++
++//go:linkname libc_renameat libc_renameat
++//go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Revoke(path string) (err error) {
+@@ -1194,13 +1822,18 @@ func Revoke(path string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_revoke_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_revoke_trampoline()
++
++//go:linkname libc_revoke libc_revoke
++//go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Rmdir(path string) (err error) {
+@@ -1209,17 +1842,22 @@ func Rmdir(path string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_rmdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_rmdir_trampoline()
++
++//go:linkname libc_rmdir libc_rmdir
++//go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+- r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
++ r0, _, e1 := syscall_syscall(funcPC(libc_lseek_trampoline), uintptr(fd), uintptr(offset), uintptr(whence))
+ newoffset = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1227,46 +1865,72 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ return
+ }
+
++func libc_lseek_trampoline()
++
++//go:linkname libc_lseek libc_lseek
++//go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+- _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ r0, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_select_trampoline()
++
++//go:linkname libc_select libc_select
++//go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setegid(egid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_setegid_trampoline), uintptr(egid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setegid_trampoline()
++
++//go:linkname libc_setegid libc_setegid
++//go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Seteuid(euid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_seteuid_trampoline), uintptr(euid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_seteuid_trampoline()
++
++//go:linkname libc_seteuid libc_seteuid
++//go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setgid(gid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setgid_trampoline), uintptr(gid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setgid_trampoline()
++
++//go:linkname libc_setgid libc_setgid
++//go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setlogin(name string) (err error) {
+@@ -1275,77 +1939,112 @@ func Setlogin(name string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_setlogin_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setlogin_trampoline()
++
++//go:linkname libc_setlogin libc_setlogin
++//go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setpgid(pid int, pgid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setpgid_trampoline), uintptr(pid), uintptr(pgid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setpgid_trampoline()
++
++//go:linkname libc_setpgid libc_setpgid
++//go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setpriority(which int, who int, prio int) (err error) {
+- _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
++ _, _, e1 := syscall_syscall(funcPC(libc_setpriority_trampoline), uintptr(which), uintptr(who), uintptr(prio))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setpriority_trampoline()
++
++//go:linkname libc_setpriority libc_setpriority
++//go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setprivexec(flag int) (err error) {
+- _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_setprivexec_trampoline), uintptr(flag), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setprivexec_trampoline()
++
++//go:linkname libc_setprivexec libc_setprivexec
++//go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setregid(rgid int, egid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setregid_trampoline), uintptr(rgid), uintptr(egid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setregid_trampoline()
++
++//go:linkname libc_setregid libc_setregid
++//go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setreuid(ruid int, euid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setreuid_trampoline), uintptr(ruid), uintptr(euid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setreuid_trampoline()
++
++//go:linkname libc_setreuid libc_setreuid
++//go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setrlimit(which int, lim *Rlimit) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_setrlimit_trampoline()
++
++//go:linkname libc_setrlimit libc_setrlimit
++//go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setsid() (pid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
++ r0, _, e1 := syscall_rawSyscall(funcPC(libc_setsid_trampoline), 0, 0, 0)
+ pid = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1353,55 +2052,40 @@ func Setsid() (pid int, err error) {
+ return
+ }
+
++func libc_setsid_trampoline()
++
++//go:linkname libc_setsid libc_setsid
++//go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Settimeofday(tp *Timeval) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_settimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_settimeofday_trampoline()
+
+-func Setuid(uid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++//go:linkname libc_settimeofday libc_settimeofday
++//go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Stat(path string, stat *Stat_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++func Setuid(uid int) (err error) {
++ _, _, e1 := syscall_rawSyscall(funcPC(libc_setuid_trampoline), uintptr(uid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_setuid_trampoline()
+
+-func Statfs(path string, stat *Statfs_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
++//go:linkname libc_setuid libc_setuid
++//go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib"
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+@@ -1416,13 +2100,18 @@ func Symlink(path string, link string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_symlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_symlink_trampoline()
++
++//go:linkname libc_symlink libc_symlink
++//go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+@@ -1436,23 +2125,33 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
++ _, _, e1 := syscall_syscall(funcPC(libc_symlinkat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_symlinkat_trampoline()
++
++//go:linkname libc_symlinkat libc_symlinkat
++//go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Sync() (err error) {
+- _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_sync_trampoline), 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_sync_trampoline()
++
++//go:linkname libc_sync libc_sync
++//go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Truncate(path string, length int64) (err error) {
+@@ -1461,21 +2160,31 @@ func Truncate(path string, length int64) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_truncate_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_truncate_trampoline()
++
++//go:linkname libc_truncate libc_truncate
++//go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Umask(newmask int) (oldmask int) {
+- r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)
++ r0, _, _ := syscall_syscall(funcPC(libc_umask_trampoline), uintptr(newmask), 0, 0)
+ oldmask = int(r0)
+ return
+ }
+
++func libc_umask_trampoline()
++
++//go:linkname libc_umask libc_umask
++//go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Undelete(path string) (err error) {
+@@ -1484,13 +2193,18 @@ func Undelete(path string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_undelete_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_undelete_trampoline()
++
++//go:linkname libc_undelete libc_undelete
++//go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Unlink(path string) (err error) {
+@@ -1499,13 +2213,18 @@ func Unlink(path string) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_unlink_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_unlink_trampoline()
++
++//go:linkname libc_unlink libc_unlink
++//go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Unlinkat(dirfd int, path string, flags int) (err error) {
+@@ -1514,13 +2233,18 @@ func Unlinkat(dirfd int, path string, flags int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
++ _, _, e1 := syscall_syscall(funcPC(libc_unlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_unlinkat_trampoline()
++
++//go:linkname libc_unlinkat libc_unlinkat
++//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Unmount(path string, flags int) (err error) {
+@@ -1529,13 +2253,18 @@ func Unmount(path string, flags int) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_unmount_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_unmount_trampoline()
++
++//go:linkname libc_unmount libc_unmount
++//go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func write(fd int, p []byte) (n int, err error) {
+@@ -1545,7 +2274,7 @@ func write(fd int, p []byte) (n int, err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
++ r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1553,10 +2282,15 @@ func write(fd int, p []byte) (n int, err error) {
+ return
+ }
+
++func libc_write_trampoline()
++
++//go:linkname libc_write libc_write
++//go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
+- r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))
++ r0, _, e1 := syscall_syscall6(funcPC(libc_mmap_trampoline), uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))
+ ret = uintptr(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1564,20 +2298,30 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (
+ return
+ }
+
++func libc_mmap_trampoline()
++
++//go:linkname libc_mmap libc_mmap
++//go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func munmap(addr uintptr, length uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
++ _, _, e1 := syscall_syscall(funcPC(libc_munmap_trampoline), uintptr(addr), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+ }
+
++func libc_munmap_trampoline()
++
++//go:linkname libc_munmap libc_munmap
++//go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
++ r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1588,7 +2332,7 @@ func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
++ r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1599,7 +2343,7 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) {
+- r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
++ r0, r1, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)
+ sec = int64(r0)
+ usec = int32(r1)
+ if e1 != 0 {
+@@ -1607,3 +2351,134 @@ func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) {
+ }
+ return
+ }
++
++func libc_gettimeofday_trampoline()
++
++//go:linkname libc_gettimeofday libc_gettimeofday
++//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstat(fd int, stat *Stat_t) (err error) {
++ _, _, e1 := syscall_syscall(funcPC(libc_fstat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fstat_trampoline()
++
++//go:linkname libc_fstat libc_fstat
++//go:cgo_import_dynamic libc_fstat fstat "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall6(funcPC(libc_fstatat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fstatat_trampoline()
++
++//go:linkname libc_fstatat libc_fstatat
++//go:cgo_import_dynamic libc_fstatat fstatat "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatfs(fd int, stat *Statfs_t) (err error) {
++ _, _, e1 := syscall_syscall(funcPC(libc_fstatfs_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_fstatfs_trampoline()
++
++//go:linkname libc_fstatfs libc_fstatfs
++//go:cgo_import_dynamic libc_fstatfs fstatfs "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {
++ r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat_trampoline), uintptr(buf), uintptr(size), uintptr(flags))
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_getfsstat_trampoline()
++
++//go:linkname libc_getfsstat libc_getfsstat
++//go:cgo_import_dynamic libc_getfsstat getfsstat "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Lstat(path string, stat *Stat_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall(funcPC(libc_lstat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_lstat_trampoline()
++
++//go:linkname libc_lstat libc_lstat
++//go:cgo_import_dynamic libc_lstat lstat "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Stat(path string, stat *Stat_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall(funcPC(libc_stat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_stat_trampoline()
++
++//go:linkname libc_stat libc_stat
++//go:cgo_import_dynamic libc_stat stat "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Statfs(path string, stat *Statfs_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := syscall_syscall(funcPC(libc_statfs_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++func libc_statfs_trampoline()
++
++//go:linkname libc_statfs libc_statfs
++//go:cgo_import_dynamic libc_statfs statfs "/usr/lib/libSystem.B.dylib"
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s
+new file mode 100644
+index 00000000..40cce1bb
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s
+@@ -0,0 +1,282 @@
++// go run mkasm_darwin.go arm64
++// Code generated by the command above; DO NOT EDIT.
++
++// +build go1.12
++
++#include "textflag.h"
++TEXT ·libc_getgroups_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getgroups(SB)
++TEXT ·libc_setgroups_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setgroups(SB)
++TEXT ·libc_wait4_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_wait4(SB)
++TEXT ·libc_accept_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_accept(SB)
++TEXT ·libc_bind_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_bind(SB)
++TEXT ·libc_connect_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_connect(SB)
++TEXT ·libc_socket_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_socket(SB)
++TEXT ·libc_getsockopt_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getsockopt(SB)
++TEXT ·libc_setsockopt_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setsockopt(SB)
++TEXT ·libc_getpeername_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getpeername(SB)
++TEXT ·libc_getsockname_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getsockname(SB)
++TEXT ·libc_shutdown_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_shutdown(SB)
++TEXT ·libc_socketpair_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_socketpair(SB)
++TEXT ·libc_recvfrom_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_recvfrom(SB)
++TEXT ·libc_sendto_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_sendto(SB)
++TEXT ·libc_recvmsg_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_recvmsg(SB)
++TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_sendmsg(SB)
++TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_kevent(SB)
++TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_utimes(SB)
++TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_futimes(SB)
++TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_poll(SB)
++TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_madvise(SB)
++TEXT ·libc_mlock_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mlock(SB)
++TEXT ·libc_mlockall_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mlockall(SB)
++TEXT ·libc_mprotect_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mprotect(SB)
++TEXT ·libc_msync_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_msync(SB)
++TEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_munlock(SB)
++TEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_munlockall(SB)
++TEXT ·libc_getattrlist_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getattrlist(SB)
++TEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_pipe(SB)
++TEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getxattr(SB)
++TEXT ·libc_fgetxattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fgetxattr(SB)
++TEXT ·libc_setxattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setxattr(SB)
++TEXT ·libc_fsetxattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fsetxattr(SB)
++TEXT ·libc_removexattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_removexattr(SB)
++TEXT ·libc_fremovexattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fremovexattr(SB)
++TEXT ·libc_listxattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_listxattr(SB)
++TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_flistxattr(SB)
++TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setattrlist(SB)
++TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fcntl(SB)
++TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_kill(SB)
++TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_ioctl(SB)
++TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_sysctl(SB)
++TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_sendfile(SB)
++TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_access(SB)
++TEXT ·libc_adjtime_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_adjtime(SB)
++TEXT ·libc_chdir_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_chdir(SB)
++TEXT ·libc_chflags_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_chflags(SB)
++TEXT ·libc_chmod_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_chmod(SB)
++TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_chown(SB)
++TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_chroot(SB)
++TEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_clock_gettime(SB)
++TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_close(SB)
++TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_dup(SB)
++TEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_dup2(SB)
++TEXT ·libc_exchangedata_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_exchangedata(SB)
++TEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_exit(SB)
++TEXT ·libc_faccessat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_faccessat(SB)
++TEXT ·libc_fchdir_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fchdir(SB)
++TEXT ·libc_fchflags_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fchflags(SB)
++TEXT ·libc_fchmod_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fchmod(SB)
++TEXT ·libc_fchmodat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fchmodat(SB)
++TEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fchown(SB)
++TEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fchownat(SB)
++TEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_flock(SB)
++TEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fpathconf(SB)
++TEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fsync(SB)
++TEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_ftruncate(SB)
++TEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getdtablesize(SB)
++TEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getegid(SB)
++TEXT ·libc_geteuid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_geteuid(SB)
++TEXT ·libc_getgid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getgid(SB)
++TEXT ·libc_getpgid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getpgid(SB)
++TEXT ·libc_getpgrp_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getpgrp(SB)
++TEXT ·libc_getpid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getpid(SB)
++TEXT ·libc_getppid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getppid(SB)
++TEXT ·libc_getpriority_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getpriority(SB)
++TEXT ·libc_getrlimit_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getrlimit(SB)
++TEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getrusage(SB)
++TEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getsid(SB)
++TEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getuid(SB)
++TEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_issetugid(SB)
++TEXT ·libc_kqueue_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_kqueue(SB)
++TEXT ·libc_lchown_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_lchown(SB)
++TEXT ·libc_link_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_link(SB)
++TEXT ·libc_linkat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_linkat(SB)
++TEXT ·libc_listen_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_listen(SB)
++TEXT ·libc_mkdir_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mkdir(SB)
++TEXT ·libc_mkdirat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mkdirat(SB)
++TEXT ·libc_mkfifo_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mkfifo(SB)
++TEXT ·libc_mknod_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mknod(SB)
++TEXT ·libc_open_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_open(SB)
++TEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_openat(SB)
++TEXT ·libc_pathconf_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_pathconf(SB)
++TEXT ·libc_pread_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_pread(SB)
++TEXT ·libc_pwrite_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_pwrite(SB)
++TEXT ·libc_read_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_read(SB)
++TEXT ·libc_readlink_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_readlink(SB)
++TEXT ·libc_readlinkat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_readlinkat(SB)
++TEXT ·libc_rename_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_rename(SB)
++TEXT ·libc_renameat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_renameat(SB)
++TEXT ·libc_revoke_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_revoke(SB)
++TEXT ·libc_rmdir_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_rmdir(SB)
++TEXT ·libc_lseek_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_lseek(SB)
++TEXT ·libc_select_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_select(SB)
++TEXT ·libc_setegid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setegid(SB)
++TEXT ·libc_seteuid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_seteuid(SB)
++TEXT ·libc_setgid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setgid(SB)
++TEXT ·libc_setlogin_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setlogin(SB)
++TEXT ·libc_setpgid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setpgid(SB)
++TEXT ·libc_setpriority_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setpriority(SB)
++TEXT ·libc_setprivexec_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setprivexec(SB)
++TEXT ·libc_setregid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setregid(SB)
++TEXT ·libc_setreuid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setreuid(SB)
++TEXT ·libc_setrlimit_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setrlimit(SB)
++TEXT ·libc_setsid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setsid(SB)
++TEXT ·libc_settimeofday_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_settimeofday(SB)
++TEXT ·libc_setuid_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_setuid(SB)
++TEXT ·libc_symlink_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_symlink(SB)
++TEXT ·libc_symlinkat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_symlinkat(SB)
++TEXT ·libc_sync_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_sync(SB)
++TEXT ·libc_truncate_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_truncate(SB)
++TEXT ·libc_umask_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_umask(SB)
++TEXT ·libc_undelete_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_undelete(SB)
++TEXT ·libc_unlink_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_unlink(SB)
++TEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_unlinkat(SB)
++TEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_unmount(SB)
++TEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_write(SB)
++TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_mmap(SB)
++TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_munmap(SB)
++TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_gettimeofday(SB)
++TEXT ·libc_fstat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fstat(SB)
++TEXT ·libc_fstatat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fstatat(SB)
++TEXT ·libc_fstatfs_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_fstatfs(SB)
++TEXT ·libc_getfsstat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_getfsstat(SB)
++TEXT ·libc_lstat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_lstat(SB)
++TEXT ·libc_stat_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_stat(SB)
++TEXT ·libc_statfs_trampoline(SB),NOSPLIT,$0-0
++ JMP libc_statfs(SB)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go
+index 7fa205cd..fe1fdd78 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -dragonfly -tags dragonfly,amd64 syscall_bsd.go syscall_dragonfly.go syscall_dragonfly_amd64.go
++// go run mksyscall.go -dragonfly -tags dragonfly,amd64 syscall_bsd.go syscall_dragonfly.go syscall_dragonfly_amd64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build dragonfly,amd64
+@@ -255,9 +255,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -412,6 +412,33 @@ func extpwrite(fd int, p []byte, flags int, offset int64) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Getcwd(buf []byte) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(buf) > 0 {
++ _p0 = unsafe.Pointer(&buf[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ioctl(fd int, req uint, arg uintptr) (err error) {
++ _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Access(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -550,6 +577,21 @@ func Exit(code int) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fchdir(fd int) (err error) {
+ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+ if e1 != 0 {
+@@ -580,6 +622,21 @@ func Fchmod(fd int, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fchown(fd int, uid int, gid int) (err error) {
+ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+@@ -590,6 +647,21 @@ func Fchown(fd int, uid int, gid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Flock(fd int, how int) (err error) {
+ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+ if e1 != 0 {
+@@ -621,6 +693,21 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fstatfs(fd int, stat *Statfs_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+@@ -651,6 +738,23 @@ func Ftruncate(fd int, length int64) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Getdents(fd int, buf []byte) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(buf) > 0 {
++ _p0 = unsafe.Pointer(&buf[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+@@ -859,6 +963,26 @@ func Link(path string, link string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(link)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Listen(s int, backlog int) (err error) {
+ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
+ if e1 != 0 {
+@@ -899,6 +1023,21 @@ func Mkdir(path string, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Mkdirat(dirfd int, path string, mode uint32) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mkfifo(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -929,6 +1068,21 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Mknodat(fd int, path string, mode uint32, dev int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+ if e1 != 0 {
+@@ -955,6 +1109,22 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
++ fd = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Pathconf(path string, name int) (val int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1030,6 +1200,26 @@ func Rename(from string, to string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Renameat(fromfd int, from string, tofd int, to string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(from)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(to)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Revoke(path string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1071,8 +1261,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+- _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1277,6 +1468,26 @@ func Symlink(path string, link string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(oldpath)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(newpath)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Sync() (err error) {
+ _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
+ if e1 != 0 {
+@@ -1340,6 +1551,21 @@ func Unlink(path string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Unlinkat(dirfd int, path string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Unmount(path string, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go
+index 1a0bb4cb..600f1d26 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -l32 -tags freebsd,386 syscall_bsd.go syscall_freebsd.go syscall_freebsd_386.go
++// go run mksyscall.go -l32 -tags freebsd,386 syscall_bsd.go syscall_freebsd.go syscall_freebsd_386.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build freebsd,386
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+- var _p0 unsafe.Pointer
+- if len(mib) > 0 {
+- _p0 = unsafe.Pointer(&mib[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func utimes(path string, timeval *[2]Timeval) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -366,10 +350,25 @@ func Munlockall() (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func pipe() (r int, w int, err error) {
+- r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
+- r = int(r0)
+- w = int(r1)
++func pipe2(p *[2]_C_int, flags int) (err error) {
++ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getcwd(buf []byte) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(buf) > 0 {
++ _p0 = unsafe.Pointer(&buf[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -388,6 +387,32 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
++ var _p0 unsafe.Pointer
++ if len(mib) > 0 {
++ _p0 = unsafe.Pointer(&mib[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ptrace(request int, pid int, addr uintptr, data int) (err error) {
++ _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Access(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -886,7 +911,7 @@ func Fpathconf(fd int, name int) (val int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fstat(fd int, stat *Stat_t) (err error) {
++func fstat(fd int, stat *stat_freebsd11_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -896,7 +921,47 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fstatfs(fd int, stat *Statfs_t) (err error) {
++func fstat_freebsd12(fd int, stat *Stat_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSTATAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fstatfs(fd int, stat *statfs_freebsd11_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -906,6 +971,16 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func fstatfs_freebsd12(fd int, stat *Statfs_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTATFS_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fsync(fd int) (err error) {
+ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+ if e1 != 0 {
+@@ -926,7 +1001,7 @@ func Ftruncate(fd int, length int64) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
++func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+@@ -943,6 +1018,23 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(buf) > 0 {
++ _p0 = unsafe.Pointer(&buf[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall6(SYS_GETDIRENTRIES_FREEBSD12, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getdtablesize() (size int) {
+ r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
+ size = int(r0)
+@@ -1164,7 +1256,7 @@ func Listen(s int, backlog int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Lstat(path string, stat *Stat_t) (err error) {
++func lstat(path string, stat *stat_freebsd11_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+@@ -1224,7 +1316,7 @@ func Mkfifo(path string, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Mknod(path string, mode uint32, dev int) (err error) {
++func mknod(path string, mode uint32, dev int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+@@ -1239,6 +1331,36 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func mknodat(fd int, path string, mode uint32, dev int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), uintptr(dev>>32), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+ if e1 != 0 {
+@@ -1473,8 +1595,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+- _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1629,7 +1752,7 @@ func Setuid(uid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Stat(path string, stat *Stat_t) (err error) {
++func stat(path string, stat *stat_freebsd11_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+@@ -1644,7 +1767,7 @@ func Stat(path string, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Statfs(path string, stat *Statfs_t) (err error) {
++func statfs(path string, stat *statfs_freebsd11_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+@@ -1659,6 +1782,21 @@ func Statfs(path string, stat *Statfs_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func statfs_freebsd12(path string, stat *Statfs_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_STATFS_FREEBSD12, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Symlink(path string, link string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go
+index ac1e8e01..064934b0 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -tags freebsd,amd64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_amd64.go
++// go run mksyscall.go -tags freebsd,amd64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_amd64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build freebsd,amd64
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+- var _p0 unsafe.Pointer
+- if len(mib) > 0 {
+- _p0 = unsafe.Pointer(&mib[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func utimes(path string, timeval *[2]Timeval) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -366,10 +350,25 @@ func Munlockall() (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func pipe() (r int, w int, err error) {
+- r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
+- r = int(r0)
+- w = int(r1)
++func pipe2(p *[2]_C_int, flags int) (err error) {
++ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getcwd(buf []byte) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(buf) > 0 {
++ _p0 = unsafe.Pointer(&buf[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -388,6 +387,32 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
++ var _p0 unsafe.Pointer
++ if len(mib) > 0 {
++ _p0 = unsafe.Pointer(&mib[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ptrace(request int, pid int, addr uintptr, data int) (err error) {
++ _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Access(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -886,7 +911,7 @@ func Fpathconf(fd int, name int) (val int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fstat(fd int, stat *Stat_t) (err error) {
++func fstat(fd int, stat *stat_freebsd11_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -896,7 +921,47 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fstatfs(fd int, stat *Statfs_t) (err error) {
++func fstat_freebsd12(fd int, stat *Stat_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSTATAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fstatfs(fd int, stat *statfs_freebsd11_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -906,6 +971,16 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func fstatfs_freebsd12(fd int, stat *Statfs_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTATFS_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fsync(fd int) (err error) {
+ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+ if e1 != 0 {
+@@ -926,7 +1001,7 @@ func Ftruncate(fd int, length int64) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
++func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+@@ -943,6 +1018,23 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(buf) > 0 {
++ _p0 = unsafe.Pointer(&buf[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall6(SYS_GETDIRENTRIES_FREEBSD12, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getdtablesize() (size int) {
+ r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
+ size = int(r0)
+@@ -1164,7 +1256,7 @@ func Listen(s int, backlog int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Lstat(path string, stat *Stat_t) (err error) {
++func lstat(path string, stat *stat_freebsd11_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+@@ -1224,7 +1316,7 @@ func Mkfifo(path string, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Mknod(path string, mode uint32, dev int) (err error) {
++func mknod(path string, mode uint32, dev int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+@@ -1239,6 +1331,36 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func mknodat(fd int, path string, mode uint32, dev int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+ if e1 != 0 {
+@@ -1473,8 +1595,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+- _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1629,7 +1752,7 @@ func Setuid(uid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Stat(path string, stat *Stat_t) (err error) {
++func stat(path string, stat *stat_freebsd11_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+@@ -1644,7 +1767,7 @@ func Stat(path string, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Statfs(path string, stat *Statfs_t) (err error) {
++func statfs(path string, stat *statfs_freebsd11_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+@@ -1659,6 +1782,21 @@ func Statfs(path string, stat *Statfs_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func statfs_freebsd12(path string, stat *Statfs_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_STATFS_FREEBSD12, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Symlink(path string, link string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go
+index 2b4e6acf..31d2c461 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -l32 -arm -tags freebsd,arm syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm.go
++// go run mksyscall.go -l32 -arm -tags freebsd,arm syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build freebsd,arm
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+- var _p0 unsafe.Pointer
+- if len(mib) > 0 {
+- _p0 = unsafe.Pointer(&mib[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func utimes(path string, timeval *[2]Timeval) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -366,10 +350,41 @@ func Munlockall() (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func pipe() (r int, w int, err error) {
+- r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
+- r = int(r0)
+- w = int(r1)
++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
++ var _p0 unsafe.Pointer
++ if len(mib) > 0 {
++ _p0 = unsafe.Pointer(&mib[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func pipe2(p *[2]_C_int, flags int) (err error) {
++ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getcwd(buf []byte) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(buf) > 0 {
++ _p0 = unsafe.Pointer(&buf[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -388,6 +403,16 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func ptrace(request int, pid int, addr uintptr, data int) (err error) {
++ _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Access(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -886,7 +911,7 @@ func Fpathconf(fd int, name int) (val int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fstat(fd int, stat *Stat_t) (err error) {
++func fstat(fd int, stat *stat_freebsd11_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -896,7 +921,47 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fstatfs(fd int, stat *Statfs_t) (err error) {
++func fstat_freebsd12(fd int, stat *Stat_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSTATAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fstatfs(fd int, stat *statfs_freebsd11_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -906,6 +971,16 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func fstatfs_freebsd12(fd int, stat *Statfs_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTATFS_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fsync(fd int) (err error) {
+ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+ if e1 != 0 {
+@@ -926,7 +1001,7 @@ func Ftruncate(fd int, length int64) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
++func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+@@ -943,6 +1018,23 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(buf) > 0 {
++ _p0 = unsafe.Pointer(&buf[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall6(SYS_GETDIRENTRIES_FREEBSD12, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getdtablesize() (size int) {
+ r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
+ size = int(r0)
+@@ -1164,7 +1256,7 @@ func Listen(s int, backlog int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Lstat(path string, stat *Stat_t) (err error) {
++func lstat(path string, stat *stat_freebsd11_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+@@ -1224,7 +1316,7 @@ func Mkfifo(path string, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Mknod(path string, mode uint32, dev int) (err error) {
++func mknod(path string, mode uint32, dev int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+@@ -1239,6 +1331,36 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func mknodat(fd int, path string, mode uint32, dev int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+ if e1 != 0 {
+@@ -1473,8 +1595,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+- _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1629,7 +1752,7 @@ func Setuid(uid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Stat(path string, stat *Stat_t) (err error) {
++func stat(path string, stat *stat_freebsd11_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+@@ -1644,7 +1767,7 @@ func Stat(path string, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Statfs(path string, stat *Statfs_t) (err error) {
++func statfs(path string, stat *statfs_freebsd11_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+@@ -1659,6 +1782,21 @@ func Statfs(path string, stat *Statfs_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func statfs_freebsd12(path string, stat *Statfs_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_STATFS_FREEBSD12, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Symlink(path string, link string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go
+similarity index 90%
+copy from vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go
+copy to vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go
+index ac1e8e01..4adaaa56 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go
+@@ -1,7 +1,7 @@
+-// mksyscall.pl -tags freebsd,amd64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_amd64.go
++// go run mksyscall.go -tags freebsd,arm64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+-// +build freebsd,amd64
++// +build freebsd,arm64
+
+ package unix
+
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+- var _p0 unsafe.Pointer
+- if len(mib) > 0 {
+- _p0 = unsafe.Pointer(&mib[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func utimes(path string, timeval *[2]Timeval) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -366,10 +350,25 @@ func Munlockall() (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func pipe() (r int, w int, err error) {
+- r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
+- r = int(r0)
+- w = int(r1)
++func pipe2(p *[2]_C_int, flags int) (err error) {
++ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getcwd(buf []byte) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(buf) > 0 {
++ _p0 = unsafe.Pointer(&buf[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -388,6 +387,32 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
++ var _p0 unsafe.Pointer
++ if len(mib) > 0 {
++ _p0 = unsafe.Pointer(&mib[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ptrace(request int, pid int, addr uintptr, data int) (err error) {
++ _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Access(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -886,7 +911,7 @@ func Fpathconf(fd int, name int) (val int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fstat(fd int, stat *Stat_t) (err error) {
++func fstat(fd int, stat *stat_freebsd11_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -896,7 +921,47 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fstatfs(fd int, stat *Statfs_t) (err error) {
++func fstat_freebsd12(fd int, stat *Stat_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSTATAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fstatfs(fd int, stat *statfs_freebsd11_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -906,6 +971,16 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func fstatfs_freebsd12(fd int, stat *Statfs_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTATFS_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fsync(fd int) (err error) {
+ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+ if e1 != 0 {
+@@ -926,7 +1001,7 @@ func Ftruncate(fd int, length int64) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
++func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+@@ -943,6 +1018,23 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(buf) > 0 {
++ _p0 = unsafe.Pointer(&buf[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall6(SYS_GETDIRENTRIES_FREEBSD12, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getdtablesize() (size int) {
+ r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
+ size = int(r0)
+@@ -1164,7 +1256,7 @@ func Listen(s int, backlog int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Lstat(path string, stat *Stat_t) (err error) {
++func lstat(path string, stat *stat_freebsd11_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+@@ -1224,7 +1316,7 @@ func Mkfifo(path string, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Mknod(path string, mode uint32, dev int) (err error) {
++func mknod(path string, mode uint32, dev int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+@@ -1239,6 +1331,36 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func mknodat(fd int, path string, mode uint32, dev int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+ if e1 != 0 {
+@@ -1473,8 +1595,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+- _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1629,7 +1752,7 @@ func Setuid(uid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Stat(path string, stat *Stat_t) (err error) {
++func stat(path string, stat *stat_freebsd11_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+@@ -1644,7 +1767,7 @@ func Stat(path string, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Statfs(path string, stat *Statfs_t) (err error) {
++func statfs(path string, stat *statfs_freebsd11_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+@@ -1659,6 +1782,21 @@ func Statfs(path string, stat *Statfs_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func statfs_freebsd12(path string, stat *Statfs_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_STATFS_FREEBSD12, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Symlink(path string, link string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go
+new file mode 100644
+index 00000000..92efa1da
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go
+@@ -0,0 +1,87 @@
++// go run mksyscall_solaris.go -illumos -tags illumos,amd64 syscall_illumos.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build illumos,amd64
++
++package unix
++
++import (
++ "unsafe"
++)
++
++//go:cgo_import_dynamic libc_readv readv "libc.so"
++//go:cgo_import_dynamic libc_preadv preadv "libc.so"
++//go:cgo_import_dynamic libc_writev writev "libc.so"
++//go:cgo_import_dynamic libc_pwritev pwritev "libc.so"
++
++//go:linkname procreadv libc_readv
++//go:linkname procpreadv libc_preadv
++//go:linkname procwritev libc_writev
++//go:linkname procpwritev libc_pwritev
++
++var (
++ procreadv,
++ procpreadv,
++ procwritev,
++ procpwritev syscallFunc
++)
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func readv(fd int, iovs []Iovec) (n int, err error) {
++ var _p0 *Iovec
++ if len(iovs) > 0 {
++ _p0 = &iovs[0]
++ }
++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procreadv)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = e1
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func preadv(fd int, iovs []Iovec, off int64) (n int, err error) {
++ var _p0 *Iovec
++ if len(iovs) > 0 {
++ _p0 = &iovs[0]
++ }
++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpreadv)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = e1
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func writev(fd int, iovs []Iovec) (n int, err error) {
++ var _p0 *Iovec
++ if len(iovs) > 0 {
++ _p0 = &iovs[0]
++ }
++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwritev)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = e1
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func pwritev(fd int, iovs []Iovec, off int64) (n int, err error) {
++ var _p0 *Iovec
++ if len(iovs) > 0 {
++ _p0 = &iovs[0]
++ }
++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpwritev)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = e1
++ }
++ return
++}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_linux.go
+similarity index 79%
+copy from vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go
+copy to vendor/golang.org/x/sys/unix/zsyscall_linux.go
+index b6ff9e39..fd2dae8e 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux.go
+@@ -1,7 +1,6 @@
+-// mksyscall.pl -tags linux,s390x syscall_linux.go syscall_linux_s390x.go
+-// Code generated by the command above; see README.md. DO NOT EDIT.
++// Code generated by mkmerge.go; DO NOT EDIT.
+
+-// +build linux,s390x
++// +build linux
+
+ package unix
+
+@@ -10,7 +9,16 @@ import (
+ "unsafe"
+ )
+
+-var _ syscall.Errno
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
++ r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)
++ fd = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+@@ -143,21 +151,6 @@ func Unlinkat(dirfd int, path string, flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func utimes(path string, times *[2]Timeval) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -173,16 +166,6 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) {
+- _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func Getcwd(buf []byte) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+@@ -309,6 +292,36 @@ func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(keyType)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(restriction)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func keyctlRestrictKeyring(cmd int, arg2 int) (err error) {
++ _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+ _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
+ if e1 != 0 {
+@@ -412,6 +425,26 @@ func Adjtimex(buf *Timex) (state int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Capget(hdr *CapUserHeader, data *CapUserData) (err error) {
++ _, _, e1 := RawSyscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Capset(hdr *CapUserHeader, data *CapUserData) (err error) {
++ _, _, e1 := RawSyscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Chdir(path string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -442,6 +475,16 @@ func Chroot(path string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func ClockGetres(clockid int32, res *Timespec) (err error) {
++ _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func ClockGettime(clockid int32, time *Timespec) (err error) {
+ _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)
+ if e1 != 0 {
+@@ -452,6 +495,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {
++ _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Close(fd int) (err error) {
+ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+ if e1 != 0 {
+@@ -473,9 +526,13 @@ func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags in
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Dup(oldfd int) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)
+- fd = int(r0)
++func DeleteModule(name string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(name)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -484,8 +541,9 @@ func Dup(oldfd int) (fd int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Dup3(oldfd int, newfd int, flags int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))
++func Dup(oldfd int) (fd int, err error) {
++ r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)
++ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -494,9 +552,8 @@ func Dup3(oldfd int, newfd int, flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func EpollCreate(size int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)
+- fd = int(r0)
++func Dup3(oldfd int, newfd int, flags int) (err error) {
++ _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -538,19 +595,14 @@ func Eventfd(initval uint, flags int) (fd int, err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Exit(code int) {
+- Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0)
++ SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0)
+ return
+ }
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++func Fchdir(fd int) (err error) {
++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -559,8 +611,8 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
+- _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)
++func Fchmod(fd int, mode uint32) (err error) {
++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -569,8 +621,13 @@ func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fchdir(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
++func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -579,8 +636,8 @@ func Fchdir(fd int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fchmod(fd int, mode uint32) (err error) {
+- _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
++func Fdatasync(fd int) (err error) {
++ _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -589,13 +646,20 @@ func Fchmod(fd int, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
++func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {
+ var _p0 *byte
+- _p0, err = BytePtrFromString(path)
++ _p0, err = BytePtrFromString(attr)
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
++ var _p1 unsafe.Pointer
++ if len(dest) > 0 {
++ _p1 = unsafe.Pointer(&dest[0])
++ } else {
++ _p1 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0)
++ sz = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -604,9 +668,13 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
++func FinitModule(fd int, params string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(params)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -615,8 +683,15 @@ func fcntl(fd int, cmd int, arg int) (val int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fdatasync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
++func Flistxattr(fd int, dest []byte) (sz int, err error) {
++ var _p0 unsafe.Pointer
++ if len(dest) > 0 {
++ _p0 = unsafe.Pointer(&dest[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest)))
++ sz = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -635,6 +710,42 @@ func Flock(fd int, how int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Fremovexattr(fd int, attr string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attr)
++ if err != nil {
++ return
++ }
++ var _p1 unsafe.Pointer
++ if len(dest) > 0 {
++ _p1 = unsafe.Pointer(&dest[0])
++ } else {
++ _p1 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fsync(fd int) (err error) {
+ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+ if e1 != 0 {
+@@ -674,7 +785,7 @@ func Getpgid(pid int) (pgid int, err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getpid() (pid int) {
+- r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0)
+ pid = int(r0)
+ return
+ }
+@@ -682,7 +793,7 @@ func Getpid() (pid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getppid() (ppid int) {
+- r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0)
+ ppid = int(r0)
+ return
+ }
+@@ -739,7 +850,7 @@ func Getsid(pid int) (sid int, err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Gettid() (tid int) {
+- r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0)
+ tid = int(r0)
+ return
+ }
+@@ -773,6 +884,27 @@ func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func InitModule(moduleImage []byte, params string) (err error) {
++ var _p0 unsafe.Pointer
++ if len(moduleImage) > 0 {
++ _p0 = unsafe.Pointer(&moduleImage[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(params)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(pathname)
+@@ -955,6 +1087,22 @@ func Lsetxattr(path string, attr string, data []byte, flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func MemfdCreate(name string, flags int) (fd int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(name)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++ fd = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -995,6 +1143,17 @@ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {
++ r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)
++ fd = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func PivotRoot(newroot string, putold string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(newroot)
+@@ -1035,6 +1194,17 @@ func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
++ r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)))
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func read(fd int, p []byte) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+@@ -1072,7 +1242,7 @@ func Removexattr(path string, attr string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
++func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(oldpath)
+ if err != nil {
+@@ -1083,7 +1253,7 @@ func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err e
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
++ _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1227,15 +1397,24 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Sync() {
+- Syscall(SYS_SYNC, 0, 0, 0)
++func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) {
++ r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0)
++ newfd = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
+ return
+ }
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Syncfs(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)
++func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1244,8 +1423,15 @@ func Syncfs(fd int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Sysinfo(info *Sysinfo_t) (err error) {
+- _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)
++func Sync() {
++ SyscallNoError(SYS_SYNC, 0, 0, 0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Syncfs(fd int) (err error) {
++ _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1254,9 +1440,8 @@ func Sysinfo(info *Sysinfo_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
+- r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)
+- n = int64(r0)
++func Sysinfo(info *Sysinfo_t) (err error) {
++ _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1287,7 +1472,7 @@ func Times(tms *Tms) (ticks uintptr, err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Umask(mask int) (oldmask int) {
+- r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0)
++ r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0)
+ oldmask = int(r0)
+ return
+ }
+@@ -1329,16 +1514,6 @@ func Unshare(flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Ustat(dev int, ubuf *Ustat_t) (err error) {
+- _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func write(fd int, p []byte) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+@@ -1388,24 +1563,15 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func munmap(addr uintptr, length uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Madvise(b []byte, advice int) (err error) {
++func readv(fd int, iovs []Iovec) (n int, err error) {
+ var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
++ if len(iovs) > 0 {
++ _p0 = unsafe.Pointer(&iovs[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))
++ r0, _, e1 := Syscall(SYS_READV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1414,14 +1580,15 @@ func Madvise(b []byte, advice int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Mprotect(b []byte, prot int) (err error) {
++func writev(fd int, iovs []Iovec) (n int, err error) {
+ var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
++ if len(iovs) > 0 {
++ _p0 = unsafe.Pointer(&iovs[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
++ r0, _, e1 := Syscall(SYS_WRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1430,14 +1597,15 @@ func Mprotect(b []byte, prot int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Mlock(b []byte) (err error) {
++func preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
+ var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
++ if len(iovs) > 0 {
++ _p0 = unsafe.Pointer(&iovs[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
++ r0, _, e1 := Syscall6(SYS_PREADV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1446,24 +1614,15 @@ func Mlock(b []byte) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Munlock(b []byte) (err error) {
++func pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
+ var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
++ if len(iovs) > 0 {
++ _p0 = unsafe.Pointer(&iovs[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mlockall(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
++ r0, _, e1 := Syscall6(SYS_PWRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1472,34 +1631,15 @@ func Mlockall(flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Msync(b []byte, flags int) (err error) {
++func preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
+ var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
++ if len(iovs) > 0 {
++ _p0 = unsafe.Pointer(&iovs[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Munlockall() (err error) {
+- _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup2(oldfd int, newfd int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
++ r0, _, e1 := Syscall6(SYS_PREADV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1508,14 +1648,14 @@ func Dup2(oldfd int, newfd int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
++func pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
+ var _p0 unsafe.Pointer
+- if len(events) > 0 {
+- _p0 = unsafe.Pointer(&events[0])
++ if len(iovs) > 0 {
++ _p0 = unsafe.Pointer(&iovs[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
++ r0, _, e1 := Syscall6(SYS_PWRITEV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1525,141 +1665,8 @@ func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
+- _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchown(fd int, uid int, gid int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fstat(fd int, stat *Stat_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fstatfs(fd int, buf *Statfs_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Ftruncate(fd int, length int64) (err error) {
+- _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getegid() (egid int) {
+- r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+- egid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Geteuid() (euid int) {
+- r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+- euid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getgid() (gid int) {
+- r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+- gid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getrlimit(resource int, rlim *Rlimit) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getuid() (uid int) {
+- r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+- uid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyInit() (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lchown(path string, uid int, gid int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lstat(path string, stat *Stat_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Pause() (err error) {
+- _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
++func munmap(addr uintptr, length uintptr) (err error) {
++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1668,15 +1675,14 @@ func Pause() (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Pread(fd int, p []byte, offset int64) (n int, err error) {
++func Madvise(b []byte, advice int) (err error) {
+ var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
++ if len(b) > 0 {
++ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+- n = int(r0)
++ _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1685,58 +1691,14 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
++func Mprotect(b []byte, prot int) (err error) {
+ var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
++ if len(b) > 0 {
++ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Seek(fd int, offset int64, whence int) (off int64, err error) {
+- r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+- off = int64(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+- r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
+- written = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setfsgid(gid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1745,18 +1707,14 @@ func Setfsgid(gid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setfsuid(uid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
++func Mlock(b []byte) (err error) {
++ var _p0 unsafe.Pointer
++ if len(b) > 0 {
++ _p0 = unsafe.Pointer(&b[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
+ }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setregid(rgid int, egid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1765,8 +1723,8 @@ func Setregid(rgid int, egid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setresgid(rgid int, egid int, sgid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
++func Mlockall(flags int) (err error) {
++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1775,18 +1733,14 @@ func Setresgid(rgid int, egid int, sgid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setresuid(ruid int, euid int, suid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+- if e1 != 0 {
+- err = errnoErr(e1)
++func Msync(b []byte, flags int) (err error) {
++ var _p0 unsafe.Pointer
++ if len(b) > 0 {
++ _p0 = unsafe.Pointer(&b[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
+ }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setrlimit(resource int, rlim *Rlimit) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
++ _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1795,19 +1749,14 @@ func Setrlimit(resource int, rlim *Rlimit) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setreuid(ruid int, euid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
++func Munlock(b []byte) (err error) {
++ var _p0 unsafe.Pointer
++ if len(b) > 0 {
++ _p0 = unsafe.Pointer(&b[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
+ }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
+- r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+- n = int64(r0)
++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1816,13 +1765,8 @@ func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n i
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Stat(path string, stat *Stat_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++func Munlockall() (err error) {
++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1831,13 +1775,13 @@ func Stat(path string, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Statfs(path string, buf *Statfs_t) (err error) {
++func faccessat(dirfd int, path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
++ _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1846,23 +1790,13 @@ func Statfs(path string, buf *Statfs_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func SyncFileRange(fd int, off int64, n int64, flags int) (err error) {
+- _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Truncate(path string, length int64) (err error) {
++func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) {
+ var _p0 *byte
+- _p0, err = BytePtrFromString(path)
++ _p0, err = BytePtrFromString(pathname)
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
++ _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1871,44 +1805,9 @@ func Truncate(path string, length int64) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func getgroups(n int, list *_Gid_t) (nn int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+- nn = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func setgroups(n int, list *_Gid_t) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Gettimeofday(tv *Timeval) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Utime(path string, buf *Utimbuf) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
++func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) {
++ r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags))
++ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1924,14 +1823,3 @@ func pipe2(p *[2]_C_int, flags int) (err error) {
+ }
+ return
+ }
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go
+index 38c1bbdf..ba63af7b 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -l32 -tags linux,386 syscall_linux.go syscall_linux_386.go
++// go run mksyscall.go -l32 -tags linux,386 syscall_linux.go syscall_linux_386.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build linux,386
+@@ -14,1259 +14,8 @@ var _ syscall.Errno
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fchmodat(dirfd int, path string, mode uint32) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ioctl(fd int, req uint, arg uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(buf) > 0 {
+- _p1 = unsafe.Pointer(&buf[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unlinkat(dirfd int, path string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func utimes(path string, times *[2]Timeval) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) {
+- _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getcwd(buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+- r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+- wpid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlJoin(cmd int, arg2 string) (ret int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg2)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg3)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(arg4)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(payload) > 0 {
+- _p0 = unsafe.Pointer(&payload[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(source)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(target)
+- if err != nil {
+- return
+- }
+- var _p2 *byte
+- _p2, err = BytePtrFromString(fstype)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Acct(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(keyType)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(description)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(payload) > 0 {
+- _p2 = unsafe.Pointer(&payload[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)
+- id = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Adjtimex(buf *Timex) (state int, err error) {
+- r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)
+- state = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Chdir(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Chroot(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ClockGettime(clockid int32, time *Timespec) (err error) {
+- _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Close(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup(oldfd int) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup3(oldfd int, newfd int, flags int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCreate(size int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCreate1(flag int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {
+- _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Eventfd(initval uint, flags int) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Exit(code int) {
+- Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
+- _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchdir(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchmod(fd int, mode uint32) (err error) {
+- _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fdatasync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Flock(fd int, how int) (err error) {
+- _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fsync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getdents(fd int, buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpgid(pid int) (pgid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+- pgid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpid() (pid int) {
+- r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+- pid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getppid() (ppid int) {
+- r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+- ppid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpriority(which int, who int) (prio int, err error) {
+- r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+- prio = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getrandom(buf []byte, flags int) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getrusage(who int, rusage *Rusage) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getsid(pid int) (sid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+- sid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Gettid() (tid int) {
+- r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0)
+- tid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(dest) > 0 {
+- _p2 = unsafe.Pointer(&dest[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(pathname)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))
+- watchdesc = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyInit1(flags int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {
+- r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)
+- success = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Kill(pid int, sig syscall.Signal) (err error) {
+- _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Klogctl(typ int, buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(dest) > 0 {
+- _p2 = unsafe.Pointer(&dest[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Listxattr(path string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(dest) > 0 {
+- _p1 = unsafe.Pointer(&dest[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Llistxattr(path string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(dest) > 0 {
+- _p1 = unsafe.Pointer(&dest[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lremovexattr(path string, attr string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lsetxattr(path string, attr string, data []byte, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(data) > 0 {
+- _p2 = unsafe.Pointer(&data[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+- _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func PivotRoot(newroot string, putold string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(newroot)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(putold)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
+- _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func read(fd int, p []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Removexattr(path string, attr string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(keyType)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(description)
+- if err != nil {
+- return
+- }
+- var _p2 *byte
+- _p2, err = BytePtrFromString(callback)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)
+- id = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setdomainname(p []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sethostname(p []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setpgid(pid int, pgid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setsid() (pid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+- pid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Settimeofday(tv *Timeval) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setns(fd int, nstype int) (err error) {
+- _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setpriority(which int, who int, prio int) (err error) {
+- _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setxattr(path string, attr string, data []byte, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(data) > 0 {
+- _p2 = unsafe.Pointer(&data[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sync() {
+- Syscall(SYS_SYNC, 0, 0, 0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Syncfs(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sysinfo(info *Sysinfo_t) (err error) {
+- _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
+- r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)
+- n = int64(int64(r1)<<32 | int64(r0))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {
+- _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))
++func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
++ _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1275,9 +24,8 @@ func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Times(tms *Tms) (ticks uintptr, err error) {
+- r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)
+- ticks = uintptr(r0)
++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
++ _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1286,16 +34,9 @@ func Times(tms *Tms) (ticks uintptr, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Umask(mask int) (oldmask int) {
+- r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0)
+- oldmask = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Uname(buf *Utsname) (err error) {
+- _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)
++func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
++ r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)
++ n = int64(int64(r1)<<32 | int64(r0))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1304,13 +45,8 @@ func Uname(buf *Utsname) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Unmount(target string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(target)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++func pipe(p *[2]_C_int) (err error) {
++ _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1319,8 +55,8 @@ func Unmount(target string, flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Unshare(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)
++func Dup2(oldfd int, newfd int) (err error) {
++ _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1329,8 +65,9 @@ func Unshare(flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Ustat(dev int, ubuf *Ustat_t) (err error) {
+- _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
++func EpollCreate(size int) (fd int, err error) {
++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)
++ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1339,46 +76,14 @@ func Ustat(dev int, ubuf *Ustat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func write(fd int, p []byte) (n int, err error) {
++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
++ if len(events) > 0 {
++ _p0 = unsafe.Pointer(&events[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func exitThread(code int) (err error) {
+- _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func readlen(fd int, p *byte, np int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func writelen(fd int, p *byte, np int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
++ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1388,128 +93,8 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func munmap(addr uintptr, length uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Madvise(b []byte, advice int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mprotect(b []byte, prot int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mlock(b []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Munlock(b []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mlockall(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Msync(b []byte, flags int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Munlockall() (err error) {
+- _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func pipe(p *[2]_C_int) (err error) {
+- _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func pipe2(p *[2]_C_int, flags int) (err error) {
+- _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
++func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
++ _, _, e1 := Syscall6(SYS_FADVISE64_64, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1518,8 +103,8 @@ func pipe2(p *[2]_C_int, flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Dup2(oldfd int, newfd int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
++func Fchown(fd int, uid int, gid int) (err error) {
++ _, _, e1 := Syscall(SYS_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1528,8 +113,8 @@ func Dup2(oldfd int, newfd int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
+- _, _, e1 := Syscall6(SYS_FADVISE64_64, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice))
++func Fstat(fd int, stat *Stat_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1538,18 +123,13 @@ func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fchown(fd int, uid int, gid int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid))
+- if e1 != 0 {
+- err = errnoErr(e1)
++func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
+ }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fstat(fd int, stat *Stat_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1569,7 +149,7 @@ func Ftruncate(fd int, length int64) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getegid() (egid int) {
+- r0, _, _ := RawSyscall(SYS_GETEGID32, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETEGID32, 0, 0, 0)
+ egid = int(r0)
+ return
+ }
+@@ -1577,7 +157,7 @@ func Getegid() (egid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Geteuid() (euid int) {
+- r0, _, _ := RawSyscall(SYS_GETEUID32, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETEUID32, 0, 0, 0)
+ euid = int(r0)
+ return
+ }
+@@ -1585,7 +165,7 @@ func Geteuid() (euid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getgid() (gid int) {
+- r0, _, _ := RawSyscall(SYS_GETGID32, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETGID32, 0, 0, 0)
+ gid = int(r0)
+ return
+ }
+@@ -1593,7 +173,7 @@ func Getgid() (gid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getuid() (uid int) {
+- r0, _, _ := RawSyscall(SYS_GETUID32, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETUID32, 0, 0, 0)
+ uid = int(r0)
+ return
+ }
+@@ -1695,6 +275,26 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(oldpath)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(newpath)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+ r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
+ written = int(r0)
+@@ -1706,8 +306,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setfsgid(gid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0)
++func setfsgid(gid int) (prev int, err error) {
++ r0, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0)
++ prev = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1716,8 +317,9 @@ func Setfsgid(gid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setfsuid(uid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0)
++func setfsuid(uid int) (prev int, err error) {
++ r0, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0)
++ prev = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1817,6 +419,16 @@ func Truncate(path string, length int64) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Ustat(dev int, ubuf *Ustat_t) (err error) {
++ _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func getgroups(n int, list *_Gid_t) (nn int, err error) {
+ r0, _, e1 := RawSyscall(SYS_GETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+ nn = int(r0)
+@@ -1860,15 +472,8 @@ func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(events) > 0 {
+- _p0 = unsafe.Pointer(&events[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+- n = int(r0)
++func Pause() (err error) {
++ _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1877,8 +482,8 @@ func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Pause() (err error) {
+- _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
++func getrlimit(resource int, rlim *rlimit32) (err error) {
++ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1887,8 +492,8 @@ func Pause() (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func getrlimit(resource int, rlim *rlimit32) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
++func setrlimit(resource int, rlim *rlimit32) (err error) {
++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1897,8 +502,13 @@ func getrlimit(resource int, rlim *rlimit32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func setrlimit(resource int, rlim *rlimit32) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
++func futimesat(dirfd int, path string, times *[2]Timeval) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1943,6 +553,21 @@ func Utime(path string, buf *Utimbuf) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func utimes(path string, times *[2]Timeval) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
+ n = int(r0)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go
+index dc8fe0a8..f64adef4 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -tags linux,amd64 syscall_linux.go syscall_linux_amd64.go
++// go run mksyscall.go -tags linux,amd64 syscall_linux.go syscall_linux_amd64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build linux,amd64
+@@ -14,1446 +14,8 @@ var _ syscall.Errno
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fchmodat(dirfd int, path string, mode uint32) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ioctl(fd int, req uint, arg uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(buf) > 0 {
+- _p1 = unsafe.Pointer(&buf[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unlinkat(dirfd int, path string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func utimes(path string, times *[2]Timeval) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) {
+- _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getcwd(buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+- r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+- wpid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlJoin(cmd int, arg2 string) (ret int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg2)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg3)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(arg4)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(payload) > 0 {
+- _p0 = unsafe.Pointer(&payload[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(source)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(target)
+- if err != nil {
+- return
+- }
+- var _p2 *byte
+- _p2, err = BytePtrFromString(fstype)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Acct(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(keyType)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(description)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(payload) > 0 {
+- _p2 = unsafe.Pointer(&payload[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)
+- id = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Adjtimex(buf *Timex) (state int, err error) {
+- r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)
+- state = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Chdir(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Chroot(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ClockGettime(clockid int32, time *Timespec) (err error) {
+- _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Close(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup(oldfd int) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup3(oldfd int, newfd int, flags int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCreate(size int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCreate1(flag int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {
+- _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Eventfd(initval uint, flags int) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Exit(code int) {
+- Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
+- _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchdir(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchmod(fd int, mode uint32) (err error) {
+- _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fdatasync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Flock(fd int, how int) (err error) {
+- _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fsync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getdents(fd int, buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpgid(pid int) (pgid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+- pgid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpid() (pid int) {
+- r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+- pid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getppid() (ppid int) {
+- r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+- ppid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpriority(which int, who int) (prio int, err error) {
+- r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+- prio = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getrandom(buf []byte, flags int) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getrusage(who int, rusage *Rusage) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getsid(pid int) (sid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+- sid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Gettid() (tid int) {
+- r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0)
+- tid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(dest) > 0 {
+- _p2 = unsafe.Pointer(&dest[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(pathname)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))
+- watchdesc = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyInit1(flags int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {
+- r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)
+- success = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Kill(pid int, sig syscall.Signal) (err error) {
+- _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Klogctl(typ int, buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(dest) > 0 {
+- _p2 = unsafe.Pointer(&dest[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Listxattr(path string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(dest) > 0 {
+- _p1 = unsafe.Pointer(&dest[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Llistxattr(path string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(dest) > 0 {
+- _p1 = unsafe.Pointer(&dest[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lremovexattr(path string, attr string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lsetxattr(path string, attr string, data []byte, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(data) > 0 {
+- _p2 = unsafe.Pointer(&data[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+- _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func PivotRoot(newroot string, putold string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(newroot)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(putold)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
+- _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func read(fd int, p []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Removexattr(path string, attr string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(keyType)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(description)
+- if err != nil {
+- return
+- }
+- var _p2 *byte
+- _p2, err = BytePtrFromString(callback)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)
+- id = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setdomainname(p []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sethostname(p []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setpgid(pid int, pgid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setsid() (pid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+- pid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Settimeofday(tv *Timeval) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setns(fd int, nstype int) (err error) {
+- _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setpriority(which int, who int, prio int) (err error) {
+- _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setxattr(path string, attr string, data []byte, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(data) > 0 {
+- _p2 = unsafe.Pointer(&data[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sync() {
+- Syscall(SYS_SYNC, 0, 0, 0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Syncfs(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sysinfo(info *Sysinfo_t) (err error) {
+- _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
+- r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)
+- n = int64(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {
+- _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Times(tms *Tms) (ticks uintptr, err error) {
+- r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)
+- ticks = uintptr(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Umask(mask int) (oldmask int) {
+- r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0)
+- oldmask = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Uname(buf *Utsname) (err error) {
+- _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unmount(target string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(target)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unshare(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Ustat(dev int, ubuf *Ustat_t) (err error) {
+- _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func write(fd int, p []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func exitThread(code int) (err error) {
+- _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func readlen(fd int, p *byte, np int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func writelen(fd int, p *byte, np int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func munmap(addr uintptr, length uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Madvise(b []byte, advice int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mprotect(b []byte, prot int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mlock(b []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Munlock(b []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
++func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
++ _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1462,8 +24,8 @@ func Munlock(b []byte) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Mlockall(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
++ _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1472,14 +34,9 @@ func Mlockall(flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Msync(b []byte, flags int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
++func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
++ r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)
++ n = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1488,8 +45,8 @@ func Msync(b []byte, flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Munlockall() (err error) {
+- _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
++func Dup2(oldfd int, newfd int) (err error) {
++ _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1498,8 +55,9 @@ func Munlockall() (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Dup2(oldfd int, newfd int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
++func EpollCreate(size int) (fd int, err error) {
++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)
++ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1555,6 +113,21 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fstatfs(fd int, buf *Statfs_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)
+ if e1 != 0 {
+@@ -1576,7 +149,7 @@ func Ftruncate(fd int, length int64) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getegid() (egid int) {
+- r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)
+ egid = int(r0)
+ return
+ }
+@@ -1584,7 +157,7 @@ func Getegid() (egid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Geteuid() (euid int) {
+- r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)
+ euid = int(r0)
+ return
+ }
+@@ -1592,7 +165,7 @@ func Geteuid() (euid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getgid() (gid int) {
+- r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)
+ gid = int(r0)
+ return
+ }
+@@ -1610,14 +183,14 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getuid() (uid int) {
+- r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)
+ uid = int(r0)
+ return
+ }
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func InotifyInit() (fd int, err error) {
++func inotifyInit() (fd int, err error) {
+ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)
+ fd = int(r0)
+ if e1 != 0 {
+@@ -1673,21 +246,6 @@ func Listen(s int, n int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Lstat(path string, stat *Stat_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func Pause() (err error) {
+ _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
+ if e1 != 0 {
+@@ -1732,9 +290,18 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Seek(fd int, offset int64, whence int) (off int64, err error) {
+- r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+- off = int64(r0)
++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(oldpath)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(newpath)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1743,9 +310,9 @@ func Seek(fd int, offset int64, whence int) (off int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+- n = int(r0)
++func Seek(fd int, offset int64, whence int) (off int64, err error) {
++ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
++ off = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1765,8 +332,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setfsgid(gid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++func setfsgid(gid int) (prev int, err error) {
++ r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++ prev = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1775,8 +343,9 @@ func Setfsgid(gid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setfsuid(uid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++func setfsuid(uid int) (prev int, err error) {
++ r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++ prev = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1856,21 +425,6 @@ func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n i
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Stat(path string, stat *Stat_t) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func Statfs(path string, buf *Statfs_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1911,6 +465,16 @@ func Truncate(path string, length int64) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Ustat(dev int, ubuf *Ustat_t) (err error) {
++ _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ fd = int(r0)
+@@ -2101,6 +665,21 @@ func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int6
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func futimesat(dirfd int, path string, times *[2]Timeval) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Utime(path string, buf *Utimbuf) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -2116,8 +695,13 @@ func Utime(path string, buf *Utimbuf) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func pipe(p *[2]_C_int) (err error) {
+- _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
++func utimes(path string, times *[2]Timeval) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -2126,8 +710,8 @@ func pipe(p *[2]_C_int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func pipe2(p *[2]_C_int, flags int) (err error) {
+- _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
++func pipe(p *[2]_C_int) (err error) {
++ _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -2144,3 +728,18 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+ }
+ return
+ }
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(cmdline)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go
+index 4d280427..ac19523e 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -l32 -arm -tags linux,arm syscall_linux.go syscall_linux_arm.go
++// go run mksyscall.go -l32 -arm -tags linux,arm syscall_linux.go syscall_linux_arm.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build linux,arm
+@@ -14,1456 +14,8 @@ var _ syscall.Errno
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fchmodat(dirfd int, path string, mode uint32) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ioctl(fd int, req uint, arg uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(buf) > 0 {
+- _p1 = unsafe.Pointer(&buf[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unlinkat(dirfd int, path string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func utimes(path string, times *[2]Timeval) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) {
+- _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getcwd(buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+- r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+- wpid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlJoin(cmd int, arg2 string) (ret int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg2)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg3)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(arg4)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(payload) > 0 {
+- _p0 = unsafe.Pointer(&payload[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(source)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(target)
+- if err != nil {
+- return
+- }
+- var _p2 *byte
+- _p2, err = BytePtrFromString(fstype)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Acct(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(keyType)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(description)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(payload) > 0 {
+- _p2 = unsafe.Pointer(&payload[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)
+- id = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Adjtimex(buf *Timex) (state int, err error) {
+- r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)
+- state = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Chdir(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Chroot(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ClockGettime(clockid int32, time *Timespec) (err error) {
+- _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Close(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup(oldfd int) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup3(oldfd int, newfd int, flags int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCreate(size int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCreate1(flag int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {
+- _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Eventfd(initval uint, flags int) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Exit(code int) {
+- Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
+- _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchdir(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchmod(fd int, mode uint32) (err error) {
+- _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fdatasync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Flock(fd int, how int) (err error) {
+- _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fsync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getdents(fd int, buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpgid(pid int) (pgid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+- pgid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpid() (pid int) {
+- r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+- pid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getppid() (ppid int) {
+- r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+- ppid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpriority(which int, who int) (prio int, err error) {
+- r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+- prio = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getrandom(buf []byte, flags int) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getrusage(who int, rusage *Rusage) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getsid(pid int) (sid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+- sid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Gettid() (tid int) {
+- r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0)
+- tid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(dest) > 0 {
+- _p2 = unsafe.Pointer(&dest[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(pathname)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))
+- watchdesc = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyInit1(flags int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {
+- r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)
+- success = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Kill(pid int, sig syscall.Signal) (err error) {
+- _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Klogctl(typ int, buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(dest) > 0 {
+- _p2 = unsafe.Pointer(&dest[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Listxattr(path string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(dest) > 0 {
+- _p1 = unsafe.Pointer(&dest[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Llistxattr(path string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(dest) > 0 {
+- _p1 = unsafe.Pointer(&dest[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lremovexattr(path string, attr string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lsetxattr(path string, attr string, data []byte, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(data) > 0 {
+- _p2 = unsafe.Pointer(&data[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+- _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func PivotRoot(newroot string, putold string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(newroot)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(putold)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
+- _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func read(fd int, p []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Removexattr(path string, attr string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(keyType)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(description)
+- if err != nil {
+- return
+- }
+- var _p2 *byte
+- _p2, err = BytePtrFromString(callback)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)
+- id = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setdomainname(p []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sethostname(p []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setpgid(pid int, pgid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setsid() (pid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+- pid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Settimeofday(tv *Timeval) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setns(fd int, nstype int) (err error) {
+- _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setpriority(which int, who int, prio int) (err error) {
+- _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setxattr(path string, attr string, data []byte, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(data) > 0 {
+- _p2 = unsafe.Pointer(&data[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sync() {
+- Syscall(SYS_SYNC, 0, 0, 0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Syncfs(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sysinfo(info *Sysinfo_t) (err error) {
+- _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
+- r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)
+- n = int64(int64(r1)<<32 | int64(r0))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {
+- _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Times(tms *Tms) (ticks uintptr, err error) {
+- r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)
+- ticks = uintptr(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Umask(mask int) (oldmask int) {
+- r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0)
+- oldmask = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Uname(buf *Utsname) (err error) {
+- _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unmount(target string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(target)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unshare(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Ustat(dev int, ubuf *Ustat_t) (err error) {
+- _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func write(fd int, p []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func exitThread(code int) (err error) {
+- _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func readlen(fd int, p *byte, np int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func writelen(fd int, p *byte, np int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func munmap(addr uintptr, length uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Madvise(b []byte, advice int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mprotect(b []byte, prot int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mlock(b []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Munlock(b []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mlockall(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
++func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
++ _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1472,14 +24,8 @@ func Mlockall(flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Msync(b []byte, flags int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
++ _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1488,8 +34,9 @@ func Msync(b []byte, flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Munlockall() (err error) {
+- _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
++func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
++ r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)
++ n = int64(int64(r1)<<32 | int64(r0))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1498,8 +45,8 @@ func Munlockall() (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func pipe2(p *[2]_C_int, flags int) (err error) {
+- _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
++func pipe(p *[2]_C_int) (err error) {
++ _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1697,6 +244,34 @@ func Dup2(oldfd int, newfd int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func EpollCreate(size int) (fd int, err error) {
++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)
++ fd = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(events) > 0 {
++ _p0 = unsafe.Pointer(&events[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fchown(fd int, uid int, gid int) (err error) {
+ _, _, e1 := Syscall(SYS_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+@@ -1717,8 +292,23 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getegid() (egid int) {
+- r0, _, _ := RawSyscall(SYS_GETEGID32, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETEGID32, 0, 0, 0)
+ egid = int(r0)
+ return
+ }
+@@ -1726,7 +316,7 @@ func Getegid() (egid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Geteuid() (euid int) {
+- r0, _, _ := RawSyscall(SYS_GETEUID32, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETEUID32, 0, 0, 0)
+ euid = int(r0)
+ return
+ }
+@@ -1734,7 +324,7 @@ func Geteuid() (euid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getgid() (gid int) {
+- r0, _, _ := RawSyscall(SYS_GETGID32, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETGID32, 0, 0, 0)
+ gid = int(r0)
+ return
+ }
+@@ -1742,7 +332,7 @@ func Getgid() (gid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getuid() (uid int) {
+- r0, _, _ := RawSyscall(SYS_GETUID32, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETUID32, 0, 0, 0)
+ uid = int(r0)
+ return
+ }
+@@ -1800,6 +390,36 @@ func Lstat(path string, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Pause() (err error) {
++ _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(oldpath)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(newpath)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+ r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
+ written = int(r0)
+@@ -1822,8 +442,9 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setfsgid(gid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0)
++func setfsgid(gid int) (prev int, err error) {
++ r0, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0)
++ prev = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1832,8 +453,9 @@ func Setfsgid(gid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setfsuid(uid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0)
++func setfsuid(uid int) (prev int, err error) {
++ r0, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0)
++ prev = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1918,8 +540,8 @@ func Stat(path string, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Gettimeofday(tv *Timeval) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
++func Ustat(dev int, ubuf *Ustat_t) (err error) {
++ _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1928,15 +550,13 @@ func Gettimeofday(tv *Timeval) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(events) > 0 {
+- _p0 = unsafe.Pointer(&events[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
++func futimesat(dirfd int, path string, times *[2]Timeval) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
+ }
+- r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+- n = int(r0)
++ _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1945,8 +565,23 @@ func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Pause() (err error) {
+- _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
++func Gettimeofday(tv *Timeval) (err error) {
++ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func utimes(path string, times *[2]Timeval) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -2053,3 +688,28 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+ }
+ return
+ }
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func armSyncFileRange(fd int, flags int, off int64, n int64) (err error) {
++ _, _, e1 := Syscall6(SYS_ARM_SYNC_FILE_RANGE, uintptr(fd), uintptr(flags), uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(cmdline)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go
+index 20ad4b6c..f0d2890b 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -tags linux,arm64 syscall_linux.go syscall_linux_arm64.go
++// go run mksyscall.go -tags linux,arm64 syscall_linux.go syscall_linux_arm64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build linux,arm64
+@@ -14,1228 +14,8 @@ var _ syscall.Errno
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fchmodat(dirfd int, path string, mode uint32) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ioctl(fd int, req uint, arg uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(buf) > 0 {
+- _p1 = unsafe.Pointer(&buf[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unlinkat(dirfd int, path string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func utimes(path string, times *[2]Timeval) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) {
+- _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getcwd(buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+- r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+- wpid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlJoin(cmd int, arg2 string) (ret int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg2)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg3)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(arg4)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(payload) > 0 {
+- _p0 = unsafe.Pointer(&payload[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(source)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(target)
+- if err != nil {
+- return
+- }
+- var _p2 *byte
+- _p2, err = BytePtrFromString(fstype)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Acct(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(keyType)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(description)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(payload) > 0 {
+- _p2 = unsafe.Pointer(&payload[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)
+- id = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Adjtimex(buf *Timex) (state int, err error) {
+- r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)
+- state = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Chdir(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Chroot(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ClockGettime(clockid int32, time *Timespec) (err error) {
+- _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Close(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup(oldfd int) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup3(oldfd int, newfd int, flags int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCreate(size int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCreate1(flag int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {
+- _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Eventfd(initval uint, flags int) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Exit(code int) {
+- Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
+- _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchdir(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchmod(fd int, mode uint32) (err error) {
+- _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fdatasync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Flock(fd int, how int) (err error) {
+- _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fsync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getdents(fd int, buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpgid(pid int) (pgid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+- pgid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpid() (pid int) {
+- r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+- pid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getppid() (ppid int) {
+- r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+- ppid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpriority(which int, who int) (prio int, err error) {
+- r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+- prio = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getrandom(buf []byte, flags int) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getrusage(who int, rusage *Rusage) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getsid(pid int) (sid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+- sid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Gettid() (tid int) {
+- r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0)
+- tid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(dest) > 0 {
+- _p2 = unsafe.Pointer(&dest[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(pathname)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))
+- watchdesc = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyInit1(flags int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {
+- r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)
+- success = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Kill(pid int, sig syscall.Signal) (err error) {
+- _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Klogctl(typ int, buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(dest) > 0 {
+- _p2 = unsafe.Pointer(&dest[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Listxattr(path string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(dest) > 0 {
+- _p1 = unsafe.Pointer(&dest[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Llistxattr(path string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(dest) > 0 {
+- _p1 = unsafe.Pointer(&dest[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lremovexattr(path string, attr string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lsetxattr(path string, attr string, data []byte, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(data) > 0 {
+- _p2 = unsafe.Pointer(&data[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+- _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func PivotRoot(newroot string, putold string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(newroot)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(putold)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
+- _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func read(fd int, p []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Removexattr(path string, attr string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(keyType)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(description)
+- if err != nil {
+- return
+- }
+- var _p2 *byte
+- _p2, err = BytePtrFromString(callback)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)
+- id = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setdomainname(p []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sethostname(p []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setpgid(pid int, pgid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setsid() (pid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+- pid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Settimeofday(tv *Timeval) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setns(fd int, nstype int) (err error) {
+- _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setpriority(which int, who int, prio int) (err error) {
+- _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setxattr(path string, attr string, data []byte, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(data) > 0 {
+- _p2 = unsafe.Pointer(&data[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sync() {
+- Syscall(SYS_SYNC, 0, 0, 0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Syncfs(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)
++func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
++ _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1244,8 +24,8 @@ func Syncfs(fd int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Sysinfo(info *Sysinfo_t) (err error) {
+- _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)
++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
++ _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1265,120 +45,14 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {
+- _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Times(tms *Tms) (ticks uintptr, err error) {
+- r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)
+- ticks = uintptr(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Umask(mask int) (oldmask int) {
+- r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0)
+- oldmask = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Uname(buf *Utsname) (err error) {
+- _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unmount(target string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(target)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unshare(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Ustat(dev int, ubuf *Ustat_t) (err error) {
+- _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func write(fd int, p []byte) (n int, err error) {
++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
++ if len(events) > 0 {
++ _p0 = unsafe.Pointer(&events[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func exitThread(code int) (err error) {
+- _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func readlen(fd int, p *byte, np int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func writelen(fd int, p *byte, np int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
++ r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1388,125 +62,8 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func munmap(addr uintptr, length uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Madvise(b []byte, advice int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mprotect(b []byte, prot int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mlock(b []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Munlock(b []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mlockall(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Msync(b []byte, flags int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Munlockall() (err error) {
+- _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(events) > 0 {
+- _p0 = unsafe.Pointer(&events[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+- n = int(r0)
++func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
++ _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1571,7 +128,7 @@ func Ftruncate(fd int, length int64) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getegid() (egid int) {
+- r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)
+ egid = int(r0)
+ return
+ }
+@@ -1579,7 +136,7 @@ func Getegid() (egid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Geteuid() (euid int) {
+- r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)
+ euid = int(r0)
+ return
+ }
+@@ -1587,7 +144,7 @@ func Geteuid() (euid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getgid() (gid int) {
+- r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)
+ gid = int(r0)
+ return
+ }
+@@ -1605,7 +162,7 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getuid() (uid int) {
+- r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)
+ uid = int(r0)
+ return
+ }
+@@ -1656,9 +213,18 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Seek(fd int, offset int64, whence int) (off int64, err error) {
+- r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+- off = int64(r0)
++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(oldpath)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(newpath)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1667,9 +233,9 @@ func Seek(fd int, offset int64, whence int) (off int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+- n = int(r0)
++func Seek(fd int, offset int64, whence int) (off int64, err error) {
++ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
++ off = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1689,8 +255,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setfsgid(gid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++func setfsgid(gid int) (prev int, err error) {
++ r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++ prev = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1699,8 +266,9 @@ func Setfsgid(gid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setfsuid(uid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++func setfsuid(uid int) (prev int, err error) {
++ r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++ prev = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -2020,8 +588,13 @@ func Gettimeofday(tv *Timeval) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func pipe2(p *[2]_C_int, flags int) (err error) {
+- _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
++func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(cmdline)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go
+index 9f194dc4..aecbbca7 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -b32 -arm -tags linux,mips syscall_linux.go syscall_linux_mipsx.go
++// go run mksyscall.go -b32 -arm -tags linux,mips syscall_linux.go syscall_linux_mipsx.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build linux,mips
+@@ -14,1228 +14,8 @@ var _ syscall.Errno
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fchmodat(dirfd int, path string, mode uint32) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ioctl(fd int, req uint, arg uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(buf) > 0 {
+- _p1 = unsafe.Pointer(&buf[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unlinkat(dirfd int, path string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func utimes(path string, times *[2]Timeval) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) {
+- _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getcwd(buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+- r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+- wpid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlJoin(cmd int, arg2 string) (ret int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg2)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg3)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(arg4)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(payload) > 0 {
+- _p0 = unsafe.Pointer(&payload[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(source)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(target)
+- if err != nil {
+- return
+- }
+- var _p2 *byte
+- _p2, err = BytePtrFromString(fstype)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Acct(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(keyType)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(description)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(payload) > 0 {
+- _p2 = unsafe.Pointer(&payload[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)
+- id = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Adjtimex(buf *Timex) (state int, err error) {
+- r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)
+- state = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Chdir(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Chroot(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ClockGettime(clockid int32, time *Timespec) (err error) {
+- _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Close(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup(oldfd int) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup3(oldfd int, newfd int, flags int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCreate(size int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCreate1(flag int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {
+- _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Eventfd(initval uint, flags int) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Exit(code int) {
+- Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
+- _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off>>32), uintptr(off), uintptr(len>>32), uintptr(len))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchdir(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchmod(fd int, mode uint32) (err error) {
+- _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fdatasync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Flock(fd int, how int) (err error) {
+- _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fsync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getdents(fd int, buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpgid(pid int) (pgid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+- pgid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpid() (pid int) {
+- r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+- pid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getppid() (ppid int) {
+- r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+- ppid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpriority(which int, who int) (prio int, err error) {
+- r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+- prio = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getrandom(buf []byte, flags int) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getrusage(who int, rusage *Rusage) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getsid(pid int) (sid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+- sid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Gettid() (tid int) {
+- r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0)
+- tid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(dest) > 0 {
+- _p2 = unsafe.Pointer(&dest[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(pathname)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))
+- watchdesc = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyInit1(flags int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {
+- r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)
+- success = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Kill(pid int, sig syscall.Signal) (err error) {
+- _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Klogctl(typ int, buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(dest) > 0 {
+- _p2 = unsafe.Pointer(&dest[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Listxattr(path string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(dest) > 0 {
+- _p1 = unsafe.Pointer(&dest[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Llistxattr(path string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(dest) > 0 {
+- _p1 = unsafe.Pointer(&dest[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lremovexattr(path string, attr string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lsetxattr(path string, attr string, data []byte, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(data) > 0 {
+- _p2 = unsafe.Pointer(&data[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+- _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func PivotRoot(newroot string, putold string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(newroot)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(putold)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
+- _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func read(fd int, p []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Removexattr(path string, attr string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(keyType)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(description)
+- if err != nil {
+- return
+- }
+- var _p2 *byte
+- _p2, err = BytePtrFromString(callback)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)
+- id = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setdomainname(p []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sethostname(p []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setpgid(pid int, pgid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setsid() (pid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+- pid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Settimeofday(tv *Timeval) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setns(fd int, nstype int) (err error) {
+- _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setpriority(which int, who int, prio int) (err error) {
+- _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setxattr(path string, attr string, data []byte, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(data) > 0 {
+- _p2 = unsafe.Pointer(&data[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sync() {
+- Syscall(SYS_SYNC, 0, 0, 0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Syncfs(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)
++func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
++ _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask>>32), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1244,8 +24,8 @@ func Syncfs(fd int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Sysinfo(info *Sysinfo_t) (err error) {
+- _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)
++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
++ _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off>>32), uintptr(off), uintptr(len>>32), uintptr(len))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1265,62 +45,8 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {
+- _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Times(tms *Tms) (ticks uintptr, err error) {
+- r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)
+- ticks = uintptr(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Umask(mask int) (oldmask int) {
+- r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0)
+- oldmask = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Uname(buf *Utsname) (err error) {
+- _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unmount(target string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(target)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unshare(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)
++func Dup2(oldfd int, newfd int) (err error) {
++ _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1329,8 +55,9 @@ func Unshare(flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Ustat(dev int, ubuf *Ustat_t) (err error) {
+- _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
++func EpollCreate(size int) (fd int, err error) {
++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)
++ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1339,46 +66,14 @@ func Ustat(dev int, ubuf *Ustat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func write(fd int, p []byte) (n int, err error) {
++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
++ if len(events) > 0 {
++ _p0 = unsafe.Pointer(&events[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func exitThread(code int) (err error) {
+- _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func readlen(fd int, p *byte, np int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func writelen(fd int, p *byte, np int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
++ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1388,118 +83,8 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func munmap(addr uintptr, length uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Madvise(b []byte, advice int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mprotect(b []byte, prot int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mlock(b []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Munlock(b []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mlockall(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Msync(b []byte, flags int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Munlockall() (err error) {
+- _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup2(oldfd int, newfd int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
++func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
++ _, _, e1 := Syscall9(SYS_FADVISE64, uintptr(fd), 0, uintptr(offset>>32), uintptr(offset), uintptr(length>>32), uintptr(length), uintptr(advice), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1529,7 +114,7 @@ func Ftruncate(fd int, length int64) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getegid() (egid int) {
+- r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)
+ egid = int(r0)
+ return
+ }
+@@ -1537,7 +122,7 @@ func Getegid() (egid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Geteuid() (euid int) {
+- r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)
+ euid = int(r0)
+ return
+ }
+@@ -1545,7 +130,7 @@ func Geteuid() (euid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getgid() (gid int) {
+- r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)
+ gid = int(r0)
+ return
+ }
+@@ -1553,7 +138,7 @@ func Getgid() (gid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getuid() (uid int) {
+- r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)
+ uid = int(r0)
+ return
+ }
+@@ -1619,6 +204,26 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(oldpath)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(newpath)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+ r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+ n = int(r0)
+@@ -1641,8 +246,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setfsgid(gid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++func setfsgid(gid int) (prev int, err error) {
++ r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++ prev = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1651,8 +257,9 @@ func Setfsgid(gid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setfsuid(uid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++func setfsuid(uid int) (prev int, err error) {
++ r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++ prev = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1711,9 +318,9 @@ func Shutdown(fd int, how int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
+- r0, r1, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+- n = int64(int64(r0)<<32 | int64(r1))
++func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
++ r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1747,6 +354,16 @@ func Truncate(path string, length int64) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Ustat(dev int, ubuf *Ustat_t) (err error) {
++ _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ fd = int(r0)
+@@ -1957,6 +574,21 @@ func Iopl(level int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func futimesat(dirfd int, path string, times *[2]Timeval) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Gettimeofday(tv *Timeval) (err error) {
+ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+ if e1 != 0 {
+@@ -1978,13 +610,13 @@ func Time(t *Time_t) (tt Time_t, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Lstat(path string, stat *Stat_t) (err error) {
++func Utime(path string, buf *Utimbuf) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1993,8 +625,13 @@ func Lstat(path string, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fstat(fd int, stat *Stat_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++func utimes(path string, times *[2]Timeval) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -2003,13 +640,13 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Stat(path string, stat *Stat_t) (err error) {
++func Lstat(path string, stat *Stat_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -2018,13 +655,23 @@ func Stat(path string, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Utime(path string, buf *Utimbuf) (err error) {
++func Fstat(fd int, stat *Stat_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
++ _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -2033,15 +680,13 @@ func Utime(path string, buf *Utimbuf) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(events) > 0 {
+- _p0 = unsafe.Pointer(&events[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
++func Stat(path string, stat *Stat_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
+ }
+- r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+- n = int(r0)
++ _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -2060,8 +705,10 @@ func Pause() (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func pipe2(p *[2]_C_int, flags int) (err error) {
+- _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
++func pipe() (p1 int, p2 int, err error) {
++ r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
++ p1 = int(r0)
++ p2 = int(r1)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go
+index 4fde3ef0..424fb7fb 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -tags linux,mips64 syscall_linux.go syscall_linux_mips64x.go
++// go run mksyscall.go -tags linux,mips64 syscall_linux.go syscall_linux_mips64x.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build linux,mips64
+@@ -14,1228 +14,8 @@ var _ syscall.Errno
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fchmodat(dirfd int, path string, mode uint32) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ioctl(fd int, req uint, arg uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(buf) > 0 {
+- _p1 = unsafe.Pointer(&buf[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unlinkat(dirfd int, path string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func utimes(path string, times *[2]Timeval) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) {
+- _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getcwd(buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+- r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+- wpid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlJoin(cmd int, arg2 string) (ret int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg2)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg3)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(arg4)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(payload) > 0 {
+- _p0 = unsafe.Pointer(&payload[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(source)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(target)
+- if err != nil {
+- return
+- }
+- var _p2 *byte
+- _p2, err = BytePtrFromString(fstype)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Acct(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(keyType)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(description)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(payload) > 0 {
+- _p2 = unsafe.Pointer(&payload[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)
+- id = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Adjtimex(buf *Timex) (state int, err error) {
+- r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)
+- state = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Chdir(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Chroot(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ClockGettime(clockid int32, time *Timespec) (err error) {
+- _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Close(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup(oldfd int) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup3(oldfd int, newfd int, flags int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCreate(size int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCreate1(flag int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {
+- _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Eventfd(initval uint, flags int) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Exit(code int) {
+- Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
+- _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchdir(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchmod(fd int, mode uint32) (err error) {
+- _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fdatasync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Flock(fd int, how int) (err error) {
+- _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fsync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getdents(fd int, buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpgid(pid int) (pgid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+- pgid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpid() (pid int) {
+- r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+- pid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getppid() (ppid int) {
+- r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+- ppid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpriority(which int, who int) (prio int, err error) {
+- r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+- prio = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getrandom(buf []byte, flags int) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getrusage(who int, rusage *Rusage) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getsid(pid int) (sid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+- sid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Gettid() (tid int) {
+- r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0)
+- tid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(dest) > 0 {
+- _p2 = unsafe.Pointer(&dest[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(pathname)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))
+- watchdesc = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyInit1(flags int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {
+- r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)
+- success = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Kill(pid int, sig syscall.Signal) (err error) {
+- _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Klogctl(typ int, buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(dest) > 0 {
+- _p2 = unsafe.Pointer(&dest[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Listxattr(path string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(dest) > 0 {
+- _p1 = unsafe.Pointer(&dest[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Llistxattr(path string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(dest) > 0 {
+- _p1 = unsafe.Pointer(&dest[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lremovexattr(path string, attr string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lsetxattr(path string, attr string, data []byte, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(data) > 0 {
+- _p2 = unsafe.Pointer(&data[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+- _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func PivotRoot(newroot string, putold string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(newroot)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(putold)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
+- _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func read(fd int, p []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Removexattr(path string, attr string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(keyType)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(description)
+- if err != nil {
+- return
+- }
+- var _p2 *byte
+- _p2, err = BytePtrFromString(callback)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)
+- id = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setdomainname(p []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sethostname(p []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setpgid(pid int, pgid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setsid() (pid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+- pid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Settimeofday(tv *Timeval) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setns(fd int, nstype int) (err error) {
+- _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setpriority(which int, who int, prio int) (err error) {
+- _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setxattr(path string, attr string, data []byte, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(data) > 0 {
+- _p2 = unsafe.Pointer(&data[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sync() {
+- Syscall(SYS_SYNC, 0, 0, 0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Syncfs(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)
++func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
++ _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1244,8 +24,8 @@ func Syncfs(fd int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Sysinfo(info *Sysinfo_t) (err error) {
+- _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)
++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
++ _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1265,62 +45,8 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {
+- _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Times(tms *Tms) (ticks uintptr, err error) {
+- r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)
+- ticks = uintptr(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Umask(mask int) (oldmask int) {
+- r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0)
+- oldmask = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Uname(buf *Utsname) (err error) {
+- _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unmount(target string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(target)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unshare(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)
++func Dup2(oldfd int, newfd int) (err error) {
++ _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1329,8 +55,9 @@ func Unshare(flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Ustat(dev int, ubuf *Ustat_t) (err error) {
+- _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
++func EpollCreate(size int) (fd int, err error) {
++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)
++ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1339,46 +66,14 @@ func Ustat(dev int, ubuf *Ustat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func write(fd int, p []byte) (n int, err error) {
++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
++ if len(events) > 0 {
++ _p0 = unsafe.Pointer(&events[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func exitThread(code int) (err error) {
+- _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func readlen(fd int, p *byte, np int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func writelen(fd int, p *byte, np int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
++ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1388,135 +83,8 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func munmap(addr uintptr, length uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Madvise(b []byte, advice int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mprotect(b []byte, prot int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mlock(b []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Munlock(b []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mlockall(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Msync(b []byte, flags int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Munlockall() (err error) {
+- _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup2(oldfd int, newfd int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(events) > 0 {
+- _p0 = unsafe.Pointer(&events[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+- n = int(r0)
++func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
++ _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1556,7 +124,7 @@ func Ftruncate(fd int, length int64) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getegid() (egid int) {
+- r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)
+ egid = int(r0)
+ return
+ }
+@@ -1564,7 +132,7 @@ func Getegid() (egid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Geteuid() (euid int) {
+- r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)
+ euid = int(r0)
+ return
+ }
+@@ -1572,7 +140,7 @@ func Geteuid() (euid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getgid() (gid int) {
+- r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)
+ gid = int(r0)
+ return
+ }
+@@ -1590,7 +158,7 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getuid() (uid int) {
+- r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)
+ uid = int(r0)
+ return
+ }
+@@ -1666,9 +234,18 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Seek(fd int, offset int64, whence int) (off int64, err error) {
+- r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+- off = int64(r0)
++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(oldpath)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(newpath)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1677,9 +254,9 @@ func Seek(fd int, offset int64, whence int) (off int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+- n = int(r0)
++func Seek(fd int, offset int64, whence int) (off int64, err error) {
++ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
++ off = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1699,8 +276,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setfsgid(gid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++func setfsgid(gid int) (prev int, err error) {
++ r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++ prev = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1709,8 +287,9 @@ func Setfsgid(gid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setfsuid(uid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++func setfsuid(uid int) (prev int, err error) {
++ r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++ prev = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1830,6 +409,16 @@ func Truncate(path string, length int64) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Ustat(dev int, ubuf *Ustat_t) (err error) {
++ _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ fd = int(r0)
+@@ -2020,6 +609,21 @@ func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int6
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func futimesat(dirfd int, path string, times *[2]Timeval) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Gettimeofday(tv *Timeval) (err error) {
+ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+ if e1 != 0 {
+@@ -2045,8 +649,13 @@ func Utime(path string, buf *Utimbuf) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func pipe2(p *[2]_C_int, flags int) (err error) {
+- _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
++func utimes(path string, times *[2]Timeval) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -2065,6 +674,21 @@ func fstat(fd int, st *stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func fstatat(dirfd int, path string, st *stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func lstat(path string, st *stat_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go
+index f6463423..28c7239c 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -tags linux,mips64le syscall_linux.go syscall_linux_mips64x.go
++// go run mksyscall.go -tags linux,mips64le syscall_linux.go syscall_linux_mips64x.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build linux,mips64le
+@@ -14,1228 +14,8 @@ var _ syscall.Errno
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fchmodat(dirfd int, path string, mode uint32) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ioctl(fd int, req uint, arg uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(buf) > 0 {
+- _p1 = unsafe.Pointer(&buf[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unlinkat(dirfd int, path string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func utimes(path string, times *[2]Timeval) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) {
+- _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getcwd(buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+- r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+- wpid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlJoin(cmd int, arg2 string) (ret int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg2)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg3)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(arg4)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(payload) > 0 {
+- _p0 = unsafe.Pointer(&payload[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(source)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(target)
+- if err != nil {
+- return
+- }
+- var _p2 *byte
+- _p2, err = BytePtrFromString(fstype)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Acct(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(keyType)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(description)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(payload) > 0 {
+- _p2 = unsafe.Pointer(&payload[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)
+- id = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Adjtimex(buf *Timex) (state int, err error) {
+- r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)
+- state = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Chdir(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Chroot(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ClockGettime(clockid int32, time *Timespec) (err error) {
+- _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Close(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup(oldfd int) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup3(oldfd int, newfd int, flags int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCreate(size int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCreate1(flag int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {
+- _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Eventfd(initval uint, flags int) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Exit(code int) {
+- Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
+- _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchdir(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchmod(fd int, mode uint32) (err error) {
+- _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fdatasync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Flock(fd int, how int) (err error) {
+- _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fsync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getdents(fd int, buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpgid(pid int) (pgid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+- pgid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpid() (pid int) {
+- r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+- pid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getppid() (ppid int) {
+- r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+- ppid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpriority(which int, who int) (prio int, err error) {
+- r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+- prio = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getrandom(buf []byte, flags int) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getrusage(who int, rusage *Rusage) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getsid(pid int) (sid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+- sid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Gettid() (tid int) {
+- r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0)
+- tid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(dest) > 0 {
+- _p2 = unsafe.Pointer(&dest[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(pathname)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))
+- watchdesc = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyInit1(flags int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {
+- r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)
+- success = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Kill(pid int, sig syscall.Signal) (err error) {
+- _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Klogctl(typ int, buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(dest) > 0 {
+- _p2 = unsafe.Pointer(&dest[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Listxattr(path string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(dest) > 0 {
+- _p1 = unsafe.Pointer(&dest[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Llistxattr(path string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(dest) > 0 {
+- _p1 = unsafe.Pointer(&dest[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lremovexattr(path string, attr string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lsetxattr(path string, attr string, data []byte, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(data) > 0 {
+- _p2 = unsafe.Pointer(&data[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+- _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func PivotRoot(newroot string, putold string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(newroot)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(putold)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
+- _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func read(fd int, p []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Removexattr(path string, attr string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(keyType)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(description)
+- if err != nil {
+- return
+- }
+- var _p2 *byte
+- _p2, err = BytePtrFromString(callback)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)
+- id = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setdomainname(p []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sethostname(p []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setpgid(pid int, pgid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setsid() (pid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+- pid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Settimeofday(tv *Timeval) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setns(fd int, nstype int) (err error) {
+- _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setpriority(which int, who int, prio int) (err error) {
+- _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setxattr(path string, attr string, data []byte, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(data) > 0 {
+- _p2 = unsafe.Pointer(&data[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sync() {
+- Syscall(SYS_SYNC, 0, 0, 0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Syncfs(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)
++func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
++ _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1244,8 +24,8 @@ func Syncfs(fd int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Sysinfo(info *Sysinfo_t) (err error) {
+- _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)
++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
++ _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1265,62 +45,8 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {
+- _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Times(tms *Tms) (ticks uintptr, err error) {
+- r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)
+- ticks = uintptr(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Umask(mask int) (oldmask int) {
+- r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0)
+- oldmask = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Uname(buf *Utsname) (err error) {
+- _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unmount(target string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(target)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unshare(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)
++func Dup2(oldfd int, newfd int) (err error) {
++ _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1329,8 +55,9 @@ func Unshare(flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Ustat(dev int, ubuf *Ustat_t) (err error) {
+- _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
++func EpollCreate(size int) (fd int, err error) {
++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)
++ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1339,46 +66,14 @@ func Ustat(dev int, ubuf *Ustat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func write(fd int, p []byte) (n int, err error) {
++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
++ if len(events) > 0 {
++ _p0 = unsafe.Pointer(&events[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func exitThread(code int) (err error) {
+- _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func readlen(fd int, p *byte, np int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func writelen(fd int, p *byte, np int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
++ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1388,135 +83,8 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func munmap(addr uintptr, length uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Madvise(b []byte, advice int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mprotect(b []byte, prot int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mlock(b []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Munlock(b []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mlockall(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Msync(b []byte, flags int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Munlockall() (err error) {
+- _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup2(oldfd int, newfd int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(events) > 0 {
+- _p0 = unsafe.Pointer(&events[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+- n = int(r0)
++func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
++ _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1556,7 +124,7 @@ func Ftruncate(fd int, length int64) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getegid() (egid int) {
+- r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)
+ egid = int(r0)
+ return
+ }
+@@ -1564,7 +132,7 @@ func Getegid() (egid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Geteuid() (euid int) {
+- r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)
+ euid = int(r0)
+ return
+ }
+@@ -1572,7 +140,7 @@ func Geteuid() (euid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getgid() (gid int) {
+- r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)
+ gid = int(r0)
+ return
+ }
+@@ -1590,7 +158,7 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getuid() (uid int) {
+- r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)
+ uid = int(r0)
+ return
+ }
+@@ -1666,9 +234,18 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Seek(fd int, offset int64, whence int) (off int64, err error) {
+- r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+- off = int64(r0)
++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(oldpath)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(newpath)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1677,9 +254,9 @@ func Seek(fd int, offset int64, whence int) (off int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+- n = int(r0)
++func Seek(fd int, offset int64, whence int) (off int64, err error) {
++ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
++ off = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1699,8 +276,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setfsgid(gid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++func setfsgid(gid int) (prev int, err error) {
++ r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++ prev = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1709,8 +287,9 @@ func Setfsgid(gid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setfsuid(uid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++func setfsuid(uid int) (prev int, err error) {
++ r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++ prev = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1830,6 +409,16 @@ func Truncate(path string, length int64) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Ustat(dev int, ubuf *Ustat_t) (err error) {
++ _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ fd = int(r0)
+@@ -2020,6 +609,21 @@ func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int6
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func futimesat(dirfd int, path string, times *[2]Timeval) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Gettimeofday(tv *Timeval) (err error) {
+ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+ if e1 != 0 {
+@@ -2045,8 +649,13 @@ func Utime(path string, buf *Utimbuf) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func pipe2(p *[2]_C_int, flags int) (err error) {
+- _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
++func utimes(path string, times *[2]Timeval) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -2065,6 +674,21 @@ func fstat(fd int, st *stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func fstatat(dirfd int, path string, st *stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func lstat(path string, st *stat_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go
+index 964591e5..84596b30 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -l32 -arm -tags linux,mipsle syscall_linux.go syscall_linux_mipsx.go
++// go run mksyscall.go -l32 -arm -tags linux,mipsle syscall_linux.go syscall_linux_mipsx.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build linux,mipsle
+@@ -14,1228 +14,8 @@ var _ syscall.Errno
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fchmodat(dirfd int, path string, mode uint32) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ioctl(fd int, req uint, arg uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(buf) > 0 {
+- _p1 = unsafe.Pointer(&buf[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unlinkat(dirfd int, path string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func utimes(path string, times *[2]Timeval) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) {
+- _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getcwd(buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+- r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+- wpid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlJoin(cmd int, arg2 string) (ret int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg2)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg3)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(arg4)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(payload) > 0 {
+- _p0 = unsafe.Pointer(&payload[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(source)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(target)
+- if err != nil {
+- return
+- }
+- var _p2 *byte
+- _p2, err = BytePtrFromString(fstype)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Acct(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(keyType)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(description)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(payload) > 0 {
+- _p2 = unsafe.Pointer(&payload[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)
+- id = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Adjtimex(buf *Timex) (state int, err error) {
+- r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)
+- state = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Chdir(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Chroot(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ClockGettime(clockid int32, time *Timespec) (err error) {
+- _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Close(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup(oldfd int) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup3(oldfd int, newfd int, flags int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCreate(size int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCreate1(flag int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {
+- _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Eventfd(initval uint, flags int) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Exit(code int) {
+- Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
+- _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchdir(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchmod(fd int, mode uint32) (err error) {
+- _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fdatasync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Flock(fd int, how int) (err error) {
+- _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fsync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getdents(fd int, buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpgid(pid int) (pgid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+- pgid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpid() (pid int) {
+- r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+- pid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getppid() (ppid int) {
+- r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+- ppid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpriority(which int, who int) (prio int, err error) {
+- r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+- prio = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getrandom(buf []byte, flags int) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getrusage(who int, rusage *Rusage) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getsid(pid int) (sid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+- sid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Gettid() (tid int) {
+- r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0)
+- tid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(dest) > 0 {
+- _p2 = unsafe.Pointer(&dest[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(pathname)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))
+- watchdesc = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyInit1(flags int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {
+- r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)
+- success = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Kill(pid int, sig syscall.Signal) (err error) {
+- _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Klogctl(typ int, buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(dest) > 0 {
+- _p2 = unsafe.Pointer(&dest[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Listxattr(path string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(dest) > 0 {
+- _p1 = unsafe.Pointer(&dest[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Llistxattr(path string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(dest) > 0 {
+- _p1 = unsafe.Pointer(&dest[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lremovexattr(path string, attr string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lsetxattr(path string, attr string, data []byte, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(data) > 0 {
+- _p2 = unsafe.Pointer(&data[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+- _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func PivotRoot(newroot string, putold string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(newroot)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(putold)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
+- _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func read(fd int, p []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Removexattr(path string, attr string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(keyType)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(description)
+- if err != nil {
+- return
+- }
+- var _p2 *byte
+- _p2, err = BytePtrFromString(callback)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)
+- id = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setdomainname(p []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sethostname(p []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setpgid(pid int, pgid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setsid() (pid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+- pid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Settimeofday(tv *Timeval) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setns(fd int, nstype int) (err error) {
+- _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setpriority(which int, who int, prio int) (err error) {
+- _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setxattr(path string, attr string, data []byte, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(data) > 0 {
+- _p2 = unsafe.Pointer(&data[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sync() {
+- Syscall(SYS_SYNC, 0, 0, 0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Syncfs(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)
++func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
++ _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1244,8 +24,8 @@ func Syncfs(fd int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Sysinfo(info *Sysinfo_t) (err error) {
+- _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)
++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
++ _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1265,62 +45,8 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {
+- _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Times(tms *Tms) (ticks uintptr, err error) {
+- r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)
+- ticks = uintptr(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Umask(mask int) (oldmask int) {
+- r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0)
+- oldmask = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Uname(buf *Utsname) (err error) {
+- _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unmount(target string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(target)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unshare(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)
++func Dup2(oldfd int, newfd int) (err error) {
++ _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1329,8 +55,9 @@ func Unshare(flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Ustat(dev int, ubuf *Ustat_t) (err error) {
+- _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
++func EpollCreate(size int) (fd int, err error) {
++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)
++ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1339,46 +66,14 @@ func Ustat(dev int, ubuf *Ustat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func write(fd int, p []byte) (n int, err error) {
++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
++ if len(events) > 0 {
++ _p0 = unsafe.Pointer(&events[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func exitThread(code int) (err error) {
+- _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func readlen(fd int, p *byte, np int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func writelen(fd int, p *byte, np int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
++ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1388,118 +83,8 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func munmap(addr uintptr, length uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Madvise(b []byte, advice int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mprotect(b []byte, prot int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mlock(b []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Munlock(b []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mlockall(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Msync(b []byte, flags int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Munlockall() (err error) {
+- _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup2(oldfd int, newfd int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
++func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
++ _, _, e1 := Syscall9(SYS_FADVISE64, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1529,7 +114,7 @@ func Ftruncate(fd int, length int64) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getegid() (egid int) {
+- r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)
+ egid = int(r0)
+ return
+ }
+@@ -1537,7 +122,7 @@ func Getegid() (egid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Geteuid() (euid int) {
+- r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)
+ euid = int(r0)
+ return
+ }
+@@ -1545,7 +130,7 @@ func Geteuid() (euid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getgid() (gid int) {
+- r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)
+ gid = int(r0)
+ return
+ }
+@@ -1553,7 +138,7 @@ func Getgid() (gid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getuid() (uid int) {
+- r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)
+ uid = int(r0)
+ return
+ }
+@@ -1619,6 +204,26 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(oldpath)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(newpath)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+ r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+ n = int(r0)
+@@ -1641,8 +246,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setfsgid(gid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++func setfsgid(gid int) (prev int, err error) {
++ r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++ prev = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1651,8 +257,9 @@ func Setfsgid(gid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setfsuid(uid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++func setfsuid(uid int) (prev int, err error) {
++ r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++ prev = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1711,9 +318,9 @@ func Shutdown(fd int, how int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
+- r0, r1, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+- n = int64(int64(r1)<<32 | int64(r0))
++func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
++ r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1747,6 +354,16 @@ func Truncate(path string, length int64) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Ustat(dev int, ubuf *Ustat_t) (err error) {
++ _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ fd = int(r0)
+@@ -1957,6 +574,21 @@ func Iopl(level int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func futimesat(dirfd int, path string, times *[2]Timeval) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Gettimeofday(tv *Timeval) (err error) {
+ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+ if e1 != 0 {
+@@ -1978,13 +610,13 @@ func Time(t *Time_t) (tt Time_t, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Lstat(path string, stat *Stat_t) (err error) {
++func Utime(path string, buf *Utimbuf) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1993,8 +625,13 @@ func Lstat(path string, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fstat(fd int, stat *Stat_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++func utimes(path string, times *[2]Timeval) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -2003,13 +640,13 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Stat(path string, stat *Stat_t) (err error) {
++func Lstat(path string, stat *Stat_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -2018,13 +655,23 @@ func Stat(path string, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Utime(path string, buf *Utimbuf) (err error) {
++func Fstat(fd int, stat *Stat_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
++ _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -2033,15 +680,13 @@ func Utime(path string, buf *Utimbuf) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(events) > 0 {
+- _p0 = unsafe.Pointer(&events[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
++func Stat(path string, stat *Stat_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
+ }
+- r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+- n = int(r0)
++ _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -2060,8 +705,10 @@ func Pause() (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func pipe2(p *[2]_C_int, flags int) (err error) {
+- _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
++func pipe() (p1 int, p2 int, err error) {
++ r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
++ p1 = int(r0)
++ p2 = int(r1)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go
+index 204ab1ae..de022639 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -tags linux,ppc64 syscall_linux.go syscall_linux_ppc64x.go
++// go run mksyscall.go -tags linux,ppc64 syscall_linux.go syscall_linux_ppc64x.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build linux,ppc64
+@@ -14,1270 +14,8 @@ var _ syscall.Errno
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fchmodat(dirfd int, path string, mode uint32) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ioctl(fd int, req uint, arg uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(buf) > 0 {
+- _p1 = unsafe.Pointer(&buf[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unlinkat(dirfd int, path string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func utimes(path string, times *[2]Timeval) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) {
+- _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getcwd(buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+- r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+- wpid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlJoin(cmd int, arg2 string) (ret int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg2)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg3)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(arg4)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(payload) > 0 {
+- _p0 = unsafe.Pointer(&payload[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(source)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(target)
+- if err != nil {
+- return
+- }
+- var _p2 *byte
+- _p2, err = BytePtrFromString(fstype)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Acct(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(keyType)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(description)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(payload) > 0 {
+- _p2 = unsafe.Pointer(&payload[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)
+- id = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Adjtimex(buf *Timex) (state int, err error) {
+- r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)
+- state = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Chdir(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Chroot(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ClockGettime(clockid int32, time *Timespec) (err error) {
+- _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Close(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup(oldfd int) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup3(oldfd int, newfd int, flags int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCreate(size int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCreate1(flag int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {
+- _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Eventfd(initval uint, flags int) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Exit(code int) {
+- Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
+- _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchdir(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchmod(fd int, mode uint32) (err error) {
+- _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fdatasync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Flock(fd int, how int) (err error) {
+- _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fsync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getdents(fd int, buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpgid(pid int) (pgid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+- pgid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpid() (pid int) {
+- r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+- pid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getppid() (ppid int) {
+- r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+- ppid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpriority(which int, who int) (prio int, err error) {
+- r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+- prio = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getrandom(buf []byte, flags int) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getrusage(who int, rusage *Rusage) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getsid(pid int) (sid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+- sid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Gettid() (tid int) {
+- r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0)
+- tid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(dest) > 0 {
+- _p2 = unsafe.Pointer(&dest[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(pathname)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))
+- watchdesc = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyInit1(flags int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {
+- r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)
+- success = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Kill(pid int, sig syscall.Signal) (err error) {
+- _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Klogctl(typ int, buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(dest) > 0 {
+- _p2 = unsafe.Pointer(&dest[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Listxattr(path string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(dest) > 0 {
+- _p1 = unsafe.Pointer(&dest[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Llistxattr(path string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(dest) > 0 {
+- _p1 = unsafe.Pointer(&dest[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lremovexattr(path string, attr string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lsetxattr(path string, attr string, data []byte, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(data) > 0 {
+- _p2 = unsafe.Pointer(&data[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+- _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func PivotRoot(newroot string, putold string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(newroot)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(putold)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
+- _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func read(fd int, p []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Removexattr(path string, attr string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(keyType)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(description)
+- if err != nil {
+- return
+- }
+- var _p2 *byte
+- _p2, err = BytePtrFromString(callback)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)
+- id = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setdomainname(p []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sethostname(p []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setpgid(pid int, pgid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setsid() (pid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+- pid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Settimeofday(tv *Timeval) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setns(fd int, nstype int) (err error) {
+- _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setpriority(which int, who int, prio int) (err error) {
+- _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setxattr(path string, attr string, data []byte, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(data) > 0 {
+- _p2 = unsafe.Pointer(&data[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sync() {
+- Syscall(SYS_SYNC, 0, 0, 0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Syncfs(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sysinfo(info *Sysinfo_t) (err error) {
+- _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
+- r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)
+- n = int64(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {
+- _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Times(tms *Tms) (ticks uintptr, err error) {
+- r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)
+- ticks = uintptr(r0)
++func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
++ _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1286,16 +24,8 @@ func Times(tms *Tms) (ticks uintptr, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Umask(mask int) (oldmask int) {
+- r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0)
+- oldmask = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Uname(buf *Utsname) (err error) {
+- _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)
++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
++ _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1304,13 +34,9 @@ func Uname(buf *Utsname) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Unmount(target string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(target)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
++ r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)
++ n = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1319,8 +45,8 @@ func Unmount(target string, flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Unshare(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)
++func Dup2(oldfd int, newfd int) (err error) {
++ _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1329,8 +55,9 @@ func Unshare(flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Ustat(dev int, ubuf *Ustat_t) (err error) {
+- _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
++func EpollCreate(size int) (fd int, err error) {
++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)
++ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1339,46 +66,14 @@ func Ustat(dev int, ubuf *Ustat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func write(fd int, p []byte) (n int, err error) {
++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
++ if len(events) > 0 {
++ _p0 = unsafe.Pointer(&events[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func exitThread(code int) (err error) {
+- _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func readlen(fd int, p *byte, np int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func writelen(fd int, p *byte, np int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
++ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1388,108 +83,8 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func munmap(addr uintptr, length uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Madvise(b []byte, advice int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mprotect(b []byte, prot int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mlock(b []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Munlock(b []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mlockall(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Msync(b []byte, flags int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Munlockall() (err error) {
+- _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
++func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
++ _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1498,15 +93,8 @@ func Munlockall() (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(events) > 0 {
+- _p0 = unsafe.Pointer(&events[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+- n = int(r0)
++func Fchown(fd int, uid int, gid int) (err error) {
++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1515,8 +103,8 @@ func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Dup2(oldfd int, newfd int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
++func Fstat(fd int, stat *Stat_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1525,18 +113,13 @@ func Dup2(oldfd int, newfd int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fchown(fd int, uid int, gid int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+- if e1 != 0 {
+- err = errnoErr(e1)
++func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
+ }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fstat(fd int, stat *Stat_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1566,7 +149,7 @@ func Ftruncate(fd int, length int64) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getegid() (egid int) {
+- r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)
+ egid = int(r0)
+ return
+ }
+@@ -1574,7 +157,7 @@ func Getegid() (egid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Geteuid() (euid int) {
+- r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)
+ euid = int(r0)
+ return
+ }
+@@ -1582,7 +165,7 @@ func Geteuid() (euid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getgid() (gid int) {
+- r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)
+ gid = int(r0)
+ return
+ }
+@@ -1600,7 +183,7 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getuid() (uid int) {
+- r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)
+ uid = int(r0)
+ return
+ }
+@@ -1722,6 +305,26 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(oldpath)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(newpath)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Seek(fd int, offset int64, whence int) (off int64, err error) {
+ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+ off = int64(r0)
+@@ -1734,7 +337,7 @@ func Seek(fd int, offset int64, whence int) (off int64, err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++ r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1755,8 +358,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setfsgid(gid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++func setfsgid(gid int) (prev int, err error) {
++ r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++ prev = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1765,8 +369,9 @@ func Setfsgid(gid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setfsuid(uid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++func setfsuid(uid int) (prev int, err error) {
++ r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++ prev = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1876,8 +481,13 @@ func Statfs(path string, buf *Statfs_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func SyncFileRange(fd int, off int64, n int64, flags int) (err error) {
+- _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)
++func Truncate(path string, length int64) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1886,13 +496,8 @@ func SyncFileRange(fd int, off int64, n int64, flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Truncate(path string, length int64) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
++func Ustat(dev int, ubuf *Ustat_t) (err error) {
++ _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -2091,6 +696,21 @@ func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int6
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func futimesat(dirfd int, path string, times *[2]Timeval) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Gettimeofday(tv *Timeval) (err error) {
+ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+ if e1 != 0 {
+@@ -2127,8 +747,13 @@ func Utime(path string, buf *Utimbuf) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func pipe(p *[2]_C_int) (err error) {
+- _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
++func utimes(path string, times *[2]Timeval) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -2137,8 +762,8 @@ func pipe(p *[2]_C_int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func pipe2(p *[2]_C_int, flags int) (err error) {
+- _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
++func pipe(p *[2]_C_int) (err error) {
++ _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -2155,3 +780,28 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+ }
+ return
+ }
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func syncFileRange2(fd int, flags int, off int64, n int64) (err error) {
++ _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off), uintptr(n), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(cmdline)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go
+index a8a2b0b0..888f21d3 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -tags linux,ppc64le syscall_linux.go syscall_linux_ppc64x.go
++// go run mksyscall.go -tags linux,ppc64le syscall_linux.go syscall_linux_ppc64x.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build linux,ppc64le
+@@ -14,1270 +14,8 @@ var _ syscall.Errno
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fchmodat(dirfd int, path string, mode uint32) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ioctl(fd int, req uint, arg uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(buf) > 0 {
+- _p1 = unsafe.Pointer(&buf[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unlinkat(dirfd int, path string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func utimes(path string, times *[2]Timeval) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) {
+- _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getcwd(buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+- r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+- wpid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlJoin(cmd int, arg2 string) (ret int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg2)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg3)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(arg4)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(payload) > 0 {
+- _p0 = unsafe.Pointer(&payload[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(source)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(target)
+- if err != nil {
+- return
+- }
+- var _p2 *byte
+- _p2, err = BytePtrFromString(fstype)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Acct(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(keyType)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(description)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(payload) > 0 {
+- _p2 = unsafe.Pointer(&payload[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)
+- id = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Adjtimex(buf *Timex) (state int, err error) {
+- r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)
+- state = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Chdir(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Chroot(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ClockGettime(clockid int32, time *Timespec) (err error) {
+- _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Close(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup(oldfd int) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup3(oldfd int, newfd int, flags int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCreate(size int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCreate1(flag int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {
+- _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Eventfd(initval uint, flags int) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Exit(code int) {
+- Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
+- _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchdir(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchmod(fd int, mode uint32) (err error) {
+- _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fdatasync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Flock(fd int, how int) (err error) {
+- _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fsync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getdents(fd int, buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpgid(pid int) (pgid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+- pgid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpid() (pid int) {
+- r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+- pid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getppid() (ppid int) {
+- r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+- ppid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpriority(which int, who int) (prio int, err error) {
+- r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+- prio = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getrandom(buf []byte, flags int) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getrusage(who int, rusage *Rusage) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getsid(pid int) (sid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+- sid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Gettid() (tid int) {
+- r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0)
+- tid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(dest) > 0 {
+- _p2 = unsafe.Pointer(&dest[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(pathname)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))
+- watchdesc = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyInit1(flags int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {
+- r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)
+- success = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Kill(pid int, sig syscall.Signal) (err error) {
+- _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Klogctl(typ int, buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(dest) > 0 {
+- _p2 = unsafe.Pointer(&dest[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Listxattr(path string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(dest) > 0 {
+- _p1 = unsafe.Pointer(&dest[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Llistxattr(path string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(dest) > 0 {
+- _p1 = unsafe.Pointer(&dest[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lremovexattr(path string, attr string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lsetxattr(path string, attr string, data []byte, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(data) > 0 {
+- _p2 = unsafe.Pointer(&data[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+- _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func PivotRoot(newroot string, putold string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(newroot)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(putold)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
+- _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func read(fd int, p []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Removexattr(path string, attr string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(keyType)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(description)
+- if err != nil {
+- return
+- }
+- var _p2 *byte
+- _p2, err = BytePtrFromString(callback)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)
+- id = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setdomainname(p []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sethostname(p []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setpgid(pid int, pgid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setsid() (pid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+- pid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Settimeofday(tv *Timeval) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setns(fd int, nstype int) (err error) {
+- _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setpriority(which int, who int, prio int) (err error) {
+- _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setxattr(path string, attr string, data []byte, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(data) > 0 {
+- _p2 = unsafe.Pointer(&data[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sync() {
+- Syscall(SYS_SYNC, 0, 0, 0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Syncfs(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sysinfo(info *Sysinfo_t) (err error) {
+- _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
+- r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)
+- n = int64(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {
+- _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Times(tms *Tms) (ticks uintptr, err error) {
+- r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)
+- ticks = uintptr(r0)
++func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
++ _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1286,16 +24,8 @@ func Times(tms *Tms) (ticks uintptr, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Umask(mask int) (oldmask int) {
+- r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0)
+- oldmask = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Uname(buf *Utsname) (err error) {
+- _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)
++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
++ _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1304,13 +34,9 @@ func Uname(buf *Utsname) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Unmount(target string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(target)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
++ r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)
++ n = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1319,8 +45,8 @@ func Unmount(target string, flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Unshare(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)
++func Dup2(oldfd int, newfd int) (err error) {
++ _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1329,8 +55,9 @@ func Unshare(flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Ustat(dev int, ubuf *Ustat_t) (err error) {
+- _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
++func EpollCreate(size int) (fd int, err error) {
++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)
++ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1339,46 +66,14 @@ func Ustat(dev int, ubuf *Ustat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func write(fd int, p []byte) (n int, err error) {
++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
++ if len(events) > 0 {
++ _p0 = unsafe.Pointer(&events[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func exitThread(code int) (err error) {
+- _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func readlen(fd int, p *byte, np int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func writelen(fd int, p *byte, np int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
++ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1388,108 +83,8 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func munmap(addr uintptr, length uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Madvise(b []byte, advice int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mprotect(b []byte, prot int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mlock(b []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Munlock(b []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mlockall(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Msync(b []byte, flags int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Munlockall() (err error) {
+- _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
++func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
++ _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1498,15 +93,8 @@ func Munlockall() (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(events) > 0 {
+- _p0 = unsafe.Pointer(&events[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+- n = int(r0)
++func Fchown(fd int, uid int, gid int) (err error) {
++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1515,8 +103,8 @@ func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Dup2(oldfd int, newfd int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
++func Fstat(fd int, stat *Stat_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1525,18 +113,13 @@ func Dup2(oldfd int, newfd int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fchown(fd int, uid int, gid int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+- if e1 != 0 {
+- err = errnoErr(e1)
++func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
+ }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fstat(fd int, stat *Stat_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1566,7 +149,7 @@ func Ftruncate(fd int, length int64) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getegid() (egid int) {
+- r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)
+ egid = int(r0)
+ return
+ }
+@@ -1574,7 +157,7 @@ func Getegid() (egid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Geteuid() (euid int) {
+- r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)
+ euid = int(r0)
+ return
+ }
+@@ -1582,7 +165,7 @@ func Geteuid() (euid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getgid() (gid int) {
+- r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)
+ gid = int(r0)
+ return
+ }
+@@ -1600,7 +183,7 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getuid() (uid int) {
+- r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)
+ uid = int(r0)
+ return
+ }
+@@ -1722,6 +305,26 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(oldpath)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(newpath)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Seek(fd int, offset int64, whence int) (off int64, err error) {
+ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+ off = int64(r0)
+@@ -1734,7 +337,7 @@ func Seek(fd int, offset int64, whence int) (off int64, err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++ r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1755,8 +358,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setfsgid(gid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++func setfsgid(gid int) (prev int, err error) {
++ r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++ prev = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1765,8 +369,9 @@ func Setfsgid(gid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setfsuid(uid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++func setfsuid(uid int) (prev int, err error) {
++ r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++ prev = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1876,8 +481,13 @@ func Statfs(path string, buf *Statfs_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func SyncFileRange(fd int, off int64, n int64, flags int) (err error) {
+- _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)
++func Truncate(path string, length int64) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1886,13 +496,8 @@ func SyncFileRange(fd int, off int64, n int64, flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Truncate(path string, length int64) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
++func Ustat(dev int, ubuf *Ustat_t) (err error) {
++ _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -2091,6 +696,21 @@ func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int6
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func futimesat(dirfd int, path string, times *[2]Timeval) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Gettimeofday(tv *Timeval) (err error) {
+ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+ if e1 != 0 {
+@@ -2127,8 +747,13 @@ func Utime(path string, buf *Utimbuf) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func pipe(p *[2]_C_int) (err error) {
+- _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
++func utimes(path string, times *[2]Timeval) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -2137,8 +762,8 @@ func pipe(p *[2]_C_int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func pipe2(p *[2]_C_int, flags int) (err error) {
+- _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
++func pipe(p *[2]_C_int) (err error) {
++ _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -2155,3 +780,28 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+ }
+ return
+ }
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func syncFileRange2(fd int, flags int, off int64, n int64) (err error) {
++ _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off), uintptr(n), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(cmdline)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go
+new file mode 100644
+index 00000000..b7613344
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go
+@@ -0,0 +1,582 @@
++// go run mksyscall.go -tags linux,riscv64 syscall_linux.go syscall_linux_riscv64.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build linux,riscv64
++
++package unix
++
++import (
++ "syscall"
++ "unsafe"
++)
++
++var _ syscall.Errno
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
++ _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
++ _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
++ r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)
++ n = int64(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(events) > 0 {
++ _p0 = unsafe.Pointer(&events[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
++ _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fchown(fd int, uid int, gid int) (err error) {
++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstat(fd int, stat *Stat_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatfs(fd int, buf *Statfs_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Ftruncate(fd int, length int64) (err error) {
++ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getegid() (egid int) {
++ r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)
++ egid = int(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Geteuid() (euid int) {
++ r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)
++ euid = int(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getgid() (gid int) {
++ r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)
++ gid = int(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getrlimit(resource int, rlim *Rlimit) (err error) {
++ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getuid() (uid int) {
++ r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)
++ uid = int(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Listen(s int, n int) (err error) {
++ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Pread(fd int, p []byte, offset int64) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(p) > 0 {
++ _p0 = unsafe.Pointer(&p[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(p) > 0 {
++ _p0 = unsafe.Pointer(&p[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Seek(fd int, offset int64, whence int) (off int64, err error) {
++ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
++ off = int64(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
++ r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
++ written = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setfsgid(gid int) (prev int, err error) {
++ r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++ prev = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setfsuid(uid int) (prev int, err error) {
++ r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++ prev = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setregid(rgid int, egid int) (err error) {
++ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setresgid(rgid int, egid int, sgid int) (err error) {
++ _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setresuid(ruid int, euid int, suid int) (err error) {
++ _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setrlimit(resource int, rlim *Rlimit) (err error) {
++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setreuid(ruid int, euid int) (err error) {
++ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Shutdown(fd int, how int) (err error) {
++ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
++ r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
++ n = int64(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Statfs(path string, buf *Statfs_t) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func SyncFileRange(fd int, off int64, n int64, flags int) (err error) {
++ _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Truncate(path string, length int64) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
++ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
++ fd = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {
++ r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)
++ fd = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
++ _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
++ _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getgroups(n int, list *_Gid_t) (nn int, err error) {
++ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
++ nn = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setgroups(n int, list *_Gid_t) (err error) {
++ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
++ _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
++ _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func socket(domain int, typ int, proto int) (fd int, err error) {
++ r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))
++ fd = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
++ _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
++ _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
++ _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(p) > 0 {
++ _p0 = unsafe.Pointer(&p[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
++ var _p0 unsafe.Pointer
++ if len(buf) > 0 {
++ _p0 = unsafe.Pointer(&buf[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
++ r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
++ r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
++ r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))
++ xaddr = uintptr(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Gettimeofday(tv *Timeval) (err error) {
++ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(cmdline)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go
+index b6ff9e39..9bc353f0 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -tags linux,s390x syscall_linux.go syscall_linux_s390x.go
++// go run mksyscall.go -tags linux,s390x syscall_linux.go syscall_linux_s390x.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build linux,s390x
+@@ -14,1446 +14,8 @@ var _ syscall.Errno
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fchmodat(dirfd int, path string, mode uint32) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ioctl(fd int, req uint, arg uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(buf) > 0 {
+- _p1 = unsafe.Pointer(&buf[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unlinkat(dirfd int, path string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func utimes(path string, times *[2]Timeval) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) {
+- _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getcwd(buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+- r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+- wpid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlJoin(cmd int, arg2 string) (ret int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg2)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg3)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(arg4)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(payload) > 0 {
+- _p0 = unsafe.Pointer(&payload[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)
+- ret = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(source)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(target)
+- if err != nil {
+- return
+- }
+- var _p2 *byte
+- _p2, err = BytePtrFromString(fstype)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Acct(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(keyType)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(description)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(payload) > 0 {
+- _p2 = unsafe.Pointer(&payload[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)
+- id = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Adjtimex(buf *Timex) (state int, err error) {
+- r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)
+- state = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Chdir(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Chroot(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ClockGettime(clockid int32, time *Timespec) (err error) {
+- _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Close(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup(oldfd int) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup3(oldfd int, newfd int, flags int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCreate(size int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCreate1(flag int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {
+- _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Eventfd(initval uint, flags int) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Exit(code int) {
+- Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
+- _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchdir(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchmod(fd int, mode uint32) (err error) {
+- _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fdatasync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Flock(fd int, how int) (err error) {
+- _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fsync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getdents(fd int, buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpgid(pid int) (pgid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+- pgid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpid() (pid int) {
+- r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+- pid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getppid() (ppid int) {
+- r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+- ppid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpriority(which int, who int) (prio int, err error) {
+- r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+- prio = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getrandom(buf []byte, flags int) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getrusage(who int, rusage *Rusage) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getsid(pid int) (sid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+- sid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Gettid() (tid int) {
+- r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0)
+- tid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(dest) > 0 {
+- _p2 = unsafe.Pointer(&dest[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(pathname)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))
+- watchdesc = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyInit1(flags int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {
+- r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)
+- success = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Kill(pid int, sig syscall.Signal) (err error) {
+- _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Klogctl(typ int, buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(dest) > 0 {
+- _p2 = unsafe.Pointer(&dest[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Listxattr(path string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(dest) > 0 {
+- _p1 = unsafe.Pointer(&dest[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Llistxattr(path string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(dest) > 0 {
+- _p1 = unsafe.Pointer(&dest[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lremovexattr(path string, attr string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Lsetxattr(path string, attr string, data []byte, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(data) > 0 {
+- _p2 = unsafe.Pointer(&data[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+- _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func PivotRoot(newroot string, putold string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(newroot)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(putold)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
+- _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func read(fd int, p []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Removexattr(path string, attr string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(keyType)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(description)
+- if err != nil {
+- return
+- }
+- var _p2 *byte
+- _p2, err = BytePtrFromString(callback)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)
+- id = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setdomainname(p []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sethostname(p []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setpgid(pid int, pgid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setsid() (pid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+- pid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Settimeofday(tv *Timeval) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setns(fd int, nstype int) (err error) {
+- _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setpriority(which int, who int, prio int) (err error) {
+- _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setxattr(path string, attr string, data []byte, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(data) > 0 {
+- _p2 = unsafe.Pointer(&data[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sync() {
+- Syscall(SYS_SYNC, 0, 0, 0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Syncfs(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sysinfo(info *Sysinfo_t) (err error) {
+- _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
+- r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)
+- n = int64(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {
+- _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Times(tms *Tms) (ticks uintptr, err error) {
+- r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)
+- ticks = uintptr(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Umask(mask int) (oldmask int) {
+- r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0)
+- oldmask = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Uname(buf *Utsname) (err error) {
+- _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unmount(target string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(target)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unshare(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Ustat(dev int, ubuf *Ustat_t) (err error) {
+- _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func write(fd int, p []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func exitThread(code int) (err error) {
+- _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func readlen(fd int, p *byte, np int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func writelen(fd int, p *byte, np int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func munmap(addr uintptr, length uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Madvise(b []byte, advice int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mprotect(b []byte, prot int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mlock(b []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Munlock(b []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
++func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
++ _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1462,8 +24,8 @@ func Munlock(b []byte) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Mlockall(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
++ _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1472,14 +34,9 @@ func Mlockall(flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Msync(b []byte, flags int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
++func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
++ r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)
++ n = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1488,8 +45,8 @@ func Msync(b []byte, flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Munlockall() (err error) {
+- _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
++func Dup2(oldfd int, newfd int) (err error) {
++ _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1498,8 +55,9 @@ func Munlockall() (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Dup2(oldfd int, newfd int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
++func EpollCreate(size int) (fd int, err error) {
++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)
++ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1555,6 +113,21 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fstatfs(fd int, buf *Statfs_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)
+ if e1 != 0 {
+@@ -1576,7 +149,7 @@ func Ftruncate(fd int, length int64) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getegid() (egid int) {
+- r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)
+ egid = int(r0)
+ return
+ }
+@@ -1584,7 +157,7 @@ func Getegid() (egid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Geteuid() (euid int) {
+- r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)
+ euid = int(r0)
+ return
+ }
+@@ -1592,7 +165,7 @@ func Geteuid() (euid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getgid() (gid int) {
+- r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)
+ gid = int(r0)
+ return
+ }
+@@ -1610,7 +183,7 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getuid() (uid int) {
+- r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)
+ uid = int(r0)
+ return
+ }
+@@ -1702,6 +275,26 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(oldpath)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(newpath)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Seek(fd int, offset int64, whence int) (off int64, err error) {
+ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+ off = int64(r0)
+@@ -1735,8 +328,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setfsgid(gid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++func setfsgid(gid int) (prev int, err error) {
++ r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++ prev = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1745,8 +339,9 @@ func Setfsgid(gid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setfsuid(uid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++func setfsuid(uid int) (prev int, err error) {
++ r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++ prev = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1871,6 +466,16 @@ func Truncate(path string, length int64) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Ustat(dev int, ubuf *Ustat_t) (err error) {
++ _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func getgroups(n int, list *_Gid_t) (nn int, err error) {
+ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+ nn = int(r0)
+@@ -1892,6 +497,21 @@ func setgroups(n int, list *_Gid_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func futimesat(dirfd int, path string, times *[2]Timeval) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Gettimeofday(tv *Timeval) (err error) {
+ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+ if e1 != 0 {
+@@ -1917,8 +537,13 @@ func Utime(path string, buf *Utimbuf) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func pipe2(p *[2]_C_int, flags int) (err error) {
+- _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
++func utimes(path string, times *[2]Timeval) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1935,3 +560,18 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+ }
+ return
+ }
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(cmdline)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go
+index 2dd98434..854e816d 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -tags linux,sparc64 syscall_linux.go syscall_linux_sparc64.go
++// go run mksyscall.go -tags linux,sparc64 syscall_linux.go syscall_linux_sparc64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build linux,sparc64
+@@ -14,944 +14,8 @@ var _ syscall.Errno
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(buf) > 0 {
+- _p1 = unsafe.Pointer(&buf[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unlinkat(dirfd int, path string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func utimes(path string, times *[2]Timeval) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) {
+- _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getcwd(buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {
+- r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+- wpid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(arg)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(source)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(target)
+- if err != nil {
+- return
+- }
+- var _p2 *byte
+- _p2, err = BytePtrFromString(fstype)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Acct(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Adjtimex(buf *Timex) (state int, err error) {
+- r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)
+- state = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Chdir(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Chroot(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func ClockGettime(clockid int32, time *Timespec) (err error) {
+- _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Close(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
+- r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup(oldfd int) (fd int, err error) {
+- r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Dup3(oldfd int, newfd int, flags int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCreate(size int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCreate1(flag int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {
+- _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Exit(code int) {
+- Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
+- _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchdir(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchmod(fd int, mode uint32) (err error) {
+- _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fdatasync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Flock(fd int, how int) (err error) {
+- _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fsync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getdents(fd int, buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpgid(pid int) (pgid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)
+- pgid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpid() (pid int) {
+- r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+- pid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getppid() (ppid int) {
+- r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
+- ppid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getpriority(which int, who int) (prio int, err error) {
+- r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)
+- prio = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getrandom(buf []byte, flags int) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getrusage(who int, rusage *Rusage) (err error) {
+- _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getsid(pid int) (sid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)
+- sid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Gettid() (tid int) {
+- r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0)
+- tid = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(dest) > 0 {
+- _p2 = unsafe.Pointer(&dest[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(pathname)
+- if err != nil {
+- return
+- }
+- r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))
+- watchdesc = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyInit1(flags int) (fd int, err error) {
+- r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)
+- fd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {
+- r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)
+- success = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Kill(pid int, sig syscall.Signal) (err error) {
+- _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Klogctl(typ int, buf []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Listxattr(path string, dest []byte) (sz int, err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 unsafe.Pointer
+- if len(dest) > 0 {
+- _p1 = unsafe.Pointer(&dest[0])
+- } else {
+- _p1 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
+- sz = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+- _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func PivotRoot(newroot string, putold string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(newroot)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(putold)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {
+- _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func read(fd int, p []byte) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Removexattr(path string, attr string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(oldpath)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(newpath)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setdomainname(p []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sethostname(p []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setpgid(pid int, pgid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setsid() (pid int, err error) {
+- r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+- pid = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Settimeofday(tv *Timeval) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setns(fd int, nstype int) (err error) {
+- _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setpriority(which int, who int, prio int) (err error) {
+- _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setxattr(path string, attr string, data []byte, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(attr)
+- if err != nil {
+- return
+- }
+- var _p2 unsafe.Pointer
+- if len(data) > 0 {
+- _p2 = unsafe.Pointer(&data[0])
+- } else {
+- _p2 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
++func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
++ _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -960,15 +24,8 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Sync() {
+- Syscall(SYS_SYNC, 0, 0, 0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Sysinfo(info *Sysinfo_t) (err error) {
+- _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)
++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
++ _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -988,120 +45,14 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {
+- _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Times(tms *Tms) (ticks uintptr, err error) {
+- r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)
+- ticks = uintptr(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Umask(mask int) (oldmask int) {
+- r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0)
+- oldmask = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Uname(buf *Utsname) (err error) {
+- _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unmount(target string, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(target)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Unshare(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Ustat(dev int, ubuf *Ustat_t) (err error) {
+- _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func write(fd int, p []byte) (n int, err error) {
++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ var _p0 unsafe.Pointer
+- if len(p) > 0 {
+- _p0 = unsafe.Pointer(&p[0])
++ if len(events) > 0 {
++ _p0 = unsafe.Pointer(&events[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func exitThread(code int) (err error) {
+- _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func readlen(fd int, p *byte, np int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+- n = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func writelen(fd int, p *byte, np int) (n int, err error) {
+- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
++ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1111,82 +62,8 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func munmap(addr uintptr, length uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Madvise(b []byte, advice int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mprotect(b []byte, prot int) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mlock(b []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Munlock(b []byte) (err error) {
+- var _p0 unsafe.Pointer
+- if len(b) > 0 {
+- _p0 = unsafe.Pointer(&b[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Mlockall(flags int) (err error) {
+- _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
++func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
++ _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1195,8 +72,8 @@ func Mlockall(flags int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Munlockall() (err error) {
+- _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
++func Dup2(oldfd int, newfd int) (err error) {
++ _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1205,15 +82,8 @@ func Munlockall() (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(events) > 0 {
+- _p0 = unsafe.Pointer(&events[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+- n = int(r0)
++func Fchown(fd int, uid int, gid int) (err error) {
++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1222,8 +92,8 @@ func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Dup2(oldfd int, newfd int) (err error) {
+- _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
++func Fstat(fd int, stat *Stat_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1232,18 +102,13 @@ func Dup2(oldfd int, newfd int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fchown(fd int, uid int, gid int) (err error) {
+- _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+- if e1 != 0 {
+- err = errnoErr(e1)
++func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
+ }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Fstat(fd int, stat *Stat_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1273,7 +138,7 @@ func Ftruncate(fd int, length int64) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getegid() (egid int) {
+- r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)
+ egid = int(r0)
+ return
+ }
+@@ -1281,7 +146,7 @@ func Getegid() (egid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Geteuid() (euid int) {
+- r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)
+ euid = int(r0)
+ return
+ }
+@@ -1289,7 +154,7 @@ func Geteuid() (euid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getgid() (gid int) {
+- r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)
+ gid = int(r0)
+ return
+ }
+@@ -1307,7 +172,7 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Getuid() (uid int) {
+- r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++ r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)
+ uid = int(r0)
+ return
+ }
+@@ -1409,6 +274,26 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(oldpath)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(newpath)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Seek(fd int, offset int64, whence int) (off int64, err error) {
+ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+ off = int64(r0)
+@@ -1442,8 +327,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setfsgid(gid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++func setfsgid(gid int) (prev int, err error) {
++ r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++ prev = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1452,8 +338,9 @@ func Setfsgid(gid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setfsuid(uid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++func setfsuid(uid int) (prev int, err error) {
++ r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++ prev = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1778,6 +665,21 @@ func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int6
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func futimesat(dirfd int, path string, times *[2]Timeval) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Gettimeofday(tv *Timeval) (err error) {
+ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+ if e1 != 0 {
+@@ -1803,8 +705,13 @@ func Utime(path string, buf *Utimbuf) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func pipe(p *[2]_C_int) (err error) {
+- _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
++func utimes(path string, times *[2]Timeval) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1813,8 +720,8 @@ func pipe(p *[2]_C_int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func pipe2(p *[2]_C_int, flags int) (err error) {
+- _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
++func pipe(p *[2]_C_int) (err error) {
++ _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go
+index db99fd0c..3bbd9e39 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -l32 -netbsd -tags netbsd,386 syscall_bsd.go syscall_netbsd.go syscall_netbsd_386.go
++// go run mksyscall.go -l32 -netbsd -tags netbsd,386 syscall_bsd.go syscall_netbsd.go syscall_netbsd_386.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build netbsd,386
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+- var _p0 unsafe.Pointer
+- if len(mib) > 0 {
+- _p0 = unsafe.Pointer(&mib[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func utimes(path string, timeval *[2]Timeval) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -378,7 +362,7 @@ func pipe() (fd1 int, fd2 int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func getdents(fd int, buf []byte) (n int, err error) {
++func Getdents(fd int, buf []byte) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+@@ -395,6 +379,49 @@ func getdents(fd int, buf []byte) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Getcwd(buf []byte) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(buf) > 0 {
++ _p0 = unsafe.Pointer(&buf[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ioctl(fd int, req uint, arg uintptr) (err error) {
++ _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
++ var _p0 unsafe.Pointer
++ if len(mib) > 0 {
++ _p0 = unsafe.Pointer(&mib[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Access(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -526,6 +553,16 @@ func Dup2(from int, to int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Dup3(from int, to int, flags int) (err error) {
++ _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Exit(code int) {
+ Syscall(SYS_EXIT, uintptr(code), 0, 0)
+ return
+@@ -533,6 +570,245 @@ func Exit(code int) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {
++ r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(file)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(file)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(file)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(file)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(link)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(link)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(link)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(link)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
++ _, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), 0, uintptr(length), uintptr(length>>32), uintptr(advice), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fchdir(fd int) (err error) {
+ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+ if e1 != 0 {
+@@ -563,6 +839,21 @@ func Fchmod(fd int, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fchown(fd int, uid int, gid int) (err error) {
+ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+@@ -573,6 +864,21 @@ func Fchown(fd int, uid int, gid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Flock(fd int, how int) (err error) {
+ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+ if e1 != 0 {
+@@ -604,6 +910,31 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) {
++ _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fsync(fd int) (err error) {
+ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+ if e1 != 0 {
+@@ -807,6 +1138,26 @@ func Link(path string, link string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(link)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Listen(s int, backlog int) (err error) {
+ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
+ if e1 != 0 {
+@@ -847,6 +1198,21 @@ func Mkdir(path string, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Mkdirat(dirfd int, path string, mode uint32) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mkfifo(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -862,6 +1228,21 @@ func Mkfifo(path string, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Mkfifoat(dirfd int, path string, mode uint32) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mknod(path string, mode uint32, dev int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -877,6 +1258,21 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+ if e1 != 0 {
+@@ -903,6 +1299,22 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
++ fd = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Pathconf(path string, name int) (val int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -992,6 +1404,28 @@ func Readlink(path string, buf []byte) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 unsafe.Pointer
++ if len(buf) > 0 {
++ _p1 = unsafe.Pointer(&buf[0])
++ } else {
++ _p1 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Rename(from string, to string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(from)
+@@ -1012,6 +1446,26 @@ func Rename(from string, to string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Renameat(fromfd int, from string, tofd int, to string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(from)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(to)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Revoke(path string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1053,8 +1507,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+- _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1189,6 +1644,21 @@ func Stat(path string, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Symlink(path string, link string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1209,6 +1679,26 @@ func Symlink(path string, link string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(oldpath)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(newpath)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Sync() (err error) {
+ _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
+ if e1 != 0 {
+@@ -1257,6 +1747,21 @@ func Unlink(path string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Unlinkat(dirfd int, path string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Unmount(path string, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go
+index 7b6c2c87..d8cf5012 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -netbsd -tags netbsd,amd64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_amd64.go
++// go run mksyscall.go -netbsd -tags netbsd,amd64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_amd64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build netbsd,amd64
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+- var _p0 unsafe.Pointer
+- if len(mib) > 0 {
+- _p0 = unsafe.Pointer(&mib[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func utimes(path string, timeval *[2]Timeval) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -378,7 +362,7 @@ func pipe() (fd1 int, fd2 int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func getdents(fd int, buf []byte) (n int, err error) {
++func Getdents(fd int, buf []byte) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+@@ -395,6 +379,49 @@ func getdents(fd int, buf []byte) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Getcwd(buf []byte) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(buf) > 0 {
++ _p0 = unsafe.Pointer(&buf[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ioctl(fd int, req uint, arg uintptr) (err error) {
++ _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
++ var _p0 unsafe.Pointer
++ if len(mib) > 0 {
++ _p0 = unsafe.Pointer(&mib[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Access(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -526,6 +553,16 @@ func Dup2(from int, to int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Dup3(from int, to int, flags int) (err error) {
++ _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Exit(code int) {
+ Syscall(SYS_EXIT, uintptr(code), 0, 0)
+ return
+@@ -533,6 +570,245 @@ func Exit(code int) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {
++ r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(file)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(file)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(file)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(file)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(link)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(link)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(link)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(link)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
++ _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), 0, uintptr(length), uintptr(advice))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fchdir(fd int) (err error) {
+ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+ if e1 != 0 {
+@@ -563,6 +839,21 @@ func Fchmod(fd int, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fchown(fd int, uid int, gid int) (err error) {
+ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+@@ -573,6 +864,21 @@ func Fchown(fd int, uid int, gid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Flock(fd int, how int) (err error) {
+ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+ if e1 != 0 {
+@@ -604,6 +910,31 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) {
++ _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fsync(fd int) (err error) {
+ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+ if e1 != 0 {
+@@ -807,6 +1138,26 @@ func Link(path string, link string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(link)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Listen(s int, backlog int) (err error) {
+ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
+ if e1 != 0 {
+@@ -847,6 +1198,21 @@ func Mkdir(path string, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Mkdirat(dirfd int, path string, mode uint32) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mkfifo(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -862,6 +1228,21 @@ func Mkfifo(path string, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Mkfifoat(dirfd int, path string, mode uint32) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mknod(path string, mode uint32, dev int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -877,6 +1258,21 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+ if e1 != 0 {
+@@ -903,6 +1299,22 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
++ fd = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Pathconf(path string, name int) (val int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -992,6 +1404,28 @@ func Readlink(path string, buf []byte) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 unsafe.Pointer
++ if len(buf) > 0 {
++ _p1 = unsafe.Pointer(&buf[0])
++ } else {
++ _p1 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Rename(from string, to string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(from)
+@@ -1012,6 +1446,26 @@ func Rename(from string, to string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Renameat(fromfd int, from string, tofd int, to string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(from)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(to)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Revoke(path string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1053,8 +1507,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+- _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1189,6 +1644,21 @@ func Stat(path string, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Symlink(path string, link string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1209,6 +1679,26 @@ func Symlink(path string, link string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(oldpath)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(newpath)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Sync() (err error) {
+ _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
+ if e1 != 0 {
+@@ -1257,6 +1747,21 @@ func Unlink(path string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Unlinkat(dirfd int, path string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Unmount(path string, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go
+index 0f4cc3b5..1153fe69 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -l32 -netbsd -arm -tags netbsd,arm syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm.go
++// go run mksyscall.go -l32 -netbsd -arm -tags netbsd,arm syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build netbsd,arm
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+- var _p0 unsafe.Pointer
+- if len(mib) > 0 {
+- _p0 = unsafe.Pointer(&mib[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func utimes(path string, timeval *[2]Timeval) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -378,7 +362,7 @@ func pipe() (fd1 int, fd2 int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func getdents(fd int, buf []byte) (n int, err error) {
++func Getdents(fd int, buf []byte) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+@@ -395,6 +379,49 @@ func getdents(fd int, buf []byte) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Getcwd(buf []byte) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(buf) > 0 {
++ _p0 = unsafe.Pointer(&buf[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ioctl(fd int, req uint, arg uintptr) (err error) {
++ _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
++ var _p0 unsafe.Pointer
++ if len(mib) > 0 {
++ _p0 = unsafe.Pointer(&mib[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Access(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -526,6 +553,16 @@ func Dup2(from int, to int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Dup3(from int, to int, flags int) (err error) {
++ _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Exit(code int) {
+ Syscall(SYS_EXIT, uintptr(code), 0, 0)
+ return
+@@ -533,6 +570,245 @@ func Exit(code int) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {
++ r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(file)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(file)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(file)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(file)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(link)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(link)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(link)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(attrname)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(link)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
++ ret = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
++ _, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), 0, uintptr(length), uintptr(length>>32), uintptr(advice), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fchdir(fd int) (err error) {
+ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+ if e1 != 0 {
+@@ -563,6 +839,21 @@ func Fchmod(fd int, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fchown(fd int, uid int, gid int) (err error) {
+ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+@@ -573,6 +864,21 @@ func Fchown(fd int, uid int, gid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Flock(fd int, how int) (err error) {
+ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+ if e1 != 0 {
+@@ -604,6 +910,31 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) {
++ _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fsync(fd int) (err error) {
+ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+ if e1 != 0 {
+@@ -807,6 +1138,26 @@ func Link(path string, link string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(link)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Listen(s int, backlog int) (err error) {
+ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
+ if e1 != 0 {
+@@ -847,6 +1198,21 @@ func Mkdir(path string, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Mkdirat(dirfd int, path string, mode uint32) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mkfifo(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -862,6 +1228,21 @@ func Mkfifo(path string, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Mkfifoat(dirfd int, path string, mode uint32) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mknod(path string, mode uint32, dev int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -877,6 +1258,21 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+ if e1 != 0 {
+@@ -903,6 +1299,22 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
++ fd = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Pathconf(path string, name int) (val int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -992,6 +1404,28 @@ func Readlink(path string, buf []byte) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 unsafe.Pointer
++ if len(buf) > 0 {
++ _p1 = unsafe.Pointer(&buf[0])
++ } else {
++ _p1 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Rename(from string, to string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(from)
+@@ -1012,6 +1446,26 @@ func Rename(from string, to string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Renameat(fromfd int, from string, tofd int, to string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(from)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(to)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Revoke(path string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1053,8 +1507,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+- _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1189,6 +1644,21 @@ func Stat(path string, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Symlink(path string, link string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1209,6 +1679,26 @@ func Symlink(path string, link string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(oldpath)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(newpath)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Sync() (err error) {
+ _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
+ if e1 != 0 {
+@@ -1257,6 +1747,21 @@ func Unlink(path string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Unlinkat(dirfd int, path string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Unmount(path string, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go
+similarity index 92%
+copy from vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go
+copy to vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go
+index ac1e8e01..24b4ebb4 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go
+@@ -1,7 +1,7 @@
+-// mksyscall.pl -tags freebsd,amd64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_amd64.go
++// go run mksyscall.go -netbsd -tags netbsd,arm64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+-// +build freebsd,amd64
++// +build netbsd,arm64
+
+ package unix
+
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+- var _p0 unsafe.Pointer
+- if len(mib) > 0 {
+- _p0 = unsafe.Pointer(&mib[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func utimes(path string, timeval *[2]Timeval) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -366,10 +350,10 @@ func Munlockall() (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func pipe() (r int, w int, err error) {
++func pipe() (fd1 int, fd2 int, err error) {
+ r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
+- r = int(r0)
+- w = int(r1)
++ fd1 = int(r0)
++ fd2 = int(r1)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -378,8 +362,15 @@ func pipe() (r int, w int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func ioctl(fd int, req uint, arg uintptr) (err error) {
+- _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
++func Getdents(fd int, buf []byte) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(buf) > 0 {
++ _p0 = unsafe.Pointer(&buf[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -388,13 +379,15 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Access(path string, mode uint32) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
++func Getcwd(buf []byte) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(buf) > 0 {
++ _p0 = unsafe.Pointer(&buf[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
+ }
+- _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++ r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -403,8 +396,8 @@ func Access(path string, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+- _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
++func ioctl(fd int, req uint, arg uintptr) (err error) {
++ _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -413,8 +406,14 @@ func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func CapEnter() (err error) {
+- _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0)
++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
++ var _p0 unsafe.Pointer
++ if len(mib) > 0 {
++ _p0 = unsafe.Pointer(&mib[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -423,8 +422,13 @@ func CapEnter() (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func capRightsGet(version int, fd int, rightsp *CapRights) (err error) {
+- _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp)))
++func Access(path string, mode uint32) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -433,8 +437,8 @@ func capRightsGet(version int, fd int, rightsp *CapRights) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func capRightsLimit(fd int, rightsp *CapRights) (err error) {
+- _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0)
++func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
++ _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -549,6 +553,16 @@ func Dup2(from int, to int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Dup3(from int, to int, flags int) (err error) {
++ _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Exit(code int) {
+ Syscall(SYS_EXIT, uintptr(code), 0, 0)
+ return
+@@ -770,8 +784,13 @@ func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
+- _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)
++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -780,13 +799,8 @@ func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
++ _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), 0, uintptr(length), uintptr(advice))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -896,8 +910,13 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fstatfs(fd int, stat *Statfs_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -906,8 +925,8 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fsync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
++func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) {
++ _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -916,8 +935,8 @@ func Fsync(fd int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Ftruncate(fd int, length int64) (err error) {
+- _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)
++func Fsync(fd int) (err error) {
++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -926,15 +945,8 @@ func Ftruncate(fd int, length int64) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
+- n = int(r0)
++func Ftruncate(fd int, length int64) (err error) {
++ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -943,14 +955,6 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Getdtablesize() (size int) {
+- r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
+- size = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func Getegid() (egid int) {
+ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+ egid = int(r0)
+@@ -1224,6 +1228,21 @@ func Mkfifo(path string, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Mkfifoat(dirfd int, path string, mode uint32) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mknod(path string, mode uint32, dev int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1239,6 +1258,21 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+ if e1 != 0 {
+@@ -1265,13 +1299,13 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) {
++func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+- r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
++ r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1304,7 +1338,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
++ r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1321,7 +1355,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
++ r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1463,7 +1497,7 @@ func Rmdir(path string) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+- r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
++ r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0)
+ newoffset = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1473,8 +1507,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+- _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1513,21 +1548,6 @@ func Setgid(gid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setlogin(name string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(name)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func Setpgid(pid int, pgid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)
+ if e1 != 0 {
+@@ -1568,26 +1588,6 @@ func Setreuid(ruid int, euid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setresgid(rgid int, egid int, sgid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func Setresuid(ruid int, euid int, suid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func Setrlimit(which int, lim *Rlimit) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+ if e1 != 0 {
+@@ -1644,13 +1644,13 @@ func Stat(path string, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Statfs(path string, stat *Statfs_t) (err error) {
++func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1715,7 +1715,7 @@ func Truncate(path string, length int64) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
++ _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1732,21 +1732,6 @@ func Umask(newmask int) (oldmask int) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Undelete(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func Unlink(path string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1810,7 +1795,7 @@ func write(fd int, p []byte) (n int, err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
+- r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))
++ r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0)
+ ret = uintptr(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1852,17 +1837,6 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {
+- r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)
+- nfd = int(r0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go
+index 7baea87c..b44b31ae 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -l32 -openbsd -tags openbsd,386 syscall_bsd.go syscall_openbsd.go syscall_openbsd_386.go
++// go run mksyscall.go -l32 -openbsd -tags openbsd,386 syscall_bsd.go syscall_openbsd.go syscall_openbsd_386.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build openbsd,386
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+- var _p0 unsafe.Pointer
+- if len(mib) > 0 {
+- _p0 = unsafe.Pointer(&mib[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func utimes(path string, timeval *[2]Timeval) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -366,8 +350,8 @@ func Munlockall() (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func pipe(p *[2]_C_int) (err error) {
+- _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
++func pipe2(p *[2]_C_int, flags int) (err error) {
++ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -376,7 +360,7 @@ func pipe(p *[2]_C_int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func getdents(fd int, buf []byte) (n int, err error) {
++func Getdents(fd int, buf []byte) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+@@ -393,6 +377,60 @@ func getdents(fd int, buf []byte) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Getcwd(buf []byte) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(buf) > 0 {
++ _p0 = unsafe.Pointer(&buf[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ioctl(fd int, req uint, arg uintptr) (err error) {
++ _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
++ var _p0 unsafe.Pointer
++ if len(mib) > 0 {
++ _p0 = unsafe.Pointer(&mib[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
++ r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Access(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -524,6 +562,16 @@ func Dup2(from int, to int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Dup3(from int, to int, flags int) (err error) {
++ _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Exit(code int) {
+ Syscall(SYS_EXIT, uintptr(code), 0, 0)
+ return
+@@ -531,6 +579,21 @@ func Exit(code int) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fchdir(fd int) (err error) {
+ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+ if e1 != 0 {
+@@ -561,6 +624,21 @@ func Fchmod(fd int, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fchown(fd int, uid int, gid int) (err error) {
+ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+@@ -571,6 +649,21 @@ func Fchown(fd int, uid int, gid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Flock(fd int, how int) (err error) {
+ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+ if e1 != 0 {
+@@ -602,6 +695,21 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fstatfs(fd int, stat *Statfs_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+@@ -712,6 +820,17 @@ func Getrlimit(which int, lim *Rlimit) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Getrtable() (rtable int, err error) {
++ r0, _, e1 := RawSyscall(SYS_GETRTABLE, 0, 0, 0)
++ rtable = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getrusage(who int, rusage *Rusage) (err error) {
+ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+ if e1 != 0 {
+@@ -815,6 +934,26 @@ func Link(path string, link string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(link)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Listen(s int, backlog int) (err error) {
+ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
+ if e1 != 0 {
+@@ -855,6 +994,21 @@ func Mkdir(path string, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Mkdirat(dirfd int, path string, mode uint32) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mkfifo(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -870,6 +1024,21 @@ func Mkfifo(path string, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Mkfifoat(dirfd int, path string, mode uint32) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mknod(path string, mode uint32, dev int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -885,6 +1054,21 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+ if e1 != 0 {
+@@ -911,6 +1095,22 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
++ fd = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Pathconf(path string, name int) (val int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1000,6 +1200,28 @@ func Readlink(path string, buf []byte) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 unsafe.Pointer
++ if len(buf) > 0 {
++ _p1 = unsafe.Pointer(&buf[0])
++ } else {
++ _p1 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Rename(from string, to string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(from)
+@@ -1020,6 +1242,26 @@ func Rename(from string, to string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Renameat(fromfd int, from string, tofd int, to string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(from)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(to)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Revoke(path string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1061,8 +1303,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+- _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1186,6 +1429,16 @@ func Setrlimit(which int, lim *Rlimit) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Setrtable(rtable int) (err error) {
++ _, _, e1 := RawSyscall(SYS_SETRTABLE, uintptr(rtable), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Setsid() (pid int, err error) {
+ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+ pid = int(r0)
+@@ -1267,6 +1520,26 @@ func Symlink(path string, link string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(oldpath)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(newpath)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Sync() (err error) {
+ _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
+ if e1 != 0 {
+@@ -1315,6 +1588,21 @@ func Unlink(path string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Unlinkat(dirfd int, path string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Unmount(path string, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go
+index 0d69ce6b..67f93ee7 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -openbsd -tags openbsd,amd64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_amd64.go
++// go run mksyscall.go -openbsd -tags openbsd,amd64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_amd64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build openbsd,amd64
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+- var _p0 unsafe.Pointer
+- if len(mib) > 0 {
+- _p0 = unsafe.Pointer(&mib[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func utimes(path string, timeval *[2]Timeval) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -366,8 +350,8 @@ func Munlockall() (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func pipe(p *[2]_C_int) (err error) {
+- _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
++func pipe2(p *[2]_C_int, flags int) (err error) {
++ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -376,7 +360,7 @@ func pipe(p *[2]_C_int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func getdents(fd int, buf []byte) (n int, err error) {
++func Getdents(fd int, buf []byte) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+@@ -393,6 +377,60 @@ func getdents(fd int, buf []byte) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Getcwd(buf []byte) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(buf) > 0 {
++ _p0 = unsafe.Pointer(&buf[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ioctl(fd int, req uint, arg uintptr) (err error) {
++ _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
++ var _p0 unsafe.Pointer
++ if len(mib) > 0 {
++ _p0 = unsafe.Pointer(&mib[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
++ r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Access(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -524,6 +562,16 @@ func Dup2(from int, to int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Dup3(from int, to int, flags int) (err error) {
++ _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Exit(code int) {
+ Syscall(SYS_EXIT, uintptr(code), 0, 0)
+ return
+@@ -531,6 +579,21 @@ func Exit(code int) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fchdir(fd int) (err error) {
+ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+ if e1 != 0 {
+@@ -561,6 +624,21 @@ func Fchmod(fd int, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fchown(fd int, uid int, gid int) (err error) {
+ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+@@ -571,6 +649,21 @@ func Fchown(fd int, uid int, gid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Flock(fd int, how int) (err error) {
+ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+ if e1 != 0 {
+@@ -602,6 +695,21 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fstatfs(fd int, stat *Statfs_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+@@ -712,6 +820,17 @@ func Getrlimit(which int, lim *Rlimit) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Getrtable() (rtable int, err error) {
++ r0, _, e1 := RawSyscall(SYS_GETRTABLE, 0, 0, 0)
++ rtable = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getrusage(who int, rusage *Rusage) (err error) {
+ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+ if e1 != 0 {
+@@ -815,6 +934,26 @@ func Link(path string, link string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(link)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Listen(s int, backlog int) (err error) {
+ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
+ if e1 != 0 {
+@@ -855,6 +994,21 @@ func Mkdir(path string, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Mkdirat(dirfd int, path string, mode uint32) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mkfifo(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -870,6 +1024,21 @@ func Mkfifo(path string, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Mkfifoat(dirfd int, path string, mode uint32) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mknod(path string, mode uint32, dev int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -885,6 +1054,21 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+ if e1 != 0 {
+@@ -911,6 +1095,22 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
++ fd = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Pathconf(path string, name int) (val int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1000,6 +1200,28 @@ func Readlink(path string, buf []byte) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 unsafe.Pointer
++ if len(buf) > 0 {
++ _p1 = unsafe.Pointer(&buf[0])
++ } else {
++ _p1 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Rename(from string, to string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(from)
+@@ -1020,6 +1242,26 @@ func Rename(from string, to string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Renameat(fromfd int, from string, tofd int, to string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(from)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(to)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Revoke(path string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1061,8 +1303,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+- _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1186,6 +1429,16 @@ func Setrlimit(which int, lim *Rlimit) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Setrtable(rtable int) (err error) {
++ _, _, e1 := RawSyscall(SYS_SETRTABLE, uintptr(rtable), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Setsid() (pid int, err error) {
+ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+ pid = int(r0)
+@@ -1267,6 +1520,26 @@ func Symlink(path string, link string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(oldpath)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(newpath)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Sync() (err error) {
+ _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
+ if e1 != 0 {
+@@ -1315,6 +1588,21 @@ func Unlink(path string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Unlinkat(dirfd int, path string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Unmount(path string, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go
+index 41572c26..d7c878b1 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -l32 -openbsd -arm -tags openbsd,arm syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm.go
++// go run mksyscall.go -l32 -openbsd -arm -tags openbsd,arm syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build openbsd,arm
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+- var _p0 unsafe.Pointer
+- if len(mib) > 0 {
+- _p0 = unsafe.Pointer(&mib[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func utimes(path string, timeval *[2]Timeval) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -366,8 +350,8 @@ func Munlockall() (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func pipe(p *[2]_C_int) (err error) {
+- _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
++func pipe2(p *[2]_C_int, flags int) (err error) {
++ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -376,7 +360,7 @@ func pipe(p *[2]_C_int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func getdents(fd int, buf []byte) (n int, err error) {
++func Getdents(fd int, buf []byte) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+@@ -393,6 +377,60 @@ func getdents(fd int, buf []byte) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Getcwd(buf []byte) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(buf) > 0 {
++ _p0 = unsafe.Pointer(&buf[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ioctl(fd int, req uint, arg uintptr) (err error) {
++ _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
++ var _p0 unsafe.Pointer
++ if len(mib) > 0 {
++ _p0 = unsafe.Pointer(&mib[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
++ r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Access(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -524,6 +562,16 @@ func Dup2(from int, to int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Dup3(from int, to int, flags int) (err error) {
++ _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Exit(code int) {
+ Syscall(SYS_EXIT, uintptr(code), 0, 0)
+ return
+@@ -531,6 +579,21 @@ func Exit(code int) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fchdir(fd int) (err error) {
+ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+ if e1 != 0 {
+@@ -561,6 +624,21 @@ func Fchmod(fd int, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fchown(fd int, uid int, gid int) (err error) {
+ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+@@ -571,6 +649,21 @@ func Fchown(fd int, uid int, gid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Flock(fd int, how int) (err error) {
+ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+ if e1 != 0 {
+@@ -602,6 +695,21 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fstatfs(fd int, stat *Statfs_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+@@ -712,6 +820,17 @@ func Getrlimit(which int, lim *Rlimit) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Getrtable() (rtable int, err error) {
++ r0, _, e1 := RawSyscall(SYS_GETRTABLE, 0, 0, 0)
++ rtable = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getrusage(who int, rusage *Rusage) (err error) {
+ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+ if e1 != 0 {
+@@ -815,6 +934,26 @@ func Link(path string, link string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(link)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Listen(s int, backlog int) (err error) {
+ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
+ if e1 != 0 {
+@@ -855,6 +994,21 @@ func Mkdir(path string, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Mkdirat(dirfd int, path string, mode uint32) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mkfifo(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -870,6 +1024,21 @@ func Mkfifo(path string, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Mkfifoat(dirfd int, path string, mode uint32) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mknod(path string, mode uint32, dev int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -885,6 +1054,21 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
+ if e1 != 0 {
+@@ -911,6 +1095,22 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
++ fd = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Pathconf(path string, name int) (val int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1000,6 +1200,28 @@ func Readlink(path string, buf []byte) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ var _p1 unsafe.Pointer
++ if len(buf) > 0 {
++ _p1 = unsafe.Pointer(&buf[0])
++ } else {
++ _p1 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Rename(from string, to string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(from)
+@@ -1020,6 +1242,26 @@ func Rename(from string, to string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Renameat(fromfd int, from string, tofd int, to string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(from)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(to)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Revoke(path string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1061,8 +1303,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+- _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1186,6 +1429,16 @@ func Setrlimit(which int, lim *Rlimit) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Setrtable(rtable int) (err error) {
++ _, _, e1 := RawSyscall(SYS_SETRTABLE, uintptr(rtable), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Setsid() (pid int, err error) {
+ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+ pid = int(r0)
+@@ -1267,6 +1520,26 @@ func Symlink(path string, link string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(oldpath)
++ if err != nil {
++ return
++ }
++ var _p1 *byte
++ _p1, err = BytePtrFromString(newpath)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Sync() (err error) {
+ _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
+ if e1 != 0 {
+@@ -1315,6 +1588,21 @@ func Unlink(path string) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Unlinkat(dirfd int, path string, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Unmount(path string, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go
+similarity index 87%
+copy from vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go
+copy to vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go
+index 10491e9e..8facd695 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go
+@@ -1,7 +1,7 @@
+-// mksyscall.pl -l32 -tags darwin,386 syscall_bsd.go syscall_darwin.go syscall_darwin_386.go
++// go run mksyscall.go -openbsd -tags openbsd,arm64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+-// +build darwin,386
++// +build openbsd,arm64
+
+ package unix
+
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
+- var _p0 unsafe.Pointer
+- if len(mib) > 0 {
+- _p0 = unsafe.Pointer(&mib[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func utimes(path string, timeval *[2]Timeval) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func fcntl(fd int, cmd int, arg int) (val int, err error) {
+- r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg))
+- val = int(r0)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -366,8 +350,8 @@ func Munlockall() (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+- _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
++func pipe2(p *[2]_C_int, flags int) (err error) {
++ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -376,10 +360,15 @@ func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func pipe() (r int, w int, err error) {
+- r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
+- r = int(r0)
+- w = int(r1)
++func Getdents(fd int, buf []byte) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(buf) > 0 {
++ _p0 = unsafe.Pointer(&buf[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -388,8 +377,15 @@ func pipe() (r int, w int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func kill(pid int, signum int, posix int) (err error) {
+- _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix))
++func Getcwd(buf []byte) (n int, err error) {
++ var _p0 unsafe.Pointer
++ if len(buf) > 0 {
++ _p0 = unsafe.Pointer(&buf[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -408,6 +404,33 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {
++ var _p0 unsafe.Pointer
++ if len(mib) > 0 {
++ _p0 = unsafe.Pointer(&mib[0])
++ } else {
++ _p0 = unsafe.Pointer(&_zero)
++ }
++ _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
++ r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Access(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -539,18 +562,8 @@ func Dup2(from int, to int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Exchangedata(path1 string, path2 string, options int) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path1)
+- if err != nil {
+- return
+- }
+- var _p1 *byte
+- _p1, err = BytePtrFromString(path2)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
++func Dup3(from int, to int, flags int) (err error) {
++ _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -673,7 +686,7 @@ func Fpathconf(fd int, name int) (val int, err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Fstat(fd int, stat *Stat_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -682,8 +695,13 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fstatfs(fd int, stat *Statfs_t) (err error) {
+- _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -692,8 +710,8 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Fsync(fd int) (err error) {
+- _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
++func Fstatfs(fd int, stat *Statfs_t) (err error) {
++ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -702,8 +720,8 @@ func Fsync(fd int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Ftruncate(fd int, length int64) (err error) {
+- _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32))
++func Fsync(fd int) (err error) {
++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -712,15 +730,8 @@ func Ftruncate(fd int, length int64) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+- var _p0 unsafe.Pointer
+- if len(buf) > 0 {
+- _p0 = unsafe.Pointer(&buf[0])
+- } else {
+- _p0 = unsafe.Pointer(&_zero)
+- }
+- r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
+- n = int(r0)
++func Ftruncate(fd int, length int64) (err error) {
++ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -729,14 +740,6 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Getdtablesize() (size int) {
+- r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
+- size = int(r0)
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func Getegid() (egid int) {
+ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+ egid = int(r0)
+@@ -817,6 +820,17 @@ func Getrlimit(which int, lim *Rlimit) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Getrtable() (rtable int, err error) {
++ r0, _, e1 := RawSyscall(SYS_GETRTABLE, 0, 0, 0)
++ rtable = int(r0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getrusage(who int, rusage *Rusage) (err error) {
+ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+ if e1 != 0 {
+@@ -838,6 +852,16 @@ func Getsid(pid int) (sid int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Gettimeofday(tv *Timeval) (err error) {
++ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getuid() (uid int) {
+ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+ uid = int(r0)
+@@ -847,13 +871,23 @@ func Getuid() (uid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Issetugid() (tainted bool) {
+- r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0)
++ r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)
+ tainted = bool(r0 != 0)
+ return
+ }
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Kill(pid int, signum syscall.Signal) (err error) {
++ _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Kqueue() (fd int, err error) {
+ r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)
+ fd = int(r0)
+@@ -936,7 +970,7 @@ func Lstat(path string, stat *Stat_t) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -990,6 +1024,21 @@ func Mkfifo(path string, mode uint32) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Mkfifoat(dirfd int, path string, mode uint32) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mknod(path string, mode uint32, dev int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1005,6 +1054,31 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
++ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1060,7 +1134,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
++ r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1077,7 +1151,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+- r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
++ r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1219,8 +1293,8 @@ func Rmdir(path string) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+- r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0)
+- newoffset = int64(int64(r1)<<32 | int64(r0))
++ r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0)
++ newoffset = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1229,8 +1303,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+- _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1240,7 +1315,7 @@ func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func Setegid(egid int) (err error) {
+- _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0)
++ _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1304,8 +1379,8 @@ func Setpriority(which int, who int, prio int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setprivexec(flag int) (err error) {
+- _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0)
++func Setregid(rgid int, egid int) (err error) {
++ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1314,8 +1389,8 @@ func Setprivexec(flag int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setregid(rgid int, egid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
++func Setreuid(ruid int, euid int) (err error) {
++ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1324,8 +1399,18 @@ func Setregid(rgid int, egid int) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Setreuid(ruid int, euid int) (err error) {
+- _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
++func Setresgid(rgid int, egid int, sgid int) (err error) {
++ _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setresuid(ruid int, euid int, suid int) (err error) {
++ _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1344,6 +1429,16 @@ func Setrlimit(which int, lim *Rlimit) (err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
++func Setrtable(rtable int) (err error) {
++ _, _, e1 := RawSyscall(SYS_SETRTABLE, uintptr(rtable), 0, 0)
++ if e1 != 0 {
++ err = errnoErr(e1)
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Setsid() (pid int, err error) {
+ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)
+ pid = int(r0)
+@@ -1381,7 +1476,7 @@ func Stat(path string, stat *Stat_t) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1396,7 +1491,7 @@ func Statfs(path string, stat *Statfs_t) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++ _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1461,7 +1556,7 @@ func Truncate(path string, length int64) (err error) {
+ if err != nil {
+ return
+ }
+- _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))
++ _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+@@ -1478,21 +1573,6 @@ func Umask(newmask int) (oldmask int) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func Undelete(path string) (err error) {
+- var _p0 *byte
+- _p0, err = BytePtrFromString(path)
+- if err != nil {
+- return
+- }
+- _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+- if e1 != 0 {
+- err = errnoErr(e1)
+- }
+- return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+ func Unlink(path string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1556,7 +1636,7 @@ func write(fd int, p []byte) (n int, err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
+- r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0)
++ r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0)
+ ret = uintptr(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+@@ -1598,10 +1678,13 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+-func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) {
+- r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
+- sec = int32(r0)
+- usec = int32(r1)
++func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go
+index 4287133d..a96165d4 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go
+@@ -1,4 +1,4 @@
+-// mksyscall_solaris.pl -tags solaris,amd64 syscall_solaris.go syscall_solaris_amd64.go
++// go run mksyscall_solaris.go -tags solaris,amd64 syscall_solaris.go syscall_solaris_amd64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build solaris,amd64
+@@ -25,7 +25,11 @@ import (
+ //go:cgo_import_dynamic libc___xnet_recvmsg __xnet_recvmsg "libsocket.so"
+ //go:cgo_import_dynamic libc___xnet_sendmsg __xnet_sendmsg "libsocket.so"
+ //go:cgo_import_dynamic libc_acct acct "libc.so"
++//go:cgo_import_dynamic libc___makedev __makedev "libc.so"
++//go:cgo_import_dynamic libc___major __major "libc.so"
++//go:cgo_import_dynamic libc___minor __minor "libc.so"
+ //go:cgo_import_dynamic libc_ioctl ioctl "libc.so"
++//go:cgo_import_dynamic libc_poll poll "libc.so"
+ //go:cgo_import_dynamic libc_access access "libc.so"
+ //go:cgo_import_dynamic libc_adjtime adjtime "libc.so"
+ //go:cgo_import_dynamic libc_chdir chdir "libc.so"
+@@ -37,6 +41,7 @@ import (
+ //go:cgo_import_dynamic libc_dup dup "libc.so"
+ //go:cgo_import_dynamic libc_dup2 dup2 "libc.so"
+ //go:cgo_import_dynamic libc_exit exit "libc.so"
++//go:cgo_import_dynamic libc_faccessat faccessat "libc.so"
+ //go:cgo_import_dynamic libc_fchdir fchdir "libc.so"
+ //go:cgo_import_dynamic libc_fchmod fchmod "libc.so"
+ //go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so"
+@@ -46,6 +51,7 @@ import (
+ //go:cgo_import_dynamic libc_flock flock "libc.so"
+ //go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so"
+ //go:cgo_import_dynamic libc_fstat fstat "libc.so"
++//go:cgo_import_dynamic libc_fstatat fstatat "libc.so"
+ //go:cgo_import_dynamic libc_fstatvfs fstatvfs "libc.so"
+ //go:cgo_import_dynamic libc_getdents getdents "libc.so"
+ //go:cgo_import_dynamic libc_getgid getgid "libc.so"
+@@ -75,6 +81,7 @@ import (
+ //go:cgo_import_dynamic libc_mlock mlock "libc.so"
+ //go:cgo_import_dynamic libc_mlockall mlockall "libc.so"
+ //go:cgo_import_dynamic libc_mprotect mprotect "libc.so"
++//go:cgo_import_dynamic libc_msync msync "libc.so"
+ //go:cgo_import_dynamic libc_munlock munlock "libc.so"
+ //go:cgo_import_dynamic libc_munlockall munlockall "libc.so"
+ //go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so"
+@@ -90,6 +97,7 @@ import (
+ //go:cgo_import_dynamic libc_renameat renameat "libc.so"
+ //go:cgo_import_dynamic libc_rmdir rmdir "libc.so"
+ //go:cgo_import_dynamic libc_lseek lseek "libc.so"
++//go:cgo_import_dynamic libc_select select "libc.so"
+ //go:cgo_import_dynamic libc_setegid setegid "libc.so"
+ //go:cgo_import_dynamic libc_seteuid seteuid "libc.so"
+ //go:cgo_import_dynamic libc_setgid setgid "libc.so"
+@@ -121,6 +129,7 @@ import (
+ //go:cgo_import_dynamic libc___xnet_connect __xnet_connect "libsocket.so"
+ //go:cgo_import_dynamic libc_mmap mmap "libc.so"
+ //go:cgo_import_dynamic libc_munmap munmap "libc.so"
++//go:cgo_import_dynamic libc_sendfile sendfile "libsendfile.so"
+ //go:cgo_import_dynamic libc___xnet_sendto __xnet_sendto "libsocket.so"
+ //go:cgo_import_dynamic libc___xnet_socket __xnet_socket "libsocket.so"
+ //go:cgo_import_dynamic libc___xnet_socketpair __xnet_socketpair "libsocket.so"
+@@ -129,7 +138,6 @@ import (
+ //go:cgo_import_dynamic libc_getpeername getpeername "libsocket.so"
+ //go:cgo_import_dynamic libc_setsockopt setsockopt "libsocket.so"
+ //go:cgo_import_dynamic libc_recvfrom recvfrom "libsocket.so"
+-//go:cgo_import_dynamic libc_sysconf sysconf "libc.so"
+
+ //go:linkname procpipe libc_pipe
+ //go:linkname procgetsockname libc_getsockname
+@@ -146,7 +154,11 @@ import (
+ //go:linkname proc__xnet_recvmsg libc___xnet_recvmsg
+ //go:linkname proc__xnet_sendmsg libc___xnet_sendmsg
+ //go:linkname procacct libc_acct
++//go:linkname proc__makedev libc___makedev
++//go:linkname proc__major libc___major
++//go:linkname proc__minor libc___minor
+ //go:linkname procioctl libc_ioctl
++//go:linkname procpoll libc_poll
+ //go:linkname procAccess libc_access
+ //go:linkname procAdjtime libc_adjtime
+ //go:linkname procChdir libc_chdir
+@@ -158,6 +170,7 @@ import (
+ //go:linkname procDup libc_dup
+ //go:linkname procDup2 libc_dup2
+ //go:linkname procExit libc_exit
++//go:linkname procFaccessat libc_faccessat
+ //go:linkname procFchdir libc_fchdir
+ //go:linkname procFchmod libc_fchmod
+ //go:linkname procFchmodat libc_fchmodat
+@@ -167,6 +180,7 @@ import (
+ //go:linkname procFlock libc_flock
+ //go:linkname procFpathconf libc_fpathconf
+ //go:linkname procFstat libc_fstat
++//go:linkname procFstatat libc_fstatat
+ //go:linkname procFstatvfs libc_fstatvfs
+ //go:linkname procGetdents libc_getdents
+ //go:linkname procGetgid libc_getgid
+@@ -196,6 +210,7 @@ import (
+ //go:linkname procMlock libc_mlock
+ //go:linkname procMlockall libc_mlockall
+ //go:linkname procMprotect libc_mprotect
++//go:linkname procMsync libc_msync
+ //go:linkname procMunlock libc_munlock
+ //go:linkname procMunlockall libc_munlockall
+ //go:linkname procNanosleep libc_nanosleep
+@@ -211,6 +226,7 @@ import (
+ //go:linkname procRenameat libc_renameat
+ //go:linkname procRmdir libc_rmdir
+ //go:linkname proclseek libc_lseek
++//go:linkname procSelect libc_select
+ //go:linkname procSetegid libc_setegid
+ //go:linkname procSeteuid libc_seteuid
+ //go:linkname procSetgid libc_setgid
+@@ -242,6 +258,7 @@ import (
+ //go:linkname proc__xnet_connect libc___xnet_connect
+ //go:linkname procmmap libc_mmap
+ //go:linkname procmunmap libc_munmap
++//go:linkname procsendfile libc_sendfile
+ //go:linkname proc__xnet_sendto libc___xnet_sendto
+ //go:linkname proc__xnet_socket libc___xnet_socket
+ //go:linkname proc__xnet_socketpair libc___xnet_socketpair
+@@ -250,7 +267,6 @@ import (
+ //go:linkname procgetpeername libc_getpeername
+ //go:linkname procsetsockopt libc_setsockopt
+ //go:linkname procrecvfrom libc_recvfrom
+-//go:linkname procsysconf libc_sysconf
+
+ var (
+ procpipe,
+@@ -268,7 +284,11 @@ var (
+ proc__xnet_recvmsg,
+ proc__xnet_sendmsg,
+ procacct,
++ proc__makedev,
++ proc__major,
++ proc__minor,
+ procioctl,
++ procpoll,
+ procAccess,
+ procAdjtime,
+ procChdir,
+@@ -280,6 +300,7 @@ var (
+ procDup,
+ procDup2,
+ procExit,
++ procFaccessat,
+ procFchdir,
+ procFchmod,
+ procFchmodat,
+@@ -289,6 +310,7 @@ var (
+ procFlock,
+ procFpathconf,
+ procFstat,
++ procFstatat,
+ procFstatvfs,
+ procGetdents,
+ procGetgid,
+@@ -318,6 +340,7 @@ var (
+ procMlock,
+ procMlockall,
+ procMprotect,
++ procMsync,
+ procMunlock,
+ procMunlockall,
+ procNanosleep,
+@@ -333,6 +356,7 @@ var (
+ procRenameat,
+ procRmdir,
+ proclseek,
++ procSelect,
+ procSetegid,
+ procSeteuid,
+ procSetgid,
+@@ -364,6 +388,7 @@ var (
+ proc__xnet_connect,
+ procmmap,
+ procmunmap,
++ procsendfile,
+ proc__xnet_sendto,
+ proc__xnet_socket,
+ proc__xnet_socketpair,
+@@ -371,10 +396,11 @@ var (
+ proc__xnet_getsockopt,
+ procgetpeername,
+ procsetsockopt,
+- procrecvfrom,
+- procsysconf syscallFunc
++ procrecvfrom syscallFunc
+ )
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func pipe(p *[2]_C_int) (n int, err error) {
+ r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe)), 1, uintptr(unsafe.Pointer(p)), 0, 0, 0, 0, 0)
+ n = int(r0)
+@@ -384,6 +410,8 @@ func pipe(p *[2]_C_int) (n int, err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetsockname)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
+ if e1 != 0 {
+@@ -392,6 +420,8 @@ func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getcwd(buf []byte) (n int, err error) {
+ var _p0 *byte
+ if len(buf) > 0 {
+@@ -405,6 +435,8 @@ func Getcwd(buf []byte) (n int, err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+ r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0)
+ n = int(r0)
+@@ -414,6 +446,8 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func setgroups(ngid int, gid *_Gid_t) (err error) {
+ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procsetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -422,6 +456,8 @@ func setgroups(ngid int, gid *_Gid_t) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error) {
+ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwait4)), 4, uintptr(pid), uintptr(unsafe.Pointer(statusp)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+ wpid = int32(r0)
+@@ -431,6 +467,8 @@ func wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32,
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func gethostname(buf []byte) (n int, err error) {
+ var _p0 *byte
+ if len(buf) > 0 {
+@@ -444,6 +482,8 @@ func gethostname(buf []byte) (n int, err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func utimes(path string, times *[2]Timeval) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -457,6 +497,8 @@ func utimes(path string, times *[2]Timeval) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -470,6 +512,8 @@ func utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func fcntl(fd int, cmd int, arg int) (val int, err error) {
+ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0)
+ val = int(r0)
+@@ -479,6 +523,8 @@ func fcntl(fd int, cmd int, arg int) (val int, err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func futimesat(fildes int, path *byte, times *[2]Timeval) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfutimesat)), 3, uintptr(fildes), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)), 0, 0, 0)
+ if e1 != 0 {
+@@ -487,6 +533,8 @@ func futimesat(fildes int, path *byte, times *[2]Timeval) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procaccept)), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
+ fd = int(r0)
+@@ -496,6 +544,8 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_recvmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)
+ n = int(r0)
+@@ -505,6 +555,8 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)
+ n = int(r0)
+@@ -514,6 +566,8 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func acct(path *byte) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procacct)), 1, uintptr(unsafe.Pointer(path)), 0, 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -522,6 +576,32 @@ func acct(path *byte) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func __makedev(version int, major uint, minor uint) (val uint64) {
++ r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__makedev)), 3, uintptr(version), uintptr(major), uintptr(minor), 0, 0, 0)
++ val = uint64(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func __major(version int, dev uint64) (val uint) {
++ r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__major)), 2, uintptr(version), uintptr(dev), 0, 0, 0, 0)
++ val = uint(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func __minor(version int, dev uint64) (val uint) {
++ r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__minor)), 2, uintptr(version), uintptr(dev), 0, 0, 0, 0)
++ val = uint(r0)
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func ioctl(fd int, req uint, arg uintptr) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0)
+ if e1 != 0 {
+@@ -530,6 +610,19 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpoll)), 3, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout), 0, 0, 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = e1
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Access(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -543,6 +636,8 @@ func Access(path string, mode uint32) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procAdjtime)), 2, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -551,6 +646,8 @@ func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Chdir(path string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -564,6 +661,8 @@ func Chdir(path string) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Chmod(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -577,6 +676,8 @@ func Chmod(path string, mode uint32) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Chown(path string, uid int, gid int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -590,6 +691,8 @@ func Chown(path string, uid int, gid int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Chroot(path string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -603,6 +706,8 @@ func Chroot(path string) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Close(fd int) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procClose)), 1, uintptr(fd), 0, 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -611,6 +716,8 @@ func Close(fd int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Creat(path string, mode uint32) (fd int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -625,6 +732,8 @@ func Creat(path string, mode uint32) (fd int, err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Dup(fd int) (nfd int, err error) {
+ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup)), 1, uintptr(fd), 0, 0, 0, 0, 0)
+ nfd = int(r0)
+@@ -634,6 +743,8 @@ func Dup(fd int) (nfd int, err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Dup2(oldfd int, newfd int) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -642,11 +753,30 @@ func Dup2(oldfd int, newfd int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Exit(code int) {
+ sysvicall6(uintptr(unsafe.Pointer(&procExit)), 1, uintptr(code), 0, 0, 0, 0, 0)
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFaccessat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = e1
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fchdir(fd int) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchdir)), 1, uintptr(fd), 0, 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -655,6 +785,8 @@ func Fchdir(fd int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fchmod(fd int, mode uint32) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -663,6 +795,8 @@ func Fchmod(fd int, mode uint32) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -676,6 +810,8 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fchown(fd int, uid int, gid int) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0)
+ if e1 != 0 {
+@@ -684,6 +820,8 @@ func Fchown(fd int, uid int, gid int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -697,6 +835,8 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fdatasync(fd int) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -705,6 +845,8 @@ func Fdatasync(fd int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Flock(fd int, how int) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFlock)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -713,6 +855,8 @@ func Flock(fd int, how int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fpathconf(fd int, name int) (val int, err error) {
+ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFpathconf)), 2, uintptr(fd), uintptr(name), 0, 0, 0, 0)
+ val = int(r0)
+@@ -722,6 +866,8 @@ func Fpathconf(fd int, name int) (val int, err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fstat(fd int, stat *Stat_t) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstat)), 2, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -730,6 +876,23 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
++ var _p0 *byte
++ _p0, err = BytePtrFromString(path)
++ if err != nil {
++ return
++ }
++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstatat)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++ if e1 != 0 {
++ err = e1
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fstatvfs(fd int, vfsstat *Statvfs_t) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstatvfs)), 2, uintptr(fd), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -738,6 +901,8 @@ func Fstatvfs(fd int, vfsstat *Statvfs_t) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getdents(fd int, buf []byte, basep *uintptr) (n int, err error) {
+ var _p0 *byte
+ if len(buf) > 0 {
+@@ -751,18 +916,24 @@ func Getdents(fd int, buf []byte, basep *uintptr) (n int, err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getgid() (gid int) {
+ r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetgid)), 0, 0, 0, 0, 0, 0, 0)
+ gid = int(r0)
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getpid() (pid int) {
+ r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpid)), 0, 0, 0, 0, 0, 0, 0)
+ pid = int(r0)
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getpgid(pid int) (pgid int, err error) {
+ r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0)
+ pgid = int(r0)
+@@ -772,6 +943,8 @@ func Getpgid(pid int) (pgid int, err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getpgrp() (pgid int, err error) {
+ r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgrp)), 0, 0, 0, 0, 0, 0, 0)
+ pgid = int(r0)
+@@ -781,24 +954,32 @@ func Getpgrp() (pgid int, err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Geteuid() (euid int) {
+ r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGeteuid)), 0, 0, 0, 0, 0, 0, 0)
+ euid = int(r0)
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getegid() (egid int) {
+ r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetegid)), 0, 0, 0, 0, 0, 0, 0)
+ egid = int(r0)
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getppid() (ppid int) {
+ r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetppid)), 0, 0, 0, 0, 0, 0, 0)
+ ppid = int(r0)
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getpriority(which int, who int) (n int, err error) {
+ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetpriority)), 2, uintptr(which), uintptr(who), 0, 0, 0, 0)
+ n = int(r0)
+@@ -808,6 +989,8 @@ func Getpriority(which int, who int) (n int, err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getrlimit(which int, lim *Rlimit) (err error) {
+ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrlimit)), 2, uintptr(which), uintptr(unsafe.Pointer(lim)), 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -816,6 +999,8 @@ func Getrlimit(which int, lim *Rlimit) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getrusage(who int, rusage *Rusage) (err error) {
+ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrusage)), 2, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -824,6 +1009,8 @@ func Getrusage(who int, rusage *Rusage) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Gettimeofday(tv *Timeval) (err error) {
+ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGettimeofday)), 1, uintptr(unsafe.Pointer(tv)), 0, 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -832,12 +1019,16 @@ func Gettimeofday(tv *Timeval) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getuid() (uid int) {
+ r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetuid)), 0, 0, 0, 0, 0, 0, 0)
+ uid = int(r0)
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Kill(pid int, signum syscall.Signal) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procKill)), 2, uintptr(pid), uintptr(signum), 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -846,6 +1037,8 @@ func Kill(pid int, signum syscall.Signal) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Lchown(path string, uid int, gid int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -859,6 +1052,8 @@ func Lchown(path string, uid int, gid int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Link(path string, link string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -877,6 +1072,8 @@ func Link(path string, link string) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Listen(s int, backlog int) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_llisten)), 2, uintptr(s), uintptr(backlog), 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -885,6 +1082,8 @@ func Listen(s int, backlog int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Lstat(path string, stat *Stat_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -898,6 +1097,8 @@ func Lstat(path string, stat *Stat_t) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Madvise(b []byte, advice int) (err error) {
+ var _p0 *byte
+ if len(b) > 0 {
+@@ -910,6 +1111,8 @@ func Madvise(b []byte, advice int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mkdir(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -923,6 +1126,8 @@ func Mkdir(path string, mode uint32) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -936,6 +1141,8 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mkfifo(path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -949,6 +1156,8 @@ func Mkfifo(path string, mode uint32) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mkfifoat(dirfd int, path string, mode uint32) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -962,6 +1171,8 @@ func Mkfifoat(dirfd int, path string, mode uint32) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mknod(path string, mode uint32, dev int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -975,6 +1186,8 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -988,6 +1201,8 @@ func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mlock(b []byte) (err error) {
+ var _p0 *byte
+ if len(b) > 0 {
+@@ -1000,6 +1215,8 @@ func Mlock(b []byte) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mlockall(flags int) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlockall)), 1, uintptr(flags), 0, 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -1008,6 +1225,8 @@ func Mlockall(flags int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mprotect(b []byte, prot int) (err error) {
+ var _p0 *byte
+ if len(b) > 0 {
+@@ -1020,6 +1239,22 @@ func Mprotect(b []byte, prot int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Msync(b []byte, flags int) (err error) {
++ var _p0 *byte
++ if len(b) > 0 {
++ _p0 = &b[0]
++ }
++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMsync)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(flags), 0, 0, 0)
++ if e1 != 0 {
++ err = e1
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Munlock(b []byte) (err error) {
+ var _p0 *byte
+ if len(b) > 0 {
+@@ -1032,6 +1267,8 @@ func Munlock(b []byte) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Munlockall() (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlockall)), 0, 0, 0, 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -1040,6 +1277,8 @@ func Munlockall() (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procNanosleep)), 2, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -1048,6 +1287,8 @@ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1062,6 +1303,8 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1076,6 +1319,8 @@ func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Pathconf(path string, name int) (val int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1090,6 +1335,8 @@ func Pathconf(path string, name int) (val int, err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Pause() (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPause)), 0, 0, 0, 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -1098,6 +1345,8 @@ func Pause() (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ var _p0 *byte
+ if len(p) > 0 {
+@@ -1111,6 +1360,8 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ var _p0 *byte
+ if len(p) > 0 {
+@@ -1124,6 +1375,8 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func read(fd int, p []byte) (n int, err error) {
+ var _p0 *byte
+ if len(p) > 0 {
+@@ -1137,6 +1390,8 @@ func read(fd int, p []byte) (n int, err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Readlink(path string, buf []byte) (n int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1155,6 +1410,8 @@ func Readlink(path string, buf []byte) (n int, err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Rename(from string, to string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(from)
+@@ -1173,6 +1430,8 @@ func Rename(from string, to string) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(oldpath)
+@@ -1191,6 +1450,8 @@ func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err e
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Rmdir(path string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1204,6 +1465,8 @@ func Rmdir(path string) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proclseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0)
+ newoffset = int64(r0)
+@@ -1213,6 +1476,19 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSelect)), 5, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
++ n = int(r0)
++ if e1 != 0 {
++ err = e1
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Setegid(egid int) (err error) {
+ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetegid)), 1, uintptr(egid), 0, 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -1221,6 +1497,8 @@ func Setegid(egid int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Seteuid(euid int) (err error) {
+ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSeteuid)), 1, uintptr(euid), 0, 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -1229,6 +1507,8 @@ func Seteuid(euid int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Setgid(gid int) (err error) {
+ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetgid)), 1, uintptr(gid), 0, 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -1237,6 +1517,8 @@ func Setgid(gid int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Sethostname(p []byte) (err error) {
+ var _p0 *byte
+ if len(p) > 0 {
+@@ -1249,6 +1531,8 @@ func Sethostname(p []byte) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Setpgid(pid int, pgid int) (err error) {
+ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -1257,6 +1541,8 @@ func Setpgid(pid int, pgid int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Setpriority(which int, who int, prio int) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSetpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 0, 0)
+ if e1 != 0 {
+@@ -1265,6 +1551,8 @@ func Setpriority(which int, who int, prio int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Setregid(rgid int, egid int) (err error) {
+ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -1273,6 +1561,8 @@ func Setregid(rgid int, egid int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Setreuid(ruid int, euid int) (err error) {
+ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -1281,6 +1571,8 @@ func Setreuid(ruid int, euid int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Setrlimit(which int, lim *Rlimit) (err error) {
+ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetrlimit)), 2, uintptr(which), uintptr(unsafe.Pointer(lim)), 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -1289,6 +1581,8 @@ func Setrlimit(which int, lim *Rlimit) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Setsid() (pid int, err error) {
+ r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetsid)), 0, 0, 0, 0, 0, 0, 0)
+ pid = int(r0)
+@@ -1298,6 +1592,8 @@ func Setsid() (pid int, err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Setuid(uid int) (err error) {
+ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetuid)), 1, uintptr(uid), 0, 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -1306,6 +1602,8 @@ func Setuid(uid int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Shutdown(s int, how int) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procshutdown)), 2, uintptr(s), uintptr(how), 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -1314,6 +1612,8 @@ func Shutdown(s int, how int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Stat(path string, stat *Stat_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1327,6 +1627,8 @@ func Stat(path string, stat *Stat_t) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Statvfs(path string, vfsstat *Statvfs_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1340,6 +1642,8 @@ func Statvfs(path string, vfsstat *Statvfs_t) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Symlink(path string, link string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1358,6 +1662,8 @@ func Symlink(path string, link string) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Sync() (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSync)), 0, 0, 0, 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -1366,6 +1672,8 @@ func Sync() (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Times(tms *Tms) (ticks uintptr, err error) {
+ r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procTimes)), 1, uintptr(unsafe.Pointer(tms)), 0, 0, 0, 0, 0)
+ ticks = uintptr(r0)
+@@ -1375,6 +1683,8 @@ func Times(tms *Tms) (ticks uintptr, err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Truncate(path string, length int64) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1388,6 +1698,8 @@ func Truncate(path string, length int64) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fsync(fd int) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFsync)), 1, uintptr(fd), 0, 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -1396,6 +1708,8 @@ func Fsync(fd int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Ftruncate(fd int, length int64) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFtruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -1404,12 +1718,16 @@ func Ftruncate(fd int, length int64) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Umask(mask int) (oldmask int) {
+ r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procUmask)), 1, uintptr(mask), 0, 0, 0, 0, 0)
+ oldmask = int(r0)
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Uname(buf *Utsname) (err error) {
+ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procUname)), 1, uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -1418,6 +1736,8 @@ func Uname(buf *Utsname) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Unmount(target string, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(target)
+@@ -1431,6 +1751,8 @@ func Unmount(target string, flags int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Unlink(path string) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1444,6 +1766,8 @@ func Unlink(path string) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Unlinkat(dirfd int, path string, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1457,6 +1781,8 @@ func Unlinkat(dirfd int, path string, flags int) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Ustat(dev int, ubuf *Ustat_t) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUstat)), 2, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -1465,6 +1791,8 @@ func Ustat(dev int, ubuf *Ustat_t) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Utime(path string, buf *Utimbuf) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+@@ -1478,6 +1806,8 @@ func Utime(path string, buf *Utimbuf) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_bind)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)
+ if e1 != 0 {
+@@ -1486,6 +1816,8 @@ func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_connect)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)
+ if e1 != 0 {
+@@ -1494,6 +1826,8 @@ func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
+ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procmmap)), 6, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))
+ ret = uintptr(r0)
+@@ -1503,6 +1837,8 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func munmap(addr uintptr, length uintptr) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procmunmap)), 2, uintptr(addr), uintptr(length), 0, 0, 0, 0)
+ if e1 != 0 {
+@@ -1511,6 +1847,19 @@ func munmap(addr uintptr, length uintptr) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsendfile)), 4, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
++ written = int(r0)
++ if e1 != 0 {
++ err = e1
++ }
++ return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+ var _p0 *byte
+ if len(buf) > 0 {
+@@ -1523,6 +1872,8 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func socket(domain int, typ int, proto int) (fd int, err error) {
+ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0)
+ fd = int(r0)
+@@ -1532,6 +1883,8 @@ func socket(domain int, typ int, proto int) (fd int, err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socketpair)), 4, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+ if e1 != 0 {
+@@ -1540,6 +1893,8 @@ func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func write(fd int, p []byte) (n int, err error) {
+ var _p0 *byte
+ if len(p) > 0 {
+@@ -1553,6 +1908,8 @@ func write(fd int, p []byte) (n int, err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_getsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+ if e1 != 0 {
+@@ -1561,6 +1918,8 @@ func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetpeername)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
+ if e1 != 0 {
+@@ -1569,6 +1928,8 @@ func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsetsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+ if e1 != 0 {
+@@ -1577,6 +1938,8 @@ func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr)
+ return
+ }
+
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+ var _p0 *byte
+ if len(p) > 0 {
+@@ -1589,12 +1952,3 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl
+ }
+ return
+ }
+-
+-func sysconf(name int) (n int64, err error) {
+- r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsysconf)), 1, uintptr(name), 0, 0, 0, 0, 0)
+- n = int64(r0)
+- if e1 != 0 {
+- err = e1
+- }
+- return
+-}
+diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go
+similarity index 99%
+copy from vendor/golang.org/x/sys/unix/zsysctl_openbsd.go
+copy to vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go
+index 83bb935b..37dcc74c 100644
+--- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd.go
++++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go
+@@ -1,5 +1,7 @@
+ // mksysctl_openbsd.pl
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// Code generated by the command above; DO NOT EDIT.
++
++// +build 386,openbsd
+
+ package unix
+
+diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go
+similarity index 91%
+copy from vendor/golang.org/x/sys/unix/zsysctl_openbsd.go
+copy to vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go
+index 83bb935b..fe6caa6e 100644
+--- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd.go
++++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go
+@@ -1,5 +1,7 @@
+-// mksysctl_openbsd.pl
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// go run mksysctl_openbsd.go
++// Code generated by the command above; DO NOT EDIT.
++
++// +build amd64,openbsd
+
+ package unix
+
+@@ -14,6 +16,7 @@ var sysctlMib = []mibentry{
+ {"ddb.max_line", []_C_int{9, 3}},
+ {"ddb.max_width", []_C_int{9, 2}},
+ {"ddb.panic", []_C_int{9, 5}},
++ {"ddb.profile", []_C_int{9, 9}},
+ {"ddb.radix", []_C_int{9, 1}},
+ {"ddb.tab_stop_width", []_C_int{9, 4}},
+ {"ddb.trigger", []_C_int{9, 8}},
+@@ -29,6 +32,7 @@ var sysctlMib = []mibentry{
+ {"hw.ncpu", []_C_int{6, 3}},
+ {"hw.ncpufound", []_C_int{6, 21}},
+ {"hw.pagesize", []_C_int{6, 7}},
++ {"hw.perfpolicy", []_C_int{6, 23}},
+ {"hw.physmem", []_C_int{6, 19}},
+ {"hw.product", []_C_int{6, 15}},
+ {"hw.serialno", []_C_int{6, 17}},
+@@ -37,7 +41,7 @@ var sysctlMib = []mibentry{
+ {"hw.uuid", []_C_int{6, 18}},
+ {"hw.vendor", []_C_int{6, 14}},
+ {"hw.version", []_C_int{6, 16}},
+- {"kern.arandom", []_C_int{1, 37}},
++ {"kern.allowkmem", []_C_int{1, 52}},
+ {"kern.argmax", []_C_int{1, 8}},
+ {"kern.boottime", []_C_int{1, 21}},
+ {"kern.bufcachepercent", []_C_int{1, 72}},
+@@ -46,12 +50,13 @@ var sysctlMib = []mibentry{
+ {"kern.consdev", []_C_int{1, 75}},
+ {"kern.cp_time", []_C_int{1, 40}},
+ {"kern.cp_time2", []_C_int{1, 71}},
+- {"kern.cryptodevallowsoft", []_C_int{1, 53}},
++ {"kern.dnsjackport", []_C_int{1, 13}},
+ {"kern.domainname", []_C_int{1, 22}},
+ {"kern.file", []_C_int{1, 73}},
+ {"kern.forkstat", []_C_int{1, 42}},
+ {"kern.fscale", []_C_int{1, 46}},
+ {"kern.fsync", []_C_int{1, 33}},
++ {"kern.global_ptrace", []_C_int{1, 81}},
+ {"kern.hostid", []_C_int{1, 11}},
+ {"kern.hostname", []_C_int{1, 10}},
+ {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}},
+@@ -84,7 +89,6 @@ var sysctlMib = []mibentry{
+ {"kern.pool_debug", []_C_int{1, 77}},
+ {"kern.posix1version", []_C_int{1, 17}},
+ {"kern.proc", []_C_int{1, 66}},
+- {"kern.random", []_C_int{1, 31}},
+ {"kern.rawpartition", []_C_int{1, 24}},
+ {"kern.saved_ids", []_C_int{1, 20}},
+ {"kern.securelevel", []_C_int{1, 9}},
+@@ -102,21 +106,16 @@ var sysctlMib = []mibentry{
+ {"kern.timecounter.hardware", []_C_int{1, 69, 3}},
+ {"kern.timecounter.tick", []_C_int{1, 69, 1}},
+ {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}},
+- {"kern.tty.maxptys", []_C_int{1, 44, 6}},
+- {"kern.tty.nptys", []_C_int{1, 44, 7}},
+ {"kern.tty.tk_cancc", []_C_int{1, 44, 4}},
+ {"kern.tty.tk_nin", []_C_int{1, 44, 1}},
+ {"kern.tty.tk_nout", []_C_int{1, 44, 2}},
+ {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}},
+ {"kern.tty.ttyinfo", []_C_int{1, 44, 5}},
+ {"kern.ttycount", []_C_int{1, 57}},
+- {"kern.userasymcrypto", []_C_int{1, 60}},
+- {"kern.usercrypto", []_C_int{1, 52}},
+- {"kern.usermount", []_C_int{1, 30}},
+ {"kern.version", []_C_int{1, 4}},
+- {"kern.vnode", []_C_int{1, 13}},
+ {"kern.watchdog.auto", []_C_int{1, 64, 2}},
+ {"kern.watchdog.period", []_C_int{1, 64, 1}},
++ {"kern.wxabort", []_C_int{1, 74}},
+ {"net.bpf.bufsize", []_C_int{4, 31, 1}},
+ {"net.bpf.maxbufsize", []_C_int{4, 31, 2}},
+ {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}},
+@@ -144,7 +143,9 @@ var sysctlMib = []mibentry{
+ {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}},
+ {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}},
+ {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}},
++ {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}},
+ {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}},
++ {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}},
+ {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}},
+ {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}},
+ {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}},
+@@ -153,8 +154,10 @@ var sysctlMib = []mibentry{
+ {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}},
+ {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}},
+ {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}},
++ {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}},
+ {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}},
+ {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}},
++ {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}},
+ {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}},
+ {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}},
+ {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}},
+@@ -173,7 +176,6 @@ var sysctlMib = []mibentry{
+ {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}},
+ {"net.inet.mobileip.allow", []_C_int{4, 2, 55, 1}},
+ {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}},
+- {"net.inet.pim.stats", []_C_int{4, 2, 103, 1}},
+ {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}},
+ {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}},
+ {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}},
+@@ -187,6 +189,7 @@ var sysctlMib = []mibentry{
+ {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}},
+ {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}},
+ {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}},
++ {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}},
+ {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}},
+ {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}},
+ {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}},
+@@ -194,9 +197,12 @@ var sysctlMib = []mibentry{
+ {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}},
+ {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}},
+ {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}},
++ {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}},
++ {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}},
+ {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}},
+ {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}},
+ {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}},
++ {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}},
+ {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}},
+ {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}},
+ {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}},
+@@ -209,13 +215,8 @@ var sysctlMib = []mibentry{
+ {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}},
+ {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}},
+ {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}},
+- {"net.inet6.icmp6.nd6_prune", []_C_int{4, 24, 30, 6}},
+ {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}},
+- {"net.inet6.icmp6.nd6_useloopback", []_C_int{4, 24, 30, 11}},
+- {"net.inet6.icmp6.nodeinfo", []_C_int{4, 24, 30, 13}},
+- {"net.inet6.icmp6.rediraccept", []_C_int{4, 24, 30, 2}},
+ {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}},
+- {"net.inet6.ip6.accept_rtadv", []_C_int{4, 24, 17, 12}},
+ {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}},
+ {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}},
+ {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}},
+@@ -228,20 +229,19 @@ var sysctlMib = []mibentry{
+ {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}},
+ {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}},
+ {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}},
+- {"net.inet6.ip6.maxifdefrouters", []_C_int{4, 24, 17, 47}},
+- {"net.inet6.ip6.maxifprefixes", []_C_int{4, 24, 17, 46}},
+ {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}},
++ {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}},
++ {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}},
+ {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}},
+ {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}},
+ {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}},
+ {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}},
+ {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}},
+ {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}},
+- {"net.inet6.ip6.rr_prune", []_C_int{4, 24, 17, 22}},
++ {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}},
+ {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}},
+ {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}},
+ {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}},
+- {"net.inet6.ip6.v6only", []_C_int{4, 24, 17, 24}},
+ {"net.key.sadb_dump", []_C_int{4, 30, 1}},
+ {"net.key.spd_dump", []_C_int{4, 30, 2}},
+ {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}},
+diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go
+similarity index 99%
+copy from vendor/golang.org/x/sys/unix/zsysctl_openbsd.go
+copy to vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go
+index 83bb935b..6eb8c0b0 100644
+--- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd.go
++++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go
+@@ -1,5 +1,7 @@
+-// mksysctl_openbsd.pl
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// go run mksysctl_openbsd.go
++// Code generated by the command above; DO NOT EDIT.
++
++// +build arm,openbsd
+
+ package unix
+
+diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go
+similarity index 91%
+rename from vendor/golang.org/x/sys/unix/zsysctl_openbsd.go
+rename to vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go
+index 83bb935b..ba4304fd 100644
+--- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd.go
++++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go
+@@ -1,5 +1,7 @@
+-// mksysctl_openbsd.pl
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// go run mksysctl_openbsd.go
++// Code generated by the command above; DO NOT EDIT.
++
++// +build arm64,openbsd
+
+ package unix
+
+@@ -14,6 +16,7 @@ var sysctlMib = []mibentry{
+ {"ddb.max_line", []_C_int{9, 3}},
+ {"ddb.max_width", []_C_int{9, 2}},
+ {"ddb.panic", []_C_int{9, 5}},
++ {"ddb.profile", []_C_int{9, 9}},
+ {"ddb.radix", []_C_int{9, 1}},
+ {"ddb.tab_stop_width", []_C_int{9, 4}},
+ {"ddb.trigger", []_C_int{9, 8}},
+@@ -28,17 +31,21 @@ var sysctlMib = []mibentry{
+ {"hw.model", []_C_int{6, 2}},
+ {"hw.ncpu", []_C_int{6, 3}},
+ {"hw.ncpufound", []_C_int{6, 21}},
++ {"hw.ncpuonline", []_C_int{6, 25}},
+ {"hw.pagesize", []_C_int{6, 7}},
++ {"hw.perfpolicy", []_C_int{6, 23}},
+ {"hw.physmem", []_C_int{6, 19}},
+ {"hw.product", []_C_int{6, 15}},
+ {"hw.serialno", []_C_int{6, 17}},
+ {"hw.setperf", []_C_int{6, 13}},
++ {"hw.smt", []_C_int{6, 24}},
+ {"hw.usermem", []_C_int{6, 20}},
+ {"hw.uuid", []_C_int{6, 18}},
+ {"hw.vendor", []_C_int{6, 14}},
+ {"hw.version", []_C_int{6, 16}},
+- {"kern.arandom", []_C_int{1, 37}},
++ {"kern.allowkmem", []_C_int{1, 52}},
+ {"kern.argmax", []_C_int{1, 8}},
++ {"kern.audio", []_C_int{1, 84}},
+ {"kern.boottime", []_C_int{1, 21}},
+ {"kern.bufcachepercent", []_C_int{1, 72}},
+ {"kern.ccpu", []_C_int{1, 45}},
+@@ -46,12 +53,13 @@ var sysctlMib = []mibentry{
+ {"kern.consdev", []_C_int{1, 75}},
+ {"kern.cp_time", []_C_int{1, 40}},
+ {"kern.cp_time2", []_C_int{1, 71}},
+- {"kern.cryptodevallowsoft", []_C_int{1, 53}},
++ {"kern.cpustats", []_C_int{1, 85}},
+ {"kern.domainname", []_C_int{1, 22}},
+ {"kern.file", []_C_int{1, 73}},
+ {"kern.forkstat", []_C_int{1, 42}},
+ {"kern.fscale", []_C_int{1, 46}},
+ {"kern.fsync", []_C_int{1, 33}},
++ {"kern.global_ptrace", []_C_int{1, 81}},
+ {"kern.hostid", []_C_int{1, 11}},
+ {"kern.hostname", []_C_int{1, 10}},
+ {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}},
+@@ -84,7 +92,6 @@ var sysctlMib = []mibentry{
+ {"kern.pool_debug", []_C_int{1, 77}},
+ {"kern.posix1version", []_C_int{1, 17}},
+ {"kern.proc", []_C_int{1, 66}},
+- {"kern.random", []_C_int{1, 31}},
+ {"kern.rawpartition", []_C_int{1, 24}},
+ {"kern.saved_ids", []_C_int{1, 20}},
+ {"kern.securelevel", []_C_int{1, 9}},
+@@ -102,21 +109,17 @@ var sysctlMib = []mibentry{
+ {"kern.timecounter.hardware", []_C_int{1, 69, 3}},
+ {"kern.timecounter.tick", []_C_int{1, 69, 1}},
+ {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}},
+- {"kern.tty.maxptys", []_C_int{1, 44, 6}},
+- {"kern.tty.nptys", []_C_int{1, 44, 7}},
+ {"kern.tty.tk_cancc", []_C_int{1, 44, 4}},
+ {"kern.tty.tk_nin", []_C_int{1, 44, 1}},
+ {"kern.tty.tk_nout", []_C_int{1, 44, 2}},
+ {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}},
+ {"kern.tty.ttyinfo", []_C_int{1, 44, 5}},
+ {"kern.ttycount", []_C_int{1, 57}},
+- {"kern.userasymcrypto", []_C_int{1, 60}},
+- {"kern.usercrypto", []_C_int{1, 52}},
+- {"kern.usermount", []_C_int{1, 30}},
+ {"kern.version", []_C_int{1, 4}},
+- {"kern.vnode", []_C_int{1, 13}},
+ {"kern.watchdog.auto", []_C_int{1, 64, 2}},
+ {"kern.watchdog.period", []_C_int{1, 64, 1}},
++ {"kern.witnesswatch", []_C_int{1, 53}},
++ {"kern.wxabort", []_C_int{1, 74}},
+ {"net.bpf.bufsize", []_C_int{4, 31, 1}},
+ {"net.bpf.maxbufsize", []_C_int{4, 31, 2}},
+ {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}},
+@@ -144,7 +147,9 @@ var sysctlMib = []mibentry{
+ {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}},
+ {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}},
+ {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}},
++ {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}},
+ {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}},
++ {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}},
+ {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}},
+ {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}},
+ {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}},
+@@ -153,8 +158,10 @@ var sysctlMib = []mibentry{
+ {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}},
+ {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}},
+ {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}},
++ {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}},
+ {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}},
+ {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}},
++ {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}},
+ {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}},
+ {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}},
+ {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}},
+@@ -173,7 +180,6 @@ var sysctlMib = []mibentry{
+ {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}},
+ {"net.inet.mobileip.allow", []_C_int{4, 2, 55, 1}},
+ {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}},
+- {"net.inet.pim.stats", []_C_int{4, 2, 103, 1}},
+ {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}},
+ {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}},
+ {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}},
+@@ -187,6 +193,7 @@ var sysctlMib = []mibentry{
+ {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}},
+ {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}},
+ {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}},
++ {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}},
+ {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}},
+ {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}},
+ {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}},
+@@ -194,9 +201,12 @@ var sysctlMib = []mibentry{
+ {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}},
+ {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}},
+ {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}},
++ {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}},
++ {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}},
+ {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}},
+ {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}},
+ {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}},
++ {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}},
+ {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}},
+ {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}},
+ {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}},
+@@ -209,13 +219,8 @@ var sysctlMib = []mibentry{
+ {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}},
+ {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}},
+ {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}},
+- {"net.inet6.icmp6.nd6_prune", []_C_int{4, 24, 30, 6}},
+ {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}},
+- {"net.inet6.icmp6.nd6_useloopback", []_C_int{4, 24, 30, 11}},
+- {"net.inet6.icmp6.nodeinfo", []_C_int{4, 24, 30, 13}},
+- {"net.inet6.icmp6.rediraccept", []_C_int{4, 24, 30, 2}},
+ {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}},
+- {"net.inet6.ip6.accept_rtadv", []_C_int{4, 24, 17, 12}},
+ {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}},
+ {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}},
+ {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}},
+@@ -228,20 +233,19 @@ var sysctlMib = []mibentry{
+ {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}},
+ {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}},
+ {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}},
+- {"net.inet6.ip6.maxifdefrouters", []_C_int{4, 24, 17, 47}},
+- {"net.inet6.ip6.maxifprefixes", []_C_int{4, 24, 17, 46}},
+ {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}},
++ {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}},
++ {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}},
+ {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}},
+ {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}},
+ {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}},
+ {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}},
+ {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}},
+ {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}},
+- {"net.inet6.ip6.rr_prune", []_C_int{4, 24, 17, 22}},
++ {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}},
+ {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}},
+ {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}},
+ {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}},
+- {"net.inet6.ip6.v6only", []_C_int{4, 24, 17, 24}},
+ {"net.key.sadb_dump", []_C_int{4, 30, 1}},
+ {"net.key.spd_dump", []_C_int{4, 30, 2}},
+ {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}},
+@@ -256,6 +260,7 @@ var sysctlMib = []mibentry{
+ {"net.pipex.enable", []_C_int{4, 35, 1}},
+ {"vm.anonmin", []_C_int{2, 7}},
+ {"vm.loadavg", []_C_int{2, 2}},
++ {"vm.malloc_conf", []_C_int{2, 12}},
+ {"vm.maxslp", []_C_int{2, 10}},
+ {"vm.nkmempages", []_C_int{2, 6}},
+ {"vm.psstrings", []_C_int{2, 3}},
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go
+index 2786773b..f3361453 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go
+@@ -1,5 +1,5 @@
+-// mksysnum_darwin.pl /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/sys/syscall.h
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/syscall.h
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build 386,darwin
+
+@@ -121,13 +121,15 @@ const (
+ SYS_CSOPS = 169
+ SYS_CSOPS_AUDITTOKEN = 170
+ SYS_WAITID = 173
++ SYS_KDEBUG_TYPEFILTER = 177
++ SYS_KDEBUG_TRACE_STRING = 178
+ SYS_KDEBUG_TRACE64 = 179
+ SYS_KDEBUG_TRACE = 180
+ SYS_SETGID = 181
+ SYS_SETEGID = 182
+ SYS_SETEUID = 183
+ SYS_SIGRETURN = 184
+- SYS_CHUD = 185
++ SYS_THREAD_SELFCOUNTS = 186
+ SYS_FDATASYNC = 187
+ SYS_STAT = 188
+ SYS_FSTAT = 189
+@@ -278,7 +280,6 @@ const (
+ SYS_KQUEUE = 362
+ SYS_KEVENT = 363
+ SYS_LCHOWN = 364
+- SYS_STACK_SNAPSHOT = 365
+ SYS_BSDTHREAD_REGISTER = 366
+ SYS_WORKQ_OPEN = 367
+ SYS_WORKQ_KERNRETURN = 368
+@@ -287,6 +288,8 @@ const (
+ SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371
+ SYS_THREAD_SELFID = 372
+ SYS_LEDGER = 373
++ SYS_KEVENT_QOS = 374
++ SYS_KEVENT_ID = 375
+ SYS___MAC_EXECVE = 380
+ SYS___MAC_SYSCALL = 381
+ SYS___MAC_GET_FILE = 382
+@@ -298,11 +301,8 @@ const (
+ SYS___MAC_GET_FD = 388
+ SYS___MAC_SET_FD = 389
+ SYS___MAC_GET_PID = 390
+- SYS___MAC_GET_LCID = 391
+- SYS___MAC_GET_LCTX = 392
+- SYS___MAC_SET_LCTX = 393
+- SYS_SETLCID = 394
+- SYS_GETLCID = 395
++ SYS_PSELECT = 394
++ SYS_PSELECT_NOCANCEL = 395
+ SYS_READ_NOCANCEL = 396
+ SYS_WRITE_NOCANCEL = 397
+ SYS_OPEN_NOCANCEL = 398
+@@ -351,6 +351,7 @@ const (
+ SYS_GUARDED_CLOSE_NP = 442
+ SYS_GUARDED_KQUEUE_NP = 443
+ SYS_CHANGE_FDGUARD_NP = 444
++ SYS_USRCTL = 445
+ SYS_PROC_RLIMIT_CONTROL = 446
+ SYS_CONNECTX = 447
+ SYS_DISCONNECTX = 448
+@@ -367,6 +368,7 @@ const (
+ SYS_COALITION_INFO = 459
+ SYS_NECP_MATCH_POLICY = 460
+ SYS_GETATTRLISTBULK = 461
++ SYS_CLONEFILEAT = 462
+ SYS_OPENAT = 463
+ SYS_OPENAT_NOCANCEL = 464
+ SYS_RENAMEAT = 465
+@@ -392,7 +394,43 @@ const (
+ SYS_GUARDED_WRITE_NP = 485
+ SYS_GUARDED_PWRITE_NP = 486
+ SYS_GUARDED_WRITEV_NP = 487
+- SYS_RENAME_EXT = 488
++ SYS_RENAMEATX_NP = 488
+ SYS_MREMAP_ENCRYPTED = 489
+- SYS_MAXSYSCALL = 490
++ SYS_NETAGENT_TRIGGER = 490
++ SYS_STACK_SNAPSHOT_WITH_CONFIG = 491
++ SYS_MICROSTACKSHOT = 492
++ SYS_GRAB_PGO_DATA = 493
++ SYS_PERSONA = 494
++ SYS_WORK_INTERVAL_CTL = 499
++ SYS_GETENTROPY = 500
++ SYS_NECP_OPEN = 501
++ SYS_NECP_CLIENT_ACTION = 502
++ SYS___NEXUS_OPEN = 503
++ SYS___NEXUS_REGISTER = 504
++ SYS___NEXUS_DEREGISTER = 505
++ SYS___NEXUS_CREATE = 506
++ SYS___NEXUS_DESTROY = 507
++ SYS___NEXUS_GET_OPT = 508
++ SYS___NEXUS_SET_OPT = 509
++ SYS___CHANNEL_OPEN = 510
++ SYS___CHANNEL_GET_INFO = 511
++ SYS___CHANNEL_SYNC = 512
++ SYS___CHANNEL_GET_OPT = 513
++ SYS___CHANNEL_SET_OPT = 514
++ SYS_ULOCK_WAIT = 515
++ SYS_ULOCK_WAKE = 516
++ SYS_FCLONEFILEAT = 517
++ SYS_FS_SNAPSHOT = 518
++ SYS_TERMINATE_WITH_PAYLOAD = 520
++ SYS_ABORT_WITH_PAYLOAD = 521
++ SYS_NECP_SESSION_OPEN = 522
++ SYS_NECP_SESSION_ACTION = 523
++ SYS_SETATTRLISTAT = 524
++ SYS_NET_QOS_GUIDELINE = 525
++ SYS_FMOUNT = 526
++ SYS_NTP_ADJTIME = 527
++ SYS_NTP_GETTIME = 528
++ SYS_OS_FAULT_WITH_PAYLOAD = 529
++ SYS_MAXSYSCALL = 530
++ SYS_INVALID = 63
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go
+index 09de240c..654dd3da 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go
+@@ -1,5 +1,5 @@
+-// mksysnum_darwin.pl /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/sys/syscall.h
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/syscall.h
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build amd64,darwin
+
+@@ -121,13 +121,15 @@ const (
+ SYS_CSOPS = 169
+ SYS_CSOPS_AUDITTOKEN = 170
+ SYS_WAITID = 173
++ SYS_KDEBUG_TYPEFILTER = 177
++ SYS_KDEBUG_TRACE_STRING = 178
+ SYS_KDEBUG_TRACE64 = 179
+ SYS_KDEBUG_TRACE = 180
+ SYS_SETGID = 181
+ SYS_SETEGID = 182
+ SYS_SETEUID = 183
+ SYS_SIGRETURN = 184
+- SYS_CHUD = 185
++ SYS_THREAD_SELFCOUNTS = 186
+ SYS_FDATASYNC = 187
+ SYS_STAT = 188
+ SYS_FSTAT = 189
+@@ -278,7 +280,6 @@ const (
+ SYS_KQUEUE = 362
+ SYS_KEVENT = 363
+ SYS_LCHOWN = 364
+- SYS_STACK_SNAPSHOT = 365
+ SYS_BSDTHREAD_REGISTER = 366
+ SYS_WORKQ_OPEN = 367
+ SYS_WORKQ_KERNRETURN = 368
+@@ -287,6 +288,8 @@ const (
+ SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371
+ SYS_THREAD_SELFID = 372
+ SYS_LEDGER = 373
++ SYS_KEVENT_QOS = 374
++ SYS_KEVENT_ID = 375
+ SYS___MAC_EXECVE = 380
+ SYS___MAC_SYSCALL = 381
+ SYS___MAC_GET_FILE = 382
+@@ -298,11 +301,8 @@ const (
+ SYS___MAC_GET_FD = 388
+ SYS___MAC_SET_FD = 389
+ SYS___MAC_GET_PID = 390
+- SYS___MAC_GET_LCID = 391
+- SYS___MAC_GET_LCTX = 392
+- SYS___MAC_SET_LCTX = 393
+- SYS_SETLCID = 394
+- SYS_GETLCID = 395
++ SYS_PSELECT = 394
++ SYS_PSELECT_NOCANCEL = 395
+ SYS_READ_NOCANCEL = 396
+ SYS_WRITE_NOCANCEL = 397
+ SYS_OPEN_NOCANCEL = 398
+@@ -351,6 +351,7 @@ const (
+ SYS_GUARDED_CLOSE_NP = 442
+ SYS_GUARDED_KQUEUE_NP = 443
+ SYS_CHANGE_FDGUARD_NP = 444
++ SYS_USRCTL = 445
+ SYS_PROC_RLIMIT_CONTROL = 446
+ SYS_CONNECTX = 447
+ SYS_DISCONNECTX = 448
+@@ -367,6 +368,7 @@ const (
+ SYS_COALITION_INFO = 459
+ SYS_NECP_MATCH_POLICY = 460
+ SYS_GETATTRLISTBULK = 461
++ SYS_CLONEFILEAT = 462
+ SYS_OPENAT = 463
+ SYS_OPENAT_NOCANCEL = 464
+ SYS_RENAMEAT = 465
+@@ -392,7 +394,45 @@ const (
+ SYS_GUARDED_WRITE_NP = 485
+ SYS_GUARDED_PWRITE_NP = 486
+ SYS_GUARDED_WRITEV_NP = 487
+- SYS_RENAME_EXT = 488
++ SYS_RENAMEATX_NP = 488
+ SYS_MREMAP_ENCRYPTED = 489
+- SYS_MAXSYSCALL = 490
++ SYS_NETAGENT_TRIGGER = 490
++ SYS_STACK_SNAPSHOT_WITH_CONFIG = 491
++ SYS_MICROSTACKSHOT = 492
++ SYS_GRAB_PGO_DATA = 493
++ SYS_PERSONA = 494
++ SYS_WORK_INTERVAL_CTL = 499
++ SYS_GETENTROPY = 500
++ SYS_NECP_OPEN = 501
++ SYS_NECP_CLIENT_ACTION = 502
++ SYS___NEXUS_OPEN = 503
++ SYS___NEXUS_REGISTER = 504
++ SYS___NEXUS_DEREGISTER = 505
++ SYS___NEXUS_CREATE = 506
++ SYS___NEXUS_DESTROY = 507
++ SYS___NEXUS_GET_OPT = 508
++ SYS___NEXUS_SET_OPT = 509
++ SYS___CHANNEL_OPEN = 510
++ SYS___CHANNEL_GET_INFO = 511
++ SYS___CHANNEL_SYNC = 512
++ SYS___CHANNEL_GET_OPT = 513
++ SYS___CHANNEL_SET_OPT = 514
++ SYS_ULOCK_WAIT = 515
++ SYS_ULOCK_WAKE = 516
++ SYS_FCLONEFILEAT = 517
++ SYS_FS_SNAPSHOT = 518
++ SYS_TERMINATE_WITH_PAYLOAD = 520
++ SYS_ABORT_WITH_PAYLOAD = 521
++ SYS_NECP_SESSION_OPEN = 522
++ SYS_NECP_SESSION_ACTION = 523
++ SYS_SETATTRLISTAT = 524
++ SYS_NET_QOS_GUIDELINE = 525
++ SYS_FMOUNT = 526
++ SYS_NTP_ADJTIME = 527
++ SYS_NTP_GETTIME = 528
++ SYS_OS_FAULT_WITH_PAYLOAD = 529
++ SYS_KQUEUE_WORKLOOP_CTL = 530
++ SYS___MACH_BRIDGE_REMOTE_TIME = 531
++ SYS_MAXSYSCALL = 532
++ SYS_INVALID = 63
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go
+index 41cb6ed3..103a72ed 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go
+@@ -1,4 +1,4 @@
+-// mksysnum_darwin.pl /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.2.sdk/usr/include/sys/syscall.h
++// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.1.sdk/usr/include/sys/syscall.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build arm,darwin
+@@ -129,6 +129,7 @@ const (
+ SYS_SETEGID = 182
+ SYS_SETEUID = 183
+ SYS_SIGRETURN = 184
++ SYS_THREAD_SELFCOUNTS = 186
+ SYS_FDATASYNC = 187
+ SYS_STAT = 188
+ SYS_FSTAT = 189
+@@ -288,6 +289,7 @@ const (
+ SYS_THREAD_SELFID = 372
+ SYS_LEDGER = 373
+ SYS_KEVENT_QOS = 374
++ SYS_KEVENT_ID = 375
+ SYS___MAC_EXECVE = 380
+ SYS___MAC_SYSCALL = 381
+ SYS___MAC_GET_FILE = 382
+@@ -421,6 +423,14 @@ const (
+ SYS_FS_SNAPSHOT = 518
+ SYS_TERMINATE_WITH_PAYLOAD = 520
+ SYS_ABORT_WITH_PAYLOAD = 521
+- SYS_MAXSYSCALL = 522
++ SYS_NECP_SESSION_OPEN = 522
++ SYS_NECP_SESSION_ACTION = 523
++ SYS_SETATTRLISTAT = 524
++ SYS_NET_QOS_GUIDELINE = 525
++ SYS_FMOUNT = 526
++ SYS_NTP_ADJTIME = 527
++ SYS_NTP_GETTIME = 528
++ SYS_OS_FAULT_WITH_PAYLOAD = 529
++ SYS_MAXSYSCALL = 530
+ SYS_INVALID = 63
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go
+index 075816c3..7ab2130b 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go
+@@ -1,4 +1,4 @@
+-// mksysnum_darwin.pl /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.2.sdk/usr/include/sys/syscall.h
++// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.1.sdk/usr/include/sys/syscall.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build arm64,darwin
+@@ -129,6 +129,7 @@ const (
+ SYS_SETEGID = 182
+ SYS_SETEUID = 183
+ SYS_SIGRETURN = 184
++ SYS_THREAD_SELFCOUNTS = 186
+ SYS_FDATASYNC = 187
+ SYS_STAT = 188
+ SYS_FSTAT = 189
+@@ -288,6 +289,7 @@ const (
+ SYS_THREAD_SELFID = 372
+ SYS_LEDGER = 373
+ SYS_KEVENT_QOS = 374
++ SYS_KEVENT_ID = 375
+ SYS___MAC_EXECVE = 380
+ SYS___MAC_SYSCALL = 381
+ SYS___MAC_GET_FILE = 382
+@@ -421,6 +423,14 @@ const (
+ SYS_FS_SNAPSHOT = 518
+ SYS_TERMINATE_WITH_PAYLOAD = 520
+ SYS_ABORT_WITH_PAYLOAD = 521
+- SYS_MAXSYSCALL = 522
++ SYS_NECP_SESSION_OPEN = 522
++ SYS_NECP_SESSION_ACTION = 523
++ SYS_SETATTRLISTAT = 524
++ SYS_NET_QOS_GUIDELINE = 525
++ SYS_FMOUNT = 526
++ SYS_NTP_ADJTIME = 527
++ SYS_NTP_GETTIME = 528
++ SYS_OS_FAULT_WITH_PAYLOAD = 529
++ SYS_MAXSYSCALL = 530
+ SYS_INVALID = 63
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go
+index b2c9ef81..464c9a98 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go
+@@ -1,4 +1,4 @@
+-// mksysnum_dragonfly.pl
++// go run mksysnum.go https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build amd64,dragonfly
+@@ -13,7 +13,7 @@ const (
+ SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); }
+ SYS_OPEN = 5 // { int open(char *path, int flags, int mode); }
+ SYS_CLOSE = 6 // { int close(int fd); }
+- SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, \
++ SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } wait4 wait_args int
+ SYS_LINK = 9 // { int link(char *path, char *link); }
+ SYS_UNLINK = 10 // { int unlink(char *path); }
+ SYS_CHDIR = 12 // { int chdir(char *path); }
+@@ -22,17 +22,17 @@ const (
+ SYS_CHMOD = 15 // { int chmod(char *path, int mode); }
+ SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); }
+ SYS_OBREAK = 17 // { int obreak(char *nsize); } break obreak_args int
+- SYS_GETFSSTAT = 18 // { int getfsstat(struct statfs *buf, long bufsize, \
++ SYS_GETFSSTAT = 18 // { int getfsstat(struct statfs *buf, long bufsize, int flags); }
+ SYS_GETPID = 20 // { pid_t getpid(void); }
+- SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, \
++ SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); }
+ SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); }
+ SYS_SETUID = 23 // { int setuid(uid_t uid); }
+ SYS_GETUID = 24 // { uid_t getuid(void); }
+ SYS_GETEUID = 25 // { uid_t geteuid(void); }
+- SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, \
++ SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }
+ SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); }
+ SYS_SENDMSG = 28 // { int sendmsg(int s, caddr_t msg, int flags); }
+- SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, \
++ SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, caddr_t from, int *fromlenaddr); }
+ SYS_ACCEPT = 30 // { int accept(int s, caddr_t name, int *anamelen); }
+ SYS_GETPEERNAME = 31 // { int getpeername(int fdes, caddr_t asa, int *alen); }
+ SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, caddr_t asa, int *alen); }
+@@ -45,8 +45,8 @@ const (
+ SYS_DUP = 41 // { int dup(int fd); }
+ SYS_PIPE = 42 // { int pipe(void); }
+ SYS_GETEGID = 43 // { gid_t getegid(void); }
+- SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, \
+- SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, \
++ SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); }
++ SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); }
+ SYS_GETGID = 47 // { gid_t getgid(void); }
+ SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); }
+ SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); }
+@@ -67,32 +67,32 @@ const (
+ SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); }
+ SYS_MPROTECT = 74 // { int mprotect(void *addr, size_t len, int prot); }
+ SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); }
+- SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, \
++ SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); }
+ SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); }
+ SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); }
+ SYS_GETPGRP = 81 // { int getpgrp(void); }
+ SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); }
+- SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, \
++ SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }
+ SYS_SWAPON = 85 // { int swapon(char *name); }
+ SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); }
+ SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); }
+ SYS_DUP2 = 90 // { int dup2(int from, int to); }
+ SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); }
+- SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, \
++ SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }
+ SYS_FSYNC = 95 // { int fsync(int fd); }
+ SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); }
+ SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); }
+ SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); }
+ SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); }
+ SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); }
+- SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, \
++ SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }
+ SYS_LISTEN = 106 // { int listen(int s, int backlog); }
+- SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, \
++ SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }
+ SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); }
+- SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, \
++ SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }
+ SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }
+- SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, \
+- SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, \
++ SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }
++ SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }
+ SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); }
+ SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); }
+ SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); }
+@@ -100,15 +100,15 @@ const (
+ SYS_RENAME = 128 // { int rename(char *from, char *to); }
+ SYS_FLOCK = 131 // { int flock(int fd, int how); }
+ SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); }
+- SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, \
++ SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }
+ SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); }
+- SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, \
++ SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }
+ SYS_MKDIR = 136 // { int mkdir(char *path, int mode); }
+ SYS_RMDIR = 137 // { int rmdir(char *path); }
+ SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); }
+- SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, \
++ SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }
+ SYS_SETSID = 147 // { int setsid(void); }
+- SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, \
++ SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }
+ SYS_STATFS = 157 // { int statfs(char *path, struct statfs *buf); }
+ SYS_FSTATFS = 158 // { int fstatfs(int fd, struct statfs *buf); }
+ SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); }
+@@ -116,53 +116,53 @@ const (
+ SYS_SETDOMAINNAME = 163 // { int setdomainname(char *domainname, int len); }
+ SYS_UNAME = 164 // { int uname(struct utsname *name); }
+ SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); }
+- SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, \
+- SYS_EXTPREAD = 173 // { ssize_t extpread(int fd, void *buf, \
+- SYS_EXTPWRITE = 174 // { ssize_t extpwrite(int fd, const void *buf, \
++ SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }
++ SYS_EXTPREAD = 173 // { ssize_t extpread(int fd, void *buf, size_t nbyte, int flags, off_t offset); }
++ SYS_EXTPWRITE = 174 // { ssize_t extpwrite(int fd, const void *buf, size_t nbyte, int flags, off_t offset); }
+ SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); }
+ SYS_SETGID = 181 // { int setgid(gid_t gid); }
+ SYS_SETEGID = 182 // { int setegid(gid_t egid); }
+ SYS_SETEUID = 183 // { int seteuid(uid_t euid); }
+ SYS_PATHCONF = 191 // { int pathconf(char *path, int name); }
+ SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); }
+- SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, \
+- SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, \
+- SYS_MMAP = 197 // { caddr_t mmap(caddr_t addr, size_t len, int prot, \
++ SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int
++ SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int
++ SYS_MMAP = 197 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); }
+ // SYS_NOSYS = 198; // { int nosys(void); } __syscall __syscall_args int
+- SYS_LSEEK = 199 // { off_t lseek(int fd, int pad, off_t offset, \
++ SYS_LSEEK = 199 // { off_t lseek(int fd, int pad, off_t offset, int whence); }
+ SYS_TRUNCATE = 200 // { int truncate(char *path, int pad, off_t length); }
+ SYS_FTRUNCATE = 201 // { int ftruncate(int fd, int pad, off_t length); }
+- SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, \
++ SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int
+ SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); }
+ SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); }
+ SYS_UNDELETE = 205 // { int undelete(char *path); }
+ SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); }
+ SYS_GETPGID = 207 // { int getpgid(pid_t pid); }
+- SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, \
+- SYS___SEMCTL = 220 // { int __semctl(int semid, int semnum, int cmd, \
++ SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }
++ SYS___SEMCTL = 220 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }
+ SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); }
+- SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, \
+- SYS_MSGCTL = 224 // { int msgctl(int msqid, int cmd, \
++ SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, u_int nsops); }
++ SYS_MSGCTL = 224 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }
+ SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); }
+- SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, \
+- SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, \
+- SYS_SHMAT = 228 // { caddr_t shmat(int shmid, const void *shmaddr, \
+- SYS_SHMCTL = 229 // { int shmctl(int shmid, int cmd, \
++ SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }
++ SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }
++ SYS_SHMAT = 228 // { caddr_t shmat(int shmid, const void *shmaddr, int shmflg); }
++ SYS_SHMCTL = 229 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }
+ SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); }
+ SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); }
+- SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, \
+- SYS_CLOCK_SETTIME = 233 // { int clock_settime(clockid_t clock_id, \
+- SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, \
+- SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, \
++ SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }
++ SYS_CLOCK_SETTIME = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); }
++ SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }
++ SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }
+ SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); }
+ SYS_RFORK = 251 // { int rfork(int flags); }
+- SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, \
++ SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); }
+ SYS_ISSETUGID = 253 // { int issetugid(void); }
+ SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); }
+ SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); }
+ SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); }
+- SYS_EXTPREADV = 289 // { ssize_t extpreadv(int fd, struct iovec *iovp, \
+- SYS_EXTPWRITEV = 290 // { ssize_t extpwritev(int fd, struct iovec *iovp,\
++ SYS_EXTPREADV = 289 // { ssize_t extpreadv(int fd, struct iovec *iovp, u_int iovcnt, int flags, off_t offset); }
++ SYS_EXTPWRITEV = 290 // { ssize_t extpwritev(int fd, struct iovec *iovp,u_int iovcnt, int flags, off_t offset); }
+ SYS_FHSTATFS = 297 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }
+ SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }
+ SYS_MODNEXT = 300 // { int modnext(int modid); }
+@@ -200,34 +200,34 @@ const (
+ SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); }
+ SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); }
+ SYS_JAIL = 338 // { int jail(struct jail *jail); }
+- SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, \
++ SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }
+ SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); }
+- SYS_SIGACTION = 342 // { int sigaction(int sig, const struct sigaction *act, \
++ SYS_SIGACTION = 342 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }
+ SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); }
+ SYS_SIGRETURN = 344 // { int sigreturn(ucontext_t *sigcntxp); }
+- SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set,\
+- SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set,\
+- SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, \
+- SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, \
+- SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, \
+- SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, \
+- SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, \
++ SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set,siginfo_t *info, const struct timespec *timeout); }
++ SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set,siginfo_t *info); }
++ SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }
+ SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }
+- SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, \
+- SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, \
+- SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, \
+- SYS_EXTATTR_SET_FILE = 356 // { int extattr_set_file(const char *path, \
+- SYS_EXTATTR_GET_FILE = 357 // { int extattr_get_file(const char *path, \
+- SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, \
++ SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }
++ SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }
++ SYS_EXTATTR_SET_FILE = 356 // { int extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++ SYS_EXTATTR_GET_FILE = 357 // { int extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++ SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }
+ SYS_AIO_WAITCOMPLETE = 359 // { int aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); }
+ SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }
+ SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }
+ SYS_KQUEUE = 362 // { int kqueue(void); }
+- SYS_KEVENT = 363 // { int kevent(int fd, \
++ SYS_KEVENT = 363 // { int kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }
+ SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); }
+ SYS_LCHFLAGS = 391 // { int lchflags(char *path, int flags); }
+ SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); }
+- SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, \
++ SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }
+ SYS_VARSYM_SET = 450 // { int varsym_set(int level, const char *name, const char *data); }
+ SYS_VARSYM_GET = 451 // { int varsym_get(int mask, const char *wild, char *buf, int bufsize); }
+ SYS_VARSYM_LIST = 452 // { int varsym_list(int level, char *buf, int maxsize, int *marker); }
+@@ -245,58 +245,58 @@ const (
+ SYS_FSTAT = 476 // { int fstat(int fd, struct stat *sb); }
+ SYS_LSTAT = 477 // { int lstat(const char *path, struct stat *ub); }
+ SYS_FHSTAT = 478 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }
+- SYS_GETDIRENTRIES = 479 // { int getdirentries(int fd, char *buf, u_int count, \
++ SYS_GETDIRENTRIES = 479 // { int getdirentries(int fd, char *buf, u_int count, long *basep); }
+ SYS_GETDENTS = 480 // { int getdents(int fd, char *buf, size_t count); }
+- SYS_USCHED_SET = 481 // { int usched_set(pid_t pid, int cmd, void *data, \
++ SYS_USCHED_SET = 481 // { int usched_set(pid_t pid, int cmd, void *data, int bytes); }
+ SYS_EXTACCEPT = 482 // { int extaccept(int s, int flags, caddr_t name, int *anamelen); }
+ SYS_EXTCONNECT = 483 // { int extconnect(int s, int flags, caddr_t name, int namelen); }
+ SYS_MCONTROL = 485 // { int mcontrol(void *addr, size_t len, int behav, off_t value); }
+ SYS_VMSPACE_CREATE = 486 // { int vmspace_create(void *id, int type, void *data); }
+ SYS_VMSPACE_DESTROY = 487 // { int vmspace_destroy(void *id); }
+- SYS_VMSPACE_CTL = 488 // { int vmspace_ctl(void *id, int cmd, \
+- SYS_VMSPACE_MMAP = 489 // { int vmspace_mmap(void *id, void *addr, size_t len, \
+- SYS_VMSPACE_MUNMAP = 490 // { int vmspace_munmap(void *id, void *addr, \
+- SYS_VMSPACE_MCONTROL = 491 // { int vmspace_mcontrol(void *id, void *addr, \
+- SYS_VMSPACE_PREAD = 492 // { ssize_t vmspace_pread(void *id, void *buf, \
+- SYS_VMSPACE_PWRITE = 493 // { ssize_t vmspace_pwrite(void *id, const void *buf, \
++ SYS_VMSPACE_CTL = 488 // { int vmspace_ctl(void *id, int cmd, struct trapframe *tframe, struct vextframe *vframe); }
++ SYS_VMSPACE_MMAP = 489 // { int vmspace_mmap(void *id, void *addr, size_t len, int prot, int flags, int fd, off_t offset); }
++ SYS_VMSPACE_MUNMAP = 490 // { int vmspace_munmap(void *id, void *addr, size_t len); }
++ SYS_VMSPACE_MCONTROL = 491 // { int vmspace_mcontrol(void *id, void *addr, size_t len, int behav, off_t value); }
++ SYS_VMSPACE_PREAD = 492 // { ssize_t vmspace_pread(void *id, void *buf, size_t nbyte, int flags, off_t offset); }
++ SYS_VMSPACE_PWRITE = 493 // { ssize_t vmspace_pwrite(void *id, const void *buf, size_t nbyte, int flags, off_t offset); }
+ SYS_EXTEXIT = 494 // { void extexit(int how, int status, void *addr); }
+ SYS_LWP_CREATE = 495 // { int lwp_create(struct lwp_params *params); }
+ SYS_LWP_GETTID = 496 // { lwpid_t lwp_gettid(void); }
+ SYS_LWP_KILL = 497 // { int lwp_kill(pid_t pid, lwpid_t tid, int signum); }
+ SYS_LWP_RTPRIO = 498 // { int lwp_rtprio(int function, pid_t pid, lwpid_t tid, struct rtprio *rtp); }
+- SYS_PSELECT = 499 // { int pselect(int nd, fd_set *in, fd_set *ou, \
++ SYS_PSELECT = 499 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sigmask); }
+ SYS_STATVFS = 500 // { int statvfs(const char *path, struct statvfs *buf); }
+ SYS_FSTATVFS = 501 // { int fstatvfs(int fd, struct statvfs *buf); }
+ SYS_FHSTATVFS = 502 // { int fhstatvfs(const struct fhandle *u_fhp, struct statvfs *buf); }
+- SYS_GETVFSSTAT = 503 // { int getvfsstat(struct statfs *buf, \
++ SYS_GETVFSSTAT = 503 // { int getvfsstat(struct statfs *buf, struct statvfs *vbuf, long vbufsize, int flags); }
+ SYS_OPENAT = 504 // { int openat(int fd, char *path, int flags, int mode); }
+- SYS_FSTATAT = 505 // { int fstatat(int fd, char *path, \
+- SYS_FCHMODAT = 506 // { int fchmodat(int fd, char *path, int mode, \
+- SYS_FCHOWNAT = 507 // { int fchownat(int fd, char *path, int uid, int gid, \
++ SYS_FSTATAT = 505 // { int fstatat(int fd, char *path, struct stat *sb, int flags); }
++ SYS_FCHMODAT = 506 // { int fchmodat(int fd, char *path, int mode, int flags); }
++ SYS_FCHOWNAT = 507 // { int fchownat(int fd, char *path, int uid, int gid, int flags); }
+ SYS_UNLINKAT = 508 // { int unlinkat(int fd, char *path, int flags); }
+- SYS_FACCESSAT = 509 // { int faccessat(int fd, char *path, int amode, \
+- SYS_MQ_OPEN = 510 // { mqd_t mq_open(const char * name, int oflag, \
++ SYS_FACCESSAT = 509 // { int faccessat(int fd, char *path, int amode, int flags); }
++ SYS_MQ_OPEN = 510 // { mqd_t mq_open(const char * name, int oflag, mode_t mode, struct mq_attr *attr); }
+ SYS_MQ_CLOSE = 511 // { int mq_close(mqd_t mqdes); }
+ SYS_MQ_UNLINK = 512 // { int mq_unlink(const char *name); }
+- SYS_MQ_GETATTR = 513 // { int mq_getattr(mqd_t mqdes, \
+- SYS_MQ_SETATTR = 514 // { int mq_setattr(mqd_t mqdes, \
+- SYS_MQ_NOTIFY = 515 // { int mq_notify(mqd_t mqdes, \
+- SYS_MQ_SEND = 516 // { int mq_send(mqd_t mqdes, const char *msg_ptr, \
+- SYS_MQ_RECEIVE = 517 // { ssize_t mq_receive(mqd_t mqdes, char *msg_ptr, \
+- SYS_MQ_TIMEDSEND = 518 // { int mq_timedsend(mqd_t mqdes, \
+- SYS_MQ_TIMEDRECEIVE = 519 // { ssize_t mq_timedreceive(mqd_t mqdes, \
++ SYS_MQ_GETATTR = 513 // { int mq_getattr(mqd_t mqdes, struct mq_attr *mqstat); }
++ SYS_MQ_SETATTR = 514 // { int mq_setattr(mqd_t mqdes, const struct mq_attr *mqstat, struct mq_attr *omqstat); }
++ SYS_MQ_NOTIFY = 515 // { int mq_notify(mqd_t mqdes, const struct sigevent *notification); }
++ SYS_MQ_SEND = 516 // { int mq_send(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio); }
++ SYS_MQ_RECEIVE = 517 // { ssize_t mq_receive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio); }
++ SYS_MQ_TIMEDSEND = 518 // { int mq_timedsend(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); }
++ SYS_MQ_TIMEDRECEIVE = 519 // { ssize_t mq_timedreceive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); }
+ SYS_IOPRIO_SET = 520 // { int ioprio_set(int which, int who, int prio); }
+ SYS_IOPRIO_GET = 521 // { int ioprio_get(int which, int who); }
+ SYS_CHROOT_KERNEL = 522 // { int chroot_kernel(char *path); }
+- SYS_RENAMEAT = 523 // { int renameat(int oldfd, char *old, int newfd, \
++ SYS_RENAMEAT = 523 // { int renameat(int oldfd, char *old, int newfd, char *new); }
+ SYS_MKDIRAT = 524 // { int mkdirat(int fd, char *path, mode_t mode); }
+ SYS_MKFIFOAT = 525 // { int mkfifoat(int fd, char *path, mode_t mode); }
+- SYS_MKNODAT = 526 // { int mknodat(int fd, char *path, mode_t mode, \
+- SYS_READLINKAT = 527 // { int readlinkat(int fd, char *path, char *buf, \
++ SYS_MKNODAT = 526 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }
++ SYS_READLINKAT = 527 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); }
+ SYS_SYMLINKAT = 528 // { int symlinkat(char *path1, int fd, char *path2); }
+ SYS_SWAPOFF = 529 // { int swapoff(char *name); }
+- SYS_VQUOTACTL = 530 // { int vquotactl(const char *path, \
+- SYS_LINKAT = 531 // { int linkat(int fd1, char *path1, int fd2, \
++ SYS_VQUOTACTL = 530 // { int vquotactl(const char *path, struct plistref *pref); }
++ SYS_LINKAT = 531 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flags); }
+ SYS_EACCESS = 532 // { int eaccess(char *path, int flags); }
+ SYS_LPATHCONF = 533 // { int lpathconf(char *path, int name); }
+ SYS_VMM_GUEST_CTL = 534 // { int vmm_guest_ctl(int op, struct vmm_guest_options *options); }
+@@ -308,7 +308,7 @@ const (
+ SYS_FUTIMENS = 540 // { int futimens(int fd, const struct timespec *ts); }
+ SYS_ACCEPT4 = 541 // { int accept4(int s, caddr_t name, int *anamelen, int flags); }
+ SYS_LWP_SETNAME = 542 // { int lwp_setname(lwpid_t tid, const char *name); }
+- SYS_PPOLL = 543 // { int ppoll(struct pollfd *fds, u_int nfds, \
++ SYS_PPOLL = 543 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *sigmask); }
+ SYS_LWP_SETAFFINITY = 544 // { int lwp_setaffinity(pid_t pid, lwpid_t tid, const cpumask_t *mask); }
+ SYS_LWP_GETAFFINITY = 545 // { int lwp_getaffinity(pid_t pid, lwpid_t tid, cpumask_t *mask); }
+ SYS_LWP_CREATE2 = 546 // { int lwp_create2(struct lwp_params *params, const cpumask_t *mask); }
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go
+index b64a8122..9474974b 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go
+@@ -1,4 +1,4 @@
+-// mksysnum_freebsd.pl
++// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build 386,freebsd
+@@ -7,347 +7,390 @@ package unix
+
+ const (
+ // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int
+- SYS_EXIT = 1 // { void sys_exit(int rval); } exit \
+- SYS_FORK = 2 // { int fork(void); }
+- SYS_READ = 3 // { ssize_t read(int fd, void *buf, \
+- SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, \
+- SYS_OPEN = 5 // { int open(char *path, int flags, int mode); }
+- SYS_CLOSE = 6 // { int close(int fd); }
+- SYS_WAIT4 = 7 // { int wait4(int pid, int *status, \
+- SYS_LINK = 9 // { int link(char *path, char *link); }
+- SYS_UNLINK = 10 // { int unlink(char *path); }
+- SYS_CHDIR = 12 // { int chdir(char *path); }
+- SYS_FCHDIR = 13 // { int fchdir(int fd); }
+- SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); }
+- SYS_CHMOD = 15 // { int chmod(char *path, int mode); }
+- SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); }
+- SYS_OBREAK = 17 // { int obreak(char *nsize); } break \
+- SYS_GETPID = 20 // { pid_t getpid(void); }
+- SYS_MOUNT = 21 // { int mount(char *type, char *path, \
+- SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); }
+- SYS_SETUID = 23 // { int setuid(uid_t uid); }
+- SYS_GETUID = 24 // { uid_t getuid(void); }
+- SYS_GETEUID = 25 // { uid_t geteuid(void); }
+- SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, \
+- SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, \
+- SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, \
+- SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, \
+- SYS_ACCEPT = 30 // { int accept(int s, \
+- SYS_GETPEERNAME = 31 // { int getpeername(int fdes, \
+- SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, \
+- SYS_ACCESS = 33 // { int access(char *path, int amode); }
+- SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); }
+- SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); }
+- SYS_SYNC = 36 // { int sync(void); }
+- SYS_KILL = 37 // { int kill(int pid, int signum); }
+- SYS_GETPPID = 39 // { pid_t getppid(void); }
+- SYS_DUP = 41 // { int dup(u_int fd); }
+- SYS_PIPE = 42 // { int pipe(void); }
+- SYS_GETEGID = 43 // { gid_t getegid(void); }
+- SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, \
+- SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, \
+- SYS_GETGID = 47 // { gid_t getgid(void); }
+- SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int \
+- SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); }
+- SYS_ACCT = 51 // { int acct(char *path); }
+- SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, \
+- SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, \
+- SYS_REBOOT = 55 // { int reboot(int opt); }
+- SYS_REVOKE = 56 // { int revoke(char *path); }
+- SYS_SYMLINK = 57 // { int symlink(char *path, char *link); }
+- SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, \
+- SYS_EXECVE = 59 // { int execve(char *fname, char **argv, \
+- SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args \
+- SYS_CHROOT = 61 // { int chroot(char *path); }
+- SYS_MSYNC = 65 // { int msync(void *addr, size_t len, \
+- SYS_VFORK = 66 // { int vfork(void); }
+- SYS_SBRK = 69 // { int sbrk(int incr); }
+- SYS_SSTK = 70 // { int sstk(int incr); }
+- SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise \
+- SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); }
+- SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, \
+- SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, \
+- SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, \
+- SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, \
+- SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, \
+- SYS_GETPGRP = 81 // { int getpgrp(void); }
+- SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); }
+- SYS_SETITIMER = 83 // { int setitimer(u_int which, struct \
+- SYS_SWAPON = 85 // { int swapon(char *name); }
+- SYS_GETITIMER = 86 // { int getitimer(u_int which, \
+- SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); }
+- SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); }
+- SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); }
+- SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, \
+- SYS_FSYNC = 95 // { int fsync(int fd); }
+- SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, \
+- SYS_SOCKET = 97 // { int socket(int domain, int type, \
+- SYS_CONNECT = 98 // { int connect(int s, caddr_t name, \
+- SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); }
+- SYS_BIND = 104 // { int bind(int s, caddr_t name, \
+- SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, \
+- SYS_LISTEN = 106 // { int listen(int s, int backlog); }
+- SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, \
+- SYS_GETRUSAGE = 117 // { int getrusage(int who, \
+- SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, \
+- SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, \
+- SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, \
+- SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, \
+- SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); }
+- SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); }
+- SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); }
+- SYS_SETREGID = 127 // { int setregid(int rgid, int egid); }
+- SYS_RENAME = 128 // { int rename(char *from, char *to); }
+- SYS_FLOCK = 131 // { int flock(int fd, int how); }
+- SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); }
+- SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, \
+- SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); }
+- SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, \
+- SYS_MKDIR = 136 // { int mkdir(char *path, int mode); }
+- SYS_RMDIR = 137 // { int rmdir(char *path); }
+- SYS_UTIMES = 138 // { int utimes(char *path, \
+- SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, \
+- SYS_SETSID = 147 // { int setsid(void); }
+- SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, \
+- SYS_LGETFH = 160 // { int lgetfh(char *fname, \
+- SYS_GETFH = 161 // { int getfh(char *fname, \
+- SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); }
+- SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, \
+- SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, \
+- SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, \
+- SYS_SETFIB = 175 // { int setfib(int fibnum); }
+- SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); }
+- SYS_SETGID = 181 // { int setgid(gid_t gid); }
+- SYS_SETEGID = 182 // { int setegid(gid_t egid); }
+- SYS_SETEUID = 183 // { int seteuid(uid_t euid); }
+- SYS_STAT = 188 // { int stat(char *path, struct stat *ub); }
+- SYS_FSTAT = 189 // { int fstat(int fd, struct stat *sb); }
+- SYS_LSTAT = 190 // { int lstat(char *path, struct stat *ub); }
+- SYS_PATHCONF = 191 // { int pathconf(char *path, int name); }
+- SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); }
+- SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, \
+- SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, \
+- SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, \
+- SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, \
+- SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, \
+- SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, \
+- SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, \
+- SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, \
+- SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); }
+- SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); }
+- SYS_UNDELETE = 205 // { int undelete(char *path); }
+- SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); }
+- SYS_GETPGID = 207 // { int getpgid(pid_t pid); }
+- SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, \
+- SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, \
+- SYS_CLOCK_SETTIME = 233 // { int clock_settime( \
+- SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, \
+- SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, \
+- SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); }
+- SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, \
+- SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct \
+- SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); }
+- SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, \
+- SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); }
+- SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( \
+- SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( \
+- SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,\
+- SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }
+- SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, \
+- SYS_RFORK = 251 // { int rfork(int flags); }
+- SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, \
+- SYS_ISSETUGID = 253 // { int issetugid(void); }
+- SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); }
+- SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, \
+- SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); }
+- SYS_LUTIMES = 276 // { int lutimes(char *path, \
+- SYS_NSTAT = 278 // { int nstat(char *path, struct nstat *ub); }
+- SYS_NFSTAT = 279 // { int nfstat(int fd, struct nstat *sb); }
+- SYS_NLSTAT = 280 // { int nlstat(char *path, struct nstat *ub); }
+- SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, \
+- SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, \
+- SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, \
+- SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, \
+- SYS_MODNEXT = 300 // { int modnext(int modid); }
+- SYS_MODSTAT = 301 // { int modstat(int modid, \
+- SYS_MODFNEXT = 302 // { int modfnext(int modid); }
+- SYS_MODFIND = 303 // { int modfind(const char *name); }
+- SYS_KLDLOAD = 304 // { int kldload(const char *file); }
+- SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); }
+- SYS_KLDFIND = 306 // { int kldfind(const char *file); }
+- SYS_KLDNEXT = 307 // { int kldnext(int fileid); }
+- SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct \
+- SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); }
+- SYS_GETSID = 310 // { int getsid(pid_t pid); }
+- SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, \
+- SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, \
+- SYS_YIELD = 321 // { int yield(void); }
+- SYS_MLOCKALL = 324 // { int mlockall(int how); }
+- SYS_MUNLOCKALL = 325 // { int munlockall(void); }
+- SYS___GETCWD = 326 // { int __getcwd(char *buf, u_int buflen); }
+- SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, \
+- SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct \
+- SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int \
+- SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); }
+- SYS_SCHED_YIELD = 331 // { int sched_yield (void); }
+- SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); }
+- SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); }
+- SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, \
+- SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); }
+- SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, \
+- SYS_JAIL = 338 // { int jail(struct jail *jail); }
+- SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, \
+- SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); }
+- SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); }
+- SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, \
+- SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, \
+- SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, \
+- SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, \
+- SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, \
+- SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, \
+- SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, \
+- SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, \
+- SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, \
+- SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, \
+- SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, \
+- SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( \
+- SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( \
+- SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, \
+- SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, \
+- SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, \
+- SYS_KQUEUE = 362 // { int kqueue(void); }
+- SYS_KEVENT = 363 // { int kevent(int fd, \
+- SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, \
+- SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, \
+- SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, \
+- SYS___SETUGID = 374 // { int __setugid(int flag); }
+- SYS_EACCESS = 376 // { int eaccess(char *path, int amode); }
+- SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, \
+- SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); }
+- SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); }
+- SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, \
+- SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, \
+- SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, \
+- SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, \
+- SYS_KENV = 390 // { int kenv(int what, const char *name, \
+- SYS_LCHFLAGS = 391 // { int lchflags(const char *path, \
+- SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, \
+- SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, \
+- SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, \
+- SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, \
+- SYS_STATFS = 396 // { int statfs(char *path, \
+- SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); }
+- SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, \
+- SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, \
+- SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, \
+- SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, \
+- SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( \
+- SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( \
+- SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( \
+- SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, \
+- SYS_SIGACTION = 416 // { int sigaction(int sig, \
+- SYS_SIGRETURN = 417 // { int sigreturn( \
+- SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); }
+- SYS_SETCONTEXT = 422 // { int setcontext( \
+- SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, \
+- SYS_SWAPOFF = 424 // { int swapoff(const char *name); }
+- SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, \
+- SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, \
+- SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, \
+- SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, \
+- SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, \
+- SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, \
+- SYS_THR_EXIT = 431 // { void thr_exit(long *state); }
+- SYS_THR_SELF = 432 // { int thr_self(long *id); }
+- SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); }
+- SYS__UMTX_LOCK = 434 // { int _umtx_lock(struct umtx *umtx); }
+- SYS__UMTX_UNLOCK = 435 // { int _umtx_unlock(struct umtx *umtx); }
+- SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); }
+- SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, \
+- SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( \
+- SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( \
+- SYS_THR_SUSPEND = 442 // { int thr_suspend( \
+- SYS_THR_WAKE = 443 // { int thr_wake(long id); }
+- SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); }
+- SYS_AUDIT = 445 // { int audit(const void *record, \
+- SYS_AUDITON = 446 // { int auditon(int cmd, void *data, \
+- SYS_GETAUID = 447 // { int getauid(uid_t *auid); }
+- SYS_SETAUID = 448 // { int setauid(uid_t *auid); }
+- SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); }
+- SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); }
+- SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( \
+- SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( \
+- SYS_AUDITCTL = 453 // { int auditctl(char *path); }
+- SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, \
+- SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, \
+- SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); }
+- SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); }
+- SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); }
+- SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, \
+- SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, \
+- SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, \
+- SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, \
+- SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, \
+- SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); }
+- SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); }
+- SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); }
+- SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, \
+- SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); }
+- SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); }
+- SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, \
+- SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, \
+- SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, \
+- SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, \
+- SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, \
+- SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, \
+- SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, \
+- SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, \
+- SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, \
+- SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, \
+- SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, \
+- SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); }
+- SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); }
+- SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, \
+- SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, \
+- SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, \
+- SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, \
+- SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, \
+- SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); }
+- SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); }
+- SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, \
+- SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, \
+- SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); }
+- SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); }
+- SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); }
+- SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, \
+- SYS_CAP_ENTER = 516 // { int cap_enter(void); }
+- SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); }
+- SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); }
+- SYS_PDKILL = 519 // { int pdkill(int fd, int signum); }
+- SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); }
+- SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, \
+- SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, \
+- SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); }
+- SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, \
+- SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, \
+- SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, \
+- SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, \
+- SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, \
+- SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, \
+- SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, \
+- SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, \
+- SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, \
+- SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, \
+- SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, \
+- SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, \
+- SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, \
+- SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, \
+- SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, \
+- SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, \
+- SYS_ACCEPT4 = 541 // { int accept4(int s, \
+- SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); }
+- SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, \
+- SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, \
+- SYS_FUTIMENS = 546 // { int futimens(int fd, \
+- SYS_UTIMENSAT = 547 // { int utimensat(int fd, \
++ SYS_EXIT = 1 // { void sys_exit(int rval); } exit sys_exit_args void
++ SYS_FORK = 2 // { int fork(void); }
++ SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); }
++ SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); }
++ SYS_OPEN = 5 // { int open(char *path, int flags, int mode); }
++ SYS_CLOSE = 6 // { int close(int fd); }
++ SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); }
++ SYS_LINK = 9 // { int link(char *path, char *link); }
++ SYS_UNLINK = 10 // { int unlink(char *path); }
++ SYS_CHDIR = 12 // { int chdir(char *path); }
++ SYS_FCHDIR = 13 // { int fchdir(int fd); }
++ SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); }
++ SYS_CHMOD = 15 // { int chmod(char *path, int mode); }
++ SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); }
++ SYS_OBREAK = 17 // { int obreak(char *nsize); } break obreak_args int
++ SYS_GETPID = 20 // { pid_t getpid(void); }
++ SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); }
++ SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); }
++ SYS_SETUID = 23 // { int setuid(uid_t uid); }
++ SYS_GETUID = 24 // { uid_t getuid(void); }
++ SYS_GETEUID = 25 // { uid_t geteuid(void); }
++ SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }
++ SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); }
++ SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, int flags); }
++ SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }
++ SYS_ACCEPT = 30 // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }
++ SYS_GETPEERNAME = 31 // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }
++ SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }
++ SYS_ACCESS = 33 // { int access(char *path, int amode); }
++ SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); }
++ SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); }
++ SYS_SYNC = 36 // { int sync(void); }
++ SYS_KILL = 37 // { int kill(int pid, int signum); }
++ SYS_GETPPID = 39 // { pid_t getppid(void); }
++ SYS_DUP = 41 // { int dup(u_int fd); }
++ SYS_PIPE = 42 // { int pipe(void); }
++ SYS_GETEGID = 43 // { gid_t getegid(void); }
++ SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); }
++ SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); }
++ SYS_GETGID = 47 // { gid_t getgid(void); }
++ SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); }
++ SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); }
++ SYS_ACCT = 51 // { int acct(char *path); }
++ SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); }
++ SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); }
++ SYS_REBOOT = 55 // { int reboot(int opt); }
++ SYS_REVOKE = 56 // { int revoke(char *path); }
++ SYS_SYMLINK = 57 // { int symlink(char *path, char *link); }
++ SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, size_t count); }
++ SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); }
++ SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args int
++ SYS_CHROOT = 61 // { int chroot(char *path); }
++ SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); }
++ SYS_VFORK = 66 // { int vfork(void); }
++ SYS_SBRK = 69 // { int sbrk(int incr); }
++ SYS_SSTK = 70 // { int sstk(int incr); }
++ SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise ovadvise_args int
++ SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); }
++ SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, int prot); }
++ SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); }
++ SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); }
++ SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); }
++ SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); }
++ SYS_GETPGRP = 81 // { int getpgrp(void); }
++ SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); }
++ SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }
++ SYS_SWAPON = 85 // { int swapon(char *name); }
++ SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); }
++ SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); }
++ SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); }
++ SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); }
++ SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }
++ SYS_FSYNC = 95 // { int fsync(int fd); }
++ SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); }
++ SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); }
++ SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); }
++ SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); }
++ SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); }
++ SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }
++ SYS_LISTEN = 106 // { int listen(int s, int backlog); }
++ SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }
++ SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); }
++ SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }
++ SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }
++ SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }
++ SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }
++ SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); }
++ SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); }
++ SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); }
++ SYS_SETREGID = 127 // { int setregid(int rgid, int egid); }
++ SYS_RENAME = 128 // { int rename(char *from, char *to); }
++ SYS_FLOCK = 131 // { int flock(int fd, int how); }
++ SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); }
++ SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }
++ SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); }
++ SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }
++ SYS_MKDIR = 136 // { int mkdir(char *path, int mode); }
++ SYS_RMDIR = 137 // { int rmdir(char *path); }
++ SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); }
++ SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }
++ SYS_SETSID = 147 // { int setsid(void); }
++ SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }
++ SYS_NLM_SYSCALL = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }
++ SYS_NFSSVC = 155 // { int nfssvc(int flag, caddr_t argp); }
++ SYS_LGETFH = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }
++ SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); }
++ SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); }
++ SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }
++ SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }
++ SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }
++ SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); }
++ SYS_SETFIB = 175 // { int setfib(int fibnum); }
++ SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); }
++ SYS_SETGID = 181 // { int setgid(gid_t gid); }
++ SYS_SETEGID = 182 // { int setegid(gid_t egid); }
++ SYS_SETEUID = 183 // { int seteuid(uid_t euid); }
++ SYS_STAT = 188 // { int stat(char *path, struct stat *ub); }
++ SYS_FSTAT = 189 // { int fstat(int fd, struct stat *sb); }
++ SYS_LSTAT = 190 // { int lstat(char *path, struct stat *ub); }
++ SYS_PATHCONF = 191 // { int pathconf(char *path, int name); }
++ SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); }
++ SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int
++ SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int
++ SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); }
++ SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int
++ SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); }
++ SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); }
++ SYS_UNDELETE = 205 // { int undelete(char *path); }
++ SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); }
++ SYS_GETPGID = 207 // { int getpgid(pid_t pid); }
++ SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }
++ SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); }
++ SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }
++ SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); }
++ SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }
++ SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }
++ SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }
++ SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); }
++ SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); }
++ SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }
++ SYS_CLOCK_SETTIME = 233 // { int clock_settime( clockid_t clock_id, const struct timespec *tp); }
++ SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }
++ SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }
++ SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); }
++ SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }
++ SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }
++ SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); }
++ SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }
++ SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); }
++ SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); }
++ SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); }
++ SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }
++ SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); }
++ SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }
++ SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); }
++ SYS_RFORK = 251 // { int rfork(int flags); }
++ SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); }
++ SYS_ISSETUGID = 253 // { int issetugid(void); }
++ SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); }
++ SYS_AIO_READ = 255 // { int aio_read(struct aiocb *aiocbp); }
++ SYS_AIO_WRITE = 256 // { int aio_write(struct aiocb *aiocbp); }
++ SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); }
++ SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, size_t count); }
++ SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); }
++ SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); }
++ SYS_NSTAT = 278 // { int nstat(char *path, struct nstat *ub); }
++ SYS_NFSTAT = 279 // { int nfstat(int fd, struct nstat *sb); }
++ SYS_NLSTAT = 280 // { int nlstat(char *path, struct nstat *ub); }
++ SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }
++ SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }
++ SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }
++ SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }
++ SYS_MODNEXT = 300 // { int modnext(int modid); }
++ SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat *stat); }
++ SYS_MODFNEXT = 302 // { int modfnext(int modid); }
++ SYS_MODFIND = 303 // { int modfind(const char *name); }
++ SYS_KLDLOAD = 304 // { int kldload(const char *file); }
++ SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); }
++ SYS_KLDFIND = 306 // { int kldfind(const char *file); }
++ SYS_KLDNEXT = 307 // { int kldnext(int fileid); }
++ SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); }
++ SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); }
++ SYS_GETSID = 310 // { int getsid(pid_t pid); }
++ SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }
++ SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }
++ SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); }
++ SYS_AIO_SUSPEND = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }
++ SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }
++ SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); }
++ SYS_YIELD = 321 // { int yield(void); }
++ SYS_MLOCKALL = 324 // { int mlockall(int how); }
++ SYS_MUNLOCKALL = 325 // { int munlockall(void); }
++ SYS___GETCWD = 326 // { int __getcwd(char *buf, u_int buflen); }
++ SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }
++ SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }
++ SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }
++ SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); }
++ SYS_SCHED_YIELD = 331 // { int sched_yield (void); }
++ SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); }
++ SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); }
++ SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }
++ SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); }
++ SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); }
++ SYS_JAIL = 338 // { int jail(struct jail *jail); }
++ SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }
++ SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); }
++ SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); }
++ SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); }
++ SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }
++ SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }
++ SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }
++ SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }
++ SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }
++ SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++ SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++ SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }
++ SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); }
++ SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }
++ SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }
++ SYS_KQUEUE = 362 // { int kqueue(void); }
++ SYS_KEVENT = 363 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }
++ SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++ SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++ SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }
++ SYS___SETUGID = 374 // { int __setugid(int flag); }
++ SYS_EACCESS = 376 // { int eaccess(char *path, int amode); }
++ SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }
++ SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); }
++ SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); }
++ SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); }
++ SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }
++ SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }
++ SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }
++ SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); }
++ SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); }
++ SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); }
++ SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }
++ SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); }
++ SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }
++ SYS_STATFS = 396 // { int statfs(char *path, struct statfs *buf); }
++ SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); }
++ SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }
++ SYS_KSEM_CLOSE = 400 // { int ksem_close(semid_t id); }
++ SYS_KSEM_POST = 401 // { int ksem_post(semid_t id); }
++ SYS_KSEM_WAIT = 402 // { int ksem_wait(semid_t id); }
++ SYS_KSEM_TRYWAIT = 403 // { int ksem_trywait(semid_t id); }
++ SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, unsigned int value); }
++ SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }
++ SYS_KSEM_UNLINK = 406 // { int ksem_unlink(const char *name); }
++ SYS_KSEM_GETVALUE = 407 // { int ksem_getvalue(semid_t id, int *val); }
++ SYS_KSEM_DESTROY = 408 // { int ksem_destroy(semid_t id); }
++ SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }
++ SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }
++ SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }
++ SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++ SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++ SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( const char *path, int attrnamespace, const char *attrname); }
++ SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }
++ SYS_SIGACTION = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }
++ SYS_SIGRETURN = 417 // { int sigreturn( const struct __ucontext *sigcntxp); }
++ SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); }
++ SYS_SETCONTEXT = 422 // { int setcontext( const struct __ucontext *ucp); }
++ SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }
++ SYS_SWAPOFF = 424 // { int swapoff(const char *name); }
++ SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }
++ SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, int *sig); }
++ SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }
++ SYS_THR_EXIT = 431 // { void thr_exit(long *state); }
++ SYS_THR_SELF = 432 // { int thr_self(long *id); }
++ SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); }
++ SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); }
++ SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }
++ SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); }
++ SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( const char *path, int attrnamespace, void *data, size_t nbytes); }
++ SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }
++ SYS_THR_SUSPEND = 442 // { int thr_suspend( const struct timespec *timeout); }
++ SYS_THR_WAKE = 443 // { int thr_wake(long id); }
++ SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); }
++ SYS_AUDIT = 445 // { int audit(const void *record, u_int length); }
++ SYS_AUDITON = 446 // { int auditon(int cmd, void *data, u_int length); }
++ SYS_GETAUID = 447 // { int getauid(uid_t *auid); }
++ SYS_SETAUID = 448 // { int setauid(uid_t *auid); }
++ SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); }
++ SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); }
++ SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); }
++ SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); }
++ SYS_AUDITCTL = 453 // { int auditctl(char *path); }
++ SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }
++ SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, int param_size); }
++ SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); }
++ SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }
++ SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); }
++ SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); }
++ SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len,unsigned msg_prio, const struct timespec *abs_timeout);}
++ SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); }
++ SYS_KMQ_UNLINK = 462 // { int kmq_unlink(const char *path); }
++ SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); }
++ SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); }
++ SYS_AIO_FSYNC = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }
++ SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }
++ SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); }
++ SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }
++ SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }
++ SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr * from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); }
++ SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }
++ SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }
++ SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }
++ SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, int whence); }
++ SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); }
++ SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); }
++ SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); }
++ SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, mode_t mode); }
++ SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); }
++ SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); }
++ SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); }
++ SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }
++ SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }
++ SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }
++ SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, int flag); }
++ SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }
++ SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }
++ SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, char **envv); }
++ SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }
++ SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, struct timeval *times); }
++ SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }
++ SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); }
++ SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); }
++ SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }
++ SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }
++ SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); }
++ SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }
++ SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, char *path2); }
++ SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); }
++ SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); }
++ SYS_GSSD_SYSCALL = 505 // { int gssd_syscall(char *path); }
++ SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }
++ SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }
++ SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); }
++ SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); }
++ SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }
++ SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }
++ SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }
++ SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); }
++ SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }
++ SYS_CAP_ENTER = 516 // { int cap_enter(void); }
++ SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); }
++ SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); }
++ SYS_PDKILL = 519 // { int pdkill(int fd, int signum); }
++ SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); }
++ SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }
++ SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, size_t namelen); }
++ SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); }
++ SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++ SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++ SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++ SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++ SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++ SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }
++ SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }
++ SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }
++ SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }
++ SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }
++ SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }
++ SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }
++ SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }
++ SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }
++ SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }
++ SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }
++ SYS_ACCEPT4 = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }
++ SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); }
++ SYS_AIO_MLOCK = 543 // { int aio_mlock(struct aiocb *aiocbp); }
++ SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }
++ SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }
++ SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); }
++ SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }
++ SYS_NUMA_GETAFFINITY = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); }
++ SYS_NUMA_SETAFFINITY = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); }
++ SYS_FDATASYNC = 550 // { int fdatasync(int fd); }
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go
+index 81722ac9..48a7beae 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go
+@@ -1,4 +1,4 @@
+-// mksysnum_freebsd.pl
++// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build amd64,freebsd
+@@ -7,347 +7,390 @@ package unix
+
+ const (
+ // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int
+- SYS_EXIT = 1 // { void sys_exit(int rval); } exit \
+- SYS_FORK = 2 // { int fork(void); }
+- SYS_READ = 3 // { ssize_t read(int fd, void *buf, \
+- SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, \
+- SYS_OPEN = 5 // { int open(char *path, int flags, int mode); }
+- SYS_CLOSE = 6 // { int close(int fd); }
+- SYS_WAIT4 = 7 // { int wait4(int pid, int *status, \
+- SYS_LINK = 9 // { int link(char *path, char *link); }
+- SYS_UNLINK = 10 // { int unlink(char *path); }
+- SYS_CHDIR = 12 // { int chdir(char *path); }
+- SYS_FCHDIR = 13 // { int fchdir(int fd); }
+- SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); }
+- SYS_CHMOD = 15 // { int chmod(char *path, int mode); }
+- SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); }
+- SYS_OBREAK = 17 // { int obreak(char *nsize); } break \
+- SYS_GETPID = 20 // { pid_t getpid(void); }
+- SYS_MOUNT = 21 // { int mount(char *type, char *path, \
+- SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); }
+- SYS_SETUID = 23 // { int setuid(uid_t uid); }
+- SYS_GETUID = 24 // { uid_t getuid(void); }
+- SYS_GETEUID = 25 // { uid_t geteuid(void); }
+- SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, \
+- SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, \
+- SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, \
+- SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, \
+- SYS_ACCEPT = 30 // { int accept(int s, \
+- SYS_GETPEERNAME = 31 // { int getpeername(int fdes, \
+- SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, \
+- SYS_ACCESS = 33 // { int access(char *path, int amode); }
+- SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); }
+- SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); }
+- SYS_SYNC = 36 // { int sync(void); }
+- SYS_KILL = 37 // { int kill(int pid, int signum); }
+- SYS_GETPPID = 39 // { pid_t getppid(void); }
+- SYS_DUP = 41 // { int dup(u_int fd); }
+- SYS_PIPE = 42 // { int pipe(void); }
+- SYS_GETEGID = 43 // { gid_t getegid(void); }
+- SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, \
+- SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, \
+- SYS_GETGID = 47 // { gid_t getgid(void); }
+- SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int \
+- SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); }
+- SYS_ACCT = 51 // { int acct(char *path); }
+- SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, \
+- SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, \
+- SYS_REBOOT = 55 // { int reboot(int opt); }
+- SYS_REVOKE = 56 // { int revoke(char *path); }
+- SYS_SYMLINK = 57 // { int symlink(char *path, char *link); }
+- SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, \
+- SYS_EXECVE = 59 // { int execve(char *fname, char **argv, \
+- SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args \
+- SYS_CHROOT = 61 // { int chroot(char *path); }
+- SYS_MSYNC = 65 // { int msync(void *addr, size_t len, \
+- SYS_VFORK = 66 // { int vfork(void); }
+- SYS_SBRK = 69 // { int sbrk(int incr); }
+- SYS_SSTK = 70 // { int sstk(int incr); }
+- SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise \
+- SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); }
+- SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, \
+- SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, \
+- SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, \
+- SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, \
+- SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, \
+- SYS_GETPGRP = 81 // { int getpgrp(void); }
+- SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); }
+- SYS_SETITIMER = 83 // { int setitimer(u_int which, struct \
+- SYS_SWAPON = 85 // { int swapon(char *name); }
+- SYS_GETITIMER = 86 // { int getitimer(u_int which, \
+- SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); }
+- SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); }
+- SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); }
+- SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, \
+- SYS_FSYNC = 95 // { int fsync(int fd); }
+- SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, \
+- SYS_SOCKET = 97 // { int socket(int domain, int type, \
+- SYS_CONNECT = 98 // { int connect(int s, caddr_t name, \
+- SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); }
+- SYS_BIND = 104 // { int bind(int s, caddr_t name, \
+- SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, \
+- SYS_LISTEN = 106 // { int listen(int s, int backlog); }
+- SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, \
+- SYS_GETRUSAGE = 117 // { int getrusage(int who, \
+- SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, \
+- SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, \
+- SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, \
+- SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, \
+- SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); }
+- SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); }
+- SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); }
+- SYS_SETREGID = 127 // { int setregid(int rgid, int egid); }
+- SYS_RENAME = 128 // { int rename(char *from, char *to); }
+- SYS_FLOCK = 131 // { int flock(int fd, int how); }
+- SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); }
+- SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, \
+- SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); }
+- SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, \
+- SYS_MKDIR = 136 // { int mkdir(char *path, int mode); }
+- SYS_RMDIR = 137 // { int rmdir(char *path); }
+- SYS_UTIMES = 138 // { int utimes(char *path, \
+- SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, \
+- SYS_SETSID = 147 // { int setsid(void); }
+- SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, \
+- SYS_LGETFH = 160 // { int lgetfh(char *fname, \
+- SYS_GETFH = 161 // { int getfh(char *fname, \
+- SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); }
+- SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, \
+- SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, \
+- SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, \
+- SYS_SETFIB = 175 // { int setfib(int fibnum); }
+- SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); }
+- SYS_SETGID = 181 // { int setgid(gid_t gid); }
+- SYS_SETEGID = 182 // { int setegid(gid_t egid); }
+- SYS_SETEUID = 183 // { int seteuid(uid_t euid); }
+- SYS_STAT = 188 // { int stat(char *path, struct stat *ub); }
+- SYS_FSTAT = 189 // { int fstat(int fd, struct stat *sb); }
+- SYS_LSTAT = 190 // { int lstat(char *path, struct stat *ub); }
+- SYS_PATHCONF = 191 // { int pathconf(char *path, int name); }
+- SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); }
+- SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, \
+- SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, \
+- SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, \
+- SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, \
+- SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, \
+- SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, \
+- SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, \
+- SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, \
+- SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); }
+- SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); }
+- SYS_UNDELETE = 205 // { int undelete(char *path); }
+- SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); }
+- SYS_GETPGID = 207 // { int getpgid(pid_t pid); }
+- SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, \
+- SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, \
+- SYS_CLOCK_SETTIME = 233 // { int clock_settime( \
+- SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, \
+- SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, \
+- SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); }
+- SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, \
+- SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct \
+- SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); }
+- SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, \
+- SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); }
+- SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( \
+- SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( \
+- SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,\
+- SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }
+- SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, \
+- SYS_RFORK = 251 // { int rfork(int flags); }
+- SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, \
+- SYS_ISSETUGID = 253 // { int issetugid(void); }
+- SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); }
+- SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, \
+- SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); }
+- SYS_LUTIMES = 276 // { int lutimes(char *path, \
+- SYS_NSTAT = 278 // { int nstat(char *path, struct nstat *ub); }
+- SYS_NFSTAT = 279 // { int nfstat(int fd, struct nstat *sb); }
+- SYS_NLSTAT = 280 // { int nlstat(char *path, struct nstat *ub); }
+- SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, \
+- SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, \
+- SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, \
+- SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, \
+- SYS_MODNEXT = 300 // { int modnext(int modid); }
+- SYS_MODSTAT = 301 // { int modstat(int modid, \
+- SYS_MODFNEXT = 302 // { int modfnext(int modid); }
+- SYS_MODFIND = 303 // { int modfind(const char *name); }
+- SYS_KLDLOAD = 304 // { int kldload(const char *file); }
+- SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); }
+- SYS_KLDFIND = 306 // { int kldfind(const char *file); }
+- SYS_KLDNEXT = 307 // { int kldnext(int fileid); }
+- SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct \
+- SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); }
+- SYS_GETSID = 310 // { int getsid(pid_t pid); }
+- SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, \
+- SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, \
+- SYS_YIELD = 321 // { int yield(void); }
+- SYS_MLOCKALL = 324 // { int mlockall(int how); }
+- SYS_MUNLOCKALL = 325 // { int munlockall(void); }
+- SYS___GETCWD = 326 // { int __getcwd(char *buf, u_int buflen); }
+- SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, \
+- SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct \
+- SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int \
+- SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); }
+- SYS_SCHED_YIELD = 331 // { int sched_yield (void); }
+- SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); }
+- SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); }
+- SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, \
+- SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); }
+- SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, \
+- SYS_JAIL = 338 // { int jail(struct jail *jail); }
+- SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, \
+- SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); }
+- SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); }
+- SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, \
+- SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, \
+- SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, \
+- SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, \
+- SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, \
+- SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, \
+- SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, \
+- SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, \
+- SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, \
+- SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, \
+- SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, \
+- SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( \
+- SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( \
+- SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, \
+- SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, \
+- SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, \
+- SYS_KQUEUE = 362 // { int kqueue(void); }
+- SYS_KEVENT = 363 // { int kevent(int fd, \
+- SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, \
+- SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, \
+- SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, \
+- SYS___SETUGID = 374 // { int __setugid(int flag); }
+- SYS_EACCESS = 376 // { int eaccess(char *path, int amode); }
+- SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, \
+- SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); }
+- SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); }
+- SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, \
+- SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, \
+- SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, \
+- SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, \
+- SYS_KENV = 390 // { int kenv(int what, const char *name, \
+- SYS_LCHFLAGS = 391 // { int lchflags(const char *path, \
+- SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, \
+- SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, \
+- SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, \
+- SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, \
+- SYS_STATFS = 396 // { int statfs(char *path, \
+- SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); }
+- SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, \
+- SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, \
+- SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, \
+- SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, \
+- SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( \
+- SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( \
+- SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( \
+- SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, \
+- SYS_SIGACTION = 416 // { int sigaction(int sig, \
+- SYS_SIGRETURN = 417 // { int sigreturn( \
+- SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); }
+- SYS_SETCONTEXT = 422 // { int setcontext( \
+- SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, \
+- SYS_SWAPOFF = 424 // { int swapoff(const char *name); }
+- SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, \
+- SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, \
+- SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, \
+- SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, \
+- SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, \
+- SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, \
+- SYS_THR_EXIT = 431 // { void thr_exit(long *state); }
+- SYS_THR_SELF = 432 // { int thr_self(long *id); }
+- SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); }
+- SYS__UMTX_LOCK = 434 // { int _umtx_lock(struct umtx *umtx); }
+- SYS__UMTX_UNLOCK = 435 // { int _umtx_unlock(struct umtx *umtx); }
+- SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); }
+- SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, \
+- SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( \
+- SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( \
+- SYS_THR_SUSPEND = 442 // { int thr_suspend( \
+- SYS_THR_WAKE = 443 // { int thr_wake(long id); }
+- SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); }
+- SYS_AUDIT = 445 // { int audit(const void *record, \
+- SYS_AUDITON = 446 // { int auditon(int cmd, void *data, \
+- SYS_GETAUID = 447 // { int getauid(uid_t *auid); }
+- SYS_SETAUID = 448 // { int setauid(uid_t *auid); }
+- SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); }
+- SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); }
+- SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( \
+- SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( \
+- SYS_AUDITCTL = 453 // { int auditctl(char *path); }
+- SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, \
+- SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, \
+- SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); }
+- SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); }
+- SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); }
+- SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, \
+- SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, \
+- SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, \
+- SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, \
+- SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, \
+- SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); }
+- SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); }
+- SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); }
+- SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, \
+- SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); }
+- SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); }
+- SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, \
+- SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, \
+- SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, \
+- SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, \
+- SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, \
+- SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, \
+- SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, \
+- SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, \
+- SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, \
+- SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, \
+- SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, \
+- SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); }
+- SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); }
+- SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, \
+- SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, \
+- SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, \
+- SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, \
+- SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, \
+- SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); }
+- SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); }
+- SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, \
+- SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, \
+- SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); }
+- SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); }
+- SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); }
+- SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, \
+- SYS_CAP_ENTER = 516 // { int cap_enter(void); }
+- SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); }
+- SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); }
+- SYS_PDKILL = 519 // { int pdkill(int fd, int signum); }
+- SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); }
+- SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, \
+- SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, \
+- SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); }
+- SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, \
+- SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, \
+- SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, \
+- SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, \
+- SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, \
+- SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, \
+- SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, \
+- SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, \
+- SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, \
+- SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, \
+- SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, \
+- SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, \
+- SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, \
+- SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, \
+- SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, \
+- SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, \
+- SYS_ACCEPT4 = 541 // { int accept4(int s, \
+- SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); }
+- SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, \
+- SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, \
+- SYS_FUTIMENS = 546 // { int futimens(int fd, \
+- SYS_UTIMENSAT = 547 // { int utimensat(int fd, \
++ SYS_EXIT = 1 // { void sys_exit(int rval); } exit sys_exit_args void
++ SYS_FORK = 2 // { int fork(void); }
++ SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); }
++ SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); }
++ SYS_OPEN = 5 // { int open(char *path, int flags, int mode); }
++ SYS_CLOSE = 6 // { int close(int fd); }
++ SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); }
++ SYS_LINK = 9 // { int link(char *path, char *link); }
++ SYS_UNLINK = 10 // { int unlink(char *path); }
++ SYS_CHDIR = 12 // { int chdir(char *path); }
++ SYS_FCHDIR = 13 // { int fchdir(int fd); }
++ SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); }
++ SYS_CHMOD = 15 // { int chmod(char *path, int mode); }
++ SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); }
++ SYS_OBREAK = 17 // { int obreak(char *nsize); } break obreak_args int
++ SYS_GETPID = 20 // { pid_t getpid(void); }
++ SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); }
++ SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); }
++ SYS_SETUID = 23 // { int setuid(uid_t uid); }
++ SYS_GETUID = 24 // { uid_t getuid(void); }
++ SYS_GETEUID = 25 // { uid_t geteuid(void); }
++ SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }
++ SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); }
++ SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, int flags); }
++ SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }
++ SYS_ACCEPT = 30 // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }
++ SYS_GETPEERNAME = 31 // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }
++ SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }
++ SYS_ACCESS = 33 // { int access(char *path, int amode); }
++ SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); }
++ SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); }
++ SYS_SYNC = 36 // { int sync(void); }
++ SYS_KILL = 37 // { int kill(int pid, int signum); }
++ SYS_GETPPID = 39 // { pid_t getppid(void); }
++ SYS_DUP = 41 // { int dup(u_int fd); }
++ SYS_PIPE = 42 // { int pipe(void); }
++ SYS_GETEGID = 43 // { gid_t getegid(void); }
++ SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); }
++ SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); }
++ SYS_GETGID = 47 // { gid_t getgid(void); }
++ SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); }
++ SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); }
++ SYS_ACCT = 51 // { int acct(char *path); }
++ SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); }
++ SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); }
++ SYS_REBOOT = 55 // { int reboot(int opt); }
++ SYS_REVOKE = 56 // { int revoke(char *path); }
++ SYS_SYMLINK = 57 // { int symlink(char *path, char *link); }
++ SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, size_t count); }
++ SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); }
++ SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args int
++ SYS_CHROOT = 61 // { int chroot(char *path); }
++ SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); }
++ SYS_VFORK = 66 // { int vfork(void); }
++ SYS_SBRK = 69 // { int sbrk(int incr); }
++ SYS_SSTK = 70 // { int sstk(int incr); }
++ SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise ovadvise_args int
++ SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); }
++ SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, int prot); }
++ SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); }
++ SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); }
++ SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); }
++ SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); }
++ SYS_GETPGRP = 81 // { int getpgrp(void); }
++ SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); }
++ SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }
++ SYS_SWAPON = 85 // { int swapon(char *name); }
++ SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); }
++ SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); }
++ SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); }
++ SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); }
++ SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }
++ SYS_FSYNC = 95 // { int fsync(int fd); }
++ SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); }
++ SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); }
++ SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); }
++ SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); }
++ SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); }
++ SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }
++ SYS_LISTEN = 106 // { int listen(int s, int backlog); }
++ SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }
++ SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); }
++ SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }
++ SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }
++ SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }
++ SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }
++ SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); }
++ SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); }
++ SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); }
++ SYS_SETREGID = 127 // { int setregid(int rgid, int egid); }
++ SYS_RENAME = 128 // { int rename(char *from, char *to); }
++ SYS_FLOCK = 131 // { int flock(int fd, int how); }
++ SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); }
++ SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }
++ SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); }
++ SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }
++ SYS_MKDIR = 136 // { int mkdir(char *path, int mode); }
++ SYS_RMDIR = 137 // { int rmdir(char *path); }
++ SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); }
++ SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }
++ SYS_SETSID = 147 // { int setsid(void); }
++ SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }
++ SYS_NLM_SYSCALL = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }
++ SYS_NFSSVC = 155 // { int nfssvc(int flag, caddr_t argp); }
++ SYS_LGETFH = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }
++ SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); }
++ SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); }
++ SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }
++ SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }
++ SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }
++ SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); }
++ SYS_SETFIB = 175 // { int setfib(int fibnum); }
++ SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); }
++ SYS_SETGID = 181 // { int setgid(gid_t gid); }
++ SYS_SETEGID = 182 // { int setegid(gid_t egid); }
++ SYS_SETEUID = 183 // { int seteuid(uid_t euid); }
++ SYS_STAT = 188 // { int stat(char *path, struct stat *ub); }
++ SYS_FSTAT = 189 // { int fstat(int fd, struct stat *sb); }
++ SYS_LSTAT = 190 // { int lstat(char *path, struct stat *ub); }
++ SYS_PATHCONF = 191 // { int pathconf(char *path, int name); }
++ SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); }
++ SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int
++ SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int
++ SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); }
++ SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int
++ SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); }
++ SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); }
++ SYS_UNDELETE = 205 // { int undelete(char *path); }
++ SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); }
++ SYS_GETPGID = 207 // { int getpgid(pid_t pid); }
++ SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }
++ SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); }
++ SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }
++ SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); }
++ SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }
++ SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }
++ SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }
++ SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); }
++ SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); }
++ SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }
++ SYS_CLOCK_SETTIME = 233 // { int clock_settime( clockid_t clock_id, const struct timespec *tp); }
++ SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }
++ SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }
++ SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); }
++ SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }
++ SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }
++ SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); }
++ SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }
++ SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); }
++ SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); }
++ SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); }
++ SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }
++ SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); }
++ SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }
++ SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); }
++ SYS_RFORK = 251 // { int rfork(int flags); }
++ SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); }
++ SYS_ISSETUGID = 253 // { int issetugid(void); }
++ SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); }
++ SYS_AIO_READ = 255 // { int aio_read(struct aiocb *aiocbp); }
++ SYS_AIO_WRITE = 256 // { int aio_write(struct aiocb *aiocbp); }
++ SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); }
++ SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, size_t count); }
++ SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); }
++ SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); }
++ SYS_NSTAT = 278 // { int nstat(char *path, struct nstat *ub); }
++ SYS_NFSTAT = 279 // { int nfstat(int fd, struct nstat *sb); }
++ SYS_NLSTAT = 280 // { int nlstat(char *path, struct nstat *ub); }
++ SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }
++ SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }
++ SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }
++ SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }
++ SYS_MODNEXT = 300 // { int modnext(int modid); }
++ SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat *stat); }
++ SYS_MODFNEXT = 302 // { int modfnext(int modid); }
++ SYS_MODFIND = 303 // { int modfind(const char *name); }
++ SYS_KLDLOAD = 304 // { int kldload(const char *file); }
++ SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); }
++ SYS_KLDFIND = 306 // { int kldfind(const char *file); }
++ SYS_KLDNEXT = 307 // { int kldnext(int fileid); }
++ SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); }
++ SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); }
++ SYS_GETSID = 310 // { int getsid(pid_t pid); }
++ SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }
++ SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }
++ SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); }
++ SYS_AIO_SUSPEND = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }
++ SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }
++ SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); }
++ SYS_YIELD = 321 // { int yield(void); }
++ SYS_MLOCKALL = 324 // { int mlockall(int how); }
++ SYS_MUNLOCKALL = 325 // { int munlockall(void); }
++ SYS___GETCWD = 326 // { int __getcwd(char *buf, u_int buflen); }
++ SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }
++ SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }
++ SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }
++ SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); }
++ SYS_SCHED_YIELD = 331 // { int sched_yield (void); }
++ SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); }
++ SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); }
++ SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }
++ SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); }
++ SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); }
++ SYS_JAIL = 338 // { int jail(struct jail *jail); }
++ SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }
++ SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); }
++ SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); }
++ SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); }
++ SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }
++ SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }
++ SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }
++ SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }
++ SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }
++ SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++ SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++ SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }
++ SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); }
++ SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }
++ SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }
++ SYS_KQUEUE = 362 // { int kqueue(void); }
++ SYS_KEVENT = 363 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }
++ SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++ SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++ SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }
++ SYS___SETUGID = 374 // { int __setugid(int flag); }
++ SYS_EACCESS = 376 // { int eaccess(char *path, int amode); }
++ SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }
++ SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); }
++ SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); }
++ SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); }
++ SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }
++ SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }
++ SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }
++ SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); }
++ SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); }
++ SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); }
++ SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }
++ SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); }
++ SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }
++ SYS_STATFS = 396 // { int statfs(char *path, struct statfs *buf); }
++ SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); }
++ SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }
++ SYS_KSEM_CLOSE = 400 // { int ksem_close(semid_t id); }
++ SYS_KSEM_POST = 401 // { int ksem_post(semid_t id); }
++ SYS_KSEM_WAIT = 402 // { int ksem_wait(semid_t id); }
++ SYS_KSEM_TRYWAIT = 403 // { int ksem_trywait(semid_t id); }
++ SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, unsigned int value); }
++ SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }
++ SYS_KSEM_UNLINK = 406 // { int ksem_unlink(const char *name); }
++ SYS_KSEM_GETVALUE = 407 // { int ksem_getvalue(semid_t id, int *val); }
++ SYS_KSEM_DESTROY = 408 // { int ksem_destroy(semid_t id); }
++ SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }
++ SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }
++ SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }
++ SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++ SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++ SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( const char *path, int attrnamespace, const char *attrname); }
++ SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }
++ SYS_SIGACTION = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }
++ SYS_SIGRETURN = 417 // { int sigreturn( const struct __ucontext *sigcntxp); }
++ SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); }
++ SYS_SETCONTEXT = 422 // { int setcontext( const struct __ucontext *ucp); }
++ SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }
++ SYS_SWAPOFF = 424 // { int swapoff(const char *name); }
++ SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }
++ SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, int *sig); }
++ SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }
++ SYS_THR_EXIT = 431 // { void thr_exit(long *state); }
++ SYS_THR_SELF = 432 // { int thr_self(long *id); }
++ SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); }
++ SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); }
++ SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }
++ SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); }
++ SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( const char *path, int attrnamespace, void *data, size_t nbytes); }
++ SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }
++ SYS_THR_SUSPEND = 442 // { int thr_suspend( const struct timespec *timeout); }
++ SYS_THR_WAKE = 443 // { int thr_wake(long id); }
++ SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); }
++ SYS_AUDIT = 445 // { int audit(const void *record, u_int length); }
++ SYS_AUDITON = 446 // { int auditon(int cmd, void *data, u_int length); }
++ SYS_GETAUID = 447 // { int getauid(uid_t *auid); }
++ SYS_SETAUID = 448 // { int setauid(uid_t *auid); }
++ SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); }
++ SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); }
++ SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); }
++ SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); }
++ SYS_AUDITCTL = 453 // { int auditctl(char *path); }
++ SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }
++ SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, int param_size); }
++ SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); }
++ SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }
++ SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); }
++ SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); }
++ SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len,unsigned msg_prio, const struct timespec *abs_timeout);}
++ SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); }
++ SYS_KMQ_UNLINK = 462 // { int kmq_unlink(const char *path); }
++ SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); }
++ SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); }
++ SYS_AIO_FSYNC = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }
++ SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }
++ SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); }
++ SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }
++ SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }
++ SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr * from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); }
++ SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }
++ SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }
++ SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }
++ SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, int whence); }
++ SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); }
++ SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); }
++ SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); }
++ SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, mode_t mode); }
++ SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); }
++ SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); }
++ SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); }
++ SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }
++ SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }
++ SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }
++ SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, int flag); }
++ SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }
++ SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }
++ SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, char **envv); }
++ SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }
++ SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, struct timeval *times); }
++ SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }
++ SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); }
++ SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); }
++ SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }
++ SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }
++ SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); }
++ SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }
++ SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, char *path2); }
++ SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); }
++ SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); }
++ SYS_GSSD_SYSCALL = 505 // { int gssd_syscall(char *path); }
++ SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }
++ SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }
++ SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); }
++ SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); }
++ SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }
++ SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }
++ SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }
++ SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); }
++ SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }
++ SYS_CAP_ENTER = 516 // { int cap_enter(void); }
++ SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); }
++ SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); }
++ SYS_PDKILL = 519 // { int pdkill(int fd, int signum); }
++ SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); }
++ SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }
++ SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, size_t namelen); }
++ SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); }
++ SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++ SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++ SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++ SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++ SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++ SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }
++ SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }
++ SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }
++ SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }
++ SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }
++ SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }
++ SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }
++ SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }
++ SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }
++ SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }
++ SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }
++ SYS_ACCEPT4 = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }
++ SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); }
++ SYS_AIO_MLOCK = 543 // { int aio_mlock(struct aiocb *aiocbp); }
++ SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }
++ SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }
++ SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); }
++ SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }
++ SYS_NUMA_GETAFFINITY = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); }
++ SYS_NUMA_SETAFFINITY = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); }
++ SYS_FDATASYNC = 550 // { int fdatasync(int fd); }
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go
+index 44883141..4a6dfd4a 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go
+@@ -1,4 +1,4 @@
+-// mksysnum_freebsd.pl
++// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build arm,freebsd
+@@ -7,347 +7,390 @@ package unix
+
+ const (
+ // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int
+- SYS_EXIT = 1 // { void sys_exit(int rval); } exit \
+- SYS_FORK = 2 // { int fork(void); }
+- SYS_READ = 3 // { ssize_t read(int fd, void *buf, \
+- SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, \
+- SYS_OPEN = 5 // { int open(char *path, int flags, int mode); }
+- SYS_CLOSE = 6 // { int close(int fd); }
+- SYS_WAIT4 = 7 // { int wait4(int pid, int *status, \
+- SYS_LINK = 9 // { int link(char *path, char *link); }
+- SYS_UNLINK = 10 // { int unlink(char *path); }
+- SYS_CHDIR = 12 // { int chdir(char *path); }
+- SYS_FCHDIR = 13 // { int fchdir(int fd); }
+- SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); }
+- SYS_CHMOD = 15 // { int chmod(char *path, int mode); }
+- SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); }
+- SYS_OBREAK = 17 // { int obreak(char *nsize); } break \
+- SYS_GETPID = 20 // { pid_t getpid(void); }
+- SYS_MOUNT = 21 // { int mount(char *type, char *path, \
+- SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); }
+- SYS_SETUID = 23 // { int setuid(uid_t uid); }
+- SYS_GETUID = 24 // { uid_t getuid(void); }
+- SYS_GETEUID = 25 // { uid_t geteuid(void); }
+- SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, \
+- SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, \
+- SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, \
+- SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, \
+- SYS_ACCEPT = 30 // { int accept(int s, \
+- SYS_GETPEERNAME = 31 // { int getpeername(int fdes, \
+- SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, \
+- SYS_ACCESS = 33 // { int access(char *path, int amode); }
+- SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); }
+- SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); }
+- SYS_SYNC = 36 // { int sync(void); }
+- SYS_KILL = 37 // { int kill(int pid, int signum); }
+- SYS_GETPPID = 39 // { pid_t getppid(void); }
+- SYS_DUP = 41 // { int dup(u_int fd); }
+- SYS_PIPE = 42 // { int pipe(void); }
+- SYS_GETEGID = 43 // { gid_t getegid(void); }
+- SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, \
+- SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, \
+- SYS_GETGID = 47 // { gid_t getgid(void); }
+- SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int \
+- SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); }
+- SYS_ACCT = 51 // { int acct(char *path); }
+- SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, \
+- SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, \
+- SYS_REBOOT = 55 // { int reboot(int opt); }
+- SYS_REVOKE = 56 // { int revoke(char *path); }
+- SYS_SYMLINK = 57 // { int symlink(char *path, char *link); }
+- SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, \
+- SYS_EXECVE = 59 // { int execve(char *fname, char **argv, \
+- SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args \
+- SYS_CHROOT = 61 // { int chroot(char *path); }
+- SYS_MSYNC = 65 // { int msync(void *addr, size_t len, \
+- SYS_VFORK = 66 // { int vfork(void); }
+- SYS_SBRK = 69 // { int sbrk(int incr); }
+- SYS_SSTK = 70 // { int sstk(int incr); }
+- SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise \
+- SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); }
+- SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, \
+- SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, \
+- SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, \
+- SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, \
+- SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, \
+- SYS_GETPGRP = 81 // { int getpgrp(void); }
+- SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); }
+- SYS_SETITIMER = 83 // { int setitimer(u_int which, struct \
+- SYS_SWAPON = 85 // { int swapon(char *name); }
+- SYS_GETITIMER = 86 // { int getitimer(u_int which, \
+- SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); }
+- SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); }
+- SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); }
+- SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, \
+- SYS_FSYNC = 95 // { int fsync(int fd); }
+- SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, \
+- SYS_SOCKET = 97 // { int socket(int domain, int type, \
+- SYS_CONNECT = 98 // { int connect(int s, caddr_t name, \
+- SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); }
+- SYS_BIND = 104 // { int bind(int s, caddr_t name, \
+- SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, \
+- SYS_LISTEN = 106 // { int listen(int s, int backlog); }
+- SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, \
+- SYS_GETRUSAGE = 117 // { int getrusage(int who, \
+- SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, \
+- SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, \
+- SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, \
+- SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, \
+- SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); }
+- SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); }
+- SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); }
+- SYS_SETREGID = 127 // { int setregid(int rgid, int egid); }
+- SYS_RENAME = 128 // { int rename(char *from, char *to); }
+- SYS_FLOCK = 131 // { int flock(int fd, int how); }
+- SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); }
+- SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, \
+- SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); }
+- SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, \
+- SYS_MKDIR = 136 // { int mkdir(char *path, int mode); }
+- SYS_RMDIR = 137 // { int rmdir(char *path); }
+- SYS_UTIMES = 138 // { int utimes(char *path, \
+- SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, \
+- SYS_SETSID = 147 // { int setsid(void); }
+- SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, \
+- SYS_LGETFH = 160 // { int lgetfh(char *fname, \
+- SYS_GETFH = 161 // { int getfh(char *fname, \
+- SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); }
+- SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, \
+- SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, \
+- SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, \
+- SYS_SETFIB = 175 // { int setfib(int fibnum); }
+- SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); }
+- SYS_SETGID = 181 // { int setgid(gid_t gid); }
+- SYS_SETEGID = 182 // { int setegid(gid_t egid); }
+- SYS_SETEUID = 183 // { int seteuid(uid_t euid); }
+- SYS_STAT = 188 // { int stat(char *path, struct stat *ub); }
+- SYS_FSTAT = 189 // { int fstat(int fd, struct stat *sb); }
+- SYS_LSTAT = 190 // { int lstat(char *path, struct stat *ub); }
+- SYS_PATHCONF = 191 // { int pathconf(char *path, int name); }
+- SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); }
+- SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, \
+- SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, \
+- SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, \
+- SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, \
+- SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, \
+- SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, \
+- SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, \
+- SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, \
+- SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); }
+- SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); }
+- SYS_UNDELETE = 205 // { int undelete(char *path); }
+- SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); }
+- SYS_GETPGID = 207 // { int getpgid(pid_t pid); }
+- SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, \
+- SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, \
+- SYS_CLOCK_SETTIME = 233 // { int clock_settime( \
+- SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, \
+- SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, \
+- SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); }
+- SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, \
+- SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct \
+- SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); }
+- SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, \
+- SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); }
+- SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( \
+- SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( \
+- SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,\
+- SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }
+- SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, \
+- SYS_RFORK = 251 // { int rfork(int flags); }
+- SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, \
+- SYS_ISSETUGID = 253 // { int issetugid(void); }
+- SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); }
+- SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, \
+- SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); }
+- SYS_LUTIMES = 276 // { int lutimes(char *path, \
+- SYS_NSTAT = 278 // { int nstat(char *path, struct nstat *ub); }
+- SYS_NFSTAT = 279 // { int nfstat(int fd, struct nstat *sb); }
+- SYS_NLSTAT = 280 // { int nlstat(char *path, struct nstat *ub); }
+- SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, \
+- SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, \
+- SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, \
+- SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, \
+- SYS_MODNEXT = 300 // { int modnext(int modid); }
+- SYS_MODSTAT = 301 // { int modstat(int modid, \
+- SYS_MODFNEXT = 302 // { int modfnext(int modid); }
+- SYS_MODFIND = 303 // { int modfind(const char *name); }
+- SYS_KLDLOAD = 304 // { int kldload(const char *file); }
+- SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); }
+- SYS_KLDFIND = 306 // { int kldfind(const char *file); }
+- SYS_KLDNEXT = 307 // { int kldnext(int fileid); }
+- SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct \
+- SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); }
+- SYS_GETSID = 310 // { int getsid(pid_t pid); }
+- SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, \
+- SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, \
+- SYS_YIELD = 321 // { int yield(void); }
+- SYS_MLOCKALL = 324 // { int mlockall(int how); }
+- SYS_MUNLOCKALL = 325 // { int munlockall(void); }
+- SYS___GETCWD = 326 // { int __getcwd(char *buf, u_int buflen); }
+- SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, \
+- SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct \
+- SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int \
+- SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); }
+- SYS_SCHED_YIELD = 331 // { int sched_yield (void); }
+- SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); }
+- SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); }
+- SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, \
+- SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); }
+- SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, \
+- SYS_JAIL = 338 // { int jail(struct jail *jail); }
+- SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, \
+- SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); }
+- SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); }
+- SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, \
+- SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, \
+- SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, \
+- SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, \
+- SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, \
+- SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, \
+- SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, \
+- SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, \
+- SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, \
+- SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, \
+- SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, \
+- SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( \
+- SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( \
+- SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, \
+- SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, \
+- SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, \
+- SYS_KQUEUE = 362 // { int kqueue(void); }
+- SYS_KEVENT = 363 // { int kevent(int fd, \
+- SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, \
+- SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, \
+- SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, \
+- SYS___SETUGID = 374 // { int __setugid(int flag); }
+- SYS_EACCESS = 376 // { int eaccess(char *path, int amode); }
+- SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, \
+- SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); }
+- SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); }
+- SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, \
+- SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, \
+- SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, \
+- SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, \
+- SYS_KENV = 390 // { int kenv(int what, const char *name, \
+- SYS_LCHFLAGS = 391 // { int lchflags(const char *path, \
+- SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, \
+- SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, \
+- SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, \
+- SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, \
+- SYS_STATFS = 396 // { int statfs(char *path, \
+- SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); }
+- SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, \
+- SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, \
+- SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, \
+- SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, \
+- SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( \
+- SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( \
+- SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( \
+- SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, \
+- SYS_SIGACTION = 416 // { int sigaction(int sig, \
+- SYS_SIGRETURN = 417 // { int sigreturn( \
+- SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); }
+- SYS_SETCONTEXT = 422 // { int setcontext( \
+- SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, \
+- SYS_SWAPOFF = 424 // { int swapoff(const char *name); }
+- SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, \
+- SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, \
+- SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, \
+- SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, \
+- SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, \
+- SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, \
+- SYS_THR_EXIT = 431 // { void thr_exit(long *state); }
+- SYS_THR_SELF = 432 // { int thr_self(long *id); }
+- SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); }
+- SYS__UMTX_LOCK = 434 // { int _umtx_lock(struct umtx *umtx); }
+- SYS__UMTX_UNLOCK = 435 // { int _umtx_unlock(struct umtx *umtx); }
+- SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); }
+- SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, \
+- SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( \
+- SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( \
+- SYS_THR_SUSPEND = 442 // { int thr_suspend( \
+- SYS_THR_WAKE = 443 // { int thr_wake(long id); }
+- SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); }
+- SYS_AUDIT = 445 // { int audit(const void *record, \
+- SYS_AUDITON = 446 // { int auditon(int cmd, void *data, \
+- SYS_GETAUID = 447 // { int getauid(uid_t *auid); }
+- SYS_SETAUID = 448 // { int setauid(uid_t *auid); }
+- SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); }
+- SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); }
+- SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( \
+- SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( \
+- SYS_AUDITCTL = 453 // { int auditctl(char *path); }
+- SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, \
+- SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, \
+- SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); }
+- SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); }
+- SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); }
+- SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, \
+- SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, \
+- SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, \
+- SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, \
+- SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, \
+- SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); }
+- SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); }
+- SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); }
+- SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, \
+- SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); }
+- SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); }
+- SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, \
+- SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, \
+- SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, \
+- SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, \
+- SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, \
+- SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, \
+- SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, \
+- SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, \
+- SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, \
+- SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, \
+- SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, \
+- SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); }
+- SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); }
+- SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, \
+- SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, \
+- SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, \
+- SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, \
+- SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, \
+- SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); }
+- SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); }
+- SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, \
+- SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, \
+- SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); }
+- SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); }
+- SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); }
+- SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, \
+- SYS_CAP_ENTER = 516 // { int cap_enter(void); }
+- SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); }
+- SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); }
+- SYS_PDKILL = 519 // { int pdkill(int fd, int signum); }
+- SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); }
+- SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, \
+- SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, \
+- SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); }
+- SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, \
+- SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, \
+- SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, \
+- SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, \
+- SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, \
+- SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, \
+- SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, \
+- SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, \
+- SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, \
+- SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, \
+- SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, \
+- SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, \
+- SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, \
+- SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, \
+- SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, \
+- SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, \
+- SYS_ACCEPT4 = 541 // { int accept4(int s, \
+- SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); }
+- SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, \
+- SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, \
+- SYS_FUTIMENS = 546 // { int futimens(int fd, \
+- SYS_UTIMENSAT = 547 // { int utimensat(int fd, \
++ SYS_EXIT = 1 // { void sys_exit(int rval); } exit sys_exit_args void
++ SYS_FORK = 2 // { int fork(void); }
++ SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); }
++ SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); }
++ SYS_OPEN = 5 // { int open(char *path, int flags, int mode); }
++ SYS_CLOSE = 6 // { int close(int fd); }
++ SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); }
++ SYS_LINK = 9 // { int link(char *path, char *link); }
++ SYS_UNLINK = 10 // { int unlink(char *path); }
++ SYS_CHDIR = 12 // { int chdir(char *path); }
++ SYS_FCHDIR = 13 // { int fchdir(int fd); }
++ SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); }
++ SYS_CHMOD = 15 // { int chmod(char *path, int mode); }
++ SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); }
++ SYS_OBREAK = 17 // { int obreak(char *nsize); } break obreak_args int
++ SYS_GETPID = 20 // { pid_t getpid(void); }
++ SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); }
++ SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); }
++ SYS_SETUID = 23 // { int setuid(uid_t uid); }
++ SYS_GETUID = 24 // { uid_t getuid(void); }
++ SYS_GETEUID = 25 // { uid_t geteuid(void); }
++ SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }
++ SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); }
++ SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, int flags); }
++ SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }
++ SYS_ACCEPT = 30 // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }
++ SYS_GETPEERNAME = 31 // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }
++ SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }
++ SYS_ACCESS = 33 // { int access(char *path, int amode); }
++ SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); }
++ SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); }
++ SYS_SYNC = 36 // { int sync(void); }
++ SYS_KILL = 37 // { int kill(int pid, int signum); }
++ SYS_GETPPID = 39 // { pid_t getppid(void); }
++ SYS_DUP = 41 // { int dup(u_int fd); }
++ SYS_PIPE = 42 // { int pipe(void); }
++ SYS_GETEGID = 43 // { gid_t getegid(void); }
++ SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); }
++ SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); }
++ SYS_GETGID = 47 // { gid_t getgid(void); }
++ SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); }
++ SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); }
++ SYS_ACCT = 51 // { int acct(char *path); }
++ SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); }
++ SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); }
++ SYS_REBOOT = 55 // { int reboot(int opt); }
++ SYS_REVOKE = 56 // { int revoke(char *path); }
++ SYS_SYMLINK = 57 // { int symlink(char *path, char *link); }
++ SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, size_t count); }
++ SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); }
++ SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args int
++ SYS_CHROOT = 61 // { int chroot(char *path); }
++ SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); }
++ SYS_VFORK = 66 // { int vfork(void); }
++ SYS_SBRK = 69 // { int sbrk(int incr); }
++ SYS_SSTK = 70 // { int sstk(int incr); }
++ SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise ovadvise_args int
++ SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); }
++ SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, int prot); }
++ SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); }
++ SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); }
++ SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); }
++ SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); }
++ SYS_GETPGRP = 81 // { int getpgrp(void); }
++ SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); }
++ SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }
++ SYS_SWAPON = 85 // { int swapon(char *name); }
++ SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); }
++ SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); }
++ SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); }
++ SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); }
++ SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }
++ SYS_FSYNC = 95 // { int fsync(int fd); }
++ SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); }
++ SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); }
++ SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); }
++ SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); }
++ SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); }
++ SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }
++ SYS_LISTEN = 106 // { int listen(int s, int backlog); }
++ SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }
++ SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); }
++ SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }
++ SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }
++ SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }
++ SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }
++ SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); }
++ SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); }
++ SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); }
++ SYS_SETREGID = 127 // { int setregid(int rgid, int egid); }
++ SYS_RENAME = 128 // { int rename(char *from, char *to); }
++ SYS_FLOCK = 131 // { int flock(int fd, int how); }
++ SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); }
++ SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }
++ SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); }
++ SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }
++ SYS_MKDIR = 136 // { int mkdir(char *path, int mode); }
++ SYS_RMDIR = 137 // { int rmdir(char *path); }
++ SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); }
++ SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }
++ SYS_SETSID = 147 // { int setsid(void); }
++ SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }
++ SYS_NLM_SYSCALL = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }
++ SYS_NFSSVC = 155 // { int nfssvc(int flag, caddr_t argp); }
++ SYS_LGETFH = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }
++ SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); }
++ SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); }
++ SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }
++ SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }
++ SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }
++ SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); }
++ SYS_SETFIB = 175 // { int setfib(int fibnum); }
++ SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); }
++ SYS_SETGID = 181 // { int setgid(gid_t gid); }
++ SYS_SETEGID = 182 // { int setegid(gid_t egid); }
++ SYS_SETEUID = 183 // { int seteuid(uid_t euid); }
++ SYS_STAT = 188 // { int stat(char *path, struct stat *ub); }
++ SYS_FSTAT = 189 // { int fstat(int fd, struct stat *sb); }
++ SYS_LSTAT = 190 // { int lstat(char *path, struct stat *ub); }
++ SYS_PATHCONF = 191 // { int pathconf(char *path, int name); }
++ SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); }
++ SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int
++ SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int
++ SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); }
++ SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int
++ SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); }
++ SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); }
++ SYS_UNDELETE = 205 // { int undelete(char *path); }
++ SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); }
++ SYS_GETPGID = 207 // { int getpgid(pid_t pid); }
++ SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }
++ SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); }
++ SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }
++ SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); }
++ SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }
++ SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }
++ SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }
++ SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); }
++ SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); }
++ SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }
++ SYS_CLOCK_SETTIME = 233 // { int clock_settime( clockid_t clock_id, const struct timespec *tp); }
++ SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }
++ SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }
++ SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); }
++ SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }
++ SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }
++ SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); }
++ SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }
++ SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); }
++ SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); }
++ SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); }
++ SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }
++ SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); }
++ SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }
++ SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); }
++ SYS_RFORK = 251 // { int rfork(int flags); }
++ SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); }
++ SYS_ISSETUGID = 253 // { int issetugid(void); }
++ SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); }
++ SYS_AIO_READ = 255 // { int aio_read(struct aiocb *aiocbp); }
++ SYS_AIO_WRITE = 256 // { int aio_write(struct aiocb *aiocbp); }
++ SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); }
++ SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, size_t count); }
++ SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); }
++ SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); }
++ SYS_NSTAT = 278 // { int nstat(char *path, struct nstat *ub); }
++ SYS_NFSTAT = 279 // { int nfstat(int fd, struct nstat *sb); }
++ SYS_NLSTAT = 280 // { int nlstat(char *path, struct nstat *ub); }
++ SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }
++ SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }
++ SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }
++ SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }
++ SYS_MODNEXT = 300 // { int modnext(int modid); }
++ SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat *stat); }
++ SYS_MODFNEXT = 302 // { int modfnext(int modid); }
++ SYS_MODFIND = 303 // { int modfind(const char *name); }
++ SYS_KLDLOAD = 304 // { int kldload(const char *file); }
++ SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); }
++ SYS_KLDFIND = 306 // { int kldfind(const char *file); }
++ SYS_KLDNEXT = 307 // { int kldnext(int fileid); }
++ SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); }
++ SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); }
++ SYS_GETSID = 310 // { int getsid(pid_t pid); }
++ SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }
++ SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }
++ SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); }
++ SYS_AIO_SUSPEND = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }
++ SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }
++ SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); }
++ SYS_YIELD = 321 // { int yield(void); }
++ SYS_MLOCKALL = 324 // { int mlockall(int how); }
++ SYS_MUNLOCKALL = 325 // { int munlockall(void); }
++ SYS___GETCWD = 326 // { int __getcwd(char *buf, u_int buflen); }
++ SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }
++ SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }
++ SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }
++ SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); }
++ SYS_SCHED_YIELD = 331 // { int sched_yield (void); }
++ SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); }
++ SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); }
++ SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }
++ SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); }
++ SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); }
++ SYS_JAIL = 338 // { int jail(struct jail *jail); }
++ SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }
++ SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); }
++ SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); }
++ SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); }
++ SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }
++ SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }
++ SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }
++ SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }
++ SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }
++ SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++ SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++ SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }
++ SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); }
++ SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }
++ SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }
++ SYS_KQUEUE = 362 // { int kqueue(void); }
++ SYS_KEVENT = 363 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }
++ SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++ SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++ SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }
++ SYS___SETUGID = 374 // { int __setugid(int flag); }
++ SYS_EACCESS = 376 // { int eaccess(char *path, int amode); }
++ SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }
++ SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); }
++ SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); }
++ SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); }
++ SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }
++ SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }
++ SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }
++ SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); }
++ SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); }
++ SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); }
++ SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }
++ SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); }
++ SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }
++ SYS_STATFS = 396 // { int statfs(char *path, struct statfs *buf); }
++ SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); }
++ SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }
++ SYS_KSEM_CLOSE = 400 // { int ksem_close(semid_t id); }
++ SYS_KSEM_POST = 401 // { int ksem_post(semid_t id); }
++ SYS_KSEM_WAIT = 402 // { int ksem_wait(semid_t id); }
++ SYS_KSEM_TRYWAIT = 403 // { int ksem_trywait(semid_t id); }
++ SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, unsigned int value); }
++ SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }
++ SYS_KSEM_UNLINK = 406 // { int ksem_unlink(const char *name); }
++ SYS_KSEM_GETVALUE = 407 // { int ksem_getvalue(semid_t id, int *val); }
++ SYS_KSEM_DESTROY = 408 // { int ksem_destroy(semid_t id); }
++ SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }
++ SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }
++ SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }
++ SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++ SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++ SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( const char *path, int attrnamespace, const char *attrname); }
++ SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }
++ SYS_SIGACTION = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }
++ SYS_SIGRETURN = 417 // { int sigreturn( const struct __ucontext *sigcntxp); }
++ SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); }
++ SYS_SETCONTEXT = 422 // { int setcontext( const struct __ucontext *ucp); }
++ SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }
++ SYS_SWAPOFF = 424 // { int swapoff(const char *name); }
++ SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }
++ SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, int *sig); }
++ SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }
++ SYS_THR_EXIT = 431 // { void thr_exit(long *state); }
++ SYS_THR_SELF = 432 // { int thr_self(long *id); }
++ SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); }
++ SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); }
++ SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }
++ SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); }
++ SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( const char *path, int attrnamespace, void *data, size_t nbytes); }
++ SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }
++ SYS_THR_SUSPEND = 442 // { int thr_suspend( const struct timespec *timeout); }
++ SYS_THR_WAKE = 443 // { int thr_wake(long id); }
++ SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); }
++ SYS_AUDIT = 445 // { int audit(const void *record, u_int length); }
++ SYS_AUDITON = 446 // { int auditon(int cmd, void *data, u_int length); }
++ SYS_GETAUID = 447 // { int getauid(uid_t *auid); }
++ SYS_SETAUID = 448 // { int setauid(uid_t *auid); }
++ SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); }
++ SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); }
++ SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); }
++ SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); }
++ SYS_AUDITCTL = 453 // { int auditctl(char *path); }
++ SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }
++ SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, int param_size); }
++ SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); }
++ SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }
++ SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); }
++ SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); }
++ SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len,unsigned msg_prio, const struct timespec *abs_timeout);}
++ SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); }
++ SYS_KMQ_UNLINK = 462 // { int kmq_unlink(const char *path); }
++ SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); }
++ SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); }
++ SYS_AIO_FSYNC = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }
++ SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }
++ SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); }
++ SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }
++ SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }
++ SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr * from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); }
++ SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }
++ SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }
++ SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }
++ SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, int whence); }
++ SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); }
++ SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); }
++ SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); }
++ SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, mode_t mode); }
++ SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); }
++ SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); }
++ SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); }
++ SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }
++ SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }
++ SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }
++ SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, int flag); }
++ SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }
++ SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }
++ SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, char **envv); }
++ SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }
++ SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, struct timeval *times); }
++ SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }
++ SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); }
++ SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); }
++ SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }
++ SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }
++ SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); }
++ SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }
++ SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, char *path2); }
++ SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); }
++ SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); }
++ SYS_GSSD_SYSCALL = 505 // { int gssd_syscall(char *path); }
++ SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }
++ SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }
++ SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); }
++ SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); }
++ SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }
++ SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }
++ SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }
++ SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); }
++ SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }
++ SYS_CAP_ENTER = 516 // { int cap_enter(void); }
++ SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); }
++ SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); }
++ SYS_PDKILL = 519 // { int pdkill(int fd, int signum); }
++ SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); }
++ SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }
++ SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, size_t namelen); }
++ SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); }
++ SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++ SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++ SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++ SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++ SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++ SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }
++ SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }
++ SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }
++ SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }
++ SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }
++ SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }
++ SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }
++ SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }
++ SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }
++ SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }
++ SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }
++ SYS_ACCEPT4 = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }
++ SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); }
++ SYS_AIO_MLOCK = 543 // { int aio_mlock(struct aiocb *aiocbp); }
++ SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }
++ SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }
++ SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); }
++ SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }
++ SYS_NUMA_GETAFFINITY = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); }
++ SYS_NUMA_SETAFFINITY = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); }
++ SYS_FDATASYNC = 550 // { int fdatasync(int fd); }
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go
+new file mode 100644
+index 00000000..3e51af8e
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go
+@@ -0,0 +1,396 @@
++// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build arm64,freebsd
++
++package unix
++
++const (
++ // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int
++ SYS_EXIT = 1 // { void sys_exit(int rval); } exit sys_exit_args void
++ SYS_FORK = 2 // { int fork(void); }
++ SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); }
++ SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); }
++ SYS_OPEN = 5 // { int open(char *path, int flags, int mode); }
++ SYS_CLOSE = 6 // { int close(int fd); }
++ SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); }
++ SYS_LINK = 9 // { int link(char *path, char *link); }
++ SYS_UNLINK = 10 // { int unlink(char *path); }
++ SYS_CHDIR = 12 // { int chdir(char *path); }
++ SYS_FCHDIR = 13 // { int fchdir(int fd); }
++ SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); }
++ SYS_CHMOD = 15 // { int chmod(char *path, int mode); }
++ SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); }
++ SYS_OBREAK = 17 // { int obreak(char *nsize); } break obreak_args int
++ SYS_GETPID = 20 // { pid_t getpid(void); }
++ SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); }
++ SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); }
++ SYS_SETUID = 23 // { int setuid(uid_t uid); }
++ SYS_GETUID = 24 // { uid_t getuid(void); }
++ SYS_GETEUID = 25 // { uid_t geteuid(void); }
++ SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }
++ SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); }
++ SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, int flags); }
++ SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }
++ SYS_ACCEPT = 30 // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }
++ SYS_GETPEERNAME = 31 // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }
++ SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }
++ SYS_ACCESS = 33 // { int access(char *path, int amode); }
++ SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); }
++ SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); }
++ SYS_SYNC = 36 // { int sync(void); }
++ SYS_KILL = 37 // { int kill(int pid, int signum); }
++ SYS_GETPPID = 39 // { pid_t getppid(void); }
++ SYS_DUP = 41 // { int dup(u_int fd); }
++ SYS_PIPE = 42 // { int pipe(void); }
++ SYS_GETEGID = 43 // { gid_t getegid(void); }
++ SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); }
++ SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); }
++ SYS_GETGID = 47 // { gid_t getgid(void); }
++ SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); }
++ SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); }
++ SYS_ACCT = 51 // { int acct(char *path); }
++ SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); }
++ SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); }
++ SYS_REBOOT = 55 // { int reboot(int opt); }
++ SYS_REVOKE = 56 // { int revoke(char *path); }
++ SYS_SYMLINK = 57 // { int symlink(char *path, char *link); }
++ SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, size_t count); }
++ SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); }
++ SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args int
++ SYS_CHROOT = 61 // { int chroot(char *path); }
++ SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); }
++ SYS_VFORK = 66 // { int vfork(void); }
++ SYS_SBRK = 69 // { int sbrk(int incr); }
++ SYS_SSTK = 70 // { int sstk(int incr); }
++ SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise ovadvise_args int
++ SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); }
++ SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, int prot); }
++ SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); }
++ SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); }
++ SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); }
++ SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); }
++ SYS_GETPGRP = 81 // { int getpgrp(void); }
++ SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); }
++ SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }
++ SYS_SWAPON = 85 // { int swapon(char *name); }
++ SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); }
++ SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); }
++ SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); }
++ SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); }
++ SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }
++ SYS_FSYNC = 95 // { int fsync(int fd); }
++ SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); }
++ SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); }
++ SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); }
++ SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); }
++ SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); }
++ SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }
++ SYS_LISTEN = 106 // { int listen(int s, int backlog); }
++ SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }
++ SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); }
++ SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }
++ SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }
++ SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }
++ SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }
++ SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); }
++ SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); }
++ SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); }
++ SYS_SETREGID = 127 // { int setregid(int rgid, int egid); }
++ SYS_RENAME = 128 // { int rename(char *from, char *to); }
++ SYS_FLOCK = 131 // { int flock(int fd, int how); }
++ SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); }
++ SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }
++ SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); }
++ SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }
++ SYS_MKDIR = 136 // { int mkdir(char *path, int mode); }
++ SYS_RMDIR = 137 // { int rmdir(char *path); }
++ SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); }
++ SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }
++ SYS_SETSID = 147 // { int setsid(void); }
++ SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }
++ SYS_NLM_SYSCALL = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }
++ SYS_NFSSVC = 155 // { int nfssvc(int flag, caddr_t argp); }
++ SYS_LGETFH = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }
++ SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); }
++ SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); }
++ SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }
++ SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }
++ SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }
++ SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); }
++ SYS_SETFIB = 175 // { int setfib(int fibnum); }
++ SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); }
++ SYS_SETGID = 181 // { int setgid(gid_t gid); }
++ SYS_SETEGID = 182 // { int setegid(gid_t egid); }
++ SYS_SETEUID = 183 // { int seteuid(uid_t euid); }
++ SYS_STAT = 188 // { int stat(char *path, struct stat *ub); }
++ SYS_FSTAT = 189 // { int fstat(int fd, struct stat *sb); }
++ SYS_LSTAT = 190 // { int lstat(char *path, struct stat *ub); }
++ SYS_PATHCONF = 191 // { int pathconf(char *path, int name); }
++ SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); }
++ SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int
++ SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int
++ SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); }
++ SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int
++ SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); }
++ SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); }
++ SYS_UNDELETE = 205 // { int undelete(char *path); }
++ SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); }
++ SYS_GETPGID = 207 // { int getpgid(pid_t pid); }
++ SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }
++ SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); }
++ SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }
++ SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); }
++ SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }
++ SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }
++ SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }
++ SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); }
++ SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); }
++ SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }
++ SYS_CLOCK_SETTIME = 233 // { int clock_settime( clockid_t clock_id, const struct timespec *tp); }
++ SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }
++ SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }
++ SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); }
++ SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }
++ SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }
++ SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); }
++ SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }
++ SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); }
++ SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); }
++ SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); }
++ SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }
++ SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); }
++ SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }
++ SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); }
++ SYS_RFORK = 251 // { int rfork(int flags); }
++ SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); }
++ SYS_ISSETUGID = 253 // { int issetugid(void); }
++ SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); }
++ SYS_AIO_READ = 255 // { int aio_read(struct aiocb *aiocbp); }
++ SYS_AIO_WRITE = 256 // { int aio_write(struct aiocb *aiocbp); }
++ SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); }
++ SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, size_t count); }
++ SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); }
++ SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); }
++ SYS_NSTAT = 278 // { int nstat(char *path, struct nstat *ub); }
++ SYS_NFSTAT = 279 // { int nfstat(int fd, struct nstat *sb); }
++ SYS_NLSTAT = 280 // { int nlstat(char *path, struct nstat *ub); }
++ SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }
++ SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }
++ SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }
++ SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }
++ SYS_MODNEXT = 300 // { int modnext(int modid); }
++ SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat *stat); }
++ SYS_MODFNEXT = 302 // { int modfnext(int modid); }
++ SYS_MODFIND = 303 // { int modfind(const char *name); }
++ SYS_KLDLOAD = 304 // { int kldload(const char *file); }
++ SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); }
++ SYS_KLDFIND = 306 // { int kldfind(const char *file); }
++ SYS_KLDNEXT = 307 // { int kldnext(int fileid); }
++ SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); }
++ SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); }
++ SYS_GETSID = 310 // { int getsid(pid_t pid); }
++ SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }
++ SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }
++ SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); }
++ SYS_AIO_SUSPEND = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }
++ SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }
++ SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); }
++ SYS_YIELD = 321 // { int yield(void); }
++ SYS_MLOCKALL = 324 // { int mlockall(int how); }
++ SYS_MUNLOCKALL = 325 // { int munlockall(void); }
++ SYS___GETCWD = 326 // { int __getcwd(char *buf, u_int buflen); }
++ SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }
++ SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }
++ SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }
++ SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); }
++ SYS_SCHED_YIELD = 331 // { int sched_yield (void); }
++ SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); }
++ SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); }
++ SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }
++ SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); }
++ SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); }
++ SYS_JAIL = 338 // { int jail(struct jail *jail); }
++ SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }
++ SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); }
++ SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); }
++ SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); }
++ SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }
++ SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }
++ SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }
++ SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }
++ SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }
++ SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++ SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++ SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }
++ SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); }
++ SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }
++ SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }
++ SYS_KQUEUE = 362 // { int kqueue(void); }
++ SYS_KEVENT = 363 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }
++ SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++ SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++ SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }
++ SYS___SETUGID = 374 // { int __setugid(int flag); }
++ SYS_EACCESS = 376 // { int eaccess(char *path, int amode); }
++ SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }
++ SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); }
++ SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); }
++ SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); }
++ SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }
++ SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }
++ SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }
++ SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); }
++ SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); }
++ SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); }
++ SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }
++ SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); }
++ SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }
++ SYS_STATFS = 396 // { int statfs(char *path, struct statfs *buf); }
++ SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); }
++ SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }
++ SYS_KSEM_CLOSE = 400 // { int ksem_close(semid_t id); }
++ SYS_KSEM_POST = 401 // { int ksem_post(semid_t id); }
++ SYS_KSEM_WAIT = 402 // { int ksem_wait(semid_t id); }
++ SYS_KSEM_TRYWAIT = 403 // { int ksem_trywait(semid_t id); }
++ SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, unsigned int value); }
++ SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }
++ SYS_KSEM_UNLINK = 406 // { int ksem_unlink(const char *name); }
++ SYS_KSEM_GETVALUE = 407 // { int ksem_getvalue(semid_t id, int *val); }
++ SYS_KSEM_DESTROY = 408 // { int ksem_destroy(semid_t id); }
++ SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }
++ SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }
++ SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }
++ SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++ SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++ SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( const char *path, int attrnamespace, const char *attrname); }
++ SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }
++ SYS_SIGACTION = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }
++ SYS_SIGRETURN = 417 // { int sigreturn( const struct __ucontext *sigcntxp); }
++ SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); }
++ SYS_SETCONTEXT = 422 // { int setcontext( const struct __ucontext *ucp); }
++ SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }
++ SYS_SWAPOFF = 424 // { int swapoff(const char *name); }
++ SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }
++ SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }
++ SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, int *sig); }
++ SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }
++ SYS_THR_EXIT = 431 // { void thr_exit(long *state); }
++ SYS_THR_SELF = 432 // { int thr_self(long *id); }
++ SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); }
++ SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); }
++ SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }
++ SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); }
++ SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( const char *path, int attrnamespace, void *data, size_t nbytes); }
++ SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }
++ SYS_THR_SUSPEND = 442 // { int thr_suspend( const struct timespec *timeout); }
++ SYS_THR_WAKE = 443 // { int thr_wake(long id); }
++ SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); }
++ SYS_AUDIT = 445 // { int audit(const void *record, u_int length); }
++ SYS_AUDITON = 446 // { int auditon(int cmd, void *data, u_int length); }
++ SYS_GETAUID = 447 // { int getauid(uid_t *auid); }
++ SYS_SETAUID = 448 // { int setauid(uid_t *auid); }
++ SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); }
++ SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); }
++ SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); }
++ SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); }
++ SYS_AUDITCTL = 453 // { int auditctl(char *path); }
++ SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }
++ SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, int param_size); }
++ SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); }
++ SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }
++ SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); }
++ SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); }
++ SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len,unsigned msg_prio, const struct timespec *abs_timeout);}
++ SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); }
++ SYS_KMQ_UNLINK = 462 // { int kmq_unlink(const char *path); }
++ SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); }
++ SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); }
++ SYS_AIO_FSYNC = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }
++ SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }
++ SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); }
++ SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }
++ SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }
++ SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr * from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); }
++ SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }
++ SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }
++ SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }
++ SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, int whence); }
++ SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); }
++ SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); }
++ SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); }
++ SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, mode_t mode); }
++ SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); }
++ SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); }
++ SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); }
++ SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }
++ SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }
++ SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }
++ SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, int flag); }
++ SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }
++ SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }
++ SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, char **envv); }
++ SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }
++ SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, struct timeval *times); }
++ SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }
++ SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); }
++ SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); }
++ SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }
++ SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }
++ SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); }
++ SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }
++ SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, char *path2); }
++ SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); }
++ SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); }
++ SYS_GSSD_SYSCALL = 505 // { int gssd_syscall(char *path); }
++ SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }
++ SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }
++ SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); }
++ SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); }
++ SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }
++ SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }
++ SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }
++ SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); }
++ SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }
++ SYS_CAP_ENTER = 516 // { int cap_enter(void); }
++ SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); }
++ SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); }
++ SYS_PDKILL = 519 // { int pdkill(int fd, int signum); }
++ SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); }
++ SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }
++ SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, size_t namelen); }
++ SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); }
++ SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++ SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++ SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++ SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++ SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++ SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }
++ SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }
++ SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }
++ SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }
++ SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }
++ SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }
++ SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }
++ SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }
++ SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }
++ SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }
++ SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }
++ SYS_ACCEPT4 = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }
++ SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); }
++ SYS_AIO_MLOCK = 543 // { int aio_mlock(struct aiocb *aiocbp); }
++ SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }
++ SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }
++ SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); }
++ SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }
++ SYS_NUMA_GETAFFINITY = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); }
++ SYS_NUMA_SETAFFINITY = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); }
++ SYS_FDATASYNC = 550 // { int fdatasync(int fd); }
++)
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go
+index cef4fed0..54559a89 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go
+@@ -1,4 +1,4 @@
+-// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include -m32 /tmp/include/asm/unistd.h
++// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -m32 /tmp/include/asm/unistd.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build 386,linux
+@@ -6,383 +6,431 @@
+ package unix
+
+ const (
+- SYS_RESTART_SYSCALL = 0
+- SYS_EXIT = 1
+- SYS_FORK = 2
+- SYS_READ = 3
+- SYS_WRITE = 4
+- SYS_OPEN = 5
+- SYS_CLOSE = 6
+- SYS_WAITPID = 7
+- SYS_CREAT = 8
+- SYS_LINK = 9
+- SYS_UNLINK = 10
+- SYS_EXECVE = 11
+- SYS_CHDIR = 12
+- SYS_TIME = 13
+- SYS_MKNOD = 14
+- SYS_CHMOD = 15
+- SYS_LCHOWN = 16
+- SYS_BREAK = 17
+- SYS_OLDSTAT = 18
+- SYS_LSEEK = 19
+- SYS_GETPID = 20
+- SYS_MOUNT = 21
+- SYS_UMOUNT = 22
+- SYS_SETUID = 23
+- SYS_GETUID = 24
+- SYS_STIME = 25
+- SYS_PTRACE = 26
+- SYS_ALARM = 27
+- SYS_OLDFSTAT = 28
+- SYS_PAUSE = 29
+- SYS_UTIME = 30
+- SYS_STTY = 31
+- SYS_GTTY = 32
+- SYS_ACCESS = 33
+- SYS_NICE = 34
+- SYS_FTIME = 35
+- SYS_SYNC = 36
+- SYS_KILL = 37
+- SYS_RENAME = 38
+- SYS_MKDIR = 39
+- SYS_RMDIR = 40
+- SYS_DUP = 41
+- SYS_PIPE = 42
+- SYS_TIMES = 43
+- SYS_PROF = 44
+- SYS_BRK = 45
+- SYS_SETGID = 46
+- SYS_GETGID = 47
+- SYS_SIGNAL = 48
+- SYS_GETEUID = 49
+- SYS_GETEGID = 50
+- SYS_ACCT = 51
+- SYS_UMOUNT2 = 52
+- SYS_LOCK = 53
+- SYS_IOCTL = 54
+- SYS_FCNTL = 55
+- SYS_MPX = 56
+- SYS_SETPGID = 57
+- SYS_ULIMIT = 58
+- SYS_OLDOLDUNAME = 59
+- SYS_UMASK = 60
+- SYS_CHROOT = 61
+- SYS_USTAT = 62
+- SYS_DUP2 = 63
+- SYS_GETPPID = 64
+- SYS_GETPGRP = 65
+- SYS_SETSID = 66
+- SYS_SIGACTION = 67
+- SYS_SGETMASK = 68
+- SYS_SSETMASK = 69
+- SYS_SETREUID = 70
+- SYS_SETREGID = 71
+- SYS_SIGSUSPEND = 72
+- SYS_SIGPENDING = 73
+- SYS_SETHOSTNAME = 74
+- SYS_SETRLIMIT = 75
+- SYS_GETRLIMIT = 76
+- SYS_GETRUSAGE = 77
+- SYS_GETTIMEOFDAY = 78
+- SYS_SETTIMEOFDAY = 79
+- SYS_GETGROUPS = 80
+- SYS_SETGROUPS = 81
+- SYS_SELECT = 82
+- SYS_SYMLINK = 83
+- SYS_OLDLSTAT = 84
+- SYS_READLINK = 85
+- SYS_USELIB = 86
+- SYS_SWAPON = 87
+- SYS_REBOOT = 88
+- SYS_READDIR = 89
+- SYS_MMAP = 90
+- SYS_MUNMAP = 91
+- SYS_TRUNCATE = 92
+- SYS_FTRUNCATE = 93
+- SYS_FCHMOD = 94
+- SYS_FCHOWN = 95
+- SYS_GETPRIORITY = 96
+- SYS_SETPRIORITY = 97
+- SYS_PROFIL = 98
+- SYS_STATFS = 99
+- SYS_FSTATFS = 100
+- SYS_IOPERM = 101
+- SYS_SOCKETCALL = 102
+- SYS_SYSLOG = 103
+- SYS_SETITIMER = 104
+- SYS_GETITIMER = 105
+- SYS_STAT = 106
+- SYS_LSTAT = 107
+- SYS_FSTAT = 108
+- SYS_OLDUNAME = 109
+- SYS_IOPL = 110
+- SYS_VHANGUP = 111
+- SYS_IDLE = 112
+- SYS_VM86OLD = 113
+- SYS_WAIT4 = 114
+- SYS_SWAPOFF = 115
+- SYS_SYSINFO = 116
+- SYS_IPC = 117
+- SYS_FSYNC = 118
+- SYS_SIGRETURN = 119
+- SYS_CLONE = 120
+- SYS_SETDOMAINNAME = 121
+- SYS_UNAME = 122
+- SYS_MODIFY_LDT = 123
+- SYS_ADJTIMEX = 124
+- SYS_MPROTECT = 125
+- SYS_SIGPROCMASK = 126
+- SYS_CREATE_MODULE = 127
+- SYS_INIT_MODULE = 128
+- SYS_DELETE_MODULE = 129
+- SYS_GET_KERNEL_SYMS = 130
+- SYS_QUOTACTL = 131
+- SYS_GETPGID = 132
+- SYS_FCHDIR = 133
+- SYS_BDFLUSH = 134
+- SYS_SYSFS = 135
+- SYS_PERSONALITY = 136
+- SYS_AFS_SYSCALL = 137
+- SYS_SETFSUID = 138
+- SYS_SETFSGID = 139
+- SYS__LLSEEK = 140
+- SYS_GETDENTS = 141
+- SYS__NEWSELECT = 142
+- SYS_FLOCK = 143
+- SYS_MSYNC = 144
+- SYS_READV = 145
+- SYS_WRITEV = 146
+- SYS_GETSID = 147
+- SYS_FDATASYNC = 148
+- SYS__SYSCTL = 149
+- SYS_MLOCK = 150
+- SYS_MUNLOCK = 151
+- SYS_MLOCKALL = 152
+- SYS_MUNLOCKALL = 153
+- SYS_SCHED_SETPARAM = 154
+- SYS_SCHED_GETPARAM = 155
+- SYS_SCHED_SETSCHEDULER = 156
+- SYS_SCHED_GETSCHEDULER = 157
+- SYS_SCHED_YIELD = 158
+- SYS_SCHED_GET_PRIORITY_MAX = 159
+- SYS_SCHED_GET_PRIORITY_MIN = 160
+- SYS_SCHED_RR_GET_INTERVAL = 161
+- SYS_NANOSLEEP = 162
+- SYS_MREMAP = 163
+- SYS_SETRESUID = 164
+- SYS_GETRESUID = 165
+- SYS_VM86 = 166
+- SYS_QUERY_MODULE = 167
+- SYS_POLL = 168
+- SYS_NFSSERVCTL = 169
+- SYS_SETRESGID = 170
+- SYS_GETRESGID = 171
+- SYS_PRCTL = 172
+- SYS_RT_SIGRETURN = 173
+- SYS_RT_SIGACTION = 174
+- SYS_RT_SIGPROCMASK = 175
+- SYS_RT_SIGPENDING = 176
+- SYS_RT_SIGTIMEDWAIT = 177
+- SYS_RT_SIGQUEUEINFO = 178
+- SYS_RT_SIGSUSPEND = 179
+- SYS_PREAD64 = 180
+- SYS_PWRITE64 = 181
+- SYS_CHOWN = 182
+- SYS_GETCWD = 183
+- SYS_CAPGET = 184
+- SYS_CAPSET = 185
+- SYS_SIGALTSTACK = 186
+- SYS_SENDFILE = 187
+- SYS_GETPMSG = 188
+- SYS_PUTPMSG = 189
+- SYS_VFORK = 190
+- SYS_UGETRLIMIT = 191
+- SYS_MMAP2 = 192
+- SYS_TRUNCATE64 = 193
+- SYS_FTRUNCATE64 = 194
+- SYS_STAT64 = 195
+- SYS_LSTAT64 = 196
+- SYS_FSTAT64 = 197
+- SYS_LCHOWN32 = 198
+- SYS_GETUID32 = 199
+- SYS_GETGID32 = 200
+- SYS_GETEUID32 = 201
+- SYS_GETEGID32 = 202
+- SYS_SETREUID32 = 203
+- SYS_SETREGID32 = 204
+- SYS_GETGROUPS32 = 205
+- SYS_SETGROUPS32 = 206
+- SYS_FCHOWN32 = 207
+- SYS_SETRESUID32 = 208
+- SYS_GETRESUID32 = 209
+- SYS_SETRESGID32 = 210
+- SYS_GETRESGID32 = 211
+- SYS_CHOWN32 = 212
+- SYS_SETUID32 = 213
+- SYS_SETGID32 = 214
+- SYS_SETFSUID32 = 215
+- SYS_SETFSGID32 = 216
+- SYS_PIVOT_ROOT = 217
+- SYS_MINCORE = 218
+- SYS_MADVISE = 219
+- SYS_GETDENTS64 = 220
+- SYS_FCNTL64 = 221
+- SYS_GETTID = 224
+- SYS_READAHEAD = 225
+- SYS_SETXATTR = 226
+- SYS_LSETXATTR = 227
+- SYS_FSETXATTR = 228
+- SYS_GETXATTR = 229
+- SYS_LGETXATTR = 230
+- SYS_FGETXATTR = 231
+- SYS_LISTXATTR = 232
+- SYS_LLISTXATTR = 233
+- SYS_FLISTXATTR = 234
+- SYS_REMOVEXATTR = 235
+- SYS_LREMOVEXATTR = 236
+- SYS_FREMOVEXATTR = 237
+- SYS_TKILL = 238
+- SYS_SENDFILE64 = 239
+- SYS_FUTEX = 240
+- SYS_SCHED_SETAFFINITY = 241
+- SYS_SCHED_GETAFFINITY = 242
+- SYS_SET_THREAD_AREA = 243
+- SYS_GET_THREAD_AREA = 244
+- SYS_IO_SETUP = 245
+- SYS_IO_DESTROY = 246
+- SYS_IO_GETEVENTS = 247
+- SYS_IO_SUBMIT = 248
+- SYS_IO_CANCEL = 249
+- SYS_FADVISE64 = 250
+- SYS_EXIT_GROUP = 252
+- SYS_LOOKUP_DCOOKIE = 253
+- SYS_EPOLL_CREATE = 254
+- SYS_EPOLL_CTL = 255
+- SYS_EPOLL_WAIT = 256
+- SYS_REMAP_FILE_PAGES = 257
+- SYS_SET_TID_ADDRESS = 258
+- SYS_TIMER_CREATE = 259
+- SYS_TIMER_SETTIME = 260
+- SYS_TIMER_GETTIME = 261
+- SYS_TIMER_GETOVERRUN = 262
+- SYS_TIMER_DELETE = 263
+- SYS_CLOCK_SETTIME = 264
+- SYS_CLOCK_GETTIME = 265
+- SYS_CLOCK_GETRES = 266
+- SYS_CLOCK_NANOSLEEP = 267
+- SYS_STATFS64 = 268
+- SYS_FSTATFS64 = 269
+- SYS_TGKILL = 270
+- SYS_UTIMES = 271
+- SYS_FADVISE64_64 = 272
+- SYS_VSERVER = 273
+- SYS_MBIND = 274
+- SYS_GET_MEMPOLICY = 275
+- SYS_SET_MEMPOLICY = 276
+- SYS_MQ_OPEN = 277
+- SYS_MQ_UNLINK = 278
+- SYS_MQ_TIMEDSEND = 279
+- SYS_MQ_TIMEDRECEIVE = 280
+- SYS_MQ_NOTIFY = 281
+- SYS_MQ_GETSETATTR = 282
+- SYS_KEXEC_LOAD = 283
+- SYS_WAITID = 284
+- SYS_ADD_KEY = 286
+- SYS_REQUEST_KEY = 287
+- SYS_KEYCTL = 288
+- SYS_IOPRIO_SET = 289
+- SYS_IOPRIO_GET = 290
+- SYS_INOTIFY_INIT = 291
+- SYS_INOTIFY_ADD_WATCH = 292
+- SYS_INOTIFY_RM_WATCH = 293
+- SYS_MIGRATE_PAGES = 294
+- SYS_OPENAT = 295
+- SYS_MKDIRAT = 296
+- SYS_MKNODAT = 297
+- SYS_FCHOWNAT = 298
+- SYS_FUTIMESAT = 299
+- SYS_FSTATAT64 = 300
+- SYS_UNLINKAT = 301
+- SYS_RENAMEAT = 302
+- SYS_LINKAT = 303
+- SYS_SYMLINKAT = 304
+- SYS_READLINKAT = 305
+- SYS_FCHMODAT = 306
+- SYS_FACCESSAT = 307
+- SYS_PSELECT6 = 308
+- SYS_PPOLL = 309
+- SYS_UNSHARE = 310
+- SYS_SET_ROBUST_LIST = 311
+- SYS_GET_ROBUST_LIST = 312
+- SYS_SPLICE = 313
+- SYS_SYNC_FILE_RANGE = 314
+- SYS_TEE = 315
+- SYS_VMSPLICE = 316
+- SYS_MOVE_PAGES = 317
+- SYS_GETCPU = 318
+- SYS_EPOLL_PWAIT = 319
+- SYS_UTIMENSAT = 320
+- SYS_SIGNALFD = 321
+- SYS_TIMERFD_CREATE = 322
+- SYS_EVENTFD = 323
+- SYS_FALLOCATE = 324
+- SYS_TIMERFD_SETTIME = 325
+- SYS_TIMERFD_GETTIME = 326
+- SYS_SIGNALFD4 = 327
+- SYS_EVENTFD2 = 328
+- SYS_EPOLL_CREATE1 = 329
+- SYS_DUP3 = 330
+- SYS_PIPE2 = 331
+- SYS_INOTIFY_INIT1 = 332
+- SYS_PREADV = 333
+- SYS_PWRITEV = 334
+- SYS_RT_TGSIGQUEUEINFO = 335
+- SYS_PERF_EVENT_OPEN = 336
+- SYS_RECVMMSG = 337
+- SYS_FANOTIFY_INIT = 338
+- SYS_FANOTIFY_MARK = 339
+- SYS_PRLIMIT64 = 340
+- SYS_NAME_TO_HANDLE_AT = 341
+- SYS_OPEN_BY_HANDLE_AT = 342
+- SYS_CLOCK_ADJTIME = 343
+- SYS_SYNCFS = 344
+- SYS_SENDMMSG = 345
+- SYS_SETNS = 346
+- SYS_PROCESS_VM_READV = 347
+- SYS_PROCESS_VM_WRITEV = 348
+- SYS_KCMP = 349
+- SYS_FINIT_MODULE = 350
+- SYS_SCHED_SETATTR = 351
+- SYS_SCHED_GETATTR = 352
+- SYS_RENAMEAT2 = 353
+- SYS_SECCOMP = 354
+- SYS_GETRANDOM = 355
+- SYS_MEMFD_CREATE = 356
+- SYS_BPF = 357
+- SYS_EXECVEAT = 358
+- SYS_SOCKET = 359
+- SYS_SOCKETPAIR = 360
+- SYS_BIND = 361
+- SYS_CONNECT = 362
+- SYS_LISTEN = 363
+- SYS_ACCEPT4 = 364
+- SYS_GETSOCKOPT = 365
+- SYS_SETSOCKOPT = 366
+- SYS_GETSOCKNAME = 367
+- SYS_GETPEERNAME = 368
+- SYS_SENDTO = 369
+- SYS_SENDMSG = 370
+- SYS_RECVFROM = 371
+- SYS_RECVMSG = 372
+- SYS_SHUTDOWN = 373
+- SYS_USERFAULTFD = 374
+- SYS_MEMBARRIER = 375
+- SYS_MLOCK2 = 376
+- SYS_COPY_FILE_RANGE = 377
+- SYS_PREADV2 = 378
+- SYS_PWRITEV2 = 379
+- SYS_PKEY_MPROTECT = 380
+- SYS_PKEY_ALLOC = 381
+- SYS_PKEY_FREE = 382
++ SYS_RESTART_SYSCALL = 0
++ SYS_EXIT = 1
++ SYS_FORK = 2
++ SYS_READ = 3
++ SYS_WRITE = 4
++ SYS_OPEN = 5
++ SYS_CLOSE = 6
++ SYS_WAITPID = 7
++ SYS_CREAT = 8
++ SYS_LINK = 9
++ SYS_UNLINK = 10
++ SYS_EXECVE = 11
++ SYS_CHDIR = 12
++ SYS_TIME = 13
++ SYS_MKNOD = 14
++ SYS_CHMOD = 15
++ SYS_LCHOWN = 16
++ SYS_BREAK = 17
++ SYS_OLDSTAT = 18
++ SYS_LSEEK = 19
++ SYS_GETPID = 20
++ SYS_MOUNT = 21
++ SYS_UMOUNT = 22
++ SYS_SETUID = 23
++ SYS_GETUID = 24
++ SYS_STIME = 25
++ SYS_PTRACE = 26
++ SYS_ALARM = 27
++ SYS_OLDFSTAT = 28
++ SYS_PAUSE = 29
++ SYS_UTIME = 30
++ SYS_STTY = 31
++ SYS_GTTY = 32
++ SYS_ACCESS = 33
++ SYS_NICE = 34
++ SYS_FTIME = 35
++ SYS_SYNC = 36
++ SYS_KILL = 37
++ SYS_RENAME = 38
++ SYS_MKDIR = 39
++ SYS_RMDIR = 40
++ SYS_DUP = 41
++ SYS_PIPE = 42
++ SYS_TIMES = 43
++ SYS_PROF = 44
++ SYS_BRK = 45
++ SYS_SETGID = 46
++ SYS_GETGID = 47
++ SYS_SIGNAL = 48
++ SYS_GETEUID = 49
++ SYS_GETEGID = 50
++ SYS_ACCT = 51
++ SYS_UMOUNT2 = 52
++ SYS_LOCK = 53
++ SYS_IOCTL = 54
++ SYS_FCNTL = 55
++ SYS_MPX = 56
++ SYS_SETPGID = 57
++ SYS_ULIMIT = 58
++ SYS_OLDOLDUNAME = 59
++ SYS_UMASK = 60
++ SYS_CHROOT = 61
++ SYS_USTAT = 62
++ SYS_DUP2 = 63
++ SYS_GETPPID = 64
++ SYS_GETPGRP = 65
++ SYS_SETSID = 66
++ SYS_SIGACTION = 67
++ SYS_SGETMASK = 68
++ SYS_SSETMASK = 69
++ SYS_SETREUID = 70
++ SYS_SETREGID = 71
++ SYS_SIGSUSPEND = 72
++ SYS_SIGPENDING = 73
++ SYS_SETHOSTNAME = 74
++ SYS_SETRLIMIT = 75
++ SYS_GETRLIMIT = 76
++ SYS_GETRUSAGE = 77
++ SYS_GETTIMEOFDAY = 78
++ SYS_SETTIMEOFDAY = 79
++ SYS_GETGROUPS = 80
++ SYS_SETGROUPS = 81
++ SYS_SELECT = 82
++ SYS_SYMLINK = 83
++ SYS_OLDLSTAT = 84
++ SYS_READLINK = 85
++ SYS_USELIB = 86
++ SYS_SWAPON = 87
++ SYS_REBOOT = 88
++ SYS_READDIR = 89
++ SYS_MMAP = 90
++ SYS_MUNMAP = 91
++ SYS_TRUNCATE = 92
++ SYS_FTRUNCATE = 93
++ SYS_FCHMOD = 94
++ SYS_FCHOWN = 95
++ SYS_GETPRIORITY = 96
++ SYS_SETPRIORITY = 97
++ SYS_PROFIL = 98
++ SYS_STATFS = 99
++ SYS_FSTATFS = 100
++ SYS_IOPERM = 101
++ SYS_SOCKETCALL = 102
++ SYS_SYSLOG = 103
++ SYS_SETITIMER = 104
++ SYS_GETITIMER = 105
++ SYS_STAT = 106
++ SYS_LSTAT = 107
++ SYS_FSTAT = 108
++ SYS_OLDUNAME = 109
++ SYS_IOPL = 110
++ SYS_VHANGUP = 111
++ SYS_IDLE = 112
++ SYS_VM86OLD = 113
++ SYS_WAIT4 = 114
++ SYS_SWAPOFF = 115
++ SYS_SYSINFO = 116
++ SYS_IPC = 117
++ SYS_FSYNC = 118
++ SYS_SIGRETURN = 119
++ SYS_CLONE = 120
++ SYS_SETDOMAINNAME = 121
++ SYS_UNAME = 122
++ SYS_MODIFY_LDT = 123
++ SYS_ADJTIMEX = 124
++ SYS_MPROTECT = 125
++ SYS_SIGPROCMASK = 126
++ SYS_CREATE_MODULE = 127
++ SYS_INIT_MODULE = 128
++ SYS_DELETE_MODULE = 129
++ SYS_GET_KERNEL_SYMS = 130
++ SYS_QUOTACTL = 131
++ SYS_GETPGID = 132
++ SYS_FCHDIR = 133
++ SYS_BDFLUSH = 134
++ SYS_SYSFS = 135
++ SYS_PERSONALITY = 136
++ SYS_AFS_SYSCALL = 137
++ SYS_SETFSUID = 138
++ SYS_SETFSGID = 139
++ SYS__LLSEEK = 140
++ SYS_GETDENTS = 141
++ SYS__NEWSELECT = 142
++ SYS_FLOCK = 143
++ SYS_MSYNC = 144
++ SYS_READV = 145
++ SYS_WRITEV = 146
++ SYS_GETSID = 147
++ SYS_FDATASYNC = 148
++ SYS__SYSCTL = 149
++ SYS_MLOCK = 150
++ SYS_MUNLOCK = 151
++ SYS_MLOCKALL = 152
++ SYS_MUNLOCKALL = 153
++ SYS_SCHED_SETPARAM = 154
++ SYS_SCHED_GETPARAM = 155
++ SYS_SCHED_SETSCHEDULER = 156
++ SYS_SCHED_GETSCHEDULER = 157
++ SYS_SCHED_YIELD = 158
++ SYS_SCHED_GET_PRIORITY_MAX = 159
++ SYS_SCHED_GET_PRIORITY_MIN = 160
++ SYS_SCHED_RR_GET_INTERVAL = 161
++ SYS_NANOSLEEP = 162
++ SYS_MREMAP = 163
++ SYS_SETRESUID = 164
++ SYS_GETRESUID = 165
++ SYS_VM86 = 166
++ SYS_QUERY_MODULE = 167
++ SYS_POLL = 168
++ SYS_NFSSERVCTL = 169
++ SYS_SETRESGID = 170
++ SYS_GETRESGID = 171
++ SYS_PRCTL = 172
++ SYS_RT_SIGRETURN = 173
++ SYS_RT_SIGACTION = 174
++ SYS_RT_SIGPROCMASK = 175
++ SYS_RT_SIGPENDING = 176
++ SYS_RT_SIGTIMEDWAIT = 177
++ SYS_RT_SIGQUEUEINFO = 178
++ SYS_RT_SIGSUSPEND = 179
++ SYS_PREAD64 = 180
++ SYS_PWRITE64 = 181
++ SYS_CHOWN = 182
++ SYS_GETCWD = 183
++ SYS_CAPGET = 184
++ SYS_CAPSET = 185
++ SYS_SIGALTSTACK = 186
++ SYS_SENDFILE = 187
++ SYS_GETPMSG = 188
++ SYS_PUTPMSG = 189
++ SYS_VFORK = 190
++ SYS_UGETRLIMIT = 191
++ SYS_MMAP2 = 192
++ SYS_TRUNCATE64 = 193
++ SYS_FTRUNCATE64 = 194
++ SYS_STAT64 = 195
++ SYS_LSTAT64 = 196
++ SYS_FSTAT64 = 197
++ SYS_LCHOWN32 = 198
++ SYS_GETUID32 = 199
++ SYS_GETGID32 = 200
++ SYS_GETEUID32 = 201
++ SYS_GETEGID32 = 202
++ SYS_SETREUID32 = 203
++ SYS_SETREGID32 = 204
++ SYS_GETGROUPS32 = 205
++ SYS_SETGROUPS32 = 206
++ SYS_FCHOWN32 = 207
++ SYS_SETRESUID32 = 208
++ SYS_GETRESUID32 = 209
++ SYS_SETRESGID32 = 210
++ SYS_GETRESGID32 = 211
++ SYS_CHOWN32 = 212
++ SYS_SETUID32 = 213
++ SYS_SETGID32 = 214
++ SYS_SETFSUID32 = 215
++ SYS_SETFSGID32 = 216
++ SYS_PIVOT_ROOT = 217
++ SYS_MINCORE = 218
++ SYS_MADVISE = 219
++ SYS_GETDENTS64 = 220
++ SYS_FCNTL64 = 221
++ SYS_GETTID = 224
++ SYS_READAHEAD = 225
++ SYS_SETXATTR = 226
++ SYS_LSETXATTR = 227
++ SYS_FSETXATTR = 228
++ SYS_GETXATTR = 229
++ SYS_LGETXATTR = 230
++ SYS_FGETXATTR = 231
++ SYS_LISTXATTR = 232
++ SYS_LLISTXATTR = 233
++ SYS_FLISTXATTR = 234
++ SYS_REMOVEXATTR = 235
++ SYS_LREMOVEXATTR = 236
++ SYS_FREMOVEXATTR = 237
++ SYS_TKILL = 238
++ SYS_SENDFILE64 = 239
++ SYS_FUTEX = 240
++ SYS_SCHED_SETAFFINITY = 241
++ SYS_SCHED_GETAFFINITY = 242
++ SYS_SET_THREAD_AREA = 243
++ SYS_GET_THREAD_AREA = 244
++ SYS_IO_SETUP = 245
++ SYS_IO_DESTROY = 246
++ SYS_IO_GETEVENTS = 247
++ SYS_IO_SUBMIT = 248
++ SYS_IO_CANCEL = 249
++ SYS_FADVISE64 = 250
++ SYS_EXIT_GROUP = 252
++ SYS_LOOKUP_DCOOKIE = 253
++ SYS_EPOLL_CREATE = 254
++ SYS_EPOLL_CTL = 255
++ SYS_EPOLL_WAIT = 256
++ SYS_REMAP_FILE_PAGES = 257
++ SYS_SET_TID_ADDRESS = 258
++ SYS_TIMER_CREATE = 259
++ SYS_TIMER_SETTIME = 260
++ SYS_TIMER_GETTIME = 261
++ SYS_TIMER_GETOVERRUN = 262
++ SYS_TIMER_DELETE = 263
++ SYS_CLOCK_SETTIME = 264
++ SYS_CLOCK_GETTIME = 265
++ SYS_CLOCK_GETRES = 266
++ SYS_CLOCK_NANOSLEEP = 267
++ SYS_STATFS64 = 268
++ SYS_FSTATFS64 = 269
++ SYS_TGKILL = 270
++ SYS_UTIMES = 271
++ SYS_FADVISE64_64 = 272
++ SYS_VSERVER = 273
++ SYS_MBIND = 274
++ SYS_GET_MEMPOLICY = 275
++ SYS_SET_MEMPOLICY = 276
++ SYS_MQ_OPEN = 277
++ SYS_MQ_UNLINK = 278
++ SYS_MQ_TIMEDSEND = 279
++ SYS_MQ_TIMEDRECEIVE = 280
++ SYS_MQ_NOTIFY = 281
++ SYS_MQ_GETSETATTR = 282
++ SYS_KEXEC_LOAD = 283
++ SYS_WAITID = 284
++ SYS_ADD_KEY = 286
++ SYS_REQUEST_KEY = 287
++ SYS_KEYCTL = 288
++ SYS_IOPRIO_SET = 289
++ SYS_IOPRIO_GET = 290
++ SYS_INOTIFY_INIT = 291
++ SYS_INOTIFY_ADD_WATCH = 292
++ SYS_INOTIFY_RM_WATCH = 293
++ SYS_MIGRATE_PAGES = 294
++ SYS_OPENAT = 295
++ SYS_MKDIRAT = 296
++ SYS_MKNODAT = 297
++ SYS_FCHOWNAT = 298
++ SYS_FUTIMESAT = 299
++ SYS_FSTATAT64 = 300
++ SYS_UNLINKAT = 301
++ SYS_RENAMEAT = 302
++ SYS_LINKAT = 303
++ SYS_SYMLINKAT = 304
++ SYS_READLINKAT = 305
++ SYS_FCHMODAT = 306
++ SYS_FACCESSAT = 307
++ SYS_PSELECT6 = 308
++ SYS_PPOLL = 309
++ SYS_UNSHARE = 310
++ SYS_SET_ROBUST_LIST = 311
++ SYS_GET_ROBUST_LIST = 312
++ SYS_SPLICE = 313
++ SYS_SYNC_FILE_RANGE = 314
++ SYS_TEE = 315
++ SYS_VMSPLICE = 316
++ SYS_MOVE_PAGES = 317
++ SYS_GETCPU = 318
++ SYS_EPOLL_PWAIT = 319
++ SYS_UTIMENSAT = 320
++ SYS_SIGNALFD = 321
++ SYS_TIMERFD_CREATE = 322
++ SYS_EVENTFD = 323
++ SYS_FALLOCATE = 324
++ SYS_TIMERFD_SETTIME = 325
++ SYS_TIMERFD_GETTIME = 326
++ SYS_SIGNALFD4 = 327
++ SYS_EVENTFD2 = 328
++ SYS_EPOLL_CREATE1 = 329
++ SYS_DUP3 = 330
++ SYS_PIPE2 = 331
++ SYS_INOTIFY_INIT1 = 332
++ SYS_PREADV = 333
++ SYS_PWRITEV = 334
++ SYS_RT_TGSIGQUEUEINFO = 335
++ SYS_PERF_EVENT_OPEN = 336
++ SYS_RECVMMSG = 337
++ SYS_FANOTIFY_INIT = 338
++ SYS_FANOTIFY_MARK = 339
++ SYS_PRLIMIT64 = 340
++ SYS_NAME_TO_HANDLE_AT = 341
++ SYS_OPEN_BY_HANDLE_AT = 342
++ SYS_CLOCK_ADJTIME = 343
++ SYS_SYNCFS = 344
++ SYS_SENDMMSG = 345
++ SYS_SETNS = 346
++ SYS_PROCESS_VM_READV = 347
++ SYS_PROCESS_VM_WRITEV = 348
++ SYS_KCMP = 349
++ SYS_FINIT_MODULE = 350
++ SYS_SCHED_SETATTR = 351
++ SYS_SCHED_GETATTR = 352
++ SYS_RENAMEAT2 = 353
++ SYS_SECCOMP = 354
++ SYS_GETRANDOM = 355
++ SYS_MEMFD_CREATE = 356
++ SYS_BPF = 357
++ SYS_EXECVEAT = 358
++ SYS_SOCKET = 359
++ SYS_SOCKETPAIR = 360
++ SYS_BIND = 361
++ SYS_CONNECT = 362
++ SYS_LISTEN = 363
++ SYS_ACCEPT4 = 364
++ SYS_GETSOCKOPT = 365
++ SYS_SETSOCKOPT = 366
++ SYS_GETSOCKNAME = 367
++ SYS_GETPEERNAME = 368
++ SYS_SENDTO = 369
++ SYS_SENDMSG = 370
++ SYS_RECVFROM = 371
++ SYS_RECVMSG = 372
++ SYS_SHUTDOWN = 373
++ SYS_USERFAULTFD = 374
++ SYS_MEMBARRIER = 375
++ SYS_MLOCK2 = 376
++ SYS_COPY_FILE_RANGE = 377
++ SYS_PREADV2 = 378
++ SYS_PWRITEV2 = 379
++ SYS_PKEY_MPROTECT = 380
++ SYS_PKEY_ALLOC = 381
++ SYS_PKEY_FREE = 382
++ SYS_STATX = 383
++ SYS_ARCH_PRCTL = 384
++ SYS_IO_PGETEVENTS = 385
++ SYS_RSEQ = 386
++ SYS_SEMGET = 393
++ SYS_SEMCTL = 394
++ SYS_SHMGET = 395
++ SYS_SHMCTL = 396
++ SYS_SHMAT = 397
++ SYS_SHMDT = 398
++ SYS_MSGGET = 399
++ SYS_MSGSND = 400
++ SYS_MSGRCV = 401
++ SYS_MSGCTL = 402
++ SYS_CLOCK_GETTIME64 = 403
++ SYS_CLOCK_SETTIME64 = 404
++ SYS_CLOCK_ADJTIME64 = 405
++ SYS_CLOCK_GETRES_TIME64 = 406
++ SYS_CLOCK_NANOSLEEP_TIME64 = 407
++ SYS_TIMER_GETTIME64 = 408
++ SYS_TIMER_SETTIME64 = 409
++ SYS_TIMERFD_GETTIME64 = 410
++ SYS_TIMERFD_SETTIME64 = 411
++ SYS_UTIMENSAT_TIME64 = 412
++ SYS_PSELECT6_TIME64 = 413
++ SYS_PPOLL_TIME64 = 414
++ SYS_IO_PGETEVENTS_TIME64 = 416
++ SYS_RECVMMSG_TIME64 = 417
++ SYS_MQ_TIMEDSEND_TIME64 = 418
++ SYS_MQ_TIMEDRECEIVE_TIME64 = 419
++ SYS_SEMTIMEDOP_TIME64 = 420
++ SYS_RT_SIGTIMEDWAIT_TIME64 = 421
++ SYS_FUTEX_TIME64 = 422
++ SYS_SCHED_RR_GET_INTERVAL_TIME64 = 423
++ SYS_PIDFD_SEND_SIGNAL = 424
++ SYS_IO_URING_SETUP = 425
++ SYS_IO_URING_ENTER = 426
++ SYS_IO_URING_REGISTER = 427
++ SYS_OPEN_TREE = 428
++ SYS_MOVE_MOUNT = 429
++ SYS_FSOPEN = 430
++ SYS_FSCONFIG = 431
++ SYS_FSMOUNT = 432
++ SYS_FSPICK = 433
++ SYS_PIDFD_OPEN = 434
++ SYS_CLONE3 = 435
++ SYS_OPENAT2 = 437
++ SYS_PIDFD_GETFD = 438
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
+index 49bfa127..054a741b 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
+@@ -1,4 +1,4 @@
+-// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include -m64 /tmp/include/asm/unistd.h
++// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -m64 /tmp/include/asm/unistd.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build amd64,linux
+@@ -338,4 +338,21 @@ const (
+ SYS_PKEY_MPROTECT = 329
+ SYS_PKEY_ALLOC = 330
+ SYS_PKEY_FREE = 331
++ SYS_STATX = 332
++ SYS_IO_PGETEVENTS = 333
++ SYS_RSEQ = 334
++ SYS_PIDFD_SEND_SIGNAL = 424
++ SYS_IO_URING_SETUP = 425
++ SYS_IO_URING_ENTER = 426
++ SYS_IO_URING_REGISTER = 427
++ SYS_OPEN_TREE = 428
++ SYS_MOVE_MOUNT = 429
++ SYS_FSOPEN = 430
++ SYS_FSCONFIG = 431
++ SYS_FSMOUNT = 432
++ SYS_FSPICK = 433
++ SYS_PIDFD_OPEN = 434
++ SYS_CLONE3 = 435
++ SYS_OPENAT2 = 437
++ SYS_PIDFD_GETFD = 438
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go
+index 97b182ef..307f2ba1 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go
+@@ -1,4 +1,4 @@
+-// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
++// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build arm,linux
+@@ -6,356 +6,395 @@
+ package unix
+
+ const (
+- SYS_RESTART_SYSCALL = 0
+- SYS_EXIT = 1
+- SYS_FORK = 2
+- SYS_READ = 3
+- SYS_WRITE = 4
+- SYS_OPEN = 5
+- SYS_CLOSE = 6
+- SYS_CREAT = 8
+- SYS_LINK = 9
+- SYS_UNLINK = 10
+- SYS_EXECVE = 11
+- SYS_CHDIR = 12
+- SYS_MKNOD = 14
+- SYS_CHMOD = 15
+- SYS_LCHOWN = 16
+- SYS_LSEEK = 19
+- SYS_GETPID = 20
+- SYS_MOUNT = 21
+- SYS_SETUID = 23
+- SYS_GETUID = 24
+- SYS_PTRACE = 26
+- SYS_PAUSE = 29
+- SYS_ACCESS = 33
+- SYS_NICE = 34
+- SYS_SYNC = 36
+- SYS_KILL = 37
+- SYS_RENAME = 38
+- SYS_MKDIR = 39
+- SYS_RMDIR = 40
+- SYS_DUP = 41
+- SYS_PIPE = 42
+- SYS_TIMES = 43
+- SYS_BRK = 45
+- SYS_SETGID = 46
+- SYS_GETGID = 47
+- SYS_GETEUID = 49
+- SYS_GETEGID = 50
+- SYS_ACCT = 51
+- SYS_UMOUNT2 = 52
+- SYS_IOCTL = 54
+- SYS_FCNTL = 55
+- SYS_SETPGID = 57
+- SYS_UMASK = 60
+- SYS_CHROOT = 61
+- SYS_USTAT = 62
+- SYS_DUP2 = 63
+- SYS_GETPPID = 64
+- SYS_GETPGRP = 65
+- SYS_SETSID = 66
+- SYS_SIGACTION = 67
+- SYS_SETREUID = 70
+- SYS_SETREGID = 71
+- SYS_SIGSUSPEND = 72
+- SYS_SIGPENDING = 73
+- SYS_SETHOSTNAME = 74
+- SYS_SETRLIMIT = 75
+- SYS_GETRUSAGE = 77
+- SYS_GETTIMEOFDAY = 78
+- SYS_SETTIMEOFDAY = 79
+- SYS_GETGROUPS = 80
+- SYS_SETGROUPS = 81
+- SYS_SYMLINK = 83
+- SYS_READLINK = 85
+- SYS_USELIB = 86
+- SYS_SWAPON = 87
+- SYS_REBOOT = 88
+- SYS_MUNMAP = 91
+- SYS_TRUNCATE = 92
+- SYS_FTRUNCATE = 93
+- SYS_FCHMOD = 94
+- SYS_FCHOWN = 95
+- SYS_GETPRIORITY = 96
+- SYS_SETPRIORITY = 97
+- SYS_STATFS = 99
+- SYS_FSTATFS = 100
+- SYS_SYSLOG = 103
+- SYS_SETITIMER = 104
+- SYS_GETITIMER = 105
+- SYS_STAT = 106
+- SYS_LSTAT = 107
+- SYS_FSTAT = 108
+- SYS_VHANGUP = 111
+- SYS_WAIT4 = 114
+- SYS_SWAPOFF = 115
+- SYS_SYSINFO = 116
+- SYS_FSYNC = 118
+- SYS_SIGRETURN = 119
+- SYS_CLONE = 120
+- SYS_SETDOMAINNAME = 121
+- SYS_UNAME = 122
+- SYS_ADJTIMEX = 124
+- SYS_MPROTECT = 125
+- SYS_SIGPROCMASK = 126
+- SYS_INIT_MODULE = 128
+- SYS_DELETE_MODULE = 129
+- SYS_QUOTACTL = 131
+- SYS_GETPGID = 132
+- SYS_FCHDIR = 133
+- SYS_BDFLUSH = 134
+- SYS_SYSFS = 135
+- SYS_PERSONALITY = 136
+- SYS_SETFSUID = 138
+- SYS_SETFSGID = 139
+- SYS__LLSEEK = 140
+- SYS_GETDENTS = 141
+- SYS__NEWSELECT = 142
+- SYS_FLOCK = 143
+- SYS_MSYNC = 144
+- SYS_READV = 145
+- SYS_WRITEV = 146
+- SYS_GETSID = 147
+- SYS_FDATASYNC = 148
+- SYS__SYSCTL = 149
+- SYS_MLOCK = 150
+- SYS_MUNLOCK = 151
+- SYS_MLOCKALL = 152
+- SYS_MUNLOCKALL = 153
+- SYS_SCHED_SETPARAM = 154
+- SYS_SCHED_GETPARAM = 155
+- SYS_SCHED_SETSCHEDULER = 156
+- SYS_SCHED_GETSCHEDULER = 157
+- SYS_SCHED_YIELD = 158
+- SYS_SCHED_GET_PRIORITY_MAX = 159
+- SYS_SCHED_GET_PRIORITY_MIN = 160
+- SYS_SCHED_RR_GET_INTERVAL = 161
+- SYS_NANOSLEEP = 162
+- SYS_MREMAP = 163
+- SYS_SETRESUID = 164
+- SYS_GETRESUID = 165
+- SYS_POLL = 168
+- SYS_NFSSERVCTL = 169
+- SYS_SETRESGID = 170
+- SYS_GETRESGID = 171
+- SYS_PRCTL = 172
+- SYS_RT_SIGRETURN = 173
+- SYS_RT_SIGACTION = 174
+- SYS_RT_SIGPROCMASK = 175
+- SYS_RT_SIGPENDING = 176
+- SYS_RT_SIGTIMEDWAIT = 177
+- SYS_RT_SIGQUEUEINFO = 178
+- SYS_RT_SIGSUSPEND = 179
+- SYS_PREAD64 = 180
+- SYS_PWRITE64 = 181
+- SYS_CHOWN = 182
+- SYS_GETCWD = 183
+- SYS_CAPGET = 184
+- SYS_CAPSET = 185
+- SYS_SIGALTSTACK = 186
+- SYS_SENDFILE = 187
+- SYS_VFORK = 190
+- SYS_UGETRLIMIT = 191
+- SYS_MMAP2 = 192
+- SYS_TRUNCATE64 = 193
+- SYS_FTRUNCATE64 = 194
+- SYS_STAT64 = 195
+- SYS_LSTAT64 = 196
+- SYS_FSTAT64 = 197
+- SYS_LCHOWN32 = 198
+- SYS_GETUID32 = 199
+- SYS_GETGID32 = 200
+- SYS_GETEUID32 = 201
+- SYS_GETEGID32 = 202
+- SYS_SETREUID32 = 203
+- SYS_SETREGID32 = 204
+- SYS_GETGROUPS32 = 205
+- SYS_SETGROUPS32 = 206
+- SYS_FCHOWN32 = 207
+- SYS_SETRESUID32 = 208
+- SYS_GETRESUID32 = 209
+- SYS_SETRESGID32 = 210
+- SYS_GETRESGID32 = 211
+- SYS_CHOWN32 = 212
+- SYS_SETUID32 = 213
+- SYS_SETGID32 = 214
+- SYS_SETFSUID32 = 215
+- SYS_SETFSGID32 = 216
+- SYS_GETDENTS64 = 217
+- SYS_PIVOT_ROOT = 218
+- SYS_MINCORE = 219
+- SYS_MADVISE = 220
+- SYS_FCNTL64 = 221
+- SYS_GETTID = 224
+- SYS_READAHEAD = 225
+- SYS_SETXATTR = 226
+- SYS_LSETXATTR = 227
+- SYS_FSETXATTR = 228
+- SYS_GETXATTR = 229
+- SYS_LGETXATTR = 230
+- SYS_FGETXATTR = 231
+- SYS_LISTXATTR = 232
+- SYS_LLISTXATTR = 233
+- SYS_FLISTXATTR = 234
+- SYS_REMOVEXATTR = 235
+- SYS_LREMOVEXATTR = 236
+- SYS_FREMOVEXATTR = 237
+- SYS_TKILL = 238
+- SYS_SENDFILE64 = 239
+- SYS_FUTEX = 240
+- SYS_SCHED_SETAFFINITY = 241
+- SYS_SCHED_GETAFFINITY = 242
+- SYS_IO_SETUP = 243
+- SYS_IO_DESTROY = 244
+- SYS_IO_GETEVENTS = 245
+- SYS_IO_SUBMIT = 246
+- SYS_IO_CANCEL = 247
+- SYS_EXIT_GROUP = 248
+- SYS_LOOKUP_DCOOKIE = 249
+- SYS_EPOLL_CREATE = 250
+- SYS_EPOLL_CTL = 251
+- SYS_EPOLL_WAIT = 252
+- SYS_REMAP_FILE_PAGES = 253
+- SYS_SET_TID_ADDRESS = 256
+- SYS_TIMER_CREATE = 257
+- SYS_TIMER_SETTIME = 258
+- SYS_TIMER_GETTIME = 259
+- SYS_TIMER_GETOVERRUN = 260
+- SYS_TIMER_DELETE = 261
+- SYS_CLOCK_SETTIME = 262
+- SYS_CLOCK_GETTIME = 263
+- SYS_CLOCK_GETRES = 264
+- SYS_CLOCK_NANOSLEEP = 265
+- SYS_STATFS64 = 266
+- SYS_FSTATFS64 = 267
+- SYS_TGKILL = 268
+- SYS_UTIMES = 269
+- SYS_ARM_FADVISE64_64 = 270
+- SYS_PCICONFIG_IOBASE = 271
+- SYS_PCICONFIG_READ = 272
+- SYS_PCICONFIG_WRITE = 273
+- SYS_MQ_OPEN = 274
+- SYS_MQ_UNLINK = 275
+- SYS_MQ_TIMEDSEND = 276
+- SYS_MQ_TIMEDRECEIVE = 277
+- SYS_MQ_NOTIFY = 278
+- SYS_MQ_GETSETATTR = 279
+- SYS_WAITID = 280
+- SYS_SOCKET = 281
+- SYS_BIND = 282
+- SYS_CONNECT = 283
+- SYS_LISTEN = 284
+- SYS_ACCEPT = 285
+- SYS_GETSOCKNAME = 286
+- SYS_GETPEERNAME = 287
+- SYS_SOCKETPAIR = 288
+- SYS_SEND = 289
+- SYS_SENDTO = 290
+- SYS_RECV = 291
+- SYS_RECVFROM = 292
+- SYS_SHUTDOWN = 293
+- SYS_SETSOCKOPT = 294
+- SYS_GETSOCKOPT = 295
+- SYS_SENDMSG = 296
+- SYS_RECVMSG = 297
+- SYS_SEMOP = 298
+- SYS_SEMGET = 299
+- SYS_SEMCTL = 300
+- SYS_MSGSND = 301
+- SYS_MSGRCV = 302
+- SYS_MSGGET = 303
+- SYS_MSGCTL = 304
+- SYS_SHMAT = 305
+- SYS_SHMDT = 306
+- SYS_SHMGET = 307
+- SYS_SHMCTL = 308
+- SYS_ADD_KEY = 309
+- SYS_REQUEST_KEY = 310
+- SYS_KEYCTL = 311
+- SYS_SEMTIMEDOP = 312
+- SYS_VSERVER = 313
+- SYS_IOPRIO_SET = 314
+- SYS_IOPRIO_GET = 315
+- SYS_INOTIFY_INIT = 316
+- SYS_INOTIFY_ADD_WATCH = 317
+- SYS_INOTIFY_RM_WATCH = 318
+- SYS_MBIND = 319
+- SYS_GET_MEMPOLICY = 320
+- SYS_SET_MEMPOLICY = 321
+- SYS_OPENAT = 322
+- SYS_MKDIRAT = 323
+- SYS_MKNODAT = 324
+- SYS_FCHOWNAT = 325
+- SYS_FUTIMESAT = 326
+- SYS_FSTATAT64 = 327
+- SYS_UNLINKAT = 328
+- SYS_RENAMEAT = 329
+- SYS_LINKAT = 330
+- SYS_SYMLINKAT = 331
+- SYS_READLINKAT = 332
+- SYS_FCHMODAT = 333
+- SYS_FACCESSAT = 334
+- SYS_PSELECT6 = 335
+- SYS_PPOLL = 336
+- SYS_UNSHARE = 337
+- SYS_SET_ROBUST_LIST = 338
+- SYS_GET_ROBUST_LIST = 339
+- SYS_SPLICE = 340
+- SYS_ARM_SYNC_FILE_RANGE = 341
+- SYS_TEE = 342
+- SYS_VMSPLICE = 343
+- SYS_MOVE_PAGES = 344
+- SYS_GETCPU = 345
+- SYS_EPOLL_PWAIT = 346
+- SYS_KEXEC_LOAD = 347
+- SYS_UTIMENSAT = 348
+- SYS_SIGNALFD = 349
+- SYS_TIMERFD_CREATE = 350
+- SYS_EVENTFD = 351
+- SYS_FALLOCATE = 352
+- SYS_TIMERFD_SETTIME = 353
+- SYS_TIMERFD_GETTIME = 354
+- SYS_SIGNALFD4 = 355
+- SYS_EVENTFD2 = 356
+- SYS_EPOLL_CREATE1 = 357
+- SYS_DUP3 = 358
+- SYS_PIPE2 = 359
+- SYS_INOTIFY_INIT1 = 360
+- SYS_PREADV = 361
+- SYS_PWRITEV = 362
+- SYS_RT_TGSIGQUEUEINFO = 363
+- SYS_PERF_EVENT_OPEN = 364
+- SYS_RECVMMSG = 365
+- SYS_ACCEPT4 = 366
+- SYS_FANOTIFY_INIT = 367
+- SYS_FANOTIFY_MARK = 368
+- SYS_PRLIMIT64 = 369
+- SYS_NAME_TO_HANDLE_AT = 370
+- SYS_OPEN_BY_HANDLE_AT = 371
+- SYS_CLOCK_ADJTIME = 372
+- SYS_SYNCFS = 373
+- SYS_SENDMMSG = 374
+- SYS_SETNS = 375
+- SYS_PROCESS_VM_READV = 376
+- SYS_PROCESS_VM_WRITEV = 377
+- SYS_KCMP = 378
+- SYS_FINIT_MODULE = 379
+- SYS_SCHED_SETATTR = 380
+- SYS_SCHED_GETATTR = 381
+- SYS_RENAMEAT2 = 382
+- SYS_SECCOMP = 383
+- SYS_GETRANDOM = 384
+- SYS_MEMFD_CREATE = 385
+- SYS_BPF = 386
+- SYS_EXECVEAT = 387
+- SYS_USERFAULTFD = 388
+- SYS_MEMBARRIER = 389
+- SYS_MLOCK2 = 390
+- SYS_COPY_FILE_RANGE = 391
+- SYS_PREADV2 = 392
+- SYS_PWRITEV2 = 393
+- SYS_PKEY_MPROTECT = 394
+- SYS_PKEY_ALLOC = 395
+- SYS_PKEY_FREE = 396
++ SYS_RESTART_SYSCALL = 0
++ SYS_EXIT = 1
++ SYS_FORK = 2
++ SYS_READ = 3
++ SYS_WRITE = 4
++ SYS_OPEN = 5
++ SYS_CLOSE = 6
++ SYS_CREAT = 8
++ SYS_LINK = 9
++ SYS_UNLINK = 10
++ SYS_EXECVE = 11
++ SYS_CHDIR = 12
++ SYS_MKNOD = 14
++ SYS_CHMOD = 15
++ SYS_LCHOWN = 16
++ SYS_LSEEK = 19
++ SYS_GETPID = 20
++ SYS_MOUNT = 21
++ SYS_SETUID = 23
++ SYS_GETUID = 24
++ SYS_PTRACE = 26
++ SYS_PAUSE = 29
++ SYS_ACCESS = 33
++ SYS_NICE = 34
++ SYS_SYNC = 36
++ SYS_KILL = 37
++ SYS_RENAME = 38
++ SYS_MKDIR = 39
++ SYS_RMDIR = 40
++ SYS_DUP = 41
++ SYS_PIPE = 42
++ SYS_TIMES = 43
++ SYS_BRK = 45
++ SYS_SETGID = 46
++ SYS_GETGID = 47
++ SYS_GETEUID = 49
++ SYS_GETEGID = 50
++ SYS_ACCT = 51
++ SYS_UMOUNT2 = 52
++ SYS_IOCTL = 54
++ SYS_FCNTL = 55
++ SYS_SETPGID = 57
++ SYS_UMASK = 60
++ SYS_CHROOT = 61
++ SYS_USTAT = 62
++ SYS_DUP2 = 63
++ SYS_GETPPID = 64
++ SYS_GETPGRP = 65
++ SYS_SETSID = 66
++ SYS_SIGACTION = 67
++ SYS_SETREUID = 70
++ SYS_SETREGID = 71
++ SYS_SIGSUSPEND = 72
++ SYS_SIGPENDING = 73
++ SYS_SETHOSTNAME = 74
++ SYS_SETRLIMIT = 75
++ SYS_GETRUSAGE = 77
++ SYS_GETTIMEOFDAY = 78
++ SYS_SETTIMEOFDAY = 79
++ SYS_GETGROUPS = 80
++ SYS_SETGROUPS = 81
++ SYS_SYMLINK = 83
++ SYS_READLINK = 85
++ SYS_USELIB = 86
++ SYS_SWAPON = 87
++ SYS_REBOOT = 88
++ SYS_MUNMAP = 91
++ SYS_TRUNCATE = 92
++ SYS_FTRUNCATE = 93
++ SYS_FCHMOD = 94
++ SYS_FCHOWN = 95
++ SYS_GETPRIORITY = 96
++ SYS_SETPRIORITY = 97
++ SYS_STATFS = 99
++ SYS_FSTATFS = 100
++ SYS_SYSLOG = 103
++ SYS_SETITIMER = 104
++ SYS_GETITIMER = 105
++ SYS_STAT = 106
++ SYS_LSTAT = 107
++ SYS_FSTAT = 108
++ SYS_VHANGUP = 111
++ SYS_WAIT4 = 114
++ SYS_SWAPOFF = 115
++ SYS_SYSINFO = 116
++ SYS_FSYNC = 118
++ SYS_SIGRETURN = 119
++ SYS_CLONE = 120
++ SYS_SETDOMAINNAME = 121
++ SYS_UNAME = 122
++ SYS_ADJTIMEX = 124
++ SYS_MPROTECT = 125
++ SYS_SIGPROCMASK = 126
++ SYS_INIT_MODULE = 128
++ SYS_DELETE_MODULE = 129
++ SYS_QUOTACTL = 131
++ SYS_GETPGID = 132
++ SYS_FCHDIR = 133
++ SYS_BDFLUSH = 134
++ SYS_SYSFS = 135
++ SYS_PERSONALITY = 136
++ SYS_SETFSUID = 138
++ SYS_SETFSGID = 139
++ SYS__LLSEEK = 140
++ SYS_GETDENTS = 141
++ SYS__NEWSELECT = 142
++ SYS_FLOCK = 143
++ SYS_MSYNC = 144
++ SYS_READV = 145
++ SYS_WRITEV = 146
++ SYS_GETSID = 147
++ SYS_FDATASYNC = 148
++ SYS__SYSCTL = 149
++ SYS_MLOCK = 150
++ SYS_MUNLOCK = 151
++ SYS_MLOCKALL = 152
++ SYS_MUNLOCKALL = 153
++ SYS_SCHED_SETPARAM = 154
++ SYS_SCHED_GETPARAM = 155
++ SYS_SCHED_SETSCHEDULER = 156
++ SYS_SCHED_GETSCHEDULER = 157
++ SYS_SCHED_YIELD = 158
++ SYS_SCHED_GET_PRIORITY_MAX = 159
++ SYS_SCHED_GET_PRIORITY_MIN = 160
++ SYS_SCHED_RR_GET_INTERVAL = 161
++ SYS_NANOSLEEP = 162
++ SYS_MREMAP = 163
++ SYS_SETRESUID = 164
++ SYS_GETRESUID = 165
++ SYS_POLL = 168
++ SYS_NFSSERVCTL = 169
++ SYS_SETRESGID = 170
++ SYS_GETRESGID = 171
++ SYS_PRCTL = 172
++ SYS_RT_SIGRETURN = 173
++ SYS_RT_SIGACTION = 174
++ SYS_RT_SIGPROCMASK = 175
++ SYS_RT_SIGPENDING = 176
++ SYS_RT_SIGTIMEDWAIT = 177
++ SYS_RT_SIGQUEUEINFO = 178
++ SYS_RT_SIGSUSPEND = 179
++ SYS_PREAD64 = 180
++ SYS_PWRITE64 = 181
++ SYS_CHOWN = 182
++ SYS_GETCWD = 183
++ SYS_CAPGET = 184
++ SYS_CAPSET = 185
++ SYS_SIGALTSTACK = 186
++ SYS_SENDFILE = 187
++ SYS_VFORK = 190
++ SYS_UGETRLIMIT = 191
++ SYS_MMAP2 = 192
++ SYS_TRUNCATE64 = 193
++ SYS_FTRUNCATE64 = 194
++ SYS_STAT64 = 195
++ SYS_LSTAT64 = 196
++ SYS_FSTAT64 = 197
++ SYS_LCHOWN32 = 198
++ SYS_GETUID32 = 199
++ SYS_GETGID32 = 200
++ SYS_GETEUID32 = 201
++ SYS_GETEGID32 = 202
++ SYS_SETREUID32 = 203
++ SYS_SETREGID32 = 204
++ SYS_GETGROUPS32 = 205
++ SYS_SETGROUPS32 = 206
++ SYS_FCHOWN32 = 207
++ SYS_SETRESUID32 = 208
++ SYS_GETRESUID32 = 209
++ SYS_SETRESGID32 = 210
++ SYS_GETRESGID32 = 211
++ SYS_CHOWN32 = 212
++ SYS_SETUID32 = 213
++ SYS_SETGID32 = 214
++ SYS_SETFSUID32 = 215
++ SYS_SETFSGID32 = 216
++ SYS_GETDENTS64 = 217
++ SYS_PIVOT_ROOT = 218
++ SYS_MINCORE = 219
++ SYS_MADVISE = 220
++ SYS_FCNTL64 = 221
++ SYS_GETTID = 224
++ SYS_READAHEAD = 225
++ SYS_SETXATTR = 226
++ SYS_LSETXATTR = 227
++ SYS_FSETXATTR = 228
++ SYS_GETXATTR = 229
++ SYS_LGETXATTR = 230
++ SYS_FGETXATTR = 231
++ SYS_LISTXATTR = 232
++ SYS_LLISTXATTR = 233
++ SYS_FLISTXATTR = 234
++ SYS_REMOVEXATTR = 235
++ SYS_LREMOVEXATTR = 236
++ SYS_FREMOVEXATTR = 237
++ SYS_TKILL = 238
++ SYS_SENDFILE64 = 239
++ SYS_FUTEX = 240
++ SYS_SCHED_SETAFFINITY = 241
++ SYS_SCHED_GETAFFINITY = 242
++ SYS_IO_SETUP = 243
++ SYS_IO_DESTROY = 244
++ SYS_IO_GETEVENTS = 245
++ SYS_IO_SUBMIT = 246
++ SYS_IO_CANCEL = 247
++ SYS_EXIT_GROUP = 248
++ SYS_LOOKUP_DCOOKIE = 249
++ SYS_EPOLL_CREATE = 250
++ SYS_EPOLL_CTL = 251
++ SYS_EPOLL_WAIT = 252
++ SYS_REMAP_FILE_PAGES = 253
++ SYS_SET_TID_ADDRESS = 256
++ SYS_TIMER_CREATE = 257
++ SYS_TIMER_SETTIME = 258
++ SYS_TIMER_GETTIME = 259
++ SYS_TIMER_GETOVERRUN = 260
++ SYS_TIMER_DELETE = 261
++ SYS_CLOCK_SETTIME = 262
++ SYS_CLOCK_GETTIME = 263
++ SYS_CLOCK_GETRES = 264
++ SYS_CLOCK_NANOSLEEP = 265
++ SYS_STATFS64 = 266
++ SYS_FSTATFS64 = 267
++ SYS_TGKILL = 268
++ SYS_UTIMES = 269
++ SYS_ARM_FADVISE64_64 = 270
++ SYS_PCICONFIG_IOBASE = 271
++ SYS_PCICONFIG_READ = 272
++ SYS_PCICONFIG_WRITE = 273
++ SYS_MQ_OPEN = 274
++ SYS_MQ_UNLINK = 275
++ SYS_MQ_TIMEDSEND = 276
++ SYS_MQ_TIMEDRECEIVE = 277
++ SYS_MQ_NOTIFY = 278
++ SYS_MQ_GETSETATTR = 279
++ SYS_WAITID = 280
++ SYS_SOCKET = 281
++ SYS_BIND = 282
++ SYS_CONNECT = 283
++ SYS_LISTEN = 284
++ SYS_ACCEPT = 285
++ SYS_GETSOCKNAME = 286
++ SYS_GETPEERNAME = 287
++ SYS_SOCKETPAIR = 288
++ SYS_SEND = 289
++ SYS_SENDTO = 290
++ SYS_RECV = 291
++ SYS_RECVFROM = 292
++ SYS_SHUTDOWN = 293
++ SYS_SETSOCKOPT = 294
++ SYS_GETSOCKOPT = 295
++ SYS_SENDMSG = 296
++ SYS_RECVMSG = 297
++ SYS_SEMOP = 298
++ SYS_SEMGET = 299
++ SYS_SEMCTL = 300
++ SYS_MSGSND = 301
++ SYS_MSGRCV = 302
++ SYS_MSGGET = 303
++ SYS_MSGCTL = 304
++ SYS_SHMAT = 305
++ SYS_SHMDT = 306
++ SYS_SHMGET = 307
++ SYS_SHMCTL = 308
++ SYS_ADD_KEY = 309
++ SYS_REQUEST_KEY = 310
++ SYS_KEYCTL = 311
++ SYS_SEMTIMEDOP = 312
++ SYS_VSERVER = 313
++ SYS_IOPRIO_SET = 314
++ SYS_IOPRIO_GET = 315
++ SYS_INOTIFY_INIT = 316
++ SYS_INOTIFY_ADD_WATCH = 317
++ SYS_INOTIFY_RM_WATCH = 318
++ SYS_MBIND = 319
++ SYS_GET_MEMPOLICY = 320
++ SYS_SET_MEMPOLICY = 321
++ SYS_OPENAT = 322
++ SYS_MKDIRAT = 323
++ SYS_MKNODAT = 324
++ SYS_FCHOWNAT = 325
++ SYS_FUTIMESAT = 326
++ SYS_FSTATAT64 = 327
++ SYS_UNLINKAT = 328
++ SYS_RENAMEAT = 329
++ SYS_LINKAT = 330
++ SYS_SYMLINKAT = 331
++ SYS_READLINKAT = 332
++ SYS_FCHMODAT = 333
++ SYS_FACCESSAT = 334
++ SYS_PSELECT6 = 335
++ SYS_PPOLL = 336
++ SYS_UNSHARE = 337
++ SYS_SET_ROBUST_LIST = 338
++ SYS_GET_ROBUST_LIST = 339
++ SYS_SPLICE = 340
++ SYS_ARM_SYNC_FILE_RANGE = 341
++ SYS_TEE = 342
++ SYS_VMSPLICE = 343
++ SYS_MOVE_PAGES = 344
++ SYS_GETCPU = 345
++ SYS_EPOLL_PWAIT = 346
++ SYS_KEXEC_LOAD = 347
++ SYS_UTIMENSAT = 348
++ SYS_SIGNALFD = 349
++ SYS_TIMERFD_CREATE = 350
++ SYS_EVENTFD = 351
++ SYS_FALLOCATE = 352
++ SYS_TIMERFD_SETTIME = 353
++ SYS_TIMERFD_GETTIME = 354
++ SYS_SIGNALFD4 = 355
++ SYS_EVENTFD2 = 356
++ SYS_EPOLL_CREATE1 = 357
++ SYS_DUP3 = 358
++ SYS_PIPE2 = 359
++ SYS_INOTIFY_INIT1 = 360
++ SYS_PREADV = 361
++ SYS_PWRITEV = 362
++ SYS_RT_TGSIGQUEUEINFO = 363
++ SYS_PERF_EVENT_OPEN = 364
++ SYS_RECVMMSG = 365
++ SYS_ACCEPT4 = 366
++ SYS_FANOTIFY_INIT = 367
++ SYS_FANOTIFY_MARK = 368
++ SYS_PRLIMIT64 = 369
++ SYS_NAME_TO_HANDLE_AT = 370
++ SYS_OPEN_BY_HANDLE_AT = 371
++ SYS_CLOCK_ADJTIME = 372
++ SYS_SYNCFS = 373
++ SYS_SENDMMSG = 374
++ SYS_SETNS = 375
++ SYS_PROCESS_VM_READV = 376
++ SYS_PROCESS_VM_WRITEV = 377
++ SYS_KCMP = 378
++ SYS_FINIT_MODULE = 379
++ SYS_SCHED_SETATTR = 380
++ SYS_SCHED_GETATTR = 381
++ SYS_RENAMEAT2 = 382
++ SYS_SECCOMP = 383
++ SYS_GETRANDOM = 384
++ SYS_MEMFD_CREATE = 385
++ SYS_BPF = 386
++ SYS_EXECVEAT = 387
++ SYS_USERFAULTFD = 388
++ SYS_MEMBARRIER = 389
++ SYS_MLOCK2 = 390
++ SYS_COPY_FILE_RANGE = 391
++ SYS_PREADV2 = 392
++ SYS_PWRITEV2 = 393
++ SYS_PKEY_MPROTECT = 394
++ SYS_PKEY_ALLOC = 395
++ SYS_PKEY_FREE = 396
++ SYS_STATX = 397
++ SYS_RSEQ = 398
++ SYS_IO_PGETEVENTS = 399
++ SYS_MIGRATE_PAGES = 400
++ SYS_KEXEC_FILE_LOAD = 401
++ SYS_CLOCK_GETTIME64 = 403
++ SYS_CLOCK_SETTIME64 = 404
++ SYS_CLOCK_ADJTIME64 = 405
++ SYS_CLOCK_GETRES_TIME64 = 406
++ SYS_CLOCK_NANOSLEEP_TIME64 = 407
++ SYS_TIMER_GETTIME64 = 408
++ SYS_TIMER_SETTIME64 = 409
++ SYS_TIMERFD_GETTIME64 = 410
++ SYS_TIMERFD_SETTIME64 = 411
++ SYS_UTIMENSAT_TIME64 = 412
++ SYS_PSELECT6_TIME64 = 413
++ SYS_PPOLL_TIME64 = 414
++ SYS_IO_PGETEVENTS_TIME64 = 416
++ SYS_RECVMMSG_TIME64 = 417
++ SYS_MQ_TIMEDSEND_TIME64 = 418
++ SYS_MQ_TIMEDRECEIVE_TIME64 = 419
++ SYS_SEMTIMEDOP_TIME64 = 420
++ SYS_RT_SIGTIMEDWAIT_TIME64 = 421
++ SYS_FUTEX_TIME64 = 422
++ SYS_SCHED_RR_GET_INTERVAL_TIME64 = 423
++ SYS_PIDFD_SEND_SIGNAL = 424
++ SYS_IO_URING_SETUP = 425
++ SYS_IO_URING_ENTER = 426
++ SYS_IO_URING_REGISTER = 427
++ SYS_OPEN_TREE = 428
++ SYS_MOVE_MOUNT = 429
++ SYS_FSOPEN = 430
++ SYS_FSCONFIG = 431
++ SYS_FSMOUNT = 432
++ SYS_FSPICK = 433
++ SYS_PIDFD_OPEN = 434
++ SYS_CLONE3 = 435
++ SYS_OPENAT2 = 437
++ SYS_PIDFD_GETFD = 438
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
+index 64078435..e9404dd5 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
+@@ -1,4 +1,4 @@
+-// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include -fsigned-char /tmp/include/asm/unistd.h
++// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -fsigned-char /tmp/include/asm/unistd.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build arm64,linux
+@@ -282,4 +282,22 @@ const (
+ SYS_PKEY_MPROTECT = 288
+ SYS_PKEY_ALLOC = 289
+ SYS_PKEY_FREE = 290
++ SYS_STATX = 291
++ SYS_IO_PGETEVENTS = 292
++ SYS_RSEQ = 293
++ SYS_KEXEC_FILE_LOAD = 294
++ SYS_PIDFD_SEND_SIGNAL = 424
++ SYS_IO_URING_SETUP = 425
++ SYS_IO_URING_ENTER = 426
++ SYS_IO_URING_REGISTER = 427
++ SYS_OPEN_TREE = 428
++ SYS_MOVE_MOUNT = 429
++ SYS_FSOPEN = 430
++ SYS_FSCONFIG = 431
++ SYS_FSMOUNT = 432
++ SYS_FSPICK = 433
++ SYS_PIDFD_OPEN = 434
++ SYS_CLONE3 = 435
++ SYS_OPENAT2 = 437
++ SYS_PIDFD_GETFD = 438
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go
+index 939567c0..68bb6d29 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go
+@@ -1,4 +1,4 @@
+-// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
++// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build mips,linux
+@@ -6,369 +6,416 @@
+ package unix
+
+ const (
+- SYS_SYSCALL = 4000
+- SYS_EXIT = 4001
+- SYS_FORK = 4002
+- SYS_READ = 4003
+- SYS_WRITE = 4004
+- SYS_OPEN = 4005
+- SYS_CLOSE = 4006
+- SYS_WAITPID = 4007
+- SYS_CREAT = 4008
+- SYS_LINK = 4009
+- SYS_UNLINK = 4010
+- SYS_EXECVE = 4011
+- SYS_CHDIR = 4012
+- SYS_TIME = 4013
+- SYS_MKNOD = 4014
+- SYS_CHMOD = 4015
+- SYS_LCHOWN = 4016
+- SYS_BREAK = 4017
+- SYS_UNUSED18 = 4018
+- SYS_LSEEK = 4019
+- SYS_GETPID = 4020
+- SYS_MOUNT = 4021
+- SYS_UMOUNT = 4022
+- SYS_SETUID = 4023
+- SYS_GETUID = 4024
+- SYS_STIME = 4025
+- SYS_PTRACE = 4026
+- SYS_ALARM = 4027
+- SYS_UNUSED28 = 4028
+- SYS_PAUSE = 4029
+- SYS_UTIME = 4030
+- SYS_STTY = 4031
+- SYS_GTTY = 4032
+- SYS_ACCESS = 4033
+- SYS_NICE = 4034
+- SYS_FTIME = 4035
+- SYS_SYNC = 4036
+- SYS_KILL = 4037
+- SYS_RENAME = 4038
+- SYS_MKDIR = 4039
+- SYS_RMDIR = 4040
+- SYS_DUP = 4041
+- SYS_PIPE = 4042
+- SYS_TIMES = 4043
+- SYS_PROF = 4044
+- SYS_BRK = 4045
+- SYS_SETGID = 4046
+- SYS_GETGID = 4047
+- SYS_SIGNAL = 4048
+- SYS_GETEUID = 4049
+- SYS_GETEGID = 4050
+- SYS_ACCT = 4051
+- SYS_UMOUNT2 = 4052
+- SYS_LOCK = 4053
+- SYS_IOCTL = 4054
+- SYS_FCNTL = 4055
+- SYS_MPX = 4056
+- SYS_SETPGID = 4057
+- SYS_ULIMIT = 4058
+- SYS_UNUSED59 = 4059
+- SYS_UMASK = 4060
+- SYS_CHROOT = 4061
+- SYS_USTAT = 4062
+- SYS_DUP2 = 4063
+- SYS_GETPPID = 4064
+- SYS_GETPGRP = 4065
+- SYS_SETSID = 4066
+- SYS_SIGACTION = 4067
+- SYS_SGETMASK = 4068
+- SYS_SSETMASK = 4069
+- SYS_SETREUID = 4070
+- SYS_SETREGID = 4071
+- SYS_SIGSUSPEND = 4072
+- SYS_SIGPENDING = 4073
+- SYS_SETHOSTNAME = 4074
+- SYS_SETRLIMIT = 4075
+- SYS_GETRLIMIT = 4076
+- SYS_GETRUSAGE = 4077
+- SYS_GETTIMEOFDAY = 4078
+- SYS_SETTIMEOFDAY = 4079
+- SYS_GETGROUPS = 4080
+- SYS_SETGROUPS = 4081
+- SYS_RESERVED82 = 4082
+- SYS_SYMLINK = 4083
+- SYS_UNUSED84 = 4084
+- SYS_READLINK = 4085
+- SYS_USELIB = 4086
+- SYS_SWAPON = 4087
+- SYS_REBOOT = 4088
+- SYS_READDIR = 4089
+- SYS_MMAP = 4090
+- SYS_MUNMAP = 4091
+- SYS_TRUNCATE = 4092
+- SYS_FTRUNCATE = 4093
+- SYS_FCHMOD = 4094
+- SYS_FCHOWN = 4095
+- SYS_GETPRIORITY = 4096
+- SYS_SETPRIORITY = 4097
+- SYS_PROFIL = 4098
+- SYS_STATFS = 4099
+- SYS_FSTATFS = 4100
+- SYS_IOPERM = 4101
+- SYS_SOCKETCALL = 4102
+- SYS_SYSLOG = 4103
+- SYS_SETITIMER = 4104
+- SYS_GETITIMER = 4105
+- SYS_STAT = 4106
+- SYS_LSTAT = 4107
+- SYS_FSTAT = 4108
+- SYS_UNUSED109 = 4109
+- SYS_IOPL = 4110
+- SYS_VHANGUP = 4111
+- SYS_IDLE = 4112
+- SYS_VM86 = 4113
+- SYS_WAIT4 = 4114
+- SYS_SWAPOFF = 4115
+- SYS_SYSINFO = 4116
+- SYS_IPC = 4117
+- SYS_FSYNC = 4118
+- SYS_SIGRETURN = 4119
+- SYS_CLONE = 4120
+- SYS_SETDOMAINNAME = 4121
+- SYS_UNAME = 4122
+- SYS_MODIFY_LDT = 4123
+- SYS_ADJTIMEX = 4124
+- SYS_MPROTECT = 4125
+- SYS_SIGPROCMASK = 4126
+- SYS_CREATE_MODULE = 4127
+- SYS_INIT_MODULE = 4128
+- SYS_DELETE_MODULE = 4129
+- SYS_GET_KERNEL_SYMS = 4130
+- SYS_QUOTACTL = 4131
+- SYS_GETPGID = 4132
+- SYS_FCHDIR = 4133
+- SYS_BDFLUSH = 4134
+- SYS_SYSFS = 4135
+- SYS_PERSONALITY = 4136
+- SYS_AFS_SYSCALL = 4137
+- SYS_SETFSUID = 4138
+- SYS_SETFSGID = 4139
+- SYS__LLSEEK = 4140
+- SYS_GETDENTS = 4141
+- SYS__NEWSELECT = 4142
+- SYS_FLOCK = 4143
+- SYS_MSYNC = 4144
+- SYS_READV = 4145
+- SYS_WRITEV = 4146
+- SYS_CACHEFLUSH = 4147
+- SYS_CACHECTL = 4148
+- SYS_SYSMIPS = 4149
+- SYS_UNUSED150 = 4150
+- SYS_GETSID = 4151
+- SYS_FDATASYNC = 4152
+- SYS__SYSCTL = 4153
+- SYS_MLOCK = 4154
+- SYS_MUNLOCK = 4155
+- SYS_MLOCKALL = 4156
+- SYS_MUNLOCKALL = 4157
+- SYS_SCHED_SETPARAM = 4158
+- SYS_SCHED_GETPARAM = 4159
+- SYS_SCHED_SETSCHEDULER = 4160
+- SYS_SCHED_GETSCHEDULER = 4161
+- SYS_SCHED_YIELD = 4162
+- SYS_SCHED_GET_PRIORITY_MAX = 4163
+- SYS_SCHED_GET_PRIORITY_MIN = 4164
+- SYS_SCHED_RR_GET_INTERVAL = 4165
+- SYS_NANOSLEEP = 4166
+- SYS_MREMAP = 4167
+- SYS_ACCEPT = 4168
+- SYS_BIND = 4169
+- SYS_CONNECT = 4170
+- SYS_GETPEERNAME = 4171
+- SYS_GETSOCKNAME = 4172
+- SYS_GETSOCKOPT = 4173
+- SYS_LISTEN = 4174
+- SYS_RECV = 4175
+- SYS_RECVFROM = 4176
+- SYS_RECVMSG = 4177
+- SYS_SEND = 4178
+- SYS_SENDMSG = 4179
+- SYS_SENDTO = 4180
+- SYS_SETSOCKOPT = 4181
+- SYS_SHUTDOWN = 4182
+- SYS_SOCKET = 4183
+- SYS_SOCKETPAIR = 4184
+- SYS_SETRESUID = 4185
+- SYS_GETRESUID = 4186
+- SYS_QUERY_MODULE = 4187
+- SYS_POLL = 4188
+- SYS_NFSSERVCTL = 4189
+- SYS_SETRESGID = 4190
+- SYS_GETRESGID = 4191
+- SYS_PRCTL = 4192
+- SYS_RT_SIGRETURN = 4193
+- SYS_RT_SIGACTION = 4194
+- SYS_RT_SIGPROCMASK = 4195
+- SYS_RT_SIGPENDING = 4196
+- SYS_RT_SIGTIMEDWAIT = 4197
+- SYS_RT_SIGQUEUEINFO = 4198
+- SYS_RT_SIGSUSPEND = 4199
+- SYS_PREAD64 = 4200
+- SYS_PWRITE64 = 4201
+- SYS_CHOWN = 4202
+- SYS_GETCWD = 4203
+- SYS_CAPGET = 4204
+- SYS_CAPSET = 4205
+- SYS_SIGALTSTACK = 4206
+- SYS_SENDFILE = 4207
+- SYS_GETPMSG = 4208
+- SYS_PUTPMSG = 4209
+- SYS_MMAP2 = 4210
+- SYS_TRUNCATE64 = 4211
+- SYS_FTRUNCATE64 = 4212
+- SYS_STAT64 = 4213
+- SYS_LSTAT64 = 4214
+- SYS_FSTAT64 = 4215
+- SYS_PIVOT_ROOT = 4216
+- SYS_MINCORE = 4217
+- SYS_MADVISE = 4218
+- SYS_GETDENTS64 = 4219
+- SYS_FCNTL64 = 4220
+- SYS_RESERVED221 = 4221
+- SYS_GETTID = 4222
+- SYS_READAHEAD = 4223
+- SYS_SETXATTR = 4224
+- SYS_LSETXATTR = 4225
+- SYS_FSETXATTR = 4226
+- SYS_GETXATTR = 4227
+- SYS_LGETXATTR = 4228
+- SYS_FGETXATTR = 4229
+- SYS_LISTXATTR = 4230
+- SYS_LLISTXATTR = 4231
+- SYS_FLISTXATTR = 4232
+- SYS_REMOVEXATTR = 4233
+- SYS_LREMOVEXATTR = 4234
+- SYS_FREMOVEXATTR = 4235
+- SYS_TKILL = 4236
+- SYS_SENDFILE64 = 4237
+- SYS_FUTEX = 4238
+- SYS_SCHED_SETAFFINITY = 4239
+- SYS_SCHED_GETAFFINITY = 4240
+- SYS_IO_SETUP = 4241
+- SYS_IO_DESTROY = 4242
+- SYS_IO_GETEVENTS = 4243
+- SYS_IO_SUBMIT = 4244
+- SYS_IO_CANCEL = 4245
+- SYS_EXIT_GROUP = 4246
+- SYS_LOOKUP_DCOOKIE = 4247
+- SYS_EPOLL_CREATE = 4248
+- SYS_EPOLL_CTL = 4249
+- SYS_EPOLL_WAIT = 4250
+- SYS_REMAP_FILE_PAGES = 4251
+- SYS_SET_TID_ADDRESS = 4252
+- SYS_RESTART_SYSCALL = 4253
+- SYS_FADVISE64 = 4254
+- SYS_STATFS64 = 4255
+- SYS_FSTATFS64 = 4256
+- SYS_TIMER_CREATE = 4257
+- SYS_TIMER_SETTIME = 4258
+- SYS_TIMER_GETTIME = 4259
+- SYS_TIMER_GETOVERRUN = 4260
+- SYS_TIMER_DELETE = 4261
+- SYS_CLOCK_SETTIME = 4262
+- SYS_CLOCK_GETTIME = 4263
+- SYS_CLOCK_GETRES = 4264
+- SYS_CLOCK_NANOSLEEP = 4265
+- SYS_TGKILL = 4266
+- SYS_UTIMES = 4267
+- SYS_MBIND = 4268
+- SYS_GET_MEMPOLICY = 4269
+- SYS_SET_MEMPOLICY = 4270
+- SYS_MQ_OPEN = 4271
+- SYS_MQ_UNLINK = 4272
+- SYS_MQ_TIMEDSEND = 4273
+- SYS_MQ_TIMEDRECEIVE = 4274
+- SYS_MQ_NOTIFY = 4275
+- SYS_MQ_GETSETATTR = 4276
+- SYS_VSERVER = 4277
+- SYS_WAITID = 4278
+- SYS_ADD_KEY = 4280
+- SYS_REQUEST_KEY = 4281
+- SYS_KEYCTL = 4282
+- SYS_SET_THREAD_AREA = 4283
+- SYS_INOTIFY_INIT = 4284
+- SYS_INOTIFY_ADD_WATCH = 4285
+- SYS_INOTIFY_RM_WATCH = 4286
+- SYS_MIGRATE_PAGES = 4287
+- SYS_OPENAT = 4288
+- SYS_MKDIRAT = 4289
+- SYS_MKNODAT = 4290
+- SYS_FCHOWNAT = 4291
+- SYS_FUTIMESAT = 4292
+- SYS_FSTATAT64 = 4293
+- SYS_UNLINKAT = 4294
+- SYS_RENAMEAT = 4295
+- SYS_LINKAT = 4296
+- SYS_SYMLINKAT = 4297
+- SYS_READLINKAT = 4298
+- SYS_FCHMODAT = 4299
+- SYS_FACCESSAT = 4300
+- SYS_PSELECT6 = 4301
+- SYS_PPOLL = 4302
+- SYS_UNSHARE = 4303
+- SYS_SPLICE = 4304
+- SYS_SYNC_FILE_RANGE = 4305
+- SYS_TEE = 4306
+- SYS_VMSPLICE = 4307
+- SYS_MOVE_PAGES = 4308
+- SYS_SET_ROBUST_LIST = 4309
+- SYS_GET_ROBUST_LIST = 4310
+- SYS_KEXEC_LOAD = 4311
+- SYS_GETCPU = 4312
+- SYS_EPOLL_PWAIT = 4313
+- SYS_IOPRIO_SET = 4314
+- SYS_IOPRIO_GET = 4315
+- SYS_UTIMENSAT = 4316
+- SYS_SIGNALFD = 4317
+- SYS_TIMERFD = 4318
+- SYS_EVENTFD = 4319
+- SYS_FALLOCATE = 4320
+- SYS_TIMERFD_CREATE = 4321
+- SYS_TIMERFD_GETTIME = 4322
+- SYS_TIMERFD_SETTIME = 4323
+- SYS_SIGNALFD4 = 4324
+- SYS_EVENTFD2 = 4325
+- SYS_EPOLL_CREATE1 = 4326
+- SYS_DUP3 = 4327
+- SYS_PIPE2 = 4328
+- SYS_INOTIFY_INIT1 = 4329
+- SYS_PREADV = 4330
+- SYS_PWRITEV = 4331
+- SYS_RT_TGSIGQUEUEINFO = 4332
+- SYS_PERF_EVENT_OPEN = 4333
+- SYS_ACCEPT4 = 4334
+- SYS_RECVMMSG = 4335
+- SYS_FANOTIFY_INIT = 4336
+- SYS_FANOTIFY_MARK = 4337
+- SYS_PRLIMIT64 = 4338
+- SYS_NAME_TO_HANDLE_AT = 4339
+- SYS_OPEN_BY_HANDLE_AT = 4340
+- SYS_CLOCK_ADJTIME = 4341
+- SYS_SYNCFS = 4342
+- SYS_SENDMMSG = 4343
+- SYS_SETNS = 4344
+- SYS_PROCESS_VM_READV = 4345
+- SYS_PROCESS_VM_WRITEV = 4346
+- SYS_KCMP = 4347
+- SYS_FINIT_MODULE = 4348
+- SYS_SCHED_SETATTR = 4349
+- SYS_SCHED_GETATTR = 4350
+- SYS_RENAMEAT2 = 4351
+- SYS_SECCOMP = 4352
+- SYS_GETRANDOM = 4353
+- SYS_MEMFD_CREATE = 4354
+- SYS_BPF = 4355
+- SYS_EXECVEAT = 4356
+- SYS_USERFAULTFD = 4357
+- SYS_MEMBARRIER = 4358
+- SYS_MLOCK2 = 4359
+- SYS_COPY_FILE_RANGE = 4360
+- SYS_PREADV2 = 4361
+- SYS_PWRITEV2 = 4362
+- SYS_PKEY_MPROTECT = 4363
+- SYS_PKEY_ALLOC = 4364
+- SYS_PKEY_FREE = 4365
++ SYS_SYSCALL = 4000
++ SYS_EXIT = 4001
++ SYS_FORK = 4002
++ SYS_READ = 4003
++ SYS_WRITE = 4004
++ SYS_OPEN = 4005
++ SYS_CLOSE = 4006
++ SYS_WAITPID = 4007
++ SYS_CREAT = 4008
++ SYS_LINK = 4009
++ SYS_UNLINK = 4010
++ SYS_EXECVE = 4011
++ SYS_CHDIR = 4012
++ SYS_TIME = 4013
++ SYS_MKNOD = 4014
++ SYS_CHMOD = 4015
++ SYS_LCHOWN = 4016
++ SYS_BREAK = 4017
++ SYS_UNUSED18 = 4018
++ SYS_LSEEK = 4019
++ SYS_GETPID = 4020
++ SYS_MOUNT = 4021
++ SYS_UMOUNT = 4022
++ SYS_SETUID = 4023
++ SYS_GETUID = 4024
++ SYS_STIME = 4025
++ SYS_PTRACE = 4026
++ SYS_ALARM = 4027
++ SYS_UNUSED28 = 4028
++ SYS_PAUSE = 4029
++ SYS_UTIME = 4030
++ SYS_STTY = 4031
++ SYS_GTTY = 4032
++ SYS_ACCESS = 4033
++ SYS_NICE = 4034
++ SYS_FTIME = 4035
++ SYS_SYNC = 4036
++ SYS_KILL = 4037
++ SYS_RENAME = 4038
++ SYS_MKDIR = 4039
++ SYS_RMDIR = 4040
++ SYS_DUP = 4041
++ SYS_PIPE = 4042
++ SYS_TIMES = 4043
++ SYS_PROF = 4044
++ SYS_BRK = 4045
++ SYS_SETGID = 4046
++ SYS_GETGID = 4047
++ SYS_SIGNAL = 4048
++ SYS_GETEUID = 4049
++ SYS_GETEGID = 4050
++ SYS_ACCT = 4051
++ SYS_UMOUNT2 = 4052
++ SYS_LOCK = 4053
++ SYS_IOCTL = 4054
++ SYS_FCNTL = 4055
++ SYS_MPX = 4056
++ SYS_SETPGID = 4057
++ SYS_ULIMIT = 4058
++ SYS_UNUSED59 = 4059
++ SYS_UMASK = 4060
++ SYS_CHROOT = 4061
++ SYS_USTAT = 4062
++ SYS_DUP2 = 4063
++ SYS_GETPPID = 4064
++ SYS_GETPGRP = 4065
++ SYS_SETSID = 4066
++ SYS_SIGACTION = 4067
++ SYS_SGETMASK = 4068
++ SYS_SSETMASK = 4069
++ SYS_SETREUID = 4070
++ SYS_SETREGID = 4071
++ SYS_SIGSUSPEND = 4072
++ SYS_SIGPENDING = 4073
++ SYS_SETHOSTNAME = 4074
++ SYS_SETRLIMIT = 4075
++ SYS_GETRLIMIT = 4076
++ SYS_GETRUSAGE = 4077
++ SYS_GETTIMEOFDAY = 4078
++ SYS_SETTIMEOFDAY = 4079
++ SYS_GETGROUPS = 4080
++ SYS_SETGROUPS = 4081
++ SYS_RESERVED82 = 4082
++ SYS_SYMLINK = 4083
++ SYS_UNUSED84 = 4084
++ SYS_READLINK = 4085
++ SYS_USELIB = 4086
++ SYS_SWAPON = 4087
++ SYS_REBOOT = 4088
++ SYS_READDIR = 4089
++ SYS_MMAP = 4090
++ SYS_MUNMAP = 4091
++ SYS_TRUNCATE = 4092
++ SYS_FTRUNCATE = 4093
++ SYS_FCHMOD = 4094
++ SYS_FCHOWN = 4095
++ SYS_GETPRIORITY = 4096
++ SYS_SETPRIORITY = 4097
++ SYS_PROFIL = 4098
++ SYS_STATFS = 4099
++ SYS_FSTATFS = 4100
++ SYS_IOPERM = 4101
++ SYS_SOCKETCALL = 4102
++ SYS_SYSLOG = 4103
++ SYS_SETITIMER = 4104
++ SYS_GETITIMER = 4105
++ SYS_STAT = 4106
++ SYS_LSTAT = 4107
++ SYS_FSTAT = 4108
++ SYS_UNUSED109 = 4109
++ SYS_IOPL = 4110
++ SYS_VHANGUP = 4111
++ SYS_IDLE = 4112
++ SYS_VM86 = 4113
++ SYS_WAIT4 = 4114
++ SYS_SWAPOFF = 4115
++ SYS_SYSINFO = 4116
++ SYS_IPC = 4117
++ SYS_FSYNC = 4118
++ SYS_SIGRETURN = 4119
++ SYS_CLONE = 4120
++ SYS_SETDOMAINNAME = 4121
++ SYS_UNAME = 4122
++ SYS_MODIFY_LDT = 4123
++ SYS_ADJTIMEX = 4124
++ SYS_MPROTECT = 4125
++ SYS_SIGPROCMASK = 4126
++ SYS_CREATE_MODULE = 4127
++ SYS_INIT_MODULE = 4128
++ SYS_DELETE_MODULE = 4129
++ SYS_GET_KERNEL_SYMS = 4130
++ SYS_QUOTACTL = 4131
++ SYS_GETPGID = 4132
++ SYS_FCHDIR = 4133
++ SYS_BDFLUSH = 4134
++ SYS_SYSFS = 4135
++ SYS_PERSONALITY = 4136
++ SYS_AFS_SYSCALL = 4137
++ SYS_SETFSUID = 4138
++ SYS_SETFSGID = 4139
++ SYS__LLSEEK = 4140
++ SYS_GETDENTS = 4141
++ SYS__NEWSELECT = 4142
++ SYS_FLOCK = 4143
++ SYS_MSYNC = 4144
++ SYS_READV = 4145
++ SYS_WRITEV = 4146
++ SYS_CACHEFLUSH = 4147
++ SYS_CACHECTL = 4148
++ SYS_SYSMIPS = 4149
++ SYS_UNUSED150 = 4150
++ SYS_GETSID = 4151
++ SYS_FDATASYNC = 4152
++ SYS__SYSCTL = 4153
++ SYS_MLOCK = 4154
++ SYS_MUNLOCK = 4155
++ SYS_MLOCKALL = 4156
++ SYS_MUNLOCKALL = 4157
++ SYS_SCHED_SETPARAM = 4158
++ SYS_SCHED_GETPARAM = 4159
++ SYS_SCHED_SETSCHEDULER = 4160
++ SYS_SCHED_GETSCHEDULER = 4161
++ SYS_SCHED_YIELD = 4162
++ SYS_SCHED_GET_PRIORITY_MAX = 4163
++ SYS_SCHED_GET_PRIORITY_MIN = 4164
++ SYS_SCHED_RR_GET_INTERVAL = 4165
++ SYS_NANOSLEEP = 4166
++ SYS_MREMAP = 4167
++ SYS_ACCEPT = 4168
++ SYS_BIND = 4169
++ SYS_CONNECT = 4170
++ SYS_GETPEERNAME = 4171
++ SYS_GETSOCKNAME = 4172
++ SYS_GETSOCKOPT = 4173
++ SYS_LISTEN = 4174
++ SYS_RECV = 4175
++ SYS_RECVFROM = 4176
++ SYS_RECVMSG = 4177
++ SYS_SEND = 4178
++ SYS_SENDMSG = 4179
++ SYS_SENDTO = 4180
++ SYS_SETSOCKOPT = 4181
++ SYS_SHUTDOWN = 4182
++ SYS_SOCKET = 4183
++ SYS_SOCKETPAIR = 4184
++ SYS_SETRESUID = 4185
++ SYS_GETRESUID = 4186
++ SYS_QUERY_MODULE = 4187
++ SYS_POLL = 4188
++ SYS_NFSSERVCTL = 4189
++ SYS_SETRESGID = 4190
++ SYS_GETRESGID = 4191
++ SYS_PRCTL = 4192
++ SYS_RT_SIGRETURN = 4193
++ SYS_RT_SIGACTION = 4194
++ SYS_RT_SIGPROCMASK = 4195
++ SYS_RT_SIGPENDING = 4196
++ SYS_RT_SIGTIMEDWAIT = 4197
++ SYS_RT_SIGQUEUEINFO = 4198
++ SYS_RT_SIGSUSPEND = 4199
++ SYS_PREAD64 = 4200
++ SYS_PWRITE64 = 4201
++ SYS_CHOWN = 4202
++ SYS_GETCWD = 4203
++ SYS_CAPGET = 4204
++ SYS_CAPSET = 4205
++ SYS_SIGALTSTACK = 4206
++ SYS_SENDFILE = 4207
++ SYS_GETPMSG = 4208
++ SYS_PUTPMSG = 4209
++ SYS_MMAP2 = 4210
++ SYS_TRUNCATE64 = 4211
++ SYS_FTRUNCATE64 = 4212
++ SYS_STAT64 = 4213
++ SYS_LSTAT64 = 4214
++ SYS_FSTAT64 = 4215
++ SYS_PIVOT_ROOT = 4216
++ SYS_MINCORE = 4217
++ SYS_MADVISE = 4218
++ SYS_GETDENTS64 = 4219
++ SYS_FCNTL64 = 4220
++ SYS_RESERVED221 = 4221
++ SYS_GETTID = 4222
++ SYS_READAHEAD = 4223
++ SYS_SETXATTR = 4224
++ SYS_LSETXATTR = 4225
++ SYS_FSETXATTR = 4226
++ SYS_GETXATTR = 4227
++ SYS_LGETXATTR = 4228
++ SYS_FGETXATTR = 4229
++ SYS_LISTXATTR = 4230
++ SYS_LLISTXATTR = 4231
++ SYS_FLISTXATTR = 4232
++ SYS_REMOVEXATTR = 4233
++ SYS_LREMOVEXATTR = 4234
++ SYS_FREMOVEXATTR = 4235
++ SYS_TKILL = 4236
++ SYS_SENDFILE64 = 4237
++ SYS_FUTEX = 4238
++ SYS_SCHED_SETAFFINITY = 4239
++ SYS_SCHED_GETAFFINITY = 4240
++ SYS_IO_SETUP = 4241
++ SYS_IO_DESTROY = 4242
++ SYS_IO_GETEVENTS = 4243
++ SYS_IO_SUBMIT = 4244
++ SYS_IO_CANCEL = 4245
++ SYS_EXIT_GROUP = 4246
++ SYS_LOOKUP_DCOOKIE = 4247
++ SYS_EPOLL_CREATE = 4248
++ SYS_EPOLL_CTL = 4249
++ SYS_EPOLL_WAIT = 4250
++ SYS_REMAP_FILE_PAGES = 4251
++ SYS_SET_TID_ADDRESS = 4252
++ SYS_RESTART_SYSCALL = 4253
++ SYS_FADVISE64 = 4254
++ SYS_STATFS64 = 4255
++ SYS_FSTATFS64 = 4256
++ SYS_TIMER_CREATE = 4257
++ SYS_TIMER_SETTIME = 4258
++ SYS_TIMER_GETTIME = 4259
++ SYS_TIMER_GETOVERRUN = 4260
++ SYS_TIMER_DELETE = 4261
++ SYS_CLOCK_SETTIME = 4262
++ SYS_CLOCK_GETTIME = 4263
++ SYS_CLOCK_GETRES = 4264
++ SYS_CLOCK_NANOSLEEP = 4265
++ SYS_TGKILL = 4266
++ SYS_UTIMES = 4267
++ SYS_MBIND = 4268
++ SYS_GET_MEMPOLICY = 4269
++ SYS_SET_MEMPOLICY = 4270
++ SYS_MQ_OPEN = 4271
++ SYS_MQ_UNLINK = 4272
++ SYS_MQ_TIMEDSEND = 4273
++ SYS_MQ_TIMEDRECEIVE = 4274
++ SYS_MQ_NOTIFY = 4275
++ SYS_MQ_GETSETATTR = 4276
++ SYS_VSERVER = 4277
++ SYS_WAITID = 4278
++ SYS_ADD_KEY = 4280
++ SYS_REQUEST_KEY = 4281
++ SYS_KEYCTL = 4282
++ SYS_SET_THREAD_AREA = 4283
++ SYS_INOTIFY_INIT = 4284
++ SYS_INOTIFY_ADD_WATCH = 4285
++ SYS_INOTIFY_RM_WATCH = 4286
++ SYS_MIGRATE_PAGES = 4287
++ SYS_OPENAT = 4288
++ SYS_MKDIRAT = 4289
++ SYS_MKNODAT = 4290
++ SYS_FCHOWNAT = 4291
++ SYS_FUTIMESAT = 4292
++ SYS_FSTATAT64 = 4293
++ SYS_UNLINKAT = 4294
++ SYS_RENAMEAT = 4295
++ SYS_LINKAT = 4296
++ SYS_SYMLINKAT = 4297
++ SYS_READLINKAT = 4298
++ SYS_FCHMODAT = 4299
++ SYS_FACCESSAT = 4300
++ SYS_PSELECT6 = 4301
++ SYS_PPOLL = 4302
++ SYS_UNSHARE = 4303
++ SYS_SPLICE = 4304
++ SYS_SYNC_FILE_RANGE = 4305
++ SYS_TEE = 4306
++ SYS_VMSPLICE = 4307
++ SYS_MOVE_PAGES = 4308
++ SYS_SET_ROBUST_LIST = 4309
++ SYS_GET_ROBUST_LIST = 4310
++ SYS_KEXEC_LOAD = 4311
++ SYS_GETCPU = 4312
++ SYS_EPOLL_PWAIT = 4313
++ SYS_IOPRIO_SET = 4314
++ SYS_IOPRIO_GET = 4315
++ SYS_UTIMENSAT = 4316
++ SYS_SIGNALFD = 4317
++ SYS_TIMERFD = 4318
++ SYS_EVENTFD = 4319
++ SYS_FALLOCATE = 4320
++ SYS_TIMERFD_CREATE = 4321
++ SYS_TIMERFD_GETTIME = 4322
++ SYS_TIMERFD_SETTIME = 4323
++ SYS_SIGNALFD4 = 4324
++ SYS_EVENTFD2 = 4325
++ SYS_EPOLL_CREATE1 = 4326
++ SYS_DUP3 = 4327
++ SYS_PIPE2 = 4328
++ SYS_INOTIFY_INIT1 = 4329
++ SYS_PREADV = 4330
++ SYS_PWRITEV = 4331
++ SYS_RT_TGSIGQUEUEINFO = 4332
++ SYS_PERF_EVENT_OPEN = 4333
++ SYS_ACCEPT4 = 4334
++ SYS_RECVMMSG = 4335
++ SYS_FANOTIFY_INIT = 4336
++ SYS_FANOTIFY_MARK = 4337
++ SYS_PRLIMIT64 = 4338
++ SYS_NAME_TO_HANDLE_AT = 4339
++ SYS_OPEN_BY_HANDLE_AT = 4340
++ SYS_CLOCK_ADJTIME = 4341
++ SYS_SYNCFS = 4342
++ SYS_SENDMMSG = 4343
++ SYS_SETNS = 4344
++ SYS_PROCESS_VM_READV = 4345
++ SYS_PROCESS_VM_WRITEV = 4346
++ SYS_KCMP = 4347
++ SYS_FINIT_MODULE = 4348
++ SYS_SCHED_SETATTR = 4349
++ SYS_SCHED_GETATTR = 4350
++ SYS_RENAMEAT2 = 4351
++ SYS_SECCOMP = 4352
++ SYS_GETRANDOM = 4353
++ SYS_MEMFD_CREATE = 4354
++ SYS_BPF = 4355
++ SYS_EXECVEAT = 4356
++ SYS_USERFAULTFD = 4357
++ SYS_MEMBARRIER = 4358
++ SYS_MLOCK2 = 4359
++ SYS_COPY_FILE_RANGE = 4360
++ SYS_PREADV2 = 4361
++ SYS_PWRITEV2 = 4362
++ SYS_PKEY_MPROTECT = 4363
++ SYS_PKEY_ALLOC = 4364
++ SYS_PKEY_FREE = 4365
++ SYS_STATX = 4366
++ SYS_RSEQ = 4367
++ SYS_IO_PGETEVENTS = 4368
++ SYS_SEMGET = 4393
++ SYS_SEMCTL = 4394
++ SYS_SHMGET = 4395
++ SYS_SHMCTL = 4396
++ SYS_SHMAT = 4397
++ SYS_SHMDT = 4398
++ SYS_MSGGET = 4399
++ SYS_MSGSND = 4400
++ SYS_MSGRCV = 4401
++ SYS_MSGCTL = 4402
++ SYS_CLOCK_GETTIME64 = 4403
++ SYS_CLOCK_SETTIME64 = 4404
++ SYS_CLOCK_ADJTIME64 = 4405
++ SYS_CLOCK_GETRES_TIME64 = 4406
++ SYS_CLOCK_NANOSLEEP_TIME64 = 4407
++ SYS_TIMER_GETTIME64 = 4408
++ SYS_TIMER_SETTIME64 = 4409
++ SYS_TIMERFD_GETTIME64 = 4410
++ SYS_TIMERFD_SETTIME64 = 4411
++ SYS_UTIMENSAT_TIME64 = 4412
++ SYS_PSELECT6_TIME64 = 4413
++ SYS_PPOLL_TIME64 = 4414
++ SYS_IO_PGETEVENTS_TIME64 = 4416
++ SYS_RECVMMSG_TIME64 = 4417
++ SYS_MQ_TIMEDSEND_TIME64 = 4418
++ SYS_MQ_TIMEDRECEIVE_TIME64 = 4419
++ SYS_SEMTIMEDOP_TIME64 = 4420
++ SYS_RT_SIGTIMEDWAIT_TIME64 = 4421
++ SYS_FUTEX_TIME64 = 4422
++ SYS_SCHED_RR_GET_INTERVAL_TIME64 = 4423
++ SYS_PIDFD_SEND_SIGNAL = 4424
++ SYS_IO_URING_SETUP = 4425
++ SYS_IO_URING_ENTER = 4426
++ SYS_IO_URING_REGISTER = 4427
++ SYS_OPEN_TREE = 4428
++ SYS_MOVE_MOUNT = 4429
++ SYS_FSOPEN = 4430
++ SYS_FSCONFIG = 4431
++ SYS_FSMOUNT = 4432
++ SYS_FSPICK = 4433
++ SYS_PIDFD_OPEN = 4434
++ SYS_CLONE3 = 4435
++ SYS_OPENAT2 = 4437
++ SYS_PIDFD_GETFD = 4438
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go
+index 09db9596..4e525118 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go
+@@ -1,4 +1,4 @@
+-// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
++// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build mips64,linux
+@@ -331,4 +331,21 @@ const (
+ SYS_PKEY_MPROTECT = 5323
+ SYS_PKEY_ALLOC = 5324
+ SYS_PKEY_FREE = 5325
++ SYS_STATX = 5326
++ SYS_RSEQ = 5327
++ SYS_IO_PGETEVENTS = 5328
++ SYS_PIDFD_SEND_SIGNAL = 5424
++ SYS_IO_URING_SETUP = 5425
++ SYS_IO_URING_ENTER = 5426
++ SYS_IO_URING_REGISTER = 5427
++ SYS_OPEN_TREE = 5428
++ SYS_MOVE_MOUNT = 5429
++ SYS_FSOPEN = 5430
++ SYS_FSCONFIG = 5431
++ SYS_FSMOUNT = 5432
++ SYS_FSPICK = 5433
++ SYS_PIDFD_OPEN = 5434
++ SYS_CLONE3 = 5435
++ SYS_OPENAT2 = 5437
++ SYS_PIDFD_GETFD = 5438
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go
+index d1b872a0..4d9aa300 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go
+@@ -1,4 +1,4 @@
+-// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
++// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build mips64le,linux
+@@ -331,4 +331,21 @@ const (
+ SYS_PKEY_MPROTECT = 5323
+ SYS_PKEY_ALLOC = 5324
+ SYS_PKEY_FREE = 5325
++ SYS_STATX = 5326
++ SYS_RSEQ = 5327
++ SYS_IO_PGETEVENTS = 5328
++ SYS_PIDFD_SEND_SIGNAL = 5424
++ SYS_IO_URING_SETUP = 5425
++ SYS_IO_URING_ENTER = 5426
++ SYS_IO_URING_REGISTER = 5427
++ SYS_OPEN_TREE = 5428
++ SYS_MOVE_MOUNT = 5429
++ SYS_FSOPEN = 5430
++ SYS_FSCONFIG = 5431
++ SYS_FSMOUNT = 5432
++ SYS_FSPICK = 5433
++ SYS_PIDFD_OPEN = 5434
++ SYS_CLONE3 = 5435
++ SYS_OPENAT2 = 5437
++ SYS_PIDFD_GETFD = 5438
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go
+index 82ba20f2..64af0707 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go
+@@ -1,4 +1,4 @@
+-// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
++// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build mipsle,linux
+@@ -6,369 +6,416 @@
+ package unix
+
+ const (
+- SYS_SYSCALL = 4000
+- SYS_EXIT = 4001
+- SYS_FORK = 4002
+- SYS_READ = 4003
+- SYS_WRITE = 4004
+- SYS_OPEN = 4005
+- SYS_CLOSE = 4006
+- SYS_WAITPID = 4007
+- SYS_CREAT = 4008
+- SYS_LINK = 4009
+- SYS_UNLINK = 4010
+- SYS_EXECVE = 4011
+- SYS_CHDIR = 4012
+- SYS_TIME = 4013
+- SYS_MKNOD = 4014
+- SYS_CHMOD = 4015
+- SYS_LCHOWN = 4016
+- SYS_BREAK = 4017
+- SYS_UNUSED18 = 4018
+- SYS_LSEEK = 4019
+- SYS_GETPID = 4020
+- SYS_MOUNT = 4021
+- SYS_UMOUNT = 4022
+- SYS_SETUID = 4023
+- SYS_GETUID = 4024
+- SYS_STIME = 4025
+- SYS_PTRACE = 4026
+- SYS_ALARM = 4027
+- SYS_UNUSED28 = 4028
+- SYS_PAUSE = 4029
+- SYS_UTIME = 4030
+- SYS_STTY = 4031
+- SYS_GTTY = 4032
+- SYS_ACCESS = 4033
+- SYS_NICE = 4034
+- SYS_FTIME = 4035
+- SYS_SYNC = 4036
+- SYS_KILL = 4037
+- SYS_RENAME = 4038
+- SYS_MKDIR = 4039
+- SYS_RMDIR = 4040
+- SYS_DUP = 4041
+- SYS_PIPE = 4042
+- SYS_TIMES = 4043
+- SYS_PROF = 4044
+- SYS_BRK = 4045
+- SYS_SETGID = 4046
+- SYS_GETGID = 4047
+- SYS_SIGNAL = 4048
+- SYS_GETEUID = 4049
+- SYS_GETEGID = 4050
+- SYS_ACCT = 4051
+- SYS_UMOUNT2 = 4052
+- SYS_LOCK = 4053
+- SYS_IOCTL = 4054
+- SYS_FCNTL = 4055
+- SYS_MPX = 4056
+- SYS_SETPGID = 4057
+- SYS_ULIMIT = 4058
+- SYS_UNUSED59 = 4059
+- SYS_UMASK = 4060
+- SYS_CHROOT = 4061
+- SYS_USTAT = 4062
+- SYS_DUP2 = 4063
+- SYS_GETPPID = 4064
+- SYS_GETPGRP = 4065
+- SYS_SETSID = 4066
+- SYS_SIGACTION = 4067
+- SYS_SGETMASK = 4068
+- SYS_SSETMASK = 4069
+- SYS_SETREUID = 4070
+- SYS_SETREGID = 4071
+- SYS_SIGSUSPEND = 4072
+- SYS_SIGPENDING = 4073
+- SYS_SETHOSTNAME = 4074
+- SYS_SETRLIMIT = 4075
+- SYS_GETRLIMIT = 4076
+- SYS_GETRUSAGE = 4077
+- SYS_GETTIMEOFDAY = 4078
+- SYS_SETTIMEOFDAY = 4079
+- SYS_GETGROUPS = 4080
+- SYS_SETGROUPS = 4081
+- SYS_RESERVED82 = 4082
+- SYS_SYMLINK = 4083
+- SYS_UNUSED84 = 4084
+- SYS_READLINK = 4085
+- SYS_USELIB = 4086
+- SYS_SWAPON = 4087
+- SYS_REBOOT = 4088
+- SYS_READDIR = 4089
+- SYS_MMAP = 4090
+- SYS_MUNMAP = 4091
+- SYS_TRUNCATE = 4092
+- SYS_FTRUNCATE = 4093
+- SYS_FCHMOD = 4094
+- SYS_FCHOWN = 4095
+- SYS_GETPRIORITY = 4096
+- SYS_SETPRIORITY = 4097
+- SYS_PROFIL = 4098
+- SYS_STATFS = 4099
+- SYS_FSTATFS = 4100
+- SYS_IOPERM = 4101
+- SYS_SOCKETCALL = 4102
+- SYS_SYSLOG = 4103
+- SYS_SETITIMER = 4104
+- SYS_GETITIMER = 4105
+- SYS_STAT = 4106
+- SYS_LSTAT = 4107
+- SYS_FSTAT = 4108
+- SYS_UNUSED109 = 4109
+- SYS_IOPL = 4110
+- SYS_VHANGUP = 4111
+- SYS_IDLE = 4112
+- SYS_VM86 = 4113
+- SYS_WAIT4 = 4114
+- SYS_SWAPOFF = 4115
+- SYS_SYSINFO = 4116
+- SYS_IPC = 4117
+- SYS_FSYNC = 4118
+- SYS_SIGRETURN = 4119
+- SYS_CLONE = 4120
+- SYS_SETDOMAINNAME = 4121
+- SYS_UNAME = 4122
+- SYS_MODIFY_LDT = 4123
+- SYS_ADJTIMEX = 4124
+- SYS_MPROTECT = 4125
+- SYS_SIGPROCMASK = 4126
+- SYS_CREATE_MODULE = 4127
+- SYS_INIT_MODULE = 4128
+- SYS_DELETE_MODULE = 4129
+- SYS_GET_KERNEL_SYMS = 4130
+- SYS_QUOTACTL = 4131
+- SYS_GETPGID = 4132
+- SYS_FCHDIR = 4133
+- SYS_BDFLUSH = 4134
+- SYS_SYSFS = 4135
+- SYS_PERSONALITY = 4136
+- SYS_AFS_SYSCALL = 4137
+- SYS_SETFSUID = 4138
+- SYS_SETFSGID = 4139
+- SYS__LLSEEK = 4140
+- SYS_GETDENTS = 4141
+- SYS__NEWSELECT = 4142
+- SYS_FLOCK = 4143
+- SYS_MSYNC = 4144
+- SYS_READV = 4145
+- SYS_WRITEV = 4146
+- SYS_CACHEFLUSH = 4147
+- SYS_CACHECTL = 4148
+- SYS_SYSMIPS = 4149
+- SYS_UNUSED150 = 4150
+- SYS_GETSID = 4151
+- SYS_FDATASYNC = 4152
+- SYS__SYSCTL = 4153
+- SYS_MLOCK = 4154
+- SYS_MUNLOCK = 4155
+- SYS_MLOCKALL = 4156
+- SYS_MUNLOCKALL = 4157
+- SYS_SCHED_SETPARAM = 4158
+- SYS_SCHED_GETPARAM = 4159
+- SYS_SCHED_SETSCHEDULER = 4160
+- SYS_SCHED_GETSCHEDULER = 4161
+- SYS_SCHED_YIELD = 4162
+- SYS_SCHED_GET_PRIORITY_MAX = 4163
+- SYS_SCHED_GET_PRIORITY_MIN = 4164
+- SYS_SCHED_RR_GET_INTERVAL = 4165
+- SYS_NANOSLEEP = 4166
+- SYS_MREMAP = 4167
+- SYS_ACCEPT = 4168
+- SYS_BIND = 4169
+- SYS_CONNECT = 4170
+- SYS_GETPEERNAME = 4171
+- SYS_GETSOCKNAME = 4172
+- SYS_GETSOCKOPT = 4173
+- SYS_LISTEN = 4174
+- SYS_RECV = 4175
+- SYS_RECVFROM = 4176
+- SYS_RECVMSG = 4177
+- SYS_SEND = 4178
+- SYS_SENDMSG = 4179
+- SYS_SENDTO = 4180
+- SYS_SETSOCKOPT = 4181
+- SYS_SHUTDOWN = 4182
+- SYS_SOCKET = 4183
+- SYS_SOCKETPAIR = 4184
+- SYS_SETRESUID = 4185
+- SYS_GETRESUID = 4186
+- SYS_QUERY_MODULE = 4187
+- SYS_POLL = 4188
+- SYS_NFSSERVCTL = 4189
+- SYS_SETRESGID = 4190
+- SYS_GETRESGID = 4191
+- SYS_PRCTL = 4192
+- SYS_RT_SIGRETURN = 4193
+- SYS_RT_SIGACTION = 4194
+- SYS_RT_SIGPROCMASK = 4195
+- SYS_RT_SIGPENDING = 4196
+- SYS_RT_SIGTIMEDWAIT = 4197
+- SYS_RT_SIGQUEUEINFO = 4198
+- SYS_RT_SIGSUSPEND = 4199
+- SYS_PREAD64 = 4200
+- SYS_PWRITE64 = 4201
+- SYS_CHOWN = 4202
+- SYS_GETCWD = 4203
+- SYS_CAPGET = 4204
+- SYS_CAPSET = 4205
+- SYS_SIGALTSTACK = 4206
+- SYS_SENDFILE = 4207
+- SYS_GETPMSG = 4208
+- SYS_PUTPMSG = 4209
+- SYS_MMAP2 = 4210
+- SYS_TRUNCATE64 = 4211
+- SYS_FTRUNCATE64 = 4212
+- SYS_STAT64 = 4213
+- SYS_LSTAT64 = 4214
+- SYS_FSTAT64 = 4215
+- SYS_PIVOT_ROOT = 4216
+- SYS_MINCORE = 4217
+- SYS_MADVISE = 4218
+- SYS_GETDENTS64 = 4219
+- SYS_FCNTL64 = 4220
+- SYS_RESERVED221 = 4221
+- SYS_GETTID = 4222
+- SYS_READAHEAD = 4223
+- SYS_SETXATTR = 4224
+- SYS_LSETXATTR = 4225
+- SYS_FSETXATTR = 4226
+- SYS_GETXATTR = 4227
+- SYS_LGETXATTR = 4228
+- SYS_FGETXATTR = 4229
+- SYS_LISTXATTR = 4230
+- SYS_LLISTXATTR = 4231
+- SYS_FLISTXATTR = 4232
+- SYS_REMOVEXATTR = 4233
+- SYS_LREMOVEXATTR = 4234
+- SYS_FREMOVEXATTR = 4235
+- SYS_TKILL = 4236
+- SYS_SENDFILE64 = 4237
+- SYS_FUTEX = 4238
+- SYS_SCHED_SETAFFINITY = 4239
+- SYS_SCHED_GETAFFINITY = 4240
+- SYS_IO_SETUP = 4241
+- SYS_IO_DESTROY = 4242
+- SYS_IO_GETEVENTS = 4243
+- SYS_IO_SUBMIT = 4244
+- SYS_IO_CANCEL = 4245
+- SYS_EXIT_GROUP = 4246
+- SYS_LOOKUP_DCOOKIE = 4247
+- SYS_EPOLL_CREATE = 4248
+- SYS_EPOLL_CTL = 4249
+- SYS_EPOLL_WAIT = 4250
+- SYS_REMAP_FILE_PAGES = 4251
+- SYS_SET_TID_ADDRESS = 4252
+- SYS_RESTART_SYSCALL = 4253
+- SYS_FADVISE64 = 4254
+- SYS_STATFS64 = 4255
+- SYS_FSTATFS64 = 4256
+- SYS_TIMER_CREATE = 4257
+- SYS_TIMER_SETTIME = 4258
+- SYS_TIMER_GETTIME = 4259
+- SYS_TIMER_GETOVERRUN = 4260
+- SYS_TIMER_DELETE = 4261
+- SYS_CLOCK_SETTIME = 4262
+- SYS_CLOCK_GETTIME = 4263
+- SYS_CLOCK_GETRES = 4264
+- SYS_CLOCK_NANOSLEEP = 4265
+- SYS_TGKILL = 4266
+- SYS_UTIMES = 4267
+- SYS_MBIND = 4268
+- SYS_GET_MEMPOLICY = 4269
+- SYS_SET_MEMPOLICY = 4270
+- SYS_MQ_OPEN = 4271
+- SYS_MQ_UNLINK = 4272
+- SYS_MQ_TIMEDSEND = 4273
+- SYS_MQ_TIMEDRECEIVE = 4274
+- SYS_MQ_NOTIFY = 4275
+- SYS_MQ_GETSETATTR = 4276
+- SYS_VSERVER = 4277
+- SYS_WAITID = 4278
+- SYS_ADD_KEY = 4280
+- SYS_REQUEST_KEY = 4281
+- SYS_KEYCTL = 4282
+- SYS_SET_THREAD_AREA = 4283
+- SYS_INOTIFY_INIT = 4284
+- SYS_INOTIFY_ADD_WATCH = 4285
+- SYS_INOTIFY_RM_WATCH = 4286
+- SYS_MIGRATE_PAGES = 4287
+- SYS_OPENAT = 4288
+- SYS_MKDIRAT = 4289
+- SYS_MKNODAT = 4290
+- SYS_FCHOWNAT = 4291
+- SYS_FUTIMESAT = 4292
+- SYS_FSTATAT64 = 4293
+- SYS_UNLINKAT = 4294
+- SYS_RENAMEAT = 4295
+- SYS_LINKAT = 4296
+- SYS_SYMLINKAT = 4297
+- SYS_READLINKAT = 4298
+- SYS_FCHMODAT = 4299
+- SYS_FACCESSAT = 4300
+- SYS_PSELECT6 = 4301
+- SYS_PPOLL = 4302
+- SYS_UNSHARE = 4303
+- SYS_SPLICE = 4304
+- SYS_SYNC_FILE_RANGE = 4305
+- SYS_TEE = 4306
+- SYS_VMSPLICE = 4307
+- SYS_MOVE_PAGES = 4308
+- SYS_SET_ROBUST_LIST = 4309
+- SYS_GET_ROBUST_LIST = 4310
+- SYS_KEXEC_LOAD = 4311
+- SYS_GETCPU = 4312
+- SYS_EPOLL_PWAIT = 4313
+- SYS_IOPRIO_SET = 4314
+- SYS_IOPRIO_GET = 4315
+- SYS_UTIMENSAT = 4316
+- SYS_SIGNALFD = 4317
+- SYS_TIMERFD = 4318
+- SYS_EVENTFD = 4319
+- SYS_FALLOCATE = 4320
+- SYS_TIMERFD_CREATE = 4321
+- SYS_TIMERFD_GETTIME = 4322
+- SYS_TIMERFD_SETTIME = 4323
+- SYS_SIGNALFD4 = 4324
+- SYS_EVENTFD2 = 4325
+- SYS_EPOLL_CREATE1 = 4326
+- SYS_DUP3 = 4327
+- SYS_PIPE2 = 4328
+- SYS_INOTIFY_INIT1 = 4329
+- SYS_PREADV = 4330
+- SYS_PWRITEV = 4331
+- SYS_RT_TGSIGQUEUEINFO = 4332
+- SYS_PERF_EVENT_OPEN = 4333
+- SYS_ACCEPT4 = 4334
+- SYS_RECVMMSG = 4335
+- SYS_FANOTIFY_INIT = 4336
+- SYS_FANOTIFY_MARK = 4337
+- SYS_PRLIMIT64 = 4338
+- SYS_NAME_TO_HANDLE_AT = 4339
+- SYS_OPEN_BY_HANDLE_AT = 4340
+- SYS_CLOCK_ADJTIME = 4341
+- SYS_SYNCFS = 4342
+- SYS_SENDMMSG = 4343
+- SYS_SETNS = 4344
+- SYS_PROCESS_VM_READV = 4345
+- SYS_PROCESS_VM_WRITEV = 4346
+- SYS_KCMP = 4347
+- SYS_FINIT_MODULE = 4348
+- SYS_SCHED_SETATTR = 4349
+- SYS_SCHED_GETATTR = 4350
+- SYS_RENAMEAT2 = 4351
+- SYS_SECCOMP = 4352
+- SYS_GETRANDOM = 4353
+- SYS_MEMFD_CREATE = 4354
+- SYS_BPF = 4355
+- SYS_EXECVEAT = 4356
+- SYS_USERFAULTFD = 4357
+- SYS_MEMBARRIER = 4358
+- SYS_MLOCK2 = 4359
+- SYS_COPY_FILE_RANGE = 4360
+- SYS_PREADV2 = 4361
+- SYS_PWRITEV2 = 4362
+- SYS_PKEY_MPROTECT = 4363
+- SYS_PKEY_ALLOC = 4364
+- SYS_PKEY_FREE = 4365
++ SYS_SYSCALL = 4000
++ SYS_EXIT = 4001
++ SYS_FORK = 4002
++ SYS_READ = 4003
++ SYS_WRITE = 4004
++ SYS_OPEN = 4005
++ SYS_CLOSE = 4006
++ SYS_WAITPID = 4007
++ SYS_CREAT = 4008
++ SYS_LINK = 4009
++ SYS_UNLINK = 4010
++ SYS_EXECVE = 4011
++ SYS_CHDIR = 4012
++ SYS_TIME = 4013
++ SYS_MKNOD = 4014
++ SYS_CHMOD = 4015
++ SYS_LCHOWN = 4016
++ SYS_BREAK = 4017
++ SYS_UNUSED18 = 4018
++ SYS_LSEEK = 4019
++ SYS_GETPID = 4020
++ SYS_MOUNT = 4021
++ SYS_UMOUNT = 4022
++ SYS_SETUID = 4023
++ SYS_GETUID = 4024
++ SYS_STIME = 4025
++ SYS_PTRACE = 4026
++ SYS_ALARM = 4027
++ SYS_UNUSED28 = 4028
++ SYS_PAUSE = 4029
++ SYS_UTIME = 4030
++ SYS_STTY = 4031
++ SYS_GTTY = 4032
++ SYS_ACCESS = 4033
++ SYS_NICE = 4034
++ SYS_FTIME = 4035
++ SYS_SYNC = 4036
++ SYS_KILL = 4037
++ SYS_RENAME = 4038
++ SYS_MKDIR = 4039
++ SYS_RMDIR = 4040
++ SYS_DUP = 4041
++ SYS_PIPE = 4042
++ SYS_TIMES = 4043
++ SYS_PROF = 4044
++ SYS_BRK = 4045
++ SYS_SETGID = 4046
++ SYS_GETGID = 4047
++ SYS_SIGNAL = 4048
++ SYS_GETEUID = 4049
++ SYS_GETEGID = 4050
++ SYS_ACCT = 4051
++ SYS_UMOUNT2 = 4052
++ SYS_LOCK = 4053
++ SYS_IOCTL = 4054
++ SYS_FCNTL = 4055
++ SYS_MPX = 4056
++ SYS_SETPGID = 4057
++ SYS_ULIMIT = 4058
++ SYS_UNUSED59 = 4059
++ SYS_UMASK = 4060
++ SYS_CHROOT = 4061
++ SYS_USTAT = 4062
++ SYS_DUP2 = 4063
++ SYS_GETPPID = 4064
++ SYS_GETPGRP = 4065
++ SYS_SETSID = 4066
++ SYS_SIGACTION = 4067
++ SYS_SGETMASK = 4068
++ SYS_SSETMASK = 4069
++ SYS_SETREUID = 4070
++ SYS_SETREGID = 4071
++ SYS_SIGSUSPEND = 4072
++ SYS_SIGPENDING = 4073
++ SYS_SETHOSTNAME = 4074
++ SYS_SETRLIMIT = 4075
++ SYS_GETRLIMIT = 4076
++ SYS_GETRUSAGE = 4077
++ SYS_GETTIMEOFDAY = 4078
++ SYS_SETTIMEOFDAY = 4079
++ SYS_GETGROUPS = 4080
++ SYS_SETGROUPS = 4081
++ SYS_RESERVED82 = 4082
++ SYS_SYMLINK = 4083
++ SYS_UNUSED84 = 4084
++ SYS_READLINK = 4085
++ SYS_USELIB = 4086
++ SYS_SWAPON = 4087
++ SYS_REBOOT = 4088
++ SYS_READDIR = 4089
++ SYS_MMAP = 4090
++ SYS_MUNMAP = 4091
++ SYS_TRUNCATE = 4092
++ SYS_FTRUNCATE = 4093
++ SYS_FCHMOD = 4094
++ SYS_FCHOWN = 4095
++ SYS_GETPRIORITY = 4096
++ SYS_SETPRIORITY = 4097
++ SYS_PROFIL = 4098
++ SYS_STATFS = 4099
++ SYS_FSTATFS = 4100
++ SYS_IOPERM = 4101
++ SYS_SOCKETCALL = 4102
++ SYS_SYSLOG = 4103
++ SYS_SETITIMER = 4104
++ SYS_GETITIMER = 4105
++ SYS_STAT = 4106
++ SYS_LSTAT = 4107
++ SYS_FSTAT = 4108
++ SYS_UNUSED109 = 4109
++ SYS_IOPL = 4110
++ SYS_VHANGUP = 4111
++ SYS_IDLE = 4112
++ SYS_VM86 = 4113
++ SYS_WAIT4 = 4114
++ SYS_SWAPOFF = 4115
++ SYS_SYSINFO = 4116
++ SYS_IPC = 4117
++ SYS_FSYNC = 4118
++ SYS_SIGRETURN = 4119
++ SYS_CLONE = 4120
++ SYS_SETDOMAINNAME = 4121
++ SYS_UNAME = 4122
++ SYS_MODIFY_LDT = 4123
++ SYS_ADJTIMEX = 4124
++ SYS_MPROTECT = 4125
++ SYS_SIGPROCMASK = 4126
++ SYS_CREATE_MODULE = 4127
++ SYS_INIT_MODULE = 4128
++ SYS_DELETE_MODULE = 4129
++ SYS_GET_KERNEL_SYMS = 4130
++ SYS_QUOTACTL = 4131
++ SYS_GETPGID = 4132
++ SYS_FCHDIR = 4133
++ SYS_BDFLUSH = 4134
++ SYS_SYSFS = 4135
++ SYS_PERSONALITY = 4136
++ SYS_AFS_SYSCALL = 4137
++ SYS_SETFSUID = 4138
++ SYS_SETFSGID = 4139
++ SYS__LLSEEK = 4140
++ SYS_GETDENTS = 4141
++ SYS__NEWSELECT = 4142
++ SYS_FLOCK = 4143
++ SYS_MSYNC = 4144
++ SYS_READV = 4145
++ SYS_WRITEV = 4146
++ SYS_CACHEFLUSH = 4147
++ SYS_CACHECTL = 4148
++ SYS_SYSMIPS = 4149
++ SYS_UNUSED150 = 4150
++ SYS_GETSID = 4151
++ SYS_FDATASYNC = 4152
++ SYS__SYSCTL = 4153
++ SYS_MLOCK = 4154
++ SYS_MUNLOCK = 4155
++ SYS_MLOCKALL = 4156
++ SYS_MUNLOCKALL = 4157
++ SYS_SCHED_SETPARAM = 4158
++ SYS_SCHED_GETPARAM = 4159
++ SYS_SCHED_SETSCHEDULER = 4160
++ SYS_SCHED_GETSCHEDULER = 4161
++ SYS_SCHED_YIELD = 4162
++ SYS_SCHED_GET_PRIORITY_MAX = 4163
++ SYS_SCHED_GET_PRIORITY_MIN = 4164
++ SYS_SCHED_RR_GET_INTERVAL = 4165
++ SYS_NANOSLEEP = 4166
++ SYS_MREMAP = 4167
++ SYS_ACCEPT = 4168
++ SYS_BIND = 4169
++ SYS_CONNECT = 4170
++ SYS_GETPEERNAME = 4171
++ SYS_GETSOCKNAME = 4172
++ SYS_GETSOCKOPT = 4173
++ SYS_LISTEN = 4174
++ SYS_RECV = 4175
++ SYS_RECVFROM = 4176
++ SYS_RECVMSG = 4177
++ SYS_SEND = 4178
++ SYS_SENDMSG = 4179
++ SYS_SENDTO = 4180
++ SYS_SETSOCKOPT = 4181
++ SYS_SHUTDOWN = 4182
++ SYS_SOCKET = 4183
++ SYS_SOCKETPAIR = 4184
++ SYS_SETRESUID = 4185
++ SYS_GETRESUID = 4186
++ SYS_QUERY_MODULE = 4187
++ SYS_POLL = 4188
++ SYS_NFSSERVCTL = 4189
++ SYS_SETRESGID = 4190
++ SYS_GETRESGID = 4191
++ SYS_PRCTL = 4192
++ SYS_RT_SIGRETURN = 4193
++ SYS_RT_SIGACTION = 4194
++ SYS_RT_SIGPROCMASK = 4195
++ SYS_RT_SIGPENDING = 4196
++ SYS_RT_SIGTIMEDWAIT = 4197
++ SYS_RT_SIGQUEUEINFO = 4198
++ SYS_RT_SIGSUSPEND = 4199
++ SYS_PREAD64 = 4200
++ SYS_PWRITE64 = 4201
++ SYS_CHOWN = 4202
++ SYS_GETCWD = 4203
++ SYS_CAPGET = 4204
++ SYS_CAPSET = 4205
++ SYS_SIGALTSTACK = 4206
++ SYS_SENDFILE = 4207
++ SYS_GETPMSG = 4208
++ SYS_PUTPMSG = 4209
++ SYS_MMAP2 = 4210
++ SYS_TRUNCATE64 = 4211
++ SYS_FTRUNCATE64 = 4212
++ SYS_STAT64 = 4213
++ SYS_LSTAT64 = 4214
++ SYS_FSTAT64 = 4215
++ SYS_PIVOT_ROOT = 4216
++ SYS_MINCORE = 4217
++ SYS_MADVISE = 4218
++ SYS_GETDENTS64 = 4219
++ SYS_FCNTL64 = 4220
++ SYS_RESERVED221 = 4221
++ SYS_GETTID = 4222
++ SYS_READAHEAD = 4223
++ SYS_SETXATTR = 4224
++ SYS_LSETXATTR = 4225
++ SYS_FSETXATTR = 4226
++ SYS_GETXATTR = 4227
++ SYS_LGETXATTR = 4228
++ SYS_FGETXATTR = 4229
++ SYS_LISTXATTR = 4230
++ SYS_LLISTXATTR = 4231
++ SYS_FLISTXATTR = 4232
++ SYS_REMOVEXATTR = 4233
++ SYS_LREMOVEXATTR = 4234
++ SYS_FREMOVEXATTR = 4235
++ SYS_TKILL = 4236
++ SYS_SENDFILE64 = 4237
++ SYS_FUTEX = 4238
++ SYS_SCHED_SETAFFINITY = 4239
++ SYS_SCHED_GETAFFINITY = 4240
++ SYS_IO_SETUP = 4241
++ SYS_IO_DESTROY = 4242
++ SYS_IO_GETEVENTS = 4243
++ SYS_IO_SUBMIT = 4244
++ SYS_IO_CANCEL = 4245
++ SYS_EXIT_GROUP = 4246
++ SYS_LOOKUP_DCOOKIE = 4247
++ SYS_EPOLL_CREATE = 4248
++ SYS_EPOLL_CTL = 4249
++ SYS_EPOLL_WAIT = 4250
++ SYS_REMAP_FILE_PAGES = 4251
++ SYS_SET_TID_ADDRESS = 4252
++ SYS_RESTART_SYSCALL = 4253
++ SYS_FADVISE64 = 4254
++ SYS_STATFS64 = 4255
++ SYS_FSTATFS64 = 4256
++ SYS_TIMER_CREATE = 4257
++ SYS_TIMER_SETTIME = 4258
++ SYS_TIMER_GETTIME = 4259
++ SYS_TIMER_GETOVERRUN = 4260
++ SYS_TIMER_DELETE = 4261
++ SYS_CLOCK_SETTIME = 4262
++ SYS_CLOCK_GETTIME = 4263
++ SYS_CLOCK_GETRES = 4264
++ SYS_CLOCK_NANOSLEEP = 4265
++ SYS_TGKILL = 4266
++ SYS_UTIMES = 4267
++ SYS_MBIND = 4268
++ SYS_GET_MEMPOLICY = 4269
++ SYS_SET_MEMPOLICY = 4270
++ SYS_MQ_OPEN = 4271
++ SYS_MQ_UNLINK = 4272
++ SYS_MQ_TIMEDSEND = 4273
++ SYS_MQ_TIMEDRECEIVE = 4274
++ SYS_MQ_NOTIFY = 4275
++ SYS_MQ_GETSETATTR = 4276
++ SYS_VSERVER = 4277
++ SYS_WAITID = 4278
++ SYS_ADD_KEY = 4280
++ SYS_REQUEST_KEY = 4281
++ SYS_KEYCTL = 4282
++ SYS_SET_THREAD_AREA = 4283
++ SYS_INOTIFY_INIT = 4284
++ SYS_INOTIFY_ADD_WATCH = 4285
++ SYS_INOTIFY_RM_WATCH = 4286
++ SYS_MIGRATE_PAGES = 4287
++ SYS_OPENAT = 4288
++ SYS_MKDIRAT = 4289
++ SYS_MKNODAT = 4290
++ SYS_FCHOWNAT = 4291
++ SYS_FUTIMESAT = 4292
++ SYS_FSTATAT64 = 4293
++ SYS_UNLINKAT = 4294
++ SYS_RENAMEAT = 4295
++ SYS_LINKAT = 4296
++ SYS_SYMLINKAT = 4297
++ SYS_READLINKAT = 4298
++ SYS_FCHMODAT = 4299
++ SYS_FACCESSAT = 4300
++ SYS_PSELECT6 = 4301
++ SYS_PPOLL = 4302
++ SYS_UNSHARE = 4303
++ SYS_SPLICE = 4304
++ SYS_SYNC_FILE_RANGE = 4305
++ SYS_TEE = 4306
++ SYS_VMSPLICE = 4307
++ SYS_MOVE_PAGES = 4308
++ SYS_SET_ROBUST_LIST = 4309
++ SYS_GET_ROBUST_LIST = 4310
++ SYS_KEXEC_LOAD = 4311
++ SYS_GETCPU = 4312
++ SYS_EPOLL_PWAIT = 4313
++ SYS_IOPRIO_SET = 4314
++ SYS_IOPRIO_GET = 4315
++ SYS_UTIMENSAT = 4316
++ SYS_SIGNALFD = 4317
++ SYS_TIMERFD = 4318
++ SYS_EVENTFD = 4319
++ SYS_FALLOCATE = 4320
++ SYS_TIMERFD_CREATE = 4321
++ SYS_TIMERFD_GETTIME = 4322
++ SYS_TIMERFD_SETTIME = 4323
++ SYS_SIGNALFD4 = 4324
++ SYS_EVENTFD2 = 4325
++ SYS_EPOLL_CREATE1 = 4326
++ SYS_DUP3 = 4327
++ SYS_PIPE2 = 4328
++ SYS_INOTIFY_INIT1 = 4329
++ SYS_PREADV = 4330
++ SYS_PWRITEV = 4331
++ SYS_RT_TGSIGQUEUEINFO = 4332
++ SYS_PERF_EVENT_OPEN = 4333
++ SYS_ACCEPT4 = 4334
++ SYS_RECVMMSG = 4335
++ SYS_FANOTIFY_INIT = 4336
++ SYS_FANOTIFY_MARK = 4337
++ SYS_PRLIMIT64 = 4338
++ SYS_NAME_TO_HANDLE_AT = 4339
++ SYS_OPEN_BY_HANDLE_AT = 4340
++ SYS_CLOCK_ADJTIME = 4341
++ SYS_SYNCFS = 4342
++ SYS_SENDMMSG = 4343
++ SYS_SETNS = 4344
++ SYS_PROCESS_VM_READV = 4345
++ SYS_PROCESS_VM_WRITEV = 4346
++ SYS_KCMP = 4347
++ SYS_FINIT_MODULE = 4348
++ SYS_SCHED_SETATTR = 4349
++ SYS_SCHED_GETATTR = 4350
++ SYS_RENAMEAT2 = 4351
++ SYS_SECCOMP = 4352
++ SYS_GETRANDOM = 4353
++ SYS_MEMFD_CREATE = 4354
++ SYS_BPF = 4355
++ SYS_EXECVEAT = 4356
++ SYS_USERFAULTFD = 4357
++ SYS_MEMBARRIER = 4358
++ SYS_MLOCK2 = 4359
++ SYS_COPY_FILE_RANGE = 4360
++ SYS_PREADV2 = 4361
++ SYS_PWRITEV2 = 4362
++ SYS_PKEY_MPROTECT = 4363
++ SYS_PKEY_ALLOC = 4364
++ SYS_PKEY_FREE = 4365
++ SYS_STATX = 4366
++ SYS_RSEQ = 4367
++ SYS_IO_PGETEVENTS = 4368
++ SYS_SEMGET = 4393
++ SYS_SEMCTL = 4394
++ SYS_SHMGET = 4395
++ SYS_SHMCTL = 4396
++ SYS_SHMAT = 4397
++ SYS_SHMDT = 4398
++ SYS_MSGGET = 4399
++ SYS_MSGSND = 4400
++ SYS_MSGRCV = 4401
++ SYS_MSGCTL = 4402
++ SYS_CLOCK_GETTIME64 = 4403
++ SYS_CLOCK_SETTIME64 = 4404
++ SYS_CLOCK_ADJTIME64 = 4405
++ SYS_CLOCK_GETRES_TIME64 = 4406
++ SYS_CLOCK_NANOSLEEP_TIME64 = 4407
++ SYS_TIMER_GETTIME64 = 4408
++ SYS_TIMER_SETTIME64 = 4409
++ SYS_TIMERFD_GETTIME64 = 4410
++ SYS_TIMERFD_SETTIME64 = 4411
++ SYS_UTIMENSAT_TIME64 = 4412
++ SYS_PSELECT6_TIME64 = 4413
++ SYS_PPOLL_TIME64 = 4414
++ SYS_IO_PGETEVENTS_TIME64 = 4416
++ SYS_RECVMMSG_TIME64 = 4417
++ SYS_MQ_TIMEDSEND_TIME64 = 4418
++ SYS_MQ_TIMEDRECEIVE_TIME64 = 4419
++ SYS_SEMTIMEDOP_TIME64 = 4420
++ SYS_RT_SIGTIMEDWAIT_TIME64 = 4421
++ SYS_FUTEX_TIME64 = 4422
++ SYS_SCHED_RR_GET_INTERVAL_TIME64 = 4423
++ SYS_PIDFD_SEND_SIGNAL = 4424
++ SYS_IO_URING_SETUP = 4425
++ SYS_IO_URING_ENTER = 4426
++ SYS_IO_URING_REGISTER = 4427
++ SYS_OPEN_TREE = 4428
++ SYS_MOVE_MOUNT = 4429
++ SYS_FSOPEN = 4430
++ SYS_FSCONFIG = 4431
++ SYS_FSMOUNT = 4432
++ SYS_FSPICK = 4433
++ SYS_PIDFD_OPEN = 4434
++ SYS_CLONE3 = 4435
++ SYS_OPENAT2 = 4437
++ SYS_PIDFD_GETFD = 4438
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go
+index 8944448a..cc3c067b 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go
+@@ -1,4 +1,4 @@
+-// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
++// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build ppc64,linux
+@@ -366,4 +366,35 @@ const (
+ SYS_PREADV2 = 380
+ SYS_PWRITEV2 = 381
+ SYS_KEXEC_FILE_LOAD = 382
++ SYS_STATX = 383
++ SYS_PKEY_ALLOC = 384
++ SYS_PKEY_FREE = 385
++ SYS_PKEY_MPROTECT = 386
++ SYS_RSEQ = 387
++ SYS_IO_PGETEVENTS = 388
++ SYS_SEMTIMEDOP = 392
++ SYS_SEMGET = 393
++ SYS_SEMCTL = 394
++ SYS_SHMGET = 395
++ SYS_SHMCTL = 396
++ SYS_SHMAT = 397
++ SYS_SHMDT = 398
++ SYS_MSGGET = 399
++ SYS_MSGSND = 400
++ SYS_MSGRCV = 401
++ SYS_MSGCTL = 402
++ SYS_PIDFD_SEND_SIGNAL = 424
++ SYS_IO_URING_SETUP = 425
++ SYS_IO_URING_ENTER = 426
++ SYS_IO_URING_REGISTER = 427
++ SYS_OPEN_TREE = 428
++ SYS_MOVE_MOUNT = 429
++ SYS_FSOPEN = 430
++ SYS_FSCONFIG = 431
++ SYS_FSMOUNT = 432
++ SYS_FSPICK = 433
++ SYS_PIDFD_OPEN = 434
++ SYS_CLONE3 = 435
++ SYS_OPENAT2 = 437
++ SYS_PIDFD_GETFD = 438
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go
+index 90a039be..4050ff98 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go
+@@ -1,4 +1,4 @@
+-// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
++// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build ppc64le,linux
+@@ -366,4 +366,35 @@ const (
+ SYS_PREADV2 = 380
+ SYS_PWRITEV2 = 381
+ SYS_KEXEC_FILE_LOAD = 382
++ SYS_STATX = 383
++ SYS_PKEY_ALLOC = 384
++ SYS_PKEY_FREE = 385
++ SYS_PKEY_MPROTECT = 386
++ SYS_RSEQ = 387
++ SYS_IO_PGETEVENTS = 388
++ SYS_SEMTIMEDOP = 392
++ SYS_SEMGET = 393
++ SYS_SEMCTL = 394
++ SYS_SHMGET = 395
++ SYS_SHMCTL = 396
++ SYS_SHMAT = 397
++ SYS_SHMDT = 398
++ SYS_MSGGET = 399
++ SYS_MSGSND = 400
++ SYS_MSGRCV = 401
++ SYS_MSGCTL = 402
++ SYS_PIDFD_SEND_SIGNAL = 424
++ SYS_IO_URING_SETUP = 425
++ SYS_IO_URING_ENTER = 426
++ SYS_IO_URING_REGISTER = 427
++ SYS_OPEN_TREE = 428
++ SYS_MOVE_MOUNT = 429
++ SYS_FSOPEN = 430
++ SYS_FSCONFIG = 431
++ SYS_FSMOUNT = 432
++ SYS_FSPICK = 433
++ SYS_PIDFD_OPEN = 434
++ SYS_CLONE3 = 435
++ SYS_OPENAT2 = 437
++ SYS_PIDFD_GETFD = 438
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go
+similarity index 92%
+copy from vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
+copy to vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go
+index 64078435..529abb6a 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go
+@@ -1,7 +1,7 @@
+-// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include -fsigned-char /tmp/include/asm/unistd.h
++// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+-// +build arm64,linux
++// +build riscv64,linux
+
+ package unix
+
+@@ -44,7 +44,6 @@ const (
+ SYS_UNLINKAT = 35
+ SYS_SYMLINKAT = 36
+ SYS_LINKAT = 37
+- SYS_RENAMEAT = 38
+ SYS_UMOUNT2 = 39
+ SYS_MOUNT = 40
+ SYS_PIVOT_ROOT = 41
+@@ -282,4 +281,22 @@ const (
+ SYS_PKEY_MPROTECT = 288
+ SYS_PKEY_ALLOC = 289
+ SYS_PKEY_FREE = 290
++ SYS_STATX = 291
++ SYS_IO_PGETEVENTS = 292
++ SYS_RSEQ = 293
++ SYS_KEXEC_FILE_LOAD = 294
++ SYS_PIDFD_SEND_SIGNAL = 424
++ SYS_IO_URING_SETUP = 425
++ SYS_IO_URING_ENTER = 426
++ SYS_IO_URING_REGISTER = 427
++ SYS_OPEN_TREE = 428
++ SYS_MOVE_MOUNT = 429
++ SYS_FSOPEN = 430
++ SYS_FSCONFIG = 431
++ SYS_FSMOUNT = 432
++ SYS_FSPICK = 433
++ SYS_PIDFD_OPEN = 434
++ SYS_CLONE3 = 435
++ SYS_OPENAT2 = 437
++ SYS_PIDFD_GETFD = 438
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go
+index aab0cdb1..27665001 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go
+@@ -1,4 +1,4 @@
+-// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include -fsigned-char /tmp/include/asm/unistd.h
++// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -fsigned-char /tmp/include/asm/unistd.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build s390x,linux
+@@ -109,6 +109,7 @@ const (
+ SYS_PERSONALITY = 136
+ SYS_AFS_SYSCALL = 137
+ SYS_GETDENTS = 141
++ SYS_SELECT = 142
+ SYS_FLOCK = 143
+ SYS_MSYNC = 144
+ SYS_READV = 145
+@@ -151,6 +152,26 @@ const (
+ SYS_GETPMSG = 188
+ SYS_PUTPMSG = 189
+ SYS_VFORK = 190
++ SYS_GETRLIMIT = 191
++ SYS_LCHOWN = 198
++ SYS_GETUID = 199
++ SYS_GETGID = 200
++ SYS_GETEUID = 201
++ SYS_GETEGID = 202
++ SYS_SETREUID = 203
++ SYS_SETREGID = 204
++ SYS_GETGROUPS = 205
++ SYS_SETGROUPS = 206
++ SYS_FCHOWN = 207
++ SYS_SETRESUID = 208
++ SYS_GETRESUID = 209
++ SYS_SETRESGID = 210
++ SYS_GETRESGID = 211
++ SYS_CHOWN = 212
++ SYS_SETUID = 213
++ SYS_SETGID = 214
++ SYS_SETFSUID = 215
++ SYS_SETFSGID = 216
+ SYS_PIVOT_ROOT = 217
+ SYS_MINCORE = 218
+ SYS_MADVISE = 219
+@@ -222,6 +243,7 @@ const (
+ SYS_MKNODAT = 290
+ SYS_FCHOWNAT = 291
+ SYS_FUTIMESAT = 292
++ SYS_NEWFSTATAT = 293
+ SYS_UNLINKAT = 294
+ SYS_RENAMEAT = 295
+ SYS_LINKAT = 296
+@@ -306,26 +328,38 @@ const (
+ SYS_COPY_FILE_RANGE = 375
+ SYS_PREADV2 = 376
+ SYS_PWRITEV2 = 377
+- SYS_SELECT = 142
+- SYS_GETRLIMIT = 191
+- SYS_LCHOWN = 198
+- SYS_GETUID = 199
+- SYS_GETGID = 200
+- SYS_GETEUID = 201
+- SYS_GETEGID = 202
+- SYS_SETREUID = 203
+- SYS_SETREGID = 204
+- SYS_GETGROUPS = 205
+- SYS_SETGROUPS = 206
+- SYS_FCHOWN = 207
+- SYS_SETRESUID = 208
+- SYS_GETRESUID = 209
+- SYS_SETRESGID = 210
+- SYS_GETRESGID = 211
+- SYS_CHOWN = 212
+- SYS_SETUID = 213
+- SYS_SETGID = 214
+- SYS_SETFSUID = 215
+- SYS_SETFSGID = 216
+- SYS_NEWFSTATAT = 293
++ SYS_S390_GUARDED_STORAGE = 378
++ SYS_STATX = 379
++ SYS_S390_STHYI = 380
++ SYS_KEXEC_FILE_LOAD = 381
++ SYS_IO_PGETEVENTS = 382
++ SYS_RSEQ = 383
++ SYS_PKEY_MPROTECT = 384
++ SYS_PKEY_ALLOC = 385
++ SYS_PKEY_FREE = 386
++ SYS_SEMTIMEDOP = 392
++ SYS_SEMGET = 393
++ SYS_SEMCTL = 394
++ SYS_SHMGET = 395
++ SYS_SHMCTL = 396
++ SYS_SHMAT = 397
++ SYS_SHMDT = 398
++ SYS_MSGGET = 399
++ SYS_MSGSND = 400
++ SYS_MSGRCV = 401
++ SYS_MSGCTL = 402
++ SYS_PIDFD_SEND_SIGNAL = 424
++ SYS_IO_URING_SETUP = 425
++ SYS_IO_URING_ENTER = 426
++ SYS_IO_URING_REGISTER = 427
++ SYS_OPEN_TREE = 428
++ SYS_MOVE_MOUNT = 429
++ SYS_FSOPEN = 430
++ SYS_FSCONFIG = 431
++ SYS_FSMOUNT = 432
++ SYS_FSPICK = 433
++ SYS_PIDFD_OPEN = 434
++ SYS_CLONE3 = 435
++ SYS_OPENAT2 = 437
++ SYS_PIDFD_GETFD = 438
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
+index c9c129dc..4dc82bb2 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
+@@ -1,5 +1,5 @@
+-// mksysnum_linux.pl -Ilinux/usr/include -m64 -D__arch64__ linux/usr/include/asm/unistd.h
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build sparc64,linux
+
+@@ -253,6 +253,7 @@ const (
+ SYS_TIMER_GETOVERRUN = 264
+ SYS_TIMER_DELETE = 265
+ SYS_TIMER_CREATE = 266
++ SYS_VSERVER = 267
+ SYS_IO_SETUP = 268
+ SYS_IO_DESTROY = 269
+ SYS_IO_SUBMIT = 270
+@@ -345,4 +346,34 @@ const (
+ SYS_COPY_FILE_RANGE = 357
+ SYS_PREADV2 = 358
+ SYS_PWRITEV2 = 359
++ SYS_STATX = 360
++ SYS_IO_PGETEVENTS = 361
++ SYS_PKEY_MPROTECT = 362
++ SYS_PKEY_ALLOC = 363
++ SYS_PKEY_FREE = 364
++ SYS_RSEQ = 365
++ SYS_SEMTIMEDOP = 392
++ SYS_SEMGET = 393
++ SYS_SEMCTL = 394
++ SYS_SHMGET = 395
++ SYS_SHMCTL = 396
++ SYS_SHMAT = 397
++ SYS_SHMDT = 398
++ SYS_MSGGET = 399
++ SYS_MSGSND = 400
++ SYS_MSGRCV = 401
++ SYS_MSGCTL = 402
++ SYS_PIDFD_SEND_SIGNAL = 424
++ SYS_IO_URING_SETUP = 425
++ SYS_IO_URING_ENTER = 426
++ SYS_IO_URING_REGISTER = 427
++ SYS_OPEN_TREE = 428
++ SYS_MOVE_MOUNT = 429
++ SYS_FSOPEN = 430
++ SYS_FSCONFIG = 431
++ SYS_FSMOUNT = 432
++ SYS_FSPICK = 433
++ SYS_PIDFD_OPEN = 434
++ SYS_OPENAT2 = 437
++ SYS_PIDFD_GETFD = 438
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go
+index 8afda9c4..e66a8c9d 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go
+@@ -1,5 +1,5 @@
+-// mksysnum_netbsd.pl
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build 386,netbsd
+
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go
+index aea8dbec..42c788f2 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go
+@@ -1,5 +1,5 @@
+-// mksysnum_netbsd.pl
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build amd64,netbsd
+
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go
+index c6158a7e..0a075717 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go
+@@ -1,5 +1,5 @@
+-// mksysnum_netbsd.pl
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build arm,netbsd
+
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go
+similarity index 99%
+copy from vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go
+copy to vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go
+index 8afda9c4..0291c093 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go
+@@ -1,7 +1,7 @@
+-// mksysnum_netbsd.pl
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master
++// Code generated by the command above; DO NOT EDIT.
+
+-// +build 386,netbsd
++// +build arm64,netbsd
+
+ package unix
+
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go
+index 3e8ce2a1..b0207d1c 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go
+@@ -1,5 +1,5 @@
+-// mksysnum_openbsd.pl
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build 386,openbsd
+
+@@ -9,109 +9,119 @@ const (
+ SYS_EXIT = 1 // { void sys_exit(int rval); }
+ SYS_FORK = 2 // { int sys_fork(void); }
+ SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }
+- SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, \
+- SYS_OPEN = 5 // { int sys_open(const char *path, \
++ SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }
++ SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); }
+ SYS_CLOSE = 6 // { int sys_close(int fd); }
+- SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, \
++ SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); }
++ SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); }
+ SYS_LINK = 9 // { int sys_link(const char *path, const char *link); }
+ SYS_UNLINK = 10 // { int sys_unlink(const char *path); }
+- SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, \
++ SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }
+ SYS_CHDIR = 12 // { int sys_chdir(const char *path); }
+ SYS_FCHDIR = 13 // { int sys_fchdir(int fd); }
+- SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, \
++ SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }
+ SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); }
+- SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, \
++ SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); }
+ SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break
+ SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); }
+- SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, \
++ SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); }
+ SYS_GETPID = 20 // { pid_t sys_getpid(void); }
+- SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, \
++ SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); }
+ SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); }
+ SYS_SETUID = 23 // { int sys_setuid(uid_t uid); }
+ SYS_GETUID = 24 // { uid_t sys_getuid(void); }
+ SYS_GETEUID = 25 // { uid_t sys_geteuid(void); }
+- SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, \
+- SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, \
+- SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, \
+- SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, \
+- SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, \
+- SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, \
+- SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, \
+- SYS_ACCESS = 33 // { int sys_access(const char *path, int flags); }
++ SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }
++ SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }
++ SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }
++ SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }
++ SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }
++ SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }
++ SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }
++ SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); }
+ SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); }
+ SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); }
+ SYS_SYNC = 36 // { void sys_sync(void); }
+- SYS_KILL = 37 // { int sys_kill(int pid, int signum); }
+ SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); }
+ SYS_GETPPID = 39 // { pid_t sys_getppid(void); }
+ SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); }
+ SYS_DUP = 41 // { int sys_dup(int fd); }
+- SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, \
++ SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }
+ SYS_GETEGID = 43 // { gid_t sys_getegid(void); }
+- SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, \
+- SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, \
+- SYS_SIGACTION = 46 // { int sys_sigaction(int signum, \
++ SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }
++ SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }
++ SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }
+ SYS_GETGID = 47 // { gid_t sys_getgid(void); }
+ SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); }
+- SYS_GETLOGIN = 49 // { int sys_getlogin(char *namebuf, u_int namelen); }
+ SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); }
+ SYS_ACCT = 51 // { int sys_acct(const char *path); }
+ SYS_SIGPENDING = 52 // { int sys_sigpending(void); }
+ SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); }
+- SYS_IOCTL = 54 // { int sys_ioctl(int fd, \
++ SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); }
+ SYS_REBOOT = 55 // { int sys_reboot(int opt); }
+ SYS_REVOKE = 56 // { int sys_revoke(const char *path); }
+- SYS_SYMLINK = 57 // { int sys_symlink(const char *path, \
+- SYS_READLINK = 58 // { int sys_readlink(const char *path, char *buf, \
+- SYS_EXECVE = 59 // { int sys_execve(const char *path, \
++ SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); }
++ SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }
++ SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); }
+ SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); }
+ SYS_CHROOT = 61 // { int sys_chroot(const char *path); }
+- SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, \
+- SYS_STATFS = 63 // { int sys_statfs(const char *path, \
++ SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }
++ SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); }
+ SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); }
+- SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, \
++ SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }
+ SYS_VFORK = 66 // { int sys_vfork(void); }
+- SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, \
+- SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, \
+- SYS_SETITIMER = 69 // { int sys_setitimer(int which, \
+- SYS_GETITIMER = 70 // { int sys_getitimer(int which, \
+- SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, \
+- SYS_KEVENT = 72 // { int sys_kevent(int fd, \
++ SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }
++ SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }
++ SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }
++ SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); }
++ SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }
++ SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }
+ SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); }
+- SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, \
+- SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, \
+- SYS_UTIMES = 76 // { int sys_utimes(const char *path, \
+- SYS_FUTIMES = 77 // { int sys_futimes(int fd, \
+- SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, \
+- SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, \
+- SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, \
++ SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); }
++ SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); }
++ SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); }
++ SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); }
++ SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, char *vec); }
++ SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); }
++ SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }
+ SYS_GETPGRP = 81 // { int sys_getpgrp(void); }
+- SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, int pgid); }
+- SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, \
+- SYS_FUTIMENS = 85 // { int sys_futimens(int fd, \
+- SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, \
+- SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, \
+- SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, \
++ SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); }
++ SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }
++ SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }
++ SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); }
++ SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }
++ SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }
++ SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }
++ SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }
+ SYS_DUP2 = 90 // { int sys_dup2(int from, int to); }
+- SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, \
++ SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }
+ SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); }
+- SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, \
++ SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }
++ SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }
+ SYS_FSYNC = 95 // { int sys_fsync(int fd); }
+ SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); }
+ SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); }
+- SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, \
++ SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }
+ SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); }
+ SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); }
++ SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); }
++ SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); }
+ SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }
+- SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, \
+- SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, \
++ SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }
++ SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }
+ SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); }
+- SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, \
+- SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, \
++ SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }
++ SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); }
++ SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }
++ SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }
+ SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); }
+- SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, \
+- SYS_READV = 120 // { ssize_t sys_readv(int fd, \
+- SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, \
++ SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }
++ SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); }
++ SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }
++ SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }
++ SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }
++ SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }
++ SYS_KILL = 122 // { int sys_kill(int pid, int signum); }
+ SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }
+ SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); }
+ SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }
+@@ -119,89 +129,90 @@ const (
+ SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); }
+ SYS_FLOCK = 131 // { int sys_flock(int fd, int how); }
+ SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); }
+- SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, \
++ SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }
+ SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); }
+- SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, \
++ SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }
+ SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); }
+ SYS_RMDIR = 137 // { int sys_rmdir(const char *path); }
+- SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, \
++ SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }
++ SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }
+ SYS_SETSID = 147 // { int sys_setsid(void); }
+- SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, \
++ SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }
+ SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); }
+ SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }
+ SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); }
+- SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, \
+- SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, \
++ SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }
++ SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }
+ SYS_SETGID = 181 // { int sys_setgid(gid_t gid); }
+ SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); }
+ SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); }
+ SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); }
+ SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); }
+ SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }
+- SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, \
+- SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, \
+- SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, \
+- SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, \
+- SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, \
++ SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }
++ SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }
++ SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }
++ SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }
++ SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); }
+ SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }
+- SYS___SYSCTL = 202 // { int sys___sysctl(const int *name, u_int namelen, \
++ SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }
+ SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); }
+ SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); }
+ SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); }
+- SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, \
++ SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }
+ SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); }
+ SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); }
+- SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, \
+- SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, \
+- SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, \
++ SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }
++ SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }
++ SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }
+ SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); }
+- SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, \
+- SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, \
++ SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }
++ SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }
+ SYS_ISSETUGID = 253 // { int sys_issetugid(void); }
+ SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }
+ SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); }
+ SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); }
+ SYS_PIPE = 263 // { int sys_pipe(int *fdp); }
+ SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }
+- SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, \
+- SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, \
++ SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }
++ SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }
+ SYS_KQUEUE = 269 // { int sys_kqueue(void); }
+ SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); }
+ SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); }
+- SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, \
+- SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, \
+- SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, \
+- SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, \
+- SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, \
++ SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }
++ SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }
++ SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }
++ SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }
++ SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }
+ SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); }
+- SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, \
++ SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }
+ SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }
+- SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, \
+- SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, \
+- SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, \
+- SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, \
+- SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, \
++ SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }
++ SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }
++ SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }
++ SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }
++ SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }
+ SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); }
+ SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); }
+- SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, \
++ SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }
+ SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); }
+- SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, \
++ SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }
+ SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); }
+- SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, \
++ SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }
+ SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); }
+ SYS_GETRTABLE = 311 // { int sys_getrtable(void); }
+- SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, \
+- SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, \
+- SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, \
+- SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, \
+- SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, \
+- SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, \
+- SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, \
+- SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, \
+- SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, \
+- SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, \
+- SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, \
+- SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, \
++ SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }
++ SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }
++ SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }
++ SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }
++ SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }
++ SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }
++ SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }
++ SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }
++ SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }
++ SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }
++ SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }
++ SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }
+ SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); }
+ SYS___GET_TCB = 330 // { void *sys___get_tcb(void); }
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go
+index bd28146d..f0dec6f0 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go
+@@ -1,5 +1,5 @@
+-// mksysnum_openbsd.pl
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build amd64,openbsd
+
+@@ -9,109 +9,119 @@ const (
+ SYS_EXIT = 1 // { void sys_exit(int rval); }
+ SYS_FORK = 2 // { int sys_fork(void); }
+ SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }
+- SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, \
+- SYS_OPEN = 5 // { int sys_open(const char *path, \
++ SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }
++ SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); }
+ SYS_CLOSE = 6 // { int sys_close(int fd); }
+- SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, \
++ SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); }
++ SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); }
+ SYS_LINK = 9 // { int sys_link(const char *path, const char *link); }
+ SYS_UNLINK = 10 // { int sys_unlink(const char *path); }
+- SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, \
++ SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }
+ SYS_CHDIR = 12 // { int sys_chdir(const char *path); }
+ SYS_FCHDIR = 13 // { int sys_fchdir(int fd); }
+- SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, \
++ SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }
+ SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); }
+- SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, \
++ SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); }
+ SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break
+ SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); }
+- SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, \
++ SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); }
+ SYS_GETPID = 20 // { pid_t sys_getpid(void); }
+- SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, \
++ SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); }
+ SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); }
+ SYS_SETUID = 23 // { int sys_setuid(uid_t uid); }
+ SYS_GETUID = 24 // { uid_t sys_getuid(void); }
+ SYS_GETEUID = 25 // { uid_t sys_geteuid(void); }
+- SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, \
+- SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, \
+- SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, \
+- SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, \
+- SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, \
+- SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, \
+- SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, \
+- SYS_ACCESS = 33 // { int sys_access(const char *path, int flags); }
++ SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }
++ SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }
++ SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }
++ SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }
++ SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }
++ SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }
++ SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }
++ SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); }
+ SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); }
+ SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); }
+ SYS_SYNC = 36 // { void sys_sync(void); }
+- SYS_KILL = 37 // { int sys_kill(int pid, int signum); }
+ SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); }
+ SYS_GETPPID = 39 // { pid_t sys_getppid(void); }
+ SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); }
+ SYS_DUP = 41 // { int sys_dup(int fd); }
+- SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, \
++ SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }
+ SYS_GETEGID = 43 // { gid_t sys_getegid(void); }
+- SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, \
+- SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, \
+- SYS_SIGACTION = 46 // { int sys_sigaction(int signum, \
++ SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }
++ SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }
++ SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }
+ SYS_GETGID = 47 // { gid_t sys_getgid(void); }
+ SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); }
+- SYS_GETLOGIN = 49 // { int sys_getlogin(char *namebuf, u_int namelen); }
+ SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); }
+ SYS_ACCT = 51 // { int sys_acct(const char *path); }
+ SYS_SIGPENDING = 52 // { int sys_sigpending(void); }
+ SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); }
+- SYS_IOCTL = 54 // { int sys_ioctl(int fd, \
++ SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); }
+ SYS_REBOOT = 55 // { int sys_reboot(int opt); }
+ SYS_REVOKE = 56 // { int sys_revoke(const char *path); }
+- SYS_SYMLINK = 57 // { int sys_symlink(const char *path, \
+- SYS_READLINK = 58 // { int sys_readlink(const char *path, char *buf, \
+- SYS_EXECVE = 59 // { int sys_execve(const char *path, \
++ SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); }
++ SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }
++ SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); }
+ SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); }
+ SYS_CHROOT = 61 // { int sys_chroot(const char *path); }
+- SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, \
+- SYS_STATFS = 63 // { int sys_statfs(const char *path, \
++ SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }
++ SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); }
+ SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); }
+- SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, \
++ SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }
+ SYS_VFORK = 66 // { int sys_vfork(void); }
+- SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, \
+- SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, \
+- SYS_SETITIMER = 69 // { int sys_setitimer(int which, \
+- SYS_GETITIMER = 70 // { int sys_getitimer(int which, \
+- SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, \
+- SYS_KEVENT = 72 // { int sys_kevent(int fd, \
++ SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }
++ SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }
++ SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }
++ SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); }
++ SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }
++ SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }
+ SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); }
+- SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, \
+- SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, \
+- SYS_UTIMES = 76 // { int sys_utimes(const char *path, \
+- SYS_FUTIMES = 77 // { int sys_futimes(int fd, \
+- SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, \
+- SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, \
+- SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, \
++ SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); }
++ SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); }
++ SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); }
++ SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); }
++ SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, char *vec); }
++ SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); }
++ SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }
+ SYS_GETPGRP = 81 // { int sys_getpgrp(void); }
+- SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, int pgid); }
+- SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, \
+- SYS_FUTIMENS = 85 // { int sys_futimens(int fd, \
+- SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, \
+- SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, \
+- SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, \
++ SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); }
++ SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }
++ SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }
++ SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); }
++ SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }
++ SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }
++ SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }
++ SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }
+ SYS_DUP2 = 90 // { int sys_dup2(int from, int to); }
+- SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, \
++ SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }
+ SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); }
+- SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, \
++ SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }
++ SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }
+ SYS_FSYNC = 95 // { int sys_fsync(int fd); }
+ SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); }
+ SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); }
+- SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, \
++ SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }
+ SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); }
+ SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); }
++ SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); }
++ SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); }
+ SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }
+- SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, \
+- SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, \
++ SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }
++ SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }
+ SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); }
+- SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, \
+- SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, \
++ SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }
++ SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); }
++ SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }
++ SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }
+ SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); }
+- SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, \
+- SYS_READV = 120 // { ssize_t sys_readv(int fd, \
+- SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, \
++ SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }
++ SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); }
++ SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }
++ SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }
++ SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }
++ SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }
++ SYS_KILL = 122 // { int sys_kill(int pid, int signum); }
+ SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }
+ SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); }
+ SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }
+@@ -119,89 +129,90 @@ const (
+ SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); }
+ SYS_FLOCK = 131 // { int sys_flock(int fd, int how); }
+ SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); }
+- SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, \
++ SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }
+ SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); }
+- SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, \
++ SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }
+ SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); }
+ SYS_RMDIR = 137 // { int sys_rmdir(const char *path); }
+- SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, \
++ SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }
++ SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }
+ SYS_SETSID = 147 // { int sys_setsid(void); }
+- SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, \
++ SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }
+ SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); }
+ SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }
+ SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); }
+- SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, \
+- SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, \
++ SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }
++ SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }
+ SYS_SETGID = 181 // { int sys_setgid(gid_t gid); }
+ SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); }
+ SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); }
+ SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); }
+ SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); }
+ SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }
+- SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, \
+- SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, \
+- SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, \
+- SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, \
+- SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, \
++ SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }
++ SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }
++ SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }
++ SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }
++ SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); }
+ SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }
+- SYS___SYSCTL = 202 // { int sys___sysctl(const int *name, u_int namelen, \
++ SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }
+ SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); }
+ SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); }
+ SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); }
+- SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, \
++ SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }
+ SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); }
+ SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); }
+- SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, \
+- SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, \
+- SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, \
++ SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }
++ SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }
++ SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }
+ SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); }
+- SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, \
+- SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, \
++ SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }
++ SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }
+ SYS_ISSETUGID = 253 // { int sys_issetugid(void); }
+ SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }
+ SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); }
+ SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); }
+ SYS_PIPE = 263 // { int sys_pipe(int *fdp); }
+ SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }
+- SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, \
+- SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, \
++ SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }
++ SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }
+ SYS_KQUEUE = 269 // { int sys_kqueue(void); }
+ SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); }
+ SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); }
+- SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, \
+- SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, \
+- SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, \
+- SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, \
+- SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, \
++ SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }
++ SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }
++ SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }
++ SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }
++ SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }
+ SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); }
+- SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, \
++ SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }
+ SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }
+- SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, \
+- SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, \
+- SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, \
+- SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, \
+- SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, \
++ SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }
++ SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }
++ SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }
++ SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }
++ SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }
+ SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); }
+ SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); }
+- SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, \
++ SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }
+ SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); }
+- SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, \
++ SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }
+ SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); }
+- SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, \
++ SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }
+ SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); }
+ SYS_GETRTABLE = 311 // { int sys_getrtable(void); }
+- SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, \
+- SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, \
+- SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, \
+- SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, \
+- SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, \
+- SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, \
+- SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, \
+- SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, \
+- SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, \
+- SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, \
+- SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, \
+- SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, \
++ SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }
++ SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }
++ SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }
++ SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }
++ SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }
++ SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }
++ SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }
++ SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }
++ SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }
++ SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }
++ SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }
++ SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }
+ SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); }
+ SYS___GET_TCB = 330 // { void *sys___get_tcb(void); }
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go
+index 32653e53..33d1dc54 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go
+@@ -1,5 +1,5 @@
+-// mksysnum_openbsd.pl
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build arm,openbsd
+
+@@ -9,35 +9,35 @@ const (
+ SYS_EXIT = 1 // { void sys_exit(int rval); }
+ SYS_FORK = 2 // { int sys_fork(void); }
+ SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }
+- SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, \
+- SYS_OPEN = 5 // { int sys_open(const char *path, \
++ SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }
++ SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); }
+ SYS_CLOSE = 6 // { int sys_close(int fd); }
+ SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); }
+- SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, \
++ SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); }
+ SYS_LINK = 9 // { int sys_link(const char *path, const char *link); }
+ SYS_UNLINK = 10 // { int sys_unlink(const char *path); }
+- SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, \
++ SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }
+ SYS_CHDIR = 12 // { int sys_chdir(const char *path); }
+ SYS_FCHDIR = 13 // { int sys_fchdir(int fd); }
+- SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, \
++ SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }
+ SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); }
+- SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, \
++ SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); }
+ SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break
+ SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); }
+- SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, \
++ SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); }
+ SYS_GETPID = 20 // { pid_t sys_getpid(void); }
+- SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, \
++ SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); }
+ SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); }
+ SYS_SETUID = 23 // { int sys_setuid(uid_t uid); }
+ SYS_GETUID = 24 // { uid_t sys_getuid(void); }
+ SYS_GETEUID = 25 // { uid_t sys_geteuid(void); }
+- SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, \
+- SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, \
+- SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, \
+- SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, \
+- SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, \
+- SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, \
+- SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, \
++ SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }
++ SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }
++ SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }
++ SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }
++ SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }
++ SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }
++ SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }
+ SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); }
+ SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); }
+ SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); }
+@@ -46,77 +46,81 @@ const (
+ SYS_GETPPID = 39 // { pid_t sys_getppid(void); }
+ SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); }
+ SYS_DUP = 41 // { int sys_dup(int fd); }
+- SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, \
++ SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }
+ SYS_GETEGID = 43 // { gid_t sys_getegid(void); }
+- SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, \
+- SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, \
+- SYS_SIGACTION = 46 // { int sys_sigaction(int signum, \
++ SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }
++ SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }
++ SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }
+ SYS_GETGID = 47 // { gid_t sys_getgid(void); }
+ SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); }
+- SYS_GETLOGIN = 49 // { int sys_getlogin(char *namebuf, u_int namelen); }
+ SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); }
+ SYS_ACCT = 51 // { int sys_acct(const char *path); }
+ SYS_SIGPENDING = 52 // { int sys_sigpending(void); }
+ SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); }
+- SYS_IOCTL = 54 // { int sys_ioctl(int fd, \
++ SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); }
+ SYS_REBOOT = 55 // { int sys_reboot(int opt); }
+ SYS_REVOKE = 56 // { int sys_revoke(const char *path); }
+- SYS_SYMLINK = 57 // { int sys_symlink(const char *path, \
+- SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, \
+- SYS_EXECVE = 59 // { int sys_execve(const char *path, \
++ SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); }
++ SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }
++ SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); }
+ SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); }
+ SYS_CHROOT = 61 // { int sys_chroot(const char *path); }
+- SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, \
+- SYS_STATFS = 63 // { int sys_statfs(const char *path, \
++ SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }
++ SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); }
+ SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); }
+- SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, \
++ SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }
+ SYS_VFORK = 66 // { int sys_vfork(void); }
+- SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, \
+- SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, \
+- SYS_SETITIMER = 69 // { int sys_setitimer(int which, \
+- SYS_GETITIMER = 70 // { int sys_getitimer(int which, \
+- SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, \
+- SYS_KEVENT = 72 // { int sys_kevent(int fd, \
++ SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }
++ SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }
++ SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }
++ SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); }
++ SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }
++ SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }
+ SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); }
+- SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, \
+- SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, \
+- SYS_UTIMES = 76 // { int sys_utimes(const char *path, \
+- SYS_FUTIMES = 77 // { int sys_futimes(int fd, \
+- SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, \
+- SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, \
+- SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, \
++ SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); }
++ SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); }
++ SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); }
++ SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); }
++ SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, char *vec); }
++ SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); }
++ SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }
+ SYS_GETPGRP = 81 // { int sys_getpgrp(void); }
+ SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); }
+- SYS_SENDSYSLOG = 83 // { int sys_sendsyslog(const void *buf, size_t nbyte); }
+- SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, \
+- SYS_FUTIMENS = 85 // { int sys_futimens(int fd, \
+- SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, \
+- SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, \
+- SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, \
++ SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }
++ SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }
++ SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); }
++ SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }
++ SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }
++ SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }
++ SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }
+ SYS_DUP2 = 90 // { int sys_dup2(int from, int to); }
+- SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, \
++ SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }
+ SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); }
+- SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, \
+- SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, \
++ SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }
++ SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }
+ SYS_FSYNC = 95 // { int sys_fsync(int fd); }
+ SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); }
+ SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); }
+- SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, \
++ SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }
+ SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); }
+ SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); }
+ SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); }
+ SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); }
+ SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }
+- SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, \
+- SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, \
++ SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }
++ SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }
+ SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); }
+- SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, \
+- SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, \
+- SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, \
++ SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }
++ SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); }
++ SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }
++ SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }
+ SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); }
+- SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, \
+- SYS_READV = 120 // { ssize_t sys_readv(int fd, \
+- SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, \
++ SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }
++ SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); }
++ SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }
++ SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }
++ SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }
++ SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }
+ SYS_KILL = 122 // { int sys_kill(int pid, int signum); }
+ SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }
+ SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); }
+@@ -125,89 +129,90 @@ const (
+ SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); }
+ SYS_FLOCK = 131 // { int sys_flock(int fd, int how); }
+ SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); }
+- SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, \
++ SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }
+ SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); }
+- SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, \
++ SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }
+ SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); }
+ SYS_RMDIR = 137 // { int sys_rmdir(const char *path); }
+- SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, \
++ SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }
++ SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }
+ SYS_SETSID = 147 // { int sys_setsid(void); }
+- SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, \
++ SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }
+ SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); }
+ SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }
+ SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); }
+- SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, \
+- SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, \
++ SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }
++ SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }
+ SYS_SETGID = 181 // { int sys_setgid(gid_t gid); }
+ SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); }
+ SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); }
+ SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); }
+ SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); }
+ SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }
+- SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, \
+- SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, \
+- SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, \
+- SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, \
+- SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, \
++ SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }
++ SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }
++ SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }
++ SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }
++ SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); }
+ SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }
+- SYS___SYSCTL = 202 // { int sys___sysctl(const int *name, u_int namelen, \
++ SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }
+ SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); }
+ SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); }
+ SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); }
+- SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, \
++ SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }
+ SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); }
+ SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); }
+- SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, \
+- SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, \
+- SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, \
++ SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }
++ SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }
++ SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }
+ SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); }
+- SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, \
+- SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, \
++ SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }
++ SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }
+ SYS_ISSETUGID = 253 // { int sys_issetugid(void); }
+ SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }
+ SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); }
+ SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); }
+ SYS_PIPE = 263 // { int sys_pipe(int *fdp); }
+ SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }
+- SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, \
+- SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, \
++ SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }
++ SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }
+ SYS_KQUEUE = 269 // { int sys_kqueue(void); }
+ SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); }
+ SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); }
+- SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, \
+- SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, \
+- SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, \
+- SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, \
+- SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, \
++ SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }
++ SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }
++ SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }
++ SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }
++ SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }
+ SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); }
+- SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, \
++ SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }
+ SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }
+- SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, \
+- SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, \
+- SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, \
+- SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, \
+- SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, \
++ SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }
++ SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }
++ SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }
++ SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }
++ SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }
+ SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); }
+ SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); }
+- SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, \
++ SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }
+ SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); }
+- SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, \
++ SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }
+ SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); }
+- SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, \
++ SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }
+ SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); }
+ SYS_GETRTABLE = 311 // { int sys_getrtable(void); }
+- SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, \
+- SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, \
+- SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, \
+- SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, \
+- SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, \
+- SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, \
+- SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, \
+- SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, \
+- SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, \
+- SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, \
+- SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, \
+- SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, \
++ SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }
++ SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }
++ SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }
++ SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }
++ SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }
++ SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }
++ SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }
++ SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }
++ SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }
++ SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }
++ SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }
++ SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }
+ SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); }
+ SYS___GET_TCB = 330 // { void *sys___get_tcb(void); }
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go
+similarity index 67%
+copy from vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go
+copy to vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go
+index 32653e53..fe2b689b 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go
+@@ -1,7 +1,7 @@
+-// mksysnum_openbsd.pl
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+-// +build arm,openbsd
++// +build arm64,openbsd
+
+ package unix
+
+@@ -9,35 +9,35 @@ const (
+ SYS_EXIT = 1 // { void sys_exit(int rval); }
+ SYS_FORK = 2 // { int sys_fork(void); }
+ SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }
+- SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, \
+- SYS_OPEN = 5 // { int sys_open(const char *path, \
++ SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }
++ SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); }
+ SYS_CLOSE = 6 // { int sys_close(int fd); }
+ SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); }
+- SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, \
++ SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); }
+ SYS_LINK = 9 // { int sys_link(const char *path, const char *link); }
+ SYS_UNLINK = 10 // { int sys_unlink(const char *path); }
+- SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, \
++ SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }
+ SYS_CHDIR = 12 // { int sys_chdir(const char *path); }
+ SYS_FCHDIR = 13 // { int sys_fchdir(int fd); }
+- SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, \
++ SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }
+ SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); }
+- SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, \
++ SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); }
+ SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break
+ SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); }
+- SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, \
++ SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); }
+ SYS_GETPID = 20 // { pid_t sys_getpid(void); }
+- SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, \
++ SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); }
+ SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); }
+ SYS_SETUID = 23 // { int sys_setuid(uid_t uid); }
+ SYS_GETUID = 24 // { uid_t sys_getuid(void); }
+ SYS_GETEUID = 25 // { uid_t sys_geteuid(void); }
+- SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, \
+- SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, \
+- SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, \
+- SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, \
+- SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, \
+- SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, \
+- SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, \
++ SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }
++ SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }
++ SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }
++ SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }
++ SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }
++ SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }
++ SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }
+ SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); }
+ SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); }
+ SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); }
+@@ -46,77 +46,80 @@ const (
+ SYS_GETPPID = 39 // { pid_t sys_getppid(void); }
+ SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); }
+ SYS_DUP = 41 // { int sys_dup(int fd); }
+- SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, \
++ SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }
+ SYS_GETEGID = 43 // { gid_t sys_getegid(void); }
+- SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, \
+- SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, \
+- SYS_SIGACTION = 46 // { int sys_sigaction(int signum, \
++ SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }
++ SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }
++ SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }
+ SYS_GETGID = 47 // { gid_t sys_getgid(void); }
+ SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); }
+- SYS_GETLOGIN = 49 // { int sys_getlogin(char *namebuf, u_int namelen); }
+ SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); }
+ SYS_ACCT = 51 // { int sys_acct(const char *path); }
+ SYS_SIGPENDING = 52 // { int sys_sigpending(void); }
+ SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); }
+- SYS_IOCTL = 54 // { int sys_ioctl(int fd, \
++ SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); }
+ SYS_REBOOT = 55 // { int sys_reboot(int opt); }
+ SYS_REVOKE = 56 // { int sys_revoke(const char *path); }
+- SYS_SYMLINK = 57 // { int sys_symlink(const char *path, \
+- SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, \
+- SYS_EXECVE = 59 // { int sys_execve(const char *path, \
++ SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); }
++ SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }
++ SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); }
+ SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); }
+ SYS_CHROOT = 61 // { int sys_chroot(const char *path); }
+- SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, \
+- SYS_STATFS = 63 // { int sys_statfs(const char *path, \
++ SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }
++ SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); }
+ SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); }
+- SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, \
++ SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }
+ SYS_VFORK = 66 // { int sys_vfork(void); }
+- SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, \
+- SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, \
+- SYS_SETITIMER = 69 // { int sys_setitimer(int which, \
+- SYS_GETITIMER = 70 // { int sys_getitimer(int which, \
+- SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, \
+- SYS_KEVENT = 72 // { int sys_kevent(int fd, \
++ SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }
++ SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }
++ SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }
++ SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); }
++ SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }
++ SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }
+ SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); }
+- SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, \
+- SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, \
+- SYS_UTIMES = 76 // { int sys_utimes(const char *path, \
+- SYS_FUTIMES = 77 // { int sys_futimes(int fd, \
+- SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, \
+- SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, \
+- SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, \
++ SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); }
++ SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); }
++ SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); }
++ SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); }
++ SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); }
++ SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }
+ SYS_GETPGRP = 81 // { int sys_getpgrp(void); }
+ SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); }
+- SYS_SENDSYSLOG = 83 // { int sys_sendsyslog(const void *buf, size_t nbyte); }
+- SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, \
+- SYS_FUTIMENS = 85 // { int sys_futimens(int fd, \
+- SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, \
+- SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, \
+- SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, \
++ SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }
++ SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }
++ SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); }
++ SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }
++ SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }
++ SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }
++ SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }
+ SYS_DUP2 = 90 // { int sys_dup2(int from, int to); }
+- SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, \
++ SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }
+ SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); }
+- SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, \
+- SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, \
++ SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }
++ SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }
+ SYS_FSYNC = 95 // { int sys_fsync(int fd); }
+ SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); }
+ SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); }
+- SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, \
++ SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }
+ SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); }
+ SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); }
+ SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); }
+ SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); }
+ SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }
+- SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, \
+- SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, \
++ SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }
++ SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }
+ SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); }
+- SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, \
+- SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, \
+- SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, \
++ SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }
++ SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); }
++ SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }
++ SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }
+ SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); }
+- SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, \
+- SYS_READV = 120 // { ssize_t sys_readv(int fd, \
+- SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, \
++ SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }
++ SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); }
++ SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }
++ SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }
++ SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }
++ SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }
+ SYS_KILL = 122 // { int sys_kill(int pid, int signum); }
+ SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }
+ SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); }
+@@ -125,89 +128,90 @@ const (
+ SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); }
+ SYS_FLOCK = 131 // { int sys_flock(int fd, int how); }
+ SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); }
+- SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, \
++ SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }
+ SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); }
+- SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, \
++ SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }
+ SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); }
+ SYS_RMDIR = 137 // { int sys_rmdir(const char *path); }
+- SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, \
++ SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }
++ SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }
+ SYS_SETSID = 147 // { int sys_setsid(void); }
+- SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, \
++ SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }
+ SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); }
+ SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }
+ SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); }
+- SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, \
+- SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, \
++ SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }
++ SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }
+ SYS_SETGID = 181 // { int sys_setgid(gid_t gid); }
+ SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); }
+ SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); }
+ SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); }
+ SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); }
+ SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }
+- SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, \
+- SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, \
+- SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, \
+- SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, \
+- SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, \
++ SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }
++ SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }
++ SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }
++ SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }
++ SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); }
+ SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }
+- SYS___SYSCTL = 202 // { int sys___sysctl(const int *name, u_int namelen, \
++ SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }
+ SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); }
+ SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); }
+ SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); }
+- SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, \
++ SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }
+ SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); }
+ SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); }
+- SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, \
+- SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, \
+- SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, \
++ SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }
++ SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }
++ SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }
+ SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); }
+- SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, \
+- SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, \
++ SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }
++ SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }
+ SYS_ISSETUGID = 253 // { int sys_issetugid(void); }
+ SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }
+ SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); }
+ SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); }
+ SYS_PIPE = 263 // { int sys_pipe(int *fdp); }
+ SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }
+- SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, \
+- SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, \
++ SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }
++ SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }
+ SYS_KQUEUE = 269 // { int sys_kqueue(void); }
+ SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); }
+ SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); }
+- SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, \
+- SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, \
+- SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, \
+- SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, \
+- SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, \
++ SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }
++ SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }
++ SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }
++ SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }
++ SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }
+ SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); }
+- SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, \
++ SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }
+ SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }
+- SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, \
+- SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, \
+- SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, \
+- SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, \
+- SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, \
++ SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }
++ SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }
++ SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }
++ SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }
++ SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }
+ SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); }
+ SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); }
+- SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, \
++ SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }
+ SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); }
+- SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, \
++ SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }
+ SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); }
+- SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, \
++ SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }
+ SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); }
+ SYS_GETRTABLE = 311 // { int sys_getrtable(void); }
+- SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, \
+- SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, \
+- SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, \
+- SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, \
+- SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, \
+- SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, \
+- SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, \
+- SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, \
+- SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, \
+- SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, \
+- SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, \
+- SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, \
++ SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }
++ SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }
++ SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }
++ SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }
++ SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }
++ SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }
++ SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }
++ SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }
++ SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }
++ SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }
++ SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }
++ SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }
+ SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); }
+ SYS___GET_TCB = 330 // { void *sys___get_tcb(void); }
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_solaris_amd64.go
+deleted file mode 100644
+index c7086598..00000000
+--- a/vendor/golang.org/x/sys/unix/zsysnum_solaris_amd64.go
++++ /dev/null
+@@ -1,13 +0,0 @@
+-// Copyright 2014 The Go Authors. All rights reserved.
+-// Use of this source code is governed by a BSD-style
+-// license that can be found in the LICENSE file.
+-
+-// +build amd64,solaris
+-
+-package unix
+-
+-// TODO(aram): remove these before Go 1.3.
+-const (
+- SYS_EXECVE = 59
+- SYS_FCNTL = 62
+-)
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go
+new file mode 100644
+index 00000000..2c1f815e
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go
+@@ -0,0 +1,352 @@
++// cgo -godefs types_aix.go | go run mkpost.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build ppc,aix
++
++package unix
++
++const (
++ SizeofPtr = 0x4
++ SizeofShort = 0x2
++ SizeofInt = 0x4
++ SizeofLong = 0x4
++ SizeofLongLong = 0x8
++ PathMax = 0x3ff
++)
++
++type (
++ _C_short int16
++ _C_int int32
++ _C_long int32
++ _C_long_long int64
++)
++
++type off64 int64
++type off int32
++type Mode_t uint32
++
++type Timespec struct {
++ Sec int32
++ Nsec int32
++}
++
++type Timeval struct {
++ Sec int32
++ Usec int32
++}
++
++type Timeval32 struct {
++ Sec int32
++ Usec int32
++}
++
++type Timex struct{}
++
++type Time_t int32
++
++type Tms struct{}
++
++type Utimbuf struct {
++ Actime int32
++ Modtime int32
++}
++
++type Timezone struct {
++ Minuteswest int32
++ Dsttime int32
++}
++
++type Rusage struct {
++ Utime Timeval
++ Stime Timeval
++ Maxrss int32
++ Ixrss int32
++ Idrss int32
++ Isrss int32
++ Minflt int32
++ Majflt int32
++ Nswap int32
++ Inblock int32
++ Oublock int32
++ Msgsnd int32
++ Msgrcv int32
++ Nsignals int32
++ Nvcsw int32
++ Nivcsw int32
++}
++
++type Rlimit struct {
++ Cur uint64
++ Max uint64
++}
++
++type Pid_t int32
++
++type _Gid_t uint32
++
++type dev_t uint32
++
++type Stat_t struct {
++ Dev uint32
++ Ino uint32
++ Mode uint32
++ Nlink int16
++ Flag uint16
++ Uid uint32
++ Gid uint32
++ Rdev uint32
++ Size int32
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ Blksize int32
++ Blocks int32
++ Vfstype int32
++ Vfs uint32
++ Type uint32
++ Gen uint32
++ Reserved [9]uint32
++}
++
++type StatxTimestamp struct{}
++
++type Statx_t struct{}
++
++type Dirent struct {
++ Offset uint32
++ Ino uint32
++ Reclen uint16
++ Namlen uint16
++ Name [256]uint8
++}
++
++type RawSockaddrInet4 struct {
++ Len uint8
++ Family uint8
++ Port uint16
++ Addr [4]byte /* in_addr */
++ Zero [8]uint8
++}
++
++type RawSockaddrInet6 struct {
++ Len uint8
++ Family uint8
++ Port uint16
++ Flowinfo uint32
++ Addr [16]byte /* in6_addr */
++ Scope_id uint32
++}
++
++type RawSockaddrUnix struct {
++ Len uint8
++ Family uint8
++ Path [1023]uint8
++}
++
++type RawSockaddrDatalink struct {
++ Len uint8
++ Family uint8
++ Index uint16
++ Type uint8
++ Nlen uint8
++ Alen uint8
++ Slen uint8
++ Data [120]uint8
++}
++
++type RawSockaddr struct {
++ Len uint8
++ Family uint8
++ Data [14]uint8
++}
++
++type RawSockaddrAny struct {
++ Addr RawSockaddr
++ Pad [1012]uint8
++}
++
++type _Socklen uint32
++
++type Cmsghdr struct {
++ Len uint32
++ Level int32
++ Type int32
++}
++
++type ICMPv6Filter struct {
++ Filt [8]uint32
++}
++
++type Iovec struct {
++ Base *byte
++ Len uint32
++}
++
++type IPMreq struct {
++ Multiaddr [4]byte /* in_addr */
++ Interface [4]byte /* in_addr */
++}
++
++type IPv6Mreq struct {
++ Multiaddr [16]byte /* in6_addr */
++ Interface uint32
++}
++
++type IPv6MTUInfo struct {
++ Addr RawSockaddrInet6
++ Mtu uint32
++}
++
++type Linger struct {
++ Onoff int32
++ Linger int32
++}
++
++type Msghdr struct {
++ Name *byte
++ Namelen uint32
++ Iov *Iovec
++ Iovlen int32
++ Control *byte
++ Controllen uint32
++ Flags int32
++}
++
++const (
++ SizeofSockaddrInet4 = 0x10
++ SizeofSockaddrInet6 = 0x1c
++ SizeofSockaddrAny = 0x404
++ SizeofSockaddrUnix = 0x401
++ SizeofSockaddrDatalink = 0x80
++ SizeofLinger = 0x8
++ SizeofIPMreq = 0x8
++ SizeofIPv6Mreq = 0x14
++ SizeofIPv6MTUInfo = 0x20
++ SizeofMsghdr = 0x1c
++ SizeofCmsghdr = 0xc
++ SizeofICMPv6Filter = 0x20
++)
++
++const (
++ SizeofIfMsghdr = 0x10
++)
++
++type IfMsgHdr struct {
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ Addrlen uint8
++ _ [1]byte
++}
++
++type FdSet struct {
++ Bits [2048]int32
++}
++
++type Utsname struct {
++ Sysname [32]byte
++ Nodename [32]byte
++ Release [32]byte
++ Version [32]byte
++ Machine [32]byte
++}
++
++type Ustat_t struct{}
++
++type Sigset_t struct {
++ Losigs uint32
++ Hisigs uint32
++}
++
++const (
++ AT_FDCWD = -0x2
++ AT_REMOVEDIR = 0x1
++ AT_SYMLINK_NOFOLLOW = 0x1
++)
++
++type Termios struct {
++ Iflag uint32
++ Oflag uint32
++ Cflag uint32
++ Lflag uint32
++ Cc [16]uint8
++}
++
++type Termio struct {
++ Iflag uint16
++ Oflag uint16
++ Cflag uint16
++ Lflag uint16
++ Line uint8
++ Cc [8]uint8
++ _ [1]byte
++}
++
++type Winsize struct {
++ Row uint16
++ Col uint16
++ Xpixel uint16
++ Ypixel uint16
++}
++
++type PollFd struct {
++ Fd int32
++ Events uint16
++ Revents uint16
++}
++
++const (
++ POLLERR = 0x4000
++ POLLHUP = 0x2000
++ POLLIN = 0x1
++ POLLNVAL = 0x8000
++ POLLOUT = 0x2
++ POLLPRI = 0x4
++ POLLRDBAND = 0x20
++ POLLRDNORM = 0x10
++ POLLWRBAND = 0x40
++ POLLWRNORM = 0x2
++)
++
++type Flock_t struct {
++ Type int16
++ Whence int16
++ Sysid uint32
++ Pid int32
++ Vfs int32
++ Start int64
++ Len int64
++}
++
++type Fsid_t struct {
++ Val [2]uint32
++}
++type Fsid64_t struct {
++ Val [2]uint64
++}
++
++type Statfs_t struct {
++ Version int32
++ Type int32
++ Bsize uint32
++ Blocks uint32
++ Bfree uint32
++ Bavail uint32
++ Files uint32
++ Ffree uint32
++ Fsid Fsid_t
++ Vfstype int32
++ Fsize uint32
++ Vfsnumber int32
++ Vfsoff int32
++ Vfslen int32
++ Vfsvers int32
++ Fname [32]uint8
++ Fpack [32]uint8
++ Name_max int32
++}
++
++const RNDGETENTCNT = 0x80045200
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go
+new file mode 100644
+index 00000000..b4a069ec
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go
+@@ -0,0 +1,356 @@
++// cgo -godefs types_aix.go | go run mkpost.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build ppc64,aix
++
++package unix
++
++const (
++ SizeofPtr = 0x8
++ SizeofShort = 0x2
++ SizeofInt = 0x4
++ SizeofLong = 0x8
++ SizeofLongLong = 0x8
++ PathMax = 0x3ff
++)
++
++type (
++ _C_short int16
++ _C_int int32
++ _C_long int64
++ _C_long_long int64
++)
++
++type off64 int64
++type off int64
++type Mode_t uint32
++
++type Timespec struct {
++ Sec int64
++ Nsec int64
++}
++
++type Timeval struct {
++ Sec int64
++ Usec int32
++ _ [4]byte
++}
++
++type Timeval32 struct {
++ Sec int32
++ Usec int32
++}
++
++type Timex struct{}
++
++type Time_t int64
++
++type Tms struct{}
++
++type Utimbuf struct {
++ Actime int64
++ Modtime int64
++}
++
++type Timezone struct {
++ Minuteswest int32
++ Dsttime int32
++}
++
++type Rusage struct {
++ Utime Timeval
++ Stime Timeval
++ Maxrss int64
++ Ixrss int64
++ Idrss int64
++ Isrss int64
++ Minflt int64
++ Majflt int64
++ Nswap int64
++ Inblock int64
++ Oublock int64
++ Msgsnd int64
++ Msgrcv int64
++ Nsignals int64
++ Nvcsw int64
++ Nivcsw int64
++}
++
++type Rlimit struct {
++ Cur uint64
++ Max uint64
++}
++
++type Pid_t int32
++
++type _Gid_t uint32
++
++type dev_t uint64
++
++type Stat_t struct {
++ Dev uint64
++ Ino uint64
++ Mode uint32
++ Nlink int16
++ Flag uint16
++ Uid uint32
++ Gid uint32
++ Rdev uint64
++ Ssize int32
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ Blksize int64
++ Blocks int64
++ Vfstype int32
++ Vfs uint32
++ Type uint32
++ Gen uint32
++ Reserved [9]uint32
++ Padto_ll uint32
++ Size int64
++}
++
++type StatxTimestamp struct{}
++
++type Statx_t struct{}
++
++type Dirent struct {
++ Offset uint64
++ Ino uint64
++ Reclen uint16
++ Namlen uint16
++ Name [256]uint8
++ _ [4]byte
++}
++
++type RawSockaddrInet4 struct {
++ Len uint8
++ Family uint8
++ Port uint16
++ Addr [4]byte /* in_addr */
++ Zero [8]uint8
++}
++
++type RawSockaddrInet6 struct {
++ Len uint8
++ Family uint8
++ Port uint16
++ Flowinfo uint32
++ Addr [16]byte /* in6_addr */
++ Scope_id uint32
++}
++
++type RawSockaddrUnix struct {
++ Len uint8
++ Family uint8
++ Path [1023]uint8
++}
++
++type RawSockaddrDatalink struct {
++ Len uint8
++ Family uint8
++ Index uint16
++ Type uint8
++ Nlen uint8
++ Alen uint8
++ Slen uint8
++ Data [120]uint8
++}
++
++type RawSockaddr struct {
++ Len uint8
++ Family uint8
++ Data [14]uint8
++}
++
++type RawSockaddrAny struct {
++ Addr RawSockaddr
++ Pad [1012]uint8
++}
++
++type _Socklen uint32
++
++type Cmsghdr struct {
++ Len uint32
++ Level int32
++ Type int32
++}
++
++type ICMPv6Filter struct {
++ Filt [8]uint32
++}
++
++type Iovec struct {
++ Base *byte
++ Len uint64
++}
++
++type IPMreq struct {
++ Multiaddr [4]byte /* in_addr */
++ Interface [4]byte /* in_addr */
++}
++
++type IPv6Mreq struct {
++ Multiaddr [16]byte /* in6_addr */
++ Interface uint32
++}
++
++type IPv6MTUInfo struct {
++ Addr RawSockaddrInet6
++ Mtu uint32
++}
++
++type Linger struct {
++ Onoff int32
++ Linger int32
++}
++
++type Msghdr struct {
++ Name *byte
++ Namelen uint32
++ Iov *Iovec
++ Iovlen int32
++ Control *byte
++ Controllen uint32
++ Flags int32
++}
++
++const (
++ SizeofSockaddrInet4 = 0x10
++ SizeofSockaddrInet6 = 0x1c
++ SizeofSockaddrAny = 0x404
++ SizeofSockaddrUnix = 0x401
++ SizeofSockaddrDatalink = 0x80
++ SizeofLinger = 0x8
++ SizeofIPMreq = 0x8
++ SizeofIPv6Mreq = 0x14
++ SizeofIPv6MTUInfo = 0x20
++ SizeofMsghdr = 0x30
++ SizeofCmsghdr = 0xc
++ SizeofICMPv6Filter = 0x20
++)
++
++const (
++ SizeofIfMsghdr = 0x10
++)
++
++type IfMsgHdr struct {
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ Addrlen uint8
++ _ [1]byte
++}
++
++type FdSet struct {
++ Bits [1024]int64
++}
++
++type Utsname struct {
++ Sysname [32]byte
++ Nodename [32]byte
++ Release [32]byte
++ Version [32]byte
++ Machine [32]byte
++}
++
++type Ustat_t struct{}
++
++type Sigset_t struct {
++ Set [4]uint64
++}
++
++const (
++ AT_FDCWD = -0x2
++ AT_REMOVEDIR = 0x1
++ AT_SYMLINK_NOFOLLOW = 0x1
++)
++
++type Termios struct {
++ Iflag uint32
++ Oflag uint32
++ Cflag uint32
++ Lflag uint32
++ Cc [16]uint8
++}
++
++type Termio struct {
++ Iflag uint16
++ Oflag uint16
++ Cflag uint16
++ Lflag uint16
++ Line uint8
++ Cc [8]uint8
++ _ [1]byte
++}
++
++type Winsize struct {
++ Row uint16
++ Col uint16
++ Xpixel uint16
++ Ypixel uint16
++}
++
++type PollFd struct {
++ Fd int32
++ Events uint16
++ Revents uint16
++}
++
++const (
++ POLLERR = 0x4000
++ POLLHUP = 0x2000
++ POLLIN = 0x1
++ POLLNVAL = 0x8000
++ POLLOUT = 0x2
++ POLLPRI = 0x4
++ POLLRDBAND = 0x20
++ POLLRDNORM = 0x10
++ POLLWRBAND = 0x40
++ POLLWRNORM = 0x2
++)
++
++type Flock_t struct {
++ Type int16
++ Whence int16
++ Sysid uint32
++ Pid int32
++ Vfs int32
++ Start int64
++ Len int64
++}
++
++type Fsid_t struct {
++ Val [2]uint32
++}
++type Fsid64_t struct {
++ Val [2]uint64
++}
++
++type Statfs_t struct {
++ Version int32
++ Type int32
++ Bsize uint64
++ Blocks uint64
++ Bfree uint64
++ Bavail uint64
++ Files uint64
++ Ffree uint64
++ Fsid Fsid64_t
++ Vfstype int32
++ Fsize uint64
++ Vfsnumber int32
++ Vfsoff int32
++ Vfslen int32
++ Vfsvers int32
++ Fname [32]uint8
++ Fpack [32]uint8
++ Name_max int32
++ _ [4]byte
++}
++
++const RNDGETENTCNT = 0x80045200
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go
+index e61d78a5..9f47b87c 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go
+@@ -6,11 +6,11 @@
+ package unix
+
+ const (
+- sizeofPtr = 0x4
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x4
+- sizeofLongLong = 0x8
++ SizeofPtr = 0x4
++ SizeofShort = 0x2
++ SizeofInt = 0x4
++ SizeofLong = 0x4
++ SizeofLongLong = 0x8
+ )
+
+ type (
+@@ -59,24 +59,24 @@ type Rlimit struct {
+ type _Gid_t uint32
+
+ type Stat_t struct {
+- Dev int32
+- Mode uint16
+- Nlink uint16
+- Ino uint64
+- Uid uint32
+- Gid uint32
+- Rdev int32
+- Atimespec Timespec
+- Mtimespec Timespec
+- Ctimespec Timespec
+- Birthtimespec Timespec
+- Size int64
+- Blocks int64
+- Blksize int32
+- Flags uint32
+- Gen uint32
+- Lspare int32
+- Qspare [2]int64
++ Dev int32
++ Mode uint16
++ Nlink uint16
++ Ino uint64
++ Uid uint32
++ Gid uint32
++ Rdev int32
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ Btim Timespec
++ Size int64
++ Blocks int64
++ Blksize int32
++ Flags uint32
++ Gen uint32
++ Lspare int32
++ Qspare [2]int64
+ }
+
+ type Statfs_t struct {
+@@ -136,13 +136,13 @@ type Fsid struct {
+ }
+
+ type Dirent struct {
+- Ino uint64
+- Seekoff uint64
+- Reclen uint16
+- Namlen uint16
+- Type uint8
+- Name [1024]int8
+- Pad_cgo_0 [3]byte
++ Ino uint64
++ Seekoff uint64
++ Reclen uint16
++ Namlen uint16
++ Type uint8
++ Name [1024]int8
++ _ [3]byte
+ }
+
+ type RawSockaddrInet4 struct {
+@@ -295,14 +295,14 @@ const (
+ )
+
+ type IfMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Data IfData
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ [2]byte
++ Data IfData
+ }
+
+ type IfData struct {
+@@ -338,51 +338,51 @@ type IfData struct {
+ }
+
+ type IfaMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Metric int32
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ [2]byte
++ Metric int32
+ }
+
+ type IfmaMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ [2]byte
+ }
+
+ type IfmaMsghdr2 struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Refcount int32
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ [2]byte
++ Refcount int32
+ }
+
+ type RtMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Flags int32
+- Addrs int32
+- Pid int32
+- Seq int32
+- Errno int32
+- Use int32
+- Inits uint32
+- Rmx RtMetrics
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Index uint16
++ _ [2]byte
++ Flags int32
++ Addrs int32
++ Pid int32
++ Seq int32
++ Errno int32
++ Use int32
++ Inits uint32
++ Rmx RtMetrics
+ }
+
+ type RtMetrics struct {
+@@ -430,11 +430,11 @@ type BpfInsn struct {
+ }
+
+ type BpfHdr struct {
+- Tstamp Timeval
+- Caplen uint32
+- Datalen uint32
+- Hdrlen uint16
+- Pad_cgo_0 [2]byte
++ Tstamp Timeval
++ Caplen uint32
++ Datalen uint32
++ Hdrlen uint16
++ _ [2]byte
+ }
+
+ type Termios struct {
+@@ -460,3 +460,40 @@ const (
+ AT_SYMLINK_FOLLOW = 0x40
+ AT_SYMLINK_NOFOLLOW = 0x20
+ )
++
++type PollFd struct {
++ Fd int32
++ Events int16
++ Revents int16
++}
++
++const (
++ POLLERR = 0x8
++ POLLHUP = 0x10
++ POLLIN = 0x1
++ POLLNVAL = 0x20
++ POLLOUT = 0x4
++ POLLPRI = 0x2
++ POLLRDBAND = 0x80
++ POLLRDNORM = 0x40
++ POLLWRBAND = 0x100
++ POLLWRNORM = 0x4
++)
++
++type Utsname struct {
++ Sysname [256]byte
++ Nodename [256]byte
++ Release [256]byte
++ Version [256]byte
++ Machine [256]byte
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++ Hz int32
++ Tick int32
++ Tickadj int32
++ Stathz int32
++ Profhz int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go
+index 2619155f..966798a8 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go
+@@ -6,11 +6,11 @@
+ package unix
+
+ const (
+- sizeofPtr = 0x8
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x8
+- sizeofLongLong = 0x8
++ SizeofPtr = 0x8
++ SizeofShort = 0x2
++ SizeofInt = 0x4
++ SizeofLong = 0x8
++ SizeofLongLong = 0x8
+ )
+
+ type (
+@@ -26,9 +26,9 @@ type Timespec struct {
+ }
+
+ type Timeval struct {
+- Sec int64
+- Usec int32
+- Pad_cgo_0 [4]byte
++ Sec int64
++ Usec int32
++ _ [4]byte
+ }
+
+ type Timeval32 struct {
+@@ -63,25 +63,25 @@ type Rlimit struct {
+ type _Gid_t uint32
+
+ type Stat_t struct {
+- Dev int32
+- Mode uint16
+- Nlink uint16
+- Ino uint64
+- Uid uint32
+- Gid uint32
+- Rdev int32
+- Pad_cgo_0 [4]byte
+- Atimespec Timespec
+- Mtimespec Timespec
+- Ctimespec Timespec
+- Birthtimespec Timespec
+- Size int64
+- Blocks int64
+- Blksize int32
+- Flags uint32
+- Gen uint32
+- Lspare int32
+- Qspare [2]int64
++ Dev int32
++ Mode uint16
++ Nlink uint16
++ Ino uint64
++ Uid uint32
++ Gid uint32
++ Rdev int32
++ _ [4]byte
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ Btim Timespec
++ Size int64
++ Blocks int64
++ Blksize int32
++ Flags uint32
++ Gen uint32
++ Lspare int32
++ Qspare [2]int64
+ }
+
+ type Statfs_t struct {
+@@ -120,9 +120,9 @@ type Fstore_t struct {
+ }
+
+ type Radvisory_t struct {
+- Offset int64
+- Count int32
+- Pad_cgo_0 [4]byte
++ Offset int64
++ Count int32
++ _ [4]byte
+ }
+
+ type Fbootstraptransfer_t struct {
+@@ -132,9 +132,9 @@ type Fbootstraptransfer_t struct {
+ }
+
+ type Log2phys_t struct {
+- Flags uint32
+- Pad_cgo_0 [8]byte
+- Pad_cgo_1 [8]byte
++ Flags uint32
++ _ [8]byte
++ _ [8]byte
+ }
+
+ type Fsid struct {
+@@ -142,13 +142,13 @@ type Fsid struct {
+ }
+
+ type Dirent struct {
+- Ino uint64
+- Seekoff uint64
+- Reclen uint16
+- Namlen uint16
+- Type uint8
+- Name [1024]int8
+- Pad_cgo_0 [3]byte
++ Ino uint64
++ Seekoff uint64
++ Reclen uint16
++ Namlen uint16
++ Type uint8
++ Name [1024]int8
++ _ [3]byte
+ }
+
+ type RawSockaddrInet4 struct {
+@@ -221,10 +221,10 @@ type IPv6Mreq struct {
+ type Msghdr struct {
+ Name *byte
+ Namelen uint32
+- Pad_cgo_0 [4]byte
++ _ [4]byte
+ Iov *Iovec
+ Iovlen int32
+- Pad_cgo_1 [4]byte
++ _ [4]byte
+ Control *byte
+ Controllen uint32
+ Flags int32
+@@ -303,14 +303,14 @@ const (
+ )
+
+ type IfMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Data IfData
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ [2]byte
++ Data IfData
+ }
+
+ type IfData struct {
+@@ -346,51 +346,51 @@ type IfData struct {
+ }
+
+ type IfaMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Metric int32
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ [2]byte
++ Metric int32
+ }
+
+ type IfmaMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ [2]byte
+ }
+
+ type IfmaMsghdr2 struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Refcount int32
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ [2]byte
++ Refcount int32
+ }
+
+ type RtMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Flags int32
+- Addrs int32
+- Pid int32
+- Seq int32
+- Errno int32
+- Use int32
+- Inits uint32
+- Rmx RtMetrics
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Index uint16
++ _ [2]byte
++ Flags int32
++ Addrs int32
++ Pid int32
++ Seq int32
++ Errno int32
++ Use int32
++ Inits uint32
++ Rmx RtMetrics
+ }
+
+ type RtMetrics struct {
+@@ -426,9 +426,9 @@ type BpfStat struct {
+ }
+
+ type BpfProgram struct {
+- Len uint32
+- Pad_cgo_0 [4]byte
+- Insns *BpfInsn
++ Len uint32
++ _ [4]byte
++ Insns *BpfInsn
+ }
+
+ type BpfInsn struct {
+@@ -439,22 +439,22 @@ type BpfInsn struct {
+ }
+
+ type BpfHdr struct {
+- Tstamp Timeval32
+- Caplen uint32
+- Datalen uint32
+- Hdrlen uint16
+- Pad_cgo_0 [2]byte
++ Tstamp Timeval32
++ Caplen uint32
++ Datalen uint32
++ Hdrlen uint16
++ _ [2]byte
+ }
+
+ type Termios struct {
+- Iflag uint64
+- Oflag uint64
+- Cflag uint64
+- Lflag uint64
+- Cc [20]uint8
+- Pad_cgo_0 [4]byte
+- Ispeed uint64
+- Ospeed uint64
++ Iflag uint64
++ Oflag uint64
++ Cflag uint64
++ Lflag uint64
++ Cc [20]uint8
++ _ [4]byte
++ Ispeed uint64
++ Ospeed uint64
+ }
+
+ type Winsize struct {
+@@ -470,3 +470,40 @@ const (
+ AT_SYMLINK_FOLLOW = 0x40
+ AT_SYMLINK_NOFOLLOW = 0x20
+ )
++
++type PollFd struct {
++ Fd int32
++ Events int16
++ Revents int16
++}
++
++const (
++ POLLERR = 0x8
++ POLLHUP = 0x10
++ POLLIN = 0x1
++ POLLNVAL = 0x20
++ POLLOUT = 0x4
++ POLLPRI = 0x2
++ POLLRDBAND = 0x80
++ POLLRDNORM = 0x40
++ POLLWRBAND = 0x100
++ POLLWRNORM = 0x4
++)
++
++type Utsname struct {
++ Sysname [256]byte
++ Nodename [256]byte
++ Release [256]byte
++ Version [256]byte
++ Machine [256]byte
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++ Hz int32
++ Tick int32
++ Tickadj int32
++ Stathz int32
++ Profhz int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go
+index 4dca0d4d..4fe4c9cd 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go
+@@ -7,11 +7,11 @@
+ package unix
+
+ const (
+- sizeofPtr = 0x4
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x4
+- sizeofLongLong = 0x8
++ SizeofPtr = 0x4
++ SizeofShort = 0x2
++ SizeofInt = 0x4
++ SizeofLong = 0x4
++ SizeofLongLong = 0x8
+ )
+
+ type (
+@@ -60,24 +60,24 @@ type Rlimit struct {
+ type _Gid_t uint32
+
+ type Stat_t struct {
+- Dev int32
+- Mode uint16
+- Nlink uint16
+- Ino uint64
+- Uid uint32
+- Gid uint32
+- Rdev int32
+- Atimespec Timespec
+- Mtimespec Timespec
+- Ctimespec Timespec
+- Birthtimespec Timespec
+- Size int64
+- Blocks int64
+- Blksize int32
+- Flags uint32
+- Gen uint32
+- Lspare int32
+- Qspare [2]int64
++ Dev int32
++ Mode uint16
++ Nlink uint16
++ Ino uint64
++ Uid uint32
++ Gid uint32
++ Rdev int32
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ Btim Timespec
++ Size int64
++ Blocks int64
++ Blksize int32
++ Flags uint32
++ Gen uint32
++ Lspare int32
++ Qspare [2]int64
+ }
+
+ type Statfs_t struct {
+@@ -137,13 +137,13 @@ type Fsid struct {
+ }
+
+ type Dirent struct {
+- Ino uint64
+- Seekoff uint64
+- Reclen uint16
+- Namlen uint16
+- Type uint8
+- Name [1024]int8
+- Pad_cgo_0 [3]byte
++ Ino uint64
++ Seekoff uint64
++ Reclen uint16
++ Namlen uint16
++ Type uint8
++ Name [1024]int8
++ _ [3]byte
+ }
+
+ type RawSockaddrInet4 struct {
+@@ -296,14 +296,14 @@ const (
+ )
+
+ type IfMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Data IfData
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ [2]byte
++ Data IfData
+ }
+
+ type IfData struct {
+@@ -339,51 +339,51 @@ type IfData struct {
+ }
+
+ type IfaMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Metric int32
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ [2]byte
++ Metric int32
+ }
+
+ type IfmaMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ [2]byte
+ }
+
+ type IfmaMsghdr2 struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Refcount int32
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ [2]byte
++ Refcount int32
+ }
+
+ type RtMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Flags int32
+- Addrs int32
+- Pid int32
+- Seq int32
+- Errno int32
+- Use int32
+- Inits uint32
+- Rmx RtMetrics
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Index uint16
++ _ [2]byte
++ Flags int32
++ Addrs int32
++ Pid int32
++ Seq int32
++ Errno int32
++ Use int32
++ Inits uint32
++ Rmx RtMetrics
+ }
+
+ type RtMetrics struct {
+@@ -431,11 +431,11 @@ type BpfInsn struct {
+ }
+
+ type BpfHdr struct {
+- Tstamp Timeval
+- Caplen uint32
+- Datalen uint32
+- Hdrlen uint16
+- Pad_cgo_0 [2]byte
++ Tstamp Timeval
++ Caplen uint32
++ Datalen uint32
++ Hdrlen uint16
++ _ [2]byte
+ }
+
+ type Termios struct {
+@@ -461,3 +461,40 @@ const (
+ AT_SYMLINK_FOLLOW = 0x40
+ AT_SYMLINK_NOFOLLOW = 0x20
+ )
++
++type PollFd struct {
++ Fd int32
++ Events int16
++ Revents int16
++}
++
++const (
++ POLLERR = 0x8
++ POLLHUP = 0x10
++ POLLIN = 0x1
++ POLLNVAL = 0x20
++ POLLOUT = 0x4
++ POLLPRI = 0x2
++ POLLRDBAND = 0x80
++ POLLRDNORM = 0x40
++ POLLWRBAND = 0x100
++ POLLWRNORM = 0x4
++)
++
++type Utsname struct {
++ Sysname [256]byte
++ Nodename [256]byte
++ Release [256]byte
++ Version [256]byte
++ Machine [256]byte
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++ Hz int32
++ Tick int32
++ Tickadj int32
++ Stathz int32
++ Profhz int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go
+index f2881fd1..21999e4b 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go
+@@ -1,15 +1,16 @@
++// cgo -godefs types_darwin.go | go run mkpost.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
+ // +build arm64,darwin
+-// Created by cgo -godefs - DO NOT EDIT
+-// cgo -godefs types_darwin.go
+
+ package unix
+
+ const (
+- sizeofPtr = 0x8
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x8
+- sizeofLongLong = 0x8
++ SizeofPtr = 0x8
++ SizeofShort = 0x2
++ SizeofInt = 0x4
++ SizeofLong = 0x8
++ SizeofLongLong = 0x8
+ )
+
+ type (
+@@ -25,9 +26,9 @@ type Timespec struct {
+ }
+
+ type Timeval struct {
+- Sec int64
+- Usec int32
+- Pad_cgo_0 [4]byte
++ Sec int64
++ Usec int32
++ _ [4]byte
+ }
+
+ type Timeval32 struct {
+@@ -62,25 +63,25 @@ type Rlimit struct {
+ type _Gid_t uint32
+
+ type Stat_t struct {
+- Dev int32
+- Mode uint16
+- Nlink uint16
+- Ino uint64
+- Uid uint32
+- Gid uint32
+- Rdev int32
+- Pad_cgo_0 [4]byte
+- Atimespec Timespec
+- Mtimespec Timespec
+- Ctimespec Timespec
+- Birthtimespec Timespec
+- Size int64
+- Blocks int64
+- Blksize int32
+- Flags uint32
+- Gen uint32
+- Lspare int32
+- Qspare [2]int64
++ Dev int32
++ Mode uint16
++ Nlink uint16
++ Ino uint64
++ Uid uint32
++ Gid uint32
++ Rdev int32
++ _ [4]byte
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ Btim Timespec
++ Size int64
++ Blocks int64
++ Blksize int32
++ Flags uint32
++ Gen uint32
++ Lspare int32
++ Qspare [2]int64
+ }
+
+ type Statfs_t struct {
+@@ -119,9 +120,9 @@ type Fstore_t struct {
+ }
+
+ type Radvisory_t struct {
+- Offset int64
+- Count int32
+- Pad_cgo_0 [4]byte
++ Offset int64
++ Count int32
++ _ [4]byte
+ }
+
+ type Fbootstraptransfer_t struct {
+@@ -131,9 +132,9 @@ type Fbootstraptransfer_t struct {
+ }
+
+ type Log2phys_t struct {
+- Flags uint32
+- Pad_cgo_0 [8]byte
+- Pad_cgo_1 [8]byte
++ Flags uint32
++ _ [8]byte
++ _ [8]byte
+ }
+
+ type Fsid struct {
+@@ -141,13 +142,13 @@ type Fsid struct {
+ }
+
+ type Dirent struct {
+- Ino uint64
+- Seekoff uint64
+- Reclen uint16
+- Namlen uint16
+- Type uint8
+- Name [1024]int8
+- Pad_cgo_0 [3]byte
++ Ino uint64
++ Seekoff uint64
++ Reclen uint16
++ Namlen uint16
++ Type uint8
++ Name [1024]int8
++ _ [3]byte
+ }
+
+ type RawSockaddrInet4 struct {
+@@ -220,10 +221,10 @@ type IPv6Mreq struct {
+ type Msghdr struct {
+ Name *byte
+ Namelen uint32
+- Pad_cgo_0 [4]byte
++ _ [4]byte
+ Iov *Iovec
+ Iovlen int32
+- Pad_cgo_1 [4]byte
++ _ [4]byte
+ Control *byte
+ Controllen uint32
+ Flags int32
+@@ -302,14 +303,14 @@ const (
+ )
+
+ type IfMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Data IfData
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ [2]byte
++ Data IfData
+ }
+
+ type IfData struct {
+@@ -345,51 +346,51 @@ type IfData struct {
+ }
+
+ type IfaMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Metric int32
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ [2]byte
++ Metric int32
+ }
+
+ type IfmaMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ [2]byte
+ }
+
+ type IfmaMsghdr2 struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Refcount int32
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ [2]byte
++ Refcount int32
+ }
+
+ type RtMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Flags int32
+- Addrs int32
+- Pid int32
+- Seq int32
+- Errno int32
+- Use int32
+- Inits uint32
+- Rmx RtMetrics
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Index uint16
++ _ [2]byte
++ Flags int32
++ Addrs int32
++ Pid int32
++ Seq int32
++ Errno int32
++ Use int32
++ Inits uint32
++ Rmx RtMetrics
+ }
+
+ type RtMetrics struct {
+@@ -425,9 +426,9 @@ type BpfStat struct {
+ }
+
+ type BpfProgram struct {
+- Len uint32
+- Pad_cgo_0 [4]byte
+- Insns *BpfInsn
++ Len uint32
++ _ [4]byte
++ Insns *BpfInsn
+ }
+
+ type BpfInsn struct {
+@@ -438,22 +439,22 @@ type BpfInsn struct {
+ }
+
+ type BpfHdr struct {
+- Tstamp Timeval32
+- Caplen uint32
+- Datalen uint32
+- Hdrlen uint16
+- Pad_cgo_0 [2]byte
++ Tstamp Timeval32
++ Caplen uint32
++ Datalen uint32
++ Hdrlen uint16
++ _ [2]byte
+ }
+
+ type Termios struct {
+- Iflag uint64
+- Oflag uint64
+- Cflag uint64
+- Lflag uint64
+- Cc [20]uint8
+- Pad_cgo_0 [4]byte
+- Ispeed uint64
+- Ospeed uint64
++ Iflag uint64
++ Oflag uint64
++ Cflag uint64
++ Lflag uint64
++ Cc [20]uint8
++ _ [4]byte
++ Ispeed uint64
++ Ospeed uint64
+ }
+
+ type Winsize struct {
+@@ -469,3 +470,40 @@ const (
+ AT_SYMLINK_FOLLOW = 0x40
+ AT_SYMLINK_NOFOLLOW = 0x20
+ )
++
++type PollFd struct {
++ Fd int32
++ Events int16
++ Revents int16
++}
++
++const (
++ POLLERR = 0x8
++ POLLHUP = 0x10
++ POLLIN = 0x1
++ POLLNVAL = 0x20
++ POLLOUT = 0x4
++ POLLPRI = 0x2
++ POLLRDBAND = 0x80
++ POLLRDNORM = 0x40
++ POLLWRBAND = 0x100
++ POLLWRNORM = 0x4
++)
++
++type Utsname struct {
++ Sysname [256]byte
++ Nodename [256]byte
++ Release [256]byte
++ Version [256]byte
++ Machine [256]byte
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++ Hz int32
++ Tick int32
++ Tickadj int32
++ Stathz int32
++ Profhz int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go
+index 67c6bf88..71ea1d6d 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go
+@@ -6,11 +6,11 @@
+ package unix
+
+ const (
+- sizeofPtr = 0x8
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x8
+- sizeofLongLong = 0x8
++ SizeofPtr = 0x8
++ SizeofShort = 0x2
++ SizeofInt = 0x4
++ SizeofLong = 0x8
++ SizeofLongLong = 0x8
+ )
+
+ type (
+@@ -56,43 +56,26 @@ type Rlimit struct {
+
+ type _Gid_t uint32
+
+-const (
+- S_IFMT = 0xf000
+- S_IFIFO = 0x1000
+- S_IFCHR = 0x2000
+- S_IFDIR = 0x4000
+- S_IFBLK = 0x6000
+- S_IFREG = 0x8000
+- S_IFLNK = 0xa000
+- S_IFSOCK = 0xc000
+- S_ISUID = 0x800
+- S_ISGID = 0x400
+- S_ISVTX = 0x200
+- S_IRUSR = 0x100
+- S_IWUSR = 0x80
+- S_IXUSR = 0x40
+-)
+-
+ type Stat_t struct {
+- Ino uint64
+- Nlink uint32
+- Dev uint32
+- Mode uint16
+- Padding1 uint16
+- Uid uint32
+- Gid uint32
+- Rdev uint32
+- Atim Timespec
+- Mtim Timespec
+- Ctim Timespec
+- Size int64
+- Blocks int64
+- Blksize uint32
+- Flags uint32
+- Gen uint32
+- Lspare int32
+- Qspare1 int64
+- Qspare2 int64
++ Ino uint64
++ Nlink uint32
++ Dev uint32
++ Mode uint16
++ _1 uint16
++ Uid uint32
++ Gid uint32
++ Rdev uint32
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ Size int64
++ Blocks int64
++ Blksize uint32
++ Flags uint32
++ Gen uint32
++ Lspare int32
++ Qspare1 int64
++ Qspare2 int64
+ }
+
+ type Statfs_t struct {
+@@ -108,7 +91,7 @@ type Statfs_t struct {
+ Owner uint32
+ Type int32
+ Flags int32
+- Pad_cgo_0 [4]byte
++ _ [4]byte
+ Syncwrites int64
+ Asyncwrites int64
+ Fstypename [16]int8
+@@ -118,7 +101,7 @@ type Statfs_t struct {
+ Spares1 int16
+ Mntfromname [80]int8
+ Spares2 int16
+- Pad_cgo_1 [4]byte
++ _ [4]byte
+ Spare [2]int64
+ }
+
+@@ -143,6 +126,10 @@ type Fsid struct {
+ Val [2]int32
+ }
+
++const (
++ PathMax = 0x400
++)
++
+ type RawSockaddrInet4 struct {
+ Len uint8
+ Family uint8
+@@ -215,10 +202,10 @@ type IPv6Mreq struct {
+ type Msghdr struct {
+ Name *byte
+ Namelen uint32
+- Pad_cgo_0 [4]byte
++ _ [4]byte
+ Iov *Iovec
+ Iovlen int32
+- Pad_cgo_1 [4]byte
++ _ [4]byte
+ Control *byte
+ Controllen uint32
+ Flags int32
+@@ -290,14 +277,14 @@ const (
+ )
+
+ type IfMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Data IfData
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ [2]byte
++ Data IfData
+ }
+
+ type IfData struct {
+@@ -307,7 +294,7 @@ type IfData struct {
+ Hdrlen uint8
+ Recvquota uint8
+ Xmitquota uint8
+- Pad_cgo_0 [2]byte
++ _ [2]byte
+ Mtu uint64
+ Metric uint64
+ Link_state uint64
+@@ -329,24 +316,24 @@ type IfData struct {
+ }
+
+ type IfaMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Metric int32
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ [2]byte
++ Metric int32
+ }
+
+ type IfmaMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ [2]byte
+ }
+
+ type IfAnnounceMsghdr struct {
+@@ -359,19 +346,19 @@ type IfAnnounceMsghdr struct {
+ }
+
+ type RtMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Flags int32
+- Addrs int32
+- Pid int32
+- Seq int32
+- Errno int32
+- Use int32
+- Inits uint64
+- Rmx RtMetrics
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Index uint16
++ _ [2]byte
++ Flags int32
++ Addrs int32
++ Pid int32
++ Seq int32
++ Errno int32
++ Use int32
++ Inits uint64
++ Rmx RtMetrics
+ }
+
+ type RtMetrics struct {
+@@ -387,7 +374,7 @@ type RtMetrics struct {
+ Hopcount uint64
+ Mssopt uint16
+ Pad uint16
+- Pad_cgo_0 [4]byte
++ _ [4]byte
+ Msl uint64
+ Iwmaxsegs uint64
+ Iwcapsegs uint64
+@@ -412,9 +399,9 @@ type BpfStat struct {
+ }
+
+ type BpfProgram struct {
+- Len uint32
+- Pad_cgo_0 [4]byte
+- Insns *BpfInsn
++ Len uint32
++ _ [4]byte
++ Insns *BpfInsn
+ }
+
+ type BpfInsn struct {
+@@ -425,11 +412,11 @@ type BpfInsn struct {
+ }
+
+ type BpfHdr struct {
+- Tstamp Timeval
+- Caplen uint32
+- Datalen uint32
+- Hdrlen uint16
+- Pad_cgo_0 [6]byte
++ Tstamp Timeval
++ Caplen uint32
++ Datalen uint32
++ Hdrlen uint16
++ _ [6]byte
+ }
+
+ type Termios struct {
+@@ -442,7 +429,51 @@ type Termios struct {
+ Ospeed uint32
+ }
+
++type Winsize struct {
++ Row uint16
++ Col uint16
++ Xpixel uint16
++ Ypixel uint16
++}
++
+ const (
+ AT_FDCWD = 0xfffafdcd
+ AT_SYMLINK_NOFOLLOW = 0x1
+ )
++
++type PollFd struct {
++ Fd int32
++ Events int16
++ Revents int16
++}
++
++const (
++ POLLERR = 0x8
++ POLLHUP = 0x10
++ POLLIN = 0x1
++ POLLNVAL = 0x20
++ POLLOUT = 0x4
++ POLLPRI = 0x2
++ POLLRDBAND = 0x80
++ POLLRDNORM = 0x40
++ POLLWRBAND = 0x100
++ POLLWRNORM = 0x4
++)
++
++type Utsname struct {
++ Sysname [32]byte
++ Nodename [32]byte
++ Release [32]byte
++ Version [32]byte
++ Machine [32]byte
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++ Hz int32
++ Tick int32
++ Tickadj int32
++ Stathz int32
++ Profhz int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go
+index 5b28bcbb..2a3ec615 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go
+@@ -6,11 +6,11 @@
+ package unix
+
+ const (
+- sizeofPtr = 0x4
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x4
+- sizeofLongLong = 0x8
++ SizeofPtr = 0x4
++ SizeofShort = 0x2
++ SizeofInt = 0x4
++ SizeofLong = 0x4
++ SizeofLongLong = 0x8
+ )
+
+ type (
+@@ -57,41 +57,55 @@ type Rlimit struct {
+ type _Gid_t uint32
+
+ const (
+- S_IFMT = 0xf000
+- S_IFIFO = 0x1000
+- S_IFCHR = 0x2000
+- S_IFDIR = 0x4000
+- S_IFBLK = 0x6000
+- S_IFREG = 0x8000
+- S_IFLNK = 0xa000
+- S_IFSOCK = 0xc000
+- S_ISUID = 0x800
+- S_ISGID = 0x400
+- S_ISVTX = 0x200
+- S_IRUSR = 0x100
+- S_IWUSR = 0x80
+- S_IXUSR = 0x40
++ _statfsVersion = 0x20140518
++ _dirblksiz = 0x400
+ )
+
+ type Stat_t struct {
+- Dev uint32
+- Ino uint32
+- Mode uint16
+- Nlink uint16
+- Uid uint32
+- Gid uint32
+- Rdev uint32
+- Atimespec Timespec
+- Mtimespec Timespec
+- Ctimespec Timespec
+- Size int64
+- Blocks int64
+- Blksize int32
+- Flags uint32
+- Gen uint32
+- Lspare int32
+- Birthtimespec Timespec
+- Pad_cgo_0 [8]byte
++ Dev uint64
++ Ino uint64
++ Nlink uint64
++ Mode uint16
++ _0 int16
++ Uid uint32
++ Gid uint32
++ _1 int32
++ Rdev uint64
++ _ int32
++ Atim Timespec
++ _ int32
++ Mtim Timespec
++ _ int32
++ Ctim Timespec
++ _ int32
++ Btim Timespec
++ Size int64
++ Blocks int64
++ Blksize int32
++ Flags uint32
++ Gen uint64
++ Spare [10]uint64
++}
++
++type stat_freebsd11_t struct {
++ Dev uint32
++ Ino uint32
++ Mode uint16
++ Nlink uint16
++ Uid uint32
++ Gid uint32
++ Rdev uint32
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ Size int64
++ Blocks int64
++ Blksize int32
++ Flags uint32
++ Gen uint32
++ Lspare int32
++ Btim Timespec
++ _ [8]byte
+ }
+
+ type Statfs_t struct {
+@@ -114,9 +128,34 @@ type Statfs_t struct {
+ Owner uint32
+ Fsid Fsid
+ Charspare [80]int8
+- Fstypename [16]int8
+- Mntfromname [88]int8
+- Mntonname [88]int8
++ Fstypename [16]byte
++ Mntfromname [1024]byte
++ Mntonname [1024]byte
++}
++
++type statfs_freebsd11_t struct {
++ Version uint32
++ Type uint32
++ Flags uint64
++ Bsize uint64
++ Iosize uint64
++ Blocks uint64
++ Bfree uint64
++ Bavail int64
++ Files uint64
++ Ffree int64
++ Syncwrites uint64
++ Asyncwrites uint64
++ Syncreads uint64
++ Asyncreads uint64
++ Spare [10]uint64
++ Namemax uint32
++ Owner uint32
++ Fsid Fsid
++ Charspare [80]int8
++ Fstypename [16]byte
++ Mntfromname [88]byte
++ Mntonname [88]byte
+ }
+
+ type Flock_t struct {
+@@ -129,6 +168,17 @@ type Flock_t struct {
+ }
+
+ type Dirent struct {
++ Fileno uint64
++ Off int64
++ Reclen uint16
++ Type uint8
++ Pad0 uint8
++ Namlen uint16
++ Pad1 uint16
++ Name [256]int8
++}
++
++type dirent_freebsd11 struct {
+ Fileno uint32
+ Reclen uint16
+ Type uint8
+@@ -140,6 +190,10 @@ type Fsid struct {
+ Val [2]int32
+ }
+
++const (
++ PathMax = 0x400
++)
++
+ const (
+ FADV_NORMAL = 0x0
+ FADV_RANDOM = 0x1
+@@ -270,11 +324,108 @@ const (
+ )
+
+ const (
+- PTRACE_TRACEME = 0x0
+- PTRACE_CONT = 0x7
+- PTRACE_KILL = 0x8
++ PTRACE_ATTACH = 0xa
++ PTRACE_CONT = 0x7
++ PTRACE_DETACH = 0xb
++ PTRACE_GETFPREGS = 0x23
++ PTRACE_GETFSBASE = 0x47
++ PTRACE_GETLWPLIST = 0xf
++ PTRACE_GETNUMLWPS = 0xe
++ PTRACE_GETREGS = 0x21
++ PTRACE_GETXSTATE = 0x45
++ PTRACE_IO = 0xc
++ PTRACE_KILL = 0x8
++ PTRACE_LWPEVENTS = 0x18
++ PTRACE_LWPINFO = 0xd
++ PTRACE_SETFPREGS = 0x24
++ PTRACE_SETREGS = 0x22
++ PTRACE_SINGLESTEP = 0x9
++ PTRACE_TRACEME = 0x0
++)
++
++const (
++ PIOD_READ_D = 0x1
++ PIOD_WRITE_D = 0x2
++ PIOD_READ_I = 0x3
++ PIOD_WRITE_I = 0x4
++)
++
++const (
++ PL_FLAG_BORN = 0x100
++ PL_FLAG_EXITED = 0x200
++ PL_FLAG_SI = 0x20
++)
++
++const (
++ TRAP_BRKPT = 0x1
++ TRAP_TRACE = 0x2
+ )
+
++type PtraceLwpInfoStruct struct {
++ Lwpid int32
++ Event int32
++ Flags int32
++ Sigmask Sigset_t
++ Siglist Sigset_t
++ Siginfo __Siginfo
++ Tdname [20]int8
++ Child_pid int32
++ Syscall_code uint32
++ Syscall_narg uint32
++}
++
++type __Siginfo struct {
++ Signo int32
++ Errno int32
++ Code int32
++ Pid int32
++ Uid uint32
++ Status int32
++ Addr *byte
++ Value [4]byte
++ _ [32]byte
++}
++
++type Sigset_t struct {
++ Val [4]uint32
++}
++
++type Reg struct {
++ Fs uint32
++ Es uint32
++ Ds uint32
++ Edi uint32
++ Esi uint32
++ Ebp uint32
++ Isp uint32
++ Ebx uint32
++ Edx uint32
++ Ecx uint32
++ Eax uint32
++ Trapno uint32
++ Err uint32
++ Eip uint32
++ Cs uint32
++ Eflags uint32
++ Esp uint32
++ Ss uint32
++ Gs uint32
++}
++
++type FpReg struct {
++ Env [7]uint32
++ Acc [8][10]uint8
++ Ex_sw uint32
++ Pad [64]uint8
++}
++
++type PtraceIoDesc struct {
++ Op int32
++ Offs *byte
++ Addr *byte
++ Len uint32
++}
++
+ type Kevent_t struct {
+ Ident uint32
+ Filter int16
+@@ -285,7 +436,7 @@ type Kevent_t struct {
+ }
+
+ type FdSet struct {
+- X__fds_bits [32]uint32
++ Bits [32]uint32
+ }
+
+ const (
+@@ -301,53 +452,52 @@ const (
+ )
+
+ type ifMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Data ifData
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ uint16
++ Data ifData
+ }
+
+ type IfMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Data IfData
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ Data IfData
+ }
+
+ type ifData struct {
+- Type uint8
+- Physical uint8
+- Addrlen uint8
+- Hdrlen uint8
+- Link_state uint8
+- Vhid uint8
+- Datalen uint16
+- Mtu uint32
+- Metric uint32
+- Baudrate uint64
+- Ipackets uint64
+- Ierrors uint64
+- Opackets uint64
+- Oerrors uint64
+- Collisions uint64
+- Ibytes uint64
+- Obytes uint64
+- Imcasts uint64
+- Omcasts uint64
+- Iqdrops uint64
+- Oqdrops uint64
+- Noproto uint64
+- Hwassist uint64
+- X__ifi_epoch [8]byte
+- X__ifi_lastchange [16]byte
++ Type uint8
++ Physical uint8
++ Addrlen uint8
++ Hdrlen uint8
++ Link_state uint8
++ Vhid uint8
++ Datalen uint16
++ Mtu uint32
++ Metric uint32
++ Baudrate uint64
++ Ipackets uint64
++ Ierrors uint64
++ Opackets uint64
++ Oerrors uint64
++ Collisions uint64
++ Ibytes uint64
++ Obytes uint64
++ Imcasts uint64
++ Omcasts uint64
++ Iqdrops uint64
++ Oqdrops uint64
++ Noproto uint64
++ Hwassist uint64
++ _ [8]byte
++ _ [16]byte
+ }
+
+ type IfData struct {
+@@ -379,24 +529,24 @@ type IfData struct {
+ }
+
+ type IfaMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Metric int32
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ uint16
++ Metric int32
+ }
+
+ type IfmaMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ uint16
+ }
+
+ type IfAnnounceMsghdr struct {
+@@ -409,19 +559,19 @@ type IfAnnounceMsghdr struct {
+ }
+
+ type RtMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Flags int32
+- Addrs int32
+- Pid int32
+- Seq int32
+- Errno int32
+- Fmask int32
+- Inits uint32
+- Rmx RtMetrics
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Index uint16
++ _ uint16
++ Flags int32
++ Addrs int32
++ Pid int32
++ Seq int32
++ Errno int32
++ Fmask int32
++ Inits uint32
++ Rmx RtMetrics
+ }
+
+ type RtMetrics struct {
+@@ -478,18 +628,18 @@ type BpfInsn struct {
+ }
+
+ type BpfHdr struct {
+- Tstamp Timeval
+- Caplen uint32
+- Datalen uint32
+- Hdrlen uint16
+- Pad_cgo_0 [2]byte
++ Tstamp Timeval
++ Caplen uint32
++ Datalen uint32
++ Hdrlen uint16
++ _ [2]byte
+ }
+
+ type BpfZbufHeader struct {
+ Kernel_gen uint32
+ Kernel_len uint32
+ User_gen uint32
+- X_bzh_pad [5]uint32
++ _ [5]uint32
+ }
+
+ type Termios struct {
+@@ -516,6 +666,44 @@ const (
+ AT_SYMLINK_NOFOLLOW = 0x200
+ )
+
++type PollFd struct {
++ Fd int32
++ Events int16
++ Revents int16
++}
++
++const (
++ POLLERR = 0x8
++ POLLHUP = 0x10
++ POLLIN = 0x1
++ POLLINIGNEOF = 0x2000
++ POLLNVAL = 0x20
++ POLLOUT = 0x4
++ POLLPRI = 0x2
++ POLLRDBAND = 0x80
++ POLLRDNORM = 0x40
++ POLLWRBAND = 0x100
++ POLLWRNORM = 0x4
++)
++
+ type CapRights struct {
+ Rights [2]uint64
+ }
++
++type Utsname struct {
++ Sysname [256]byte
++ Nodename [256]byte
++ Release [256]byte
++ Version [256]byte
++ Machine [256]byte
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++ Hz int32
++ Tick int32
++ Spare int32
++ Stathz int32
++ Profhz int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go
+index c65d89e4..e11e9549 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go
+@@ -6,11 +6,11 @@
+ package unix
+
+ const (
+- sizeofPtr = 0x8
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x8
+- sizeofLongLong = 0x8
++ SizeofPtr = 0x8
++ SizeofShort = 0x2
++ SizeofInt = 0x4
++ SizeofLong = 0x8
++ SizeofLongLong = 0x8
+ )
+
+ type (
+@@ -57,40 +57,50 @@ type Rlimit struct {
+ type _Gid_t uint32
+
+ const (
+- S_IFMT = 0xf000
+- S_IFIFO = 0x1000
+- S_IFCHR = 0x2000
+- S_IFDIR = 0x4000
+- S_IFBLK = 0x6000
+- S_IFREG = 0x8000
+- S_IFLNK = 0xa000
+- S_IFSOCK = 0xc000
+- S_ISUID = 0x800
+- S_ISGID = 0x400
+- S_ISVTX = 0x200
+- S_IRUSR = 0x100
+- S_IWUSR = 0x80
+- S_IXUSR = 0x40
++ _statfsVersion = 0x20140518
++ _dirblksiz = 0x400
+ )
+
+ type Stat_t struct {
+- Dev uint32
+- Ino uint32
+- Mode uint16
+- Nlink uint16
+- Uid uint32
+- Gid uint32
+- Rdev uint32
+- Atimespec Timespec
+- Mtimespec Timespec
+- Ctimespec Timespec
+- Size int64
+- Blocks int64
+- Blksize int32
+- Flags uint32
+- Gen uint32
+- Lspare int32
+- Birthtimespec Timespec
++ Dev uint64
++ Ino uint64
++ Nlink uint64
++ Mode uint16
++ _0 int16
++ Uid uint32
++ Gid uint32
++ _1 int32
++ Rdev uint64
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ Btim Timespec
++ Size int64
++ Blocks int64
++ Blksize int32
++ Flags uint32
++ Gen uint64
++ Spare [10]uint64
++}
++
++type stat_freebsd11_t struct {
++ Dev uint32
++ Ino uint32
++ Mode uint16
++ Nlink uint16
++ Uid uint32
++ Gid uint32
++ Rdev uint32
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ Size int64
++ Blocks int64
++ Blksize int32
++ Flags uint32
++ Gen uint32
++ Lspare int32
++ Btim Timespec
+ }
+
+ type Statfs_t struct {
+@@ -113,22 +123,58 @@ type Statfs_t struct {
+ Owner uint32
+ Fsid Fsid
+ Charspare [80]int8
+- Fstypename [16]int8
+- Mntfromname [88]int8
+- Mntonname [88]int8
++ Fstypename [16]byte
++ Mntfromname [1024]byte
++ Mntonname [1024]byte
++}
++
++type statfs_freebsd11_t struct {
++ Version uint32
++ Type uint32
++ Flags uint64
++ Bsize uint64
++ Iosize uint64
++ Blocks uint64
++ Bfree uint64
++ Bavail int64
++ Files uint64
++ Ffree int64
++ Syncwrites uint64
++ Asyncwrites uint64
++ Syncreads uint64
++ Asyncreads uint64
++ Spare [10]uint64
++ Namemax uint32
++ Owner uint32
++ Fsid Fsid
++ Charspare [80]int8
++ Fstypename [16]byte
++ Mntfromname [88]byte
++ Mntonname [88]byte
+ }
+
+ type Flock_t struct {
+- Start int64
+- Len int64
+- Pid int32
+- Type int16
+- Whence int16
+- Sysid int32
+- Pad_cgo_0 [4]byte
++ Start int64
++ Len int64
++ Pid int32
++ Type int16
++ Whence int16
++ Sysid int32
++ _ [4]byte
+ }
+
+ type Dirent struct {
++ Fileno uint64
++ Off int64
++ Reclen uint16
++ Type uint8
++ Pad0 uint8
++ Namlen uint16
++ Pad1 uint16
++ Name [256]int8
++}
++
++type dirent_freebsd11 struct {
+ Fileno uint32
+ Reclen uint16
+ Type uint8
+@@ -140,6 +186,10 @@ type Fsid struct {
+ Val [2]int32
+ }
+
++const (
++ PathMax = 0x400
++)
++
+ const (
+ FADV_NORMAL = 0x0
+ FADV_RANDOM = 0x1
+@@ -225,10 +275,8 @@ type IPv6Mreq struct {
+ type Msghdr struct {
+ Name *byte
+ Namelen uint32
+- Pad_cgo_0 [4]byte
+ Iov *Iovec
+ Iovlen int32
+- Pad_cgo_1 [4]byte
+ Control *byte
+ Controllen uint32
+ Flags int32
+@@ -272,11 +320,115 @@ const (
+ )
+
+ const (
+- PTRACE_TRACEME = 0x0
+- PTRACE_CONT = 0x7
+- PTRACE_KILL = 0x8
++ PTRACE_ATTACH = 0xa
++ PTRACE_CONT = 0x7
++ PTRACE_DETACH = 0xb
++ PTRACE_GETFPREGS = 0x23
++ PTRACE_GETFSBASE = 0x47
++ PTRACE_GETLWPLIST = 0xf
++ PTRACE_GETNUMLWPS = 0xe
++ PTRACE_GETREGS = 0x21
++ PTRACE_GETXSTATE = 0x45
++ PTRACE_IO = 0xc
++ PTRACE_KILL = 0x8
++ PTRACE_LWPEVENTS = 0x18
++ PTRACE_LWPINFO = 0xd
++ PTRACE_SETFPREGS = 0x24
++ PTRACE_SETREGS = 0x22
++ PTRACE_SINGLESTEP = 0x9
++ PTRACE_TRACEME = 0x0
++)
++
++const (
++ PIOD_READ_D = 0x1
++ PIOD_WRITE_D = 0x2
++ PIOD_READ_I = 0x3
++ PIOD_WRITE_I = 0x4
++)
++
++const (
++ PL_FLAG_BORN = 0x100
++ PL_FLAG_EXITED = 0x200
++ PL_FLAG_SI = 0x20
++)
++
++const (
++ TRAP_BRKPT = 0x1
++ TRAP_TRACE = 0x2
+ )
+
++type PtraceLwpInfoStruct struct {
++ Lwpid int32
++ Event int32
++ Flags int32
++ Sigmask Sigset_t
++ Siglist Sigset_t
++ Siginfo __Siginfo
++ Tdname [20]int8
++ Child_pid int32
++ Syscall_code uint32
++ Syscall_narg uint32
++}
++
++type __Siginfo struct {
++ Signo int32
++ Errno int32
++ Code int32
++ Pid int32
++ Uid uint32
++ Status int32
++ Addr *byte
++ Value [8]byte
++ _ [40]byte
++}
++
++type Sigset_t struct {
++ Val [4]uint32
++}
++
++type Reg struct {
++ R15 int64
++ R14 int64
++ R13 int64
++ R12 int64
++ R11 int64
++ R10 int64
++ R9 int64
++ R8 int64
++ Rdi int64
++ Rsi int64
++ Rbp int64
++ Rbx int64
++ Rdx int64
++ Rcx int64
++ Rax int64
++ Trapno uint32
++ Fs uint16
++ Gs uint16
++ Err uint32
++ Es uint16
++ Ds uint16
++ Rip int64
++ Cs int64
++ Rflags int64
++ Rsp int64
++ Ss int64
++}
++
++type FpReg struct {
++ Env [4]uint64
++ Acc [8][16]uint8
++ Xacc [16][16]uint8
++ Spare [12]uint64
++}
++
++type PtraceIoDesc struct {
++ Op int32
++ Offs *byte
++ Addr *byte
++ Len uint64
++}
++
+ type Kevent_t struct {
+ Ident uint64
+ Filter int16
+@@ -287,7 +439,7 @@ type Kevent_t struct {
+ }
+
+ type FdSet struct {
+- X__fds_bits [16]uint64
++ Bits [16]uint64
+ }
+
+ const (
+@@ -303,53 +455,52 @@ const (
+ )
+
+ type ifMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Data ifData
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ uint16
++ Data ifData
+ }
+
+ type IfMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Data IfData
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ Data IfData
+ }
+
+ type ifData struct {
+- Type uint8
+- Physical uint8
+- Addrlen uint8
+- Hdrlen uint8
+- Link_state uint8
+- Vhid uint8
+- Datalen uint16
+- Mtu uint32
+- Metric uint32
+- Baudrate uint64
+- Ipackets uint64
+- Ierrors uint64
+- Opackets uint64
+- Oerrors uint64
+- Collisions uint64
+- Ibytes uint64
+- Obytes uint64
+- Imcasts uint64
+- Omcasts uint64
+- Iqdrops uint64
+- Oqdrops uint64
+- Noproto uint64
+- Hwassist uint64
+- X__ifi_epoch [8]byte
+- X__ifi_lastchange [16]byte
++ Type uint8
++ Physical uint8
++ Addrlen uint8
++ Hdrlen uint8
++ Link_state uint8
++ Vhid uint8
++ Datalen uint16
++ Mtu uint32
++ Metric uint32
++ Baudrate uint64
++ Ipackets uint64
++ Ierrors uint64
++ Opackets uint64
++ Oerrors uint64
++ Collisions uint64
++ Ibytes uint64
++ Obytes uint64
++ Imcasts uint64
++ Omcasts uint64
++ Iqdrops uint64
++ Oqdrops uint64
++ Noproto uint64
++ Hwassist uint64
++ _ [8]byte
++ _ [16]byte
+ }
+
+ type IfData struct {
+@@ -381,24 +532,24 @@ type IfData struct {
+ }
+
+ type IfaMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Metric int32
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ uint16
++ Metric int32
+ }
+
+ type IfmaMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ uint16
+ }
+
+ type IfAnnounceMsghdr struct {
+@@ -411,19 +562,19 @@ type IfAnnounceMsghdr struct {
+ }
+
+ type RtMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Flags int32
+- Addrs int32
+- Pid int32
+- Seq int32
+- Errno int32
+- Fmask int32
+- Inits uint64
+- Rmx RtMetrics
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Index uint16
++ _ uint16
++ Flags int32
++ Addrs int32
++ Pid int32
++ Seq int32
++ Errno int32
++ Fmask int32
++ Inits uint64
++ Rmx RtMetrics
+ }
+
+ type RtMetrics struct {
+@@ -468,9 +619,8 @@ type BpfZbuf struct {
+ }
+
+ type BpfProgram struct {
+- Len uint32
+- Pad_cgo_0 [4]byte
+- Insns *BpfInsn
++ Len uint32
++ Insns *BpfInsn
+ }
+
+ type BpfInsn struct {
+@@ -481,18 +631,18 @@ type BpfInsn struct {
+ }
+
+ type BpfHdr struct {
+- Tstamp Timeval
+- Caplen uint32
+- Datalen uint32
+- Hdrlen uint16
+- Pad_cgo_0 [6]byte
++ Tstamp Timeval
++ Caplen uint32
++ Datalen uint32
++ Hdrlen uint16
++ _ [6]byte
+ }
+
+ type BpfZbufHeader struct {
+ Kernel_gen uint32
+ Kernel_len uint32
+ User_gen uint32
+- X_bzh_pad [5]uint32
++ _ [5]uint32
+ }
+
+ type Termios struct {
+@@ -519,6 +669,44 @@ const (
+ AT_SYMLINK_NOFOLLOW = 0x200
+ )
+
++type PollFd struct {
++ Fd int32
++ Events int16
++ Revents int16
++}
++
++const (
++ POLLERR = 0x8
++ POLLHUP = 0x10
++ POLLIN = 0x1
++ POLLINIGNEOF = 0x2000
++ POLLNVAL = 0x20
++ POLLOUT = 0x4
++ POLLPRI = 0x2
++ POLLRDBAND = 0x80
++ POLLRDNORM = 0x40
++ POLLWRBAND = 0x100
++ POLLWRNORM = 0x4
++)
++
+ type CapRights struct {
+ Rights [2]uint64
+ }
++
++type Utsname struct {
++ Sysname [256]byte
++ Nodename [256]byte
++ Release [256]byte
++ Version [256]byte
++ Machine [256]byte
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++ Hz int32
++ Tick int32
++ Spare int32
++ Stathz int32
++ Profhz int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go
+index 42c0a502..6f79227d 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go
+@@ -6,11 +6,11 @@
+ package unix
+
+ const (
+- sizeofPtr = 0x4
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x4
+- sizeofLongLong = 0x8
++ SizeofPtr = 0x4
++ SizeofShort = 0x2
++ SizeofInt = 0x4
++ SizeofLong = 0x4
++ SizeofLongLong = 0x8
+ )
+
+ type (
+@@ -21,15 +21,15 @@ type (
+ )
+
+ type Timespec struct {
+- Sec int64
+- Nsec int32
+- Pad_cgo_0 [4]byte
++ Sec int64
++ Nsec int32
++ _ [4]byte
+ }
+
+ type Timeval struct {
+- Sec int64
+- Usec int32
+- Pad_cgo_0 [4]byte
++ Sec int64
++ Usec int32
++ _ [4]byte
+ }
+
+ type Rusage struct {
+@@ -59,43 +59,78 @@ type Rlimit struct {
+ type _Gid_t uint32
+
+ const (
+- S_IFMT = 0xf000
+- S_IFIFO = 0x1000
+- S_IFCHR = 0x2000
+- S_IFDIR = 0x4000
+- S_IFBLK = 0x6000
+- S_IFREG = 0x8000
+- S_IFLNK = 0xa000
+- S_IFSOCK = 0xc000
+- S_ISUID = 0x800
+- S_ISGID = 0x400
+- S_ISVTX = 0x200
+- S_IRUSR = 0x100
+- S_IWUSR = 0x80
+- S_IXUSR = 0x40
++ _statfsVersion = 0x20140518
++ _dirblksiz = 0x400
+ )
+
+ type Stat_t struct {
+- Dev uint32
+- Ino uint32
+- Mode uint16
+- Nlink uint16
+- Uid uint32
+- Gid uint32
+- Rdev uint32
+- Atimespec Timespec
+- Mtimespec Timespec
+- Ctimespec Timespec
+- Size int64
+- Blocks int64
+- Blksize int32
+- Flags uint32
+- Gen uint32
+- Lspare int32
+- Birthtimespec Timespec
++ Dev uint64
++ Ino uint64
++ Nlink uint64
++ Mode uint16
++ _0 int16
++ Uid uint32
++ Gid uint32
++ _1 int32
++ Rdev uint64
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ Btim Timespec
++ Size int64
++ Blocks int64
++ Blksize int32
++ Flags uint32
++ Gen uint64
++ Spare [10]uint64
++}
++
++type stat_freebsd11_t struct {
++ Dev uint32
++ Ino uint32
++ Mode uint16
++ Nlink uint16
++ Uid uint32
++ Gid uint32
++ Rdev uint32
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ Size int64
++ Blocks int64
++ Blksize int32
++ Flags uint32
++ Gen uint32
++ Lspare int32
++ Btim Timespec
+ }
+
+ type Statfs_t struct {
++ Version uint32
++ Type uint32
++ Flags uint64
++ Bsize uint64
++ Iosize uint64
++ Blocks uint64
++ Bfree uint64
++ Bavail int64
++ Files uint64
++ Ffree int64
++ Syncwrites uint64
++ Asyncwrites uint64
++ Syncreads uint64
++ Asyncreads uint64
++ Spare [10]uint64
++ Namemax uint32
++ Owner uint32
++ Fsid Fsid
++ Charspare [80]int8
++ Fstypename [16]int8
++ Mntfromname [1024]int8
++ Mntonname [1024]int8
++}
++
++type statfs_freebsd11_t struct {
+ Version uint32
+ Type uint32
+ Flags uint64
+@@ -121,16 +156,27 @@ type Statfs_t struct {
+ }
+
+ type Flock_t struct {
+- Start int64
+- Len int64
+- Pid int32
+- Type int16
+- Whence int16
+- Sysid int32
+- Pad_cgo_0 [4]byte
++ Start int64
++ Len int64
++ Pid int32
++ Type int16
++ Whence int16
++ Sysid int32
++ _ [4]byte
+ }
+
+ type Dirent struct {
++ Fileno uint64
++ Off int64
++ Reclen uint16
++ Type uint8
++ Pad0 uint8
++ Namlen uint16
++ Pad1 uint16
++ Name [256]int8
++}
++
++type dirent_freebsd11 struct {
+ Fileno uint32
+ Reclen uint16
+ Type uint8
+@@ -142,6 +188,10 @@ type Fsid struct {
+ Val [2]int32
+ }
+
++const (
++ PathMax = 0x400
++)
++
+ const (
+ FADV_NORMAL = 0x0
+ FADV_RANDOM = 0x1
+@@ -272,11 +322,92 @@ const (
+ )
+
+ const (
+- PTRACE_TRACEME = 0x0
+- PTRACE_CONT = 0x7
+- PTRACE_KILL = 0x8
++ PTRACE_ATTACH = 0xa
++ PTRACE_CONT = 0x7
++ PTRACE_DETACH = 0xb
++ PTRACE_GETFPREGS = 0x23
++ PTRACE_GETFSBASE = 0x47
++ PTRACE_GETLWPLIST = 0xf
++ PTRACE_GETNUMLWPS = 0xe
++ PTRACE_GETREGS = 0x21
++ PTRACE_GETXSTATE = 0x45
++ PTRACE_IO = 0xc
++ PTRACE_KILL = 0x8
++ PTRACE_LWPEVENTS = 0x18
++ PTRACE_LWPINFO = 0xd
++ PTRACE_SETFPREGS = 0x24
++ PTRACE_SETREGS = 0x22
++ PTRACE_SINGLESTEP = 0x9
++ PTRACE_TRACEME = 0x0
++)
++
++const (
++ PIOD_READ_D = 0x1
++ PIOD_WRITE_D = 0x2
++ PIOD_READ_I = 0x3
++ PIOD_WRITE_I = 0x4
++)
++
++const (
++ PL_FLAG_BORN = 0x100
++ PL_FLAG_EXITED = 0x200
++ PL_FLAG_SI = 0x20
+ )
+
++const (
++ TRAP_BRKPT = 0x1
++ TRAP_TRACE = 0x2
++)
++
++type PtraceLwpInfoStruct struct {
++ Lwpid int32
++ Event int32
++ Flags int32
++ Sigmask Sigset_t
++ Siglist Sigset_t
++ Siginfo __Siginfo
++ Tdname [20]int8
++ Child_pid int32
++ Syscall_code uint32
++ Syscall_narg uint32
++}
++
++type __Siginfo struct {
++ Signo int32
++ Errno int32
++ Code int32
++ Pid int32
++ Uid uint32
++ Status int32
++ Addr *byte
++ Value [4]byte
++ X_reason [32]byte
++}
++
++type Sigset_t struct {
++ Val [4]uint32
++}
++
++type Reg struct {
++ R [13]uint32
++ R_sp uint32
++ R_lr uint32
++ R_pc uint32
++ R_cpsr uint32
++}
++
++type FpReg struct {
++ Fpr_fpsr uint32
++ Fpr [8][3]uint32
++}
++
++type PtraceIoDesc struct {
++ Op int32
++ Offs *byte
++ Addr *byte
++ Len uint32
++}
++
+ type Kevent_t struct {
+ Ident uint32
+ Filter int16
+@@ -287,7 +418,7 @@ type Kevent_t struct {
+ }
+
+ type FdSet struct {
+- X__fds_bits [32]uint32
++ Bits [32]uint32
+ }
+
+ const (
+@@ -303,53 +434,53 @@ const (
+ )
+
+ type ifMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Data ifData
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ [2]byte
++ Data ifData
+ }
+
+ type IfMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Data IfData
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ [2]byte
++ Data IfData
+ }
+
+ type ifData struct {
+- Type uint8
+- Physical uint8
+- Addrlen uint8
+- Hdrlen uint8
+- Link_state uint8
+- Vhid uint8
+- Datalen uint16
+- Mtu uint32
+- Metric uint32
+- Baudrate uint64
+- Ipackets uint64
+- Ierrors uint64
+- Opackets uint64
+- Oerrors uint64
+- Collisions uint64
+- Ibytes uint64
+- Obytes uint64
+- Imcasts uint64
+- Omcasts uint64
+- Iqdrops uint64
+- Oqdrops uint64
+- Noproto uint64
+- Hwassist uint64
+- X__ifi_epoch [8]byte
+- X__ifi_lastchange [16]byte
++ Type uint8
++ Physical uint8
++ Addrlen uint8
++ Hdrlen uint8
++ Link_state uint8
++ Vhid uint8
++ Datalen uint16
++ Mtu uint32
++ Metric uint32
++ Baudrate uint64
++ Ipackets uint64
++ Ierrors uint64
++ Opackets uint64
++ Oerrors uint64
++ Collisions uint64
++ Ibytes uint64
++ Obytes uint64
++ Imcasts uint64
++ Omcasts uint64
++ Iqdrops uint64
++ Oqdrops uint64
++ Noproto uint64
++ Hwassist uint64
++ _ [8]byte
++ _ [16]byte
+ }
+
+ type IfData struct {
+@@ -376,30 +507,30 @@ type IfData struct {
+ Iqdrops uint32
+ Noproto uint32
+ Hwassist uint32
+- Pad_cgo_0 [4]byte
++ _ [4]byte
+ Epoch int64
+ Lastchange Timeval
+ }
+
+ type IfaMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Metric int32
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ [2]byte
++ Metric int32
+ }
+
+ type IfmaMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ [2]byte
+ }
+
+ type IfAnnounceMsghdr struct {
+@@ -412,19 +543,19 @@ type IfAnnounceMsghdr struct {
+ }
+
+ type RtMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Flags int32
+- Addrs int32
+- Pid int32
+- Seq int32
+- Errno int32
+- Fmask int32
+- Inits uint32
+- Rmx RtMetrics
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Index uint16
++ _ [2]byte
++ Flags int32
++ Addrs int32
++ Pid int32
++ Seq int32
++ Errno int32
++ Fmask int32
++ Inits uint32
++ Rmx RtMetrics
+ }
+
+ type RtMetrics struct {
+@@ -481,18 +612,18 @@ type BpfInsn struct {
+ }
+
+ type BpfHdr struct {
+- Tstamp Timeval
+- Caplen uint32
+- Datalen uint32
+- Hdrlen uint16
+- Pad_cgo_0 [6]byte
++ Tstamp Timeval
++ Caplen uint32
++ Datalen uint32
++ Hdrlen uint16
++ _ [6]byte
+ }
+
+ type BpfZbufHeader struct {
+ Kernel_gen uint32
+ Kernel_len uint32
+ User_gen uint32
+- X_bzh_pad [5]uint32
++ _ [5]uint32
+ }
+
+ type Termios struct {
+@@ -519,6 +650,44 @@ const (
+ AT_SYMLINK_NOFOLLOW = 0x200
+ )
+
++type PollFd struct {
++ Fd int32
++ Events int16
++ Revents int16
++}
++
++const (
++ POLLERR = 0x8
++ POLLHUP = 0x10
++ POLLIN = 0x1
++ POLLINIGNEOF = 0x2000
++ POLLNVAL = 0x20
++ POLLOUT = 0x4
++ POLLPRI = 0x2
++ POLLRDBAND = 0x80
++ POLLRDNORM = 0x40
++ POLLWRBAND = 0x100
++ POLLWRNORM = 0x4
++)
++
+ type CapRights struct {
+ Rights [2]uint64
+ }
++
++type Utsname struct {
++ Sysname [256]byte
++ Nodename [256]byte
++ Release [256]byte
++ Version [256]byte
++ Machine [256]byte
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++ Hz int32
++ Tick int32
++ Spare int32
++ Stathz int32
++ Profhz int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go
+similarity index 54%
+copy from vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go
+copy to vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go
+index c65d89e4..c6fe1d09 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go
+@@ -1,16 +1,16 @@
+-// cgo -godefs types_freebsd.go | go run mkpost.go
++// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+
+-// +build amd64,freebsd
++// +build arm64,freebsd
+
+ package unix
+
+ const (
+- sizeofPtr = 0x8
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x8
+- sizeofLongLong = 0x8
++ SizeofPtr = 0x8
++ SizeofShort = 0x2
++ SizeofInt = 0x4
++ SizeofLong = 0x8
++ SizeofLongLong = 0x8
+ )
+
+ type (
+@@ -57,40 +57,50 @@ type Rlimit struct {
+ type _Gid_t uint32
+
+ const (
+- S_IFMT = 0xf000
+- S_IFIFO = 0x1000
+- S_IFCHR = 0x2000
+- S_IFDIR = 0x4000
+- S_IFBLK = 0x6000
+- S_IFREG = 0x8000
+- S_IFLNK = 0xa000
+- S_IFSOCK = 0xc000
+- S_ISUID = 0x800
+- S_ISGID = 0x400
+- S_ISVTX = 0x200
+- S_IRUSR = 0x100
+- S_IWUSR = 0x80
+- S_IXUSR = 0x40
++ _statfsVersion = 0x20140518
++ _dirblksiz = 0x400
+ )
+
+ type Stat_t struct {
+- Dev uint32
+- Ino uint32
+- Mode uint16
+- Nlink uint16
+- Uid uint32
+- Gid uint32
+- Rdev uint32
+- Atimespec Timespec
+- Mtimespec Timespec
+- Ctimespec Timespec
+- Size int64
+- Blocks int64
+- Blksize int32
+- Flags uint32
+- Gen uint32
+- Lspare int32
+- Birthtimespec Timespec
++ Dev uint64
++ Ino uint64
++ Nlink uint64
++ Mode uint16
++ _0 int16
++ Uid uint32
++ Gid uint32
++ _1 int32
++ Rdev uint64
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ Btim Timespec
++ Size int64
++ Blocks int64
++ Blksize int32
++ Flags uint32
++ Gen uint64
++ Spare [10]uint64
++}
++
++type stat_freebsd11_t struct {
++ Dev uint32
++ Ino uint32
++ Mode uint16
++ Nlink uint16
++ Uid uint32
++ Gid uint32
++ Rdev uint32
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ Size int64
++ Blocks int64
++ Blksize int32
++ Flags uint32
++ Gen uint32
++ Lspare int32
++ Btim Timespec
+ }
+
+ type Statfs_t struct {
+@@ -113,22 +123,58 @@ type Statfs_t struct {
+ Owner uint32
+ Fsid Fsid
+ Charspare [80]int8
+- Fstypename [16]int8
+- Mntfromname [88]int8
+- Mntonname [88]int8
++ Fstypename [16]byte
++ Mntfromname [1024]byte
++ Mntonname [1024]byte
++}
++
++type statfs_freebsd11_t struct {
++ Version uint32
++ Type uint32
++ Flags uint64
++ Bsize uint64
++ Iosize uint64
++ Blocks uint64
++ Bfree uint64
++ Bavail int64
++ Files uint64
++ Ffree int64
++ Syncwrites uint64
++ Asyncwrites uint64
++ Syncreads uint64
++ Asyncreads uint64
++ Spare [10]uint64
++ Namemax uint32
++ Owner uint32
++ Fsid Fsid
++ Charspare [80]int8
++ Fstypename [16]byte
++ Mntfromname [88]byte
++ Mntonname [88]byte
+ }
+
+ type Flock_t struct {
+- Start int64
+- Len int64
+- Pid int32
+- Type int16
+- Whence int16
+- Sysid int32
+- Pad_cgo_0 [4]byte
++ Start int64
++ Len int64
++ Pid int32
++ Type int16
++ Whence int16
++ Sysid int32
++ _ [4]byte
+ }
+
+ type Dirent struct {
++ Fileno uint64
++ Off int64
++ Reclen uint16
++ Type uint8
++ Pad0 uint8
++ Namlen uint16
++ Pad1 uint16
++ Name [256]int8
++}
++
++type dirent_freebsd11 struct {
+ Fileno uint32
+ Reclen uint16
+ Type uint8
+@@ -140,6 +186,10 @@ type Fsid struct {
+ Val [2]int32
+ }
+
++const (
++ PathMax = 0x400
++)
++
+ const (
+ FADV_NORMAL = 0x0
+ FADV_RANDOM = 0x1
+@@ -225,10 +275,8 @@ type IPv6Mreq struct {
+ type Msghdr struct {
+ Name *byte
+ Namelen uint32
+- Pad_cgo_0 [4]byte
+ Iov *Iovec
+ Iovlen int32
+- Pad_cgo_1 [4]byte
+ Control *byte
+ Controllen uint32
+ Flags int32
+@@ -272,11 +320,93 @@ const (
+ )
+
+ const (
+- PTRACE_TRACEME = 0x0
+- PTRACE_CONT = 0x7
+- PTRACE_KILL = 0x8
++ PTRACE_ATTACH = 0xa
++ PTRACE_CONT = 0x7
++ PTRACE_DETACH = 0xb
++ PTRACE_GETFPREGS = 0x23
++ PTRACE_GETLWPLIST = 0xf
++ PTRACE_GETNUMLWPS = 0xe
++ PTRACE_GETREGS = 0x21
++ PTRACE_IO = 0xc
++ PTRACE_KILL = 0x8
++ PTRACE_LWPEVENTS = 0x18
++ PTRACE_LWPINFO = 0xd
++ PTRACE_SETFPREGS = 0x24
++ PTRACE_SETREGS = 0x22
++ PTRACE_SINGLESTEP = 0x9
++ PTRACE_TRACEME = 0x0
++)
++
++const (
++ PIOD_READ_D = 0x1
++ PIOD_WRITE_D = 0x2
++ PIOD_READ_I = 0x3
++ PIOD_WRITE_I = 0x4
++)
++
++const (
++ PL_FLAG_BORN = 0x100
++ PL_FLAG_EXITED = 0x200
++ PL_FLAG_SI = 0x20
++)
++
++const (
++ TRAP_BRKPT = 0x1
++ TRAP_TRACE = 0x2
+ )
+
++type PtraceLwpInfoStruct struct {
++ Lwpid int32
++ Event int32
++ Flags int32
++ Sigmask Sigset_t
++ Siglist Sigset_t
++ Siginfo __Siginfo
++ Tdname [20]int8
++ Child_pid int32
++ Syscall_code uint32
++ Syscall_narg uint32
++}
++
++type __Siginfo struct {
++ Signo int32
++ Errno int32
++ Code int32
++ Pid int32
++ Uid uint32
++ Status int32
++ Addr *byte
++ Value [8]byte
++ _ [40]byte
++}
++
++type Sigset_t struct {
++ Val [4]uint32
++}
++
++type Reg struct {
++ X [30]uint64
++ Lr uint64
++ Sp uint64
++ Elr uint64
++ Spsr uint32
++ _ [4]byte
++}
++
++type FpReg struct {
++ Q [32][16]uint8
++ Sr uint32
++ Cr uint32
++ _ [8]byte
++}
++
++type PtraceIoDesc struct {
++ Op int32
++ Offs *byte
++ Addr *byte
++ Len uint64
++}
++
+ type Kevent_t struct {
+ Ident uint64
+ Filter int16
+@@ -287,7 +417,7 @@ type Kevent_t struct {
+ }
+
+ type FdSet struct {
+- X__fds_bits [16]uint64
++ Bits [16]uint64
+ }
+
+ const (
+@@ -303,53 +433,52 @@ const (
+ )
+
+ type ifMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Data ifData
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ uint16
++ Data ifData
+ }
+
+ type IfMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Data IfData
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ Data IfData
+ }
+
+ type ifData struct {
+- Type uint8
+- Physical uint8
+- Addrlen uint8
+- Hdrlen uint8
+- Link_state uint8
+- Vhid uint8
+- Datalen uint16
+- Mtu uint32
+- Metric uint32
+- Baudrate uint64
+- Ipackets uint64
+- Ierrors uint64
+- Opackets uint64
+- Oerrors uint64
+- Collisions uint64
+- Ibytes uint64
+- Obytes uint64
+- Imcasts uint64
+- Omcasts uint64
+- Iqdrops uint64
+- Oqdrops uint64
+- Noproto uint64
+- Hwassist uint64
+- X__ifi_epoch [8]byte
+- X__ifi_lastchange [16]byte
++ Type uint8
++ Physical uint8
++ Addrlen uint8
++ Hdrlen uint8
++ Link_state uint8
++ Vhid uint8
++ Datalen uint16
++ Mtu uint32
++ Metric uint32
++ Baudrate uint64
++ Ipackets uint64
++ Ierrors uint64
++ Opackets uint64
++ Oerrors uint64
++ Collisions uint64
++ Ibytes uint64
++ Obytes uint64
++ Imcasts uint64
++ Omcasts uint64
++ Iqdrops uint64
++ Oqdrops uint64
++ Noproto uint64
++ Hwassist uint64
++ _ [8]byte
++ _ [16]byte
+ }
+
+ type IfData struct {
+@@ -381,24 +510,24 @@ type IfData struct {
+ }
+
+ type IfaMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Metric int32
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ uint16
++ Metric int32
+ }
+
+ type IfmaMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ uint16
+ }
+
+ type IfAnnounceMsghdr struct {
+@@ -411,19 +540,19 @@ type IfAnnounceMsghdr struct {
+ }
+
+ type RtMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Flags int32
+- Addrs int32
+- Pid int32
+- Seq int32
+- Errno int32
+- Fmask int32
+- Inits uint64
+- Rmx RtMetrics
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Index uint16
++ _ uint16
++ Flags int32
++ Addrs int32
++ Pid int32
++ Seq int32
++ Errno int32
++ Fmask int32
++ Inits uint64
++ Rmx RtMetrics
+ }
+
+ type RtMetrics struct {
+@@ -468,9 +597,8 @@ type BpfZbuf struct {
+ }
+
+ type BpfProgram struct {
+- Len uint32
+- Pad_cgo_0 [4]byte
+- Insns *BpfInsn
++ Len uint32
++ Insns *BpfInsn
+ }
+
+ type BpfInsn struct {
+@@ -481,18 +609,18 @@ type BpfInsn struct {
+ }
+
+ type BpfHdr struct {
+- Tstamp Timeval
+- Caplen uint32
+- Datalen uint32
+- Hdrlen uint16
+- Pad_cgo_0 [6]byte
++ Tstamp Timeval
++ Caplen uint32
++ Datalen uint32
++ Hdrlen uint16
++ _ [6]byte
+ }
+
+ type BpfZbufHeader struct {
+ Kernel_gen uint32
+ Kernel_len uint32
+ User_gen uint32
+- X_bzh_pad [5]uint32
++ _ [5]uint32
+ }
+
+ type Termios struct {
+@@ -519,6 +647,44 @@ const (
+ AT_SYMLINK_NOFOLLOW = 0x200
+ )
+
++type PollFd struct {
++ Fd int32
++ Events int16
++ Revents int16
++}
++
++const (
++ POLLERR = 0x8
++ POLLHUP = 0x10
++ POLLIN = 0x1
++ POLLINIGNEOF = 0x2000
++ POLLNVAL = 0x20
++ POLLOUT = 0x4
++ POLLPRI = 0x2
++ POLLRDBAND = 0x80
++ POLLRDNORM = 0x40
++ POLLWRBAND = 0x100
++ POLLWRNORM = 0x4
++)
++
+ type CapRights struct {
+ Rights [2]uint64
+ }
++
++type Utsname struct {
++ Sysname [256]byte
++ Nodename [256]byte
++ Release [256]byte
++ Version [256]byte
++ Machine [256]byte
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++ Hz int32
++ Tick int32
++ Spare int32
++ Stathz int32
++ Profhz int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go
+new file mode 100644
+index 00000000..af5ab455
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux.go
+@@ -0,0 +1,2340 @@
++// Code generated by mkmerge.go; DO NOT EDIT.
++
++// +build linux
++
++package unix
++
++const (
++ SizeofShort = 0x2
++ SizeofInt = 0x4
++ SizeofLongLong = 0x8
++ PathMax = 0x1000
++)
++
++type (
++ _C_short int16
++ _C_int int32
++
++ _C_long_long int64
++)
++
++const (
++ TIME_OK = 0x0
++ TIME_INS = 0x1
++ TIME_DEL = 0x2
++ TIME_OOP = 0x3
++ TIME_WAIT = 0x4
++ TIME_ERROR = 0x5
++ TIME_BAD = 0x5
++)
++
++type Rlimit struct {
++ Cur uint64
++ Max uint64
++}
++
++type _Gid_t uint32
++
++type StatxTimestamp struct {
++ Sec int64
++ Nsec uint32
++ _ int32
++}
++
++type Statx_t struct {
++ Mask uint32
++ Blksize uint32
++ Attributes uint64
++ Nlink uint32
++ Uid uint32
++ Gid uint32
++ Mode uint16
++ _ [1]uint16
++ Ino uint64
++ Size uint64
++ Blocks uint64
++ Attributes_mask uint64
++ Atime StatxTimestamp
++ Btime StatxTimestamp
++ Ctime StatxTimestamp
++ Mtime StatxTimestamp
++ Rdev_major uint32
++ Rdev_minor uint32
++ Dev_major uint32
++ Dev_minor uint32
++ _ [14]uint64
++}
++
++type Fsid struct {
++ Val [2]int32
++}
++
++type FscryptPolicy struct {
++ Version uint8
++ Contents_encryption_mode uint8
++ Filenames_encryption_mode uint8
++ Flags uint8
++ Master_key_descriptor [8]uint8
++}
++
++type FscryptKey struct {
++ Mode uint32
++ Raw [64]uint8
++ Size uint32
++}
++
++type FscryptPolicyV1 struct {
++ Version uint8
++ Contents_encryption_mode uint8
++ Filenames_encryption_mode uint8
++ Flags uint8
++ Master_key_descriptor [8]uint8
++}
++
++type FscryptPolicyV2 struct {
++ Version uint8
++ Contents_encryption_mode uint8
++ Filenames_encryption_mode uint8
++ Flags uint8
++ _ [4]uint8
++ Master_key_identifier [16]uint8
++}
++
++type FscryptGetPolicyExArg struct {
++ Size uint64
++ Policy [24]byte
++}
++
++type FscryptKeySpecifier struct {
++ Type uint32
++ _ uint32
++ U [32]byte
++}
++
++type FscryptAddKeyArg struct {
++ Key_spec FscryptKeySpecifier
++ Raw_size uint32
++ Key_id uint32
++ _ [8]uint32
++}
++
++type FscryptRemoveKeyArg struct {
++ Key_spec FscryptKeySpecifier
++ Removal_status_flags uint32
++ _ [5]uint32
++}
++
++type FscryptGetKeyStatusArg struct {
++ Key_spec FscryptKeySpecifier
++ _ [6]uint32
++ Status uint32
++ Status_flags uint32
++ User_count uint32
++ _ [13]uint32
++}
++
++type KeyctlDHParams struct {
++ Private int32
++ Prime int32
++ Base int32
++}
++
++const (
++ FADV_NORMAL = 0x0
++ FADV_RANDOM = 0x1
++ FADV_SEQUENTIAL = 0x2
++ FADV_WILLNEED = 0x3
++)
++
++type RawSockaddrInet4 struct {
++ Family uint16
++ Port uint16
++ Addr [4]byte /* in_addr */
++ Zero [8]uint8
++}
++
++type RawSockaddrInet6 struct {
++ Family uint16
++ Port uint16
++ Flowinfo uint32
++ Addr [16]byte /* in6_addr */
++ Scope_id uint32
++}
++
++type RawSockaddrUnix struct {
++ Family uint16
++ Path [108]int8
++}
++
++type RawSockaddrLinklayer struct {
++ Family uint16
++ Protocol uint16
++ Ifindex int32
++ Hatype uint16
++ Pkttype uint8
++ Halen uint8
++ Addr [8]uint8
++}
++
++type RawSockaddrNetlink struct {
++ Family uint16
++ Pad uint16
++ Pid uint32
++ Groups uint32
++}
++
++type RawSockaddrHCI struct {
++ Family uint16
++ Dev uint16
++ Channel uint16
++}
++
++type RawSockaddrL2 struct {
++ Family uint16
++ Psm uint16
++ Bdaddr [6]uint8
++ Cid uint16
++ Bdaddr_type uint8
++ _ [1]byte
++}
++
++type RawSockaddrRFCOMM struct {
++ Family uint16
++ Bdaddr [6]uint8
++ Channel uint8
++ _ [1]byte
++}
++
++type RawSockaddrCAN struct {
++ Family uint16
++ Ifindex int32
++ Addr [16]byte
++}
++
++type RawSockaddrALG struct {
++ Family uint16
++ Type [14]uint8
++ Feat uint32
++ Mask uint32
++ Name [64]uint8
++}
++
++type RawSockaddrVM struct {
++ Family uint16
++ Reserved1 uint16
++ Port uint32
++ Cid uint32
++ Zero [4]uint8
++}
++
++type RawSockaddrXDP struct {
++ Family uint16
++ Flags uint16
++ Ifindex uint32
++ Queue_id uint32
++ Shared_umem_fd uint32
++}
++
++type RawSockaddrPPPoX [0x1e]byte
++
++type RawSockaddrTIPC struct {
++ Family uint16
++ Addrtype uint8
++ Scope int8
++ Addr [12]byte
++}
++
++type RawSockaddrL2TPIP struct {
++ Family uint16
++ Unused uint16
++ Addr [4]byte /* in_addr */
++ Conn_id uint32
++ _ [4]uint8
++}
++
++type RawSockaddrL2TPIP6 struct {
++ Family uint16
++ Unused uint16
++ Flowinfo uint32
++ Addr [16]byte /* in6_addr */
++ Scope_id uint32
++ Conn_id uint32
++}
++
++type _Socklen uint32
++
++type Linger struct {
++ Onoff int32
++ Linger int32
++}
++
++type IPMreq struct {
++ Multiaddr [4]byte /* in_addr */
++ Interface [4]byte /* in_addr */
++}
++
++type IPMreqn struct {
++ Multiaddr [4]byte /* in_addr */
++ Address [4]byte /* in_addr */
++ Ifindex int32
++}
++
++type IPv6Mreq struct {
++ Multiaddr [16]byte /* in6_addr */
++ Interface uint32
++}
++
++type PacketMreq struct {
++ Ifindex int32
++ Type uint16
++ Alen uint16
++ Address [8]uint8
++}
++
++type Inet4Pktinfo struct {
++ Ifindex int32
++ Spec_dst [4]byte /* in_addr */
++ Addr [4]byte /* in_addr */
++}
++
++type Inet6Pktinfo struct {
++ Addr [16]byte /* in6_addr */
++ Ifindex uint32
++}
++
++type IPv6MTUInfo struct {
++ Addr RawSockaddrInet6
++ Mtu uint32
++}
++
++type ICMPv6Filter struct {
++ Data [8]uint32
++}
++
++type Ucred struct {
++ Pid int32
++ Uid uint32
++ Gid uint32
++}
++
++type TCPInfo struct {
++ State uint8
++ Ca_state uint8
++ Retransmits uint8
++ Probes uint8
++ Backoff uint8
++ Options uint8
++ Rto uint32
++ Ato uint32
++ Snd_mss uint32
++ Rcv_mss uint32
++ Unacked uint32
++ Sacked uint32
++ Lost uint32
++ Retrans uint32
++ Fackets uint32
++ Last_data_sent uint32
++ Last_ack_sent uint32
++ Last_data_recv uint32
++ Last_ack_recv uint32
++ Pmtu uint32
++ Rcv_ssthresh uint32
++ Rtt uint32
++ Rttvar uint32
++ Snd_ssthresh uint32
++ Snd_cwnd uint32
++ Advmss uint32
++ Reordering uint32
++ Rcv_rtt uint32
++ Rcv_space uint32
++ Total_retrans uint32
++}
++
++type CanFilter struct {
++ Id uint32
++ Mask uint32
++}
++
++const (
++ SizeofSockaddrInet4 = 0x10
++ SizeofSockaddrInet6 = 0x1c
++ SizeofSockaddrAny = 0x70
++ SizeofSockaddrUnix = 0x6e
++ SizeofSockaddrLinklayer = 0x14
++ SizeofSockaddrNetlink = 0xc
++ SizeofSockaddrHCI = 0x6
++ SizeofSockaddrL2 = 0xe
++ SizeofSockaddrRFCOMM = 0xa
++ SizeofSockaddrCAN = 0x18
++ SizeofSockaddrALG = 0x58
++ SizeofSockaddrVM = 0x10
++ SizeofSockaddrXDP = 0x10
++ SizeofSockaddrPPPoX = 0x1e
++ SizeofSockaddrTIPC = 0x10
++ SizeofSockaddrL2TPIP = 0x10
++ SizeofSockaddrL2TPIP6 = 0x20
++ SizeofLinger = 0x8
++ SizeofIPMreq = 0x8
++ SizeofIPMreqn = 0xc
++ SizeofIPv6Mreq = 0x14
++ SizeofPacketMreq = 0x10
++ SizeofInet4Pktinfo = 0xc
++ SizeofInet6Pktinfo = 0x14
++ SizeofIPv6MTUInfo = 0x20
++ SizeofICMPv6Filter = 0x20
++ SizeofUcred = 0xc
++ SizeofTCPInfo = 0x68
++ SizeofCanFilter = 0x8
++)
++
++const (
++ NDA_UNSPEC = 0x0
++ NDA_DST = 0x1
++ NDA_LLADDR = 0x2
++ NDA_CACHEINFO = 0x3
++ NDA_PROBES = 0x4
++ NDA_VLAN = 0x5
++ NDA_PORT = 0x6
++ NDA_VNI = 0x7
++ NDA_IFINDEX = 0x8
++ NDA_MASTER = 0x9
++ NDA_LINK_NETNSID = 0xa
++ NDA_SRC_VNI = 0xb
++ NTF_USE = 0x1
++ NTF_SELF = 0x2
++ NTF_MASTER = 0x4
++ NTF_PROXY = 0x8
++ NTF_EXT_LEARNED = 0x10
++ NTF_OFFLOADED = 0x20
++ NTF_ROUTER = 0x80
++ NUD_INCOMPLETE = 0x1
++ NUD_REACHABLE = 0x2
++ NUD_STALE = 0x4
++ NUD_DELAY = 0x8
++ NUD_PROBE = 0x10
++ NUD_FAILED = 0x20
++ NUD_NOARP = 0x40
++ NUD_PERMANENT = 0x80
++ NUD_NONE = 0x0
++ IFA_UNSPEC = 0x0
++ IFA_ADDRESS = 0x1
++ IFA_LOCAL = 0x2
++ IFA_LABEL = 0x3
++ IFA_BROADCAST = 0x4
++ IFA_ANYCAST = 0x5
++ IFA_CACHEINFO = 0x6
++ IFA_MULTICAST = 0x7
++ IFA_FLAGS = 0x8
++ IFA_RT_PRIORITY = 0x9
++ IFA_TARGET_NETNSID = 0xa
++ IFLA_UNSPEC = 0x0
++ IFLA_ADDRESS = 0x1
++ IFLA_BROADCAST = 0x2
++ IFLA_IFNAME = 0x3
++ IFLA_MTU = 0x4
++ IFLA_LINK = 0x5
++ IFLA_QDISC = 0x6
++ IFLA_STATS = 0x7
++ IFLA_COST = 0x8
++ IFLA_PRIORITY = 0x9
++ IFLA_MASTER = 0xa
++ IFLA_WIRELESS = 0xb
++ IFLA_PROTINFO = 0xc
++ IFLA_TXQLEN = 0xd
++ IFLA_MAP = 0xe
++ IFLA_WEIGHT = 0xf
++ IFLA_OPERSTATE = 0x10
++ IFLA_LINKMODE = 0x11
++ IFLA_LINKINFO = 0x12
++ IFLA_NET_NS_PID = 0x13
++ IFLA_IFALIAS = 0x14
++ IFLA_NUM_VF = 0x15
++ IFLA_VFINFO_LIST = 0x16
++ IFLA_STATS64 = 0x17
++ IFLA_VF_PORTS = 0x18
++ IFLA_PORT_SELF = 0x19
++ IFLA_AF_SPEC = 0x1a
++ IFLA_GROUP = 0x1b
++ IFLA_NET_NS_FD = 0x1c
++ IFLA_EXT_MASK = 0x1d
++ IFLA_PROMISCUITY = 0x1e
++ IFLA_NUM_TX_QUEUES = 0x1f
++ IFLA_NUM_RX_QUEUES = 0x20
++ IFLA_CARRIER = 0x21
++ IFLA_PHYS_PORT_ID = 0x22
++ IFLA_CARRIER_CHANGES = 0x23
++ IFLA_PHYS_SWITCH_ID = 0x24
++ IFLA_LINK_NETNSID = 0x25
++ IFLA_PHYS_PORT_NAME = 0x26
++ IFLA_PROTO_DOWN = 0x27
++ IFLA_GSO_MAX_SEGS = 0x28
++ IFLA_GSO_MAX_SIZE = 0x29
++ IFLA_PAD = 0x2a
++ IFLA_XDP = 0x2b
++ IFLA_EVENT = 0x2c
++ IFLA_NEW_NETNSID = 0x2d
++ IFLA_IF_NETNSID = 0x2e
++ IFLA_TARGET_NETNSID = 0x2e
++ IFLA_CARRIER_UP_COUNT = 0x2f
++ IFLA_CARRIER_DOWN_COUNT = 0x30
++ IFLA_NEW_IFINDEX = 0x31
++ IFLA_MIN_MTU = 0x32
++ IFLA_MAX_MTU = 0x33
++ IFLA_MAX = 0x36
++ IFLA_INFO_KIND = 0x1
++ IFLA_INFO_DATA = 0x2
++ IFLA_INFO_XSTATS = 0x3
++ IFLA_INFO_SLAVE_KIND = 0x4
++ IFLA_INFO_SLAVE_DATA = 0x5
++ RT_SCOPE_UNIVERSE = 0x0
++ RT_SCOPE_SITE = 0xc8
++ RT_SCOPE_LINK = 0xfd
++ RT_SCOPE_HOST = 0xfe
++ RT_SCOPE_NOWHERE = 0xff
++ RT_TABLE_UNSPEC = 0x0
++ RT_TABLE_COMPAT = 0xfc
++ RT_TABLE_DEFAULT = 0xfd
++ RT_TABLE_MAIN = 0xfe
++ RT_TABLE_LOCAL = 0xff
++ RT_TABLE_MAX = 0xffffffff
++ RTA_UNSPEC = 0x0
++ RTA_DST = 0x1
++ RTA_SRC = 0x2
++ RTA_IIF = 0x3
++ RTA_OIF = 0x4
++ RTA_GATEWAY = 0x5
++ RTA_PRIORITY = 0x6
++ RTA_PREFSRC = 0x7
++ RTA_METRICS = 0x8
++ RTA_MULTIPATH = 0x9
++ RTA_FLOW = 0xb
++ RTA_CACHEINFO = 0xc
++ RTA_TABLE = 0xf
++ RTA_MARK = 0x10
++ RTA_MFC_STATS = 0x11
++ RTA_VIA = 0x12
++ RTA_NEWDST = 0x13
++ RTA_PREF = 0x14
++ RTA_ENCAP_TYPE = 0x15
++ RTA_ENCAP = 0x16
++ RTA_EXPIRES = 0x17
++ RTA_PAD = 0x18
++ RTA_UID = 0x19
++ RTA_TTL_PROPAGATE = 0x1a
++ RTA_IP_PROTO = 0x1b
++ RTA_SPORT = 0x1c
++ RTA_DPORT = 0x1d
++ RTN_UNSPEC = 0x0
++ RTN_UNICAST = 0x1
++ RTN_LOCAL = 0x2
++ RTN_BROADCAST = 0x3
++ RTN_ANYCAST = 0x4
++ RTN_MULTICAST = 0x5
++ RTN_BLACKHOLE = 0x6
++ RTN_UNREACHABLE = 0x7
++ RTN_PROHIBIT = 0x8
++ RTN_THROW = 0x9
++ RTN_NAT = 0xa
++ RTN_XRESOLVE = 0xb
++ SizeofNlMsghdr = 0x10
++ SizeofNlMsgerr = 0x14
++ SizeofRtGenmsg = 0x1
++ SizeofNlAttr = 0x4
++ SizeofRtAttr = 0x4
++ SizeofIfInfomsg = 0x10
++ SizeofIfAddrmsg = 0x8
++ SizeofIfaCacheinfo = 0x10
++ SizeofRtMsg = 0xc
++ SizeofRtNexthop = 0x8
++ SizeofNdUseroptmsg = 0x10
++ SizeofNdMsg = 0xc
++)
++
++type NlMsghdr struct {
++ Len uint32
++ Type uint16
++ Flags uint16
++ Seq uint32
++ Pid uint32
++}
++
++type NlMsgerr struct {
++ Error int32
++ Msg NlMsghdr
++}
++
++type RtGenmsg struct {
++ Family uint8
++}
++
++type NlAttr struct {
++ Len uint16
++ Type uint16
++}
++
++type RtAttr struct {
++ Len uint16
++ Type uint16
++}
++
++type IfInfomsg struct {
++ Family uint8
++ _ uint8
++ Type uint16
++ Index int32
++ Flags uint32
++ Change uint32
++}
++
++type IfAddrmsg struct {
++ Family uint8
++ Prefixlen uint8
++ Flags uint8
++ Scope uint8
++ Index uint32
++}
++
++type IfaCacheinfo struct {
++ Prefered uint32
++ Valid uint32
++ Cstamp uint32
++ Tstamp uint32
++}
++
++type RtMsg struct {
++ Family uint8
++ Dst_len uint8
++ Src_len uint8
++ Tos uint8
++ Table uint8
++ Protocol uint8
++ Scope uint8
++ Type uint8
++ Flags uint32
++}
++
++type RtNexthop struct {
++ Len uint16
++ Flags uint8
++ Hops uint8
++ Ifindex int32
++}
++
++type NdUseroptmsg struct {
++ Family uint8
++ Pad1 uint8
++ Opts_len uint16
++ Ifindex int32
++ Icmp_type uint8
++ Icmp_code uint8
++ Pad2 uint16
++ Pad3 uint32
++}
++
++type NdMsg struct {
++ Family uint8
++ Pad1 uint8
++ Pad2 uint16
++ Ifindex int32
++ State uint16
++ Flags uint8
++ Type uint8
++}
++
++const (
++ SizeofSockFilter = 0x8
++)
++
++type SockFilter struct {
++ Code uint16
++ Jt uint8
++ Jf uint8
++ K uint32
++}
++
++type SockFprog struct {
++ Len uint16
++ Filter *SockFilter
++}
++
++type InotifyEvent struct {
++ Wd int32
++ Mask uint32
++ Cookie uint32
++ Len uint32
++}
++
++const SizeofInotifyEvent = 0x10
++
++type Utsname struct {
++ Sysname [65]byte
++ Nodename [65]byte
++ Release [65]byte
++ Version [65]byte
++ Machine [65]byte
++ Domainname [65]byte
++}
++
++const (
++ AT_EMPTY_PATH = 0x1000
++ AT_FDCWD = -0x64
++ AT_NO_AUTOMOUNT = 0x800
++ AT_REMOVEDIR = 0x200
++
++ AT_STATX_SYNC_AS_STAT = 0x0
++ AT_STATX_FORCE_SYNC = 0x2000
++ AT_STATX_DONT_SYNC = 0x4000
++
++ AT_SYMLINK_FOLLOW = 0x400
++ AT_SYMLINK_NOFOLLOW = 0x100
++
++ AT_EACCESS = 0x200
++)
++
++type PollFd struct {
++ Fd int32
++ Events int16
++ Revents int16
++}
++
++const (
++ POLLIN = 0x1
++ POLLPRI = 0x2
++ POLLOUT = 0x4
++ POLLERR = 0x8
++ POLLHUP = 0x10
++ POLLNVAL = 0x20
++)
++
++type SignalfdSiginfo struct {
++ Signo uint32
++ Errno int32
++ Code int32
++ Pid uint32
++ Uid uint32
++ Fd int32
++ Tid uint32
++ Band uint32
++ Overrun uint32
++ Trapno uint32
++ Status int32
++ Int int32
++ Ptr uint64
++ Utime uint64
++ Stime uint64
++ Addr uint64
++ Addr_lsb uint16
++ _ uint16
++ Syscall int32
++ Call_addr uint64
++ Arch uint32
++ _ [28]uint8
++}
++
++const PERF_IOC_FLAG_GROUP = 0x1
++
++type Winsize struct {
++ Row uint16
++ Col uint16
++ Xpixel uint16
++ Ypixel uint16
++}
++
++const (
++ TASKSTATS_CMD_UNSPEC = 0x0
++ TASKSTATS_CMD_GET = 0x1
++ TASKSTATS_CMD_NEW = 0x2
++ TASKSTATS_TYPE_UNSPEC = 0x0
++ TASKSTATS_TYPE_PID = 0x1
++ TASKSTATS_TYPE_TGID = 0x2
++ TASKSTATS_TYPE_STATS = 0x3
++ TASKSTATS_TYPE_AGGR_PID = 0x4
++ TASKSTATS_TYPE_AGGR_TGID = 0x5
++ TASKSTATS_TYPE_NULL = 0x6
++ TASKSTATS_CMD_ATTR_UNSPEC = 0x0
++ TASKSTATS_CMD_ATTR_PID = 0x1
++ TASKSTATS_CMD_ATTR_TGID = 0x2
++ TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3
++ TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4
++)
++
++type CGroupStats struct {
++ Sleeping uint64
++ Running uint64
++ Stopped uint64
++ Uninterruptible uint64
++ Io_wait uint64
++}
++
++const (
++ CGROUPSTATS_CMD_UNSPEC = 0x3
++ CGROUPSTATS_CMD_GET = 0x4
++ CGROUPSTATS_CMD_NEW = 0x5
++ CGROUPSTATS_TYPE_UNSPEC = 0x0
++ CGROUPSTATS_TYPE_CGROUP_STATS = 0x1
++ CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0
++ CGROUPSTATS_CMD_ATTR_FD = 0x1
++)
++
++type Genlmsghdr struct {
++ Cmd uint8
++ Version uint8
++ Reserved uint16
++}
++
++const (
++ CTRL_CMD_UNSPEC = 0x0
++ CTRL_CMD_NEWFAMILY = 0x1
++ CTRL_CMD_DELFAMILY = 0x2
++ CTRL_CMD_GETFAMILY = 0x3
++ CTRL_CMD_NEWOPS = 0x4
++ CTRL_CMD_DELOPS = 0x5
++ CTRL_CMD_GETOPS = 0x6
++ CTRL_CMD_NEWMCAST_GRP = 0x7
++ CTRL_CMD_DELMCAST_GRP = 0x8
++ CTRL_CMD_GETMCAST_GRP = 0x9
++ CTRL_ATTR_UNSPEC = 0x0
++ CTRL_ATTR_FAMILY_ID = 0x1
++ CTRL_ATTR_FAMILY_NAME = 0x2
++ CTRL_ATTR_VERSION = 0x3
++ CTRL_ATTR_HDRSIZE = 0x4
++ CTRL_ATTR_MAXATTR = 0x5
++ CTRL_ATTR_OPS = 0x6
++ CTRL_ATTR_MCAST_GROUPS = 0x7
++ CTRL_ATTR_OP_UNSPEC = 0x0
++ CTRL_ATTR_OP_ID = 0x1
++ CTRL_ATTR_OP_FLAGS = 0x2
++ CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0
++ CTRL_ATTR_MCAST_GRP_NAME = 0x1
++ CTRL_ATTR_MCAST_GRP_ID = 0x2
++)
++
++const (
++ _CPU_SETSIZE = 0x400
++)
++
++const (
++ BDADDR_BREDR = 0x0
++ BDADDR_LE_PUBLIC = 0x1
++ BDADDR_LE_RANDOM = 0x2
++)
++
++type PerfEventAttr struct {
++ Type uint32
++ Size uint32
++ Config uint64
++ Sample uint64
++ Sample_type uint64
++ Read_format uint64
++ Bits uint64
++ Wakeup uint32
++ Bp_type uint32
++ Ext1 uint64
++ Ext2 uint64
++ Branch_sample_type uint64
++ Sample_regs_user uint64
++ Sample_stack_user uint32
++ Clockid int32
++ Sample_regs_intr uint64
++ Aux_watermark uint32
++ Sample_max_stack uint16
++ _ uint16
++}
++
++type PerfEventMmapPage struct {
++ Version uint32
++ Compat_version uint32
++ Lock uint32
++ Index uint32
++ Offset int64
++ Time_enabled uint64
++ Time_running uint64
++ Capabilities uint64
++ Pmc_width uint16
++ Time_shift uint16
++ Time_mult uint32
++ Time_offset uint64
++ Time_zero uint64
++ Size uint32
++ _ [948]uint8
++ Data_head uint64
++ Data_tail uint64
++ Data_offset uint64
++ Data_size uint64
++ Aux_head uint64
++ Aux_tail uint64
++ Aux_offset uint64
++ Aux_size uint64
++}
++
++const (
++ PerfBitDisabled uint64 = CBitFieldMaskBit0
++ PerfBitInherit = CBitFieldMaskBit1
++ PerfBitPinned = CBitFieldMaskBit2
++ PerfBitExclusive = CBitFieldMaskBit3
++ PerfBitExcludeUser = CBitFieldMaskBit4
++ PerfBitExcludeKernel = CBitFieldMaskBit5
++ PerfBitExcludeHv = CBitFieldMaskBit6
++ PerfBitExcludeIdle = CBitFieldMaskBit7
++ PerfBitMmap = CBitFieldMaskBit8
++ PerfBitComm = CBitFieldMaskBit9
++ PerfBitFreq = CBitFieldMaskBit10
++ PerfBitInheritStat = CBitFieldMaskBit11
++ PerfBitEnableOnExec = CBitFieldMaskBit12
++ PerfBitTask = CBitFieldMaskBit13
++ PerfBitWatermark = CBitFieldMaskBit14
++ PerfBitPreciseIPBit1 = CBitFieldMaskBit15
++ PerfBitPreciseIPBit2 = CBitFieldMaskBit16
++ PerfBitMmapData = CBitFieldMaskBit17
++ PerfBitSampleIDAll = CBitFieldMaskBit18
++ PerfBitExcludeHost = CBitFieldMaskBit19
++ PerfBitExcludeGuest = CBitFieldMaskBit20
++ PerfBitExcludeCallchainKernel = CBitFieldMaskBit21
++ PerfBitExcludeCallchainUser = CBitFieldMaskBit22
++ PerfBitMmap2 = CBitFieldMaskBit23
++ PerfBitCommExec = CBitFieldMaskBit24
++ PerfBitUseClockID = CBitFieldMaskBit25
++ PerfBitContextSwitch = CBitFieldMaskBit26
++)
++
++const (
++ PERF_TYPE_HARDWARE = 0x0
++ PERF_TYPE_SOFTWARE = 0x1
++ PERF_TYPE_TRACEPOINT = 0x2
++ PERF_TYPE_HW_CACHE = 0x3
++ PERF_TYPE_RAW = 0x4
++ PERF_TYPE_BREAKPOINT = 0x5
++
++ PERF_COUNT_HW_CPU_CYCLES = 0x0
++ PERF_COUNT_HW_INSTRUCTIONS = 0x1
++ PERF_COUNT_HW_CACHE_REFERENCES = 0x2
++ PERF_COUNT_HW_CACHE_MISSES = 0x3
++ PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4
++ PERF_COUNT_HW_BRANCH_MISSES = 0x5
++ PERF_COUNT_HW_BUS_CYCLES = 0x6
++ PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7
++ PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8
++ PERF_COUNT_HW_REF_CPU_CYCLES = 0x9
++
++ PERF_COUNT_HW_CACHE_L1D = 0x0
++ PERF_COUNT_HW_CACHE_L1I = 0x1
++ PERF_COUNT_HW_CACHE_LL = 0x2
++ PERF_COUNT_HW_CACHE_DTLB = 0x3
++ PERF_COUNT_HW_CACHE_ITLB = 0x4
++ PERF_COUNT_HW_CACHE_BPU = 0x5
++ PERF_COUNT_HW_CACHE_NODE = 0x6
++
++ PERF_COUNT_HW_CACHE_OP_READ = 0x0
++ PERF_COUNT_HW_CACHE_OP_WRITE = 0x1
++ PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2
++
++ PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0
++ PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1
++
++ PERF_COUNT_SW_CPU_CLOCK = 0x0
++ PERF_COUNT_SW_TASK_CLOCK = 0x1
++ PERF_COUNT_SW_PAGE_FAULTS = 0x2
++ PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3
++ PERF_COUNT_SW_CPU_MIGRATIONS = 0x4
++ PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5
++ PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6
++ PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
++ PERF_COUNT_SW_EMULATION_FAULTS = 0x8
++ PERF_COUNT_SW_DUMMY = 0x9
++ PERF_COUNT_SW_BPF_OUTPUT = 0xa
++
++ PERF_SAMPLE_IP = 0x1
++ PERF_SAMPLE_TID = 0x2
++ PERF_SAMPLE_TIME = 0x4
++ PERF_SAMPLE_ADDR = 0x8
++ PERF_SAMPLE_READ = 0x10
++ PERF_SAMPLE_CALLCHAIN = 0x20
++ PERF_SAMPLE_ID = 0x40
++ PERF_SAMPLE_CPU = 0x80
++ PERF_SAMPLE_PERIOD = 0x100
++ PERF_SAMPLE_STREAM_ID = 0x200
++ PERF_SAMPLE_RAW = 0x400
++ PERF_SAMPLE_BRANCH_STACK = 0x800
++
++ PERF_SAMPLE_BRANCH_USER = 0x1
++ PERF_SAMPLE_BRANCH_KERNEL = 0x2
++ PERF_SAMPLE_BRANCH_HV = 0x4
++ PERF_SAMPLE_BRANCH_ANY = 0x8
++ PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
++ PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
++ PERF_SAMPLE_BRANCH_IND_CALL = 0x40
++ PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
++ PERF_SAMPLE_BRANCH_IN_TX = 0x100
++ PERF_SAMPLE_BRANCH_NO_TX = 0x200
++ PERF_SAMPLE_BRANCH_COND = 0x400
++ PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
++ PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
++ PERF_SAMPLE_BRANCH_CALL = 0x2000
++ PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
++ PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
++ PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
++
++ PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
++ PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
++ PERF_FORMAT_ID = 0x4
++ PERF_FORMAT_GROUP = 0x8
++
++ PERF_RECORD_MMAP = 0x1
++ PERF_RECORD_LOST = 0x2
++ PERF_RECORD_COMM = 0x3
++ PERF_RECORD_EXIT = 0x4
++ PERF_RECORD_THROTTLE = 0x5
++ PERF_RECORD_UNTHROTTLE = 0x6
++ PERF_RECORD_FORK = 0x7
++ PERF_RECORD_READ = 0x8
++ PERF_RECORD_SAMPLE = 0x9
++ PERF_RECORD_MMAP2 = 0xa
++ PERF_RECORD_AUX = 0xb
++ PERF_RECORD_ITRACE_START = 0xc
++ PERF_RECORD_LOST_SAMPLES = 0xd
++ PERF_RECORD_SWITCH = 0xe
++ PERF_RECORD_SWITCH_CPU_WIDE = 0xf
++ PERF_RECORD_NAMESPACES = 0x10
++
++ PERF_CONTEXT_HV = -0x20
++ PERF_CONTEXT_KERNEL = -0x80
++ PERF_CONTEXT_USER = -0x200
++
++ PERF_CONTEXT_GUEST = -0x800
++ PERF_CONTEXT_GUEST_KERNEL = -0x880
++ PERF_CONTEXT_GUEST_USER = -0xa00
++
++ PERF_FLAG_FD_NO_GROUP = 0x1
++ PERF_FLAG_FD_OUTPUT = 0x2
++ PERF_FLAG_PID_CGROUP = 0x4
++ PERF_FLAG_FD_CLOEXEC = 0x8
++)
++
++type TCPMD5Sig struct {
++ Addr SockaddrStorage
++ Flags uint8
++ Prefixlen uint8
++ Keylen uint16
++ _ uint32
++ Key [80]uint8
++}
++
++type HDDriveCmdHdr struct {
++ Command uint8
++ Number uint8
++ Feature uint8
++ Count uint8
++}
++
++type HDDriveID struct {
++ Config uint16
++ Cyls uint16
++ Reserved2 uint16
++ Heads uint16
++ Track_bytes uint16
++ Sector_bytes uint16
++ Sectors uint16
++ Vendor0 uint16
++ Vendor1 uint16
++ Vendor2 uint16
++ Serial_no [20]uint8
++ Buf_type uint16
++ Buf_size uint16
++ Ecc_bytes uint16
++ Fw_rev [8]uint8
++ Model [40]uint8
++ Max_multsect uint8
++ Vendor3 uint8
++ Dword_io uint16
++ Vendor4 uint8
++ Capability uint8
++ Reserved50 uint16
++ Vendor5 uint8
++ TPIO uint8
++ Vendor6 uint8
++ TDMA uint8
++ Field_valid uint16
++ Cur_cyls uint16
++ Cur_heads uint16
++ Cur_sectors uint16
++ Cur_capacity0 uint16
++ Cur_capacity1 uint16
++ Multsect uint8
++ Multsect_valid uint8
++ Lba_capacity uint32
++ Dma_1word uint16
++ Dma_mword uint16
++ Eide_pio_modes uint16
++ Eide_dma_min uint16
++ Eide_dma_time uint16
++ Eide_pio uint16
++ Eide_pio_iordy uint16
++ Words69_70 [2]uint16
++ Words71_74 [4]uint16
++ Queue_depth uint16
++ Words76_79 [4]uint16
++ Major_rev_num uint16
++ Minor_rev_num uint16
++ Command_set_1 uint16
++ Command_set_2 uint16
++ Cfsse uint16
++ Cfs_enable_1 uint16
++ Cfs_enable_2 uint16
++ Csf_default uint16
++ Dma_ultra uint16
++ Trseuc uint16
++ TrsEuc uint16
++ CurAPMvalues uint16
++ Mprc uint16
++ Hw_config uint16
++ Acoustic uint16
++ Msrqs uint16
++ Sxfert uint16
++ Sal uint16
++ Spg uint32
++ Lba_capacity_2 uint64
++ Words104_125 [22]uint16
++ Last_lun uint16
++ Word127 uint16
++ Dlf uint16
++ Csfo uint16
++ Words130_155 [26]uint16
++ Word156 uint16
++ Words157_159 [3]uint16
++ Cfa_power uint16
++ Words161_175 [15]uint16
++ Words176_205 [30]uint16
++ Words206_254 [49]uint16
++ Integrity_word uint16
++}
++
++const (
++ ST_MANDLOCK = 0x40
++ ST_NOATIME = 0x400
++ ST_NODEV = 0x4
++ ST_NODIRATIME = 0x800
++ ST_NOEXEC = 0x8
++ ST_NOSUID = 0x2
++ ST_RDONLY = 0x1
++ ST_RELATIME = 0x1000
++ ST_SYNCHRONOUS = 0x10
++)
++
++type Tpacket2Hdr struct {
++ Status uint32
++ Len uint32
++ Snaplen uint32
++ Mac uint16
++ Net uint16
++ Sec uint32
++ Nsec uint32
++ Vlan_tci uint16
++ Vlan_tpid uint16
++ _ [4]uint8
++}
++
++type Tpacket3Hdr struct {
++ Next_offset uint32
++ Sec uint32
++ Nsec uint32
++ Snaplen uint32
++ Len uint32
++ Status uint32
++ Mac uint16
++ Net uint16
++ Hv1 TpacketHdrVariant1
++ _ [8]uint8
++}
++
++type TpacketHdrVariant1 struct {
++ Rxhash uint32
++ Vlan_tci uint32
++ Vlan_tpid uint16
++ _ uint16
++}
++
++type TpacketBlockDesc struct {
++ Version uint32
++ To_priv uint32
++ Hdr [40]byte
++}
++
++type TpacketBDTS struct {
++ Sec uint32
++ Usec uint32
++}
++
++type TpacketHdrV1 struct {
++ Block_status uint32
++ Num_pkts uint32
++ Offset_to_first_pkt uint32
++ Blk_len uint32
++ Seq_num uint64
++ Ts_first_pkt TpacketBDTS
++ Ts_last_pkt TpacketBDTS
++}
++
++type TpacketReq struct {
++ Block_size uint32
++ Block_nr uint32
++ Frame_size uint32
++ Frame_nr uint32
++}
++
++type TpacketReq3 struct {
++ Block_size uint32
++ Block_nr uint32
++ Frame_size uint32
++ Frame_nr uint32
++ Retire_blk_tov uint32
++ Sizeof_priv uint32
++ Feature_req_word uint32
++}
++
++type TpacketStats struct {
++ Packets uint32
++ Drops uint32
++}
++
++type TpacketStatsV3 struct {
++ Packets uint32
++ Drops uint32
++ Freeze_q_cnt uint32
++}
++
++type TpacketAuxdata struct {
++ Status uint32
++ Len uint32
++ Snaplen uint32
++ Mac uint16
++ Net uint16
++ Vlan_tci uint16
++ Vlan_tpid uint16
++}
++
++const (
++ TPACKET_V1 = 0x0
++ TPACKET_V2 = 0x1
++ TPACKET_V3 = 0x2
++)
++
++const (
++ SizeofTpacket2Hdr = 0x20
++ SizeofTpacket3Hdr = 0x30
++
++ SizeofTpacketStats = 0x8
++ SizeofTpacketStatsV3 = 0xc
++)
++
++const (
++ NF_INET_PRE_ROUTING = 0x0
++ NF_INET_LOCAL_IN = 0x1
++ NF_INET_FORWARD = 0x2
++ NF_INET_LOCAL_OUT = 0x3
++ NF_INET_POST_ROUTING = 0x4
++ NF_INET_NUMHOOKS = 0x5
++)
++
++const (
++ NF_NETDEV_INGRESS = 0x0
++ NF_NETDEV_NUMHOOKS = 0x1
++)
++
++const (
++ NFPROTO_UNSPEC = 0x0
++ NFPROTO_INET = 0x1
++ NFPROTO_IPV4 = 0x2
++ NFPROTO_ARP = 0x3
++ NFPROTO_NETDEV = 0x5
++ NFPROTO_BRIDGE = 0x7
++ NFPROTO_IPV6 = 0xa
++ NFPROTO_DECNET = 0xc
++ NFPROTO_NUMPROTO = 0xd
++)
++
++type Nfgenmsg struct {
++ Nfgen_family uint8
++ Version uint8
++ Res_id uint16
++}
++
++const (
++ NFNL_BATCH_UNSPEC = 0x0
++ NFNL_BATCH_GENID = 0x1
++)
++
++const (
++ NFT_REG_VERDICT = 0x0
++ NFT_REG_1 = 0x1
++ NFT_REG_2 = 0x2
++ NFT_REG_3 = 0x3
++ NFT_REG_4 = 0x4
++ NFT_REG32_00 = 0x8
++ NFT_REG32_01 = 0x9
++ NFT_REG32_02 = 0xa
++ NFT_REG32_03 = 0xb
++ NFT_REG32_04 = 0xc
++ NFT_REG32_05 = 0xd
++ NFT_REG32_06 = 0xe
++ NFT_REG32_07 = 0xf
++ NFT_REG32_08 = 0x10
++ NFT_REG32_09 = 0x11
++ NFT_REG32_10 = 0x12
++ NFT_REG32_11 = 0x13
++ NFT_REG32_12 = 0x14
++ NFT_REG32_13 = 0x15
++ NFT_REG32_14 = 0x16
++ NFT_REG32_15 = 0x17
++ NFT_CONTINUE = -0x1
++ NFT_BREAK = -0x2
++ NFT_JUMP = -0x3
++ NFT_GOTO = -0x4
++ NFT_RETURN = -0x5
++ NFT_MSG_NEWTABLE = 0x0
++ NFT_MSG_GETTABLE = 0x1
++ NFT_MSG_DELTABLE = 0x2
++ NFT_MSG_NEWCHAIN = 0x3
++ NFT_MSG_GETCHAIN = 0x4
++ NFT_MSG_DELCHAIN = 0x5
++ NFT_MSG_NEWRULE = 0x6
++ NFT_MSG_GETRULE = 0x7
++ NFT_MSG_DELRULE = 0x8
++ NFT_MSG_NEWSET = 0x9
++ NFT_MSG_GETSET = 0xa
++ NFT_MSG_DELSET = 0xb
++ NFT_MSG_NEWSETELEM = 0xc
++ NFT_MSG_GETSETELEM = 0xd
++ NFT_MSG_DELSETELEM = 0xe
++ NFT_MSG_NEWGEN = 0xf
++ NFT_MSG_GETGEN = 0x10
++ NFT_MSG_TRACE = 0x11
++ NFT_MSG_NEWOBJ = 0x12
++ NFT_MSG_GETOBJ = 0x13
++ NFT_MSG_DELOBJ = 0x14
++ NFT_MSG_GETOBJ_RESET = 0x15
++ NFT_MSG_MAX = 0x19
++ NFTA_LIST_UNPEC = 0x0
++ NFTA_LIST_ELEM = 0x1
++ NFTA_HOOK_UNSPEC = 0x0
++ NFTA_HOOK_HOOKNUM = 0x1
++ NFTA_HOOK_PRIORITY = 0x2
++ NFTA_HOOK_DEV = 0x3
++ NFT_TABLE_F_DORMANT = 0x1
++ NFTA_TABLE_UNSPEC = 0x0
++ NFTA_TABLE_NAME = 0x1
++ NFTA_TABLE_FLAGS = 0x2
++ NFTA_TABLE_USE = 0x3
++ NFTA_CHAIN_UNSPEC = 0x0
++ NFTA_CHAIN_TABLE = 0x1
++ NFTA_CHAIN_HANDLE = 0x2
++ NFTA_CHAIN_NAME = 0x3
++ NFTA_CHAIN_HOOK = 0x4
++ NFTA_CHAIN_POLICY = 0x5
++ NFTA_CHAIN_USE = 0x6
++ NFTA_CHAIN_TYPE = 0x7
++ NFTA_CHAIN_COUNTERS = 0x8
++ NFTA_CHAIN_PAD = 0x9
++ NFTA_RULE_UNSPEC = 0x0
++ NFTA_RULE_TABLE = 0x1
++ NFTA_RULE_CHAIN = 0x2
++ NFTA_RULE_HANDLE = 0x3
++ NFTA_RULE_EXPRESSIONS = 0x4
++ NFTA_RULE_COMPAT = 0x5
++ NFTA_RULE_POSITION = 0x6
++ NFTA_RULE_USERDATA = 0x7
++ NFTA_RULE_PAD = 0x8
++ NFTA_RULE_ID = 0x9
++ NFT_RULE_COMPAT_F_INV = 0x2
++ NFT_RULE_COMPAT_F_MASK = 0x2
++ NFTA_RULE_COMPAT_UNSPEC = 0x0
++ NFTA_RULE_COMPAT_PROTO = 0x1
++ NFTA_RULE_COMPAT_FLAGS = 0x2
++ NFT_SET_ANONYMOUS = 0x1
++ NFT_SET_CONSTANT = 0x2
++ NFT_SET_INTERVAL = 0x4
++ NFT_SET_MAP = 0x8
++ NFT_SET_TIMEOUT = 0x10
++ NFT_SET_EVAL = 0x20
++ NFT_SET_OBJECT = 0x40
++ NFT_SET_POL_PERFORMANCE = 0x0
++ NFT_SET_POL_MEMORY = 0x1
++ NFTA_SET_DESC_UNSPEC = 0x0
++ NFTA_SET_DESC_SIZE = 0x1
++ NFTA_SET_UNSPEC = 0x0
++ NFTA_SET_TABLE = 0x1
++ NFTA_SET_NAME = 0x2
++ NFTA_SET_FLAGS = 0x3
++ NFTA_SET_KEY_TYPE = 0x4
++ NFTA_SET_KEY_LEN = 0x5
++ NFTA_SET_DATA_TYPE = 0x6
++ NFTA_SET_DATA_LEN = 0x7
++ NFTA_SET_POLICY = 0x8
++ NFTA_SET_DESC = 0x9
++ NFTA_SET_ID = 0xa
++ NFTA_SET_TIMEOUT = 0xb
++ NFTA_SET_GC_INTERVAL = 0xc
++ NFTA_SET_USERDATA = 0xd
++ NFTA_SET_PAD = 0xe
++ NFTA_SET_OBJ_TYPE = 0xf
++ NFT_SET_ELEM_INTERVAL_END = 0x1
++ NFTA_SET_ELEM_UNSPEC = 0x0
++ NFTA_SET_ELEM_KEY = 0x1
++ NFTA_SET_ELEM_DATA = 0x2
++ NFTA_SET_ELEM_FLAGS = 0x3
++ NFTA_SET_ELEM_TIMEOUT = 0x4
++ NFTA_SET_ELEM_EXPIRATION = 0x5
++ NFTA_SET_ELEM_USERDATA = 0x6
++ NFTA_SET_ELEM_EXPR = 0x7
++ NFTA_SET_ELEM_PAD = 0x8
++ NFTA_SET_ELEM_OBJREF = 0x9
++ NFTA_SET_ELEM_LIST_UNSPEC = 0x0
++ NFTA_SET_ELEM_LIST_TABLE = 0x1
++ NFTA_SET_ELEM_LIST_SET = 0x2
++ NFTA_SET_ELEM_LIST_ELEMENTS = 0x3
++ NFTA_SET_ELEM_LIST_SET_ID = 0x4
++ NFT_DATA_VALUE = 0x0
++ NFT_DATA_VERDICT = 0xffffff00
++ NFTA_DATA_UNSPEC = 0x0
++ NFTA_DATA_VALUE = 0x1
++ NFTA_DATA_VERDICT = 0x2
++ NFTA_VERDICT_UNSPEC = 0x0
++ NFTA_VERDICT_CODE = 0x1
++ NFTA_VERDICT_CHAIN = 0x2
++ NFTA_EXPR_UNSPEC = 0x0
++ NFTA_EXPR_NAME = 0x1
++ NFTA_EXPR_DATA = 0x2
++ NFTA_IMMEDIATE_UNSPEC = 0x0
++ NFTA_IMMEDIATE_DREG = 0x1
++ NFTA_IMMEDIATE_DATA = 0x2
++ NFTA_BITWISE_UNSPEC = 0x0
++ NFTA_BITWISE_SREG = 0x1
++ NFTA_BITWISE_DREG = 0x2
++ NFTA_BITWISE_LEN = 0x3
++ NFTA_BITWISE_MASK = 0x4
++ NFTA_BITWISE_XOR = 0x5
++ NFT_BYTEORDER_NTOH = 0x0
++ NFT_BYTEORDER_HTON = 0x1
++ NFTA_BYTEORDER_UNSPEC = 0x0
++ NFTA_BYTEORDER_SREG = 0x1
++ NFTA_BYTEORDER_DREG = 0x2
++ NFTA_BYTEORDER_OP = 0x3
++ NFTA_BYTEORDER_LEN = 0x4
++ NFTA_BYTEORDER_SIZE = 0x5
++ NFT_CMP_EQ = 0x0
++ NFT_CMP_NEQ = 0x1
++ NFT_CMP_LT = 0x2
++ NFT_CMP_LTE = 0x3
++ NFT_CMP_GT = 0x4
++ NFT_CMP_GTE = 0x5
++ NFTA_CMP_UNSPEC = 0x0
++ NFTA_CMP_SREG = 0x1
++ NFTA_CMP_OP = 0x2
++ NFTA_CMP_DATA = 0x3
++ NFT_RANGE_EQ = 0x0
++ NFT_RANGE_NEQ = 0x1
++ NFTA_RANGE_UNSPEC = 0x0
++ NFTA_RANGE_SREG = 0x1
++ NFTA_RANGE_OP = 0x2
++ NFTA_RANGE_FROM_DATA = 0x3
++ NFTA_RANGE_TO_DATA = 0x4
++ NFT_LOOKUP_F_INV = 0x1
++ NFTA_LOOKUP_UNSPEC = 0x0
++ NFTA_LOOKUP_SET = 0x1
++ NFTA_LOOKUP_SREG = 0x2
++ NFTA_LOOKUP_DREG = 0x3
++ NFTA_LOOKUP_SET_ID = 0x4
++ NFTA_LOOKUP_FLAGS = 0x5
++ NFT_DYNSET_OP_ADD = 0x0
++ NFT_DYNSET_OP_UPDATE = 0x1
++ NFT_DYNSET_F_INV = 0x1
++ NFTA_DYNSET_UNSPEC = 0x0
++ NFTA_DYNSET_SET_NAME = 0x1
++ NFTA_DYNSET_SET_ID = 0x2
++ NFTA_DYNSET_OP = 0x3
++ NFTA_DYNSET_SREG_KEY = 0x4
++ NFTA_DYNSET_SREG_DATA = 0x5
++ NFTA_DYNSET_TIMEOUT = 0x6
++ NFTA_DYNSET_EXPR = 0x7
++ NFTA_DYNSET_PAD = 0x8
++ NFTA_DYNSET_FLAGS = 0x9
++ NFT_PAYLOAD_LL_HEADER = 0x0
++ NFT_PAYLOAD_NETWORK_HEADER = 0x1
++ NFT_PAYLOAD_TRANSPORT_HEADER = 0x2
++ NFT_PAYLOAD_CSUM_NONE = 0x0
++ NFT_PAYLOAD_CSUM_INET = 0x1
++ NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1
++ NFTA_PAYLOAD_UNSPEC = 0x0
++ NFTA_PAYLOAD_DREG = 0x1
++ NFTA_PAYLOAD_BASE = 0x2
++ NFTA_PAYLOAD_OFFSET = 0x3
++ NFTA_PAYLOAD_LEN = 0x4
++ NFTA_PAYLOAD_SREG = 0x5
++ NFTA_PAYLOAD_CSUM_TYPE = 0x6
++ NFTA_PAYLOAD_CSUM_OFFSET = 0x7
++ NFTA_PAYLOAD_CSUM_FLAGS = 0x8
++ NFT_EXTHDR_F_PRESENT = 0x1
++ NFT_EXTHDR_OP_IPV6 = 0x0
++ NFT_EXTHDR_OP_TCPOPT = 0x1
++ NFTA_EXTHDR_UNSPEC = 0x0
++ NFTA_EXTHDR_DREG = 0x1
++ NFTA_EXTHDR_TYPE = 0x2
++ NFTA_EXTHDR_OFFSET = 0x3
++ NFTA_EXTHDR_LEN = 0x4
++ NFTA_EXTHDR_FLAGS = 0x5
++ NFTA_EXTHDR_OP = 0x6
++ NFTA_EXTHDR_SREG = 0x7
++ NFT_META_LEN = 0x0
++ NFT_META_PROTOCOL = 0x1
++ NFT_META_PRIORITY = 0x2
++ NFT_META_MARK = 0x3
++ NFT_META_IIF = 0x4
++ NFT_META_OIF = 0x5
++ NFT_META_IIFNAME = 0x6
++ NFT_META_OIFNAME = 0x7
++ NFT_META_IIFTYPE = 0x8
++ NFT_META_OIFTYPE = 0x9
++ NFT_META_SKUID = 0xa
++ NFT_META_SKGID = 0xb
++ NFT_META_NFTRACE = 0xc
++ NFT_META_RTCLASSID = 0xd
++ NFT_META_SECMARK = 0xe
++ NFT_META_NFPROTO = 0xf
++ NFT_META_L4PROTO = 0x10
++ NFT_META_BRI_IIFNAME = 0x11
++ NFT_META_BRI_OIFNAME = 0x12
++ NFT_META_PKTTYPE = 0x13
++ NFT_META_CPU = 0x14
++ NFT_META_IIFGROUP = 0x15
++ NFT_META_OIFGROUP = 0x16
++ NFT_META_CGROUP = 0x17
++ NFT_META_PRANDOM = 0x18
++ NFT_RT_CLASSID = 0x0
++ NFT_RT_NEXTHOP4 = 0x1
++ NFT_RT_NEXTHOP6 = 0x2
++ NFT_RT_TCPMSS = 0x3
++ NFT_HASH_JENKINS = 0x0
++ NFT_HASH_SYM = 0x1
++ NFTA_HASH_UNSPEC = 0x0
++ NFTA_HASH_SREG = 0x1
++ NFTA_HASH_DREG = 0x2
++ NFTA_HASH_LEN = 0x3
++ NFTA_HASH_MODULUS = 0x4
++ NFTA_HASH_SEED = 0x5
++ NFTA_HASH_OFFSET = 0x6
++ NFTA_HASH_TYPE = 0x7
++ NFTA_META_UNSPEC = 0x0
++ NFTA_META_DREG = 0x1
++ NFTA_META_KEY = 0x2
++ NFTA_META_SREG = 0x3
++ NFTA_RT_UNSPEC = 0x0
++ NFTA_RT_DREG = 0x1
++ NFTA_RT_KEY = 0x2
++ NFT_CT_STATE = 0x0
++ NFT_CT_DIRECTION = 0x1
++ NFT_CT_STATUS = 0x2
++ NFT_CT_MARK = 0x3
++ NFT_CT_SECMARK = 0x4
++ NFT_CT_EXPIRATION = 0x5
++ NFT_CT_HELPER = 0x6
++ NFT_CT_L3PROTOCOL = 0x7
++ NFT_CT_SRC = 0x8
++ NFT_CT_DST = 0x9
++ NFT_CT_PROTOCOL = 0xa
++ NFT_CT_PROTO_SRC = 0xb
++ NFT_CT_PROTO_DST = 0xc
++ NFT_CT_LABELS = 0xd
++ NFT_CT_PKTS = 0xe
++ NFT_CT_BYTES = 0xf
++ NFT_CT_AVGPKT = 0x10
++ NFT_CT_ZONE = 0x11
++ NFT_CT_EVENTMASK = 0x12
++ NFTA_CT_UNSPEC = 0x0
++ NFTA_CT_DREG = 0x1
++ NFTA_CT_KEY = 0x2
++ NFTA_CT_DIRECTION = 0x3
++ NFTA_CT_SREG = 0x4
++ NFT_LIMIT_PKTS = 0x0
++ NFT_LIMIT_PKT_BYTES = 0x1
++ NFT_LIMIT_F_INV = 0x1
++ NFTA_LIMIT_UNSPEC = 0x0
++ NFTA_LIMIT_RATE = 0x1
++ NFTA_LIMIT_UNIT = 0x2
++ NFTA_LIMIT_BURST = 0x3
++ NFTA_LIMIT_TYPE = 0x4
++ NFTA_LIMIT_FLAGS = 0x5
++ NFTA_LIMIT_PAD = 0x6
++ NFTA_COUNTER_UNSPEC = 0x0
++ NFTA_COUNTER_BYTES = 0x1
++ NFTA_COUNTER_PACKETS = 0x2
++ NFTA_COUNTER_PAD = 0x3
++ NFTA_LOG_UNSPEC = 0x0
++ NFTA_LOG_GROUP = 0x1
++ NFTA_LOG_PREFIX = 0x2
++ NFTA_LOG_SNAPLEN = 0x3
++ NFTA_LOG_QTHRESHOLD = 0x4
++ NFTA_LOG_LEVEL = 0x5
++ NFTA_LOG_FLAGS = 0x6
++ NFTA_QUEUE_UNSPEC = 0x0
++ NFTA_QUEUE_NUM = 0x1
++ NFTA_QUEUE_TOTAL = 0x2
++ NFTA_QUEUE_FLAGS = 0x3
++ NFTA_QUEUE_SREG_QNUM = 0x4
++ NFT_QUOTA_F_INV = 0x1
++ NFT_QUOTA_F_DEPLETED = 0x2
++ NFTA_QUOTA_UNSPEC = 0x0
++ NFTA_QUOTA_BYTES = 0x1
++ NFTA_QUOTA_FLAGS = 0x2
++ NFTA_QUOTA_PAD = 0x3
++ NFTA_QUOTA_CONSUMED = 0x4
++ NFT_REJECT_ICMP_UNREACH = 0x0
++ NFT_REJECT_TCP_RST = 0x1
++ NFT_REJECT_ICMPX_UNREACH = 0x2
++ NFT_REJECT_ICMPX_NO_ROUTE = 0x0
++ NFT_REJECT_ICMPX_PORT_UNREACH = 0x1
++ NFT_REJECT_ICMPX_HOST_UNREACH = 0x2
++ NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3
++ NFTA_REJECT_UNSPEC = 0x0
++ NFTA_REJECT_TYPE = 0x1
++ NFTA_REJECT_ICMP_CODE = 0x2
++ NFT_NAT_SNAT = 0x0
++ NFT_NAT_DNAT = 0x1
++ NFTA_NAT_UNSPEC = 0x0
++ NFTA_NAT_TYPE = 0x1
++ NFTA_NAT_FAMILY = 0x2
++ NFTA_NAT_REG_ADDR_MIN = 0x3
++ NFTA_NAT_REG_ADDR_MAX = 0x4
++ NFTA_NAT_REG_PROTO_MIN = 0x5
++ NFTA_NAT_REG_PROTO_MAX = 0x6
++ NFTA_NAT_FLAGS = 0x7
++ NFTA_MASQ_UNSPEC = 0x0
++ NFTA_MASQ_FLAGS = 0x1
++ NFTA_MASQ_REG_PROTO_MIN = 0x2
++ NFTA_MASQ_REG_PROTO_MAX = 0x3
++ NFTA_REDIR_UNSPEC = 0x0
++ NFTA_REDIR_REG_PROTO_MIN = 0x1
++ NFTA_REDIR_REG_PROTO_MAX = 0x2
++ NFTA_REDIR_FLAGS = 0x3
++ NFTA_DUP_UNSPEC = 0x0
++ NFTA_DUP_SREG_ADDR = 0x1
++ NFTA_DUP_SREG_DEV = 0x2
++ NFTA_FWD_UNSPEC = 0x0
++ NFTA_FWD_SREG_DEV = 0x1
++ NFTA_OBJREF_UNSPEC = 0x0
++ NFTA_OBJREF_IMM_TYPE = 0x1
++ NFTA_OBJREF_IMM_NAME = 0x2
++ NFTA_OBJREF_SET_SREG = 0x3
++ NFTA_OBJREF_SET_NAME = 0x4
++ NFTA_OBJREF_SET_ID = 0x5
++ NFTA_GEN_UNSPEC = 0x0
++ NFTA_GEN_ID = 0x1
++ NFTA_GEN_PROC_PID = 0x2
++ NFTA_GEN_PROC_NAME = 0x3
++ NFTA_FIB_UNSPEC = 0x0
++ NFTA_FIB_DREG = 0x1
++ NFTA_FIB_RESULT = 0x2
++ NFTA_FIB_FLAGS = 0x3
++ NFT_FIB_RESULT_UNSPEC = 0x0
++ NFT_FIB_RESULT_OIF = 0x1
++ NFT_FIB_RESULT_OIFNAME = 0x2
++ NFT_FIB_RESULT_ADDRTYPE = 0x3
++ NFTA_FIB_F_SADDR = 0x1
++ NFTA_FIB_F_DADDR = 0x2
++ NFTA_FIB_F_MARK = 0x4
++ NFTA_FIB_F_IIF = 0x8
++ NFTA_FIB_F_OIF = 0x10
++ NFTA_FIB_F_PRESENT = 0x20
++ NFTA_CT_HELPER_UNSPEC = 0x0
++ NFTA_CT_HELPER_NAME = 0x1
++ NFTA_CT_HELPER_L3PROTO = 0x2
++ NFTA_CT_HELPER_L4PROTO = 0x3
++ NFTA_OBJ_UNSPEC = 0x0
++ NFTA_OBJ_TABLE = 0x1
++ NFTA_OBJ_NAME = 0x2
++ NFTA_OBJ_TYPE = 0x3
++ NFTA_OBJ_DATA = 0x4
++ NFTA_OBJ_USE = 0x5
++ NFTA_TRACE_UNSPEC = 0x0
++ NFTA_TRACE_TABLE = 0x1
++ NFTA_TRACE_CHAIN = 0x2
++ NFTA_TRACE_RULE_HANDLE = 0x3
++ NFTA_TRACE_TYPE = 0x4
++ NFTA_TRACE_VERDICT = 0x5
++ NFTA_TRACE_ID = 0x6
++ NFTA_TRACE_LL_HEADER = 0x7
++ NFTA_TRACE_NETWORK_HEADER = 0x8
++ NFTA_TRACE_TRANSPORT_HEADER = 0x9
++ NFTA_TRACE_IIF = 0xa
++ NFTA_TRACE_IIFTYPE = 0xb
++ NFTA_TRACE_OIF = 0xc
++ NFTA_TRACE_OIFTYPE = 0xd
++ NFTA_TRACE_MARK = 0xe
++ NFTA_TRACE_NFPROTO = 0xf
++ NFTA_TRACE_POLICY = 0x10
++ NFTA_TRACE_PAD = 0x11
++ NFT_TRACETYPE_UNSPEC = 0x0
++ NFT_TRACETYPE_POLICY = 0x1
++ NFT_TRACETYPE_RETURN = 0x2
++ NFT_TRACETYPE_RULE = 0x3
++ NFTA_NG_UNSPEC = 0x0
++ NFTA_NG_DREG = 0x1
++ NFTA_NG_MODULUS = 0x2
++ NFTA_NG_TYPE = 0x3
++ NFTA_NG_OFFSET = 0x4
++ NFT_NG_INCREMENTAL = 0x0
++ NFT_NG_RANDOM = 0x1
++)
++
++type RTCTime struct {
++ Sec int32
++ Min int32
++ Hour int32
++ Mday int32
++ Mon int32
++ Year int32
++ Wday int32
++ Yday int32
++ Isdst int32
++}
++
++type RTCWkAlrm struct {
++ Enabled uint8
++ Pending uint8
++ Time RTCTime
++}
++
++type BlkpgIoctlArg struct {
++ Op int32
++ Flags int32
++ Datalen int32
++ Data *byte
++}
++
++const (
++ BLKPG_ADD_PARTITION = 0x1
++ BLKPG_DEL_PARTITION = 0x2
++ BLKPG_RESIZE_PARTITION = 0x3
++)
++
++const (
++ NETNSA_NONE = 0x0
++ NETNSA_NSID = 0x1
++ NETNSA_PID = 0x2
++ NETNSA_FD = 0x3
++)
++
++type XDPRingOffset struct {
++ Producer uint64
++ Consumer uint64
++ Desc uint64
++ Flags uint64
++}
++
++type XDPMmapOffsets struct {
++ Rx XDPRingOffset
++ Tx XDPRingOffset
++ Fr XDPRingOffset
++ Cr XDPRingOffset
++}
++
++type XDPStatistics struct {
++ Rx_dropped uint64
++ Rx_invalid_descs uint64
++ Tx_invalid_descs uint64
++}
++
++type XDPDesc struct {
++ Addr uint64
++ Len uint32
++ Options uint32
++}
++
++const (
++ NCSI_CMD_UNSPEC = 0x0
++ NCSI_CMD_PKG_INFO = 0x1
++ NCSI_CMD_SET_INTERFACE = 0x2
++ NCSI_CMD_CLEAR_INTERFACE = 0x3
++ NCSI_ATTR_UNSPEC = 0x0
++ NCSI_ATTR_IFINDEX = 0x1
++ NCSI_ATTR_PACKAGE_LIST = 0x2
++ NCSI_ATTR_PACKAGE_ID = 0x3
++ NCSI_ATTR_CHANNEL_ID = 0x4
++ NCSI_PKG_ATTR_UNSPEC = 0x0
++ NCSI_PKG_ATTR = 0x1
++ NCSI_PKG_ATTR_ID = 0x2
++ NCSI_PKG_ATTR_FORCED = 0x3
++ NCSI_PKG_ATTR_CHANNEL_LIST = 0x4
++ NCSI_CHANNEL_ATTR_UNSPEC = 0x0
++ NCSI_CHANNEL_ATTR = 0x1
++ NCSI_CHANNEL_ATTR_ID = 0x2
++ NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3
++ NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4
++ NCSI_CHANNEL_ATTR_VERSION_STR = 0x5
++ NCSI_CHANNEL_ATTR_LINK_STATE = 0x6
++ NCSI_CHANNEL_ATTR_ACTIVE = 0x7
++ NCSI_CHANNEL_ATTR_FORCED = 0x8
++ NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9
++ NCSI_CHANNEL_ATTR_VLAN_ID = 0xa
++)
++
++type ScmTimestamping struct {
++ Ts [3]Timespec
++}
++
++const (
++ SOF_TIMESTAMPING_TX_HARDWARE = 0x1
++ SOF_TIMESTAMPING_TX_SOFTWARE = 0x2
++ SOF_TIMESTAMPING_RX_HARDWARE = 0x4
++ SOF_TIMESTAMPING_RX_SOFTWARE = 0x8
++ SOF_TIMESTAMPING_SOFTWARE = 0x10
++ SOF_TIMESTAMPING_SYS_HARDWARE = 0x20
++ SOF_TIMESTAMPING_RAW_HARDWARE = 0x40
++ SOF_TIMESTAMPING_OPT_ID = 0x80
++ SOF_TIMESTAMPING_TX_SCHED = 0x100
++ SOF_TIMESTAMPING_TX_ACK = 0x200
++ SOF_TIMESTAMPING_OPT_CMSG = 0x400
++ SOF_TIMESTAMPING_OPT_TSONLY = 0x800
++ SOF_TIMESTAMPING_OPT_STATS = 0x1000
++ SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000
++ SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000
++
++ SOF_TIMESTAMPING_LAST = 0x4000
++ SOF_TIMESTAMPING_MASK = 0x7fff
++
++ SCM_TSTAMP_SND = 0x0
++ SCM_TSTAMP_SCHED = 0x1
++ SCM_TSTAMP_ACK = 0x2
++)
++
++type SockExtendedErr struct {
++ Errno uint32
++ Origin uint8
++ Type uint8
++ Code uint8
++ Pad uint8
++ Info uint32
++ Data uint32
++}
++
++type FanotifyEventMetadata struct {
++ Event_len uint32
++ Vers uint8
++ Reserved uint8
++ Metadata_len uint16
++ Mask uint64
++ Fd int32
++ Pid int32
++}
++
++type FanotifyResponse struct {
++ Fd int32
++ Response uint32
++}
++
++const (
++ CRYPTO_MSG_BASE = 0x10
++ CRYPTO_MSG_NEWALG = 0x10
++ CRYPTO_MSG_DELALG = 0x11
++ CRYPTO_MSG_UPDATEALG = 0x12
++ CRYPTO_MSG_GETALG = 0x13
++ CRYPTO_MSG_DELRNG = 0x14
++ CRYPTO_MSG_GETSTAT = 0x15
++)
++
++const (
++ CRYPTOCFGA_UNSPEC = 0x0
++ CRYPTOCFGA_PRIORITY_VAL = 0x1
++ CRYPTOCFGA_REPORT_LARVAL = 0x2
++ CRYPTOCFGA_REPORT_HASH = 0x3
++ CRYPTOCFGA_REPORT_BLKCIPHER = 0x4
++ CRYPTOCFGA_REPORT_AEAD = 0x5
++ CRYPTOCFGA_REPORT_COMPRESS = 0x6
++ CRYPTOCFGA_REPORT_RNG = 0x7
++ CRYPTOCFGA_REPORT_CIPHER = 0x8
++ CRYPTOCFGA_REPORT_AKCIPHER = 0x9
++ CRYPTOCFGA_REPORT_KPP = 0xa
++ CRYPTOCFGA_REPORT_ACOMP = 0xb
++ CRYPTOCFGA_STAT_LARVAL = 0xc
++ CRYPTOCFGA_STAT_HASH = 0xd
++ CRYPTOCFGA_STAT_BLKCIPHER = 0xe
++ CRYPTOCFGA_STAT_AEAD = 0xf
++ CRYPTOCFGA_STAT_COMPRESS = 0x10
++ CRYPTOCFGA_STAT_RNG = 0x11
++ CRYPTOCFGA_STAT_CIPHER = 0x12
++ CRYPTOCFGA_STAT_AKCIPHER = 0x13
++ CRYPTOCFGA_STAT_KPP = 0x14
++ CRYPTOCFGA_STAT_ACOMP = 0x15
++)
++
++const (
++ BPF_REG_0 = 0x0
++ BPF_REG_1 = 0x1
++ BPF_REG_2 = 0x2
++ BPF_REG_3 = 0x3
++ BPF_REG_4 = 0x4
++ BPF_REG_5 = 0x5
++ BPF_REG_6 = 0x6
++ BPF_REG_7 = 0x7
++ BPF_REG_8 = 0x8
++ BPF_REG_9 = 0x9
++ BPF_REG_10 = 0xa
++ BPF_MAP_CREATE = 0x0
++ BPF_MAP_LOOKUP_ELEM = 0x1
++ BPF_MAP_UPDATE_ELEM = 0x2
++ BPF_MAP_DELETE_ELEM = 0x3
++ BPF_MAP_GET_NEXT_KEY = 0x4
++ BPF_PROG_LOAD = 0x5
++ BPF_OBJ_PIN = 0x6
++ BPF_OBJ_GET = 0x7
++ BPF_PROG_ATTACH = 0x8
++ BPF_PROG_DETACH = 0x9
++ BPF_PROG_TEST_RUN = 0xa
++ BPF_PROG_GET_NEXT_ID = 0xb
++ BPF_MAP_GET_NEXT_ID = 0xc
++ BPF_PROG_GET_FD_BY_ID = 0xd
++ BPF_MAP_GET_FD_BY_ID = 0xe
++ BPF_OBJ_GET_INFO_BY_FD = 0xf
++ BPF_PROG_QUERY = 0x10
++ BPF_RAW_TRACEPOINT_OPEN = 0x11
++ BPF_BTF_LOAD = 0x12
++ BPF_BTF_GET_FD_BY_ID = 0x13
++ BPF_TASK_FD_QUERY = 0x14
++ BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15
++ BPF_MAP_FREEZE = 0x16
++ BPF_BTF_GET_NEXT_ID = 0x17
++ BPF_MAP_TYPE_UNSPEC = 0x0
++ BPF_MAP_TYPE_HASH = 0x1
++ BPF_MAP_TYPE_ARRAY = 0x2
++ BPF_MAP_TYPE_PROG_ARRAY = 0x3
++ BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4
++ BPF_MAP_TYPE_PERCPU_HASH = 0x5
++ BPF_MAP_TYPE_PERCPU_ARRAY = 0x6
++ BPF_MAP_TYPE_STACK_TRACE = 0x7
++ BPF_MAP_TYPE_CGROUP_ARRAY = 0x8
++ BPF_MAP_TYPE_LRU_HASH = 0x9
++ BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa
++ BPF_MAP_TYPE_LPM_TRIE = 0xb
++ BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc
++ BPF_MAP_TYPE_HASH_OF_MAPS = 0xd
++ BPF_MAP_TYPE_DEVMAP = 0xe
++ BPF_MAP_TYPE_SOCKMAP = 0xf
++ BPF_MAP_TYPE_CPUMAP = 0x10
++ BPF_MAP_TYPE_XSKMAP = 0x11
++ BPF_MAP_TYPE_SOCKHASH = 0x12
++ BPF_MAP_TYPE_CGROUP_STORAGE = 0x13
++ BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14
++ BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15
++ BPF_MAP_TYPE_QUEUE = 0x16
++ BPF_MAP_TYPE_STACK = 0x17
++ BPF_MAP_TYPE_SK_STORAGE = 0x18
++ BPF_MAP_TYPE_DEVMAP_HASH = 0x19
++ BPF_PROG_TYPE_UNSPEC = 0x0
++ BPF_PROG_TYPE_SOCKET_FILTER = 0x1
++ BPF_PROG_TYPE_KPROBE = 0x2
++ BPF_PROG_TYPE_SCHED_CLS = 0x3
++ BPF_PROG_TYPE_SCHED_ACT = 0x4
++ BPF_PROG_TYPE_TRACEPOINT = 0x5
++ BPF_PROG_TYPE_XDP = 0x6
++ BPF_PROG_TYPE_PERF_EVENT = 0x7
++ BPF_PROG_TYPE_CGROUP_SKB = 0x8
++ BPF_PROG_TYPE_CGROUP_SOCK = 0x9
++ BPF_PROG_TYPE_LWT_IN = 0xa
++ BPF_PROG_TYPE_LWT_OUT = 0xb
++ BPF_PROG_TYPE_LWT_XMIT = 0xc
++ BPF_PROG_TYPE_SOCK_OPS = 0xd
++ BPF_PROG_TYPE_SK_SKB = 0xe
++ BPF_PROG_TYPE_CGROUP_DEVICE = 0xf
++ BPF_PROG_TYPE_SK_MSG = 0x10
++ BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11
++ BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12
++ BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13
++ BPF_PROG_TYPE_LIRC_MODE2 = 0x14
++ BPF_PROG_TYPE_SK_REUSEPORT = 0x15
++ BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16
++ BPF_PROG_TYPE_CGROUP_SYSCTL = 0x17
++ BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 0x18
++ BPF_PROG_TYPE_CGROUP_SOCKOPT = 0x19
++ BPF_PROG_TYPE_TRACING = 0x1a
++ BPF_CGROUP_INET_INGRESS = 0x0
++ BPF_CGROUP_INET_EGRESS = 0x1
++ BPF_CGROUP_INET_SOCK_CREATE = 0x2
++ BPF_CGROUP_SOCK_OPS = 0x3
++ BPF_SK_SKB_STREAM_PARSER = 0x4
++ BPF_SK_SKB_STREAM_VERDICT = 0x5
++ BPF_CGROUP_DEVICE = 0x6
++ BPF_SK_MSG_VERDICT = 0x7
++ BPF_CGROUP_INET4_BIND = 0x8
++ BPF_CGROUP_INET6_BIND = 0x9
++ BPF_CGROUP_INET4_CONNECT = 0xa
++ BPF_CGROUP_INET6_CONNECT = 0xb
++ BPF_CGROUP_INET4_POST_BIND = 0xc
++ BPF_CGROUP_INET6_POST_BIND = 0xd
++ BPF_CGROUP_UDP4_SENDMSG = 0xe
++ BPF_CGROUP_UDP6_SENDMSG = 0xf
++ BPF_LIRC_MODE2 = 0x10
++ BPF_FLOW_DISSECTOR = 0x11
++ BPF_CGROUP_SYSCTL = 0x12
++ BPF_CGROUP_UDP4_RECVMSG = 0x13
++ BPF_CGROUP_UDP6_RECVMSG = 0x14
++ BPF_CGROUP_GETSOCKOPT = 0x15
++ BPF_CGROUP_SETSOCKOPT = 0x16
++ BPF_TRACE_RAW_TP = 0x17
++ BPF_TRACE_FENTRY = 0x18
++ BPF_TRACE_FEXIT = 0x19
++ BPF_STACK_BUILD_ID_EMPTY = 0x0
++ BPF_STACK_BUILD_ID_VALID = 0x1
++ BPF_STACK_BUILD_ID_IP = 0x2
++ BPF_ADJ_ROOM_NET = 0x0
++ BPF_ADJ_ROOM_MAC = 0x1
++ BPF_HDR_START_MAC = 0x0
++ BPF_HDR_START_NET = 0x1
++ BPF_LWT_ENCAP_SEG6 = 0x0
++ BPF_LWT_ENCAP_SEG6_INLINE = 0x1
++ BPF_LWT_ENCAP_IP = 0x2
++ BPF_OK = 0x0
++ BPF_DROP = 0x2
++ BPF_REDIRECT = 0x7
++ BPF_LWT_REROUTE = 0x80
++ BPF_SOCK_OPS_VOID = 0x0
++ BPF_SOCK_OPS_TIMEOUT_INIT = 0x1
++ BPF_SOCK_OPS_RWND_INIT = 0x2
++ BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3
++ BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4
++ BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5
++ BPF_SOCK_OPS_NEEDS_ECN = 0x6
++ BPF_SOCK_OPS_BASE_RTT = 0x7
++ BPF_SOCK_OPS_RTO_CB = 0x8
++ BPF_SOCK_OPS_RETRANS_CB = 0x9
++ BPF_SOCK_OPS_STATE_CB = 0xa
++ BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb
++ BPF_SOCK_OPS_RTT_CB = 0xc
++ BPF_TCP_ESTABLISHED = 0x1
++ BPF_TCP_SYN_SENT = 0x2
++ BPF_TCP_SYN_RECV = 0x3
++ BPF_TCP_FIN_WAIT1 = 0x4
++ BPF_TCP_FIN_WAIT2 = 0x5
++ BPF_TCP_TIME_WAIT = 0x6
++ BPF_TCP_CLOSE = 0x7
++ BPF_TCP_CLOSE_WAIT = 0x8
++ BPF_TCP_LAST_ACK = 0x9
++ BPF_TCP_LISTEN = 0xa
++ BPF_TCP_CLOSING = 0xb
++ BPF_TCP_NEW_SYN_RECV = 0xc
++ BPF_TCP_MAX_STATES = 0xd
++ BPF_FIB_LKUP_RET_SUCCESS = 0x0
++ BPF_FIB_LKUP_RET_BLACKHOLE = 0x1
++ BPF_FIB_LKUP_RET_UNREACHABLE = 0x2
++ BPF_FIB_LKUP_RET_PROHIBIT = 0x3
++ BPF_FIB_LKUP_RET_NOT_FWDED = 0x4
++ BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5
++ BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6
++ BPF_FIB_LKUP_RET_NO_NEIGH = 0x7
++ BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8
++ BPF_FD_TYPE_RAW_TRACEPOINT = 0x0
++ BPF_FD_TYPE_TRACEPOINT = 0x1
++ BPF_FD_TYPE_KPROBE = 0x2
++ BPF_FD_TYPE_KRETPROBE = 0x3
++ BPF_FD_TYPE_UPROBE = 0x4
++ BPF_FD_TYPE_URETPROBE = 0x5
++)
++
++const (
++ RTNLGRP_NONE = 0x0
++ RTNLGRP_LINK = 0x1
++ RTNLGRP_NOTIFY = 0x2
++ RTNLGRP_NEIGH = 0x3
++ RTNLGRP_TC = 0x4
++ RTNLGRP_IPV4_IFADDR = 0x5
++ RTNLGRP_IPV4_MROUTE = 0x6
++ RTNLGRP_IPV4_ROUTE = 0x7
++ RTNLGRP_IPV4_RULE = 0x8
++ RTNLGRP_IPV6_IFADDR = 0x9
++ RTNLGRP_IPV6_MROUTE = 0xa
++ RTNLGRP_IPV6_ROUTE = 0xb
++ RTNLGRP_IPV6_IFINFO = 0xc
++ RTNLGRP_DECnet_IFADDR = 0xd
++ RTNLGRP_NOP2 = 0xe
++ RTNLGRP_DECnet_ROUTE = 0xf
++ RTNLGRP_DECnet_RULE = 0x10
++ RTNLGRP_NOP4 = 0x11
++ RTNLGRP_IPV6_PREFIX = 0x12
++ RTNLGRP_IPV6_RULE = 0x13
++ RTNLGRP_ND_USEROPT = 0x14
++ RTNLGRP_PHONET_IFADDR = 0x15
++ RTNLGRP_PHONET_ROUTE = 0x16
++ RTNLGRP_DCB = 0x17
++ RTNLGRP_IPV4_NETCONF = 0x18
++ RTNLGRP_IPV6_NETCONF = 0x19
++ RTNLGRP_MDB = 0x1a
++ RTNLGRP_MPLS_ROUTE = 0x1b
++ RTNLGRP_NSID = 0x1c
++ RTNLGRP_MPLS_NETCONF = 0x1d
++ RTNLGRP_IPV4_MROUTE_R = 0x1e
++ RTNLGRP_IPV6_MROUTE_R = 0x1f
++ RTNLGRP_NEXTHOP = 0x20
++)
++
++type CapUserHeader struct {
++ Version uint32
++ Pid int32
++}
++
++type CapUserData struct {
++ Effective uint32
++ Permitted uint32
++ Inheritable uint32
++}
++
++const (
++ LINUX_CAPABILITY_VERSION_1 = 0x19980330
++ LINUX_CAPABILITY_VERSION_2 = 0x20071026
++ LINUX_CAPABILITY_VERSION_3 = 0x20080522
++)
++
++const (
++ LO_FLAGS_READ_ONLY = 0x1
++ LO_FLAGS_AUTOCLEAR = 0x4
++ LO_FLAGS_PARTSCAN = 0x8
++ LO_FLAGS_DIRECT_IO = 0x10
++)
++
++type LoopInfo64 struct {
++ Device uint64
++ Inode uint64
++ Rdevice uint64
++ Offset uint64
++ Sizelimit uint64
++ Number uint32
++ Encrypt_type uint32
++ Encrypt_key_size uint32
++ Flags uint32
++ File_name [64]uint8
++ Crypt_name [64]uint8
++ Encrypt_key [32]uint8
++ Init [2]uint64
++}
++
++type TIPCSocketAddr struct {
++ Ref uint32
++ Node uint32
++}
++
++type TIPCServiceRange struct {
++ Type uint32
++ Lower uint32
++ Upper uint32
++}
++
++type TIPCServiceName struct {
++ Type uint32
++ Instance uint32
++ Domain uint32
++}
++
++type TIPCEvent struct {
++ Event uint32
++ Lower uint32
++ Upper uint32
++ Port TIPCSocketAddr
++ S TIPCSubscr
++}
++
++type TIPCGroupReq struct {
++ Type uint32
++ Instance uint32
++ Scope uint32
++ Flags uint32
++}
++
++const (
++ TIPC_CLUSTER_SCOPE = 0x2
++ TIPC_NODE_SCOPE = 0x3
++)
++
++const (
++ SYSLOG_ACTION_CLOSE = 0
++ SYSLOG_ACTION_OPEN = 1
++ SYSLOG_ACTION_READ = 2
++ SYSLOG_ACTION_READ_ALL = 3
++ SYSLOG_ACTION_READ_CLEAR = 4
++ SYSLOG_ACTION_CLEAR = 5
++ SYSLOG_ACTION_CONSOLE_OFF = 6
++ SYSLOG_ACTION_CONSOLE_ON = 7
++ SYSLOG_ACTION_CONSOLE_LEVEL = 8
++ SYSLOG_ACTION_SIZE_UNREAD = 9
++ SYSLOG_ACTION_SIZE_BUFFER = 10
++)
++
++const (
++ DEVLINK_CMD_UNSPEC = 0x0
++ DEVLINK_CMD_GET = 0x1
++ DEVLINK_CMD_SET = 0x2
++ DEVLINK_CMD_NEW = 0x3
++ DEVLINK_CMD_DEL = 0x4
++ DEVLINK_CMD_PORT_GET = 0x5
++ DEVLINK_CMD_PORT_SET = 0x6
++ DEVLINK_CMD_PORT_NEW = 0x7
++ DEVLINK_CMD_PORT_DEL = 0x8
++ DEVLINK_CMD_PORT_SPLIT = 0x9
++ DEVLINK_CMD_PORT_UNSPLIT = 0xa
++ DEVLINK_CMD_SB_GET = 0xb
++ DEVLINK_CMD_SB_SET = 0xc
++ DEVLINK_CMD_SB_NEW = 0xd
++ DEVLINK_CMD_SB_DEL = 0xe
++ DEVLINK_CMD_SB_POOL_GET = 0xf
++ DEVLINK_CMD_SB_POOL_SET = 0x10
++ DEVLINK_CMD_SB_POOL_NEW = 0x11
++ DEVLINK_CMD_SB_POOL_DEL = 0x12
++ DEVLINK_CMD_SB_PORT_POOL_GET = 0x13
++ DEVLINK_CMD_SB_PORT_POOL_SET = 0x14
++ DEVLINK_CMD_SB_PORT_POOL_NEW = 0x15
++ DEVLINK_CMD_SB_PORT_POOL_DEL = 0x16
++ DEVLINK_CMD_SB_TC_POOL_BIND_GET = 0x17
++ DEVLINK_CMD_SB_TC_POOL_BIND_SET = 0x18
++ DEVLINK_CMD_SB_TC_POOL_BIND_NEW = 0x19
++ DEVLINK_CMD_SB_TC_POOL_BIND_DEL = 0x1a
++ DEVLINK_CMD_SB_OCC_SNAPSHOT = 0x1b
++ DEVLINK_CMD_SB_OCC_MAX_CLEAR = 0x1c
++ DEVLINK_CMD_ESWITCH_GET = 0x1d
++ DEVLINK_CMD_ESWITCH_SET = 0x1e
++ DEVLINK_CMD_DPIPE_TABLE_GET = 0x1f
++ DEVLINK_CMD_DPIPE_ENTRIES_GET = 0x20
++ DEVLINK_CMD_DPIPE_HEADERS_GET = 0x21
++ DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET = 0x22
++ DEVLINK_CMD_MAX = 0x44
++ DEVLINK_PORT_TYPE_NOTSET = 0x0
++ DEVLINK_PORT_TYPE_AUTO = 0x1
++ DEVLINK_PORT_TYPE_ETH = 0x2
++ DEVLINK_PORT_TYPE_IB = 0x3
++ DEVLINK_SB_POOL_TYPE_INGRESS = 0x0
++ DEVLINK_SB_POOL_TYPE_EGRESS = 0x1
++ DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0x0
++ DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 0x1
++ DEVLINK_ESWITCH_MODE_LEGACY = 0x0
++ DEVLINK_ESWITCH_MODE_SWITCHDEV = 0x1
++ DEVLINK_ESWITCH_INLINE_MODE_NONE = 0x0
++ DEVLINK_ESWITCH_INLINE_MODE_LINK = 0x1
++ DEVLINK_ESWITCH_INLINE_MODE_NETWORK = 0x2
++ DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT = 0x3
++ DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0x0
++ DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 0x1
++ DEVLINK_ATTR_UNSPEC = 0x0
++ DEVLINK_ATTR_BUS_NAME = 0x1
++ DEVLINK_ATTR_DEV_NAME = 0x2
++ DEVLINK_ATTR_PORT_INDEX = 0x3
++ DEVLINK_ATTR_PORT_TYPE = 0x4
++ DEVLINK_ATTR_PORT_DESIRED_TYPE = 0x5
++ DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 0x6
++ DEVLINK_ATTR_PORT_NETDEV_NAME = 0x7
++ DEVLINK_ATTR_PORT_IBDEV_NAME = 0x8
++ DEVLINK_ATTR_PORT_SPLIT_COUNT = 0x9
++ DEVLINK_ATTR_PORT_SPLIT_GROUP = 0xa
++ DEVLINK_ATTR_SB_INDEX = 0xb
++ DEVLINK_ATTR_SB_SIZE = 0xc
++ DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 0xd
++ DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 0xe
++ DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 0xf
++ DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 0x10
++ DEVLINK_ATTR_SB_POOL_INDEX = 0x11
++ DEVLINK_ATTR_SB_POOL_TYPE = 0x12
++ DEVLINK_ATTR_SB_POOL_SIZE = 0x13
++ DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 0x14
++ DEVLINK_ATTR_SB_THRESHOLD = 0x15
++ DEVLINK_ATTR_SB_TC_INDEX = 0x16
++ DEVLINK_ATTR_SB_OCC_CUR = 0x17
++ DEVLINK_ATTR_SB_OCC_MAX = 0x18
++ DEVLINK_ATTR_ESWITCH_MODE = 0x19
++ DEVLINK_ATTR_ESWITCH_INLINE_MODE = 0x1a
++ DEVLINK_ATTR_DPIPE_TABLES = 0x1b
++ DEVLINK_ATTR_DPIPE_TABLE = 0x1c
++ DEVLINK_ATTR_DPIPE_TABLE_NAME = 0x1d
++ DEVLINK_ATTR_DPIPE_TABLE_SIZE = 0x1e
++ DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 0x1f
++ DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 0x20
++ DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 0x21
++ DEVLINK_ATTR_DPIPE_ENTRIES = 0x22
++ DEVLINK_ATTR_DPIPE_ENTRY = 0x23
++ DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 0x24
++ DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 0x25
++ DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 0x26
++ DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 0x27
++ DEVLINK_ATTR_DPIPE_MATCH = 0x28
++ DEVLINK_ATTR_DPIPE_MATCH_VALUE = 0x29
++ DEVLINK_ATTR_DPIPE_MATCH_TYPE = 0x2a
++ DEVLINK_ATTR_DPIPE_ACTION = 0x2b
++ DEVLINK_ATTR_DPIPE_ACTION_VALUE = 0x2c
++ DEVLINK_ATTR_DPIPE_ACTION_TYPE = 0x2d
++ DEVLINK_ATTR_DPIPE_VALUE = 0x2e
++ DEVLINK_ATTR_DPIPE_VALUE_MASK = 0x2f
++ DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 0x30
++ DEVLINK_ATTR_DPIPE_HEADERS = 0x31
++ DEVLINK_ATTR_DPIPE_HEADER = 0x32
++ DEVLINK_ATTR_DPIPE_HEADER_NAME = 0x33
++ DEVLINK_ATTR_DPIPE_HEADER_ID = 0x34
++ DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 0x35
++ DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 0x36
++ DEVLINK_ATTR_DPIPE_HEADER_INDEX = 0x37
++ DEVLINK_ATTR_DPIPE_FIELD = 0x38
++ DEVLINK_ATTR_DPIPE_FIELD_NAME = 0x39
++ DEVLINK_ATTR_DPIPE_FIELD_ID = 0x3a
++ DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 0x3b
++ DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 0x3c
++ DEVLINK_ATTR_PAD = 0x3d
++ DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 0x3e
++ DEVLINK_ATTR_MAX = 0x8c
++ DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0x0
++ DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 0x1
++ DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0x0
++ DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0x0
++ DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC = 0x0
++ DEVLINK_DPIPE_FIELD_IPV4_DST_IP = 0x0
++ DEVLINK_DPIPE_FIELD_IPV6_DST_IP = 0x0
++ DEVLINK_DPIPE_HEADER_ETHERNET = 0x0
++ DEVLINK_DPIPE_HEADER_IPV4 = 0x1
++ DEVLINK_DPIPE_HEADER_IPV6 = 0x2
++)
++
++type FsverityDigest struct {
++ Algorithm uint16
++ Size uint16
++}
++
++type FsverityEnableArg struct {
++ Version uint32
++ Hash_algorithm uint32
++ Block_size uint32
++ Salt_size uint32
++ Salt_ptr uint64
++ Sig_size uint32
++ _ uint32
++ Sig_ptr uint64
++ _ [11]uint64
++}
++
++type Nhmsg struct {
++ Family uint8
++ Scope uint8
++ Protocol uint8
++ Resvd uint8
++ Flags uint32
++}
++
++type NexthopGrp struct {
++ Id uint32
++ Weight uint8
++ Resvd1 uint8
++ Resvd2 uint16
++}
++
++const (
++ NHA_UNSPEC = 0x0
++ NHA_ID = 0x1
++ NHA_GROUP = 0x2
++ NHA_GROUP_TYPE = 0x3
++ NHA_BLACKHOLE = 0x4
++ NHA_OIF = 0x5
++ NHA_GATEWAY = 0x6
++ NHA_ENCAP_TYPE = 0x7
++ NHA_ENCAP = 0x8
++ NHA_GROUPS = 0x9
++ NHA_MASTER = 0xa
++)
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go
+index 7b36896e..761b67c8 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go
+@@ -6,19 +6,12 @@
+ package unix
+
+ const (
+- sizeofPtr = 0x4
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x4
+- sizeofLongLong = 0x8
+- PathMax = 0x1000
++ SizeofPtr = 0x4
++ SizeofLong = 0x4
+ )
+
+ type (
+- _C_short int16
+- _C_int int32
+- _C_long int32
+- _C_long_long int64
++ _C_long int32
+ )
+
+ type Timespec struct {
+@@ -52,7 +45,7 @@ type Timex struct {
+ Errcnt int32
+ Stbcnt int32
+ Tai int32
+- Pad_cgo_0 [44]byte
++ _ [44]byte
+ }
+
+ type Time_t int32
+@@ -88,60 +81,32 @@ type Rusage struct {
+ Nivcsw int32
+ }
+
+-type Rlimit struct {
+- Cur uint64
+- Max uint64
+-}
+-
+-type _Gid_t uint32
+-
+ type Stat_t struct {
+- Dev uint64
+- X__pad1 uint16
+- Pad_cgo_0 [2]byte
+- X__st_ino uint32
+- Mode uint32
+- Nlink uint32
+- Uid uint32
+- Gid uint32
+- Rdev uint64
+- X__pad2 uint16
+- Pad_cgo_1 [2]byte
+- Size int64
+- Blksize int32
+- Blocks int64
+- Atim Timespec
+- Mtim Timespec
+- Ctim Timespec
+- Ino uint64
+-}
+-
+-type Statfs_t struct {
+- Type int32
+- Bsize int32
+- Blocks uint64
+- Bfree uint64
+- Bavail uint64
+- Files uint64
+- Ffree uint64
+- Fsid Fsid
+- Namelen int32
+- Frsize int32
+- Flags int32
+- Spare [4]int32
++ Dev uint64
++ _ uint16
++ _ uint32
++ Mode uint32
++ Nlink uint32
++ Uid uint32
++ Gid uint32
++ Rdev uint64
++ _ uint16
++ Size int64
++ Blksize int32
++ Blocks int64
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ Ino uint64
+ }
+
+ type Dirent struct {
+- Ino uint64
+- Off int64
+- Reclen uint16
+- Type uint8
+- Name [256]int8
+- Pad_cgo_0 [1]byte
+-}
+-
+-type Fsid struct {
+- X__val [2]int32
++ Ino uint64
++ Off int64
++ Reclen uint16
++ Type uint8
++ Name [256]int8
++ _ [1]byte
+ }
+
+ type Flock_t struct {
+@@ -152,101 +117,11 @@ type Flock_t struct {
+ Pid int32
+ }
+
+-type FscryptPolicy struct {
+- Version uint8
+- Contents_encryption_mode uint8
+- Filenames_encryption_mode uint8
+- Flags uint8
+- Master_key_descriptor [8]uint8
+-}
+-
+-type FscryptKey struct {
+- Mode uint32
+- Raw [64]uint8
+- Size uint32
+-}
+-
+-type KeyctlDHParams struct {
+- Private int32
+- Prime int32
+- Base int32
+-}
+-
+ const (
+- FADV_NORMAL = 0x0
+- FADV_RANDOM = 0x1
+- FADV_SEQUENTIAL = 0x2
+- FADV_WILLNEED = 0x3
+- FADV_DONTNEED = 0x4
+- FADV_NOREUSE = 0x5
++ FADV_DONTNEED = 0x4
++ FADV_NOREUSE = 0x5
+ )
+
+-type RawSockaddrInet4 struct {
+- Family uint16
+- Port uint16
+- Addr [4]byte /* in_addr */
+- Zero [8]uint8
+-}
+-
+-type RawSockaddrInet6 struct {
+- Family uint16
+- Port uint16
+- Flowinfo uint32
+- Addr [16]byte /* in6_addr */
+- Scope_id uint32
+-}
+-
+-type RawSockaddrUnix struct {
+- Family uint16
+- Path [108]int8
+-}
+-
+-type RawSockaddrLinklayer struct {
+- Family uint16
+- Protocol uint16
+- Ifindex int32
+- Hatype uint16
+- Pkttype uint8
+- Halen uint8
+- Addr [8]uint8
+-}
+-
+-type RawSockaddrNetlink struct {
+- Family uint16
+- Pad uint16
+- Pid uint32
+- Groups uint32
+-}
+-
+-type RawSockaddrHCI struct {
+- Family uint16
+- Dev uint16
+- Channel uint16
+-}
+-
+-type RawSockaddrCAN struct {
+- Family uint16
+- Pad_cgo_0 [2]byte
+- Ifindex int32
+- Addr [8]byte
+-}
+-
+-type RawSockaddrALG struct {
+- Family uint16
+- Type [14]uint8
+- Feat uint32
+- Mask uint32
+- Name [64]uint8
+-}
+-
+-type RawSockaddrVM struct {
+- Family uint16
+- Reserved1 uint16
+- Port uint32
+- Cid uint32
+- Zero [4]uint8
+-}
+-
+ type RawSockaddr struct {
+ Family uint16
+ Data [14]int8
+@@ -257,41 +132,11 @@ type RawSockaddrAny struct {
+ Pad [96]int8
+ }
+
+-type _Socklen uint32
+-
+-type Linger struct {
+- Onoff int32
+- Linger int32
+-}
+-
+ type Iovec struct {
+ Base *byte
+ Len uint32
+ }
+
+-type IPMreq struct {
+- Multiaddr [4]byte /* in_addr */
+- Interface [4]byte /* in_addr */
+-}
+-
+-type IPMreqn struct {
+- Multiaddr [4]byte /* in_addr */
+- Address [4]byte /* in_addr */
+- Ifindex int32
+-}
+-
+-type IPv6Mreq struct {
+- Multiaddr [16]byte /* in6_addr */
+- Interface uint32
+-}
+-
+-type PacketMreq struct {
+- Ifindex int32
+- Type uint16
+- Alen uint16
+- Address [8]uint8
+-}
+-
+ type Msghdr struct {
+ Name *byte
+ Namelen uint32
+@@ -308,277 +153,16 @@ type Cmsghdr struct {
+ Type int32
+ }
+
+-type Inet4Pktinfo struct {
+- Ifindex int32
+- Spec_dst [4]byte /* in_addr */
+- Addr [4]byte /* in_addr */
+-}
+-
+-type Inet6Pktinfo struct {
+- Addr [16]byte /* in6_addr */
+- Ifindex uint32
+-}
+-
+-type IPv6MTUInfo struct {
+- Addr RawSockaddrInet6
+- Mtu uint32
+-}
+-
+-type ICMPv6Filter struct {
+- Data [8]uint32
+-}
+-
+-type Ucred struct {
+- Pid int32
+- Uid uint32
+- Gid uint32
+-}
+-
+-type TCPInfo struct {
+- State uint8
+- Ca_state uint8
+- Retransmits uint8
+- Probes uint8
+- Backoff uint8
+- Options uint8
+- Pad_cgo_0 [2]byte
+- Rto uint32
+- Ato uint32
+- Snd_mss uint32
+- Rcv_mss uint32
+- Unacked uint32
+- Sacked uint32
+- Lost uint32
+- Retrans uint32
+- Fackets uint32
+- Last_data_sent uint32
+- Last_ack_sent uint32
+- Last_data_recv uint32
+- Last_ack_recv uint32
+- Pmtu uint32
+- Rcv_ssthresh uint32
+- Rtt uint32
+- Rttvar uint32
+- Snd_ssthresh uint32
+- Snd_cwnd uint32
+- Advmss uint32
+- Reordering uint32
+- Rcv_rtt uint32
+- Rcv_space uint32
+- Total_retrans uint32
+-}
+-
+ const (
+- SizeofSockaddrInet4 = 0x10
+- SizeofSockaddrInet6 = 0x1c
+- SizeofSockaddrAny = 0x70
+- SizeofSockaddrUnix = 0x6e
+- SizeofSockaddrLinklayer = 0x14
+- SizeofSockaddrNetlink = 0xc
+- SizeofSockaddrHCI = 0x6
+- SizeofSockaddrCAN = 0x10
+- SizeofSockaddrALG = 0x58
+- SizeofSockaddrVM = 0x10
+- SizeofLinger = 0x8
+- SizeofIovec = 0x8
+- SizeofIPMreq = 0x8
+- SizeofIPMreqn = 0xc
+- SizeofIPv6Mreq = 0x14
+- SizeofPacketMreq = 0x10
+- SizeofMsghdr = 0x1c
+- SizeofCmsghdr = 0xc
+- SizeofInet4Pktinfo = 0xc
+- SizeofInet6Pktinfo = 0x14
+- SizeofIPv6MTUInfo = 0x20
+- SizeofICMPv6Filter = 0x20
+- SizeofUcred = 0xc
+- SizeofTCPInfo = 0x68
++ SizeofIovec = 0x8
++ SizeofMsghdr = 0x1c
++ SizeofCmsghdr = 0xc
+ )
+
+ const (
+- IFA_UNSPEC = 0x0
+- IFA_ADDRESS = 0x1
+- IFA_LOCAL = 0x2
+- IFA_LABEL = 0x3
+- IFA_BROADCAST = 0x4
+- IFA_ANYCAST = 0x5
+- IFA_CACHEINFO = 0x6
+- IFA_MULTICAST = 0x7
+- IFLA_UNSPEC = 0x0
+- IFLA_ADDRESS = 0x1
+- IFLA_BROADCAST = 0x2
+- IFLA_IFNAME = 0x3
+- IFLA_MTU = 0x4
+- IFLA_LINK = 0x5
+- IFLA_QDISC = 0x6
+- IFLA_STATS = 0x7
+- IFLA_COST = 0x8
+- IFLA_PRIORITY = 0x9
+- IFLA_MASTER = 0xa
+- IFLA_WIRELESS = 0xb
+- IFLA_PROTINFO = 0xc
+- IFLA_TXQLEN = 0xd
+- IFLA_MAP = 0xe
+- IFLA_WEIGHT = 0xf
+- IFLA_OPERSTATE = 0x10
+- IFLA_LINKMODE = 0x11
+- IFLA_LINKINFO = 0x12
+- IFLA_NET_NS_PID = 0x13
+- IFLA_IFALIAS = 0x14
+- IFLA_MAX = 0x2b
+- RT_SCOPE_UNIVERSE = 0x0
+- RT_SCOPE_SITE = 0xc8
+- RT_SCOPE_LINK = 0xfd
+- RT_SCOPE_HOST = 0xfe
+- RT_SCOPE_NOWHERE = 0xff
+- RT_TABLE_UNSPEC = 0x0
+- RT_TABLE_COMPAT = 0xfc
+- RT_TABLE_DEFAULT = 0xfd
+- RT_TABLE_MAIN = 0xfe
+- RT_TABLE_LOCAL = 0xff
+- RT_TABLE_MAX = 0xffffffff
+- RTA_UNSPEC = 0x0
+- RTA_DST = 0x1
+- RTA_SRC = 0x2
+- RTA_IIF = 0x3
+- RTA_OIF = 0x4
+- RTA_GATEWAY = 0x5
+- RTA_PRIORITY = 0x6
+- RTA_PREFSRC = 0x7
+- RTA_METRICS = 0x8
+- RTA_MULTIPATH = 0x9
+- RTA_FLOW = 0xb
+- RTA_CACHEINFO = 0xc
+- RTA_TABLE = 0xf
+- RTN_UNSPEC = 0x0
+- RTN_UNICAST = 0x1
+- RTN_LOCAL = 0x2
+- RTN_BROADCAST = 0x3
+- RTN_ANYCAST = 0x4
+- RTN_MULTICAST = 0x5
+- RTN_BLACKHOLE = 0x6
+- RTN_UNREACHABLE = 0x7
+- RTN_PROHIBIT = 0x8
+- RTN_THROW = 0x9
+- RTN_NAT = 0xa
+- RTN_XRESOLVE = 0xb
+- RTNLGRP_NONE = 0x0
+- RTNLGRP_LINK = 0x1
+- RTNLGRP_NOTIFY = 0x2
+- RTNLGRP_NEIGH = 0x3
+- RTNLGRP_TC = 0x4
+- RTNLGRP_IPV4_IFADDR = 0x5
+- RTNLGRP_IPV4_MROUTE = 0x6
+- RTNLGRP_IPV4_ROUTE = 0x7
+- RTNLGRP_IPV4_RULE = 0x8
+- RTNLGRP_IPV6_IFADDR = 0x9
+- RTNLGRP_IPV6_MROUTE = 0xa
+- RTNLGRP_IPV6_ROUTE = 0xb
+- RTNLGRP_IPV6_IFINFO = 0xc
+- RTNLGRP_IPV6_PREFIX = 0x12
+- RTNLGRP_IPV6_RULE = 0x13
+- RTNLGRP_ND_USEROPT = 0x14
+- SizeofNlMsghdr = 0x10
+- SizeofNlMsgerr = 0x14
+- SizeofRtGenmsg = 0x1
+- SizeofNlAttr = 0x4
+- SizeofRtAttr = 0x4
+- SizeofIfInfomsg = 0x10
+- SizeofIfAddrmsg = 0x8
+- SizeofRtMsg = 0xc
+- SizeofRtNexthop = 0x8
++ SizeofSockFprog = 0x8
+ )
+
+-type NlMsghdr struct {
+- Len uint32
+- Type uint16
+- Flags uint16
+- Seq uint32
+- Pid uint32
+-}
+-
+-type NlMsgerr struct {
+- Error int32
+- Msg NlMsghdr
+-}
+-
+-type RtGenmsg struct {
+- Family uint8
+-}
+-
+-type NlAttr struct {
+- Len uint16
+- Type uint16
+-}
+-
+-type RtAttr struct {
+- Len uint16
+- Type uint16
+-}
+-
+-type IfInfomsg struct {
+- Family uint8
+- X__ifi_pad uint8
+- Type uint16
+- Index int32
+- Flags uint32
+- Change uint32
+-}
+-
+-type IfAddrmsg struct {
+- Family uint8
+- Prefixlen uint8
+- Flags uint8
+- Scope uint8
+- Index uint32
+-}
+-
+-type RtMsg struct {
+- Family uint8
+- Dst_len uint8
+- Src_len uint8
+- Tos uint8
+- Table uint8
+- Protocol uint8
+- Scope uint8
+- Type uint8
+- Flags uint32
+-}
+-
+-type RtNexthop struct {
+- Len uint16
+- Flags uint8
+- Hops uint8
+- Ifindex int32
+-}
+-
+-const (
+- SizeofSockFilter = 0x8
+- SizeofSockFprog = 0x8
+-)
+-
+-type SockFilter struct {
+- Code uint16
+- Jt uint8
+- Jf uint8
+- K uint32
+-}
+-
+-type SockFprog struct {
+- Len uint16
+- Pad_cgo_0 [2]byte
+- Filter *SockFilter
+-}
+-
+-type InotifyEvent struct {
+- Wd int32
+- Mask uint32
+- Cookie uint32
+- Len uint32
+-}
+-
+-const SizeofInotifyEvent = 0x10
+-
+ type PtraceRegs struct {
+ Ebx int32
+ Ecx int32
+@@ -617,16 +201,7 @@ type Sysinfo_t struct {
+ Totalhigh uint32
+ Freehigh uint32
+ Unit uint32
+- X_f [8]int8
+-}
+-
+-type Utsname struct {
+- Sysname [65]int8
+- Nodename [65]int8
+- Release [65]int8
+- Version [65]int8
+- Machine [65]int8
+- Domainname [65]int8
++ _ [8]int8
+ }
+
+ type Ustat_t struct {
+@@ -643,37 +218,14 @@ type EpollEvent struct {
+ }
+
+ const (
+- AT_FDCWD = -0x64
+- AT_REMOVEDIR = 0x200
+- AT_SYMLINK_FOLLOW = 0x400
+- AT_SYMLINK_NOFOLLOW = 0x100
+-)
+-
+-type PollFd struct {
+- Fd int32
+- Events int16
+- Revents int16
+-}
+-
+-const (
+- POLLIN = 0x1
+- POLLPRI = 0x2
+- POLLOUT = 0x4
+ POLLRDHUP = 0x2000
+- POLLERR = 0x8
+- POLLHUP = 0x10
+- POLLNVAL = 0x20
+ )
+
+ type Sigset_t struct {
+- X__val [32]uint32
++ Val [32]uint32
+ }
+
+-const RNDGETENTCNT = 0x80045200
+-
+-const PERF_IOC_FLAG_GROUP = 0x1
+-
+-const _SC_PAGESIZE = 0x1e
++const _C__NSIG = 0x41
+
+ type Termios struct {
+ Iflag uint32
+@@ -686,20 +238,12 @@ type Termios struct {
+ Ospeed uint32
+ }
+
+-type Winsize struct {
+- Row uint16
+- Col uint16
+- Xpixel uint16
+- Ypixel uint16
+-}
+-
+ type Taskstats struct {
+ Version uint16
+- Pad_cgo_0 [2]byte
+ Ac_exitcode uint32
+ Ac_flag uint8
+ Ac_nice uint8
+- Pad_cgo_1 [6]byte
++ _ [4]byte
+ Cpu_count uint64
+ Cpu_delay_total uint64
+ Blkio_count uint64
+@@ -711,13 +255,13 @@ type Taskstats struct {
+ Ac_comm [32]int8
+ Ac_sched uint8
+ Ac_pad [3]uint8
+- Pad_cgo_2 [4]byte
++ _ [4]byte
+ Ac_uid uint32
+ Ac_gid uint32
+ Ac_pid uint32
+ Ac_ppid uint32
+ Ac_btime uint32
+- Pad_cgo_3 [4]byte
++ _ [4]byte
+ Ac_etime uint64
+ Ac_utime uint64
+ Ac_stime uint64
+@@ -741,55 +285,315 @@ type Taskstats struct {
+ Cpu_scaled_run_real_total uint64
+ Freepages_count uint64
+ Freepages_delay_total uint64
++ Thrashing_count uint64
++ Thrashing_delay_total uint64
++ Ac_btime64 uint64
++}
++
++type cpuMask uint32
++
++const (
++ _NCPUBITS = 0x20
++)
++
++const (
++ CBitFieldMaskBit0 = 0x1
++ CBitFieldMaskBit1 = 0x2
++ CBitFieldMaskBit2 = 0x4
++ CBitFieldMaskBit3 = 0x8
++ CBitFieldMaskBit4 = 0x10
++ CBitFieldMaskBit5 = 0x20
++ CBitFieldMaskBit6 = 0x40
++ CBitFieldMaskBit7 = 0x80
++ CBitFieldMaskBit8 = 0x100
++ CBitFieldMaskBit9 = 0x200
++ CBitFieldMaskBit10 = 0x400
++ CBitFieldMaskBit11 = 0x800
++ CBitFieldMaskBit12 = 0x1000
++ CBitFieldMaskBit13 = 0x2000
++ CBitFieldMaskBit14 = 0x4000
++ CBitFieldMaskBit15 = 0x8000
++ CBitFieldMaskBit16 = 0x10000
++ CBitFieldMaskBit17 = 0x20000
++ CBitFieldMaskBit18 = 0x40000
++ CBitFieldMaskBit19 = 0x80000
++ CBitFieldMaskBit20 = 0x100000
++ CBitFieldMaskBit21 = 0x200000
++ CBitFieldMaskBit22 = 0x400000
++ CBitFieldMaskBit23 = 0x800000
++ CBitFieldMaskBit24 = 0x1000000
++ CBitFieldMaskBit25 = 0x2000000
++ CBitFieldMaskBit26 = 0x4000000
++ CBitFieldMaskBit27 = 0x8000000
++ CBitFieldMaskBit28 = 0x10000000
++ CBitFieldMaskBit29 = 0x20000000
++ CBitFieldMaskBit30 = 0x40000000
++ CBitFieldMaskBit31 = 0x80000000
++ CBitFieldMaskBit32 = 0x100000000
++ CBitFieldMaskBit33 = 0x200000000
++ CBitFieldMaskBit34 = 0x400000000
++ CBitFieldMaskBit35 = 0x800000000
++ CBitFieldMaskBit36 = 0x1000000000
++ CBitFieldMaskBit37 = 0x2000000000
++ CBitFieldMaskBit38 = 0x4000000000
++ CBitFieldMaskBit39 = 0x8000000000
++ CBitFieldMaskBit40 = 0x10000000000
++ CBitFieldMaskBit41 = 0x20000000000
++ CBitFieldMaskBit42 = 0x40000000000
++ CBitFieldMaskBit43 = 0x80000000000
++ CBitFieldMaskBit44 = 0x100000000000
++ CBitFieldMaskBit45 = 0x200000000000
++ CBitFieldMaskBit46 = 0x400000000000
++ CBitFieldMaskBit47 = 0x800000000000
++ CBitFieldMaskBit48 = 0x1000000000000
++ CBitFieldMaskBit49 = 0x2000000000000
++ CBitFieldMaskBit50 = 0x4000000000000
++ CBitFieldMaskBit51 = 0x8000000000000
++ CBitFieldMaskBit52 = 0x10000000000000
++ CBitFieldMaskBit53 = 0x20000000000000
++ CBitFieldMaskBit54 = 0x40000000000000
++ CBitFieldMaskBit55 = 0x80000000000000
++ CBitFieldMaskBit56 = 0x100000000000000
++ CBitFieldMaskBit57 = 0x200000000000000
++ CBitFieldMaskBit58 = 0x400000000000000
++ CBitFieldMaskBit59 = 0x800000000000000
++ CBitFieldMaskBit60 = 0x1000000000000000
++ CBitFieldMaskBit61 = 0x2000000000000000
++ CBitFieldMaskBit62 = 0x4000000000000000
++ CBitFieldMaskBit63 = 0x8000000000000000
++)
++
++type SockaddrStorage struct {
++ Family uint16
++ _ [122]int8
++ _ uint32
++}
++
++type HDGeometry struct {
++ Heads uint8
++ Sectors uint8
++ Cylinders uint16
++ Start uint32
++}
++
++type Statfs_t struct {
++ Type int32
++ Bsize int32
++ Blocks uint64
++ Bfree uint64
++ Bavail uint64
++ Files uint64
++ Ffree uint64
++ Fsid Fsid
++ Namelen int32
++ Frsize int32
++ Flags int32
++ Spare [4]int32
++}
++
++type TpacketHdr struct {
++ Status uint32
++ Len uint32
++ Snaplen uint32
++ Mac uint16
++ Net uint16
++ Sec uint32
++ Usec uint32
+ }
+
+ const (
+- TASKSTATS_CMD_UNSPEC = 0x0
+- TASKSTATS_CMD_GET = 0x1
+- TASKSTATS_CMD_NEW = 0x2
+- TASKSTATS_TYPE_UNSPEC = 0x0
+- TASKSTATS_TYPE_PID = 0x1
+- TASKSTATS_TYPE_TGID = 0x2
+- TASKSTATS_TYPE_STATS = 0x3
+- TASKSTATS_TYPE_AGGR_PID = 0x4
+- TASKSTATS_TYPE_AGGR_TGID = 0x5
+- TASKSTATS_TYPE_NULL = 0x6
+- TASKSTATS_CMD_ATTR_UNSPEC = 0x0
+- TASKSTATS_CMD_ATTR_PID = 0x1
+- TASKSTATS_CMD_ATTR_TGID = 0x2
+- TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3
+- TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4
++ SizeofTpacketHdr = 0x18
+ )
+
+-type Genlmsghdr struct {
+- Cmd uint8
+- Version uint8
+- Reserved uint16
++type RTCPLLInfo struct {
++ Ctrl int32
++ Value int32
++ Max int32
++ Min int32
++ Posmult int32
++ Negmult int32
++ Clock int32
++}
++
++type BlkpgPartition struct {
++ Start int64
++ Length int64
++ Pno int32
++ Devname [64]uint8
++ Volname [64]uint8
+ }
+
+ const (
+- CTRL_CMD_UNSPEC = 0x0
+- CTRL_CMD_NEWFAMILY = 0x1
+- CTRL_CMD_DELFAMILY = 0x2
+- CTRL_CMD_GETFAMILY = 0x3
+- CTRL_CMD_NEWOPS = 0x4
+- CTRL_CMD_DELOPS = 0x5
+- CTRL_CMD_GETOPS = 0x6
+- CTRL_CMD_NEWMCAST_GRP = 0x7
+- CTRL_CMD_DELMCAST_GRP = 0x8
+- CTRL_CMD_GETMCAST_GRP = 0x9
+- CTRL_ATTR_UNSPEC = 0x0
+- CTRL_ATTR_FAMILY_ID = 0x1
+- CTRL_ATTR_FAMILY_NAME = 0x2
+- CTRL_ATTR_VERSION = 0x3
+- CTRL_ATTR_HDRSIZE = 0x4
+- CTRL_ATTR_MAXATTR = 0x5
+- CTRL_ATTR_OPS = 0x6
+- CTRL_ATTR_MCAST_GROUPS = 0x7
+- CTRL_ATTR_OP_UNSPEC = 0x0
+- CTRL_ATTR_OP_ID = 0x1
+- CTRL_ATTR_OP_FLAGS = 0x2
+- CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0
+- CTRL_ATTR_MCAST_GRP_NAME = 0x1
+- CTRL_ATTR_MCAST_GRP_ID = 0x2
++ BLKPG = 0x1269
+ )
++
++type XDPUmemReg struct {
++ Addr uint64
++ Len uint64
++ Size uint32
++ Headroom uint32
++ Flags uint32
++}
++
++type CryptoUserAlg struct {
++ Name [64]int8
++ Driver_name [64]int8
++ Module_name [64]int8
++ Type uint32
++ Mask uint32
++ Refcnt uint32
++ Flags uint32
++}
++
++type CryptoStatAEAD struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatAKCipher struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Verify_cnt uint64
++ Sign_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatCipher struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatCompress struct {
++ Type [64]int8
++ Compress_cnt uint64
++ Compress_tlen uint64
++ Decompress_cnt uint64
++ Decompress_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatHash struct {
++ Type [64]int8
++ Hash_cnt uint64
++ Hash_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatKPP struct {
++ Type [64]int8
++ Setsecret_cnt uint64
++ Generate_public_key_cnt uint64
++ Compute_shared_secret_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatRNG struct {
++ Type [64]int8
++ Generate_cnt uint64
++ Generate_tlen uint64
++ Seed_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatLarval struct {
++ Type [64]int8
++}
++
++type CryptoReportLarval struct {
++ Type [64]int8
++}
++
++type CryptoReportHash struct {
++ Type [64]int8
++ Blocksize uint32
++ Digestsize uint32
++}
++
++type CryptoReportCipher struct {
++ Type [64]int8
++ Blocksize uint32
++ Min_keysize uint32
++ Max_keysize uint32
++}
++
++type CryptoReportBlkCipher struct {
++ Type [64]int8
++ Geniv [64]int8
++ Blocksize uint32
++ Min_keysize uint32
++ Max_keysize uint32
++ Ivsize uint32
++}
++
++type CryptoReportAEAD struct {
++ Type [64]int8
++ Geniv [64]int8
++ Blocksize uint32
++ Maxauthsize uint32
++ Ivsize uint32
++}
++
++type CryptoReportComp struct {
++ Type [64]int8
++}
++
++type CryptoReportRNG struct {
++ Type [64]int8
++ Seedsize uint32
++}
++
++type CryptoReportAKCipher struct {
++ Type [64]int8
++}
++
++type CryptoReportKPP struct {
++ Type [64]int8
++}
++
++type CryptoReportAcomp struct {
++ Type [64]int8
++}
++
++type LoopInfo struct {
++ Number int32
++ Device uint16
++ Inode uint32
++ Rdevice uint16
++ Offset int32
++ Encrypt_type int32
++ Encrypt_key_size int32
++ Flags int32
++ Name [64]int8
++ Encrypt_key [32]uint8
++ Init [2]uint32
++ Reserved [4]int8
++}
++
++type TIPCSubscr struct {
++ Seq TIPCServiceRange
++ Timeout uint32
++ Filter uint32
++ Handle [8]int8
++}
++
++type TIPCSIOCLNReq struct {
++ Peer uint32
++ Id uint32
++ Linkname [68]int8
++}
++
++type TIPCSIOCNodeIDReq struct {
++ Peer uint32
++ Id [16]int8
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
+index e54fa984..201fb348 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
+@@ -6,19 +6,12 @@
+ package unix
+
+ const (
+- sizeofPtr = 0x8
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x8
+- sizeofLongLong = 0x8
+- PathMax = 0x1000
++ SizeofPtr = 0x8
++ SizeofLong = 0x8
+ )
+
+ type (
+- _C_short int16
+- _C_int int32
+- _C_long int64
+- _C_long_long int64
++ _C_long int64
+ )
+
+ type Timespec struct {
+@@ -33,13 +26,11 @@ type Timeval struct {
+
+ type Timex struct {
+ Modes uint32
+- Pad_cgo_0 [4]byte
+ Offset int64
+ Freq int64
+ Maxerror int64
+ Esterror int64
+ Status int32
+- Pad_cgo_1 [4]byte
+ Constant int64
+ Precision int64
+ Tolerance int64
+@@ -48,14 +39,13 @@ type Timex struct {
+ Ppsfreq int64
+ Jitter int64
+ Shift int32
+- Pad_cgo_2 [4]byte
+ Stabil int64
+ Jitcnt int64
+ Calcnt int64
+ Errcnt int64
+ Stbcnt int64
+ Tai int32
+- Pad_cgo_3 [44]byte
++ _ [44]byte
+ }
+
+ type Time_t int64
+@@ -91,13 +81,6 @@ type Rusage struct {
+ Nivcsw int64
+ }
+
+-type Rlimit struct {
+- Cur uint64
+- Max uint64
+-}
+-
+-type _Gid_t uint32
+-
+ type Stat_t struct {
+ Dev uint64
+ Ino uint64
+@@ -105,7 +88,7 @@ type Stat_t struct {
+ Mode uint32
+ Uid uint32
+ Gid uint32
+- X__pad0 int32
++ _ int32
+ Rdev uint64
+ Size int64
+ Blksize int64
+@@ -116,139 +99,29 @@ type Stat_t struct {
+ _ [3]int64
+ }
+
+-type Statfs_t struct {
+- Type int64
+- Bsize int64
+- Blocks uint64
+- Bfree uint64
+- Bavail uint64
+- Files uint64
+- Ffree uint64
+- Fsid Fsid
+- Namelen int64
+- Frsize int64
+- Flags int64
+- Spare [4]int64
+-}
+-
+ type Dirent struct {
+- Ino uint64
+- Off int64
+- Reclen uint16
+- Type uint8
+- Name [256]int8
+- Pad_cgo_0 [5]byte
+-}
+-
+-type Fsid struct {
+- X__val [2]int32
++ Ino uint64
++ Off int64
++ Reclen uint16
++ Type uint8
++ Name [256]int8
++ _ [5]byte
+ }
+
+ type Flock_t struct {
+- Type int16
+- Whence int16
+- Pad_cgo_0 [4]byte
+- Start int64
+- Len int64
+- Pid int32
+- Pad_cgo_1 [4]byte
+-}
+-
+-type FscryptPolicy struct {
+- Version uint8
+- Contents_encryption_mode uint8
+- Filenames_encryption_mode uint8
+- Flags uint8
+- Master_key_descriptor [8]uint8
+-}
+-
+-type FscryptKey struct {
+- Mode uint32
+- Raw [64]uint8
+- Size uint32
+-}
+-
+-type KeyctlDHParams struct {
+- Private int32
+- Prime int32
+- Base int32
++ Type int16
++ Whence int16
++ Start int64
++ Len int64
++ Pid int32
++ _ [4]byte
+ }
+
+ const (
+- FADV_NORMAL = 0x0
+- FADV_RANDOM = 0x1
+- FADV_SEQUENTIAL = 0x2
+- FADV_WILLNEED = 0x3
+- FADV_DONTNEED = 0x4
+- FADV_NOREUSE = 0x5
++ FADV_DONTNEED = 0x4
++ FADV_NOREUSE = 0x5
+ )
+
+-type RawSockaddrInet4 struct {
+- Family uint16
+- Port uint16
+- Addr [4]byte /* in_addr */
+- Zero [8]uint8
+-}
+-
+-type RawSockaddrInet6 struct {
+- Family uint16
+- Port uint16
+- Flowinfo uint32
+- Addr [16]byte /* in6_addr */
+- Scope_id uint32
+-}
+-
+-type RawSockaddrUnix struct {
+- Family uint16
+- Path [108]int8
+-}
+-
+-type RawSockaddrLinklayer struct {
+- Family uint16
+- Protocol uint16
+- Ifindex int32
+- Hatype uint16
+- Pkttype uint8
+- Halen uint8
+- Addr [8]uint8
+-}
+-
+-type RawSockaddrNetlink struct {
+- Family uint16
+- Pad uint16
+- Pid uint32
+- Groups uint32
+-}
+-
+-type RawSockaddrHCI struct {
+- Family uint16
+- Dev uint16
+- Channel uint16
+-}
+-
+-type RawSockaddrCAN struct {
+- Family uint16
+- Pad_cgo_0 [2]byte
+- Ifindex int32
+- Addr [8]byte
+-}
+-
+-type RawSockaddrALG struct {
+- Family uint16
+- Type [14]uint8
+- Feat uint32
+- Mask uint32
+- Name [64]uint8
+-}
+-
+-type RawSockaddrVM struct {
+- Family uint16
+- Reserved1 uint16
+- Port uint32
+- Cid uint32
+- Zero [4]uint8
+-}
+-
+ type RawSockaddr struct {
+ Family uint16
+ Data [14]int8
+@@ -259,51 +132,20 @@ type RawSockaddrAny struct {
+ Pad [96]int8
+ }
+
+-type _Socklen uint32
+-
+-type Linger struct {
+- Onoff int32
+- Linger int32
+-}
+-
+ type Iovec struct {
+ Base *byte
+ Len uint64
+ }
+
+-type IPMreq struct {
+- Multiaddr [4]byte /* in_addr */
+- Interface [4]byte /* in_addr */
+-}
+-
+-type IPMreqn struct {
+- Multiaddr [4]byte /* in_addr */
+- Address [4]byte /* in_addr */
+- Ifindex int32
+-}
+-
+-type IPv6Mreq struct {
+- Multiaddr [16]byte /* in6_addr */
+- Interface uint32
+-}
+-
+-type PacketMreq struct {
+- Ifindex int32
+- Type uint16
+- Alen uint16
+- Address [8]uint8
+-}
+-
+ type Msghdr struct {
+ Name *byte
+ Namelen uint32
+- Pad_cgo_0 [4]byte
+ Iov *Iovec
+ Iovlen uint64
+ Control *byte
+ Controllen uint64
+ Flags int32
+- Pad_cgo_1 [4]byte
++ _ [4]byte
+ }
+
+ type Cmsghdr struct {
+@@ -312,277 +154,16 @@ type Cmsghdr struct {
+ Type int32
+ }
+
+-type Inet4Pktinfo struct {
+- Ifindex int32
+- Spec_dst [4]byte /* in_addr */
+- Addr [4]byte /* in_addr */
+-}
+-
+-type Inet6Pktinfo struct {
+- Addr [16]byte /* in6_addr */
+- Ifindex uint32
+-}
+-
+-type IPv6MTUInfo struct {
+- Addr RawSockaddrInet6
+- Mtu uint32
+-}
+-
+-type ICMPv6Filter struct {
+- Data [8]uint32
+-}
+-
+-type Ucred struct {
+- Pid int32
+- Uid uint32
+- Gid uint32
+-}
+-
+-type TCPInfo struct {
+- State uint8
+- Ca_state uint8
+- Retransmits uint8
+- Probes uint8
+- Backoff uint8
+- Options uint8
+- Pad_cgo_0 [2]byte
+- Rto uint32
+- Ato uint32
+- Snd_mss uint32
+- Rcv_mss uint32
+- Unacked uint32
+- Sacked uint32
+- Lost uint32
+- Retrans uint32
+- Fackets uint32
+- Last_data_sent uint32
+- Last_ack_sent uint32
+- Last_data_recv uint32
+- Last_ack_recv uint32
+- Pmtu uint32
+- Rcv_ssthresh uint32
+- Rtt uint32
+- Rttvar uint32
+- Snd_ssthresh uint32
+- Snd_cwnd uint32
+- Advmss uint32
+- Reordering uint32
+- Rcv_rtt uint32
+- Rcv_space uint32
+- Total_retrans uint32
+-}
+-
+ const (
+- SizeofSockaddrInet4 = 0x10
+- SizeofSockaddrInet6 = 0x1c
+- SizeofSockaddrAny = 0x70
+- SizeofSockaddrUnix = 0x6e
+- SizeofSockaddrLinklayer = 0x14
+- SizeofSockaddrNetlink = 0xc
+- SizeofSockaddrHCI = 0x6
+- SizeofSockaddrCAN = 0x10
+- SizeofSockaddrALG = 0x58
+- SizeofSockaddrVM = 0x10
+- SizeofLinger = 0x8
+- SizeofIovec = 0x10
+- SizeofIPMreq = 0x8
+- SizeofIPMreqn = 0xc
+- SizeofIPv6Mreq = 0x14
+- SizeofPacketMreq = 0x10
+- SizeofMsghdr = 0x38
+- SizeofCmsghdr = 0x10
+- SizeofInet4Pktinfo = 0xc
+- SizeofInet6Pktinfo = 0x14
+- SizeofIPv6MTUInfo = 0x20
+- SizeofICMPv6Filter = 0x20
+- SizeofUcred = 0xc
+- SizeofTCPInfo = 0x68
++ SizeofIovec = 0x10
++ SizeofMsghdr = 0x38
++ SizeofCmsghdr = 0x10
+ )
+
+ const (
+- IFA_UNSPEC = 0x0
+- IFA_ADDRESS = 0x1
+- IFA_LOCAL = 0x2
+- IFA_LABEL = 0x3
+- IFA_BROADCAST = 0x4
+- IFA_ANYCAST = 0x5
+- IFA_CACHEINFO = 0x6
+- IFA_MULTICAST = 0x7
+- IFLA_UNSPEC = 0x0
+- IFLA_ADDRESS = 0x1
+- IFLA_BROADCAST = 0x2
+- IFLA_IFNAME = 0x3
+- IFLA_MTU = 0x4
+- IFLA_LINK = 0x5
+- IFLA_QDISC = 0x6
+- IFLA_STATS = 0x7
+- IFLA_COST = 0x8
+- IFLA_PRIORITY = 0x9
+- IFLA_MASTER = 0xa
+- IFLA_WIRELESS = 0xb
+- IFLA_PROTINFO = 0xc
+- IFLA_TXQLEN = 0xd
+- IFLA_MAP = 0xe
+- IFLA_WEIGHT = 0xf
+- IFLA_OPERSTATE = 0x10
+- IFLA_LINKMODE = 0x11
+- IFLA_LINKINFO = 0x12
+- IFLA_NET_NS_PID = 0x13
+- IFLA_IFALIAS = 0x14
+- IFLA_MAX = 0x2b
+- RT_SCOPE_UNIVERSE = 0x0
+- RT_SCOPE_SITE = 0xc8
+- RT_SCOPE_LINK = 0xfd
+- RT_SCOPE_HOST = 0xfe
+- RT_SCOPE_NOWHERE = 0xff
+- RT_TABLE_UNSPEC = 0x0
+- RT_TABLE_COMPAT = 0xfc
+- RT_TABLE_DEFAULT = 0xfd
+- RT_TABLE_MAIN = 0xfe
+- RT_TABLE_LOCAL = 0xff
+- RT_TABLE_MAX = 0xffffffff
+- RTA_UNSPEC = 0x0
+- RTA_DST = 0x1
+- RTA_SRC = 0x2
+- RTA_IIF = 0x3
+- RTA_OIF = 0x4
+- RTA_GATEWAY = 0x5
+- RTA_PRIORITY = 0x6
+- RTA_PREFSRC = 0x7
+- RTA_METRICS = 0x8
+- RTA_MULTIPATH = 0x9
+- RTA_FLOW = 0xb
+- RTA_CACHEINFO = 0xc
+- RTA_TABLE = 0xf
+- RTN_UNSPEC = 0x0
+- RTN_UNICAST = 0x1
+- RTN_LOCAL = 0x2
+- RTN_BROADCAST = 0x3
+- RTN_ANYCAST = 0x4
+- RTN_MULTICAST = 0x5
+- RTN_BLACKHOLE = 0x6
+- RTN_UNREACHABLE = 0x7
+- RTN_PROHIBIT = 0x8
+- RTN_THROW = 0x9
+- RTN_NAT = 0xa
+- RTN_XRESOLVE = 0xb
+- RTNLGRP_NONE = 0x0
+- RTNLGRP_LINK = 0x1
+- RTNLGRP_NOTIFY = 0x2
+- RTNLGRP_NEIGH = 0x3
+- RTNLGRP_TC = 0x4
+- RTNLGRP_IPV4_IFADDR = 0x5
+- RTNLGRP_IPV4_MROUTE = 0x6
+- RTNLGRP_IPV4_ROUTE = 0x7
+- RTNLGRP_IPV4_RULE = 0x8
+- RTNLGRP_IPV6_IFADDR = 0x9
+- RTNLGRP_IPV6_MROUTE = 0xa
+- RTNLGRP_IPV6_ROUTE = 0xb
+- RTNLGRP_IPV6_IFINFO = 0xc
+- RTNLGRP_IPV6_PREFIX = 0x12
+- RTNLGRP_IPV6_RULE = 0x13
+- RTNLGRP_ND_USEROPT = 0x14
+- SizeofNlMsghdr = 0x10
+- SizeofNlMsgerr = 0x14
+- SizeofRtGenmsg = 0x1
+- SizeofNlAttr = 0x4
+- SizeofRtAttr = 0x4
+- SizeofIfInfomsg = 0x10
+- SizeofIfAddrmsg = 0x8
+- SizeofRtMsg = 0xc
+- SizeofRtNexthop = 0x8
++ SizeofSockFprog = 0x10
+ )
+
+-type NlMsghdr struct {
+- Len uint32
+- Type uint16
+- Flags uint16
+- Seq uint32
+- Pid uint32
+-}
+-
+-type NlMsgerr struct {
+- Error int32
+- Msg NlMsghdr
+-}
+-
+-type RtGenmsg struct {
+- Family uint8
+-}
+-
+-type NlAttr struct {
+- Len uint16
+- Type uint16
+-}
+-
+-type RtAttr struct {
+- Len uint16
+- Type uint16
+-}
+-
+-type IfInfomsg struct {
+- Family uint8
+- X__ifi_pad uint8
+- Type uint16
+- Index int32
+- Flags uint32
+- Change uint32
+-}
+-
+-type IfAddrmsg struct {
+- Family uint8
+- Prefixlen uint8
+- Flags uint8
+- Scope uint8
+- Index uint32
+-}
+-
+-type RtMsg struct {
+- Family uint8
+- Dst_len uint8
+- Src_len uint8
+- Tos uint8
+- Table uint8
+- Protocol uint8
+- Scope uint8
+- Type uint8
+- Flags uint32
+-}
+-
+-type RtNexthop struct {
+- Len uint16
+- Flags uint8
+- Hops uint8
+- Ifindex int32
+-}
+-
+-const (
+- SizeofSockFilter = 0x8
+- SizeofSockFprog = 0x10
+-)
+-
+-type SockFilter struct {
+- Code uint16
+- Jt uint8
+- Jf uint8
+- K uint32
+-}
+-
+-type SockFprog struct {
+- Len uint16
+- Pad_cgo_0 [6]byte
+- Filter *SockFilter
+-}
+-
+-type InotifyEvent struct {
+- Wd int32
+- Mask uint32
+- Cookie uint32
+- Len uint32
+-}
+-
+-const SizeofInotifyEvent = 0x10
+-
+ type PtraceRegs struct {
+ R15 uint64
+ R14 uint64
+@@ -628,30 +209,19 @@ type Sysinfo_t struct {
+ Freeswap uint64
+ Procs uint16
+ Pad uint16
+- Pad_cgo_0 [4]byte
+ Totalhigh uint64
+ Freehigh uint64
+ Unit uint32
+- X_f [0]int8
+- Pad_cgo_1 [4]byte
+-}
+-
+-type Utsname struct {
+- Sysname [65]int8
+- Nodename [65]int8
+- Release [65]int8
+- Version [65]int8
+- Machine [65]int8
+- Domainname [65]int8
++ _ [0]int8
++ _ [4]byte
+ }
+
+ type Ustat_t struct {
+- Tfree int32
+- Pad_cgo_0 [4]byte
+- Tinode uint64
+- Fname [6]int8
+- Fpack [6]int8
+- Pad_cgo_1 [4]byte
++ Tfree int32
++ Tinode uint64
++ Fname [6]int8
++ Fpack [6]int8
++ _ [4]byte
+ }
+
+ type EpollEvent struct {
+@@ -661,37 +231,14 @@ type EpollEvent struct {
+ }
+
+ const (
+- AT_FDCWD = -0x64
+- AT_REMOVEDIR = 0x200
+- AT_SYMLINK_FOLLOW = 0x400
+- AT_SYMLINK_NOFOLLOW = 0x100
+-)
+-
+-type PollFd struct {
+- Fd int32
+- Events int16
+- Revents int16
+-}
+-
+-const (
+- POLLIN = 0x1
+- POLLPRI = 0x2
+- POLLOUT = 0x4
+ POLLRDHUP = 0x2000
+- POLLERR = 0x8
+- POLLHUP = 0x10
+- POLLNVAL = 0x20
+ )
+
+ type Sigset_t struct {
+- X__val [16]uint64
++ Val [16]uint64
+ }
+
+-const RNDGETENTCNT = 0x80045200
+-
+-const PERF_IOC_FLAG_GROUP = 0x1
+-
+-const _SC_PAGESIZE = 0x1e
++const _C__NSIG = 0x41
+
+ type Termios struct {
+ Iflag uint32
+@@ -704,20 +251,11 @@ type Termios struct {
+ Ospeed uint32
+ }
+
+-type Winsize struct {
+- Row uint16
+- Col uint16
+- Xpixel uint16
+- Ypixel uint16
+-}
+-
+ type Taskstats struct {
+ Version uint16
+- Pad_cgo_0 [2]byte
+ Ac_exitcode uint32
+ Ac_flag uint8
+ Ac_nice uint8
+- Pad_cgo_1 [6]byte
+ Cpu_count uint64
+ Cpu_delay_total uint64
+ Blkio_count uint64
+@@ -729,13 +267,12 @@ type Taskstats struct {
+ Ac_comm [32]int8
+ Ac_sched uint8
+ Ac_pad [3]uint8
+- Pad_cgo_2 [4]byte
++ _ [4]byte
+ Ac_uid uint32
+ Ac_gid uint32
+ Ac_pid uint32
+ Ac_ppid uint32
+ Ac_btime uint32
+- Pad_cgo_3 [4]byte
+ Ac_etime uint64
+ Ac_utime uint64
+ Ac_stime uint64
+@@ -759,55 +296,319 @@ type Taskstats struct {
+ Cpu_scaled_run_real_total uint64
+ Freepages_count uint64
+ Freepages_delay_total uint64
++ Thrashing_count uint64
++ Thrashing_delay_total uint64
++ Ac_btime64 uint64
+ }
+
++type cpuMask uint64
++
+ const (
+- TASKSTATS_CMD_UNSPEC = 0x0
+- TASKSTATS_CMD_GET = 0x1
+- TASKSTATS_CMD_NEW = 0x2
+- TASKSTATS_TYPE_UNSPEC = 0x0
+- TASKSTATS_TYPE_PID = 0x1
+- TASKSTATS_TYPE_TGID = 0x2
+- TASKSTATS_TYPE_STATS = 0x3
+- TASKSTATS_TYPE_AGGR_PID = 0x4
+- TASKSTATS_TYPE_AGGR_TGID = 0x5
+- TASKSTATS_TYPE_NULL = 0x6
+- TASKSTATS_CMD_ATTR_UNSPEC = 0x0
+- TASKSTATS_CMD_ATTR_PID = 0x1
+- TASKSTATS_CMD_ATTR_TGID = 0x2
+- TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3
+- TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4
++ _NCPUBITS = 0x40
+ )
+
+-type Genlmsghdr struct {
+- Cmd uint8
+- Version uint8
+- Reserved uint16
++const (
++ CBitFieldMaskBit0 = 0x1
++ CBitFieldMaskBit1 = 0x2
++ CBitFieldMaskBit2 = 0x4
++ CBitFieldMaskBit3 = 0x8
++ CBitFieldMaskBit4 = 0x10
++ CBitFieldMaskBit5 = 0x20
++ CBitFieldMaskBit6 = 0x40
++ CBitFieldMaskBit7 = 0x80
++ CBitFieldMaskBit8 = 0x100
++ CBitFieldMaskBit9 = 0x200
++ CBitFieldMaskBit10 = 0x400
++ CBitFieldMaskBit11 = 0x800
++ CBitFieldMaskBit12 = 0x1000
++ CBitFieldMaskBit13 = 0x2000
++ CBitFieldMaskBit14 = 0x4000
++ CBitFieldMaskBit15 = 0x8000
++ CBitFieldMaskBit16 = 0x10000
++ CBitFieldMaskBit17 = 0x20000
++ CBitFieldMaskBit18 = 0x40000
++ CBitFieldMaskBit19 = 0x80000
++ CBitFieldMaskBit20 = 0x100000
++ CBitFieldMaskBit21 = 0x200000
++ CBitFieldMaskBit22 = 0x400000
++ CBitFieldMaskBit23 = 0x800000
++ CBitFieldMaskBit24 = 0x1000000
++ CBitFieldMaskBit25 = 0x2000000
++ CBitFieldMaskBit26 = 0x4000000
++ CBitFieldMaskBit27 = 0x8000000
++ CBitFieldMaskBit28 = 0x10000000
++ CBitFieldMaskBit29 = 0x20000000
++ CBitFieldMaskBit30 = 0x40000000
++ CBitFieldMaskBit31 = 0x80000000
++ CBitFieldMaskBit32 = 0x100000000
++ CBitFieldMaskBit33 = 0x200000000
++ CBitFieldMaskBit34 = 0x400000000
++ CBitFieldMaskBit35 = 0x800000000
++ CBitFieldMaskBit36 = 0x1000000000
++ CBitFieldMaskBit37 = 0x2000000000
++ CBitFieldMaskBit38 = 0x4000000000
++ CBitFieldMaskBit39 = 0x8000000000
++ CBitFieldMaskBit40 = 0x10000000000
++ CBitFieldMaskBit41 = 0x20000000000
++ CBitFieldMaskBit42 = 0x40000000000
++ CBitFieldMaskBit43 = 0x80000000000
++ CBitFieldMaskBit44 = 0x100000000000
++ CBitFieldMaskBit45 = 0x200000000000
++ CBitFieldMaskBit46 = 0x400000000000
++ CBitFieldMaskBit47 = 0x800000000000
++ CBitFieldMaskBit48 = 0x1000000000000
++ CBitFieldMaskBit49 = 0x2000000000000
++ CBitFieldMaskBit50 = 0x4000000000000
++ CBitFieldMaskBit51 = 0x8000000000000
++ CBitFieldMaskBit52 = 0x10000000000000
++ CBitFieldMaskBit53 = 0x20000000000000
++ CBitFieldMaskBit54 = 0x40000000000000
++ CBitFieldMaskBit55 = 0x80000000000000
++ CBitFieldMaskBit56 = 0x100000000000000
++ CBitFieldMaskBit57 = 0x200000000000000
++ CBitFieldMaskBit58 = 0x400000000000000
++ CBitFieldMaskBit59 = 0x800000000000000
++ CBitFieldMaskBit60 = 0x1000000000000000
++ CBitFieldMaskBit61 = 0x2000000000000000
++ CBitFieldMaskBit62 = 0x4000000000000000
++ CBitFieldMaskBit63 = 0x8000000000000000
++)
++
++type SockaddrStorage struct {
++ Family uint16
++ _ [118]int8
++ _ uint64
++}
++
++type HDGeometry struct {
++ Heads uint8
++ Sectors uint8
++ Cylinders uint16
++ Start uint64
++}
++
++type Statfs_t struct {
++ Type int64
++ Bsize int64
++ Blocks uint64
++ Bfree uint64
++ Bavail uint64
++ Files uint64
++ Ffree uint64
++ Fsid Fsid
++ Namelen int64
++ Frsize int64
++ Flags int64
++ Spare [4]int64
++}
++
++type TpacketHdr struct {
++ Status uint64
++ Len uint32
++ Snaplen uint32
++ Mac uint16
++ Net uint16
++ Sec uint32
++ Usec uint32
++ _ [4]byte
+ }
+
+ const (
+- CTRL_CMD_UNSPEC = 0x0
+- CTRL_CMD_NEWFAMILY = 0x1
+- CTRL_CMD_DELFAMILY = 0x2
+- CTRL_CMD_GETFAMILY = 0x3
+- CTRL_CMD_NEWOPS = 0x4
+- CTRL_CMD_DELOPS = 0x5
+- CTRL_CMD_GETOPS = 0x6
+- CTRL_CMD_NEWMCAST_GRP = 0x7
+- CTRL_CMD_DELMCAST_GRP = 0x8
+- CTRL_CMD_GETMCAST_GRP = 0x9
+- CTRL_ATTR_UNSPEC = 0x0
+- CTRL_ATTR_FAMILY_ID = 0x1
+- CTRL_ATTR_FAMILY_NAME = 0x2
+- CTRL_ATTR_VERSION = 0x3
+- CTRL_ATTR_HDRSIZE = 0x4
+- CTRL_ATTR_MAXATTR = 0x5
+- CTRL_ATTR_OPS = 0x6
+- CTRL_ATTR_MCAST_GROUPS = 0x7
+- CTRL_ATTR_OP_UNSPEC = 0x0
+- CTRL_ATTR_OP_ID = 0x1
+- CTRL_ATTR_OP_FLAGS = 0x2
+- CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0
+- CTRL_ATTR_MCAST_GRP_NAME = 0x1
+- CTRL_ATTR_MCAST_GRP_ID = 0x2
++ SizeofTpacketHdr = 0x20
+ )
++
++type RTCPLLInfo struct {
++ Ctrl int32
++ Value int32
++ Max int32
++ Min int32
++ Posmult int32
++ Negmult int32
++ Clock int64
++}
++
++type BlkpgPartition struct {
++ Start int64
++ Length int64
++ Pno int32
++ Devname [64]uint8
++ Volname [64]uint8
++ _ [4]byte
++}
++
++const (
++ BLKPG = 0x1269
++)
++
++type XDPUmemReg struct {
++ Addr uint64
++ Len uint64
++ Size uint32
++ Headroom uint32
++ Flags uint32
++ _ [4]byte
++}
++
++type CryptoUserAlg struct {
++ Name [64]int8
++ Driver_name [64]int8
++ Module_name [64]int8
++ Type uint32
++ Mask uint32
++ Refcnt uint32
++ Flags uint32
++}
++
++type CryptoStatAEAD struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatAKCipher struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Verify_cnt uint64
++ Sign_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatCipher struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatCompress struct {
++ Type [64]int8
++ Compress_cnt uint64
++ Compress_tlen uint64
++ Decompress_cnt uint64
++ Decompress_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatHash struct {
++ Type [64]int8
++ Hash_cnt uint64
++ Hash_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatKPP struct {
++ Type [64]int8
++ Setsecret_cnt uint64
++ Generate_public_key_cnt uint64
++ Compute_shared_secret_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatRNG struct {
++ Type [64]int8
++ Generate_cnt uint64
++ Generate_tlen uint64
++ Seed_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatLarval struct {
++ Type [64]int8
++}
++
++type CryptoReportLarval struct {
++ Type [64]int8
++}
++
++type CryptoReportHash struct {
++ Type [64]int8
++ Blocksize uint32
++ Digestsize uint32
++}
++
++type CryptoReportCipher struct {
++ Type [64]int8
++ Blocksize uint32
++ Min_keysize uint32
++ Max_keysize uint32
++}
++
++type CryptoReportBlkCipher struct {
++ Type [64]int8
++ Geniv [64]int8
++ Blocksize uint32
++ Min_keysize uint32
++ Max_keysize uint32
++ Ivsize uint32
++}
++
++type CryptoReportAEAD struct {
++ Type [64]int8
++ Geniv [64]int8
++ Blocksize uint32
++ Maxauthsize uint32
++ Ivsize uint32
++}
++
++type CryptoReportComp struct {
++ Type [64]int8
++}
++
++type CryptoReportRNG struct {
++ Type [64]int8
++ Seedsize uint32
++}
++
++type CryptoReportAKCipher struct {
++ Type [64]int8
++}
++
++type CryptoReportKPP struct {
++ Type [64]int8
++}
++
++type CryptoReportAcomp struct {
++ Type [64]int8
++}
++
++type LoopInfo struct {
++ Number int32
++ Device uint64
++ Inode uint64
++ Rdevice uint64
++ Offset int32
++ Encrypt_type int32
++ Encrypt_key_size int32
++ Flags int32
++ Name [64]int8
++ Encrypt_key [32]uint8
++ Init [2]uint64
++ Reserved [4]int8
++ _ [4]byte
++}
++
++type TIPCSubscr struct {
++ Seq TIPCServiceRange
++ Timeout uint32
++ Filter uint32
++ Handle [8]int8
++}
++
++type TIPCSIOCLNReq struct {
++ Peer uint32
++ Id uint32
++ Linkname [68]int8
++}
++
++type TIPCSIOCNodeIDReq struct {
++ Peer uint32
++ Id [16]int8
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
+index bff6ce25..8051b561 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
+@@ -6,19 +6,12 @@
+ package unix
+
+ const (
+- sizeofPtr = 0x4
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x4
+- sizeofLongLong = 0x8
+- PathMax = 0x1000
++ SizeofPtr = 0x4
++ SizeofLong = 0x4
+ )
+
+ type (
+- _C_short int16
+- _C_int int32
+- _C_long int32
+- _C_long_long int64
++ _C_long int32
+ )
+
+ type Timespec struct {
+@@ -52,7 +45,7 @@ type Timex struct {
+ Errcnt int32
+ Stbcnt int32
+ Tai int32
+- Pad_cgo_0 [44]byte
++ _ [44]byte
+ }
+
+ type Time_t int32
+@@ -88,169 +81,51 @@ type Rusage struct {
+ Nivcsw int32
+ }
+
+-type Rlimit struct {
+- Cur uint64
+- Max uint64
+-}
+-
+-type _Gid_t uint32
+-
+ type Stat_t struct {
+- Dev uint64
+- X__pad1 uint16
+- Pad_cgo_0 [2]byte
+- X__st_ino uint32
+- Mode uint32
+- Nlink uint32
+- Uid uint32
+- Gid uint32
+- Rdev uint64
+- X__pad2 uint16
+- Pad_cgo_1 [6]byte
+- Size int64
+- Blksize int32
+- Pad_cgo_2 [4]byte
+- Blocks int64
+- Atim Timespec
+- Mtim Timespec
+- Ctim Timespec
+- Ino uint64
+-}
+-
+-type Statfs_t struct {
+- Type int32
+- Bsize int32
+- Blocks uint64
+- Bfree uint64
+- Bavail uint64
+- Files uint64
+- Ffree uint64
+- Fsid Fsid
+- Namelen int32
+- Frsize int32
+- Flags int32
+- Spare [4]int32
+- Pad_cgo_0 [4]byte
++ Dev uint64
++ _ uint16
++ _ uint32
++ Mode uint32
++ Nlink uint32
++ Uid uint32
++ Gid uint32
++ Rdev uint64
++ _ uint16
++ _ [4]byte
++ Size int64
++ Blksize int32
++ _ [4]byte
++ Blocks int64
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ Ino uint64
+ }
+
+ type Dirent struct {
+- Ino uint64
+- Off int64
+- Reclen uint16
+- Type uint8
+- Name [256]uint8
+- Pad_cgo_0 [5]byte
+-}
+-
+-type Fsid struct {
+- X__val [2]int32
++ Ino uint64
++ Off int64
++ Reclen uint16
++ Type uint8
++ Name [256]uint8
++ _ [5]byte
+ }
+
+ type Flock_t struct {
+- Type int16
+- Whence int16
+- Pad_cgo_0 [4]byte
+- Start int64
+- Len int64
+- Pid int32
+- Pad_cgo_1 [4]byte
+-}
+-
+-type FscryptPolicy struct {
+- Version uint8
+- Contents_encryption_mode uint8
+- Filenames_encryption_mode uint8
+- Flags uint8
+- Master_key_descriptor [8]uint8
+-}
+-
+-type FscryptKey struct {
+- Mode uint32
+- Raw [64]uint8
+- Size uint32
+-}
+-
+-type KeyctlDHParams struct {
+- Private int32
+- Prime int32
+- Base int32
++ Type int16
++ Whence int16
++ _ [4]byte
++ Start int64
++ Len int64
++ Pid int32
++ _ [4]byte
+ }
+
+ const (
+- FADV_NORMAL = 0x0
+- FADV_RANDOM = 0x1
+- FADV_SEQUENTIAL = 0x2
+- FADV_WILLNEED = 0x3
+- FADV_DONTNEED = 0x4
+- FADV_NOREUSE = 0x5
++ FADV_DONTNEED = 0x4
++ FADV_NOREUSE = 0x5
+ )
+
+-type RawSockaddrInet4 struct {
+- Family uint16
+- Port uint16
+- Addr [4]byte /* in_addr */
+- Zero [8]uint8
+-}
+-
+-type RawSockaddrInet6 struct {
+- Family uint16
+- Port uint16
+- Flowinfo uint32
+- Addr [16]byte /* in6_addr */
+- Scope_id uint32
+-}
+-
+-type RawSockaddrUnix struct {
+- Family uint16
+- Path [108]int8
+-}
+-
+-type RawSockaddrLinklayer struct {
+- Family uint16
+- Protocol uint16
+- Ifindex int32
+- Hatype uint16
+- Pkttype uint8
+- Halen uint8
+- Addr [8]uint8
+-}
+-
+-type RawSockaddrNetlink struct {
+- Family uint16
+- Pad uint16
+- Pid uint32
+- Groups uint32
+-}
+-
+-type RawSockaddrHCI struct {
+- Family uint16
+- Dev uint16
+- Channel uint16
+-}
+-
+-type RawSockaddrCAN struct {
+- Family uint16
+- Pad_cgo_0 [2]byte
+- Ifindex int32
+- Addr [8]byte
+-}
+-
+-type RawSockaddrALG struct {
+- Family uint16
+- Type [14]uint8
+- Feat uint32
+- Mask uint32
+- Name [64]uint8
+-}
+-
+-type RawSockaddrVM struct {
+- Family uint16
+- Reserved1 uint16
+- Port uint32
+- Cid uint32
+- Zero [4]uint8
+-}
+-
+ type RawSockaddr struct {
+ Family uint16
+ Data [14]uint8
+@@ -261,41 +136,11 @@ type RawSockaddrAny struct {
+ Pad [96]uint8
+ }
+
+-type _Socklen uint32
+-
+-type Linger struct {
+- Onoff int32
+- Linger int32
+-}
+-
+ type Iovec struct {
+ Base *byte
+ Len uint32
+ }
+
+-type IPMreq struct {
+- Multiaddr [4]byte /* in_addr */
+- Interface [4]byte /* in_addr */
+-}
+-
+-type IPMreqn struct {
+- Multiaddr [4]byte /* in_addr */
+- Address [4]byte /* in_addr */
+- Ifindex int32
+-}
+-
+-type IPv6Mreq struct {
+- Multiaddr [16]byte /* in6_addr */
+- Interface uint32
+-}
+-
+-type PacketMreq struct {
+- Ifindex int32
+- Type uint16
+- Alen uint16
+- Address [8]uint8
+-}
+-
+ type Msghdr struct {
+ Name *byte
+ Namelen uint32
+@@ -312,277 +157,16 @@ type Cmsghdr struct {
+ Type int32
+ }
+
+-type Inet4Pktinfo struct {
+- Ifindex int32
+- Spec_dst [4]byte /* in_addr */
+- Addr [4]byte /* in_addr */
+-}
+-
+-type Inet6Pktinfo struct {
+- Addr [16]byte /* in6_addr */
+- Ifindex uint32
+-}
+-
+-type IPv6MTUInfo struct {
+- Addr RawSockaddrInet6
+- Mtu uint32
+-}
+-
+-type ICMPv6Filter struct {
+- Data [8]uint32
+-}
+-
+-type Ucred struct {
+- Pid int32
+- Uid uint32
+- Gid uint32
+-}
+-
+-type TCPInfo struct {
+- State uint8
+- Ca_state uint8
+- Retransmits uint8
+- Probes uint8
+- Backoff uint8
+- Options uint8
+- Pad_cgo_0 [2]byte
+- Rto uint32
+- Ato uint32
+- Snd_mss uint32
+- Rcv_mss uint32
+- Unacked uint32
+- Sacked uint32
+- Lost uint32
+- Retrans uint32
+- Fackets uint32
+- Last_data_sent uint32
+- Last_ack_sent uint32
+- Last_data_recv uint32
+- Last_ack_recv uint32
+- Pmtu uint32
+- Rcv_ssthresh uint32
+- Rtt uint32
+- Rttvar uint32
+- Snd_ssthresh uint32
+- Snd_cwnd uint32
+- Advmss uint32
+- Reordering uint32
+- Rcv_rtt uint32
+- Rcv_space uint32
+- Total_retrans uint32
+-}
+-
+ const (
+- SizeofSockaddrInet4 = 0x10
+- SizeofSockaddrInet6 = 0x1c
+- SizeofSockaddrAny = 0x70
+- SizeofSockaddrUnix = 0x6e
+- SizeofSockaddrLinklayer = 0x14
+- SizeofSockaddrNetlink = 0xc
+- SizeofSockaddrHCI = 0x6
+- SizeofSockaddrCAN = 0x10
+- SizeofSockaddrALG = 0x58
+- SizeofSockaddrVM = 0x10
+- SizeofLinger = 0x8
+- SizeofIovec = 0x8
+- SizeofIPMreq = 0x8
+- SizeofIPMreqn = 0xc
+- SizeofIPv6Mreq = 0x14
+- SizeofPacketMreq = 0x10
+- SizeofMsghdr = 0x1c
+- SizeofCmsghdr = 0xc
+- SizeofInet4Pktinfo = 0xc
+- SizeofInet6Pktinfo = 0x14
+- SizeofIPv6MTUInfo = 0x20
+- SizeofICMPv6Filter = 0x20
+- SizeofUcred = 0xc
+- SizeofTCPInfo = 0x68
++ SizeofIovec = 0x8
++ SizeofMsghdr = 0x1c
++ SizeofCmsghdr = 0xc
+ )
+
+ const (
+- IFA_UNSPEC = 0x0
+- IFA_ADDRESS = 0x1
+- IFA_LOCAL = 0x2
+- IFA_LABEL = 0x3
+- IFA_BROADCAST = 0x4
+- IFA_ANYCAST = 0x5
+- IFA_CACHEINFO = 0x6
+- IFA_MULTICAST = 0x7
+- IFLA_UNSPEC = 0x0
+- IFLA_ADDRESS = 0x1
+- IFLA_BROADCAST = 0x2
+- IFLA_IFNAME = 0x3
+- IFLA_MTU = 0x4
+- IFLA_LINK = 0x5
+- IFLA_QDISC = 0x6
+- IFLA_STATS = 0x7
+- IFLA_COST = 0x8
+- IFLA_PRIORITY = 0x9
+- IFLA_MASTER = 0xa
+- IFLA_WIRELESS = 0xb
+- IFLA_PROTINFO = 0xc
+- IFLA_TXQLEN = 0xd
+- IFLA_MAP = 0xe
+- IFLA_WEIGHT = 0xf
+- IFLA_OPERSTATE = 0x10
+- IFLA_LINKMODE = 0x11
+- IFLA_LINKINFO = 0x12
+- IFLA_NET_NS_PID = 0x13
+- IFLA_IFALIAS = 0x14
+- IFLA_MAX = 0x2b
+- RT_SCOPE_UNIVERSE = 0x0
+- RT_SCOPE_SITE = 0xc8
+- RT_SCOPE_LINK = 0xfd
+- RT_SCOPE_HOST = 0xfe
+- RT_SCOPE_NOWHERE = 0xff
+- RT_TABLE_UNSPEC = 0x0
+- RT_TABLE_COMPAT = 0xfc
+- RT_TABLE_DEFAULT = 0xfd
+- RT_TABLE_MAIN = 0xfe
+- RT_TABLE_LOCAL = 0xff
+- RT_TABLE_MAX = 0xffffffff
+- RTA_UNSPEC = 0x0
+- RTA_DST = 0x1
+- RTA_SRC = 0x2
+- RTA_IIF = 0x3
+- RTA_OIF = 0x4
+- RTA_GATEWAY = 0x5
+- RTA_PRIORITY = 0x6
+- RTA_PREFSRC = 0x7
+- RTA_METRICS = 0x8
+- RTA_MULTIPATH = 0x9
+- RTA_FLOW = 0xb
+- RTA_CACHEINFO = 0xc
+- RTA_TABLE = 0xf
+- RTN_UNSPEC = 0x0
+- RTN_UNICAST = 0x1
+- RTN_LOCAL = 0x2
+- RTN_BROADCAST = 0x3
+- RTN_ANYCAST = 0x4
+- RTN_MULTICAST = 0x5
+- RTN_BLACKHOLE = 0x6
+- RTN_UNREACHABLE = 0x7
+- RTN_PROHIBIT = 0x8
+- RTN_THROW = 0x9
+- RTN_NAT = 0xa
+- RTN_XRESOLVE = 0xb
+- RTNLGRP_NONE = 0x0
+- RTNLGRP_LINK = 0x1
+- RTNLGRP_NOTIFY = 0x2
+- RTNLGRP_NEIGH = 0x3
+- RTNLGRP_TC = 0x4
+- RTNLGRP_IPV4_IFADDR = 0x5
+- RTNLGRP_IPV4_MROUTE = 0x6
+- RTNLGRP_IPV4_ROUTE = 0x7
+- RTNLGRP_IPV4_RULE = 0x8
+- RTNLGRP_IPV6_IFADDR = 0x9
+- RTNLGRP_IPV6_MROUTE = 0xa
+- RTNLGRP_IPV6_ROUTE = 0xb
+- RTNLGRP_IPV6_IFINFO = 0xc
+- RTNLGRP_IPV6_PREFIX = 0x12
+- RTNLGRP_IPV6_RULE = 0x13
+- RTNLGRP_ND_USEROPT = 0x14
+- SizeofNlMsghdr = 0x10
+- SizeofNlMsgerr = 0x14
+- SizeofRtGenmsg = 0x1
+- SizeofNlAttr = 0x4
+- SizeofRtAttr = 0x4
+- SizeofIfInfomsg = 0x10
+- SizeofIfAddrmsg = 0x8
+- SizeofRtMsg = 0xc
+- SizeofRtNexthop = 0x8
++ SizeofSockFprog = 0x8
+ )
+
+-type NlMsghdr struct {
+- Len uint32
+- Type uint16
+- Flags uint16
+- Seq uint32
+- Pid uint32
+-}
+-
+-type NlMsgerr struct {
+- Error int32
+- Msg NlMsghdr
+-}
+-
+-type RtGenmsg struct {
+- Family uint8
+-}
+-
+-type NlAttr struct {
+- Len uint16
+- Type uint16
+-}
+-
+-type RtAttr struct {
+- Len uint16
+- Type uint16
+-}
+-
+-type IfInfomsg struct {
+- Family uint8
+- X__ifi_pad uint8
+- Type uint16
+- Index int32
+- Flags uint32
+- Change uint32
+-}
+-
+-type IfAddrmsg struct {
+- Family uint8
+- Prefixlen uint8
+- Flags uint8
+- Scope uint8
+- Index uint32
+-}
+-
+-type RtMsg struct {
+- Family uint8
+- Dst_len uint8
+- Src_len uint8
+- Tos uint8
+- Table uint8
+- Protocol uint8
+- Scope uint8
+- Type uint8
+- Flags uint32
+-}
+-
+-type RtNexthop struct {
+- Len uint16
+- Flags uint8
+- Hops uint8
+- Ifindex int32
+-}
+-
+-const (
+- SizeofSockFilter = 0x8
+- SizeofSockFprog = 0x8
+-)
+-
+-type SockFilter struct {
+- Code uint16
+- Jt uint8
+- Jf uint8
+- K uint32
+-}
+-
+-type SockFprog struct {
+- Len uint16
+- Pad_cgo_0 [2]byte
+- Filter *SockFilter
+-}
+-
+-type InotifyEvent struct {
+- Wd int32
+- Mask uint32
+- Cookie uint32
+- Len uint32
+-}
+-
+-const SizeofInotifyEvent = 0x10
+-
+ type PtraceRegs struct {
+ Uregs [18]uint32
+ }
+@@ -605,16 +189,7 @@ type Sysinfo_t struct {
+ Totalhigh uint32
+ Freehigh uint32
+ Unit uint32
+- X_f [8]uint8
+-}
+-
+-type Utsname struct {
+- Sysname [65]uint8
+- Nodename [65]uint8
+- Release [65]uint8
+- Version [65]uint8
+- Machine [65]uint8
+- Domainname [65]uint8
++ _ [8]uint8
+ }
+
+ type Ustat_t struct {
+@@ -632,37 +207,14 @@ type EpollEvent struct {
+ }
+
+ const (
+- AT_FDCWD = -0x64
+- AT_REMOVEDIR = 0x200
+- AT_SYMLINK_FOLLOW = 0x400
+- AT_SYMLINK_NOFOLLOW = 0x100
+-)
+-
+-type PollFd struct {
+- Fd int32
+- Events int16
+- Revents int16
+-}
+-
+-const (
+- POLLIN = 0x1
+- POLLPRI = 0x2
+- POLLOUT = 0x4
+ POLLRDHUP = 0x2000
+- POLLERR = 0x8
+- POLLHUP = 0x10
+- POLLNVAL = 0x20
+ )
+
+ type Sigset_t struct {
+- X__val [32]uint32
++ Val [32]uint32
+ }
+
+-const RNDGETENTCNT = 0x80045200
+-
+-const PERF_IOC_FLAG_GROUP = 0x1
+-
+-const _SC_PAGESIZE = 0x1e
++const _C__NSIG = 0x41
+
+ type Termios struct {
+ Iflag uint32
+@@ -675,20 +227,12 @@ type Termios struct {
+ Ospeed uint32
+ }
+
+-type Winsize struct {
+- Row uint16
+- Col uint16
+- Xpixel uint16
+- Ypixel uint16
+-}
+-
+ type Taskstats struct {
+ Version uint16
+- Pad_cgo_0 [2]byte
+ Ac_exitcode uint32
+ Ac_flag uint8
+ Ac_nice uint8
+- Pad_cgo_1 [6]byte
++ _ [4]byte
+ Cpu_count uint64
+ Cpu_delay_total uint64
+ Blkio_count uint64
+@@ -700,13 +244,13 @@ type Taskstats struct {
+ Ac_comm [32]uint8
+ Ac_sched uint8
+ Ac_pad [3]uint8
+- Pad_cgo_2 [4]byte
++ _ [4]byte
+ Ac_uid uint32
+ Ac_gid uint32
+ Ac_pid uint32
+ Ac_ppid uint32
+ Ac_btime uint32
+- Pad_cgo_3 [4]byte
++ _ [4]byte
+ Ac_etime uint64
+ Ac_utime uint64
+ Ac_stime uint64
+@@ -730,55 +274,318 @@ type Taskstats struct {
+ Cpu_scaled_run_real_total uint64
+ Freepages_count uint64
+ Freepages_delay_total uint64
++ Thrashing_count uint64
++ Thrashing_delay_total uint64
++ Ac_btime64 uint64
+ }
+
++type cpuMask uint32
++
++const (
++ _NCPUBITS = 0x20
++)
++
+ const (
+- TASKSTATS_CMD_UNSPEC = 0x0
+- TASKSTATS_CMD_GET = 0x1
+- TASKSTATS_CMD_NEW = 0x2
+- TASKSTATS_TYPE_UNSPEC = 0x0
+- TASKSTATS_TYPE_PID = 0x1
+- TASKSTATS_TYPE_TGID = 0x2
+- TASKSTATS_TYPE_STATS = 0x3
+- TASKSTATS_TYPE_AGGR_PID = 0x4
+- TASKSTATS_TYPE_AGGR_TGID = 0x5
+- TASKSTATS_TYPE_NULL = 0x6
+- TASKSTATS_CMD_ATTR_UNSPEC = 0x0
+- TASKSTATS_CMD_ATTR_PID = 0x1
+- TASKSTATS_CMD_ATTR_TGID = 0x2
+- TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3
+- TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4
++ CBitFieldMaskBit0 = 0x1
++ CBitFieldMaskBit1 = 0x2
++ CBitFieldMaskBit2 = 0x4
++ CBitFieldMaskBit3 = 0x8
++ CBitFieldMaskBit4 = 0x10
++ CBitFieldMaskBit5 = 0x20
++ CBitFieldMaskBit6 = 0x40
++ CBitFieldMaskBit7 = 0x80
++ CBitFieldMaskBit8 = 0x100
++ CBitFieldMaskBit9 = 0x200
++ CBitFieldMaskBit10 = 0x400
++ CBitFieldMaskBit11 = 0x800
++ CBitFieldMaskBit12 = 0x1000
++ CBitFieldMaskBit13 = 0x2000
++ CBitFieldMaskBit14 = 0x4000
++ CBitFieldMaskBit15 = 0x8000
++ CBitFieldMaskBit16 = 0x10000
++ CBitFieldMaskBit17 = 0x20000
++ CBitFieldMaskBit18 = 0x40000
++ CBitFieldMaskBit19 = 0x80000
++ CBitFieldMaskBit20 = 0x100000
++ CBitFieldMaskBit21 = 0x200000
++ CBitFieldMaskBit22 = 0x400000
++ CBitFieldMaskBit23 = 0x800000
++ CBitFieldMaskBit24 = 0x1000000
++ CBitFieldMaskBit25 = 0x2000000
++ CBitFieldMaskBit26 = 0x4000000
++ CBitFieldMaskBit27 = 0x8000000
++ CBitFieldMaskBit28 = 0x10000000
++ CBitFieldMaskBit29 = 0x20000000
++ CBitFieldMaskBit30 = 0x40000000
++ CBitFieldMaskBit31 = 0x80000000
++ CBitFieldMaskBit32 = 0x100000000
++ CBitFieldMaskBit33 = 0x200000000
++ CBitFieldMaskBit34 = 0x400000000
++ CBitFieldMaskBit35 = 0x800000000
++ CBitFieldMaskBit36 = 0x1000000000
++ CBitFieldMaskBit37 = 0x2000000000
++ CBitFieldMaskBit38 = 0x4000000000
++ CBitFieldMaskBit39 = 0x8000000000
++ CBitFieldMaskBit40 = 0x10000000000
++ CBitFieldMaskBit41 = 0x20000000000
++ CBitFieldMaskBit42 = 0x40000000000
++ CBitFieldMaskBit43 = 0x80000000000
++ CBitFieldMaskBit44 = 0x100000000000
++ CBitFieldMaskBit45 = 0x200000000000
++ CBitFieldMaskBit46 = 0x400000000000
++ CBitFieldMaskBit47 = 0x800000000000
++ CBitFieldMaskBit48 = 0x1000000000000
++ CBitFieldMaskBit49 = 0x2000000000000
++ CBitFieldMaskBit50 = 0x4000000000000
++ CBitFieldMaskBit51 = 0x8000000000000
++ CBitFieldMaskBit52 = 0x10000000000000
++ CBitFieldMaskBit53 = 0x20000000000000
++ CBitFieldMaskBit54 = 0x40000000000000
++ CBitFieldMaskBit55 = 0x80000000000000
++ CBitFieldMaskBit56 = 0x100000000000000
++ CBitFieldMaskBit57 = 0x200000000000000
++ CBitFieldMaskBit58 = 0x400000000000000
++ CBitFieldMaskBit59 = 0x800000000000000
++ CBitFieldMaskBit60 = 0x1000000000000000
++ CBitFieldMaskBit61 = 0x2000000000000000
++ CBitFieldMaskBit62 = 0x4000000000000000
++ CBitFieldMaskBit63 = 0x8000000000000000
+ )
+
+-type Genlmsghdr struct {
+- Cmd uint8
+- Version uint8
+- Reserved uint16
++type SockaddrStorage struct {
++ Family uint16
++ _ [122]uint8
++ _ uint32
++}
++
++type HDGeometry struct {
++ Heads uint8
++ Sectors uint8
++ Cylinders uint16
++ Start uint32
++}
++
++type Statfs_t struct {
++ Type int32
++ Bsize int32
++ Blocks uint64
++ Bfree uint64
++ Bavail uint64
++ Files uint64
++ Ffree uint64
++ Fsid Fsid
++ Namelen int32
++ Frsize int32
++ Flags int32
++ Spare [4]int32
++ _ [4]byte
++}
++
++type TpacketHdr struct {
++ Status uint32
++ Len uint32
++ Snaplen uint32
++ Mac uint16
++ Net uint16
++ Sec uint32
++ Usec uint32
++}
++
++const (
++ SizeofTpacketHdr = 0x18
++)
++
++type RTCPLLInfo struct {
++ Ctrl int32
++ Value int32
++ Max int32
++ Min int32
++ Posmult int32
++ Negmult int32
++ Clock int32
++}
++
++type BlkpgPartition struct {
++ Start int64
++ Length int64
++ Pno int32
++ Devname [64]uint8
++ Volname [64]uint8
++ _ [4]byte
+ }
+
+ const (
+- CTRL_CMD_UNSPEC = 0x0
+- CTRL_CMD_NEWFAMILY = 0x1
+- CTRL_CMD_DELFAMILY = 0x2
+- CTRL_CMD_GETFAMILY = 0x3
+- CTRL_CMD_NEWOPS = 0x4
+- CTRL_CMD_DELOPS = 0x5
+- CTRL_CMD_GETOPS = 0x6
+- CTRL_CMD_NEWMCAST_GRP = 0x7
+- CTRL_CMD_DELMCAST_GRP = 0x8
+- CTRL_CMD_GETMCAST_GRP = 0x9
+- CTRL_ATTR_UNSPEC = 0x0
+- CTRL_ATTR_FAMILY_ID = 0x1
+- CTRL_ATTR_FAMILY_NAME = 0x2
+- CTRL_ATTR_VERSION = 0x3
+- CTRL_ATTR_HDRSIZE = 0x4
+- CTRL_ATTR_MAXATTR = 0x5
+- CTRL_ATTR_OPS = 0x6
+- CTRL_ATTR_MCAST_GROUPS = 0x7
+- CTRL_ATTR_OP_UNSPEC = 0x0
+- CTRL_ATTR_OP_ID = 0x1
+- CTRL_ATTR_OP_FLAGS = 0x2
+- CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0
+- CTRL_ATTR_MCAST_GRP_NAME = 0x1
+- CTRL_ATTR_MCAST_GRP_ID = 0x2
++ BLKPG = 0x1269
+ )
++
++type XDPUmemReg struct {
++ Addr uint64
++ Len uint64
++ Size uint32
++ Headroom uint32
++ Flags uint32
++ _ [4]byte
++}
++
++type CryptoUserAlg struct {
++ Name [64]uint8
++ Driver_name [64]uint8
++ Module_name [64]uint8
++ Type uint32
++ Mask uint32
++ Refcnt uint32
++ Flags uint32
++}
++
++type CryptoStatAEAD struct {
++ Type [64]uint8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatAKCipher struct {
++ Type [64]uint8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Verify_cnt uint64
++ Sign_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatCipher struct {
++ Type [64]uint8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatCompress struct {
++ Type [64]uint8
++ Compress_cnt uint64
++ Compress_tlen uint64
++ Decompress_cnt uint64
++ Decompress_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatHash struct {
++ Type [64]uint8
++ Hash_cnt uint64
++ Hash_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatKPP struct {
++ Type [64]uint8
++ Setsecret_cnt uint64
++ Generate_public_key_cnt uint64
++ Compute_shared_secret_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatRNG struct {
++ Type [64]uint8
++ Generate_cnt uint64
++ Generate_tlen uint64
++ Seed_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatLarval struct {
++ Type [64]uint8
++}
++
++type CryptoReportLarval struct {
++ Type [64]uint8
++}
++
++type CryptoReportHash struct {
++ Type [64]uint8
++ Blocksize uint32
++ Digestsize uint32
++}
++
++type CryptoReportCipher struct {
++ Type [64]uint8
++ Blocksize uint32
++ Min_keysize uint32
++ Max_keysize uint32
++}
++
++type CryptoReportBlkCipher struct {
++ Type [64]uint8
++ Geniv [64]uint8
++ Blocksize uint32
++ Min_keysize uint32
++ Max_keysize uint32
++ Ivsize uint32
++}
++
++type CryptoReportAEAD struct {
++ Type [64]uint8
++ Geniv [64]uint8
++ Blocksize uint32
++ Maxauthsize uint32
++ Ivsize uint32
++}
++
++type CryptoReportComp struct {
++ Type [64]uint8
++}
++
++type CryptoReportRNG struct {
++ Type [64]uint8
++ Seedsize uint32
++}
++
++type CryptoReportAKCipher struct {
++ Type [64]uint8
++}
++
++type CryptoReportKPP struct {
++ Type [64]uint8
++}
++
++type CryptoReportAcomp struct {
++ Type [64]uint8
++}
++
++type LoopInfo struct {
++ Number int32
++ Device uint16
++ Inode uint32
++ Rdevice uint16
++ Offset int32
++ Encrypt_type int32
++ Encrypt_key_size int32
++ Flags int32
++ Name [64]uint8
++ Encrypt_key [32]uint8
++ Init [2]uint32
++ Reserved [4]uint8
++}
++
++type TIPCSubscr struct {
++ Seq TIPCServiceRange
++ Timeout uint32
++ Filter uint32
++ Handle [8]uint8
++}
++
++type TIPCSIOCLNReq struct {
++ Peer uint32
++ Id uint32
++ Linkname [68]uint8
++}
++
++type TIPCSIOCNodeIDReq struct {
++ Peer uint32
++ Id [16]uint8
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
+index a3d0cc4a..a936f216 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
+@@ -6,19 +6,12 @@
+ package unix
+
+ const (
+- sizeofPtr = 0x8
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x8
+- sizeofLongLong = 0x8
+- PathMax = 0x1000
++ SizeofPtr = 0x8
++ SizeofLong = 0x8
+ )
+
+ type (
+- _C_short int16
+- _C_int int32
+- _C_long int64
+- _C_long_long int64
++ _C_long int64
+ )
+
+ type Timespec struct {
+@@ -33,13 +26,11 @@ type Timeval struct {
+
+ type Timex struct {
+ Modes uint32
+- Pad_cgo_0 [4]byte
+ Offset int64
+ Freq int64
+ Maxerror int64
+ Esterror int64
+ Status int32
+- Pad_cgo_1 [4]byte
+ Constant int64
+ Precision int64
+ Tolerance int64
+@@ -48,14 +39,13 @@ type Timex struct {
+ Ppsfreq int64
+ Jitter int64
+ Shift int32
+- Pad_cgo_2 [4]byte
+ Stabil int64
+ Jitcnt int64
+ Calcnt int64
+ Errcnt int64
+ Stbcnt int64
+ Tai int32
+- Pad_cgo_3 [44]byte
++ _ [44]byte
+ }
+
+ type Time_t int64
+@@ -91,13 +81,6 @@ type Rusage struct {
+ Nivcsw int64
+ }
+
+-type Rlimit struct {
+- Cur uint64
+- Max uint64
+-}
+-
+-type _Gid_t uint32
+-
+ type Stat_t struct {
+ Dev uint64
+ Ino uint64
+@@ -106,10 +89,10 @@ type Stat_t struct {
+ Uid uint32
+ Gid uint32
+ Rdev uint64
+- X__pad1 uint64
++ _ uint64
+ Size int64
+ Blksize int32
+- X__pad2 int32
++ _ int32
+ Blocks int64
+ Atim Timespec
+ Mtim Timespec
+@@ -117,139 +100,29 @@ type Stat_t struct {
+ _ [2]int32
+ }
+
+-type Statfs_t struct {
+- Type int64
+- Bsize int64
+- Blocks uint64
+- Bfree uint64
+- Bavail uint64
+- Files uint64
+- Ffree uint64
+- Fsid Fsid
+- Namelen int64
+- Frsize int64
+- Flags int64
+- Spare [4]int64
+-}
+-
+ type Dirent struct {
+- Ino uint64
+- Off int64
+- Reclen uint16
+- Type uint8
+- Name [256]int8
+- Pad_cgo_0 [5]byte
+-}
+-
+-type Fsid struct {
+- X__val [2]int32
++ Ino uint64
++ Off int64
++ Reclen uint16
++ Type uint8
++ Name [256]int8
++ _ [5]byte
+ }
+
+ type Flock_t struct {
+- Type int16
+- Whence int16
+- Pad_cgo_0 [4]byte
+- Start int64
+- Len int64
+- Pid int32
+- Pad_cgo_1 [4]byte
+-}
+-
+-type FscryptPolicy struct {
+- Version uint8
+- Contents_encryption_mode uint8
+- Filenames_encryption_mode uint8
+- Flags uint8
+- Master_key_descriptor [8]uint8
+-}
+-
+-type FscryptKey struct {
+- Mode uint32
+- Raw [64]uint8
+- Size uint32
+-}
+-
+-type KeyctlDHParams struct {
+- Private int32
+- Prime int32
+- Base int32
++ Type int16
++ Whence int16
++ Start int64
++ Len int64
++ Pid int32
++ _ [4]byte
+ }
+
+ const (
+- FADV_NORMAL = 0x0
+- FADV_RANDOM = 0x1
+- FADV_SEQUENTIAL = 0x2
+- FADV_WILLNEED = 0x3
+- FADV_DONTNEED = 0x4
+- FADV_NOREUSE = 0x5
++ FADV_DONTNEED = 0x4
++ FADV_NOREUSE = 0x5
+ )
+
+-type RawSockaddrInet4 struct {
+- Family uint16
+- Port uint16
+- Addr [4]byte /* in_addr */
+- Zero [8]uint8
+-}
+-
+-type RawSockaddrInet6 struct {
+- Family uint16
+- Port uint16
+- Flowinfo uint32
+- Addr [16]byte /* in6_addr */
+- Scope_id uint32
+-}
+-
+-type RawSockaddrUnix struct {
+- Family uint16
+- Path [108]int8
+-}
+-
+-type RawSockaddrLinklayer struct {
+- Family uint16
+- Protocol uint16
+- Ifindex int32
+- Hatype uint16
+- Pkttype uint8
+- Halen uint8
+- Addr [8]uint8
+-}
+-
+-type RawSockaddrNetlink struct {
+- Family uint16
+- Pad uint16
+- Pid uint32
+- Groups uint32
+-}
+-
+-type RawSockaddrHCI struct {
+- Family uint16
+- Dev uint16
+- Channel uint16
+-}
+-
+-type RawSockaddrCAN struct {
+- Family uint16
+- Pad_cgo_0 [2]byte
+- Ifindex int32
+- Addr [8]byte
+-}
+-
+-type RawSockaddrALG struct {
+- Family uint16
+- Type [14]uint8
+- Feat uint32
+- Mask uint32
+- Name [64]uint8
+-}
+-
+-type RawSockaddrVM struct {
+- Family uint16
+- Reserved1 uint16
+- Port uint32
+- Cid uint32
+- Zero [4]uint8
+-}
+-
+ type RawSockaddr struct {
+ Family uint16
+ Data [14]int8
+@@ -260,51 +133,20 @@ type RawSockaddrAny struct {
+ Pad [96]int8
+ }
+
+-type _Socklen uint32
+-
+-type Linger struct {
+- Onoff int32
+- Linger int32
+-}
+-
+ type Iovec struct {
+ Base *byte
+ Len uint64
+ }
+
+-type IPMreq struct {
+- Multiaddr [4]byte /* in_addr */
+- Interface [4]byte /* in_addr */
+-}
+-
+-type IPMreqn struct {
+- Multiaddr [4]byte /* in_addr */
+- Address [4]byte /* in_addr */
+- Ifindex int32
+-}
+-
+-type IPv6Mreq struct {
+- Multiaddr [16]byte /* in6_addr */
+- Interface uint32
+-}
+-
+-type PacketMreq struct {
+- Ifindex int32
+- Type uint16
+- Alen uint16
+- Address [8]uint8
+-}
+-
+ type Msghdr struct {
+ Name *byte
+ Namelen uint32
+- Pad_cgo_0 [4]byte
+ Iov *Iovec
+ Iovlen uint64
+ Control *byte
+ Controllen uint64
+ Flags int32
+- Pad_cgo_1 [4]byte
++ _ [4]byte
+ }
+
+ type Cmsghdr struct {
+@@ -313,277 +155,16 @@ type Cmsghdr struct {
+ Type int32
+ }
+
+-type Inet4Pktinfo struct {
+- Ifindex int32
+- Spec_dst [4]byte /* in_addr */
+- Addr [4]byte /* in_addr */
+-}
+-
+-type Inet6Pktinfo struct {
+- Addr [16]byte /* in6_addr */
+- Ifindex uint32
+-}
+-
+-type IPv6MTUInfo struct {
+- Addr RawSockaddrInet6
+- Mtu uint32
+-}
+-
+-type ICMPv6Filter struct {
+- Data [8]uint32
+-}
+-
+-type Ucred struct {
+- Pid int32
+- Uid uint32
+- Gid uint32
+-}
+-
+-type TCPInfo struct {
+- State uint8
+- Ca_state uint8
+- Retransmits uint8
+- Probes uint8
+- Backoff uint8
+- Options uint8
+- Pad_cgo_0 [2]byte
+- Rto uint32
+- Ato uint32
+- Snd_mss uint32
+- Rcv_mss uint32
+- Unacked uint32
+- Sacked uint32
+- Lost uint32
+- Retrans uint32
+- Fackets uint32
+- Last_data_sent uint32
+- Last_ack_sent uint32
+- Last_data_recv uint32
+- Last_ack_recv uint32
+- Pmtu uint32
+- Rcv_ssthresh uint32
+- Rtt uint32
+- Rttvar uint32
+- Snd_ssthresh uint32
+- Snd_cwnd uint32
+- Advmss uint32
+- Reordering uint32
+- Rcv_rtt uint32
+- Rcv_space uint32
+- Total_retrans uint32
+-}
+-
+ const (
+- SizeofSockaddrInet4 = 0x10
+- SizeofSockaddrInet6 = 0x1c
+- SizeofSockaddrAny = 0x70
+- SizeofSockaddrUnix = 0x6e
+- SizeofSockaddrLinklayer = 0x14
+- SizeofSockaddrNetlink = 0xc
+- SizeofSockaddrHCI = 0x6
+- SizeofSockaddrCAN = 0x10
+- SizeofSockaddrALG = 0x58
+- SizeofSockaddrVM = 0x10
+- SizeofLinger = 0x8
+- SizeofIovec = 0x10
+- SizeofIPMreq = 0x8
+- SizeofIPMreqn = 0xc
+- SizeofIPv6Mreq = 0x14
+- SizeofPacketMreq = 0x10
+- SizeofMsghdr = 0x38
+- SizeofCmsghdr = 0x10
+- SizeofInet4Pktinfo = 0xc
+- SizeofInet6Pktinfo = 0x14
+- SizeofIPv6MTUInfo = 0x20
+- SizeofICMPv6Filter = 0x20
+- SizeofUcred = 0xc
+- SizeofTCPInfo = 0x68
++ SizeofIovec = 0x10
++ SizeofMsghdr = 0x38
++ SizeofCmsghdr = 0x10
+ )
+
+ const (
+- IFA_UNSPEC = 0x0
+- IFA_ADDRESS = 0x1
+- IFA_LOCAL = 0x2
+- IFA_LABEL = 0x3
+- IFA_BROADCAST = 0x4
+- IFA_ANYCAST = 0x5
+- IFA_CACHEINFO = 0x6
+- IFA_MULTICAST = 0x7
+- IFLA_UNSPEC = 0x0
+- IFLA_ADDRESS = 0x1
+- IFLA_BROADCAST = 0x2
+- IFLA_IFNAME = 0x3
+- IFLA_MTU = 0x4
+- IFLA_LINK = 0x5
+- IFLA_QDISC = 0x6
+- IFLA_STATS = 0x7
+- IFLA_COST = 0x8
+- IFLA_PRIORITY = 0x9
+- IFLA_MASTER = 0xa
+- IFLA_WIRELESS = 0xb
+- IFLA_PROTINFO = 0xc
+- IFLA_TXQLEN = 0xd
+- IFLA_MAP = 0xe
+- IFLA_WEIGHT = 0xf
+- IFLA_OPERSTATE = 0x10
+- IFLA_LINKMODE = 0x11
+- IFLA_LINKINFO = 0x12
+- IFLA_NET_NS_PID = 0x13
+- IFLA_IFALIAS = 0x14
+- IFLA_MAX = 0x2b
+- RT_SCOPE_UNIVERSE = 0x0
+- RT_SCOPE_SITE = 0xc8
+- RT_SCOPE_LINK = 0xfd
+- RT_SCOPE_HOST = 0xfe
+- RT_SCOPE_NOWHERE = 0xff
+- RT_TABLE_UNSPEC = 0x0
+- RT_TABLE_COMPAT = 0xfc
+- RT_TABLE_DEFAULT = 0xfd
+- RT_TABLE_MAIN = 0xfe
+- RT_TABLE_LOCAL = 0xff
+- RT_TABLE_MAX = 0xffffffff
+- RTA_UNSPEC = 0x0
+- RTA_DST = 0x1
+- RTA_SRC = 0x2
+- RTA_IIF = 0x3
+- RTA_OIF = 0x4
+- RTA_GATEWAY = 0x5
+- RTA_PRIORITY = 0x6
+- RTA_PREFSRC = 0x7
+- RTA_METRICS = 0x8
+- RTA_MULTIPATH = 0x9
+- RTA_FLOW = 0xb
+- RTA_CACHEINFO = 0xc
+- RTA_TABLE = 0xf
+- RTN_UNSPEC = 0x0
+- RTN_UNICAST = 0x1
+- RTN_LOCAL = 0x2
+- RTN_BROADCAST = 0x3
+- RTN_ANYCAST = 0x4
+- RTN_MULTICAST = 0x5
+- RTN_BLACKHOLE = 0x6
+- RTN_UNREACHABLE = 0x7
+- RTN_PROHIBIT = 0x8
+- RTN_THROW = 0x9
+- RTN_NAT = 0xa
+- RTN_XRESOLVE = 0xb
+- RTNLGRP_NONE = 0x0
+- RTNLGRP_LINK = 0x1
+- RTNLGRP_NOTIFY = 0x2
+- RTNLGRP_NEIGH = 0x3
+- RTNLGRP_TC = 0x4
+- RTNLGRP_IPV4_IFADDR = 0x5
+- RTNLGRP_IPV4_MROUTE = 0x6
+- RTNLGRP_IPV4_ROUTE = 0x7
+- RTNLGRP_IPV4_RULE = 0x8
+- RTNLGRP_IPV6_IFADDR = 0x9
+- RTNLGRP_IPV6_MROUTE = 0xa
+- RTNLGRP_IPV6_ROUTE = 0xb
+- RTNLGRP_IPV6_IFINFO = 0xc
+- RTNLGRP_IPV6_PREFIX = 0x12
+- RTNLGRP_IPV6_RULE = 0x13
+- RTNLGRP_ND_USEROPT = 0x14
+- SizeofNlMsghdr = 0x10
+- SizeofNlMsgerr = 0x14
+- SizeofRtGenmsg = 0x1
+- SizeofNlAttr = 0x4
+- SizeofRtAttr = 0x4
+- SizeofIfInfomsg = 0x10
+- SizeofIfAddrmsg = 0x8
+- SizeofRtMsg = 0xc
+- SizeofRtNexthop = 0x8
++ SizeofSockFprog = 0x10
+ )
+
+-type NlMsghdr struct {
+- Len uint32
+- Type uint16
+- Flags uint16
+- Seq uint32
+- Pid uint32
+-}
+-
+-type NlMsgerr struct {
+- Error int32
+- Msg NlMsghdr
+-}
+-
+-type RtGenmsg struct {
+- Family uint8
+-}
+-
+-type NlAttr struct {
+- Len uint16
+- Type uint16
+-}
+-
+-type RtAttr struct {
+- Len uint16
+- Type uint16
+-}
+-
+-type IfInfomsg struct {
+- Family uint8
+- X__ifi_pad uint8
+- Type uint16
+- Index int32
+- Flags uint32
+- Change uint32
+-}
+-
+-type IfAddrmsg struct {
+- Family uint8
+- Prefixlen uint8
+- Flags uint8
+- Scope uint8
+- Index uint32
+-}
+-
+-type RtMsg struct {
+- Family uint8
+- Dst_len uint8
+- Src_len uint8
+- Tos uint8
+- Table uint8
+- Protocol uint8
+- Scope uint8
+- Type uint8
+- Flags uint32
+-}
+-
+-type RtNexthop struct {
+- Len uint16
+- Flags uint8
+- Hops uint8
+- Ifindex int32
+-}
+-
+-const (
+- SizeofSockFilter = 0x8
+- SizeofSockFprog = 0x10
+-)
+-
+-type SockFilter struct {
+- Code uint16
+- Jt uint8
+- Jf uint8
+- K uint32
+-}
+-
+-type SockFprog struct {
+- Len uint16
+- Pad_cgo_0 [6]byte
+- Filter *SockFilter
+-}
+-
+-type InotifyEvent struct {
+- Wd int32
+- Mask uint32
+- Cookie uint32
+- Len uint32
+-}
+-
+-const SizeofInotifyEvent = 0x10
+-
+ type PtraceRegs struct {
+ Regs [31]uint64
+ Sp uint64
+@@ -606,30 +187,19 @@ type Sysinfo_t struct {
+ Freeswap uint64
+ Procs uint16
+ Pad uint16
+- Pad_cgo_0 [4]byte
+ Totalhigh uint64
+ Freehigh uint64
+ Unit uint32
+- X_f [0]int8
+- Pad_cgo_1 [4]byte
+-}
+-
+-type Utsname struct {
+- Sysname [65]int8
+- Nodename [65]int8
+- Release [65]int8
+- Version [65]int8
+- Machine [65]int8
+- Domainname [65]int8
++ _ [0]int8
++ _ [4]byte
+ }
+
+ type Ustat_t struct {
+- Tfree int32
+- Pad_cgo_0 [4]byte
+- Tinode uint64
+- Fname [6]int8
+- Fpack [6]int8
+- Pad_cgo_1 [4]byte
++ Tfree int32
++ Tinode uint64
++ Fname [6]int8
++ Fpack [6]int8
++ _ [4]byte
+ }
+
+ type EpollEvent struct {
+@@ -640,37 +210,14 @@ type EpollEvent struct {
+ }
+
+ const (
+- AT_FDCWD = -0x64
+- AT_REMOVEDIR = 0x200
+- AT_SYMLINK_FOLLOW = 0x400
+- AT_SYMLINK_NOFOLLOW = 0x100
+-)
+-
+-type PollFd struct {
+- Fd int32
+- Events int16
+- Revents int16
+-}
+-
+-const (
+- POLLIN = 0x1
+- POLLPRI = 0x2
+- POLLOUT = 0x4
+ POLLRDHUP = 0x2000
+- POLLERR = 0x8
+- POLLHUP = 0x10
+- POLLNVAL = 0x20
+ )
+
+ type Sigset_t struct {
+- X__val [16]uint64
++ Val [16]uint64
+ }
+
+-const RNDGETENTCNT = 0x80045200
+-
+-const PERF_IOC_FLAG_GROUP = 0x1
+-
+-const _SC_PAGESIZE = 0x1e
++const _C__NSIG = 0x41
+
+ type Termios struct {
+ Iflag uint32
+@@ -683,20 +230,11 @@ type Termios struct {
+ Ospeed uint32
+ }
+
+-type Winsize struct {
+- Row uint16
+- Col uint16
+- Xpixel uint16
+- Ypixel uint16
+-}
+-
+ type Taskstats struct {
+ Version uint16
+- Pad_cgo_0 [2]byte
+ Ac_exitcode uint32
+ Ac_flag uint8
+ Ac_nice uint8
+- Pad_cgo_1 [6]byte
+ Cpu_count uint64
+ Cpu_delay_total uint64
+ Blkio_count uint64
+@@ -708,13 +246,12 @@ type Taskstats struct {
+ Ac_comm [32]int8
+ Ac_sched uint8
+ Ac_pad [3]uint8
+- Pad_cgo_2 [4]byte
++ _ [4]byte
+ Ac_uid uint32
+ Ac_gid uint32
+ Ac_pid uint32
+ Ac_ppid uint32
+ Ac_btime uint32
+- Pad_cgo_3 [4]byte
+ Ac_etime uint64
+ Ac_utime uint64
+ Ac_stime uint64
+@@ -738,55 +275,319 @@ type Taskstats struct {
+ Cpu_scaled_run_real_total uint64
+ Freepages_count uint64
+ Freepages_delay_total uint64
++ Thrashing_count uint64
++ Thrashing_delay_total uint64
++ Ac_btime64 uint64
+ }
+
++type cpuMask uint64
++
+ const (
+- TASKSTATS_CMD_UNSPEC = 0x0
+- TASKSTATS_CMD_GET = 0x1
+- TASKSTATS_CMD_NEW = 0x2
+- TASKSTATS_TYPE_UNSPEC = 0x0
+- TASKSTATS_TYPE_PID = 0x1
+- TASKSTATS_TYPE_TGID = 0x2
+- TASKSTATS_TYPE_STATS = 0x3
+- TASKSTATS_TYPE_AGGR_PID = 0x4
+- TASKSTATS_TYPE_AGGR_TGID = 0x5
+- TASKSTATS_TYPE_NULL = 0x6
+- TASKSTATS_CMD_ATTR_UNSPEC = 0x0
+- TASKSTATS_CMD_ATTR_PID = 0x1
+- TASKSTATS_CMD_ATTR_TGID = 0x2
+- TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3
+- TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4
++ _NCPUBITS = 0x40
+ )
+
+-type Genlmsghdr struct {
+- Cmd uint8
+- Version uint8
+- Reserved uint16
++const (
++ CBitFieldMaskBit0 = 0x1
++ CBitFieldMaskBit1 = 0x2
++ CBitFieldMaskBit2 = 0x4
++ CBitFieldMaskBit3 = 0x8
++ CBitFieldMaskBit4 = 0x10
++ CBitFieldMaskBit5 = 0x20
++ CBitFieldMaskBit6 = 0x40
++ CBitFieldMaskBit7 = 0x80
++ CBitFieldMaskBit8 = 0x100
++ CBitFieldMaskBit9 = 0x200
++ CBitFieldMaskBit10 = 0x400
++ CBitFieldMaskBit11 = 0x800
++ CBitFieldMaskBit12 = 0x1000
++ CBitFieldMaskBit13 = 0x2000
++ CBitFieldMaskBit14 = 0x4000
++ CBitFieldMaskBit15 = 0x8000
++ CBitFieldMaskBit16 = 0x10000
++ CBitFieldMaskBit17 = 0x20000
++ CBitFieldMaskBit18 = 0x40000
++ CBitFieldMaskBit19 = 0x80000
++ CBitFieldMaskBit20 = 0x100000
++ CBitFieldMaskBit21 = 0x200000
++ CBitFieldMaskBit22 = 0x400000
++ CBitFieldMaskBit23 = 0x800000
++ CBitFieldMaskBit24 = 0x1000000
++ CBitFieldMaskBit25 = 0x2000000
++ CBitFieldMaskBit26 = 0x4000000
++ CBitFieldMaskBit27 = 0x8000000
++ CBitFieldMaskBit28 = 0x10000000
++ CBitFieldMaskBit29 = 0x20000000
++ CBitFieldMaskBit30 = 0x40000000
++ CBitFieldMaskBit31 = 0x80000000
++ CBitFieldMaskBit32 = 0x100000000
++ CBitFieldMaskBit33 = 0x200000000
++ CBitFieldMaskBit34 = 0x400000000
++ CBitFieldMaskBit35 = 0x800000000
++ CBitFieldMaskBit36 = 0x1000000000
++ CBitFieldMaskBit37 = 0x2000000000
++ CBitFieldMaskBit38 = 0x4000000000
++ CBitFieldMaskBit39 = 0x8000000000
++ CBitFieldMaskBit40 = 0x10000000000
++ CBitFieldMaskBit41 = 0x20000000000
++ CBitFieldMaskBit42 = 0x40000000000
++ CBitFieldMaskBit43 = 0x80000000000
++ CBitFieldMaskBit44 = 0x100000000000
++ CBitFieldMaskBit45 = 0x200000000000
++ CBitFieldMaskBit46 = 0x400000000000
++ CBitFieldMaskBit47 = 0x800000000000
++ CBitFieldMaskBit48 = 0x1000000000000
++ CBitFieldMaskBit49 = 0x2000000000000
++ CBitFieldMaskBit50 = 0x4000000000000
++ CBitFieldMaskBit51 = 0x8000000000000
++ CBitFieldMaskBit52 = 0x10000000000000
++ CBitFieldMaskBit53 = 0x20000000000000
++ CBitFieldMaskBit54 = 0x40000000000000
++ CBitFieldMaskBit55 = 0x80000000000000
++ CBitFieldMaskBit56 = 0x100000000000000
++ CBitFieldMaskBit57 = 0x200000000000000
++ CBitFieldMaskBit58 = 0x400000000000000
++ CBitFieldMaskBit59 = 0x800000000000000
++ CBitFieldMaskBit60 = 0x1000000000000000
++ CBitFieldMaskBit61 = 0x2000000000000000
++ CBitFieldMaskBit62 = 0x4000000000000000
++ CBitFieldMaskBit63 = 0x8000000000000000
++)
++
++type SockaddrStorage struct {
++ Family uint16
++ _ [118]int8
++ _ uint64
++}
++
++type HDGeometry struct {
++ Heads uint8
++ Sectors uint8
++ Cylinders uint16
++ Start uint64
++}
++
++type Statfs_t struct {
++ Type int64
++ Bsize int64
++ Blocks uint64
++ Bfree uint64
++ Bavail uint64
++ Files uint64
++ Ffree uint64
++ Fsid Fsid
++ Namelen int64
++ Frsize int64
++ Flags int64
++ Spare [4]int64
++}
++
++type TpacketHdr struct {
++ Status uint64
++ Len uint32
++ Snaplen uint32
++ Mac uint16
++ Net uint16
++ Sec uint32
++ Usec uint32
++ _ [4]byte
+ }
+
+ const (
+- CTRL_CMD_UNSPEC = 0x0
+- CTRL_CMD_NEWFAMILY = 0x1
+- CTRL_CMD_DELFAMILY = 0x2
+- CTRL_CMD_GETFAMILY = 0x3
+- CTRL_CMD_NEWOPS = 0x4
+- CTRL_CMD_DELOPS = 0x5
+- CTRL_CMD_GETOPS = 0x6
+- CTRL_CMD_NEWMCAST_GRP = 0x7
+- CTRL_CMD_DELMCAST_GRP = 0x8
+- CTRL_CMD_GETMCAST_GRP = 0x9
+- CTRL_ATTR_UNSPEC = 0x0
+- CTRL_ATTR_FAMILY_ID = 0x1
+- CTRL_ATTR_FAMILY_NAME = 0x2
+- CTRL_ATTR_VERSION = 0x3
+- CTRL_ATTR_HDRSIZE = 0x4
+- CTRL_ATTR_MAXATTR = 0x5
+- CTRL_ATTR_OPS = 0x6
+- CTRL_ATTR_MCAST_GROUPS = 0x7
+- CTRL_ATTR_OP_UNSPEC = 0x0
+- CTRL_ATTR_OP_ID = 0x1
+- CTRL_ATTR_OP_FLAGS = 0x2
+- CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0
+- CTRL_ATTR_MCAST_GRP_NAME = 0x1
+- CTRL_ATTR_MCAST_GRP_ID = 0x2
++ SizeofTpacketHdr = 0x20
+ )
++
++type RTCPLLInfo struct {
++ Ctrl int32
++ Value int32
++ Max int32
++ Min int32
++ Posmult int32
++ Negmult int32
++ Clock int64
++}
++
++type BlkpgPartition struct {
++ Start int64
++ Length int64
++ Pno int32
++ Devname [64]uint8
++ Volname [64]uint8
++ _ [4]byte
++}
++
++const (
++ BLKPG = 0x1269
++)
++
++type XDPUmemReg struct {
++ Addr uint64
++ Len uint64
++ Size uint32
++ Headroom uint32
++ Flags uint32
++ _ [4]byte
++}
++
++type CryptoUserAlg struct {
++ Name [64]int8
++ Driver_name [64]int8
++ Module_name [64]int8
++ Type uint32
++ Mask uint32
++ Refcnt uint32
++ Flags uint32
++}
++
++type CryptoStatAEAD struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatAKCipher struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Verify_cnt uint64
++ Sign_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatCipher struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatCompress struct {
++ Type [64]int8
++ Compress_cnt uint64
++ Compress_tlen uint64
++ Decompress_cnt uint64
++ Decompress_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatHash struct {
++ Type [64]int8
++ Hash_cnt uint64
++ Hash_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatKPP struct {
++ Type [64]int8
++ Setsecret_cnt uint64
++ Generate_public_key_cnt uint64
++ Compute_shared_secret_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatRNG struct {
++ Type [64]int8
++ Generate_cnt uint64
++ Generate_tlen uint64
++ Seed_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatLarval struct {
++ Type [64]int8
++}
++
++type CryptoReportLarval struct {
++ Type [64]int8
++}
++
++type CryptoReportHash struct {
++ Type [64]int8
++ Blocksize uint32
++ Digestsize uint32
++}
++
++type CryptoReportCipher struct {
++ Type [64]int8
++ Blocksize uint32
++ Min_keysize uint32
++ Max_keysize uint32
++}
++
++type CryptoReportBlkCipher struct {
++ Type [64]int8
++ Geniv [64]int8
++ Blocksize uint32
++ Min_keysize uint32
++ Max_keysize uint32
++ Ivsize uint32
++}
++
++type CryptoReportAEAD struct {
++ Type [64]int8
++ Geniv [64]int8
++ Blocksize uint32
++ Maxauthsize uint32
++ Ivsize uint32
++}
++
++type CryptoReportComp struct {
++ Type [64]int8
++}
++
++type CryptoReportRNG struct {
++ Type [64]int8
++ Seedsize uint32
++}
++
++type CryptoReportAKCipher struct {
++ Type [64]int8
++}
++
++type CryptoReportKPP struct {
++ Type [64]int8
++}
++
++type CryptoReportAcomp struct {
++ Type [64]int8
++}
++
++type LoopInfo struct {
++ Number int32
++ Device uint32
++ Inode uint64
++ Rdevice uint32
++ Offset int32
++ Encrypt_type int32
++ Encrypt_key_size int32
++ Flags int32
++ Name [64]int8
++ Encrypt_key [32]uint8
++ Init [2]uint64
++ Reserved [4]int8
++ _ [4]byte
++}
++
++type TIPCSubscr struct {
++ Seq TIPCServiceRange
++ Timeout uint32
++ Filter uint32
++ Handle [8]int8
++}
++
++type TIPCSIOCLNReq struct {
++ Peer uint32
++ Id uint32
++ Linkname [68]int8
++}
++
++type TIPCSIOCNodeIDReq struct {
++ Peer uint32
++ Id [16]int8
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go
+index 8fa6603f..aaca03dd 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go
+@@ -6,19 +6,12 @@
+ package unix
+
+ const (
+- sizeofPtr = 0x4
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x4
+- sizeofLongLong = 0x8
+- PathMax = 0x1000
++ SizeofPtr = 0x4
++ SizeofLong = 0x4
+ )
+
+ type (
+- _C_short int16
+- _C_int int32
+- _C_long int32
+- _C_long_long int64
++ _C_long int32
+ )
+
+ type Timespec struct {
+@@ -52,7 +45,7 @@ type Timex struct {
+ Errcnt int32
+ Stbcnt int32
+ Tai int32
+- Pad_cgo_0 [44]byte
++ _ [44]byte
+ }
+
+ type Time_t int32
+@@ -88,13 +81,6 @@ type Rusage struct {
+ Nivcsw int32
+ }
+
+-type Rlimit struct {
+- Cur uint64
+- Max uint64
+-}
+-
+-type _Gid_t uint32
+-
+ type Stat_t struct {
+ Dev uint32
+ Pad1 [3]int32
+@@ -115,141 +101,30 @@ type Stat_t struct {
+ Pad5 [14]int32
+ }
+
+-type Statfs_t struct {
+- Type int32
+- Bsize int32
+- Frsize int32
+- Pad_cgo_0 [4]byte
+- Blocks uint64
+- Bfree uint64
+- Files uint64
+- Ffree uint64
+- Bavail uint64
+- Fsid Fsid
+- Namelen int32
+- Flags int32
+- Spare [5]int32
+- Pad_cgo_1 [4]byte
+-}
+-
+ type Dirent struct {
+- Ino uint64
+- Off int64
+- Reclen uint16
+- Type uint8
+- Name [256]int8
+- Pad_cgo_0 [5]byte
+-}
+-
+-type Fsid struct {
+- X__val [2]int32
++ Ino uint64
++ Off int64
++ Reclen uint16
++ Type uint8
++ Name [256]int8
++ _ [5]byte
+ }
+
+ type Flock_t struct {
+- Type int16
+- Whence int16
+- Pad_cgo_0 [4]byte
+- Start int64
+- Len int64
+- Pid int32
+- Pad_cgo_1 [4]byte
+-}
+-
+-type FscryptPolicy struct {
+- Version uint8
+- Contents_encryption_mode uint8
+- Filenames_encryption_mode uint8
+- Flags uint8
+- Master_key_descriptor [8]uint8
+-}
+-
+-type FscryptKey struct {
+- Mode uint32
+- Raw [64]uint8
+- Size uint32
+-}
+-
+-type KeyctlDHParams struct {
+- Private int32
+- Prime int32
+- Base int32
++ Type int16
++ Whence int16
++ _ [4]byte
++ Start int64
++ Len int64
++ Pid int32
++ _ [4]byte
+ }
+
+ const (
+- FADV_NORMAL = 0x0
+- FADV_RANDOM = 0x1
+- FADV_SEQUENTIAL = 0x2
+- FADV_WILLNEED = 0x3
+- FADV_DONTNEED = 0x4
+- FADV_NOREUSE = 0x5
++ FADV_DONTNEED = 0x4
++ FADV_NOREUSE = 0x5
+ )
+
+-type RawSockaddrInet4 struct {
+- Family uint16
+- Port uint16
+- Addr [4]byte /* in_addr */
+- Zero [8]uint8
+-}
+-
+-type RawSockaddrInet6 struct {
+- Family uint16
+- Port uint16
+- Flowinfo uint32
+- Addr [16]byte /* in6_addr */
+- Scope_id uint32
+-}
+-
+-type RawSockaddrUnix struct {
+- Family uint16
+- Path [108]int8
+-}
+-
+-type RawSockaddrLinklayer struct {
+- Family uint16
+- Protocol uint16
+- Ifindex int32
+- Hatype uint16
+- Pkttype uint8
+- Halen uint8
+- Addr [8]uint8
+-}
+-
+-type RawSockaddrNetlink struct {
+- Family uint16
+- Pad uint16
+- Pid uint32
+- Groups uint32
+-}
+-
+-type RawSockaddrHCI struct {
+- Family uint16
+- Dev uint16
+- Channel uint16
+-}
+-
+-type RawSockaddrCAN struct {
+- Family uint16
+- Pad_cgo_0 [2]byte
+- Ifindex int32
+- Addr [8]byte
+-}
+-
+-type RawSockaddrALG struct {
+- Family uint16
+- Type [14]uint8
+- Feat uint32
+- Mask uint32
+- Name [64]uint8
+-}
+-
+-type RawSockaddrVM struct {
+- Family uint16
+- Reserved1 uint16
+- Port uint32
+- Cid uint32
+- Zero [4]uint8
+-}
+-
+ type RawSockaddr struct {
+ Family uint16
+ Data [14]int8
+@@ -260,41 +135,11 @@ type RawSockaddrAny struct {
+ Pad [96]int8
+ }
+
+-type _Socklen uint32
+-
+-type Linger struct {
+- Onoff int32
+- Linger int32
+-}
+-
+ type Iovec struct {
+ Base *byte
+ Len uint32
+ }
+
+-type IPMreq struct {
+- Multiaddr [4]byte /* in_addr */
+- Interface [4]byte /* in_addr */
+-}
+-
+-type IPMreqn struct {
+- Multiaddr [4]byte /* in_addr */
+- Address [4]byte /* in_addr */
+- Ifindex int32
+-}
+-
+-type IPv6Mreq struct {
+- Multiaddr [16]byte /* in6_addr */
+- Interface uint32
+-}
+-
+-type PacketMreq struct {
+- Ifindex int32
+- Type uint16
+- Alen uint16
+- Address [8]uint8
+-}
+-
+ type Msghdr struct {
+ Name *byte
+ Namelen uint32
+@@ -311,277 +156,16 @@ type Cmsghdr struct {
+ Type int32
+ }
+
+-type Inet4Pktinfo struct {
+- Ifindex int32
+- Spec_dst [4]byte /* in_addr */
+- Addr [4]byte /* in_addr */
+-}
+-
+-type Inet6Pktinfo struct {
+- Addr [16]byte /* in6_addr */
+- Ifindex uint32
+-}
+-
+-type IPv6MTUInfo struct {
+- Addr RawSockaddrInet6
+- Mtu uint32
+-}
+-
+-type ICMPv6Filter struct {
+- Data [8]uint32
+-}
+-
+-type Ucred struct {
+- Pid int32
+- Uid uint32
+- Gid uint32
+-}
+-
+-type TCPInfo struct {
+- State uint8
+- Ca_state uint8
+- Retransmits uint8
+- Probes uint8
+- Backoff uint8
+- Options uint8
+- Pad_cgo_0 [2]byte
+- Rto uint32
+- Ato uint32
+- Snd_mss uint32
+- Rcv_mss uint32
+- Unacked uint32
+- Sacked uint32
+- Lost uint32
+- Retrans uint32
+- Fackets uint32
+- Last_data_sent uint32
+- Last_ack_sent uint32
+- Last_data_recv uint32
+- Last_ack_recv uint32
+- Pmtu uint32
+- Rcv_ssthresh uint32
+- Rtt uint32
+- Rttvar uint32
+- Snd_ssthresh uint32
+- Snd_cwnd uint32
+- Advmss uint32
+- Reordering uint32
+- Rcv_rtt uint32
+- Rcv_space uint32
+- Total_retrans uint32
+-}
+-
+ const (
+- SizeofSockaddrInet4 = 0x10
+- SizeofSockaddrInet6 = 0x1c
+- SizeofSockaddrAny = 0x70
+- SizeofSockaddrUnix = 0x6e
+- SizeofSockaddrLinklayer = 0x14
+- SizeofSockaddrNetlink = 0xc
+- SizeofSockaddrHCI = 0x6
+- SizeofSockaddrCAN = 0x10
+- SizeofSockaddrALG = 0x58
+- SizeofSockaddrVM = 0x10
+- SizeofLinger = 0x8
+- SizeofIovec = 0x8
+- SizeofIPMreq = 0x8
+- SizeofIPMreqn = 0xc
+- SizeofIPv6Mreq = 0x14
+- SizeofPacketMreq = 0x10
+- SizeofMsghdr = 0x1c
+- SizeofCmsghdr = 0xc
+- SizeofInet4Pktinfo = 0xc
+- SizeofInet6Pktinfo = 0x14
+- SizeofIPv6MTUInfo = 0x20
+- SizeofICMPv6Filter = 0x20
+- SizeofUcred = 0xc
+- SizeofTCPInfo = 0x68
++ SizeofIovec = 0x8
++ SizeofMsghdr = 0x1c
++ SizeofCmsghdr = 0xc
+ )
+
+ const (
+- IFA_UNSPEC = 0x0
+- IFA_ADDRESS = 0x1
+- IFA_LOCAL = 0x2
+- IFA_LABEL = 0x3
+- IFA_BROADCAST = 0x4
+- IFA_ANYCAST = 0x5
+- IFA_CACHEINFO = 0x6
+- IFA_MULTICAST = 0x7
+- IFLA_UNSPEC = 0x0
+- IFLA_ADDRESS = 0x1
+- IFLA_BROADCAST = 0x2
+- IFLA_IFNAME = 0x3
+- IFLA_MTU = 0x4
+- IFLA_LINK = 0x5
+- IFLA_QDISC = 0x6
+- IFLA_STATS = 0x7
+- IFLA_COST = 0x8
+- IFLA_PRIORITY = 0x9
+- IFLA_MASTER = 0xa
+- IFLA_WIRELESS = 0xb
+- IFLA_PROTINFO = 0xc
+- IFLA_TXQLEN = 0xd
+- IFLA_MAP = 0xe
+- IFLA_WEIGHT = 0xf
+- IFLA_OPERSTATE = 0x10
+- IFLA_LINKMODE = 0x11
+- IFLA_LINKINFO = 0x12
+- IFLA_NET_NS_PID = 0x13
+- IFLA_IFALIAS = 0x14
+- IFLA_MAX = 0x2b
+- RT_SCOPE_UNIVERSE = 0x0
+- RT_SCOPE_SITE = 0xc8
+- RT_SCOPE_LINK = 0xfd
+- RT_SCOPE_HOST = 0xfe
+- RT_SCOPE_NOWHERE = 0xff
+- RT_TABLE_UNSPEC = 0x0
+- RT_TABLE_COMPAT = 0xfc
+- RT_TABLE_DEFAULT = 0xfd
+- RT_TABLE_MAIN = 0xfe
+- RT_TABLE_LOCAL = 0xff
+- RT_TABLE_MAX = 0xffffffff
+- RTA_UNSPEC = 0x0
+- RTA_DST = 0x1
+- RTA_SRC = 0x2
+- RTA_IIF = 0x3
+- RTA_OIF = 0x4
+- RTA_GATEWAY = 0x5
+- RTA_PRIORITY = 0x6
+- RTA_PREFSRC = 0x7
+- RTA_METRICS = 0x8
+- RTA_MULTIPATH = 0x9
+- RTA_FLOW = 0xb
+- RTA_CACHEINFO = 0xc
+- RTA_TABLE = 0xf
+- RTN_UNSPEC = 0x0
+- RTN_UNICAST = 0x1
+- RTN_LOCAL = 0x2
+- RTN_BROADCAST = 0x3
+- RTN_ANYCAST = 0x4
+- RTN_MULTICAST = 0x5
+- RTN_BLACKHOLE = 0x6
+- RTN_UNREACHABLE = 0x7
+- RTN_PROHIBIT = 0x8
+- RTN_THROW = 0x9
+- RTN_NAT = 0xa
+- RTN_XRESOLVE = 0xb
+- RTNLGRP_NONE = 0x0
+- RTNLGRP_LINK = 0x1
+- RTNLGRP_NOTIFY = 0x2
+- RTNLGRP_NEIGH = 0x3
+- RTNLGRP_TC = 0x4
+- RTNLGRP_IPV4_IFADDR = 0x5
+- RTNLGRP_IPV4_MROUTE = 0x6
+- RTNLGRP_IPV4_ROUTE = 0x7
+- RTNLGRP_IPV4_RULE = 0x8
+- RTNLGRP_IPV6_IFADDR = 0x9
+- RTNLGRP_IPV6_MROUTE = 0xa
+- RTNLGRP_IPV6_ROUTE = 0xb
+- RTNLGRP_IPV6_IFINFO = 0xc
+- RTNLGRP_IPV6_PREFIX = 0x12
+- RTNLGRP_IPV6_RULE = 0x13
+- RTNLGRP_ND_USEROPT = 0x14
+- SizeofNlMsghdr = 0x10
+- SizeofNlMsgerr = 0x14
+- SizeofRtGenmsg = 0x1
+- SizeofNlAttr = 0x4
+- SizeofRtAttr = 0x4
+- SizeofIfInfomsg = 0x10
+- SizeofIfAddrmsg = 0x8
+- SizeofRtMsg = 0xc
+- SizeofRtNexthop = 0x8
++ SizeofSockFprog = 0x8
+ )
+
+-type NlMsghdr struct {
+- Len uint32
+- Type uint16
+- Flags uint16
+- Seq uint32
+- Pid uint32
+-}
+-
+-type NlMsgerr struct {
+- Error int32
+- Msg NlMsghdr
+-}
+-
+-type RtGenmsg struct {
+- Family uint8
+-}
+-
+-type NlAttr struct {
+- Len uint16
+- Type uint16
+-}
+-
+-type RtAttr struct {
+- Len uint16
+- Type uint16
+-}
+-
+-type IfInfomsg struct {
+- Family uint8
+- X__ifi_pad uint8
+- Type uint16
+- Index int32
+- Flags uint32
+- Change uint32
+-}
+-
+-type IfAddrmsg struct {
+- Family uint8
+- Prefixlen uint8
+- Flags uint8
+- Scope uint8
+- Index uint32
+-}
+-
+-type RtMsg struct {
+- Family uint8
+- Dst_len uint8
+- Src_len uint8
+- Tos uint8
+- Table uint8
+- Protocol uint8
+- Scope uint8
+- Type uint8
+- Flags uint32
+-}
+-
+-type RtNexthop struct {
+- Len uint16
+- Flags uint8
+- Hops uint8
+- Ifindex int32
+-}
+-
+-const (
+- SizeofSockFilter = 0x8
+- SizeofSockFprog = 0x8
+-)
+-
+-type SockFilter struct {
+- Code uint16
+- Jt uint8
+- Jf uint8
+- K uint32
+-}
+-
+-type SockFprog struct {
+- Len uint16
+- Pad_cgo_0 [2]byte
+- Filter *SockFilter
+-}
+-
+-type InotifyEvent struct {
+- Wd int32
+- Mask uint32
+- Cookie uint32
+- Len uint32
+-}
+-
+-const SizeofInotifyEvent = 0x10
+-
+ type PtraceRegs struct {
+ Regs [32]uint64
+ Lo uint64
+@@ -610,16 +194,7 @@ type Sysinfo_t struct {
+ Totalhigh uint32
+ Freehigh uint32
+ Unit uint32
+- X_f [8]int8
+-}
+-
+-type Utsname struct {
+- Sysname [65]int8
+- Nodename [65]int8
+- Release [65]int8
+- Version [65]int8
+- Machine [65]int8
+- Domainname [65]int8
++ _ [8]int8
+ }
+
+ type Ustat_t struct {
+@@ -637,37 +212,14 @@ type EpollEvent struct {
+ }
+
+ const (
+- AT_FDCWD = -0x64
+- AT_REMOVEDIR = 0x200
+- AT_SYMLINK_FOLLOW = 0x400
+- AT_SYMLINK_NOFOLLOW = 0x100
+-)
+-
+-type PollFd struct {
+- Fd int32
+- Events int16
+- Revents int16
+-}
+-
+-const (
+- POLLIN = 0x1
+- POLLPRI = 0x2
+- POLLOUT = 0x4
+ POLLRDHUP = 0x2000
+- POLLERR = 0x8
+- POLLHUP = 0x10
+- POLLNVAL = 0x20
+ )
+
+ type Sigset_t struct {
+- X__val [32]uint32
++ Val [32]uint32
+ }
+
+-const RNDGETENTCNT = 0x40045200
+-
+-const PERF_IOC_FLAG_GROUP = 0x1
+-
+-const _SC_PAGESIZE = 0x1e
++const _C__NSIG = 0x80
+
+ type Termios struct {
+ Iflag uint32
+@@ -680,20 +232,12 @@ type Termios struct {
+ Ospeed uint32
+ }
+
+-type Winsize struct {
+- Row uint16
+- Col uint16
+- Xpixel uint16
+- Ypixel uint16
+-}
+-
+ type Taskstats struct {
+ Version uint16
+- Pad_cgo_0 [2]byte
+ Ac_exitcode uint32
+ Ac_flag uint8
+ Ac_nice uint8
+- Pad_cgo_1 [6]byte
++ _ [4]byte
+ Cpu_count uint64
+ Cpu_delay_total uint64
+ Blkio_count uint64
+@@ -705,13 +249,13 @@ type Taskstats struct {
+ Ac_comm [32]int8
+ Ac_sched uint8
+ Ac_pad [3]uint8
+- Pad_cgo_2 [4]byte
++ _ [4]byte
+ Ac_uid uint32
+ Ac_gid uint32
+ Ac_pid uint32
+ Ac_ppid uint32
+ Ac_btime uint32
+- Pad_cgo_3 [4]byte
++ _ [4]byte
+ Ac_etime uint64
+ Ac_utime uint64
+ Ac_stime uint64
+@@ -735,55 +279,319 @@ type Taskstats struct {
+ Cpu_scaled_run_real_total uint64
+ Freepages_count uint64
+ Freepages_delay_total uint64
++ Thrashing_count uint64
++ Thrashing_delay_total uint64
++ Ac_btime64 uint64
+ }
+
++type cpuMask uint32
++
++const (
++ _NCPUBITS = 0x20
++)
++
+ const (
+- TASKSTATS_CMD_UNSPEC = 0x0
+- TASKSTATS_CMD_GET = 0x1
+- TASKSTATS_CMD_NEW = 0x2
+- TASKSTATS_TYPE_UNSPEC = 0x0
+- TASKSTATS_TYPE_PID = 0x1
+- TASKSTATS_TYPE_TGID = 0x2
+- TASKSTATS_TYPE_STATS = 0x3
+- TASKSTATS_TYPE_AGGR_PID = 0x4
+- TASKSTATS_TYPE_AGGR_TGID = 0x5
+- TASKSTATS_TYPE_NULL = 0x6
+- TASKSTATS_CMD_ATTR_UNSPEC = 0x0
+- TASKSTATS_CMD_ATTR_PID = 0x1
+- TASKSTATS_CMD_ATTR_TGID = 0x2
+- TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3
+- TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4
++ CBitFieldMaskBit0 = 0x8000000000000000
++ CBitFieldMaskBit1 = 0x4000000000000000
++ CBitFieldMaskBit2 = 0x2000000000000000
++ CBitFieldMaskBit3 = 0x1000000000000000
++ CBitFieldMaskBit4 = 0x800000000000000
++ CBitFieldMaskBit5 = 0x400000000000000
++ CBitFieldMaskBit6 = 0x200000000000000
++ CBitFieldMaskBit7 = 0x100000000000000
++ CBitFieldMaskBit8 = 0x80000000000000
++ CBitFieldMaskBit9 = 0x40000000000000
++ CBitFieldMaskBit10 = 0x20000000000000
++ CBitFieldMaskBit11 = 0x10000000000000
++ CBitFieldMaskBit12 = 0x8000000000000
++ CBitFieldMaskBit13 = 0x4000000000000
++ CBitFieldMaskBit14 = 0x2000000000000
++ CBitFieldMaskBit15 = 0x1000000000000
++ CBitFieldMaskBit16 = 0x800000000000
++ CBitFieldMaskBit17 = 0x400000000000
++ CBitFieldMaskBit18 = 0x200000000000
++ CBitFieldMaskBit19 = 0x100000000000
++ CBitFieldMaskBit20 = 0x80000000000
++ CBitFieldMaskBit21 = 0x40000000000
++ CBitFieldMaskBit22 = 0x20000000000
++ CBitFieldMaskBit23 = 0x10000000000
++ CBitFieldMaskBit24 = 0x8000000000
++ CBitFieldMaskBit25 = 0x4000000000
++ CBitFieldMaskBit26 = 0x2000000000
++ CBitFieldMaskBit27 = 0x1000000000
++ CBitFieldMaskBit28 = 0x800000000
++ CBitFieldMaskBit29 = 0x400000000
++ CBitFieldMaskBit30 = 0x200000000
++ CBitFieldMaskBit31 = 0x100000000
++ CBitFieldMaskBit32 = 0x80000000
++ CBitFieldMaskBit33 = 0x40000000
++ CBitFieldMaskBit34 = 0x20000000
++ CBitFieldMaskBit35 = 0x10000000
++ CBitFieldMaskBit36 = 0x8000000
++ CBitFieldMaskBit37 = 0x4000000
++ CBitFieldMaskBit38 = 0x2000000
++ CBitFieldMaskBit39 = 0x1000000
++ CBitFieldMaskBit40 = 0x800000
++ CBitFieldMaskBit41 = 0x400000
++ CBitFieldMaskBit42 = 0x200000
++ CBitFieldMaskBit43 = 0x100000
++ CBitFieldMaskBit44 = 0x80000
++ CBitFieldMaskBit45 = 0x40000
++ CBitFieldMaskBit46 = 0x20000
++ CBitFieldMaskBit47 = 0x10000
++ CBitFieldMaskBit48 = 0x8000
++ CBitFieldMaskBit49 = 0x4000
++ CBitFieldMaskBit50 = 0x2000
++ CBitFieldMaskBit51 = 0x1000
++ CBitFieldMaskBit52 = 0x800
++ CBitFieldMaskBit53 = 0x400
++ CBitFieldMaskBit54 = 0x200
++ CBitFieldMaskBit55 = 0x100
++ CBitFieldMaskBit56 = 0x80
++ CBitFieldMaskBit57 = 0x40
++ CBitFieldMaskBit58 = 0x20
++ CBitFieldMaskBit59 = 0x10
++ CBitFieldMaskBit60 = 0x8
++ CBitFieldMaskBit61 = 0x4
++ CBitFieldMaskBit62 = 0x2
++ CBitFieldMaskBit63 = 0x1
+ )
+
+-type Genlmsghdr struct {
+- Cmd uint8
+- Version uint8
+- Reserved uint16
++type SockaddrStorage struct {
++ Family uint16
++ _ [122]int8
++ _ uint32
++}
++
++type HDGeometry struct {
++ Heads uint8
++ Sectors uint8
++ Cylinders uint16
++ Start uint32
++}
++
++type Statfs_t struct {
++ Type int32
++ Bsize int32
++ Frsize int32
++ _ [4]byte
++ Blocks uint64
++ Bfree uint64
++ Files uint64
++ Ffree uint64
++ Bavail uint64
++ Fsid Fsid
++ Namelen int32
++ Flags int32
++ Spare [5]int32
++ _ [4]byte
++}
++
++type TpacketHdr struct {
++ Status uint32
++ Len uint32
++ Snaplen uint32
++ Mac uint16
++ Net uint16
++ Sec uint32
++ Usec uint32
++}
++
++const (
++ SizeofTpacketHdr = 0x18
++)
++
++type RTCPLLInfo struct {
++ Ctrl int32
++ Value int32
++ Max int32
++ Min int32
++ Posmult int32
++ Negmult int32
++ Clock int32
++}
++
++type BlkpgPartition struct {
++ Start int64
++ Length int64
++ Pno int32
++ Devname [64]uint8
++ Volname [64]uint8
++ _ [4]byte
+ }
+
+ const (
+- CTRL_CMD_UNSPEC = 0x0
+- CTRL_CMD_NEWFAMILY = 0x1
+- CTRL_CMD_DELFAMILY = 0x2
+- CTRL_CMD_GETFAMILY = 0x3
+- CTRL_CMD_NEWOPS = 0x4
+- CTRL_CMD_DELOPS = 0x5
+- CTRL_CMD_GETOPS = 0x6
+- CTRL_CMD_NEWMCAST_GRP = 0x7
+- CTRL_CMD_DELMCAST_GRP = 0x8
+- CTRL_CMD_GETMCAST_GRP = 0x9
+- CTRL_ATTR_UNSPEC = 0x0
+- CTRL_ATTR_FAMILY_ID = 0x1
+- CTRL_ATTR_FAMILY_NAME = 0x2
+- CTRL_ATTR_VERSION = 0x3
+- CTRL_ATTR_HDRSIZE = 0x4
+- CTRL_ATTR_MAXATTR = 0x5
+- CTRL_ATTR_OPS = 0x6
+- CTRL_ATTR_MCAST_GROUPS = 0x7
+- CTRL_ATTR_OP_UNSPEC = 0x0
+- CTRL_ATTR_OP_ID = 0x1
+- CTRL_ATTR_OP_FLAGS = 0x2
+- CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0
+- CTRL_ATTR_MCAST_GRP_NAME = 0x1
+- CTRL_ATTR_MCAST_GRP_ID = 0x2
++ BLKPG = 0x20001269
+ )
++
++type XDPUmemReg struct {
++ Addr uint64
++ Len uint64
++ Size uint32
++ Headroom uint32
++ Flags uint32
++ _ [4]byte
++}
++
++type CryptoUserAlg struct {
++ Name [64]int8
++ Driver_name [64]int8
++ Module_name [64]int8
++ Type uint32
++ Mask uint32
++ Refcnt uint32
++ Flags uint32
++}
++
++type CryptoStatAEAD struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatAKCipher struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Verify_cnt uint64
++ Sign_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatCipher struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatCompress struct {
++ Type [64]int8
++ Compress_cnt uint64
++ Compress_tlen uint64
++ Decompress_cnt uint64
++ Decompress_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatHash struct {
++ Type [64]int8
++ Hash_cnt uint64
++ Hash_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatKPP struct {
++ Type [64]int8
++ Setsecret_cnt uint64
++ Generate_public_key_cnt uint64
++ Compute_shared_secret_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatRNG struct {
++ Type [64]int8
++ Generate_cnt uint64
++ Generate_tlen uint64
++ Seed_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatLarval struct {
++ Type [64]int8
++}
++
++type CryptoReportLarval struct {
++ Type [64]int8
++}
++
++type CryptoReportHash struct {
++ Type [64]int8
++ Blocksize uint32
++ Digestsize uint32
++}
++
++type CryptoReportCipher struct {
++ Type [64]int8
++ Blocksize uint32
++ Min_keysize uint32
++ Max_keysize uint32
++}
++
++type CryptoReportBlkCipher struct {
++ Type [64]int8
++ Geniv [64]int8
++ Blocksize uint32
++ Min_keysize uint32
++ Max_keysize uint32
++ Ivsize uint32
++}
++
++type CryptoReportAEAD struct {
++ Type [64]int8
++ Geniv [64]int8
++ Blocksize uint32
++ Maxauthsize uint32
++ Ivsize uint32
++}
++
++type CryptoReportComp struct {
++ Type [64]int8
++}
++
++type CryptoReportRNG struct {
++ Type [64]int8
++ Seedsize uint32
++}
++
++type CryptoReportAKCipher struct {
++ Type [64]int8
++}
++
++type CryptoReportKPP struct {
++ Type [64]int8
++}
++
++type CryptoReportAcomp struct {
++ Type [64]int8
++}
++
++type LoopInfo struct {
++ Number int32
++ Device uint32
++ Inode uint32
++ Rdevice uint32
++ Offset int32
++ Encrypt_type int32
++ Encrypt_key_size int32
++ Flags int32
++ Name [64]int8
++ Encrypt_key [32]uint8
++ Init [2]uint32
++ Reserved [4]int8
++}
++
++type TIPCSubscr struct {
++ Seq TIPCServiceRange
++ Timeout uint32
++ Filter uint32
++ Handle [8]int8
++}
++
++type TIPCSIOCLNReq struct {
++ Peer uint32
++ Id uint32
++ Linkname [68]int8
++}
++
++type TIPCSIOCNodeIDReq struct {
++ Peer uint32
++ Id [16]int8
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
+index 3e5fc625..2e7f3b8c 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
+@@ -6,19 +6,12 @@
+ package unix
+
+ const (
+- sizeofPtr = 0x8
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x8
+- sizeofLongLong = 0x8
+- PathMax = 0x1000
++ SizeofPtr = 0x8
++ SizeofLong = 0x8
+ )
+
+ type (
+- _C_short int16
+- _C_int int32
+- _C_long int64
+- _C_long_long int64
++ _C_long int64
+ )
+
+ type Timespec struct {
+@@ -33,13 +26,11 @@ type Timeval struct {
+
+ type Timex struct {
+ Modes uint32
+- Pad_cgo_0 [4]byte
+ Offset int64
+ Freq int64
+ Maxerror int64
+ Esterror int64
+ Status int32
+- Pad_cgo_1 [4]byte
+ Constant int64
+ Precision int64
+ Tolerance int64
+@@ -48,14 +39,13 @@ type Timex struct {
+ Ppsfreq int64
+ Jitter int64
+ Shift int32
+- Pad_cgo_2 [4]byte
+ Stabil int64
+ Jitcnt int64
+ Calcnt int64
+ Errcnt int64
+ Stbcnt int64
+ Tai int32
+- Pad_cgo_3 [44]byte
++ _ [44]byte
+ }
+
+ type Time_t int64
+@@ -91,13 +81,6 @@ type Rusage struct {
+ Nivcsw int64
+ }
+
+-type Rlimit struct {
+- Cur uint64
+- Max uint64
+-}
+-
+-type _Gid_t uint32
+-
+ type Stat_t struct {
+ Dev uint32
+ Pad1 [3]uint32
+@@ -117,139 +100,29 @@ type Stat_t struct {
+ Blocks int64
+ }
+
+-type Statfs_t struct {
+- Type int64
+- Bsize int64
+- Frsize int64
+- Blocks uint64
+- Bfree uint64
+- Files uint64
+- Ffree uint64
+- Bavail uint64
+- Fsid Fsid
+- Namelen int64
+- Flags int64
+- Spare [5]int64
+-}
+-
+ type Dirent struct {
+- Ino uint64
+- Off int64
+- Reclen uint16
+- Type uint8
+- Name [256]int8
+- Pad_cgo_0 [5]byte
+-}
+-
+-type Fsid struct {
+- X__val [2]int32
++ Ino uint64
++ Off int64
++ Reclen uint16
++ Type uint8
++ Name [256]int8
++ _ [5]byte
+ }
+
+ type Flock_t struct {
+- Type int16
+- Whence int16
+- Pad_cgo_0 [4]byte
+- Start int64
+- Len int64
+- Pid int32
+- Pad_cgo_1 [4]byte
+-}
+-
+-type FscryptPolicy struct {
+- Version uint8
+- Contents_encryption_mode uint8
+- Filenames_encryption_mode uint8
+- Flags uint8
+- Master_key_descriptor [8]uint8
+-}
+-
+-type FscryptKey struct {
+- Mode uint32
+- Raw [64]uint8
+- Size uint32
+-}
+-
+-type KeyctlDHParams struct {
+- Private int32
+- Prime int32
+- Base int32
++ Type int16
++ Whence int16
++ Start int64
++ Len int64
++ Pid int32
++ _ [4]byte
+ }
+
+ const (
+- FADV_NORMAL = 0x0
+- FADV_RANDOM = 0x1
+- FADV_SEQUENTIAL = 0x2
+- FADV_WILLNEED = 0x3
+- FADV_DONTNEED = 0x4
+- FADV_NOREUSE = 0x5
++ FADV_DONTNEED = 0x4
++ FADV_NOREUSE = 0x5
+ )
+
+-type RawSockaddrInet4 struct {
+- Family uint16
+- Port uint16
+- Addr [4]byte /* in_addr */
+- Zero [8]uint8
+-}
+-
+-type RawSockaddrInet6 struct {
+- Family uint16
+- Port uint16
+- Flowinfo uint32
+- Addr [16]byte /* in6_addr */
+- Scope_id uint32
+-}
+-
+-type RawSockaddrUnix struct {
+- Family uint16
+- Path [108]int8
+-}
+-
+-type RawSockaddrLinklayer struct {
+- Family uint16
+- Protocol uint16
+- Ifindex int32
+- Hatype uint16
+- Pkttype uint8
+- Halen uint8
+- Addr [8]uint8
+-}
+-
+-type RawSockaddrNetlink struct {
+- Family uint16
+- Pad uint16
+- Pid uint32
+- Groups uint32
+-}
+-
+-type RawSockaddrHCI struct {
+- Family uint16
+- Dev uint16
+- Channel uint16
+-}
+-
+-type RawSockaddrCAN struct {
+- Family uint16
+- Pad_cgo_0 [2]byte
+- Ifindex int32
+- Addr [8]byte
+-}
+-
+-type RawSockaddrALG struct {
+- Family uint16
+- Type [14]uint8
+- Feat uint32
+- Mask uint32
+- Name [64]uint8
+-}
+-
+-type RawSockaddrVM struct {
+- Family uint16
+- Reserved1 uint16
+- Port uint32
+- Cid uint32
+- Zero [4]uint8
+-}
+-
+ type RawSockaddr struct {
+ Family uint16
+ Data [14]int8
+@@ -260,51 +133,20 @@ type RawSockaddrAny struct {
+ Pad [96]int8
+ }
+
+-type _Socklen uint32
+-
+-type Linger struct {
+- Onoff int32
+- Linger int32
+-}
+-
+ type Iovec struct {
+ Base *byte
+ Len uint64
+ }
+
+-type IPMreq struct {
+- Multiaddr [4]byte /* in_addr */
+- Interface [4]byte /* in_addr */
+-}
+-
+-type IPMreqn struct {
+- Multiaddr [4]byte /* in_addr */
+- Address [4]byte /* in_addr */
+- Ifindex int32
+-}
+-
+-type IPv6Mreq struct {
+- Multiaddr [16]byte /* in6_addr */
+- Interface uint32
+-}
+-
+-type PacketMreq struct {
+- Ifindex int32
+- Type uint16
+- Alen uint16
+- Address [8]uint8
+-}
+-
+ type Msghdr struct {
+ Name *byte
+ Namelen uint32
+- Pad_cgo_0 [4]byte
+ Iov *Iovec
+ Iovlen uint64
+ Control *byte
+ Controllen uint64
+ Flags int32
+- Pad_cgo_1 [4]byte
++ _ [4]byte
+ }
+
+ type Cmsghdr struct {
+@@ -313,277 +155,16 @@ type Cmsghdr struct {
+ Type int32
+ }
+
+-type Inet4Pktinfo struct {
+- Ifindex int32
+- Spec_dst [4]byte /* in_addr */
+- Addr [4]byte /* in_addr */
+-}
+-
+-type Inet6Pktinfo struct {
+- Addr [16]byte /* in6_addr */
+- Ifindex uint32
+-}
+-
+-type IPv6MTUInfo struct {
+- Addr RawSockaddrInet6
+- Mtu uint32
+-}
+-
+-type ICMPv6Filter struct {
+- Data [8]uint32
+-}
+-
+-type Ucred struct {
+- Pid int32
+- Uid uint32
+- Gid uint32
+-}
+-
+-type TCPInfo struct {
+- State uint8
+- Ca_state uint8
+- Retransmits uint8
+- Probes uint8
+- Backoff uint8
+- Options uint8
+- Pad_cgo_0 [2]byte
+- Rto uint32
+- Ato uint32
+- Snd_mss uint32
+- Rcv_mss uint32
+- Unacked uint32
+- Sacked uint32
+- Lost uint32
+- Retrans uint32
+- Fackets uint32
+- Last_data_sent uint32
+- Last_ack_sent uint32
+- Last_data_recv uint32
+- Last_ack_recv uint32
+- Pmtu uint32
+- Rcv_ssthresh uint32
+- Rtt uint32
+- Rttvar uint32
+- Snd_ssthresh uint32
+- Snd_cwnd uint32
+- Advmss uint32
+- Reordering uint32
+- Rcv_rtt uint32
+- Rcv_space uint32
+- Total_retrans uint32
+-}
+-
+ const (
+- SizeofSockaddrInet4 = 0x10
+- SizeofSockaddrInet6 = 0x1c
+- SizeofSockaddrAny = 0x70
+- SizeofSockaddrUnix = 0x6e
+- SizeofSockaddrLinklayer = 0x14
+- SizeofSockaddrNetlink = 0xc
+- SizeofSockaddrHCI = 0x6
+- SizeofSockaddrCAN = 0x10
+- SizeofSockaddrALG = 0x58
+- SizeofSockaddrVM = 0x10
+- SizeofLinger = 0x8
+- SizeofIovec = 0x10
+- SizeofIPMreq = 0x8
+- SizeofIPMreqn = 0xc
+- SizeofIPv6Mreq = 0x14
+- SizeofPacketMreq = 0x10
+- SizeofMsghdr = 0x38
+- SizeofCmsghdr = 0x10
+- SizeofInet4Pktinfo = 0xc
+- SizeofInet6Pktinfo = 0x14
+- SizeofIPv6MTUInfo = 0x20
+- SizeofICMPv6Filter = 0x20
+- SizeofUcred = 0xc
+- SizeofTCPInfo = 0x68
++ SizeofIovec = 0x10
++ SizeofMsghdr = 0x38
++ SizeofCmsghdr = 0x10
+ )
+
+ const (
+- IFA_UNSPEC = 0x0
+- IFA_ADDRESS = 0x1
+- IFA_LOCAL = 0x2
+- IFA_LABEL = 0x3
+- IFA_BROADCAST = 0x4
+- IFA_ANYCAST = 0x5
+- IFA_CACHEINFO = 0x6
+- IFA_MULTICAST = 0x7
+- IFLA_UNSPEC = 0x0
+- IFLA_ADDRESS = 0x1
+- IFLA_BROADCAST = 0x2
+- IFLA_IFNAME = 0x3
+- IFLA_MTU = 0x4
+- IFLA_LINK = 0x5
+- IFLA_QDISC = 0x6
+- IFLA_STATS = 0x7
+- IFLA_COST = 0x8
+- IFLA_PRIORITY = 0x9
+- IFLA_MASTER = 0xa
+- IFLA_WIRELESS = 0xb
+- IFLA_PROTINFO = 0xc
+- IFLA_TXQLEN = 0xd
+- IFLA_MAP = 0xe
+- IFLA_WEIGHT = 0xf
+- IFLA_OPERSTATE = 0x10
+- IFLA_LINKMODE = 0x11
+- IFLA_LINKINFO = 0x12
+- IFLA_NET_NS_PID = 0x13
+- IFLA_IFALIAS = 0x14
+- IFLA_MAX = 0x2b
+- RT_SCOPE_UNIVERSE = 0x0
+- RT_SCOPE_SITE = 0xc8
+- RT_SCOPE_LINK = 0xfd
+- RT_SCOPE_HOST = 0xfe
+- RT_SCOPE_NOWHERE = 0xff
+- RT_TABLE_UNSPEC = 0x0
+- RT_TABLE_COMPAT = 0xfc
+- RT_TABLE_DEFAULT = 0xfd
+- RT_TABLE_MAIN = 0xfe
+- RT_TABLE_LOCAL = 0xff
+- RT_TABLE_MAX = 0xffffffff
+- RTA_UNSPEC = 0x0
+- RTA_DST = 0x1
+- RTA_SRC = 0x2
+- RTA_IIF = 0x3
+- RTA_OIF = 0x4
+- RTA_GATEWAY = 0x5
+- RTA_PRIORITY = 0x6
+- RTA_PREFSRC = 0x7
+- RTA_METRICS = 0x8
+- RTA_MULTIPATH = 0x9
+- RTA_FLOW = 0xb
+- RTA_CACHEINFO = 0xc
+- RTA_TABLE = 0xf
+- RTN_UNSPEC = 0x0
+- RTN_UNICAST = 0x1
+- RTN_LOCAL = 0x2
+- RTN_BROADCAST = 0x3
+- RTN_ANYCAST = 0x4
+- RTN_MULTICAST = 0x5
+- RTN_BLACKHOLE = 0x6
+- RTN_UNREACHABLE = 0x7
+- RTN_PROHIBIT = 0x8
+- RTN_THROW = 0x9
+- RTN_NAT = 0xa
+- RTN_XRESOLVE = 0xb
+- RTNLGRP_NONE = 0x0
+- RTNLGRP_LINK = 0x1
+- RTNLGRP_NOTIFY = 0x2
+- RTNLGRP_NEIGH = 0x3
+- RTNLGRP_TC = 0x4
+- RTNLGRP_IPV4_IFADDR = 0x5
+- RTNLGRP_IPV4_MROUTE = 0x6
+- RTNLGRP_IPV4_ROUTE = 0x7
+- RTNLGRP_IPV4_RULE = 0x8
+- RTNLGRP_IPV6_IFADDR = 0x9
+- RTNLGRP_IPV6_MROUTE = 0xa
+- RTNLGRP_IPV6_ROUTE = 0xb
+- RTNLGRP_IPV6_IFINFO = 0xc
+- RTNLGRP_IPV6_PREFIX = 0x12
+- RTNLGRP_IPV6_RULE = 0x13
+- RTNLGRP_ND_USEROPT = 0x14
+- SizeofNlMsghdr = 0x10
+- SizeofNlMsgerr = 0x14
+- SizeofRtGenmsg = 0x1
+- SizeofNlAttr = 0x4
+- SizeofRtAttr = 0x4
+- SizeofIfInfomsg = 0x10
+- SizeofIfAddrmsg = 0x8
+- SizeofRtMsg = 0xc
+- SizeofRtNexthop = 0x8
++ SizeofSockFprog = 0x10
+ )
+
+-type NlMsghdr struct {
+- Len uint32
+- Type uint16
+- Flags uint16
+- Seq uint32
+- Pid uint32
+-}
+-
+-type NlMsgerr struct {
+- Error int32
+- Msg NlMsghdr
+-}
+-
+-type RtGenmsg struct {
+- Family uint8
+-}
+-
+-type NlAttr struct {
+- Len uint16
+- Type uint16
+-}
+-
+-type RtAttr struct {
+- Len uint16
+- Type uint16
+-}
+-
+-type IfInfomsg struct {
+- Family uint8
+- X__ifi_pad uint8
+- Type uint16
+- Index int32
+- Flags uint32
+- Change uint32
+-}
+-
+-type IfAddrmsg struct {
+- Family uint8
+- Prefixlen uint8
+- Flags uint8
+- Scope uint8
+- Index uint32
+-}
+-
+-type RtMsg struct {
+- Family uint8
+- Dst_len uint8
+- Src_len uint8
+- Tos uint8
+- Table uint8
+- Protocol uint8
+- Scope uint8
+- Type uint8
+- Flags uint32
+-}
+-
+-type RtNexthop struct {
+- Len uint16
+- Flags uint8
+- Hops uint8
+- Ifindex int32
+-}
+-
+-const (
+- SizeofSockFilter = 0x8
+- SizeofSockFprog = 0x10
+-)
+-
+-type SockFilter struct {
+- Code uint16
+- Jt uint8
+- Jf uint8
+- K uint32
+-}
+-
+-type SockFprog struct {
+- Len uint16
+- Pad_cgo_0 [6]byte
+- Filter *SockFilter
+-}
+-
+-type InotifyEvent struct {
+- Wd int32
+- Mask uint32
+- Cookie uint32
+- Len uint32
+-}
+-
+-const SizeofInotifyEvent = 0x10
+-
+ type PtraceRegs struct {
+ Regs [32]uint64
+ Lo uint64
+@@ -609,70 +190,37 @@ type Sysinfo_t struct {
+ Freeswap uint64
+ Procs uint16
+ Pad uint16
+- Pad_cgo_0 [4]byte
+ Totalhigh uint64
+ Freehigh uint64
+ Unit uint32
+- X_f [0]int8
+- Pad_cgo_1 [4]byte
+-}
+-
+-type Utsname struct {
+- Sysname [65]int8
+- Nodename [65]int8
+- Release [65]int8
+- Version [65]int8
+- Machine [65]int8
+- Domainname [65]int8
++ _ [0]int8
++ _ [4]byte
+ }
+
+ type Ustat_t struct {
+- Tfree int32
+- Pad_cgo_0 [4]byte
+- Tinode uint64
+- Fname [6]int8
+- Fpack [6]int8
+- Pad_cgo_1 [4]byte
++ Tfree int32
++ Tinode uint64
++ Fname [6]int8
++ Fpack [6]int8
++ _ [4]byte
+ }
+
+ type EpollEvent struct {
+ Events uint32
++ _ int32
+ Fd int32
+ Pad int32
+ }
+
+ const (
+- AT_FDCWD = -0x64
+- AT_REMOVEDIR = 0x200
+- AT_SYMLINK_FOLLOW = 0x400
+- AT_SYMLINK_NOFOLLOW = 0x100
+-)
+-
+-type PollFd struct {
+- Fd int32
+- Events int16
+- Revents int16
+-}
+-
+-const (
+- POLLIN = 0x1
+- POLLPRI = 0x2
+- POLLOUT = 0x4
+ POLLRDHUP = 0x2000
+- POLLERR = 0x8
+- POLLHUP = 0x10
+- POLLNVAL = 0x20
+ )
+
+ type Sigset_t struct {
+- X__val [16]uint64
++ Val [16]uint64
+ }
+
+-const RNDGETENTCNT = 0x40045200
+-
+-const PERF_IOC_FLAG_GROUP = 0x1
+-
+-const _SC_PAGESIZE = 0x1e
++const _C__NSIG = 0x80
+
+ type Termios struct {
+ Iflag uint32
+@@ -685,20 +233,11 @@ type Termios struct {
+ Ospeed uint32
+ }
+
+-type Winsize struct {
+- Row uint16
+- Col uint16
+- Xpixel uint16
+- Ypixel uint16
+-}
+-
+ type Taskstats struct {
+ Version uint16
+- Pad_cgo_0 [2]byte
+ Ac_exitcode uint32
+ Ac_flag uint8
+ Ac_nice uint8
+- Pad_cgo_1 [6]byte
+ Cpu_count uint64
+ Cpu_delay_total uint64
+ Blkio_count uint64
+@@ -710,13 +249,12 @@ type Taskstats struct {
+ Ac_comm [32]int8
+ Ac_sched uint8
+ Ac_pad [3]uint8
+- Pad_cgo_2 [4]byte
++ _ [4]byte
+ Ac_uid uint32
+ Ac_gid uint32
+ Ac_pid uint32
+ Ac_ppid uint32
+ Ac_btime uint32
+- Pad_cgo_3 [4]byte
+ Ac_etime uint64
+ Ac_utime uint64
+ Ac_stime uint64
+@@ -740,55 +278,319 @@ type Taskstats struct {
+ Cpu_scaled_run_real_total uint64
+ Freepages_count uint64
+ Freepages_delay_total uint64
++ Thrashing_count uint64
++ Thrashing_delay_total uint64
++ Ac_btime64 uint64
+ }
+
++type cpuMask uint64
++
+ const (
+- TASKSTATS_CMD_UNSPEC = 0x0
+- TASKSTATS_CMD_GET = 0x1
+- TASKSTATS_CMD_NEW = 0x2
+- TASKSTATS_TYPE_UNSPEC = 0x0
+- TASKSTATS_TYPE_PID = 0x1
+- TASKSTATS_TYPE_TGID = 0x2
+- TASKSTATS_TYPE_STATS = 0x3
+- TASKSTATS_TYPE_AGGR_PID = 0x4
+- TASKSTATS_TYPE_AGGR_TGID = 0x5
+- TASKSTATS_TYPE_NULL = 0x6
+- TASKSTATS_CMD_ATTR_UNSPEC = 0x0
+- TASKSTATS_CMD_ATTR_PID = 0x1
+- TASKSTATS_CMD_ATTR_TGID = 0x2
+- TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3
+- TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4
++ _NCPUBITS = 0x40
+ )
+
+-type Genlmsghdr struct {
+- Cmd uint8
+- Version uint8
+- Reserved uint16
++const (
++ CBitFieldMaskBit0 = 0x8000000000000000
++ CBitFieldMaskBit1 = 0x4000000000000000
++ CBitFieldMaskBit2 = 0x2000000000000000
++ CBitFieldMaskBit3 = 0x1000000000000000
++ CBitFieldMaskBit4 = 0x800000000000000
++ CBitFieldMaskBit5 = 0x400000000000000
++ CBitFieldMaskBit6 = 0x200000000000000
++ CBitFieldMaskBit7 = 0x100000000000000
++ CBitFieldMaskBit8 = 0x80000000000000
++ CBitFieldMaskBit9 = 0x40000000000000
++ CBitFieldMaskBit10 = 0x20000000000000
++ CBitFieldMaskBit11 = 0x10000000000000
++ CBitFieldMaskBit12 = 0x8000000000000
++ CBitFieldMaskBit13 = 0x4000000000000
++ CBitFieldMaskBit14 = 0x2000000000000
++ CBitFieldMaskBit15 = 0x1000000000000
++ CBitFieldMaskBit16 = 0x800000000000
++ CBitFieldMaskBit17 = 0x400000000000
++ CBitFieldMaskBit18 = 0x200000000000
++ CBitFieldMaskBit19 = 0x100000000000
++ CBitFieldMaskBit20 = 0x80000000000
++ CBitFieldMaskBit21 = 0x40000000000
++ CBitFieldMaskBit22 = 0x20000000000
++ CBitFieldMaskBit23 = 0x10000000000
++ CBitFieldMaskBit24 = 0x8000000000
++ CBitFieldMaskBit25 = 0x4000000000
++ CBitFieldMaskBit26 = 0x2000000000
++ CBitFieldMaskBit27 = 0x1000000000
++ CBitFieldMaskBit28 = 0x800000000
++ CBitFieldMaskBit29 = 0x400000000
++ CBitFieldMaskBit30 = 0x200000000
++ CBitFieldMaskBit31 = 0x100000000
++ CBitFieldMaskBit32 = 0x80000000
++ CBitFieldMaskBit33 = 0x40000000
++ CBitFieldMaskBit34 = 0x20000000
++ CBitFieldMaskBit35 = 0x10000000
++ CBitFieldMaskBit36 = 0x8000000
++ CBitFieldMaskBit37 = 0x4000000
++ CBitFieldMaskBit38 = 0x2000000
++ CBitFieldMaskBit39 = 0x1000000
++ CBitFieldMaskBit40 = 0x800000
++ CBitFieldMaskBit41 = 0x400000
++ CBitFieldMaskBit42 = 0x200000
++ CBitFieldMaskBit43 = 0x100000
++ CBitFieldMaskBit44 = 0x80000
++ CBitFieldMaskBit45 = 0x40000
++ CBitFieldMaskBit46 = 0x20000
++ CBitFieldMaskBit47 = 0x10000
++ CBitFieldMaskBit48 = 0x8000
++ CBitFieldMaskBit49 = 0x4000
++ CBitFieldMaskBit50 = 0x2000
++ CBitFieldMaskBit51 = 0x1000
++ CBitFieldMaskBit52 = 0x800
++ CBitFieldMaskBit53 = 0x400
++ CBitFieldMaskBit54 = 0x200
++ CBitFieldMaskBit55 = 0x100
++ CBitFieldMaskBit56 = 0x80
++ CBitFieldMaskBit57 = 0x40
++ CBitFieldMaskBit58 = 0x20
++ CBitFieldMaskBit59 = 0x10
++ CBitFieldMaskBit60 = 0x8
++ CBitFieldMaskBit61 = 0x4
++ CBitFieldMaskBit62 = 0x2
++ CBitFieldMaskBit63 = 0x1
++)
++
++type SockaddrStorage struct {
++ Family uint16
++ _ [118]int8
++ _ uint64
++}
++
++type HDGeometry struct {
++ Heads uint8
++ Sectors uint8
++ Cylinders uint16
++ Start uint64
++}
++
++type Statfs_t struct {
++ Type int64
++ Bsize int64
++ Frsize int64
++ Blocks uint64
++ Bfree uint64
++ Files uint64
++ Ffree uint64
++ Bavail uint64
++ Fsid Fsid
++ Namelen int64
++ Flags int64
++ Spare [5]int64
++}
++
++type TpacketHdr struct {
++ Status uint64
++ Len uint32
++ Snaplen uint32
++ Mac uint16
++ Net uint16
++ Sec uint32
++ Usec uint32
++ _ [4]byte
+ }
+
+ const (
+- CTRL_CMD_UNSPEC = 0x0
+- CTRL_CMD_NEWFAMILY = 0x1
+- CTRL_CMD_DELFAMILY = 0x2
+- CTRL_CMD_GETFAMILY = 0x3
+- CTRL_CMD_NEWOPS = 0x4
+- CTRL_CMD_DELOPS = 0x5
+- CTRL_CMD_GETOPS = 0x6
+- CTRL_CMD_NEWMCAST_GRP = 0x7
+- CTRL_CMD_DELMCAST_GRP = 0x8
+- CTRL_CMD_GETMCAST_GRP = 0x9
+- CTRL_ATTR_UNSPEC = 0x0
+- CTRL_ATTR_FAMILY_ID = 0x1
+- CTRL_ATTR_FAMILY_NAME = 0x2
+- CTRL_ATTR_VERSION = 0x3
+- CTRL_ATTR_HDRSIZE = 0x4
+- CTRL_ATTR_MAXATTR = 0x5
+- CTRL_ATTR_OPS = 0x6
+- CTRL_ATTR_MCAST_GROUPS = 0x7
+- CTRL_ATTR_OP_UNSPEC = 0x0
+- CTRL_ATTR_OP_ID = 0x1
+- CTRL_ATTR_OP_FLAGS = 0x2
+- CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0
+- CTRL_ATTR_MCAST_GRP_NAME = 0x1
+- CTRL_ATTR_MCAST_GRP_ID = 0x2
++ SizeofTpacketHdr = 0x20
+ )
++
++type RTCPLLInfo struct {
++ Ctrl int32
++ Value int32
++ Max int32
++ Min int32
++ Posmult int32
++ Negmult int32
++ Clock int64
++}
++
++type BlkpgPartition struct {
++ Start int64
++ Length int64
++ Pno int32
++ Devname [64]uint8
++ Volname [64]uint8
++ _ [4]byte
++}
++
++const (
++ BLKPG = 0x20001269
++)
++
++type XDPUmemReg struct {
++ Addr uint64
++ Len uint64
++ Size uint32
++ Headroom uint32
++ Flags uint32
++ _ [4]byte
++}
++
++type CryptoUserAlg struct {
++ Name [64]int8
++ Driver_name [64]int8
++ Module_name [64]int8
++ Type uint32
++ Mask uint32
++ Refcnt uint32
++ Flags uint32
++}
++
++type CryptoStatAEAD struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatAKCipher struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Verify_cnt uint64
++ Sign_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatCipher struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatCompress struct {
++ Type [64]int8
++ Compress_cnt uint64
++ Compress_tlen uint64
++ Decompress_cnt uint64
++ Decompress_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatHash struct {
++ Type [64]int8
++ Hash_cnt uint64
++ Hash_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatKPP struct {
++ Type [64]int8
++ Setsecret_cnt uint64
++ Generate_public_key_cnt uint64
++ Compute_shared_secret_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatRNG struct {
++ Type [64]int8
++ Generate_cnt uint64
++ Generate_tlen uint64
++ Seed_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatLarval struct {
++ Type [64]int8
++}
++
++type CryptoReportLarval struct {
++ Type [64]int8
++}
++
++type CryptoReportHash struct {
++ Type [64]int8
++ Blocksize uint32
++ Digestsize uint32
++}
++
++type CryptoReportCipher struct {
++ Type [64]int8
++ Blocksize uint32
++ Min_keysize uint32
++ Max_keysize uint32
++}
++
++type CryptoReportBlkCipher struct {
++ Type [64]int8
++ Geniv [64]int8
++ Blocksize uint32
++ Min_keysize uint32
++ Max_keysize uint32
++ Ivsize uint32
++}
++
++type CryptoReportAEAD struct {
++ Type [64]int8
++ Geniv [64]int8
++ Blocksize uint32
++ Maxauthsize uint32
++ Ivsize uint32
++}
++
++type CryptoReportComp struct {
++ Type [64]int8
++}
++
++type CryptoReportRNG struct {
++ Type [64]int8
++ Seedsize uint32
++}
++
++type CryptoReportAKCipher struct {
++ Type [64]int8
++}
++
++type CryptoReportKPP struct {
++ Type [64]int8
++}
++
++type CryptoReportAcomp struct {
++ Type [64]int8
++}
++
++type LoopInfo struct {
++ Number int32
++ Device uint32
++ Inode uint64
++ Rdevice uint32
++ Offset int32
++ Encrypt_type int32
++ Encrypt_key_size int32
++ Flags int32
++ Name [64]int8
++ Encrypt_key [32]uint8
++ Init [2]uint64
++ Reserved [4]int8
++ _ [4]byte
++}
++
++type TIPCSubscr struct {
++ Seq TIPCServiceRange
++ Timeout uint32
++ Filter uint32
++ Handle [8]int8
++}
++
++type TIPCSIOCLNReq struct {
++ Peer uint32
++ Id uint32
++ Linkname [68]int8
++}
++
++type TIPCSIOCNodeIDReq struct {
++ Peer uint32
++ Id [16]int8
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
+index f9bd1ab0..16add5a2 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
+@@ -6,19 +6,12 @@
+ package unix
+
+ const (
+- sizeofPtr = 0x8
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x8
+- sizeofLongLong = 0x8
+- PathMax = 0x1000
++ SizeofPtr = 0x8
++ SizeofLong = 0x8
+ )
+
+ type (
+- _C_short int16
+- _C_int int32
+- _C_long int64
+- _C_long_long int64
++ _C_long int64
+ )
+
+ type Timespec struct {
+@@ -33,13 +26,11 @@ type Timeval struct {
+
+ type Timex struct {
+ Modes uint32
+- Pad_cgo_0 [4]byte
+ Offset int64
+ Freq int64
+ Maxerror int64
+ Esterror int64
+ Status int32
+- Pad_cgo_1 [4]byte
+ Constant int64
+ Precision int64
+ Tolerance int64
+@@ -48,14 +39,13 @@ type Timex struct {
+ Ppsfreq int64
+ Jitter int64
+ Shift int32
+- Pad_cgo_2 [4]byte
+ Stabil int64
+ Jitcnt int64
+ Calcnt int64
+ Errcnt int64
+ Stbcnt int64
+ Tai int32
+- Pad_cgo_3 [44]byte
++ _ [44]byte
+ }
+
+ type Time_t int64
+@@ -91,13 +81,6 @@ type Rusage struct {
+ Nivcsw int64
+ }
+
+-type Rlimit struct {
+- Cur uint64
+- Max uint64
+-}
+-
+-type _Gid_t uint32
+-
+ type Stat_t struct {
+ Dev uint32
+ Pad1 [3]uint32
+@@ -117,139 +100,29 @@ type Stat_t struct {
+ Blocks int64
+ }
+
+-type Statfs_t struct {
+- Type int64
+- Bsize int64
+- Frsize int64
+- Blocks uint64
+- Bfree uint64
+- Files uint64
+- Ffree uint64
+- Bavail uint64
+- Fsid Fsid
+- Namelen int64
+- Flags int64
+- Spare [5]int64
+-}
+-
+ type Dirent struct {
+- Ino uint64
+- Off int64
+- Reclen uint16
+- Type uint8
+- Name [256]int8
+- Pad_cgo_0 [5]byte
+-}
+-
+-type Fsid struct {
+- X__val [2]int32
++ Ino uint64
++ Off int64
++ Reclen uint16
++ Type uint8
++ Name [256]int8
++ _ [5]byte
+ }
+
+ type Flock_t struct {
+- Type int16
+- Whence int16
+- Pad_cgo_0 [4]byte
+- Start int64
+- Len int64
+- Pid int32
+- Pad_cgo_1 [4]byte
+-}
+-
+-type FscryptPolicy struct {
+- Version uint8
+- Contents_encryption_mode uint8
+- Filenames_encryption_mode uint8
+- Flags uint8
+- Master_key_descriptor [8]uint8
+-}
+-
+-type FscryptKey struct {
+- Mode uint32
+- Raw [64]uint8
+- Size uint32
+-}
+-
+-type KeyctlDHParams struct {
+- Private int32
+- Prime int32
+- Base int32
++ Type int16
++ Whence int16
++ Start int64
++ Len int64
++ Pid int32
++ _ [4]byte
+ }
+
+ const (
+- FADV_NORMAL = 0x0
+- FADV_RANDOM = 0x1
+- FADV_SEQUENTIAL = 0x2
+- FADV_WILLNEED = 0x3
+- FADV_DONTNEED = 0x4
+- FADV_NOREUSE = 0x5
++ FADV_DONTNEED = 0x4
++ FADV_NOREUSE = 0x5
+ )
+
+-type RawSockaddrInet4 struct {
+- Family uint16
+- Port uint16
+- Addr [4]byte /* in_addr */
+- Zero [8]uint8
+-}
+-
+-type RawSockaddrInet6 struct {
+- Family uint16
+- Port uint16
+- Flowinfo uint32
+- Addr [16]byte /* in6_addr */
+- Scope_id uint32
+-}
+-
+-type RawSockaddrUnix struct {
+- Family uint16
+- Path [108]int8
+-}
+-
+-type RawSockaddrLinklayer struct {
+- Family uint16
+- Protocol uint16
+- Ifindex int32
+- Hatype uint16
+- Pkttype uint8
+- Halen uint8
+- Addr [8]uint8
+-}
+-
+-type RawSockaddrNetlink struct {
+- Family uint16
+- Pad uint16
+- Pid uint32
+- Groups uint32
+-}
+-
+-type RawSockaddrHCI struct {
+- Family uint16
+- Dev uint16
+- Channel uint16
+-}
+-
+-type RawSockaddrCAN struct {
+- Family uint16
+- Pad_cgo_0 [2]byte
+- Ifindex int32
+- Addr [8]byte
+-}
+-
+-type RawSockaddrALG struct {
+- Family uint16
+- Type [14]uint8
+- Feat uint32
+- Mask uint32
+- Name [64]uint8
+-}
+-
+-type RawSockaddrVM struct {
+- Family uint16
+- Reserved1 uint16
+- Port uint32
+- Cid uint32
+- Zero [4]uint8
+-}
+-
+ type RawSockaddr struct {
+ Family uint16
+ Data [14]int8
+@@ -260,51 +133,20 @@ type RawSockaddrAny struct {
+ Pad [96]int8
+ }
+
+-type _Socklen uint32
+-
+-type Linger struct {
+- Onoff int32
+- Linger int32
+-}
+-
+ type Iovec struct {
+ Base *byte
+ Len uint64
+ }
+
+-type IPMreq struct {
+- Multiaddr [4]byte /* in_addr */
+- Interface [4]byte /* in_addr */
+-}
+-
+-type IPMreqn struct {
+- Multiaddr [4]byte /* in_addr */
+- Address [4]byte /* in_addr */
+- Ifindex int32
+-}
+-
+-type IPv6Mreq struct {
+- Multiaddr [16]byte /* in6_addr */
+- Interface uint32
+-}
+-
+-type PacketMreq struct {
+- Ifindex int32
+- Type uint16
+- Alen uint16
+- Address [8]uint8
+-}
+-
+ type Msghdr struct {
+ Name *byte
+ Namelen uint32
+- Pad_cgo_0 [4]byte
+ Iov *Iovec
+ Iovlen uint64
+ Control *byte
+ Controllen uint64
+ Flags int32
+- Pad_cgo_1 [4]byte
++ _ [4]byte
+ }
+
+ type Cmsghdr struct {
+@@ -313,277 +155,16 @@ type Cmsghdr struct {
+ Type int32
+ }
+
+-type Inet4Pktinfo struct {
+- Ifindex int32
+- Spec_dst [4]byte /* in_addr */
+- Addr [4]byte /* in_addr */
+-}
+-
+-type Inet6Pktinfo struct {
+- Addr [16]byte /* in6_addr */
+- Ifindex uint32
+-}
+-
+-type IPv6MTUInfo struct {
+- Addr RawSockaddrInet6
+- Mtu uint32
+-}
+-
+-type ICMPv6Filter struct {
+- Data [8]uint32
+-}
+-
+-type Ucred struct {
+- Pid int32
+- Uid uint32
+- Gid uint32
+-}
+-
+-type TCPInfo struct {
+- State uint8
+- Ca_state uint8
+- Retransmits uint8
+- Probes uint8
+- Backoff uint8
+- Options uint8
+- Pad_cgo_0 [2]byte
+- Rto uint32
+- Ato uint32
+- Snd_mss uint32
+- Rcv_mss uint32
+- Unacked uint32
+- Sacked uint32
+- Lost uint32
+- Retrans uint32
+- Fackets uint32
+- Last_data_sent uint32
+- Last_ack_sent uint32
+- Last_data_recv uint32
+- Last_ack_recv uint32
+- Pmtu uint32
+- Rcv_ssthresh uint32
+- Rtt uint32
+- Rttvar uint32
+- Snd_ssthresh uint32
+- Snd_cwnd uint32
+- Advmss uint32
+- Reordering uint32
+- Rcv_rtt uint32
+- Rcv_space uint32
+- Total_retrans uint32
+-}
+-
+ const (
+- SizeofSockaddrInet4 = 0x10
+- SizeofSockaddrInet6 = 0x1c
+- SizeofSockaddrAny = 0x70
+- SizeofSockaddrUnix = 0x6e
+- SizeofSockaddrLinklayer = 0x14
+- SizeofSockaddrNetlink = 0xc
+- SizeofSockaddrHCI = 0x6
+- SizeofSockaddrCAN = 0x10
+- SizeofSockaddrALG = 0x58
+- SizeofSockaddrVM = 0x10
+- SizeofLinger = 0x8
+- SizeofIovec = 0x10
+- SizeofIPMreq = 0x8
+- SizeofIPMreqn = 0xc
+- SizeofIPv6Mreq = 0x14
+- SizeofPacketMreq = 0x10
+- SizeofMsghdr = 0x38
+- SizeofCmsghdr = 0x10
+- SizeofInet4Pktinfo = 0xc
+- SizeofInet6Pktinfo = 0x14
+- SizeofIPv6MTUInfo = 0x20
+- SizeofICMPv6Filter = 0x20
+- SizeofUcred = 0xc
+- SizeofTCPInfo = 0x68
++ SizeofIovec = 0x10
++ SizeofMsghdr = 0x38
++ SizeofCmsghdr = 0x10
+ )
+
+ const (
+- IFA_UNSPEC = 0x0
+- IFA_ADDRESS = 0x1
+- IFA_LOCAL = 0x2
+- IFA_LABEL = 0x3
+- IFA_BROADCAST = 0x4
+- IFA_ANYCAST = 0x5
+- IFA_CACHEINFO = 0x6
+- IFA_MULTICAST = 0x7
+- IFLA_UNSPEC = 0x0
+- IFLA_ADDRESS = 0x1
+- IFLA_BROADCAST = 0x2
+- IFLA_IFNAME = 0x3
+- IFLA_MTU = 0x4
+- IFLA_LINK = 0x5
+- IFLA_QDISC = 0x6
+- IFLA_STATS = 0x7
+- IFLA_COST = 0x8
+- IFLA_PRIORITY = 0x9
+- IFLA_MASTER = 0xa
+- IFLA_WIRELESS = 0xb
+- IFLA_PROTINFO = 0xc
+- IFLA_TXQLEN = 0xd
+- IFLA_MAP = 0xe
+- IFLA_WEIGHT = 0xf
+- IFLA_OPERSTATE = 0x10
+- IFLA_LINKMODE = 0x11
+- IFLA_LINKINFO = 0x12
+- IFLA_NET_NS_PID = 0x13
+- IFLA_IFALIAS = 0x14
+- IFLA_MAX = 0x2b
+- RT_SCOPE_UNIVERSE = 0x0
+- RT_SCOPE_SITE = 0xc8
+- RT_SCOPE_LINK = 0xfd
+- RT_SCOPE_HOST = 0xfe
+- RT_SCOPE_NOWHERE = 0xff
+- RT_TABLE_UNSPEC = 0x0
+- RT_TABLE_COMPAT = 0xfc
+- RT_TABLE_DEFAULT = 0xfd
+- RT_TABLE_MAIN = 0xfe
+- RT_TABLE_LOCAL = 0xff
+- RT_TABLE_MAX = 0xffffffff
+- RTA_UNSPEC = 0x0
+- RTA_DST = 0x1
+- RTA_SRC = 0x2
+- RTA_IIF = 0x3
+- RTA_OIF = 0x4
+- RTA_GATEWAY = 0x5
+- RTA_PRIORITY = 0x6
+- RTA_PREFSRC = 0x7
+- RTA_METRICS = 0x8
+- RTA_MULTIPATH = 0x9
+- RTA_FLOW = 0xb
+- RTA_CACHEINFO = 0xc
+- RTA_TABLE = 0xf
+- RTN_UNSPEC = 0x0
+- RTN_UNICAST = 0x1
+- RTN_LOCAL = 0x2
+- RTN_BROADCAST = 0x3
+- RTN_ANYCAST = 0x4
+- RTN_MULTICAST = 0x5
+- RTN_BLACKHOLE = 0x6
+- RTN_UNREACHABLE = 0x7
+- RTN_PROHIBIT = 0x8
+- RTN_THROW = 0x9
+- RTN_NAT = 0xa
+- RTN_XRESOLVE = 0xb
+- RTNLGRP_NONE = 0x0
+- RTNLGRP_LINK = 0x1
+- RTNLGRP_NOTIFY = 0x2
+- RTNLGRP_NEIGH = 0x3
+- RTNLGRP_TC = 0x4
+- RTNLGRP_IPV4_IFADDR = 0x5
+- RTNLGRP_IPV4_MROUTE = 0x6
+- RTNLGRP_IPV4_ROUTE = 0x7
+- RTNLGRP_IPV4_RULE = 0x8
+- RTNLGRP_IPV6_IFADDR = 0x9
+- RTNLGRP_IPV6_MROUTE = 0xa
+- RTNLGRP_IPV6_ROUTE = 0xb
+- RTNLGRP_IPV6_IFINFO = 0xc
+- RTNLGRP_IPV6_PREFIX = 0x12
+- RTNLGRP_IPV6_RULE = 0x13
+- RTNLGRP_ND_USEROPT = 0x14
+- SizeofNlMsghdr = 0x10
+- SizeofNlMsgerr = 0x14
+- SizeofRtGenmsg = 0x1
+- SizeofNlAttr = 0x4
+- SizeofRtAttr = 0x4
+- SizeofIfInfomsg = 0x10
+- SizeofIfAddrmsg = 0x8
+- SizeofRtMsg = 0xc
+- SizeofRtNexthop = 0x8
++ SizeofSockFprog = 0x10
+ )
+
+-type NlMsghdr struct {
+- Len uint32
+- Type uint16
+- Flags uint16
+- Seq uint32
+- Pid uint32
+-}
+-
+-type NlMsgerr struct {
+- Error int32
+- Msg NlMsghdr
+-}
+-
+-type RtGenmsg struct {
+- Family uint8
+-}
+-
+-type NlAttr struct {
+- Len uint16
+- Type uint16
+-}
+-
+-type RtAttr struct {
+- Len uint16
+- Type uint16
+-}
+-
+-type IfInfomsg struct {
+- Family uint8
+- X__ifi_pad uint8
+- Type uint16
+- Index int32
+- Flags uint32
+- Change uint32
+-}
+-
+-type IfAddrmsg struct {
+- Family uint8
+- Prefixlen uint8
+- Flags uint8
+- Scope uint8
+- Index uint32
+-}
+-
+-type RtMsg struct {
+- Family uint8
+- Dst_len uint8
+- Src_len uint8
+- Tos uint8
+- Table uint8
+- Protocol uint8
+- Scope uint8
+- Type uint8
+- Flags uint32
+-}
+-
+-type RtNexthop struct {
+- Len uint16
+- Flags uint8
+- Hops uint8
+- Ifindex int32
+-}
+-
+-const (
+- SizeofSockFilter = 0x8
+- SizeofSockFprog = 0x10
+-)
+-
+-type SockFilter struct {
+- Code uint16
+- Jt uint8
+- Jf uint8
+- K uint32
+-}
+-
+-type SockFprog struct {
+- Len uint16
+- Pad_cgo_0 [6]byte
+- Filter *SockFilter
+-}
+-
+-type InotifyEvent struct {
+- Wd int32
+- Mask uint32
+- Cookie uint32
+- Len uint32
+-}
+-
+-const SizeofInotifyEvent = 0x10
+-
+ type PtraceRegs struct {
+ Regs [32]uint64
+ Lo uint64
+@@ -609,70 +190,37 @@ type Sysinfo_t struct {
+ Freeswap uint64
+ Procs uint16
+ Pad uint16
+- Pad_cgo_0 [4]byte
+ Totalhigh uint64
+ Freehigh uint64
+ Unit uint32
+- X_f [0]int8
+- Pad_cgo_1 [4]byte
+-}
+-
+-type Utsname struct {
+- Sysname [65]int8
+- Nodename [65]int8
+- Release [65]int8
+- Version [65]int8
+- Machine [65]int8
+- Domainname [65]int8
++ _ [0]int8
++ _ [4]byte
+ }
+
+ type Ustat_t struct {
+- Tfree int32
+- Pad_cgo_0 [4]byte
+- Tinode uint64
+- Fname [6]int8
+- Fpack [6]int8
+- Pad_cgo_1 [4]byte
++ Tfree int32
++ Tinode uint64
++ Fname [6]int8
++ Fpack [6]int8
++ _ [4]byte
+ }
+
+ type EpollEvent struct {
+ Events uint32
++ _ int32
+ Fd int32
+ Pad int32
+ }
+
+ const (
+- AT_FDCWD = -0x64
+- AT_REMOVEDIR = 0x200
+- AT_SYMLINK_FOLLOW = 0x400
+- AT_SYMLINK_NOFOLLOW = 0x100
+-)
+-
+-type PollFd struct {
+- Fd int32
+- Events int16
+- Revents int16
+-}
+-
+-const (
+- POLLIN = 0x1
+- POLLPRI = 0x2
+- POLLOUT = 0x4
+ POLLRDHUP = 0x2000
+- POLLERR = 0x8
+- POLLHUP = 0x10
+- POLLNVAL = 0x20
+ )
+
+ type Sigset_t struct {
+- X__val [16]uint64
++ Val [16]uint64
+ }
+
+-const RNDGETENTCNT = 0x40045200
+-
+-const PERF_IOC_FLAG_GROUP = 0x1
+-
+-const _SC_PAGESIZE = 0x1e
++const _C__NSIG = 0x80
+
+ type Termios struct {
+ Iflag uint32
+@@ -685,20 +233,11 @@ type Termios struct {
+ Ospeed uint32
+ }
+
+-type Winsize struct {
+- Row uint16
+- Col uint16
+- Xpixel uint16
+- Ypixel uint16
+-}
+-
+ type Taskstats struct {
+ Version uint16
+- Pad_cgo_0 [2]byte
+ Ac_exitcode uint32
+ Ac_flag uint8
+ Ac_nice uint8
+- Pad_cgo_1 [6]byte
+ Cpu_count uint64
+ Cpu_delay_total uint64
+ Blkio_count uint64
+@@ -710,13 +249,12 @@ type Taskstats struct {
+ Ac_comm [32]int8
+ Ac_sched uint8
+ Ac_pad [3]uint8
+- Pad_cgo_2 [4]byte
++ _ [4]byte
+ Ac_uid uint32
+ Ac_gid uint32
+ Ac_pid uint32
+ Ac_ppid uint32
+ Ac_btime uint32
+- Pad_cgo_3 [4]byte
+ Ac_etime uint64
+ Ac_utime uint64
+ Ac_stime uint64
+@@ -740,55 +278,319 @@ type Taskstats struct {
+ Cpu_scaled_run_real_total uint64
+ Freepages_count uint64
+ Freepages_delay_total uint64
++ Thrashing_count uint64
++ Thrashing_delay_total uint64
++ Ac_btime64 uint64
+ }
+
++type cpuMask uint64
++
+ const (
+- TASKSTATS_CMD_UNSPEC = 0x0
+- TASKSTATS_CMD_GET = 0x1
+- TASKSTATS_CMD_NEW = 0x2
+- TASKSTATS_TYPE_UNSPEC = 0x0
+- TASKSTATS_TYPE_PID = 0x1
+- TASKSTATS_TYPE_TGID = 0x2
+- TASKSTATS_TYPE_STATS = 0x3
+- TASKSTATS_TYPE_AGGR_PID = 0x4
+- TASKSTATS_TYPE_AGGR_TGID = 0x5
+- TASKSTATS_TYPE_NULL = 0x6
+- TASKSTATS_CMD_ATTR_UNSPEC = 0x0
+- TASKSTATS_CMD_ATTR_PID = 0x1
+- TASKSTATS_CMD_ATTR_TGID = 0x2
+- TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3
+- TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4
++ _NCPUBITS = 0x40
+ )
+
+-type Genlmsghdr struct {
+- Cmd uint8
+- Version uint8
+- Reserved uint16
++const (
++ CBitFieldMaskBit0 = 0x1
++ CBitFieldMaskBit1 = 0x2
++ CBitFieldMaskBit2 = 0x4
++ CBitFieldMaskBit3 = 0x8
++ CBitFieldMaskBit4 = 0x10
++ CBitFieldMaskBit5 = 0x20
++ CBitFieldMaskBit6 = 0x40
++ CBitFieldMaskBit7 = 0x80
++ CBitFieldMaskBit8 = 0x100
++ CBitFieldMaskBit9 = 0x200
++ CBitFieldMaskBit10 = 0x400
++ CBitFieldMaskBit11 = 0x800
++ CBitFieldMaskBit12 = 0x1000
++ CBitFieldMaskBit13 = 0x2000
++ CBitFieldMaskBit14 = 0x4000
++ CBitFieldMaskBit15 = 0x8000
++ CBitFieldMaskBit16 = 0x10000
++ CBitFieldMaskBit17 = 0x20000
++ CBitFieldMaskBit18 = 0x40000
++ CBitFieldMaskBit19 = 0x80000
++ CBitFieldMaskBit20 = 0x100000
++ CBitFieldMaskBit21 = 0x200000
++ CBitFieldMaskBit22 = 0x400000
++ CBitFieldMaskBit23 = 0x800000
++ CBitFieldMaskBit24 = 0x1000000
++ CBitFieldMaskBit25 = 0x2000000
++ CBitFieldMaskBit26 = 0x4000000
++ CBitFieldMaskBit27 = 0x8000000
++ CBitFieldMaskBit28 = 0x10000000
++ CBitFieldMaskBit29 = 0x20000000
++ CBitFieldMaskBit30 = 0x40000000
++ CBitFieldMaskBit31 = 0x80000000
++ CBitFieldMaskBit32 = 0x100000000
++ CBitFieldMaskBit33 = 0x200000000
++ CBitFieldMaskBit34 = 0x400000000
++ CBitFieldMaskBit35 = 0x800000000
++ CBitFieldMaskBit36 = 0x1000000000
++ CBitFieldMaskBit37 = 0x2000000000
++ CBitFieldMaskBit38 = 0x4000000000
++ CBitFieldMaskBit39 = 0x8000000000
++ CBitFieldMaskBit40 = 0x10000000000
++ CBitFieldMaskBit41 = 0x20000000000
++ CBitFieldMaskBit42 = 0x40000000000
++ CBitFieldMaskBit43 = 0x80000000000
++ CBitFieldMaskBit44 = 0x100000000000
++ CBitFieldMaskBit45 = 0x200000000000
++ CBitFieldMaskBit46 = 0x400000000000
++ CBitFieldMaskBit47 = 0x800000000000
++ CBitFieldMaskBit48 = 0x1000000000000
++ CBitFieldMaskBit49 = 0x2000000000000
++ CBitFieldMaskBit50 = 0x4000000000000
++ CBitFieldMaskBit51 = 0x8000000000000
++ CBitFieldMaskBit52 = 0x10000000000000
++ CBitFieldMaskBit53 = 0x20000000000000
++ CBitFieldMaskBit54 = 0x40000000000000
++ CBitFieldMaskBit55 = 0x80000000000000
++ CBitFieldMaskBit56 = 0x100000000000000
++ CBitFieldMaskBit57 = 0x200000000000000
++ CBitFieldMaskBit58 = 0x400000000000000
++ CBitFieldMaskBit59 = 0x800000000000000
++ CBitFieldMaskBit60 = 0x1000000000000000
++ CBitFieldMaskBit61 = 0x2000000000000000
++ CBitFieldMaskBit62 = 0x4000000000000000
++ CBitFieldMaskBit63 = 0x8000000000000000
++)
++
++type SockaddrStorage struct {
++ Family uint16
++ _ [118]int8
++ _ uint64
++}
++
++type HDGeometry struct {
++ Heads uint8
++ Sectors uint8
++ Cylinders uint16
++ Start uint64
++}
++
++type Statfs_t struct {
++ Type int64
++ Bsize int64
++ Frsize int64
++ Blocks uint64
++ Bfree uint64
++ Files uint64
++ Ffree uint64
++ Bavail uint64
++ Fsid Fsid
++ Namelen int64
++ Flags int64
++ Spare [5]int64
++}
++
++type TpacketHdr struct {
++ Status uint64
++ Len uint32
++ Snaplen uint32
++ Mac uint16
++ Net uint16
++ Sec uint32
++ Usec uint32
++ _ [4]byte
+ }
+
+ const (
+- CTRL_CMD_UNSPEC = 0x0
+- CTRL_CMD_NEWFAMILY = 0x1
+- CTRL_CMD_DELFAMILY = 0x2
+- CTRL_CMD_GETFAMILY = 0x3
+- CTRL_CMD_NEWOPS = 0x4
+- CTRL_CMD_DELOPS = 0x5
+- CTRL_CMD_GETOPS = 0x6
+- CTRL_CMD_NEWMCAST_GRP = 0x7
+- CTRL_CMD_DELMCAST_GRP = 0x8
+- CTRL_CMD_GETMCAST_GRP = 0x9
+- CTRL_ATTR_UNSPEC = 0x0
+- CTRL_ATTR_FAMILY_ID = 0x1
+- CTRL_ATTR_FAMILY_NAME = 0x2
+- CTRL_ATTR_VERSION = 0x3
+- CTRL_ATTR_HDRSIZE = 0x4
+- CTRL_ATTR_MAXATTR = 0x5
+- CTRL_ATTR_OPS = 0x6
+- CTRL_ATTR_MCAST_GROUPS = 0x7
+- CTRL_ATTR_OP_UNSPEC = 0x0
+- CTRL_ATTR_OP_ID = 0x1
+- CTRL_ATTR_OP_FLAGS = 0x2
+- CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0
+- CTRL_ATTR_MCAST_GRP_NAME = 0x1
+- CTRL_ATTR_MCAST_GRP_ID = 0x2
++ SizeofTpacketHdr = 0x20
+ )
++
++type RTCPLLInfo struct {
++ Ctrl int32
++ Value int32
++ Max int32
++ Min int32
++ Posmult int32
++ Negmult int32
++ Clock int64
++}
++
++type BlkpgPartition struct {
++ Start int64
++ Length int64
++ Pno int32
++ Devname [64]uint8
++ Volname [64]uint8
++ _ [4]byte
++}
++
++const (
++ BLKPG = 0x20001269
++)
++
++type XDPUmemReg struct {
++ Addr uint64
++ Len uint64
++ Size uint32
++ Headroom uint32
++ Flags uint32
++ _ [4]byte
++}
++
++type CryptoUserAlg struct {
++ Name [64]int8
++ Driver_name [64]int8
++ Module_name [64]int8
++ Type uint32
++ Mask uint32
++ Refcnt uint32
++ Flags uint32
++}
++
++type CryptoStatAEAD struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatAKCipher struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Verify_cnt uint64
++ Sign_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatCipher struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatCompress struct {
++ Type [64]int8
++ Compress_cnt uint64
++ Compress_tlen uint64
++ Decompress_cnt uint64
++ Decompress_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatHash struct {
++ Type [64]int8
++ Hash_cnt uint64
++ Hash_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatKPP struct {
++ Type [64]int8
++ Setsecret_cnt uint64
++ Generate_public_key_cnt uint64
++ Compute_shared_secret_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatRNG struct {
++ Type [64]int8
++ Generate_cnt uint64
++ Generate_tlen uint64
++ Seed_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatLarval struct {
++ Type [64]int8
++}
++
++type CryptoReportLarval struct {
++ Type [64]int8
++}
++
++type CryptoReportHash struct {
++ Type [64]int8
++ Blocksize uint32
++ Digestsize uint32
++}
++
++type CryptoReportCipher struct {
++ Type [64]int8
++ Blocksize uint32
++ Min_keysize uint32
++ Max_keysize uint32
++}
++
++type CryptoReportBlkCipher struct {
++ Type [64]int8
++ Geniv [64]int8
++ Blocksize uint32
++ Min_keysize uint32
++ Max_keysize uint32
++ Ivsize uint32
++}
++
++type CryptoReportAEAD struct {
++ Type [64]int8
++ Geniv [64]int8
++ Blocksize uint32
++ Maxauthsize uint32
++ Ivsize uint32
++}
++
++type CryptoReportComp struct {
++ Type [64]int8
++}
++
++type CryptoReportRNG struct {
++ Type [64]int8
++ Seedsize uint32
++}
++
++type CryptoReportAKCipher struct {
++ Type [64]int8
++}
++
++type CryptoReportKPP struct {
++ Type [64]int8
++}
++
++type CryptoReportAcomp struct {
++ Type [64]int8
++}
++
++type LoopInfo struct {
++ Number int32
++ Device uint32
++ Inode uint64
++ Rdevice uint32
++ Offset int32
++ Encrypt_type int32
++ Encrypt_key_size int32
++ Flags int32
++ Name [64]int8
++ Encrypt_key [32]uint8
++ Init [2]uint64
++ Reserved [4]int8
++ _ [4]byte
++}
++
++type TIPCSubscr struct {
++ Seq TIPCServiceRange
++ Timeout uint32
++ Filter uint32
++ Handle [8]int8
++}
++
++type TIPCSIOCLNReq struct {
++ Peer uint32
++ Id uint32
++ Linkname [68]int8
++}
++
++type TIPCSIOCNodeIDReq struct {
++ Peer uint32
++ Id [16]int8
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go
+index 74c54213..4ed2c8e5 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go
+@@ -6,19 +6,12 @@
+ package unix
+
+ const (
+- sizeofPtr = 0x4
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x4
+- sizeofLongLong = 0x8
+- PathMax = 0x1000
++ SizeofPtr = 0x4
++ SizeofLong = 0x4
+ )
+
+ type (
+- _C_short int16
+- _C_int int32
+- _C_long int32
+- _C_long_long int64
++ _C_long int32
+ )
+
+ type Timespec struct {
+@@ -52,7 +45,7 @@ type Timex struct {
+ Errcnt int32
+ Stbcnt int32
+ Tai int32
+- Pad_cgo_0 [44]byte
++ _ [44]byte
+ }
+
+ type Time_t int32
+@@ -88,13 +81,6 @@ type Rusage struct {
+ Nivcsw int32
+ }
+
+-type Rlimit struct {
+- Cur uint64
+- Max uint64
+-}
+-
+-type _Gid_t uint32
+-
+ type Stat_t struct {
+ Dev uint32
+ Pad1 [3]int32
+@@ -115,141 +101,30 @@ type Stat_t struct {
+ Pad5 [14]int32
+ }
+
+-type Statfs_t struct {
+- Type int32
+- Bsize int32
+- Frsize int32
+- Pad_cgo_0 [4]byte
+- Blocks uint64
+- Bfree uint64
+- Files uint64
+- Ffree uint64
+- Bavail uint64
+- Fsid Fsid
+- Namelen int32
+- Flags int32
+- Spare [5]int32
+- Pad_cgo_1 [4]byte
+-}
+-
+ type Dirent struct {
+- Ino uint64
+- Off int64
+- Reclen uint16
+- Type uint8
+- Name [256]int8
+- Pad_cgo_0 [5]byte
+-}
+-
+-type Fsid struct {
+- X__val [2]int32
++ Ino uint64
++ Off int64
++ Reclen uint16
++ Type uint8
++ Name [256]int8
++ _ [5]byte
+ }
+
+ type Flock_t struct {
+- Type int16
+- Whence int16
+- Pad_cgo_0 [4]byte
+- Start int64
+- Len int64
+- Pid int32
+- Pad_cgo_1 [4]byte
+-}
+-
+-type FscryptPolicy struct {
+- Version uint8
+- Contents_encryption_mode uint8
+- Filenames_encryption_mode uint8
+- Flags uint8
+- Master_key_descriptor [8]uint8
+-}
+-
+-type FscryptKey struct {
+- Mode uint32
+- Raw [64]uint8
+- Size uint32
+-}
+-
+-type KeyctlDHParams struct {
+- Private int32
+- Prime int32
+- Base int32
++ Type int16
++ Whence int16
++ _ [4]byte
++ Start int64
++ Len int64
++ Pid int32
++ _ [4]byte
+ }
+
+ const (
+- FADV_NORMAL = 0x0
+- FADV_RANDOM = 0x1
+- FADV_SEQUENTIAL = 0x2
+- FADV_WILLNEED = 0x3
+- FADV_DONTNEED = 0x4
+- FADV_NOREUSE = 0x5
++ FADV_DONTNEED = 0x4
++ FADV_NOREUSE = 0x5
+ )
+
+-type RawSockaddrInet4 struct {
+- Family uint16
+- Port uint16
+- Addr [4]byte /* in_addr */
+- Zero [8]uint8
+-}
+-
+-type RawSockaddrInet6 struct {
+- Family uint16
+- Port uint16
+- Flowinfo uint32
+- Addr [16]byte /* in6_addr */
+- Scope_id uint32
+-}
+-
+-type RawSockaddrUnix struct {
+- Family uint16
+- Path [108]int8
+-}
+-
+-type RawSockaddrLinklayer struct {
+- Family uint16
+- Protocol uint16
+- Ifindex int32
+- Hatype uint16
+- Pkttype uint8
+- Halen uint8
+- Addr [8]uint8
+-}
+-
+-type RawSockaddrNetlink struct {
+- Family uint16
+- Pad uint16
+- Pid uint32
+- Groups uint32
+-}
+-
+-type RawSockaddrHCI struct {
+- Family uint16
+- Dev uint16
+- Channel uint16
+-}
+-
+-type RawSockaddrCAN struct {
+- Family uint16
+- Pad_cgo_0 [2]byte
+- Ifindex int32
+- Addr [8]byte
+-}
+-
+-type RawSockaddrALG struct {
+- Family uint16
+- Type [14]uint8
+- Feat uint32
+- Mask uint32
+- Name [64]uint8
+-}
+-
+-type RawSockaddrVM struct {
+- Family uint16
+- Reserved1 uint16
+- Port uint32
+- Cid uint32
+- Zero [4]uint8
+-}
+-
+ type RawSockaddr struct {
+ Family uint16
+ Data [14]int8
+@@ -260,41 +135,11 @@ type RawSockaddrAny struct {
+ Pad [96]int8
+ }
+
+-type _Socklen uint32
+-
+-type Linger struct {
+- Onoff int32
+- Linger int32
+-}
+-
+ type Iovec struct {
+ Base *byte
+ Len uint32
+ }
+
+-type IPMreq struct {
+- Multiaddr [4]byte /* in_addr */
+- Interface [4]byte /* in_addr */
+-}
+-
+-type IPMreqn struct {
+- Multiaddr [4]byte /* in_addr */
+- Address [4]byte /* in_addr */
+- Ifindex int32
+-}
+-
+-type IPv6Mreq struct {
+- Multiaddr [16]byte /* in6_addr */
+- Interface uint32
+-}
+-
+-type PacketMreq struct {
+- Ifindex int32
+- Type uint16
+- Alen uint16
+- Address [8]uint8
+-}
+-
+ type Msghdr struct {
+ Name *byte
+ Namelen uint32
+@@ -311,277 +156,16 @@ type Cmsghdr struct {
+ Type int32
+ }
+
+-type Inet4Pktinfo struct {
+- Ifindex int32
+- Spec_dst [4]byte /* in_addr */
+- Addr [4]byte /* in_addr */
+-}
+-
+-type Inet6Pktinfo struct {
+- Addr [16]byte /* in6_addr */
+- Ifindex uint32
+-}
+-
+-type IPv6MTUInfo struct {
+- Addr RawSockaddrInet6
+- Mtu uint32
+-}
+-
+-type ICMPv6Filter struct {
+- Data [8]uint32
+-}
+-
+-type Ucred struct {
+- Pid int32
+- Uid uint32
+- Gid uint32
+-}
+-
+-type TCPInfo struct {
+- State uint8
+- Ca_state uint8
+- Retransmits uint8
+- Probes uint8
+- Backoff uint8
+- Options uint8
+- Pad_cgo_0 [2]byte
+- Rto uint32
+- Ato uint32
+- Snd_mss uint32
+- Rcv_mss uint32
+- Unacked uint32
+- Sacked uint32
+- Lost uint32
+- Retrans uint32
+- Fackets uint32
+- Last_data_sent uint32
+- Last_ack_sent uint32
+- Last_data_recv uint32
+- Last_ack_recv uint32
+- Pmtu uint32
+- Rcv_ssthresh uint32
+- Rtt uint32
+- Rttvar uint32
+- Snd_ssthresh uint32
+- Snd_cwnd uint32
+- Advmss uint32
+- Reordering uint32
+- Rcv_rtt uint32
+- Rcv_space uint32
+- Total_retrans uint32
+-}
+-
+ const (
+- SizeofSockaddrInet4 = 0x10
+- SizeofSockaddrInet6 = 0x1c
+- SizeofSockaddrAny = 0x70
+- SizeofSockaddrUnix = 0x6e
+- SizeofSockaddrLinklayer = 0x14
+- SizeofSockaddrNetlink = 0xc
+- SizeofSockaddrHCI = 0x6
+- SizeofSockaddrCAN = 0x10
+- SizeofSockaddrALG = 0x58
+- SizeofSockaddrVM = 0x10
+- SizeofLinger = 0x8
+- SizeofIovec = 0x8
+- SizeofIPMreq = 0x8
+- SizeofIPMreqn = 0xc
+- SizeofIPv6Mreq = 0x14
+- SizeofPacketMreq = 0x10
+- SizeofMsghdr = 0x1c
+- SizeofCmsghdr = 0xc
+- SizeofInet4Pktinfo = 0xc
+- SizeofInet6Pktinfo = 0x14
+- SizeofIPv6MTUInfo = 0x20
+- SizeofICMPv6Filter = 0x20
+- SizeofUcred = 0xc
+- SizeofTCPInfo = 0x68
++ SizeofIovec = 0x8
++ SizeofMsghdr = 0x1c
++ SizeofCmsghdr = 0xc
+ )
+
+ const (
+- IFA_UNSPEC = 0x0
+- IFA_ADDRESS = 0x1
+- IFA_LOCAL = 0x2
+- IFA_LABEL = 0x3
+- IFA_BROADCAST = 0x4
+- IFA_ANYCAST = 0x5
+- IFA_CACHEINFO = 0x6
+- IFA_MULTICAST = 0x7
+- IFLA_UNSPEC = 0x0
+- IFLA_ADDRESS = 0x1
+- IFLA_BROADCAST = 0x2
+- IFLA_IFNAME = 0x3
+- IFLA_MTU = 0x4
+- IFLA_LINK = 0x5
+- IFLA_QDISC = 0x6
+- IFLA_STATS = 0x7
+- IFLA_COST = 0x8
+- IFLA_PRIORITY = 0x9
+- IFLA_MASTER = 0xa
+- IFLA_WIRELESS = 0xb
+- IFLA_PROTINFO = 0xc
+- IFLA_TXQLEN = 0xd
+- IFLA_MAP = 0xe
+- IFLA_WEIGHT = 0xf
+- IFLA_OPERSTATE = 0x10
+- IFLA_LINKMODE = 0x11
+- IFLA_LINKINFO = 0x12
+- IFLA_NET_NS_PID = 0x13
+- IFLA_IFALIAS = 0x14
+- IFLA_MAX = 0x2b
+- RT_SCOPE_UNIVERSE = 0x0
+- RT_SCOPE_SITE = 0xc8
+- RT_SCOPE_LINK = 0xfd
+- RT_SCOPE_HOST = 0xfe
+- RT_SCOPE_NOWHERE = 0xff
+- RT_TABLE_UNSPEC = 0x0
+- RT_TABLE_COMPAT = 0xfc
+- RT_TABLE_DEFAULT = 0xfd
+- RT_TABLE_MAIN = 0xfe
+- RT_TABLE_LOCAL = 0xff
+- RT_TABLE_MAX = 0xffffffff
+- RTA_UNSPEC = 0x0
+- RTA_DST = 0x1
+- RTA_SRC = 0x2
+- RTA_IIF = 0x3
+- RTA_OIF = 0x4
+- RTA_GATEWAY = 0x5
+- RTA_PRIORITY = 0x6
+- RTA_PREFSRC = 0x7
+- RTA_METRICS = 0x8
+- RTA_MULTIPATH = 0x9
+- RTA_FLOW = 0xb
+- RTA_CACHEINFO = 0xc
+- RTA_TABLE = 0xf
+- RTN_UNSPEC = 0x0
+- RTN_UNICAST = 0x1
+- RTN_LOCAL = 0x2
+- RTN_BROADCAST = 0x3
+- RTN_ANYCAST = 0x4
+- RTN_MULTICAST = 0x5
+- RTN_BLACKHOLE = 0x6
+- RTN_UNREACHABLE = 0x7
+- RTN_PROHIBIT = 0x8
+- RTN_THROW = 0x9
+- RTN_NAT = 0xa
+- RTN_XRESOLVE = 0xb
+- RTNLGRP_NONE = 0x0
+- RTNLGRP_LINK = 0x1
+- RTNLGRP_NOTIFY = 0x2
+- RTNLGRP_NEIGH = 0x3
+- RTNLGRP_TC = 0x4
+- RTNLGRP_IPV4_IFADDR = 0x5
+- RTNLGRP_IPV4_MROUTE = 0x6
+- RTNLGRP_IPV4_ROUTE = 0x7
+- RTNLGRP_IPV4_RULE = 0x8
+- RTNLGRP_IPV6_IFADDR = 0x9
+- RTNLGRP_IPV6_MROUTE = 0xa
+- RTNLGRP_IPV6_ROUTE = 0xb
+- RTNLGRP_IPV6_IFINFO = 0xc
+- RTNLGRP_IPV6_PREFIX = 0x12
+- RTNLGRP_IPV6_RULE = 0x13
+- RTNLGRP_ND_USEROPT = 0x14
+- SizeofNlMsghdr = 0x10
+- SizeofNlMsgerr = 0x14
+- SizeofRtGenmsg = 0x1
+- SizeofNlAttr = 0x4
+- SizeofRtAttr = 0x4
+- SizeofIfInfomsg = 0x10
+- SizeofIfAddrmsg = 0x8
+- SizeofRtMsg = 0xc
+- SizeofRtNexthop = 0x8
++ SizeofSockFprog = 0x8
+ )
+
+-type NlMsghdr struct {
+- Len uint32
+- Type uint16
+- Flags uint16
+- Seq uint32
+- Pid uint32
+-}
+-
+-type NlMsgerr struct {
+- Error int32
+- Msg NlMsghdr
+-}
+-
+-type RtGenmsg struct {
+- Family uint8
+-}
+-
+-type NlAttr struct {
+- Len uint16
+- Type uint16
+-}
+-
+-type RtAttr struct {
+- Len uint16
+- Type uint16
+-}
+-
+-type IfInfomsg struct {
+- Family uint8
+- X__ifi_pad uint8
+- Type uint16
+- Index int32
+- Flags uint32
+- Change uint32
+-}
+-
+-type IfAddrmsg struct {
+- Family uint8
+- Prefixlen uint8
+- Flags uint8
+- Scope uint8
+- Index uint32
+-}
+-
+-type RtMsg struct {
+- Family uint8
+- Dst_len uint8
+- Src_len uint8
+- Tos uint8
+- Table uint8
+- Protocol uint8
+- Scope uint8
+- Type uint8
+- Flags uint32
+-}
+-
+-type RtNexthop struct {
+- Len uint16
+- Flags uint8
+- Hops uint8
+- Ifindex int32
+-}
+-
+-const (
+- SizeofSockFilter = 0x8
+- SizeofSockFprog = 0x8
+-)
+-
+-type SockFilter struct {
+- Code uint16
+- Jt uint8
+- Jf uint8
+- K uint32
+-}
+-
+-type SockFprog struct {
+- Len uint16
+- Pad_cgo_0 [2]byte
+- Filter *SockFilter
+-}
+-
+-type InotifyEvent struct {
+- Wd int32
+- Mask uint32
+- Cookie uint32
+- Len uint32
+-}
+-
+-const SizeofInotifyEvent = 0x10
+-
+ type PtraceRegs struct {
+ Regs [32]uint64
+ Lo uint64
+@@ -610,16 +194,7 @@ type Sysinfo_t struct {
+ Totalhigh uint32
+ Freehigh uint32
+ Unit uint32
+- X_f [8]int8
+-}
+-
+-type Utsname struct {
+- Sysname [65]int8
+- Nodename [65]int8
+- Release [65]int8
+- Version [65]int8
+- Machine [65]int8
+- Domainname [65]int8
++ _ [8]int8
+ }
+
+ type Ustat_t struct {
+@@ -637,37 +212,14 @@ type EpollEvent struct {
+ }
+
+ const (
+- AT_FDCWD = -0x64
+- AT_REMOVEDIR = 0x200
+- AT_SYMLINK_FOLLOW = 0x400
+- AT_SYMLINK_NOFOLLOW = 0x100
+-)
+-
+-type PollFd struct {
+- Fd int32
+- Events int16
+- Revents int16
+-}
+-
+-const (
+- POLLIN = 0x1
+- POLLPRI = 0x2
+- POLLOUT = 0x4
+ POLLRDHUP = 0x2000
+- POLLERR = 0x8
+- POLLHUP = 0x10
+- POLLNVAL = 0x20
+ )
+
+ type Sigset_t struct {
+- X__val [32]uint32
++ Val [32]uint32
+ }
+
+-const RNDGETENTCNT = 0x40045200
+-
+-const PERF_IOC_FLAG_GROUP = 0x1
+-
+-const _SC_PAGESIZE = 0x1e
++const _C__NSIG = 0x80
+
+ type Termios struct {
+ Iflag uint32
+@@ -680,20 +232,12 @@ type Termios struct {
+ Ospeed uint32
+ }
+
+-type Winsize struct {
+- Row uint16
+- Col uint16
+- Xpixel uint16
+- Ypixel uint16
+-}
+-
+ type Taskstats struct {
+ Version uint16
+- Pad_cgo_0 [2]byte
+ Ac_exitcode uint32
+ Ac_flag uint8
+ Ac_nice uint8
+- Pad_cgo_1 [6]byte
++ _ [4]byte
+ Cpu_count uint64
+ Cpu_delay_total uint64
+ Blkio_count uint64
+@@ -705,13 +249,13 @@ type Taskstats struct {
+ Ac_comm [32]int8
+ Ac_sched uint8
+ Ac_pad [3]uint8
+- Pad_cgo_2 [4]byte
++ _ [4]byte
+ Ac_uid uint32
+ Ac_gid uint32
+ Ac_pid uint32
+ Ac_ppid uint32
+ Ac_btime uint32
+- Pad_cgo_3 [4]byte
++ _ [4]byte
+ Ac_etime uint64
+ Ac_utime uint64
+ Ac_stime uint64
+@@ -735,55 +279,319 @@ type Taskstats struct {
+ Cpu_scaled_run_real_total uint64
+ Freepages_count uint64
+ Freepages_delay_total uint64
++ Thrashing_count uint64
++ Thrashing_delay_total uint64
++ Ac_btime64 uint64
+ }
+
++type cpuMask uint32
++
++const (
++ _NCPUBITS = 0x20
++)
++
+ const (
+- TASKSTATS_CMD_UNSPEC = 0x0
+- TASKSTATS_CMD_GET = 0x1
+- TASKSTATS_CMD_NEW = 0x2
+- TASKSTATS_TYPE_UNSPEC = 0x0
+- TASKSTATS_TYPE_PID = 0x1
+- TASKSTATS_TYPE_TGID = 0x2
+- TASKSTATS_TYPE_STATS = 0x3
+- TASKSTATS_TYPE_AGGR_PID = 0x4
+- TASKSTATS_TYPE_AGGR_TGID = 0x5
+- TASKSTATS_TYPE_NULL = 0x6
+- TASKSTATS_CMD_ATTR_UNSPEC = 0x0
+- TASKSTATS_CMD_ATTR_PID = 0x1
+- TASKSTATS_CMD_ATTR_TGID = 0x2
+- TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3
+- TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4
++ CBitFieldMaskBit0 = 0x1
++ CBitFieldMaskBit1 = 0x2
++ CBitFieldMaskBit2 = 0x4
++ CBitFieldMaskBit3 = 0x8
++ CBitFieldMaskBit4 = 0x10
++ CBitFieldMaskBit5 = 0x20
++ CBitFieldMaskBit6 = 0x40
++ CBitFieldMaskBit7 = 0x80
++ CBitFieldMaskBit8 = 0x100
++ CBitFieldMaskBit9 = 0x200
++ CBitFieldMaskBit10 = 0x400
++ CBitFieldMaskBit11 = 0x800
++ CBitFieldMaskBit12 = 0x1000
++ CBitFieldMaskBit13 = 0x2000
++ CBitFieldMaskBit14 = 0x4000
++ CBitFieldMaskBit15 = 0x8000
++ CBitFieldMaskBit16 = 0x10000
++ CBitFieldMaskBit17 = 0x20000
++ CBitFieldMaskBit18 = 0x40000
++ CBitFieldMaskBit19 = 0x80000
++ CBitFieldMaskBit20 = 0x100000
++ CBitFieldMaskBit21 = 0x200000
++ CBitFieldMaskBit22 = 0x400000
++ CBitFieldMaskBit23 = 0x800000
++ CBitFieldMaskBit24 = 0x1000000
++ CBitFieldMaskBit25 = 0x2000000
++ CBitFieldMaskBit26 = 0x4000000
++ CBitFieldMaskBit27 = 0x8000000
++ CBitFieldMaskBit28 = 0x10000000
++ CBitFieldMaskBit29 = 0x20000000
++ CBitFieldMaskBit30 = 0x40000000
++ CBitFieldMaskBit31 = 0x80000000
++ CBitFieldMaskBit32 = 0x100000000
++ CBitFieldMaskBit33 = 0x200000000
++ CBitFieldMaskBit34 = 0x400000000
++ CBitFieldMaskBit35 = 0x800000000
++ CBitFieldMaskBit36 = 0x1000000000
++ CBitFieldMaskBit37 = 0x2000000000
++ CBitFieldMaskBit38 = 0x4000000000
++ CBitFieldMaskBit39 = 0x8000000000
++ CBitFieldMaskBit40 = 0x10000000000
++ CBitFieldMaskBit41 = 0x20000000000
++ CBitFieldMaskBit42 = 0x40000000000
++ CBitFieldMaskBit43 = 0x80000000000
++ CBitFieldMaskBit44 = 0x100000000000
++ CBitFieldMaskBit45 = 0x200000000000
++ CBitFieldMaskBit46 = 0x400000000000
++ CBitFieldMaskBit47 = 0x800000000000
++ CBitFieldMaskBit48 = 0x1000000000000
++ CBitFieldMaskBit49 = 0x2000000000000
++ CBitFieldMaskBit50 = 0x4000000000000
++ CBitFieldMaskBit51 = 0x8000000000000
++ CBitFieldMaskBit52 = 0x10000000000000
++ CBitFieldMaskBit53 = 0x20000000000000
++ CBitFieldMaskBit54 = 0x40000000000000
++ CBitFieldMaskBit55 = 0x80000000000000
++ CBitFieldMaskBit56 = 0x100000000000000
++ CBitFieldMaskBit57 = 0x200000000000000
++ CBitFieldMaskBit58 = 0x400000000000000
++ CBitFieldMaskBit59 = 0x800000000000000
++ CBitFieldMaskBit60 = 0x1000000000000000
++ CBitFieldMaskBit61 = 0x2000000000000000
++ CBitFieldMaskBit62 = 0x4000000000000000
++ CBitFieldMaskBit63 = 0x8000000000000000
+ )
+
+-type Genlmsghdr struct {
+- Cmd uint8
+- Version uint8
+- Reserved uint16
++type SockaddrStorage struct {
++ Family uint16
++ _ [122]int8
++ _ uint32
++}
++
++type HDGeometry struct {
++ Heads uint8
++ Sectors uint8
++ Cylinders uint16
++ Start uint32
++}
++
++type Statfs_t struct {
++ Type int32
++ Bsize int32
++ Frsize int32
++ _ [4]byte
++ Blocks uint64
++ Bfree uint64
++ Files uint64
++ Ffree uint64
++ Bavail uint64
++ Fsid Fsid
++ Namelen int32
++ Flags int32
++ Spare [5]int32
++ _ [4]byte
++}
++
++type TpacketHdr struct {
++ Status uint32
++ Len uint32
++ Snaplen uint32
++ Mac uint16
++ Net uint16
++ Sec uint32
++ Usec uint32
++}
++
++const (
++ SizeofTpacketHdr = 0x18
++)
++
++type RTCPLLInfo struct {
++ Ctrl int32
++ Value int32
++ Max int32
++ Min int32
++ Posmult int32
++ Negmult int32
++ Clock int32
++}
++
++type BlkpgPartition struct {
++ Start int64
++ Length int64
++ Pno int32
++ Devname [64]uint8
++ Volname [64]uint8
++ _ [4]byte
+ }
+
+ const (
+- CTRL_CMD_UNSPEC = 0x0
+- CTRL_CMD_NEWFAMILY = 0x1
+- CTRL_CMD_DELFAMILY = 0x2
+- CTRL_CMD_GETFAMILY = 0x3
+- CTRL_CMD_NEWOPS = 0x4
+- CTRL_CMD_DELOPS = 0x5
+- CTRL_CMD_GETOPS = 0x6
+- CTRL_CMD_NEWMCAST_GRP = 0x7
+- CTRL_CMD_DELMCAST_GRP = 0x8
+- CTRL_CMD_GETMCAST_GRP = 0x9
+- CTRL_ATTR_UNSPEC = 0x0
+- CTRL_ATTR_FAMILY_ID = 0x1
+- CTRL_ATTR_FAMILY_NAME = 0x2
+- CTRL_ATTR_VERSION = 0x3
+- CTRL_ATTR_HDRSIZE = 0x4
+- CTRL_ATTR_MAXATTR = 0x5
+- CTRL_ATTR_OPS = 0x6
+- CTRL_ATTR_MCAST_GROUPS = 0x7
+- CTRL_ATTR_OP_UNSPEC = 0x0
+- CTRL_ATTR_OP_ID = 0x1
+- CTRL_ATTR_OP_FLAGS = 0x2
+- CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0
+- CTRL_ATTR_MCAST_GRP_NAME = 0x1
+- CTRL_ATTR_MCAST_GRP_ID = 0x2
++ BLKPG = 0x20001269
+ )
++
++type XDPUmemReg struct {
++ Addr uint64
++ Len uint64
++ Size uint32
++ Headroom uint32
++ Flags uint32
++ _ [4]byte
++}
++
++type CryptoUserAlg struct {
++ Name [64]int8
++ Driver_name [64]int8
++ Module_name [64]int8
++ Type uint32
++ Mask uint32
++ Refcnt uint32
++ Flags uint32
++}
++
++type CryptoStatAEAD struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatAKCipher struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Verify_cnt uint64
++ Sign_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatCipher struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatCompress struct {
++ Type [64]int8
++ Compress_cnt uint64
++ Compress_tlen uint64
++ Decompress_cnt uint64
++ Decompress_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatHash struct {
++ Type [64]int8
++ Hash_cnt uint64
++ Hash_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatKPP struct {
++ Type [64]int8
++ Setsecret_cnt uint64
++ Generate_public_key_cnt uint64
++ Compute_shared_secret_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatRNG struct {
++ Type [64]int8
++ Generate_cnt uint64
++ Generate_tlen uint64
++ Seed_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatLarval struct {
++ Type [64]int8
++}
++
++type CryptoReportLarval struct {
++ Type [64]int8
++}
++
++type CryptoReportHash struct {
++ Type [64]int8
++ Blocksize uint32
++ Digestsize uint32
++}
++
++type CryptoReportCipher struct {
++ Type [64]int8
++ Blocksize uint32
++ Min_keysize uint32
++ Max_keysize uint32
++}
++
++type CryptoReportBlkCipher struct {
++ Type [64]int8
++ Geniv [64]int8
++ Blocksize uint32
++ Min_keysize uint32
++ Max_keysize uint32
++ Ivsize uint32
++}
++
++type CryptoReportAEAD struct {
++ Type [64]int8
++ Geniv [64]int8
++ Blocksize uint32
++ Maxauthsize uint32
++ Ivsize uint32
++}
++
++type CryptoReportComp struct {
++ Type [64]int8
++}
++
++type CryptoReportRNG struct {
++ Type [64]int8
++ Seedsize uint32
++}
++
++type CryptoReportAKCipher struct {
++ Type [64]int8
++}
++
++type CryptoReportKPP struct {
++ Type [64]int8
++}
++
++type CryptoReportAcomp struct {
++ Type [64]int8
++}
++
++type LoopInfo struct {
++ Number int32
++ Device uint32
++ Inode uint32
++ Rdevice uint32
++ Offset int32
++ Encrypt_type int32
++ Encrypt_key_size int32
++ Flags int32
++ Name [64]int8
++ Encrypt_key [32]uint8
++ Init [2]uint32
++ Reserved [4]int8
++}
++
++type TIPCSubscr struct {
++ Seq TIPCServiceRange
++ Timeout uint32
++ Filter uint32
++ Handle [8]int8
++}
++
++type TIPCSIOCLNReq struct {
++ Peer uint32
++ Id uint32
++ Linkname [68]int8
++}
++
++type TIPCSIOCNodeIDReq struct {
++ Peer uint32
++ Id [16]int8
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
+index 2b0b18e9..74151909 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
+@@ -6,19 +6,12 @@
+ package unix
+
+ const (
+- sizeofPtr = 0x8
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x8
+- sizeofLongLong = 0x8
+- PathMax = 0x1000
++ SizeofPtr = 0x8
++ SizeofLong = 0x8
+ )
+
+ type (
+- _C_short int16
+- _C_int int32
+- _C_long int64
+- _C_long_long int64
++ _C_long int64
+ )
+
+ type Timespec struct {
+@@ -33,13 +26,11 @@ type Timeval struct {
+
+ type Timex struct {
+ Modes uint32
+- Pad_cgo_0 [4]byte
+ Offset int64
+ Freq int64
+ Maxerror int64
+ Esterror int64
+ Status int32
+- Pad_cgo_1 [4]byte
+ Constant int64
+ Precision int64
+ Tolerance int64
+@@ -48,14 +39,13 @@ type Timex struct {
+ Ppsfreq int64
+ Jitter int64
+ Shift int32
+- Pad_cgo_2 [4]byte
+ Stabil int64
+ Jitcnt int64
+ Calcnt int64
+ Errcnt int64
+ Stbcnt int64
+ Tai int32
+- Pad_cgo_3 [44]byte
++ _ [44]byte
+ }
+
+ type Time_t int64
+@@ -91,13 +81,6 @@ type Rusage struct {
+ Nivcsw int64
+ }
+
+-type Rlimit struct {
+- Cur uint64
+- Max uint64
+-}
+-
+-type _Gid_t uint32
+-
+ type Stat_t struct {
+ Dev uint64
+ Ino uint64
+@@ -105,7 +88,7 @@ type Stat_t struct {
+ Mode uint32
+ Uid uint32
+ Gid uint32
+- X__pad2 int32
++ _ int32
+ Rdev uint64
+ Size int64
+ Blksize int64
+@@ -118,139 +101,29 @@ type Stat_t struct {
+ _ uint64
+ }
+
+-type Statfs_t struct {
+- Type int64
+- Bsize int64
+- Blocks uint64
+- Bfree uint64
+- Bavail uint64
+- Files uint64
+- Ffree uint64
+- Fsid Fsid
+- Namelen int64
+- Frsize int64
+- Flags int64
+- Spare [4]int64
+-}
+-
+ type Dirent struct {
+- Ino uint64
+- Off int64
+- Reclen uint16
+- Type uint8
+- Name [256]uint8
+- Pad_cgo_0 [5]byte
+-}
+-
+-type Fsid struct {
+- X__val [2]int32
++ Ino uint64
++ Off int64
++ Reclen uint16
++ Type uint8
++ Name [256]uint8
++ _ [5]byte
+ }
+
+ type Flock_t struct {
+- Type int16
+- Whence int16
+- Pad_cgo_0 [4]byte
+- Start int64
+- Len int64
+- Pid int32
+- Pad_cgo_1 [4]byte
+-}
+-
+-type FscryptPolicy struct {
+- Version uint8
+- Contents_encryption_mode uint8
+- Filenames_encryption_mode uint8
+- Flags uint8
+- Master_key_descriptor [8]uint8
+-}
+-
+-type FscryptKey struct {
+- Mode uint32
+- Raw [64]uint8
+- Size uint32
+-}
+-
+-type KeyctlDHParams struct {
+- Private int32
+- Prime int32
+- Base int32
++ Type int16
++ Whence int16
++ Start int64
++ Len int64
++ Pid int32
++ _ [4]byte
+ }
+
+ const (
+- FADV_NORMAL = 0x0
+- FADV_RANDOM = 0x1
+- FADV_SEQUENTIAL = 0x2
+- FADV_WILLNEED = 0x3
+- FADV_DONTNEED = 0x4
+- FADV_NOREUSE = 0x5
++ FADV_DONTNEED = 0x4
++ FADV_NOREUSE = 0x5
+ )
+
+-type RawSockaddrInet4 struct {
+- Family uint16
+- Port uint16
+- Addr [4]byte /* in_addr */
+- Zero [8]uint8
+-}
+-
+-type RawSockaddrInet6 struct {
+- Family uint16
+- Port uint16
+- Flowinfo uint32
+- Addr [16]byte /* in6_addr */
+- Scope_id uint32
+-}
+-
+-type RawSockaddrUnix struct {
+- Family uint16
+- Path [108]int8
+-}
+-
+-type RawSockaddrLinklayer struct {
+- Family uint16
+- Protocol uint16
+- Ifindex int32
+- Hatype uint16
+- Pkttype uint8
+- Halen uint8
+- Addr [8]uint8
+-}
+-
+-type RawSockaddrNetlink struct {
+- Family uint16
+- Pad uint16
+- Pid uint32
+- Groups uint32
+-}
+-
+-type RawSockaddrHCI struct {
+- Family uint16
+- Dev uint16
+- Channel uint16
+-}
+-
+-type RawSockaddrCAN struct {
+- Family uint16
+- Pad_cgo_0 [2]byte
+- Ifindex int32
+- Addr [8]byte
+-}
+-
+-type RawSockaddrALG struct {
+- Family uint16
+- Type [14]uint8
+- Feat uint32
+- Mask uint32
+- Name [64]uint8
+-}
+-
+-type RawSockaddrVM struct {
+- Family uint16
+- Reserved1 uint16
+- Port uint32
+- Cid uint32
+- Zero [4]uint8
+-}
+-
+ type RawSockaddr struct {
+ Family uint16
+ Data [14]uint8
+@@ -261,51 +134,20 @@ type RawSockaddrAny struct {
+ Pad [96]uint8
+ }
+
+-type _Socklen uint32
+-
+-type Linger struct {
+- Onoff int32
+- Linger int32
+-}
+-
+ type Iovec struct {
+ Base *byte
+ Len uint64
+ }
+
+-type IPMreq struct {
+- Multiaddr [4]byte /* in_addr */
+- Interface [4]byte /* in_addr */
+-}
+-
+-type IPMreqn struct {
+- Multiaddr [4]byte /* in_addr */
+- Address [4]byte /* in_addr */
+- Ifindex int32
+-}
+-
+-type IPv6Mreq struct {
+- Multiaddr [16]byte /* in6_addr */
+- Interface uint32
+-}
+-
+-type PacketMreq struct {
+- Ifindex int32
+- Type uint16
+- Alen uint16
+- Address [8]uint8
+-}
+-
+ type Msghdr struct {
+ Name *byte
+ Namelen uint32
+- Pad_cgo_0 [4]byte
+ Iov *Iovec
+ Iovlen uint64
+ Control *byte
+ Controllen uint64
+ Flags int32
+- Pad_cgo_1 [4]byte
++ _ [4]byte
+ }
+
+ type Cmsghdr struct {
+@@ -314,277 +156,16 @@ type Cmsghdr struct {
+ Type int32
+ }
+
+-type Inet4Pktinfo struct {
+- Ifindex int32
+- Spec_dst [4]byte /* in_addr */
+- Addr [4]byte /* in_addr */
+-}
+-
+-type Inet6Pktinfo struct {
+- Addr [16]byte /* in6_addr */
+- Ifindex uint32
+-}
+-
+-type IPv6MTUInfo struct {
+- Addr RawSockaddrInet6
+- Mtu uint32
+-}
+-
+-type ICMPv6Filter struct {
+- Data [8]uint32
+-}
+-
+-type Ucred struct {
+- Pid int32
+- Uid uint32
+- Gid uint32
+-}
+-
+-type TCPInfo struct {
+- State uint8
+- Ca_state uint8
+- Retransmits uint8
+- Probes uint8
+- Backoff uint8
+- Options uint8
+- Pad_cgo_0 [2]byte
+- Rto uint32
+- Ato uint32
+- Snd_mss uint32
+- Rcv_mss uint32
+- Unacked uint32
+- Sacked uint32
+- Lost uint32
+- Retrans uint32
+- Fackets uint32
+- Last_data_sent uint32
+- Last_ack_sent uint32
+- Last_data_recv uint32
+- Last_ack_recv uint32
+- Pmtu uint32
+- Rcv_ssthresh uint32
+- Rtt uint32
+- Rttvar uint32
+- Snd_ssthresh uint32
+- Snd_cwnd uint32
+- Advmss uint32
+- Reordering uint32
+- Rcv_rtt uint32
+- Rcv_space uint32
+- Total_retrans uint32
+-}
+-
+ const (
+- SizeofSockaddrInet4 = 0x10
+- SizeofSockaddrInet6 = 0x1c
+- SizeofSockaddrAny = 0x70
+- SizeofSockaddrUnix = 0x6e
+- SizeofSockaddrLinklayer = 0x14
+- SizeofSockaddrNetlink = 0xc
+- SizeofSockaddrHCI = 0x6
+- SizeofSockaddrCAN = 0x10
+- SizeofSockaddrALG = 0x58
+- SizeofSockaddrVM = 0x10
+- SizeofLinger = 0x8
+- SizeofIovec = 0x10
+- SizeofIPMreq = 0x8
+- SizeofIPMreqn = 0xc
+- SizeofIPv6Mreq = 0x14
+- SizeofPacketMreq = 0x10
+- SizeofMsghdr = 0x38
+- SizeofCmsghdr = 0x10
+- SizeofInet4Pktinfo = 0xc
+- SizeofInet6Pktinfo = 0x14
+- SizeofIPv6MTUInfo = 0x20
+- SizeofICMPv6Filter = 0x20
+- SizeofUcred = 0xc
+- SizeofTCPInfo = 0x68
++ SizeofIovec = 0x10
++ SizeofMsghdr = 0x38
++ SizeofCmsghdr = 0x10
+ )
+
+ const (
+- IFA_UNSPEC = 0x0
+- IFA_ADDRESS = 0x1
+- IFA_LOCAL = 0x2
+- IFA_LABEL = 0x3
+- IFA_BROADCAST = 0x4
+- IFA_ANYCAST = 0x5
+- IFA_CACHEINFO = 0x6
+- IFA_MULTICAST = 0x7
+- IFLA_UNSPEC = 0x0
+- IFLA_ADDRESS = 0x1
+- IFLA_BROADCAST = 0x2
+- IFLA_IFNAME = 0x3
+- IFLA_MTU = 0x4
+- IFLA_LINK = 0x5
+- IFLA_QDISC = 0x6
+- IFLA_STATS = 0x7
+- IFLA_COST = 0x8
+- IFLA_PRIORITY = 0x9
+- IFLA_MASTER = 0xa
+- IFLA_WIRELESS = 0xb
+- IFLA_PROTINFO = 0xc
+- IFLA_TXQLEN = 0xd
+- IFLA_MAP = 0xe
+- IFLA_WEIGHT = 0xf
+- IFLA_OPERSTATE = 0x10
+- IFLA_LINKMODE = 0x11
+- IFLA_LINKINFO = 0x12
+- IFLA_NET_NS_PID = 0x13
+- IFLA_IFALIAS = 0x14
+- IFLA_MAX = 0x2b
+- RT_SCOPE_UNIVERSE = 0x0
+- RT_SCOPE_SITE = 0xc8
+- RT_SCOPE_LINK = 0xfd
+- RT_SCOPE_HOST = 0xfe
+- RT_SCOPE_NOWHERE = 0xff
+- RT_TABLE_UNSPEC = 0x0
+- RT_TABLE_COMPAT = 0xfc
+- RT_TABLE_DEFAULT = 0xfd
+- RT_TABLE_MAIN = 0xfe
+- RT_TABLE_LOCAL = 0xff
+- RT_TABLE_MAX = 0xffffffff
+- RTA_UNSPEC = 0x0
+- RTA_DST = 0x1
+- RTA_SRC = 0x2
+- RTA_IIF = 0x3
+- RTA_OIF = 0x4
+- RTA_GATEWAY = 0x5
+- RTA_PRIORITY = 0x6
+- RTA_PREFSRC = 0x7
+- RTA_METRICS = 0x8
+- RTA_MULTIPATH = 0x9
+- RTA_FLOW = 0xb
+- RTA_CACHEINFO = 0xc
+- RTA_TABLE = 0xf
+- RTN_UNSPEC = 0x0
+- RTN_UNICAST = 0x1
+- RTN_LOCAL = 0x2
+- RTN_BROADCAST = 0x3
+- RTN_ANYCAST = 0x4
+- RTN_MULTICAST = 0x5
+- RTN_BLACKHOLE = 0x6
+- RTN_UNREACHABLE = 0x7
+- RTN_PROHIBIT = 0x8
+- RTN_THROW = 0x9
+- RTN_NAT = 0xa
+- RTN_XRESOLVE = 0xb
+- RTNLGRP_NONE = 0x0
+- RTNLGRP_LINK = 0x1
+- RTNLGRP_NOTIFY = 0x2
+- RTNLGRP_NEIGH = 0x3
+- RTNLGRP_TC = 0x4
+- RTNLGRP_IPV4_IFADDR = 0x5
+- RTNLGRP_IPV4_MROUTE = 0x6
+- RTNLGRP_IPV4_ROUTE = 0x7
+- RTNLGRP_IPV4_RULE = 0x8
+- RTNLGRP_IPV6_IFADDR = 0x9
+- RTNLGRP_IPV6_MROUTE = 0xa
+- RTNLGRP_IPV6_ROUTE = 0xb
+- RTNLGRP_IPV6_IFINFO = 0xc
+- RTNLGRP_IPV6_PREFIX = 0x12
+- RTNLGRP_IPV6_RULE = 0x13
+- RTNLGRP_ND_USEROPT = 0x14
+- SizeofNlMsghdr = 0x10
+- SizeofNlMsgerr = 0x14
+- SizeofRtGenmsg = 0x1
+- SizeofNlAttr = 0x4
+- SizeofRtAttr = 0x4
+- SizeofIfInfomsg = 0x10
+- SizeofIfAddrmsg = 0x8
+- SizeofRtMsg = 0xc
+- SizeofRtNexthop = 0x8
++ SizeofSockFprog = 0x10
+ )
+
+-type NlMsghdr struct {
+- Len uint32
+- Type uint16
+- Flags uint16
+- Seq uint32
+- Pid uint32
+-}
+-
+-type NlMsgerr struct {
+- Error int32
+- Msg NlMsghdr
+-}
+-
+-type RtGenmsg struct {
+- Family uint8
+-}
+-
+-type NlAttr struct {
+- Len uint16
+- Type uint16
+-}
+-
+-type RtAttr struct {
+- Len uint16
+- Type uint16
+-}
+-
+-type IfInfomsg struct {
+- Family uint8
+- X__ifi_pad uint8
+- Type uint16
+- Index int32
+- Flags uint32
+- Change uint32
+-}
+-
+-type IfAddrmsg struct {
+- Family uint8
+- Prefixlen uint8
+- Flags uint8
+- Scope uint8
+- Index uint32
+-}
+-
+-type RtMsg struct {
+- Family uint8
+- Dst_len uint8
+- Src_len uint8
+- Tos uint8
+- Table uint8
+- Protocol uint8
+- Scope uint8
+- Type uint8
+- Flags uint32
+-}
+-
+-type RtNexthop struct {
+- Len uint16
+- Flags uint8
+- Hops uint8
+- Ifindex int32
+-}
+-
+-const (
+- SizeofSockFilter = 0x8
+- SizeofSockFprog = 0x10
+-)
+-
+-type SockFilter struct {
+- Code uint16
+- Jt uint8
+- Jf uint8
+- K uint32
+-}
+-
+-type SockFprog struct {
+- Len uint16
+- Pad_cgo_0 [6]byte
+- Filter *SockFilter
+-}
+-
+-type InotifyEvent struct {
+- Wd int32
+- Mask uint32
+- Cookie uint32
+- Len uint32
+-}
+-
+-const SizeofInotifyEvent = 0x10
+-
+ type PtraceRegs struct {
+ Gpr [32]uint64
+ Nip uint64
+@@ -616,71 +197,37 @@ type Sysinfo_t struct {
+ Freeswap uint64
+ Procs uint16
+ Pad uint16
+- Pad_cgo_0 [4]byte
+ Totalhigh uint64
+ Freehigh uint64
+ Unit uint32
+- X_f [0]uint8
+- Pad_cgo_1 [4]byte
+-}
+-
+-type Utsname struct {
+- Sysname [65]uint8
+- Nodename [65]uint8
+- Release [65]uint8
+- Version [65]uint8
+- Machine [65]uint8
+- Domainname [65]uint8
++ _ [0]uint8
++ _ [4]byte
+ }
+
+ type Ustat_t struct {
+- Tfree int32
+- Pad_cgo_0 [4]byte
+- Tinode uint64
+- Fname [6]uint8
+- Fpack [6]uint8
+- Pad_cgo_1 [4]byte
++ Tfree int32
++ Tinode uint64
++ Fname [6]uint8
++ Fpack [6]uint8
++ _ [4]byte
+ }
+
+ type EpollEvent struct {
+- Events uint32
+- X_padFd int32
+- Fd int32
+- Pad int32
+-}
+-
+-const (
+- AT_FDCWD = -0x64
+- AT_REMOVEDIR = 0x200
+- AT_SYMLINK_FOLLOW = 0x400
+- AT_SYMLINK_NOFOLLOW = 0x100
+-)
+-
+-type PollFd struct {
+- Fd int32
+- Events int16
+- Revents int16
++ Events uint32
++ _ int32
++ Fd int32
++ Pad int32
+ }
+
+ const (
+- POLLIN = 0x1
+- POLLPRI = 0x2
+- POLLOUT = 0x4
+ POLLRDHUP = 0x2000
+- POLLERR = 0x8
+- POLLHUP = 0x10
+- POLLNVAL = 0x20
+ )
+
+ type Sigset_t struct {
+- X__val [16]uint64
++ Val [16]uint64
+ }
+
+-const RNDGETENTCNT = 0x40045200
+-
+-const PERF_IOC_FLAG_GROUP = 0x1
+-
+-const _SC_PAGESIZE = 0x1e
++const _C__NSIG = 0x41
+
+ type Termios struct {
+ Iflag uint32
+@@ -693,20 +240,11 @@ type Termios struct {
+ Ospeed uint32
+ }
+
+-type Winsize struct {
+- Row uint16
+- Col uint16
+- Xpixel uint16
+- Ypixel uint16
+-}
+-
+ type Taskstats struct {
+ Version uint16
+- Pad_cgo_0 [2]byte
+ Ac_exitcode uint32
+ Ac_flag uint8
+ Ac_nice uint8
+- Pad_cgo_1 [6]byte
+ Cpu_count uint64
+ Cpu_delay_total uint64
+ Blkio_count uint64
+@@ -718,13 +256,12 @@ type Taskstats struct {
+ Ac_comm [32]uint8
+ Ac_sched uint8
+ Ac_pad [3]uint8
+- Pad_cgo_2 [4]byte
++ _ [4]byte
+ Ac_uid uint32
+ Ac_gid uint32
+ Ac_pid uint32
+ Ac_ppid uint32
+ Ac_btime uint32
+- Pad_cgo_3 [4]byte
+ Ac_etime uint64
+ Ac_utime uint64
+ Ac_stime uint64
+@@ -748,55 +285,319 @@ type Taskstats struct {
+ Cpu_scaled_run_real_total uint64
+ Freepages_count uint64
+ Freepages_delay_total uint64
++ Thrashing_count uint64
++ Thrashing_delay_total uint64
++ Ac_btime64 uint64
+ }
+
++type cpuMask uint64
++
+ const (
+- TASKSTATS_CMD_UNSPEC = 0x0
+- TASKSTATS_CMD_GET = 0x1
+- TASKSTATS_CMD_NEW = 0x2
+- TASKSTATS_TYPE_UNSPEC = 0x0
+- TASKSTATS_TYPE_PID = 0x1
+- TASKSTATS_TYPE_TGID = 0x2
+- TASKSTATS_TYPE_STATS = 0x3
+- TASKSTATS_TYPE_AGGR_PID = 0x4
+- TASKSTATS_TYPE_AGGR_TGID = 0x5
+- TASKSTATS_TYPE_NULL = 0x6
+- TASKSTATS_CMD_ATTR_UNSPEC = 0x0
+- TASKSTATS_CMD_ATTR_PID = 0x1
+- TASKSTATS_CMD_ATTR_TGID = 0x2
+- TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3
+- TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4
++ _NCPUBITS = 0x40
+ )
+
+-type Genlmsghdr struct {
+- Cmd uint8
+- Version uint8
+- Reserved uint16
++const (
++ CBitFieldMaskBit0 = 0x8000000000000000
++ CBitFieldMaskBit1 = 0x4000000000000000
++ CBitFieldMaskBit2 = 0x2000000000000000
++ CBitFieldMaskBit3 = 0x1000000000000000
++ CBitFieldMaskBit4 = 0x800000000000000
++ CBitFieldMaskBit5 = 0x400000000000000
++ CBitFieldMaskBit6 = 0x200000000000000
++ CBitFieldMaskBit7 = 0x100000000000000
++ CBitFieldMaskBit8 = 0x80000000000000
++ CBitFieldMaskBit9 = 0x40000000000000
++ CBitFieldMaskBit10 = 0x20000000000000
++ CBitFieldMaskBit11 = 0x10000000000000
++ CBitFieldMaskBit12 = 0x8000000000000
++ CBitFieldMaskBit13 = 0x4000000000000
++ CBitFieldMaskBit14 = 0x2000000000000
++ CBitFieldMaskBit15 = 0x1000000000000
++ CBitFieldMaskBit16 = 0x800000000000
++ CBitFieldMaskBit17 = 0x400000000000
++ CBitFieldMaskBit18 = 0x200000000000
++ CBitFieldMaskBit19 = 0x100000000000
++ CBitFieldMaskBit20 = 0x80000000000
++ CBitFieldMaskBit21 = 0x40000000000
++ CBitFieldMaskBit22 = 0x20000000000
++ CBitFieldMaskBit23 = 0x10000000000
++ CBitFieldMaskBit24 = 0x8000000000
++ CBitFieldMaskBit25 = 0x4000000000
++ CBitFieldMaskBit26 = 0x2000000000
++ CBitFieldMaskBit27 = 0x1000000000
++ CBitFieldMaskBit28 = 0x800000000
++ CBitFieldMaskBit29 = 0x400000000
++ CBitFieldMaskBit30 = 0x200000000
++ CBitFieldMaskBit31 = 0x100000000
++ CBitFieldMaskBit32 = 0x80000000
++ CBitFieldMaskBit33 = 0x40000000
++ CBitFieldMaskBit34 = 0x20000000
++ CBitFieldMaskBit35 = 0x10000000
++ CBitFieldMaskBit36 = 0x8000000
++ CBitFieldMaskBit37 = 0x4000000
++ CBitFieldMaskBit38 = 0x2000000
++ CBitFieldMaskBit39 = 0x1000000
++ CBitFieldMaskBit40 = 0x800000
++ CBitFieldMaskBit41 = 0x400000
++ CBitFieldMaskBit42 = 0x200000
++ CBitFieldMaskBit43 = 0x100000
++ CBitFieldMaskBit44 = 0x80000
++ CBitFieldMaskBit45 = 0x40000
++ CBitFieldMaskBit46 = 0x20000
++ CBitFieldMaskBit47 = 0x10000
++ CBitFieldMaskBit48 = 0x8000
++ CBitFieldMaskBit49 = 0x4000
++ CBitFieldMaskBit50 = 0x2000
++ CBitFieldMaskBit51 = 0x1000
++ CBitFieldMaskBit52 = 0x800
++ CBitFieldMaskBit53 = 0x400
++ CBitFieldMaskBit54 = 0x200
++ CBitFieldMaskBit55 = 0x100
++ CBitFieldMaskBit56 = 0x80
++ CBitFieldMaskBit57 = 0x40
++ CBitFieldMaskBit58 = 0x20
++ CBitFieldMaskBit59 = 0x10
++ CBitFieldMaskBit60 = 0x8
++ CBitFieldMaskBit61 = 0x4
++ CBitFieldMaskBit62 = 0x2
++ CBitFieldMaskBit63 = 0x1
++)
++
++type SockaddrStorage struct {
++ Family uint16
++ _ [118]uint8
++ _ uint64
++}
++
++type HDGeometry struct {
++ Heads uint8
++ Sectors uint8
++ Cylinders uint16
++ Start uint64
++}
++
++type Statfs_t struct {
++ Type int64
++ Bsize int64
++ Blocks uint64
++ Bfree uint64
++ Bavail uint64
++ Files uint64
++ Ffree uint64
++ Fsid Fsid
++ Namelen int64
++ Frsize int64
++ Flags int64
++ Spare [4]int64
++}
++
++type TpacketHdr struct {
++ Status uint64
++ Len uint32
++ Snaplen uint32
++ Mac uint16
++ Net uint16
++ Sec uint32
++ Usec uint32
++ _ [4]byte
+ }
+
+ const (
+- CTRL_CMD_UNSPEC = 0x0
+- CTRL_CMD_NEWFAMILY = 0x1
+- CTRL_CMD_DELFAMILY = 0x2
+- CTRL_CMD_GETFAMILY = 0x3
+- CTRL_CMD_NEWOPS = 0x4
+- CTRL_CMD_DELOPS = 0x5
+- CTRL_CMD_GETOPS = 0x6
+- CTRL_CMD_NEWMCAST_GRP = 0x7
+- CTRL_CMD_DELMCAST_GRP = 0x8
+- CTRL_CMD_GETMCAST_GRP = 0x9
+- CTRL_ATTR_UNSPEC = 0x0
+- CTRL_ATTR_FAMILY_ID = 0x1
+- CTRL_ATTR_FAMILY_NAME = 0x2
+- CTRL_ATTR_VERSION = 0x3
+- CTRL_ATTR_HDRSIZE = 0x4
+- CTRL_ATTR_MAXATTR = 0x5
+- CTRL_ATTR_OPS = 0x6
+- CTRL_ATTR_MCAST_GROUPS = 0x7
+- CTRL_ATTR_OP_UNSPEC = 0x0
+- CTRL_ATTR_OP_ID = 0x1
+- CTRL_ATTR_OP_FLAGS = 0x2
+- CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0
+- CTRL_ATTR_MCAST_GRP_NAME = 0x1
+- CTRL_ATTR_MCAST_GRP_ID = 0x2
++ SizeofTpacketHdr = 0x20
+ )
++
++type RTCPLLInfo struct {
++ Ctrl int32
++ Value int32
++ Max int32
++ Min int32
++ Posmult int32
++ Negmult int32
++ Clock int64
++}
++
++type BlkpgPartition struct {
++ Start int64
++ Length int64
++ Pno int32
++ Devname [64]uint8
++ Volname [64]uint8
++ _ [4]byte
++}
++
++const (
++ BLKPG = 0x20001269
++)
++
++type XDPUmemReg struct {
++ Addr uint64
++ Len uint64
++ Size uint32
++ Headroom uint32
++ Flags uint32
++ _ [4]byte
++}
++
++type CryptoUserAlg struct {
++ Name [64]uint8
++ Driver_name [64]uint8
++ Module_name [64]uint8
++ Type uint32
++ Mask uint32
++ Refcnt uint32
++ Flags uint32
++}
++
++type CryptoStatAEAD struct {
++ Type [64]uint8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatAKCipher struct {
++ Type [64]uint8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Verify_cnt uint64
++ Sign_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatCipher struct {
++ Type [64]uint8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatCompress struct {
++ Type [64]uint8
++ Compress_cnt uint64
++ Compress_tlen uint64
++ Decompress_cnt uint64
++ Decompress_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatHash struct {
++ Type [64]uint8
++ Hash_cnt uint64
++ Hash_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatKPP struct {
++ Type [64]uint8
++ Setsecret_cnt uint64
++ Generate_public_key_cnt uint64
++ Compute_shared_secret_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatRNG struct {
++ Type [64]uint8
++ Generate_cnt uint64
++ Generate_tlen uint64
++ Seed_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatLarval struct {
++ Type [64]uint8
++}
++
++type CryptoReportLarval struct {
++ Type [64]uint8
++}
++
++type CryptoReportHash struct {
++ Type [64]uint8
++ Blocksize uint32
++ Digestsize uint32
++}
++
++type CryptoReportCipher struct {
++ Type [64]uint8
++ Blocksize uint32
++ Min_keysize uint32
++ Max_keysize uint32
++}
++
++type CryptoReportBlkCipher struct {
++ Type [64]uint8
++ Geniv [64]uint8
++ Blocksize uint32
++ Min_keysize uint32
++ Max_keysize uint32
++ Ivsize uint32
++}
++
++type CryptoReportAEAD struct {
++ Type [64]uint8
++ Geniv [64]uint8
++ Blocksize uint32
++ Maxauthsize uint32
++ Ivsize uint32
++}
++
++type CryptoReportComp struct {
++ Type [64]uint8
++}
++
++type CryptoReportRNG struct {
++ Type [64]uint8
++ Seedsize uint32
++}
++
++type CryptoReportAKCipher struct {
++ Type [64]uint8
++}
++
++type CryptoReportKPP struct {
++ Type [64]uint8
++}
++
++type CryptoReportAcomp struct {
++ Type [64]uint8
++}
++
++type LoopInfo struct {
++ Number int32
++ Device uint64
++ Inode uint64
++ Rdevice uint64
++ Offset int32
++ Encrypt_type int32
++ Encrypt_key_size int32
++ Flags int32
++ Name [64]uint8
++ Encrypt_key [32]uint8
++ Init [2]uint64
++ Reserved [4]uint8
++ _ [4]byte
++}
++
++type TIPCSubscr struct {
++ Seq TIPCServiceRange
++ Timeout uint32
++ Filter uint32
++ Handle [8]uint8
++}
++
++type TIPCSIOCLNReq struct {
++ Peer uint32
++ Id uint32
++ Linkname [68]uint8
++}
++
++type TIPCSIOCNodeIDReq struct {
++ Peer uint32
++ Id [16]uint8
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
+index b2b59992..046c2deb 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
+@@ -6,19 +6,12 @@
+ package unix
+
+ const (
+- sizeofPtr = 0x8
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x8
+- sizeofLongLong = 0x8
+- PathMax = 0x1000
++ SizeofPtr = 0x8
++ SizeofLong = 0x8
+ )
+
+ type (
+- _C_short int16
+- _C_int int32
+- _C_long int64
+- _C_long_long int64
++ _C_long int64
+ )
+
+ type Timespec struct {
+@@ -33,13 +26,11 @@ type Timeval struct {
+
+ type Timex struct {
+ Modes uint32
+- Pad_cgo_0 [4]byte
+ Offset int64
+ Freq int64
+ Maxerror int64
+ Esterror int64
+ Status int32
+- Pad_cgo_1 [4]byte
+ Constant int64
+ Precision int64
+ Tolerance int64
+@@ -48,14 +39,13 @@ type Timex struct {
+ Ppsfreq int64
+ Jitter int64
+ Shift int32
+- Pad_cgo_2 [4]byte
+ Stabil int64
+ Jitcnt int64
+ Calcnt int64
+ Errcnt int64
+ Stbcnt int64
+ Tai int32
+- Pad_cgo_3 [44]byte
++ _ [44]byte
+ }
+
+ type Time_t int64
+@@ -91,13 +81,6 @@ type Rusage struct {
+ Nivcsw int64
+ }
+
+-type Rlimit struct {
+- Cur uint64
+- Max uint64
+-}
+-
+-type _Gid_t uint32
+-
+ type Stat_t struct {
+ Dev uint64
+ Ino uint64
+@@ -105,7 +88,7 @@ type Stat_t struct {
+ Mode uint32
+ Uid uint32
+ Gid uint32
+- X__pad2 int32
++ _ int32
+ Rdev uint64
+ Size int64
+ Blksize int64
+@@ -118,139 +101,29 @@ type Stat_t struct {
+ _ uint64
+ }
+
+-type Statfs_t struct {
+- Type int64
+- Bsize int64
+- Blocks uint64
+- Bfree uint64
+- Bavail uint64
+- Files uint64
+- Ffree uint64
+- Fsid Fsid
+- Namelen int64
+- Frsize int64
+- Flags int64
+- Spare [4]int64
+-}
+-
+ type Dirent struct {
+- Ino uint64
+- Off int64
+- Reclen uint16
+- Type uint8
+- Name [256]uint8
+- Pad_cgo_0 [5]byte
+-}
+-
+-type Fsid struct {
+- X__val [2]int32
++ Ino uint64
++ Off int64
++ Reclen uint16
++ Type uint8
++ Name [256]uint8
++ _ [5]byte
+ }
+
+ type Flock_t struct {
+- Type int16
+- Whence int16
+- Pad_cgo_0 [4]byte
+- Start int64
+- Len int64
+- Pid int32
+- Pad_cgo_1 [4]byte
+-}
+-
+-type FscryptPolicy struct {
+- Version uint8
+- Contents_encryption_mode uint8
+- Filenames_encryption_mode uint8
+- Flags uint8
+- Master_key_descriptor [8]uint8
+-}
+-
+-type FscryptKey struct {
+- Mode uint32
+- Raw [64]uint8
+- Size uint32
+-}
+-
+-type KeyctlDHParams struct {
+- Private int32
+- Prime int32
+- Base int32
++ Type int16
++ Whence int16
++ Start int64
++ Len int64
++ Pid int32
++ _ [4]byte
+ }
+
+ const (
+- FADV_NORMAL = 0x0
+- FADV_RANDOM = 0x1
+- FADV_SEQUENTIAL = 0x2
+- FADV_WILLNEED = 0x3
+- FADV_DONTNEED = 0x4
+- FADV_NOREUSE = 0x5
++ FADV_DONTNEED = 0x4
++ FADV_NOREUSE = 0x5
+ )
+
+-type RawSockaddrInet4 struct {
+- Family uint16
+- Port uint16
+- Addr [4]byte /* in_addr */
+- Zero [8]uint8
+-}
+-
+-type RawSockaddrInet6 struct {
+- Family uint16
+- Port uint16
+- Flowinfo uint32
+- Addr [16]byte /* in6_addr */
+- Scope_id uint32
+-}
+-
+-type RawSockaddrUnix struct {
+- Family uint16
+- Path [108]int8
+-}
+-
+-type RawSockaddrLinklayer struct {
+- Family uint16
+- Protocol uint16
+- Ifindex int32
+- Hatype uint16
+- Pkttype uint8
+- Halen uint8
+- Addr [8]uint8
+-}
+-
+-type RawSockaddrNetlink struct {
+- Family uint16
+- Pad uint16
+- Pid uint32
+- Groups uint32
+-}
+-
+-type RawSockaddrHCI struct {
+- Family uint16
+- Dev uint16
+- Channel uint16
+-}
+-
+-type RawSockaddrCAN struct {
+- Family uint16
+- Pad_cgo_0 [2]byte
+- Ifindex int32
+- Addr [8]byte
+-}
+-
+-type RawSockaddrALG struct {
+- Family uint16
+- Type [14]uint8
+- Feat uint32
+- Mask uint32
+- Name [64]uint8
+-}
+-
+-type RawSockaddrVM struct {
+- Family uint16
+- Reserved1 uint16
+- Port uint32
+- Cid uint32
+- Zero [4]uint8
+-}
+-
+ type RawSockaddr struct {
+ Family uint16
+ Data [14]uint8
+@@ -261,51 +134,20 @@ type RawSockaddrAny struct {
+ Pad [96]uint8
+ }
+
+-type _Socklen uint32
+-
+-type Linger struct {
+- Onoff int32
+- Linger int32
+-}
+-
+ type Iovec struct {
+ Base *byte
+ Len uint64
+ }
+
+-type IPMreq struct {
+- Multiaddr [4]byte /* in_addr */
+- Interface [4]byte /* in_addr */
+-}
+-
+-type IPMreqn struct {
+- Multiaddr [4]byte /* in_addr */
+- Address [4]byte /* in_addr */
+- Ifindex int32
+-}
+-
+-type IPv6Mreq struct {
+- Multiaddr [16]byte /* in6_addr */
+- Interface uint32
+-}
+-
+-type PacketMreq struct {
+- Ifindex int32
+- Type uint16
+- Alen uint16
+- Address [8]uint8
+-}
+-
+ type Msghdr struct {
+ Name *byte
+ Namelen uint32
+- Pad_cgo_0 [4]byte
+ Iov *Iovec
+ Iovlen uint64
+ Control *byte
+ Controllen uint64
+ Flags int32
+- Pad_cgo_1 [4]byte
++ _ [4]byte
+ }
+
+ type Cmsghdr struct {
+@@ -314,277 +156,16 @@ type Cmsghdr struct {
+ Type int32
+ }
+
+-type Inet4Pktinfo struct {
+- Ifindex int32
+- Spec_dst [4]byte /* in_addr */
+- Addr [4]byte /* in_addr */
+-}
+-
+-type Inet6Pktinfo struct {
+- Addr [16]byte /* in6_addr */
+- Ifindex uint32
+-}
+-
+-type IPv6MTUInfo struct {
+- Addr RawSockaddrInet6
+- Mtu uint32
+-}
+-
+-type ICMPv6Filter struct {
+- Data [8]uint32
+-}
+-
+-type Ucred struct {
+- Pid int32
+- Uid uint32
+- Gid uint32
+-}
+-
+-type TCPInfo struct {
+- State uint8
+- Ca_state uint8
+- Retransmits uint8
+- Probes uint8
+- Backoff uint8
+- Options uint8
+- Pad_cgo_0 [2]byte
+- Rto uint32
+- Ato uint32
+- Snd_mss uint32
+- Rcv_mss uint32
+- Unacked uint32
+- Sacked uint32
+- Lost uint32
+- Retrans uint32
+- Fackets uint32
+- Last_data_sent uint32
+- Last_ack_sent uint32
+- Last_data_recv uint32
+- Last_ack_recv uint32
+- Pmtu uint32
+- Rcv_ssthresh uint32
+- Rtt uint32
+- Rttvar uint32
+- Snd_ssthresh uint32
+- Snd_cwnd uint32
+- Advmss uint32
+- Reordering uint32
+- Rcv_rtt uint32
+- Rcv_space uint32
+- Total_retrans uint32
+-}
+-
+ const (
+- SizeofSockaddrInet4 = 0x10
+- SizeofSockaddrInet6 = 0x1c
+- SizeofSockaddrAny = 0x70
+- SizeofSockaddrUnix = 0x6e
+- SizeofSockaddrLinklayer = 0x14
+- SizeofSockaddrNetlink = 0xc
+- SizeofSockaddrHCI = 0x6
+- SizeofSockaddrCAN = 0x10
+- SizeofSockaddrALG = 0x58
+- SizeofSockaddrVM = 0x10
+- SizeofLinger = 0x8
+- SizeofIovec = 0x10
+- SizeofIPMreq = 0x8
+- SizeofIPMreqn = 0xc
+- SizeofIPv6Mreq = 0x14
+- SizeofPacketMreq = 0x10
+- SizeofMsghdr = 0x38
+- SizeofCmsghdr = 0x10
+- SizeofInet4Pktinfo = 0xc
+- SizeofInet6Pktinfo = 0x14
+- SizeofIPv6MTUInfo = 0x20
+- SizeofICMPv6Filter = 0x20
+- SizeofUcred = 0xc
+- SizeofTCPInfo = 0x68
++ SizeofIovec = 0x10
++ SizeofMsghdr = 0x38
++ SizeofCmsghdr = 0x10
+ )
+
+ const (
+- IFA_UNSPEC = 0x0
+- IFA_ADDRESS = 0x1
+- IFA_LOCAL = 0x2
+- IFA_LABEL = 0x3
+- IFA_BROADCAST = 0x4
+- IFA_ANYCAST = 0x5
+- IFA_CACHEINFO = 0x6
+- IFA_MULTICAST = 0x7
+- IFLA_UNSPEC = 0x0
+- IFLA_ADDRESS = 0x1
+- IFLA_BROADCAST = 0x2
+- IFLA_IFNAME = 0x3
+- IFLA_MTU = 0x4
+- IFLA_LINK = 0x5
+- IFLA_QDISC = 0x6
+- IFLA_STATS = 0x7
+- IFLA_COST = 0x8
+- IFLA_PRIORITY = 0x9
+- IFLA_MASTER = 0xa
+- IFLA_WIRELESS = 0xb
+- IFLA_PROTINFO = 0xc
+- IFLA_TXQLEN = 0xd
+- IFLA_MAP = 0xe
+- IFLA_WEIGHT = 0xf
+- IFLA_OPERSTATE = 0x10
+- IFLA_LINKMODE = 0x11
+- IFLA_LINKINFO = 0x12
+- IFLA_NET_NS_PID = 0x13
+- IFLA_IFALIAS = 0x14
+- IFLA_MAX = 0x2b
+- RT_SCOPE_UNIVERSE = 0x0
+- RT_SCOPE_SITE = 0xc8
+- RT_SCOPE_LINK = 0xfd
+- RT_SCOPE_HOST = 0xfe
+- RT_SCOPE_NOWHERE = 0xff
+- RT_TABLE_UNSPEC = 0x0
+- RT_TABLE_COMPAT = 0xfc
+- RT_TABLE_DEFAULT = 0xfd
+- RT_TABLE_MAIN = 0xfe
+- RT_TABLE_LOCAL = 0xff
+- RT_TABLE_MAX = 0xffffffff
+- RTA_UNSPEC = 0x0
+- RTA_DST = 0x1
+- RTA_SRC = 0x2
+- RTA_IIF = 0x3
+- RTA_OIF = 0x4
+- RTA_GATEWAY = 0x5
+- RTA_PRIORITY = 0x6
+- RTA_PREFSRC = 0x7
+- RTA_METRICS = 0x8
+- RTA_MULTIPATH = 0x9
+- RTA_FLOW = 0xb
+- RTA_CACHEINFO = 0xc
+- RTA_TABLE = 0xf
+- RTN_UNSPEC = 0x0
+- RTN_UNICAST = 0x1
+- RTN_LOCAL = 0x2
+- RTN_BROADCAST = 0x3
+- RTN_ANYCAST = 0x4
+- RTN_MULTICAST = 0x5
+- RTN_BLACKHOLE = 0x6
+- RTN_UNREACHABLE = 0x7
+- RTN_PROHIBIT = 0x8
+- RTN_THROW = 0x9
+- RTN_NAT = 0xa
+- RTN_XRESOLVE = 0xb
+- RTNLGRP_NONE = 0x0
+- RTNLGRP_LINK = 0x1
+- RTNLGRP_NOTIFY = 0x2
+- RTNLGRP_NEIGH = 0x3
+- RTNLGRP_TC = 0x4
+- RTNLGRP_IPV4_IFADDR = 0x5
+- RTNLGRP_IPV4_MROUTE = 0x6
+- RTNLGRP_IPV4_ROUTE = 0x7
+- RTNLGRP_IPV4_RULE = 0x8
+- RTNLGRP_IPV6_IFADDR = 0x9
+- RTNLGRP_IPV6_MROUTE = 0xa
+- RTNLGRP_IPV6_ROUTE = 0xb
+- RTNLGRP_IPV6_IFINFO = 0xc
+- RTNLGRP_IPV6_PREFIX = 0x12
+- RTNLGRP_IPV6_RULE = 0x13
+- RTNLGRP_ND_USEROPT = 0x14
+- SizeofNlMsghdr = 0x10
+- SizeofNlMsgerr = 0x14
+- SizeofRtGenmsg = 0x1
+- SizeofNlAttr = 0x4
+- SizeofRtAttr = 0x4
+- SizeofIfInfomsg = 0x10
+- SizeofIfAddrmsg = 0x8
+- SizeofRtMsg = 0xc
+- SizeofRtNexthop = 0x8
++ SizeofSockFprog = 0x10
+ )
+
+-type NlMsghdr struct {
+- Len uint32
+- Type uint16
+- Flags uint16
+- Seq uint32
+- Pid uint32
+-}
+-
+-type NlMsgerr struct {
+- Error int32
+- Msg NlMsghdr
+-}
+-
+-type RtGenmsg struct {
+- Family uint8
+-}
+-
+-type NlAttr struct {
+- Len uint16
+- Type uint16
+-}
+-
+-type RtAttr struct {
+- Len uint16
+- Type uint16
+-}
+-
+-type IfInfomsg struct {
+- Family uint8
+- X__ifi_pad uint8
+- Type uint16
+- Index int32
+- Flags uint32
+- Change uint32
+-}
+-
+-type IfAddrmsg struct {
+- Family uint8
+- Prefixlen uint8
+- Flags uint8
+- Scope uint8
+- Index uint32
+-}
+-
+-type RtMsg struct {
+- Family uint8
+- Dst_len uint8
+- Src_len uint8
+- Tos uint8
+- Table uint8
+- Protocol uint8
+- Scope uint8
+- Type uint8
+- Flags uint32
+-}
+-
+-type RtNexthop struct {
+- Len uint16
+- Flags uint8
+- Hops uint8
+- Ifindex int32
+-}
+-
+-const (
+- SizeofSockFilter = 0x8
+- SizeofSockFprog = 0x10
+-)
+-
+-type SockFilter struct {
+- Code uint16
+- Jt uint8
+- Jf uint8
+- K uint32
+-}
+-
+-type SockFprog struct {
+- Len uint16
+- Pad_cgo_0 [6]byte
+- Filter *SockFilter
+-}
+-
+-type InotifyEvent struct {
+- Wd int32
+- Mask uint32
+- Cookie uint32
+- Len uint32
+-}
+-
+-const SizeofInotifyEvent = 0x10
+-
+ type PtraceRegs struct {
+ Gpr [32]uint64
+ Nip uint64
+@@ -616,71 +197,37 @@ type Sysinfo_t struct {
+ Freeswap uint64
+ Procs uint16
+ Pad uint16
+- Pad_cgo_0 [4]byte
+ Totalhigh uint64
+ Freehigh uint64
+ Unit uint32
+- X_f [0]uint8
+- Pad_cgo_1 [4]byte
+-}
+-
+-type Utsname struct {
+- Sysname [65]uint8
+- Nodename [65]uint8
+- Release [65]uint8
+- Version [65]uint8
+- Machine [65]uint8
+- Domainname [65]uint8
++ _ [0]uint8
++ _ [4]byte
+ }
+
+ type Ustat_t struct {
+- Tfree int32
+- Pad_cgo_0 [4]byte
+- Tinode uint64
+- Fname [6]uint8
+- Fpack [6]uint8
+- Pad_cgo_1 [4]byte
++ Tfree int32
++ Tinode uint64
++ Fname [6]uint8
++ Fpack [6]uint8
++ _ [4]byte
+ }
+
+ type EpollEvent struct {
+- Events uint32
+- X_padFd int32
+- Fd int32
+- Pad int32
+-}
+-
+-const (
+- AT_FDCWD = -0x64
+- AT_REMOVEDIR = 0x200
+- AT_SYMLINK_FOLLOW = 0x400
+- AT_SYMLINK_NOFOLLOW = 0x100
+-)
+-
+-type PollFd struct {
+- Fd int32
+- Events int16
+- Revents int16
++ Events uint32
++ _ int32
++ Fd int32
++ Pad int32
+ }
+
+ const (
+- POLLIN = 0x1
+- POLLPRI = 0x2
+- POLLOUT = 0x4
+ POLLRDHUP = 0x2000
+- POLLERR = 0x8
+- POLLHUP = 0x10
+- POLLNVAL = 0x20
+ )
+
+ type Sigset_t struct {
+- X__val [16]uint64
++ Val [16]uint64
+ }
+
+-const RNDGETENTCNT = 0x40045200
+-
+-const PERF_IOC_FLAG_GROUP = 0x1
+-
+-const _SC_PAGESIZE = 0x1e
++const _C__NSIG = 0x41
+
+ type Termios struct {
+ Iflag uint32
+@@ -693,20 +240,11 @@ type Termios struct {
+ Ospeed uint32
+ }
+
+-type Winsize struct {
+- Row uint16
+- Col uint16
+- Xpixel uint16
+- Ypixel uint16
+-}
+-
+ type Taskstats struct {
+ Version uint16
+- Pad_cgo_0 [2]byte
+ Ac_exitcode uint32
+ Ac_flag uint8
+ Ac_nice uint8
+- Pad_cgo_1 [6]byte
+ Cpu_count uint64
+ Cpu_delay_total uint64
+ Blkio_count uint64
+@@ -718,13 +256,12 @@ type Taskstats struct {
+ Ac_comm [32]uint8
+ Ac_sched uint8
+ Ac_pad [3]uint8
+- Pad_cgo_2 [4]byte
++ _ [4]byte
+ Ac_uid uint32
+ Ac_gid uint32
+ Ac_pid uint32
+ Ac_ppid uint32
+ Ac_btime uint32
+- Pad_cgo_3 [4]byte
+ Ac_etime uint64
+ Ac_utime uint64
+ Ac_stime uint64
+@@ -748,55 +285,319 @@ type Taskstats struct {
+ Cpu_scaled_run_real_total uint64
+ Freepages_count uint64
+ Freepages_delay_total uint64
++ Thrashing_count uint64
++ Thrashing_delay_total uint64
++ Ac_btime64 uint64
+ }
+
++type cpuMask uint64
++
+ const (
+- TASKSTATS_CMD_UNSPEC = 0x0
+- TASKSTATS_CMD_GET = 0x1
+- TASKSTATS_CMD_NEW = 0x2
+- TASKSTATS_TYPE_UNSPEC = 0x0
+- TASKSTATS_TYPE_PID = 0x1
+- TASKSTATS_TYPE_TGID = 0x2
+- TASKSTATS_TYPE_STATS = 0x3
+- TASKSTATS_TYPE_AGGR_PID = 0x4
+- TASKSTATS_TYPE_AGGR_TGID = 0x5
+- TASKSTATS_TYPE_NULL = 0x6
+- TASKSTATS_CMD_ATTR_UNSPEC = 0x0
+- TASKSTATS_CMD_ATTR_PID = 0x1
+- TASKSTATS_CMD_ATTR_TGID = 0x2
+- TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3
+- TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4
++ _NCPUBITS = 0x40
+ )
+
+-type Genlmsghdr struct {
+- Cmd uint8
+- Version uint8
+- Reserved uint16
++const (
++ CBitFieldMaskBit0 = 0x1
++ CBitFieldMaskBit1 = 0x2
++ CBitFieldMaskBit2 = 0x4
++ CBitFieldMaskBit3 = 0x8
++ CBitFieldMaskBit4 = 0x10
++ CBitFieldMaskBit5 = 0x20
++ CBitFieldMaskBit6 = 0x40
++ CBitFieldMaskBit7 = 0x80
++ CBitFieldMaskBit8 = 0x100
++ CBitFieldMaskBit9 = 0x200
++ CBitFieldMaskBit10 = 0x400
++ CBitFieldMaskBit11 = 0x800
++ CBitFieldMaskBit12 = 0x1000
++ CBitFieldMaskBit13 = 0x2000
++ CBitFieldMaskBit14 = 0x4000
++ CBitFieldMaskBit15 = 0x8000
++ CBitFieldMaskBit16 = 0x10000
++ CBitFieldMaskBit17 = 0x20000
++ CBitFieldMaskBit18 = 0x40000
++ CBitFieldMaskBit19 = 0x80000
++ CBitFieldMaskBit20 = 0x100000
++ CBitFieldMaskBit21 = 0x200000
++ CBitFieldMaskBit22 = 0x400000
++ CBitFieldMaskBit23 = 0x800000
++ CBitFieldMaskBit24 = 0x1000000
++ CBitFieldMaskBit25 = 0x2000000
++ CBitFieldMaskBit26 = 0x4000000
++ CBitFieldMaskBit27 = 0x8000000
++ CBitFieldMaskBit28 = 0x10000000
++ CBitFieldMaskBit29 = 0x20000000
++ CBitFieldMaskBit30 = 0x40000000
++ CBitFieldMaskBit31 = 0x80000000
++ CBitFieldMaskBit32 = 0x100000000
++ CBitFieldMaskBit33 = 0x200000000
++ CBitFieldMaskBit34 = 0x400000000
++ CBitFieldMaskBit35 = 0x800000000
++ CBitFieldMaskBit36 = 0x1000000000
++ CBitFieldMaskBit37 = 0x2000000000
++ CBitFieldMaskBit38 = 0x4000000000
++ CBitFieldMaskBit39 = 0x8000000000
++ CBitFieldMaskBit40 = 0x10000000000
++ CBitFieldMaskBit41 = 0x20000000000
++ CBitFieldMaskBit42 = 0x40000000000
++ CBitFieldMaskBit43 = 0x80000000000
++ CBitFieldMaskBit44 = 0x100000000000
++ CBitFieldMaskBit45 = 0x200000000000
++ CBitFieldMaskBit46 = 0x400000000000
++ CBitFieldMaskBit47 = 0x800000000000
++ CBitFieldMaskBit48 = 0x1000000000000
++ CBitFieldMaskBit49 = 0x2000000000000
++ CBitFieldMaskBit50 = 0x4000000000000
++ CBitFieldMaskBit51 = 0x8000000000000
++ CBitFieldMaskBit52 = 0x10000000000000
++ CBitFieldMaskBit53 = 0x20000000000000
++ CBitFieldMaskBit54 = 0x40000000000000
++ CBitFieldMaskBit55 = 0x80000000000000
++ CBitFieldMaskBit56 = 0x100000000000000
++ CBitFieldMaskBit57 = 0x200000000000000
++ CBitFieldMaskBit58 = 0x400000000000000
++ CBitFieldMaskBit59 = 0x800000000000000
++ CBitFieldMaskBit60 = 0x1000000000000000
++ CBitFieldMaskBit61 = 0x2000000000000000
++ CBitFieldMaskBit62 = 0x4000000000000000
++ CBitFieldMaskBit63 = 0x8000000000000000
++)
++
++type SockaddrStorage struct {
++ Family uint16
++ _ [118]uint8
++ _ uint64
++}
++
++type HDGeometry struct {
++ Heads uint8
++ Sectors uint8
++ Cylinders uint16
++ Start uint64
++}
++
++type Statfs_t struct {
++ Type int64
++ Bsize int64
++ Blocks uint64
++ Bfree uint64
++ Bavail uint64
++ Files uint64
++ Ffree uint64
++ Fsid Fsid
++ Namelen int64
++ Frsize int64
++ Flags int64
++ Spare [4]int64
++}
++
++type TpacketHdr struct {
++ Status uint64
++ Len uint32
++ Snaplen uint32
++ Mac uint16
++ Net uint16
++ Sec uint32
++ Usec uint32
++ _ [4]byte
+ }
+
+ const (
+- CTRL_CMD_UNSPEC = 0x0
+- CTRL_CMD_NEWFAMILY = 0x1
+- CTRL_CMD_DELFAMILY = 0x2
+- CTRL_CMD_GETFAMILY = 0x3
+- CTRL_CMD_NEWOPS = 0x4
+- CTRL_CMD_DELOPS = 0x5
+- CTRL_CMD_GETOPS = 0x6
+- CTRL_CMD_NEWMCAST_GRP = 0x7
+- CTRL_CMD_DELMCAST_GRP = 0x8
+- CTRL_CMD_GETMCAST_GRP = 0x9
+- CTRL_ATTR_UNSPEC = 0x0
+- CTRL_ATTR_FAMILY_ID = 0x1
+- CTRL_ATTR_FAMILY_NAME = 0x2
+- CTRL_ATTR_VERSION = 0x3
+- CTRL_ATTR_HDRSIZE = 0x4
+- CTRL_ATTR_MAXATTR = 0x5
+- CTRL_ATTR_OPS = 0x6
+- CTRL_ATTR_MCAST_GROUPS = 0x7
+- CTRL_ATTR_OP_UNSPEC = 0x0
+- CTRL_ATTR_OP_ID = 0x1
+- CTRL_ATTR_OP_FLAGS = 0x2
+- CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0
+- CTRL_ATTR_MCAST_GRP_NAME = 0x1
+- CTRL_ATTR_MCAST_GRP_ID = 0x2
++ SizeofTpacketHdr = 0x20
+ )
++
++type RTCPLLInfo struct {
++ Ctrl int32
++ Value int32
++ Max int32
++ Min int32
++ Posmult int32
++ Negmult int32
++ Clock int64
++}
++
++type BlkpgPartition struct {
++ Start int64
++ Length int64
++ Pno int32
++ Devname [64]uint8
++ Volname [64]uint8
++ _ [4]byte
++}
++
++const (
++ BLKPG = 0x20001269
++)
++
++type XDPUmemReg struct {
++ Addr uint64
++ Len uint64
++ Size uint32
++ Headroom uint32
++ Flags uint32
++ _ [4]byte
++}
++
++type CryptoUserAlg struct {
++ Name [64]uint8
++ Driver_name [64]uint8
++ Module_name [64]uint8
++ Type uint32
++ Mask uint32
++ Refcnt uint32
++ Flags uint32
++}
++
++type CryptoStatAEAD struct {
++ Type [64]uint8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatAKCipher struct {
++ Type [64]uint8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Verify_cnt uint64
++ Sign_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatCipher struct {
++ Type [64]uint8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatCompress struct {
++ Type [64]uint8
++ Compress_cnt uint64
++ Compress_tlen uint64
++ Decompress_cnt uint64
++ Decompress_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatHash struct {
++ Type [64]uint8
++ Hash_cnt uint64
++ Hash_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatKPP struct {
++ Type [64]uint8
++ Setsecret_cnt uint64
++ Generate_public_key_cnt uint64
++ Compute_shared_secret_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatRNG struct {
++ Type [64]uint8
++ Generate_cnt uint64
++ Generate_tlen uint64
++ Seed_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatLarval struct {
++ Type [64]uint8
++}
++
++type CryptoReportLarval struct {
++ Type [64]uint8
++}
++
++type CryptoReportHash struct {
++ Type [64]uint8
++ Blocksize uint32
++ Digestsize uint32
++}
++
++type CryptoReportCipher struct {
++ Type [64]uint8
++ Blocksize uint32
++ Min_keysize uint32
++ Max_keysize uint32
++}
++
++type CryptoReportBlkCipher struct {
++ Type [64]uint8
++ Geniv [64]uint8
++ Blocksize uint32
++ Min_keysize uint32
++ Max_keysize uint32
++ Ivsize uint32
++}
++
++type CryptoReportAEAD struct {
++ Type [64]uint8
++ Geniv [64]uint8
++ Blocksize uint32
++ Maxauthsize uint32
++ Ivsize uint32
++}
++
++type CryptoReportComp struct {
++ Type [64]uint8
++}
++
++type CryptoReportRNG struct {
++ Type [64]uint8
++ Seedsize uint32
++}
++
++type CryptoReportAKCipher struct {
++ Type [64]uint8
++}
++
++type CryptoReportKPP struct {
++ Type [64]uint8
++}
++
++type CryptoReportAcomp struct {
++ Type [64]uint8
++}
++
++type LoopInfo struct {
++ Number int32
++ Device uint64
++ Inode uint64
++ Rdevice uint64
++ Offset int32
++ Encrypt_type int32
++ Encrypt_key_size int32
++ Flags int32
++ Name [64]uint8
++ Encrypt_key [32]uint8
++ Init [2]uint64
++ Reserved [4]uint8
++ _ [4]byte
++}
++
++type TIPCSubscr struct {
++ Seq TIPCServiceRange
++ Timeout uint32
++ Filter uint32
++ Handle [8]uint8
++}
++
++type TIPCSIOCLNReq struct {
++ Peer uint32
++ Id uint32
++ Linkname [68]uint8
++}
++
++type TIPCSIOCNodeIDReq struct {
++ Peer uint32
++ Id [16]uint8
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go
+new file mode 100644
+index 00000000..0f2f61a6
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go
+@@ -0,0 +1,621 @@
++// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build riscv64,linux
++
++package unix
++
++const (
++ SizeofPtr = 0x8
++ SizeofLong = 0x8
++)
++
++type (
++ _C_long int64
++)
++
++type Timespec struct {
++ Sec int64
++ Nsec int64
++}
++
++type Timeval struct {
++ Sec int64
++ Usec int64
++}
++
++type Timex struct {
++ Modes uint32
++ Offset int64
++ Freq int64
++ Maxerror int64
++ Esterror int64
++ Status int32
++ Constant int64
++ Precision int64
++ Tolerance int64
++ Time Timeval
++ Tick int64
++ Ppsfreq int64
++ Jitter int64
++ Shift int32
++ Stabil int64
++ Jitcnt int64
++ Calcnt int64
++ Errcnt int64
++ Stbcnt int64
++ Tai int32
++ _ [44]byte
++}
++
++type Time_t int64
++
++type Tms struct {
++ Utime int64
++ Stime int64
++ Cutime int64
++ Cstime int64
++}
++
++type Utimbuf struct {
++ Actime int64
++ Modtime int64
++}
++
++type Rusage struct {
++ Utime Timeval
++ Stime Timeval
++ Maxrss int64
++ Ixrss int64
++ Idrss int64
++ Isrss int64
++ Minflt int64
++ Majflt int64
++ Nswap int64
++ Inblock int64
++ Oublock int64
++ Msgsnd int64
++ Msgrcv int64
++ Nsignals int64
++ Nvcsw int64
++ Nivcsw int64
++}
++
++type Stat_t struct {
++ Dev uint64
++ Ino uint64
++ Mode uint32
++ Nlink uint32
++ Uid uint32
++ Gid uint32
++ Rdev uint64
++ _ uint64
++ Size int64
++ Blksize int32
++ _ int32
++ Blocks int64
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ _ [2]int32
++}
++
++type Dirent struct {
++ Ino uint64
++ Off int64
++ Reclen uint16
++ Type uint8
++ Name [256]uint8
++ _ [5]byte
++}
++
++type Flock_t struct {
++ Type int16
++ Whence int16
++ Start int64
++ Len int64
++ Pid int32
++ _ [4]byte
++}
++
++const (
++ FADV_DONTNEED = 0x4
++ FADV_NOREUSE = 0x5
++)
++
++type RawSockaddr struct {
++ Family uint16
++ Data [14]uint8
++}
++
++type RawSockaddrAny struct {
++ Addr RawSockaddr
++ Pad [96]uint8
++}
++
++type Iovec struct {
++ Base *byte
++ Len uint64
++}
++
++type Msghdr struct {
++ Name *byte
++ Namelen uint32
++ Iov *Iovec
++ Iovlen uint64
++ Control *byte
++ Controllen uint64
++ Flags int32
++ _ [4]byte
++}
++
++type Cmsghdr struct {
++ Len uint64
++ Level int32
++ Type int32
++}
++
++const (
++ SizeofIovec = 0x10
++ SizeofMsghdr = 0x38
++ SizeofCmsghdr = 0x10
++)
++
++const (
++ SizeofSockFprog = 0x10
++)
++
++type PtraceRegs struct {
++ Pc uint64
++ Ra uint64
++ Sp uint64
++ Gp uint64
++ Tp uint64
++ T0 uint64
++ T1 uint64
++ T2 uint64
++ S0 uint64
++ S1 uint64
++ A0 uint64
++ A1 uint64
++ A2 uint64
++ A3 uint64
++ A4 uint64
++ A5 uint64
++ A6 uint64
++ A7 uint64
++ S2 uint64
++ S3 uint64
++ S4 uint64
++ S5 uint64
++ S6 uint64
++ S7 uint64
++ S8 uint64
++ S9 uint64
++ S10 uint64
++ S11 uint64
++ T3 uint64
++ T4 uint64
++ T5 uint64
++ T6 uint64
++}
++
++type FdSet struct {
++ Bits [16]int64
++}
++
++type Sysinfo_t struct {
++ Uptime int64
++ Loads [3]uint64
++ Totalram uint64
++ Freeram uint64
++ Sharedram uint64
++ Bufferram uint64
++ Totalswap uint64
++ Freeswap uint64
++ Procs uint16
++ Pad uint16
++ Totalhigh uint64
++ Freehigh uint64
++ Unit uint32
++ _ [0]uint8
++ _ [4]byte
++}
++
++type Ustat_t struct {
++ Tfree int32
++ Tinode uint64
++ Fname [6]uint8
++ Fpack [6]uint8
++ _ [4]byte
++}
++
++type EpollEvent struct {
++ Events uint32
++ _ int32
++ Fd int32
++ Pad int32
++}
++
++const (
++ POLLRDHUP = 0x2000
++)
++
++type Sigset_t struct {
++ Val [16]uint64
++}
++
++const _C__NSIG = 0x41
++
++type Termios struct {
++ Iflag uint32
++ Oflag uint32
++ Cflag uint32
++ Lflag uint32
++ Line uint8
++ Cc [19]uint8
++ Ispeed uint32
++ Ospeed uint32
++}
++
++type Taskstats struct {
++ Version uint16
++ Ac_exitcode uint32
++ Ac_flag uint8
++ Ac_nice uint8
++ Cpu_count uint64
++ Cpu_delay_total uint64
++ Blkio_count uint64
++ Blkio_delay_total uint64
++ Swapin_count uint64
++ Swapin_delay_total uint64
++ Cpu_run_real_total uint64
++ Cpu_run_virtual_total uint64
++ Ac_comm [32]uint8
++ Ac_sched uint8
++ Ac_pad [3]uint8
++ _ [4]byte
++ Ac_uid uint32
++ Ac_gid uint32
++ Ac_pid uint32
++ Ac_ppid uint32
++ Ac_btime uint32
++ Ac_etime uint64
++ Ac_utime uint64
++ Ac_stime uint64
++ Ac_minflt uint64
++ Ac_majflt uint64
++ Coremem uint64
++ Virtmem uint64
++ Hiwater_rss uint64
++ Hiwater_vm uint64
++ Read_char uint64
++ Write_char uint64
++ Read_syscalls uint64
++ Write_syscalls uint64
++ Read_bytes uint64
++ Write_bytes uint64
++ Cancelled_write_bytes uint64
++ Nvcsw uint64
++ Nivcsw uint64
++ Ac_utimescaled uint64
++ Ac_stimescaled uint64
++ Cpu_scaled_run_real_total uint64
++ Freepages_count uint64
++ Freepages_delay_total uint64
++ Thrashing_count uint64
++ Thrashing_delay_total uint64
++ Ac_btime64 uint64
++}
++
++type cpuMask uint64
++
++const (
++ _NCPUBITS = 0x40
++)
++
++const (
++ CBitFieldMaskBit0 = 0x1
++ CBitFieldMaskBit1 = 0x2
++ CBitFieldMaskBit2 = 0x4
++ CBitFieldMaskBit3 = 0x8
++ CBitFieldMaskBit4 = 0x10
++ CBitFieldMaskBit5 = 0x20
++ CBitFieldMaskBit6 = 0x40
++ CBitFieldMaskBit7 = 0x80
++ CBitFieldMaskBit8 = 0x100
++ CBitFieldMaskBit9 = 0x200
++ CBitFieldMaskBit10 = 0x400
++ CBitFieldMaskBit11 = 0x800
++ CBitFieldMaskBit12 = 0x1000
++ CBitFieldMaskBit13 = 0x2000
++ CBitFieldMaskBit14 = 0x4000
++ CBitFieldMaskBit15 = 0x8000
++ CBitFieldMaskBit16 = 0x10000
++ CBitFieldMaskBit17 = 0x20000
++ CBitFieldMaskBit18 = 0x40000
++ CBitFieldMaskBit19 = 0x80000
++ CBitFieldMaskBit20 = 0x100000
++ CBitFieldMaskBit21 = 0x200000
++ CBitFieldMaskBit22 = 0x400000
++ CBitFieldMaskBit23 = 0x800000
++ CBitFieldMaskBit24 = 0x1000000
++ CBitFieldMaskBit25 = 0x2000000
++ CBitFieldMaskBit26 = 0x4000000
++ CBitFieldMaskBit27 = 0x8000000
++ CBitFieldMaskBit28 = 0x10000000
++ CBitFieldMaskBit29 = 0x20000000
++ CBitFieldMaskBit30 = 0x40000000
++ CBitFieldMaskBit31 = 0x80000000
++ CBitFieldMaskBit32 = 0x100000000
++ CBitFieldMaskBit33 = 0x200000000
++ CBitFieldMaskBit34 = 0x400000000
++ CBitFieldMaskBit35 = 0x800000000
++ CBitFieldMaskBit36 = 0x1000000000
++ CBitFieldMaskBit37 = 0x2000000000
++ CBitFieldMaskBit38 = 0x4000000000
++ CBitFieldMaskBit39 = 0x8000000000
++ CBitFieldMaskBit40 = 0x10000000000
++ CBitFieldMaskBit41 = 0x20000000000
++ CBitFieldMaskBit42 = 0x40000000000
++ CBitFieldMaskBit43 = 0x80000000000
++ CBitFieldMaskBit44 = 0x100000000000
++ CBitFieldMaskBit45 = 0x200000000000
++ CBitFieldMaskBit46 = 0x400000000000
++ CBitFieldMaskBit47 = 0x800000000000
++ CBitFieldMaskBit48 = 0x1000000000000
++ CBitFieldMaskBit49 = 0x2000000000000
++ CBitFieldMaskBit50 = 0x4000000000000
++ CBitFieldMaskBit51 = 0x8000000000000
++ CBitFieldMaskBit52 = 0x10000000000000
++ CBitFieldMaskBit53 = 0x20000000000000
++ CBitFieldMaskBit54 = 0x40000000000000
++ CBitFieldMaskBit55 = 0x80000000000000
++ CBitFieldMaskBit56 = 0x100000000000000
++ CBitFieldMaskBit57 = 0x200000000000000
++ CBitFieldMaskBit58 = 0x400000000000000
++ CBitFieldMaskBit59 = 0x800000000000000
++ CBitFieldMaskBit60 = 0x1000000000000000
++ CBitFieldMaskBit61 = 0x2000000000000000
++ CBitFieldMaskBit62 = 0x4000000000000000
++ CBitFieldMaskBit63 = 0x8000000000000000
++)
++
++type SockaddrStorage struct {
++ Family uint16
++ _ [118]uint8
++ _ uint64
++}
++
++type HDGeometry struct {
++ Heads uint8
++ Sectors uint8
++ Cylinders uint16
++ Start uint64
++}
++
++type Statfs_t struct {
++ Type int64
++ Bsize int64
++ Blocks uint64
++ Bfree uint64
++ Bavail uint64
++ Files uint64
++ Ffree uint64
++ Fsid Fsid
++ Namelen int64
++ Frsize int64
++ Flags int64
++ Spare [4]int64
++}
++
++type TpacketHdr struct {
++ Status uint64
++ Len uint32
++ Snaplen uint32
++ Mac uint16
++ Net uint16
++ Sec uint32
++ Usec uint32
++ _ [4]byte
++}
++
++const (
++ SizeofTpacketHdr = 0x20
++)
++
++type RTCPLLInfo struct {
++ Ctrl int32
++ Value int32
++ Max int32
++ Min int32
++ Posmult int32
++ Negmult int32
++ Clock int64
++}
++
++type BlkpgPartition struct {
++ Start int64
++ Length int64
++ Pno int32
++ Devname [64]uint8
++ Volname [64]uint8
++ _ [4]byte
++}
++
++const (
++ BLKPG = 0x1269
++)
++
++type XDPUmemReg struct {
++ Addr uint64
++ Len uint64
++ Size uint32
++ Headroom uint32
++ Flags uint32
++ _ [4]byte
++}
++
++type CryptoUserAlg struct {
++ Name [64]uint8
++ Driver_name [64]uint8
++ Module_name [64]uint8
++ Type uint32
++ Mask uint32
++ Refcnt uint32
++ Flags uint32
++}
++
++type CryptoStatAEAD struct {
++ Type [64]uint8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatAKCipher struct {
++ Type [64]uint8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Verify_cnt uint64
++ Sign_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatCipher struct {
++ Type [64]uint8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatCompress struct {
++ Type [64]uint8
++ Compress_cnt uint64
++ Compress_tlen uint64
++ Decompress_cnt uint64
++ Decompress_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatHash struct {
++ Type [64]uint8
++ Hash_cnt uint64
++ Hash_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatKPP struct {
++ Type [64]uint8
++ Setsecret_cnt uint64
++ Generate_public_key_cnt uint64
++ Compute_shared_secret_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatRNG struct {
++ Type [64]uint8
++ Generate_cnt uint64
++ Generate_tlen uint64
++ Seed_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatLarval struct {
++ Type [64]uint8
++}
++
++type CryptoReportLarval struct {
++ Type [64]uint8
++}
++
++type CryptoReportHash struct {
++ Type [64]uint8
++ Blocksize uint32
++ Digestsize uint32
++}
++
++type CryptoReportCipher struct {
++ Type [64]uint8
++ Blocksize uint32
++ Min_keysize uint32
++ Max_keysize uint32
++}
++
++type CryptoReportBlkCipher struct {
++ Type [64]uint8
++ Geniv [64]uint8
++ Blocksize uint32
++ Min_keysize uint32
++ Max_keysize uint32
++ Ivsize uint32
++}
++
++type CryptoReportAEAD struct {
++ Type [64]uint8
++ Geniv [64]uint8
++ Blocksize uint32
++ Maxauthsize uint32
++ Ivsize uint32
++}
++
++type CryptoReportComp struct {
++ Type [64]uint8
++}
++
++type CryptoReportRNG struct {
++ Type [64]uint8
++ Seedsize uint32
++}
++
++type CryptoReportAKCipher struct {
++ Type [64]uint8
++}
++
++type CryptoReportKPP struct {
++ Type [64]uint8
++}
++
++type CryptoReportAcomp struct {
++ Type [64]uint8
++}
++
++type LoopInfo struct {
++ Number int32
++ Device uint32
++ Inode uint64
++ Rdevice uint32
++ Offset int32
++ Encrypt_type int32
++ Encrypt_key_size int32
++ Flags int32
++ Name [64]uint8
++ Encrypt_key [32]uint8
++ Init [2]uint64
++ Reserved [4]uint8
++ _ [4]byte
++}
++
++type TIPCSubscr struct {
++ Seq TIPCServiceRange
++ Timeout uint32
++ Filter uint32
++ Handle [8]uint8
++}
++
++type TIPCSIOCLNReq struct {
++ Peer uint32
++ Id uint32
++ Linkname [68]uint8
++}
++
++type TIPCSIOCNodeIDReq struct {
++ Peer uint32
++ Id [16]uint8
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
+index 5e0aa663..cca1b6be 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
+@@ -6,19 +6,12 @@
+ package unix
+
+ const (
+- sizeofPtr = 0x8
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x8
+- sizeofLongLong = 0x8
+- PathMax = 0x1000
++ SizeofPtr = 0x8
++ SizeofLong = 0x8
+ )
+
+ type (
+- _C_short int16
+- _C_int int32
+- _C_long int64
+- _C_long_long int64
++ _C_long int64
+ )
+
+ type Timespec struct {
+@@ -33,13 +26,11 @@ type Timeval struct {
+
+ type Timex struct {
+ Modes uint32
+- _ [4]byte
+ Offset int64
+ Freq int64
+ Maxerror int64
+ Esterror int64
+ Status int32
+- _ [4]byte
+ Constant int64
+ Precision int64
+ Tolerance int64
+@@ -48,7 +39,6 @@ type Timex struct {
+ Ppsfreq int64
+ Jitter int64
+ Shift int32
+- _ [4]byte
+ Stabil int64
+ Jitcnt int64
+ Calcnt int64
+@@ -91,13 +81,6 @@ type Rusage struct {
+ Nivcsw int64
+ }
+
+-type Rlimit struct {
+- Cur uint64
+- Max uint64
+-}
+-
+-type _Gid_t uint32
+-
+ type Stat_t struct {
+ Dev uint64
+ Ino uint64
+@@ -116,22 +99,6 @@ type Stat_t struct {
+ _ [3]int64
+ }
+
+-type Statfs_t struct {
+- Type uint32
+- Bsize uint32
+- Blocks uint64
+- Bfree uint64
+- Bavail uint64
+- Files uint64
+- Ffree uint64
+- Fsid Fsid
+- Namelen uint32
+- Frsize uint32
+- Flags uint32
+- Spare [4]uint32
+- _ [4]byte
+-}
+-
+ type Dirent struct {
+ Ino uint64
+ Off int64
+@@ -141,115 +108,20 @@ type Dirent struct {
+ _ [5]byte
+ }
+
+-type Fsid struct {
+- _ [2]int32
+-}
+-
+ type Flock_t struct {
+ Type int16
+ Whence int16
+- _ [4]byte
+ Start int64
+ Len int64
+ Pid int32
+ _ [4]byte
+ }
+
+-type FscryptPolicy struct {
+- Version uint8
+- Contents_encryption_mode uint8
+- Filenames_encryption_mode uint8
+- Flags uint8
+- Master_key_descriptor [8]uint8
+-}
+-
+-type FscryptKey struct {
+- Mode uint32
+- Raw [64]uint8
+- Size uint32
+-}
+-
+-type KeyctlDHParams struct {
+- Private int32
+- Prime int32
+- Base int32
+-}
+-
+ const (
+- FADV_NORMAL = 0x0
+- FADV_RANDOM = 0x1
+- FADV_SEQUENTIAL = 0x2
+- FADV_WILLNEED = 0x3
+- FADV_DONTNEED = 0x6
+- FADV_NOREUSE = 0x7
++ FADV_DONTNEED = 0x6
++ FADV_NOREUSE = 0x7
+ )
+
+-type RawSockaddrInet4 struct {
+- Family uint16
+- Port uint16
+- Addr [4]byte /* in_addr */
+- Zero [8]uint8
+-}
+-
+-type RawSockaddrInet6 struct {
+- Family uint16
+- Port uint16
+- Flowinfo uint32
+- Addr [16]byte /* in6_addr */
+- Scope_id uint32
+-}
+-
+-type RawSockaddrUnix struct {
+- Family uint16
+- Path [108]int8
+-}
+-
+-type RawSockaddrLinklayer struct {
+- Family uint16
+- Protocol uint16
+- Ifindex int32
+- Hatype uint16
+- Pkttype uint8
+- Halen uint8
+- Addr [8]uint8
+-}
+-
+-type RawSockaddrNetlink struct {
+- Family uint16
+- Pad uint16
+- Pid uint32
+- Groups uint32
+-}
+-
+-type RawSockaddrHCI struct {
+- Family uint16
+- Dev uint16
+- Channel uint16
+-}
+-
+-type RawSockaddrCAN struct {
+- Family uint16
+- _ [2]byte
+- Ifindex int32
+- Addr [8]byte
+-}
+-
+-type RawSockaddrALG struct {
+- Family uint16
+- Type [14]uint8
+- Feat uint32
+- Mask uint32
+- Name [64]uint8
+-}
+-
+-type RawSockaddrVM struct {
+- Family uint16
+- Reserved1 uint16
+- Port uint32
+- Cid uint32
+- Zero [4]uint8
+-}
+-
+ type RawSockaddr struct {
+ Family uint16
+ Data [14]int8
+@@ -260,45 +132,14 @@ type RawSockaddrAny struct {
+ Pad [96]int8
+ }
+
+-type _Socklen uint32
+-
+-type Linger struct {
+- Onoff int32
+- Linger int32
+-}
+-
+ type Iovec struct {
+ Base *byte
+ Len uint64
+ }
+
+-type IPMreq struct {
+- Multiaddr [4]byte /* in_addr */
+- Interface [4]byte /* in_addr */
+-}
+-
+-type IPMreqn struct {
+- Multiaddr [4]byte /* in_addr */
+- Address [4]byte /* in_addr */
+- Ifindex int32
+-}
+-
+-type IPv6Mreq struct {
+- Multiaddr [16]byte /* in6_addr */
+- Interface uint32
+-}
+-
+-type PacketMreq struct {
+- Ifindex int32
+- Type uint16
+- Alen uint16
+- Address [8]uint8
+-}
+-
+ type Msghdr struct {
+ Name *byte
+ Namelen uint32
+- _ [4]byte
+ Iov *Iovec
+ Iovlen uint64
+ Control *byte
+@@ -313,277 +154,16 @@ type Cmsghdr struct {
+ Type int32
+ }
+
+-type Inet4Pktinfo struct {
+- Ifindex int32
+- Spec_dst [4]byte /* in_addr */
+- Addr [4]byte /* in_addr */
+-}
+-
+-type Inet6Pktinfo struct {
+- Addr [16]byte /* in6_addr */
+- Ifindex uint32
+-}
+-
+-type IPv6MTUInfo struct {
+- Addr RawSockaddrInet6
+- Mtu uint32
+-}
+-
+-type ICMPv6Filter struct {
+- Data [8]uint32
+-}
+-
+-type Ucred struct {
+- Pid int32
+- Uid uint32
+- Gid uint32
+-}
+-
+-type TCPInfo struct {
+- State uint8
+- Ca_state uint8
+- Retransmits uint8
+- Probes uint8
+- Backoff uint8
+- Options uint8
+- _ [2]byte
+- Rto uint32
+- Ato uint32
+- Snd_mss uint32
+- Rcv_mss uint32
+- Unacked uint32
+- Sacked uint32
+- Lost uint32
+- Retrans uint32
+- Fackets uint32
+- Last_data_sent uint32
+- Last_ack_sent uint32
+- Last_data_recv uint32
+- Last_ack_recv uint32
+- Pmtu uint32
+- Rcv_ssthresh uint32
+- Rtt uint32
+- Rttvar uint32
+- Snd_ssthresh uint32
+- Snd_cwnd uint32
+- Advmss uint32
+- Reordering uint32
+- Rcv_rtt uint32
+- Rcv_space uint32
+- Total_retrans uint32
+-}
+-
+-const (
+- SizeofSockaddrInet4 = 0x10
+- SizeofSockaddrInet6 = 0x1c
+- SizeofSockaddrAny = 0x70
+- SizeofSockaddrUnix = 0x6e
+- SizeofSockaddrLinklayer = 0x14
+- SizeofSockaddrNetlink = 0xc
+- SizeofSockaddrHCI = 0x6
+- SizeofSockaddrCAN = 0x10
+- SizeofSockaddrALG = 0x58
+- SizeofSockaddrVM = 0x10
+- SizeofLinger = 0x8
+- SizeofIovec = 0x10
+- SizeofIPMreq = 0x8
+- SizeofIPMreqn = 0xc
+- SizeofIPv6Mreq = 0x14
+- SizeofPacketMreq = 0x10
+- SizeofMsghdr = 0x38
+- SizeofCmsghdr = 0x10
+- SizeofInet4Pktinfo = 0xc
+- SizeofInet6Pktinfo = 0x14
+- SizeofIPv6MTUInfo = 0x20
+- SizeofICMPv6Filter = 0x20
+- SizeofUcred = 0xc
+- SizeofTCPInfo = 0x68
+-)
+-
+ const (
+- IFA_UNSPEC = 0x0
+- IFA_ADDRESS = 0x1
+- IFA_LOCAL = 0x2
+- IFA_LABEL = 0x3
+- IFA_BROADCAST = 0x4
+- IFA_ANYCAST = 0x5
+- IFA_CACHEINFO = 0x6
+- IFA_MULTICAST = 0x7
+- IFLA_UNSPEC = 0x0
+- IFLA_ADDRESS = 0x1
+- IFLA_BROADCAST = 0x2
+- IFLA_IFNAME = 0x3
+- IFLA_MTU = 0x4
+- IFLA_LINK = 0x5
+- IFLA_QDISC = 0x6
+- IFLA_STATS = 0x7
+- IFLA_COST = 0x8
+- IFLA_PRIORITY = 0x9
+- IFLA_MASTER = 0xa
+- IFLA_WIRELESS = 0xb
+- IFLA_PROTINFO = 0xc
+- IFLA_TXQLEN = 0xd
+- IFLA_MAP = 0xe
+- IFLA_WEIGHT = 0xf
+- IFLA_OPERSTATE = 0x10
+- IFLA_LINKMODE = 0x11
+- IFLA_LINKINFO = 0x12
+- IFLA_NET_NS_PID = 0x13
+- IFLA_IFALIAS = 0x14
+- IFLA_MAX = 0x2b
+- RT_SCOPE_UNIVERSE = 0x0
+- RT_SCOPE_SITE = 0xc8
+- RT_SCOPE_LINK = 0xfd
+- RT_SCOPE_HOST = 0xfe
+- RT_SCOPE_NOWHERE = 0xff
+- RT_TABLE_UNSPEC = 0x0
+- RT_TABLE_COMPAT = 0xfc
+- RT_TABLE_DEFAULT = 0xfd
+- RT_TABLE_MAIN = 0xfe
+- RT_TABLE_LOCAL = 0xff
+- RT_TABLE_MAX = 0xffffffff
+- RTA_UNSPEC = 0x0
+- RTA_DST = 0x1
+- RTA_SRC = 0x2
+- RTA_IIF = 0x3
+- RTA_OIF = 0x4
+- RTA_GATEWAY = 0x5
+- RTA_PRIORITY = 0x6
+- RTA_PREFSRC = 0x7
+- RTA_METRICS = 0x8
+- RTA_MULTIPATH = 0x9
+- RTA_FLOW = 0xb
+- RTA_CACHEINFO = 0xc
+- RTA_TABLE = 0xf
+- RTN_UNSPEC = 0x0
+- RTN_UNICAST = 0x1
+- RTN_LOCAL = 0x2
+- RTN_BROADCAST = 0x3
+- RTN_ANYCAST = 0x4
+- RTN_MULTICAST = 0x5
+- RTN_BLACKHOLE = 0x6
+- RTN_UNREACHABLE = 0x7
+- RTN_PROHIBIT = 0x8
+- RTN_THROW = 0x9
+- RTN_NAT = 0xa
+- RTN_XRESOLVE = 0xb
+- RTNLGRP_NONE = 0x0
+- RTNLGRP_LINK = 0x1
+- RTNLGRP_NOTIFY = 0x2
+- RTNLGRP_NEIGH = 0x3
+- RTNLGRP_TC = 0x4
+- RTNLGRP_IPV4_IFADDR = 0x5
+- RTNLGRP_IPV4_MROUTE = 0x6
+- RTNLGRP_IPV4_ROUTE = 0x7
+- RTNLGRP_IPV4_RULE = 0x8
+- RTNLGRP_IPV6_IFADDR = 0x9
+- RTNLGRP_IPV6_MROUTE = 0xa
+- RTNLGRP_IPV6_ROUTE = 0xb
+- RTNLGRP_IPV6_IFINFO = 0xc
+- RTNLGRP_IPV6_PREFIX = 0x12
+- RTNLGRP_IPV6_RULE = 0x13
+- RTNLGRP_ND_USEROPT = 0x14
+- SizeofNlMsghdr = 0x10
+- SizeofNlMsgerr = 0x14
+- SizeofRtGenmsg = 0x1
+- SizeofNlAttr = 0x4
+- SizeofRtAttr = 0x4
+- SizeofIfInfomsg = 0x10
+- SizeofIfAddrmsg = 0x8
+- SizeofRtMsg = 0xc
+- SizeofRtNexthop = 0x8
++ SizeofIovec = 0x10
++ SizeofMsghdr = 0x38
++ SizeofCmsghdr = 0x10
+ )
+
+-type NlMsghdr struct {
+- Len uint32
+- Type uint16
+- Flags uint16
+- Seq uint32
+- Pid uint32
+-}
+-
+-type NlMsgerr struct {
+- Error int32
+- Msg NlMsghdr
+-}
+-
+-type RtGenmsg struct {
+- Family uint8
+-}
+-
+-type NlAttr struct {
+- Len uint16
+- Type uint16
+-}
+-
+-type RtAttr struct {
+- Len uint16
+- Type uint16
+-}
+-
+-type IfInfomsg struct {
+- Family uint8
+- _ uint8
+- Type uint16
+- Index int32
+- Flags uint32
+- Change uint32
+-}
+-
+-type IfAddrmsg struct {
+- Family uint8
+- Prefixlen uint8
+- Flags uint8
+- Scope uint8
+- Index uint32
+-}
+-
+-type RtMsg struct {
+- Family uint8
+- Dst_len uint8
+- Src_len uint8
+- Tos uint8
+- Table uint8
+- Protocol uint8
+- Scope uint8
+- Type uint8
+- Flags uint32
+-}
+-
+-type RtNexthop struct {
+- Len uint16
+- Flags uint8
+- Hops uint8
+- Ifindex int32
+-}
+-
+ const (
+- SizeofSockFilter = 0x8
+- SizeofSockFprog = 0x10
++ SizeofSockFprog = 0x10
+ )
+
+-type SockFilter struct {
+- Code uint16
+- Jt uint8
+- Jf uint8
+- K uint32
+-}
+-
+-type SockFprog struct {
+- Len uint16
+- _ [6]byte
+- Filter *SockFilter
+-}
+-
+-type InotifyEvent struct {
+- Wd int32
+- Mask uint32
+- Cookie uint32
+- Len uint32
+-}
+-
+-const SizeofInotifyEvent = 0x10
+-
+ type PtraceRegs struct {
+ Psw PtracePsw
+ Gprs [16]uint64
+@@ -601,18 +181,15 @@ type PtracePsw struct {
+
+ type PtraceFpregs struct {
+ Fpc uint32
+- _ [4]byte
+ Fprs [16]float64
+ }
+
+ type PtracePer struct {
+ _ [0]uint64
+- _ [24]byte
+- _ [8]byte
++ _ [32]byte
+ Starting_addr uint64
+ Ending_addr uint64
+ Perc_atmid uint16
+- _ [6]byte
+ Address uint64
+ Access_id uint8
+ _ [7]byte
+@@ -633,7 +210,6 @@ type Sysinfo_t struct {
+ Freeswap uint64
+ Procs uint16
+ Pad uint16
+- _ [4]byte
+ Totalhigh uint64
+ Freehigh uint64
+ Unit uint32
+@@ -641,18 +217,8 @@ type Sysinfo_t struct {
+ _ [4]byte
+ }
+
+-type Utsname struct {
+- Sysname [65]int8
+- Nodename [65]int8
+- Release [65]int8
+- Version [65]int8
+- Machine [65]int8
+- Domainname [65]int8
+-}
+-
+ type Ustat_t struct {
+ Tfree int32
+- _ [4]byte
+ Tinode uint64
+ Fname [6]int8
+ Fpack [6]int8
+@@ -667,37 +233,14 @@ type EpollEvent struct {
+ }
+
+ const (
+- AT_FDCWD = -0x64
+- AT_REMOVEDIR = 0x200
+- AT_SYMLINK_FOLLOW = 0x400
+- AT_SYMLINK_NOFOLLOW = 0x100
+-)
+-
+-type PollFd struct {
+- Fd int32
+- Events int16
+- Revents int16
+-}
+-
+-const (
+- POLLIN = 0x1
+- POLLPRI = 0x2
+- POLLOUT = 0x4
+ POLLRDHUP = 0x2000
+- POLLERR = 0x8
+- POLLHUP = 0x10
+- POLLNVAL = 0x20
+ )
+
+ type Sigset_t struct {
+- _ [16]uint64
++ Val [16]uint64
+ }
+
+-const RNDGETENTCNT = 0x80045200
+-
+-const PERF_IOC_FLAG_GROUP = 0x1
+-
+-const _SC_PAGESIZE = 0x1e
++const _C__NSIG = 0x41
+
+ type Termios struct {
+ Iflag uint32
+@@ -710,20 +253,11 @@ type Termios struct {
+ Ospeed uint32
+ }
+
+-type Winsize struct {
+- Row uint16
+- Col uint16
+- Xpixel uint16
+- Ypixel uint16
+-}
+-
+ type Taskstats struct {
+ Version uint16
+- _ [2]byte
+ Ac_exitcode uint32
+ Ac_flag uint8
+ Ac_nice uint8
+- _ [6]byte
+ Cpu_count uint64
+ Cpu_delay_total uint64
+ Blkio_count uint64
+@@ -741,7 +275,6 @@ type Taskstats struct {
+ Ac_pid uint32
+ Ac_ppid uint32
+ Ac_btime uint32
+- _ [4]byte
+ Ac_etime uint64
+ Ac_utime uint64
+ Ac_stime uint64
+@@ -765,55 +298,320 @@ type Taskstats struct {
+ Cpu_scaled_run_real_total uint64
+ Freepages_count uint64
+ Freepages_delay_total uint64
++ Thrashing_count uint64
++ Thrashing_delay_total uint64
++ Ac_btime64 uint64
++}
++
++type cpuMask uint64
++
++const (
++ _NCPUBITS = 0x40
++)
++
++const (
++ CBitFieldMaskBit0 = 0x8000000000000000
++ CBitFieldMaskBit1 = 0x4000000000000000
++ CBitFieldMaskBit2 = 0x2000000000000000
++ CBitFieldMaskBit3 = 0x1000000000000000
++ CBitFieldMaskBit4 = 0x800000000000000
++ CBitFieldMaskBit5 = 0x400000000000000
++ CBitFieldMaskBit6 = 0x200000000000000
++ CBitFieldMaskBit7 = 0x100000000000000
++ CBitFieldMaskBit8 = 0x80000000000000
++ CBitFieldMaskBit9 = 0x40000000000000
++ CBitFieldMaskBit10 = 0x20000000000000
++ CBitFieldMaskBit11 = 0x10000000000000
++ CBitFieldMaskBit12 = 0x8000000000000
++ CBitFieldMaskBit13 = 0x4000000000000
++ CBitFieldMaskBit14 = 0x2000000000000
++ CBitFieldMaskBit15 = 0x1000000000000
++ CBitFieldMaskBit16 = 0x800000000000
++ CBitFieldMaskBit17 = 0x400000000000
++ CBitFieldMaskBit18 = 0x200000000000
++ CBitFieldMaskBit19 = 0x100000000000
++ CBitFieldMaskBit20 = 0x80000000000
++ CBitFieldMaskBit21 = 0x40000000000
++ CBitFieldMaskBit22 = 0x20000000000
++ CBitFieldMaskBit23 = 0x10000000000
++ CBitFieldMaskBit24 = 0x8000000000
++ CBitFieldMaskBit25 = 0x4000000000
++ CBitFieldMaskBit26 = 0x2000000000
++ CBitFieldMaskBit27 = 0x1000000000
++ CBitFieldMaskBit28 = 0x800000000
++ CBitFieldMaskBit29 = 0x400000000
++ CBitFieldMaskBit30 = 0x200000000
++ CBitFieldMaskBit31 = 0x100000000
++ CBitFieldMaskBit32 = 0x80000000
++ CBitFieldMaskBit33 = 0x40000000
++ CBitFieldMaskBit34 = 0x20000000
++ CBitFieldMaskBit35 = 0x10000000
++ CBitFieldMaskBit36 = 0x8000000
++ CBitFieldMaskBit37 = 0x4000000
++ CBitFieldMaskBit38 = 0x2000000
++ CBitFieldMaskBit39 = 0x1000000
++ CBitFieldMaskBit40 = 0x800000
++ CBitFieldMaskBit41 = 0x400000
++ CBitFieldMaskBit42 = 0x200000
++ CBitFieldMaskBit43 = 0x100000
++ CBitFieldMaskBit44 = 0x80000
++ CBitFieldMaskBit45 = 0x40000
++ CBitFieldMaskBit46 = 0x20000
++ CBitFieldMaskBit47 = 0x10000
++ CBitFieldMaskBit48 = 0x8000
++ CBitFieldMaskBit49 = 0x4000
++ CBitFieldMaskBit50 = 0x2000
++ CBitFieldMaskBit51 = 0x1000
++ CBitFieldMaskBit52 = 0x800
++ CBitFieldMaskBit53 = 0x400
++ CBitFieldMaskBit54 = 0x200
++ CBitFieldMaskBit55 = 0x100
++ CBitFieldMaskBit56 = 0x80
++ CBitFieldMaskBit57 = 0x40
++ CBitFieldMaskBit58 = 0x20
++ CBitFieldMaskBit59 = 0x10
++ CBitFieldMaskBit60 = 0x8
++ CBitFieldMaskBit61 = 0x4
++ CBitFieldMaskBit62 = 0x2
++ CBitFieldMaskBit63 = 0x1
++)
++
++type SockaddrStorage struct {
++ Family uint16
++ _ [118]int8
++ _ uint64
++}
++
++type HDGeometry struct {
++ Heads uint8
++ Sectors uint8
++ Cylinders uint16
++ Start uint64
++}
++
++type Statfs_t struct {
++ Type uint32
++ Bsize uint32
++ Blocks uint64
++ Bfree uint64
++ Bavail uint64
++ Files uint64
++ Ffree uint64
++ Fsid Fsid
++ Namelen uint32
++ Frsize uint32
++ Flags uint32
++ Spare [4]uint32
++ _ [4]byte
++}
++
++type TpacketHdr struct {
++ Status uint64
++ Len uint32
++ Snaplen uint32
++ Mac uint16
++ Net uint16
++ Sec uint32
++ Usec uint32
++ _ [4]byte
+ }
+
+ const (
+- TASKSTATS_CMD_UNSPEC = 0x0
+- TASKSTATS_CMD_GET = 0x1
+- TASKSTATS_CMD_NEW = 0x2
+- TASKSTATS_TYPE_UNSPEC = 0x0
+- TASKSTATS_TYPE_PID = 0x1
+- TASKSTATS_TYPE_TGID = 0x2
+- TASKSTATS_TYPE_STATS = 0x3
+- TASKSTATS_TYPE_AGGR_PID = 0x4
+- TASKSTATS_TYPE_AGGR_TGID = 0x5
+- TASKSTATS_TYPE_NULL = 0x6
+- TASKSTATS_CMD_ATTR_UNSPEC = 0x0
+- TASKSTATS_CMD_ATTR_PID = 0x1
+- TASKSTATS_CMD_ATTR_TGID = 0x2
+- TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3
+- TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4
++ SizeofTpacketHdr = 0x20
+ )
+
+-type Genlmsghdr struct {
+- Cmd uint8
+- Version uint8
+- Reserved uint16
++type RTCPLLInfo struct {
++ Ctrl int32
++ Value int32
++ Max int32
++ Min int32
++ Posmult int32
++ Negmult int32
++ Clock int64
++}
++
++type BlkpgPartition struct {
++ Start int64
++ Length int64
++ Pno int32
++ Devname [64]uint8
++ Volname [64]uint8
++ _ [4]byte
+ }
+
+ const (
+- CTRL_CMD_UNSPEC = 0x0
+- CTRL_CMD_NEWFAMILY = 0x1
+- CTRL_CMD_DELFAMILY = 0x2
+- CTRL_CMD_GETFAMILY = 0x3
+- CTRL_CMD_NEWOPS = 0x4
+- CTRL_CMD_DELOPS = 0x5
+- CTRL_CMD_GETOPS = 0x6
+- CTRL_CMD_NEWMCAST_GRP = 0x7
+- CTRL_CMD_DELMCAST_GRP = 0x8
+- CTRL_CMD_GETMCAST_GRP = 0x9
+- CTRL_ATTR_UNSPEC = 0x0
+- CTRL_ATTR_FAMILY_ID = 0x1
+- CTRL_ATTR_FAMILY_NAME = 0x2
+- CTRL_ATTR_VERSION = 0x3
+- CTRL_ATTR_HDRSIZE = 0x4
+- CTRL_ATTR_MAXATTR = 0x5
+- CTRL_ATTR_OPS = 0x6
+- CTRL_ATTR_MCAST_GROUPS = 0x7
+- CTRL_ATTR_OP_UNSPEC = 0x0
+- CTRL_ATTR_OP_ID = 0x1
+- CTRL_ATTR_OP_FLAGS = 0x2
+- CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0
+- CTRL_ATTR_MCAST_GRP_NAME = 0x1
+- CTRL_ATTR_MCAST_GRP_ID = 0x2
++ BLKPG = 0x1269
+ )
++
++type XDPUmemReg struct {
++ Addr uint64
++ Len uint64
++ Size uint32
++ Headroom uint32
++ Flags uint32
++ _ [4]byte
++}
++
++type CryptoUserAlg struct {
++ Name [64]int8
++ Driver_name [64]int8
++ Module_name [64]int8
++ Type uint32
++ Mask uint32
++ Refcnt uint32
++ Flags uint32
++}
++
++type CryptoStatAEAD struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatAKCipher struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Verify_cnt uint64
++ Sign_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatCipher struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatCompress struct {
++ Type [64]int8
++ Compress_cnt uint64
++ Compress_tlen uint64
++ Decompress_cnt uint64
++ Decompress_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatHash struct {
++ Type [64]int8
++ Hash_cnt uint64
++ Hash_tlen uint64
++ Err_cnt uint64
++}
++
++type CryptoStatKPP struct {
++ Type [64]int8
++ Setsecret_cnt uint64
++ Generate_public_key_cnt uint64
++ Compute_shared_secret_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatRNG struct {
++ Type [64]int8
++ Generate_cnt uint64
++ Generate_tlen uint64
++ Seed_cnt uint64
++ Err_cnt uint64
++}
++
++type CryptoStatLarval struct {
++ Type [64]int8
++}
++
++type CryptoReportLarval struct {
++ Type [64]int8
++}
++
++type CryptoReportHash struct {
++ Type [64]int8
++ Blocksize uint32
++ Digestsize uint32
++}
++
++type CryptoReportCipher struct {
++ Type [64]int8
++ Blocksize uint32
++ Min_keysize uint32
++ Max_keysize uint32
++}
++
++type CryptoReportBlkCipher struct {
++ Type [64]int8
++ Geniv [64]int8
++ Blocksize uint32
++ Min_keysize uint32
++ Max_keysize uint32
++ Ivsize uint32
++}
++
++type CryptoReportAEAD struct {
++ Type [64]int8
++ Geniv [64]int8
++ Blocksize uint32
++ Maxauthsize uint32
++ Ivsize uint32
++}
++
++type CryptoReportComp struct {
++ Type [64]int8
++}
++
++type CryptoReportRNG struct {
++ Type [64]int8
++ Seedsize uint32
++}
++
++type CryptoReportAKCipher struct {
++ Type [64]int8
++}
++
++type CryptoReportKPP struct {
++ Type [64]int8
++}
++
++type CryptoReportAcomp struct {
++ Type [64]int8
++}
++
++type LoopInfo struct {
++ Number int32
++ Device uint16
++ Inode uint64
++ Rdevice uint16
++ Offset int32
++ Encrypt_type int32
++ Encrypt_key_size int32
++ Flags int32
++ Name [64]int8
++ Encrypt_key [32]uint8
++ Init [2]uint64
++ Reserved [4]int8
++ _ [4]byte
++}
++
++type TIPCSubscr struct {
++ Seq TIPCServiceRange
++ Timeout uint32
++ Filter uint32
++ Handle [8]int8
++}
++
++type TIPCSIOCLNReq struct {
++ Peer uint32
++ Id uint32
++ Linkname [68]int8
++}
++
++type TIPCSIOCNodeIDReq struct {
++ Peer uint32
++ Id [16]int8
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
+index 22bdab96..33a73bf1 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
+@@ -1,23 +1,17 @@
++// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
+ // +build sparc64,linux
+-// Created by cgo -godefs - DO NOT EDIT
+-// cgo -godefs types_linux.go | go run mkpost.go
+
+ package unix
+
+ const (
+- sizeofPtr = 0x8
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x8
+- sizeofLongLong = 0x8
+- PathMax = 0x1000
++ SizeofPtr = 0x8
++ SizeofLong = 0x8
+ )
+
+ type (
+- _C_short int16
+- _C_int int32
+- _C_long int64
+- _C_long_long int64
++ _C_long int64
+ )
+
+ type Timespec struct {
+@@ -26,20 +20,18 @@ type Timespec struct {
+ }
+
+ type Timeval struct {
+- Sec int64
+- Usec int32
+- Pad_cgo_0 [4]byte
++ Sec int64
++ Usec int32
++ _ [4]byte
+ }
+
+ type Timex struct {
+ Modes uint32
+- Pad_cgo_0 [4]byte
+ Offset int64
+ Freq int64
+ Maxerror int64
+ Esterror int64
+ Status int32
+- Pad_cgo_1 [4]byte
+ Constant int64
+ Precision int64
+ Tolerance int64
+@@ -48,14 +40,13 @@ type Timex struct {
+ Ppsfreq int64
+ Jitter int64
+ Shift int32
+- Pad_cgo_2 [4]byte
+ Stabil int64
+ Jitcnt int64
+ Calcnt int64
+ Errcnt int64
+ Stbcnt int64
+ Tai int32
+- Pad_cgo_3 [44]byte
++ _ [44]byte
+ }
+
+ type Time_t int64
+@@ -91,149 +82,50 @@ type Rusage struct {
+ Nivcsw int64
+ }
+
+-type Rlimit struct {
+- Cur uint64
+- Max uint64
+-}
+-
+-type _Gid_t uint32
+-
+ type Stat_t struct {
+- Dev uint64
+- X__pad1 uint16
+- Pad_cgo_0 [6]byte
+- Ino uint64
+- Mode uint32
+- Nlink uint32
+- Uid uint32
+- Gid uint32
+- Rdev uint64
+- X__pad2 uint16
+- Pad_cgo_1 [6]byte
+- Size int64
+- Blksize int64
+- Blocks int64
+- Atim Timespec
+- Mtim Timespec
+- Ctim Timespec
+- X__glibc_reserved4 uint64
+- X__glibc_reserved5 uint64
+-}
+-
+-type Statfs_t struct {
+- Type int64
+- Bsize int64
+- Blocks uint64
+- Bfree uint64
+- Bavail uint64
+- Files uint64
+- Ffree uint64
+- Fsid Fsid
+- Namelen int64
+- Frsize int64
+- Flags int64
+- Spare [4]int64
++ Dev uint64
++ _ uint16
++ Ino uint64
++ Mode uint32
++ Nlink uint32
++ Uid uint32
++ Gid uint32
++ Rdev uint64
++ _ uint16
++ Size int64
++ Blksize int64
++ Blocks int64
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ _ uint64
++ _ uint64
+ }
+
+ type Dirent struct {
+- Ino uint64
+- Off int64
+- Reclen uint16
+- Type uint8
+- Name [256]int8
+- Pad_cgo_0 [5]byte
+-}
+-
+-type Fsid struct {
+- X__val [2]int32
++ Ino uint64
++ Off int64
++ Reclen uint16
++ Type uint8
++ Name [256]int8
++ _ [5]byte
+ }
+
+ type Flock_t struct {
+- Type int16
+- Whence int16
+- Pad_cgo_0 [4]byte
+- Start int64
+- Len int64
+- Pid int32
+- X__glibc_reserved int16
+- Pad_cgo_1 [2]byte
++ Type int16
++ Whence int16
++ Start int64
++ Len int64
++ Pid int32
++ _ int16
++ _ [2]byte
+ }
+
+ const (
+- FADV_NORMAL = 0x0
+- FADV_RANDOM = 0x1
+- FADV_SEQUENTIAL = 0x2
+- FADV_WILLNEED = 0x3
+- FADV_DONTNEED = 0x4
+- FADV_NOREUSE = 0x5
++ FADV_DONTNEED = 0x4
++ FADV_NOREUSE = 0x5
+ )
+
+-type RawSockaddrInet4 struct {
+- Family uint16
+- Port uint16
+- Addr [4]byte /* in_addr */
+- Zero [8]uint8
+-}
+-
+-type RawSockaddrInet6 struct {
+- Family uint16
+- Port uint16
+- Flowinfo uint32
+- Addr [16]byte /* in6_addr */
+- Scope_id uint32
+-}
+-
+-type RawSockaddrUnix struct {
+- Family uint16
+- Path [108]int8
+-}
+-
+-type RawSockaddrLinklayer struct {
+- Family uint16
+- Protocol uint16
+- Ifindex int32
+- Hatype uint16
+- Pkttype uint8
+- Halen uint8
+- Addr [8]uint8
+-}
+-
+-type RawSockaddrNetlink struct {
+- Family uint16
+- Pad uint16
+- Pid uint32
+- Groups uint32
+-}
+-
+-type RawSockaddrHCI struct {
+- Family uint16
+- Dev uint16
+- Channel uint16
+-}
+-
+-type RawSockaddrCAN struct {
+- Family uint16
+- Pad_cgo_0 [2]byte
+- Ifindex int32
+- Addr [8]byte
+-}
+-
+-type RawSockaddrALG struct {
+- Family uint16
+- Type [14]uint8
+- Feat uint32
+- Mask uint32
+- Name [64]uint8
+-}
+-
+-type RawSockaddrVM struct {
+- Family uint16
+- Reserved1 uint16
+- Port uint32
+- Cid uint32
+- Zero [4]uint8
+-}
+-
+ type RawSockaddr struct {
+ Family uint16
+ Data [14]int8
+@@ -244,44 +136,20 @@ type RawSockaddrAny struct {
+ Pad [96]int8
+ }
+
+-type _Socklen uint32
+-
+-type Linger struct {
+- Onoff int32
+- Linger int32
+-}
+-
+ type Iovec struct {
+ Base *byte
+ Len uint64
+ }
+
+-type IPMreq struct {
+- Multiaddr [4]byte /* in_addr */
+- Interface [4]byte /* in_addr */
+-}
+-
+-type IPMreqn struct {
+- Multiaddr [4]byte /* in_addr */
+- Address [4]byte /* in_addr */
+- Ifindex int32
+-}
+-
+-type IPv6Mreq struct {
+- Multiaddr [16]byte /* in6_addr */
+- Interface uint32
+-}
+-
+ type Msghdr struct {
+ Name *byte
+ Namelen uint32
+- Pad_cgo_0 [4]byte
+ Iov *Iovec
+ Iovlen uint64
+ Control *byte
+ Controllen uint64
+ Flags int32
+- Pad_cgo_1 [4]byte
++ _ [4]byte
+ }
+
+ type Cmsghdr struct {
+@@ -290,377 +158,441 @@ type Cmsghdr struct {
+ Type int32
+ }
+
+-type Inet4Pktinfo struct {
+- Ifindex int32
+- Spec_dst [4]byte /* in_addr */
+- Addr [4]byte /* in_addr */
+-}
+-
+-type Inet6Pktinfo struct {
+- Addr [16]byte /* in6_addr */
+- Ifindex uint32
+-}
+-
+-type IPv6MTUInfo struct {
+- Addr RawSockaddrInet6
+- Mtu uint32
+-}
+-
+-type ICMPv6Filter struct {
+- Data [8]uint32
+-}
+-
+-type Ucred struct {
+- Pid int32
+- Uid uint32
+- Gid uint32
+-}
+-
+-type TCPInfo struct {
+- State uint8
+- Ca_state uint8
+- Retransmits uint8
+- Probes uint8
+- Backoff uint8
+- Options uint8
+- Pad_cgo_0 [2]byte
+- Rto uint32
+- Ato uint32
+- Snd_mss uint32
+- Rcv_mss uint32
+- Unacked uint32
+- Sacked uint32
+- Lost uint32
+- Retrans uint32
+- Fackets uint32
+- Last_data_sent uint32
+- Last_ack_sent uint32
+- Last_data_recv uint32
+- Last_ack_recv uint32
+- Pmtu uint32
+- Rcv_ssthresh uint32
+- Rtt uint32
+- Rttvar uint32
+- Snd_ssthresh uint32
+- Snd_cwnd uint32
+- Advmss uint32
+- Reordering uint32
+- Rcv_rtt uint32
+- Rcv_space uint32
+- Total_retrans uint32
+-}
+-
+ const (
+- SizeofSockaddrInet4 = 0x10
+- SizeofSockaddrInet6 = 0x1c
+- SizeofSockaddrAny = 0x70
+- SizeofSockaddrUnix = 0x6e
+- SizeofSockaddrLinklayer = 0x14
+- SizeofSockaddrNetlink = 0xc
+- SizeofSockaddrHCI = 0x6
+- SizeofSockaddrCAN = 0x10
+- SizeofSockaddrALG = 0x58
+- SizeofSockaddrVM = 0x10
+- SizeofLinger = 0x8
+- SizeofIPMreq = 0x8
+- SizeofIPMreqn = 0xc
+- SizeofIPv6Mreq = 0x14
+- SizeofMsghdr = 0x38
+- SizeofCmsghdr = 0x10
+- SizeofInet4Pktinfo = 0xc
+- SizeofInet6Pktinfo = 0x14
+- SizeofIPv6MTUInfo = 0x20
+- SizeofICMPv6Filter = 0x20
+- SizeofUcred = 0xc
+- SizeofTCPInfo = 0x68
++ SizeofIovec = 0x10
++ SizeofMsghdr = 0x38
++ SizeofCmsghdr = 0x10
+ )
+
+ const (
+- IFA_UNSPEC = 0x0
+- IFA_ADDRESS = 0x1
+- IFA_LOCAL = 0x2
+- IFA_LABEL = 0x3
+- IFA_BROADCAST = 0x4
+- IFA_ANYCAST = 0x5
+- IFA_CACHEINFO = 0x6
+- IFA_MULTICAST = 0x7
+- IFLA_UNSPEC = 0x0
+- IFLA_ADDRESS = 0x1
+- IFLA_BROADCAST = 0x2
+- IFLA_IFNAME = 0x3
+- IFLA_MTU = 0x4
+- IFLA_LINK = 0x5
+- IFLA_QDISC = 0x6
+- IFLA_STATS = 0x7
+- IFLA_COST = 0x8
+- IFLA_PRIORITY = 0x9
+- IFLA_MASTER = 0xa
+- IFLA_WIRELESS = 0xb
+- IFLA_PROTINFO = 0xc
+- IFLA_TXQLEN = 0xd
+- IFLA_MAP = 0xe
+- IFLA_WEIGHT = 0xf
+- IFLA_OPERSTATE = 0x10
+- IFLA_LINKMODE = 0x11
+- IFLA_LINKINFO = 0x12
+- IFLA_NET_NS_PID = 0x13
+- IFLA_IFALIAS = 0x14
+- IFLA_MAX = 0x2a
+- RT_SCOPE_UNIVERSE = 0x0
+- RT_SCOPE_SITE = 0xc8
+- RT_SCOPE_LINK = 0xfd
+- RT_SCOPE_HOST = 0xfe
+- RT_SCOPE_NOWHERE = 0xff
+- RT_TABLE_UNSPEC = 0x0
+- RT_TABLE_COMPAT = 0xfc
+- RT_TABLE_DEFAULT = 0xfd
+- RT_TABLE_MAIN = 0xfe
+- RT_TABLE_LOCAL = 0xff
+- RT_TABLE_MAX = 0xffffffff
+- RTA_UNSPEC = 0x0
+- RTA_DST = 0x1
+- RTA_SRC = 0x2
+- RTA_IIF = 0x3
+- RTA_OIF = 0x4
+- RTA_GATEWAY = 0x5
+- RTA_PRIORITY = 0x6
+- RTA_PREFSRC = 0x7
+- RTA_METRICS = 0x8
+- RTA_MULTIPATH = 0x9
+- RTA_FLOW = 0xb
+- RTA_CACHEINFO = 0xc
+- RTA_TABLE = 0xf
+- RTN_UNSPEC = 0x0
+- RTN_UNICAST = 0x1
+- RTN_LOCAL = 0x2
+- RTN_BROADCAST = 0x3
+- RTN_ANYCAST = 0x4
+- RTN_MULTICAST = 0x5
+- RTN_BLACKHOLE = 0x6
+- RTN_UNREACHABLE = 0x7
+- RTN_PROHIBIT = 0x8
+- RTN_THROW = 0x9
+- RTN_NAT = 0xa
+- RTN_XRESOLVE = 0xb
+- RTNLGRP_NONE = 0x0
+- RTNLGRP_LINK = 0x1
+- RTNLGRP_NOTIFY = 0x2
+- RTNLGRP_NEIGH = 0x3
+- RTNLGRP_TC = 0x4
+- RTNLGRP_IPV4_IFADDR = 0x5
+- RTNLGRP_IPV4_MROUTE = 0x6
+- RTNLGRP_IPV4_ROUTE = 0x7
+- RTNLGRP_IPV4_RULE = 0x8
+- RTNLGRP_IPV6_IFADDR = 0x9
+- RTNLGRP_IPV6_MROUTE = 0xa
+- RTNLGRP_IPV6_ROUTE = 0xb
+- RTNLGRP_IPV6_IFINFO = 0xc
+- RTNLGRP_IPV6_PREFIX = 0x12
+- RTNLGRP_IPV6_RULE = 0x13
+- RTNLGRP_ND_USEROPT = 0x14
+- SizeofNlMsghdr = 0x10
+- SizeofNlMsgerr = 0x14
+- SizeofRtGenmsg = 0x1
+- SizeofNlAttr = 0x4
+- SizeofRtAttr = 0x4
+- SizeofIfInfomsg = 0x10
+- SizeofIfAddrmsg = 0x8
+- SizeofRtMsg = 0xc
+- SizeofRtNexthop = 0x8
++ SizeofSockFprog = 0x10
+ )
+
+-type NlMsghdr struct {
+- Len uint32
+- Type uint16
+- Flags uint16
+- Seq uint32
+- Pid uint32
++type PtraceRegs struct {
++ Regs [16]uint64
++ Tstate uint64
++ Tpc uint64
++ Tnpc uint64
++ Y uint32
++ Magic uint32
+ }
+
+-type NlMsgerr struct {
+- Error int32
+- Msg NlMsghdr
++type FdSet struct {
++ Bits [16]int64
+ }
+
+-type RtGenmsg struct {
+- Family uint8
++type Sysinfo_t struct {
++ Uptime int64
++ Loads [3]uint64
++ Totalram uint64
++ Freeram uint64
++ Sharedram uint64
++ Bufferram uint64
++ Totalswap uint64
++ Freeswap uint64
++ Procs uint16
++ Pad uint16
++ Totalhigh uint64
++ Freehigh uint64
++ Unit uint32
++ _ [0]int8
++ _ [4]byte
+ }
+
+-type NlAttr struct {
+- Len uint16
+- Type uint16
++type Ustat_t struct {
++ Tfree int32
++ Tinode uint64
++ Fname [6]int8
++ Fpack [6]int8
++ _ [4]byte
+ }
+
+-type RtAttr struct {
+- Len uint16
+- Type uint16
++type EpollEvent struct {
++ Events uint32
++ _ int32
++ Fd int32
++ Pad int32
+ }
+
+-type IfInfomsg struct {
+- Family uint8
+- X__ifi_pad uint8
+- Type uint16
+- Index int32
+- Flags uint32
+- Change uint32
++const (
++ POLLRDHUP = 0x800
++)
++
++type Sigset_t struct {
++ Val [16]uint64
+ }
+
+-type IfAddrmsg struct {
+- Family uint8
+- Prefixlen uint8
+- Flags uint8
+- Scope uint8
+- Index uint32
++const _C__NSIG = 0x41
++
++type Termios struct {
++ Iflag uint32
++ Oflag uint32
++ Cflag uint32
++ Lflag uint32
++ Line uint8
++ Cc [19]uint8
++ Ispeed uint32
++ Ospeed uint32
+ }
+
+-type RtMsg struct {
+- Family uint8
+- Dst_len uint8
+- Src_len uint8
+- Tos uint8
+- Table uint8
+- Protocol uint8
+- Scope uint8
+- Type uint8
+- Flags uint32
++type Taskstats struct {
++ Version uint16
++ Ac_exitcode uint32
++ Ac_flag uint8
++ Ac_nice uint8
++ Cpu_count uint64
++ Cpu_delay_total uint64
++ Blkio_count uint64
++ Blkio_delay_total uint64
++ Swapin_count uint64
++ Swapin_delay_total uint64
++ Cpu_run_real_total uint64
++ Cpu_run_virtual_total uint64
++ Ac_comm [32]int8
++ Ac_sched uint8
++ Ac_pad [3]uint8
++ _ [4]byte
++ Ac_uid uint32
++ Ac_gid uint32
++ Ac_pid uint32
++ Ac_ppid uint32
++ Ac_btime uint32
++ Ac_etime uint64
++ Ac_utime uint64
++ Ac_stime uint64
++ Ac_minflt uint64
++ Ac_majflt uint64
++ Coremem uint64
++ Virtmem uint64
++ Hiwater_rss uint64
++ Hiwater_vm uint64
++ Read_char uint64
++ Write_char uint64
++ Read_syscalls uint64
++ Write_syscalls uint64
++ Read_bytes uint64
++ Write_bytes uint64
++ Cancelled_write_bytes uint64
++ Nvcsw uint64
++ Nivcsw uint64
++ Ac_utimescaled uint64
++ Ac_stimescaled uint64
++ Cpu_scaled_run_real_total uint64
++ Freepages_count uint64
++ Freepages_delay_total uint64
++ Thrashing_count uint64
++ Thrashing_delay_total uint64
++ Ac_btime64 uint64
++}
++
++type cpuMask uint64
++
++const (
++ _NCPUBITS = 0x40
++)
++
++const (
++ CBitFieldMaskBit0 = 0x8000000000000000
++ CBitFieldMaskBit1 = 0x4000000000000000
++ CBitFieldMaskBit2 = 0x2000000000000000
++ CBitFieldMaskBit3 = 0x1000000000000000
++ CBitFieldMaskBit4 = 0x800000000000000
++ CBitFieldMaskBit5 = 0x400000000000000
++ CBitFieldMaskBit6 = 0x200000000000000
++ CBitFieldMaskBit7 = 0x100000000000000
++ CBitFieldMaskBit8 = 0x80000000000000
++ CBitFieldMaskBit9 = 0x40000000000000
++ CBitFieldMaskBit10 = 0x20000000000000
++ CBitFieldMaskBit11 = 0x10000000000000
++ CBitFieldMaskBit12 = 0x8000000000000
++ CBitFieldMaskBit13 = 0x4000000000000
++ CBitFieldMaskBit14 = 0x2000000000000
++ CBitFieldMaskBit15 = 0x1000000000000
++ CBitFieldMaskBit16 = 0x800000000000
++ CBitFieldMaskBit17 = 0x400000000000
++ CBitFieldMaskBit18 = 0x200000000000
++ CBitFieldMaskBit19 = 0x100000000000
++ CBitFieldMaskBit20 = 0x80000000000
++ CBitFieldMaskBit21 = 0x40000000000
++ CBitFieldMaskBit22 = 0x20000000000
++ CBitFieldMaskBit23 = 0x10000000000
++ CBitFieldMaskBit24 = 0x8000000000
++ CBitFieldMaskBit25 = 0x4000000000
++ CBitFieldMaskBit26 = 0x2000000000
++ CBitFieldMaskBit27 = 0x1000000000
++ CBitFieldMaskBit28 = 0x800000000
++ CBitFieldMaskBit29 = 0x400000000
++ CBitFieldMaskBit30 = 0x200000000
++ CBitFieldMaskBit31 = 0x100000000
++ CBitFieldMaskBit32 = 0x80000000
++ CBitFieldMaskBit33 = 0x40000000
++ CBitFieldMaskBit34 = 0x20000000
++ CBitFieldMaskBit35 = 0x10000000
++ CBitFieldMaskBit36 = 0x8000000
++ CBitFieldMaskBit37 = 0x4000000
++ CBitFieldMaskBit38 = 0x2000000
++ CBitFieldMaskBit39 = 0x1000000
++ CBitFieldMaskBit40 = 0x800000
++ CBitFieldMaskBit41 = 0x400000
++ CBitFieldMaskBit42 = 0x200000
++ CBitFieldMaskBit43 = 0x100000
++ CBitFieldMaskBit44 = 0x80000
++ CBitFieldMaskBit45 = 0x40000
++ CBitFieldMaskBit46 = 0x20000
++ CBitFieldMaskBit47 = 0x10000
++ CBitFieldMaskBit48 = 0x8000
++ CBitFieldMaskBit49 = 0x4000
++ CBitFieldMaskBit50 = 0x2000
++ CBitFieldMaskBit51 = 0x1000
++ CBitFieldMaskBit52 = 0x800
++ CBitFieldMaskBit53 = 0x400
++ CBitFieldMaskBit54 = 0x200
++ CBitFieldMaskBit55 = 0x100
++ CBitFieldMaskBit56 = 0x80
++ CBitFieldMaskBit57 = 0x40
++ CBitFieldMaskBit58 = 0x20
++ CBitFieldMaskBit59 = 0x10
++ CBitFieldMaskBit60 = 0x8
++ CBitFieldMaskBit61 = 0x4
++ CBitFieldMaskBit62 = 0x2
++ CBitFieldMaskBit63 = 0x1
++)
++
++type SockaddrStorage struct {
++ Family uint16
++ _ [118]int8
++ _ uint64
++}
++
++type HDGeometry struct {
++ Heads uint8
++ Sectors uint8
++ Cylinders uint16
++ Start uint64
++}
++
++type Statfs_t struct {
++ Type int64
++ Bsize int64
++ Blocks uint64
++ Bfree uint64
++ Bavail uint64
++ Files uint64
++ Ffree uint64
++ Fsid Fsid
++ Namelen int64
++ Frsize int64
++ Flags int64
++ Spare [4]int64
+ }
+
+-type RtNexthop struct {
+- Len uint16
+- Flags uint8
+- Hops uint8
+- Ifindex int32
++type TpacketHdr struct {
++ Status uint64
++ Len uint32
++ Snaplen uint32
++ Mac uint16
++ Net uint16
++ Sec uint32
++ Usec uint32
++ _ [4]byte
+ }
+
+ const (
+- SizeofSockFilter = 0x8
+- SizeofSockFprog = 0x10
++ SizeofTpacketHdr = 0x20
+ )
+
+-type SockFilter struct {
+- Code uint16
+- Jt uint8
+- Jf uint8
+- K uint32
++type RTCPLLInfo struct {
++ Ctrl int32
++ Value int32
++ Max int32
++ Min int32
++ Posmult int32
++ Negmult int32
++ Clock int64
+ }
+
+-type SockFprog struct {
+- Len uint16
+- Pad_cgo_0 [6]byte
+- Filter *SockFilter
++type BlkpgPartition struct {
++ Start int64
++ Length int64
++ Pno int32
++ Devname [64]uint8
++ Volname [64]uint8
++ _ [4]byte
+ }
+
+-type InotifyEvent struct {
+- Wd int32
+- Mask uint32
+- Cookie uint32
+- Len uint32
++const (
++ BLKPG = 0x20001269
++)
++
++type XDPUmemReg struct {
++ Addr uint64
++ Len uint64
++ Size uint32
++ Headroom uint32
++ Flags uint32
++ _ [4]byte
+ }
+
+-const SizeofInotifyEvent = 0x10
++type CryptoUserAlg struct {
++ Name [64]int8
++ Driver_name [64]int8
++ Module_name [64]int8
++ Type uint32
++ Mask uint32
++ Refcnt uint32
++ Flags uint32
++}
+
+-type PtraceRegs struct {
+- Regs [16]uint64
+- Tstate uint64
+- Tpc uint64
+- Tnpc uint64
+- Y uint32
+- Magic uint32
++type CryptoStatAEAD struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Err_cnt uint64
+ }
+
+-type ptracePsw struct {
++type CryptoStatAKCipher struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Verify_cnt uint64
++ Sign_cnt uint64
++ Err_cnt uint64
+ }
+
+-type ptraceFpregs struct {
++type CryptoStatCipher struct {
++ Type [64]int8
++ Encrypt_cnt uint64
++ Encrypt_tlen uint64
++ Decrypt_cnt uint64
++ Decrypt_tlen uint64
++ Err_cnt uint64
+ }
+
+-type ptracePer struct {
++type CryptoStatCompress struct {
++ Type [64]int8
++ Compress_cnt uint64
++ Compress_tlen uint64
++ Decompress_cnt uint64
++ Decompress_tlen uint64
++ Err_cnt uint64
+ }
+
+-type FdSet struct {
+- Bits [16]int64
++type CryptoStatHash struct {
++ Type [64]int8
++ Hash_cnt uint64
++ Hash_tlen uint64
++ Err_cnt uint64
+ }
+
+-type Sysinfo_t struct {
+- Uptime int64
+- Loads [3]uint64
+- Totalram uint64
+- Freeram uint64
+- Sharedram uint64
+- Bufferram uint64
+- Totalswap uint64
+- Freeswap uint64
+- Procs uint16
+- Pad uint16
+- Pad_cgo_0 [4]byte
+- Totalhigh uint64
+- Freehigh uint64
+- Unit uint32
+- X_f [0]int8
+- Pad_cgo_1 [4]byte
++type CryptoStatKPP struct {
++ Type [64]int8
++ Setsecret_cnt uint64
++ Generate_public_key_cnt uint64
++ Compute_shared_secret_cnt uint64
++ Err_cnt uint64
+ }
+
+-type Utsname struct {
+- Sysname [65]int8
+- Nodename [65]int8
+- Release [65]int8
+- Version [65]int8
+- Machine [65]int8
+- Domainname [65]int8
++type CryptoStatRNG struct {
++ Type [64]int8
++ Generate_cnt uint64
++ Generate_tlen uint64
++ Seed_cnt uint64
++ Err_cnt uint64
+ }
+
+-type Ustat_t struct {
+- Tfree int32
+- Pad_cgo_0 [4]byte
+- Tinode uint64
+- Fname [6]int8
+- Fpack [6]int8
+- Pad_cgo_1 [4]byte
++type CryptoStatLarval struct {
++ Type [64]int8
+ }
+
+-type EpollEvent struct {
+- Events uint32
+- X_padFd int32
+- Fd int32
+- Pad int32
++type CryptoReportLarval struct {
++ Type [64]int8
+ }
+
+-const (
+- AT_FDCWD = -0x64
+- AT_REMOVEDIR = 0x200
+- AT_SYMLINK_FOLLOW = 0x400
+- AT_SYMLINK_NOFOLLOW = 0x100
+-)
++type CryptoReportHash struct {
++ Type [64]int8
++ Blocksize uint32
++ Digestsize uint32
++}
+
+-type PollFd struct {
+- Fd int32
+- Events int16
+- Revents int16
++type CryptoReportCipher struct {
++ Type [64]int8
++ Blocksize uint32
++ Min_keysize uint32
++ Max_keysize uint32
+ }
+
+-const (
+- POLLIN = 0x1
+- POLLPRI = 0x2
+- POLLOUT = 0x4
+- POLLRDHUP = 0x800
+- POLLERR = 0x8
+- POLLHUP = 0x10
+- POLLNVAL = 0x20
+-)
++type CryptoReportBlkCipher struct {
++ Type [64]int8
++ Geniv [64]int8
++ Blocksize uint32
++ Min_keysize uint32
++ Max_keysize uint32
++ Ivsize uint32
++}
+
+-type Sigset_t struct {
+- X__val [16]uint64
++type CryptoReportAEAD struct {
++ Type [64]int8
++ Geniv [64]int8
++ Blocksize uint32
++ Maxauthsize uint32
++ Ivsize uint32
+ }
+
+-const _SC_PAGESIZE = 0x1e
++type CryptoReportComp struct {
++ Type [64]int8
++}
+
+-type Termios struct {
+- Iflag uint32
+- Oflag uint32
+- Cflag uint32
+- Lflag uint32
+- Line uint8
+- Cc [19]uint8
+- Ispeed uint32
+- Ospeed uint32
++type CryptoReportRNG struct {
++ Type [64]int8
++ Seedsize uint32
++}
++
++type CryptoReportAKCipher struct {
++ Type [64]int8
++}
++
++type CryptoReportKPP struct {
++ Type [64]int8
++}
++
++type CryptoReportAcomp struct {
++ Type [64]int8
++}
++
++type LoopInfo struct {
++ Number int32
++ Device uint32
++ Inode uint64
++ Rdevice uint32
++ Offset int32
++ Encrypt_type int32
++ Encrypt_key_size int32
++ Flags int32
++ Name [64]int8
++ Encrypt_key [32]uint8
++ Init [2]uint64
++ Reserved [4]int8
++ _ [4]byte
++}
++
++type TIPCSubscr struct {
++ Seq TIPCServiceRange
++ Timeout uint32
++ Filter uint32
++ Handle [8]int8
++}
++
++type TIPCSIOCLNReq struct {
++ Peer uint32
++ Id uint32
++ Linkname [68]int8
++}
++
++type TIPCSIOCNodeIDReq struct {
++ Peer uint32
++ Id [16]int8
+ }
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go
+index 42f99c0a..a89100c0 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go
+@@ -1,16 +1,16 @@
+-// Created by cgo -godefs - DO NOT EDIT
+-// cgo -godefs types_netbsd.go
++// cgo -godefs types_netbsd.go | go run mkpost.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build 386,netbsd
+
+ package unix
+
+ const (
+- sizeofPtr = 0x4
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x4
+- sizeofLongLong = 0x8
++ SizeofPtr = 0x4
++ SizeofShort = 0x2
++ SizeofInt = 0x4
++ SizeofLong = 0x4
++ SizeofLongLong = 0x8
+ )
+
+ type (
+@@ -57,27 +57,54 @@ type Rlimit struct {
+ type _Gid_t uint32
+
+ type Stat_t struct {
+- Dev uint64
+- Mode uint32
+- Ino uint64
+- Nlink uint32
+- Uid uint32
+- Gid uint32
+- Rdev uint64
+- Atimespec Timespec
+- Mtimespec Timespec
+- Ctimespec Timespec
+- Birthtimespec Timespec
+- Size int64
+- Blocks int64
+- Blksize uint32
+- Flags uint32
+- Gen uint32
+- Spare [2]uint32
++ Dev uint64
++ Mode uint32
++ Ino uint64
++ Nlink uint32
++ Uid uint32
++ Gid uint32
++ Rdev uint64
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ Btim Timespec
++ Size int64
++ Blocks int64
++ Blksize uint32
++ Flags uint32
++ Gen uint32
++ Spare [2]uint32
+ }
+
+ type Statfs_t [0]byte
+
++type Statvfs_t struct {
++ Flag uint32
++ Bsize uint32
++ Frsize uint32
++ Iosize uint32
++ Blocks uint64
++ Bfree uint64
++ Bavail uint64
++ Bresvd uint64
++ Files uint64
++ Ffree uint64
++ Favail uint64
++ Fresvd uint64
++ Syncreads uint64
++ Syncwrites uint64
++ Asyncreads uint64
++ Asyncwrites uint64
++ Fsidx Fsid
++ Fsid uint32
++ Namemax uint32
++ Owner uint32
++ Spare [4]uint32
++ Fstypename [32]byte
++ Mntonname [1024]byte
++ Mntfromname [1024]byte
++}
++
+ type Flock_t struct {
+ Start int64
+ Len int64
+@@ -99,6 +126,24 @@ type Fsid struct {
+ X__fsid_val [2]int32
+ }
+
++const (
++ PathMax = 0x400
++)
++
++const (
++ ST_WAIT = 0x1
++ ST_NOWAIT = 0x2
++)
++
++const (
++ FADV_NORMAL = 0x0
++ FADV_RANDOM = 0x1
++ FADV_SEQUENTIAL = 0x2
++ FADV_WILLNEED = 0x3
++ FADV_DONTNEED = 0x4
++ FADV_NOREUSE = 0x5
++)
++
+ type RawSockaddrInet4 struct {
+ Len uint8
+ Family uint8
+@@ -382,11 +427,45 @@ type Termios struct {
+ Ospeed int32
+ }
+
++type Winsize struct {
++ Row uint16
++ Col uint16
++ Xpixel uint16
++ Ypixel uint16
++}
++
++type Ptmget struct {
++ Cfd int32
++ Sfd int32
++ Cn [1024]byte
++ Sn [1024]byte
++}
++
+ const (
+ AT_FDCWD = -0x64
++ AT_SYMLINK_FOLLOW = 0x400
+ AT_SYMLINK_NOFOLLOW = 0x200
+ )
+
++type PollFd struct {
++ Fd int32
++ Events int16
++ Revents int16
++}
++
++const (
++ POLLERR = 0x8
++ POLLHUP = 0x10
++ POLLIN = 0x1
++ POLLNVAL = 0x20
++ POLLOUT = 0x4
++ POLLPRI = 0x2
++ POLLRDBAND = 0x80
++ POLLRDNORM = 0x40
++ POLLWRBAND = 0x100
++ POLLWRNORM = 0x4
++)
++
+ type Sysctlnode struct {
+ Flags uint32
+ Num int32
+@@ -399,3 +478,21 @@ type Sysctlnode struct {
+ X_sysctl_parent [8]byte
+ X_sysctl_desc [8]byte
+ }
++
++type Utsname struct {
++ Sysname [256]byte
++ Nodename [256]byte
++ Release [256]byte
++ Version [256]byte
++ Machine [256]byte
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++ Hz int32
++ Tick int32
++ Tickadj int32
++ Stathz int32
++ Profhz int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go
+index ff290ba0..289184e0 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go
+@@ -1,16 +1,16 @@
+-// Created by cgo -godefs - DO NOT EDIT
+-// cgo -godefs types_netbsd.go
++// cgo -godefs types_netbsd.go | go run mkpost.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build amd64,netbsd
+
+ package unix
+
+ const (
+- sizeofPtr = 0x8
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x8
+- sizeofLongLong = 0x8
++ SizeofPtr = 0x8
++ SizeofShort = 0x2
++ SizeofInt = 0x4
++ SizeofLong = 0x8
++ SizeofLongLong = 0x8
+ )
+
+ type (
+@@ -58,30 +58,58 @@ type Rlimit struct {
+ type _Gid_t uint32
+
+ type Stat_t struct {
+- Dev uint64
+- Mode uint32
+- Pad_cgo_0 [4]byte
+- Ino uint64
+- Nlink uint32
+- Uid uint32
+- Gid uint32
+- Pad_cgo_1 [4]byte
+- Rdev uint64
+- Atimespec Timespec
+- Mtimespec Timespec
+- Ctimespec Timespec
+- Birthtimespec Timespec
+- Size int64
+- Blocks int64
+- Blksize uint32
+- Flags uint32
+- Gen uint32
+- Spare [2]uint32
+- Pad_cgo_2 [4]byte
++ Dev uint64
++ Mode uint32
++ _ [4]byte
++ Ino uint64
++ Nlink uint32
++ Uid uint32
++ Gid uint32
++ _ [4]byte
++ Rdev uint64
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ Btim Timespec
++ Size int64
++ Blocks int64
++ Blksize uint32
++ Flags uint32
++ Gen uint32
++ Spare [2]uint32
++ _ [4]byte
+ }
+
+ type Statfs_t [0]byte
+
++type Statvfs_t struct {
++ Flag uint64
++ Bsize uint64
++ Frsize uint64
++ Iosize uint64
++ Blocks uint64
++ Bfree uint64
++ Bavail uint64
++ Bresvd uint64
++ Files uint64
++ Ffree uint64
++ Favail uint64
++ Fresvd uint64
++ Syncreads uint64
++ Syncwrites uint64
++ Asyncreads uint64
++ Asyncwrites uint64
++ Fsidx Fsid
++ Fsid uint64
++ Namemax uint64
++ Owner uint32
++ Spare [4]uint32
++ Fstypename [32]byte
++ Mntonname [1024]byte
++ Mntfromname [1024]byte
++ _ [4]byte
++}
++
+ type Flock_t struct {
+ Start int64
+ Len int64
+@@ -103,6 +131,24 @@ type Fsid struct {
+ X__fsid_val [2]int32
+ }
+
++const (
++ PathMax = 0x400
++)
++
++const (
++ ST_WAIT = 0x1
++ ST_NOWAIT = 0x2
++)
++
++const (
++ FADV_NORMAL = 0x0
++ FADV_RANDOM = 0x1
++ FADV_SEQUENTIAL = 0x2
++ FADV_WILLNEED = 0x3
++ FADV_DONTNEED = 0x4
++ FADV_NOREUSE = 0x5
++)
++
+ type RawSockaddrInet4 struct {
+ Len uint8
+ Family uint8
+@@ -389,11 +435,45 @@ type Termios struct {
+ Ospeed int32
+ }
+
++type Winsize struct {
++ Row uint16
++ Col uint16
++ Xpixel uint16
++ Ypixel uint16
++}
++
++type Ptmget struct {
++ Cfd int32
++ Sfd int32
++ Cn [1024]byte
++ Sn [1024]byte
++}
++
+ const (
+ AT_FDCWD = -0x64
++ AT_SYMLINK_FOLLOW = 0x400
+ AT_SYMLINK_NOFOLLOW = 0x200
+ )
+
++type PollFd struct {
++ Fd int32
++ Events int16
++ Revents int16
++}
++
++const (
++ POLLERR = 0x8
++ POLLHUP = 0x10
++ POLLIN = 0x1
++ POLLNVAL = 0x20
++ POLLOUT = 0x4
++ POLLPRI = 0x2
++ POLLRDBAND = 0x80
++ POLLRDNORM = 0x40
++ POLLWRBAND = 0x100
++ POLLWRNORM = 0x4
++)
++
+ type Sysctlnode struct {
+ Flags uint32
+ Num int32
+@@ -406,3 +486,21 @@ type Sysctlnode struct {
+ X_sysctl_parent [8]byte
+ X_sysctl_desc [8]byte
+ }
++
++type Utsname struct {
++ Sysname [256]byte
++ Nodename [256]byte
++ Release [256]byte
++ Version [256]byte
++ Machine [256]byte
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++ Hz int32
++ Tick int32
++ Tickadj int32
++ Stathz int32
++ Profhz int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go
+index 66dbd7c0..428c450e 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go
+@@ -1,16 +1,16 @@
+-// Created by cgo -godefs - DO NOT EDIT
+-// cgo -godefs types_netbsd.go
++// cgo -godefs types_netbsd.go | go run mkpost.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build arm,netbsd
+
+ package unix
+
+ const (
+- sizeofPtr = 0x4
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x4
+- sizeofLongLong = 0x8
++ SizeofPtr = 0x4
++ SizeofShort = 0x2
++ SizeofInt = 0x4
++ SizeofLong = 0x4
++ SizeofLongLong = 0x8
+ )
+
+ type (
+@@ -59,30 +59,57 @@ type Rlimit struct {
+ type _Gid_t uint32
+
+ type Stat_t struct {
+- Dev uint64
+- Mode uint32
+- Pad_cgo_0 [4]byte
+- Ino uint64
+- Nlink uint32
+- Uid uint32
+- Gid uint32
+- Pad_cgo_1 [4]byte
+- Rdev uint64
+- Atimespec Timespec
+- Mtimespec Timespec
+- Ctimespec Timespec
+- Birthtimespec Timespec
+- Size int64
+- Blocks int64
+- Blksize uint32
+- Flags uint32
+- Gen uint32
+- Spare [2]uint32
+- Pad_cgo_2 [4]byte
++ Dev uint64
++ Mode uint32
++ _ [4]byte
++ Ino uint64
++ Nlink uint32
++ Uid uint32
++ Gid uint32
++ _ [4]byte
++ Rdev uint64
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ Btim Timespec
++ Size int64
++ Blocks int64
++ Blksize uint32
++ Flags uint32
++ Gen uint32
++ Spare [2]uint32
++ _ [4]byte
+ }
+
+ type Statfs_t [0]byte
+
++type Statvfs_t struct {
++ Flag uint32
++ Bsize uint32
++ Frsize uint32
++ Iosize uint32
++ Blocks uint64
++ Bfree uint64
++ Bavail uint64
++ Bresvd uint64
++ Files uint64
++ Ffree uint64
++ Favail uint64
++ Fresvd uint64
++ Syncreads uint64
++ Syncwrites uint64
++ Asyncreads uint64
++ Asyncwrites uint64
++ Fsidx Fsid
++ Fsid uint32
++ Namemax uint32
++ Owner uint32
++ Spare [4]uint32
++ Fstypename [32]byte
++ Mntonname [1024]byte
++ Mntfromname [1024]byte
++}
++
+ type Flock_t struct {
+ Start int64
+ Len int64
+@@ -104,6 +131,24 @@ type Fsid struct {
+ X__fsid_val [2]int32
+ }
+
++const (
++ PathMax = 0x400
++)
++
++const (
++ ST_WAIT = 0x1
++ ST_NOWAIT = 0x2
++)
++
++const (
++ FADV_NORMAL = 0x0
++ FADV_RANDOM = 0x1
++ FADV_SEQUENTIAL = 0x2
++ FADV_WILLNEED = 0x3
++ FADV_DONTNEED = 0x4
++ FADV_NOREUSE = 0x5
++)
++
+ type RawSockaddrInet4 struct {
+ Len uint8
+ Family uint8
+@@ -387,11 +432,45 @@ type Termios struct {
+ Ospeed int32
+ }
+
++type Winsize struct {
++ Row uint16
++ Col uint16
++ Xpixel uint16
++ Ypixel uint16
++}
++
++type Ptmget struct {
++ Cfd int32
++ Sfd int32
++ Cn [1024]byte
++ Sn [1024]byte
++}
++
+ const (
+ AT_FDCWD = -0x64
++ AT_SYMLINK_FOLLOW = 0x400
+ AT_SYMLINK_NOFOLLOW = 0x200
+ )
+
++type PollFd struct {
++ Fd int32
++ Events int16
++ Revents int16
++}
++
++const (
++ POLLERR = 0x8
++ POLLHUP = 0x10
++ POLLIN = 0x1
++ POLLNVAL = 0x20
++ POLLOUT = 0x4
++ POLLPRI = 0x2
++ POLLRDBAND = 0x80
++ POLLRDNORM = 0x40
++ POLLWRBAND = 0x100
++ POLLWRNORM = 0x4
++)
++
+ type Sysctlnode struct {
+ Flags uint32
+ Num int32
+@@ -404,3 +483,21 @@ type Sysctlnode struct {
+ X_sysctl_parent [8]byte
+ X_sysctl_desc [8]byte
+ }
++
++type Utsname struct {
++ Sysname [256]byte
++ Nodename [256]byte
++ Release [256]byte
++ Version [256]byte
++ Machine [256]byte
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++ Hz int32
++ Tick int32
++ Tickadj int32
++ Stathz int32
++ Profhz int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go
+similarity index 73%
+copy from vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go
+copy to vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go
+index ff290ba0..6f1f2842 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go
+@@ -1,16 +1,16 @@
+-// Created by cgo -godefs - DO NOT EDIT
+-// cgo -godefs types_netbsd.go
++// cgo -godefs types_netbsd.go | go run mkpost.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+-// +build amd64,netbsd
++// +build arm64,netbsd
+
+ package unix
+
+ const (
+- sizeofPtr = 0x8
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x8
+- sizeofLongLong = 0x8
++ SizeofPtr = 0x8
++ SizeofShort = 0x2
++ SizeofInt = 0x4
++ SizeofLong = 0x8
++ SizeofLongLong = 0x8
+ )
+
+ type (
+@@ -58,30 +58,58 @@ type Rlimit struct {
+ type _Gid_t uint32
+
+ type Stat_t struct {
+- Dev uint64
+- Mode uint32
+- Pad_cgo_0 [4]byte
+- Ino uint64
+- Nlink uint32
+- Uid uint32
+- Gid uint32
+- Pad_cgo_1 [4]byte
+- Rdev uint64
+- Atimespec Timespec
+- Mtimespec Timespec
+- Ctimespec Timespec
+- Birthtimespec Timespec
+- Size int64
+- Blocks int64
+- Blksize uint32
+- Flags uint32
+- Gen uint32
+- Spare [2]uint32
+- Pad_cgo_2 [4]byte
++ Dev uint64
++ Mode uint32
++ _ [4]byte
++ Ino uint64
++ Nlink uint32
++ Uid uint32
++ Gid uint32
++ _ [4]byte
++ Rdev uint64
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ Btim Timespec
++ Size int64
++ Blocks int64
++ Blksize uint32
++ Flags uint32
++ Gen uint32
++ Spare [2]uint32
++ _ [4]byte
+ }
+
+ type Statfs_t [0]byte
+
++type Statvfs_t struct {
++ Flag uint64
++ Bsize uint64
++ Frsize uint64
++ Iosize uint64
++ Blocks uint64
++ Bfree uint64
++ Bavail uint64
++ Bresvd uint64
++ Files uint64
++ Ffree uint64
++ Favail uint64
++ Fresvd uint64
++ Syncreads uint64
++ Syncwrites uint64
++ Asyncreads uint64
++ Asyncwrites uint64
++ Fsidx Fsid
++ Fsid uint64
++ Namemax uint64
++ Owner uint32
++ Spare [4]uint32
++ Fstypename [32]byte
++ Mntonname [1024]byte
++ Mntfromname [1024]byte
++ _ [4]byte
++}
++
+ type Flock_t struct {
+ Start int64
+ Len int64
+@@ -103,6 +131,24 @@ type Fsid struct {
+ X__fsid_val [2]int32
+ }
+
++const (
++ PathMax = 0x400
++)
++
++const (
++ ST_WAIT = 0x1
++ ST_NOWAIT = 0x2
++)
++
++const (
++ FADV_NORMAL = 0x0
++ FADV_RANDOM = 0x1
++ FADV_SEQUENTIAL = 0x2
++ FADV_WILLNEED = 0x3
++ FADV_DONTNEED = 0x4
++ FADV_NOREUSE = 0x5
++)
++
+ type RawSockaddrInet4 struct {
+ Len uint8
+ Family uint8
+@@ -389,11 +435,45 @@ type Termios struct {
+ Ospeed int32
+ }
+
++type Winsize struct {
++ Row uint16
++ Col uint16
++ Xpixel uint16
++ Ypixel uint16
++}
++
++type Ptmget struct {
++ Cfd int32
++ Sfd int32
++ Cn [1024]byte
++ Sn [1024]byte
++}
++
+ const (
+ AT_FDCWD = -0x64
++ AT_SYMLINK_FOLLOW = 0x400
+ AT_SYMLINK_NOFOLLOW = 0x200
+ )
+
++type PollFd struct {
++ Fd int32
++ Events int16
++ Revents int16
++}
++
++const (
++ POLLERR = 0x8
++ POLLHUP = 0x10
++ POLLIN = 0x1
++ POLLNVAL = 0x20
++ POLLOUT = 0x4
++ POLLPRI = 0x2
++ POLLRDBAND = 0x80
++ POLLRDNORM = 0x40
++ POLLWRBAND = 0x100
++ POLLWRNORM = 0x4
++)
++
+ type Sysctlnode struct {
+ Flags uint32
+ Num int32
+@@ -406,3 +486,21 @@ type Sysctlnode struct {
+ X_sysctl_parent [8]byte
+ X_sysctl_desc [8]byte
+ }
++
++type Utsname struct {
++ Sysname [256]byte
++ Nodename [256]byte
++ Release [256]byte
++ Version [256]byte
++ Machine [256]byte
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++ Hz int32
++ Tick int32
++ Tickadj int32
++ Stathz int32
++ Profhz int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go
+index 20fc9f45..61ea0019 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go
+@@ -1,16 +1,16 @@
+-// Created by cgo -godefs - DO NOT EDIT
+-// cgo -godefs types_openbsd.go
++// cgo -godefs types_openbsd.go | go run mkpost.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build 386,openbsd
+
+ package unix
+
+ const (
+- sizeofPtr = 0x4
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x4
+- sizeofLongLong = 0x8
++ SizeofPtr = 0x4
++ SizeofShort = 0x2
++ SizeofInt = 0x4
++ SizeofLong = 0x4
++ SizeofLongLong = 0x8
+ )
+
+ type (
+@@ -56,23 +56,6 @@ type Rlimit struct {
+
+ type _Gid_t uint32
+
+-const (
+- S_IFMT = 0xf000
+- S_IFIFO = 0x1000
+- S_IFCHR = 0x2000
+- S_IFDIR = 0x4000
+- S_IFBLK = 0x6000
+- S_IFREG = 0x8000
+- S_IFLNK = 0xa000
+- S_IFSOCK = 0xc000
+- S_ISUID = 0x800
+- S_ISGID = 0x400
+- S_ISVTX = 0x200
+- S_IRUSR = 0x100
+- S_IWUSR = 0x80
+- S_IXUSR = 0x40
+-)
+-
+ type Stat_t struct {
+ Mode uint32
+ Dev int32
+@@ -140,6 +123,10 @@ type Fsid struct {
+ Val [2]int32
+ }
+
++const (
++ PathMax = 0x400
++)
++
+ type RawSockaddrInet4 struct {
+ Len uint8
+ Family uint8
+@@ -440,7 +427,145 @@ type Termios struct {
+ Ospeed int32
+ }
+
++type Winsize struct {
++ Row uint16
++ Col uint16
++ Xpixel uint16
++ Ypixel uint16
++}
++
+ const (
+ AT_FDCWD = -0x64
++ AT_SYMLINK_FOLLOW = 0x4
+ AT_SYMLINK_NOFOLLOW = 0x2
+ )
++
++type PollFd struct {
++ Fd int32
++ Events int16
++ Revents int16
++}
++
++const (
++ POLLERR = 0x8
++ POLLHUP = 0x10
++ POLLIN = 0x1
++ POLLNVAL = 0x20
++ POLLOUT = 0x4
++ POLLPRI = 0x2
++ POLLRDBAND = 0x80
++ POLLRDNORM = 0x40
++ POLLWRBAND = 0x100
++ POLLWRNORM = 0x4
++)
++
++type Sigset_t uint32
++
++type Utsname struct {
++ Sysname [256]byte
++ Nodename [256]byte
++ Release [256]byte
++ Version [256]byte
++ Machine [256]byte
++}
++
++const SizeofUvmexp = 0x158
++
++type Uvmexp struct {
++ Pagesize int32
++ Pagemask int32
++ Pageshift int32
++ Npages int32
++ Free int32
++ Active int32
++ Inactive int32
++ Paging int32
++ Wired int32
++ Zeropages int32
++ Reserve_pagedaemon int32
++ Reserve_kernel int32
++ Anonpages int32
++ Vnodepages int32
++ Vtextpages int32
++ Freemin int32
++ Freetarg int32
++ Inactarg int32
++ Wiredmax int32
++ Anonmin int32
++ Vtextmin int32
++ Vnodemin int32
++ Anonminpct int32
++ Vtextminpct int32
++ Vnodeminpct int32
++ Nswapdev int32
++ Swpages int32
++ Swpginuse int32
++ Swpgonly int32
++ Nswget int32
++ Nanon int32
++ Nanonneeded int32
++ Nfreeanon int32
++ Faults int32
++ Traps int32
++ Intrs int32
++ Swtch int32
++ Softs int32
++ Syscalls int32
++ Pageins int32
++ Obsolete_swapins int32
++ Obsolete_swapouts int32
++ Pgswapin int32
++ Pgswapout int32
++ Forks int32
++ Forks_ppwait int32
++ Forks_sharevm int32
++ Pga_zerohit int32
++ Pga_zeromiss int32
++ Zeroaborts int32
++ Fltnoram int32
++ Fltnoanon int32
++ Fltnoamap int32
++ Fltpgwait int32
++ Fltpgrele int32
++ Fltrelck int32
++ Fltrelckok int32
++ Fltanget int32
++ Fltanretry int32
++ Fltamcopy int32
++ Fltnamap int32
++ Fltnomap int32
++ Fltlget int32
++ Fltget int32
++ Flt_anon int32
++ Flt_acow int32
++ Flt_obj int32
++ Flt_prcopy int32
++ Flt_przero int32
++ Pdwoke int32
++ Pdrevs int32
++ Pdswout int32
++ Pdfreed int32
++ Pdscans int32
++ Pdanscan int32
++ Pdobscan int32
++ Pdreact int32
++ Pdbusy int32
++ Pdpageouts int32
++ Pdpending int32
++ Pddeact int32
++ Pdreanon int32
++ Pdrevnode int32
++ Pdrevtext int32
++ Fpswtch int32
++ Kmapent int32
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++ Hz int32
++ Tick int32
++ Tickadj int32
++ Stathz int32
++ Profhz int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go
+index 46fe9490..87a493f6 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go
+@@ -1,16 +1,16 @@
+-// Created by cgo -godefs - DO NOT EDIT
+-// cgo -godefs types_openbsd.go
++// cgo -godefs types_openbsd.go | go run mkpost.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build amd64,openbsd
+
+ package unix
+
+ const (
+- sizeofPtr = 0x8
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x8
+- sizeofLongLong = 0x8
++ SizeofPtr = 0x8
++ SizeofShort = 0x2
++ SizeofInt = 0x4
++ SizeofLong = 0x8
++ SizeofLongLong = 0x8
+ )
+
+ type (
+@@ -56,48 +56,31 @@ type Rlimit struct {
+
+ type _Gid_t uint32
+
+-const (
+- S_IFMT = 0xf000
+- S_IFIFO = 0x1000
+- S_IFCHR = 0x2000
+- S_IFDIR = 0x4000
+- S_IFBLK = 0x6000
+- S_IFREG = 0x8000
+- S_IFLNK = 0xa000
+- S_IFSOCK = 0xc000
+- S_ISUID = 0x800
+- S_ISGID = 0x400
+- S_ISVTX = 0x200
+- S_IRUSR = 0x100
+- S_IWUSR = 0x80
+- S_IXUSR = 0x40
+-)
+-
+ type Stat_t struct {
+- Mode uint32
+- Dev int32
+- Ino uint64
+- Nlink uint32
+- Uid uint32
+- Gid uint32
+- Rdev int32
+- Atim Timespec
+- Mtim Timespec
+- Ctim Timespec
+- Size int64
+- Blocks int64
+- Blksize uint32
+- Flags uint32
+- Gen uint32
+- Pad_cgo_0 [4]byte
+- X__st_birthtim Timespec
++ Mode uint32
++ Dev int32
++ Ino uint64
++ Nlink uint32
++ Uid uint32
++ Gid uint32
++ Rdev int32
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ Size int64
++ Blocks int64
++ Blksize int32
++ Flags uint32
++ Gen uint32
++ _ [4]byte
++ _ Timespec
+ }
+
+ type Statfs_t struct {
+ F_flags uint32
+ F_bsize uint32
+ F_iosize uint32
+- Pad_cgo_0 [4]byte
++ _ [4]byte
+ F_blocks uint64
+ F_bfree uint64
+ F_bavail int64
+@@ -116,7 +99,7 @@ type Statfs_t struct {
+ F_mntonname [90]int8
+ F_mntfromname [90]int8
+ F_mntfromspec [90]int8
+- Pad_cgo_1 [2]byte
++ _ [2]byte
+ Mount_info [160]byte
+ }
+
+@@ -129,19 +112,23 @@ type Flock_t struct {
+ }
+
+ type Dirent struct {
+- Fileno uint64
+- Off int64
+- Reclen uint16
+- Type uint8
+- Namlen uint8
+- X__d_padding [4]uint8
+- Name [256]int8
++ Fileno uint64
++ Off int64
++ Reclen uint16
++ Type uint8
++ Namlen uint8
++ _ [4]uint8
++ Name [256]int8
+ }
+
+ type Fsid struct {
+ Val [2]int32
+ }
+
++const (
++ PathMax = 0x400
++)
++
+ type RawSockaddrInet4 struct {
+ Len uint8
+ Family uint8
+@@ -212,10 +199,10 @@ type IPv6Mreq struct {
+ type Msghdr struct {
+ Name *byte
+ Namelen uint32
+- Pad_cgo_0 [4]byte
++ _ [4]byte
+ Iov *Iovec
+ Iovlen uint32
+- Pad_cgo_1 [4]byte
++ _ [4]byte
+ Control *byte
+ Controllen uint32
+ Flags int32
+@@ -277,8 +264,8 @@ type FdSet struct {
+ }
+
+ const (
+- SizeofIfMsghdr = 0xf8
+- SizeofIfData = 0xe0
++ SizeofIfMsghdr = 0xa8
++ SizeofIfData = 0x90
+ SizeofIfaMsghdr = 0x18
+ SizeofIfAnnounceMsghdr = 0x1a
+ SizeofRtMsghdr = 0x60
+@@ -307,7 +294,7 @@ type IfData struct {
+ Link_state uint8
+ Mtu uint32
+ Metric uint32
+- Pad uint32
++ Rdomain uint32
+ Baudrate uint64
+ Ipackets uint64
+ Ierrors uint64
+@@ -319,12 +306,11 @@ type IfData struct {
+ Imcasts uint64
+ Omcasts uint64
+ Iqdrops uint64
++ Oqdrops uint64
+ Noproto uint64
+ Capabilities uint32
+- Pad_cgo_0 [4]byte
++ _ [4]byte
+ Lastchange Timeval
+- Mclpool [7]Mclpool
+- Pad_cgo_1 [4]byte
+ }
+
+ type IfaMsghdr struct {
+@@ -385,13 +371,7 @@ type RtMetrics struct {
+ Pad uint32
+ }
+
+-type Mclpool struct {
+- Grown int32
+- Alive uint16
+- Hwm uint16
+- Cwm uint16
+- Lwm uint16
+-}
++type Mclpool struct{}
+
+ const (
+ SizeofBpfVersion = 0x4
+@@ -412,9 +392,9 @@ type BpfStat struct {
+ }
+
+ type BpfProgram struct {
+- Len uint32
+- Pad_cgo_0 [4]byte
+- Insns *BpfInsn
++ Len uint32
++ _ [4]byte
++ Insns *BpfInsn
+ }
+
+ type BpfInsn struct {
+@@ -425,11 +405,11 @@ type BpfInsn struct {
+ }
+
+ type BpfHdr struct {
+- Tstamp BpfTimeval
+- Caplen uint32
+- Datalen uint32
+- Hdrlen uint16
+- Pad_cgo_0 [2]byte
++ Tstamp BpfTimeval
++ Caplen uint32
++ Datalen uint32
++ Hdrlen uint16
++ _ [2]byte
+ }
+
+ type BpfTimeval struct {
+@@ -447,7 +427,145 @@ type Termios struct {
+ Ospeed int32
+ }
+
++type Winsize struct {
++ Row uint16
++ Col uint16
++ Xpixel uint16
++ Ypixel uint16
++}
++
+ const (
+ AT_FDCWD = -0x64
++ AT_SYMLINK_FOLLOW = 0x4
+ AT_SYMLINK_NOFOLLOW = 0x2
+ )
++
++type PollFd struct {
++ Fd int32
++ Events int16
++ Revents int16
++}
++
++const (
++ POLLERR = 0x8
++ POLLHUP = 0x10
++ POLLIN = 0x1
++ POLLNVAL = 0x20
++ POLLOUT = 0x4
++ POLLPRI = 0x2
++ POLLRDBAND = 0x80
++ POLLRDNORM = 0x40
++ POLLWRBAND = 0x100
++ POLLWRNORM = 0x4
++)
++
++type Sigset_t uint32
++
++type Utsname struct {
++ Sysname [256]byte
++ Nodename [256]byte
++ Release [256]byte
++ Version [256]byte
++ Machine [256]byte
++}
++
++const SizeofUvmexp = 0x158
++
++type Uvmexp struct {
++ Pagesize int32
++ Pagemask int32
++ Pageshift int32
++ Npages int32
++ Free int32
++ Active int32
++ Inactive int32
++ Paging int32
++ Wired int32
++ Zeropages int32
++ Reserve_pagedaemon int32
++ Reserve_kernel int32
++ Anonpages int32
++ Vnodepages int32
++ Vtextpages int32
++ Freemin int32
++ Freetarg int32
++ Inactarg int32
++ Wiredmax int32
++ Anonmin int32
++ Vtextmin int32
++ Vnodemin int32
++ Anonminpct int32
++ Vtextminpct int32
++ Vnodeminpct int32
++ Nswapdev int32
++ Swpages int32
++ Swpginuse int32
++ Swpgonly int32
++ Nswget int32
++ Nanon int32
++ Nanonneeded int32
++ Nfreeanon int32
++ Faults int32
++ Traps int32
++ Intrs int32
++ Swtch int32
++ Softs int32
++ Syscalls int32
++ Pageins int32
++ Obsolete_swapins int32
++ Obsolete_swapouts int32
++ Pgswapin int32
++ Pgswapout int32
++ Forks int32
++ Forks_ppwait int32
++ Forks_sharevm int32
++ Pga_zerohit int32
++ Pga_zeromiss int32
++ Zeroaborts int32
++ Fltnoram int32
++ Fltnoanon int32
++ Fltnoamap int32
++ Fltpgwait int32
++ Fltpgrele int32
++ Fltrelck int32
++ Fltrelckok int32
++ Fltanget int32
++ Fltanretry int32
++ Fltamcopy int32
++ Fltnamap int32
++ Fltnomap int32
++ Fltlget int32
++ Fltget int32
++ Flt_anon int32
++ Flt_acow int32
++ Flt_obj int32
++ Flt_prcopy int32
++ Flt_przero int32
++ Pdwoke int32
++ Pdrevs int32
++ Pdswout int32
++ Pdfreed int32
++ Pdscans int32
++ Pdanscan int32
++ Pdobscan int32
++ Pdreact int32
++ Pdbusy int32
++ Pdpageouts int32
++ Pdpending int32
++ Pddeact int32
++ Pdreanon int32
++ Pdrevnode int32
++ Pdrevtext int32
++ Fpswtch int32
++ Kmapent int32
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++ Hz int32
++ Tick int32
++ Tickadj int32
++ Stathz int32
++ Profhz int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go
+index 62e1f7c0..d80836ef 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go
+@@ -1,16 +1,16 @@
+-// Created by cgo -godefs - DO NOT EDIT
+-// cgo -godefs types_openbsd.go
++// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+ // +build arm,openbsd
+
+ package unix
+
+ const (
+- sizeofPtr = 0x4
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x4
+- sizeofLongLong = 0x8
++ SizeofPtr = 0x4
++ SizeofShort = 0x2
++ SizeofInt = 0x4
++ SizeofLong = 0x4
++ SizeofLongLong = 0x8
+ )
+
+ type (
+@@ -23,11 +23,13 @@ type (
+ type Timespec struct {
+ Sec int64
+ Nsec int32
++ _ [4]byte
+ }
+
+ type Timeval struct {
+ Sec int64
+ Usec int32
++ _ [4]byte
+ }
+
+ type Rusage struct {
+@@ -56,46 +58,31 @@ type Rlimit struct {
+
+ type _Gid_t uint32
+
+-const (
+- S_IFMT = 0xf000
+- S_IFIFO = 0x1000
+- S_IFCHR = 0x2000
+- S_IFDIR = 0x4000
+- S_IFBLK = 0x6000
+- S_IFREG = 0x8000
+- S_IFLNK = 0xa000
+- S_IFSOCK = 0xc000
+- S_ISUID = 0x800
+- S_ISGID = 0x400
+- S_ISVTX = 0x200
+- S_IRUSR = 0x100
+- S_IWUSR = 0x80
+- S_IXUSR = 0x40
+-)
+-
+ type Stat_t struct {
+- Mode uint32
+- Dev int32
+- Ino uint64
+- Nlink uint32
+- Uid uint32
+- Gid uint32
+- Rdev int32
+- Atim Timespec
+- Mtim Timespec
+- Ctim Timespec
+- Size int64
+- Blocks int64
+- Blksize int32
+- Flags uint32
+- Gen uint32
+- X__st_birthtim Timespec
++ Mode uint32
++ Dev int32
++ Ino uint64
++ Nlink uint32
++ Uid uint32
++ Gid uint32
++ Rdev int32
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ Size int64
++ Blocks int64
++ Blksize int32
++ Flags uint32
++ Gen uint32
++ _ [4]byte
++ _ Timespec
+ }
+
+ type Statfs_t struct {
+ F_flags uint32
+ F_bsize uint32
+ F_iosize uint32
++ _ [4]byte
+ F_blocks uint64
+ F_bfree uint64
+ F_bavail int64
+@@ -110,11 +97,11 @@ type Statfs_t struct {
+ F_namemax uint32
+ F_owner uint32
+ F_ctime uint64
+- F_fstypename [16]uint8
+- F_mntonname [90]uint8
+- F_mntfromname [90]uint8
+- F_mntfromspec [90]uint8
+- Pad_cgo_0 [2]byte
++ F_fstypename [16]int8
++ F_mntonname [90]int8
++ F_mntfromname [90]int8
++ F_mntfromspec [90]int8
++ _ [2]byte
+ Mount_info [160]byte
+ }
+
+@@ -127,19 +114,23 @@ type Flock_t struct {
+ }
+
+ type Dirent struct {
+- Fileno uint64
+- Off int64
+- Reclen uint16
+- Type uint8
+- Namlen uint8
+- X__d_padding [4]uint8
+- Name [256]uint8
++ Fileno uint64
++ Off int64
++ Reclen uint16
++ Type uint8
++ Namlen uint8
++ _ [4]uint8
++ Name [256]int8
+ }
+
+ type Fsid struct {
+ Val [2]int32
+ }
+
++const (
++ PathMax = 0x400
++)
++
+ type RawSockaddrInet4 struct {
+ Len uint8
+ Family uint8
+@@ -264,8 +255,10 @@ type Kevent_t struct {
+ Filter int16
+ Flags uint16
+ Fflags uint32
++ _ [4]byte
+ Data int64
+ Udata *byte
++ _ [4]byte
+ }
+
+ type FdSet struct {
+@@ -273,8 +266,8 @@ type FdSet struct {
+ }
+
+ const (
+- SizeofIfMsghdr = 0x98
+- SizeofIfData = 0x80
++ SizeofIfMsghdr = 0xa8
++ SizeofIfData = 0x90
+ SizeofIfaMsghdr = 0x18
+ SizeofIfAnnounceMsghdr = 0x1a
+ SizeofRtMsghdr = 0x60
+@@ -303,7 +296,7 @@ type IfData struct {
+ Link_state uint8
+ Mtu uint32
+ Metric uint32
+- Pad uint32
++ Rdomain uint32
+ Baudrate uint64
+ Ipackets uint64
+ Ierrors uint64
+@@ -315,8 +308,10 @@ type IfData struct {
+ Imcasts uint64
+ Omcasts uint64
+ Iqdrops uint64
++ Oqdrops uint64
+ Noproto uint64
+ Capabilities uint32
++ _ [4]byte
+ Lastchange Timeval
+ }
+
+@@ -341,7 +336,7 @@ type IfAnnounceMsghdr struct {
+ Hdrlen uint16
+ Index uint16
+ What uint16
+- Name [16]uint8
++ Name [16]int8
+ }
+
+ type RtMsghdr struct {
+@@ -411,11 +406,11 @@ type BpfInsn struct {
+ }
+
+ type BpfHdr struct {
+- Tstamp BpfTimeval
+- Caplen uint32
+- Datalen uint32
+- Hdrlen uint16
+- Pad_cgo_0 [2]byte
++ Tstamp BpfTimeval
++ Caplen uint32
++ Datalen uint32
++ Hdrlen uint16
++ _ [2]byte
+ }
+
+ type BpfTimeval struct {
+@@ -433,7 +428,145 @@ type Termios struct {
+ Ospeed int32
+ }
+
++type Winsize struct {
++ Row uint16
++ Col uint16
++ Xpixel uint16
++ Ypixel uint16
++}
++
+ const (
+ AT_FDCWD = -0x64
++ AT_SYMLINK_FOLLOW = 0x4
+ AT_SYMLINK_NOFOLLOW = 0x2
+ )
++
++type PollFd struct {
++ Fd int32
++ Events int16
++ Revents int16
++}
++
++const (
++ POLLERR = 0x8
++ POLLHUP = 0x10
++ POLLIN = 0x1
++ POLLNVAL = 0x20
++ POLLOUT = 0x4
++ POLLPRI = 0x2
++ POLLRDBAND = 0x80
++ POLLRDNORM = 0x40
++ POLLWRBAND = 0x100
++ POLLWRNORM = 0x4
++)
++
++type Sigset_t uint32
++
++type Utsname struct {
++ Sysname [256]byte
++ Nodename [256]byte
++ Release [256]byte
++ Version [256]byte
++ Machine [256]byte
++}
++
++const SizeofUvmexp = 0x158
++
++type Uvmexp struct {
++ Pagesize int32
++ Pagemask int32
++ Pageshift int32
++ Npages int32
++ Free int32
++ Active int32
++ Inactive int32
++ Paging int32
++ Wired int32
++ Zeropages int32
++ Reserve_pagedaemon int32
++ Reserve_kernel int32
++ Unused01 int32
++ Vnodepages int32
++ Vtextpages int32
++ Freemin int32
++ Freetarg int32
++ Inactarg int32
++ Wiredmax int32
++ Anonmin int32
++ Vtextmin int32
++ Vnodemin int32
++ Anonminpct int32
++ Vtextminpct int32
++ Vnodeminpct int32
++ Nswapdev int32
++ Swpages int32
++ Swpginuse int32
++ Swpgonly int32
++ Nswget int32
++ Nanon int32
++ Unused05 int32
++ Unused06 int32
++ Faults int32
++ Traps int32
++ Intrs int32
++ Swtch int32
++ Softs int32
++ Syscalls int32
++ Pageins int32
++ Unused07 int32
++ Unused08 int32
++ Pgswapin int32
++ Pgswapout int32
++ Forks int32
++ Forks_ppwait int32
++ Forks_sharevm int32
++ Pga_zerohit int32
++ Pga_zeromiss int32
++ Unused09 int32
++ Fltnoram int32
++ Fltnoanon int32
++ Fltnoamap int32
++ Fltpgwait int32
++ Fltpgrele int32
++ Fltrelck int32
++ Fltrelckok int32
++ Fltanget int32
++ Fltanretry int32
++ Fltamcopy int32
++ Fltnamap int32
++ Fltnomap int32
++ Fltlget int32
++ Fltget int32
++ Flt_anon int32
++ Flt_acow int32
++ Flt_obj int32
++ Flt_prcopy int32
++ Flt_przero int32
++ Pdwoke int32
++ Pdrevs int32
++ Pdswout int32
++ Pdfreed int32
++ Pdscans int32
++ Pdanscan int32
++ Pdobscan int32
++ Pdreact int32
++ Pdbusy int32
++ Pdpageouts int32
++ Pdpending int32
++ Pddeact int32
++ Unused11 int32
++ Unused12 int32
++ Unused13 int32
++ Fpswtch int32
++ Kmapent int32
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++ Hz int32
++ Tick int32
++ Tickadj int32
++ Stathz int32
++ Profhz int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go
+similarity index 58%
+copy from vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go
+copy to vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go
+index 46fe9490..4e158746 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go
+@@ -1,16 +1,16 @@
+-// Created by cgo -godefs - DO NOT EDIT
+-// cgo -godefs types_openbsd.go
++// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
+
+-// +build amd64,openbsd
++// +build arm64,openbsd
+
+ package unix
+
+ const (
+- sizeofPtr = 0x8
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x8
+- sizeofLongLong = 0x8
++ SizeofPtr = 0x8
++ SizeofShort = 0x2
++ SizeofInt = 0x4
++ SizeofLong = 0x8
++ SizeofLongLong = 0x8
+ )
+
+ type (
+@@ -56,48 +56,29 @@ type Rlimit struct {
+
+ type _Gid_t uint32
+
+-const (
+- S_IFMT = 0xf000
+- S_IFIFO = 0x1000
+- S_IFCHR = 0x2000
+- S_IFDIR = 0x4000
+- S_IFBLK = 0x6000
+- S_IFREG = 0x8000
+- S_IFLNK = 0xa000
+- S_IFSOCK = 0xc000
+- S_ISUID = 0x800
+- S_ISGID = 0x400
+- S_ISVTX = 0x200
+- S_IRUSR = 0x100
+- S_IWUSR = 0x80
+- S_IXUSR = 0x40
+-)
+-
+ type Stat_t struct {
+- Mode uint32
+- Dev int32
+- Ino uint64
+- Nlink uint32
+- Uid uint32
+- Gid uint32
+- Rdev int32
+- Atim Timespec
+- Mtim Timespec
+- Ctim Timespec
+- Size int64
+- Blocks int64
+- Blksize uint32
+- Flags uint32
+- Gen uint32
+- Pad_cgo_0 [4]byte
+- X__st_birthtim Timespec
++ Mode uint32
++ Dev int32
++ Ino uint64
++ Nlink uint32
++ Uid uint32
++ Gid uint32
++ Rdev int32
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ Size int64
++ Blocks int64
++ Blksize int32
++ Flags uint32
++ Gen uint32
++ _ Timespec
+ }
+
+ type Statfs_t struct {
+ F_flags uint32
+ F_bsize uint32
+ F_iosize uint32
+- Pad_cgo_0 [4]byte
+ F_blocks uint64
+ F_bfree uint64
+ F_bavail int64
+@@ -116,7 +97,7 @@ type Statfs_t struct {
+ F_mntonname [90]int8
+ F_mntfromname [90]int8
+ F_mntfromspec [90]int8
+- Pad_cgo_1 [2]byte
++ _ [2]byte
+ Mount_info [160]byte
+ }
+
+@@ -129,19 +110,23 @@ type Flock_t struct {
+ }
+
+ type Dirent struct {
+- Fileno uint64
+- Off int64
+- Reclen uint16
+- Type uint8
+- Namlen uint8
+- X__d_padding [4]uint8
+- Name [256]int8
++ Fileno uint64
++ Off int64
++ Reclen uint16
++ Type uint8
++ Namlen uint8
++ _ [4]uint8
++ Name [256]int8
+ }
+
+ type Fsid struct {
+ Val [2]int32
+ }
+
++const (
++ PathMax = 0x400
++)
++
+ type RawSockaddrInet4 struct {
+ Len uint8
+ Family uint8
+@@ -212,10 +197,8 @@ type IPv6Mreq struct {
+ type Msghdr struct {
+ Name *byte
+ Namelen uint32
+- Pad_cgo_0 [4]byte
+ Iov *Iovec
+ Iovlen uint32
+- Pad_cgo_1 [4]byte
+ Control *byte
+ Controllen uint32
+ Flags int32
+@@ -277,8 +260,8 @@ type FdSet struct {
+ }
+
+ const (
+- SizeofIfMsghdr = 0xf8
+- SizeofIfData = 0xe0
++ SizeofIfMsghdr = 0xa8
++ SizeofIfData = 0x90
+ SizeofIfaMsghdr = 0x18
+ SizeofIfAnnounceMsghdr = 0x1a
+ SizeofRtMsghdr = 0x60
+@@ -307,7 +290,7 @@ type IfData struct {
+ Link_state uint8
+ Mtu uint32
+ Metric uint32
+- Pad uint32
++ Rdomain uint32
+ Baudrate uint64
+ Ipackets uint64
+ Ierrors uint64
+@@ -319,12 +302,10 @@ type IfData struct {
+ Imcasts uint64
+ Omcasts uint64
+ Iqdrops uint64
++ Oqdrops uint64
+ Noproto uint64
+ Capabilities uint32
+- Pad_cgo_0 [4]byte
+ Lastchange Timeval
+- Mclpool [7]Mclpool
+- Pad_cgo_1 [4]byte
+ }
+
+ type IfaMsghdr struct {
+@@ -385,13 +366,7 @@ type RtMetrics struct {
+ Pad uint32
+ }
+
+-type Mclpool struct {
+- Grown int32
+- Alive uint16
+- Hwm uint16
+- Cwm uint16
+- Lwm uint16
+-}
++type Mclpool struct{}
+
+ const (
+ SizeofBpfVersion = 0x4
+@@ -412,9 +387,8 @@ type BpfStat struct {
+ }
+
+ type BpfProgram struct {
+- Len uint32
+- Pad_cgo_0 [4]byte
+- Insns *BpfInsn
++ Len uint32
++ Insns *BpfInsn
+ }
+
+ type BpfInsn struct {
+@@ -425,11 +399,11 @@ type BpfInsn struct {
+ }
+
+ type BpfHdr struct {
+- Tstamp BpfTimeval
+- Caplen uint32
+- Datalen uint32
+- Hdrlen uint16
+- Pad_cgo_0 [2]byte
++ Tstamp BpfTimeval
++ Caplen uint32
++ Datalen uint32
++ Hdrlen uint16
++ _ [2]byte
+ }
+
+ type BpfTimeval struct {
+@@ -447,7 +421,145 @@ type Termios struct {
+ Ospeed int32
+ }
+
++type Winsize struct {
++ Row uint16
++ Col uint16
++ Xpixel uint16
++ Ypixel uint16
++}
++
+ const (
+ AT_FDCWD = -0x64
++ AT_SYMLINK_FOLLOW = 0x4
+ AT_SYMLINK_NOFOLLOW = 0x2
+ )
++
++type PollFd struct {
++ Fd int32
++ Events int16
++ Revents int16
++}
++
++const (
++ POLLERR = 0x8
++ POLLHUP = 0x10
++ POLLIN = 0x1
++ POLLNVAL = 0x20
++ POLLOUT = 0x4
++ POLLPRI = 0x2
++ POLLRDBAND = 0x80
++ POLLRDNORM = 0x40
++ POLLWRBAND = 0x100
++ POLLWRNORM = 0x4
++)
++
++type Sigset_t uint32
++
++type Utsname struct {
++ Sysname [256]byte
++ Nodename [256]byte
++ Release [256]byte
++ Version [256]byte
++ Machine [256]byte
++}
++
++const SizeofUvmexp = 0x158
++
++type Uvmexp struct {
++ Pagesize int32
++ Pagemask int32
++ Pageshift int32
++ Npages int32
++ Free int32
++ Active int32
++ Inactive int32
++ Paging int32
++ Wired int32
++ Zeropages int32
++ Reserve_pagedaemon int32
++ Reserve_kernel int32
++ Unused01 int32
++ Vnodepages int32
++ Vtextpages int32
++ Freemin int32
++ Freetarg int32
++ Inactarg int32
++ Wiredmax int32
++ Anonmin int32
++ Vtextmin int32
++ Vnodemin int32
++ Anonminpct int32
++ Vtextminpct int32
++ Vnodeminpct int32
++ Nswapdev int32
++ Swpages int32
++ Swpginuse int32
++ Swpgonly int32
++ Nswget int32
++ Nanon int32
++ Unused05 int32
++ Unused06 int32
++ Faults int32
++ Traps int32
++ Intrs int32
++ Swtch int32
++ Softs int32
++ Syscalls int32
++ Pageins int32
++ Unused07 int32
++ Unused08 int32
++ Pgswapin int32
++ Pgswapout int32
++ Forks int32
++ Forks_ppwait int32
++ Forks_sharevm int32
++ Pga_zerohit int32
++ Pga_zeromiss int32
++ Unused09 int32
++ Fltnoram int32
++ Fltnoanon int32
++ Fltnoamap int32
++ Fltpgwait int32
++ Fltpgrele int32
++ Fltrelck int32
++ Fltrelckok int32
++ Fltanget int32
++ Fltanretry int32
++ Fltamcopy int32
++ Fltnamap int32
++ Fltnomap int32
++ Fltlget int32
++ Fltget int32
++ Flt_anon int32
++ Flt_acow int32
++ Flt_obj int32
++ Flt_prcopy int32
++ Flt_przero int32
++ Pdwoke int32
++ Pdrevs int32
++ Pdswout int32
++ Pdfreed int32
++ Pdscans int32
++ Pdanscan int32
++ Pdobscan int32
++ Pdreact int32
++ Pdbusy int32
++ Pdpageouts int32
++ Pdpending int32
++ Pddeact int32
++ Unused11 int32
++ Unused12 int32
++ Unused13 int32
++ Fpswtch int32
++ Kmapent int32
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++ Hz int32
++ Tick int32
++ Tickadj int32
++ Stathz int32
++ Profhz int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go
+index 92336f9f..23ed9fe5 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go
+@@ -6,11 +6,11 @@
+ package unix
+
+ const (
+- sizeofPtr = 0x8
+- sizeofShort = 0x2
+- sizeofInt = 0x4
+- sizeofLong = 0x8
+- sizeofLongLong = 0x8
++ SizeofPtr = 0x8
++ SizeofShort = 0x2
++ SizeofInt = 0x4
++ SizeofLong = 0x8
++ SizeofLongLong = 0x8
+ PathMax = 0x400
+ MaxHostNameLen = 0x100
+ )
+@@ -75,58 +75,41 @@ type Rlimit struct {
+
+ type _Gid_t uint32
+
+-const (
+- S_IFMT = 0xf000
+- S_IFIFO = 0x1000
+- S_IFCHR = 0x2000
+- S_IFDIR = 0x4000
+- S_IFBLK = 0x6000
+- S_IFREG = 0x8000
+- S_IFLNK = 0xa000
+- S_IFSOCK = 0xc000
+- S_ISUID = 0x800
+- S_ISGID = 0x400
+- S_ISVTX = 0x200
+- S_IRUSR = 0x100
+- S_IWUSR = 0x80
+- S_IXUSR = 0x40
+-)
+-
+ type Stat_t struct {
+- Dev uint64
+- Ino uint64
+- Mode uint32
+- Nlink uint32
+- Uid uint32
+- Gid uint32
+- Rdev uint64
+- Size int64
+- Atim Timespec
+- Mtim Timespec
+- Ctim Timespec
+- Blksize int32
+- Pad_cgo_0 [4]byte
+- Blocks int64
+- Fstype [16]int8
++ Dev uint64
++ Ino uint64
++ Mode uint32
++ Nlink uint32
++ Uid uint32
++ Gid uint32
++ Rdev uint64
++ Size int64
++ Atim Timespec
++ Mtim Timespec
++ Ctim Timespec
++ Blksize int32
++ _ [4]byte
++ Blocks int64
++ Fstype [16]int8
+ }
+
+ type Flock_t struct {
+- Type int16
+- Whence int16
+- Pad_cgo_0 [4]byte
+- Start int64
+- Len int64
+- Sysid int32
+- Pid int32
+- Pad [4]int64
++ Type int16
++ Whence int16
++ _ [4]byte
++ Start int64
++ Len int64
++ Sysid int32
++ Pid int32
++ Pad [4]int64
+ }
+
+ type Dirent struct {
+- Ino uint64
+- Off int64
+- Reclen uint16
+- Name [1]int8
+- Pad_cgo_0 [5]byte
++ Ino uint64
++ Off int64
++ Reclen uint16
++ Name [1]int8
++ _ [5]byte
+ }
+
+ type _Fsblkcnt_t uint64
+@@ -213,13 +196,13 @@ type IPv6Mreq struct {
+ type Msghdr struct {
+ Name *byte
+ Namelen uint32
+- Pad_cgo_0 [4]byte
++ _ [4]byte
+ Iov *Iovec
+ Iovlen int32
+- Pad_cgo_1 [4]byte
++ _ [4]byte
+ Accrights *int8
+ Accrightslen int32
+- Pad_cgo_2 [4]byte
++ _ [4]byte
+ }
+
+ type Cmsghdr struct {
+@@ -228,6 +211,12 @@ type Cmsghdr struct {
+ Type int32
+ }
+
++type Inet4Pktinfo struct {
++ Ifindex uint32
++ Spec_dst [4]byte /* in_addr */
++ Addr [4]byte /* in_addr */
++}
++
+ type Inet6Pktinfo struct {
+ Addr [16]byte /* in6_addr */
+ Ifindex uint32
+@@ -253,6 +242,7 @@ const (
+ SizeofIPv6Mreq = 0x14
+ SizeofMsghdr = 0x30
+ SizeofCmsghdr = 0xc
++ SizeofInet4Pktinfo = 0xc
+ SizeofInet6Pktinfo = 0x14
+ SizeofIPv6MTUInfo = 0x24
+ SizeofICMPv6Filter = 0x20
+@@ -263,19 +253,19 @@ type FdSet struct {
+ }
+
+ type Utsname struct {
+- Sysname [257]int8
+- Nodename [257]int8
+- Release [257]int8
+- Version [257]int8
+- Machine [257]int8
++ Sysname [257]byte
++ Nodename [257]byte
++ Release [257]byte
++ Version [257]byte
++ Machine [257]byte
+ }
+
+ type Ustat_t struct {
+- Tfree int64
+- Tinode uint64
+- Fname [6]int8
+- Fpack [6]int8
+- Pad_cgo_0 [4]byte
++ Tfree int64
++ Tinode uint64
++ Fname [6]int8
++ Fpack [6]int8
++ _ [4]byte
+ }
+
+ const (
+@@ -295,21 +285,21 @@ const (
+ )
+
+ type IfMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Data IfData
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ [2]byte
++ Data IfData
+ }
+
+ type IfData struct {
+ Type uint8
+ Addrlen uint8
+ Hdrlen uint8
+- Pad_cgo_0 [1]byte
++ _ [1]byte
+ Mtu uint32
+ Metric uint32
+ Baudrate uint32
+@@ -328,30 +318,30 @@ type IfData struct {
+ }
+
+ type IfaMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Addrs int32
+- Flags int32
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Metric int32
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Addrs int32
++ Flags int32
++ Index uint16
++ _ [2]byte
++ Metric int32
+ }
+
+ type RtMsghdr struct {
+- Msglen uint16
+- Version uint8
+- Type uint8
+- Index uint16
+- Pad_cgo_0 [2]byte
+- Flags int32
+- Addrs int32
+- Pid int32
+- Seq int32
+- Errno int32
+- Use int32
+- Inits uint32
+- Rmx RtMetrics
++ Msglen uint16
++ Version uint8
++ Type uint8
++ Index uint16
++ _ [2]byte
++ Flags int32
++ Addrs int32
++ Pid int32
++ Seq int32
++ Errno int32
++ Use int32
++ Inits uint32
++ Rmx RtMetrics
+ }
+
+ type RtMetrics struct {
+@@ -388,9 +378,9 @@ type BpfStat struct {
+ }
+
+ type BpfProgram struct {
+- Len uint32
+- Pad_cgo_0 [4]byte
+- Insns *BpfInsn
++ Len uint32
++ _ [4]byte
++ Insns *BpfInsn
+ }
+
+ type BpfInsn struct {
+@@ -406,32 +396,30 @@ type BpfTimeval struct {
+ }
+
+ type BpfHdr struct {
+- Tstamp BpfTimeval
+- Caplen uint32
+- Datalen uint32
+- Hdrlen uint16
+- Pad_cgo_0 [2]byte
++ Tstamp BpfTimeval
++ Caplen uint32
++ Datalen uint32
++ Hdrlen uint16
++ _ [2]byte
+ }
+
+-const _SC_PAGESIZE = 0xb
+-
+ type Termios struct {
+- Iflag uint32
+- Oflag uint32
+- Cflag uint32
+- Lflag uint32
+- Cc [19]uint8
+- Pad_cgo_0 [1]byte
++ Iflag uint32
++ Oflag uint32
++ Cflag uint32
++ Lflag uint32
++ Cc [19]uint8
++ _ [1]byte
+ }
+
+ type Termio struct {
+- Iflag uint16
+- Oflag uint16
+- Cflag uint16
+- Lflag uint16
+- Line int8
+- Cc [8]uint8
+- Pad_cgo_0 [1]byte
++ Iflag uint16
++ Oflag uint16
++ Cflag uint16
++ Lflag uint16
++ Line int8
++ Cc [8]uint8
++ _ [1]byte
+ }
+
+ type Winsize struct {
+@@ -440,3 +428,22 @@ type Winsize struct {
+ Xpixel uint16
+ Ypixel uint16
+ }
++
++type PollFd struct {
++ Fd int32
++ Events int16
++ Revents int16
++}
++
++const (
++ POLLERR = 0x8
++ POLLHUP = 0x10
++ POLLIN = 0x1
++ POLLNVAL = 0x20
++ POLLOUT = 0x4
++ POLLPRI = 0x2
++ POLLRDBAND = 0x80
++ POLLRDNORM = 0x40
++ POLLWRBAND = 0x100
++ POLLWRNORM = 0x4
++)
+--
+2.26.2
+
diff --git a/meta/recipes-devtools/go/go-dep_0.5.4.bb b/meta/recipes-devtools/go/go-dep_0.5.4.bb
index 615cb289e5..0da2c6607c 100644
--- a/meta/recipes-devtools/go/go-dep_0.5.4.bb
+++ b/meta/recipes-devtools/go/go-dep_0.5.4.bb
@@ -8,11 +8,16 @@ SRC_URI = "git://${GO_IMPORT} \
file://0001-Add-support-for-mips-mips64.patch;patchdir=src/github.com/golang/dep \
file://0001-bolt_riscv64-Add-support-for-riscv64.patch;patchdir=src/github.com/golang/dep \
"
+SRC_URI_append_riscv64 = " file://0001-Update-sys-module-to-latest.patch;patchdir=src/github.com/golang/dep "
SRCREV = "1f7c19e5f52f49ffb9f956f64c010be14683468b"
inherit go
+# New Go versions has Go modules support enabled by default and cause the Glide
+# tool build to fail.
+export GO111MODULE = "off"
+
GO_INSTALL = "${GO_IMPORT}/cmd/dep"
RDEPENDS_${PN}-dev += "bash"
diff --git a/meta/recipes-devtools/go/go-native_1.13.bb b/meta/recipes-devtools/go/go-native_1.13.bb
deleted file mode 100644
index bbf3c0dd73..0000000000
--- a/meta/recipes-devtools/go/go-native_1.13.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require ${PN}.inc
-require go-${PV}.inc
diff --git a/meta/recipes-devtools/go/go-native.inc b/meta/recipes-devtools/go/go-native_1.15.bb
index 207708745e..f14892cdb0 100644
--- a/meta/recipes-devtools/go/go-native.inc
+++ b/meta/recipes-devtools/go/go-native_1.15.bb
@@ -1,7 +1,11 @@
+# This recipe builds a native Go (written in Go) by first building an old Go 1.4
+# (written in C). However this old Go does not support all hosts platforms.
+
+require go-${PV}.inc
+
inherit native
SRC_URI_append = " https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz;name=bootstrap;subdir=go1.4"
-SRC_URI[bootstrap.md5sum] = "dbf727a4b0e365bf88d97cbfde590016"
SRC_URI[bootstrap.sha256sum] = "f4ff5b5eb3a3cae1c993723f3eab519c5bae18866b5e5f96fe1102f0cb5c3e52"
export GOOS = "${BUILD_GOOS}"
diff --git a/meta/recipes-devtools/go/go-runtime_1.13.bb b/meta/recipes-devtools/go/go-runtime_1.15.bb
index 43b68b4e46..4eeee65e0c 100644
--- a/meta/recipes-devtools/go/go-runtime_1.13.bb
+++ b/meta/recipes-devtools/go/go-runtime_1.15.bb
@@ -1,2 +1,3 @@
+export CGO_ENABLED_riscv64 = ""
require go-${PV}.inc
require go-runtime.inc
diff --git a/meta/recipes-devtools/go/go-target.inc b/meta/recipes-devtools/go/go-target.inc
index 316bf6f038..8e44247031 100644
--- a/meta/recipes-devtools/go/go-target.inc
+++ b/meta/recipes-devtools/go/go-target.inc
@@ -34,12 +34,12 @@ do_install() {
install -m 0755 $f ${D}${libdir}/go/bin/
ln -sf ../${baselib}/go/bin/$name ${D}${bindir}/
done
+ rm -rf ${D}${libdir}/go/src
}
PACKAGES = "${PN} ${PN}-dev"
FILES_${PN} = "${libdir}/go/bin ${libdir}/go/pkg/tool/${TARGET_GOTUPLE} ${bindir}"
-FILES_${PN}-dev = "${libdir}/go"
-RDEPENDS_${PN}-dev = "perl bash"
+RDEPENDS_${PN} = "go-runtime"
INSANE_SKIP_${PN} = "ldflags"
BBCLASSEXTEND = "nativesdk"
diff --git a/meta/recipes-devtools/go/go_1.13.bb b/meta/recipes-devtools/go/go_1.15.bb
index 5d40cf9d04..4bf9dd50b2 100644
--- a/meta/recipes-devtools/go/go_1.13.bb
+++ b/meta/recipes-devtools/go/go_1.15.bb
@@ -1,14 +1,15 @@
require go-${PV}.inc
require go-target.inc
+inherit linuxloader
+
export GOBUILDMODE=""
+export CGO_ENABLED_riscv64 = ""
+export GO_LDSO = "${@get_linuxloader(d)}"
-# Add pie to GOBUILDMODE to satisfy "textrel" QA checking, but mips/riscv
-# doesn't support -buildmode=pie, so skip the QA checking for mips/riscv and its
+# mips/rv64 doesn't support -buildmode=pie, so skip the QA checking for mips/riscv and its
# variants.
python() {
if 'mips' in d.getVar('TARGET_ARCH',True) or 'riscv' in d.getVar('TARGET_ARCH',True):
d.appendVar('INSANE_SKIP_%s' % d.getVar('PN',True), " textrel")
- else:
- d.setVar('GOBUILDMODE', 'pie')
}
diff --git a/meta/recipes-devtools/help2man/help2man-native_1.47.11.bb b/meta/recipes-devtools/help2man/help2man-native_1.47.11.bb
deleted file mode 100644
index a60e851897..0000000000
--- a/meta/recipes-devtools/help2man/help2man-native_1.47.11.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Program for creating simple man pages"
-SECTION = "devel"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-DEPENDS = "autoconf-native automake-native"
-
-SRC_URI = "${GNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "dd322adcaede5bd5eaed075ff8971bc1"
-SRC_URI[sha256sum] = "5985b257f86304c8791842c0c807a37541d0d6807ee973000cf8a3fe6ad47b88"
-
-inherit autotools native
-
-EXTRA_OECONF = "--disable-nls"
-
-# We don't want to reconfigure things as it would require 'perlnative' to be
-# used.
-do_configure() {
- oe_runconf
-}
-
-do_install_append () {
- # Make sure we use /usr/bin/env perl
- sed -i -e "1s:#!.*:#! /usr/bin/env perl:" ${D}${bindir}/help2man
-}
diff --git a/meta/recipes-devtools/help2man/help2man_1.47.15.bb b/meta/recipes-devtools/help2man/help2man_1.47.15.bb
new file mode 100644
index 0000000000..6ab9f6cbe7
--- /dev/null
+++ b/meta/recipes-devtools/help2man/help2man_1.47.15.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Program for creating simple man pages"
+SECTION = "devel"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
+
+SRC_URI = "${GNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz"
+SRC_URI[sha256sum] = "c25a35b30eceb315361484b0ff1f81c924e8ee5c8881576f1ee762f001dbcd1c"
+
+inherit autotools
+
+# This is a hand-maintained aclocal.m4 but our autotools class currently deletes
+# aclocal.m4.
+EXTRA_AUTORECONF += "--exclude=aclocal"
+
+EXTRA_OECONF = "--disable-nls"
+
+do_install_append () {
+ # Make sure we use /usr/bin/env perl
+ sed -i -e "1s:#!.*:#! /usr/bin/env perl:" ${D}${bindir}/help2man
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/jquery/jquery_3.4.1.bb b/meta/recipes-devtools/jquery/jquery_3.4.1.bb
deleted file mode 100644
index 1bf6ef5c98..0000000000
--- a/meta/recipes-devtools/jquery/jquery_3.4.1.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "jQuery is a fast, small, and feature-rich JavaScript library"
-HOMEPAGE = "https://jquery.com/"
-LICENSE = "MIT"
-SECTION = "devel"
-LIC_FILES_CHKSUM = "file://${WORKDIR}/${BP}.js;startline=8;endline=10;md5=cdb86f5bda90caec023592d2e768357c"
-
-SRC_URI = "\
- https://code.jquery.com/${BP}.js;name=js \
- https://code.jquery.com/${BP}.min.js;name=min \
- https://code.jquery.com/${BP}.min.map;name=map \
- "
-
-SRC_URI[js.sha256sum] = "5a93a88493aa32aab228bf4571c01207d3b42b0002409a454d404b4d8395bd55"
-SRC_URI[min.sha256sum] = "0925e8ad7bd971391a8b1e98be8e87a6971919eb5b60c196485941c3c1df089a"
-SRC_URI[map.sha256sum] = "8da74aec0fcdd7678a2663b3cc9bafbaf009e6d6929b28bb3dd95bced18206f6"
-
-UPSTREAM_CHECK_REGEX = "jquery-(?P<pver>\d+(\.\d+)+)\.js"
-
-inherit allarch
-
-do_install() {
- install -d ${D}${datadir}/javascript/${BPN}/
- install -m 644 ${WORKDIR}/${BP}.js ${D}${datadir}/javascript/${BPN}/${BPN}.js
- install -m 644 ${WORKDIR}/${BP}.min.js ${D}${datadir}/javascript/${BPN}/${BPN}.min.js
- install -m 644 ${WORKDIR}/${BP}.min.map ${D}${datadir}/javascript/${BPN}/${BPN}.min.map
-}
-
-PACKAGES = "${PN}"
-FILES_${PN} = "${datadir}"
-
-BBCLASSEXTEND += "native nativesdk"
diff --git a/meta/recipes-devtools/jquery/jquery_3.5.1.bb b/meta/recipes-devtools/jquery/jquery_3.5.1.bb
new file mode 100644
index 0000000000..62f0dfb0c5
--- /dev/null
+++ b/meta/recipes-devtools/jquery/jquery_3.5.1.bb
@@ -0,0 +1,33 @@
+SUMMARY = "jQuery is a fast, small, and feature-rich JavaScript library"
+HOMEPAGE = "https://jquery.com/"
+LICENSE = "MIT"
+SECTION = "devel"
+LIC_FILES_CHKSUM = "file://${S}/${BP}.js;beginline=8;endline=10;md5=ebd7bc5d23ab165188e526a0c65d24bb"
+
+# unpack items to ${S} so the archiver can see them
+#
+SRC_URI = "\
+ https://code.jquery.com/${BP}.js;name=js;subdir=${BP} \
+ https://code.jquery.com/${BP}.min.js;name=min;subdir=${BP} \
+ https://code.jquery.com/${BP}.min.map;name=map;subdir=${BP} \
+ "
+
+SRC_URI[js.sha256sum] = "416a3b2c3bf16d64f6b5b6d0f7b079df2267614dd6847fc2f3271b4409233c37"
+SRC_URI[min.sha256sum] = "f7f6a5894f1d19ddad6fa392b2ece2c5e578cbf7da4ea805b6885eb6985b6e3d"
+SRC_URI[map.sha256sum] = "511d6f6d3e7acec78cd2505f04282b6e01329b4c24931f39d91739d0d1ddeef8"
+
+UPSTREAM_CHECK_REGEX = "jquery-(?P<pver>\d+(\.\d+)+)\.js"
+
+inherit allarch
+
+do_install() {
+ install -d ${D}${datadir}/javascript/${BPN}/
+ install -m 644 ${S}/${BP}.js ${D}${datadir}/javascript/${BPN}/${BPN}.js
+ install -m 644 ${S}/${BP}.min.js ${D}${datadir}/javascript/${BPN}/${BPN}.min.js
+ install -m 644 ${S}/${BP}.min.map ${D}${datadir}/javascript/${BPN}/${BPN}.min.map
+}
+
+PACKAGES = "${PN}"
+FILES_${PN} = "${datadir}"
+
+BBCLASSEXTEND += "native nativesdk"
diff --git a/meta/recipes-devtools/json-c/json-c/add-disable-werror-option-to-configure.patch b/meta/recipes-devtools/json-c/json-c/add-disable-werror-option-to-configure.patch
deleted file mode 100644
index 0c20c8458a..0000000000
--- a/meta/recipes-devtools/json-c/json-c/add-disable-werror-option-to-configure.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-json-c: Backport --disable-werror patch to allow compilation under icecc
-
-icecc preprocesses source files locally before shipping them off to be compiled
-on remote hosts. This preprocessing removes comments, including /* fallthough */
-comments in switch statements that normally prevent an implicit-fallthrough
-warning, see https://github.com/icecc/icecream/issues/419
-
-Rather than turning off -Werror, the upstream project has implemented a
-configure option, --disable-werror, in response to Ross's
-https://github.com/json-c/json-c/issues/489
-
-This patch from
-https://github.com/json-c/json-c/commit/21c886534f8927fdc0fb5f8647394f3e0e0874b8
-
-Upstream-Status: Backport [Not yet released]
-Signed-off-by: Douglas Royds <douglas.royds@taitradio.com>
-
-From 21c886534f8927fdc0fb5f8647394f3e0e0874b8 Mon Sep 17 00:00:00 2001
-From: Pierce Lopez <pierce.lopez@gmail.com>
-Date: Sun, 9 Jun 2019 10:52:08 -0400
-Subject: [PATCH] build: add --disable-werror option to configure
-
-to omit -Werror compiler option
----
- configure.ac | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 272ea6af9c..798fd5b747 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -165,7 +165,12 @@ AS_IF([test "x$enable_Bsymbolic" = "xcheck"],
- AS_IF([test "x$enable_Bsymbolic" = "xyes"], [JSON_BSYMBOLIC_LDFLAGS=-Wl[,]-Bsymbolic-functions])
- AC_SUBST(JSON_BSYMBOLIC_LDFLAGS)
-
--AX_APPEND_COMPILE_FLAGS([-Wall -Werror -Wcast-qual -Wno-error=deprecated-declarations])
-+AC_ARG_ENABLE([werror],
-+ AS_HELP_STRING([--disable-werror], [avoid treating compiler warnings as fatal errors]))
-+
-+AS_IF([test "x$enable_werror" != "xno"], [AX_APPEND_COMPILE_FLAGS([-Werror])])
-+
-+AX_APPEND_COMPILE_FLAGS([-Wall -Wcast-qual -Wno-error=deprecated-declarations])
- AX_APPEND_COMPILE_FLAGS([-Wextra -Wwrite-string -Wno-unused-parameter])
- AX_APPEND_COMPILE_FLAGS([-D_GNU_SOURCE])
-
diff --git a/meta/recipes-devtools/json-c/json-c_0.13.1.bb b/meta/recipes-devtools/json-c/json-c_0.15.bb
index 522879f21f..2968590dd8 100644
--- a/meta/recipes-devtools/json-c/json-c_0.13.1.bb
+++ b/meta/recipes-devtools/json-c/json-c_0.15.bb
@@ -4,19 +4,15 @@ HOMEPAGE = "https://github.com/json-c/json-c/wiki"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=de54b60fbbc35123ba193fea8ee216f2"
-SRC_URI = "https://s3.amazonaws.com/json-c_releases/releases/${BP}.tar.gz \
- file://add-disable-werror-option-to-configure.patch \
- "
-SRC_URI[md5sum] = "04969ad59cc37bddd83741a08b98f350"
-SRC_URI[sha256sum] = "b87e608d4d3f7bfdd36ef78d56d53c74e66ab278d318b71e6002a369d36f4873"
+SRC_URI = "https://s3.amazonaws.com/json-c_releases/releases/${BP}.tar.gz"
+
+SRC_URI[sha256sum] = "b8d80a1ddb718b3ba7492916237bbf86609e9709fb007e7f7d4322f02341a4c6"
UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
UPSTREAM_CHECK_REGEX = "json-c-(?P<pver>\d+(\.\d+)+)-\d+"
RPROVIDES_${PN} = "libjson"
-inherit autotools
-
-EXTRA_OECONF = "--disable-werror"
+inherit cmake
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/libcomps/libcomps/0001-Add-crc32.c-to-sources-list.patch b/meta/recipes-devtools/libcomps/libcomps/0001-Add-crc32.c-to-sources-list.patch
index ff90269a23..f4fb6d3b20 100644
--- a/meta/recipes-devtools/libcomps/libcomps/0001-Add-crc32.c-to-sources-list.patch
+++ b/meta/recipes-devtools/libcomps/libcomps/0001-Add-crc32.c-to-sources-list.patch
@@ -1,7 +1,7 @@
-From 83407aa50e06d967d0a1095a140bd7b0e5d51d27 Mon Sep 17 00:00:00 2001
+From 72065bb2b5881dc224299f302379391aebdfca3d Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Wed, 21 Nov 2018 13:09:05 +0100
-Subject: [PATCH] Add crc32.c to sources list
+Subject: [PATCH 1/2] Add crc32.c to sources list
Otherwise, there is a missing symbol runtime error under musl C library.
@@ -13,7 +13,7 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/libcomps/src/python/src/CMakeLists.txt b/libcomps/src/python/src/CMakeLists.txt
-index 6ed25bb..c15c8b2 100644
+index adabb31..b9b96ab 100644
--- a/libcomps/src/python/src/CMakeLists.txt
+++ b/libcomps/src/python/src/CMakeLists.txt
@@ -9,13 +9,13 @@ set (pycomps_SRCDIR ${CMAKE_CURRENT_SOURCE_DIR})
@@ -45,3 +45,6 @@ index d8f5e34..f266067 100644
static uint32_t crc32_tab[] = {
0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,
+--
+2.26.2
+
diff --git a/meta/recipes-devtools/libcomps/libcomps/0001-Make-__comps_objmrtree_all-static-inline.patch b/meta/recipes-devtools/libcomps/libcomps/0001-Make-__comps_objmrtree_all-static-inline.patch
deleted file mode 100644
index 88469fb331..0000000000
--- a/meta/recipes-devtools/libcomps/libcomps/0001-Make-__comps_objmrtree_all-static-inline.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 91a324f8771818b81017fdf4daaad0c8c4b6987c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 20 Mar 2017 11:38:54 -0700
-Subject: [PATCH] Make __comps_objmrtree_all() static inline
-
-This helps compilers to scope the symbol correctly
-and apply the inlining optimizations, clang e.g.
-emits the functions and calls in code which is
-suboptimal, therefore give a little help to compiler
-this function is not used anywhere else to have
-a global scope.
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- libcomps/src/comps_objmradix.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libcomps/src/comps_objmradix.c b/libcomps/src/comps_objmradix.c
-index 9be6648..55f7793 100644
---- a/libcomps/src/comps_objmradix.c
-+++ b/libcomps/src/comps_objmradix.c
-@@ -604,7 +604,7 @@ inline void comps_objmrtree_pair_destroy_v(void * pair) {
- free(pair);
- }
-
--inline COMPS_HSList* __comps_objmrtree_all(COMPS_ObjMRTree * rt, char keyvalpair) {
-+static inline COMPS_HSList* __comps_objmrtree_all(COMPS_ObjMRTree * rt, char keyvalpair) {
- COMPS_HSList *to_process, *ret;
- COMPS_HSListItem *hsit, *oldit;
- size_t x;
---
-2.12.0
-
diff --git a/meta/recipes-devtools/libcomps/libcomps/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch b/meta/recipes-devtools/libcomps/libcomps/0002-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch
index 59c09aa70a..3e9102605b 100644
--- a/meta/recipes-devtools/libcomps/libcomps/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch
+++ b/meta/recipes-devtools/libcomps/libcomps/0002-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch
@@ -1,20 +1,19 @@
-From b28859ea93110d52d8a87d7b5a6c8796d0d523ed Mon Sep 17 00:00:00 2001
+From 32447a79e24f8e7e9e0150eb747f34116d63ef38 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Fri, 30 Dec 2016 18:22:09 +0200
-Subject: [PATCH] Do not set PYTHON_INSTALL_DIR by running python.
+Subject: [PATCH 2/2] Do not set PYTHON_INSTALL_DIR by running python.
Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
---
libcomps/src/python/src/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libcomps/src/python/src/CMakeLists.txt b/libcomps/src/python/src/CMakeLists.txt
-index fa590ae..6913214 100644
+index b9b96ab..6d44567 100644
--- a/libcomps/src/python/src/CMakeLists.txt
+++ b/libcomps/src/python/src/CMakeLists.txt
-@@ -117,7 +117,7 @@ IF (SKBUILD)
+@@ -115,7 +115,7 @@ IF (SKBUILD)
INSTALL(FILES libcomps/__init__.py DESTINATION libcomps/src/python/src/libcomps)
INSTALL(TARGETS pycomps LIBRARY DESTINATION libcomps/src/python/src/libcomps)
ELSE ()
@@ -23,3 +22,6 @@ index fa590ae..6913214 100644
INSTALL(FILES ${pycomps_SRCDIR}/libcomps/__init__.py DESTINATION ${PYTHON_INSTALL_DIR}/libcomps)
#INSTALL(FILES ${pycomps_SRCDIR}/tests/__test.py DESTINATION
+--
+2.26.2
+
diff --git a/meta/recipes-devtools/libcomps/libcomps_git.bb b/meta/recipes-devtools/libcomps/libcomps_0.1.15.bb
index 40b60159bc..98c55dca85 100644
--- a/meta/recipes-devtools/libcomps/libcomps_git.bb
+++ b/meta/recipes-devtools/libcomps/libcomps_0.1.15.bb
@@ -3,13 +3,11 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "git://github.com/rpm-software-management/libcomps.git \
- file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \
- file://0001-Make-__comps_objmrtree_all-static-inline.patch \
file://0001-Add-crc32.c-to-sources-list.patch \
+ file://0002-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \
"
-PV = "0.1.14"
-SRCREV = "5a0e04286f3462e3308f2a332eb0f90a66920218"
+SRCREV = "b213f749405d84e989b25e183bcf28ce701696dd"
S = "${WORKDIR}/git"
diff --git a/meta/recipes-devtools/libdnf/libdnf/0001-Add-WITH_TESTS-option.patch b/meta/recipes-devtools/libdnf/libdnf/0001-Add-WITH_TESTS-option.patch
index 3c87d4d8b3..384add5e12 100644
--- a/meta/recipes-devtools/libdnf/libdnf/0001-Add-WITH_TESTS-option.patch
+++ b/meta/recipes-devtools/libdnf/libdnf/0001-Add-WITH_TESTS-option.patch
@@ -1,4 +1,4 @@
-From e5a50db749b2b02e9e0cff9f7b639020e8ac76da Mon Sep 17 00:00:00 2001
+From 7d60d62b5c5374156703ca7262fb2f85ec5db119 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Tue, 6 Nov 2018 13:54:43 +0100
Subject: [PATCH] Add WITH_TESTS option
@@ -14,18 +14,18 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
2 files changed, 5 insertions(+)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index ce88b9e3..7a99320a 100644
+index 9c6e1b2f..8599c540 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -32,6 +32,7 @@ option(WITH_HTML "Enables hawkey HTML generation" ON)
- option(WITH_MAN "Enables hawkey man page generation" ON)
+@@ -33,6 +33,7 @@ option(WITH_MAN "Enables hawkey man page generation" ON)
+ option(WITH_ZCHUNK "Build with zchunk support" ON)
option(ENABLE_RHSM_SUPPORT "Build with Red Hat Subscription Manager support?" OFF)
option(ENABLE_SOLV_URPMREORDER "Build with support for URPM-like solution reordering?" OFF)
+option(WITH_TESTS "Enables unit tests" ON)
- # load pkg-config first; it's required by other modules
-@@ -158,8 +159,10 @@ endif()
+ # build options - debugging
+@@ -179,8 +180,10 @@ endif()
# build tests
diff --git a/meta/recipes-devtools/libdnf/libdnf/0001-Look-fo-sphinx-only-if-documentation-is-actually-ena.patch b/meta/recipes-devtools/libdnf/libdnf/0001-Look-fo-sphinx-only-if-documentation-is-actually-ena.patch
new file mode 100644
index 0000000000..6dd7c71aae
--- /dev/null
+++ b/meta/recipes-devtools/libdnf/libdnf/0001-Look-fo-sphinx-only-if-documentation-is-actually-ena.patch
@@ -0,0 +1,42 @@
+From b570c7f8bd089deec7da2b108aa789a27025a473 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Tue, 19 Nov 2019 13:46:09 +0100
+Subject: [PATCH] Look fo sphinx only if documentation is actually enabled
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ docs/hawkey/CMakeLists.txt | 20 +++++++++++---------
+ 1 file changed, 11 insertions(+), 9 deletions(-)
+
+diff --git a/docs/hawkey/CMakeLists.txt b/docs/hawkey/CMakeLists.txt
+index 52cc35c6..63c7672f 100644
+--- a/docs/hawkey/CMakeLists.txt
++++ b/docs/hawkey/CMakeLists.txt
+@@ -2,15 +2,17 @@
+ # tell sphinx-build to do them both in one go:
+
+
+-find_program(SPHINX_PROGRAM NAMES "sphinx-build-${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}")
+-if(NOT EXISTS ${SPHINX_PROGRAM})
+- find_program(SPHINX_PROGRAM NAMES sphinx-build-${PYTHON_VERSION_MAJOR})
+-endif()
+-if(NOT EXISTS ${SPHINX_PROGRAM})
+- find_program(SPHINX_PROGRAM NAMES sphinx-build)
+-endif()
+-if(NOT EXISTS ${SPHINX_PROGRAM})
+- message(FATAL_ERROR "Sphinx program not found." )
++if (WITH_HTML OR WITH_MAN)
++ find_program(SPHINX_PROGRAM NAMES "sphinx-build-${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}")
++ if(NOT EXISTS ${SPHINX_PROGRAM})
++ find_program(SPHINX_PROGRAM NAMES sphinx-build-${PYTHON_VERSION_MAJOR})
++ endif()
++ if(NOT EXISTS ${SPHINX_PROGRAM})
++ find_program(SPHINX_PROGRAM NAMES sphinx-build)
++ endif()
++ if(NOT EXISTS ${SPHINX_PROGRAM})
++ message(FATAL_ERROR "Sphinx program not found." )
++ endif()
+ endif()
+
+ if(WITH_HTML)
diff --git a/meta/recipes-devtools/libdnf/libdnf/0001-include-stdexcept-for-runtime_error.patch b/meta/recipes-devtools/libdnf/libdnf/0001-include-stdexcept-for-runtime_error.patch
deleted file mode 100644
index cedf539243..0000000000
--- a/meta/recipes-devtools/libdnf/libdnf/0001-include-stdexcept-for-runtime_error.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 5f8eee5040d7074710cd542fc50f7a40918321fc Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 23 Dec 2019 14:30:22 -0800
-Subject: [PATCH] include <stdexcept> for runtime_error
-
-Fixes
-
-error: class 'libdnf::ModulePackageContainer::Exception' does not have any field named 'runtime_error'
- explicit Exception(const std::string &what) : runtime_error(what) {}
- ^~~~~~~~~~~~~
-
-Upstream-Status: Submitted [https://github.com/rpm-software-management/libdnf/pull/867]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- libdnf/goal/Goal.hpp | 1 +
- libdnf/module/ModulePackageContainer.hpp | 1 +
- libdnf/repo/solvable/Dependency.cpp | 3 ++-
- 3 files changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/libdnf/goal/Goal.hpp b/libdnf/goal/Goal.hpp
-index f33dfa24..7b8d822c 100644
---- a/libdnf/goal/Goal.hpp
-+++ b/libdnf/goal/Goal.hpp
-@@ -22,6 +22,7 @@
- #define __GOAL_HPP
-
- #include <memory>
-+#include <stdexcept>
-
- #include "../dnf-types.h"
- #include "../hy-goal.h"
-diff --git a/libdnf/module/ModulePackageContainer.hpp b/libdnf/module/ModulePackageContainer.hpp
-index 1f815fda..37a8832d 100644
---- a/libdnf/module/ModulePackageContainer.hpp
-+++ b/libdnf/module/ModulePackageContainer.hpp
-@@ -30,6 +30,7 @@
- #include <string>
- #include <vector>
- #include <set>
-+#include <stdexcept>
-
- //class ModulePackageContainer;
- //typedef std::shared_ptr<ModulePackageContainer> ModulePackageContainerPtr;
-diff --git a/libdnf/repo/solvable/Dependency.cpp b/libdnf/repo/solvable/Dependency.cpp
-index 6682b729..0fc8b5cd 100644
---- a/libdnf/repo/solvable/Dependency.cpp
-+++ b/libdnf/repo/solvable/Dependency.cpp
-@@ -18,6 +18,7 @@
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-+#include <stdexcept>
- #include "Dependency.hpp"
- #include "libdnf/utils/utils.hpp"
- #include "libdnf/repo/DependencySplitter.hpp"
-@@ -106,4 +107,4 @@ Dependency::getReldepId(DnfSack *sack, const char * reldepStr)
- }
- }
-
--}
-\ No newline at end of file
-+}
---
-2.24.1
-
diff --git a/meta/recipes-devtools/libdnf/libdnf/enable_test_data_dir_set.patch b/meta/recipes-devtools/libdnf/libdnf/enable_test_data_dir_set.patch
new file mode 100644
index 0000000000..e3784cc9e4
--- /dev/null
+++ b/meta/recipes-devtools/libdnf/libdnf/enable_test_data_dir_set.patch
@@ -0,0 +1,26 @@
+libdnf: allow reproducible binary builds
+
+Use a dummy directory for test data if not built WITH_TESTS. Allow for overriding
+TESTDATADIR, since the default is guaranteed to be wrong for target builds.
+
+Upstream-Status: Pending
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -133,7 +133,12 @@ add_definitions(-DG_LOG_DOMAIN=\\"libdnf
+ add_definitions(-D_FILE_OFFSET_BITS=64)
+
+ # tests
+-add_definitions(-DTESTDATADIR=\\"${CMAKE_SOURCE_DIR}/data/tests\\")
++if(NOT WITH_TESTS)
++ set(TEST_DATA_DIR "/notests")
++elseif(NOT DEFINED TEST_DATA_DIR)
++ set(TEST_DATA_DIR "${CMAKE_SOURCE_DIR}/data/tests")
++endif()
++add_definitions(-DTESTDATADIR=\\"${TEST_DATA_DIR}\\")
+
+ # librhsm
+ if(ENABLE_RHSM_SUPPORT)
diff --git a/meta/recipes-devtools/libdnf/libdnf_0.28.1.bb b/meta/recipes-devtools/libdnf/libdnf_0.48.0.bb
index d498347094..37991e6d80 100644
--- a/meta/recipes-devtools/libdnf/libdnf_0.28.1.bb
+++ b/meta/recipes-devtools/libdnf/libdnf_0.48.0.bb
@@ -2,25 +2,29 @@ SUMMARY = "Library providing simplified C and Python API to libsolv"
LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-SRC_URI = "git://github.com/rpm-software-management/libdnf \
+SRC_URI = "git://github.com/rpm-software-management/libdnf;branch=dnf-4-master \
file://0001-FindGtkDoc.cmake-drop-the-requirement-for-GTKDOC_SCA.patch \
file://0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch \
file://0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch \
file://0001-Add-WITH_TESTS-option.patch \
- file://0001-include-stdexcept-for-runtime_error.patch \
+ file://0001-Look-fo-sphinx-only-if-documentation-is-actually-ena.patch \
+ file://enable_test_data_dir_set.patch \
"
-SRCREV = "751f89045b80d58c0d05800f74357cf78cdf7e77"
+SRCREV = "46a28d0cf09277fffc11392e5e362a2eda0d53a8"
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
S = "${WORKDIR}/git"
-DEPENDS = "glib-2.0 libsolv libcheck librepo rpm gtk-doc libmodulemd-v1 json-c swig-native"
+DEPENDS = "glib-2.0 libsolv libcheck librepo rpm gtk-doc libmodulemd json-c swig-native"
inherit gtk-doc gobject-introspection cmake pkgconfig distutils3-base
EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DWITH_MAN=OFF -DPYTHON_DESIRED=3 \
${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DWITH_GIR=ON', '-DWITH_GIR=OFF', d)} \
-DWITH_TESTS=OFF \
+ -DWITH_ZCHUNK=OFF \
+ -DWITH_HTML=OFF \
"
EXTRA_OECMAKE_append_class-native = " -DWITH_GIR=OFF"
EXTRA_OECMAKE_append_class-nativesdk = " -DWITH_GIR=OFF"
diff --git a/meta/recipes-devtools/libedit/libedit_20191231-3.1.bb b/meta/recipes-devtools/libedit/libedit_20191231-3.1.bb
index 7116c9ddbc..8d2d57a930 100644
--- a/meta/recipes-devtools/libedit/libedit_20191231-3.1.bb
+++ b/meta/recipes-devtools/libedit/libedit_20191231-3.1.bb
@@ -17,3 +17,9 @@ SRC_URI[md5sum] = "2e22a51131de94ff2df24901f7cfe416"
SRC_URI[sha256sum] = "dbb82cb7e116a5f8025d35ef5b4f7d4a3cdd0a3909a146a39112095a2d229071"
BBCLASSEXTEND = "native nativesdk"
+
+inherit update-alternatives
+
+ALTERNATIVE_PRIORITY = "90"
+ALTERNATIVE_${PN}-doc = "history.3"
+ALTERNATIVE_LINK_NAME[history.3] = "${mandir}/man3/history.3"
diff --git a/meta/recipes-devtools/libmodulemd/libmodulemd-v1/0001-spec_tmpl.sh-use-bin-sh-not-usr-bin-sh.patch b/meta/recipes-devtools/libmodulemd/libmodulemd-v1/0001-spec_tmpl.sh-use-bin-sh-not-usr-bin-sh.patch
deleted file mode 100644
index 847b5f700b..0000000000
--- a/meta/recipes-devtools/libmodulemd/libmodulemd-v1/0001-spec_tmpl.sh-use-bin-sh-not-usr-bin-sh.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From 4e67f6049b3f822fe6f5af46790a51ace581bf82 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Tue, 6 Nov 2018 13:41:29 +0100
-Subject: [PATCH] spec_tmpl.sh: use /bin/sh, not /usr/bin/sh
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- spec_tmpl.sh | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/spec_tmpl.sh b/spec_tmpl.sh
-index 0238087..126853c 100755
---- a/spec_tmpl.sh
-+++ b/spec_tmpl.sh
-@@ -1,4 +1,4 @@
--#!/usr/bin/sh
-+#!/bin/sh
-
- version=$1
- template=$2
diff --git a/meta/recipes-devtools/libmodulemd/libmodulemd-v1_git.bb b/meta/recipes-devtools/libmodulemd/libmodulemd-v1_git.bb
deleted file mode 100644
index 5409051d79..0000000000
--- a/meta/recipes-devtools/libmodulemd/libmodulemd-v1_git.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "C Library for manipulating module metadata files"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=25a3927bff3ee4f5b21bcb0ed3fcd6bb"
-
-SRC_URI = "git://github.com/fedora-modularity/libmodulemd;protocol=https;branch=1.x-maint \
- file://0001-spec_tmpl.sh-use-bin-sh-not-usr-bin-sh.patch \
- "
-
-PV = "1.8.16"
-SRCREV = "d0dcf7b373b3cf85cd39eb3bc23d31e06195a75a"
-UPSTREAM_CHECK_GITTAGREGEX = "libmodulemd-(?P<pver>1.*\d)"
-
-S = "${WORKDIR}/git"
-
-inherit meson gobject-introspection
-
-EXTRA_OEMESON = "-Ddeveloper_build=false -Dwith_docs=false"
-
-DEPENDS += "glib-2.0 libyaml glib-2.0-native python3"
-
-BBCLASSEXTEND = "native nativesdk"
-
-GIR_MESON_OPTION = 'skip_introspection'
-GIR_MESON_ENABLE_FLAG = 'false'
-GIR_MESON_DISABLE_FLAG = 'true'
diff --git a/meta/recipes-devtools/libmodulemd/libmodulemd/0001-modulemd-generate-the-manpage-only-if-the-feature-is.patch b/meta/recipes-devtools/libmodulemd/libmodulemd/0001-modulemd-generate-the-manpage-only-if-the-feature-is.patch
new file mode 100644
index 0000000000..d5c87a1154
--- /dev/null
+++ b/meta/recipes-devtools/libmodulemd/libmodulemd/0001-modulemd-generate-the-manpage-only-if-the-feature-is.patch
@@ -0,0 +1,28 @@
+From a04fd2c8ac9e0f7a6fc17f02b2a95227b3d0aae4 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Tue, 31 Mar 2020 16:06:39 +0200
+Subject: [PATCH] modulemd: generate the manpage only if the feature is enabled
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ modulemd/meson.build | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/modulemd/meson.build b/modulemd/meson.build
+index 9ef1902..9f71e72 100644
+--- a/modulemd/meson.build
++++ b/modulemd/meson.build
+@@ -494,6 +494,7 @@ if with_docs
+ )
+ endif
+
++if with_manpages == 'enabled'
+ help2man_opts = [
+ '--no-info',
+ '--section=1',
+@@ -506,3 +507,4 @@ custom_target(
+ ],
+ install: true,
+ install_dir: join_paths(get_option('mandir'), 'man1'))
++endif
diff --git a/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb b/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb
new file mode 100644
index 0000000000..10204acf23
--- /dev/null
+++ b/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb
@@ -0,0 +1,26 @@
+SUMMARY = "C Library for manipulating module metadata files"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=25a3927bff3ee4f5b21bcb0ed3fcd6bb"
+
+SRC_URI = "git://github.com/fedora-modularity/libmodulemd;protocol=https;branch=main \
+ file://0001-modulemd-generate-the-manpage-only-if-the-feature-is.patch \
+ "
+
+PV = "2.9.4"
+SRCREV = "c7254db07b21495fc9bd247c5b17ee20149c05e3"
+
+S = "${WORKDIR}/git"
+
+inherit meson gobject-introspection python3-dir
+
+EXTRA_OEMESON = "-Ddeveloper_build=false -Dwith_docs=false -Drpmio=disabled -Dlibmagic=disabled -Dwith_manpages=disabled -Dgobject_overrides_dir_py3=${PYTHON_SITEPACKAGES_DIR}/gi/overrides"
+
+DEPENDS += "glib-2.0 libyaml glib-2.0-native python3"
+
+BBCLASSEXTEND = "native nativesdk"
+
+GIR_MESON_OPTION = 'skip_introspection'
+GIR_MESON_ENABLE_FLAG = 'false'
+GIR_MESON_DISABLE_FLAG = 'true'
+
+FILES_${PN} += "${libdir}/${PYTHON_DIR}/*"
diff --git a/meta/recipes-devtools/librepo/librepo_1.11.2.bb b/meta/recipes-devtools/librepo/librepo_1.12.1.bb
index 6a0a59f865..0597351052 100644
--- a/meta/recipes-devtools/librepo/librepo_1.11.2.bb
+++ b/meta/recipes-devtools/librepo/librepo_1.12.1.bb
@@ -8,7 +8,7 @@ SRC_URI = "git://github.com/rpm-software-management/librepo.git \
file://0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch \
"
-SRCREV = "67c2d1f83f1bf87be3f26ba730fce7fbdf0c9fba"
+SRCREV = "d4ad350291f2937c0b6a3eea9e1d0c8e1051fc32"
S = "${WORKDIR}/git"
diff --git a/meta/recipes-devtools/libtool/libtool-cross_2.4.6.bb b/meta/recipes-devtools/libtool/libtool-cross_2.4.6.bb
index 522bf3a0e9..02c6e152fc 100644
--- a/meta/recipes-devtools/libtool/libtool-cross_2.4.6.bb
+++ b/meta/recipes-devtools/libtool/libtool-cross_2.4.6.bb
@@ -6,6 +6,8 @@ SRC_URI += "file://fixinstall.patch"
datadir = "${STAGING_DIR_TARGET}${target_datadir}"
+inherit nopackages
+
do_configure_prepend () {
# Remove any existing libtool m4 since old stale versions would break
# any upgrade
diff --git a/meta/recipes-devtools/llvm/llvm_git.bb b/meta/recipes-devtools/llvm/llvm_git.bb
index a8607f5008..4c2d490315 100644
--- a/meta/recipes-devtools/llvm/llvm_git.bb
+++ b/meta/recipes-devtools/llvm/llvm_git.bb
@@ -19,7 +19,7 @@ inherit cmake pkgconfig
PROVIDES += "llvm${PV}"
-MAJOR_VERSION = "9"
+MAJOR_VERSION = "10"
MINOR_VERSION = "0"
PATCH_VERSION = "1"
@@ -29,7 +29,7 @@ LLVM_RELEASE = "${PV}"
LLVM_DIR = "llvm${LLVM_RELEASE}"
BRANCH = "release/${MAJOR_VERSION}.x"
-SRCREV = "c1a0a213378a458fbea1a5c77b315c7dce08fd05"
+SRCREV = "ef32c611aa214dea855364efd7ba451ec5ec3f74"
SRC_URI = "git://github.com/llvm/llvm-project.git;branch=${BRANCH} \
file://0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch;striplevel=2 \
file://0007-llvm-allow-env-override-of-exe-path.patch;striplevel=2 \
@@ -92,8 +92,6 @@ EXTRA_OECMAKE_append_class-nativesdk = "\
-DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \
"
-CFLAGS += "-fcommon"
-
do_configure_prepend() {
# Fix paths in llvm-config
sed -i "s|sys::path::parent_path(CurrentPath))\.str()|sys::path::parent_path(sys::path::parent_path(CurrentPath))).str()|g" ${S}/tools/llvm-config/llvm-config.cpp
diff --git a/meta/recipes-devtools/log4cplus/log4cplus_2.0.5.bb b/meta/recipes-devtools/log4cplus/log4cplus_2.0.5.bb
new file mode 100644
index 0000000000..967ac7623a
--- /dev/null
+++ b/meta/recipes-devtools/log4cplus/log4cplus_2.0.5.bb
@@ -0,0 +1,19 @@
+SUMMARY = "log4cplus provides a simple C++ logging API for log management"
+SECTION = "libs"
+HOMEPAGE = "http://sourceforge.net/projects/log4cplus/"
+BUGTRACKER = "http://sourceforge.net/p/log4cplus/bugs/"
+
+LICENSE = "Apache-2.0 & BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=41e8e060c26822886b592ab4765c756b"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}-stable/${PV}/${BP}.tar.gz \
+ "
+SRC_URI[md5sum] = "71dd956bf686195127559671f1426cff"
+SRC_URI[sha256sum] = "c07115c23219390633798def30b7b51a0f79fdeb857e4b49632f17746d0ceb97"
+
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/log4cplus/files/log4cplus-stable/"
+UPSTREAM_CHECK_REGEX = "log4cplus-stable/(?P<pver>\d+(\.\d+)+)/"
+
+inherit autotools pkgconfig
+
+BBCLASSEXTEND = "native"
diff --git a/meta/recipes-devtools/make/make.inc b/meta/recipes-devtools/make/make.inc
index b8905bc6d3..a0a72b6295 100644
--- a/meta/recipes-devtools/make/make.inc
+++ b/meta/recipes-devtools/make/make.inc
@@ -5,9 +5,7 @@ called the makefile, which lists each of the non-source files and how to compute
HOMEPAGE = "http://www.gnu.org/software/make/"
SECTION = "devel"
-SRC_URI = "${GNU_MIRROR}/make/make-${PV}.tar.bz2 \
- file://0001-glob-Do-not-assume-glibc-glob-internals.patch \
- file://0002-glob-Do-not-assume-glibc-glob-internals.patch \
+SRC_URI = "${GNU_MIRROR}/make/make-${PV}.tar.gz \
"
inherit autotools gettext pkgconfig texinfo
diff --git a/meta/recipes-devtools/make/make/0001-glob-Do-not-assume-glibc-glob-internals.patch b/meta/recipes-devtools/make/make/0001-glob-Do-not-assume-glibc-glob-internals.patch
deleted file mode 100644
index 2b6e4d40c3..0000000000
--- a/meta/recipes-devtools/make/make/0001-glob-Do-not-assume-glibc-glob-internals.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From c90a7dda6c572f79b8e78da44b6ebf8704edef65 Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Sun, 24 Sep 2017 09:12:58 -0400
-Subject: [PATCH 1/2] glob: Do not assume glibc glob internals.
-
-It has been proposed that glibc glob start using gl_lstat,
-which the API allows it to do. GNU 'make' should not get in
-the way of this. See:
-https://sourceware.org/ml/libc-alpha/2017-09/msg00409.html
-
-* dir.c (local_lstat): New function, like local_stat.
-(dir_setup_glob): Use it to initialize gl_lstat too, as the API
-requires.
----
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
- dir.c | 29 +++++++++++++++++++++++++++--
- 1 file changed, 27 insertions(+), 2 deletions(-)
-
-diff --git a/dir.c b/dir.c
-index f34bbf5..12eef30 100644
---- a/dir.c
-+++ b/dir.c
-@@ -1299,15 +1299,40 @@ local_stat (const char *path, struct stat *buf)
- }
- #endif
-
-+/* Similarly for lstat. */
-+#if !defined(lstat) && !defined(WINDOWS32) || defined(VMS)
-+# ifndef VMS
-+# ifndef HAVE_SYS_STAT_H
-+int lstat (const char *path, struct stat *sbuf);
-+# endif
-+# else
-+ /* We are done with the fake lstat. Go back to the real lstat */
-+# ifdef lstat
-+# undef lstat
-+# endif
-+# endif
-+# define local_lstat lstat
-+#elif defined(WINDOWS32)
-+/* Windows doesn't support lstat(). */
-+# define local_lstat local_stat
-+#else
-+static int
-+local_lstat (const char *path, struct stat *buf)
-+{
-+ int e;
-+ EINTRLOOP (e, lstat (path, buf));
-+ return e;
-+}
-+#endif
-+
- void
- dir_setup_glob (glob_t *gl)
- {
- gl->gl_opendir = open_dirstream;
- gl->gl_readdir = read_dirstream;
- gl->gl_closedir = free;
-+ gl->gl_lstat = local_lstat;
- gl->gl_stat = local_stat;
-- /* We don't bother setting gl_lstat, since glob never calls it.
-- The slot is only there for compatibility with 4.4 BSD. */
- }
-
- void
---
-2.16.1
-
diff --git a/meta/recipes-devtools/make/make/0001-m4-getloadavg.m4-restrict-AIX-specific-test-on-AIX.patch b/meta/recipes-devtools/make/make/0001-m4-getloadavg.m4-restrict-AIX-specific-test-on-AIX.patch
new file mode 100644
index 0000000000..096bcfdf78
--- /dev/null
+++ b/meta/recipes-devtools/make/make/0001-m4-getloadavg.m4-restrict-AIX-specific-test-on-AIX.patch
@@ -0,0 +1,38 @@
+From 8309601775d9442416329a77f7dcfd8aa799e9a6 Mon Sep 17 00:00:00 2001
+From: Jens Rehsack <sno@netbsd.org>
+Date: Fri, 21 Feb 2020 17:39:56 +0100
+Subject: [PATCH 1/2] m4/getloadavg.m4: restrict AIX specific test on AIX
+
+When cross compiling for a system without getloadavg, do not try add
+additional linker paths unless it's absolutely necessary.
+
+Signed-off-by: Jens Rehsack <sno@netbsd.org>
+---
+Upstream-Status: Pending
+ m4/getloadavg.m4 | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/m4/getloadavg.m4 b/m4/getloadavg.m4
+index 3bd2a14..696c5de 100644
+--- a/m4/getloadavg.m4
++++ b/m4/getloadavg.m4
+@@ -42,6 +42,8 @@ AC_CHECK_FUNC([getloadavg], [],
+ fi
+
+ if test $gl_func_getloadavg_done = no; then
++ AS_CASE([$host_os],
++ [aix*], [
+ # There is a commonly available library for RS/6000 AIX.
+ # Since it is not a standard part of AIX, it might be installed locally.
+ gl_getloadavg_LIBS=$LIBS
+@@ -49,6 +51,7 @@ AC_CHECK_FUNC([getloadavg], [],
+ AC_CHECK_LIB([getloadavg], [getloadavg],
+ [LIBS="-lgetloadavg $LIBS" gl_func_getloadavg_done=yes],
+ [LIBS=$gl_getloadavg_LIBS])
++ ], [:])
+ fi
+
+ # Set up the replacement function if necessary.
+--
+2.17.1
+
diff --git a/meta/recipes-devtools/make/make/0001-makeinst-Do-not-undef-POSIX-on-clang-arm.patch b/meta/recipes-devtools/make/make/0001-makeinst-Do-not-undef-POSIX-on-clang-arm.patch
new file mode 100644
index 0000000000..2da7c983dc
--- /dev/null
+++ b/meta/recipes-devtools/make/make/0001-makeinst-Do-not-undef-POSIX-on-clang-arm.patch
@@ -0,0 +1,38 @@
+From 86b7947156a0c33e768d0a265e38f2881a70a7e2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 6 Mar 2020 23:19:37 -0800
+Subject: [PATCH] makeinst: Do not undef POSIX on clang/arm
+
+if __arm internal compiler macro is defined then make assumes that the
+system is not posix and goes ahead and undefs POSIX, which results in
+miscompiling make with clang, since clang does define __arm unlike gcc
+which does not, but they both support posix just fine, so here check for
+compiler not being clang when __arm is defined before undefining posix
+
+Fixes error like
+../make-4.3/src/job.c:507:27: error: too many arguments to function call, expected 0, have 1
+ sigsetmask (siggetmask (0) & ~fatal_signal_mask)
+ ~~~~~~~~~~ ^
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/makeint.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/makeint.h b/src/makeint.h
+index c428a36..fadf963 100644
+--- a/src/makeint.h
++++ b/src/makeint.h
+@@ -115,7 +115,7 @@ extern int errno;
+ #endif
+
+ /* Some systems define _POSIX_VERSION but are not really POSIX.1. */
+-#if (defined (butterfly) || defined (__arm) || (defined (__mips) && defined (_SYSTYPE_SVR3)) || (defined (sequent) && defined (i386)))
++#if (defined (butterfly) || (defined (__arm) && !defined(__clang__)) || (defined (__mips) && defined (_SYSTYPE_SVR3)) || (defined (sequent) && defined (i386)))
+ # undef POSIX
+ #endif
+
+--
+2.25.1
+
diff --git a/meta/recipes-devtools/make/make/0001-src-dir.c-fix-buffer-overflow-warning.patch b/meta/recipes-devtools/make/make/0001-src-dir.c-fix-buffer-overflow-warning.patch
new file mode 100644
index 0000000000..57970824f6
--- /dev/null
+++ b/meta/recipes-devtools/make/make/0001-src-dir.c-fix-buffer-overflow-warning.patch
@@ -0,0 +1,41 @@
+From cd7091a7d88306004ca98c5dafcc40f44589b105 Mon Sep 17 00:00:00 2001
+From: Jens Rehsack <sno@netbsd.org>
+Date: Mon, 24 Feb 2020 10:52:21 +0100
+Subject: [PATCH 1/3] src/dir.c: fix buffer-overflow warning
+
+Fix compiler warning:
+ src/dir.c:1294:7: warning: 'strncpy' specified bound depends on the
+ length of the source argument [-Wstringop-overflow=]
+
+The existing code assumes `path` will never exceed `MAXPATHLEN`. Also the
+size of the buffer is increased by 1 to hold a path with the length of
+`MAXPATHLEN` and trailing `0`.
+
+Signed-off-by: Jens Rehsack <sno@netbsd.org>
+---
+Upstream-Status: Pending (https://savannah.gnu.org/bugs/?57888)
+
+ src/dir.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/dir.c b/src/dir.c
+index 862a18e..cad4c4a 100644
+--- a/src/dir.c
++++ b/src/dir.c
+@@ -1289,10 +1289,10 @@ local_stat (const char *path, struct stat *buf)
+ if (plen > 1 && path[plen - 1] == '.'
+ && (path[plen - 2] == '/' || path[plen - 2] == '\\'))
+ {
+- char parent[MAXPATHLEN];
++ char parent[MAXPATHLEN+1];
+
+- strncpy (parent, path, plen - 2);
+- parent[plen - 2] = '\0';
++ strncpy (parent, path, MAXPATHLEN);
++ parent[MIN(plen - 2, MAXPATHLEN)] = '\0';
+ if (stat (parent, buf) < 0 || !_S_ISDIR (buf->st_mode))
+ return -1;
+ }
+--
+2.17.1
+
diff --git a/meta/recipes-devtools/make/make/0002-glob-Do-not-assume-glibc-glob-internals.patch b/meta/recipes-devtools/make/make/0002-glob-Do-not-assume-glibc-glob-internals.patch
deleted file mode 100644
index d49acd9f6e..0000000000
--- a/meta/recipes-devtools/make/make/0002-glob-Do-not-assume-glibc-glob-internals.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 9858702dbd1e137262c06765919937660879f63c Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Sun, 24 Sep 2017 09:12:58 -0400
-Subject: [PATCH 2/2] glob: Do not assume glibc glob internals.
-
-It has been proposed that glibc glob start using gl_lstat,
-which the API allows it to do. GNU 'make' should not get in
-the way of this. See:
-https://sourceware.org/ml/libc-alpha/2017-09/msg00409.html
-
-* dir.c (local_lstat): New function, like local_stat.
-(dir_setup_glob): Use it to initialize gl_lstat too, as the API
-requires.
----
-Upstream-Status: Backport
-
- configure.ac | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 64ec870..e87901c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -399,10 +399,9 @@ AC_CACHE_CHECK([if system libc has GNU glob], [make_cv_sys_gnu_glob],
- #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],
---
-2.16.1
-
diff --git a/meta/recipes-devtools/make/make/0002-modules-fcntl-allow-being-detected-by-importing-proj.patch b/meta/recipes-devtools/make/make/0002-modules-fcntl-allow-being-detected-by-importing-proj.patch
new file mode 100644
index 0000000000..b3d97f9a3a
--- /dev/null
+++ b/meta/recipes-devtools/make/make/0002-modules-fcntl-allow-being-detected-by-importing-proj.patch
@@ -0,0 +1,33 @@
+From fb8aaed3b040e589cd880fd714dda5ec00687217 Mon Sep 17 00:00:00 2001
+From: Jens Rehsack <sno@netbsd.org>
+Date: Mon, 24 Feb 2020 12:10:06 +0100
+Subject: [PATCH 2/2] modules: fcntl: allow being detected by importing
+ projects
+
+GNU project `make` relies on gnulib but provides some own compatibility
+functions - including an `fcntl`, which fails on mingw.
+The intension of gnulib is providing these functions and being wider tested,
+but silently injecting a function opens battle of compatibility layers.
+
+So adding a hint into target `config.h` to allow deciding whether using
+an own compatibility implementation or not.
+
+Signed-off-by: Jens Rehsack <sno@netbsd.org>
+---
+Upstream-Status: Pending
+
+ m4/gnulib-comp.m4 | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/m4/gnulib-comp.m4 b/m4/gnulib-comp.m4
+index 3ee0811..cf75541 100644
+--- a/m4/gnulib-comp.m4
++++ b/m4/gnulib-comp.m4
+@@ -147,6 +147,7 @@
+ gl_FUNC_FCNTL
+ if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then
+ AC_LIBOBJ([fcntl])
++ AC_DEFINE(HAVE_GNULIB_FCNTL, 1, [Define to 1 if you have the `fcntl' function via gnulib.])
+ fi
+ gl_FCNTL_MODULE_INDICATOR([fcntl])
+ gl_FCNTL_H
diff --git a/meta/recipes-devtools/make/make/0002-w32-compat-dirent.c-follow-header.patch b/meta/recipes-devtools/make/make/0002-w32-compat-dirent.c-follow-header.patch
new file mode 100644
index 0000000000..9ecc44543e
--- /dev/null
+++ b/meta/recipes-devtools/make/make/0002-w32-compat-dirent.c-follow-header.patch
@@ -0,0 +1,36 @@
+From 4dd8b4f43aa0078707ad9a7932f4e137bc4383ed Mon Sep 17 00:00:00 2001
+From: Jens Rehsack <sno@netbsd.org>
+Date: Mon, 24 Feb 2020 11:12:43 +0100
+Subject: [PATCH 2/3] w32: compat: dirent.c: follow header
+
+src/w32/include/dirent.h completely delegates to mingw dirent implementation,
+gnulib detects it as fine and completely usable - trust in that.
+
+Signed-off-by: Jens Rehsack <sno@netbsd.org>
+---
+Upstream-Status: Pending (https://savannah.gnu.org/bugs/?57888)
+
+ src/w32/compat/dirent.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/w32/compat/dirent.c b/src/w32/compat/dirent.c
+index b8ec615..de80f72 100644
+--- a/src/w32/compat/dirent.c
++++ b/src/w32/compat/dirent.c
+@@ -23,7 +23,7 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
+ #include <stdlib.h>
+ #include "dirent.h"
+
+-
++#ifndef __MINGW32__
+ DIR*
+ opendir(const char* pDirName)
+ {
+@@ -193,3 +193,4 @@ seekdir(DIR* pDir, long nPosition)
+
+ return;
+ }
++#endif /* !__MINGW32__ */
+--
+2.17.1
+
diff --git a/meta/recipes-devtools/make/make/0003-posixfcn-fcntl-gnulib-make-emulated.patch b/meta/recipes-devtools/make/make/0003-posixfcn-fcntl-gnulib-make-emulated.patch
new file mode 100644
index 0000000000..70414c51f4
--- /dev/null
+++ b/meta/recipes-devtools/make/make/0003-posixfcn-fcntl-gnulib-make-emulated.patch
@@ -0,0 +1,79 @@
+From 3d074c8fca5fcf3e6b83d33788f35a8f1b3a44a2 Mon Sep 17 00:00:00 2001
+From: Jens Rehsack <sno@netbsd.org>
+Date: Fri, 21 Feb 2020 19:29:49 +0100
+Subject: [PATCH 3/3] posixfcn: fcntl: gnulib > make-emulated
+
+Rate the fcntl emulation from gnulib higher than the own one.
+
+Signed-off-by: Jens Rehsack <sno@netbsd.org>
+---
+Upstream-Status: Pending (https://savannah.gnu.org/bugs/?57888)
+
+ src/output.h | 19 ++++++++++++++-----
+ src/w32/compat/posixfcn.c | 2 ++
+ 2 files changed, 16 insertions(+), 5 deletions(-)
+
+diff --git a/src/output.h b/src/output.h
+index a506505..d3ce6b7 100644
+--- a/src/output.h
++++ b/src/output.h
+@@ -67,14 +67,21 @@ void output_dump (struct output *out);
+
+ # ifdef WINDOWS32
+ /* For emulations in w32/compat/posixfcn.c. */
+-# define F_GETFD 1
+-# define F_SETLKW 2
++# ifndef F_GETFD
++# define F_GETFD 1
++# endif
++# ifndef F_SETLKW
++# define F_SETLKW 2
++# endif
+ /* Implementation note: None of the values of l_type below can be zero
+ -- they are compared with a static instance of the struct, so zero
+ means unknown/invalid, see w32/compat/posixfcn.c. */
+-# define F_WRLCK 1
+-# define F_UNLCK 2
+-
++# ifndef F_WRLCK
++# define F_WRLCK 1
++# endif
++# ifndef F_UNLCK
++# define F_UNLCK 2
++# endif
+ struct flock
+ {
+ short l_type;
+@@ -89,7 +96,9 @@ struct flock
+ typedef intptr_t sync_handle_t;
+
+ /* Public functions emulated/provided in posixfcn.c. */
++# ifndef HAVE_GNULIB_FCNTL
+ int fcntl (intptr_t fd, int cmd, ...);
++# endif
+ intptr_t create_mutex (void);
+ int same_stream (FILE *f1, FILE *f2);
+
+diff --git a/src/w32/compat/posixfcn.c b/src/w32/compat/posixfcn.c
+index 975dfb7..d337b9c 100644
+--- a/src/w32/compat/posixfcn.c
++++ b/src/w32/compat/posixfcn.c
+@@ -29,6 +29,7 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
+ #ifndef NO_OUTPUT_SYNC
+ /* Support for OUTPUT_SYNC and related functionality. */
+
++#ifndef HAVE_GNULIB_FCNTL
+ /* Emulation of fcntl that supports only F_GETFD and F_SETLKW. */
+ int
+ fcntl (intptr_t fd, int cmd, ...)
+@@ -142,6 +143,7 @@ fcntl (intptr_t fd, int cmd, ...)
+ return -1;
+ }
+ }
++#endif /* GNULIB_TEST_FCNTL */
+
+ static intptr_t mutex_handle = -1;
+
+--
+2.17.1
+
diff --git a/meta/recipes-devtools/make/make_4.2.1.bb b/meta/recipes-devtools/make/make_4.2.1.bb
deleted file mode 100644
index c6e6a0cd58..0000000000
--- a/meta/recipes-devtools/make/make_4.2.1.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-LICENSE = "GPLv3 & LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://tests/COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://glob/COPYING.LIB;md5=4a770b67e6be0f60da244beb2de0fce4"
-require make.inc
-
-EXTRA_OECONF += "--without-guile"
-
-SRC_URI[md5sum] = "15b012617e7c44c0ed482721629577ac"
-SRC_URI[sha256sum] = "d6e262bf3601b42d2b1e4ef8310029e1dcf20083c5446b4b7aa67081fdffc589"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/make/make_4.3.bb b/meta/recipes-devtools/make/make_4.3.bb
new file mode 100644
index 0000000000..3e0eb543ba
--- /dev/null
+++ b/meta/recipes-devtools/make/make_4.3.bb
@@ -0,0 +1,18 @@
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+require make.inc
+
+SRC_URI += "\
+ file://0001-m4-getloadavg.m4-restrict-AIX-specific-test-on-AIX.patch \
+ file://0002-modules-fcntl-allow-being-detected-by-importing-proj.patch \
+ file://0001-src-dir.c-fix-buffer-overflow-warning.patch \
+ file://0002-w32-compat-dirent.c-follow-header.patch \
+ file://0003-posixfcn-fcntl-gnulib-make-emulated.patch \
+ file://0001-makeinst-Do-not-undef-POSIX-on-clang-arm.patch \
+"
+
+EXTRA_OECONF += "--without-guile"
+
+SRC_URI[sha256sum] = "e05fdde47c5f7ca45cb697e973894ff4f5d79e13b750ed57d7b66d8defc78e19"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/meson/meson.inc b/meta/recipes-devtools/meson/meson.inc
index d391c9cf29..004189e36e 100644
--- a/meta/recipes-devtools/meson/meson.inc
+++ b/meta/recipes-devtools/meson/meson.inc
@@ -9,16 +9,14 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57"
SRC_URI = "https://github.com/mesonbuild/meson/releases/download/${PV}/meson-${PV}.tar.gz \
file://0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch \
- file://0002-gobject-introspection-determine-g-ir-scanner-and-g-i.patch \
file://0003-native_bindir.patch \
file://0001-python-module-do-not-manipulate-the-environment-when.patch \
file://disable-rpath-handling.patch \
file://cross-prop-default.patch \
- file://0001-mesonbuild-environment.py-check-environment-for-vari.patch \
file://0001-modules-python.py-do-not-substitute-python-s-install.patch \
+ file://0001-gnome.py-prefix-g-i-paths-with-PKG_CONFIG_SYSROOT_DI.patch \
"
-SRC_URI[sha256sum] = "ec1ba33eea701baca2c1607dac458152dc8323364a51fdef6babda2623413b04"
-SRC_URI[md5sum] = "9bf73f7b5a2426a7c8674a809bb8cae2"
+SRC_URI[sha256sum] = "3b5741f884e04928bdfa1947467ff06afa6c98e623c25cef75adf71ca39ce080"
SRC_URI_append_class-native = " \
file://0001-Make-CPU-family-warnings-fatal.patch \
@@ -26,6 +24,7 @@ SRC_URI_append_class-native = " \
"
UPSTREAM_CHECK_URI = "https://github.com/mesonbuild/meson/releases"
+UPSTREAM_CHECK_REGEX = "meson-(?P<pver>\d+(\.\d+)+)\.tar"
inherit setuptools3
diff --git a/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch b/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
index 9ce31e5489..fbc03b8ca0 100644
--- a/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
+++ b/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
@@ -1,4 +1,4 @@
-From ee638fd4a299bfc53a2238e9f71ae310c8d97460 Mon Sep 17 00:00:00 2001
+From 9311844b6c422479556e83b89a8e675ebcb2056c Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@intel.com>
Date: Tue, 3 Jul 2018 13:59:09 +0100
Subject: [PATCH] Make CPU family warnings fatal
@@ -12,23 +12,23 @@ Signed-off-by: Ross Burton <ross.burton@intel.com>
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py
-index 0f277a7..24578ea 100644
+index 219b62e..d1be65b 100644
--- a/mesonbuild/envconfig.py
+++ b/mesonbuild/envconfig.py
-@@ -192,7 +192,7 @@ class MachineInfo:
+@@ -199,7 +199,7 @@ class MachineInfo:
cpu_family = literal['cpu_family']
if cpu_family not in known_cpu_families:
-- mlog.warning('Unknown CPU family %s, please report this at https://github.com/mesonbuild/meson/issues/new' % cpu_family)
-+ raise EnvironmentException('Unknown CPU family %s, see https://wiki.yoctoproject.org/wiki/Meson/UnknownCPU for directions.' % cpu_family)
+- mlog.warning('Unknown CPU family {}, please report this at https://github.com/mesonbuild/meson/issues/new'.format(cpu_family))
++ raise EnvironmentException('Unknown CPU family {}, see https://wiki.yoctoproject.org/wiki/Meson/UnknownCPU for directions.'.format(cpu_family))
endian = literal['endian']
if endian not in ('little', 'big'):
diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
-index dc8b14f..3aab71e 100644
+index bf09a88..8eabe78 100644
--- a/mesonbuild/environment.py
+++ b/mesonbuild/environment.py
-@@ -354,9 +354,7 @@ def detect_cpu_family(compilers: CompilersDict) -> str:
+@@ -375,9 +375,7 @@ def detect_cpu_family(compilers: CompilersDict) -> str:
trial = 'parisc'
if trial not in known_cpu_families:
diff --git a/meta/recipes-devtools/meson/meson/0001-gnome.py-prefix-g-i-paths-with-PKG_CONFIG_SYSROOT_DI.patch b/meta/recipes-devtools/meson/meson/0001-gnome.py-prefix-g-i-paths-with-PKG_CONFIG_SYSROOT_DI.patch
new file mode 100644
index 0000000000..a1f8422d44
--- /dev/null
+++ b/meta/recipes-devtools/meson/meson/0001-gnome.py-prefix-g-i-paths-with-PKG_CONFIG_SYSROOT_DI.patch
@@ -0,0 +1,37 @@
+From 64aa6718c290e150dafd8da83f31cb08af00af0e Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Wed, 27 May 2020 16:43:05 +0000
+Subject: [PATCH] gnome.py: prefix g-i paths with PKG_CONFIG_SYSROOT_DIR
+
+When using sysroots for builds, the standard target paths for the
+tools need to be prefixed (pkg-config is not clever enough to
+determine when a custom variable is a path)
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
+---
+ mesonbuild/modules/gnome.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
+index 52016f4..2b72ee4 100644
+--- a/mesonbuild/modules/gnome.py
++++ b/mesonbuild/modules/gnome.py
+@@ -410,14 +410,14 @@ class GnomeModule(ExtensionModule):
+ if giscanner is not None:
+ self.giscanner = ExternalProgram.from_entry('g-ir-scanner', giscanner)
+ elif self.gir_dep.type_name == 'pkgconfig':
+- self.giscanner = ExternalProgram('g_ir_scanner', self.gir_dep.get_pkgconfig_variable('g_ir_scanner', {}))
++ self.giscanner = ExternalProgram('g_ir_scanner', os.environ['PKG_CONFIG_SYSROOT_DIR'] + self.gir_dep.get_pkgconfig_variable('g_ir_scanner', {}))
+ else:
+ self.giscanner = self.interpreter.find_program_impl('g-ir-scanner')
+ gicompiler = state.environment.lookup_binary_entry(MachineChoice.HOST, 'g-ir-compiler')
+ if gicompiler is not None:
+ self.gicompiler = ExternalProgram.from_entry('g-ir-compiler', gicompiler)
+ elif self.gir_dep.type_name == 'pkgconfig':
+- self.gicompiler = ExternalProgram('g_ir_compiler', self.gir_dep.get_pkgconfig_variable('g_ir_compiler', {}))
++ self.gicompiler = ExternalProgram('g_ir_compiler', os.environ['PKG_CONFIG_SYSROOT_DIR'] + self.gir_dep.get_pkgconfig_variable('g_ir_compiler', {}))
+ else:
+ self.gicompiler = self.interpreter.find_program_impl('g-ir-compiler')
+ return self.gir_dep, self.giscanner, self.gicompiler
diff --git a/meta/recipes-devtools/meson/meson/0001-mesonbuild-environment.py-check-environment-for-vari.patch b/meta/recipes-devtools/meson/meson/0001-mesonbuild-environment.py-check-environment-for-vari.patch
deleted file mode 100644
index f4456235fe..0000000000
--- a/meta/recipes-devtools/meson/meson/0001-mesonbuild-environment.py-check-environment-for-vari.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From a72dc2b1cddcf180ce782860896deae0b12d5000 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Mon, 25 Mar 2019 18:52:48 +0100
-Subject: [PATCH] mesonbuild/environment.py: check environment for various
- binaries
-
-Upstream-Status: Inappropriate [oe-core specific]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- mesonbuild/environment.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
-index 9a029f4..0cfdf9c 100644
---- a/mesonbuild/environment.py
-+++ b/mesonbuild/environment.py
-@@ -448,7 +448,7 @@ class Environment:
- config = MesonConfigFile.from_config_parser(
- coredata.load_configs(self.coredata.cross_files))
- properties.host = Properties(config.get('properties', {}), False)
-- binaries.host = BinaryTable(config.get('binaries', {}), False)
-+ binaries.host = BinaryTable(config.get('binaries', {}), True)
- if 'host_machine' in config:
- machines.host = MachineInfo.from_literal(config['host_machine'])
- if 'target_machine' in config:
diff --git a/meta/recipes-devtools/meson/meson/0001-modules-python.py-do-not-substitute-python-s-install.patch b/meta/recipes-devtools/meson/meson/0001-modules-python.py-do-not-substitute-python-s-install.patch
index a25c392270..c0ad01e9d3 100644
--- a/meta/recipes-devtools/meson/meson/0001-modules-python.py-do-not-substitute-python-s-install.patch
+++ b/meta/recipes-devtools/meson/meson/0001-modules-python.py-do-not-substitute-python-s-install.patch
@@ -1,4 +1,4 @@
-From 1d178fb2928d325e339b15972890ceced863d3ec Mon Sep 17 00:00:00 2001
+From 214e559d394491b1376e4cc370f75151117a3f83 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Thu, 18 Apr 2019 17:36:11 +0200
Subject: [PATCH] modules/python.py: do not substitute python's install prefix
@@ -10,15 +10,16 @@ b) shouldn't be necessary as Python's prefix ought to be correct in the first pl
Upstream-Status: Pending
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
---
mesonbuild/modules/python.py | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py
-index 6e2c63b..f5a37ac 100644
+index 2f0c644..d2aa565 100644
--- a/mesonbuild/modules/python.py
+++ b/mesonbuild/modules/python.py
-@@ -254,7 +254,7 @@ import sysconfig
+@@ -251,7 +251,7 @@ INTROSPECT_COMMAND = '''import sysconfig
import json
import sys
@@ -27,8 +28,8 @@ index 6e2c63b..f5a37ac 100644
def links_against_libpython():
from distutils.core import Distribution, Extension
-@@ -279,12 +279,11 @@ class PythonInstallation(ExternalProgramHolder):
- ExternalProgramHolder.__init__(self, python)
+@@ -276,12 +276,11 @@ class PythonInstallation(ExternalProgramHolder):
+ ExternalProgramHolder.__init__(self, python, interpreter.subproject)
self.interpreter = interpreter
self.subproject = self.interpreter.subproject
- prefix = self.interpreter.environment.coredata.get_builtin_option('prefix')
diff --git a/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch b/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch
index ce18660756..2d804740ad 100644
--- a/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch
+++ b/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch
@@ -1,4 +1,4 @@
-From 9c221c74bd306dfa6fec22c8f156eb9d4e4f7fcb Mon Sep 17 00:00:00 2001
+From 38f59e256f760aa959c13f4c5713f87ff7addee5 Mon Sep 17 00:00:00 2001
From: Peter Kjellerstedt <pkj@axis.com>
Date: Thu, 26 Jul 2018 16:32:49 +0200
Subject: [PATCH] Support building allarch recipes again
@@ -13,10 +13,10 @@ Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
1 file changed, 1 insertion(+)
diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py
-index 24578ea..216e71f 100644
+index d1be65b..90f3573 100644
--- a/mesonbuild/envconfig.py
+++ b/mesonbuild/envconfig.py
-@@ -36,6 +36,7 @@ _T = typing.TypeVar('_T')
+@@ -36,6 +36,7 @@ _T = T.TypeVar('_T')
known_cpu_families = (
diff --git a/meta/recipes-devtools/meson/meson/0002-gobject-introspection-determine-g-ir-scanner-and-g-i.patch b/meta/recipes-devtools/meson/meson/0002-gobject-introspection-determine-g-ir-scanner-and-g-i.patch
deleted file mode 100644
index 61b26bb883..0000000000
--- a/meta/recipes-devtools/meson/meson/0002-gobject-introspection-determine-g-ir-scanner-and-g-i.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 9ccaed380780178c4dab3a681f652ac7cd27452d Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Fri, 4 Aug 2017 16:18:47 +0300
-Subject: [PATCH] gobject-introspection: determine g-ir-scanner and
- g-ir-compiler paths from pkgconfig
-
-Do not hardcode the name of those binaries; gobject-introspection
-provides them via pkgconfig, and they can be set to something else
-(for example when cross-compiling).
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- mesonbuild/modules/gnome.py | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
-index 7c5a363..0002498 100644
---- a/mesonbuild/modules/gnome.py
-+++ b/mesonbuild/modules/gnome.py
-@@ -744,15 +744,15 @@ class GnomeModule(ExtensionModule):
- if kwargs.get('install_dir'):
- raise MesonException('install_dir is not supported with generate_gir(), see "install_dir_gir" and "install_dir_typelib"')
-
-- giscanner = self.interpreter.find_program_impl('g-ir-scanner')
-- gicompiler = self.interpreter.find_program_impl('g-ir-compiler')
--
- girtargets = [self._unwrap_gir_target(arg, state) for arg in args]
-
- if len(girtargets) > 1 and any([isinstance(el, build.Executable) for el in girtargets]):
- raise MesonException('generate_gir only accepts a single argument when one of the arguments is an executable')
-
- self.gir_dep, pkgargs = self._get_gir_dep(state)
-+ giscanner = os.environ['PKG_CONFIG_SYSROOT_DIR'] + self.gir_dep.get_pkgconfig_variable('g_ir_scanner', {})
-+ gicompiler = os.environ['PKG_CONFIG_SYSROOT_DIR'] + self.gir_dep.get_pkgconfig_variable('g_ir_compiler', {})
-+
-
- ns = kwargs.pop('namespace')
- nsversion = kwargs.pop('nsversion')
diff --git a/meta/recipes-devtools/meson/meson/0003-native_bindir.patch b/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
index dc822fb1fc..5d7bdc2f59 100644
--- a/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
+++ b/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
@@ -1,4 +1,4 @@
-From e76726321067748362b39937bd1e663a1a948ad5 Mon Sep 17 00:00:00 2001
+From f06c89939d0d006090a8a8728b2a13d532b83047 Mon Sep 17 00:00:00 2001
From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Date: Wed, 15 Nov 2017 15:05:01 +0100
Subject: [PATCH] native_bindir
@@ -22,10 +22,10 @@ Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
2 files changed, 14 insertions(+), 11 deletions(-)
diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py
-index 40e304c..4b687df 100644
+index 368a4bc..9fc398e 100644
--- a/mesonbuild/dependencies/base.py
+++ b/mesonbuild/dependencies/base.py
-@@ -184,7 +184,7 @@ class Dependency:
+@@ -183,7 +183,7 @@ class Dependency:
def get_exe_args(self, compiler):
return []
@@ -34,16 +34,16 @@ index 40e304c..4b687df 100644
raise DependencyException('{!r} is not a pkgconfig dependency'.format(self.name))
def get_configtool_variable(self, variable_name):
-@@ -247,7 +247,7 @@ class InternalDependency(Dependency):
- self.sources = sources
- self.ext_deps = ext_deps
+@@ -261,7 +261,7 @@ class InternalDependency(Dependency):
+ setattr(result, k, copy.deepcopy(v, memo))
+ return result
- def get_pkgconfig_variable(self, variable_name, kwargs):
+ def get_pkgconfig_variable(self, variable_name, kwargs, use_native=False):
raise DependencyException('Method "get_pkgconfig_variable()" is '
'invalid for an internal dependency')
-@@ -673,15 +673,18 @@ class PkgConfigDependency(ExternalDependency):
+@@ -634,15 +634,18 @@ class PkgConfigDependency(ExternalDependency):
return s.format(self.__class__.__name__, self.name, self.is_found,
self.version_reqs)
@@ -65,7 +65,7 @@ index 40e304c..4b687df 100644
# Always copy the environment since we're going to modify it
# with pkg-config variables
if env is None:
-@@ -701,7 +704,7 @@ class PkgConfigDependency(ExternalDependency):
+@@ -668,7 +671,7 @@ class PkgConfigDependency(ExternalDependency):
targs = tuple(args)
cache = PkgConfigDependency.pkgbin_cache
if (self.pkgbin, targs, fenv) not in cache:
@@ -74,7 +74,7 @@ index 40e304c..4b687df 100644
return cache[(self.pkgbin, targs, fenv)]
def _convert_mingw_paths(self, args: T.List[str]) -> T.List[str]:
-@@ -907,7 +910,7 @@ class PkgConfigDependency(ExternalDependency):
+@@ -877,7 +880,7 @@ class PkgConfigDependency(ExternalDependency):
(self.name, out_raw))
self.link_args, self.raw_link_args = self._search_libs(out, out_raw)
@@ -83,7 +83,7 @@ index 40e304c..4b687df 100644
options = ['--variable=' + variable_name, self.name]
if 'define_variable' in kwargs:
-@@ -920,7 +923,7 @@ class PkgConfigDependency(ExternalDependency):
+@@ -890,7 +893,7 @@ class PkgConfigDependency(ExternalDependency):
options = ['--define-variable=' + '='.join(definition)] + options
@@ -93,10 +93,10 @@ index 40e304c..4b687df 100644
if ret != 0:
if self.required:
diff --git a/mesonbuild/dependencies/ui.py b/mesonbuild/dependencies/ui.py
-index da411ef..856506a 100644
+index 95dfe2b..5f82890 100644
--- a/mesonbuild/dependencies/ui.py
+++ b/mesonbuild/dependencies/ui.py
-@@ -330,7 +330,7 @@ class QtBaseDependency(ExternalDependency):
+@@ -325,7 +325,7 @@ class QtBaseDependency(ExternalDependency):
self.bindir = self.get_pkgconfig_host_bins(core)
if not self.bindir:
# If exec_prefix is not defined, the pkg-config file is broken
@@ -105,7 +105,7 @@ index da411ef..856506a 100644
if prefix:
self.bindir = os.path.join(prefix, 'bin')
-@@ -508,7 +508,7 @@ class Qt4Dependency(QtBaseDependency):
+@@ -528,7 +528,7 @@ class Qt4Dependency(QtBaseDependency):
applications = ['moc', 'uic', 'rcc', 'lupdate', 'lrelease']
for application in applications:
try:
@@ -114,7 +114,7 @@ index da411ef..856506a 100644
except MesonException:
pass
-@@ -518,7 +518,7 @@ class Qt5Dependency(QtBaseDependency):
+@@ -538,7 +538,7 @@ class Qt5Dependency(QtBaseDependency):
QtBaseDependency.__init__(self, 'qt5', env, kwargs)
def get_pkgconfig_host_bins(self, core):
diff --git a/meta/recipes-devtools/meson/meson/disable-rpath-handling.patch b/meta/recipes-devtools/meson/meson/disable-rpath-handling.patch
index 4b1fb57dd4..4653a72a20 100644
--- a/meta/recipes-devtools/meson/meson/disable-rpath-handling.patch
+++ b/meta/recipes-devtools/meson/meson/disable-rpath-handling.patch
@@ -1,4 +1,9 @@
-We need to allow our rpaths generated through the compiler flags to make it into
+From 9e3fcf192c1ca068d310c648c311f9d850214421 Mon Sep 17 00:00:00 2001
+From: Richard Purdie <richard.purdie@linuxfoundation.org>
+Date: Fri, 23 Nov 2018 15:28:28 +0000
+Subject: [PATCH] meson: Disable rpath stripping at install time
+
+We need to allow our rpaths generated through the compiler flags to make it into
our binaries. Therefore disable the meson manipulations of these unless there
is a specific directive to do something differently in the project.
@@ -6,18 +11,22 @@ RP 2018/11/23
Upstream-Status: Submitted [https://github.com/mesonbuild/meson/issues/2567]
-Index: meson-0.47.2/mesonbuild/minstall.py
-===================================================================
---- meson-0.47.2.orig/mesonbuild/minstall.py
-+++ meson-0.47.2/mesonbuild/minstall.py
-@@ -486,8 +486,11 @@ class Installer:
- printed_symlink_error = True
- if os.path.isfile(outname):
+---
+ mesonbuild/minstall.py | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/mesonbuild/minstall.py b/mesonbuild/minstall.py
+index 0be01fe..5406cab 100644
+--- a/mesonbuild/minstall.py
++++ b/mesonbuild/minstall.py
+@@ -512,8 +512,11 @@ class Installer:
+ if file_copied:
+ self.did_install_something = True
try:
-- depfixer.fix_rpath(outname, install_rpath, final_path,
+- depfixer.fix_rpath(outname, t.rpath_dirs_to_remove, install_rpath, final_path,
- install_name_mappings, verbose=False)
+ if install_rpath:
-+ depfixer.fix_rpath(outname, install_rpath, final_path,
++ depfixer.fix_rpath(outname, t.rpath_dirs_to_remove, install_rpath, final_path,
+ install_name_mappings, verbose=False)
+ else:
+ print("RPATH changes at install time disabled")
diff --git a/meta/recipes-devtools/meson/meson_0.53.1.bb b/meta/recipes-devtools/meson/meson_0.55.1.bb
index de9b905c12..de9b905c12 100644
--- a/meta/recipes-devtools/meson/meson_0.53.1.bb
+++ b/meta/recipes-devtools/meson/meson_0.55.1.bb
diff --git a/meta/recipes-devtools/meson/nativesdk-meson_0.53.1.bb b/meta/recipes-devtools/meson/nativesdk-meson_0.55.1.bb
index 67add2c25e..67add2c25e 100644
--- a/meta/recipes-devtools/meson/nativesdk-meson_0.53.1.bb
+++ b/meta/recipes-devtools/meson/nativesdk-meson_0.55.1.bb
diff --git a/meta/recipes-devtools/mtd/mtd-utils_git.bb b/meta/recipes-devtools/mtd/mtd-utils_git.bb
index 810fe40f4e..8d6bbfca3f 100644
--- a/meta/recipes-devtools/mtd/mtd-utils_git.bb
+++ b/meta/recipes-devtools/mtd/mtd-utils_git.bb
@@ -10,14 +10,14 @@ inherit autotools pkgconfig update-alternatives
DEPENDS = "zlib e2fsprogs util-linux"
RDEPENDS_mtd-utils-tests += "bash"
-PV = "2.1.1"
+PV = "2.1.2"
-SRCREV = "4443221ce9b88440cd9f5bb78e6fe95621d36c8a"
+SRCREV = "7b986779342021bda87c04da3bf729718736d8ab"
SRC_URI = "git://git.infradead.org/mtd-utils.git \
file://add-exclusion-to-mkfs-jffs2-git-2.patch \
-"
+ "
-S = "${WORKDIR}/git/"
+S = "${WORKDIR}/git"
EXTRA_OECONF += "--enable-install-tests"
diff --git a/meta/recipes-devtools/mtools/mtools/disable-hardcoded-configs.patch b/meta/recipes-devtools/mtools/mtools/disable-hardcoded-configs.patch
index 464ccc4ca7..138ff9de76 100644
--- a/meta/recipes-devtools/mtools/mtools/disable-hardcoded-configs.patch
+++ b/meta/recipes-devtools/mtools/mtools/disable-hardcoded-configs.patch
@@ -1,4 +1,4 @@
-From 5c24356762bc4274d3ca4930b0bc7754f4ffd19b Mon Sep 17 00:00:00 2001
+From fa6ebd96c7f330edcd74abf61584592eabb9e726 Mon Sep 17 00:00:00 2001
From: Ed Bartosh <ed.bartosh@linux.intel.com>
Date: Tue, 13 Jun 2017 14:55:52 +0300
Subject: [PATCH] Disabled reading host configs.
@@ -12,10 +12,10 @@ Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
1 file changed, 8 deletions(-)
diff --git a/config.c b/config.c
-index f086883..1c3f9bd 100644
+index 265d494..15e64dd 100644
--- a/config.c
+++ b/config.c
-@@ -701,14 +701,6 @@ void read_config(void)
+@@ -740,14 +740,6 @@ void read_config(void)
memcpy(devices, const_devices,
nr_const_devices*sizeof(struct device));
diff --git a/meta/recipes-devtools/mtools/mtools_4.0.23.bb b/meta/recipes-devtools/mtools/mtools_4.0.24.bb
index 2093d80dba..f11cdad37a 100644
--- a/meta/recipes-devtools/mtools/mtools_4.0.23.bb
+++ b/meta/recipes-devtools/mtools/mtools_4.0.24.bb
@@ -24,8 +24,8 @@ RRECOMMENDS_${PN}_libc-glibc = "\
glibc-gconv-ibm866 \
glibc-gconv-ibm869 \
"
-SRC_URI[md5sum] = "1d17b58c53a46b29c7f521d4a55ccef1"
-SRC_URI[sha256sum] = "f188db26751aeb5692a79b2380b440ecc05fd1848a52f869d7ca1193f2ef8ee3"
+SRC_URI[md5sum] = "aeaf34406e9d28922b7c09a35ca5955e"
+SRC_URI[sha256sum] = "24f4a2da9219f98498eb1b340cd96db7ef9b684c067d1bdeb6e85efdd13b2fb9"
SRC_URI = "${GNU_MIRROR}/mtools/mtools-${PV}.tar.bz2 \
file://mtools-makeinfo.patch \
@@ -35,7 +35,7 @@ SRC_URI = "${GNU_MIRROR}/mtools/mtools-${PV}.tar.bz2 \
SRC_URI_append_class-native = " file://disable-hardcoded-configs.patch"
-inherit autotools texinfo features_check
+inherit autotools texinfo
EXTRA_OECONF = "--without-x"
diff --git a/meta/recipes-devtools/nasm/nasm/0001-stdlib-Add-strlcat.patch b/meta/recipes-devtools/nasm/nasm/0001-stdlib-Add-strlcat.patch
index d94fd3290e..0ede8a8328 100644
--- a/meta/recipes-devtools/nasm/nasm/0001-stdlib-Add-strlcat.patch
+++ b/meta/recipes-devtools/nasm/nasm/0001-stdlib-Add-strlcat.patch
@@ -1,12 +1,13 @@
-From 8a204171004fa0d7d21389530c744d215e99efb0 Mon Sep 17 00:00:00 2001
+From 1c5023002bad3a5b0bbc181fdb324160beace733 Mon Sep 17 00:00:00 2001
From: Joshua Watt <JPEWhacker@gmail.com>
Date: Tue, 19 Nov 2019 12:47:30 -0600
-Subject: [PATCH 1/2] stdlib: Add strlcat
+Subject: [PATCH] stdlib: Add strlcat
Adds strlcat which can be used to safely concatenate strings
Upstream-Status: Submitted [https://bugzilla.nasm.us/show_bug.cgi?id=3392635]
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
+
---
Makefile.in | 2 +-
configure.ac | 2 ++
@@ -16,10 +17,10 @@ Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
create mode 100644 stdlib/strlcat.c
diff --git a/Makefile.in b/Makefile.in
-index 32ef3d91..ff7eb447 100644
+index bfae1f8..156dc4c 100644
--- a/Makefile.in
+++ b/Makefile.in
-@@ -93,7 +93,7 @@ NASM = asm/nasm.$(O)
+@@ -101,7 +101,7 @@ NASM = asm/nasm.$(O)
NDISASM = disasm/ndisasm.$(O)
LIBOBJ = stdlib/snprintf.$(O) stdlib/vsnprintf.$(O) stdlib/strlcpy.$(O) \
@@ -27,20 +28,20 @@ index 32ef3d91..ff7eb447 100644
+ stdlib/strnlen.$(O) stdlib/strrchrnul.$(O) stdlib/strlcat.$(O) \
\
nasmlib/ver.$(O) \
- nasmlib/crc64.$(O) nasmlib/malloc.$(O) nasmlib/errfile.$(O) \
+ nasmlib/alloc.$(O) nasmlib/asprintf.$(O) nasmlib/errfile.$(O) \
diff --git a/configure.ac b/configure.ac
-index 38b3b596..b4e88778 100644
+index 7b72769..14fd033 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -152,6 +152,7 @@ AC_CHECK_FUNCS([vsnprintf _vsnprintf])
- AC_CHECK_FUNCS([snprintf _snprintf])
+@@ -234,6 +234,7 @@ PA_FUNC_SNPRINTF
+ PA_FUNC_VSNPRINTF
AC_CHECK_FUNCS([strlcpy])
AC_CHECK_FUNCS([strrchrnul])
+AC_CHECK_FUNCS([strlcat])
dnl These types are POSIX-specific, and Windows does it differently...
AC_CHECK_TYPES([struct _stati64])
-@@ -170,6 +171,7 @@ AC_CHECK_DECLS(strsep)
+@@ -253,6 +254,7 @@ AC_CHECK_DECLS(strsep)
AC_CHECK_DECLS(strlcpy)
AC_CHECK_DECLS(strnlen)
AC_CHECK_DECLS(strrchrnul)
@@ -49,10 +50,10 @@ index 38b3b596..b4e88778 100644
dnl Check for missing types
AC_TYPE_UINTPTR_T
diff --git a/include/compiler.h b/include/compiler.h
-index 4178c98e..8153d297 100644
+index b4fd3a8..7fb4821 100644
--- a/include/compiler.h
+++ b/include/compiler.h
-@@ -159,6 +159,10 @@ size_t strlcpy(char *, const char *, size_t);
+@@ -169,6 +169,10 @@ size_t strlcpy(char *, const char *, size_t);
char *strrchrnul(const char *, int);
#endif
@@ -65,7 +66,7 @@ index 4178c98e..8153d297 100644
# include <stdbool.h>
diff --git a/stdlib/strlcat.c b/stdlib/strlcat.c
new file mode 100644
-index 00000000..7084d460
+index 0000000..7084d46
--- /dev/null
+++ b/stdlib/strlcat.c
@@ -0,0 +1,43 @@
@@ -112,6 +113,3 @@ index 00000000..7084d460
+
+#endif
+
---
-2.23.0
-
diff --git a/meta/recipes-devtools/nasm/nasm/0002-Add-debug-prefix-map-option.patch b/meta/recipes-devtools/nasm/nasm/0002-Add-debug-prefix-map-option.patch
index bbfae2e8a5..9f4c8dc0bd 100644
--- a/meta/recipes-devtools/nasm/nasm/0002-Add-debug-prefix-map-option.patch
+++ b/meta/recipes-devtools/nasm/nasm/0002-Add-debug-prefix-map-option.patch
@@ -1,7 +1,7 @@
-From fa677c1caf6b8192971920cf5c1aa8cb33c74605 Mon Sep 17 00:00:00 2001
+From 81d6519499dcfebe7d21e65e002a8885a4e8d852 Mon Sep 17 00:00:00 2001
From: Joshua Watt <JPEWhacker@gmail.com>
Date: Tue, 19 Nov 2019 13:12:17 -0600
-Subject: [PATCH 2/2] Add --debug-prefix-map option
+Subject: [PATCH] Add --debug-prefix-map option
Adds an option to remap file prefixes in output object files. This is
analogous to the "-fdebug-prefix-map" option in GCC, and allows files to
@@ -9,47 +9,46 @@ be built in a reproducible manner regardless of the build directory.
Upstream-Status: Submitted [https://bugzilla.nasm.us/show_bug.cgi?id=3392635]
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
+
---
- asm/nasm.c | 28 ++++++++++++++++++++++++++--
+ asm/nasm.c | 24 ++++++++++++++++++++++++
include/nasmlib.h | 9 +++++++++
nasm.txt | 4 ++++
nasmlib/filename.c | 20 ++++++++++++++++++++
output/outas86.c | 4 +++-
output/outcoff.c | 4 ++--
- output/outelf.c | 8 ++++----
+ output/outelf.c | 2 +-
output/outieee.c | 2 +-
output/outobj.c | 2 +-
stdlib/strlcat.c | 2 +-
test/elfdebugprefix.asm | 6 ++++++
test/performtest.pl | 12 ++++++++++--
- 12 files changed, 87 insertions(+), 14 deletions(-)
+ 12 files changed, 82 insertions(+), 9 deletions(-)
create mode 100644 test/elfdebugprefix.asm
diff --git a/asm/nasm.c b/asm/nasm.c
-index 1c5a5fc5..5d45103c 100644
+index e5ae89a..7a7f8b4 100644
--- a/asm/nasm.c
+++ b/asm/nasm.c
-@@ -841,7 +841,8 @@ enum text_options {
- OPT_BEFORE,
- OPT_LIMIT,
+@@ -939,6 +939,7 @@ enum text_options {
OPT_KEEP_ALL,
-- OPT_NO_LINE
-+ OPT_NO_LINE,
-+ OPT_DEBUG_PREFIX_MAP
+ OPT_NO_LINE,
+ OPT_DEBUG,
++ OPT_DEBUG_PREFIX_MAP,
+ OPT_REPRODUCIBLE
};
- struct textargs {
- const char *label;
-@@ -866,6 +867,7 @@ static const struct textargs textopts[] = {
- {"limit-", OPT_LIMIT, true, 0},
- {"keep-all", OPT_KEEP_ALL, false, 0},
- {"no-line", OPT_NO_LINE, false, 0},
+ enum need_arg {
+@@ -971,6 +972,7 @@ static const struct textargs textopts[] = {
+ {"keep-all", OPT_KEEP_ALL, ARG_NO, 0},
+ {"no-line", OPT_NO_LINE, ARG_NO, 0},
+ {"debug", OPT_DEBUG, ARG_MAYBE, 0},
+ {"debug-prefix-map", OPT_DEBUG_PREFIX_MAP, true, 0},
- {NULL, OPT_BOGUS, false, 0}
+ {"reproducible", OPT_REPRODUCIBLE, ARG_NO, 0},
+ {NULL, OPT_BOGUS, ARG_NO, 0}
};
-
-@@ -1217,6 +1219,26 @@ static bool process_arg(char *p, char *q, int pass)
- case OPT_NO_LINE:
- pp_noline = true;
+@@ -1337,6 +1339,26 @@ static bool process_arg(char *p, char *q, int pass)
+ case OPT_REPRODUCIBLE:
+ reproducible = true;
break;
+ case OPT_DEBUG_PREFIX_MAP: {
+ struct debug_prefix_list *d;
@@ -72,24 +71,22 @@ index 1c5a5fc5..5d45103c 100644
+ }
+ break;
case OPT_HELP:
- help(0);
+ help(stdout);
exit(0);
-@@ -2010,7 +2032,9 @@ static void help(const char xopt)
- " --lpostfix str append the given string to all other symbols\n"
- " --keep-all output files will not be removed even if an error happens\n"
- " --no-line ignore %%line directives in input\n"
-- " --limit-X val set execution limit X\n");
-+ " --limit-X val set execution limit X\n"
-+ " --debug-prefix-map base=dest\n"
-+ " remap paths starting with 'base' to 'dest' in output files\n");
+@@ -2304,6 +2326,8 @@ static void help(FILE *out)
+ " -w-x disable warning x (also -Wno-x)\n"
+ " -w[+-]error promote all warnings to errors (also -Werror)\n"
+ " -w[+-]error=x promote warning x to errors (also -Werror=x)\n"
++ " --debug-prefix-map base=dest\n"
++ " remap paths starting with 'base' to 'dest' in output files\n"
+ , out);
- for (i = 0; i <= LIMIT_MAX; i++) {
- printf(" %-15s %s (default ",
+ fprintf(out, " %-20s %s\n",
diff --git a/include/nasmlib.h b/include/nasmlib.h
-index e57d0e6d..cf921547 100644
+index 438178d..4c3e90d 100644
--- a/include/nasmlib.h
+++ b/include/nasmlib.h
-@@ -195,10 +195,19 @@ int64_t readstrnum(char *str, int length, bool *warn);
+@@ -250,10 +250,19 @@ int64_t readstrnum(char *str, int length, bool *warn);
*/
int32_t seg_alloc(void);
@@ -110,7 +107,7 @@ index e57d0e6d..cf921547 100644
/*
* Utility macros...
diff --git a/nasm.txt b/nasm.txt
-index a28202f9..443c06b2 100644
+index cc7fa27..d3485c9 100644
--- a/nasm.txt
+++ b/nasm.txt
@@ -147,6 +147,10 @@ OPTIONS
@@ -125,7 +122,7 @@ index a28202f9..443c06b2 100644
------
This man page does not fully describe the syntax of *nasm*'s assembly language,
diff --git a/nasmlib/filename.c b/nasmlib/filename.c
-index 172ae0bc..fda2be41 100644
+index 172ae0b..fda2be4 100644
--- a/nasmlib/filename.c
+++ b/nasmlib/filename.c
@@ -39,6 +39,8 @@
@@ -160,10 +157,10 @@ index 172ae0bc..fda2be41 100644
+ return dest;
+}
diff --git a/output/outas86.c b/output/outas86.c
-index 3f9867b9..d5f4f966 100644
+index 54b22f8..c4a412c 100644
--- a/output/outas86.c
+++ b/output/outas86.c
-@@ -113,6 +113,8 @@ static void as86_sect_write(struct Section *, const uint8_t *,
+@@ -110,6 +110,8 @@ static void as86_sect_write(struct Section *, const uint8_t *,
static void as86_init(void)
{
@@ -172,7 +169,7 @@ index 3f9867b9..d5f4f966 100644
stext.data = saa_init(1L);
stext.datalen = 0L;
stext.head = stext.last = NULL;
-@@ -134,7 +136,7 @@ static void as86_init(void)
+@@ -131,7 +133,7 @@ static void as86_init(void)
strslen = 0;
/* as86 module name = input file minus extension */
@@ -182,10 +179,10 @@ index 3f9867b9..d5f4f966 100644
static void as86_cleanup(void)
diff --git a/output/outcoff.c b/output/outcoff.c
-index a2fd302c..bcf576fb 100644
+index 58fa024..14baf7b 100644
--- a/output/outcoff.c
+++ b/output/outcoff.c
-@@ -1070,14 +1070,14 @@ static void coff_symbol(char *name, int32_t strpos, int32_t value,
+@@ -1072,14 +1072,14 @@ static void coff_symbol(char *name, int32_t strpos, int32_t value,
static void coff_write_symbols(void)
{
@@ -203,48 +200,23 @@ index a2fd302c..bcf576fb 100644
/*
diff --git a/output/outelf.c b/output/outelf.c
-index de99d076..203b5dc0 100644
+index 61af020..1292958 100644
--- a/output/outelf.c
+++ b/output/outelf.c
-@@ -1,5 +1,5 @@
- /* ----------------------------------------------------------------------- *
-- *
-+ *
- * Copyright 1996-2017 The NASM Authors - All Rights Reserved
- * See the file AUTHORS included with the NASM distribution for
- * the specific copyright holders.
-@@ -14,7 +14,7 @@
- * 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 COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-@@ -315,7 +315,7 @@ elf_directive(enum directive directive, char *value, int pass)
+@@ -553,7 +553,7 @@ static void elf_init(void)
+ };
+ const char * const *p;
- static void elf_init(void)
- {
- strlcpy(elf_module, inname, sizeof(elf_module));
+ filename_debug_remap(elf_module, inname, sizeof(elf_module));
sects = NULL;
nsects = sectlen = 0;
syms = saa_init((int32_t)sizeof(struct elf_symbol));
-@@ -868,7 +868,7 @@ static void elf32_out(int32_t segto, const void *data,
- " segment base references");
- } else {
- if (wrt == NO_SEG) {
-- /*
-+ /*
- * The if() is a hack to deal with compilers which
- * don't handle switch() statements with 64-bit
- * expressions.
diff --git a/output/outieee.c b/output/outieee.c
-index 3a28942d..f61824e4 100644
+index 6d6d4b2..cdb8333 100644
--- a/output/outieee.c
+++ b/output/outieee.c
-@@ -209,7 +209,7 @@ static void ieee_unqualified_name(char *, char *);
+@@ -207,7 +207,7 @@ static void ieee_unqualified_name(char *, char *);
*/
static void ieee_init(void)
{
@@ -254,10 +226,10 @@ index 3a28942d..f61824e4 100644
fpubhead = NULL;
fpubtail = &fpubhead;
diff --git a/output/outobj.c b/output/outobj.c
-index b4f2c499..55bba4a1 100644
+index 56b43f9..fefea94 100644
--- a/output/outobj.c
+++ b/output/outobj.c
-@@ -640,7 +640,7 @@ static enum directive_result obj_directive(enum directive, char *, int);
+@@ -644,7 +644,7 @@ static enum directive_result obj_directive(enum directive, char *);
static void obj_init(void)
{
@@ -267,7 +239,7 @@ index b4f2c499..55bba4a1 100644
any_segs = false;
fpubhead = NULL;
diff --git a/stdlib/strlcat.c b/stdlib/strlcat.c
-index 7084d460..ee93dea3 100644
+index 7084d46..ee93dea 100644
--- a/stdlib/strlcat.c
+++ b/stdlib/strlcat.c
@@ -29,7 +29,7 @@ size_t strlcat(char *dest, const char *src, size_t size)
@@ -281,7 +253,7 @@ index 7084d460..ee93dea3 100644
/* destination was not NULL terminated. Return the initial size */
diff --git a/test/elfdebugprefix.asm b/test/elfdebugprefix.asm
new file mode 100644
-index 00000000..a67ba29c
+index 0000000..a67ba29
--- /dev/null
+++ b/test/elfdebugprefix.asm
@@ -0,0 +1,6 @@
@@ -292,7 +264,7 @@ index 00000000..a67ba29c
+ ret
+
diff --git a/test/performtest.pl b/test/performtest.pl
-index f7865b39..096f9604 100755
+index f7865b3..096f960 100755
--- a/test/performtest.pl
+++ b/test/performtest.pl
@@ -42,14 +42,22 @@ sub perform {
@@ -320,6 +292,3 @@ index f7865b39..096f9604 100755
#Move the output to the test dir
mkpath("$outputdir/$testname/$subname");
foreach(split / /,$files) {
---
-2.23.0
-
diff --git a/meta/recipes-devtools/nasm/nasm/CVE-2018-19755.patch b/meta/recipes-devtools/nasm/nasm/CVE-2018-19755.patch
deleted file mode 100644
index 6e3f909d0f..0000000000
--- a/meta/recipes-devtools/nasm/nasm/CVE-2018-19755.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From 3079f7966dbed4497e36d5067cbfd896a90358cb Mon Sep 17 00:00:00 2001
-From: Cyrill Gorcunov <gorcunov@gmail.com>
-Date: Wed, 14 Nov 2018 10:03:42 +0300
-Subject: [PATCH] preproc: Fix malformed parameter count
-
-readnum returns 64bit number which may become
-a negative integer upon conversion which in
-turn lead to out of bound array access.
-
-Fix it by explicit conversion with bounds check
-
- | POC6:2: error: parameter count `2222222222' is out of bounds [0; 2147483647]
-
-https://bugzilla.nasm.us/show_bug.cgi?id=3392528
-
-Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
-
-Upstream-Status: Backport
-CVE: CVE-2018-19755
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- asm/preproc.c | 43 +++++++++++++++++++++----------------------
- 1 file changed, 21 insertions(+), 22 deletions(-)
-
-diff --git a/asm/preproc.c b/asm/preproc.c
-index b6afee3..e5ad05a 100644
---- a/asm/preproc.c
-+++ b/asm/preproc.c
-@@ -1650,6 +1650,23 @@ smacro_defined(Context * ctx, const char *name, int nparam, SMacro ** defn,
- return false;
- }
-
-+/* param should be a natural number [0; INT_MAX] */
-+static int read_param_count(const char *str)
-+{
-+ int result;
-+ bool err;
-+
-+ result = readnum(str, &err);
-+ if (result < 0 || result > INT_MAX) {
-+ result = 0;
-+ nasm_error(ERR_NONFATAL, "parameter count `%s' is out of bounds [%d; %d]",
-+ str, 0, INT_MAX);
-+ } else if (err) {
-+ nasm_error(ERR_NONFATAL, "unable to parse parameter count `%s'", str);
-+ }
-+ return result;
-+}
-+
- /*
- * Count and mark off the parameters in a multi-line macro call.
- * This is called both from within the multi-line macro expansion
-@@ -1871,11 +1888,7 @@ static bool if_condition(Token * tline, enum preproc_token ct)
- pp_directives[ct]);
- } else {
- searching.nparam_min = searching.nparam_max =
-- readnum(tline->text, &j);
-- if (j)
-- nasm_error(ERR_NONFATAL,
-- "unable to parse parameter count `%s'",
-- tline->text);
-+ read_param_count(tline->text);
- }
- if (tline && tok_is_(tline->next, "-")) {
- tline = tline->next->next;
-@@ -1886,11 +1899,7 @@ static bool if_condition(Token * tline, enum preproc_token ct)
- "`%s' expects a parameter count after `-'",
- pp_directives[ct]);
- else {
-- searching.nparam_max = readnum(tline->text, &j);
-- if (j)
-- nasm_error(ERR_NONFATAL,
-- "unable to parse parameter count `%s'",
-- tline->text);
-+ searching.nparam_max = read_param_count(tline->text);
- if (searching.nparam_min > searching.nparam_max) {
- nasm_error(ERR_NONFATAL,
- "minimum parameter count exceeds maximum");
-@@ -2079,8 +2088,6 @@ static void undef_smacro(Context *ctx, const char *mname)
- */
- static bool parse_mmacro_spec(Token *tline, MMacro *def, const char *directive)
- {
-- bool err;
--
- tline = tline->next;
- skip_white_(tline);
- tline = expand_id(tline);
-@@ -2103,11 +2110,7 @@ static bool parse_mmacro_spec(Token *tline, MMacro *def, const char *directive)
- if (!tok_type_(tline, TOK_NUMBER)) {
- nasm_error(ERR_NONFATAL, "`%s' expects a parameter count", directive);
- } else {
-- def->nparam_min = def->nparam_max =
-- readnum(tline->text, &err);
-- if (err)
-- nasm_error(ERR_NONFATAL,
-- "unable to parse parameter count `%s'", tline->text);
-+ def->nparam_min = def->nparam_max = read_param_count(tline->text);
- }
- if (tline && tok_is_(tline->next, "-")) {
- tline = tline->next->next;
-@@ -2117,11 +2120,7 @@ static bool parse_mmacro_spec(Token *tline, MMacro *def, const char *directive)
- nasm_error(ERR_NONFATAL,
- "`%s' expects a parameter count after `-'", directive);
- } else {
-- def->nparam_max = readnum(tline->text, &err);
-- if (err) {
-- nasm_error(ERR_NONFATAL, "unable to parse parameter count `%s'",
-- tline->text);
-- }
-+ def->nparam_max = read_param_count(tline->text);
- if (def->nparam_min > def->nparam_max) {
- nasm_error(ERR_NONFATAL, "minimum parameter count exceeds maximum");
- def->nparam_max = def->nparam_min;
---
-2.10.5.GIT
-
diff --git a/meta/recipes-devtools/nasm/nasm/CVE-2019-14248.patch b/meta/recipes-devtools/nasm/nasm/CVE-2019-14248.patch
deleted file mode 100644
index d45d2cb465..0000000000
--- a/meta/recipes-devtools/nasm/nasm/CVE-2019-14248.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 93d41d82963b2cfd0b24c906f5a8daf53281b559 Mon Sep 17 00:00:00 2001
-From: "H. Peter Anvin (Intel)" <hpa@zytor.com>
-Date: Fri, 16 Aug 2019 01:12:54 -0700
-Subject: [PATCH] BR 3392576: don't segfault on a bad %pragma limit
-
-Don't segfault on a bad %pragma limit. Instead treat a NULL pointer as
-an empty string.
-
-Reported-by: Ren Kimura <rkx1209dev@gmail.com>
-Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
-
-CVE: CVE-2019-14248
-Upstream-Status: Backport [https://repo.or.cz/nasm.git/commit/93d41d82963b2cfd0b24c906f5a8daf53281b559]
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- asm/nasm.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/asm/nasm.c b/asm/nasm.c
-index c84d675..65116ab 100644
---- a/asm/nasm.c
-+++ b/asm/nasm.c
-@@ -212,6 +212,11 @@ nasm_set_limit(const char *limit, const char *valstr)
- bool rn_error;
- int errlevel;
-
-+ if (!limit)
-+ limit = "";
-+ if (!valstr)
-+ valstr = "";
-+
- for (i = 0; i <= LIMIT_MAX; i++) {
- if (!nasm_stricmp(limit, limit_info[i].name))
- break;
-@@ -204,7 +209,7 @@ nasm_set_limit(const char *limit, const char *valstr)
- errlevel = ERR_WARNING|ERR_NOFILE|ERR_USAGE;
- else
- errlevel = ERR_WARNING|ERR_PASS1|WARN_UNKNOWN_PRAGMA;
-- nasm_error(errlevel, "unknown limit: `%s'", limit);
-+ nasm_error(errlevel, "invalid limit value: `%s'", valstr);
- return DIRR_ERROR;
- }
-
diff --git a/meta/recipes-devtools/nasm/nasm_2.14.02.bb b/meta/recipes-devtools/nasm/nasm_2.15.05.bb
index f8a8d76e99..6a1294c34f 100644
--- a/meta/recipes-devtools/nasm/nasm_2.14.02.bb
+++ b/meta/recipes-devtools/nasm/nasm_2.15.05.bb
@@ -4,19 +4,15 @@ LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=90904486f8fbf1861cf42752e1a39efe"
SRC_URI = "http://www.nasm.us/pub/nasm/releasebuilds/${PV}/nasm-${PV}.tar.bz2 \
- file://CVE-2018-19755.patch \
- file://CVE-2019-14248.patch \
file://0001-stdlib-Add-strlcat.patch \
file://0002-Add-debug-prefix-map-option.patch \
"
-SRC_URI[md5sum] = "3f489aa48ad2aa1f967dc5e293bbd06f"
-SRC_URI[sha256sum] = "34fd26c70a277a9fdd54cb5ecf389badedaf48047b269d1008fbc819b24e80bc"
+SRC_URI[sha256sum] = "3c4b8339e5ab54b1bcb2316101f8985a5da50a3f9e504d43fa6f35668bee2fd0"
-# brokensep since this uses autoconf but not automake
-inherit autotools-brokensep
+EXTRA_AUTORECONF_append = " -I autoconf/m4"
-EXTRA_AUTORECONF += "--exclude=aclocal"
+inherit autotools-brokensep
BBCLASSEXTEND = "native"
diff --git a/meta/recipes-devtools/ninja/ninja/fix-musl.patch b/meta/recipes-devtools/ninja/ninja/fix-musl.patch
deleted file mode 100644
index 7fd779110d..0000000000
--- a/meta/recipes-devtools/ninja/ninja/fix-musl.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From e92a915183f8bff268f74c8cd00d986301a2bbf8 Mon Sep 17 00:00:00 2001
-From: makepost <makepost@firemail.cc>
-Date: Mon, 24 Dec 2018 03:13:16 +0200
-Subject: [PATCH] Use st_mtim if st_mtime is macro, fix #1510
-
-In POSIX.1-2008, sys_stat has a st_mtim member and a st_mtime backward
-compatibility macro. Should help avoid hardcoding platform detection.
-
-Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
-
-Upstream-Status: Pending
----
- src/disk_interface.cc | 14 ++++----------
- 1 file changed, 4 insertions(+), 10 deletions(-)
-
-diff --git a/src/disk_interface.cc b/src/disk_interface.cc
-index d4c2fb0..dc297c4 100644
---- a/src/disk_interface.cc
-+++ b/src/disk_interface.cc
-@@ -202,19 +202,13 @@ TimeStamp RealDiskInterface::Stat(const string& path, string* err) const {
- // that it doesn't exist.
- if (st.st_mtime == 0)
- return 1;
--#if defined(__APPLE__) && !defined(_POSIX_C_SOURCE)
-+#if defined(_AIX)
-+ return (int64_t)st.st_mtime * 1000000000LL + st.st_mtime_n;
-+#elif defined(__APPLE__)
- return ((int64_t)st.st_mtimespec.tv_sec * 1000000000LL +
- st.st_mtimespec.tv_nsec);
--#elif (_POSIX_C_SOURCE >= 200809L || _XOPEN_SOURCE >= 700 || defined(_BSD_SOURCE) || defined(_SVID_SOURCE) || \
-- defined(__BIONIC__) || (defined (__SVR4) && defined (__sun)) || defined(__FreeBSD__))
-- // For glibc, see "Timestamp files" in the Notes of http://www.kernel.org/doc/man-pages/online/pages/man2/stat.2.html
-- // newlib, uClibc and musl follow the kernel (or Cygwin) headers and define the right macro values above.
-- // For bsd, see https://github.com/freebsd/freebsd/blob/master/sys/sys/stat.h and similar
-- // For bionic, C and POSIX API is always enabled.
-- // For solaris, see https://docs.oracle.com/cd/E88353_01/html/E37841/stat-2.html.
-+#elif defined(st_mtime) // A macro, so we're likely on modern POSIX.
- return (int64_t)st.st_mtim.tv_sec * 1000000000LL + st.st_mtim.tv_nsec;
--#elif defined(_AIX)
-- return (int64_t)st.st_mtime * 1000000000LL + st.st_mtime_n;
- #else
- return (int64_t)st.st_mtime * 1000000000LL + st.st_mtimensec;
- #endif
---
-2.17.1
-
diff --git a/meta/recipes-devtools/ninja/ninja_1.9.0.bb b/meta/recipes-devtools/ninja/ninja_1.10.1.bb
index f1236e8ac8..eefac4166a 100644
--- a/meta/recipes-devtools/ninja/ninja_1.9.0.bb
+++ b/meta/recipes-devtools/ninja/ninja_1.10.1.bb
@@ -5,11 +5,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a81586a64ad4e476c791cda7e2f2c52e"
DEPENDS = "re2c-native ninja-native"
-SRCREV = "b25c08bda4949192c69cea4cee057887341a2ffc"
+SRCREV = "a1f879b29c9aafe6a2bc0ba885701f8f4f19f772"
-SRC_URI = "git://github.com/ninja-build/ninja.git;branch=release \
- file://fix-musl.patch \
-"
+SRC_URI = "git://github.com/ninja-build/ninja.git;branch=release"
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)"
S = "${WORKDIR}/git"
diff --git a/meta/recipes-devtools/opkg-utils/opkg-utils/fix-reproducibility.patch b/meta/recipes-devtools/opkg-utils/opkg-utils/fix-reproducibility.patch
deleted file mode 100644
index 945979bc8a..0000000000
--- a/meta/recipes-devtools/opkg-utils/opkg-utils/fix-reproducibility.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Fix reproducibility issues in opkg-build
-
-There is a sorting problem with opkg-build where the ipk generated is depending
-upon the order of files on disk. The reason is the --sort option to tar only
-influences the orders of files tar reads, not those passed by the -T option.
-
-Add in a sort call to resolve this issue. To ensure consistent sorting we
-also need to force to a specific locale (C) else the results are still not
-deterministic.
-
-RP 2020/2/5
-
-Upstream-Status: Submitted [https://groups.google.com/forum/#!topic/opkg-devel/YttZ73NLrYQ]
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-
-Index: opkg-utils-0.4.2/opkg-build
-===================================================================
---- opkg-utils-0.4.2.orig/opkg-build
-+++ opkg-utils-0.4.2/opkg-build
-@@ -305,8 +305,10 @@ if [ ! -z "$SOURCE_DATE_EPOCH" ]; then
- mtime_args="--mtime=@$build_date --clamp-mtime"
- fi
-
--( cd $pkg_dir/$CONTROL && find . -type f > $tmp_dir/control_list )
--( cd $pkg_dir && find . -path ./$CONTROL -prune -o -path . -o -print > $tmp_dir/file_list )
-+export LANG=C
-+export LC_ALL=C
-+( cd $pkg_dir/$CONTROL && find . -type f | sort > $tmp_dir/control_list )
-+( cd $pkg_dir && find . -path ./$CONTROL -prune -o -path . -o -print | sort > $tmp_dir/file_list )
- ( cd $pkg_dir && tar $ogargs $tsortargs --no-recursion $mtime_args -c $tarformat -T $tmp_dir/file_list | $compressor $compressorargs > $tmp_dir/data.tar.$cext )
- ( cd $pkg_dir/$CONTROL && tar $ogargs $tsortargs --no-recursion --mtime=@$build_date -c $tarformat -T $tmp_dir/control_list | gzip $zipargs > $tmp_dir/control.tar.gz )
- rm $tmp_dir/file_list
diff --git a/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.2.bb b/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.3.bb
index eda73db6a4..f9df58a295 100644
--- a/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.2.bb
+++ b/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.3.bb
@@ -8,12 +8,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
PROVIDES += "${@bb.utils.contains('PACKAGECONFIG', 'update-alternatives', 'virtual/update-alternatives', '', d)}"
SRC_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/${BPN}/snapshot/${BPN}-${PV}.tar.gz \
- file://fix-reproducibility.patch \
"
UPSTREAM_CHECK_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/refs/"
-SRC_URI[md5sum] = "cc210650644fcb9bba06ad5ec95a63ec"
-SRC_URI[sha256sum] = "5929ad87d541789e0b82d626db01a1201ac48df6f49f2262fcfb86cf815e5d6c"
+SRC_URI[md5sum] = "7bbadb3c381f3ea935b21d3bb8cc4671"
+SRC_URI[sha256sum] = "046517600fb0aed6c4645edefe02281f4fa2f1c02f71596152d93172452c0b01"
TARGET_CC_ARCH += "${LDFLAGS}"
@@ -34,13 +33,13 @@ do_install() {
if ! ${@bb.utils.contains('PACKAGECONFIG', 'update-alternatives', 'true', 'false', d)}; then
rm -f "${D}${bindir}/update-alternatives"
fi
-
- if ! ${@bb.utils.contains('PACKAGECONFIG', 'python', 'true', 'false', d)}; then
- grep -lZ "/usr/bin/env.*python" ${D}${bindir}/* | xargs -0 rm
- fi
}
do_install_append_class-target() {
+ if ! ${@bb.utils.contains('PACKAGECONFIG', 'python', 'true', 'false', d)}; then
+ grep -lZ "/usr/bin/env.*python" ${D}${bindir}/* | xargs -0 rm
+ fi
+
if [ -e "${D}${bindir}/update-alternatives" ]; then
sed -i ${D}${bindir}/update-alternatives -e 's,/usr/bin,${bindir},g; s,/usr/lib,${nonarch_libdir},g'
fi
diff --git a/meta/recipes-devtools/opkg/opkg-keyrings_1.0.bb b/meta/recipes-devtools/opkg/opkg-keyrings_1.0.bb
index a20e316a3d..07e2402545 100644
--- a/meta/recipes-devtools/opkg/opkg-keyrings_1.0.bb
+++ b/meta/recipes-devtools/opkg/opkg-keyrings_1.0.bb
@@ -36,5 +36,8 @@ FILES_${PN} = "${datadir}/opkg/keyrings"
RDEPENDS_${PN} = "opkg"
pkg_postinst_ontarget_${PN} () {
-opkg-key populate
+ if test -x ${bindir}/opkg-key
+ then
+ ${bindir}/opkg-key populate
+ fi
}
diff --git a/meta/recipes-devtools/opkg/opkg_0.4.2.bb b/meta/recipes-devtools/opkg/opkg_0.4.3.bb
index 66a74dc5ed..46b7aa2523 100644
--- a/meta/recipes-devtools/opkg/opkg_0.4.2.bb
+++ b/meta/recipes-devtools/opkg/opkg_0.4.3.bb
@@ -17,8 +17,8 @@ SRC_URI = "http://downloads.yoctoproject.org/releases/${BPN}/${BPN}-${PV}.tar.gz
file://run-ptest \
"
-SRC_URI[md5sum] = "bd13e5dfc1c2536f0c7b2e15f795278e"
-SRC_URI[sha256sum] = "86887852c43457edfff9d8b6d9520f3f1cdd55f25eb600a6eb31e1c4e151e106"
+SRC_URI[md5sum] = "86ec5eee9362aca0990994a402e077e9"
+SRC_URI[sha256sum] = "dda452854bc0cd1334f7ba18a66003d1c12a98600c894111b56919b1ea434718"
# This needs to be before ptest inherit, otherwise all ptest files end packaged
# in libopkg package if OPKGLIBDIR == libdir, because default
diff --git a/meta/recipes-devtools/packagegroups/packagegroup-core-device-devel.bb b/meta/recipes-devtools/packagegroups/packagegroup-core-device-devel.bb
deleted file mode 100644
index edee474eca..0000000000
--- a/meta/recipes-devtools/packagegroups/packagegroup-core-device-devel.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Provides a small set of tools for development on the device"
-
-PR = "r1"
-
-inherit packagegroup
-
-RPROVIDES_${PN} = "qemu-config"
-RREPLACES_${PN} = "qemu-config"
-RCONFLICTS_${PN} = "qemu-config"
-
-RDEPENDS_${PN} = "\
- distcc-config \
- nfs-export-root \
- bash \
- binutils-symlinks \
- "
diff --git a/meta/recipes-devtools/patchelf/patchelf/fix-adjusting-startPage.patch b/meta/recipes-devtools/patchelf/patchelf/fix-adjusting-startPage.patch
deleted file mode 100644
index a0988423fe..0000000000
--- a/meta/recipes-devtools/patchelf/patchelf/fix-adjusting-startPage.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 1630d3f846c7721b1e7cd3b005bb2b34816e1d0f Mon Sep 17 00:00:00 2001
-From: Ed Bartosh <ed.bartosh@linux.intel.com>
-Date: Fri, 21 Jul 2017 12:33:53 +0300
-Subject: [PATCH] patchelf: fix segfault for binaries linked by gold
-
-commit 1cc234fea5600190d872329aca60e2365cefc39e
-
-fix adjusting startPage
-
-startPage is adjusted unconditionally for all executables.
-This results in incorrect addresses assigned to INTERP and LOAD
-program headers, which breaks patched executable.
-
-Adjusting startPage variable only when startOffset > startPage
-should fix this.
-
-This change is related to the issue NixOS#10
-
-Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
-
-Github PR: https://github.com/NixOS/patchelf/pull/127
-
-Upstream-Status: Submitted
-
----
- src/patchelf.cc | 6 ++----
- 1 file changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/src/patchelf.cc b/src/patchelf.cc
-index a63e3a11c61f..2483d25d78f1 100644
---- a/src/patchelf.cc
-+++ b/src/patchelf.cc
-@@ -756,10 +756,8 @@ void ElfFile<ElfFileParamNames>::rewriteSectionsLibrary()
- since DYN executables tend to start at virtual address 0, so
- rewriteSectionsExecutable() won't work because it doesn't have
- any virtual address space to grow downwards into. */
-- if (isExecutable) {
-- if (startOffset >= startPage) {
-- debug("shifting new PT_LOAD segment by %d bytes to work around a Linux kernel bug\n", startOffset - startPage);
-- }
-+ if (isExecutable && startOffset > startPage) {
-+ debug("shifting new PT_LOAD segment by %d bytes to work around a Linux kernel bug\n", startOffset - startPage);
- startPage = startOffset;
- }
-
diff --git a/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch b/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch
index 03b0d18a89..bf721c1af8 100644
--- a/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch
+++ b/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch
@@ -14,30 +14,32 @@ Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
src/patchelf.cc | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
-diff --git a/src/patchelf.cc b/src/patchelf.cc
-index 0b4965adff83..b5db2aef0e8a 100644
---- a/src/patchelf.cc
-+++ b/src/patchelf.cc
-@@ -497,7 +497,17 @@ void ElfFile<ElfFileParamNames>::sortShdrs()
+Index: git/src/patchelf.cc
+===================================================================
+--- git.orig/src/patchelf.cc
++++ git/src/patchelf.cc
+@@ -499,9 +499,19 @@ void ElfFile<ElfFileParamNames>::sortShd
static void writeFile(std::string fileName, FileContents contents)
{
-- int fd = open(fileName.c_str(), O_TRUNC | O_WRONLY);
+ struct stat st;
+ int fd;
+
+ debug("writing %s\n", fileName.c_str());
+
+- int fd = open(fileName.c_str(), O_CREAT | O_TRUNC | O_WRONLY, 0777);
+ if (stat(fileName.c_str(), &st) != 0)
+ error("stat");
+
+ if (chmod(fileName.c_str(), 0600) != 0)
+ error("chmod");
+
-+ fd = open(fileName.c_str(), O_TRUNC | O_WRONLY);
++ fd = open(fileName.c_str(), O_CREAT | O_TRUNC | O_WRONLY, 0777);
+
if (fd == -1)
error("open");
-@@ -511,6 +521,10 @@ static void writeFile(std::string fileName, FileContents contents)
+@@ -515,6 +525,10 @@ static void writeFile(std::string fileNa
if (close(fd) != 0)
error("close");
diff --git a/meta/recipes-devtools/patchelf/patchelf_0.10.bb b/meta/recipes-devtools/patchelf/patchelf_0.12.bb
index cc983e033a..43de90877c 100644
--- a/meta/recipes-devtools/patchelf/patchelf_0.10.bb
+++ b/meta/recipes-devtools/patchelf/patchelf_0.12.bb
@@ -1,13 +1,13 @@
-SRC_URI = "https://nixos.org/releases/${BPN}/${BPN}-${PV}/${BPN}-${PV}.tar.bz2 \
+SRC_URI = "git://github.com/NixOS/patchelf;protocol=https \
file://handle-read-only-files.patch \
- file://fix-adjusting-startPage.patch \
"
LICENSE = "GPLv3"
SUMMARY = "Tool to allow editing of RPATH and interpreter fields in ELF binaries"
-SRC_URI[md5sum] = "6c3f3a06a95705870d129494a6880106"
-SRC_URI[sha256sum] = "f670cd462ac7161588c28f45349bc20fb9bd842805e3f71387a320e7a9ddfcf3"
+SRCREV = "8d3a16e97294e3c5521c61b4c8835499c9918264"
+
+S = "${WORKDIR}/git"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
diff --git a/meta/recipes-devtools/perl/files/0001-enc2xs-Add-environment-variable-to-suppress-comments.patch b/meta/recipes-devtools/perl/files/0001-enc2xs-Add-environment-variable-to-suppress-comments.patch
deleted file mode 100644
index 3a41820f46..0000000000
--- a/meta/recipes-devtools/perl/files/0001-enc2xs-Add-environment-variable-to-suppress-comments.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 31a2c5555f9ef32f35d7d5ce1fd09a010ba5f5c6 Mon Sep 17 00:00:00 2001
-From: Joshua Watt <JPEWhacker@gmail.com>
-Date: Mon, 17 Jun 2019 10:47:15 -0500
-Subject: [PATCH 1/2] enc2xs: Add environment variable to suppress comments
-
-Comment generation in enc2xs can now be suppressed by setting the
-ENC2XS_NO_COMMENTS environment variable. This allows enc2xs to produce
-reproducible output by omitting the name of the generating program.
-
-Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
-Upstream-Status: Accepted [https://github.com/dankogai/p5-encode/pull/145]
----
- cpan/Encode/bin/enc2xs | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/cpan/Encode/bin/enc2xs b/cpan/Encode/bin/enc2xs
-index 619b64b757..bfce9ee735 100644
---- a/cpan/Encode/bin/enc2xs
-+++ b/cpan/Encode/bin/enc2xs
-@@ -144,6 +144,7 @@ getopts('CM:SQqOo:f:n:v',\%opt);
- $opt{M} and make_makefile_pl($opt{M}, @ARGV);
- $opt{C} and make_configlocal_pm($opt{C}, @ARGV);
- $opt{v} ||= $ENV{ENC2XS_VERBOSE};
-+$opt{q} ||= $ENV{ENC2XS_NO_COMMENTS};
-
- sub verbose {
- print STDERR @_ if $opt{v};
---
-2.21.0
-
diff --git a/meta/recipes-devtools/perl/files/0001-tests-adjust-to-correctly-exclude-unbuilt-extensions.patch b/meta/recipes-devtools/perl/files/0001-tests-adjust-to-correctly-exclude-unbuilt-extensions.patch
deleted file mode 100644
index 0f3a2c6327..0000000000
--- a/meta/recipes-devtools/perl/files/0001-tests-adjust-to-correctly-exclude-unbuilt-extensions.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From b0d53cfd785f64002128ac5eecc4aed0663d9c30 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Thu, 9 Jan 2020 17:26:55 +0100
-Subject: [PATCH] tests: adjust to correctly exclude unbuilt extensions
-
-Issue is reported here:
-https://github.com/arsv/perl-cross/issues/85
-
-Upstream-Status: Inappropriate [issue caused by perl-cross]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- t/TEST | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/t/TEST b/t/TEST
-index a9c844f..8d3505f 100755
---- a/t/TEST
-+++ b/t/TEST
-@@ -419,7 +419,7 @@ sub _tests_from_manifest {
- while (<MANI>) {
- if (m!^((?:cpan|dist|ext)/(\S+)/+(?:[^/\s]+\.t|test\.pl)|lib/\S+?(?:\.t|test\.pl))\s!) {
- my $t = $1;
-- my $extension = $2;
-+ my $extension = $1."/".$2;
-
- # XXX Generates way too many error lines currently. Skip for
- # v5.22
diff --git a/meta/recipes-devtools/perl/files/determinism.patch b/meta/recipes-devtools/perl/files/determinism.patch
index ed4d06f5ec..ccdd52a0d0 100644
--- a/meta/recipes-devtools/perl/files/determinism.patch
+++ b/meta/recipes-devtools/perl/files/determinism.patch
@@ -21,19 +21,6 @@ RP 2020/2/7
Upstream-Status: Pending [75% submitted]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org
-Index: perl-5.30.1/cnf/configure_attr.sh
-===================================================================
---- perl-5.30.1.orig/cnf/configure_attr.sh
-+++ perl-5.30.1/cnf/configure_attr.sh
-@@ -131,7 +131,7 @@ if not hinted d_c99_variadic_macros 'sup
- try_start
- try_add '#include <stdio.h>'
- try_add '#define foo(fmt, ...) printf(fmt, __VA_ARGS__)'
-- try_add 'int main(void) { foo("%i\n", 1234); return 0; }'
-+ try_add 'int main(void) { foo("%i", 1234); return 0; }'
- try_compile
- resdef d_c99_variadic_macros 'supported' 'missing'
- fi
Index: perl-5.30.1/cnf/configure_mods.sh
===================================================================
--- perl-5.30.1.orig/cnf/configure_mods.sh
diff --git a/meta/recipes-devtools/perl/files/perl-cross-makefile.patch b/meta/recipes-devtools/perl/files/perl-cross-makefile.patch
new file mode 100644
index 0000000000..5d3f998200
--- /dev/null
+++ b/meta/recipes-devtools/perl/files/perl-cross-makefile.patch
@@ -0,0 +1,29 @@
+Makefile: Avoid continual rebuilds of miniperl and associated races
+
+In the Yocto Project, when we run "make install" we notice miniperl
+rebuilding multiple times. Usually this is harmless however sometimes
+race issues occur such as miniperl not being executable.
+
+The issue is that crosspatch is a phony target so it always rebuilds.
+Adding this as a dependency of miniperl means miniperl always rebuilds
+too.
+
+Avoid this by injecting a direct dependency avoiding the phony target.
+miniperl is then only rebuilt when its input changes as desired.
+
+Signed-off-by: Richard Purdie richard.purdie@linuxfoundation.org
+Upstream-Status: Submitted [https://github.com/arsv/perl-cross/pull/95]
+
+Index: perl-5.32.0/Makefile
+===================================================================
+--- perl-5.32.0.orig/Makefile
++++ perl-5.32.0/Makefile
+@@ -56,7 +56,7 @@ crosspatch: $(CROSSPATCHED)
+
+ # A minor fix for buildroot, force crosspatching when running "make perl modules"
+ # instead of "make all".
+-miniperlmain$O: crosspatch
++miniperlmain$O: $(CROSSPATCHED)
+
+ # Original versions are not saved anymore; patch generally takes care of this,
+ # and if that fails, reaching for the source tarball is the safest option.
diff --git a/meta/recipes-devtools/perl/files/perl-rdepends.txt b/meta/recipes-devtools/perl/files/perl-rdepends.txt
index 331a44d308..e7cd551988 100644
--- a/meta/recipes-devtools/perl/files/perl-rdepends.txt
+++ b/meta/recipes-devtools/perl/files/perl-rdepends.txt
@@ -59,7 +59,6 @@ RDEPENDS_perl-module-archive-tar += "perl-module-io-file"
RDEPENDS_perl-module-archive-tar += "perl-module-io-zlib"
RDEPENDS_perl-module-archive-tar += "perl-module-strict"
RDEPENDS_perl-module-archive-tar += "perl-module-vars"
-RDEPENDS_perl-module-arybase += "perl-module-xsloader"
RDEPENDS_perl-module-attribute-handlers += "perl-module-strict"
RDEPENDS_perl-module-attribute-handlers += "perl-module-warnings"
RDEPENDS_perl-module-attributes += "perl-module-exporter"
@@ -109,9 +108,6 @@ RDEPENDS_perl-module-b-concise += "perl-module-exporter"
RDEPENDS_perl-module-b-concise += "perl-module-feature"
RDEPENDS_perl-module-b-concise += "perl-module-strict"
RDEPENDS_perl-module-b-concise += "perl-module-warnings"
-RDEPENDS_perl-module-b-debug += "perl-module-b"
-RDEPENDS_perl-module-b-debug += "perl-module-config"
-RDEPENDS_perl-module-b-debug += "perl-module-strict"
RDEPENDS_perl-module-benchmark += "perl-module-exporter"
RDEPENDS_perl-module-benchmark += "perl-module-strict"
RDEPENDS_perl-module-bigint += "perl-module-constant"
@@ -153,9 +149,6 @@ RDEPENDS_perl-module-b-xref += "perl-module-b"
RDEPENDS_perl-module-b-xref += "perl-module-config"
RDEPENDS_perl-module-b-xref += "perl-module-strict"
RDEPENDS_perl-module-bytes += "perl-module-bytes-heavy"
-RDEPENDS_perl-module-carp += "perl-module-exporter"
-RDEPENDS_perl-module-carp += "perl-module-strict"
-RDEPENDS_perl-module-carp += "perl-module-warnings"
RDEPENDS_perl-module--charnames += "perl-module-bytes"
RDEPENDS_perl-module-charnames += "perl-module-bytes"
RDEPENDS_perl-module-charnames += "perl-module--charnames"
@@ -196,2312 +189,6 @@ RDEPENDS_perl-module-compress-zlib += "perl-module-warnings "
RDEPENDS_perl-module-config-extensions += "perl-module-config"
RDEPENDS_perl-module-config-extensions += "perl-module-exporter"
RDEPENDS_perl-module-config-extensions += "perl-module-strict"
-RDEPENDS_perl-module-config += "perl-module-strict"
-RDEPENDS_perl-module-config += "perl-module-warnings"
-RDEPENDS_perl-module-config-perl-v += "perl-module-config"
-RDEPENDS_perl-module-config-perl-v += "perl-module-exporter"
-RDEPENDS_perl-module-config-perl-v += "perl-module-strict"
-RDEPENDS_perl-module-config-perl-v += "perl-module-vars"
-RDEPENDS_perl-module-config-perl-v += "perl-module-warnings"
-RDEPENDS_perl-module-constant += "perl-module-strict"
-RDEPENDS_perl-module-constant += "perl-module-warnings-register"
-RDEPENDS_perl-module-corelist += "perl-module-list-util"
-RDEPENDS_perl-module-corelist += "perl-module-corelist"
-RDEPENDS_perl-module-corelist += "perl-module-strict"
-RDEPENDS_perl-module-corelist += "perl-module-version"
-RDEPENDS_perl-module-corelist += "perl-module-warnings"
-RDEPENDS_perl-module-cpan += "perl-module-b"
-RDEPENDS_perl-module-cpan += "perl-module-config"
-RDEPENDS_perl-module-cpan += "perl-module-cwd"
-RDEPENDS_perl-module-cpan += "perl-module-data-dumper"
-RDEPENDS_perl-module-cpan += "perl-module-dirhandle"
-RDEPENDS_perl-module-cpan += "perl-module-errno"
-RDEPENDS_perl-module-cpan += "perl-module-exporter"
-RDEPENDS_perl-module-cpan += "perl-module-extutils-makemaker"
-RDEPENDS_perl-module-cpan += "perl-module-extutils-manifest"
-RDEPENDS_perl-module-cpan += "perl-module-fcntl"
-RDEPENDS_perl-module-cpan += "perl-module-file-basename"
-RDEPENDS_perl-module-cpan += "perl-module-file-copy"
-RDEPENDS_perl-module-cpan += "perl-module-file-find"
-RDEPENDS_perl-module-cpan += "perl-module-filehandle"
-RDEPENDS_perl-module-cpan += "perl-module-file-path"
-RDEPENDS_perl-module-cpan += "perl-module-lib"
-RDEPENDS_perl-module-cpan += "perl-module-net-ping"
-RDEPENDS_perl-module-cpan += "perl-module-overload"
-RDEPENDS_perl-module-cpan += "perl-module-posix"
-RDEPENDS_perl-module-cpan += "perl-module-safe"
-RDEPENDS_perl-module-cpan += "perl-module-strict"
-RDEPENDS_perl-module-cpan += "perl-module-sys-hostname"
-RDEPENDS_perl-module-cpan += "perl-module-term-readline"
-RDEPENDS_perl-module-cpan += "perl-module-text-parsewords"
-RDEPENDS_perl-module-cpan += "perl-module-text-wrap"
-RDEPENDS_perl-module-cpan += "perl-module-time-local"
-RDEPENDS_perl-module-cpan += "perl-module-vars"
-RDEPENDS_perl-module-cpan += "perl-module-warnings"
-RDEPENDS_perl-module-cwd += "perl-module-errno"
-RDEPENDS_perl-module-cwd += "perl-module-exporter"
-RDEPENDS_perl-module-cwd += "perl-module-strict"
-RDEPENDS_perl-module-cwd += "perl-module-xsloader"
-RDEPENDS_perl-module-data-dumper += "perl-module-bytes"
-RDEPENDS_perl-module-data-dumper += "perl-module-config"
-RDEPENDS_perl-module-data-dumper += "perl-module-constant"
-RDEPENDS_perl-module-data-dumper += "perl-module-exporter"
-RDEPENDS_perl-module-data-dumper += "perl-module-xsloader"
-RDEPENDS_perl-module-dbm-filter-compress += "perl-module-strict"
-RDEPENDS_perl-module-dbm-filter-compress += "perl-module-warnings"
-RDEPENDS_perl-module-dbm-filter-encode += "perl-module-strict"
-RDEPENDS_perl-module-dbm-filter-encode += "perl-module-warnings"
-RDEPENDS_perl-module-dbm-filter-int32 += "perl-module-strict"
-RDEPENDS_perl-module-dbm-filter-int32 += "perl-module-warnings"
-RDEPENDS_perl-module-dbm-filter-null += "perl-module-strict"
-RDEPENDS_perl-module-dbm-filter-null += "perl-module-warnings"
-RDEPENDS_perl-module-dbm-filter += "perl-module-strict"
-RDEPENDS_perl-module-dbm-filter += "perl-module-warnings"
-RDEPENDS_perl-module-dbm-filter-utf8 += "perl-module-strict"
-RDEPENDS_perl-module-dbm-filter-utf8 += "perl-module-warnings"
-RDEPENDS_perl-module-db += "perl-module-strict"
-RDEPENDS_perl-module-deprecate += "perl-module-strict"
-RDEPENDS_perl-module-deprecate += "perl-module-warnings"
-RDEPENDS_perl-module-devel-peek += "perl-module-exporter"
-RDEPENDS_perl-module-devel-peek += "perl-module-xsloader"
-RDEPENDS_perl-module-devel-ppport += "perl-module-file-find"
-RDEPENDS_perl-module-devel-ppport += "perl-module-getopt-long"
-RDEPENDS_perl-module-devel-ppport += "perl-module-strict"
-RDEPENDS_perl-module-devel-ppport += "perl-module-vars"
-RDEPENDS_perl-module-devel-selfstubber += "perl-module-selfloader"
-RDEPENDS_perl-module-diagnostics += "perl-module-config"
-RDEPENDS_perl-module-diagnostics += "perl-module-getopt-std"
-RDEPENDS_perl-module-diagnostics += "perl-module-strict"
-RDEPENDS_perl-module-diagnostics += "perl-module-text-tabs"
-RDEPENDS_perl-module-digest-base += "perl-module-mime-base64"
-RDEPENDS_perl-module-digest-base += "perl-module-strict"
-RDEPENDS_perl-module-digest-base += "perl-module-vars"
-RDEPENDS_perl-module-digest-file += "perl-module-digest"
-RDEPENDS_perl-module-digest-file += "perl-module-exporter"
-RDEPENDS_perl-module-digest-file += "perl-module-strict"
-RDEPENDS_perl-module-digest-file += "perl-module-vars"
-RDEPENDS_perl-module-digest-md5 += "perl-module-digest-base"
-RDEPENDS_perl-module-digest-md5 += "perl-module-exporter"
-RDEPENDS_perl-module-digest-md5 += "perl-module-strict"
-RDEPENDS_perl-module-digest-md5 += "perl-module-vars"
-RDEPENDS_perl-module-digest-md5 += "perl-module-xsloader"
-RDEPENDS_perl-module-digest += "perl-module-strict"
-RDEPENDS_perl-module-digest += "perl-module-vars"
-RDEPENDS_perl-module-digest-sha += "perl-module-digest-base"
-RDEPENDS_perl-module-digest-sha += "perl-module-dynaloader"
-RDEPENDS_perl-module-digest-sha += "perl-module-exporter"
-RDEPENDS_perl-module-digest-sha += "perl-module-fcntl"
-RDEPENDS_perl-module-digest-sha += "perl-module-integer"
-RDEPENDS_perl-module-digest-sha += "perl-module-strict"
-RDEPENDS_perl-module-digest-sha += "perl-module-vars"
-RDEPENDS_perl-module-digest-sha += "perl-module-warnings"
-RDEPENDS_perl-module-digest-sha += "perl-module-xsloader"
-RDEPENDS_perl-module-dynaloader += "perl-module-config"
-RDEPENDS_perl-module-encode-alias += "perl-module-constant"
-RDEPENDS_perl-module-encode-alias += "perl-module-encode"
-RDEPENDS_perl-module-encode-alias += "perl-module-exporter"
-RDEPENDS_perl-module-encode-alias += "perl-module-strict"
-RDEPENDS_perl-module-encode-alias += "perl-module-warnings"
-RDEPENDS_perl-module-encode-byte += "perl-module-encode"
-RDEPENDS_perl-module-encode-byte += "perl-module-strict"
-RDEPENDS_perl-module-encode-byte += "perl-module-warnings"
-RDEPENDS_perl-module-encode-byte += "perl-module-xsloader"
-RDEPENDS_perl-module-encode-cjkconstants += "perl-module-exporter"
-RDEPENDS_perl-module-encode-cjkconstants += "perl-module-strict"
-RDEPENDS_perl-module-encode-cjkconstants += "perl-module-warnings"
-RDEPENDS_perl-module-encode-cn-hz += "perl-module-encode"
-RDEPENDS_perl-module-encode-cn-hz += "perl-module-parent"
-RDEPENDS_perl-module-encode-cn-hz += "perl-module-strict"
-RDEPENDS_perl-module-encode-cn-hz += "perl-module-utf8"
-RDEPENDS_perl-module-encode-cn-hz += "perl-module-vars"
-RDEPENDS_perl-module-encode-cn-hz += "perl-module-warnings"
-RDEPENDS_perl-module-encode-cn += "perl-module-encode"
-RDEPENDS_perl-module-encode-cn += "perl-module-encode-cn-hz"
-RDEPENDS_perl-module-encode-cn += "perl-module-strict"
-RDEPENDS_perl-module-encode-cn += "perl-module-warnings"
-RDEPENDS_perl-module-encode-cn += "perl-module-xsloader"
-RDEPENDS_perl-module-encode-config += "perl-module-strict"
-RDEPENDS_perl-module-encode-config += "perl-module-warnings"
-RDEPENDS_perl-module-encode-ebcdic += "perl-module-encode"
-RDEPENDS_perl-module-encode-ebcdic += "perl-module-strict"
-RDEPENDS_perl-module-encode-ebcdic += "perl-module-warnings"
-RDEPENDS_perl-module-encode-ebcdic += "perl-module-xsloader"
-RDEPENDS_perl-module-encode-encoder += "perl-module-constant"
-RDEPENDS_perl-module-encode-encoder += "perl-module-encode"
-RDEPENDS_perl-module-encode-encoder += "perl-module-exporter"
-RDEPENDS_perl-module-encode-encoder += "perl-module-overload"
-RDEPENDS_perl-module-encode-encoder += "perl-module-strict"
-RDEPENDS_perl-module-encode-encoder += "perl-module-warnings"
-RDEPENDS_perl-module-encode-encoding += "perl-module-constant"
-RDEPENDS_perl-module-encode-encoding += "perl-module-encode"
-RDEPENDS_perl-module-encode-encoding += "perl-module-encode-mime-name"
-RDEPENDS_perl-module-encode-encoding += "perl-module-strict"
-RDEPENDS_perl-module-encode-encoding += "perl-module-warnings"
-RDEPENDS_perl-module-encode-gsm0338 += "perl-module-encode"
-RDEPENDS_perl-module-encode-gsm0338 += "perl-module-parent"
-RDEPENDS_perl-module-encode-gsm0338 += "perl-module-strict"
-RDEPENDS_perl-module-encode-gsm0338 += "perl-module-utf8"
-RDEPENDS_perl-module-encode-gsm0338 += "perl-module-vars"
-RDEPENDS_perl-module-encode-gsm0338 += "perl-module-warnings"
-RDEPENDS_perl-module-encode-guess += "perl-module-bytes"
-RDEPENDS_perl-module-encode-guess += "perl-module-constant"
-RDEPENDS_perl-module-encode-guess += "perl-module-encode"
-RDEPENDS_perl-module-encode-guess += "perl-module-encode-unicode"
-RDEPENDS_perl-module-encode-guess += "perl-module-parent"
-RDEPENDS_perl-module-encode-guess += "perl-module-strict"
-RDEPENDS_perl-module-encode-guess += "perl-module-warnings"
-RDEPENDS_perl-module-encode-jp-h2z += "perl-module-encode-cjkconstants"
-RDEPENDS_perl-module-encode-jp-h2z += "perl-module-strict"
-RDEPENDS_perl-module-encode-jp-h2z += "perl-module-vars"
-RDEPENDS_perl-module-encode-jp-h2z += "perl-module-warnings"
-RDEPENDS_perl-module-encode-jp-jis7 += "perl-module-bytes"
-RDEPENDS_perl-module-encode-jp-jis7 += "perl-module-encode"
-RDEPENDS_perl-module-encode-jp-jis7 += "perl-module-encode-cjkconstants"
-RDEPENDS_perl-module-encode-jp-jis7 += "perl-module-encode-jp-h2z"
-RDEPENDS_perl-module-encode-jp-jis7 += "perl-module-parent"
-RDEPENDS_perl-module-encode-jp-jis7 += "perl-module-strict"
-RDEPENDS_perl-module-encode-jp-jis7 += "perl-module-warnings"
-RDEPENDS_perl-module-encode-jp += "perl-module-encode"
-RDEPENDS_perl-module-encode-jp += "perl-module-encode-jp-jis7"
-RDEPENDS_perl-module-encode-jp += "perl-module-strict"
-RDEPENDS_perl-module-encode-jp += "perl-module-warnings"
-RDEPENDS_perl-module-encode-jp += "perl-module-xsloader"
-RDEPENDS_perl-module-encode-kr-2022-kr += "perl-module-encode"
-RDEPENDS_perl-module-encode-kr-2022-kr += "perl-module-encode-cjkconstants"
-RDEPENDS_perl-module-encode-kr-2022-kr += "perl-module-parent"
-RDEPENDS_perl-module-encode-kr-2022-kr += "perl-module-strict"
-RDEPENDS_perl-module-encode-kr-2022-kr += "perl-module-warnings"
-RDEPENDS_perl-module-encode-kr += "perl-module-encode"
-RDEPENDS_perl-module-encode-kr += "perl-module-encode-kr-2022-kr"
-RDEPENDS_perl-module-encode-kr += "perl-module-strict"
-RDEPENDS_perl-module-encode-kr += "perl-module-warnings"
-RDEPENDS_perl-module-encode-kr += "perl-module-xsloader"
-RDEPENDS_perl-module-encode-mime-header-iso-2022-jp += "perl-module-constant"
-RDEPENDS_perl-module-encode-mime-header-iso-2022-jp += "perl-module-encode-cjkconstants"
-RDEPENDS_perl-module-encode-mime-header-iso-2022-jp += "perl-module-parent"
-RDEPENDS_perl-module-encode-mime-header-iso-2022-jp += "perl-module-strict"
-RDEPENDS_perl-module-encode-mime-header-iso-2022-jp += "perl-module-warnings"
-RDEPENDS_perl-module-encode-mime-header += "perl-module-encode"
-RDEPENDS_perl-module-encode-mime-header += "perl-module-mime-base64"
-RDEPENDS_perl-module-encode-mime-header += "perl-module-parent"
-RDEPENDS_perl-module-encode-mime-header += "perl-module-strict"
-RDEPENDS_perl-module-encode-mime-header += "perl-module-warnings"
-RDEPENDS_perl-module-encode-mime-name += "perl-module-strict"
-RDEPENDS_perl-module-encode-mime-name += "perl-module-warnings"
-RDEPENDS_perl-module-encode += "perl-module-bytes"
-RDEPENDS_perl-module-encode += "perl-module-constant"
-RDEPENDS_perl-module-encode += "perl-module-encode-alias"
-RDEPENDS_perl-module-encode += "perl-module-encode-config"
-RDEPENDS_perl-module-encode += "perl-module-encode-configlocal-pm"
-RDEPENDS_perl-module-encode += "perl-module-encode-mime-name"
-RDEPENDS_perl-module-encode += "perl-module-exporter"
-RDEPENDS_perl-module-encode += "perl-module-parent"
-RDEPENDS_perl-module-encode += "perl-module-storable"
-RDEPENDS_perl-module-encode += "perl-module-strict"
-RDEPENDS_perl-module-encode += "perl-module-warnings"
-RDEPENDS_perl-module-encode += "perl-module-xsloader"
-RDEPENDS_perl-module-encode-symbol += "perl-module-encode"
-RDEPENDS_perl-module-encode-symbol += "perl-module-strict"
-RDEPENDS_perl-module-encode-symbol += "perl-module-warnings"
-RDEPENDS_perl-module-encode-symbol += "perl-module-xsloader"
-RDEPENDS_perl-module-encode-tw += "perl-module-encode"
-RDEPENDS_perl-module-encode-tw += "perl-module-strict"
-RDEPENDS_perl-module-encode-tw += "perl-module-warnings"
-RDEPENDS_perl-module-encode-tw += "perl-module-xsloader"
-RDEPENDS_perl-module-encode-unicode += "perl-module-encode"
-RDEPENDS_perl-module-encode-unicode += "perl-module-parent"
-RDEPENDS_perl-module-encode-unicode += "perl-module-strict"
-RDEPENDS_perl-module-encode-unicode += "perl-module-warnings"
-RDEPENDS_perl-module-encode-unicode += "perl-module-xsloader"
-RDEPENDS_perl-module-encode-unicode-utf7 += "perl-module-encode"
-RDEPENDS_perl-module-encode-unicode-utf7 += "perl-module-mime-base64"
-RDEPENDS_perl-module-encode-unicode-utf7 += "perl-module-parent"
-RDEPENDS_perl-module-encode-unicode-utf7 += "perl-module-re"
-RDEPENDS_perl-module-encode-unicode-utf7 += "perl-module-strict"
-RDEPENDS_perl-module-encode-unicode-utf7 += "perl-module-warnings"
-RDEPENDS_perl-module-encoding += "perl-module-config"
-RDEPENDS_perl-module-encoding += "perl-module-constant"
-RDEPENDS_perl-module-encoding += "perl-module-encode"
-RDEPENDS_perl-module-encoding += "perl-module-filter-util-call"
-RDEPENDS_perl-module-encoding += "perl-module-i18n-langinfo"
-RDEPENDS_perl-module-encoding += "perl-module-posix"
-RDEPENDS_perl-module-encoding += "perl-module-strict"
-RDEPENDS_perl-module-encoding += "perl-module-utf8"
-RDEPENDS_perl-module-encoding += "perl-module-warnings"
-RDEPENDS_perl-module-encoding-warnings += "perl-module-strict"
-RDEPENDS_perl-module-encoding-warnings += "perl-module-warnings"
-RDEPENDS_perl-module-english += "perl-module-exporter"
-RDEPENDS_perl-module-env += "perl-module-config"
-RDEPENDS_perl-module-env += "perl-module-tie-array"
-RDEPENDS_perl-module-errno += "perl-module-exporter"
-RDEPENDS_perl-module-errno += "perl-module-strict"
-RDEPENDS_perl-module-experimental += "perl-module-strict"
-RDEPENDS_perl-module-experimental += "perl-module-version"
-RDEPENDS_perl-module-experimental += "perl-module-warnings"
-RDEPENDS_perl-module-exporter-heavy += "perl-module-exporter"
-RDEPENDS_perl-module-exporter-heavy += "perl-module-strict"
-RDEPENDS_perl-module-exporter += "perl-module-exporter-heavy"
-RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-config"
-RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-cwd"
-RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-dynaloader"
-RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-extutils-mksymlists"
-RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-file-basename"
-RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-file-temp"
-RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-ipc-cmd"
-RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-strict"
-RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-text-parsewords"
-RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-warnings"
-RDEPENDS_perl-module-extutils-cbuilder += "perl-module-extutils-cbuilder-base"
-RDEPENDS_perl-module-extutils-cbuilder += "perl-module-file-basename"
-RDEPENDS_perl-module-extutils-cbuilder += "perl-module-file-path"
-RDEPENDS_perl-module-extutils-cbuilder += "perl-module-strict"
-RDEPENDS_perl-module-extutils-cbuilder += "perl-module-warnings"
-RDEPENDS_perl-module-extutils-cbuilder-platform-aix += "perl-module-extutils-cbuilder-platform-unix"
-RDEPENDS_perl-module-extutils-cbuilder-platform-aix += "perl-module-strict"
-RDEPENDS_perl-module-extutils-cbuilder-platform-aix += "perl-module-warnings"
-RDEPENDS_perl-module-extutils-cbuilder-platform-android += "perl-module-config"
-RDEPENDS_perl-module-extutils-cbuilder-platform-android += "perl-module-extutils-cbuilder-platform-unix"
-RDEPENDS_perl-module-extutils-cbuilder-platform-android += "perl-module-strict"
-RDEPENDS_perl-module-extutils-cbuilder-platform-android += "perl-module-warnings"
-RDEPENDS_perl-module-extutils-cbuilder-platform-cygwin += "perl-module-extutils-cbuilder-platform-unix"
-RDEPENDS_perl-module-extutils-cbuilder-platform-cygwin += "perl-module-strict"
-RDEPENDS_perl-module-extutils-cbuilder-platform-cygwin += "perl-module-warnings"
-RDEPENDS_perl-module-extutils-cbuilder-platform-darwin += "perl-module-extutils-cbuilder-platform-unix"
-RDEPENDS_perl-module-extutils-cbuilder-platform-darwin += "perl-module-strict"
-RDEPENDS_perl-module-extutils-cbuilder-platform-darwin += "perl-module-warnings"
-RDEPENDS_perl-module-extutils-cbuilder-platform-dec-osf += "perl-module-extutils-cbuilder-platform-unix"
-RDEPENDS_perl-module-extutils-cbuilder-platform-dec-osf += "perl-module-strict"
-RDEPENDS_perl-module-extutils-cbuilder-platform-dec-osf += "perl-module-warnings"
-RDEPENDS_perl-module-extutils-cbuilder-platform-os2 += "perl-module-extutils-cbuilder-platform-unix"
-RDEPENDS_perl-module-extutils-cbuilder-platform-os2 += "perl-module-strict"
-RDEPENDS_perl-module-extutils-cbuilder-platform-os2 += "perl-module-warnings"
-RDEPENDS_perl-module-extutils-cbuilder-platform-unix += "perl-module-extutils-cbuilder-base"
-RDEPENDS_perl-module-extutils-cbuilder-platform-unix += "perl-module-strict"
-RDEPENDS_perl-module-extutils-cbuilder-platform-unix += "perl-module-warnings"
-RDEPENDS_perl-module-extutils-cbuilder-platform-vms += "perl-module-config"
-RDEPENDS_perl-module-extutils-cbuilder-platform-vms += "perl-module-extutils-cbuilder-base"
-RDEPENDS_perl-module-extutils-cbuilder-platform-vms += "perl-module-strict"
-RDEPENDS_perl-module-extutils-cbuilder-platform-vms += "perl-module-warnings"
-RDEPENDS_perl-module-extutils-cbuilder-platform-windows-bcc += "perl-module-strict"
-RDEPENDS_perl-module-extutils-cbuilder-platform-windows-bcc += "perl-module-warnings"
-RDEPENDS_perl-module-extutils-cbuilder-platform-windows-gcc += "perl-module-strict"
-RDEPENDS_perl-module-extutils-cbuilder-platform-windows-gcc += "perl-module-warnings"
-RDEPENDS_perl-module-extutils-cbuilder-platform-windows-msvc += "perl-module-strict"
-RDEPENDS_perl-module-extutils-cbuilder-platform-windows-msvc += "perl-module-warnings"
-RDEPENDS_perl-module-extutils-cbuilder-platform-windows += "perl-module-extutils-cbuilder-base"
-RDEPENDS_perl-module-extutils-cbuilder-platform-windows += "perl-module-file-basename"
-RDEPENDS_perl-module-extutils-cbuilder-platform-windows += "perl-module-io-file"
-RDEPENDS_perl-module-extutils-cbuilder-platform-windows += "perl-module-strict"
-RDEPENDS_perl-module-extutils-cbuilder-platform-windows += "perl-module-warnings"
-RDEPENDS_perl-module-extutils-command-mm += "perl-module-exporter"
-RDEPENDS_perl-module-extutils-command-mm += "perl-module-extutils-command"
-RDEPENDS_perl-module-extutils-command-mm += "perl-module-extutils-install"
-RDEPENDS_perl-module-extutils-command-mm += "perl-module-getopt-long"
-RDEPENDS_perl-module-extutils-command-mm += "perl-module-strict"
-RDEPENDS_perl-module-extutils-command-mm += "perl-module-test-harness"
-RDEPENDS_perl-module-extutils-command-mm += "perl-module-warnings"
-RDEPENDS_perl-module-extutils-command += "perl-module-exporter"
-RDEPENDS_perl-module-extutils-command += "perl-module-file-copy"
-RDEPENDS_perl-module-extutils-command += "perl-module-file-find"
-RDEPENDS_perl-module-extutils-command += "perl-module-file-path"
-RDEPENDS_perl-module-extutils-command += "perl-module-strict"
-RDEPENDS_perl-module-extutils-command += "perl-module-vars"
-RDEPENDS_perl-module-extutils-constant-base += "perl-module-constant"
-RDEPENDS_perl-module-extutils-constant-base += "perl-module-extutils-constant-utils"
-RDEPENDS_perl-module-extutils-constant-base += "perl-module-strict"
-RDEPENDS_perl-module-extutils-constant-base += "perl-module-text-wrap"
-RDEPENDS_perl-module-extutils-constant-base += "perl-module-vars"
-RDEPENDS_perl-module-extutils-constant += "perl-module-exporter"
-RDEPENDS_perl-module-extutils-constant += "perl-module-extutils-constant-proxysubs"
-RDEPENDS_perl-module-extutils-constant += "perl-module-extutils-constant-utils"
-RDEPENDS_perl-module-extutils-constant += "perl-module-extutils-constant-xs"
-RDEPENDS_perl-module-extutils-constant += "perl-module-filehandle"
-RDEPENDS_perl-module-extutils-constant += "perl-module-strict"
-RDEPENDS_perl-module-extutils-constant += "perl-module-vars"
-RDEPENDS_perl-module-extutils-constant-proxysubs += "perl-module-extutils-constant-utils"
-RDEPENDS_perl-module-extutils-constant-proxysubs += "perl-module-extutils-constant-xs"
-RDEPENDS_perl-module-extutils-constant-proxysubs += "perl-module-strict"
-RDEPENDS_perl-module-extutils-constant-proxysubs += "perl-module-vars"
-RDEPENDS_perl-module-extutils-constant-utils += "perl-module-constant"
-RDEPENDS_perl-module-extutils-constant-utils += "perl-module-posix"
-RDEPENDS_perl-module-extutils-constant-utils += "perl-module-strict"
-RDEPENDS_perl-module-extutils-constant-utils += "perl-module-vars"
-RDEPENDS_perl-module-extutils-constant-xs += "perl-module-data-dumper"
-RDEPENDS_perl-module-extutils-constant-xs += "perl-module-extutils-constant"
-RDEPENDS_perl-module-extutils-constant-xs += "perl-module-extutils-constant-base"
-RDEPENDS_perl-module-extutils-constant-xs += "perl-module-extutils-constant-utils"
-RDEPENDS_perl-module-extutils-constant-xs += "perl-module-strict"
-RDEPENDS_perl-module-extutils-constant-xs += "perl-module-vars"
-RDEPENDS_perl-module-extutils-embed += "perl-module-config"
-RDEPENDS_perl-module-extutils-embed += "perl-module-exporter"
-RDEPENDS_perl-module-extutils-embed += "perl-module-extutils-liblist"
-RDEPENDS_perl-module-extutils-embed += "perl-module-extutils-makemaker"
-RDEPENDS_perl-module-extutils-embed += "perl-module-getopt-std"
-RDEPENDS_perl-module-extutils-embed += "perl-module-strict"
-RDEPENDS_perl-module-extutils-installed += "perl-module-config"
-RDEPENDS_perl-module-extutils-installed += "perl-module-data-dumper"
-RDEPENDS_perl-module-extutils-installed += "perl-module-extutils-makemaker"
-RDEPENDS_perl-module-extutils-installed += "perl-module-extutils-packlist"
-RDEPENDS_perl-module-extutils-installed += "perl-module-file-basename"
-RDEPENDS_perl-module-extutils-installed += "perl-module-file-find"
-RDEPENDS_perl-module-extutils-installed += "perl-module-strict"
-RDEPENDS_perl-module-extutils-installed += "perl-module-vars"
-RDEPENDS_perl-module-extutils-install += "perl-module-autosplit"
-RDEPENDS_perl-module-extutils-install += "perl-module-config"
-RDEPENDS_perl-module-extutils-install += "perl-module-cwd"
-RDEPENDS_perl-module-extutils-install += "perl-module-exporter"
-RDEPENDS_perl-module-extutils-install += "perl-module-extutils-packlist"
-RDEPENDS_perl-module-extutils-install += "perl-module-file-basename"
-RDEPENDS_perl-module-extutils-install += "perl-module-file-compare"
-RDEPENDS_perl-module-extutils-install += "perl-module-file-copy"
-RDEPENDS_perl-module-extutils-install += "perl-module-file-find"
-RDEPENDS_perl-module-extutils-install += "perl-module-file-path"
-RDEPENDS_perl-module-extutils-install += "perl-module-strict"
-RDEPENDS_perl-module-extutils-liblist-kid += "perl-module-cwd"
-RDEPENDS_perl-module-extutils-liblist-kid += "perl-module-extutils-makemaker-config"
-RDEPENDS_perl-module-extutils-liblist-kid += "perl-module-file-basename"
-RDEPENDS_perl-module-extutils-liblist-kid += "perl-module-strict"
-RDEPENDS_perl-module-extutils-liblist-kid += "perl-module-text-parsewords"
-RDEPENDS_perl-module-extutils-liblist-kid += "perl-module-warnings"
-RDEPENDS_perl-module-extutils-liblist += "perl-module-extutils-liblist-kid"
-RDEPENDS_perl-module-extutils-liblist += "perl-module-strict"
-RDEPENDS_perl-module-extutils-makemaker-config += "perl-module-config"
-RDEPENDS_perl-module-extutils-makemaker-config += "perl-module-strict"
-RDEPENDS_perl-module-extutils-makemaker-locale += "perl-module-base"
-RDEPENDS_perl-module-extutils-makemaker-locale += "perl-module-encode"
-RDEPENDS_perl-module-extutils-makemaker-locale += "perl-module-encode-alias"
-RDEPENDS_perl-module-extutils-makemaker-locale += "perl-module-i18n-langinfo"
-RDEPENDS_perl-module-extutils-makemaker-locale += "perl-module-strict"
-RDEPENDS_perl-module-extutils-makemaker += "perl-module-b"
-RDEPENDS_perl-module-extutils-makemaker += "perl-module-cpan"
-RDEPENDS_perl-module-extutils-makemaker += "perl-module-cwd"
-RDEPENDS_perl-module-extutils-makemaker += "perl-module-exporter"
-RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-makemaker-config"
-RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-makemaker-version"
-RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-manifest"
-RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-mm"
-RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-my"
-RDEPENDS_perl-module-extutils-makemaker += "perl-module-file-path"
-RDEPENDS_perl-module-extutils-makemaker += "perl-module-strict"
-RDEPENDS_perl-module-extutils-makemaker += "perl-module-version"
-RDEPENDS_perl-module-extutils-makemaker-version += "perl-module-strict"
-RDEPENDS_perl-module-extutils-makemaker-version += "perl-module-vars"
-RDEPENDS_perl-module-extutils-manifest += "perl-module-config"
-RDEPENDS_perl-module-extutils-manifest += "perl-module-exporter"
-RDEPENDS_perl-module-extutils-manifest += "perl-module-file-basename"
-RDEPENDS_perl-module-extutils-manifest += "perl-module-file-copy"
-RDEPENDS_perl-module-extutils-manifest += "perl-module-file-find"
-RDEPENDS_perl-module-extutils-manifest += "perl-module-file-path"
-RDEPENDS_perl-module-extutils-manifest += "perl-module-strict"
-RDEPENDS_perl-module-extutils-manifest += "perl-module-warnings"
-RDEPENDS_perl-module-extutils-miniperl += "perl-module-exporter"
-RDEPENDS_perl-module-extutils-miniperl += "perl-module-extutils-embed"
-RDEPENDS_perl-module-extutils-miniperl += "perl-module-strict"
-RDEPENDS_perl-module-extutils-mkbootstrap += "perl-module-config"
-RDEPENDS_perl-module-extutils-mkbootstrap += "perl-module-dynaloader"
-RDEPENDS_perl-module-extutils-mkbootstrap += "perl-module-exporter"
-RDEPENDS_perl-module-extutils-mkbootstrap += "perl-module-strict"
-RDEPENDS_perl-module-extutils-mksymlists += "perl-module-config"
-RDEPENDS_perl-module-extutils-mksymlists += "perl-module-exporter"
-RDEPENDS_perl-module-extutils-mksymlists += "perl-module-strict"
-RDEPENDS_perl-module-extutils-mm-aix += "perl-module-extutils-makemaker-config"
-RDEPENDS_perl-module-extutils-mm-aix += "perl-module-extutils-mm-unix"
-RDEPENDS_perl-module-extutils-mm-aix += "perl-module-strict"
-RDEPENDS_perl-module-extutils-mm-any += "perl-module-autosplit"
-RDEPENDS_perl-module-extutils-mm-any += "perl-module-cpan"
-RDEPENDS_perl-module-extutils-mm-any += "perl-module-data-dumper"
-RDEPENDS_perl-module-extutils-mm-any += "perl-module-extutils-makemaker"
-RDEPENDS_perl-module-extutils-mm-any += "perl-module-extutils-makemaker-config"
-RDEPENDS_perl-module-extutils-mm-any += "perl-module-file-basename"
-RDEPENDS_perl-module-extutils-mm-any += "perl-module-file-find"
-RDEPENDS_perl-module-extutils-mm-any += "perl-module-strict"
-RDEPENDS_perl-module-extutils-mm-any += "perl-module-version"
-RDEPENDS_perl-module-extutils-mm-beos += "perl-module-extutils-makemaker-config"
-RDEPENDS_perl-module-extutils-mm-beos += "perl-module-extutils-mm-any"
-RDEPENDS_perl-module-extutils-mm-beos += "perl-module-extutils-mm-unix"
-RDEPENDS_perl-module-extutils-mm-beos += "perl-module-strict"
-RDEPENDS_perl-module-extutils-mm-cygwin += "perl-module-extutils-makemaker-config"
-RDEPENDS_perl-module-extutils-mm-cygwin += "perl-module-extutils-mm-unix"
-RDEPENDS_perl-module-extutils-mm-cygwin += "perl-module-extutils-mm-win32"
-RDEPENDS_perl-module-extutils-mm-cygwin += "perl-module-strict"
-RDEPENDS_perl-module-extutils-mm-darwin += "perl-module-extutils-mm-unix"
-RDEPENDS_perl-module-extutils-mm-darwin += "perl-module-strict"
-RDEPENDS_perl-module-extutils-mm-dos += "perl-module-extutils-mm-any"
-RDEPENDS_perl-module-extutils-mm-dos += "perl-module-extutils-mm-unix"
-RDEPENDS_perl-module-extutils-mm-dos += "perl-module-strict"
-RDEPENDS_perl-module-extutils-mm-macos += "perl-module-strict"
-RDEPENDS_perl-module-extutils-mm-nw5 += "perl-module-extutils-makemaker"
-RDEPENDS_perl-module-extutils-mm-nw5 += "perl-module-extutils-makemaker-config"
-RDEPENDS_perl-module-extutils-mm-nw5 += "perl-module-extutils-mm-win32"
-RDEPENDS_perl-module-extutils-mm-nw5 += "perl-module-file-basename"
-RDEPENDS_perl-module-extutils-mm-nw5 += "perl-module-strict"
-RDEPENDS_perl-module-extutils-mm-os2 += "perl-module-extutils-makemaker"
-RDEPENDS_perl-module-extutils-mm-os2 += "perl-module-extutils-mm-any"
-RDEPENDS_perl-module-extutils-mm-os2 += "perl-module-extutils-mm-unix"
-RDEPENDS_perl-module-extutils-mm-os2 += "perl-module-strict"
-RDEPENDS_perl-module-extutils-mm += "perl-module-extutils-liblist"
-RDEPENDS_perl-module-extutils-mm += "perl-module-extutils-makemaker"
-RDEPENDS_perl-module-extutils-mm += "perl-module-extutils-makemaker-config"
-RDEPENDS_perl-module-extutils-mm += "perl-module-strict"
-RDEPENDS_perl-module-extutils-mm-qnx += "perl-module-extutils-mm-unix"
-RDEPENDS_perl-module-extutils-mm-qnx += "perl-module-strict"
-RDEPENDS_perl-module-extutils-mm-unix += "perl-module-cwd"
-RDEPENDS_perl-module-extutils-mm-unix += "perl-module-encode"
-RDEPENDS_perl-module-extutils-mm-unix += "perl-module-extutils-liblist"
-RDEPENDS_perl-module-extutils-mm-unix += "perl-module-extutils-makemaker"
-RDEPENDS_perl-module-extutils-mm-unix += "perl-module-extutils-makemaker-config"
-RDEPENDS_perl-module-extutils-mm-unix += "perl-module-extutils-mm-any"
-RDEPENDS_perl-module-extutils-mm-unix += "perl-module-file-basename"
-RDEPENDS_perl-module-extutils-mm-unix += "perl-module-file-find"
-RDEPENDS_perl-module-extutils-mm-unix += "perl-module-strict"
-RDEPENDS_perl-module-extutils-mm-unix += "perl-module-vars"
-RDEPENDS_perl-module-extutils-mm-unix += "perl-module-version"
-RDEPENDS_perl-module-extutils-mm-uwin += "perl-module-extutils-mm-unix"
-RDEPENDS_perl-module-extutils-mm-uwin += "perl-module-strict"
-RDEPENDS_perl-module-extutils-mm-vms += "perl-module-exporter"
-RDEPENDS_perl-module-extutils-mm-vms += "perl-module-extutils-liblist-kid"
-RDEPENDS_perl-module-extutils-mm-vms += "perl-module-extutils-makemaker"
-RDEPENDS_perl-module-extutils-mm-vms += "perl-module-extutils-makemaker-config"
-RDEPENDS_perl-module-extutils-mm-vms += "perl-module-extutils-mm-any"
-RDEPENDS_perl-module-extutils-mm-vms += "perl-module-extutils-mm-unix"
-RDEPENDS_perl-module-extutils-mm-vms += "perl-module-file-basename"
-RDEPENDS_perl-module-extutils-mm-vms += "perl-module-file-find"
-RDEPENDS_perl-module-extutils-mm-vms += "perl-module-strict"
-RDEPENDS_perl-module-extutils-mm-vos += "perl-module-extutils-mm-unix"
-RDEPENDS_perl-module-extutils-mm-vos += "perl-module-strict"
-RDEPENDS_perl-module-extutils-mm-win32 += "perl-module-extutils-makemaker"
-RDEPENDS_perl-module-extutils-mm-win32 += "perl-module-extutils-makemaker-config"
-RDEPENDS_perl-module-extutils-mm-win32 += "perl-module-extutils-mm-any"
-RDEPENDS_perl-module-extutils-mm-win32 += "perl-module-extutils-mm-unix"
-RDEPENDS_perl-module-extutils-mm-win32 += "perl-module-file-basename"
-RDEPENDS_perl-module-extutils-mm-win32 += "perl-module-strict"
-RDEPENDS_perl-module-extutils-mm-win95 += "perl-module-extutils-makemaker-config"
-RDEPENDS_perl-module-extutils-mm-win95 += "perl-module-extutils-mm-win32"
-RDEPENDS_perl-module-extutils-mm-win95 += "perl-module-strict"
-RDEPENDS_perl-module-extutils-my += "perl-module-extutils-mm"
-RDEPENDS_perl-module-extutils-my += "perl-module-strict"
-RDEPENDS_perl-module-extutils-packlist += "perl-module-config"
-RDEPENDS_perl-module-extutils-packlist += "perl-module-cwd"
-RDEPENDS_perl-module-extutils-packlist += "perl-module-strict"
-RDEPENDS_perl-module-extutils-packlist += "perl-module-vars"
-RDEPENDS_perl-module-extutils-parsexs-constants += "perl-module-strict"
-RDEPENDS_perl-module-extutils-parsexs-constants += "perl-module-warnings"
-RDEPENDS_perl-module-extutils-parsexs-countlines += "perl-module-strict"
-RDEPENDS_perl-module-extutils-parsexs-eval += "perl-module-strict"
-RDEPENDS_perl-module-extutils-parsexs-eval += "perl-module-warnings"
-RDEPENDS_perl-module-extutils-parsexs += "perl-module-config"
-RDEPENDS_perl-module-extutils-parsexs += "perl-module-cwd"
-RDEPENDS_perl-module-extutils-parsexs += "perl-module-exporter"
-RDEPENDS_perl-module-extutils-parsexs += "perl-module-extutils-parsexs-constants"
-RDEPENDS_perl-module-extutils-parsexs += "perl-module-extutils-parsexs-countlines"
-RDEPENDS_perl-module-extutils-parsexs += "perl-module-extutils-parsexs-eval"
-RDEPENDS_perl-module-extutils-parsexs += "perl-module-extutils-parsexs-utilities"
-RDEPENDS_perl-module-extutils-parsexs += "perl-module-file-basename"
-RDEPENDS_perl-module-extutils-parsexs += "perl-module-re"
-RDEPENDS_perl-module-extutils-parsexs += "perl-module-strict"
-RDEPENDS_perl-module-extutils-parsexs-utilities += "perl-module-exporter"
-RDEPENDS_perl-module-extutils-parsexs-utilities += "perl-module-extutils-parsexs-constants"
-RDEPENDS_perl-module-extutils-parsexs-utilities += "perl-module-extutils-typemaps"
-RDEPENDS_perl-module-extutils-parsexs-utilities += "perl-module-strict"
-RDEPENDS_perl-module-extutils-parsexs-utilities += "perl-module-warnings"
-RDEPENDS_perl-module-extutils-testlib += "perl-module-cwd"
-RDEPENDS_perl-module-extutils-testlib += "perl-module-lib"
-RDEPENDS_perl-module-extutils-testlib += "perl-module-strict"
-RDEPENDS_perl-module-extutils-testlib += "perl-module-warnings"
-RDEPENDS_perl-module-extutils-typemaps-cmd += "perl-module-exporter"
-RDEPENDS_perl-module-extutils-typemaps-cmd += "perl-module-extutils-typemaps"
-RDEPENDS_perl-module-extutils-typemaps-cmd += "perl-module-strict"
-RDEPENDS_perl-module-extutils-typemaps-cmd += "perl-module-warnings"
-RDEPENDS_perl-module-extutils-typemaps-inputmap += "perl-module-strict"
-RDEPENDS_perl-module-extutils-typemaps-inputmap += "perl-module-warnings"
-RDEPENDS_perl-module-extutils-typemaps-outputmap += "perl-module-re"
-RDEPENDS_perl-module-extutils-typemaps-outputmap += "perl-module-strict"
-RDEPENDS_perl-module-extutils-typemaps-outputmap += "perl-module-warnings"
-RDEPENDS_perl-module-extutils-typemaps += "perl-module-extutils-parsexs"
-RDEPENDS_perl-module-extutils-typemaps += "perl-module-extutils-parsexs-constants"
-RDEPENDS_perl-module-extutils-typemaps += "perl-module-extutils-typemaps-inputmap"
-RDEPENDS_perl-module-extutils-typemaps += "perl-module-extutils-typemaps-outputmap"
-RDEPENDS_perl-module-extutils-typemaps += "perl-module-extutils-typemaps-type"
-RDEPENDS_perl-module-extutils-typemaps += "perl-module-strict"
-RDEPENDS_perl-module-extutils-typemaps += "perl-module-warnings"
-RDEPENDS_perl-module-extutils-typemaps-type += "perl-module-extutils-typemaps"
-RDEPENDS_perl-module-extutils-typemaps-type += "perl-module-strict"
-RDEPENDS_perl-module-extutils-typemaps-type += "perl-module-warnings"
-RDEPENDS_perl-module-fatal += "perl-module-autodie"
-RDEPENDS_perl-module-fatal += "perl-module-autodie-exception-system"
-RDEPENDS_perl-module-fatal += "perl-module-autodie-hints"
-RDEPENDS_perl-module-fatal += "perl-module-autodie-util"
-RDEPENDS_perl-module-fatal += "perl-module-config"
-RDEPENDS_perl-module-fatal += "perl-module-constant"
-RDEPENDS_perl-module-fatal += "perl-module-fcntl"
-RDEPENDS_perl-module-fatal += "perl-module-posix"
-RDEPENDS_perl-module-fatal += "perl-module-strict"
-RDEPENDS_perl-module-fatal += "perl-module-tie-refhash"
-RDEPENDS_perl-module-fatal += "perl-module-warnings"
-RDEPENDS_perl-module-fcntl += "perl-module-exporter"
-RDEPENDS_perl-module-fcntl += "perl-module-strict"
-RDEPENDS_perl-module-fcntl += "perl-module-xsloader"
-RDEPENDS_perl-module-fields += "perl-module-base"
-RDEPENDS_perl-module-fields += "perl-module-hash-util"
-RDEPENDS_perl-module-fields += "perl-module-strict"
-RDEPENDS_perl-module-file-basename += "perl-module-exporter"
-RDEPENDS_perl-module-file-basename += "perl-module-re"
-RDEPENDS_perl-module-file-basename += "perl-module-strict"
-RDEPENDS_perl-module-file-basename += "perl-module-warnings"
-RDEPENDS_perl-module-filecache += "perl-module-parent"
-RDEPENDS_perl-module-filecache += "perl-module-strict"
-RDEPENDS_perl-module-file-compare += "perl-module-exporter"
-RDEPENDS_perl-module-file-compare += "perl-module-strict"
-RDEPENDS_perl-module-file-compare += "perl-module-warnings"
-RDEPENDS_perl-module-file-copy += "perl-module-config"
-RDEPENDS_perl-module-file-copy += "perl-module-exporter"
-RDEPENDS_perl-module-file-copy += "perl-module-file-basename"
-RDEPENDS_perl-module-file-copy += "perl-module-strict"
-RDEPENDS_perl-module-file-copy += "perl-module-warnings"
-RDEPENDS_perl-module-file-dosglob += "perl-module-strict"
-RDEPENDS_perl-module-file-dosglob += "perl-module-text-parsewords"
-RDEPENDS_perl-module-file-dosglob += "perl-module-warnings"
-RDEPENDS_perl-module-file-dosglob += "perl-module-xsloader"
-RDEPENDS_perl-module-file-fetch += "perl-module-constant"
-RDEPENDS_perl-module-file-fetch += "perl-module-cwd"
-RDEPENDS_perl-module-file-fetch += "perl-module-file-basename"
-RDEPENDS_perl-module-file-fetch += "perl-module-file-copy"
-RDEPENDS_perl-module-file-fetch += "perl-module-filehandle"
-RDEPENDS_perl-module-file-fetch += "perl-module-file-path"
-RDEPENDS_perl-module-file-fetch += "perl-module-file-temp"
-RDEPENDS_perl-module-file-fetch += "perl-module-ipc-cmd"
-RDEPENDS_perl-module-file-fetch += "perl-module-locale-maketext-simple"
-RDEPENDS_perl-module-file-fetch += "perl-module-load"
-RDEPENDS_perl-module-file-fetch += "perl-module-params-check"
-RDEPENDS_perl-module-file-fetch += "perl-module-strict"
-RDEPENDS_perl-module-file-fetch += "perl-module-vars"
-RDEPENDS_perl-module-file-find += "perl-module-config"
-RDEPENDS_perl-module-file-find += "perl-module-cwd"
-RDEPENDS_perl-module-file-find += "perl-module-exporter"
-RDEPENDS_perl-module-file-find += "perl-module-file-basename"
-RDEPENDS_perl-module-file-find += "perl-module-strict"
-RDEPENDS_perl-module-file-find += "perl-module-warnings"
-RDEPENDS_perl-module-file-find += "perl-module-warnings-register"
-RDEPENDS_perl-module-file-globmapper += "perl-module-file-glob"
-RDEPENDS_perl-module-file-globmapper += "perl-module-strict"
-RDEPENDS_perl-module-file-globmapper += "perl-module-warnings"
-RDEPENDS_perl-module-file-glob += "perl-module-exporter"
-RDEPENDS_perl-module-file-glob += "perl-module-strict"
-RDEPENDS_perl-module-file-glob += "perl-module-warnings"
-RDEPENDS_perl-module-file-glob += "perl-module-xsloader"
-RDEPENDS_perl-module-filehandle += "perl-module-exporter"
-RDEPENDS_perl-module-filehandle += "perl-module-fcntl"
-RDEPENDS_perl-module-filehandle += "perl-module-io-file"
-RDEPENDS_perl-module-filehandle += "perl-module-strict"
-RDEPENDS_perl-module-file-path += "perl-module-cwd"
-RDEPENDS_perl-module-file-path += "perl-module-exporter"
-RDEPENDS_perl-module-file-path += "perl-module-file-basename"
-RDEPENDS_perl-module-file-path += "perl-module-strict"
-RDEPENDS_perl-module-file-path += "perl-module-vars"
-RDEPENDS_perl-module-file-spec += "perl-module-constant"
-RDEPENDS_perl-module-file-spec += "perl-module-cwd"
-RDEPENDS_perl-module-file-spec += "perl-module-strict"
-RDEPENDS_perl-module-file-spec += "perl-module-file-spec-unix"
-RDEPENDS_perl-module-file-stat += "perl-module-class-struct"
-RDEPENDS_perl-module-file-stat += "perl-module-constant"
-RDEPENDS_perl-module-file-stat += "perl-module-exporter"
-RDEPENDS_perl-module-file-stat += "perl-module-fcntl"
-RDEPENDS_perl-module-file-stat += "perl-module-overload "
-RDEPENDS_perl-module-file-stat += "perl-module-strict"
-RDEPENDS_perl-module-file-stat += "perl-module-warnings"
-RDEPENDS_perl-module-file-stat += "perl-module-warnings-register"
-RDEPENDS_perl-module-file-temp += "perl-module-carp"
-RDEPENDS_perl-module-file-temp += "perl-module-constant"
-RDEPENDS_perl-module-file-temp += "perl-module-cwd"
-RDEPENDS_perl-module-file-temp += "perl-module-errno"
-RDEPENDS_perl-module-file-temp += "perl-module-exporter"
-RDEPENDS_perl-module-file-temp += "perl-module-fcntl"
-RDEPENDS_perl-module-file-temp += "perl-module-file-path"
-RDEPENDS_perl-module-file-temp += "perl-module-file-spec"
-RDEPENDS_perl-module-file-temp += "perl-module-io-seekable"
-RDEPENDS_perl-module-file-temp += "perl-module-overload"
-RDEPENDS_perl-module-file-temp += "perl-module-parent"
-RDEPENDS_perl-module-file-temp += "perl-module-posix"
-RDEPENDS_perl-module-file-temp += "perl-module-scalar-util"
-RDEPENDS_perl-module-file-temp += "perl-module-strict"
-RDEPENDS_perl-module-file-temp += "perl-module-vars"
-RDEPENDS_perl-module-filter-simple += "perl-module-filter-util-call"
-RDEPENDS_perl-module-filter-simple += "perl-module-text-balanced"
-RDEPENDS_perl-module-filter-util-call += "perl-module-exporter"
-RDEPENDS_perl-module-filter-util-call += "perl-module-strict"
-RDEPENDS_perl-module-filter-util-call += "perl-module-warnings"
-RDEPENDS_perl-module-filter-util-call += "perl-module-xsloader"
-RDEPENDS_perl-module-findbin += "perl-module-cwd"
-RDEPENDS_perl-module-findbin += "perl-module-exporter"
-RDEPENDS_perl-module-findbin += "perl-module-file-basename"
-RDEPENDS_perl-module-getopt-long += "perl-module-constant"
-RDEPENDS_perl-module-getopt-long += "perl-module-exporter"
-RDEPENDS_perl-module-getopt-long += "perl-module-overload"
-RDEPENDS_perl-module-getopt-long += "perl-module-pod-usage"
-RDEPENDS_perl-module-getopt-long += "perl-module-strict"
-RDEPENDS_perl-module-getopt-long += "perl-module-text-parsewords"
-RDEPENDS_perl-module-getopt-long += "perl-module-vars"
-RDEPENDS_perl-module-getopt-long += "perl-module-warnings"
-RDEPENDS_perl-module-getopt-std += "perl-module-exporter"
-RDEPENDS_perl-module-hash-util-fieldhash += "perl-module-exporter"
-RDEPENDS_perl-module-hash-util-fieldhash += "perl-module-strict"
-RDEPENDS_perl-module-hash-util-fieldhash += "perl-module-warnings"
-RDEPENDS_perl-module-hash-util-fieldhash += "perl-module-xsloader"
-RDEPENDS_perl-module-hash-util += "perl-module-exporter"
-RDEPENDS_perl-module-hash-util += "perl-module-hash-util-fieldhash"
-RDEPENDS_perl-module-hash-util += "perl-module-strict"
-RDEPENDS_perl-module-hash-util += "perl-module-warnings"
-RDEPENDS_perl-module-hash-util += "perl-module-warnings-register"
-RDEPENDS_perl-module-hash-util += "perl-module-xsloader"
-RDEPENDS_perl-module-i18n-collate += "perl-module-exporter"
-RDEPENDS_perl-module-i18n-collate += "perl-module-overload"
-RDEPENDS_perl-module-i18n-collate += "perl-module-posix"
-RDEPENDS_perl-module-i18n-collate += "perl-module-strict"
-RDEPENDS_perl-module-i18n-collate += "perl-module-warnings-register"
-RDEPENDS_perl-module-i18n-langinfo += "perl-module-exporter"
-RDEPENDS_perl-module-i18n-langinfo += "perl-module-strict"
-RDEPENDS_perl-module-i18n-langinfo += "perl-module-warnings"
-RDEPENDS_perl-module-i18n-langinfo += "perl-module-xsloader"
-RDEPENDS_perl-module-i18n-langtags-detect += "perl-module-i18n-langtags"
-RDEPENDS_perl-module-i18n-langtags-detect += "perl-module-strict"
-RDEPENDS_perl-module-i18n-langtags-list += "perl-module-strict"
-RDEPENDS_perl-module-i18n-langtags += "perl-module-exporter"
-RDEPENDS_perl-module-i18n-langtags += "perl-module-strict"
-RDEPENDS_perl-module-io-compress-adapter-bzip2 += "perl-module-bytes"
-RDEPENDS_perl-module-io-compress-adapter-bzip2 += "perl-module-compress-raw-bzip2"
-RDEPENDS_perl-module-io-compress-adapter-bzip2 += "perl-module-io-compress-base-common"
-RDEPENDS_perl-module-io-compress-adapter-bzip2 += "perl-module-strict"
-RDEPENDS_perl-module-io-compress-adapter-bzip2 += "perl-module-warnings"
-RDEPENDS_perl-module-io-compress-adapter-deflate += "perl-module-bytes"
-RDEPENDS_perl-module-io-compress-adapter-deflate += "perl-module-compress-raw-zlib"
-RDEPENDS_perl-module-io-compress-adapter-deflate += "perl-module-exporter"
-RDEPENDS_perl-module-io-compress-adapter-deflate += "perl-module-io-compress-base-common"
-RDEPENDS_perl-module-io-compress-adapter-deflate += "perl-module-strict"
-RDEPENDS_perl-module-io-compress-adapter-deflate += "perl-module-warnings"
-RDEPENDS_perl-module-io-compress-adapter-identity += "perl-module-bytes"
-RDEPENDS_perl-module-io-compress-adapter-identity += "perl-module-io-compress-base-common"
-RDEPENDS_perl-module-io-compress-adapter-identity += "perl-module-strict"
-RDEPENDS_perl-module-io-compress-adapter-identity += "perl-module-warnings"
-RDEPENDS_perl-module-io-compress-base-common += "perl-module-bytes"
-RDEPENDS_perl-module-io-compress-base-common += "perl-module-constant"
-RDEPENDS_perl-module-io-compress-base-common += "perl-module-encode"
-RDEPENDS_perl-module-io-compress-base-common += "perl-module-exporter"
-RDEPENDS_perl-module-io-compress-base-common += "perl-module-file-globmapper"
-RDEPENDS_perl-module-io-compress-base-common += "perl-module-strict "
-RDEPENDS_perl-module-io-compress-base-common += "perl-module-strict"
-RDEPENDS_perl-module-io-compress-base-common += "perl-module-utf8"
-RDEPENDS_perl-module-io-compress-base-common += "perl-module-warnings"
-RDEPENDS_perl-module-io-compress-base += "perl-module-io-compress-base-common"
-RDEPENDS_perl-module-io-compress-base += "perl-module-io-file"
-RDEPENDS_perl-module-io-compress-base += "perl-module-io-handle "
-RDEPENDS_perl-module-io-compress-base += "perl-module-strict "
-RDEPENDS_perl-module-io-compress-base += "perl-module-warnings"
-RDEPENDS_perl-module-io-compress-bzip2 += "perl-module-bytes"
-RDEPENDS_perl-module-io-compress-bzip2 += "perl-module-exporter "
-RDEPENDS_perl-module-io-compress-bzip2 += "perl-module-io-compress-adapter-bzip2"
-RDEPENDS_perl-module-io-compress-bzip2 += "perl-module-io-compress-base"
-RDEPENDS_perl-module-io-compress-bzip2 += "perl-module-io-compress-base-common"
-RDEPENDS_perl-module-io-compress-bzip2 += "perl-module-strict "
-RDEPENDS_perl-module-io-compress-bzip2 += "perl-module-warnings"
-RDEPENDS_perl-module-io-compress-deflate += "perl-module-bytes"
-RDEPENDS_perl-module-io-compress-deflate += "perl-module-exporter "
-RDEPENDS_perl-module-io-compress-deflate += "perl-module-io-compress-adapter-deflate"
-RDEPENDS_perl-module-io-compress-deflate += "perl-module-io-compress-base-common"
-RDEPENDS_perl-module-io-compress-deflate += "perl-module-io-compress-rawdeflate"
-RDEPENDS_perl-module-io-compress-deflate += "perl-module-io-compress-zlib-constants"
-RDEPENDS_perl-module-io-compress-deflate += "perl-module-strict "
-RDEPENDS_perl-module-io-compress-deflate += "perl-module-warnings"
-RDEPENDS_perl-module-io-compress-gzip-constants += "perl-module-bytes"
-RDEPENDS_perl-module-io-compress-gzip-constants += "perl-module-constant"
-RDEPENDS_perl-module-io-compress-gzip-constants += "perl-module-exporter"
-RDEPENDS_perl-module-io-compress-gzip-constants += "perl-module-strict "
-RDEPENDS_perl-module-io-compress-gzip-constants += "perl-module-warnings"
-RDEPENDS_perl-module-io-compress-gzip += "perl-module-bytes"
-RDEPENDS_perl-module-io-compress-gzip += "perl-module-exporter "
-RDEPENDS_perl-module-io-compress-gzip += "perl-module-io-compress-adapter-deflate"
-RDEPENDS_perl-module-io-compress-gzip += "perl-module-io-compress-base-common"
-RDEPENDS_perl-module-io-compress-gzip += "perl-module-io-compress-gzip-constants"
-RDEPENDS_perl-module-io-compress-gzip += "perl-module-io-compress-rawdeflate"
-RDEPENDS_perl-module-io-compress-gzip += "perl-module-io-compress-zlib-extra"
-RDEPENDS_perl-module-io-compress-gzip += "perl-module-strict "
-RDEPENDS_perl-module-io-compress-gzip += "perl-module-warnings"
-RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-bytes"
-RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-compress-raw-zlib"
-RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-exporter "
-RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-fcntl"
-RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-io-compress-adapter-deflate"
-RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-io-compress-base"
-RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-io-compress-base-common"
-RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-strict "
-RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-warnings"
-RDEPENDS_perl-module-io-compress-zip-constants += "perl-module-constant"
-RDEPENDS_perl-module-io-compress-zip-constants += "perl-module-exporter"
-RDEPENDS_perl-module-io-compress-zip-constants += "perl-module-strict "
-RDEPENDS_perl-module-io-compress-zip-constants += "perl-module-warnings"
-RDEPENDS_perl-module-io-compress-zip += "perl-module-bytes"
-RDEPENDS_perl-module-io-compress-zip += "perl-module-compress-raw-zlib"
-RDEPENDS_perl-module-io-compress-zip += "perl-module-config"
-RDEPENDS_perl-module-io-compress-zip += "perl-module-exporter "
-RDEPENDS_perl-module-io-compress-zip += "perl-module-fcntl"
-RDEPENDS_perl-module-io-compress-zip += "perl-module-io-compress-adapter-deflate"
-RDEPENDS_perl-module-io-compress-zip += "perl-module-io-compress-adapter-identity"
-RDEPENDS_perl-module-io-compress-zip += "perl-module-io-compress-base-common"
-RDEPENDS_perl-module-io-compress-zip += "perl-module-io-compress-bzip2 "
-RDEPENDS_perl-module-io-compress-zip += "perl-module-io-compress-rawdeflate"
-RDEPENDS_perl-module-io-compress-zip += "perl-module-io-compress-zip-constants"
-RDEPENDS_perl-module-io-compress-zip += "perl-module-io-compress-zlib-extra"
-RDEPENDS_perl-module-io-compress-zip += "perl-module-strict "
-RDEPENDS_perl-module-io-compress-zip += "perl-module-warnings"
-RDEPENDS_perl-module-io-compress-zlib-constants += "perl-module-bytes"
-RDEPENDS_perl-module-io-compress-zlib-constants += "perl-module-constant"
-RDEPENDS_perl-module-io-compress-zlib-constants += "perl-module-exporter"
-RDEPENDS_perl-module-io-compress-zlib-constants += "perl-module-strict "
-RDEPENDS_perl-module-io-compress-zlib-constants += "perl-module-warnings"
-RDEPENDS_perl-module-io-compress-zlib-extra += "perl-module-bytes"
-RDEPENDS_perl-module-io-compress-zlib-extra += "perl-module-io-compress-gzip-constants"
-RDEPENDS_perl-module-io-compress-zlib-extra += "perl-module-strict "
-RDEPENDS_perl-module-io-compress-zlib-extra += "perl-module-warnings"
-RDEPENDS_perl-module-io-dir += "perl-module-exporter"
-RDEPENDS_perl-module-io-dir += "perl-module-file-stat"
-RDEPENDS_perl-module-io-dir += "perl-module-io-file"
-RDEPENDS_perl-module-io-dir += "perl-module-strict"
-RDEPENDS_perl-module-io-dir += "perl-module-tie-hash"
-RDEPENDS_perl-module-io-file += "perl-module-carp"
-RDEPENDS_perl-module-io-file += "perl-module-exporter"
-RDEPENDS_perl-module-io-file += "perl-module-fcntl"
-RDEPENDS_perl-module-io-file += "perl-module-io-seekable"
-RDEPENDS_perl-module-io-file += "perl-module-selectsaver"
-RDEPENDS_perl-module-io-file += "perl-module-strict"
-RDEPENDS_perl-module-io-file += "perl-module-symbol"
-RDEPENDS_perl-module-io-handle += "perl-module-exporter"
-RDEPENDS_perl-module-io-handle += "perl-module-io"
-RDEPENDS_perl-module-io-handle += "perl-module-io-file"
-RDEPENDS_perl-module-io-handle += "perl-module-selectsaver"
-RDEPENDS_perl-module-io-handle += "perl-module-strict"
-RDEPENDS_perl-module-io += "perl-module-strict"
-RDEPENDS_perl-module-io += "perl-module-warnings"
-RDEPENDS_perl-module-io += "perl-module-xsloader"
-RDEPENDS_perl-module-io-pipe += "perl-module-fcntl"
-RDEPENDS_perl-module-io-pipe += "perl-module-io-handle"
-RDEPENDS_perl-module-io-pipe += "perl-module-strict"
-RDEPENDS_perl-module-io-poll += "perl-module-exporter"
-RDEPENDS_perl-module-io-poll += "perl-module-io-handle"
-RDEPENDS_perl-module-io-poll += "perl-module-strict"
-RDEPENDS_perl-module-io-seekable += "perl-module-exporter"
-RDEPENDS_perl-module-io-seekable += "perl-module-fcntl"
-RDEPENDS_perl-module-io-seekable += "perl-module-io-handle"
-RDEPENDS_perl-module-io-seekable += "perl-module-strict"
-RDEPENDS_perl-module-io-select += "perl-module-exporter"
-RDEPENDS_perl-module-io-select += "perl-module-strict"
-RDEPENDS_perl-module-io-select += "perl-module-warnings-register"
-RDEPENDS_perl-module-io-socket-inet += "perl-module-errno"
-RDEPENDS_perl-module-io-socket-inet += "perl-module-exporter"
-RDEPENDS_perl-module-io-socket-inet += "perl-module-io-socket"
-RDEPENDS_perl-module-io-socket-inet += "perl-module-socket"
-RDEPENDS_perl-module-io-socket-inet += "perl-module-strict"
-RDEPENDS_perl-module-io-socket-ip += "perl-module-base"
-RDEPENDS_perl-module-io-socket-ip += "perl-module-constant"
-RDEPENDS_perl-module-io-socket-ip += "perl-module-errno"
-RDEPENDS_perl-module-io-socket-ip += "perl-module-posix"
-RDEPENDS_perl-module-io-socket-ip += "perl-module-socket"
-RDEPENDS_perl-module-io-socket-ip += "perl-module-strict"
-RDEPENDS_perl-module-io-socket-ip += "perl-module-warnings"
-RDEPENDS_perl-module-io-socket += "perl-module-errno"
-RDEPENDS_perl-module-io-socket += "perl-module-exporter"
-RDEPENDS_perl-module-io-socket += "perl-module-io-handle"
-RDEPENDS_perl-module-io-socket += "perl-module-io-select"
-RDEPENDS_perl-module-io-socket += "perl-module-io-socket-inet"
-RDEPENDS_perl-module-io-socket += "perl-module-io-socket-unix"
-RDEPENDS_perl-module-io-socket += "perl-module-socket"
-RDEPENDS_perl-module-io-socket += "perl-module-strict"
-RDEPENDS_perl-module-io-socket-unix += "perl-module-io-socket"
-RDEPENDS_perl-module-io-socket-unix += "perl-module-strict"
-RDEPENDS_perl-module-io-uncompress-adapter-bunzip2 += "perl-module-bytes"
-RDEPENDS_perl-module-io-uncompress-adapter-bunzip2 += "perl-module-compress-raw-bzip2"
-RDEPENDS_perl-module-io-uncompress-adapter-bunzip2 += "perl-module-io-compress-base-common"
-RDEPENDS_perl-module-io-uncompress-adapter-bunzip2 += "perl-module-strict"
-RDEPENDS_perl-module-io-uncompress-adapter-bunzip2 += "perl-module-warnings"
-RDEPENDS_perl-module-io-uncompress-adapter-identity += "perl-module-bytes"
-RDEPENDS_perl-module-io-uncompress-adapter-identity += "perl-module-compress-raw-zlib"
-RDEPENDS_perl-module-io-uncompress-adapter-identity += "perl-module-io-compress-base-common"
-RDEPENDS_perl-module-io-uncompress-adapter-identity += "perl-module-io-compress-zip-constants "
-RDEPENDS_perl-module-io-uncompress-adapter-identity += "perl-module-strict"
-RDEPENDS_perl-module-io-uncompress-adapter-identity += "perl-module-warnings"
-RDEPENDS_perl-module-io-uncompress-adapter-inflate += "perl-module-bytes"
-RDEPENDS_perl-module-io-uncompress-adapter-inflate += "perl-module-compress-raw-zlib"
-RDEPENDS_perl-module-io-uncompress-adapter-inflate += "perl-module-io-compress-base-common"
-RDEPENDS_perl-module-io-uncompress-adapter-inflate += "perl-module-strict"
-RDEPENDS_perl-module-io-uncompress-adapter-inflate += "perl-module-warnings"
-RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-bytes"
-RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-exporter "
-RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-io-compress-base-common"
-RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-io-uncompress-adapter-inflate"
-RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-io-uncompress-base"
-RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-io-uncompress-gunzip"
-RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-io-uncompress-inflate"
-RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-io-uncompress-rawinflate"
-RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-io-uncompress-unzip"
-RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-strict"
-RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-warnings"
-RDEPENDS_perl-module-io-uncompress-anyuncompress += "perl-module-bytes"
-RDEPENDS_perl-module-io-uncompress-anyuncompress += "perl-module-exporter "
-RDEPENDS_perl-module-io-uncompress-anyuncompress += "perl-module-io-compress-base-common"
-RDEPENDS_perl-module-io-uncompress-anyuncompress += "perl-module-io-uncompress-base"
-RDEPENDS_perl-module-io-uncompress-anyuncompress += "perl-module-strict"
-RDEPENDS_perl-module-io-uncompress-anyuncompress += "perl-module-warnings"
-RDEPENDS_perl-module-io-uncompress-base += "perl-module-bytes"
-RDEPENDS_perl-module-io-uncompress-base += "perl-module-constant"
-RDEPENDS_perl-module-io-uncompress-base += "perl-module-io-compress-base-common"
-RDEPENDS_perl-module-io-uncompress-base += "perl-module-io-file "
-RDEPENDS_perl-module-io-uncompress-base += "perl-module-list-util"
-RDEPENDS_perl-module-io-uncompress-base += "perl-module-strict "
-RDEPENDS_perl-module-io-uncompress-base += "perl-module-warnings"
-RDEPENDS_perl-module-io-uncompress-bunzip2 += "perl-module-bytes"
-RDEPENDS_perl-module-io-uncompress-bunzip2 += "perl-module-exporter "
-RDEPENDS_perl-module-io-uncompress-bunzip2 += "perl-module-io-compress-base-common"
-RDEPENDS_perl-module-io-uncompress-bunzip2 += "perl-module-io-uncompress-adapter-bunzip2"
-RDEPENDS_perl-module-io-uncompress-bunzip2 += "perl-module-io-uncompress-base"
-RDEPENDS_perl-module-io-uncompress-bunzip2 += "perl-module-strict "
-RDEPENDS_perl-module-io-uncompress-bunzip2 += "perl-module-warnings"
-RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-bytes"
-RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-compress-raw-zlib"
-RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-exporter "
-RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-io-compress-base-common"
-RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-io-compress-gzip-constants"
-RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-io-compress-zlib-extra"
-RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-io-uncompress-rawinflate"
-RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-strict "
-RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-warnings"
-RDEPENDS_perl-module-io-uncompress-inflate += "perl-module-bytes"
-RDEPENDS_perl-module-io-uncompress-inflate += "perl-module-exporter "
-RDEPENDS_perl-module-io-uncompress-inflate += "perl-module-io-compress-base-common"
-RDEPENDS_perl-module-io-uncompress-inflate += "perl-module-io-compress-zlib-constants"
-RDEPENDS_perl-module-io-uncompress-inflate += "perl-module-io-uncompress-rawinflate"
-RDEPENDS_perl-module-io-uncompress-inflate += "perl-module-strict "
-RDEPENDS_perl-module-io-uncompress-inflate += "perl-module-warnings"
-RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-bytes"
-RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-compress-raw-zlib"
-RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-exporter "
-RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-io-compress-base-common"
-RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-io-uncompress-adapter-inflate"
-RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-io-uncompress-base"
-RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-strict "
-RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-warnings"
-RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-bytes"
-RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-compress-raw-zlib"
-RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-constant"
-RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-exporter "
-RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-fcntl"
-RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-io-compress-base-common"
-RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-io-compress-zip-constants"
-RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-io-compress-zlib-extra"
-RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-io-file"
-RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-io-uncompress-adapter-identity"
-RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-io-uncompress-adapter-inflate"
-RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-io-uncompress-rawinflate"
-RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-posix"
-RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-strict "
-RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-warnings"
-RDEPENDS_perl-module-io-zlib += "perl-module-fcntl"
-RDEPENDS_perl-module-io-zlib += "perl-module-io-handle"
-RDEPENDS_perl-module-io-zlib += "perl-module-strict"
-RDEPENDS_perl-module-io-zlib += "perl-module-tie-handle"
-RDEPENDS_perl-module-io-zlib += "perl-module-vars"
-RDEPENDS_perl-module-ipc-cmd += "perl-module-constant"
-RDEPENDS_perl-module-ipc-cmd += "perl-module-exporter"
-RDEPENDS_perl-module-ipc-cmd += "perl-module-extutils-makemaker"
-RDEPENDS_perl-module-ipc-cmd += "perl-module-filehandle"
-RDEPENDS_perl-module-ipc-cmd += "perl-module-io-handle"
-RDEPENDS_perl-module-ipc-cmd += "perl-module-io-select"
-RDEPENDS_perl-module-ipc-cmd += "perl-module-ipc-open3"
-RDEPENDS_perl-module-ipc-cmd += "perl-module-locale-maketext-simple"
-RDEPENDS_perl-module-ipc-cmd += "perl-module-load"
-RDEPENDS_perl-module-ipc-cmd += "perl-module-params-check"
-RDEPENDS_perl-module-ipc-cmd += "perl-module-posix"
-RDEPENDS_perl-module-ipc-cmd += "perl-module-socket"
-RDEPENDS_perl-module-ipc-cmd += "perl-module-strict"
-RDEPENDS_perl-module-ipc-cmd += "perl-module-text-parsewords"
-RDEPENDS_perl-module-ipc-cmd += "perl-module-time-hires"
-RDEPENDS_perl-module-ipc-cmd += "perl-module-vars"
-RDEPENDS_perl-module-ipc-msg += "perl-module-class-struct"
-RDEPENDS_perl-module-ipc-msg += "perl-module-ipc-sysv"
-RDEPENDS_perl-module-ipc-msg += "perl-module-strict"
-RDEPENDS_perl-module-ipc-msg += "perl-module-vars"
-RDEPENDS_perl-module-ipc-open2 += "perl-module-exporter"
-RDEPENDS_perl-module-ipc-open2 += "perl-module-ipc-open3"
-RDEPENDS_perl-module-ipc-open2 += "perl-module-strict"
-RDEPENDS_perl-module-ipc-open3 += "perl-module-constant"
-RDEPENDS_perl-module-ipc-open3 += "perl-module-exporter"
-RDEPENDS_perl-module-ipc-open3 += "perl-module-fcntl"
-RDEPENDS_perl-module-ipc-open3 += "perl-module-io-pipe"
-RDEPENDS_perl-module-ipc-open3 += "perl-module-posix"
-RDEPENDS_perl-module-ipc-open3 += "perl-module-strict"
-RDEPENDS_perl-module-ipc-semaphore += "perl-module-class-struct"
-RDEPENDS_perl-module-ipc-semaphore += "perl-module-ipc-sysv"
-RDEPENDS_perl-module-ipc-semaphore += "perl-module-strict"
-RDEPENDS_perl-module-ipc-semaphore += "perl-module-vars"
-RDEPENDS_perl-module-ipc-sharedmem += "perl-module-class-struct"
-RDEPENDS_perl-module-ipc-sharedmem += "perl-module-ipc-sysv"
-RDEPENDS_perl-module-ipc-sharedmem += "perl-module-strict"
-RDEPENDS_perl-module-ipc-sharedmem += "perl-module-vars"
-RDEPENDS_perl-module-ipc-sysv += "perl-module-config"
-RDEPENDS_perl-module-ipc-sysv += "perl-module-dynaloader"
-RDEPENDS_perl-module-ipc-sysv += "perl-module-exporter"
-RDEPENDS_perl-module-ipc-sysv += "perl-module-strict"
-RDEPENDS_perl-module-ipc-sysv += "perl-module-vars"
-RDEPENDS_perl-module-json-pp-boolean += "perl-module-overload"
-RDEPENDS_perl-module-json-pp-boolean += "perl-module-strict"
-RDEPENDS_perl-module-json-pp += "perl-module-b"
-RDEPENDS_perl-module-json-pp += "perl-module-bytes"
-RDEPENDS_perl-module-json-pp += "perl-module-constant"
-RDEPENDS_perl-module-json-pp += "perl-module-encode"
-RDEPENDS_perl-module-json-pp += "perl-module-exporter"
-RDEPENDS_perl-module-json-pp += "perl-module-json-pp-boolean"
-RDEPENDS_perl-module-json-pp += "perl-module-math-bigfloat"
-RDEPENDS_perl-module-json-pp += "perl-module-math-bigint"
-RDEPENDS_perl-module-json-pp += "perl-module-overload"
-RDEPENDS_perl-module-json-pp += "perl-module-strict"
-RDEPENDS_perl-module-json-pp += "perl-module-subs"
-RDEPENDS_perl-module-less += "perl-module-strict"
-RDEPENDS_perl-module-less += "perl-module-warnings"
-RDEPENDS_perl-module-lib += "perl-module-config"
-RDEPENDS_perl-module-lib += "perl-module-strict"
-RDEPENDS_perl-module-list-util += "perl-module-exporter"
-RDEPENDS_perl-module-list-util += "perl-module-strict"
-RDEPENDS_perl-module-list-util += "perl-module-warnings"
-RDEPENDS_perl-module-list-util += "perl-module-xsloader"
-RDEPENDS_perl-module-list-util-xs += "perl-module-list-util"
-RDEPENDS_perl-module-list-util-xs += "perl-module-strict"
-RDEPENDS_perl-module-list-util-xs += "perl-module-warnings"
-RDEPENDS_perl-module-loaded += "perl-module-strict"
-RDEPENDS_perl-module-loaded += "perl-module-vars"
-RDEPENDS_perl-module-load += "perl-module-config"
-RDEPENDS_perl-module-load += "perl-module-constant"
-RDEPENDS_perl-module-load += "perl-module-exporter"
-RDEPENDS_perl-module-load += "perl-module-filehandle"
-RDEPENDS_perl-module-load += "perl-module-locale-maketext-simple"
-RDEPENDS_perl-module-load += "perl-module-corelist"
-RDEPENDS_perl-module-load += "perl-module-load"
-RDEPENDS_perl-module-load += "perl-module-params-check"
-RDEPENDS_perl-module-load += "perl-module-strict"
-RDEPENDS_perl-module-load += "perl-module-vars"
-RDEPENDS_perl-module-load += "perl-module-version"
-RDEPENDS_perl-module-load += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-constants += "perl-module-constant"
-RDEPENDS_perl-module-locale-codes-constants += "perl-module-exporter"
-RDEPENDS_perl-module-locale-codes-constants += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-constants += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-country-codes += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-country-codes += "perl-module-utf8"
-RDEPENDS_perl-module-locale-codes-country-codes += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-country += "perl-module-exporter"
-RDEPENDS_perl-module-locale-codes-country += "perl-module-if"
-RDEPENDS_perl-module-locale-codes-country += "perl-module-locale-codes"
-RDEPENDS_perl-module-locale-codes-country += "perl-module-locale-codes-constants"
-RDEPENDS_perl-module-locale-codes-country += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-country += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-country-retired += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-country-retired += "perl-module-utf8"
-RDEPENDS_perl-module-locale-codes-country-retired += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-currency-codes += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-currency-codes += "perl-module-utf8"
-RDEPENDS_perl-module-locale-codes-currency-codes += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-currency += "perl-module-exporter"
-RDEPENDS_perl-module-locale-codes-currency += "perl-module-if"
-RDEPENDS_perl-module-locale-codes-currency += "perl-module-locale-codes"
-RDEPENDS_perl-module-locale-codes-currency += "perl-module-locale-codes-constants"
-RDEPENDS_perl-module-locale-codes-currency += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-currency += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-currency-retired += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-currency-retired += "perl-module-utf8"
-RDEPENDS_perl-module-locale-codes-currency-retired += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-langext-codes += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-langext-codes += "perl-module-utf8"
-RDEPENDS_perl-module-locale-codes-langext-codes += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-langext += "perl-module-exporter"
-RDEPENDS_perl-module-locale-codes-langext += "perl-module-if"
-RDEPENDS_perl-module-locale-codes-langext += "perl-module-locale-codes"
-RDEPENDS_perl-module-locale-codes-langext += "perl-module-locale-codes-constants"
-RDEPENDS_perl-module-locale-codes-langext += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-langext += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-langext-retired += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-langext-retired += "perl-module-utf8"
-RDEPENDS_perl-module-locale-codes-langext-retired += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-langfam-codes += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-langfam-codes += "perl-module-utf8"
-RDEPENDS_perl-module-locale-codes-langfam-codes += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-langfam += "perl-module-exporter"
-RDEPENDS_perl-module-locale-codes-langfam += "perl-module-if"
-RDEPENDS_perl-module-locale-codes-langfam += "perl-module-locale-codes"
-RDEPENDS_perl-module-locale-codes-langfam += "perl-module-locale-codes-constants"
-RDEPENDS_perl-module-locale-codes-langfam += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-langfam += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-langfam-retired += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-langfam-retired += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-language-codes += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-language-codes += "perl-module-utf8"
-RDEPENDS_perl-module-locale-codes-language-codes += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-language += "perl-module-exporter"
-RDEPENDS_perl-module-locale-codes-language += "perl-module-if"
-RDEPENDS_perl-module-locale-codes-language += "perl-module-locale-codes"
-RDEPENDS_perl-module-locale-codes-language += "perl-module-locale-codes-constants"
-RDEPENDS_perl-module-locale-codes-language += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-language += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-language-retired += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-language-retired += "perl-module-utf8"
-RDEPENDS_perl-module-locale-codes-language-retired += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-langvar-codes += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-langvar-codes += "perl-module-utf8"
-RDEPENDS_perl-module-locale-codes-langvar-codes += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-langvar += "perl-module-exporter"
-RDEPENDS_perl-module-locale-codes-langvar += "perl-module-if"
-RDEPENDS_perl-module-locale-codes-langvar += "perl-module-locale-codes"
-RDEPENDS_perl-module-locale-codes-langvar += "perl-module-locale-codes-constants"
-RDEPENDS_perl-module-locale-codes-langvar += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-langvar += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-langvar-retired += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-langvar-retired += "perl-module-utf8"
-RDEPENDS_perl-module-locale-codes-langvar-retired += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes += "perl-module-exporter"
-RDEPENDS_perl-module-locale-codes += "perl-module-if"
-RDEPENDS_perl-module-locale-codes += "perl-module-locale-codes-constants"
-RDEPENDS_perl-module-locale-codes += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-script-codes += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-script-codes += "perl-module-utf8"
-RDEPENDS_perl-module-locale-codes-script-codes += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-script += "perl-module-exporter"
-RDEPENDS_perl-module-locale-codes-script += "perl-module-if"
-RDEPENDS_perl-module-locale-codes-script += "perl-module-locale-codes"
-RDEPENDS_perl-module-locale-codes-script += "perl-module-locale-codes-constants"
-RDEPENDS_perl-module-locale-codes-script += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-script += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-script-retired += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-script-retired += "perl-module-utf8"
-RDEPENDS_perl-module-locale-codes-script-retired += "perl-module-warnings"
-RDEPENDS_perl-module-locale-country += "perl-module-exporter"
-RDEPENDS_perl-module-locale-country += "perl-module-if"
-RDEPENDS_perl-module-locale-country += "perl-module-locale-codes"
-RDEPENDS_perl-module-locale-country += "perl-module-locale-codes-constants"
-RDEPENDS_perl-module-locale-country += "perl-module-strict"
-RDEPENDS_perl-module-locale-country += "perl-module-warnings"
-RDEPENDS_perl-module-locale-currency += "perl-module-exporter"
-RDEPENDS_perl-module-locale-currency += "perl-module-if"
-RDEPENDS_perl-module-locale-currency += "perl-module-locale-codes"
-RDEPENDS_perl-module-locale-currency += "perl-module-locale-codes-constants"
-RDEPENDS_perl-module-locale-currency += "perl-module-strict"
-RDEPENDS_perl-module-locale-currency += "perl-module-warnings"
-RDEPENDS_perl-module-locale-language += "perl-module-exporter"
-RDEPENDS_perl-module-locale-language += "perl-module-if"
-RDEPENDS_perl-module-locale-language += "perl-module-locale-codes"
-RDEPENDS_perl-module-locale-language += "perl-module-locale-codes-constants"
-RDEPENDS_perl-module-locale-language += "perl-module-strict"
-RDEPENDS_perl-module-locale-language += "perl-module-warnings"
-RDEPENDS_perl-module-locale-maketext-gutsloader += "perl-module-locale-maketext"
-RDEPENDS_perl-module-locale-maketext-guts += "perl-module-locale-maketext"
-RDEPENDS_perl-module-locale-maketext += "perl-module-i18n-langtags"
-RDEPENDS_perl-module-locale-maketext += "perl-module-i18n-langtags-detect"
-RDEPENDS_perl-module-locale-maketext += "perl-module-integer"
-RDEPENDS_perl-module-locale-maketext += "perl-module-strict"
-RDEPENDS_perl-module-locale-maketext-simple += "perl-module-base"
-RDEPENDS_perl-module-locale-maketext-simple += "perl-module-strict"
-RDEPENDS_perl-module-locale += "perl-module-config"
-RDEPENDS_perl-module-locale-script += "perl-module-exporter"
-RDEPENDS_perl-module-locale-script += "perl-module-if"
-RDEPENDS_perl-module-locale-script += "perl-module-locale-codes"
-RDEPENDS_perl-module-locale-script += "perl-module-locale-codes-constants"
-RDEPENDS_perl-module-locale-script += "perl-module-strict"
-RDEPENDS_perl-module-locale-script += "perl-module-warnings"
-RDEPENDS_perl-module-math-bigfloat += "perl-module-exporter"
-RDEPENDS_perl-module-math-bigfloat += "perl-module-math-bigint"
-RDEPENDS_perl-module-math-bigfloat += "perl-module-math-complex"
-RDEPENDS_perl-module-math-bigfloat += "perl-module-overload"
-RDEPENDS_perl-module-math-bigfloat += "perl-module-strict"
-RDEPENDS_perl-module-math-bigfloat += "perl-module-warnings"
-RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-exporter"
-RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-math-bigfloat"
-RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-overload"
-RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-strict"
-RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-warnings"
-RDEPENDS_perl-module-math-bigint-calcemu += "perl-module-strict"
-RDEPENDS_perl-module-math-bigint-calcemu += "perl-module-warnings"
-RDEPENDS_perl-module-math-bigint-calc += "perl-module-constant"
-RDEPENDS_perl-module-math-bigint-calc += "perl-module-integer"
-RDEPENDS_perl-module-math-bigint-calc += "perl-module-math-bigint-lib"
-RDEPENDS_perl-module-math-bigint-calc += "perl-module-strict"
-RDEPENDS_perl-module-math-bigint-calc += "perl-module-warnings"
-RDEPENDS_perl-module-math-bigint-fastcalc += "perl-module-math-bigint-calc"
-RDEPENDS_perl-module-math-bigint-fastcalc += "perl-module-strict"
-RDEPENDS_perl-module-math-bigint-fastcalc += "perl-module-warnings"
-RDEPENDS_perl-module-math-bigint-fastcalc += "perl-module-xsloader"
-RDEPENDS_perl-module-math-bigint-lib += "perl-module-overload"
-RDEPENDS_perl-module-math-bigint-lib += "perl-module-strict"
-RDEPENDS_perl-module-math-bigint-lib += "perl-module-warnings"
-RDEPENDS_perl-module-math-bigint += "perl-module-exporter"
-RDEPENDS_perl-module-math-bigint += "perl-module-math-bigfloat"
-RDEPENDS_perl-module-math-bigint += "perl-module-math-complex"
-RDEPENDS_perl-module-math-bigint += "perl-module-overload"
-RDEPENDS_perl-module-math-bigint += "perl-module-strict"
-RDEPENDS_perl-module-math-bigint += "perl-module-warnings"
-RDEPENDS_perl-module-math-bigint-trace += "perl-module-exporter"
-RDEPENDS_perl-module-math-bigint-trace += "perl-module-math-bigint"
-RDEPENDS_perl-module-math-bigint-trace += "perl-module-overload"
-RDEPENDS_perl-module-math-bigint-trace += "perl-module-strict"
-RDEPENDS_perl-module-math-bigint-trace += "perl-module-warnings"
-RDEPENDS_perl-module-math-bigrat += "perl-module-math-bigfloat"
-RDEPENDS_perl-module-math-bigrat += "perl-module-math-bigint"
-RDEPENDS_perl-module-math-bigrat += "perl-module-overload"
-RDEPENDS_perl-module-math-bigrat += "perl-module-strict"
-RDEPENDS_perl-module-math-bigrat += "perl-module-warnings"
-RDEPENDS_perl-module-math-complex += "perl-module-config"
-RDEPENDS_perl-module-math-complex += "perl-module-exporter"
-RDEPENDS_perl-module-math-complex += "perl-module-overload"
-RDEPENDS_perl-module-math-complex += "perl-module-strict"
-RDEPENDS_perl-module-math-complex += "perl-module-warnings"
-RDEPENDS_perl-module-math-trig += "perl-module-exporter"
-RDEPENDS_perl-module-math-trig += "perl-module-math-complex"
-RDEPENDS_perl-module-math-trig += "perl-module-strict"
-RDEPENDS_perl-module-metadata += "perl-module-version"
-RDEPENDS_perl-module-memoize-anydbm-file += "perl-module-vars"
-RDEPENDS_perl-module-memoize += "perl-module-config"
-RDEPENDS_perl-module-memoize += "perl-module-exporter"
-RDEPENDS_perl-module-memoize += "perl-module-strict"
-RDEPENDS_perl-module-memoize += "perl-module-vars"
-RDEPENDS_perl-module-memoize-sdbm-file += "perl-module-sdbm-file"
-RDEPENDS_perl-module-memoize-storable += "perl-module-storable"
-RDEPENDS_perl-module-mime-base64 += "perl-module-exporter"
-RDEPENDS_perl-module-mime-base64 += "perl-module-strict"
-RDEPENDS_perl-module-mime-base64 += "perl-module-vars"
-RDEPENDS_perl-module-mime-base64 += "perl-module-xsloader"
-RDEPENDS_perl-module-mime-quotedprint += "perl-module-exporter"
-RDEPENDS_perl-module-mime-quotedprint += "perl-module-mime-base64"
-RDEPENDS_perl-module-mime-quotedprint += "perl-module-strict"
-RDEPENDS_perl-module-mime-quotedprint += "perl-module-vars"
-RDEPENDS_perl-module-mro += "perl-module-strict"
-RDEPENDS_perl-module-mro += "perl-module-warnings"
-RDEPENDS_perl-module-mro += "perl-module-xsloader"
-RDEPENDS_perl-module-net-cmd += "perl-module-constant"
-RDEPENDS_perl-module-net-cmd += "perl-module-errno"
-RDEPENDS_perl-module-net-cmd += "perl-module-exporter"
-RDEPENDS_perl-module-net-cmd += "perl-module-strict"
-RDEPENDS_perl-module-net-cmd += "perl-module-warnings"
-RDEPENDS_perl-module-net-config += "perl-module-exporter"
-RDEPENDS_perl-module-net-config += "perl-module-socket"
-RDEPENDS_perl-module-net-config += "perl-module-strict"
-RDEPENDS_perl-module-net-config += "perl-module-warnings"
-RDEPENDS_perl-module-net-domain += "perl-module-exporter"
-RDEPENDS_perl-module-net-domain += "perl-module-net-config"
-RDEPENDS_perl-module-net-domain += "perl-module-posix"
-RDEPENDS_perl-module-net-domain += "perl-module-socket"
-RDEPENDS_perl-module-net-domain += "perl-module-strict"
-RDEPENDS_perl-module-net-domain += "perl-module-warnings"
-RDEPENDS_perl-module-net-ftp-a += "perl-module-net-ftp-dataconn"
-RDEPENDS_perl-module-net-ftp-a += "perl-module-strict"
-RDEPENDS_perl-module-net-ftp-a += "perl-module-warnings"
-RDEPENDS_perl-module-net-ftp-dataconn += "perl-module-errno"
-RDEPENDS_perl-module-net-ftp-dataconn += "perl-module-net-cmd"
-RDEPENDS_perl-module-net-ftp-dataconn += "perl-module-strict"
-RDEPENDS_perl-module-net-ftp-dataconn += "perl-module-warnings"
-RDEPENDS_perl-module-net-ftp-e += "perl-module-net-ftp-i"
-RDEPENDS_perl-module-net-ftp-e += "perl-module-strict"
-RDEPENDS_perl-module-net-ftp-e += "perl-module-warnings"
-RDEPENDS_perl-module-net-ftp-i += "perl-module-net-ftp-dataconn"
-RDEPENDS_perl-module-net-ftp-i += "perl-module-strict"
-RDEPENDS_perl-module-net-ftp-i += "perl-module-warnings"
-RDEPENDS_perl-module-net-ftp-l += "perl-module-net-ftp-i"
-RDEPENDS_perl-module-net-ftp-l += "perl-module-strict"
-RDEPENDS_perl-module-net-ftp-l += "perl-module-warnings"
-RDEPENDS_perl-module-net-ftp += "perl-module-constant"
-RDEPENDS_perl-module-net-ftp += "perl-module-fcntl"
-RDEPENDS_perl-module-net-ftp += "perl-module-file-basename"
-RDEPENDS_perl-module-net-ftp += "perl-module-io-socket"
-RDEPENDS_perl-module-net-ftp += "perl-module-io-socket-ip"
-RDEPENDS_perl-module-net-ftp += "perl-module-net-cmd"
-RDEPENDS_perl-module-net-ftp += "perl-module-net-config"
-RDEPENDS_perl-module-net-ftp += "perl-module-net-ftp-a"
-RDEPENDS_perl-module-net-ftp += "perl-module-net-netrc"
-RDEPENDS_perl-module-net-ftp += "perl-module-socket"
-RDEPENDS_perl-module-net-ftp += "perl-module-strict"
-RDEPENDS_perl-module-net-ftp += "perl-module-time-local"
-RDEPENDS_perl-module-net-ftp += "perl-module-warnings"
-RDEPENDS_perl-module-net-hostent += "perl-module-class-struct"
-RDEPENDS_perl-module-net-hostent += "perl-module-exporter"
-RDEPENDS_perl-module-net-hostent += "perl-module-socket"
-RDEPENDS_perl-module-net-hostent += "perl-module-strict"
-RDEPENDS_perl-module-net-netent += "perl-module-class-struct"
-RDEPENDS_perl-module-net-netent += "perl-module-exporter"
-RDEPENDS_perl-module-net-netent += "perl-module-socket"
-RDEPENDS_perl-module-net-netent += "perl-module-strict"
-RDEPENDS_perl-module-net-netrc += "perl-module-filehandle"
-RDEPENDS_perl-module-net-netrc += "perl-module-strict"
-RDEPENDS_perl-module-net-netrc += "perl-module-warnings"
-RDEPENDS_perl-module-net-nntp += "perl-module-io-socket"
-RDEPENDS_perl-module-net-nntp += "perl-module-io-socket-ip"
-RDEPENDS_perl-module-net-nntp += "perl-module-net-cmd"
-RDEPENDS_perl-module-net-nntp += "perl-module-net-config"
-RDEPENDS_perl-module-net-nntp += "perl-module-strict"
-RDEPENDS_perl-module-net-nntp += "perl-module-time-local"
-RDEPENDS_perl-module-net-nntp += "perl-module-warnings"
-RDEPENDS_perl-module-net-ping += "perl-module-constant"
-RDEPENDS_perl-module-net-ping += "perl-module-exporter"
-RDEPENDS_perl-module-net-ping += "perl-module-fcntl"
-RDEPENDS_perl-module-net-ping += "perl-module-filehandle"
-RDEPENDS_perl-module-net-ping += "perl-module-io-socket-inet"
-RDEPENDS_perl-module-net-ping += "perl-module-posix"
-RDEPENDS_perl-module-net-ping += "perl-module-socket"
-RDEPENDS_perl-module-net-ping += "perl-module-strict"
-RDEPENDS_perl-module-net-ping += "perl-module-time-hires"
-RDEPENDS_perl-module-net-pop3 += "perl-module-io-socket"
-RDEPENDS_perl-module-net-pop3 += "perl-module-io-socket-ip"
-RDEPENDS_perl-module-net-pop3 += "perl-module-mime-base64"
-RDEPENDS_perl-module-net-pop3 += "perl-module-net-cmd"
-RDEPENDS_perl-module-net-pop3 += "perl-module-net-config"
-RDEPENDS_perl-module-net-pop3 += "perl-module-net-netrc"
-RDEPENDS_perl-module-net-pop3 += "perl-module-strict"
-RDEPENDS_perl-module-net-pop3 += "perl-module-warnings"
-RDEPENDS_perl-module-net-protoent += "perl-module-class-struct"
-RDEPENDS_perl-module-net-protoent += "perl-module-exporter"
-RDEPENDS_perl-module-net-protoent += "perl-module-strict"
-RDEPENDS_perl-module-net-servent += "perl-module-class-struct"
-RDEPENDS_perl-module-net-servent += "perl-module-exporter"
-RDEPENDS_perl-module-net-servent += "perl-module-strict"
-RDEPENDS_perl-module-net-smtp += "perl-module-io-socket"
-RDEPENDS_perl-module-net-smtp += "perl-module-io-socket-ip"
-RDEPENDS_perl-module-net-smtp += "perl-module-mime-base64"
-RDEPENDS_perl-module-net-smtp += "perl-module-net-cmd"
-RDEPENDS_perl-module-net-smtp += "perl-module-net-config"
-RDEPENDS_perl-module-net-smtp += "perl-module-socket"
-RDEPENDS_perl-module-net-smtp += "perl-module-strict"
-RDEPENDS_perl-module-net-smtp += "perl-module-warnings"
-RDEPENDS_perl-module-net-time += "perl-module-exporter"
-RDEPENDS_perl-module-net-time += "perl-module-io-select"
-RDEPENDS_perl-module-net-time += "perl-module-io-socket"
-RDEPENDS_perl-module-net-time += "perl-module-net-config"
-RDEPENDS_perl-module-net-time += "perl-module-strict"
-RDEPENDS_perl-module-net-time += "perl-module-warnings"
-RDEPENDS_perl-module-next += "perl-module-overload"
-RDEPENDS_perl-module-next += "perl-module-strict"
-RDEPENDS_perl-module-next += "perl-module-warnings"
-RDEPENDS_perl-module-ok += "perl-module-strict"
-RDEPENDS_perl-module-ok += "perl-module-test-more"
-RDEPENDS_perl-module-opcode += "perl-module-exporter"
-RDEPENDS_perl-module-opcode += "perl-module-strict"
-RDEPENDS_perl-module-opcode += "perl-module-subs"
-RDEPENDS_perl-module-opcode += "perl-module-xsloader"
-RDEPENDS_perl-module-open += "perl-module-encode"
-RDEPENDS_perl-module-open += "perl-module-encoding"
-RDEPENDS_perl-module-open += "perl-module-warnings"
-RDEPENDS_perl-module-o += "perl-module-b"
-RDEPENDS_perl-module-ops += "perl-module-opcode"
-RDEPENDS_perl-module-overloading += "perl-module-overload-numbers"
-RDEPENDS_perl-module-overloading += "perl-module-warnings"
-RDEPENDS_perl-module-overload += "perl-module-mro"
-RDEPENDS_perl-module-overload += "perl-module-warnings-register"
-RDEPENDS_perl-module-overload += "perl-module-overloading"
-RDEPENDS_perl-module-params-check += "perl-module-exporter"
-RDEPENDS_perl-module-params-check += "perl-module-locale-maketext-simple"
-RDEPENDS_perl-module-params-check += "perl-module-strict"
-RDEPENDS_perl-module-params-check += "perl-module-vars"
-RDEPENDS_perl-module-parent += "perl-module-strict"
-RDEPENDS_perl-module-parent += "perl-module-vars"
-RDEPENDS_perl-module-perlfaq += "perl-module-strict"
-RDEPENDS_perl-module-perlfaq += "perl-module-warnings"
-RDEPENDS_perl-module-perlio-encoding += "perl-module-strict"
-RDEPENDS_perl-module-perlio-encoding += "perl-module-xsloader"
-RDEPENDS_perl-module-perlio-mmap += "perl-module-strict"
-RDEPENDS_perl-module-perlio-mmap += "perl-module-warnings"
-RDEPENDS_perl-module-perlio-mmap += "perl-module-xsloader"
-RDEPENDS_perl-module-perlio-scalar += "perl-module-xsloader"
-RDEPENDS_perl-module-perlio-via += "perl-module-xsloader"
-RDEPENDS_perl-module-perlio-via-quotedprint += "perl-module-mime-quotedprint"
-RDEPENDS_perl-module-perlio-via-quotedprint += "perl-module-strict"
-RDEPENDS_perl-module-pod-checker += "perl-module-base"
-RDEPENDS_perl-module-pod-checker += "perl-module-exporter"
-RDEPENDS_perl-module-pod-checker += "perl-module-strict"
-RDEPENDS_perl-module-pod-checker += "perl-module-warnings"
-RDEPENDS_perl-module-pod-escapes += "perl-module-exporter"
-RDEPENDS_perl-module-pod-escapes += "perl-module-strict"
-RDEPENDS_perl-module-pod-escapes += "perl-module-vars"
-RDEPENDS_perl-module-pod-escapes += "perl-module-warnings"
-RDEPENDS_perl-module-pod-find += "perl-module-config"
-RDEPENDS_perl-module-pod-find += "perl-module-cwd"
-RDEPENDS_perl-module-pod-find += "perl-module-exporter"
-RDEPENDS_perl-module-pod-find += "perl-module-file-find"
-RDEPENDS_perl-module-pod-find += "perl-module-strict"
-RDEPENDS_perl-module-pod-find += "perl-module-vars"
-RDEPENDS_perl-module-pod-functions += "perl-module-exporter"
-RDEPENDS_perl-module-pod-functions += "perl-module-strict"
-RDEPENDS_perl-module-pod-inputobjects += "perl-module-strict"
-RDEPENDS_perl-module-pod-inputobjects += "perl-module-vars"
-RDEPENDS_perl-module-pod-man += "perl-module-file-basename"
-RDEPENDS_perl-module-pod-man += "perl-module-pod-simple"
-RDEPENDS_perl-module-pod-man += "perl-module-strict"
-RDEPENDS_perl-module-pod-man += "perl-module-subs"
-RDEPENDS_perl-module-pod-man += "perl-module-vars"
-RDEPENDS_perl-module-pod-man += "perl-module-warnings"
-RDEPENDS_perl-module-pod-parselink += "perl-module-exporter"
-RDEPENDS_perl-module-pod-parselink += "perl-module-strict"
-RDEPENDS_perl-module-pod-parselink += "perl-module-vars"
-RDEPENDS_perl-module-pod-parselink += "perl-module-warnings"
-RDEPENDS_perl-module-pod-parser += "perl-module-exporter"
-RDEPENDS_perl-module-pod-parser += "perl-module-pod-inputobjects"
-RDEPENDS_perl-module-pod-parser += "perl-module-strict"
-RDEPENDS_perl-module-pod-parser += "perl-module-vars"
-RDEPENDS_perl-module-pod-parseutils += "perl-module-strict"
-RDEPENDS_perl-module-pod-parseutils += "perl-module-vars"
-RDEPENDS_perl-module-pod-perldoc-baseto += "perl-module-config"
-RDEPENDS_perl-module-pod-perldoc-baseto += "perl-module-strict"
-RDEPENDS_perl-module-pod-perldoc-baseto += "perl-module-vars"
-RDEPENDS_perl-module-pod-perldoc-baseto += "perl-module-warnings"
-RDEPENDS_perl-module-pod-perldoc-getoptsoo += "perl-module-strict"
-RDEPENDS_perl-module-pod-perldoc-getoptsoo += "perl-module-vars"
-RDEPENDS_perl-module-pod-perldoc += "perl-module-config"
-RDEPENDS_perl-module-pod-perldoc += "perl-module-encode"
-RDEPENDS_perl-module-pod-perldoc += "perl-module-fcntl"
-RDEPENDS_perl-module-pod-perldoc += "perl-module-file-basename"
-RDEPENDS_perl-module-pod-perldoc += "perl-module-file-temp"
-RDEPENDS_perl-module-pod-perldoc += "perl-module-pod-perldoc-getoptsoo"
-RDEPENDS_perl-module-pod-perldoc += "perl-module-strict"
-RDEPENDS_perl-module-pod-perldoc += "perl-module-text-parsewords"
-RDEPENDS_perl-module-pod-perldoc += "perl-module-vars"
-RDEPENDS_perl-module-pod-perldoc += "perl-module-warnings"
-RDEPENDS_perl-module-pod-perldoc-toansi += "perl-module-parent"
-RDEPENDS_perl-module-pod-perldoc-toansi += "perl-module-pod-text-color"
-RDEPENDS_perl-module-pod-perldoc-toansi += "perl-module-strict"
-RDEPENDS_perl-module-pod-perldoc-toansi += "perl-module-vars"
-RDEPENDS_perl-module-pod-perldoc-toansi += "perl-module-warnings"
-RDEPENDS_perl-module-pod-perldoc-tochecker += "perl-module-pod-checker"
-RDEPENDS_perl-module-pod-perldoc-tochecker += "perl-module-strict"
-RDEPENDS_perl-module-pod-perldoc-tochecker += "perl-module-vars"
-RDEPENDS_perl-module-pod-perldoc-tochecker += "perl-module-warnings"
-RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-encode"
-RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-io-handle"
-RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-io-select"
-RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-ipc-open3"
-RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-parent"
-RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-pod-man"
-RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-pod-perldoc-topod"
-RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-strict"
-RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-vars"
-RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-warnings"
-RDEPENDS_perl-module-pod-perldoc-tonroff += "perl-module-parent"
-RDEPENDS_perl-module-pod-perldoc-tonroff += "perl-module-pod-man"
-RDEPENDS_perl-module-pod-perldoc-tonroff += "perl-module-strict"
-RDEPENDS_perl-module-pod-perldoc-tonroff += "perl-module-vars"
-RDEPENDS_perl-module-pod-perldoc-tonroff += "perl-module-warnings"
-RDEPENDS_perl-module-pod-perldoc-topod += "perl-module-parent"
-RDEPENDS_perl-module-pod-perldoc-topod += "perl-module-strict"
-RDEPENDS_perl-module-pod-perldoc-topod += "perl-module-vars"
-RDEPENDS_perl-module-pod-perldoc-topod += "perl-module-warnings"
-RDEPENDS_perl-module-pod-perldoc-tortf += "perl-module-parent"
-RDEPENDS_perl-module-pod-perldoc-tortf += "perl-module-strict"
-RDEPENDS_perl-module-pod-perldoc-tortf += "perl-module-vars"
-RDEPENDS_perl-module-pod-perldoc-tortf += "perl-module-warnings"
-RDEPENDS_perl-module-pod-perldoc-toterm += "perl-module-parent"
-RDEPENDS_perl-module-pod-perldoc-toterm += "perl-module-pod-text-termcap"
-RDEPENDS_perl-module-pod-perldoc-toterm += "perl-module-strict"
-RDEPENDS_perl-module-pod-perldoc-toterm += "perl-module-vars"
-RDEPENDS_perl-module-pod-perldoc-toterm += "perl-module-warnings"
-RDEPENDS_perl-module-pod-perldoc-totext += "perl-module-parent"
-RDEPENDS_perl-module-pod-perldoc-totext += "perl-module-pod-text"
-RDEPENDS_perl-module-pod-perldoc-totext += "perl-module-strict"
-RDEPENDS_perl-module-pod-perldoc-totext += "perl-module-vars"
-RDEPENDS_perl-module-pod-perldoc-totext += "perl-module-warnings"
-RDEPENDS_perl-module-pod-perldoc-toxml += "perl-module-parent"
-RDEPENDS_perl-module-pod-perldoc-toxml += "perl-module-strict"
-RDEPENDS_perl-module-pod-perldoc-toxml += "perl-module-vars"
-RDEPENDS_perl-module-pod-perldoc-toxml += "perl-module-warnings"
-RDEPENDS_perl-module-pod-plaintext += "perl-module-pod-select"
-RDEPENDS_perl-module-pod-plaintext += "perl-module-strict"
-RDEPENDS_perl-module-pod-plaintext += "perl-module-vars"
-RDEPENDS_perl-module-pod-select += "perl-module-pod-parser"
-RDEPENDS_perl-module-pod-select += "perl-module-strict"
-RDEPENDS_perl-module-pod-select += "perl-module-vars"
-RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-integer"
-RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-pod-simple"
-RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-pod-simple-transcode"
-RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-strict"
-RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-vars"
-RDEPENDS_perl-module-pod-simple-checker += "perl-module-pod-simple"
-RDEPENDS_perl-module-pod-simple-checker += "perl-module-pod-simple-methody"
-RDEPENDS_perl-module-pod-simple-checker += "perl-module-strict"
-RDEPENDS_perl-module-pod-simple-checker += "perl-module-text-wrap"
-RDEPENDS_perl-module-pod-simple-checker += "perl-module-vars"
-RDEPENDS_perl-module-pod-simple-debug += "perl-module-pod-simple"
-RDEPENDS_perl-module-pod-simple-debug += "perl-module-strict"
-RDEPENDS_perl-module-pod-simple-debug += "perl-module-vars"
-RDEPENDS_perl-module-pod-simple-dumpastext += "perl-module-pod-simple"
-RDEPENDS_perl-module-pod-simple-dumpastext += "perl-module-strict"
-RDEPENDS_perl-module-pod-simple-dumpasxml += "perl-module-pod-simple"
-RDEPENDS_perl-module-pod-simple-dumpasxml += "perl-module-strict"
-RDEPENDS_perl-module-pod-simple-dumpasxml += "perl-module-text-wrap"
-RDEPENDS_perl-module-pod-simple-linksection += "perl-module-overload"
-RDEPENDS_perl-module-pod-simple-linksection += "perl-module-pod-simple-blackbox"
-RDEPENDS_perl-module-pod-simple-linksection += "perl-module-strict"
-RDEPENDS_perl-module-pod-simple-linksection += "perl-module-vars"
-RDEPENDS_perl-module-pod-simple-methody += "perl-module-pod-simple"
-RDEPENDS_perl-module-pod-simple-methody += "perl-module-strict"
-RDEPENDS_perl-module-pod-simple-methody += "perl-module-vars"
-RDEPENDS_perl-module-pod-simple += "perl-module-integer"
-RDEPENDS_perl-module-pod-simple += "perl-module-pod-escapes"
-RDEPENDS_perl-module-pod-simple += "perl-module-pod-simple-blackbox"
-RDEPENDS_perl-module-pod-simple += "perl-module-pod-simple-linksection"
-RDEPENDS_perl-module-pod-simple += "perl-module-pod-simple-tiedoutfh"
-RDEPENDS_perl-module-pod-simple += "perl-module-strict"
-RDEPENDS_perl-module-pod-simple += "perl-module-vars"
-RDEPENDS_perl-module-pod-simple-progress += "perl-module-strict"
-RDEPENDS_perl-module-pod-simple-pullparserendtoken += "perl-module-pod-simple-pullparsertoken"
-RDEPENDS_perl-module-pod-simple-pullparserendtoken += "perl-module-strict"
-RDEPENDS_perl-module-pod-simple-pullparserendtoken += "perl-module-vars"
-RDEPENDS_perl-module-pod-simple-pullparser += "perl-module-pod-simple"
-RDEPENDS_perl-module-pod-simple-pullparser += "perl-module-pod-simple-pullparserendtoken"
-RDEPENDS_perl-module-pod-simple-pullparser += "perl-module-pod-simple-pullparserstarttoken"
-RDEPENDS_perl-module-pod-simple-pullparser += "perl-module-pod-simple-pullparsertexttoken"
-RDEPENDS_perl-module-pod-simple-pullparser += "perl-module-strict"
-RDEPENDS_perl-module-pod-simple-pullparserstarttoken += "perl-module-pod-simple-pullparsertoken"
-RDEPENDS_perl-module-pod-simple-pullparserstarttoken += "perl-module-strict"
-RDEPENDS_perl-module-pod-simple-pullparserstarttoken += "perl-module-vars"
-RDEPENDS_perl-module-pod-simple-pullparsertexttoken += "perl-module-pod-simple-pullparsertoken"
-RDEPENDS_perl-module-pod-simple-pullparsertexttoken += "perl-module-strict"
-RDEPENDS_perl-module-pod-simple-pullparsertexttoken += "perl-module-vars"
-RDEPENDS_perl-module-pod-simple-pullparsertoken += "perl-module-strict"
-RDEPENDS_perl-module-pod-simple-rtf += "perl-module-integer"
-RDEPENDS_perl-module-pod-simple-rtf += "perl-module-pod-simple-pullparser"
-RDEPENDS_perl-module-pod-simple-rtf += "perl-module-strict"
-RDEPENDS_perl-module-pod-simple-rtf += "perl-module-vars"
-RDEPENDS_perl-module-pod-simple-search += "perl-module-config"
-RDEPENDS_perl-module-pod-simple-search += "perl-module-cwd"
-RDEPENDS_perl-module-pod-simple-search += "perl-module-file-basename"
-RDEPENDS_perl-module-pod-simple-search += "perl-module-strict"
-RDEPENDS_perl-module-pod-simple-search += "perl-module-vars"
-RDEPENDS_perl-module-pod-simple-simpletree += "perl-module-pod-simple"
-RDEPENDS_perl-module-pod-simple-simpletree += "perl-module-strict"
-RDEPENDS_perl-module-pod-simple-simpletree += "perl-module-vars"
-RDEPENDS_perl-module-pod-simple-textcontent += "perl-module-pod-simple"
-RDEPENDS_perl-module-pod-simple-textcontent += "perl-module-strict"
-RDEPENDS_perl-module-pod-simple-textcontent += "perl-module-vars"
-RDEPENDS_perl-module-pod-simple-text += "perl-module-pod-simple"
-RDEPENDS_perl-module-pod-simple-text += "perl-module-pod-simple-methody"
-RDEPENDS_perl-module-pod-simple-text += "perl-module-strict"
-RDEPENDS_perl-module-pod-simple-text += "perl-module-text-wrap"
-RDEPENDS_perl-module-pod-simple-text += "perl-module-vars"
-RDEPENDS_perl-module-pod-simple-tiedoutfh += "perl-module-strict"
-RDEPENDS_perl-module-pod-simple-tiedoutfh += "perl-module-vars"
-RDEPENDS_perl-module-pod-simple-transcodedumb += "perl-module-strict"
-RDEPENDS_perl-module-pod-simple-transcodedumb += "perl-module-vars"
-RDEPENDS_perl-module-pod-simple-transcode += "perl-module-strict"
-RDEPENDS_perl-module-pod-simple-transcode += "perl-module-vars"
-RDEPENDS_perl-module-pod-simple-transcodesmart += "perl-module-encode"
-RDEPENDS_perl-module-pod-simple-transcodesmart += "perl-module-pod-simple"
-RDEPENDS_perl-module-pod-simple-transcodesmart += "perl-module-strict"
-RDEPENDS_perl-module-pod-simple-transcodesmart += "perl-module-vars"
-RDEPENDS_perl-module-pod-simple-xmloutstream += "perl-module-pod-simple"
-RDEPENDS_perl-module-pod-simple-xmloutstream += "perl-module-strict"
-RDEPENDS_perl-module-pod-simple-xmloutstream += "perl-module-vars"
-RDEPENDS_perl-module-pod-text-color += "perl-module-pod-text"
-RDEPENDS_perl-module-pod-text-color += "perl-module-strict"
-RDEPENDS_perl-module-pod-text-color += "perl-module-term-ansicolor"
-RDEPENDS_perl-module-pod-text-color += "perl-module-vars"
-RDEPENDS_perl-module-pod-text-color += "perl-module-warnings"
-RDEPENDS_perl-module-pod-text-overstrike += "perl-module-pod-text"
-RDEPENDS_perl-module-pod-text-overstrike += "perl-module-strict"
-RDEPENDS_perl-module-pod-text-overstrike += "perl-module-vars"
-RDEPENDS_perl-module-pod-text-overstrike += "perl-module-warnings"
-RDEPENDS_perl-module-pod-text += "perl-module-encode"
-RDEPENDS_perl-module-pod-text += "perl-module-exporter"
-RDEPENDS_perl-module-pod-text += "perl-module-pod-simple"
-RDEPENDS_perl-module-pod-text += "perl-module-strict"
-RDEPENDS_perl-module-pod-text += "perl-module-vars"
-RDEPENDS_perl-module-pod-text += "perl-module-warnings"
-RDEPENDS_perl-module-pod-text-termcap += "perl-module-pod-text"
-RDEPENDS_perl-module-pod-text-termcap += "perl-module-posix"
-RDEPENDS_perl-module-pod-text-termcap += "perl-module-strict"
-RDEPENDS_perl-module-pod-text-termcap += "perl-module-term-cap"
-RDEPENDS_perl-module-pod-text-termcap += "perl-module-vars"
-RDEPENDS_perl-module-pod-text-termcap += "perl-module-warnings"
-RDEPENDS_perl-module-pod-usage += "perl-module-config"
-RDEPENDS_perl-module-pod-usage += "perl-module-exporter"
-RDEPENDS_perl-module-pod-usage += "perl-module-strict"
-RDEPENDS_perl-module-pod-usage += "perl-module-vars"
-RDEPENDS_perl-module-posix += "perl-module-exporter"
-RDEPENDS_perl-module-posix += "perl-module-fcntl"
-RDEPENDS_perl-module-posix += "perl-module-strict"
-RDEPENDS_perl-module-posix += "perl-module-tie-hash"
-RDEPENDS_perl-module-posix += "perl-module-warnings"
-RDEPENDS_perl-module-posix += "perl-module-xsloader"
-RDEPENDS_perl-module-re += "perl-module-exporter"
-RDEPENDS_perl-module-re += "perl-module-strict"
-RDEPENDS_perl-module-re += "perl-module-term-cap"
-RDEPENDS_perl-module-re += "perl-module-warnings"
-RDEPENDS_perl-module-re += "perl-module-xsloader"
-RDEPENDS_perl-module-safe += "perl-module-b"
-RDEPENDS_perl-module-safe += "perl-module-opcode"
-RDEPENDS_perl-module-safe += "perl-module-strict"
-RDEPENDS_perl-module-safe += "perl-module-utf8"
-RDEPENDS_perl-module-scalar-util += "perl-module-carp"
-RDEPENDS_perl-module-scalar-util += "perl-module-exporter"
-RDEPENDS_perl-module-scalar-util += "perl-module-list-util"
-RDEPENDS_perl-module-scalar-util += "perl-module-strict"
-RDEPENDS_perl-module-scalar-util += "perl-module-warnings"
-RDEPENDS_perl-module-sdbm-file += "perl-module-exporter"
-RDEPENDS_perl-module-sdbm-file += "perl-module-strict"
-RDEPENDS_perl-module-sdbm-file += "perl-module-tie-hash"
-RDEPENDS_perl-module-sdbm-file += "perl-module-warnings"
-RDEPENDS_perl-module-sdbm-file += "perl-module-xsloader"
-RDEPENDS_perl-module-search-dict += "perl-module-exporter"
-RDEPENDS_perl-module-search-dict += "perl-module-feature"
-RDEPENDS_perl-module-search-dict += "perl-module-strict"
-RDEPENDS_perl-module-selfloader += "perl-module-exporter"
-RDEPENDS_perl-module-selfloader += "perl-module-io-handle"
-RDEPENDS_perl-module-selfloader += "perl-module-strict"
-RDEPENDS_perl-module-socket += "perl-module-exporter"
-RDEPENDS_perl-module-socket += "perl-module-strict"
-RDEPENDS_perl-module-socket += "perl-module-warnings-register"
-RDEPENDS_perl-module-socket += "perl-module-xsloader"
-RDEPENDS_perl-module-sort += "perl-module-strict"
-RDEPENDS_perl-module-storable += "perl-module-exporter"
-RDEPENDS_perl-module-storable += "perl-module-io-file"
-RDEPENDS_perl-module-storable += "perl-module-xsloader"
-RDEPENDS_perl-module-sub-util += "perl-module-exporter"
-RDEPENDS_perl-module-sub-util += "perl-module-list-util"
-RDEPENDS_perl-module-sub-util += "perl-module-strict"
-RDEPENDS_perl-module-sub-util += "perl-module-warnings"
-RDEPENDS_perl-module-sys-hostname += "perl-module-exporter"
-RDEPENDS_perl-module-sys-hostname += "perl-module-posix"
-RDEPENDS_perl-module-sys-hostname += "perl-module-strict"
-RDEPENDS_perl-module-sys-hostname += "perl-module-warnings"
-RDEPENDS_perl-module-sys-hostname += "perl-module-xsloader"
-RDEPENDS_perl-module-sys-syslog += "perl-module-config"
-RDEPENDS_perl-module-sys-syslog += "perl-module-constant"
-RDEPENDS_perl-module-sys-syslog += "perl-module-dynaloader"
-RDEPENDS_perl-module-sys-syslog += "perl-module-exporter"
-RDEPENDS_perl-module-sys-syslog += "perl-module-fcntl"
-RDEPENDS_perl-module-sys-syslog += "perl-module-file-basename"
-RDEPENDS_perl-module-sys-syslog += "perl-module-posix"
-RDEPENDS_perl-module-sys-syslog += "perl-module-socket"
-RDEPENDS_perl-module-sys-syslog += "perl-module-strict"
-RDEPENDS_perl-module-sys-syslog += "perl-module-sys-hostname"
-RDEPENDS_perl-module-sys-syslog += "perl-module-vars"
-RDEPENDS_perl-module-sys-syslog += "perl-module-warnings"
-RDEPENDS_perl-module-sys-syslog += "perl-module-warnings-register"
-RDEPENDS_perl-module-sys-syslog += "perl-module-xsloader"
-RDEPENDS_perl-module-tap-base += "perl-module-base"
-RDEPENDS_perl-module-tap-base += "perl-module-constant"
-RDEPENDS_perl-module-tap-base += "perl-module-strict"
-RDEPENDS_perl-module-tap-base += "perl-module-tap-object"
-RDEPENDS_perl-module-tap-base += "perl-module-warnings"
-RDEPENDS_perl-module-tap-formatter-base += "perl-module-base"
-RDEPENDS_perl-module-tap-formatter-base += "perl-module-posix"
-RDEPENDS_perl-module-tap-formatter-base += "perl-module-strict"
-RDEPENDS_perl-module-tap-formatter-base += "perl-module-tap-formatter-color"
-RDEPENDS_perl-module-tap-formatter-base += "perl-module-warnings"
-RDEPENDS_perl-module-tap-formatter-color += "perl-module-base"
-RDEPENDS_perl-module-tap-formatter-color += "perl-module-constant"
-RDEPENDS_perl-module-tap-formatter-color += "perl-module-strict"
-RDEPENDS_perl-module-tap-formatter-color += "perl-module-warnings"
-RDEPENDS_perl-module-tap-formatter-console-parallelsession += "perl-module-base"
-RDEPENDS_perl-module-tap-formatter-console-parallelsession += "perl-module-constant"
-RDEPENDS_perl-module-tap-formatter-console-parallelsession += "perl-module-file-path"
-RDEPENDS_perl-module-tap-formatter-console-parallelsession += "perl-module-strict"
-RDEPENDS_perl-module-tap-formatter-console-parallelsession += "perl-module-warnings"
-RDEPENDS_perl-module-tap-formatter-console += "perl-module-base"
-RDEPENDS_perl-module-tap-formatter-console += "perl-module-posix"
-RDEPENDS_perl-module-tap-formatter-console += "perl-module-strict"
-RDEPENDS_perl-module-tap-formatter-console += "perl-module-warnings"
-RDEPENDS_perl-module-tap-formatter-console-session += "perl-module-base"
-RDEPENDS_perl-module-tap-formatter-console-session += "perl-module-strict"
-RDEPENDS_perl-module-tap-formatter-console-session += "perl-module-warnings"
-RDEPENDS_perl-module-tap-formatter-file += "perl-module-base"
-RDEPENDS_perl-module-tap-formatter-file += "perl-module-posix"
-RDEPENDS_perl-module-tap-formatter-file += "perl-module-strict"
-RDEPENDS_perl-module-tap-formatter-file += "perl-module-tap-formatter-file-session"
-RDEPENDS_perl-module-tap-formatter-file += "perl-module-warnings"
-RDEPENDS_perl-module-tap-formatter-file-session += "perl-module-base"
-RDEPENDS_perl-module-tap-formatter-file-session += "perl-module-strict"
-RDEPENDS_perl-module-tap-formatter-file-session += "perl-module-warnings"
-RDEPENDS_perl-module-tap-formatter-session += "perl-module-base"
-RDEPENDS_perl-module-tap-formatter-session += "perl-module-strict"
-RDEPENDS_perl-module-tap-formatter-session += "perl-module-warnings"
-RDEPENDS_perl-module-tap-harness-env += "perl-module-constant"
-RDEPENDS_perl-module-tap-harness-env += "perl-module-strict"
-RDEPENDS_perl-module-tap-harness-env += "perl-module-tap-object"
-RDEPENDS_perl-module-tap-harness-env += "perl-module-text-parsewords"
-RDEPENDS_perl-module-tap-harness-env += "perl-module-warnings"
-RDEPENDS_perl-module-tap-harness += "perl-module-base"
-RDEPENDS_perl-module-tap-harness += "perl-module-carp"
-RDEPENDS_perl-module-tap-harness += "perl-module-file-path"
-RDEPENDS_perl-module-tap-harness += "perl-module-file-spec"
-RDEPENDS_perl-module-tap-harness += "perl-module-io-handle"
-RDEPENDS_perl-module-tap-harness += "perl-module-strict"
-RDEPENDS_perl-module-tap-harness += "perl-module-tap-base"
-RDEPENDS_perl-module-tap-harness += "perl-module-warnings"
-RDEPENDS_perl-module-tap-object += "perl-module-strict"
-RDEPENDS_perl-module-tap-object += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-aggregator += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-aggregator += "perl-module-benchmark"
-RDEPENDS_perl-module-tap-parser-aggregator += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-aggregator += "perl-module-tap-object"
-RDEPENDS_perl-module-tap-parser-aggregator += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-grammar += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-grammar += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-grammar += "perl-module-tap-object"
-RDEPENDS_perl-module-tap-parser-grammar += "perl-module-tap-parser-resultfactory"
-RDEPENDS_perl-module-tap-parser-grammar += "perl-module-tap-parser-yamlish-reader"
-RDEPENDS_perl-module-tap-parser-grammar += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-iterator-array += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-iterator-array += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-iterator-array += "perl-module-tap-parser-iterator"
-RDEPENDS_perl-module-tap-parser-iterator-array += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-carp"
-RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-constant"
-RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-file-basename"
-RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-tap-object"
-RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-iterator += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-iterator += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-iterator += "perl-module-tap-object"
-RDEPENDS_perl-module-tap-parser-iterator += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-iterator-process += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-iterator-process += "perl-module-config"
-RDEPENDS_perl-module-tap-parser-iterator-process += "perl-module-io-handle"
-RDEPENDS_perl-module-tap-parser-iterator-process += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-iterator-process += "perl-module-tap-parser-iterator"
-RDEPENDS_perl-module-tap-parser-iterator-process += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-iterator-stream += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-iterator-stream += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-iterator-stream += "perl-module-tap-parser-iterator"
-RDEPENDS_perl-module-tap-parser-iterator-stream += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-multiplexer += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-multiplexer += "perl-module-constant"
-RDEPENDS_perl-module-tap-parser-multiplexer += "perl-module-io-select"
-RDEPENDS_perl-module-tap-parser-multiplexer += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-multiplexer += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser += "perl-module-base"
-RDEPENDS_perl-module-tap-parser += "perl-module-carp"
-RDEPENDS_perl-module-tap-parser += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-grammar"
-RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-iterator"
-RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-iteratorfactory"
-RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-result"
-RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-resultfactory"
-RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-source"
-RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-sourcehandler-executable"
-RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-sourcehandler-file"
-RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-sourcehandler-handle"
-RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-sourcehandler-perl"
-RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-sourcehandler-rawtap"
-RDEPENDS_perl-module-tap-parser += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-result-bailout += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-result-bailout += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-result-bailout += "perl-module-tap-parser-result"
-RDEPENDS_perl-module-tap-parser-result-bailout += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-result-comment += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-result-comment += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-result-comment += "perl-module-tap-parser-result"
-RDEPENDS_perl-module-tap-parser-result-comment += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-object"
-RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-bailout"
-RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-comment"
-RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-plan"
-RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-pragma"
-RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-test"
-RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-unknown"
-RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-version"
-RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-yaml"
-RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-result += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-result += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-result += "perl-module-tap-object"
-RDEPENDS_perl-module-tap-parser-result += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-result-plan += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-result-plan += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-result-plan += "perl-module-tap-parser-result"
-RDEPENDS_perl-module-tap-parser-result-plan += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-result-pragma += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-result-pragma += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-result-pragma += "perl-module-tap-parser-result"
-RDEPENDS_perl-module-tap-parser-result-pragma += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-result-test += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-result-test += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-result-test += "perl-module-tap-parser-result"
-RDEPENDS_perl-module-tap-parser-result-test += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-result-unknown += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-result-unknown += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-result-unknown += "perl-module-tap-parser-result"
-RDEPENDS_perl-module-tap-parser-result-unknown += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-result-version += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-result-version += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-result-version += "perl-module-tap-parser-result"
-RDEPENDS_perl-module-tap-parser-result-version += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-result-yaml += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-result-yaml += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-result-yaml += "perl-module-tap-parser-result"
-RDEPENDS_perl-module-tap-parser-result-yaml += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-scheduler-job += "perl-module-carp"
-RDEPENDS_perl-module-tap-parser-scheduler-job += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-scheduler-job += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-scheduler += "perl-module-carp"
-RDEPENDS_perl-module-tap-parser-scheduler += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-scheduler += "perl-module-tap-parser-scheduler-job"
-RDEPENDS_perl-module-tap-parser-scheduler += "perl-module-tap-parser-scheduler-spinner"
-RDEPENDS_perl-module-tap-parser-scheduler += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-scheduler-spinner += "perl-module-carp"
-RDEPENDS_perl-module-tap-parser-scheduler-spinner += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-scheduler-spinner += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-constant"
-RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-tap-parser-iteratorfactory"
-RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-tap-parser-iterator-process"
-RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-tap-parser-sourcehandler"
-RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-constant"
-RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-tap-parser-iteratorfactory"
-RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-tap-parser-iterator-stream"
-RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-tap-parser-sourcehandler"
-RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-constant"
-RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-tap-parser-iteratorfactory"
-RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-tap-parser-iterator-stream"
-RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-tap-parser-sourcehandler"
-RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-sourcehandler += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-sourcehandler += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-sourcehandler += "perl-module-tap-parser-iterator"
-RDEPENDS_perl-module-tap-parser-sourcehandler += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-config"
-RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-constant"
-RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-tap-parser-iteratorfactory"
-RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-tap-parser-iterator-process"
-RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-tap-parser-sourcehandler-executable"
-RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-text-parsewords"
-RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-tap-parser-iterator-array"
-RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-tap-parser-iteratorfactory"
-RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-tap-parser-sourcehandler"
-RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-source += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-source += "perl-module-constant"
-RDEPENDS_perl-module-tap-parser-source += "perl-module-file-basename"
-RDEPENDS_perl-module-tap-parser-source += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-source += "perl-module-tap-object"
-RDEPENDS_perl-module-tap-parser-source += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-yamlish-reader += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-yamlish-reader += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-yamlish-reader += "perl-module-tap-object"
-RDEPENDS_perl-module-tap-parser-yamlish-reader += "perl-module-warnings"
-RDEPENDS_perl-module-tap-parser-yamlish-writer += "perl-module-base"
-RDEPENDS_perl-module-tap-parser-yamlish-writer += "perl-module-strict"
-RDEPENDS_perl-module-tap-parser-yamlish-writer += "perl-module-tap-object"
-RDEPENDS_perl-module-tap-parser-yamlish-writer += "perl-module-warnings"
-RDEPENDS_perl-module-term-ansicolor += "perl-module-exporter"
-RDEPENDS_perl-module-term-ansicolor += "perl-module-strict"
-RDEPENDS_perl-module-term-ansicolor += "perl-module-warnings"
-RDEPENDS_perl-module-term-cap += "perl-module-strict"
-RDEPENDS_perl-module-term-cap += "perl-module-vars"
-RDEPENDS_perl-module-term-complete += "perl-module-exporter"
-RDEPENDS_perl-module-term-complete += "perl-module-strict"
-RDEPENDS_perl-module-term-readline += "perl-module-strict"
-RDEPENDS_perl-module-term-readline += "perl-module-term-cap"
-RDEPENDS_perl-module-test-builder-formatter += "perl-module-strict"
-RDEPENDS_perl-module-test-builder-formatter += "perl-module-warnings"
-RDEPENDS_perl-module-test-builder-module += "perl-module-exporter"
-RDEPENDS_perl-module-test-builder-module += "perl-module-strict"
-RDEPENDS_perl-module-test-builder-module += "perl-module-test-builder"
-RDEPENDS_perl-module-test-builder += "perl-module-data-dumper"
-RDEPENDS_perl-module-test-builder += "perl-module-list-util"
-RDEPENDS_perl-module-test-builder += "perl-module-overload"
-RDEPENDS_perl-module-test-builder += "perl-module-strict"
-RDEPENDS_perl-module-test-builder += "perl-module-scalar-util"
-RDEPENDS_perl-module-test-builder += "perl-module-test-builder-formatter"
-RDEPENDS_perl-module-test-builder += "perl-module-test-builder-tododiag"
-RDEPENDS_perl-module-test-builder += "perl-module-test2-api"
-RDEPENDS_perl-module-test-builder += "perl-module-test2-util"
-RDEPENDS_perl-module-test-builder += "perl-module-warnings"
-RDEPENDS_perl-module-test-builder-formatter += "perl-module-strict"
-RDEPENDS_perl-module-test-builder-formatter += "perl-module-test2-formatter"
-RDEPENDS_perl-module-test-builder-formatter += "perl-module-test2-formatter-tap"
-RDEPENDS_perl-module-test-builder-formatter += "perl-module-test2-util-hashbase"
-RDEPENDS_perl-module-test-builder-formatter += "perl-module-warnings"
-RDEPENDS_perl-module-test-builder-tester-color += "perl-module-strict"
-RDEPENDS_perl-module-test-builder-tester-color += "perl-module-test-builder-tester"
-RDEPENDS_perl-module-test-builder-tester += "perl-module-exporter"
-RDEPENDS_perl-module-test-builder-tester += "perl-module-strict"
-RDEPENDS_perl-module-test-builder-tester += "perl-module-test-builder"
-RDEPENDS_perl-module-test-builder-tododiag += "perl-module-strict"
-RDEPENDS_perl-module-test-builder-tododiag += "perl-module-warnings"
-RDEPENDS_perl-module-test-harness += "perl-module-base"
-RDEPENDS_perl-module-test-harness += "perl-module-config"
-RDEPENDS_perl-module-test-harness += "perl-module-constant"
-RDEPENDS_perl-module-test-harness += "perl-module-strict"
-RDEPENDS_perl-module-test-harness += "perl-module-tap-harness"
-RDEPENDS_perl-module-test-harness += "perl-module-tap-parser-aggregator"
-RDEPENDS_perl-module-test-harness += "perl-module-tap-parser-source"
-RDEPENDS_perl-module-test-harness += "perl-module-tap-parser-sourcehandler-perl"
-RDEPENDS_perl-module-test-harness += "perl-module-text-parsewords"
-RDEPENDS_perl-module-test-harness += "perl-module-warnings"
-RDEPENDS_perl-module-test-more += "perl-module-file-temp"
-RDEPENDS_perl-module-test-more += "perl-module-strict"
-RDEPENDS_perl-module-test-more += "perl-module-test-builder-module"
-RDEPENDS_perl-module-test-more += "perl-module-warnings"
-RDEPENDS_perl-module-test += "perl-module-exporter"
-RDEPENDS_perl-module-test += "perl-module-file-temp"
-RDEPENDS_perl-module-test += "perl-module-strict"
-RDEPENDS_perl-module-test-simple += "perl-module-strict"
-RDEPENDS_perl-module-test-simple += "perl-module-test-builder-module"
-RDEPENDS_perl-module-test-tester-capture += "perl-module-config"
-RDEPENDS_perl-module-test-tester-capture += "perl-module-strict"
-RDEPENDS_perl-module-test-tester-capture += "perl-module-test-builder"
-RDEPENDS_perl-module-test-tester-capture += "perl-module-threads-shared"
-RDEPENDS_perl-module-test-tester-capture += "perl-module-vars"
-RDEPENDS_perl-module-test-tester-capturerunner += "perl-module-exporter"
-RDEPENDS_perl-module-test-tester-capturerunner += "perl-module-strict"
-RDEPENDS_perl-module-test-tester-capturerunner += "perl-module-test-tester-capture"
-RDEPENDS_perl-module-test-tester-delegate += "perl-module-strict"
-RDEPENDS_perl-module-test-tester-delegate += "perl-module-vars"
-RDEPENDS_perl-module-test-tester-delegate += "perl-module-warnings"
-RDEPENDS_perl-module-test-tester += "perl-module-exporter"
-RDEPENDS_perl-module-test-tester += "perl-module-strict"
-RDEPENDS_perl-module-test-tester += "perl-module-test-builder"
-RDEPENDS_perl-module-test-tester += "perl-module-test-tester-capturerunner"
-RDEPENDS_perl-module-test-tester += "perl-module-test-tester-delegate"
-RDEPENDS_perl-module-test-tester += "perl-module-vars"
-RDEPENDS_perl-module-test2-api += "perl-module-carp"
-RDEPENDS_perl-module-test2-api += "perl-module-exporter"
-RDEPENDS_perl-module-test2-api += "perl-module-scalar-util"
-RDEPENDS_perl-module-test2-api += "perl-module-strict"
-RDEPENDS_perl-module-test2-api += "perl-module-test2-api-context"
-RDEPENDS_perl-module-test2-api += "perl-module-test2-api-instance"
-RDEPENDS_perl-module-test2-api += "perl-module-test2-api-stack"
-RDEPENDS_perl-module-test2-api += "perl-module-test2-event"
-RDEPENDS_perl-module-test2-api += "perl-module-test2-event-bail"
-RDEPENDS_perl-module-test2-api += "perl-module-test2-event-diag"
-RDEPENDS_perl-module-test2-api += "perl-module-test2-event-exception"
-RDEPENDS_perl-module-test2-api += "perl-module-test2-event-fail"
-RDEPENDS_perl-module-test2-api += "perl-module-test2-event-note"
-RDEPENDS_perl-module-test2-api += "perl-module-test2-event-ok"
-RDEPENDS_perl-module-test2-api += "perl-module-test2-event-plan"
-RDEPENDS_perl-module-test2-api += "perl-module-test2-event-skip"
-RDEPENDS_perl-module-test2-api += "perl-module-test2-event-subtest"
-RDEPENDS_perl-module-test2-api += "perl-module-test2-event-waiting"
-RDEPENDS_perl-module-test2-api += "perl-module-test2-eventfacet-trace"
-RDEPENDS_perl-module-test2-api += "perl-module-test2-hub"
-RDEPENDS_perl-module-test2-api += "perl-module-test2-hub-interceptor"
-RDEPENDS_perl-module-test2-api += "perl-module-test2-hub-interceptor-terminator"
-RDEPENDS_perl-module-test2-api += "perl-module-test2-hub-subtest"
-RDEPENDS_perl-module-test2-api += "perl-module-test2-util"
-RDEPENDS_perl-module-test2-api += "perl-module-test2-util-trace"
-RDEPENDS_perl-module-test2-api += "perl-module-warnings"
-RDEPENDS_perl-module-test2-api-context += "perl-module-carp"
-RDEPENDS_perl-module-test2-api-context += "perl-module-scalar-util"
-RDEPENDS_perl-module-test2-api-context += "perl-module-strict"
-RDEPENDS_perl-module-test2-api-context += "perl-module-test2-api"
-RDEPENDS_perl-module-test2-api-context += "perl-module-test2-event-v2"
-RDEPENDS_perl-module-test2-api-context += "perl-module-test2-eventfacet"
-RDEPENDS_perl-module-test2-api-context += "perl-module-test2-eventfacet-trace"
-RDEPENDS_perl-module-test2-api-context += "perl-module-test2-util"
-RDEPENDS_perl-module-test2-api-context += "perl-module-test2-util-externalmeta"
-RDEPENDS_perl-module-test2-api-context += "perl-module-test2-util-hashbase"
-RDEPENDS_perl-module-test2-api-context += "perl-module-warnings"
-RDEPENDS_perl-module-test2-event += "perl-module-carp"
-RDEPENDS_perl-module-test2-event += "perl-module-scalar-util"
-RDEPENDS_perl-module-test2-event += "perl-module-strict"
-RDEPENDS_perl-module-test2-event += "perl-module-test2-eventfacet"
-RDEPENDS_perl-module-test2-event += "perl-module-test2-eventfacet-about"
-RDEPENDS_perl-module-test2-event += "perl-module-test2-eventfacet-amnesty"
-RDEPENDS_perl-module-test2-event += "perl-module-test2-eventfacet-assert"
-RDEPENDS_perl-module-test2-event += "perl-module-test2-eventfacet-control"
-RDEPENDS_perl-module-test2-event += "perl-module-test2-eventfacet-error"
-RDEPENDS_perl-module-test2-event += "perl-module-test2-eventfacet-hub"
-RDEPENDS_perl-module-test2-event += "perl-module-test2-eventfacet-info"
-RDEPENDS_perl-module-test2-event += "perl-module-test2-eventfacet-meta"
-RDEPENDS_perl-module-test2-event += "perl-module-test2-eventfacet-parent"
-RDEPENDS_perl-module-test2-event += "perl-module-test2-eventfacet-plan"
-RDEPENDS_perl-module-test2-event += "perl-module-test2-eventfacet-trace"
-RDEPENDS_perl-module-test2-event += "perl-module-test2-util"
-RDEPENDS_perl-module-test2-event += "perl-module-test2-util-externalmeta"
-RDEPENDS_perl-module-test2-event += "perl-module-test2-util-hashbase"
-RDEPENDS_perl-module-test2-event += "perl-module-test2-util-trace"
-RDEPENDS_perl-module-test2-event += "perl-module-warnings"
-RDEPENDS_perl-module-test2-event-v2 += "perl-module-carp"
-RDEPENDS_perl-module-test2-event-v2 += "perl-module-scalar-util"
-RDEPENDS_perl-module-test2-event-v2 += "perl-module-test2-util-facets2legacy"
-RDEPENDS_perl-module-test2-event-v2 += "perl-module-test2-util-hashbase"
-RDEPENDS_perl-module-test2-event-v2 += "perl-module-strict"
-RDEPENDS_perl-module-test2-event-v2 += "perl-module-warnings"
-RDEPENDS_perl-module-test2-eventfacet += "perl-module-carp"
-RDEPENDS_perl-module-test2-eventfacet += "perl-module-test2-util"
-RDEPENDS_perl-module-test2-eventfacet += "perl-module-test2-util-hashbase"
-RDEPENDS_perl-module-test2-eventfacet += "perl-module-strict"
-RDEPENDS_perl-module-test2-eventfacet += "perl-module-warnings"
-RDEPENDS_perl-module-test2-hub += "perl-module-carp"
-RDEPENDS_perl-module-test2-hub += "perl-module-list-util"
-RDEPENDS_perl-module-test2-hub += "perl-module-scalar-util"
-RDEPENDS_perl-module-test2-hub += "perl-module-strict"
-RDEPENDS_perl-module-test2-hub += "perl-module-test2-event-ok"
-RDEPENDS_perl-module-test2-hub += "perl-module-test2-event-pass"
-RDEPENDS_perl-module-test2-hub += "perl-module-test2-event-plan"
-RDEPENDS_perl-module-test2-hub += "perl-module-test2-util"
-RDEPENDS_perl-module-test2-hub += "perl-module-test2-util-externalmeta"
-RDEPENDS_perl-module-test2-hub += "perl-module-test2-util-hashbase"
-RDEPENDS_perl-module-test2-hub += "perl-module-warnings"
-RDEPENDS_perl-module-test2-util += "perl-module-carp"
-RDEPENDS_perl-module-test2-util += "perl-module-config"
-RDEPENDS_perl-module-test2-util += "perl-module-posix"
-RDEPENDS_perl-module-test2-util += "perl-module-strict"
-RDEPENDS_perl-module-test2-util += "perl-module-warnings"
-RDEPENDS_perl-module-test2-util-facets2legacy += "perl-module-base"
-RDEPENDS_perl-module-test2-util-facets2legacy += "perl-module-carp"
-RDEPENDS_perl-module-test2-util-facets2legacy += "perl-module-exporter"
-RDEPENDS_perl-module-test2-util-facets2legacy += "perl-module-scalar-util"
-RDEPENDS_perl-module-test2-util-facets2legacy += "perl-module-strict"
-RDEPENDS_perl-module-test2-util-facets2legacy += "perl-module-warnings"
-RDEPENDS_perl-module-test2-util-hashbase += "perl-module-carp"
-RDEPENDS_perl-module-test2-util-hashbase += "perl-module-mro"
-RDEPENDS_perl-module-test2-util-hashbase += "perl-module-strict"
-RDEPENDS_perl-module-test2-util-hashbase += "perl-module-warnings"
-RDEPENDS_perl-module-text-abbrev += "perl-module-exporter"
-RDEPENDS_perl-module-text-balanced += "perl-module-exporter"
-RDEPENDS_perl-module-text-balanced += "perl-module-overload"
-RDEPENDS_perl-module-text-balanced += "perl-module-selfloader"
-RDEPENDS_perl-module-text-balanced += "perl-module-strict"
-RDEPENDS_perl-module-text-balanced += "perl-module-vars"
-RDEPENDS_perl-module-text-parsewords += "perl-module-exporter"
-RDEPENDS_perl-module-text-parsewords += "perl-module-strict"
-RDEPENDS_perl-module-text-tabs += "perl-module-exporter"
-RDEPENDS_perl-module-text-tabs += "perl-module-strict"
-RDEPENDS_perl-module-text-tabs += "perl-module-vars"
-RDEPENDS_perl-module-text-wrap += "perl-module-exporter"
-RDEPENDS_perl-module-text-wrap += "perl-module-re"
-RDEPENDS_perl-module-text-wrap += "perl-module-strict"
-RDEPENDS_perl-module-text-wrap += "perl-module-text-tabs"
-RDEPENDS_perl-module-text-wrap += "perl-module-vars"
-RDEPENDS_perl-module-text-wrap += "perl-module-warnings-register"
-RDEPENDS_perl-module-thread += "perl-module-config"
-RDEPENDS_perl-module-thread += "perl-module-exporter"
-RDEPENDS_perl-module-thread += "perl-module-strict"
-RDEPENDS_perl-module-thread += "perl-module-threads"
-RDEPENDS_perl-module-thread += "perl-module-threads-shared"
-RDEPENDS_perl-module-thread += "perl-module-warnings"
-RDEPENDS_perl-module-thread-queue += "perl-module-strict"
-RDEPENDS_perl-module-thread-queue += "perl-module-threads-shared"
-RDEPENDS_perl-module-thread-queue += "perl-module-warnings"
-RDEPENDS_perl-module-thread-semaphore += "perl-module-strict"
-RDEPENDS_perl-module-thread-semaphore += "perl-module-threads-shared"
-RDEPENDS_perl-module-thread-semaphore += "perl-module-warnings"
-RDEPENDS_perl-module-threads += "perl-module-config"
-RDEPENDS_perl-module-threads += "perl-module-overload"
-RDEPENDS_perl-module-threads += "perl-module-strict"
-RDEPENDS_perl-module-threads += "perl-module-warnings"
-RDEPENDS_perl-module-threads += "perl-module-xsloader"
-RDEPENDS_perl-module-threads-shared += "perl-module-strict"
-RDEPENDS_perl-module-threads-shared += "perl-module-warnings"
-RDEPENDS_perl-module-threads-shared += "perl-module-xsloader"
-RDEPENDS_perl-module-tie-array += "perl-module-strict"
-RDEPENDS_perl-module-tie-file += "perl-module-fcntl"
-RDEPENDS_perl-module-tie-file += "perl-module-posix"
-RDEPENDS_perl-module-tie-file += "perl-module-strict"
-RDEPENDS_perl-module-tie-handle += "perl-module-tie-stdhandle"
-RDEPENDS_perl-module-tie-handle += "perl-module-warnings-register"
-RDEPENDS_perl-module-tie-hash-namedcapture += "perl-module-strict"
-RDEPENDS_perl-module-tie-hash-namedcapture += "perl-module-xsloader"
-RDEPENDS_perl-module-tie-hash += "perl-module-warnings-register"
-RDEPENDS_perl-module-tie-memoize += "perl-module-strict"
-RDEPENDS_perl-module-tie-memoize += "perl-module-tie-hash"
-RDEPENDS_perl-module-tie-refhash += "perl-module-config"
-RDEPENDS_perl-module-tie-refhash += "perl-module-overload"
-RDEPENDS_perl-module-tie-refhash += "perl-module-strict"
-RDEPENDS_perl-module-tie-refhash += "perl-module-tie-hash"
-RDEPENDS_perl-module-tie-refhash += "perl-module-vars"
-RDEPENDS_perl-module-tie-scalar += "perl-module-warnings-register"
-RDEPENDS_perl-module-tie-stdhandle += "perl-module-strict"
-RDEPENDS_perl-module-tie-stdhandle += "perl-module-tie-handle"
-RDEPENDS_perl-module-tie-substrhash += "perl-module-integer"
-RDEPENDS_perl-module-time-gmtime += "perl-module-exporter"
-RDEPENDS_perl-module-time-gmtime += "perl-module-strict"
-RDEPENDS_perl-module-time-gmtime += "perl-module-time-tm"
-RDEPENDS_perl-module-time-hires += "perl-module-exporter"
-RDEPENDS_perl-module-time-hires += "perl-module-strict"
-RDEPENDS_perl-module-time-hires += "perl-module-xsloader"
-RDEPENDS_perl-module-time-local += "perl-module-config"
-RDEPENDS_perl-module-time-local += "perl-module-constant"
-RDEPENDS_perl-module-time-local += "perl-module-exporter"
-RDEPENDS_perl-module-time-local += "perl-module-parent"
-RDEPENDS_perl-module-time-local += "perl-module-strict"
-RDEPENDS_perl-module-time-localtime += "perl-module-exporter"
-RDEPENDS_perl-module-time-localtime += "perl-module-strict"
-RDEPENDS_perl-module-time-localtime += "perl-module-time-tm"
-RDEPENDS_perl-module-time-piece += "perl-module-constant"
-RDEPENDS_perl-module-time-piece += "perl-module-exporter"
-RDEPENDS_perl-module-time-piece += "perl-module-integer"
-RDEPENDS_perl-module-time-piece += "perl-module-overload"
-RDEPENDS_perl-module-time-piece += "perl-module-strict"
-RDEPENDS_perl-module-time-piece += "perl-module-time-local"
-RDEPENDS_perl-module-time-piece += "perl-module-time-seconds"
-RDEPENDS_perl-module-time-piece += "perl-module-xsloader"
-RDEPENDS_perl-module-time-seconds += "perl-module-constant"
-RDEPENDS_perl-module-time-seconds += "perl-module-exporter"
-RDEPENDS_perl-module-time-seconds += "perl-module-overload"
-RDEPENDS_perl-module-time-seconds += "perl-module-strict"
-RDEPENDS_perl-module-time-tm += "perl-module-class-struct"
-RDEPENDS_perl-module-time-tm += "perl-module-strict"
-RDEPENDS_perl-module-unicode-collate-cjk-big5 += "perl-module-strict"
-RDEPENDS_perl-module-unicode-collate-cjk-big5 += "perl-module-warnings"
-RDEPENDS_perl-module-unicode-collate-cjk-gb2312 += "perl-module-strict"
-RDEPENDS_perl-module-unicode-collate-cjk-gb2312 += "perl-module-warnings"
-RDEPENDS_perl-module-unicode-collate-cjk-jisx0208 += "perl-module-strict"
-RDEPENDS_perl-module-unicode-collate-cjk-jisx0208 += "perl-module-warnings"
-RDEPENDS_perl-module-unicode-collate-cjk-korean += "perl-module-strict"
-RDEPENDS_perl-module-unicode-collate-cjk-korean += "perl-module-warnings"
-RDEPENDS_perl-module-unicode-collate-cjk-pinyin += "perl-module-strict"
-RDEPENDS_perl-module-unicode-collate-cjk-pinyin += "perl-module-warnings"
-RDEPENDS_perl-module-unicode-collate-cjk-stroke += "perl-module-strict"
-RDEPENDS_perl-module-unicode-collate-cjk-stroke += "perl-module-warnings"
-RDEPENDS_perl-module-unicode-collate-cjk-zhuyin += "perl-module-strict"
-RDEPENDS_perl-module-unicode-collate-cjk-zhuyin += "perl-module-warnings"
-RDEPENDS_perl-module-unicode-collate-locale += "perl-module-base"
-RDEPENDS_perl-module-unicode-collate-locale += "perl-module-strict"
-RDEPENDS_perl-module-unicode-collate-locale += "perl-module-warnings"
-RDEPENDS_perl-module-unicode-collate += "perl-module-constant"
-RDEPENDS_perl-module-unicode-collate += "perl-module-strict"
-RDEPENDS_perl-module-unicode-collate += "perl-module-warnings"
-RDEPENDS_perl-module-unicode-collate += "perl-module-xsloader"
-RDEPENDS_perl-module-unicode-normalize += "perl-module-exporter"
-RDEPENDS_perl-module-unicode-normalize += "perl-module-strict"
-RDEPENDS_perl-module-unicode-normalize += "perl-module-warnings"
-RDEPENDS_perl-module-unicode-normalize += "perl-module-xsloader"
-RDEPENDS_perl-module-unicode-ucd += "perl-module-charnames"
-RDEPENDS_perl-module-unicode-ucd += "perl-module-exporter"
-RDEPENDS_perl-module-unicode-ucd += "perl-module-feature"
-RDEPENDS_perl-module-unicode-ucd += "perl-module-if"
-RDEPENDS_perl-module-unicode-ucd += "perl-module-integer"
-RDEPENDS_perl-module-unicode-ucd += "perl-module-strict"
-RDEPENDS_perl-module-unicode-ucd += "perl-module-unicode-normalize"
-RDEPENDS_perl-module-unicode-ucd += "perl-module-utf8-heavy"
-RDEPENDS_perl-module-unicode-ucd += "perl-module-warnings"
-RDEPENDS_perl-module-user-grent += "perl-module-class-struct"
-RDEPENDS_perl-module-user-grent += "perl-module-exporter"
-RDEPENDS_perl-module-user-grent += "perl-module-strict"
-RDEPENDS_perl-module-user-pwent += "perl-module-class-struct"
-RDEPENDS_perl-module-user-pwent += "perl-module-config"
-RDEPENDS_perl-module-user-pwent += "perl-module-exporter"
-RDEPENDS_perl-module-user-pwent += "perl-module-strict"
-RDEPENDS_perl-module-user-pwent += "perl-module-warnings"
-RDEPENDS_perl-module-utf8 += "perl-module-utf8-heavy"
-RDEPENDS_perl-module-version += "perl-module-strict"
-RDEPENDS_perl-module-version += "perl-module-version-regex"
-RDEPENDS_perl-module-version += "perl-module-warnings-register"
-RDEPENDS_perl-module-version-regex += "perl-module-strict"
-RDEPENDS_perl-module-xsloader += "perl-module-dynaloader"
-RDEPENDS_perl-module-anydbm-file += "perl-module-strict"
-RDEPENDS_perl-module-anydbm-file += "perl-module-warnings"
-RDEPENDS_perl-module-app-cpan += "perl-module-config"
-RDEPENDS_perl-module-app-cpan += "perl-module-constant"
-RDEPENDS_perl-module-app-cpan += "perl-module-cpan"
-RDEPENDS_perl-module-app-cpan += "perl-module-cwd"
-RDEPENDS_perl-module-app-cpan += "perl-module-data-dumper"
-RDEPENDS_perl-module-app-cpan += "perl-module-file-basename"
-RDEPENDS_perl-module-app-cpan += "perl-module-file-find"
-RDEPENDS_perl-module-app-cpan += "perl-module-getopt-std"
-RDEPENDS_perl-module-app-cpan += "perl-module-if"
-RDEPENDS_perl-module-app-cpan += "perl-module-net-ping"
-RDEPENDS_perl-module-app-cpan += "perl-module-strict"
-RDEPENDS_perl-module-app-cpan += "perl-module-user-pwent"
-RDEPENDS_perl-module-app-cpan += "perl-module-vars"
-RDEPENDS_perl-module-app-cpan += "perl-module-warnings"
-RDEPENDS_perl-module-app-prove += "perl-module-app-prove-state"
-RDEPENDS_perl-module-app-prove += "perl-module-base"
-RDEPENDS_perl-module-app-prove += "perl-module-constant"
-RDEPENDS_perl-module-app-prove += "perl-module-getopt-long"
-RDEPENDS_perl-module-app-prove += "perl-module-strict"
-RDEPENDS_perl-module-app-prove += "perl-module-tap-harness"
-RDEPENDS_perl-module-app-prove += "perl-module-tap-harness-env"
-RDEPENDS_perl-module-app-prove += "perl-module-text-parsewords"
-RDEPENDS_perl-module-app-prove += "perl-module-warnings"
-RDEPENDS_perl-module-app-prove-state += "perl-module-app-prove-state-result"
-RDEPENDS_perl-module-app-prove-state += "perl-module-base"
-RDEPENDS_perl-module-app-prove-state += "perl-module-constant"
-RDEPENDS_perl-module-app-prove-state += "perl-module-file-find"
-RDEPENDS_perl-module-app-prove-state += "perl-module-strict"
-RDEPENDS_perl-module-app-prove-state += "perl-module-tap-parser-yamlish-reader"
-RDEPENDS_perl-module-app-prove-state += "perl-module-tap-parser-yamlish-writer"
-RDEPENDS_perl-module-app-prove-state += "perl-module-warnings"
-RDEPENDS_perl-module-app-prove-state-result += "perl-module-app-prove-state-result-test"
-RDEPENDS_perl-module-app-prove-state-result += "perl-module-constant"
-RDEPENDS_perl-module-app-prove-state-result += "perl-module-strict"
-RDEPENDS_perl-module-app-prove-state-result += "perl-module-warnings"
-RDEPENDS_perl-module-app-prove-state-result-test += "perl-module-strict"
-RDEPENDS_perl-module-app-prove-state-result-test += "perl-module-warnings"
-RDEPENDS_perl-module-archive-tar-constant += "perl-module-constant"
-RDEPENDS_perl-module-archive-tar-constant += "perl-module-exporter"
-RDEPENDS_perl-module-archive-tar-constant += "perl-module-io-compress-bzip2"
-RDEPENDS_perl-module-archive-tar-constant += "perl-module-strict"
-RDEPENDS_perl-module-archive-tar-constant += "perl-module-time-local"
-RDEPENDS_perl-module-archive-tar-constant += "perl-module-warnings"
-RDEPENDS_perl-module-archive-tar-file += "perl-module-archive-tar"
-RDEPENDS_perl-module-archive-tar-file += "perl-module-archive-tar-constant"
-RDEPENDS_perl-module-archive-tar-file += "perl-module-file-basename"
-RDEPENDS_perl-module-archive-tar-file += "perl-module-io-file"
-RDEPENDS_perl-module-archive-tar-file += "perl-module-strict"
-RDEPENDS_perl-module-archive-tar-file += "perl-module-vars"
-RDEPENDS_perl-module-archive-tar += "perl-module-archive-tar-constant"
-RDEPENDS_perl-module-archive-tar += "perl-module-archive-tar-file"
-RDEPENDS_perl-module-archive-tar += "perl-module-config"
-RDEPENDS_perl-module-archive-tar += "perl-module-cwd"
-RDEPENDS_perl-module-archive-tar += "perl-module-exporter"
-RDEPENDS_perl-module-archive-tar += "perl-module-file-path"
-RDEPENDS_perl-module-archive-tar += "perl-module-io-file"
-RDEPENDS_perl-module-archive-tar += "perl-module-io-zlib"
-RDEPENDS_perl-module-archive-tar += "perl-module-strict"
-RDEPENDS_perl-module-archive-tar += "perl-module-vars"
-RDEPENDS_perl-module-arybase += "perl-module-xsloader"
-RDEPENDS_perl-module-attribute-handlers += "perl-module-strict"
-RDEPENDS_perl-module-attribute-handlers += "perl-module-warnings"
-RDEPENDS_perl-module-attributes += "perl-module-exporter"
-RDEPENDS_perl-module-attributes += "perl-module-strict"
-RDEPENDS_perl-module-attributes += "perl-module-warnings"
-RDEPENDS_perl-module-attributes += "perl-module-xsloader"
-RDEPENDS_perl-module-autodie-exception += "perl-module-constant"
-RDEPENDS_perl-module-autodie-exception += "perl-module-fatal"
-RDEPENDS_perl-module-autodie-exception += "perl-module-fcntl"
-RDEPENDS_perl-module-autodie-exception += "perl-module-overload"
-RDEPENDS_perl-module-autodie-exception += "perl-module-strict"
-RDEPENDS_perl-module-autodie-exception += "perl-module-warnings"
-RDEPENDS_perl-module-autodie-exception-system += "perl-module-parent"
-RDEPENDS_perl-module-autodie-exception-system += "perl-module-strict"
-RDEPENDS_perl-module-autodie-exception-system += "perl-module-warnings"
-RDEPENDS_perl-module-autodie-hints += "perl-module-b"
-RDEPENDS_perl-module-autodie-hints += "perl-module-constant"
-RDEPENDS_perl-module-autodie-hints += "perl-module-strict"
-RDEPENDS_perl-module-autodie-hints += "perl-module-warnings"
-RDEPENDS_perl-module-autodie += "perl-module-constant"
-RDEPENDS_perl-module-autodie += "perl-module-lib"
-RDEPENDS_perl-module-autodie += "perl-module-parent"
-RDEPENDS_perl-module-autodie += "perl-module-strict"
-RDEPENDS_perl-module-autodie += "perl-module-warnings"
-RDEPENDS_perl-module-autodie-scope-guard += "perl-module-strict"
-RDEPENDS_perl-module-autodie-scope-guard += "perl-module-warnings"
-RDEPENDS_perl-module-autodie-scope-guardstack += "perl-module-autodie-scope-guard"
-RDEPENDS_perl-module-autodie-scope-guardstack += "perl-module-strict"
-RDEPENDS_perl-module-autodie-scope-guardstack += "perl-module-warnings"
-RDEPENDS_perl-module-autodie-skip += "perl-module-strict"
-RDEPENDS_perl-module-autodie-skip += "perl-module-warnings"
-RDEPENDS_perl-module-autodie-util += "perl-module-autodie-scope-guardstack"
-RDEPENDS_perl-module-autodie-util += "perl-module-exporter"
-RDEPENDS_perl-module-autodie-util += "perl-module-strict"
-RDEPENDS_perl-module-autodie-util += "perl-module-warnings"
-RDEPENDS_perl-module-autoloader += "perl-module-strict"
-RDEPENDS_perl-module-autosplit += "perl-module-config"
-RDEPENDS_perl-module-autosplit += "perl-module-exporter"
-RDEPENDS_perl-module-autosplit += "perl-module-file-basename"
-RDEPENDS_perl-module-autosplit += "perl-module-file-path"
-RDEPENDS_perl-module-autosplit += "perl-module-strict"
-RDEPENDS_perl-module-base += "perl-module-strict"
-RDEPENDS_perl-module-b-concise += "perl-module-b"
-RDEPENDS_perl-module-b-concise += "perl-module-b-op-private"
-RDEPENDS_perl-module-b-concise += "perl-module-config"
-RDEPENDS_perl-module-b-concise += "perl-module-exporter"
-RDEPENDS_perl-module-b-concise += "perl-module-feature"
-RDEPENDS_perl-module-b-concise += "perl-module-strict"
-RDEPENDS_perl-module-b-concise += "perl-module-warnings"
-RDEPENDS_perl-module-b-debug += "perl-module-b"
-RDEPENDS_perl-module-b-debug += "perl-module-config"
-RDEPENDS_perl-module-b-debug += "perl-module-strict"
-RDEPENDS_perl-module-benchmark += "perl-module-exporter"
-RDEPENDS_perl-module-benchmark += "perl-module-strict"
-RDEPENDS_perl-module-bigint += "perl-module-constant"
-RDEPENDS_perl-module-bigint += "perl-module-exporter"
-RDEPENDS_perl-module-bigint += "perl-module-math-bigint"
-RDEPENDS_perl-module-bigint += "perl-module-math-bigint-trace"
-RDEPENDS_perl-module-bigint += "perl-module-overload"
-RDEPENDS_perl-module-bigint += "perl-module-strict"
-RDEPENDS_perl-module-bigint += "perl-module-warnings"
-RDEPENDS_perl-module-bignum += "perl-module-bigint"
-RDEPENDS_perl-module-bignum += "perl-module-exporter"
-RDEPENDS_perl-module-bignum += "perl-module-math-bigfloat"
-RDEPENDS_perl-module-bignum += "perl-module-math-bigfloat-trace"
-RDEPENDS_perl-module-bignum += "perl-module-math-bigint"
-RDEPENDS_perl-module-bignum += "perl-module-math-bigint-trace"
-RDEPENDS_perl-module-bignum += "perl-module-overload"
-RDEPENDS_perl-module-bignum += "perl-module-strict"
-RDEPENDS_perl-module-bignum += "perl-module-warnings"
-RDEPENDS_perl-module-bigrat += "perl-module-bigint"
-RDEPENDS_perl-module-bigrat += "perl-module-exporter"
-RDEPENDS_perl-module-bigrat += "perl-module-math-bigfloat"
-RDEPENDS_perl-module-bigrat += "perl-module-math-bigint"
-RDEPENDS_perl-module-bigrat += "perl-module-math-bigint-trace"
-RDEPENDS_perl-module-bigrat += "perl-module-math-bigrat"
-RDEPENDS_perl-module-bigrat += "perl-module-overload"
-RDEPENDS_perl-module-bigrat += "perl-module-strict"
-RDEPENDS_perl-module-bigrat += "perl-module-warnings"
-RDEPENDS_perl-module-blib += "perl-module-cwd"
-RDEPENDS_perl-module-b += "perl-module-exporter"
-RDEPENDS_perl-module-b += "perl-module-xsloader"
-RDEPENDS_perl-module-b-showlex += "perl-module-b"
-RDEPENDS_perl-module-b-showlex += "perl-module-b-concise"
-RDEPENDS_perl-module-b-showlex += "perl-module-b-terse"
-RDEPENDS_perl-module-b-showlex += "perl-module-strict"
-RDEPENDS_perl-module-b-terse += "perl-module-b"
-RDEPENDS_perl-module-b-terse += "perl-module-b-concise"
-RDEPENDS_perl-module-b-terse += "perl-module-strict"
-RDEPENDS_perl-module-b-xref += "perl-module-b"
-RDEPENDS_perl-module-b-xref += "perl-module-config"
-RDEPENDS_perl-module-b-xref += "perl-module-strict"
-RDEPENDS_perl-module-bytes += "perl-module-bytes-heavy"
-RDEPENDS_perl-module--charnames += "perl-module-bytes"
-RDEPENDS_perl-module-charnames += "perl-module-bytes"
-RDEPENDS_perl-module-charnames += "perl-module--charnames"
-RDEPENDS_perl-module--charnames += "perl-module-re"
-RDEPENDS_perl-module-charnames += "perl-module-re"
-RDEPENDS_perl-module--charnames += "perl-module-strict"
-RDEPENDS_perl-module-charnames += "perl-module-strict"
-RDEPENDS_perl-module--charnames += "perl-module-warnings"
-RDEPENDS_perl-module-charnames += "perl-module-warnings"
-RDEPENDS_perl-module-class-struct += "perl-module-exporter"
-RDEPENDS_perl-module-class-struct += "perl-module-strict"
-RDEPENDS_perl-module-class-struct += "perl-module-warnings-register"
-RDEPENDS_perl-module-compress-raw-bzip2 += "perl-module-bytes "
-RDEPENDS_perl-module-compress-raw-bzip2 += "perl-module-constant"
-RDEPENDS_perl-module-compress-raw-bzip2 += "perl-module-dynaloader"
-RDEPENDS_perl-module-compress-raw-bzip2 += "perl-module-exporter"
-RDEPENDS_perl-module-compress-raw-bzip2 += "perl-module-strict "
-RDEPENDS_perl-module-compress-raw-bzip2 += "perl-module-warnings "
-RDEPENDS_perl-module-compress-raw-bzip2 += "perl-module-xsloader"
-RDEPENDS_perl-module-compress-raw-zlib += "perl-module-bytes "
-RDEPENDS_perl-module-compress-raw-zlib += "perl-module-constant"
-RDEPENDS_perl-module-compress-raw-zlib += "perl-module-dynaloader"
-RDEPENDS_perl-module-compress-raw-zlib += "perl-module-exporter"
-RDEPENDS_perl-module-compress-raw-zlib += "perl-module-strict "
-RDEPENDS_perl-module-compress-raw-zlib += "perl-module-warnings "
-RDEPENDS_perl-module-compress-raw-zlib += "perl-module-xsloader"
-RDEPENDS_perl-module-compress-zlib += "perl-module-bytes "
-RDEPENDS_perl-module-compress-zlib += "perl-module-compress-raw-zlib"
-RDEPENDS_perl-module-compress-zlib += "perl-module-constant"
-RDEPENDS_perl-module-compress-zlib += "perl-module-exporter"
-RDEPENDS_perl-module-compress-zlib += "perl-module-io-compress-base-common"
-RDEPENDS_perl-module-compress-zlib += "perl-module-io-compress-gzip"
-RDEPENDS_perl-module-compress-zlib += "perl-module-io-compress-gzip-constants"
-RDEPENDS_perl-module-compress-zlib += "perl-module-io-handle "
-RDEPENDS_perl-module-compress-zlib += "perl-module-io-uncompress-gunzip"
-RDEPENDS_perl-module-compress-zlib += "perl-module-strict "
-RDEPENDS_perl-module-compress-zlib += "perl-module-warnings "
-RDEPENDS_perl-module-config-extensions += "perl-module-config"
-RDEPENDS_perl-module-config-extensions += "perl-module-exporter"
-RDEPENDS_perl-module-config-extensions += "perl-module-strict"
-RDEPENDS_perl-module-config += "perl-module-strict"
-RDEPENDS_perl-module-config += "perl-module-warnings"
RDEPENDS_perl-module-config-perl-v += "perl-module-config"
RDEPENDS_perl-module-config-perl-v += "perl-module-exporter"
RDEPENDS_perl-module-config-perl-v += "perl-module-strict"
@@ -2533,7 +220,6 @@ RDEPENDS_perl-module-cpan += "perl-module-json-pp"
RDEPENDS_perl-module-cpan += "perl-module-lib"
RDEPENDS_perl-module-cpan += "perl-module-net-ping"
RDEPENDS_perl-module-cpan += "perl-module-overload"
-RDEPENDS_perl-module-cpan += "perl-module-parse-cpan-meta"
RDEPENDS_perl-module-cpan += "perl-module-posix"
RDEPENDS_perl-module-cpan += "perl-module-safe"
RDEPENDS_perl-module-cpan += "perl-module-strict"
@@ -2552,6 +238,13 @@ RDEPENDS_perl-module-data-dumper += "perl-module-config"
RDEPENDS_perl-module-data-dumper += "perl-module-constant"
RDEPENDS_perl-module-data-dumper += "perl-module-exporter"
RDEPENDS_perl-module-data-dumper += "perl-module-xsloader"
+RDEPENDS_perl-module-db-file += "perl-module-dynaloader"
+RDEPENDS_perl-module-db-file += "perl-module-exporter"
+RDEPENDS_perl-module-db-file += "perl-module-fcntl"
+RDEPENDS_perl-module-db-file += "perl-module-strict "
+RDEPENDS_perl-module-db-file += "perl-module-strict"
+RDEPENDS_perl-module-db-file += "perl-module-tie-hash"
+RDEPENDS_perl-module-db-file += "perl-module-warnings"
RDEPENDS_perl-module-dbm-filter-compress += "perl-module-strict"
RDEPENDS_perl-module-dbm-filter-compress += "perl-module-warnings"
RDEPENDS_perl-module-dbm-filter-encode += "perl-module-strict"
@@ -2698,7 +391,6 @@ RDEPENDS_perl-module-encode += "perl-module-constant"
RDEPENDS_perl-module-encode += "perl-module-encode-alias"
RDEPENDS_perl-module-encode += "perl-module-encode-config"
RDEPENDS_perl-module-encode += "perl-module-encode-configlocal-pm"
-RDEPENDS_perl-module-encode += "perl-module-encode-encoding"
RDEPENDS_perl-module-encode += "perl-module-encode-mime-name"
RDEPENDS_perl-module-encode += "perl-module-exporter"
RDEPENDS_perl-module-encode += "perl-module-parent"
@@ -2885,7 +577,6 @@ RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-makemaker-confi
RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-makemaker-version"
RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-manifest"
RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-mm"
-RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-mm-unix"
RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-my"
RDEPENDS_perl-module-extutils-makemaker += "perl-module-file-path"
RDEPENDS_perl-module-extutils-makemaker += "perl-module-strict"
@@ -3081,7 +772,6 @@ RDEPENDS_perl-module-file-fetch += "perl-module-load"
RDEPENDS_perl-module-file-fetch += "perl-module-params-check"
RDEPENDS_perl-module-file-fetch += "perl-module-strict"
RDEPENDS_perl-module-file-fetch += "perl-module-vars"
-RDEPENDS_perl-module-file-find += "perl-module-config"
RDEPENDS_perl-module-file-find += "perl-module-cwd"
RDEPENDS_perl-module-file-find += "perl-module-exporter"
RDEPENDS_perl-module-file-find += "perl-module-file-basename"
@@ -3093,7 +783,6 @@ RDEPENDS_perl-module-file-globmapper += "perl-module-strict"
RDEPENDS_perl-module-file-globmapper += "perl-module-warnings"
RDEPENDS_perl-module-file-glob += "perl-module-exporter"
RDEPENDS_perl-module-file-glob += "perl-module-strict"
-RDEPENDS_perl-module-file-glob += "perl-module-warnings"
RDEPENDS_perl-module-file-glob += "perl-module-xsloader"
RDEPENDS_perl-module-filehandle += "perl-module-exporter"
RDEPENDS_perl-module-filehandle += "perl-module-fcntl"
@@ -3122,9 +811,7 @@ RDEPENDS_perl-module-file-temp += "perl-module-io-seekable"
RDEPENDS_perl-module-file-temp += "perl-module-overload"
RDEPENDS_perl-module-file-temp += "perl-module-parent"
RDEPENDS_perl-module-file-temp += "perl-module-posix"
-RDEPENDS_perl-module-file-temp += "perl-module-file-spec"
RDEPENDS_perl-module-file-temp += "perl-module-strict"
-RDEPENDS_perl-module-file-temp += "perl-module-vars"
RDEPENDS_perl-module-filter-simple += "perl-module-filter-util-call"
RDEPENDS_perl-module-filter-simple += "perl-module-text-balanced"
RDEPENDS_perl-module-filter-util-call += "perl-module-exporter"
@@ -3134,6 +821,11 @@ RDEPENDS_perl-module-filter-util-call += "perl-module-xsloader"
RDEPENDS_perl-module-findbin += "perl-module-cwd"
RDEPENDS_perl-module-findbin += "perl-module-exporter"
RDEPENDS_perl-module-findbin += "perl-module-file-basename"
+RDEPENDS_perl-module-gdbm-file += "perl-module-exporter"
+RDEPENDS_perl-module-gdbm-file += "perl-module-strict"
+RDEPENDS_perl-module-gdbm-file += "perl-module-tie-hash"
+RDEPENDS_perl-module-gdbm-file += "perl-module-warnings"
+RDEPENDS_perl-module-gdbm-file += "perl-module-xsloader"
RDEPENDS_perl-module-getopt-long += "perl-module-constant"
RDEPENDS_perl-module-getopt-long += "perl-module-exporter"
RDEPENDS_perl-module-getopt-long += "perl-module-overload"
@@ -3388,6 +1080,7 @@ RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-warnings"
RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-bytes"
RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-compress-raw-zlib"
RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-constant"
+RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-encode"
RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-exporter "
RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-fcntl"
RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-io-compress-base-common"
@@ -3485,116 +1178,6 @@ RDEPENDS_perl-module-load += "perl-module-strict"
RDEPENDS_perl-module-load += "perl-module-vars"
RDEPENDS_perl-module-load += "perl-module-version"
RDEPENDS_perl-module-load += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-constants += "perl-module-constant"
-RDEPENDS_perl-module-locale-codes-constants += "perl-module-exporter"
-RDEPENDS_perl-module-locale-codes-constants += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-constants += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-country-codes += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-country-codes += "perl-module-utf8"
-RDEPENDS_perl-module-locale-codes-country-codes += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-country += "perl-module-exporter"
-RDEPENDS_perl-module-locale-codes-country += "perl-module-if"
-RDEPENDS_perl-module-locale-codes-country += "perl-module-locale-codes"
-RDEPENDS_perl-module-locale-codes-country += "perl-module-locale-codes-constants"
-RDEPENDS_perl-module-locale-codes-country += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-country += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-country-retired += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-country-retired += "perl-module-utf8"
-RDEPENDS_perl-module-locale-codes-country-retired += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-currency-codes += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-currency-codes += "perl-module-utf8"
-RDEPENDS_perl-module-locale-codes-currency-codes += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-currency += "perl-module-exporter"
-RDEPENDS_perl-module-locale-codes-currency += "perl-module-if"
-RDEPENDS_perl-module-locale-codes-currency += "perl-module-locale-codes"
-RDEPENDS_perl-module-locale-codes-currency += "perl-module-locale-codes-constants"
-RDEPENDS_perl-module-locale-codes-currency += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-currency += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-currency-retired += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-currency-retired += "perl-module-utf8"
-RDEPENDS_perl-module-locale-codes-currency-retired += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-langext-codes += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-langext-codes += "perl-module-utf8"
-RDEPENDS_perl-module-locale-codes-langext-codes += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-langext += "perl-module-exporter"
-RDEPENDS_perl-module-locale-codes-langext += "perl-module-if"
-RDEPENDS_perl-module-locale-codes-langext += "perl-module-locale-codes"
-RDEPENDS_perl-module-locale-codes-langext += "perl-module-locale-codes-constants"
-RDEPENDS_perl-module-locale-codes-langext += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-langext += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-langext-retired += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-langext-retired += "perl-module-utf8"
-RDEPENDS_perl-module-locale-codes-langext-retired += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-langfam-codes += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-langfam-codes += "perl-module-utf8"
-RDEPENDS_perl-module-locale-codes-langfam-codes += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-langfam += "perl-module-exporter"
-RDEPENDS_perl-module-locale-codes-langfam += "perl-module-if"
-RDEPENDS_perl-module-locale-codes-langfam += "perl-module-locale-codes"
-RDEPENDS_perl-module-locale-codes-langfam += "perl-module-locale-codes-constants"
-RDEPENDS_perl-module-locale-codes-langfam += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-langfam += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-langfam-retired += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-langfam-retired += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-language-codes += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-language-codes += "perl-module-utf8"
-RDEPENDS_perl-module-locale-codes-language-codes += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-language += "perl-module-exporter"
-RDEPENDS_perl-module-locale-codes-language += "perl-module-if"
-RDEPENDS_perl-module-locale-codes-language += "perl-module-locale-codes"
-RDEPENDS_perl-module-locale-codes-language += "perl-module-locale-codes-constants"
-RDEPENDS_perl-module-locale-codes-language += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-language += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-language-retired += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-language-retired += "perl-module-utf8"
-RDEPENDS_perl-module-locale-codes-language-retired += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-langvar-codes += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-langvar-codes += "perl-module-utf8"
-RDEPENDS_perl-module-locale-codes-langvar-codes += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-langvar += "perl-module-exporter"
-RDEPENDS_perl-module-locale-codes-langvar += "perl-module-if"
-RDEPENDS_perl-module-locale-codes-langvar += "perl-module-locale-codes"
-RDEPENDS_perl-module-locale-codes-langvar += "perl-module-locale-codes-constants"
-RDEPENDS_perl-module-locale-codes-langvar += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-langvar += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-langvar-retired += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-langvar-retired += "perl-module-utf8"
-RDEPENDS_perl-module-locale-codes-langvar-retired += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes += "perl-module-exporter"
-RDEPENDS_perl-module-locale-codes += "perl-module-if"
-RDEPENDS_perl-module-locale-codes += "perl-module-locale-codes-constants"
-RDEPENDS_perl-module-locale-codes += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-script-codes += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-script-codes += "perl-module-utf8"
-RDEPENDS_perl-module-locale-codes-script-codes += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-script += "perl-module-exporter"
-RDEPENDS_perl-module-locale-codes-script += "perl-module-if"
-RDEPENDS_perl-module-locale-codes-script += "perl-module-locale-codes"
-RDEPENDS_perl-module-locale-codes-script += "perl-module-locale-codes-constants"
-RDEPENDS_perl-module-locale-codes-script += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-script += "perl-module-warnings"
-RDEPENDS_perl-module-locale-codes-script-retired += "perl-module-strict"
-RDEPENDS_perl-module-locale-codes-script-retired += "perl-module-utf8"
-RDEPENDS_perl-module-locale-codes-script-retired += "perl-module-warnings"
-RDEPENDS_perl-module-locale-country += "perl-module-exporter"
-RDEPENDS_perl-module-locale-country += "perl-module-if"
-RDEPENDS_perl-module-locale-country += "perl-module-locale-codes"
-RDEPENDS_perl-module-locale-country += "perl-module-locale-codes-constants"
-RDEPENDS_perl-module-locale-country += "perl-module-strict"
-RDEPENDS_perl-module-locale-country += "perl-module-warnings"
-RDEPENDS_perl-module-locale-currency += "perl-module-exporter"
-RDEPENDS_perl-module-locale-currency += "perl-module-if"
-RDEPENDS_perl-module-locale-currency += "perl-module-locale-codes"
-RDEPENDS_perl-module-locale-currency += "perl-module-locale-codes-constants"
-RDEPENDS_perl-module-locale-currency += "perl-module-strict"
-RDEPENDS_perl-module-locale-currency += "perl-module-warnings"
-RDEPENDS_perl-module-locale-language += "perl-module-exporter"
-RDEPENDS_perl-module-locale-language += "perl-module-if"
-RDEPENDS_perl-module-locale-language += "perl-module-locale-codes"
-RDEPENDS_perl-module-locale-language += "perl-module-locale-codes-constants"
-RDEPENDS_perl-module-locale-language += "perl-module-strict"
-RDEPENDS_perl-module-locale-language += "perl-module-warnings"
RDEPENDS_perl-module-locale-maketext-gutsloader += "perl-module-locale-maketext"
RDEPENDS_perl-module-locale-maketext-guts += "perl-module-locale-maketext"
RDEPENDS_perl-module-locale-maketext += "perl-module-i18n-langtags"
@@ -3604,12 +1187,6 @@ RDEPENDS_perl-module-locale-maketext += "perl-module-strict"
RDEPENDS_perl-module-locale-maketext-simple += "perl-module-base"
RDEPENDS_perl-module-locale-maketext-simple += "perl-module-strict"
RDEPENDS_perl-module-locale += "perl-module-config"
-RDEPENDS_perl-module-locale-script += "perl-module-exporter"
-RDEPENDS_perl-module-locale-script += "perl-module-if"
-RDEPENDS_perl-module-locale-script += "perl-module-locale-codes"
-RDEPENDS_perl-module-locale-script += "perl-module-locale-codes-constants"
-RDEPENDS_perl-module-locale-script += "perl-module-strict"
-RDEPENDS_perl-module-locale-script += "perl-module-warnings"
RDEPENDS_perl-module-math-bigfloat += "perl-module-exporter"
RDEPENDS_perl-module-math-bigfloat += "perl-module-math-bigint"
RDEPENDS_perl-module-math-bigfloat += "perl-module-math-complex"
@@ -3621,8 +1198,6 @@ RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-math-bigfloat"
RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-overload"
RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-strict"
RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-warnings"
-RDEPENDS_perl-module-math-bigint-calcemu += "perl-module-strict"
-RDEPENDS_perl-module-math-bigint-calcemu += "perl-module-warnings"
RDEPENDS_perl-module-math-bigint-calc += "perl-module-constant"
RDEPENDS_perl-module-math-bigint-calc += "perl-module-integer"
RDEPENDS_perl-module-math-bigint-calc += "perl-module-math-bigint-lib"
@@ -3799,7 +1374,6 @@ RDEPENDS_perl-module-params-check += "perl-module-locale-maketext-simple"
RDEPENDS_perl-module-params-check += "perl-module-strict"
RDEPENDS_perl-module-params-check += "perl-module-vars"
RDEPENDS_perl-module-parent += "perl-module-strict"
-RDEPENDS_perl-module-parent += "perl-module-vars"
RDEPENDS_perl-module-perlfaq += "perl-module-strict"
RDEPENDS_perl-module-perlfaq += "perl-module-warnings"
RDEPENDS_perl-module-perlio-encoding += "perl-module-strict"
@@ -3819,16 +1393,8 @@ RDEPENDS_perl-module-pod-escapes += "perl-module-exporter"
RDEPENDS_perl-module-pod-escapes += "perl-module-strict"
RDEPENDS_perl-module-pod-escapes += "perl-module-vars"
RDEPENDS_perl-module-pod-escapes += "perl-module-warnings"
-RDEPENDS_perl-module-pod-find += "perl-module-config"
-RDEPENDS_perl-module-pod-find += "perl-module-cwd"
-RDEPENDS_perl-module-pod-find += "perl-module-exporter"
-RDEPENDS_perl-module-pod-find += "perl-module-file-find"
-RDEPENDS_perl-module-pod-find += "perl-module-strict"
-RDEPENDS_perl-module-pod-find += "perl-module-vars"
RDEPENDS_perl-module-pod-functions += "perl-module-exporter"
RDEPENDS_perl-module-pod-functions += "perl-module-strict"
-RDEPENDS_perl-module-pod-inputobjects += "perl-module-strict"
-RDEPENDS_perl-module-pod-inputobjects += "perl-module-vars"
RDEPENDS_perl-module-pod-man += "perl-module-file-basename"
RDEPENDS_perl-module-pod-man += "perl-module-pod-simple"
RDEPENDS_perl-module-pod-man += "perl-module-strict"
@@ -3839,12 +1405,6 @@ RDEPENDS_perl-module-pod-parselink += "perl-module-exporter"
RDEPENDS_perl-module-pod-parselink += "perl-module-strict"
RDEPENDS_perl-module-pod-parselink += "perl-module-vars"
RDEPENDS_perl-module-pod-parselink += "perl-module-warnings"
-RDEPENDS_perl-module-pod-parser += "perl-module-exporter"
-RDEPENDS_perl-module-pod-parser += "perl-module-pod-inputobjects"
-RDEPENDS_perl-module-pod-parser += "perl-module-strict"
-RDEPENDS_perl-module-pod-parser += "perl-module-vars"
-RDEPENDS_perl-module-pod-parseutils += "perl-module-strict"
-RDEPENDS_perl-module-pod-parseutils += "perl-module-vars"
RDEPENDS_perl-module-pod-perldoc-baseto += "perl-module-config"
RDEPENDS_perl-module-pod-perldoc-baseto += "perl-module-strict"
RDEPENDS_perl-module-pod-perldoc-baseto += "perl-module-vars"
@@ -3907,12 +1467,7 @@ RDEPENDS_perl-module-pod-perldoc-toxml += "perl-module-parent"
RDEPENDS_perl-module-pod-perldoc-toxml += "perl-module-strict"
RDEPENDS_perl-module-pod-perldoc-toxml += "perl-module-vars"
RDEPENDS_perl-module-pod-perldoc-toxml += "perl-module-warnings"
-RDEPENDS_perl-module-pod-plaintext += "perl-module-pod-select"
-RDEPENDS_perl-module-pod-plaintext += "perl-module-strict"
-RDEPENDS_perl-module-pod-plaintext += "perl-module-vars"
-RDEPENDS_perl-module-pod-select += "perl-module-pod-parser"
-RDEPENDS_perl-module-pod-select += "perl-module-strict"
-RDEPENDS_perl-module-pod-select += "perl-module-vars"
+RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-if"
RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-integer"
RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-pod-simple"
RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-pod-simple-transcode"
@@ -3931,6 +1486,9 @@ RDEPENDS_perl-module-pod-simple-dumpastext += "perl-module-strict"
RDEPENDS_perl-module-pod-simple-dumpasxml += "perl-module-pod-simple"
RDEPENDS_perl-module-pod-simple-dumpasxml += "perl-module-strict"
RDEPENDS_perl-module-pod-simple-dumpasxml += "perl-module-text-wrap"
+RDEPENDS_perl-module-pod-simple-justpod += "perl-module-pod-simple-methody"
+RDEPENDS_perl-module-pod-simple-justpod += "perl-module-strict"
+RDEPENDS_perl-module-pod-simple-justpod += "perl-module-warnings"
RDEPENDS_perl-module-pod-simple-linksection += "perl-module-overload"
RDEPENDS_perl-module-pod-simple-linksection += "perl-module-pod-simple-blackbox"
RDEPENDS_perl-module-pod-simple-linksection += "perl-module-strict"
@@ -3961,6 +1519,7 @@ RDEPENDS_perl-module-pod-simple-pullparsertexttoken += "perl-module-pod-simple-p
RDEPENDS_perl-module-pod-simple-pullparsertexttoken += "perl-module-strict"
RDEPENDS_perl-module-pod-simple-pullparsertexttoken += "perl-module-vars"
RDEPENDS_perl-module-pod-simple-pullparsertoken += "perl-module-strict"
+RDEPENDS_perl-module-pod-simple-rtf += "perl-module-if"
RDEPENDS_perl-module-pod-simple-rtf += "perl-module-integer"
RDEPENDS_perl-module-pod-simple-rtf += "perl-module-pod-simple-pullparser"
RDEPENDS_perl-module-pod-simple-rtf += "perl-module-strict"
@@ -3986,8 +1545,6 @@ RDEPENDS_perl-module-pod-simple-tiedoutfh += "perl-module-vars"
RDEPENDS_perl-module-pod-simple-transcodedumb += "perl-module-strict"
RDEPENDS_perl-module-pod-simple-transcodedumb += "perl-module-vars"
RDEPENDS_perl-module-pod-simple-transcode += "perl-module-strict"
-RDEPENDS_perl-module-pod-simple-transcode += "perl-module-pod-simple-transcodedumb"
-RDEPENDS_perl-module-pod-simple-transcode += "perl-module-pod-simple-transcodesmart"
RDEPENDS_perl-module-pod-simple-transcode += "perl-module-vars"
RDEPENDS_perl-module-pod-simple-transcodesmart += "perl-module-encode"
RDEPENDS_perl-module-pod-simple-transcodesmart += "perl-module-pod-simple"
@@ -4054,7 +1611,6 @@ RDEPENDS_perl-module-socket += "perl-module-xsloader"
RDEPENDS_perl-module-sort += "perl-module-strict"
RDEPENDS_perl-module-storable += "perl-module-exporter"
RDEPENDS_perl-module-storable += "perl-module-io-file"
-RDEPENDS_perl-module-storable += "perl-module-xsloader"
RDEPENDS_perl-module-sub-util += "perl-module-exporter"
RDEPENDS_perl-module-sub-util += "perl-module-list-util"
RDEPENDS_perl-module-sub-util += "perl-module-strict"
@@ -4081,7 +1637,6 @@ RDEPENDS_perl-module-sys-syslog += "perl-module-xsloader"
RDEPENDS_perl-module-tap-base += "perl-module-base"
RDEPENDS_perl-module-tap-base += "perl-module-constant"
RDEPENDS_perl-module-tap-base += "perl-module-strict"
-RDEPENDS_perl-module-tap-base += "perl-module-tap-object"
RDEPENDS_perl-module-tap-base += "perl-module-warnings"
RDEPENDS_perl-module-tap-formatter-base += "perl-module-base"
RDEPENDS_perl-module-tap-formatter-base += "perl-module-posix"
@@ -4107,9 +1662,7 @@ RDEPENDS_perl-module-tap-formatter-console-session += "perl-module-warnings"
RDEPENDS_perl-module-tap-formatter-file += "perl-module-base"
RDEPENDS_perl-module-tap-formatter-file += "perl-module-posix"
RDEPENDS_perl-module-tap-formatter-file += "perl-module-strict"
-RDEPENDS_perl-module-tap-formatter-file += "perl-module-tap-formatter-base"
RDEPENDS_perl-module-tap-formatter-file += "perl-module-tap-formatter-file-session"
-RDEPENDS_perl-module-tap-formatter-file += "perl-module-tap-formatter-session"
RDEPENDS_perl-module-tap-formatter-file += "perl-module-warnings"
RDEPENDS_perl-module-tap-formatter-file-session += "perl-module-base"
RDEPENDS_perl-module-tap-formatter-file-session += "perl-module-strict"
@@ -4126,7 +1679,6 @@ RDEPENDS_perl-module-tap-harness += "perl-module-base"
RDEPENDS_perl-module-tap-harness += "perl-module-file-path"
RDEPENDS_perl-module-tap-harness += "perl-module-io-handle"
RDEPENDS_perl-module-tap-harness += "perl-module-strict"
-RDEPENDS_perl-module-tap-harness += "perl-module-tap-formatter-file"
RDEPENDS_perl-module-tap-harness += "perl-module-warnings"
RDEPENDS_perl-module-tap-object += "perl-module-strict"
RDEPENDS_perl-module-tap-object += "perl-module-warnings"
@@ -4251,7 +1803,6 @@ RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-constant"
RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-strict"
RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-tap-parser-iteratorfactory"
RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-tap-parser-iterator-process"
-RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-tap-parser-sourcehandler-executable"
RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-text-parsewords"
RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-warnings"
RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-base"
@@ -4318,7 +1869,6 @@ RDEPENDS_perl-module-test-simple += "perl-module-test-builder-module"
RDEPENDS_perl-module-test-tester-capture += "perl-module-config"
RDEPENDS_perl-module-test-tester-capture += "perl-module-strict"
RDEPENDS_perl-module-test-tester-capture += "perl-module-test-builder"
-RDEPENDS_perl-module-test-tester-capture += "perl-module-threads-shared"
RDEPENDS_perl-module-test-tester-capture += "perl-module-vars"
RDEPENDS_perl-module-test-tester-capturerunner += "perl-module-exporter"
RDEPENDS_perl-module-test-tester-capturerunner += "perl-module-strict"
@@ -4366,6 +1916,7 @@ RDEPENDS_perl-module-threads += "perl-module-overload"
RDEPENDS_perl-module-threads += "perl-module-strict"
RDEPENDS_perl-module-threads += "perl-module-warnings"
RDEPENDS_perl-module-threads += "perl-module-xsloader"
+RDEPENDS_perl-module-threads-shared += "perl-module-config"
RDEPENDS_perl-module-threads-shared += "perl-module-strict"
RDEPENDS_perl-module-threads-shared += "perl-module-warnings"
RDEPENDS_perl-module-threads-shared += "perl-module-xsloader"
@@ -4373,10 +1924,10 @@ RDEPENDS_perl-module-tie-array += "perl-module-strict"
RDEPENDS_perl-module-tie-file += "perl-module-fcntl"
RDEPENDS_perl-module-tie-file += "perl-module-posix"
RDEPENDS_perl-module-tie-file += "perl-module-strict"
+RDEPENDS_perl-module-tie-file += "perl-module-warnings"
RDEPENDS_perl-module-tie-handle += "perl-module-tie-stdhandle"
RDEPENDS_perl-module-tie-handle += "perl-module-warnings-register"
RDEPENDS_perl-module-tie-hash-namedcapture += "perl-module-strict"
-RDEPENDS_perl-module-tie-hash-namedcapture += "perl-module-xsloader"
RDEPENDS_perl-module-tie-hash += "perl-module-warnings-register"
RDEPENDS_perl-module-tie-memoize += "perl-module-strict"
RDEPENDS_perl-module-tie-memoize += "perl-module-tie-hash"
@@ -4447,9 +1998,9 @@ RDEPENDS_perl-module-unicode-ucd += "perl-module-exporter"
RDEPENDS_perl-module-unicode-ucd += "perl-module-feature"
RDEPENDS_perl-module-unicode-ucd += "perl-module-if"
RDEPENDS_perl-module-unicode-ucd += "perl-module-integer"
+RDEPENDS_perl-module-unicode-ucd += "perl-module-re"
RDEPENDS_perl-module-unicode-ucd += "perl-module-strict"
RDEPENDS_perl-module-unicode-ucd += "perl-module-unicode-normalize"
-RDEPENDS_perl-module-unicode-ucd += "perl-module-utf8-heavy"
RDEPENDS_perl-module-unicode-ucd += "perl-module-warnings"
RDEPENDS_perl-module-user-grent += "perl-module-class-struct"
RDEPENDS_perl-module-user-grent += "perl-module-exporter"
@@ -4459,7 +2010,6 @@ RDEPENDS_perl-module-user-pwent += "perl-module-config"
RDEPENDS_perl-module-user-pwent += "perl-module-exporter"
RDEPENDS_perl-module-user-pwent += "perl-module-strict"
RDEPENDS_perl-module-user-pwent += "perl-module-warnings"
-RDEPENDS_perl-module-utf8 += "perl-module-utf8-heavy"
RDEPENDS_perl-module-version += "perl-module-strict"
RDEPENDS_perl-module-version += "perl-module-version-regex"
RDEPENDS_perl-module-version += "perl-module-warnings-register"
diff --git a/meta/recipes-devtools/perl/files/racefix.patch b/meta/recipes-devtools/perl/files/racefix.patch
deleted file mode 100644
index bac42d26ae..0000000000
--- a/meta/recipes-devtools/perl/files/racefix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-In our builds Config_heavy.pl sometimes has lines:
-cwarnflags=XXX
-ccstdflags=XXX
-and sometimes does not.
-The reason is that this information is pulled from cflags by configpm and yet
-there is no dependency in the Makefile. Add one to fix this.
-
-Upstream-Status: Submitted [https://github.com/arsv/perl-cross/pull/89]
-RP 2020/2/19
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-
-Index: perl-5.30.1/Makefile
-===================================================================
---- perl-5.30.1.orig/Makefile
-+++ perl-5.30.1/Makefile
-@@ -204,7 +204,7 @@ configpod: $(CONFIGPOD)
- git_version.h lib/Config_git.pl: make_patchnum.pl | miniperl$X
- ./miniperl_top make_patchnum.pl
-
--lib/Config.pm lib/Config_heavy.pl lib/Config.pod: config.sh \
-+lib/Config.pm lib/Config_heavy.pl lib/Config.pod: config.sh cflags \
- lib/Config_git.pl Porting/Glossary | miniperl$X
- ./miniperl_top configpm
-
diff --git a/meta/recipes-devtools/perl/libmodule-build-perl_0.4229.bb b/meta/recipes-devtools/perl/libmodule-build-perl_0.4231.bb
index e3ba40d96c..a6fd7b1c07 100644
--- a/meta/recipes-devtools/perl/libmodule-build-perl_0.4229.bb
+++ b/meta/recipes-devtools/perl/libmodule-build-perl_0.4231.bb
@@ -15,9 +15,9 @@ LIC_FILES_CHKSUM = "file://README;beginline=949;endline=954;md5=624c06db56a2af4d
SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/Module-Build-${PV}.tar.gz \
file://run-ptest \
- "
-SRC_URI[md5sum] = "1447d9e02e63f7a1643986789a8f1ba9"
-SRC_URI[sha256sum] = "1fe491a6cda914b01bc8e592faa2b5404e9f35915ca15322f8f2a8d8f9008c18"
+ "
+SRC_URI[md5sum] = "066b193e461d7dfe1eca17a139353001"
+SRC_URI[sha256sum] = "7e0f4c692c1740c1ac84ea14d7ea3d8bc798b2fb26c09877229e04f430b2b717"
S = "${WORKDIR}/Module-Build-${PV}"
@@ -33,13 +33,26 @@ do_patch_module_build () {
do_patch[postfuncs] += "do_patch_module_build"
+EXTRA_CPAN_BUILD_FLAGS = "--create_packlist=0"
+
+do_install_append () {
+ rm -rf ${D}${docdir}/perl/html
+}
+
do_install_ptest() {
cp -r ${B}/inc ${D}${PTEST_PATH}
cp -r ${B}/blib ${D}${PTEST_PATH}
cp -r ${B}/_build ${D}${PTEST_PATH}
cp -r ${B}/lib ${D}${PTEST_PATH}
chown -R root:root ${D}${PTEST_PATH}
- sed -i -e "s,'perl' => .*,'perl' => '/usr/bin/perl'\,,g" ${D}${PTEST_PATH}/_build/build_params
+ sed -i -e "s,'perl' => .*,'perl' => '/usr/bin/perl'\,,g" \
+ -e "s,${STAGING_BINDIR_NATIVE}/perl-native/\.\.,${bindir}/,g" \
+ -e "s,${S},,g" \
+ -e "s,${D},,g" \
+ ${D}${PTEST_PATH}/_build/build_params \
+ ${D}${PTEST_PATH}/_build/runtime_params
+ rm -rf ${D}${PTEST_PATH}/blib/libhtml/site/lib/Module/
+ rm -rf ${D}${PTEST_PATH}/_build/magicnum
}
RDEPENDS_${PN} += " \
@@ -75,9 +88,10 @@ RDEPENDS_${PN} += " \
"
RDEPENDS_${PN}-ptest += " \
- gcc \
- make \
+ packagegroup-core-buildessential \
+ perl-dev \
perl-module-blib \
+ perl-module-extutils-command-mm \
perl-module-file-temp \
perl-module-lib \
perl-module-perlio \
@@ -103,4 +117,7 @@ RPROVIDES_${PN} += "\
libmodule-build-podparser-perl \
"
+# t/xs.t RDEPENDS on "EXTERN.h" provided by perl-dev
+INSANE_SKIP_${PN}-ptest = "dev-deps"
+
BBCLASSEXTEND = "native"
diff --git a/meta/recipes-devtools/perl/perl_5.30.1.bb b/meta/recipes-devtools/perl/perl_5.32.0.bb
index 4869012b1a..bba8263b90 100644
--- a/meta/recipes-devtools/perl/perl_5.30.1.bb
+++ b/meta/recipes-devtools/perl/perl_5.32.0.bb
@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://Copying;md5=5b122a36d0f6dc55279a0ebc69f3c60b \
SRC_URI = "https://www.cpan.org/src/5.0/perl-${PV}.tar.gz;name=perl \
- https://github.com/arsv/perl-cross/releases/download/1.3.1/perl-cross-1.3.1.tar.gz;name=perl-cross \
+ https://github.com/arsv/perl-cross/releases/download/1.3.4/perl-cross-1.3.4.tar.gz;name=perl-cross \
file://perl-rdepends.txt \
file://0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch \
file://0001-ExtUtils-MakeMaker-add-LDFLAGS-when-linking-binary-m.patch \
@@ -18,11 +18,9 @@ SRC_URI = "https://www.cpan.org/src/5.0/perl-${PV}.tar.gz;name=perl \
file://0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch \
file://perl-dynloader.patch \
file://0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch \
- file://0001-enc2xs-Add-environment-variable-to-suppress-comments.patch \
file://0002-Constant-Fix-up-shebang.patch \
- file://0001-tests-adjust-to-correctly-exclude-unbuilt-extensions.patch \
file://determinism.patch \
- file://racefix.patch \
+ file://perl-cross-makefile.patch \
"
SRC_URI_append_class-native = " \
file://perl-configpm-switch.patch \
@@ -31,10 +29,8 @@ SRC_URI_append_class-target = " \
file://encodefix.patch \
"
-SRC_URI[perl.md5sum] = "6438eb7b8db9bbde28e01086de376a46"
-SRC_URI[perl.sha256sum] = "bf3d25571ff1ee94186177c2cdef87867fd6a14aa5a84f0b1fb7bf798f42f964"
-SRC_URI[perl-cross.md5sum] = "1e463b105cfa56d251a86979af23e3a7"
-SRC_URI[perl-cross.sha256sum] = "edce0b0c2f725e2db3f203d6d8e9f3f7161256f5d1590551e40694f21200141d"
+SRC_URI[perl.sha256sum] = "efeb1ce1f10824190ad1cadbcccf6fdb8a5d37007d0100d2d9ae5f2b5900c0b4"
+SRC_URI[perl-cross.sha256sum] = "755aa0ca8141a942188a269564f86c3c82349f82c346ed5c992495d7f35138ba"
S = "${WORKDIR}/perl-${PV}"
@@ -143,6 +139,11 @@ do_install() {
# Fix up shared library
rm ${D}/${libdir}/perl5/${PV}/*/CORE/libperl.so
ln -sf ../../../../libperl.so.${PERL_LIB_VER} $(echo ${D}/${libdir}/perl5/${PV}/*/CORE)/libperl.so
+
+ # Try to catch Bug #13946
+ if [ -e ${D}/${libdir}/perl5/${PV}/Storable.pm ]; then
+ bbfatal 'non-arch specific Storable.pm found! See https://bugzilla.yoctoproject.org/show_bug.cgi?id=13946'
+ fi
}
do_install_append_class-target() {
@@ -159,7 +160,7 @@ do_install_append_class-nativesdk() {
ln -s Config_heavy.pl ${D}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config_heavy-target.pl
create_wrapper ${D}${bindir}/perl \
- PERL5LIB='$PERL5LIB:$OECORE_NATIVE_SYSROOT/${libdir_nativesdk}/perl5/site_perl/${PV}:$OECORE_NATIVE_SYSROOT/${libdir_nativesdk}/perl5/vendor_perl/${PV}:$OECORE_NATIVE_SYSROOT/${libdir_nativesdk}/perl5/${PV}'
+ PERL5LIB='$PERL5LIB:${SDKPATHNATIVE}/${libdir_nativesdk}/perl5/site_perl/${PV}:${SDKPATHNATIVE}/${libdir_nativesdk}/perl5/vendor_perl/${PV}:${SDKPATHNATIVE}/${libdir_nativesdk}/perl5/${PV}'
}
do_install_append_class-native () {
@@ -195,7 +196,6 @@ perl_package_preprocess () {
${PKGD}${bindir}/pod2text.perl \
${PKGD}${bindir}/pod2usage.perl \
${PKGD}${bindir}/podchecker.perl \
- ${PKGD}${bindir}/podselect.perl \
${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/config.h \
${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/perl.h \
${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/pp.h \
@@ -215,7 +215,7 @@ inherit update-alternatives
ALTERNATIVE_PRIORITY = "100"
ALTERNATIVE_${PN}-misc = "corelist cpan enc2xs encguess h2ph h2xs instmodsh json_pp libnetcfg \
- piconv pl2pm pod2html pod2man pod2text pod2usage podchecker podselect \
+ piconv pl2pm pod2html pod2man pod2text pod2usage podchecker \
prove ptar ptardiff ptargrep shasum splain xsubpp zipdetails"
ALTERNATIVE_LINK_NAME[corelist] = "${bindir}/corelist"
ALTERNATIVE_LINK_NAME[cpan] = "${bindir}/cpan"
@@ -233,7 +233,6 @@ ALTERNATIVE_LINK_NAME[pod2man] = "${bindir}/pod2man"
ALTERNATIVE_LINK_NAME[pod2text] = "${bindir}/pod2text"
ALTERNATIVE_LINK_NAME[pod2usage] = "${bindir}/pod2usage"
ALTERNATIVE_LINK_NAME[podchecker] = "${bindir}/podchecker"
-ALTERNATIVE_LINK_NAME[podselect] = "${bindir}/podselect"
ALTERNATIVE_LINK_NAME[prove] = "${bindir}/prove"
ALTERNATIVE_LINK_NAME[ptar] = "${bindir}/ptar"
ALTERNATIVE_LINK_NAME[ptardiff] = "${bindir}/ptardiff"
@@ -309,7 +308,7 @@ python split_perl_packages () {
do_split_packages(d, libdir, r'Module/([^\/]*)\.pm', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False)
do_split_packages(d, libdir, r'Module/([^\/]*)/.*', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False)
do_split_packages(d, libdir, r'.*linux/([^\/].*)\.(pm|pl|e2x)', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False)
- do_split_packages(d, libdir, r'(^(?!(CPAN\/|CPANPLUS\/|Module\/|unicore\/)[^\/]).*)\.(pm|pl|e2x)', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False)
+ do_split_packages(d, libdir, r'(^(?!(CPAN\/|CPANPLUS\/|Module\/|unicore\/|.*linux\/)[^\/]).*)\.(pm|pl|e2x)', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False)
# perl-modules should recommend every perl module, and only the
# modules. Don't attempt to use the result of do_split_packages() as some
@@ -331,7 +330,7 @@ python split_perl_packages () {
python() {
if d.getVar('CLASSOVERRIDE') == "class-target":
- d.setVar("PACKAGES_DYNAMIC", "^perl-module-.*(?<!native)$")
+ d.setVar("PACKAGES_DYNAMIC", "^${MLPREFIX}perl-module-.*(?<!native)$")
elif d.getVar('CLASSOVERRIDE') == "class-native":
d.setVar("PACKAGES_DYNAMIC", "^perl-module-.*-native$")
elif d.getVar('CLASSOVERRIDE') == "class-nativesdk":
@@ -388,4 +387,3 @@ EOF
chmod 0755 ${SYSROOT_DESTDIR}${bindir}/nativeperl
cat ${SYSROOT_DESTDIR}${bindir}/nativeperl
}
-
diff --git a/meta/recipes-devtools/pkgconf/pkgconf_1.6.3.bb b/meta/recipes-devtools/pkgconf/pkgconf_1.7.3.bb
index 732ca2a034..12496c3849 100644
--- a/meta/recipes-devtools/pkgconf/pkgconf_1.6.3.bb
+++ b/meta/recipes-devtools/pkgconf/pkgconf_1.7.3.bb
@@ -20,8 +20,7 @@ SRC_URI = "\
file://pkg-config-native.in \
file://pkg-config-esdk.in \
"
-SRC_URI[md5sum] = "f93fb1be95a5cb62e43c219c82b5791a"
-SRC_URI[sha256sum] = "61f0b31b0d5ea0e862b454a80c170f57bad47879c0c42bd8de89200ff62ea210"
+SRC_URI[sha256sum] = "b846aea51cf696c3392a0ae58bef93e2e72f8e7073ca6ad1ed8b01c85871f9c0"
inherit autotools
diff --git a/meta/recipes-devtools/pseudo/files/0001-Add-statx.patch b/meta/recipes-devtools/pseudo/files/0001-Add-statx.patch
deleted file mode 100644
index f01e699de7..0000000000
--- a/meta/recipes-devtools/pseudo/files/0001-Add-statx.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-From 4e41a05de1f34ba00a68ca4f20fb49c4d1cbd2d0 Mon Sep 17 00:00:00 2001
-From: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Wed, 6 Nov 2019 12:17:46 +0000
-Subject: [PATCH] Add statx glibc/syscall support
-
-Modern distros (e.g. fedora30) are starting to use the new statx() syscall through
-the newly exposed glibc wrapper function in software like coreutils (e.g. the ls
-command). Add support to intercept this to pseudo.
-
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-Upstream-Status: Submitted [Emailed to seebs]
----
- ports/linux/guts/statx.c | 48 ++++++++++++++++++++++++++++++++++++++++
- ports/linux/portdefs.h | 1 +
- ports/linux/wrapfuncs.in | 1 +
- 3 files changed, 50 insertions(+)
- create mode 100644 ports/linux/guts/statx.c
-
-diff --git a/ports/linux/statx/guts/statx.c b/ports/linux/statx/guts/statx.c
-new file mode 100644
-index 0000000..a3259c4
---- /dev/null
-+++ b/ports/linux/statx/guts/statx.c
-@@ -0,0 +1,42 @@
-+/*
-+ * Copyright (c) 2019 Linux Foundation
-+ * Author: Richard Purdie
-+ *
-+ * SPDX-License-Identifier: LGPL-2.1-only
-+ *
-+ * int
-+ * statx(int dirfd, const char *pathname, int flags, unsigned int mask, struct statx *statxbuf) {
-+ * int rc = -1;
-+ */
-+ pseudo_msg_t *msg;
-+ PSEUDO_STATBUF buf;
-+ int save_errno;
-+
-+ rc = real_statx(dirfd, pathname, flags, mask, statxbuf);
-+ save_errno = errno;
-+ if (rc == -1) {
-+ return rc;
-+ }
-+
-+ buf.st_uid = statxbuf->stx_uid;
-+ buf.st_gid = statxbuf->stx_gid;
-+ buf.st_dev = makedev(statxbuf->stx_dev_major, statxbuf->stx_dev_minor);
-+ buf.st_ino = statxbuf->stx_ino;
-+ buf.st_mode = statxbuf->stx_mode;
-+ buf.st_rdev = makedev(statxbuf->stx_rdev_major, statxbuf->stx_rdev_minor);
-+ buf.st_nlink = statxbuf->stx_nlink;
-+ msg = pseudo_client_op(OP_STAT, 0, -1, dirfd, pathname, &buf);
-+ if (msg && msg->result == RESULT_SUCCEED) {
-+ pseudo_debug(PDBGF_FILE, "statx(path %s), flags %o, stat rc %d, stat uid %o\n", pathname, flags, rc, statxbuf->stx_uid);
-+ statxbuf->stx_uid = msg->uid;
-+ statxbuf->stx_gid = msg->gid;
-+ statxbuf->stx_mode = msg->mode;
-+ statxbuf->stx_rdev_major = major(msg->rdev);
-+ statxbuf->stx_rdev_minor = minor(msg->rdev);
-+ } else {
-+ pseudo_debug(PDBGF_FILE, "statx(path %s) failed, flags %o, stat rc %d, stat uid %o\n", pathname, flags, rc, statxbuf->stx_uid);
-+ }
-+ errno = save_errno;
-+/* return rc;
-+ * }
-+ */
-diff --git a/ports/linux/statx/portdefs.h b/ports/linux/statx/portdefs.h
-new file mode 100644
-index 0000000..bf934dc
---- /dev/null
-+++ b/ports/linux/statx/portdefs.h
-@@ -0,0 +1,6 @@
-+/*
-+ * SPDX-License-Identifier: LGPL-2.1-only
-+ *
-+ */
-+#include <sys/stat.h>
-+#include <sys/sysmacros.h>
-diff --git a/ports/linux/statx/wrapfuncs.in b/ports/linux/statx/wrapfuncs.in
-new file mode 100644
-index 0000000..c9cd4c3
---- /dev/null
-+++ b/ports/linux/statx/wrapfuncs.in
-@@ -0,0 +1 @@
-+int statx(int dirfd, const char *pathname, int flags, unsigned int mask, struct statx *statxbuf);
-diff --git a/ports/linux/subports b/ports/linux/subports
-index a29044a..49081bf 100755
---- a/ports/linux/subports
-+++ b/ports/linux/subports
-@@ -54,3 +54,13 @@ else
- fi
- rm -f dummy.c dummy.o
-
-+cat > dummy.c <<EOF
-+#define _GNU_SOURCE
-+#include <sys/stat.h>
-+struct statx x;
-+EOF
-+if ${CC} -c -o dummy.o dummy.c >/dev/null 2>&1; then
-+ echo "linux/statx"
-+fi
-+rm -f dummy.c dummy.o
-+
---
-2.17.1
-
diff --git a/meta/recipes-devtools/pseudo/files/0001-maketables-wrappers-use-Python-3.patch b/meta/recipes-devtools/pseudo/files/0001-maketables-wrappers-use-Python-3.patch
deleted file mode 100644
index b2dbdad278..0000000000
--- a/meta/recipes-devtools/pseudo/files/0001-maketables-wrappers-use-Python-3.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From dbd34b1b2af8fbf44a0d5c37abe3448405819823 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Wed, 28 Aug 2019 19:20:29 +0200
-Subject: [PATCH] maketables/wrappers: use Python 3
-
-Changelog indicates they should be compatible.
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- maketables | 2 +-
- makewrappers | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/maketables b/maketables
-index a211772..52285e2 100755
---- a/maketables
-+++ b/maketables
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- #
- # Copyright (c) 2008-2010, 2013 Wind River Systems, Inc.
- #
-diff --git a/makewrappers b/makewrappers
-index e84607d..b34f7eb 100755
---- a/makewrappers
-+++ b/makewrappers
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- #
- # Copyright (c) 2008-2011,2013 Wind River Systems, Inc.
- #
diff --git a/meta/recipes-devtools/pseudo/files/0001-realpath.c-Remove-trailing-slashes.patch b/meta/recipes-devtools/pseudo/files/0001-realpath.c-Remove-trailing-slashes.patch
deleted file mode 100644
index 17829ef3ac..0000000000
--- a/meta/recipes-devtools/pseudo/files/0001-realpath.c-Remove-trailing-slashes.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 86c9a5610e3333ad6aaadb1ac1e8b5a2c948d119 Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Mon, 25 Nov 2019 18:46:45 +0800
-Subject: [PATCH] realpath.c: Remove trailing slashes
-
-Linux system's realpath() remove trailing slashes, but pseudo's doesn't, need
-make them identical.
-
-E.g., the following code (rel.c) prints '/tmp' with system's realpath, but
-pseudo's realpath prints '/tmp/':
-
- #include <stdio.h>
- #include <limits.h>
- #include <stdlib.h>
-
- int main() {
- char out[PATH_MAX];
- printf("%s\n", realpath("/tmp/", out));
- return 0;
- }
-
-$ bitbake base-passwd -cdevshell # For pseudo env
-$ gcc rel.c
-$ ./a.out
-/tmp/ (but should be /tmp)
-
-This patch fixes the problem.
-
-Upstream-Status: Submitted [https://lists.yoctoproject.org/g/poky/message/11879]
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
----
- ports/unix/guts/realpath.c | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/ports/unix/guts/realpath.c b/ports/unix/guts/realpath.c
---- a/ports/unix/guts/realpath.c
-+++ b/ports/unix/guts/realpath.c
-@@ -14,7 +14,14 @@
- errno = ENAMETOOLONG;
- return NULL;
- }
-- if ((len = strlen(rname)) >= pseudo_sys_path_max()) {
-+ len = strlen(rname);
-+ char *ep = rname + len - 1;
-+ while (ep > rname && *ep == '/') {
-+ --len;
-+ *(ep--) = '\0';
-+ }
-+
-+ if (len >= pseudo_sys_path_max()) {
- errno = ENAMETOOLONG;
- return NULL;
- }
---
-2.7.4
-
diff --git a/meta/recipes-devtools/pseudo/files/0006-xattr-adjust-for-attr-2.4.48-release.patch b/meta/recipes-devtools/pseudo/files/0006-xattr-adjust-for-attr-2.4.48-release.patch
deleted file mode 100644
index 161357d553..0000000000
--- a/meta/recipes-devtools/pseudo/files/0006-xattr-adjust-for-attr-2.4.48-release.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 93d95ed2eaedcca110c214e1fe3f8896b1f6f853 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Tue, 17 Dec 2019 20:24:27 +0100
-Subject: [PATCH] xattr: adjust for attr 2.4.48 release
-
-Latest versions of attr have removed the xattr.h header,
-with the rationale that libc is providing the same wrappers.
-
-attr/attributes.h is providing the ENOATTR definition.
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- ports/linux/subports | 5 +++--
- ports/linux/xattr/portdefs.h | 3 ++-
- 2 files changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/ports/linux/subports b/ports/linux/subports
-index 2c43ac9..740ec83 100755
---- a/ports/linux/subports
-+++ b/ports/linux/subports
-@@ -29,11 +29,12 @@ fi
- if $port_xattr; then
- cat > dummy.c <<EOF
- #include <sys/types.h>
--#include <attr/xattr.h>
-+#include <sys/xattr.h>
-+#include <attr/attributes.h>
- int i;
- EOF
- if ! ${CC} -c -o dummy.o dummy.c >/dev/null 2>&1; then
-- echo >&2 "Warning: Can't compile trivial program using <attr/xattr.h>".
-+ echo >&2 "Warning: Can't compile trivial program using <attr/attributes.h>".
- echo >&2 " xattr support will require that header."
- fi
- echo "linux/xattr"
-diff --git a/ports/linux/xattr/portdefs.h b/ports/linux/xattr/portdefs.h
-index 56cd3ca..068d39a 100644
---- a/ports/linux/xattr/portdefs.h
-+++ b/ports/linux/xattr/portdefs.h
-@@ -2,5 +2,6 @@
- * SPDX-License-Identifier: LGPL-2.1-only
- *
- */
--#include <attr/xattr.h>
-+#include <sys/xattr.h>
-+#include <attr/attributes.h>
- #include <stdint.h>
diff --git a/meta/recipes-devtools/pseudo/files/moreretries.patch b/meta/recipes-devtools/pseudo/files/moreretries.patch
deleted file mode 100644
index adea2665b0..0000000000
--- a/meta/recipes-devtools/pseudo/files/moreretries.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Increase the number of retries in pseudo due to occasional slow
-server shutdowns.
-
-Upstream-Status: Pending
-RP 2016/2/28
-
-Index: git/pseudo_client.c
-===================================================================
---- git.orig/pseudo_client.c
-+++ git/pseudo_client.c
-@@ -1282,7 +1282,7 @@ pseudo_client_setup(void) {
- }
- }
-
--#define PSEUDO_RETRIES 20
-+#define PSEUDO_RETRIES 250
- static pseudo_msg_t *
- pseudo_client_request(pseudo_msg_t *msg, size_t len, const char *path) {
- pseudo_msg_t *response = 0;
diff --git a/meta/recipes-devtools/pseudo/files/toomanyfiles.patch b/meta/recipes-devtools/pseudo/files/toomanyfiles.patch
deleted file mode 100644
index bda7e4b202..0000000000
--- a/meta/recipes-devtools/pseudo/files/toomanyfiles.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From b0b25fbc041a148d1de09f5a6503cd95973ec77c Mon Sep 17 00:00:00 2001
-From: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Tue, 25 Apr 2017 15:25:54 +0100
-Subject: [PATCH 3/3] pseudo: Handle too many files deadlock
-
-Currently if we max out the maximum number of files, pseudo can deadlock, unable to
-accept new connections yet unable to move forward and unblock the other processes
-waiting either.
-
-Rather than hang, when this happens, close out inactive connections, allowing us
-to accept the new ones. The disconnected clients will simply reconnect. There is
-a small risk of data loss here sadly but its better than hanging.
-
-RP
-2017/4/25
-
-Upstream-Status: Submitted [Peter is aware of the issue]
-
----
- pseudo_server.c | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/pseudo_server.c b/pseudo_server.c
-index dac3258..15a3e8f 100644
---- a/pseudo_server.c
-+++ b/pseudo_server.c
-@@ -802,6 +802,7 @@ pseudo_server_loop(void) {
- struct sigaction eat_usr2 = {
- .sa_handler = set_do_list_clients
- };
-+ int hitmaxfiles;
-
- clients = malloc(16 * sizeof(*clients));
-
-@@ -820,6 +821,7 @@ pseudo_server_loop(void) {
- active_clients = 1;
- max_clients = 16;
- highest_client = 0;
-+ hitmaxfiles = 0;
-
- pseudo_debug(PDBGF_SERVER, "server loop started.\n");
- if (listen_fd < 0) {
-@@ -878,10 +880,15 @@ pseudo_server_loop(void) {
- } else {
- serve_client(i);
- }
-+ } else if (hitmaxfiles) {
-+ /* Only close one per loop iteration in the interests of caution */
-+ close_client(i);
-+ hitmaxfiles = 0;
- }
- if (die_forcefully)
- break;
- }
-+ hitmaxfiles = 0;
- if (!die_forcefully &&
- (FD_ISSET(clients[0].fd, &events) ||
- FD_ISSET(clients[0].fd, &reads))) {
-@@ -903,6 +910,9 @@ pseudo_server_loop(void) {
- */
- pseudo_server_timeout = DEFAULT_PSEUDO_SERVER_TIMEOUT;
- die_peacefully = 0;
-+ } else if (errno == EMFILE) {
-+ hitmaxfiles = 1;
-+ pseudo_debug(PDBGF_SERVER, "Hit max open files, dropping a client.\n");
- }
- }
- pseudo_debug(PDBGF_SERVER, "server loop complete [%d clients left]\n", active_clients);
---
-2.15.1
-
diff --git a/meta/recipes-devtools/pseudo/pseudo.inc b/meta/recipes-devtools/pseudo/pseudo.inc
index 7ff8e449e9..50e30064bd 100644
--- a/meta/recipes-devtools/pseudo/pseudo.inc
+++ b/meta/recipes-devtools/pseudo/pseudo.inc
@@ -16,6 +16,7 @@ INSANE_SKIP_${PN}-dbg += "libdir"
PROVIDES += "virtual/fakeroot"
MAKEOPTS = ""
+MAKEOPTS_class-native = "'RPATH=-Wl,--rpath=XORIGIN/../../../sqlite3-native/usr/lib/'"
inherit siteinfo pkgconfig
@@ -115,6 +116,7 @@ do_install () {
}
do_install_append_class-native () {
+ chrpath ${D}${bindir}/pseudo -r `chrpath ${D}${bindir}/pseudo | cut -d = -f 2 | sed s/XORIGIN/\\$ORIGIN/`
install -d ${D}${sysconfdir}
# The fallback files should never be modified
install -m 444 ${WORKDIR}/fallback-passwd ${D}${sysconfdir}/passwd
diff --git a/meta/recipes-devtools/pseudo/pseudo_git.bb b/meta/recipes-devtools/pseudo/pseudo_git.bb
index d921d85a05..2e13fec540 100644
--- a/meta/recipes-devtools/pseudo/pseudo_git.bb
+++ b/meta/recipes-devtools/pseudo/pseudo_git.bb
@@ -1,18 +1,12 @@
require pseudo.inc
-SRC_URI = "git://git.yoctoproject.org/pseudo \
+SRC_URI = "git://git.yoctoproject.org/pseudo;branch=oe-core \
file://0001-configure-Prune-PIE-flags.patch \
file://fallback-passwd \
file://fallback-group \
- file://moreretries.patch \
- file://toomanyfiles.patch \
- file://0001-maketables-wrappers-use-Python-3.patch \
- file://0001-Add-statx.patch \
- file://0001-realpath.c-Remove-trailing-slashes.patch \
- file://0006-xattr-adjust-for-attr-2.4.48-release.patch \
"
-SRCREV = "060058bb29f70b244e685b3c704eb0641b736f73"
+SRCREV = "cca0d7f15b7197095cd587420d31b187620c3093"
S = "${WORKDIR}/git"
PV = "1.9.0+git${SRCPV}"
diff --git a/meta/recipes-devtools/python-numpy/files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch b/meta/recipes-devtools/python-numpy/files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch
index 98a9705831..cdb6a473d2 100644
--- a/meta/recipes-devtools/python-numpy/files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch
+++ b/meta/recipes-devtools/python-numpy/files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch
@@ -1,4 +1,4 @@
-From 672a75c8417ce08db9e31fc415ec445479231d5a Mon Sep 17 00:00:00 2001
+From 27f6687e49bf555fc494d2f14bae6ecd0fa30f14 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Thu, 10 Dec 2015 13:20:30 +0200
Subject: [PATCH] Don't search /usr and so on for libraries by default to
@@ -14,11 +14,11 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
1 file changed, 5 insertions(+), 37 deletions(-)
diff --git a/numpy/distutils/system_info.py b/numpy/distutils/system_info.py
-index ba2b1f4..f94dce1 100644
+index 3a6a7b2..6c2c3da 100644
--- a/numpy/distutils/system_info.py
+++ b/numpy/distutils/system_info.py
-@@ -278,45 +278,13 @@ if sys.platform == 'win32':
- add_system_root(os.path.join(conda_dir, 'Library'))
+@@ -309,45 +309,13 @@ if sys.platform == 'win32':
+ add_system_root(os.path.join(conda_dir, 'Library'))
else:
- default_lib_dirs = libpaths(['/usr/local/lib', '/opt/lib', '/usr/lib',
@@ -68,3 +68,6 @@ index ba2b1f4..f94dce1 100644
if os.path.join(sys.prefix, 'lib') not in default_lib_dirs:
default_lib_dirs.insert(0, os.path.join(sys.prefix, 'lib'))
+--
+2.17.1
+
diff --git a/meta/recipes-devtools/python-numpy/files/0001-numpy-random-setup.py-remove-the-detection-of-x86-ta.patch b/meta/recipes-devtools/python-numpy/files/0001-numpy-random-setup.py-remove-the-detection-of-x86-ta.patch
deleted file mode 100644
index 9da6a2b3da..0000000000
--- a/meta/recipes-devtools/python-numpy/files/0001-numpy-random-setup.py-remove-the-detection-of-x86-ta.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From b881e0b2ba9cf1a4aa351a1c1ea90b1e1776ce21 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Mon, 12 Aug 2019 15:37:36 +0200
-Subject: [PATCH] numpy/random/setup.py: remove the detection of x86 targets
- via uname()
-
-This was badly breaking compilation for ARM targets (and possibly
-other non-x86 targets); if -msse2 is desirable for x86 builds it has
-to be passed through another channel.
-
-Upstream-Status: Inappropriate [oe-core specific]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- numpy/random/setup.py | 5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/numpy/random/setup.py b/numpy/random/setup.py
-index a1bf3b8..60fb534 100644
---- a/numpy/random/setup.py
-+++ b/numpy/random/setup.py
-@@ -49,11 +49,6 @@ def configuration(parent_package='', top_path=None):
- elif not is_msvc:
- # Some bit generators require c99
- EXTRA_COMPILE_ARGS += ['-std=c99']
-- INTEL_LIKE = any(arch in platform.machine()
-- for arch in ('x86', 'i686', 'i386', 'amd64'))
-- if INTEL_LIKE:
-- # Assumes GCC or GCC-like compiler
-- EXTRA_COMPILE_ARGS += ['-msse2']
-
- # Use legacy integer variable sizes
- LEGACY_DEFS = [('NP_RANDOM_LEGACY', '1')]
diff --git a/meta/recipes-devtools/python-numpy/python-numpy.inc b/meta/recipes-devtools/python-numpy/python-numpy.inc
index 8413434af9..0113f4098d 100644
--- a/meta/recipes-devtools/python-numpy/python-numpy.inc
+++ b/meta/recipes-devtools/python-numpy/python-numpy.inc
@@ -1,28 +1,25 @@
SUMMARY = "A sophisticated Numeric Processing Package for Python"
SECTION = "devel/python"
LICENSE = "BSD-3-Clause & BSD-2-Clause & PSF & Apache-2.0 & BSD & MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=1a32aba007a415aa8a1c708a0e2b86a1"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=643d4e90100b7abe468c4db88127b895"
SRCNAME = "numpy"
SRC_URI = "https://github.com/${SRCNAME}/${SRCNAME}/releases/download/v${PV}/${SRCNAME}-${PV}.tar.gz \
file://0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch \
- file://0001-numpy-random-setup.py-remove-the-detection-of-x86-ta.patch \
"
-SRC_URI[md5sum] = "9147c3ee75e58d657b5b8b5a4f3564e0"
-SRC_URI[sha256sum] = "fb0415475e673cb9a6dd816df999e0ab9f86fa3af2b1770944e7288d2bea4ac9"
+SRC_URI[sha256sum] = "1396e6c3d20cbfc119195303b0272e749610b7042cc498be4134f013e9a3215c"
UPSTREAM_CHECK_URI = "https://github.com/numpy/numpy/releases"
UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.tar"
-# Needed for building with gcc 4.x from centos 7
-CFLAGS_append_class-native = " -std=c99"
+DEPENDS += "python3-cython-native"
S = "${WORKDIR}/numpy-${PV}"
CLEANBROKEN = "1"
-FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/numpy/core/lib/*.a"
+FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/numpy/core/lib/*.a ${PYTHON_SITEPACKAGES_DIR}/numpy/random/lib/*.a"
# install what is needed for numpy.test()
RDEPENDS_${PN} = "${PYTHON_PN}-unittest \
diff --git a/meta/recipes-devtools/python-numpy/python3-numpy_1.17.4.bb b/meta/recipes-devtools/python-numpy/python3-numpy_1.19.1.bb
index d388e88d25..d388e88d25 100644
--- a/meta/recipes-devtools/python-numpy/python3-numpy_1.17.4.bb
+++ b/meta/recipes-devtools/python-numpy/python3-numpy_1.19.1.bb
diff --git a/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch b/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch
index b1a6813b2e..ee0a9dbb13 100644
--- a/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch
+++ b/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch
@@ -1,4 +1,4 @@
-From 50e4ebce9f711391e2fa9f43906259e19ac00e63 Mon Sep 17 00:00:00 2001
+From 6a5086619ee1c4bcebc7df622face11de6679255 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Tue, 17 Jul 2018 10:13:38 +0800
Subject: [PATCH] conditionally do not fetch code by easy_install
@@ -15,10 +15,10 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
1 file changed, 5 insertions(+)
diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py
-index 09066f8..d3039a5 100644
+index bcbd4f5..6455afd 100644
--- a/setuptools/command/easy_install.py
+++ b/setuptools/command/easy_install.py
-@@ -649,6 +649,11 @@ class easy_install(Command):
+@@ -653,6 +653,11 @@ class easy_install(Command):
os.path.exists(tmpdir) and rmtree(rmtree_safe(tmpdir))
def easy_install(self, spec, deps=False):
@@ -27,6 +27,6 @@ index 09066f8..d3039a5 100644
+ "Please add its native recipe to DEPENDS." % spec)
+ return None
+
- if not self.editable:
- self.install_site_py()
-
+ with self._tmpdir() as tmpdir:
+ if not isinstance(spec, Requirement):
+ if URL_SCHEME(spec):
diff --git a/meta/recipes-devtools/python/python-cython.inc b/meta/recipes-devtools/python/python-cython.inc
new file mode 100644
index 0000000000..b1e71f3ccd
--- /dev/null
+++ b/meta/recipes-devtools/python/python-cython.inc
@@ -0,0 +1,40 @@
+DESCRIPTION = "Cython is a language specially designed for writing Python extension modules. \
+It's designed to bridge the gap between the nice, high-level, easy-to-use world of Python \
+and the messy, low-level world of C."
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e23fadd6ceef8c618fc1c65191d846fa"
+PYPI_PACKAGE = "Cython"
+BBCLASSEXTEND = "native nativesdk"
+
+SRC_URI[sha256sum] = "e57acb89bd55943c8d8bf813763d20b9099cc7165c0f16b707631a7654be9cad"
+UPSTREAM_CHECK_REGEX = "Cython-(?P<pver>.*)\.tar"
+
+inherit pypi
+
+RDEPENDS_${PN}_class-target += "\
+ ${PYTHON_PN}-misc \
+ ${PYTHON_PN}-netserver \
+ ${PYTHON_PN}-pkgutil \
+ ${PYTHON_PN}-pyparsing \
+ ${PYTHON_PN}-setuptools \
+ ${PYTHON_PN}-shell \
+ ${PYTHON_PN}-xml \
+"
+
+RDEPENDS_${PN}_class-nativesdk += "\
+ nativesdk-${PYTHON_PN}-misc \
+ nativesdk-${PYTHON_PN}-netserver \
+ nativesdk-${PYTHON_PN}-pkgutil \
+ nativesdk-${PYTHON_PN}-pyparsing \
+ nativesdk-${PYTHON_PN}-setuptools \
+ nativesdk-${PYTHON_PN}-shell \
+ nativesdk-${PYTHON_PN}-xml \
+"
+
+do_install_append() {
+ # Make sure we use /usr/bin/env python
+ for PYTHSCRIPT in `grep -rIl '^#!.*python' ${D}`; do
+ sed -i -e '1s|^#!.*|#!/usr/bin/env ${PYTHON_PN}|' $PYTHSCRIPT
+ done
+}
diff --git a/meta/recipes-devtools/python/python-extras.inc b/meta/recipes-devtools/python/python-extras.inc
index b5e11b711a..335bde2724 100644
--- a/meta/recipes-devtools/python/python-extras.inc
+++ b/meta/recipes-devtools/python/python-extras.inc
@@ -1,5 +1,5 @@
SUMMARY = "Useful extra bits for Python - things that should be in the standard library"
-HOMEPAGE = "https://pypi.python.org/pypi/extras/"
+HOMEPAGE = "https://pypi.org/project/extras/"
SECTION = "devel/python"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=6d108f338b2f68fe48ac366c4650bd8b"
diff --git a/meta/recipes-devtools/python/python-gitdb.inc b/meta/recipes-devtools/python/python-gitdb.inc
index 23ec2986b1..618d85ff8d 100644
--- a/meta/recipes-devtools/python/python-gitdb.inc
+++ b/meta/recipes-devtools/python/python-gitdb.inc
@@ -6,10 +6,9 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=59e5ecb13339a936eedf83282eaf4528"
inherit pypi
-PYPI_PACKAGE = "gitdb2"
+PYPI_PACKAGE = "gitdb"
-SRC_URI[md5sum] = "1a7ea3362e405f8a5634f7ee53636094"
-SRC_URI[sha256sum] = "1b6df1433567a51a4a9c1a5a0de977aa351a405cc56d7d35f3388bad1f630350"
+SRC_URI[sha256sum] = "c9e1f2d0db7ddb9a704c2a0217be31214e91a4fe1dea1efad19ae42ba0c285c9"
DEPENDS = "${PYTHON_PN}-async ${PYTHON_PN}-setuptools-native ${PYTHON_PN}-smmap"
diff --git a/meta/recipes-devtools/python/python-pbr.inc b/meta/recipes-devtools/python/python-pbr.inc
index 0e64501c32..bc470e7274 100644
--- a/meta/recipes-devtools/python/python-pbr.inc
+++ b/meta/recipes-devtools/python/python-pbr.inc
@@ -1,10 +1,12 @@
SUMMARY = "Python Build Reasonableness"
DESCRIPTION = "PBR is a library that injects some useful and sensible default behaviors into your setuptools run"
-HOMEPAGE = "https://pypi.python.org/pypi/pbr"
+HOMEPAGE = "https://pypi.org/project/pbr"
SECTION = "devel/python"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=1dece7821bf3fd70fe1309eaa37d52a2"
+SRC_URI += "file://0001-change-shebang-to-python3.patch"
+
inherit pypi
RDEPENDS_${PN} += "${PYTHON_PN}-pip"
diff --git a/meta/recipes-devtools/python/python-pycryptodome.inc b/meta/recipes-devtools/python/python-pycryptodome.inc
new file mode 100644
index 0000000000..68b084eb04
--- /dev/null
+++ b/meta/recipes-devtools/python/python-pycryptodome.inc
@@ -0,0 +1,26 @@
+SUMMARY = "Cryptographic library for Python"
+DESCRIPTION = "PyCryptodome is a self-contained Python package of low-level\
+ cryptographic primitives."
+HOMEPAGE = "http://www.pycryptodome.org"
+LICENSE = "PD & BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=6dc0e2a13d2f25d6f123c434b761faba"
+
+inherit pypi
+
+RDEPENDS_${PN} += " \
+ ${PYTHON_PN}-io \
+ ${PYTHON_PN}-math \
+"
+
+RDEPENDS_${PN}-tests += " \
+ ${PYTHON_PN}-unittest \
+"
+
+PACKAGES =+ "${PN}-tests"
+
+FILES_${PN}-tests = " \
+ ${PYTHON_SITEPACKAGES_DIR}/Crypto/SelfTest/ \
+ ${PYTHON_SITEPACKAGES_DIR}/Crypto/SelfTest/__pycache__/ \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/python/python-pyparsing.inc b/meta/recipes-devtools/python/python-pyparsing.inc
new file mode 100644
index 0000000000..348b324bf5
--- /dev/null
+++ b/meta/recipes-devtools/python/python-pyparsing.inc
@@ -0,0 +1,22 @@
+SUMMARY = "Python parsing module"
+HOMEPAGE = "http://pyparsing.wikispaces.com/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=657a566233888513e1f07ba13e2f47f1"
+
+SRC_URI[md5sum] = "f0953e47a0112f7a65aec2305ffdf7b4"
+SRC_URI[sha256sum] = "c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"
+UPSTREAM_CHECK_REGEX = "pyparsing-(?P<pver>.*)\.tar"
+
+inherit pypi
+
+RDEPENDS_${PN} += " \
+ ${PYTHON_PN}-datetime \
+ ${PYTHON_PN}-debugger \
+ ${PYTHON_PN}-json \
+ ${PYTHON_PN}-netclient \
+ ${PYTHON_PN}-pprint \
+ ${PYTHON_PN}-stringold \
+ ${PYTHON_PN}-threading \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/python/python-six.inc b/meta/recipes-devtools/python/python-six.inc
index 05b32810bd..df97f845bc 100644
--- a/meta/recipes-devtools/python/python-six.inc
+++ b/meta/recipes-devtools/python/python-six.inc
@@ -1,5 +1,5 @@
SUMMARY = "Python 2 and 3 compatibility library"
-HOMEPAGE = "https://pypi.python.org/pypi/six/"
+HOMEPAGE = "https://pypi.org/project/six/"
SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=43cfc9e4ac0e377acfb9b76f56b8415d"
diff --git a/meta/recipes-devtools/python/python-smmap.inc b/meta/recipes-devtools/python/python-smmap.inc
index b878b4b399..7703722bca 100644
--- a/meta/recipes-devtools/python/python-smmap.inc
+++ b/meta/recipes-devtools/python/python-smmap.inc
@@ -9,10 +9,9 @@ LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e910b35b0ef4e1f665
inherit pypi
-PYPI_PACKAGE = "smmap2"
+PYPI_PACKAGE = "smmap"
-SRC_URI[md5sum] = "1c59a985be5aa645c4c5a4e063a40dd5"
-SRC_URI[sha256sum] = "29a9ffa0497e7f2be94ca0ed1ca1aa3cd4cf25a1f6b4f5f87f74b46ed91d609a"
+SRC_URI[sha256sum] = "9c98bbd1f9786d22f14b3d4126894d56befb835ec90cef151af566c7e19b5d24"
RDEPENDS_${PN} += "${PYTHON_PN}-codecs \
${PYTHON_PN}-mmap \
diff --git a/meta/recipes-devtools/python/python-subunit.inc b/meta/recipes-devtools/python/python-subunit.inc
index afaaa51fa5..a2f9c5c3ff 100644
--- a/meta/recipes-devtools/python/python-subunit.inc
+++ b/meta/recipes-devtools/python/python-subunit.inc
@@ -1,13 +1,13 @@
SUMMARY = "Python implementation of subunit test streaming protocol"
-HOMEPAGE = "https://pypi.python.org/pypi/python-subunit/"
+HOMEPAGE = "https://pypi.org/project/python-subunit/"
SECTION = "devel/python"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://README.rst;beginline=1;endline=20;md5=909c08e291647fd985fbe5d9836d51b6"
PYPI_PACKAGE = "python-subunit"
-SRC_URI[md5sum] = "16d468a3aeafe6c60a0c3b2b9132d65b"
-SRC_URI[sha256sum] = "9607edbee4c1e5a30ff88549ce8d9feb0b9bcbcb5e55033a9d76e86075465cbb"
+SRC_URI[md5sum] = "30f1ab20651d94442dd9a7f8c9e8d633"
+SRC_URI[sha256sum] = "042039928120fbf392e8c983d60f3d8ae1b88f90a9f8fd7188ddd9c26cad1e48"
inherit pypi
diff --git a/meta/recipes-devtools/python/python-testtools.inc b/meta/recipes-devtools/python/python-testtools.inc
index d0b2e46d7b..e8d308b717 100644
--- a/meta/recipes-devtools/python/python-testtools.inc
+++ b/meta/recipes-devtools/python/python-testtools.inc
@@ -1,13 +1,13 @@
SUMMARY = "Extensions to the Python standard library unit testing framework"
-HOMEPAGE = "https://pypi.python.org/pypi/testtools/"
+HOMEPAGE = "https://pypi.org/project/testtools/"
SECTION = "devel/python"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e2c9d3e8ba7141c83bfef190e0b9379a"
inherit pypi
-SRC_URI[md5sum] = "0f0feb915497816cb99e39437494217e"
-SRC_URI[sha256sum] = "5827ec6cf8233e0f29f51025addd713ca010061204fdea77484a2934690a0559"
+SRC_URI[md5sum] = "e8fc7185b47cfb908c641f8c4b2a6add"
+SRC_URI[sha256sum] = "64c974a6cca4385d05f4bbfa2deca1c39ce88ede31c3448bee86a7259a9a61c8"
DEPENDS += " \
${PYTHON_PN}-pbr \
diff --git a/meta/recipes-devtools/python/python3-cython_0.29.21.bb b/meta/recipes-devtools/python/python3-cython_0.29.21.bb
new file mode 100644
index 0000000000..2ce6bdbd68
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-cython_0.29.21.bb
@@ -0,0 +1,18 @@
+inherit setuptools3
+require python-cython.inc
+
+RDEPENDS_${PN} += "\
+ python3-setuptools \
+"
+
+# running build_ext a second time during install fails, because Python
+# would then attempt to import cythonized modules built for the target
+# architecture.
+DISTUTILS_INSTALL_ARGS += "--skip-build"
+
+do_install_append() {
+ # rename scripts that would conflict with the Python 2 build of Cython
+ mv ${D}${bindir}/cython ${D}${bindir}/cython3
+ mv ${D}${bindir}/cythonize ${D}${bindir}/cythonize3
+ mv ${D}${bindir}/cygdb ${D}${bindir}/cygdb3
+}
diff --git a/meta/recipes-devtools/python/python3-dbusmock_0.19.bb b/meta/recipes-devtools/python/python3-dbusmock_0.19.bb
new file mode 100644
index 0000000000..d297dbc1df
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-dbusmock_0.19.bb
@@ -0,0 +1,17 @@
+SUMMARY = "With this program/Python library you can easily create mock objects on D-Bus"
+
+LICENSE = "GPL-3.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02"
+
+SRC_URI[sha256sum] = "497f30eed2fcd5deaa2633b9622e4e99af4bdfba4e972b350ba630bac6fc86c2"
+
+PYPI_PACKAGE = "python-dbusmock"
+
+inherit pypi setuptools3
+
+RDEPENDS_${PN} += "\
+ ${PYTHON_PN}-dbus \
+ ${PYTHON_PN}-pygobject \
+ ${PYTHON_PN}-unittest \
+ ${PYTHON_PN}-xml \
+ "
diff --git a/meta/recipes-devtools/python/python3-docutils_0.15.bb b/meta/recipes-devtools/python/python3-docutils_0.16.bb
index f5c3f5d707..50547a1b0c 100644
--- a/meta/recipes-devtools/python/python3-docutils_0.15.bb
+++ b/meta/recipes-devtools/python/python3-docutils_0.16.bb
@@ -2,13 +2,13 @@ SUMMARY = "Text processing system for documentation"
HOMEPAGE = "http://docutils.sourceforge.net"
SECTION = "devel/python"
LICENSE = "PSF & BSD-2-Clause & GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING.txt;md5=35a23d42b615470583563132872c97d6"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=7a4646907ab9083c826280b19e103106"
DEPENDS = "python3"
SRC_URI = "${SOURCEFORGE_MIRROR}/docutils/docutils-${PV}.tar.gz"
-SRC_URI[md5sum] = "f51729f19e70a9dc4837433193a5e798"
-SRC_URI[sha256sum] = "c35e87e985f70106f6f97e050f3bed990641e0e104566134b9cd23849a460e96"
+SRC_URI[md5sum] = "9ccb6f332e23360f964de72c8ea5f0ed"
+SRC_URI[sha256sum] = "7d4e999cca74a52611773a42912088078363a30912e8822f7a3d38043b767573"
S = "${WORKDIR}/docutils-${PV}"
diff --git a/meta/recipes-devtools/python/python3-git_3.0.5.bb b/meta/recipes-devtools/python/python3-git_3.1.7.bb
index 36313ef8b9..6d1fc4b653 100644
--- a/meta/recipes-devtools/python/python3-git_3.0.5.bb
+++ b/meta/recipes-devtools/python/python3-git_3.1.7.bb
@@ -12,8 +12,7 @@ PYPI_PACKAGE = "GitPython"
inherit pypi setuptools3
-SRC_URI[md5sum] = "7555ad89a22f663c25cced5f623bdef0"
-SRC_URI[sha256sum] = "9c2398ffc3dcb3c40b27324b316f08a4f93ad646d5a6328cafbb871aa79f5e42"
+SRC_URI[sha256sum] = "2db287d71a284e22e5c2846042d0602465c7434d910406990d5b74df4afb0858"
DEPENDS += " ${PYTHON_PN}-gitdb"
diff --git a/meta/recipes-devtools/python/python3-gitdb_2.0.6.bb b/meta/recipes-devtools/python/python3-gitdb_2.0.6.bb
deleted file mode 100644
index 2dcd9c8aff..0000000000
--- a/meta/recipes-devtools/python/python3-gitdb_2.0.6.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-inherit setuptools3
-require python-gitdb.inc
-
diff --git a/meta/recipes-devtools/python/python3-gitdb_4.0.5.bb b/meta/recipes-devtools/python/python3-gitdb_4.0.5.bb
new file mode 100644
index 0000000000..fe56bf9640
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-gitdb_4.0.5.bb
@@ -0,0 +1,4 @@
+inherit setuptools3
+require python-gitdb.inc
+
+SRC_URI[md5sum] = "0e2d3f34efece5deda7c55fede6507cc"
diff --git a/meta/recipes-devtools/python/python3-iniparse_0.4.bb b/meta/recipes-devtools/python/python3-iniparse_0.4.bb
index 4eba9ecd34..47cd6598cc 100644
--- a/meta/recipes-devtools/python/python3-iniparse_0.4.bb
+++ b/meta/recipes-devtools/python/python3-iniparse_0.4.bb
@@ -1,5 +1,5 @@
SUMMARY = "Accessing and Modifying INI files"
-HOMEPAGE = "https://pypi.python.org/pypi/iniparse/"
+HOMEPAGE = "https://pypi.org/project/iniparse/"
LICENSE = "MIT & PSF"
LIC_FILES_CHKSUM = "file://LICENSE-PSF;md5=1c78a5bb3584b353496d5f6f34edb4b2 \
file://LICENSE;md5=52f28065af11d69382693b45b5a8eb54"
diff --git a/meta/recipes-devtools/python/python3-jinja2/run-ptest b/meta/recipes-devtools/python/python3-jinja2/run-ptest
new file mode 100644
index 0000000000..5cec711696
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-jinja2/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest
diff --git a/meta/recipes-devtools/python/python3-jinja2_2.11.2.bb b/meta/recipes-devtools/python/python3-jinja2_2.11.2.bb
new file mode 100644
index 0000000000..89538d2f27
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-jinja2_2.11.2.bb
@@ -0,0 +1,45 @@
+DESCRIPTION = "Python Jinja2: A small but fast and easy to use stand-alone template engine written in pure python."
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=5dc88300786f1c214c1e9827a5229462"
+
+SRC_URI[sha256sum] = "89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0"
+
+PYPI_PACKAGE = "Jinja2"
+
+CLEANBROKEN = "1"
+
+inherit pypi setuptools3
+# ptest disabled in OE-Core for now due to missing dependencies
+
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS_${PN}-ptest += " \
+ ${PYTHON_PN}-pytest \
+ ${PYTHON_PN}-unixadmin \
+"
+
+RDEPENDS_${PN} += " \
+ ${PYTHON_PN}-asyncio \
+ ${PYTHON_PN}-crypt \
+ ${PYTHON_PN}-io \
+ ${PYTHON_PN}-json \
+ ${PYTHON_PN}-markupsafe \
+ ${PYTHON_PN}-math \
+ ${PYTHON_PN}-netclient \
+ ${PYTHON_PN}-numbers\
+ ${PYTHON_PN}-pickle \
+ ${PYTHON_PN}-pprint \
+ ${PYTHON_PN}-shell \
+ ${PYTHON_PN}-threading \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/python/python3-libarchive-c_2.9.bb b/meta/recipes-devtools/python/python3-libarchive-c_2.9.bb
index 4983ae527a..3a2d8733e9 100644
--- a/meta/recipes-devtools/python/python3-libarchive-c_2.9.bb
+++ b/meta/recipes-devtools/python/python3-libarchive-c_2.9.bb
@@ -12,6 +12,10 @@ inherit pypi setuptools3
SRC_URI[md5sum] = "083bd2cb0043c1e22a52cb9a05e31532"
SRC_URI[sha256sum] = "9919344cec203f5db6596a29b5bc26b07ba9662925a05e24980b84709232ef60"
-RDEPENDS_${PN} += "libarchive"
+RDEPENDS_${PN} += "\
+ libarchive \
+ ${PYTHON_PN}-ctypes \
+ ${PYTHON_PN}-mmap \
+"
BBCLASSEXTEND = "native"
diff --git a/meta/recipes-devtools/python/python3-magic_0.4.15.bb b/meta/recipes-devtools/python/python3-magic_0.4.18.bb
index 698016ba4c..101b96d31c 100644
--- a/meta/recipes-devtools/python/python3-magic_0.4.15.bb
+++ b/meta/recipes-devtools/python/python3-magic_0.4.18.bb
@@ -11,9 +11,12 @@ PYPI_PACKAGE = "python-magic"
inherit pypi setuptools3
-SRC_URI[md5sum] = "e384c95a47218f66c6501cd6dd45ff59"
-SRC_URI[sha256sum] = "f3765c0f582d2dfc72c15f3b5a82aecfae9498bd29ca840d72f37d7bd38bfcd5"
+SRC_URI[md5sum] = "5edc6caa39cc62641850f6b1b6f284ba"
+SRC_URI[sha256sum] = "b757db2a5289ea3f1ced9e60f072965243ea43a2221430048fd8cacab17be0ce"
-RDEPENDS_${PN} += "file"
+RDEPENDS_${PN} += "file \
+ ${PYTHON_PN}-ctypes \
+ ${PYTHON_PN}-io \
+ ${PYTHON_PN}-shell"
BBCLASSEXTEND = "native"
diff --git a/meta/recipes-devtools/python/python3-mako_1.1.0.bb b/meta/recipes-devtools/python/python3-mako_1.1.3.bb
index b139e5ab00..cda4e99220 100644
--- a/meta/recipes-devtools/python/python3-mako_1.1.0.bb
+++ b/meta/recipes-devtools/python/python3-mako_1.1.3.bb
@@ -2,14 +2,13 @@ SUMMARY = "Templating library for Python"
HOMEPAGE = "http://www.makotemplates.org/"
SECTION = "devel/python"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=df7e6c7c82990acf0228a55e00d29bc9"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=943eb67718222db21d44a4ef1836675f"
PYPI_PACKAGE = "Mako"
inherit pypi setuptools3
-SRC_URI[md5sum] = "6c3f2da0b74af529a4c4a537d0848bf2"
-SRC_URI[sha256sum] = "a36919599a9b7dc5d86a7a8988f23a9a3a3d083070023bab23d64f7f1d1e0a4b"
+SRC_URI[sha256sum] = "8195c8c1400ceb53496064314c6736719c6f25e7479cd24c77be3d9361cddc27"
RDEPENDS_${PN} = "${PYTHON_PN}-html \
${PYTHON_PN}-netclient \
diff --git a/meta/recipes-devtools/python/python3-markupsafe/run-ptest b/meta/recipes-devtools/python/python3-markupsafe/run-ptest
new file mode 100644
index 0000000000..5cec711696
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-markupsafe/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest
diff --git a/meta/recipes-devtools/python/python3-markupsafe_1.1.1.bb b/meta/recipes-devtools/python/python3-markupsafe_1.1.1.bb
new file mode 100644
index 0000000000..403a98a43f
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-markupsafe_1.1.1.bb
@@ -0,0 +1,28 @@
+DESCRIPTION = "Implements a XML/HTML/XHTML Markup safe string for Python"
+HOMEPAGE = "http://github.com/mitsuhiko/markupsafe"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75"
+
+SRC_URI[md5sum] = "43fd756864fe42063068e092e220c57b"
+SRC_URI[sha256sum] = "29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"
+
+PYPI_PACKAGE = "MarkupSafe"
+inherit pypi setuptools3
+# ptest disabled in OE-Core for now due to missing dependencies
+
+RDEPENDS_${PN} += "${PYTHON_PN}-stringold"
+
+BBCLASSEXTEND = "native nativesdk"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS_${PN}-ptest += " \
+ ${PYTHON_PN}-pytest \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -f ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta/recipes-devtools/python/python3-pbr/0001-change-shebang-to-python3.patch b/meta/recipes-devtools/python/python3-pbr/0001-change-shebang-to-python3.patch
new file mode 100644
index 0000000000..688da6b204
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-pbr/0001-change-shebang-to-python3.patch
@@ -0,0 +1,42 @@
+From 09bd8368bf0d5385663a10eeb890131481681bdd Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Thu, 23 Apr 2020 09:28:58 +0000
+Subject: [PATCH] change shebang to python3
+
+Upstream-Status: Pending
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ pbr/tests/test_integration.py | 2 +-
+ pbr/tests/test_packaging.py | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/pbr/tests/test_integration.py b/pbr/tests/test_integration.py
+index 8e96f21..b07cbe3 100644
+--- a/pbr/tests/test_integration.py
++++ b/pbr/tests/test_integration.py
+@@ -150,7 +150,7 @@ class TestInstallWithoutPbr(base.BaseTestCase):
+ pkgs = {
+ 'pkgTest': {
+ 'setup.py': textwrap.dedent("""\
+- #!/usr/bin/env python
++ #!/usr/bin/env python3
+ import setuptools
+ setuptools.setup(
+ name = 'pkgTest',
+diff --git a/pbr/tests/test_packaging.py b/pbr/tests/test_packaging.py
+index 07be547..f6a9412 100644
+--- a/pbr/tests/test_packaging.py
++++ b/pbr/tests/test_packaging.py
+@@ -206,7 +206,7 @@ class CreatePackages(fixtures.Fixture):
+
+ defaults = {
+ 'setup.py': textwrap.dedent(six.u("""\
+- #!/usr/bin/env python
++ #!/usr/bin/env python3
+ import setuptools
+ setuptools.setup(
+ setup_requires=['pbr'],
+--
+2.24.1
+
diff --git a/meta/recipes-devtools/python/python3-pip/0001-change-shebang-to-python3.patch b/meta/recipes-devtools/python/python3-pip/0001-change-shebang-to-python3.patch
new file mode 100644
index 0000000000..00cffe169b
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-pip/0001-change-shebang-to-python3.patch
@@ -0,0 +1,60 @@
+From e7a00e9b5104ae2fbcea32a35c85760b77fae7e5 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Thu, 23 Apr 2020 09:42:10 +0000
+Subject: [PATCH] change shebang to python3
+
+Upstream-Status: Pending
+
+pip will drop support of python2 from 21.0
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ src/pip/_internal/__init__.py | 2 +-
+ src/pip/_vendor/appdirs.py | 2 +-
+ src/pip/_vendor/chardet/cli/chardetect.py | 2 +-
+ src/pip/_vendor/requests/certs.py | 2 +-
+ 4 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/pip/_internal/__init__.py b/src/pip/_internal/__init__.py
+index 3aa8a46..e1ad179 100755
+--- a/src/pip/_internal/__init__.py
++++ b/src/pip/_internal/__init__.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ import pip._internal.utils.inject_securetransport # noqa
+ from pip._internal.utils.typing import MYPY_CHECK_RUNNING
+
+diff --git a/src/pip/_vendor/appdirs.py b/src/pip/_vendor/appdirs.py
+index 3a52b75..ad3f81d 100644
+--- a/src/pip/_vendor/appdirs.py
++++ b/src/pip/_vendor/appdirs.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # -*- coding: utf-8 -*-
+ # Copyright (c) 2005-2010 ActiveState Software Inc.
+ # Copyright (c) 2013 Eddy Petrișor
+diff --git a/src/pip/_vendor/chardet/cli/chardetect.py b/src/pip/_vendor/chardet/cli/chardetect.py
+index c61136b..a497e98 100644
+--- a/src/pip/_vendor/chardet/cli/chardetect.py
++++ b/src/pip/_vendor/chardet/cli/chardetect.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ """
+ Script which takes one or more file paths and reports on their detected
+ encodings
+diff --git a/src/pip/_vendor/requests/certs.py b/src/pip/_vendor/requests/certs.py
+index 06a594e..bfa7839 100644
+--- a/src/pip/_vendor/requests/certs.py
++++ b/src/pip/_vendor/requests/certs.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # -*- coding: utf-8 -*-
+
+ """
+--
+2.24.1
+
diff --git a/meta/recipes-devtools/python/python3-pip_20.0.2.bb b/meta/recipes-devtools/python/python3-pip_20.0.2.bb
index 08738fb2f9..99eeea2edf 100644
--- a/meta/recipes-devtools/python/python3-pip_20.0.2.bb
+++ b/meta/recipes-devtools/python/python3-pip_20.0.2.bb
@@ -1,11 +1,13 @@
SUMMARY = "The PyPA recommended tool for installing Python packages"
-HOMEPAGE = "https://pypi.python.org/pypi/pip"
+HOMEPAGE = "https://pypi.org/project/pip"
SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8ba06d529c955048e5ddd7c45459eb2e"
DEPENDS += "python3 python3-setuptools-native"
+SRC_URI += "file://0001-change-shebang-to-python3.patch"
+
SRC_URI[md5sum] = "7d42ba49b809604f0df3d55df1c3fd86"
SRC_URI[sha256sum] = "7db0c8ea4c7ea51c8049640e8e6e7fde949de672bfa4949920675563a5a6967f"
diff --git a/meta/recipes-devtools/python/python3-pycairo_1.19.0.bb b/meta/recipes-devtools/python/python3-pycairo_1.19.1.bb
index 8f60834c17..34c8543bce 100644
--- a/meta/recipes-devtools/python/python3-pycairo_1.19.0.bb
+++ b/meta/recipes-devtools/python/python3-pycairo_1.19.1.bb
@@ -13,8 +13,8 @@ DEPENDS = "cairo python3"
SRC_URI = "https://github.com/pygobject/pycairo/releases/download/v${PV}/pycairo-${PV}.tar.gz"
UPSTREAM_CHECK_URI = "https://github.com/pygobject/pycairo/releases/"
-SRC_URI[md5sum] = "38b84416021640b01250c8f8ec4c52d4"
-SRC_URI[sha256sum] = "4f5ba9374a46c98729dd3727d993f5e17ed0286fd6738ed464fe4efa0612d19c"
+SRC_URI[md5sum] = "59bc5c5d1debc3af0f6791af9d612551"
+SRC_URI[sha256sum] = "2c143183280feb67f5beb4e543fd49990c28e7df427301ede04fc550d3562e84"
S = "${WORKDIR}/pycairo-${PV}"
diff --git a/meta/recipes-devtools/python/python3-pycryptodome_3.9.8.bb b/meta/recipes-devtools/python/python3-pycryptodome_3.9.8.bb
new file mode 100644
index 0000000000..46e122072e
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-pycryptodome_3.9.8.bb
@@ -0,0 +1,5 @@
+require python-pycryptodome.inc
+inherit setuptools3
+
+SRC_URI[sha256sum] = "0e24171cf01021bc5dc17d6a9d4f33a048f09d62cc3f62541e95ef104588bda4"
+
diff --git a/meta/recipes-devtools/python/python3-pycryptodomex_3.9.8.bb b/meta/recipes-devtools/python/python3-pycryptodomex_3.9.8.bb
new file mode 100644
index 0000000000..035c7fa636
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-pycryptodomex_3.9.8.bb
@@ -0,0 +1,9 @@
+require python-pycryptodome.inc
+inherit setuptools3
+
+SRC_URI[sha256sum] = "48cc2cfc251f04a6142badeb666d1ff49ca6fdfc303fd72579f62b768aaa52b9"
+
+FILES_${PN}-tests = " \
+ ${PYTHON_SITEPACKAGES_DIR}/Cryptodome/SelfTest/ \
+ ${PYTHON_SITEPACKAGES_DIR}/Cryptodome/SelfTest/__pycache__/ \
+"
diff --git a/meta/recipes-devtools/python/python3-pyelftools_0.26.bb b/meta/recipes-devtools/python/python3-pyelftools_0.26.bb
new file mode 100644
index 0000000000..575dfc4dc9
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-pyelftools_0.26.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "pyelftools is a pure-Python library for parsing and analyzing ELF files and DWARF debugging information"
+HOMEPAGE = "https://github.com/eliben/pyelftools"
+SECTION = "devel/python"
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5ce2a2b07fca326bc7c146d10105ccfc"
+
+SRC_URI[md5sum] = "0ba0de4b47127249c4d632ae299cb0e8"
+SRC_URI[sha256sum] = "86ac6cee19f6c945e8dedf78c6ee74f1112bd14da5a658d8c9d4103aed5756a2"
+
+PYPI_PACKAGE = "pyelftools"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native"
diff --git a/meta/recipes-devtools/python/python3-pygments_2.5.2.bb b/meta/recipes-devtools/python/python3-pygments_2.6.1.bb
index 474b95494a..bffef59e69 100644
--- a/meta/recipes-devtools/python/python3-pygments_2.5.2.bb
+++ b/meta/recipes-devtools/python/python3-pygments_2.6.1.bb
@@ -5,8 +5,8 @@ LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e1d7b7bffbfeaa14083fd2bd3236aea8"
inherit setuptools3
-SRC_URI[md5sum] = "465a35559863089d959d783a69f79b9f"
-SRC_URI[sha256sum] = "98c8aa5a9f778fcd1026a17361ddaf7330d1b7c62ae97c3bb0ae73e0b9b6b0fe"
+SRC_URI[md5sum] = "a48c5219de92f12c41acba814730b31a"
+SRC_URI[sha256sum] = "647344a061c249a3b74e230c739f434d7ea4d8b1d5f3721bc0f3558049b38f44"
DEPENDS += "\
${PYTHON_PN} \
diff --git a/meta/recipes-devtools/python/python3-pygobject_3.34.0.bb b/meta/recipes-devtools/python/python3-pygobject_3.36.1.bb
index 6babf0cae8..0a34d4373f 100644
--- a/meta/recipes-devtools/python/python3-pygobject_3.34.0.bb
+++ b/meta/recipes-devtools/python/python3-pygobject_3.36.1.bb
@@ -14,8 +14,8 @@ SRC_URI = " \
http://ftp.gnome.org/pub/GNOME/sources/${SRCNAME}/${@gnome_verdir("${PV}")}/${SRCNAME}-${PV}.tar.xz \
file://0001-Do-not-build-tests.patch \
"
-SRC_URI[md5sum] = "ca1dc4f31c1d6d283758e8f315a88ab6"
-SRC_URI[sha256sum] = "87e2c9aa785f352ef111dcc5f63df9b85cf6e05e52ff04f803ffbebdacf5271a"
+SRC_URI[md5sum] = "ebfebc4533856572281add29f08412bf"
+SRC_URI[sha256sum] = "d1bf42802d1cec113b5adaa0e7bf7f3745b44521dc2163588d276d5cd61d718f"
UNKNOWN_CONFIGURE_WHITELIST = "introspection"
diff --git a/meta/recipes-devtools/python/python3-pyparsing_2.4.7.bb b/meta/recipes-devtools/python/python3-pyparsing_2.4.7.bb
new file mode 100644
index 0000000000..d0c3d0b424
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-pyparsing_2.4.7.bb
@@ -0,0 +1,3 @@
+inherit setuptools3
+require python-pyparsing.inc
+
diff --git a/meta/recipes-devtools/python/python3-scons-native_3.1.1.bb b/meta/recipes-devtools/python/python3-scons-native_3.1.2.bb
index 5cd5956625..9e127304d6 100644
--- a/meta/recipes-devtools/python/python3-scons-native_3.1.1.bb
+++ b/meta/recipes-devtools/python/python3-scons-native_3.1.2.bb
@@ -1,7 +1,6 @@
require python3-scons_${PV}.bb
inherit native python3native
-DEPENDS = "python3-native"
-RDEPENDS_${PN} = ""
+DEPENDS = "python3-native python3-setuptools-native"
do_install_append() {
create_wrapper ${D}${bindir}/scons SCONS_LIB_DIR='${STAGING_DIR_HOST}/${PYTHON_SITEPACKAGES_DIR}' PYTHONNOUSERSITE='1'
diff --git a/meta/recipes-devtools/python/python3-scons_3.1.1.bb b/meta/recipes-devtools/python/python3-scons_3.1.1.bb
deleted file mode 100644
index 0c7aaeaeee..0000000000
--- a/meta/recipes-devtools/python/python3-scons_3.1.1.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "Software Construction tool (make/autotools replacement)"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=37bb53a08e6beaea0c90e7821d731284"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/scons/scons-${PV}.tar.gz"
-SRC_URI[md5sum] = "35b2a3993313bbedd221d4d5758fd2fd"
-SRC_URI[sha256sum] = "4cea417fdd7499a36f407923d03b4b7000b0f9e8fd7b31b316b9ce7eba9143a5"
-
-S = "${WORKDIR}/scons-${PV}"
-
-UPSTREAM_CHECK_URI = "http://scons.org/pages/download.html"
-UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.tar"
-
-inherit setuptools3
-
-do_install_prepend() {
- sed -i -e "1s,#!.*python.*,#!${USRBINPATH}/env python3," ${S}/script/*
-}
-
-RDEPENDS_${PN} = "\
- python3-core \
- python3-fcntl \
- python3-io \
- python3-json \
- python3-shell \
- python3-pickle \
- python3-pprint \
- "
diff --git a/meta/recipes-devtools/python/python3-scons_3.1.2.bb b/meta/recipes-devtools/python/python3-scons_3.1.2.bb
new file mode 100644
index 0000000000..ce117a92d4
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-scons_3.1.2.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Software Construction tool (make/autotools replacement)"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE-python3-scons-${PV};md5=e14e1b33428df24a40a782ae142785d0"
+
+# pypi package does not have a valid license file
+SRC_URI += "https://raw.githubusercontent.com/SCons/scons/${PV}/LICENSE;downloadfilename=LICENSE-python3-scons-${PV};name=license"
+
+SRC_URI[md5sum] = "f9c4ad06dcf1427be95472eaf380c81a"
+SRC_URI[sha256sum] = "8aaa483c303efeb678e6f7c776c8444a482f8ddc3ad891f8b6cdd35264da9a1f"
+SRC_URI[license.md5sum] = "e14e1b33428df24a40a782ae142785d0"
+SRC_URI[license.sha256sum] = "72ed889165fb28378cadac14552be4a959f1ebab6b148abb5dd2b49712c3c6f6"
+
+S = "${WORKDIR}/scons-${PV}"
+
+UPSTREAM_CHECK_URI = "http://scons.org/pages/download.html"
+UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.tar"
+
+inherit pypi setuptools3
+
+do_install_prepend() {
+ sed -i -e "1s,#!.*python.*,#!${USRBINPATH}/env python3," ${S}/script/*
+}
+
+RDEPENDS_${PN}_class-target = "\
+ python3-core \
+ python3-fcntl \
+ python3-io \
+ python3-json \
+ python3-shell \
+ python3-pickle \
+ python3-pprint \
+ "
diff --git a/meta/recipes-devtools/python/python3-setuptools/0001-change-shebang-to-python3.patch b/meta/recipes-devtools/python/python3-setuptools/0001-change-shebang-to-python3.patch
new file mode 100644
index 0000000000..6dcf52771b
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-setuptools/0001-change-shebang-to-python3.patch
@@ -0,0 +1,25 @@
+From c39d0896930e25c224cc897660fc8511ccae30c8 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Thu, 23 Apr 2020 10:01:12 +0000
+Subject: [PATCH] change shebang to python3
+
+Upstream-Status: Pending
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ pkg_resources/_vendor/appdirs.py | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/pkg_resources/_vendor/appdirs.py b/pkg_resources/_vendor/appdirs.py
+index ae67001..933e398 100644
+--- a/pkg_resources/_vendor/appdirs.py
++++ b/pkg_resources/_vendor/appdirs.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # -*- coding: utf-8 -*-
+ # Copyright (c) 2005-2010 ActiveState Software Inc.
+ # Copyright (c) 2013 Eddy Petrișor
+--
+2.24.1
+
diff --git a/meta/recipes-devtools/python/python3-setuptools_45.0.0.bb b/meta/recipes-devtools/python/python3-setuptools_45.0.0.bb
deleted file mode 100644
index 0dc1ed8622..0000000000
--- a/meta/recipes-devtools/python/python3-setuptools_45.0.0.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require python-setuptools.inc
-inherit setuptools3
-
-do_install_append() {
- mv ${D}${bindir}/easy_install ${D}${bindir}/easy3_install
-}
diff --git a/meta/recipes-devtools/python/python-setuptools.inc b/meta/recipes-devtools/python/python3-setuptools_49.6.0.bb
index c697937887..360128b116 100644
--- a/meta/recipes-devtools/python/python-setuptools.inc
+++ b/meta/recipes-devtools/python/python3-setuptools_49.6.0.bb
@@ -1,29 +1,33 @@
SUMMARY = "Download, build, install, upgrade, and uninstall Python packages"
-HOMEPAGE = "https://pypi.python.org/pypi/setuptools"
+HOMEPAGE = "https://pypi.org/project/setuptools"
SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;beginline=1;endline=19;md5=9a33897f1bca1160d7aad3835152e158"
PYPI_PACKAGE_EXT = "zip"
-inherit pypi
+inherit pypi setuptools3
SRC_URI_append_class-native = " file://0001-conditionally-do-not-fetch-code-by-easy_install.patch"
-SRC_URI[md5sum] = "14898abd6f436eee58a5a2ba291fcbeb"
-SRC_URI[sha256sum] = "c46d9c8f2289535457d36c676b541ca78f7dcb736b97d02f50d17f7f15b583cc"
+SRC_URI += "file://0001-change-shebang-to-python3.patch"
+
+SRC_URI[sha256sum] = "46bd862894ed22c2edff033c758c2dc026324788d758e96788e8f7c11f4e9707"
DEPENDS += "${PYTHON_PN}"
RDEPENDS_${PN} = "\
+ ${PYTHON_PN}-2to3 \
${PYTHON_PN}-compile \
${PYTHON_PN}-compression \
${PYTHON_PN}-ctypes \
${PYTHON_PN}-distutils \
${PYTHON_PN}-email \
${PYTHON_PN}-html \
+ ${PYTHON_PN}-json \
${PYTHON_PN}-netserver \
${PYTHON_PN}-numbers \
+ ${PYTHON_PN}-pickle \
${PYTHON_PN}-pkgutil \
${PYTHON_PN}-plistlib \
${PYTHON_PN}-shell \
@@ -32,10 +36,15 @@ RDEPENDS_${PN} = "\
${PYTHON_PN}-unittest \
${PYTHON_PN}-xml \
"
+
do_install_prepend() {
install -d ${D}${PYTHON_SITEPACKAGES_DIR}
}
+do_install_append() {
+ mv ${D}${bindir}/easy_install ${D}${bindir}/easy3_install
+}
+
BBCLASSEXTEND = "native nativesdk"
# The pkg-resources module can be used by itself, without the package downloader
@@ -43,6 +52,12 @@ BBCLASSEXTEND = "native nativesdk"
# minimal distributions.
PACKAGES =+ "${PYTHON_PN}-pkg-resources "
FILES_${PYTHON_PN}-pkg-resources = "${PYTHON_SITEPACKAGES_DIR}/pkg_resources/*"
+RDEPENDS_${PYTHON_PN}-pkg-resources = "\
+ ${PYTHON_PN}-compression \
+ ${PYTHON_PN}-email \
+ ${PYTHON_PN}-plistlib \
+ ${PYTHON_PN}-pprint \
+"
# Due to the way OE-Core implemented native recipes, the native class cannot
# have a dependency on something that is not a recipe name. Work around that by
# manually setting RPROVIDES.
diff --git a/meta/recipes-devtools/python/python3-six_1.14.0.bb b/meta/recipes-devtools/python/python3-six_1.14.0.bb
deleted file mode 100644
index 151c366caa..0000000000
--- a/meta/recipes-devtools/python/python3-six_1.14.0.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-inherit setuptools3
-require python-six.inc
-
-SRC_URI[md5sum] = "21674588a57e649d1a6d977ec3122140"
-SRC_URI[sha256sum] = "236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a"
diff --git a/meta/recipes-devtools/python/python3-six_1.15.0.bb b/meta/recipes-devtools/python/python3-six_1.15.0.bb
new file mode 100644
index 0000000000..6c6f3f9629
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-six_1.15.0.bb
@@ -0,0 +1,5 @@
+inherit setuptools3
+require python-six.inc
+
+SRC_URI[md5sum] = "9f90a0eaa0ea7747fda01ca79d21ebcb"
+SRC_URI[sha256sum] = "30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"
diff --git a/meta/recipes-devtools/python/python3-smmap_2.0.5.bb b/meta/recipes-devtools/python/python3-smmap_3.0.4.bb
index e87b8df8c5..5f0f341d6a 100644
--- a/meta/recipes-devtools/python/python3-smmap_2.0.5.bb
+++ b/meta/recipes-devtools/python/python3-smmap_3.0.4.bb
@@ -1,2 +1,3 @@
inherit setuptools3
require python-smmap.inc
+
diff --git a/meta/recipes-devtools/python/python3-subunit_1.3.0.bb b/meta/recipes-devtools/python/python3-subunit_1.4.0.bb
index 55066e2d0f..55066e2d0f 100644
--- a/meta/recipes-devtools/python/python3-subunit_1.3.0.bb
+++ b/meta/recipes-devtools/python/python3-subunit_1.4.0.bb
diff --git a/meta/recipes-devtools/python/python3-testtools_2.3.0.bb b/meta/recipes-devtools/python/python3-testtools_2.4.0.bb
index a254b90a75..a254b90a75 100644
--- a/meta/recipes-devtools/python/python3-testtools_2.3.0.bb
+++ b/meta/recipes-devtools/python/python3-testtools_2.4.0.bb
diff --git a/meta/recipes-devtools/python/python3/0001-Don-t-search-system-for-headers-libraries.patch b/meta/recipes-devtools/python/python3/0001-Don-t-search-system-for-headers-libraries.patch
new file mode 100644
index 0000000000..3e471b9a49
--- /dev/null
+++ b/meta/recipes-devtools/python/python3/0001-Don-t-search-system-for-headers-libraries.patch
@@ -0,0 +1,27 @@
+From b880e78bf4a1852e260188e6df3ec6034403d2fc Mon Sep 17 00:00:00 2001
+From: Jeremy Puhlman <jpuhlman@mvista.com>
+Date: Wed, 4 Mar 2020 00:06:42 +0000
+Subject: [PATCH] Don't search system for headers/libraries
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
+
+---
+ setup.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 7208cd0..c0bd0ad 100644
+--- a/setup.py
++++ b/setup.py
+@@ -674,8 +674,8 @@ class PyBuildExt(build_ext):
+ add_dir_to_list(self.compiler.include_dirs,
+ sysconfig.get_config_var("INCLUDEDIR"))
+
+- system_lib_dirs = ['/lib64', '/usr/lib64', '/lib', '/usr/lib']
+- system_include_dirs = ['/usr/include']
++ system_lib_dirs = []
++ system_include_dirs = []
+ # 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.
diff --git a/meta/recipes-devtools/python/python3/0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch b/meta/recipes-devtools/python/python3/0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch
index fe0aa8aabe..c4fae09a5b 100644
--- a/meta/recipes-devtools/python/python3/0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch
+++ b/meta/recipes-devtools/python/python3/0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch
@@ -1,4 +1,4 @@
-From 2581ebe3cd9686089aed223651e1b8bf0b862b48 Mon Sep 17 00:00:00 2001
+From 1ad771d86728ee2ed30e202e9768d8d825f96467 Mon Sep 17 00:00:00 2001
From: Matthias Schoepfer <matthias.schoepfer@ithinx.io>
Date: Fri, 31 May 2019 15:34:34 +0200
Subject: [PATCH] bpo-36852: proper detection of mips architecture for soft
@@ -13,15 +13,16 @@ to do this in a more autoconf/autotools manner.
Upstream-Status: Submitted [https://github.com/python/cpython/pull/13196]
Signed-off-by: Matthias Schoepfer <matthias.schoepfer@ithinx.io>
+%% original patch: 0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch
---
- configure.ac | 171 +++++----------------------------------------------
- 1 file changed, 17 insertions(+), 154 deletions(-)
+ configure.ac | 175 +++++++--------------------------------------------
+ 1 file changed, 21 insertions(+), 154 deletions(-)
diff --git a/configure.ac b/configure.ac
-index 0f85486..0ca7e24 100644
+index ede710e..bc81b0b 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -704,160 +704,23 @@ fi
+@@ -710,160 +710,27 @@ fi
MULTIARCH=$($CC --print-multiarch 2>/dev/null)
AC_SUBST(MULTIARCH)
@@ -193,9 +194,16 @@ index 0f85486..0ca7e24 100644
+ PLATFORM_TRIPLET=vxworks
+ ;;
+ *)
-+ PLATFORM_TRIPLET=${target_cpu}-${target_os}
++ if test "${target_cpu}" != "i686"; then
++ PLATFORM_TRIPLET=${target_cpu}-${target_os}
++ else
++ PLATFORM_TRIPLET=i386-${target_os}
++ fi
+ ;;
+esac
if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then
if test x$PLATFORM_TRIPLET != x$MULTIARCH; then
+--
+2.24.1
+
diff --git a/meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch b/meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch
index e7af3c6f5c..2b68c0acc2 100644
--- a/meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch
+++ b/meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch
@@ -1,4 +1,4 @@
-From 7ada9c749f6beb51c13a3debc850755e911548a6 Mon Sep 17 00:00:00 2001
+From bc59d49efff41051034d7fbf5d0c8505e4c3134b Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Thu, 31 Jan 2019 16:46:30 +0100
Subject: [PATCH] distutils/sysconfig: append
diff --git a/meta/recipes-devtools/python/python3/0001-setup.py-pass-missing-libraries-to-Extension-for-mul.patch b/meta/recipes-devtools/python/python3/0001-setup.py-pass-missing-libraries-to-Extension-for-mul.patch
index d38ed61dd7..ea0af02e72 100644
--- a/meta/recipes-devtools/python/python3/0001-setup.py-pass-missing-libraries-to-Extension-for-mul.patch
+++ b/meta/recipes-devtools/python/python3/0001-setup.py-pass-missing-libraries-to-Extension-for-mul.patch
@@ -46,7 +46,7 @@ ValueError: semaphore or lock released too many times
And the semaphore issue also caused multiprocessing.Queue().put() hung.
-Upstream-Status: Pensing
+Upstream-Status: Pending
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
diff --git a/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch b/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch
index 61ac3e71dc..820fb98ed8 100644
--- a/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch
+++ b/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch
@@ -1,4 +1,4 @@
-From 251347fc970a397a9cd63ed3f87c5e6c52e15187 Mon Sep 17 00:00:00 2001
+From 064187668fcbefdd39a8cde372bf651124c3e578 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 14 May 2013 15:00:26 -0700
Subject: [PATCH] python3: Add target and native recipes
diff --git a/meta/recipes-devtools/python/python3/get_module_deps3.py b/meta/recipes-devtools/python/python3/get_module_deps3.py
index fd12baad84..6806f23172 100644
--- a/meta/recipes-devtools/python/python3/get_module_deps3.py
+++ b/meta/recipes-devtools/python/python3/get_module_deps3.py
@@ -9,6 +9,7 @@
debug=False
import sys
+import os
# We can get a list of the modules which are currently required to run python
# so we run python-core and get its modules, we then import what we need
@@ -48,8 +49,19 @@ current_module = str(sys.argv[1]).rstrip()
if(debug==True):
log = open('log_%s' % current_module,'w')
log.write('Module %s generated the following dependencies:\n' % current_module)
-try:
- importlib.import_module('%s' % current_module)
+try:
+ m = importlib.import_module(current_module)
+ # handle python packages which may not include all modules in the __init__
+ if os.path.basename(m.__file__) == "__init__.py":
+ modulepath = os.path.dirname(m.__file__)
+ for i in os.listdir(modulepath):
+ if i.startswith("_") or not(i.endswith(".py")):
+ continue
+ submodule = "{}.{}".format(current_module, i[:-3])
+ try:
+ importlib.import_module(submodule)
+ except:
+ pass # ignore all import or other exceptions raised during import
except ImportError as e:
if (debug==True):
log.write('Module was not found')
@@ -107,6 +119,8 @@ for item in dif:
dep_path = dep_path.replace(soabi,'*')
print (dep_path)
continue
+ if "_sysconfigdata" in dep_path:
+ dep_path = dep_path.replace(sysconfig._get_sysconfigdata_name(), "_sysconfigdata*")
if (debug==True):
log.write(dep_path+'\n')
@@ -140,6 +154,8 @@ for item in dif:
log.write(cached)
cached = fix_path(cached)
cached = cached.replace(cpython_tag,'*')
+ if "_sysconfigdata" in cached:
+ cached = cached.replace(sysconfig._get_sysconfigdata_name(), "_sysconfigdata*")
print (cached)
if debug==True:
diff --git a/meta/recipes-devtools/python/python3/python3-manifest.json b/meta/recipes-devtools/python/python3/python3-manifest.json
index 251271cb84..69aecb7004 100644
--- a/meta/recipes-devtools/python/python3/python3-manifest.json
+++ b/meta/recipes-devtools/python/python3/python3-manifest.json
@@ -285,6 +285,7 @@
"${libdir}/python${PYTHON_MAJMIN}/operator.py",
"${libdir}/python${PYTHON_MAJMIN}/optparse.py",
"${libdir}/python${PYTHON_MAJMIN}/os.py",
+ "${libdir}/python${PYTHON_MAJMIN}/pathlib.py",
"${libdir}/python${PYTHON_MAJMIN}/pkgutil.py",
"${libdir}/python${PYTHON_MAJMIN}/platform.py",
"${libdir}/python${PYTHON_MAJMIN}/posixpath.py",
@@ -312,6 +313,8 @@
"${libdir}/python${PYTHON_MAJMIN}/tokenize.py",
"${libdir}/python${PYTHON_MAJMIN}/traceback.py",
"${libdir}/python${PYTHON_MAJMIN}/types.py",
+ "${libdir}/python${PYTHON_MAJMIN}/urllib",
+ "${libdir}/python${PYTHON_MAJMIN}/urllib/parse.py",
"${libdir}/python${PYTHON_MAJMIN}/warnings.py",
"${libdir}/python${PYTHON_MAJMIN}/weakref.py",
"${prefix}/lib/python${PYTHON_MAJMIN}/config*/*[!.a]"
@@ -323,7 +326,7 @@
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/_compression.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/_markupbase.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/_sitebuiltins.*.pyc",
- "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_sysconfigdata.*.pyc",
+ "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_sysconfigdata*.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/_weakrefset.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/abc.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/argparse.*.pyc",
@@ -358,6 +361,7 @@
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/operator.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/optparse.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/os.*.pyc",
+ "${libdir}/python${PYTHON_MAJMIN}/__pycache__/pathlib.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/pkgutil.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/platform.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/posixpath.*.pyc",
@@ -395,7 +399,9 @@
"${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__",
"${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__/abc.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__/machinery.*.pyc",
- "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__/util.*.pyc"
+ "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__/util.*.pyc",
+ "${libdir}/python${PYTHON_MAJMIN}/urllib/__pycache__",
+ "${libdir}/python${PYTHON_MAJMIN}/urllib/__pycache__/parse.*.pyc"
]
},
"crypt": {
@@ -425,7 +431,10 @@
"ctypes": {
"summary": "Python C types support",
"rdepends": [
- "core"
+ "core",
+ "crypt",
+ "io",
+ "math"
],
"files": [
"${libdir}/python${PYTHON_MAJMIN}/ctypes",
@@ -535,7 +544,10 @@
"distutils": {
"summary": "Python Distribution Utilities",
"rdepends": [
- "core"
+ "compression",
+ "core",
+ "email",
+ "stringold"
],
"files": [
"${libdir}/python${PYTHON_MAJMIN}/distutils"
@@ -546,7 +558,6 @@
"summary": "Python framework for running examples in docstrings",
"rdepends": [
"asyncio",
- "compression",
"core",
"debugger",
"difflib",
@@ -575,7 +586,9 @@
"datetime",
"io",
"math",
- "netclient"
+ "mime",
+ "netclient",
+ "stringold"
],
"files": [
"${libdir}/python${PYTHON_MAJMIN}/email",
@@ -646,7 +659,6 @@
"io": {
"summary": "Python low-level I/O",
"rdepends": [
- "compression",
"core",
"crypt",
"math",
@@ -688,7 +700,11 @@
"summary": "Python logging support",
"rdepends": [
"core",
- "stringold"
+ "io",
+ "netserver",
+ "pickle",
+ "stringold",
+ "threading"
],
"files": [
"${libdir}/python${PYTHON_MAJMIN}/logging"
@@ -822,11 +838,18 @@
"summary": "Python multiprocessing support",
"rdepends": [
"core",
+ "crypt",
+ "ctypes",
"io",
- "pickle"
+ "math",
+ "mmap",
+ "netclient",
+ "pickle",
+ "threading"
],
"files": [
"${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_multiprocessing.*.so",
+ "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_posixshmem.*.so",
"${libdir}/python${PYTHON_MAJMIN}/multiprocessing"
],
"cached": []
@@ -853,10 +876,9 @@
"${libdir}/python${PYTHON_MAJMIN}/mimetypes.py",
"${libdir}/python${PYTHON_MAJMIN}/nntplib.py",
"${libdir}/python${PYTHON_MAJMIN}/poplib.py",
+ "${libdir}/python${PYTHON_MAJMIN}/secrets.py",
"${libdir}/python${PYTHON_MAJMIN}/smtplib.py",
"${libdir}/python${PYTHON_MAJMIN}/telnetlib.py",
- "${libdir}/python${PYTHON_MAJMIN}/urllib",
- "${libdir}/python${PYTHON_MAJMIN}/urllib/__pycache__",
"${libdir}/python${PYTHON_MAJMIN}/uuid.py"
],
"cached": [
@@ -866,6 +888,7 @@
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/mimetypes.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/nntplib.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/poplib.*.pyc",
+ "${libdir}/python${PYTHON_MAJMIN}/__pycache__/secrets.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/smtplib.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/telnetlib.*.pyc",
"${libdir}/python${PYTHON_MAJMIN}/__pycache__/uuid.*.pyc"
@@ -874,7 +897,6 @@
"netserver": {
"summary": "Python Internet Protocol servers",
"rdepends": [
- "compression",
"core",
"crypt",
"datetime",
@@ -990,8 +1012,7 @@
"pydoc": {
"summary": "Python interactive help support",
"rdepends": [
- "core",
- "netclient"
+ "core"
],
"files": [
"${bindir}/pydoc*",
@@ -1015,7 +1036,6 @@
"shell": {
"summary": "Python shell-like functionality",
"rdepends": [
- "compression",
"core",
"stringold"
],
@@ -1148,7 +1168,6 @@
"summary": "Python unit testing framework",
"rdepends": [
"asyncio",
- "compression",
"core",
"difflib",
"io",
@@ -1183,7 +1202,6 @@
"venv": {
"summary": "Provides support for creating lightweight virtual environments with their own site directories, optionally isolated from system site directories.",
"rdepends": [
- "compression",
"core",
"logging",
"stringold"
@@ -1209,7 +1227,21 @@
"xmlrpc": {
"summary": "Python XML-RPC support",
"rdepends": [
+ "compression",
"core",
+ "crypt",
+ "datetime",
+ "email",
+ "fcntl",
+ "html",
+ "io",
+ "math",
+ "mime",
+ "netclient",
+ "netserver",
+ "numbers",
+ "pydoc",
+ "stringold",
"xml"
],
"files": [
diff --git a/meta/recipes-devtools/python/python3_3.8.1.bb b/meta/recipes-devtools/python/python3_3.8.5.bb
index 77968528c7..2a3c52a116 100644
--- a/meta/recipes-devtools/python/python3_3.8.1.bb
+++ b/meta/recipes-devtools/python/python3_3.8.5.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.python.org"
LICENSE = "PSFv2"
SECTION = "devel/python"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e466242989bd33c1bd2b6a526a742498"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=203a6dbc802ee896020a47161e759642"
SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \
file://run-ptest \
@@ -37,13 +37,15 @@ SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \
SRC_URI_append_class-native = " \
file://0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch \
file://12-distutils-prefix-is-inside-staging-area.patch \
+ file://0001-Don-t-search-system-for-headers-libraries.patch \
"
-SRC_URI[md5sum] = "b3fb85fd479c0bf950c626ef80cacb57"
-SRC_URI[sha256sum] = "75894117f6db7051c1b34f37410168844bbb357c139a8a10a352e9bf8be594e8"
+SRC_URI[md5sum] = "35b5a3d0254c1c59be9736373d429db7"
+SRC_URI[sha256sum] = "e3003ed57db17e617acb382b0cade29a248c6026b1bd8aad1f976e9af66a83b0"
# exclude pre-releases for both python 2.x and 3.x
UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar"
+UPSTREAM_CHECK_URI = "https://www.python.org/downloads/source/"
CVE_PRODUCT = "python"
@@ -81,16 +83,16 @@ CACHED_CONFIGUREVARS = " \
ac_cv_file__dev_ptc=no \
ac_cv_working_tzset=yes \
"
-python() {
+
+def possibly_include_pgo(d):
# PGO currently causes builds to not be reproducible, so disable it for
# now. See YOCTO #13407
if bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', True, False, d) and d.getVar('BUILD_REPRODUCIBLE_BINARIES') != '1':
- d.setVar('PACKAGECONFIG_PGO', 'pgo')
- else:
- d.setVar('PACKAGECONFIG_PGO', '')
-}
+ return 'pgo'
+
+ return ''
-PACKAGECONFIG_class-target ??= "readline ${PACKAGECONFIG_PGO} gdbm"
+PACKAGECONFIG_class-target ??= "readline ${@possibly_include_pgo(d)} gdbm"
PACKAGECONFIG_class-native ??= "readline gdbm"
PACKAGECONFIG_class-nativesdk ??= "readline gdbm"
PACKAGECONFIG[readline] = ",,readline"
@@ -309,8 +311,8 @@ do_create_manifest[depends] += "${PN}:do_patch"
# manual dependency additions
RRECOMMENDS_${PN}-core_append_class-nativesdk = " nativesdk-python3-modules"
-RRECOMMENDS_${PN}-crypt_append_class-target = " openssl ca-certificates"
-RRECOMMENDS_${PN}-crypt_append_class-nativesdk = " openssl ca-certificates"
+RRECOMMENDS_${PN}-crypt_append_class-target = " ${MLPREFIX}openssl ${MLPREFIX}ca-certificates"
+RRECOMMENDS_${PN}-crypt_append_class-nativesdk = " ${MLPREFIX}openssl ${MLPREFIX}ca-certificates"
# For historical reasons PN is empty and provided by python3-modules
FILES_${PN} = ""
@@ -320,7 +322,7 @@ FILES_${PN}-pydoc += "${bindir}/pydoc${PYTHON_MAJMIN} ${bindir}/pydoc3"
FILES_${PN}-idle += "${bindir}/idle3 ${bindir}/idle${PYTHON_MAJMIN}"
# provide python-pyvenv from python3-venv
-RPROVIDES_${PN}-venv += "python3-pyvenv"
+RPROVIDES_${PN}-venv += "${MLPREFIX}python3-pyvenv"
# package libpython3
PACKAGES =+ "libpython3 libpython3-staticdev"
@@ -330,9 +332,17 @@ INSANE_SKIP_${PN}-dev += "dev-elf"
# catch all the rest (unsorted)
PACKAGES += "${PN}-misc"
-RDEPENDS_${PN}-misc += "python3-core python3-email python3-codecs python3-pydoc python3-pickle python3-audio"
-RDEPENDS_${PN}-modules_append_class-target = " python3-misc"
-RDEPENDS_${PN}-modules_append_class-nativesdk = " python3-misc"
+RDEPENDS_${PN}-misc += "\
+ ${PN}-core \
+ ${PN}-email \
+ ${PN}-codecs \
+ ${PN}-pydoc \
+ ${PN}-pickle \
+ ${PN}-audio \
+ ${PN}-numbers \
+"
+RDEPENDS_${PN}-modules_append_class-target = " ${MLPREFIX}python3-misc"
+RDEPENDS_${PN}-modules_append_class-nativesdk = " ${MLPREFIX}python3-misc"
FILES_${PN}-misc = "${libdir}/python${PYTHON_MAJMIN} ${libdir}/python${PYTHON_MAJMIN}/lib-dynload"
# catch manpage
@@ -341,10 +351,12 @@ FILES_${PN}-man = "${datadir}/man"
# See https://bugs.python.org/issue18748 and https://bugs.python.org/issue37395
RDEPENDS_libpython3_append_libc-glibc = " libgcc"
+RDEPENDS_${PN}-ctypes_append_libc-glibc = " ${MLPREFIX}ldconfig"
RDEPENDS_${PN}-ptest = "${PN}-modules ${PN}-tests unzip bzip2 libgcc tzdata-europe coreutils sed"
RDEPENDS_${PN}-ptest_append_libc-glibc = " locale-base-tr-tr.iso-8859-9"
RDEPENDS_${PN}-tkinter += "${@bb.utils.contains('PACKAGECONFIG', 'tk', 'tk tk-lib', '', d)}"
+RDEPENDS_${PN}-idle += "${@bb.utils.contains('PACKAGECONFIG', 'tk', '${PN}-tkinter tcl', '', d)}"
RDEPENDS_${PN}-dev = ""
-RDEPENDS_${PN}-tests_append_class-target = " bash"
-RDEPENDS_${PN}-tests_append_class-nativesdk = " bash"
+RDEPENDS_${PN}-tests_append_class-target = " ${MLPREFIX}bash"
+RDEPENDS_${PN}-tests_append_class-nativesdk = " ${MLPREFIX}bash"
diff --git a/meta/recipes-devtools/qemu/qemu-native.inc b/meta/recipes-devtools/qemu/qemu-native.inc
index 28cfd2cca3..aa5c9b9a72 100644
--- a/meta/recipes-devtools/qemu/qemu-native.inc
+++ b/meta/recipes-devtools/qemu/qemu-native.inc
@@ -2,11 +2,6 @@ inherit native
require qemu.inc
-SRC_URI_append = " \
- file://0012-fix-libcap-header-issue-on-some-distro.patch \
- file://0013-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch \
- "
-
EXTRA_OEMAKE_append = " LD='${LD}' AR='${AR}' OBJCOPY='${OBJCOPY}' LDFLAGS='${LDFLAGS}'"
LDFLAGS_append = " -fuse-ld=bfd"
diff --git a/meta/recipes-devtools/qemu/qemu-native_4.2.0.bb b/meta/recipes-devtools/qemu/qemu-native_5.1.0.bb
index c8acff8e19..c8acff8e19 100644
--- a/meta/recipes-devtools/qemu/qemu-native_4.2.0.bb
+++ b/meta/recipes-devtools/qemu/qemu-native_5.1.0.bb
diff --git a/meta/recipes-devtools/qemu/qemu-system-native_4.2.0.bb b/meta/recipes-devtools/qemu/qemu-system-native_5.1.0.bb
index d83ee59375..222b55cbc6 100644
--- a/meta/recipes-devtools/qemu/qemu-system-native_4.2.0.bb
+++ b/meta/recipes-devtools/qemu/qemu-system-native_5.1.0.bb
@@ -9,7 +9,9 @@ DEPENDS = "glib-2.0-native zlib-native pixman-native qemu-native bison-native"
EXTRA_OECONF_append = " --target-list=${@get_qemu_system_target_list(d)}"
-PACKAGECONFIG ??= "fdt alsa kvm"
+PACKAGECONFIG ??= "fdt alsa kvm \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer glx', '', d)} \
+"
# Handle distros such as CentOS 5 32-bit that do not have kvm support
PACKAGECONFIG_remove = "${@'kvm' if not os.path.exists('/usr/include/linux/kvm.h') else ''}"
diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
index a557e74e97..84f600cec0 100644
--- a/meta/recipes-devtools/qemu/qemu.inc
+++ b/meta/recipes-devtools/qemu/qemu.inc
@@ -27,17 +27,23 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \
file://0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch \
file://0009-Fix-webkitgtk-builds.patch \
file://0010-configure-Add-pkg-config-handling-for-libgcrypt.patch \
- file://0011-hw-i386-pc-fix-regression-in-parsing-vga-cmdline-par.patch \
- file://CVE-2019-15890.patch \
+ file://0001-Add-enable-disable-udev.patch \
+ file://0001-qemu-Do-not-include-file-if-not-exists.patch \
+ file://find_datadir.patch \
+ file://usb-fix-setup_len-init.patch \
+ file://0001-target-mips-Increase-number-of-TLB-entries-on-the-34.patch \
"
UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
-SRC_URI[md5sum] = "278eeb294e4b497e79af7a57e660cb9a"
-SRC_URI[sha256sum] = "d3481d4108ce211a053ef15be69af1bdd9dde1510fda80d92be0f6c3e98768f0"
+SRC_URI[sha256sum] = "c9174eb5933d9eb5e61f541cd6d1184cd3118dfe4c5c4955bc1bdc4d390fa4e5"
COMPATIBLE_HOST_mipsarchn32 = "null"
COMPATIBLE_HOST_mipsarchn64 = "null"
+# Per https://lists.nongnu.org/archive/html/qemu-devel/2020-09/msg03873.html
+# upstream states qemu doesn't work without optimization
+DEBUG_BUILD = "0"
+
do_install_append() {
# Prevent QA warnings about installed ${localstatedir}/run
if [ -d ${D}${localstatedir}/run ]; then rmdir ${D}${localstatedir}/run; fi
@@ -55,6 +61,9 @@ do_install_ptest() {
# Don't check the file genreated by configure
sed -i -e '/wildcard config-host.mak/d' \
-e '$ {/endif/d}' ${D}${PTEST_PATH}/tests/Makefile.include
+ sed -i -e 's,${HOSTTOOLS_DIR}/python3,${bindir}/python3,' \
+ ${D}/${PTEST_PATH}/tests/qemu-iotests/common.env
+ sed -i -e "1s,#!/usr/bin/bash,#!${base_bindir}/bash," ${D}${PTEST_PATH}/tests/data/acpi/disassemle-aml.sh
}
# QEMU_TARGETS is overridable variable
@@ -75,6 +84,9 @@ EXTRA_OECONF = " \
--disable-strip \
--disable-werror \
--extra-cflags='${CFLAGS}' \
+ --extra-ldflags='${LDFLAGS}' \
+ --with-git=/bin/false \
+ --disable-git-update \
${PACKAGECONFIG_CONFARGS} \
"
@@ -132,10 +144,10 @@ PACKAGECONFIG_remove_darwin = "kvm virglrenderer glx gtk+"
PACKAGECONFIG_remove_mingw32 = "kvm virglrenderer glx gtk+"
PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,libsdl2"
-PACKAGECONFIG[virtfs] = "--enable-virtfs --enable-attr,--disable-virtfs,libcap attr,"
+PACKAGECONFIG[virtfs] = "--enable-virtfs --enable-attr --enable-cap-ng,--disable-virtfs,libcap-ng attr,"
PACKAGECONFIG[aio] = "--enable-linux-aio,--disable-linux-aio,libaio,"
PACKAGECONFIG[xfs] = "--enable-xfsctl,--disable-xfsctl,xfsprogs,"
-PACKAGECONFIG[xen] = "--enable-xen,--disable-xen,xen,xen-libxenstore xen-libxenctrl xen-libxenguest"
+PACKAGECONFIG[xen] = "--enable-xen,--disable-xen,xen-tools,xen-tools-libxenstore xen-tools-libxenctrl xen-tools-libxenguest"
PACKAGECONFIG[vnc-sasl] = "--enable-vnc --enable-vnc-sasl,--disable-vnc-sasl,cyrus-sasl,"
PACKAGECONFIG[vnc-jpeg] = "--enable-vnc --enable-vnc-jpeg,--disable-vnc-jpeg,jpeg,"
PACKAGECONFIG[vnc-png] = "--enable-vnc --enable-vnc-png,--disable-vnc-png,libpng,"
@@ -151,12 +163,11 @@ PACKAGECONFIG[nettle] = "--enable-nettle,--disable-nettle,nettle"
PACKAGECONFIG[libusb] = "--enable-libusb,--disable-libusb,libusb1"
PACKAGECONFIG[fdt] = "--enable-fdt,--disable-fdt,dtc"
PACKAGECONFIG[alsa] = "--audio-drv-list='oss alsa',,alsa-lib"
-PACKAGECONFIG[glx] = "--enable-opengl,--disable-opengl,mesa"
+PACKAGECONFIG[glx] = "--enable-opengl,--disable-opengl,virtual/libgl"
PACKAGECONFIG[lzo] = "--enable-lzo,--disable-lzo,lzo"
PACKAGECONFIG[numa] = "--enable-numa,--disable-numa,numactl"
PACKAGECONFIG[gnutls] = "--enable-gnutls,--disable-gnutls,gnutls"
PACKAGECONFIG[bzip2] = "--enable-bzip2,--disable-bzip2,bzip2"
-PACKAGECONFIG[bluez] = "--enable-bluez,--disable-bluez,bluez5"
PACKAGECONFIG[libiscsi] = "--enable-libiscsi,--disable-libiscsi"
PACKAGECONFIG[kvm] = "--enable-kvm,--disable-kvm"
PACKAGECONFIG[virglrenderer] = "--enable-virglrenderer,--disable-virglrenderer,virglrenderer"
@@ -165,7 +176,15 @@ PACKAGECONFIG[spice] = "--enable-spice,--disable-spice,spice"
# usbredir will be in meta-networking layer
PACKAGECONFIG[usb-redir] = "--enable-usb-redir,--disable-usb-redir,usbredir"
PACKAGECONFIG[snappy] = "--enable-snappy,--disable-snappy,snappy"
-PACKAGECONFIG[glusterfs] = "--enable-glusterfs,--disable-glusterfs"
+PACKAGECONFIG[glusterfs] = "--enable-glusterfs,--disable-glusterfs,glusterfs"
+PACKAGECONFIG[xkbcommon] = "--enable-xkbcommon,--disable-xkbcommon,libxkbcommon"
+PACKAGECONFIG[libudev] = "--enable-libudev,--disable-libudev,eudev"
+PACKAGECONFIG[libxml2] = "--enable-libxml2,--disable-libxml2,libxml2"
+PACKAGECONFIG[attr] = "--enable-attr,--disable-attr,attr,"
+PACKAGECONFIG[rbd] = "--enable-rbd,--disable-rbd,ceph,ceph"
+PACKAGECONFIG[vhost] = "--enable-vhost-net,--disable-vhost-net,,"
+PACKAGECONFIG[ust] = "--enable-trace-backend=ust,--enable-trace-backend=nop,lttng-ust,"
+PACKAGECONFIG[pie] = "--enable-pie,--disable-pie,,"
INSANE_SKIP_${PN} = "arch"
diff --git a/meta/recipes-devtools/qemu/qemu/0001-Add-enable-disable-udev.patch b/meta/recipes-devtools/qemu/qemu/0001-Add-enable-disable-udev.patch
new file mode 100644
index 0000000000..1304ee3bfd
--- /dev/null
+++ b/meta/recipes-devtools/qemu/qemu/0001-Add-enable-disable-udev.patch
@@ -0,0 +1,29 @@
+From b921e5204030845dc7c9d16d5f66d965e8d05367 Mon Sep 17 00:00:00 2001
+From: Jeremy Puhlman <jpuhlman@mvista.com>
+Date: Thu, 19 Mar 2020 11:54:26 -0700
+Subject: [PATCH] Add enable/disable libudev
+
+Upstream-Status: Pending
+Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
+
+[update patch context]
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ configure | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+Index: qemu-5.1.0/configure
+===================================================================
+--- qemu-5.1.0.orig/configure
++++ qemu-5.1.0/configure
+@@ -1640,6 +1640,10 @@ for opt do
+ ;;
+ --disable-libdaxctl) libdaxctl=no
+ ;;
++ --enable-libudev) libudev="yes"
++ ;;
++ --disable-libudev) libudev="no"
++ ;;
+ *)
+ echo "ERROR: unknown option $opt"
+ echo "Try '$0 --help' for more information"
diff --git a/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch b/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch
index 66ff996508..46c9da08a5 100644
--- a/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch
+++ b/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch
@@ -1,4 +1,4 @@
-From 526cb7e26f6dd96c9ee2ffa05ce0a358d3bfbfb3 Mon Sep 17 00:00:00 2001
+From 883feb43129dc39b491e492c7ccfe89aefe53c44 Mon Sep 17 00:00:00 2001
From: Richard Purdie <richard.purdie@linuxfoundation.org>
Date: Thu, 27 Nov 2014 14:04:29 +0000
Subject: [PATCH] qemu: Add missing wacom HID descriptor
@@ -14,15 +14,17 @@ Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Upstream-Status: Submitted
2014/11/27
+[update patch context]
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
---
hw/usb/dev-wacom.c | 94 +++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 93 insertions(+), 1 deletion(-)
-diff --git a/hw/usb/dev-wacom.c b/hw/usb/dev-wacom.c
-index 8ed57b3b..1502928b 100644
---- a/hw/usb/dev-wacom.c
-+++ b/hw/usb/dev-wacom.c
-@@ -74,6 +74,89 @@ static const USBDescStrings desc_strings = {
+Index: qemu-5.1.0/hw/usb/dev-wacom.c
+===================================================================
+--- qemu-5.1.0.orig/hw/usb/dev-wacom.c
++++ qemu-5.1.0/hw/usb/dev-wacom.c
+@@ -74,6 +74,89 @@ static const USBDescStrings desc_strings
[STR_SERIALNUMBER] = "1",
};
@@ -112,7 +114,7 @@ index 8ed57b3b..1502928b 100644
static const USBDescIface desc_iface_wacom = {
.bInterfaceNumber = 0,
.bNumEndpoints = 1,
-@@ -91,7 +174,7 @@ static const USBDescIface desc_iface_wacom = {
+@@ -91,7 +174,7 @@ static const USBDescIface desc_iface_wac
0x00, /* u8 country_code */
0x01, /* u8 num_descriptors */
0x22, /* u8 type: Report */
@@ -121,7 +123,7 @@ index 8ed57b3b..1502928b 100644
},
},
},
-@@ -271,6 +354,15 @@ static void usb_wacom_handle_control(USBDevice *dev, USBPacket *p,
+@@ -271,6 +354,15 @@ static void usb_wacom_handle_control(USB
}
switch (request) {
diff --git a/meta/recipes-devtools/qemu/qemu/0001-qemu-Do-not-include-file-if-not-exists.patch b/meta/recipes-devtools/qemu/qemu/0001-qemu-Do-not-include-file-if-not-exists.patch
new file mode 100644
index 0000000000..d6c0f9ebe9
--- /dev/null
+++ b/meta/recipes-devtools/qemu/qemu/0001-qemu-Do-not-include-file-if-not-exists.patch
@@ -0,0 +1,31 @@
+From 34247f83095f8cdcdc1f9d7f0c6ffbd46b25d979 Mon Sep 17 00:00:00 2001
+From: Oleksiy Obitotskyy <oobitots@cisco.com>
+Date: Wed, 25 Mar 2020 21:21:35 +0200
+Subject: [PATCH] qemu: Do not include file if not exists
+
+Script configure checks for if_alg.h and check failed but
+if_alg.h still included.
+
+Upstream-Status: Submitted [https://lists.gnu.org/archive/html/qemu-devel/2020-03/msg07188.html]
+Signed-off-by: Oleksiy Obitotskyy <oobitots@cisco.com>
+
+[update patch context]
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ linux-user/syscall.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+Index: qemu-5.1.0/linux-user/syscall.c
+===================================================================
+--- qemu-5.1.0.orig/linux-user/syscall.c
++++ qemu-5.1.0/linux-user/syscall.c
+@@ -109,7 +109,9 @@
+ #include <linux/blkpg.h>
+ #include <netpacket/packet.h>
+ #include <linux/netlink.h>
++#if defined(CONFIG_AF_ALG)
+ #include <linux/if_alg.h>
++#endif
+ #include <linux/rtc.h>
+ #include <sound/asound.h>
+ #ifdef HAVE_DRM_H
diff --git a/meta/recipes-devtools/qemu/qemu/0001-target-mips-Increase-number-of-TLB-entries-on-the-34.patch b/meta/recipes-devtools/qemu/qemu/0001-target-mips-Increase-number-of-TLB-entries-on-the-34.patch
new file mode 100644
index 0000000000..5227b7cbd2
--- /dev/null
+++ b/meta/recipes-devtools/qemu/qemu/0001-target-mips-Increase-number-of-TLB-entries-on-the-34.patch
@@ -0,0 +1,59 @@
+From 68fa519a6cb455005317bd61f95214b58b2f1e69 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <f4bug@amsat.org>
+Date: Fri, 16 Oct 2020 15:20:37 +0200
+Subject: [PATCH] target/mips: Increase number of TLB entries on the 34Kf core
+ (16 -> 64)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Per "MIPS32 34K Processor Core Family Software User's Manual,
+Revision 01.13" page 8 in "Joint TLB (JTLB)" section:
+
+ "The JTLB is a fully associative TLB cache containing 16, 32,
+ or 64-dual-entries mapping up to 128 virtual pages to their
+ corresponding physical addresses."
+
+There is no particular reason to restrict the 34Kf core model to
+16 TLB entries, so raise its config to 64.
+
+This is helpful for other projects, in particular the Yocto Project:
+
+ Yocto Project uses qemu-system-mips 34Kf cpu model, to run 32bit
+ MIPS CI loop. It was observed that in this case CI test execution
+ time was almost twice longer than 64bit MIPS variant that runs
+ under MIPS64R2-generic model. It was investigated and concluded
+ that the difference in number of TLBs 16 in 34Kf case vs 64 in
+ MIPS64R2-generic is responsible for most of CI real time execution
+ difference. Because with 16 TLBs linux user-land trashes TLB more
+ and it needs to execute more instructions in TLB refill handler
+ calls, as result it runs much longer.
+
+(https://lists.gnu.org/archive/html/qemu-devel/2020-10/msg03428.html)
+
+Buglink: https://bugzilla.yoctoproject.org/show_bug.cgi?id=13992
+Reported-by: Victor Kamensky <kamensky@cisco.com>
+Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
+Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
+Message-Id: <20201016133317.553068-1-f4bug@amsat.org>
+
+Upstream-Status: Backport [https://github.com/qemu/qemu/commit/68fa519a6cb455005317bd61f95214b58b2f1e69]
+Signed-off-by: Victor Kamensky <kamensky@cisco.com>
+
+---
+ target/mips/translate_init.c.inc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: qemu-5.1.0/target/mips/translate_init.inc.c
+===================================================================
+--- qemu-5.1.0.orig/target/mips/translate_init.inc.c
++++ qemu-5.1.0/target/mips/translate_init.inc.c
+@@ -254,7 +254,7 @@ const mips_def_t mips_defs[] =
+ .CP0_PRid = 0x00019500,
+ .CP0_Config0 = MIPS_CONFIG0 | (0x1 << CP0C0_AR) |
+ (MMU_TYPE_R4000 << CP0C0_MT),
+- .CP0_Config1 = MIPS_CONFIG1 | (1 << CP0C1_FP) | (15 << CP0C1_MMU) |
++ .CP0_Config1 = MIPS_CONFIG1 | (1 << CP0C1_FP) | (63 << CP0C1_MMU) |
+ (0 << CP0C1_IS) | (3 << CP0C1_IL) | (1 << CP0C1_IA) |
+ (0 << CP0C1_DS) | (3 << CP0C1_DL) | (1 << CP0C1_DA) |
+ (1 << CP0C1_CA),
diff --git a/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch b/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch
index 7f7da51006..f379948f14 100644
--- a/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch
+++ b/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch
@@ -1,4 +1,4 @@
-From 8ee6281516bd9210e75e91d705da8916bab3bf51 Mon Sep 17 00:00:00 2001
+From 5da6cef7761157a003e7ebde74fb3cf90ab396d9 Mon Sep 17 00:00:00 2001
From: Juro Bystricky <juro.bystricky@intel.com>
Date: Thu, 31 Aug 2017 11:06:56 -0700
Subject: [PATCH] Add subpackage -ptest which runs all unit test cases for
@@ -10,17 +10,19 @@ Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
+[update patch context]
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
---
tests/Makefile.include | 8 ++++++++
1 file changed, 8 insertions(+)
-diff --git a/tests/Makefile.include b/tests/Makefile.include
-index 8566f5f1..52d0320b 100644
---- a/tests/Makefile.include
-+++ b/tests/Makefile.include
-@@ -1210,4 +1210,12 @@ all: $(QEMU_IOTESTS_HELPERS-y)
- -include $(wildcard tests/*.d)
- -include $(wildcard tests/libqos/*.d)
+Index: qemu-5.1.0/tests/Makefile.include
+===================================================================
+--- qemu-5.1.0.orig/tests/Makefile.include
++++ qemu-5.1.0/tests/Makefile.include
+@@ -982,4 +982,12 @@ all: $(QEMU_IOTESTS_HELPERS-y)
+ -include $(wildcard tests/qtest/*.d)
+ -include $(wildcard tests/qtest/libqos/*.d)
+buildtest-TESTS: $(check-unit-y)
+
diff --git a/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch b/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch
index 012d60d8f0..33cef42217 100644
--- a/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch
+++ b/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch
@@ -15,13 +15,13 @@ Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Roy Li <rongqing.li@windriver.com>
---
- hw/mips/mips_malta.c | 2 +-
+ hw/mips/malta.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
-index 92e9ca5b..3a7f3954 100644
---- a/hw/mips/mips_malta.c
-+++ b/hw/mips/mips_malta.c
+Index: qemu-5.1.0/hw/mips/malta.c
+===================================================================
+--- qemu-5.1.0.orig/hw/mips/malta.c
++++ qemu-5.1.0/hw/mips/malta.c
@@ -59,7 +59,7 @@
#define ENVP_ADDR 0x80002000l
diff --git a/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch b/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch
index bc30397e8c..71f537f9b0 100644
--- a/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch
+++ b/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch
@@ -12,11 +12,11 @@ Signed-off-by: Ross Burton <ross.burton@intel.com>
configure | 9 ---------
1 file changed, 9 deletions(-)
-diff --git a/configure b/configure
-index 6099be1d..a766017b 100755
---- a/configure
-+++ b/configure
-@@ -5390,15 +5390,6 @@ fi
+Index: qemu-5.1.0/configure
+===================================================================
+--- qemu-5.1.0.orig/configure
++++ qemu-5.1.0/configure
+@@ -5751,15 +5751,6 @@ fi
# check if we have valgrind/valgrind.h
valgrind_h=no
diff --git a/meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch b/meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch
index ec303371b0..02ebbee1a0 100644
--- a/meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch
+++ b/meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch
@@ -1,22 +1,24 @@
-From 6cdf82af2eba312b9b8da86dda28b98d3d51f4d4 Mon Sep 17 00:00:00 2001
+From 230fe5804099bdca0c9e4cae7280c9fc513cb7f5 Mon Sep 17 00:00:00 2001
From: Stephen Arnold <sarnold@vctlabs.com>
Date: Sun, 12 Jun 2016 18:09:56 -0700
Subject: [PATCH] qemu-native: set ld.bfd, fix cflags, and set some environment
Upstream-Status: Pending
+[update patch context]
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
---
configure | 4 ----
1 file changed, 4 deletions(-)
-diff --git a/configure b/configure
-index a766017b..72f11aca 100755
---- a/configure
-+++ b/configure
-@@ -6085,10 +6085,6 @@ write_c_skeleton
+Index: qemu-5.1.0/configure
+===================================================================
+--- qemu-5.1.0.orig/configure
++++ qemu-5.1.0/configure
+@@ -6515,10 +6515,6 @@ write_c_skeleton
if test "$gcov" = "yes" ; then
- CFLAGS="-fprofile-arcs -ftest-coverage -g $CFLAGS"
- LDFLAGS="-fprofile-arcs -ftest-coverage $LDFLAGS"
+ QEMU_CFLAGS="-fprofile-arcs -ftest-coverage -g $QEMU_CFLAGS"
+ QEMU_LDFLAGS="-fprofile-arcs -ftest-coverage $QEMU_LDFLAGS"
-elif test "$fortify_source" = "yes" ; then
- CFLAGS="-O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $CFLAGS"
-elif test "$debug" = "no"; then
diff --git a/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch b/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch
index 0810ae84c0..98fd5e9133 100644
--- a/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch
+++ b/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch
@@ -51,11 +51,11 @@ Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
qapi/char.json | 5 +++
3 files changed, 109 insertions(+)
-diff --git a/chardev/char-socket.c b/chardev/char-socket.c
-index 185fe38d..54fa4234 100644
---- a/chardev/char-socket.c
-+++ b/chardev/char-socket.c
-@@ -1288,6 +1288,67 @@ static bool qmp_chardev_validate_socket(ChardevSocket *sock,
+Index: qemu-5.1.0/chardev/char-socket.c
+===================================================================
+--- qemu-5.1.0.orig/chardev/char-socket.c
++++ qemu-5.1.0/chardev/char-socket.c
+@@ -1292,6 +1292,67 @@ static bool qmp_chardev_validate_socket(
return true;
}
@@ -123,7 +123,7 @@ index 185fe38d..54fa4234 100644
static void qmp_chardev_open_socket(Chardev *chr,
ChardevBackend *backend,
-@@ -1296,6 +1357,9 @@ static void qmp_chardev_open_socket(Chardev *chr,
+@@ -1300,6 +1361,9 @@ static void qmp_chardev_open_socket(Char
{
SocketChardev *s = SOCKET_CHARDEV(chr);
ChardevSocket *sock = backend->u.socket.data;
@@ -133,7 +133,7 @@ index 185fe38d..54fa4234 100644
bool do_nodelay = sock->has_nodelay ? sock->nodelay : false;
bool is_listen = sock->has_server ? sock->server : true;
bool is_telnet = sock->has_telnet ? sock->telnet : false;
-@@ -1361,6 +1425,14 @@ static void qmp_chardev_open_socket(Chardev *chr,
+@@ -1365,6 +1429,14 @@ static void qmp_chardev_open_socket(Char
update_disconnected_filename(s);
@@ -148,13 +148,15 @@ index 185fe38d..54fa4234 100644
if (s->is_listen) {
if (qmp_chardev_open_socket_server(chr, is_telnet || is_tn3270,
is_waitconnect, errp) < 0) {
-@@ -1380,9 +1452,26 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
+@@ -1384,11 +1456,27 @@ static void qemu_chr_parse_socket(QemuOp
const char *host = qemu_opt_get(opts, "host");
const char *port = qemu_opt_get(opts, "port");
const char *fd = qemu_opt_get(opts, "fd");
+#ifndef _WIN32
+ const char *cmd = qemu_opt_get(opts, "cmd");
+#endif
+ bool tight = qemu_opt_get_bool(opts, "tight", true);
+ bool abstract = qemu_opt_get_bool(opts, "abstract", false);
SocketAddressLegacy *addr;
ChardevSocket *sock;
@@ -171,19 +173,19 @@ index 185fe38d..54fa4234 100644
+ }
+ } else
+#endif
-+
if ((!!path + !!fd + !!host) != 1) {
error_setg(errp,
"Exactly one of 'path', 'fd' or 'host' required");
-@@ -1425,12 +1514,24 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
+@@ -1431,12 +1519,24 @@ static void qemu_chr_parse_socket(QemuOp
sock->has_tls_authz = qemu_opt_get(opts, "tls-authz");
sock->tls_authz = g_strdup(qemu_opt_get(opts, "tls-authz"));
+- addr = g_new0(SocketAddressLegacy, 1);
+#ifndef _WIN32
+ sock->cmd = g_strdup(cmd);
+#endif
+
- addr = g_new0(SocketAddressLegacy, 1);
++ addr = g_new0(SocketAddressLegacy, 1);
+#ifndef _WIN32
+ if (path || cmd) {
+#else
@@ -197,28 +199,28 @@ index 185fe38d..54fa4234 100644
+#else
q_unix->path = g_strdup(path);
+#endif
+ q_unix->tight = tight;
+ q_unix->abstract = abstract;
} else if (host) {
- addr->type = SOCKET_ADDRESS_LEGACY_KIND_INET;
- addr->u.inet.data = g_new(InetSocketAddress, 1);
-diff --git a/chardev/char.c b/chardev/char.c
-index 7b6b2cb1..0c2ca64b 100644
---- a/chardev/char.c
-+++ b/chardev/char.c
-@@ -837,6 +837,9 @@ QemuOptsList qemu_chardev_opts = {
- },{
+Index: qemu-5.1.0/chardev/char.c
+===================================================================
+--- qemu-5.1.0.orig/chardev/char.c
++++ qemu-5.1.0/chardev/char.c
+@@ -826,6 +826,9 @@ QemuOptsList qemu_chardev_opts = {
.name = "path",
.type = QEMU_OPT_STRING,
-+ },{
+ },{
+ .name = "cmd",
+ .type = QEMU_OPT_STRING,
- },{
++ },{
.name = "host",
.type = QEMU_OPT_STRING,
-diff --git a/qapi/char.json b/qapi/char.json
-index a6e81ac7..517962c6 100644
---- a/qapi/char.json
-+++ b/qapi/char.json
-@@ -247,6 +247,10 @@
+ },{
+Index: qemu-5.1.0/qapi/char.json
+===================================================================
+--- qemu-5.1.0.orig/qapi/char.json
++++ qemu-5.1.0/qapi/char.json
+@@ -250,6 +250,10 @@
#
# @addr: socket address to listen on (server=true)
# or connect to (server=false)
@@ -229,7 +231,7 @@ index a6e81ac7..517962c6 100644
# @tls-creds: the ID of the TLS credentials object (since 2.6)
# @tls-authz: the ID of the QAuthZ authorization object against which
# the client's x509 distinguished name will be validated. This
-@@ -272,6 +276,7 @@
+@@ -276,6 +280,7 @@
##
{ 'struct': 'ChardevSocket',
'data': { 'addr': 'SocketAddressLegacy',
diff --git a/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch b/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch
index 89baad9b7f..034ac57821 100644
--- a/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch
+++ b/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch
@@ -29,11 +29,11 @@ Signed-off-by: He Zhe <zhe.he@windriver.com>
hw/intc/apic.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/hw/intc/apic.c b/hw/intc/apic.c
-index 2a74f7b4..4d5da365 100644
---- a/hw/intc/apic.c
-+++ b/hw/intc/apic.c
-@@ -603,7 +603,7 @@ int apic_accept_pic_intr(DeviceState *dev)
+Index: qemu-5.1.0/hw/intc/apic.c
+===================================================================
+--- qemu-5.1.0.orig/hw/intc/apic.c
++++ qemu-5.1.0/hw/intc/apic.c
+@@ -603,7 +603,7 @@ int apic_accept_pic_intr(DeviceState *de
APICCommonState *s = APIC(dev);
uint32_t lvt0;
diff --git a/meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch b/meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch
index 30bb4ddf26..d20f04ee59 100644
--- a/meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch
+++ b/meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch
@@ -18,11 +18,11 @@ Signed-off-by: Alistair Francis <alistair.francis@xilinx.com>
linux-user/main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/linux-user/main.c b/linux-user/main.c
-index 6ff7851e..ebff0485 100644
---- a/linux-user/main.c
-+++ b/linux-user/main.c
-@@ -78,7 +78,7 @@ int have_guest_base;
+Index: qemu-5.1.0/linux-user/main.c
+===================================================================
+--- qemu-5.1.0.orig/linux-user/main.c
++++ qemu-5.1.0/linux-user/main.c
+@@ -92,7 +92,7 @@ static int last_log_mask;
(TARGET_LONG_BITS == 32 || defined(TARGET_ABI32))
/* There are a number of places where we assign reserved_va to a variable
of type abi_ulong and expect it to fit. Avoid the last page. */
diff --git a/meta/recipes-devtools/qemu/qemu/0009-Fix-webkitgtk-builds.patch b/meta/recipes-devtools/qemu/qemu/0009-Fix-webkitgtk-builds.patch
index 7e273eeced..f2a44986b7 100644
--- a/meta/recipes-devtools/qemu/qemu/0009-Fix-webkitgtk-builds.patch
+++ b/meta/recipes-devtools/qemu/qemu/0009-Fix-webkitgtk-builds.patch
@@ -1,4 +1,4 @@
-From 613166007e3b852c99caf2cd34a972e2c8460737 Mon Sep 17 00:00:00 2001
+From 815c97ba0de02da9dace3fcfcbdf9b20e029f0d7 Mon Sep 17 00:00:00 2001
From: Martin Jansa <martin.jansa@lge.com>
Date: Fri, 1 Jun 2018 08:41:07 +0000
Subject: [PATCH] Fix webkitgtk builds
@@ -19,6 +19,8 @@ This reverts commit ebf9a3630c911d0cfc9c20f7cafe9ba4f88cf583.
Upstream-Status: Pending
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+[update patch context]
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
---
include/exec/cpu-all.h | 6 +-----
include/exec/cpu_ldst.h | 5 ++++-
@@ -26,29 +28,29 @@ Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
linux-user/syscall.c | 5 +----
4 files changed, 10 insertions(+), 23 deletions(-)
-diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h
-index e96781a4..a369f81a 100644
---- a/include/exec/cpu-all.h
-+++ b/include/exec/cpu-all.h
-@@ -162,12 +162,8 @@ extern unsigned long guest_base;
- extern int have_guest_base;
- extern unsigned long reserved_va;
-
--#if HOST_LONG_BITS <= TARGET_VIRT_ADDR_SPACE_BITS
--#define GUEST_ADDR_MAX (~0ul)
--#else
--#define GUEST_ADDR_MAX (reserved_va ? reserved_va - 1 : \
+Index: qemu-5.1.0/include/exec/cpu-all.h
+===================================================================
+--- qemu-5.1.0.orig/include/exec/cpu-all.h
++++ qemu-5.1.0/include/exec/cpu-all.h
+@@ -176,11 +176,8 @@ extern unsigned long reserved_va;
+ * avoid setting bits at the top of guest addresses that might need
+ * to be used for tags.
+ */
+-#define GUEST_ADDR_MAX_ \
+- ((MIN_CONST(TARGET_VIRT_ADDR_SPACE_BITS, TARGET_ABI_BITS) <= 32) ? \
+- UINT32_MAX : ~0ul)
+-#define GUEST_ADDR_MAX (reserved_va ? reserved_va - 1 : GUEST_ADDR_MAX_)
+-
+#define GUEST_ADDR_MAX (reserved_va ? reserved_va : \
- (1ul << TARGET_VIRT_ADDR_SPACE_BITS) - 1)
--#endif
++ (1ul << TARGET_VIRT_ADDR_SPACE_BITS) - 1)
#else
#include "exec/hwaddr.h"
-diff --git a/include/exec/cpu_ldst.h b/include/exec/cpu_ldst.h
-index fd499f7e..30575f60 100644
---- a/include/exec/cpu_ldst.h
-+++ b/include/exec/cpu_ldst.h
-@@ -65,7 +65,10 @@ typedef uint64_t abi_ptr;
+Index: qemu-5.1.0/include/exec/cpu_ldst.h
+===================================================================
+--- qemu-5.1.0.orig/include/exec/cpu_ldst.h
++++ qemu-5.1.0/include/exec/cpu_ldst.h
+@@ -75,7 +75,10 @@ typedef uint64_t abi_ptr;
#if HOST_LONG_BITS <= TARGET_VIRT_ADDR_SPACE_BITS
#define guest_addr_valid(x) (1)
#else
@@ -60,11 +62,11 @@ index fd499f7e..30575f60 100644
#endif
#define h2g_valid(x) guest_addr_valid((unsigned long)(x) - guest_base)
-diff --git a/linux-user/mmap.c b/linux-user/mmap.c
-index 46a6e3a7..77354654 100644
---- a/linux-user/mmap.c
-+++ b/linux-user/mmap.c
-@@ -78,7 +78,7 @@ int target_mprotect(abi_ulong start, abi_ulong len, int prot)
+Index: qemu-5.1.0/linux-user/mmap.c
+===================================================================
+--- qemu-5.1.0.orig/linux-user/mmap.c
++++ qemu-5.1.0/linux-user/mmap.c
+@@ -71,7 +71,7 @@ int target_mprotect(abi_ulong start, abi
return -TARGET_EINVAL;
len = TARGET_PAGE_ALIGN(len);
end = start + len;
@@ -73,18 +75,18 @@ index 46a6e3a7..77354654 100644
return -TARGET_ENOMEM;
}
prot &= PROT_READ | PROT_WRITE | PROT_EXEC;
-@@ -495,8 +495,8 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
+@@ -467,8 +467,8 @@ abi_long target_mmap(abi_ulong start, ab
* It can fail only on 64-bit host with 32-bit target.
* On any other target/host host mmap() handles this error correctly.
*/
-- if (!guest_range_valid(start, len)) {
+- if (end < start || !guest_range_valid(start, len)) {
- errno = ENOMEM;
-+ if ((unsigned long)start + len - 1 > (abi_ulong) -1) {
++ if (end < start || ((unsigned long)start + len - 1 > (abi_ulong) -1)) {
+ errno = EINVAL;
goto fail;
}
-@@ -636,10 +636,8 @@ int target_munmap(abi_ulong start, abi_ulong len)
+@@ -604,10 +604,8 @@ int target_munmap(abi_ulong start, abi_u
if (start & ~TARGET_PAGE_MASK)
return -TARGET_EINVAL;
len = TARGET_PAGE_ALIGN(len);
@@ -96,7 +98,7 @@ index 46a6e3a7..77354654 100644
mmap_lock();
end = start + len;
real_start = start & qemu_host_page_mask;
-@@ -694,13 +692,6 @@ abi_long target_mremap(abi_ulong old_addr, abi_ulong old_size,
+@@ -662,13 +660,6 @@ abi_long target_mremap(abi_ulong old_add
int prot;
void *host_addr;
@@ -110,11 +112,11 @@ index 46a6e3a7..77354654 100644
mmap_lock();
if (flags & MREMAP_FIXED) {
-diff --git a/linux-user/syscall.c b/linux-user/syscall.c
-index 171c0cae..fc18f244 100644
---- a/linux-user/syscall.c
-+++ b/linux-user/syscall.c
-@@ -4138,9 +4138,6 @@ static inline abi_ulong do_shmat(CPUArchState *cpu_env,
+Index: qemu-5.1.0/linux-user/syscall.c
+===================================================================
+--- qemu-5.1.0.orig/linux-user/syscall.c
++++ qemu-5.1.0/linux-user/syscall.c
+@@ -4336,9 +4336,6 @@ static inline abi_ulong do_shmat(CPUArch
return -TARGET_EINVAL;
}
}
@@ -124,12 +126,12 @@ index 171c0cae..fc18f244 100644
mmap_lock();
-@@ -6990,7 +6987,7 @@ static int open_self_maps(void *cpu_env, int fd)
- }
- if (h2g_valid(min)) {
- int flags = page_get_flags(h2g(min));
-- max = h2g_valid(max - 1) ? max : (uintptr_t)g2h(GUEST_ADDR_MAX) + 1;
-+ max = h2g_valid(max - 1) ? max : (uintptr_t)g2h(GUEST_ADDR_MAX);
+@@ -7376,7 +7373,7 @@ static int open_self_maps(void *cpu_env,
+ const char *path;
+
+ max = h2g_valid(max - 1) ?
+- max : (uintptr_t) g2h(GUEST_ADDR_MAX) + 1;
++ max : (uintptr_t) g2h(GUEST_ADDR_MAX);
+
if (page_check_range(h2g(min), max - min, flags) == -1) {
continue;
- }
diff --git a/meta/recipes-devtools/qemu/qemu/0010-configure-Add-pkg-config-handling-for-libgcrypt.patch b/meta/recipes-devtools/qemu/qemu/0010-configure-Add-pkg-config-handling-for-libgcrypt.patch
index 34df78b7fe..d7e3fffdd0 100644
--- a/meta/recipes-devtools/qemu/qemu/0010-configure-Add-pkg-config-handling-for-libgcrypt.patch
+++ b/meta/recipes-devtools/qemu/qemu/0010-configure-Add-pkg-config-handling-for-libgcrypt.patch
@@ -14,11 +14,11 @@ Signed-off-by: He Zhe <zhe.he@windriver.com>
configure | 48 ++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 40 insertions(+), 8 deletions(-)
-diff --git a/configure b/configure
-index 72f11aca..cac271ce 100755
---- a/configure
-+++ b/configure
-@@ -2875,6 +2875,30 @@ has_libgcrypt() {
+Index: qemu-5.1.0/configure
+===================================================================
+--- qemu-5.1.0.orig/configure
++++ qemu-5.1.0/configure
+@@ -3084,6 +3084,30 @@ has_libgcrypt() {
return 0
}
@@ -49,7 +49,7 @@ index 72f11aca..cac271ce 100755
if test "$nettle" != "no"; then
pass="no"
-@@ -2915,7 +2939,14 @@ fi
+@@ -3124,7 +3148,14 @@ fi
if test "$gcrypt" != "no"; then
pass="no"
@@ -65,7 +65,7 @@ index 72f11aca..cac271ce 100755
gcrypt_cflags=$(libgcrypt-config --cflags)
gcrypt_libs=$(libgcrypt-config --libs)
# Debian has removed -lgpg-error from libgcrypt-config
-@@ -2925,15 +2956,16 @@ if test "$gcrypt" != "no"; then
+@@ -3134,15 +3165,16 @@ if test "$gcrypt" != "no"; then
then
gcrypt_libs="$gcrypt_libs -lgpg-error"
fi
diff --git a/meta/recipes-devtools/qemu/qemu/0011-hw-i386-pc-fix-regression-in-parsing-vga-cmdline-par.patch b/meta/recipes-devtools/qemu/qemu/0011-hw-i386-pc-fix-regression-in-parsing-vga-cmdline-par.patch
deleted file mode 100644
index 2fe0850a33..0000000000
--- a/meta/recipes-devtools/qemu/qemu/0011-hw-i386-pc-fix-regression-in-parsing-vga-cmdline-par.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From a88c40f02ace88f09b2a85a64831b277b2ebc88c Mon Sep 17 00:00:00 2001
-From: Peter Wu <peter@lekensteyn.nl>
-Date: Sat, 21 Dec 2019 17:21:24 +0100
-Subject: [PATCH] hw/i386/pc: fix regression in parsing vga cmdline parameter
-
-When the 'vga=' parameter is succeeded by another parameter, QEMU 4.2.0
-would refuse to start with a rather cryptic message:
-
- $ qemu-system-x86_64 -kernel /boot/vmlinuz-linux -append 'vga=792 quiet'
- qemu: can't parse 'vga' parameter: Invalid argument
-
-It was not clear whether this applied to the '-vga std' parameter or the
-'-append' one. Fix the parsing regression and clarify the error.
-
-Fixes: 133ef074bd ("hw/i386/pc: replace use of strtol with qemu_strtoui in x86_load_linux()")
-Cc: Sergio Lopez <slp@redhat.com>
-Signed-off-by: Peter Wu <peter@lekensteyn.nl>
-Message-Id: <20191221162124.1159291-1-peter@lekensteyn.nl>
-Cc: qemu-stable@nongnu.org
-Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-Upstream-Status: Backport [https://git.qemu.org/?p=qemu.git;a=commitdiff;h=a88c40f02ace88f09b2a85a64831b277b2ebc88c]
----
- hw/i386/x86.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/hw/i386/x86.c b/hw/i386/x86.c
-index d8bb5c2a96..9b9a4d5837 100644
---- a/hw/i386/x86.c
-+++ b/hw/i386/x86.c
-@@ -612,6 +612,7 @@ void x86_load_linux(X86MachineState *x86ms,
- vmode = strstr(kernel_cmdline, "vga=");
- if (vmode) {
- unsigned int video_mode;
-+ const char *end;
- int ret;
- /* skip "vga=" */
- vmode += 4;
-@@ -622,10 +623,9 @@ void x86_load_linux(X86MachineState *x86ms,
- } else if (!strncmp(vmode, "ask", 3)) {
- video_mode = 0xfffd;
- } else {
-- ret = qemu_strtoui(vmode, NULL, 0, &video_mode);
-- if (ret != 0) {
-- fprintf(stderr, "qemu: can't parse 'vga' parameter: %s\n",
-- strerror(-ret));
-+ ret = qemu_strtoui(vmode, &end, 0, &video_mode);
-+ if (ret != 0 || (*end && *end != ' ')) {
-+ fprintf(stderr, "qemu: invalid 'vga=' kernel parameter.\n");
- exit(1);
- }
- }
---
-2.25.0
-
diff --git a/meta/recipes-devtools/qemu/qemu/0012-fix-libcap-header-issue-on-some-distro.patch b/meta/recipes-devtools/qemu/qemu/0012-fix-libcap-header-issue-on-some-distro.patch
deleted file mode 100644
index 3a7d7bbd33..0000000000
--- a/meta/recipes-devtools/qemu/qemu/0012-fix-libcap-header-issue-on-some-distro.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From 9125afb733d8c96416bb83c5adad39bb8d0803a1 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Tue, 12 Mar 2013 09:54:06 +0800
-Subject: [PATCH] fix libcap header issue on some distro
-
-1, When build qemu-native on SLED 11.2, there is an error:
-...
-| In file included from /usr/include/bits/sigcontext.h:28,
-| from /usr/include/signal.h:339,
-| from /buildarea2/tmp/work/i686-linux/qemu-native/1.4.0-r0/
-qemu-1.4.0/include/qemu-common.h:42,
-| from fsdev/virtfs-proxy-helper.c:23:
-| /usr/include/asm/sigcontext.h:28: error: expected specifier-
-qualifier-list before '__u64'
-| /usr/include/asm/sigcontext.h:191: error: expected specifier-
-qualifier-list before '__u64'
-...
-
-2, The virtfs-proxy-helper.c includes <sys/capability.h> and
-qemu-common.h in sequence. The header include map is:
-(`-->' presents `include')
-...
-"virtfs-proxy-helper.c" --> <sys/capability.h>
-...
-"virtfs-proxy-helper.c" --> "qemu-common.h" --> <signal.h> -->
-<bits/sigcontext.h> --> <asm/sigcontext.h> --> <linux/types.h> -->
-<asm/types.h> --> <asm-generic/types.h> --> <asm-generic/int-ll64.h>
-...
-
-3, The bug is found on SLED 11.2 x86. In libcap header file
-/usr/include/sys/capability.h, it does evil stuff like this:
-...
- 25 /*
- 26 * Make sure we can be included from userland by preventing
- 27 * capability.h from including other kernel headers
- 28 */
- 29 #define _LINUX_TYPES_H
- 30 #define _LINUX_FS_H
- 31 #define __LINUX_COMPILER_H
- 32 #define __user
- 33
- 34 typedef unsigned int __u32;
- 35 typedef __u32 __le32;
-...
-This completely prevents including /usr/include/linux/types.h.
-The above `<asm/sigcontext.h> --> <linux/types.h>' is prevented,
-and '__u64' is defined in <asm-generic/int-ll64.h>.
-
-4, Modify virtfs-proxy-helper.c to include <sys/capability.h>
-last to workaround the issue.
-
-http://www.linuxtv.org/pipermail/vdr/2009-August/021194.html
-http://patchwork.linuxtv.org/patch/12748/
-
-Upstream-Status: Pending
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
----
- fsdev/virtfs-proxy-helper.c | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/fsdev/virtfs-proxy-helper.c b/fsdev/virtfs-proxy-helper.c
-index 6f132c5f..8329950c 100644
---- a/fsdev/virtfs-proxy-helper.c
-+++ b/fsdev/virtfs-proxy-helper.c
-@@ -13,7 +13,6 @@
- #include <sys/resource.h>
- #include <getopt.h>
- #include <syslog.h>
--#include <sys/capability.h>
- #include <sys/fsuid.h>
- #include <sys/vfs.h>
- #include <sys/ioctl.h>
-@@ -27,7 +26,11 @@
- #include "9p-iov-marshal.h"
- #include "hw/9pfs/9p-proxy.h"
- #include "fsdev/9p-iov-marshal.h"
--
-+/*
-+ * Include this one last due to some versions of it being buggy:
-+ * http://www.linuxtv.org/pipermail/vdr/2009-August/021194.html
-+ */
-+#include <sys/capability.h>
- #define PROGNAME "virtfs-proxy-helper"
-
- #ifndef XFS_SUPER_MAGIC
diff --git a/meta/recipes-devtools/qemu/qemu/0013-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch b/meta/recipes-devtools/qemu/qemu/0013-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch
deleted file mode 100644
index e5ebfc1267..0000000000
--- a/meta/recipes-devtools/qemu/qemu/0013-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 0a53e906510cce1f32bc04a11e81ea40f834dac4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com>
-Date: Wed, 12 Aug 2015 15:11:30 -0500
-Subject: [PATCH] cpus.c: Add error messages when qemi_cpu_kick_thread fails.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Add custom_debug.h with function for print backtrace information.
-When pthread_kill fails in qemu_cpu_kick_thread display backtrace and
-current cpu information.
-
-Upstream-Status: Inappropriate
-Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
-
----
- cpus.c | 5 +++++
- custom_debug.h | 24 ++++++++++++++++++++++++
- 2 files changed, 29 insertions(+)
- create mode 100644 custom_debug.h
-
-diff --git a/cpus.c b/cpus.c
-index e83f72b4..e6e2576e 100644
---- a/cpus.c
-+++ b/cpus.c
-@@ -1769,6 +1769,8 @@ static void *qemu_tcg_cpu_thread_fn(void *arg)
- return NULL;
- }
-
-+#include "custom_debug.h"
-+
- static void qemu_cpu_kick_thread(CPUState *cpu)
- {
- #ifndef _WIN32
-@@ -1781,6 +1783,9 @@ static void qemu_cpu_kick_thread(CPUState *cpu)
- err = pthread_kill(cpu->thread->thread, SIG_IPI);
- if (err && err != ESRCH) {
- fprintf(stderr, "qemu:%s: %s", __func__, strerror(err));
-+ fprintf(stderr, "CPU #%d:\n", cpu->cpu_index);
-+ cpu_dump_state(cpu, stderr, 0);
-+ backtrace_print();
- exit(1);
- }
- #else /* _WIN32 */
-diff --git a/custom_debug.h b/custom_debug.h
-new file mode 100644
-index 00000000..f029e455
---- /dev/null
-+++ b/custom_debug.h
-@@ -0,0 +1,24 @@
-+#include <execinfo.h>
-+#include <stdio.h>
-+#define BACKTRACE_MAX 128
-+static void backtrace_print(void)
-+{
-+ int nfuncs = 0;
-+ void *buf[BACKTRACE_MAX];
-+ char **symbols;
-+ int i;
-+
-+ nfuncs = backtrace(buf, BACKTRACE_MAX);
-+
-+ symbols = backtrace_symbols(buf, nfuncs);
-+ if (symbols == NULL) {
-+ fprintf(stderr, "backtrace_print failed to get symbols");
-+ return;
-+ }
-+
-+ fprintf(stderr, "Backtrace ...\n");
-+ for (i = 0; i < nfuncs; i++)
-+ fprintf(stderr, "%s\n", symbols[i]);
-+
-+ free(symbols);
-+}
diff --git a/meta/recipes-devtools/qemu/qemu/CVE-2019-15890.patch b/meta/recipes-devtools/qemu/qemu/CVE-2019-15890.patch
deleted file mode 100644
index 1d89431be6..0000000000
--- a/meta/recipes-devtools/qemu/qemu/CVE-2019-15890.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 4fc0d23e8f6d795c679623d2ed2cbe6a7a17b9c7 Mon Sep 17 00:00:00 2001
-From: Li Zhou <li.zhou@windriver.com>
-Date: Tue, 10 Sep 2019 20:02:15 -0700
-Subject: [PATCH] ip_reass: Fix use after free
-
-Using ip_deq after m_free might read pointers from an allocation reuse.
-
-This would be difficult to exploit, but that is still related with
-CVE-2019-14378 which generates fragmented IP packets that would trigger this
-issue and at least produce a DoS.
-
-Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
-
-Upstream-Status: Backport
-CVE: CVE-2019-15890
-Signed-off-by: Li Zhou <li.zhou@windriver.com>
----
- slirp/src/ip_input.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/slirp/src/ip_input.c b/slirp/src/ip_input.c
-index 8c75d914..c07d7d40 100644
---- a/slirp/src/ip_input.c
-+++ b/slirp/src/ip_input.c
-@@ -292,6 +292,7 @@ static struct ip *ip_reass(Slirp *slirp, struct ip *ip, struct ipq *fp)
- */
- while (q != (struct ipasfrag *)&fp->frag_link &&
- ip->ip_off + ip->ip_len > q->ipf_off) {
-+ struct ipasfrag *prev;
- i = (ip->ip_off + ip->ip_len) - q->ipf_off;
- if (i < q->ipf_len) {
- q->ipf_len -= i;
-@@ -299,9 +300,10 @@ static struct ip *ip_reass(Slirp *slirp, struct ip *ip, struct ipq *fp)
- m_adj(dtom(slirp, q), i);
- break;
- }
-+ prev = q;
- q = q->ipf_next;
-- m_free(dtom(slirp, q->ipf_prev));
-- ip_deq(q->ipf_prev);
-+ ip_deq(prev);
-+ m_free(dtom(slirp, prev));
- }
-
- insert:
---
-2.23.0
-
diff --git a/meta/recipes-devtools/qemu/qemu/find_datadir.patch b/meta/recipes-devtools/qemu/qemu/find_datadir.patch
new file mode 100644
index 0000000000..9a4c11267a
--- /dev/null
+++ b/meta/recipes-devtools/qemu/qemu/find_datadir.patch
@@ -0,0 +1,39 @@
+qemu: search for datadir as in version 4.2
+
+os_find_datadir() was changed after the 4.2 release. We need to check for
+../share/qemu relative to the executable because that is where the runqemu
+configuration assumes it will be.
+
+Upstream-Status: Submitted [qemu-devel@nongnu.org]
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+
+Index: qemu-5.1.0/os-posix.c
+===================================================================
+--- qemu-5.1.0.orig/os-posix.c
++++ qemu-5.1.0/os-posix.c
+@@ -82,8 +82,9 @@ void os_setup_signal_handling(void)
+
+ /*
+ * Find a likely location for support files using the location of the binary.
++ * Typically, this would be "$bindir/../share/qemu".
+ * When running from the build tree this will be "$bindir/../pc-bios".
+- * Otherwise, this is CONFIG_QEMU_DATADIR.
++ * Otherwise, this is CONFIG_QEMU_DATADIR as constructed by configure.
+ *
+ * The caller must use g_free() to free the returned data when it is
+ * no longer required.
+@@ -96,6 +97,12 @@ char *os_find_datadir(void)
+ exec_dir = qemu_get_exec_dir();
+ g_return_val_if_fail(exec_dir != NULL, NULL);
+
++ dir = g_build_filename(exec_dir, "..", "share", "qemu", NULL);
++ if (g_file_test(dir, G_FILE_TEST_IS_DIR)) {
++ return g_steal_pointer(&dir);
++ }
++ g_free(dir); /* no autofree this time */
++
+ dir = g_build_filename(exec_dir, "..", "pc-bios", NULL);
+ if (g_file_test(dir, G_FILE_TEST_IS_DIR)) {
+ return g_steal_pointer(&dir);
diff --git a/meta/recipes-devtools/qemu/qemu/usb-fix-setup_len-init.patch b/meta/recipes-devtools/qemu/qemu/usb-fix-setup_len-init.patch
new file mode 100644
index 0000000000..92801da46f
--- /dev/null
+++ b/meta/recipes-devtools/qemu/qemu/usb-fix-setup_len-init.patch
@@ -0,0 +1,89 @@
+CVE: CVE-2020-14364
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From b946434f2659a182afc17e155be6791ebfb302eb Mon Sep 17 00:00:00 2001
+From: Gerd Hoffmann <kraxel@redhat.com>
+Date: Tue, 25 Aug 2020 07:36:36 +0200
+Subject: [PATCH] usb: fix setup_len init (CVE-2020-14364)
+
+Store calculated setup_len in a local variable, verify it, and only
+write it to the struct (USBDevice->setup_len) in case it passed the
+sanity checks.
+
+This prevents other code (do_token_{in,out} functions specifically)
+from working with invalid USBDevice->setup_len values and overrunning
+the USBDevice->setup_buf[] buffer.
+
+Fixes: CVE-2020-14364
+Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
+Tested-by: Gonglei <arei.gonglei@huawei.com>
+Reviewed-by: Li Qiang <liq3ea@gmail.com>
+Message-id: 20200825053636.29648-1-kraxel@redhat.com
+---
+ hw/usb/core.c | 16 ++++++++++------
+ 1 file changed, 10 insertions(+), 6 deletions(-)
+
+diff --git a/hw/usb/core.c b/hw/usb/core.c
+index 5abd128b6bc..5234dcc73fe 100644
+--- a/hw/usb/core.c
++++ b/hw/usb/core.c
+@@ -129,6 +129,7 @@ void usb_wakeup(USBEndpoint *ep, unsigned int stream)
+ static void do_token_setup(USBDevice *s, USBPacket *p)
+ {
+ int request, value, index;
++ unsigned int setup_len;
+
+ if (p->iov.size != 8) {
+ p->status = USB_RET_STALL;
+@@ -138,14 +139,15 @@ static void do_token_setup(USBDevice *s, USBPacket *p)
+ usb_packet_copy(p, s->setup_buf, p->iov.size);
+ s->setup_index = 0;
+ p->actual_length = 0;
+- s->setup_len = (s->setup_buf[7] << 8) | s->setup_buf[6];
+- if (s->setup_len > sizeof(s->data_buf)) {
++ setup_len = (s->setup_buf[7] << 8) | s->setup_buf[6];
++ if (setup_len > sizeof(s->data_buf)) {
+ fprintf(stderr,
+ "usb_generic_handle_packet: ctrl buffer too small (%d > %zu)\n",
+- s->setup_len, sizeof(s->data_buf));
++ setup_len, sizeof(s->data_buf));
+ p->status = USB_RET_STALL;
+ return;
+ }
++ s->setup_len = setup_len;
+
+ request = (s->setup_buf[0] << 8) | s->setup_buf[1];
+ value = (s->setup_buf[3] << 8) | s->setup_buf[2];
+@@ -259,26 +261,28 @@ static void do_token_out(USBDevice *s, USBPacket *p)
+ static void do_parameter(USBDevice *s, USBPacket *p)
+ {
+ int i, request, value, index;
++ unsigned int setup_len;
+
+ for (i = 0; i < 8; i++) {
+ s->setup_buf[i] = p->parameter >> (i*8);
+ }
+
+ s->setup_state = SETUP_STATE_PARAM;
+- s->setup_len = (s->setup_buf[7] << 8) | s->setup_buf[6];
+ s->setup_index = 0;
+
+ request = (s->setup_buf[0] << 8) | s->setup_buf[1];
+ value = (s->setup_buf[3] << 8) | s->setup_buf[2];
+ index = (s->setup_buf[5] << 8) | s->setup_buf[4];
+
+- if (s->setup_len > sizeof(s->data_buf)) {
++ setup_len = (s->setup_buf[7] << 8) | s->setup_buf[6];
++ if (setup_len > sizeof(s->data_buf)) {
+ fprintf(stderr,
+ "usb_generic_handle_packet: ctrl buffer too small (%d > %zu)\n",
+- s->setup_len, sizeof(s->data_buf));
++ setup_len, sizeof(s->data_buf));
+ p->status = USB_RET_STALL;
+ return;
+ }
++ s->setup_len = setup_len;
+
+ if (p->pid == USB_TOKEN_OUT) {
+ usb_packet_copy(p, s->data_buf, s->setup_len);
diff --git a/meta/recipes-devtools/qemu/qemu_4.2.0.bb b/meta/recipes-devtools/qemu/qemu_5.1.0.bb
index f0c1daabe1..599ff82fc1 100644
--- a/meta/recipes-devtools/qemu/qemu_4.2.0.bb
+++ b/meta/recipes-devtools/qemu/qemu_5.1.0.bb
@@ -21,5 +21,8 @@ do_install_append_class-nativesdk() {
PACKAGECONFIG ??= " \
fdt sdl kvm \
${@bb.utils.filter('DISTRO_FEATURES', 'alsa xen', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer glx', '', d)} \
+"
+PACKAGECONFIG_class-nativesdk ??= "fdt sdl kvm \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer glx', '', d)} \
"
-PACKAGECONFIG_class-nativesdk ??= "fdt sdl kvm"
diff --git a/meta/recipes-devtools/rpm/files/0001-Bump-up-the-limit-of-signature-header-to-64MB.patch b/meta/recipes-devtools/rpm/files/0001-Bump-up-the-limit-of-signature-header-to-64MB.patch
new file mode 100644
index 0000000000..0a19c12a7a
--- /dev/null
+++ b/meta/recipes-devtools/rpm/files/0001-Bump-up-the-limit-of-signature-header-to-64MB.patch
@@ -0,0 +1,62 @@
+From e8bf0eba7143abb6e69db82ee747a0c6790dd00a Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 3 Jun 2020 10:25:24 +0800
+Subject: [PATCH] Bump up the limit of signature header to 64MB
+
+Since commits [Place file signatures into the signature header where they
+belong][1] applied, run `rpm -Kv **.rpm' failed if signature header
+is larger than 64KB. Here are steps:
+
+1) A unsigned rpm package, the size is 227560 bytes
+$ ls -al xz-src-5.2.5-r0.corei7_64.rpm
+-rw-------. 1 mockbuild 1000 227560 Jun 3 09:59
+
+2) Sign the rpm package
+$ rpmsign --addsign ... xz-src-5.2.5-r0.corei7_64.rpm
+
+3) The size of signed rpm is 312208 bytes
+$ ls -al xz-src-5.2.5-r0.corei7_64.rpm
+-rw-------. 1 mockbuild 1000 312208 Jun 3 09:48
+
+4) Run `rpm -Kv' failed with signature hdr data out of range
+$ rpm -Kv xz-src-5.2.5-r0.corei7_64.rpm
+xz-src-5.2.5-r0.corei7_64.rpm:
+error: xz-src-5.2.5-r0.corei7_64.rpm: signature hdr data: BAD, no. of
+bytes(88864) out of range
+
+From 1) and 3), the size of signed rpm package increased
+312208 - 227560 = 84648, so the check of dl_max (64KB,65536)
+is not enough.
+
+As [1] said:
+
+ This also means the signature header can be MUCH bigger than ever
+ before,so bump up the limit (to 64MB, arbitrary something for now)
+
+So [1] missed to multiply by 1024.
+
+[1] https://github.com/rpm-software-management/rpm/commit/f558e886050c4e98f6cdde391df679a411b3f62c
+
+Upstream-Status: Backport [https://github.com/rpm-software-management/rpm/commit/486579912381ede82172dc6d0ff3941a6d0536b5]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ lib/header.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/header.c b/lib/header.c
+index 9ec7ed0..cbf6890 100644
+--- a/lib/header.c
++++ b/lib/header.c
+@@ -1906,7 +1906,7 @@ rpmRC hdrblobRead(FD_t fd, int magic, int exact_size, rpmTagVal regionTag, hdrbl
+
+ if (regionTag == RPMTAG_HEADERSIGNATURES) {
+ il_max = 32;
+- dl_max = 64 * 1024;
++ dl_max = 64 * 1024 * 1024;
+ }
+
+ memset(block, 0, sizeof(block));
+--
+2.25.4
+
diff --git a/meta/recipes-devtools/rpm/files/0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch b/meta/recipes-devtools/rpm/files/0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch
index 80e2f0fad7..4029233fb7 100644
--- a/meta/recipes-devtools/rpm/files/0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch
+++ b/meta/recipes-devtools/rpm/files/0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch
@@ -1,4 +1,4 @@
-From 87cfc0db1ed6fe381a5ed5f0016d8c3344a31a11 Mon Sep 17 00:00:00 2001
+From f39c28eb52f12ae6e82db360ffd5a903ac8faca5 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Mon, 9 Jan 2017 18:52:11 +0200
Subject: [PATCH] Do not add an unsatisfiable dependency when building rpms in
@@ -9,25 +9,23 @@ hand produces rpms that way by design.
Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
---
build/pack.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/build/pack.c b/build/pack.c
-index 1261cdbba..bb2d6f4f6 100644
+index e6cec1816..810cd7351 100644
--- a/build/pack.c
+++ b/build/pack.c
-@@ -595,10 +595,6 @@ rpmRC packageBinaries(rpmSpec spec, const char *cookie, int cheating)
- headerPutBin(pkg->header, RPMTAG_SOURCEPKGID, spec->sourcePkgId,16);
- }
+@@ -724,10 +724,6 @@ static rpmRC packageBinary(rpmSpec spec, Package pkg, const char *cookie, int ch
+ headerPutBin(pkg->header, RPMTAG_SOURCEPKGID, spec->sourcePkgId,16);
+ }
+
+- if (cheating) {
+- (void) rpmlibNeedsFeature(pkg, "ShortCircuited", "4.9.0-1");
+- }
+-
+ if ((rc = getPkgFilename(pkg->header, filename)))
+ return rc;
-- if (cheating) {
-- (void) rpmlibNeedsFeature(pkg, "ShortCircuited", "4.9.0-1");
-- }
--
- { char *binFormat = rpmGetPath("%{_rpmfilename}", NULL);
- char *binRpm, *binDir;
- binRpm = headerFormat(pkg->header, binFormat, &errorString);
---
-2.11.0
-
diff --git a/meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch b/meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch
index 82e7328757..52440d6818 100644
--- a/meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch
+++ b/meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch
@@ -1,4 +1,4 @@
-From bd08eb0ae1312f347f49949481daa7c923752df2 Mon Sep 17 00:00:00 2001
+From 2f3d1619b6510bc131c4375827caf912559f0fa2 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Mon, 27 Feb 2017 09:43:30 +0200
Subject: [PATCH] Do not hardcode "lib/rpm" as the installation path for
@@ -14,10 +14,10 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/configure.ac b/configure.ac
-index 09af7c4..9bd6903 100644
+index d3aeab86e..1a1f3f91f 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -1055,7 +1055,7 @@ else
+@@ -1086,7 +1086,7 @@ else
usrprefix=$prefix
fi
@@ -27,10 +27,10 @@ index 09af7c4..9bd6903 100644
AC_SUBST(OBJDUMP)
diff --git a/macros.in b/macros.in
-index a3aa7a9..62cee5c 100644
+index fe9803aad..d128675bf 100644
--- a/macros.in
+++ b/macros.in
-@@ -970,7 +970,7 @@ package or when debugging this package.\
+@@ -985,7 +985,7 @@ package or when debugging this package.\
%_sharedstatedir %{_prefix}/com
%_localstatedir %{_prefix}/var
%_lib lib
@@ -40,7 +40,7 @@ index a3aa7a9..62cee5c 100644
%_infodir %{_datadir}/info
%_mandir %{_datadir}/man
diff --git a/rpm.am b/rpm.am
-index 82c2d7c..6341b51 100644
+index 40b4ec55f..3139ce8f6 100644
--- a/rpm.am
+++ b/rpm.am
@@ -1,10 +1,10 @@
@@ -55,4 +55,4 @@ index 82c2d7c..6341b51 100644
+rpmconfigdir = $(libdir)/rpm
# Libtool version (current-revision-age) for all our libraries
- rpm_version_info = 9:0:1
+ rpm_version_info = 9:1:0
diff --git a/meta/recipes-devtools/rpm/files/0001-Split-binary-package-building-into-a-separate-functi.patch b/meta/recipes-devtools/rpm/files/0001-Split-binary-package-building-into-a-separate-functi.patch
deleted file mode 100644
index 6e44f0b7fc..0000000000
--- a/meta/recipes-devtools/rpm/files/0001-Split-binary-package-building-into-a-separate-functi.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From 721a660a507d6d062e7aecafad886c643970a5d5 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Thu, 25 May 2017 18:15:27 +0300
-Subject: [PATCH 1/4] Split binary package building into a separate function
-
-So that it can be run as a thread pool task.
-
-Upstream-Status: Submitted [https://github.com/rpm-software-management/rpm/pull/226]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- build/pack.c | 33 +++++++++++++++++++++------------
- 1 file changed, 21 insertions(+), 12 deletions(-)
-
-diff --git a/build/pack.c b/build/pack.c
-index 518f4e92a..ccfd614cc 100644
---- a/build/pack.c
-+++ b/build/pack.c
-@@ -546,18 +546,13 @@ static rpmRC checkPackages(char *pkgcheck)
- return RPMRC_OK;
- }
-
--rpmRC packageBinaries(rpmSpec spec, const char *cookie, int cheating)
-+static rpmRC packageBinary(rpmSpec spec, Package pkg, const char *cookie, int cheating, char** filename)
- {
-- rpmRC rc;
-- const char *errorString;
-- Package pkg;
-- char *pkglist = NULL;
--
-- for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
-- char *fn;
-+ const char *errorString;
-+ rpmRC rc = RPMRC_OK;
-
- if (pkg->fileList == NULL)
-- continue;
-+ return rc;
-
- if ((rc = processScriptFiles(spec, pkg)))
- return rc;
-@@ -587,7 +582,7 @@ rpmRC packageBinaries(rpmSpec spec, const char *cookie, int cheating)
- headerGetString(pkg->header, RPMTAG_NAME), errorString);
- return RPMRC_FAIL;
- }
-- fn = rpmGetPath("%{_rpmdir}/", binRpm, NULL);
-+ *filename = rpmGetPath("%{_rpmdir}/", binRpm, NULL);
- if ((binDir = strchr(binRpm, '/')) != NULL) {
- struct stat st;
- char *dn;
-@@ -609,14 +604,28 @@ rpmRC packageBinaries(rpmSpec spec, const char *cookie, int cheating)
- free(binRpm);
- }
-
-- rc = writeRPM(pkg, NULL, fn, NULL);
-+ rc = writeRPM(pkg, NULL, *filename, NULL);
- if (rc == RPMRC_OK) {
- /* Do check each written package if enabled */
-- char *pkgcheck = rpmExpand("%{?_build_pkgcheck} ", fn, NULL);
-+ char *pkgcheck = rpmExpand("%{?_build_pkgcheck} ", *filename, NULL);
- if (pkgcheck[0] != ' ') {
- rc = checkPackages(pkgcheck);
- }
- free(pkgcheck);
-+ }
-+ return rc;
-+}
-+
-+rpmRC packageBinaries(rpmSpec spec, const char *cookie, int cheating)
-+{
-+ rpmRC rc;
-+ Package pkg;
-+ char *pkglist = NULL;
-+
-+ for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
-+ char *fn = NULL;
-+ rc = packageBinary(spec, pkg, cookie, cheating, &fn);
-+ if (rc == RPMRC_OK) {
- rstrcat(&pkglist, fn);
- rstrcat(&pkglist, " ");
- }
---
-2.11.0
-
diff --git a/meta/recipes-devtools/rpm/files/0001-lib-transaction.c-fix-file-conflicts-for-MIPS64-N32.patch b/meta/recipes-devtools/rpm/files/0001-lib-transaction.c-fix-file-conflicts-for-MIPS64-N32.patch
new file mode 100644
index 0000000000..6678c105cd
--- /dev/null
+++ b/meta/recipes-devtools/rpm/files/0001-lib-transaction.c-fix-file-conflicts-for-MIPS64-N32.patch
@@ -0,0 +1,60 @@
+From 1ed066fc6fa7d7afffe3545c4e3ea937529e6c49 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Thu, 7 May 2020 17:40:58 +0800
+Subject: [PATCH] lib/transaction.c: fix file conflicts for MIPS64 N32
+
+This patch is from:
+https://github.com/rpm-software-management/rpm/issues/193
+
+Error: Transaction check error:
+ file /sbin/ldconfig conflicts between attempted installs of
+ldconfig-2.31+git0+71f2b249a2-r0.mips64_n32 and
+lib32-ldconfig-2.31+git0+71f2b249a2-r0.mips32r2
+...
+
+This was because:
+transactions_color = 001 (ELF32) & 010 (ELF64) & 100 (ELF32 N32 MIPS64)
+FColor = Current file color (001) & transaction_color (111)
+oFcolor = Previous file color (100) & transaction_color (111)
+
+In handleColorConflict, it only deal with conditons "new preferred" or
+"old preferred". But not deal with the situation where neither is the
+preferred type. so for tri-lib system, like mips64/mips64 n32/mips(32),
+"Transaction check error" occurred.
+
+Fixed by performing a 'last-in-wins' resolution when "neither is preferred".
+
+Upstream-Status: Submitted <https://github.com/rpm-software-management/rpm/issues/193>
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ lib/transaction.c | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/lib/transaction.c b/lib/transaction.c
+index 67b9db5..82386b8 100644
+--- a/lib/transaction.c
++++ b/lib/transaction.c
+@@ -391,7 +391,18 @@ static int handleColorConflict(rpmts ts,
+ rpmfsSetAction(ofs, ofx, FA_CREATE);
+ rpmfsSetAction(fs, fx, FA_SKIPCOLOR);
+ rConflicts = 0;
+- }
++ }else {
++ /*
++ * If neither is already skipped, we skip the old one, and
++ * install the new one (last in wins).
++ */
++ if (ofs && !XFA_SKIPPING(rpmfsGetAction(ofs, ofx)) &&
++ fs && !XFA_SKIPPING(rpmfsGetAction(fs, fx))) {
++ rpmfsSetAction(ofs, ofx, FA_SKIPCOLOR);
++ rpmfsSetAction(fs, fx, FA_CREATE);
++ }
++ rConflicts = 0;
++ }
+ }
+ }
+
+--
+2.7.4
+
diff --git a/meta/recipes-devtools/rpm/files/0001-mono-find-provides-requires-do-not-use-monodis-from-.patch b/meta/recipes-devtools/rpm/files/0001-mono-find-provides-requires-do-not-use-monodis-from-.patch
deleted file mode 100644
index 24aa4c7fff..0000000000
--- a/meta/recipes-devtools/rpm/files/0001-mono-find-provides-requires-do-not-use-monodis-from-.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 43fbc3f53302a395463e8450ac81c53f623eec3f Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Tue, 27 Aug 2019 17:42:34 +0200
-Subject: [PATCH] mono-find-provides/requires: do not use monodis from the host
-
-There was a host contamination issue here: if monodis was installed
-on the host, do_package would use that to resolve dependencies
-of mono libraries (and often fail in that). Without monodis,
-no dependencies are resolved, which is seemingly how things
-are supposed to work.
-
-Upstream-Status: Inappropriate [oe-core specific]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- scripts/mono-find-provides | 8 ++++----
- scripts/mono-find-requires | 8 ++++----
- 2 files changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/scripts/mono-find-provides b/scripts/mono-find-provides
-index 9348457d3..b28872ffb 100644
---- a/scripts/mono-find-provides
-+++ b/scripts/mono-find-provides
-@@ -18,11 +18,11 @@ monolist=($(printf "%s\n" "${filelist[@]}" | grep -E "\\.(exe|dll)\$"))
- build_bindir="$2/usr/bin"
- build_libdir="$2$3"
-
--if [ -x $build_bindir/monodis ]; then
-- monodis="$build_bindir/monodis"
-+if [ -x $build_bindir/monodis.bogus ]; then
-+ monodis="$build_bindir/monodis.bogus"
- export LD_LIBRARY_PATH=$build_libdir${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
--elif [ -x /usr/bin/monodis ]; then
-- monodis="/usr/bin/monodis"
-+elif [ -x /usr/bin/monodis.bogus ]; then
-+ monodis="/usr/bin/monodis.bogus"
- else
- exit 0;
- fi
-diff --git a/scripts/mono-find-requires b/scripts/mono-find-requires
-index ea58cae48..d270169e1 100644
---- a/scripts/mono-find-requires
-+++ b/scripts/mono-find-requires
-@@ -18,11 +18,11 @@ monolist=($(printf "%s\n" "${filelist[@]}" | grep -E "\\.(exe|dll)\$"))
- build_bindir="$2/usr/bin"
- build_libdir="$2$3"
-
--if [ -x $build_bindir/monodis ]; then
-- monodis="$build_bindir/monodis"
-+if [ -x $build_bindir/monodis.bogus ]; then
-+ monodis="$build_bindir/monodis.bogus"
- export LD_LIBRARY_PATH=$build_libdir${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
--elif [ -x /usr/bin/monodis ]; then
-- monodis="/usr/bin/monodis"
-+elif [ -x /usr/bin/monodis.bogus ]; then
-+ monodis="/usr/bin/monodis.bogus"
- else
- exit 0;
- fi
diff --git a/meta/recipes-devtools/rpm/files/0001-rpmfc.c-do-not-run-file-classification-in-parallel.patch b/meta/recipes-devtools/rpm/files/0001-rpmfc.c-do-not-run-file-classification-in-parallel.patch
new file mode 100644
index 0000000000..d8d338792d
--- /dev/null
+++ b/meta/recipes-devtools/rpm/files/0001-rpmfc.c-do-not-run-file-classification-in-parallel.patch
@@ -0,0 +1,65 @@
+From 93c3c7f043f62e96941274e957c4ad9432032af1 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 18 Nov 2019 16:22:56 +0100
+Subject: [PATCH] rpmfc.c: do not run file classification in parallel
+
+This is causing freezes with libmagic when the file in question is compressed:
+https://github.com/rpm-software-management/rpm/issues/756
+
+Upstream-Status: Inappropriate [upstream wants a proper fix]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ build/rpmfc.c | 8 --------
+ 1 file changed, 8 deletions(-)
+
+diff --git a/build/rpmfc.c b/build/rpmfc.c
+index 3db7a9352..17afdd57a 100644
+--- a/build/rpmfc.c
++++ b/build/rpmfc.c
+@@ -680,7 +680,6 @@ static void rpmfcAttributes(rpmfc fc, int ix, const char *ftype, const char *ful
+ /* Add attributes on libmagic type & path pattern matches */
+ if (matches(&(*attr)->incl, ftype, path, is_executable)) {
+ argvAddTokens(&fc->fattrs[ix], (*attr)->name);
+- #pragma omp critical(fahash)
+ fattrHashAddEntry(fc->fahash, attr-fc->atypes, ix);
+ }
+ }
+@@ -1105,7 +1104,6 @@ rpmRC rpmfcClassify(rpmfc fc, ARGV_t argv, rpm_mode_t * fmode)
+ /* Build (sorted) file class dictionary. */
+ fc->cdict = rpmstrPoolCreate();
+
+- #pragma omp parallel
+ {
+ /* libmagic is not thread-safe, each thread needs to a private handle */
+ magic_t ms = magic_open(msflags);
+@@ -1113,15 +1111,12 @@ rpmRC rpmfcClassify(rpmfc fc, ARGV_t argv, rpm_mode_t * fmode)
+ if (ms == NULL) {
+ rpmlog(RPMLOG_ERR, _("magic_open(0x%x) failed: %s\n"),
+ msflags, strerror(errno));
+- #pragma omp cancel parallel
+ }
+
+ if (magic_load(ms, NULL) == -1) {
+ rpmlog(RPMLOG_ERR, _("magic_load failed: %s\n"), magic_error(ms));
+- #pragma omp cancel parallel
+ }
+
+- #pragma omp for ordered reduction(+:nerrors)
+ for (int ix = 0; ix < fc->nfiles; ix++) {
+ rpmsid ftypeId;
+ const char * ftype;
+@@ -1185,14 +1180,11 @@ rpmRC rpmfcClassify(rpmfc fc, ARGV_t argv, rpm_mode_t * fmode)
+ fc->fcolor[ix] = fcolor;
+
+ /* Add to file class dictionary and index array */
+- #pragma omp ordered
+ if (fcolor != RPMFC_WHITE && (fcolor & RPMFC_INCLUDE)) {
+ ftypeId = rpmstrPoolId(fc->cdict, ftype, 1);
+- #pragma omp atomic
+ fc->fknown++;
+ } else {
+ ftypeId = rpmstrPoolId(fc->cdict, "", 1);
+- #pragma omp atomic
+ fc->fwhite++;
+ }
+ /* Pool id's start from 1, for headers we want it from 0 */
diff --git a/meta/recipes-devtools/rpm/files/0002-Run-binary-package-creation-via-thread-pools.patch b/meta/recipes-devtools/rpm/files/0002-Run-binary-package-creation-via-thread-pools.patch
deleted file mode 100644
index d10041c2e1..0000000000
--- a/meta/recipes-devtools/rpm/files/0002-Run-binary-package-creation-via-thread-pools.patch
+++ /dev/null
@@ -1,127 +0,0 @@
-From 513200cf76758de4668312c628d6362bdabfaf4b Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Thu, 25 May 2017 19:30:20 +0300
-Subject: [PATCH 1/3] Run binary package creation via thread pools.
-
-Upstream-Status: Submitted [https://github.com/rpm-software-management/rpm/pull/226]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- build/pack.c | 81 +++++++++++++++++++++++++++++++++++++++++++++++++-----------
- configure.ac | 3 +++
- 2 files changed, 70 insertions(+), 14 deletions(-)
-
-diff --git a/build/pack.c b/build/pack.c
-index ccfd614cc..ed5b9ab4e 100644
---- a/build/pack.c
-+++ b/build/pack.c
-@@ -616,25 +616,78 @@ static rpmRC packageBinary(rpmSpec spec, Package pkg, const char *cookie, int ch
- return rc;
- }
-
--rpmRC packageBinaries(rpmSpec spec, const char *cookie, int cheating)
-+struct binaryPackageTaskData
- {
-- rpmRC rc;
- Package pkg;
-+ char *filename;
-+ rpmRC result;
-+ struct binaryPackageTaskData *next;
-+};
-+
-+static struct binaryPackageTaskData* runBinaryPackageTasks(rpmSpec spec, const char *cookie, int cheating)
-+{
-+ struct binaryPackageTaskData *tasks = NULL;
-+ struct binaryPackageTaskData *task = NULL;
-+ struct binaryPackageTaskData *prev = NULL;
-+
-+ for (Package pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
-+ task = rcalloc(1, sizeof(*task));
-+ task->pkg = pkg;
-+ if (pkg == spec->packages) {
-+ // the first package needs to be processed ahead of others, as they copy
-+ // changelog data from it, and so otherwise data races would happen
-+ task->result = packageBinary(spec, pkg, cookie, cheating, &(task->filename));
-+ rpmlog(RPMLOG_NOTICE, _("Finished binary package job, result %d, filename %s\n"), task->result, task->filename);
-+ tasks = task;
-+ }
-+ if (prev != NULL) {
-+ prev->next = task;
-+ }
-+ prev = task;
-+ }
-+
-+ #pragma omp parallel
-+ #pragma omp single
-+ // re-declaring task variable is necessary, or older gcc versions will produce code that segfaults
-+ for (struct binaryPackageTaskData *task = tasks; task != NULL; task = task->next) {
-+ if (task != tasks)
-+ #pragma omp task
-+ {
-+ task->result = packageBinary(spec, task->pkg, cookie, cheating, &(task->filename));
-+ rpmlog(RPMLOG_NOTICE, _("Finished binary package job, result %d, filename %s\n"), task->result, task->filename);
-+ }
-+ }
-+
-+ return tasks;
-+}
-+
-+static void freeBinaryPackageTasks(struct binaryPackageTaskData* tasks)
-+{
-+ while (tasks != NULL) {
-+ struct binaryPackageTaskData* next = tasks->next;
-+ rfree(tasks->filename);
-+ rfree(tasks);
-+ tasks = next;
-+ }
-+}
-+
-+rpmRC packageBinaries(rpmSpec spec, const char *cookie, int cheating)
-+{
- char *pkglist = NULL;
-
-- for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
-- char *fn = NULL;
-- rc = packageBinary(spec, pkg, cookie, cheating, &fn);
-- if (rc == RPMRC_OK) {
-- rstrcat(&pkglist, fn);
-- rstrcat(&pkglist, " ");
-- }
-- free(fn);
-- if (rc != RPMRC_OK) {
-- pkglist = _free(pkglist);
-- return rc;
-- }
-+ struct binaryPackageTaskData *tasks = runBinaryPackageTasks(spec, cookie, cheating);
-+
-+ for (struct binaryPackageTaskData *task = tasks; task != NULL; task = task->next) {
-+ if (task->result == RPMRC_OK) {
-+ rstrcat(&pkglist, task->filename);
-+ rstrcat(&pkglist, " ");
-+ } else {
-+ _free(pkglist);
-+ freeBinaryPackageTasks(tasks);
-+ return RPMRC_FAIL;
-+ }
- }
-+ freeBinaryPackageTasks(tasks);
-
- /* Now check the package set if enabled */
- if (pkglist != NULL) {
-diff --git a/configure.ac b/configure.ac
-index a506ec819..59fa0acaf 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -17,6 +17,9 @@ AC_DISABLE_STATIC
-
- PKG_PROG_PKG_CONFIG
-
-+AC_OPENMP
-+RPMCFLAGS="$OPENMP_CFLAGS $RPMCFLAGS"
-+
- dnl Checks for programs.
- AC_PROG_CXX
- AC_PROG_AWK
---
-2.11.0
-
diff --git a/meta/recipes-devtools/rpm/files/0003-rpmstrpool.c-make-operations-over-string-pools-threa.patch b/meta/recipes-devtools/rpm/files/0003-rpmstrpool.c-make-operations-over-string-pools-threa.patch
deleted file mode 100644
index c348ae5330..0000000000
--- a/meta/recipes-devtools/rpm/files/0003-rpmstrpool.c-make-operations-over-string-pools-threa.patch
+++ /dev/null
@@ -1,207 +0,0 @@
-From c80892f17e44331206c8318d53b63bb6a99554d0 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Tue, 30 May 2017 13:58:30 +0300
-Subject: [PATCH 3/4] rpmstrpool.c: make operations over string pools
- thread-safe
-
-Otherwise multithreaded rpm building explodes in various ways due
-to data races.
-
-Upstream-Status: Submitted [https://github.com/rpm-software-management/rpm/pull/226]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- rpmio/rpmstrpool.c | 56 +++++++++++++++++++++++++++++++++++++++++++++---------
- 1 file changed, 47 insertions(+), 9 deletions(-)
-
-diff --git a/rpmio/rpmstrpool.c b/rpmio/rpmstrpool.c
-index 30a57eb10..58ba95a02 100644
---- a/rpmio/rpmstrpool.c
-+++ b/rpmio/rpmstrpool.c
-@@ -113,6 +113,8 @@ static poolHash poolHashCreate(int numBuckets)
- return ht;
- }
-
-+static const char * rpmstrPoolStrNoLock(rpmstrPool pool, rpmsid sid);
-+
- static void poolHashResize(rpmstrPool pool, int numBuckets)
- {
- poolHash ht = pool->hash;
-@@ -120,7 +122,7 @@ static void poolHashResize(rpmstrPool pool, int numBuckets)
-
- for (int i=0; i<ht->numBuckets; i++) {
- if (!ht->buckets[i].keyid) continue;
-- unsigned int keyHash = rstrhash(rpmstrPoolStr(pool, ht->buckets[i].keyid));
-+ unsigned int keyHash = rstrhash(rpmstrPoolStrNoLock(pool, ht->buckets[i].keyid));
- for (unsigned int j=0;;j++) {
- unsigned int hash = hashbucket(keyHash, j) % numBuckets;
- if (!buckets[hash].keyid) {
-@@ -149,7 +151,7 @@ static void poolHashAddHEntry(rpmstrPool pool, const char * key, unsigned int ke
- ht->buckets[hash].keyid = keyid;
- ht->keyCount++;
- break;
-- } else if (!strcmp(rpmstrPoolStr(pool, ht->buckets[hash].keyid), key)) {
-+ } else if (!strcmp(rpmstrPoolStrNoLock(pool, ht->buckets[hash].keyid), key)) {
- return;
- }
- }
-@@ -191,7 +193,7 @@ static void poolHashPrintStats(rpmstrPool pool)
- int maxcollisions = 0;
-
- for (i=0; i<ht->numBuckets; i++) {
-- unsigned int keyHash = rstrhash(rpmstrPoolStr(pool, ht->buckets[i].keyid));
-+ unsigned int keyHash = rstrhash(rpmstrPoolStrNoLock(pool, ht->buckets[i].keyid));
- for (unsigned int j=0;;j++) {
- unsigned int hash = hashbucket(keyHash, i) % ht->numBuckets;
- if (hash==i) {
-@@ -221,7 +223,7 @@ static void rpmstrPoolRehash(rpmstrPool pool)
-
- pool->hash = poolHashCreate(sizehint);
- for (int i = 1; i <= pool->offs_size; i++)
-- poolHashAddEntry(pool, rpmstrPoolStr(pool, i), i);
-+ poolHashAddEntry(pool, rpmstrPoolStrNoLock(pool, i), i);
- }
-
- rpmstrPool rpmstrPoolCreate(void)
-@@ -245,6 +247,8 @@ rpmstrPool rpmstrPoolCreate(void)
-
- rpmstrPool rpmstrPoolFree(rpmstrPool pool)
- {
-+ #pragma omp critical(rpmstrpool)
-+ {
- if (pool) {
- if (pool->nrefs > 1) {
- pool->nrefs--;
-@@ -260,18 +264,24 @@ rpmstrPool rpmstrPoolFree(rpmstrPool pool)
- free(pool);
- }
- }
-+ }
- return NULL;
- }
-
- rpmstrPool rpmstrPoolLink(rpmstrPool pool)
- {
-+ #pragma omp critical(rpmstrpool)
-+ {
- if (pool)
- pool->nrefs++;
-+ }
- return pool;
- }
-
- void rpmstrPoolFreeze(rpmstrPool pool, int keephash)
- {
-+ #pragma omp critical(rpmstrpool)
-+ {
- if (pool && !pool->frozen) {
- if (!keephash) {
- pool->hash = poolHashFree(pool->hash);
-@@ -281,16 +291,20 @@ void rpmstrPoolFreeze(rpmstrPool pool, int keephash)
- pool->offs_alloced * sizeof(*pool->offs));
- pool->frozen = 1;
- }
-+ }
- }
-
- void rpmstrPoolUnfreeze(rpmstrPool pool)
- {
-+ #pragma omp critical(rpmstrpool)
-+ {
- if (pool) {
- if (pool->hash == NULL) {
- rpmstrPoolRehash(pool);
- }
- pool->frozen = 0;
- }
-+ }
- }
-
- static rpmsid rpmstrPoolPut(rpmstrPool pool, const char *s, size_t slen, unsigned int hash)
-@@ -350,7 +364,7 @@ static rpmsid rpmstrPoolGet(rpmstrPool pool, const char * key, size_t keylen,
- return 0;
- }
-
-- s = rpmstrPoolStr(pool, ht->buckets[hash].keyid);
-+ s = rpmstrPoolStrNoLock(pool, ht->buckets[hash].keyid);
- /* pool string could be longer than keylen, require exact matche */
- if (strncmp(s, key, keylen) == 0 && s[keylen] == '\0')
- return ht->buckets[hash].keyid;
-@@ -373,27 +387,31 @@ static inline rpmsid strn2id(rpmstrPool pool, const char *s, size_t slen,
- rpmsid rpmstrPoolIdn(rpmstrPool pool, const char *s, size_t slen, int create)
- {
- rpmsid sid = 0;
--
-+ #pragma omp critical(rpmstrpool)
-+ {
- if (s != NULL) {
- unsigned int hash = rstrnhash(s, slen);
- sid = strn2id(pool, s, slen, hash, create);
- }
-+ }
- return sid;
- }
-
- rpmsid rpmstrPoolId(rpmstrPool pool, const char *s, int create)
- {
- rpmsid sid = 0;
--
-+ #pragma omp critical(rpmstrpool)
-+ {
- if (s != NULL) {
- size_t slen;
- unsigned int hash = rstrlenhash(s, &slen);
- sid = strn2id(pool, s, slen, hash, create);
- }
-+ }
- return sid;
- }
-
--const char * rpmstrPoolStr(rpmstrPool pool, rpmsid sid)
-+static const char * rpmstrPoolStrNoLock(rpmstrPool pool, rpmsid sid)
- {
- const char *s = NULL;
- if (pool && sid > 0 && sid <= pool->offs_size)
-@@ -401,12 +419,25 @@ const char * rpmstrPoolStr(rpmstrPool pool, rpmsid sid)
- return s;
- }
-
-+const char * rpmstrPoolStr(rpmstrPool pool, rpmsid sid)
-+{
-+ const char *s = NULL;
-+ #pragma omp critical(rpmstrpool)
-+ {
-+ s = rpmstrPoolStrNoLock(pool, sid);
-+ }
-+ return s;
-+}
-+
- size_t rpmstrPoolStrlen(rpmstrPool pool, rpmsid sid)
- {
- size_t slen = 0;
-+ #pragma omp critical(rpmstrpool)
-+ {
- if (pool && sid > 0 && sid <= pool->offs_size) {
- slen = strlen(pool->offs[sid]);
- }
-+ }
- return slen;
- }
-
-@@ -421,5 +452,12 @@ int rpmstrPoolStreq(rpmstrPool poolA, rpmsid sidA,
-
- rpmsid rpmstrPoolNumStr(rpmstrPool pool)
- {
-- return (pool != NULL) ? pool->offs_size : 0;
-+ rpmsid id = 0;
-+ #pragma omp critical(rpmstrpool)
-+ {
-+ if (pool) {
-+ id = pool->offs_size;
-+ }
-+ }
-+ return id;
- }
---
-2.11.0
-
diff --git a/meta/recipes-devtools/rpm/files/0004-build-pack.c-remove-static-local-variables-from-buil.patch b/meta/recipes-devtools/rpm/files/0004-build-pack.c-remove-static-local-variables-from-buil.patch
deleted file mode 100644
index 652e30b3e4..0000000000
--- a/meta/recipes-devtools/rpm/files/0004-build-pack.c-remove-static-local-variables-from-buil.patch
+++ /dev/null
@@ -1,336 +0,0 @@
-From 792693bb90768cfde4898e8dd31ee1b5de803d2f Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Thu, 8 Jun 2017 17:08:09 +0300
-Subject: [PATCH] build/pack.c: remove static local variables from buildHost()
- and getBuildTime()
-
-Their use is causing difficult to diagnoze data races when building multiple
-packages in parallel, and is a bad idea in general, as it also makes it more
-difficult to reason about code.
-
-Upstream-Status: Submitted [https://github.com/rpm-software-management/rpm/pull/226]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- build/build.c | 54 ++++++++++++++++++++++++++++--
- build/pack.c | 84 +++++++++--------------------------------------
- build/rpmbuild_internal.h | 8 +++--
- 3 files changed, 74 insertions(+), 72 deletions(-)
-
-diff --git a/build/build.c b/build/build.c
-index 13c3df2..b154f08 100644
---- a/build/build.c
-+++ b/build/build.c
-@@ -6,6 +6,8 @@
- #include "system.h"
-
- #include <errno.h>
-+#include <netdb.h>
-+#include <time.h>
- #include <sys/wait.h>
-
- #include <rpm/rpmlog.h>
-@@ -16,6 +18,50 @@
-
- #include "debug.h"
-
-+static rpm_time_t getBuildTime(void)
-+{
-+ rpm_time_t buildTime = 0;
-+ char *srcdate;
-+ time_t epoch;
-+ char *endptr;
-+
-+ srcdate = getenv("SOURCE_DATE_EPOCH");
-+ if (srcdate) {
-+ errno = 0;
-+ epoch = strtol(srcdate, &endptr, 10);
-+ if (srcdate == endptr || *endptr || errno != 0)
-+ rpmlog(RPMLOG_ERR, _("unable to parse SOURCE_DATE_EPOCH\n"));
-+ else
-+ buildTime = (int32_t) epoch;
-+ } else
-+ buildTime = (int32_t) time(NULL);
-+
-+ return buildTime;
-+}
-+
-+static char * buildHost(void)
-+{
-+ char* hostname;
-+ struct hostent *hbn;
-+ char *bhMacro;
-+
-+ bhMacro = rpmExpand("%{?_buildhost}", NULL);
-+ if (strcmp(bhMacro, "") != 0) {
-+ rasprintf(&hostname, "%s", bhMacro);
-+ } else {
-+ hostname = rcalloc(1024, sizeof(*hostname));
-+ (void) gethostname(hostname, 1024);
-+ hbn = gethostbyname(hostname);
-+ if (hbn)
-+ strcpy(hostname, hbn->h_name);
-+ else
-+ rpmlog(RPMLOG_WARNING,
-+ _("Could not canonicalize hostname: %s\n"), hostname);
-+ }
-+ free(bhMacro);
-+ return(hostname);
-+}
-+
- /**
- */
- static rpmRC doRmSource(rpmSpec spec)
-@@ -201,6 +247,9 @@ static rpmRC buildSpec(BTA_t buildArgs, rpmSpec spec, int what)
- rpmRC rc = RPMRC_OK;
- int test = (what & RPMBUILD_NOBUILD);
- char *cookie = buildArgs->cookie ? xstrdup(buildArgs->cookie) : NULL;
-+ const char* host = buildHost();
-+ rpm_time_t buildTime = getBuildTime();
-+
-
- if (rpmExpandNumeric("%{?source_date_epoch_from_changelog}") &&
- getenv("SOURCE_DATE_EPOCH") == NULL) {
-@@ -269,11 +318,11 @@ static rpmRC buildSpec(BTA_t buildArgs, rpmSpec spec, int what)
- goto exit;
-
- if (((what & RPMBUILD_PACKAGESOURCE) && !test) &&
-- (rc = packageSources(spec, &cookie)))
-+ (rc = packageSources(spec, &cookie, buildTime, host)))
- goto exit;
-
- if (((what & RPMBUILD_PACKAGEBINARY) && !test) &&
-- (rc = packageBinaries(spec, cookie, (didBuild == 0))))
-+ (rc = packageBinaries(spec, cookie, (didBuild == 0), buildTime, host)))
- goto exit;
-
- if ((what & RPMBUILD_CLEAN) &&
-@@ -293,6 +342,7 @@ static rpmRC buildSpec(BTA_t buildArgs, rpmSpec spec, int what)
- (void) unlink(spec->specFile);
-
- exit:
-+ free(host);
- free(cookie);
- spec->rootDir = NULL;
- if (rc != RPMRC_OK && rpmlogGetNrecs() > 0) {
-diff --git a/build/pack.c b/build/pack.c
-index df15876..17a4b09 100644
---- a/build/pack.c
-+++ b/build/pack.c
-@@ -6,8 +6,6 @@
- #include "system.h"
-
- #include <errno.h>
--#include <netdb.h>
--#include <time.h>
- #include <sys/wait.h>
-
- #include <rpm/rpmlib.h> /* RPMSIGTAG*, rpmReadPackageFile */
-@@ -152,57 +150,6 @@ exit:
- return rc;
- }
-
--static rpm_time_t * getBuildTime(void)
--{
-- static rpm_time_t buildTime[1];
-- char *srcdate;
-- time_t epoch;
-- char *endptr;
--
-- if (buildTime[0] == 0) {
-- srcdate = getenv("SOURCE_DATE_EPOCH");
-- if (srcdate) {
-- errno = 0;
-- epoch = strtol(srcdate, &endptr, 10);
-- if (srcdate == endptr || *endptr || errno != 0)
-- rpmlog(RPMLOG_ERR, _("unable to parse SOURCE_DATE_EPOCH\n"));
-- else
-- buildTime[0] = (int32_t) epoch;
-- } else
-- buildTime[0] = (int32_t) time(NULL);
-- }
--
-- return buildTime;
--}
--
--static const char * buildHost(void)
--{
-- static char hostname[1024];
-- static int oneshot = 0;
-- struct hostent *hbn;
-- char *bhMacro;
--
-- if (! oneshot) {
-- bhMacro = rpmExpand("%{?_buildhost}", NULL);
-- if (strcmp(bhMacro, "") != 0 && strlen(bhMacro) < 1024) {
-- strcpy(hostname, bhMacro);
-- } else {
-- if (strcmp(bhMacro, "") != 0)
-- rpmlog(RPMLOG_WARNING, _("The _buildhost macro is too long\n"));
-- (void) gethostname(hostname, sizeof(hostname));
-- hbn = gethostbyname(hostname);
-- if (hbn)
-- strcpy(hostname, hbn->h_name);
-- else
-- rpmlog(RPMLOG_WARNING,
-- _("Could not canonicalize hostname: %s\n"), hostname);
-- }
-- free(bhMacro);
-- oneshot = 1;
-- }
-- return(hostname);
--}
--
- static rpmRC processScriptFiles(rpmSpec spec, Package pkg)
- {
- struct TriggerFileEntry *p;
-@@ -476,7 +423,8 @@ exit:
- * order to how the RPM format is laid on disk.
- */
- static rpmRC writeRPM(Package pkg, unsigned char ** pkgidp,
-- const char *fileName, char **cookie)
-+ const char *fileName, char **cookie,
-+ rpm_time_t buildTime, const char* buildHost)
- {
- FD_t fd = NULL;
- char * rpmio_flags = NULL;
-@@ -500,7 +448,7 @@ static rpmRC writeRPM(Package pkg, unsigned char ** pkgidp,
-
- /* Create and add the cookie */
- if (cookie) {
-- rasprintf(cookie, "%s %d", buildHost(), (int) (*getBuildTime()));
-+ rasprintf(cookie, "%s %d", buildHost, buildTime);
- headerPutString(pkg->header, RPMTAG_COOKIE, *cookie);
- }
-
-@@ -641,7 +589,7 @@ static rpmRC checkPackages(char *pkgcheck)
- return RPMRC_OK;
- }
-
--static rpmRC packageBinary(rpmSpec spec, Package pkg, const char *cookie, int cheating, char** filename)
-+static rpmRC packageBinary(rpmSpec spec, Package pkg, const char *cookie, int cheating, char** filename, rpm_time_t buildTime, const char* buildHost)
- {
- const char *errorString;
- rpmRC rc = RPMRC_OK;
-@@ -660,8 +608,8 @@ static rpmRC packageBinary(rpmSpec spec, Package pkg, const char *cookie, int ch
- headerCopyTags(spec->packages->header, pkg->header, copyTags);
-
- headerPutString(pkg->header, RPMTAG_RPMVERSION, VERSION);
-- headerPutString(pkg->header, RPMTAG_BUILDHOST, buildHost());
-- headerPutUint32(pkg->header, RPMTAG_BUILDTIME, getBuildTime(), 1);
-+ headerPutString(pkg->header, RPMTAG_BUILDHOST, buildHost);
-+ headerPutUint32(pkg->header, RPMTAG_BUILDTIME, &buildTime, 1);
-
- if (spec->sourcePkgId != NULL) {
- headerPutBin(pkg->header, RPMTAG_SOURCEPKGID, spec->sourcePkgId,16);
-@@ -699,7 +647,7 @@ static rpmRC packageBinary(rpmSpec spec, Package pkg, const char *cookie, int ch
- free(binRpm);
- }
-
-- rc = writeRPM(pkg, NULL, *filename, NULL);
-+ rc = writeRPM(pkg, NULL, *filename, NULL, buildTime, buildHost);
- if (rc == RPMRC_OK) {
- /* Do check each written package if enabled */
- char *pkgcheck = rpmExpand("%{?_build_pkgcheck} ", *filename, NULL);
-@@ -719,7 +667,7 @@ struct binaryPackageTaskData
- struct binaryPackageTaskData *next;
- };
-
--static struct binaryPackageTaskData* runBinaryPackageTasks(rpmSpec spec, const char *cookie, int cheating)
-+static struct binaryPackageTaskData* runBinaryPackageTasks(rpmSpec spec, const char *cookie, int cheating, rpm_time_t buildTime, char* buildHost)
- {
- struct binaryPackageTaskData *tasks = NULL;
- struct binaryPackageTaskData *task = NULL;
-@@ -731,7 +679,7 @@ static struct binaryPackageTaskData* runBinaryPackageTasks(rpmSpec spec, const c
- if (pkg == spec->packages) {
- // the first package needs to be processed ahead of others, as they copy
- // changelog data from it, and so otherwise data races would happen
-- task->result = packageBinary(spec, pkg, cookie, cheating, &(task->filename));
-+ task->result = packageBinary(spec, pkg, cookie, cheating, &(task->filename), buildTime, buildHost);
- rpmlog(RPMLOG_NOTICE, _("Finished binary package job, result %d, filename %s\n"), task->result, task->filename);
- tasks = task;
- }
-@@ -748,7 +696,7 @@ static struct binaryPackageTaskData* runBinaryPackageTasks(rpmSpec spec, const c
- if (task != tasks)
- #pragma omp task
- {
-- task->result = packageBinary(spec, task->pkg, cookie, cheating, &(task->filename));
-+ task->result = packageBinary(spec, task->pkg, cookie, cheating, &(task->filename), buildTime, buildHost);
- rpmlog(RPMLOG_NOTICE, _("Finished binary package job, result %d, filename %s\n"), task->result, task->filename);
- }
- }
-@@ -766,11 +714,11 @@ static void freeBinaryPackageTasks(struct binaryPackageTaskData* tasks)
- }
- }
-
--rpmRC packageBinaries(rpmSpec spec, const char *cookie, int cheating)
-+rpmRC packageBinaries(rpmSpec spec, const char *cookie, int cheating, rpm_time_t buildTime, char* buildHost)
- {
- char *pkglist = NULL;
-
-- struct binaryPackageTaskData *tasks = runBinaryPackageTasks(spec, cookie, cheating);
-+ struct binaryPackageTaskData *tasks = runBinaryPackageTasks(spec, cookie, cheating, buildTime, buildHost);
-
- for (struct binaryPackageTaskData *task = tasks; task != NULL; task = task->next) {
- if (task->result == RPMRC_OK) {
-@@ -797,7 +745,7 @@ rpmRC packageBinaries(rpmSpec spec, const char *cookie, int cheating)
- return RPMRC_OK;
- }
-
--rpmRC packageSources(rpmSpec spec, char **cookie)
-+rpmRC packageSources(rpmSpec spec, char **cookie, rpm_time_t buildTime, char* buildHost)
- {
- Package sourcePkg = spec->sourcePackage;
- rpmRC rc;
-@@ -805,8 +753,8 @@ rpmRC packageSources(rpmSpec spec, char **cookie)
-
- /* Add some cruft */
- headerPutString(sourcePkg->header, RPMTAG_RPMVERSION, VERSION);
-- headerPutString(sourcePkg->header, RPMTAG_BUILDHOST, buildHost());
-- headerPutUint32(sourcePkg->header, RPMTAG_BUILDTIME, getBuildTime(), 1);
-+ headerPutString(sourcePkg->header, RPMTAG_BUILDHOST, buildHost);
-+ headerPutUint32(sourcePkg->header, RPMTAG_BUILDTIME, &buildTime, 1);
- headerPutUint32(sourcePkg->header, RPMTAG_SOURCEPACKAGE, &one, 1);
-
- /* XXX this should be %_srpmdir */
-@@ -814,7 +762,7 @@ rpmRC packageSources(rpmSpec spec, char **cookie)
- char *pkgcheck = rpmExpand("%{?_build_pkgcheck_srpm} ", fn, NULL);
-
- spec->sourcePkgId = NULL;
-- rc = writeRPM(sourcePkg, &spec->sourcePkgId, fn, cookie);
-+ rc = writeRPM(sourcePkg, &spec->sourcePkgId, fn, cookie, buildTime, buildHost);
-
- /* Do check SRPM package if enabled */
- if (rc == RPMRC_OK && pkgcheck[0] != ' ') {
-diff --git a/build/rpmbuild_internal.h b/build/rpmbuild_internal.h
-index 439b7d3..07e8338 100644
---- a/build/rpmbuild_internal.h
-+++ b/build/rpmbuild_internal.h
-@@ -427,19 +427,23 @@ rpmRC processSourceFiles(rpmSpec spec, rpmBuildPkgFlags pkgFlags);
- * @param spec spec file control structure
- * @param cookie build identifier "cookie" or NULL
- * @param cheating was build shortcircuited?
-+ * @param buildTime the build timestamp that goes into packages
-+ * @param buildHost the hostname where the build is happening
- * @return RPMRC_OK on success
- */
- RPM_GNUC_INTERNAL
--rpmRC packageBinaries(rpmSpec spec, const char *cookie, int cheating);
-+rpmRC packageBinaries(rpmSpec spec, const char *cookie, int cheating, rpm_time_t buildTime, char* buildHost);
-
- /** \ingroup rpmbuild
- * Generate source package.
- * @param spec spec file control structure
- * @retval cookie build identifier "cookie" or NULL
-+ * @param buildTime the build timestamp that goes into packages
-+ * @param buildHost the hostname where the build is happening
- * @return RPMRC_OK on success
- */
- RPM_GNUC_INTERNAL
--rpmRC packageSources(rpmSpec spec, char **cookie);
-+rpmRC packageSources(rpmSpec spec, char **cookie, rpm_time_t buildTime, char* buildHost);
-
- RPM_GNUC_INTERNAL
- int addLangTag(rpmSpec spec, Header h, rpmTagVal tag,
diff --git a/meta/recipes-devtools/rpm/files/environment.d-rpm.sh b/meta/recipes-devtools/rpm/files/environment.d-rpm.sh
new file mode 100644
index 0000000000..9b669a18d1
--- /dev/null
+++ b/meta/recipes-devtools/rpm/files/environment.d-rpm.sh
@@ -0,0 +1 @@
+export RPM_CONFIGDIR="$OECORE_NATIVE_SYSROOT/usr/lib/rpm"
diff --git a/meta/recipes-devtools/rpm/rpm_4.14.2.1.bb b/meta/recipes-devtools/rpm/rpm_4.15.1.bb
index 17255dc87a..a1c5205554 100644
--- a/meta/recipes-devtools/rpm/rpm_4.14.2.1.bb
+++ b/meta/recipes-devtools/rpm/rpm_4.15.1.bb
@@ -24,7 +24,8 @@ HOMEPAGE = "http://www.rpm.org"
LICENSE = "GPL-2.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=c0bf017c0fd1920e6158a333acabfd4a"
-SRC_URI = "git://github.com/rpm-software-management/rpm;branch=rpm-4.14.x \
+SRC_URI = "git://github.com/rpm-software-management/rpm;branch=rpm-4.15.x \
+ file://environment.d-rpm.sh \
file://0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch \
file://0001-Do-not-read-config-files-from-HOME.patch \
file://0001-When-cross-installing-execute-package-scriptlets-wit.patch \
@@ -34,24 +35,21 @@ SRC_URI = "git://github.com/rpm-software-management/rpm;branch=rpm-4.14.x \
file://0001-Fix-build-with-musl-C-library.patch \
file://0001-Add-a-color-setting-for-mips64_n32-binaries.patch \
file://0011-Do-not-require-that-ELF-binaries-are-executable-to-b.patch \
- file://0001-Split-binary-package-building-into-a-separate-functi.patch \
- file://0002-Run-binary-package-creation-via-thread-pools.patch \
- file://0003-rpmstrpool.c-make-operations-over-string-pools-threa.patch \
- file://0004-build-pack.c-remove-static-local-variables-from-buil.patch \
file://0001-perl-disable-auto-reqs.patch \
file://0001-rpm-rpmio.c-restrict-virtual-memory-usage-if-limit-s.patch \
file://0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch \
- file://0001-mono-find-provides-requires-do-not-use-monodis-from-.patch \
- file://0001-Rip-out-partial-support-for-unused-MD2-and-RIPEMD160.patch \
file://0001-rpmplugins.c-call-dlerror-prior-to-dlsym.patch \
+ file://0001-rpmfc.c-do-not-run-file-classification-in-parallel.patch \
+ file://0001-lib-transaction.c-fix-file-conflicts-for-MIPS64-N32.patch \
+ file://0001-Bump-up-the-limit-of-signature-header-to-64MB.patch \
"
PE = "1"
-SRCREV = "4a9440006398646583f0d9ae1837dad2875013aa"
+SRCREV = "ab2179452c5be276a6b96c591afded485c7e58c3"
S = "${WORKDIR}/git"
-DEPENDS = "openssl libarchive db file popt xz bzip2 dbus elfutils python3"
+DEPENDS = "openssl db file popt xz bzip2 elfutils python3"
DEPENDS_append_class-native = " file-replacement-native bzip2-replacement-native"
inherit autotools gettext pkgconfig python3native
@@ -61,21 +59,25 @@ export PYTHON_ABI
EXTRA_AUTORECONF_append = " --exclude=gnu-configize"
EXTRA_OECONF_append = " --without-lua --enable-python --with-crypto=openssl"
-EXTRA_OECONF_append_libc-musl = " --disable-nls"
+EXTRA_OECONF_append_libc-musl = " --disable-nls --disable-openmp"
# --sysconfdir prevents rpm from attempting to access machine-specific configuration in sysroot/etc; we need to have it in rootfs
-#
# --localstatedir prevents rpm from writing its database to native sysroot when building images
-#
-# Disable dbus for native, so that rpm doesn't attempt to inhibit shutdown via session dbus even when plugins support is enabled.
-# Also disable plugins by default for native.
+# Forcibly disable plugins for native/nativesdk, as the inhibit and prioreset
+# plugins both behave badly inside builds.
EXTRA_OECONF_append_class-native = " --sysconfdir=/etc --localstatedir=/var --disable-plugins"
-EXTRA_OECONF_append_class-nativesdk = " --sysconfdir=/etc --localstatedir=/var --disable-plugins"
+EXTRA_OECONF_append_class-nativesdk = " --sysconfdir=/etc --disable-plugins"
BBCLASSEXTEND = "native nativesdk"
-PACKAGECONFIG ??= ""
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'inhibit', '', d)}"
+# The inhibit plugin serves no purpose outside of the target
+PACKAGECONFIG_remove_class-native = "inhibit"
+PACKAGECONFIG_remove_class-nativesdk = "inhibit"
+
PACKAGECONFIG[imaevm] = "--with-imaevm,,ima-evm-utils"
+PACKAGECONFIG[inhibit] = "--enable-inhibit-plugin,--disable-inhibit-plugin,dbus"
+PACKAGECONFIG[rpm2archive] = "--with-archive,--without-archive,libarchive"
ASNEEDED = ""
@@ -97,7 +99,7 @@ WRAPPER_TOOLS = " \
do_install_append_class-native() {
for tool in ${WRAPPER_TOOLS}; do
- create_wrapper ${D}$tool \
+ test -x ${D}$tool && create_wrapper ${D}$tool \
RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm \
RPM_ETCCONFIGDIR=${STAGING_DIR_NATIVE} \
MAGIC=${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc \
@@ -107,7 +109,7 @@ do_install_append_class-native() {
do_install_append_class-nativesdk() {
for tool in ${WRAPPER_TOOLS}; do
- create_wrapper ${D}$tool \
+ test -x ${D}$tool && create_wrapper ${D}$tool \
RPM_CONFIGDIR='`dirname $''realpath`'/${@os.path.relpath(d.getVar('libdir'), d.getVar('bindir'))}/rpm \
RPM_ETCCONFIGDIR='$'{RPM_ETCCONFIGDIR-'`dirname $''realpath`'/${@os.path.relpath(d.getVar('sysconfdir'), d.getVar('bindir'))}/..} \
MAGIC='`dirname $''realpath`'/${@os.path.relpath(d.getVar('datadir'), d.getVar('bindir'))}/misc/magic.mgc \
@@ -115,6 +117,9 @@ do_install_append_class-nativesdk() {
done
rm -rf ${D}/var
+
+ mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d
+ install -m 644 ${WORKDIR}/environment.d-rpm.sh ${D}${SDKPATHNATIVE}/environment-setup.d/rpm.sh
}
# Rpm's make install creates var/tmp which clashes with base-files packaging
@@ -127,12 +132,12 @@ do_install_append () {
${D}/${libdir}/rpm/macros
sed -i -e 's|/usr/bin/python|${USRBINPATH}/env ${PYTHON_PN}|' \
- ${D}${libdir}/rpm/pythondistdeps.py \
- ${D}${libdir}/rpm/python-macro-helper
+ ${D}${libdir}/rpm/pythondistdeps.py
}
FILES_${PN} += "${libdir}/rpm-plugins/*.so \
"
+FILES_${PN}_append_class-nativesdk = " ${SDKPATHNATIVE}/environment-setup.d/rpm.sh"
FILES_${PN}-dev += "${libdir}/rpm-plugins/*.la \
"
diff --git a/meta/recipes-devtools/rsync/files/CVE-2016-9840.patch b/meta/recipes-devtools/rsync/files/CVE-2016-9840.patch
deleted file mode 100644
index 7581887790..0000000000
--- a/meta/recipes-devtools/rsync/files/CVE-2016-9840.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From 6a043145ca6e9c55184013841a67b2fef87e44c0 Mon Sep 17 00:00:00 2001
-From: Mark Adler <madler@alumni.caltech.edu>
-Date: Wed, 21 Sep 2016 23:35:50 -0700
-Subject: [PATCH] Remove offset pointer optimization in inftrees.c.
-
-inftrees.c was subtracting an offset from a pointer to an array,
-in order to provide a pointer that allowed indexing starting at
-the offset. This is not compliant with the C standard, for which
-the behavior of a pointer decremented before its allocated memory
-is undefined. Per the recommendation of a security audit of the
-zlib code by Trail of Bits and TrustInSoft, in support of the
-Mozilla Foundation, this tiny optimization was removed, in order
-to avoid the possibility of undefined behavior.
-
-CVE: CVE-2016-9840
-Upstream-Status: Backport
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- inftrees.c | 18 ++++++++----------
- 1 file changed, 8 insertions(+), 10 deletions(-)
-
-diff --git a/zlib/inftrees.c b/zlib/inftrees.c
-index 22fcd666..0d2670d5 100644
---- a/zlib/inftrees.c
-+++ b/zlib/inftrees.c
-@@ -54,7 +54,7 @@ unsigned short FAR *work;
- code FAR *next; /* next available space in table */
- const unsigned short FAR *base; /* base value table to use */
- const unsigned short FAR *extra; /* extra bits table to use */
-- int end; /* use base and extra for symbol > end */
-+ unsigned match; /* use base and extra for symbol >= match */
- unsigned short count[MAXBITS+1]; /* number of codes of each length */
- unsigned short offs[MAXBITS+1]; /* offsets in table for each length */
- static const unsigned short lbase[31] = { /* Length codes 257..285 base */
-@@ -181,19 +181,17 @@ unsigned short FAR *work;
- switch (type) {
- case CODES:
- base = extra = work; /* dummy value--not used */
-- end = 19;
-+ match = 20;
- break;
- case LENS:
- base = lbase;
-- base -= 257;
- extra = lext;
-- extra -= 257;
-- end = 256;
-+ match = 257;
- break;
- default: /* DISTS */
- base = dbase;
- extra = dext;
-- end = -1;
-+ match = 0;
- }
-
- /* initialize state for loop */
-@@ -216,13 +214,13 @@ unsigned short FAR *work;
- for (;;) {
- /* create table entry */
- here.bits = (unsigned char)(len - drop);
-- if ((int)(work[sym]) < end) {
-+ if (work[sym] + 1 < match) {
- here.op = (unsigned char)0;
- here.val = work[sym];
- }
-- else if ((int)(work[sym]) > end) {
-- here.op = (unsigned char)(extra[work[sym]]);
-- here.val = base[work[sym]];
-+ else if (work[sym] >= match) {
-+ here.op = (unsigned char)(extra[work[sym] - match]);
-+ here.val = base[work[sym] - match];
- }
- else {
- here.op = (unsigned char)(32 + 64); /* end of block */
diff --git a/meta/recipes-devtools/rsync/files/CVE-2016-9841.patch b/meta/recipes-devtools/rsync/files/CVE-2016-9841.patch
deleted file mode 100644
index 3942176de5..0000000000
--- a/meta/recipes-devtools/rsync/files/CVE-2016-9841.patch
+++ /dev/null
@@ -1,228 +0,0 @@
-From 9aaec95e82117c1cb0f9624264c3618fc380cecb Mon Sep 17 00:00:00 2001
-From: Mark Adler <madler@alumni.caltech.edu>
-Date: Wed, 21 Sep 2016 22:25:21 -0700
-Subject: [PATCH] Use post-increment only in inffast.c.
-
-An old inffast.c optimization turns out to not be optimal anymore
-with modern compilers, and furthermore was not compliant with the
-C standard, for which decrementing a pointer before its allocated
-memory is undefined. Per the recommendation of a security audit of
-the zlib code by Trail of Bits and TrustInSoft, in support of the
-Mozilla Foundation, this "optimization" was removed, in order to
-avoid the possibility of undefined behavior.
-
-CVE: CVE-2016-9841
-Upstream-Status: Backport
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- zlib/inffast.c | 81 +++++++++++++++++++++----------------------------------
- 1 file changed, 31 insertions(+), 50 deletions(-)
-
-diff --git a/zlib/inffast.c b/zlib/inffast.c
-index bda59ceb..f0d163db 100644
---- a/zlib/inffast.c
-+++ b/zlib/inffast.c
-@@ -10,25 +10,6 @@
-
- #ifndef ASMINF
-
--/* Allow machine dependent optimization for post-increment or pre-increment.
-- Based on testing to date,
-- Pre-increment preferred for:
-- - PowerPC G3 (Adler)
-- - MIPS R5000 (Randers-Pehrson)
-- Post-increment preferred for:
-- - none
-- No measurable difference:
-- - Pentium III (Anderson)
-- - M68060 (Nikl)
-- */
--#ifdef POSTINC
--# define OFF 0
--# define PUP(a) *(a)++
--#else
--# define OFF 1
--# define PUP(a) *++(a)
--#endif
--
- /*
- Decode literal, length, and distance codes and write out the resulting
- literal and match bytes until either not enough input or output is
-@@ -96,9 +77,9 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
-
- /* copy state to local variables */
- state = (struct inflate_state FAR *)strm->state;
-- in = strm->next_in - OFF;
-+ in = strm->next_in;
- last = in + (strm->avail_in - 5);
-- out = strm->next_out - OFF;
-+ out = strm->next_out;
- beg = out - (start - strm->avail_out);
- end = out + (strm->avail_out - 257);
- #ifdef INFLATE_STRICT
-@@ -119,9 +100,9 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
- input data or output space */
- do {
- if (bits < 15) {
-- hold += (unsigned long)(PUP(in)) << bits;
-+ hold += (unsigned long)(*in++) << bits;
- bits += 8;
-- hold += (unsigned long)(PUP(in)) << bits;
-+ hold += (unsigned long)(*in++) << bits;
- bits += 8;
- }
- here = lcode[hold & lmask];
-@@ -134,14 +115,14 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
- Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
- "inflate: literal '%c'\n" :
- "inflate: literal 0x%02x\n", here.val));
-- PUP(out) = (unsigned char)(here.val);
-+ *out++ = (unsigned char)(here.val);
- }
- else if (op & 16) { /* length base */
- len = (unsigned)(here.val);
- op &= 15; /* number of extra bits */
- if (op) {
- if (bits < op) {
-- hold += (unsigned long)(PUP(in)) << bits;
-+ hold += (unsigned long)(*in++) << bits;
- bits += 8;
- }
- len += (unsigned)hold & ((1U << op) - 1);
-@@ -150,9 +131,9 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
- }
- Tracevv((stderr, "inflate: length %u\n", len));
- if (bits < 15) {
-- hold += (unsigned long)(PUP(in)) << bits;
-+ hold += (unsigned long)(*in++) << bits;
- bits += 8;
-- hold += (unsigned long)(PUP(in)) << bits;
-+ hold += (unsigned long)(*in++) << bits;
- bits += 8;
- }
- here = dcode[hold & dmask];
-@@ -165,10 +146,10 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
- dist = (unsigned)(here.val);
- op &= 15; /* number of extra bits */
- if (bits < op) {
-- hold += (unsigned long)(PUP(in)) << bits;
-+ hold += (unsigned long)(*in++) << bits;
- bits += 8;
- if (bits < op) {
-- hold += (unsigned long)(PUP(in)) << bits;
-+ hold += (unsigned long)(*in++) << bits;
- bits += 8;
- }
- }
-@@ -196,30 +177,30 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
- #ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
- if (len <= op - whave) {
- do {
-- PUP(out) = 0;
-+ *out++ = 0;
- } while (--len);
- continue;
- }
- len -= op - whave;
- do {
-- PUP(out) = 0;
-+ *out++ = 0;
- } while (--op > whave);
- if (op == 0) {
- from = out - dist;
- do {
-- PUP(out) = PUP(from);
-+ *out++ = *from++;
- } while (--len);
- continue;
- }
- #endif
- }
-- from = window - OFF;
-+ from = window;
- if (wnext == 0) { /* very common case */
- from += wsize - op;
- if (op < len) { /* some from window */
- len -= op;
- do {
-- PUP(out) = PUP(from);
-+ *out++ = *from++;
- } while (--op);
- from = out - dist; /* rest from output */
- }
-@@ -230,14 +211,14 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
- if (op < len) { /* some from end of window */
- len -= op;
- do {
-- PUP(out) = PUP(from);
-+ *out++ = *from++;
- } while (--op);
-- from = window - OFF;
-+ from = window;
- if (wnext < len) { /* some from start of window */
- op = wnext;
- len -= op;
- do {
-- PUP(out) = PUP(from);
-+ *out++ = *from++;
- } while (--op);
- from = out - dist; /* rest from output */
- }
-@@ -248,35 +229,35 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
- if (op < len) { /* some from window */
- len -= op;
- do {
-- PUP(out) = PUP(from);
-+ *out++ = *from++;
- } while (--op);
- from = out - dist; /* rest from output */
- }
- }
- while (len > 2) {
-- PUP(out) = PUP(from);
-- PUP(out) = PUP(from);
-- PUP(out) = PUP(from);
-+ *out++ = *from++;
-+ *out++ = *from++;
-+ *out++ = *from++;
- len -= 3;
- }
- if (len) {
-- PUP(out) = PUP(from);
-+ *out++ = *from++;
- if (len > 1)
-- PUP(out) = PUP(from);
-+ *out++ = *from++;
- }
- }
- else {
- from = out - dist; /* copy direct from output */
- do { /* minimum length is three */
-- PUP(out) = PUP(from);
-- PUP(out) = PUP(from);
-- PUP(out) = PUP(from);
-+ *out++ = *from++;
-+ *out++ = *from++;
-+ *out++ = *from++;
- len -= 3;
- } while (len > 2);
- if (len) {
-- PUP(out) = PUP(from);
-+ *out++ = *from++;
- if (len > 1)
-- PUP(out) = PUP(from);
-+ *out++ = *from++;
- }
- }
- }
-@@ -313,8 +294,8 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
- hold &= (1U << bits) - 1;
-
- /* update state and return */
-- strm->next_in = in + OFF;
-- strm->next_out = out + OFF;
-+ strm->next_in = in;
-+ strm->next_out = out;
- strm->avail_in = (unsigned)(in < last ? 5 + (last - in) : 5 - (in - last));
- strm->avail_out = (unsigned)(out < end ?
- 257 + (end - out) : 257 - (out - end));
diff --git a/meta/recipes-devtools/rsync/files/CVE-2016-9842.patch b/meta/recipes-devtools/rsync/files/CVE-2016-9842.patch
deleted file mode 100644
index 810d8a3fdb..0000000000
--- a/meta/recipes-devtools/rsync/files/CVE-2016-9842.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From e54e1299404101a5a9d0cf5e45512b543967f958 Mon Sep 17 00:00:00 2001
-From: Mark Adler <madler@alumni.caltech.edu>
-Date: Sat, 5 Sep 2015 17:45:55 -0700
-Subject: [PATCH] Avoid shifts of negative values inflateMark().
-
-The C standard says that bit shifts of negative integers is
-undefined. This casts to unsigned values to assure a known
-result.
-
-CVE: CVE-2016-9842
-Upstream-Status: Backport
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- inflate.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/zlib/inflate.c b/zlib/inflate.c
-index 2889e3a0..a7184167 100644
---- a/zlib/inflate.c
-+++ b/zlib/inflate.c
-@@ -1506,9 +1506,10 @@ z_streamp strm;
- {
- struct inflate_state FAR *state;
-
-- if (strm == Z_NULL || strm->state == Z_NULL) return -1L << 16;
-+ if (strm == Z_NULL || strm->state == Z_NULL)
-+ return (long)(((unsigned long)0 - 1) << 16);
- state = (struct inflate_state FAR *)strm->state;
-- return ((long)(state->back) << 16) +
-+ return (long)(((unsigned long)((long)state->back)) << 16) +
- (state->mode == COPY ? state->length :
- (state->mode == MATCH ? state->was - state->length : 0));
- }
diff --git a/meta/recipes-devtools/rsync/files/CVE-2016-9843.patch b/meta/recipes-devtools/rsync/files/CVE-2016-9843.patch
deleted file mode 100644
index ea2e42fe76..0000000000
--- a/meta/recipes-devtools/rsync/files/CVE-2016-9843.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From d1d577490c15a0c6862473d7576352a9f18ef811 Mon Sep 17 00:00:00 2001
-From: Mark Adler <madler@alumni.caltech.edu>
-Date: Wed, 28 Sep 2016 20:20:25 -0700
-Subject: [PATCH] Avoid pre-decrement of pointer in big-endian CRC calculation.
-
-There was a small optimization for PowerPCs to pre-increment a
-pointer when accessing a word, instead of post-incrementing. This
-required prefacing the loop with a decrement of the pointer,
-possibly pointing before the object passed. This is not compliant
-with the C standard, for which decrementing a pointer before its
-allocated memory is undefined. When tested on a modern PowerPC
-with a modern compiler, the optimization no longer has any effect.
-Due to all that, and per the recommendation of a security audit of
-the zlib code by Trail of Bits and TrustInSoft, in support of the
-Mozilla Foundation, this "optimization" was removed, in order to
-avoid the possibility of undefined behavior.
-
-CVE: CVE-2016-9843
-Upstream-Status: Backport
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- crc32.c | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/zlib/crc32.c b/zlib/crc32.c
-index 979a7190..05733f4e 100644
---- a/zlib/crc32.c
-+++ b/zlib/crc32.c
-@@ -278,7 +278,7 @@ local unsigned long crc32_little(crc, buf, len)
- }
-
- /* ========================================================================= */
--#define DOBIG4 c ^= *++buf4; \
-+#define DOBIG4 c ^= *buf4++; \
- c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^ \
- crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24]
- #define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4
-@@ -300,7 +300,6 @@ local unsigned long crc32_big(crc, buf, len)
- }
-
- buf4 = (const z_crc_t FAR *)(const void FAR *)buf;
-- buf4--;
- while (len >= 32) {
- DOBIG32;
- len -= 32;
-@@ -309,7 +308,6 @@ local unsigned long crc32_big(crc, buf, len)
- DOBIG4;
- len -= 4;
- }
-- buf4++;
- buf = (const unsigned char FAR *)buf4;
-
- if (len) do {
diff --git a/meta/recipes-devtools/rsync/files/makefile-no-rebuild.patch b/meta/recipes-devtools/rsync/files/makefile-no-rebuild.patch
index 3d27fe72cc..4ba7665280 100644
--- a/meta/recipes-devtools/rsync/files/makefile-no-rebuild.patch
+++ b/meta/recipes-devtools/rsync/files/makefile-no-rebuild.patch
@@ -1,20 +1,26 @@
+From 1f29584e57f5fda09970c66f3b94f4720e09c1bb Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@intel.com>
+Date: Tue, 12 Apr 2016 15:51:54 +0100
+Subject: [PATCH] rsync: remove upstream's rebuild logic
+
Remove the Makefile rules to reinvoke autoconf, they're not out-of-tree safe and
generally overcomplicated, and we ensure that autoreconf is invoked if required.
Upstream-Status: Inappropriate
Signed-off-by: Ross Burton <ross.burton@intel.com>
+---
+ Makefile.in | 54 -----------------------------------------------------
+ 1 file changed, 54 deletions(-)
+
diff --git a/Makefile.in b/Makefile.in
-index 151247d..8f3fdb6 100644
+index 672fcc4..c12d8d4 100644
--- a/Makefile.in
+++ b/Makefile.in
-@@ -141,58 +141,6 @@ gen: conf proto.h man
+@@ -168,60 +168,6 @@ gen: conf proto.h man
gensend: gen
- rsync -aivzc $(GENFILES) $${SAMBA_HOST-samba.org}:/home/ftp/pub/rsync/generated-files/
+ rsync -aic $(GENFILES) $${SAMBA_HOST-samba.org}:/home/ftp/pub/rsync/generated-files/
--conf:
-- cd $(srcdir) && $(MAKE) -f prepare-source.mak conf
--
-aclocal.m4: $(srcdir)/m4/*.m4
- aclocal -I $(srcdir)/m4
-
@@ -45,10 +51,15 @@ index 151247d..8f3fdb6 100644
- fi \
- fi
-
+-.PHONY: reconfigure
-reconfigure: configure.sh
- ./config.status --recheck
- ./config.status
-
+-.PHONY: restatus
+-restatus:
+- ./config.status
+-
-Makefile: Makefile.in config.status configure.sh config.h.in
- @if test -f Makefile; then cp -p Makefile Makefile.old; else touch Makefile.old; fi
- @./config.status
@@ -64,6 +75,6 @@ index 151247d..8f3fdb6 100644
- fi \
- fi
-
- rsync-ssl: $(srcdir)/rsync-ssl.in Makefile
- sed 's;\@bindir\@;$(bindir);g' <$(srcdir)/rsync-ssl.in >rsync-ssl
- @chmod +x rsync-ssl
+ stunnel-rsyncd.conf: $(srcdir)/stunnel-rsyncd.conf.in Makefile
+ sed 's;\@bindir\@;$(bindir);g' <$(srcdir)/stunnel-rsyncd.conf.in >stunnel-rsyncd.conf
+
diff --git a/meta/recipes-devtools/rsync/rsync_3.1.3.bb b/meta/recipes-devtools/rsync/rsync_3.2.3.bb
index 152ff02a25..375efa0dea 100644
--- a/meta/recipes-devtools/rsync/rsync_3.1.3.bb
+++ b/meta/recipes-devtools/rsync/rsync_3.2.3.bb
@@ -3,27 +3,23 @@ HOMEPAGE = "http://rsync.samba.org/"
BUGTRACKER = "http://rsync.samba.org/bugzilla.html"
SECTION = "console/network"
# GPLv2+ (<< 3.0.0), GPLv3+ (>= 3.0.0)
+# Includes opennsh and xxhash dynamic link exception
LICENSE = "GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9e5a4f9b3a253d51520617aa54f8eb26"
DEPENDS = "popt"
SRC_URI = "https://download.samba.org/pub/${BPN}/src/${BP}.tar.gz \
file://rsyncd.conf \
file://makefile-no-rebuild.patch \
- file://CVE-2016-9840.patch \
- file://CVE-2016-9841.patch \
- file://CVE-2016-9842.patch \
- file://CVE-2016-9843.patch \
-"
+ "
-SRC_URI[md5sum] = "1581a588fde9d89f6bc6201e8129afaf"
-SRC_URI[sha256sum] = "55cc554efec5fdaad70de921cd5a5eeb6c29a95524c715f3bbf849235b0800c0"
+SRC_URI[sha256sum] = "becc3c504ceea499f4167a260040ccf4d9f2ef9499ad5683c179a697146ce50e"
# -16548 required for v3.1.3pre1. Already in v3.1.3.
CVE_CHECK_WHITELIST += " CVE-2017-16548 "
-inherit autotools
+inherit autotools-brokensep
PACKAGECONFIG ??= "acl attr \
${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
@@ -32,12 +28,17 @@ PACKAGECONFIG ??= "acl attr \
PACKAGECONFIG[acl] = "--enable-acl-support,--disable-acl-support,acl,"
PACKAGECONFIG[attr] = "--enable-xattr-support,--disable-xattr-support,attr,"
PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+PACKAGECONFIG[lz4] = "--enable-lz4,--disable-lz4,lz4"
+PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl"
+PACKAGECONFIG[xxhash] = "--enable-xxhash,--disable-xxhash,xxhash"
+PACKAGECONFIG[zstd] = "--enable-zstd,--disable-zstd,zstd"
# By default, if crosscompiling, rsync disables a number of
# capabilities, hardlinking symlinks and special files (i.e. devices)
CACHED_CONFIGUREVARS += "rsync_cv_can_hardlink_special=yes rsync_cv_can_hardlink_symlink=yes"
EXTRA_OEMAKE = 'STRIP=""'
+EXTRA_OECONF = "--disable-simd --disable-md2man --disable-asm"
# rsync 3.0 uses configure.sh instead of configure, and
# makefile checks the existence of configure.sh
diff --git a/meta/recipes-devtools/ruby/ruby_2.7.0.bb b/meta/recipes-devtools/ruby/ruby_2.7.1.bb
index c796318717..3dd9fb0a62 100644
--- a/meta/recipes-devtools/ruby/ruby_2.7.0.bb
+++ b/meta/recipes-devtools/ruby/ruby_2.7.1.bb
@@ -1,13 +1,15 @@
require ruby.inc
+DEPENDS_append_libc-musl = " libucontext"
+
SRC_URI += " \
file://remove_has_include_macros.patch \
file://run-ptest \
file://0001-Modify-shebang-of-libexec-y2racc-and-libexec-racc2y.patch \
"
-SRC_URI[md5sum] = "bf4a54e8231176e109a42c546b4725a9"
-SRC_URI[sha256sum] = "8c99aa93b5e2f1bc8437d1bbbefd27b13e7694025331f77245d0c068ef1f8cbe"
+SRC_URI[md5sum] = "debb9c325bf65021214451660f46e909"
+SRC_URI[sha256sum] = "d418483bdd0000576c1370571121a6eb24582116db0b7bb2005e90e250eae418"
PACKAGECONFIG ??= ""
PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
@@ -25,6 +27,12 @@ EXTRA_OECONF = "\
--with-pkg-config=pkg-config \
"
+EXTRA_OECONF_append_libc-musl = "\
+ LIBS='-lucontext' \
+ ac_cv_func_isnan=yes \
+ ac_cv_func_isinf=yes \
+"
+
do_install() {
oe_runmake 'DESTDIR=${D}' install
}
@@ -45,6 +53,12 @@ do_install_append_class-target () {
do_install_ptest () {
cp -rf ${S}/test ${D}${PTEST_PATH}/
+
+ install -D ${S}/tool/test/runner.rb ${D}${PTEST_PATH}/tool/test/runner.rb
+ cp -r ${S}/tool/lib ${D}${PTEST_PATH}/tool/
+ mkdir -p ${D}${PTEST_PATH}/lib
+ cp -r ${S}/lib/did_you_mean ${S}/lib/rdoc ${D}${PTEST_PATH}/lib
+
# install test-binaries
find $(find ./.ext -path '*/-test-') -name '*.so' -print0 \
| tar --no-recursion --null -T - --no-same-owner --preserve-permissions -cf - \
diff --git a/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts.service b/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts.service
index d42addf510..7f72f3388a 100644
--- a/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts.service
+++ b/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts.service
@@ -8,7 +8,7 @@ Before=sysinit.target
Type=oneshot
ExecStart=#SBINDIR#/run-postinsts
ExecStartPost=#BASE_BINDIR#/systemctl --no-reload disable run-postinsts.service
-RemainAfterExit=No
+RemainAfterExit=yes
TimeoutSec=0
[Install]
diff --git a/meta/recipes-devtools/squashfs-tools/files/0001-squashfs-tools-fix-build-failure-against-gcc-10.patch b/meta/recipes-devtools/squashfs-tools/files/0001-squashfs-tools-fix-build-failure-against-gcc-10.patch
new file mode 100644
index 0000000000..fc881862ea
--- /dev/null
+++ b/meta/recipes-devtools/squashfs-tools/files/0001-squashfs-tools-fix-build-failure-against-gcc-10.patch
@@ -0,0 +1,45 @@
+From 94e1911ca24726b7cb3efe2f8b9eb7a784757e18 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyfox@gentoo.org>
+Date: Sun, 26 Jan 2020 18:35:13 +0000
+Subject: [PATCH] squashfs-tools: fix build failure against gcc-10
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+On gcc-10 (and gcc-9 -fno-common) build fails as:
+
+```
+cc ... -o mksquashfs
+ld: read_fs.o:(.bss+0x0):
+ multiple definition of `fwriter_buffer'; mksquashfs.o:(.bss+0x400c90): first defined here
+ld: read_fs.o:(.bss+0x8):
+ multiple definition of `bwriter_buffer'; mksquashfs.o:(.bss+0x400c98): first defined here
+```
+
+gcc-10 will change the default from -fcommon to fno-common:
+https://gcc.gnu.org/PR85678.
+
+The error also happens if CFLAGS=-fno-common passed explicitly.
+
+Reported-by: Toralf Förster
+Bug: https://bugs.gentoo.org/706456
+Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
+Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com>
+Upstream-Status: Backport [https://github.com/plougher/squashfs-tools/commit/fe2f5da4b0f8994169c53e84b7cb8a0feefc97b5]
+---
+ squashfs-tools/mksquashfs.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/squashfs-tools/mksquashfs.h b/squashfs-tools/mksquashfs.h
+index 1beefef..b650306 100644
+--- a/squashfs-tools/mksquashfs.h
++++ b/squashfs-tools/mksquashfs.h
+@@ -143,7 +143,7 @@ struct append_file {
+ #endif
+
+ extern struct cache *reader_buffer, *fragment_buffer, *reserve_cache;
+-struct cache *bwriter_buffer, *fwriter_buffer;
++extern struct cache *bwriter_buffer, *fwriter_buffer;
+ extern struct queue *to_reader, *to_deflate, *to_writer, *from_writer,
+ *to_frag, *locked_fragment, *to_process_frag;
+ extern struct append_file **file_mapping;
diff --git a/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb b/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb
index 9bcf026ce2..b06951df36 100644
--- a/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb
+++ b/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb
@@ -8,6 +8,7 @@ LIC_FILES_CHKSUM = "file://../COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
PV = "4.4"
SRCREV = "52eb4c279cd283ed9802dd1ceb686560b22ffb67"
SRC_URI = "git://github.com/plougher/squashfs-tools.git;protocol=https \
+ file://0001-squashfs-tools-fix-build-failure-against-gcc-10.patch;striplevel=2 \
"
S = "${WORKDIR}/git/squashfs-tools"
diff --git a/meta/recipes-devtools/strace/strace/0001-strace-fix-reproducibilty-issues.patch b/meta/recipes-devtools/strace/strace/0001-strace-fix-reproducibilty-issues.patch
new file mode 100644
index 0000000000..c4c176e6bc
--- /dev/null
+++ b/meta/recipes-devtools/strace/strace/0001-strace-fix-reproducibilty-issues.patch
@@ -0,0 +1,39 @@
+From 6309792c49ca900cec6a7f1dc5b51bf75b629e11 Mon Sep 17 00:00:00 2001
+From: Jeremy Puhlman <jpuhlman@mvista.com>
+Date: Wed, 11 Mar 2020 19:56:55 +0000
+Subject: [PATCH] strace: fix reproducibilty issues
+
+The full path to the gen_tests.sh script is encoded in the tests
+
+Upstream-Status: Pending
+
+Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
+---
+ tests/gen_tests.sh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tests/gen_tests.sh b/tests/gen_tests.sh
+index 5e1e7c9..1e65eac 100755
+--- a/tests/gen_tests.sh
++++ b/tests/gen_tests.sh
+@@ -46,7 +46,7 @@ while read -r name arg0 args; do {
+
+ hdr="\
+ #!/bin/sh -efu
+-# Generated by $0 from $input ($name $arg0 $args); do not edit."
++# Generated by $(basename $0) from $input ($name $arg0 $args); do not edit."
+
+ case "$arg0" in
+ +*)
+@@ -80,7 +80,7 @@ while read -r name arg0 args; do {
+
+ if [ -n "$names" ]; then
+ {
+- printf '# Generated by %s from %s; do not edit.\n' "$0" "$input"
++ printf '# Generated by %s from %s; do not edit.\n' "$(basename $0)" "$input"
+ printf 'GEN_TESTS ='
+ printf ' %s.gen.test' $names
+ echo
+--
+2.24.1
+
diff --git a/meta/recipes-devtools/strace/strace/0001-xlat-Mark-IPPROTO_MAX-last-in-IPPROTO_-constants.patch b/meta/recipes-devtools/strace/strace/0001-xlat-Mark-IPPROTO_MAX-last-in-IPPROTO_-constants.patch
new file mode 100644
index 0000000000..cd53f33f60
--- /dev/null
+++ b/meta/recipes-devtools/strace/strace/0001-xlat-Mark-IPPROTO_MAX-last-in-IPPROTO_-constants.patch
@@ -0,0 +1,70 @@
+From 387d3b6fba95cb47c4dacc6bcd330148a9168850 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 7 Oct 2020 12:54:03 -0700
+Subject: [PATCH] xlat: Mark IPPROTO_MAX last in IPPROTO_* constants
+
+* xlat/inet_protocols.in (IPPROTO_MAX): It should be the last entry
+ after adding IPPROTO_MPTCP this should have new value as
+ IPPROTO_MPTCP + 1.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Submitted [https://lists.strace.io/pipermail/strace-devel/2020-October/010253.html]
+---
+ xlat/inet_protocols.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/xlat/inet_protocols.in
++++ b/xlat/inet_protocols.in
+@@ -32,5 +32,5 @@ IPPROTO_UDPLITE 136
+ IPPROTO_MPLS 137
+ IPPROTO_ETHERNET 143
+ IPPROTO_RAW 255
+-IPPROTO_MAX 256
+ IPPROTO_MPTCP 262
++IPPROTO_MAX 263
+--- a/xlat/inet_protocols.h
++++ b/xlat/inet_protocols.h
+@@ -234,19 +234,19 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+ #else
+ # define IPPROTO_RAW 255
+ #endif
+-#if defined(IPPROTO_MAX) || (defined(HAVE_DECL_IPPROTO_MAX) && HAVE_DECL_IPPROTO_MAX)
++#if defined(IPPROTO_MPTCP) || (defined(HAVE_DECL_IPPROTO_MPTCP) && HAVE_DECL_IPPROTO_MPTCP)
+ DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+-static_assert((IPPROTO_MAX) == (256), "IPPROTO_MAX != 256");
++static_assert((IPPROTO_MPTCP) == (262), "IPPROTO_MPTCP != 262");
+ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+ #else
+-# define IPPROTO_MAX 256
++# define IPPROTO_MPTCP 262
+ #endif
+-#if defined(IPPROTO_MPTCP) || (defined(HAVE_DECL_IPPROTO_MPTCP) && HAVE_DECL_IPPROTO_MPTCP)
++#if defined(IPPROTO_MAX) || (defined(HAVE_DECL_IPPROTO_MAX) && HAVE_DECL_IPPROTO_MAX)
+ DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+-static_assert((IPPROTO_MPTCP) == (262), "IPPROTO_MPTCP != 262");
++static_assert((IPPROTO_MAX) == (263), "IPPROTO_MAX != 263");
+ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+ #else
+-# define IPPROTO_MPTCP 262
++# define IPPROTO_MAX 263
+ #endif
+
+ #ifndef XLAT_MACROS_ONLY
+@@ -353,12 +353,12 @@ static const struct xlat_data inet_proto
+ XLAT(IPPROTO_RAW),
+ #define XLAT_VAL_32 ((unsigned) (IPPROTO_RAW))
+ #define XLAT_STR_32 STRINGIFY(IPPROTO_RAW)
+- XLAT(IPPROTO_MAX),
+- #define XLAT_VAL_33 ((unsigned) (IPPROTO_MAX))
+- #define XLAT_STR_33 STRINGIFY(IPPROTO_MAX)
+ XLAT(IPPROTO_MPTCP),
+- #define XLAT_VAL_34 ((unsigned) (IPPROTO_MPTCP))
+- #define XLAT_STR_34 STRINGIFY(IPPROTO_MPTCP)
++ #define XLAT_VAL_33 ((unsigned) (IPPROTO_MPTCP))
++ #define XLAT_STR_33 STRINGIFY(IPPROTO_MPTCP)
++ XLAT(IPPROTO_MAX),
++ #define XLAT_VAL_34 ((unsigned) (IPPROTO_MAX))
++ #define XLAT_STR_34 STRINGIFY(IPPROTO_MAX)
+ };
+ const struct xlat inet_protocols[1] = { {
+ .data = inet_protocols_xdata,
diff --git a/meta/recipes-devtools/strace/strace_5.5.bb b/meta/recipes-devtools/strace/strace_5.8.bb
index 6e7d63949d..0415588b97 100644
--- a/meta/recipes-devtools/strace/strace_5.5.bb
+++ b/meta/recipes-devtools/strace/strace_5.8.bb
@@ -13,9 +13,10 @@ SRC_URI = "https://strace.io/files/${PV}/strace-${PV}.tar.xz \
file://0001-caps-abbrev.awk-fix-gawk-s-path.patch \
file://ptest-spacesave.patch \
file://uintptr_t.patch \
+ file://0001-strace-fix-reproducibilty-issues.patch \
+ file://0001-xlat-Mark-IPPROTO_MAX-last-in-IPPROTO_-constants.patch \
"
-SRC_URI[md5sum] = "dbce2e84632b39a4ed86b9fc60447af9"
-SRC_URI[sha256sum] = "9f58958c8e59ea62293d907d10572e352b582bd7948ed21aa28ebb47e5bf30ff"
+SRC_URI[sha256sum] = "df4a669f7fff9cc302784085bd4b72fab216a426a3f72c892b28a537b71e7aa9"
inherit autotools ptest
@@ -26,7 +27,7 @@ PACKAGECONFIG_class-target ??= "\
PACKAGECONFIG[bluez] = "ac_cv_header_bluetooth_bluetooth_h=yes,ac_cv_header_bluetooth_bluetooth_h=no,bluez5"
PACKAGECONFIG[libunwind] = "--with-libunwind,--without-libunwind,libunwind"
-EXTRA_OECONF += "--enable-mpers=no"
+EXTRA_OECONF += "--enable-mpers=no --disable-gcc-Werror"
CFLAGS_append_libc-musl = " -Dsigcontext_struct=sigcontext"
diff --git a/meta/recipes-devtools/subversion/subversion_1.13.0.bb b/meta/recipes-devtools/subversion/subversion_1.14.0.bb
index 6879f1249f..452a025fcc 100644
--- a/meta/recipes-devtools/subversion/subversion_1.13.0.bb
+++ b/meta/recipes-devtools/subversion/subversion_1.14.0.bb
@@ -13,10 +13,9 @@ SRC_URI = "${APACHE_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \
file://serfmacro.patch \
"
-SRC_URI[md5sum] = "3004b4dae18bf45a0b6ea4ef8820064d"
-SRC_URI[sha256sum] = "bc50ce2c3faa7b1ae9103c432017df98dfd989c4239f9f8270bb3a314ed9e5bd"
+SRC_URI[sha256sum] = "6ba8e218f9f97a83a799e58a3c6da1221d034b18d9d8cbbcb6ec52ab11722102"
-inherit autotools pkgconfig gettext
+inherit autotools pkgconfig gettext python3native
CVE_PRODUCT = "apache:subversion"
@@ -60,4 +59,4 @@ PARALLEL_MAKEINST = ""
RDEPENDS_${PN} = "serf"
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-devtools/syslinux/syslinux/0010-Workaround-multiple-definition-of-symbol-errors.patch b/meta/recipes-devtools/syslinux/syslinux/0010-Workaround-multiple-definition-of-symbol-errors.patch
new file mode 100644
index 0000000000..44cb153276
--- /dev/null
+++ b/meta/recipes-devtools/syslinux/syslinux/0010-Workaround-multiple-definition-of-symbol-errors.patch
@@ -0,0 +1,97 @@
+From 951928f2cad5682c2844e6bd0f7201236c5d9b66 Mon Sep 17 00:00:00 2001
+From: Merlin Mathesius <mmathesi@redhat.com>
+Date: Wed, 13 May 2020 08:02:27 -0500
+Subject: [PATCH] Workaround multiple definition of symbol errors
+
+Lifted from Fedora https://src.fedoraproject.org/rpms/syslinux/blob/master/f/0005-Workaround-multiple-definition-of-symbol-errors.patch
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ com32/cmenu/Makefile | 2 +-
+ com32/elflink/ldlinux/Makefile | 2 +-
+ com32/gpllib/Makefile | 2 +-
+ com32/hdt/Makefile | 2 +-
+ core/Makefile | 2 +-
+ dos/Makefile | 2 +-
+ efi/Makefile | 2 +-
+ 7 files changed, 7 insertions(+), 7 deletions(-)
+
+--- a/com32/cmenu/Makefile
++++ b/com32/cmenu/Makefile
+@@ -49,7 +49,7 @@ makeoutputdirs:
+ @mkdir -p $(OBJ)/libmenu
+
+ libmenu/libmenu.elf: $(LIBMENU)
+- $(LD) -shared $(LDFLAGS) -soname $(patsubst %.elf,%.c32,$(@F)) \
++ $(LD) -shared $(LDFLAGS) -z muldefs -soname $(patsubst %.elf,%.c32,$(@F)) \
+ -o $@ $^
+
+ tidy dist:
+--- a/com32/elflink/ldlinux/Makefile
++++ b/com32/elflink/ldlinux/Makefile
+@@ -33,7 +33,7 @@ endif
+ all: $(BTARGET) ldlinux_lnx.a
+
+ ldlinux.elf : $(OBJS)
+- $(LD) $(LDFLAGS) -soname $(SONAME) -o $@ $^ $(LIBS)
++ $(LD) $(LDFLAGS) -z muldefs -soname $(SONAME) -o $@ $^ $(LIBS)
+
+ LNXCFLAGS += -D__export='__attribute__((visibility("default")))'
+ LNXLIBOBJS = get_key.lo
+--- a/com32/gpllib/Makefile
++++ b/com32/gpllib/Makefile
+@@ -24,7 +24,7 @@ makeoutputdirs:
+ $(addprefix $(OBJ),$(sort $(dir $(LIBOBJS)))),$(b))
+
+ libgpl.elf : $(LIBOBJS)
+- $(LD) -shared $(LDFLAGS) -soname $(patsubst %.elf,%.c32,$(@F)) -o $@ $^
++ $(LD) -shared $(LDFLAGS) -z muldefs -soname $(patsubst %.elf,%.c32,$(@F)) -o $@ $^
+
+ tidy dist clean:
+ find . \( -name \*.o -o -name .\*.d -o -name \*.tmp \) -print0 | \
+--- a/com32/hdt/Makefile
++++ b/com32/hdt/Makefile
+@@ -52,7 +52,7 @@ QEMU ?= qemu-kvm
+ all: $(MODULES) $(TESTFILES)
+
+ hdt.elf : $(OBJS) $(LIBS) $(C_LIBS)
+- $(LD) $(LDFLAGS) -o $@ $^
++ $(LD) $(LDFLAGS) -z muldefs -o $@ $^
+
+ memtest:
+ -[ ! -f $(FLOPPY_DIR)/$(MEMTEST) ] && $(WGET) $(MEMTEST_URL) -O $(FLOPPY_DIR)/$(MEMTEST)
+--- a/core/Makefile
++++ b/core/Makefile
+@@ -156,7 +156,7 @@ LDSCRIPT = $(SRC)/$(ARCH)/syslinux.ld
+ NASM_ELF = elf
+
+ %.elf: %.o $(LIBDEP) $(LDSCRIPT) $(AUXLIBS)
+- $(LD) $(LDFLAGS) -pie -Bsymbolic \
++ $(LD) $(LDFLAGS) -z muldefs -pie -Bsymbolic \
+ -T $(LDSCRIPT) \
+ --unresolved-symbols=report-all \
+ -E --hash-style=gnu -M -o $@ $< \
+--- a/dos/Makefile
++++ b/dos/Makefile
+@@ -19,7 +19,7 @@ include $(MAKEDIR)/embedded.mk
+ CFLAGS += -D__MSDOS__ -mregparm=3 -DREGPARM=3
+ # CFLAGS += -DDEBUG
+
+-LDFLAGS = -T $(SRC)/dosexe.ld
++LDFLAGS = -T $(SRC)/dosexe.ld -z muldefs
+ OPTFLAGS = -g
+ INCLUDES = -include code16.h -nostdinc -iwithprefix include \
+ -I$(SRC) -I$(SRC)/.. -I$(SRC)/../libfat \
+--- a/efi/Makefile
++++ b/efi/Makefile
+@@ -71,7 +71,7 @@ $(OBJS): | $(OBJ)/$(ARCH)
+ BTARGET = syslinux.efi
+
+ syslinux.so: $(OBJS) $(CORE_OBJS) $(LIB_OBJS)
+- $(LD) $(LDFLAGS) --strip-debug -o $@ $^ -lgnuefi -lefi
++ $(LD) $(LDFLAGS) -z muldefs --strip-debug -o $@ $^ -lgnuefi -lefi
+
+ # We need to rename the .hash section because the EFI firmware
+ # linker really doesn't like it.
diff --git a/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb b/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb
index e9dbefb930..3e7eef3a75 100644
--- a/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb
+++ b/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb
@@ -20,6 +20,7 @@ SRC_URI = "https://www.zytor.com/pub/syslinux/Testing/6.04/syslinux-${PV}.tar.xz
file://0007-linux-syslinux-implement-ext_construct_sectmap_fs.patch \
file://0008-libinstaller-syslinuxext-implement-syslinux_patch_bo.patch \
file://0009-linux-syslinux-implement-install_bootblock.patch \
+ file://0010-Workaround-multiple-definition-of-symbol-errors.patch \
file://0001-install-don-t-install-obsolete-file-com32.ld.patch \
"
diff --git a/meta/recipes-devtools/unifdef/unifdef_2.11.bb b/meta/recipes-devtools/unifdef/unifdef_2.12.bb
index 1ffc11e76b..22b10ba234 100644
--- a/meta/recipes-devtools/unifdef/unifdef_2.11.bb
+++ b/meta/recipes-devtools/unifdef/unifdef_2.12.bb
@@ -3,12 +3,13 @@ SECTION = "devel"
LICENSE = "BSD-2-Clause"
HOMEPAGE = "http://dotat.at/prog/unifdef/"
-LIC_FILES_CHKSUM = "file://COPYING;md5=78fc6c2c1dc4f18c891ed5b7a469fe32 \
- file://unifdef.c;endline=32;md5=aaec84d8b68d8b6dea71f45e9949ebfe"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3498caf346f6b77934882101749ada23 \
+ file://unifdef.c;endline=32;md5=6f4ee8085d6e6ab0f7cb4390e1a9c497 \
+ "
SRC_URI = "http://dotat.at/prog/${BPN}/${BP}.tar.xz"
-SRC_URI[md5sum] = "337053fd8a7d9ab3adf5e50f88af95b7"
-SRC_URI[sha256sum] = "828ffc270ac262b88fe011136acef2780c05b0dc3c5435d005651740788d4537"
+SRC_URI[md5sum] = "ae8c0b3b4c43c1f6bc5f32412a820818"
+SRC_URI[sha256sum] = "43ce0f02ecdcdc723b2475575563ddb192e988c886d368260bc0a63aee3ac400"
UPSTREAM_CHECK_REGEX = "unifdef-(?P<pver>((\d+\.*)+)(?![a-f0-9]{6,})).tar"
diff --git a/meta/recipes-devtools/vala/vala/0001-git-version-gen-don-t-append-dirty-if-we-re-not-in-g.patch b/meta/recipes-devtools/vala/vala/0001-git-version-gen-don-t-append-dirty-if-we-re-not-in-g.patch
deleted file mode 100644
index ac9dc8c83a..0000000000
--- a/meta/recipes-devtools/vala/vala/0001-git-version-gen-don-t-append-dirty-if-we-re-not-in-g.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 2460d7b79f7e90dcfeebde5e9c53d9b6798a1f3c Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Tue, 21 Feb 2012 17:12:50 +0100
-Subject: [PATCH] git-version-gen: don't append -dirty if we're not in git
- repo
-
-* for example if we have some dirty directory and we unpack clean vala tarball in it, then it will append -dirty
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-
-Upstream-Status: Inappropriate [OE-Specific]
----
- build-aux/git-version-gen | 25 ++++++++++++++-----------
- 1 files changed, 14 insertions(+), 11 deletions(-)
-
-diff --git a/build-aux/git-version-gen b/build-aux/git-version-gen
-index 0fa6faa..1d1f9d2 100755
---- a/build-aux/git-version-gen
-+++ b/build-aux/git-version-gen
-@@ -126,18 +126,21 @@ fi
-
- v=`echo "$v" |sed 's/^v//'`
-
--# Don't declare a version "dirty" merely because a time stamp has changed.
--git status > /dev/null 2>&1
-+if test -d .git
-+then
-+ # Don't declare a version "dirty" merely because a time stamp has changed.
-+ git status > /dev/null 2>&1
-
--dirty=`sh -c 'git diff-index --name-only HEAD' 2>/dev/null` || dirty=
--case "$dirty" in
-- '') ;;
-- *) # Append the suffix only if there isn't one already.
-- case $v in
-- *-dirty) ;;
-- *) v="$v-dirty" ;;
-- esac ;;
--esac
-+ dirty=`sh -c 'git diff-index --name-only HEAD' 2>/dev/null` || dirty=
-+ case "$dirty" in
-+ '') ;;
-+ *) # Append the suffix only if there isn't one already.
-+ case $v in
-+ *-dirty) ;;
-+ *) v="$v-dirty" ;;
-+ esac ;;
-+ esac
-+fi
-
- # Omit the trailing newline, so that m4_esyscmd can use the result directly.
- echo "$v" | tr -d '\012'
---
-1.7.8.4
-
diff --git a/meta/recipes-devtools/vala/vala_0.46.6.bb b/meta/recipes-devtools/vala/vala_0.46.6.bb
deleted file mode 100644
index 66f620384c..0000000000
--- a/meta/recipes-devtools/vala/vala_0.46.6.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require ${BPN}.inc
-
-SRC_URI += "file://0001-git-version-gen-don-t-append-dirty-if-we-re-not-in-g.patch \
- file://0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch \
- "
-
-SRC_URI[md5sum] = "d9af125648505503b139ebc2d2c9eee5"
-SRC_URI[sha256sum] = "ef31649932872f094971d46453b21c60a41661670f98afa334062425b4aec47a"
diff --git a/meta/recipes-devtools/vala/vala_0.48.9.bb b/meta/recipes-devtools/vala/vala_0.48.9.bb
new file mode 100644
index 0000000000..09bfcd6474
--- /dev/null
+++ b/meta/recipes-devtools/vala/vala_0.48.9.bb
@@ -0,0 +1,5 @@
+require ${BPN}.inc
+
+SRC_URI += " file://0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch"
+
+SRC_URI[sha256sum] = "9cea16d3bb3daddbfe0556b99fbfa08146230db7651e1e674cd08b4df5cefea9"
diff --git a/meta/recipes-devtools/valgrind/valgrind/0001-memcheck-tests-Fix-timerfd-syscall-test.patch b/meta/recipes-devtools/valgrind/valgrind/0001-memcheck-tests-Fix-timerfd-syscall-test.patch
new file mode 100644
index 0000000000..15fbbe954f
--- /dev/null
+++ b/meta/recipes-devtools/valgrind/valgrind/0001-memcheck-tests-Fix-timerfd-syscall-test.patch
@@ -0,0 +1,98 @@
+From 5d411fd147d652e9d7bb259f4048693c6e4742aa Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 9 Mar 2020 16:30:19 -0700
+Subject: [PATCH] memcheck/tests: Fix timerfd syscall test
+
+modern libc provides these functions, moreover this also ensures that we
+are 64bit time_t safe. Fallback to existing definitions if libc does not
+have the implementation or syscall is not defined
+
+Upstream-Status: Submitted [https://sourceforge.net/p/valgrind/mailman/message/36943897/]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ config.h.in | 9 +++++++++
+ configure.ac | 3 +++
+ memcheck/tests/linux/timerfd-syscall.c | 10 ++++++++--
+ 5 files changed, 32 insertions(+), 2 deletions(-)
+
+--- a/config.h.in
++++ b/config.h.in
+@@ -301,6 +301,9 @@
+ /* Define to 1 if you have the <sys/sysnvl.h> header file. */
+ #undef HAVE_SYS_SYSNVL_H
+
++/* Define to 1 if you have the <sys/timerfd.h> header file. */
++#undef HAVE_SYS_TIMERFD_H
++
+ /* Define to 1 if you have the <sys/time.h> header file. */
+ #undef HAVE_SYS_TIME_H
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -4098,6 +4098,7 @@ AC_CHECK_HEADERS([ \
+ sys/syscall.h \
+ sys/sysnvl.h \
+ sys/time.h \
++ sys/timerfd.h \
+ sys/types.h \
+ ])
+
+--- a/memcheck/tests/linux/timerfd-syscall.c
++++ b/memcheck/tests/linux/timerfd-syscall.c
+@@ -45,6 +45,9 @@
+ #if defined(HAVE_SYS_TIME_H)
+ #include <sys/time.h>
+ #endif
++#if defined(HAVE_SYS_TIMERFD_H)
++#include <sys/timerfd.h>
++#endif
+ #if defined(HAVE_SYS_TYPES_H)
+ #include <sys/types.h>
+ #endif
+@@ -54,7 +57,8 @@
+ * timerfd_* system call numbers introduced in 2.6.23. These constants are
+ * not yet in the glibc 2.7 headers, that is why they are defined here.
+ */
+-#ifndef __NR_timerfd_create
++#if !defined(HAVE_SYS_TIMERFD_H)
++#if !defined(__NR_timerfd_create)
+ #if defined(__x86_64__)
+ #define __NR_timerfd_create 283
+ #elif defined(__i386__)
+@@ -67,8 +71,10 @@
+ #error Cannot detect your architecture!
+ #endif
+ #endif
++#endif
+
+-#ifndef __NR_timerfd_settime
++#if !defined(HAVE_SYS_TIMERFD_H)
++#if !defined(__NR_timerfd_settime)
+ #if defined(__x86_64__)
+ #define __NR_timerfd_settime 286
+ #define __NR_timerfd_gettime 287
+@@ -85,7 +91,7 @@
+ #error Cannot detect your architecture!
+ #endif
+ #endif
+-
++#endif
+
+
+ /* Definitions from include/linux/timerfd.h */
+@@ -127,6 +133,7 @@ void set_timespec(struct timespec *tmr,
+ tmr->tv_nsec = (long) (1000ULL * (ustime % 1000000ULL));
+ }
+
++#if !defined(HAVE_SYS_TIMERFD_H)
+ int timerfd_create(int clockid, int flags)
+ {
+ return syscall(__NR_timerfd_create, clockid, flags);
+@@ -142,6 +149,7 @@ int timerfd_gettime(int ufc, struct itim
+ {
+ return syscall(__NR_timerfd_gettime, ufc, otmr);
+ }
++#endif
+
+ long waittmr(int tfd, int timeo)
+ {
diff --git a/meta/recipes-devtools/valgrind/valgrind/0001-adjust-path-filter-for-2-memcheck-tests.patch b/meta/recipes-devtools/valgrind/valgrind/0001-memcheck-vgtests-remove-fullpath-after-flags.patch
index 4bc4bb086c..dce8b52ba3 100644
--- a/meta/recipes-devtools/valgrind/valgrind/0001-adjust-path-filter-for-2-memcheck-tests.patch
+++ b/meta/recipes-devtools/valgrind/valgrind/0001-memcheck-vgtests-remove-fullpath-after-flags.patch
@@ -1,40 +1,42 @@
-From bf63e35c3036e6040c8cfecabc7160b1f36b0591 Mon Sep 17 00:00:00 2001
-From: Randy MacLeod <Randy.MacLeod@windriver.com>
-Date: Wed, 28 Aug 2019 12:31:15 -0400
-Subject: [PATCH] adjust path filter for 2 memcheck tests
+From 3ff82dcb844f98dbf67c69f11f6516bc234725a9 Mon Sep 17 00:00:00 2001
+From: Stacy Gaikovaia <Stacy.Gaikovaia@windriver.com>
+Date: Wed, 16 Sep 2020 13:45:07 -0400
+Subject: [PATCH] memcheck vgtests remove fullpath-after flags
Test executables produced when cross-compiling can contain
-relative paths such as:
- coregrind/tests/../../../valgrind-3.15.0/coregrind/
-Use the --fullpath-after option to match and therefore
-suppress more of the prefix to enable test to pass.
+relative paths containing version number, such as:
+ coregrind/tests/../../../valgrind-3.16.1/coregrind
+
+Remove the --fullpath-after option so yocto project doesn't
+have to upgrade patch every valgrind uprev. Upgrade test stderr
+paths in corresponding tests .bb script.
Upstream-Status: Inappropriate [embedded specific]
-Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
+Signed-off-by: Stacy Gaikovaia <Stacy.Gaikovaia@windriver.com>
---
memcheck/tests/badfree3.vgtest | 2 +-
memcheck/tests/varinfo5.vgtest | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/memcheck/tests/badfree3.vgtest b/memcheck/tests/badfree3.vgtest
-index 3dfc5fd8a..57eec21f3 100644
+index 3dfc5fd8a..4ee03f00a 100644
--- a/memcheck/tests/badfree3.vgtest
+++ b/memcheck/tests/badfree3.vgtest
@@ -1,3 +1,3 @@
prog: badfree
-vgopts: -q --fullpath-after=memcheck/ --fullpath-after=coregrind/
-+vgopts: -q --fullpath-after=/valgrind-3.15.0/memcheck/ --fullpath-after=/valgrind-3.15.0/coregrind/
++vgopts: -q
stderr_filter_args: badfree.c
diff --git a/memcheck/tests/varinfo5.vgtest b/memcheck/tests/varinfo5.vgtest
-index 063d00dce..6907bb2f6 100644
+index 063d00dce..79c4a72a4 100644
--- a/memcheck/tests/varinfo5.vgtest
+++ b/memcheck/tests/varinfo5.vgtest
@@ -1,3 +1,3 @@
prog: varinfo5
-vgopts: --fullpath-after=memcheck/ --fullpath-after=coregrind/ --read-var-info=yes --read-inline-info=yes -q
-+vgopts: --fullpath-after=/valgrind-3.15.0/memcheck/ --fullpath-after=/valgrind-3.15.0/coregrind/ --read-var-info=yes --read-inline-info=yes -q
++vgopts: --read-var-info=yes --read-inline-info=yes -q
stderr_filter: filter_varinfo3
--
-2.22.0
+2.25.1
diff --git a/meta/recipes-devtools/valgrind/valgrind/0001-tests-Make-pthread_detatch-call-portable-across-plat.patch b/meta/recipes-devtools/valgrind/valgrind/0001-tests-Make-pthread_detatch-call-portable-across-plat.patch
deleted file mode 100644
index f407d8191b..0000000000
--- a/meta/recipes-devtools/valgrind/valgrind/0001-tests-Make-pthread_detatch-call-portable-across-plat.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From 92fcf75d6d3903e45492b041bf4ad07787d2e58a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 27 Jan 2020 19:50:04 -0800
-Subject: [PATCH] drd/tests/pth_detached3: Make pthread_detach() call portable
- across platforms
-
-pthread_t is opaque type therefore we can not apply simple arithmetic to
-variables of pthread_t type this test needs to pass a invalid pthread_t
-handle, typcasting to uintptr_t works too and is portable across glibc and
-musl
-
-Fixes
-| pth_detached3.c:24:25: error: invalid use of undefined type 'struct __pthread'
-| 24 | pthread_detach(thread + 8);
-| | ^
-
-[ bvanassche: reformatted patch description and fixed up line numbers ]
-
-Upstream-Status: Backport [https://sourceware.org/git/?p=valgrind.git;a=commit;h=92fcf75d6d3903e45492b041bf4ad07787d2e58a]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- drd/tests/pth_detached3.c | 3 ++-
- drd/tests/pth_detached3.stderr.exp1 | 4 ++--
- drd/tests/pth_detached3.stderr.exp2 | 4 ++--
- 3 files changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/drd/tests/pth_detached3.c b/drd/tests/pth_detached3.c
-index c02eef1..efeb15b 100644
---- a/drd/tests/pth_detached3.c
-+++ b/drd/tests/pth_detached3.c
-@@ -4,6 +4,7 @@
- #include <errno.h>
- #include <pthread.h>
- #include <stdio.h>
-+#include <stdint.h>
-
- static void* thread_func(void* arg)
- {
-@@ -21,7 +22,7 @@ int main(int argc, char** argv)
- pthread_detach(thread);
-
- /* Invoke pthread_detach() with an invalid thread ID. */
-- pthread_detach(thread + 8);
-+ pthread_detach((pthread_t)((uintptr_t)thread + 8));
-
- fprintf(stderr, "Finished.\n");
-
-diff --git a/drd/tests/pth_detached3.stderr.exp1 b/drd/tests/pth_detached3.stderr.exp1
-index 58412ec..8dd58ba 100644
---- a/drd/tests/pth_detached3.stderr.exp1
-+++ b/drd/tests/pth_detached3.stderr.exp1
-@@ -1,11 +1,11 @@
-
- pthread_detach(): invalid thread ID 0x........
- at 0x........: pthread_detach (drd_pthread_intercepts.c:?)
-- by 0x........: main (pth_detached3.c:21)
-+ by 0x........: main (pth_detached3.c:22)
-
- pthread_detach(): invalid thread ID 0x........
- at 0x........: pthread_detach (drd_pthread_intercepts.c:?)
-- by 0x........: main (pth_detached3.c:24)
-+ by 0x........: main (pth_detached3.c:25)
-
- Finished.
-
-diff --git a/drd/tests/pth_detached3.stderr.exp2 b/drd/tests/pth_detached3.stderr.exp2
-index bdc5cf8..e82dee1 100644
---- a/drd/tests/pth_detached3.stderr.exp2
-+++ b/drd/tests/pth_detached3.stderr.exp2
-@@ -2,12 +2,12 @@
- pthread_detach(): invalid thread ID 0x........
- at 0x........: vgDrd_set_joinable (drd_pthread_intercepts.c:?)
- by 0x........: pthread_detach (drd_pthread_intercepts.c:?)
-- by 0x........: main (pth_detached3.c:21)
-+ by 0x........: main (pth_detached3.c:22)
-
- pthread_detach(): invalid thread ID 0x........
- at 0x........: vgDrd_set_joinable (drd_pthread_intercepts.c:?)
- by 0x........: pthread_detach (drd_pthread_intercepts.c:?)
-- by 0x........: main (pth_detached3.c:24)
-+ by 0x........: main (pth_detached3.c:25)
-
- Finished.
-
---
-2.9.3
-
diff --git a/meta/recipes-devtools/valgrind/valgrind/0004-Fix-out-of-tree-builds.patch b/meta/recipes-devtools/valgrind/valgrind/0004-Fix-out-of-tree-builds.patch
index 75bb0aa7cb..4570f63995 100644
--- a/meta/recipes-devtools/valgrind/valgrind/0004-Fix-out-of-tree-builds.patch
+++ b/meta/recipes-devtools/valgrind/valgrind/0004-Fix-out-of-tree-builds.patch
@@ -4,7 +4,8 @@ Date: Tue, 16 Oct 2018 21:01:04 -0400
Subject: [PATCH] Fix out of tree builds.
The paths to these files need to be fully specified in
-the out of tree build case. glibc-2.X.supp is a generated file so the full path
+the out of tree build case. glibc-2.X.supp is a generated file so the
+full path
is deliberately not specified in that case.
RP 2013/03/23
@@ -16,81 +17,81 @@ Upstream-Status: Pending
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
---
- configure.ac | 68 ++++++++++++++++++++++++++--------------------------
- 1 file changed, 34 insertions(+), 34 deletions(-)
+ configure.ac | 66 ++++++++++++++++++++++++++--------------------------
+ 1 file changed, 33 insertions(+), 33 deletions(-)
diff --git a/configure.ac b/configure.ac
-index c18ae5f2a..99667ce57 100644
+index 524230d..54861c5 100755
--- a/configure.ac
+++ b/configure.ac
-@@ -392,50 +392,50 @@ case "${host_os}" in
+@@ -396,50 +396,50 @@ case "${host_os}" in
9.*)
AC_MSG_RESULT([Darwin 9.x (${kernel}) / Mac OS X 10.5 Leopard])
AC_DEFINE([DARWIN_VERS], DARWIN_10_5, [Darwin / Mac OS X version])
- DEFAULT_SUPP="darwin9.supp ${DEFAULT_SUPP}"
- DEFAULT_SUPP="darwin9-drd.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/darwin9.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/darwin9-drd.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/darwin9.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/darwin9-drd.supp ${DEFAULT_SUPP}"
;;
10.*)
AC_MSG_RESULT([Darwin 10.x (${kernel}) / Mac OS X 10.6 Snow Leopard])
AC_DEFINE([DARWIN_VERS], DARWIN_10_6, [Darwin / Mac OS X version])
- DEFAULT_SUPP="darwin10.supp ${DEFAULT_SUPP}"
- DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/darwin10.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/darwin10.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
;;
11.*)
AC_MSG_RESULT([Darwin 11.x (${kernel}) / Mac OS X 10.7 Lion])
AC_DEFINE([DARWIN_VERS], DARWIN_10_7, [Darwin / Mac OS X version])
- DEFAULT_SUPP="darwin11.supp ${DEFAULT_SUPP}"
- DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/darwin11.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/darwin11.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
;;
12.*)
AC_MSG_RESULT([Darwin 12.x (${kernel}) / Mac OS X 10.8 Mountain Lion])
AC_DEFINE([DARWIN_VERS], DARWIN_10_8, [Darwin / Mac OS X version])
- DEFAULT_SUPP="darwin12.supp ${DEFAULT_SUPP}"
- DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/darwin12.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/darwin12.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
;;
13.*)
AC_MSG_RESULT([Darwin 13.x (${kernel}) / Mac OS X 10.9 Mavericks])
AC_DEFINE([DARWIN_VERS], DARWIN_10_9, [Darwin / Mac OS X version])
- DEFAULT_SUPP="darwin13.supp ${DEFAULT_SUPP}"
- DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/darwin13.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/darwin13.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
;;
14.*)
AC_MSG_RESULT([Darwin 14.x (${kernel}) / Mac OS X 10.10 Yosemite])
AC_DEFINE([DARWIN_VERS], DARWIN_10_10, [Darwin / Mac OS X version])
- DEFAULT_SUPP="darwin14.supp ${DEFAULT_SUPP}"
- DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/darwin14.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/darwin14.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
;;
15.*)
AC_MSG_RESULT([Darwin 15.x (${kernel}) / Mac OS X 10.11 El Capitan])
AC_DEFINE([DARWIN_VERS], DARWIN_10_11, [Darwin / Mac OS X version])
- DEFAULT_SUPP="darwin15.supp ${DEFAULT_SUPP}"
- DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/darwin15.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/darwin15.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
;;
16.*)
AC_MSG_RESULT([Darwin 16.x (${kernel}) / macOS 10.12 Sierra])
AC_DEFINE([DARWIN_VERS], DARWIN_10_12, [Darwin / Mac OS X version])
- DEFAULT_SUPP="darwin16.supp ${DEFAULT_SUPP}"
- DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/darwin16.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/darwin16.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
;;
17.*)
AC_MSG_RESULT([Darwin 17.x (${kernel}) / macOS 10.13 High Sierra])
-@@ -460,7 +460,7 @@ case "${host_os}" in
+@@ -464,7 +464,7 @@ case "${host_os}" in
DEFAULT_SUPP="solaris12.supp ${DEFAULT_SUPP}"
;;
*)
@@ -99,7 +100,7 @@ index c18ae5f2a..99667ce57 100644
;;
esac
;;
-@@ -468,7 +468,7 @@ case "${host_os}" in
+@@ -472,7 +472,7 @@ case "${host_os}" in
solaris2.12*)
AC_MSG_RESULT([ok (${host_os})])
VGCONF_OS="solaris"
@@ -108,33 +109,33 @@ index c18ae5f2a..99667ce57 100644
;;
*)
-@@ -1051,29 +1051,29 @@ AC_MSG_CHECKING([the glibc version])
+@@ -1095,29 +1095,29 @@ AC_MSG_CHECKING([the glibc version])
case "${GLIBC_VERSION}" in
2.2)
AC_MSG_RESULT(${GLIBC_VERSION} family)
- DEFAULT_SUPP="glibc-2.2.supp ${DEFAULT_SUPP}"
- DEFAULT_SUPP="glibc-2.2-LinuxThreads-helgrind.supp ${DEFAULT_SUPP}"
- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/glibc-2.2.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/glibc-2.2-LinuxThreads-helgrind.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/glibc-2.2.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/glibc-2.2-LinuxThreads-helgrind.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
;;
2.[[3-6]])
AC_MSG_RESULT(${GLIBC_VERSION} family)
- DEFAULT_SUPP="glibc-${GLIBC_VERSION}.supp ${DEFAULT_SUPP}"
- DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/glibc-${GLIBC_VERSION}.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/glibc-${GLIBC_VERSION}.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
;;
2.[[7-9]])
AC_MSG_RESULT(${GLIBC_VERSION} family)
DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
- DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
;;
2.10|2.11)
AC_MSG_RESULT(${GLIBC_VERSION} family)
@@ -143,23 +144,23 @@ index c18ae5f2a..99667ce57 100644
DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
- DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
;;
2.*)
AC_MSG_RESULT(${GLIBC_VERSION} family)
-@@ -1082,8 +1082,8 @@ case "${GLIBC_VERSION}" in
+@@ -1126,8 +1126,8 @@ case "${GLIBC_VERSION}" in
AC_DEFINE([GLIBC_MANDATORY_INDEX_AND_STRLEN_REDIRECT], 1,
[Define to 1 if index() and strlen() have been optimized heavily (x86 glibc >= 2.12)])
DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
- DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
- DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
;;
darwin)
AC_MSG_RESULT(Darwin)
-@@ -1093,7 +1093,7 @@ case "${GLIBC_VERSION}" in
+@@ -1137,7 +1137,7 @@ case "${GLIBC_VERSION}" in
bionic)
AC_MSG_RESULT(Bionic)
AC_DEFINE([BIONIC_LIBC], 1, [Define to 1 if you're using Bionic])
@@ -168,7 +169,7 @@ index c18ae5f2a..99667ce57 100644
;;
solaris)
AC_MSG_RESULT(Solaris)
-@@ -1120,11 +1120,11 @@ if test "$VGCONF_OS" != "solaris"; then
+@@ -1164,8 +1164,8 @@ if test "$VGCONF_OS" != "solaris"; then
# attempt to detect whether such libraries are installed on the
# build machine (or even if any X facilities are present); just
# add the suppressions antidisirregardless.
@@ -176,13 +177,9 @@ index c18ae5f2a..99667ce57 100644
- DEFAULT_SUPP="xfree-3.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="$srcdir/xfree-4.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="$srcdir/xfree-3.supp ${DEFAULT_SUPP}"
-
- # Add glibc and X11 suppressions for exp-sgcheck
-- DEFAULT_SUPP="exp-sgcheck.supp ${DEFAULT_SUPP}"
-+ DEFAULT_SUPP="$srcdir/exp-sgcheck.supp ${DEFAULT_SUPP}"
fi
--
-2.17.0
+2.17.1
diff --git a/meta/recipes-devtools/valgrind/valgrind/0004-pth_atfork1.c-Define-error-API-for-musl.patch b/meta/recipes-devtools/valgrind/valgrind/0004-pth_atfork1.c-Define-error-API-for-musl.patch
deleted file mode 100644
index 1cb7062545..0000000000
--- a/meta/recipes-devtools/valgrind/valgrind/0004-pth_atfork1.c-Define-error-API-for-musl.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From fb77fef4f866dac7bcc6d1ae025da60564869f84 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 10 Jun 2017 01:06:11 -0700
-Subject: [PATCH 4/6] pth_atfork1.c: Define error() API for musl
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- none/tests/pth_atfork1.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/none/tests/pth_atfork1.c b/none/tests/pth_atfork1.c
-index 34201ef..b7f5f2d 100644
---- a/none/tests/pth_atfork1.c
-+++ b/none/tests/pth_atfork1.c
-@@ -18,7 +18,7 @@
- Boston, MA 02111-1307, USA. */
-
- #include <errno.h>
--#if !defined(__APPLE__) && !defined(__sun)
-+#if !defined(__APPLE__) && !defined(__sun) && defined(__GLIBC__)
- # include <error.h>
- #endif
- #include <stdlib.h>
-@@ -27,7 +27,7 @@
- #include <sys/wait.h>
- #include <stdio.h>
-
--#if defined(__APPLE__) || defined(__sun)
-+#if defined(__APPLE__) || defined(__sun) || (defined(__linux__) && !defined(__GLIBC__))
- #include <string.h> /* strerror */
- static void error (int status, int errnum, char* msg)
- {
---
-2.13.1
-
diff --git a/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb b/meta/recipes-devtools/valgrind/valgrind_3.16.1.bb
index 1475ff841e..d4ca1a7752 100644
--- a/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb
+++ b/meta/recipes-devtools/valgrind/valgrind_3.16.1.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://valgrind.org/"
BUGTRACKER = "http://valgrind.org/support/bug_reports.html"
LICENSE = "GPLv2 & GPLv2+ & BSD"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://include/pub_tool_basics.h;beginline=6;endline=29;md5=d4de0407239381463cf01dd276d7c22e \
+ file://include/pub_tool_basics.h;beginline=6;endline=29;md5=41c410e8d3f305aee7aaa666b2e4f366 \
file://include/valgrind.h;beginline=1;endline=56;md5=ad3b317f3286b6b704575d9efe6ca5df \
file://COPYING.DOCS;md5=24ea4c7092233849b4394699333b5c56"
@@ -27,7 +27,6 @@ SRC_URI = "https://sourceware.org/pub/valgrind/valgrind-${PV}.tar.bz2 \
file://0001-sigqueue-Rename-_sifields-to-__si_fields-on-musl.patch \
file://0002-context-APIs-are-not-available-on-musl.patch \
file://0003-correct-include-directive-path-for-config.h.patch \
- file://0004-pth_atfork1.c-Define-error-API-for-musl.patch \
file://0005-tc20_verifywrap.c-Fake-__GLIBC_PREREQ-with-musl.patch \
file://0001-memcheck-arm64-Define-__THROW-if-not-already-defined.patch \
file://0002-memcheck-x86-Define-__THROW-if-not-defined.patch \
@@ -37,22 +36,36 @@ SRC_URI = "https://sourceware.org/pub/valgrind/valgrind-${PV}.tar.bz2 \
file://0001-Make-local-functions-static-to-avoid-assembler-error.patch \
file://0001-Return-a-valid-exit_code-from-vg_regtest.patch \
file://0001-valgrind-filter_xml_frames-do-not-filter-usr.patch \
- file://0001-adjust-path-filter-for-2-memcheck-tests.patch \
+ file://0001-memcheck-vgtests-remove-fullpath-after-flags.patch \
file://s390x_vec_op_t.patch \
file://0001-none-tests-fdleak_cmsg.stderr.exp-adjust-tmp-paths.patch \
- file://0001-tests-Make-pthread_detatch-call-portable-across-plat.patch \
+ file://0001-memcheck-tests-Fix-timerfd-syscall-test.patch \
"
-SRC_URI[md5sum] = "46e5fbdcbc3502a5976a317a0860a975"
-SRC_URI[sha256sum] = "417c7a9da8f60dd05698b3a7bc6002e4ef996f14c13f0ff96679a16873e78ab1"
+SRC_URI[md5sum] = "d1b153f1ab17cf1f311705e7a83ef589"
+SRC_URI[sha256sum] = "c91f3a2f7b02db0f3bc99479861656154d241d2fdb265614ba918cc6720a33ca"
UPSTREAM_CHECK_REGEX = "valgrind-(?P<pver>\d+(\.\d+)+)\.tar"
COMPATIBLE_HOST = '(i.86|x86_64|arm|aarch64|mips|powerpc|powerpc64).*-linux'
+# patch 0001-memcheck-vgtests-remove-fullpath-after-flags.patch removes relative path
+# argument. Change expected stderr files accordingly.
+do_patch_append() {
+ bb.build.exec_func('do_sed_paths', d)
+}
+
+do_sed_paths() {
+ sed -i -e 's|tests/||' ${S}/memcheck/tests/badfree3.stderr.exp
+ sed -i -e 's|tests/||' ${S}/memcheck/tests/varinfo5.stderr.exp
+}
+
# valgrind supports armv7 and above
COMPATIBLE_HOST_armv4 = 'null'
COMPATIBLE_HOST_armv5 = 'null'
COMPATIBLE_HOST_armv6 = 'null'
+# valgrind fails with powerpc soft-float
+COMPATIBLE_HOST_powerpc = "${@bb.utils.contains('TARGET_FPU', 'soft', 'null', '.*-linux', d)}"
+
# X32 isn't supported by valgrind at this time
COMPATIBLE_HOST_linux-gnux32 = 'null'
COMPATIBLE_HOST_linux-muslx32 = 'null'
@@ -116,7 +129,8 @@ RRECOMMENDS_${PN} += "${TCLIBC}-dbg"
RDEPENDS_${PN}-ptest += " bash coreutils file \
gdb libgomp \
perl \
- perl-module-getopt-long perl-module-file-basename perl-module-file-glob \
+ perl-module-file-basename perl-module-file-glob perl-module-getopt-long \
+ perl-module-overloading \
procps sed ${PN}-dbg ${PN}-src"
RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils"
diff --git a/meta/recipes-extended/acpica/acpica_20191213.bb b/meta/recipes-extended/acpica/acpica_20200717.bb
index 6b1412eafb..d1d06c0c24 100644
--- a/meta/recipes-extended/acpica/acpica_20191213.bb
+++ b/meta/recipes-extended/acpica/acpica_20200717.bb
@@ -10,15 +10,15 @@ HOMEPAGE = "http://www.acpica.org/"
SECTION = "console/tools"
LICENSE = "Intel | BSD | GPLv2"
-LIC_FILES_CHKSUM = "file://source/compiler/aslcompile.c;beginline=7;endline=150;md5=b5690d9ef8d54b2b1e1cc98aad64cd87"
+LIC_FILES_CHKSUM = "file://source/compiler/aslcompile.c;beginline=7;endline=150;md5=6adbcb81e9ee6ae50c569b94fe12f7c5"
COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
DEPENDS = "m4-native flex-native bison-native"
SRC_URI = "https://acpica.org/sites/acpica/files/acpica-unix-${PV}.tar.gz"
-SRC_URI[md5sum] = "0f0eb38e796fac24c2aa4d9b6adcd950"
-SRC_URI[sha256sum] = "304930df9836d3d4cdbf67a3ae6bd96dbc65f62602d869f571f4b6a12341e6c6"
+SRC_URI[sha256sum] = "cb99903ef240732f395af40c23b9b19c7899033f48840743544eebb6da72a828"
+
UPSTREAM_CHECK_URI = "https://acpica.org/downloads"
S = "${WORKDIR}/acpica-unix-${PV}"
diff --git a/meta/recipes-extended/asciidoc/asciidoc_8.6.9.bb b/meta/recipes-extended/asciidoc/asciidoc_9.0.2.bb
index 751bf0f19f..711bfbfb9b 100644
--- a/meta/recipes-extended/asciidoc/asciidoc_8.6.9.bb
+++ b/meta/recipes-extended/asciidoc/asciidoc_9.0.2.bb
@@ -5,13 +5,12 @@ articles, books and UNIX man pages."
HOMEPAGE = "http://asciidoc.org/"
LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \
- file://COPYRIGHT;md5=029ad5428ba5efa20176b396222d4069"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=4e5d1baf6f20559e3bec172226a47e4e \
+ file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263 "
SRC_URI = "git://github.com/asciidoc/asciidoc-py3;protocol=https \
file://auto-catalogs.patch"
-SRCREV = "618f6e6f6b558ed1e5f2588cd60a5a6b4f881ca0"
-PV .= "+py3-git${SRCPV}"
+SRCREV = "9a407dc9a497364c91421fd961954eddb565baf1"
DEPENDS = "libxml2-native libxslt-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
diff --git a/meta/recipes-extended/bash/bash/bash-CVE-2019-18276.patch b/meta/recipes-extended/bash/bash/bash-CVE-2019-18276.patch
new file mode 100644
index 0000000000..7b2073201e
--- /dev/null
+++ b/meta/recipes-extended/bash/bash/bash-CVE-2019-18276.patch
@@ -0,0 +1,386 @@
+From 951bdaad7a18cc0dc1036bba86b18b90874d39ff Mon Sep 17 00:00:00 2001
+From: Chet Ramey <chet.ramey@case.edu>
+Date: Mon, 1 Jul 2019 09:03:53 -0400
+Subject: [PATCH] commit bash-20190628 snapshot
+
+An issue was discovered in disable_priv_mode in shell.c in GNU Bash through 5.0 patch 11.
+By default, if Bash is run with its effective UID not equal to its real UID,
+it will drop privileges by setting its effective UID to its real UID.
+However, it does so incorrectly. On Linux and other systems that support "saved UID" functionality,
+the saved UID is not dropped. An attacker with command execution in the shell can use "enable -f" for
+runtime loading of a new builtin, which can be a shared object that calls setuid() and therefore
+regains privileges. However, binaries running with an effective UID of 0 are unaffected.
+
+Get the patch from [1] to fix the issue.
+
+Upstream-Status: Inappropriate [the upstream thinks it doesn't increase the credibility of CVEs in general]
+CVE: CVE-2019-18276
+
+[1] https://git.savannah.gnu.org/cgit/bash.git/commit/?h=devel&id=951bdaa
+
+Signed-off-by: De Huo <De.Huo@windriver.com>
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ MANIFEST | 2 ++
+ bashline.c | 50 +-------------------------------------------------
+ builtins/help.def | 2 +-
+ config.h.in | 10 +++++++++-
+ configure.ac | 1 +
+ doc/bash.1 | 3 ++-
+ doc/bashref.texi | 3 ++-
+ lib/glob/glob.c | 5 ++++-
+ pathexp.c | 16 ++++++++++++++--
+ shell.c | 8 ++++++++
+ tests/glob.tests | 2 ++
+ tests/glob6.sub | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ tests/glob7.sub | 11 +++++++++++
+ 14 files changed, 122 insertions(+), 56 deletions(-)
+ create mode 100644 tests/glob6.sub
+ create mode 100644 tests/glob7.sub
+
+diff --git a/MANIFEST b/MANIFEST
+index 03de221..f9ccad7 100644
+--- a/MANIFEST
++++ b/MANIFEST
+@@ -1037,6 +1037,8 @@ tests/extglob3.tests f
+ tests/extglob3.right f
+ tests/extglob4.sub f
+ tests/extglob5.sub f
++tests/glob6.sub f
++tests/glob7.sub f
+ tests/func.tests f
+ tests/func.right f
+ tests/func1.sub f
+diff --git a/bashline.c b/bashline.c
+index 824ea9d..d86b47d 100644
+--- a/bashline.c
++++ b/bashline.c
+@@ -3718,55 +3718,7 @@ static int
+ completion_glob_pattern (string)
+ char *string;
+ {
+- register int c;
+- char *send;
+- int open;
+-
+- DECLARE_MBSTATE;
+-
+- open = 0;
+- send = string + strlen (string);
+-
+- while (c = *string++)
+- {
+- switch (c)
+- {
+- case '?':
+- case '*':
+- return (1);
+-
+- case '[':
+- open++;
+- continue;
+-
+- case ']':
+- if (open)
+- return (1);
+- continue;
+-
+- case '+':
+- case '@':
+- case '!':
+- if (*string == '(') /*)*/
+- return (1);
+- continue;
+-
+- case '\\':
+- if (*string++ == 0)
+- return (0);
+- }
+-
+- /* Advance one fewer byte than an entire multibyte character to
+- account for the auto-increment in the loop above. */
+-#ifdef HANDLE_MULTIBYTE
+- string--;
+- ADVANCE_CHAR_P (string, send - string);
+- string++;
+-#else
+- ADVANCE_CHAR_P (string, send - string);
+-#endif
+- }
+- return (0);
++ return (glob_pattern_p (string) == 1);
+ }
+
+ static char *globtext;
+diff --git a/builtins/help.def b/builtins/help.def
+index 006c4b5..92f9b38 100644
+--- a/builtins/help.def
++++ b/builtins/help.def
+@@ -128,7 +128,7 @@ help_builtin (list)
+
+ /* We should consider making `help bash' do something. */
+
+- if (glob_pattern_p (list->word->word))
++ if (glob_pattern_p (list->word->word) == 1)
+ {
+ printf ("%s", ngettext ("Shell commands matching keyword `", "Shell commands matching keywords `", (list->next ? 2 : 1)));
+ print_word_list (list, ", ");
+diff --git a/config.h.in b/config.h.in
+index 8554aec..ad4b1e8 100644
+--- a/config.h.in
++++ b/config.h.in
+@@ -1,6 +1,6 @@
+ /* config.h -- Configuration file for bash. */
+
+-/* Copyright (C) 1987-2009,2011-2012 Free Software Foundation, Inc.
++/* Copyright (C) 1987-2009,2011-2012,2013-2019 Free Software Foundation, Inc.
+
+ This file is part of GNU Bash, the Bourne Again SHell.
+
+@@ -807,6 +807,14 @@
+ #undef HAVE_SETREGID
+ #undef HAVE_DECL_SETREGID
+
++/* Define if you have the setregid function. */
++#undef HAVE_SETRESGID
++#undef HAVE_DECL_SETRESGID
++
++/* Define if you have the setresuid function. */
++#undef HAVE_SETRESUID
++#undef HAVE_DECL_SETRESUID
++
+ /* Define if you have the setvbuf function. */
+ #undef HAVE_SETVBUF
+
+diff --git a/configure.ac b/configure.ac
+index 52b4cdb..549adef 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -810,6 +810,7 @@ AC_CHECK_DECLS([confstr])
+ AC_CHECK_DECLS([printf])
+ AC_CHECK_DECLS([sbrk])
+ AC_CHECK_DECLS([setregid])
++AC_CHECK_DECLS[(setresuid, setresgid])
+ AC_CHECK_DECLS([strcpy])
+ AC_CHECK_DECLS([strsignal])
+
+diff --git a/doc/bash.1 b/doc/bash.1
+index e6cd08d..9e58a0b 100644
+--- a/doc/bash.1
++++ b/doc/bash.1
+@@ -4681,7 +4681,8 @@ above).
+ .PD
+ .SH "SIMPLE COMMAND EXPANSION"
+ When a simple command is executed, the shell performs the following
+-expansions, assignments, and redirections, from left to right.
++expansions, assignments, and redirections, from left to right, in
++the following order.
+ .IP 1.
+ The words that the parser has marked as variable assignments (those
+ preceding the command name) and redirections are saved for later
+diff --git a/doc/bashref.texi b/doc/bashref.texi
+index d33cd57..3065126 100644
+--- a/doc/bashref.texi
++++ b/doc/bashref.texi
+@@ -2964,7 +2964,8 @@ is not specified. If the file does not exist, it is created.
+ @cindex command expansion
+
+ When a simple command is executed, the shell performs the following
+-expansions, assignments, and redirections, from left to right.
++expansions, assignments, and redirections, from left to right, in
++the following order.
+
+ @enumerate
+ @item
+diff --git a/lib/glob/glob.c b/lib/glob/glob.c
+index 398253b..2eaa33e 100644
+--- a/lib/glob/glob.c
++++ b/lib/glob/glob.c
+@@ -607,6 +607,7 @@ glob_vector (pat, dir, flags)
+ register unsigned int i;
+ int mflags; /* Flags passed to strmatch (). */
+ int pflags; /* flags passed to sh_makepath () */
++ int hasglob; /* return value from glob_pattern_p */
+ int nalloca;
+ struct globval *firstmalloc, *tmplink;
+ char *convfn;
+@@ -648,10 +649,12 @@ glob_vector (pat, dir, flags)
+ patlen = (pat && *pat) ? strlen (pat) : 0;
+
+ /* If the filename pattern (PAT) does not contain any globbing characters,
++ or contains a pattern with only backslash escapes (hasglob == 2),
+ we can dispense with reading the directory, and just see if there is
+ a filename `DIR/PAT'. If there is, and we can access it, just make the
+ vector to return and bail immediately. */
+- if (skip == 0 && glob_pattern_p (pat) == 0)
++ hasglob = 0;
++ if (skip == 0 && (hasglob = glob_pattern_p (pat)) == 0 || hasglob == 2)
+ {
+ int dirlen;
+ struct stat finfo;
+diff --git a/pathexp.c b/pathexp.c
+index c1bf2d8..e6c5392 100644
+--- a/pathexp.c
++++ b/pathexp.c
+@@ -58,7 +58,10 @@ int extended_glob = EXTGLOB_DEFAULT;
+ /* Control enabling special handling of `**' */
+ int glob_star = 0;
+
+-/* Return nonzero if STRING has any unquoted special globbing chars in it. */
++/* Return nonzero if STRING has any unquoted special globbing chars in it.
++ This is supposed to be called when pathname expansion is performed, so
++ it implements the rules in Posix 2.13.3, specifically that an unquoted
++ slash cannot appear in a bracket expression. */
+ int
+ unquoted_glob_pattern_p (string)
+ register char *string;
+@@ -85,10 +88,14 @@ unquoted_glob_pattern_p (string)
+ continue;
+
+ case ']':
+- if (open)
++ if (open) /* XXX - if --open == 0? */
+ return (1);
+ continue;
+
++ case '/':
++ if (open)
++ open = 0;
++
+ case '+':
+ case '@':
+ case '!':
+@@ -106,6 +113,11 @@ unquoted_glob_pattern_p (string)
+ string++;
+ continue;
+ }
++ else if (open && *string == '/')
++ {
++ string++; /* quoted slashes in bracket expressions are ok */
++ continue;
++ }
+ else if (*string == 0)
+ return (0);
+
+diff --git a/shell.c b/shell.c
+index a2b2a55..6adabc8 100644
+--- a/shell.c
++++ b/shell.c
+@@ -1293,7 +1293,11 @@ disable_priv_mode ()
+ {
+ int e;
+
++#if HAVE_DECL_SETRESUID
++ if (setresuid (current_user.uid, current_user.uid, current_user.uid) < 0)
++#else
+ if (setuid (current_user.uid) < 0)
++#endif
+ {
+ e = errno;
+ sys_error (_("cannot set uid to %d: effective uid %d"), current_user.uid, current_user.euid);
+@@ -1302,7 +1306,11 @@ disable_priv_mode ()
+ exit (e);
+ #endif
+ }
++#if HAVE_DECL_SETRESGID
++ if (setresgid (current_user.gid, current_user.gid, current_user.gid) < 0)
++#else
+ if (setgid (current_user.gid) < 0)
++#endif
+ sys_error (_("cannot set gid to %d: effective gid %d"), current_user.gid, current_user.egid);
+
+ current_user.euid = current_user.uid;
+diff --git a/tests/glob.tests b/tests/glob.tests
+index 01913bb..fb012f7 100644
+--- a/tests/glob.tests
++++ b/tests/glob.tests
+@@ -12,6 +12,8 @@ ${THIS_SH} ./glob1.sub
+ ${THIS_SH} ./glob2.sub
+ ${THIS_SH} ./glob3.sub
+ ${THIS_SH} ./glob4.sub
++${THIS_SH} ./glob6.sub
++${THIS_SH} ./glob7.sub
+
+ MYDIR=$PWD # save where we are
+
+diff --git a/tests/glob6.sub b/tests/glob6.sub
+new file mode 100644
+index 0000000..b099811
+--- /dev/null
++++ b/tests/glob6.sub
+@@ -0,0 +1,54 @@
++# tests of the backslash-in-glob-patterns discussion on the austin-group ML
++
++: ${TMPDIR:=/var/tmp}
++
++ORIG=$PWD
++GLOBDIR=$TMPDIR/bash-glob-$$
++mkdir $GLOBDIR && cd $GLOBDIR
++
++# does the pattern matcher allow backslashes as escape characters and remove
++# them as part of matching?
++touch abcdefg
++pat='ab\cd*'
++printf '<%s>\n' $pat
++pat='\.'
++printf '<%s>\n' $pat
++rm abcdefg
++
++# how about when escaping pattern characters?
++touch '*abc.c'
++a='\**.c'
++printf '%s\n' $a
++rm -f '*abc.c'
++
++# how about when making the distinction between readable and searchable path
++# components?
++mkdir -m a=x searchable
++mkdir -m a=r readable
++
++p='searchable/\.'
++printf "%s\n" $p
++
++p='searchable/\./.'
++printf "%s\n" $p
++
++p='readable/\.'
++printf "%s\n" $p
++
++p='readable/\./.'
++printf "%s\n" $p
++
++printf "%s\n" 'searchable/\.'
++printf "%s\n" 'readable/\.'
++
++echo */.
++
++p='*/\.'
++echo $p
++
++echo */'.'
++
++rmdir searchable readable
++
++cd $ORIG
++rmdir $GLOBDIR
+diff --git a/tests/glob7.sub b/tests/glob7.sub
+new file mode 100644
+index 0000000..0212b8e
+--- /dev/null
++++ b/tests/glob7.sub
+@@ -0,0 +1,11 @@
++# according to Posix 2.13.3, a slash in a bracket expression renders that
++# bracket expression invalid
++shopt -s nullglob
++
++echo 1: [qwe/qwe]
++echo 2: [qwe/
++echo 3: [qwe/]
++
++echo 4: [qwe\/qwe]
++echo 5: [qwe\/
++echo 6: [qwe\/]
+--
+1.9.1
+
diff --git a/meta/recipes-extended/bash/bash_5.0.bb b/meta/recipes-extended/bash/bash_5.0.bb
index 8ff9e6edaf..257a03bd8b 100644
--- a/meta/recipes-extended/bash/bash_5.0.bb
+++ b/meta/recipes-extended/bash/bash_5.0.bb
@@ -21,6 +21,8 @@ SRC_URI = "${GNU_MIRROR}/bash/${BP}.tar.gz;name=tarball \
${GNU_MIRROR}/bash/bash-${PV}-patches/bash50-014;apply=yes;striplevel=0;name=patch014 \
${GNU_MIRROR}/bash/bash-${PV}-patches/bash50-015;apply=yes;striplevel=0;name=patch015 \
${GNU_MIRROR}/bash/bash-${PV}-patches/bash50-016;apply=yes;striplevel=0;name=patch016 \
+ ${GNU_MIRROR}/bash/bash-${PV}-patches/bash50-017;apply=yes;striplevel=0;name=patch017 \
+ ${GNU_MIRROR}/bash/bash-${PV}-patches/bash50-018;apply=yes;striplevel=0;name=patch018 \
file://execute_cmd.patch \
file://mkbuiltins_have_stringize.patch \
file://build-tests.patch \
@@ -28,6 +30,7 @@ SRC_URI = "${GNU_MIRROR}/bash/${BP}.tar.gz;name=tarball \
file://run-ptest \
file://run-bash-ptests \
file://fix-run-builtins.patch \
+ file://bash-CVE-2019-18276.patch \
"
SRC_URI[tarball.md5sum] = "2b44b47b905be16f45709648f671820b"
@@ -65,6 +68,11 @@ SRC_URI[patch015.md5sum] = "c4c6ea23d09a74eaa9385438e48fdf02"
SRC_URI[patch015.sha256sum] = "a517df2dda93b26d5cbf00effefea93e3a4ccd6652f152f4109170544ebfa05e"
SRC_URI[patch016.md5sum] = "a682ed6fa2c2e7a7c3ba6bdeada07fb5"
SRC_URI[patch016.sha256sum] = "ffd1d7a54a99fa7f5b1825e4f7e95d8c8876bc2ca151f150e751d429c650b06d"
+SRC_URI[patch017.md5sum] = "d9dcaa1d8e7a24850449a1aac43a12a9"
+SRC_URI[patch017.sha256sum] = "4cf3b9fafb8a66d411dd5fc9120032533a4012df1dc6ee024c7833373e2ddc31"
+SRC_URI[patch018.md5sum] = "a64d950d5de72ae590455b13e6afefcb"
+SRC_URI[patch018.sha256sum] = "7c314e375a105a6642e8ed44f3808b9def89d15f7492fe2029a21ba9c0de81d3"
+
DEBUG_OPTIMIZATION_append_armv4 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}"
DEBUG_OPTIMIZATION_append_armv5 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}"
diff --git a/meta/recipes-extended/bzip2/bzip2/Makefile.am b/meta/recipes-extended/bzip2/bzip2/Makefile.am
index dcf64584d9..d4498947e8 100644
--- a/meta/recipes-extended/bzip2/bzip2/Makefile.am
+++ b/meta/recipes-extended/bzip2/bzip2/Makefile.am
@@ -46,6 +46,7 @@ runtest:
else echo "FAIL: sample2 decompress"; fi
@if cmp sample3.tst sample3.ref; then echo "PASS: sample3 decompress";\
else echo "FAIL: sample3 decompress"; fi
+ ./bzip2-tests/run-tests.sh --tests-dir="$(PWD)/bzip2-tests"
install-ptest:
sed -n '/^runtest:/,/^install-ptest:/{/^install-ptest:/!p}' \
diff --git a/meta/recipes-extended/bzip2/bzip2_1.0.8.bb b/meta/recipes-extended/bzip2/bzip2_1.0.8.bb
index 8e9b779e67..70eb67f1f2 100644
--- a/meta/recipes-extended/bzip2/bzip2_1.0.8.bb
+++ b/meta/recipes-extended/bzip2/bzip2_1.0.8.bb
@@ -4,10 +4,25 @@ Huffman coding. Compression is generally considerably better than that achieved
LZ77/LZ78-based compressors, and approaches the performance of the PPM family of statistical compressors."
HOMEPAGE = "https://sourceware.org/bzip2/"
SECTION = "console/utils"
-LICENSE = "bzip2"
-LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664"
+LICENSE = "bzip2-1.0.6 & GPLv3+ & Apache-2.0 & MS-PL & BSD-3-Clause & Zlib"
+LICENSE_${PN} = "bzip2-1.0.6"
+LICENSE_${PN}-dev = "bzip2-1.0.6"
+LICENSE_${PN}-dbg = "bzip2-1.0.6"
+LICENSE_${PN}-doc = "bzip2-1.0.6"
+LICENSE_${PN}-src = "bzip2-1.0.6"
+LICENSE_libbz2 = "bzip2-1.0.6"
+LICENSE_${PN}-ptest = "bzip2-1.0.6 & GPLv3+ & Apache-2.0 & MS-PL & BSD-3-Clause & Zlib"
+
+LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664 \
+ file://${WORKDIR}/git/commons-compress/LICENSE.txt;md5=86d3f3a95c324c9479bd8986968f4327 \
+ file://${WORKDIR}/git/dotnetzip/License.txt;md5=9cb56871eed4e748c3bc7e8ff352a54f \
+ file://${WORKDIR}/git/dotnetzip/License.zlib.txt;md5=cc421ccd22eeb2e5db6b79e6de0a029f \
+ file://${WORKDIR}/git/go/LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707 \
+ file://${WORKDIR}/git/lbzip2/COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+"
SRC_URI = "https://sourceware.org/pub/${BPN}/${BPN}-${PV}.tar.gz \
+ git://sourceware.org/git/bzip2-tests.git;name=bzip2-tests \
file://configure.ac;subdir=${BP} \
file://Makefile.am;subdir=${BP} \
file://run-ptest \
@@ -15,6 +30,8 @@ SRC_URI = "https://sourceware.org/pub/${BPN}/${BPN}-${PV}.tar.gz \
SRC_URI[md5sum] = "67e051268d0c475ea773822f7500d0e5"
SRC_URI[sha256sum] = "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269"
+SRCREV_bzip2-tests = "f9061c030a25de5b6829e1abf373057309c734c0"
+
UPSTREAM_CHECK_URI = "https://www.sourceware.org/pub/bzip2/"
PACKAGES =+ "libbz2"
@@ -34,12 +51,20 @@ do_configure_prepend () {
}
do_install_ptest () {
+ install -d ${D}${PTEST_PATH}/bzip2-tests
+ cp -r ${WORKDIR}/git/commons-compress ${D}${PTEST_PATH}/bzip2-tests/commons-compress
+ cp -r ${WORKDIR}/git/dotnetzip ${D}${PTEST_PATH}/bzip2-tests/dotnetzip
+ cp -r ${WORKDIR}/git/go ${D}${PTEST_PATH}/bzip2-tests/go
+ cp -r ${WORKDIR}/git/lbzip2 ${D}${PTEST_PATH}/bzip2-tests/lbzip2
+ cp -r ${WORKDIR}/git/pyflate ${D}${PTEST_PATH}/bzip2-tests/pyflate
+ cp ${WORKDIR}/git/README ${D}${PTEST_PATH}/bzip2-tests/
+ cp ${WORKDIR}/git/run-tests.sh ${D}${PTEST_PATH}/bzip2-tests/
sed -i -e "s|^Makefile:|_Makefile:|" ${D}${PTEST_PATH}/Makefile
}
FILES_libbz2 = "${libdir}/lib*${SOLIBS}"
-RDEPENDS_${PN}-ptest += "make"
+RDEPENDS_${PN}-ptest += "make bash"
PROVIDES_append_class-native = " bzip2-replacement-native"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-extended/cpio/cpio-2.13/0002-src-global.c-Remove-superfluous-declaration-of-progr.patch b/meta/recipes-extended/cpio/cpio-2.13/0002-src-global.c-Remove-superfluous-declaration-of-progr.patch
new file mode 100644
index 0000000000..478324c1c4
--- /dev/null
+++ b/meta/recipes-extended/cpio/cpio-2.13/0002-src-global.c-Remove-superfluous-declaration-of-progr.patch
@@ -0,0 +1,28 @@
+From 33e6cb5a28fab3d99bd6818f8c01e6f33805390f Mon Sep 17 00:00:00 2001
+From: Sergey Poznyakoff <gray@gnu.org>
+Date: Mon, 20 Jan 2020 07:45:39 +0200
+Subject: [PATCH] src/global.c: Remove superfluous declaration of program_name
+
+Upstream-Status: Backport (commit 641d3f4)
+Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
+---
+ src/global.c | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/src/global.c b/src/global.c
+index fb3abe9..acf92bc 100644
+--- a/src/global.c
++++ b/src/global.c
+@@ -184,9 +184,6 @@ unsigned int warn_option = 0;
+ /* Extract to standard output? */
+ bool to_stdout_option = false;
+
+-/* The name this program was run with. */
+-char *program_name;
+-
+ /* A pointer to either lstat or stat, depending on whether
+ dereferencing of symlinks is done for input files. */
+ int (*xstat) ();
+--
+2.26.2
+
diff --git a/meta/recipes-extended/cpio/cpio_2.13.bb b/meta/recipes-extended/cpio/cpio_2.13.bb
index ecea8c6d8e..94d86100c7 100644
--- a/meta/recipes-extended/cpio/cpio_2.13.bb
+++ b/meta/recipes-extended/cpio/cpio_2.13.bb
@@ -8,6 +8,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
SRC_URI = "${GNU_MIRROR}/cpio/cpio-${PV}.tar.gz \
file://0001-Unset-need_charset_alias-when-building-for-musl.patch \
+ file://0002-src-global.c-Remove-superfluous-declaration-of-progr.patch \
"
SRC_URI[md5sum] = "389c5452d667c23b5eceb206f5000810"
@@ -22,7 +23,9 @@ do_install () {
if [ "${base_bindir}" != "${bindir}" ]; then
install -d ${D}${base_bindir}/
mv "${D}${bindir}/cpio" "${D}${base_bindir}/cpio"
- rmdir ${D}${bindir}/
+ if [ "${sbindir}" != "${bindir}" ]; then
+ rmdir ${D}${bindir}/
+ fi
fi
# Avoid conflicts with the version from tar
@@ -45,4 +48,4 @@ ALTERNATIVE_LINK_NAME[cpio] = "${base_bindir}/cpio"
ALTERNATIVE_PRIORITY[rmt] = "50"
ALTERNATIVE_LINK_NAME[rmt] = "${sbindir}/rmt"
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-extended/cups/cups.inc b/meta/recipes-extended/cups/cups.inc
index 34982819b9..87870e4aba 100644
--- a/meta/recipes-extended/cups/cups.inc
+++ b/meta/recipes-extended/cups/cups.inc
@@ -12,7 +12,9 @@ SRC_URI = "https://github.com/apple/cups/releases/download/v${PV}/${BP}-source.t
file://0001-use-echo-only-in-init.patch \
file://0002-don-t-try-to-run-generated-binaries.patch \
file://0003-cups_1.4.6.bb-Fix-build-on-ppc64.patch \
- file://0004-cups-fix-multilib-install-file-conflicts.patch\
+ file://0004-cups-fix-multilib-install-file-conflicts.patch \
+ file://volatiles.99_cups \
+ file://cups-volatiles.conf \
"
UPSTREAM_CHECK_URI = "https://github.com/apple/cups/releases"
@@ -22,12 +24,12 @@ LEAD_SONAME = "libcupsdriver.so"
CLEANBROKEN = "1"
-inherit autotools-brokensep binconfig useradd systemd pkgconfig
+inherit autotools-brokensep binconfig useradd systemd pkgconfig multilib_script
USERADD_PACKAGES = "${PN}"
GROUPADD_PARAM_${PN} = "--system lpadmin"
-SYSTEMD_SERVICE_${PN} = "org.cups.cupsd.socket org.cups.cupsd.path org.cups.cupsd.service org.cups.cups-lpd.socket org.cups.cups-lpd@.service"
+SYSTEMD_SERVICE_${PN} = "org.cups.cupsd.socket org.cups.cupsd.path org.cups.cupsd.service org.cups.cups-lpd.socket"
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \
${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd', d)}"
@@ -45,6 +47,7 @@ EXTRA_OECONF = " \
--enable-debug \
--disable-relro \
--enable-libusb \
+ --with-domainsocket=/run/cups/cups.sock \
DSOFLAGS='${LDFLAGS}' \
"
@@ -67,6 +70,7 @@ do_install () {
# Remove /var/run from package as cupsd will populate it on startup
rm -fr ${D}/${localstatedir}/run
+ rm -fr ${D}/${localstatedir}/log
rmdir ${D}/${libexecdir}/${BPN}/driver
# Fix the pam configuration file permissions
@@ -78,6 +82,13 @@ do_install () {
if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','false','true',d)}; then
rm -rf ${D}${sysconfdir}/init.d/
rm -rf ${D}${sysconfdir}/rc*
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ install -m 0644 ${WORKDIR}/cups-volatiles.conf \
+ ${D}${sysconfdir}/tmpfiles.d/cups.conf
+ else
+ install -d ${D}${sysconfdir}/default/volatiles
+ install -m 0644 ${WORKDIR}/volatiles.99_cups \
+ ${D}${sysconfdir}/default/volatiles/99_cups
fi
}
@@ -100,6 +111,8 @@ FILES_${PN} += "${datadir}/doc/cups/images \
"
CONFFILES_${PN} += "${sysconfdir}/cups/cupsd.conf"
+MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/cups-config"
+
SYSROOT_PREPROCESS_FUNCS += "cups_sysroot_preprocess"
cups_sysroot_preprocess () {
sed -i ${SYSROOT_DESTDIR}${bindir_crossscripts}/cups-config -e 's:cups_datadir=.*:cups_datadir=${datadir}/cups:' -e 's:cups_serverbin=.*:cups_serverbin=${libexecdir}/cups:'
diff --git a/meta/recipes-extended/cups/cups/cups-volatiles.conf b/meta/recipes-extended/cups/cups/cups-volatiles.conf
new file mode 100644
index 0000000000..0ede78e1c8
--- /dev/null
+++ b/meta/recipes-extended/cups/cups/cups-volatiles.conf
@@ -0,0 +1 @@
+d /var/log/cups 0755 root root -
diff --git a/meta/recipes-extended/cups/cups/volatiles.99_cups b/meta/recipes-extended/cups/cups/volatiles.99_cups
new file mode 100644
index 0000000000..cc0e19e4c8
--- /dev/null
+++ b/meta/recipes-extended/cups/cups/volatiles.99_cups
@@ -0,0 +1,2 @@
+# <type> <owner> <group> <mode> <path> <linksource>
+d root root 0755 /var/log/cups none
diff --git a/meta/recipes-extended/cups/cups_2.3.1.bb b/meta/recipes-extended/cups/cups_2.3.1.bb
deleted file mode 100644
index f5230faf81..0000000000
--- a/meta/recipes-extended/cups/cups_2.3.1.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require cups.inc
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-SRC_URI[md5sum] = "8ad8897c97cf4d90f20dac4318f47421"
-SRC_URI[sha256sum] = "1bca9d89507e3f68cbc84482fe46ae8d5333af5bc2b9061347b2007182ac77ce"
diff --git a/meta/recipes-extended/cups/cups_2.3.3.bb b/meta/recipes-extended/cups/cups_2.3.3.bb
new file mode 100644
index 0000000000..5caeb6f58b
--- /dev/null
+++ b/meta/recipes-extended/cups/cups_2.3.3.bb
@@ -0,0 +1,6 @@
+require cups.inc
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI[md5sum] = "412434ceefbdf3ec71bc9188a035f589"
+SRC_URI[sha256sum] = "261fd948bce8647b6d5cb2a1784f0c24cc52b5c4e827b71d726020bcc502f3ee"
diff --git a/meta/recipes-extended/ed/ed_1.15.bb b/meta/recipes-extended/ed/ed_1.16.bb
index 886c3ddcab..f383007b59 100644
--- a/meta/recipes-extended/ed/ed_1.15.bb
+++ b/meta/recipes-extended/ed/ed_1.16.bb
@@ -3,8 +3,8 @@ HOMEPAGE = "http://www.gnu.org/software/ed/"
LICENSE = "GPLv3+"
LIC_FILES_CHKSUM = "file://COPYING;md5=0c7051aef9219dc7237f206c5c4179a7 \
- file://ed.h;endline=20;md5=8af8e7dc7275dca05ce6c9e7ece7aec8 \
- file://main.c;endline=17;md5=d4dd6a62c502712358ca18551f978781 \
+ file://ed.h;endline=20;md5=0226a8dd88c76afba773f2f0f7c83f5e \
+ file://main.c;endline=17;md5=ebd4aff86dc9fa5027d55bc5191746b9 \
"
SECTION = "base"
@@ -18,8 +18,8 @@ bindir = "${base_bindir}"
SRC_URI = "${GNU_MIRROR}/ed/${BP}.tar.lz"
UPSTREAM_CHECK_URI = "${GNU_MIRROR}/ed/"
-SRC_URI[md5sum] = "d3aaeb5eb032142948d7a2f98a24899b"
-SRC_URI[sha256sum] = "ad4489c0ad7a108c514262da28e6c2a426946fb408a3977ef1ed34308bdfd174"
+SRC_URI[md5sum] = "ab480d982289064ca040bc5c75fceffd"
+SRC_URI[sha256sum] = "cfc07a14ab048a758473ce222e784fbf031485bcd54a76f74acfee1f390d8b2c"
EXTRA_OEMAKE = "-e MAKEFLAGS="
diff --git a/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch b/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch
index d5c93244fa..75a3841f2d 100644
--- a/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch
+++ b/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch
@@ -1,4 +1,4 @@
-From f8333f7759717b4d163cfe8e3ef8861c5a667324 Mon Sep 17 00:00:00 2001
+From afecc8791f904dc1893858d68a642b491356c74b Mon Sep 17 00:00:00 2001
From: Tudor Florea <tudor.florea@enea.com>
Date: Wed, 28 May 2014 18:59:54 +0200
Subject: [PATCH] ethtool: use serial-tests config needed by ptest.
@@ -15,15 +15,15 @@ Upstream-Status: Inappropriate
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
-index 2127fdb..4910e6f 100644
+index 19223f7..8a58d15 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script.
- AC_INIT(ethtool, 5.4, netdev@vger.kernel.org)
+ AC_INIT(ethtool, 5.8, netdev@vger.kernel.org)
AC_PREREQ(2.52)
AC_CONFIG_SRCDIR([ethtool.c])
--AM_INIT_AUTOMAKE([gnu])
-+AM_INIT_AUTOMAKE([gnu serial-tests])
+-AM_INIT_AUTOMAKE([gnu subdir-objects])
++AM_INIT_AUTOMAKE([gnu subdir-objects serial-tests])
AC_CONFIG_HEADERS([ethtool-config.h])
AM_MAINTAINER_MODE
diff --git a/meta/recipes-extended/ethtool/ethtool_5.4.bb b/meta/recipes-extended/ethtool/ethtool_5.8.bb
index d6eafaa8dc..0403f0e3a9 100644
--- a/meta/recipes-extended/ethtool/ethtool_5.4.bb
+++ b/meta/recipes-extended/ethtool/ethtool_5.8.bb
@@ -11,15 +11,17 @@ SRC_URI = "${KERNELORG_MIRROR}/software/network/ethtool/ethtool-${PV}.tar.gz \
file://avoid_parallel_tests.patch \
"
-SRC_URI[md5sum] = "fbb24aa414ab9a11ff66d351b5b8493b"
-SRC_URI[sha256sum] = "0b25a46b61bc6e26f56dcb973fc28acea159e2c32c9d6da42c0fa8d1a6339829"
+SRC_URI[sha256sum] = "91e8bbda48a7fd5d374efacca542364ceb3a6c1f286f024b64ec40ccc799e125"
UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/software/network/ethtool/"
-inherit autotools ptest bash-completion
+inherit autotools ptest bash-completion pkgconfig
RDEPENDS_${PN}-ptest += "make"
+PACKAGECONFIG ?= "netlink"
+PACKAGECONFIG[netlink] = "--enable-netlink,--disable-netlink,libmnl,"
+
do_compile_ptest() {
oe_runmake buildtest-TESTS
}
@@ -27,7 +29,9 @@ do_compile_ptest() {
do_install_ptest () {
cp ${B}/Makefile ${D}${PTEST_PATH}
install ${B}/test-cmdline ${D}${PTEST_PATH}
- install ${B}/test-features ${D}${PTEST_PATH}
+ if ${@bb.utils.contains('PACKAGECONFIG', 'netlink', 'false', 'true', d)}; then
+ install ${B}/test-features ${D}${PTEST_PATH}
+ fi
install ${B}/ethtool ${D}${PTEST_PATH}/ethtool
sed -i 's/^Makefile/_Makefile/' ${D}${PTEST_PATH}/Makefile
}
diff --git a/meta/recipes-extended/gawk/gawk_5.0.1.bb b/meta/recipes-extended/gawk/gawk_5.1.0.bb
index e79ccfdebf..0d005cd43b 100644
--- a/meta/recipes-extended/gawk/gawk_5.0.1.bb
+++ b/meta/recipes-extended/gawk/gawk_5.1.0.bb
@@ -19,8 +19,8 @@ SRC_URI = "${GNU_MIRROR}/gawk/gawk-${PV}.tar.gz \
file://run-ptest \
"
-SRC_URI[md5sum] = "c5441c73cc451764055ee65e9a4292bb"
-SRC_URI[sha256sum] = "625bf3718e25a84dc4486135d5cb5388174682362c70107fd13f21572f5603bb"
+SRC_URI[md5sum] = "f719bc9966df28e67fc6ebc405e7ea03"
+SRC_URI[sha256sum] = "03a0360edcd84bec156fe211bbc4fc8c78790973ce4e8b990a11d778d40b1a26"
inherit autotools gettext texinfo update-alternatives
diff --git a/meta/recipes-extended/ghostscript/files/do-not-check-local-libpng-source.patch b/meta/recipes-extended/ghostscript/files/do-not-check-local-libpng-source.patch
index 5834ffaf9f..a9afb9948c 100644
--- a/meta/recipes-extended/ghostscript/files/do-not-check-local-libpng-source.patch
+++ b/meta/recipes-extended/ghostscript/files/do-not-check-local-libpng-source.patch
@@ -1,7 +1,7 @@
-From a954bf29a5f906b3151dffbecb5856e02e1565da Mon Sep 17 00:00:00 2001
+From 2adaa7366064a8f18af864eda74e52877a89620c Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Mon, 18 Jan 2016 01:00:30 -0500
-Subject: [PATCH 03/10] configure.ac: do not check local png source
+Subject: [PATCH] configure.ac: do not check local png source
In oe-core, it did not need to compile local libpng
source in ghostscript, so do not check local png
@@ -11,28 +11,21 @@ libpng library.
Upstream-Status: Inappropriate [OE-Core specific]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
---
- configure.ac | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
-index 9341930..80a60b1 100644
+index 698abd3..e65ac8b 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -1114,11 +1114,11 @@ AC_SUBST(ZLIBDIR)
- AC_SUBST(FT_SYS_ZLIB)
-
- dnl png for the png output device; it also requires zlib
--LIBPNGDIR=src
-+LIBPNGDIR=$srcdir/libpng
- PNGDEVS=''
- PNGDEVS_ALL='png48 png16m pnggray pngmono pngmonod png256 png16 pngalpha'
- AC_MSG_CHECKING([for local png library source])
--if test -f $srcdir/libpng/pngread.c; then
-+if false; then
- AC_MSG_RESULT([yes])
- SHARE_LIBPNG=0
- LIBPNGDIR=$srcdir/libpng
---
-1.8.3.1
-
+@@ -1241,7 +1241,7 @@ else
+ PNGDEVS=''
+ PNGDEVS_ALL='png48 png16m pnggray pngmono pngmonod png256 png16 pngalpha'
+ AC_MSG_CHECKING([for local png library source])
+- if test -f $srcdir/libpng/pngread.c; then
++ if false; then
+ AC_MSG_RESULT([yes])
+ SHARE_LIBPNG=0
+ LIBPNGDIR=$srcdir/libpng
diff --git a/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14869-0001.patch b/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14869-0001.patch
deleted file mode 100644
index 715ec1c450..0000000000
--- a/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14869-0001.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 485904772c5f0aa1140032746e5a0abfc40f4cef Mon Sep 17 00:00:00 2001
-From: Chris Liddell <chris.liddell@artifex.com>
-Date: Tue, 5 Nov 2019 09:45:27 +0000
-Subject: [PATCH] Bug 701841: remove .forceput from /.charkeys
-
-When loading Type 1 or Truetype fonts from disk, we attempt to extend the glyph
-name table to include all identifiable glyph names from the Adobe Glyph List.
-
-In the case of Type 1 fonts, the font itself (almost always) marks the
-CharStrings dictionary as read-only, hence we have to use .forceput for that
-case.
-
-But for Truetype fonts, the CharStrings dictionary is created internally and is
-not read-only until *after* we have fully populated it (including the extended
-glyph names from the AGL), hence there is no need for .forceput, and no need to
-carry the security risk of using it.
-
-Replace with regular put.
-
-CVE: CVE-2019-14869
-Upstream-Status: Backport [git://git.ghostscript.com/ghostpdl.git]
-
-Signed-off-by: Stefan Ghinea <stefan.ghinea@windriver.com>
----
- Resource/Init/gs_ttf.ps | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/Resource/Init/gs_ttf.ps b/Resource/Init/gs_ttf.ps
-index e34967d..5354ff0 100644
---- a/Resource/Init/gs_ttf.ps
-+++ b/Resource/Init/gs_ttf.ps
-@@ -1301,7 +1301,7 @@ currentdict /.pickcmap_with_no_xlatmap .undef
- TTFDEBUG { (\n1 setting alias: ) print dup ==only
- ( to be the same as ) print 2 index //== exec } if
-
-- 7 index 2 index 3 -1 roll exch .forceput
-+ 7 index 2 index 3 -1 roll exch put
- } forall
- pop pop pop
- }
-@@ -1319,7 +1319,7 @@ currentdict /.pickcmap_with_no_xlatmap .undef
- exch pop
- TTFDEBUG { (\n2 setting alias: ) print 1 index ==only
- ( to use glyph index: ) print dup //== exec } if
-- 5 index 3 1 roll .forceput
-+ 5 index 3 1 roll put
- //false
- }
- {
-@@ -1336,7 +1336,7 @@ currentdict /.pickcmap_with_no_xlatmap .undef
- { % CharStrings(dict) isunicode(boolean) cmap(dict) RAGL(dict) gname(name) codep(integer) gindex(integer)
- TTFDEBUG { (\3 nsetting alias: ) print 1 index ==only
- ( to be index: ) print dup //== exec } if
-- exch pop 5 index 3 1 roll .forceput
-+ exch pop 5 index 3 1 roll put
- }
- {
- pop pop
-@@ -1366,7 +1366,7 @@ currentdict /.pickcmap_with_no_xlatmap .undef
- } ifelse
- ]
- TTFDEBUG { (Encoding: ) print dup === flush } if
--} .bind executeonly odef % hides .forceput
-+} .bind odef
-
- % ---------------- CIDFontType 2 font loading ---------------- %
-
---
-2.20.1
-
diff --git a/meta/recipes-extended/ghostscript/ghostscript/CVE-2020-15900.patch b/meta/recipes-extended/ghostscript/ghostscript/CVE-2020-15900.patch
new file mode 100644
index 0000000000..d7c5f034e5
--- /dev/null
+++ b/meta/recipes-extended/ghostscript/ghostscript/CVE-2020-15900.patch
@@ -0,0 +1,54 @@
+From 5d499272b95a6b890a1397e11d20937de000d31b Mon Sep 17 00:00:00 2001
+From: Ray Johnston <ray.johnston@artifex.com>
+Date: Wed, 22 Jul 2020 09:57:54 -0700
+Subject: [PATCH] Bug 702582, CVE 2020-15900 Memory Corruption in Ghostscript
+ 9.52
+
+Fix the 'rsearch' calculation for the 'post' size to give the correct
+size. Previous calculation would result in a size that was too large,
+and could underflow to max uint32_t. Also fix 'rsearch' to return the
+correct 'pre' string with empty string match.
+
+A future change may 'undefine' this undocumented, non-standard operator
+during initialization as we do with the many other non-standard internal
+PostScript operators and procedures.
+
+Upstream-Status: Backport [https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5d499272b95a6b890a1397e11d20937de000d31b]
+CVE: CVE-2020-15900
+Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
+---
+ psi/zstring.c | 17 +++++++++++------
+ 1 file changed, 11 insertions(+), 6 deletions(-)
+
+diff --git a/psi/zstring.c b/psi/zstring.c
+index 33662dafa..58e1af2b3 100644
+--- a/psi/zstring.c
++++ b/psi/zstring.c
+@@ -142,13 +142,18 @@ search_impl(i_ctx_t *i_ctx_p, bool forward)
+ return 0;
+ found:
+ op->tas.type_attrs = op1->tas.type_attrs;
+- op->value.bytes = ptr;
+- r_set_size(op, size);
++ op->value.bytes = ptr; /* match */
++ op->tas.rsize = size; /* match */
+ push(2);
+- op[-1] = *op1;
+- r_set_size(op - 1, ptr - op[-1].value.bytes);
+- op1->value.bytes = ptr + size;
+- r_set_size(op1, count + (!forward ? (size - 1) : 0));
++ op[-1] = *op1; /* pre */
++ op[-3].value.bytes = ptr + size; /* post */
++ if (forward) {
++ op[-1].tas.rsize = ptr - op[-1].value.bytes; /* pre */
++ op[-3].tas.rsize = count; /* post */
++ } else {
++ op[-1].tas.rsize = count; /* pre */
++ op[-3].tas.rsize -= count + size; /* post */
++ }
+ make_true(op);
+ return 0;
+ }
+--
+2.17.1
+
diff --git a/meta/recipes-extended/ghostscript/ghostscript/aarch64/objarch.h b/meta/recipes-extended/ghostscript/ghostscript/aarch64/objarch.h
deleted file mode 100644
index a05de29def..0000000000
--- a/meta/recipes-extended/ghostscript/ghostscript/aarch64/objarch.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Parameters derived from machine and compiler architecture. */
-/* This file is generated mechanically by genarch.c. */
-
- /* ---------------- Scalar alignments ---------------- */
-
-#define ARCH_ALIGN_SHORT_MOD 2
-#define ARCH_ALIGN_INT_MOD 4
-#define ARCH_ALIGN_LONG_MOD 8
-#define ARCH_ALIGN_PTR_MOD 8
-#define ARCH_ALIGN_FLOAT_MOD 4
-#define ARCH_ALIGN_DOUBLE_MOD 8
-
- /* ---------------- Scalar sizes ---------------- */
-
-#define ARCH_LOG2_SIZEOF_CHAR 0
-#define ARCH_LOG2_SIZEOF_SHORT 1
-#define ARCH_LOG2_SIZEOF_INT 2
-#define ARCH_LOG2_SIZEOF_LONG 3
-#define ARCH_LOG2_SIZEOF_LONG_LONG 3
-#define ARCH_SIZEOF_GX_COLOR_INDEX 8
-#define ARCH_SIZEOF_PTR 8
-#define ARCH_SIZEOF_FLOAT 4
-#define ARCH_SIZEOF_DOUBLE 8
-#define ARCH_FLOAT_MANTISSA_BITS 24
-#define ARCH_DOUBLE_MANTISSA_BITS 53
-
- /* ---------------- Unsigned max values ---------------- */
-
-#define ARCH_MAX_UCHAR ((unsigned char)0xff + (unsigned char)0)
-#define ARCH_MAX_USHORT ((unsigned short)0xffff + (unsigned short)0)
-#define ARCH_MAX_UINT ((unsigned int)~0 + (unsigned int)0)
-#define ARCH_MAX_ULONG ((unsigned long)~0L + (unsigned long)0)
-
- /* ---------------- Miscellaneous ---------------- */
-
-#define ARCH_IS_BIG_ENDIAN 0
-#define ARCH_PTRS_ARE_SIGNED 0
-#define ARCH_FLOATS_ARE_IEEE 1
-#define ARCH_ARITH_RSHIFT 2
-#define ARCH_DIV_NEG_POS_TRUNCATES 1
diff --git a/meta/recipes-extended/ghostscript/ghostscript/arm/objarch.h b/meta/recipes-extended/ghostscript/ghostscript/arm/objarch.h
deleted file mode 100644
index e8772cd958..0000000000
--- a/meta/recipes-extended/ghostscript/ghostscript/arm/objarch.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Parameters derived from machine and compiler architecture. */
-/* This file is generated mechanically by genarch.c. */
-
- /* ---------------- Scalar alignments ---------------- */
-
-#define ARCH_ALIGN_SHORT_MOD 2
-#define ARCH_ALIGN_INT_MOD 4
-#define ARCH_ALIGN_LONG_MOD 4
-#define ARCH_ALIGN_PTR_MOD 4
-#define ARCH_ALIGN_FLOAT_MOD 4
-#define ARCH_ALIGN_DOUBLE_MOD 8
-
- /* ---------------- Scalar sizes ---------------- */
-
-#define ARCH_LOG2_SIZEOF_CHAR 0
-#define ARCH_LOG2_SIZEOF_SHORT 1
-#define ARCH_LOG2_SIZEOF_INT 2
-#define ARCH_LOG2_SIZEOF_LONG 2
-#define ARCH_LOG2_SIZEOF_LONG_LONG 3
-#define ARCH_SIZEOF_GX_COLOR_INDEX 8
-#define ARCH_SIZEOF_PTR 4
-#define ARCH_SIZEOF_FLOAT 4
-#define ARCH_SIZEOF_DOUBLE 8
-#define ARCH_FLOAT_MANTISSA_BITS 24
-#define ARCH_DOUBLE_MANTISSA_BITS 53
-
- /* ---------------- Unsigned max values ---------------- */
-
-#define ARCH_MAX_UCHAR ((unsigned char)0xff + (unsigned char)0)
-#define ARCH_MAX_USHORT ((unsigned short)0xffff + (unsigned short)0)
-#define ARCH_MAX_UINT ((unsigned int)~0 + (unsigned int)0)
-#define ARCH_MAX_ULONG ((unsigned long)~0L + (unsigned long)0)
-
- /* ---------------- Miscellaneous ---------------- */
-
-#define ARCH_IS_BIG_ENDIAN 0
-#define ARCH_PTRS_ARE_SIGNED 0
-#define ARCH_FLOATS_ARE_IEEE 1
-#define ARCH_ARITH_RSHIFT 2
-#define ARCH_DIV_NEG_POS_TRUNCATES 1
diff --git a/meta/recipes-extended/ghostscript/ghostscript/armeb/objarch.h b/meta/recipes-extended/ghostscript/ghostscript/armeb/objarch.h
deleted file mode 100644
index 359097f356..0000000000
--- a/meta/recipes-extended/ghostscript/ghostscript/armeb/objarch.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Parameters derived from machine and compiler architecture. */
-/* This file is generated mechanically by genarch.c. */
-
- /* ---------------- Scalar alignments ---------------- */
-
-#define ARCH_ALIGN_SHORT_MOD 2
-#define ARCH_ALIGN_INT_MOD 4
-#define ARCH_ALIGN_LONG_MOD 4
-#define ARCH_ALIGN_PTR_MOD 4
-#define ARCH_ALIGN_FLOAT_MOD 4
-#define ARCH_ALIGN_DOUBLE_MOD 8
-
- /* ---------------- Scalar sizes ---------------- */
-
-#define ARCH_LOG2_SIZEOF_CHAR 0
-#define ARCH_LOG2_SIZEOF_SHORT 1
-#define ARCH_LOG2_SIZEOF_INT 2
-#define ARCH_LOG2_SIZEOF_LONG 2
-#define ARCH_LOG2_SIZEOF_LONG_LONG 3
-#define ARCH_SIZEOF_GX_COLOR_INDEX 8
-#define ARCH_SIZEOF_PTR 4
-#define ARCH_SIZEOF_FLOAT 4
-#define ARCH_SIZEOF_DOUBLE 8
-#define ARCH_FLOAT_MANTISSA_BITS 24
-#define ARCH_DOUBLE_MANTISSA_BITS 53
-
- /* ---------------- Unsigned max values ---------------- */
-
-#define ARCH_MAX_UCHAR ((unsigned char)0xff + (unsigned char)0)
-#define ARCH_MAX_USHORT ((unsigned short)0xffff + (unsigned short)0)
-#define ARCH_MAX_UINT ((unsigned int)~0 + (unsigned int)0)
-#define ARCH_MAX_ULONG ((unsigned long)~0L + (unsigned long)0)
-
- /* ---------------- Miscellaneous ---------------- */
-
-#define ARCH_IS_BIG_ENDIAN 1
-#define ARCH_PTRS_ARE_SIGNED 0
-#define ARCH_FLOATS_ARE_IEEE 1
-#define ARCH_ARITH_RSHIFT 2
-#define ARCH_DIV_NEG_POS_TRUNCATES 1
diff --git a/meta/recipes-extended/ghostscript/ghostscript/ghostscript-9.02-genarch.patch b/meta/recipes-extended/ghostscript/ghostscript/ghostscript-9.02-genarch.patch
deleted file mode 100644
index 7b70bb8e2c..0000000000
--- a/meta/recipes-extended/ghostscript/ghostscript/ghostscript-9.02-genarch.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From c076d0fc970f190f723018258790c79b59daba2e Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Sat, 11 May 2019 21:20:27 +0800
-Subject: [PATCH] not generate objarch.h at compile time
-
-Import patch from windriver linux for cross compilation, and split
-patches into oe way under different directories such as i586, powerpc etc
-according to Richard's opinion.
-
-Upstream-Status: Pending
-
-Signed-off-by: Kang Kai <kai.kang@windriver.com>
-Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
-
-Rebase to 9.27
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- base/lib.mak | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/base/lib.mak b/base/lib.mak
-index 3ed088a..5af2b43 100644
---- a/base/lib.mak
-+++ b/base/lib.mak
-@@ -87,8 +87,8 @@ arch_h=$(GLGEN)arch.h
- stdpre_h=$(GLSRC)stdpre.h
- stdint__h=$(GLSRC)stdint_.h
-
--$(GLGEN)arch.h : $(GENARCH_XE)
-- $(EXP)$(GENARCH_XE) $(GLGEN)arch.h $(TARGET_ARCH_FILE)
-+##$(GLGEN)arch.h : $(GENARCH_XE)
-+## $(EXP)$(GENARCH_XE) $(GLGEN)arch.h $(TARGET_ARCH_FILE)
-
- # Platform interfaces
-
---
-2.7.4
-
diff --git a/meta/recipes-extended/ghostscript/ghostscript/i586/objarch.h b/meta/recipes-extended/ghostscript/ghostscript/i586/objarch.h
deleted file mode 100644
index 5817b7a6d7..0000000000
--- a/meta/recipes-extended/ghostscript/ghostscript/i586/objarch.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Parameters derived from machine and compiler architecture. */
-/* This file is generated mechanically by genarch.c. */
-
- /* ---------------- Scalar alignments ---------------- */
-
-#define ARCH_ALIGN_SHORT_MOD 2
-#define ARCH_ALIGN_INT_MOD 4
-#define ARCH_ALIGN_LONG_MOD 4
-#define ARCH_ALIGN_PTR_MOD 4
-#define ARCH_ALIGN_FLOAT_MOD 4
-#define ARCH_ALIGN_DOUBLE_MOD 4
-
- /* ---------------- Scalar sizes ---------------- */
-
-#define ARCH_LOG2_SIZEOF_CHAR 0
-#define ARCH_LOG2_SIZEOF_SHORT 1
-#define ARCH_LOG2_SIZEOF_INT 2
-#define ARCH_LOG2_SIZEOF_LONG 2
-#define ARCH_LOG2_SIZEOF_LONG_LONG 3
-#define ARCH_SIZEOF_GX_COLOR_INDEX 8
-#define ARCH_SIZEOF_PTR 4
-#define ARCH_SIZEOF_FLOAT 4
-#define ARCH_SIZEOF_DOUBLE 8
-#define ARCH_FLOAT_MANTISSA_BITS 24
-#define ARCH_DOUBLE_MANTISSA_BITS 53
-
- /* ---------------- Unsigned max values ---------------- */
-
-#define ARCH_MAX_UCHAR ((unsigned char)0xff + (unsigned char)0)
-#define ARCH_MAX_USHORT ((unsigned short)0xffff + (unsigned short)0)
-#define ARCH_MAX_UINT ((unsigned int)~0 + (unsigned int)0)
-#define ARCH_MAX_ULONG ((unsigned long)~0L + (unsigned long)0)
-
- /* ---------------- Miscellaneous ---------------- */
-
-#define ARCH_IS_BIG_ENDIAN 0
-#define ARCH_PTRS_ARE_SIGNED 0
-#define ARCH_FLOATS_ARE_IEEE 1
-#define ARCH_ARITH_RSHIFT 2
-#define ARCH_DIV_NEG_POS_TRUNCATES 1
-
diff --git a/meta/recipes-extended/ghostscript/ghostscript/i686 b/meta/recipes-extended/ghostscript/ghostscript/i686
deleted file mode 120000
index 87aaca5903..0000000000
--- a/meta/recipes-extended/ghostscript/ghostscript/i686
+++ /dev/null
@@ -1 +0,0 @@
-i586 \ No newline at end of file
diff --git a/meta/recipes-extended/ghostscript/ghostscript/microblaze/objarch.h b/meta/recipes-extended/ghostscript/ghostscript/microblaze/objarch.h
deleted file mode 100644
index 63232fdfa6..0000000000
--- a/meta/recipes-extended/ghostscript/ghostscript/microblaze/objarch.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Parameters derived from machine and compiler architecture. */
-/* This file is generated mechanically by genarch.c. */
-
- /* ---------------- Scalar alignments ---------------- */
-
-#define ARCH_ALIGN_SHORT_MOD 2
-#define ARCH_ALIGN_INT_MOD 4
-#define ARCH_ALIGN_LONG_MOD 4
-#define ARCH_ALIGN_PTR_MOD 4
-#define ARCH_ALIGN_FLOAT_MOD 4
-#define ARCH_ALIGN_DOUBLE_MOD 4
-
- /* ---------------- Scalar sizes ---------------- */
-
-#define ARCH_LOG2_SIZEOF_CHAR 0
-#define ARCH_LOG2_SIZEOF_SHORT 1
-#define ARCH_LOG2_SIZEOF_INT 2
-#define ARCH_LOG2_SIZEOF_LONG 2
-#define ARCH_LOG2_SIZEOF_LONG_LONG 3
-#define ARCH_SIZEOF_GX_COLOR_INDEX 8
-#define ARCH_SIZEOF_PTR 4
-#define ARCH_SIZEOF_FLOAT 4
-#define ARCH_SIZEOF_DOUBLE 8
-#define ARCH_FLOAT_MANTISSA_BITS 24
-#define ARCH_DOUBLE_MANTISSA_BITS 53
-
- /* ---------------- Unsigned max values ---------------- */
-
-#define ARCH_MAX_UCHAR ((unsigned char)0xff + (unsigned char)0)
-#define ARCH_MAX_USHORT ((unsigned short)0xffff + (unsigned short)0)
-#define ARCH_MAX_UINT ((unsigned int)~0 + (unsigned int)0)
-#define ARCH_MAX_ULONG ((unsigned long)~0L + (unsigned long)0)
-
- /* ---------------- Miscellaneous ---------------- */
-
-#define ARCH_IS_BIG_ENDIAN 1
-#define ARCH_PTRS_ARE_SIGNED 0
-#define ARCH_FLOATS_ARE_IEEE 1
-#define ARCH_ARITH_RSHIFT 2
-#define ARCH_DIV_NEG_POS_TRUNCATES 1
diff --git a/meta/recipes-extended/ghostscript/ghostscript/microblazeel/objarch.h b/meta/recipes-extended/ghostscript/ghostscript/microblazeel/objarch.h
deleted file mode 100644
index 3ec8101681..0000000000
--- a/meta/recipes-extended/ghostscript/ghostscript/microblazeel/objarch.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Parameters derived from machine and compiler architecture. */
-/* This file is generated mechanically by genarch.c. */
-
- /* ---------------- Scalar alignments ---------------- */
-
-#define ARCH_ALIGN_SHORT_MOD 2
-#define ARCH_ALIGN_INT_MOD 4
-#define ARCH_ALIGN_LONG_MOD 4
-#define ARCH_ALIGN_PTR_MOD 4
-#define ARCH_ALIGN_FLOAT_MOD 4
-#define ARCH_ALIGN_DOUBLE_MOD 4
-
- /* ---------------- Scalar sizes ---------------- */
-
-#define ARCH_LOG2_SIZEOF_CHAR 0
-#define ARCH_LOG2_SIZEOF_SHORT 1
-#define ARCH_LOG2_SIZEOF_INT 2
-#define ARCH_LOG2_SIZEOF_LONG 2
-#define ARCH_LOG2_SIZEOF_LONG_LONG 3
-#define ARCH_SIZEOF_GX_COLOR_INDEX 8
-#define ARCH_SIZEOF_PTR 4
-#define ARCH_SIZEOF_FLOAT 4
-#define ARCH_SIZEOF_DOUBLE 8
-#define ARCH_FLOAT_MANTISSA_BITS 24
-#define ARCH_DOUBLE_MANTISSA_BITS 53
-
- /* ---------------- Unsigned max values ---------------- */
-
-#define ARCH_MAX_UCHAR ((unsigned char)0xff + (unsigned char)0)
-#define ARCH_MAX_USHORT ((unsigned short)0xffff + (unsigned short)0)
-#define ARCH_MAX_UINT ((unsigned int)~0 + (unsigned int)0)
-#define ARCH_MAX_ULONG ((unsigned long)~0L + (unsigned long)0)
-
- /* ---------------- Miscellaneous ---------------- */
-
-#define ARCH_IS_BIG_ENDIAN 0
-#define ARCH_PTRS_ARE_SIGNED 0
-#define ARCH_FLOATS_ARE_IEEE 1
-#define ARCH_ARITH_RSHIFT 2
-#define ARCH_DIV_NEG_POS_TRUNCATES 1
diff --git a/meta/recipes-extended/ghostscript/ghostscript/mipsarchn32eb/objarch.h b/meta/recipes-extended/ghostscript/ghostscript/mipsarchn32eb/objarch.h
deleted file mode 100644
index 0d0a16bfa3..0000000000
--- a/meta/recipes-extended/ghostscript/ghostscript/mipsarchn32eb/objarch.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Parameters derived from machine and compiler architecture. */
-/* This file is generated mechanically by genarch.c. */
-
- /* ---------------- Scalar alignments ---------------- */
-
-#define ARCH_ALIGN_SHORT_MOD 2
-#define ARCH_ALIGN_INT_MOD 4
-#define ARCH_ALIGN_LONG_MOD 8
-#define ARCH_ALIGN_PTR_MOD 8
-#define ARCH_ALIGN_FLOAT_MOD 4
-#define ARCH_ALIGN_DOUBLE_MOD 8
-
- /* ---------------- Scalar sizes ---------------- */
-
-#define ARCH_LOG2_SIZEOF_CHAR 0
-#define ARCH_LOG2_SIZEOF_SHORT 1
-#define ARCH_LOG2_SIZEOF_INT 2
-#define ARCH_LOG2_SIZEOF_LONG 3
-#define ARCH_LOG2_SIZEOF_LONG_LONG 3
-#define ARCH_SIZEOF_GX_COLOR_INDEX 8
-#define ARCH_SIZEOF_PTR 8
-#define ARCH_SIZEOF_FLOAT 4
-#define ARCH_SIZEOF_DOUBLE 8
-#define ARCH_FLOAT_MANTISSA_BITS 24
-#define ARCH_DOUBLE_MANTISSA_BITS 53
-
- /* ---------------- Unsigned max values ---------------- */
-
-#define ARCH_MAX_UCHAR ((unsigned char)0xff + (unsigned char)0)
-#define ARCH_MAX_USHORT ((unsigned short)0xffff + (unsigned short)0)
-#define ARCH_MAX_UINT ((unsigned int)~0 + (unsigned int)0)
-#define ARCH_MAX_ULONG ((unsigned long)~0L + (unsigned long)0)
-
- /* ---------------- Miscellaneous ---------------- */
-
-#define ARCH_IS_BIG_ENDIAN 1
-#define ARCH_PTRS_ARE_SIGNED 0
-#define ARCH_FLOATS_ARE_IEEE 1
-#define ARCH_ARITH_RSHIFT 2
-#define ARCH_DIV_NEG_POS_TRUNCATES 1
diff --git a/meta/recipes-extended/ghostscript/ghostscript/mipsarchn32el/objarch.h b/meta/recipes-extended/ghostscript/ghostscript/mipsarchn32el/objarch.h
deleted file mode 100644
index a05de29def..0000000000
--- a/meta/recipes-extended/ghostscript/ghostscript/mipsarchn32el/objarch.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Parameters derived from machine and compiler architecture. */
-/* This file is generated mechanically by genarch.c. */
-
- /* ---------------- Scalar alignments ---------------- */
-
-#define ARCH_ALIGN_SHORT_MOD 2
-#define ARCH_ALIGN_INT_MOD 4
-#define ARCH_ALIGN_LONG_MOD 8
-#define ARCH_ALIGN_PTR_MOD 8
-#define ARCH_ALIGN_FLOAT_MOD 4
-#define ARCH_ALIGN_DOUBLE_MOD 8
-
- /* ---------------- Scalar sizes ---------------- */
-
-#define ARCH_LOG2_SIZEOF_CHAR 0
-#define ARCH_LOG2_SIZEOF_SHORT 1
-#define ARCH_LOG2_SIZEOF_INT 2
-#define ARCH_LOG2_SIZEOF_LONG 3
-#define ARCH_LOG2_SIZEOF_LONG_LONG 3
-#define ARCH_SIZEOF_GX_COLOR_INDEX 8
-#define ARCH_SIZEOF_PTR 8
-#define ARCH_SIZEOF_FLOAT 4
-#define ARCH_SIZEOF_DOUBLE 8
-#define ARCH_FLOAT_MANTISSA_BITS 24
-#define ARCH_DOUBLE_MANTISSA_BITS 53
-
- /* ---------------- Unsigned max values ---------------- */
-
-#define ARCH_MAX_UCHAR ((unsigned char)0xff + (unsigned char)0)
-#define ARCH_MAX_USHORT ((unsigned short)0xffff + (unsigned short)0)
-#define ARCH_MAX_UINT ((unsigned int)~0 + (unsigned int)0)
-#define ARCH_MAX_ULONG ((unsigned long)~0L + (unsigned long)0)
-
- /* ---------------- Miscellaneous ---------------- */
-
-#define ARCH_IS_BIG_ENDIAN 0
-#define ARCH_PTRS_ARE_SIGNED 0
-#define ARCH_FLOATS_ARE_IEEE 1
-#define ARCH_ARITH_RSHIFT 2
-#define ARCH_DIV_NEG_POS_TRUNCATES 1
diff --git a/meta/recipes-extended/ghostscript/ghostscript/mipsarchn64eb/objarch.h b/meta/recipes-extended/ghostscript/ghostscript/mipsarchn64eb/objarch.h
deleted file mode 100644
index 0d0a16bfa3..0000000000
--- a/meta/recipes-extended/ghostscript/ghostscript/mipsarchn64eb/objarch.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Parameters derived from machine and compiler architecture. */
-/* This file is generated mechanically by genarch.c. */
-
- /* ---------------- Scalar alignments ---------------- */
-
-#define ARCH_ALIGN_SHORT_MOD 2
-#define ARCH_ALIGN_INT_MOD 4
-#define ARCH_ALIGN_LONG_MOD 8
-#define ARCH_ALIGN_PTR_MOD 8
-#define ARCH_ALIGN_FLOAT_MOD 4
-#define ARCH_ALIGN_DOUBLE_MOD 8
-
- /* ---------------- Scalar sizes ---------------- */
-
-#define ARCH_LOG2_SIZEOF_CHAR 0
-#define ARCH_LOG2_SIZEOF_SHORT 1
-#define ARCH_LOG2_SIZEOF_INT 2
-#define ARCH_LOG2_SIZEOF_LONG 3
-#define ARCH_LOG2_SIZEOF_LONG_LONG 3
-#define ARCH_SIZEOF_GX_COLOR_INDEX 8
-#define ARCH_SIZEOF_PTR 8
-#define ARCH_SIZEOF_FLOAT 4
-#define ARCH_SIZEOF_DOUBLE 8
-#define ARCH_FLOAT_MANTISSA_BITS 24
-#define ARCH_DOUBLE_MANTISSA_BITS 53
-
- /* ---------------- Unsigned max values ---------------- */
-
-#define ARCH_MAX_UCHAR ((unsigned char)0xff + (unsigned char)0)
-#define ARCH_MAX_USHORT ((unsigned short)0xffff + (unsigned short)0)
-#define ARCH_MAX_UINT ((unsigned int)~0 + (unsigned int)0)
-#define ARCH_MAX_ULONG ((unsigned long)~0L + (unsigned long)0)
-
- /* ---------------- Miscellaneous ---------------- */
-
-#define ARCH_IS_BIG_ENDIAN 1
-#define ARCH_PTRS_ARE_SIGNED 0
-#define ARCH_FLOATS_ARE_IEEE 1
-#define ARCH_ARITH_RSHIFT 2
-#define ARCH_DIV_NEG_POS_TRUNCATES 1
diff --git a/meta/recipes-extended/ghostscript/ghostscript/mipsarchn64el/objarch.h b/meta/recipes-extended/ghostscript/ghostscript/mipsarchn64el/objarch.h
deleted file mode 100644
index a05de29def..0000000000
--- a/meta/recipes-extended/ghostscript/ghostscript/mipsarchn64el/objarch.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Parameters derived from machine and compiler architecture. */
-/* This file is generated mechanically by genarch.c. */
-
- /* ---------------- Scalar alignments ---------------- */
-
-#define ARCH_ALIGN_SHORT_MOD 2
-#define ARCH_ALIGN_INT_MOD 4
-#define ARCH_ALIGN_LONG_MOD 8
-#define ARCH_ALIGN_PTR_MOD 8
-#define ARCH_ALIGN_FLOAT_MOD 4
-#define ARCH_ALIGN_DOUBLE_MOD 8
-
- /* ---------------- Scalar sizes ---------------- */
-
-#define ARCH_LOG2_SIZEOF_CHAR 0
-#define ARCH_LOG2_SIZEOF_SHORT 1
-#define ARCH_LOG2_SIZEOF_INT 2
-#define ARCH_LOG2_SIZEOF_LONG 3
-#define ARCH_LOG2_SIZEOF_LONG_LONG 3
-#define ARCH_SIZEOF_GX_COLOR_INDEX 8
-#define ARCH_SIZEOF_PTR 8
-#define ARCH_SIZEOF_FLOAT 4
-#define ARCH_SIZEOF_DOUBLE 8
-#define ARCH_FLOAT_MANTISSA_BITS 24
-#define ARCH_DOUBLE_MANTISSA_BITS 53
-
- /* ---------------- Unsigned max values ---------------- */
-
-#define ARCH_MAX_UCHAR ((unsigned char)0xff + (unsigned char)0)
-#define ARCH_MAX_USHORT ((unsigned short)0xffff + (unsigned short)0)
-#define ARCH_MAX_UINT ((unsigned int)~0 + (unsigned int)0)
-#define ARCH_MAX_ULONG ((unsigned long)~0L + (unsigned long)0)
-
- /* ---------------- Miscellaneous ---------------- */
-
-#define ARCH_IS_BIG_ENDIAN 0
-#define ARCH_PTRS_ARE_SIGNED 0
-#define ARCH_FLOATS_ARE_IEEE 1
-#define ARCH_ARITH_RSHIFT 2
-#define ARCH_DIV_NEG_POS_TRUNCATES 1
diff --git a/meta/recipes-extended/ghostscript/ghostscript/mipsarcho32eb/objarch.h b/meta/recipes-extended/ghostscript/ghostscript/mipsarcho32eb/objarch.h
deleted file mode 100644
index b8b637cca2..0000000000
--- a/meta/recipes-extended/ghostscript/ghostscript/mipsarcho32eb/objarch.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Parameters derived from machine and compiler architecture. */
-/* This file is generated mechanically by genarch.c. */
-
- /* ---------------- Scalar alignments ---------------- */
-
-#define ARCH_ALIGN_SHORT_MOD 2
-#define ARCH_ALIGN_INT_MOD 4
-#define ARCH_ALIGN_LONG_MOD 4
-#define ARCH_ALIGN_PTR_MOD 4
-#define ARCH_ALIGN_FLOAT_MOD 4
-#define ARCH_ALIGN_DOUBLE_MOD 8
-
- /* ---------------- Scalar sizes ---------------- */
-
-#define ARCH_LOG2_SIZEOF_CHAR 0
-#define ARCH_LOG2_SIZEOF_SHORT 1
-#define ARCH_LOG2_SIZEOF_INT 2
-#define ARCH_LOG2_SIZEOF_LONG 2
-#define ARCH_LOG2_SIZEOF_LONG_LONG 3
-#define ARCH_SIZEOF_GX_COLOR_INDEX 4
-#define ARCH_SIZEOF_PTR 4
-#define ARCH_SIZEOF_FLOAT 4
-#define ARCH_SIZEOF_DOUBLE 8
-#define ARCH_FLOAT_MANTISSA_BITS 24
-#define ARCH_DOUBLE_MANTISSA_BITS 53
-
- /* ---------------- Unsigned max values ---------------- */
-
-#define ARCH_MAX_UCHAR ((unsigned char)0xff + (unsigned char)0)
-#define ARCH_MAX_USHORT ((unsigned short)0xffff + (unsigned short)0)
-#define ARCH_MAX_UINT ((unsigned int)~0 + (unsigned int)0)
-#define ARCH_MAX_ULONG ((unsigned long)~0L + (unsigned long)0)
-
- /* ---------------- Miscellaneous ---------------- */
-
-#define ARCH_IS_BIG_ENDIAN 1
-#define ARCH_PTRS_ARE_SIGNED 0
-#define ARCH_FLOATS_ARE_IEEE 1
-#define ARCH_ARITH_RSHIFT 2
-#define ARCH_DIV_NEG_POS_TRUNCATES 1
diff --git a/meta/recipes-extended/ghostscript/ghostscript/mipsarcho32el/objarch.h b/meta/recipes-extended/ghostscript/ghostscript/mipsarcho32el/objarch.h
deleted file mode 100644
index 29f90ddf85..0000000000
--- a/meta/recipes-extended/ghostscript/ghostscript/mipsarcho32el/objarch.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Parameters derived from machine and compiler architecture. */
-/* This file is generated mechanically by genarch.c. */
-
- /* ---------------- Scalar alignments ---------------- */
-
-#define ARCH_ALIGN_SHORT_MOD 2
-#define ARCH_ALIGN_INT_MOD 4
-#define ARCH_ALIGN_LONG_MOD 4
-#define ARCH_ALIGN_PTR_MOD 4
-#define ARCH_ALIGN_FLOAT_MOD 4
-#define ARCH_ALIGN_DOUBLE_MOD 8
-
- /* ---------------- Scalar sizes ---------------- */
-
-#define ARCH_LOG2_SIZEOF_CHAR 0
-#define ARCH_LOG2_SIZEOF_SHORT 1
-#define ARCH_LOG2_SIZEOF_INT 2
-#define ARCH_LOG2_SIZEOF_LONG 2
-#define ARCH_LOG2_SIZEOF_LONG_LONG 3
-#define ARCH_SIZEOF_GX_COLOR_INDEX 4
-#define ARCH_SIZEOF_PTR 4
-#define ARCH_SIZEOF_FLOAT 4
-#define ARCH_SIZEOF_DOUBLE 8
-#define ARCH_FLOAT_MANTISSA_BITS 24
-#define ARCH_DOUBLE_MANTISSA_BITS 53
-
- /* ---------------- Unsigned max values ---------------- */
-
-#define ARCH_MAX_UCHAR ((unsigned char)0xff + (unsigned char)0)
-#define ARCH_MAX_USHORT ((unsigned short)0xffff + (unsigned short)0)
-#define ARCH_MAX_UINT ((unsigned int)~0 + (unsigned int)0)
-#define ARCH_MAX_ULONG ((unsigned long)~0L + (unsigned long)0)
-
- /* ---------------- Miscellaneous ---------------- */
-
-#define ARCH_IS_BIG_ENDIAN 0
-#define ARCH_PTRS_ARE_SIGNED 0
-#define ARCH_FLOATS_ARE_IEEE 1
-#define ARCH_ARITH_RSHIFT 2
-#define ARCH_DIV_NEG_POS_TRUNCATES 1
diff --git a/meta/recipes-extended/ghostscript/ghostscript/nios2/objarch.h b/meta/recipes-extended/ghostscript/ghostscript/nios2/objarch.h
deleted file mode 100644
index 3ec8101681..0000000000
--- a/meta/recipes-extended/ghostscript/ghostscript/nios2/objarch.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Parameters derived from machine and compiler architecture. */
-/* This file is generated mechanically by genarch.c. */
-
- /* ---------------- Scalar alignments ---------------- */
-
-#define ARCH_ALIGN_SHORT_MOD 2
-#define ARCH_ALIGN_INT_MOD 4
-#define ARCH_ALIGN_LONG_MOD 4
-#define ARCH_ALIGN_PTR_MOD 4
-#define ARCH_ALIGN_FLOAT_MOD 4
-#define ARCH_ALIGN_DOUBLE_MOD 4
-
- /* ---------------- Scalar sizes ---------------- */
-
-#define ARCH_LOG2_SIZEOF_CHAR 0
-#define ARCH_LOG2_SIZEOF_SHORT 1
-#define ARCH_LOG2_SIZEOF_INT 2
-#define ARCH_LOG2_SIZEOF_LONG 2
-#define ARCH_LOG2_SIZEOF_LONG_LONG 3
-#define ARCH_SIZEOF_GX_COLOR_INDEX 8
-#define ARCH_SIZEOF_PTR 4
-#define ARCH_SIZEOF_FLOAT 4
-#define ARCH_SIZEOF_DOUBLE 8
-#define ARCH_FLOAT_MANTISSA_BITS 24
-#define ARCH_DOUBLE_MANTISSA_BITS 53
-
- /* ---------------- Unsigned max values ---------------- */
-
-#define ARCH_MAX_UCHAR ((unsigned char)0xff + (unsigned char)0)
-#define ARCH_MAX_USHORT ((unsigned short)0xffff + (unsigned short)0)
-#define ARCH_MAX_UINT ((unsigned int)~0 + (unsigned int)0)
-#define ARCH_MAX_ULONG ((unsigned long)~0L + (unsigned long)0)
-
- /* ---------------- Miscellaneous ---------------- */
-
-#define ARCH_IS_BIG_ENDIAN 0
-#define ARCH_PTRS_ARE_SIGNED 0
-#define ARCH_FLOATS_ARE_IEEE 1
-#define ARCH_ARITH_RSHIFT 2
-#define ARCH_DIV_NEG_POS_TRUNCATES 1
diff --git a/meta/recipes-extended/ghostscript/ghostscript/powerpc/objarch.h b/meta/recipes-extended/ghostscript/ghostscript/powerpc/objarch.h
deleted file mode 100644
index 359097f356..0000000000
--- a/meta/recipes-extended/ghostscript/ghostscript/powerpc/objarch.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Parameters derived from machine and compiler architecture. */
-/* This file is generated mechanically by genarch.c. */
-
- /* ---------------- Scalar alignments ---------------- */
-
-#define ARCH_ALIGN_SHORT_MOD 2
-#define ARCH_ALIGN_INT_MOD 4
-#define ARCH_ALIGN_LONG_MOD 4
-#define ARCH_ALIGN_PTR_MOD 4
-#define ARCH_ALIGN_FLOAT_MOD 4
-#define ARCH_ALIGN_DOUBLE_MOD 8
-
- /* ---------------- Scalar sizes ---------------- */
-
-#define ARCH_LOG2_SIZEOF_CHAR 0
-#define ARCH_LOG2_SIZEOF_SHORT 1
-#define ARCH_LOG2_SIZEOF_INT 2
-#define ARCH_LOG2_SIZEOF_LONG 2
-#define ARCH_LOG2_SIZEOF_LONG_LONG 3
-#define ARCH_SIZEOF_GX_COLOR_INDEX 8
-#define ARCH_SIZEOF_PTR 4
-#define ARCH_SIZEOF_FLOAT 4
-#define ARCH_SIZEOF_DOUBLE 8
-#define ARCH_FLOAT_MANTISSA_BITS 24
-#define ARCH_DOUBLE_MANTISSA_BITS 53
-
- /* ---------------- Unsigned max values ---------------- */
-
-#define ARCH_MAX_UCHAR ((unsigned char)0xff + (unsigned char)0)
-#define ARCH_MAX_USHORT ((unsigned short)0xffff + (unsigned short)0)
-#define ARCH_MAX_UINT ((unsigned int)~0 + (unsigned int)0)
-#define ARCH_MAX_ULONG ((unsigned long)~0L + (unsigned long)0)
-
- /* ---------------- Miscellaneous ---------------- */
-
-#define ARCH_IS_BIG_ENDIAN 1
-#define ARCH_PTRS_ARE_SIGNED 0
-#define ARCH_FLOATS_ARE_IEEE 1
-#define ARCH_ARITH_RSHIFT 2
-#define ARCH_DIV_NEG_POS_TRUNCATES 1
diff --git a/meta/recipes-extended/ghostscript/ghostscript/powerpc64/objarch.h b/meta/recipes-extended/ghostscript/ghostscript/powerpc64/objarch.h
deleted file mode 100644
index 0d0a16bfa3..0000000000
--- a/meta/recipes-extended/ghostscript/ghostscript/powerpc64/objarch.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Parameters derived from machine and compiler architecture. */
-/* This file is generated mechanically by genarch.c. */
-
- /* ---------------- Scalar alignments ---------------- */
-
-#define ARCH_ALIGN_SHORT_MOD 2
-#define ARCH_ALIGN_INT_MOD 4
-#define ARCH_ALIGN_LONG_MOD 8
-#define ARCH_ALIGN_PTR_MOD 8
-#define ARCH_ALIGN_FLOAT_MOD 4
-#define ARCH_ALIGN_DOUBLE_MOD 8
-
- /* ---------------- Scalar sizes ---------------- */
-
-#define ARCH_LOG2_SIZEOF_CHAR 0
-#define ARCH_LOG2_SIZEOF_SHORT 1
-#define ARCH_LOG2_SIZEOF_INT 2
-#define ARCH_LOG2_SIZEOF_LONG 3
-#define ARCH_LOG2_SIZEOF_LONG_LONG 3
-#define ARCH_SIZEOF_GX_COLOR_INDEX 8
-#define ARCH_SIZEOF_PTR 8
-#define ARCH_SIZEOF_FLOAT 4
-#define ARCH_SIZEOF_DOUBLE 8
-#define ARCH_FLOAT_MANTISSA_BITS 24
-#define ARCH_DOUBLE_MANTISSA_BITS 53
-
- /* ---------------- Unsigned max values ---------------- */
-
-#define ARCH_MAX_UCHAR ((unsigned char)0xff + (unsigned char)0)
-#define ARCH_MAX_USHORT ((unsigned short)0xffff + (unsigned short)0)
-#define ARCH_MAX_UINT ((unsigned int)~0 + (unsigned int)0)
-#define ARCH_MAX_ULONG ((unsigned long)~0L + (unsigned long)0)
-
- /* ---------------- Miscellaneous ---------------- */
-
-#define ARCH_IS_BIG_ENDIAN 1
-#define ARCH_PTRS_ARE_SIGNED 0
-#define ARCH_FLOATS_ARE_IEEE 1
-#define ARCH_ARITH_RSHIFT 2
-#define ARCH_DIV_NEG_POS_TRUNCATES 1
diff --git a/meta/recipes-extended/ghostscript/ghostscript/powerpc64le/objarch.h b/meta/recipes-extended/ghostscript/ghostscript/powerpc64le/objarch.h
deleted file mode 100644
index a05de29def..0000000000
--- a/meta/recipes-extended/ghostscript/ghostscript/powerpc64le/objarch.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Parameters derived from machine and compiler architecture. */
-/* This file is generated mechanically by genarch.c. */
-
- /* ---------------- Scalar alignments ---------------- */
-
-#define ARCH_ALIGN_SHORT_MOD 2
-#define ARCH_ALIGN_INT_MOD 4
-#define ARCH_ALIGN_LONG_MOD 8
-#define ARCH_ALIGN_PTR_MOD 8
-#define ARCH_ALIGN_FLOAT_MOD 4
-#define ARCH_ALIGN_DOUBLE_MOD 8
-
- /* ---------------- Scalar sizes ---------------- */
-
-#define ARCH_LOG2_SIZEOF_CHAR 0
-#define ARCH_LOG2_SIZEOF_SHORT 1
-#define ARCH_LOG2_SIZEOF_INT 2
-#define ARCH_LOG2_SIZEOF_LONG 3
-#define ARCH_LOG2_SIZEOF_LONG_LONG 3
-#define ARCH_SIZEOF_GX_COLOR_INDEX 8
-#define ARCH_SIZEOF_PTR 8
-#define ARCH_SIZEOF_FLOAT 4
-#define ARCH_SIZEOF_DOUBLE 8
-#define ARCH_FLOAT_MANTISSA_BITS 24
-#define ARCH_DOUBLE_MANTISSA_BITS 53
-
- /* ---------------- Unsigned max values ---------------- */
-
-#define ARCH_MAX_UCHAR ((unsigned char)0xff + (unsigned char)0)
-#define ARCH_MAX_USHORT ((unsigned short)0xffff + (unsigned short)0)
-#define ARCH_MAX_UINT ((unsigned int)~0 + (unsigned int)0)
-#define ARCH_MAX_ULONG ((unsigned long)~0L + (unsigned long)0)
-
- /* ---------------- Miscellaneous ---------------- */
-
-#define ARCH_IS_BIG_ENDIAN 0
-#define ARCH_PTRS_ARE_SIGNED 0
-#define ARCH_FLOATS_ARE_IEEE 1
-#define ARCH_ARITH_RSHIFT 2
-#define ARCH_DIV_NEG_POS_TRUNCATES 1
diff --git a/meta/recipes-extended/ghostscript/ghostscript/x86-64/objarch.h b/meta/recipes-extended/ghostscript/ghostscript/x86-64/objarch.h
deleted file mode 100644
index a05de29def..0000000000
--- a/meta/recipes-extended/ghostscript/ghostscript/x86-64/objarch.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Parameters derived from machine and compiler architecture. */
-/* This file is generated mechanically by genarch.c. */
-
- /* ---------------- Scalar alignments ---------------- */
-
-#define ARCH_ALIGN_SHORT_MOD 2
-#define ARCH_ALIGN_INT_MOD 4
-#define ARCH_ALIGN_LONG_MOD 8
-#define ARCH_ALIGN_PTR_MOD 8
-#define ARCH_ALIGN_FLOAT_MOD 4
-#define ARCH_ALIGN_DOUBLE_MOD 8
-
- /* ---------------- Scalar sizes ---------------- */
-
-#define ARCH_LOG2_SIZEOF_CHAR 0
-#define ARCH_LOG2_SIZEOF_SHORT 1
-#define ARCH_LOG2_SIZEOF_INT 2
-#define ARCH_LOG2_SIZEOF_LONG 3
-#define ARCH_LOG2_SIZEOF_LONG_LONG 3
-#define ARCH_SIZEOF_GX_COLOR_INDEX 8
-#define ARCH_SIZEOF_PTR 8
-#define ARCH_SIZEOF_FLOAT 4
-#define ARCH_SIZEOF_DOUBLE 8
-#define ARCH_FLOAT_MANTISSA_BITS 24
-#define ARCH_DOUBLE_MANTISSA_BITS 53
-
- /* ---------------- Unsigned max values ---------------- */
-
-#define ARCH_MAX_UCHAR ((unsigned char)0xff + (unsigned char)0)
-#define ARCH_MAX_USHORT ((unsigned short)0xffff + (unsigned short)0)
-#define ARCH_MAX_UINT ((unsigned int)~0 + (unsigned int)0)
-#define ARCH_MAX_ULONG ((unsigned long)~0L + (unsigned long)0)
-
- /* ---------------- Miscellaneous ---------------- */
-
-#define ARCH_IS_BIG_ENDIAN 0
-#define ARCH_PTRS_ARE_SIGNED 0
-#define ARCH_FLOATS_ARE_IEEE 1
-#define ARCH_ARITH_RSHIFT 2
-#define ARCH_DIV_NEG_POS_TRUNCATES 1
diff --git a/meta/recipes-extended/ghostscript/ghostscript_9.50.bb b/meta/recipes-extended/ghostscript/ghostscript_9.52.bb
index 39c32644db..65135f5821 100644
--- a/meta/recipes-extended/ghostscript/ghostscript_9.50.bb
+++ b/meta/recipes-extended/ghostscript/ghostscript_9.52.bb
@@ -19,20 +19,22 @@ DEPENDS_class-native = "libpng-native"
UPSTREAM_CHECK_URI = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases"
UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.tar"
-SRC_URI_BASE = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs950/${BPN}-${PV}.tar.gz \
+def gs_verdir(v):
+ return "".join(v.split("."))
+
+
+SRC_URI_BASE = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${@gs_verdir("${PV}")}/${BPN}-${PV}.tar.gz \
file://ghostscript-9.15-parallel-make.patch \
file://ghostscript-9.16-Werror-return-type.patch \
file://do-not-check-local-libpng-source.patch \
file://avoid-host-contamination.patch \
file://mkdir-p.patch \
- file://CVE-2019-14869-0001.patch \
"
SRC_URI = "${SRC_URI_BASE} \
file://ghostscript-9.21-prevent_recompiling.patch \
- file://ghostscript-9.02-genarch.patch \
- file://objarch.h \
file://cups-no-gcrypt.patch \
+ file://CVE-2020-15900.patch \
"
SRC_URI_class-native = "${SRC_URI_BASE} \
@@ -40,8 +42,8 @@ SRC_URI_class-native = "${SRC_URI_BASE} \
file://base-genht.c-add-a-preprocessor-define-to-allow-fope.patch \
"
-SRC_URI[md5sum] = "00970cf622bd5b46f68eec9383753870"
-SRC_URI[sha256sum] = "0f53e89fd647815828fc5171613e860e8535b68f7afbc91bf89aee886769ce89"
+SRC_URI[md5sum] = "0f6964ab9b83a63b7e373f136243f901"
+SRC_URI[sha256sum] = "c2501d8e8e0814c4a5aa7e443e230e73d7af7f70287546f7b697e5ef49e32176"
# Put something like
#
@@ -72,7 +74,7 @@ EXTRA_OECONF_class-native = "--without-x --with-system-libtiff=no \
--without-jbig2dec --without-libpaper \
--with-fontpath=${datadir}/fonts \
--without-libidn --disable-fontconfig \
- --disable-freetype --disable-cups"
+ --enable-freetype --disable-cups "
# This has been fixed upstream but for now we need to subvert the check for time.h
# http://bugs.ghostscript.com/show_bug.cgi?id=692443
@@ -80,15 +82,7 @@ EXTRA_OECONF_class-native = "--without-x --with-system-libtiff=no \
CFLAGS += "-DHAVE_SYS_TIME_H=1"
BUILD_CFLAGS += "-DHAVE_SYS_TIME_H=1"
-inherit autotools
-
-do_configure_prepend () {
- mkdir -p obj
- mkdir -p soobj
- if [ -e ${WORKDIR}/objarch.h ]; then
- cp ${WORKDIR}/objarch.h obj/arch.h
- fi
-}
+inherit autotools-brokensep
do_configure_append () {
# copy tools from the native ghostscript build
diff --git a/meta/recipes-extended/groff/files/0001-Make-manpages-mulitlib-identical.patch b/meta/recipes-extended/groff/files/0001-Make-manpages-mulitlib-identical.patch
new file mode 100644
index 0000000000..9105da6457
--- /dev/null
+++ b/meta/recipes-extended/groff/files/0001-Make-manpages-mulitlib-identical.patch
@@ -0,0 +1,27 @@
+From e738f9185ba90f2083c846ade3551234bb5a7cbc Mon Sep 17 00:00:00 2001
+From: Jeremy Puhlman <jpuhlman@mvista.com>
+Date: Sat, 7 Mar 2020 00:59:13 +0000
+Subject: [PATCH] Make manpages mulitlib identical
+
+Upstream-Status: Pending
+Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
+---
+ Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index d18c49b..6175fe9 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -917,7 +917,7 @@ SUFFIXES += .man
+ -e "s|[@]MDATE[@]|`$(PERL) $(top_srcdir)/mdate.pl $<`|g" \
+ -e "s|[@]OLDFONTDIR[@]|`echo $(oldfontdir) | sed -f $(makevarescape)`|g" \
+ -e "s|[@]PDFDOCDIR[@]|`echo $(pdfdocdir) | sed -f $(makevarescape)`|g" \
+- -e "s|[@]SYSTEMMACRODIR[@]|`echo $(systemtmacdir) | sed -f $(makevarescape)`|g" \
++ -e "s|[@]SYSTEMMACRODIR[@]|`echo $(systemtmacdir) | sed -e 's,$(libdir),$(prefix)/lib*,' | sed -f $(makevarescape)`|g" \
+ -e "s|[@]TMAC_AN_PREFIX[@]|$(tmac_an_prefix)|g" \
+ -e "s|[@]TMAC_M_PREFIX[@]|$(tmac_m_prefix)|g" \
+ -e "s|[@]TMAC_MDIR[@]|$(tmacdir)/mm|g" \
+--
+2.23.0
+
diff --git a/meta/recipes-extended/groff/groff_1.22.4.bb b/meta/recipes-extended/groff/groff_1.22.4.bb
index 082597f693..e398478349 100644
--- a/meta/recipes-extended/groff/groff_1.22.4.bb
+++ b/meta/recipes-extended/groff/groff_1.22.4.bb
@@ -12,6 +12,7 @@ SRC_URI = "${GNU_MIRROR}/groff/groff-${PV}.tar.gz \
file://groff-not-search-fonts-on-build-host.patch \
file://0001-support-musl.patch \
file://0001-Include-config.h.patch \
+ file://0001-Make-manpages-mulitlib-identical.patch \
"
SRC_URI[md5sum] = "08fb04335e2f5e73f23ea4c3adbf0c5f"
diff --git a/meta/recipes-extended/images/core-image-testmaster-initramfs.bb b/meta/recipes-extended/images/core-image-testmaster-initramfs.bb
index 09a6d16042..1a2e0af27b 100644
--- a/meta/recipes-extended/images/core-image-testmaster-initramfs.bb
+++ b/meta/recipes-extended/images/core-image-testmaster-initramfs.bb
@@ -8,6 +8,7 @@ PACKAGE_INSTALL = "initramfs-live-boot initramfs-live-install-testfs initramfs-l
IMAGE_FEATURES = ""
export IMAGE_BASENAME = "core-image-testmaster-initramfs"
+IMAGE_NAME_SUFFIX ?= ""
IMAGE_LINGUAS = ""
LICENSE = "MIT"
diff --git a/meta/recipes-extended/iptables/iptables/0001-build-resolve-iptables-apply-not-getting-installed.patch b/meta/recipes-extended/iptables/iptables/0001-build-resolve-iptables-apply-not-getting-installed.patch
new file mode 100644
index 0000000000..51ed66ed24
--- /dev/null
+++ b/meta/recipes-extended/iptables/iptables/0001-build-resolve-iptables-apply-not-getting-installed.patch
@@ -0,0 +1,45 @@
+From d4ed0c741fc789bb09d977d74d30875fdd50d08b Mon Sep 17 00:00:00 2001
+From: Jan Engelhardt <jengelh@inai.de>
+Date: Wed, 3 Jun 2020 15:38:48 +0200
+Subject: [PATCH] build: resolve iptables-apply not getting installed
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+ip6tables-apply gets installed but iptables-apply does not.
+That is wrong.
+
+» make install DESTDIR=$PWD/r
+» find r -name "*app*"
+r/usr/local/sbin/ip6tables-apply
+r/usr/local/share/man/man8/iptables-apply.8
+r/usr/local/share/man/man8/ip6tables-apply.8
+
+Fixes: v1.8.5~87
+Signed-off-by: Jan Engelhardt <jengelh@inai.de>
+Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
+
+Upstream-Status: Backport
+[https://git.netfilter.org/iptables/commit/?id=d4ed0c741fc789bb09d977d74d30875fdd50d08b]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ iptables/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/iptables/Makefile.am b/iptables/Makefile.am
+index dc66b3cc..2024dbf5 100644
+--- a/iptables/Makefile.am
++++ b/iptables/Makefile.am
+@@ -56,7 +56,7 @@ man_MANS = iptables.8 iptables-restore.8 iptables-save.8 \
+ ip6tables-save.8 iptables-extensions.8 \
+ iptables-apply.8 ip6tables-apply.8
+
+-sbin_SCRIPT = iptables-apply
++sbin_SCRIPTS = iptables-apply
+
+ if ENABLE_NFTABLES
+ man_MANS += xtables-nft.8 xtables-translate.8 xtables-legacy.8 \
+--
+2.17.1
+
diff --git a/meta/recipes-extended/iptables/iptables_1.8.4.bb b/meta/recipes-extended/iptables/iptables_1.8.5.bb
index cf1388ce9c..5976128807 100644
--- a/meta/recipes-extended/iptables/iptables_1.8.4.bb
+++ b/meta/recipes-extended/iptables/iptables_1.8.5.bb
@@ -11,13 +11,13 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
SRC_URI = "http://netfilter.org/projects/iptables/files/iptables-${PV}.tar.bz2 \
file://0001-configure-Add-option-to-enable-disable-libnfnetlink.patch \
file://0002-configure.ac-only-check-conntrack-when-libnfnetlink-enabled.patch \
+ file://0001-build-resolve-iptables-apply-not-getting-installed.patch \
file://iptables.service \
file://iptables.rules \
file://ip6tables.service \
file://ip6tables.rules \
"
-SRC_URI[md5sum] = "9b201107957fbf62709c3d8226239b0d"
-SRC_URI[sha256sum] = "993a3a5490a544c2cbf2ef15cf7e7ed21af1845baf228318d5c36ef8827e157c"
+SRC_URI[sha256sum] = "d457d74512e63aa3f50336e0597d4023c0e3c6845594d38532efb6ebcb294309"
SYSTEMD_SERVICE_${PN} = "\
iptables.service \
@@ -68,7 +68,7 @@ do_install_append() {
fi
}
-PACKAGES += "${PN}-modules"
+PACKAGES =+ "${PN}-modules ${PN}-apply"
PACKAGES_DYNAMIC += "^${PN}-module-.*"
python populate_packages_prepend() {
@@ -98,6 +98,9 @@ RRECOMMENDS_${PN} = " \
FILES_${PN} += "${datadir}/xtables"
+FILES_${PN}-apply = "${sbindir}/ip*-apply"
+RDEPENDS_${PN}-apply = "${PN} bash"
+
# Include the symlinks as well in respective packages
FILES_${PN}-module-xt-conntrack += "${libdir}/xtables/libxt_state.so"
FILES_${PN}-module-xt-ct += "${libdir}/xtables/libxt_NOTRACK.so"
diff --git a/meta/recipes-extended/iputils/iputils/0001-ninfod-change-variable-name-to-avoid-colliding-with-.patch b/meta/recipes-extended/iputils/iputils/0001-ninfod-change-variable-name-to-avoid-colliding-with-.patch
deleted file mode 100644
index e106a0cf73..0000000000
--- a/meta/recipes-extended/iputils/iputils/0001-ninfod-change-variable-name-to-avoid-colliding-with-.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From ab1aa2eb0097a7ef05ffccac058b06812deb2695 Mon Sep 17 00:00:00 2001
-From: Sami Kerola <kerolasa@iki.fi>
-Date: Sat, 28 Dec 2019 17:16:27 +0000
-Subject: [PATCH] ninfod: change variable name to avoid colliding with function
- name
-
-The sys/capability.h header has 'extern int cap_setuid(uid_t uid);'
-function prototype.
-
-Addresses: https://github.com/iputils/iputils/issues/246
-
-Upstream-Status: Backport [https://github.com/iputils/iputils/commit/18f9a84e0e702841d6cc4d5f593de4fbd1348e83]
-Signed-off-by: Sami Kerola <kerolasa@iki.fi>
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- ninfod/ninfod.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/ninfod/ninfod.c b/ninfod/ninfod.c
-index badbf80..28f03af 100644
---- a/ninfod/ninfod.c
-+++ b/ninfod/ninfod.c
-@@ -454,7 +454,7 @@ static void do_daemonize(void)
- /* --------- */
- #ifdef HAVE_LIBCAP
- static const cap_value_t cap_net_raw = CAP_NET_RAW;
--static const cap_value_t cap_setuid = CAP_SETUID;
-+static const cap_value_t cap_setuserid = CAP_SETUID;
- static cap_flag_value_t cap_ok;
- #else
- static uid_t euid;
-@@ -486,7 +486,7 @@ static void limit_capabilities(void)
-
- cap_get_flag(cap_cur_p, CAP_SETUID, CAP_PERMITTED, &cap_ok);
- if (cap_ok != CAP_CLEAR)
-- cap_set_flag(cap_p, CAP_PERMITTED, 1, &cap_setuid, CAP_SET);
-+ cap_set_flag(cap_p, CAP_PERMITTED, 1, &cap_setuserid, CAP_SET);
-
- if (cap_set_proc(cap_p) < 0) {
- DEBUG(LOG_ERR, "cap_set_proc: %s\n", strerror(errno));
-@@ -519,8 +519,8 @@ static void drop_capabilities(void)
-
- /* setuid / setuid */
- if (cap_ok != CAP_CLEAR) {
-- cap_set_flag(cap_p, CAP_PERMITTED, 1, &cap_setuid, CAP_SET);
-- cap_set_flag(cap_p, CAP_EFFECTIVE, 1, &cap_setuid, CAP_SET);
-+ cap_set_flag(cap_p, CAP_PERMITTED, 1, &cap_setuserid, CAP_SET);
-+ cap_set_flag(cap_p, CAP_EFFECTIVE, 1, &cap_setuserid, CAP_SET);
-
- if (cap_set_proc(cap_p) < 0) {
- DEBUG(LOG_ERR, "cap_set_proc: %s\n", strerror(errno));
diff --git a/meta/recipes-extended/iputils/iputils/0001-ninfod-fix-systemd-Documentation-url-error.patch b/meta/recipes-extended/iputils/iputils/0001-ninfod-fix-systemd-Documentation-url-error.patch
deleted file mode 100644
index 03a3f5602d..0000000000
--- a/meta/recipes-extended/iputils/iputils/0001-ninfod-fix-systemd-Documentation-url-error.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From c1f1527eb30d4a5feebf9a0757582bbf7fe3eae9 Mon Sep 17 00:00:00 2001
-From: Andrea Stevanato <andrea.stevanato.95@hotmail.it>
-Date: Tue, 5 Nov 2019 19:08:30 +0000
-Subject: [PATCH] ninfod: fix systemd Documentation url error
-
-systemd[1]: /usr/lib/systemd/system/ninfod.service:3: Invalid URL, ignoring: ninfod(8)
-
-Upstream-Status: Backport [https://github.com/iputils/iputils/commit/c1f1527eb30d4a5feebf9a0757582bbf7fe3eae9]
-Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
----
- systemd/ninfod.service.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/systemd/ninfod.service.in b/systemd/ninfod.service.in
-index 5ab69ca00e96..8e79fcd9238e 100644
---- a/systemd/ninfod.service.in
-+++ b/systemd/ninfod.service.in
-@@ -1,6 +1,6 @@
- [Unit]
- Description=Respond to IPv6 Node Information Queries
--Documentation=ninfod(8)
-+Documentation=man:ninfod(8)
- Requires=network.target
- After=network.target
-
---
-2.17.1
-
diff --git a/meta/recipes-extended/iputils/iputils_s20190709.bb b/meta/recipes-extended/iputils/iputils_s20200821.bb
index 2aed6b56ca..28dd194a12 100644
--- a/meta/recipes-extended/iputils/iputils_s20190709.bb
+++ b/meta/recipes-extended/iputils/iputils_s20200821.bb
@@ -11,11 +11,9 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=55aa8c9fcad0691cef0ecd420361e390"
DEPENDS = "gnutls"
SRC_URI = "git://github.com/iputils/iputils \
- file://0001-ninfod-change-variable-name-to-avoid-colliding-with-.patch \
- file://0001-ninfod-fix-systemd-Documentation-url-error.patch \
file://0001-rarpd-rdisc-Drop-PrivateUsers.patch \
"
-SRCREV = "13e00847176aa23683d68fce1d17ffb523510946"
+SRCREV = "23c3782ae0c7f9c6ae59dbed8ad9204f8758542b"
S = "${WORKDIR}/git"
@@ -25,16 +23,16 @@ UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>s\d+)"
# breaks the version order.
CVE_CHECK_WHITELIST += "CVE-2000-1213 CVE-2000-1214"
-PACKAGECONFIG ??= "libcap libgcrypt rarpd \
+PACKAGECONFIG ??= "libcap rarpd \
${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ninfod traceroute6', '', d)} \
${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
PACKAGECONFIG[libcap] = "-DUSE_CAP=true, -DUSE_CAP=false, libcap"
-PACKAGECONFIG[libgcrypt] = "-DUSE_CRYPTO=gcrypt, -DUSE_CRYPTO=none, libgcrypt"
PACKAGECONFIG[libidn] = "-DUSE_IDN=true, -DUSE_IDN=false, libidn2"
PACKAGECONFIG[gettext] = "-DUSE_GETTEXT=true, -DUSE_GETTEXT=false, gettext"
PACKAGECONFIG[ninfod] = "-DBUILD_NINFOD=true,-DBUILD_NINFOD=false,"
PACKAGECONFIG[rarpd] = "-DBUILD_RARPD=true,-DBUILD_RARPD=false,"
PACKAGECONFIG[systemd] = "-Dsystemdunitdir=${systemd_unitdir}/system,,systemd"
+PACKAGECONFIG[tftpd] = "-DBUILD_TFTPD=true, -DBUILD_TFTPD=false,"
PACKAGECONFIG[traceroute6] = "-DBUILD_TRACEROUTE6=true,-DBUILD_TRACEROUTE6=false,"
PACKAGECONFIG[docs] = "-DBUILD_HTML_MANS=true -DBUILD_MANS=true,-DBUILD_HTML_MANS=false -DBUILD_MANS=false, libxslt"
@@ -48,8 +46,9 @@ ALTERNATIVE_PRIORITY = "100"
ALTERNATIVE_${PN}-ping = "ping"
ALTERNATIVE_LINK_NAME[ping] = "${base_bindir}/ping"
-SPLITPKGS = "${PN}-ping ${PN}-arping ${PN}-tracepath ${PN}-clockdiff ${PN}-tftpd ${PN}-rdisc \
+SPLITPKGS = "${PN}-ping ${PN}-arping ${PN}-tracepath ${PN}-clockdiff ${PN}-rdisc \
${@bb.utils.contains('PACKAGECONFIG', 'rarpd', '${PN}-rarpd', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'tftpd', '${PN}-tftpd', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', '${PN}-traceroute6 ${PN}-ninfod', '', d)}"
PACKAGES += "${SPLITPKGS}"
@@ -62,7 +61,7 @@ FILES_${PN}-arping = "${base_bindir}/arping"
FILES_${PN}-tracepath = "${base_bindir}/tracepath"
FILES_${PN}-traceroute6 = "${base_bindir}/traceroute6"
FILES_${PN}-clockdiff = "${base_bindir}/clockdiff"
-FILES_${PN}-tftpd = "${base_bindir}/tftpd"
+FILES_${PN}-tftpd = "${base_bindir}/tftpd ${sysconfdir}/xinetd.d/tftp"
FILES_${PN}-rarpd = "${base_sbindir}/rarpd ${systemd_unitdir}/system/rarpd@.service"
FILES_${PN}-rdisc = "${base_sbindir}/rdisc"
FILES_${PN}-ninfod = "${base_sbindir}/ninfod ${sysconfdir}/init.d/ninfod.sh"
diff --git a/meta/recipes-extended/less/less_551.bb b/meta/recipes-extended/less/less_562.bb
index a818c68fc7..c900574674 100644
--- a/meta/recipes-extended/less/less_551.bb
+++ b/meta/recipes-extended/less/less_562.bb
@@ -28,8 +28,8 @@ DEPENDS = "ncurses"
SRC_URI = "http://www.greenwoodsoftware.com/${BPN}/${BPN}-${PV}.tar.gz \
"
-SRC_URI[md5sum] = "4ad4408b06d7a6626a055cb453f36819"
-SRC_URI[sha256sum] = "ff165275859381a63f19135a8f1f6c5a194d53ec3187f94121ecd8ef0795fe3d"
+SRC_URI[md5sum] = "0371a9678cb42f37b9bf9b86e8aa7903"
+SRC_URI[sha256sum] = "eab470c7c928132441541aa49b1352c0fc699c30f762dfaeb3bf88e6f0fd701b"
UPSTREAM_CHECK_URI = "http://www.greenwoodsoftware.com/less/download.html"
diff --git a/meta/recipes-extended/libarchive/libarchive_3.4.1.bb b/meta/recipes-extended/libarchive/libarchive_3.4.3.bb
index 2d33dd80ab..dbfc067b93 100644
--- a/meta/recipes-extended/libarchive/libarchive_3.4.1.bb
+++ b/meta/recipes-extended/libarchive/libarchive_3.4.3.bb
@@ -28,13 +28,13 @@ PACKAGECONFIG[expat] = "--with-expat,--without-expat,expat,"
PACKAGECONFIG[lzo] = "--with-lzo2,--without-lzo2,lzo,"
PACKAGECONFIG[nettle] = "--with-nettle,--without-nettle,nettle,"
PACKAGECONFIG[lz4] = "--with-lz4,--without-lz4,lz4,"
+PACKAGECONFIG[mbedtls] = "--with-mbedtls,--without-mbedtls,mbedtls,"
EXTRA_OECONF += "--enable-largefile"
SRC_URI = "http://libarchive.org/downloads/libarchive-${PV}.tar.gz"
-SRC_URI[md5sum] = "59bff5ee6216cbb76c8354f6dd6f5a5a"
-SRC_URI[sha256sum] = "fcf87f3ad8db2e4f74f32526dee62dd1fb9894782b0a503a89c9d7a70a235191"
+SRC_URI[sha256sum] = "ee1e749213c108cb60d53147f18c31a73d6717d7e3d2481c157e1b34c881ea39"
inherit autotools update-alternatives pkgconfig
diff --git a/meta/recipes-extended/libidn/libidn/0001-idn-format-security-warnings.patch b/meta/recipes-extended/libidn/libidn/0001-idn-format-security-warnings.patch
deleted file mode 100644
index 5adc7d9fd9..0000000000
--- a/meta/recipes-extended/libidn/libidn/0001-idn-format-security-warnings.patch
+++ /dev/null
@@ -1,181 +0,0 @@
-From 82f98dcbc429bbe89a9837c533cbcbc02e77c790 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adraszik@tycoint.com>
-Date: Tue, 28 Jun 2016 12:43:31 +0100
-Subject: [PATCH] idn: fix printf() format security warnings
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-| ../../libidn-1.32/src/idn.c: In function 'main':
-| ../../libidn-1.32/src/idn.c:172:7: error: format not a string literal and no format arguments [-Werror=format-security]
-| error (0, 0, _("only one of -s, -e, -d, -a, -u or -n can be specified"));
-| ^~~~~
-| ../../libidn-1.32/src/idn.c:187:5: error: format not a string literal and no format arguments [-Werror=format-security]
-| fprintf (stderr, _("Type each input string on a line by itself, "
-| ^~~~~~~
-| ../../libidn-1.32/src/idn.c:202:4: error: format not a string literal and no format arguments [-Werror=format-security]
-| error (EXIT_FAILURE, errno, _("input error"));
-| ^~~~~
-| ../../libidn-1.32/src/idn.c:220:8: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UTF-8 to UCS-4"));
-| ^
-| ../../libidn-1.32/src/idn.c:245:8: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UTF-8 to UCS-4"));
-| ^
-| ../../libidn-1.32/src/idn.c:281:6: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UTF-8 to UCS-4"));
-| ^
-| ../../libidn-1.32/src/idn.c:340:6: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UCS-4 to UTF-8"));
-| ^
-| ../../libidn-1.32/src/idn.c:364:6: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UCS-4 to UTF-8"));
-| ^
-| ../../libidn-1.32/src/idn.c:442:8: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UCS-4 to UTF-8"));
-| ^
-| ../../libidn-1.32/src/idn.c:498:6: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UTF-8 to UCS-4"));
-| ^
-| ../../libidn-1.32/src/idn.c:527:5: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UTF-8 to UCS-4"));
-| ^
-| ../../libidn-1.32/src/idn.c:540:6: error: format not a string literal and no format arguments [-Werror=format-security]
-| error (EXIT_FAILURE, 0, _("could not do NFKC normalization"));
-| ^~~~~
-| ../../libidn-1.32/src/idn.c:551:5: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UTF-8 to UCS-4"));
-| ^
-
-Signed-off-by: André Draszik <adraszik@tycoint.com>
----
-Upstream-Status: Pending
-
- src/idn.c | 27 ++++++++++++++-------------
- 1 file changed, 14 insertions(+), 13 deletions(-)
-
-diff --git a/src/idn.c b/src/idn.c
-index be1c7d1..68e4291 100644
---- a/src/idn.c
-+++ b/src/idn.c
-@@ -170,7 +170,7 @@ main (int argc, char *argv[])
- (args_info.idna_to_unicode_given ? 1 : 0) +
- (args_info.nfkc_given ? 1 : 0) != 1)
- {
-- error (0, 0, _("only one of -s, -e, -d, -a, -u or -n can be specified"));
-+ error (0, 0, "%s", _("only one of -s, -e, -d, -a, -u or -n can be specified"));
- usage (EXIT_FAILURE);
- }
-
-@@ -185,7 +185,7 @@ main (int argc, char *argv[])
- if (!args_info.quiet_given
- && args_info.inputs_num == 0
- && isatty (fileno (stdin)))
-- fprintf (stderr, _("Type each input string on a line by itself, "
-+ fprintf (stderr, "%s", _("Type each input string on a line by itself, "
- "terminated by a newline character.\n"));
-
- do
-@@ -197,7 +197,7 @@ main (int argc, char *argv[])
- if (feof (stdin))
- break;
-
-- error (EXIT_FAILURE, errno, _("input error"));
-+ error (EXIT_FAILURE, errno, "%s", _("input error"));
- }
-
- if (strlen (line) > 0)
-@@ -215,7 +215,7 @@ main (int argc, char *argv[])
- if (!q)
- {
- free (p);
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UTF-8 to UCS-4"));
- }
-
-@@ -240,7 +240,7 @@ main (int argc, char *argv[])
- if (!q)
- {
- free (r);
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UTF-8 to UCS-4"));
- }
-
-@@ -277,7 +277,7 @@ main (int argc, char *argv[])
- q = stringprep_utf8_to_ucs4 (p, -1, &len);
- free (p);
- if (!q)
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UTF-8 to UCS-4"));
-
- if (args_info.debug_given)
-@@ -336,7 +336,7 @@ main (int argc, char *argv[])
- r = stringprep_ucs4_to_utf8 (q, -1, NULL, NULL);
- free (q);
- if (!r)
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UCS-4 to UTF-8"));
-
- p = stringprep_utf8_to_locale (r);
-@@ -360,7 +360,7 @@ main (int argc, char *argv[])
- q = stringprep_utf8_to_ucs4 (p, -1, NULL);
- free (p);
- if (!q)
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UCS-4 to UTF-8"));
-
- if (args_info.debug_given)
-@@ -438,7 +438,7 @@ main (int argc, char *argv[])
- if (!q)
- {
- free (p);
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UCS-4 to UTF-8"));
- }
-
-@@ -494,7 +494,7 @@ main (int argc, char *argv[])
- r = stringprep_ucs4_to_utf8 (q, -1, NULL, NULL);
- free (q);
- if (!r)
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UTF-8 to UCS-4"));
-
- p = stringprep_utf8_to_locale (r);
-@@ -523,7 +523,7 @@ main (int argc, char *argv[])
- if (!q)
- {
- free (p);
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UTF-8 to UCS-4"));
- }
-
-@@ -537,7 +537,8 @@ main (int argc, char *argv[])
- r = stringprep_utf8_nfkc_normalize (p, -1);
- free (p);
- if (!r)
-- error (EXIT_FAILURE, 0, _("could not do NFKC normalization"));
-+ error (EXIT_FAILURE, 0, "%s",
-+ _("could not do NFKC normalization"));
-
- if (args_info.debug_given)
- {
-@@ -547,7 +548,7 @@ main (int argc, char *argv[])
- if (!q)
- {
- free (r);
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UTF-8 to UCS-4"));
- }
-
---
-2.8.1
-
diff --git a/meta/recipes-extended/libidn/libidn/avoid_AM_PROG_MKDIR_P_warning_error_with_automake_1.12.patch b/meta/recipes-extended/libidn/libidn/avoid_AM_PROG_MKDIR_P_warning_error_with_automake_1.12.patch
deleted file mode 100644
index 43bd232944..0000000000
--- a/meta/recipes-extended/libidn/libidn/avoid_AM_PROG_MKDIR_P_warning_error_with_automake_1.12.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From cdd9e2e960eeb4eda7b08f0113d0cd03524c1d45 Mon Sep 17 00:00:00 2001
-From: Nitin A Kamble <nitin.a.kamble@intel.com>
-Date: Tue, 10 Jul 2012 02:44:30 -0700
-Subject: [PATCH] libidn: fix build with automake 1.12
-
-Upstream-Status: Inappropriate
-
-automake 1.12.x has deprecated AM_PROG_MKDIR_P , and throws a warning for that,
-and the warnings are treated as errors because of the -Werror parameter.
-
-These AM_PROG_MKDIR_P are coming from gettext, and the latest gettext code has not
-eliminated these deprecated macros yet. So disable the treatment of warnings
-as errors until gettext is updated to remove the deprecated macros.
-
-Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
-2012/07/10
-
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 261dad2..c4f935e 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -22,7 +22,7 @@ AC_INIT([GNU Libidn], [1.34], [bug-libidn@gnu.org])
- AC_CONFIG_AUX_DIR([build-aux])
- AC_CONFIG_MACRO_DIR([m4])
- AC_CONFIG_HEADERS(config.h)
--AM_INIT_AUTOMAKE([1.10 -Wall -Werror -Wno-override])
-+AM_INIT_AUTOMAKE([1.10 -Wall -Wno-override])
- m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
-
- # Library code modified: REVISION++
diff --git a/meta/recipes-extended/libidn/libidn/dont-depend-on-help2man.patch b/meta/recipes-extended/libidn/libidn/dont-depend-on-help2man.patch
deleted file mode 100644
index 0863530f29..0000000000
--- a/meta/recipes-extended/libidn/libidn/dont-depend-on-help2man.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Upstream-Status: Inappropriate [disable feature]
-
-Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
-diff -Nurdd libidn-1.26/doc/Makefile.am libidn-1.26/doc/Makefile.am
---- libidn-1.26/doc/Makefile.am 2012-09-18 11:25:45.000000000 +0300
-+++ libidn-1.26/doc/Makefile.am 2013-02-08 07:41:24.591431462 +0200
-@@ -49,15 +49,9 @@
-
- # Man pages.
-
--dist_man_MANS = idn.1 $(gdoc_MANS)
-+dist_man_MANS = $(gdoc_MANS)
- MAINTAINERCLEANFILES = $(dist_man_MANS)
-
--idn.1: $(top_srcdir)/src/idn.c $(top_srcdir)/src/idn.ggo \
-- $(top_srcdir)/configure.ac
-- $(HELP2MAN) \
-- --name="Internationalized Domain Names command line tool" \
-- --output=$@ $(top_builddir)/src/idn$(EXEEXT)
--
- # GDOC
-
- GDOC_BIN = $(srcdir)/gdoc
diff --git a/meta/recipes-extended/libidn/libidn/libidn_fix_for_automake-1.12.patch b/meta/recipes-extended/libidn/libidn/libidn_fix_for_automake-1.12.patch
deleted file mode 100644
index 3c0559e34f..0000000000
--- a/meta/recipes-extended/libidn/libidn/libidn_fix_for_automake-1.12.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From d4f64b78419139eda3c0e1c6ee116bb5f70ea67c Mon Sep 17 00:00:00 2001
-From: Nitin A Kamble <nitin.a.kamble@intel.com>
-Date: Wed, 2 May 2012 18:05:19 -0700
-Subject: [PATCH] libtasn1: fix build with automake 1.12
-
-Upstream-Status: Pending
-
-This patch fixes following issue with automake 1.12
-
-| automake: warnings are treated as errors
-| /srv/home/nitin/builds/build-gcc47/tmp/sysroots/x86_64-linux/usr/share/automake-1.12/am/ltlibrary.am: warning: 'libidn.la': linking libtool libraries using a non-POSIX
-| /srv/home/nitin/builds/build-gcc47/tmp/sysroots/x86_64-linux/usr/share/automake-1.12/am/ltlibrary.am: archiver requires 'AM_PROG_AR' in 'configure.ac'
-
-Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
-2012/05/03
-
----
- configure.ac | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index 8297649..7b9626e 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -33,6 +33,10 @@ AC_SUBST(LT_CURRENT, 18)
- AC_SUBST(LT_REVISION, 0)
- AC_SUBST(LT_AGE, 6)
-
-+# automake 1.12 seems to require this, but automake 1.11 doesn't recognize it
-+m4_pattern_allow([AM_PROG_AR])
-+AM_PROG_AR
-+
- AC_PROG_CC
- gl_EARLY
- lgl_EARLY
diff --git a/meta/recipes-extended/libidn/libidn_1.35.bb b/meta/recipes-extended/libidn/libidn_1.35.bb
deleted file mode 100644
index d5ce5b46bd..0000000000
--- a/meta/recipes-extended/libidn/libidn_1.35.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-SUMMARY = "Internationalized Domain Name support library"
-DESCRIPTION = "Implementation of the Stringprep, Punycode and IDNA specifications defined by the IETF Internationalized Domain Names (IDN) working group."
-HOMEPAGE = "http://www.gnu.org/software/libidn/"
-SECTION = "libs"
-LICENSE = "(LGPLv2.1+ | LGPLv3) & GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=df4be47940a91ee69556f5f71eed4aec \
- file://COPYING.LESSERv2;md5=4fbd65380cdd255951079008b364516c \
- file://COPYING.LESSERv3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
- file://COPYINGv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYINGv3;md5=d32239bcb673463ab874e80d47fae504 \
- file://lib/idna.h;endline=21;md5=37cffad24807f446a24de3e7371f20b9 \
- file://src/idn.c;endline=20;md5=09e97034a8877b3451cb65065fc2c06e"
-DEPENDS = "virtual/libiconv autoconf-archive"
-
-inherit pkgconfig autotools gettext texinfo gtk-doc
-
-SRC_URI = "${GNU_MIRROR}/libidn/${BPN}-${PV}.tar.gz \
- file://libidn_fix_for_automake-1.12.patch \
- file://avoid_AM_PROG_MKDIR_P_warning_error_with_automake_1.12.patch \
- file://dont-depend-on-help2man.patch \
- file://0001-idn-format-security-warnings.patch \
- "
-
-SRC_URI[md5sum] = "bef634141fe39326cb354b75e891fead"
-SRC_URI[sha256sum] = "f11af1005b46b7b15d057d7f107315a1ad46935c7fcdf243c16e46ec14f0fe1e"
-
-# command tool is under GPLv3+, while libidn itself is under LGPLv2.1+ or LGPLv3
-# so package command into a separate package
-PACKAGES =+ "idn"
-FILES_idn = "${bindir}/*"
-
-LICENSE_${PN} = "LGPLv2.1+ | LGPLv3"
-LICENSE_idn = "GPLv3+"
-
-EXTRA_OECONF = "--disable-csharp"
-
-do_install_append() {
- rm -rf ${D}${datadir}/emacs
-}
-
-BBCLASSEXTEND = "native nativesdk"
-
diff --git a/meta/recipes-extended/libnsl/libnsl2_git.bb b/meta/recipes-extended/libnsl/libnsl2_git.bb
index 28c84af7ad..badb71d977 100644
--- a/meta/recipes-extended/libnsl/libnsl2_git.bb
+++ b/meta/recipes-extended/libnsl/libnsl2_git.bb
@@ -10,9 +10,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
SECTION = "libs"
DEPENDS = "libtirpc"
-PV = "1.2.0+git${SRCPV}"
+PV = "1.3.0"
-SRCREV = "4a062cf4180d99371198951e4ea5b4550efd58a3"
+SRCREV = "fbad7b36acaa89a54023930af70805649f962999"
SRC_URI = "git://github.com/thkukuk/libnsl \
"
diff --git a/meta/recipes-extended/libpipeline/libpipeline_1.5.2.bb b/meta/recipes-extended/libpipeline/libpipeline_1.5.3.bb
index a182461607..ee15fd0644 100644
--- a/meta/recipes-extended/libpipeline/libpipeline_1.5.2.bb
+++ b/meta/recipes-extended/libpipeline/libpipeline_1.5.3.bb
@@ -7,8 +7,7 @@ LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
SRC_URI = "${SAVANNAH_GNU_MIRROR}/libpipeline/libpipeline-${PV}.tar.gz"
-SRC_URI[md5sum] = "169de4cc1f6f7f7d430a5bed858b2fd3"
-SRC_URI[sha256sum] = "fd59c649c1ae9d67604d1644f116ad4d297eaa66f838e3dfab96b41e85b059fb"
+SRC_URI[sha256sum] = "5dbf08faf50fad853754293e57fd4e6c69bb8e486f176596d682c67e02a0adb0"
inherit pkgconfig autotools
diff --git a/meta/recipes-extended/libsolv/libsolv_0.7.10.bb b/meta/recipes-extended/libsolv/libsolv_0.7.14.bb
index 265a27c00d..5179d4565a 100644
--- a/meta/recipes-extended/libsolv/libsolv_0.7.10.bb
+++ b/meta/recipes-extended/libsolv/libsolv_0.7.14.bb
@@ -10,7 +10,7 @@ DEPENDS = "expat zlib"
SRC_URI = "git://github.com/openSUSE/libsolv.git \
"
-SRCREV = "605dd2645ef899e2b7c95709476fb51e28d7e378"
+SRCREV = "b264537ea43ce39d93d8d97fcca16e97825beaa0"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
@@ -19,7 +19,7 @@ S = "${WORKDIR}/git"
inherit cmake
PACKAGECONFIG ??= "${@bb.utils.contains('PACKAGE_CLASSES','package_rpm','rpm','',d)}"
-PACKAGECONFIG[rpm] = "-DENABLE_RPMMD=ON -DENABLE_RPMDB=ON,,rpm"
+PACKAGECONFIG[rpm] = "-DENABLE_RPMMD=ON -DENABLE_RPMDB=ON -DENABLE_RPMDB_BDB=ON,,rpm"
EXTRA_OECMAKE = "-DMULTI_SEMANTICS=ON -DENABLE_COMPLEX_DEPS=ON"
diff --git a/meta/recipes-extended/libtirpc/libtirpc/0001-xdr_float-do-not-include-bits-endian.h.patch b/meta/recipes-extended/libtirpc/libtirpc/0001-xdr_float-do-not-include-bits-endian.h.patch
deleted file mode 100644
index 3797cdf521..0000000000
--- a/meta/recipes-extended/libtirpc/libtirpc/0001-xdr_float-do-not-include-bits-endian.h.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From d04f4d6f0e682f16b0ce96839ab4eadade591eb1 Mon Sep 17 00:00:00 2001
-From: Rosen Penev <rosenp@gmail.com>
-Date: Tue, 21 Jan 2020 11:51:16 -0500
-Subject: [PATCH] xdr_float: do not include bits/endian.h
-
-bits/endian.h is an internal header. endian.h should be included.
-
-Fixes compilation with recent musl.
-
-Signed-off-by: Rosen Penev <rosenp@gmail.com>
-Signed-off-by: Steve Dickson <steved@redhat.com>
-
-Upstream-Status: Backport [http://git.linux-nfs.org/?p=steved/libtirpc.git;a=commit;h=d04f4d6f0e682f16b0ce96839ab4eadade591eb1]
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- src/xdr_float.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/xdr_float.c b/src/xdr_float.c
-index 26bc865..349d48f 100644
---- a/src/xdr_float.c
-+++ b/src/xdr_float.c
-@@ -83,7 +83,7 @@ static struct sgl_limits {
- };
- #else
-
--#include <bits/endian.h>
-+#include <endian.h>
- #define IEEEFP
-
- #endif /* vax */
---
-2.21.1
-
diff --git a/meta/recipes-extended/libtirpc/libtirpc_1.2.5.bb b/meta/recipes-extended/libtirpc/libtirpc_1.2.6.bb
index fc66821ecc..10a324c3b6 100644
--- a/meta/recipes-extended/libtirpc/libtirpc_1.2.5.bb
+++ b/meta/recipes-extended/libtirpc/libtirpc_1.2.6.bb
@@ -9,20 +9,16 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=f835cce8852481e4b2bbbdd23b5e47f3 \
PROVIDES = "virtual/librpc"
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.bz2 \
- file://0001-xdr_float-do-not-include-bits-endian.h.patch \
- "
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.bz2"
UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/libtirpc/files/libtirpc/"
UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)/"
-SRC_URI[md5sum] = "688787ddff7c6a92ef15ae3f5dc4dfa1"
-SRC_URI[sha256sum] = "f3b6350c7e9c3cd9c58fc7a5e5f8e6be469cc571bb5eb31eb9790b3e675186ca"
+SRC_URI[md5sum] = "b25f9cc18bfad50f7c446c77f4ae00bb"
+SRC_URI[sha256sum] = "4278e9a5181d5af9cd7885322fdecebc444f9a3da87c526e7d47f7a12a37d1cc"
inherit autotools pkgconfig
EXTRA_OECONF = "--disable-gssapi"
-CFLAGS += "-fcommon"
-
do_install_append() {
chown root:root ${D}${sysconfdir}/netconfig
}
diff --git a/meta/recipes-extended/logrotate/logrotate/update-the-manual.patch b/meta/recipes-extended/logrotate/logrotate/0001-Update-the-manual.patch
index 725567e0c9..50a3852078 100644
--- a/meta/recipes-extended/logrotate/logrotate/update-the-manual.patch
+++ b/meta/recipes-extended/logrotate/logrotate/0001-Update-the-manual.patch
@@ -1,4 +1,4 @@
-From bf22e8805df69344f6f20cea390e829a22fa741b Mon Sep 17 00:00:00 2001
+From 3e2cfa88b6538bb0fee3d9a6e99622055d05ac4a Mon Sep 17 00:00:00 2001
From: Robert Yang <liezhi.yang@windriver.com>
Date: Tue, 17 Feb 2015 21:14:37 -0800
Subject: [PATCH] Update the manual
@@ -8,23 +8,24 @@ Update the manual for rotating on different filesystems.
Upstream-Status: Pending
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+
---
logrotate.8.in | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/logrotate.8.in b/logrotate.8.in
-index 951e406..581bf48 100644
+index 98fea91..70b4c44 100644
--- a/logrotate.8.in
+++ b/logrotate.8.in
-@@ -445,12 +445,10 @@ Do not rotate the log if it is empty (this overrides the \fBifempty\fR option).
+@@ -202,12 +202,10 @@ at all (use with caution, may waste performance and disk space). Default is 0.
.TP
\fBolddir \fIdirectory\fR
--Logs are moved into \fIdirectory\fR for rotation. The \fIdirectory\fR must be
+-Logs are moved into \fIdirectory\fR for rotation. The \fIdirectory\fR must be
-on the same physical device as the log file being rotated, unless \fBcopy\fR,
--\fBcopytruncate\fR or \fBrenamecopy\fR option is used. The \fIdirectory\fR
+-\fBcopytruncate\fR or \fBrenamecopy\fR option is used. The \fIdirectory\fR
-is assumed to be relative to the directory holding the log file
--unless an absolute path name is specified. When this option is used all
+-unless an absolute path name is specified. When this option is used all
-old versions of the log end up in \fIdirectory\fR. This option may be
+Logs are moved into \fIdirectory\fR for rotation. The \fIdirectory\fR
+is assumed to be relative to the directory holding the log file unless
@@ -34,5 +35,5 @@ index 951e406..581bf48 100644
.TP
--
-1.8.3.1
+2.24.0
diff --git a/meta/recipes-extended/logrotate/logrotate/act-as-mv-when-rotate.patch b/meta/recipes-extended/logrotate/logrotate/act-as-mv-when-rotate.patch
index 79805b5148..671fce4ac8 100644
--- a/meta/recipes-extended/logrotate/logrotate/act-as-mv-when-rotate.patch
+++ b/meta/recipes-extended/logrotate/logrotate/act-as-mv-when-rotate.patch
@@ -1,4 +1,4 @@
-From c637948ebab5aff5641700c5cf613321ca0a6e6b Mon Sep 17 00:00:00 2001
+From 17d57a2a923a4af53c8910a9999aebeab3f5d83a Mon Sep 17 00:00:00 2001
From: Robert Yang <liezhi.yang@windriver.com>
Date: Tue, 17 Feb 2015 21:08:07 -0800
Subject: [PATCH] Act as the "mv" command when rotate log
@@ -9,15 +9,16 @@ read and write.
Upstream-Status: Pending
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+
---
logrotate.c | 71 ++++++++++++++++++++++++++++++++++++++++++++---------
1 file changed, 59 insertions(+), 12 deletions(-)
diff --git a/logrotate.c b/logrotate.c
-index 54dac90..bf3ec23 100644
+index 45b3eb6..231371a 100644
--- a/logrotate.c
+++ b/logrotate.c
-@@ -1360,6 +1360,53 @@ static int findNeedRotating(struct logInfo *log, int logNum, int force)
+@@ -1463,6 +1463,53 @@ static int findNeedRotating(const struct logInfo *log, unsigned logNum, int forc
return 0;
}
@@ -71,7 +72,7 @@ index 54dac90..bf3ec23 100644
/* find the rotated file with the highest index */
static int findLastRotated(const struct logNames *rotNames,
const char *fileext, const char *compext)
-@@ -1800,15 +1847,15 @@ static int prerotateSingleLog(struct logInfo *log, int logNum,
+@@ -1958,15 +2005,15 @@ static int prerotateSingleLog(const struct logInfo *log, unsigned logNum,
}
message(MESS_DEBUG,
@@ -90,7 +91,7 @@ index 54dac90..bf3ec23 100644
oldName, newName, strerror(errno));
hasErrors = 1;
}
-@@ -1891,21 +1938,21 @@ static int rotateSingleLog(struct logInfo *log, int logNum,
+@@ -2051,10 +2098,10 @@ static int rotateSingleLog(const struct logInfo *log, unsigned logNum,
return 1;
}
@@ -104,7 +105,8 @@ index 54dac90..bf3ec23 100644
log->files[logNum], tmpFilename,
strerror(errno));
hasErrors = 1;
- }
+@@ -2063,11 +2110,11 @@ static int rotateSingleLog(const struct logInfo *log, unsigned logNum,
+ free(tmpFilename);
}
else {
- message(MESS_DEBUG, "renaming %s to %s\n", log->files[logNum],
@@ -118,7 +120,7 @@ index 54dac90..bf3ec23 100644
log->files[logNum], rotNames->finalName,
strerror(errno));
hasErrors = 1;
-@@ -2297,7 +2344,7 @@ static int rotateLogSet(struct logInfo *log, int force)
+@@ -2480,7 +2527,7 @@ static int rotateLogSet(const struct logInfo *log, int force)
return hasErrors;
}
@@ -127,16 +129,16 @@ index 54dac90..bf3ec23 100644
{
struct logState *p;
FILE *f;
-@@ -2460,7 +2507,7 @@ static int writeState(const char *stateFilename)
+@@ -2659,7 +2706,7 @@ static int writeState(const char *stateFilename)
fclose(f);
if (error == 0) {
- if (rename(tmpFilename, stateFilename)) {
+ if (mvFile(tmpFilename, stateFilename, log, prev_acl)) {
+ message(MESS_ERROR, "error renaming temp state file %s to %s: %s\n",
+ tmpFilename, stateFilename, strerror(errno));
unlink(tmpFilename);
- error = 1;
- message(MESS_ERROR, "error renaming temp state file %s\n",
-@@ -2805,7 +2852,7 @@ int main(int argc, const char **argv)
+@@ -3073,7 +3120,7 @@ int main(int argc, const char **argv)
rc |= rotateLogSet(log, force);
if (!debug)
@@ -145,6 +147,3 @@ index 54dac90..bf3ec23 100644
return (rc != 0);
}
---
-2.18.1
-
diff --git a/meta/recipes-extended/logrotate/logrotate/disable-check-different-filesystems.patch b/meta/recipes-extended/logrotate/logrotate/disable-check-different-filesystems.patch
index 96ff098a3f..d7f9a02cc8 100644
--- a/meta/recipes-extended/logrotate/logrotate/disable-check-different-filesystems.patch
+++ b/meta/recipes-extended/logrotate/logrotate/disable-check-different-filesystems.patch
@@ -1,4 +1,4 @@
-From e47796c8e8270a3d14f0b06af8a9e916c2225514 Mon Sep 17 00:00:00 2001
+From 16c1833ade4c036b30b8761d2c4a5bd85cc65c44 Mon Sep 17 00:00:00 2001
From: Robert Yang <liezhi.yang@windriver.com>
Date: Tue, 8 Jan 2019 06:27:06 +0000
Subject: [PATCH] Disable the check for different filesystems
@@ -9,30 +9,28 @@ disable the check for different filesystems.
Upstream-Status: Pending
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+
---
config.c | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/config.c b/config.c
-index 633b843..99a4a3b 100644
+index d2488f1..1de3745 100644
--- a/config.c
+++ b/config.c
-@@ -1765,15 +1765,6 @@ duperror:
- goto error;
- }
+@@ -1902,15 +1902,6 @@ duperror:
}
+
+ free(ld);
-
- if (sb.st_dev != sb2.st_dev
- && !(newlog->flags & (LOG_FLAG_COPYTRUNCATE | LOG_FLAG_COPY | LOG_FLAG_TMPFILENAME))) {
- message(MESS_ERROR,
- "%s:%d olddir %s and log file %s "
- "are on different devices\n", configFile,
-- lineNum, newlog->oldDir, newlog->files[i]);
+- lineNum, newlog->oldDir, newlog->files[j]);
- goto error;
- }
}
}
---
-2.18.1
-
diff --git a/meta/recipes-extended/logrotate/logrotate_3.15.1.bb b/meta/recipes-extended/logrotate/logrotate_3.17.0.bb
index 7c7d51b39e..08001f38e5 100644
--- a/meta/recipes-extended/logrotate/logrotate_3.15.1.bb
+++ b/meta/recipes-extended/logrotate/logrotate_3.17.0.bb
@@ -9,24 +9,16 @@ DEPENDS="coreutils popt"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-# When updating logrotate to latest upstream, SRC_URI should point to
-# a proper release tarball from https://github.com/logrotate/logrotate/releases
-# and we have to take the snapshot for now because there is no such
-# tarball available for 3.9.1.
-
-S = "${WORKDIR}/${BPN}-${PV}"
-
UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
UPSTREAM_CHECK_REGEX = "logrotate-(?P<pver>\d+(\.\d+)+).tar"
SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz \
file://act-as-mv-when-rotate.patch \
- file://update-the-manual.patch \
+ file://0001-Update-the-manual.patch \
file://disable-check-different-filesystems.patch \
"
-SRC_URI[md5sum] = "afe109afea749c306ff489203fde6beb"
-SRC_URI[sha256sum] = "491fec9e89f1372f02a0ab66579aa2e9d63cac5178dfa672c204c88e693a908b"
+SRC_URI[sha256sum] = "58cc2178ff57faa3c0490181cce041345aeca6cff18dba1c5cd1398bf1c19294"
PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'acl selinux', d)}"
diff --git a/meta/recipes-extended/lsb/lsb-release/0001-Remove-timestamp-from-manpage.patch b/meta/recipes-extended/lsb/lsb-release/0001-Remove-timestamp-from-manpage.patch
new file mode 100644
index 0000000000..af095fd322
--- /dev/null
+++ b/meta/recipes-extended/lsb/lsb-release/0001-Remove-timestamp-from-manpage.patch
@@ -0,0 +1,27 @@
+From fb0b58be938bab5571ac0bdec3725f6d88b07e9f Mon Sep 17 00:00:00 2001
+From: Jeremy Puhlman <jpuhlman@mvista.com>
+Date: Sat, 22 Feb 2020 19:01:28 +0000
+Subject: [PATCH] Remove timestamp from manpage
+
+Upstream-Status: Submitted [lsb-discuss@lists.linux-foundation.org]
+Signed-off-by: Jeremy A. Puhlman <jpuhlman@mvista.com>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 04fdecd..5be8081 100644
+--- a/Makefile
++++ b/Makefile
+@@ -17,7 +17,7 @@ man: lsb_release.1.gz
+
+ lsb_release.1.gz: lsb_release
+ @./help2man -N --include ./lsb_release.examples --alt_version_key=program_version ./lsb_release >lsb_release.1
+- @gzip -9f lsb_release.1
++ @gzip -9fn lsb_release.1
+
+ install: all
+ install -D -m 644 lsb_release.1.gz ${mandir}/man1/lsb_release.1.gz
+--
+2.13.3
+
diff --git a/meta/recipes-extended/lsb/lsb-release_1.4.bb b/meta/recipes-extended/lsb/lsb-release_1.4.bb
index 52e30267f5..a06cbcf845 100644
--- a/meta/recipes-extended/lsb/lsb-release_1.4.bb
+++ b/meta/recipes-extended/lsb/lsb-release_1.4.bb
@@ -10,6 +10,7 @@ LIC_FILES_CHKSUM = "file://README;md5=12da544b1a3a5a1795a21160b49471cf"
SRC_URI = "${SOURCEFORGE_MIRROR}/project/lsb/lsb_release/1.4/lsb-release-1.4.tar.gz \
file://0001-fix-lsb_release-to-work-with-busybox-head-and-find.patch \
+ file://0001-Remove-timestamp-from-manpage.patch \
"
SRC_URI[md5sum] = "30537ef5a01e0ca94b7b8eb6a36bb1e4"
diff --git a/meta/recipes-extended/ltp/ltp/0001-Add-more-musl-exclusions.patch b/meta/recipes-extended/ltp/ltp/0001-Add-more-musl-exclusions.patch
index d3af31f34a..f2fc8ee958 100644
--- a/meta/recipes-extended/ltp/ltp/0001-Add-more-musl-exclusions.patch
+++ b/meta/recipes-extended/ltp/ltp/0001-Add-more-musl-exclusions.patch
@@ -1,63 +1,22 @@
-From 788c47ceef7f115ab7f7aa17f918e58795f4e6c7 Mon Sep 17 00:00:00 2001
+From ad8e73306cb8293f7d32841e1599fd9048801f1f Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Fri, 20 Dec 2019 13:06:05 +0100
Subject: [PATCH] Add more musl exclusions
Upstream-Status: Pending
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+[ pvorel: rebase for 20200515: enable accept4_01 ]
+[ pvorel: rebase for 20200120: enable fanotify13, fanotify15, setxattr03 ]
+Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
---
- testcases/kernel/syscalls/accept4/Makefile | 4 ++++
- testcases/kernel/syscalls/fanotify/Makefile | 6 ++++++
- testcases/kernel/syscalls/setxattr/Makefile | 4 ++++
testcases/kernel/syscalls/timer_create/Makefile | 4 ++++
- 4 files changed, 18 insertions(+)
+ 1 file changed, 4 insertions(+)
-diff --git a/testcases/kernel/syscalls/accept4/Makefile b/testcases/kernel/syscalls/accept4/Makefile
-index 504042e11..94db06266 100644
---- a/testcases/kernel/syscalls/accept4/Makefile
-+++ b/testcases/kernel/syscalls/accept4/Makefile
-@@ -20,4 +20,8 @@ top_srcdir ?= ../../../..
-
- include $(top_srcdir)/include/mk/testcases.mk
-
-+ifeq ($(LIBC),musl)
-+FILTER_OUT_MAKE_TARGETS := accept4_01
-+endif
-+
- include $(top_srcdir)/include/mk/generic_leaf_target.mk
-diff --git a/testcases/kernel/syscalls/fanotify/Makefile b/testcases/kernel/syscalls/fanotify/Makefile
-index 5d01b4825..0263a6e20 100644
---- a/testcases/kernel/syscalls/fanotify/Makefile
-+++ b/testcases/kernel/syscalls/fanotify/Makefile
-@@ -20,4 +20,10 @@ top_srcdir ?= ../../../..
- fanotify11: CFLAGS+=-pthread
- include $(top_srcdir)/include/mk/testcases.mk
-
-+ifeq ($(LIBC),musl)
-+FILTER_OUT_MAKE_TARGETS := fanotify13 fanotify15
-+endif
-+
- include $(top_srcdir)/include/mk/generic_leaf_target.mk
-+
-+
-diff --git a/testcases/kernel/syscalls/setxattr/Makefile b/testcases/kernel/syscalls/setxattr/Makefile
-index 72544c13e..7f20b2780 100644
---- a/testcases/kernel/syscalls/setxattr/Makefile
-+++ b/testcases/kernel/syscalls/setxattr/Makefile
-@@ -20,4 +20,8 @@ top_srcdir ?= ../../../..
-
- include $(top_srcdir)/include/mk/testcases.mk
-
-+ifeq ($(LIBC),musl)
-+FILTER_OUT_MAKE_TARGETS := setxattr03
-+endif
-+
- include $(top_srcdir)/include/mk/generic_leaf_target.mk
diff --git a/testcases/kernel/syscalls/timer_create/Makefile b/testcases/kernel/syscalls/timer_create/Makefile
-index 8de247075..eb240f432 100644
+index ada241fe1..d454b01e7 100644
--- a/testcases/kernel/syscalls/timer_create/Makefile
+++ b/testcases/kernel/syscalls/timer_create/Makefile
-@@ -20,6 +20,10 @@ top_srcdir ?= ../../../..
+@@ -5,6 +5,10 @@ top_srcdir ?= ../../../..
include $(top_srcdir)/include/mk/testcases.mk
@@ -68,3 +27,6 @@ index 8de247075..eb240f432 100644
CPPFLAGS += -D_GNU_SOURCE -I$(abs_srcdir)/../include
LDLIBS += -lpthread -lrt
+--
+2.26.2
+
diff --git a/meta/recipes-extended/ltp/ltp/0001-Remove-OOM-tests-from-runtest-mm.patch b/meta/recipes-extended/ltp/ltp/0001-Remove-OOM-tests-from-runtest-mm.patch
new file mode 100644
index 0000000000..6b665030c3
--- /dev/null
+++ b/meta/recipes-extended/ltp/ltp/0001-Remove-OOM-tests-from-runtest-mm.patch
@@ -0,0 +1,34 @@
+From 13ef88cdccfe3f58c53d57806866b91e310eb272 Mon Sep 17 00:00:00 2001
+From: "Mingde (Matthew) Zeng" <matthewzmd@gmail.com>
+Date: Wed, 29 Jul 2020 08:47:09 -0400
+Subject: [PATCH] Remove OOM tests from runtest/mm
+
+Disable OOM tests, as they might cause oeqa ssh connection lost
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Mingde (Matthew) Zeng <matthew.zeng@windriver.com>
+
+---
+ runtest/mm | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/runtest/mm b/runtest/mm
+index a09f39c1e..76fa82754 100644
+--- a/runtest/mm
++++ b/runtest/mm
+@@ -73,12 +73,6 @@ ksm06 ksm06
+ ksm06_1 ksm06 -n 10
+ ksm06_2 ksm06 -n 10000
+
+-oom01 oom01
+-oom02 oom02
+-oom03 oom03
+-oom04 oom04
+-oom05 oom05
+-
+ swapping01 swapping01 -i 5
+
+ thp01 thp01 -I 120
+--
+2.27.0
+
diff --git a/meta/recipes-extended/ltp/ltp/0001-build-Add-option-to-select-libc-implementation.patch b/meta/recipes-extended/ltp/ltp/0001-build-Add-option-to-select-libc-implementation.patch
index 1705abcf19..29b2bf7e41 100644
--- a/meta/recipes-extended/ltp/ltp/0001-build-Add-option-to-select-libc-implementation.patch
+++ b/meta/recipes-extended/ltp/ltp/0001-build-Add-option-to-select-libc-implementation.patch
@@ -1,28 +1,36 @@
-From 62c3481c73a2414d7a5f0a70808bfc9a06195bd9 Mon Sep 17 00:00:00 2001
+From 74958c3e341de713b596c8cfd35b2391d6c7bc09 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 7 Jan 2016 18:19:03 +0000
Subject: [PATCH] build: Add option to select libc implementation
There are more than glibc for C library implementation available on
linux now a days, uclibc cloaked like glibc but musl e.g. is very
-different and does not implement all GNU extentions
+different and does not implement all GNU extensions.
Disable tests specifically not building _yet_ on musl based systems
-Upstream-Status: Pending
+Upstream-Status: Pending (pvorel: this is not going to be fixed, instead
+each test needs to be fixed)
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
+rt_tgsigqueueinfo fails with:
+rt_tgsigqueueinfo01.c: In function 'sigusr1_handler':
+rt_tgsigqueueinfo01.c:42:22: error: 'siginfo_t' {aka 'struct <anonymous>'} has no member named '_sifields'; did you mean '__si_fields'?
+ 42 | sigval_rcv = uinfo->_sifields._rt.SI_SIGVAL.sival_ptr;
+ | ^~~~~~~~~
+ | __si_fields
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+[ pvorel: rebase for 20200515: enable pty, ioctl ]
+[ pvorel: rebase for 20200120: enable mallopt, profil, rpc016,
+rt_sigsuspend, sbrk_mutex, setdomainname, sethostname, sigsuspend,
+testpi-3, testpi-5, testpi-6, ustat; move rt_tgsigqueueinfo
+from 0006-rt_tgsigqueueinfo-disable-test-on-musl.patch ]
+Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
---
- Makefile | 5 +++++
- testcases/kernel/Makefile | 5 ++++-
- testcases/kernel/sched/Makefile | 4 +++-
- testcases/kernel/syscalls/Makefile | 5 +++++
- testcases/network/nfsv4/acl/Makefile | 4 ++++
- testcases/network/rpc/basic_tests/Makefile | 5 +++++
- testcases/realtime/func/pi-tests/Makefile | 4 ++++
- testcases/realtime/stress/pi-tests/Makefile | 5 +++++
- 8 files changed, 35 insertions(+), 2 deletions(-)
+ Makefile | 5 +++++
+ testcases/kernel/sched/Makefile | 4 +++-
+ testcases/kernel/syscalls/Makefile | 4 ++++
+ 3 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 768ca4606..e9d679a71 100644
@@ -40,28 +48,6 @@ index 768ca4606..e9d679a71 100644
# CLEAN_TARGETS: Targets which exist solely in clean.
# COMMON_TARGETS: Targets which exist in all, clean, and install.
# INSTALL_TARGETS: Targets which exist in clean and install (contains
-diff --git a/testcases/kernel/Makefile b/testcases/kernel/Makefile
-index 3319b3163..94ea362c8 100644
---- a/testcases/kernel/Makefile
-+++ b/testcases/kernel/Makefile
-@@ -49,13 +49,16 @@ SUBDIRS += connectors \
- logging \
- mem \
- numa \
-- pty \
- sched \
- security \
- sound \
- tracing \
- uevents \
-
-+ifneq ($(LIBC),musl)
-+SUBDIRS += pty
-+endif
-+
- ifeq ($(WITH_POWER_MANAGEMENT_TESTSUITE),yes)
- SUBDIRS += power_management
- endif
diff --git a/testcases/kernel/sched/Makefile b/testcases/kernel/sched/Makefile
index 6a57d79ee..74bb93370 100644
--- a/testcases/kernel/sched/Makefile
@@ -76,73 +62,20 @@ index 6a57d79ee..74bb93370 100644
+endif
include $(top_srcdir)/include/mk/generic_trunk_target.mk
diff --git a/testcases/kernel/syscalls/Makefile b/testcases/kernel/syscalls/Makefile
-index 45a00cf7d..d1becd054 100644
+index c6dc8d9e7..aa50761ea 100644
--- a/testcases/kernel/syscalls/Makefile
+++ b/testcases/kernel/syscalls/Makefile
-@@ -28,6 +28,11 @@ ifeq ($(UCLINUX),1)
- FILTER_OUT_DIRS += capget capset chmod chown clone fork getcontext llseek \
+@@ -15,6 +15,10 @@ FILTER_OUT_DIRS += capget capset chmod chown clone fork getcontext llseek \
mincore mprotect nftw profil remap_file_pages sbrk
endif
-+ifeq ($(LIBC),musl)
-+FILTER_OUT_DIRS += confstr fmtmsg getcontext ioctl mallopt profil \
-+ rt_sigsuspend setdomainname sethostname sigsuspend \
-+ ustat
-+endif
-
- ifeq ($(UCLIBC),1)
- FILTER_OUT_DIRS += profil
-diff --git a/testcases/network/nfsv4/acl/Makefile b/testcases/network/nfsv4/acl/Makefile
-index 8c55a6bbd..f7cda621d 100644
---- a/testcases/network/nfsv4/acl/Makefile
-+++ b/testcases/network/nfsv4/acl/Makefile
-@@ -26,4 +26,8 @@ include $(top_srcdir)/include/mk/env_pre.mk
-
- LDLIBS += $(ACL_LIBS)
-
-+ifeq ($(LIBC),musl)
-+FILTER_OUT_MAKE_TARGETS := acl1
-+endif
-+
- include $(top_srcdir)/include/mk/generic_leaf_target.mk
-diff --git a/testcases/network/rpc/basic_tests/Makefile b/testcases/network/rpc/basic_tests/Makefile
-index 66e9d5675..ea8eb8a98 100644
---- a/testcases/network/rpc/basic_tests/Makefile
-+++ b/testcases/network/rpc/basic_tests/Makefile
-@@ -23,4 +23,9 @@
- top_srcdir ?= ../../../..
-
- include $(top_srcdir)/include/mk/env_pre.mk
-+
-+ifeq ($(LIBC),musl)
-+FILTER_OUT_DIRS += rpc01
-+endif
-+
- include $(top_srcdir)/include/mk/generic_trunk_target.mk
-diff --git a/testcases/realtime/func/pi-tests/Makefile b/testcases/realtime/func/pi-tests/Makefile
-index 68616a711..748754bb4 100644
---- a/testcases/realtime/func/pi-tests/Makefile
-+++ b/testcases/realtime/func/pi-tests/Makefile
-@@ -27,5 +27,9 @@ include $(top_srcdir)/include/mk/env_pre.mk
- include $(abs_srcdir)/../../config.mk
- MAKE_TARGETS := testpi-0 testpi-1 testpi-2 testpi-4 testpi-5 testpi-6 testpi-7 sbrk_mutex
+ifeq ($(LIBC),musl)
-+FILTER_OUT_MAKE_TARGETS := testpi-5 testpi-6 sbrk_mutex
++FILTER_OUT_DIRS += confstr fmtmsg getcontext rt_tgsigqueueinfo
+endif
+
-
- include $(top_srcdir)/include/mk/generic_leaf_target.mk
-diff --git a/testcases/realtime/stress/pi-tests/Makefile b/testcases/realtime/stress/pi-tests/Makefile
-index 1881f7565..266e0b815 100644
---- a/testcases/realtime/stress/pi-tests/Makefile
-+++ b/testcases/realtime/stress/pi-tests/Makefile
-@@ -24,4 +24,9 @@ top_srcdir ?= ../../../..
-
- include $(top_srcdir)/include/mk/env_pre.mk
- include $(abs_srcdir)/../../config.mk
-+
-+ifeq ($(LIBC),musl)
-+FILTER_OUT_MAKE_TARGETS := testpi-3
-+endif
-+
- include $(top_srcdir)/include/mk/generic_leaf_target.mk
+ ifeq ($(UCLIBC),1)
+ FILTER_OUT_DIRS += profil
+ endif
+--
+2.26.2
+
diff --git a/meta/recipes-extended/ltp/ltp/0001-mkswap01.sh-Add-udevadm-trigger-before-swap-verifica.patch b/meta/recipes-extended/ltp/ltp/0001-mkswap01.sh-Add-udevadm-trigger-before-swap-verifica.patch
deleted file mode 100644
index 1b433d3ad3..0000000000
--- a/meta/recipes-extended/ltp/ltp/0001-mkswap01.sh-Add-udevadm-trigger-before-swap-verifica.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From fae8852a63d9fa6e56fb8b24eaf10560bd13757f Mon Sep 17 00:00:00 2001
-From: Yongxin Liu <yongxin.liu@windriver.com>
-Date: Tue, 12 Nov 2019 11:33:50 +0800
-Subject: [PATCH] mkswap01.sh: Add "udevadm trigger" before swap verification
-
-Fix: https://github.com/linux-test-project/ltp/issues/458
-
-Sometimes the swap device cannot show up in /dev/disk/by-uuid/
-or /dev/disk/by-lable/ due to the issue #458. When this issue
-happens, "blkid -c /dev/null" and "ls /dev/disk/by-uuid/" show
-different UUID of the device.
-
-Upstream-Status: Submitted [https://patchwork.ozlabs.org/patch/1193414]
-
-Signed-off-by: Yongxin Liu <yongxin.liu@windriver.com>
----
- testcases/commands/mkswap/mkswap01.sh | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/testcases/commands/mkswap/mkswap01.sh b/testcases/commands/mkswap/mkswap01.sh
-index 3a348c6e6..9437c4a4e 100755
---- a/testcases/commands/mkswap/mkswap01.sh
-+++ b/testcases/commands/mkswap/mkswap01.sh
-@@ -129,6 +129,8 @@ mkswap_test()
- return
- fi
-
-+ udevadm trigger --name-match=$TST_DEVICE
-+
- if [ -n "$device" ]; then
- mkswap_verify "$mkswap_op" "$op_arg" "$device" "$size" "$dev_file"
- if [ $? -ne 0 ]; then
---
-2.14.4
-
diff --git a/meta/recipes-extended/ltp/ltp/0001-nm01-Remove-prefix-zeros-of-the-addresses-output-by-.patch b/meta/recipes-extended/ltp/ltp/0001-nm01-Remove-prefix-zeros-of-the-addresses-output-by-.patch
deleted file mode 100644
index fe5e7314e0..0000000000
--- a/meta/recipes-extended/ltp/ltp/0001-nm01-Remove-prefix-zeros-of-the-addresses-output-by-.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 59cb0dd9f8e65b2d398fcaf4d163cbc8e1d0ae45 Mon Sep 17 00:00:00 2001
-From: He Zhe <zhe.he@windriver.com>
-Date: Tue, 31 Dec 2019 15:02:48 +0800
-Subject: [PATCH] nm01: Remove prefix zeros of the addresses output by nm
- before comparing
-
-The latest nm v2.33.1 outputs symbols addresses without prefix zeros
-for "nm -f posix", which causes the following error.
-nm01 5 TFAIL: Got wrong format with -f bsd
-
-Let's remove the prefix zeros before comparing.
-
-Upstream-Status: Backport [59cb0dd9f8e65b2d398fcaf4d163cbc8e1d0ae45]
-
-Signed-off-by: He Zhe <zhe.he@windriver.com>
-Reviewed-by: Li Wang <liwang@redhat.com>
-Reviewed-by: Petr Vorel <pvorel@suse.cz>
-Tested-by: Petr Vorel <pvorel@suse.cz>
----
- testcases/commands/nm/nm01.sh | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/testcases/commands/nm/nm01.sh b/testcases/commands/nm/nm01.sh
-index 30c41bd..fd9d3d9 100755
---- a/testcases/commands/nm/nm01.sh
-+++ b/testcases/commands/nm/nm01.sh
-@@ -84,8 +84,11 @@ test5()
- EXPECT_PASS $NM -f bsd $TST_DATAROOT/f1 \> nm_bsd.out
- EXPECT_PASS $NM -f posix $TST_DATAROOT/f1 \> nm_posix.out
-
-- ROD awk '{print $3 $2 $1}' nm_bsd.out \> nm1.out
-- ROD awk '{print $1 $2 $3}' nm_posix.out \> nm2.out
-+ ROD awk '{print gensub(/\y(0+)([0-9a-fA-F]+)\y/, "\\2", "g")}' nm_bsd.out \> trimmed_nm_bsd.out
-+ ROD awk '{print gensub(/\y(0+)([0-9a-fA-F]+)\y/, "\\2", "g")}' nm_posix.out \> trimmed_nm_posix.out
-+
-+ ROD awk '{print $3 $2 $1}' trimmed_nm_bsd.out \> nm1.out
-+ ROD awk '{print $1 $2 $3}' trimmed_nm_posix.out \> nm2.out
-
- if diff nm1.out nm2.out > /dev/null; then
- tst_res TPASS "Got BSD format with -f bsd"
---
-2.7.4
-
diff --git a/meta/recipes-extended/ltp/ltp/0001-ptrace01-Fix-missing-format-string.patch b/meta/recipes-extended/ltp/ltp/0001-ptrace01-Fix-missing-format-string.patch
new file mode 100644
index 0000000000..27b890e22b
--- /dev/null
+++ b/meta/recipes-extended/ltp/ltp/0001-ptrace01-Fix-missing-format-string.patch
@@ -0,0 +1,33 @@
+From adb9587466a493fdd9d4410f1b8b130ebca06daa Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 19 May 2020 22:21:23 -0700
+Subject: [PATCH] ptrace01: Fix missing format string
+
+Fixes
+| ptrace01.c:89:2: error: format string is not a string literal
+(potentially insecure) [-Werror,-Wformat-security]
+| tst_res(TINFO, tc->message);
+| ^ ~~~~~~~~~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Backport [58424835952641f4fd60c0ae3ab6c64decca3f8a]
+---
+ testcases/kernel/syscalls/ptrace/ptrace01.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/testcases/kernel/syscalls/ptrace/ptrace01.c b/testcases/kernel/syscalls/ptrace/ptrace01.c
+index 87a99e4150..9071bbabaf 100644
+--- a/testcases/kernel/syscalls/ptrace/ptrace01.c
++++ b/testcases/kernel/syscalls/ptrace/ptrace01.c
+@@ -86,7 +86,7 @@ static void run(unsigned int i)
+
+ got_signal = 0;
+
+- tst_res(TINFO, tc->message);
++ tst_res(TINFO, "%s", tc->message);
+
+ if (tc->handler == 1) {
+ parent_act.sa_handler = parent_handler;
+--
+2.26.2
+
diff --git a/meta/recipes-extended/ltp/ltp/0001-sigwaitinfo-Do-not-run-invalid-undefined-test-cases.patch b/meta/recipes-extended/ltp/ltp/0001-sigwaitinfo-Do-not-run-invalid-undefined-test-cases.patch
new file mode 100644
index 0000000000..17d5af89e2
--- /dev/null
+++ b/meta/recipes-extended/ltp/ltp/0001-sigwaitinfo-Do-not-run-invalid-undefined-test-cases.patch
@@ -0,0 +1,69 @@
+From e0a63deb1857eb90288e90d6368df70cdd0c0ec9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 28 May 2020 13:04:33 -0700
+Subject: [PATCH] sigwaitinfo: Do not run invalid/undefined test cases
+
+These testcases run for eternity on musl
+
+test_bad_address* cases are passing invalid pointers to a function; that's always UB
+empty_set and timeout rely on the implementation-defined "may fail" for EINTR in sigtimedwait [1]
+
+normally "may fail" is an "unspecified" but here the impl
+is supposed to document it so it's "impl-defined"
+
+[1] https://pubs.opengroup.org/onlinepubs/9699919799/functions/sigtimedwait.html
+
+Upstream-Status: Submitted [https://patchwork.ozlabs.org/project/ltp/patch/20200528204556.2444156-1-raj.khem@gmail.com/]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Cc: Rich Felker <dalias@aerifal.cx>
+---
+ .../kernel/syscalls/sigwaitinfo/sigwaitinfo01.c | 12 ++----------
+ 1 file changed, 2 insertions(+), 10 deletions(-)
+
+--- a/testcases/kernel/syscalls/sigwaitinfo/sigwaitinfo01.c
++++ b/testcases/kernel/syscalls/sigwaitinfo/sigwaitinfo01.c
+@@ -422,15 +422,10 @@ struct test_desc {
+ } tests[] = {
+ #ifdef TEST_RT_SIGTIMEDWAIT
+ {
+- test_empty_set, my_rt_sigtimedwait, SIGUSR1}, {
+ test_unmasked_matching, my_rt_sigtimedwait, SIGUSR1}, {
+ test_masked_matching, my_rt_sigtimedwait, SIGUSR1}, {
+ test_unmasked_matching_noinfo, my_rt_sigtimedwait, SIGUSR1}, {
+- test_masked_matching_noinfo, my_rt_sigtimedwait, SIGUSR1}, {
+- test_bad_address, my_rt_sigtimedwait, SIGUSR1}, {
+- test_bad_address2, my_rt_sigtimedwait, SIGUSR1}, {
+- test_bad_address3, my_rt_sigtimedwait, SIGUSR1}, {
+- test_timeout, my_rt_sigtimedwait, 0},
++ test_masked_matching_noinfo, my_rt_sigtimedwait, SIGUSR1},
+ /* Special cases */
+ /* 1: sigwaitinfo does respond to ignored signal */
+ {
+@@ -452,25 +447,17 @@ struct test_desc {
+ #endif
+ #if defined TEST_SIGWAITINFO
+ {
+- test_empty_set, my_sigwaitinfo, SIGUSR1}, {
+ test_unmasked_matching, my_sigwaitinfo, SIGUSR1}, {
+ test_masked_matching, my_sigwaitinfo, SIGUSR1}, {
+ test_unmasked_matching_noinfo, my_sigwaitinfo, SIGUSR1}, {
+- test_masked_matching_noinfo, my_sigwaitinfo, SIGUSR1}, {
+- test_bad_address, my_sigwaitinfo, SIGUSR1}, {
+- test_bad_address2, my_sigwaitinfo, SIGUSR1},
++ test_masked_matching_noinfo, my_sigwaitinfo, SIGUSR1},
+ #endif
+ #if defined TEST_SIGTIMEDWAIT
+ {
+- test_empty_set, my_sigtimedwait, SIGUSR1}, {
+ test_unmasked_matching, my_sigtimedwait, SIGUSR1}, {
+ test_masked_matching, my_sigtimedwait, SIGUSR1}, {
+ test_unmasked_matching_noinfo, my_sigtimedwait, SIGUSR1}, {
+- test_masked_matching_noinfo, my_sigtimedwait, SIGUSR1}, {
+- test_bad_address, my_sigtimedwait, SIGUSR1}, {
+- test_bad_address2, my_sigtimedwait, SIGUSR1}, {
+- test_bad_address3, my_sigtimedwait, SIGUSR1}, {
+- test_timeout, my_sigtimedwait, 0},
++ test_masked_matching_noinfo, my_sigtimedwait, SIGUSR1},
+ #endif
+ };
+
diff --git a/meta/recipes-extended/ltp/ltp/0001-syscalls-Check-for-time64-unsafe-syscalls-before-usi.patch b/meta/recipes-extended/ltp/ltp/0001-syscalls-Check-for-time64-unsafe-syscalls-before-usi.patch
deleted file mode 100644
index c431669716..0000000000
--- a/meta/recipes-extended/ltp/ltp/0001-syscalls-Check-for-time64-unsafe-syscalls-before-usi.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-From b66905b094e08a84c30bc135003c3611f65d53ec Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 12 Feb 2020 22:22:17 -0800
-Subject: [PATCH] syscalls: Check for time64 unsafe syscalls before using them
-
-musl is using 64bit time_t now on 32bit architectures and these syscalls
-no longer exist, therefore its better to check for them being available
-before using them
-
-Upstream-Status: Submitted [https://patchwork.ozlabs.org/patch/1241258/]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/tst_clocks.c | 9 +++++----
- testcases/kernel/syscalls/gettimeofday/gettimeofday01.c | 6 ++----
- testcases/kernel/syscalls/gettimeofday/gettimeofday02.c | 8 +++-----
- 3 files changed, 10 insertions(+), 13 deletions(-)
-
---- a/lib/tst_clocks.c
-+++ b/lib/tst_clocks.c
-@@ -22,21 +22,22 @@
- #define _GNU_SOURCE
- #include <unistd.h>
- #include <time.h>
--#include <sys/syscall.h>
--
-+#define TST_NO_DEFAULT_MAIN
-+#include "tst_test.h"
- #include "tst_clocks.h"
-+#include "lapi/syscalls.h"
-
- int tst_clock_getres(clockid_t clk_id, struct timespec *res)
- {
-- return syscall(SYS_clock_getres, clk_id, res);
-+ return tst_syscall(__NR_clock_getres, clk_id, res);
- }
-
- int tst_clock_gettime(clockid_t clk_id, struct timespec *ts)
- {
-- return syscall(SYS_clock_gettime, clk_id, ts);
-+ return tst_syscall(__NR_clock_gettime, clk_id, ts);
- }
-
- int tst_clock_settime(clockid_t clk_id, struct timespec *ts)
- {
-- return syscall(SYS_clock_settime, clk_id, ts);
-+ return tst_syscall(__NR_clock_settime, clk_id, ts);
- }
---- a/testcases/kernel/syscalls/gettimeofday/gettimeofday01.c
-+++ b/testcases/kernel/syscalls/gettimeofday/gettimeofday01.c
-@@ -38,10 +38,8 @@
- #include <sys/time.h>
- #include <errno.h>
- #include "test.h"
--#include <sys/syscall.h>
- #include <unistd.h>
--
--#define gettimeofday(a,b) syscall(__NR_gettimeofday,a,b)
-+#include "lapi/syscalls.h"
-
- char *TCID = "gettimeofday01";
- int TST_TOTAL = 1;
-@@ -63,7 +61,7 @@ int main(int ac, char **av)
- for (lc = 0; TEST_LOOPING(lc); lc++) {
- tst_count = 0;
-
-- TEST(gettimeofday((void *)-1, (void *)-1));
-+ TEST(ltp_syscall(__NR_gettimeofday, (void *)-1, (void *)-1));
-
- /* gettimeofday returns an int, so we need to turn the long
- * TEST_RETURN into an int to test with */
---- a/testcases/kernel/syscalls/gettimeofday/gettimeofday02.c
-+++ b/testcases/kernel/syscalls/gettimeofday/gettimeofday02.c
-@@ -16,14 +16,12 @@
- #include <stdint.h>
- #include <sys/time.h>
- #include <stdlib.h>
--#include <sys/syscall.h>
- #include <unistd.h>
- #include <time.h>
- #include <errno.h>
-
- #include "tst_test.h"
--
--#define gettimeofday(a,b) syscall(__NR_gettimeofday,a,b)
-+#include "lapi/syscalls.h"
-
- static volatile sig_atomic_t done;
- static char *str_rtime;
-@@ -48,13 +46,13 @@ static void verify_gettimeofday(void)
-
- alarm(rtime);
-
-- if (gettimeofday(&tv1, NULL)) {
-+ if (tst_syscall(__NR_gettimeofday, &tv1, NULL)) {
- tst_res(TBROK | TERRNO, "gettimeofday() failed");
- return;
- }
-
- while (!done) {
-- if (gettimeofday(&tv2, NULL)) {
-+ if (tst_syscall(__NR_gettimeofday, &tv2, NULL)) {
- tst_res(TBROK | TERRNO, "gettimeofday() failed");
- return;
- }
diff --git a/meta/recipes-extended/ltp/ltp/0001-syscalls-copy_file_range02-Expect-EFBIG-in-subcase-m.patch b/meta/recipes-extended/ltp/ltp/0001-syscalls-copy_file_range02-Expect-EFBIG-in-subcase-m.patch
new file mode 100644
index 0000000000..09b6f54874
--- /dev/null
+++ b/meta/recipes-extended/ltp/ltp/0001-syscalls-copy_file_range02-Expect-EFBIG-in-subcase-m.patch
@@ -0,0 +1,57 @@
+From 99687ab002f9f750f6f18fa1d70a91f0aa4f8ba2 Mon Sep 17 00:00:00 2001
+From: He Zhe <zhe.he@windriver.com>
+Date: Thu, 18 Jun 2020 17:18:27 +0800
+Subject: [PATCH] syscalls/copy_file_range02: Expect EFBIG in subcase max
+ length on 32-bit architectures
+
+For syscall
+ssize_t copy_file_range(int fd_in, loff_t *off_in,
+ int fd_out, loff_t *off_out,
+ size_t len, unsigned int flags);
+off_out is loff_t* that is long long, 64 bits on 32-bit architectures,
+while len is size_t that unsigned int, 32 bits on 32-bit architectures.
+
+In subcase "max length", simplified as below,
+
+dst = tst_max_lfs_filesize();
+TEST(sys_copy_file_range(fd_src, 0, *tc->copy_to_fd, &dst, tc->len, tc->flags));
+
+where dst is 4K*4G and len is 4G, so (4K+1)*4G is always smaller than 4G*4G,
+it can never match the following kernel condition on 32-bit architectures.
+
+if (pos_in + count < pos_in || pos_out + count < pos_out)
+ return -EOVERFLOW;
+
+And thus we would get error like
+copy_file_range02.c:139: FAIL: copy_file_range failed unexpectedly; expected EOVERFLOW, but got: EFBIG (27)
+
+Also correct a typo.
+
+Upstream-Status: Backport [http://lists.linux.it/pipermail/ltp/2020-June/017716.html]
+
+Signed-off-by: He Zhe <zhe.he@windriver.com>
+Acked-by: Li Wang <liwang@redhat.com>
+---
+ .../kernel/syscalls/copy_file_range/copy_file_range02.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/testcases/kernel/syscalls/copy_file_range/copy_file_range02.c b/testcases/kernel/syscalls/copy_file_range/copy_file_range02.c
+index fa679c4d3..bc27fbe57 100644
+--- a/testcases/kernel/syscalls/copy_file_range/copy_file_range02.c
++++ b/testcases/kernel/syscalls/copy_file_range/copy_file_range02.c
+@@ -78,7 +78,11 @@ static struct tcase {
+ {&fd_chrdev, 0, EINVAL, CONTSIZE, "char device", 0},
+ {&fd_fifo, 0, EINVAL, CONTSIZE, "fifo", 0},
+ {&fd_pipe[0], 0, EINVAL, CONTSIZE, "pipe", 0},
+- {&fd_copy, 0, EOVERFLOW, ULLONG_MAX, "max length lenght", 1},
++#ifdef TST_ABI64
++ {&fd_copy, 0, EOVERFLOW, ULLONG_MAX, "max length", 1},
++#else
++ {&fd_copy, 0, EFBIG, ULLONG_MAX, "max length", 1},
++#endif
+ {&fd_copy, 0, EFBIG, MIN_OFF, "max file size", 1},
+ };
+
+--
+2.17.1
+
diff --git a/meta/recipes-extended/ltp/ltp/0001-testcases-fix-an-absent-format-string-issue.patch b/meta/recipes-extended/ltp/ltp/0001-testcases-fix-an-absent-format-string-issue.patch
deleted file mode 100644
index 9330844509..0000000000
--- a/meta/recipes-extended/ltp/ltp/0001-testcases-fix-an-absent-format-string-issue.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 476ce907fa18042cdde0a244ba9a46cd895ce76c Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Thu, 12 Dec 2019 17:56:02 +0100
-Subject: [PATCH] testcases: fix an absent format string issue
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- .../kernel/syscalls/pidfd_send_signal/pidfd_send_signal03.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/testcases/kernel/syscalls/pidfd_send_signal/pidfd_send_signal03.c b/testcases/kernel/syscalls/pidfd_send_signal/pidfd_send_signal03.c
-index 27dbc6626..19d943d06 100644
---- a/testcases/kernel/syscalls/pidfd_send_signal/pidfd_send_signal03.c
-+++ b/testcases/kernel/syscalls/pidfd_send_signal/pidfd_send_signal03.c
-@@ -59,7 +59,7 @@ static void verify_pidfd_send_signal(void)
-
- /* Manipulate PID for next process */
- sprintf(pid_str, "%d", pid - 1);
-- SAFE_FILE_PRINTF(last_pid_file, pid_str);
-+ SAFE_FILE_PRINTF(last_pid_file, "%s", pid_str);
-
- new_pid = SAFE_FORK();
- if (new_pid == 0) {
diff --git a/meta/recipes-extended/ltp/ltp/0002-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch b/meta/recipes-extended/ltp/ltp/0002-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch
deleted file mode 100644
index eff9ed0741..0000000000
--- a/meta/recipes-extended/ltp/ltp/0002-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 81e5bd5442337a4a648a0dbbff47eaac0d351287 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 7 Jan 2016 18:22:38 +0000
-Subject: [PATCH] kernel/controllers: Link with libfts explicitly on musl
-
-musl does not implement fts like glibc and therefore it depends on
-external implementation for all fts APIs
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- testcases/kernel/controllers/Makefile.inc | 3 +++
- testcases/kernel/controllers/cpuset/Makefile.inc | 3 +++
- 2 files changed, 6 insertions(+)
-
-diff --git a/testcases/kernel/controllers/Makefile.inc b/testcases/kernel/controllers/Makefile.inc
-index 4ca0b5a..1d85e4d 100644
---- a/testcases/kernel/controllers/Makefile.inc
-+++ b/testcases/kernel/controllers/Makefile.inc
-@@ -36,6 +36,9 @@ MAKE_DEPS := $(LIB)
- CPPFLAGS += -I$(abs_srcdir)/../$(LIBDIR)
-
- LDFLAGS += -L$(abs_builddir)/../$(LIBDIR)
-+ifeq ($(LIBC),musl)
-+LDLIBS += -lfts
-+endif
-
- INSTALL_TARGETS ?= *.sh
-
-diff --git a/testcases/kernel/controllers/cpuset/Makefile.inc b/testcases/kernel/controllers/cpuset/Makefile.inc
-index db6a843..86dd2a8 100644
---- a/testcases/kernel/controllers/cpuset/Makefile.inc
-+++ b/testcases/kernel/controllers/cpuset/Makefile.inc
-@@ -42,6 +42,9 @@ MAKE_DEPS := $(LIBCONTROLLERS) $(LIBCPUSET)
- LDFLAGS += -L$(abs_builddir)/$(LIBCPUSET_DIR) -L$(abs_builddir)/$(LIBCONTROLLERS_DIR)
-
- LDLIBS += -lcpu_set -lcontrollers -lltp
-+ifeq ($(LIBC),musl)
-+LDLIBS += -lfts
-+endif
-
- INSTALL_TARGETS ?= *.sh
-
---
-2.7.4
-
diff --git a/meta/recipes-extended/ltp/ltp/0003-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch b/meta/recipes-extended/ltp/ltp/0003-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch
deleted file mode 100644
index df3e8831f5..0000000000
--- a/meta/recipes-extended/ltp/ltp/0003-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 1ce47a6ed811fd78ed04ea2f82e6321c6bca57b6 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 7 Jan 2016 19:40:08 +0000
-Subject: [PATCH] Check if __GLIBC_PREREQ is defined before using it
-
-__GLIBC_PREREQ is specific to glibc so it should be checked if it is
-defined or not.
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
-
----
- testcases/kernel/syscalls/accept4/accept4_01.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/testcases/kernel/syscalls/accept4/accept4_01.c b/testcases/kernel/syscalls/accept4/accept4_01.c
-index 29e18f27d..07444a46f 100644
---- a/testcases/kernel/syscalls/accept4/accept4_01.c
-+++ b/testcases/kernel/syscalls/accept4/accept4_01.c
-@@ -38,6 +38,7 @@
- static struct sockaddr_in *conn_addr, *accept_addr;
- static int listening_fd;
-
-+#if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
- #if !(__GLIBC_PREREQ(2, 10))
- static int
- accept4_01(int fd, struct sockaddr *sockaddr, socklen_t *addrlen, int flags)
-@@ -56,6 +57,7 @@ accept4_01(int fd, struct sockaddr *sockaddr, socklen_t *addrlen, int flags)
- #endif
- }
- #endif
-+#endif
-
- static int create_listening_socket(void)
- {
-@@ -114,12 +116,17 @@ static void verify_accept4(unsigned int nr)
- SAFE_CONNECT(connfd, (struct sockaddr *)conn_addr, sizeof(*conn_addr));
- addrlen = sizeof(*accept_addr);
-
-+#if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
- #if !(__GLIBC_PREREQ(2, 10))
- TEST(accept4_01(listening_fd, (struct sockaddr *)accept_addr, &addrlen,
- tcase->cloexec | tcase->nonblock));
- #else
- TEST(accept4(listening_fd, (struct sockaddr *)accept_addr, &addrlen,
- tcase->cloexec | tcase->nonblock));
-+#endif
-+#else
-+ TEST(accept4(listening_fd, (struct sockaddr *)&claddr, &addrlen,
-+ tcase->cloexec | tcase->nonblock));
- #endif
- if (TST_RET == -1) {
- if (TST_ERR == ENOSYS)
diff --git a/meta/recipes-extended/ltp/ltp/0004-guard-mallocopt-with-__GLIBC__.patch b/meta/recipes-extended/ltp/ltp/0004-guard-mallocopt-with-__GLIBC__.patch
index 5622a64d43..a187f61f08 100644
--- a/meta/recipes-extended/ltp/ltp/0004-guard-mallocopt-with-__GLIBC__.patch
+++ b/meta/recipes-extended/ltp/ltp/0004-guard-mallocopt-with-__GLIBC__.patch
@@ -5,9 +5,9 @@ Subject: [PATCH] guard mallocopt() with __GLIBC__
mallocopt is not available on non glibc implementations
-Upstream-Status: Pending
-
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Reviewed-by: Petr Vorel <petr.vorel@gmail.com>
+Upstream-Status: Accepted [967612c454aea66770b64f69287671037fe895b3]
---
utils/benchmark/ebizzy-0.3/ebizzy.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta/recipes-extended/ltp/ltp/0006-rt_tgsigqueueinfo-disable-test-on-musl.patch b/meta/recipes-extended/ltp/ltp/0006-rt_tgsigqueueinfo-disable-test-on-musl.patch
deleted file mode 100644
index 804edfa1b4..0000000000
--- a/meta/recipes-extended/ltp/ltp/0006-rt_tgsigqueueinfo-disable-test-on-musl.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 60054686e2c1a4bedf1d507af97ebbb7ff491e77 Mon Sep 17 00:00:00 2001
-From: Yi Zhao <yi.zhao@windriver.com>
-Date: Thu, 18 Jul 2019 15:23:15 +0800
-Subject: [PATCH] rt_tgsigqueueinfo: disable test on musl
-
-Fix build error with musl:
-rt_tgsigqueueinfo01.c: In function 'sigusr1_handler':
-rt_tgsigqueueinfo01.c:42:22: error: 'siginfo_t' {aka 'struct <anonymous>'} has no member named '_sifields'; did you mean '__si_fields'?
- 42 | sigval_rcv = uinfo->_sifields._rt.SI_SIGVAL.sival_ptr;
- | ^~~~~~~~~
- | __si_fields
-
-Upstream-Status: Pending
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- testcases/kernel/syscalls/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/testcases/kernel/syscalls/Makefile b/testcases/kernel/syscalls/Makefile
-index d1becd0..1f3ff34 100644
---- a/testcases/kernel/syscalls/Makefile
-+++ b/testcases/kernel/syscalls/Makefile
-@@ -31,7 +31,7 @@ endif
- ifeq ($(LIBC),musl)
- FILTER_OUT_DIRS += confstr fmtmsg getcontext ioctl mallopt profil \
- rt_sigsuspend setdomainname sethostname sigsuspend \
-- ustat
-+ ustat rt_tgsigqueueinfo
- endif
-
- ifeq ($(UCLIBC),1)
---
-2.7.4
-
diff --git a/meta/recipes-extended/ltp/ltp/0008-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch b/meta/recipes-extended/ltp/ltp/0008-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch
deleted file mode 100644
index b46325eaf3..0000000000
--- a/meta/recipes-extended/ltp/ltp/0008-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From aa7a9185a037ad59012bd46713ac340458e95209 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com>
-Date: Fri, 13 May 2016 11:11:28 -0500
-Subject: [PATCH] testcases/network/nfsv4/acl/acl1.c: Security fix on
- string printf
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Fixes:
-
-acl1.c: In function 'test_acl_default':
-acl1.c:317:2: error: format not a string literal and no format arguments
-[-Werror=format-security]
- printf(cmd);
-
-[YOCTO #9548]
-
-Upstream-Status: Pending
-
-Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
----
- testcases/network/nfsv4/acl/acl1.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/testcases/network/nfsv4/acl/acl1.c b/testcases/network/nfsv4/acl/acl1.c
-index bdf0180..898b7ca 100644
---- a/testcases/network/nfsv4/acl/acl1.c
-+++ b/testcases/network/nfsv4/acl/acl1.c
-@@ -303,7 +303,7 @@ void test_acl_default(char *dir, acl_t acl)
- char *cmd = malloc(256);
-
- strcpy(cmd, "chmod 7777 ");
-- printf(cmd);
-+ printf(cmd, NULL);
- strcat(cmd, dir);
- system(cmd);
- acl2 = acl_get_file(path, ACL_TYPE_ACCESS);
---
-2.7.4
-
diff --git a/meta/recipes-extended/ltp/ltp/0009-open_posix_testsuite-mmap24-2-Relax-condition-a-bit.patch b/meta/recipes-extended/ltp/ltp/0009-open_posix_testsuite-mmap24-2-Relax-condition-a-bit.patch
deleted file mode 100644
index d32ac1dd7c..0000000000
--- a/meta/recipes-extended/ltp/ltp/0009-open_posix_testsuite-mmap24-2-Relax-condition-a-bit.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From a8715a1446305ffd76406f63c7f160c13a5b2e72 Mon Sep 17 00:00:00 2001
-From: "Hongzhi.Song" <hongzhi.song@windriver.com>
-Date: Wed, 10 Oct 2018 22:07:05 -0400
-Subject: [PATCH] open_posix_testsuite/mmap24-2: Relax condition a bit
-
-Mips will return EINVAL instead of ENOMEM as expected
-if the range [addr + len) exceeds TASK_SIZE.
-
-Linux kernel code: arch/mips/mm/mmap.c
-if (flags & MAP_FIXED) {
- /* Even MAP_FIXED mappings must reside within TASK_SIZE */
- if (TASK_SIZE - len < addr)
- return -EINVAL;
-
-Relax the condition and accept both ENOMEM and EINVAL
-as expected outcome.
-
-Upstream-Status: Submitted [https://lists.linux.it/pipermail/ltp/2018-October/009624.html]
-
-Signed-off-by: Hongzhi.Song <hongzhi.song@windriver.com>
----
- .../open_posix_testsuite/conformance/interfaces/mmap/24-2.c | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mmap/24-2.c b/testcases/open_posix_testsuite/conformance/interfaces/mmap/24-2.c
-index 9cf83d9..55090a6 100644
---- a/testcases/open_posix_testsuite/conformance/interfaces/mmap/24-2.c
-+++ b/testcases/open_posix_testsuite/conformance/interfaces/mmap/24-2.c
-@@ -7,7 +7,7 @@
- * source tree.
- *
- * The mmap() function shall fail if:
-- * [ENOMEM] MAP_FIXED was specified,
-+ * [ENOMEM or EINVAL] MAP_FIXED was specified,
- * and the range [addr,addr+len) exceeds that allowed
- * for the address space of a process; or, if MAP_FIXED was not specified and
- * there is insufficient room in the address space to effect the mapping.
-@@ -15,7 +15,7 @@
- * Test Step:
- * 1. Map a shared memory object, with size exceeding the value get from
- * rlim_cur of resource RLIMIT_AS, setting MAP_FIXED;
-- * 3. Should get ENOMEM.
-+ * 3. Should get ENOMEM or EINVAL.
- */
-
- #include <stdio.h>
-@@ -92,8 +92,8 @@ int main(void)
- (unsigned long)len);
- pa = mmap(addr, len, PROT_READ | PROT_WRITE, MAP_FIXED | MAP_SHARED, fd,
- 0);
-- if (pa == MAP_FAILED && errno == ENOMEM) {
-- printf("Got ENOMEM: %s\nTest PASSED\n", strerror(errno));
-+ if (pa == MAP_FAILED && (errno == ENOMEM || errno == EINVAL)) {
-+ printf("Got ENOMEM or EINVAL: %s\nTest PASSED\n", strerror(errno));
- exit(PTS_PASS);
- }
-
-@@ -102,6 +102,6 @@ int main(void)
- else
- munmap(pa, len);
- close(fd);
-- printf("Test Fail: Did not get ENOMEM as expected\n");
-+ printf("Test Failed: Did not get ENOMEM or EINVAL as expected\n");
- return PTS_FAIL;
- }
---
-2.7.4
-
diff --git a/meta/recipes-extended/ltp/ltp_20190930.bb b/meta/recipes-extended/ltp/ltp_20200515.bb
index 19bd7bc9c6..0c7044d044 100644
--- a/meta/recipes-extended/ltp/ltp_20190930.bb
+++ b/meta/recipes-extended/ltp/ltp_20200515.bb
@@ -12,12 +12,12 @@ LIC_FILES_CHKSUM = "\
file://testcases/open_posix_testsuite/COPYING;md5=48b1c5ec633e3e30ec2cf884ae699947 \
file://testcases/realtime/COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \
file://utils/benchmark/kernbench-0.42/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
- file://utils/ffsb-6.0-rc2/COPYING;md5=c46082167a314d785d012a244748d803 \
"
DEPENDS = "attr libaio libcap acl openssl zip-native"
DEPENDS_append_libc-musl = " fts "
EXTRA_OEMAKE_append_libc-musl = " LIBC=musl "
+EXTRA_OECONF_append_libc-musl = " LIBS=-lfts "
# since ltp contains x86-64 assembler which uses the frame-pointer register,
# set -fomit-frame-pointer x86-64 to handle cases where optimisation
@@ -27,41 +27,36 @@ CFLAGS_append_x86-64 = " -fomit-frame-pointer"
CFLAGS_append_powerpc64 = " -D__SANE_USERSPACE_TYPES__"
CFLAGS_append_mipsarchn64 = " -D__SANE_USERSPACE_TYPES__"
-SRCREV = "c9707b465a08397569920b676345474f44327200"
+SRCREV = "0d79a93e6ca44d9bc95973faea6bcd7b0c6d1f43"
SRC_URI = "git://github.com/linux-test-project/ltp.git \
file://0001-build-Add-option-to-select-libc-implementation.patch \
- file://0002-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch \
- file://0003-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch \
file://0004-guard-mallocopt-with-__GLIBC__.patch \
- file://0006-rt_tgsigqueueinfo-disable-test-on-musl.patch \
file://0007-Fix-test_proc_kill-hanging.patch \
- file://0008-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch \
- file://0009-open_posix_testsuite-mmap24-2-Relax-condition-a-bit.patch \
- file://0001-mkswap01.sh-Add-udevadm-trigger-before-swap-verifica.patch \
- file://0001-testcases-fix-an-absent-format-string-issue.patch \
file://0001-Add-more-musl-exclusions.patch \
- file://0001-nm01-Remove-prefix-zeros-of-the-addresses-output-by-.patch \
- file://0001-syscalls-Check-for-time64-unsafe-syscalls-before-usi.patch \
+ file://0001-ptrace01-Fix-missing-format-string.patch \
+ file://0001-sigwaitinfo-Do-not-run-invalid-undefined-test-cases.patch \
+ file://0001-syscalls-copy_file_range02-Expect-EFBIG-in-subcase-m.patch \
+ file://0001-Remove-OOM-tests-from-runtest-mm.patch \
"
S = "${WORKDIR}/git"
-inherit autotools-brokensep
+inherit autotools-brokensep pkgconfig
TARGET_CC_ARCH += "${LDFLAGS}"
-export prefix = "/opt/ltp"
-export exec_prefix = "/opt/ltp"
+export prefix = "/opt/${PN}"
+export exec_prefix = "/opt/${PN}"
PACKAGECONFIG[numa] = "--with-numa, --without-numa, numactl,"
EXTRA_AUTORECONF += "-I ${S}/testcases/realtime/m4"
-EXTRA_OECONF = " --with-power-management-testsuite --with-realtime-testsuite --with-open-posix-testsuite "
+EXTRA_OECONF = " --with-realtime-testsuite --with-open-posix-testsuite "
# ltp network/rpc test cases ftbfs when libtirpc is found
EXTRA_OECONF += " --without-tirpc "
do_install(){
- install -d ${D}/opt/ltp/
+ install -d ${D}${prefix}/
oe_runmake DESTDIR=${D} SKIP_IDCHECK=1 install
# fixup not deploy STPfailure_report.pl to avoid confusing about it fails to run
@@ -70,27 +65,42 @@ do_install(){
# runs on the OSDL's Scaleable Test Platform (STP) and it mainly accesses
# http://khack.osdl.org to retrieve ltp test results run on
# OSDL's Scaleable Test Platform, but now http://khack.osdl.org unaccessible
- rm -rf ${D}/opt/ltp/bin/STPfailure_report.pl
+ rm -rf ${D}${prefix}/bin/STPfailure_report.pl
- # Copy POSIX test suite into ${D}/opt/ltp/testcases by manual
- cp -r testcases/open_posix_testsuite ${D}/opt/ltp/testcases
+ # Copy POSIX test suite into ${D}${prefix}/testcases by manual
+ cp -r testcases/open_posix_testsuite ${D}${prefix}/testcases
+
+ # Makefile were configured in the build system
+ find ${D}${prefix} -name Makefile | xargs -n 1 sed -i \
+ -e 's@[^ ]*-fdebug-prefix-map=[^ "]*@@g' \
+ -e 's@[^ ]*-fmacro-prefix-map=[^ "]*@@g' \
+ -e 's@[^ ]*--sysroot=[^ "]*@@g'
+
+ # The controllers memcg_stree test seems to cause us hangs and takes 900s
+ # (maybe we expect more regular output?), anyhow, skip it
+ sed -e '/^memcg_stress/d' -i ${D}${prefix}/runtest/controllers
}
RDEPENDS_${PN} = "\
attr \
bash \
+ bc \
+ coreutils \
cpio \
cronie \
curl \
+ e2fsprogs \
e2fsprogs-mke2fs \
expect \
file \
gawk \
+ gdb \
gzip \
iproute2 \
ldd \
libaio \
logrotate \
+ net-tools \
perl \
python3-core \
procps \
@@ -101,10 +111,10 @@ RDEPENDS_${PN} = "\
tar \
"
-FILES_${PN} += "/opt/ltp/* /opt/ltp/runtest/* /opt/ltp/scenario_groups/* /opt/ltp/testcases/bin/* /opt/ltp/testcases/bin/*/bin/* /opt/ltp/testscripts/* /opt/ltp/testcases/open_posix_testsuite/* /opt/ltp/testcases/open_posix_testsuite/conformance/* /opt/ltp/testcases/open_posix_testsuite/Documentation/* /opt/ltp/testcases/open_posix_testsuite/functional/* /opt/ltp/testcases/open_posix_testsuite/include/* /opt/ltp/testcases/open_posix_testsuite/scripts/* /opt/ltp/testcases/open_posix_testsuite/stress/* /opt/ltp/testcases/open_posix_testsuite/tools/* /opt/ltp/testcases/data/nm01/lib.a /opt/ltp/lib/libmem.a"
+FILES_${PN} += "${prefix}/* ${prefix}/runtest/* ${prefix}/scenario_groups/* ${prefix}/testcases/bin/* ${prefix}/testcases/bin/*/bin/* ${prefix}/testscripts/* ${prefix}/testcases/open_posix_testsuite/* ${prefix}/testcases/open_posix_testsuite/conformance/* ${prefix}/testcases/open_posix_testsuite/Documentation/* ${prefix}/testcases/open_posix_testsuite/functional/* ${prefix}/testcases/open_posix_testsuite/include/* ${prefix}/testcases/open_posix_testsuite/scripts/* ${prefix}/testcases/open_posix_testsuite/stress/* ${prefix}/testcases/open_posix_testsuite/tools/* ${prefix}/testcases/data/nm01/lib.a ${prefix}/lib/libmem.a"
# Avoid stripping some generated binaries otherwise some of the ltp tests such as ldd01 & nm01 fail
-INHIBIT_PACKAGE_STRIP_FILES = "/opt/ltp/testcases/bin/nm01 /opt/ltp/testcases/bin/ldd01"
+INHIBIT_PACKAGE_STRIP_FILES = "${prefix}/testcases/bin/nm01 ${prefix}/testcases/bin/ldd01"
INSANE_SKIP_${PN} += "already-stripped staticdev"
# Avoid file dependency scans, as LTP checks for things that may or may not
diff --git a/meta/recipes-extended/man-db/man-db_2.9.0.bb b/meta/recipes-extended/man-db/man-db_2.9.3.bb
index 5b017e8023..0e6016a73c 100644
--- a/meta/recipes-extended/man-db/man-db_2.9.0.bb
+++ b/meta/recipes-extended/man-db/man-db_2.9.3.bb
@@ -7,8 +7,7 @@ LIC_FILES_CHKSUM = "file://docs/COPYING.LIB;md5=a6f89e2100d9b6cdffcea4f398e37343
SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/man-db/man-db-${PV}.tar.xz \
file://99_mandb \
file://man_db.conf-avoid-multilib-install-file-conflict.patch"
-SRC_URI[md5sum] = "897576a19ecbef376a916485608cd790"
-SRC_URI[sha256sum] = "5d4aacd9e8876d6a3203a889860c3524c293c38f04111a3350deab8a6cd3e261"
+SRC_URI[sha256sum] = "fa5aa11ab0692daf737e76947f45669225db310b2801a5911bceb7551c5597b8"
DEPENDS = "libpipeline gdbm groff-native base-passwd"
RDEPENDS_${PN} += "base-passwd"
diff --git a/meta/recipes-extended/man-pages/man-pages_5.05.bb b/meta/recipes-extended/man-pages/man-pages_5.08.bb
index b95872eb4d..caf9320a67 100644
--- a/meta/recipes-extended/man-pages/man-pages_5.05.bb
+++ b/meta/recipes-extended/man-pages/man-pages_5.08.bb
@@ -4,11 +4,10 @@ SECTION = "console/utils"
HOMEPAGE = "http://www.kernel.org/pub/linux/docs/man-pages"
LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://README;md5=794f701617cc03fe50c53257660d8ec4"
+LIC_FILES_CHKSUM = "file://README;md5=207f70f56526417514ac46b6680e314f"
SRC_URI = "${KERNELORG_MIRROR}/linux/docs/${BPN}/${BP}.tar.gz"
-SRC_URI[md5sum] = "cdad5deb15117e60a6d9e3a6bdc035b5"
-SRC_URI[sha256sum] = "43c33d2eea9ba989c18eef90298cf6d5521ff038deb51cda0ecd0fdc3cec2b7d"
+SRC_URI[sha256sum] = "6e0b8ae23ee9467cee701f23dea908257a93e5fffa9e261b19a23efbd27e84a2"
inherit manpages
diff --git a/meta/recipes-extended/mc/files/0001-Add-option-to-control-configure-args.patch b/meta/recipes-extended/mc/files/0001-Add-option-to-control-configure-args.patch
deleted file mode 100644
index e76aac8161..0000000000
--- a/meta/recipes-extended/mc/files/0001-Add-option-to-control-configure-args.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From a54501d3c9541bc8600225aa2d42531f93c6def7 Mon Sep 17 00:00:00 2001
-From: Joshua Watt <JPEWhacker@gmail.com>
-Date: Sat, 9 Nov 2019 20:01:48 -0600
-Subject: [PATCH] Add option to control configure args
-
-Embedding the configure time options into the executable can lead to
-non-reproducible builds, since configure options often have embedded
-paths. Add a configure time option to control if the configure args are
-embedded so this can be disabled.
-
-Upstream-Status: Submitted [https://midnight-commander.org/ticket/4031]
-Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
----
- configure.ac | 6 ++++++
- src/args.c | 6 ++++++
- src/textconf.c | 2 ++
- 3 files changed, 14 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index 19d1a76be..a1948f6b9 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -544,6 +544,12 @@ dnl Clarify do we really need GModule
- AM_CONDITIONAL([HAVE_GMODULE], [test -n "$g_module_supported" && \
- test x"$textmode_x11_support" = x"yes" -o x"$enable_aspell" = x"yes"])
-
-+AC_ARG_ENABLE([configure-args],
-+ AS_HELP_STRING([--enable-configure-args], [Handle all compiler warnings as errors]))
-+if test "x$enable_configure_args" != xno; then
-+ AC_DEFINE([ENABLE_CONFIGURE_ARGS], 1, [Define to enable showing configure arguments in help])
-+fi
-+
- AC_DEFINE_UNQUOTED([MC_CONFIGURE_ARGS], ["$ac_configure_args"], [MC configure arguments])
-
- AC_CONFIG_FILES(
-diff --git a/src/args.c b/src/args.c
-index baef1a1c8..f8dc24020 100644
---- a/src/args.c
-+++ b/src/args.c
-@@ -95,7 +95,9 @@ static gboolean mc_args__nouse_subshell = FALSE;
- #endif /* ENABLE_SUBSHELL */
- static gboolean mc_args__show_datadirs = FALSE;
- static gboolean mc_args__show_datadirs_extended = FALSE;
-+#ifdef ENABLE_CONFIGURE_ARGS
- static gboolean mc_args__show_configure_opts = FALSE;
-+#endif
-
- static GOptionGroup *main_group;
-
-@@ -125,6 +127,7 @@ static const GOptionEntry argument_main_table[] = {
- NULL
- },
-
-+#ifdef ENABLE_CONFIGURE_ARGS
- /* show configure options */
- {
- "configure-options", '\0', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE,
-@@ -132,6 +135,7 @@ static const GOptionEntry argument_main_table[] = {
- N_("Print configure options"),
- NULL
- },
-+#endif
-
- {
- "printwd", 'P', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_STRING,
-@@ -758,11 +762,13 @@ mc_args_show_info (void)
- return FALSE;
- }
-
-+#ifdef ENABLE_CONFIGURE_ARGS
- if (mc_args__show_configure_opts)
- {
- show_configure_options ();
- return FALSE;
- }
-+#endif
-
- return TRUE;
- }
-diff --git a/src/textconf.c b/src/textconf.c
-index 1e0613e58..f39b9e028 100644
---- a/src/textconf.c
-+++ b/src/textconf.c
-@@ -232,10 +232,12 @@ show_datadirs_extended (void)
-
- /* --------------------------------------------------------------------------------------------- */
-
-+#ifdef ENABLE_CONFIGURE_ARGS
- void
- show_configure_options (void)
- {
- (void) printf ("%s\n", MC_CONFIGURE_ARGS);
- }
-+#endif
-
- /* --------------------------------------------------------------------------------------------- */
---
-2.23.0
-
diff --git a/meta/recipes-extended/mc/files/0001-Ticket-3629-configure.ac-drop-bundled-gettext.patch b/meta/recipes-extended/mc/files/0001-Ticket-3629-configure.ac-drop-bundled-gettext.patch
deleted file mode 100644
index 8f357378d0..0000000000
--- a/meta/recipes-extended/mc/files/0001-Ticket-3629-configure.ac-drop-bundled-gettext.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-From 0d677a014a87b968d79eea2353ac4e342b0fd4ca Mon Sep 17 00:00:00 2001
-From: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Wed, 11 Sep 2019 22:58:18 +0100
-Subject: [PATCH] Ticket #3629: configure.ac: drop bundled gettext
-
-Bundled libintl did not support linking to internal static
-libraries (libmc in our case): directly specified static
-libraries are not pulled by libtool and are not usable for
-dynamic libraries as PIC-related flags are not passed for
-compilation.
-
-This renders bundled libintl library unusable.
-
-The change drops libintl bundling support and always relies
-on external libintl (or falls back to disabled NLS).
-
-On a related note gettext-0.20 drops support for bundling
-or libintl and this change will ease migration to newer version.
-
-The change is tested on x86_64-gentoo-linux-musl: mc builds
-and links all tests successfully. A few tests fail for lack
-of NLS support.
-
-Upstream-Status: Backport [https://github.com/MidnightCommander/mc/commit/f30e6ff283f4bc86177e4360de94dad794678395]
-Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
-Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- Makefile.am | 2 +-
- configure.ac | 5 +++--
- doc/doxygen.cfg | 2 +-
- lib/Makefile.am | 2 +-
- m4.include/mc-i18n.m4 | 5 -----
- 5 files changed, 6 insertions(+), 10 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index ac05a83..f86f6ed 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -1,7 +1,7 @@
- ## Process this file with automake to create Makefile.in.
- AUTOMAKE_OPTIONS = 1.5
-
--SUBDIRS = intl po lib src doc contrib misc
-+SUBDIRS = po lib src doc contrib misc
-
- if HAVE_TESTS
- SUBDIRS += tests
-diff --git a/configure.ac b/configure.ac
-index a1948f6..bbc9e71 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -272,7 +272,9 @@ dnl ############################################################################
- dnl Internationalization
- dnl ############################################################################
-
--AM_GNU_GETTEXT([no-libtool], [need-ngettext])
-+AC_CHECK_FUNCS([setlocale])
-+
-+AM_GNU_GETTEXT([external], [need-ngettext])
- AM_GNU_GETTEXT_VERSION([0.18.1])
-
- mc_I18N
-@@ -680,7 +682,6 @@ doc/hlp/pl/Makefile
- doc/hlp/ru/Makefile
- doc/hlp/sr/Makefile
-
--intl/Makefile
- po/Makefile.in
- ])
-
-diff --git a/doc/doxygen.cfg b/doc/doxygen.cfg
-index 07bc973..1118062 100644
---- a/doc/doxygen.cfg
-+++ b/doc/doxygen.cfg
-@@ -91,7 +91,7 @@ FILE_PATTERNS = *.c \
- RECURSIVE = YES
- EXCLUDE =
- EXCLUDE_SYMLINKS = NO
--EXCLUDE_PATTERNS = */intl/* */tests/* */.git/*
-+EXCLUDE_PATTERNS = */tests/* */.git/*
- EXCLUDE_SYMBOLS =
- EXAMPLE_PATH = $(SRCDIR)
- EXAMPLE_PATTERNS =
-diff --git a/lib/Makefile.am b/lib/Makefile.am
-index c448e2d..455f9dd 100644
---- a/lib/Makefile.am
-+++ b/lib/Makefile.am
-@@ -74,4 +74,4 @@ else
- libmc_la_LIBADD += $(GLIB_LIBS)
- endif
-
--libmc_la_LIBADD += $(PCRE_LIBS) $(LIBICONV) $(LIBINTL)
-+libmc_la_LIBADD += $(PCRE_LIBS)
-diff --git a/m4.include/mc-i18n.m4 b/m4.include/mc-i18n.m4
-index dd10d00..ec08324 100644
---- a/m4.include/mc-i18n.m4
-+++ b/m4.include/mc-i18n.m4
-@@ -8,11 +8,6 @@ dnl @license GPL
- dnl @copyright Free Software Foundation, Inc.
-
- AC_DEFUN([mc_I18N],[
--
-- if test "x$USE_INCLUDED_LIBINTL" = xyes; then
-- CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/intl -I\$(top_srcdir)/intl"
-- fi
--
- dnl User visible support for charset conversion.
- AC_ARG_ENABLE([charset],
- AS_HELP_STRING([--enable-charset], [Support for charset selection and conversion @<:@yes@:>@]))
diff --git a/meta/recipes-extended/mc/mc_4.8.23.bb b/meta/recipes-extended/mc/mc_4.8.25.bb
index ead348b92e..83c8a6ecf6 100644
--- a/meta/recipes-extended/mc/mc_4.8.23.bb
+++ b/meta/recipes-extended/mc/mc_4.8.25.bb
@@ -9,12 +9,9 @@ RRECOMMENDS_${PN} = "ncurses-terminfo"
SRC_URI = "http://www.midnight-commander.org/downloads/${BPN}-${PV}.tar.bz2 \
file://0001-mc-replace-perl-w-with-use-warnings.patch \
- file://0001-Add-option-to-control-configure-args.patch \
- file://0001-Ticket-3629-configure.ac-drop-bundled-gettext.patch \
file://nomandate.patch \
"
-SRC_URI[md5sum] = "152927ac29cf0e61d7d019f261bb7d89"
-SRC_URI[sha256sum] = "238c4552545dcf3065359bd50753abbb150c1b22ec5a36eaa02c82808293267d"
+SRC_URI[sha256sum] = "407dc20f70082f26c7f5716406cb755cbb6cba3f2f13b841b79a991282d310c2"
inherit autotools gettext pkgconfig
diff --git a/meta/recipes-extended/mdadm/mdadm_4.1.bb b/meta/recipes-extended/mdadm/mdadm_4.1.bb
index 40c5273e00..001d3331a7 100644
--- a/meta/recipes-extended/mdadm/mdadm_4.1.bb
+++ b/meta/recipes-extended/mdadm/mdadm_4.1.bb
@@ -19,8 +19,8 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/raid/mdadm/${BPN}-${PV}.tar.xz \
file://0001-fix-gcc-8-format-truncation-warning.patch \
file://debian-no-Werror.patch \
file://0001-Revert-tests-wait-for-complete-rebuild-in-integrity-.patch \
- file://mdadm.init \
- file://0001-mdadm-add-option-y-for-use-syslog-to-recive-event-re.patch \
+ file://mdadm.init \
+ file://0001-mdadm-add-option-y-for-use-syslog-to-recive-event-re.patch \
file://include_sysmacros.patch \
file://0001-mdadm-skip-test-11spare-migration.patch \
"
@@ -30,7 +30,7 @@ SRC_URI[sha256sum] = "ab7688842908d3583a704d491956f31324c3a5fc9f6a04653cb75d19f1
inherit autotools-brokensep ptest systemd
-SYSTEMD_SERVICE_${PN} = "mdmonitor.service mdmon@.service"
+SYSTEMD_SERVICE_${PN} = "mdmonitor.service"
SYSTEMD_AUTO_ENABLE = "disable"
CFLAGS_append_toolchain-clang = " -Wno-error=address-of-packed-member"
diff --git a/meta/recipes-extended/minicom/minicom/0001-Drop-superfluous-global-variable-definitions.patch b/meta/recipes-extended/minicom/minicom/0001-Drop-superfluous-global-variable-definitions.patch
new file mode 100644
index 0000000000..4c6e249315
--- /dev/null
+++ b/meta/recipes-extended/minicom/minicom/0001-Drop-superfluous-global-variable-definitions.patch
@@ -0,0 +1,35 @@
+From b65152ebc03832972115e6d98e50cb6190d01793 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= <olysonek@redhat.com>
+Date: Mon, 3 Feb 2020 13:18:13 +0100
+Subject: [PATCH 1/3] Drop superfluous global variable definitions
+
+The file minicom.c, by including the minicom.h header, already defines
+the global variables 'dial_user' and 'dial_pass'. The object file
+minicom.o is always linked to dial.o. Thus the definitions in dial.c
+can be dropped.
+
+This fixes linking with gcc 10 which uses -fno-common by default,
+disallowing multiple global variable definitions.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/dial.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/src/dial.c b/src/dial.c
+index eada5ee..d9d481f 100644
+--- a/src/dial.c
++++ b/src/dial.c
+@@ -146,8 +146,6 @@ static int newtype;
+ /* Access to ".dialdir" denied? */
+ static int dendd = 0;
+ static char *tagged;
+-char *dial_user;
+-char *dial_pass;
+
+ /* Change the baud rate. Treat all characters in the given array as if
+ * they were key presses within the comm parameters dialog (C-A P) and
+--
+2.24.1
+
diff --git a/meta/recipes-extended/minicom/minicom/0002-Drop-superfluous-global-variable-definitions.patch b/meta/recipes-extended/minicom/minicom/0002-Drop-superfluous-global-variable-definitions.patch
new file mode 100644
index 0000000000..1740051e0a
--- /dev/null
+++ b/meta/recipes-extended/minicom/minicom/0002-Drop-superfluous-global-variable-definitions.patch
@@ -0,0 +1,37 @@
+From 924bd2da3a00e030e29d82b74ef82900bd50b475 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= <olysonek@redhat.com>
+Date: Mon, 3 Feb 2020 13:18:33 +0100
+Subject: [PATCH 2/3] Drop superfluous global variable definitions
+
+The only place where the EXTERN macro mechanism is used to define the
+global variables 'vt_outmap' and 'vt_inmap' is minicom.c (by defining
+an empty EXTERN macro and including the minicom.h header). The file
+vt100.c already defines these variables. The vt100.o object file is
+always linked to minicom.o. Thus it is safe not to define the
+variables in minicom.c and only declare them in the minicom.h header.
+
+This fixes linking with gcc 10 which uses -fno-common by default,
+disallowing multiple global variable definitions.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/minicom.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/minicom.h b/src/minicom.h
+index 061c013..0f9693b 100644
+--- a/src/minicom.h
++++ b/src/minicom.h
+@@ -141,7 +141,7 @@ EXTERN int sbcolor; /* Status Bar Background Color */
+ EXTERN int st_attr; /* Status Bar attributes. */
+
+ /* jl 04.09.97 conversion tables */
+-EXTERN unsigned char vt_outmap[256], vt_inmap[256];
++extern unsigned char vt_outmap[256], vt_inmap[256];
+
+ /* MARK updated 02/17/95 - history buffer */
+ EXTERN int num_hist_lines; /* History buffer size */
+--
+2.24.1
+
diff --git a/meta/recipes-extended/minicom/minicom/0003-Drop-superfluous-global-variable-definitions.patch b/meta/recipes-extended/minicom/minicom/0003-Drop-superfluous-global-variable-definitions.patch
new file mode 100644
index 0000000000..58cd58eda8
--- /dev/null
+++ b/meta/recipes-extended/minicom/minicom/0003-Drop-superfluous-global-variable-definitions.patch
@@ -0,0 +1,42 @@
+From a4fc603b3641d2efe31479116eb7ba66932901c7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= <olysonek@redhat.com>
+Date: Mon, 3 Feb 2020 13:21:41 +0100
+Subject: [PATCH 3/3] Drop superfluous global variable definitions
+
+The only place where the EXTERN macro mechanism is used to define the
+global variables 'portfd_is_socket', 'portfd_is_connected' and
+'portfd_sock_addr' is minicom.c (by defining an empty EXTERN macro and
+including the minicom.h header). The source file sysdep1_s.c already
+defines these variables. The sysdep1_s.o object file is always linked
+to minicom.o. Thus it is safe to drop the definitions from minicom.c
+and only declare the variables in the minicom.h header.
+
+This fixes linking with gcc 10 which uses -fno-common by default,
+disallowing multiple global variable definitions.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/minicom.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/minicom.h b/src/minicom.h
+index 0f9693b..1e7cb8c 100644
+--- a/src/minicom.h
++++ b/src/minicom.h
+@@ -113,9 +113,9 @@ EXTERN char *dial_user; /* Our username there */
+ EXTERN char *dial_pass; /* Our password */
+
+ #ifdef USE_SOCKET
+-EXTERN int portfd_is_socket; /* File descriptor is a unix socket */
+-EXTERN int portfd_is_connected; /* 1 if the socket is connected */
+-EXTERN struct sockaddr_un portfd_sock_addr; /* the unix socket address */
++extern int portfd_is_socket; /* File descriptor is a unix socket */
++extern int portfd_is_connected; /* 1 if the socket is connected */
++extern struct sockaddr_un portfd_sock_addr; /* the unix socket address */
+ #define portfd_connected ((portfd_is_socket && !portfd_is_connected) \
+ ? -1 : portfd)
+ #else
+--
+2.24.1
+
diff --git a/meta/recipes-extended/minicom/minicom_2.7.1.bb b/meta/recipes-extended/minicom/minicom_2.7.1.bb
index 1e6f1317eb..03034864c8 100644
--- a/meta/recipes-extended/minicom/minicom_2.7.1.bb
+++ b/meta/recipes-extended/minicom/minicom_2.7.1.bb
@@ -11,6 +11,9 @@ SRC_URI = "${DEBIAN_MIRROR}/main/m/${BPN}/${BPN}_${PV}.orig.tar.gz \
file://allow.to.disable.lockdev.patch \
file://0001-fix-minicom-h-v-return-value-is-not-0.patch \
file://0001-Fix-build-issus-surfaced-due-to-musl.patch \
+ file://0001-Drop-superfluous-global-variable-definitions.patch \
+ file://0002-Drop-superfluous-global-variable-definitions.patch \
+ file://0003-Drop-superfluous-global-variable-definitions.patch \
"
SRC_URI[md5sum] = "9021cb8c5445f6e6e74b2acc39962d62"
diff --git a/meta/recipes-extended/msmtp/msmtp_1.8.7.bb b/meta/recipes-extended/msmtp/msmtp_1.8.12.bb
index 729d0ed146..54798f9e6f 100644
--- a/meta/recipes-extended/msmtp/msmtp_1.8.7.bb
+++ b/meta/recipes-extended/msmtp/msmtp_1.8.12.bb
@@ -11,8 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
UPSTREAM_CHECK_URI = "https://marlam.de/msmtp/download/"
SRC_URI = "https://marlam.de/${BPN}/releases/${BP}.tar.xz"
-SRC_URI[md5sum] = "4cf3d000b24fc8769e9fd8ec8b3cf1fb"
-SRC_URI[sha256sum] = "9a53bcdc244ec5b1a806934ecc7746d9d09db581f587bedf597e9da2f48c51f1"
+SRC_URI[sha256sum] = "a86fef9477339923afefe974988a38e32d0feb90dfeeb88f7f55aac356a96354"
inherit gettext autotools update-alternatives pkgconfig
diff --git a/meta/recipes-extended/net-tools/net-tools/0001-lib-inet6.c-INET6_rresolve-various-fixes.patch b/meta/recipes-extended/net-tools/net-tools/0001-lib-inet6.c-INET6_rresolve-various-fixes.patch
deleted file mode 100644
index 8be45ccac9..0000000000
--- a/meta/recipes-extended/net-tools/net-tools/0001-lib-inet6.c-INET6_rresolve-various-fixes.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From 08abfcd923e9f37d1902db26771b1dc6731eb265 Mon Sep 17 00:00:00 2001
-From: Jiri Popelka <jpopelka@redhat.com>
-Date: Fri, 27 Sep 2013 18:40:06 +0200
-Subject: [PATCH 1/1] lib/inet6.c:INET6_rresolve() - various fixes
-
-1) Fall-back to numeric address if getnameinfo fails.
- Reverse lookup is not mandatory, therefore its fail
- is not an error. Just return numeric address in that case.
- This makes netstat/route show IPv6 address instead of
- [UNKNOWN] in case of DNS problems.
-
-2) Pass length of 'name' buffer into function.
- 'name' is a pointer and therefore sizeof(name)
- returns size of pointer and not size of the buffer.
- see http://stackoverflow.com/questions/14298710/c-pointers-and-arrays-sizeof-operator
- The sizeof() usage was added with commit 604785adc,
- so I checked all the other changes in that commit
- and they seem to be OK.
-
-3) remove unused 's' variable
-
-Upstream-Status: Pending
-
-Signed-off-by: Shan Hai <shan.hai@windriver.com>
-Signed-off-by: Jianchuan Wang <jianchuan.wang@windriver.com>
----
- lib/inet6.c | 21 ++++++++++-----------
- 1 file changed, 10 insertions(+), 11 deletions(-)
-
-diff --git a/lib/inet6.c b/lib/inet6.c
-index 9a484a0..2a9c459 100644
---- a/lib/inet6.c
-+++ b/lib/inet6.c
-@@ -84,10 +84,9 @@ static int INET6_resolve(char *name, struct sockaddr_in6 *sin6)
- #endif
-
-
--static int INET6_rresolve(char *name, struct sockaddr_in6 *sin6, int numeric)
-+static int INET6_rresolve(char *name, size_t namelen,
-+ struct sockaddr_in6 *sin6, int numeric)
- {
-- int s;
--
- /* Grmpf. -FvK */
- if (sin6->sin6_family != AF_INET6) {
- #ifdef DEBUG
-@@ -98,21 +97,20 @@ static int INET6_rresolve(char *name, struct sockaddr_in6 *sin6, int numeric)
- return (-1);
- }
- if (numeric & 0x7FFF) {
-- inet_ntop( AF_INET6, &sin6->sin6_addr, name, 80);
-+ inet_ntop( AF_INET6, &sin6->sin6_addr, name, namelen);
- return (0);
- }
- if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr)) {
- if (numeric & 0x8000)
-- strcpy(name, "default");
-+ safe_strncpy(name, "default", namelen);
- else
-- strcpy(name, "[::]");
-+ safe_strncpy(name, "[::]", namelen);
- return (0);
- }
-
-- if ((s = getnameinfo((struct sockaddr *) sin6, sizeof(struct sockaddr_in6),
-- name, 255 /* !! */ , NULL, 0, 0))) {
-- fputs("getnameinfo failed\n", stderr);
-- return -1;
-+ if (getnameinfo((struct sockaddr *) sin6, sizeof(struct sockaddr_in6),
-+ name, namelen , NULL, 0, 0)) {
-+ inet_ntop( AF_INET6, &sin6->sin6_addr, name, namelen);
- }
- return (0);
- }
-@@ -143,7 +141,8 @@ static char *INET6_sprint(struct sockaddr *sap, int numeric)
-
- if (sap->sa_family == 0xFFFF || sap->sa_family == 0)
- return safe_strncpy(buff, _("[NONE SET]"), sizeof(buff));
-- if (INET6_rresolve(buff, (struct sockaddr_in6 *) sap, numeric) != 0)
-+ if (INET6_rresolve(buff, sizeof(buff),
-+ (struct sockaddr_in6 *) sap, numeric) != 0)
- return safe_strncpy(buff, _("[UNKNOWN]"), sizeof(buff));
- return (fix_v4_address(buff, &((struct sockaddr_in6 *)sap)->sin6_addr));
- }
---
-1.8.5.2.233.g932f7e4
-
diff --git a/meta/recipes-extended/net-tools/net-tools/Add_missing_headers.patch b/meta/recipes-extended/net-tools/net-tools/Add_missing_headers.patch
new file mode 100644
index 0000000000..f15d3654c7
--- /dev/null
+++ b/meta/recipes-extended/net-tools/net-tools/Add_missing_headers.patch
@@ -0,0 +1,15 @@
+Description: Add missing headers
+
+Upstream-Status: Pending
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
+--- a/netstat.c
++++ b/netstat.c
+@@ -88,6 +88,7 @@
+ #include <sys/stat.h>
+ #include <net/if.h>
+ #include <dirent.h>
++#include <sys/types.h>
+
+ #include "net-support.h"
+ #include "pathnames.h"
diff --git a/meta/recipes-extended/net-tools/net-tools/Bug_443075-ifconfig.c-pointtopoint_spelling.patch b/meta/recipes-extended/net-tools/net-tools/Bug_443075-ifconfig.c-pointtopoint_spelling.patch
new file mode 100644
index 0000000000..74d74668ce
--- /dev/null
+++ b/meta/recipes-extended/net-tools/net-tools/Bug_443075-ifconfig.c-pointtopoint_spelling.patch
@@ -0,0 +1,26 @@
+Description: Accept "pointtopoint" as a synonym for "pointopoint"
+Bug-Debian: https://bugs.debian.org/443075
+Author: Justin Pryzby <pryzbyj@libra>
+
+Upstream-Status: Pending
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
+--- a/ifconfig.c
++++ b/ifconfig.c
+@@ -644,14 +644,14 @@
+ spp++;
+ continue;
+ }
+- if (!strcmp(*spp, "-pointopoint")) {
++ if (!strcmp(*spp, "-pointopoint") || !strcmp(*spp, "-pointtopoint")) {
+ goterr |= clr_flag(ifr.ifr_name, IFF_POINTOPOINT);
+ spp++;
+ if (test_flag(ifr.ifr_name, IFF_POINTOPOINT) > 0)
+ fprintf(stderr, _("Warning: Interface %s still in POINTOPOINT mode.\n"), ifr.ifr_name);
+ continue;
+ }
+- if (!strcmp(*spp, "pointopoint")) {
++ if (!strcmp(*spp, "pointopoint") || !strcmp(*spp, "pointtopoint")) {
+ if (*(spp + 1) != NULL) {
+ spp++;
+ safe_strncpy(host, *spp, (sizeof host));
diff --git a/meta/recipes-extended/net-tools/net-tools/Bug_541172-netstat.c-exit-codes.patch b/meta/recipes-extended/net-tools/net-tools/Bug_541172-netstat.c-exit-codes.patch
new file mode 100644
index 0000000000..782b94bc61
--- /dev/null
+++ b/meta/recipes-extended/net-tools/net-tools/Bug_541172-netstat.c-exit-codes.patch
@@ -0,0 +1,22 @@
+Description: Bug#541172: netstat.c exit codes
+
+Upstream-Status: Pending
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
+--- a/netstat.c
++++ b/netstat.c
+@@ -2237,12 +2237,14 @@
+ parsesnmp(flag_raw, flag_tcp, flag_udp, flag_sctp);
+ #else
+ ENOSUPP("netstat", "AF INET");
++ exit(1);
+ #endif
+ } else if(!strcmp(afname, "inet6")) {
+ #if HAVE_AFINET6
+ parsesnmp6(flag_raw, flag_tcp, flag_udp);
+ #else
+ ENOSUPP("netstat", "AF INET6");
++ exit(1);
+ #endif
+ } else {
+ printf(_("netstat: No statistics support for specified address family: %s\n"), afname);
diff --git a/meta/recipes-extended/net-tools/net-tools/ifconfig-interface-0-del-IP-will-remove-the-aliased-.patch b/meta/recipes-extended/net-tools/net-tools/ifconfig-interface-0-del-IP-will-remove-the-aliased-.patch
deleted file mode 100644
index 06f81420e9..0000000000
--- a/meta/recipes-extended/net-tools/net-tools/ifconfig-interface-0-del-IP-will-remove-the-aliased-.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 81814dc2b14843009193efd307d814c26baa61f0 Mon Sep 17 00:00:00 2001
-From: Jiri Popelka <jpopelka@redhat.com>
-Date: Wed, 7 Dec 2011 19:14:09 +0100
-Subject: [PATCH] ifconfig interface:0 del <IP> will remove the aliased IP on IA64
-
-Upstream-Status: Backport
-
-commit 81814dc2b14843009193efd307d814c26baa61f0 from
-git://git.code.sf.net/p/net-tools/code
-
----
- ifconfig.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/ifconfig.c b/ifconfig.c
-index bc405c6..dae8922 100644
---- a/ifconfig.c
-+++ b/ifconfig.c
-@@ -890,7 +890,9 @@ int main(int argc, char **argv)
- continue;
- }
-
-- memcpy(&ip, &sin.sin_addr.s_addr, sizeof(unsigned long));
-+ /* Clear "ip" in case sizeof(unsigned long) > sizeof(sin.sin_addr.s_addr) */
-+ ip = 0;
-+ memcpy(&ip, &sin.sin_addr.s_addr, sizeof(sin.sin_addr.s_addr));
-
- if (get_nmbc_parent(ifr.ifr_name, &nm, &bc) < 0) {
- fprintf(stderr, _("Interface %s not initialized\n"),
---
-1.7.9.5
-
diff --git a/meta/recipes-extended/net-tools/net-tools/musl-fixes.patch b/meta/recipes-extended/net-tools/net-tools/musl-fixes.patch
deleted file mode 100644
index f694d594bf..0000000000
--- a/meta/recipes-extended/net-tools/net-tools/musl-fixes.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-Adjust headers for non-glibc cases
-especially exposed by musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-
-Index: net-tools-1.60/lib/inet6_gr.c
-===================================================================
---- net-tools-1.60.orig/lib/inet6_gr.c
-+++ net-tools-1.60/lib/inet6_gr.c
-@@ -23,7 +23,7 @@
- #include <string.h>
- #include <stdio.h>
- #include <unistd.h>
--#ifndef __GLIBC__
-+#ifdef HAVE_IPV6_ROUTE_H
- #include <netinet6/ipv6_route.h> /* glibc doesn't have this */
- #endif
- #include "version.h"
-Index: net-tools-1.60/lib/inet6_sr.c
-===================================================================
---- net-tools-1.60.orig/lib/inet6_sr.c
-+++ net-tools-1.60/lib/inet6_sr.c
-@@ -23,10 +23,10 @@
- #include <string.h>
- #include <stdio.h>
- #include <unistd.h>
--#ifdef __GLIBC__
--#include <net/route.h>
--#else
-+#ifdef HAVE_IPV6_ROUTE_H
- #include <netinet6/ipv6_route.h> /* glibc does not have this */
-+#else
-+#include <net/route.h>
- #endif
- #include "version.h"
- #include "net-support.h"
-Index: net-tools-1.60/lib/inet_sr.c
-===================================================================
---- net-tools-1.60.orig/lib/inet_sr.c
-+++ net-tools-1.60/lib/inet_sr.c
-@@ -26,6 +26,7 @@
- #include <string.h>
- #include <stdio.h>
- #include <unistd.h>
-+#include <asm-generic/param.h>
- #include "version.h"
- #include "net-support.h"
- #include "pathnames.h"
-Index: net-tools-1.60/lib/util-ank.c
-===================================================================
---- net-tools-1.60.orig/lib/util-ank.c
-+++ net-tools-1.60/lib/util-ank.c
-@@ -14,6 +14,7 @@
- * Rani Assaf <rani@magic.metawire.com> 980929: resolve addresses
- */
-
-+#include <limits.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
-Index: net-tools-1.60/mii-tool.c
-===================================================================
---- net-tools-1.60.orig/mii-tool.c
-+++ net-tools-1.60/mii-tool.c
-@@ -47,10 +47,6 @@ static char Version[] = "$Id: mii-tool.c
- #include <net/if.h>
- #include <linux/sockios.h>
-
--#ifndef __GLIBC__
--#include <linux/if_arp.h>
--#include <linux/if_ether.h>
--#endif
- #include "mii.h"
- #include "version.h"
-
-Index: net-tools-1.60/netstat.c
-===================================================================
---- net-tools-1.60.orig/netstat.c
-+++ net-tools-1.60/netstat.c
-@@ -87,6 +87,7 @@
- #include <dirent.h>
- #include <sys/stat.h>
- #include <sys/types.h>
-+#include <asm-generic/param.h>
-
- #include "net-support.h"
- #include "pathnames.h"
-Index: net-tools-1.60/slattach.c
-===================================================================
---- net-tools-1.60.orig/slattach.c
-+++ net-tools-1.60/slattach.c
-@@ -44,6 +44,7 @@
- #include <string.h>
- #include <unistd.h>
- #include <getopt.h>
-+#include <termios.h>
- #include <linux/if_slip.h>
-
- #if defined(__GLIBC__)
diff --git a/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp1.patch b/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp1.patch
deleted file mode 100644
index 78daf6c3ed..0000000000
--- a/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp1.patch
+++ /dev/null
@@ -1,635 +0,0 @@
-From 23276afe270009420cfbc52bffafdd25ac0817fe Mon Sep 17 00:00:00 2001
-From: Li Zhou <li.zhou@windriver.com>
-Date: Thu, 14 Jan 2016 17:01:29 +0800
-Subject: [PATCH 1/3] net-tools: add SCTP support for netstat
-
-Upstream-Status: pending
-
-Signed-off-by: Li Zhou <li.zhou@windriver.com>
----
- netstat.c | 411 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
- statistics.c | 68 +++++++++-
- 2 files changed, 465 insertions(+), 14 deletions(-)
-
-Index: net-tools-1.60/netstat.c
-===================================================================
---- net-tools-1.60.orig/netstat.c
-+++ net-tools-1.60/netstat.c
-@@ -58,6 +58,7 @@
- *
- *990420 {1.38} Tuan Hoang removed a useless assignment from igmp_do_one()
- *20010404 {1.39} Arnaldo Carvalho de Melo - use setlocale
-+ *20050516 {1.40} Ivan Skytte Joergensen:Added SCTP support
- *
- * This program is free software; you can redistribute it
- * and/or modify it under the terms of the GNU General
-@@ -106,7 +107,7 @@
- #endif
-
- /* prototypes for statistics.c */
--void parsesnmp(int, int, int);
-+void parsesnmp(int, int, int, int);
- void inittab(void);
- void parsesnmp6(int, int, int);
- void inittab6(void);
-@@ -119,6 +120,28 @@ typedef enum {
- SS_DISCONNECTING /* in process of disconnecting */
- } socket_state;
-
-+#define SCTP_NSTATES 9 /* The number of states in array*/
-+
-+static const char *sctp_state[] = {
-+ N_("EMPTY"),
-+ N_("CLOSED"),
-+ N_("COOKIE_WAIT"),
-+ N_("COOKIE_ECHOED"),
-+ N_("ESTABLISHED"),
-+ N_("SHUTDOWN_PENDING"),
-+ N_("SHUTDOWN_SENT"),
-+ N_("SHUTDOWN_RECEIVED"),
-+ N_("SHUTDOWN_ACK_SENT")
-+};
-+
-+#define SCTP_NTYPES 3 /* The number of types in array */
-+
-+static const char *sctp_type[] = {
-+ N_("udp"),
-+ N_("udp-high-bw"),
-+ N_("tcp")
-+};
-+
- #define SO_ACCEPTCON (1<<16) /* performed a listen */
- #define SO_WAITDATA (1<<17) /* wait data to read */
- #define SO_NOSPACE (1<<18) /* no space to write */
-@@ -149,6 +172,7 @@ int flag_opt = 0;
- int flag_raw = 0;
- int flag_tcp = 0;
- int flag_udp = 0;
-+int flag_sctp= 0;
- int flag_igmp= 0;
- int flag_rom = 0;
- int flag_exp = 1;
-@@ -995,6 +1019,365 @@ static int udp_info(void)
- udp_do_one);
- }
-
-+static const char *sctp_socket_type_str(int type) {
-+ if(type>=0 && type<SCTP_NTYPES)
-+ return sctp_type[type];
-+ else {
-+ static char type_str_buf[64];
-+ sprintf(type_str_buf,"UNKNOWN(%d)",type);
-+ return type_str_buf;
-+ }
-+}
-+
-+static const char *sctp_state_str(int state)
-+{
-+ if(state>=0 && state<SCTP_NSTATES)
-+ return sctp_state[state];
-+ else {
-+ static char state_str_buf[64];
-+ sprintf(state_str_buf,"UNKNOWN(%d)",state);
-+ return state_str_buf;
-+ }
-+}
-+
-+static const char *sctp_socket_state_str(int state)
-+{
-+ if(state>=0 && state<=10)
-+ return tcp_state[state];
-+ else {
-+ static char state_str_buf[64];
-+ sprintf(state_str_buf,"UNKNOWN(%d)",state);
-+ return state_str_buf;
-+ }
-+}
-+
-+static struct aftype *process_sctp_addr_str(const char *addr_str, struct sockaddr *sa)
-+{
-+ if (strchr(addr_str,':')) {
-+#if HAVE_AFINET6
-+ extern struct aftype inet6_aftype;
-+ /* Demangle what the kernel gives us */
-+ struct in6_addr in6;
-+ char addr6_str[INET6_ADDRSTRLEN];
-+ unsigned u0,u1,u2,u3,u4,u5,u6,u7;
-+ sscanf(addr_str, "%04X:%04X:%04X:%04X:%04X:%04X:%04X:%04X",
-+ &u0, &u1, &u2, &u3, &u4, &u5, &u6, &u7);
-+ in6.s6_addr16[0] = htons(u0);
-+ in6.s6_addr16[1] = htons(u1);
-+ in6.s6_addr16[2] = htons(u2);
-+ in6.s6_addr16[3] = htons(u3);
-+ in6.s6_addr16[4] = htons(u4);
-+ in6.s6_addr16[5] = htons(u5);
-+ in6.s6_addr16[6] = htons(u6);
-+ in6.s6_addr16[7] = htons(u7);
-+
-+ inet_ntop(AF_INET6, &in6, addr6_str, sizeof(addr6_str));
-+ inet6_aftype.input(1, addr6_str, sa);
-+ sa->sa_family = AF_INET6;
-+#endif
-+ } else {
-+ ((struct sockaddr_in*)sa)->sin_addr.s_addr = inet_addr(addr_str);
-+ sa->sa_family = AF_INET;
-+ }
-+ return get_afntype(sa->sa_family);
-+}
-+
-+static void sctp_eps_do_one(int lnr, char *line)
-+{
-+ char buffer[1024];
-+ int type, state, port;
-+ int uid;
-+ unsigned long inode;
-+
-+ struct aftype *ap;
-+#if HAVE_AFINET6
-+ struct sockaddr_in6 localaddr;
-+#else
-+ struct sockaddr_in localaddr;
-+#endif
-+ const char *sty_str;
-+ const char *sst_str;
-+ const char *lport_str;
-+ const char *uid_str;
-+ const char *inode_str;
-+ const char *pladdr_str;
-+ char *laddrs_str;
-+
-+ if(lnr == 0) {
-+ /* ENDPT SOCK STY SST HBKT LPORT uid inode pladdr LADDRS*/
-+ return;
-+ }
-+
-+ strtok(line," \t\n"); /*skip ptr*/
-+ strtok(0," \t\n"); /*skip ptr*/
-+ sty_str = strtok(0," \t\n");
-+ sst_str = strtok(0," \t\n");
-+ strtok(0," \t\n"); /*skip hash bucket*/
-+ lport_str=strtok(0," \t\n");
-+ uid_str = strtok(0," \t\n");
-+ inode_str = strtok(0," \t\n");
-+ pladdr_str = strtok(0," \t\n");
-+ laddrs_str=strtok(0,"\t\n");
-+
-+ type = atoi(sty_str);
-+ state = atoi(sst_str);
-+ port = atoi(lport_str);
-+ uid = atoi(uid_str);
-+ inode = strtoul(inode_str,0,0);
-+
-+ if(flag_sctp<=1) {
-+ /* only print the primary address */
-+ char local_addr[64];
-+ char local_port[16];
-+
-+ ap = process_sctp_addr_str(pladdr_str, (struct sockaddr*)&localaddr);
-+ if(ap)
-+ safe_strncpy(local_addr,
-+ ap->sprint((struct sockaddr *) &localaddr, flag_not),
-+ sizeof(local_addr));
-+ else
-+ sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family);
-+
-+ snprintf(local_port, sizeof(local_port), "%s",
-+ get_sname(htons(port), "sctp",
-+ flag_not & FLAG_NUM_PORT));
-+
-+ printf("sctp ");
-+ sprintf(buffer,"%s:%s", local_addr, local_port);
-+ printf("%-47s", buffer);
-+ printf(" %-12s", sctp_socket_state_str(state));
-+ } else {
-+ /*print all addresses*/
-+ const char *this_local_addr;
-+ int first=1;
-+ char local_port[16];
-+ snprintf(local_port, sizeof(local_port), "%s",
-+ get_sname(htons(port), "sctp",
-+ flag_not & FLAG_NUM_PORT));
-+ for(this_local_addr=strtok(laddrs_str," \t\n");
-+ this_local_addr;
-+ this_local_addr=strtok(0," \t\n"))
-+ {
-+ char local_addr[64];
-+ ap = process_sctp_addr_str(this_local_addr, (struct sockaddr*)&localaddr);
-+ if(ap)
-+ safe_strncpy(local_addr,
-+ ap->sprint((struct sockaddr *) &localaddr, flag_not),
-+ sizeof(local_addr));
-+ else
-+ sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family);
-+
-+ if(!first) printf("\n");
-+ if(first)
-+ printf("sctp ");
-+ else
-+ printf(" ");
-+ sprintf(buffer,"%s:%s", local_addr, local_port);
-+ printf("%-47s", buffer);
-+ printf(" %-12s", first?sctp_socket_state_str(state):"");
-+ first = 0;
-+ }
-+ }
-+
-+ finish_this_one(uid,inode,"");
-+}
-+
-+static void sctp_assoc_do_one(int lnr, char *line)
-+{
-+ char buffer[1024];
-+ int type, state, state2, lport,rport;
-+ int uid;
-+ unsigned rxqueue,txqueue;
-+ unsigned long inode;
-+
-+ struct aftype *ap;
-+#if HAVE_AFINET6
-+ struct sockaddr_in6 localaddr,remoteaddr;
-+#else
-+ struct sockaddr_in localaddr,remoteaddr;
-+#endif
-+ const char *sty_str;
-+ const char *sst_str;
-+ const char *st_str;
-+ const char *txqueue_str;
-+ const char *rxqueue_str;
-+ const char *lport_str,*rport_str;
-+ const char *uid_str;
-+ const char *inode_str;
-+ const char *pladdr_str;
-+ char *laddrs_str;
-+ const char *praddr_str;
-+ char *raddrs_str;
-+
-+ if(lnr == 0) {
-+ /* ASSOC SOCK STY SST ST HBKT tx_queue rx_queue uid inode LPORT RPORT pladdr praddr LADDRS <-> RADDRS*/
-+ return;
-+ }
-+
-+ strtok(line," \t\n"); /*skip ptr*/
-+ strtok(0," \t\n"); /*skip ptr*/
-+ sty_str = strtok(0," \t\n");
-+ sst_str = strtok(0," \t\n");
-+ st_str = strtok(0," \t\n");
-+ strtok(0," \t\n"); /*skip hash bucket*/
-+ txqueue_str = strtok(0," \t\n");
-+ rxqueue_str = strtok(0," \t\n");
-+ uid_str = strtok(0," \t\n");
-+ inode_str = strtok(0," \t\n");
-+ lport_str=strtok(0," \t\n");
-+ rport_str=strtok(0," \t\n");
-+ pladdr_str = strtok(0," \t\n");
-+ praddr_str = strtok(0," \t\n");
-+ laddrs_str=strtok(0,"<->\t\n");
-+ raddrs_str=strtok(0,"<->\t\n");
-+
-+ type = atoi(sty_str);
-+ state = atoi(sst_str);
-+ state2 = atoi(st_str);
-+ txqueue = atoi(txqueue_str);
-+ rxqueue = atoi(rxqueue_str);
-+ uid = atoi(uid_str);
-+ inode = strtoul(inode_str,0,0);
-+ lport = atoi(lport_str);
-+ rport = atoi(rport_str);
-+
-+ if(flag_sctp<=1) {
-+ /* only print the primary addresses */
-+ char local_addr[64];
-+ char local_port[16];
-+ char remote_addr[64];
-+ char remote_port[16];
-+
-+ ap = process_sctp_addr_str(pladdr_str, (struct sockaddr*)&localaddr);
-+ if(ap)
-+ safe_strncpy(local_addr,
-+ ap->sprint((struct sockaddr *) &localaddr, flag_not),
-+ sizeof(local_addr));
-+ else
-+ sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family);
-+
-+ snprintf(local_port, sizeof(local_port), "%s",
-+ get_sname(htons(lport), "sctp",
-+ flag_not & FLAG_NUM_PORT));
-+
-+ ap = process_sctp_addr_str(praddr_str, (struct sockaddr*)&remoteaddr);
-+ if(ap)
-+ safe_strncpy(remote_addr,
-+ ap->sprint((struct sockaddr *) &remoteaddr, flag_not),
-+ sizeof(remote_addr));
-+ else
-+ sprintf(remote_addr,_("unsupported address family %d"), ((struct sockaddr*)&remoteaddr)->sa_family);
-+
-+ snprintf(remote_port, sizeof(remote_port), "%s",
-+ get_sname(htons(rport), "sctp",
-+ flag_not & FLAG_NUM_PORT));
-+
-+ printf("sctp");
-+ printf(" %6u %6u ", rxqueue, txqueue);
-+ sprintf(buffer,"%s:%s", local_addr, local_port);
-+ printf("%-23s", buffer);
-+ printf(" ");
-+ sprintf(buffer,"%s:%s", remote_addr, remote_port);
-+ printf("%-23s", buffer);
-+ printf(" %-12s", sctp_socket_state_str(state));
-+ } else {
-+ /*print all addresses*/
-+ const char *this_local_addr;
-+ const char *this_remote_addr;
-+ char *ss1,*ss2;
-+ int first=1;
-+ char local_port[16];
-+ char remote_port[16];
-+ snprintf(local_port, sizeof(local_port), "%s",
-+ get_sname(htons(lport), "sctp",
-+ flag_not & FLAG_NUM_PORT));
-+ snprintf(remote_port, sizeof(remote_port), "%s",
-+ get_sname(htons(rport), "sctp",
-+ flag_not & FLAG_NUM_PORT));
-+
-+ this_local_addr=strtok_r(laddrs_str," \t\n",&ss1);
-+ this_remote_addr=strtok_r(raddrs_str," \t\n",&ss2);
-+ while(this_local_addr || this_remote_addr) {
-+ char local_addr[64];
-+ char remote_addr[64];
-+ if(this_local_addr) {
-+ ap = process_sctp_addr_str(this_local_addr, (struct sockaddr*)&localaddr);
-+ if(ap)
-+ safe_strncpy(local_addr,
-+ ap->sprint((struct sockaddr *) &localaddr, flag_not),
-+ sizeof(local_addr));
-+ else
-+ sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family);
-+ }
-+ if(this_remote_addr) {
-+ ap = process_sctp_addr_str(this_remote_addr, (struct sockaddr*)&remoteaddr);
-+ if(ap)
-+ safe_strncpy(remote_addr,
-+ ap->sprint((struct sockaddr *) &remoteaddr, flag_not),
-+ sizeof(remote_addr));
-+ else
-+ sprintf(remote_addr,_("unsupported address family %d"), ((struct sockaddr*)&remoteaddr)->sa_family);
-+ }
-+
-+ if(!first) printf("\n");
-+ if(first)
-+ printf("sctp %6u %6u ", rxqueue, txqueue);
-+ else
-+ printf(" ");
-+ if(this_local_addr) {
-+ if(first)
-+ sprintf(buffer,"%s:%s", local_addr, local_port);
-+ else
-+ sprintf(buffer,"%s", local_addr);
-+ printf("%-23s", buffer);
-+ } else
-+ printf("%-23s", "");
-+ printf(" ");
-+ if(this_remote_addr) {
-+ if(first)
-+ sprintf(buffer,"%s:%s", remote_addr, remote_port);
-+ else
-+ sprintf(buffer,"%s", remote_addr);
-+ printf("%-23s", buffer);
-+ } else
-+ printf("%-23s", "");
-+
-+ printf(" %-12s", first?sctp_socket_state_str(state):"");
-+
-+ first = 0;
-+ this_local_addr=strtok_r(0," \t\n",&ss1);
-+ this_remote_addr=strtok_r(0," \t\n",&ss2);
-+ }
-+ }
-+
-+ finish_this_one(uid,inode,"");
-+}
-+
-+static int sctp_info_eps(void)
-+{
-+#if !defined(_PATH_PROCNET_SCTP_EPS)
-+#define _PATH_PROCNET_SCTP_EPS "/proc/net/sctp/eps"
-+#endif
-+ INFO_GUTS(_PATH_PROCNET_SCTP_EPS, "AF INET (sctp)",
-+ sctp_eps_do_one);
-+}
-+
-+static int sctp_info_assocs(void)
-+{
-+#if !defined(_PATH_PROCNET_SCTP_ASSOCS)
-+#define _PATH_PROCNET_SCTP_ASSOCS "/proc/net/sctp/assocs"
-+#endif
-+ INFO_GUTS(_PATH_PROCNET_SCTP_ASSOCS, "AF INET (sctp)",
-+ sctp_assoc_do_one);
-+}
-+
-+static int sctp_info(void)
-+{
-+ if(flag_all)
-+ sctp_info_eps();
-+ return sctp_info_assocs();
-+}
-+
- static void raw_do_one(int lnr, const char *line)
- {
- char buffer[8192], local_addr[64], rem_addr[64];
-@@ -1558,7 +1941,7 @@ static void usage(void)
- fprintf(stderr, _(" -F, --fib display Forwarding Information Base (default)\n"));
- fprintf(stderr, _(" -C, --cache display routing cache instead of FIB\n\n"));
-
-- fprintf(stderr, _(" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom\n"));
-+ fprintf(stderr, _(" <Socket>={-t|--tcp} {-u|--udp} {-S|--sctp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom\n"));
- fprintf(stderr, _(" <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n"), DFLT_AF);
- fprintf(stderr, _(" List of possible address families (which support routing):\n"));
- print_aflist(1); /* 1 = routeable */
-@@ -1583,6 +1966,7 @@ int main
- {"protocol", 1, 0, 'A'},
- {"tcp", 0, 0, 't'},
- {"udp", 0, 0, 'u'},
-+ {"sctp", 0, 0, 'S' },
- {"raw", 0, 0, 'w'},
- {"unix", 0, 0, 'x'},
- {"listening", 0, 0, 'l'},
-@@ -1613,7 +1997,7 @@ int main
- getroute_init(); /* Set up AF routing support */
-
- afname[0] = '\0';
-- while ((i = getopt_long(argc, argv, "MCFA:acdegphinNorstuWVv?wxl64", longopts, &lop)) != EOF)
-+ while ((i = getopt_long(argc, argv, "MCFA:acdegphinNorstuSWVv?wxl64", longopts, &lop)) != EOF)
- switch (i) {
- case -1:
- break;
-@@ -1705,10 +2089,12 @@ int main
- case 't':
- flag_tcp++;
- break;
--
- case 'u':
- flag_udp++;
- break;
-+ case 'S':
-+ flag_sctp++;
-+ break;
- case 'w':
- flag_raw++;
- break;
-@@ -1726,13 +2112,13 @@ int main
- if (flag_int + flag_rou + flag_mas + flag_sta > 1)
- usage();
-
-- if ((flag_inet || flag_inet6 || flag_sta) && !(flag_tcp || flag_udp || flag_raw))
-- flag_tcp = flag_udp = flag_raw = 1;
-+ if ((flag_inet || flag_inet6 || flag_sta) && !(flag_tcp || flag_udp || flag_sctp || flag_raw))
-+ flag_tcp = flag_udp = flag_sctp = flag_raw = 1;
-
-- if ((flag_tcp || flag_udp || flag_raw || flag_igmp) && !(flag_inet || flag_inet6))
-+ if ((flag_tcp || flag_udp || flag_sctp || flag_raw || flag_igmp) && !(flag_inet || flag_inet6))
- flag_inet = flag_inet6 = 1;
-
-- flag_arg = flag_tcp + flag_udp + flag_raw + flag_unx + flag_ipx
-+ flag_arg = flag_tcp + flag_udp + flag_sctp + flag_raw + flag_unx + flag_ipx
- + flag_ax25 + flag_netrom + flag_igmp + flag_x25;
-
- if (flag_mas) {
-@@ -1760,7 +2146,7 @@ int main
- char buf[256];
- if (!afname[0]) {
- inittab();
-- parsesnmp(flag_raw, flag_tcp, flag_udp);
-+ parsesnmp(flag_raw, flag_tcp, flag_udp, flag_sctp);
- } else {
- safe_strncpy(buf, afname, sizeof(buf));
- tmp1 = buf;
-@@ -1815,7 +2201,7 @@ int main
- return (i);
- }
- for (;;) {
-- if (!flag_arg || flag_tcp || flag_udp || flag_raw) {
-+ if (!flag_arg || flag_tcp || flag_udp || flag_sctp || flag_raw) {
- #if HAVE_AFINET
- prg_cache_load();
- printf(_("Active Internet connections ")); /* xxx */
-@@ -1854,6 +2240,11 @@ int main
- if (i)
- return (i);
- }
-+ if (!flag_arg || flag_sctp) {
-+ i = sctp_info();
-+ if (i)
-+ return (i);
-+ }
- if (!flag_arg || flag_raw) {
- i = raw_info();
- if (i)
-Index: net-tools-1.60/statistics.c
-===================================================================
---- net-tools-1.60.orig/statistics.c
-+++ net-tools-1.60/statistics.c
-@@ -21,7 +21,7 @@
- #define UFWARN(x)
- #endif
-
--int print_static,f_raw,f_tcp,f_udp,f_unknown = 1;
-+int print_static,f_raw,f_tcp,f_udp,f_sctp,f_unknown = 1;
-
- enum State {
- number = 0, opt_number, i_forward, i_inp_icmp, i_outp_icmp, i_rto_alg,
-@@ -297,6 +297,27 @@ struct entry Tcpexttab[] =
- { "TCPRenoRecoveryFail", N_("%llu classic Reno fast retransmits failed"), opt_number },
- };
-
-+struct entry Sctptab[] =
-+{
-+ {"SctpCurrEstab", N_("%u Current Associations"), number},
-+ {"SctpActiveEstabs", N_("%u Active Associations"), number},
-+ {"SctpPassiveEstabs", N_("%u Passive Associations"), number},
-+ {"SctpAborteds", N_("%u Number of Aborteds "), number},
-+ {"SctpShutdowns", N_("%u Number of Graceful Terminations"), number},
-+ {"SctpOutOfBlues", N_("%u Number of Out of Blue packets"), number},
-+ {"SctpChecksumErrors", N_("%u Number of Packets with invalid Checksum"), number},
-+ {"SctpOutCtrlChunks", N_("%u Number of control chunks sent"), number},
-+ {"SctpOutOrderChunks", N_("%u Number of ordered chunks sent"), number},
-+ {"SctpOutUnorderChunks", N_("%u Number of Unordered chunks sent"), number},
-+ {"SctpInCtrlChunks", N_("%u Number of control chunks received"), number},
-+ {"SctpInOrderChunks", N_("%u Number of ordered chunks received"), number},
-+ {"SctpInUnorderChunks", N_("%u Number of Unordered chunks received"), number},
-+ {"SctpFragUsrMsgs", N_("%u Number of messages fragmented"), number},
-+ {"SctpReasmUsrMsgs", N_("%u Number of messages reassembled "), number},
-+ {"SctpOutSCTPPacks", N_("%u Number of SCTP packets sent"), number},
-+ {"SctpInSCTPPacks", N_("%u Number of SCTP packets received"), number},
-+};
-+
- struct tabtab {
- char *title;
- struct entry *tab;
-@@ -310,6 +331,7 @@ struct tabtab snmptabs[] =
- {"Icmp", Icmptab, sizeof(Icmptab), &f_raw},
- {"Tcp", Tcptab, sizeof(Tcptab), &f_tcp},
- {"Udp", Udptab, sizeof(Udptab), &f_udp},
-+ {"Sctp", Sctptab, sizeof(Sctptab), &f_sctp},
- {"TcpExt", Tcpexttab, sizeof(Tcpexttab), &f_tcp},
- {NULL}
- };
-@@ -499,12 +521,40 @@ void process6_fd(FILE *f)
-
- }
-
--void parsesnmp(int flag_raw, int flag_tcp, int flag_udp)
-+/* Process a file with name-value lines (like /proc/net/sctp/snmp) */
-+void process_fd2(FILE *f, const char *filename)
-+{
-+ char buf1[1024];
-+ char *sp;
-+ struct tabtab *tab;
-+
-+ tab = newtable(snmptabs, "Sctp");
-+
-+ while (fgets(buf1, sizeof buf1, f)) {
-+ sp = buf1 + strcspn(buf1, " \t\n");
-+ if (!sp)
-+ goto formaterr;
-+ *sp = '\0';
-+ sp++;
-+
-+ sp += strspn(sp, " \t\n");
-+
-+ if (*sp != '\0' && *(tab->flag))
-+ printval(tab, buf1, strtoul(sp, 0, 10));
-+ }
-+ return;
-+
-+formaterr:
-+ fprintf(stderr,_("error parsing %s\n"), filename);
-+ return;
-+}
-+
-+void parsesnmp(int flag_raw, int flag_tcp, int flag_udp, int flag_sctp)
- {
- FILE *f;
-
-- f_raw = flag_raw; f_tcp = flag_tcp; f_udp = flag_udp;
--
-+ f_raw = flag_raw; f_tcp = flag_tcp; f_udp = flag_udp; f_sctp = flag_sctp;
-+
- f = proc_fopen("/proc/net/snmp");
- if (!f) {
- perror(_("cannot open /proc/net/snmp"));
-@@ -530,6 +580,16 @@ void parsesnmp(int flag_raw, int flag_tc
-
- fclose(f);
- }
-+
-+ f = fopen("/proc/net/sctp/snmp", "r");
-+ if (f) {
-+ process_fd2(f,"/proc/net/sctp/snmp");
-+ if (ferror(f))
-+ perror("/proc/net/sctp/snmp");
-+
-+ fclose(f);
-+ }
-+
- return;
- }
-
diff --git a/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp2-quiet.patch b/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp2-quiet.patch
deleted file mode 100644
index d34e651327..0000000000
--- a/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp2-quiet.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 14287b594e1f02b811f889fb515c1a51b72c08d4 Mon Sep 17 00:00:00 2001
-From: Li Zhou <li.zhou@windriver.com>
-Date: Thu, 14 Jan 2016 17:07:48 +0800
-Subject: [PATCH 2/3] net-tools: add SCTP support for netstat
-
-Upstream-Status: pending
-
-Signed-off-by: Li Zhou <li.zhou@windriver.com>
----
- netstat.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/netstat.c b/netstat.c
-index 5d1a4a1..56a15c2 100644
---- a/netstat.c
-+++ b/netstat.c
-@@ -2104,7 +2104,7 @@ int main
- usage();
-
- if ((flag_inet || flag_inet6 || flag_sta) && !(flag_tcp || flag_udp || flag_sctp || flag_raw))
-- flag_tcp = flag_udp = flag_sctp = flag_raw = 1;
-+ flag_tcp = flag_udp = flag_raw = 1;
-
- if ((flag_tcp || flag_udp || flag_sctp || flag_raw || flag_igmp) && !(flag_inet || flag_inet6))
- flag_inet = flag_inet6 = 1;
---
-1.8.5.2.233.g932f7e4
-
diff --git a/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp3-addrs.patch b/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp3-addrs.patch
deleted file mode 100644
index 8b2ecab707..0000000000
--- a/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp3-addrs.patch
+++ /dev/null
@@ -1,363 +0,0 @@
-From 1d386279a449a1a6b96b88a71f35bf13b14b2c2c Mon Sep 17 00:00:00 2001
-From: Li Zhou <li.zhou@windriver.com>
-Date: Thu, 14 Jan 2016 17:11:24 +0800
-Subject: [PATCH 3/3] net-tools: add SCTP support for netstat
-
-Upstream-Status: pending
-
-Signed-off-by: Li Zhou <li.zhou@windriver.com>
----
- netstat.c | 282 ++++++++++++++++++++++++--------------------------------------
- 1 file changed, 108 insertions(+), 174 deletions(-)
-
-diff --git a/netstat.c b/netstat.c
-index 56a15c2..86adadb 100644
---- a/netstat.c
-+++ b/netstat.c
-@@ -1095,23 +1095,21 @@ static void sctp_eps_do_one(int lnr, char *line)
- const char *lport_str;
- const char *uid_str;
- const char *inode_str;
-- const char *pladdr_str;
- char *laddrs_str;
-
- if(lnr == 0) {
-- /* ENDPT SOCK STY SST HBKT LPORT uid inode pladdr LADDRS*/
-+ /* ENDPT SOCK STY SST HBKT LPORT UID INODE LADDRS */
- return;
- }
-
-- strtok(line," \t\n"); /*skip ptr*/
-- strtok(0," \t\n"); /*skip ptr*/
-+ strtok(line," \t\n"); /*skip endpt*/
-+ strtok(0," \t\n"); /*skip sock*/
- sty_str = strtok(0," \t\n");
- sst_str = strtok(0," \t\n");
- strtok(0," \t\n"); /*skip hash bucket*/
- lport_str=strtok(0," \t\n");
- uid_str = strtok(0," \t\n");
- inode_str = strtok(0," \t\n");
-- pladdr_str = strtok(0," \t\n");
- laddrs_str=strtok(0,"\t\n");
-
- type = atoi(sty_str);
-@@ -1119,61 +1117,35 @@ static void sctp_eps_do_one(int lnr, char *line)
- port = atoi(lport_str);
- uid = atoi(uid_str);
- inode = strtoul(inode_str,0,0);
--
-- if(flag_sctp<=1) {
-- /* only print the primary address */
-- char local_addr[64];
-- char local_port[16];
--
-- ap = process_sctp_addr_str(pladdr_str, (struct sockaddr*)&localaddr);
-- if(ap)
-- safe_strncpy(local_addr,
-- ap->sprint((struct sockaddr *) &localaddr, flag_not),
-- sizeof(local_addr));
-- else
-- sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family);
--
-- snprintf(local_port, sizeof(local_port), "%s",
-- get_sname(htons(port), "sctp",
-- flag_not & FLAG_NUM_PORT));
--
-- printf("sctp ");
-- sprintf(buffer,"%s:%s", local_addr, local_port);
-- printf("%-47s", buffer);
-- printf(" %-12s", sctp_socket_state_str(state));
-- } else {
-- /*print all addresses*/
-- const char *this_local_addr;
-- int first=1;
-- char local_port[16];
-- snprintf(local_port, sizeof(local_port), "%s",
-- get_sname(htons(port), "sctp",
-- flag_not & FLAG_NUM_PORT));
-- for(this_local_addr=strtok(laddrs_str," \t\n");
-- this_local_addr;
-- this_local_addr=strtok(0," \t\n"))
-- {
-- char local_addr[64];
-- ap = process_sctp_addr_str(this_local_addr, (struct sockaddr*)&localaddr);
-- if(ap)
-- safe_strncpy(local_addr,
-- ap->sprint((struct sockaddr *) &localaddr, flag_not),
-- sizeof(local_addr));
-- else
-- sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family);
-
-- if(!first) printf("\n");
-- if(first)
-- printf("sctp ");
-- else
-- printf(" ");
-- sprintf(buffer,"%s:%s", local_addr, local_port);
-- printf("%-47s", buffer);
-- printf(" %-12s", first?sctp_socket_state_str(state):"");
-- first = 0;
-- }
-+ const char *this_local_addr;
-+ int first=1;
-+ char local_port[16];
-+ snprintf(local_port, sizeof(local_port), "%s",
-+ get_sname(htons(port), "sctp", flag_not & FLAG_NUM_PORT));
-+ for(this_local_addr=strtok(laddrs_str," \t\n");
-+ this_local_addr;
-+ this_local_addr=strtok(0," \t\n"))
-+ {
-+ char local_addr[64];
-+ ap = process_sctp_addr_str(this_local_addr, (struct sockaddr*)&localaddr);
-+ if(ap)
-+ safe_strncpy(local_addr,
-+ ap->sprint((struct sockaddr *) &localaddr, flag_not),
-+ sizeof(local_addr));
-+ else
-+ sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family);
-+
-+ if(!first) printf("\n");
-+ if(first)
-+ printf("sctp ");
-+ else
-+ printf(" ");
-+ sprintf(buffer,"%s:%s", local_addr, local_port);
-+ printf("%-55s", buffer);
-+ printf(" %-12s", first?sctp_socket_state_str(state):"");
-+ first = 0;
- }
--
- finish_this_one(uid,inode,"");
- }
-
-@@ -1199,32 +1171,29 @@ static void sctp_assoc_do_one(int lnr, char *line)
- const char *lport_str,*rport_str;
- const char *uid_str;
- const char *inode_str;
-- const char *pladdr_str;
- char *laddrs_str;
-- const char *praddr_str;
- char *raddrs_str;
--
-+
- if(lnr == 0) {
-- /* ASSOC SOCK STY SST ST HBKT tx_queue rx_queue uid inode LPORT RPORT pladdr praddr LADDRS <-> RADDRS*/
-+ /* ASSOC SOCK STY SST ST HBKT ASSOC-ID TX_QUEUE RX_QUEUE UID INODE LPORT RPORT LADDRS <-> RADDRS */
- return;
- }
--
-- strtok(line," \t\n"); /*skip ptr*/
-- strtok(0," \t\n"); /*skip ptr*/
-+
-+ strtok(line," \t\n"); /*skip assoc*/
-+ strtok(0," \t\n"); /*skip sock*/
- sty_str = strtok(0," \t\n");
- sst_str = strtok(0," \t\n");
- st_str = strtok(0," \t\n");
- strtok(0," \t\n"); /*skip hash bucket*/
-+ strtok(0," \t\n"); /*skip hash assoc-id*/
- txqueue_str = strtok(0," \t\n");
- rxqueue_str = strtok(0," \t\n");
- uid_str = strtok(0," \t\n");
- inode_str = strtok(0," \t\n");
- lport_str=strtok(0," \t\n");
- rport_str=strtok(0," \t\n");
-- pladdr_str = strtok(0," \t\n");
-- praddr_str = strtok(0," \t\n");
-- laddrs_str=strtok(0,"<->\t\n");
-- raddrs_str=strtok(0,"<->\t\n");
-+ laddrs_str = strtok(0,"<->\t\n");
-+ raddrs_str = strtok(0,"<->\t\n");
-
- type = atoi(sty_str);
- state = atoi(sst_str);
-@@ -1235,116 +1204,81 @@ static void sctp_assoc_do_one(int lnr, char *line)
- inode = strtoul(inode_str,0,0);
- lport = atoi(lport_str);
- rport = atoi(rport_str);
--
-- if(flag_sctp<=1) {
-- /* only print the primary addresses */
-- char local_addr[64];
-- char local_port[16];
-- char remote_addr[64];
-- char remote_port[16];
--
-- ap = process_sctp_addr_str(pladdr_str, (struct sockaddr*)&localaddr);
-- if(ap)
-- safe_strncpy(local_addr,
-- ap->sprint((struct sockaddr *) &localaddr, flag_not),
-- sizeof(local_addr));
-- else
-- sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family);
--
-- snprintf(local_port, sizeof(local_port), "%s",
-- get_sname(htons(lport), "sctp",
-- flag_not & FLAG_NUM_PORT));
--
-- ap = process_sctp_addr_str(praddr_str, (struct sockaddr*)&remoteaddr);
-- if(ap)
-- safe_strncpy(remote_addr,
-- ap->sprint((struct sockaddr *) &remoteaddr, flag_not),
-- sizeof(remote_addr));
-- else
-- sprintf(remote_addr,_("unsupported address family %d"), ((struct sockaddr*)&remoteaddr)->sa_family);
--
-- snprintf(remote_port, sizeof(remote_port), "%s",
-- get_sname(htons(rport), "sctp",
-- flag_not & FLAG_NUM_PORT));
--
-- printf("sctp");
-- printf(" %6u %6u ", rxqueue, txqueue);
-- sprintf(buffer,"%s:%s", local_addr, local_port);
-- printf("%-23s", buffer);
-- printf(" ");
-- sprintf(buffer,"%s:%s", remote_addr, remote_port);
-- printf("%-23s", buffer);
-- printf(" %-12s", sctp_socket_state_str(state));
-- } else {
-- /*print all addresses*/
-- const char *this_local_addr;
-- const char *this_remote_addr;
-- char *ss1,*ss2;
-- int first=1;
-- char local_port[16];
-- char remote_port[16];
-- snprintf(local_port, sizeof(local_port), "%s",
-- get_sname(htons(lport), "sctp",
-- flag_not & FLAG_NUM_PORT));
-- snprintf(remote_port, sizeof(remote_port), "%s",
-- get_sname(htons(rport), "sctp",
-- flag_not & FLAG_NUM_PORT));
--
-- this_local_addr=strtok_r(laddrs_str," \t\n",&ss1);
-- this_remote_addr=strtok_r(raddrs_str," \t\n",&ss2);
-- while(this_local_addr || this_remote_addr) {
-- char local_addr[64];
-- char remote_addr[64];
-- if(this_local_addr) {
-- ap = process_sctp_addr_str(this_local_addr, (struct sockaddr*)&localaddr);
-- if(ap)
-- safe_strncpy(local_addr,
-- ap->sprint((struct sockaddr *) &localaddr, flag_not),
-- sizeof(local_addr));
-- else
-- sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family);
-- }
-- if(this_remote_addr) {
-- ap = process_sctp_addr_str(this_remote_addr, (struct sockaddr*)&remoteaddr);
-- if(ap)
-- safe_strncpy(remote_addr,
-- ap->sprint((struct sockaddr *) &remoteaddr, flag_not),
-- sizeof(remote_addr));
-- else
-- sprintf(remote_addr,_("unsupported address family %d"), ((struct sockaddr*)&remoteaddr)->sa_family);
-- }
-
-- if(!first) printf("\n");
-- if(first)
-- printf("sctp %6u %6u ", rxqueue, txqueue);
-- else
-- printf(" ");
-- if(this_local_addr) {
-- if(first)
-- sprintf(buffer,"%s:%s", local_addr, local_port);
-+ /*print all addresses*/
-+ const char *this_local_addr;
-+ const char *this_remote_addr;
-+ char *ss1,*ss2;
-+ int first=1;
-+ char local_port[16];
-+ char remote_port[16];
-+ snprintf(local_port, sizeof(local_port), "%s",
-+ get_sname(htons(lport), "sctp",
-+ flag_not & FLAG_NUM_PORT));
-+ snprintf(remote_port, sizeof(remote_port), "%s",
-+ get_sname(htons(rport), "sctp",
-+ flag_not & FLAG_NUM_PORT));
-+
-+ this_local_addr=strtok_r(laddrs_str," \t\n",&ss1);
-+ this_remote_addr=strtok_r(raddrs_str," \t\n",&ss2);
-+ while(this_local_addr || this_remote_addr) {
-+ char local_addr[64];
-+ char remote_addr[64];
-+
-+ if(this_local_addr) {
-+ if (this_local_addr[0] == '*') {
-+ /* skip * */
-+ this_local_addr++;
-+ }
-+ ap = process_sctp_addr_str(this_local_addr, (struct sockaddr*)&localaddr);
-+ if(ap)
-+ safe_strncpy(local_addr,
-+ ap->sprint((struct sockaddr *) &localaddr, flag_not), sizeof(local_addr));
- else
-- sprintf(buffer,"%s", local_addr);
-- printf("%-23s", buffer);
-- } else
-- printf("%-23s", "");
-- printf(" ");
-- if(this_remote_addr) {
-- if(first)
-- sprintf(buffer,"%s:%s", remote_addr, remote_port);
-+ sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family);
-+ }
-+ if(this_remote_addr) {
-+ if (this_remote_addr[0] == '*') {
-+ /* skip * */
-+ this_remote_addr++;
-+ }
-+ ap = process_sctp_addr_str(this_remote_addr, (struct sockaddr*)&remoteaddr);
-+ if(ap)
-+ safe_strncpy(remote_addr,
-+ ap->sprint((struct sockaddr *) &remoteaddr, flag_not), sizeof(remote_addr));
- else
-- sprintf(buffer,"%s", remote_addr);
-- printf("%-23s", buffer);
-- } else
-- printf("%-23s", "");
--
-- printf(" %-12s", first?sctp_socket_state_str(state):"");
-+ sprintf(remote_addr,_("unsupported address family %d"), ((struct sockaddr*)&remoteaddr)->sa_family);
-+ }
-
-- first = 0;
-- this_local_addr=strtok_r(0," \t\n",&ss1);
-- this_remote_addr=strtok_r(0," \t\n",&ss2);
-- }
-+ if(!first) printf("\n");
-+ if(first)
-+ printf("sctp %6u %6u ", rxqueue, txqueue);
-+ else
-+ printf(" ");
-+ if(this_local_addr) {
-+ if(first)
-+ sprintf(buffer,"%s:%s", local_addr, local_port);
-+ else
-+ sprintf(buffer,"%s", local_addr);
-+ printf("%-27s", buffer);
-+ } else
-+ printf("%-27s", "");
-+ printf(" ");
-+ if(this_remote_addr) {
-+ if(first)
-+ sprintf(buffer,"%s:%s", remote_addr, remote_port);
-+ else
-+ sprintf(buffer,"%s", remote_addr);
-+ printf("%-27s", buffer);
-+ } else
-+ printf("%-27s", "");
-+
-+ printf(" %-12s", first?sctp_socket_state_str(state):"");
-+
-+ first = 0;
-+ this_local_addr=strtok_r(0," \t\n",&ss1);
-+ this_remote_addr=strtok_r(0," \t\n",&ss2);
- }
--
- finish_this_one(uid,inode,"");
- }
-
---
-1.8.5.2.233.g932f7e4
-
diff --git a/meta/recipes-extended/net-tools/net-tools/net-tools-fix-building-with-linux-4.8.patch b/meta/recipes-extended/net-tools/net-tools/net-tools-fix-building-with-linux-4.8.patch
deleted file mode 100644
index 505eeb048a..0000000000
--- a/meta/recipes-extended/net-tools/net-tools/net-tools-fix-building-with-linux-4.8.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 4d56645ea144a34f7cdd3e3ede6452d81fbae251 Mon Sep 17 00:00:00 2001
-From: Randy MacLeod <Randy.MacLeod@windriver.com>
-Date: Sat, 8 Oct 2016 14:42:54 +0800
-Subject: [PATCH] iptunnel.c: include linux/ip.h to fix building with linux-4.8
-
-Fix a build error when using the linux-4.8 headers that results in:
-
-In file included from
-.../sysroots/qemuarm64/usr/include/linux/if_tunnel.h:6:0,
- from iptunnel.c:39:
-.../qemuarm64/usr/include/linux/ip.h:85:8: error: redefinition of
-'struct iphdr'
- struct iphdr {
- ^~~~~
-In file included from iptunnel.c:29:0:
-.../qemuarm64/usr/include/netinet/ip.h:44:8: note: originally defined here
- struct iphdr
- ^~~~~
-
-Upstream-Status: Submitted [1]
-
-[1] https://sourceforge.net/p/net-tools/mailman/message/35413022/
-
-Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- iptunnel.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/iptunnel.c b/iptunnel.c
-index 4943d83..acfcbc7 100644
---- a/iptunnel.c
-+++ b/iptunnel.c
-@@ -26,7 +26,6 @@
- #include <sys/socket.h>
- #include <sys/ioctl.h>
- #include <netinet/in.h>
--#include <netinet/ip.h>
- #include <arpa/inet.h>
- #if defined(__GLIBC__) && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1))
- #include <net/if.h>
-@@ -36,6 +35,7 @@
- #include <linux/if_arp.h>
- #endif
- #include <linux/types.h>
-+#include <linux/ip.h>
- #include <linux/if_tunnel.h>
-
- #include "config.h"
---
-2.8.3
-
diff --git a/meta/recipes-extended/net-tools/net-tools_1.60-20181103.bb b/meta/recipes-extended/net-tools/net-tools_1.60-20181103.bb
new file mode 100644
index 0000000000..e97731073e
--- /dev/null
+++ b/meta/recipes-extended/net-tools/net-tools_1.60-20181103.bb
@@ -0,0 +1,110 @@
+SUMMARY = "Basic networking tools"
+DESCRIPTION = "A collection of programs that form the base set of the NET-3 networking distribution for the Linux operating system"
+HOMEPAGE = "http://net-tools.berlios.de/"
+BUGTRACKER = "http://bugs.debian.org/net-tools"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://ifconfig.c;beginline=11;endline=15;md5=d1ca372080ad5401e23ca0afc35cf9ba"
+
+PV = "1.60-20181103+git${SRCPV}"
+SRCREV = "0eebece8c964e3cfa8a018f42b2e7e751a7009a0"
+SRC_URI = "git://git.code.sf.net/p/net-tools/code;protocol=https \
+ file://net-tools-config.h \
+ file://net-tools-config.make \
+ file://Add_missing_headers.patch \
+ file://Bug_443075-ifconfig.c-pointtopoint_spelling.patch \
+ file://Bug_541172-netstat.c-exit-codes.patch \
+"
+
+UPSTREAM_VERSION_UNKNOWN = "1"
+
+S = "${WORKDIR}/git"
+
+inherit gettext
+
+# The Makefile is lame, no parallel build
+PARALLEL_MAKE = ""
+
+PACKAGECONFIG ??= "hostname arp serial plip"
+PACKAGECONFIG[hostname] = ""
+PACKAGECONFIG[arp] = ""
+PACKAGECONFIG[serial] = ""
+PACKAGECONFIG[plip] = ""
+
+do_configure() {
+ # net-tools has its own config mechanism requiring "make config"
+ # we pre-generate desired options and copy to source directory instead
+ cp ${WORKDIR}/net-tools-config.h ${S}/config.h
+ cp ${WORKDIR}/net-tools-config.make ${S}/config.make
+
+ if [ "${USE_NLS}" = "no" ]; then
+ sed -i -e 's/^I18N=1/# I18N=1/' ${S}/config.make
+ fi
+
+ if ${@bb.utils.contains('PACKAGECONFIG', 'hostname', 'true', 'false', d)} ; then
+ echo "#define HAVE_HOSTNAME_TOOLS 1" >> ${S}/config.h
+ echo "#define HAVE_HOSTNAME_SYMLINKS 1" >> ${S}/config.h
+ echo "HAVE_HOSTNAME_TOOLS=1" >> ${S}/config.make
+ echo "HAVE_HOSTNAME_SYMLINKS=1" >> ${S}/config.make
+ fi
+ if ${@bb.utils.contains('PACKAGECONFIG', 'arp', 'true', 'false', d)} ; then
+ echo "#define HAVE_ARP_TOOLS 1" >> ${S}/config.h
+ echo "HAVE_ARP_TOOLS=1" >> ${S}/config.make
+ fi
+ if ${@bb.utils.contains('PACKAGECONFIG', 'serial', 'true', 'false', d)} ; then
+ echo "#define HAVE_SERIAL_TOOLS 1" >> ${S}/config.h
+ echo "HAVE_SERIAL_TOOLS=1" >> ${S}/config.make
+ fi
+ if ${@bb.utils.contains('PACKAGECONFIG', 'plip', 'true', 'false', d)} ; then
+ echo "#define HAVE_PLIP_TOOLS 1" >> ${S}/config.h
+ echo "HAVE_PLIP_TOOLS=1" >> ${S}/config.make
+ fi
+}
+
+do_compile() {
+ # net-tools use COPTS/LOPTS to allow adding custom options
+ oe_runmake COPTS="$CFLAGS" LOPTS="$LDFLAGS"
+}
+
+do_install() {
+ # We don't need COPTS or LOPTS, but let's be consistent.
+ oe_runmake COPTS="$CFLAGS" LOPTS="$LDFLAGS" BASEDIR=${D} INSTALLNLSDIR=${D}${datadir}/locale mandir=${mandir} install
+
+ if [ "${base_bindir}" != "/bin" ]; then
+ mkdir -p ${D}/${base_bindir}
+ mv ${D}/bin/* ${D}/${base_bindir}/
+ rmdir ${D}/bin
+ fi
+ if [ "${base_sbindir}" != "/sbin" ]; then
+ mkdir ${D}/${base_sbindir}
+ mv ${D}/sbin/* ${D}/${base_sbindir}/
+ rmdir ${D}/sbin
+ fi
+}
+
+inherit update-alternatives
+
+base_sbindir_progs = "ipmaddr iptunnel mii-tool nameif \
+ ${@bb.utils.contains('PACKAGECONFIG', 'arp', 'arp rarp', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'plip', 'plipconfig', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'serial', 'slattach', '', d)} \
+"
+base_bindir_progs = "ifconfig netstat route \
+ ${@bb.utils.contains('PACKAGECONFIG', 'hostname', 'dnsdomainname domainname hostname nisdomainname ypdomainname', '', d)} \
+"
+
+ALTERNATIVE_${PN} = "${base_sbindir_progs} ${base_bindir_progs}"
+ALTERNATIVE_${PN}-doc += "${@bb.utils.contains('PACKAGECONFIG', 'hostname', 'hostname.1 dnsdomainname.1', '', d)}"
+ALTERNATIVE_LINK_NAME[hostname.1] = "${mandir}/man1/hostname.1"
+ALTERNATIVE_LINK_NAME[dnsdomainname.1] = "${mandir}/man1/dnsdomainname.1"
+ALTERNATIVE_PRIORITY[hostname.1] = "10"
+
+python __anonymous() {
+ for prog in d.getVar('base_sbindir_progs').split():
+ d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_sbindir'), prog))
+ for prog in d.getVar('base_bindir_progs').split():
+ d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_bindir'), prog))
+}
+ALTERNATIVE_PRIORITY = "100"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-extended/net-tools/net-tools_1.60-26.bb b/meta/recipes-extended/net-tools/net-tools_1.60-26.bb
deleted file mode 100644
index 5a376e72f0..0000000000
--- a/meta/recipes-extended/net-tools/net-tools_1.60-26.bb
+++ /dev/null
@@ -1,131 +0,0 @@
-SUMMARY = "Basic networking tools"
-DESCRIPTION = "A collection of programs that form the base set of the NET-3 networking distribution for the Linux operating system"
-HOMEPAGE = "http://net-tools.berlios.de/"
-BUGTRACKER = "http://bugs.debian.org/net-tools"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \
- file://ifconfig.c;beginline=11;endline=15;md5=d1ca372080ad5401e23ca0afc35cf9ba"
-
-SRC_URI = "http://snapshot.debian.org/archive/debian/20050312T000000Z/pool/main/n/${BPN}/${BPN}_1.60.orig.tar.gz;name=tarball \
- http://snapshot.debian.org/archive/debian//20150831T093342Z/pool/main/n/${BPN}/${BPN}_${PV}.diff.gz;apply=no;name=patch \
- file://net-tools-config.h \
- file://net-tools-config.make \
- file://ifconfig-interface-0-del-IP-will-remove-the-aliased-.patch \
- file://musl-fixes.patch \
- file://net-tools-1.60-sctp1.patch \
- file://net-tools-1.60-sctp2-quiet.patch \
- file://net-tools-1.60-sctp3-addrs.patch \
- file://0001-lib-inet6.c-INET6_rresolve-various-fixes.patch \
- file://net-tools-fix-building-with-linux-4.8.patch \
- "
-
-# for this package we're mostly interested in tracking debian patches,
-# and not in the upstream version where all development has effectively stopped
-UPSTREAM_CHECK_REGEX = "(?P<pver>((\d+\.*)+)-((\d+\.*)+))\.(diff|debian\.tar)\.(gz|xz)"
-
-S = "${WORKDIR}/net-tools-1.60"
-
-SRC_URI[tarball.md5sum] = "ecaf37acb5b5daff4bdda77785fd916d"
-SRC_URI[tarball.sha256sum] = "ec67967cf7b1a3a3828a84762fbc013ac50ee5dc9aa3095d5c591f302c2de0f5"
-
-SRC_URI[patch.md5sum] = "ea3592f49ac8380962bc4d9b66c7e7e9"
-SRC_URI[patch.sha256sum] = "aeeeafaff68866a446f01bb639d4e0146a60af34dcd20e31a3e46585022fc76c"
-
-# the package is taken from snapshots.debian.org; that source is static and goes stale
-# so we check the latest upstream from a directory that does get updated
-UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/n/net-tools/"
-
-inherit gettext
-
-do_patch[depends] += "quilt-native:do_populate_sysroot"
-
-# The Makefile is lame, no parallel build
-PARALLEL_MAKE = ""
-
-# Unlike other Debian packages, net-tools *.diff.gz contains another series of
-# patches maintained by quilt. So manually apply them before applying other local
-# patches. Also remove all temp files before leaving, because do_patch() will pop
-# up all previously applied patches in the start
-nettools_do_patch() {
- cd ${S}
- # it's important that we only pop the existing patches when they've
- # been applied, otherwise quilt will climb the directory tree
- # and reverse out some completely different set of patches
- if [ -d ${S}/patches ]; then
- # whilst this is the default directory, doing it like this
- # defeats the directory climbing that quilt will otherwise
- # do; note the directory must exist to defeat this, hence
- # the test inside which we operate
- QUILT_PATCHES=${S}/patches quilt pop -a
- fi
- if [ -d ${S}/.pc-nettools ]; then
- rm -rf ${S}/.pc
- mv ${S}/.pc-nettools ${S}/.pc
- QUILT_PATCHES=${S}/debian/patches quilt pop -a
- rm -rf ${S}/.pc ${S}/debian
- fi
- patch -p1 < ${WORKDIR}/${BPN}_${PV}.diff
- QUILT_PATCHES=${S}/debian/patches quilt push -a
- mv ${S}/.pc ${S}/.pc-nettools
-}
-
-do_unpack[cleandirs] += "${S}"
-
-# We invoke base do_patch at end, to incorporate any local patch
-python do_patch() {
- bb.build.exec_func('nettools_do_patch', d)
- bb.build.exec_func('patch_do_patch', d)
-}
-
-do_configure() {
- # net-tools has its own config mechanism requiring "make config"
- # we pre-generate desired options and copy to source directory instead
- cp ${WORKDIR}/net-tools-config.h ${S}/config.h
- cp ${WORKDIR}/net-tools-config.make ${S}/config.make
-
- if [ "${USE_NLS}" = "no" ]; then
- sed -i -e 's/^I18N=1/# I18N=1/' ${S}/config.make
- fi
-}
-
-do_compile() {
- # net-tools use COPTS/LOPTS to allow adding custom options
- oe_runmake COPTS="$CFLAGS" LOPTS="$LDFLAGS"
-}
-
-do_install() {
- # We don't need COPTS or LOPTS, but let's be consistent.
- oe_runmake COPTS="$CFLAGS" LOPTS="$LDFLAGS" BASEDIR=${D} INSTALLNLSDIR=${D}${datadir}/locale mandir=${mandir} install
-
- if [ "${base_bindir}" != "/bin" ]; then
- mkdir -p ${D}/${base_bindir}
- mv ${D}/bin/* ${D}/${base_bindir}/
- rmdir ${D}/bin
- fi
- if [ "${base_sbindir}" != "/sbin" ]; then
- mkdir ${D}/${base_sbindir}
- mv ${D}/sbin/* ${D}/${base_sbindir}/
- rmdir ${D}/sbin
- fi
-}
-
-inherit update-alternatives
-
-base_sbindir_progs = "arp ifconfig ipmaddr iptunnel mii-tool nameif plipconfig rarp route slattach"
-base_bindir_progs = "dnsdomainname domainname hostname netstat nisdomainname ypdomainname"
-
-ALTERNATIVE_${PN} = "${base_sbindir_progs} ${base_bindir_progs}"
-ALTERNATIVE_${PN}-doc += "hostname.1 dnsdomainname.1"
-ALTERNATIVE_LINK_NAME[hostname.1] = "${mandir}/man1/hostname.1"
-ALTERNATIVE_LINK_NAME[dnsdomainname.1] = "${mandir}/man1/dnsdomainname.1"
-ALTERNATIVE_PRIORITY[hostname.1] = "10"
-
-python __anonymous() {
- for prog in d.getVar('base_sbindir_progs').split():
- d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_sbindir'), prog))
- for prog in d.getVar('base_bindir_progs').split():
- d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_bindir'), prog))
-}
-ALTERNATIVE_PRIORITY = "100"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-extended/newt/files/0002-don-t-ignore-CFLAGS-when-building-snack.patch b/meta/recipes-extended/newt/files/0002-don-t-ignore-CFLAGS-when-building-snack.patch
new file mode 100644
index 0000000000..ca235d5108
--- /dev/null
+++ b/meta/recipes-extended/newt/files/0002-don-t-ignore-CFLAGS-when-building-snack.patch
@@ -0,0 +1,29 @@
+From f60dc1063607ca1f201ba4cbda467d8af3f78f64 Mon Sep 17 00:00:00 2001
+From: Miroslav Lichvar <mlichvar@redhat.com>
+Date: Tue, 1 Oct 2019 16:37:55 +0200
+Subject: [PATCH] don't ignore CFLAGS when building snack
+
+In addition to the flags returned by python-config --cflags, use the
+user-specified CFLAGS when building the snack object.
+
+Upstream-Status: Backport from master
+Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
+---
+ Makefile.in | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index be5f87b..6facd5e 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -96,8 +96,8 @@ _snack.$(SOEXT): snack.c $(LIBNEWTSH)
+ PIFLAGS=`$$pyconfig --includes`; \
+ PLDFLAGS=`$$pyconfig --ldflags`; \
+ PLFLAGS=`$$pyconfig --libs`; \
+- echo $(CC) $(SHCFLAGS) $(CPPFLAGS) $$PIFLAGS $$PCFLAGS -c -o $$ver/snack.o snack.c; \
+- $(CC) $(SHCFLAGS) $(CPPFLAGS) $$PIFLAGS $$PCFLAGS -c -o $$ver/snack.o snack.c; \
++ echo $(CC) $(SHCFLAGS) $(CFLAGS) $(CPPFLAGS) $$PIFLAGS $$PCFLAGS -c -o $$ver/snack.o snack.c; \
++ $(CC) $(SHCFLAGS) $(CFLAGS) $(CPPFLAGS) $$PIFLAGS $$PCFLAGS -c -o $$ver/snack.o snack.c; \
+ echo $(CC) --shared $$PLDFLAGS $$PLFLAGS $(LDFLAGS) -o $$ver/_snack.$(SOEXT) $$ver/snack.o -L. -lnewt $(LIBS); \
+ $(CC) --shared $$PLDFLAGS $$PLFLAGS $(LDFLAGS) -o $$ver/_snack.$(SOEXT) $$ver/snack.o -L. -lnewt $(LIBS); \
+ done || :
diff --git a/meta/recipes-extended/newt/files/pie-flags.patch b/meta/recipes-extended/newt/files/pie-flags.patch
deleted file mode 100644
index 92f5b2503b..0000000000
--- a/meta/recipes-extended/newt/files/pie-flags.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-specify -fPIC after CFLAGS so it can override the CFLAGS containing -pie and -fpie this makes sure the objects that go into shared objects are compiled with -fPIC and not with -fpie. We can not use -fpie on objects which will go into .so files Fixes errors like
-
-| /mnt/oe/build/tmp-glibc/sysroots/x86_64-linux/usr/libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/5.3.0/ld: shared/newt.o: relocation R_X86_64_PC32 against undefined symbol `SLtt_Screen_Rows@@SLANG2' can not be used when making a shared object; recompile with -fPIC
-| /mnt/oe/build/tmp-glibc/sysroots/x86_64-linux/usr/libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/5.3.0/ld: final link failed: Bad value
-| collect2: error: ld returned 1 exit status
-| make: *** [libnewt.so.0.52.18] Error 1
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-
----
- Makefile.in | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index be5f87b..88ee0b7 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -96,8 +96,8 @@ _snack.$(SOEXT): snack.c $(LIBNEWTSH)
- PIFLAGS=`$$pyconfig --includes`; \
- PLDFLAGS=`$$pyconfig --ldflags`; \
- PLFLAGS=`$$pyconfig --libs`; \
-- echo $(CC) $(SHCFLAGS) $(CPPFLAGS) $$PIFLAGS $$PCFLAGS -c -o $$ver/snack.o snack.c; \
-- $(CC) $(SHCFLAGS) $(CPPFLAGS) $$PIFLAGS $$PCFLAGS -c -o $$ver/snack.o snack.c; \
-+ echo $(CC) $(CPPFLAGS) $(SHCFLAGS) $$PIFLAGS $$PCFLAGS -c -o $$ver/snack.o snack.c; \
-+ $(CC) $(CPPFLAGS) $(SHCFLAGS) $$PIFLAGS $$PCFLAGS -c -o $$ver/snack.o snack.c; \
- echo $(CC) --shared $$PLDFLAGS $$PLFLAGS $(LDFLAGS) -o $$ver/_snack.$(SOEXT) $$ver/snack.o -L. -lnewt $(LIBS); \
- $(CC) --shared $$PLDFLAGS $$PLFLAGS $(LDFLAGS) -o $$ver/_snack.$(SOEXT) $$ver/snack.o -L. -lnewt $(LIBS); \
- done || :
-@@ -133,7 +133,7 @@ $(LIBNEWTSH): $(SHAREDOBJS)
-
- $(SHAREDDIR)/%.o : %.c
- @mkdir -p $(SHAREDDIR)
-- $(CC) $(SHCFLAGS) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<
-+ $(CC) -c $(CFLAGS) $(CPPFLAGS) $(SHCFLAGS) -o $@ $<
-
- install: $(LIBNEWT) install-sh whiptail
- [ -d $(instroot)/$(bindir) ] || install -m 755 -d $(instroot)/$(bindir)
---
-2.7.4
-
diff --git a/meta/recipes-extended/newt/libnewt_0.52.21.bb b/meta/recipes-extended/newt/libnewt_0.52.21.bb
index 09b61be61d..88b4cf4a03 100644
--- a/meta/recipes-extended/newt/libnewt_0.52.21.bb
+++ b/meta/recipes-extended/newt/libnewt_0.52.21.bb
@@ -20,9 +20,9 @@ DEPENDS = "slang popt python3"
SRC_URI = "https://releases.pagure.org/newt/newt-${PV}.tar.gz \
file://cross_ar.patch \
file://Makefile.in-Add-tinfo-library-to-the-linking-librari.patch \
- file://pie-flags.patch \
file://0001-detect-gold-as-GNU-linker-too.patch \
-"
+ file://0002-don-t-ignore-CFLAGS-when-building-snack.patch \
+ "
SRC_URI[md5sum] = "a0a5fd6b53bb167a65e15996b249ebb5"
SRC_URI[sha256sum] = "265eb46b55d7eaeb887fca7a1d51fe115658882dfe148164b6c49fccac5abb31"
diff --git a/meta/recipes-extended/packagegroups/packagegroup-core-base-utils.bb b/meta/recipes-extended/packagegroups/packagegroup-core-base-utils.bb
index 7501837937..1e63da7f16 100644
--- a/meta/recipes-extended/packagegroups/packagegroup-core-base-utils.bb
+++ b/meta/recipes-extended/packagegroups/packagegroup-core-base-utils.bb
@@ -21,8 +21,8 @@ RDEPENDS_${PN} = "\
coreutils \
cpio \
${@bb.utils.contains("DISTRO_FEATURES", "systemd", "", "debianutils-run-parts", d)} \
- dhcp-client \
- ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "", "dhcp-server", d)} \
+ dhcpcd \
+ ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "", "kea", d)} \
diffutils \
${@bb.utils.contains("DISTRO_FEATURES", "systemd", "", "dpkg-start-stop", d)} \
e2fsprogs \
diff --git a/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb b/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
index 15a8e6dedc..16c2f9f2aa 100644
--- a/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
+++ b/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
@@ -32,21 +32,23 @@ python __anonymous () {
namemap["packagegroup-core-full-cmdline-sys-services"] = "packagegroup-core-sys-services"
packages = d.getVar("PACKAGES").split()
+ mlprefix = d.getVar("MLPREFIX")
for pkg in packages:
+ pkg2 = pkg[len(mlprefix):]
if pkg.endswith('-dev'):
- mapped = namemap.get(pkg[:-4], None)
+ mapped = namemap.get(pkg2[:-4], None)
if mapped:
mapped += '-dev'
elif pkg.endswith('-dbg'):
- mapped = namemap.get(pkg[:-4], None)
+ mapped = namemap.get(pkg2[:-4], None)
if mapped:
mapped += '-dbg'
else:
- mapped = namemap.get(pkg, None)
+ mapped = namemap.get(pkg2, None)
if mapped:
oldtaskname = mapped.replace("packagegroup-core", "task-core")
- mapstr = " %s %s" % (mapped, oldtaskname)
+ mapstr = " %s%s %s%s" % (mlprefix, mapped, mlprefix, oldtaskname)
d.appendVar("RPROVIDES_%s" % pkg, mapstr)
d.appendVar("RREPLACES_%s" % pkg, mapstr)
d.appendVar("RCONFLICTS_%s" % pkg, mapstr)
diff --git a/meta/recipes-extended/pam/libpam/pam.d/common-password b/meta/recipes-extended/pam/libpam/pam.d/common-password
index 3896057328..52478dae77 100644
--- a/meta/recipes-extended/pam/libpam/pam.d/common-password
+++ b/meta/recipes-extended/pam/libpam/pam.d/common-password
@@ -10,13 +10,10 @@
# The "sha512" option enables salted SHA512 passwords. Without this option,
# the default is Unix crypt. Prior releases used the option "md5".
#
-# The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in
-# login.defs.
-#
# See the pam_unix manpage for other options.
# here are the per-package modules (the "Primary" block)
-password [success=1 default=ignore] pam_unix.so obscure sha512
+password [success=1 default=ignore] pam_unix.so sha512
# here's the fallback if no module succeeds
password requisite pam_deny.so
# prime the stack with a positive return value if there isn't one already;
diff --git a/meta/recipes-extended/pam/libpam_1.3.1.bb b/meta/recipes-extended/pam/libpam_1.3.1.bb
index ac8694ec26..bc72afe6ad 100644
--- a/meta/recipes-extended/pam/libpam_1.3.1.bb
+++ b/meta/recipes-extended/pam/libpam_1.3.1.bb
@@ -35,8 +35,7 @@ SRC_URI_append_libc-musl = " file://0001-Add-support-for-defining-missing-funcit
DEPENDS = "bison-native flex flex-native cracklib libxml2-native virtual/crypt"
-EXTRA_OECONF = "--with-db-uniquename=_pam \
- --includedir=${includedir}/security \
+EXTRA_OECONF = "--includedir=${includedir}/security \
--libdir=${base_libdir} \
--disable-nis \
--disable-regenerate-docu \
@@ -48,7 +47,9 @@ S = "${WORKDIR}/Linux-PAM-${PV}"
inherit autotools gettext pkgconfig
+PACKAGECONFIG ??= ""
PACKAGECONFIG[audit] = "--enable-audit,--disable-audit,audit,"
+PACKAGECONFIG[userdb] = "--enable-db=db,--enable-db=no,db,"
PACKAGES += "${PN}-runtime ${PN}-xtests"
FILES_${PN} = "${base_libdir}/lib*${SOLIBS}"
diff --git a/meta/recipes-extended/parted/files/run-ptest b/meta/recipes-extended/parted/files/run-ptest
index f39c478ce6..374f1bfbc9 100644
--- a/meta/recipes-extended/parted/files/run-ptest
+++ b/meta/recipes-extended/parted/files/run-ptest
@@ -1,5 +1,7 @@
#!/bin/sh
+mkdir -p /etc/udev/mount.blacklist.d
echo /dev/sda1 >> /etc/udev/mount.blacklist.d/parted-tmp
+rm -f *.log
make -C tests test-suite.log
rm /etc/udev/mount.blacklist.d/parted-tmp
diff --git a/meta/recipes-extended/parted/parted_3.3.bb b/meta/recipes-extended/parted/parted_3.3.bb
index 1cfd9ec264..a1fd3ef07b 100644
--- a/meta/recipes-extended/parted/parted_3.3.bb
+++ b/meta/recipes-extended/parted/parted_3.3.bb
@@ -22,7 +22,7 @@ EXTRA_OECONF = "--disable-device-mapper"
inherit autotools pkgconfig gettext texinfo ptest
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
do_compile_ptest() {
oe_runmake -C tests print-align print-max dup-clobber duplicate fs-resize print-flags
@@ -46,7 +46,7 @@ do_install_ptest() {
}
RDEPENDS_${PN}-ptest = "bash coreutils perl util-linux-losetup python3 make gawk e2fsprogs-mke2fs"
-
+RRECOMMENDS_${PN}-ptest = "kernel-module-scsi-debug"
RDEPENDS_${PN}-ptest_append_libc-glibc = "\
glibc-utils \
locale-base-en-us \
diff --git a/meta/recipes-extended/pbzip2/pbzip2_1.1.13.bb b/meta/recipes-extended/pbzip2/pbzip2_1.1.13.bb
index 1275cc0097..d24035b677 100644
--- a/meta/recipes-extended/pbzip2/pbzip2_1.1.13.bb
+++ b/meta/recipes-extended/pbzip2/pbzip2_1.1.13.bb
@@ -5,7 +5,7 @@ machines. The output of this version is fully compatible with bzip2 v1.0.2 or \
newer (ie: anything compressed with pbzip2 can be decompressed with bzip2)."
HOMEPAGE = "http://compression.ca/pbzip2/"
SECTION = "console/utils"
-LICENSE = "BSD-4-Clause"
+LICENSE = "bzip2-1.0.6"
LIC_FILES_CHKSUM = "file://COPYING;md5=398b8832c6f840cfebd20ab2be6a3743"
DEPENDS = "bzip2"
@@ -28,4 +28,4 @@ do_install() {
install -m 0755 pbzip2 ${D}${bindir}/
}
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-extended/psmisc/psmisc.inc b/meta/recipes-extended/psmisc/psmisc.inc
index a75b04702c..6ab1288152 100644
--- a/meta/recipes-extended/psmisc/psmisc.inc
+++ b/meta/recipes-extended/psmisc/psmisc.inc
@@ -7,7 +7,7 @@ command sends a specified signal (SIGTERM if nothing is specified) to \
processes identified by name. The fuser command identifies the PIDs \
of processes that are using specified files or filesystems."
SECTION = "base"
-DEPENDS = "ncurses virtual/libintl gettext-native"
+DEPENDS = "ncurses virtual/libintl"
LICENSE = "GPLv2"
SRC_URI = "${SOURCEFORGE_MIRROR}/psmisc/psmisc-${PV}.tar.gz"
diff --git a/meta/recipes-extended/rpcbind/rpcbind_1.2.5.bb b/meta/recipes-extended/rpcbind/rpcbind_1.2.5.bb
index aff00e56e6..ec8f9e48b2 100644
--- a/meta/recipes-extended/rpcbind/rpcbind_1.2.5.bb
+++ b/meta/recipes-extended/rpcbind/rpcbind_1.2.5.bb
@@ -19,7 +19,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/rpcbind/rpcbind-${PV}.tar.bz2 \
SRC_URI[md5sum] = "ed46f09b9c0fa2d49015f6431bc5ea7b"
SRC_URI[sha256sum] = "2ce360683963b35c19c43f0ee2c7f18aa5b81ef41c3fdbd15ffcb00b8bffda7a"
-inherit autotools update-rc.d systemd pkgconfig
+inherit autotools update-rc.d systemd pkgconfig update-alternatives
PACKAGECONFIG ??= "tcp-wrappers"
PACKAGECONFIG[tcp-wrappers] = "--enable-libwrap,--disable-libwrap,tcp-wrappers"
@@ -50,3 +50,6 @@ do_install_append () {
${WORKDIR}/init.d > ${D}${sysconfdir}/init.d/rpcbind
chmod 0755 ${D}${sysconfdir}/init.d/rpcbind
}
+
+ALTERNATIVE_${PN} = "rpcinfo"
+ALTERNATIVE_LINK_NAME[rpcinfo] = "${bindir}/rpcinfo"
diff --git a/meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb b/meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb
index cb5b288c48..5aff2b56a6 100644
--- a/meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb
+++ b/meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb
@@ -15,9 +15,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0daaf958d5531ab86169ec6e275e1517"
SECTION = "libs"
DEPENDS += "rpcsvc-proto-native"
-PV = "1.4+git${SRCPV}"
+PV = "1.4.2"
-SRCREV = "9bc3b5b785723cfff459b0c01b39d87d4bed975c"
+SRCREV = "6f54e54455c073d08a56ea627c6cd2355a40eb53"
SRC_URI = "git://github.com/thkukuk/${BPN} \
file://0001-Use-cross-compiled-rpcgen.patch \
@@ -25,10 +25,14 @@ SRC_URI = "git://github.com/thkukuk/${BPN} \
S = "${WORKDIR}/git"
-inherit autotools
+inherit autotools gettext
EXTRA_OEMAKE_class-native = " -C rpcgen"
+do_configure_prepend() {
+ touch ${S}/ABOUT-NLS
+}
+
do_install_append() {
# They come from quota recipe
rm -rf ${D}${includedir}/rpcsvc/rquota.[hx]
diff --git a/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb b/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb
index 79fc8b80b5..1f6232e43c 100644
--- a/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb
+++ b/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb
@@ -14,9 +14,6 @@ PR = "r3"
# can add custom users/groups for recipes that use inherit useradd.
SRC_URI = "file://login.defs_shadow-sysroot"
-SRC_URI[md5sum] = "b8608d8294ac88974f27b20f991c0e79"
-SRC_URI[sha256sum] = "633f5bb4ea0c88c55f3642c97f9d25cbef74f82e0b4cf8d54e7ad6f9f9caa778"
-
S = "${WORKDIR}"
do_install() {
@@ -30,3 +27,5 @@ SYSROOT_DIRS += "${sysconfdir}"
# otherwise: dbus-dev depends on shadow-sysroot-dev which depends on shadow-sysroot
# and this has another copy of /etc/login.defs already provided by shadow
PACKAGES = ""
+
+inherit nopackages
diff --git a/meta/recipes-extended/stress-ng/stress-ng/no_daddr_t.patch b/meta/recipes-extended/stress-ng/stress-ng/no_daddr_t.patch
new file mode 100644
index 0000000000..dba4494b91
--- /dev/null
+++ b/meta/recipes-extended/stress-ng/stress-ng/no_daddr_t.patch
@@ -0,0 +1,32 @@
+From 55e11765af2bdc8adfac87dab1fb2682f7e6c236 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 9 Jun 2020 22:10:28 -0700
+Subject: [PATCH] Define daddr_t if __DADDR_T_TYPE is not defined
+
+glibc defined daddr_t but musl does not, ideally it should not be used
+and simple int type is enough. However, its better to leave glibc behavior
+as it is and only define it to int if daddr_t is not provided by libc
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ stress-ng.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/stress-ng.h b/stress-ng.h
+index 1a66293..802dc25 100644
+--- a/stress-ng.h
++++ b/stress-ng.h
+@@ -3763,6 +3763,10 @@ struct shim_statx {
+ uint64_t __spare2[14];
+ };
+
++#ifndef __DADDR_T_TYPE
++typedef int daddr_t;
++#endif
++
+ /* old ustat struct */
+ struct shim_ustat {
+ #if defined(HAVE_DADDR_T)
diff --git a/meta/recipes-extended/stress-ng/stress-ng_0.11.00.bb b/meta/recipes-extended/stress-ng/stress-ng_0.11.21.bb
index c8471ebadd..71671dd046 100644
--- a/meta/recipes-extended/stress-ng/stress-ng_0.11.00.bb
+++ b/meta/recipes-extended/stress-ng/stress-ng_0.11.21.bb
@@ -7,9 +7,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "https://kernel.ubuntu.com/~cking/tarballs/${BPN}/${BP}.tar.xz \
file://0001-Do-not-preserve-ownership-when-installing-example-jo.patch \
+ file://no_daddr_t.patch \
"
-SRC_URI[md5sum] = "781f8a0f8509a01793d815210086e78a"
-SRC_URI[sha256sum] = "a41a6a4a7ea4e50aab7331e5594af7d1b3b6e5815751d137a78a6e166295294e"
+SRC_URI[sha256sum] = "ee44b71aba20e9c7d10ec4768efa2245d12579fa17e08b9314c17f06f785ae39"
DEPENDS = "coreutils-native"
@@ -22,4 +22,6 @@ inherit bash-completion
do_install() {
oe_runmake DESTDIR=${D} install
+ ln -s stress-ng ${D}${bindir}/stress
}
+
diff --git a/meta/recipes-extended/sudo/sudo.inc b/meta/recipes-extended/sudo/sudo.inc
index 5d27d46928..86a18be7e2 100644
--- a/meta/recipes-extended/sudo/sudo.inc
+++ b/meta/recipes-extended/sudo/sudo.inc
@@ -4,7 +4,7 @@ HOMEPAGE = "http://www.sudo.ws"
BUGTRACKER = "http://www.sudo.ws/bugs/"
SECTION = "admin"
LICENSE = "ISC & BSD & Zlib"
-LIC_FILES_CHKSUM = "file://doc/LICENSE;md5=4d1b44b1576eea036d78b8cc961aa93d \
+LIC_FILES_CHKSUM = "file://doc/LICENSE;md5=828cd502ad216ff869bf83adf3301e02 \
file://plugins/sudoers/redblack.c;beginline=1;endline=46;md5=03e35317699ba00b496251e0dfe9f109 \
file://lib/util/reallocarray.c;beginline=3;endline=15;md5=397dd45c7683e90b9f8bf24638cf03bf \
file://lib/util/fnmatch.c;beginline=3;endline=27;md5=004d7d2866ba1f5b41174906849d2e0f \
diff --git a/meta/recipes-extended/sudo/sudo/0001-Include-sys-types.h-for-id_t-definition.patch b/meta/recipes-extended/sudo/sudo/0001-Include-sys-types.h-for-id_t-definition.patch
deleted file mode 100644
index eb36cd49bb..0000000000
--- a/meta/recipes-extended/sudo/sudo/0001-Include-sys-types.h-for-id_t-definition.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 386e2c2fa2ab2e02ef71c268a57205139be329ab Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 31 Aug 2015 07:07:49 +0000
-Subject: [PATCH] Include sys/types.h for id_t definition
-
-/sudo_util.h:219:14: error: unknown type name 'id_t'
- __dso_public id_t sudo_strtoid_v1(const char *str, const char *sep,
- char **endp, const char **errstr);
- ^
- make[1]: *** [preserve_fds.o] Error 1
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- include/sudo_util.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/include/sudo_util.h b/include/sudo_util.h
-index 89c9f89..ac0855a 100644
---- a/include/sudo_util.h
-+++ b/include/sudo_util.h
-@@ -17,6 +17,8 @@
- #ifndef SUDO_UTIL_H
- #define SUDO_UTIL_H
-
-+#include <sys/types.h>
-+
- #ifdef HAVE_STDBOOL_H
- # include <stdbool.h>
- #else
---
-2.5.1
-
diff --git a/meta/recipes-extended/sudo/sudo_1.8.31.bb b/meta/recipes-extended/sudo/sudo_1.9.3.bb
index 39d8817c32..270625ebe8 100644
--- a/meta/recipes-extended/sudo/sudo_1.8.31.bb
+++ b/meta/recipes-extended/sudo/sudo_1.9.3.bb
@@ -2,13 +2,11 @@ require sudo.inc
SRC_URI = "https://www.sudo.ws/dist/sudo-${PV}.tar.gz \
${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \
- file://0001-Include-sys-types.h-for-id_t-definition.patch \
"
PAM_SRC_URI = "file://sudo.pam"
-SRC_URI[md5sum] = "ce17ff6e72a70f8d5dabba8abf3cd2de"
-SRC_URI[sha256sum] = "7ea8d97a3cee4c844e0887ea7a1bd80eb54cc98fd77966776cb1a80653ad454f"
+SRC_URI[sha256sum] = "1d9889cc3b3b15ed8c2c7c3de3aa392a3a726838d020815067c080525c3f5837"
DEPENDS += " virtual/crypt ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
RDEPENDS_${PN} += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-limits pam-plugin-keyinit', '', d)}"
@@ -24,6 +22,7 @@ CACHED_CONFIGUREVARS = " \
EXTRA_OECONF += " \
${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--with-pam', '--without-pam', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--enable-tmpfiles.d=${nonarch_libdir}/tmpfiles.d', '--disable-tmpfiles.d', d)} \
+ --with-rundir=/run/sudo \
--with-vardir=/var/lib/sudo \
"
@@ -39,7 +38,7 @@ do_install_append () {
chmod 4111 ${D}${bindir}/sudo
chmod 0440 ${D}${sysconfdir}/sudoers
- # Explicitly remove the /run directory to avoid QA error
+ # Explicitly remove the /sudo directory to avoid QA error
rmdir -p --ignore-fail-on-non-empty ${D}/run/sudo
}
diff --git a/meta/recipes-extended/sysklogd/files/0001-Drop-libcompat-to-simplify-build-deps-and-really-fix.patch b/meta/recipes-extended/sysklogd/files/0001-Drop-libcompat-to-simplify-build-deps-and-really-fix.patch
deleted file mode 100644
index 9ba7ecc2b0..0000000000
--- a/meta/recipes-extended/sysklogd/files/0001-Drop-libcompat-to-simplify-build-deps-and-really-fix.patch
+++ /dev/null
@@ -1,127 +0,0 @@
-From 84d70e63fc105e3713943ed8c0bdd4e31a698226 Mon Sep 17
-00:00:00 2001 From: Joachim Nilsson <troglobit@gmail.com> Date: Thu, 16 Jan
-2020 22:16:51 +0100 Subject: [PATCH] Drop libcompat to simplify build deps
-and really fix
-
-The original idea with libcompat was to keep as few objects as
-possible for linking with libsyslog. That in turn to prevent
-a user of libsyslog from suddenly also getting strong binding
-to symbols like strlcpy() from libsyslog, rather than their C
-library of choice.
-
-However, this caused strlcpy.c to be built as both .o and .lo
-files, which in turn caused really bizarre build problems due
-to bad DAG dependency.
-
-This patch drops libcompat and instead marks all replacement APIs
-as weak symbols, which a C library can override.
-
-Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
-
-Upstream-Status: Backport
-[https://github.com/troglobit/sysklogd/commit/84d70e63fc105e3713943ed8c0bdd4e31a698226]
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- lib/pidfile.c | 8 +++++++-
- lib/utimensat.c | 10 ++++++++--
- src/Makefile.am | 7 +------
- 3 files changed, 16 insertions(+), 9 deletions(-)
-
-diff --git a/lib/pidfile.c b/lib/pidfile.c
-index 81f2315..25b1c04 100644
---- a/lib/pidfile.c
-+++ b/lib/pidfile.c
-@@ -31,6 +31,9 @@
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-+#include <config.h>
-+#ifndef HAVE_PIDFILE
-+
- #define _GNU_SOURCE /* Needed with GLIBC to get asprintf() */
- #include <sys/stat.h> /* utimensat() */
- #include <sys/time.h> /* utimensat() on *BSD */
-@@ -54,7 +57,7 @@ const char *__pidfile_path = RUNSTATEDIR;
- const char *__pidfile_name = NULL;
-
- int
--pidfile(const char *basename)
-+__pidfile(const char *basename)
- {
- int save_errno;
- int atexit_already;
-@@ -127,6 +130,9 @@ pidfile(const char *basename)
- return (0);
- }
-
-+weak_alias(__pidfile, pidfile);
-+#endif /* HAVE_PIDFILE */
-+
- static void
- pidfile_cleanup(void)
- {
-diff --git a/lib/utimensat.c b/lib/utimensat.c
-index edf7e10..b68ce0e 100644
---- a/lib/utimensat.c
-+++ b/lib/utimensat.c
-@@ -15,7 +15,8 @@
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
--#include "config.h"
-+#include <config.h>
-+#ifndef HAVE_UTIMENSAT
-
- #include <errno.h>
- #ifdef HAVE_FCNTL_H
-@@ -23,7 +24,8 @@
- #endif
- #include <sys/time.h> /* lutimes(), utimes(), utimensat() */
-
--int utimensat(int dirfd, const char *pathname, const struct timespec ts[2], int flags)
-+int
-+__utimensat(int dirfd, const char *pathname, const struct timespec ts[2], int flags)
- {
- int ret = -1;
- struct timeval tv[2];
-@@ -45,3 +47,7 @@ int utimensat(int dirfd, const char *pathname, const struct timespec ts[2], int
-
- return ret;
- }
-+
-+weak_alias(__utimensat, utimensat);
-+
-+#endif /* HAVE_UTIMENSAT */
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 6e2a51c..1db88d3 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -19,7 +19,6 @@
- bin_PROGRAMS =
- sbin_PROGRAMS = syslogd
- lib_LTLIBRARIES = libsyslog.la
--noinst_LTLIBRARIES = libcompat.la
-
- if ENABLE_KLOGD
- sbin_PROGRAMS += klogd
-@@ -48,10 +47,6 @@ logger_CPPFLAGS = $(AM_CPPFLAGS) -D_XOPEN_SOURCE=600
- logger_LDADD = $(LIBS) $(LIBOBJS)
- logger_LDADD += libsyslog.la
-
--# Convenience library for libsyslog instead of linking with $(LTLIBOBJS),
--# which would pull in pidfile() and other (strong) symbols as well.
--libcompat_la_SOURCES = ../lib/strlcpy.c ../lib/strlcat.c
--
- pkgconfigdir = $(libdir)/pkgconfig
- pkgincludedir = $(includedir)/syslog
- pkgconfig_DATA = libsyslog.pc
-@@ -59,4 +54,4 @@ pkginclude_HEADERS = syslog.h
- libsyslog_la_SOURCES = syslog.c syslog.h compat.h
- libsyslog_la_CPPFLAGS = $(AM_CPPFLAGS) -D_XOPEN_SOURCE=600
- libsyslog_la_LDFLAGS = $(AM_LDFLAGS) -version-info 0:0:0
--libsyslog_la_LIBADD = libcompat.la
-+libsyslog_la_LIBADD = $(LTLIBOJBS)
---
-2.7.4
-
diff --git a/meta/recipes-extended/sysklogd/files/0001-Makefile.am-fixup-issue-17.patch b/meta/recipes-extended/sysklogd/files/0001-Makefile.am-fixup-issue-17.patch
new file mode 100644
index 0000000000..96365648d7
--- /dev/null
+++ b/meta/recipes-extended/sysklogd/files/0001-Makefile.am-fixup-issue-17.patch
@@ -0,0 +1,43 @@
+From a4a472c19eaaf03cc0e70797b2d24b540d6424e1 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Wed, 3 Jun 2020 13:39:18 +0800
+Subject: [PATCH] Makefile.am: fixup issue #17
+
+only make $(LIBOBJS) depend on $(LTLIBOBJS) still have race condition,
+library like pidfile.o may be changed when compile or link for
+libsyslog_la_LIBADD, which will cause problem like below:
+
+ERROR: dwarfsrcfiles failed with exit code 1 (cmd was ['dwarfsrcfiles', /tmp/work/ppc7400-oe-linux/sysklogd/2.1.2-r0/package/usr/lib/libsyslog.a']):
+dwarfsrcfiles: tmp/work/ppc7400-oe-linux/sysklogd/2.1.2-r0/package/usr/lib/libsyslog.a: not a valid ELF file
+
+arm-oe-linux-gnueabi-libtool: link: arm-oe-linux-gnueabi-gcc -march=armv7ve -mthumb -mfpu=neon -mfloat-abi=hard --sysroot=TOPDIR/tmp-glibc/work/armv7vet2hf-neon-oe-linux-gnueabi/sysklogd/2.1.2-r0/recipe-sysroot -shared -fPIC -DPIC .libs/libsyslog_la-syslog.o ../lib/.libs/pidfile.o ../lib/.libs/strlcpy.o ../lib/.libs/strlcat.o -march=armv7ve -mthumb -mfpu=neon -mfloat-abi=hard --sysroot=TOPDIR/tmp-glibc/work/armv7vet2hf-neon-oe-linux-gnueabi/sysklogd/2.1.2-r0/recipe-sysroot -O2 -g -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-soname -Wl,libsyslog.so.0 -o .libs/libsyslog.so.0.0.0
+arm-oe-linux-gnueabi-libtool: link: (cd ".libs" && rm -f "libsyslog.so.0" && ln -s "libsyslog.so.0.0.0" "libsyslog.so.0")
+arm-oe-linux-gnueabi-libtool: link: (cd ".libs" && rm -f "libsyslog.so" && ln -s "libsyslog.so.0.0.0" "libsyslog.so")
+arm-oe-linux-gnueabi-libtool: link: arm-oe-linux-gnueabi-gcc-ar cru .libs/libsyslog.a libsyslog_la-syslog.o ../lib/pidfile.o ../lib/strlcpy.o ../lib/strlcat.o
+TOPDIR/tmp-glibc/work/armv7vet2hf-neon-oe-linux-gnueabi/sysklogd/2.1.2-r0/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/10.1.0/ar: `u' modifier ignored since `D' is the default (see `U')
+TOPDIR/tmp-glibc/work/armv7vet2hf-neon-oe-linux-gnueabi/sysklogd/2.1.2-r0/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/10.1.0/ar: ../lib/strlcat.o: No such file or directory
+
+Upstream-Status: Submitted [https://github.com/troglobit/sysklogd/pull/23/commits/e684939559341cb1c6373dfc6469b59e580d80af]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ src/Makefile.am | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index f8a6820..f45c773 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -66,6 +66,7 @@ libsyslog_la_LIBADD = $(LTLIBOBJS)
+ # ld: syslogd-syslogd.o: in function `main': syslogd.c:417: undefined
+ # reference to `__pidfile'
+ #
+-# Work around the problem by building one .o from lib at a time, this
+-# can be achieved by making LIBOBJS depend on LTLIBOBJS.
+-$(LIBOBJS): $(LTLIBOBJS)
++# Work around the problem by make LIBOBJS depend on libsyslog.la,
++# so that LIBOBJS/syslogd/logger will start compile after libsyslog.la
++# is completed
++$(LIBOBJS): $(lib_LTLIBRARIES)
+--
+2.17.1
diff --git a/meta/recipes-extended/sysklogd/files/0001-Remove-__BEGIN_DECLS-__END_DECLS.patch b/meta/recipes-extended/sysklogd/files/0001-Remove-__BEGIN_DECLS-__END_DECLS.patch
deleted file mode 100644
index b2d45c0a0a..0000000000
--- a/meta/recipes-extended/sysklogd/files/0001-Remove-__BEGIN_DECLS-__END_DECLS.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 8c7995ac8da99eed55bf5410c558b1f0a74998d0 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 7 Dec 2019 10:27:28 -0800
-Subject: [PATCH 1/2] Remove __BEGIN_DECLS/__END_DECLS
-
-The __BEGIN_DECLS and __END_DECLS are internal identifiers in glibc and
-are not defined in any standard. Using them fails build on musl
-libc, its better to avoid them
-
-Upstream-Status: Submitted [https://github.com/troglobit/sysklogd/pull/10]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/syslog.h | 8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/src/syslog.h b/src/syslog.h
-index 4fb7627..120a18f 100644
---- a/src/syslog.h
-+++ b/src/syslog.h
-@@ -221,7 +221,9 @@ struct syslog_data {
- .log_mask = 0xff, \
- }
-
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
- void openlog (const char *, int, int);
- void closelog (void);
-
-@@ -245,7 +247,9 @@ void syslogp_r (int, struct syslog_data *, const char *, const char *,
- const char *, ...);
- void vsyslogp_r (int, struct syslog_data *, const char *, const char *,
- const char *, va_list);
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-
- #else /* !__KERNEL__ */
-
---
-2.24.0
-
diff --git a/meta/recipes-extended/sysklogd/files/0002-include-sys-types.h-for-off_t.patch b/meta/recipes-extended/sysklogd/files/0002-include-sys-types.h-for-off_t.patch
deleted file mode 100644
index 799a7a4c4c..0000000000
--- a/meta/recipes-extended/sysklogd/files/0002-include-sys-types.h-for-off_t.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 10cff4ba2d09b30f8f1967f910e8ab08447a8add Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 7 Dec 2019 10:31:04 -0800
-Subject: [PATCH 2/2] include sys/types.h for off_t
-
-Fixes
-error: unknown type name 'off_t'
-
-Upstream-Status: Submitted [https://github.com/troglobit/sysklogd/pull/10]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/compat.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/compat.h b/src/compat.h
-index a867636..1ef1bf0 100644
---- a/src/compat.h
-+++ b/src/compat.h
-@@ -34,6 +34,7 @@
- #include <pthread.h>
- #include <stdlib.h>
- #include <string.h>
-+#include <sys/types.h>
-
- /*
- * The following macro is used to remove const cast-away warnings
---
-2.24.0
-
diff --git a/meta/recipes-extended/sysklogd/files/sysklogd b/meta/recipes-extended/sysklogd/files/sysklogd
index 4a4ca8a78e..2a356a637a 100755
--- a/meta/recipes-extended/sysklogd/files/sysklogd
+++ b/meta/recipes-extended/sysklogd/files/sysklogd
@@ -18,9 +18,7 @@
PATH=/bin:/usr/bin:/sbin:/usr/sbin
pidfile_syslogd=/var/run/syslogd.pid
-pidfile_klogd=/var/run/klogd.pid
binpath_syslogd=/usr/sbin/syslogd
-binpath_klogd=/usr/sbin/klogd
test -x $binpath || exit 0
@@ -112,28 +110,16 @@ case "$1" in
create_xconsole
start-stop-daemon --start --quiet --pidfile $pidfile_syslogd --name syslogd --startas $binpath_syslogd -- $SYSLOGD
log_end_msg $?
- log_begin_msg "Starting kernel log daemon..."
- start-stop-daemon --start --quiet --pidfile $pidfile_klogd --name klogd --startas $binpath_klogd -- $KLOGD
- log_end_msg $?
;;
stop)
log_begin_msg "Stopping system log daemon..."
start-stop-daemon --stop --quiet --pidfile $pidfile_syslogd --name syslogd
log_end_msg $?
- log_begin_msg "Stopping kernel log daemon..."
- start-stop-daemon --stop --quiet --retry 3 --exec $binpath_klogd --pidfile $pidfile_klogd
- log_end_msg $?
;;
reload|force-reload)
log_begin_msg "Reloading system log daemon..."
start-stop-daemon --stop --quiet --signal 1 --pidfile $pidfile_syslogd --name syslogd
log_end_msg $?
- log_begin_msg "Reloading kernel log daemon..."
- pid=`cat $pidfile_klogd 2> /dev/null`
- start-stop-daemon --stop --quiet --retry 3 --exec $binpath_klogd --pidfile $pidfile_klogd
- waitpid $pid
- start-stop-daemon --start --quiet --pidfile $pidfile_klogd --name klogd --startas $binpath_klogd -- $KLOGD
- log_end_msg $?
;;
restart)
log_begin_msg "Restarting system log daemon..."
@@ -142,12 +128,6 @@ case "$1" in
waitpid $pid
start-stop-daemon --start --quiet --pidfile $pidfile_syslogd --name syslogd --startas $binpath_syslogd -- $SYSLOGD
log_end_msg $?
- log_begin_msg "Reloading kernel log daemon..."
- pid=`cat $pidfile_klogd 2> /dev/null`
- start-stop-daemon --stop --quiet --retry 3 --exec $binpath_klogd --pidfile $pidfile_klogd
- waitpid $pid
- start-stop-daemon --start --quiet --pidfile $pidfile_klogd --name klogd --startas $binpath_klogd -- $KLOGD
- log_end_msg $?
;;
reload-or-restart)
if running
@@ -160,8 +140,6 @@ case "$1" in
status)
status syslogd
RETVAL=$?
- status klogd
- rval=$?
[ $RETVAL -eq 0 ] && exit $rval
exit $RETVAL
;;
diff --git a/meta/recipes-extended/sysklogd/sysklogd.inc b/meta/recipes-extended/sysklogd/sysklogd.inc
index 8618c9ffec..162260f000 100644
--- a/meta/recipes-extended/sysklogd/sysklogd.inc
+++ b/meta/recipes-extended/sysklogd/sysklogd.inc
@@ -1,27 +1,22 @@
SUMMARY = "System Log Daemons"
-DESCRIPTION = "The sysklogd package implements two system log daemons: syslogd, klogd"
+DESCRIPTION = "The sysklogd package implements system log daemons: syslogd"
HOMEPAGE = "http://www.infodrom.org/projects/sysklogd/"
SECTION = "base"
-LICENSE = "GPLv2+ & BSD"
-LICENSE_syslogd = "BSD"
-LICENSE_klogd = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5b4be4b2549338526758ef479c040943 \
file://src/syslogd.c;beginline=2;endline=15;md5=a880fecbc04503f071c494a9c0dd4f97 \
- file://src/klogd.c;beginline=2;endline=19;md5=4f5591d04cccbeb0352758ed4a9d7213 \
"
inherit update-rc.d update-alternatives systemd autotools
SRC_URI = "git://github.com/troglobit/sysklogd.git;nobranch=1 \
- file://0001-Remove-__BEGIN_DECLS-__END_DECLS.patch \
- file://0002-include-sys-types.h-for-off_t.patch \
- file://0001-Drop-libcompat-to-simplify-build-deps-and-really-fix.patch \
file://sysklogd \
+ file://0001-Makefile.am-fixup-issue-17.patch \
"
S = "${WORKDIR}/git"
-EXTRA_OECONF = "--with-systemd=${systemd_system_unitdir} --with-klogd --without-logger"
+EXTRA_OECONF = "--with-systemd=${systemd_system_unitdir} --without-logger"
do_install_append () {
install -d ${D}${sysconfdir}
@@ -31,7 +26,7 @@ do_install_append () {
}
SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE_${PN} = "syslogd.service klogd.service"
+SYSTEMD_SERVICE_${PN} = "syslogd.service"
SYSTEMD_AUTO_ENABLE = "enable"
INITSCRIPT_NAME = "syslog"
diff --git a/meta/recipes-extended/sysklogd/sysklogd_2.0.3.bb b/meta/recipes-extended/sysklogd/sysklogd_2.0.3.bb
deleted file mode 100644
index 21f750fa60..0000000000
--- a/meta/recipes-extended/sysklogd/sysklogd_2.0.3.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-require sysklogd.inc
-
-SRCREV = "ad686ca86d977f9eac4cd0a0d0e9a5964a4621d3"
diff --git a/meta/recipes-extended/sysklogd/sysklogd_2.1.2.bb b/meta/recipes-extended/sysklogd/sysklogd_2.1.2.bb
new file mode 100644
index 0000000000..2917c2aae0
--- /dev/null
+++ b/meta/recipes-extended/sysklogd/sysklogd_2.1.2.bb
@@ -0,0 +1,3 @@
+require sysklogd.inc
+
+SRCREV = "6d6010add698370fc7d9828f0aaa18613dd2397f"
diff --git a/meta/recipes-extended/sysstat/sysstat.inc b/meta/recipes-extended/sysstat/sysstat.inc
index 8fd87b943b..e5e134c038 100644
--- a/meta/recipes-extended/sysstat/sysstat.inc
+++ b/meta/recipes-extended/sysstat/sysstat.inc
@@ -62,6 +62,6 @@ pkg_postinst_${PN} () {
fi
}
-FILES_${PN} += "${systemd_system_unitdir}"
+FILES_${PN} += "${systemd_system_unitdir} ${nonarch_base_libdir}/systemd"
TARGET_CC_ARCH += "${LDFLAGS}"
diff --git a/meta/recipes-extended/sysstat/sysstat_12.2.1.bb b/meta/recipes-extended/sysstat/sysstat_12.4.0.bb
index 2a90f89d25..6773213a40 100644
--- a/meta/recipes-extended/sysstat/sysstat_12.2.1.bb
+++ b/meta/recipes-extended/sysstat/sysstat_12.4.0.bb
@@ -4,5 +4,4 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a23a74b3f4caf9616230789d94217acb"
SRC_URI += "file://0001-configure.in-remove-check-for-chkconfig.patch"
-SRC_URI[md5sum] = "9dfff5fac24e35bd92fb7896debf2ffb"
-SRC_URI[sha256sum] = "8edb0e19b514ac560a098a02933a4735b881296d61014db89bf80f05dd7a4732"
+SRC_URI[sha256sum] = "78556c339795ecd07eb10ee09e3f5d52901d3a29f874ae92b45efd0de7b62d16"
diff --git a/meta/recipes-extended/timezone/timezone.inc b/meta/recipes-extended/timezone/timezone.inc
index 91a5cb3327..8eb17c5eaf 100644
--- a/meta/recipes-extended/timezone/timezone.inc
+++ b/meta/recipes-extended/timezone/timezone.inc
@@ -6,7 +6,7 @@ SECTION = "base"
LICENSE = "PD & BSD & BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c679c9d6b02bc2757b3eaf8f53c43fba"
-PV = "2019c"
+PV = "2020b"
SRC_URI =" http://www.iana.org/time-zones/repository/releases/tzcode${PV}.tar.gz;name=tzcode \
http://www.iana.org/time-zones/repository/releases/tzdata${PV}.tar.gz;name=tzdata \
@@ -14,7 +14,5 @@ SRC_URI =" http://www.iana.org/time-zones/repository/releases/tzcode${PV}.tar.gz
UPSTREAM_CHECK_URI = "http://www.iana.org/time-zones"
-SRC_URI[tzcode.md5sum] = "195a17454c5db05cab96595380650391"
-SRC_URI[tzcode.sha256sum] = "f6ebd3668e02d5ed223d3b7b1947561bf2d2da2f4bd1db61efefd9e06c167ed4"
-SRC_URI[tzdata.md5sum] = "f6987e6dfdb2eb83a1b5076a50b80894"
-SRC_URI[tzdata.sha256sum] = "79c7806dab09072308da0e3d22c37d3b245015a591891ea147d3b133b60ffc7c"
+SRC_URI[tzcode.sha256sum] = "47eff8944de4a64f7629b851e4a32338ab12c9b73edd62063795167ff1fe43da"
+SRC_URI[tzdata.sha256sum] = "9b053f951d245ce89d850b96ee4711d82d833559b1fc96ba19f90bc4d745e809"
diff --git a/meta/recipes-extended/timezone/tzdata.bb b/meta/recipes-extended/timezone/tzdata.bb
index 1e2d9bd1b9..f8443110d5 100644
--- a/meta/recipes-extended/timezone/tzdata.bb
+++ b/meta/recipes-extended/timezone/tzdata.bb
@@ -15,18 +15,18 @@ DEFAULT_TIMEZONE ?= "Universal"
INSTALL_TIMEZONE_FILE ?= "1"
TZONES= "africa antarctica asia australasia europe northamerica southamerica \
- factory etcetera backward systemv \
+ factory etcetera backward \
"
# pacificnew
do_compile () {
for zone in ${TZONES}; do \
${STAGING_BINDIR_NATIVE}/zic -d ${WORKDIR}${datadir}/zoneinfo -L /dev/null \
- -y ${S}/yearistype.sh ${S}/${zone} ; \
+ ${S}/${zone} ; \
${STAGING_BINDIR_NATIVE}/zic -d ${WORKDIR}${datadir}/zoneinfo/posix -L /dev/null \
- -y ${S}/yearistype.sh ${S}/${zone} ; \
+ ${S}/${zone} ; \
${STAGING_BINDIR_NATIVE}/zic -d ${WORKDIR}${datadir}/zoneinfo/right -L ${S}/leapseconds \
- -y ${S}/yearistype.sh ${S}/${zone} ; \
+ ${S}/${zone} ; \
done
}
@@ -37,6 +37,8 @@ do_install () {
cp -pP "${S}/zone.tab" ${D}${datadir}/zoneinfo
cp -pP "${S}/zone1970.tab" ${D}${datadir}/zoneinfo
cp -pP "${S}/iso3166.tab" ${D}${datadir}/zoneinfo
+ cp -pP "${S}/leapseconds" ${D}${datadir}/zoneinfo
+ cp -pP "${S}/leap-seconds.list" ${D}${datadir}/zoneinfo
# Install default timezone
if [ -e ${D}${datadir}/zoneinfo/${DEFAULT_TIMEZONE} ]; then
@@ -60,12 +62,8 @@ pkg_postinst_${PN} () {
if [ -e ${src} ] ; then
tz=$(sed -e 's:#.*::' -e 's:[[:space:]]*::g' -e '/^$/d' "${src}")
fi
-
- if [ -z "${tz}" ] ; then
- exit 0
- fi
-
- if [ ! -e "$D${datadir}/zoneinfo/${tz}" ] ; then
+
+ if [ ! -z "${tz}" -a ! -e "$D${datadir}/zoneinfo/${tz}" ] ; then
echo "You have an invalid TIMEZONE setting in ${src}"
echo "Your ${etc_lt} has been reset to Universal; enjoy!"
tz="Universal"
@@ -149,6 +147,8 @@ RPROVIDES_tzdata-misc = "tzdata-misc"
FILES_tzdata-core += " \
${sysconfdir}/localtime \
${sysconfdir}/timezone \
+ ${datadir}/zoneinfo/leapseconds \
+ ${datadir}/zoneinfo/leap-seconds.list \
${datadir}/zoneinfo/Pacific/Honolulu \
${datadir}/zoneinfo/America/Anchorage \
${datadir}/zoneinfo/America/Los_Angeles \
diff --git a/meta/recipes-extended/watchdog/watchdog/0001-Include-linux-param.h-for-EXEC_PAGESIZE-definition.patch b/meta/recipes-extended/watchdog/watchdog/0001-Include-linux-param.h-for-EXEC_PAGESIZE-definition.patch
deleted file mode 100644
index 198f198619..0000000000
--- a/meta/recipes-extended/watchdog/watchdog/0001-Include-linux-param.h-for-EXEC_PAGESIZE-definition.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 8f91385dbd5e7c14b36ecbd8a01ca82c709f6d77 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 24 Jun 2016 18:19:29 +0000
-Subject: [PATCH] Include linux/param.h for EXEC_PAGESIZE definition
-
-Musl does not include linux/param.h whereas glibc
-does, so it fails to build on musl.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted
-
- src/watchdog.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/src/watchdog.c b/src/watchdog.c
-index acf6450..486384a 100644
---- a/src/watchdog.c
-+++ b/src/watchdog.c
-@@ -26,6 +26,9 @@
- #include <sys/param.h> /* For EXEC_PAGESIZE */
- #include <linux/oom.h>
- #include <linux/watchdog.h>
-+#ifdef __linux__
-+#include <linux/param.h>
-+#endif
- #include <string.h>
-
- #include <libgen.h>
---
-1.8.3.1
-
diff --git a/meta/recipes-extended/watchdog/watchdog/0001-wd_keepalive.service-use-run-instead-of-var-run.patch b/meta/recipes-extended/watchdog/watchdog/0001-wd_keepalive.service-use-run-instead-of-var-run.patch
new file mode 100644
index 0000000000..5c5d2f4e44
--- /dev/null
+++ b/meta/recipes-extended/watchdog/watchdog/0001-wd_keepalive.service-use-run-instead-of-var-run.patch
@@ -0,0 +1,30 @@
+From b5cb6166dbfa57d1d94b19d4a098991a817f68f5 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Thu, 15 Oct 2020 10:02:17 +0800
+Subject: [PATCH] wd_keepalive.service: use /run instead of /var/run
+
+/var/run is deprecated by systemd, use /run instead.
+
+Upstream-Status: Pending
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ debian/wd_keepalive.service | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/debian/wd_keepalive.service b/debian/wd_keepalive.service
+index 7f8b1dc..0f2a153 100644
+--- a/debian/wd_keepalive.service
++++ b/debian/wd_keepalive.service
+@@ -7,7 +7,7 @@ Type=forking
+ EnvironmentFile=/etc/default/watchdog
+ ExecStartPre=/bin/sh -c '[ -z "${watchdog_module}" ] || [ "${watchdog_module}" = "none" ] || /sbin/modprobe $watchdog_module'
+ ExecStart=/usr/sbin/wd_keepalive $watchdog_options
+-PIDFile=/var/run/wd_keepalive.pid
++PIDFile=/run/wd_keepalive.pid
+
+ [Install]
+ WantedBy=multi-user.target
+--
+2.17.1
+
diff --git a/meta/recipes-extended/watchdog/watchdog_5.15.bb b/meta/recipes-extended/watchdog/watchdog_5.16.bb
index 1acab2e9e7..1988952603 100644
--- a/meta/recipes-extended/watchdog/watchdog_5.15.bb
+++ b/meta/recipes-extended/watchdog/watchdog_5.16.bb
@@ -6,17 +6,17 @@ HOMEPAGE = "http://watchdog.sourceforge.net/"
BUGTRACKER = "http://sourceforge.net/tracker/?group_id=172030&atid=860194"
LICENSE = "GPL-2.0+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ecc0551bf54ad97f6b541720f84d6569"
+LIC_FILES_CHKSUM = "file://COPYING;md5=084236108b1d4a9851bf5213fea586fd"
SRC_URI = "${SOURCEFORGE_MIRROR}/watchdog/watchdog-${PV}.tar.gz \
- file://0001-Include-linux-param.h-for-EXEC_PAGESIZE-definition.patch \
file://0001-watchdog-remove-interdependencies-of-watchdog-and-wd.patch \
file://watchdog.init \
file://wd_keepalive.init \
+ file://0001-wd_keepalive.service-use-run-instead-of-var-run.patch \
"
-SRC_URI[md5sum] = "678c32f6f35a0492c9c1b76b4aa88828"
-SRC_URI[sha256sum] = "ffdc865137ad5d8e53664bd22bad4de6ca136d1b4636720320cb52af0c18947c"
+SRC_URI[md5sum] = "1b4f51cabc64d1bee2fce7cdd626831f"
+SRC_URI[sha256sum] = "b8e7c070e1b72aee2663bdc13b5cc39f76c9232669cfbb1ac0adc7275a3b019d"
UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/watchdog/files/watchdog/"
UPSTREAM_CHECK_REGEX = "/watchdog/(?P<pver>(\d+[\.\-_]*)+)/"
diff --git a/meta/recipes-extended/wget/wget/0002-improve-reproducibility.patch b/meta/recipes-extended/wget/wget/0002-improve-reproducibility.patch
index 8781df21c0..050fc2c7e1 100644
--- a/meta/recipes-extended/wget/wget/0002-improve-reproducibility.patch
+++ b/meta/recipes-extended/wget/wget/0002-improve-reproducibility.patch
@@ -34,6 +34,11 @@ Link: gcc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+sed use of DEBUG_PREFIX_MAP must treat whitespace the same as the
+echo command building version.c or the expression match will fail.
+
+Signed-off-by: Joe Slater <jslater@windriver.com>
---
src/Makefile.am | 4 ++++
1 file changed, 4 insertions(+)
@@ -47,12 +52,12 @@ index 28c0be2..44084a3 100644
echo 'const char *version_string = "@VERSION@";' >> $@
echo 'const char *compilation_string = "'$(COMPILE)'";' \
+ | sed -e "s,$(TOOLCHAIN_OPTIONS),,g" \
-+ -e "s,$(DEBUG_PREFIX_MAP),,g" \
++ -e "s,$$(echo $(DEBUG_PREFIX_MAP)),,g" \
| $(ESCAPEQUOTE) >> $@
echo 'const char *link_string = "'$(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) $(LIBS) $(wget_LDADD)'";' \
+ | sed -e "s,$(TOOLCHAIN_OPTIONS),,g" \
-+ -e "s,$(DEBUG_PREFIX_MAP),,g" \
++ -e "s,$$(echo $(DEBUG_PREFIX_MAP)),,g" \
| $(ESCAPEQUOTE) >> $@
css.c: $(srcdir)/css.l
diff --git a/meta/recipes-extended/xinetd/xinetd/0001-configure-Use-HAVE_SYS_RESOURCE_H-to-guard-sys-resou.patch b/meta/recipes-extended/xinetd/xinetd/0001-configure-Use-HAVE_SYS_RESOURCE_H-to-guard-sys-resou.patch
deleted file mode 100644
index 3c1b2f6f0e..0000000000
--- a/meta/recipes-extended/xinetd/xinetd/0001-configure-Use-HAVE_SYS_RESOURCE_H-to-guard-sys-resou.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From e8b0ffc7ea04cc71dba97a38e1a134aaf2285c2d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 30 Dec 2015 07:14:50 +0000
-Subject: [PATCH] configure: Use HAVE_SYS_RESOURCE_H to guard sys/resource.h
- inclusion
-
-HAVE_RLIM_T check will not let sys/resource.h to be checked and
-rlim_t is defined in sys/resource.h so the check would fail.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- aclocal.m4 | 2 +-
- configure | 14 +++++++-------
- 2 files changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/aclocal.m4 b/aclocal.m4
-index 6e6f32c..70e7076 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -11,7 +11,7 @@ AC_CACHE_VAL(xinetd_cv_type_$1,
- #if HAVE_NETDB_H
- #include <netdb.h>
- #endif
--#if HAVE_RLIM_T
-+#if HAVE_SYS_RESOURCE_H
- #include <sys/resource.h>
- #endif
- #if HAVE_STDINT_H
-diff --git a/configure b/configure
-index b507d38..bec56ea 100755
---- a/configure
-+++ b/configure
-@@ -7640,7 +7640,7 @@ cat >>conftest.$ac_ext <<_ACEOF
- #if HAVE_NETDB_H
- #include <netdb.h>
- #endif
--#if HAVE_RLIM_T
-+#if HAVE_SYS_RESOURCE_H
- #include <sys/resource.h>
- #endif
- #if HAVE_STDINT_H
-@@ -7686,7 +7686,7 @@ cat >>conftest.$ac_ext <<_ACEOF
- #if HAVE_NETDB_H
- #include <netdb.h>
- #endif
--#if HAVE_RLIM_T
-+#if HAVE_SYS_RESOURCE_H
- #include <sys/resource.h>
- #endif
- #if HAVE_STDINT_H
-@@ -7732,7 +7732,7 @@ cat >>conftest.$ac_ext <<_ACEOF
- #if HAVE_NETDB_H
- #include <netdb.h>
- #endif
--#if HAVE_RLIM_T
-+#if HAVE_SYS_RESOURCE_H
- #include <sys/resource.h>
- #endif
- #if HAVE_STDINT_H
-@@ -7778,7 +7778,7 @@ cat >>conftest.$ac_ext <<_ACEOF
- #if HAVE_NETDB_H
- #include <netdb.h>
- #endif
--#if HAVE_RLIM_T
-+#if HAVE_SYS_RESOURCE_H
- #include <sys/resource.h>
- #endif
- #if HAVE_STDINT_H
-@@ -7824,7 +7824,7 @@ cat >>conftest.$ac_ext <<_ACEOF
- #if HAVE_NETDB_H
- #include <netdb.h>
- #endif
--#if HAVE_RLIM_T
-+#if HAVE_SYS_RESOURCE_H
- #include <sys/resource.h>
- #endif
- #if HAVE_STDINT_H
-@@ -7870,7 +7870,7 @@ cat >>conftest.$ac_ext <<_ACEOF
- #if HAVE_NETDB_H
- #include <netdb.h>
- #endif
--#if HAVE_RLIM_T
-+#if HAVE_SYS_RESOURCE_H
- #include <sys/resource.h>
- #endif
- #if HAVE_STDINT_H
-@@ -7916,7 +7916,7 @@ cat >>conftest.$ac_ext <<_ACEOF
- #if HAVE_NETDB_H
- #include <netdb.h>
- #endif
--#if HAVE_RLIM_T
-+#if HAVE_SYS_RESOURCE_H
- #include <sys/resource.h>
- #endif
- #if HAVE_STDINT_H
---
-2.6.4
-
diff --git a/meta/recipes-extended/xinetd/xinetd/Disable-services-from-inetd.conf-if-a-service-with-t.patch b/meta/recipes-extended/xinetd/xinetd/Disable-services-from-inetd.conf-if-a-service-with-t.patch
deleted file mode 100644
index cd6e6c1078..0000000000
--- a/meta/recipes-extended/xinetd/xinetd/Disable-services-from-inetd.conf-if-a-service-with-t.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-Upstream-Status: Pending [from other distro Debian]
-
-From d588b6530e1382a624898b3f4307f636c72c80a9 Mon Sep 17 00:00:00 2001
-From: Pierre Habouzit <madcoder@debian.org>
-Date: Wed, 28 Nov 2007 10:13:08 +0100
-Subject: [PATCH] Disable services from inetd.conf if a service with the same id exists.
-
- This way, if a service is enabled in /etc/xinetd* _and_ in
-/etc/inetd.conf, the one (even if disabled) from /etc/xinetd* takes
-precedence.
-
-Signed-off-by: Pierre Habouzit <madcoder@debian.org>
----
- xinetd/inet.c | 22 +++++++++++++++++++---
- 1 files changed, 19 insertions(+), 3 deletions(-)
-
-diff --git a/xinetd/inet.c b/xinetd/inet.c
-index 1cb2ba2..8caab45 100644
---- a/xinetd/inet.c
-+++ b/xinetd/inet.c
-@@ -23,6 +23,8 @@
- #include "parsesup.h"
- #include "nvlists.h"
-
-+static psi_h iter ;
-+
- static int get_next_inet_entry( int fd, pset_h sconfs,
- struct service_config *defaults);
-
-@@ -32,12 +34,15 @@ void parse_inet_conf_file( int fd, struct configuration *confp )
- struct service_config *default_config = CNF_DEFAULTS( confp );
-
- line_count = 0;
-+ iter = psi_create (sconfs);
-
- for( ;; )
- {
- if (get_next_inet_entry(fd, sconfs, default_config) == -2)
- break;
- }
-+
-+ psi_destroy(iter);
- }
-
- static int get_next_inet_entry( int fd, pset_h sconfs,
-@@ -46,7 +51,7 @@ static int get_next_inet_entry( int fd, pset_h sconfs,
- char *p;
- str_h strp;
- char *line = next_line(fd);
-- struct service_config *scp;
-+ struct service_config *scp, *tmp;
- unsigned u, i;
- const char *func = "get_next_inet_entry";
- char *name = NULL, *rpcvers = NULL, *rpcproto = NULL;
-@@ -405,7 +410,16 @@ static int get_next_inet_entry( int fd, pset_h sconfs,
- SC_SPECIFY( scp, A_SOCKET_TYPE );
- SC_SPECIFY( scp, A_WAIT );
-
-- if( ! pset_add(sconfs, scp) )
-+ for ( tmp = SCP( psi_start( iter ) ) ; tmp ; tmp = SCP( psi_next(iter)) ){
-+ if (EQ(SC_ID(scp), SC_ID(tmp))) {
-+ parsemsg(LOG_DEBUG, func, "removing duplicate service %s", SC_NAME(scp));
-+ sc_free(scp);
-+ scp = NULL;
-+ break;
-+ }
-+ }
-+
-+ if( scp && ! pset_add(sconfs, scp) )
- {
- out_of_memory( func );
- pset_destroy(args);
-@@ -414,7 +428,9 @@ static int get_next_inet_entry( int fd, pset_h sconfs,
- }
-
- pset_destroy(args);
-- parsemsg( LOG_DEBUG, func, "added service %s", SC_NAME(scp));
-+ if (scp) {
-+ parsemsg( LOG_DEBUG, func, "added service %s", SC_NAME(scp));
-+ }
- return 0;
- }
-
---
-1.5.3.6.2040.g15e6
-
diff --git a/meta/recipes-extended/xinetd/xinetd/Various-fixes-from-the-previous-maintainer.patch b/meta/recipes-extended/xinetd/xinetd/Various-fixes-from-the-previous-maintainer.patch
deleted file mode 100644
index 8e59cdcaae..0000000000
--- a/meta/recipes-extended/xinetd/xinetd/Various-fixes-from-the-previous-maintainer.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-Upstream-Status: Pending [from other distro Debian]
-
-From a3410b0bc81ab03a889d9ffc14e351badf8372f1 Mon Sep 17 00:00:00 2001
-From: Pierre Habouzit <madcoder@debian.org>
-Date: Mon, 26 Nov 2007 16:02:04 +0100
-Subject: [PATCH] Various fixes from the previous maintainer.
-
----
- xinetd/child.c | 20 +++++++++++++++++---
- xinetd/service.c | 8 ++++----
- 2 files changed, 21 insertions(+), 7 deletions(-)
-
-diff --git a/xinetd/child.c b/xinetd/child.c
-index 89ee54c..48e9615 100644
---- a/xinetd/child.c
-+++ b/xinetd/child.c
-@@ -284,6 +284,7 @@ void child_process( struct server *serp )
- connection_s *cp = SERVER_CONNECTION( serp ) ;
- struct service_config *scp = SVC_CONF( sp ) ;
- const char *func = "child_process" ;
-+ int fd, null_fd;
-
- signal_default_state();
-
-@@ -296,9 +297,22 @@ void child_process( struct server *serp )
- signals_pending[0] = -1;
- signals_pending[1] = -1;
-
-- Sclose(0);
-- Sclose(1);
-- Sclose(2);
-+ if ( ( null_fd = open( "/dev/null", O_RDONLY ) ) == -1 )
-+ {
-+ msg( LOG_ERR, func, "open('/dev/null') failed: %m") ;
-+ _exit( 1 ) ;
-+ }
-+
-+ for ( fd = 0 ; fd <= MAX_PASS_FD ; fd++ )
-+ {
-+ if ( fd != null_fd && dup2( null_fd, fd ) == -1 )
-+ {
-+ msg( LOG_ERR, func, "dup2(%d, %d) failed: %m") ;
-+ _exit( 1 ) ;
-+ }
-+ }
-+ if ( null_fd > MAX_PASS_FD )
-+ (void) Sclose( null_fd ) ;
-
-
- #ifdef DEBUG_SERVER
-diff --git a/xinetd/service.c b/xinetd/service.c
-index 3d68d78..0132d6c 100644
---- a/xinetd/service.c
-+++ b/xinetd/service.c
-@@ -745,8 +745,8 @@ static status_e failed_service(struct service *sp,
- return FAILED;
-
- if ( last == NULL ) {
-- last = SAIN( calloc( 1, sizeof(union xsockaddr) ) );
-- SVC_LAST_DGRAM_ADDR(sp) = (union xsockaddr *)last;
-+ SVC_LAST_DGRAM_ADDR(sp) = SAIN( calloc( 1, sizeof(union xsockaddr) ) );
-+ last = SAIN( SVC_LAST_DGRAM_ADDR(sp) );
- }
-
- (void) time( &current_time ) ;
-@@ -772,8 +772,8 @@ static status_e failed_service(struct service *sp,
- return FAILED;
-
- if( last == NULL ) {
-- last = SAIN6(calloc( 1, sizeof(union xsockaddr) ) );
-- SVC_LAST_DGRAM_ADDR( sp ) = (union xsockaddr *)last;
-+ SVC_LAST_DGRAM_ADDR(sp) = SAIN6(calloc( 1, sizeof(union xsockaddr) ) );
-+ last = SAIN6(SVC_LAST_DGRAM_ADDR(sp));
- }
-
- (void) time( &current_time ) ;
---
-1.5.3.6.2040.g15e6
-
diff --git a/meta/recipes-extended/xinetd/xinetd/xinetd-CVE-2013-4342.patch b/meta/recipes-extended/xinetd/xinetd/xinetd-CVE-2013-4342.patch
deleted file mode 100644
index 852a43f2de..0000000000
--- a/meta/recipes-extended/xinetd/xinetd/xinetd-CVE-2013-4342.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-xinetd: CVE-2013-4342
-
-xinetd does not enforce the user and group configuration directives
-for TCPMUX services, which causes these services to be run as root
-and makes it easier for remote attackers to gain privileges by
-leveraging another vulnerability in a service.
-http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2013-4342
-
-the patch come from:
-https://bugzilla.redhat.com/attachment.cgi?id=799732&action=diff
-
-CVE: CVE-2013-4342
-Signed-off-by: Li Wang <li.wang@windriver.com>
-Upstream-Status: Backport
----
- xinetd/builtins.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/xinetd/builtins.c b/xinetd/builtins.c
-index 3b85579..34a5bac 100644
---- a/xinetd/builtins.c
-+++ b/xinetd/builtins.c
-@@ -617,7 +617,7 @@ static void tcpmux_handler( const struct server *serp )
- if( SC_IS_INTERNAL( scp ) ) {
- SC_INTERNAL(scp, nserp);
- } else {
-- exec_server(nserp);
-+ child_process(nserp);
- }
- }
-
---
-1.7.9.5
-
diff --git a/meta/recipes-extended/xinetd/xinetd/xinetd-should-be-able-to-listen-on-IPv6-even-in-ine.patch b/meta/recipes-extended/xinetd/xinetd/xinetd-should-be-able-to-listen-on-IPv6-even-in-ine.patch
deleted file mode 100644
index 2365ca123b..0000000000
--- a/meta/recipes-extended/xinetd/xinetd/xinetd-should-be-able-to-listen-on-IPv6-even-in-ine.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-Upstream-Status: Pending [from other distro Debian]
-
-From f44b218ccc779ab3f4aed072390ccf129d94b58d Mon Sep 17 00:00:00 2001
-From: David Madore <david@pleiades.stars>
-Date: Mon, 24 Mar 2008 12:45:36 +0100
-Subject: [PATCH] xinetd should be able to listen on IPv6 even in -inetd_compat mode
-
-xinetd does not bind to IPv6 addresses (and does not seem to have an
-option to do so) when used in -inetd_compat mode. As current inetd's
-are IPv6-aware, this is a problem: this means xinetd cannot be used as
-a drop-in inetd replacement.
-
-The attached patch is a suggestion: it adds a -inetd_ipv6 global
-option that, if used, causes inetd-compatibility lines to have an
-implicit "IPv6" option. Perhaps this is not the best solution, but
-there should definitely be a way to get inetd.conf to be read in
-IPv6-aware mode.
----
- xinetd/confparse.c | 1 +
- xinetd/inet.c | 17 +++++++++++++++++
- xinetd/options.c | 3 +++
- xinetd/xinetd.man | 6 ++++++
- 4 files changed, 27 insertions(+), 0 deletions(-)
-
-diff --git a/xinetd/confparse.c b/xinetd/confparse.c
-index db9f431..d7b0bcc 100644
---- a/xinetd/confparse.c
-+++ b/xinetd/confparse.c
-@@ -40,6 +40,7 @@
- #include "inet.h"
- #include "main.h"
-
-+extern int inetd_ipv6;
- extern int inetd_compat;
-
- /*
-diff --git a/xinetd/inet.c b/xinetd/inet.c
-index 8caab45..2e617ae 100644
---- a/xinetd/inet.c
-+++ b/xinetd/inet.c
-@@ -25,6 +25,8 @@
-
- static psi_h iter ;
-
-+extern int inetd_ipv6;
-+
- static int get_next_inet_entry( int fd, pset_h sconfs,
- struct service_config *defaults);
-
-@@ -360,6 +362,21 @@ static int get_next_inet_entry( int fd, pset_h sconfs,
- }
- SC_SERVER_ARGV(scp)[u] = p;
- }
-+
-+ /* Set the IPv6 flag if we were passed the -inetd_ipv6 option */
-+ if ( inetd_ipv6 )
-+ {
-+ nvp = nv_find_value( service_flags, "IPv6" );
-+ if ( nvp == NULL )
-+ {
-+ parsemsg( LOG_WARNING, func, "inetd.conf - Bad foo %s", name ) ;
-+ pset_destroy(args);
-+ sc_free(scp);
-+ return -1;
-+ }
-+ M_SET(SC_XFLAGS(scp), nvp->value);
-+ }
-+
- /* Set the reuse flag, as this is the default for inetd */
- nvp = nv_find_value( service_flags, "REUSE" );
- if ( nvp == NULL )
-diff --git a/xinetd/options.c b/xinetd/options.c
-index b058b6a..dc2f3a0 100644
---- a/xinetd/options.c
-+++ b/xinetd/options.c
-@@ -30,6 +30,7 @@ int logprocs_option ;
- unsigned logprocs_option_arg ;
- int stayalive_option=0;
- char *program_name ;
-+int inetd_ipv6 = 0 ;
- int inetd_compat = 0 ;
- int dont_fork = 0;
-
-@@ -128,6 +129,8 @@ int opt_recognize( int argc, char *argv[] )
- fprintf(stderr, "\n");
- exit(0);
- }
-+ else if ( strcmp ( &argv[ arg ][ 1 ], "inetd_ipv6" ) == 0 )
-+ inetd_ipv6 = 1;
- else if ( strcmp ( &argv[ arg ][ 1 ], "inetd_compat" ) == 0 )
- inetd_compat = 1;
- }
-diff --git a/xinetd/xinetd.man b/xinetd/xinetd.man
-index c76c3c6..c9dd803 100644
---- a/xinetd/xinetd.man
-+++ b/xinetd/xinetd.man
-@@ -106,6 +106,12 @@ This option causes xinetd to read /etc/inetd.conf in addition to the
- standard xinetd config files. /etc/inetd.conf is read after the
- standard xinetd config files.
- .TP
-+.BI \-inetd_ipv6
-+This option causes xinetd to bind to IPv6 (AF_INET6) addresses for
-+inetd compatibility lines (see previous option). This only affects
-+how /etc/inetd.conf is interpreted and thus only has any effect if
-+the \-inetd_compat option is also used.
-+.TP
- .BI \-cc " interval"
- This option instructs
- .B xinetd
---
-1.5.5.rc0.127.gb4337
-
diff --git a/meta/recipes-extended/xinetd/xinetd/xinetd.conf b/meta/recipes-extended/xinetd/xinetd/xinetd.conf
deleted file mode 100644
index 9e6ea2577e..0000000000
--- a/meta/recipes-extended/xinetd/xinetd/xinetd.conf
+++ /dev/null
@@ -1,11 +0,0 @@
-# Simple configuration file for xinetd
-#
-# Some defaults, and include /etc/xinetd.d/
-
-defaults
-{
-
-
-}
-
-includedir /etc/xinetd.d
diff --git a/meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb b/meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb
new file mode 100644
index 0000000000..4f0f9531a1
--- /dev/null
+++ b/meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb
@@ -0,0 +1,47 @@
+SUMMARY = "Socket-based service activation daemon"
+HOMEPAGE = "https://github.com/xinetd-org/xinetd"
+
+# xinetd is a BSD-like license
+# Apple and Gentoo say BSD here.
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=55c5fdf02cfcca3fc9621b6f2ceae10f"
+
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
+
+SRC_URI = "git://github.com/openSUSE/xinetd.git;protocol=https \
+ file://xinetd.init \
+ file://xinetd.default \
+ file://xinetd.service \
+ "
+
+SRCREV = "6a4af7786630ce48747d9687e2f18f45ea6684c4"
+
+S = "${WORKDIR}/git"
+
+inherit autotools update-rc.d systemd pkgconfig
+
+SYSTEMD_SERVICE_${PN} = "xinetd.service"
+
+INITSCRIPT_NAME = "xinetd"
+INITSCRIPT_PARAMS = "defaults"
+
+PACKAGECONFIG ??= "tcp-wrappers"
+PACKAGECONFIG[tcp-wrappers] = "--with-libwrap,,tcp-wrappers"
+
+CONFFILES_${PN} = "${sysconfdir}/xinetd.conf"
+
+do_install_append() {
+ install -d "${D}${sysconfdir}/init.d"
+ install -d "${D}${sysconfdir}/default"
+ install -m 755 "${WORKDIR}/xinetd.init" "${D}${sysconfdir}/init.d/xinetd"
+ install -m 644 "${WORKDIR}/xinetd.default" "${D}${sysconfdir}/default/xinetd"
+
+ # Install systemd unit files
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/xinetd.service ${D}${systemd_unitdir}/system
+ sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
+ -e 's,@SBINDIR@,${sbindir},g' \
+ ${D}${systemd_unitdir}/system/xinetd.service
+}
+
+RDEPENDS_${PN} += "perl"
diff --git a/meta/recipes-extended/xinetd/xinetd_2.3.15.bb b/meta/recipes-extended/xinetd/xinetd_2.3.15.bb
deleted file mode 100644
index 6e43f5be6f..0000000000
--- a/meta/recipes-extended/xinetd/xinetd_2.3.15.bb
+++ /dev/null
@@ -1,77 +0,0 @@
-SUMMARY = "Socket-based service activation daemon"
-HOMEPAGE = "https://github.com/xinetd-org/xinetd"
-
-# xinetd is a BSD-like license
-# Apple and Gentoo say BSD here.
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=8ad8615198542444f84d28a6cf226dd8"
-
-DEPENDS += "libtirpc"
-PR = "r2"
-
-# Blacklist a bogus tag in upstream check
-UPSTREAM_CHECK_GITTAGREGEX = "xinetd-(?P<pver>(?!20030122).+)"
-
-SRC_URI = "git://github.com/xinetd-org/xinetd.git;protocol=https \
- file://xinetd.init \
- file://xinetd.conf \
- file://xinetd.default \
- file://Various-fixes-from-the-previous-maintainer.patch \
- file://Disable-services-from-inetd.conf-if-a-service-with-t.patch \
- file://xinetd-should-be-able-to-listen-on-IPv6-even-in-ine.patch \
- file://xinetd-CVE-2013-4342.patch \
- file://0001-configure-Use-HAVE_SYS_RESOURCE_H-to-guard-sys-resou.patch \
- file://xinetd.service \
- "
-UPSTREAM_VERSION_UNKNOWN = "1"
-
-SRCREV = "68bb9ab9e9f214ad8a2322f28ac1d6733e70bc24"
-
-S = "${WORKDIR}/git"
-
-inherit autotools update-rc.d systemd
-
-SYSTEMD_SERVICE_${PN} = "xinetd.service"
-
-INITSCRIPT_NAME = "xinetd"
-INITSCRIPT_PARAMS = "defaults"
-
-EXTRA_OECONF="--disable-nls"
-
-PACKAGECONFIG ??= "tcp-wrappers"
-PACKAGECONFIG[tcp-wrappers] = "--with-libwrap,,tcp-wrappers"
-
-CFLAGS += "-I${STAGING_INCDIR}/tirpc"
-LDFLAGS += "-ltirpc"
-
-do_configure() {
- # Looks like configure.in is broken, so we are skipping
- # rebuilding configure and are just using the shipped one
- ( cd ${S}; gnu-configize --force )
- oe_runconf
-}
-
-do_install() {
- # Same here, the Makefile does some really stupid things,
- # but since we only want two files why not override
- # do_install from autotools and doing it ourselfs?
- install -d "${D}${sbindir}"
- install -d "${D}${sysconfdir}/init.d"
- install -d "${D}${sysconfdir}/xinetd.d"
- install -d "${D}${sysconfdir}/default"
- install -m 644 "${WORKDIR}/xinetd.conf" "${D}${sysconfdir}"
- install -m 755 "${WORKDIR}/xinetd.init" "${D}${sysconfdir}/init.d/xinetd"
- install -m 644 "${WORKDIR}/xinetd.default" "${D}${sysconfdir}/default/xinetd"
- install -m 755 "${B}/xinetd/xinetd" "${D}${sbindir}"
- install -m 755 "${B}/xinetd/itox" "${D}${sbindir}"
- install -m 664 ${S}/contrib/xinetd.d/* ${D}${sysconfdir}/xinetd.d
-
- # Install systemd unit files
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/xinetd.service ${D}${systemd_unitdir}/system
- sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
- -e 's,@SBINDIR@,${sbindir},g' \
- ${D}${systemd_unitdir}/system/xinetd.service
-}
-
-CONFFILES_${PN} = "${sysconfdir}/xinetd.conf"
diff --git a/meta/recipes-extended/xz/xz_5.2.4.bb b/meta/recipes-extended/xz/xz_5.2.5.bb
index 1c4450a9e9..af21b60563 100644
--- a/meta/recipes-extended/xz/xz_5.2.4.bb
+++ b/meta/recipes-extended/xz/xz_5.2.5.bb
@@ -23,8 +23,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=97d554a32881fee0aa283d96e47cb24a \
"
SRC_URI = "https://tukaani.org/xz/xz-${PV}.tar.gz"
-SRC_URI[md5sum] = "5ace3264bdd00c65eeec2891346f65e6"
-SRC_URI[sha256sum] = "b512f3b726d3b37b6dc4c8570e137b9311e7552e8ccbab4d39d47ce5f4177145"
+SRC_URI[md5sum] = "0d270c997aff29708c74d53f599ef717"
+SRC_URI[sha256sum] = "f6f4910fd033078738bd82bfba4f49219d03b17eb0794eb91efbae419f4aba10"
UPSTREAM_CHECK_REGEX = "xz-(?P<pver>\d+(\.\d+)+)\.tar"
CACHED_CONFIGUREVARS += "gl_cv_posix_shell=/bin/sh"
diff --git a/meta/recipes-gnome/epiphany/epiphany_3.34.4.bb b/meta/recipes-gnome/epiphany/epiphany_3.36.4.bb
index ddb4c2794f..4c3b18331a 100644
--- a/meta/recipes-gnome/epiphany/epiphany_3.34.4.bb
+++ b/meta/recipes-gnome/epiphany/epiphany_3.36.4.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
DEPENDS = "libsoup-2.4 webkitgtk gtk+3 iso-codes avahi libnotify gcr \
gsettings-desktop-schemas libxml2-native \
- glib-2.0 glib-2.0-native json-glib libdazzle"
+ glib-2.0 glib-2.0-native json-glib libdazzle libhandy"
GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase gsettings features_check upstream-version-is-even gettext mime-xdg
@@ -14,8 +14,7 @@ REQUIRED_DISTRO_FEATURES = "x11 opengl"
SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \
file://0002-help-meson.build-disable-the-use-of-yelp.patch \
"
-SRC_URI[archive.md5sum] = "a559f164bb7d6cbeceb348648076830b"
-SRC_URI[archive.sha256sum] = "60e190fc07ec7e33472e60c7e633e04004f7e277a0ffc5e9cd413706881e598d"
+SRC_URI[archive.sha256sum] = "588a75b1588f5a509c33cf0be6a38a0f4fc1748eeb499a51d991ddef485242bf"
FILES_${PN} += "${datadir}/dbus-1 ${datadir}/gnome-shell/search-providers ${datadir}/metainfo"
RDEPENDS_${PN} = "iso-codes adwaita-icon-theme gsettings-desktop-schemas"
diff --git a/meta/recipes-gnome/gcr/gcr/0001-meson-Make-sure-gcr-oids.h-is-built.patch b/meta/recipes-gnome/gcr/gcr/0001-meson-Make-sure-gcr-oids.h-is-built.patch
new file mode 100644
index 0000000000..4bf5bfba94
--- /dev/null
+++ b/meta/recipes-gnome/gcr/gcr/0001-meson-Make-sure-gcr-oids.h-is-built.patch
@@ -0,0 +1,36 @@
+From 9fca6ae0aa7355c27d0922c561b9fbe18dde5b3d Mon Sep 17 00:00:00 2001
+From: Niels De Graef <nielsdegraef@gmail.com>
+Date: Fri, 19 Jun 2020 22:37:31 +0200
+Subject: [PATCH 1/1] meson: Make sure gcr-oids.h is built
+
+Fixes https://gitlab.gnome.org/GNOME/gcr/-/issues/48
+---
+ gcr/meson.build | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- end of original header ---
+
+Upstream-Status: Backport [https://github.com/GNOME/gcr.git]
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+---
+diff --git a/gcr/meson.build b/gcr/meson.build
+index 199452f..06c3a63 100644
+--- a/gcr/meson.build
++++ b/gcr/meson.build
+@@ -178,7 +178,10 @@ endif
+ gcr_base_dep = declare_dependency(
+ link_with: gcr_base_lib,
+ include_directories: include_directories('..'),
+- sources: gcr_enums_gen[1], # Make sure gcr-enum-types-base.h can be included
++ sources: [
++ gcr_enums_gen[1],
++ gcr_oids[1],
++ ],
+ )
+
+ if get_option('introspection')
+--
+2.7.4
+
diff --git a/meta/recipes-gnome/gcr/gcr/0001-meson.build-correctly-set-internal-vapi-dependencies.patch b/meta/recipes-gnome/gcr/gcr/0001-meson.build-correctly-set-internal-vapi-dependencies.patch
new file mode 100644
index 0000000000..b484a1b222
--- /dev/null
+++ b/meta/recipes-gnome/gcr/gcr/0001-meson.build-correctly-set-internal-vapi-dependencies.patch
@@ -0,0 +1,45 @@
+From ebb77dad4563b882b449cbc5e882f36ac8c2de71 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 11 May 2020 22:19:16 +0000
+Subject: [PATCH] meson.build: correctly set internal vapi dependencies
+
+If they are set as strings, meson will supply the right
+arguments to vapigen, but will not set the ninja dependencies
+to ensure they get built first, and so races will occur:
+https://autobuilder.yoctoproject.org/typhoon/#/builders/64/builds/1881/steps/8/logs/step1b
+
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gcr/-/merge_requests/55]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ gcr/meson.build | 2 +-
+ ui/meson.build | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/gcr/meson.build b/gcr/meson.build
+index 254a933..199452f 100644
+--- a/gcr/meson.build
++++ b/gcr/meson.build
+@@ -203,7 +203,7 @@ if get_option('introspection')
+
+ gcr_vapi = gnome.generate_vapi('gcr-@0@'.format(gcr_major_version),
+ sources: gcr_gir[0],
+- packages: [ 'glib-2.0', 'gio-2.0', 'gck-@0@'.format(gck_major_version) ],
++ packages: [ 'glib-2.0', 'gio-2.0', gck_vapi ],
+ metadata_dirs: meson.current_source_dir(),
+ vapi_dirs: [
+ build_root / 'gck',
+diff --git a/ui/meson.build b/ui/meson.build
+index 5ca3753..477412d 100644
+--- a/ui/meson.build
++++ b/ui/meson.build
+@@ -174,8 +174,8 @@ if get_option('introspection')
+ packages: [
+ 'glib-2.0',
+ 'gio-2.0',
+- 'gck-@0@'.format(gck_major_version),
+- 'gcr-@0@'.format(gcr_major_version),
++ gck_vapi,
++ gcr_vapi,
+ 'gtk+-3.0'
+ ],
+ metadata_dirs: meson.current_source_dir(),
diff --git a/meta/recipes-gnome/gcr/gcr_3.34.0.bb b/meta/recipes-gnome/gcr/gcr_3.36.0.bb
index 9853b3f416..ff455a68ec 100644
--- a/meta/recipes-gnome/gcr/gcr_3.34.0.bb
+++ b/meta/recipes-gnome/gcr/gcr_3.36.0.bb
@@ -8,15 +8,20 @@ BUGTRACKER = "https://gitlab.gnome.org/GNOME/gcr/issues"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
-DEPENDS = "gtk+3 p11-kit glib-2.0 libgcrypt \
+DEPENDS = "gtk+3 p11-kit glib-2.0 libgcrypt gnupg-native \
${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'libxslt-native', '', d)}"
+GNOMEBASEBUILDCLASS = "meson"
+GTKDOC_MESON_OPTION = "gtk_doc"
inherit gnomebase gtk-icon-cache gtk-doc features_check upstream-version-is-even vala gobject-introspection gettext mime mime-xdg
# depends on gtk+3, but also x11 through gtk+-x11
REQUIRED_DISTRO_FEATURES = "x11"
-SRC_URI[archive.md5sum] = "4af28919fb1dd36d93603e8230283b6f"
-SRC_URI[archive.sha256sum] = "29df50974a90987af694c0fb8926a6b366e68cacd8abd813817cfe1eb5d54524"
+SRC_URI += " file://0001-meson.build-correctly-set-internal-vapi-dependencies.patch"
+SRC_URI += " file://0001-meson-Make-sure-gcr-oids.h-is-built.patch"
+
+SRC_URI[archive.md5sum] = "adc65563b6b458507b9a578a8b68fb61"
+SRC_URI[archive.sha256sum] = "aaf9bed017a2263c6145c89a1a84178f9f40f238426463e4ae486694ef5f6601"
FILES_${PN} += " \
${datadir}/dbus-1 \
@@ -27,9 +32,3 @@ FILES_${PN} += " \
ARM_INSTRUCTION_SET_armv4 = "arm"
ARM_INSTRUCTION_SET_armv5 = "arm"
ARM_INSTRUCTION_SET_armv6 = "arm"
-
-# These files may be out of date or missing our fixes
-# libgcrypt.m4 in particular is calling into libgcrypt-config
-do_configure_prepend() {
- rm -f ${S}/build/m4/*
-}
diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.40.0.bb b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.40.0.bb
index 699c4ecd0b..3dec5ed052 100644
--- a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.40.0.bb
+++ b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.40.0.bb
@@ -5,7 +5,7 @@ loading (ie. animated GIFs)"
HOMEPAGE = "https://wiki.gnome.org/Projects/GdkPixbuf"
BUGTRACKER = "https://gitlab.gnome.org/GNOME/gdk-pixbuf/issues"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
file://gdk-pixbuf/gdk-pixbuf.h;endline=26;md5=72b39da7cbdde2e665329fef618e1d6b \
"
@@ -40,20 +40,20 @@ inherit meson pkgconfig gettext pixbufcache ptest-gnome upstream-version-is-even
GIR_MESON_OPTION = 'gir'
-EXTRA_OEMESON_append = " ${@bb.utils.contains('PTEST_ENABLED', '1', '-Dinstalled_tests=true', '-Dinstalled_tests=false', d)}"
-
LIBV = "2.10.0"
GDK_PIXBUF_LOADERS ?= "png jpeg"
-PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} ${GDK_PIXBUF_LOADERS}"
+PACKAGECONFIG = "${GDK_PIXBUF_LOADERS} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
PACKAGECONFIG_class-native = "${GDK_PIXBUF_LOADERS}"
PACKAGECONFIG[png] = "-Dpng=true,-Dpng=false,libpng"
PACKAGECONFIG[jpeg] = "-Djpeg=true,-Djpeg=false,jpeg"
PACKAGECONFIG[tiff] = "-Dtiff=true,-Dtiff=false,tiff"
PACKAGECONFIG[jpeg2000] = "-Djasper=true,-Djasper=false,jasper"
-
+PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false"
PACKAGECONFIG[x11] = "-Dx11=true,-Dx11=false,virtual/libx11"
PACKAGES =+ "${PN}-xlib"
@@ -99,6 +99,11 @@ do_install_append() {
}
+# Remove a bad fuzzing attempt that sporadically fails without a way to reproduce
+do_install_ptest() {
+ rm ${D}/${datadir}/installed-tests/gdk-pixbuf/pixbuf-randomly-modified.test
+}
+
do_install_append_class-native() {
find ${D}${libdir} -name "libpixbufloader-*.la" -exec rm \{\} \;
diff --git a/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch b/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch
index 372f144be0..5da3fbf6d8 100644
--- a/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch
+++ b/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch
@@ -1,4 +1,4 @@
-From 4409423752885f76326d05c1266698155f47c5f9 Mon Sep 17 00:00:00 2001
+From 0a867caa8803a78f7cf3a204c4c358bc63daaf28 Mon Sep 17 00:00:00 2001
From: Jussi Kukkonen <jussi.kukkonen@intel.com>
Date: Tue, 30 May 2017 14:55:49 +0300
Subject: [PATCH] Don't use AC_CANONICAL_HOST
@@ -14,12 +14,12 @@ Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
1 file changed, 1 deletion(-)
diff --git a/configure.ac b/configure.ac
-index 4a84501..52dbb8e 100644
+index e749112..58790e8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,6 @@ AC_PREREQ(2.53)
- AC_INIT([adwaita-icon-theme], [3.34.3],
+ AC_INIT([adwaita-icon-theme], [3.36.1],
[http://bugzilla.gnome.org/enter_bug.cgi?product=adwaita-icon-theme])
-AC_CANONICAL_HOST
AC_CONFIG_MACRO_DIR([m4])
diff --git a/meta/recipes-gnome/gnome/adwaita-icon-theme_3.34.3.bb b/meta/recipes-gnome/gnome/adwaita-icon-theme_3.36.1.bb
index 3a2727b701..2d78bea2c8 100644
--- a/meta/recipes-gnome/gnome/adwaita-icon-theme_3.34.3.bb
+++ b/meta/recipes-gnome/gnome/adwaita-icon-theme_3.36.1.bb
@@ -4,7 +4,9 @@ BUGTRACKER = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme/issues"
SECTION = "x11/gnome"
LICENSE = "LGPL-3.0 | CC-BY-SA-3.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c84cac88e46fc07647ea07e6c24eeb7c"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c84cac88e46fc07647ea07e6c24eeb7c \
+ file://COPYING_CCBYSA3;md5=96143d33de3a79321b1006c4e8ed07e7 \
+ file://COPYING_LGPL;md5=e6a600fd5e1d9cbde2d983680233ad02"
inherit allarch autotools pkgconfig gettext gtk-icon-cache upstream-version-is-even
@@ -14,8 +16,8 @@ SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \
file://0001-Run-installation-commands-as-shell-jobs.patch \
"
-SRC_URI[md5sum] = "9aea4ad9bc002aacad155ee0748b357f"
-SRC_URI[sha256sum] = "e7c2d8c259125d5f35ec09522b88c8fe7ecf625224ab0811213ef0a95d90b908"
+SRC_URI[md5sum] = "c61ca9d6b3ce70a9ab66dcff945923ff"
+SRC_URI[sha256sum] = "e498518627044dfd7db7d79a5b3d437848caf1991ef4ef036a2d3a2ac2c1f14d"
DEPENDS += "librsvg-native"
diff --git a/meta/recipes-gnome/gnome/gconf/python3.patch b/meta/recipes-gnome/gnome/gconf/python3.patch
new file mode 100644
index 0000000000..7c022a2e1b
--- /dev/null
+++ b/meta/recipes-gnome/gnome/gconf/python3.patch
@@ -0,0 +1,60 @@
+gconf: use python3
+
+Convert gsettings-schema-convert to use python3.
+
+Upstream-Status: Inappropriate [gconf is deprecated]
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+
+--- a/gsettings/gsettings-schema-convert
++++ b/gsettings/gsettings-schema-convert
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # vim: set ts=4 sw=4 et: coding=UTF-8
+ #
+ # Copyright (c) 2010, Novell, Inc.
+@@ -603,7 +603,7 @@ class SimpleSchemaParser:
+ for line in lines:
+ current_line_nb += 1
+ self.parse_line(line)
+- except GSettingsSchemaConvertException, e:
++ except GSettingsSchemaConvertException as e:
+ raise GSettingsSchemaConvertException('%s:%s: %s' % (os.path.basename(self.file), current_line_nb, e))
+
+ return self.root
+@@ -1095,7 +1095,7 @@ def main(args):
+ try:
+ parser = GConfSchemaParser(argfile, options.gettext_domain, options.schema_id, options.keep_underscores)
+ schema_root = parser.parse()
+- except SyntaxError, e:
++ except SyntaxError as e:
+ raise GSettingsSchemaConvertException('\'%s\' does not look like a valid gconf schema file: %s' % (argfile, e))
+ else:
+ # autodetect if file is XML or not
+@@ -1104,7 +1104,7 @@ def main(args):
+ schema_root = parser.parse()
+ if not options.simple and not options.xml:
+ options.simple = True
+- except SyntaxError, e:
++ except SyntaxError as e:
+ parser = SimpleSchemaParser(argfile)
+ schema_root = parser.parse()
+ if not options.simple and not options.xml:
+@@ -1127,13 +1127,13 @@ def main(args):
+ fout = open(options.output, 'w')
+ fout.write(output)
+ fout.close()
+- except GSettingsSchemaConvertException, e:
++ except GSettingsSchemaConvertException as e:
+ fout.close()
+ if os.path.exists(options.output):
+ os.unlink(options.output)
+ raise e
+
+- except GSettingsSchemaConvertException, e:
++ except GSettingsSchemaConvertException as e:
+ print >> sys.stderr, '%s' % e
+ return 1
+
diff --git a/meta/recipes-gnome/gnome/gconf_3.2.6.bb b/meta/recipes-gnome/gnome/gconf_3.2.6.bb
index b8466d4833..ff365551df 100644
--- a/meta/recipes-gnome/gnome/gconf_3.2.6.bb
+++ b/meta/recipes-gnome/gnome/gconf_3.2.6.bb
@@ -15,6 +15,7 @@ SRC_URI = "${GNOME_MIRROR}/GConf/${@gnome_verdir("${PV}")}/GConf-${PV}.tar.xz;na
file://remove_plus_from_invalid_characters_list.patch \
file://unable-connect-dbus.patch \
file://create_config_directory.patch \
+ file://python3.patch \
"
SRC_URI[archive.md5sum] = "2b16996d0e4b112856ee5c59130e822c"
@@ -52,6 +53,8 @@ FILES_${PN} += "${libdir}/GConf/* \
${datadir}/dbus-1/services/*.service \
${datadir}/dbus-1/system-services/*.service \
"
+RDEPENDS_${PN} = "python3-xml"
+
FILES_${PN}-dev += "${datadir}/sgml/gconf/gconf-1.0.dtd"
BBCLASSEXTEND = "native"
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Fix-build-reproducibility.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Fix-build-reproducibility.patch
deleted file mode 100644
index 9e1f79e881..0000000000
--- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Fix-build-reproducibility.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 59d2cbb54c012b25adeb965a94b6585d911a4539 Mon Sep 17 00:00:00 2001
-From: Joshua Watt <JPEWhacker@gmail.com>
-Date: Wed, 20 Nov 2019 09:03:47 -0600
-Subject: [PATCH] Fix build reproducibility
-
-ba744068 ("Make meson.override_find_program working on more complex use
-cases") made the build no longer reproducible by encoding a build system
-path into the output. This shouldn't be necessary anyway, since it
-should be possible to add new paths to search for gir files by setting
-the XDG_DATA_DIR environment variable.
-
-Closes #318
-
-Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gobject-introspection/merge_requests/192]
-Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
----
- girepository/girparser.c | 4 ----
- meson.build | 1 -
- 2 files changed, 5 deletions(-)
-
-diff --git a/girepository/girparser.c b/girepository/girparser.c
-index fb47e75c..53450baf 100644
---- a/girepository/girparser.c
-+++ b/girepository/girparser.c
-@@ -309,10 +309,6 @@ locate_gir (GIrParser *parser,
- if (g_file_test (path, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR))
- return path;
- g_free (path);
-- path = g_build_filename (UNINSTALLED_GIR_DIR, girname, NULL);
-- if (g_file_test (path, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR))
-- return path;
-- g_free (path);
- return NULL;
- }
-
-diff --git a/meson.build b/meson.build
-index d6231c5f..2f248579 100644
---- a/meson.build
-+++ b/meson.build
-@@ -90,7 +90,6 @@ endif
- girdir = join_paths(gir_dir_prefix, 'gir-1.0')
- config.set_quoted('GIR_DIR', girdir)
- config.set_quoted('GOBJECT_INTROSPECTION_LIBDIR', join_paths(get_option('prefix'), get_option('libdir')))
--config.set_quoted('UNINSTALLED_GIR_DIR', join_paths(meson.current_build_dir(), 'gir'))
-
- foreach type : ['char', 'short', 'int', 'long']
- size = cc.sizeof(type)
---
-2.23.0
-
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Port-cross-compilation-support-to-meson.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Port-cross-compilation-support-to-meson.patch
deleted file mode 100644
index 639f9c8f61..0000000000
--- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Port-cross-compilation-support-to-meson.patch
+++ /dev/null
@@ -1,163 +0,0 @@
-From 0417a1bb08745f2bf5310d20b342c2b3b9b212d3 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Thu, 15 Nov 2018 15:10:05 +0100
-Subject: [PATCH] Port cross-compilation support to meson
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- gir/meson.build | 62 ++++++++++++++++++++++++++++++++++-------------
- meson.build | 4 ++-
- meson_options.txt | 20 +++++++++++++++
- 3 files changed, 68 insertions(+), 18 deletions(-)
-
-diff --git a/gir/meson.build b/gir/meson.build
-index c312100..a028033 100644
---- a/gir/meson.build
-+++ b/gir/meson.build
-@@ -41,16 +41,29 @@ gir_files = [
- typelibdir = join_paths(get_option('libdir'), 'girepository-1.0')
- install_data(gir_files, install_dir: girdir)
-
--scanner_command = [
-- python,
-- girscanner,
-- '--output=@OUTPUT@',
-- '--no-libtool',
-- '--quiet',
-- '--reparse-validate',
-- '--add-include-path', join_paths(meson.current_build_dir()),
-- '--add-include-path', join_paths(meson.current_source_dir()),
--]
-+if get_option('enable-host-gi')
-+ scanner_command = [
-+ 'g-ir-scanner',
-+ '--output=@OUTPUT@',
-+ '--no-libtool',
-+ '--quiet',
-+ '--reparse-validate',
-+ '--add-include-path', join_paths(meson.current_build_dir()),
-+ '--add-include-path', join_paths(meson.current_source_dir()),
-+ ]
-+else
-+ scanner_command = [
-+ python,
-+ girscanner,
-+ '--output=@OUTPUT@',
-+ '--no-libtool',
-+ '--quiet',
-+ '--reparse-validate',
-+ '--add-include-path', join_paths(meson.current_build_dir()),
-+ '--add-include-path', join_paths(meson.current_source_dir()),
-+ ]
-+endif
-+
-
- dep_type = glib_dep.type_name()
- if dep_type == 'internal'
-@@ -63,6 +76,12 @@ if dep_type == 'internal'
- '--extra-library=glib-2.0', '--extra-library=gobject-2.0']
- endif
-
-+if get_option('enable-gi-cross-wrapper') != ''
-+ scanner_command += ['--use-binary-wrapper=' + get_option('enable-gi-cross-wrapper')]
-+endif
-+if get_option('enable-gi-ldd-wrapper') != ''
-+ scanner_command += ['--use-ldd-wrapper=' + get_option('enable-gi-ldd-wrapper')]
-+endif
- # Take a glob and print to newlines
- globber = '''
- from glob import glob
-@@ -89,8 +108,8 @@ glib_command = scanner_command + [
-
- if dep_type == 'pkgconfig'
- glib_command += ['--external-library', '--pkg=glib-2.0']
-- glib_libdir = glib_dep.get_pkgconfig_variable('libdir')
-- glib_incdir = join_paths(glib_dep.get_pkgconfig_variable('includedir'), 'glib-2.0')
-+ glib_libdir = get_option('pkgconfig-sysroot-path') + glib_dep.get_pkgconfig_variable('libdir')
-+ glib_incdir = get_option('pkgconfig-sysroot-path') + join_paths(glib_dep.get_pkgconfig_variable('includedir'), 'glib-2.0')
- glib_libincdir = join_paths(glib_libdir, 'glib-2.0', 'include')
- glib_files += join_paths(glib_incdir, 'gobject', 'glib-types.h')
- glib_files += join_paths(glib_libincdir, 'glibconfig.h')
-@@ -345,7 +364,7 @@ if giounix_dep.found()
- dep_type = giounix_dep.type_name()
- if dep_type == 'pkgconfig'
- gio_command += ['--pkg=gio-unix-2.0']
-- giounix_includedir = join_paths(giounix_dep.get_pkgconfig_variable('includedir'), 'gio-unix-2.0')
-+ giounix_includedir = get_option('pkgconfig-sysroot-path') + join_paths(giounix_dep.get_pkgconfig_variable('includedir'), 'gio-unix-2.0')
- # Get the installed gio-unix header list
- ret = run_command(python, '-c', globber.format(join_paths(giounix_includedir, 'gio', '*.h')))
- if ret.returncode() != 0
-@@ -428,15 +447,24 @@ gir_files += custom_target('gir-girepository',
- )
-
- typelibs = []
-+if get_option('enable-gi-cross-wrapper') != ''
-+ gircompiler_command = [get_option('enable-gi-cross-wrapper'), gircompiler.full_path(), '-o', '@OUTPUT@', '@INPUT@',
-+ '--includedir', meson.current_build_dir(),
-+ '--includedir', meson.current_source_dir(),
-+ ]
-+else
-+ gircompiler_command = [gircompiler, '-o', '@OUTPUT@', '@INPUT@',
-+ '--includedir', meson.current_build_dir(),
-+ '--includedir', meson.current_source_dir(),
-+ ]
-+endif
-+
- foreach gir : gir_files
- typelibs += custom_target('generate-typelib-@0@'.format(gir).underscorify(),
- input: gir,
- output: '@BASENAME@.typelib',
- depends: [gobject_gir, ],
-- command: [gircompiler, '-o', '@OUTPUT@', '@INPUT@',
-- '--includedir', meson.current_build_dir(),
-- '--includedir', meson.current_source_dir(),
-- ],
-+ command: gircompiler_command,
- install: true,
- install_dir: typelibdir,
- )
-diff --git a/meson.build b/meson.build
-index a5e825f..a28490a 100644
---- a/meson.build
-+++ b/meson.build
-@@ -168,7 +168,9 @@ endif
- subdir('girepository')
- subdir('tools')
- subdir('giscanner')
--subdir('gir')
-+if get_option('enable-introspection-data') == true
-+ subdir('gir')
-+endif
- subdir('examples')
- subdir('docs')
- subdir('tests')
-diff --git a/meson_options.txt b/meson_options.txt
-index 445a68a..a325511 100644
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -25,3 +25,23 @@ option('python', type: 'string', value: 'python3',
- option('gir_dir_prefix', type: 'string',
- description: 'Intermediate prefix for gir installation under ${prefix}'
- )
-+
-+option('enable-host-gi', type: 'boolean', value : false,
-+ description: 'Use gobject introspection tools installed in the host system (useful when cross-compiling)'
-+)
-+
-+option('enable-gi-cross-wrapper', type: 'string',
-+ description: 'Use a wrapper to run gicompiler and binaries produced by giscanner (useful when cross-compiling)'
-+)
-+
-+option('enable-gi-ldd-wrapper', type: 'string',
-+ description: 'Use a ldd wrapper instead of system ldd command in giscanner (useful when cross-compiling)'
-+)
-+
-+option('enable-introspection-data', type: 'boolean', value : true,
-+ description: 'Build introspection data (.gir and .typelib files) in addition to library and tools'
-+)
-+
-+option('pkgconfig-sysroot-path', type: 'string',
-+ description: 'Specify a sysroot path to prepend to pkgconfig output (useful when cross-compiling)'
-+)
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch
index a15401aeb2..9d6f5dea3c 100644
--- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch
+++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch
@@ -1,4 +1,4 @@
-From 673623851fb70c0e43cf79cef67b3751432ebe72 Mon Sep 17 00:00:00 2001
+From 8dfb44450ca9fffc15977e95eadcb7054ab60a9a Mon Sep 17 00:00:00 2001
From: Sascha Silbe <x-yo17@se-silbe.de>
Date: Fri, 8 Jun 2018 13:55:10 +0200
Subject: [PATCH] Relocate the repository directory for native builds
@@ -21,7 +21,7 @@ Signed-off-by: Sascha Silbe <x-yo17@se-silbe.de>
2 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/girepository/girepository.c b/girepository/girepository.c
-index ca5dc2b..7a4d17f 100644
+index b7948d6..39a2586 100644
--- a/girepository/girepository.c
+++ b/girepository/girepository.c
@@ -21,6 +21,8 @@
@@ -42,7 +42,7 @@ index ca5dc2b..7a4d17f 100644
/**
* SECTION:girepository
* @short_description: GObject Introspection repository manager
-@@ -212,9 +216,16 @@ init_globals (void)
+@@ -215,9 +219,16 @@ init_globals (void)
g_free (custom_dirs);
}
@@ -62,7 +62,7 @@ index ca5dc2b..7a4d17f 100644
typelib_search_path = g_slist_prepend (typelib_search_path, typelib_dir);
diff --git a/girepository/meson.build b/girepository/meson.build
-index 1d7aed6..5637fb5 100644
+index 204659f..3e61d31 100644
--- a/girepository/meson.build
+++ b/girepository/meson.build
@@ -44,7 +44,7 @@ girepo_internals_lib = static_library('girepository-internals',
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-gir-add-a-dependency-for-g-ir-compiler-for-building-.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-gir-add-a-dependency-for-g-ir-compiler-for-building-.patch
new file mode 100644
index 0000000000..fc37a5bb96
--- /dev/null
+++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-gir-add-a-dependency-for-g-ir-compiler-for-building-.patch
@@ -0,0 +1,33 @@
+From 56ba5656258b82dbc069ab3a61e597c931a16a83 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Wed, 17 Jun 2020 11:43:16 +0200
+Subject: [PATCH] gir: add a dependency for g-ir-compiler for building .girs
+
+meson inserts the dependency if the compiler is used directly, but
+fails to do so if the compiler is run through a wrapper. This leads
+to build race errors between building the compiler and using it.
+
+Fix provided by Quentin Schulz <quentin.schulz@streamunlimited.com>
+
+Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/228]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ gir/meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gir/meson.build b/gir/meson.build
+index b37fdb81..557e5517 100644
+--- a/gir/meson.build
++++ b/gir/meson.build
+@@ -448,7 +448,7 @@ foreach gir : gir_files
+ typelibs += custom_target('generate-typelib-@0@'.format(gir).underscorify(),
+ input: gir,
+ output: '@BASENAME@.typelib',
+- depends: [gobject_gir, ],
++ depends: [gobject_gir, gircompiler, ],
+ command: gircompiler_command,
+ install: true,
+ install_dir: typelibdir,
+--
+2.27.0
+
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-a-lib-dirs-envvar-option.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-a-lib-dirs-envvar-option.patch
deleted file mode 100644
index ddd955354d..0000000000
--- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-a-lib-dirs-envvar-option.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 6653c28f0b76aad86e26c512b03efcec6d9d9e95 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Wed, 3 Jan 2018 17:02:01 +0200
-Subject: [PATCH] giscanner: add a --lib-dirs-envvar option
-
-By default LD_LIBRARY_PATH is set to the list of target library paths;
-this breaks down in cross-compilation environment, as we need to run a
-native emulation wrapper rather than the target binary itself. This patch
-allows exporting those paths to a different environment variable
-which can be picked up and used by the wrapper.
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- giscanner/ccompiler.py | 4 ++--
- giscanner/dumper.py | 3 ++-
- giscanner/scannermain.py | 3 +++
- 3 files changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/giscanner/ccompiler.py b/giscanner/ccompiler.py
-index 32c9296..3fb262b 100644
---- a/giscanner/ccompiler.py
-+++ b/giscanner/ccompiler.py
-@@ -174,7 +174,7 @@ class CCompiler(object):
-
- self._cflags_no_deprecation_warnings = "-Wno-deprecated-declarations"
-
-- def get_internal_link_flags(self, args, libtool, libraries, extra_libraries, libpaths):
-+ def get_internal_link_flags(self, args, libtool, libraries, extra_libraries, libpaths, lib_dirs_envvar):
- # An "internal" link is where the library to be introspected
- # is being built in the current directory.
-
-@@ -184,7 +184,7 @@ class CCompiler(object):
- if os.name == 'nt':
- runtime_path_envvar = ['LIB', 'PATH']
- else:
-- runtime_path_envvar = ['LD_LIBRARY_PATH', 'DYLD_FALLBACK_LIBRARY_PATH']
-+ runtime_path_envvar = ['LD_LIBRARY_PATH', 'DYLD_FALLBACK_LIBRARY_PATH'] if not lib_dirs_envvar else [lib_dirs_envvar]
- # Search the current directory first
- # (This flag is not supported nor needed for Visual C++)
- args.append('-L.')
-diff --git a/giscanner/dumper.py b/giscanner/dumper.py
-index 2b851a5..10a7c39 100644
---- a/giscanner/dumper.py
-+++ b/giscanner/dumper.py
-@@ -244,7 +244,8 @@ class DumpCompiler(object):
- libtool,
- self._options.libraries,
- self._options.extra_libraries,
-- self._options.library_paths)
-+ self._options.library_paths,
-+ self._options.lib_dirs_envvar)
- args.extend(pkg_config_libs)
-
- else:
-diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py
-index 9013562..9c9fe12 100644
---- a/giscanner/scannermain.py
-+++ b/giscanner/scannermain.py
-@@ -126,6 +126,9 @@ def _get_option_parser():
- parser.add_option("", "--use-ldd-wrapper",
- action="store", dest="ldd_wrapper", default=None,
- help="wrapper to use instead of ldd (useful when cross-compiling)")
-+ parser.add_option("", "--lib-dirs-envvar",
-+ action="store", dest="lib_dirs_envvar", default=None,
-+ help="environment variable to write a list of library directories to (for running the transient binary), instead of standard LD_LIBRARY_PATH")
- parser.add_option("", "--program-arg",
- action="append", dest="program_args", default=[],
- help="extra arguments to program")
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-meson.build-disable-tests-when-cross-compiling.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-meson.build-disable-tests-when-cross-compiling.patch
deleted file mode 100644
index c4951b22bb..0000000000
--- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-meson.build-disable-tests-when-cross-compiling.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 2c384187cc22113c0c9b1cd233948118f7c085ef Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Mon, 25 Mar 2019 13:28:48 +0100
-Subject: [PATCH] meson.build: disable tests when cross-compiling
-
-Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gobject-introspection/merge_requests/64]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- meson.build | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index 2544ff3..4c16fe5 100644
---- a/meson.build
-+++ b/meson.build
-@@ -168,7 +168,9 @@ if get_option('enable-introspection-data') == true
- endif
- subdir('examples')
- subdir('docs')
--subdir('tests')
-+if not meson.is_cross_build()
-+ subdir('tests')
-+endif
-
- install_data('Makefile.introspection', install_dir: join_paths(get_option('datadir'), 'gobject-introspection-1.0'))
- install_data('m4/introspection.m4', install_dir: join_paths(get_option('datadir'), 'aclocal'))
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0003-giscanner-add-use-binary-wrapper-option.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0003-giscanner-add-use-binary-wrapper-option.patch
deleted file mode 100644
index b954dcebd8..0000000000
--- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0003-giscanner-add-use-binary-wrapper-option.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 5f985fd8a24764ccb38af6335d4584d7e33fc3a1 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Mon, 19 Oct 2015 18:26:40 +0300
-Subject: [PATCH] giscanner: add --use-binary-wrapper option
-
-With this option, giscanner will use a wrapper executable to run
-binaries it's producing, instead of running them directly. This
-is useful when binaries are cross-compiled and cannot be run directly,
-but they can be run using for example QEMU emulation.
-
-Upstream-Status: Pending [review on oe-core list]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- giscanner/scannermain.py | 14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
-diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py
-index c004fb1..0b6a2d2 100644
---- a/giscanner/scannermain.py
-+++ b/giscanner/scannermain.py
-@@ -120,6 +120,9 @@ def _get_option_parser():
- parser.add_option("", "--program",
- action="store", dest="program", default=None,
- help="program to execute")
-+ parser.add_option("", "--use-binary-wrapper",
-+ action="store", dest="wrapper", default=None,
-+ help="wrapper to use for running programs (useful when cross-compiling)")
- parser.add_option("", "--program-arg",
- action="append", dest="program_args", default=[],
- help="extra arguments to program")
-@@ -417,6 +420,17 @@ def create_binary(transformer, options, args):
- gdump_parser.get_error_quark_functions())
-
- shlibs = resolve_shlibs(options, binary, options.libraries)
-+ if options.wrapper:
-+ # The wrapper needs the binary itself, not the libtool wrapper script,
-+ # so we check if libtool has sneaked the binary into .libs subdirectory
-+ # and adjust the path accordingly
-+ import os.path
-+ dir_name, binary_name = os.path.split(binary.args[0])
-+ libtool_binary = os.path.join(dir_name, '.libs', binary_name)
-+ if os.path.exists(libtool_binary):
-+ binary.args[0] = libtool_binary
-+ # Then prepend the wrapper to the command line to execute
-+ binary.args = [options.wrapper] + binary.args
- gdump_parser.set_introspection_binary(binary)
- gdump_parser.parse()
- return shlibs
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0004-giscanner-add-a-use-ldd-wrapper-option.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0004-giscanner-add-a-use-ldd-wrapper-option.patch
deleted file mode 100644
index 79264ed086..0000000000
--- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0004-giscanner-add-a-use-ldd-wrapper-option.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From cba7807888a4a1f1d630d16c51c89859209334b3 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Fri, 30 Oct 2015 16:28:46 +0200
-Subject: [PATCH] giscanner: add a --use-ldd-wrapper option
-
-This is useful in cross-compile environments where system's ldd
-command does not work on binaries built for a different architecture
-
-Upstream-Status: Pending [review in oe-core]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- giscanner/scannermain.py | 3 +++
- giscanner/shlibs.py | 4 +++-
- 2 files changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py
-index 0b6a2d2..9013562 100644
---- a/giscanner/scannermain.py
-+++ b/giscanner/scannermain.py
-@@ -123,6 +123,9 @@ def _get_option_parser():
- parser.add_option("", "--use-binary-wrapper",
- action="store", dest="wrapper", default=None,
- help="wrapper to use for running programs (useful when cross-compiling)")
-+ parser.add_option("", "--use-ldd-wrapper",
-+ action="store", dest="ldd_wrapper", default=None,
-+ help="wrapper to use instead of ldd (useful when cross-compiling)")
- parser.add_option("", "--program-arg",
- action="append", dest="program_args", default=[],
- help="extra arguments to program")
-diff --git a/giscanner/shlibs.py b/giscanner/shlibs.py
-index 2c61f2f..d67df95 100644
---- a/giscanner/shlibs.py
-+++ b/giscanner/shlibs.py
-@@ -96,7 +96,9 @@ def _resolve_non_libtool(options, binary, libraries):
- args.extend(libtool)
- args.append('--mode=execute')
- platform_system = platform.system()
-- if platform_system == 'Darwin':
-+ if options.ldd_wrapper:
-+ args.extend([options.ldd_wrapper, binary.args[0]])
-+ elif platform_system == 'Darwin':
- args.extend(['otool', '-L', binary.args[0]])
- else:
- args.extend(['ldd', binary.args[0]])
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch
deleted file mode 100644
index 26f8da6d41..0000000000
--- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 740d91151ffe576e0c08513af9d7bc8133eb9dfb Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Thu, 8 Oct 2015 18:30:35 +0300
-Subject: [PATCH] Prefix pkg-config paths with PKG_CONFIG_SYSROOT_DIR
- environment variable
-
-This environment variable sets the location of sysroot directory in cross-compilation
-environments; if the variable is not set, the prefix will be empty.
-
-Upstream-Status: Pending [review on oe-core list]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- m4/introspection.m4 | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/m4/introspection.m4 b/m4/introspection.m4
-index d89c3d9..b562266 100644
---- a/m4/introspection.m4
-+++ b/m4/introspection.m4
-@@ -56,14 +56,14 @@ m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
- INTROSPECTION_GIRDIR=
- INTROSPECTION_TYPELIBDIR=
- if test "x$found_introspection" = "xyes"; then
-- INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
-- INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
-- INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
-+ INTROSPECTION_SCANNER=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
-+ INTROSPECTION_COMPILER=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
-+ INTROSPECTION_GENERATE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
- INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
- INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
- INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
- INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
-- INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
-+ INTROSPECTION_MAKEFILE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
- fi
- AC_SUBST(INTROSPECTION_SCANNER)
- AC_SUBST(INTROSPECTION_COMPILER)
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.62.0.bb b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.64.1.bb
index b1371776af..4d80f00e10 100644
--- a/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.62.0.bb
+++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.64.1.bb
@@ -14,18 +14,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c434e8128a68bedd59b80b2ac1eb1c4a \
"
SRC_URI = "${GNOME_MIRROR}/${BPN}/${@oe.utils.trim_version("${PV}", 2)}/${BPN}-${PV}.tar.xz \
- file://0003-giscanner-add-use-binary-wrapper-option.patch \
- file://0004-giscanner-add-a-use-ldd-wrapper-option.patch \
- file://0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch \
- file://0001-giscanner-add-a-lib-dirs-envvar-option.patch \
file://0001-giscanner-ignore-error-return-codes-from-ldd-wrapper.patch \
- file://0001-Port-cross-compilation-support-to-meson.patch \
- file://0001-meson.build-disable-tests-when-cross-compiling.patch \
- file://0001-Fix-build-reproducibility.patch \
+ file://0001-gir-add-a-dependency-for-g-ir-compiler-for-building-.patch \
"
-SRC_URI[md5sum] = "37278eab3704e42234b6080b8cf241f1"
-SRC_URI[sha256sum] = "b1ee7ed257fdbc008702bdff0ff3e78a660e7e602efa8f211dc89b9d1e7d90a2"
+SRC_URI[md5sum] = "3419dfd086efcf83768e0579ab6abd2b"
+SRC_URI[sha256sum] = "80beae6728c134521926affff9b2e97125749b38d38744dc901f4010ee3e7fa7"
SRC_URI_append_class-native = " file://0001-Relocate-the-repository-directory-for-native-builds.patch"
@@ -49,16 +43,16 @@ export STAGING_DIR_HOST
export B
PACKAGECONFIG ?= ""
-PACKAGECONFIG[doctool] = "-Ddoctool=true,-Ddoctool=false,python3-mako,"
+PACKAGECONFIG[doctool] = "-Ddoctool=enabled,-Ddoctool=disabled,python3-mako,"
# Configure target build to use native tools of itself and to use a qemu wrapper
# and optionally to generate introspection data
EXTRA_OEMESON_class-target = " \
- -Denable-host-gi=true \
- -Denable-gi-cross-wrapper=${B}/g-ir-scanner-qemuwrapper \
- -Denable-gi-ldd-wrapper=${B}/g-ir-scanner-lddwrapper \
- -Dpkgconfig-sysroot-path=${PKG_CONFIG_SYSROOT_DIR} \
- ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Denable-introspection-data=true', '-Denable-introspection-data=false', d)} \
+ -Dgi_cross_use_host_gi=true \
+ -Dgi_cross_binary_wrapper=${B}/g-ir-scanner-qemuwrapper \
+ -Dgi_cross_ldd_wrapper=${B}/g-ir-scanner-lddwrapper \
+ -Dgi_cross_pkgconfig_sysroot_path=${PKG_CONFIG_SYSROOT_DIR} \
+ ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Dbuild_introspection_data=true', '-Dbuild_introspection_data=false', d)} \
${@'-Dgir_dir_prefix=${libdir}' if d.getVar('MULTILIBS') else ''} \
"
@@ -137,6 +131,11 @@ do_compile_prepend() {
export GIR_EXTRA_LIBS_PATH=$B/.libs
}
+do_install_prepend() {
+ # This prevents g-ir-scanner from writing cache data to $HOME
+ export GI_SCANNER_DISABLE_CACHE=1
+}
+
# Our wrappers need to be available system-wide, because they will be used
# to build introspection files for all other gobject-based packages
do_install_append_class-target() {
diff --git a/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.34.0.bb b/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.36.1.bb
index eea578bb6b..f54b242e73 100644
--- a/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.34.0.bb
+++ b/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.36.1.bb
@@ -13,6 +13,6 @@ GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase gsettings gobject-introspection gettext upstream-version-is-even
-SRC_URI[archive.md5sum] = "9759ef53fb2e53fc8d19190e58f2c332"
-SRC_URI[archive.sha256sum] = "288b04260f7040b0e004a8d59c773cfb4e32df4f1b4a0f9d705c51afccc95ead"
+SRC_URI[archive.md5sum] = "708ddd8dec388ebda5539667604197c3"
+SRC_URI[archive.sha256sum] = "004bdbe43cf8290f2de7d8537e14d8957610ca479a4fa368e34dbd03f03ec9d9"
SRC_URI += "file://0001-Do-not-skip-gir-installation-for-cross-compiling.patch"
diff --git a/meta/recipes-gnome/gtk+/gtk+3.inc b/meta/recipes-gnome/gtk+/gtk+3.inc
index e1f1e0db31..8d5edb7ee8 100644
--- a/meta/recipes-gnome/gtk+/gtk+3.inc
+++ b/meta/recipes-gnome/gtk+/gtk+3.inc
@@ -1,3 +1,4 @@
+
SUMMARY = "Multi-platform toolkit for creating GUIs"
DESCRIPTION = "GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete \
set of widgets, GTK+ is suitable for projects ranging from small one-off projects to complete application suites."
@@ -31,13 +32,19 @@ do_configure_prepend() {
ln -s ${TARGET_PREFIX}libtool libtool
#delete a file that will get confused with generated one in ${B}
rm -f ${S}/gtk/gtktypefuncs.c
+
+ # These files are generated by wayland-scanner but will race over modification
+ # time between the copies in the sysroot from wayland-protocols and the copy
+ # in the source tree. Solve the race by deleting so they need to be regenerated.
+ # 3.24.22 will not be shipping these files so this can be deleted then:
+ # https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/2183
+ rm -f ${S}/modules/input/text-input-unstable-v3*.[ch]
}
EXTRA_OECONF += " \
--disable-glibtest \
--disable-xinerama \
--enable-modules \
- --disable-colord \
${@bb.utils.contains("DISTRO_FEATURES", "x11", "", "--disable-gtk-doc", d)} \
"
@@ -47,6 +54,8 @@ do_compile_prepend() {
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl wayland x11', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'glx', '', d)}"
+PACKAGECONFIG_class-native = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
+PACKAGECONFIG_class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
PACKAGECONFIG[x11] = "--enable-x11-backend,--disable-x11-backend,at-spi2-atk fontconfig libx11 libxext libxcursor libxi libxdamage libxrandr libxrender libxcomposite libxfixes"
# this is provided by oe-core patch that removes epoxy/gl dependency from a X11 build
@@ -54,6 +63,8 @@ PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,libepoxy"
PACKAGECONFIG[glx] = "--enable-glx,--disable-glx,,libgl"
PACKAGECONFIG[wayland] = "--enable-wayland-backend,--disable-wayland-backend,wayland wayland-protocols libxkbcommon virtual/egl virtual/libgles2 wayland-native"
PACKAGECONFIG[cups] = "--enable-cups,--disable-cups,cups"
+PACKAGECONFIG[cloudprint] = "--enable-cloudprint,--disable-cloudprint,rest json-glib"
+PACKAGECONFIG[colord] = "--enable-colord,--disable-colord,colord"
prepare_gtk_scripts() {
mv ${D}${bindir}/gtk-update-icon-cache ${D}${bindir}/gtk-update-icon-cache-3.0
@@ -103,6 +114,7 @@ FILES_${PN}_append = " ${bindir}/gtk-update-icon-cache-3.0 \
FILES_${PN}-dev += " \
${datadir}/gtk-3.0/gtkbuilder.rng \
${datadir}/gtk-3.0/include \
+ ${datadir}/gtk-3.0/valgrind \
${datadir}/gettext/its \
${libdir}/gtk-3.0/include \
${libdir}/gtk-3.0/${LIBV}/loaders/*.la \
diff --git a/meta/recipes-gnome/gtk+/gtk+3/sort-resources.patch b/meta/recipes-gnome/gtk+/gtk+3/sort-resources.patch
deleted file mode 100644
index 7f87372c52..0000000000
--- a/meta/recipes-gnome/gtk+/gtk+3/sort-resources.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-If the resources file isn't sorted in some way then libgdk.so will differ
-depending on the inode order of the resource files.
-
-Upstream-Status: Pending
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-diff --git a/gdk/Makefile.am b/gdk/Makefile.am
-index e25b57ba50..26f2d57c6e 100644
---- a/gdk/Makefile.am
-+++ b/gdk/Makefile.am
-@@ -465,7 +465,7 @@ stamp-gc-h: $(top_builddir)/config.status
- # Resources
- #
-
--glsl_sources := $(wildcard $(srcdir)/resources/glsl/*.glsl)
-+glsl_sources := $(sort $(wildcard $(srcdir)/resources/glsl/*.glsl))
-
- gdk.gresource.xml: Makefile.am
- $(AM_V_GEN) echo "<?xml version='1.0' encoding='UTF-8'?>" > $@; \
diff --git a/meta/recipes-gnome/gtk+/gtk+3_3.24.13.bb b/meta/recipes-gnome/gtk+/gtk+3_3.24.22.bb
index 025d8870e2..6af2bd94c1 100644
--- a/meta/recipes-gnome/gtk+/gtk+3_3.24.13.bb
+++ b/meta/recipes-gnome/gtk+/gtk+3_3.24.22.bb
@@ -7,10 +7,8 @@ SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar
file://0002-Do-not-try-to-initialize-GL-without-libGL.patch \
file://0003-Add-disable-opengl-configure-option.patch \
file://link_fribidi.patch \
- file://sort-resources.patch \
- "
-SRC_URI[md5sum] = "f65515e7bfa2199bd2188e871d69c686"
-SRC_URI[sha256sum] = "4c775c38cf1e3c534ef0ca52ca6c7a890fe169981af66141c713e054e68930a9"
+ "
+SRC_URI[sha256sum] = "bf18a4a5dff28a7b02aaef1b949c2d09c96c18387eddab152bb4cd55a5b67dda"
S = "${WORKDIR}/gtk+-${PV}"
diff --git a/meta/recipes-gnome/gtk-doc/gtk-doc_1.32.bb b/meta/recipes-gnome/gtk-doc/gtk-doc_1.32.bb
index 50d4d99722..1eaf370ab0 100644
--- a/meta/recipes-gnome/gtk-doc/gtk-doc_1.32.bb
+++ b/meta/recipes-gnome/gtk-doc/gtk-doc_1.32.bb
@@ -36,6 +36,17 @@ do_configure_prepend() {
sed -i -e 's,^JH_CHECK_XML_CATALOG.*,,' ${S}/configure.ac
}
+do_install_append () {
+ # configure values for python3 and pkg-config encoded in scripts
+ for fn in ${bindir}/gtkdoc-depscan \
+ ${bindir}/gtkdoc-mkhtml2 \
+ ${datadir}/gtk-doc/python/gtkdoc/config.py; do
+ sed -e 's,${RECIPE_SYSROOT_NATIVE}/usr/bin/pkg-config,${bindir}/pkg-config,' \
+ -e 's,${HOSTTOOLS_DIR}/python3,${bindir}/python3,' \
+ -i ${D}$fn
+ done
+}
+
FILES_${PN} += "${datadir}/sgml"
FILES_${PN}-dev += "${libdir}/cmake"
FILES_${PN}-doc = ""
@@ -48,3 +59,4 @@ gtkdoc_makefiles_sysroot_preprocess() {
-e "s|GTKDOC_RUN =.*|GTKDOC_RUN = \$(top_builddir)/gtkdoc-qemuwrapper|" \
${SYSROOT_DESTDIR}${datadir}/gtk-doc/data/gtk-doc*make
}
+
diff --git a/meta/recipes-gnome/json-glib/json-glib/0001-scanner-use-macro-instead-of-cast-to-convert-pointer.patch b/meta/recipes-gnome/json-glib/json-glib/0001-scanner-use-macro-instead-of-cast-to-convert-pointer.patch
new file mode 100644
index 0000000000..2a834b674d
--- /dev/null
+++ b/meta/recipes-gnome/json-glib/json-glib/0001-scanner-use-macro-instead-of-cast-to-convert-pointer.patch
@@ -0,0 +1,33 @@
+From d60fcd5bd5c2675e4342775b910a2ea48ec0eccb Mon Sep 17 00:00:00 2001
+From: Dimitry Andric <dim@FreeBSD.org>
+Date: Wed, 19 Aug 2020 03:35:16 +0000
+Subject: [PATCH] scanner: use macro instead of cast to convert pointer to integer
+
+Clang 11 build failed due to a new warning (part of -Werror=pointer-to-int-cast):
+../json-glib/json-scanner.c:928:13: error: cast to smaller integer type 'GTokenType' from 'gpointer' (aka 'void *') [-Werror,-Wvoid-pointer-to-enum-cast]
+ *token_p = (GTokenType) value_p->v_symbol;
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/json-glib/-/commit/8c5fabe962b7337066dac7a697d23fce257a5d64]
+Signed-off-by: Jan Beich <jbeich@FreeBSD.org>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ json-glib/json-scanner.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/json-glib/json-scanner.c b/json-glib/json-scanner.c
+index 0c9919f..59dd29c 100644
+--- a/json-glib/json-scanner.c
++++ b/json-glib/json-scanner.c
+@@ -925,7 +925,7 @@ json_scanner_get_token_i (JsonScanner *scanner,
+
+ case G_TOKEN_SYMBOL:
+ if (scanner->config->symbol_2_token)
+- *token_p = (GTokenType) value_p->v_symbol;
++ *token_p = GPOINTER_TO_INT (value_p->v_symbol);
+ break;
+
+ case G_TOKEN_BINARY:
+--
+2.28.0
+
diff --git a/meta/recipes-gnome/json-glib/json-glib_1.4.4.bb b/meta/recipes-gnome/json-glib/json-glib_1.4.4.bb
index 5143d73ed7..add9ff41a1 100644
--- a/meta/recipes-gnome/json-glib/json-glib_1.4.4.bb
+++ b/meta/recipes-gnome/json-glib/json-glib_1.4.4.bb
@@ -12,9 +12,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
DEPENDS = "glib-2.0"
GNOMEBASEBUILDCLASS = "meson"
-inherit gnomebase lib_package gobject-introspection gtk-doc gettext ptest-gnome manpages
+inherit gnomebase lib_package gobject-introspection gtk-doc gettext ptest-gnome manpages upstream-version-is-even
-SRC_URI += "file://run-ptest"
+SRC_URI += "file://run-ptest \
+ file://0001-scanner-use-macro-instead-of-cast-to-convert-pointer.patch \
+"
SRC_URI[archive.md5sum] = "4d4bb9837f6d31e32d0ce658ae135f68"
SRC_URI[archive.sha256sum] = "720c5f4379513dc11fd97dc75336eb0c0d3338c53128044d9fabec4374f4bc47"
diff --git a/meta/recipes-gnome/libdazzle/libdazzle_3.34.1.bb b/meta/recipes-gnome/libdazzle/libdazzle_3.36.0.bb
index 1c8b2c86e0..25ccee2e29 100644
--- a/meta/recipes-gnome/libdazzle/libdazzle_3.34.1.bb
+++ b/meta/recipes-gnome/libdazzle/libdazzle_3.36.0.bb
@@ -12,8 +12,8 @@ inherit gnomebase upstream-version-is-even vala features_check gobject-introspec
DEPENDS = "glib-2.0-native glib-2.0 gtk+3"
-SRC_URI[archive.md5sum] = "e796a92dd3f529616ed388c15208359b"
-SRC_URI[archive.sha256sum] = "3d981cbb9d9bb87bfaff7bfd44d9847223b3ef81e69225e4d1f6ac725a669505"
+SRC_URI[archive.md5sum] = "154be45a6aac020e7d59f477bd7cafcf"
+SRC_URI[archive.sha256sum] = "82b31bbf550fc62970c78bf7f9d55e5fae5b8ea13b24fe2d13c8c6039409d958"
GIR_MESON_OPTION = 'with_introspection'
diff --git a/meta/recipes-gnome/libhandy/libhandy_git.bb b/meta/recipes-gnome/libhandy/libhandy_git.bb
new file mode 100644
index 0000000000..9f74014640
--- /dev/null
+++ b/meta/recipes-gnome/libhandy/libhandy_git.bb
@@ -0,0 +1,21 @@
+SUMMARY = "A library full of GTK+ widgets for mobile phones"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = "git://gitlab.gnome.org/GNOME/${BPN}.git;protocol=https"
+SRCREV = "7a193d7692c9c76a1a94f17c4d30b585f77d177c"
+S = "${WORKDIR}/git"
+PV = "0.0.13"
+
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+GTKDOC_MESON_OPTION = 'gtk_doc'
+
+inherit meson gobject-introspection vala gettext gtk-doc features_check
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+DEPENDS += "gtk+3"
+
+PACKAGES =+ "${PN}-examples"
+FILES_${PN}-examples = "${bindir}"
diff --git a/meta/recipes-gnome/libnotify/libnotify_0.7.8.bb b/meta/recipes-gnome/libnotify/libnotify_0.7.9.bb
index 0306b04f4e..29a28272e1 100644
--- a/meta/recipes-gnome/libnotify/libnotify_0.7.8.bb
+++ b/meta/recipes-gnome/libnotify/libnotify_0.7.9.bb
@@ -7,12 +7,18 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
DEPENDS = "dbus gtk+3 glib-2.0"
+GNOMEBASEBUILDCLASS = "meson"
+GTKDOC_MESON_OPTION = "gtk_doc"
+GIR_MESON_ENABLE_FLAG = "enabled"
+GIR_MESON_DISABLE_FLAG = "disabled"
inherit gnomebase gtk-doc features_check gobject-introspection
# depends on gtk+3
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-SRC_URI[archive.md5sum] = "babb4b07b5f21bef42a386d3d7019599"
-SRC_URI[archive.sha256sum] = "69209e0b663776a00c7b6c0e560302a8dbf66b2551d55616304f240bba66e18c"
+SRC_URI[archive.md5sum] = "ccd9c53364174cc8d13e18a1988faa76"
+SRC_URI[archive.sha256sum] = "66c0517ed16df7af258e83208faaf5069727dfd66995c4bbc51c16954d674761"
+
+EXTRA_OEMESON = "-Dman=false"
# there were times, we had two versions of libnotify (oe-core libnotify:0.6.x /
# meta-gnome libnotify3: 0.7.x)
diff --git a/meta/recipes-gnome/librsvg/librsvg_2.40.20.bb b/meta/recipes-gnome/librsvg/librsvg_2.40.21.bb
index 6dd0533a5d..acdbc1f1b3 100644
--- a/meta/recipes-gnome/librsvg/librsvg_2.40.20.bb
+++ b/meta/recipes-gnome/librsvg/librsvg_2.40.21.bb
@@ -14,7 +14,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
SECTION = "x11/utils"
DEPENDS = "cairo gdk-pixbuf glib-2.0 libcroco libxml2 pango"
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
inherit gnomebase gtk-doc pixbufcache upstream-version-is-even gobject-introspection
@@ -23,8 +23,7 @@ SRC_URI += "file://gtk-option.patch \
file://0001-Remove-non-reproducible-SRCDIR.patch \
"
-SRC_URI[archive.md5sum] = "4949d313b0c5d9161a5c259104af5568"
-SRC_URI[archive.sha256sum] = "cff4dd3c3b78bfe99d8fcfad3b8ba1eee3289a0823c0e118d78106be6b84c92b"
+SRC_URI[archive.sha256sum] = "f7628905f1cada84e87e2b14883ed57d8094dca3281d5bcb24ece4279e9a92ba"
CACHED_CONFIGUREVARS = "ac_cv_path_GDK_PIXBUF_QUERYLOADERS=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders"
diff --git a/meta/recipes-gnome/libsecret/files/0001-meson-add-option-introspection.patch b/meta/recipes-gnome/libsecret/files/0001-meson-add-option-introspection.patch
new file mode 100644
index 0000000000..51ee66f42b
--- /dev/null
+++ b/meta/recipes-gnome/libsecret/files/0001-meson-add-option-introspection.patch
@@ -0,0 +1,137 @@
+meson: add option introspection
+
+Add an option 'introspection' for meson which could control whether
+build GIR files or not.
+
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/libsecret/-/merge_requests/53]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ libsecret/meson.build | 86 ++++++++++++++++++++++---------------------
+ meson.build | 1 +
+ meson_options.txt | 1 +
+ 3 files changed, 46 insertions(+), 42 deletions(-)
+
+diff --git a/libsecret/meson.build b/libsecret/meson.build
+index 759b5ef..2ee8850 100644
+--- a/libsecret/meson.build
++++ b/libsecret/meson.build
+@@ -104,50 +104,52 @@ libsecret_dep = declare_dependency(
+ )
+
+ # GObject Introspection
+-libsecret_gir_sources = [
+- 'secret-attributes.c',
+- 'secret-attributes.h',
+- 'secret-backend.c',
+- 'secret-backend.h',
+- 'secret-collection.c',
+- 'secret-collection.h',
+- 'secret-item.c',
+- 'secret-item.h',
+- 'secret-methods.c',
+- 'secret-password.c',
+- 'secret-password.h',
+- 'secret-paths.c',
+- 'secret-paths.h',
+- 'secret-prompt.c',
+- 'secret-prompt.h',
+- 'secret-retrievable.c',
+- 'secret-retrievable.h',
+- 'secret-schema.c',
+- 'secret-schema.h',
+- 'secret-schemas.c',
+- 'secret-schemas.h',
+- 'secret-service.c',
+- 'secret-service.h',
+- 'secret-types.h',
+- 'secret-value.c',
+- 'secret-value.h',
+-]
+-libsecret_gir_sources += version_h
+-libsecret_gir_sources += _enums_generated
+-
+-libsecret_gir = gnome.generate_gir(libsecret,
+- sources: libsecret_gir_sources,
+- namespace: 'Secret',
+- nsversion: api_version_major,
+- export_packages: 'libsecret-@0@'.format(api_version_major),
+- includes: [ 'GObject-2.0', 'Gio-2.0' ],
+- header: 'libsecret/secret.h',
+- extra_args: [ '-D SECRET_COMPILATION'],
+- install: true,
+-)
++if with_gir
++ libsecret_gir_sources = [
++ 'secret-attributes.c',
++ 'secret-attributes.h',
++ 'secret-backend.c',
++ 'secret-backend.h',
++ 'secret-collection.c',
++ 'secret-collection.h',
++ 'secret-item.c',
++ 'secret-item.h',
++ 'secret-methods.c',
++ 'secret-password.c',
++ 'secret-password.h',
++ 'secret-paths.c',
++ 'secret-paths.h',
++ 'secret-prompt.c',
++ 'secret-prompt.h',
++ 'secret-retrievable.c',
++ 'secret-retrievable.h',
++ 'secret-schema.c',
++ 'secret-schema.h',
++ 'secret-schemas.c',
++ 'secret-schemas.h',
++ 'secret-service.c',
++ 'secret-service.h',
++ 'secret-types.h',
++ 'secret-value.c',
++ 'secret-value.h',
++ ]
++ libsecret_gir_sources += version_h
++ libsecret_gir_sources += _enums_generated
++
++ libsecret_gir = gnome.generate_gir(libsecret,
++ sources: libsecret_gir_sources,
++ namespace: 'Secret',
++ nsversion: api_version_major,
++ export_packages: 'libsecret-@0@'.format(api_version_major),
++ includes: [ 'GObject-2.0', 'Gio-2.0' ],
++ header: 'libsecret/secret.h',
++ extra_args: [ '-D SECRET_COMPILATION'],
++ install: true,
++ )
++endif
+
+ # Vapi
+-if with_vapi
++if with_vapi and with_gir
+ libsecret_vapi = gnome.generate_vapi('libsecret-@0@'.format(api_version_major),
+ sources: libsecret_gir[0],
+ metadata_dirs: meson.source_root() / 'libsecret',
+diff --git a/meson.build b/meson.build
+index a26d046..d22e008 100644
+--- a/meson.build
++++ b/meson.build
+@@ -22,6 +22,7 @@ with_gcrypt = get_option('gcrypt')
+ enable_debug = get_option('debugging')
+ with_vapi = get_option('vapi')
+ with_gtkdoc = get_option('gtk_doc')
++with_gir = get_option('introspection')
+
+ # Some variables
+ config_h_dir = include_directories('.')
+diff --git a/meson_options.txt b/meson_options.txt
+index c1fda5d..445aeb0 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -3,3 +3,4 @@ option('gcrypt', type: 'boolean', value: true, description: 'With gcrypt and tra
+ option('debugging', type: 'boolean', value: false, description: 'Turn debugging on/off')
+ option('vapi', type: 'boolean', value: true, description: 'Create VAPI file.')
+ option('gtk_doc', type: 'boolean', value: true, description: 'Build reference documentation using gtk-doc')
++option('introspection', type: 'boolean', value: true, description: 'Create GIR file.')
+--
+2.17.1
+
diff --git a/meta/recipes-gnome/libsecret/libsecret_0.20.1.bb b/meta/recipes-gnome/libsecret/libsecret_0.20.3.bb
index 72511af02d..533015a1e4 100644
--- a/meta/recipes-gnome/libsecret/libsecret_0.20.1.bb
+++ b/meta/recipes-gnome/libsecret/libsecret_0.20.3.bb
@@ -7,21 +7,22 @@ LICENSE = "LGPLv2.1"
BUGTRACKER = "https://gitlab.gnome.org/GNOME/libsecret/issues"
LIC_FILES_CHKSUM = "file://COPYING;md5=23c2a5e0106b99d75238986559bb5fc6"
+GNOMEBASEBUILDCLASS = "meson"
+
inherit gnomebase gtk-doc vala gobject-introspection manpages
DEPENDS += "glib-2.0 libgcrypt gettext-native"
-PACKAGECONFIG[manpages] = "--enable-manpages, --disable-manpages, libxslt-native xmlto-native"
+SRC_URI += "file://0001-meson-add-option-introspection.patch"
+
+SRC_URI[archive.md5sum] = "47c3fdfeb111a87b509ad271e4a6f496"
+SRC_URI[archive.sha256sum] = "4fcb3c56f8ac4ab9c75b66901fb0104ec7f22aa9a012315a14c0d6dffa5290e4"
-SRC_URI[archive.md5sum] = "d2dd660a8d502099317bc8af9f30302e"
-SRC_URI[archive.sha256sum] = "57f73e94ec6263a17a077fb809cf8cf424637a897a7f15b4eec42ce4aef52447"
+GTKDOC_MESON_OPTION = 'gtk_doc'
+
+PACKAGECONFIG[manpages] = "-Dmanpage=true,-Dmanpage=false,libxslt-native xmlto-native"
# http://errors.yoctoproject.org/Errors/Details/20228/
ARM_INSTRUCTION_SET_armv4 = "arm"
ARM_INSTRUCTION_SET_armv5 = "arm"
ARM_INSTRUCTION_SET_armv6 = "arm"
-
-# vapigen.m4 bundled with the tarball does not yet have our cross-compilation fixes
-do_configure_prepend() {
- rm -f ${S}/build/m4/vapigen.m4
-}
diff --git a/meta/recipes-graphics/cairo/cairo_1.16.0.bb b/meta/recipes-graphics/cairo/cairo_1.16.0.bb
index b772c2ece2..68f993d7ca 100644
--- a/meta/recipes-graphics/cairo/cairo_1.16.0.bb
+++ b/meta/recipes-graphics/cairo/cairo_1.16.0.bb
@@ -23,7 +23,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=e73e999e0c72b5ac9012424fa157ad77"
DEPENDS = "fontconfig glib-2.0 libpng pixman zlib"
SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.xz \
- file://cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff \
+ file://cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff \
file://CVE-2018-19876.patch \
file://CVE-2019-6461.patch \
file://CVE-2019-6462.patch \
@@ -42,6 +42,8 @@ PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)} \
trace"
+PACKAGECONFIG_class-native = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)}"
+PACKAGECONFIG_class-nativesdk = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)}"
PACKAGECONFIG[x11] = "--with-x=yes -enable-xlib,--with-x=no --disable-xlib,${X11DEPENDS}"
PACKAGECONFIG[xcb] = "--enable-xcb,--disable-xcb,libxcb"
@@ -68,8 +70,10 @@ do_install_append () {
rm -rf ${D}${libdir}/cairo/cairo-sphinx*
rm -rf ${D}${libdir}/cairo/.debug/cairo-fdr*
rm -rf ${D}${libdir}/cairo/.debug/cairo-sphinx*
- rmdir -p --ignore-fail-on-non-empty ${D}${bindir}
- rmdir -p --ignore-fail-on-non-empty ${D}${libdir}/cairo
+ [ ! -d ${D}${bindir} ] ||
+ rmdir -p --ignore-fail-on-non-empty ${D}${bindir}
+ [ ! -d ${D}${libdir}/cairo ] ||
+ rmdir -p --ignore-fail-on-non-empty ${D}${libdir}/cairo
}
PACKAGES =+ "cairo-gobject cairo-script-interpreter cairo-perf-utils"
diff --git a/meta/recipes-graphics/clutter/clutter-1.0.inc b/meta/recipes-graphics/clutter/clutter-1.0.inc
index 5dc45ebf21..80472178be 100644
--- a/meta/recipes-graphics/clutter/clutter-1.0.inc
+++ b/meta/recipes-graphics/clutter/clutter-1.0.inc
@@ -11,7 +11,7 @@ REQUIRED_DISTRO_FEATURES ?= "opengl"
DEPENDS = "pango glib-2.0 json-glib atk udev cogl-1.0"
PACKAGE_BEFORE_PN += "${PN}-examples"
-AUTOTOOLS_AUXDIR = "${S}/build"
+AUTOTOOLS_AUXDIR = "${S}/build-aux"
EDEPENDS_X11 = "virtual/libx11 libxi libxfixes"
EDEPENDS_GLX = "virtual/libgl"
@@ -24,11 +24,11 @@ ERDEPENDS_EVDEV = "xkeyboard-config"
# Disable pretty much everything, override in platform specific set up
EXTRA_OECONF += "--disable-quartz-backend \
--disable-win32-backend \
- --disable-gdk-backend \
--disable-cex100-backend \
--disable-tslib-input \
"
+PACKAGECONFIG[gdk] = "--enable-gdk-backend,--disable-gdk-backend,gtk+3"
PACKAGECONFIG[x11] = "--enable-x11-backend,--disable-x11-backend,${EDEPENDS_X11}"
PACKAGECONFIG[glx] = ",,${EDEPENDS_X11} ${EDEPENDS_GLX}"
PACKAGECONFIG[egl] = "--enable-egl-backend,--disable-egl-backend,${EDEPENDS_EGL}"
@@ -37,7 +37,7 @@ PACKAGECONFIG[wayland] = "--enable-wayland-backend,--disable-wayland-backend,${E
PACKAGECONFIG[wayland-compositor] = "--enable-wayland-compositor,--disable-wayland-compositor,wayland"
# Default configuration, distros might want to override
-PACKAGECONFIG ??= "egl \
+PACKAGECONFIG ??= "egl gdk \
${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glx x11', '', d)}"
diff --git a/meta/recipes-graphics/clutter/clutter-1.0/run-installed-tests-with-tap-output.patch b/meta/recipes-graphics/clutter/clutter-1.0/run-installed-tests-with-tap-output.patch
index f5c18c5828..fef82eaf92 100644
--- a/meta/recipes-graphics/clutter/clutter-1.0/run-installed-tests-with-tap-output.patch
+++ b/meta/recipes-graphics/clutter/clutter-1.0/run-installed-tests-with-tap-output.patch
@@ -1,4 +1,4 @@
-From 668e1d14af13249384ab324c7d79ec4147f07e48 Mon Sep 17 00:00:00 2001
+From d6ceb5a44b28e0e50ede22b84984d8516897de4b Mon Sep 17 00:00:00 2001
From: Jussi Kukkonen <jussi.kukkonen@intel.com>
Date: Mon, 27 Apr 2015 20:12:33 +0300
Subject: [PATCH] Run installed tests with tap output
@@ -9,14 +9,15 @@ gnome-desktop-testing-runner properly interprets the results.
Upstream-Status: Pending
Signed-off-by: Tim Orling <TicoTimo@gmail.com>
+
---
- build/autotools/glib-tap.mk | 3 ++-
+ build-aux/autotools/glib-tap.mk | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
-diff --git a/build/autotools/glib-tap.mk b/build/autotools/glib-tap.mk
-index 7c5f82b..844e17e 100644
---- a/build/autotools/glib-tap.mk
-+++ b/build/autotools/glib-tap.mk
+diff --git a/build-aux/autotools/glib-tap.mk b/build-aux/autotools/glib-tap.mk
+index a4f0dad..51cfa31 100644
+--- a/build-aux/autotools/glib-tap.mk
++++ b/build-aux/autotools/glib-tap.mk
@@ -127,7 +127,8 @@ installed_test_meta_DATA = $(installed_testcases:=.test)
%.test: %$(EXEEXT) Makefile
$(AM_V_GEN) (echo '[Test]' > $@.tmp; \
@@ -27,6 +28,3 @@ index 7c5f82b..844e17e 100644
mv $@.tmp $@)
CLEANFILES += $(installed_test_meta_DATA)
---
-2.1.4
-
diff --git a/meta/recipes-graphics/clutter/clutter-1.0_1.26.2.bb b/meta/recipes-graphics/clutter/clutter-1.0_1.26.4.bb
index 48b050198a..ee549fbdd5 100644
--- a/meta/recipes-graphics/clutter/clutter-1.0_1.26.2.bb
+++ b/meta/recipes-graphics/clutter/clutter-1.0_1.26.4.bb
@@ -2,8 +2,8 @@ require clutter-1.0.inc
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-SRC_URI[archive.md5sum] = "a03482cbacf735eca8c996f210a21ee5"
-SRC_URI[archive.sha256sum] = "e7233314983055e9018f94f56882e29e7fc34d8d35de030789fdcd9b2d0e2e56"
+SRC_URI[archive.md5sum] = "624dd776a5159de0267587b1df6b97b2"
+SRC_URI[archive.sha256sum] = "8b48fac159843f556d0a6be3dbfc6b083fc6d9c58a20a49a6b4919ab4263c4e6"
SRC_URI += "file://install-examples.patch \
file://run-installed-tests-with-tap-output.patch \
file://0001-Remove-clutter.types-as-it-is-build-configuration-sp.patch \
diff --git a/meta/recipes-graphics/cogl/cogl-1.0.inc b/meta/recipes-graphics/cogl/cogl-1.0.inc
index d8d06651da..d581ad1c04 100644
--- a/meta/recipes-graphics/cogl/cogl-1.0.inc
+++ b/meta/recipes-graphics/cogl/cogl-1.0.inc
@@ -3,7 +3,7 @@ DESCRIPTION = "Cogl is a small open source library for using 3D graphics \
hardware for rendering. The API departs from the flat state machine style of \
OpenGL and is designed to make it easy to write orthogonal components that \
can render without stepping on each others toes."
-HOMEPAGE = "http://wiki.clutter-project.org/wiki/Cogl"
+HOMEPAGE = "https://gitlab.gnome.org/GNOME/cogl"
LICENSE = "MIT"
inherit clutter features_check upstream-version-is-even gobject-introspection
@@ -21,7 +21,7 @@ EDEPENDS_GL = "virtual/libgl libdrm"
EDEPENDS_GLES2 = "virtual/libgles2"
EDEPENDS_KMS = "libdrm virtual/egl"
EDEPENDS_EGL = "virtual/egl"
-EDEPENDS_X11 = "virtual/libx11 libxcomposite libxfixes libxi libxrandr"
+EDEPENDS_X11 = "virtual/libx11 libxcomposite libxdamage libxfixes libxrandr"
EDEPENDS_WAYLAND = "virtual/egl virtual/libgles2 wayland"
# Extra RDEPENDS for PACKAGECONFIG
diff --git a/meta/recipes-graphics/cogl/cogl-1.0/0001-configure.ac-don-t-require-eglmesaext.h.patch b/meta/recipes-graphics/cogl/cogl-1.0/0001-configure.ac-don-t-require-eglmesaext.h.patch
new file mode 100644
index 0000000000..328984a63f
--- /dev/null
+++ b/meta/recipes-graphics/cogl/cogl-1.0/0001-configure.ac-don-t-require-eglmesaext.h.patch
@@ -0,0 +1,92 @@
+From bb9765a926588ebfe1eb324fbbe8fc22d419eebe Mon Sep 17 00:00:00 2001
+From: Max Krummenacher <max.krummenacher@toradex.com>
+Date: Thu, 25 Jun 2020 11:27:40 +0000
+Subject: [PATCH] configure.ac: don't require eglmesaext.h
+
+E.g. the Vivante EGL implementation does not provide eglmesaext.h.
+
+The commit moves the check for header file existence outside of the
+check for existence of a egl packageconfig and makes the existence
+of eglmesaext.h optional.
+
+fixes commit fb1acfec ("Fix building against libglvnd-provided EGL headers")
+Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
+
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/28]
+Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
+---
+ configure.ac | 51 ++++++++++++++++++++++++++++++++-------------------
+ 1 file changed, 32 insertions(+), 19 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b7ba95d..0d1d8de 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1212,22 +1212,6 @@ AS_IF([test "x$NEED_EGL" = "xyes" && test "x$EGL_CHECKED" != "xyes"],
+ PKG_CHECK_EXISTS([egl],
+ [COGL_PKG_REQUIRES="$COGL_PKG_REQUIRES egl"],
+ [
+- AC_CHECK_HEADERS(
+- [EGL/egl.h],
+- [],
+- [AC_MSG_ERROR([Unable to locate required EGL headers])])
+- AC_CHECK_HEADERS(
+- [EGL/eglext.h],
+- [],
+- [AC_MSG_ERROR([Unable to locate required EGL headers])],
+- [#include <EGL/egl.h>])
+- AC_CHECK_HEADERS(
+- [EGL/eglmesaext.h],
+- [],
+- [AC_MSG_ERROR([Unable to locate required EGL headers])],
+- [#include <EGL/egl.h>
+-#include <EGL/eglext.h>])
+-
+ AC_CHECK_LIB(EGL, [eglInitialize],
+ [COGL_EXTRA_LDFLAGS="$COGL_EXTRA_LDFLAGS -lEGL"],
+ [AC_MSG_ERROR([Unable to locate required EGL library])])
+@@ -1236,9 +1220,38 @@ AS_IF([test "x$NEED_EGL" = "xyes" && test "x$EGL_CHECKED" != "xyes"],
+ ]
+ )
+
+- COGL_EGL_INCLUDES="#include <EGL/egl.h>
+-#include <EGL/eglext.h>
+-#include <EGL/eglmesaext.h>"
++dnl Test for the existence of egl headers.
++dnl egl*.h includes eglplatform.h which on __unix__ defaults to a X11 platform.
++dnl In that case AC_CHECK_HEADERS failes if X11 headers are not available.
++dnl Set the usual include guard define and, if the EGL implementation doesn't
++dnl use that guard fall back to USE_OZONE and EGL_NO_X11 platforms which don't
++dnl require additional headers.
++ AC_CHECK_HEADERS(
++ [EGL/egl.h],
++ [COGL_EGL_INCLUDES="#include <EGL/egl.h>"],
++ [AC_MSG_ERROR([Unable to locate required EGL headers])],
++ [#define __egl_h_
++ #define USE_OZONE
++ #define EGL_NO_X11])
++ AC_CHECK_HEADERS(
++ [EGL/eglext.h],
++ [COGL_EGL_INCLUDES="$COGL_EGL_INCLUDES
++#include <EGL/eglext.h>"],
++ [AC_MSG_ERROR([Unable to locate required EGL headers])],
++ [#define __eglext_h_
++ #define USE_OZONE
++ #define EGL_NO_X11
++$COGL_EGL_INCLUDES])
++ AC_CHECK_HEADERS(
++ [EGL/eglmesaext.h],
++ [COGL_EGL_INCLUDES="$COGL_EGL_INCLUDES
++#include <EGL/eglmesaext.h>"],
++ [],
++ [#define __eglmesaext_h_
++#define USE_OZONE
++#define EGL_NO_X11
++$COGL_EGL_INCLUDES])
++
+ AC_SUBST([COGL_EGL_INCLUDES])
+ ])
+
+--
+2.20.1
+
diff --git a/meta/recipes-graphics/cogl/cogl-1.0_1.22.4.bb b/meta/recipes-graphics/cogl/cogl-1.0_1.22.4.bb
deleted file mode 100644
index 8e61c19f5d..0000000000
--- a/meta/recipes-graphics/cogl/cogl-1.0_1.22.4.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require cogl-1.0.inc
-
-SRC_URI[archive.md5sum] = "31755015a865c4af51ac84f6e53af8ab"
-SRC_URI[archive.sha256sum] = "5217bf94cbca3df63268a3b79d017725382b9e592b891d1e7dc6212590ce0de0"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=1b1a508d91d25ca607c83f92f3e31c84"
diff --git a/meta/recipes-graphics/cogl/cogl-1.0_1.22.8.bb b/meta/recipes-graphics/cogl/cogl-1.0_1.22.8.bb
new file mode 100644
index 0000000000..b9446fab38
--- /dev/null
+++ b/meta/recipes-graphics/cogl/cogl-1.0_1.22.8.bb
@@ -0,0 +1,6 @@
+require cogl-1.0.inc
+
+SRC_URI += "file://0001-configure.ac-don-t-require-eglmesaext.h.patch"
+SRC_URI[archive.sha256sum] = "a805b2b019184710ff53d0496f9f0ce6dcca420c141a0f4f6fcc02131581d759"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=1b1a508d91d25ca607c83f92f3e31c84"
diff --git a/meta/recipes-graphics/drm/files/0001-xf86drm.c-fix-build-failure.patch b/meta/recipes-graphics/drm/files/0001-xf86drm.c-fix-build-failure.patch
new file mode 100644
index 0000000000..60c996ca85
--- /dev/null
+++ b/meta/recipes-graphics/drm/files/0001-xf86drm.c-fix-build-failure.patch
@@ -0,0 +1,87 @@
+From c7d89412884de2dbfa543720d185027377e62f21 Mon Sep 17 00:00:00 2001
+From: Heiko Thiery <heiko.thiery@gmail.com>
+Date: Fri, 5 Jun 2020 23:46:52 +0200
+Subject: [PATCH] xf86drm.c: fix build failure
+
+./xf86drm.c: In function 'drmNodeIsDRM':
+../xf86drm.c:2825:7: error: "__FreeBSD__" is not defined [-Werror=undef]
+ #elif __FreeBSD__
+ ^
+../xf86drm.c: In function 'drmGetMinorNameForFD':
+../xf86drm.c:2938:7: error: "__FreeBSD__" is not defined [-Werror=undef]
+ #elif __FreeBSD__
+ ^
+../xf86drm.c: In function 'drmParsePciBusInfo':
+../xf86drm.c:3258:7: error: "__FreeBSD__" is not defined [-Werror=undef]
+ #elif __FreeBSD__
+ ^
+../xf86drm.c: In function 'drmParsePciDeviceInfo':
+../xf86drm.c:3427:7: error: "__FreeBSD__" is not defined [-Werror=undef]
+ #elif __FreeBSD__
+ ^
+../xf86drm.c: In function 'drmGetDeviceNameFromFd2':
+../xf86drm.c:4305:7: error: "__FreeBSD__" is not defined [-Werror=undef]
+ #elif __FreeBSD__
+ ^
+
+Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
+
+Upstream-Status: Backport
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+
+---
+ xf86drm.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/xf86drm.c b/xf86drm.c
+index 07a18c4..50a6f09 100644
+--- a/xf86drm.c
++++ b/xf86drm.c
+@@ -2822,7 +2822,7 @@ static bool drmNodeIsDRM(int maj, int min)
+ snprintf(path, sizeof(path), "/sys/dev/char/%d:%d/device/drm",
+ maj, min);
+ return stat(path, &sbuf) == 0;
+-#elif __FreeBSD__
++#elif defined(__FreeBSD__)
+ char name[SPECNAMELEN];
+
+ if (!devname_r(makedev(maj, min), S_IFCHR, name, sizeof(name)))
+@@ -2935,7 +2935,7 @@ static char *drmGetMinorNameForFD(int fd, int type)
+
+ closedir(sysdir);
+ return NULL;
+-#elif __FreeBSD__
++#elif defined(__FreeBSD__)
+ struct stat sbuf;
+ char dname[SPECNAMELEN];
+ const char *mname;
+@@ -3255,7 +3255,7 @@ static int drmParsePciBusInfo(int maj, int min, drmPciBusInfoPtr info)
+ info->func = pinfo.func;
+
+ return 0;
+-#elif __FreeBSD__
++#elif defined(__FreeBSD__)
+ return get_sysctl_pci_bus_info(maj, min, info);
+ #else
+ #warning "Missing implementation of drmParsePciBusInfo"
+@@ -3424,7 +3424,7 @@ static int drmParsePciDeviceInfo(int maj, int min,
+ device->subdevice_id = pinfo.subdevice_id;
+
+ return 0;
+-#elif __FreeBSD__
++#elif defined(__FreeBSD__)
+ drmPciBusInfo info;
+ struct pci_conf_io pc;
+ struct pci_match_conf patterns[1];
+@@ -4302,7 +4302,7 @@ drm_public char *drmGetDeviceNameFromFd2(int fd)
+ free(value);
+
+ return strdup(path);
+-#elif __FreeBSD__
++#elif defined(__FreeBSD__)
+ return drmGetDeviceNameFromFd(fd);
+ #else
+ struct stat sbuf;
+--
+1.8.3.1
+
diff --git a/meta/recipes-graphics/drm/libdrm/musl-ioctl.patch b/meta/recipes-graphics/drm/libdrm/musl-ioctl.patch
deleted file mode 100644
index e3d6c5b853..0000000000
--- a/meta/recipes-graphics/drm/libdrm/musl-ioctl.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-Upstream-Status: Submitted
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From 46c0fd6c827a8cb4d04e067bf04fab579ac4712e Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@intel.com>
-Date: Mon, 18 Jun 2018 15:07:03 +0100
-Subject: [PATCH] tests/nouveau/threaded: adapt ioctl signature
-
-POSIX says ioctl() has the signature (int, int, ...) but glibc has decided to
-use (int, unsigned long int, ...) instead.
-
-Use a #ifdef to adapt the replacement function as appropriate.
----
- tests/nouveau/threaded.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/tests/nouveau/threaded.c b/tests/nouveau/threaded.c
-index 3669bcd3..e1c27c01 100644
---- a/tests/nouveau/threaded.c
-+++ b/tests/nouveau/threaded.c
-@@ -36,7 +36,11 @@ static int failed;
-
- static int import_fd;
-
-+#ifdef __GLIBC__
- int ioctl(int fd, unsigned long request, ...)
-+#else
-+int ioctl(int fd, int request, ...)
-+#endif
- {
- va_list va;
- int ret;
---
-2.11.0
-
diff --git a/meta/recipes-graphics/drm/libdrm_2.4.100.bb b/meta/recipes-graphics/drm/libdrm_2.4.102.bb
index 4859425672..ad512d14a9 100644
--- a/meta/recipes-graphics/drm/libdrm_2.4.100.bb
+++ b/meta/recipes-graphics/drm/libdrm_2.4.102.bb
@@ -10,10 +10,10 @@ LIC_FILES_CHKSUM = "file://xf86drm.c;beginline=9;endline=32;md5=c8a3b961af7667c5
PROVIDES = "drm"
DEPENDS = "libpthread-stubs"
-SRC_URI = "http://dri.freedesktop.org/libdrm/${BP}.tar.bz2 \
- file://musl-ioctl.patch"
-SRC_URI[md5sum] = "f47bc87e28198ba527e6b44ffdd62f65"
-SRC_URI[sha256sum] = "c77cc828186c9ceec3e56ae202b43ee99eb932b4a87255038a80e8a1060d0a5d"
+SRC_URI = "http://dri.freedesktop.org/libdrm/${BP}.tar.xz \
+ file://0001-xf86drm.c-fix-build-failure.patch "
+
+SRC_URI[sha256sum] = "8bcbf9336c28e393d76c1f16d7e79e394a7fce8a2e929d52d3ad7ad8525ba05b"
inherit meson pkgconfig manpages
diff --git a/meta/recipes-graphics/freetype/freetype_2.10.1.bb b/meta/recipes-graphics/freetype/freetype_2.10.2.bb
index b179a0ed47..1034ddc0d7 100644
--- a/meta/recipes-graphics/freetype/freetype_2.10.1.bb
+++ b/meta/recipes-graphics/freetype/freetype_2.10.2.bb
@@ -15,8 +15,8 @@ LIC_FILES_CHKSUM = "file://docs/LICENSE.TXT;md5=4af6221506f202774ef74f64932878a1
SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/${BPN}/${BP}.tar.xz \
file://use-right-libtool.patch \
"
-SRC_URI[md5sum] = "bd42e75127f8431923679480efb5ba8f"
-SRC_URI[sha256sum] = "16dbfa488a21fe827dc27eaf708f42f7aa3bb997d745d31a19781628c36ba26f"
+SRC_URI[md5sum] = "7c0d5a39f232d7eb9f9d7da76bf08074"
+SRC_URI[sha256sum] = "1543d61025d2e6312e0a1c563652555f17378a204a61e99928c9fcef030a2d8b"
UPSTREAM_CHECK_REGEX = "freetype-(?P<pver>\d+(\.\d+)+)"
@@ -27,7 +27,7 @@ AUTOTOOLS_SCRIPT_PATH = "${S}/builds/unix"
CONFIGURE_SCRIPT = "${S}/configure"
EXTRA_AUTORECONF += "--exclude=autoheader --exclude=automake"
-PACKAGECONFIG ??= "zlib"
+PACKAGECONFIG ??= "zlib pixmap"
PACKAGECONFIG[bzip2] = "--with-bzip2,--without-bzip2,bzip2"
# harfbuzz results in a circular dependency so enabling is non-trivial
diff --git a/meta/recipes-graphics/glew/glew/0001-Fixed-compilation-with-current-mesa-versions.patch b/meta/recipes-graphics/glew/glew/0001-Fixed-compilation-with-current-mesa-versions.patch
deleted file mode 100644
index 64f3e2fd9b..0000000000
--- a/meta/recipes-graphics/glew/glew/0001-Fixed-compilation-with-current-mesa-versions.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From 7f65a36866f4e24dd1446fe1c9d21424f28bcabd Mon Sep 17 00:00:00 2001
-From: Deve <deveee@gmail.com>
-Date: Wed, 14 Nov 2018 21:07:29 +0100
-Subject: [PATCH] Fixed compilation with current mesa versions.
-
-As you can see in
-https://cgit.freedesktop.org/mesa/mesa/tree/include/GL/glext.h
-now the file uses __gl_glext_h_ instead of __glext_h_
-It's precisely caused by commit f7d42ee7d319256608ad60778f6787c140badada
-
-Backoprt notes:
-
-* The original patch adjusts auto/src/glew_head.h only
-* include/GL/glew.h is not part of git repo and gets created on tarball
- creation
-
-=> patch include/GL/glew.h either to cause the desired fix
-
-Upstream-Status: Backport [1]
-
-[1] https://github.com/nigels-com/glew/commit/7f65a36866f4e24dd1446fe1c9d21424f28bcabd
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- auto/src/glew_head.h | 3 ++-
- include/GL/glew.h | 3 ++-
- 2 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/auto/src/glew_head.h b/auto/src/glew_head.h
-index c19cefb..8f313d9 100644
---- a/auto/src/glew_head.h
-+++ b/auto/src/glew_head.h
-@@ -14,7 +14,7 @@
- #if defined(__REGAL_H__)
- #error Regal.h included before glew.h
- #endif
--#if defined(__glext_h_) || defined(__GLEXT_H_)
-+#if defined(__glext_h_) || defined(__GLEXT_H_) || defined(__gl_glext_h_)
- #error glext.h included before glew.h
- #endif
- #if defined(__gl_ATI_h_)
-@@ -30,6 +30,7 @@
- #define __X_GL_H
- #define __glext_h_
- #define __GLEXT_H_
-+#define __gl_glext_h_
- #define __gl_ATI_h_
-
- #if defined(_WIN32)
-diff --git a/include/GL/glew.h b/include/GL/glew.h
-index b5b6987..a9f9e4b 100644
---- a/include/GL/glew.h
-+++ b/include/GL/glew.h
-@@ -93,7 +93,7 @@
- #if defined(__REGAL_H__)
- #error Regal.h included before glew.h
- #endif
--#if defined(__glext_h_) || defined(__GLEXT_H_)
-+#if defined(__glext_h_) || defined(__GLEXT_H_) || defined(__gl_glext_h_)
- #error glext.h included before glew.h
- #endif
- #if defined(__gl_ATI_h_)
-@@ -109,6 +109,7 @@
- #define __X_GL_H
- #define __glext_h_
- #define __GLEXT_H_
-+#define __gl_glext_h_
- #define __gl_ATI_h_
-
- #if defined(_WIN32)
---
-2.20.1
-
diff --git a/meta/recipes-graphics/glew/glew_2.1.0.bb b/meta/recipes-graphics/glew/glew_2.2.0.bb
index f6f43406f8..8948444e08 100644
--- a/meta/recipes-graphics/glew/glew_2.1.0.bb
+++ b/meta/recipes-graphics/glew/glew_2.2.0.bb
@@ -6,11 +6,10 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2ac251558de685c6b9478d89be3149c2"
SRC_URI = "${SOURCEFORGE_MIRROR}/project/glew/glew/${PV}/glew-${PV}.tgz \
- file://no-strip.patch \
- file://0001-Fixed-compilation-with-current-mesa-versions.patch"
+ file://no-strip.patch"
-SRC_URI[md5sum] = "b2ab12331033ddfaa50dc39345343980"
-SRC_URI[sha256sum] = "04de91e7e6763039bc11940095cd9c7f880baba82196a7765f727ac05a993c95"
+SRC_URI[md5sum] = "3579164bccaef09e36c0af7f4fd5c7c7"
+SRC_URI[sha256sum] = "d4fc82893cfb00109578d0a1a2337fb8ca335b3ceccf97b97e5cc7f08e4353e1"
UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/glew/files/glew"
UPSTREAM_CHECK_REGEX = "/glew/(?P<pver>(\d+[\.\-_]*)+)/"
@@ -22,8 +21,8 @@ REQUIRED_DISTRO_FEATURES = "opengl"
PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'opengl', 'egl-gles2', d)}"
# The opengl and egl-XXX options are exclusive, enable only one.
-PACKAGECONFIG[opengl] = "SYSTEM='linux',,virtual/libx11 virtual/libgl libglu libxext libxi libxmu"
-PACKAGECONFIG[egl-gles2] = "SYSTEM='linux-egl' GLEW_NO_GLU='-DGLEW_NO_GLU' LDFLAGS.GL='-lEGL -lGLESv2',,virtual/egl virtual/libgles2"
+PACKAGECONFIG[opengl] = "SYSTEM='linux',,virtual/libx11 virtual/libgl libglu libxext libxi libxmu,,,egl-gles2"
+PACKAGECONFIG[egl-gles2] = "SYSTEM='linux-egl' GLEW_NO_GLU='-DGLEW_NO_GLU' LDFLAGS.GL='-lEGL -lGLESv2',,virtual/egl virtual/libgles2,,,opengl"
CFLAGS += "-D_GNU_SOURCE"
# Override SYSTEM (via PACKAGECONFIG_CONFARGS) to avoid calling config.guess,
diff --git a/meta/recipes-graphics/harfbuzz/harfbuzz/0001-Do-not-disable-introspection-in-cross-builds.patch b/meta/recipes-graphics/harfbuzz/harfbuzz/0001-Do-not-disable-introspection-in-cross-builds.patch
new file mode 100644
index 0000000000..d00656fc88
--- /dev/null
+++ b/meta/recipes-graphics/harfbuzz/harfbuzz/0001-Do-not-disable-introspection-in-cross-builds.patch
@@ -0,0 +1,27 @@
+From df5848f423ec0f4b3e519900014349a0c00b1969 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 17 Aug 2020 16:36:03 +0200
+Subject: [PATCH] Do not disable introspection in cross builds.
+
+Yocto can and does support introspection cross builds, through
+running target binaries under qemu emulation.
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ src/meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/meson.build b/src/meson.build
+index 1865633..5e1787c 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -634,7 +634,7 @@ if have_gobject
+ gir = find_program('g-ir-scanner', required: get_option('introspection'))
+ build_gir = gir.found()
+
+- build_gir = build_gir and not meson.is_cross_build()
++ build_gir = build_gir
+ if not build_gir and get_option('introspection').enabled()
+ error('Introspection support is requested but it isn\'t available in cross builds')
+ endif
diff --git a/meta/recipes-graphics/harfbuzz/harfbuzz/0001-src-hb-gobject-enums.cc.tmpl-write-out-only-the-file.patch b/meta/recipes-graphics/harfbuzz/harfbuzz/0001-src-hb-gobject-enums.cc.tmpl-write-out-only-the-file.patch
new file mode 100644
index 0000000000..d9fccfac0e
--- /dev/null
+++ b/meta/recipes-graphics/harfbuzz/harfbuzz/0001-src-hb-gobject-enums.cc.tmpl-write-out-only-the-file.patch
@@ -0,0 +1,28 @@
+From f316b794265f28e89821dfab0772caac1bb6b056 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Tue, 18 Aug 2020 10:31:47 +0000
+Subject: [PATCH] src/hb-gobject-enums.cc.tmpl: write out only the filename,
+ not the full path
+
+This is beneficial for reproducible builds, as build paths can vary
+between builds.
+
+Upstream-Status: Backport [https://github.com/harfbuzz/harfbuzz/commit/e876886d1e877ad90b6f02badefd6ebee1bc0b09]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ src/hb-gobject-enums.cc.tmpl | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/hb-gobject-enums.cc.tmpl b/src/hb-gobject-enums.cc.tmpl
+index 2ffd1c9..87a11dd 100644
+--- a/src/hb-gobject-enums.cc.tmpl
++++ b/src/hb-gobject-enums.cc.tmpl
+@@ -43,7 +43,7 @@
+ /*** END file-header ***/
+
+ /*** BEGIN file-production ***/
+-/* enumerations from "@filename@" */
++/* enumerations from "@basename@" */
+ /*** END file-production ***/
+
+ /*** BEGIN file-tail ***/
diff --git a/meta/recipes-graphics/harfbuzz/harfbuzz/version-race.patch b/meta/recipes-graphics/harfbuzz/harfbuzz/version-race.patch
new file mode 100644
index 0000000000..2d692f36b5
--- /dev/null
+++ b/meta/recipes-graphics/harfbuzz/harfbuzz/version-race.patch
@@ -0,0 +1,121 @@
+Upstream-Status: Backport [https://github.com/harfbuzz/harfbuzz/commit/5aff83104e03d6d2617987d24a51e490ab7a5cd1]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From bc1c93fbe04459a4b12c76c713ba1b750d2d9108 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@arm.com>
+Date: Mon, 7 Sep 2020 17:11:17 +0100
+Subject: [PATCH 1/2] [build] No need to pass source directory to
+ gen-hb-version
+
+The input file is by definition in the source directory, so dirname()
+that instead of needing the directory to be passed.
+
+Needed because a follow-up commit will change when this is called, and the
+source directory isn't trivially available at that point.
+---
+ src/gen-hb-version.py | 6 +++---
+ src/meson.build | 2 +-
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/gen-hb-version.py b/src/gen-hb-version.py
+index 15e56b93..bf16f88a 100755
+--- a/src/gen-hb-version.py
++++ b/src/gen-hb-version.py
+@@ -4,15 +4,15 @@
+
+ import os, sys, shutil
+
+-if len (sys.argv) < 5:
++if len (sys.argv) < 4:
+ sys.exit(__doc__)
+
+ version = sys.argv[1]
+ major, minor, micro = version.split (".")
+
+ OUTPUT = sys.argv[2]
+-CURRENT_SOURCE_DIR = sys.argv[3]
+-INPUT = sys.argv[4]
++INPUT = sys.argv[3]
++CURRENT_SOURCE_DIR = os.path.dirname(INPUT)
+
+ with open (INPUT, "r", encoding='utf-8') as template:
+ with open (OUTPUT, "wb") as output:
+diff --git a/src/meson.build b/src/meson.build
+index 5d7cd578..2d78c992 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -286,7 +286,7 @@ custom_target('hb-version.h',
+ input: 'hb-version.h.in',
+ output: 'hb-version.h',
+ command: [find_program('gen-hb-version.py'), meson.project_version(),
+- '@OUTPUT@', '@CURRENT_SOURCE_DIR@', '@INPUT@'],
++ '@OUTPUT@', '@INPUT@'],
+ )
+
+ ragel = find_program('ragel', required: false)
+--
+2.28.0
+
+
+From 5aff83104e03d6d2617987d24a51e490ab7a5cd1 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@arm.com>
+Date: Mon, 7 Sep 2020 10:55:33 +0100
+Subject: [PATCH 2/2] [build] generate hb-version.h once at configure time with
+ Meson
+
+Currently with Meson hb-version.h is generated during the build without
+any explicit dependencies which can result in build failures due races
+over the file.
+
+Change this to be generated at configure time, so that the file is always
+generated once before the build itself.
+
+Closes #2667
+---
+ src/meson.build | 17 ++++++++---------
+ 1 file changed, 8 insertions(+), 9 deletions(-)
+
+diff --git a/src/meson.build b/src/meson.build
+index 2d78c992..19290245 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -1,3 +1,10 @@
++hb_version_h = configure_file(
++ command: [find_program('gen-hb-version.py'), meson.project_version(), '@OUTPUT@', '@INPUT@'],
++ input: 'hb-version.h.in',
++ output: 'hb-version.h',
++ install: true,
++ install_dir: join_paths(get_option('includedir'), meson.project_name()))
++
+ # Base and default-included sources and headers
+ hb_base_sources = files(
+ 'hb-aat-layout-ankr-table.hh',
+@@ -214,9 +221,9 @@ hb_base_headers = files(
+ 'hb-shape.h',
+ 'hb-style.h',
+ 'hb-unicode.h',
+- 'hb-version.h',
+ 'hb.h',
+ )
++hb_base_headers += hb_version_h
+
+ # Optional Sources and Headers with external deps
+
+@@ -281,14 +288,6 @@ hb_gobject_headers = files(
+ 'hb-gobject-structs.h',
+ )
+
+-custom_target('hb-version.h',
+- build_by_default: true,
+- input: 'hb-version.h.in',
+- output: 'hb-version.h',
+- command: [find_program('gen-hb-version.py'), meson.project_version(),
+- '@OUTPUT@', '@INPUT@'],
+-)
+-
+ ragel = find_program('ragel', required: false)
+ if not ragel.found()
+ warning('You have to install ragel if you are going to develop HarfBuzz itself')
+--
+2.28.0
+
diff --git a/meta/recipes-graphics/harfbuzz/harfbuzz_2.6.4.bb b/meta/recipes-graphics/harfbuzz/harfbuzz_2.6.4.bb
deleted file mode 100644
index ee08c12bee..0000000000
--- a/meta/recipes-graphics/harfbuzz/harfbuzz_2.6.4.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "Text shaping library"
-DESCRIPTION = "HarfBuzz is an OpenType text shaping engine."
-HOMEPAGE = "http://www.freedesktop.org/wiki/Software/HarfBuzz"
-BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=HarfBuzz"
-SECTION = "libs"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e11f5c3149cdec4bb309babb020b32b9 \
- file://src/hb-ucd.cc;beginline=1;endline=15;md5=29d4dcb6410429195df67efe3382d8bc"
-
-SRC_URI = "http://www.freedesktop.org/software/harfbuzz/release/${BP}.tar.xz"
-SRC_URI[md5sum] = "2b3a4dfdb3e5e50055f941978944da9f"
-SRC_URI[sha256sum] = "9413b8d96132d699687ef914ebb8c50440efc87b3f775d25856d7ec347c03c12"
-
-inherit autotools pkgconfig lib_package gtk-doc
-
-PACKAGECONFIG ??= "cairo fontconfig freetype glib icu"
-PACKAGECONFIG[cairo] = "--with-cairo,--without-cairo,cairo"
-PACKAGECONFIG[fontconfig] = "--with-fontconfig,--without-fontconfig,fontconfig"
-PACKAGECONFIG[freetype] = "--with-freetype,--without-freetype,freetype"
-PACKAGECONFIG[glib] = "--with-glib,--without-glib,glib-2.0"
-PACKAGECONFIG[graphite] = "--with-graphite2,--without-graphite2,graphite2"
-PACKAGECONFIG[icu] = "--with-icu,--without-icu,icu"
-
-PACKAGES =+ "${PN}-icu ${PN}-icu-dev ${PN}-subset"
-
-LEAD_SONAME = "libharfbuzz.so"
-
-do_install_append() {
- # If no tools are installed due to PACKAGECONFIG then this directory is
- #still installed, so remove it to stop packaging wanings.
- rmdir --ignore-fail-on-non-empty ${D}${bindir}
-}
-
-FILES_${PN}-icu = "${libdir}/libharfbuzz-icu.so.*"
-FILES_${PN}-icu-dev = "${libdir}/libharfbuzz-icu.la \
- ${libdir}/libharfbuzz-icu.so \
- ${libdir}/pkgconfig/harfbuzz-icu.pc \
-"
-FILES_${PN}-subset = "${libdir}/libharfbuzz-subset.so.*"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-graphics/harfbuzz/harfbuzz_2.7.2.bb b/meta/recipes-graphics/harfbuzz/harfbuzz_2.7.2.bb
new file mode 100644
index 0000000000..f95273f686
--- /dev/null
+++ b/meta/recipes-graphics/harfbuzz/harfbuzz_2.7.2.bb
@@ -0,0 +1,52 @@
+SUMMARY = "Text shaping library"
+DESCRIPTION = "HarfBuzz is an OpenType text shaping engine."
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/HarfBuzz"
+BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=HarfBuzz"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8f787620b7d3866d9552fd1924c07572 \
+ file://src/hb-ucd.cc;beginline=1;endline=15;md5=29d4dcb6410429195df67efe3382d8bc"
+
+UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
+UPSTREAM_CHECK_REGEX = "harfbuzz-(?P<pver>\d+(\.\d+)+).tar"
+
+SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BPN}-${PV}.tar.xz \
+ file://0001-Do-not-disable-introspection-in-cross-builds.patch \
+ file://0001-src-hb-gobject-enums.cc.tmpl-write-out-only-the-file.patch \
+ file://version-race.patch \
+ "
+SRC_URI[sha256sum] = "b8c048d7c2964a12f2c80deb6634dfc836b603dd12bf0d0a3df1627698e220ce"
+
+inherit meson pkgconfig lib_package gtk-doc gobject-introspection
+
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+GTKDOC_MESON_ENABLE_FLAG = 'enabled'
+GTKDOC_MESON_DISABLE_FLAG = 'disabled'
+
+PACKAGECONFIG ??= "cairo fontconfig freetype glib icu"
+PACKAGECONFIG[cairo] = "-Dcairo=enabled,-Dcairo=disabled,cairo"
+PACKAGECONFIG[fontconfig] = "-Dfontconfig=enabled,-Dfontconfig=disabled,fontconfig"
+PACKAGECONFIG[freetype] = "-Dfreetype=enabled,-Dfreetype=disabled,freetype"
+PACKAGECONFIG[glib] = "-Dglib=enabled,-Dglib=disabled,glib-2.0"
+PACKAGECONFIG[graphite] = "-Dgraphite=enabled,-Dgraphite=disabled,graphite2"
+PACKAGECONFIG[icu] = "-Dicu=enabled,-Dicu=disabled,icu"
+
+PACKAGES =+ "${PN}-icu ${PN}-icu-dev ${PN}-subset"
+
+LEAD_SONAME = "libharfbuzz.so"
+
+do_install_append() {
+ # If no tools are installed due to PACKAGECONFIG then this directory is
+ #still installed, so remove it to stop packaging wanings.
+ rmdir --ignore-fail-on-non-empty ${D}${bindir}
+}
+
+FILES_${PN}-icu = "${libdir}/libharfbuzz-icu.so.*"
+FILES_${PN}-icu-dev = "${libdir}/libharfbuzz-icu.la \
+ ${libdir}/libharfbuzz-icu.so \
+ ${libdir}/pkgconfig/harfbuzz-icu.pc \
+"
+FILES_${PN}-subset = "${libdir}/libharfbuzz-subset.so.*"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb b/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb
new file mode 100644
index 0000000000..89480d79d2
--- /dev/null
+++ b/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb
@@ -0,0 +1,49 @@
+SUMMARY = "IGT GPU Tools"
+DESCRIPTION = "IGT GPU Tools is a collection of tools for development and testing of the DRM drivers"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=67bfee4df38fa6ecbe3a675c552d4c08"
+
+LICENSE = "MIT"
+
+inherit meson
+
+SRCREV = "d16ad07e7f2a028e14d61f570931c87fa5ce404c"
+PV = "1.25+git${SRCPV}"
+
+SRC_URI = "git://gitlab.freedesktop.org/drm/igt-gpu-tools.git;protocol=https"
+
+S = "${WORKDIR}/git"
+
+DEPENDS += "libdrm libpciaccess cairo udev glib-2.0 procps libunwind kmod openssl elfutils alsa-lib json-c bison-native"
+RDEPENDS_${PN} += "bash"
+RDEPENDS_${PN}-tests += "bash"
+
+PACKAGE_BEFORE_PN = "${PN}-benchmarks ${PN}-tests"
+
+PACKAGECONFIG[chamelium] = "-Dchamelium=enabled,-Dchamelium=disabled,gsl xmlrpc-c"
+
+EXTRA_OEMESON = "-Ddocs=disabled -Drunner=enabled"
+COMPATIBLE_HOST = "(x86_64.*|i.86.*|arm.*|aarch64).*-linux"
+COMPATIBLE_HOST_libc-musl_class-target = "null"
+SECURITY_LDFLAGS = "${SECURITY_X_LDFLAGS}"
+
+gputools_sysroot_preprocess() {
+ rm -f ${SYSROOT_DESTDIR}${libdir}/pkgconfig/intel-gen4asm.pc
+}
+SYSROOT_PREPROCESS_FUNCS += "gputools_sysroot_preprocess"
+
+do_install_append() {
+ install -d ${D}/usr/share/${BPN}/scripts
+ install ${S}/scripts/run-tests.sh ${D}/usr/share/${BPN}/scripts
+ install -d ${D}/usr/share/${BPN}/runner
+ install -D ${B}/runner/igt_runner ${D}/usr/share/${BPN}/runner
+ install -D ${B}/runner/igt_resume ${D}/usr/share/${BPN}/runner
+}
+
+FILES_${PN}-benchmarks += "${libexecdir}/${BPN}/benchmarks"
+FILES_${PN}-tests += "\
+ ${libexecdir}/${BPN}/*\
+ ${datadir}/${BPN}/1080p-right.png\
+ ${datadir}/${BPN}/1080p-left.png\
+ ${datadir}/${BPN}/pass.png\
+ ${datadir}/${BPN}/test-list.txt"
diff --git a/meta/recipes-graphics/images/core-image-weston.bb b/meta/recipes-graphics/images/core-image-weston.bb
index f5102e1989..fa7e9ef421 100644
--- a/meta/recipes-graphics/images/core-image-weston.bb
+++ b/meta/recipes-graphics/images/core-image-weston.bb
@@ -10,3 +10,5 @@ REQUIRED_DISTRO_FEATURES = "wayland"
CORE_IMAGE_BASE_INSTALL += "weston weston-init weston-examples gtk+3-demo clutter-1.0-examples"
CORE_IMAGE_BASE_INSTALL += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'weston-xwayland matchbox-terminal', '', d)}"
+
+QB_MEM = "-m 512"
diff --git a/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.4.bb b/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.5.bb
index 1f49fd3d3b..9729fb5dd5 100644
--- a/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.4.bb
+++ b/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.5.bb
@@ -8,18 +8,18 @@ LIC_FILES_CHKSUM = "file://cdjpeg.h;endline=13;md5=8184bcc7c4ac7b9edc6a7bc00f231
file://djpeg.c;endline=11;md5=c59e19811c006cb38f82d6477134d314 \
"
DEPENDS_append_x86-64_class-target = " nasm-native"
-DEPENDS_append_x86_class-target = " nasm-native"
+DEPENDS_append_x86_class-target = " nasm-native"
SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \
file://0001-libjpeg-turbo-fix-package_qa-error.patch \
"
-SRC_URI[md5sum] = "d01d9e0c28c27bc0de9f4e2e8ff49855"
-SRC_URI[sha256sum] = "33dd8547efd5543639e890efbf2ef52d5a21df81faf41bb940657af916a23406"
+SRC_URI[md5sum] = "3a7dc293918775fc933f81e2bce36464"
+SRC_URI[sha256sum] = "16f8f6f2715b3a38ab562a84357c793dd56ae9899ce130563c72cd93d8357b5d"
UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/libjpeg-turbo/files/"
UPSTREAM_CHECK_REGEX = "/libjpeg-turbo/files/(?P<pver>(\d+[\.\-_]*)+)/"
-PE= "1"
+PE = "1"
# Drop-in replacement for jpeg
PROVIDES = "jpeg"
diff --git a/meta/recipes-graphics/kmscube/kmscube/detect-gst_bo_map-_unmap-and-use-it-or-avoid-it.patch b/meta/recipes-graphics/kmscube/kmscube/detect-gst_bo_map-_unmap-and-use-it-or-avoid-it.patch
deleted file mode 100644
index a7a08f14e6..0000000000
--- a/meta/recipes-graphics/kmscube/kmscube/detect-gst_bo_map-_unmap-and-use-it-or-avoid-it.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-From a91c588b5a4122506e7fe949c37d530621bdd997 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Daniel=20D=C3=ADaz?= <daniel.diaz@linaro.org>
-Date: Tue, 11 Jul 2017 14:50:37 -0500
-Subject: [PATCH] Detect gst_bo_map/_unmap and use it (or avoid it)
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Those functions are not available on libMali, thus breaking
-builds and creating havoc.
-
-Removing the specific parts of the code that deal with
-gbm_bo_map() and gbm_bo_unmap() renders the kmscube utility
-a little less useful, but still valuable.
-
-Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org>
-Cc: Rob Clark <robdclark@gmail.com>
-Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
-
-Upstream-Status: Submitted [https://lists.freedesktop.org/archives/mesa-dev/2017-July/163020.html]
-Signed-off-by: Zoltan Kuscsik <zoltan.kuscsik@solution57.com>
----
- Makefile.am | 5 ++++-
- configure.ac | 3 +++
- gst-decoder.c | 7 ++++++-
- kmscube.c | 4 ++++
- 4 files changed, 17 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index ba064e4..3a0a50b 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -43,7 +43,6 @@ kmscube_SOURCES = \
- common.c \
- common.h \
- cube-smooth.c \
-- cube-tex.c \
- drm-atomic.c \
- drm-common.c \
- drm-common.h \
-@@ -68,3 +67,7 @@ texturator_SOURCES = \
- drm-common.c \
- drm-legacy.c \
- texturator.c
-+
-+if ENABLE_GBM_MAP
-+kmscube_SOURCES += cube-tex.c
-+endif
-diff --git a/configure.ac b/configure.ac
-index 6be6541..3d20121 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -49,5 +49,8 @@ if test "x$HAVE_GST" = "xyes"; then
- fi
- AM_CONDITIONAL(ENABLE_GST, [test "x$HAVE_GST" = "xyes"])
-
-+AC_CHECK_LIB([gbm], [gbm_bo_map], [HAVE_GBM_BO_MAP=yes], [])
-+AM_CONDITIONAL(ENABLE_GBM_MAP, [test "x$HAVE_GBM_BO_MAP" = "xyes"])
-+
- AC_CONFIG_FILES([Makefile])
- AC_OUTPUT
-diff --git a/gst-decoder.c b/gst-decoder.c
-index 5431014..0aa7a55 100644
---- a/gst-decoder.c
-+++ b/gst-decoder.c
-@@ -332,6 +332,7 @@ set_last_frame(struct decoder *dec, EGLImage frame, GstSample *samp)
- dec->last_samp = samp;
- }
-
-+#if HAVE_GBM_BO_MAP
- // TODO this could probably be a helper re-used by cube-tex:
- static int
- buf_to_fd(const struct gbm *gbm, int size, void *ptr)
-@@ -357,6 +358,7 @@ buf_to_fd(const struct gbm *gbm, int size, void *ptr)
-
- return fd;
- }
-+#endif
-
- static EGLImage
- buffer_to_image(struct decoder *dec, GstBuffer *buf)
-@@ -410,12 +412,15 @@ buffer_to_image(struct decoder *dec, GstBuffer *buf)
-
- if (is_dmabuf_mem) {
- dmabuf_fd = dup(gst_dmabuf_memory_get_fd(mem));
-- } else {
-+ }
-+#if HAVE_GBM_BO_MAP
-+ else {
- GstMapInfo map_info;
- gst_buffer_map(buf, &map_info, GST_MAP_READ);
- dmabuf_fd = buf_to_fd(dec->gbm, map_info.size, map_info.data);
- gst_buffer_unmap(buf, &map_info);
- }
-+#endif
-
- if (dmabuf_fd < 0) {
- GST_ERROR("could not obtain DMABUF FD");
-diff --git a/kmscube.c b/kmscube.c
-index 81803be..e93da67 100644
---- a/kmscube.c
-+++ b/kmscube.c
-@@ -166,7 +166,11 @@ int main(int argc, char *argv[])
- else if (mode == VIDEO)
- egl = init_cube_video(gbm, video, samples);
- else
-+#if HAVE_GBM_BO_MAP
- egl = init_cube_tex(gbm, mode, samples);
-+#else
-+ printf("gbm_bo_map() support missing\n");
-+#endif
-
- if (!egl) {
- printf("failed to initialize EGL\n");
---
-2.22.0
-
diff --git a/meta/recipes-graphics/kmscube/kmscube_git.bb b/meta/recipes-graphics/kmscube/kmscube_git.bb
index a1a295f660..c72fbc61a9 100644
--- a/meta/recipes-graphics/kmscube/kmscube_git.bb
+++ b/meta/recipes-graphics/kmscube/kmscube_git.bb
@@ -6,9 +6,8 @@ DEPENDS = "virtual/libgles2 virtual/egl libdrm"
LIC_FILES_CHKSUM = "file://kmscube.c;beginline=1;endline=23;md5=8b309d4ee67b7315ff7381270dd631fb"
-SRCREV = "76bb57d539cb43d267e561024c34e031bf351e04"
-SRC_URI = "git://gitlab.freedesktop.org/mesa/kmscube;branch=master;protocol=https \
- file://detect-gst_bo_map-_unmap-and-use-it-or-avoid-it.patch"
+SRCREV = "4660a7dca6512b6e658759d00cff7d4ad2a2059d"
+SRC_URI = "git://gitlab.freedesktop.org/mesa/kmscube;branch=master;protocol=https"
UPSTREAM_CHECK_COMMITS = "1"
S = "${WORKDIR}/git"
diff --git a/meta/recipes-graphics/libepoxy/libepoxy_1.5.4.bb b/meta/recipes-graphics/libepoxy/libepoxy_1.5.4.bb
index af9867407e..6646ef79fe 100644
--- a/meta/recipes-graphics/libepoxy/libepoxy_1.5.4.bb
+++ b/meta/recipes-graphics/libepoxy/libepoxy_1.5.4.bb
@@ -19,8 +19,6 @@ UPSTREAM_CHECK_URI = "https://github.com/anholt/libepoxy/releases"
inherit meson pkgconfig features_check
REQUIRED_DISTRO_FEATURES = "opengl"
-REQUIRED_DISTRO_FEATURES_class-native = ""
-REQUIRED_DISTRO_FEATURES_class-nativesdk = ""
PACKAGECONFIG[egl] = "-Degl=yes, -Degl=no, virtual/egl"
PACKAGECONFIG[x11] = "-Dglx=yes, -Dglx=no -Dx11=false, virtual/libx11 virtual/libgl"
@@ -33,11 +31,3 @@ PACKAGECONFIG_class-nativesdk = "egl x11"
BBCLASSEXTEND = "native nativesdk"
-# This will ensure that dlopen will attempt only GL libraries provided by host
-do_install_append_class-native() {
- chrpath --delete ${D}${libdir}/*.so
-}
-
-do_install_append_class-nativesdk() {
- chrpath --delete ${D}${libdir}/*.so
-}
diff --git a/meta/recipes-graphics/libsdl2/libsdl2/0001-Fixed-bug-4538-validate-image-size-when-loading-BMP-.patch b/meta/recipes-graphics/libsdl2/libsdl2/0001-Fixed-bug-4538-validate-image-size-when-loading-BMP-.patch
deleted file mode 100644
index 674decccbb..0000000000
--- a/meta/recipes-graphics/libsdl2/libsdl2/0001-Fixed-bug-4538-validate-image-size-when-loading-BMP-.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 85138c1ec673e05263ae666baf61f79384daf7e0 Mon Sep 17 00:00:00 2001
-From: Sam Lantinga <slouken@libsdl.org>
-Date: Tue, 30 Jul 2019 11:00:00 -0700
-Subject: [PATCH] Fixed bug 4538 - validate image size when loading BMP files
-
-Upstream-Status: Backport
-[https://hg.libsdl.org/SDL/rev/e7ba650a643a]
-
-CVE: CVE-2019-13616
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- src/video/SDL_bmp.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/src/video/SDL_bmp.c b/src/video/SDL_bmp.c
-index 0b68918..a06b0c9 100644
---- a/src/video/SDL_bmp.c
-+++ b/src/video/SDL_bmp.c
-@@ -226,6 +226,11 @@ SDL_LoadBMP_RW(SDL_RWops * src, int freesrc)
- SDL_RWseek(src, (biSize - headerSize), RW_SEEK_CUR);
- }
- }
-+ if (biWidth <= 0 || biHeight == 0) {
-+ SDL_SetError("BMP file with bad dimensions (%dx%d)", biWidth, biHeight);
-+ was_error = SDL_TRUE;
-+ goto done;
-+ }
- if (biHeight < 0) {
- topDown = SDL_TRUE;
- biHeight = -biHeight;
---
-2.7.4
-
diff --git a/meta/recipes-graphics/libsdl2/libsdl2/0001-configure-check-for-build-dir-when-building-version-.patch b/meta/recipes-graphics/libsdl2/libsdl2/0001-configure-check-for-build-dir-when-building-version-.patch
deleted file mode 100644
index b383bd6548..0000000000
--- a/meta/recipes-graphics/libsdl2/libsdl2/0001-configure-check-for-build-dir-when-building-version-.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-# HG changeset patch
-# User Anuj Mittal <am.devel@gmail.com>
-# Date 1573631462 -10800
-# Node ID 1fb1880d5edfc7c5a370846e13f90b260263627c
-# Parent 007002587d5d34d781c2b628c05e992e0ac5f52d
-configure: check for build dir when building version res (fix bug #4858)
-Fixes a race where we try to build version res file in build directory
-before it has even been created. Prevents errors like:
-
-/bin/bash ../SDL2-2.0.10/build-scripts/updaterev.sh
-/bin/bash ../SDL2-2.0.10/build-scripts/mkinstalldirs build
-mkdir -p -- build
-x86_64-pokysdk-mingw32-windres --include-dir=/home/pokybuild/yocto-worker/meta-mingw/build/build/tmp/work/x86_64-nativesdk-mingw32-pokysdk-mingw32/nativesdk-libsdl2/2.0.10-r0/recipe-sysroot/opt/poky/3.0/sysroots/x86_64-pokysdk-mingw32/usr/include ../SDL2-2.0.10/src/main/windows/version.rc build/version.o
-x86_64-pokysdk-mingw32-windres: build/version.o: No such file or directory
-Makefile:692: recipe for target 'build/version.o' failed
-make: *** [build/version.o] Error 1
-make: *** Waiting for unfinished jobs....
-touch build/.created
-WARNING: exit code 1 from a shell command.
-
-Extension of fix:
-https://hg.libsdl.org/SDL/rev/99d8b18acf8a
-
-Upstream-Status: Backport
-Signed-off-by: Anuj Mittal <am.devel@gmail.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff -r 007002587d5d -r 1fb1880d5edf configure
---- a/configure Tue Nov 12 17:24:37 2019 -0500
-+++ b/configure Wed Nov 13 10:51:02 2019 +0300
-@@ -25493,7 +25493,7 @@
- VERSION_DEPENDS=`echo $VERSION_SOURCES`
- VERSION_OBJECTS=`echo "$VERSION_OBJECTS" | sed 's,[^ ]*/\([^ ]*\)\.rc,$(objects)/\1.o,g'`
- VERSION_DEPENDS=`echo "$VERSION_DEPENDS" | sed "s,\\([^ ]*\\)/\\([^ ]*\\)\\.rc,\\\\
--\\$(objects)/\\2.o: \\1/\\2.rc\\\\
-+\\$(objects)/\\2.o: \\1/\\2.rc \\$(objects)/.created\\\\
- \\$(WINDRES) \\$< \\$@,g"`
-
- SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES`
-diff -r 007002587d5d -r 1fb1880d5edf configure.ac
---- a/configure.ac Tue Nov 12 17:24:37 2019 -0500
-+++ b/configure.ac Wed Nov 13 10:51:02 2019 +0300
-@@ -4177,7 +4177,7 @@
- VERSION_DEPENDS=`echo $VERSION_SOURCES`
- VERSION_OBJECTS=`echo "$VERSION_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.rc,$(objects)/\1.o,g'`
- VERSION_DEPENDS=`echo "$VERSION_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.rc,\\\\
--\\$(objects)/\\2.o: \\1/\\2.rc\\\\
-+\\$(objects)/\\2.o: \\1/\\2.rc \\$(objects)/.created\\\\
- \\$(WINDRES) \\$< \\$@,g"`
-
- SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES`
diff --git a/meta/recipes-graphics/libsdl2/libsdl2/0002-Fixed-bug-4797-SDL-fails-to-compile-with-Mesa-Master.patch b/meta/recipes-graphics/libsdl2/libsdl2/0002-Fixed-bug-4797-SDL-fails-to-compile-with-Mesa-Master.patch
deleted file mode 100644
index 8f5b6a0cef..0000000000
--- a/meta/recipes-graphics/libsdl2/libsdl2/0002-Fixed-bug-4797-SDL-fails-to-compile-with-Mesa-Master.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-# HG changeset patch
-# User Sylvain Becker <sylvain.becker@gmail.com>
-# Date 1570898876 -7200
-# Sat Oct 12 18:47:56 2019 +0200
-# Node ID 369b01006eb2f6fd563f7c315d29ae3fe503c432
-# Parent 4cbaffd0083b8cd17070dbd9d4ab1ce0fa9fca2d
-Fixed bug 4797 - SDL fails to compile with Mesa Master (thanks Michael Olbrich!)
-
-fix building with Mesa 19.2
-
-With Mesa 19.2 building fails with:
-
-/include/GLES/gl.h:63:25: error: conflicting types for 'GLsizeiptr'
-
-The same type is defined in include/SDL_opengl.h for OpenGL and the two
-headers should not be included at the same time.
-This was just never noticed because the same header guard '__gl_h_' was
-used. This was changed in Mesa. The result is this error.
-
-Fix this the same way GLES2 already handles this: Don't include the GLES
-header when the OpenGL header was already included.
-(https://hg.libsdl.org/SDL/rev/a60b3c292f0f)
-
-Upstream-Status: Backport [https://hg.libsdl.org/SDL/rev/369b01006eb2]
-Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
-
-diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c
---- a/src/video/SDL_video.c
-+++ b/src/video/SDL_video.c
-@@ -37,9 +37,9 @@
- #include "SDL_opengl.h"
- #endif /* SDL_VIDEO_OPENGL */
-
--#if SDL_VIDEO_OPENGL_ES
-+#if SDL_VIDEO_OPENGL_ES && !SDL_VIDEO_OPENGL
- #include "SDL_opengles.h"
--#endif /* SDL_VIDEO_OPENGL_ES */
-+#endif /* SDL_VIDEO_OPENGL_ES && !SDL_VIDEO_OPENGL */
-
- /* GL and GLES2 headers conflict on Linux 32 bits */
- #if SDL_VIDEO_OPENGL_ES2 && !SDL_VIDEO_OPENGL
diff --git a/meta/recipes-graphics/libsdl2/libsdl2_2.0.10.bb b/meta/recipes-graphics/libsdl2/libsdl2_2.0.12.bb
index 413f53476a..83dce86801 100644
--- a/meta/recipes-graphics/libsdl2/libsdl2_2.0.10.bb
+++ b/meta/recipes-graphics/libsdl2/libsdl2_2.0.12.bb
@@ -8,21 +8,22 @@ BUGTRACKER = "http://bugzilla.libsdl.org/"
SECTION = "libs"
LICENSE = "Zlib"
-LIC_FILES_CHKSUM = "file://COPYING.txt;md5=504a9454ceb89fd75a2583473b11409e"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=2d4af6adb4d89aad0cdedbcc18c9a32f"
+
+# arm-neon adds MIT license
+LICENSE_append = " ${@bb.utils.contains('PACKAGECONFIG', 'arm-neon', '& MIT', '', d)}"
+LIC_FILES_CHKSUM_append = " ${@bb.utils.contains('PACKAGECONFIG', 'arm-neon', 'file://src/video/arm/pixman-arm-neon-asm.h;md5=9a9cc1e51abbf1da58f4d9528ec9d49b;beginline=1;endline=24', '', d)}"
PROVIDES = "virtual/libsdl2"
SRC_URI = "http://www.libsdl.org/release/SDL2-${PV}.tar.gz \
file://more-gen-depends.patch \
- file://0001-Fixed-bug-4538-validate-image-size-when-loading-BMP-.patch \
- file://0002-Fixed-bug-4797-SDL-fails-to-compile-with-Mesa-Master.patch \
- file://0001-configure-check-for-build-dir-when-building-version-.patch \
"
S = "${WORKDIR}/SDL2-${PV}"
-SRC_URI[md5sum] = "5a2114f2a6f348bdab5bf52b994811db"
-SRC_URI[sha256sum] = "b4656c13a1f0d0023ae2f4a9cf08ec92fffb464e0f24238337784159b8b91d57"
+SRC_URI[md5sum] = "783b6f2df8ff02b19bb5ce492b99c8ff"
+SRC_URI[sha256sum] = "349268f695c02efbc9b9148a70b85e58cefbbf704abd3e91be654db7f1e2c863"
inherit autotools lib_package binconfig-disabled pkgconfig
@@ -44,14 +45,16 @@ EXTRA_OECONF = "--disable-oss --disable-esd --disable-arts \
# and BSP layers to pick either (desktop) opengl, gles2, or no GL
PACKAGECONFIG_GL ?= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)}"
-PACKAGECONFIG_class-native = "x11"
-PACKAGECONFIG_class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
+PACKAGECONFIG_class-native = "x11 ${PACKAGECONFIG_GL}"
+PACKAGECONFIG_class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} ${PACKAGECONFIG_GL}"
PACKAGECONFIG ??= " \
${PACKAGECONFIG_GL} \
${@bb.utils.filter('DISTRO_FEATURES', 'alsa directfb pulseaudio x11', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland gles2', '', d)} \
+ ${@bb.utils.contains("TUNE_FEATURES", "neon","arm-neon","",d)} \
"
PACKAGECONFIG[alsa] = "--enable-alsa --disable-alsatest,--disable-alsa,alsa-lib,"
+PACKAGECONFIG[arm-neon] = "--enable-arm-neon,--disable-arm-neon"
PACKAGECONFIG[directfb] = "--enable-video-directfb,--disable-video-directfb,directfb"
PACKAGECONFIG[gles2] = "--enable-video-opengles,--disable-video-opengles,virtual/libgles2"
PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"
diff --git a/meta/recipes-graphics/libva/libva-initial_2.8.0.bb b/meta/recipes-graphics/libva/libva-initial_2.8.0.bb
new file mode 100644
index 0000000000..f90bb510c4
--- /dev/null
+++ b/meta/recipes-graphics/libva/libva-initial_2.8.0.bb
@@ -0,0 +1,8 @@
+require libva.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f"
+SRC_URI[sha256sum] = "adbb1244d278908f89ccfcf254a442de6d71934565a492cb6f03caf2ed4d1ec3"
+
+do_install_append () {
+ rm -f ${D}${libdir}/*.so*
+}
diff --git a/meta/recipes-graphics/libva/libva-utils_2.6.0.bb b/meta/recipes-graphics/libva/libva-utils_2.8.0.bb
index 03b38027a1..78e3805339 100644
--- a/meta/recipes-graphics/libva/libva-utils_2.6.0.bb
+++ b/meta/recipes-graphics/libva/libva-utils_2.8.0.bb
@@ -14,11 +14,11 @@ SECTION = "x11"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=b148fc8adf19dc9aec17cf9cd29a9a5e"
-SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.6-branch"
-SRCREV = "8ea1eba433dcbceb0e5dcb54b8e3f984987f7a17"
+SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.8-branch"
+SRCREV = "af101a46d24c3f71a12b9f1ddb0c63626b19b3d8"
S = "${WORKDIR}/git"
-UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))$"
DEPENDS = "libva"
diff --git a/meta/recipes-graphics/libva/libva.inc b/meta/recipes-graphics/libva/libva.inc
new file mode 100644
index 0000000000..e7bec80c14
--- /dev/null
+++ b/meta/recipes-graphics/libva/libva.inc
@@ -0,0 +1,27 @@
+SUMMARY = "Video Acceleration (VA) API for Linux"
+DESCRIPTION = "Video Acceleration API (VA API) is a library (libVA) \
+and API specification which enables and provides access to graphics \
+hardware (GPU) acceleration for video processing on Linux and UNIX \
+based operating systems. Accelerated processing includes video \
+decoding, video encoding, subpicture blending and rendering. The \
+specification was originally designed by Intel for its GMA (Graphics \
+Media Accelerator) series of GPU hardware, the API is however not \
+limited to GPUs or Intel specific hardware, as other hardware and \
+manufacturers can also freely use this API for hardware accelerated \
+video decoding."
+
+HOMEPAGE = "https://01.org/linuxmedia/vaapi"
+BUGTRACKER = "https://github.com/intel/libva/issues"
+
+SECTION = "x11"
+LICENSE = "MIT"
+
+SRC_URI = "https://github.com/intel/libva/releases/download/${PV}/libva-${PV}.tar.bz2"
+
+S = "${WORKDIR}/libva-${PV}"
+
+UPSTREAM_CHECK_URI = "https://github.com/intel/libva/releases"
+
+DEPENDS = "libdrm"
+
+inherit meson pkgconfig
diff --git a/meta/recipes-graphics/libva/libva_2.6.1.bb b/meta/recipes-graphics/libva/libva_2.6.1.bb
deleted file mode 100644
index 92cea83bc1..0000000000
--- a/meta/recipes-graphics/libva/libva_2.6.1.bb
+++ /dev/null
@@ -1,43 +0,0 @@
-SUMMARY = "Video Acceleration (VA) API for Linux"
-DESCRIPTION = "Video Acceleration API (VA API) is a library (libVA) \
-and API specification which enables and provides access to graphics \
-hardware (GPU) acceleration for video processing on Linux and UNIX \
-based operating systems. Accelerated processing includes video \
-decoding, video encoding, subpicture blending and rendering. The \
-specification was originally designed by Intel for its GMA (Graphics \
-Media Accelerator) series of GPU hardware, the API is however not \
-limited to GPUs or Intel specific hardware, as other hardware and \
-manufacturers can also freely use this API for hardware accelerated \
-video decoding."
-
-HOMEPAGE = "https://01.org/linuxmedia/vaapi"
-BUGTRACKER = "https://github.com/intel/libva/issues"
-
-SECTION = "x11"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f"
-
-SRC_URI = "https://github.com/intel/${BPN}/releases/download/${PV}/${BP}.tar.bz2"
-SRC_URI[md5sum] = "aef13eb48e01a47d1416d97462a22a11"
-SRC_URI[sha256sum] = "6c57eb642d828af2411aa38f55dc10111e8c98976dbab8fd62e48629401eaea5"
-
-UPSTREAM_CHECK_URI = "https://github.com/intel/libva/releases"
-
-DEPENDS = "libdrm virtual/mesa"
-
-inherit meson pkgconfig features_check
-
-REQUIRED_DISTRO_FEATURES = "opengl"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}"
-PACKAGECONFIG[x11] = "-Dwith_x11=yes, -Dwith_x11=no,virtual/libx11 libxext libxfixes"
-PACKAGECONFIG[wayland] = "-Dwith_wayland=yes, -Dwith_wayland=no,wayland-native wayland"
-
-PACKAGES =+ "${PN}-x11 ${PN}-glx ${PN}-wayland"
-
-RDEPENDS_${PN}-x11 =+ "${PN}"
-RDEPENDS_${PN}-glx =+ "${PN}-x11"
-
-FILES_${PN}-x11 =+ "${libdir}/libva-x11*${SOLIBS}"
-FILES_${PN}-glx =+ "${libdir}/libva-glx*${SOLIBS}"
-FILES_${PN}-wayland =+ "${libdir}/libva-wayland*${SOLIBS}"
diff --git a/meta/recipes-graphics/libva/libva_2.8.0.bb b/meta/recipes-graphics/libva/libva_2.8.0.bb
new file mode 100644
index 0000000000..621ceea86c
--- /dev/null
+++ b/meta/recipes-graphics/libva/libva_2.8.0.bb
@@ -0,0 +1,23 @@
+require libva.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f"
+SRC_URI[sha256sum] = "adbb1244d278908f89ccfcf254a442de6d71934565a492cb6f03caf2ed4d1ec3"
+
+PACKAGECONFIG ??= " \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'glx', '', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'x11 wayland', d)} \
+"
+
+PACKAGECONFIG[x11] = "-Dwith_x11=yes,-Dwith_x11=no,virtual/libx11 libxext libxfixes"
+PACKAGECONFIG[glx] = "-Dwith_glx=yes,-Dwith_glx=no,virtual/mesa"
+
+PACKAGECONFIG[wayland] = "-Dwith_wayland=yes,-Dwith_wayland=no,wayland-native wayland"
+
+PACKAGES =+ "${PN}-x11 ${PN}-glx ${PN}-wayland"
+
+RDEPENDS_${PN}-x11 =+ "${PN}"
+RDEPENDS_${PN}-glx =+ "${PN}-x11"
+
+FILES_${PN}-x11 =+ "${libdir}/libva-x11*${SOLIBS}"
+FILES_${PN}-glx =+ "${libdir}/libva-glx*${SOLIBS}"
+FILES_${PN}-wayland =+ "${libdir}/libva-wayland*${SOLIBS}"
diff --git a/meta/recipes-graphics/matchbox-wm/matchbox-wm/0001-Fix-build-with-gcc-10.patch b/meta/recipes-graphics/matchbox-wm/matchbox-wm/0001-Fix-build-with-gcc-10.patch
new file mode 100644
index 0000000000..541b5c9c84
--- /dev/null
+++ b/meta/recipes-graphics/matchbox-wm/matchbox-wm/0001-Fix-build-with-gcc-10.patch
@@ -0,0 +1,41 @@
+From 8a8f8446e803cad04d7bbceaab78ee45d9778c3c Mon Sep 17 00:00:00 2001
+From: Adrian Bunk <bunk@stusta.de>
+Date: Tue, 12 May 2020 09:44:05 +0300
+Subject: Fix build with gcc 10
+
+Upstream-Status: Pending
+Signed-off-by: Adrian Bunk <bunk@stusta.de>
+---
+ src/mbtheme.h | 2 +-
+ src/structs.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/mbtheme.h b/src/mbtheme.h
+index aa9a7c5..ad03bde 100644
+--- a/src/mbtheme.h
++++ b/src/mbtheme.h
+@@ -46,7 +46,7 @@ typedef struct _mb_theme_param
+
+ } MBThemeParam;
+
+-enum {
++typedef enum {
+ LAYER_GRADIENT_HORIZ = 1,
+ LAYER_GRADIENT_VERT,
+ LAYER_LABEL,
+diff --git a/src/structs.h b/src/structs.h
+index 24985e7..8f53e72 100644
+--- a/src/structs.h
++++ b/src/structs.h
+@@ -148,7 +148,7 @@
+
+ /* Atoms, if you change these check ewmh_init() first */
+
+-enum {
++typedef enum {
+ WM_STATE = 0,
+ WM_CHANGE_STATE,
+ WM_PROTOCOLS,
+--
+2.17.1
+
diff --git a/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.2.bb b/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.2.bb
index 675ee40fa4..a08eb252ce 100644
--- a/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.2.bb
+++ b/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.2.bb
@@ -13,6 +13,7 @@ DEPENDS = "libmatchbox virtual/libx11 libxext libxrender startup-notification ex
# SRCREV tagged 1.2.2
SRCREV = "27da947e7fbdf9659f7e5bd1e92af92af6c03970"
SRC_URI = "git://git.yoctoproject.org/matchbox-window-manager \
+ file://0001-Fix-build-with-gcc-10.patch \
file://kbdconfig"
S = "${WORKDIR}/git"
@@ -21,8 +22,6 @@ inherit autotools pkgconfig features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
-CFLAGS += "-fcommon"
-
FILES_${PN} = "${bindir}/* \
${datadir}/matchbox \
${sysconfdir}/matchbox \
diff --git a/meta/recipes-graphics/menu-cache/files/0001-Support-gcc10-compilation.patch b/meta/recipes-graphics/menu-cache/files/0001-Support-gcc10-compilation.patch
new file mode 100644
index 0000000000..aeae864cd4
--- /dev/null
+++ b/meta/recipes-graphics/menu-cache/files/0001-Support-gcc10-compilation.patch
@@ -0,0 +1,111 @@
+From 1ce739649b4d66339a03fc0ec9ee7a2f7c141780 Mon Sep 17 00:00:00 2001
+From: Mamoru TASAKA <mtasaka@fedoraproject.org>
+Date: Fri, 24 Jan 2020 13:33:00 +0900
+Subject: Support gcc10 compilation
+
+gcc10 now defaults to -fno-common, and with gcc10 menu-cache compilation fails like
+
+/bin/ld: menu-merge.o:menu-cache-gen/menu-tags.h:167: multiple definition of `DirDirs'; main.o:menu-cache-gen/menu-tags.h:167: first defined here
+/bin/ld: menu-merge.o:menu-cache-gen/menu-tags.h:164: multiple definition of `AppDirs'; main.o:menu-cache-gen/menu-tags.h:164: first defined here
+/bin/ld: menu-merge.o:menu-cache-gen/menu-tags.h:52: multiple definition of `menuTag_Layout'; main.o:menu-cache-gen/menu-tags.h:52: first defined here
+....
+
+This patch fixes compilation with gcc10: properly declaring variables in header with "extern", and also removing some unneeded variables in header files.
+
+Upstream-Status: Submitted [https://github.com/lxde/menu-cache/pull/19]
+Signed-off-by: Adrian Bunk <bunk@stusta.de>
+---
+ menu-cache-gen/menu-tags.h | 55 ++++++++++++--------------------------
+ 1 file changed, 17 insertions(+), 38 deletions(-)
+
+diff --git a/menu-cache-gen/menu-tags.h b/menu-cache-gen/menu-tags.h
+index f3fd7d3..f71c0bc 100644
+--- a/menu-cache-gen/menu-tags.h
++++ b/menu-cache-gen/menu-tags.h
+@@ -22,38 +22,17 @@
+ #include <libfm/fm-extra.h>
+ #include <menu-cache.h>
+
+-FmXmlFileTag menuTag_Menu;
+-FmXmlFileTag menuTag_AppDir;
+-FmXmlFileTag menuTag_DefaultAppDirs;
+-FmXmlFileTag menuTag_DirectoryDir;
+-FmXmlFileTag menuTag_DefaultDirectoryDirs;
+-FmXmlFileTag menuTag_Include;
+-FmXmlFileTag menuTag_Exclude;
+-FmXmlFileTag menuTag_Filename;
+-FmXmlFileTag menuTag_Or;
+-FmXmlFileTag menuTag_And;
+-FmXmlFileTag menuTag_Not;
+-FmXmlFileTag menuTag_Category;
+-FmXmlFileTag menuTag_MergeFile;
+-FmXmlFileTag menuTag_MergeDir;
+-FmXmlFileTag menuTag_DefaultMergeDirs;
+-FmXmlFileTag menuTag_Directory;
+-FmXmlFileTag menuTag_Name;
+-FmXmlFileTag menuTag_Deleted;
+-FmXmlFileTag menuTag_NotDeleted;
+-FmXmlFileTag menuTag_OnlyUnallocated;
+-FmXmlFileTag menuTag_NotOnlyUnallocated;
+-FmXmlFileTag menuTag_All;
+-FmXmlFileTag menuTag_LegacyDir;
+-FmXmlFileTag menuTag_KDELegacyDirs;
+-FmXmlFileTag menuTag_Move;
+-FmXmlFileTag menuTag_Old;
+-FmXmlFileTag menuTag_New;
+-FmXmlFileTag menuTag_Layout;
+-FmXmlFileTag menuTag_DefaultLayout;
+-FmXmlFileTag menuTag_Menuname;
+-FmXmlFileTag menuTag_Separator;
+-FmXmlFileTag menuTag_Merge;
++extern FmXmlFileTag menuTag_AppDir;
++extern FmXmlFileTag menuTag_DirectoryDir;
++extern FmXmlFileTag menuTag_Include;
++extern FmXmlFileTag menuTag_Exclude;
++extern FmXmlFileTag menuTag_Filename;
++extern FmXmlFileTag menuTag_Or;
++extern FmXmlFileTag menuTag_And;
++extern FmXmlFileTag menuTag_Not;
++extern FmXmlFileTag menuTag_Category;
++extern FmXmlFileTag menuTag_All;
++extern FmXmlFileTag menuTag_LegacyDir;
+
+ typedef enum {
+ MERGE_NONE, /* starting value */
+@@ -152,19 +131,19 @@ typedef struct {
+ } MenuRule;
+
+ /* requested language(s) */
+-char **languages;
++extern char **languages;
+
+ /* list of menu files to monitor */
+-GSList *MenuFiles;
++extern GSList *MenuFiles;
+
+ /* list of menu dirs to monitor */
+-GSList *MenuDirs;
++extern GSList *MenuDirs;
+
+ /* list of available app dirs */
+-GSList *AppDirs;
++extern GSList *AppDirs;
+
+ /* list of available dir dirs */
+-GSList *DirDirs;
++extern GSList *DirDirs;
+
+ /* parse and merge menu files */
+ MenuMenu *get_merged_menu(const char *file, FmXmlFile **xmlfile, GError **error);
+@@ -177,7 +156,7 @@ gboolean save_menu_cache(MenuMenu *layout, const char *menuname, const char *fil
+ void _free_layout_items(GList *data);
+
+ /* verbosity level */
+-gint verbose;
++extern gint verbose;
+
+ #define DBG if (verbose) g_debug
+ #define VDBG if (verbose > 1) g_debug
+--
+2.17.1
+
diff --git a/meta/recipes-graphics/menu-cache/menu-cache_1.1.0.bb b/meta/recipes-graphics/menu-cache/menu-cache_1.1.0.bb
index 7a11228ef0..fc4e0a4d84 100644
--- a/meta/recipes-graphics/menu-cache/menu-cache_1.1.0.bb
+++ b/meta/recipes-graphics/menu-cache/menu-cache_1.1.0.bb
@@ -8,7 +8,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0964c689fcf4c21c6797ea87408416b6"
SECTION = "x11/libs"
DEPENDS = "glib-2.0 libfm-extra"
-SRC_URI = "${SOURCEFORGE_MIRROR}/lxde/menu-cache-${PV}.tar.xz"
+SRC_URI = "${SOURCEFORGE_MIRROR}/lxde/menu-cache-${PV}.tar.xz \
+ file://0001-Support-gcc10-compilation.patch \
+"
SRC_URI[md5sum] = "99999a0bca48b980105208760c8fd893"
SRC_URI[sha256sum] = "ed02eb459dcb398f69b9fa5bf4dd813020405afc84331115469cdf7be9273ec7"
@@ -16,5 +18,3 @@ SRC_URI[sha256sum] = "ed02eb459dcb398f69b9fa5bf4dd813020405afc84331115469cdf7be9
UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/lxde/files/menu-cache/1.1/"
inherit autotools gettext pkgconfig gtk-doc
-
-CFLAGS += "-fcommon"
diff --git a/meta/recipes-graphics/mesa/files/0001-futex.h-Define-__NR_futex-if-it-does-not-exist.patch b/meta/recipes-graphics/mesa/files/0001-futex.h-Define-__NR_futex-if-it-does-not-exist.patch
new file mode 100644
index 0000000000..8bedbac669
--- /dev/null
+++ b/meta/recipes-graphics/mesa/files/0001-futex.h-Define-__NR_futex-if-it-does-not-exist.patch
@@ -0,0 +1,31 @@
+From 8973e297f2f9b17498b9dc0e37a19481d4bb7df9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 16 Oct 2020 11:03:47 -0700
+Subject: [PATCH] futex.h: Define __NR_futex if it does not exist
+
+__NR_futex is not defines by newer architectures e.g. arc, riscv32 as
+they only have 64bit variant of time_t. Glibc defines SYS_futex interface based on
+__NR_futex, since this is used in applications, such applications start
+to fail to build for these newer architectures. This patch defines a
+fallback to alias __NR_futex to __NR_futex_tim64 so SYS_futex keeps
+working
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/util/futex.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/src/util/futex.h
++++ b/src/util/futex.h
+@@ -34,6 +34,10 @@
+ #include <sys/syscall.h>
+ #include <sys/time.h>
+
++#if !defined(SYS_futex) && defined(SYS_futex_time64)
++# define SYS_futex SYS_futex_time64
++#endif
++
+ static inline long sys_futex(void *addr1, int op, int val1, const struct timespec *timeout, void *addr2, int val3)
+ {
+ return syscall(SYS_futex, addr1, op, val1, timeout, addr2, val3);
diff --git a/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch b/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch
index cd35a1f850..ee171ad1c8 100644
--- a/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch
+++ b/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch
@@ -1,4 +1,4 @@
-From df835389699b32bb6610b39972502e323f8e09e5 Mon Sep 17 00:00:00 2001
+From 65857eaee12a21a631750ffcd9e64e0afbbc3af0 Mon Sep 17 00:00:00 2001
From: Alistair Francis <alistair@alistair23.me>
Date: Thu, 14 Nov 2019 13:08:31 -0800
Subject: [PATCH] meson.build: make TLS ELF optional
@@ -15,23 +15,23 @@ Signed-off-by: Alistair Francis <alistair@alistair23.me>
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
-index 09e3759..a954118 100644
+index c51dde9..c16f78f 100644
--- a/meson.build
+++ b/meson.build
-@@ -387,7 +387,7 @@ if with_egl and not (with_platform_drm or with_platform_surfaceless or with_plat
+@@ -392,7 +392,7 @@ if with_egl and not (with_platform_drm or with_platform_surfaceless or with_plat
endif
# Android uses emutls for versions <= P/28. For USE_ELF_TLS we need ELF TLS.
--if host_machine.system() != 'windows' and (not with_platform_android or get_option('platform-sdk-version') >= 29)
-+if (not with_platform_android or get_option('platform-sdk-version') >= 29) and get_option('elf-tls')
+-if not ['windows', 'freebsd'].contains(host_machine.system()) and (not with_platform_android or get_option('platform-sdk-version') >= 29)
++if not ['windows', 'freebsd'].contains(host_machine.system()) and (not with_platform_android or get_option('platform-sdk-version') >= 29) and get_option('elf-tls')
pre_args += '-DUSE_ELF_TLS'
endif
diff --git a/meson_options.txt b/meson_options.txt
-index 626baf3..637ff14 100644
+index ab43150..d7b1555 100644
--- a/meson_options.txt
+++ b/meson_options.txt
-@@ -341,6 +341,12 @@ option(
+@@ -355,6 +355,12 @@ option(
value : true,
description : 'Enable direct rendering in GLX and EGL for DRI',
)
@@ -42,5 +42,5 @@ index 626baf3..637ff14 100644
+ description : 'Enable TLS support in ELF',
+)
option(
- 'I-love-half-baked-turnips',
+ 'prefer-iris',
type : 'boolean',
diff --git a/meta/recipes-graphics/mesa/files/0005-vc4-use-intmax_t-for-formatted-output-of-timespec-me.patch b/meta/recipes-graphics/mesa/files/0005-vc4-use-intmax_t-for-formatted-output-of-timespec-me.patch
index 901feca556..dacb1ea1c8 100644
--- a/meta/recipes-graphics/mesa/files/0005-vc4-use-intmax_t-for-formatted-output-of-timespec-me.patch
+++ b/meta/recipes-graphics/mesa/files/0005-vc4-use-intmax_t-for-formatted-output-of-timespec-me.patch
@@ -1,4 +1,4 @@
-From 38a313474e127d61e749866423e708fc86ed9ec5 Mon Sep 17 00:00:00 2001
+From 281a636353666bfdd373c62591e744087e750e89 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 4 Dec 2019 14:15:28 -0800
Subject: [PATCH] vc4: use intmax_t for formatted output of timespec members
@@ -13,13 +13,14 @@ error: format specifies type 'long' but the argument has type 'time_t' (aka 'lon
Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2966]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
src/gallium/drivers/v3d/v3d_bufmgr.c | 4 ++--
src/gallium/drivers/vc4/vc4_bufmgr.c | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/gallium/drivers/v3d/v3d_bufmgr.c b/src/gallium/drivers/v3d/v3d_bufmgr.c
-index b3e4d053cc0..c514bf00bf0 100644
+index 31a0803..cc2e2af 100644
--- a/src/gallium/drivers/v3d/v3d_bufmgr.c
+++ b/src/gallium/drivers/v3d/v3d_bufmgr.c
@@ -80,8 +80,8 @@ v3d_bo_dump_stats(struct v3d_screen *screen)
@@ -27,27 +28,24 @@ index b3e4d053cc0..c514bf00bf0 100644
struct timespec time;
clock_gettime(CLOCK_MONOTONIC, &time);
- fprintf(stderr, " now: %ld\n",
-- time.tv_sec);
+- (long)time.tv_sec);
+ fprintf(stderr, " now: %jd\n",
+ (intmax_t)time.tv_sec);
}
}
diff --git a/src/gallium/drivers/vc4/vc4_bufmgr.c b/src/gallium/drivers/vc4/vc4_bufmgr.c
-index 5ec360934c0..bf05f6cadd6 100644
+index a786e8e..975d49e 100644
--- a/src/gallium/drivers/vc4/vc4_bufmgr.c
+++ b/src/gallium/drivers/vc4/vc4_bufmgr.c
-@@ -107,8 +107,8 @@ vc4_bo_dump_stats(struct vc4_screen *screen)
+@@ -99,8 +99,8 @@ vc4_bo_dump_stats(struct vc4_screen *screen)
struct timespec time;
clock_gettime(CLOCK_MONOTONIC, &time);
- fprintf(stderr, " now: %ld\n",
-- time.tv_sec);
+- (long)time.tv_sec);
+ fprintf(stderr, " now: %jd\n",
+ (intmax_t)time.tv_sec);
}
}
---
-2.24.0
-
diff --git a/meta/recipes-graphics/mesa/mesa-gl_19.3.4.bb b/meta/recipes-graphics/mesa/mesa-gl_19.3.4.bb
deleted file mode 100644
index d4b1c1c454..0000000000
--- a/meta/recipes-graphics/mesa/mesa-gl_19.3.4.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require mesa_${PV}.bb
-
-SUMMARY += " (OpenGL only, no EGL/GLES)"
-
-PROVIDES = "virtual/libgl virtual/mesa"
-
-S = "${WORKDIR}/mesa-${PV}"
-
-PACKAGECONFIG ??= "opengl dri ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
-PACKAGECONFIG_class-target = "opengl dri ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
diff --git a/meta/recipes-graphics/mesa/mesa-gl_20.1.8.bb b/meta/recipes-graphics/mesa/mesa-gl_20.1.8.bb
new file mode 100644
index 0000000000..e50782be1c
--- /dev/null
+++ b/meta/recipes-graphics/mesa/mesa-gl_20.1.8.bb
@@ -0,0 +1,15 @@
+require mesa.inc
+
+SUMMARY += " (OpenGL only, no EGL/GLES)"
+
+PROVIDES = "virtual/libgl virtual/mesa"
+
+S = "${WORKDIR}/mesa-${PV}"
+
+# At least one DRI rendering engine is required to build mesa.
+# When no X11 is available, use osmesa for the rendering engine.
+PACKAGECONFIG ??= "opengl dri ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa', d)}"
+PACKAGECONFIG_class-target = "opengl dri ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa', d)}"
+
+# When NOT using X11, we need to make sure we have swrast available.
+DRIDRIVERS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', ',swrast', d)}"
diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc
index 87f167c507..9fc62e95e1 100644
--- a/meta/recipes-graphics/mesa/mesa.inc
+++ b/meta/recipes-graphics/mesa/mesa.inc
@@ -10,10 +10,32 @@ HOMEPAGE = "http://mesa3d.org"
BUGTRACKER = "https://bugs.freedesktop.org"
SECTION = "x11"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://docs/license.html;md5=3a4999caf82cc503ac8b9e37c235782e"
+LIC_FILES_CHKSUM = "file://docs/license.html;md5=c1843d93c460bbf778d6037ce324f9f7"
PE = "2"
+SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \
+ file://0001-meson.build-check-for-all-linux-host_os-combinations.patch \
+ file://0002-meson.build-make-TLS-ELF-optional.patch \
+ file://0003-Allow-enable-DRI-without-DRI-drivers.patch \
+ file://0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch \
+ file://0005-vc4-use-intmax_t-for-formatted-output-of-timespec-me.patch \
+ file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \
+ file://0001-futex.h-Define-__NR_futex-if-it-does-not-exist.patch \
+ "
+
+SRC_URI[sha256sum] = "df21351494f7caaec5a3ccc16f14f15512e98d2ecde178bba1d134edc899b961"
+
+UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)"
+
+#because we cannot rely on the fact that all apps will use pkgconfig,
+#make eglplatform.h independent of MESA_EGL_NO_X11_HEADER
+do_install_append() {
+ if ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'true', 'false', d)}; then
+ sed -i -e 's/^#elif defined(__unix__) && defined(EGL_NO_X11)$/#elif defined(__unix__) \&\& defined(EGL_NO_X11) || ${@bb.utils.contains('PACKAGECONFIG', 'x11', '0', '1', d)}/' ${D}${includedir}/EGL/eglplatform.h
+ fi
+}
+
DEPENDS = "expat makedepend-native flex-native bison-native libxml2-native zlib chrpath-replacement-native python3-mako-native gettext-native"
EXTRANATIVEPATH += "chrpath-native"
PROVIDES = " \
@@ -72,8 +94,8 @@ PACKAGECONFIG_class-target ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland v
${@bb.utils.contains('DISTRO_FEATURES', 'x11 vulkan', 'dri3', '', d)} \
elf-tls \
"
-PACKAGECONFIG_class-native ?= "gbm dri egl opengl elf-tls"
-PACKAGECONFIG_class-nativesdk ?= "gbm dri egl opengl elf-tls"
+PACKAGECONFIG_class-native ?= "gbm dri egl opengl elf-tls x11"
+PACKAGECONFIG_class-nativesdk ?= "gbm dri egl opengl elf-tls x11"
PACKAGECONFIG_remove_libc-musl = "elf-tls"
@@ -100,6 +122,7 @@ PACKAGECONFIG[dri3] = "-Ddri3=true, -Ddri3=false, xorgproto libxshmfence"
VULKAN_DRIVERS = ""
VULKAN_DRIVERS_append_x86_class-target = ",intel"
VULKAN_DRIVERS_append_x86-64_class-target = ",intel"
+VULKAN_DRIVERS_append ="${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}"
PACKAGECONFIG[vulkan] = "-Dvulkan-drivers=${VULKAN_DRIVERS}, -Dvulkan-drivers='',"
PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=false"
@@ -142,6 +165,9 @@ PACKAGECONFIG[gallium] = "-Dgallium-drivers=${GALLIUMDRIVERS}, -Dgallium-drivers
PACKAGECONFIG[gallium-llvm] = "-Dllvm=true -Dshared-llvm=true, -Dllvm=false, llvm${MESA_LLVM_RELEASE} llvm-native \
${@'elfutils' if ${GALLIUMDRIVERS_LLVM33_ENABLED} else ''}"
PACKAGECONFIG[xa] = "-Dgallium-xa=true, -Dgallium-xa=false"
+PACKAGECONFIG[va] = "-Dgallium-va=true,-Dgallium-va=false,libva-initial"
+
+PACKAGECONFIG[vdpau] = "-Dgallium-vdpau=true,-Dgallium-vdpau=false,libvdpau"
PACKAGECONFIG[lima] = ""
GALLIUMDRIVERS_append ="${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}"
@@ -161,6 +187,7 @@ EXTRA_OEMESON_append = " -Dasm=false"
FULL_OPTIMIZATION_append = " -fno-omit-frame-pointer"
CFLAGS_append_armv5 = " -DMISSING_64BIT_ATOMICS"
+CFLAGS_append_armv6 = " -DMISSING_64BIT_ATOMICS"
# Remove the mesa dependency on mesa-dev, as mesa is empty
RDEPENDS_${PN}-dev = ""
@@ -178,6 +205,7 @@ PACKAGES =+ "libegl-mesa libegl-mesa-dev \
libgles3-mesa libgles3-mesa-dev \
libxatracker libxatracker-dev \
mesa-megadriver mesa-vulkan-drivers \
+ mesa-vdpau-drivers \
"
do_install_append () {
@@ -207,18 +235,20 @@ python __anonymous() {
("gles", "libgles3",)):
if not p[0] in pkgconfig:
continue
- fullp = p[1] + "-mesa"
- pkgs = " ".join(p[1:])
+ mlprefix = d.getVar("MLPREFIX")
+ fullp = mlprefix + p[1] + "-mesa"
+ mlprefix = d.getVar("MLPREFIX")
+ pkgs = " ".join(mlprefix + x for x in p[1:])
d.setVar("DEBIAN_NOAUTONAME_" + fullp, "1")
d.appendVar("RREPLACES_" + fullp, pkgs)
d.appendVar("RPROVIDES_" + fullp, pkgs)
d.appendVar("RCONFLICTS_" + fullp, pkgs)
- d.appendVar("RRECOMMENDS_" + fullp, " mesa-megadriver")
+ d.appendVar("RRECOMMENDS_" + fullp, " ${MLPREFIX}mesa-megadriver")
# For -dev, the first element is both the Debian and original name
fullp += "-dev"
- pkgs = p[1] + "-dev"
+ pkgs = mlprefix + p[1] + "-dev"
d.setVar("DEBIAN_NOAUTONAME_" + fullp, "1")
d.appendVar("RREPLACES_" + fullp, pkgs)
d.appendVar("RPROVIDES_" + fullp, pkgs)
@@ -255,6 +285,7 @@ PACKAGES_DYNAMIC += "^mesa-driver-.*"
FILES_mesa-megadriver = "${libdir}/dri/* ${datadir}/drirc.d/00-mesa-defaults.conf"
FILES_mesa-vulkan-drivers = "${libdir}/libvulkan_*.so ${datadir}/vulkan"
+FILES_${PN}-vdpau-drivers = "${libdir}/vdpau/*.so.*"
FILES_libegl-mesa = "${libdir}/libEGL.so.*"
FILES_libgbm = "${libdir}/libgbm.so.*"
FILES_libgles1-mesa = "${libdir}/libGLESv1*.so.*"
@@ -264,7 +295,7 @@ FILES_libglapi = "${libdir}/libglapi.so.*"
FILES_libosmesa = "${libdir}/libOSMesa.so.*"
FILES_libxatracker = "${libdir}/libxatracker.so.*"
-FILES_${PN}-dev = "${libdir}/pkgconfig/dri.pc ${includedir}/vulkan"
+FILES_${PN}-dev = "${libdir}/pkgconfig/dri.pc ${includedir}/vulkan ${libdir}/vdpau/*.so"
FILES_libegl-mesa-dev = "${libdir}/libEGL.* ${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/egl.pc"
FILES_libgbm-dev = "${libdir}/libgbm.* ${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h"
FILES_libgl-mesa-dev = "${libdir}/libGL.* ${includedir}/GL ${libdir}/pkgconfig/gl.pc"
diff --git a/meta/recipes-graphics/mesa/mesa_19.3.4.bb b/meta/recipes-graphics/mesa/mesa_19.3.4.bb
deleted file mode 100644
index 5f456c2429..0000000000
--- a/meta/recipes-graphics/mesa/mesa_19.3.4.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-require ${BPN}.inc
-
-SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \
- file://0001-meson.build-check-for-all-linux-host_os-combinations.patch \
- file://0002-meson.build-make-TLS-ELF-optional.patch \
- file://0003-Allow-enable-DRI-without-DRI-drivers.patch \
- file://0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch \
- file://0005-vc4-use-intmax_t-for-formatted-output-of-timespec-me.patch \
- file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \
- "
-
-SRC_URI[md5sum] = "09e7700d9af511384d131fb77b5802cb"
-SRC_URI[sha256sum] = "1da467e6ae2799a517e242462331eafd29ae77d9872f3a845df81f7c308e8fe4"
-
-UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)"
-
-CFLAGS += "-fcommon"
-
-#because we cannot rely on the fact that all apps will use pkgconfig,
-#make eglplatform.h independent of MESA_EGL_NO_X11_HEADER
-do_install_append() {
- if ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'true', 'false', d)}; then
- sed -i -e 's/^#elif defined(__unix__) && defined(EGL_NO_X11)$/#elif defined(__unix__) \&\& defined(EGL_NO_X11) || ${@bb.utils.contains('PACKAGECONFIG', 'x11', '0', '1', d)}/' ${D}${includedir}/EGL/eglplatform.h
- fi
-}
diff --git a/meta/recipes-graphics/mesa/mesa_20.1.8.bb b/meta/recipes-graphics/mesa/mesa_20.1.8.bb
new file mode 100644
index 0000000000..96e8aa38d6
--- /dev/null
+++ b/meta/recipes-graphics/mesa/mesa_20.1.8.bb
@@ -0,0 +1,2 @@
+require ${BPN}.inc
+
diff --git a/meta/recipes-graphics/pango/pango/0001-Fix-build-reproducibility.patch b/meta/recipes-graphics/pango/pango/0001-Fix-build-reproducibility.patch
deleted file mode 100644
index 03abf8763c..0000000000
--- a/meta/recipes-graphics/pango/pango/0001-Fix-build-reproducibility.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From f8b32901981a06a8db4169b82a704dcf7e8b6560 Mon Sep 17 00:00:00 2001
-From: Joshua Watt <JPEWhacker@gmail.com>
-Date: Wed, 20 Nov 2019 15:43:57 -0600
-Subject: [PATCH] Fix build reproducibility
-
-Changes the comment in pango-enum-types.c to reference the file basename
-instead of the full path. This ensures that the generated file is
-reproducible when it is included in source packages meant for debugging.
-
-Upstream-Status: Pending [https://gitlab.gnome.org/GNOME/pango/merge_requests/159]
-Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
----
- pango/pango-enum-types.c.template | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pango/pango-enum-types.c.template b/pango/pango-enum-types.c.template
-index d922c691..0d55ef74 100644
---- a/pango/pango-enum-types.c.template
-+++ b/pango/pango-enum-types.c.template
-@@ -6,7 +6,7 @@
- /*** END file-header ***/
-
- /*** BEGIN file-production ***/
--/* enumerations from "@filename@" */
-+/* enumerations from "@basename@" */
- /*** END file-production ***/
-
- /*** BEGIN value-header ***/
---
-2.23.0
-
diff --git a/meta/recipes-graphics/pango/pango_1.44.7.bb b/meta/recipes-graphics/pango/pango_1.46.2.bb
index 0ee8abcc09..c41d1e8a9b 100644
--- a/meta/recipes-graphics/pango/pango_1.44.7.bb
+++ b/meta/recipes-graphics/pango/pango_1.46.2.bb
@@ -15,10 +15,8 @@ GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase gtk-doc ptest-gnome upstream-version-is-even gobject-introspection
-SRC_URI += "file://run-ptest \
- file://0001-Fix-build-reproducibility.patch"
-SRC_URI[archive.md5sum] = "c75cc5b833d934d98e83343832e20e5d"
-SRC_URI[archive.sha256sum] = "66a5b6cc13db73efed67b8e933584509f8ddb7b10a8a40c3850ca4a985ea1b1f"
+SRC_URI += " file://run-ptest"
+SRC_URI[archive.sha256sum] = "d89fab5f26767261b493279b65cfb9eb0955cd44c07c5628d36094609fc51841"
DEPENDS = "glib-2.0 glib-2.0-native fontconfig freetype virtual/libiconv cairo harfbuzz fribidi"
diff --git a/meta/recipes-graphics/piglit/piglit_git.bb b/meta/recipes-graphics/piglit/piglit_git.bb
index 58d10d6b9b..d35117a4f9 100644
--- a/meta/recipes-graphics/piglit/piglit_git.bb
+++ b/meta/recipes-graphics/piglit/piglit_git.bb
@@ -10,7 +10,7 @@ SRC_URI = "git://gitlab.freedesktop.org/mesa/piglit.git;protocol=https \
"
UPSTREAM_CHECK_COMMITS = "1"
-SRCREV = "6126c2d4e476c7770d216ffa1932c10e2a5a7813"
+SRCREV = "2a6a8f954dcd3f748055f28e019d2eca64635332"
# (when PV goes above 1.0 remove the trailing r)
PV = "1.0+gitr${SRCPV}"
diff --git a/meta/recipes-graphics/startup-notification/startup-notification-0.12/time_t.patch b/meta/recipes-graphics/startup-notification/startup-notification-0.12/time_t.patch
new file mode 100644
index 0000000000..e5dff007d4
--- /dev/null
+++ b/meta/recipes-graphics/startup-notification/startup-notification-0.12/time_t.patch
@@ -0,0 +1,108 @@
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From a7e49fefde18ea8d5bada8096d32f23bcfb5a6dc Mon Sep 17 00:00:00 2001
+From: "Federico G. Schwindt" <fgsch@openbsd.org>
+Date: Mon, 17 Feb 2014 15:48:12 +0100
+Subject: [PATCH 1/3] Fix crash on 32bit architectures where time_t is 64 bit
+
+This is an ABI change on platforms where sizeof(time_t) doesn't equal
+sizeof(long). For most platforms this change shouldn't make a difference
+at present. OpenBSD recently switched to 64bit time_t on all architectures
+to avoid time_t overflow in 2038 on 32bit machines.
+
+This fix extends to consumers of startup-notification, for instance
+the window manager of XFCE, which is how I got involved in this.
+See http://mail.xfce.org/pipermail/xfce4-dev/2014-February/030611.html
+and follow-ups. The XFCE devs pointed out that my patch to fix a
+crash in XFCE's window manager depends on this startup-notification patch.
+
+Signed-off-by: Julien Danjou <julien@danjou.info>
+---
+ libsn/sn-monitor.c | 8 ++++----
+ libsn/sn-monitor.h | 8 ++++----
+ 2 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/libsn/sn-monitor.c b/libsn/sn-monitor.c
+index 2a9ad16..f419bc1 100644
+--- a/libsn/sn-monitor.c
++++ b/libsn/sn-monitor.c
+@@ -364,8 +364,8 @@ sn_startup_sequence_get_screen (SnStartupSequence *sequence)
+ **/
+ void
+ sn_startup_sequence_get_initiated_time (SnStartupSequence *sequence,
+- long *tv_sec,
+- long *tv_usec)
++ time_t *tv_sec,
++ suseconds_t *tv_usec)
+ {
+ if (tv_sec)
+ *tv_sec = sequence->initiation_time.tv_sec;
+@@ -386,8 +386,8 @@ sn_startup_sequence_get_initiated_time (SnStartupSequence *sequence,
+ **/
+ void
+ sn_startup_sequence_get_last_active_time (SnStartupSequence *sequence,
+- long *tv_sec,
+- long *tv_usec)
++ time_t *tv_sec,
++ suseconds_t *tv_usec)
+ {
+ /* for now the same as get_initiated_time */
+ if (tv_sec)
+diff --git a/libsn/sn-monitor.h b/libsn/sn-monitor.h
+index b58581f..2f639df 100644
+--- a/libsn/sn-monitor.h
++++ b/libsn/sn-monitor.h
+@@ -77,11 +77,11 @@ const char* sn_startup_sequence_get_application_id (SnStartupSequence *se
+ int sn_startup_sequence_get_screen (SnStartupSequence *sequence);
+
+ void sn_startup_sequence_get_initiated_time (SnStartupSequence *sequence,
+- long *tv_sec,
+- long *tv_usec);
++ time_t *tv_sec,
++ suseconds_t *tv_usec);
+ void sn_startup_sequence_get_last_active_time (SnStartupSequence *sequence,
+- long *tv_sec,
+- long *tv_usec);
++ time_t *tv_sec,
++ suseconds_t *tv_usec);
+
+ void sn_startup_sequence_complete (SnStartupSequence *sequence);
+
+--
+2.26.2
+
+From ea9f7e4cc6fd8c08d175ed7774ed2c5bd11c8ef0 Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters@verbum.org>
+Date: Mon, 17 Feb 2014 14:37:09 -0500
+Subject: [PATCH 2/3] Add include of <sys/select.h> for previous patch
+
+Unfortunately while the standard says that <sys/types.h> is the
+correct header to get suseconds_t, at least with glibc, that requires
+-DXOPEN_SOURCE. Which is problematic for a public header, because
+then all *users* of startup-notification will be required to define
+that.
+
+Poking around a bit, it looks like at least with glibc, <sys/select.h>
+will give us an unconditional define.
+
+Signed-off-by: Julien Danjou <julien@danjou.info>
+---
+ libsn/sn-monitor.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/libsn/sn-monitor.h b/libsn/sn-monitor.h
+index 2f639df..cea4e12 100644
+--- a/libsn/sn-monitor.h
++++ b/libsn/sn-monitor.h
+@@ -28,6 +28,7 @@
+ #define __SN_MONITOR_H__
+
+ #include <libsn/sn-common.h>
++#include <sys/select.h>
+
+ SN_BEGIN_DECLS
+
+--
+2.26.2
+
diff --git a/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb b/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb
index a26ab44fa7..d10bddb529 100644
--- a/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb
+++ b/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb
@@ -23,6 +23,7 @@ REQUIRED_DISTRO_FEATURES = "x11"
SRC_URI = "http://www.freedesktop.org/software/startup-notification/releases/${BPN}-${PV}.tar.gz \
file://obsolete_automake_macros.patch \
+ file://time_t.patch \
"
SRC_URI[md5sum] = "2cd77326d4dcaed9a5a23a1232fb38e9"
diff --git a/meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb b/meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb
index 70b32cf8f1..3e1ba196b5 100644
--- a/meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb
+++ b/meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb
@@ -9,7 +9,7 @@ LICENSE = "BitstreamVera"
LIC_FILES_CHKSUM = "file://COPYRIGHT.TXT;md5=27d7484b1e18d0ee4ce538644a3f04be"
PR = "r7"
-inherit fontcache
+inherit allarch fontcache
FONT_PACKAGES = "${PN}"
diff --git a/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.2.bb b/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.2.bb
index 1046b8504f..52821195d1 100644
--- a/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.2.bb
+++ b/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.2.bb
@@ -8,7 +8,7 @@ HOMEPAGE = "https://virgil3d.github.io/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=c81c08eeefd9418fca8f88309a76db10"
-DEPENDS = "libdrm mesa libepoxy"
+DEPENDS = "libdrm virtual/libgl libepoxy"
SRCREV = "7d204f3927be65fb3365dce01dbcd04d447a4985"
SRC_URI = "git://anongit.freedesktop.org/virglrenderer \
file://0001-gallium-Expand-libc-check-to-be-platform-OS-check.patch \
@@ -22,5 +22,3 @@ inherit meson pkgconfig features_check
BBCLASSEXTEND = "native nativesdk"
REQUIRED_DISTRO_FEATURES = "opengl"
-REQUIRED_DISTRO_FEATURES_class-native = ""
-REQUIRED_DISTRO_FEATURES_class-nativesdk = ""
diff --git a/meta/recipes-graphics/vulkan/vulkan-demos/0001-Don-t-build-demos-with-questionably-licensed-data.patch b/meta/recipes-graphics/vulkan/vulkan-demos/0001-Don-t-build-demos-with-questionably-licensed-data.patch
index 76240610f5..153e662733 100644
--- a/meta/recipes-graphics/vulkan/vulkan-demos/0001-Don-t-build-demos-with-questionably-licensed-data.patch
+++ b/meta/recipes-graphics/vulkan/vulkan-demos/0001-Don-t-build-demos-with-questionably-licensed-data.patch
@@ -1,4 +1,4 @@
-From 0cbf9c9831f773e0da66209be9a6ff28d57c2321 Mon Sep 17 00:00:00 2001
+From 663d51cd31fd98411e25f37aaf52b591d9639bf5 Mon Sep 17 00:00:00 2001
From: "Maxin B. John" <maxin.john@intel.com>
Date: Mon, 30 Jul 2018 17:23:29 +0300
Subject: [PATCH] Don't build demos with questionably licensed data
@@ -33,16 +33,15 @@ Upstream-Status: Inappropriate [configuration]
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Maxin B. John <maxin.john@intel.com>
-
---
examples/CMakeLists.txt | 14 --------------
1 file changed, 14 deletions(-)
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
-index e07918c..08b6e23 100644
+index a53c834..71a12e7 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
-@@ -55,18 +55,12 @@ set(EXAMPLES
+@@ -55,9 +55,6 @@ set(EXAMPLES
conditionalrender
conservativeraster
debugmarker
@@ -52,9 +51,10 @@ index e07918c..08b6e23 100644
descriptorsets
displacement
distancefieldfonts
- dynamicuniformbuffer
+@@ -65,9 +62,6 @@ set(EXAMPLES
gears
geometryshader
+ gltfscene
- hdr
- imgui
- indirectdraw
@@ -93,3 +93,6 @@ index e07918c..08b6e23 100644
)
buildExamples()
+--
+2.17.1
+
diff --git a/meta/recipes-graphics/vulkan/vulkan-demos_git.bb b/meta/recipes-graphics/vulkan/vulkan-demos_git.bb
index c94e768b52..4175a56157 100644
--- a/meta/recipes-graphics/vulkan/vulkan-demos_git.bb
+++ b/meta/recipes-graphics/vulkan/vulkan-demos_git.bb
@@ -6,15 +6,15 @@ LIC_FILES_CHKSUM = "file://LICENSE.md;md5=dcf473723faabf17baa9b5f2207599d0 \
file://examples/triangle/triangle.cpp;endline=12;md5=bccd1bf9cadd9e10086cf7872157e4fa"
SRCREV_glm = "1ad55c5016339b83b7eec98c31007e0aee57d2bf"
-SRCREV_gli = "7da5f50931225e9819a26d5cb323c5f42da50bcd"
+SRCREV_ktx = "726d14d02c95bb21ec9e43807751b491d295dd3c"
SRC_URI = "git://github.com/SaschaWillems/Vulkan.git \
git://github.com/g-truc/glm;destsuffix=git/external/glm;name=glm \
- git://github.com/g-truc/gli;destsuffix=git/external/gli;name=gli \
+ git://github.com/KhronosGroup/KTX-Software;destsuffix=git/external/ktx;name=ktx;lfs=0 \
file://0001-Don-t-build-demos-with-questionably-licensed-data.patch \
"
UPSTREAM_CHECK_COMMITS = "1"
-SRCREV = "6d63dc32c320a49be0a56c365151c8f2f176bc59"
+SRCREV = "4818f85916bf88c1ca8c2ed1a46e0e758651489e"
UPSTREAM_CHECK_GITTAGREGEX = "These are not the releases you're looking for"
S = "${WORKDIR}/git"
@@ -39,6 +39,6 @@ EXTRA_OECMAKE = "-DRESOURCE_INSTALL_DIR=${datadir}/vulkan-demos"
ANY_OF_DISTRO_FEATURES = "x11 wayland"
# Can only pick one of [wayland,xcb]
-PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', 'xcb' ,d)}"
+PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', 'xcb', d)}"
PACKAGECONFIG[wayland] = "-DUSE_WAYLAND_WSI=ON, -DUSE_WAYLAND_WSI=OFF, wayland"
PACKAGECONFIG[xcb] = ",,libxcb"
diff --git a/meta/recipes-graphics/vulkan/vulkan-headers_1.1.126.0.bb b/meta/recipes-graphics/vulkan/vulkan-headers_1.2.135.0.bb
index 72c29a72a2..d21c3d62b9 100644
--- a/meta/recipes-graphics/vulkan/vulkan-headers_1.1.126.0.bb
+++ b/meta/recipes-graphics/vulkan/vulkan-headers_1.2.135.0.bb
@@ -5,9 +5,10 @@ SECTION = "libs"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
-SRC_URI = "git://github.com/KhronosGroup/Vulkan-Headers.git;branch=sdk-1.1.126"
+# was sdk-1.2.135 branch but it was removed upstream, commit is in master branch though
+SRC_URI = "git://github.com/KhronosGroup/Vulkan-Headers.git;branch=master"
-SRCREV = "5bc459e2921304c32568b73edaac8d6df5f98b84"
+SRCREV = "fb7f9c9bcd1d1544ea203a1f3d4253d0e90c5a90"
S = "${WORKDIR}/git"
diff --git a/meta/recipes-graphics/vulkan/vulkan-loader_1.1.126.0.bb b/meta/recipes-graphics/vulkan/vulkan-loader_1.2.135.0.bb
index 504cf85a2b..8bab58f0b9 100644
--- a/meta/recipes-graphics/vulkan/vulkan-loader_1.1.126.0.bb
+++ b/meta/recipes-graphics/vulkan/vulkan-loader_1.2.135.0.bb
@@ -9,8 +9,8 @@ SECTION = "libs"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7dbefed23242760aa3475ee42801c5ac"
-SRC_URI = "git://github.com/KhronosGroup/Vulkan-Loader.git;branch=sdk-1.1.126"
-SRCREV = "4adad4ff705fa76f9edb2d37cb57e593decb60ed"
+SRC_URI = "git://github.com/KhronosGroup/Vulkan-Loader.git;branch=sdk-1.2.135"
+SRCREV = "86429d9e7f3542e88fb98ffa7d8a82c10c9828ac"
S = "${WORKDIR}/git"
diff --git a/meta/recipes-graphics/vulkan/vulkan-tools_1.1.126.0.bb b/meta/recipes-graphics/vulkan/vulkan-tools_1.2.135.0.bb
index 2fd61c989a..085c0e27e9 100644
--- a/meta/recipes-graphics/vulkan/vulkan-tools_1.1.126.0.bb
+++ b/meta/recipes-graphics/vulkan/vulkan-tools_1.2.135.0.bb
@@ -5,8 +5,8 @@ SECTION = "libs"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
-SRC_URI = "git://github.com/KhronosGroup/Vulkan-Tools.git;branch=sdk-1.1.126"
-SRCREV = "09695dfc5dbe54f869aeaff8db93bb7bb6a220e0"
+SRC_URI = "git://github.com/KhronosGroup/Vulkan-Tools.git;branch=sdk-1.2.135"
+SRCREV = "6d8197fd6c91d352a601587ffdde28f4cd7bc399"
S = "${WORKDIR}/git"
diff --git a/meta/recipes-graphics/waffle/waffle_1.6.0.bb b/meta/recipes-graphics/waffle/waffle_1.6.1.bb
index a620295978..3f3c0e9028 100644
--- a/meta/recipes-graphics/waffle/waffle_1.6.0.bb
+++ b/meta/recipes-graphics/waffle/waffle_1.6.1.bb
@@ -4,8 +4,8 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4c5154407c2490750dd461c50ad94797 \
file://include/waffle/waffle.h;endline=24;md5=61dbf8697f61c78645e75a93c585b1bf"
SRC_URI = "http://waffle-gl.org/files/release/${BPN}-${PV}/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "61bfc1a478e840825f33ddb4057115e7"
-SRC_URI[sha256sum] = "d9c899f710c50cfdd00f5f4cdfeaef0687d8497362239bdde93bed6c909c81d7"
+SRC_URI[md5sum] = "c91529e579483f44fb330052872b9c73"
+SRC_URI[sha256sum] = "31565649ff0e2d8dff1b8f7f2264ab7a78452063c7e04adfc4ce03e64b655080"
UPSTREAM_CHECK_URI = "http://www.waffle-gl.org/releases.html"
diff --git a/meta/recipes-graphics/wayland/libinput/0001-adjust-for-64bit-time_t-for-32bit-architectures.patch b/meta/recipes-graphics/wayland/libinput/0001-adjust-for-64bit-time_t-for-32bit-architectures.patch
deleted file mode 100644
index 344e6aaf8f..0000000000
--- a/meta/recipes-graphics/wayland/libinput/0001-adjust-for-64bit-time_t-for-32bit-architectures.patch
+++ /dev/null
@@ -1,386 +0,0 @@
-From ab6ce09bfb669177c90cc5c10155eec44e9fc34b Mon Sep 17 00:00:00 2001
-From: Peter Hutterer <peter.hutterer@who-t.net>
-Date: Sat, 23 Nov 2019 17:23:56 -0800
-Subject: [PATCH] Adjust for 64bit time_t for 32bit architectures
-
-Upstream-Status: Submitted [https://gitlab.freedesktop.org/libinput/libinput/merge_requests/346]
-Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
----
- meson.build | 1 +
- src/evdev-mt-touchpad-buttons.c | 15 ++++---
- src/evdev.c | 5 ++-
- src/util-input-event.h | 69 +++++++++++++++++++++++++++++++++
- tools/libinput-record.c | 16 +++++---
- 5 files changed, 90 insertions(+), 16 deletions(-)
- create mode 100644 src/util-input-event.h
-
---- a/meson.build
-+++ b/meson.build
-@@ -220,7 +220,8 @@ endif
- ############ libinput-util.a ############
- src_libinput_util = [
- 'src/libinput-util.c',
-- 'src/libinput-util.h'
-+ 'src/libinput-util.h',
-+ 'src/util-input-event.h'
- ]
- libinput_util = static_library('libinput-util',
- src_libinput_util,
---- a/src/evdev-mt-touchpad-buttons.c
-+++ b/src/evdev-mt-touchpad-buttons.c
-@@ -30,6 +30,7 @@
- #include <unistd.h>
- #include "linux/input.h"
-
-+#include "util-input-event.h"
- #include "evdev-mt-touchpad.h"
-
- #define DEFAULT_BUTTON_ENTER_TIMEOUT ms2us(100)
-@@ -1145,14 +1146,12 @@ tp_notify_clickpadbutton(struct tp_dispa
- if (tp->buttons.trackpoint) {
- if (is_topbutton) {
- struct evdev_dispatch *dispatch = tp->buttons.trackpoint->dispatch;
-- struct input_event event;
-- struct input_event syn_report = {{ 0, 0 }, EV_SYN, SYN_REPORT, 0 };
-+ struct input_event event, syn_report;
-+ int value;
-
-- event.time = us2tv(time);
-- event.type = EV_KEY;
-- event.code = button;
-- event.value = (state == LIBINPUT_BUTTON_STATE_PRESSED) ? 1 : 0;
-- syn_report.time = event.time;
-+ value = (state == LIBINPUT_BUTTON_STATE_PRESSED) ? 1 : 0;
-+ event = input_event_init(time, EV_KEY, button, value);
-+ syn_report = input_event_init(time, EV_SYN, SYN_REPORT, 0);
- dispatch->interface->process(dispatch,
- tp->buttons.trackpoint,
- &event,
---- a/src/evdev.c
-+++ b/src/evdev.c
-@@ -44,6 +44,7 @@
- #include "filter.h"
- #include "libinput-private.h"
- #include "quirks.h"
-+#include "util-input-event.h"
-
- #if HAVE_LIBWACOM
- #include <libwacom/libwacom.h>
-@@ -859,7 +860,7 @@ evdev_print_event(struct evdev_device *d
- {
- static uint32_t offset = 0;
- static uint32_t last_time = 0;
-- uint32_t time = us2ms(tv2us(&e->time));
-+ uint32_t time = us2ms(input_event_time(e));
-
- if (offset == 0) {
- offset = time;
-@@ -891,7 +892,7 @@ static inline void
- evdev_process_event(struct evdev_device *device, struct input_event *e)
- {
- struct evdev_dispatch *dispatch = device->dispatch;
-- uint64_t time = tv2us(&e->time);
-+ uint64_t time = input_event_time(e);
-
- #if 0
- evdev_print_event(device, e);
---- /dev/null
-+++ b/src/util-input-event.h
-@@ -0,0 +1,69 @@
-+/*
-+ * Copyright © 2019 Red Hat, Inc.
-+ *
-+ * Permission is hereby granted, free of charge, to any person obtaining a
-+ * copy of this software and associated documentation files (the "Software"),
-+ * to deal in the Software without restriction, including without limitation
-+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
-+ * and/or sell copies of the Software, and to permit persons to whom the
-+ * Software is furnished to do so, subject to the following conditions:
-+ *
-+ * The above copyright notice and this permission notice (including the next
-+ * paragraph) shall be included in all copies or substantial portions of the
-+ * Software.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-+ * DEALINGS IN THE SOFTWARE.
-+ */
-+
-+#pragma once
-+
-+#include "config.h"
-+
-+#include "util-time.h"
-+#include <linux/input.h>
-+
-+static inline struct input_event
-+input_event_init(uint64_t time,
-+ unsigned int code,
-+ unsigned int type,
-+ int value)
-+{
-+ struct input_event ev;
-+ struct timeval tval = us2tv(time);
-+
-+ ev.input_event_sec = tval.tv_sec;
-+ ev.input_event_usec = tval.tv_usec;
-+ ev.type = type;
-+ ev.code = code;
-+ ev.value = value;
-+
-+ return ev;
-+}
-+
-+static inline uint64_t
-+input_event_time(const struct input_event *e)
-+{
-+ struct timeval tval;
-+
-+ tval.tv_sec = e->input_event_sec;
-+ tval.tv_usec = e->input_event_usec;
-+
-+ return tv2us(&tval);
-+}
-+
-+
-+static inline void
-+input_event_set_time(struct input_event *e,
-+ uint64_t time)
-+{
-+ struct timeval tval = us2tv(time);
-+
-+ e->input_event_sec = tval.tv_sec;
-+ e->input_event_usec = tval.tv_usec;
-+}
---- a/tools/libinput-record.c
-+++ b/tools/libinput-record.c
-@@ -41,6 +41,7 @@
- #include <stdbool.h>
-
- #include "libinput-versionsort.h"
-+#include "util-input-event.h"
- #include "libinput-util.h"
- #include "libinput-version.h"
- #include "libinput-git-version.h"
-@@ -196,8 +197,9 @@ print_evdev_event(struct record_context
- const char *cname;
- bool was_modified = false;
- char desc[1024];
-+ uint64_t time = input_event_time(ev) - ctx->offset;
-
-- ev->time = us2tv(tv2us(&ev->time) - ctx->offset);
-+ input_event_set_time(ev, time);
-
- /* Don't leak passwords unless the user wants to */
- if (!ctx->show_keycodes)
-@@ -215,7 +217,7 @@ print_evdev_event(struct record_context
- static unsigned long last_ms = 0;
- unsigned long time, dt;
-
-- time = us2ms(tv2us(&ev->time));
-+ time = us2ms(input_event_time(ev));
- dt = time - last_ms;
- last_ms = time;
-
-@@ -239,8 +241,8 @@ print_evdev_event(struct record_context
-
- iprintf(ctx,
- "- [%3lu, %6u, %3d, %3d, %6d] # %s\n",
-- ev->time.tv_sec,
-- (unsigned int)ev->time.tv_usec,
-+ ev->input_event_sec,
-+ (unsigned int)ev->input_event_usec,
- ev->type,
- ev->code,
- ev->value,
-@@ -268,16 +270,18 @@ handle_evdev_frame(struct record_context
- while (libevdev_next_event(evdev,
- LIBEVDEV_READ_FLAG_NORMAL,
- &e) == LIBEVDEV_READ_STATUS_SUCCESS) {
-+ uint64_t time;
-
- if (ctx->offset == 0)
-- ctx->offset = tv2us(&e.time);
-+ ctx->offset = input_event_time(&e);
-
- if (d->nevents == d->events_sz)
- resize(d->events, d->events_sz);
-
- event = &d->events[d->nevents++];
- event->type = EVDEV;
-- event->time = tv2us(&e.time) - ctx->offset;
-+ time = input_event_time(&e);
-+ input_event_set_time(&e, time - ctx->offset);
- event->u.evdev = e;
- count++;
-
---- a/src/libinput-private.h
-+++ b/src/libinput-private.h
-@@ -39,6 +39,7 @@
-
- #include "libinput.h"
- #include "libinput-util.h"
-+#include "util-time.h"
- #include "libinput-version.h"
-
- #if LIBINPUT_VERSION_MICRO >= 90
---- a/src/libinput-util.h
-+++ b/src/libinput-util.h
-@@ -206,12 +206,6 @@ clear_bit(unsigned char *array, int bit)
- array[bit / 8] &= ~(1 << (bit % 8));
- }
-
--static inline void
--msleep(unsigned int ms)
--{
-- usleep(ms * 1000);
--}
--
- static inline bool
- long_bit_is_set(const unsigned long *array, int bit)
- {
-@@ -453,53 +447,6 @@ bool
- parse_switch_reliability_property(const char *prop,
- enum switch_reliability *reliability);
-
--static inline uint64_t
--us(uint64_t us)
--{
-- return us;
--}
--
--static inline uint64_t
--ns2us(uint64_t ns)
--{
-- return us(ns / 1000);
--}
--
--static inline uint64_t
--ms2us(uint64_t ms)
--{
-- return us(ms * 1000);
--}
--
--static inline uint64_t
--s2us(uint64_t s)
--{
-- return ms2us(s * 1000);
--}
--
--static inline uint32_t
--us2ms(uint64_t us)
--{
-- return (uint32_t)(us / 1000);
--}
--
--static inline uint64_t
--tv2us(const struct timeval *tv)
--{
-- return s2us(tv->tv_sec) + tv->tv_usec;
--}
--
--static inline struct timeval
--us2tv(uint64_t time)
--{
-- struct timeval tv;
--
-- tv.tv_sec = time / ms2us(1000);
-- tv.tv_usec = time % ms2us(1000);
--
-- return tv;
--}
--
- static inline bool
- safe_atoi_base(const char *str, int *val, int base)
- {
---- /dev/null
-+++ b/src/util-time.h
-@@ -0,0 +1,84 @@
-+/*
-+ * Copyright © 2013-2019 Red Hat, Inc.
-+ *
-+ * Permission is hereby granted, free of charge, to any person obtaining a
-+ * copy of this software and associated documentation files (the "Software"),
-+ * to deal in the Software without restriction, including without limitation
-+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
-+ * and/or sell copies of the Software, and to permit persons to whom the
-+ * Software is furnished to do so, subject to the following conditions:
-+ *
-+ * The above copyright notice and this permission notice (including the next
-+ * paragraph) shall be included in all copies or substantial portions of the
-+ * Software.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-+ * DEALINGS IN THE SOFTWARE.
-+ */
-+
-+#pragma once
-+
-+#include "config.h"
-+
-+#include <time.h>
-+#include <stdint.h>
-+#include <unistd.h>
-+#include <linux/input.h>
-+
-+static inline void
-+msleep(unsigned int ms)
-+{
-+ usleep(ms * 1000);
-+}
-+
-+static inline uint64_t
-+us(uint64_t us)
-+{
-+ return us;
-+}
-+
-+static inline uint64_t
-+ns2us(uint64_t ns)
-+{
-+ return us(ns / 1000);
-+}
-+
-+static inline uint64_t
-+ms2us(uint64_t ms)
-+{
-+ return us(ms * 1000);
-+}
-+
-+static inline uint64_t
-+s2us(uint64_t s)
-+{
-+ return ms2us(s * 1000);
-+}
-+
-+static inline uint32_t
-+us2ms(uint64_t us)
-+{
-+ return (uint32_t)(us / 1000);
-+}
-+
-+static inline uint64_t
-+tv2us(const struct timeval *tv)
-+{
-+ return s2us(tv->tv_sec) + tv->tv_usec;
-+}
-+
-+static inline struct timeval
-+us2tv(uint64_t time)
-+{
-+ struct timeval tv;
-+
-+ tv.tv_sec = time / ms2us(1000);
-+ tv.tv_usec = time % ms2us(1000);
-+
-+ return tv;
-+}
diff --git a/meta/recipes-graphics/wayland/libinput/run-ptest b/meta/recipes-graphics/wayland/libinput/run-ptest
new file mode 100644
index 0000000000..5a84c568b9
--- /dev/null
+++ b/meta/recipes-graphics/wayland/libinput/run-ptest
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+/usr/libexec/libinput/libinput-test-suite
+if [ $? -eq 0 ]; then
+ echo 'PASS: libinput-test-suite'
+else
+ echo 'FAIL: libinput-test-suite'
+fi
+
diff --git a/meta/recipes-graphics/wayland/libinput_1.14.3.bb b/meta/recipes-graphics/wayland/libinput_1.16.1.bb
index bc5a76dc9a..1497609183 100644
--- a/meta/recipes-graphics/wayland/libinput_1.14.3.bb
+++ b/meta/recipes-graphics/wayland/libinput_1.16.1.bb
@@ -10,18 +10,25 @@ SECTION = "libs"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=1f2ea9ebff3a2c6d458faf58492efb63"
-DEPENDS = "libevdev udev mtdev"
+DEPENDS = "libevdev udev mtdev libcheck"
SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BP}.tar.xz \
- file://0001-adjust-for-64bit-time_t-for-32bit-architectures.patch \
+ file://run-ptest \
file://determinism.patch \
-"
-SRC_URI[md5sum] = "d052faa64eb6d2e649e582cc0fcf6e32"
-SRC_URI[sha256sum] = "0feb3a0589709cc1032893bfaf4c49150d5360bd9782bec888f9e4dd9044c5b7"
+ "
+SRC_URI[sha256sum] = "7ba7d1aeedd15168bb21d17e9e628aa1c27957963a423a3fea3938a501758539"
UPSTREAM_CHECK_REGEX = "libinput-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)"
-inherit meson pkgconfig lib_package
+inherit meson pkgconfig lib_package ptest
+
+# Patch out build directory, otherwise it leaks into ptest binary
+do_configure_append() {
+ sed -i -e "s,${WORKDIR},,g" config.h
+ if [ -e "litest-config.h" ]; then
+ sed -i -e "s,${WORKDIR},,g" litest-config.h
+ fi
+}
PACKAGECONFIG ??= ""
PACKAGECONFIG[libwacom] = "-Dlibwacom=true,-Dlibwacom=false,libwacom"
@@ -31,10 +38,12 @@ UDEVDIR = "`pkg-config --variable=udevdir udev`"
EXTRA_OEMESON += "-Dudev-dir=${UDEVDIR} \
-Ddocumentation=false \
- -Dtests=false \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', '-Dtests=true -Dinstall-tests=true', '-Dtests=false -Dinstall-tests=false', d)} \
-Dzshcompletiondir=no"
# package name changed in 1.8.1 upgrade: make sure package upgrades work
RPROVIDES_${PN} = "libinput"
RREPLACES_${PN} = "libinput"
RCONFLICTS_${PN} = "libinput"
+
+FILES_${PN}-ptest += "${libexecdir}/libinput/libinput-test-suite"
diff --git a/meta/recipes-graphics/wayland/wayland-protocols_1.18.bb b/meta/recipes-graphics/wayland/wayland-protocols_1.20.bb
index c8bec66a40..3fb78f658c 100644
--- a/meta/recipes-graphics/wayland/wayland-protocols_1.18.bb
+++ b/meta/recipes-graphics/wayland/wayland-protocols_1.20.bb
@@ -11,8 +11,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c7b12b6702da38ca028ace54aae3d484 \
SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
"
-SRC_URI[md5sum] = "af38f22d8e233c2f2e00ddc8dcc94694"
-SRC_URI[sha256sum] = "3d73b7e7661763dc09d7d9107678400101ecff2b5b1e531674abfa81e04874b3"
+SRC_URI[md5sum] = "b0836533a3f2dc6585b1dae00341157f"
+SRC_URI[sha256sum] = "9782b7a1a863d82d7c92478497d13c758f52e7da4f197aa16443f73de77e4de7"
UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
diff --git a/meta/recipes-graphics/wayland/wayland/0001-build-Fix-strndup-detection-on-MinGW.patch b/meta/recipes-graphics/wayland/wayland/0001-build-Fix-strndup-detection-on-MinGW.patch
index e445838750..c2ceae4a47 100644
--- a/meta/recipes-graphics/wayland/wayland/0001-build-Fix-strndup-detection-on-MinGW.patch
+++ b/meta/recipes-graphics/wayland/wayland/0001-build-Fix-strndup-detection-on-MinGW.patch
@@ -17,8 +17,6 @@ Upstream-Status: Submitted [https://gitlab.freedesktop.org/wayland/wayland/merge
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/meson.build b/meson.build
-index 26b084f..c05d019 100644
--- a/meson.build
+++ b/meson.build
@@ -36,11 +36,11 @@ have_funcs = [
@@ -30,10 +28,7 @@ index 26b084f..c05d019 100644
foreach f: have_funcs
config_h.set('HAVE_' + f.underscorify().to_upper(), cc.has_function(f))
endforeach
-+config_h.set('HAVE_STRNDUP', cc.has_function('strndup', prefix:'#include <string.h>'))
++config_h.set('HAVE_STRNDUP', cc.has_function('strndup') and cc.has_header_symbol('string.h', 'strndup'))
if get_option('libraries')
ffi_dep = dependency('libffi')
---
-2.17.1
-
diff --git a/meta/recipes-graphics/wayland/wayland/run-ptest b/meta/recipes-graphics/wayland/wayland/run-ptest
new file mode 100644
index 0000000000..7e8d9de046
--- /dev/null
+++ b/meta/recipes-graphics/wayland/wayland/run-ptest
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+export WAYLAND_SCANNER=wayland-scanner
+export TEST_DATA_DIR=tests/data
+export TEST_OUTPUT_DIR=tests/output
+export SED=sed
+export WAYLAND_EGL_LIB=/usr/lib/libwayland-egl.so.1
+export NM=nm
+
+for i in `ls tests/*-test tests/wayland-egl-symbols-check tests/scanner-test.sh`; do
+ $i
+ if [ $? -eq 0 ]; then
+ echo "PASS: $i"
+ else
+ echo "FAIL: $i"
+ fi
+done
diff --git a/meta/recipes-graphics/wayland/wayland_1.18.0.bb b/meta/recipes-graphics/wayland/wayland_1.18.0.bb
index 5dc31163da..00be3aac27 100644
--- a/meta/recipes-graphics/wayland/wayland_1.18.0.bb
+++ b/meta/recipes-graphics/wayland/wayland_1.18.0.bb
@@ -13,6 +13,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b31d8f53b6aaf2b4985d7dd7810a70d1 \
DEPENDS = "expat libffi wayland-native"
SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
+ file://run-ptest \
file://0002-meson.build-find-the-native-wayland-scanner-directly.patch \
file://0002-Do-not-hardcode-the-path-to-wayland-scanner.patch \
file://0001-build-Fix-strndup-detection-on-MinGW.patch \
@@ -23,7 +24,7 @@ SRC_URI[sha256sum] = "4675a79f091020817a98fd0484e7208c8762242266967f55a67776936c
UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
-inherit meson pkgconfig
+inherit meson pkgconfig ptest
PACKAGECONFIG ??= "dtd-validation"
PACKAGECONFIG[dtd-validation] = "-Ddtd_validation=true,-Ddtd_validation=false,libxml2,,"
@@ -39,6 +40,15 @@ do_install_append_class-native() {
-i ${D}/${datadir}/aclocal/wayland-scanner.m4
}
+do_install_ptest() {
+ mkdir -p ${D}${PTEST_PATH}/tests/data
+ cp -rf ${B}/tests/*-test ${B}/tests/*-checker ${D}${PTEST_PATH}/tests
+ cp -rf ${B}/tests/*-checker ${D}${PTEST_PATH}
+ cp -rf ${S}/tests/scanner-test.sh ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/data/* ${D}${PTEST_PATH}/tests/data/
+ cp -rf ${S}/egl/wayland-egl-symbols-check ${D}${PTEST_PATH}/tests/
+}
+
sysroot_stage_all_append_class-target () {
rm ${SYSROOT_DESTDIR}/${datadir}/aclocal/wayland-scanner.m4
cp ${STAGING_DATADIR_NATIVE}/aclocal/wayland-scanner.m4 ${SYSROOT_DESTDIR}/${datadir}/aclocal/
@@ -48,3 +58,5 @@ FILES_${PN} = "${libdir}/*${SOLIBS}"
FILES_${PN}-dev += "${bindir} ${datadir}/wayland"
BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS_${PN}-ptest += "binutils sed"
diff --git a/meta/recipes-graphics/wayland/weston-init.bb b/meta/recipes-graphics/wayland/weston-init.bb
index e3e739e2b7..07cec75fb3 100644
--- a/meta/recipes-graphics/wayland/weston-init.bb
+++ b/meta/recipes-graphics/wayland/weston-init.bb
@@ -5,19 +5,33 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384
PACKAGE_ARCH = "${MACHINE_ARCH}"
SRC_URI = "file://init \
+ file://weston.env \
file://weston.ini \
file://weston@.service \
+ file://weston@.socket \
file://71-weston-drm.rules \
+ file://weston-autologin \
file://weston-start"
S = "${WORKDIR}"
+DEFAULTBACKEND ??= ""
+DEFAULTBACKEND_qemuall ?= "fbdev"
+DEFAULTBACKEND_qemuarm64 = "drm"
+DEFAULTBACKEND_qemux86 = "drm"
+DEFAULTBACKEND_qemux86-64 = "drm"
+
do_install() {
install -Dm755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/weston
install -D -p -m0644 ${WORKDIR}/weston.ini ${D}${sysconfdir}/xdg/weston/weston.ini
+ install -Dm644 ${WORKDIR}/weston.env ${D}${sysconfdir}/default/weston
# Install Weston systemd service and accompanying udev rule
install -D -p -m0644 ${WORKDIR}/weston@.service ${D}${systemd_system_unitdir}/weston@.service
+ install -D -p -m0644 ${WORKDIR}/weston@.socket ${D}${systemd_system_unitdir}/weston@.socket
+ if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then
+ install -D -p -m0644 ${WORKDIR}/weston-autologin ${D}${sysconfdir}/pam.d/weston-autologin
+ fi
sed -i -e s:/etc:${sysconfdir}:g \
-e s:/usr/bin:${bindir}:g \
-e s:/var:${localstatedir}:g \
@@ -28,6 +42,9 @@ do_install() {
install -Dm755 ${WORKDIR}/weston-start ${D}${bindir}/weston-start
sed -i 's,@DATADIR@,${datadir},g' ${D}${bindir}/weston-start
sed -i 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${bindir}/weston-start
+ if [ -n "${DEFAULTBACKEND}" ]; then
+ sed -i -e "/^\[core\]/a backend=${DEFAULTBACKEND}-backend.so" ${D}${sysconfdir}/xdg/weston/weston.ini
+ fi
}
inherit update-rc.d features_check systemd
@@ -40,9 +57,9 @@ RDEPENDS_${PN} = "weston kbd"
INITSCRIPT_NAME = "weston"
INITSCRIPT_PARAMS = "start 9 5 2 . stop 20 0 1 6 ."
-FILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini ${systemd_system_unitdir}/weston@.service"
+FILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini ${systemd_system_unitdir}/weston@.service ${systemd_system_unitdir}/weston@.socket ${sysconfdir}/default/weston ${sysconfdir}/pam.d/"
-CONFFILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini"
+CONFFILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini ${sysconfdir}/default/weston"
SYSTEMD_SERVICE_${PN} = "weston@%i.service"
SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta/recipes-graphics/wayland/weston-init/qemuall/weston.ini b/meta/recipes-graphics/wayland/weston-init/qemuall/weston.ini
deleted file mode 100644
index 17ebd7fdab..0000000000
--- a/meta/recipes-graphics/wayland/weston-init/qemuall/weston.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[core]
-backend=fbdev-backend.so
diff --git a/meta/recipes-graphics/wayland/weston-init/qemux86/weston.ini b/meta/recipes-graphics/wayland/weston-init/qemux86/weston.ini
deleted file mode 100644
index e69de29bb2..0000000000
--- a/meta/recipes-graphics/wayland/weston-init/qemux86/weston.ini
+++ /dev/null
diff --git a/meta/recipes-graphics/wayland/weston-init/weston-autologin b/meta/recipes-graphics/wayland/weston-init/weston-autologin
new file mode 100644
index 0000000000..f6e6d106de
--- /dev/null
+++ b/meta/recipes-graphics/wayland/weston-init/weston-autologin
@@ -0,0 +1,11 @@
+auth required pam_nologin.so
+auth required pam_unix.so try_first_pass nullok
+
+account required pam_nologin.so
+account required pam_unix.so
+
+session required pam_env.so
+session required pam_unix.so
+-session optional pam_systemd.so type=wayland class=user desktop=weston
+-session optional pam_loginuid.so
+
diff --git a/meta/recipes-graphics/wayland/weston-init/qemux86-64/weston.ini b/meta/recipes-graphics/wayland/weston-init/weston.env
index e69de29bb2..e69de29bb2 100644
--- a/meta/recipes-graphics/wayland/weston-init/qemux86-64/weston.ini
+++ b/meta/recipes-graphics/wayland/weston-init/weston.env
diff --git a/meta/recipes-graphics/wayland/weston-init/weston.ini b/meta/recipes-graphics/wayland/weston-init/weston.ini
index 1eecf48bc1..b48726d59c 100644
--- a/meta/recipes-graphics/wayland/weston-init/weston.ini
+++ b/meta/recipes-graphics/wayland/weston-init/weston.ini
@@ -1,9 +1,10 @@
# configuration file for Weston
-#[core]
+[core]
#modules=xwayland.so,cms-colord.so
#shell=desktop-shell.so
#gbm-format=xrgb2101010
+require-input=false
#[shell]
#background-image=/usr/share/backgrounds/gnome/Aqua.jpg
@@ -67,8 +68,8 @@
#min_accel_factor = 0.16
#max_accel_factor = 1.0
-#[screen-share]
-#command=/usr/bin/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --no-clients-resize
+[screen-share]
+command=/usr/bin/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --no-clients-resize
#[xwayland]
#path=/usr/bin/Xwayland
diff --git a/meta/recipes-graphics/wayland/weston-init/weston@.service b/meta/recipes-graphics/wayland/weston-init/weston@.service
index 39e193014a..ce8f4fb71a 100644
--- a/meta/recipes-graphics/wayland/weston-init/weston@.service
+++ b/meta/recipes-graphics/wayland/weston-init/weston@.service
@@ -1,15 +1,65 @@
+# This is a system unit for launching Weston with auto-login as the
+# user configured here.
+#
+# Weston must be built with systemd support, and your weston.ini must load
+# the plugin systemd-notify.so.
[Unit]
-Description=Weston Wayland Compositor
-RequiresMountsFor=/run
-Conflicts=plymouth-quit.service
-After=systemd-user-sessions.service plymouth-quit-wait.service
+Description=Weston, a Wayland compositor, as a system service
+Documentation=man:weston(1) man:weston.ini(5)
+Documentation=http://wayland.freedesktop.org/
+
+# Make sure we are started after logins are permitted.
+After=systemd-user-sessions.service
+
+# If Plymouth is used, we want to start when it is on its way out.
+After=plymouth-quit-wait.service
+
+# D-Bus is necessary for contacting logind. Logind is required.
+Wants=dbus.socket
+After=dbus.socket
+
+# Since we are part of the graphical session, make sure we are started before
+# it is complete.
+Before=graphical.target
+
+# Prevent starting on systems without virtual consoles, Weston requires one
+# for now.
+ConditionPathExists=/dev/tty0
[Service]
-User=%i
-PAMName=login
-EnvironmentFile=-/etc/default/weston
+# Requires systemd-notify.so Weston plugin.
+Type=notify
+EnvironmentFile=/etc/default/weston
+ExecStart=/usr/bin/weston --modules=systemd-notify.so
+
+# Optional watchdog setup
+TimeoutStartSec=60
+WatchdogSec=20
+
+# The user to run Weston as.
+User=%I
+
+# Make sure working directory is users home directory
+WorkingDirectory=/home/%i
+
+# Set up a full user session for the user, required by Weston.
+PAMName=weston-autologin
+
+# A virtual terminal is needed.
+TTYPath=/dev/tty7
+TTYReset=yes
+TTYVHangup=yes
+TTYVTDisallocate=yes
+
+# Fail to start if not controlling the tty.
+StandardInput=tty-fail
+StandardOutput=journal
StandardError=journal
-PermissionsStartOnly=true
-IgnoreSIGPIPE=no
-ExecStart=/usr/bin/weston-start -v -e -- $OPTARGS
+# Log this user with utmp, letting it show up with commands 'w' and 'who'.
+UtmpIdentifier=tty7
+UtmpMode=user
+
+[Install]
+WantedBy=graphical.target
+DefaultInstance=tty7
diff --git a/meta/recipes-graphics/wayland/weston-init/weston@.socket b/meta/recipes-graphics/wayland/weston-init/weston@.socket
new file mode 100644
index 0000000000..f1790d74a8
--- /dev/null
+++ b/meta/recipes-graphics/wayland/weston-init/weston@.socket
@@ -0,0 +1,10 @@
+[Unit]
+Description=Weston Wayland socket
+After=user-runtime-dir@1000.service
+
+[Socket]
+ListenStream=/run/user/1000/wayland-%I
+
+[Install]
+WantedBy=sockets.target
+
diff --git a/meta/recipes-graphics/wayland/weston/0001-tests-include-fcntl.h-for-open-O_RDWR-O_CLOEXEC-and-.patch b/meta/recipes-graphics/wayland/weston/0001-tests-include-fcntl.h-for-open-O_RDWR-O_CLOEXEC-and-.patch
new file mode 100644
index 0000000000..6fe86ff3f0
--- /dev/null
+++ b/meta/recipes-graphics/wayland/weston/0001-tests-include-fcntl.h-for-open-O_RDWR-O_CLOEXEC-and-.patch
@@ -0,0 +1,47 @@
+From 58760e09eed662a72da939ff4802d605489cff8e Mon Sep 17 00:00:00 2001
+From: Denys Dmytriyenko <denys@ti.com>
+Date: Tue, 8 Sep 2020 19:37:42 -0400
+Subject: [PATCH] tests: include fcntl.h for open(), O_RDWR, O_CLOEXEC and
+ O_CREAT
+
+musl libc (unlike glibc) requires explicitly incuding fcntl.h to define open(),
+O_RDWR, O_CLOEXEC and O_CREAT. Otherwise the build fails with the errors:
+
+| ../weston-9.0.0/tests/weston-test-fixture-compositor.c: In function 'wait_for_lock':
+| ../weston-9.0.0/tests/weston-test-fixture-compositor.c:135:7: warning: implicit declaration of function 'open'; did you mean 'popen'? [-Wimplicit-function-declaration]
+| 135 | fd = open(lock_path, O_RDWR | O_CLOEXEC | O_CREAT, 00700);
+| | ^~~~
+| | popen
+| ../weston-9.0.0/tests/weston-test-fixture-compositor.c:135:23: error: 'O_RDWR' undeclared (first use in this function)
+| 135 | fd = open(lock_path, O_RDWR | O_CLOEXEC | O_CREAT, 00700);
+| | ^~~~~~
+| ../weston-9.0.0/tests/weston-test-fixture-compositor.c:135:23: note: each undeclared identifier is reported only once for each function it appears in
+| ../weston-9.0.0/tests/weston-test-fixture-compositor.c:135:32: error: 'O_CLOEXEC' undeclared (first use in this function)
+| 135 | fd = open(lock_path, O_RDWR | O_CLOEXEC | O_CREAT, 00700);
+| | ^~~~~~~~~
+| ../weston-9.0.0/tests/weston-test-fixture-compositor.c:135:44: error: 'O_CREAT' undeclared (first use in this function)
+| 135 | fd = open(lock_path, O_RDWR | O_CLOEXEC | O_CREAT, 00700);
+| | ^~~~~~~
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/493/diffs?commit_id=b10c0e843dcb8148bbe869bb15261955b94ac98c]
+
+Signed-off-by: Denys Dmytriyenko <denys@ti.com>
+---
+ tests/weston-test-fixture-compositor.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tests/weston-test-fixture-compositor.c b/tests/weston-test-fixture-compositor.c
+index 0c9855f..e0e32c9 100644
+--- a/tests/weston-test-fixture-compositor.c
++++ b/tests/weston-test-fixture-compositor.c
+@@ -31,6 +31,7 @@
+ #include <unistd.h>
+ #include <sys/file.h>
+ #include <errno.h>
++#include <fcntl.h>
+
+ #include "shared/helpers.h"
+ #include "weston-test-fixture-compositor.h"
+--
+2.7.4
+
diff --git a/meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch b/meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch
index 62b864c134..3279a728cc 100644
--- a/meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch
+++ b/meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch
@@ -1,7 +1,8 @@
-From 5f2d71998eb77068cbaee2d468cbb296a42d5739 Mon Sep 17 00:00:00 2001
+From a1548c742bf2dedbb47282d8a00407b60bbab669 Mon Sep 17 00:00:00 2001
From: Tom Hochstein <tom.hochstein@nxp.com>
Date: Wed, 22 Feb 2017 15:53:30 +0200
Subject: [PATCH] weston-launch: Provide a default version that doesn't require
+
PAM
weston-launch requires PAM for starting weston as a non-root user.
@@ -57,7 +58,7 @@ index 08d23ec..cb9fd3f 100644
install: true
)
diff --git a/libweston/weston-launch.c b/libweston/weston-launch.c
-index 8a711b4..54c567a 100644
+index 521cb2c..2d42d33 100644
--- a/libweston/weston-launch.c
+++ b/libweston/weston-launch.c
@@ -51,7 +51,9 @@
@@ -97,7 +98,7 @@ index 8a711b4..54c567a 100644
static int
setup_launcher_socket(struct weston_launch *wl)
-@@ -431,6 +437,7 @@ quit(struct weston_launch *wl, int status)
+@@ -466,6 +472,7 @@ quit(struct weston_launch *wl, int status)
close(wl->signalfd);
close(wl->sock[0]);
@@ -105,15 +106,15 @@ index 8a711b4..54c567a 100644
if (wl->new_user) {
err = pam_close_session(wl->ph, 0);
if (err)
-@@ -438,6 +445,7 @@ quit(struct weston_launch *wl, int status)
+@@ -473,6 +480,7 @@ quit(struct weston_launch *wl, int status)
err, pam_strerror(wl->ph, err));
pam_end(wl->ph, err);
}
+#endif
- if (ioctl(wl->tty, KDSKBMUTE, 0) &&
- ioctl(wl->tty, KDSKBMODE, wl->kb_mode))
-@@ -666,6 +674,7 @@ setup_session(struct weston_launch *wl, char **child_argv)
+ /*
+ * Get a fresh handle to the tty as the previous one is in
+@@ -710,6 +718,7 @@ setup_session(struct weston_launch *wl, char **child_argv)
setenv("HOME", wl->pw->pw_dir, 1);
setenv("SHELL", wl->pw->pw_shell, 1);
@@ -121,7 +122,7 @@ index 8a711b4..54c567a 100644
env = pam_getenvlist(wl->ph);
if (env) {
for (i = 0; env[i]; ++i) {
-@@ -674,6 +683,7 @@ setup_session(struct weston_launch *wl, char **child_argv)
+@@ -718,6 +727,7 @@ setup_session(struct weston_launch *wl, char **child_argv)
}
free(env);
}
@@ -129,7 +130,7 @@ index 8a711b4..54c567a 100644
/*
* We open a new session, so it makes sense
-@@ -745,8 +755,10 @@ static void
+@@ -789,8 +799,10 @@ static void
help(const char *name)
{
fprintf(stderr, "Usage: %s [args...] [-- [weston args..]]\n", name);
@@ -140,7 +141,7 @@ index 8a711b4..54c567a 100644
fprintf(stderr, " -t, --tty Start session on alternative tty,\n"
" e.g. -t /dev/tty4, requires -u option.\n");
fprintf(stderr, " -v, --verbose Be verbose\n");
-@@ -760,7 +772,9 @@ main(int argc, char *argv[])
+@@ -804,7 +816,9 @@ main(int argc, char *argv[])
int i, c;
char *tty = NULL;
struct option opts[] = {
@@ -150,7 +151,7 @@ index 8a711b4..54c567a 100644
{ "tty", required_argument, NULL, 't' },
{ "verbose", no_argument, NULL, 'v' },
{ "help", no_argument, NULL, 'h' },
-@@ -772,11 +786,16 @@ main(int argc, char *argv[])
+@@ -816,11 +830,16 @@ main(int argc, char *argv[])
while ((c = getopt_long(argc, argv, "u:t:vh", opts, &i)) != -1) {
switch (c) {
case 'u':
@@ -167,7 +168,7 @@ index 8a711b4..54c567a 100644
break;
case 't':
tty = optarg;
-@@ -828,8 +847,10 @@ main(int argc, char *argv[])
+@@ -872,8 +891,10 @@ main(int argc, char *argv[])
if (setup_tty(&wl, tty) < 0)
exit(EXIT_FAILURE);
@@ -179,7 +180,7 @@ index 8a711b4..54c567a 100644
if (setup_launcher_socket(&wl) < 0)
exit(EXIT_FAILURE);
diff --git a/meson_options.txt b/meson_options.txt
-index c862ecc..73ef2c3 100644
+index 239bd2d..99e4ec3 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -73,6 +73,13 @@ option(
diff --git a/meta/recipes-graphics/wayland/weston/dont-use-plane-add-prop.patch b/meta/recipes-graphics/wayland/weston/dont-use-plane-add-prop.patch
new file mode 100644
index 0000000000..a4444e5d18
--- /dev/null
+++ b/meta/recipes-graphics/wayland/weston/dont-use-plane-add-prop.patch
@@ -0,0 +1,23 @@
+Fix atomic modesetting with musl
+
+atomic modesetting seems to fail with drm weston backend and this patch fixes
+it, below errors are seen before weston exits
+
+atomic: couldn't commit new state: Invalid argument
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/wayland/weston/-/issues/158]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/libweston/backend-drm/kms.c
++++ b/libweston/backend-drm/kms.c
+@@ -1168,8 +1168,8 @@ drm_pending_state_apply_atomic(struct dr
+ wl_list_for_each(plane, &b->plane_list, link) {
+ drm_debug(b, "\t\t[atomic] starting with plane %lu disabled\n",
+ (unsigned long) plane->plane_id);
+- plane_add_prop(req, plane, WDRM_PLANE_CRTC_ID, 0);
+- plane_add_prop(req, plane, WDRM_PLANE_FB_ID, 0);
++ //plane_add_prop(req, plane, WDRM_PLANE_CRTC_ID, 0);
++ //plane_add_prop(req, plane, WDRM_PLANE_FB_ID, 0);
+ }
+
+ flags |= DRM_MODE_ATOMIC_ALLOW_MODESET;
diff --git a/meta/recipes-graphics/wayland/weston_8.0.0.bb b/meta/recipes-graphics/wayland/weston_9.0.0.bb
index 83aee870aa..75f9fb05fd 100644
--- a/meta/recipes-graphics/wayland/weston_8.0.0.bb
+++ b/meta/recipes-graphics/wayland/weston_9.0.0.bb
@@ -10,9 +10,12 @@ SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
file://weston.desktop \
file://xwayland.weston-start \
file://0001-weston-launch-Provide-a-default-version-that-doesn-t.patch \
+ file://0001-tests-include-fcntl.h-for-open-O_RDWR-O_CLOEXEC-and-.patch \
"
-SRC_URI[md5sum] = "53e4810d852df0601d01fd986a5b22b3"
-SRC_URI[sha256sum] = "7518b49b2eaa1c3091f24671bdcc124fd49fc8f1af51161927afa4329c027848"
+
+SRC_URI_append_libc-musl = " file://dont-use-plane-add-prop.patch "
+
+SRC_URI[sha256sum] = "5cf5d6ce192e0eb15c1fc861a436bf21b5bb3b91dbdabbdebe83e1f83aa098fe"
UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
@@ -20,18 +23,24 @@ inherit meson pkgconfig useradd features_check
# depends on virtual/egl
REQUIRED_DISTRO_FEATURES = "opengl"
-DEPENDS = "libxkbcommon gdk-pixbuf pixman cairo glib-2.0 jpeg"
+DEPENDS = "libxkbcommon gdk-pixbuf pixman cairo glib-2.0"
DEPENDS += "wayland wayland-protocols libinput virtual/egl pango wayland-native"
WESTON_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:1])}"
EXTRA_OEMESON += "-Dbackend-default=auto -Dbackend-rdp=false -Dpipewire=false"
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms fbdev wayland egl', '', d)} \
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms fbdev wayland egl clients', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', '', d)} \
${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd x11', d)} \
${@bb.utils.contains_any('DISTRO_FEATURES', 'wayland x11', '', 'headless', d)} \
- clients launch"
+ launch \
+ image-jpeg \
+ screenshare \
+ shell-desktop \
+ shell-fullscreen \
+ shell-ivi"
+
#
# Compositor choices
#
@@ -64,9 +73,19 @@ PACKAGECONFIG[colord] = "-Dcolor-management-colord=true,-Dcolor-management-color
# Clients support
PACKAGECONFIG[clients] = "-Dsimple-clients=all -Ddemo-clients=true,-Dsimple-clients= -Ddemo-clients=false"
# Virtual remote output with GStreamer on DRM backend
-PACKAGECONFIG[remoting] = "-Dremoting=true,-Dremoting=false,gstreamer-1.0"
+PACKAGECONFIG[remoting] = "-Dremoting=true,-Dremoting=false,gstreamer1.0"
# Weston with PAM support
PACKAGECONFIG[pam] = "-Dpam=true,-Dpam=false,libpam"
+# Weston with screen-share support
+PACKAGECONFIG[screenshare] = "-Dscreenshare=true,-Dscreenshare=false"
+# Traditional desktop shell
+PACKAGECONFIG[shell-desktop] = "-Dshell-desktop=true,-Dshell-desktop=false"
+# Fullscreen shell
+PACKAGECONFIG[shell-fullscreen] = "-Dshell-fullscreen=true,-Dshell-fullscreen=false"
+# In-Vehicle Infotainment (IVI) shell
+PACKAGECONFIG[shell-ivi] = "-Dshell-ivi=true,-Dshell-ivi=false"
+# JPEG image loading support
+PACKAGECONFIG[image-jpeg] = "-Dimage-jpeg=true,-Dimage-jpeg=false, jpeg"
do_install_append() {
# Weston doesn't need the .la files to load modules, so wipe them
diff --git a/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb b/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
index 4f831932e7..d2a16643fe 100644
--- a/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
+++ b/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
@@ -11,8 +11,8 @@ inherit autotools pkgconfig features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
-SRCREV = "03dadf55109bd43d3380f040debe9f82f66f2f35"
-SRC_URI = "git://github.com/tias/xinput_calibrator.git \
+SRCREV = "18ec53f1cada39f905614ebfaffed5c7754ecf46"
+SRC_URI = "git://github.com/kreijack/xinput_calibrator.git;branch=libinput \
file://30xinput_calibrate.sh \
file://Allow-xinput_calibrator_pointercal.sh-to-be-run-as-n.patch \
file://0001-calibrator.hh-Include-string-to-get-std-string.patch \
diff --git a/meta/recipes-graphics/xorg-app/xev/diet-x11.patch b/meta/recipes-graphics/xorg-app/xev/diet-x11.patch
index 53c0ac2e61..361369b291 100644
--- a/meta/recipes-graphics/xorg-app/xev/diet-x11.patch
+++ b/meta/recipes-graphics/xorg-app/xev/diet-x11.patch
@@ -1,14 +1,19 @@
+From b9b2b8d1af283a13cdccea55562cf332de48dcb9 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross@openedhand.com>
+Date: Wed, 28 Mar 2007 16:10:50 +0000
+Subject: [PATCH] Add xev
+
Upstream-Status: Inappropriate [disable feature]
---
- xev.c | 16 ++++++++--------
- 1 file changed, 8 insertions(+), 8 deletions(-)
+ xev.c | 64 +----------------------------------------------------------
+ 1 file changed, 1 insertion(+), 63 deletions(-)
-Index: xev-1.2.3/xev.c
-===================================================================
---- xev-1.2.3.orig/xev.c
-+++ xev-1.2.3/xev.c
-@@ -125,17 +125,6 @@ do_KeyPress(XEvent *eventp)
+diff --git a/xev.c b/xev.c
+index ea69234..6d5eb30 100644
+--- a/xev.c
++++ b/xev.c
+@@ -175,17 +175,6 @@ do_KeyPress(XEvent *eventp)
nbytes = XLookupString(e, str, 256, &ks, NULL);
/* not supposed to call XmbLookupString on a key release event */
@@ -26,24 +31,24 @@ Index: xev-1.2.3/xev.c
if (ks == NoSymbol)
ksname = "NoSymbol";
-@@ -168,16 +157,6 @@ do_KeyPress(XEvent *eventp)
+@@ -220,16 +209,6 @@ do_KeyPress(XEvent *eventp)
}
/* not supposed to call XmbLookupString on a key release event */
- if (e->type == KeyPress && xic) {
-- printf(" XmbLookupString gives %d bytes: ", nmbbytes);
+- output(Indent, "XmbLookupString gives %d bytes: ", nmbbytes);
- if (nmbbytes > 0) {
- dump(buf, nmbbytes);
-- printf(" \"%s\"\n", buf);
+- output(NewLine, " \"%s\"", buf);
- }
- else {
-- printf("\n");
+- output_new_line();
- }
- }
- printf(" XFilterEvent returns: %s\n",
+ output(Indent | NewLine, "XFilterEvent returns: %s",
XFilterEvent(eventp, e->window) ? "True" : "False");
-@@ -1141,7 +1120,7 @@ parse_event_mask(const char *s, long eve
+@@ -1211,7 +1190,7 @@ parse_event_mask(const char *s, long event_masks[])
if (s)
return True;
}
@@ -52,7 +57,7 @@ Index: xev-1.2.3/xev.c
if (s != NULL)
fprintf(stderr, "%s: unrecognized event mask '%s'\n", ProgramName, s);
-@@ -1288,37 +1267,6 @@ main(int argc, char **argv)
+@@ -1361,37 +1340,6 @@ main(int argc, char **argv)
fprintf(stderr, "%s: XSetLocaleModifiers failed\n", ProgramName);
}
@@ -90,7 +95,7 @@ Index: xev-1.2.3/xev.c
screen = DefaultScreen(dpy);
attr.event_mask = event_masks[EVENT_MASK_INDEX_CORE];
-@@ -1373,16 +1321,6 @@ main(int argc, char **argv)
+@@ -1446,16 +1394,6 @@ main(int argc, char **argv)
printf("Outer window is 0x%lx, inner window is 0x%lx\n", w, subw);
}
diff --git a/meta/recipes-graphics/xorg-app/xev_1.2.3.bb b/meta/recipes-graphics/xorg-app/xev_1.2.4.bb
index 6a69e747a6..9407fa65f1 100644
--- a/meta/recipes-graphics/xorg-app/xev_1.2.3.bb
+++ b/meta/recipes-graphics/xorg-app/xev_1.2.4.bb
@@ -14,5 +14,4 @@ DEPENDS += "libxrandr xorgproto"
SRC_URI += "file://diet-x11.patch"
-SRC_URI[md5sum] = "eec82a5d4b599736f0fa637e96136746"
-SRC_URI[sha256sum] = "66bc4f1cfa1946d62612737815c34164e4ce40fcebd2c9e1d7e7a1117ad3ad09"
+SRC_URI[sha256sum] = "d700e08bfe751ed2dbf802baa204b056d0e49348b6eb3c6f9cb035d8ae4885e2"
diff --git a/meta/recipes-graphics/xorg-app/xinit/0001-Make-manpage-multilib-identical.patch b/meta/recipes-graphics/xorg-app/xinit/0001-Make-manpage-multilib-identical.patch
new file mode 100644
index 0000000000..649905574c
--- /dev/null
+++ b/meta/recipes-graphics/xorg-app/xinit/0001-Make-manpage-multilib-identical.patch
@@ -0,0 +1,28 @@
+From d642e60d8963f1b90569cd0ab5c29ac2c9bfe939 Mon Sep 17 00:00:00 2001
+From: Jeremy Puhlman <jpuhlman@mvista.com>
+Date: Fri, 6 Mar 2020 22:28:14 +0000
+Subject: [PATCH] Make manpage multilib identical
+
+Upstream-Status: Submitted
+
+Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
+---
+ man/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/man/Makefile.am b/man/Makefile.am
+index 9c6569f..608e933 100644
+--- a/man/Makefile.am
++++ b/man/Makefile.am
+@@ -12,7 +12,7 @@ MAN_SUBSTS+= -e 's|__XSERVERNAME__|$(XSERVERNAME)|g' \
+ -e 's|__XCONFIGFILEMAN__|$(XCONFIGFILEMAN)|g' \
+ -e 's|__xinitdir__|$(XINITDIR)|g' \
+ -e 's|__bindir__|$(bindir)|g' \
+- -e 's|__libdir__|$(libdir)|g' \
++ -e 's|__libdir__|$(prefix)/lib*|g' \
+ -e 's|__configdir__|$(XINITDIR)|g'
+
+
+--
+2.23.0
+
diff --git a/meta/recipes-graphics/xorg-app/xinit_1.4.1.bb b/meta/recipes-graphics/xorg-app/xinit_1.4.1.bb
index 5626ebbd52..301ea1c243 100644
--- a/meta/recipes-graphics/xorg-app/xinit_1.4.1.bb
+++ b/meta/recipes-graphics/xorg-app/xinit_1.4.1.bb
@@ -12,9 +12,14 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=18f01e7b39807bebe2b8df101a039b68"
PE = "1"
+SRC_URI += "file://0001-Make-manpage-multilib-identical.patch"
+
SRC_URI[md5sum] = "6d506ab2efc17a08e87778654e099d37"
SRC_URI[sha256sum] = "de9b8f617b68a70f6caf87da01fcf0ebd2b75690cdcba9c921d0ef54fa54abb9"
EXTRA_OECONF = "ac_cv_path_MCOOKIE=${bindir}/mcookie"
+PACKAGECONFIG ??= "rxvt"
+PACKAGECONFIG[rxvt] = "--with-xterm=rxvt,,,rxvt-unicode"
+
RDEPENDS_${PN} += "util-linux-mcookie"
diff --git a/meta/recipes-graphics/xorg-app/xkbcomp_1.4.2.bb b/meta/recipes-graphics/xorg-app/xkbcomp_1.4.3.bb
index ed1eed8662..2fa79c8438 100644
--- a/meta/recipes-graphics/xorg-app/xkbcomp_1.4.2.bb
+++ b/meta/recipes-graphics/xorg-app/xkbcomp_1.4.3.bb
@@ -15,5 +15,5 @@ BBCLASSEXTEND = "native"
EXTRA_OECONF += "--disable-selective-werror"
-SRC_URI[md5sum] = "12610df19df2af3797f2c130ee2bce97"
-SRC_URI[sha256sum] = "6dd8bcb9be7e85bd7294abe261b8c7b0539d2fc93e41b80fb8bd013767ce8424"
+SRC_URI[md5sum] = "6e4751d99373f85d459ab4dff28893f5"
+SRC_URI[sha256sum] = "06242c169fc11caf601cac46d781d467748c6a330e15b36dce46520b8ac8d435"
diff --git a/meta/recipes-graphics/xorg-app/xorg-app-common.inc b/meta/recipes-graphics/xorg-app/xorg-app-common.inc
index 101b3dfffd..cb8cf4f5fa 100644
--- a/meta/recipes-graphics/xorg-app/xorg-app-common.inc
+++ b/meta/recipes-graphics/xorg-app/xorg-app-common.inc
@@ -8,8 +8,6 @@ DEPENDS = "util-macros-native virtual/libx11"
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
-INC_PR = "r8"
-
SRC_URI = "${XORG_MIRROR}/individual/app/${BPN}-${PV}.tar.bz2"
inherit autotools pkgconfig features_check
diff --git a/meta/recipes-graphics/xorg-app/xrandr_1.5.1.bb b/meta/recipes-graphics/xorg-app/xrandr_1.5.1.bb
index 6583ea2371..57b43ff28c 100644
--- a/meta/recipes-graphics/xorg-app/xrandr_1.5.1.bb
+++ b/meta/recipes-graphics/xorg-app/xrandr_1.5.1.bb
@@ -15,3 +15,5 @@ SRC_URI = "${XORG_MIRROR}/individual/app/${BPN}-${PV}.tar.xz"
SRC_URI[md5sum] = "fe40f7a4fd39dd3a02248d3e0b1972e4"
SRC_URI[sha256sum] = "7bc76daf9d72f8aff885efad04ce06b90488a1a169d118dea8a2b661832e8762"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.29.0.bb b/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.30.0.bb
index f87083e575..d02988caa4 100644
--- a/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.29.0.bb
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.30.0.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=5e6b20ea2ef94a998145f0ea3f788ee0"
DEPENDS += "libinput"
-SRC_URI[md5sum] = "d600e8e2e30747b8ce49ec5294ff0ab6"
-SRC_URI[sha256sum] = "c28b56a21754b972db31798e6a4cf4dc9d69208d08f8fe41701a94def5e94bee"
+SRC_URI[md5sum] = "11dcfa2cc39f790731a9545fcdeea717"
+SRC_URI[sha256sum] = "f9c7f9fd41ae14061e0e9c3bd45fa170e5e21027a2bc5810034e1e748db996c0"
FILES_${PN} += "${datadir}/X11/xorg.conf.d"
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-Sync-i915_pciids-upto-8717c6b7414f.patch b/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-Sync-i915_pciids-upto-8717c6b7414f.patch
new file mode 100644
index 0000000000..ef3b1afb1f
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-Sync-i915_pciids-upto-8717c6b7414f.patch
@@ -0,0 +1,505 @@
+From 05909fea93f29b2b6e1d554dd64201551bd7a022 Mon Sep 17 00:00:00 2001
+From: Liwei Song <liwei.song@windriver.com>
+Date: Fri, 17 Apr 2020 16:11:59 +0800
+Subject: [PATCH] Sync i915_pciids upto 8717c6b7414f
+
+Import the kernel's i915_pciids.h, up to:
+
+commit 8717c6b7414ffb890672276dccc284c23078ac0e
+Author: Lee Shawn C <shawn.c.lee@intel.com>
+Date: Tue Dec 10 23:04:15 2019 +0800
+
+ drm/i915/cml: Separate U series pci id from origianl list.
+
+Upstream-Status: Submitted [https://patchwork.kernel.org/patch/11494645/]
+
+Signed-off-by: Liwei Song <liwei.song@windriver.com>
+---
+ src/i915_pciids.h | 265 ++++++++++++++++++++++++++++++++++-----------
+ src/intel_module.c | 2 +-
+ test/dri3-test.c | 2 +-
+ 3 files changed, 206 insertions(+), 63 deletions(-)
+
+diff --git a/src/i915_pciids.h b/src/i915_pciids.h
+index fd965ffbb92e..1d2c12219f44 100644
+--- a/src/i915_pciids.h
++++ b/src/i915_pciids.h
+@@ -108,8 +108,10 @@
+ INTEL_VGA_DEVICE(0x2e42, info), /* B43_G */ \
+ INTEL_VGA_DEVICE(0x2e92, info) /* B43_G.1 */
+
+-#define INTEL_PINEVIEW_IDS(info) \
+- INTEL_VGA_DEVICE(0xa001, info), \
++#define INTEL_PINEVIEW_G_IDS(info) \
++ INTEL_VGA_DEVICE(0xa001, info)
++
++#define INTEL_PINEVIEW_M_IDS(info) \
+ INTEL_VGA_DEVICE(0xa011, info)
+
+ #define INTEL_IRONLAKE_D_IDS(info) \
+@@ -166,7 +168,18 @@
+ #define INTEL_IVB_Q_IDS(info) \
+ INTEL_QUANTA_VGA_DEVICE(info) /* Quanta transcode */
+
++#define INTEL_HSW_ULT_GT1_IDS(info) \
++ INTEL_VGA_DEVICE(0x0A02, info), /* ULT GT1 desktop */ \
++ INTEL_VGA_DEVICE(0x0A0A, info), /* ULT GT1 server */ \
++ INTEL_VGA_DEVICE(0x0A0B, info), /* ULT GT1 reserved */ \
++ INTEL_VGA_DEVICE(0x0A06, info) /* ULT GT1 mobile */
++
++#define INTEL_HSW_ULX_GT1_IDS(info) \
++ INTEL_VGA_DEVICE(0x0A0E, info) /* ULX GT1 mobile */
++
+ #define INTEL_HSW_GT1_IDS(info) \
++ INTEL_HSW_ULT_GT1_IDS(info), \
++ INTEL_HSW_ULX_GT1_IDS(info), \
+ INTEL_VGA_DEVICE(0x0402, info), /* GT1 desktop */ \
+ INTEL_VGA_DEVICE(0x040a, info), /* GT1 server */ \
+ INTEL_VGA_DEVICE(0x040B, info), /* GT1 reserved */ \
+@@ -175,20 +188,26 @@
+ INTEL_VGA_DEVICE(0x0C0A, info), /* SDV GT1 server */ \
+ INTEL_VGA_DEVICE(0x0C0B, info), /* SDV GT1 reserved */ \
+ INTEL_VGA_DEVICE(0x0C0E, info), /* SDV GT1 reserved */ \
+- INTEL_VGA_DEVICE(0x0A02, info), /* ULT GT1 desktop */ \
+- INTEL_VGA_DEVICE(0x0A0A, info), /* ULT GT1 server */ \
+- INTEL_VGA_DEVICE(0x0A0B, info), /* ULT GT1 reserved */ \
+ INTEL_VGA_DEVICE(0x0D02, info), /* CRW GT1 desktop */ \
+ INTEL_VGA_DEVICE(0x0D0A, info), /* CRW GT1 server */ \
+ INTEL_VGA_DEVICE(0x0D0B, info), /* CRW GT1 reserved */ \
+ INTEL_VGA_DEVICE(0x0D0E, info), /* CRW GT1 reserved */ \
+ INTEL_VGA_DEVICE(0x0406, info), /* GT1 mobile */ \
+ INTEL_VGA_DEVICE(0x0C06, info), /* SDV GT1 mobile */ \
+- INTEL_VGA_DEVICE(0x0A06, info), /* ULT GT1 mobile */ \
+- INTEL_VGA_DEVICE(0x0A0E, info), /* ULX GT1 mobile */ \
+ INTEL_VGA_DEVICE(0x0D06, info) /* CRW GT1 mobile */
+
++#define INTEL_HSW_ULT_GT2_IDS(info) \
++ INTEL_VGA_DEVICE(0x0A12, info), /* ULT GT2 desktop */ \
++ INTEL_VGA_DEVICE(0x0A1A, info), /* ULT GT2 server */ \
++ INTEL_VGA_DEVICE(0x0A1B, info), /* ULT GT2 reserved */ \
++ INTEL_VGA_DEVICE(0x0A16, info) /* ULT GT2 mobile */
++
++#define INTEL_HSW_ULX_GT2_IDS(info) \
++ INTEL_VGA_DEVICE(0x0A1E, info) /* ULX GT2 mobile */ \
++
+ #define INTEL_HSW_GT2_IDS(info) \
++ INTEL_HSW_ULT_GT2_IDS(info), \
++ INTEL_HSW_ULX_GT2_IDS(info), \
+ INTEL_VGA_DEVICE(0x0412, info), /* GT2 desktop */ \
+ INTEL_VGA_DEVICE(0x041a, info), /* GT2 server */ \
+ INTEL_VGA_DEVICE(0x041B, info), /* GT2 reserved */ \
+@@ -197,9 +216,6 @@
+ INTEL_VGA_DEVICE(0x0C1A, info), /* SDV GT2 server */ \
+ INTEL_VGA_DEVICE(0x0C1B, info), /* SDV GT2 reserved */ \
+ INTEL_VGA_DEVICE(0x0C1E, info), /* SDV GT2 reserved */ \
+- INTEL_VGA_DEVICE(0x0A12, info), /* ULT GT2 desktop */ \
+- INTEL_VGA_DEVICE(0x0A1A, info), /* ULT GT2 server */ \
+- INTEL_VGA_DEVICE(0x0A1B, info), /* ULT GT2 reserved */ \
+ INTEL_VGA_DEVICE(0x0D12, info), /* CRW GT2 desktop */ \
+ INTEL_VGA_DEVICE(0x0D1A, info), /* CRW GT2 server */ \
+ INTEL_VGA_DEVICE(0x0D1B, info), /* CRW GT2 reserved */ \
+@@ -207,11 +223,17 @@
+ INTEL_VGA_DEVICE(0x0416, info), /* GT2 mobile */ \
+ INTEL_VGA_DEVICE(0x0426, info), /* GT2 mobile */ \
+ INTEL_VGA_DEVICE(0x0C16, info), /* SDV GT2 mobile */ \
+- INTEL_VGA_DEVICE(0x0A16, info), /* ULT GT2 mobile */ \
+- INTEL_VGA_DEVICE(0x0A1E, info), /* ULX GT2 mobile */ \
+ INTEL_VGA_DEVICE(0x0D16, info) /* CRW GT2 mobile */
+
++#define INTEL_HSW_ULT_GT3_IDS(info) \
++ INTEL_VGA_DEVICE(0x0A22, info), /* ULT GT3 desktop */ \
++ INTEL_VGA_DEVICE(0x0A2A, info), /* ULT GT3 server */ \
++ INTEL_VGA_DEVICE(0x0A2B, info), /* ULT GT3 reserved */ \
++ INTEL_VGA_DEVICE(0x0A26, info), /* ULT GT3 mobile */ \
++ INTEL_VGA_DEVICE(0x0A2E, info) /* ULT GT3 reserved */
++
+ #define INTEL_HSW_GT3_IDS(info) \
++ INTEL_HSW_ULT_GT3_IDS(info), \
+ INTEL_VGA_DEVICE(0x0422, info), /* GT3 desktop */ \
+ INTEL_VGA_DEVICE(0x042a, info), /* GT3 server */ \
+ INTEL_VGA_DEVICE(0x042B, info), /* GT3 reserved */ \
+@@ -220,16 +242,11 @@
+ INTEL_VGA_DEVICE(0x0C2A, info), /* SDV GT3 server */ \
+ INTEL_VGA_DEVICE(0x0C2B, info), /* SDV GT3 reserved */ \
+ INTEL_VGA_DEVICE(0x0C2E, info), /* SDV GT3 reserved */ \
+- INTEL_VGA_DEVICE(0x0A22, info), /* ULT GT3 desktop */ \
+- INTEL_VGA_DEVICE(0x0A2A, info), /* ULT GT3 server */ \
+- INTEL_VGA_DEVICE(0x0A2B, info), /* ULT GT3 reserved */ \
+ INTEL_VGA_DEVICE(0x0D22, info), /* CRW GT3 desktop */ \
+ INTEL_VGA_DEVICE(0x0D2A, info), /* CRW GT3 server */ \
+ INTEL_VGA_DEVICE(0x0D2B, info), /* CRW GT3 reserved */ \
+ INTEL_VGA_DEVICE(0x0D2E, info), /* CRW GT3 reserved */ \
+ INTEL_VGA_DEVICE(0x0C26, info), /* SDV GT3 mobile */ \
+- INTEL_VGA_DEVICE(0x0A26, info), /* ULT GT3 mobile */ \
+- INTEL_VGA_DEVICE(0x0A2E, info), /* ULT GT3 reserved */ \
+ INTEL_VGA_DEVICE(0x0D26, info) /* CRW GT3 mobile */
+
+ #define INTEL_HSW_IDS(info) \
+@@ -245,35 +262,59 @@
+ INTEL_VGA_DEVICE(0x0157, info), \
+ INTEL_VGA_DEVICE(0x0155, info)
+
+-#define INTEL_BDW_GT1_IDS(info) \
+- INTEL_VGA_DEVICE(0x1602, info), /* GT1 ULT */ \
++#define INTEL_BDW_ULT_GT1_IDS(info) \
+ INTEL_VGA_DEVICE(0x1606, info), /* GT1 ULT */ \
+- INTEL_VGA_DEVICE(0x160B, info), /* GT1 Iris */ \
+- INTEL_VGA_DEVICE(0x160E, info), /* GT1 ULX */ \
++ INTEL_VGA_DEVICE(0x160B, info) /* GT1 Iris */
++
++#define INTEL_BDW_ULX_GT1_IDS(info) \
++ INTEL_VGA_DEVICE(0x160E, info) /* GT1 ULX */
++
++#define INTEL_BDW_GT1_IDS(info) \
++ INTEL_BDW_ULT_GT1_IDS(info), \
++ INTEL_BDW_ULX_GT1_IDS(info), \
++ INTEL_VGA_DEVICE(0x1602, info), /* GT1 ULT */ \
+ INTEL_VGA_DEVICE(0x160A, info), /* GT1 Server */ \
+ INTEL_VGA_DEVICE(0x160D, info) /* GT1 Workstation */
+
+-#define INTEL_BDW_GT2_IDS(info) \
+- INTEL_VGA_DEVICE(0x1612, info), /* GT2 Halo */ \
++#define INTEL_BDW_ULT_GT2_IDS(info) \
+ INTEL_VGA_DEVICE(0x1616, info), /* GT2 ULT */ \
+- INTEL_VGA_DEVICE(0x161B, info), /* GT2 ULT */ \
+- INTEL_VGA_DEVICE(0x161E, info), /* GT2 ULX */ \
++ INTEL_VGA_DEVICE(0x161B, info) /* GT2 ULT */
++
++#define INTEL_BDW_ULX_GT2_IDS(info) \
++ INTEL_VGA_DEVICE(0x161E, info) /* GT2 ULX */
++
++#define INTEL_BDW_GT2_IDS(info) \
++ INTEL_BDW_ULT_GT2_IDS(info), \
++ INTEL_BDW_ULX_GT2_IDS(info), \
++ INTEL_VGA_DEVICE(0x1612, info), /* GT2 Halo */ \
+ INTEL_VGA_DEVICE(0x161A, info), /* GT2 Server */ \
+ INTEL_VGA_DEVICE(0x161D, info) /* GT2 Workstation */
+
++#define INTEL_BDW_ULT_GT3_IDS(info) \
++ INTEL_VGA_DEVICE(0x1626, info), /* ULT */ \
++ INTEL_VGA_DEVICE(0x162B, info) /* Iris */ \
++
++#define INTEL_BDW_ULX_GT3_IDS(info) \
++ INTEL_VGA_DEVICE(0x162E, info) /* ULX */
++
+ #define INTEL_BDW_GT3_IDS(info) \
++ INTEL_BDW_ULT_GT3_IDS(info), \
++ INTEL_BDW_ULX_GT3_IDS(info), \
+ INTEL_VGA_DEVICE(0x1622, info), /* ULT */ \
+- INTEL_VGA_DEVICE(0x1626, info), /* ULT */ \
+- INTEL_VGA_DEVICE(0x162B, info), /* Iris */ \
+- INTEL_VGA_DEVICE(0x162E, info), /* ULX */\
+ INTEL_VGA_DEVICE(0x162A, info), /* Server */ \
+ INTEL_VGA_DEVICE(0x162D, info) /* Workstation */
+
++#define INTEL_BDW_ULT_RSVD_IDS(info) \
++ INTEL_VGA_DEVICE(0x1636, info), /* ULT */ \
++ INTEL_VGA_DEVICE(0x163B, info) /* Iris */
++
++#define INTEL_BDW_ULX_RSVD_IDS(info) \
++ INTEL_VGA_DEVICE(0x163E, info) /* ULX */
++
+ #define INTEL_BDW_RSVD_IDS(info) \
++ INTEL_BDW_ULT_RSVD_IDS(info), \
++ INTEL_BDW_ULX_RSVD_IDS(info), \
+ INTEL_VGA_DEVICE(0x1632, info), /* ULT */ \
+- INTEL_VGA_DEVICE(0x1636, info), /* ULT */ \
+- INTEL_VGA_DEVICE(0x163B, info), /* Iris */ \
+- INTEL_VGA_DEVICE(0x163E, info), /* ULX */ \
+ INTEL_VGA_DEVICE(0x163A, info), /* Server */ \
+ INTEL_VGA_DEVICE(0x163D, info) /* Workstation */
+
+@@ -289,25 +330,40 @@
+ INTEL_VGA_DEVICE(0x22b2, info), \
+ INTEL_VGA_DEVICE(0x22b3, info)
+
++#define INTEL_SKL_ULT_GT1_IDS(info) \
++ INTEL_VGA_DEVICE(0x1906, info) /* ULT GT1 */
++
++#define INTEL_SKL_ULX_GT1_IDS(info) \
++ INTEL_VGA_DEVICE(0x190E, info) /* ULX GT1 */
++
+ #define INTEL_SKL_GT1_IDS(info) \
+- INTEL_VGA_DEVICE(0x1906, info), /* ULT GT1 */ \
+- INTEL_VGA_DEVICE(0x190E, info), /* ULX GT1 */ \
++ INTEL_SKL_ULT_GT1_IDS(info), \
++ INTEL_SKL_ULX_GT1_IDS(info), \
+ INTEL_VGA_DEVICE(0x1902, info), /* DT GT1 */ \
+ INTEL_VGA_DEVICE(0x190B, info), /* Halo GT1 */ \
+ INTEL_VGA_DEVICE(0x190A, info) /* SRV GT1 */
+
+-#define INTEL_SKL_GT2_IDS(info) \
++#define INTEL_SKL_ULT_GT2_IDS(info) \
+ INTEL_VGA_DEVICE(0x1916, info), /* ULT GT2 */ \
+- INTEL_VGA_DEVICE(0x1921, info), /* ULT GT2F */ \
+- INTEL_VGA_DEVICE(0x191E, info), /* ULX GT2 */ \
++ INTEL_VGA_DEVICE(0x1921, info) /* ULT GT2F */
++
++#define INTEL_SKL_ULX_GT2_IDS(info) \
++ INTEL_VGA_DEVICE(0x191E, info) /* ULX GT2 */
++
++#define INTEL_SKL_GT2_IDS(info) \
++ INTEL_SKL_ULT_GT2_IDS(info), \
++ INTEL_SKL_ULX_GT2_IDS(info), \
+ INTEL_VGA_DEVICE(0x1912, info), /* DT GT2 */ \
+ INTEL_VGA_DEVICE(0x191B, info), /* Halo GT2 */ \
+ INTEL_VGA_DEVICE(0x191A, info), /* SRV GT2 */ \
+ INTEL_VGA_DEVICE(0x191D, info) /* WKS GT2 */
+
++#define INTEL_SKL_ULT_GT3_IDS(info) \
++ INTEL_VGA_DEVICE(0x1926, info) /* ULT GT3 */
++
+ #define INTEL_SKL_GT3_IDS(info) \
++ INTEL_SKL_ULT_GT3_IDS(info), \
+ INTEL_VGA_DEVICE(0x1923, info), /* ULT GT3 */ \
+- INTEL_VGA_DEVICE(0x1926, info), /* ULT GT3 */ \
+ INTEL_VGA_DEVICE(0x1927, info), /* ULT GT3 */ \
+ INTEL_VGA_DEVICE(0x192B, info), /* Halo GT3 */ \
+ INTEL_VGA_DEVICE(0x192D, info) /* SRV GT3 */
+@@ -336,45 +392,91 @@
+ INTEL_VGA_DEVICE(0x3184, info), \
+ INTEL_VGA_DEVICE(0x3185, info)
+
+-#define INTEL_KBL_GT1_IDS(info) \
+- INTEL_VGA_DEVICE(0x5913, info), /* ULT GT1.5 */ \
+- INTEL_VGA_DEVICE(0x5915, info), /* ULX GT1.5 */ \
++#define INTEL_KBL_ULT_GT1_IDS(info) \
+ INTEL_VGA_DEVICE(0x5906, info), /* ULT GT1 */ \
++ INTEL_VGA_DEVICE(0x5913, info) /* ULT GT1.5 */
++
++#define INTEL_KBL_ULX_GT1_IDS(info) \
+ INTEL_VGA_DEVICE(0x590E, info), /* ULX GT1 */ \
++ INTEL_VGA_DEVICE(0x5915, info) /* ULX GT1.5 */
++
++#define INTEL_KBL_GT1_IDS(info) \
++ INTEL_KBL_ULT_GT1_IDS(info), \
++ INTEL_KBL_ULX_GT1_IDS(info), \
+ INTEL_VGA_DEVICE(0x5902, info), /* DT GT1 */ \
+ INTEL_VGA_DEVICE(0x5908, info), /* Halo GT1 */ \
+ INTEL_VGA_DEVICE(0x590B, info), /* Halo GT1 */ \
+ INTEL_VGA_DEVICE(0x590A, info) /* SRV GT1 */
+
+-#define INTEL_KBL_GT2_IDS(info) \
++#define INTEL_KBL_ULT_GT2_IDS(info) \
+ INTEL_VGA_DEVICE(0x5916, info), /* ULT GT2 */ \
++ INTEL_VGA_DEVICE(0x5921, info) /* ULT GT2F */
++
++#define INTEL_KBL_ULX_GT2_IDS(info) \
++ INTEL_VGA_DEVICE(0x591E, info) /* ULX GT2 */
++
++#define INTEL_KBL_GT2_IDS(info) \
++ INTEL_KBL_ULT_GT2_IDS(info), \
++ INTEL_KBL_ULX_GT2_IDS(info), \
+ INTEL_VGA_DEVICE(0x5917, info), /* Mobile GT2 */ \
+- INTEL_VGA_DEVICE(0x5921, info), /* ULT GT2F */ \
+- INTEL_VGA_DEVICE(0x591E, info), /* ULX GT2 */ \
+ INTEL_VGA_DEVICE(0x5912, info), /* DT GT2 */ \
+ INTEL_VGA_DEVICE(0x591B, info), /* Halo GT2 */ \
+ INTEL_VGA_DEVICE(0x591A, info), /* SRV GT2 */ \
+ INTEL_VGA_DEVICE(0x591D, info) /* WKS GT2 */
+
++#define INTEL_KBL_ULT_GT3_IDS(info) \
++ INTEL_VGA_DEVICE(0x5926, info) /* ULT GT3 */
++
+ #define INTEL_KBL_GT3_IDS(info) \
++ INTEL_KBL_ULT_GT3_IDS(info), \
+ INTEL_VGA_DEVICE(0x5923, info), /* ULT GT3 */ \
+- INTEL_VGA_DEVICE(0x5926, info), /* ULT GT3 */ \
+ INTEL_VGA_DEVICE(0x5927, info) /* ULT GT3 */
+
+ #define INTEL_KBL_GT4_IDS(info) \
+ INTEL_VGA_DEVICE(0x593B, info) /* Halo GT4 */
+
+ /* AML/KBL Y GT2 */
+-#define INTEL_AML_GT2_IDS(info) \
++#define INTEL_AML_KBL_GT2_IDS(info) \
+ INTEL_VGA_DEVICE(0x591C, info), /* ULX GT2 */ \
+ INTEL_VGA_DEVICE(0x87C0, info) /* ULX GT2 */
+
++/* AML/CFL Y GT2 */
++#define INTEL_AML_CFL_GT2_IDS(info) \
++ INTEL_VGA_DEVICE(0x87CA, info)
++
++/* CML GT1 */
++#define INTEL_CML_GT1_IDS(info) \
++ INTEL_VGA_DEVICE(0x9BA5, info), \
++ INTEL_VGA_DEVICE(0x9BA8, info), \
++ INTEL_VGA_DEVICE(0x9BA4, info), \
++ INTEL_VGA_DEVICE(0x9BA2, info)
++
++#define INTEL_CML_U_GT1_IDS(info) \
++ INTEL_VGA_DEVICE(0x9B21, info), \
++ INTEL_VGA_DEVICE(0x9BAA, info), \
++ INTEL_VGA_DEVICE(0x9BAC, info)
++
++/* CML GT2 */
++#define INTEL_CML_GT2_IDS(info) \
++ INTEL_VGA_DEVICE(0x9BC5, info), \
++ INTEL_VGA_DEVICE(0x9BC8, info), \
++ INTEL_VGA_DEVICE(0x9BC4, info), \
++ INTEL_VGA_DEVICE(0x9BC2, info), \
++ INTEL_VGA_DEVICE(0x9BC6, info), \
++ INTEL_VGA_DEVICE(0x9BE6, info), \
++ INTEL_VGA_DEVICE(0x9BF6, info)
++
++#define INTEL_CML_U_GT2_IDS(info) \
++ INTEL_VGA_DEVICE(0x9B41, info), \
++ INTEL_VGA_DEVICE(0x9BCA, info), \
++ INTEL_VGA_DEVICE(0x9BCC, info)
++
+ #define INTEL_KBL_IDS(info) \
+ INTEL_KBL_GT1_IDS(info), \
+ INTEL_KBL_GT2_IDS(info), \
+ INTEL_KBL_GT3_IDS(info), \
+ INTEL_KBL_GT4_IDS(info), \
+- INTEL_AML_GT2_IDS(info)
++ INTEL_AML_KBL_GT2_IDS(info)
+
+ /* CFL S */
+ #define INTEL_CFL_S_GT1_IDS(info) \
+@@ -390,6 +492,9 @@
+ INTEL_VGA_DEVICE(0x3E9A, info) /* SRV GT2 */
+
+ /* CFL H */
++#define INTEL_CFL_H_GT1_IDS(info) \
++ INTEL_VGA_DEVICE(0x3E9C, info)
++
+ #define INTEL_CFL_H_GT2_IDS(info) \
+ INTEL_VGA_DEVICE(0x3E9B, info), /* Halo GT2 */ \
+ INTEL_VGA_DEVICE(0x3E94, info) /* Halo GT2 */
+@@ -407,30 +512,43 @@
+
+ /* WHL/CFL U GT1 */
+ #define INTEL_WHL_U_GT1_IDS(info) \
+- INTEL_VGA_DEVICE(0x3EA1, info)
++ INTEL_VGA_DEVICE(0x3EA1, info), \
++ INTEL_VGA_DEVICE(0x3EA4, info)
+
+ /* WHL/CFL U GT2 */
+ #define INTEL_WHL_U_GT2_IDS(info) \
+- INTEL_VGA_DEVICE(0x3EA0, info)
++ INTEL_VGA_DEVICE(0x3EA0, info), \
++ INTEL_VGA_DEVICE(0x3EA3, info)
+
+ /* WHL/CFL U GT3 */
+ #define INTEL_WHL_U_GT3_IDS(info) \
+- INTEL_VGA_DEVICE(0x3EA2, info), \
+- INTEL_VGA_DEVICE(0x3EA3, info), \
+- INTEL_VGA_DEVICE(0x3EA4, info)
++ INTEL_VGA_DEVICE(0x3EA2, info)
+
+ #define INTEL_CFL_IDS(info) \
+ INTEL_CFL_S_GT1_IDS(info), \
+ INTEL_CFL_S_GT2_IDS(info), \
++ INTEL_CFL_H_GT1_IDS(info), \
+ INTEL_CFL_H_GT2_IDS(info), \
+ INTEL_CFL_U_GT2_IDS(info), \
+ INTEL_CFL_U_GT3_IDS(info), \
+ INTEL_WHL_U_GT1_IDS(info), \
+ INTEL_WHL_U_GT2_IDS(info), \
+- INTEL_WHL_U_GT3_IDS(info)
++ INTEL_WHL_U_GT3_IDS(info), \
++ INTEL_AML_CFL_GT2_IDS(info), \
++ INTEL_CML_GT1_IDS(info), \
++ INTEL_CML_GT2_IDS(info), \
++ INTEL_CML_U_GT1_IDS(info), \
++ INTEL_CML_U_GT2_IDS(info)
+
+ /* CNL */
++#define INTEL_CNL_PORT_F_IDS(info) \
++ INTEL_VGA_DEVICE(0x5A54, info), \
++ INTEL_VGA_DEVICE(0x5A5C, info), \
++ INTEL_VGA_DEVICE(0x5A44, info), \
++ INTEL_VGA_DEVICE(0x5A4C, info)
++
+ #define INTEL_CNL_IDS(info) \
++ INTEL_CNL_PORT_F_IDS(info), \
+ INTEL_VGA_DEVICE(0x5A51, info), \
+ INTEL_VGA_DEVICE(0x5A59, info), \
+ INTEL_VGA_DEVICE(0x5A41, info), \
+@@ -440,22 +558,47 @@
+ INTEL_VGA_DEVICE(0x5A42, info), \
+ INTEL_VGA_DEVICE(0x5A4A, info), \
+ INTEL_VGA_DEVICE(0x5A50, info), \
+- INTEL_VGA_DEVICE(0x5A40, info), \
+- INTEL_VGA_DEVICE(0x5A54, info), \
+- INTEL_VGA_DEVICE(0x5A5C, info), \
+- INTEL_VGA_DEVICE(0x5A44, info), \
+- INTEL_VGA_DEVICE(0x5A4C, info)
++ INTEL_VGA_DEVICE(0x5A40, info)
+
+ /* ICL */
+-#define INTEL_ICL_11_IDS(info) \
++#define INTEL_ICL_PORT_F_IDS(info) \
+ INTEL_VGA_DEVICE(0x8A50, info), \
+- INTEL_VGA_DEVICE(0x8A51, info), \
+ INTEL_VGA_DEVICE(0x8A5C, info), \
+- INTEL_VGA_DEVICE(0x8A5D, info), \
++ INTEL_VGA_DEVICE(0x8A59, info), \
++ INTEL_VGA_DEVICE(0x8A58, info), \
+ INTEL_VGA_DEVICE(0x8A52, info), \
+ INTEL_VGA_DEVICE(0x8A5A, info), \
+ INTEL_VGA_DEVICE(0x8A5B, info), \
++ INTEL_VGA_DEVICE(0x8A57, info), \
++ INTEL_VGA_DEVICE(0x8A56, info), \
+ INTEL_VGA_DEVICE(0x8A71, info), \
+- INTEL_VGA_DEVICE(0x8A70, info)
++ INTEL_VGA_DEVICE(0x8A70, info), \
++ INTEL_VGA_DEVICE(0x8A53, info), \
++ INTEL_VGA_DEVICE(0x8A54, info)
++
++#define INTEL_ICL_11_IDS(info) \
++ INTEL_ICL_PORT_F_IDS(info), \
++ INTEL_VGA_DEVICE(0x8A51, info), \
++ INTEL_VGA_DEVICE(0x8A5D, info)
++
++/* EHL/JSL */
++#define INTEL_EHL_IDS(info) \
++ INTEL_VGA_DEVICE(0x4500, info), \
++ INTEL_VGA_DEVICE(0x4571, info), \
++ INTEL_VGA_DEVICE(0x4551, info), \
++ INTEL_VGA_DEVICE(0x4541, info), \
++ INTEL_VGA_DEVICE(0x4E71, info), \
++ INTEL_VGA_DEVICE(0x4E61, info), \
++ INTEL_VGA_DEVICE(0x4E51, info)
++
++/* TGL */
++#define INTEL_TGL_12_IDS(info) \
++ INTEL_VGA_DEVICE(0x9A49, info), \
++ INTEL_VGA_DEVICE(0x9A40, info), \
++ INTEL_VGA_DEVICE(0x9A59, info), \
++ INTEL_VGA_DEVICE(0x9A60, info), \
++ INTEL_VGA_DEVICE(0x9A68, info), \
++ INTEL_VGA_DEVICE(0x9A70, info), \
++ INTEL_VGA_DEVICE(0x9A78, info)
+
+ #endif /* _I915_PCIIDS_H */
+diff --git a/src/intel_module.c b/src/intel_module.c
+index a71c2e40b774..e0b94c190254 100644
+--- a/src/intel_module.c
++++ b/src/intel_module.c
+@@ -357,7 +357,7 @@ static const struct pci_id_match intel_device_match[] = {
+ INTEL_I945GM_IDS(&intel_i945_info),
+
+ INTEL_G33_IDS(&intel_g33_info),
+- INTEL_PINEVIEW_IDS(&intel_g33_info),
++ INTEL_PINEVIEW_G_IDS(&intel_g33_info),
+
+ INTEL_I965G_IDS(&intel_i965_info),
+ INTEL_I965GM_IDS(&intel_i965_info),
+diff --git a/test/dri3-test.c b/test/dri3-test.c
+index 78e105a8b64a..5265a30cea1b 100644
+--- a/test/dri3-test.c
++++ b/test/dri3-test.c
+@@ -76,7 +76,7 @@ static const struct pci_id_match ids[] = {
+ INTEL_I945GM_IDS(031),
+
+ INTEL_G33_IDS(033),
+- INTEL_PINEVIEW_IDS(033),
++ INTEL_PINEVIEW_G_IDS(033),
+
+ INTEL_I965G_IDS(040),
+ INTEL_I965GM_IDS(040),
+--
+2.17.1
+
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-i810-Avoid-duplicate-definition-of-I810PatternROP.patch b/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-i810-Avoid-duplicate-definition-of-I810PatternROP.patch
new file mode 100644
index 0000000000..765d9ec090
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-i810-Avoid-duplicate-definition-of-I810PatternROP.patch
@@ -0,0 +1,27 @@
+From c2d730cf79eb3e4bea41f5ed8a8a21092ced8b03 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Hanno=20B=C3=B6ck?= <hanno@gentoo.org>
+Date: Sun, 2 Feb 2020 14:18:39 +0100
+Subject: [PATCH] i810: Avoid duplicate definition of I810PatternROP
+
+Upstream-Status: Backport [https://gitlab.freedesktop.org/xorg/driver/xf86-video-intel/-/commit/652d93cbbdc159c0883f1b626ea48e28bac63ae3]
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/legacy/i810/i810.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/legacy/i810/i810.h b/src/legacy/i810/i810.h
+index 347188c9..19be049c 100644
+--- a/src/legacy/i810/i810.h
++++ b/src/legacy/i810/i810.h
+@@ -322,6 +322,6 @@ extern void I810InitMC(ScreenPtr pScreen);
+ extern const OptionInfoRec *I810AvailableOptions(int chipid, int busid);
+
+ extern const int I810CopyROP[16];
+-const int I810PatternROP[16];
++extern const int I810PatternROP[16];
+
+ #endif /* _I810_H_ */
+--
+2.28.0
+
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb b/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb
index 553840ddb8..161371b118 100644
--- a/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb
+++ b/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb
@@ -13,7 +13,10 @@ SRCREV = "f66d39544bb8339130c96d282a80f87ca1606caf"
PV = "2.99.917+git${SRCPV}"
S = "${WORKDIR}/git"
-SRC_URI = "git://anongit.freedesktop.org/xorg/driver/xf86-video-intel"
+SRC_URI = "git://anongit.freedesktop.org/xorg/driver/xf86-video-intel \
+ file://0001-Sync-i915_pciids-upto-8717c6b7414f.patch \
+ file://0001-i810-Avoid-duplicate-definition-of-I810PatternROP.patch \
+"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
diff --git a/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc b/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc
index e30f044724..493b90a298 100644
--- a/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc
+++ b/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc
@@ -5,7 +5,6 @@ SECTION = "x11/drivers"
LICENSE = "MIT-X"
PE = "2"
-INC_PR = "r21"
DEPENDS = "virtual/xserver xorgproto util-macros"
diff --git a/meta/recipes-graphics/xorg-font/encodings_1.0.5.bb b/meta/recipes-graphics/xorg-font/encodings_1.0.5.bb
index a39609b5da..713fcfb935 100644
--- a/meta/recipes-graphics/xorg-font/encodings_1.0.5.bb
+++ b/meta/recipes-graphics/xorg-font/encodings_1.0.5.bb
@@ -7,7 +7,7 @@ require xorg-font-common.inc
LICENSE = "PD"
LIC_FILES_CHKSUM = "file://COPYING;md5=9da93f2daf2d5572faa2bfaf0dbd9e76"
PE = "1"
-PR = "${INC_PR}.1"
+PR = "r3"
DEPENDS = "mkfontscale-native mkfontdir-native font-util-native"
RDEPENDS_${PN} = ""
@@ -19,3 +19,7 @@ SRC_URI[sha256sum] = "bd96e16143a044b19e87f217cf6a3763a70c561d1076aad6f6d862ec41
inherit allarch
EXTRA_OECONF += "--with-encodingsdir=${datadir}/fonts/X11/encodings"
+
+# postinst from .inc doesn't apply to this recipe
+pkg_postinst_${PN} () {
+}
diff --git a/meta/recipes-graphics/xorg-font/font-alias-1.0.3/nocompiler.patch b/meta/recipes-graphics/xorg-font/font-alias-1.0.4/nocompiler.patch
index 0b9fb8ccc0..e54eee4ea9 100644
--- a/meta/recipes-graphics/xorg-font/font-alias-1.0.3/nocompiler.patch
+++ b/meta/recipes-graphics/xorg-font/font-alias-1.0.4/nocompiler.patch
@@ -1,22 +1,32 @@
+From fa2bbd48a55d54bd2dae30edf7936e3ab7587c96 Mon Sep 17 00:00:00 2001
+From: Richard Purdie <richard.purdie@linuxfoundation.org>
+Date: Tue, 17 May 2011 23:03:02 +0000
+Subject: [PATCH] Improve handling of 'all' architecture recipes and their
+
Upstream-Status: Inappropriate [configuration]
XORG_DEFAULT_OPTIONS pulls in the following dependency chains:
XORG_CWARNFLAGS -> AC_PROG_CC_C99
XORG_STRICT_OPTION -> AC_PROG_CC_C99, XORG_CWARNFLAGS
-XORG_MANPAGE_SECTIONS -> AC_CANONICAL_HOST -> Checks host
+XORG_MANPAGE_SECTIONS -> AC_CANONICAL_HOST -> Checks host
each of which triggers the use of the host compiler. As an "all"
architecture package, it shouldn't need a compiler (and doesn't).
RP 17/5/2011
-diff -uNr font-alias-1.0.3.orig//configure.ac font-alias-1.0.3/configure.ac
---- font-alias-1.0.3.orig//configure.ac 2011-05-18 21:29:18.378258643 +0200
-+++ font-alias-1.0.3/configure.ac 2011-05-18 21:32:06.865258593 +0200
-@@ -28,12 +28,12 @@
+---
+ configure.ac | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 3407c69..9fe1f89 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -27,12 +27,12 @@ AC_INIT([font-alias], [1.0.4],
+ [font-alias])
AM_INIT_AUTOMAKE([foreign dist-bzip2])
- AM_MAINTAINER_MODE
-# Require xorg-macros: XORG_DEFAULT_OPTIONS
m4_ifndef([XORG_MACROS_VERSION],
@@ -29,4 +39,4 @@ diff -uNr font-alias-1.0.3.orig//configure.ac font-alias-1.0.3/configure.ac
+XORG_INSTALL
AC_PROG_INSTALL
- XORG_FONTROOTDIR
+ # Require X.Org's font util macros 1.2 or later
diff --git a/meta/recipes-graphics/xorg-font/font-alias_1.0.3.bb b/meta/recipes-graphics/xorg-font/font-alias_1.0.4.bb
index 15e101596a..e4b70c69dc 100644
--- a/meta/recipes-graphics/xorg-font/font-alias_1.0.3.bb
+++ b/meta/recipes-graphics/xorg-font/font-alias_1.0.4.bb
@@ -4,10 +4,11 @@ require xorg-font-common.inc
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=bf0158b89be493d523d69d9f29265038 \
- file://cyrillic/fonts.alias;md5=f40795b0640d6785826aecd3b16f6124 \
+ file://cyrillic/fonts.alias;md5=d27bc65a2655cacdbc2644b51c064c20 \
file://75dpi/fonts.alias;md5=6bc48023f2ae7f3bfc105db7b0ee6b49 \
- file://misc/fonts.alias;md5=a8ec05d528431d4c9703b55a7efd67a8 \
- file://100dpi/fonts.alias;md5=85bebd6ca213aa656c301a72eb4397cb"
+ file://misc/fonts.alias;md5=1bdafa7c31aa54f87f3531f2ef8ed5a6 \
+ file://100dpi/fonts.alias;md5=85bebd6ca213aa656c301a72eb4397cb \
+ "
SRC_URI += "file://nocompiler.patch"
@@ -18,7 +19,5 @@ RDEPENDS_${PN}_class-native = "font-util-native"
inherit allarch
PE = "1"
-PR = "${INC_PR}.3"
-SRC_URI[md5sum] = "6d25f64796fef34b53b439c2e9efa562"
-SRC_URI[sha256sum] = "8b453b2aae1cfa8090009ca037037b8c5e333550651d5a158b7264ce1d472c9a"
+SRC_URI[sha256sum] = "f3111ae8bf2e980f5f56af400e8eefe5fc9f4207f4a412ea79637fd66c945276"
diff --git a/meta/recipes-graphics/xorg-font/xorg-font-common.inc b/meta/recipes-graphics/xorg-font/xorg-font-common.inc
index f18c8aefc2..7ca5c76a66 100644
--- a/meta/recipes-graphics/xorg-font/xorg-font-common.inc
+++ b/meta/recipes-graphics/xorg-font/xorg-font-common.inc
@@ -8,8 +8,6 @@ DEPENDS = " encodings font-alias font-util-native"
RDEPENDS_${PN} = "encodings font-util font-alias"
XORG_PN = "${BPN}"
-INC_PR = "r2"
-
SRC_URI = "${XORG_MIRROR}/individual/font/${XORG_PN}-${PV}.tar.bz2"
S = "${WORKDIR}/${XORG_PN}-${PV}"
diff --git a/meta/recipes-graphics/xorg-lib/libx11_1.6.9.bb b/meta/recipes-graphics/xorg-lib/libx11_1.6.12.bb
index ff60a4240c..de7f1c366e 100644
--- a/meta/recipes-graphics/xorg-lib/libx11_1.6.9.bb
+++ b/meta/recipes-graphics/xorg-lib/libx11_1.6.12.bb
@@ -14,8 +14,7 @@ SRC_URI += "file://Fix-hanging-issue-in-_XReply.patch \
file://disable_tests.patch \
file://libx11-whitespace.patch"
-SRC_URI[md5sum] = "55adbfb6d4370ecac5e70598c4e7eed2"
-SRC_URI[sha256sum] = "9cc7e8d000d6193fa5af580d50d689380b8287052270f5bb26a5fb6b58b2bed1"
+SRC_URI[sha256sum] = "f108227469419ac04d196df0f3b80ce1f7f65059bb54c0de811f4d8e03fd6ec7"
PROVIDES = "virtual/libx11"
diff --git a/meta/recipes-graphics/xorg-lib/libxcb/xcbincludedir.patch b/meta/recipes-graphics/xorg-lib/libxcb/xcbincludedir.patch
deleted file mode 100644
index 46297c33c3..0000000000
--- a/meta/recipes-graphics/xorg-lib/libxcb/xcbincludedir.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-As pkg-config --variable doesn't respect the sysroot, add the pkg-config sysroot
-to the beginning of variables that are used later on the host.
-
-Upstream-Status: Pending
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-diff --git a/configure.ac b/configure.ac
-index 94da4f7..d29cd6a 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -64,7 +64,7 @@ AC_SUBST(NEEDED)
-
- # Find the xcb-proto protocol descriptions
- AC_MSG_CHECKING(XCBPROTO_XCBINCLUDEDIR)
--XCBPROTO_XCBINCLUDEDIR=`$PKG_CONFIG --variable=xcbincludedir xcb-proto`
-+XCBPROTO_XCBINCLUDEDIR=$PKG_CONFIG_SYSROOT_DIR/`$PKG_CONFIG --variable=xcbincludedir xcb-proto`
- AC_MSG_RESULT($XCBPROTO_XCBINCLUDEDIR)
- AC_SUBST(XCBPROTO_XCBINCLUDEDIR)
-
-@@ -74,7 +74,7 @@ AC_SUBST(XCBPROTO_VERSION)
-
- # Find the xcbgen Python package
- AC_MSG_CHECKING(XCBPROTO_XCBPYTHONDIR)
--XCBPROTO_XCBPYTHONDIR=`$PKG_CONFIG --variable=pythondir xcb-proto`
-+XCBPROTO_XCBPYTHONDIR=$PKG_CONFIG_SYSROOT_DIR/`$PKG_CONFIG --variable=pythondir xcb-proto`
- AC_MSG_RESULT($XCBPROTO_XCBPYTHONDIR)
- AC_SUBST(XCBPROTO_XCBPYTHONDIR)
-
diff --git a/meta/recipes-graphics/xorg-lib/libxcb_1.13.1.bb b/meta/recipes-graphics/xorg-lib/libxcb_1.14.bb
index 9befc51b50..f27c5daa61 100644
--- a/meta/recipes-graphics/xorg-lib/libxcb_1.13.1.bb
+++ b/meta/recipes-graphics/xorg-lib/libxcb_1.14.bb
@@ -9,13 +9,11 @@ SECTION = "x11/libs"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=d763b081cb10c223435b01e00dc0aba7"
-SRC_URI = "http://xcb.freedesktop.org/dist/libxcb-${PV}.tar.bz2 \
- file://xcbincludedir.patch \
+SRC_URI = "http://xcb.freedesktop.org/dist/libxcb-${PV}.tar.xz \
file://disable-check.patch \
"
-SRC_URI[md5sum] = "f33cdfc67346f7217a9326c0d8679975"
-SRC_URI[sha256sum] = "a89fb7af7a11f43d2ce84a844a4b38df688c092bf4b67683aef179cdf2a647c4"
+SRC_URI[sha256sum] = "a55ed6db98d43469801262d81dc2572ed124edc3db31059d4e9916eb9f844c34"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-graphics/xorg-lib/libxt_1.2.0.bb b/meta/recipes-graphics/xorg-lib/libxt_1.2.0.bb
index 42df435052..54384521c8 100644
--- a/meta/recipes-graphics/xorg-lib/libxt_1.2.0.bb
+++ b/meta/recipes-graphics/xorg-lib/libxt_1.2.0.bb
@@ -22,8 +22,8 @@ PE = "1"
XORG_PN = "libXt"
-SRC_URI += "file://libxt_fix_for_x32.patch \
- "
+SRC_URI += "file://libxt_fix_for_x32.patch"
+
SRC_URI[md5sum] = "a9019421d3ee8b4937b6afd9025f018a"
SRC_URI[sha256sum] = "b31df531dabed9f4611fc8980bc51d7782967e2aff44c4105251a1acb5a77831"
diff --git a/meta/recipes-graphics/xorg-lib/libxxf86vm_1.1.4.bb b/meta/recipes-graphics/xorg-lib/libxxf86vm_1.1.4.bb
index 95fc0b642c..1612a50f19 100644
--- a/meta/recipes-graphics/xorg-lib/libxxf86vm_1.1.4.bb
+++ b/meta/recipes-graphics/xorg-lib/libxxf86vm_1.1.4.bb
@@ -18,3 +18,5 @@ XORG_PN = "libXxf86vm"
SRC_URI[md5sum] = "298b8fff82df17304dfdb5fe4066fe3a"
SRC_URI[sha256sum] = "afee27f93c5f31c0ad582852c0fb36d50e4de7cd585fcf655e278a633d85cd57"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-graphics/xorg-lib/pixman/0001-test-utils-Check-for-FE_INVALID-definition-before-us.patch b/meta/recipes-graphics/xorg-lib/pixman/0001-test-utils-Check-for-FE_INVALID-definition-before-us.patch
deleted file mode 100644
index 23cbf53a41..0000000000
--- a/meta/recipes-graphics/xorg-lib/pixman/0001-test-utils-Check-for-FE_INVALID-definition-before-us.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 0ccd906b904d21536d5ab41c6196760e3e5d72cb Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 17 May 2016 17:30:00 -0700
-Subject: [PATCH] test/utils: Check for FE_INVALID definition before use
-
-Some architectures e.g. nios2 do not support all exceptions
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted [https://gitlab.freedesktop.org/pixman/pixman/merge_requests/24]
-
- test/utils.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/test/utils.c b/test/utils.c
-index f8e42a5..fe32b1e 100644
---- a/test/utils.c
-+++ b/test/utils.c
-@@ -978,9 +978,11 @@ enable_invalid_exceptions (void)
- {
- #ifdef HAVE_FENV_H
- #ifdef HAVE_FEENABLEEXCEPT
-+#ifdef FE_INVALID
- feenableexcept (FE_INVALID);
- #endif
- #endif
-+#endif
- }
-
- void *
---
-2.8.2
-
diff --git a/meta/recipes-graphics/xorg-lib/pixman_0.38.4.bb b/meta/recipes-graphics/xorg-lib/pixman_0.40.0.bb
index 22e19ba069..5a3bb22ec3 100644
--- a/meta/recipes-graphics/xorg-lib/pixman_0.38.4.bb
+++ b/meta/recipes-graphics/xorg-lib/pixman_0.40.0.bb
@@ -9,10 +9,9 @@ DEPENDS = "zlib"
SRC_URI = "https://www.cairographics.org/releases/${BP}.tar.gz \
file://0001-ARM-qemu-related-workarounds-in-cpu-features-detecti.patch \
- file://0001-test-utils-Check-for-FE_INVALID-definition-before-us.patch \
"
-SRC_URI[md5sum] = "267a7af290f93f643a1bc74490d9fdd1"
-SRC_URI[sha256sum] = "da66d6fd6e40aee70f7bd02e4f8f76fc3f006ec879d346bae6a723025cfbdde7"
+SRC_URI[md5sum] = "73858c0862dd9896fb5f62ae267084a4"
+SRC_URI[sha256sum] = "6d200dec3740d9ec4ec8d1180e25779c00bc749f94278c8b9021f5534db223fc"
# see http://cairographics.org/releases/ - only even minor versions are stable
UPSTREAM_CHECK_REGEX = "pixman-(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)"
diff --git a/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.28.bb b/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.30.bb
index 7a3d694bd6..a4d67cd2ce 100644
--- a/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.28.bb
+++ b/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.30.bb
@@ -13,8 +13,7 @@ LICENSE = "MIT & MIT-style"
LIC_FILES_CHKSUM = "file://COPYING;md5=0e7f21ca7db975c63467d2e7624a12f9"
SRC_URI = "${XORG_MIRROR}/individual/data/xkeyboard-config/${BPN}-${PV}.tar.bz2"
-SRC_URI[md5sum] = "5a968ab77846ff85a04242410b2a61de"
-SRC_URI[sha256sum] = "69adb25b0fc64e4075f8ec0eab8d869892419f474f91fb69db1713de2062bdce"
+SRC_URI[sha256sum] = "095a524f7b633ed257617202d06c9c71fe020c8897b106cf0dcdd0c6e8b797d4"
SECTION = "x11/libs"
DEPENDS = "util-macros libxslt-native"
diff --git a/meta/recipes-graphics/xorg-proto/xcb-proto_1.13.bb b/meta/recipes-graphics/xorg-proto/xcb-proto_1.14.bb
index 7467090920..6de30098d6 100644
--- a/meta/recipes-graphics/xorg-proto/xcb-proto_1.13.bb
+++ b/meta/recipes-graphics/xorg-proto/xcb-proto_1.14.bb
@@ -11,9 +11,8 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=d763b081cb10c223435b01e00dc0aba7 \
file://src/dri2.xml;beginline=2;endline=28;md5=f8763b13ff432e8597e0d610cf598e65"
-SRC_URI = "http://xcb.freedesktop.org/dist/${BP}.tar.bz2"
-SRC_URI[md5sum] = "abe9aa4886138150bbc04ae4f29b90e3"
-SRC_URI[sha256sum] = "7b98721e669be80284e9bbfeab02d2d0d54cd11172b72271e47a2fe875e2bde1"
+SRC_URI = "http://xcb.freedesktop.org/dist/${BP}.tar.xz"
+SRC_URI[sha256sum] = "186a3ceb26f9b4a015f5a44dcc814c93033a5fc39684f36f1ecc79834416a605"
inherit autotools pkgconfig python3native
diff --git a/meta/recipes-graphics/xorg-proto/xorgproto/legacy.patch b/meta/recipes-graphics/xorg-proto/xorgproto/legacy.patch
deleted file mode 100644
index e25db04b9c..0000000000
--- a/meta/recipes-graphics/xorg-proto/xorgproto/legacy.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-These headers should be legacy to ensure autotools/meson intall the same files.
-
-Upstream-Status: Submitted [https://gitlab.freedesktop.org/xorg/proto/xorgproto/merge_requests/12]
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-diff --git a/include/X11/extensions/meson.build b/include/X11/extensions/meson.build
-index 1d85cf8..d1ac281 100644
---- a/include/X11/extensions/meson.build
-+++ b/include/X11/extensions/meson.build
-@@ -65,8 +65,6 @@ install_headers(
- 'xf86dga.h',
- 'xf86dgaproto.h',
- 'xf86dgastr.h',
-- 'xf86misc.h',
-- 'xf86mscstr.h',
- 'xf86vm.h',
- 'xf86vmproto.h',
- 'xf86vmstr.h',
-@@ -85,13 +83,6 @@ install_headers(
- 'xtestext1const.h',
- 'xtestext1proto.h',
- 'xtestproto.h',
-- 'xtrapbits.h',
-- 'xtrapddmi.h',
-- 'xtrapdi.h',
-- 'xtrapemacros.h',
-- 'xtraplib.h',
-- 'xtraplibp.h',
-- 'xtrapproto.h',
- 'Xv.h',
- 'XvMC.h',
- 'XvMCproto.h',
-@@ -113,7 +104,16 @@ if get_option('legacy') == true
- 'windowswmstr.h',
- 'xcalibrateproto.h',
- 'xcalibratewire.h',
-+ 'xtrapbits.h',
-+ 'xtrapddmi.h',
-+ 'xtrapdi.h',
-+ 'xtrapemacros.h',
-+ 'xtraplib.h',
-+ 'xtraplibp.h',
-+ 'xtrapproto.h',
- 'Xeviestr.h',
-+ 'xf86misc.h',
-+ 'xf86mscstr.h',
- 'xf86rush.h',
- 'xf86rushstr.h',
- 'XKBgeom.h',
-diff --git a/include/X11/meson.build b/include/X11/meson.build
-index 1c33c64..a4b022e 100644
---- a/include/X11/meson.build
-+++ b/include/X11/meson.build
-@@ -59,4 +59,6 @@ install_headers(
- subdir('dri')
- subdir('extensions')
- subdir('fonts')
--subdir('PM')
-+if get_option('legacy') == true
-+ subdir('PM')
-+endif
-diff --git a/meson.build b/meson.build
-index cfbaa2c..68e622a 100644
---- a/meson.build
-+++ b/meson.build
-@@ -42,18 +42,15 @@ pcs = [
- ['renderproto', '0.11.1'],
- ['resourceproto', '1.2.0'],
- ['scrnsaverproto', '1.2.2'],
-- ['trapproto', '3.4.3'],
- ['videoproto', '2.3.3'],
- ['xcmiscproto', '1.2.2'],
- ['xextproto', '7.3.0'],
- ['xf86bigfontproto', '1.2.0'],
- ['xf86dgaproto', '2.1'],
- ['xf86driproto', '2.1.1'],
-- ['xf86miscproto', '0.9.3'],
- ['xf86vidmodeproto', '2.3.1'],
- ['xineramaproto', '1.2.1'],
- ['xproto', '7.0.32'],
-- ['xproxymngproto', '1.0.3'],
- ]
-
- foreach pc : pcs
-@@ -78,9 +75,12 @@ if get_option('legacy') == true
- ['fontcacheproto', '0.1.3'],
- ['lg3dproto', '5.0'],
- ['printproto', '1.0.5'],
-+ ['trapproto', '3.4.3'],
- ['windowswmproto', '1.0.4'],
- ['xcalibrateproto', '0.1.0'],
-+ ['xf86miscproto', '0.9.3'],
- ['xf86rushproto', '1.2.2'],
-+ ['xproxymngproto', '1.0.3'],
- ]
- foreach pc : legacy_pcs
- pkg.generate(
diff --git a/meta/recipes-graphics/xorg-proto/xorgproto_2019.2.bb b/meta/recipes-graphics/xorg-proto/xorgproto_2020.1.bb
index fb3f3aed3d..c71bc9038f 100644
--- a/meta/recipes-graphics/xorg-proto/xorgproto_2019.2.bb
+++ b/meta/recipes-graphics/xorg-proto/xorgproto_2020.1.bb
@@ -9,16 +9,17 @@ SECTION = "x11/libs"
LICENSE = "MIT-style"
LIC_FILES_CHKSUM = "file://COPYING-x11proto;md5=b9e051107d5628966739a0b2e9b32676"
-SRC_URI = "${XORG_MIRROR}/individual/proto/${BP}.tar.bz2 \
- file://legacy.patch"
-SRC_URI[md5sum] = "a02dcaff48b4141b949ac99dfc344d86"
-SRC_URI[sha256sum] = "46ecd0156c561d41e8aa87ce79340910cdf38373b759e737fcbba5df508e7b8e"
+SRC_URI = "${XORG_MIRROR}/individual/proto/${BP}.tar.bz2"
+SRC_URI[md5sum] = "c29f4fa78f53b52b3efdc71ebd9506b6"
+SRC_URI[sha256sum] = "54a153f139035a376c075845dd058049177212da94d7a9707cf9468367b699d2"
inherit meson
PACKAGECONFIG ??= ""
PACKAGECONFIG[legacy] = "-Dlegacy=true,-Dlegacy=false"
+# Datadir only used to install pc files, $datadir/pkgconfig
+datadir="${libdir}"
# ${PN} is empty so we need to tweak -dev and -dbg package dependencies
RDEPENDS_${PN}-dev = ""
RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
index 14ba6bfee6..b3e03744c0 100644
--- a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
@@ -13,7 +13,6 @@ PROVIDES = "virtual/xserver-xf86"
PROVIDES += "virtual/xserver"
PE = "2"
-INC_PR = "r8"
XORG_PN = "xorg-server"
SRC_URI = "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${PV}.tar.bz2"
@@ -152,6 +151,7 @@ PACKAGECONFIG[gcrypt] = "--with-sha1=libgcrypt,,libgcrypt"
do_install_append () {
# Its assumed base-files creates this for us
rmdir ${D}${localstatedir}/log/
+ sed -i -e 's,${libdir}/xorg/modules,${prefix}/lib*/xorg/modules,' ${D}${mandir}/man5/xorg.conf.5
}
# Add runtime provides for the ABI versions of the video and input subsystems,
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-Avoid-duplicate-definitions-of-IOPortBase.patch b/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-Avoid-duplicate-definitions-of-IOPortBase.patch
new file mode 100644
index 0000000000..4737040675
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-Avoid-duplicate-definitions-of-IOPortBase.patch
@@ -0,0 +1,45 @@
+From fc04acfd948ac99d04a5dc08c78f3b13bc0c5c41 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 17 Aug 2020 10:50:51 -0700
+Subject: [PATCH] Avoid duplicate definitions of IOPortBase
+
+This fixed build with gcc10/-fno-common
+
+Fixes
+compiler.h:528: multiple definition of `IOPortBase';
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ hw/xfree86/common/compiler.h | 2 +-
+ hw/xfree86/os-support/linux/lnx_video.c | 1 +
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h
+index 2b2008b..c7d617e 100644
+--- a/hw/xfree86/common/compiler.h
++++ b/hw/xfree86/common/compiler.h
+@@ -525,7 +525,7 @@ xf86WriteMmio32Le(__volatile__ void *base, const unsigned long offset,
+ #define PORT_SIZE short
+ #endif
+
+-_X_EXPORT unsigned int IOPortBase; /* Memory mapped I/O port area */
++extern _X_EXPORT unsigned int IOPortBase; /* Memory mapped I/O port area */
+
+ static __inline__ void
+ outb(unsigned PORT_SIZE port, unsigned char val)
+diff --git a/hw/xfree86/os-support/linux/lnx_video.c b/hw/xfree86/os-support/linux/lnx_video.c
+index 04e4509..9dc7316 100644
+--- a/hw/xfree86/os-support/linux/lnx_video.c
++++ b/hw/xfree86/os-support/linux/lnx_video.c
+@@ -78,6 +78,7 @@ xf86OSInitVidMem(VidMemInfoPtr pVidMem)
+ /***************************************************************************/
+ /* I/O Permissions section */
+ /***************************************************************************/
++_X_EXPORT unsigned int IOPortBase; /* Memory mapped I/O port area */
+
+ #if defined(__powerpc__)
+ volatile unsigned char *ioBase = NULL;
+--
+2.28.0
+
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch b/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch
new file mode 100644
index 0000000000..8b687d612d
--- /dev/null
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch
@@ -0,0 +1,34 @@
+From e50c85f4ebf559a3bac4817b41074c43d4691779 Mon Sep 17 00:00:00 2001
+From: Eric Anholt <eric@anholt.net>
+Date: Fri, 26 Oct 2018 17:47:30 -0700
+Subject: [PATCH] Fix segfault on probing a non-PCI platform device on a system
+ with PCI.
+
+Some Broadcom set-top-box boards have PCI busses, but the GPU is still
+probed through DT. We would dereference a null busid here in that
+case.
+
+Signed-off-by: Eric Anholt <eric@anholt.net>
+
+Upstream-Status: Backport [https://github.com/freedesktop/xorg-xserver/commit/e50c85f4e]
+Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
+---
+ hw/xfree86/common/xf86platformBus.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
+index cef47da03..dadbac6c8 100644
+--- a/hw/xfree86/common/xf86platformBus.c
++++ b/hw/xfree86/common/xf86platformBus.c
+@@ -289,7 +289,7 @@ xf86platformProbe(void)
+ for (i = 0; i < xf86_num_platform_devices; i++) {
+ char *busid = xf86_platform_odev_attributes(i)->busid;
+
+- if (pci && (strncmp(busid, "pci:", 4) == 0)) {
++ if (pci && busid && (strncmp(busid, "pci:", 4) == 0)) {
+ platform_find_pci_info(&xf86_platform_devices[i], busid);
+ }
+
+--
+2.28.0
+
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.7.bb b/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.9.bb
index 998b98a76c..c83e43ed99 100644
--- a/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.7.bb
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.9.bb
@@ -5,11 +5,10 @@ SRC_URI += "file://0001-xf86pciBus.c-use-Intel-ddx-only-for-pre-gen4-hardwar.pat
file://0001-test-xtest-Initialize-array-with-braces.patch \
file://sdksyms-no-build-path.patch \
file://0001-drmmode_display.c-add-missing-mi.h-include.patch \
+ file://0001-Avoid-duplicate-definitions-of-IOPortBase.patch \
+ file://0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch \
"
-SRC_URI[md5sum] = "d2e96355ad47244c675bce38db2b48a9"
-SRC_URI[sha256sum] = "bd5986f010f34f5b3d6bc99fe395ecb1e0dead15a26807e0c832701809a06ea1"
-
-CFLAGS += "-fcommon"
+SRC_URI[sha256sum] = "e219f2e0dfe455467939149d7cd2ee53b79b512cc1d2094ae4f5c9ed9ccd3571"
# These extensions are now integrated into the server, so declare the migration
# path for in-place upgrades.
diff --git a/meta/recipes-kernel/blktrace/blktrace/make-btt-scripts-python3-ready.patch b/meta/recipes-kernel/blktrace/blktrace/make-btt-scripts-python3-ready.patch
new file mode 100644
index 0000000000..3b0c1c692c
--- /dev/null
+++ b/meta/recipes-kernel/blktrace/blktrace/make-btt-scripts-python3-ready.patch
@@ -0,0 +1,197 @@
+From 70d5ca2d5f3d6b97c11c641b7e0c5836983219a0 Mon Sep 17 00:00:00 2001
+From: Eric Sandeen <sandeen@redhat.com>
+Date: Wed, 28 Mar 2018 15:26:36 -0500
+Subject: [oe-core][PATCH 1/1] make btt scripts python3-ready
+
+Many distributions are moving to python3 by default. Here's
+an attempt to make the python scripts in blktrace python3-ready.
+
+Most of this was done with automated tools. I hand fixed some
+space-vs tab issues, and cast an array index to integer. It
+passes rudimentary testing when run under python2.7 as well
+as python3.
+
+This doesn't do anything with the shebangs, it leaves them both
+invoking whatever "env python" coughs up on the system.
+
+Signed-off-by: Eric Sandeen <sandeen@redhat.com>
+Signed-off-by: Jens Axboe <axboe@kernel.dk>
+
+Unchanged except to modify shebangs to use python3 since
+oe-core does not support python2 anymore.
+
+Upstream-Status: Backport [git://git.kernel.dk/blktrace.git commit 70d5ca2d5...]
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+---
+ btt/bno_plot.py | 28 +++++++++++++++-------------
+ btt/btt_plot.py | 22 +++++++++++++---------
+ 2 files changed, 28 insertions(+), 22 deletions(-)
+
+--- git.orig/btt/bno_plot.py
++++ git/btt/bno_plot.py
+@@ -1,4 +1,4 @@
+-#! /usr/bin/env python
++#! /usr/bin/env python3
+ #
+ # btt blkno plotting interface
+ #
+@@ -38,6 +38,8 @@ automatically push the keys under the gr
+ To exit the plotter, enter 'quit' or ^D at the 'gnuplot> ' prompt.
+ """
+
++from __future__ import absolute_import
++from __future__ import print_function
+ import getopt, glob, os, sys, tempfile
+
+ verbose = 0
+@@ -60,14 +62,14 @@ def parse_args(in_args):
+
+ try:
+ (opts, args) = getopt.getopt(in_args, s_opts, l_opts)
+- except getopt.error, msg:
+- print >>sys.stderr, msg
+- print >>sys.stderr, __doc__
++ except getopt.error as msg:
++ print(msg, file=sys.stderr)
++ print(__doc__, file=sys.stderr)
+ sys.exit(1)
+
+ for (o, a) in opts:
+ if o in ('-h', '--help'):
+- print __doc__
++ print(__doc__)
+ sys.exit(0)
+ elif o in ('-v', '--verbose'):
+ verbose += 1
+@@ -84,10 +86,10 @@ if __name__ == '__main__':
+ (bnos, keys_below) = parse_args(sys.argv[1:])
+
+ if verbose:
+- print 'Using files:',
+- for bno in bnos: print bno,
+- if keys_below: print '\nKeys are to be placed below graph'
+- else: print ''
++ print('Using files:', end=' ')
++ for bno in bnos: print(bno, end=' ')
++ if keys_below: print('\nKeys are to be placed below graph')
++ else: print('')
+
+ tmpdir = tempfile.mktemp()
+ os.mkdir(tmpdir)
+@@ -99,7 +101,7 @@ if __name__ == '__main__':
+ fo = open(t, 'w')
+ for line in open(f, 'r'):
+ fld = line.split(None)
+- print >>fo, fld[0], fld[1], int(fld[2])-int(fld[1])
++ print(fld[0], fld[1], int(fld[2])-int(fld[1]), file=fo)
+ fo.close()
+
+ t = t[t.rfind('/')+1:]
+@@ -107,16 +109,16 @@ if __name__ == '__main__':
+ else: plot_cmd = "%s,'%s'" % (plot_cmd, t)
+
+ fo = open('%s/plot.cmds' % tmpdir, 'w')
+- print >>fo, cmds
+- if len(bnos) > 10 or keys_below: print >>fo, 'set key below'
+- print >>fo, plot_cmd
++ print(cmds, file=fo)
++ if len(bnos) > 10 or keys_below: print('set key below', file=fo)
++ print(plot_cmd, file=fo)
+ fo.close()
+
+ pid = os.fork()
+ if pid == 0:
+ cmd = 'gnuplot %s/plot.cmds -' % tmpdir
+
+- if verbose: print 'Executing %s' % cmd
++ if verbose: print('Executing %s' % cmd)
+
+ os.chdir(tmpdir)
+ os.system(cmd)
+--- git.orig/btt/btt_plot.py
++++ git/btt/btt_plot.py
+@@ -1,4 +1,4 @@
+-#! /usr/bin/env python
++#! /usr/bin/env python3
+ #
+ # btt_plot.py: Generate matplotlib plots for BTT generate data files
+ #
+@@ -55,6 +55,10 @@ Arguments:
+ but the -o (--output) and -T (--title) options will be ignored.
+ """
+
++from __future__ import absolute_import
++from __future__ import print_function
++import six
++from six.moves import range
+ __author__ = 'Alan D. Brunelle <alan.brunelle@hp.com>'
+
+ #------------------------------------------------------------------------------
+@@ -82,7 +86,7 @@ get_base = lambda file: file[file.find(
+ def fatal(msg):
+ """Generate fatal error message and exit"""
+
+- print >>sys.stderr, 'FATAL: %s' % msg
++ print('FATAL: %s' % msg, file=sys.stderr)
+ sys.exit(1)
+
+ #------------------------------------------------------------------------------
+@@ -163,7 +167,7 @@ def get_data(files):
+ if not os.path.exists(file):
+ fatal('%s not found' % file)
+ elif verbose:
+- print 'Processing %s' % file
++ print('Processing %s' % file)
+
+ xs = []
+ ys = []
+@@ -214,8 +218,8 @@ def parse_args(args):
+
+ try:
+ (opts, args) = getopt.getopt(args[1:], s_opts, l_opts)
+- except getopt.error, msg:
+- print >>sys.stderr, msg
++ except getopt.error as msg:
++ print(msg, file=sys.stderr)
+ fatal(__doc__)
+
+ for (o, a) in opts:
+@@ -293,15 +297,15 @@ def generate_output(type, db):
+ def color(idx, style):
+ """Returns a color/symbol type based upon the index passed."""
+
+- colors = [ 'b', 'g', 'r', 'c', 'm', 'y', 'k' ]
++ colors = [ 'b', 'g', 'r', 'c', 'm', 'y', 'k' ]
+ l_styles = [ '-', ':', '--', '-.' ]
+ m_styles = [ 'o', '+', '.', ',', 's', 'v', 'x', '<', '>' ]
+
+ color = colors[idx % len(colors)]
+ if style == 'line':
+- style = l_styles[(idx / len(l_styles)) % len(l_styles)]
++ style = l_styles[int((idx / len(l_styles)) % len(l_styles))]
+ elif style == 'marker':
+- style = m_styles[(idx / len(m_styles)) % len(m_styles)]
++ style = m_styles[int((idx / len(m_styles)) % len(m_styles))]
+
+ return '%s%s' % (color, style)
+
+@@ -314,7 +318,7 @@ def generate_output(type, db):
+ ofile = '%s.png' % type
+
+ if verbose:
+- print 'Generating plot into %s' % ofile
++ print('Generating plot into %s' % ofile)
+
+ fig = plt.figure(figsize=plot_size)
+ ax = fig.add_subplot(111)
+@@ -329,7 +333,7 @@ def generate_output(type, db):
+ legends = None
+
+ keys = []
+- for file in db.iterkeys():
++ for file in six.iterkeys(db):
+ if not file in ['min_x', 'max_x', 'min_y', 'max_y']:
+ keys.append(file)
+
diff --git a/meta/recipes-kernel/blktrace/blktrace_git.bb b/meta/recipes-kernel/blktrace/blktrace_git.bb
index 2605ff9167..6903053b5b 100644
--- a/meta/recipes-kernel/blktrace/blktrace_git.bb
+++ b/meta/recipes-kernel/blktrace/blktrace_git.bb
@@ -12,6 +12,7 @@ PV = "1.2.0+git${SRCPV}"
SRC_URI = "git://git.kernel.dk/blktrace.git \
file://ldflags.patch \
file://CVE-2018-10689.patch \
+ file://make-btt-scripts-python3-ready.patch \
"
S = "${WORKDIR}/git"
diff --git a/meta/recipes-kernel/cryptodev/cryptodev-linux_1.10.bb b/meta/recipes-kernel/cryptodev/cryptodev-linux_1.11.bb
index c55577c661..c55577c661 100644
--- a/meta/recipes-kernel/cryptodev/cryptodev-linux_1.10.bb
+++ b/meta/recipes-kernel/cryptodev/cryptodev-linux_1.11.bb
diff --git a/meta/recipes-kernel/cryptodev/cryptodev-module_1.10.bb b/meta/recipes-kernel/cryptodev/cryptodev-module_1.11.bb
index 552eb6abaa..b3b554c7d3 100644
--- a/meta/recipes-kernel/cryptodev/cryptodev-module_1.10.bb
+++ b/meta/recipes-kernel/cryptodev/cryptodev-module_1.11.bb
@@ -7,9 +7,8 @@ inherit module
# Header file provided by a separate package
DEPENDS += "cryptodev-linux"
-SRC_URI += " \
-file://0001-Disable-installing-header-file-provided-by-another-p.patch \
-"
+SRC_URI += "file://0001-Disable-installing-header-file-provided-by-another-p.patch \
+ "
EXTRA_OEMAKE='KERNEL_DIR="${STAGING_KERNEL_DIR}" PREFIX="${D}"'
diff --git a/meta/recipes-kernel/cryptodev/cryptodev-tests_1.10.bb b/meta/recipes-kernel/cryptodev/cryptodev-tests_1.11.bb
index 9cb5dcb94f..9cb5dcb94f 100644
--- a/meta/recipes-kernel/cryptodev/cryptodev-tests_1.10.bb
+++ b/meta/recipes-kernel/cryptodev/cryptodev-tests_1.11.bb
diff --git a/meta/recipes-kernel/cryptodev/cryptodev.inc b/meta/recipes-kernel/cryptodev/cryptodev.inc
index f99f8bc9f0..c050eda49e 100644
--- a/meta/recipes-kernel/cryptodev/cryptodev.inc
+++ b/meta/recipes-kernel/cryptodev/cryptodev.inc
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "git://github.com/cryptodev-linux/cryptodev-linux \
"
-SRCREV = "a87053bee5680878c295b7d23cf0d7065576ac2b"
+SRCREV = "fabe5989a3dc9fba0cd0a40b612247cdde351c01"
S = "${WORKDIR}/git"
diff --git a/meta/recipes-kernel/dtc/dtc_1.5.1.bb b/meta/recipes-kernel/dtc/dtc_1.6.0.bb
index 9df8a06d47..92df70d9fc 100644
--- a/meta/recipes-kernel/dtc/dtc_1.5.1.bb
+++ b/meta/recipes-kernel/dtc/dtc_1.6.0.bb
@@ -3,7 +3,7 @@ require dtc.inc
LIC_FILES_CHKSUM = "file://GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://libfdt/libfdt.h;beginline=4;endline=7;md5=05bb357cfb75cae7d2b01d2ee8d76407"
-SRCREV = "60e0db3d65a1218b0d5a29474e769f28a18e3ca6"
+SRCREV = "2525da3dba9beceb96651dc2986581871dbeca30"
S = "${WORKDIR}/git"
diff --git a/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb b/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb
index 4f1af731d6..ea33732a3e 100644
--- a/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb
+++ b/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb
@@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = "file://tools/kgit;beginline=5;endline=9;md5=9c30e971d435e249
DEPENDS = "git-native"
-SRCREV = "c66833e1caac25279a5052fceb13213f5e4f79f9"
+SRCREV = "df4390b18a500a1a7d4695e1856971f8e36ce517"
PR = "r12"
PV = "0.2+git${SRCPV}"
diff --git a/meta/recipes-kernel/kexec/kexec-tools/0001-kexec-Fix-build-with-fno-common.patch b/meta/recipes-kernel/kexec/kexec-tools/0001-kexec-Fix-build-with-fno-common.patch
new file mode 100644
index 0000000000..31f4d00b53
--- /dev/null
+++ b/meta/recipes-kernel/kexec/kexec-tools/0001-kexec-Fix-build-with-fno-common.patch
@@ -0,0 +1,78 @@
+From c5fec6d6368b4103557deb710150119dca438544 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 5 Aug 2020 10:46:39 -0700
+Subject: [PATCH] kexec: Fix build with -fno-common
+
+Ensure that my_debug is not doubly defined
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ kexec/arch/ppc64/kexec-elf-ppc64.c | 2 --
+ kexec/fs2dt.h | 2 +-
+ 2 files changed, 1 insertion(+), 3 deletions(-)
+
+--- a/kexec/arch/ppc64/kexec-elf-ppc64.c
++++ b/kexec/arch/ppc64/kexec-elf-ppc64.c
+@@ -44,8 +44,6 @@
+ uint64_t initrd_base, initrd_size;
+ unsigned char reuse_initrd = 0;
+ const char *ramdisk;
+-/* Used for enabling printing message from purgatory code */
+-int my_debug = 0;
+
+ int elf_ppc64_probe(const char *buf, off_t len)
+ {
+--- a/kexec/fs2dt.h
++++ b/kexec/fs2dt.h
+@@ -30,7 +30,7 @@ extern struct bootblock bb[1];
+
+ /* Used for enabling printing message from purgatory code
+ * Only has implemented for PPC64 */
+-int my_debug;
++extern int my_debug;
+ extern int dt_no_old_root;
+
+ void reserve(unsigned long long where, unsigned long long length);
+--- a/kexec/arch/arm64/kexec-arm64.h
++++ b/kexec/arch/arm64/kexec-arm64.h
+@@ -50,8 +50,8 @@ int zImage_arm64_load(int argc, char **a
+ void zImage_arm64_usage(void);
+
+
+-off_t initrd_base;
+-off_t initrd_size;
++extern off_t initrd_base;
++extern off_t initrd_size;
+
+ /**
+ * struct arm64_mem - Memory layout info.
+@@ -65,7 +65,7 @@ struct arm64_mem {
+ };
+
+ #define arm64_mem_ngv UINT64_MAX
+-struct arm64_mem arm64_mem;
++extern struct arm64_mem arm64_mem;
+
+ uint64_t get_phys_offset(void);
+ uint64_t get_vp_offset(void);
+--- a/kexec/arch/x86_64/kexec-bzImage64.c
++++ b/kexec/arch/x86_64/kexec-bzImage64.c
+@@ -42,7 +42,6 @@
+ #include <arch/options.h>
+
+ static const int probe_debug = 0;
+-int bzImage_support_efi_boot;
+
+ int bzImage64_probe(const char *buf, off_t len)
+ {
+--- a/kexec/arch/ppc/kexec-elf-ppc.c
++++ b/kexec/arch/ppc/kexec-elf-ppc.c
+@@ -33,7 +33,6 @@
+ static const int probe_debug = 0;
+
+ unsigned char reuse_initrd;
+-const char *ramdisk;
+ int create_flatten_tree(struct kexec_info *, unsigned char **, unsigned long *,
+ char *);
+
diff --git a/meta/recipes-kernel/kexec/kexec-tools_2.0.20.bb b/meta/recipes-kernel/kexec/kexec-tools_2.0.20.bb
index 871b36440f..1e81ecc2c7 100644
--- a/meta/recipes-kernel/kexec/kexec-tools_2.0.20.bb
+++ b/meta/recipes-kernel/kexec/kexec-tools_2.0.20.bb
@@ -20,6 +20,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/kexec/kexec-tools-${PV}.tar.gz
file://0005-Disable-PIE-during-link.patch \
file://0006-kexec-arm-undefine-__NR_kexec_file_load-for-arm.patch \
file://0007-kexec-un-break-the-build-on-32-bit-x86.patch \
+ file://0001-kexec-Fix-build-with-fno-common.patch \
"
SRC_URI[md5sum] = "46724b67f32501c5d3e778161347cad9"
diff --git a/meta/recipes-kernel/kmod/kmod.inc b/meta/recipes-kernel/kmod/kmod.inc
index 334453838e..646dff9a97 100644
--- a/meta/recipes-kernel/kmod/kmod.inc
+++ b/meta/recipes-kernel/kmod/kmod.inc
@@ -11,18 +11,18 @@ SECTION = "base"
LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
file://libkmod/COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
+ file://tools/COPYING;md5=751419260aa954499f7abaabaa882bbe \
"
inherit autotools gtk-doc pkgconfig manpages
-SRCREV = "58133a96c894c043e48c74ddf0bfe8db90bac62f"
+SRCREV = "819a125ca756003dce2d11624035b7fb605a8e99"
# Lookout for PV bump too when SRCREV is changed
-PV = "26"
+PV = "27"
SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git \
file://depmod-search.conf \
- file://0001-build-Stop-using-dolt.patch \
file://avoid_parallel_tests.patch \
- "
+ "
S = "${WORKDIR}/git"
@@ -32,5 +32,7 @@ EXTRA_OECONF +=" --enable-tools --with-zlib"
PACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
PACKAGECONFIG[logging] = " --enable-logging,--disable-logging"
PACKAGECONFIG[manpages] = "--enable-manpages, --disable-manpages, libxslt-native xmlto-native"
+PACKAGECONFIG[xz] = "--with-xz,--without-xz,xz"
+PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl"
GTKDOC_DOCDIR = "${S}/libkmod/docs"
diff --git a/meta/recipes-kernel/kmod/kmod/0001-build-Stop-using-dolt.patch b/meta/recipes-kernel/kmod/kmod/0001-build-Stop-using-dolt.patch
deleted file mode 100644
index c915ad5e8a..0000000000
--- a/meta/recipes-kernel/kmod/kmod/0001-build-Stop-using-dolt.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From f8b8d7b330433511d19a936ddfc7b7d1af5490b5 Mon Sep 17 00:00:00 2001
-From: Adrian Bunk <bunk@kernel.org>
-Date: Wed, 20 Feb 2019 14:22:04 +0200
-Subject: build: Stop using dolt
-
-This does regress "make -12" from 0.7s to 0.9s on my
-Coffee Lake machine, but even on slower hardware this
-will not amount to a noticable slowdown.
-
-On the other hand using dolt can create problems for
-people doing cross-compilation, e.g. Yocto has two
-hacks just for dolt in kmod:
-https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/recipes-kernel/kmod/kmod.inc?id=a17abae00785c76cfffe5381a22fb2c86b982e82
-
-Signed-off-by: Adrian Bunk <bunk@kernel.org>
-Upstream-Status: Backport
-
---- a/configure.ac
-+++ b/configure.ac
-@@ -17,7 +17,6 @@ AM_MAINTAINER_MODE([enable])
- AM_INIT_AUTOMAKE([check-news foreign 1.11 silent-rules tar-pax no-dist-gzip dist-xz subdir-objects color-tests parallel-tests])
- AM_SILENT_RULES([yes])
- LT_INIT([disable-static pic-only])
--DOLT
-
- AS_IF([test "x$enable_static" = "xyes"], [AC_MSG_ERROR([--enable-static is not supported by kmod])])
- AS_IF([test "x$enable_largefile" = "xno"], [AC_MSG_ERROR([--disable-largefile is not supported by kmod])])
-
diff --git a/meta/recipes-kernel/kmod/kmod_git.bb b/meta/recipes-kernel/kmod/kmod_git.bb
index bd21d2ff73..4f2b037f2f 100644
--- a/meta/recipes-kernel/kmod/kmod_git.bb
+++ b/meta/recipes-kernel/kmod/kmod_git.bb
@@ -58,3 +58,5 @@ PACKAGES =+ "libkmod"
FILES_libkmod = "${base_libdir}/libkmod*${SOLIBS} ${libdir}/libkmod*${SOLIBS}"
FILES_${PN} += "${base_libdir}/depmod.d ${base_libdir}/modprobe.d"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_20200117.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_20200817.bb
index 8111c41016..5c9d4c3e04 100644
--- a/meta/recipes-kernel/linux-firmware/linux-firmware_20200117.bb
+++ b/meta/recipes-kernel/linux-firmware/linux-firmware_20200817.bb
@@ -26,6 +26,7 @@ LICENSE = "\
& Firmware-i2400m \
& Firmware-i915 \
& Firmware-ibt_firmware \
+ & Firmware-ice \
& Firmware-it913x \
& Firmware-iwlwifi_firmware \
& Firmware-IntcSST2 \
@@ -125,7 +126,7 @@ LIC_FILES_CHKSUM = "file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \
file://LICENCE.xc4000;md5=0ff51d2dc49fce04814c9155081092f0 \
file://LICENCE.xc5000;md5=1e170c13175323c32c7f4d0998d53f66 \
file://LICENCE.xc5000c;md5=12b02efa3049db65d524aeb418dd87ca \
- file://WHENCE;md5=cdcd9f664a404c681bb745bcac6253a3 \
+ file://WHENCE;md5=4d229f79f8770b5b2c4aac655b9fabef \
"
# These are not common licenses, set NO_GENERIC_LICENSE for them
@@ -155,6 +156,7 @@ NO_GENERIC_LICENSE[Firmware-hfi1_firmware] = "LICENSE.hfi1_firmware"
NO_GENERIC_LICENSE[Firmware-i2400m] = "LICENCE.i2400m"
NO_GENERIC_LICENSE[Firmware-i915] = "LICENSE.i915"
NO_GENERIC_LICENSE[Firmware-ibt_firmware] = "LICENCE.ibt_firmware"
+NO_GENERIC_LICENSE[Firmware-ice] = "LICENSE.ice"
NO_GENERIC_LICENSE[Firmware-IntcSST2] = "LICENCE.IntcSST2"
NO_GENERIC_LICENSE[Firmware-it913x] = "LICENCE.it913x"
NO_GENERIC_LICENSE[Firmware-iwlwifi_firmware] = "LICENCE.iwlwifi_firmware"
@@ -194,13 +196,9 @@ NO_GENERIC_LICENSE[WHENCE] = "WHENCE"
PE = "1"
-SRCREV = "9c340bd1bdabf53808a9178a7be98c5f2ad599a7"
+SRC_URI = "${KERNELORG_MIRROR}/linux/kernel/firmware/${BPN}-${PV}.tar.xz"
-SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git"
-
-UPSTREAM_CHECK_COMMITS = "1"
-
-S = "${WORKDIR}/git"
+SRC_URI[sha256sum] = "76d05d5f1eff268d3b80675245fa596f557bd55ee2e16ddd54d18ffeae943887"
inherit allarch
@@ -211,27 +209,8 @@ do_compile() {
}
do_install() {
- install -d ${D}${nonarch_base_libdir}/firmware/
- cp -r * ${D}${nonarch_base_libdir}/firmware/
-
- # Avoid Makefile to be deployed
- rm ${D}${nonarch_base_libdir}/firmware/Makefile
-
- # Remove unbuild firmware which needs cmake and bash
- rm ${D}${nonarch_base_libdir}/firmware/carl9170fw -rf
-
- # Remove pointless bash script
- rm ${D}${nonarch_base_libdir}/firmware/configure
-
- # Remove python script used to check the WHENCE file
- rm ${D}${nonarch_base_libdir}/firmware/check_whence.py
-
- # Libertas sd8686
- ln -sf libertas/sd8686_v9.bin ${D}${nonarch_base_libdir}/firmware/sd8686.bin
- ln -sf libertas/sd8686_v9_helper.bin ${D}${nonarch_base_libdir}/firmware/sd8686_helper.bin
-
- # fixup wl12xx location, after 2.6.37 the kernel searches a different location for it
- ( cd ${D}${nonarch_base_libdir}/firmware ; ln -sf ti-connectivity/* . )
+ oe_runmake 'DESTDIR=${D}' 'FIRMWAREDIR=${nonarch_base_libdir}/firmware' install
+ cp GPL-2 LICEN[CS]E.* WHENCE ${D}${nonarch_base_libdir}/firmware/
}
@@ -299,18 +278,23 @@ PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \
${PN}-iwlwifi-7265d ${PN}-iwlwifi-8000c ${PN}-iwlwifi-8265 \
${PN}-iwlwifi-9000 \
${PN}-iwlwifi-misc \
- ${PN}-ibt-license ${PN}-ibt ${PN}-ibt-misc \
+ ${PN}-ibt-license ${PN}-ibt \
${PN}-ibt-11-5 ${PN}-ibt-12-16 ${PN}-ibt-hw-37-7 ${PN}-ibt-hw-37-8 \
${PN}-ibt-17 \
+ ${PN}-ibt-20 \
+ ${PN}-ibt-misc \
${PN}-i915-license ${PN}-i915 \
+ ${PN}-ice-license ${PN}-ice \
${PN}-adsp-sst-license ${PN}-adsp-sst \
${PN}-bnx2-mips \
${PN}-liquidio \
${PN}-netronome-license ${PN}-netronome \
${PN}-qat ${PN}-qat-license \
${PN}-qcom-license \
- ${PN}-qcom-venus-1.8 ${PN}-qcom-venus-4.2 \
- ${PN}-qcom-adreno-a3xx ${PN}-qcom-adreno-a530 \
+ ${PN}-qcom-venus-1.8 ${PN}-qcom-venus-4.2 ${PN}-qcom-venus-5.2 ${PN}-qcom-venus-5.4 \
+ ${PN}-qcom-adreno-a3xx ${PN}-qcom-adreno-a530 ${PN}-qcom-adreno-a630 \
+ ${PN}-qcom-sdm845-audio ${PN}-qcom-sdm845-compute ${PN}-qcom-sdm845-modem \
+ ${PN}-amlogic-vdec-license ${PN}-amlogic-vdec \
${PN}-whence-license \
${PN}-license \
"
@@ -533,16 +517,22 @@ LICENSE_${PN}-wl18xx = "Firmware-ti-connectivity"
LICENSE_${PN}-ti-connectivity-license = "Firmware-ti-connectivity"
FILES_${PN}-ti-connectivity-license = "${nonarch_base_libdir}/firmware/LICENCE.ti-connectivity"
+# wl18xx optionally needs wl1271-nvs.bin (which itself is a symlink to
+# wl127x-nvs.bin) - see linux/drivers/net/wireless/ti/wlcore/sdio.c
+# and drivers/net/wireless/ti/wlcore/spi.c.
+# While they're optional and actually only used to override the MAC
+# address on wl18xx, driver loading will delay (by udev timout - 60s)
+# if not there. So let's make it available always. Because it's a
+# symlink, both need to go to wlcommon.
FILES_${PN}-wlcommon = " \
- ${nonarch_base_libdir}/firmware/TI* \
${nonarch_base_libdir}/firmware/ti-connectivity/TI* \
+ ${nonarch_base_libdir}/firmware/ti-connectivity/wl127x-nvs.bin \
+ ${nonarch_base_libdir}/firmware/ti-connectivity/wl1271-nvs.bin \
"
FILES_${PN}-wl12xx = " \
- ${nonarch_base_libdir}/firmware/wl12* \
${nonarch_base_libdir}/firmware/ti-connectivity/wl12* \
"
FILES_${PN}-wl18xx = " \
- ${nonarch_base_libdir}/firmware/wl18* \
${nonarch_base_libdir}/firmware/ti-connectivity/wl18* \
"
@@ -818,6 +808,7 @@ LICENSE_${PN}-ibt-hw-37-8 = "Firmware-ibt_firmware"
LICENSE_${PN}-ibt-11-5 = "Firmware-ibt_firmware"
LICENSE_${PN}-ibt-12-16 = "Firmware-ibt_firmware"
LICENSE_${PN}-ibt-17 = "Firmware-ibt_firmware"
+LICENSE_${PN}-ibt-20 = "Firmware-ibt_firmware"
LICENSE_${PN}-ibt-misc = "Firmware-ibt_firmware"
FILES_${PN}-ibt-license = "${nonarch_base_libdir}/firmware/LICENCE.ibt_firmware"
@@ -826,13 +817,15 @@ FILES_${PN}-ibt-hw-37-8 = "${nonarch_base_libdir}/firmware/intel/ibt-hw-37.8*.bs
FILES_${PN}-ibt-11-5 = "${nonarch_base_libdir}/firmware/intel/ibt-11-5.sfi ${nonarch_base_libdir}/firmware/intel/ibt-11-5.ddc"
FILES_${PN}-ibt-12-16 = "${nonarch_base_libdir}/firmware/intel/ibt-12-16.sfi ${nonarch_base_libdir}/firmware/intel/ibt-12-16.ddc"
FILES_${PN}-ibt-17 = "${nonarch_base_libdir}/firmware/intel/ibt-17-*.sfi ${nonarch_base_libdir}/firmware/intel/ibt-17-*.ddc"
-FILES_${PN}-ibt-misc = "${nonarch_base_libdir}/firmware/ibt-*"
+FILES_${PN}-ibt-20 = "${nonarch_base_libdir}/firmware/intel/ibt-20-*.sfi ${nonarch_base_libdir}/firmware/intel/ibt-20-*.ddc"
+FILES_${PN}-ibt-misc = "${nonarch_base_libdir}/firmware/intel/ibt-*"
RDEPENDS_${PN}-ibt-hw-37-7 = "${PN}-ibt-license"
RDEPENDS_${PN}-ibt-hw-37.8 = "${PN}-ibt-license"
RDEPENDS_${PN}-ibt-11-5 = "${PN}-ibt-license"
RDEPENDS_${PN}-ibt-12-16 = "${PN}-ibt-license"
RDEPENDS_${PN}-ibt-17 = "${PN}-ibt-license"
+RDEPENDS_${PN}-ibt-20 = "${PN}-ibt-license"
RDEPENDS_${PN}-ibt-misc = "${PN}-ibt-license"
ALLOW_EMPTY_${PN}-ibt= "1"
@@ -844,6 +837,12 @@ FILES_${PN}-i915-license = "${nonarch_base_libdir}/firmware/LICENSE.i915"
FILES_${PN}-i915 = "${nonarch_base_libdir}/firmware/i915"
RDEPENDS_${PN}-i915 = "${PN}-i915-license"
+LICENSE_${PN}-ice = "Firmware-ice"
+LICENSE_${PN}-ice-license = "Firmware-ice"
+FILES_${PN}-ice-license = "${nonarch_base_libdir}/firmware/LICENSE.ice"
+FILES_${PN}-ice = "${nonarch_base_libdir}/firmware/intel/ice"
+RDEPENDS_${PN}-ice = "${PN}-ice-license"
+
FILES_${PN}-adsp-sst-license = "${nonarch_base_libdir}/firmware/LICENCE.adsp_sst"
LICENSE_${PN}-adsp-sst = "Firmware-adsp_sst"
LICENSE_${PN}-adsp-sst-license = "Firmware-adsp_sst"
@@ -857,20 +856,38 @@ FILES_${PN}-qat-license = "${nonarch_base_libdir}/firmware/LICENCE.qat_firmwar
FILES_${PN}-qat = "${nonarch_base_libdir}/firmware/qat*.bin"
RDEPENDS_${PN}-qat = "${PN}-qat-license"
-# For QCOM VPU/GPU
+# For QCOM VPU/GPU and SDM845
LICENSE_${PN}-qcom-license = "Firmware-qcom"
FILES_${PN}-qcom-license = "${nonarch_base_libdir}/firmware/LICENSE.qcom ${nonarch_base_libdir}/firmware/qcom/NOTICE.txt"
FILES_${PN}-qcom-venus-1.8 = "${nonarch_base_libdir}/firmware/qcom/venus-1.8/*"
FILES_${PN}-qcom-venus-4.2 = "${nonarch_base_libdir}/firmware/qcom/venus-4.2/*"
+FILES_${PN}-qcom-venus-5.2 = "${nonarch_base_libdir}/firmware/qcom/venus-5.2/*"
+FILES_${PN}-qcom-venus-5.4 = "${nonarch_base_libdir}/firmware/qcom/venus-5.4/*"
FILES_${PN}-qcom-adreno-a3xx = "${nonarch_base_libdir}/firmware/qcom/a300_*.fw ${nonarch_base_libdir}/firmware/a300_*.fw"
FILES_${PN}-qcom-adreno-a530 = "${nonarch_base_libdir}/firmware/qcom/a530*.*"
+FILES_${PN}-qcom-adreno-a630 = "${nonarch_base_libdir}/firmware/qcom/a630*.* ${nonarch_base_libdir}/firmware/qcom/sdm845/a630*.*"
+FILES_${PN}-qcom-sdm845-audio = "${nonarch_base_libdir}/firmware/qcom/sdm845/adsp*.*"
+FILES_${PN}-qcom-sdm845-compute = "${nonarch_base_libdir}/firmware/qcom/sdm845/cdsp*.*"
+FILES_${PN}-qcom-sdm845-modem = "${nonarch_base_libdir}/firmware/qcom/sdm845/mba.mbn ${nonarch_base_libdir}/firmware/qcom/sdm845/modem*.* ${nonarch_base_libdir}/firmware/qcom/sdm845/wlanmdsp.mbn"
RDEPENDS_${PN}-qcom-venus-1.8 = "${PN}-qcom-license"
RDEPENDS_${PN}-qcom-venus-4.2 = "${PN}-qcom-license"
+RDEPENDS_${PN}-qcom-venus-5.2 = "${PN}-qcom-license"
+RDEPENDS_${PN}-qcom-venus-5.4 = "${PN}-qcom-license"
RDEPENDS_${PN}-qcom-adreno-a3xx = "${PN}-qcom-license"
RDEPENDS_${PN}-qcom-adreno-a530 = "${PN}-qcom-license"
+RDEPENDS_${PN}-qcom-adreno-a630 = "${PN}-qcom-license"
+RDEPENDS_${PN}-qcom-sdm845-audio = "${PN}-qcom-license"
+RDEPENDS_${PN}-qcom-sdm845-compute = "${PN}-qcom-license"
+RDEPENDS_${PN}-qcom-sdm845-modem = "${PN}-qcom-license"
FILES_${PN}-liquidio = "${nonarch_base_libdir}/firmware/liquidio"
+# For Amlogic VDEC
+LICENSE_${PN}-amlogic-vdec = "Firmware-amlogic_vdec"
+FILES_${PN}-amlogic-vdec-license = "${nonarch_base_libdir}/firmware/LICENSE.amlogic_vdec"
+FILES_${PN}-amlogic-vdec = "${nonarch_base_libdir}/firmware/meson/vdec/*"
+RDEPENDS_${PN}-amlogic-vdec = "${PN}-amlogic-vdec-license"
+
# For other firmwares
# Maybe split out to separate packages when needed.
LICENSE_${PN} = "\
@@ -878,6 +895,7 @@ LICENSE_${PN} = "\
& Firmware-agere \
& Firmware-amdgpu \
& Firmware-amd-ucode \
+ & Firmware-amlogic_vdec \
& Firmware-atmel \
& Firmware-ca0132 \
& Firmware-cavium \
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
index 4481aa430c..3bceac40cc 100644
--- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
+++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
@@ -16,7 +16,7 @@ LICENSE = "GPLv2"
# and have a machine specific libc.
#
# But you have some kernel headers you need for some driver? That is fine
-# but get them from STAGING_KERNEL_DIR where the kernel installs itself.
+# but get them from STAGING_KERNEL_BUILDDIR where the kernel installs itself.
# This will make the package using them machine specific but this is much
# better than having a machine specific C library. This does mean your
# recipe needs a
@@ -30,7 +30,9 @@ LICENSE = "GPLv2"
#
# -- RP
-LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
+LIC_FILES_CHKSUM ?= "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
+
+RECIPE_NO_UPDATE_REASON = "Recipe is updated through a separate process"
python __anonymous () {
major = d.getVar("PV").split('.')[0]
@@ -44,6 +46,9 @@ python __anonymous () {
d.setVar("HEADER_FETCH_VER", "2.6")
}
+MAJ_VER = "${@oe.utils.trim_version("${PV}", 2).split('.')[0]}"
+MIN_VER = "${@oe.utils.trim_version("${PV}", 2).split('.')[1]}"
+
inherit kernel-arch pkgconfig multilib_header
KORG_ARCHIVE_COMPRESSION ?= "xz"
@@ -81,7 +86,16 @@ do_install_append_armeb () {
}
do_install_armmultilib () {
- oe_multilib_header asm/auxvec.h asm/bitsperlong.h asm/byteorder.h asm/fcntl.h asm/hwcap.h asm/ioctls.h asm/kvm.h asm/kvm_para.h asm/mman.h asm/param.h asm/perf_regs.h asm/bpf_perf_event.h
+ if [ ${MAJ_VER} -gt 5 ]; then
+ ARM_KVM_HEADER=""
+ else
+ if [ ${MAJ_VER} -eq 5 ] && [ ${MIN_VER} -ge 8 ]; then
+ ARM_KVM_HEADER=""
+ else
+ ARM_KVM_HEADER="asm/kvm.h"
+ fi
+ fi
+ oe_multilib_header asm/auxvec.h asm/bitsperlong.h asm/byteorder.h asm/fcntl.h asm/hwcap.h asm/ioctls.h $ARM_KVM_HEADER asm/kvm_para.h asm/mman.h asm/param.h asm/perf_regs.h asm/bpf_perf_event.h
oe_multilib_header asm/posix_types.h asm/ptrace.h asm/setup.h asm/sigcontext.h asm/siginfo.h asm/signal.h asm/stat.h asm/statfs.h asm/swab.h asm/types.h asm/unistd.h
}
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-if_ether-move-muslc-ethhdr-protection-to-uapi-file.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-if_ether-move-muslc-ethhdr-protection-to-uapi-file.patch
deleted file mode 100644
index 68b244698f..0000000000
--- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-if_ether-move-muslc-ethhdr-protection-to-uapi-file.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 897736166fd709906a5fdf16eb23f8fddff770b5 Mon Sep 17 00:00:00 2001
-From: Bruce Ashfield <bruce.ashfield@windriver.com>
-Date: Thu, 1 Mar 2018 18:31:01 -0500
-Subject: [PATCH] if_ether: move muslc ethhdr protection to uapi file
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
-Upstream-Status: Pending
----
- include/uapi/linux/if_ether.h | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/include/uapi/linux/if_ether.h b/include/uapi/linux/if_ether.h
-index 153c9c2..7b69b73 100644
---- a/include/uapi/linux/if_ether.h
-+++ b/include/uapi/linux/if_ether.h
-@@ -149,6 +149,12 @@
- * This is an Ethernet frame header.
- */
-
-+#ifdef _NETINET_IF_ETHER_H /* musl */
-+#define __UAPI_DEF_ETHHDR 0
-+#else /* glibc uses __NETINET_IF_ETHER_H, and includes the kernel header. */
-+#define __UAPI_DEF_ETHHDR 1
-+#endif
-+
- /* allow libcs like musl to deactivate this, glibc does not implement this. */
- #ifndef __UAPI_DEF_ETHHDR
- #define __UAPI_DEF_ETHHDR 1
---
-2.7.4
-
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-include-linux-stddef.h-in-swab.h-uapi-header.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-include-linux-stddef.h-in-swab.h-uapi-header.patch
index 9d17daa70f..5b7c1b6e21 100644
--- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-include-linux-stddef.h-in-swab.h-uapi-header.patch
+++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-include-linux-stddef.h-in-swab.h-uapi-header.patch
@@ -1,4 +1,4 @@
-From 9708dc74d9f49488d669e070982f6224a888d61a Mon Sep 17 00:00:00 2001
+From dc221138c809125dc1bbff8506c70cb7bd846368 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 12 Sep 2018 17:08:58 -0700
Subject: [PATCH] include linux/stddef.h in swab.h uapi header
@@ -23,12 +23,13 @@ Cc: Philippe Ombredanne <pombredanne@nexb.com>
Cc: Kate Stewart <kstewart@linuxfoundation.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
+
---
include/uapi/linux/swab.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/uapi/linux/swab.h b/include/uapi/linux/swab.h
-index 23cd84868cc3..acddbe50a20d 100644
+index 7272f85d6..2912fe463 100644
--- a/include/uapi/linux/swab.h
+++ b/include/uapi/linux/swab.h
@@ -3,6 +3,7 @@
@@ -37,8 +38,5 @@ index 23cd84868cc3..acddbe50a20d 100644
#include <linux/types.h>
+#include <linux/stddef.h>
#include <linux/compiler.h>
+ #include <asm/bitsperlong.h>
#include <asm/swab.h>
-
---
-2.19.0
-
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-libc-compat.h-prevent-redefinition-of-struct-ethhdr.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-libc-compat.h-prevent-redefinition-of-struct-ethhdr.patch
deleted file mode 100644
index fb7e1de17a..0000000000
--- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-libc-compat.h-prevent-redefinition-of-struct-ethhdr.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 75ba4a547282f91d653872a4bba5f5eae234ea6c Mon Sep 17 00:00:00 2001
-From: rofl0r <retnyg@gmx.net>
-Date: Wed, 22 Jan 2014 00:57:48 +0100
-Subject: [PATCH 2/3] libc-compat.h: prevent redefinition of struct ethhdr
-
----
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Submitted
-
- include/uapi/linux/if_ether.h | 4 +++-
- include/uapi/linux/libc-compat.h | 6 ++++++
- 2 files changed, 9 insertions(+), 1 deletion(-)
-
-Index: linux-4.15/include/uapi/linux/libc-compat.h
-===================================================================
---- linux-4.15.orig/include/uapi/linux/libc-compat.h 2018-02-05 17:40:42.338370731 -0500
-+++ linux-4.15/include/uapi/linux/libc-compat.h 2018-02-05 17:40:42.334370603 -0500
-@@ -51,6 +51,12 @@
-
- #ifndef __KERNEL__ /* we're used from userspace */
-
-+#ifdef _NETINET_IF_ETHER_H /* musl */
-+#define __UAPI_DEF_ETHHDR 0
-+#else /* glibc uses __NETINET_IF_ETHER_H, and includes the kernel header. */
-+#define __UAPI_DEF_ETHHDR 1
-+#endif
-+
- /* Coordinate with libc net/if.h header. */
- #if defined(_NET_IF_H)
-
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.4.bb b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.8.bb
index 50377394f3..d76a8a36f8 100644
--- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.4.bb
+++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.8.bb
@@ -2,10 +2,8 @@ require linux-libc-headers.inc
SRC_URI_append_libc-musl = "\
file://0001-libc-compat.h-fix-some-issues-arising-from-in6.h.patch \
- file://0002-libc-compat.h-prevent-redefinition-of-struct-ethhdr.patch \
file://0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch \
file://0001-libc-compat.h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch \
- file://0001-if_ether-move-muslc-ethhdr-protection-to-uapi-file.patch \
file://0001-include-linux-stddef.h-in-swab.h-uapi-header.patch \
"
@@ -14,5 +12,7 @@ SRC_URI_append = "\
file://0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch \
"
-SRC_URI[md5sum] = "ce9b2d974d27408a61c53a30d3f98fb9"
-SRC_URI[sha256sum] = "bf338980b1670bca287f9994b7441c2361907635879169c64ae78364efc5f491"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
+
+SRC_URI[md5sum] = "0e5c4c15266218ef26c50fac0016095b"
+SRC_URI[sha256sum] = "e7f75186aa0642114af8f19d99559937300ca27acaf7451b36d4f9b0f85cf1f5"
diff --git a/meta/recipes-kernel/linux/kernel-devsrc.bb b/meta/recipes-kernel/linux/kernel-devsrc.bb
index 2888236628..aa8e162f4f 100644
--- a/meta/recipes-kernel/linux/kernel-devsrc.bb
+++ b/meta/recipes-kernel/linux/kernel-devsrc.bb
@@ -108,6 +108,11 @@ do_install() {
fi
cp -a include $kerneldir/build/include
+
+ # we don't usually copy generated files, since they can be rebuilt on the target,
+ # but without this file, we get a forced syncconfig run in v5.8+, which prompts and
+ # breaks workflows.
+ cp -a --parents include/generated/autoconf.h $kerneldir/build 2>/dev/null || :
)
# now grab the chunks from the source tree that we need
@@ -147,7 +152,7 @@ do_install() {
cp -a --parents arch/arm64/kernel/vdso/note.S $kerneldir/build/
cp -a --parents arch/arm64/kernel/vdso/gen_vdso_offsets.sh $kerneldir/build/
- cp -a --parents arch/arm64/kernel/module.lds $kerneldir/build/
+ cp -a --parents arch/arm64/kernel/module.lds $kerneldir/build/ 2>/dev/null || :
fi
if [ "${ARCH}" = "powerpc" ]; then
@@ -187,7 +192,7 @@ do_install() {
# required for generate missing syscalls prepare phase
cp -a --parents $(find arch/x86 -type f -name "syscall_32.tbl") $kerneldir/build
- cp -a --parents $(find arch/arm -type f -name "*.tbl") $kerneldir/build
+ cp -a --parents $(find arch/arm -type f -name "*.tbl") $kerneldir/build 2>/dev/null || :
if [ "${ARCH}" = "x86" ]; then
# files for 'make prepare' to succeed with kernel-devel
@@ -249,6 +254,21 @@ do_install() {
# Copy .config to include/config/auto.conf so "make prepare" is unnecessary.
cp $kerneldir/build/.config $kerneldir/build/include/config/auto.conf
+ # make sure these are at least as old as the .config, or rebuilds will trigger
+ touch -r $kerneldir/build/.config $kerneldir/build/include/generated/autoconf.h 2>/dev/null || :
+ touch -r $kerneldir/build/.config $kerneldir/build/include/config/auto.conf* 2>/dev/null || :
+
+ if [ -e "$kerneldir/build/include/config/auto.conf.cmd" ]; then
+ sed -i 's/ifneq "$(CC)" ".*-linux-.*gcc.*$/ifneq "$(CC)" "gcc"/' "$kerneldir/build/include/config/auto.conf.cmd"
+ sed -i 's/ifneq "$(LD)" ".*-linux-.*ld.bfd.*$/ifneq "$(LD)" "ld"/' "$kerneldir/build/include/config/auto.conf.cmd"
+ sed -i 's/ifneq "$(HOSTCXX)" ".*$/ifneq "$(HOSTCXX)" "g++"/' "$kerneldir/build/include/config/auto.conf.cmd"
+ sed -i 's/ifneq "$(HOSTCC)" ".*$/ifneq "$(HOSTCC)" "gcc"/' "$kerneldir/build/include/config/auto.conf.cmd"
+ sed -i 's/ifneq "$(CC_VERSION_TEXT)".*\(gcc.*\)"/ifneq "$(CC_VERSION_TEXT)" "\1"/' "$kerneldir/build/include/config/auto.conf.cmd"
+ sed -i 's/ifneq "$(srctree)" ".*"/ifneq "$(srctree)" "."/' "$kerneldir/build/include/config/auto.conf.cmd"
+ # we don't build against the defconfig, so make sure it isn't the trigger for syncconfig
+ sed -i 's/ifneq "$(KBUILD_DEFCONFIG)".*"\(.*\)"/ifneq "\1" "\1"/' "$kerneldir/build/include/config/auto.conf.cmd"
+ fi
+
# make the scripts python3 safe. We won't be running these, and if they are
# left as /usr/bin/python rootfs assembly will fail, since we only have python3
# in the RDEPENDS (and the python3 package does not include /usr/bin/python)
@@ -272,3 +292,5 @@ RDEPENDS_${PN} = "bc python3 flex bison ${TCLIBC}-utils"
RDEPENDS_${PN} += "openssl-dev util-linux"
# and x86 needs a bit more for 4.15+
RDEPENDS_${PN} += "${@bb.utils.contains('ARCH', 'x86', 'elfutils', '', d)}"
+# 5.8+ needs gcc-plugins libmpc-dev
+RDEPENDS_${PN} += "gcc-plugins libmpc-dev"
diff --git a/meta/recipes-kernel/linux/linux-yocto-dev.bb b/meta/recipes-kernel/linux/linux-yocto-dev.bb
index c364a97cba..fbc62f29c8 100644
--- a/meta/recipes-kernel/linux/linux-yocto-dev.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-dev.bb
@@ -30,11 +30,11 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto-dev.git;branch=${KBRANCH};name
SRCREV_machine ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}'
SRCREV_meta ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}'
-LINUX_VERSION ?= "5.5-rc+"
+LINUX_VERSION ?= "5.9-rc+"
LINUX_VERSION_EXTENSION ?= "-yoctodev-${LINUX_KERNEL_TYPE}"
PV = "${LINUX_VERSION}+git${SRCPV}"
-LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
DEPENDS += "openssl-native util-linux-native"
@@ -49,6 +49,6 @@ KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc"
KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
-KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "" ,d)}"
+KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}"
KERNEL_VERSION_SANITY_SKIP = "1"
diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb b/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb
index 37282b2e05..13f7246f46 100644
--- a/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb
@@ -11,13 +11,13 @@ python () {
raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
}
-SRCREV_machine ?= "e3a0470f1ebedce56d1c924f8ac8d3638f52304c"
-SRCREV_meta ?= "c11911d4d1cf0d0b069dfd1922b41256f61442de"
+SRCREV_machine ?= "3a5f7e9a874f0a6e9ad599b4fc6c491db231dd6f"
+SRCREV_meta ?= "7f765dcb29003bafc9c0ac770147940be6c420b2"
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}"
-LINUX_VERSION ?= "5.4.20"
+LINUX_VERSION ?= "5.4.69"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
@@ -41,4 +41,4 @@ KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc"
KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
-KERNEL_FEATURES_append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "" ,d)}"
+KERNEL_FEATURES_append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}"
diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_5.2.bb b/meta/recipes-kernel/linux/linux-yocto-rt_5.8.bb
index 79da8c14b3..3d6d750c86 100644
--- a/meta/recipes-kernel/linux/linux-yocto-rt_5.2.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-rt_5.8.bb
@@ -1,4 +1,4 @@
-KBRANCH ?= "v5.2/standard/preempt-rt/base"
+KBRANCH ?= "v5.8/standard/preempt-rt/base"
require recipes-kernel/linux/linux-yocto.inc
@@ -11,15 +11,15 @@ python () {
raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
}
-SRCREV_machine ?= "e1abc7e80e4df82d180aecd09e0d80b579d79c34"
-SRCREV_meta ?= "9a13706c994275b544f78dbfc9ed8ff98cd94aef"
+SRCREV_machine ?= "5981001bf03f0d0c1cf641a2287ab6368baf628a"
+SRCREV_meta ?= "34775c20bc4f4ac32ac7eded79f9dc8ca77e4277"
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
- git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.2;destsuffix=${KMETA}"
+ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.8;destsuffix=${KMETA}"
-LINUX_VERSION ?= "5.2.29"
+LINUX_VERSION ?= "5.8.13"
-LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
DEPENDS += "openssl-native util-linux-native"
@@ -41,4 +41,4 @@ KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc"
KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
-KERNEL_FEATURES_append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "" ,d)}"
+KERNEL_FEATURES_append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}"
diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb
index 463451fa35..00e1b65782 100644
--- a/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb
@@ -6,7 +6,7 @@ KCONFIG_MODE = "--allnoconfig"
require recipes-kernel/linux/linux-yocto.inc
-LINUX_VERSION ?= "5.4.20"
+LINUX_VERSION ?= "5.4.69"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -15,9 +15,9 @@ DEPENDS += "openssl-native util-linux-native"
KMETA = "kernel-meta"
KCONF_BSP_AUDIT_LEVEL = "2"
-SRCREV_machine_qemuarm ?= "f0aeaeffb8ba6d0c24f9f0212fd7a11866c918b8"
-SRCREV_machine ?= "f4d7dbafb103e4f782323017c239c548871c1567"
-SRCREV_meta ?= "c11911d4d1cf0d0b069dfd1922b41256f61442de"
+SRCREV_machine_qemuarm ?= "58f39df46d9daf12a095ffe225032ec325612960"
+SRCREV_machine ?= "cfcdd63145c0d741e57ee3e3e58f794229c6c09c"
+SRCREV_meta ?= "7f765dcb29003bafc9c0ac770147940be6c420b2"
PV = "${LINUX_VERSION}+git${SRCPV}"
diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_5.2.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_5.8.bb
index d88cb5d742..764264f637 100644
--- a/meta/recipes-kernel/linux/linux-yocto-tiny_5.2.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-tiny_5.8.bb
@@ -1,13 +1,13 @@
-KBRANCH ?= "v5.2/standard/tiny/base"
-KBRANCH_qemuarm ?= "v5.2/standard/tiny/arm-versatile-926ejs"
+KBRANCH ?= "v5.8/standard/tiny/base"
+KBRANCH_qemuarm ?= "v5.8/standard/tiny/arm-versatile-926ejs"
LINUX_KERNEL_TYPE = "tiny"
KCONFIG_MODE = "--allnoconfig"
require recipes-kernel/linux/linux-yocto.inc
-LINUX_VERSION ?= "5.2.29"
-LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
+LINUX_VERSION ?= "5.8.13"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
DEPENDS += "openssl-native util-linux-native"
@@ -15,14 +15,14 @@ DEPENDS += "openssl-native util-linux-native"
KMETA = "kernel-meta"
KCONF_BSP_AUDIT_LEVEL = "2"
-SRCREV_machine_qemuarm ?= "f5a3e7e2c94b9d35d1b1933c503ffdaf1e9abec8"
-SRCREV_machine ?= "6f93a47515b2008468437f2f655404906337c574"
-SRCREV_meta ?= "9a13706c994275b544f78dbfc9ed8ff98cd94aef"
+SRCREV_machine_qemuarm ?= "627cc1717f47c4d9bc9d58f88b1764990d982a99"
+SRCREV_machine ?= "5981001bf03f0d0c1cf641a2287ab6368baf628a"
+SRCREV_meta ?= "34775c20bc4f4ac32ac7eded79f9dc8ca77e4277"
PV = "${LINUX_VERSION}+git${SRCPV}"
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
- git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.2;destsuffix=${KMETA}"
+ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.8;destsuffix=${KMETA}"
COMPATIBLE_MACHINE = "qemux86|qemux86-64|qemuarm|qemuarmv5"
diff --git a/meta/recipes-kernel/linux/linux-yocto.inc b/meta/recipes-kernel/linux/linux-yocto.inc
index 91df9c1cd5..bd37006f88 100644
--- a/meta/recipes-kernel/linux/linux-yocto.inc
+++ b/meta/recipes-kernel/linux/linux-yocto.inc
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM ?= "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+(\.\d+)*)"
-INC_PR = "r4"
+RECIPE_NO_UPDATE_REASON = "Recipe is updated through a separate process"
# Skip processing of this recipe if it is not explicitly specified as the
# PREFERRED_PROVIDER for virtual/kernel. This avoids network access required
diff --git a/meta/recipes-kernel/linux/linux-yocto_5.2.bb b/meta/recipes-kernel/linux/linux-yocto_5.2.bb
deleted file mode 100644
index 59cc08e9a3..0000000000
--- a/meta/recipes-kernel/linux/linux-yocto_5.2.bb
+++ /dev/null
@@ -1,54 +0,0 @@
-KBRANCH ?= "v5.2/standard/base"
-
-require recipes-kernel/linux/linux-yocto.inc
-
-# board specific branches
-KBRANCH_qemuarm ?= "v5.2/standard/arm-versatile-926ejs"
-KBRANCH_qemuarm64 ?= "v5.2/standard/qemuarm64"
-KBRANCH_qemumips ?= "v5.2/standard/mti-malta32"
-KBRANCH_qemuppc ?= "v5.2/standard/qemuppc"
-KBRANCH_qemuriscv64 ?= "v5.2/standard/base"
-KBRANCH_qemux86 ?= "v5.2/standard/base"
-KBRANCH_qemux86-64 ?= "v5.2/standard/base"
-KBRANCH_qemumips64 ?= "v5.2/standard/mti-malta64"
-
-SRCREV_machine_qemuarm ?= "6080c11f80fbba3ae018518af53564a226e7efcf"
-SRCREV_machine_qemuarm64 ?= "6f93a47515b2008468437f2f655404906337c574"
-SRCREV_machine_qemumips ?= "078d960b86b2b6539e6823f1da884e85b07e50f3"
-SRCREV_machine_qemuppc ?= "6f93a47515b2008468437f2f655404906337c574"
-SRCREV_machine_qemuriscv64 ?= "6f93a47515b2008468437f2f655404906337c574"
-SRCREV_machine_qemux86 ?= "6f93a47515b2008468437f2f655404906337c574"
-SRCREV_machine_qemux86-64 ?= "6f93a47515b2008468437f2f655404906337c574"
-SRCREV_machine_qemumips64 ?= "ad3efcb4a297394ceb0ab2357737bd8be9846fec"
-SRCREV_machine ?= "6f93a47515b2008468437f2f655404906337c574"
-SRCREV_meta ?= "9a13706c994275b544f78dbfc9ed8ff98cd94aef"
-
-# remap qemuarm to qemuarma15 for the 5.2 kernel
-# KMACHINE_qemuarm ?= "qemuarma15"
-
-SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH}; \
- git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.2;destsuffix=${KMETA}"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
-LINUX_VERSION ?= "5.2.29"
-
-DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
-DEPENDS += "openssl-native util-linux-native"
-
-PV = "${LINUX_VERSION}+git${SRCPV}"
-
-KMETA = "kernel-meta"
-KCONF_BSP_AUDIT_LEVEL = "2"
-
-KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb"
-
-COMPATIBLE_MACHINE = "qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemumips|qemumips64|qemux86-64|qemuriscv64"
-
-# Functionality flags
-KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc"
-KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
-KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc"
-KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
-KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
-KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "" ,d)}"
-KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "" ,d)}"
diff --git a/meta/recipes-kernel/linux/linux-yocto_5.4.bb b/meta/recipes-kernel/linux/linux-yocto_5.4.bb
index 5dd7b68063..bcc5003268 100644
--- a/meta/recipes-kernel/linux/linux-yocto_5.4.bb
+++ b/meta/recipes-kernel/linux/linux-yocto_5.4.bb
@@ -12,16 +12,16 @@ KBRANCH_qemux86 ?= "v5.4/standard/base"
KBRANCH_qemux86-64 ?= "v5.4/standard/base"
KBRANCH_qemumips64 ?= "v5.4/standard/mti-malta64"
-SRCREV_machine_qemuarm ?= "aa91aac123d12d9d4f420862238a437781fe3825"
-SRCREV_machine_qemuarm64 ?= "f4d7dbafb103e4f782323017c239c548871c1567"
-SRCREV_machine_qemumips ?= "6cb162ab5262318fc52a7cbef86afcf48c6b2449"
-SRCREV_machine_qemuppc ?= "f4d7dbafb103e4f782323017c239c548871c1567"
-SRCREV_machine_qemuriscv64 ?= "f4d7dbafb103e4f782323017c239c548871c1567"
-SRCREV_machine_qemux86 ?= "f4d7dbafb103e4f782323017c239c548871c1567"
-SRCREV_machine_qemux86-64 ?= "f4d7dbafb103e4f782323017c239c548871c1567"
-SRCREV_machine_qemumips64 ?= "fcbec8b4f0f2f24a31ce5c6e6439c69f7512fb31"
-SRCREV_machine ?= "f4d7dbafb103e4f782323017c239c548871c1567"
-SRCREV_meta ?= "c11911d4d1cf0d0b069dfd1922b41256f61442de"
+SRCREV_machine_qemuarm ?= "561d4f6eb1de32e1448451db86656826cf406eb5"
+SRCREV_machine_qemuarm64 ?= "cfcdd63145c0d741e57ee3e3e58f794229c6c09c"
+SRCREV_machine_qemumips ?= "e421f3f2399c153c4d58241cb6d1be926f7efc45"
+SRCREV_machine_qemuppc ?= "cfcdd63145c0d741e57ee3e3e58f794229c6c09c"
+SRCREV_machine_qemuriscv64 ?= "cfcdd63145c0d741e57ee3e3e58f794229c6c09c"
+SRCREV_machine_qemux86 ?= "cfcdd63145c0d741e57ee3e3e58f794229c6c09c"
+SRCREV_machine_qemux86-64 ?= "cfcdd63145c0d741e57ee3e3e58f794229c6c09c"
+SRCREV_machine_qemumips64 ?= "72d2f11b5f171e196d6b9824b82575d9a7b59e6f"
+SRCREV_machine ?= "cfcdd63145c0d741e57ee3e3e58f794229c6c09c"
+SRCREV_meta ?= "7f765dcb29003bafc9c0ac770147940be6c420b2"
# remap qemuarm to qemuarma15 for the 5.4 kernel
# KMACHINE_qemuarm ?= "qemuarma15"
@@ -30,7 +30,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRA
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
-LINUX_VERSION ?= "5.4.20"
+LINUX_VERSION ?= "5.4.69"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
DEPENDS += "openssl-native util-linux-native"
@@ -38,7 +38,7 @@ DEPENDS += "openssl-native util-linux-native"
PV = "${LINUX_VERSION}+git${SRCPV}"
KMETA = "kernel-meta"
-KCONF_BSP_AUDIT_LEVEL = "2"
+KCONF_BSP_AUDIT_LEVEL = "1"
KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb"
@@ -50,5 +50,5 @@ KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc"
KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
-KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "" ,d)}"
-KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "" ,d)}"
+KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}"
+KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}"
diff --git a/meta/recipes-kernel/linux/linux-yocto_5.8.bb b/meta/recipes-kernel/linux/linux-yocto_5.8.bb
new file mode 100644
index 0000000000..f80ae2359b
--- /dev/null
+++ b/meta/recipes-kernel/linux/linux-yocto_5.8.bb
@@ -0,0 +1,55 @@
+KBRANCH ?= "v5.8/standard/base"
+
+require recipes-kernel/linux/linux-yocto.inc
+
+# board specific branches
+KBRANCH_qemuarm ?= "v5.8/standard/arm-versatile-926ejs"
+KBRANCH_qemuarm64 ?= "v5.8/standard/qemuarm64"
+KBRANCH_qemumips ?= "v5.8/standard/mti-malta32"
+KBRANCH_qemuppc ?= "v5.8/standard/qemuppc"
+KBRANCH_qemuriscv64 ?= "v5.8/standard/base"
+KBRANCH_qemux86 ?= "v5.8/standard/base"
+KBRANCH_qemux86-64 ?= "v5.8/standard/base"
+KBRANCH_qemumips64 ?= "v5.8/standard/mti-malta64"
+
+SRCREV_machine_qemuarm ?= "41542e01d0deb5a38c190809f4fd01a442769938"
+SRCREV_machine_qemuarm64 ?= "5981001bf03f0d0c1cf641a2287ab6368baf628a"
+SRCREV_machine_qemumips ?= "36e642d5b6c5b1d05f6172a75df172ad8fefc30b"
+SRCREV_machine_qemuppc ?= "5981001bf03f0d0c1cf641a2287ab6368baf628a"
+SRCREV_machine_qemuriscv64 ?= "5981001bf03f0d0c1cf641a2287ab6368baf628a"
+SRCREV_machine_qemux86 ?= "5981001bf03f0d0c1cf641a2287ab6368baf628a"
+SRCREV_machine_qemux86-64 ?= "5981001bf03f0d0c1cf641a2287ab6368baf628a"
+SRCREV_machine_qemumips64 ?= "5538a54afd2525803729c85a40609cae292cb242"
+SRCREV_machine ?= "5981001bf03f0d0c1cf641a2287ab6368baf628a"
+SRCREV_meta ?= "34775c20bc4f4ac32ac7eded79f9dc8ca77e4277"
+
+# remap qemuarm to qemuarma15 for the 5.8 kernel
+# KMACHINE_qemuarm ?= "qemuarma15"
+
+SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH}; \
+ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.8;destsuffix=${KMETA}"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
+LINUX_VERSION ?= "5.8.13"
+
+DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
+DEPENDS += "openssl-native util-linux-native"
+DEPENDS += "gmp-native"
+
+PV = "${LINUX_VERSION}+git${SRCPV}"
+
+KMETA = "kernel-meta"
+KCONF_BSP_AUDIT_LEVEL = "1"
+
+KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb"
+
+COMPATIBLE_MACHINE = "qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemumips|qemumips64|qemux86-64|qemuriscv64"
+
+# Functionality flags
+KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc"
+KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
+KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc"
+KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
+KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
+KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}"
+KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}"
diff --git a/meta/recipes-kernel/lttng/babeltrace2/0001-Make-manpages-multilib-identical.patch b/meta/recipes-kernel/lttng/babeltrace2/0001-Make-manpages-multilib-identical.patch
new file mode 100644
index 0000000000..2401b176e6
--- /dev/null
+++ b/meta/recipes-kernel/lttng/babeltrace2/0001-Make-manpages-multilib-identical.patch
@@ -0,0 +1,28 @@
+From 56986190e4b0c10945ce6aaa7ca10d6bd8a26a39 Mon Sep 17 00:00:00 2001
+From: Jeremy Puhlman <jpuhlman@mvista.com>
+Date: Mon, 9 Mar 2020 21:10:35 +0000
+Subject: [PATCH] Make manpages multilib identical
+
+Upstream-Status: Pending
+Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
+---
+ doc/man/asciidoc-attrs.conf.in | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/doc/man/asciidoc-attrs.conf.in b/doc/man/asciidoc-attrs.conf.in
+index ad1183f1..e11c7031 100644
+--- a/doc/man/asciidoc-attrs.conf.in
++++ b/doc/man/asciidoc-attrs.conf.in
+@@ -1,7 +1,7 @@
+ [attributes]
+ # default values
+-system_plugin_path="@LIBDIR@/babeltrace2/plugins"
+-system_plugin_provider_path="@LIBDIR@/babeltrace2/plugin-providers"
++system_plugin_path="@prefix@/lib*/babeltrace2/plugins"
++system_plugin_provider_path="@prefix@/lib*/babeltrace2/plugin-providers"
+ babeltrace_version="@PACKAGE_VERSION@"
+ enable_debug_info="@ENABLE_DEBUG_INFO_VAL@"
+ defrdport=5344
+--
+2.24.1
+
diff --git a/meta/recipes-kernel/lttng/babeltrace2/0001-tests-do-not-run-test-applications-from-.libs.patch b/meta/recipes-kernel/lttng/babeltrace2/0001-tests-do-not-run-test-applications-from-.libs.patch
new file mode 100644
index 0000000000..805dde8064
--- /dev/null
+++ b/meta/recipes-kernel/lttng/babeltrace2/0001-tests-do-not-run-test-applications-from-.libs.patch
@@ -0,0 +1,28 @@
+From 582713cc9a013481eeef253195d644020f637ec4 Mon Sep 17 00:00:00 2001
+Message-Id: <582713cc9a013481eeef253195d644020f637ec4.1583403622.git.wallinux@gmail.com>
+From: Anders Wallin <wallinux@gmail.com>
+Date: Thu, 5 Mar 2020 11:20:04 +0100
+Subject: [PATCH] tests: do not run test applications from .libs
+
+Cross compile specific change
+
+Upstream-Status: Inappropriate [oe-core specific]
+
+Signed-off-by: Anders Wallin <wallinux@gmail.com>
+---
+ tests/lib/test_plugin | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/lib/test_plugin b/tests/lib/test_plugin
+index 652c90cc..1f817c50 100755
+--- a/tests/lib/test_plugin
++++ b/tests/lib/test_plugin
+@@ -26,4 +26,4 @@ fi
+ # shellcheck source=../utils/utils.sh
+ source "$UTILSSH"
+
+-"${BT_TESTS_BUILDDIR}/lib/plugin" "${BT_TESTS_BUILDDIR}/lib/test-plugin-plugins/.libs"
++"${BT_TESTS_BUILDDIR}/lib/plugin" "${BT_TESTS_BUILDDIR}/lib/test-plugin-plugins"
+--
+2.25.1
+
diff --git a/meta/recipes-kernel/lttng/babeltrace2/run-ptest b/meta/recipes-kernel/lttng/babeltrace2/run-ptest
new file mode 100755
index 0000000000..72fe223436
--- /dev/null
+++ b/meta/recipes-kernel/lttng/babeltrace2/run-ptest
@@ -0,0 +1,9 @@
+#!/bin/sh
+# use target=recheck if you want to recheck failing tests
+[ "$target" = "" ] && target=check
+
+# Without --ignore-exit, the tap harness causes any FAILs within a
+# test plan to raise ERRORs; this is just noise.
+makeargs="LOG_DRIVER_FLAGS=--ignore-exit abs_top_srcdir=$PWD abs_top_builddir=$PWD GREP=grep SED=sed PYTHON=python3"
+
+exec make -C tests -k -s $makeargs $target 2>/dev/null
diff --git a/meta/recipes-kernel/lttng/babeltrace2_2.0.3.bb b/meta/recipes-kernel/lttng/babeltrace2_2.0.3.bb
new file mode 100644
index 0000000000..c65882581d
--- /dev/null
+++ b/meta/recipes-kernel/lttng/babeltrace2_2.0.3.bb
@@ -0,0 +1,93 @@
+SUMMARY = "Babeltrace2 - Trace Format Babel Tower"
+DESCRIPTION = "Babeltrace provides trace read and write libraries in host side, as well as a trace converter, which used to convert LTTng 2.0 traces into human-readable log."
+HOMEPAGE = "http://babeltrace.org/"
+BUGTRACKER = "https://bugs.lttng.org/projects/babeltrace"
+LICENSE = "MIT & GPLv2 & LGPLv2.1 & BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a6a458c13f18385b7bc5069a6d7b176e"
+
+DEPENDS = "glib-2.0 util-linux popt bison-native flex-native"
+
+SRC_URI = "git://git.efficios.com/babeltrace.git;branch=stable-2.0 \
+ file://run-ptest \
+ file://0001-tests-do-not-run-test-applications-from-.libs.patch \
+ file://0001-Make-manpages-multilib-identical.patch \
+ "
+SRCREV = "91d154476e66735d705adda9ca5cbf5b5eea5940"
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>2(\.\d+)+)$"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig ptest
+
+EXTRA_OECONF = "--disable-debug-info"
+
+PACKAGECONFIG ??= "manpages"
+PACKAGECONFIG[manpages] = ", --disable-man-pages, asciidoc-native xmlto-native"
+
+FILES_${PN}-staticdev += "${libdir}/babeltrace2/plugins/*.a"
+FILES_${PN} += "${libdir}/babeltrace2/plugins/*.so"
+
+ASNEEDED = ""
+
+RDEPENDS_${PN}-ptest += "bash gawk python3"
+
+do_compile_ptest () {
+ make -C tests all
+}
+
+do_install_ptest () {
+ install -d "${D}${PTEST_PATH}/tests"
+
+ # Copy required files from source directory
+ for d in $(find "${S}/tests" -type d -printf '%P ') ; do
+ install -d "${D}${PTEST_PATH}/tests/$d"
+ find "${S}/tests/$d" -maxdepth 1 -executable -type f \
+ -exec install -t "${D}${PTEST_PATH}/tests/$d" {} +
+ find "${S}/tests/$d" -maxdepth 1 -name *.sh \
+ -exec install -t "${D}${PTEST_PATH}/tests/$d" {} \;
+ find "${S}/tests/$d" -maxdepth 1 -name *.py \
+ -exec install -t "${D}${PTEST_PATH}/tests/$d" {} \;
+ find "${S}/tests/$d" -maxdepth 1 -name *.expect \
+ -exec install -t "${D}${PTEST_PATH}/tests/$d" {} \;
+ done
+ install -d "${D}${PTEST_PATH}/tests/data/ctf-traces/"
+ cp -a ${S}/tests/data/ctf-traces/* ${D}${PTEST_PATH}/tests/data/ctf-traces/
+
+ # Copy the tests directory tree and the executables and
+ # Makefiles found within.
+ install -D "${B}/tests/Makefile" "${D}${PTEST_PATH}/tests/"
+ for d in $(find "${B}/tests" -type d -not -name .libs -printf '%P ') ; do
+ install -d "${D}${PTEST_PATH}/tests/$d"
+ find "${B}/tests/$d" -maxdepth 1 -executable -type f \
+ -exec install -t "${D}${PTEST_PATH}/tests/$d" {} +
+ test -r "${B}/tests/$d/Makefile" && \
+ install -t "${D}${PTEST_PATH}/tests/$d" "${B}/tests/$d/Makefile"
+ find "${B}/tests/$d" -maxdepth 1 -name *.sh \
+ -exec install -t "${D}${PTEST_PATH}/tests/$d" {} \;
+ done
+
+ for d in $(find "${B}/tests" -type d -name .libs -printf '%P ') ; do
+ for f in $(find "${B}/tests/$d" -maxdepth 1 -executable -type f -printf '%P ') ; do
+ cp ${B}/tests/$d/$f ${D}${PTEST_PATH}/tests/`dirname $d`/$f
+ done
+ done
+
+ # Prevent attempts to update Makefiles during test runs, and
+ # silence "Making check in $SUBDIR" messages.
+ find "${D}${PTEST_PATH}" -name Makefile -type f -exec \
+ sed -i \
+ -e '/Makefile:/,/^$/d' \
+ -e '/%: %.in/,/^$/d' \
+ -e '/echo "Making $$target in $$subdir"; \\/d' \
+ -e 's/^srcdir = \(.*\)/srcdir = ./' \
+ -e 's/^builddir = \(.*\)/builddir = ./' \
+ -e 's/^all-am:.*/all-am:/' \
+ {} +
+
+ # Substitute links to installed binaries.
+ install -d "${D}${PTEST_PATH}/src/cli/"
+ ln -s "${bindir}/babeltrace2" ${D}${PTEST_PATH}/src/cli/
+
+ # Remove architechture specific testfiles
+ rm -rf ${D}${PTEST_PATH}/tests/data/plugins/flt.lttng-utils.debug-info/*
+}
diff --git a/meta/recipes-kernel/lttng/babeltrace_1.5.8.bb b/meta/recipes-kernel/lttng/babeltrace_1.5.8.bb
index c050dc674d..9e5d3a7a97 100644
--- a/meta/recipes-kernel/lttng/babeltrace_1.5.8.bb
+++ b/meta/recipes-kernel/lttng/babeltrace_1.5.8.bb
@@ -7,11 +7,11 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=76ba15dd76a248e1dd526bca0e2125fa"
DEPENDS = "glib-2.0 util-linux popt bison-native flex-native"
-SRC_URI = "git://git.linuxfoundation.org/diamon/babeltrace.git;branch=stable-1.5 \
+SRC_URI = "git://git.efficios.com/babeltrace.git;branch=stable-1.5 \
file://run-ptest \
"
SRCREV = "054a54ae10b01a271afc4f19496c041b10fb414c"
-UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)$"
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>1(\.\d+)+)$"
S = "${WORKDIR}/git"
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0001-Kconfig-fix-dependency-issue-when-building-in-tree-w.patch b/meta/recipes-kernel/lttng/lttng-modules/0001-Kconfig-fix-dependency-issue-when-building-in-tree-w.patch
new file mode 100644
index 0000000000..ae8bec45de
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0001-Kconfig-fix-dependency-issue-when-building-in-tree-w.patch
@@ -0,0 +1,54 @@
+From ff4d1d7e85be94ef43709cd698f0ec9a12f247d1 Mon Sep 17 00:00:00 2001
+From: Beniamin Sandu <beniaminsandu@gmail.com>
+Date: Thu, 13 Aug 2020 16:24:39 +0300
+Subject: [PATCH 01/10] Kconfig: fix dependency issue when building in-tree
+ without CONFIG_FTRACE
+
+When building in-tree, one could disable CONFIG_FTRACE from kernel
+config which will leave CONFIG_TRACEPOINTS selected by LTTNG modules,
+but generate a lot of linker errors like below because it leaves out
+other stuff, e.g.:
+
+trace.c:(.text+0xd86b): undefined reference to `trace_event_buffer_reserve'
+ld: trace.c:(.text+0xd8de): undefined reference to `trace_event_buffer_commit'
+ld: trace.c:(.text+0xd926): undefined reference to `event_triggers_call'
+ld: trace.c:(.text+0xd942): undefined reference to `trace_event_ignore_this_pid'
+ld: net/mac80211/trace.o: in function `trace_event_raw_event_drv_tdls_cancel_channel_switch':
+
+It appears to be caused by the fact that TRACE_EVENT macros in the Linux
+kernel depend on the Ftrace ring buffer as soon as CONFIG_TRACEPOINTS is
+enabled.
+
+Steps to reproduce:
+
+- Get a clone of an upstream stable kernel and use scripts/built-in.sh on it
+
+- Configure a standard x86-64 build, enable built-in LTTNG but disable
+ CONFIG_FTRACE from Kernel Hacking-->Tracers using menuconfig
+
+- Build will fail at linking stage
+
+Upstream-Status: Backport
+
+Signed-off-by: Beniamin Sandu <beniaminsandu@gmail.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ Kconfig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Kconfig b/Kconfig
+index acdab73..10eccff 100644
+--- a/Kconfig
++++ b/Kconfig
+@@ -2,7 +2,7 @@
+
+ config LTTNG
+ tristate "LTTng support"
+- select TRACEPOINTS
++ select TRACING
+ help
+ LTTng is an open source tracing framework for Linux.
+
+--
+2.19.1
+
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0002-fix-Move-mmutrace.h-into-the-mmu-sub-directory-v5.9.patch b/meta/recipes-kernel/lttng/lttng-modules/0002-fix-Move-mmutrace.h-into-the-mmu-sub-directory-v5.9.patch
new file mode 100644
index 0000000000..fab673b854
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0002-fix-Move-mmutrace.h-into-the-mmu-sub-directory-v5.9.patch
@@ -0,0 +1,41 @@
+From e10ab43dd0e425df5bc0ac763447664ed075ba05 Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Mon, 10 Aug 2020 11:22:05 -0400
+Subject: [PATCH 02/10] fix: Move mmutrace.h into the mmu/ sub-directory (v5.9)
+
+ commit 33e3042dac6bcc33b80835f7d7b502b1d74c457c
+ Author: Sean Christopherson <sean.j.christopherson@intel.com>
+ Date: Mon Jun 22 13:20:29 2020 -0700
+
+ KVM: x86/mmu: Move mmu_audit.c and mmutrace.h into the mmu/ sub-directory
+
+ Move mmu_audit.c and mmutrace.h under mmu/ where they belong.
+
+Upstream-Status: Backport
+
+Change-Id: I582525ccca34e1e3bd62870364108a7d3e9df2e4
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ probes/lttng-probe-kvm-x86-mmu.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/probes/lttng-probe-kvm-x86-mmu.c b/probes/lttng-probe-kvm-x86-mmu.c
+index 37384a2..5a7ef1e 100644
+--- a/probes/lttng-probe-kvm-x86-mmu.c
++++ b/probes/lttng-probe-kvm-x86-mmu.c
+@@ -24,7 +24,11 @@
+ */
+ #include <wrapper/tracepoint.h>
+
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0))
++#include <../../arch/x86/kvm/mmu/mmutrace.h>
++#else
+ #include <../../arch/x86/kvm/mmutrace.h>
++#endif
+
+ #undef TRACE_INCLUDE_PATH
+ #undef TRACE_INCLUDE_FILE
+--
+2.19.1
+
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0003-fix-KVM-x86-mmu-Make-kvm_mmu_page-definition-and-acc.patch b/meta/recipes-kernel/lttng/lttng-modules/0003-fix-KVM-x86-mmu-Make-kvm_mmu_page-definition-and-acc.patch
new file mode 100644
index 0000000000..524631cc72
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0003-fix-KVM-x86-mmu-Make-kvm_mmu_page-definition-and-acc.patch
@@ -0,0 +1,39 @@
+From f16315cc45c4c6b880de541bb092ca18a13952b7 Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Mon, 10 Aug 2020 11:36:03 -0400
+Subject: [PATCH 03/10] fix: KVM: x86/mmu: Make kvm_mmu_page definition and
+ accessor internal-only (v5.9)
+
+ commit 985ab2780164698ec6e7d73fad523d50449261dd
+ Author: Sean Christopherson <sean.j.christopherson@intel.com>
+ Date: Mon Jun 22 13:20:32 2020 -0700
+
+ KVM: x86/mmu: Make kvm_mmu_page definition and accessor internal-only
+
+ Make 'struct kvm_mmu_page' MMU-only, nothing outside of the MMU should
+ be poking into the gory details of shadow pages.
+
+Upstream-Status: Backport
+
+Change-Id: Ia5c1b9c49c2b00dad1d5b17c50c3dc730dafda20
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ probes/lttng-probe-kvm-x86-mmu.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/probes/lttng-probe-kvm-x86-mmu.c b/probes/lttng-probe-kvm-x86-mmu.c
+index 5a7ef1e..8f98186 100644
+--- a/probes/lttng-probe-kvm-x86-mmu.c
++++ b/probes/lttng-probe-kvm-x86-mmu.c
+@@ -25,6 +25,7 @@
+ #include <wrapper/tracepoint.h>
+
+ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0))
++#include <../../arch/x86/kvm/mmu/mmu_internal.h>
+ #include <../../arch/x86/kvm/mmu/mmutrace.h>
+ #else
+ #include <../../arch/x86/kvm/mmutrace.h>
+--
+2.19.1
+
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0004-fix-ext4-limit-the-length-of-per-inode-prealloc-list.patch b/meta/recipes-kernel/lttng/lttng-modules/0004-fix-ext4-limit-the-length-of-per-inode-prealloc-list.patch
new file mode 100644
index 0000000000..e29c07252c
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0004-fix-ext4-limit-the-length-of-per-inode-prealloc-list.patch
@@ -0,0 +1,84 @@
+From 8fe742807e65af29dac3fea568ff93cbc5dd9a56 Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Mon, 24 Aug 2020 15:26:04 -0400
+Subject: [PATCH 04/10] fix: ext4: limit the length of per-inode prealloc list
+ (v5.9)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+See upstream commit:
+
+ commit 27bc446e2def38db3244a6eb4bb1d6312936610a
+ Author: brookxu <brookxu.cn@gmail.com>
+ Date: Mon Aug 17 15:36:15 2020 +0800
+
+ ext4: limit the length of per-inode prealloc list
+
+ In the scenario of writing sparse files, the per-inode prealloc list may
+ be very long, resulting in high overhead for ext4_mb_use_preallocated().
+ To circumvent this problem, we limit the maximum length of per-inode
+ prealloc list to 512 and allow users to modify it.
+
+ After patching, we observed that the sys ratio of cpu has dropped, and
+ the system throughput has increased significantly. We created a process
+ to write the sparse file, and the running time of the process on the
+ fixed kernel was significantly reduced, as follows:
+
+ Running time on unfixed kernel:
+ [root@TENCENT64 ~]# time taskset 0x01 ./sparse /data1/sparce.dat
+ real 0m2.051s
+ user 0m0.008s
+ sys 0m2.026s
+
+ Running time on fixed kernel:
+ [root@TENCENT64 ~]# time taskset 0x01 ./sparse /data1/sparce.dat
+ real 0m0.471s
+ user 0m0.004s
+ sys 0m0.395s
+
+Upstream-Status: Backport
+
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Change-Id: I5169cb24853d4da32e2862a6626f1f058689b053
+---
+ instrumentation/events/lttng-module/ext4.h | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+diff --git a/instrumentation/events/lttng-module/ext4.h b/instrumentation/events/lttng-module/ext4.h
+index 5f7ab28..72ad4c9 100644
+--- a/instrumentation/events/lttng-module/ext4.h
++++ b/instrumentation/events/lttng-module/ext4.h
+@@ -460,6 +460,20 @@ LTTNG_TRACEPOINT_EVENT(ext4_mb_release_group_pa,
+ )
+ #endif
+
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0))
++LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations,
++ TP_PROTO(struct inode *inode, unsigned int len, unsigned int needed),
++
++ TP_ARGS(inode, len, needed),
++
++ TP_FIELDS(
++ ctf_integer(dev_t, dev, inode->i_sb->s_dev)
++ ctf_integer(ino_t, ino, inode->i_ino)
++ ctf_integer(unsigned int, len, len)
++ ctf_integer(unsigned int, needed, needed)
++ )
++)
++#else
+ LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations,
+ TP_PROTO(struct inode *inode),
+
+@@ -470,6 +484,7 @@ LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations,
+ ctf_integer(ino_t, ino, inode->i_ino)
+ )
+ )
++#endif
+
+ LTTNG_TRACEPOINT_EVENT(ext4_mb_discard_preallocations,
+ TP_PROTO(struct super_block *sb, int needed),
+--
+2.19.1
+
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0005-fix-ext4-indicate-via-a-block-bitmap-read-is-prefetc.patch b/meta/recipes-kernel/lttng/lttng-modules/0005-fix-ext4-indicate-via-a-block-bitmap-read-is-prefetc.patch
new file mode 100644
index 0000000000..f76e9698c8
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0005-fix-ext4-indicate-via-a-block-bitmap-read-is-prefetc.patch
@@ -0,0 +1,63 @@
+From 52563d02a9234215b62c5f519aa1b5d8589ccd0a Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Mon, 24 Aug 2020 15:37:50 -0400
+Subject: [PATCH 05/10] =?UTF-8?q?fix:=20ext4:=20indicate=20via=20a=20block?=
+ =?UTF-8?q?=20bitmap=20read=20is=20prefetched=E2=80=A6=20(v5.9)?=
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+See upstream commit:
+
+ commit ab74c7b23f3770935016e3eb3ecdf1e42b73efaa
+ Author: Theodore Ts'o <tytso@mit.edu>
+ Date: Wed Jul 15 11:48:55 2020 -0400
+
+ ext4: indicate via a block bitmap read is prefetched via a tracepoint
+
+ Modify the ext4_read_block_bitmap_load tracepoint so that it tells us
+ whether a block bitmap is being prefetched.
+
+Upstream-Status: Backport
+
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Change-Id: I0e5e2c5b8004223d0928235c092449ee16a940e1
+---
+ instrumentation/events/lttng-module/ext4.h | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/instrumentation/events/lttng-module/ext4.h b/instrumentation/events/lttng-module/ext4.h
+index 72ad4c9..4476abb 100644
+--- a/instrumentation/events/lttng-module/ext4.h
++++ b/instrumentation/events/lttng-module/ext4.h
+@@ -893,12 +893,26 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_mb_buddy_bitmap_load,
+ TP_ARGS(sb, group)
+ )
+
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0))
++LTTNG_TRACEPOINT_EVENT(ext4_read_block_bitmap_load,
++ TP_PROTO(struct super_block *sb, unsigned long group, bool prefetch),
++
++ TP_ARGS(sb, group, prefetch),
++
++ TP_FIELDS(
++ ctf_integer(dev_t, dev, sb->s_dev)
++ ctf_integer(__u32, group, group)
++ ctf_integer(bool, prefetch, prefetch)
++ )
++)
++#else
+ LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_read_block_bitmap_load,
+
+ TP_PROTO(struct super_block *sb, unsigned long group),
+
+ TP_ARGS(sb, group)
+ )
++#endif
+
+ LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_load_inode_bitmap,
+
+--
+2.19.1
+
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0006-fix-removal-of-smp_-read_barrier_depends-v5.9.patch b/meta/recipes-kernel/lttng/lttng-modules/0006-fix-removal-of-smp_-read_barrier_depends-v5.9.patch
new file mode 100644
index 0000000000..0970dd30aa
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0006-fix-removal-of-smp_-read_barrier_depends-v5.9.patch
@@ -0,0 +1,391 @@
+From 57ccbfa6a8a79c7b84394c2097efaf7935607aa5 Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Tue, 25 Aug 2020 10:56:29 -0400
+Subject: [PATCH 06/10] fix: removal of [smp_]read_barrier_depends (v5.9)
+
+See upstream commits:
+
+ commit 76ebbe78f7390aee075a7f3768af197ded1bdfbb
+ Author: Will Deacon <will@kernel.org>
+ Date: Tue Oct 24 11:22:47 2017 +0100
+
+ locking/barriers: Add implicit smp_read_barrier_depends() to READ_ONCE()
+
+ In preparation for the removal of lockless_dereference(), which is the
+ same as READ_ONCE() on all architectures other than Alpha, add an
+ implicit smp_read_barrier_depends() to READ_ONCE() so that it can be
+ used to head dependency chains on all architectures.
+
+ commit 76ebbe78f7390aee075a7f3768af197ded1bdfbb
+ Author: Will Deacon <will.deacon@arm.com>
+ Date: Tue Oct 24 11:22:47 2017 +0100
+
+ locking/barriers: Add implicit smp_read_barrier_depends() to READ_ONCE()
+
+ In preparation for the removal of lockless_dereference(), which is the
+ same as READ_ONCE() on all architectures other than Alpha, add an
+ implicit smp_read_barrier_depends() to READ_ONCE() so that it can be
+ used to head dependency chains on all architectures.
+
+Upstream-Status: Backport
+
+Change-Id: Ife8880bd9378dca2972da8838f40fc35ccdfaaac
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ instrumentation/events/lttng-module/i2c.h | 4 ++--
+ lib/ringbuffer/backend.h | 2 +-
+ lib/ringbuffer/backend_internal.h | 2 +-
+ lib/ringbuffer/frontend.h | 4 ++--
+ lib/ringbuffer/ring_buffer_frontend.c | 4 ++--
+ lib/ringbuffer/ring_buffer_iterator.c | 2 +-
+ lttng-events.c | 8 ++++----
+ probes/lttng-kprobes.c | 6 +++---
+ probes/lttng-kretprobes.c | 6 +++---
+ probes/lttng-tracepoint-event-impl.h | 12 ++++++------
+ probes/lttng-uprobes.c | 6 +++---
+ wrapper/compiler.h | 18 ++++++++++++++++++
+ wrapper/trace-clock.h | 15 +++++----------
+ 13 files changed, 51 insertions(+), 38 deletions(-)
+
+diff --git a/instrumentation/events/lttng-module/i2c.h b/instrumentation/events/lttng-module/i2c.h
+index dcbabf6..131d134 100644
+--- a/instrumentation/events/lttng-module/i2c.h
++++ b/instrumentation/events/lttng-module/i2c.h
+@@ -23,7 +23,7 @@ LTTNG_TRACEPOINT_EVENT_CODE(i2c_write,
+
+ TP_code_pre(
+ tp_locvar->extract_sensitive_payload =
+- READ_ONCE(extract_sensitive_payload);
++ LTTNG_READ_ONCE(extract_sensitive_payload);
+ ),
+
+ TP_FIELDS(
+@@ -78,7 +78,7 @@ LTTNG_TRACEPOINT_EVENT_CODE(i2c_reply,
+
+ TP_code_pre(
+ tp_locvar->extract_sensitive_payload =
+- READ_ONCE(extract_sensitive_payload);
++ LTTNG_READ_ONCE(extract_sensitive_payload);
+ ),
+
+ TP_FIELDS(
+diff --git a/lib/ringbuffer/backend.h b/lib/ringbuffer/backend.h
+index da937f2..43e1d47 100644
+--- a/lib/ringbuffer/backend.h
++++ b/lib/ringbuffer/backend.h
+@@ -156,7 +156,7 @@ size_t lib_ring_buffer_do_strcpy(const struct lib_ring_buffer_config *config,
+ * Only read source character once, in case it is
+ * modified concurrently.
+ */
+- c = READ_ONCE(src[count]);
++ c = LTTNG_READ_ONCE(src[count]);
+ if (!c)
+ break;
+ lib_ring_buffer_do_copy(config, &dest[count], &c, 1);
+diff --git a/lib/ringbuffer/backend_internal.h b/lib/ringbuffer/backend_internal.h
+index 2d6a345..1226fd8 100644
+--- a/lib/ringbuffer/backend_internal.h
++++ b/lib/ringbuffer/backend_internal.h
+@@ -367,7 +367,7 @@ void lib_ring_buffer_clear_noref(const struct lib_ring_buffer_config *config,
+ * Performing a volatile access to read the sb_pages, because we want to
+ * read a coherent version of the pointer and the associated noref flag.
+ */
+- id = READ_ONCE(bufb->buf_wsb[idx].id);
++ id = LTTNG_READ_ONCE(bufb->buf_wsb[idx].id);
+ for (;;) {
+ /* This check is called on the fast path for each record. */
+ if (likely(!subbuffer_id_is_noref(config, id))) {
+diff --git a/lib/ringbuffer/frontend.h b/lib/ringbuffer/frontend.h
+index 6f516d9..41382fe 100644
+--- a/lib/ringbuffer/frontend.h
++++ b/lib/ringbuffer/frontend.h
+@@ -79,7 +79,7 @@ void *channel_destroy(struct channel *chan);
+ #define for_each_channel_cpu(cpu, chan) \
+ for ((cpu) = -1; \
+ ({ (cpu) = cpumask_next(cpu, (chan)->backend.cpumask); \
+- smp_read_barrier_depends(); (cpu) < nr_cpu_ids; });)
++ smp_rmb(); (cpu) < nr_cpu_ids; });)
+
+ extern struct lib_ring_buffer *channel_get_ring_buffer(
+ const struct lib_ring_buffer_config *config,
+@@ -155,7 +155,7 @@ static inline
+ int lib_ring_buffer_is_finalized(const struct lib_ring_buffer_config *config,
+ struct lib_ring_buffer *buf)
+ {
+- int finalized = READ_ONCE(buf->finalized);
++ int finalized = LTTNG_READ_ONCE(buf->finalized);
+ /*
+ * Read finalized before counters.
+ */
+diff --git a/lib/ringbuffer/ring_buffer_frontend.c b/lib/ringbuffer/ring_buffer_frontend.c
+index 3cab365..4980d20 100644
+--- a/lib/ringbuffer/ring_buffer_frontend.c
++++ b/lib/ringbuffer/ring_buffer_frontend.c
+@@ -1074,7 +1074,7 @@ int lib_ring_buffer_snapshot(struct lib_ring_buffer *buf,
+ int finalized;
+
+ retry:
+- finalized = READ_ONCE(buf->finalized);
++ finalized = LTTNG_READ_ONCE(buf->finalized);
+ /*
+ * Read finalized before counters.
+ */
+@@ -1245,7 +1245,7 @@ int lib_ring_buffer_get_subbuf(struct lib_ring_buffer *buf,
+ return -EBUSY;
+ }
+ retry:
+- finalized = READ_ONCE(buf->finalized);
++ finalized = LTTNG_READ_ONCE(buf->finalized);
+ /*
+ * Read finalized before counters.
+ */
+diff --git a/lib/ringbuffer/ring_buffer_iterator.c b/lib/ringbuffer/ring_buffer_iterator.c
+index d25db72..7b4f20a 100644
+--- a/lib/ringbuffer/ring_buffer_iterator.c
++++ b/lib/ringbuffer/ring_buffer_iterator.c
+@@ -46,7 +46,7 @@ restart:
+ switch (iter->state) {
+ case ITER_GET_SUBBUF:
+ ret = lib_ring_buffer_get_next_subbuf(buf);
+- if (ret && !READ_ONCE(buf->finalized)
++ if (ret && !LTTNG_READ_ONCE(buf->finalized)
+ && config->alloc == RING_BUFFER_ALLOC_GLOBAL) {
+ /*
+ * Use "pull" scheme for global buffers. The reader
+diff --git a/lttng-events.c b/lttng-events.c
+index be7e389..d719294 100644
+--- a/lttng-events.c
++++ b/lttng-events.c
+@@ -1719,7 +1719,7 @@ int lttng_metadata_printf(struct lttng_session *session,
+ size_t len;
+ va_list ap;
+
+- WARN_ON_ONCE(!READ_ONCE(session->active));
++ WARN_ON_ONCE(!LTTNG_READ_ONCE(session->active));
+
+ va_start(ap, fmt);
+ str = kvasprintf(GFP_KERNEL, fmt, ap);
+@@ -2305,7 +2305,7 @@ int _lttng_event_metadata_statedump(struct lttng_session *session,
+ {
+ int ret = 0;
+
+- if (event->metadata_dumped || !READ_ONCE(session->active))
++ if (event->metadata_dumped || !LTTNG_READ_ONCE(session->active))
+ return 0;
+ if (chan->channel_type == METADATA_CHANNEL)
+ return 0;
+@@ -2377,7 +2377,7 @@ int _lttng_channel_metadata_statedump(struct lttng_session *session,
+ {
+ int ret = 0;
+
+- if (chan->metadata_dumped || !READ_ONCE(session->active))
++ if (chan->metadata_dumped || !LTTNG_READ_ONCE(session->active))
+ return 0;
+
+ if (chan->channel_type == METADATA_CHANNEL)
+@@ -2604,7 +2604,7 @@ int _lttng_session_metadata_statedump(struct lttng_session *session)
+ struct lttng_event *event;
+ int ret = 0;
+
+- if (!READ_ONCE(session->active))
++ if (!LTTNG_READ_ONCE(session->active))
+ return 0;
+
+ lttng_metadata_begin(session);
+diff --git a/probes/lttng-kprobes.c b/probes/lttng-kprobes.c
+index a44eaa1..38fb72e 100644
+--- a/probes/lttng-kprobes.c
++++ b/probes/lttng-kprobes.c
+@@ -31,11 +31,11 @@ int lttng_kprobes_handler_pre(struct kprobe *p, struct pt_regs *regs)
+ int ret;
+ unsigned long data = (unsigned long) p->addr;
+
+- if (unlikely(!READ_ONCE(chan->session->active)))
++ if (unlikely(!LTTNG_READ_ONCE(chan->session->active)))
+ return 0;
+- if (unlikely(!READ_ONCE(chan->enabled)))
++ if (unlikely(!LTTNG_READ_ONCE(chan->enabled)))
+ return 0;
+- if (unlikely(!READ_ONCE(event->enabled)))
++ if (unlikely(!LTTNG_READ_ONCE(event->enabled)))
+ return 0;
+
+ lib_ring_buffer_ctx_init(&ctx, chan->chan, &lttng_probe_ctx, sizeof(data),
+diff --git a/probes/lttng-kretprobes.c b/probes/lttng-kretprobes.c
+index ab98ff2..a6bcd21 100644
+--- a/probes/lttng-kretprobes.c
++++ b/probes/lttng-kretprobes.c
+@@ -51,11 +51,11 @@ int _lttng_kretprobes_handler(struct kretprobe_instance *krpi,
+ unsigned long parent_ip;
+ } payload;
+
+- if (unlikely(!READ_ONCE(chan->session->active)))
++ if (unlikely(!LTTNG_READ_ONCE(chan->session->active)))
+ return 0;
+- if (unlikely(!READ_ONCE(chan->enabled)))
++ if (unlikely(!LTTNG_READ_ONCE(chan->enabled)))
+ return 0;
+- if (unlikely(!READ_ONCE(event->enabled)))
++ if (unlikely(!LTTNG_READ_ONCE(event->enabled)))
+ return 0;
+
+ payload.ip = (unsigned long) krpi->rp->kp.addr;
+diff --git a/probes/lttng-tracepoint-event-impl.h b/probes/lttng-tracepoint-event-impl.h
+index 77b8638..72a669e 100644
+--- a/probes/lttng-tracepoint-event-impl.h
++++ b/probes/lttng-tracepoint-event-impl.h
+@@ -1132,11 +1132,11 @@ static void __event_probe__##_name(void *__data, _proto) \
+ \
+ if (!_TP_SESSION_CHECK(session, __session)) \
+ return; \
+- if (unlikely(!READ_ONCE(__session->active))) \
++ if (unlikely(!LTTNG_READ_ONCE(__session->active))) \
+ return; \
+- if (unlikely(!READ_ONCE(__chan->enabled))) \
++ if (unlikely(!LTTNG_READ_ONCE(__chan->enabled))) \
+ return; \
+- if (unlikely(!READ_ONCE(__event->enabled))) \
++ if (unlikely(!LTTNG_READ_ONCE(__event->enabled))) \
+ return; \
+ __lf = lttng_rcu_dereference(__session->pid_tracker.p); \
+ if (__lf && likely(!lttng_id_tracker_lookup(__lf, current->tgid))) \
+@@ -1225,11 +1225,11 @@ static void __event_probe__##_name(void *__data) \
+ \
+ if (!_TP_SESSION_CHECK(session, __session)) \
+ return; \
+- if (unlikely(!READ_ONCE(__session->active))) \
++ if (unlikely(!LTTNG_READ_ONCE(__session->active))) \
+ return; \
+- if (unlikely(!READ_ONCE(__chan->enabled))) \
++ if (unlikely(!LTTNG_READ_ONCE(__chan->enabled))) \
+ return; \
+- if (unlikely(!READ_ONCE(__event->enabled))) \
++ if (unlikely(!LTTNG_READ_ONCE(__event->enabled))) \
+ return; \
+ __lf = lttng_rcu_dereference(__session->pid_tracker.p); \
+ if (__lf && likely(!lttng_id_tracker_lookup(__lf, current->tgid))) \
+diff --git a/probes/lttng-uprobes.c b/probes/lttng-uprobes.c
+index bc10128..bda1d9b 100644
+--- a/probes/lttng-uprobes.c
++++ b/probes/lttng-uprobes.c
+@@ -40,11 +40,11 @@ int lttng_uprobes_handler_pre(struct uprobe_consumer *uc, struct pt_regs *regs)
+ unsigned long ip;
+ } payload;
+
+- if (unlikely(!READ_ONCE(chan->session->active)))
++ if (unlikely(!LTTNG_READ_ONCE(chan->session->active)))
+ return 0;
+- if (unlikely(!READ_ONCE(chan->enabled)))
++ if (unlikely(!LTTNG_READ_ONCE(chan->enabled)))
+ return 0;
+- if (unlikely(!READ_ONCE(event->enabled)))
++ if (unlikely(!LTTNG_READ_ONCE(event->enabled)))
+ return 0;
+
+ lib_ring_buffer_ctx_init(&ctx, chan->chan, &lttng_probe_ctx,
+diff --git a/wrapper/compiler.h b/wrapper/compiler.h
+index 1496f33..b9f8c51 100644
+--- a/wrapper/compiler.h
++++ b/wrapper/compiler.h
+@@ -9,6 +9,7 @@
+ #define _LTTNG_WRAPPER_COMPILER_H
+
+ #include <linux/compiler.h>
++#include <linux/version.h>
+
+ /*
+ * Don't allow compiling with buggy compiler.
+@@ -39,4 +40,21 @@
+ # define WRITE_ONCE(x, val) ({ ACCESS_ONCE(x) = val; })
+ #endif
+
++/*
++ * In v4.15 a smp read barrier was added to READ_ONCE to replace
++ * lockless_dereference(), replicate this behavior on prior kernels
++ * and remove calls to smp_read_barrier_depends which was dropped
++ * in v5.9.
++ */
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0))
++#define LTTNG_READ_ONCE(x) READ_ONCE(x)
++#else
++#define LTTNG_READ_ONCE(x) \
++({ \
++ typeof(x) __val = READ_ONCE(x); \
++ smp_read_barrier_depends(); \
++ __val; \
++})
++#endif
++
+ #endif /* _LTTNG_WRAPPER_COMPILER_H */
+diff --git a/wrapper/trace-clock.h b/wrapper/trace-clock.h
+index 9f4e366..187fc82 100644
+--- a/wrapper/trace-clock.h
++++ b/wrapper/trace-clock.h
+@@ -160,33 +160,30 @@ static inline void put_trace_clock(void)
+
+ static inline u64 trace_clock_read64(void)
+ {
+- struct lttng_trace_clock *ltc = READ_ONCE(lttng_trace_clock);
++ struct lttng_trace_clock *ltc = LTTNG_READ_ONCE(lttng_trace_clock);
+
+ if (likely(!ltc)) {
+ return trace_clock_read64_monotonic();
+ } else {
+- read_barrier_depends(); /* load ltc before content */
+ return ltc->read64();
+ }
+ }
+
+ static inline u64 trace_clock_freq(void)
+ {
+- struct lttng_trace_clock *ltc = READ_ONCE(lttng_trace_clock);
++ struct lttng_trace_clock *ltc = LTTNG_READ_ONCE(lttng_trace_clock);
+
+ if (!ltc) {
+ return trace_clock_freq_monotonic();
+ } else {
+- read_barrier_depends(); /* load ltc before content */
+ return ltc->freq();
+ }
+ }
+
+ static inline int trace_clock_uuid(char *uuid)
+ {
+- struct lttng_trace_clock *ltc = READ_ONCE(lttng_trace_clock);
++ struct lttng_trace_clock *ltc = LTTNG_READ_ONCE(lttng_trace_clock);
+
+- read_barrier_depends(); /* load ltc before content */
+ /* Use default UUID cb when NULL */
+ if (!ltc || !ltc->uuid) {
+ return trace_clock_uuid_monotonic(uuid);
+@@ -197,24 +194,22 @@ static inline int trace_clock_uuid(char *uuid)
+
+ static inline const char *trace_clock_name(void)
+ {
+- struct lttng_trace_clock *ltc = READ_ONCE(lttng_trace_clock);
++ struct lttng_trace_clock *ltc = LTTNG_READ_ONCE(lttng_trace_clock);
+
+ if (!ltc) {
+ return trace_clock_name_monotonic();
+ } else {
+- read_barrier_depends(); /* load ltc before content */
+ return ltc->name();
+ }
+ }
+
+ static inline const char *trace_clock_description(void)
+ {
+- struct lttng_trace_clock *ltc = READ_ONCE(lttng_trace_clock);
++ struct lttng_trace_clock *ltc = LTTNG_READ_ONCE(lttng_trace_clock);
+
+ if (!ltc) {
+ return trace_clock_description_monotonic();
+ } else {
+- read_barrier_depends(); /* load ltc before content */
+ return ltc->description();
+ }
+ }
+--
+2.19.1
+
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0007-fix-writeback-Drop-I_DIRTY_TIME_EXPIRE-v5.9.patch b/meta/recipes-kernel/lttng/lttng-modules/0007-fix-writeback-Drop-I_DIRTY_TIME_EXPIRE-v5.9.patch
new file mode 100644
index 0000000000..2843c9cb62
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0007-fix-writeback-Drop-I_DIRTY_TIME_EXPIRE-v5.9.patch
@@ -0,0 +1,59 @@
+From eae02feb58064eee5ce15a9f6bdffd107c47da05 Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Mon, 31 Aug 2020 11:41:38 -0400
+Subject: [PATCH 07/10] fix: writeback: Drop I_DIRTY_TIME_EXPIRE (v5.9)
+
+See upstream commit:
+
+ commit 5fcd57505c002efc5823a7355e21f48dd02d5a51
+ Author: Jan Kara <jack@suse.cz>
+ Date: Fri May 29 16:24:43 2020 +0200
+
+ writeback: Drop I_DIRTY_TIME_EXPIRE
+
+ The only use of I_DIRTY_TIME_EXPIRE is to detect in
+ __writeback_single_inode() that inode got there because flush worker
+ decided it's time to writeback the dirty inode time stamps (either
+ because we are syncing or because of age). However we can detect this
+ directly in __writeback_single_inode() and there's no need for the
+ strange propagation with I_DIRTY_TIME_EXPIRE flag.
+
+Upstream-Status: Backport
+
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Change-Id: I92e37c2ff3ec36d431e8f9de5c8e37c5a2da55ea
+---
+ instrumentation/events/lttng-module/writeback.h | 16 +++++++++++++++-
+ 1 file changed, 15 insertions(+), 1 deletion(-)
+
+diff --git a/instrumentation/events/lttng-module/writeback.h b/instrumentation/events/lttng-module/writeback.h
+index affb4eb..ece67ad 100644
+--- a/instrumentation/events/lttng-module/writeback.h
++++ b/instrumentation/events/lttng-module/writeback.h
+@@ -46,7 +46,21 @@ static inline struct backing_dev_info *lttng_inode_to_bdi(struct inode *inode)
+
+ #endif
+
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0))
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0))
++#define show_inode_state(state) \
++ __print_flags(state, "|", \
++ {I_DIRTY_SYNC, "I_DIRTY_SYNC"}, \
++ {I_DIRTY_DATASYNC, "I_DIRTY_DATASYNC"}, \
++ {I_DIRTY_PAGES, "I_DIRTY_PAGES"}, \
++ {I_NEW, "I_NEW"}, \
++ {I_WILL_FREE, "I_WILL_FREE"}, \
++ {I_FREEING, "I_FREEING"}, \
++ {I_CLEAR, "I_CLEAR"}, \
++ {I_SYNC, "I_SYNC"}, \
++ {I_DIRTY_TIME, "I_DIRTY_TIME"}, \
++ {I_REFERENCED, "I_REFERENCED"} \
++ )
++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0))
+ #define show_inode_state(state) \
+ __print_flags(state, "|", \
+ {I_DIRTY_SYNC, "I_DIRTY_SYNC"}, \
+--
+2.19.1
+
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0008-fix-writeback-Fix-sync-livelock-due-to-b_dirty_time-.patch b/meta/recipes-kernel/lttng/lttng-modules/0008-fix-writeback-Fix-sync-livelock-due-to-b_dirty_time-.patch
new file mode 100644
index 0000000000..7a0d9a38b8
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0008-fix-writeback-Fix-sync-livelock-due-to-b_dirty_time-.patch
@@ -0,0 +1,117 @@
+From 87b2affc3eb06f3fb2d0923f18af37713eb6814b Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Mon, 31 Aug 2020 14:16:01 -0400
+Subject: [PATCH 08/10] fix: writeback: Fix sync livelock due to b_dirty_time
+ processing (v5.9)
+
+See upstream commit:
+
+ commit f9cae926f35e8230330f28c7b743ad088611a8de
+ Author: Jan Kara <jack@suse.cz>
+ Date: Fri May 29 16:08:58 2020 +0200
+
+ writeback: Fix sync livelock due to b_dirty_time processing
+
+ When we are processing writeback for sync(2), move_expired_inodes()
+ didn't set any inode expiry value (older_than_this). This can result in
+ writeback never completing if there's steady stream of inodes added to
+ b_dirty_time list as writeback rechecks dirty lists after each writeback
+ round whether there's more work to be done. Fix the problem by using
+ sync(2) start time is inode expiry value when processing b_dirty_time
+ list similarly as for ordinarily dirtied inodes. This requires some
+ refactoring of older_than_this handling which simplifies the code
+ noticeably as a bonus.
+
+Upstream-Status: Backport
+
+Change-Id: I8b894b13ccc14d9b8983ee4c2810a927c319560b
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ .../events/lttng-module/writeback.h | 39 ++++++++++++-------
+ 1 file changed, 26 insertions(+), 13 deletions(-)
+
+diff --git a/instrumentation/events/lttng-module/writeback.h b/instrumentation/events/lttng-module/writeback.h
+index ece67ad..e9018dd 100644
+--- a/instrumentation/events/lttng-module/writeback.h
++++ b/instrumentation/events/lttng-module/writeback.h
+@@ -384,34 +384,48 @@ LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_balance_dirty_wait, writeback_wbc_balanc
+ #endif
+ LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_writepage, writeback_wbc_writepage)
+
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0))
++LTTNG_TRACEPOINT_EVENT(writeback_queue_io,
++ TP_PROTO(struct bdi_writeback *wb,
++ struct wb_writeback_work *work,
++ unsigned long dirtied_before,
++ int moved),
++ TP_ARGS(wb, work, dirtied_before, moved),
++ TP_FIELDS(
++ ctf_array_text(char, name, dev_name(wb->bdi->dev), 32)
++ ctf_integer(unsigned long, older, dirtied_before)
++ ctf_integer(int, moved, moved)
++ )
++)
++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
+ LTTNG_TRACEPOINT_EVENT(writeback_queue_io,
+ TP_PROTO(struct bdi_writeback *wb,
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
+ struct wb_writeback_work *work,
+-#else
+- unsigned long *older_than_this,
+-#endif
+ int moved),
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
+ TP_ARGS(wb, work, moved),
+-#else
++ TP_FIELDS(
++ ctf_array_text(char, name, dev_name(wb->bdi->dev), 32)
++ ctf_integer(int, moved, moved)
++ )
++)
++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
++LTTNG_TRACEPOINT_EVENT(writeback_queue_io,
++ TP_PROTO(struct bdi_writeback *wb,
++ unsigned long *older_than_this,
++ int moved),
+ TP_ARGS(wb, older_than_this, moved),
+-#endif
+ TP_FIELDS(
+ ctf_array_text(char, name, dev_name(wb->bdi->dev), 32)
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
+-#else
+ ctf_integer(unsigned long, older,
+ older_than_this ? *older_than_this : 0)
+ ctf_integer(long, age,
+ older_than_this ?
+ (jiffies - *older_than_this) * 1000 / HZ
+ : -1)
+-#endif
+ ctf_integer(int, moved, moved)
+ )
+ )
++#endif
+
+ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,8,0))
+ LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state,
+@@ -460,7 +474,7 @@ LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state,
+ ctf_integer(unsigned long, dirty_limit, global_dirty_limit)
+ )
+ )
+-#else
++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
+ LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state,
+
+ writeback_global_dirty_state,
+@@ -485,7 +499,6 @@ LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state,
+ )
+ )
+ #endif
+-#endif
+
+ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
+
+--
+2.19.1
+
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0009-fix-version-ranges-for-ext4_discard_preallocations-a.patch b/meta/recipes-kernel/lttng/lttng-modules/0009-fix-version-ranges-for-ext4_discard_preallocations-a.patch
new file mode 100644
index 0000000000..346e1d63ad
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0009-fix-version-ranges-for-ext4_discard_preallocations-a.patch
@@ -0,0 +1,52 @@
+From b74b25f349e92d7b5bdc8684e406d6a889f13773 Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Fri, 4 Sep 2020 11:52:51 -0400
+Subject: [PATCH 09/10] fix: version ranges for ext4_discard_preallocations and
+ writeback_queue_io
+
+Upstream-Status: Backport
+
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Change-Id: Id4fa53cb2e713cbda651e1a75deed91013115592
+---
+ instrumentation/events/lttng-module/ext4.h | 3 ++-
+ instrumentation/events/lttng-module/writeback.h | 8 +++++++-
+ 2 files changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/instrumentation/events/lttng-module/ext4.h b/instrumentation/events/lttng-module/ext4.h
+index 4476abb..b172c8d 100644
+--- a/instrumentation/events/lttng-module/ext4.h
++++ b/instrumentation/events/lttng-module/ext4.h
+@@ -460,7 +460,8 @@ LTTNG_TRACEPOINT_EVENT(ext4_mb_release_group_pa,
+ )
+ #endif
+
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0))
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0) || \
++ LTTNG_KERNEL_RANGE(5,8,6, 5,9,0))
+ LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations,
+ TP_PROTO(struct inode *inode, unsigned int len, unsigned int needed),
+
+diff --git a/instrumentation/events/lttng-module/writeback.h b/instrumentation/events/lttng-module/writeback.h
+index e9018dd..09637d7 100644
+--- a/instrumentation/events/lttng-module/writeback.h
++++ b/instrumentation/events/lttng-module/writeback.h
+@@ -384,7 +384,13 @@ LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_balance_dirty_wait, writeback_wbc_balanc
+ #endif
+ LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_writepage, writeback_wbc_writepage)
+
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0))
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0) || \
++ LTTNG_KERNEL_RANGE(5,8,6, 5,9,0) || \
++ LTTNG_KERNEL_RANGE(5,4,62, 5,5,0) || \
++ LTTNG_KERNEL_RANGE(4,19,143, 4,20,0) || \
++ LTTNG_KERNEL_RANGE(4,14,196, 4,15,0) || \
++ LTTNG_KERNEL_RANGE(4,9,235, 4,10,0) || \
++ LTTNG_KERNEL_RANGE(4,4,235, 4,5,0))
+ LTTNG_TRACEPOINT_EVENT(writeback_queue_io,
+ TP_PROTO(struct bdi_writeback *wb,
+ struct wb_writeback_work *work,
+--
+2.19.1
+
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0010-Fix-system-call-filter-table.patch b/meta/recipes-kernel/lttng/lttng-modules/0010-Fix-system-call-filter-table.patch
new file mode 100644
index 0000000000..a16750ddb3
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0010-Fix-system-call-filter-table.patch
@@ -0,0 +1,918 @@
+From ad594e3a953db1b0c3c059fde45b5a5494f6be78 Mon Sep 17 00:00:00 2001
+From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Date: Tue, 28 Jan 2020 16:02:44 -0500
+Subject: [PATCH 10/10] Fix: system call filter table
+
+The system call filter table has effectively been unused for a long
+time due to system call name prefix mismatch. This means the overhead of
+selective system call tracing was larger than it should have been because
+the event payload preparation would be done for all system calls as soon
+as a single system call is traced.
+
+However, fixing this underlying issue unearths several issues that crept
+unnoticed when the "enabler" concept was introduced (after the original
+implementation of the system call filter table).
+
+Here is a list of the issues which are resolved here:
+
+- Split lttng_syscalls_unregister into an unregister and destroy
+ function, thus awaiting for a grace period (and therefore quiescence
+ of the users) after unregistering the system call tracepoints before
+ freeing the system call filter data structures. This effectively fixes
+ a use-after-free.
+
+- The state for enabling "all" system calls vs enabling specific system
+ calls (and sequences of enable-disable) was incorrect with respect to
+ the "enablers" semantic. This is solved by always tracking the
+ bitmap of enabled system calls, and keeping this bitmap even when
+ enabling all system calls. The sc_filter is now always allocated
+ before system call tracing is registered to tracepoints, which means
+ it does not need to be RCU dereferenced anymore.
+
+Padding fields in the ABI are reserved to select whether to:
+
+- Trace either native or compat system call (or both, which is the
+ behavior currently implemented),
+- Trace either system call entry or exit (or both, which is the
+ behavior currently implemented),
+- Select the system call to trace by name (behavior currently
+ implemented) or by system call number,
+
+Upstream-Status: Backport
+
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ lttng-abi.c | 43 ++++++
+ lttng-abi.h | 26 ++++
+ lttng-events.c | 112 +++++++++++++--
+ lttng-events.h | 31 ++++-
+ lttng-syscalls.c | 348 +++++++++++++++++++++++++----------------------
+ 5 files changed, 380 insertions(+), 180 deletions(-)
+
+diff --git a/lttng-abi.c b/lttng-abi.c
+index 64ea99d..b33879d 100644
+--- a/lttng-abi.c
++++ b/lttng-abi.c
+@@ -1264,6 +1264,46 @@ nomem:
+ return ret;
+ }
+
++static
++int lttng_abi_validate_event_param(struct lttng_kernel_event *event_param)
++{
++ /* Limit ABI to implemented features. */
++ switch (event_param->instrumentation) {
++ case LTTNG_KERNEL_SYSCALL:
++ switch (event_param->u.syscall.entryexit) {
++ case LTTNG_KERNEL_SYSCALL_ENTRYEXIT:
++ break;
++ default:
++ return -EINVAL;
++ }
++ switch (event_param->u.syscall.abi) {
++ case LTTNG_KERNEL_SYSCALL_ABI_ALL:
++ break;
++ default:
++ return -EINVAL;
++ }
++ switch (event_param->u.syscall.match) {
++ case LTTNG_SYSCALL_MATCH_NAME:
++ break;
++ default:
++ return -EINVAL;
++ }
++ break;
++
++ case LTTNG_KERNEL_TRACEPOINT: /* Fallthrough */
++ case LTTNG_KERNEL_KPROBE: /* Fallthrough */
++ case LTTNG_KERNEL_KRETPROBE: /* Fallthrough */
++ case LTTNG_KERNEL_NOOP: /* Fallthrough */
++ case LTTNG_KERNEL_UPROBE:
++ break;
++
++ case LTTNG_KERNEL_FUNCTION: /* Fallthrough */
++ default:
++ return -EINVAL;
++ }
++ return 0;
++}
++
+ static
+ int lttng_abi_create_event(struct file *channel_file,
+ struct lttng_kernel_event *event_param)
+@@ -1305,6 +1345,9 @@ int lttng_abi_create_event(struct file *channel_file,
+ ret = -EOVERFLOW;
+ goto refcount_error;
+ }
++ ret = lttng_abi_validate_event_param(event_param);
++ if (ret)
++ goto event_error;
+ if (event_param->instrumentation == LTTNG_KERNEL_TRACEPOINT
+ || event_param->instrumentation == LTTNG_KERNEL_SYSCALL) {
+ struct lttng_enabler *enabler;
+diff --git a/lttng-abi.h b/lttng-abi.h
+index 1d356ab..51d60e5 100644
+--- a/lttng-abi.h
++++ b/lttng-abi.h
+@@ -90,6 +90,31 @@ struct lttng_kernel_event_callsite {
+ } u;
+ } __attribute__((packed));
+
++enum lttng_kernel_syscall_entryexit {
++ LTTNG_KERNEL_SYSCALL_ENTRYEXIT = 0,
++ LTTNG_KERNEL_SYSCALL_ENTRY = 1, /* Not implemented. */
++ LTTNG_KERNEL_SYSCALL_EXIT = 2, /* Not implemented. */
++};
++
++enum lttng_kernel_syscall_abi {
++ LTTNG_KERNEL_SYSCALL_ABI_ALL = 0,
++ LTTNG_KERNEL_SYSCALL_ABI_NATIVE = 1, /* Not implemented. */
++ LTTNG_KERNEL_SYSCALL_ABI_COMPAT = 2, /* Not implemented. */
++};
++
++enum lttng_kernel_syscall_match {
++ LTTNG_SYSCALL_MATCH_NAME = 0,
++ LTTNG_SYSCALL_MATCH_NR = 1, /* Not implemented. */
++};
++
++struct lttng_kernel_syscall {
++ uint8_t entryexit; /* enum lttng_kernel_syscall_entryexit */
++ uint8_t abi; /* enum lttng_kernel_syscall_abi */
++ uint8_t match; /* enum lttng_kernel_syscall_match */
++ uint8_t padding;
++ uint32_t nr; /* For LTTNG_SYSCALL_MATCH_NR */
++} __attribute__((packed));
++
+ /*
+ * For syscall tracing, name = "*" means "enable all".
+ */
+@@ -106,6 +131,7 @@ struct lttng_kernel_event {
+ struct lttng_kernel_kprobe kprobe;
+ struct lttng_kernel_function_tracer ftrace;
+ struct lttng_kernel_uprobe uprobe;
++ struct lttng_kernel_syscall syscall;
+ char padding[LTTNG_KERNEL_EVENT_PADDING2];
+ } u;
+ } __attribute__((packed));
+diff --git a/lttng-events.c b/lttng-events.c
+index d719294..4c0b04a 100644
+--- a/lttng-events.c
++++ b/lttng-events.c
+@@ -201,6 +201,10 @@ void lttng_session_destroy(struct lttng_session *session)
+ WARN_ON(ret);
+ }
+ synchronize_trace(); /* Wait for in-flight events to complete */
++ list_for_each_entry(chan, &session->chan, list) {
++ ret = lttng_syscalls_destroy(chan);
++ WARN_ON(ret);
++ }
+ list_for_each_entry_safe(enabler, tmpenabler,
+ &session->enablers_head, node)
+ lttng_enabler_destroy(enabler);
+@@ -740,6 +744,28 @@ struct lttng_event *_lttng_event_create(struct lttng_channel *chan,
+ event->enabled = 0;
+ event->registered = 0;
+ event->desc = event_desc;
++ switch (event_param->u.syscall.entryexit) {
++ case LTTNG_KERNEL_SYSCALL_ENTRYEXIT:
++ ret = -EINVAL;
++ goto register_error;
++ case LTTNG_KERNEL_SYSCALL_ENTRY:
++ event->u.syscall.entryexit = LTTNG_SYSCALL_ENTRY;
++ break;
++ case LTTNG_KERNEL_SYSCALL_EXIT:
++ event->u.syscall.entryexit = LTTNG_SYSCALL_EXIT;
++ break;
++ }
++ switch (event_param->u.syscall.abi) {
++ case LTTNG_KERNEL_SYSCALL_ABI_ALL:
++ ret = -EINVAL;
++ goto register_error;
++ case LTTNG_KERNEL_SYSCALL_ABI_NATIVE:
++ event->u.syscall.abi = LTTNG_SYSCALL_ABI_NATIVE;
++ break;
++ case LTTNG_KERNEL_SYSCALL_ABI_COMPAT:
++ event->u.syscall.abi = LTTNG_SYSCALL_ABI_COMPAT;
++ break;
++ }
+ if (!event->desc) {
+ ret = -EINVAL;
+ goto register_error;
+@@ -826,8 +852,7 @@ void register_event(struct lttng_event *event)
+ event);
+ break;
+ case LTTNG_KERNEL_SYSCALL:
+- ret = lttng_syscall_filter_enable(event->chan,
+- desc->name);
++ ret = lttng_syscall_filter_enable(event->chan, event);
+ break;
+ case LTTNG_KERNEL_KPROBE:
+ case LTTNG_KERNEL_UPROBE:
+@@ -870,8 +895,7 @@ int _lttng_event_unregister(struct lttng_event *event)
+ ret = 0;
+ break;
+ case LTTNG_KERNEL_SYSCALL:
+- ret = lttng_syscall_filter_disable(event->chan,
+- desc->name);
++ ret = lttng_syscall_filter_disable(event->chan, event);
+ break;
+ case LTTNG_KERNEL_NOOP:
+ ret = 0;
+@@ -1203,39 +1227,87 @@ int lttng_desc_match_enabler(const struct lttng_event_desc *desc,
+ struct lttng_enabler *enabler)
+ {
+ const char *desc_name, *enabler_name;
++ bool compat = false, entry = false;
+
+ enabler_name = enabler->event_param.name;
+ switch (enabler->event_param.instrumentation) {
+ case LTTNG_KERNEL_TRACEPOINT:
+ desc_name = desc->name;
++ switch (enabler->type) {
++ case LTTNG_ENABLER_STAR_GLOB:
++ return lttng_match_enabler_star_glob(desc_name, enabler_name);
++ case LTTNG_ENABLER_NAME:
++ return lttng_match_enabler_name(desc_name, enabler_name);
++ default:
++ return -EINVAL;
++ }
+ break;
+ case LTTNG_KERNEL_SYSCALL:
+ desc_name = desc->name;
+- if (!strncmp(desc_name, "compat_", strlen("compat_")))
++ if (!strncmp(desc_name, "compat_", strlen("compat_"))) {
+ desc_name += strlen("compat_");
++ compat = true;
++ }
+ if (!strncmp(desc_name, "syscall_exit_",
+ strlen("syscall_exit_"))) {
+ desc_name += strlen("syscall_exit_");
+ } else if (!strncmp(desc_name, "syscall_entry_",
+ strlen("syscall_entry_"))) {
+ desc_name += strlen("syscall_entry_");
++ entry = true;
+ } else {
+ WARN_ON_ONCE(1);
+ return -EINVAL;
+ }
++ switch (enabler->event_param.u.syscall.entryexit) {
++ case LTTNG_KERNEL_SYSCALL_ENTRYEXIT:
++ break;
++ case LTTNG_KERNEL_SYSCALL_ENTRY:
++ if (!entry)
++ return 0;
++ break;
++ case LTTNG_KERNEL_SYSCALL_EXIT:
++ if (entry)
++ return 0;
++ break;
++ default:
++ return -EINVAL;
++ }
++ switch (enabler->event_param.u.syscall.abi) {
++ case LTTNG_KERNEL_SYSCALL_ABI_ALL:
++ break;
++ case LTTNG_KERNEL_SYSCALL_ABI_NATIVE:
++ if (compat)
++ return 0;
++ break;
++ case LTTNG_KERNEL_SYSCALL_ABI_COMPAT:
++ if (!compat)
++ return 0;
++ break;
++ default:
++ return -EINVAL;
++ }
++ switch (enabler->event_param.u.syscall.match) {
++ case LTTNG_SYSCALL_MATCH_NAME:
++ switch (enabler->type) {
++ case LTTNG_ENABLER_STAR_GLOB:
++ return lttng_match_enabler_star_glob(desc_name, enabler_name);
++ case LTTNG_ENABLER_NAME:
++ return lttng_match_enabler_name(desc_name, enabler_name);
++ default:
++ return -EINVAL;
++ }
++ break;
++ case LTTNG_SYSCALL_MATCH_NR:
++ return -EINVAL; /* Not implemented. */
++ default:
++ return -EINVAL;
++ }
+ break;
+ default:
+ WARN_ON_ONCE(1);
+ return -EINVAL;
+ }
+- switch (enabler->type) {
+- case LTTNG_ENABLER_STAR_GLOB:
+- return lttng_match_enabler_star_glob(desc_name, enabler_name);
+- case LTTNG_ENABLER_NAME:
+- return lttng_match_enabler_name(desc_name, enabler_name);
+- default:
+- return -EINVAL;
+- }
+ }
+
+ static
+@@ -1361,9 +1433,21 @@ void lttng_create_event_if_missing(struct lttng_enabler *enabler)
+ static
+ int lttng_enabler_ref_events(struct lttng_enabler *enabler)
+ {
+- struct lttng_session *session = enabler->chan->session;
++ struct lttng_channel *chan = enabler->chan;
++ struct lttng_session *session = chan->session;
+ struct lttng_event *event;
+
++ if (enabler->event_param.instrumentation == LTTNG_KERNEL_SYSCALL &&
++ enabler->event_param.u.syscall.entryexit == LTTNG_KERNEL_SYSCALL_ENTRYEXIT &&
++ enabler->event_param.u.syscall.abi == LTTNG_KERNEL_SYSCALL_ABI_ALL &&
++ enabler->event_param.u.syscall.match == LTTNG_SYSCALL_MATCH_NAME &&
++ !strcmp(enabler->event_param.name, "*")) {
++ if (enabler->enabled)
++ WRITE_ONCE(chan->syscall_all, 1);
++ else
++ WRITE_ONCE(chan->syscall_all, 0);
++ }
++
+ /* First ensure that probe events are created for this enabler. */
+ lttng_create_event_if_missing(enabler);
+
+diff --git a/lttng-events.h b/lttng-events.h
+index a36a312..d4d9976 100644
+--- a/lttng-events.h
++++ b/lttng-events.h
+@@ -292,6 +292,16 @@ struct lttng_uprobe_handler {
+ struct list_head node;
+ };
+
++enum lttng_syscall_entryexit {
++ LTTNG_SYSCALL_ENTRY,
++ LTTNG_SYSCALL_EXIT,
++};
++
++enum lttng_syscall_abi {
++ LTTNG_SYSCALL_ABI_NATIVE,
++ LTTNG_SYSCALL_ABI_COMPAT,
++};
++
+ /*
+ * lttng_event structure is referred to by the tracing fast path. It must be
+ * kept small.
+@@ -318,6 +328,11 @@ struct lttng_event {
+ struct inode *inode;
+ struct list_head head;
+ } uprobe;
++ struct {
++ char *syscall_name;
++ enum lttng_syscall_entryexit entryexit;
++ enum lttng_syscall_abi abi;
++ } syscall;
+ } u;
+ struct list_head list; /* Event list in session */
+ unsigned int metadata_dumped:1;
+@@ -457,10 +472,10 @@ struct lttng_channel {
+ struct lttng_syscall_filter *sc_filter;
+ int header_type; /* 0: unset, 1: compact, 2: large */
+ enum channel_type channel_type;
++ int syscall_all;
+ unsigned int metadata_dumped:1,
+ sys_enter_registered:1,
+ sys_exit_registered:1,
+- syscall_all:1,
+ tstate:1; /* Transient enable state */
+ };
+
+@@ -653,10 +668,11 @@ void lttng_clock_unref(void);
+ #if defined(CONFIG_HAVE_SYSCALL_TRACEPOINTS)
+ int lttng_syscalls_register(struct lttng_channel *chan, void *filter);
+ int lttng_syscalls_unregister(struct lttng_channel *chan);
++int lttng_syscalls_destroy(struct lttng_channel *chan);
+ int lttng_syscall_filter_enable(struct lttng_channel *chan,
+- const char *name);
++ struct lttng_event *event);
+ int lttng_syscall_filter_disable(struct lttng_channel *chan,
+- const char *name);
++ struct lttng_event *event);
+ long lttng_channel_syscall_mask(struct lttng_channel *channel,
+ struct lttng_kernel_syscall_mask __user *usyscall_mask);
+ #else
+@@ -670,14 +686,19 @@ static inline int lttng_syscalls_unregister(struct lttng_channel *chan)
+ return 0;
+ }
+
++static inline int lttng_syscalls_destroy(struct lttng_channel *chan)
++{
++ return 0;
++}
++
+ static inline int lttng_syscall_filter_enable(struct lttng_channel *chan,
+- const char *name)
++ struct lttng_event *event);
+ {
+ return -ENOSYS;
+ }
+
+ static inline int lttng_syscall_filter_disable(struct lttng_channel *chan,
+- const char *name)
++ struct lttng_event *event);
+ {
+ return -ENOSYS;
+ }
+diff --git a/lttng-syscalls.c b/lttng-syscalls.c
+index 97f1ba9..26cead6 100644
+--- a/lttng-syscalls.c
++++ b/lttng-syscalls.c
+@@ -367,8 +367,10 @@ const struct trace_syscall_entry compat_sc_exit_table[] = {
+ #undef CREATE_SYSCALL_TABLE
+
+ struct lttng_syscall_filter {
+- DECLARE_BITMAP(sc, NR_syscalls);
+- DECLARE_BITMAP(sc_compat, NR_compat_syscalls);
++ DECLARE_BITMAP(sc_entry, NR_syscalls);
++ DECLARE_BITMAP(sc_exit, NR_syscalls);
++ DECLARE_BITMAP(sc_compat_entry, NR_compat_syscalls);
++ DECLARE_BITMAP(sc_compat_exit, NR_compat_syscalls);
+ };
+
+ static void syscall_entry_unknown(struct lttng_event *event,
+@@ -391,29 +393,23 @@ void syscall_entry_probe(void *__data, struct pt_regs *regs, long id)
+ size_t table_len;
+
+ if (unlikely(in_compat_syscall())) {
+- struct lttng_syscall_filter *filter;
+-
+- filter = lttng_rcu_dereference(chan->sc_filter);
+- if (filter) {
+- if (id < 0 || id >= NR_compat_syscalls
+- || !test_bit(id, filter->sc_compat)) {
+- /* System call filtered out. */
+- return;
+- }
++ struct lttng_syscall_filter *filter = chan->sc_filter;
++
++ if (id < 0 || id >= NR_compat_syscalls
++ || (!READ_ONCE(chan->syscall_all) && !test_bit(id, filter->sc_compat_entry))) {
++ /* System call filtered out. */
++ return;
+ }
+ table = compat_sc_table;
+ table_len = ARRAY_SIZE(compat_sc_table);
+ unknown_event = chan->sc_compat_unknown;
+ } else {
+- struct lttng_syscall_filter *filter;
+-
+- filter = lttng_rcu_dereference(chan->sc_filter);
+- if (filter) {
+- if (id < 0 || id >= NR_syscalls
+- || !test_bit(id, filter->sc)) {
+- /* System call filtered out. */
+- return;
+- }
++ struct lttng_syscall_filter *filter = chan->sc_filter;
++
++ if (id < 0 || id >= NR_syscalls
++ || (!READ_ONCE(chan->syscall_all) && !test_bit(id, filter->sc_entry))) {
++ /* System call filtered out. */
++ return;
+ }
+ table = sc_table;
+ table_len = ARRAY_SIZE(sc_table);
+@@ -545,29 +541,23 @@ void syscall_exit_probe(void *__data, struct pt_regs *regs, long ret)
+
+ id = syscall_get_nr(current, regs);
+ if (unlikely(in_compat_syscall())) {
+- struct lttng_syscall_filter *filter;
+-
+- filter = lttng_rcu_dereference(chan->sc_filter);
+- if (filter) {
+- if (id < 0 || id >= NR_compat_syscalls
+- || !test_bit(id, filter->sc_compat)) {
+- /* System call filtered out. */
+- return;
+- }
++ struct lttng_syscall_filter *filter = chan->sc_filter;
++
++ if (id < 0 || id >= NR_compat_syscalls
++ || (!READ_ONCE(chan->syscall_all) && !test_bit(id, filter->sc_compat_exit))) {
++ /* System call filtered out. */
++ return;
+ }
+ table = compat_sc_exit_table;
+ table_len = ARRAY_SIZE(compat_sc_exit_table);
+ unknown_event = chan->compat_sc_exit_unknown;
+ } else {
+- struct lttng_syscall_filter *filter;
+-
+- filter = lttng_rcu_dereference(chan->sc_filter);
+- if (filter) {
+- if (id < 0 || id >= NR_syscalls
+- || !test_bit(id, filter->sc)) {
+- /* System call filtered out. */
+- return;
+- }
++ struct lttng_syscall_filter *filter = chan->sc_filter;
++
++ if (id < 0 || id >= NR_syscalls
++ || (!READ_ONCE(chan->syscall_all) && !test_bit(id, filter->sc_exit))) {
++ /* System call filtered out. */
++ return;
+ }
+ table = sc_exit_table;
+ table_len = ARRAY_SIZE(sc_exit_table);
+@@ -713,27 +703,23 @@ int fill_table(const struct trace_syscall_entry *table, size_t table_len,
+ memset(&ev, 0, sizeof(ev));
+ switch (type) {
+ case SC_TYPE_ENTRY:
+- strncpy(ev.name, SYSCALL_ENTRY_STR,
+- LTTNG_KERNEL_SYM_NAME_LEN);
++ ev.u.syscall.entryexit = LTTNG_KERNEL_SYSCALL_ENTRY;
++ ev.u.syscall.abi = LTTNG_KERNEL_SYSCALL_ABI_NATIVE;
+ break;
+ case SC_TYPE_EXIT:
+- strncpy(ev.name, SYSCALL_EXIT_STR,
+- LTTNG_KERNEL_SYM_NAME_LEN);
++ ev.u.syscall.entryexit = LTTNG_KERNEL_SYSCALL_EXIT;
++ ev.u.syscall.abi = LTTNG_KERNEL_SYSCALL_ABI_NATIVE;
+ break;
+ case SC_TYPE_COMPAT_ENTRY:
+- strncpy(ev.name, COMPAT_SYSCALL_ENTRY_STR,
+- LTTNG_KERNEL_SYM_NAME_LEN);
++ ev.u.syscall.entryexit = LTTNG_KERNEL_SYSCALL_ENTRY;
++ ev.u.syscall.abi = LTTNG_KERNEL_SYSCALL_ABI_COMPAT;
+ break;
+ case SC_TYPE_COMPAT_EXIT:
+- strncpy(ev.name, COMPAT_SYSCALL_EXIT_STR,
+- LTTNG_KERNEL_SYM_NAME_LEN);
+- break;
+- default:
+- BUG_ON(1);
++ ev.u.syscall.entryexit = LTTNG_KERNEL_SYSCALL_EXIT;
++ ev.u.syscall.abi = LTTNG_KERNEL_SYSCALL_ABI_COMPAT;
+ break;
+ }
+- strncat(ev.name, desc->name,
+- LTTNG_KERNEL_SYM_NAME_LEN - strlen(ev.name) - 1);
++ strncpy(ev.name, desc->name, LTTNG_KERNEL_SYM_NAME_LEN);
+ ev.name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0';
+ ev.instrumentation = LTTNG_KERNEL_SYSCALL;
+ chan_table[i] = _lttng_event_create(chan, &ev, filter,
+@@ -803,6 +789,8 @@ int lttng_syscalls_register(struct lttng_channel *chan, void *filter)
+ strncpy(ev.name, desc->name, LTTNG_KERNEL_SYM_NAME_LEN);
+ ev.name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0';
+ ev.instrumentation = LTTNG_KERNEL_SYSCALL;
++ ev.u.syscall.entryexit = LTTNG_KERNEL_SYSCALL_ENTRY;
++ ev.u.syscall.abi = LTTNG_KERNEL_SYSCALL_ABI_NATIVE;
+ chan->sc_unknown = _lttng_event_create(chan, &ev, filter,
+ desc,
+ ev.instrumentation);
+@@ -820,6 +808,8 @@ int lttng_syscalls_register(struct lttng_channel *chan, void *filter)
+ strncpy(ev.name, desc->name, LTTNG_KERNEL_SYM_NAME_LEN);
+ ev.name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0';
+ ev.instrumentation = LTTNG_KERNEL_SYSCALL;
++ ev.u.syscall.entryexit = LTTNG_KERNEL_SYSCALL_ENTRY;
++ ev.u.syscall.abi = LTTNG_KERNEL_SYSCALL_ABI_COMPAT;
+ chan->sc_compat_unknown = _lttng_event_create(chan, &ev, filter,
+ desc,
+ ev.instrumentation);
+@@ -837,6 +827,8 @@ int lttng_syscalls_register(struct lttng_channel *chan, void *filter)
+ strncpy(ev.name, desc->name, LTTNG_KERNEL_SYM_NAME_LEN);
+ ev.name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0';
+ ev.instrumentation = LTTNG_KERNEL_SYSCALL;
++ ev.u.syscall.entryexit = LTTNG_KERNEL_SYSCALL_EXIT;
++ ev.u.syscall.abi = LTTNG_KERNEL_SYSCALL_ABI_COMPAT;
+ chan->compat_sc_exit_unknown = _lttng_event_create(chan, &ev,
+ filter, desc,
+ ev.instrumentation);
+@@ -854,6 +846,8 @@ int lttng_syscalls_register(struct lttng_channel *chan, void *filter)
+ strncpy(ev.name, desc->name, LTTNG_KERNEL_SYM_NAME_LEN);
+ ev.name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0';
+ ev.instrumentation = LTTNG_KERNEL_SYSCALL;
++ ev.u.syscall.entryexit = LTTNG_KERNEL_SYSCALL_EXIT;
++ ev.u.syscall.abi = LTTNG_KERNEL_SYSCALL_ABI_NATIVE;
+ chan->sc_exit_unknown = _lttng_event_create(chan, &ev, filter,
+ desc, ev.instrumentation);
+ WARN_ON_ONCE(!chan->sc_exit_unknown);
+@@ -883,6 +877,14 @@ int lttng_syscalls_register(struct lttng_channel *chan, void *filter)
+ if (ret)
+ return ret;
+ #endif
++
++ if (!chan->sc_filter) {
++ chan->sc_filter = kzalloc(sizeof(struct lttng_syscall_filter),
++ GFP_KERNEL);
++ if (!chan->sc_filter)
++ return -ENOMEM;
++ }
++
+ if (!chan->sys_enter_registered) {
+ ret = lttng_wrapper_tracepoint_probe_register("sys_enter",
+ (void *) syscall_entry_probe, chan);
+@@ -930,7 +932,11 @@ int lttng_syscalls_unregister(struct lttng_channel *chan)
+ return ret;
+ chan->sys_exit_registered = 0;
+ }
+- /* lttng_event destroy will be performed by lttng_session_destroy() */
++ return 0;
++}
++
++int lttng_syscalls_destroy(struct lttng_channel *chan)
++{
+ kfree(chan->sc_table);
+ kfree(chan->sc_exit_table);
+ #ifdef CONFIG_COMPAT
+@@ -993,136 +999,150 @@ uint32_t get_sc_tables_len(void)
+ return ARRAY_SIZE(sc_table) + ARRAY_SIZE(compat_sc_table);
+ }
+
+-int lttng_syscall_filter_enable(struct lttng_channel *chan,
+- const char *name)
++static
++const char *get_syscall_name(struct lttng_event *event)
+ {
+- int syscall_nr, compat_syscall_nr, ret;
+- struct lttng_syscall_filter *filter;
++ size_t prefix_len = 0;
+
+- WARN_ON_ONCE(!chan->sc_table);
++ WARN_ON_ONCE(event->instrumentation != LTTNG_KERNEL_SYSCALL);
+
+- if (!name) {
+- /* Enable all system calls by removing filter */
+- if (chan->sc_filter) {
+- filter = chan->sc_filter;
+- rcu_assign_pointer(chan->sc_filter, NULL);
+- synchronize_trace();
+- kfree(filter);
++ switch (event->u.syscall.entryexit) {
++ case LTTNG_SYSCALL_ENTRY:
++ switch (event->u.syscall.abi) {
++ case LTTNG_SYSCALL_ABI_NATIVE:
++ prefix_len = strlen(SYSCALL_ENTRY_STR);
++ break;
++ case LTTNG_SYSCALL_ABI_COMPAT:
++ prefix_len = strlen(COMPAT_SYSCALL_ENTRY_STR);
++ break;
+ }
+- chan->syscall_all = 1;
+- return 0;
+- }
+-
+- if (!chan->sc_filter) {
+- if (chan->syscall_all) {
+- /*
+- * All syscalls are already enabled.
+- */
+- return -EEXIST;
++ break;
++ case LTTNG_SYSCALL_EXIT:
++ switch (event->u.syscall.abi) {
++ case LTTNG_SYSCALL_ABI_NATIVE:
++ prefix_len = strlen(SYSCALL_EXIT_STR);
++ break;
++ case LTTNG_SYSCALL_ABI_COMPAT:
++ prefix_len = strlen(COMPAT_SYSCALL_EXIT_STR);
++ break;
+ }
+- filter = kzalloc(sizeof(struct lttng_syscall_filter),
+- GFP_KERNEL);
+- if (!filter)
+- return -ENOMEM;
+- } else {
+- filter = chan->sc_filter;
++ break;
+ }
+- syscall_nr = get_syscall_nr(name);
+- compat_syscall_nr = get_compat_syscall_nr(name);
+- if (syscall_nr < 0 && compat_syscall_nr < 0) {
+- ret = -ENOENT;
+- goto error;
++ WARN_ON_ONCE(prefix_len == 0);
++ return event->desc->name + prefix_len;
++}
++
++int lttng_syscall_filter_enable(struct lttng_channel *chan,
++ struct lttng_event *event)
++{
++ struct lttng_syscall_filter *filter = chan->sc_filter;
++ const char *syscall_name;
++ unsigned long *bitmap;
++ int syscall_nr;
++
++ WARN_ON_ONCE(!chan->sc_table);
++
++ syscall_name = get_syscall_name(event);
++
++ switch (event->u.syscall.abi) {
++ case LTTNG_SYSCALL_ABI_NATIVE:
++ syscall_nr = get_syscall_nr(syscall_name);
++ break;
++ case LTTNG_SYSCALL_ABI_COMPAT:
++ syscall_nr = get_compat_syscall_nr(syscall_name);
++ break;
++ default:
++ return -EINVAL;
+ }
+- if (syscall_nr >= 0) {
+- if (test_bit(syscall_nr, filter->sc)) {
+- ret = -EEXIST;
+- goto error;
++ if (syscall_nr < 0)
++ return -ENOENT;
++
++
++ switch (event->u.syscall.entryexit) {
++ case LTTNG_SYSCALL_ENTRY:
++ switch (event->u.syscall.abi) {
++ case LTTNG_SYSCALL_ABI_NATIVE:
++ bitmap = filter->sc_entry;
++ break;
++ case LTTNG_SYSCALL_ABI_COMPAT:
++ bitmap = filter->sc_compat_entry;
++ break;
+ }
+- bitmap_set(filter->sc, syscall_nr, 1);
+- }
+- if (compat_syscall_nr >= 0) {
+- if (test_bit(compat_syscall_nr, filter->sc_compat)) {
+- ret = -EEXIST;
+- goto error;
++ break;
++ case LTTNG_SYSCALL_EXIT:
++ switch (event->u.syscall.abi) {
++ case LTTNG_SYSCALL_ABI_NATIVE:
++ bitmap = filter->sc_exit;
++ break;
++ case LTTNG_SYSCALL_ABI_COMPAT:
++ bitmap = filter->sc_compat_exit;
++ break;
+ }
+- bitmap_set(filter->sc_compat, compat_syscall_nr, 1);
++ break;
++ default:
++ return -EINVAL;
+ }
+- if (!chan->sc_filter)
+- rcu_assign_pointer(chan->sc_filter, filter);
++ if (test_bit(syscall_nr, bitmap))
++ return -EEXIST;
++ bitmap_set(bitmap, syscall_nr, 1);
+ return 0;
+-
+-error:
+- if (!chan->sc_filter)
+- kfree(filter);
+- return ret;
+ }
+
+ int lttng_syscall_filter_disable(struct lttng_channel *chan,
+- const char *name)
++ struct lttng_event *event)
+ {
+- int syscall_nr, compat_syscall_nr, ret;
+- struct lttng_syscall_filter *filter;
++ struct lttng_syscall_filter *filter = chan->sc_filter;
++ const char *syscall_name;
++ unsigned long *bitmap;
++ int syscall_nr;
+
+ WARN_ON_ONCE(!chan->sc_table);
+
+- if (!chan->sc_filter) {
+- if (!chan->syscall_all)
+- return -EEXIST;
+- filter = kzalloc(sizeof(struct lttng_syscall_filter),
+- GFP_KERNEL);
+- if (!filter)
+- return -ENOMEM;
+- /* Trace all system calls, then apply disable. */
+- bitmap_set(filter->sc, 0, NR_syscalls);
+- bitmap_set(filter->sc_compat, 0, NR_compat_syscalls);
+- } else {
+- filter = chan->sc_filter;
++ syscall_name = get_syscall_name(event);
++
++ switch (event->u.syscall.abi) {
++ case LTTNG_SYSCALL_ABI_NATIVE:
++ syscall_nr = get_syscall_nr(syscall_name);
++ break;
++ case LTTNG_SYSCALL_ABI_COMPAT:
++ syscall_nr = get_compat_syscall_nr(syscall_name);
++ break;
++ default:
++ return -EINVAL;
+ }
++ if (syscall_nr < 0)
++ return -ENOENT;
+
+- if (!name) {
+- /* Fail if all syscalls are already disabled. */
+- if (bitmap_empty(filter->sc, NR_syscalls)
+- && bitmap_empty(filter->sc_compat,
+- NR_compat_syscalls)) {
+- ret = -EEXIST;
+- goto error;
+- }
+
+- /* Disable all system calls */
+- bitmap_clear(filter->sc, 0, NR_syscalls);
+- bitmap_clear(filter->sc_compat, 0, NR_compat_syscalls);
+- goto apply_filter;
+- }
+- syscall_nr = get_syscall_nr(name);
+- compat_syscall_nr = get_compat_syscall_nr(name);
+- if (syscall_nr < 0 && compat_syscall_nr < 0) {
+- ret = -ENOENT;
+- goto error;
+- }
+- if (syscall_nr >= 0) {
+- if (!test_bit(syscall_nr, filter->sc)) {
+- ret = -EEXIST;
+- goto error;
++ switch (event->u.syscall.entryexit) {
++ case LTTNG_SYSCALL_ENTRY:
++ switch (event->u.syscall.abi) {
++ case LTTNG_SYSCALL_ABI_NATIVE:
++ bitmap = filter->sc_entry;
++ break;
++ case LTTNG_SYSCALL_ABI_COMPAT:
++ bitmap = filter->sc_compat_entry;
++ break;
+ }
+- bitmap_clear(filter->sc, syscall_nr, 1);
+- }
+- if (compat_syscall_nr >= 0) {
+- if (!test_bit(compat_syscall_nr, filter->sc_compat)) {
+- ret = -EEXIST;
+- goto error;
++ break;
++ case LTTNG_SYSCALL_EXIT:
++ switch (event->u.syscall.abi) {
++ case LTTNG_SYSCALL_ABI_NATIVE:
++ bitmap = filter->sc_exit;
++ break;
++ case LTTNG_SYSCALL_ABI_COMPAT:
++ bitmap = filter->sc_compat_exit;
++ break;
+ }
+- bitmap_clear(filter->sc_compat, compat_syscall_nr, 1);
++ break;
++ default:
++ return -EINVAL;
+ }
+-apply_filter:
+- if (!chan->sc_filter)
+- rcu_assign_pointer(chan->sc_filter, filter);
+- chan->syscall_all = 0;
+- return 0;
++ if (!test_bit(syscall_nr, bitmap))
++ return -EEXIST;
++ bitmap_clear(bitmap, syscall_nr, 1);
+
+-error:
+- if (!chan->sc_filter)
+- kfree(filter);
+- return ret;
++ return 0;
+ }
+
+ static
+@@ -1236,6 +1256,9 @@ const struct file_operations lttng_syscall_list_fops = {
+ .release = seq_release,
+ };
+
++/*
++ * A syscall is enabled if it is traced for either entry or exit.
++ */
+ long lttng_channel_syscall_mask(struct lttng_channel *channel,
+ struct lttng_kernel_syscall_mask __user *usyscall_mask)
+ {
+@@ -1262,8 +1285,9 @@ long lttng_channel_syscall_mask(struct lttng_channel *channel,
+ char state;
+
+ if (channel->sc_table) {
+- if (filter)
+- state = test_bit(bit, filter->sc);
++ if (!READ_ONCE(channel->syscall_all) && filter)
++ state = test_bit(bit, filter->sc_entry)
++ || test_bit(bit, filter->sc_exit);
+ else
+ state = 1;
+ } else {
+@@ -1275,9 +1299,11 @@ long lttng_channel_syscall_mask(struct lttng_channel *channel,
+ char state;
+
+ if (channel->compat_sc_table) {
+- if (filter)
++ if (!READ_ONCE(channel->syscall_all) && filter)
+ state = test_bit(bit - ARRAY_SIZE(sc_table),
+- filter->sc_compat);
++ filter->sc_compat_entry)
++ || test_bit(bit - ARRAY_SIZE(sc_table),
++ filter->sc_compat_exit);
+ else
+ state = 1;
+ } else {
+--
+2.19.1
+
diff --git a/meta/recipes-kernel/lttng/lttng-modules_2.11.1.bb b/meta/recipes-kernel/lttng/lttng-modules_2.12.2.bb
index c833ff7009..e36b327a08 100644
--- a/meta/recipes-kernel/lttng/lttng-modules_2.11.1.bb
+++ b/meta/recipes-kernel/lttng/lttng-modules_2.12.2.bb
@@ -6,15 +6,24 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=3f882d431dc0f32f1f44c0707aa41128"
inherit module
-COMPATIBLE_HOST = '(x86_64|i.86|powerpc|aarch64|mips|nios2|arm|riscv).*-linux'
+include lttng-platforms.inc
SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \
file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \
file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \
+ file://0001-Kconfig-fix-dependency-issue-when-building-in-tree-w.patch \
+ file://0002-fix-Move-mmutrace.h-into-the-mmu-sub-directory-v5.9.patch \
+ file://0003-fix-KVM-x86-mmu-Make-kvm_mmu_page-definition-and-acc.patch \
+ file://0004-fix-ext4-limit-the-length-of-per-inode-prealloc-list.patch \
+ file://0005-fix-ext4-indicate-via-a-block-bitmap-read-is-prefetc.patch \
+ file://0006-fix-removal-of-smp_-read_barrier_depends-v5.9.patch \
+ file://0007-fix-writeback-Drop-I_DIRTY_TIME_EXPIRE-v5.9.patch \
+ file://0008-fix-writeback-Fix-sync-livelock-due-to-b_dirty_time-.patch \
+ file://0009-fix-version-ranges-for-ext4_discard_preallocations-a.patch \
+ file://0010-Fix-system-call-filter-table.patch \
"
-SRC_URI[md5sum] = "0d964723c8765b39835e5e6efc60a604"
-SRC_URI[sha256sum] = "d3e5648937e59dee983ef844f9316c55e9961f9dc8515b9260c473bbb70696c1"
+SRC_URI[sha256sum] = "df50bc3bd58679705714f17721acf619a8b0cedc694f8a97052aa5099626feca"
export INSTALL_MOD_DIR="kernel/lttng-modules"
@@ -33,11 +42,11 @@ python do_package_prepend() {
BBCLASSEXTEND = "devupstream:target"
LIC_FILES_CHKSUM_class-devupstream = "file://LICENSE;md5=3f882d431dc0f32f1f44c0707aa41128"
DEFAULT_PREFERENCE_class-devupstream = "-1"
-SRC_URI_class-devupstream = "git://git.lttng.org/lttng-modules;branch=stable-2.11 \
+SRC_URI_class-devupstream = "git://git.lttng.org/lttng-modules;branch=stable-2.12 \
file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \
file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \
"
-SRCREV_class-devupstream = "6ad0e68b43c3e52fcb3d47c4d823a7b84aeb443a"
-PV_class-devupstream = "2.11.1+git${SRCPV}"
+SRCREV_class-devupstream = "ad594e3a953db1b0c3c059fde45b5a5494f6be78"
+PV_class-devupstream = "2.12.2+git${SRCPV}"
S_class-devupstream = "${WORKDIR}/git"
SRCREV_FORMAT ?= "lttng_git"
diff --git a/meta/recipes-kernel/lttng/lttng-platforms.inc b/meta/recipes-kernel/lttng/lttng-platforms.inc
new file mode 100644
index 0000000000..aa8220bbb4
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-platforms.inc
@@ -0,0 +1,17 @@
+#
+# Whether the platform supports kernel tracing
+#
+LTTNGMODULES = "lttng-modules"
+LTTNGMODULES_arc = ""
+LTTNGMODULES_riscv64 = ""
+
+COMPATIBLE_HOST_riscv64_pn-lttng-modules = "null"
+COMPATIBLE_HOST_arc_pn-lttng-modules = "null"
+
+# Whether the platform supports userspace tracing
+# lttng-ust uses sched_getcpu() which is not there on for some platforms.
+LTTNGUST = "lttng-ust"
+LTTNGUST_arc = ""
+
+COMPATIBLE_HOST_arc_pn-lttng-ust = "null"
+
diff --git a/meta/recipes-kernel/lttng/lttng-tools/0001-tests-regression-disable-the-tools-live-tests.patch b/meta/recipes-kernel/lttng/lttng-tools/0001-tests-regression-disable-the-tools-live-tests.patch
index a558a0993f..f2c14ecc94 100644
--- a/meta/recipes-kernel/lttng/lttng-tools/0001-tests-regression-disable-the-tools-live-tests.patch
+++ b/meta/recipes-kernel/lttng/lttng-tools/0001-tests-regression-disable-the-tools-live-tests.patch
@@ -1,4 +1,4 @@
-From 5f0ef3e007ed83c1ce7ae817308e5942decc1230 Mon Sep 17 00:00:00 2001
+From c69b68e5c03f1d260025fb1dd9ab7345e31e15ef Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Fri, 24 Jan 2020 18:03:25 +0100
Subject: [PATCH] tests/regression: disable the tools/live tests
@@ -10,14 +10,14 @@ https://bugs.lttng.org/issues/1217
Upstream-Status: Inappropriate [upstream is working on a real fix]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
- tests/regression/Makefile.am | 3 ---
- 1 file changed, 3 deletions(-)
+ tests/regression/Makefile.am | 4 ----
+ 1 file changed, 4 deletions(-)
diff --git a/tests/regression/Makefile.am b/tests/regression/Makefile.am
-index 73eb9f7..92fc18f 100644
+index 73eb9f7..b92bdbd 100644
--- a/tests/regression/Makefile.am
+++ b/tests/regression/Makefile.am
-@@ -9,9 +9,6 @@ TESTS = tools/filtering/test_invalid_filter \
+@@ -9,14 +9,10 @@ TESTS = tools/filtering/test_invalid_filter \
tools/filtering/test_valid_filter \
tools/streaming/test_ust \
tools/health/test_thread_ok \
@@ -27,3 +27,8 @@ index 73eb9f7..92fc18f 100644
tools/tracefile-limits/test_tracefile_count \
tools/tracefile-limits/test_tracefile_size \
tools/exclusion/test_exclusion \
+ tools/snapshots/test_ust_fast \
+- tools/snapshots/test_ust_streaming \
+ tools/save-load/test_save \
+ tools/save-load/test_load \
+ tools/save-load/test_autoload \
diff --git a/meta/recipes-kernel/lttng/lttng-tools/x32.patch b/meta/recipes-kernel/lttng/lttng-tools/x32.patch
deleted file mode 100644
index 42cebf94ac..0000000000
--- a/meta/recipes-kernel/lttng/lttng-tools/x32.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Fix build for x32
-
-Signed-off-by: Christopher Larson <chris_larson@mentor.com>
-
-Fix build error of src/common/utils.c for x32.
-
-Upstream-Status: Submitted [https://github.com/lttng/lttng-tools/pull/150]
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
-
-diff --git a/src/bin/lttng/utils.c b/src/bin/lttng/utils.c
-index 0e96ef0c..5c79c8c7 100644
---- a/src/bin/lttng/utils.c
-+++ b/src/bin/lttng/utils.c
-@@ -158,7 +158,7 @@ unsigned int fls_u32(uint32_t x)
- #define HAS_FLS_U32
- #endif
-
--#if defined(__x86_64)
-+#if defined(__x86_64) && !defined(__ILP32__)
- static inline
- unsigned int fls_u64(uint64_t x)
- {
-diff --git a/src/common/utils.c b/src/common/utils.c
-index 08139e5e..3c389981 100644
---- a/src/common/utils.c
-+++ b/src/common/utils.c
-@@ -1223,7 +1223,7 @@ static inline unsigned int fls_u32(uint32_t x)
- #define HAS_FLS_U32
- #endif
-
--#if defined(__x86_64)
-+#if defined(__x86_64) && !defined(__ILP32__)
- static inline
- unsigned int fls_u64(uint64_t x)
- {
diff --git a/meta/recipes-kernel/lttng/lttng-tools_2.11.2.bb b/meta/recipes-kernel/lttng/lttng-tools_2.12.2.bb
index 36a19ec18d..0787e04d19 100644
--- a/meta/recipes-kernel/lttng/lttng-tools_2.11.2.bb
+++ b/meta/recipes-kernel/lttng/lttng-tools_2.12.2.bb
@@ -5,13 +5,16 @@ to extract program execution details from the Linux operating system \
and interpret them."
LICENSE = "GPLv2 & LGPLv2.1"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=01d7fc4496aacf37d90df90b90b0cac1 \
- file://gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://lgpl-2.1.txt;md5=0f0d71500e6a57fd24d825f33242b9ca"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=40ef17463fbd6f377db3c47b1cbaded8 \
+ file://LICENSES/GPL-2.0;md5=e68f69a54b44ba526ad7cb963e18fbce \
+ file://LICENSES/LGPL-2.1;md5=9920968d0f2ff585ce61fae30344dd95"
+
+include lttng-platforms.inc
DEPENDS = "liburcu popt libxml2 util-linux"
RDEPENDS_${PN} = "libgcc"
-RDEPENDS_${PN}-ptest += "make perl bash gawk babeltrace procps perl-module-overloading coreutils util-linux kmod lttng-modules sed python3-core"
+RRECOMMENDS_${PN} += "${LTTNGMODULES}"
+RDEPENDS_${PN}-ptest += "make perl bash gawk babeltrace procps perl-module-overloading coreutils util-linux kmod ${LTTNGMODULES} sed python3-core"
RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils"
RDEPENDS_${PN}-ptest_append_libc-musl = " musl-utils"
# babelstats.pl wants getopt-long
@@ -21,23 +24,20 @@ PYTHON_OPTION = "am_cv_python_pyexecdir='${PYTHON_SITEPACKAGES_DIR}' \
am_cv_python_pythondir='${PYTHON_SITEPACKAGES_DIR}' \
PYTHON_INCLUDE='-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}${PYTHON_ABI}' \
"
-PACKAGECONFIG ??= "lttng-ust"
+PACKAGECONFIG ??= "${LTTNGUST}"
PACKAGECONFIG[python] = "--enable-python-bindings ${PYTHON_OPTION},,python3 swig-native"
PACKAGECONFIG[lttng-ust] = "--with-lttng-ust, --without-lttng-ust, lttng-ust"
PACKAGECONFIG[kmod] = "--with-kmod, --without-kmod, kmod"
PACKAGECONFIG[manpages] = "--enable-man-pages, --disable-man-pages, asciidoc-native xmlto-native libxslt-native"
-PACKAGECONFIG_remove_arc = "lttng-ust"
SRC_URI = "https://lttng.org/files/lttng-tools/lttng-tools-${PV}.tar.bz2 \
- file://x32.patch \
file://0001-tests-do-not-strip-a-helper-library.patch \
file://run-ptest \
file://lttng-sessiond.service \
file://0001-tests-regression-disable-the-tools-live-tests.patch \
"
-SRC_URI[md5sum] = "68ed78f7fa4235477ea577e48b3cd245"
-SRC_URI[sha256sum] = "936477305b25f65c5dd22db9161287d30a309ce868b6180857b1fd1fb5e6a56b"
+SRC_URI[sha256sum] = "9ed9161795ff023b076f9f95afaa4f1f822ec42495c0fa04c586ab8fa74e84f1"
inherit autotools ptest pkgconfig useradd python3-dir manpages systemd
@@ -71,7 +71,7 @@ do_install_ptest () {
install -D "${B}/$f" "${D}${PTEST_PATH}/$f"
done
- for f in config/tap-driver.sh config/test-driver src/common/config/session.xsd src/common/mi-lttng-3.0.xsd; do
+ for f in config/tap-driver.sh config/test-driver src/common/config/session.xsd src/common/mi-lttng-4.0.xsd; do
install -D "${S}/$f" "${D}${PTEST_PATH}/$f"
done
diff --git a/meta/recipes-kernel/lttng/lttng-ust_2.11.0.bb b/meta/recipes-kernel/lttng/lttng-ust_2.12.0.bb
index 0e03a31652..67a4307c7b 100644
--- a/meta/recipes-kernel/lttng/lttng-ust_2.11.0.bb
+++ b/meta/recipes-kernel/lttng/lttng-ust_2.12.0.bb
@@ -15,6 +15,8 @@ PYTHON_OPTION = "am_cv_python_pyexecdir='${PYTHON_SITEPACKAGES_DIR}' \
inherit autotools lib_package manpages python3native
+include lttng-platforms.inc
+
EXTRA_OECONF = "--disable-numa"
DEPENDS = "liburcu util-linux"
@@ -31,8 +33,8 @@ SRC_URI = "https://lttng.org/files/lttng-ust/lttng-ust-${PV}.tar.bz2 \
file://0001-python-lttngust-Makefile.am-Add-install-lib-to-setup.patch \
"
-SRC_URI[md5sum] = "99823cfeb76562d753ffe67880e9cc59"
-SRC_URI[sha256sum] = "683280cfe5e12021e64c32cef9eeb0128f1f23dec32ba28adb5a2074be37c4d8"
+SRC_URI[md5sum] = "3bf4a04c305271d13cf6596c4e7b9b3c"
+SRC_URI[sha256sum] = "1983edb525f3f27e3494088d8d5389b4c71af66bbfe63c6f1df2ad95aa44a528"
CVE_PRODUCT = "ust"
diff --git a/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb b/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb
index 460e05a445..1ab248fed5 100644
--- a/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb
+++ b/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb
@@ -12,16 +12,21 @@ S = "${WORKDIR}"
do_configure[depends] += "virtual/kernel:do_shared_workdir openssl-native:do_populate_sysroot"
do_compile[depends] += "virtual/kernel:do_compile_kernelmodules"
+RDEPENDS_${PN}-dev = ""
+
DEPENDS += "bc-native bison-native"
+DEPENDS += "gmp-native"
EXTRA_OEMAKE = " HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}""
+EXTRA_OEMAKE += " HOSTCXX="${BUILD_CXX} ${BUILD_CXXFLAGS} ${BUILD_LDFLAGS}""
# Build some host tools under work-shared. CC, LD, and AR are probably
# not used, but this is the historical way of invoking "make scripts".
#
do_configure() {
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
- oe_runmake CC="${KERNEL_CC}" LD="${KERNEL_LD}" AR="${KERNEL_AR}" \
- -C ${STAGING_KERNEL_DIR} O=${STAGING_KERNEL_BUILDDIR} scripts prepare
-
+ for t in prepare scripts_basic scripts; do
+ oe_runmake CC="${KERNEL_CC}" LD="${KERNEL_LD}" AR="${KERNEL_AR}" \
+ -C ${STAGING_KERNEL_DIR} O=${STAGING_KERNEL_BUILDDIR} $t
+ done
}
diff --git a/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb b/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb
index 0f3df5577b..881b7db92e 100644
--- a/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb
+++ b/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb
@@ -24,7 +24,7 @@ do_install () {
PACKAGE_WRITE_DEPS_append = " ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd-systemctl-native','',d)}"
pkg_postinst_${PN} () {
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ if type systemctl >/dev/null 2>/dev/null; then
if [ -n "$D" ]; then
OPTS="--root=$D"
fi
diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/perf.bb
index 10a5b88260..868cde7353 100644
--- a/meta/recipes-kernel/perf/perf.bb
+++ b/meta/recipes-kernel/perf/perf.bb
@@ -26,6 +26,8 @@ PACKAGECONFIG[jvmti] = ",NO_JVMTI=1"
PACKAGECONFIG[audit] = ",NO_LIBAUDIT=1,audit"
PACKAGECONFIG[manpages] = ",,xmlto-native asciidoc-native"
PACKAGECONFIG[cap] = ",,libcap"
+# Arm CoreSight
+PACKAGECONFIG[coresight] = "CORESIGHT=1,,opencsd"
# libunwind is not yet ported for some architectures
PACKAGECONFIG_remove_arc = "libunwind"
@@ -52,7 +54,7 @@ export PYTHON_SITEPACKAGES_DIR
#kernel 3.1+ supports WERROR to disable warnings as errors
export WERROR = "0"
-do_populate_lic[depends] += "virtual/kernel:do_patch"
+do_populate_lic[depends] += "virtual/kernel:do_shared_workdir"
# needed for building the tools/perf Perl binding
include ${@bb.utils.contains('PACKAGECONFIG', 'scripting', 'perf-perl.inc', '', d)}
@@ -68,6 +70,7 @@ SPDX_S = "${S}/tools/perf"
LDFLAGS="-ldl -lutil"
EXTRA_OEMAKE = '\
+ V=1 \
-C ${S}/tools/perf \
O=${B} \
CROSS_COMPILE=${TARGET_PREFIX} \
@@ -147,6 +150,7 @@ python copy_perf_source_from_kernel() {
src_dir = d.getVar("STAGING_KERNEL_DIR")
dest_dir = d.getVar("S")
bb.utils.mkdirhier(dest_dir)
+ bb.utils.prunedir(dest_dir)
for s in sources:
src = oe.path.join(src_dir, s)
dest = oe.path.join(dest_dir, s)
@@ -198,6 +202,9 @@ do_configure_prepend () {
${S}/tools/perf/Makefile.perf
sed -i -e "s,prefix='\$(DESTDIR_SQ)/usr'$,prefix='\$(DESTDIR_SQ)/usr' --install-lib='\$(DESTDIR)\$(PYTHON_SITEPACKAGES_DIR)',g" \
${S}/tools/perf/Makefile.perf
+ # backport https://github.com/torvalds/linux/commit/e4ffd066ff440a57097e9140fa9e16ceef905de8
+ sed -i -e 's,\($(Q)$(SHELL) .$(arch_errno_tbl).\) $(CC) $(arch_errno_hdr_dir),\1 $(firstword $(CC)) $(arch_errno_hdr_dir),g' \
+ ${S}/tools/perf/Makefile.perf
fi
sed -i -e "s,--root='/\$(DESTDIR_SQ)',--prefix='\$(DESTDIR_SQ)/usr' --install-lib='\$(DESTDIR)\$(PYTHON_SITEPACKAGES_DIR)',g" \
${S}/tools/perf/Makefile*
diff --git a/meta/recipes-kernel/powertop/powertop_2.10.bb b/meta/recipes-kernel/powertop/powertop_2.13.bb
index 7b7b3929b3..8c7e78fd94 100644
--- a/meta/recipes-kernel/powertop/powertop_2.10.bb
+++ b/meta/recipes-kernel/powertop/powertop_2.13.bb
@@ -2,29 +2,27 @@ SUMMARY = "Power usage tool"
DESCRIPTION = "Linux tool to diagnose issues with power consumption and power management."
HOMEPAGE = "https://01.org/powertop/"
BUGTRACKER = "https://app.devzing.com/powertopbugs/bugzilla"
-DEPENDS = "ncurses libnl pciutils"
+DEPENDS = "ncurses libnl pciutils autoconf-archive"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e"
-SRC_URI = "https://01.org/sites/default/files/downloads/powertop-v${PV}.tar.gz \
+SRC_URI = "git://github.com/fenrus75/powertop;protocol=https \
file://0001-wakeup_xxx.h-include-limits.h.patch \
"
+SRCREV = "184cee06b2d64679bae5f806fe0a218827fdde99"
-SRC_URI[md5sum] = "a69bd55901cf919cc564187402ea2c9c"
-SRC_URI[sha256sum] = "d3b7459eaba7d01c8841dd33a3b4d369416c01e9bd8951b0d88234cf18fe4a75"
+S = "${WORKDIR}/git"
-UPSTREAM_CHECK_URI = "https://01.org/powertop/downloads"
-UPSTREAM_CHECK_REGEX = "powertop-[v]?(?P<pver>\d+(\.\d+)+)\.tar"
-
-inherit autotools gettext pkgconfig
-
-S = "${WORKDIR}/${BPN}-v${PV}"
+inherit autotools gettext pkgconfig bash-completion
# we do not want libncursesw if we can
do_configure_prepend() {
# configure.ac checks for delwin() in "ncursesw ncurses" so let's drop first one
sed -i -e "s/ncursesw//g" ${S}/configure.ac
mkdir -p ${B}/src/tuning/
+ echo "${PV}" > ${S}/version-long
+ echo "${PV}" > ${S}/version-short
+ cp ${STAGING_DATADIR}/aclocal/ax_require_defined.m4 ${S}/m4/
}
inherit update-alternatives
diff --git a/meta/recipes-kernel/systemtap/systemtap_git.inc b/meta/recipes-kernel/systemtap/systemtap_git.inc
index 116e83fe0f..56fa51d61e 100644
--- a/meta/recipes-kernel/systemtap/systemtap_git.inc
+++ b/meta/recipes-kernel/systemtap/systemtap_git.inc
@@ -1,7 +1,7 @@
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-SRCREV = "044a0640985ef007c0b2fb6eaf660d9d51800cda"
-PV = "4.2"
+SRCREV = "82b8e1a07a31bf37ed05d6ebc5162b054c0be9fd"
+PV = "4.3"
SRC_URI = "git://sourceware.org/git/systemtap.git \
file://0001-Do-not-let-configure-write-a-python-location-into-th.patch \
diff --git a/meta/recipes-kernel/wireless-regdb/wireless-regdb_2019.06.03.bb b/meta/recipes-kernel/wireless-regdb/wireless-regdb_2020.04.29.bb
index 9076d94601..a5827b9ef0 100644
--- a/meta/recipes-kernel/wireless-regdb/wireless-regdb_2019.06.03.bb
+++ b/meta/recipes-kernel/wireless-regdb/wireless-regdb_2020.04.29.bb
@@ -5,8 +5,7 @@ LICENSE = "ISC"
LIC_FILES_CHKSUM = "file://LICENSE;md5=07c4f6dea3845b02a18dc00c8c87699c"
SRC_URI = "https://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz"
-SRC_URI[md5sum] = "4b5ba3f089db7fdb7b9daae6a7c1f2cb"
-SRC_URI[sha256sum] = "cd917ed86b63ce8d93947979f1f18948f03a4ac0ad89ec25227b36ac00dc54bf"
+SRC_URI[sha256sum] = "89fd031aed5977c219a71501e144375a10e7c90d1005d5d086ea7972886a2c7a"
inherit bin_package allarch
diff --git a/meta/recipes-multimedia/alsa/alsa-lib/0001-Fix-alsa-sound-.h-for-external-programs.patch b/meta/recipes-multimedia/alsa/alsa-lib/0001-Fix-alsa-sound-.h-for-external-programs.patch
deleted file mode 100644
index 890650a772..0000000000
--- a/meta/recipes-multimedia/alsa/alsa-lib/0001-Fix-alsa-sound-.h-for-external-programs.patch
+++ /dev/null
@@ -1,7104 +0,0 @@
-From ae564665ec261cf104de499b1cdda3564070fc65 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai@suse.de>
-Date: Fri, 20 Dec 2019 15:46:48 +0100
-Subject: [PATCH] Fix alsa/sound/*.h for external programs
-
-The recent update of sound/*.h to sync with the latest Linus uapi
-files broke the build of alsa-tools programs. These files used to be
-a modified version of Linux sound/* header files, so that they could
-be built without Linux headers. The special prefix like __user and
-other things were worked around there.
-
-We may do that again, but a better approach is to fix those things in
-Linux kernel uapi side, while we keep the minimal workaround in
-alsa-lib such as the __u16 and co type definitions.
-
-This patch is such an attempt, namely:
-- Keep the original $LINUX/uapi/sound/*.h in include/sound/uapi
- directory
-- The "fixes" are applied to some uapi headers, so that they don't
- contain Linux-specific prefix and use of opaque struct like
- snd_ctl_elem_id
-- The uapi headers are included indirectly from include/sound/*.h
-- Some headers have inclusion of type_compat.h for the Linux variable
- types and prefixes
-- type_compat.h tries to use <linux/types.h> when __linux__ is
- defined, instead of the own conflicting definitions
-
-The last type might need a bit more adjustment depending on the
-compiler, but it can be fixed locally without disturbing else.
-
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-
-Upstream-Status: Backport
-
-Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
-
----
- configure.ac | 3 +-
- include/sound/Makefile.am | 6 +-
- include/sound/asequencer.h | 613 +----------------
- include/sound/asoc.h | 634 +-----------------
- include/sound/asound.h | 1039 +----------------------------
- include/sound/asound_fm.h | 136 +---
- include/sound/emu10k1.h | 383 +----------
- include/sound/hdsp.h | 113 +---
- include/sound/hdspm.h | 234 +------
- include/sound/sb16_csp.h | 124 +---
- include/sound/sscape_ioctl.h | 22 +-
- include/sound/tlv.h | 118 +---
- include/sound/type_compat.h | 13 +
- include/sound/uapi/Makefile.am | 6 +
- include/sound/uapi/asequencer.h | 612 +++++++++++++++++
- include/sound/uapi/asoc.h | 633 ++++++++++++++++++
- include/sound/uapi/asound.h | 1038 ++++++++++++++++++++++++++++
- include/sound/uapi/asound_fm.h | 135 ++++
- include/sound/uapi/emu10k1.h | 395 +++++++++++
- include/sound/uapi/hdsp.h | 109 +++
- include/sound/uapi/hdspm.h | 230 +++++++
- include/sound/uapi/sb16_csp.h | 123 ++++
- include/sound/uapi/sscape_ioctl.h | 21 +
- include/sound/uapi/tlv.h | 117 ++++
- src/topology/tplg_local.h | 3 +-
- 25 files changed, 3452 insertions(+), 3408 deletions(-)
- create mode 100644 include/sound/uapi/Makefile.am
- create mode 100644 include/sound/uapi/asequencer.h
- create mode 100644 include/sound/uapi/asoc.h
- create mode 100644 include/sound/uapi/asound.h
- create mode 100644 include/sound/uapi/asound_fm.h
- create mode 100644 include/sound/uapi/emu10k1.h
- create mode 100644 include/sound/uapi/hdsp.h
- create mode 100644 include/sound/uapi/hdspm.h
- create mode 100644 include/sound/uapi/sb16_csp.h
- create mode 100644 include/sound/uapi/sscape_ioctl.h
- create mode 100644 include/sound/uapi/tlv.h
-
-diff --git a/configure.ac b/configure.ac
-index 119ef600..886f87bc 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -707,7 +707,8 @@ if test ! -L "$srcdir"/include/alsa ; then
- fi
-
- AC_OUTPUT(Makefile doc/Makefile doc/pictures/Makefile doc/doxygen.cfg \
-- include/Makefile include/sound/Makefile src/Versions src/Makefile \
-+ include/Makefile include/sound/Makefile include/sound/uapi/Makefile \
-+ src/Versions src/Makefile \
- src/control/Makefile src/mixer/Makefile \
- src/pcm/Makefile src/pcm/scopes/Makefile \
- src/rawmidi/Makefile src/timer/Makefile \
-diff --git a/include/sound/Makefile.am b/include/sound/Makefile.am
-index 99c42211..ccc7d273 100644
---- a/include/sound/Makefile.am
-+++ b/include/sound/Makefile.am
-@@ -1,7 +1,9 @@
-+SUBDIRS = uapi
-+
- alsasoundincludedir = ${includedir}/alsa/sound
-
- alsasoundinclude_HEADERS = asound_fm.h hdsp.h hdspm.h sb16_csp.h \
-- sscape_ioctl.h emu10k1.h type_compat.h \
-- asoc.h tlv.h
-+ sscape_ioctl.h emu10k1.h asoc.h tlv.h \
-+ type_compat.h
-
- noinst_HEADERS = asound.h asequencer.h
-diff --git a/include/sound/asequencer.h b/include/sound/asequencer.h
-index a75e14ed..e539a77e 100644
---- a/include/sound/asequencer.h
-+++ b/include/sound/asequencer.h
-@@ -1,612 +1 @@
--/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
--/*
-- * Main header file for the ALSA sequencer
-- * Copyright (c) 1998-1999 by Frank van de Pol <fvdpol@coil.demon.nl>
-- * (c) 1998-1999 by Jaroslav Kysela <perex@perex.cz>
-- *
-- *
-- * 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 _UAPI__SOUND_ASEQUENCER_H
--#define _UAPI__SOUND_ASEQUENCER_H
--
--#include <sound/asound.h>
--
--/** version of the sequencer */
--#define SNDRV_SEQ_VERSION SNDRV_PROTOCOL_VERSION(1, 0, 2)
--
--/**
-- * definition of sequencer event types
-- */
--
--/** system messages
-- * event data type = #snd_seq_result
-- */
--#define SNDRV_SEQ_EVENT_SYSTEM 0
--#define SNDRV_SEQ_EVENT_RESULT 1
--
--/** note messages (channel specific)
-- * event data type = #snd_seq_ev_note
-- */
--#define SNDRV_SEQ_EVENT_NOTE 5
--#define SNDRV_SEQ_EVENT_NOTEON 6
--#define SNDRV_SEQ_EVENT_NOTEOFF 7
--#define SNDRV_SEQ_EVENT_KEYPRESS 8
--
--/** control messages (channel specific)
-- * event data type = #snd_seq_ev_ctrl
-- */
--#define SNDRV_SEQ_EVENT_CONTROLLER 10
--#define SNDRV_SEQ_EVENT_PGMCHANGE 11
--#define SNDRV_SEQ_EVENT_CHANPRESS 12
--#define SNDRV_SEQ_EVENT_PITCHBEND 13 /**< from -8192 to 8191 */
--#define SNDRV_SEQ_EVENT_CONTROL14 14 /**< 14 bit controller value */
--#define SNDRV_SEQ_EVENT_NONREGPARAM 15 /**< 14 bit NRPN address + 14 bit unsigned value */
--#define SNDRV_SEQ_EVENT_REGPARAM 16 /**< 14 bit RPN address + 14 bit unsigned value */
--
--/** synchronisation messages
-- * event data type = #snd_seq_ev_ctrl
-- */
--#define SNDRV_SEQ_EVENT_SONGPOS 20 /* Song Position Pointer with LSB and MSB values */
--#define SNDRV_SEQ_EVENT_SONGSEL 21 /* Song Select with song ID number */
--#define SNDRV_SEQ_EVENT_QFRAME 22 /* midi time code quarter frame */
--#define SNDRV_SEQ_EVENT_TIMESIGN 23 /* SMF Time Signature event */
--#define SNDRV_SEQ_EVENT_KEYSIGN 24 /* SMF Key Signature event */
--
--/** timer messages
-- * event data type = snd_seq_ev_queue_control
-- */
--#define SNDRV_SEQ_EVENT_START 30 /* midi Real Time Start message */
--#define SNDRV_SEQ_EVENT_CONTINUE 31 /* midi Real Time Continue message */
--#define SNDRV_SEQ_EVENT_STOP 32 /* midi Real Time Stop message */
--#define SNDRV_SEQ_EVENT_SETPOS_TICK 33 /* set tick queue position */
--#define SNDRV_SEQ_EVENT_SETPOS_TIME 34 /* set realtime queue position */
--#define SNDRV_SEQ_EVENT_TEMPO 35 /* (SMF) Tempo event */
--#define SNDRV_SEQ_EVENT_CLOCK 36 /* midi Real Time Clock message */
--#define SNDRV_SEQ_EVENT_TICK 37 /* midi Real Time Tick message */
--#define SNDRV_SEQ_EVENT_QUEUE_SKEW 38 /* skew queue tempo */
--
--/** others
-- * event data type = none
-- */
--#define SNDRV_SEQ_EVENT_TUNE_REQUEST 40 /* tune request */
--#define SNDRV_SEQ_EVENT_RESET 41 /* reset to power-on state */
--#define SNDRV_SEQ_EVENT_SENSING 42 /* "active sensing" event */
--
--/** echo back, kernel private messages
-- * event data type = any type
-- */
--#define SNDRV_SEQ_EVENT_ECHO 50 /* echo event */
--#define SNDRV_SEQ_EVENT_OSS 51 /* OSS raw event */
--
--/** system status messages (broadcast for subscribers)
-- * event data type = snd_seq_addr
-- */
--#define SNDRV_SEQ_EVENT_CLIENT_START 60 /* new client has connected */
--#define SNDRV_SEQ_EVENT_CLIENT_EXIT 61 /* client has left the system */
--#define SNDRV_SEQ_EVENT_CLIENT_CHANGE 62 /* client status/info has changed */
--#define SNDRV_SEQ_EVENT_PORT_START 63 /* new port was created */
--#define SNDRV_SEQ_EVENT_PORT_EXIT 64 /* port was deleted from system */
--#define SNDRV_SEQ_EVENT_PORT_CHANGE 65 /* port status/info has changed */
--
--/** port connection changes
-- * event data type = snd_seq_connect
-- */
--#define SNDRV_SEQ_EVENT_PORT_SUBSCRIBED 66 /* ports connected */
--#define SNDRV_SEQ_EVENT_PORT_UNSUBSCRIBED 67 /* ports disconnected */
--
--/* 70-89: synthesizer events - obsoleted */
--
--/** user-defined events with fixed length
-- * event data type = any
-- */
--#define SNDRV_SEQ_EVENT_USR0 90
--#define SNDRV_SEQ_EVENT_USR1 91
--#define SNDRV_SEQ_EVENT_USR2 92
--#define SNDRV_SEQ_EVENT_USR3 93
--#define SNDRV_SEQ_EVENT_USR4 94
--#define SNDRV_SEQ_EVENT_USR5 95
--#define SNDRV_SEQ_EVENT_USR6 96
--#define SNDRV_SEQ_EVENT_USR7 97
--#define SNDRV_SEQ_EVENT_USR8 98
--#define SNDRV_SEQ_EVENT_USR9 99
--
--/* 100-118: instrument layer - obsoleted */
--/* 119-129: reserved */
--
--/* 130-139: variable length events
-- * event data type = snd_seq_ev_ext
-- * (SNDRV_SEQ_EVENT_LENGTH_VARIABLE must be set)
-- */
--#define SNDRV_SEQ_EVENT_SYSEX 130 /* system exclusive data (variable length) */
--#define SNDRV_SEQ_EVENT_BOUNCE 131 /* error event */
--/* 132-134: reserved */
--#define SNDRV_SEQ_EVENT_USR_VAR0 135
--#define SNDRV_SEQ_EVENT_USR_VAR1 136
--#define SNDRV_SEQ_EVENT_USR_VAR2 137
--#define SNDRV_SEQ_EVENT_USR_VAR3 138
--#define SNDRV_SEQ_EVENT_USR_VAR4 139
--
--/* 150-151: kernel events with quote - DO NOT use in user clients */
--#define SNDRV_SEQ_EVENT_KERNEL_ERROR 150
--#define SNDRV_SEQ_EVENT_KERNEL_QUOTE 151 /* obsolete */
--
--/* 152-191: reserved */
--
--/* 192-254: hardware specific events */
--
--/* 255: special event */
--#define SNDRV_SEQ_EVENT_NONE 255
--
--
--typedef unsigned char snd_seq_event_type_t;
--
--/** event address */
--struct snd_seq_addr {
-- unsigned char client; /**< Client number: 0..255, 255 = broadcast to all clients */
-- unsigned char port; /**< Port within client: 0..255, 255 = broadcast to all ports */
--};
--
--/** port connection */
--struct snd_seq_connect {
-- struct snd_seq_addr sender;
-- struct snd_seq_addr dest;
--};
--
--
--#define SNDRV_SEQ_ADDRESS_UNKNOWN 253 /* unknown source */
--#define SNDRV_SEQ_ADDRESS_SUBSCRIBERS 254 /* send event to all subscribed ports */
--#define SNDRV_SEQ_ADDRESS_BROADCAST 255 /* send event to all queues/clients/ports/channels */
--#define SNDRV_SEQ_QUEUE_DIRECT 253 /* direct dispatch */
--
-- /* event mode flag - NOTE: only 8 bits available! */
--#define SNDRV_SEQ_TIME_STAMP_TICK (0<<0) /* timestamp in clock ticks */
--#define SNDRV_SEQ_TIME_STAMP_REAL (1<<0) /* timestamp in real time */
--#define SNDRV_SEQ_TIME_STAMP_MASK (1<<0)
--
--#define SNDRV_SEQ_TIME_MODE_ABS (0<<1) /* absolute timestamp */
--#define SNDRV_SEQ_TIME_MODE_REL (1<<1) /* relative to current time */
--#define SNDRV_SEQ_TIME_MODE_MASK (1<<1)
--
--#define SNDRV_SEQ_EVENT_LENGTH_FIXED (0<<2) /* fixed event size */
--#define SNDRV_SEQ_EVENT_LENGTH_VARIABLE (1<<2) /* variable event size */
--#define SNDRV_SEQ_EVENT_LENGTH_VARUSR (2<<2) /* variable event size - user memory space */
--#define SNDRV_SEQ_EVENT_LENGTH_MASK (3<<2)
--
--#define SNDRV_SEQ_PRIORITY_NORMAL (0<<4) /* normal priority */
--#define SNDRV_SEQ_PRIORITY_HIGH (1<<4) /* event should be processed before others */
--#define SNDRV_SEQ_PRIORITY_MASK (1<<4)
--
--
-- /* note event */
--struct snd_seq_ev_note {
-- unsigned char channel;
-- unsigned char note;
-- unsigned char velocity;
-- unsigned char off_velocity; /* only for SNDRV_SEQ_EVENT_NOTE */
-- unsigned int duration; /* only for SNDRV_SEQ_EVENT_NOTE */
--};
--
-- /* controller event */
--struct snd_seq_ev_ctrl {
-- unsigned char channel;
-- unsigned char unused1, unused2, unused3; /* pad */
-- unsigned int param;
-- signed int value;
--};
--
-- /* generic set of bytes (12x8 bit) */
--struct snd_seq_ev_raw8 {
-- unsigned char d[12]; /* 8 bit value */
--};
--
-- /* generic set of integers (3x32 bit) */
--struct snd_seq_ev_raw32 {
-- unsigned int d[3]; /* 32 bit value */
--};
--
-- /* external stored data */
--struct snd_seq_ev_ext {
-- unsigned int len; /* length of data */
-- void *ptr; /* pointer to data (note: maybe 64-bit) */
--} __attribute__((packed));
--
--struct snd_seq_result {
-- int event; /* processed event type */
-- int result;
--};
--
--
--struct snd_seq_real_time {
-- unsigned int tv_sec; /* seconds */
-- unsigned int tv_nsec; /* nanoseconds */
--};
--
--typedef unsigned int snd_seq_tick_time_t; /* midi ticks */
--
--union snd_seq_timestamp {
-- snd_seq_tick_time_t tick;
-- struct snd_seq_real_time time;
--};
--
--struct snd_seq_queue_skew {
-- unsigned int value;
-- unsigned int base;
--};
--
-- /* queue timer control */
--struct snd_seq_ev_queue_control {
-- unsigned char queue; /* affected queue */
-- unsigned char pad[3]; /* reserved */
-- union {
-- signed int value; /* affected value (e.g. tempo) */
-- union snd_seq_timestamp time; /* time */
-- unsigned int position; /* sync position */
-- struct snd_seq_queue_skew skew;
-- unsigned int d32[2];
-- unsigned char d8[8];
-- } param;
--};
--
-- /* quoted event - inside the kernel only */
--struct snd_seq_ev_quote {
-- struct snd_seq_addr origin; /* original sender */
-- unsigned short value; /* optional data */
-- struct snd_seq_event *event; /* quoted event */
--} __attribute__((packed));
--
--
-- /* sequencer event */
--struct snd_seq_event {
-- snd_seq_event_type_t type; /* event type */
-- unsigned char flags; /* event flags */
-- char tag;
--
-- unsigned char queue; /* schedule queue */
-- union snd_seq_timestamp time; /* schedule time */
--
--
-- struct snd_seq_addr source; /* source address */
-- struct snd_seq_addr dest; /* destination address */
--
-- union { /* event data... */
-- struct snd_seq_ev_note note;
-- struct snd_seq_ev_ctrl control;
-- struct snd_seq_ev_raw8 raw8;
-- struct snd_seq_ev_raw32 raw32;
-- struct snd_seq_ev_ext ext;
-- struct snd_seq_ev_queue_control queue;
-- union snd_seq_timestamp time;
-- struct snd_seq_addr addr;
-- struct snd_seq_connect connect;
-- struct snd_seq_result result;
-- struct snd_seq_ev_quote quote;
-- } data;
--};
--
--
--/*
-- * bounce event - stored as variable size data
-- */
--struct snd_seq_event_bounce {
-- int err;
-- struct snd_seq_event event;
-- /* external data follows here. */
--};
--
--
-- /* system information */
--struct snd_seq_system_info {
-- int queues; /* maximum queues count */
-- int clients; /* maximum clients count */
-- int ports; /* maximum ports per client */
-- int channels; /* maximum channels per port */
-- int cur_clients; /* current clients */
-- int cur_queues; /* current queues */
-- char reserved[24];
--};
--
--
-- /* system running information */
--struct snd_seq_running_info {
-- unsigned char client; /* client id */
-- unsigned char big_endian; /* 1 = big-endian */
-- unsigned char cpu_mode; /* 4 = 32bit, 8 = 64bit */
-- unsigned char pad; /* reserved */
-- unsigned char reserved[12];
--};
--
--
-- /* known client numbers */
--#define SNDRV_SEQ_CLIENT_SYSTEM 0
-- /* internal client numbers */
--#define SNDRV_SEQ_CLIENT_DUMMY 14 /* midi through */
--#define SNDRV_SEQ_CLIENT_OSS 15 /* oss sequencer emulator */
--
--
-- /* client types */
--typedef int __bitwise snd_seq_client_type_t;
--#define NO_CLIENT ((__force snd_seq_client_type_t) 0)
--#define USER_CLIENT ((__force snd_seq_client_type_t) 1)
--#define KERNEL_CLIENT ((__force snd_seq_client_type_t) 2)
--
-- /* event filter flags */
--#define SNDRV_SEQ_FILTER_BROADCAST (1<<0) /* accept broadcast messages */
--#define SNDRV_SEQ_FILTER_MULTICAST (1<<1) /* accept multicast messages */
--#define SNDRV_SEQ_FILTER_BOUNCE (1<<2) /* accept bounce event in error */
--#define SNDRV_SEQ_FILTER_USE_EVENT (1<<31) /* use event filter */
--
--struct snd_seq_client_info {
-- int client; /* client number to inquire */
-- snd_seq_client_type_t type; /* client type */
-- char name[64]; /* client name */
-- unsigned int filter; /* filter flags */
-- unsigned char multicast_filter[8]; /* multicast filter bitmap */
-- unsigned char event_filter[32]; /* event filter bitmap */
-- int num_ports; /* RO: number of ports */
-- int event_lost; /* number of lost events */
-- int card; /* RO: card number[kernel] */
-- int pid; /* RO: pid[user] */
-- char reserved[56]; /* for future use */
--};
--
--
--/* client pool size */
--struct snd_seq_client_pool {
-- int client; /* client number to inquire */
-- int output_pool; /* outgoing (write) pool size */
-- int input_pool; /* incoming (read) pool size */
-- int output_room; /* minimum free pool size for select/blocking mode */
-- int output_free; /* unused size */
-- int input_free; /* unused size */
-- char reserved[64];
--};
--
--
--/* Remove events by specified criteria */
--
--#define SNDRV_SEQ_REMOVE_INPUT (1<<0) /* Flush input queues */
--#define SNDRV_SEQ_REMOVE_OUTPUT (1<<1) /* Flush output queues */
--#define SNDRV_SEQ_REMOVE_DEST (1<<2) /* Restrict by destination q:client:port */
--#define SNDRV_SEQ_REMOVE_DEST_CHANNEL (1<<3) /* Restrict by channel */
--#define SNDRV_SEQ_REMOVE_TIME_BEFORE (1<<4) /* Restrict to before time */
--#define SNDRV_SEQ_REMOVE_TIME_AFTER (1<<5) /* Restrict to time or after */
--#define SNDRV_SEQ_REMOVE_TIME_TICK (1<<6) /* Time is in ticks */
--#define SNDRV_SEQ_REMOVE_EVENT_TYPE (1<<7) /* Restrict to event type */
--#define SNDRV_SEQ_REMOVE_IGNORE_OFF (1<<8) /* Do not flush off events */
--#define SNDRV_SEQ_REMOVE_TAG_MATCH (1<<9) /* Restrict to events with given tag */
--
--struct snd_seq_remove_events {
-- unsigned int remove_mode; /* Flags that determine what gets removed */
--
-- union snd_seq_timestamp time;
--
-- unsigned char queue; /* Queue for REMOVE_DEST */
-- struct snd_seq_addr dest; /* Address for REMOVE_DEST */
-- unsigned char channel; /* Channel for REMOVE_DEST */
--
-- int type; /* For REMOVE_EVENT_TYPE */
-- char tag; /* Tag for REMOVE_TAG */
--
-- int reserved[10]; /* To allow for future binary compatibility */
--
--};
--
--
-- /* known port numbers */
--#define SNDRV_SEQ_PORT_SYSTEM_TIMER 0
--#define SNDRV_SEQ_PORT_SYSTEM_ANNOUNCE 1
--
-- /* port capabilities (32 bits) */
--#define SNDRV_SEQ_PORT_CAP_READ (1<<0) /* readable from this port */
--#define SNDRV_SEQ_PORT_CAP_WRITE (1<<1) /* writable to this port */
--
--#define SNDRV_SEQ_PORT_CAP_SYNC_READ (1<<2)
--#define SNDRV_SEQ_PORT_CAP_SYNC_WRITE (1<<3)
--
--#define SNDRV_SEQ_PORT_CAP_DUPLEX (1<<4)
--
--#define SNDRV_SEQ_PORT_CAP_SUBS_READ (1<<5) /* allow read subscription */
--#define SNDRV_SEQ_PORT_CAP_SUBS_WRITE (1<<6) /* allow write subscription */
--#define SNDRV_SEQ_PORT_CAP_NO_EXPORT (1<<7) /* routing not allowed */
--
-- /* port type */
--#define SNDRV_SEQ_PORT_TYPE_SPECIFIC (1<<0) /* hardware specific */
--#define SNDRV_SEQ_PORT_TYPE_MIDI_GENERIC (1<<1) /* generic MIDI device */
--#define SNDRV_SEQ_PORT_TYPE_MIDI_GM (1<<2) /* General MIDI compatible device */
--#define SNDRV_SEQ_PORT_TYPE_MIDI_GS (1<<3) /* GS compatible device */
--#define SNDRV_SEQ_PORT_TYPE_MIDI_XG (1<<4) /* XG compatible device */
--#define SNDRV_SEQ_PORT_TYPE_MIDI_MT32 (1<<5) /* MT-32 compatible device */
--#define SNDRV_SEQ_PORT_TYPE_MIDI_GM2 (1<<6) /* General MIDI 2 compatible device */
--
--/* other standards...*/
--#define SNDRV_SEQ_PORT_TYPE_SYNTH (1<<10) /* Synth device (no MIDI compatible - direct wavetable) */
--#define SNDRV_SEQ_PORT_TYPE_DIRECT_SAMPLE (1<<11) /* Sampling device (support sample download) */
--#define SNDRV_SEQ_PORT_TYPE_SAMPLE (1<<12) /* Sampling device (sample can be downloaded at any time) */
--/*...*/
--#define SNDRV_SEQ_PORT_TYPE_HARDWARE (1<<16) /* driver for a hardware device */
--#define SNDRV_SEQ_PORT_TYPE_SOFTWARE (1<<17) /* implemented in software */
--#define SNDRV_SEQ_PORT_TYPE_SYNTHESIZER (1<<18) /* generates sound */
--#define SNDRV_SEQ_PORT_TYPE_PORT (1<<19) /* connects to other device(s) */
--#define SNDRV_SEQ_PORT_TYPE_APPLICATION (1<<20) /* application (sequencer/editor) */
--
--/* misc. conditioning flags */
--#define SNDRV_SEQ_PORT_FLG_GIVEN_PORT (1<<0)
--#define SNDRV_SEQ_PORT_FLG_TIMESTAMP (1<<1)
--#define SNDRV_SEQ_PORT_FLG_TIME_REAL (1<<2)
--
--struct snd_seq_port_info {
-- struct snd_seq_addr addr; /* client/port numbers */
-- char name[64]; /* port name */
--
-- unsigned int capability; /* port capability bits */
-- unsigned int type; /* port type bits */
-- int midi_channels; /* channels per MIDI port */
-- int midi_voices; /* voices per MIDI port */
-- int synth_voices; /* voices per SYNTH port */
--
-- int read_use; /* R/O: subscribers for output (from this port) */
-- int write_use; /* R/O: subscribers for input (to this port) */
--
-- void *kernel; /* reserved for kernel use (must be NULL) */
-- unsigned int flags; /* misc. conditioning */
-- unsigned char time_queue; /* queue # for timestamping */
-- char reserved[59]; /* for future use */
--};
--
--
--/* queue flags */
--#define SNDRV_SEQ_QUEUE_FLG_SYNC (1<<0) /* sync enabled */
--
--/* queue information */
--struct snd_seq_queue_info {
-- int queue; /* queue id */
--
-- /*
-- * security settings, only owner of this queue can start/stop timer
-- * etc. if the queue is locked for other clients
-- */
-- int owner; /* client id for owner of the queue */
-- unsigned locked:1; /* timing queue locked for other queues */
-- char name[64]; /* name of this queue */
-- unsigned int flags; /* flags */
-- char reserved[60]; /* for future use */
--
--};
--
--/* queue info/status */
--struct snd_seq_queue_status {
-- int queue; /* queue id */
-- int events; /* read-only - queue size */
-- snd_seq_tick_time_t tick; /* current tick */
-- struct snd_seq_real_time time; /* current time */
-- int running; /* running state of queue */
-- int flags; /* various flags */
-- char reserved[64]; /* for the future */
--};
--
--
--/* queue tempo */
--struct snd_seq_queue_tempo {
-- int queue; /* sequencer queue */
-- unsigned int tempo; /* current tempo, us/tick */
-- int ppq; /* time resolution, ticks/quarter */
-- unsigned int skew_value; /* queue skew */
-- unsigned int skew_base; /* queue skew base */
-- char reserved[24]; /* for the future */
--};
--
--
--/* sequencer timer sources */
--#define SNDRV_SEQ_TIMER_ALSA 0 /* ALSA timer */
--#define SNDRV_SEQ_TIMER_MIDI_CLOCK 1 /* Midi Clock (CLOCK event) */
--#define SNDRV_SEQ_TIMER_MIDI_TICK 2 /* Midi Timer Tick (TICK event) */
--
--/* queue timer info */
--struct snd_seq_queue_timer {
-- int queue; /* sequencer queue */
-- int type; /* source timer type */
-- union {
-- struct {
-- struct snd_timer_id id; /* ALSA's timer ID */
-- unsigned int resolution; /* resolution in Hz */
-- } alsa;
-- } u;
-- char reserved[64]; /* for the future use */
--};
--
--
--struct snd_seq_queue_client {
-- int queue; /* sequencer queue */
-- int client; /* sequencer client */
-- int used; /* queue is used with this client
-- (must be set for accepting events) */
-- /* per client watermarks */
-- char reserved[64]; /* for future use */
--};
--
--
--#define SNDRV_SEQ_PORT_SUBS_EXCLUSIVE (1<<0) /* exclusive connection */
--#define SNDRV_SEQ_PORT_SUBS_TIMESTAMP (1<<1)
--#define SNDRV_SEQ_PORT_SUBS_TIME_REAL (1<<2)
--
--struct snd_seq_port_subscribe {
-- struct snd_seq_addr sender; /* sender address */
-- struct snd_seq_addr dest; /* destination address */
-- unsigned int voices; /* number of voices to be allocated (0 = don't care) */
-- unsigned int flags; /* modes */
-- unsigned char queue; /* input time-stamp queue (optional) */
-- unsigned char pad[3]; /* reserved */
-- char reserved[64];
--};
--
--/* type of query subscription */
--#define SNDRV_SEQ_QUERY_SUBS_READ 0
--#define SNDRV_SEQ_QUERY_SUBS_WRITE 1
--
--struct snd_seq_query_subs {
-- struct snd_seq_addr root; /* client/port id to be searched */
-- int type; /* READ or WRITE */
-- int index; /* 0..N-1 */
-- int num_subs; /* R/O: number of subscriptions on this port */
-- struct snd_seq_addr addr; /* R/O: result */
-- unsigned char queue; /* R/O: result */
-- unsigned int flags; /* R/O: result */
-- char reserved[64]; /* for future use */
--};
--
--
--/*
-- * IOCTL commands
-- */
--
--#define SNDRV_SEQ_IOCTL_PVERSION _IOR ('S', 0x00, int)
--#define SNDRV_SEQ_IOCTL_CLIENT_ID _IOR ('S', 0x01, int)
--#define SNDRV_SEQ_IOCTL_SYSTEM_INFO _IOWR('S', 0x02, struct snd_seq_system_info)
--#define SNDRV_SEQ_IOCTL_RUNNING_MODE _IOWR('S', 0x03, struct snd_seq_running_info)
--
--#define SNDRV_SEQ_IOCTL_GET_CLIENT_INFO _IOWR('S', 0x10, struct snd_seq_client_info)
--#define SNDRV_SEQ_IOCTL_SET_CLIENT_INFO _IOW ('S', 0x11, struct snd_seq_client_info)
--
--#define SNDRV_SEQ_IOCTL_CREATE_PORT _IOWR('S', 0x20, struct snd_seq_port_info)
--#define SNDRV_SEQ_IOCTL_DELETE_PORT _IOW ('S', 0x21, struct snd_seq_port_info)
--#define SNDRV_SEQ_IOCTL_GET_PORT_INFO _IOWR('S', 0x22, struct snd_seq_port_info)
--#define SNDRV_SEQ_IOCTL_SET_PORT_INFO _IOW ('S', 0x23, struct snd_seq_port_info)
--
--#define SNDRV_SEQ_IOCTL_SUBSCRIBE_PORT _IOW ('S', 0x30, struct snd_seq_port_subscribe)
--#define SNDRV_SEQ_IOCTL_UNSUBSCRIBE_PORT _IOW ('S', 0x31, struct snd_seq_port_subscribe)
--
--#define SNDRV_SEQ_IOCTL_CREATE_QUEUE _IOWR('S', 0x32, struct snd_seq_queue_info)
--#define SNDRV_SEQ_IOCTL_DELETE_QUEUE _IOW ('S', 0x33, struct snd_seq_queue_info)
--#define SNDRV_SEQ_IOCTL_GET_QUEUE_INFO _IOWR('S', 0x34, struct snd_seq_queue_info)
--#define SNDRV_SEQ_IOCTL_SET_QUEUE_INFO _IOWR('S', 0x35, struct snd_seq_queue_info)
--#define SNDRV_SEQ_IOCTL_GET_NAMED_QUEUE _IOWR('S', 0x36, struct snd_seq_queue_info)
--#define SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS _IOWR('S', 0x40, struct snd_seq_queue_status)
--#define SNDRV_SEQ_IOCTL_GET_QUEUE_TEMPO _IOWR('S', 0x41, struct snd_seq_queue_tempo)
--#define SNDRV_SEQ_IOCTL_SET_QUEUE_TEMPO _IOW ('S', 0x42, struct snd_seq_queue_tempo)
--#define SNDRV_SEQ_IOCTL_GET_QUEUE_TIMER _IOWR('S', 0x45, struct snd_seq_queue_timer)
--#define SNDRV_SEQ_IOCTL_SET_QUEUE_TIMER _IOW ('S', 0x46, struct snd_seq_queue_timer)
--#define SNDRV_SEQ_IOCTL_GET_QUEUE_CLIENT _IOWR('S', 0x49, struct snd_seq_queue_client)
--#define SNDRV_SEQ_IOCTL_SET_QUEUE_CLIENT _IOW ('S', 0x4a, struct snd_seq_queue_client)
--#define SNDRV_SEQ_IOCTL_GET_CLIENT_POOL _IOWR('S', 0x4b, struct snd_seq_client_pool)
--#define SNDRV_SEQ_IOCTL_SET_CLIENT_POOL _IOW ('S', 0x4c, struct snd_seq_client_pool)
--#define SNDRV_SEQ_IOCTL_REMOVE_EVENTS _IOW ('S', 0x4e, struct snd_seq_remove_events)
--#define SNDRV_SEQ_IOCTL_QUERY_SUBS _IOWR('S', 0x4f, struct snd_seq_query_subs)
--#define SNDRV_SEQ_IOCTL_GET_SUBSCRIPTION _IOWR('S', 0x50, struct snd_seq_port_subscribe)
--#define SNDRV_SEQ_IOCTL_QUERY_NEXT_CLIENT _IOWR('S', 0x51, struct snd_seq_client_info)
--#define SNDRV_SEQ_IOCTL_QUERY_NEXT_PORT _IOWR('S', 0x52, struct snd_seq_port_info)
--
--#endif /* _UAPI__SOUND_ASEQUENCER_H */
-+#include <alsa/sound/uapi/asequencer.h>
-diff --git a/include/sound/asoc.h b/include/sound/asoc.h
-index a74ca232..185bba81 100644
---- a/include/sound/asoc.h
-+++ b/include/sound/asoc.h
-@@ -1,633 +1 @@
--/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
--/*
-- * uapi/sound/asoc.h -- ALSA SoC Firmware Controls and DAPM
-- *
-- * Copyright (C) 2012 Texas Instruments Inc.
-- * Copyright (C) 2015 Intel Corporation.
-- *
-- * This program is free software; you can redistribute it and/or modify
-- * it under the terms of the GNU General Public License version 2 as
-- * published by the Free Software Foundation.
-- *
-- * Simple file API to load FW that includes mixers, coefficients, DAPM graphs,
-- * algorithms, equalisers, DAIs, widgets etc.
--*/
--
--#ifndef __LINUX_UAPI_SND_ASOC_H
--#define __LINUX_UAPI_SND_ASOC_H
--
--#include <linux/types.h>
--#include <sound/asound.h>
--
--/*
-- * Maximum number of channels topology kcontrol can represent.
-- */
--#define SND_SOC_TPLG_MAX_CHAN 8
--
--/*
-- * Maximum number of PCM formats capability
-- */
--#define SND_SOC_TPLG_MAX_FORMATS 16
--
--/*
-- * Maximum number of PCM stream configs
-- */
--#define SND_SOC_TPLG_STREAM_CONFIG_MAX 8
--
--/*
-- * Maximum number of physical link's hardware configs
-- */
--#define SND_SOC_TPLG_HW_CONFIG_MAX 8
--
--/* individual kcontrol info types - can be mixed with other types */
--#define SND_SOC_TPLG_CTL_VOLSW 1
--#define SND_SOC_TPLG_CTL_VOLSW_SX 2
--#define SND_SOC_TPLG_CTL_VOLSW_XR_SX 3
--#define SND_SOC_TPLG_CTL_ENUM 4
--#define SND_SOC_TPLG_CTL_BYTES 5
--#define SND_SOC_TPLG_CTL_ENUM_VALUE 6
--#define SND_SOC_TPLG_CTL_RANGE 7
--#define SND_SOC_TPLG_CTL_STROBE 8
--
--
--/* individual widget kcontrol info types - can be mixed with other types */
--#define SND_SOC_TPLG_DAPM_CTL_VOLSW 64
--#define SND_SOC_TPLG_DAPM_CTL_ENUM_DOUBLE 65
--#define SND_SOC_TPLG_DAPM_CTL_ENUM_VIRT 66
--#define SND_SOC_TPLG_DAPM_CTL_ENUM_VALUE 67
--#define SND_SOC_TPLG_DAPM_CTL_PIN 68
--
--/* DAPM widget types - add new items to the end */
--#define SND_SOC_TPLG_DAPM_INPUT 0
--#define SND_SOC_TPLG_DAPM_OUTPUT 1
--#define SND_SOC_TPLG_DAPM_MUX 2
--#define SND_SOC_TPLG_DAPM_MIXER 3
--#define SND_SOC_TPLG_DAPM_PGA 4
--#define SND_SOC_TPLG_DAPM_OUT_DRV 5
--#define SND_SOC_TPLG_DAPM_ADC 6
--#define SND_SOC_TPLG_DAPM_DAC 7
--#define SND_SOC_TPLG_DAPM_SWITCH 8
--#define SND_SOC_TPLG_DAPM_PRE 9
--#define SND_SOC_TPLG_DAPM_POST 10
--#define SND_SOC_TPLG_DAPM_AIF_IN 11
--#define SND_SOC_TPLG_DAPM_AIF_OUT 12
--#define SND_SOC_TPLG_DAPM_DAI_IN 13
--#define SND_SOC_TPLG_DAPM_DAI_OUT 14
--#define SND_SOC_TPLG_DAPM_DAI_LINK 15
--#define SND_SOC_TPLG_DAPM_BUFFER 16
--#define SND_SOC_TPLG_DAPM_SCHEDULER 17
--#define SND_SOC_TPLG_DAPM_EFFECT 18
--#define SND_SOC_TPLG_DAPM_SIGGEN 19
--#define SND_SOC_TPLG_DAPM_SRC 20
--#define SND_SOC_TPLG_DAPM_ASRC 21
--#define SND_SOC_TPLG_DAPM_ENCODER 22
--#define SND_SOC_TPLG_DAPM_DECODER 23
--#define SND_SOC_TPLG_DAPM_LAST SND_SOC_TPLG_DAPM_DECODER
--
--/* Header magic number and string sizes */
--#define SND_SOC_TPLG_MAGIC 0x41536F43 /* ASoC */
--
--/* string sizes */
--#define SND_SOC_TPLG_NUM_TEXTS 16
--
--/* ABI version */
--#define SND_SOC_TPLG_ABI_VERSION 0x5 /* current version */
--#define SND_SOC_TPLG_ABI_VERSION_MIN 0x4 /* oldest version supported */
--
--/* Max size of TLV data */
--#define SND_SOC_TPLG_TLV_SIZE 32
--
--/*
-- * File and Block header data types.
-- * Add new generic and vendor types to end of list.
-- * Generic types are handled by the core whilst vendors types are passed
-- * to the component drivers for handling.
-- */
--#define SND_SOC_TPLG_TYPE_MIXER 1
--#define SND_SOC_TPLG_TYPE_BYTES 2
--#define SND_SOC_TPLG_TYPE_ENUM 3
--#define SND_SOC_TPLG_TYPE_DAPM_GRAPH 4
--#define SND_SOC_TPLG_TYPE_DAPM_WIDGET 5
--#define SND_SOC_TPLG_TYPE_DAI_LINK 6
--#define SND_SOC_TPLG_TYPE_PCM 7
--#define SND_SOC_TPLG_TYPE_MANIFEST 8
--#define SND_SOC_TPLG_TYPE_CODEC_LINK 9
--#define SND_SOC_TPLG_TYPE_BACKEND_LINK 10
--#define SND_SOC_TPLG_TYPE_PDATA 11
--#define SND_SOC_TPLG_TYPE_DAI 12
--#define SND_SOC_TPLG_TYPE_MAX SND_SOC_TPLG_TYPE_DAI
--
--/* vendor block IDs - please add new vendor types to end */
--#define SND_SOC_TPLG_TYPE_VENDOR_FW 1000
--#define SND_SOC_TPLG_TYPE_VENDOR_CONFIG 1001
--#define SND_SOC_TPLG_TYPE_VENDOR_COEFF 1002
--#define SND_SOC_TPLG_TYPEVENDOR_CODEC 1003
--
--#define SND_SOC_TPLG_STREAM_PLAYBACK 0
--#define SND_SOC_TPLG_STREAM_CAPTURE 1
--
--/* vendor tuple types */
--#define SND_SOC_TPLG_TUPLE_TYPE_UUID 0
--#define SND_SOC_TPLG_TUPLE_TYPE_STRING 1
--#define SND_SOC_TPLG_TUPLE_TYPE_BOOL 2
--#define SND_SOC_TPLG_TUPLE_TYPE_BYTE 3
--#define SND_SOC_TPLG_TUPLE_TYPE_WORD 4
--#define SND_SOC_TPLG_TUPLE_TYPE_SHORT 5
--
--/* DAI flags */
--#define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_RATES (1 << 0)
--#define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_CHANNELS (1 << 1)
--#define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_SAMPLEBITS (1 << 2)
--
--/* DAI clock gating */
--#define SND_SOC_TPLG_DAI_CLK_GATE_UNDEFINED 0
--#define SND_SOC_TPLG_DAI_CLK_GATE_GATED 1
--#define SND_SOC_TPLG_DAI_CLK_GATE_CONT 2
--
--/* DAI mclk_direction */
--#define SND_SOC_TPLG_MCLK_CO 0 /* for codec, mclk is output */
--#define SND_SOC_TPLG_MCLK_CI 1 /* for codec, mclk is input */
--
--/* DAI physical PCM data formats.
-- * Add new formats to the end of the list.
-- */
--#define SND_SOC_DAI_FORMAT_I2S 1 /* I2S mode */
--#define SND_SOC_DAI_FORMAT_RIGHT_J 2 /* Right Justified mode */
--#define SND_SOC_DAI_FORMAT_LEFT_J 3 /* Left Justified mode */
--#define SND_SOC_DAI_FORMAT_DSP_A 4 /* L data MSB after FRM LRC */
--#define SND_SOC_DAI_FORMAT_DSP_B 5 /* L data MSB during FRM LRC */
--#define SND_SOC_DAI_FORMAT_AC97 6 /* AC97 */
--#define SND_SOC_DAI_FORMAT_PDM 7 /* Pulse density modulation */
--
--/* left and right justified also known as MSB and LSB respectively */
--#define SND_SOC_DAI_FORMAT_MSB SND_SOC_DAI_FORMAT_LEFT_J
--#define SND_SOC_DAI_FORMAT_LSB SND_SOC_DAI_FORMAT_RIGHT_J
--
--/* DAI link flags */
--#define SND_SOC_TPLG_LNK_FLGBIT_SYMMETRIC_RATES (1 << 0)
--#define SND_SOC_TPLG_LNK_FLGBIT_SYMMETRIC_CHANNELS (1 << 1)
--#define SND_SOC_TPLG_LNK_FLGBIT_SYMMETRIC_SAMPLEBITS (1 << 2)
--#define SND_SOC_TPLG_LNK_FLGBIT_VOICE_WAKEUP (1 << 3)
--
--/* DAI topology BCLK parameter
-- * For the backwards capability, by default codec is bclk master
-- */
--#define SND_SOC_TPLG_BCLK_CM 0 /* codec is bclk master */
--#define SND_SOC_TPLG_BCLK_CS 1 /* codec is bclk slave */
--
--/* DAI topology FSYNC parameter
-- * For the backwards capability, by default codec is fsync master
-- */
--#define SND_SOC_TPLG_FSYNC_CM 0 /* codec is fsync master */
--#define SND_SOC_TPLG_FSYNC_CS 1 /* codec is fsync slave */
--
--/*
-- * Block Header.
-- * This header precedes all object and object arrays below.
-- */
--struct snd_soc_tplg_hdr {
-- __le32 magic; /* magic number */
-- __le32 abi; /* ABI version */
-- __le32 version; /* optional vendor specific version details */
-- __le32 type; /* SND_SOC_TPLG_TYPE_ */
-- __le32 size; /* size of this structure */
-- __le32 vendor_type; /* optional vendor specific type info */
-- __le32 payload_size; /* data bytes, excluding this header */
-- __le32 index; /* identifier for block */
-- __le32 count; /* number of elements in block */
--} __attribute__((packed));
--
--/* vendor tuple for uuid */
--struct snd_soc_tplg_vendor_uuid_elem {
-- __le32 token;
-- char uuid[16];
--} __attribute__((packed));
--
--/* vendor tuple for a bool/byte/short/word value */
--struct snd_soc_tplg_vendor_value_elem {
-- __le32 token;
-- __le32 value;
--} __attribute__((packed));
--
--/* vendor tuple for string */
--struct snd_soc_tplg_vendor_string_elem {
-- __le32 token;
-- char string[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
--} __attribute__((packed));
--
--struct snd_soc_tplg_vendor_array {
-- __le32 size; /* size in bytes of the array, including all elements */
-- __le32 type; /* SND_SOC_TPLG_TUPLE_TYPE_ */
-- __le32 num_elems; /* number of elements in array */
-- union {
-- struct snd_soc_tplg_vendor_uuid_elem uuid[0];
-- struct snd_soc_tplg_vendor_value_elem value[0];
-- struct snd_soc_tplg_vendor_string_elem string[0];
-- };
--} __attribute__((packed));
--
--/*
-- * Private data.
-- * All topology objects may have private data that can be used by the driver or
-- * firmware. Core will ignore this data.
-- */
--struct snd_soc_tplg_private {
-- __le32 size; /* in bytes of private data */
-- union {
-- char data[0];
-- struct snd_soc_tplg_vendor_array array[0];
-- };
--} __attribute__((packed));
--
--/*
-- * Kcontrol TLV data.
-- */
--struct snd_soc_tplg_tlv_dbscale {
-- __le32 min;
-- __le32 step;
-- __le32 mute;
--} __attribute__((packed));
--
--struct snd_soc_tplg_ctl_tlv {
-- __le32 size; /* in bytes of this structure */
-- __le32 type; /* SNDRV_CTL_TLVT_*, type of TLV */
-- union {
-- __le32 data[SND_SOC_TPLG_TLV_SIZE];
-- struct snd_soc_tplg_tlv_dbscale scale;
-- };
--} __attribute__((packed));
--
--/*
-- * Kcontrol channel data
-- */
--struct snd_soc_tplg_channel {
-- __le32 size; /* in bytes of this structure */
-- __le32 reg;
-- __le32 shift;
-- __le32 id; /* ID maps to Left, Right, LFE etc */
--} __attribute__((packed));
--
--/*
-- * Genericl Operations IDs, for binding Kcontrol or Bytes ext ops
-- * Kcontrol ops need get/put/info.
-- * Bytes ext ops need get/put.
-- */
--struct snd_soc_tplg_io_ops {
-- __le32 get;
-- __le32 put;
-- __le32 info;
--} __attribute__((packed));
--
--/*
-- * kcontrol header
-- */
--struct snd_soc_tplg_ctl_hdr {
-- __le32 size; /* in bytes of this structure */
-- __le32 type;
-- char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-- __le32 access;
-- struct snd_soc_tplg_io_ops ops;
-- struct snd_soc_tplg_ctl_tlv tlv;
--} __attribute__((packed));
--
--/*
-- * Stream Capabilities
-- */
--struct snd_soc_tplg_stream_caps {
-- __le32 size; /* in bytes of this structure */
-- char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-- __le64 formats; /* supported formats SNDRV_PCM_FMTBIT_* */
-- __le32 rates; /* supported rates SNDRV_PCM_RATE_* */
-- __le32 rate_min; /* min rate */
-- __le32 rate_max; /* max rate */
-- __le32 channels_min; /* min channels */
-- __le32 channels_max; /* max channels */
-- __le32 periods_min; /* min number of periods */
-- __le32 periods_max; /* max number of periods */
-- __le32 period_size_min; /* min period size bytes */
-- __le32 period_size_max; /* max period size bytes */
-- __le32 buffer_size_min; /* min buffer size bytes */
-- __le32 buffer_size_max; /* max buffer size bytes */
-- __le32 sig_bits; /* number of bits of content */
--} __attribute__((packed));
--
--/*
-- * FE or BE Stream configuration supported by SW/FW
-- */
--struct snd_soc_tplg_stream {
-- __le32 size; /* in bytes of this structure */
-- char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; /* Name of the stream */
-- __le64 format; /* SNDRV_PCM_FMTBIT_* */
-- __le32 rate; /* SNDRV_PCM_RATE_* */
-- __le32 period_bytes; /* size of period in bytes */
-- __le32 buffer_bytes; /* size of buffer in bytes */
-- __le32 channels; /* channels */
--} __attribute__((packed));
--
--
--/*
-- * Describes a physical link's runtime supported hardware config,
-- * i.e. hardware audio formats.
-- */
--struct snd_soc_tplg_hw_config {
-- __le32 size; /* in bytes of this structure */
-- __le32 id; /* unique ID - - used to match */
-- __le32 fmt; /* SND_SOC_DAI_FORMAT_ format value */
-- __u8 clock_gated; /* SND_SOC_TPLG_DAI_CLK_GATE_ value */
-- __u8 invert_bclk; /* 1 for inverted BCLK, 0 for normal */
-- __u8 invert_fsync; /* 1 for inverted frame clock, 0 for normal */
-- __u8 bclk_master; /* SND_SOC_TPLG_BCLK_ value */
-- __u8 fsync_master; /* SND_SOC_TPLG_FSYNC_ value */
-- __u8 mclk_direction; /* SND_SOC_TPLG_MCLK_ value */
-- __le16 reserved; /* for 32bit alignment */
-- __le32 mclk_rate; /* MCLK or SYSCLK freqency in Hz */
-- __le32 bclk_rate; /* BCLK freqency in Hz */
-- __le32 fsync_rate; /* frame clock in Hz */
-- __le32 tdm_slots; /* number of TDM slots in use */
-- __le32 tdm_slot_width; /* width in bits for each slot */
-- __le32 tx_slots; /* bit mask for active Tx slots */
-- __le32 rx_slots; /* bit mask for active Rx slots */
-- __le32 tx_channels; /* number of Tx channels */
-- __le32 tx_chanmap[SND_SOC_TPLG_MAX_CHAN]; /* array of slot number */
-- __le32 rx_channels; /* number of Rx channels */
-- __le32 rx_chanmap[SND_SOC_TPLG_MAX_CHAN]; /* array of slot number */
--} __attribute__((packed));
--
--/*
-- * Manifest. List totals for each payload type. Not used in parsing, but will
-- * be passed to the component driver before any other objects in order for any
-- * global component resource allocations.
-- *
-- * File block representation for manifest :-
-- * +-----------------------------------+----+
-- * | struct snd_soc_tplg_hdr | 1 |
-- * +-----------------------------------+----+
-- * | struct snd_soc_tplg_manifest | 1 |
-- * +-----------------------------------+----+
-- */
--struct snd_soc_tplg_manifest {
-- __le32 size; /* in bytes of this structure */
-- __le32 control_elems; /* number of control elements */
-- __le32 widget_elems; /* number of widget elements */
-- __le32 graph_elems; /* number of graph elements */
-- __le32 pcm_elems; /* number of PCM elements */
-- __le32 dai_link_elems; /* number of DAI link elements */
-- __le32 dai_elems; /* number of physical DAI elements */
-- __le32 reserved[20]; /* reserved for new ABI element types */
-- struct snd_soc_tplg_private priv;
--} __attribute__((packed));
--
--/*
-- * Mixer kcontrol.
-- *
-- * File block representation for mixer kcontrol :-
-- * +-----------------------------------+----+
-- * | struct snd_soc_tplg_hdr | 1 |
-- * +-----------------------------------+----+
-- * | struct snd_soc_tplg_mixer_control | N |
-- * +-----------------------------------+----+
-- */
--struct snd_soc_tplg_mixer_control {
-- struct snd_soc_tplg_ctl_hdr hdr;
-- __le32 size; /* in bytes of this structure */
-- __le32 min;
-- __le32 max;
-- __le32 platform_max;
-- __le32 invert;
-- __le32 num_channels;
-- struct snd_soc_tplg_channel channel[SND_SOC_TPLG_MAX_CHAN];
-- struct snd_soc_tplg_private priv;
--} __attribute__((packed));
--
--/*
-- * Enumerated kcontrol
-- *
-- * File block representation for enum kcontrol :-
-- * +-----------------------------------+----+
-- * | struct snd_soc_tplg_hdr | 1 |
-- * +-----------------------------------+----+
-- * | struct snd_soc_tplg_enum_control | N |
-- * +-----------------------------------+----+
-- */
--struct snd_soc_tplg_enum_control {
-- struct snd_soc_tplg_ctl_hdr hdr;
-- __le32 size; /* in bytes of this structure */
-- __le32 num_channels;
-- struct snd_soc_tplg_channel channel[SND_SOC_TPLG_MAX_CHAN];
-- __le32 items;
-- __le32 mask;
-- __le32 count;
-- char texts[SND_SOC_TPLG_NUM_TEXTS][SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-- __le32 values[SND_SOC_TPLG_NUM_TEXTS * SNDRV_CTL_ELEM_ID_NAME_MAXLEN / 4];
-- struct snd_soc_tplg_private priv;
--} __attribute__((packed));
--
--/*
-- * Bytes kcontrol
-- *
-- * File block representation for bytes kcontrol :-
-- * +-----------------------------------+----+
-- * | struct snd_soc_tplg_hdr | 1 |
-- * +-----------------------------------+----+
-- * | struct snd_soc_tplg_bytes_control | N |
-- * +-----------------------------------+----+
-- */
--struct snd_soc_tplg_bytes_control {
-- struct snd_soc_tplg_ctl_hdr hdr;
-- __le32 size; /* in bytes of this structure */
-- __le32 max;
-- __le32 mask;
-- __le32 base;
-- __le32 num_regs;
-- struct snd_soc_tplg_io_ops ext_ops;
-- struct snd_soc_tplg_private priv;
--} __attribute__((packed));
--
--/*
-- * DAPM Graph Element
-- *
-- * File block representation for DAPM graph elements :-
-- * +-------------------------------------+----+
-- * | struct snd_soc_tplg_hdr | 1 |
-- * +-------------------------------------+----+
-- * | struct snd_soc_tplg_dapm_graph_elem | N |
-- * +-------------------------------------+----+
-- */
--struct snd_soc_tplg_dapm_graph_elem {
-- char sink[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-- char control[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-- char source[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
--} __attribute__((packed));
--
--/*
-- * DAPM Widget.
-- *
-- * File block representation for DAPM widget :-
-- * +-------------------------------------+-----+
-- * | struct snd_soc_tplg_hdr | 1 |
-- * +-------------------------------------+-----+
-- * | struct snd_soc_tplg_dapm_widget | N |
-- * +-------------------------------------+-----+
-- * | struct snd_soc_tplg_enum_control | 0|1 |
-- * | struct snd_soc_tplg_mixer_control | 0|N |
-- * +-------------------------------------+-----+
-- *
-- * Optional enum or mixer control can be appended to the end of each widget
-- * in the block.
-- */
--struct snd_soc_tplg_dapm_widget {
-- __le32 size; /* in bytes of this structure */
-- __le32 id; /* SND_SOC_DAPM_CTL */
-- char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-- char sname[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
--
-- __le32 reg; /* negative reg = no direct dapm */
-- __le32 shift; /* bits to shift */
-- __le32 mask; /* non-shifted mask */
-- __le32 subseq; /* sort within widget type */
-- __le32 invert; /* invert the power bit */
-- __le32 ignore_suspend; /* kept enabled over suspend */
-- __le16 event_flags;
-- __le16 event_type;
-- __le32 num_kcontrols;
-- struct snd_soc_tplg_private priv;
-- /*
-- * kcontrols that relate to this widget
-- * follow here after widget private data
-- */
--} __attribute__((packed));
--
--
--/*
-- * Describes SW/FW specific features of PCM (FE DAI & DAI link).
-- *
-- * File block representation for PCM :-
-- * +-----------------------------------+-----+
-- * | struct snd_soc_tplg_hdr | 1 |
-- * +-----------------------------------+-----+
-- * | struct snd_soc_tplg_pcm | N |
-- * +-----------------------------------+-----+
-- */
--struct snd_soc_tplg_pcm {
-- __le32 size; /* in bytes of this structure */
-- char pcm_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-- char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-- __le32 pcm_id; /* unique ID - used to match with DAI link */
-- __le32 dai_id; /* unique ID - used to match */
-- __le32 playback; /* supports playback mode */
-- __le32 capture; /* supports capture mode */
-- __le32 compress; /* 1 = compressed; 0 = PCM */
-- struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX]; /* for DAI link */
-- __le32 num_streams; /* number of streams */
-- struct snd_soc_tplg_stream_caps caps[2]; /* playback and capture for DAI */
-- __le32 flag_mask; /* bitmask of flags to configure */
-- __le32 flags; /* SND_SOC_TPLG_LNK_FLGBIT_* flag value */
-- struct snd_soc_tplg_private priv;
--} __attribute__((packed));
--
--
--/*
-- * Describes the physical link runtime supported configs or params
-- *
-- * File block representation for physical link config :-
-- * +-----------------------------------+-----+
-- * | struct snd_soc_tplg_hdr | 1 |
-- * +-----------------------------------+-----+
-- * | struct snd_soc_tplg_link_config | N |
-- * +-----------------------------------+-----+
-- */
--struct snd_soc_tplg_link_config {
-- __le32 size; /* in bytes of this structure */
-- __le32 id; /* unique ID - used to match */
-- char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; /* name - used to match */
-- char stream_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; /* stream name - used to match */
-- struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX]; /* supported configs playback and captrure */
-- __le32 num_streams; /* number of streams */
-- struct snd_soc_tplg_hw_config hw_config[SND_SOC_TPLG_HW_CONFIG_MAX]; /* hw configs */
-- __le32 num_hw_configs; /* number of hw configs */
-- __le32 default_hw_config_id; /* default hw config ID for init */
-- __le32 flag_mask; /* bitmask of flags to configure */
-- __le32 flags; /* SND_SOC_TPLG_LNK_FLGBIT_* flag value */
-- struct snd_soc_tplg_private priv;
--} __attribute__((packed));
--
--/*
-- * Describes SW/FW specific features of physical DAI.
-- * It can be used to configure backend DAIs for DPCM.
-- *
-- * File block representation for physical DAI :-
-- * +-----------------------------------+-----+
-- * | struct snd_soc_tplg_hdr | 1 |
-- * +-----------------------------------+-----+
-- * | struct snd_soc_tplg_dai | N |
-- * +-----------------------------------+-----+
-- */
--struct snd_soc_tplg_dai {
-- __le32 size; /* in bytes of this structure */
-- char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; /* name - used to match */
-- __le32 dai_id; /* unique ID - used to match */
-- __le32 playback; /* supports playback mode */
-- __le32 capture; /* supports capture mode */
-- struct snd_soc_tplg_stream_caps caps[2]; /* playback and capture for DAI */
-- __le32 flag_mask; /* bitmask of flags to configure */
-- __le32 flags; /* SND_SOC_TPLG_DAI_FLGBIT_* */
-- struct snd_soc_tplg_private priv;
--} __attribute__((packed));
--
--/*
-- * Old version of ABI structs, supported for backward compatibility.
-- */
--
--/* Manifest v4 */
--struct snd_soc_tplg_manifest_v4 {
-- __le32 size; /* in bytes of this structure */
-- __le32 control_elems; /* number of control elements */
-- __le32 widget_elems; /* number of widget elements */
-- __le32 graph_elems; /* number of graph elements */
-- __le32 pcm_elems; /* number of PCM elements */
-- __le32 dai_link_elems; /* number of DAI link elements */
-- struct snd_soc_tplg_private priv;
--} __packed;
--
--/* Stream Capabilities v4 */
--struct snd_soc_tplg_stream_caps_v4 {
-- __le32 size; /* in bytes of this structure */
-- char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-- __le64 formats; /* supported formats SNDRV_PCM_FMTBIT_* */
-- __le32 rates; /* supported rates SNDRV_PCM_RATE_* */
-- __le32 rate_min; /* min rate */
-- __le32 rate_max; /* max rate */
-- __le32 channels_min; /* min channels */
-- __le32 channels_max; /* max channels */
-- __le32 periods_min; /* min number of periods */
-- __le32 periods_max; /* max number of periods */
-- __le32 period_size_min; /* min period size bytes */
-- __le32 period_size_max; /* max period size bytes */
-- __le32 buffer_size_min; /* min buffer size bytes */
-- __le32 buffer_size_max; /* max buffer size bytes */
--} __packed;
--
--/* PCM v4 */
--struct snd_soc_tplg_pcm_v4 {
-- __le32 size; /* in bytes of this structure */
-- char pcm_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-- char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-- __le32 pcm_id; /* unique ID - used to match with DAI link */
-- __le32 dai_id; /* unique ID - used to match */
-- __le32 playback; /* supports playback mode */
-- __le32 capture; /* supports capture mode */
-- __le32 compress; /* 1 = compressed; 0 = PCM */
-- struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX]; /* for DAI link */
-- __le32 num_streams; /* number of streams */
-- struct snd_soc_tplg_stream_caps_v4 caps[2]; /* playback and capture for DAI */
--} __packed;
--
--/* Physical link config v4 */
--struct snd_soc_tplg_link_config_v4 {
-- __le32 size; /* in bytes of this structure */
-- __le32 id; /* unique ID - used to match */
-- struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX]; /* supported configs playback and captrure */
-- __le32 num_streams; /* number of streams */
--} __packed;
--
--#endif
-+#include <alsa/sound/uapi/asoc.h>
-diff --git a/include/sound/asound.h b/include/sound/asound.h
-index df1153ce..3be4d850 100644
---- a/include/sound/asound.h
-+++ b/include/sound/asound.h
-@@ -1,1038 +1 @@
--/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
--/*
-- * Advanced Linux Sound Architecture - ALSA - Driver
-- * Copyright (c) 1994-2003 by Jaroslav Kysela <perex@perex.cz>,
-- * Abramo Bagnara <abramo@alsa-project.org>
-- *
-- *
-- * 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 _UAPI__SOUND_ASOUND_H
--#define _UAPI__SOUND_ASOUND_H
--
--#if defined(__KERNEL__) || defined(__linux__)
--#include <linux/types.h>
--#else
--#include <sys/ioctl.h>
--#endif
--
--#ifndef __KERNEL__
--#include <stdlib.h>
--#include <time.h>
--#endif
--
--/*
-- * protocol version
-- */
--
--#define SNDRV_PROTOCOL_VERSION(major, minor, subminor) (((major)<<16)|((minor)<<8)|(subminor))
--#define SNDRV_PROTOCOL_MAJOR(version) (((version)>>16)&0xffff)
--#define SNDRV_PROTOCOL_MINOR(version) (((version)>>8)&0xff)
--#define SNDRV_PROTOCOL_MICRO(version) ((version)&0xff)
--#define SNDRV_PROTOCOL_INCOMPATIBLE(kversion, uversion) \
-- (SNDRV_PROTOCOL_MAJOR(kversion) != SNDRV_PROTOCOL_MAJOR(uversion) || \
-- (SNDRV_PROTOCOL_MAJOR(kversion) == SNDRV_PROTOCOL_MAJOR(uversion) && \
-- SNDRV_PROTOCOL_MINOR(kversion) != SNDRV_PROTOCOL_MINOR(uversion)))
--
--/****************************************************************************
-- * *
-- * Digital audio interface *
-- * *
-- ****************************************************************************/
--
--struct snd_aes_iec958 {
-- unsigned char status[24]; /* AES/IEC958 channel status bits */
-- unsigned char subcode[147]; /* AES/IEC958 subcode bits */
-- unsigned char pad; /* nothing */
-- unsigned char dig_subframe[4]; /* AES/IEC958 subframe bits */
--};
--
--/****************************************************************************
-- * *
-- * CEA-861 Audio InfoFrame. Used in HDMI and DisplayPort *
-- * *
-- ****************************************************************************/
--
--struct snd_cea_861_aud_if {
-- unsigned char db1_ct_cc; /* coding type and channel count */
-- unsigned char db2_sf_ss; /* sample frequency and size */
-- unsigned char db3; /* not used, all zeros */
-- unsigned char db4_ca; /* channel allocation code */
-- unsigned char db5_dminh_lsv; /* downmix inhibit & level-shit values */
--};
--
--/****************************************************************************
-- * *
-- * Section for driver hardware dependent interface - /dev/snd/hw? *
-- * *
-- ****************************************************************************/
--
--#define SNDRV_HWDEP_VERSION SNDRV_PROTOCOL_VERSION(1, 0, 1)
--
--enum {
-- SNDRV_HWDEP_IFACE_OPL2 = 0,
-- SNDRV_HWDEP_IFACE_OPL3,
-- SNDRV_HWDEP_IFACE_OPL4,
-- SNDRV_HWDEP_IFACE_SB16CSP, /* Creative Signal Processor */
-- SNDRV_HWDEP_IFACE_EMU10K1, /* FX8010 processor in EMU10K1 chip */
-- SNDRV_HWDEP_IFACE_YSS225, /* Yamaha FX processor */
-- SNDRV_HWDEP_IFACE_ICS2115, /* Wavetable synth */
-- SNDRV_HWDEP_IFACE_SSCAPE, /* Ensoniq SoundScape ISA card (MC68EC000) */
-- SNDRV_HWDEP_IFACE_VX, /* Digigram VX cards */
-- SNDRV_HWDEP_IFACE_MIXART, /* Digigram miXart cards */
-- SNDRV_HWDEP_IFACE_USX2Y, /* Tascam US122, US224 & US428 usb */
-- SNDRV_HWDEP_IFACE_EMUX_WAVETABLE, /* EmuX wavetable */
-- SNDRV_HWDEP_IFACE_BLUETOOTH, /* Bluetooth audio */
-- SNDRV_HWDEP_IFACE_USX2Y_PCM, /* Tascam US122, US224 & US428 rawusb pcm */
-- SNDRV_HWDEP_IFACE_PCXHR, /* Digigram PCXHR */
-- SNDRV_HWDEP_IFACE_SB_RC, /* SB Extigy/Audigy2NX remote control */
-- SNDRV_HWDEP_IFACE_HDA, /* HD-audio */
-- SNDRV_HWDEP_IFACE_USB_STREAM, /* direct access to usb stream */
-- SNDRV_HWDEP_IFACE_FW_DICE, /* TC DICE FireWire device */
-- SNDRV_HWDEP_IFACE_FW_FIREWORKS, /* Echo Audio Fireworks based device */
-- SNDRV_HWDEP_IFACE_FW_BEBOB, /* BridgeCo BeBoB based device */
-- SNDRV_HWDEP_IFACE_FW_OXFW, /* Oxford OXFW970/971 based device */
-- SNDRV_HWDEP_IFACE_FW_DIGI00X, /* Digidesign Digi 002/003 family */
-- SNDRV_HWDEP_IFACE_FW_TASCAM, /* TASCAM FireWire series */
-- SNDRV_HWDEP_IFACE_LINE6, /* Line6 USB processors */
-- SNDRV_HWDEP_IFACE_FW_MOTU, /* MOTU FireWire series */
-- SNDRV_HWDEP_IFACE_FW_FIREFACE, /* RME Fireface series */
--
-- /* Don't forget to change the following: */
-- SNDRV_HWDEP_IFACE_LAST = SNDRV_HWDEP_IFACE_FW_FIREFACE
--};
--
--struct snd_hwdep_info {
-- unsigned int device; /* WR: device number */
-- int card; /* R: card number */
-- unsigned char id[64]; /* ID (user selectable) */
-- unsigned char name[80]; /* hwdep name */
-- int iface; /* hwdep interface */
-- unsigned char reserved[64]; /* reserved for future */
--};
--
--/* generic DSP loader */
--struct snd_hwdep_dsp_status {
-- unsigned int version; /* R: driver-specific version */
-- unsigned char id[32]; /* R: driver-specific ID string */
-- unsigned int num_dsps; /* R: number of DSP images to transfer */
-- unsigned int dsp_loaded; /* R: bit flags indicating the loaded DSPs */
-- unsigned int chip_ready; /* R: 1 = initialization finished */
-- unsigned char reserved[16]; /* reserved for future use */
--};
--
--struct snd_hwdep_dsp_image {
-- unsigned int index; /* W: DSP index */
-- unsigned char name[64]; /* W: ID (e.g. file name) */
-- unsigned char __user *image; /* W: binary image */
-- size_t length; /* W: size of image in bytes */
-- unsigned long driver_data; /* W: driver-specific data */
--};
--
--#define SNDRV_HWDEP_IOCTL_PVERSION _IOR ('H', 0x00, int)
--#define SNDRV_HWDEP_IOCTL_INFO _IOR ('H', 0x01, struct snd_hwdep_info)
--#define SNDRV_HWDEP_IOCTL_DSP_STATUS _IOR('H', 0x02, struct snd_hwdep_dsp_status)
--#define SNDRV_HWDEP_IOCTL_DSP_LOAD _IOW('H', 0x03, struct snd_hwdep_dsp_image)
--
--/*****************************************************************************
-- * *
-- * Digital Audio (PCM) interface - /dev/snd/pcm?? *
-- * *
-- *****************************************************************************/
--
--#define SNDRV_PCM_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 14)
--
--typedef unsigned long snd_pcm_uframes_t;
--typedef signed long snd_pcm_sframes_t;
--
--enum {
-- SNDRV_PCM_CLASS_GENERIC = 0, /* standard mono or stereo device */
-- SNDRV_PCM_CLASS_MULTI, /* multichannel device */
-- SNDRV_PCM_CLASS_MODEM, /* software modem class */
-- SNDRV_PCM_CLASS_DIGITIZER, /* digitizer class */
-- /* Don't forget to change the following: */
-- SNDRV_PCM_CLASS_LAST = SNDRV_PCM_CLASS_DIGITIZER,
--};
--
--enum {
-- SNDRV_PCM_SUBCLASS_GENERIC_MIX = 0, /* mono or stereo subdevices are mixed together */
-- SNDRV_PCM_SUBCLASS_MULTI_MIX, /* multichannel subdevices are mixed together */
-- /* Don't forget to change the following: */
-- SNDRV_PCM_SUBCLASS_LAST = SNDRV_PCM_SUBCLASS_MULTI_MIX,
--};
--
--enum {
-- SNDRV_PCM_STREAM_PLAYBACK = 0,
-- SNDRV_PCM_STREAM_CAPTURE,
-- SNDRV_PCM_STREAM_LAST = SNDRV_PCM_STREAM_CAPTURE,
--};
--
--typedef int __bitwise snd_pcm_access_t;
--#define SNDRV_PCM_ACCESS_MMAP_INTERLEAVED ((__force snd_pcm_access_t) 0) /* interleaved mmap */
--#define SNDRV_PCM_ACCESS_MMAP_NONINTERLEAVED ((__force snd_pcm_access_t) 1) /* noninterleaved mmap */
--#define SNDRV_PCM_ACCESS_MMAP_COMPLEX ((__force snd_pcm_access_t) 2) /* complex mmap */
--#define SNDRV_PCM_ACCESS_RW_INTERLEAVED ((__force snd_pcm_access_t) 3) /* readi/writei */
--#define SNDRV_PCM_ACCESS_RW_NONINTERLEAVED ((__force snd_pcm_access_t) 4) /* readn/writen */
--#define SNDRV_PCM_ACCESS_LAST SNDRV_PCM_ACCESS_RW_NONINTERLEAVED
--
--typedef int __bitwise snd_pcm_format_t;
--#define SNDRV_PCM_FORMAT_S8 ((__force snd_pcm_format_t) 0)
--#define SNDRV_PCM_FORMAT_U8 ((__force snd_pcm_format_t) 1)
--#define SNDRV_PCM_FORMAT_S16_LE ((__force snd_pcm_format_t) 2)
--#define SNDRV_PCM_FORMAT_S16_BE ((__force snd_pcm_format_t) 3)
--#define SNDRV_PCM_FORMAT_U16_LE ((__force snd_pcm_format_t) 4)
--#define SNDRV_PCM_FORMAT_U16_BE ((__force snd_pcm_format_t) 5)
--#define SNDRV_PCM_FORMAT_S24_LE ((__force snd_pcm_format_t) 6) /* low three bytes */
--#define SNDRV_PCM_FORMAT_S24_BE ((__force snd_pcm_format_t) 7) /* low three bytes */
--#define SNDRV_PCM_FORMAT_U24_LE ((__force snd_pcm_format_t) 8) /* low three bytes */
--#define SNDRV_PCM_FORMAT_U24_BE ((__force snd_pcm_format_t) 9) /* low three bytes */
--#define SNDRV_PCM_FORMAT_S32_LE ((__force snd_pcm_format_t) 10)
--#define SNDRV_PCM_FORMAT_S32_BE ((__force snd_pcm_format_t) 11)
--#define SNDRV_PCM_FORMAT_U32_LE ((__force snd_pcm_format_t) 12)
--#define SNDRV_PCM_FORMAT_U32_BE ((__force snd_pcm_format_t) 13)
--#define SNDRV_PCM_FORMAT_FLOAT_LE ((__force snd_pcm_format_t) 14) /* 4-byte float, IEEE-754 32-bit, range -1.0 to 1.0 */
--#define SNDRV_PCM_FORMAT_FLOAT_BE ((__force snd_pcm_format_t) 15) /* 4-byte float, IEEE-754 32-bit, range -1.0 to 1.0 */
--#define SNDRV_PCM_FORMAT_FLOAT64_LE ((__force snd_pcm_format_t) 16) /* 8-byte float, IEEE-754 64-bit, range -1.0 to 1.0 */
--#define SNDRV_PCM_FORMAT_FLOAT64_BE ((__force snd_pcm_format_t) 17) /* 8-byte float, IEEE-754 64-bit, range -1.0 to 1.0 */
--#define SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE ((__force snd_pcm_format_t) 18) /* IEC-958 subframe, Little Endian */
--#define SNDRV_PCM_FORMAT_IEC958_SUBFRAME_BE ((__force snd_pcm_format_t) 19) /* IEC-958 subframe, Big Endian */
--#define SNDRV_PCM_FORMAT_MU_LAW ((__force snd_pcm_format_t) 20)
--#define SNDRV_PCM_FORMAT_A_LAW ((__force snd_pcm_format_t) 21)
--#define SNDRV_PCM_FORMAT_IMA_ADPCM ((__force snd_pcm_format_t) 22)
--#define SNDRV_PCM_FORMAT_MPEG ((__force snd_pcm_format_t) 23)
--#define SNDRV_PCM_FORMAT_GSM ((__force snd_pcm_format_t) 24)
--#define SNDRV_PCM_FORMAT_S20_LE ((__force snd_pcm_format_t) 25) /* in four bytes, LSB justified */
--#define SNDRV_PCM_FORMAT_S20_BE ((__force snd_pcm_format_t) 26) /* in four bytes, LSB justified */
--#define SNDRV_PCM_FORMAT_U20_LE ((__force snd_pcm_format_t) 27) /* in four bytes, LSB justified */
--#define SNDRV_PCM_FORMAT_U20_BE ((__force snd_pcm_format_t) 28) /* in four bytes, LSB justified */
--/* gap in the numbering for a future standard linear format */
--#define SNDRV_PCM_FORMAT_SPECIAL ((__force snd_pcm_format_t) 31)
--#define SNDRV_PCM_FORMAT_S24_3LE ((__force snd_pcm_format_t) 32) /* in three bytes */
--#define SNDRV_PCM_FORMAT_S24_3BE ((__force snd_pcm_format_t) 33) /* in three bytes */
--#define SNDRV_PCM_FORMAT_U24_3LE ((__force snd_pcm_format_t) 34) /* in three bytes */
--#define SNDRV_PCM_FORMAT_U24_3BE ((__force snd_pcm_format_t) 35) /* in three bytes */
--#define SNDRV_PCM_FORMAT_S20_3LE ((__force snd_pcm_format_t) 36) /* in three bytes */
--#define SNDRV_PCM_FORMAT_S20_3BE ((__force snd_pcm_format_t) 37) /* in three bytes */
--#define SNDRV_PCM_FORMAT_U20_3LE ((__force snd_pcm_format_t) 38) /* in three bytes */
--#define SNDRV_PCM_FORMAT_U20_3BE ((__force snd_pcm_format_t) 39) /* in three bytes */
--#define SNDRV_PCM_FORMAT_S18_3LE ((__force snd_pcm_format_t) 40) /* in three bytes */
--#define SNDRV_PCM_FORMAT_S18_3BE ((__force snd_pcm_format_t) 41) /* in three bytes */
--#define SNDRV_PCM_FORMAT_U18_3LE ((__force snd_pcm_format_t) 42) /* in three bytes */
--#define SNDRV_PCM_FORMAT_U18_3BE ((__force snd_pcm_format_t) 43) /* in three bytes */
--#define SNDRV_PCM_FORMAT_G723_24 ((__force snd_pcm_format_t) 44) /* 8 samples in 3 bytes */
--#define SNDRV_PCM_FORMAT_G723_24_1B ((__force snd_pcm_format_t) 45) /* 1 sample in 1 byte */
--#define SNDRV_PCM_FORMAT_G723_40 ((__force snd_pcm_format_t) 46) /* 8 Samples in 5 bytes */
--#define SNDRV_PCM_FORMAT_G723_40_1B ((__force snd_pcm_format_t) 47) /* 1 sample in 1 byte */
--#define SNDRV_PCM_FORMAT_DSD_U8 ((__force snd_pcm_format_t) 48) /* DSD, 1-byte samples DSD (x8) */
--#define SNDRV_PCM_FORMAT_DSD_U16_LE ((__force snd_pcm_format_t) 49) /* DSD, 2-byte samples DSD (x16), little endian */
--#define SNDRV_PCM_FORMAT_DSD_U32_LE ((__force snd_pcm_format_t) 50) /* DSD, 4-byte samples DSD (x32), little endian */
--#define SNDRV_PCM_FORMAT_DSD_U16_BE ((__force snd_pcm_format_t) 51) /* DSD, 2-byte samples DSD (x16), big endian */
--#define SNDRV_PCM_FORMAT_DSD_U32_BE ((__force snd_pcm_format_t) 52) /* DSD, 4-byte samples DSD (x32), big endian */
--#define SNDRV_PCM_FORMAT_LAST SNDRV_PCM_FORMAT_DSD_U32_BE
--#define SNDRV_PCM_FORMAT_FIRST SNDRV_PCM_FORMAT_S8
--
--#ifdef SNDRV_LITTLE_ENDIAN
--#define SNDRV_PCM_FORMAT_S16 SNDRV_PCM_FORMAT_S16_LE
--#define SNDRV_PCM_FORMAT_U16 SNDRV_PCM_FORMAT_U16_LE
--#define SNDRV_PCM_FORMAT_S24 SNDRV_PCM_FORMAT_S24_LE
--#define SNDRV_PCM_FORMAT_U24 SNDRV_PCM_FORMAT_U24_LE
--#define SNDRV_PCM_FORMAT_S32 SNDRV_PCM_FORMAT_S32_LE
--#define SNDRV_PCM_FORMAT_U32 SNDRV_PCM_FORMAT_U32_LE
--#define SNDRV_PCM_FORMAT_FLOAT SNDRV_PCM_FORMAT_FLOAT_LE
--#define SNDRV_PCM_FORMAT_FLOAT64 SNDRV_PCM_FORMAT_FLOAT64_LE
--#define SNDRV_PCM_FORMAT_IEC958_SUBFRAME SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE
--#define SNDRV_PCM_FORMAT_S20 SNDRV_PCM_FORMAT_S20_LE
--#define SNDRV_PCM_FORMAT_U20 SNDRV_PCM_FORMAT_U20_LE
--#endif
--#ifdef SNDRV_BIG_ENDIAN
--#define SNDRV_PCM_FORMAT_S16 SNDRV_PCM_FORMAT_S16_BE
--#define SNDRV_PCM_FORMAT_U16 SNDRV_PCM_FORMAT_U16_BE
--#define SNDRV_PCM_FORMAT_S24 SNDRV_PCM_FORMAT_S24_BE
--#define SNDRV_PCM_FORMAT_U24 SNDRV_PCM_FORMAT_U24_BE
--#define SNDRV_PCM_FORMAT_S32 SNDRV_PCM_FORMAT_S32_BE
--#define SNDRV_PCM_FORMAT_U32 SNDRV_PCM_FORMAT_U32_BE
--#define SNDRV_PCM_FORMAT_FLOAT SNDRV_PCM_FORMAT_FLOAT_BE
--#define SNDRV_PCM_FORMAT_FLOAT64 SNDRV_PCM_FORMAT_FLOAT64_BE
--#define SNDRV_PCM_FORMAT_IEC958_SUBFRAME SNDRV_PCM_FORMAT_IEC958_SUBFRAME_BE
--#define SNDRV_PCM_FORMAT_S20 SNDRV_PCM_FORMAT_S20_BE
--#define SNDRV_PCM_FORMAT_U20 SNDRV_PCM_FORMAT_U20_BE
--#endif
--
--typedef int __bitwise snd_pcm_subformat_t;
--#define SNDRV_PCM_SUBFORMAT_STD ((__force snd_pcm_subformat_t) 0)
--#define SNDRV_PCM_SUBFORMAT_LAST SNDRV_PCM_SUBFORMAT_STD
--
--#define SNDRV_PCM_INFO_MMAP 0x00000001 /* hardware supports mmap */
--#define SNDRV_PCM_INFO_MMAP_VALID 0x00000002 /* period data are valid during transfer */
--#define SNDRV_PCM_INFO_DOUBLE 0x00000004 /* Double buffering needed for PCM start/stop */
--#define SNDRV_PCM_INFO_BATCH 0x00000010 /* double buffering */
--#define SNDRV_PCM_INFO_SYNC_APPLPTR 0x00000020 /* need the explicit sync of appl_ptr update */
--#define SNDRV_PCM_INFO_INTERLEAVED 0x00000100 /* channels are interleaved */
--#define SNDRV_PCM_INFO_NONINTERLEAVED 0x00000200 /* channels are not interleaved */
--#define SNDRV_PCM_INFO_COMPLEX 0x00000400 /* complex frame organization (mmap only) */
--#define SNDRV_PCM_INFO_BLOCK_TRANSFER 0x00010000 /* hardware transfer block of samples */
--#define SNDRV_PCM_INFO_OVERRANGE 0x00020000 /* hardware supports ADC (capture) overrange detection */
--#define SNDRV_PCM_INFO_RESUME 0x00040000 /* hardware supports stream resume after suspend */
--#define SNDRV_PCM_INFO_PAUSE 0x00080000 /* pause ioctl is supported */
--#define SNDRV_PCM_INFO_HALF_DUPLEX 0x00100000 /* only half duplex */
--#define SNDRV_PCM_INFO_JOINT_DUPLEX 0x00200000 /* playback and capture stream are somewhat correlated */
--#define SNDRV_PCM_INFO_SYNC_START 0x00400000 /* pcm support some kind of sync go */
--#define SNDRV_PCM_INFO_NO_PERIOD_WAKEUP 0x00800000 /* period wakeup can be disabled */
--#define SNDRV_PCM_INFO_HAS_WALL_CLOCK 0x01000000 /* (Deprecated)has audio wall clock for audio/system time sync */
--#define SNDRV_PCM_INFO_HAS_LINK_ATIME 0x01000000 /* report hardware link audio time, reset on startup */
--#define SNDRV_PCM_INFO_HAS_LINK_ABSOLUTE_ATIME 0x02000000 /* report absolute hardware link audio time, not reset on startup */
--#define SNDRV_PCM_INFO_HAS_LINK_ESTIMATED_ATIME 0x04000000 /* report estimated link audio time */
--#define SNDRV_PCM_INFO_HAS_LINK_SYNCHRONIZED_ATIME 0x08000000 /* report synchronized audio/system time */
--
--#define SNDRV_PCM_INFO_DRAIN_TRIGGER 0x40000000 /* internal kernel flag - trigger in drain */
--#define SNDRV_PCM_INFO_FIFO_IN_FRAMES 0x80000000 /* internal kernel flag - FIFO size is in frames */
--
--
--
--typedef int __bitwise snd_pcm_state_t;
--#define SNDRV_PCM_STATE_OPEN ((__force snd_pcm_state_t) 0) /* stream is open */
--#define SNDRV_PCM_STATE_SETUP ((__force snd_pcm_state_t) 1) /* stream has a setup */
--#define SNDRV_PCM_STATE_PREPARED ((__force snd_pcm_state_t) 2) /* stream is ready to start */
--#define SNDRV_PCM_STATE_RUNNING ((__force snd_pcm_state_t) 3) /* stream is running */
--#define SNDRV_PCM_STATE_XRUN ((__force snd_pcm_state_t) 4) /* stream reached an xrun */
--#define SNDRV_PCM_STATE_DRAINING ((__force snd_pcm_state_t) 5) /* stream is draining */
--#define SNDRV_PCM_STATE_PAUSED ((__force snd_pcm_state_t) 6) /* stream is paused */
--#define SNDRV_PCM_STATE_SUSPENDED ((__force snd_pcm_state_t) 7) /* hardware is suspended */
--#define SNDRV_PCM_STATE_DISCONNECTED ((__force snd_pcm_state_t) 8) /* hardware is disconnected */
--#define SNDRV_PCM_STATE_LAST SNDRV_PCM_STATE_DISCONNECTED
--
--enum {
-- SNDRV_PCM_MMAP_OFFSET_DATA = 0x00000000,
-- SNDRV_PCM_MMAP_OFFSET_STATUS = 0x80000000,
-- SNDRV_PCM_MMAP_OFFSET_CONTROL = 0x81000000,
--};
--
--union snd_pcm_sync_id {
-- unsigned char id[16];
-- unsigned short id16[8];
-- unsigned int id32[4];
--};
--
--struct snd_pcm_info {
-- unsigned int device; /* RO/WR (control): device number */
-- unsigned int subdevice; /* RO/WR (control): subdevice number */
-- int stream; /* RO/WR (control): stream direction */
-- int card; /* R: card number */
-- unsigned char id[64]; /* ID (user selectable) */
-- unsigned char name[80]; /* name of this device */
-- unsigned char subname[32]; /* subdevice name */
-- int dev_class; /* SNDRV_PCM_CLASS_* */
-- int dev_subclass; /* SNDRV_PCM_SUBCLASS_* */
-- unsigned int subdevices_count;
-- unsigned int subdevices_avail;
-- union snd_pcm_sync_id sync; /* hardware synchronization ID */
-- unsigned char reserved[64]; /* reserved for future... */
--};
--
--typedef int snd_pcm_hw_param_t;
--#define SNDRV_PCM_HW_PARAM_ACCESS 0 /* Access type */
--#define SNDRV_PCM_HW_PARAM_FORMAT 1 /* Format */
--#define SNDRV_PCM_HW_PARAM_SUBFORMAT 2 /* Subformat */
--#define SNDRV_PCM_HW_PARAM_FIRST_MASK SNDRV_PCM_HW_PARAM_ACCESS
--#define SNDRV_PCM_HW_PARAM_LAST_MASK SNDRV_PCM_HW_PARAM_SUBFORMAT
--
--#define SNDRV_PCM_HW_PARAM_SAMPLE_BITS 8 /* Bits per sample */
--#define SNDRV_PCM_HW_PARAM_FRAME_BITS 9 /* Bits per frame */
--#define SNDRV_PCM_HW_PARAM_CHANNELS 10 /* Channels */
--#define SNDRV_PCM_HW_PARAM_RATE 11 /* Approx rate */
--#define SNDRV_PCM_HW_PARAM_PERIOD_TIME 12 /* Approx distance between
-- * interrupts in us
-- */
--#define SNDRV_PCM_HW_PARAM_PERIOD_SIZE 13 /* Approx frames between
-- * interrupts
-- */
--#define SNDRV_PCM_HW_PARAM_PERIOD_BYTES 14 /* Approx bytes between
-- * interrupts
-- */
--#define SNDRV_PCM_HW_PARAM_PERIODS 15 /* Approx interrupts per
-- * buffer
-- */
--#define SNDRV_PCM_HW_PARAM_BUFFER_TIME 16 /* Approx duration of buffer
-- * in us
-- */
--#define SNDRV_PCM_HW_PARAM_BUFFER_SIZE 17 /* Size of buffer in frames */
--#define SNDRV_PCM_HW_PARAM_BUFFER_BYTES 18 /* Size of buffer in bytes */
--#define SNDRV_PCM_HW_PARAM_TICK_TIME 19 /* Approx tick duration in us */
--#define SNDRV_PCM_HW_PARAM_FIRST_INTERVAL SNDRV_PCM_HW_PARAM_SAMPLE_BITS
--#define SNDRV_PCM_HW_PARAM_LAST_INTERVAL SNDRV_PCM_HW_PARAM_TICK_TIME
--
--#define SNDRV_PCM_HW_PARAMS_NORESAMPLE (1<<0) /* avoid rate resampling */
--#define SNDRV_PCM_HW_PARAMS_EXPORT_BUFFER (1<<1) /* export buffer */
--#define SNDRV_PCM_HW_PARAMS_NO_PERIOD_WAKEUP (1<<2) /* disable period wakeups */
--
--struct snd_interval {
-- unsigned int min, max;
-- unsigned int openmin:1,
-- openmax:1,
-- integer:1,
-- empty:1;
--};
--
--#define SNDRV_MASK_MAX 256
--
--struct snd_mask {
-- __u32 bits[(SNDRV_MASK_MAX+31)/32];
--};
--
--struct snd_pcm_hw_params {
-- unsigned int flags;
-- struct snd_mask masks[SNDRV_PCM_HW_PARAM_LAST_MASK -
-- SNDRV_PCM_HW_PARAM_FIRST_MASK + 1];
-- struct snd_mask mres[5]; /* reserved masks */
-- struct snd_interval intervals[SNDRV_PCM_HW_PARAM_LAST_INTERVAL -
-- SNDRV_PCM_HW_PARAM_FIRST_INTERVAL + 1];
-- struct snd_interval ires[9]; /* reserved intervals */
-- unsigned int rmask; /* W: requested masks */
-- unsigned int cmask; /* R: changed masks */
-- unsigned int info; /* R: Info flags for returned setup */
-- unsigned int msbits; /* R: used most significant bits */
-- unsigned int rate_num; /* R: rate numerator */
-- unsigned int rate_den; /* R: rate denominator */
-- snd_pcm_uframes_t fifo_size; /* R: chip FIFO size in frames */
-- unsigned char reserved[64]; /* reserved for future */
--};
--
--enum {
-- SNDRV_PCM_TSTAMP_NONE = 0,
-- SNDRV_PCM_TSTAMP_ENABLE,
-- SNDRV_PCM_TSTAMP_LAST = SNDRV_PCM_TSTAMP_ENABLE,
--};
--
--struct snd_pcm_sw_params {
-- int tstamp_mode; /* timestamp mode */
-- unsigned int period_step;
-- unsigned int sleep_min; /* min ticks to sleep */
-- snd_pcm_uframes_t avail_min; /* min avail frames for wakeup */
-- snd_pcm_uframes_t xfer_align; /* obsolete: xfer size need to be a multiple */
-- snd_pcm_uframes_t start_threshold; /* min hw_avail frames for automatic start */
-- snd_pcm_uframes_t stop_threshold; /* min avail frames for automatic stop */
-- snd_pcm_uframes_t silence_threshold; /* min distance from noise for silence filling */
-- snd_pcm_uframes_t silence_size; /* silence block size */
-- snd_pcm_uframes_t boundary; /* pointers wrap point */
-- unsigned int proto; /* protocol version */
-- unsigned int tstamp_type; /* timestamp type (req. proto >= 2.0.12) */
-- unsigned char reserved[56]; /* reserved for future */
--};
--
--struct snd_pcm_channel_info {
-- unsigned int channel;
-- __kernel_off_t offset; /* mmap offset */
-- unsigned int first; /* offset to first sample in bits */
-- unsigned int step; /* samples distance in bits */
--};
--
--enum {
-- /*
-- * first definition for backwards compatibility only,
-- * maps to wallclock/link time for HDAudio playback and DEFAULT/DMA time for everything else
-- */
-- SNDRV_PCM_AUDIO_TSTAMP_TYPE_COMPAT = 0,
--
-- /* timestamp definitions */
-- SNDRV_PCM_AUDIO_TSTAMP_TYPE_DEFAULT = 1, /* DMA time, reported as per hw_ptr */
-- SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK = 2, /* link time reported by sample or wallclock counter, reset on startup */
-- SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_ABSOLUTE = 3, /* link time reported by sample or wallclock counter, not reset on startup */
-- SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_ESTIMATED = 4, /* link time estimated indirectly */
-- SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_SYNCHRONIZED = 5, /* link time synchronized with system time */
-- SNDRV_PCM_AUDIO_TSTAMP_TYPE_LAST = SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_SYNCHRONIZED
--};
--
--struct snd_pcm_status {
-- snd_pcm_state_t state; /* stream state */
-- struct timespec trigger_tstamp; /* time when stream was started/stopped/paused */
-- struct timespec tstamp; /* reference timestamp */
-- snd_pcm_uframes_t appl_ptr; /* appl ptr */
-- snd_pcm_uframes_t hw_ptr; /* hw ptr */
-- snd_pcm_sframes_t delay; /* current delay in frames */
-- snd_pcm_uframes_t avail; /* number of frames available */
-- snd_pcm_uframes_t avail_max; /* max frames available on hw since last status */
-- snd_pcm_uframes_t overrange; /* count of ADC (capture) overrange detections from last status */
-- snd_pcm_state_t suspended_state; /* suspended stream state */
-- __u32 audio_tstamp_data; /* needed for 64-bit alignment, used for configs/report to/from userspace */
-- struct timespec audio_tstamp; /* sample counter, wall clock, PHC or on-demand sync'ed */
-- struct timespec driver_tstamp; /* useful in case reference system tstamp is reported with delay */
-- __u32 audio_tstamp_accuracy; /* in ns units, only valid if indicated in audio_tstamp_data */
-- unsigned char reserved[52-2*sizeof(struct timespec)]; /* must be filled with zero */
--};
--
--struct snd_pcm_mmap_status {
-- snd_pcm_state_t state; /* RO: state - SNDRV_PCM_STATE_XXXX */
-- int pad1; /* Needed for 64 bit alignment */
-- snd_pcm_uframes_t hw_ptr; /* RO: hw ptr (0...boundary-1) */
-- struct timespec tstamp; /* Timestamp */
-- snd_pcm_state_t suspended_state; /* RO: suspended stream state */
-- struct timespec audio_tstamp; /* from sample counter or wall clock */
--};
--
--struct snd_pcm_mmap_control {
-- snd_pcm_uframes_t appl_ptr; /* RW: appl ptr (0...boundary-1) */
-- snd_pcm_uframes_t avail_min; /* RW: min available frames for wakeup */
--};
--
--#define SNDRV_PCM_SYNC_PTR_HWSYNC (1<<0) /* execute hwsync */
--#define SNDRV_PCM_SYNC_PTR_APPL (1<<1) /* get appl_ptr from driver (r/w op) */
--#define SNDRV_PCM_SYNC_PTR_AVAIL_MIN (1<<2) /* get avail_min from driver */
--
--struct snd_pcm_sync_ptr {
-- unsigned int flags;
-- union {
-- struct snd_pcm_mmap_status status;
-- unsigned char reserved[64];
-- } s;
-- union {
-- struct snd_pcm_mmap_control control;
-- unsigned char reserved[64];
-- } c;
--};
--
--struct snd_xferi {
-- snd_pcm_sframes_t result;
-- void __user *buf;
-- snd_pcm_uframes_t frames;
--};
--
--struct snd_xfern {
-- snd_pcm_sframes_t result;
-- void __user * __user *bufs;
-- snd_pcm_uframes_t frames;
--};
--
--enum {
-- SNDRV_PCM_TSTAMP_TYPE_GETTIMEOFDAY = 0, /* gettimeofday equivalent */
-- SNDRV_PCM_TSTAMP_TYPE_MONOTONIC, /* posix_clock_monotonic equivalent */
-- SNDRV_PCM_TSTAMP_TYPE_MONOTONIC_RAW, /* monotonic_raw (no NTP) */
-- SNDRV_PCM_TSTAMP_TYPE_LAST = SNDRV_PCM_TSTAMP_TYPE_MONOTONIC_RAW,
--};
--
--/* channel positions */
--enum {
-- SNDRV_CHMAP_UNKNOWN = 0,
-- SNDRV_CHMAP_NA, /* N/A, silent */
-- SNDRV_CHMAP_MONO, /* mono stream */
-- /* this follows the alsa-lib mixer channel value + 3 */
-- SNDRV_CHMAP_FL, /* front left */
-- SNDRV_CHMAP_FR, /* front right */
-- SNDRV_CHMAP_RL, /* rear left */
-- SNDRV_CHMAP_RR, /* rear right */
-- SNDRV_CHMAP_FC, /* front center */
-- SNDRV_CHMAP_LFE, /* LFE */
-- SNDRV_CHMAP_SL, /* side left */
-- SNDRV_CHMAP_SR, /* side right */
-- SNDRV_CHMAP_RC, /* rear center */
-- /* new definitions */
-- SNDRV_CHMAP_FLC, /* front left center */
-- SNDRV_CHMAP_FRC, /* front right center */
-- SNDRV_CHMAP_RLC, /* rear left center */
-- SNDRV_CHMAP_RRC, /* rear right center */
-- SNDRV_CHMAP_FLW, /* front left wide */
-- SNDRV_CHMAP_FRW, /* front right wide */
-- SNDRV_CHMAP_FLH, /* front left high */
-- SNDRV_CHMAP_FCH, /* front center high */
-- SNDRV_CHMAP_FRH, /* front right high */
-- SNDRV_CHMAP_TC, /* top center */
-- SNDRV_CHMAP_TFL, /* top front left */
-- SNDRV_CHMAP_TFR, /* top front right */
-- SNDRV_CHMAP_TFC, /* top front center */
-- SNDRV_CHMAP_TRL, /* top rear left */
-- SNDRV_CHMAP_TRR, /* top rear right */
-- SNDRV_CHMAP_TRC, /* top rear center */
-- /* new definitions for UAC2 */
-- SNDRV_CHMAP_TFLC, /* top front left center */
-- SNDRV_CHMAP_TFRC, /* top front right center */
-- SNDRV_CHMAP_TSL, /* top side left */
-- SNDRV_CHMAP_TSR, /* top side right */
-- SNDRV_CHMAP_LLFE, /* left LFE */
-- SNDRV_CHMAP_RLFE, /* right LFE */
-- SNDRV_CHMAP_BC, /* bottom center */
-- SNDRV_CHMAP_BLC, /* bottom left center */
-- SNDRV_CHMAP_BRC, /* bottom right center */
-- SNDRV_CHMAP_LAST = SNDRV_CHMAP_BRC,
--};
--
--#define SNDRV_CHMAP_POSITION_MASK 0xffff
--#define SNDRV_CHMAP_PHASE_INVERSE (0x01 << 16)
--#define SNDRV_CHMAP_DRIVER_SPEC (0x02 << 16)
--
--#define SNDRV_PCM_IOCTL_PVERSION _IOR('A', 0x00, int)
--#define SNDRV_PCM_IOCTL_INFO _IOR('A', 0x01, struct snd_pcm_info)
--#define SNDRV_PCM_IOCTL_TSTAMP _IOW('A', 0x02, int)
--#define SNDRV_PCM_IOCTL_TTSTAMP _IOW('A', 0x03, int)
--#define SNDRV_PCM_IOCTL_USER_PVERSION _IOW('A', 0x04, int)
--#define SNDRV_PCM_IOCTL_HW_REFINE _IOWR('A', 0x10, struct snd_pcm_hw_params)
--#define SNDRV_PCM_IOCTL_HW_PARAMS _IOWR('A', 0x11, struct snd_pcm_hw_params)
--#define SNDRV_PCM_IOCTL_HW_FREE _IO('A', 0x12)
--#define SNDRV_PCM_IOCTL_SW_PARAMS _IOWR('A', 0x13, struct snd_pcm_sw_params)
--#define SNDRV_PCM_IOCTL_STATUS _IOR('A', 0x20, struct snd_pcm_status)
--#define SNDRV_PCM_IOCTL_DELAY _IOR('A', 0x21, snd_pcm_sframes_t)
--#define SNDRV_PCM_IOCTL_HWSYNC _IO('A', 0x22)
--#define SNDRV_PCM_IOCTL_SYNC_PTR _IOWR('A', 0x23, struct snd_pcm_sync_ptr)
--#define SNDRV_PCM_IOCTL_STATUS_EXT _IOWR('A', 0x24, struct snd_pcm_status)
--#define SNDRV_PCM_IOCTL_CHANNEL_INFO _IOR('A', 0x32, struct snd_pcm_channel_info)
--#define SNDRV_PCM_IOCTL_PREPARE _IO('A', 0x40)
--#define SNDRV_PCM_IOCTL_RESET _IO('A', 0x41)
--#define SNDRV_PCM_IOCTL_START _IO('A', 0x42)
--#define SNDRV_PCM_IOCTL_DROP _IO('A', 0x43)
--#define SNDRV_PCM_IOCTL_DRAIN _IO('A', 0x44)
--#define SNDRV_PCM_IOCTL_PAUSE _IOW('A', 0x45, int)
--#define SNDRV_PCM_IOCTL_REWIND _IOW('A', 0x46, snd_pcm_uframes_t)
--#define SNDRV_PCM_IOCTL_RESUME _IO('A', 0x47)
--#define SNDRV_PCM_IOCTL_XRUN _IO('A', 0x48)
--#define SNDRV_PCM_IOCTL_FORWARD _IOW('A', 0x49, snd_pcm_uframes_t)
--#define SNDRV_PCM_IOCTL_WRITEI_FRAMES _IOW('A', 0x50, struct snd_xferi)
--#define SNDRV_PCM_IOCTL_READI_FRAMES _IOR('A', 0x51, struct snd_xferi)
--#define SNDRV_PCM_IOCTL_WRITEN_FRAMES _IOW('A', 0x52, struct snd_xfern)
--#define SNDRV_PCM_IOCTL_READN_FRAMES _IOR('A', 0x53, struct snd_xfern)
--#define SNDRV_PCM_IOCTL_LINK _IOW('A', 0x60, int)
--#define SNDRV_PCM_IOCTL_UNLINK _IO('A', 0x61)
--
--/*****************************************************************************
-- * *
-- * MIDI v1.0 interface *
-- * *
-- *****************************************************************************/
--
--/*
-- * Raw MIDI section - /dev/snd/midi??
-- */
--
--#define SNDRV_RAWMIDI_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 0)
--
--enum {
-- SNDRV_RAWMIDI_STREAM_OUTPUT = 0,
-- SNDRV_RAWMIDI_STREAM_INPUT,
-- SNDRV_RAWMIDI_STREAM_LAST = SNDRV_RAWMIDI_STREAM_INPUT,
--};
--
--#define SNDRV_RAWMIDI_INFO_OUTPUT 0x00000001
--#define SNDRV_RAWMIDI_INFO_INPUT 0x00000002
--#define SNDRV_RAWMIDI_INFO_DUPLEX 0x00000004
--
--struct snd_rawmidi_info {
-- unsigned int device; /* RO/WR (control): device number */
-- unsigned int subdevice; /* RO/WR (control): subdevice number */
-- int stream; /* WR: stream */
-- int card; /* R: card number */
-- unsigned int flags; /* SNDRV_RAWMIDI_INFO_XXXX */
-- unsigned char id[64]; /* ID (user selectable) */
-- unsigned char name[80]; /* name of device */
-- unsigned char subname[32]; /* name of active or selected subdevice */
-- unsigned int subdevices_count;
-- unsigned int subdevices_avail;
-- unsigned char reserved[64]; /* reserved for future use */
--};
--
--struct snd_rawmidi_params {
-- int stream;
-- size_t buffer_size; /* queue size in bytes */
-- size_t avail_min; /* minimum avail bytes for wakeup */
-- unsigned int no_active_sensing: 1; /* do not send active sensing byte in close() */
-- unsigned char reserved[16]; /* reserved for future use */
--};
--
--struct snd_rawmidi_status {
-- int stream;
-- struct timespec tstamp; /* Timestamp */
-- size_t avail; /* available bytes */
-- size_t xruns; /* count of overruns since last status (in bytes) */
-- unsigned char reserved[16]; /* reserved for future use */
--};
--
--#define SNDRV_RAWMIDI_IOCTL_PVERSION _IOR('W', 0x00, int)
--#define SNDRV_RAWMIDI_IOCTL_INFO _IOR('W', 0x01, struct snd_rawmidi_info)
--#define SNDRV_RAWMIDI_IOCTL_PARAMS _IOWR('W', 0x10, struct snd_rawmidi_params)
--#define SNDRV_RAWMIDI_IOCTL_STATUS _IOWR('W', 0x20, struct snd_rawmidi_status)
--#define SNDRV_RAWMIDI_IOCTL_DROP _IOW('W', 0x30, int)
--#define SNDRV_RAWMIDI_IOCTL_DRAIN _IOW('W', 0x31, int)
--
--/*
-- * Timer section - /dev/snd/timer
-- */
--
--#define SNDRV_TIMER_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 6)
--
--enum {
-- SNDRV_TIMER_CLASS_NONE = -1,
-- SNDRV_TIMER_CLASS_SLAVE = 0,
-- SNDRV_TIMER_CLASS_GLOBAL,
-- SNDRV_TIMER_CLASS_CARD,
-- SNDRV_TIMER_CLASS_PCM,
-- SNDRV_TIMER_CLASS_LAST = SNDRV_TIMER_CLASS_PCM,
--};
--
--/* slave timer classes */
--enum {
-- SNDRV_TIMER_SCLASS_NONE = 0,
-- SNDRV_TIMER_SCLASS_APPLICATION,
-- SNDRV_TIMER_SCLASS_SEQUENCER, /* alias */
-- SNDRV_TIMER_SCLASS_OSS_SEQUENCER, /* alias */
-- SNDRV_TIMER_SCLASS_LAST = SNDRV_TIMER_SCLASS_OSS_SEQUENCER,
--};
--
--/* global timers (device member) */
--#define SNDRV_TIMER_GLOBAL_SYSTEM 0
--#define SNDRV_TIMER_GLOBAL_RTC 1 /* unused */
--#define SNDRV_TIMER_GLOBAL_HPET 2
--#define SNDRV_TIMER_GLOBAL_HRTIMER 3
--
--/* info flags */
--#define SNDRV_TIMER_FLG_SLAVE (1<<0) /* cannot be controlled */
--
--struct snd_timer_id {
-- int dev_class;
-- int dev_sclass;
-- int card;
-- int device;
-- int subdevice;
--};
--
--struct snd_timer_ginfo {
-- struct snd_timer_id tid; /* requested timer ID */
-- unsigned int flags; /* timer flags - SNDRV_TIMER_FLG_* */
-- int card; /* card number */
-- unsigned char id[64]; /* timer identification */
-- unsigned char name[80]; /* timer name */
-- unsigned long reserved0; /* reserved for future use */
-- unsigned long resolution; /* average period resolution in ns */
-- unsigned long resolution_min; /* minimal period resolution in ns */
-- unsigned long resolution_max; /* maximal period resolution in ns */
-- unsigned int clients; /* active timer clients */
-- unsigned char reserved[32];
--};
--
--struct snd_timer_gparams {
-- struct snd_timer_id tid; /* requested timer ID */
-- unsigned long period_num; /* requested precise period duration (in seconds) - numerator */
-- unsigned long period_den; /* requested precise period duration (in seconds) - denominator */
-- unsigned char reserved[32];
--};
--
--struct snd_timer_gstatus {
-- struct snd_timer_id tid; /* requested timer ID */
-- unsigned long resolution; /* current period resolution in ns */
-- unsigned long resolution_num; /* precise current period resolution (in seconds) - numerator */
-- unsigned long resolution_den; /* precise current period resolution (in seconds) - denominator */
-- unsigned char reserved[32];
--};
--
--struct snd_timer_select {
-- struct snd_timer_id id; /* bind to timer ID */
-- unsigned char reserved[32]; /* reserved */
--};
--
--struct snd_timer_info {
-- unsigned int flags; /* timer flags - SNDRV_TIMER_FLG_* */
-- int card; /* card number */
-- unsigned char id[64]; /* timer identificator */
-- unsigned char name[80]; /* timer name */
-- unsigned long reserved0; /* reserved for future use */
-- unsigned long resolution; /* average period resolution in ns */
-- unsigned char reserved[64]; /* reserved */
--};
--
--#define SNDRV_TIMER_PSFLG_AUTO (1<<0) /* auto start, otherwise one-shot */
--#define SNDRV_TIMER_PSFLG_EXCLUSIVE (1<<1) /* exclusive use, precise start/stop/pause/continue */
--#define SNDRV_TIMER_PSFLG_EARLY_EVENT (1<<2) /* write early event to the poll queue */
--
--struct snd_timer_params {
-- unsigned int flags; /* flags - SNDRV_TIMER_PSFLG_* */
-- unsigned int ticks; /* requested resolution in ticks */
-- unsigned int queue_size; /* total size of queue (32-1024) */
-- unsigned int reserved0; /* reserved, was: failure locations */
-- unsigned int filter; /* event filter (bitmask of SNDRV_TIMER_EVENT_*) */
-- unsigned char reserved[60]; /* reserved */
--};
--
--struct snd_timer_status {
-- struct timespec tstamp; /* Timestamp - last update */
-- unsigned int resolution; /* current period resolution in ns */
-- unsigned int lost; /* counter of master tick lost */
-- unsigned int overrun; /* count of read queue overruns */
-- unsigned int queue; /* used queue size */
-- unsigned char reserved[64]; /* reserved */
--};
--
--#define SNDRV_TIMER_IOCTL_PVERSION _IOR('T', 0x00, int)
--#define SNDRV_TIMER_IOCTL_NEXT_DEVICE _IOWR('T', 0x01, struct snd_timer_id)
--#define SNDRV_TIMER_IOCTL_TREAD _IOW('T', 0x02, int)
--#define SNDRV_TIMER_IOCTL_GINFO _IOWR('T', 0x03, struct snd_timer_ginfo)
--#define SNDRV_TIMER_IOCTL_GPARAMS _IOW('T', 0x04, struct snd_timer_gparams)
--#define SNDRV_TIMER_IOCTL_GSTATUS _IOWR('T', 0x05, struct snd_timer_gstatus)
--#define SNDRV_TIMER_IOCTL_SELECT _IOW('T', 0x10, struct snd_timer_select)
--#define SNDRV_TIMER_IOCTL_INFO _IOR('T', 0x11, struct snd_timer_info)
--#define SNDRV_TIMER_IOCTL_PARAMS _IOW('T', 0x12, struct snd_timer_params)
--#define SNDRV_TIMER_IOCTL_STATUS _IOR('T', 0x14, struct snd_timer_status)
--/* The following four ioctls are changed since 1.0.9 due to confliction */
--#define SNDRV_TIMER_IOCTL_START _IO('T', 0xa0)
--#define SNDRV_TIMER_IOCTL_STOP _IO('T', 0xa1)
--#define SNDRV_TIMER_IOCTL_CONTINUE _IO('T', 0xa2)
--#define SNDRV_TIMER_IOCTL_PAUSE _IO('T', 0xa3)
--
--struct snd_timer_read {
-- unsigned int resolution;
-- unsigned int ticks;
--};
--
--enum {
-- SNDRV_TIMER_EVENT_RESOLUTION = 0, /* val = resolution in ns */
-- SNDRV_TIMER_EVENT_TICK, /* val = ticks */
-- SNDRV_TIMER_EVENT_START, /* val = resolution in ns */
-- SNDRV_TIMER_EVENT_STOP, /* val = 0 */
-- SNDRV_TIMER_EVENT_CONTINUE, /* val = resolution in ns */
-- SNDRV_TIMER_EVENT_PAUSE, /* val = 0 */
-- SNDRV_TIMER_EVENT_EARLY, /* val = 0, early event */
-- SNDRV_TIMER_EVENT_SUSPEND, /* val = 0 */
-- SNDRV_TIMER_EVENT_RESUME, /* val = resolution in ns */
-- /* master timer events for slave timer instances */
-- SNDRV_TIMER_EVENT_MSTART = SNDRV_TIMER_EVENT_START + 10,
-- SNDRV_TIMER_EVENT_MSTOP = SNDRV_TIMER_EVENT_STOP + 10,
-- SNDRV_TIMER_EVENT_MCONTINUE = SNDRV_TIMER_EVENT_CONTINUE + 10,
-- SNDRV_TIMER_EVENT_MPAUSE = SNDRV_TIMER_EVENT_PAUSE + 10,
-- SNDRV_TIMER_EVENT_MSUSPEND = SNDRV_TIMER_EVENT_SUSPEND + 10,
-- SNDRV_TIMER_EVENT_MRESUME = SNDRV_TIMER_EVENT_RESUME + 10,
--};
--
--struct snd_timer_tread {
-- int event;
-- struct timespec tstamp;
-- unsigned int val;
--};
--
--/****************************************************************************
-- * *
-- * Section for driver control interface - /dev/snd/control? *
-- * *
-- ****************************************************************************/
--
--#define SNDRV_CTL_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 7)
--
--struct snd_ctl_card_info {
-- int card; /* card number */
-- int pad; /* reserved for future (was type) */
-- unsigned char id[16]; /* ID of card (user selectable) */
-- unsigned char driver[16]; /* Driver name */
-- unsigned char name[32]; /* Short name of soundcard */
-- unsigned char longname[80]; /* name + info text about soundcard */
-- unsigned char reserved_[16]; /* reserved for future (was ID of mixer) */
-- unsigned char mixername[80]; /* visual mixer identification */
-- unsigned char components[128]; /* card components / fine identification, delimited with one space (AC97 etc..) */
--};
--
--typedef int __bitwise snd_ctl_elem_type_t;
--#define SNDRV_CTL_ELEM_TYPE_NONE ((__force snd_ctl_elem_type_t) 0) /* invalid */
--#define SNDRV_CTL_ELEM_TYPE_BOOLEAN ((__force snd_ctl_elem_type_t) 1) /* boolean type */
--#define SNDRV_CTL_ELEM_TYPE_INTEGER ((__force snd_ctl_elem_type_t) 2) /* integer type */
--#define SNDRV_CTL_ELEM_TYPE_ENUMERATED ((__force snd_ctl_elem_type_t) 3) /* enumerated type */
--#define SNDRV_CTL_ELEM_TYPE_BYTES ((__force snd_ctl_elem_type_t) 4) /* byte array */
--#define SNDRV_CTL_ELEM_TYPE_IEC958 ((__force snd_ctl_elem_type_t) 5) /* IEC958 (S/PDIF) setup */
--#define SNDRV_CTL_ELEM_TYPE_INTEGER64 ((__force snd_ctl_elem_type_t) 6) /* 64-bit integer type */
--#define SNDRV_CTL_ELEM_TYPE_LAST SNDRV_CTL_ELEM_TYPE_INTEGER64
--
--typedef int __bitwise snd_ctl_elem_iface_t;
--#define SNDRV_CTL_ELEM_IFACE_CARD ((__force snd_ctl_elem_iface_t) 0) /* global control */
--#define SNDRV_CTL_ELEM_IFACE_HWDEP ((__force snd_ctl_elem_iface_t) 1) /* hardware dependent device */
--#define SNDRV_CTL_ELEM_IFACE_MIXER ((__force snd_ctl_elem_iface_t) 2) /* virtual mixer device */
--#define SNDRV_CTL_ELEM_IFACE_PCM ((__force snd_ctl_elem_iface_t) 3) /* PCM device */
--#define SNDRV_CTL_ELEM_IFACE_RAWMIDI ((__force snd_ctl_elem_iface_t) 4) /* RawMidi device */
--#define SNDRV_CTL_ELEM_IFACE_TIMER ((__force snd_ctl_elem_iface_t) 5) /* timer device */
--#define SNDRV_CTL_ELEM_IFACE_SEQUENCER ((__force snd_ctl_elem_iface_t) 6) /* sequencer client */
--#define SNDRV_CTL_ELEM_IFACE_LAST SNDRV_CTL_ELEM_IFACE_SEQUENCER
--
--#define SNDRV_CTL_ELEM_ACCESS_READ (1<<0)
--#define SNDRV_CTL_ELEM_ACCESS_WRITE (1<<1)
--#define SNDRV_CTL_ELEM_ACCESS_READWRITE (SNDRV_CTL_ELEM_ACCESS_READ|SNDRV_CTL_ELEM_ACCESS_WRITE)
--#define SNDRV_CTL_ELEM_ACCESS_VOLATILE (1<<2) /* control value may be changed without a notification */
--#define SNDRV_CTL_ELEM_ACCESS_TIMESTAMP (1<<3) /* when was control changed */
--#define SNDRV_CTL_ELEM_ACCESS_TLV_READ (1<<4) /* TLV read is possible */
--#define SNDRV_CTL_ELEM_ACCESS_TLV_WRITE (1<<5) /* TLV write is possible */
--#define SNDRV_CTL_ELEM_ACCESS_TLV_READWRITE (SNDRV_CTL_ELEM_ACCESS_TLV_READ|SNDRV_CTL_ELEM_ACCESS_TLV_WRITE)
--#define SNDRV_CTL_ELEM_ACCESS_TLV_COMMAND (1<<6) /* TLV command is possible */
--#define SNDRV_CTL_ELEM_ACCESS_INACTIVE (1<<8) /* control does actually nothing, but may be updated */
--#define SNDRV_CTL_ELEM_ACCESS_LOCK (1<<9) /* write lock */
--#define SNDRV_CTL_ELEM_ACCESS_OWNER (1<<10) /* write lock owner */
--#define SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK (1<<28) /* kernel use a TLV callback */
--#define SNDRV_CTL_ELEM_ACCESS_USER (1<<29) /* user space element */
--/* bits 30 and 31 are obsoleted (for indirect access) */
--
--/* for further details see the ACPI and PCI power management specification */
--#define SNDRV_CTL_POWER_D0 0x0000 /* full On */
--#define SNDRV_CTL_POWER_D1 0x0100 /* partial On */
--#define SNDRV_CTL_POWER_D2 0x0200 /* partial On */
--#define SNDRV_CTL_POWER_D3 0x0300 /* Off */
--#define SNDRV_CTL_POWER_D3hot (SNDRV_CTL_POWER_D3|0x0000) /* Off, with power */
--#define SNDRV_CTL_POWER_D3cold (SNDRV_CTL_POWER_D3|0x0001) /* Off, without power */
--
--#define SNDRV_CTL_ELEM_ID_NAME_MAXLEN 44
--
--struct snd_ctl_elem_id {
-- unsigned int numid; /* numeric identifier, zero = invalid */
-- snd_ctl_elem_iface_t iface; /* interface identifier */
-- unsigned int device; /* device/client number */
-- unsigned int subdevice; /* subdevice (substream) number */
-- unsigned char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; /* ASCII name of item */
-- unsigned int index; /* index of item */
--};
--
--struct snd_ctl_elem_list {
-- unsigned int offset; /* W: first element ID to get */
-- unsigned int space; /* W: count of element IDs to get */
-- unsigned int used; /* R: count of element IDs set */
-- unsigned int count; /* R: count of all elements */
-- struct snd_ctl_elem_id __user *pids; /* R: IDs */
-- unsigned char reserved[50];
--};
--
--struct snd_ctl_elem_info {
-- struct snd_ctl_elem_id id; /* W: element ID */
-- snd_ctl_elem_type_t type; /* R: value type - SNDRV_CTL_ELEM_TYPE_* */
-- unsigned int access; /* R: value access (bitmask) - SNDRV_CTL_ELEM_ACCESS_* */
-- unsigned int count; /* count of values */
-- __kernel_pid_t owner; /* owner's PID of this control */
-- union {
-- struct {
-- long min; /* R: minimum value */
-- long max; /* R: maximum value */
-- long step; /* R: step (0 variable) */
-- } integer;
-- struct {
-- long long min; /* R: minimum value */
-- long long max; /* R: maximum value */
-- long long step; /* R: step (0 variable) */
-- } integer64;
-- struct {
-- unsigned int items; /* R: number of items */
-- unsigned int item; /* W: item number */
-- char name[64]; /* R: value name */
-- __u64 names_ptr; /* W: names list (ELEM_ADD only) */
-- unsigned int names_length;
-- } enumerated;
-- unsigned char reserved[128];
-- } value;
-- union {
-- unsigned short d[4]; /* dimensions */
-- unsigned short *d_ptr; /* indirect - obsoleted */
-- } dimen;
-- unsigned char reserved[64-4*sizeof(unsigned short)];
--};
--
--struct snd_ctl_elem_value {
-- struct snd_ctl_elem_id id; /* W: element ID */
-- unsigned int indirect: 1; /* W: indirect access - obsoleted */
-- union {
-- union {
-- long value[128];
-- long *value_ptr; /* obsoleted */
-- } integer;
-- union {
-- long long value[64];
-- long long *value_ptr; /* obsoleted */
-- } integer64;
-- union {
-- unsigned int item[128];
-- unsigned int *item_ptr; /* obsoleted */
-- } enumerated;
-- union {
-- unsigned char data[512];
-- unsigned char *data_ptr; /* obsoleted */
-- } bytes;
-- struct snd_aes_iec958 iec958;
-- } value; /* RO */
-- struct timespec tstamp;
-- unsigned char reserved[128-sizeof(struct timespec)];
--};
--
--struct snd_ctl_tlv {
-- unsigned int numid; /* control element numeric identification */
-- unsigned int length; /* in bytes aligned to 4 */
-- unsigned int tlv[0]; /* first TLV */
--};
--
--#define SNDRV_CTL_IOCTL_PVERSION _IOR('U', 0x00, int)
--#define SNDRV_CTL_IOCTL_CARD_INFO _IOR('U', 0x01, struct snd_ctl_card_info)
--#define SNDRV_CTL_IOCTL_ELEM_LIST _IOWR('U', 0x10, struct snd_ctl_elem_list)
--#define SNDRV_CTL_IOCTL_ELEM_INFO _IOWR('U', 0x11, struct snd_ctl_elem_info)
--#define SNDRV_CTL_IOCTL_ELEM_READ _IOWR('U', 0x12, struct snd_ctl_elem_value)
--#define SNDRV_CTL_IOCTL_ELEM_WRITE _IOWR('U', 0x13, struct snd_ctl_elem_value)
--#define SNDRV_CTL_IOCTL_ELEM_LOCK _IOW('U', 0x14, struct snd_ctl_elem_id)
--#define SNDRV_CTL_IOCTL_ELEM_UNLOCK _IOW('U', 0x15, struct snd_ctl_elem_id)
--#define SNDRV_CTL_IOCTL_SUBSCRIBE_EVENTS _IOWR('U', 0x16, int)
--#define SNDRV_CTL_IOCTL_ELEM_ADD _IOWR('U', 0x17, struct snd_ctl_elem_info)
--#define SNDRV_CTL_IOCTL_ELEM_REPLACE _IOWR('U', 0x18, struct snd_ctl_elem_info)
--#define SNDRV_CTL_IOCTL_ELEM_REMOVE _IOWR('U', 0x19, struct snd_ctl_elem_id)
--#define SNDRV_CTL_IOCTL_TLV_READ _IOWR('U', 0x1a, struct snd_ctl_tlv)
--#define SNDRV_CTL_IOCTL_TLV_WRITE _IOWR('U', 0x1b, struct snd_ctl_tlv)
--#define SNDRV_CTL_IOCTL_TLV_COMMAND _IOWR('U', 0x1c, struct snd_ctl_tlv)
--#define SNDRV_CTL_IOCTL_HWDEP_NEXT_DEVICE _IOWR('U', 0x20, int)
--#define SNDRV_CTL_IOCTL_HWDEP_INFO _IOR('U', 0x21, struct snd_hwdep_info)
--#define SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE _IOR('U', 0x30, int)
--#define SNDRV_CTL_IOCTL_PCM_INFO _IOWR('U', 0x31, struct snd_pcm_info)
--#define SNDRV_CTL_IOCTL_PCM_PREFER_SUBDEVICE _IOW('U', 0x32, int)
--#define SNDRV_CTL_IOCTL_RAWMIDI_NEXT_DEVICE _IOWR('U', 0x40, int)
--#define SNDRV_CTL_IOCTL_RAWMIDI_INFO _IOWR('U', 0x41, struct snd_rawmidi_info)
--#define SNDRV_CTL_IOCTL_RAWMIDI_PREFER_SUBDEVICE _IOW('U', 0x42, int)
--#define SNDRV_CTL_IOCTL_POWER _IOWR('U', 0xd0, int)
--#define SNDRV_CTL_IOCTL_POWER_STATE _IOR('U', 0xd1, int)
--
--/*
-- * Read interface.
-- */
--
--enum sndrv_ctl_event_type {
-- SNDRV_CTL_EVENT_ELEM = 0,
-- SNDRV_CTL_EVENT_LAST = SNDRV_CTL_EVENT_ELEM,
--};
--
--#define SNDRV_CTL_EVENT_MASK_VALUE (1<<0) /* element value was changed */
--#define SNDRV_CTL_EVENT_MASK_INFO (1<<1) /* element info was changed */
--#define SNDRV_CTL_EVENT_MASK_ADD (1<<2) /* element was added */
--#define SNDRV_CTL_EVENT_MASK_TLV (1<<3) /* element TLV tree was changed */
--#define SNDRV_CTL_EVENT_MASK_REMOVE (~0U) /* element was removed */
--
--struct snd_ctl_event {
-- int type; /* event type - SNDRV_CTL_EVENT_* */
-- union {
-- struct {
-- unsigned int mask;
-- struct snd_ctl_elem_id id;
-- } elem;
-- unsigned char data8[60];
-- } data;
--};
--
--/*
-- * Control names
-- */
--
--#define SNDRV_CTL_NAME_NONE ""
--#define SNDRV_CTL_NAME_PLAYBACK "Playback "
--#define SNDRV_CTL_NAME_CAPTURE "Capture "
--
--#define SNDRV_CTL_NAME_IEC958_NONE ""
--#define SNDRV_CTL_NAME_IEC958_SWITCH "Switch"
--#define SNDRV_CTL_NAME_IEC958_VOLUME "Volume"
--#define SNDRV_CTL_NAME_IEC958_DEFAULT "Default"
--#define SNDRV_CTL_NAME_IEC958_MASK "Mask"
--#define SNDRV_CTL_NAME_IEC958_CON_MASK "Con Mask"
--#define SNDRV_CTL_NAME_IEC958_PRO_MASK "Pro Mask"
--#define SNDRV_CTL_NAME_IEC958_PCM_STREAM "PCM Stream"
--#define SNDRV_CTL_NAME_IEC958(expl,direction,what) "IEC958 " expl SNDRV_CTL_NAME_##direction SNDRV_CTL_NAME_IEC958_##what
--
--#endif /* _UAPI__SOUND_ASOUND_H */
-+#include <alsa/sound/uapi/asound.h>
-diff --git a/include/sound/asound_fm.h b/include/sound/asound_fm.h
-index 8471f404..3e5da4d0 100644
---- a/include/sound/asound_fm.h
-+++ b/include/sound/asound_fm.h
-@@ -1,135 +1 @@
--/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
--#ifndef __SOUND_ASOUND_FM_H
--#define __SOUND_ASOUND_FM_H
--
--/*
-- * Advanced Linux Sound Architecture - ALSA
-- *
-- * Interface file between ALSA driver & user space
-- * Copyright (c) 1994-98 by Jaroslav Kysela <perex@perex.cz>,
-- * 4Front Technologies
-- *
-- * Direct FM control
-- *
-- * 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
-- *
-- */
--
--#define SNDRV_DM_FM_MODE_OPL2 0x00
--#define SNDRV_DM_FM_MODE_OPL3 0x01
--
--struct snd_dm_fm_info {
-- unsigned char fm_mode; /* OPL mode, see SNDRV_DM_FM_MODE_XXX */
-- unsigned char rhythm; /* percussion mode flag */
--};
--
--/*
-- * Data structure composing an FM "note" or sound event.
-- */
--
--struct snd_dm_fm_voice {
-- unsigned char op; /* operator cell (0 or 1) */
-- unsigned char voice; /* FM voice (0 to 17) */
--
-- unsigned char am; /* amplitude modulation */
-- unsigned char vibrato; /* vibrato effect */
-- unsigned char do_sustain; /* sustain phase */
-- unsigned char kbd_scale; /* keyboard scaling */
-- unsigned char harmonic; /* 4 bits: harmonic and multiplier */
-- unsigned char scale_level; /* 2 bits: decrease output freq rises */
-- unsigned char volume; /* 6 bits: volume */
--
-- unsigned char attack; /* 4 bits: attack rate */
-- unsigned char decay; /* 4 bits: decay rate */
-- unsigned char sustain; /* 4 bits: sustain level */
-- unsigned char release; /* 4 bits: release rate */
--
-- unsigned char feedback; /* 3 bits: feedback for op0 */
-- unsigned char connection; /* 0 for serial, 1 for parallel */
-- unsigned char left; /* stereo left */
-- unsigned char right; /* stereo right */
-- unsigned char waveform; /* 3 bits: waveform shape */
--};
--
--/*
-- * This describes an FM note by its voice, octave, frequency number (10bit)
-- * and key on/off.
-- */
--
--struct snd_dm_fm_note {
-- unsigned char voice; /* 0-17 voice channel */
-- unsigned char octave; /* 3 bits: what octave to play */
-- unsigned int fnum; /* 10 bits: frequency number */
-- unsigned char key_on; /* set for active, clear for silent */
--};
--
--/*
-- * FM parameters that apply globally to all voices, and thus are not "notes"
-- */
--
--struct snd_dm_fm_params {
-- unsigned char am_depth; /* amplitude modulation depth (1=hi) */
-- unsigned char vib_depth; /* vibrato depth (1=hi) */
-- unsigned char kbd_split; /* keyboard split */
-- unsigned char rhythm; /* percussion mode select */
--
-- /* This block is the percussion instrument data */
-- unsigned char bass;
-- unsigned char snare;
-- unsigned char tomtom;
-- unsigned char cymbal;
-- unsigned char hihat;
--};
--
--/*
-- * FM mode ioctl settings
-- */
--
--#define SNDRV_DM_FM_IOCTL_INFO _IOR('H', 0x20, struct snd_dm_fm_info)
--#define SNDRV_DM_FM_IOCTL_RESET _IO ('H', 0x21)
--#define SNDRV_DM_FM_IOCTL_PLAY_NOTE _IOW('H', 0x22, struct snd_dm_fm_note)
--#define SNDRV_DM_FM_IOCTL_SET_VOICE _IOW('H', 0x23, struct snd_dm_fm_voice)
--#define SNDRV_DM_FM_IOCTL_SET_PARAMS _IOW('H', 0x24, struct snd_dm_fm_params)
--#define SNDRV_DM_FM_IOCTL_SET_MODE _IOW('H', 0x25, int)
--/* for OPL3 only */
--#define SNDRV_DM_FM_IOCTL_SET_CONNECTION _IOW('H', 0x26, int)
--/* SBI patch management */
--#define SNDRV_DM_FM_IOCTL_CLEAR_PATCHES _IO ('H', 0x40)
--
--#define SNDRV_DM_FM_OSS_IOCTL_RESET 0x20
--#define SNDRV_DM_FM_OSS_IOCTL_PLAY_NOTE 0x21
--#define SNDRV_DM_FM_OSS_IOCTL_SET_VOICE 0x22
--#define SNDRV_DM_FM_OSS_IOCTL_SET_PARAMS 0x23
--#define SNDRV_DM_FM_OSS_IOCTL_SET_MODE 0x24
--#define SNDRV_DM_FM_OSS_IOCTL_SET_OPL 0x25
--
--/*
-- * Patch Record - fixed size for write
-- */
--
--#define FM_KEY_SBI "SBI\032"
--#define FM_KEY_2OP "2OP\032"
--#define FM_KEY_4OP "4OP\032"
--
--struct sbi_patch {
-- unsigned char prog;
-- unsigned char bank;
-- char key[4];
-- char name[25];
-- char extension[7];
-- unsigned char data[32];
--};
--
--#endif /* __SOUND_ASOUND_FM_H */
-+#include <alsa/sound/uapi/asound_fm.h>
-diff --git a/include/sound/emu10k1.h b/include/sound/emu10k1.h
-index 042c5a6f..f06ecee5 100644
---- a/include/sound/emu10k1.h
-+++ b/include/sound/emu10k1.h
-@@ -1,381 +1,2 @@
--/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
--/*
-- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>,
-- * Creative Labs, Inc.
-- * Definitions for EMU10K1 (SB Live!) chips
-- *
-- *
-- * 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 _UAPI__SOUND_EMU10K1_H
--#define _UAPI__SOUND_EMU10K1_H
--
--#include <linux/types.h>
--#include <sound/asound.h>
--
--/*
-- * ---- FX8010 ----
-- */
--
--#define EMU10K1_CARD_CREATIVE 0x00000000
--#define EMU10K1_CARD_EMUAPS 0x00000001
--
--#define EMU10K1_FX8010_PCM_COUNT 8
--
--/*
-- * Following definition is copied from linux/types.h to support compiling
-- * this header file in userspace since they are not generally available for
-- * uapi headers.
-- */
--#define __EMU10K1_DECLARE_BITMAP(name,bits) \
-- unsigned long name[(bits) / (sizeof(unsigned long) * 8)]
--
--/* instruction set */
--#define iMAC0 0x00 /* R = A + (X * Y >> 31) ; saturation */
--#define iMAC1 0x01 /* R = A + (-X * Y >> 31) ; saturation */
--#define iMAC2 0x02 /* R = A + (X * Y >> 31) ; wraparound */
--#define iMAC3 0x03 /* R = A + (-X * Y >> 31) ; wraparound */
--#define iMACINT0 0x04 /* R = A + X * Y ; saturation */
--#define iMACINT1 0x05 /* R = A + X * Y ; wraparound (31-bit) */
--#define iACC3 0x06 /* R = A + X + Y ; saturation */
--#define iMACMV 0x07 /* R = A, acc += X * Y >> 31 */
--#define iANDXOR 0x08 /* R = (A & X) ^ Y */
--#define iTSTNEG 0x09 /* R = (A >= Y) ? X : ~X */
--#define iLIMITGE 0x0a /* R = (A >= Y) ? X : Y */
--#define iLIMITLT 0x0b /* R = (A < Y) ? X : Y */
--#define iLOG 0x0c /* R = linear_data, A (log_data), X (max_exp), Y (format_word) */
--#define iEXP 0x0d /* R = log_data, A (linear_data), X (max_exp), Y (format_word) */
--#define iINTERP 0x0e /* R = A + (X * (Y - A) >> 31) ; saturation */
--#define iSKIP 0x0f /* R = A (cc_reg), X (count), Y (cc_test) */
--
--/* GPRs */
--#define FXBUS(x) (0x00 + (x)) /* x = 0x00 - 0x0f */
--#define EXTIN(x) (0x10 + (x)) /* x = 0x00 - 0x0f */
--#define EXTOUT(x) (0x20 + (x)) /* x = 0x00 - 0x0f physical outs -> FXWC low 16 bits */
--#define FXBUS2(x) (0x30 + (x)) /* x = 0x00 - 0x0f copies of fx buses for capture -> FXWC high 16 bits */
-- /* NB: 0x31 and 0x32 are shared with Center/LFE on SB live 5.1 */
--
--#define C_00000000 0x40
--#define C_00000001 0x41
--#define C_00000002 0x42
--#define C_00000003 0x43
--#define C_00000004 0x44
--#define C_00000008 0x45
--#define C_00000010 0x46
--#define C_00000020 0x47
--#define C_00000100 0x48
--#define C_00010000 0x49
--#define C_00080000 0x4a
--#define C_10000000 0x4b
--#define C_20000000 0x4c
--#define C_40000000 0x4d
--#define C_80000000 0x4e
--#define C_7fffffff 0x4f
--#define C_ffffffff 0x50
--#define C_fffffffe 0x51
--#define C_c0000000 0x52
--#define C_4f1bbcdc 0x53
--#define C_5a7ef9db 0x54
--#define C_00100000 0x55 /* ?? */
--#define GPR_ACCU 0x56 /* ACCUM, accumulator */
--#define GPR_COND 0x57 /* CCR, condition register */
--#define GPR_NOISE0 0x58 /* noise source */
--#define GPR_NOISE1 0x59 /* noise source */
--#define GPR_IRQ 0x5a /* IRQ register */
--#define GPR_DBAC 0x5b /* TRAM Delay Base Address Counter */
--#define GPR(x) (FXGPREGBASE + (x)) /* free GPRs: x = 0x00 - 0xff */
--#define ITRAM_DATA(x) (TANKMEMDATAREGBASE + 0x00 + (x)) /* x = 0x00 - 0x7f */
--#define ETRAM_DATA(x) (TANKMEMDATAREGBASE + 0x80 + (x)) /* x = 0x00 - 0x1f */
--#define ITRAM_ADDR(x) (TANKMEMADDRREGBASE + 0x00 + (x)) /* x = 0x00 - 0x7f */
--#define ETRAM_ADDR(x) (TANKMEMADDRREGBASE + 0x80 + (x)) /* x = 0x00 - 0x1f */
--
--#define A_ITRAM_DATA(x) (TANKMEMDATAREGBASE + 0x00 + (x)) /* x = 0x00 - 0xbf */
--#define A_ETRAM_DATA(x) (TANKMEMDATAREGBASE + 0xc0 + (x)) /* x = 0x00 - 0x3f */
--#define A_ITRAM_ADDR(x) (TANKMEMADDRREGBASE + 0x00 + (x)) /* x = 0x00 - 0xbf */
--#define A_ETRAM_ADDR(x) (TANKMEMADDRREGBASE + 0xc0 + (x)) /* x = 0x00 - 0x3f */
--#define A_ITRAM_CTL(x) (A_TANKMEMCTLREGBASE + 0x00 + (x)) /* x = 0x00 - 0xbf */
--#define A_ETRAM_CTL(x) (A_TANKMEMCTLREGBASE + 0xc0 + (x)) /* x = 0x00 - 0x3f */
--
--#define A_FXBUS(x) (0x00 + (x)) /* x = 0x00 - 0x3f FX buses */
--#define A_EXTIN(x) (0x40 + (x)) /* x = 0x00 - 0x0f physical ins */
--#define A_P16VIN(x) (0x50 + (x)) /* x = 0x00 - 0x0f p16v ins (A2 only) "EMU32 inputs" */
--#define A_EXTOUT(x) (0x60 + (x)) /* x = 0x00 - 0x1f physical outs -> A_FXWC1 0x79-7f unknown */
--#define A_FXBUS2(x) (0x80 + (x)) /* x = 0x00 - 0x1f extra outs used for EFX capture -> A_FXWC2 */
--#define A_EMU32OUTH(x) (0xa0 + (x)) /* x = 0x00 - 0x0f "EMU32_OUT_10 - _1F" - ??? */
--#define A_EMU32OUTL(x) (0xb0 + (x)) /* x = 0x00 - 0x0f "EMU32_OUT_1 - _F" - ??? */
--#define A3_EMU32IN(x) (0x160 + (x)) /* x = 0x00 - 0x3f "EMU32_IN_00 - _3F" - Only when .device = 0x0008 */
--#define A3_EMU32OUT(x) (0x1E0 + (x)) /* x = 0x00 - 0x0f "EMU32_OUT_00 - _3F" - Only when .device = 0x0008 */
--#define A_GPR(x) (A_FXGPREGBASE + (x))
--
--/* cc_reg constants */
--#define CC_REG_NORMALIZED C_00000001
--#define CC_REG_BORROW C_00000002
--#define CC_REG_MINUS C_00000004
--#define CC_REG_ZERO C_00000008
--#define CC_REG_SATURATE C_00000010
--#define CC_REG_NONZERO C_00000100
--
--/* FX buses */
--#define FXBUS_PCM_LEFT 0x00
--#define FXBUS_PCM_RIGHT 0x01
--#define FXBUS_PCM_LEFT_REAR 0x02
--#define FXBUS_PCM_RIGHT_REAR 0x03
--#define FXBUS_MIDI_LEFT 0x04
--#define FXBUS_MIDI_RIGHT 0x05
--#define FXBUS_PCM_CENTER 0x06
--#define FXBUS_PCM_LFE 0x07
--#define FXBUS_PCM_LEFT_FRONT 0x08
--#define FXBUS_PCM_RIGHT_FRONT 0x09
--#define FXBUS_MIDI_REVERB 0x0c
--#define FXBUS_MIDI_CHORUS 0x0d
--#define FXBUS_PCM_LEFT_SIDE 0x0e
--#define FXBUS_PCM_RIGHT_SIDE 0x0f
--#define FXBUS_PT_LEFT 0x14
--#define FXBUS_PT_RIGHT 0x15
--
--/* Inputs */
--#define EXTIN_AC97_L 0x00 /* AC'97 capture channel - left */
--#define EXTIN_AC97_R 0x01 /* AC'97 capture channel - right */
--#define EXTIN_SPDIF_CD_L 0x02 /* internal S/PDIF CD - onboard - left */
--#define EXTIN_SPDIF_CD_R 0x03 /* internal S/PDIF CD - onboard - right */
--#define EXTIN_ZOOM_L 0x04 /* Zoom Video I2S - left */
--#define EXTIN_ZOOM_R 0x05 /* Zoom Video I2S - right */
--#define EXTIN_TOSLINK_L 0x06 /* LiveDrive - TOSLink Optical - left */
--#define EXTIN_TOSLINK_R 0x07 /* LiveDrive - TOSLink Optical - right */
--#define EXTIN_LINE1_L 0x08 /* LiveDrive - Line/Mic 1 - left */
--#define EXTIN_LINE1_R 0x09 /* LiveDrive - Line/Mic 1 - right */
--#define EXTIN_COAX_SPDIF_L 0x0a /* LiveDrive - Coaxial S/PDIF - left */
--#define EXTIN_COAX_SPDIF_R 0x0b /* LiveDrive - Coaxial S/PDIF - right */
--#define EXTIN_LINE2_L 0x0c /* LiveDrive - Line/Mic 2 - left */
--#define EXTIN_LINE2_R 0x0d /* LiveDrive - Line/Mic 2 - right */
--
--/* Outputs */
--#define EXTOUT_AC97_L 0x00 /* AC'97 playback channel - left */
--#define EXTOUT_AC97_R 0x01 /* AC'97 playback channel - right */
--#define EXTOUT_TOSLINK_L 0x02 /* LiveDrive - TOSLink Optical - left */
--#define EXTOUT_TOSLINK_R 0x03 /* LiveDrive - TOSLink Optical - right */
--#define EXTOUT_AC97_CENTER 0x04 /* SB Live 5.1 - center */
--#define EXTOUT_AC97_LFE 0x05 /* SB Live 5.1 - LFE */
--#define EXTOUT_HEADPHONE_L 0x06 /* LiveDrive - Headphone - left */
--#define EXTOUT_HEADPHONE_R 0x07 /* LiveDrive - Headphone - right */
--#define EXTOUT_REAR_L 0x08 /* Rear channel - left */
--#define EXTOUT_REAR_R 0x09 /* Rear channel - right */
--#define EXTOUT_ADC_CAP_L 0x0a /* ADC Capture buffer - left */
--#define EXTOUT_ADC_CAP_R 0x0b /* ADC Capture buffer - right */
--#define EXTOUT_MIC_CAP 0x0c /* MIC Capture buffer */
--#define EXTOUT_AC97_REAR_L 0x0d /* SB Live 5.1 (c) 2003 - Rear Left */
--#define EXTOUT_AC97_REAR_R 0x0e /* SB Live 5.1 (c) 2003 - Rear Right */
--#define EXTOUT_ACENTER 0x11 /* Analog Center */
--#define EXTOUT_ALFE 0x12 /* Analog LFE */
--
--/* Audigy Inputs */
--#define A_EXTIN_AC97_L 0x00 /* AC'97 capture channel - left */
--#define A_EXTIN_AC97_R 0x01 /* AC'97 capture channel - right */
--#define A_EXTIN_SPDIF_CD_L 0x02 /* digital CD left */
--#define A_EXTIN_SPDIF_CD_R 0x03 /* digital CD left */
--#define A_EXTIN_OPT_SPDIF_L 0x04 /* audigy drive Optical SPDIF - left */
--#define A_EXTIN_OPT_SPDIF_R 0x05 /* right */
--#define A_EXTIN_LINE2_L 0x08 /* audigy drive line2/mic2 - left */
--#define A_EXTIN_LINE2_R 0x09 /* right */
--#define A_EXTIN_ADC_L 0x0a /* Philips ADC - left */
--#define A_EXTIN_ADC_R 0x0b /* right */
--#define A_EXTIN_AUX2_L 0x0c /* audigy drive aux2 - left */
--#define A_EXTIN_AUX2_R 0x0d /* - right */
--
--/* Audigiy Outputs */
--#define A_EXTOUT_FRONT_L 0x00 /* digital front left */
--#define A_EXTOUT_FRONT_R 0x01 /* right */
--#define A_EXTOUT_CENTER 0x02 /* digital front center */
--#define A_EXTOUT_LFE 0x03 /* digital front lfe */
--#define A_EXTOUT_HEADPHONE_L 0x04 /* headphone audigy drive left */
--#define A_EXTOUT_HEADPHONE_R 0x05 /* right */
--#define A_EXTOUT_REAR_L 0x06 /* digital rear left */
--#define A_EXTOUT_REAR_R 0x07 /* right */
--#define A_EXTOUT_AFRONT_L 0x08 /* analog front left */
--#define A_EXTOUT_AFRONT_R 0x09 /* right */
--#define A_EXTOUT_ACENTER 0x0a /* analog center */
--#define A_EXTOUT_ALFE 0x0b /* analog LFE */
--#define A_EXTOUT_ASIDE_L 0x0c /* analog side left - Audigy 2 ZS */
--#define A_EXTOUT_ASIDE_R 0x0d /* right - Audigy 2 ZS */
--#define A_EXTOUT_AREAR_L 0x0e /* analog rear left */
--#define A_EXTOUT_AREAR_R 0x0f /* right */
--#define A_EXTOUT_AC97_L 0x10 /* AC97 left (front) */
--#define A_EXTOUT_AC97_R 0x11 /* right */
--#define A_EXTOUT_ADC_CAP_L 0x16 /* ADC capture buffer left */
--#define A_EXTOUT_ADC_CAP_R 0x17 /* right */
--#define A_EXTOUT_MIC_CAP 0x18 /* Mic capture buffer */
--
--/* Audigy constants */
--#define A_C_00000000 0xc0
--#define A_C_00000001 0xc1
--#define A_C_00000002 0xc2
--#define A_C_00000003 0xc3
--#define A_C_00000004 0xc4
--#define A_C_00000008 0xc5
--#define A_C_00000010 0xc6
--#define A_C_00000020 0xc7
--#define A_C_00000100 0xc8
--#define A_C_00010000 0xc9
--#define A_C_00000800 0xca
--#define A_C_10000000 0xcb
--#define A_C_20000000 0xcc
--#define A_C_40000000 0xcd
--#define A_C_80000000 0xce
--#define A_C_7fffffff 0xcf
--#define A_C_ffffffff 0xd0
--#define A_C_fffffffe 0xd1
--#define A_C_c0000000 0xd2
--#define A_C_4f1bbcdc 0xd3
--#define A_C_5a7ef9db 0xd4
--#define A_C_00100000 0xd5
--#define A_GPR_ACCU 0xd6 /* ACCUM, accumulator */
--#define A_GPR_COND 0xd7 /* CCR, condition register */
--#define A_GPR_NOISE0 0xd8 /* noise source */
--#define A_GPR_NOISE1 0xd9 /* noise source */
--#define A_GPR_IRQ 0xda /* IRQ register */
--#define A_GPR_DBAC 0xdb /* TRAM Delay Base Address Counter - internal */
--#define A_GPR_DBACE 0xde /* TRAM Delay Base Address Counter - external */
--
--/* definitions for debug register */
--#define EMU10K1_DBG_ZC 0x80000000 /* zero tram counter */
--#define EMU10K1_DBG_SATURATION_OCCURED 0x02000000 /* saturation control */
--#define EMU10K1_DBG_SATURATION_ADDR 0x01ff0000 /* saturation address */
--#define EMU10K1_DBG_SINGLE_STEP 0x00008000 /* single step mode */
--#define EMU10K1_DBG_STEP 0x00004000 /* start single step */
--#define EMU10K1_DBG_CONDITION_CODE 0x00003e00 /* condition code */
--#define EMU10K1_DBG_SINGLE_STEP_ADDR 0x000001ff /* single step address */
--
--/* tank memory address line */
--#ifndef __KERNEL__
--#define TANKMEMADDRREG_ADDR_MASK 0x000fffff /* 20 bit tank address field */
--#define TANKMEMADDRREG_CLEAR 0x00800000 /* Clear tank memory */
--#define TANKMEMADDRREG_ALIGN 0x00400000 /* Align read or write relative to tank access */
--#define TANKMEMADDRREG_WRITE 0x00200000 /* Write to tank memory */
--#define TANKMEMADDRREG_READ 0x00100000 /* Read from tank memory */
--#endif
--
--struct snd_emu10k1_fx8010_info {
-- unsigned int internal_tram_size; /* in samples */
-- unsigned int external_tram_size; /* in samples */
-- char fxbus_names[16][32]; /* names of FXBUSes */
-- char extin_names[16][32]; /* names of external inputs */
-- char extout_names[32][32]; /* names of external outputs */
-- unsigned int gpr_controls; /* count of GPR controls */
--};
--
--#define EMU10K1_GPR_TRANSLATION_NONE 0
--#define EMU10K1_GPR_TRANSLATION_TABLE100 1
--#define EMU10K1_GPR_TRANSLATION_BASS 2
--#define EMU10K1_GPR_TRANSLATION_TREBLE 3
--#define EMU10K1_GPR_TRANSLATION_ONOFF 4
--
--struct snd_emu10k1_fx8010_control_gpr {
-- struct snd_ctl_elem_id id; /* full control ID definition */
-- unsigned int vcount; /* visible count */
-- unsigned int count; /* count of GPR (1..16) */
-- unsigned short gpr[32]; /* GPR number(s) */
-- unsigned int value[32]; /* initial values */
-- unsigned int min; /* minimum range */
-- unsigned int max; /* maximum range */
-- unsigned int translation; /* translation type (EMU10K1_GPR_TRANSLATION*) */
-- const unsigned int *tlv;
--};
--
--/* old ABI without TLV support */
--struct snd_emu10k1_fx8010_control_old_gpr {
-- struct snd_ctl_elem_id id;
-- unsigned int vcount;
-- unsigned int count;
-- unsigned short gpr[32];
-- unsigned int value[32];
-- unsigned int min;
-- unsigned int max;
-- unsigned int translation;
--};
--
--struct snd_emu10k1_fx8010_code {
-- char name[128];
--
-- __EMU10K1_DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */
-- __u32 __user *gpr_map; /* initializers */
--
-- unsigned int gpr_add_control_count; /* count of GPR controls to add/replace */
-- struct snd_emu10k1_fx8010_control_gpr __user *gpr_add_controls; /* GPR controls to add/replace */
--
-- unsigned int gpr_del_control_count; /* count of GPR controls to remove */
-- struct snd_ctl_elem_id __user *gpr_del_controls; /* IDs of GPR controls to remove */
--
-- unsigned int gpr_list_control_count; /* count of GPR controls to list */
-- unsigned int gpr_list_control_total; /* total count of GPR controls */
-- struct snd_emu10k1_fx8010_control_gpr __user *gpr_list_controls; /* listed GPR controls */
--
-- __EMU10K1_DECLARE_BITMAP(tram_valid, 0x100); /* bitmask of valid initializers */
-- __u32 __user *tram_data_map; /* data initializers */
-- __u32 __user *tram_addr_map; /* map initializers */
--
-- __EMU10K1_DECLARE_BITMAP(code_valid, 1024); /* bitmask of valid instructions */
-- __u32 __user *code; /* one instruction - 64 bits */
--};
--
--struct snd_emu10k1_fx8010_tram {
-- unsigned int address; /* 31.bit == 1 -> external TRAM */
-- unsigned int size; /* size in samples (4 bytes) */
-- unsigned int *samples; /* pointer to samples (20-bit) */
-- /* NULL->clear memory */
--};
--
--struct snd_emu10k1_fx8010_pcm_rec {
-- unsigned int substream; /* substream number */
-- unsigned int res1; /* reserved */
-- unsigned int channels; /* 16-bit channels count, zero = remove this substream */
-- unsigned int tram_start; /* ring buffer position in TRAM (in samples) */
-- unsigned int buffer_size; /* count of buffered samples */
-- unsigned short gpr_size; /* GPR containing size of ringbuffer in samples (host) */
-- unsigned short gpr_ptr; /* GPR containing current pointer in the ring buffer (host = reset, FX8010) */
-- unsigned short gpr_count; /* GPR containing count of samples between two interrupts (host) */
-- unsigned short gpr_tmpcount; /* GPR containing current count of samples to interrupt (host = set, FX8010) */
-- unsigned short gpr_trigger; /* GPR containing trigger (activate) information (host) */
-- unsigned short gpr_running; /* GPR containing info if PCM is running (FX8010) */
-- unsigned char pad; /* reserved */
-- unsigned char etram[32]; /* external TRAM address & data (one per channel) */
-- unsigned int res2; /* reserved */
--};
--
--#define SNDRV_EMU10K1_VERSION SNDRV_PROTOCOL_VERSION(1, 0, 1)
--
--#define SNDRV_EMU10K1_IOCTL_INFO _IOR ('H', 0x10, struct snd_emu10k1_fx8010_info)
--#define SNDRV_EMU10K1_IOCTL_CODE_POKE _IOW ('H', 0x11, struct snd_emu10k1_fx8010_code)
--#define SNDRV_EMU10K1_IOCTL_CODE_PEEK _IOWR('H', 0x12, struct snd_emu10k1_fx8010_code)
--#define SNDRV_EMU10K1_IOCTL_TRAM_SETUP _IOW ('H', 0x20, int)
--#define SNDRV_EMU10K1_IOCTL_TRAM_POKE _IOW ('H', 0x21, struct snd_emu10k1_fx8010_tram)
--#define SNDRV_EMU10K1_IOCTL_TRAM_PEEK _IOWR('H', 0x22, struct snd_emu10k1_fx8010_tram)
--#define SNDRV_EMU10K1_IOCTL_PCM_POKE _IOW ('H', 0x30, struct snd_emu10k1_fx8010_pcm_rec)
--#define SNDRV_EMU10K1_IOCTL_PCM_PEEK _IOWR('H', 0x31, struct snd_emu10k1_fx8010_pcm_rec)
--#define SNDRV_EMU10K1_IOCTL_PVERSION _IOR ('H', 0x40, int)
--#define SNDRV_EMU10K1_IOCTL_STOP _IO ('H', 0x80)
--#define SNDRV_EMU10K1_IOCTL_CONTINUE _IO ('H', 0x81)
--#define SNDRV_EMU10K1_IOCTL_ZERO_TRAM_COUNTER _IO ('H', 0x82)
--#define SNDRV_EMU10K1_IOCTL_SINGLE_STEP _IOW ('H', 0x83, int)
--#define SNDRV_EMU10K1_IOCTL_DBG_READ _IOR ('H', 0x84, int)
--
--/* typedefs for compatibility to user-space */
--typedef struct snd_emu10k1_fx8010_info emu10k1_fx8010_info_t;
--typedef struct snd_emu10k1_fx8010_control_gpr emu10k1_fx8010_control_gpr_t;
--typedef struct snd_emu10k1_fx8010_code emu10k1_fx8010_code_t;
--typedef struct snd_emu10k1_fx8010_tram emu10k1_fx8010_tram_t;
--typedef struct snd_emu10k1_fx8010_pcm_rec emu10k1_fx8010_pcm_t;
--
--#endif /* _UAPI__SOUND_EMU10K1_H */
-+#include <alsa/sound/type_compat.h>
-+#include <alsa/sound/uapi/emu10k1.h>
-diff --git a/include/sound/hdsp.h b/include/sound/hdsp.h
-index 5dc0c3db..78fb745b 100644
---- a/include/sound/hdsp.h
-+++ b/include/sound/hdsp.h
-@@ -1,111 +1,2 @@
--/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
--#ifndef __SOUND_HDSP_H
--#define __SOUND_HDSP_H
--
--/*
-- * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
-- *
-- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-- */
--
--#include <linux/types.h>
--
--#define HDSP_MATRIX_MIXER_SIZE 2048
--
--enum HDSP_IO_Type {
-- Digiface,
-- Multiface,
-- H9652,
-- H9632,
-- RPM,
-- Undefined,
--};
--
--struct hdsp_peak_rms {
-- __u32 input_peaks[26];
-- __u32 playback_peaks[26];
-- __u32 output_peaks[28];
-- __u64 input_rms[26];
-- __u64 playback_rms[26];
-- /* These are only used for H96xx cards */
-- __u64 output_rms[26];
--};
--
--#define SNDRV_HDSP_IOCTL_GET_PEAK_RMS _IOR('H', 0x40, struct hdsp_peak_rms)
--
--struct hdsp_config_info {
-- unsigned char pref_sync_ref;
-- unsigned char wordclock_sync_check;
-- unsigned char spdif_sync_check;
-- unsigned char adatsync_sync_check;
-- unsigned char adat_sync_check[3];
-- unsigned char spdif_in;
-- unsigned char spdif_out;
-- unsigned char spdif_professional;
-- unsigned char spdif_emphasis;
-- unsigned char spdif_nonaudio;
-- unsigned int spdif_sample_rate;
-- unsigned int system_sample_rate;
-- unsigned int autosync_sample_rate;
-- unsigned char system_clock_mode;
-- unsigned char clock_source;
-- unsigned char autosync_ref;
-- unsigned char line_out;
-- unsigned char passthru;
-- unsigned char da_gain;
-- unsigned char ad_gain;
-- unsigned char phone_gain;
-- unsigned char xlr_breakout_cable;
-- unsigned char analog_extension_board;
--};
--
--#define SNDRV_HDSP_IOCTL_GET_CONFIG_INFO _IOR('H', 0x41, struct hdsp_config_info)
--
--struct hdsp_firmware {
-- void __user *firmware_data; /* 24413 x 4 bytes */
--};
--
--#define SNDRV_HDSP_IOCTL_UPLOAD_FIRMWARE _IOW('H', 0x42, struct hdsp_firmware)
--
--struct hdsp_version {
-- enum HDSP_IO_Type io_type;
-- unsigned short firmware_rev;
--};
--
--#define SNDRV_HDSP_IOCTL_GET_VERSION _IOR('H', 0x43, struct hdsp_version)
--
--struct hdsp_mixer {
-- unsigned short matrix[HDSP_MATRIX_MIXER_SIZE];
--};
--
--#define SNDRV_HDSP_IOCTL_GET_MIXER _IOR('H', 0x44, struct hdsp_mixer)
--
--struct hdsp_9632_aeb {
-- int aebi;
-- int aebo;
--};
--
--#define SNDRV_HDSP_IOCTL_GET_9632_AEB _IOR('H', 0x45, struct hdsp_9632_aeb)
--
--/* typedefs for compatibility to user-space */
--typedef enum HDSP_IO_Type HDSP_IO_Type;
--typedef struct hdsp_peak_rms hdsp_peak_rms_t;
--typedef struct hdsp_config_info hdsp_config_info_t;
--typedef struct hdsp_firmware hdsp_firmware_t;
--typedef struct hdsp_version hdsp_version_t;
--typedef struct hdsp_mixer hdsp_mixer_t;
--typedef struct hdsp_9632_aeb hdsp_9632_aeb_t;
--
--#endif /* __SOUND_HDSP_H */
-+#include <alsa/sound/type_compat.h>
-+#include <alsa/sound/uapi/hdsp.h>
-diff --git a/include/sound/hdspm.h b/include/sound/hdspm.h
-index a38f3f79..af6d19ed 100644
---- a/include/sound/hdspm.h
-+++ b/include/sound/hdspm.h
-@@ -1,232 +1,2 @@
--/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
--#ifndef __SOUND_HDSPM_H
--#define __SOUND_HDSPM_H
--/*
-- * Copyright (C) 2003 Winfried Ritsch (IEM)
-- * based on hdsp.h from Thomas Charbonnel (thomas@undata.org)
-- *
-- *
-- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-- */
--
--#include <linux/types.h>
--
--/* Maximum channels is 64 even on 56Mode you have 64playbacks to matrix */
--#define HDSPM_MAX_CHANNELS 64
--
--enum hdspm_io_type {
-- MADI,
-- MADIface,
-- AIO,
-- AES32,
-- RayDAT
--};
--
--enum hdspm_speed {
-- ss,
-- ds,
-- qs
--};
--
--/* -------------------- IOCTL Peak/RMS Meters -------------------- */
--
--struct hdspm_peak_rms {
-- __u32 input_peaks[64];
-- __u32 playback_peaks[64];
-- __u32 output_peaks[64];
--
-- __u64 input_rms[64];
-- __u64 playback_rms[64];
-- __u64 output_rms[64];
--
-- __u8 speed; /* enum {ss, ds, qs} */
-- int status2;
--};
--
--#define SNDRV_HDSPM_IOCTL_GET_PEAK_RMS \
-- _IOR('H', 0x42, struct hdspm_peak_rms)
--
--/* ------------ CONFIG block IOCTL ---------------------- */
--
--struct hdspm_config {
-- unsigned char pref_sync_ref;
-- unsigned char wordclock_sync_check;
-- unsigned char madi_sync_check;
-- unsigned int system_sample_rate;
-- unsigned int autosync_sample_rate;
-- unsigned char system_clock_mode;
-- unsigned char clock_source;
-- unsigned char autosync_ref;
-- unsigned char line_out;
-- unsigned int passthru;
-- unsigned int analog_out;
--};
--
--#define SNDRV_HDSPM_IOCTL_GET_CONFIG \
-- _IOR('H', 0x41, struct hdspm_config)
--
--/*
-- * If there's a TCO (TimeCode Option) board installed,
-- * there are further options and status data available.
-- * The hdspm_ltc structure contains the current SMPTE
-- * timecode and some status information and can be
-- * obtained via SNDRV_HDSPM_IOCTL_GET_LTC or in the
-- * hdspm_status struct.
-- */
--
--enum hdspm_ltc_format {
-- format_invalid,
-- fps_24,
-- fps_25,
-- fps_2997,
-- fps_30
--};
--
--enum hdspm_ltc_frame {
-- frame_invalid,
-- drop_frame,
-- full_frame
--};
--
--enum hdspm_ltc_input_format {
-- ntsc,
-- pal,
-- no_video
--};
--
--struct hdspm_ltc {
-- unsigned int ltc;
--
-- enum hdspm_ltc_format format;
-- enum hdspm_ltc_frame frame;
-- enum hdspm_ltc_input_format input_format;
--};
--
--#define SNDRV_HDSPM_IOCTL_GET_LTC _IOR('H', 0x46, struct hdspm_ltc)
--
--/*
-- * The status data reflects the device's current state
-- * as determined by the card's configuration and
-- * connection status.
-- */
--
--enum hdspm_sync {
-- hdspm_sync_no_lock = 0,
-- hdspm_sync_lock = 1,
-- hdspm_sync_sync = 2
--};
--
--enum hdspm_madi_input {
-- hdspm_input_optical = 0,
-- hdspm_input_coax = 1
--};
--
--enum hdspm_madi_channel_format {
-- hdspm_format_ch_64 = 0,
-- hdspm_format_ch_56 = 1
--};
--
--enum hdspm_madi_frame_format {
-- hdspm_frame_48 = 0,
-- hdspm_frame_96 = 1
--};
--
--enum hdspm_syncsource {
-- syncsource_wc = 0,
-- syncsource_madi = 1,
-- syncsource_tco = 2,
-- syncsource_sync = 3,
-- syncsource_none = 4
--};
--
--struct hdspm_status {
-- __u8 card_type; /* enum hdspm_io_type */
-- enum hdspm_syncsource autosync_source;
--
-- __u64 card_clock;
-- __u32 master_period;
--
-- union {
-- struct {
-- __u8 sync_wc; /* enum hdspm_sync */
-- __u8 sync_madi; /* enum hdspm_sync */
-- __u8 sync_tco; /* enum hdspm_sync */
-- __u8 sync_in; /* enum hdspm_sync */
-- __u8 madi_input; /* enum hdspm_madi_input */
-- __u8 channel_format; /* enum hdspm_madi_channel_format */
-- __u8 frame_format; /* enum hdspm_madi_frame_format */
-- } madi;
-- } card_specific;
--};
--
--#define SNDRV_HDSPM_IOCTL_GET_STATUS \
-- _IOR('H', 0x47, struct hdspm_status)
--
--/*
-- * Get information about the card and its add-ons.
-- */
--
--#define HDSPM_ADDON_TCO 1
--
--struct hdspm_version {
-- __u8 card_type; /* enum hdspm_io_type */
-- char cardname[20];
-- unsigned int serial;
-- unsigned short firmware_rev;
-- int addons;
--};
--
--#define SNDRV_HDSPM_IOCTL_GET_VERSION _IOR('H', 0x48, struct hdspm_version)
--
--/* ------------- get Matrix Mixer IOCTL --------------- */
--
--/* MADI mixer: 64inputs+64playback in 64outputs = 8192 => *4Byte =
-- * 32768 Bytes
-- */
--
--/* organisation is 64 channelfader in a continuous memory block */
--/* equivalent to hardware definition, maybe for future feature of mmap of
-- * them
-- */
--/* each of 64 outputs has 64 infader and 64 outfader:
-- Ins to Outs mixer[out].in[in], Outstreams to Outs mixer[out].pb[pb] */
--
--#define HDSPM_MIXER_CHANNELS HDSPM_MAX_CHANNELS
--
--struct hdspm_channelfader {
-- unsigned int in[HDSPM_MIXER_CHANNELS];
-- unsigned int pb[HDSPM_MIXER_CHANNELS];
--};
--
--struct hdspm_mixer {
-- struct hdspm_channelfader ch[HDSPM_MIXER_CHANNELS];
--};
--
--struct hdspm_mixer_ioctl {
-- struct hdspm_mixer *mixer;
--};
--
--/* use indirect access due to the limit of ioctl bit size */
--#define SNDRV_HDSPM_IOCTL_GET_MIXER _IOR('H', 0x44, struct hdspm_mixer_ioctl)
--
--/* typedefs for compatibility to user-space */
--typedef struct hdspm_peak_rms hdspm_peak_rms_t;
--typedef struct hdspm_config_info hdspm_config_info_t;
--typedef struct hdspm_version hdspm_version_t;
--typedef struct hdspm_channelfader snd_hdspm_channelfader_t;
--typedef struct hdspm_mixer hdspm_mixer_t;
--
--
--#endif
-+#include <alsa/sound/type_compat.h>
-+#include <alsa/sound/uapi/hdspm.h>
-diff --git a/include/sound/sb16_csp.h b/include/sound/sb16_csp.h
-index e6485148..24121fcb 100644
---- a/include/sound/sb16_csp.h
-+++ b/include/sound/sb16_csp.h
-@@ -1,123 +1 @@
--/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
--/*
-- * Copyright (c) 1999 by Uros Bizjak <uros@kss-loka.si>
-- * Takashi Iwai <tiwai@suse.de>
-- *
-- * SB16ASP/AWE32 CSP control
-- *
-- * 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 _UAPI__SOUND_SB16_CSP_H
--#define _UAPI__SOUND_SB16_CSP_H
--
--
--/* CSP modes */
--#define SNDRV_SB_CSP_MODE_NONE 0x00
--#define SNDRV_SB_CSP_MODE_DSP_READ 0x01 /* Record from DSP */
--#define SNDRV_SB_CSP_MODE_DSP_WRITE 0x02 /* Play to DSP */
--#define SNDRV_SB_CSP_MODE_QSOUND 0x04 /* QSound */
--
--/* CSP load flags */
--#define SNDRV_SB_CSP_LOAD_FROMUSER 0x01
--#define SNDRV_SB_CSP_LOAD_INITBLOCK 0x02
--
--/* CSP sample width */
--#define SNDRV_SB_CSP_SAMPLE_8BIT 0x01
--#define SNDRV_SB_CSP_SAMPLE_16BIT 0x02
--
--/* CSP channels */
--#define SNDRV_SB_CSP_MONO 0x01
--#define SNDRV_SB_CSP_STEREO 0x02
--
--/* CSP rates */
--#define SNDRV_SB_CSP_RATE_8000 0x01
--#define SNDRV_SB_CSP_RATE_11025 0x02
--#define SNDRV_SB_CSP_RATE_22050 0x04
--#define SNDRV_SB_CSP_RATE_44100 0x08
--#define SNDRV_SB_CSP_RATE_ALL 0x0f
--
--/* CSP running state */
--#define SNDRV_SB_CSP_ST_IDLE 0x00
--#define SNDRV_SB_CSP_ST_LOADED 0x01
--#define SNDRV_SB_CSP_ST_RUNNING 0x02
--#define SNDRV_SB_CSP_ST_PAUSED 0x04
--#define SNDRV_SB_CSP_ST_AUTO 0x08
--#define SNDRV_SB_CSP_ST_QSOUND 0x10
--
--/* maximum QSound value (180 degrees right) */
--#define SNDRV_SB_CSP_QSOUND_MAX_RIGHT 0x20
--
--/* maximum microcode RIFF file size */
--#define SNDRV_SB_CSP_MAX_MICROCODE_FILE_SIZE 0x3000
--
--/* microcode header */
--struct snd_sb_csp_mc_header {
-- char codec_name[16]; /* id name of codec */
-- unsigned short func_req; /* requested function */
--};
--
--/* microcode to be loaded */
--struct snd_sb_csp_microcode {
-- struct snd_sb_csp_mc_header info;
-- unsigned char data[SNDRV_SB_CSP_MAX_MICROCODE_FILE_SIZE];
--};
--
--/* start CSP with sample_width in mono/stereo */
--struct snd_sb_csp_start {
-- int sample_width; /* sample width, look above */
-- int channels; /* channels, look above */
--};
--
--/* CSP information */
--struct snd_sb_csp_info {
-- char codec_name[16]; /* id name of codec */
-- unsigned short func_nr; /* function number */
-- unsigned int acc_format; /* accepted PCM formats */
-- unsigned short acc_channels; /* accepted channels */
-- unsigned short acc_width; /* accepted sample width */
-- unsigned short acc_rates; /* accepted sample rates */
-- unsigned short csp_mode; /* CSP mode, see above */
-- unsigned short run_channels; /* current channels */
-- unsigned short run_width; /* current sample width */
-- unsigned short version; /* version id: 0x10 - 0x1f */
-- unsigned short state; /* state bits */
--};
--
--/* HWDEP controls */
--/* get CSP information */
--#define SNDRV_SB_CSP_IOCTL_INFO _IOR('H', 0x10, struct snd_sb_csp_info)
--/* load microcode to CSP */
--/* NOTE: struct snd_sb_csp_microcode overflows the max size (13 bits)
-- * defined for some architectures like MIPS, and it leads to build errors.
-- * (x86 and co have 14-bit size, thus it's valid, though.)
-- * As a workaround for skipping the size-limit check, here we don't use the
-- * normal _IOW() macro but _IOC() with the manual argument.
-- */
--#define SNDRV_SB_CSP_IOCTL_LOAD_CODE \
-- _IOC(_IOC_WRITE, 'H', 0x11, sizeof(struct snd_sb_csp_microcode))
--/* unload microcode from CSP */
--#define SNDRV_SB_CSP_IOCTL_UNLOAD_CODE _IO('H', 0x12)
--/* start CSP */
--#define SNDRV_SB_CSP_IOCTL_START _IOW('H', 0x13, struct snd_sb_csp_start)
--/* stop CSP */
--#define SNDRV_SB_CSP_IOCTL_STOP _IO('H', 0x14)
--/* pause CSP and DMA transfer */
--#define SNDRV_SB_CSP_IOCTL_PAUSE _IO('H', 0x15)
--/* restart CSP and DMA transfer */
--#define SNDRV_SB_CSP_IOCTL_RESTART _IO('H', 0x16)
--
--
--#endif /* _UAPI__SOUND_SB16_CSP_H */
-+#include <alsa/sound/uapi/sb16_csp.h>
-diff --git a/include/sound/sscape_ioctl.h b/include/sound/sscape_ioctl.h
-index c6653ebf..23b48d33 100644
---- a/include/sound/sscape_ioctl.h
-+++ b/include/sound/sscape_ioctl.h
-@@ -1,21 +1 @@
--#ifndef SSCAPE_IOCTL_H
--#define SSCAPE_IOCTL_H
--
--
--struct sscape_bootblock
--{
-- unsigned char code[256];
-- unsigned version;
--};
--
--#define SSCAPE_MICROCODE_SIZE 65536
--
--struct sscape_microcode
--{
-- unsigned char *code;
--};
--
--#define SND_SSCAPE_LOAD_BOOTB _IOWR('P', 100, struct sscape_bootblock)
--#define SND_SSCAPE_LOAD_MCODE _IOW ('P', 101, struct sscape_microcode)
--
--#endif
-+#include <alsa/sound/uapi/sscape_ioctl.h>
-diff --git a/include/sound/tlv.h b/include/sound/tlv.h
-index 7d6d65f6..e435a5fc 100644
---- a/include/sound/tlv.h
-+++ b/include/sound/tlv.h
-@@ -1,117 +1 @@
--/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
--/*
-- * 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.
-- */
--
--#ifndef __UAPI_SOUND_TLV_H
--#define __UAPI_SOUND_TLV_H
--
--#define SNDRV_CTL_TLVT_CONTAINER 0 /* one level down - group of TLVs */
--#define SNDRV_CTL_TLVT_DB_SCALE 1 /* dB scale */
--#define SNDRV_CTL_TLVT_DB_LINEAR 2 /* linear volume */
--#define SNDRV_CTL_TLVT_DB_RANGE 3 /* dB range container */
--#define SNDRV_CTL_TLVT_DB_MINMAX 4 /* dB scale with min/max */
--#define SNDRV_CTL_TLVT_DB_MINMAX_MUTE 5 /* dB scale with min/max with mute */
--
--/*
-- * channel-mapping TLV items
-- * TLV length must match with num_channels
-- */
--#define SNDRV_CTL_TLVT_CHMAP_FIXED 0x101 /* fixed channel position */
--#define SNDRV_CTL_TLVT_CHMAP_VAR 0x102 /* channels freely swappable */
--#define SNDRV_CTL_TLVT_CHMAP_PAIRED 0x103 /* pair-wise swappable */
--
--/*
-- * TLV structure is right behind the struct snd_ctl_tlv:
-- * unsigned int type - see SNDRV_CTL_TLVT_*
-- * unsigned int length
-- * .... data aligned to sizeof(unsigned int), use
-- * block_length = (length + (sizeof(unsigned int) - 1)) &
-- * ~(sizeof(unsigned int) - 1)) ....
-- */
--#define SNDRV_CTL_TLVD_ITEM(type, ...) \
-- (type), SNDRV_CTL_TLVD_LENGTH(__VA_ARGS__), __VA_ARGS__
--#define SNDRV_CTL_TLVD_LENGTH(...) \
-- ((unsigned int)sizeof((const unsigned int[]) { __VA_ARGS__ }))
--
--/* Accessor offsets for TLV data items */
--#define SNDRV_CTL_TLVO_TYPE 0
--#define SNDRV_CTL_TLVO_LEN 1
--
--#define SNDRV_CTL_TLVD_CONTAINER_ITEM(...) \
-- SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_CONTAINER, __VA_ARGS__)
--#define SNDRV_CTL_TLVD_DECLARE_CONTAINER(name, ...) \
-- unsigned int name[] = { \
-- SNDRV_CTL_TLVD_CONTAINER_ITEM(__VA_ARGS__) \
-- }
--
--#define SNDRV_CTL_TLVD_DB_SCALE_MASK 0xffff
--#define SNDRV_CTL_TLVD_DB_SCALE_MUTE 0x10000
--#define SNDRV_CTL_TLVD_DB_SCALE_ITEM(min, step, mute) \
-- SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_SCALE, \
-- (min), \
-- ((step) & SNDRV_CTL_TLVD_DB_SCALE_MASK) | \
-- ((mute) ? SNDRV_CTL_TLVD_DB_SCALE_MUTE : 0))
--#define SNDRV_CTL_TLVD_DECLARE_DB_SCALE(name, min, step, mute) \
-- unsigned int name[] = { \
-- SNDRV_CTL_TLVD_DB_SCALE_ITEM(min, step, mute) \
-- }
--
--/* Accessor offsets for min, mute and step items in dB scale type TLV */
--#define SNDRV_CTL_TLVO_DB_SCALE_MIN 2
--#define SNDRV_CTL_TLVO_DB_SCALE_MUTE_AND_STEP 3
--
--/* dB scale specified with min/max values instead of step */
--#define SNDRV_CTL_TLVD_DB_MINMAX_ITEM(min_dB, max_dB) \
-- SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_MINMAX, (min_dB), (max_dB))
--#define SNDRV_CTL_TLVD_DB_MINMAX_MUTE_ITEM(min_dB, max_dB) \
-- SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_MINMAX_MUTE, (min_dB), (max_dB))
--#define SNDRV_CTL_TLVD_DECLARE_DB_MINMAX(name, min_dB, max_dB) \
-- unsigned int name[] = { \
-- SNDRV_CTL_TLVD_DB_MINMAX_ITEM(min_dB, max_dB) \
-- }
--#define SNDRV_CTL_TLVD_DECLARE_DB_MINMAX_MUTE(name, min_dB, max_dB) \
-- unsigned int name[] = { \
-- SNDRV_CTL_TLVD_DB_MINMAX_MUTE_ITEM(min_dB, max_dB) \
-- }
--
--/* Accessor offsets for min, max items in db-minmax types of TLV. */
--#define SNDRV_CTL_TLVO_DB_MINMAX_MIN 2
--#define SNDRV_CTL_TLVO_DB_MINMAX_MAX 3
--
--/* linear volume between min_dB and max_dB (.01dB unit) */
--#define SNDRV_CTL_TLVD_DB_LINEAR_ITEM(min_dB, max_dB) \
-- SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_LINEAR, (min_dB), (max_dB))
--#define SNDRV_CTL_TLVD_DECLARE_DB_LINEAR(name, min_dB, max_dB) \
-- unsigned int name[] = { \
-- SNDRV_CTL_TLVD_DB_LINEAR_ITEM(min_dB, max_dB) \
-- }
--
--/* Accessor offsets for min, max items in db-linear type of TLV. */
--#define SNDRV_CTL_TLVO_DB_LINEAR_MIN 2
--#define SNDRV_CTL_TLVO_DB_LINEAR_MAX 3
--
--/* dB range container:
-- * Items in dB range container must be ordered by their values and by their
-- * dB values. This implies that larger values must correspond with larger
-- * dB values (which is also required for all other mixer controls).
-- */
--/* Each item is: <min> <max> <TLV> */
--#define SNDRV_CTL_TLVD_DB_RANGE_ITEM(...) \
-- SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_RANGE, __VA_ARGS__)
--#define SNDRV_CTL_TLVD_DECLARE_DB_RANGE(name, ...) \
-- unsigned int name[] = { \
-- SNDRV_CTL_TLVD_DB_RANGE_ITEM(__VA_ARGS__) \
-- }
--
--#define SNDRV_CTL_TLVD_DB_GAIN_MUTE -9999999
--
--#endif
-+#include <alsa/sound/uapi/tlv.h>
-diff --git a/include/sound/type_compat.h b/include/sound/type_compat.h
-index e973ff31..d4790c1f 100644
---- a/include/sound/type_compat.h
-+++ b/include/sound/type_compat.h
-@@ -3,6 +3,9 @@
-
- #ifndef DOC_HIDDEN
- #include <stdint.h>
-+#ifdef __linux__
-+#include <linux/types.h>
-+#else
- typedef uint8_t __u8;
- typedef uint16_t __u16;
- typedef uint32_t __u32;
-@@ -37,6 +40,16 @@ typedef int32_t __s32;
- #define __be32 __u32
- #define __be16 __u16
- #define __be8 __u8
-+#endif
-+
-+#ifndef __user
-+#define __user
-+#endif
-+
-+#ifndef __packed
-+#define __packed __attribute__((__packed__))
-+#endif
-+
- #endif /* DOC_HIDDEN */
-
- #endif /* __TYPE_COMPAT_H */
-diff --git a/include/sound/uapi/Makefile.am b/include/sound/uapi/Makefile.am
-new file mode 100644
-index 00000000..99197108
---- /dev/null
-+++ b/include/sound/uapi/Makefile.am
-@@ -0,0 +1,6 @@
-+alsasounduapiincludedir = ${includedir}/alsa/sound/uapi
-+
-+alsasounduapiinclude_HEADERS = asound_fm.h hdsp.h hdspm.h sb16_csp.h \
-+ sscape_ioctl.h emu10k1.h asoc.h tlv.h
-+
-+noinst_HEADERS = asound.h asequencer.h
-diff --git a/include/sound/uapi/asequencer.h b/include/sound/uapi/asequencer.h
-new file mode 100644
-index 00000000..a75e14ed
---- /dev/null
-+++ b/include/sound/uapi/asequencer.h
-@@ -0,0 +1,612 @@
-+/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-+/*
-+ * Main header file for the ALSA sequencer
-+ * Copyright (c) 1998-1999 by Frank van de Pol <fvdpol@coil.demon.nl>
-+ * (c) 1998-1999 by Jaroslav Kysela <perex@perex.cz>
-+ *
-+ *
-+ * 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 _UAPI__SOUND_ASEQUENCER_H
-+#define _UAPI__SOUND_ASEQUENCER_H
-+
-+#include <sound/asound.h>
-+
-+/** version of the sequencer */
-+#define SNDRV_SEQ_VERSION SNDRV_PROTOCOL_VERSION(1, 0, 2)
-+
-+/**
-+ * definition of sequencer event types
-+ */
-+
-+/** system messages
-+ * event data type = #snd_seq_result
-+ */
-+#define SNDRV_SEQ_EVENT_SYSTEM 0
-+#define SNDRV_SEQ_EVENT_RESULT 1
-+
-+/** note messages (channel specific)
-+ * event data type = #snd_seq_ev_note
-+ */
-+#define SNDRV_SEQ_EVENT_NOTE 5
-+#define SNDRV_SEQ_EVENT_NOTEON 6
-+#define SNDRV_SEQ_EVENT_NOTEOFF 7
-+#define SNDRV_SEQ_EVENT_KEYPRESS 8
-+
-+/** control messages (channel specific)
-+ * event data type = #snd_seq_ev_ctrl
-+ */
-+#define SNDRV_SEQ_EVENT_CONTROLLER 10
-+#define SNDRV_SEQ_EVENT_PGMCHANGE 11
-+#define SNDRV_SEQ_EVENT_CHANPRESS 12
-+#define SNDRV_SEQ_EVENT_PITCHBEND 13 /**< from -8192 to 8191 */
-+#define SNDRV_SEQ_EVENT_CONTROL14 14 /**< 14 bit controller value */
-+#define SNDRV_SEQ_EVENT_NONREGPARAM 15 /**< 14 bit NRPN address + 14 bit unsigned value */
-+#define SNDRV_SEQ_EVENT_REGPARAM 16 /**< 14 bit RPN address + 14 bit unsigned value */
-+
-+/** synchronisation messages
-+ * event data type = #snd_seq_ev_ctrl
-+ */
-+#define SNDRV_SEQ_EVENT_SONGPOS 20 /* Song Position Pointer with LSB and MSB values */
-+#define SNDRV_SEQ_EVENT_SONGSEL 21 /* Song Select with song ID number */
-+#define SNDRV_SEQ_EVENT_QFRAME 22 /* midi time code quarter frame */
-+#define SNDRV_SEQ_EVENT_TIMESIGN 23 /* SMF Time Signature event */
-+#define SNDRV_SEQ_EVENT_KEYSIGN 24 /* SMF Key Signature event */
-+
-+/** timer messages
-+ * event data type = snd_seq_ev_queue_control
-+ */
-+#define SNDRV_SEQ_EVENT_START 30 /* midi Real Time Start message */
-+#define SNDRV_SEQ_EVENT_CONTINUE 31 /* midi Real Time Continue message */
-+#define SNDRV_SEQ_EVENT_STOP 32 /* midi Real Time Stop message */
-+#define SNDRV_SEQ_EVENT_SETPOS_TICK 33 /* set tick queue position */
-+#define SNDRV_SEQ_EVENT_SETPOS_TIME 34 /* set realtime queue position */
-+#define SNDRV_SEQ_EVENT_TEMPO 35 /* (SMF) Tempo event */
-+#define SNDRV_SEQ_EVENT_CLOCK 36 /* midi Real Time Clock message */
-+#define SNDRV_SEQ_EVENT_TICK 37 /* midi Real Time Tick message */
-+#define SNDRV_SEQ_EVENT_QUEUE_SKEW 38 /* skew queue tempo */
-+
-+/** others
-+ * event data type = none
-+ */
-+#define SNDRV_SEQ_EVENT_TUNE_REQUEST 40 /* tune request */
-+#define SNDRV_SEQ_EVENT_RESET 41 /* reset to power-on state */
-+#define SNDRV_SEQ_EVENT_SENSING 42 /* "active sensing" event */
-+
-+/** echo back, kernel private messages
-+ * event data type = any type
-+ */
-+#define SNDRV_SEQ_EVENT_ECHO 50 /* echo event */
-+#define SNDRV_SEQ_EVENT_OSS 51 /* OSS raw event */
-+
-+/** system status messages (broadcast for subscribers)
-+ * event data type = snd_seq_addr
-+ */
-+#define SNDRV_SEQ_EVENT_CLIENT_START 60 /* new client has connected */
-+#define SNDRV_SEQ_EVENT_CLIENT_EXIT 61 /* client has left the system */
-+#define SNDRV_SEQ_EVENT_CLIENT_CHANGE 62 /* client status/info has changed */
-+#define SNDRV_SEQ_EVENT_PORT_START 63 /* new port was created */
-+#define SNDRV_SEQ_EVENT_PORT_EXIT 64 /* port was deleted from system */
-+#define SNDRV_SEQ_EVENT_PORT_CHANGE 65 /* port status/info has changed */
-+
-+/** port connection changes
-+ * event data type = snd_seq_connect
-+ */
-+#define SNDRV_SEQ_EVENT_PORT_SUBSCRIBED 66 /* ports connected */
-+#define SNDRV_SEQ_EVENT_PORT_UNSUBSCRIBED 67 /* ports disconnected */
-+
-+/* 70-89: synthesizer events - obsoleted */
-+
-+/** user-defined events with fixed length
-+ * event data type = any
-+ */
-+#define SNDRV_SEQ_EVENT_USR0 90
-+#define SNDRV_SEQ_EVENT_USR1 91
-+#define SNDRV_SEQ_EVENT_USR2 92
-+#define SNDRV_SEQ_EVENT_USR3 93
-+#define SNDRV_SEQ_EVENT_USR4 94
-+#define SNDRV_SEQ_EVENT_USR5 95
-+#define SNDRV_SEQ_EVENT_USR6 96
-+#define SNDRV_SEQ_EVENT_USR7 97
-+#define SNDRV_SEQ_EVENT_USR8 98
-+#define SNDRV_SEQ_EVENT_USR9 99
-+
-+/* 100-118: instrument layer - obsoleted */
-+/* 119-129: reserved */
-+
-+/* 130-139: variable length events
-+ * event data type = snd_seq_ev_ext
-+ * (SNDRV_SEQ_EVENT_LENGTH_VARIABLE must be set)
-+ */
-+#define SNDRV_SEQ_EVENT_SYSEX 130 /* system exclusive data (variable length) */
-+#define SNDRV_SEQ_EVENT_BOUNCE 131 /* error event */
-+/* 132-134: reserved */
-+#define SNDRV_SEQ_EVENT_USR_VAR0 135
-+#define SNDRV_SEQ_EVENT_USR_VAR1 136
-+#define SNDRV_SEQ_EVENT_USR_VAR2 137
-+#define SNDRV_SEQ_EVENT_USR_VAR3 138
-+#define SNDRV_SEQ_EVENT_USR_VAR4 139
-+
-+/* 150-151: kernel events with quote - DO NOT use in user clients */
-+#define SNDRV_SEQ_EVENT_KERNEL_ERROR 150
-+#define SNDRV_SEQ_EVENT_KERNEL_QUOTE 151 /* obsolete */
-+
-+/* 152-191: reserved */
-+
-+/* 192-254: hardware specific events */
-+
-+/* 255: special event */
-+#define SNDRV_SEQ_EVENT_NONE 255
-+
-+
-+typedef unsigned char snd_seq_event_type_t;
-+
-+/** event address */
-+struct snd_seq_addr {
-+ unsigned char client; /**< Client number: 0..255, 255 = broadcast to all clients */
-+ unsigned char port; /**< Port within client: 0..255, 255 = broadcast to all ports */
-+};
-+
-+/** port connection */
-+struct snd_seq_connect {
-+ struct snd_seq_addr sender;
-+ struct snd_seq_addr dest;
-+};
-+
-+
-+#define SNDRV_SEQ_ADDRESS_UNKNOWN 253 /* unknown source */
-+#define SNDRV_SEQ_ADDRESS_SUBSCRIBERS 254 /* send event to all subscribed ports */
-+#define SNDRV_SEQ_ADDRESS_BROADCAST 255 /* send event to all queues/clients/ports/channels */
-+#define SNDRV_SEQ_QUEUE_DIRECT 253 /* direct dispatch */
-+
-+ /* event mode flag - NOTE: only 8 bits available! */
-+#define SNDRV_SEQ_TIME_STAMP_TICK (0<<0) /* timestamp in clock ticks */
-+#define SNDRV_SEQ_TIME_STAMP_REAL (1<<0) /* timestamp in real time */
-+#define SNDRV_SEQ_TIME_STAMP_MASK (1<<0)
-+
-+#define SNDRV_SEQ_TIME_MODE_ABS (0<<1) /* absolute timestamp */
-+#define SNDRV_SEQ_TIME_MODE_REL (1<<1) /* relative to current time */
-+#define SNDRV_SEQ_TIME_MODE_MASK (1<<1)
-+
-+#define SNDRV_SEQ_EVENT_LENGTH_FIXED (0<<2) /* fixed event size */
-+#define SNDRV_SEQ_EVENT_LENGTH_VARIABLE (1<<2) /* variable event size */
-+#define SNDRV_SEQ_EVENT_LENGTH_VARUSR (2<<2) /* variable event size - user memory space */
-+#define SNDRV_SEQ_EVENT_LENGTH_MASK (3<<2)
-+
-+#define SNDRV_SEQ_PRIORITY_NORMAL (0<<4) /* normal priority */
-+#define SNDRV_SEQ_PRIORITY_HIGH (1<<4) /* event should be processed before others */
-+#define SNDRV_SEQ_PRIORITY_MASK (1<<4)
-+
-+
-+ /* note event */
-+struct snd_seq_ev_note {
-+ unsigned char channel;
-+ unsigned char note;
-+ unsigned char velocity;
-+ unsigned char off_velocity; /* only for SNDRV_SEQ_EVENT_NOTE */
-+ unsigned int duration; /* only for SNDRV_SEQ_EVENT_NOTE */
-+};
-+
-+ /* controller event */
-+struct snd_seq_ev_ctrl {
-+ unsigned char channel;
-+ unsigned char unused1, unused2, unused3; /* pad */
-+ unsigned int param;
-+ signed int value;
-+};
-+
-+ /* generic set of bytes (12x8 bit) */
-+struct snd_seq_ev_raw8 {
-+ unsigned char d[12]; /* 8 bit value */
-+};
-+
-+ /* generic set of integers (3x32 bit) */
-+struct snd_seq_ev_raw32 {
-+ unsigned int d[3]; /* 32 bit value */
-+};
-+
-+ /* external stored data */
-+struct snd_seq_ev_ext {
-+ unsigned int len; /* length of data */
-+ void *ptr; /* pointer to data (note: maybe 64-bit) */
-+} __attribute__((packed));
-+
-+struct snd_seq_result {
-+ int event; /* processed event type */
-+ int result;
-+};
-+
-+
-+struct snd_seq_real_time {
-+ unsigned int tv_sec; /* seconds */
-+ unsigned int tv_nsec; /* nanoseconds */
-+};
-+
-+typedef unsigned int snd_seq_tick_time_t; /* midi ticks */
-+
-+union snd_seq_timestamp {
-+ snd_seq_tick_time_t tick;
-+ struct snd_seq_real_time time;
-+};
-+
-+struct snd_seq_queue_skew {
-+ unsigned int value;
-+ unsigned int base;
-+};
-+
-+ /* queue timer control */
-+struct snd_seq_ev_queue_control {
-+ unsigned char queue; /* affected queue */
-+ unsigned char pad[3]; /* reserved */
-+ union {
-+ signed int value; /* affected value (e.g. tempo) */
-+ union snd_seq_timestamp time; /* time */
-+ unsigned int position; /* sync position */
-+ struct snd_seq_queue_skew skew;
-+ unsigned int d32[2];
-+ unsigned char d8[8];
-+ } param;
-+};
-+
-+ /* quoted event - inside the kernel only */
-+struct snd_seq_ev_quote {
-+ struct snd_seq_addr origin; /* original sender */
-+ unsigned short value; /* optional data */
-+ struct snd_seq_event *event; /* quoted event */
-+} __attribute__((packed));
-+
-+
-+ /* sequencer event */
-+struct snd_seq_event {
-+ snd_seq_event_type_t type; /* event type */
-+ unsigned char flags; /* event flags */
-+ char tag;
-+
-+ unsigned char queue; /* schedule queue */
-+ union snd_seq_timestamp time; /* schedule time */
-+
-+
-+ struct snd_seq_addr source; /* source address */
-+ struct snd_seq_addr dest; /* destination address */
-+
-+ union { /* event data... */
-+ struct snd_seq_ev_note note;
-+ struct snd_seq_ev_ctrl control;
-+ struct snd_seq_ev_raw8 raw8;
-+ struct snd_seq_ev_raw32 raw32;
-+ struct snd_seq_ev_ext ext;
-+ struct snd_seq_ev_queue_control queue;
-+ union snd_seq_timestamp time;
-+ struct snd_seq_addr addr;
-+ struct snd_seq_connect connect;
-+ struct snd_seq_result result;
-+ struct snd_seq_ev_quote quote;
-+ } data;
-+};
-+
-+
-+/*
-+ * bounce event - stored as variable size data
-+ */
-+struct snd_seq_event_bounce {
-+ int err;
-+ struct snd_seq_event event;
-+ /* external data follows here. */
-+};
-+
-+
-+ /* system information */
-+struct snd_seq_system_info {
-+ int queues; /* maximum queues count */
-+ int clients; /* maximum clients count */
-+ int ports; /* maximum ports per client */
-+ int channels; /* maximum channels per port */
-+ int cur_clients; /* current clients */
-+ int cur_queues; /* current queues */
-+ char reserved[24];
-+};
-+
-+
-+ /* system running information */
-+struct snd_seq_running_info {
-+ unsigned char client; /* client id */
-+ unsigned char big_endian; /* 1 = big-endian */
-+ unsigned char cpu_mode; /* 4 = 32bit, 8 = 64bit */
-+ unsigned char pad; /* reserved */
-+ unsigned char reserved[12];
-+};
-+
-+
-+ /* known client numbers */
-+#define SNDRV_SEQ_CLIENT_SYSTEM 0
-+ /* internal client numbers */
-+#define SNDRV_SEQ_CLIENT_DUMMY 14 /* midi through */
-+#define SNDRV_SEQ_CLIENT_OSS 15 /* oss sequencer emulator */
-+
-+
-+ /* client types */
-+typedef int __bitwise snd_seq_client_type_t;
-+#define NO_CLIENT ((__force snd_seq_client_type_t) 0)
-+#define USER_CLIENT ((__force snd_seq_client_type_t) 1)
-+#define KERNEL_CLIENT ((__force snd_seq_client_type_t) 2)
-+
-+ /* event filter flags */
-+#define SNDRV_SEQ_FILTER_BROADCAST (1<<0) /* accept broadcast messages */
-+#define SNDRV_SEQ_FILTER_MULTICAST (1<<1) /* accept multicast messages */
-+#define SNDRV_SEQ_FILTER_BOUNCE (1<<2) /* accept bounce event in error */
-+#define SNDRV_SEQ_FILTER_USE_EVENT (1<<31) /* use event filter */
-+
-+struct snd_seq_client_info {
-+ int client; /* client number to inquire */
-+ snd_seq_client_type_t type; /* client type */
-+ char name[64]; /* client name */
-+ unsigned int filter; /* filter flags */
-+ unsigned char multicast_filter[8]; /* multicast filter bitmap */
-+ unsigned char event_filter[32]; /* event filter bitmap */
-+ int num_ports; /* RO: number of ports */
-+ int event_lost; /* number of lost events */
-+ int card; /* RO: card number[kernel] */
-+ int pid; /* RO: pid[user] */
-+ char reserved[56]; /* for future use */
-+};
-+
-+
-+/* client pool size */
-+struct snd_seq_client_pool {
-+ int client; /* client number to inquire */
-+ int output_pool; /* outgoing (write) pool size */
-+ int input_pool; /* incoming (read) pool size */
-+ int output_room; /* minimum free pool size for select/blocking mode */
-+ int output_free; /* unused size */
-+ int input_free; /* unused size */
-+ char reserved[64];
-+};
-+
-+
-+/* Remove events by specified criteria */
-+
-+#define SNDRV_SEQ_REMOVE_INPUT (1<<0) /* Flush input queues */
-+#define SNDRV_SEQ_REMOVE_OUTPUT (1<<1) /* Flush output queues */
-+#define SNDRV_SEQ_REMOVE_DEST (1<<2) /* Restrict by destination q:client:port */
-+#define SNDRV_SEQ_REMOVE_DEST_CHANNEL (1<<3) /* Restrict by channel */
-+#define SNDRV_SEQ_REMOVE_TIME_BEFORE (1<<4) /* Restrict to before time */
-+#define SNDRV_SEQ_REMOVE_TIME_AFTER (1<<5) /* Restrict to time or after */
-+#define SNDRV_SEQ_REMOVE_TIME_TICK (1<<6) /* Time is in ticks */
-+#define SNDRV_SEQ_REMOVE_EVENT_TYPE (1<<7) /* Restrict to event type */
-+#define SNDRV_SEQ_REMOVE_IGNORE_OFF (1<<8) /* Do not flush off events */
-+#define SNDRV_SEQ_REMOVE_TAG_MATCH (1<<9) /* Restrict to events with given tag */
-+
-+struct snd_seq_remove_events {
-+ unsigned int remove_mode; /* Flags that determine what gets removed */
-+
-+ union snd_seq_timestamp time;
-+
-+ unsigned char queue; /* Queue for REMOVE_DEST */
-+ struct snd_seq_addr dest; /* Address for REMOVE_DEST */
-+ unsigned char channel; /* Channel for REMOVE_DEST */
-+
-+ int type; /* For REMOVE_EVENT_TYPE */
-+ char tag; /* Tag for REMOVE_TAG */
-+
-+ int reserved[10]; /* To allow for future binary compatibility */
-+
-+};
-+
-+
-+ /* known port numbers */
-+#define SNDRV_SEQ_PORT_SYSTEM_TIMER 0
-+#define SNDRV_SEQ_PORT_SYSTEM_ANNOUNCE 1
-+
-+ /* port capabilities (32 bits) */
-+#define SNDRV_SEQ_PORT_CAP_READ (1<<0) /* readable from this port */
-+#define SNDRV_SEQ_PORT_CAP_WRITE (1<<1) /* writable to this port */
-+
-+#define SNDRV_SEQ_PORT_CAP_SYNC_READ (1<<2)
-+#define SNDRV_SEQ_PORT_CAP_SYNC_WRITE (1<<3)
-+
-+#define SNDRV_SEQ_PORT_CAP_DUPLEX (1<<4)
-+
-+#define SNDRV_SEQ_PORT_CAP_SUBS_READ (1<<5) /* allow read subscription */
-+#define SNDRV_SEQ_PORT_CAP_SUBS_WRITE (1<<6) /* allow write subscription */
-+#define SNDRV_SEQ_PORT_CAP_NO_EXPORT (1<<7) /* routing not allowed */
-+
-+ /* port type */
-+#define SNDRV_SEQ_PORT_TYPE_SPECIFIC (1<<0) /* hardware specific */
-+#define SNDRV_SEQ_PORT_TYPE_MIDI_GENERIC (1<<1) /* generic MIDI device */
-+#define SNDRV_SEQ_PORT_TYPE_MIDI_GM (1<<2) /* General MIDI compatible device */
-+#define SNDRV_SEQ_PORT_TYPE_MIDI_GS (1<<3) /* GS compatible device */
-+#define SNDRV_SEQ_PORT_TYPE_MIDI_XG (1<<4) /* XG compatible device */
-+#define SNDRV_SEQ_PORT_TYPE_MIDI_MT32 (1<<5) /* MT-32 compatible device */
-+#define SNDRV_SEQ_PORT_TYPE_MIDI_GM2 (1<<6) /* General MIDI 2 compatible device */
-+
-+/* other standards...*/
-+#define SNDRV_SEQ_PORT_TYPE_SYNTH (1<<10) /* Synth device (no MIDI compatible - direct wavetable) */
-+#define SNDRV_SEQ_PORT_TYPE_DIRECT_SAMPLE (1<<11) /* Sampling device (support sample download) */
-+#define SNDRV_SEQ_PORT_TYPE_SAMPLE (1<<12) /* Sampling device (sample can be downloaded at any time) */
-+/*...*/
-+#define SNDRV_SEQ_PORT_TYPE_HARDWARE (1<<16) /* driver for a hardware device */
-+#define SNDRV_SEQ_PORT_TYPE_SOFTWARE (1<<17) /* implemented in software */
-+#define SNDRV_SEQ_PORT_TYPE_SYNTHESIZER (1<<18) /* generates sound */
-+#define SNDRV_SEQ_PORT_TYPE_PORT (1<<19) /* connects to other device(s) */
-+#define SNDRV_SEQ_PORT_TYPE_APPLICATION (1<<20) /* application (sequencer/editor) */
-+
-+/* misc. conditioning flags */
-+#define SNDRV_SEQ_PORT_FLG_GIVEN_PORT (1<<0)
-+#define SNDRV_SEQ_PORT_FLG_TIMESTAMP (1<<1)
-+#define SNDRV_SEQ_PORT_FLG_TIME_REAL (1<<2)
-+
-+struct snd_seq_port_info {
-+ struct snd_seq_addr addr; /* client/port numbers */
-+ char name[64]; /* port name */
-+
-+ unsigned int capability; /* port capability bits */
-+ unsigned int type; /* port type bits */
-+ int midi_channels; /* channels per MIDI port */
-+ int midi_voices; /* voices per MIDI port */
-+ int synth_voices; /* voices per SYNTH port */
-+
-+ int read_use; /* R/O: subscribers for output (from this port) */
-+ int write_use; /* R/O: subscribers for input (to this port) */
-+
-+ void *kernel; /* reserved for kernel use (must be NULL) */
-+ unsigned int flags; /* misc. conditioning */
-+ unsigned char time_queue; /* queue # for timestamping */
-+ char reserved[59]; /* for future use */
-+};
-+
-+
-+/* queue flags */
-+#define SNDRV_SEQ_QUEUE_FLG_SYNC (1<<0) /* sync enabled */
-+
-+/* queue information */
-+struct snd_seq_queue_info {
-+ int queue; /* queue id */
-+
-+ /*
-+ * security settings, only owner of this queue can start/stop timer
-+ * etc. if the queue is locked for other clients
-+ */
-+ int owner; /* client id for owner of the queue */
-+ unsigned locked:1; /* timing queue locked for other queues */
-+ char name[64]; /* name of this queue */
-+ unsigned int flags; /* flags */
-+ char reserved[60]; /* for future use */
-+
-+};
-+
-+/* queue info/status */
-+struct snd_seq_queue_status {
-+ int queue; /* queue id */
-+ int events; /* read-only - queue size */
-+ snd_seq_tick_time_t tick; /* current tick */
-+ struct snd_seq_real_time time; /* current time */
-+ int running; /* running state of queue */
-+ int flags; /* various flags */
-+ char reserved[64]; /* for the future */
-+};
-+
-+
-+/* queue tempo */
-+struct snd_seq_queue_tempo {
-+ int queue; /* sequencer queue */
-+ unsigned int tempo; /* current tempo, us/tick */
-+ int ppq; /* time resolution, ticks/quarter */
-+ unsigned int skew_value; /* queue skew */
-+ unsigned int skew_base; /* queue skew base */
-+ char reserved[24]; /* for the future */
-+};
-+
-+
-+/* sequencer timer sources */
-+#define SNDRV_SEQ_TIMER_ALSA 0 /* ALSA timer */
-+#define SNDRV_SEQ_TIMER_MIDI_CLOCK 1 /* Midi Clock (CLOCK event) */
-+#define SNDRV_SEQ_TIMER_MIDI_TICK 2 /* Midi Timer Tick (TICK event) */
-+
-+/* queue timer info */
-+struct snd_seq_queue_timer {
-+ int queue; /* sequencer queue */
-+ int type; /* source timer type */
-+ union {
-+ struct {
-+ struct snd_timer_id id; /* ALSA's timer ID */
-+ unsigned int resolution; /* resolution in Hz */
-+ } alsa;
-+ } u;
-+ char reserved[64]; /* for the future use */
-+};
-+
-+
-+struct snd_seq_queue_client {
-+ int queue; /* sequencer queue */
-+ int client; /* sequencer client */
-+ int used; /* queue is used with this client
-+ (must be set for accepting events) */
-+ /* per client watermarks */
-+ char reserved[64]; /* for future use */
-+};
-+
-+
-+#define SNDRV_SEQ_PORT_SUBS_EXCLUSIVE (1<<0) /* exclusive connection */
-+#define SNDRV_SEQ_PORT_SUBS_TIMESTAMP (1<<1)
-+#define SNDRV_SEQ_PORT_SUBS_TIME_REAL (1<<2)
-+
-+struct snd_seq_port_subscribe {
-+ struct snd_seq_addr sender; /* sender address */
-+ struct snd_seq_addr dest; /* destination address */
-+ unsigned int voices; /* number of voices to be allocated (0 = don't care) */
-+ unsigned int flags; /* modes */
-+ unsigned char queue; /* input time-stamp queue (optional) */
-+ unsigned char pad[3]; /* reserved */
-+ char reserved[64];
-+};
-+
-+/* type of query subscription */
-+#define SNDRV_SEQ_QUERY_SUBS_READ 0
-+#define SNDRV_SEQ_QUERY_SUBS_WRITE 1
-+
-+struct snd_seq_query_subs {
-+ struct snd_seq_addr root; /* client/port id to be searched */
-+ int type; /* READ or WRITE */
-+ int index; /* 0..N-1 */
-+ int num_subs; /* R/O: number of subscriptions on this port */
-+ struct snd_seq_addr addr; /* R/O: result */
-+ unsigned char queue; /* R/O: result */
-+ unsigned int flags; /* R/O: result */
-+ char reserved[64]; /* for future use */
-+};
-+
-+
-+/*
-+ * IOCTL commands
-+ */
-+
-+#define SNDRV_SEQ_IOCTL_PVERSION _IOR ('S', 0x00, int)
-+#define SNDRV_SEQ_IOCTL_CLIENT_ID _IOR ('S', 0x01, int)
-+#define SNDRV_SEQ_IOCTL_SYSTEM_INFO _IOWR('S', 0x02, struct snd_seq_system_info)
-+#define SNDRV_SEQ_IOCTL_RUNNING_MODE _IOWR('S', 0x03, struct snd_seq_running_info)
-+
-+#define SNDRV_SEQ_IOCTL_GET_CLIENT_INFO _IOWR('S', 0x10, struct snd_seq_client_info)
-+#define SNDRV_SEQ_IOCTL_SET_CLIENT_INFO _IOW ('S', 0x11, struct snd_seq_client_info)
-+
-+#define SNDRV_SEQ_IOCTL_CREATE_PORT _IOWR('S', 0x20, struct snd_seq_port_info)
-+#define SNDRV_SEQ_IOCTL_DELETE_PORT _IOW ('S', 0x21, struct snd_seq_port_info)
-+#define SNDRV_SEQ_IOCTL_GET_PORT_INFO _IOWR('S', 0x22, struct snd_seq_port_info)
-+#define SNDRV_SEQ_IOCTL_SET_PORT_INFO _IOW ('S', 0x23, struct snd_seq_port_info)
-+
-+#define SNDRV_SEQ_IOCTL_SUBSCRIBE_PORT _IOW ('S', 0x30, struct snd_seq_port_subscribe)
-+#define SNDRV_SEQ_IOCTL_UNSUBSCRIBE_PORT _IOW ('S', 0x31, struct snd_seq_port_subscribe)
-+
-+#define SNDRV_SEQ_IOCTL_CREATE_QUEUE _IOWR('S', 0x32, struct snd_seq_queue_info)
-+#define SNDRV_SEQ_IOCTL_DELETE_QUEUE _IOW ('S', 0x33, struct snd_seq_queue_info)
-+#define SNDRV_SEQ_IOCTL_GET_QUEUE_INFO _IOWR('S', 0x34, struct snd_seq_queue_info)
-+#define SNDRV_SEQ_IOCTL_SET_QUEUE_INFO _IOWR('S', 0x35, struct snd_seq_queue_info)
-+#define SNDRV_SEQ_IOCTL_GET_NAMED_QUEUE _IOWR('S', 0x36, struct snd_seq_queue_info)
-+#define SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS _IOWR('S', 0x40, struct snd_seq_queue_status)
-+#define SNDRV_SEQ_IOCTL_GET_QUEUE_TEMPO _IOWR('S', 0x41, struct snd_seq_queue_tempo)
-+#define SNDRV_SEQ_IOCTL_SET_QUEUE_TEMPO _IOW ('S', 0x42, struct snd_seq_queue_tempo)
-+#define SNDRV_SEQ_IOCTL_GET_QUEUE_TIMER _IOWR('S', 0x45, struct snd_seq_queue_timer)
-+#define SNDRV_SEQ_IOCTL_SET_QUEUE_TIMER _IOW ('S', 0x46, struct snd_seq_queue_timer)
-+#define SNDRV_SEQ_IOCTL_GET_QUEUE_CLIENT _IOWR('S', 0x49, struct snd_seq_queue_client)
-+#define SNDRV_SEQ_IOCTL_SET_QUEUE_CLIENT _IOW ('S', 0x4a, struct snd_seq_queue_client)
-+#define SNDRV_SEQ_IOCTL_GET_CLIENT_POOL _IOWR('S', 0x4b, struct snd_seq_client_pool)
-+#define SNDRV_SEQ_IOCTL_SET_CLIENT_POOL _IOW ('S', 0x4c, struct snd_seq_client_pool)
-+#define SNDRV_SEQ_IOCTL_REMOVE_EVENTS _IOW ('S', 0x4e, struct snd_seq_remove_events)
-+#define SNDRV_SEQ_IOCTL_QUERY_SUBS _IOWR('S', 0x4f, struct snd_seq_query_subs)
-+#define SNDRV_SEQ_IOCTL_GET_SUBSCRIPTION _IOWR('S', 0x50, struct snd_seq_port_subscribe)
-+#define SNDRV_SEQ_IOCTL_QUERY_NEXT_CLIENT _IOWR('S', 0x51, struct snd_seq_client_info)
-+#define SNDRV_SEQ_IOCTL_QUERY_NEXT_PORT _IOWR('S', 0x52, struct snd_seq_port_info)
-+
-+#endif /* _UAPI__SOUND_ASEQUENCER_H */
-diff --git a/include/sound/uapi/asoc.h b/include/sound/uapi/asoc.h
-new file mode 100644
-index 00000000..a74ca232
---- /dev/null
-+++ b/include/sound/uapi/asoc.h
-@@ -0,0 +1,633 @@
-+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-+/*
-+ * uapi/sound/asoc.h -- ALSA SoC Firmware Controls and DAPM
-+ *
-+ * Copyright (C) 2012 Texas Instruments Inc.
-+ * Copyright (C) 2015 Intel Corporation.
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ *
-+ * Simple file API to load FW that includes mixers, coefficients, DAPM graphs,
-+ * algorithms, equalisers, DAIs, widgets etc.
-+*/
-+
-+#ifndef __LINUX_UAPI_SND_ASOC_H
-+#define __LINUX_UAPI_SND_ASOC_H
-+
-+#include <linux/types.h>
-+#include <sound/asound.h>
-+
-+/*
-+ * Maximum number of channels topology kcontrol can represent.
-+ */
-+#define SND_SOC_TPLG_MAX_CHAN 8
-+
-+/*
-+ * Maximum number of PCM formats capability
-+ */
-+#define SND_SOC_TPLG_MAX_FORMATS 16
-+
-+/*
-+ * Maximum number of PCM stream configs
-+ */
-+#define SND_SOC_TPLG_STREAM_CONFIG_MAX 8
-+
-+/*
-+ * Maximum number of physical link's hardware configs
-+ */
-+#define SND_SOC_TPLG_HW_CONFIG_MAX 8
-+
-+/* individual kcontrol info types - can be mixed with other types */
-+#define SND_SOC_TPLG_CTL_VOLSW 1
-+#define SND_SOC_TPLG_CTL_VOLSW_SX 2
-+#define SND_SOC_TPLG_CTL_VOLSW_XR_SX 3
-+#define SND_SOC_TPLG_CTL_ENUM 4
-+#define SND_SOC_TPLG_CTL_BYTES 5
-+#define SND_SOC_TPLG_CTL_ENUM_VALUE 6
-+#define SND_SOC_TPLG_CTL_RANGE 7
-+#define SND_SOC_TPLG_CTL_STROBE 8
-+
-+
-+/* individual widget kcontrol info types - can be mixed with other types */
-+#define SND_SOC_TPLG_DAPM_CTL_VOLSW 64
-+#define SND_SOC_TPLG_DAPM_CTL_ENUM_DOUBLE 65
-+#define SND_SOC_TPLG_DAPM_CTL_ENUM_VIRT 66
-+#define SND_SOC_TPLG_DAPM_CTL_ENUM_VALUE 67
-+#define SND_SOC_TPLG_DAPM_CTL_PIN 68
-+
-+/* DAPM widget types - add new items to the end */
-+#define SND_SOC_TPLG_DAPM_INPUT 0
-+#define SND_SOC_TPLG_DAPM_OUTPUT 1
-+#define SND_SOC_TPLG_DAPM_MUX 2
-+#define SND_SOC_TPLG_DAPM_MIXER 3
-+#define SND_SOC_TPLG_DAPM_PGA 4
-+#define SND_SOC_TPLG_DAPM_OUT_DRV 5
-+#define SND_SOC_TPLG_DAPM_ADC 6
-+#define SND_SOC_TPLG_DAPM_DAC 7
-+#define SND_SOC_TPLG_DAPM_SWITCH 8
-+#define SND_SOC_TPLG_DAPM_PRE 9
-+#define SND_SOC_TPLG_DAPM_POST 10
-+#define SND_SOC_TPLG_DAPM_AIF_IN 11
-+#define SND_SOC_TPLG_DAPM_AIF_OUT 12
-+#define SND_SOC_TPLG_DAPM_DAI_IN 13
-+#define SND_SOC_TPLG_DAPM_DAI_OUT 14
-+#define SND_SOC_TPLG_DAPM_DAI_LINK 15
-+#define SND_SOC_TPLG_DAPM_BUFFER 16
-+#define SND_SOC_TPLG_DAPM_SCHEDULER 17
-+#define SND_SOC_TPLG_DAPM_EFFECT 18
-+#define SND_SOC_TPLG_DAPM_SIGGEN 19
-+#define SND_SOC_TPLG_DAPM_SRC 20
-+#define SND_SOC_TPLG_DAPM_ASRC 21
-+#define SND_SOC_TPLG_DAPM_ENCODER 22
-+#define SND_SOC_TPLG_DAPM_DECODER 23
-+#define SND_SOC_TPLG_DAPM_LAST SND_SOC_TPLG_DAPM_DECODER
-+
-+/* Header magic number and string sizes */
-+#define SND_SOC_TPLG_MAGIC 0x41536F43 /* ASoC */
-+
-+/* string sizes */
-+#define SND_SOC_TPLG_NUM_TEXTS 16
-+
-+/* ABI version */
-+#define SND_SOC_TPLG_ABI_VERSION 0x5 /* current version */
-+#define SND_SOC_TPLG_ABI_VERSION_MIN 0x4 /* oldest version supported */
-+
-+/* Max size of TLV data */
-+#define SND_SOC_TPLG_TLV_SIZE 32
-+
-+/*
-+ * File and Block header data types.
-+ * Add new generic and vendor types to end of list.
-+ * Generic types are handled by the core whilst vendors types are passed
-+ * to the component drivers for handling.
-+ */
-+#define SND_SOC_TPLG_TYPE_MIXER 1
-+#define SND_SOC_TPLG_TYPE_BYTES 2
-+#define SND_SOC_TPLG_TYPE_ENUM 3
-+#define SND_SOC_TPLG_TYPE_DAPM_GRAPH 4
-+#define SND_SOC_TPLG_TYPE_DAPM_WIDGET 5
-+#define SND_SOC_TPLG_TYPE_DAI_LINK 6
-+#define SND_SOC_TPLG_TYPE_PCM 7
-+#define SND_SOC_TPLG_TYPE_MANIFEST 8
-+#define SND_SOC_TPLG_TYPE_CODEC_LINK 9
-+#define SND_SOC_TPLG_TYPE_BACKEND_LINK 10
-+#define SND_SOC_TPLG_TYPE_PDATA 11
-+#define SND_SOC_TPLG_TYPE_DAI 12
-+#define SND_SOC_TPLG_TYPE_MAX SND_SOC_TPLG_TYPE_DAI
-+
-+/* vendor block IDs - please add new vendor types to end */
-+#define SND_SOC_TPLG_TYPE_VENDOR_FW 1000
-+#define SND_SOC_TPLG_TYPE_VENDOR_CONFIG 1001
-+#define SND_SOC_TPLG_TYPE_VENDOR_COEFF 1002
-+#define SND_SOC_TPLG_TYPEVENDOR_CODEC 1003
-+
-+#define SND_SOC_TPLG_STREAM_PLAYBACK 0
-+#define SND_SOC_TPLG_STREAM_CAPTURE 1
-+
-+/* vendor tuple types */
-+#define SND_SOC_TPLG_TUPLE_TYPE_UUID 0
-+#define SND_SOC_TPLG_TUPLE_TYPE_STRING 1
-+#define SND_SOC_TPLG_TUPLE_TYPE_BOOL 2
-+#define SND_SOC_TPLG_TUPLE_TYPE_BYTE 3
-+#define SND_SOC_TPLG_TUPLE_TYPE_WORD 4
-+#define SND_SOC_TPLG_TUPLE_TYPE_SHORT 5
-+
-+/* DAI flags */
-+#define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_RATES (1 << 0)
-+#define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_CHANNELS (1 << 1)
-+#define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_SAMPLEBITS (1 << 2)
-+
-+/* DAI clock gating */
-+#define SND_SOC_TPLG_DAI_CLK_GATE_UNDEFINED 0
-+#define SND_SOC_TPLG_DAI_CLK_GATE_GATED 1
-+#define SND_SOC_TPLG_DAI_CLK_GATE_CONT 2
-+
-+/* DAI mclk_direction */
-+#define SND_SOC_TPLG_MCLK_CO 0 /* for codec, mclk is output */
-+#define SND_SOC_TPLG_MCLK_CI 1 /* for codec, mclk is input */
-+
-+/* DAI physical PCM data formats.
-+ * Add new formats to the end of the list.
-+ */
-+#define SND_SOC_DAI_FORMAT_I2S 1 /* I2S mode */
-+#define SND_SOC_DAI_FORMAT_RIGHT_J 2 /* Right Justified mode */
-+#define SND_SOC_DAI_FORMAT_LEFT_J 3 /* Left Justified mode */
-+#define SND_SOC_DAI_FORMAT_DSP_A 4 /* L data MSB after FRM LRC */
-+#define SND_SOC_DAI_FORMAT_DSP_B 5 /* L data MSB during FRM LRC */
-+#define SND_SOC_DAI_FORMAT_AC97 6 /* AC97 */
-+#define SND_SOC_DAI_FORMAT_PDM 7 /* Pulse density modulation */
-+
-+/* left and right justified also known as MSB and LSB respectively */
-+#define SND_SOC_DAI_FORMAT_MSB SND_SOC_DAI_FORMAT_LEFT_J
-+#define SND_SOC_DAI_FORMAT_LSB SND_SOC_DAI_FORMAT_RIGHT_J
-+
-+/* DAI link flags */
-+#define SND_SOC_TPLG_LNK_FLGBIT_SYMMETRIC_RATES (1 << 0)
-+#define SND_SOC_TPLG_LNK_FLGBIT_SYMMETRIC_CHANNELS (1 << 1)
-+#define SND_SOC_TPLG_LNK_FLGBIT_SYMMETRIC_SAMPLEBITS (1 << 2)
-+#define SND_SOC_TPLG_LNK_FLGBIT_VOICE_WAKEUP (1 << 3)
-+
-+/* DAI topology BCLK parameter
-+ * For the backwards capability, by default codec is bclk master
-+ */
-+#define SND_SOC_TPLG_BCLK_CM 0 /* codec is bclk master */
-+#define SND_SOC_TPLG_BCLK_CS 1 /* codec is bclk slave */
-+
-+/* DAI topology FSYNC parameter
-+ * For the backwards capability, by default codec is fsync master
-+ */
-+#define SND_SOC_TPLG_FSYNC_CM 0 /* codec is fsync master */
-+#define SND_SOC_TPLG_FSYNC_CS 1 /* codec is fsync slave */
-+
-+/*
-+ * Block Header.
-+ * This header precedes all object and object arrays below.
-+ */
-+struct snd_soc_tplg_hdr {
-+ __le32 magic; /* magic number */
-+ __le32 abi; /* ABI version */
-+ __le32 version; /* optional vendor specific version details */
-+ __le32 type; /* SND_SOC_TPLG_TYPE_ */
-+ __le32 size; /* size of this structure */
-+ __le32 vendor_type; /* optional vendor specific type info */
-+ __le32 payload_size; /* data bytes, excluding this header */
-+ __le32 index; /* identifier for block */
-+ __le32 count; /* number of elements in block */
-+} __attribute__((packed));
-+
-+/* vendor tuple for uuid */
-+struct snd_soc_tplg_vendor_uuid_elem {
-+ __le32 token;
-+ char uuid[16];
-+} __attribute__((packed));
-+
-+/* vendor tuple for a bool/byte/short/word value */
-+struct snd_soc_tplg_vendor_value_elem {
-+ __le32 token;
-+ __le32 value;
-+} __attribute__((packed));
-+
-+/* vendor tuple for string */
-+struct snd_soc_tplg_vendor_string_elem {
-+ __le32 token;
-+ char string[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-+} __attribute__((packed));
-+
-+struct snd_soc_tplg_vendor_array {
-+ __le32 size; /* size in bytes of the array, including all elements */
-+ __le32 type; /* SND_SOC_TPLG_TUPLE_TYPE_ */
-+ __le32 num_elems; /* number of elements in array */
-+ union {
-+ struct snd_soc_tplg_vendor_uuid_elem uuid[0];
-+ struct snd_soc_tplg_vendor_value_elem value[0];
-+ struct snd_soc_tplg_vendor_string_elem string[0];
-+ };
-+} __attribute__((packed));
-+
-+/*
-+ * Private data.
-+ * All topology objects may have private data that can be used by the driver or
-+ * firmware. Core will ignore this data.
-+ */
-+struct snd_soc_tplg_private {
-+ __le32 size; /* in bytes of private data */
-+ union {
-+ char data[0];
-+ struct snd_soc_tplg_vendor_array array[0];
-+ };
-+} __attribute__((packed));
-+
-+/*
-+ * Kcontrol TLV data.
-+ */
-+struct snd_soc_tplg_tlv_dbscale {
-+ __le32 min;
-+ __le32 step;
-+ __le32 mute;
-+} __attribute__((packed));
-+
-+struct snd_soc_tplg_ctl_tlv {
-+ __le32 size; /* in bytes of this structure */
-+ __le32 type; /* SNDRV_CTL_TLVT_*, type of TLV */
-+ union {
-+ __le32 data[SND_SOC_TPLG_TLV_SIZE];
-+ struct snd_soc_tplg_tlv_dbscale scale;
-+ };
-+} __attribute__((packed));
-+
-+/*
-+ * Kcontrol channel data
-+ */
-+struct snd_soc_tplg_channel {
-+ __le32 size; /* in bytes of this structure */
-+ __le32 reg;
-+ __le32 shift;
-+ __le32 id; /* ID maps to Left, Right, LFE etc */
-+} __attribute__((packed));
-+
-+/*
-+ * Genericl Operations IDs, for binding Kcontrol or Bytes ext ops
-+ * Kcontrol ops need get/put/info.
-+ * Bytes ext ops need get/put.
-+ */
-+struct snd_soc_tplg_io_ops {
-+ __le32 get;
-+ __le32 put;
-+ __le32 info;
-+} __attribute__((packed));
-+
-+/*
-+ * kcontrol header
-+ */
-+struct snd_soc_tplg_ctl_hdr {
-+ __le32 size; /* in bytes of this structure */
-+ __le32 type;
-+ char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-+ __le32 access;
-+ struct snd_soc_tplg_io_ops ops;
-+ struct snd_soc_tplg_ctl_tlv tlv;
-+} __attribute__((packed));
-+
-+/*
-+ * Stream Capabilities
-+ */
-+struct snd_soc_tplg_stream_caps {
-+ __le32 size; /* in bytes of this structure */
-+ char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-+ __le64 formats; /* supported formats SNDRV_PCM_FMTBIT_* */
-+ __le32 rates; /* supported rates SNDRV_PCM_RATE_* */
-+ __le32 rate_min; /* min rate */
-+ __le32 rate_max; /* max rate */
-+ __le32 channels_min; /* min channels */
-+ __le32 channels_max; /* max channels */
-+ __le32 periods_min; /* min number of periods */
-+ __le32 periods_max; /* max number of periods */
-+ __le32 period_size_min; /* min period size bytes */
-+ __le32 period_size_max; /* max period size bytes */
-+ __le32 buffer_size_min; /* min buffer size bytes */
-+ __le32 buffer_size_max; /* max buffer size bytes */
-+ __le32 sig_bits; /* number of bits of content */
-+} __attribute__((packed));
-+
-+/*
-+ * FE or BE Stream configuration supported by SW/FW
-+ */
-+struct snd_soc_tplg_stream {
-+ __le32 size; /* in bytes of this structure */
-+ char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; /* Name of the stream */
-+ __le64 format; /* SNDRV_PCM_FMTBIT_* */
-+ __le32 rate; /* SNDRV_PCM_RATE_* */
-+ __le32 period_bytes; /* size of period in bytes */
-+ __le32 buffer_bytes; /* size of buffer in bytes */
-+ __le32 channels; /* channels */
-+} __attribute__((packed));
-+
-+
-+/*
-+ * Describes a physical link's runtime supported hardware config,
-+ * i.e. hardware audio formats.
-+ */
-+struct snd_soc_tplg_hw_config {
-+ __le32 size; /* in bytes of this structure */
-+ __le32 id; /* unique ID - - used to match */
-+ __le32 fmt; /* SND_SOC_DAI_FORMAT_ format value */
-+ __u8 clock_gated; /* SND_SOC_TPLG_DAI_CLK_GATE_ value */
-+ __u8 invert_bclk; /* 1 for inverted BCLK, 0 for normal */
-+ __u8 invert_fsync; /* 1 for inverted frame clock, 0 for normal */
-+ __u8 bclk_master; /* SND_SOC_TPLG_BCLK_ value */
-+ __u8 fsync_master; /* SND_SOC_TPLG_FSYNC_ value */
-+ __u8 mclk_direction; /* SND_SOC_TPLG_MCLK_ value */
-+ __le16 reserved; /* for 32bit alignment */
-+ __le32 mclk_rate; /* MCLK or SYSCLK freqency in Hz */
-+ __le32 bclk_rate; /* BCLK freqency in Hz */
-+ __le32 fsync_rate; /* frame clock in Hz */
-+ __le32 tdm_slots; /* number of TDM slots in use */
-+ __le32 tdm_slot_width; /* width in bits for each slot */
-+ __le32 tx_slots; /* bit mask for active Tx slots */
-+ __le32 rx_slots; /* bit mask for active Rx slots */
-+ __le32 tx_channels; /* number of Tx channels */
-+ __le32 tx_chanmap[SND_SOC_TPLG_MAX_CHAN]; /* array of slot number */
-+ __le32 rx_channels; /* number of Rx channels */
-+ __le32 rx_chanmap[SND_SOC_TPLG_MAX_CHAN]; /* array of slot number */
-+} __attribute__((packed));
-+
-+/*
-+ * Manifest. List totals for each payload type. Not used in parsing, but will
-+ * be passed to the component driver before any other objects in order for any
-+ * global component resource allocations.
-+ *
-+ * File block representation for manifest :-
-+ * +-----------------------------------+----+
-+ * | struct snd_soc_tplg_hdr | 1 |
-+ * +-----------------------------------+----+
-+ * | struct snd_soc_tplg_manifest | 1 |
-+ * +-----------------------------------+----+
-+ */
-+struct snd_soc_tplg_manifest {
-+ __le32 size; /* in bytes of this structure */
-+ __le32 control_elems; /* number of control elements */
-+ __le32 widget_elems; /* number of widget elements */
-+ __le32 graph_elems; /* number of graph elements */
-+ __le32 pcm_elems; /* number of PCM elements */
-+ __le32 dai_link_elems; /* number of DAI link elements */
-+ __le32 dai_elems; /* number of physical DAI elements */
-+ __le32 reserved[20]; /* reserved for new ABI element types */
-+ struct snd_soc_tplg_private priv;
-+} __attribute__((packed));
-+
-+/*
-+ * Mixer kcontrol.
-+ *
-+ * File block representation for mixer kcontrol :-
-+ * +-----------------------------------+----+
-+ * | struct snd_soc_tplg_hdr | 1 |
-+ * +-----------------------------------+----+
-+ * | struct snd_soc_tplg_mixer_control | N |
-+ * +-----------------------------------+----+
-+ */
-+struct snd_soc_tplg_mixer_control {
-+ struct snd_soc_tplg_ctl_hdr hdr;
-+ __le32 size; /* in bytes of this structure */
-+ __le32 min;
-+ __le32 max;
-+ __le32 platform_max;
-+ __le32 invert;
-+ __le32 num_channels;
-+ struct snd_soc_tplg_channel channel[SND_SOC_TPLG_MAX_CHAN];
-+ struct snd_soc_tplg_private priv;
-+} __attribute__((packed));
-+
-+/*
-+ * Enumerated kcontrol
-+ *
-+ * File block representation for enum kcontrol :-
-+ * +-----------------------------------+----+
-+ * | struct snd_soc_tplg_hdr | 1 |
-+ * +-----------------------------------+----+
-+ * | struct snd_soc_tplg_enum_control | N |
-+ * +-----------------------------------+----+
-+ */
-+struct snd_soc_tplg_enum_control {
-+ struct snd_soc_tplg_ctl_hdr hdr;
-+ __le32 size; /* in bytes of this structure */
-+ __le32 num_channels;
-+ struct snd_soc_tplg_channel channel[SND_SOC_TPLG_MAX_CHAN];
-+ __le32 items;
-+ __le32 mask;
-+ __le32 count;
-+ char texts[SND_SOC_TPLG_NUM_TEXTS][SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-+ __le32 values[SND_SOC_TPLG_NUM_TEXTS * SNDRV_CTL_ELEM_ID_NAME_MAXLEN / 4];
-+ struct snd_soc_tplg_private priv;
-+} __attribute__((packed));
-+
-+/*
-+ * Bytes kcontrol
-+ *
-+ * File block representation for bytes kcontrol :-
-+ * +-----------------------------------+----+
-+ * | struct snd_soc_tplg_hdr | 1 |
-+ * +-----------------------------------+----+
-+ * | struct snd_soc_tplg_bytes_control | N |
-+ * +-----------------------------------+----+
-+ */
-+struct snd_soc_tplg_bytes_control {
-+ struct snd_soc_tplg_ctl_hdr hdr;
-+ __le32 size; /* in bytes of this structure */
-+ __le32 max;
-+ __le32 mask;
-+ __le32 base;
-+ __le32 num_regs;
-+ struct snd_soc_tplg_io_ops ext_ops;
-+ struct snd_soc_tplg_private priv;
-+} __attribute__((packed));
-+
-+/*
-+ * DAPM Graph Element
-+ *
-+ * File block representation for DAPM graph elements :-
-+ * +-------------------------------------+----+
-+ * | struct snd_soc_tplg_hdr | 1 |
-+ * +-------------------------------------+----+
-+ * | struct snd_soc_tplg_dapm_graph_elem | N |
-+ * +-------------------------------------+----+
-+ */
-+struct snd_soc_tplg_dapm_graph_elem {
-+ char sink[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-+ char control[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-+ char source[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-+} __attribute__((packed));
-+
-+/*
-+ * DAPM Widget.
-+ *
-+ * File block representation for DAPM widget :-
-+ * +-------------------------------------+-----+
-+ * | struct snd_soc_tplg_hdr | 1 |
-+ * +-------------------------------------+-----+
-+ * | struct snd_soc_tplg_dapm_widget | N |
-+ * +-------------------------------------+-----+
-+ * | struct snd_soc_tplg_enum_control | 0|1 |
-+ * | struct snd_soc_tplg_mixer_control | 0|N |
-+ * +-------------------------------------+-----+
-+ *
-+ * Optional enum or mixer control can be appended to the end of each widget
-+ * in the block.
-+ */
-+struct snd_soc_tplg_dapm_widget {
-+ __le32 size; /* in bytes of this structure */
-+ __le32 id; /* SND_SOC_DAPM_CTL */
-+ char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-+ char sname[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-+
-+ __le32 reg; /* negative reg = no direct dapm */
-+ __le32 shift; /* bits to shift */
-+ __le32 mask; /* non-shifted mask */
-+ __le32 subseq; /* sort within widget type */
-+ __le32 invert; /* invert the power bit */
-+ __le32 ignore_suspend; /* kept enabled over suspend */
-+ __le16 event_flags;
-+ __le16 event_type;
-+ __le32 num_kcontrols;
-+ struct snd_soc_tplg_private priv;
-+ /*
-+ * kcontrols that relate to this widget
-+ * follow here after widget private data
-+ */
-+} __attribute__((packed));
-+
-+
-+/*
-+ * Describes SW/FW specific features of PCM (FE DAI & DAI link).
-+ *
-+ * File block representation for PCM :-
-+ * +-----------------------------------+-----+
-+ * | struct snd_soc_tplg_hdr | 1 |
-+ * +-----------------------------------+-----+
-+ * | struct snd_soc_tplg_pcm | N |
-+ * +-----------------------------------+-----+
-+ */
-+struct snd_soc_tplg_pcm {
-+ __le32 size; /* in bytes of this structure */
-+ char pcm_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-+ char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-+ __le32 pcm_id; /* unique ID - used to match with DAI link */
-+ __le32 dai_id; /* unique ID - used to match */
-+ __le32 playback; /* supports playback mode */
-+ __le32 capture; /* supports capture mode */
-+ __le32 compress; /* 1 = compressed; 0 = PCM */
-+ struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX]; /* for DAI link */
-+ __le32 num_streams; /* number of streams */
-+ struct snd_soc_tplg_stream_caps caps[2]; /* playback and capture for DAI */
-+ __le32 flag_mask; /* bitmask of flags to configure */
-+ __le32 flags; /* SND_SOC_TPLG_LNK_FLGBIT_* flag value */
-+ struct snd_soc_tplg_private priv;
-+} __attribute__((packed));
-+
-+
-+/*
-+ * Describes the physical link runtime supported configs or params
-+ *
-+ * File block representation for physical link config :-
-+ * +-----------------------------------+-----+
-+ * | struct snd_soc_tplg_hdr | 1 |
-+ * +-----------------------------------+-----+
-+ * | struct snd_soc_tplg_link_config | N |
-+ * +-----------------------------------+-----+
-+ */
-+struct snd_soc_tplg_link_config {
-+ __le32 size; /* in bytes of this structure */
-+ __le32 id; /* unique ID - used to match */
-+ char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; /* name - used to match */
-+ char stream_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; /* stream name - used to match */
-+ struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX]; /* supported configs playback and captrure */
-+ __le32 num_streams; /* number of streams */
-+ struct snd_soc_tplg_hw_config hw_config[SND_SOC_TPLG_HW_CONFIG_MAX]; /* hw configs */
-+ __le32 num_hw_configs; /* number of hw configs */
-+ __le32 default_hw_config_id; /* default hw config ID for init */
-+ __le32 flag_mask; /* bitmask of flags to configure */
-+ __le32 flags; /* SND_SOC_TPLG_LNK_FLGBIT_* flag value */
-+ struct snd_soc_tplg_private priv;
-+} __attribute__((packed));
-+
-+/*
-+ * Describes SW/FW specific features of physical DAI.
-+ * It can be used to configure backend DAIs for DPCM.
-+ *
-+ * File block representation for physical DAI :-
-+ * +-----------------------------------+-----+
-+ * | struct snd_soc_tplg_hdr | 1 |
-+ * +-----------------------------------+-----+
-+ * | struct snd_soc_tplg_dai | N |
-+ * +-----------------------------------+-----+
-+ */
-+struct snd_soc_tplg_dai {
-+ __le32 size; /* in bytes of this structure */
-+ char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; /* name - used to match */
-+ __le32 dai_id; /* unique ID - used to match */
-+ __le32 playback; /* supports playback mode */
-+ __le32 capture; /* supports capture mode */
-+ struct snd_soc_tplg_stream_caps caps[2]; /* playback and capture for DAI */
-+ __le32 flag_mask; /* bitmask of flags to configure */
-+ __le32 flags; /* SND_SOC_TPLG_DAI_FLGBIT_* */
-+ struct snd_soc_tplg_private priv;
-+} __attribute__((packed));
-+
-+/*
-+ * Old version of ABI structs, supported for backward compatibility.
-+ */
-+
-+/* Manifest v4 */
-+struct snd_soc_tplg_manifest_v4 {
-+ __le32 size; /* in bytes of this structure */
-+ __le32 control_elems; /* number of control elements */
-+ __le32 widget_elems; /* number of widget elements */
-+ __le32 graph_elems; /* number of graph elements */
-+ __le32 pcm_elems; /* number of PCM elements */
-+ __le32 dai_link_elems; /* number of DAI link elements */
-+ struct snd_soc_tplg_private priv;
-+} __packed;
-+
-+/* Stream Capabilities v4 */
-+struct snd_soc_tplg_stream_caps_v4 {
-+ __le32 size; /* in bytes of this structure */
-+ char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-+ __le64 formats; /* supported formats SNDRV_PCM_FMTBIT_* */
-+ __le32 rates; /* supported rates SNDRV_PCM_RATE_* */
-+ __le32 rate_min; /* min rate */
-+ __le32 rate_max; /* max rate */
-+ __le32 channels_min; /* min channels */
-+ __le32 channels_max; /* max channels */
-+ __le32 periods_min; /* min number of periods */
-+ __le32 periods_max; /* max number of periods */
-+ __le32 period_size_min; /* min period size bytes */
-+ __le32 period_size_max; /* max period size bytes */
-+ __le32 buffer_size_min; /* min buffer size bytes */
-+ __le32 buffer_size_max; /* max buffer size bytes */
-+} __packed;
-+
-+/* PCM v4 */
-+struct snd_soc_tplg_pcm_v4 {
-+ __le32 size; /* in bytes of this structure */
-+ char pcm_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-+ char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-+ __le32 pcm_id; /* unique ID - used to match with DAI link */
-+ __le32 dai_id; /* unique ID - used to match */
-+ __le32 playback; /* supports playback mode */
-+ __le32 capture; /* supports capture mode */
-+ __le32 compress; /* 1 = compressed; 0 = PCM */
-+ struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX]; /* for DAI link */
-+ __le32 num_streams; /* number of streams */
-+ struct snd_soc_tplg_stream_caps_v4 caps[2]; /* playback and capture for DAI */
-+} __packed;
-+
-+/* Physical link config v4 */
-+struct snd_soc_tplg_link_config_v4 {
-+ __le32 size; /* in bytes of this structure */
-+ __le32 id; /* unique ID - used to match */
-+ struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX]; /* supported configs playback and captrure */
-+ __le32 num_streams; /* number of streams */
-+} __packed;
-+
-+#endif
-diff --git a/include/sound/uapi/asound.h b/include/sound/uapi/asound.h
-new file mode 100644
-index 00000000..df1153ce
---- /dev/null
-+++ b/include/sound/uapi/asound.h
-@@ -0,0 +1,1038 @@
-+/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-+/*
-+ * Advanced Linux Sound Architecture - ALSA - Driver
-+ * Copyright (c) 1994-2003 by Jaroslav Kysela <perex@perex.cz>,
-+ * Abramo Bagnara <abramo@alsa-project.org>
-+ *
-+ *
-+ * 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 _UAPI__SOUND_ASOUND_H
-+#define _UAPI__SOUND_ASOUND_H
-+
-+#if defined(__KERNEL__) || defined(__linux__)
-+#include <linux/types.h>
-+#else
-+#include <sys/ioctl.h>
-+#endif
-+
-+#ifndef __KERNEL__
-+#include <stdlib.h>
-+#include <time.h>
-+#endif
-+
-+/*
-+ * protocol version
-+ */
-+
-+#define SNDRV_PROTOCOL_VERSION(major, minor, subminor) (((major)<<16)|((minor)<<8)|(subminor))
-+#define SNDRV_PROTOCOL_MAJOR(version) (((version)>>16)&0xffff)
-+#define SNDRV_PROTOCOL_MINOR(version) (((version)>>8)&0xff)
-+#define SNDRV_PROTOCOL_MICRO(version) ((version)&0xff)
-+#define SNDRV_PROTOCOL_INCOMPATIBLE(kversion, uversion) \
-+ (SNDRV_PROTOCOL_MAJOR(kversion) != SNDRV_PROTOCOL_MAJOR(uversion) || \
-+ (SNDRV_PROTOCOL_MAJOR(kversion) == SNDRV_PROTOCOL_MAJOR(uversion) && \
-+ SNDRV_PROTOCOL_MINOR(kversion) != SNDRV_PROTOCOL_MINOR(uversion)))
-+
-+/****************************************************************************
-+ * *
-+ * Digital audio interface *
-+ * *
-+ ****************************************************************************/
-+
-+struct snd_aes_iec958 {
-+ unsigned char status[24]; /* AES/IEC958 channel status bits */
-+ unsigned char subcode[147]; /* AES/IEC958 subcode bits */
-+ unsigned char pad; /* nothing */
-+ unsigned char dig_subframe[4]; /* AES/IEC958 subframe bits */
-+};
-+
-+/****************************************************************************
-+ * *
-+ * CEA-861 Audio InfoFrame. Used in HDMI and DisplayPort *
-+ * *
-+ ****************************************************************************/
-+
-+struct snd_cea_861_aud_if {
-+ unsigned char db1_ct_cc; /* coding type and channel count */
-+ unsigned char db2_sf_ss; /* sample frequency and size */
-+ unsigned char db3; /* not used, all zeros */
-+ unsigned char db4_ca; /* channel allocation code */
-+ unsigned char db5_dminh_lsv; /* downmix inhibit & level-shit values */
-+};
-+
-+/****************************************************************************
-+ * *
-+ * Section for driver hardware dependent interface - /dev/snd/hw? *
-+ * *
-+ ****************************************************************************/
-+
-+#define SNDRV_HWDEP_VERSION SNDRV_PROTOCOL_VERSION(1, 0, 1)
-+
-+enum {
-+ SNDRV_HWDEP_IFACE_OPL2 = 0,
-+ SNDRV_HWDEP_IFACE_OPL3,
-+ SNDRV_HWDEP_IFACE_OPL4,
-+ SNDRV_HWDEP_IFACE_SB16CSP, /* Creative Signal Processor */
-+ SNDRV_HWDEP_IFACE_EMU10K1, /* FX8010 processor in EMU10K1 chip */
-+ SNDRV_HWDEP_IFACE_YSS225, /* Yamaha FX processor */
-+ SNDRV_HWDEP_IFACE_ICS2115, /* Wavetable synth */
-+ SNDRV_HWDEP_IFACE_SSCAPE, /* Ensoniq SoundScape ISA card (MC68EC000) */
-+ SNDRV_HWDEP_IFACE_VX, /* Digigram VX cards */
-+ SNDRV_HWDEP_IFACE_MIXART, /* Digigram miXart cards */
-+ SNDRV_HWDEP_IFACE_USX2Y, /* Tascam US122, US224 & US428 usb */
-+ SNDRV_HWDEP_IFACE_EMUX_WAVETABLE, /* EmuX wavetable */
-+ SNDRV_HWDEP_IFACE_BLUETOOTH, /* Bluetooth audio */
-+ SNDRV_HWDEP_IFACE_USX2Y_PCM, /* Tascam US122, US224 & US428 rawusb pcm */
-+ SNDRV_HWDEP_IFACE_PCXHR, /* Digigram PCXHR */
-+ SNDRV_HWDEP_IFACE_SB_RC, /* SB Extigy/Audigy2NX remote control */
-+ SNDRV_HWDEP_IFACE_HDA, /* HD-audio */
-+ SNDRV_HWDEP_IFACE_USB_STREAM, /* direct access to usb stream */
-+ SNDRV_HWDEP_IFACE_FW_DICE, /* TC DICE FireWire device */
-+ SNDRV_HWDEP_IFACE_FW_FIREWORKS, /* Echo Audio Fireworks based device */
-+ SNDRV_HWDEP_IFACE_FW_BEBOB, /* BridgeCo BeBoB based device */
-+ SNDRV_HWDEP_IFACE_FW_OXFW, /* Oxford OXFW970/971 based device */
-+ SNDRV_HWDEP_IFACE_FW_DIGI00X, /* Digidesign Digi 002/003 family */
-+ SNDRV_HWDEP_IFACE_FW_TASCAM, /* TASCAM FireWire series */
-+ SNDRV_HWDEP_IFACE_LINE6, /* Line6 USB processors */
-+ SNDRV_HWDEP_IFACE_FW_MOTU, /* MOTU FireWire series */
-+ SNDRV_HWDEP_IFACE_FW_FIREFACE, /* RME Fireface series */
-+
-+ /* Don't forget to change the following: */
-+ SNDRV_HWDEP_IFACE_LAST = SNDRV_HWDEP_IFACE_FW_FIREFACE
-+};
-+
-+struct snd_hwdep_info {
-+ unsigned int device; /* WR: device number */
-+ int card; /* R: card number */
-+ unsigned char id[64]; /* ID (user selectable) */
-+ unsigned char name[80]; /* hwdep name */
-+ int iface; /* hwdep interface */
-+ unsigned char reserved[64]; /* reserved for future */
-+};
-+
-+/* generic DSP loader */
-+struct snd_hwdep_dsp_status {
-+ unsigned int version; /* R: driver-specific version */
-+ unsigned char id[32]; /* R: driver-specific ID string */
-+ unsigned int num_dsps; /* R: number of DSP images to transfer */
-+ unsigned int dsp_loaded; /* R: bit flags indicating the loaded DSPs */
-+ unsigned int chip_ready; /* R: 1 = initialization finished */
-+ unsigned char reserved[16]; /* reserved for future use */
-+};
-+
-+struct snd_hwdep_dsp_image {
-+ unsigned int index; /* W: DSP index */
-+ unsigned char name[64]; /* W: ID (e.g. file name) */
-+ unsigned char __user *image; /* W: binary image */
-+ size_t length; /* W: size of image in bytes */
-+ unsigned long driver_data; /* W: driver-specific data */
-+};
-+
-+#define SNDRV_HWDEP_IOCTL_PVERSION _IOR ('H', 0x00, int)
-+#define SNDRV_HWDEP_IOCTL_INFO _IOR ('H', 0x01, struct snd_hwdep_info)
-+#define SNDRV_HWDEP_IOCTL_DSP_STATUS _IOR('H', 0x02, struct snd_hwdep_dsp_status)
-+#define SNDRV_HWDEP_IOCTL_DSP_LOAD _IOW('H', 0x03, struct snd_hwdep_dsp_image)
-+
-+/*****************************************************************************
-+ * *
-+ * Digital Audio (PCM) interface - /dev/snd/pcm?? *
-+ * *
-+ *****************************************************************************/
-+
-+#define SNDRV_PCM_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 14)
-+
-+typedef unsigned long snd_pcm_uframes_t;
-+typedef signed long snd_pcm_sframes_t;
-+
-+enum {
-+ SNDRV_PCM_CLASS_GENERIC = 0, /* standard mono or stereo device */
-+ SNDRV_PCM_CLASS_MULTI, /* multichannel device */
-+ SNDRV_PCM_CLASS_MODEM, /* software modem class */
-+ SNDRV_PCM_CLASS_DIGITIZER, /* digitizer class */
-+ /* Don't forget to change the following: */
-+ SNDRV_PCM_CLASS_LAST = SNDRV_PCM_CLASS_DIGITIZER,
-+};
-+
-+enum {
-+ SNDRV_PCM_SUBCLASS_GENERIC_MIX = 0, /* mono or stereo subdevices are mixed together */
-+ SNDRV_PCM_SUBCLASS_MULTI_MIX, /* multichannel subdevices are mixed together */
-+ /* Don't forget to change the following: */
-+ SNDRV_PCM_SUBCLASS_LAST = SNDRV_PCM_SUBCLASS_MULTI_MIX,
-+};
-+
-+enum {
-+ SNDRV_PCM_STREAM_PLAYBACK = 0,
-+ SNDRV_PCM_STREAM_CAPTURE,
-+ SNDRV_PCM_STREAM_LAST = SNDRV_PCM_STREAM_CAPTURE,
-+};
-+
-+typedef int __bitwise snd_pcm_access_t;
-+#define SNDRV_PCM_ACCESS_MMAP_INTERLEAVED ((__force snd_pcm_access_t) 0) /* interleaved mmap */
-+#define SNDRV_PCM_ACCESS_MMAP_NONINTERLEAVED ((__force snd_pcm_access_t) 1) /* noninterleaved mmap */
-+#define SNDRV_PCM_ACCESS_MMAP_COMPLEX ((__force snd_pcm_access_t) 2) /* complex mmap */
-+#define SNDRV_PCM_ACCESS_RW_INTERLEAVED ((__force snd_pcm_access_t) 3) /* readi/writei */
-+#define SNDRV_PCM_ACCESS_RW_NONINTERLEAVED ((__force snd_pcm_access_t) 4) /* readn/writen */
-+#define SNDRV_PCM_ACCESS_LAST SNDRV_PCM_ACCESS_RW_NONINTERLEAVED
-+
-+typedef int __bitwise snd_pcm_format_t;
-+#define SNDRV_PCM_FORMAT_S8 ((__force snd_pcm_format_t) 0)
-+#define SNDRV_PCM_FORMAT_U8 ((__force snd_pcm_format_t) 1)
-+#define SNDRV_PCM_FORMAT_S16_LE ((__force snd_pcm_format_t) 2)
-+#define SNDRV_PCM_FORMAT_S16_BE ((__force snd_pcm_format_t) 3)
-+#define SNDRV_PCM_FORMAT_U16_LE ((__force snd_pcm_format_t) 4)
-+#define SNDRV_PCM_FORMAT_U16_BE ((__force snd_pcm_format_t) 5)
-+#define SNDRV_PCM_FORMAT_S24_LE ((__force snd_pcm_format_t) 6) /* low three bytes */
-+#define SNDRV_PCM_FORMAT_S24_BE ((__force snd_pcm_format_t) 7) /* low three bytes */
-+#define SNDRV_PCM_FORMAT_U24_LE ((__force snd_pcm_format_t) 8) /* low three bytes */
-+#define SNDRV_PCM_FORMAT_U24_BE ((__force snd_pcm_format_t) 9) /* low three bytes */
-+#define SNDRV_PCM_FORMAT_S32_LE ((__force snd_pcm_format_t) 10)
-+#define SNDRV_PCM_FORMAT_S32_BE ((__force snd_pcm_format_t) 11)
-+#define SNDRV_PCM_FORMAT_U32_LE ((__force snd_pcm_format_t) 12)
-+#define SNDRV_PCM_FORMAT_U32_BE ((__force snd_pcm_format_t) 13)
-+#define SNDRV_PCM_FORMAT_FLOAT_LE ((__force snd_pcm_format_t) 14) /* 4-byte float, IEEE-754 32-bit, range -1.0 to 1.0 */
-+#define SNDRV_PCM_FORMAT_FLOAT_BE ((__force snd_pcm_format_t) 15) /* 4-byte float, IEEE-754 32-bit, range -1.0 to 1.0 */
-+#define SNDRV_PCM_FORMAT_FLOAT64_LE ((__force snd_pcm_format_t) 16) /* 8-byte float, IEEE-754 64-bit, range -1.0 to 1.0 */
-+#define SNDRV_PCM_FORMAT_FLOAT64_BE ((__force snd_pcm_format_t) 17) /* 8-byte float, IEEE-754 64-bit, range -1.0 to 1.0 */
-+#define SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE ((__force snd_pcm_format_t) 18) /* IEC-958 subframe, Little Endian */
-+#define SNDRV_PCM_FORMAT_IEC958_SUBFRAME_BE ((__force snd_pcm_format_t) 19) /* IEC-958 subframe, Big Endian */
-+#define SNDRV_PCM_FORMAT_MU_LAW ((__force snd_pcm_format_t) 20)
-+#define SNDRV_PCM_FORMAT_A_LAW ((__force snd_pcm_format_t) 21)
-+#define SNDRV_PCM_FORMAT_IMA_ADPCM ((__force snd_pcm_format_t) 22)
-+#define SNDRV_PCM_FORMAT_MPEG ((__force snd_pcm_format_t) 23)
-+#define SNDRV_PCM_FORMAT_GSM ((__force snd_pcm_format_t) 24)
-+#define SNDRV_PCM_FORMAT_S20_LE ((__force snd_pcm_format_t) 25) /* in four bytes, LSB justified */
-+#define SNDRV_PCM_FORMAT_S20_BE ((__force snd_pcm_format_t) 26) /* in four bytes, LSB justified */
-+#define SNDRV_PCM_FORMAT_U20_LE ((__force snd_pcm_format_t) 27) /* in four bytes, LSB justified */
-+#define SNDRV_PCM_FORMAT_U20_BE ((__force snd_pcm_format_t) 28) /* in four bytes, LSB justified */
-+/* gap in the numbering for a future standard linear format */
-+#define SNDRV_PCM_FORMAT_SPECIAL ((__force snd_pcm_format_t) 31)
-+#define SNDRV_PCM_FORMAT_S24_3LE ((__force snd_pcm_format_t) 32) /* in three bytes */
-+#define SNDRV_PCM_FORMAT_S24_3BE ((__force snd_pcm_format_t) 33) /* in three bytes */
-+#define SNDRV_PCM_FORMAT_U24_3LE ((__force snd_pcm_format_t) 34) /* in three bytes */
-+#define SNDRV_PCM_FORMAT_U24_3BE ((__force snd_pcm_format_t) 35) /* in three bytes */
-+#define SNDRV_PCM_FORMAT_S20_3LE ((__force snd_pcm_format_t) 36) /* in three bytes */
-+#define SNDRV_PCM_FORMAT_S20_3BE ((__force snd_pcm_format_t) 37) /* in three bytes */
-+#define SNDRV_PCM_FORMAT_U20_3LE ((__force snd_pcm_format_t) 38) /* in three bytes */
-+#define SNDRV_PCM_FORMAT_U20_3BE ((__force snd_pcm_format_t) 39) /* in three bytes */
-+#define SNDRV_PCM_FORMAT_S18_3LE ((__force snd_pcm_format_t) 40) /* in three bytes */
-+#define SNDRV_PCM_FORMAT_S18_3BE ((__force snd_pcm_format_t) 41) /* in three bytes */
-+#define SNDRV_PCM_FORMAT_U18_3LE ((__force snd_pcm_format_t) 42) /* in three bytes */
-+#define SNDRV_PCM_FORMAT_U18_3BE ((__force snd_pcm_format_t) 43) /* in three bytes */
-+#define SNDRV_PCM_FORMAT_G723_24 ((__force snd_pcm_format_t) 44) /* 8 samples in 3 bytes */
-+#define SNDRV_PCM_FORMAT_G723_24_1B ((__force snd_pcm_format_t) 45) /* 1 sample in 1 byte */
-+#define SNDRV_PCM_FORMAT_G723_40 ((__force snd_pcm_format_t) 46) /* 8 Samples in 5 bytes */
-+#define SNDRV_PCM_FORMAT_G723_40_1B ((__force snd_pcm_format_t) 47) /* 1 sample in 1 byte */
-+#define SNDRV_PCM_FORMAT_DSD_U8 ((__force snd_pcm_format_t) 48) /* DSD, 1-byte samples DSD (x8) */
-+#define SNDRV_PCM_FORMAT_DSD_U16_LE ((__force snd_pcm_format_t) 49) /* DSD, 2-byte samples DSD (x16), little endian */
-+#define SNDRV_PCM_FORMAT_DSD_U32_LE ((__force snd_pcm_format_t) 50) /* DSD, 4-byte samples DSD (x32), little endian */
-+#define SNDRV_PCM_FORMAT_DSD_U16_BE ((__force snd_pcm_format_t) 51) /* DSD, 2-byte samples DSD (x16), big endian */
-+#define SNDRV_PCM_FORMAT_DSD_U32_BE ((__force snd_pcm_format_t) 52) /* DSD, 4-byte samples DSD (x32), big endian */
-+#define SNDRV_PCM_FORMAT_LAST SNDRV_PCM_FORMAT_DSD_U32_BE
-+#define SNDRV_PCM_FORMAT_FIRST SNDRV_PCM_FORMAT_S8
-+
-+#ifdef SNDRV_LITTLE_ENDIAN
-+#define SNDRV_PCM_FORMAT_S16 SNDRV_PCM_FORMAT_S16_LE
-+#define SNDRV_PCM_FORMAT_U16 SNDRV_PCM_FORMAT_U16_LE
-+#define SNDRV_PCM_FORMAT_S24 SNDRV_PCM_FORMAT_S24_LE
-+#define SNDRV_PCM_FORMAT_U24 SNDRV_PCM_FORMAT_U24_LE
-+#define SNDRV_PCM_FORMAT_S32 SNDRV_PCM_FORMAT_S32_LE
-+#define SNDRV_PCM_FORMAT_U32 SNDRV_PCM_FORMAT_U32_LE
-+#define SNDRV_PCM_FORMAT_FLOAT SNDRV_PCM_FORMAT_FLOAT_LE
-+#define SNDRV_PCM_FORMAT_FLOAT64 SNDRV_PCM_FORMAT_FLOAT64_LE
-+#define SNDRV_PCM_FORMAT_IEC958_SUBFRAME SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE
-+#define SNDRV_PCM_FORMAT_S20 SNDRV_PCM_FORMAT_S20_LE
-+#define SNDRV_PCM_FORMAT_U20 SNDRV_PCM_FORMAT_U20_LE
-+#endif
-+#ifdef SNDRV_BIG_ENDIAN
-+#define SNDRV_PCM_FORMAT_S16 SNDRV_PCM_FORMAT_S16_BE
-+#define SNDRV_PCM_FORMAT_U16 SNDRV_PCM_FORMAT_U16_BE
-+#define SNDRV_PCM_FORMAT_S24 SNDRV_PCM_FORMAT_S24_BE
-+#define SNDRV_PCM_FORMAT_U24 SNDRV_PCM_FORMAT_U24_BE
-+#define SNDRV_PCM_FORMAT_S32 SNDRV_PCM_FORMAT_S32_BE
-+#define SNDRV_PCM_FORMAT_U32 SNDRV_PCM_FORMAT_U32_BE
-+#define SNDRV_PCM_FORMAT_FLOAT SNDRV_PCM_FORMAT_FLOAT_BE
-+#define SNDRV_PCM_FORMAT_FLOAT64 SNDRV_PCM_FORMAT_FLOAT64_BE
-+#define SNDRV_PCM_FORMAT_IEC958_SUBFRAME SNDRV_PCM_FORMAT_IEC958_SUBFRAME_BE
-+#define SNDRV_PCM_FORMAT_S20 SNDRV_PCM_FORMAT_S20_BE
-+#define SNDRV_PCM_FORMAT_U20 SNDRV_PCM_FORMAT_U20_BE
-+#endif
-+
-+typedef int __bitwise snd_pcm_subformat_t;
-+#define SNDRV_PCM_SUBFORMAT_STD ((__force snd_pcm_subformat_t) 0)
-+#define SNDRV_PCM_SUBFORMAT_LAST SNDRV_PCM_SUBFORMAT_STD
-+
-+#define SNDRV_PCM_INFO_MMAP 0x00000001 /* hardware supports mmap */
-+#define SNDRV_PCM_INFO_MMAP_VALID 0x00000002 /* period data are valid during transfer */
-+#define SNDRV_PCM_INFO_DOUBLE 0x00000004 /* Double buffering needed for PCM start/stop */
-+#define SNDRV_PCM_INFO_BATCH 0x00000010 /* double buffering */
-+#define SNDRV_PCM_INFO_SYNC_APPLPTR 0x00000020 /* need the explicit sync of appl_ptr update */
-+#define SNDRV_PCM_INFO_INTERLEAVED 0x00000100 /* channels are interleaved */
-+#define SNDRV_PCM_INFO_NONINTERLEAVED 0x00000200 /* channels are not interleaved */
-+#define SNDRV_PCM_INFO_COMPLEX 0x00000400 /* complex frame organization (mmap only) */
-+#define SNDRV_PCM_INFO_BLOCK_TRANSFER 0x00010000 /* hardware transfer block of samples */
-+#define SNDRV_PCM_INFO_OVERRANGE 0x00020000 /* hardware supports ADC (capture) overrange detection */
-+#define SNDRV_PCM_INFO_RESUME 0x00040000 /* hardware supports stream resume after suspend */
-+#define SNDRV_PCM_INFO_PAUSE 0x00080000 /* pause ioctl is supported */
-+#define SNDRV_PCM_INFO_HALF_DUPLEX 0x00100000 /* only half duplex */
-+#define SNDRV_PCM_INFO_JOINT_DUPLEX 0x00200000 /* playback and capture stream are somewhat correlated */
-+#define SNDRV_PCM_INFO_SYNC_START 0x00400000 /* pcm support some kind of sync go */
-+#define SNDRV_PCM_INFO_NO_PERIOD_WAKEUP 0x00800000 /* period wakeup can be disabled */
-+#define SNDRV_PCM_INFO_HAS_WALL_CLOCK 0x01000000 /* (Deprecated)has audio wall clock for audio/system time sync */
-+#define SNDRV_PCM_INFO_HAS_LINK_ATIME 0x01000000 /* report hardware link audio time, reset on startup */
-+#define SNDRV_PCM_INFO_HAS_LINK_ABSOLUTE_ATIME 0x02000000 /* report absolute hardware link audio time, not reset on startup */
-+#define SNDRV_PCM_INFO_HAS_LINK_ESTIMATED_ATIME 0x04000000 /* report estimated link audio time */
-+#define SNDRV_PCM_INFO_HAS_LINK_SYNCHRONIZED_ATIME 0x08000000 /* report synchronized audio/system time */
-+
-+#define SNDRV_PCM_INFO_DRAIN_TRIGGER 0x40000000 /* internal kernel flag - trigger in drain */
-+#define SNDRV_PCM_INFO_FIFO_IN_FRAMES 0x80000000 /* internal kernel flag - FIFO size is in frames */
-+
-+
-+
-+typedef int __bitwise snd_pcm_state_t;
-+#define SNDRV_PCM_STATE_OPEN ((__force snd_pcm_state_t) 0) /* stream is open */
-+#define SNDRV_PCM_STATE_SETUP ((__force snd_pcm_state_t) 1) /* stream has a setup */
-+#define SNDRV_PCM_STATE_PREPARED ((__force snd_pcm_state_t) 2) /* stream is ready to start */
-+#define SNDRV_PCM_STATE_RUNNING ((__force snd_pcm_state_t) 3) /* stream is running */
-+#define SNDRV_PCM_STATE_XRUN ((__force snd_pcm_state_t) 4) /* stream reached an xrun */
-+#define SNDRV_PCM_STATE_DRAINING ((__force snd_pcm_state_t) 5) /* stream is draining */
-+#define SNDRV_PCM_STATE_PAUSED ((__force snd_pcm_state_t) 6) /* stream is paused */
-+#define SNDRV_PCM_STATE_SUSPENDED ((__force snd_pcm_state_t) 7) /* hardware is suspended */
-+#define SNDRV_PCM_STATE_DISCONNECTED ((__force snd_pcm_state_t) 8) /* hardware is disconnected */
-+#define SNDRV_PCM_STATE_LAST SNDRV_PCM_STATE_DISCONNECTED
-+
-+enum {
-+ SNDRV_PCM_MMAP_OFFSET_DATA = 0x00000000,
-+ SNDRV_PCM_MMAP_OFFSET_STATUS = 0x80000000,
-+ SNDRV_PCM_MMAP_OFFSET_CONTROL = 0x81000000,
-+};
-+
-+union snd_pcm_sync_id {
-+ unsigned char id[16];
-+ unsigned short id16[8];
-+ unsigned int id32[4];
-+};
-+
-+struct snd_pcm_info {
-+ unsigned int device; /* RO/WR (control): device number */
-+ unsigned int subdevice; /* RO/WR (control): subdevice number */
-+ int stream; /* RO/WR (control): stream direction */
-+ int card; /* R: card number */
-+ unsigned char id[64]; /* ID (user selectable) */
-+ unsigned char name[80]; /* name of this device */
-+ unsigned char subname[32]; /* subdevice name */
-+ int dev_class; /* SNDRV_PCM_CLASS_* */
-+ int dev_subclass; /* SNDRV_PCM_SUBCLASS_* */
-+ unsigned int subdevices_count;
-+ unsigned int subdevices_avail;
-+ union snd_pcm_sync_id sync; /* hardware synchronization ID */
-+ unsigned char reserved[64]; /* reserved for future... */
-+};
-+
-+typedef int snd_pcm_hw_param_t;
-+#define SNDRV_PCM_HW_PARAM_ACCESS 0 /* Access type */
-+#define SNDRV_PCM_HW_PARAM_FORMAT 1 /* Format */
-+#define SNDRV_PCM_HW_PARAM_SUBFORMAT 2 /* Subformat */
-+#define SNDRV_PCM_HW_PARAM_FIRST_MASK SNDRV_PCM_HW_PARAM_ACCESS
-+#define SNDRV_PCM_HW_PARAM_LAST_MASK SNDRV_PCM_HW_PARAM_SUBFORMAT
-+
-+#define SNDRV_PCM_HW_PARAM_SAMPLE_BITS 8 /* Bits per sample */
-+#define SNDRV_PCM_HW_PARAM_FRAME_BITS 9 /* Bits per frame */
-+#define SNDRV_PCM_HW_PARAM_CHANNELS 10 /* Channels */
-+#define SNDRV_PCM_HW_PARAM_RATE 11 /* Approx rate */
-+#define SNDRV_PCM_HW_PARAM_PERIOD_TIME 12 /* Approx distance between
-+ * interrupts in us
-+ */
-+#define SNDRV_PCM_HW_PARAM_PERIOD_SIZE 13 /* Approx frames between
-+ * interrupts
-+ */
-+#define SNDRV_PCM_HW_PARAM_PERIOD_BYTES 14 /* Approx bytes between
-+ * interrupts
-+ */
-+#define SNDRV_PCM_HW_PARAM_PERIODS 15 /* Approx interrupts per
-+ * buffer
-+ */
-+#define SNDRV_PCM_HW_PARAM_BUFFER_TIME 16 /* Approx duration of buffer
-+ * in us
-+ */
-+#define SNDRV_PCM_HW_PARAM_BUFFER_SIZE 17 /* Size of buffer in frames */
-+#define SNDRV_PCM_HW_PARAM_BUFFER_BYTES 18 /* Size of buffer in bytes */
-+#define SNDRV_PCM_HW_PARAM_TICK_TIME 19 /* Approx tick duration in us */
-+#define SNDRV_PCM_HW_PARAM_FIRST_INTERVAL SNDRV_PCM_HW_PARAM_SAMPLE_BITS
-+#define SNDRV_PCM_HW_PARAM_LAST_INTERVAL SNDRV_PCM_HW_PARAM_TICK_TIME
-+
-+#define SNDRV_PCM_HW_PARAMS_NORESAMPLE (1<<0) /* avoid rate resampling */
-+#define SNDRV_PCM_HW_PARAMS_EXPORT_BUFFER (1<<1) /* export buffer */
-+#define SNDRV_PCM_HW_PARAMS_NO_PERIOD_WAKEUP (1<<2) /* disable period wakeups */
-+
-+struct snd_interval {
-+ unsigned int min, max;
-+ unsigned int openmin:1,
-+ openmax:1,
-+ integer:1,
-+ empty:1;
-+};
-+
-+#define SNDRV_MASK_MAX 256
-+
-+struct snd_mask {
-+ __u32 bits[(SNDRV_MASK_MAX+31)/32];
-+};
-+
-+struct snd_pcm_hw_params {
-+ unsigned int flags;
-+ struct snd_mask masks[SNDRV_PCM_HW_PARAM_LAST_MASK -
-+ SNDRV_PCM_HW_PARAM_FIRST_MASK + 1];
-+ struct snd_mask mres[5]; /* reserved masks */
-+ struct snd_interval intervals[SNDRV_PCM_HW_PARAM_LAST_INTERVAL -
-+ SNDRV_PCM_HW_PARAM_FIRST_INTERVAL + 1];
-+ struct snd_interval ires[9]; /* reserved intervals */
-+ unsigned int rmask; /* W: requested masks */
-+ unsigned int cmask; /* R: changed masks */
-+ unsigned int info; /* R: Info flags for returned setup */
-+ unsigned int msbits; /* R: used most significant bits */
-+ unsigned int rate_num; /* R: rate numerator */
-+ unsigned int rate_den; /* R: rate denominator */
-+ snd_pcm_uframes_t fifo_size; /* R: chip FIFO size in frames */
-+ unsigned char reserved[64]; /* reserved for future */
-+};
-+
-+enum {
-+ SNDRV_PCM_TSTAMP_NONE = 0,
-+ SNDRV_PCM_TSTAMP_ENABLE,
-+ SNDRV_PCM_TSTAMP_LAST = SNDRV_PCM_TSTAMP_ENABLE,
-+};
-+
-+struct snd_pcm_sw_params {
-+ int tstamp_mode; /* timestamp mode */
-+ unsigned int period_step;
-+ unsigned int sleep_min; /* min ticks to sleep */
-+ snd_pcm_uframes_t avail_min; /* min avail frames for wakeup */
-+ snd_pcm_uframes_t xfer_align; /* obsolete: xfer size need to be a multiple */
-+ snd_pcm_uframes_t start_threshold; /* min hw_avail frames for automatic start */
-+ snd_pcm_uframes_t stop_threshold; /* min avail frames for automatic stop */
-+ snd_pcm_uframes_t silence_threshold; /* min distance from noise for silence filling */
-+ snd_pcm_uframes_t silence_size; /* silence block size */
-+ snd_pcm_uframes_t boundary; /* pointers wrap point */
-+ unsigned int proto; /* protocol version */
-+ unsigned int tstamp_type; /* timestamp type (req. proto >= 2.0.12) */
-+ unsigned char reserved[56]; /* reserved for future */
-+};
-+
-+struct snd_pcm_channel_info {
-+ unsigned int channel;
-+ __kernel_off_t offset; /* mmap offset */
-+ unsigned int first; /* offset to first sample in bits */
-+ unsigned int step; /* samples distance in bits */
-+};
-+
-+enum {
-+ /*
-+ * first definition for backwards compatibility only,
-+ * maps to wallclock/link time for HDAudio playback and DEFAULT/DMA time for everything else
-+ */
-+ SNDRV_PCM_AUDIO_TSTAMP_TYPE_COMPAT = 0,
-+
-+ /* timestamp definitions */
-+ SNDRV_PCM_AUDIO_TSTAMP_TYPE_DEFAULT = 1, /* DMA time, reported as per hw_ptr */
-+ SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK = 2, /* link time reported by sample or wallclock counter, reset on startup */
-+ SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_ABSOLUTE = 3, /* link time reported by sample or wallclock counter, not reset on startup */
-+ SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_ESTIMATED = 4, /* link time estimated indirectly */
-+ SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_SYNCHRONIZED = 5, /* link time synchronized with system time */
-+ SNDRV_PCM_AUDIO_TSTAMP_TYPE_LAST = SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_SYNCHRONIZED
-+};
-+
-+struct snd_pcm_status {
-+ snd_pcm_state_t state; /* stream state */
-+ struct timespec trigger_tstamp; /* time when stream was started/stopped/paused */
-+ struct timespec tstamp; /* reference timestamp */
-+ snd_pcm_uframes_t appl_ptr; /* appl ptr */
-+ snd_pcm_uframes_t hw_ptr; /* hw ptr */
-+ snd_pcm_sframes_t delay; /* current delay in frames */
-+ snd_pcm_uframes_t avail; /* number of frames available */
-+ snd_pcm_uframes_t avail_max; /* max frames available on hw since last status */
-+ snd_pcm_uframes_t overrange; /* count of ADC (capture) overrange detections from last status */
-+ snd_pcm_state_t suspended_state; /* suspended stream state */
-+ __u32 audio_tstamp_data; /* needed for 64-bit alignment, used for configs/report to/from userspace */
-+ struct timespec audio_tstamp; /* sample counter, wall clock, PHC or on-demand sync'ed */
-+ struct timespec driver_tstamp; /* useful in case reference system tstamp is reported with delay */
-+ __u32 audio_tstamp_accuracy; /* in ns units, only valid if indicated in audio_tstamp_data */
-+ unsigned char reserved[52-2*sizeof(struct timespec)]; /* must be filled with zero */
-+};
-+
-+struct snd_pcm_mmap_status {
-+ snd_pcm_state_t state; /* RO: state - SNDRV_PCM_STATE_XXXX */
-+ int pad1; /* Needed for 64 bit alignment */
-+ snd_pcm_uframes_t hw_ptr; /* RO: hw ptr (0...boundary-1) */
-+ struct timespec tstamp; /* Timestamp */
-+ snd_pcm_state_t suspended_state; /* RO: suspended stream state */
-+ struct timespec audio_tstamp; /* from sample counter or wall clock */
-+};
-+
-+struct snd_pcm_mmap_control {
-+ snd_pcm_uframes_t appl_ptr; /* RW: appl ptr (0...boundary-1) */
-+ snd_pcm_uframes_t avail_min; /* RW: min available frames for wakeup */
-+};
-+
-+#define SNDRV_PCM_SYNC_PTR_HWSYNC (1<<0) /* execute hwsync */
-+#define SNDRV_PCM_SYNC_PTR_APPL (1<<1) /* get appl_ptr from driver (r/w op) */
-+#define SNDRV_PCM_SYNC_PTR_AVAIL_MIN (1<<2) /* get avail_min from driver */
-+
-+struct snd_pcm_sync_ptr {
-+ unsigned int flags;
-+ union {
-+ struct snd_pcm_mmap_status status;
-+ unsigned char reserved[64];
-+ } s;
-+ union {
-+ struct snd_pcm_mmap_control control;
-+ unsigned char reserved[64];
-+ } c;
-+};
-+
-+struct snd_xferi {
-+ snd_pcm_sframes_t result;
-+ void __user *buf;
-+ snd_pcm_uframes_t frames;
-+};
-+
-+struct snd_xfern {
-+ snd_pcm_sframes_t result;
-+ void __user * __user *bufs;
-+ snd_pcm_uframes_t frames;
-+};
-+
-+enum {
-+ SNDRV_PCM_TSTAMP_TYPE_GETTIMEOFDAY = 0, /* gettimeofday equivalent */
-+ SNDRV_PCM_TSTAMP_TYPE_MONOTONIC, /* posix_clock_monotonic equivalent */
-+ SNDRV_PCM_TSTAMP_TYPE_MONOTONIC_RAW, /* monotonic_raw (no NTP) */
-+ SNDRV_PCM_TSTAMP_TYPE_LAST = SNDRV_PCM_TSTAMP_TYPE_MONOTONIC_RAW,
-+};
-+
-+/* channel positions */
-+enum {
-+ SNDRV_CHMAP_UNKNOWN = 0,
-+ SNDRV_CHMAP_NA, /* N/A, silent */
-+ SNDRV_CHMAP_MONO, /* mono stream */
-+ /* this follows the alsa-lib mixer channel value + 3 */
-+ SNDRV_CHMAP_FL, /* front left */
-+ SNDRV_CHMAP_FR, /* front right */
-+ SNDRV_CHMAP_RL, /* rear left */
-+ SNDRV_CHMAP_RR, /* rear right */
-+ SNDRV_CHMAP_FC, /* front center */
-+ SNDRV_CHMAP_LFE, /* LFE */
-+ SNDRV_CHMAP_SL, /* side left */
-+ SNDRV_CHMAP_SR, /* side right */
-+ SNDRV_CHMAP_RC, /* rear center */
-+ /* new definitions */
-+ SNDRV_CHMAP_FLC, /* front left center */
-+ SNDRV_CHMAP_FRC, /* front right center */
-+ SNDRV_CHMAP_RLC, /* rear left center */
-+ SNDRV_CHMAP_RRC, /* rear right center */
-+ SNDRV_CHMAP_FLW, /* front left wide */
-+ SNDRV_CHMAP_FRW, /* front right wide */
-+ SNDRV_CHMAP_FLH, /* front left high */
-+ SNDRV_CHMAP_FCH, /* front center high */
-+ SNDRV_CHMAP_FRH, /* front right high */
-+ SNDRV_CHMAP_TC, /* top center */
-+ SNDRV_CHMAP_TFL, /* top front left */
-+ SNDRV_CHMAP_TFR, /* top front right */
-+ SNDRV_CHMAP_TFC, /* top front center */
-+ SNDRV_CHMAP_TRL, /* top rear left */
-+ SNDRV_CHMAP_TRR, /* top rear right */
-+ SNDRV_CHMAP_TRC, /* top rear center */
-+ /* new definitions for UAC2 */
-+ SNDRV_CHMAP_TFLC, /* top front left center */
-+ SNDRV_CHMAP_TFRC, /* top front right center */
-+ SNDRV_CHMAP_TSL, /* top side left */
-+ SNDRV_CHMAP_TSR, /* top side right */
-+ SNDRV_CHMAP_LLFE, /* left LFE */
-+ SNDRV_CHMAP_RLFE, /* right LFE */
-+ SNDRV_CHMAP_BC, /* bottom center */
-+ SNDRV_CHMAP_BLC, /* bottom left center */
-+ SNDRV_CHMAP_BRC, /* bottom right center */
-+ SNDRV_CHMAP_LAST = SNDRV_CHMAP_BRC,
-+};
-+
-+#define SNDRV_CHMAP_POSITION_MASK 0xffff
-+#define SNDRV_CHMAP_PHASE_INVERSE (0x01 << 16)
-+#define SNDRV_CHMAP_DRIVER_SPEC (0x02 << 16)
-+
-+#define SNDRV_PCM_IOCTL_PVERSION _IOR('A', 0x00, int)
-+#define SNDRV_PCM_IOCTL_INFO _IOR('A', 0x01, struct snd_pcm_info)
-+#define SNDRV_PCM_IOCTL_TSTAMP _IOW('A', 0x02, int)
-+#define SNDRV_PCM_IOCTL_TTSTAMP _IOW('A', 0x03, int)
-+#define SNDRV_PCM_IOCTL_USER_PVERSION _IOW('A', 0x04, int)
-+#define SNDRV_PCM_IOCTL_HW_REFINE _IOWR('A', 0x10, struct snd_pcm_hw_params)
-+#define SNDRV_PCM_IOCTL_HW_PARAMS _IOWR('A', 0x11, struct snd_pcm_hw_params)
-+#define SNDRV_PCM_IOCTL_HW_FREE _IO('A', 0x12)
-+#define SNDRV_PCM_IOCTL_SW_PARAMS _IOWR('A', 0x13, struct snd_pcm_sw_params)
-+#define SNDRV_PCM_IOCTL_STATUS _IOR('A', 0x20, struct snd_pcm_status)
-+#define SNDRV_PCM_IOCTL_DELAY _IOR('A', 0x21, snd_pcm_sframes_t)
-+#define SNDRV_PCM_IOCTL_HWSYNC _IO('A', 0x22)
-+#define SNDRV_PCM_IOCTL_SYNC_PTR _IOWR('A', 0x23, struct snd_pcm_sync_ptr)
-+#define SNDRV_PCM_IOCTL_STATUS_EXT _IOWR('A', 0x24, struct snd_pcm_status)
-+#define SNDRV_PCM_IOCTL_CHANNEL_INFO _IOR('A', 0x32, struct snd_pcm_channel_info)
-+#define SNDRV_PCM_IOCTL_PREPARE _IO('A', 0x40)
-+#define SNDRV_PCM_IOCTL_RESET _IO('A', 0x41)
-+#define SNDRV_PCM_IOCTL_START _IO('A', 0x42)
-+#define SNDRV_PCM_IOCTL_DROP _IO('A', 0x43)
-+#define SNDRV_PCM_IOCTL_DRAIN _IO('A', 0x44)
-+#define SNDRV_PCM_IOCTL_PAUSE _IOW('A', 0x45, int)
-+#define SNDRV_PCM_IOCTL_REWIND _IOW('A', 0x46, snd_pcm_uframes_t)
-+#define SNDRV_PCM_IOCTL_RESUME _IO('A', 0x47)
-+#define SNDRV_PCM_IOCTL_XRUN _IO('A', 0x48)
-+#define SNDRV_PCM_IOCTL_FORWARD _IOW('A', 0x49, snd_pcm_uframes_t)
-+#define SNDRV_PCM_IOCTL_WRITEI_FRAMES _IOW('A', 0x50, struct snd_xferi)
-+#define SNDRV_PCM_IOCTL_READI_FRAMES _IOR('A', 0x51, struct snd_xferi)
-+#define SNDRV_PCM_IOCTL_WRITEN_FRAMES _IOW('A', 0x52, struct snd_xfern)
-+#define SNDRV_PCM_IOCTL_READN_FRAMES _IOR('A', 0x53, struct snd_xfern)
-+#define SNDRV_PCM_IOCTL_LINK _IOW('A', 0x60, int)
-+#define SNDRV_PCM_IOCTL_UNLINK _IO('A', 0x61)
-+
-+/*****************************************************************************
-+ * *
-+ * MIDI v1.0 interface *
-+ * *
-+ *****************************************************************************/
-+
-+/*
-+ * Raw MIDI section - /dev/snd/midi??
-+ */
-+
-+#define SNDRV_RAWMIDI_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 0)
-+
-+enum {
-+ SNDRV_RAWMIDI_STREAM_OUTPUT = 0,
-+ SNDRV_RAWMIDI_STREAM_INPUT,
-+ SNDRV_RAWMIDI_STREAM_LAST = SNDRV_RAWMIDI_STREAM_INPUT,
-+};
-+
-+#define SNDRV_RAWMIDI_INFO_OUTPUT 0x00000001
-+#define SNDRV_RAWMIDI_INFO_INPUT 0x00000002
-+#define SNDRV_RAWMIDI_INFO_DUPLEX 0x00000004
-+
-+struct snd_rawmidi_info {
-+ unsigned int device; /* RO/WR (control): device number */
-+ unsigned int subdevice; /* RO/WR (control): subdevice number */
-+ int stream; /* WR: stream */
-+ int card; /* R: card number */
-+ unsigned int flags; /* SNDRV_RAWMIDI_INFO_XXXX */
-+ unsigned char id[64]; /* ID (user selectable) */
-+ unsigned char name[80]; /* name of device */
-+ unsigned char subname[32]; /* name of active or selected subdevice */
-+ unsigned int subdevices_count;
-+ unsigned int subdevices_avail;
-+ unsigned char reserved[64]; /* reserved for future use */
-+};
-+
-+struct snd_rawmidi_params {
-+ int stream;
-+ size_t buffer_size; /* queue size in bytes */
-+ size_t avail_min; /* minimum avail bytes for wakeup */
-+ unsigned int no_active_sensing: 1; /* do not send active sensing byte in close() */
-+ unsigned char reserved[16]; /* reserved for future use */
-+};
-+
-+struct snd_rawmidi_status {
-+ int stream;
-+ struct timespec tstamp; /* Timestamp */
-+ size_t avail; /* available bytes */
-+ size_t xruns; /* count of overruns since last status (in bytes) */
-+ unsigned char reserved[16]; /* reserved for future use */
-+};
-+
-+#define SNDRV_RAWMIDI_IOCTL_PVERSION _IOR('W', 0x00, int)
-+#define SNDRV_RAWMIDI_IOCTL_INFO _IOR('W', 0x01, struct snd_rawmidi_info)
-+#define SNDRV_RAWMIDI_IOCTL_PARAMS _IOWR('W', 0x10, struct snd_rawmidi_params)
-+#define SNDRV_RAWMIDI_IOCTL_STATUS _IOWR('W', 0x20, struct snd_rawmidi_status)
-+#define SNDRV_RAWMIDI_IOCTL_DROP _IOW('W', 0x30, int)
-+#define SNDRV_RAWMIDI_IOCTL_DRAIN _IOW('W', 0x31, int)
-+
-+/*
-+ * Timer section - /dev/snd/timer
-+ */
-+
-+#define SNDRV_TIMER_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 6)
-+
-+enum {
-+ SNDRV_TIMER_CLASS_NONE = -1,
-+ SNDRV_TIMER_CLASS_SLAVE = 0,
-+ SNDRV_TIMER_CLASS_GLOBAL,
-+ SNDRV_TIMER_CLASS_CARD,
-+ SNDRV_TIMER_CLASS_PCM,
-+ SNDRV_TIMER_CLASS_LAST = SNDRV_TIMER_CLASS_PCM,
-+};
-+
-+/* slave timer classes */
-+enum {
-+ SNDRV_TIMER_SCLASS_NONE = 0,
-+ SNDRV_TIMER_SCLASS_APPLICATION,
-+ SNDRV_TIMER_SCLASS_SEQUENCER, /* alias */
-+ SNDRV_TIMER_SCLASS_OSS_SEQUENCER, /* alias */
-+ SNDRV_TIMER_SCLASS_LAST = SNDRV_TIMER_SCLASS_OSS_SEQUENCER,
-+};
-+
-+/* global timers (device member) */
-+#define SNDRV_TIMER_GLOBAL_SYSTEM 0
-+#define SNDRV_TIMER_GLOBAL_RTC 1 /* unused */
-+#define SNDRV_TIMER_GLOBAL_HPET 2
-+#define SNDRV_TIMER_GLOBAL_HRTIMER 3
-+
-+/* info flags */
-+#define SNDRV_TIMER_FLG_SLAVE (1<<0) /* cannot be controlled */
-+
-+struct snd_timer_id {
-+ int dev_class;
-+ int dev_sclass;
-+ int card;
-+ int device;
-+ int subdevice;
-+};
-+
-+struct snd_timer_ginfo {
-+ struct snd_timer_id tid; /* requested timer ID */
-+ unsigned int flags; /* timer flags - SNDRV_TIMER_FLG_* */
-+ int card; /* card number */
-+ unsigned char id[64]; /* timer identification */
-+ unsigned char name[80]; /* timer name */
-+ unsigned long reserved0; /* reserved for future use */
-+ unsigned long resolution; /* average period resolution in ns */
-+ unsigned long resolution_min; /* minimal period resolution in ns */
-+ unsigned long resolution_max; /* maximal period resolution in ns */
-+ unsigned int clients; /* active timer clients */
-+ unsigned char reserved[32];
-+};
-+
-+struct snd_timer_gparams {
-+ struct snd_timer_id tid; /* requested timer ID */
-+ unsigned long period_num; /* requested precise period duration (in seconds) - numerator */
-+ unsigned long period_den; /* requested precise period duration (in seconds) - denominator */
-+ unsigned char reserved[32];
-+};
-+
-+struct snd_timer_gstatus {
-+ struct snd_timer_id tid; /* requested timer ID */
-+ unsigned long resolution; /* current period resolution in ns */
-+ unsigned long resolution_num; /* precise current period resolution (in seconds) - numerator */
-+ unsigned long resolution_den; /* precise current period resolution (in seconds) - denominator */
-+ unsigned char reserved[32];
-+};
-+
-+struct snd_timer_select {
-+ struct snd_timer_id id; /* bind to timer ID */
-+ unsigned char reserved[32]; /* reserved */
-+};
-+
-+struct snd_timer_info {
-+ unsigned int flags; /* timer flags - SNDRV_TIMER_FLG_* */
-+ int card; /* card number */
-+ unsigned char id[64]; /* timer identificator */
-+ unsigned char name[80]; /* timer name */
-+ unsigned long reserved0; /* reserved for future use */
-+ unsigned long resolution; /* average period resolution in ns */
-+ unsigned char reserved[64]; /* reserved */
-+};
-+
-+#define SNDRV_TIMER_PSFLG_AUTO (1<<0) /* auto start, otherwise one-shot */
-+#define SNDRV_TIMER_PSFLG_EXCLUSIVE (1<<1) /* exclusive use, precise start/stop/pause/continue */
-+#define SNDRV_TIMER_PSFLG_EARLY_EVENT (1<<2) /* write early event to the poll queue */
-+
-+struct snd_timer_params {
-+ unsigned int flags; /* flags - SNDRV_TIMER_PSFLG_* */
-+ unsigned int ticks; /* requested resolution in ticks */
-+ unsigned int queue_size; /* total size of queue (32-1024) */
-+ unsigned int reserved0; /* reserved, was: failure locations */
-+ unsigned int filter; /* event filter (bitmask of SNDRV_TIMER_EVENT_*) */
-+ unsigned char reserved[60]; /* reserved */
-+};
-+
-+struct snd_timer_status {
-+ struct timespec tstamp; /* Timestamp - last update */
-+ unsigned int resolution; /* current period resolution in ns */
-+ unsigned int lost; /* counter of master tick lost */
-+ unsigned int overrun; /* count of read queue overruns */
-+ unsigned int queue; /* used queue size */
-+ unsigned char reserved[64]; /* reserved */
-+};
-+
-+#define SNDRV_TIMER_IOCTL_PVERSION _IOR('T', 0x00, int)
-+#define SNDRV_TIMER_IOCTL_NEXT_DEVICE _IOWR('T', 0x01, struct snd_timer_id)
-+#define SNDRV_TIMER_IOCTL_TREAD _IOW('T', 0x02, int)
-+#define SNDRV_TIMER_IOCTL_GINFO _IOWR('T', 0x03, struct snd_timer_ginfo)
-+#define SNDRV_TIMER_IOCTL_GPARAMS _IOW('T', 0x04, struct snd_timer_gparams)
-+#define SNDRV_TIMER_IOCTL_GSTATUS _IOWR('T', 0x05, struct snd_timer_gstatus)
-+#define SNDRV_TIMER_IOCTL_SELECT _IOW('T', 0x10, struct snd_timer_select)
-+#define SNDRV_TIMER_IOCTL_INFO _IOR('T', 0x11, struct snd_timer_info)
-+#define SNDRV_TIMER_IOCTL_PARAMS _IOW('T', 0x12, struct snd_timer_params)
-+#define SNDRV_TIMER_IOCTL_STATUS _IOR('T', 0x14, struct snd_timer_status)
-+/* The following four ioctls are changed since 1.0.9 due to confliction */
-+#define SNDRV_TIMER_IOCTL_START _IO('T', 0xa0)
-+#define SNDRV_TIMER_IOCTL_STOP _IO('T', 0xa1)
-+#define SNDRV_TIMER_IOCTL_CONTINUE _IO('T', 0xa2)
-+#define SNDRV_TIMER_IOCTL_PAUSE _IO('T', 0xa3)
-+
-+struct snd_timer_read {
-+ unsigned int resolution;
-+ unsigned int ticks;
-+};
-+
-+enum {
-+ SNDRV_TIMER_EVENT_RESOLUTION = 0, /* val = resolution in ns */
-+ SNDRV_TIMER_EVENT_TICK, /* val = ticks */
-+ SNDRV_TIMER_EVENT_START, /* val = resolution in ns */
-+ SNDRV_TIMER_EVENT_STOP, /* val = 0 */
-+ SNDRV_TIMER_EVENT_CONTINUE, /* val = resolution in ns */
-+ SNDRV_TIMER_EVENT_PAUSE, /* val = 0 */
-+ SNDRV_TIMER_EVENT_EARLY, /* val = 0, early event */
-+ SNDRV_TIMER_EVENT_SUSPEND, /* val = 0 */
-+ SNDRV_TIMER_EVENT_RESUME, /* val = resolution in ns */
-+ /* master timer events for slave timer instances */
-+ SNDRV_TIMER_EVENT_MSTART = SNDRV_TIMER_EVENT_START + 10,
-+ SNDRV_TIMER_EVENT_MSTOP = SNDRV_TIMER_EVENT_STOP + 10,
-+ SNDRV_TIMER_EVENT_MCONTINUE = SNDRV_TIMER_EVENT_CONTINUE + 10,
-+ SNDRV_TIMER_EVENT_MPAUSE = SNDRV_TIMER_EVENT_PAUSE + 10,
-+ SNDRV_TIMER_EVENT_MSUSPEND = SNDRV_TIMER_EVENT_SUSPEND + 10,
-+ SNDRV_TIMER_EVENT_MRESUME = SNDRV_TIMER_EVENT_RESUME + 10,
-+};
-+
-+struct snd_timer_tread {
-+ int event;
-+ struct timespec tstamp;
-+ unsigned int val;
-+};
-+
-+/****************************************************************************
-+ * *
-+ * Section for driver control interface - /dev/snd/control? *
-+ * *
-+ ****************************************************************************/
-+
-+#define SNDRV_CTL_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 7)
-+
-+struct snd_ctl_card_info {
-+ int card; /* card number */
-+ int pad; /* reserved for future (was type) */
-+ unsigned char id[16]; /* ID of card (user selectable) */
-+ unsigned char driver[16]; /* Driver name */
-+ unsigned char name[32]; /* Short name of soundcard */
-+ unsigned char longname[80]; /* name + info text about soundcard */
-+ unsigned char reserved_[16]; /* reserved for future (was ID of mixer) */
-+ unsigned char mixername[80]; /* visual mixer identification */
-+ unsigned char components[128]; /* card components / fine identification, delimited with one space (AC97 etc..) */
-+};
-+
-+typedef int __bitwise snd_ctl_elem_type_t;
-+#define SNDRV_CTL_ELEM_TYPE_NONE ((__force snd_ctl_elem_type_t) 0) /* invalid */
-+#define SNDRV_CTL_ELEM_TYPE_BOOLEAN ((__force snd_ctl_elem_type_t) 1) /* boolean type */
-+#define SNDRV_CTL_ELEM_TYPE_INTEGER ((__force snd_ctl_elem_type_t) 2) /* integer type */
-+#define SNDRV_CTL_ELEM_TYPE_ENUMERATED ((__force snd_ctl_elem_type_t) 3) /* enumerated type */
-+#define SNDRV_CTL_ELEM_TYPE_BYTES ((__force snd_ctl_elem_type_t) 4) /* byte array */
-+#define SNDRV_CTL_ELEM_TYPE_IEC958 ((__force snd_ctl_elem_type_t) 5) /* IEC958 (S/PDIF) setup */
-+#define SNDRV_CTL_ELEM_TYPE_INTEGER64 ((__force snd_ctl_elem_type_t) 6) /* 64-bit integer type */
-+#define SNDRV_CTL_ELEM_TYPE_LAST SNDRV_CTL_ELEM_TYPE_INTEGER64
-+
-+typedef int __bitwise snd_ctl_elem_iface_t;
-+#define SNDRV_CTL_ELEM_IFACE_CARD ((__force snd_ctl_elem_iface_t) 0) /* global control */
-+#define SNDRV_CTL_ELEM_IFACE_HWDEP ((__force snd_ctl_elem_iface_t) 1) /* hardware dependent device */
-+#define SNDRV_CTL_ELEM_IFACE_MIXER ((__force snd_ctl_elem_iface_t) 2) /* virtual mixer device */
-+#define SNDRV_CTL_ELEM_IFACE_PCM ((__force snd_ctl_elem_iface_t) 3) /* PCM device */
-+#define SNDRV_CTL_ELEM_IFACE_RAWMIDI ((__force snd_ctl_elem_iface_t) 4) /* RawMidi device */
-+#define SNDRV_CTL_ELEM_IFACE_TIMER ((__force snd_ctl_elem_iface_t) 5) /* timer device */
-+#define SNDRV_CTL_ELEM_IFACE_SEQUENCER ((__force snd_ctl_elem_iface_t) 6) /* sequencer client */
-+#define SNDRV_CTL_ELEM_IFACE_LAST SNDRV_CTL_ELEM_IFACE_SEQUENCER
-+
-+#define SNDRV_CTL_ELEM_ACCESS_READ (1<<0)
-+#define SNDRV_CTL_ELEM_ACCESS_WRITE (1<<1)
-+#define SNDRV_CTL_ELEM_ACCESS_READWRITE (SNDRV_CTL_ELEM_ACCESS_READ|SNDRV_CTL_ELEM_ACCESS_WRITE)
-+#define SNDRV_CTL_ELEM_ACCESS_VOLATILE (1<<2) /* control value may be changed without a notification */
-+#define SNDRV_CTL_ELEM_ACCESS_TIMESTAMP (1<<3) /* when was control changed */
-+#define SNDRV_CTL_ELEM_ACCESS_TLV_READ (1<<4) /* TLV read is possible */
-+#define SNDRV_CTL_ELEM_ACCESS_TLV_WRITE (1<<5) /* TLV write is possible */
-+#define SNDRV_CTL_ELEM_ACCESS_TLV_READWRITE (SNDRV_CTL_ELEM_ACCESS_TLV_READ|SNDRV_CTL_ELEM_ACCESS_TLV_WRITE)
-+#define SNDRV_CTL_ELEM_ACCESS_TLV_COMMAND (1<<6) /* TLV command is possible */
-+#define SNDRV_CTL_ELEM_ACCESS_INACTIVE (1<<8) /* control does actually nothing, but may be updated */
-+#define SNDRV_CTL_ELEM_ACCESS_LOCK (1<<9) /* write lock */
-+#define SNDRV_CTL_ELEM_ACCESS_OWNER (1<<10) /* write lock owner */
-+#define SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK (1<<28) /* kernel use a TLV callback */
-+#define SNDRV_CTL_ELEM_ACCESS_USER (1<<29) /* user space element */
-+/* bits 30 and 31 are obsoleted (for indirect access) */
-+
-+/* for further details see the ACPI and PCI power management specification */
-+#define SNDRV_CTL_POWER_D0 0x0000 /* full On */
-+#define SNDRV_CTL_POWER_D1 0x0100 /* partial On */
-+#define SNDRV_CTL_POWER_D2 0x0200 /* partial On */
-+#define SNDRV_CTL_POWER_D3 0x0300 /* Off */
-+#define SNDRV_CTL_POWER_D3hot (SNDRV_CTL_POWER_D3|0x0000) /* Off, with power */
-+#define SNDRV_CTL_POWER_D3cold (SNDRV_CTL_POWER_D3|0x0001) /* Off, without power */
-+
-+#define SNDRV_CTL_ELEM_ID_NAME_MAXLEN 44
-+
-+struct snd_ctl_elem_id {
-+ unsigned int numid; /* numeric identifier, zero = invalid */
-+ snd_ctl_elem_iface_t iface; /* interface identifier */
-+ unsigned int device; /* device/client number */
-+ unsigned int subdevice; /* subdevice (substream) number */
-+ unsigned char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; /* ASCII name of item */
-+ unsigned int index; /* index of item */
-+};
-+
-+struct snd_ctl_elem_list {
-+ unsigned int offset; /* W: first element ID to get */
-+ unsigned int space; /* W: count of element IDs to get */
-+ unsigned int used; /* R: count of element IDs set */
-+ unsigned int count; /* R: count of all elements */
-+ struct snd_ctl_elem_id __user *pids; /* R: IDs */
-+ unsigned char reserved[50];
-+};
-+
-+struct snd_ctl_elem_info {
-+ struct snd_ctl_elem_id id; /* W: element ID */
-+ snd_ctl_elem_type_t type; /* R: value type - SNDRV_CTL_ELEM_TYPE_* */
-+ unsigned int access; /* R: value access (bitmask) - SNDRV_CTL_ELEM_ACCESS_* */
-+ unsigned int count; /* count of values */
-+ __kernel_pid_t owner; /* owner's PID of this control */
-+ union {
-+ struct {
-+ long min; /* R: minimum value */
-+ long max; /* R: maximum value */
-+ long step; /* R: step (0 variable) */
-+ } integer;
-+ struct {
-+ long long min; /* R: minimum value */
-+ long long max; /* R: maximum value */
-+ long long step; /* R: step (0 variable) */
-+ } integer64;
-+ struct {
-+ unsigned int items; /* R: number of items */
-+ unsigned int item; /* W: item number */
-+ char name[64]; /* R: value name */
-+ __u64 names_ptr; /* W: names list (ELEM_ADD only) */
-+ unsigned int names_length;
-+ } enumerated;
-+ unsigned char reserved[128];
-+ } value;
-+ union {
-+ unsigned short d[4]; /* dimensions */
-+ unsigned short *d_ptr; /* indirect - obsoleted */
-+ } dimen;
-+ unsigned char reserved[64-4*sizeof(unsigned short)];
-+};
-+
-+struct snd_ctl_elem_value {
-+ struct snd_ctl_elem_id id; /* W: element ID */
-+ unsigned int indirect: 1; /* W: indirect access - obsoleted */
-+ union {
-+ union {
-+ long value[128];
-+ long *value_ptr; /* obsoleted */
-+ } integer;
-+ union {
-+ long long value[64];
-+ long long *value_ptr; /* obsoleted */
-+ } integer64;
-+ union {
-+ unsigned int item[128];
-+ unsigned int *item_ptr; /* obsoleted */
-+ } enumerated;
-+ union {
-+ unsigned char data[512];
-+ unsigned char *data_ptr; /* obsoleted */
-+ } bytes;
-+ struct snd_aes_iec958 iec958;
-+ } value; /* RO */
-+ struct timespec tstamp;
-+ unsigned char reserved[128-sizeof(struct timespec)];
-+};
-+
-+struct snd_ctl_tlv {
-+ unsigned int numid; /* control element numeric identification */
-+ unsigned int length; /* in bytes aligned to 4 */
-+ unsigned int tlv[0]; /* first TLV */
-+};
-+
-+#define SNDRV_CTL_IOCTL_PVERSION _IOR('U', 0x00, int)
-+#define SNDRV_CTL_IOCTL_CARD_INFO _IOR('U', 0x01, struct snd_ctl_card_info)
-+#define SNDRV_CTL_IOCTL_ELEM_LIST _IOWR('U', 0x10, struct snd_ctl_elem_list)
-+#define SNDRV_CTL_IOCTL_ELEM_INFO _IOWR('U', 0x11, struct snd_ctl_elem_info)
-+#define SNDRV_CTL_IOCTL_ELEM_READ _IOWR('U', 0x12, struct snd_ctl_elem_value)
-+#define SNDRV_CTL_IOCTL_ELEM_WRITE _IOWR('U', 0x13, struct snd_ctl_elem_value)
-+#define SNDRV_CTL_IOCTL_ELEM_LOCK _IOW('U', 0x14, struct snd_ctl_elem_id)
-+#define SNDRV_CTL_IOCTL_ELEM_UNLOCK _IOW('U', 0x15, struct snd_ctl_elem_id)
-+#define SNDRV_CTL_IOCTL_SUBSCRIBE_EVENTS _IOWR('U', 0x16, int)
-+#define SNDRV_CTL_IOCTL_ELEM_ADD _IOWR('U', 0x17, struct snd_ctl_elem_info)
-+#define SNDRV_CTL_IOCTL_ELEM_REPLACE _IOWR('U', 0x18, struct snd_ctl_elem_info)
-+#define SNDRV_CTL_IOCTL_ELEM_REMOVE _IOWR('U', 0x19, struct snd_ctl_elem_id)
-+#define SNDRV_CTL_IOCTL_TLV_READ _IOWR('U', 0x1a, struct snd_ctl_tlv)
-+#define SNDRV_CTL_IOCTL_TLV_WRITE _IOWR('U', 0x1b, struct snd_ctl_tlv)
-+#define SNDRV_CTL_IOCTL_TLV_COMMAND _IOWR('U', 0x1c, struct snd_ctl_tlv)
-+#define SNDRV_CTL_IOCTL_HWDEP_NEXT_DEVICE _IOWR('U', 0x20, int)
-+#define SNDRV_CTL_IOCTL_HWDEP_INFO _IOR('U', 0x21, struct snd_hwdep_info)
-+#define SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE _IOR('U', 0x30, int)
-+#define SNDRV_CTL_IOCTL_PCM_INFO _IOWR('U', 0x31, struct snd_pcm_info)
-+#define SNDRV_CTL_IOCTL_PCM_PREFER_SUBDEVICE _IOW('U', 0x32, int)
-+#define SNDRV_CTL_IOCTL_RAWMIDI_NEXT_DEVICE _IOWR('U', 0x40, int)
-+#define SNDRV_CTL_IOCTL_RAWMIDI_INFO _IOWR('U', 0x41, struct snd_rawmidi_info)
-+#define SNDRV_CTL_IOCTL_RAWMIDI_PREFER_SUBDEVICE _IOW('U', 0x42, int)
-+#define SNDRV_CTL_IOCTL_POWER _IOWR('U', 0xd0, int)
-+#define SNDRV_CTL_IOCTL_POWER_STATE _IOR('U', 0xd1, int)
-+
-+/*
-+ * Read interface.
-+ */
-+
-+enum sndrv_ctl_event_type {
-+ SNDRV_CTL_EVENT_ELEM = 0,
-+ SNDRV_CTL_EVENT_LAST = SNDRV_CTL_EVENT_ELEM,
-+};
-+
-+#define SNDRV_CTL_EVENT_MASK_VALUE (1<<0) /* element value was changed */
-+#define SNDRV_CTL_EVENT_MASK_INFO (1<<1) /* element info was changed */
-+#define SNDRV_CTL_EVENT_MASK_ADD (1<<2) /* element was added */
-+#define SNDRV_CTL_EVENT_MASK_TLV (1<<3) /* element TLV tree was changed */
-+#define SNDRV_CTL_EVENT_MASK_REMOVE (~0U) /* element was removed */
-+
-+struct snd_ctl_event {
-+ int type; /* event type - SNDRV_CTL_EVENT_* */
-+ union {
-+ struct {
-+ unsigned int mask;
-+ struct snd_ctl_elem_id id;
-+ } elem;
-+ unsigned char data8[60];
-+ } data;
-+};
-+
-+/*
-+ * Control names
-+ */
-+
-+#define SNDRV_CTL_NAME_NONE ""
-+#define SNDRV_CTL_NAME_PLAYBACK "Playback "
-+#define SNDRV_CTL_NAME_CAPTURE "Capture "
-+
-+#define SNDRV_CTL_NAME_IEC958_NONE ""
-+#define SNDRV_CTL_NAME_IEC958_SWITCH "Switch"
-+#define SNDRV_CTL_NAME_IEC958_VOLUME "Volume"
-+#define SNDRV_CTL_NAME_IEC958_DEFAULT "Default"
-+#define SNDRV_CTL_NAME_IEC958_MASK "Mask"
-+#define SNDRV_CTL_NAME_IEC958_CON_MASK "Con Mask"
-+#define SNDRV_CTL_NAME_IEC958_PRO_MASK "Pro Mask"
-+#define SNDRV_CTL_NAME_IEC958_PCM_STREAM "PCM Stream"
-+#define SNDRV_CTL_NAME_IEC958(expl,direction,what) "IEC958 " expl SNDRV_CTL_NAME_##direction SNDRV_CTL_NAME_IEC958_##what
-+
-+#endif /* _UAPI__SOUND_ASOUND_H */
-diff --git a/include/sound/uapi/asound_fm.h b/include/sound/uapi/asound_fm.h
-new file mode 100644
-index 00000000..8471f404
---- /dev/null
-+++ b/include/sound/uapi/asound_fm.h
-@@ -0,0 +1,135 @@
-+/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-+#ifndef __SOUND_ASOUND_FM_H
-+#define __SOUND_ASOUND_FM_H
-+
-+/*
-+ * Advanced Linux Sound Architecture - ALSA
-+ *
-+ * Interface file between ALSA driver & user space
-+ * Copyright (c) 1994-98 by Jaroslav Kysela <perex@perex.cz>,
-+ * 4Front Technologies
-+ *
-+ * Direct FM control
-+ *
-+ * 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
-+ *
-+ */
-+
-+#define SNDRV_DM_FM_MODE_OPL2 0x00
-+#define SNDRV_DM_FM_MODE_OPL3 0x01
-+
-+struct snd_dm_fm_info {
-+ unsigned char fm_mode; /* OPL mode, see SNDRV_DM_FM_MODE_XXX */
-+ unsigned char rhythm; /* percussion mode flag */
-+};
-+
-+/*
-+ * Data structure composing an FM "note" or sound event.
-+ */
-+
-+struct snd_dm_fm_voice {
-+ unsigned char op; /* operator cell (0 or 1) */
-+ unsigned char voice; /* FM voice (0 to 17) */
-+
-+ unsigned char am; /* amplitude modulation */
-+ unsigned char vibrato; /* vibrato effect */
-+ unsigned char do_sustain; /* sustain phase */
-+ unsigned char kbd_scale; /* keyboard scaling */
-+ unsigned char harmonic; /* 4 bits: harmonic and multiplier */
-+ unsigned char scale_level; /* 2 bits: decrease output freq rises */
-+ unsigned char volume; /* 6 bits: volume */
-+
-+ unsigned char attack; /* 4 bits: attack rate */
-+ unsigned char decay; /* 4 bits: decay rate */
-+ unsigned char sustain; /* 4 bits: sustain level */
-+ unsigned char release; /* 4 bits: release rate */
-+
-+ unsigned char feedback; /* 3 bits: feedback for op0 */
-+ unsigned char connection; /* 0 for serial, 1 for parallel */
-+ unsigned char left; /* stereo left */
-+ unsigned char right; /* stereo right */
-+ unsigned char waveform; /* 3 bits: waveform shape */
-+};
-+
-+/*
-+ * This describes an FM note by its voice, octave, frequency number (10bit)
-+ * and key on/off.
-+ */
-+
-+struct snd_dm_fm_note {
-+ unsigned char voice; /* 0-17 voice channel */
-+ unsigned char octave; /* 3 bits: what octave to play */
-+ unsigned int fnum; /* 10 bits: frequency number */
-+ unsigned char key_on; /* set for active, clear for silent */
-+};
-+
-+/*
-+ * FM parameters that apply globally to all voices, and thus are not "notes"
-+ */
-+
-+struct snd_dm_fm_params {
-+ unsigned char am_depth; /* amplitude modulation depth (1=hi) */
-+ unsigned char vib_depth; /* vibrato depth (1=hi) */
-+ unsigned char kbd_split; /* keyboard split */
-+ unsigned char rhythm; /* percussion mode select */
-+
-+ /* This block is the percussion instrument data */
-+ unsigned char bass;
-+ unsigned char snare;
-+ unsigned char tomtom;
-+ unsigned char cymbal;
-+ unsigned char hihat;
-+};
-+
-+/*
-+ * FM mode ioctl settings
-+ */
-+
-+#define SNDRV_DM_FM_IOCTL_INFO _IOR('H', 0x20, struct snd_dm_fm_info)
-+#define SNDRV_DM_FM_IOCTL_RESET _IO ('H', 0x21)
-+#define SNDRV_DM_FM_IOCTL_PLAY_NOTE _IOW('H', 0x22, struct snd_dm_fm_note)
-+#define SNDRV_DM_FM_IOCTL_SET_VOICE _IOW('H', 0x23, struct snd_dm_fm_voice)
-+#define SNDRV_DM_FM_IOCTL_SET_PARAMS _IOW('H', 0x24, struct snd_dm_fm_params)
-+#define SNDRV_DM_FM_IOCTL_SET_MODE _IOW('H', 0x25, int)
-+/* for OPL3 only */
-+#define SNDRV_DM_FM_IOCTL_SET_CONNECTION _IOW('H', 0x26, int)
-+/* SBI patch management */
-+#define SNDRV_DM_FM_IOCTL_CLEAR_PATCHES _IO ('H', 0x40)
-+
-+#define SNDRV_DM_FM_OSS_IOCTL_RESET 0x20
-+#define SNDRV_DM_FM_OSS_IOCTL_PLAY_NOTE 0x21
-+#define SNDRV_DM_FM_OSS_IOCTL_SET_VOICE 0x22
-+#define SNDRV_DM_FM_OSS_IOCTL_SET_PARAMS 0x23
-+#define SNDRV_DM_FM_OSS_IOCTL_SET_MODE 0x24
-+#define SNDRV_DM_FM_OSS_IOCTL_SET_OPL 0x25
-+
-+/*
-+ * Patch Record - fixed size for write
-+ */
-+
-+#define FM_KEY_SBI "SBI\032"
-+#define FM_KEY_2OP "2OP\032"
-+#define FM_KEY_4OP "4OP\032"
-+
-+struct sbi_patch {
-+ unsigned char prog;
-+ unsigned char bank;
-+ char key[4];
-+ char name[25];
-+ char extension[7];
-+ unsigned char data[32];
-+};
-+
-+#endif /* __SOUND_ASOUND_FM_H */
-diff --git a/include/sound/uapi/emu10k1.h b/include/sound/uapi/emu10k1.h
-new file mode 100644
-index 00000000..c1150e4d
---- /dev/null
-+++ b/include/sound/uapi/emu10k1.h
-@@ -0,0 +1,395 @@
-+/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-+/*
-+ * Copyright (c) by Jaroslav Kysela <perex@perex.cz>,
-+ * Creative Labs, Inc.
-+ * Definitions for EMU10K1 (SB Live!) chips
-+ *
-+ *
-+ * 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 _UAPI__SOUND_EMU10K1_H
-+#define _UAPI__SOUND_EMU10K1_H
-+
-+/*
-+ * ---- FX8010 ----
-+ */
-+
-+#define EMU10K1_CARD_CREATIVE 0x00000000
-+#define EMU10K1_CARD_EMUAPS 0x00000001
-+
-+#define EMU10K1_FX8010_PCM_COUNT 8
-+
-+/*
-+ * Following definition is copied from linux/types.h to support compiling
-+ * this header file in userspace since they are not generally available for
-+ * uapi headers.
-+ */
-+#define __EMU10K1_DECLARE_BITMAP(name,bits) \
-+ unsigned long name[(bits) / (sizeof(unsigned long) * 8)]
-+
-+/* instruction set */
-+#define iMAC0 0x00 /* R = A + (X * Y >> 31) ; saturation */
-+#define iMAC1 0x01 /* R = A + (-X * Y >> 31) ; saturation */
-+#define iMAC2 0x02 /* R = A + (X * Y >> 31) ; wraparound */
-+#define iMAC3 0x03 /* R = A + (-X * Y >> 31) ; wraparound */
-+#define iMACINT0 0x04 /* R = A + X * Y ; saturation */
-+#define iMACINT1 0x05 /* R = A + X * Y ; wraparound (31-bit) */
-+#define iACC3 0x06 /* R = A + X + Y ; saturation */
-+#define iMACMV 0x07 /* R = A, acc += X * Y >> 31 */
-+#define iANDXOR 0x08 /* R = (A & X) ^ Y */
-+#define iTSTNEG 0x09 /* R = (A >= Y) ? X : ~X */
-+#define iLIMITGE 0x0a /* R = (A >= Y) ? X : Y */
-+#define iLIMITLT 0x0b /* R = (A < Y) ? X : Y */
-+#define iLOG 0x0c /* R = linear_data, A (log_data), X (max_exp), Y (format_word) */
-+#define iEXP 0x0d /* R = log_data, A (linear_data), X (max_exp), Y (format_word) */
-+#define iINTERP 0x0e /* R = A + (X * (Y - A) >> 31) ; saturation */
-+#define iSKIP 0x0f /* R = A (cc_reg), X (count), Y (cc_test) */
-+
-+/* GPRs */
-+#define FXBUS(x) (0x00 + (x)) /* x = 0x00 - 0x0f */
-+#define EXTIN(x) (0x10 + (x)) /* x = 0x00 - 0x0f */
-+#define EXTOUT(x) (0x20 + (x)) /* x = 0x00 - 0x0f physical outs -> FXWC low 16 bits */
-+#define FXBUS2(x) (0x30 + (x)) /* x = 0x00 - 0x0f copies of fx buses for capture -> FXWC high 16 bits */
-+ /* NB: 0x31 and 0x32 are shared with Center/LFE on SB live 5.1 */
-+
-+#define C_00000000 0x40
-+#define C_00000001 0x41
-+#define C_00000002 0x42
-+#define C_00000003 0x43
-+#define C_00000004 0x44
-+#define C_00000008 0x45
-+#define C_00000010 0x46
-+#define C_00000020 0x47
-+#define C_00000100 0x48
-+#define C_00010000 0x49
-+#define C_00080000 0x4a
-+#define C_10000000 0x4b
-+#define C_20000000 0x4c
-+#define C_40000000 0x4d
-+#define C_80000000 0x4e
-+#define C_7fffffff 0x4f
-+#define C_ffffffff 0x50
-+#define C_fffffffe 0x51
-+#define C_c0000000 0x52
-+#define C_4f1bbcdc 0x53
-+#define C_5a7ef9db 0x54
-+#define C_00100000 0x55 /* ?? */
-+#define GPR_ACCU 0x56 /* ACCUM, accumulator */
-+#define GPR_COND 0x57 /* CCR, condition register */
-+#define GPR_NOISE0 0x58 /* noise source */
-+#define GPR_NOISE1 0x59 /* noise source */
-+#define GPR_IRQ 0x5a /* IRQ register */
-+#define GPR_DBAC 0x5b /* TRAM Delay Base Address Counter */
-+#define GPR(x) (FXGPREGBASE + (x)) /* free GPRs: x = 0x00 - 0xff */
-+#define ITRAM_DATA(x) (TANKMEMDATAREGBASE + 0x00 + (x)) /* x = 0x00 - 0x7f */
-+#define ETRAM_DATA(x) (TANKMEMDATAREGBASE + 0x80 + (x)) /* x = 0x00 - 0x1f */
-+#define ITRAM_ADDR(x) (TANKMEMADDRREGBASE + 0x00 + (x)) /* x = 0x00 - 0x7f */
-+#define ETRAM_ADDR(x) (TANKMEMADDRREGBASE + 0x80 + (x)) /* x = 0x00 - 0x1f */
-+
-+#define A_ITRAM_DATA(x) (TANKMEMDATAREGBASE + 0x00 + (x)) /* x = 0x00 - 0xbf */
-+#define A_ETRAM_DATA(x) (TANKMEMDATAREGBASE + 0xc0 + (x)) /* x = 0x00 - 0x3f */
-+#define A_ITRAM_ADDR(x) (TANKMEMADDRREGBASE + 0x00 + (x)) /* x = 0x00 - 0xbf */
-+#define A_ETRAM_ADDR(x) (TANKMEMADDRREGBASE + 0xc0 + (x)) /* x = 0x00 - 0x3f */
-+#define A_ITRAM_CTL(x) (A_TANKMEMCTLREGBASE + 0x00 + (x)) /* x = 0x00 - 0xbf */
-+#define A_ETRAM_CTL(x) (A_TANKMEMCTLREGBASE + 0xc0 + (x)) /* x = 0x00 - 0x3f */
-+
-+#define A_FXBUS(x) (0x00 + (x)) /* x = 0x00 - 0x3f FX buses */
-+#define A_EXTIN(x) (0x40 + (x)) /* x = 0x00 - 0x0f physical ins */
-+#define A_P16VIN(x) (0x50 + (x)) /* x = 0x00 - 0x0f p16v ins (A2 only) "EMU32 inputs" */
-+#define A_EXTOUT(x) (0x60 + (x)) /* x = 0x00 - 0x1f physical outs -> A_FXWC1 0x79-7f unknown */
-+#define A_FXBUS2(x) (0x80 + (x)) /* x = 0x00 - 0x1f extra outs used for EFX capture -> A_FXWC2 */
-+#define A_EMU32OUTH(x) (0xa0 + (x)) /* x = 0x00 - 0x0f "EMU32_OUT_10 - _1F" - ??? */
-+#define A_EMU32OUTL(x) (0xb0 + (x)) /* x = 0x00 - 0x0f "EMU32_OUT_1 - _F" - ??? */
-+#define A3_EMU32IN(x) (0x160 + (x)) /* x = 0x00 - 0x3f "EMU32_IN_00 - _3F" - Only when .device = 0x0008 */
-+#define A3_EMU32OUT(x) (0x1E0 + (x)) /* x = 0x00 - 0x0f "EMU32_OUT_00 - _3F" - Only when .device = 0x0008 */
-+#define A_GPR(x) (A_FXGPREGBASE + (x))
-+
-+/* cc_reg constants */
-+#define CC_REG_NORMALIZED C_00000001
-+#define CC_REG_BORROW C_00000002
-+#define CC_REG_MINUS C_00000004
-+#define CC_REG_ZERO C_00000008
-+#define CC_REG_SATURATE C_00000010
-+#define CC_REG_NONZERO C_00000100
-+
-+/* FX buses */
-+#define FXBUS_PCM_LEFT 0x00
-+#define FXBUS_PCM_RIGHT 0x01
-+#define FXBUS_PCM_LEFT_REAR 0x02
-+#define FXBUS_PCM_RIGHT_REAR 0x03
-+#define FXBUS_MIDI_LEFT 0x04
-+#define FXBUS_MIDI_RIGHT 0x05
-+#define FXBUS_PCM_CENTER 0x06
-+#define FXBUS_PCM_LFE 0x07
-+#define FXBUS_PCM_LEFT_FRONT 0x08
-+#define FXBUS_PCM_RIGHT_FRONT 0x09
-+#define FXBUS_MIDI_REVERB 0x0c
-+#define FXBUS_MIDI_CHORUS 0x0d
-+#define FXBUS_PCM_LEFT_SIDE 0x0e
-+#define FXBUS_PCM_RIGHT_SIDE 0x0f
-+#define FXBUS_PT_LEFT 0x14
-+#define FXBUS_PT_RIGHT 0x15
-+
-+/* Inputs */
-+#define EXTIN_AC97_L 0x00 /* AC'97 capture channel - left */
-+#define EXTIN_AC97_R 0x01 /* AC'97 capture channel - right */
-+#define EXTIN_SPDIF_CD_L 0x02 /* internal S/PDIF CD - onboard - left */
-+#define EXTIN_SPDIF_CD_R 0x03 /* internal S/PDIF CD - onboard - right */
-+#define EXTIN_ZOOM_L 0x04 /* Zoom Video I2S - left */
-+#define EXTIN_ZOOM_R 0x05 /* Zoom Video I2S - right */
-+#define EXTIN_TOSLINK_L 0x06 /* LiveDrive - TOSLink Optical - left */
-+#define EXTIN_TOSLINK_R 0x07 /* LiveDrive - TOSLink Optical - right */
-+#define EXTIN_LINE1_L 0x08 /* LiveDrive - Line/Mic 1 - left */
-+#define EXTIN_LINE1_R 0x09 /* LiveDrive - Line/Mic 1 - right */
-+#define EXTIN_COAX_SPDIF_L 0x0a /* LiveDrive - Coaxial S/PDIF - left */
-+#define EXTIN_COAX_SPDIF_R 0x0b /* LiveDrive - Coaxial S/PDIF - right */
-+#define EXTIN_LINE2_L 0x0c /* LiveDrive - Line/Mic 2 - left */
-+#define EXTIN_LINE2_R 0x0d /* LiveDrive - Line/Mic 2 - right */
-+
-+/* Outputs */
-+#define EXTOUT_AC97_L 0x00 /* AC'97 playback channel - left */
-+#define EXTOUT_AC97_R 0x01 /* AC'97 playback channel - right */
-+#define EXTOUT_TOSLINK_L 0x02 /* LiveDrive - TOSLink Optical - left */
-+#define EXTOUT_TOSLINK_R 0x03 /* LiveDrive - TOSLink Optical - right */
-+#define EXTOUT_AC97_CENTER 0x04 /* SB Live 5.1 - center */
-+#define EXTOUT_AC97_LFE 0x05 /* SB Live 5.1 - LFE */
-+#define EXTOUT_HEADPHONE_L 0x06 /* LiveDrive - Headphone - left */
-+#define EXTOUT_HEADPHONE_R 0x07 /* LiveDrive - Headphone - right */
-+#define EXTOUT_REAR_L 0x08 /* Rear channel - left */
-+#define EXTOUT_REAR_R 0x09 /* Rear channel - right */
-+#define EXTOUT_ADC_CAP_L 0x0a /* ADC Capture buffer - left */
-+#define EXTOUT_ADC_CAP_R 0x0b /* ADC Capture buffer - right */
-+#define EXTOUT_MIC_CAP 0x0c /* MIC Capture buffer */
-+#define EXTOUT_AC97_REAR_L 0x0d /* SB Live 5.1 (c) 2003 - Rear Left */
-+#define EXTOUT_AC97_REAR_R 0x0e /* SB Live 5.1 (c) 2003 - Rear Right */
-+#define EXTOUT_ACENTER 0x11 /* Analog Center */
-+#define EXTOUT_ALFE 0x12 /* Analog LFE */
-+
-+/* Audigy Inputs */
-+#define A_EXTIN_AC97_L 0x00 /* AC'97 capture channel - left */
-+#define A_EXTIN_AC97_R 0x01 /* AC'97 capture channel - right */
-+#define A_EXTIN_SPDIF_CD_L 0x02 /* digital CD left */
-+#define A_EXTIN_SPDIF_CD_R 0x03 /* digital CD left */
-+#define A_EXTIN_OPT_SPDIF_L 0x04 /* audigy drive Optical SPDIF - left */
-+#define A_EXTIN_OPT_SPDIF_R 0x05 /* right */
-+#define A_EXTIN_LINE2_L 0x08 /* audigy drive line2/mic2 - left */
-+#define A_EXTIN_LINE2_R 0x09 /* right */
-+#define A_EXTIN_ADC_L 0x0a /* Philips ADC - left */
-+#define A_EXTIN_ADC_R 0x0b /* right */
-+#define A_EXTIN_AUX2_L 0x0c /* audigy drive aux2 - left */
-+#define A_EXTIN_AUX2_R 0x0d /* - right */
-+
-+/* Audigiy Outputs */
-+#define A_EXTOUT_FRONT_L 0x00 /* digital front left */
-+#define A_EXTOUT_FRONT_R 0x01 /* right */
-+#define A_EXTOUT_CENTER 0x02 /* digital front center */
-+#define A_EXTOUT_LFE 0x03 /* digital front lfe */
-+#define A_EXTOUT_HEADPHONE_L 0x04 /* headphone audigy drive left */
-+#define A_EXTOUT_HEADPHONE_R 0x05 /* right */
-+#define A_EXTOUT_REAR_L 0x06 /* digital rear left */
-+#define A_EXTOUT_REAR_R 0x07 /* right */
-+#define A_EXTOUT_AFRONT_L 0x08 /* analog front left */
-+#define A_EXTOUT_AFRONT_R 0x09 /* right */
-+#define A_EXTOUT_ACENTER 0x0a /* analog center */
-+#define A_EXTOUT_ALFE 0x0b /* analog LFE */
-+#define A_EXTOUT_ASIDE_L 0x0c /* analog side left - Audigy 2 ZS */
-+#define A_EXTOUT_ASIDE_R 0x0d /* right - Audigy 2 ZS */
-+#define A_EXTOUT_AREAR_L 0x0e /* analog rear left */
-+#define A_EXTOUT_AREAR_R 0x0f /* right */
-+#define A_EXTOUT_AC97_L 0x10 /* AC97 left (front) */
-+#define A_EXTOUT_AC97_R 0x11 /* right */
-+#define A_EXTOUT_ADC_CAP_L 0x16 /* ADC capture buffer left */
-+#define A_EXTOUT_ADC_CAP_R 0x17 /* right */
-+#define A_EXTOUT_MIC_CAP 0x18 /* Mic capture buffer */
-+
-+/* Audigy constants */
-+#define A_C_00000000 0xc0
-+#define A_C_00000001 0xc1
-+#define A_C_00000002 0xc2
-+#define A_C_00000003 0xc3
-+#define A_C_00000004 0xc4
-+#define A_C_00000008 0xc5
-+#define A_C_00000010 0xc6
-+#define A_C_00000020 0xc7
-+#define A_C_00000100 0xc8
-+#define A_C_00010000 0xc9
-+#define A_C_00000800 0xca
-+#define A_C_10000000 0xcb
-+#define A_C_20000000 0xcc
-+#define A_C_40000000 0xcd
-+#define A_C_80000000 0xce
-+#define A_C_7fffffff 0xcf
-+#define A_C_ffffffff 0xd0
-+#define A_C_fffffffe 0xd1
-+#define A_C_c0000000 0xd2
-+#define A_C_4f1bbcdc 0xd3
-+#define A_C_5a7ef9db 0xd4
-+#define A_C_00100000 0xd5
-+#define A_GPR_ACCU 0xd6 /* ACCUM, accumulator */
-+#define A_GPR_COND 0xd7 /* CCR, condition register */
-+#define A_GPR_NOISE0 0xd8 /* noise source */
-+#define A_GPR_NOISE1 0xd9 /* noise source */
-+#define A_GPR_IRQ 0xda /* IRQ register */
-+#define A_GPR_DBAC 0xdb /* TRAM Delay Base Address Counter - internal */
-+#define A_GPR_DBACE 0xde /* TRAM Delay Base Address Counter - external */
-+
-+/* definitions for debug register */
-+#define EMU10K1_DBG_ZC 0x80000000 /* zero tram counter */
-+#define EMU10K1_DBG_SATURATION_OCCURED 0x02000000 /* saturation control */
-+#define EMU10K1_DBG_SATURATION_ADDR 0x01ff0000 /* saturation address */
-+#define EMU10K1_DBG_SINGLE_STEP 0x00008000 /* single step mode */
-+#define EMU10K1_DBG_STEP 0x00004000 /* start single step */
-+#define EMU10K1_DBG_CONDITION_CODE 0x00003e00 /* condition code */
-+#define EMU10K1_DBG_SINGLE_STEP_ADDR 0x000001ff /* single step address */
-+
-+/* tank memory address line */
-+#ifndef __KERNEL__
-+#define TANKMEMADDRREG_ADDR_MASK 0x000fffff /* 20 bit tank address field */
-+#define TANKMEMADDRREG_CLEAR 0x00800000 /* Clear tank memory */
-+#define TANKMEMADDRREG_ALIGN 0x00400000 /* Align read or write relative to tank access */
-+#define TANKMEMADDRREG_WRITE 0x00200000 /* Write to tank memory */
-+#define TANKMEMADDRREG_READ 0x00100000 /* Read from tank memory */
-+#endif
-+
-+struct snd_emu10k1_fx8010_info {
-+ unsigned int internal_tram_size; /* in samples */
-+ unsigned int external_tram_size; /* in samples */
-+ char fxbus_names[16][32]; /* names of FXBUSes */
-+ char extin_names[16][32]; /* names of external inputs */
-+ char extout_names[32][32]; /* names of external outputs */
-+ unsigned int gpr_controls; /* count of GPR controls */
-+};
-+
-+#define EMU10K1_GPR_TRANSLATION_NONE 0
-+#define EMU10K1_GPR_TRANSLATION_TABLE100 1
-+#define EMU10K1_GPR_TRANSLATION_BASS 2
-+#define EMU10K1_GPR_TRANSLATION_TREBLE 3
-+#define EMU10K1_GPR_TRANSLATION_ONOFF 4
-+
-+enum emu10k1_ctl_elem_iface {
-+ EMU10K1_CTL_ELEM_IFACE_MIXER = 2, /* virtual mixer device */
-+ EMU10K1_CTL_ELEM_IFACE_PCM = 3, /* PCM device */
-+};
-+
-+struct emu10k1_ctl_elem_id {
-+ unsigned int pad; /* don't use */
-+ int iface; /* interface identifier */
-+ unsigned int device; /* device/client number */
-+ unsigned int subdevice; /* subdevice (substream) number */
-+ unsigned char name[44]; /* ASCII name of item */
-+ unsigned int index; /* index of item */
-+};
-+
-+struct snd_emu10k1_fx8010_control_gpr {
-+ struct emu10k1_ctl_elem_id id; /* full control ID definition */
-+ unsigned int vcount; /* visible count */
-+ unsigned int count; /* count of GPR (1..16) */
-+ unsigned short gpr[32]; /* GPR number(s) */
-+ unsigned int value[32]; /* initial values */
-+ unsigned int min; /* minimum range */
-+ unsigned int max; /* maximum range */
-+ unsigned int translation; /* translation type (EMU10K1_GPR_TRANSLATION*) */
-+ const unsigned int *tlv;
-+};
-+
-+/* old ABI without TLV support */
-+struct snd_emu10k1_fx8010_control_old_gpr {
-+ struct emu10k1_ctl_elem_id id;
-+ unsigned int vcount;
-+ unsigned int count;
-+ unsigned short gpr[32];
-+ unsigned int value[32];
-+ unsigned int min;
-+ unsigned int max;
-+ unsigned int translation;
-+};
-+
-+struct snd_emu10k1_fx8010_code {
-+ char name[128];
-+
-+ __EMU10K1_DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */
-+ __u32 *gpr_map; /* initializers */
-+
-+ unsigned int gpr_add_control_count; /* count of GPR controls to add/replace */
-+ struct snd_emu10k1_fx8010_control_gpr *gpr_add_controls; /* GPR controls to add/replace */
-+
-+ unsigned int gpr_del_control_count; /* count of GPR controls to remove */
-+ struct emu10k1_ctl_elem_id *gpr_del_controls; /* IDs of GPR controls to remove */
-+
-+ unsigned int gpr_list_control_count; /* count of GPR controls to list */
-+ unsigned int gpr_list_control_total; /* total count of GPR controls */
-+ struct snd_emu10k1_fx8010_control_gpr *gpr_list_controls; /* listed GPR controls */
-+
-+ __EMU10K1_DECLARE_BITMAP(tram_valid, 0x100); /* bitmask of valid initializers */
-+ __u32 *tram_data_map; /* data initializers */
-+ __u32 *tram_addr_map; /* map initializers */
-+
-+ __EMU10K1_DECLARE_BITMAP(code_valid, 1024); /* bitmask of valid instructions */
-+ __u32 *code; /* one instruction - 64 bits */
-+};
-+
-+struct snd_emu10k1_fx8010_tram {
-+ unsigned int address; /* 31.bit == 1 -> external TRAM */
-+ unsigned int size; /* size in samples (4 bytes) */
-+ unsigned int *samples; /* pointer to samples (20-bit) */
-+ /* NULL->clear memory */
-+};
-+
-+struct snd_emu10k1_fx8010_pcm_rec {
-+ unsigned int substream; /* substream number */
-+ unsigned int res1; /* reserved */
-+ unsigned int channels; /* 16-bit channels count, zero = remove this substream */
-+ unsigned int tram_start; /* ring buffer position in TRAM (in samples) */
-+ unsigned int buffer_size; /* count of buffered samples */
-+ unsigned short gpr_size; /* GPR containing size of ringbuffer in samples (host) */
-+ unsigned short gpr_ptr; /* GPR containing current pointer in the ring buffer (host = reset, FX8010) */
-+ unsigned short gpr_count; /* GPR containing count of samples between two interrupts (host) */
-+ unsigned short gpr_tmpcount; /* GPR containing current count of samples to interrupt (host = set, FX8010) */
-+ unsigned short gpr_trigger; /* GPR containing trigger (activate) information (host) */
-+ unsigned short gpr_running; /* GPR containing info if PCM is running (FX8010) */
-+ unsigned char pad; /* reserved */
-+ unsigned char etram[32]; /* external TRAM address & data (one per channel) */
-+ unsigned int res2; /* reserved */
-+};
-+
-+#define SNDRV_EMU10K1_VERSION SNDRV_PROTOCOL_VERSION(1, 0, 1)
-+
-+#define SNDRV_EMU10K1_IOCTL_INFO _IOR ('H', 0x10, struct snd_emu10k1_fx8010_info)
-+#define SNDRV_EMU10K1_IOCTL_CODE_POKE _IOW ('H', 0x11, struct snd_emu10k1_fx8010_code)
-+#define SNDRV_EMU10K1_IOCTL_CODE_PEEK _IOWR('H', 0x12, struct snd_emu10k1_fx8010_code)
-+#define SNDRV_EMU10K1_IOCTL_TRAM_SETUP _IOW ('H', 0x20, int)
-+#define SNDRV_EMU10K1_IOCTL_TRAM_POKE _IOW ('H', 0x21, struct snd_emu10k1_fx8010_tram)
-+#define SNDRV_EMU10K1_IOCTL_TRAM_PEEK _IOWR('H', 0x22, struct snd_emu10k1_fx8010_tram)
-+#define SNDRV_EMU10K1_IOCTL_PCM_POKE _IOW ('H', 0x30, struct snd_emu10k1_fx8010_pcm_rec)
-+#define SNDRV_EMU10K1_IOCTL_PCM_PEEK _IOWR('H', 0x31, struct snd_emu10k1_fx8010_pcm_rec)
-+#define SNDRV_EMU10K1_IOCTL_PVERSION _IOR ('H', 0x40, int)
-+#define SNDRV_EMU10K1_IOCTL_STOP _IO ('H', 0x80)
-+#define SNDRV_EMU10K1_IOCTL_CONTINUE _IO ('H', 0x81)
-+#define SNDRV_EMU10K1_IOCTL_ZERO_TRAM_COUNTER _IO ('H', 0x82)
-+#define SNDRV_EMU10K1_IOCTL_SINGLE_STEP _IOW ('H', 0x83, int)
-+#define SNDRV_EMU10K1_IOCTL_DBG_READ _IOR ('H', 0x84, int)
-+
-+#ifndef __KERNEL__
-+/* typedefs for compatibility to user-space */
-+typedef struct snd_emu10k1_fx8010_info emu10k1_fx8010_info_t;
-+typedef struct snd_emu10k1_fx8010_control_gpr emu10k1_fx8010_control_gpr_t;
-+typedef struct snd_emu10k1_fx8010_code emu10k1_fx8010_code_t;
-+typedef struct snd_emu10k1_fx8010_tram emu10k1_fx8010_tram_t;
-+typedef struct snd_emu10k1_fx8010_pcm_rec emu10k1_fx8010_pcm_t;
-+typedef struct emu10k1_ctl_elem_id emu10k1_ctl_elem_id_t;
-+#endif
-+
-+#endif /* _UAPI__SOUND_EMU10K1_H */
-diff --git a/include/sound/uapi/hdsp.h b/include/sound/uapi/hdsp.h
-new file mode 100644
-index 00000000..88c92a3f
---- /dev/null
-+++ b/include/sound/uapi/hdsp.h
-@@ -0,0 +1,109 @@
-+/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-+#ifndef __SOUND_HDSP_H
-+#define __SOUND_HDSP_H
-+
-+/*
-+ * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
-+ *
-+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+
-+#define HDSP_MATRIX_MIXER_SIZE 2048
-+
-+enum HDSP_IO_Type {
-+ Digiface,
-+ Multiface,
-+ H9652,
-+ H9632,
-+ RPM,
-+ Undefined,
-+};
-+
-+struct hdsp_peak_rms {
-+ __u32 input_peaks[26];
-+ __u32 playback_peaks[26];
-+ __u32 output_peaks[28];
-+ __u64 input_rms[26];
-+ __u64 playback_rms[26];
-+ /* These are only used for H96xx cards */
-+ __u64 output_rms[26];
-+};
-+
-+#define SNDRV_HDSP_IOCTL_GET_PEAK_RMS _IOR('H', 0x40, struct hdsp_peak_rms)
-+
-+struct hdsp_config_info {
-+ unsigned char pref_sync_ref;
-+ unsigned char wordclock_sync_check;
-+ unsigned char spdif_sync_check;
-+ unsigned char adatsync_sync_check;
-+ unsigned char adat_sync_check[3];
-+ unsigned char spdif_in;
-+ unsigned char spdif_out;
-+ unsigned char spdif_professional;
-+ unsigned char spdif_emphasis;
-+ unsigned char spdif_nonaudio;
-+ unsigned int spdif_sample_rate;
-+ unsigned int system_sample_rate;
-+ unsigned int autosync_sample_rate;
-+ unsigned char system_clock_mode;
-+ unsigned char clock_source;
-+ unsigned char autosync_ref;
-+ unsigned char line_out;
-+ unsigned char passthru;
-+ unsigned char da_gain;
-+ unsigned char ad_gain;
-+ unsigned char phone_gain;
-+ unsigned char xlr_breakout_cable;
-+ unsigned char analog_extension_board;
-+};
-+
-+#define SNDRV_HDSP_IOCTL_GET_CONFIG_INFO _IOR('H', 0x41, struct hdsp_config_info)
-+
-+struct hdsp_firmware {
-+ void *firmware_data; /* 24413 x 4 bytes */
-+};
-+
-+#define SNDRV_HDSP_IOCTL_UPLOAD_FIRMWARE _IOW('H', 0x42, struct hdsp_firmware)
-+
-+struct hdsp_version {
-+ enum HDSP_IO_Type io_type;
-+ unsigned short firmware_rev;
-+};
-+
-+#define SNDRV_HDSP_IOCTL_GET_VERSION _IOR('H', 0x43, struct hdsp_version)
-+
-+struct hdsp_mixer {
-+ unsigned short matrix[HDSP_MATRIX_MIXER_SIZE];
-+};
-+
-+#define SNDRV_HDSP_IOCTL_GET_MIXER _IOR('H', 0x44, struct hdsp_mixer)
-+
-+struct hdsp_9632_aeb {
-+ int aebi;
-+ int aebo;
-+};
-+
-+#define SNDRV_HDSP_IOCTL_GET_9632_AEB _IOR('H', 0x45, struct hdsp_9632_aeb)
-+
-+/* typedefs for compatibility to user-space */
-+typedef enum HDSP_IO_Type HDSP_IO_Type;
-+typedef struct hdsp_peak_rms hdsp_peak_rms_t;
-+typedef struct hdsp_config_info hdsp_config_info_t;
-+typedef struct hdsp_firmware hdsp_firmware_t;
-+typedef struct hdsp_version hdsp_version_t;
-+typedef struct hdsp_mixer hdsp_mixer_t;
-+typedef struct hdsp_9632_aeb hdsp_9632_aeb_t;
-+
-+#endif /* __SOUND_HDSP_H */
-diff --git a/include/sound/uapi/hdspm.h b/include/sound/uapi/hdspm.h
-new file mode 100644
-index 00000000..2d91f90e
---- /dev/null
-+++ b/include/sound/uapi/hdspm.h
-@@ -0,0 +1,230 @@
-+/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-+#ifndef __SOUND_HDSPM_H
-+#define __SOUND_HDSPM_H
-+/*
-+ * Copyright (C) 2003 Winfried Ritsch (IEM)
-+ * based on hdsp.h from Thomas Charbonnel (thomas@undata.org)
-+ *
-+ *
-+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+
-+/* Maximum channels is 64 even on 56Mode you have 64playbacks to matrix */
-+#define HDSPM_MAX_CHANNELS 64
-+
-+enum hdspm_io_type {
-+ MADI,
-+ MADIface,
-+ AIO,
-+ AES32,
-+ RayDAT
-+};
-+
-+enum hdspm_speed {
-+ ss,
-+ ds,
-+ qs
-+};
-+
-+/* -------------------- IOCTL Peak/RMS Meters -------------------- */
-+
-+struct hdspm_peak_rms {
-+ __u32 input_peaks[64];
-+ __u32 playback_peaks[64];
-+ __u32 output_peaks[64];
-+
-+ __u64 input_rms[64];
-+ __u64 playback_rms[64];
-+ __u64 output_rms[64];
-+
-+ __u8 speed; /* enum {ss, ds, qs} */
-+ int status2;
-+};
-+
-+#define SNDRV_HDSPM_IOCTL_GET_PEAK_RMS \
-+ _IOR('H', 0x42, struct hdspm_peak_rms)
-+
-+/* ------------ CONFIG block IOCTL ---------------------- */
-+
-+struct hdspm_config {
-+ unsigned char pref_sync_ref;
-+ unsigned char wordclock_sync_check;
-+ unsigned char madi_sync_check;
-+ unsigned int system_sample_rate;
-+ unsigned int autosync_sample_rate;
-+ unsigned char system_clock_mode;
-+ unsigned char clock_source;
-+ unsigned char autosync_ref;
-+ unsigned char line_out;
-+ unsigned int passthru;
-+ unsigned int analog_out;
-+};
-+
-+#define SNDRV_HDSPM_IOCTL_GET_CONFIG \
-+ _IOR('H', 0x41, struct hdspm_config)
-+
-+/*
-+ * If there's a TCO (TimeCode Option) board installed,
-+ * there are further options and status data available.
-+ * The hdspm_ltc structure contains the current SMPTE
-+ * timecode and some status information and can be
-+ * obtained via SNDRV_HDSPM_IOCTL_GET_LTC or in the
-+ * hdspm_status struct.
-+ */
-+
-+enum hdspm_ltc_format {
-+ format_invalid,
-+ fps_24,
-+ fps_25,
-+ fps_2997,
-+ fps_30
-+};
-+
-+enum hdspm_ltc_frame {
-+ frame_invalid,
-+ drop_frame,
-+ full_frame
-+};
-+
-+enum hdspm_ltc_input_format {
-+ ntsc,
-+ pal,
-+ no_video
-+};
-+
-+struct hdspm_ltc {
-+ unsigned int ltc;
-+
-+ enum hdspm_ltc_format format;
-+ enum hdspm_ltc_frame frame;
-+ enum hdspm_ltc_input_format input_format;
-+};
-+
-+#define SNDRV_HDSPM_IOCTL_GET_LTC _IOR('H', 0x46, struct hdspm_ltc)
-+
-+/*
-+ * The status data reflects the device's current state
-+ * as determined by the card's configuration and
-+ * connection status.
-+ */
-+
-+enum hdspm_sync {
-+ hdspm_sync_no_lock = 0,
-+ hdspm_sync_lock = 1,
-+ hdspm_sync_sync = 2
-+};
-+
-+enum hdspm_madi_input {
-+ hdspm_input_optical = 0,
-+ hdspm_input_coax = 1
-+};
-+
-+enum hdspm_madi_channel_format {
-+ hdspm_format_ch_64 = 0,
-+ hdspm_format_ch_56 = 1
-+};
-+
-+enum hdspm_madi_frame_format {
-+ hdspm_frame_48 = 0,
-+ hdspm_frame_96 = 1
-+};
-+
-+enum hdspm_syncsource {
-+ syncsource_wc = 0,
-+ syncsource_madi = 1,
-+ syncsource_tco = 2,
-+ syncsource_sync = 3,
-+ syncsource_none = 4
-+};
-+
-+struct hdspm_status {
-+ __u8 card_type; /* enum hdspm_io_type */
-+ enum hdspm_syncsource autosync_source;
-+
-+ __u64 card_clock;
-+ __u32 master_period;
-+
-+ union {
-+ struct {
-+ __u8 sync_wc; /* enum hdspm_sync */
-+ __u8 sync_madi; /* enum hdspm_sync */
-+ __u8 sync_tco; /* enum hdspm_sync */
-+ __u8 sync_in; /* enum hdspm_sync */
-+ __u8 madi_input; /* enum hdspm_madi_input */
-+ __u8 channel_format; /* enum hdspm_madi_channel_format */
-+ __u8 frame_format; /* enum hdspm_madi_frame_format */
-+ } madi;
-+ } card_specific;
-+};
-+
-+#define SNDRV_HDSPM_IOCTL_GET_STATUS \
-+ _IOR('H', 0x47, struct hdspm_status)
-+
-+/*
-+ * Get information about the card and its add-ons.
-+ */
-+
-+#define HDSPM_ADDON_TCO 1
-+
-+struct hdspm_version {
-+ __u8 card_type; /* enum hdspm_io_type */
-+ char cardname[20];
-+ unsigned int serial;
-+ unsigned short firmware_rev;
-+ int addons;
-+};
-+
-+#define SNDRV_HDSPM_IOCTL_GET_VERSION _IOR('H', 0x48, struct hdspm_version)
-+
-+/* ------------- get Matrix Mixer IOCTL --------------- */
-+
-+/* MADI mixer: 64inputs+64playback in 64outputs = 8192 => *4Byte =
-+ * 32768 Bytes
-+ */
-+
-+/* organisation is 64 channelfader in a continuous memory block */
-+/* equivalent to hardware definition, maybe for future feature of mmap of
-+ * them
-+ */
-+/* each of 64 outputs has 64 infader and 64 outfader:
-+ Ins to Outs mixer[out].in[in], Outstreams to Outs mixer[out].pb[pb] */
-+
-+#define HDSPM_MIXER_CHANNELS HDSPM_MAX_CHANNELS
-+
-+struct hdspm_channelfader {
-+ unsigned int in[HDSPM_MIXER_CHANNELS];
-+ unsigned int pb[HDSPM_MIXER_CHANNELS];
-+};
-+
-+struct hdspm_mixer {
-+ struct hdspm_channelfader ch[HDSPM_MIXER_CHANNELS];
-+};
-+
-+struct hdspm_mixer_ioctl {
-+ struct hdspm_mixer *mixer;
-+};
-+
-+/* use indirect access due to the limit of ioctl bit size */
-+#define SNDRV_HDSPM_IOCTL_GET_MIXER _IOR('H', 0x44, struct hdspm_mixer_ioctl)
-+
-+/* typedefs for compatibility to user-space */
-+typedef struct hdspm_peak_rms hdspm_peak_rms_t;
-+typedef struct hdspm_config_info hdspm_config_info_t;
-+typedef struct hdspm_version hdspm_version_t;
-+typedef struct hdspm_channelfader snd_hdspm_channelfader_t;
-+typedef struct hdspm_mixer hdspm_mixer_t;
-+
-+
-+#endif
-diff --git a/include/sound/uapi/sb16_csp.h b/include/sound/uapi/sb16_csp.h
-new file mode 100644
-index 00000000..e6485148
---- /dev/null
-+++ b/include/sound/uapi/sb16_csp.h
-@@ -0,0 +1,123 @@
-+/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-+/*
-+ * Copyright (c) 1999 by Uros Bizjak <uros@kss-loka.si>
-+ * Takashi Iwai <tiwai@suse.de>
-+ *
-+ * SB16ASP/AWE32 CSP control
-+ *
-+ * 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 _UAPI__SOUND_SB16_CSP_H
-+#define _UAPI__SOUND_SB16_CSP_H
-+
-+
-+/* CSP modes */
-+#define SNDRV_SB_CSP_MODE_NONE 0x00
-+#define SNDRV_SB_CSP_MODE_DSP_READ 0x01 /* Record from DSP */
-+#define SNDRV_SB_CSP_MODE_DSP_WRITE 0x02 /* Play to DSP */
-+#define SNDRV_SB_CSP_MODE_QSOUND 0x04 /* QSound */
-+
-+/* CSP load flags */
-+#define SNDRV_SB_CSP_LOAD_FROMUSER 0x01
-+#define SNDRV_SB_CSP_LOAD_INITBLOCK 0x02
-+
-+/* CSP sample width */
-+#define SNDRV_SB_CSP_SAMPLE_8BIT 0x01
-+#define SNDRV_SB_CSP_SAMPLE_16BIT 0x02
-+
-+/* CSP channels */
-+#define SNDRV_SB_CSP_MONO 0x01
-+#define SNDRV_SB_CSP_STEREO 0x02
-+
-+/* CSP rates */
-+#define SNDRV_SB_CSP_RATE_8000 0x01
-+#define SNDRV_SB_CSP_RATE_11025 0x02
-+#define SNDRV_SB_CSP_RATE_22050 0x04
-+#define SNDRV_SB_CSP_RATE_44100 0x08
-+#define SNDRV_SB_CSP_RATE_ALL 0x0f
-+
-+/* CSP running state */
-+#define SNDRV_SB_CSP_ST_IDLE 0x00
-+#define SNDRV_SB_CSP_ST_LOADED 0x01
-+#define SNDRV_SB_CSP_ST_RUNNING 0x02
-+#define SNDRV_SB_CSP_ST_PAUSED 0x04
-+#define SNDRV_SB_CSP_ST_AUTO 0x08
-+#define SNDRV_SB_CSP_ST_QSOUND 0x10
-+
-+/* maximum QSound value (180 degrees right) */
-+#define SNDRV_SB_CSP_QSOUND_MAX_RIGHT 0x20
-+
-+/* maximum microcode RIFF file size */
-+#define SNDRV_SB_CSP_MAX_MICROCODE_FILE_SIZE 0x3000
-+
-+/* microcode header */
-+struct snd_sb_csp_mc_header {
-+ char codec_name[16]; /* id name of codec */
-+ unsigned short func_req; /* requested function */
-+};
-+
-+/* microcode to be loaded */
-+struct snd_sb_csp_microcode {
-+ struct snd_sb_csp_mc_header info;
-+ unsigned char data[SNDRV_SB_CSP_MAX_MICROCODE_FILE_SIZE];
-+};
-+
-+/* start CSP with sample_width in mono/stereo */
-+struct snd_sb_csp_start {
-+ int sample_width; /* sample width, look above */
-+ int channels; /* channels, look above */
-+};
-+
-+/* CSP information */
-+struct snd_sb_csp_info {
-+ char codec_name[16]; /* id name of codec */
-+ unsigned short func_nr; /* function number */
-+ unsigned int acc_format; /* accepted PCM formats */
-+ unsigned short acc_channels; /* accepted channels */
-+ unsigned short acc_width; /* accepted sample width */
-+ unsigned short acc_rates; /* accepted sample rates */
-+ unsigned short csp_mode; /* CSP mode, see above */
-+ unsigned short run_channels; /* current channels */
-+ unsigned short run_width; /* current sample width */
-+ unsigned short version; /* version id: 0x10 - 0x1f */
-+ unsigned short state; /* state bits */
-+};
-+
-+/* HWDEP controls */
-+/* get CSP information */
-+#define SNDRV_SB_CSP_IOCTL_INFO _IOR('H', 0x10, struct snd_sb_csp_info)
-+/* load microcode to CSP */
-+/* NOTE: struct snd_sb_csp_microcode overflows the max size (13 bits)
-+ * defined for some architectures like MIPS, and it leads to build errors.
-+ * (x86 and co have 14-bit size, thus it's valid, though.)
-+ * As a workaround for skipping the size-limit check, here we don't use the
-+ * normal _IOW() macro but _IOC() with the manual argument.
-+ */
-+#define SNDRV_SB_CSP_IOCTL_LOAD_CODE \
-+ _IOC(_IOC_WRITE, 'H', 0x11, sizeof(struct snd_sb_csp_microcode))
-+/* unload microcode from CSP */
-+#define SNDRV_SB_CSP_IOCTL_UNLOAD_CODE _IO('H', 0x12)
-+/* start CSP */
-+#define SNDRV_SB_CSP_IOCTL_START _IOW('H', 0x13, struct snd_sb_csp_start)
-+/* stop CSP */
-+#define SNDRV_SB_CSP_IOCTL_STOP _IO('H', 0x14)
-+/* pause CSP and DMA transfer */
-+#define SNDRV_SB_CSP_IOCTL_PAUSE _IO('H', 0x15)
-+/* restart CSP and DMA transfer */
-+#define SNDRV_SB_CSP_IOCTL_RESTART _IO('H', 0x16)
-+
-+
-+#endif /* _UAPI__SOUND_SB16_CSP_H */
-diff --git a/include/sound/uapi/sscape_ioctl.h b/include/sound/uapi/sscape_ioctl.h
-new file mode 100644
-index 00000000..c6653ebf
---- /dev/null
-+++ b/include/sound/uapi/sscape_ioctl.h
-@@ -0,0 +1,21 @@
-+#ifndef SSCAPE_IOCTL_H
-+#define SSCAPE_IOCTL_H
-+
-+
-+struct sscape_bootblock
-+{
-+ unsigned char code[256];
-+ unsigned version;
-+};
-+
-+#define SSCAPE_MICROCODE_SIZE 65536
-+
-+struct sscape_microcode
-+{
-+ unsigned char *code;
-+};
-+
-+#define SND_SSCAPE_LOAD_BOOTB _IOWR('P', 100, struct sscape_bootblock)
-+#define SND_SSCAPE_LOAD_MCODE _IOW ('P', 101, struct sscape_microcode)
-+
-+#endif
-diff --git a/include/sound/uapi/tlv.h b/include/sound/uapi/tlv.h
-new file mode 100644
-index 00000000..7d6d65f6
---- /dev/null
-+++ b/include/sound/uapi/tlv.h
-@@ -0,0 +1,117 @@
-+/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-+/*
-+ * 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.
-+ */
-+
-+#ifndef __UAPI_SOUND_TLV_H
-+#define __UAPI_SOUND_TLV_H
-+
-+#define SNDRV_CTL_TLVT_CONTAINER 0 /* one level down - group of TLVs */
-+#define SNDRV_CTL_TLVT_DB_SCALE 1 /* dB scale */
-+#define SNDRV_CTL_TLVT_DB_LINEAR 2 /* linear volume */
-+#define SNDRV_CTL_TLVT_DB_RANGE 3 /* dB range container */
-+#define SNDRV_CTL_TLVT_DB_MINMAX 4 /* dB scale with min/max */
-+#define SNDRV_CTL_TLVT_DB_MINMAX_MUTE 5 /* dB scale with min/max with mute */
-+
-+/*
-+ * channel-mapping TLV items
-+ * TLV length must match with num_channels
-+ */
-+#define SNDRV_CTL_TLVT_CHMAP_FIXED 0x101 /* fixed channel position */
-+#define SNDRV_CTL_TLVT_CHMAP_VAR 0x102 /* channels freely swappable */
-+#define SNDRV_CTL_TLVT_CHMAP_PAIRED 0x103 /* pair-wise swappable */
-+
-+/*
-+ * TLV structure is right behind the struct snd_ctl_tlv:
-+ * unsigned int type - see SNDRV_CTL_TLVT_*
-+ * unsigned int length
-+ * .... data aligned to sizeof(unsigned int), use
-+ * block_length = (length + (sizeof(unsigned int) - 1)) &
-+ * ~(sizeof(unsigned int) - 1)) ....
-+ */
-+#define SNDRV_CTL_TLVD_ITEM(type, ...) \
-+ (type), SNDRV_CTL_TLVD_LENGTH(__VA_ARGS__), __VA_ARGS__
-+#define SNDRV_CTL_TLVD_LENGTH(...) \
-+ ((unsigned int)sizeof((const unsigned int[]) { __VA_ARGS__ }))
-+
-+/* Accessor offsets for TLV data items */
-+#define SNDRV_CTL_TLVO_TYPE 0
-+#define SNDRV_CTL_TLVO_LEN 1
-+
-+#define SNDRV_CTL_TLVD_CONTAINER_ITEM(...) \
-+ SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_CONTAINER, __VA_ARGS__)
-+#define SNDRV_CTL_TLVD_DECLARE_CONTAINER(name, ...) \
-+ unsigned int name[] = { \
-+ SNDRV_CTL_TLVD_CONTAINER_ITEM(__VA_ARGS__) \
-+ }
-+
-+#define SNDRV_CTL_TLVD_DB_SCALE_MASK 0xffff
-+#define SNDRV_CTL_TLVD_DB_SCALE_MUTE 0x10000
-+#define SNDRV_CTL_TLVD_DB_SCALE_ITEM(min, step, mute) \
-+ SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_SCALE, \
-+ (min), \
-+ ((step) & SNDRV_CTL_TLVD_DB_SCALE_MASK) | \
-+ ((mute) ? SNDRV_CTL_TLVD_DB_SCALE_MUTE : 0))
-+#define SNDRV_CTL_TLVD_DECLARE_DB_SCALE(name, min, step, mute) \
-+ unsigned int name[] = { \
-+ SNDRV_CTL_TLVD_DB_SCALE_ITEM(min, step, mute) \
-+ }
-+
-+/* Accessor offsets for min, mute and step items in dB scale type TLV */
-+#define SNDRV_CTL_TLVO_DB_SCALE_MIN 2
-+#define SNDRV_CTL_TLVO_DB_SCALE_MUTE_AND_STEP 3
-+
-+/* dB scale specified with min/max values instead of step */
-+#define SNDRV_CTL_TLVD_DB_MINMAX_ITEM(min_dB, max_dB) \
-+ SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_MINMAX, (min_dB), (max_dB))
-+#define SNDRV_CTL_TLVD_DB_MINMAX_MUTE_ITEM(min_dB, max_dB) \
-+ SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_MINMAX_MUTE, (min_dB), (max_dB))
-+#define SNDRV_CTL_TLVD_DECLARE_DB_MINMAX(name, min_dB, max_dB) \
-+ unsigned int name[] = { \
-+ SNDRV_CTL_TLVD_DB_MINMAX_ITEM(min_dB, max_dB) \
-+ }
-+#define SNDRV_CTL_TLVD_DECLARE_DB_MINMAX_MUTE(name, min_dB, max_dB) \
-+ unsigned int name[] = { \
-+ SNDRV_CTL_TLVD_DB_MINMAX_MUTE_ITEM(min_dB, max_dB) \
-+ }
-+
-+/* Accessor offsets for min, max items in db-minmax types of TLV. */
-+#define SNDRV_CTL_TLVO_DB_MINMAX_MIN 2
-+#define SNDRV_CTL_TLVO_DB_MINMAX_MAX 3
-+
-+/* linear volume between min_dB and max_dB (.01dB unit) */
-+#define SNDRV_CTL_TLVD_DB_LINEAR_ITEM(min_dB, max_dB) \
-+ SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_LINEAR, (min_dB), (max_dB))
-+#define SNDRV_CTL_TLVD_DECLARE_DB_LINEAR(name, min_dB, max_dB) \
-+ unsigned int name[] = { \
-+ SNDRV_CTL_TLVD_DB_LINEAR_ITEM(min_dB, max_dB) \
-+ }
-+
-+/* Accessor offsets for min, max items in db-linear type of TLV. */
-+#define SNDRV_CTL_TLVO_DB_LINEAR_MIN 2
-+#define SNDRV_CTL_TLVO_DB_LINEAR_MAX 3
-+
-+/* dB range container:
-+ * Items in dB range container must be ordered by their values and by their
-+ * dB values. This implies that larger values must correspond with larger
-+ * dB values (which is also required for all other mixer controls).
-+ */
-+/* Each item is: <min> <max> <TLV> */
-+#define SNDRV_CTL_TLVD_DB_RANGE_ITEM(...) \
-+ SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_RANGE, __VA_ARGS__)
-+#define SNDRV_CTL_TLVD_DECLARE_DB_RANGE(name, ...) \
-+ unsigned int name[] = { \
-+ SNDRV_CTL_TLVD_DB_RANGE_ITEM(__VA_ARGS__) \
-+ }
-+
-+#define SNDRV_CTL_TLVD_DB_GAIN_MUTE -9999999
-+
-+#endif
-diff --git a/src/topology/tplg_local.h b/src/topology/tplg_local.h
-index 11efce6d..101491a4 100644
---- a/src/topology/tplg_local.h
-+++ b/src/topology/tplg_local.h
-@@ -18,8 +18,7 @@
- #include "list.h"
- #include "topology.h"
-
--#define __packed __attribute__((__packed__))
--
-+#include <sound/type_compat.h>
- #include <sound/asound.h>
- #include <sound/asoc.h>
- #include <sound/tlv.h>
---
-2.20.1
-
diff --git a/meta/recipes-multimedia/alsa/alsa-lib/0001-configure.ac-remove-an-unnecessary-libtool-fix.patch b/meta/recipes-multimedia/alsa/alsa-lib/0001-configure.ac-remove-an-unnecessary-libtool-fix.patch
deleted file mode 100644
index 4db4934fdc..0000000000
--- a/meta/recipes-multimedia/alsa/alsa-lib/0001-configure.ac-remove-an-unnecessary-libtool-fix.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 01cd8cb6d594d7a12c67d21d689ebe0e347469c0 Mon Sep 17 00:00:00 2001
-From: Tanu Kaskinen <tanuk@iki.fi>
-Date: Fri, 20 Dec 2019 09:26:12 +0200
-Subject: [PATCH] configure.ac: remove an unnecessary libtool fix
-
-This code was added in commit 75d393a563efb578c79364a277087c6326267f52
-without explaining why. I assume it was a mistake, since it looks like
-the libtool problem should have gone away a long time ago. The referenced
-wiki page https://wiki.debian.org/RpathIssue says:
-
- Since libtool 1.5.2 (released 2004-01-25), on Linux libtool no
- longer sets RPATH for any directories in the dynamic linker search
- path, so this should no longer be an issue unless upstream used a
- really old version of libtool when creating their distribution
- tarball.
-
-This code caused problems in OpenEmbedded, where the libtool script is
-named "x86_64-oe-linux-libtool" or similar rather than just "libtool",
-so the sed command failed with a file not found error. Rather than
-adapting the code to OpenEmbedded's peculiarities, it seems best to just
-remove the unnecessary code altogether.
-
-Upstream-Status: Submitted [https://github.com/alsa-project/alsa-lib/pull/19]
-Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
----
- configure.ac | 11 -----------
- 1 file changed, 11 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 119ef600..22a4a885 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -764,14 +764,3 @@ test "$build_seq" = "yes" && echo "#include <alsa/seq.h>" >> include/asoundlib.h
- test "$build_seq" = "yes" && echo "#include <alsa/seqmid.h>" >> include/asoundlib.h
- test "$build_seq" = "yes" && echo "#include <alsa/seq_midi_event.h>" >> include/asoundlib.h
- cat "$srcdir"/include/asoundlib-tail.h >> include/asoundlib.h
--
--dnl Taken from https://wiki.debian.org/RpathIssue
--case $host in
-- *-*-linux-gnu)
-- AC_MSG_RESULT([Fixing libtool for -rpath problems.])
-- sed < libtool > libtool-2 \
-- 's/^hardcode_libdir_flag_spec.*$'/'hardcode_libdir_flag_spec=" -D__LIBTOOL_IS_A_FOOL__ "/'
-- mv libtool-2 libtool
-- chmod 755 libtool
-- ;;
--esac
---
-2.20.1
-
diff --git a/meta/recipes-multimedia/alsa/alsa-lib/0001-uapi-Move-typedefs-from-uapi-to-sound.patch b/meta/recipes-multimedia/alsa/alsa-lib/0001-uapi-Move-typedefs-from-uapi-to-sound.patch
deleted file mode 100644
index c35a2c9d7c..0000000000
--- a/meta/recipes-multimedia/alsa/alsa-lib/0001-uapi-Move-typedefs-from-uapi-to-sound.patch
+++ /dev/null
@@ -1,137 +0,0 @@
-From 59792f467b38d6a4c4dffdb30528f7fb03d23d96 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai@suse.de>
-Date: Fri, 20 Dec 2019 17:12:37 +0100
-Subject: [PATCH] uapi: Move typedefs from uapi to sound/*
-
-For keeping uapi/*.h cleaner.
-
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-
-Upstream-Status: Backport
-
-Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
----
- include/sound/emu10k1.h | 9 +++++++++
- include/sound/hdsp.h | 10 ++++++++++
- include/sound/hdspm.h | 8 ++++++++
- include/sound/sb16_csp.h | 4 ++++
- include/sound/uapi/emu10k1.h | 10 ----------
- include/sound/uapi/hdsp.h | 9 ---------
- include/sound/uapi/hdspm.h | 8 --------
- 7 files changed, 31 insertions(+), 27 deletions(-)
-
-diff --git a/include/sound/emu10k1.h b/include/sound/emu10k1.h
-index f06ecee5..0832f95b 100644
---- a/include/sound/emu10k1.h
-+++ b/include/sound/emu10k1.h
-@@ -1,2 +1,11 @@
- #include <alsa/sound/type_compat.h>
- #include <alsa/sound/uapi/emu10k1.h>
-+#ifndef __emu10k1_type_defined
-+#define __emu10k1_type_defined
-+typedef struct snd_emu10k1_fx8010_info emu10k1_fx8010_info_t;
-+typedef struct snd_emu10k1_fx8010_control_gpr emu10k1_fx8010_control_gpr_t;
-+typedef struct snd_emu10k1_fx8010_code emu10k1_fx8010_code_t;
-+typedef struct snd_emu10k1_fx8010_tram emu10k1_fx8010_tram_t;
-+typedef struct snd_emu10k1_fx8010_pcm_rec emu10k1_fx8010_pcm_t;
-+typedef struct emu10k1_ctl_elem_id emu10k1_ctl_elem_id_t;
-+#endif
-diff --git a/include/sound/hdsp.h b/include/sound/hdsp.h
-index 78fb745b..e8f93156 100644
---- a/include/sound/hdsp.h
-+++ b/include/sound/hdsp.h
-@@ -1,2 +1,12 @@
- #include <alsa/sound/type_compat.h>
- #include <alsa/sound/uapi/hdsp.h>
-+#ifndef __hdsp_type_defined
-+#define __hdsp_type_defined
-+typedef enum HDSP_IO_Type HDSP_IO_Type;
-+typedef struct hdsp_peak_rms hdsp_peak_rms_t;
-+typedef struct hdsp_config_info hdsp_config_info_t;
-+typedef struct hdsp_firmware hdsp_firmware_t;
-+typedef struct hdsp_version hdsp_version_t;
-+typedef struct hdsp_mixer hdsp_mixer_t;
-+typedef struct hdsp_9632_aeb hdsp_9632_aeb_t;
-+#endif
-diff --git a/include/sound/hdspm.h b/include/sound/hdspm.h
-index af6d19ed..d9095d9f 100644
---- a/include/sound/hdspm.h
-+++ b/include/sound/hdspm.h
-@@ -1,2 +1,10 @@
- #include <alsa/sound/type_compat.h>
- #include <alsa/sound/uapi/hdspm.h>
-+#ifndef __hdspm_type_defined
-+#define __hdspm_type_defined
-+typedef struct hdspm_peak_rms hdspm_peak_rms_t;
-+typedef struct hdspm_config_info hdspm_config_info_t;
-+typedef struct hdspm_version hdspm_version_t;
-+typedef struct hdspm_channelfader snd_hdspm_channelfader_t;
-+typedef struct hdspm_mixer hdspm_mixer_t;
-+#endif
-diff --git a/include/sound/sb16_csp.h b/include/sound/sb16_csp.h
-index 24121fcb..fd02bc56 100644
---- a/include/sound/sb16_csp.h
-+++ b/include/sound/sb16_csp.h
-@@ -1 +1,5 @@
- #include <alsa/sound/uapi/sb16_csp.h>
-+#ifndef __sb16_csp_type_defined
-+#define __sb16_csp_type_defined
-+typedef struct snd_sb_csp_microcode snd_sb_csp_microcode_t;
-+#endif
-diff --git a/include/sound/uapi/emu10k1.h b/include/sound/uapi/emu10k1.h
-index c1150e4d..6bcd76f6 100644
---- a/include/sound/uapi/emu10k1.h
-+++ b/include/sound/uapi/emu10k1.h
-@@ -382,14 +382,4 @@ struct snd_emu10k1_fx8010_pcm_rec {
- #define SNDRV_EMU10K1_IOCTL_SINGLE_STEP _IOW ('H', 0x83, int)
- #define SNDRV_EMU10K1_IOCTL_DBG_READ _IOR ('H', 0x84, int)
-
--#ifndef __KERNEL__
--/* typedefs for compatibility to user-space */
--typedef struct snd_emu10k1_fx8010_info emu10k1_fx8010_info_t;
--typedef struct snd_emu10k1_fx8010_control_gpr emu10k1_fx8010_control_gpr_t;
--typedef struct snd_emu10k1_fx8010_code emu10k1_fx8010_code_t;
--typedef struct snd_emu10k1_fx8010_tram emu10k1_fx8010_tram_t;
--typedef struct snd_emu10k1_fx8010_pcm_rec emu10k1_fx8010_pcm_t;
--typedef struct emu10k1_ctl_elem_id emu10k1_ctl_elem_id_t;
--#endif
--
- #endif /* _UAPI__SOUND_EMU10K1_H */
-diff --git a/include/sound/uapi/hdsp.h b/include/sound/uapi/hdsp.h
-index 88c92a3f..7ac2d3f2 100644
---- a/include/sound/uapi/hdsp.h
-+++ b/include/sound/uapi/hdsp.h
-@@ -97,13 +97,4 @@ struct hdsp_9632_aeb {
-
- #define SNDRV_HDSP_IOCTL_GET_9632_AEB _IOR('H', 0x45, struct hdsp_9632_aeb)
-
--/* typedefs for compatibility to user-space */
--typedef enum HDSP_IO_Type HDSP_IO_Type;
--typedef struct hdsp_peak_rms hdsp_peak_rms_t;
--typedef struct hdsp_config_info hdsp_config_info_t;
--typedef struct hdsp_firmware hdsp_firmware_t;
--typedef struct hdsp_version hdsp_version_t;
--typedef struct hdsp_mixer hdsp_mixer_t;
--typedef struct hdsp_9632_aeb hdsp_9632_aeb_t;
--
- #endif /* __SOUND_HDSP_H */
-diff --git a/include/sound/uapi/hdspm.h b/include/sound/uapi/hdspm.h
-index 2d91f90e..3fbfd9dc 100644
---- a/include/sound/uapi/hdspm.h
-+++ b/include/sound/uapi/hdspm.h
-@@ -219,12 +219,4 @@ struct hdspm_mixer_ioctl {
- /* use indirect access due to the limit of ioctl bit size */
- #define SNDRV_HDSPM_IOCTL_GET_MIXER _IOR('H', 0x44, struct hdspm_mixer_ioctl)
-
--/* typedefs for compatibility to user-space */
--typedef struct hdspm_peak_rms hdspm_peak_rms_t;
--typedef struct hdspm_config_info hdspm_config_info_t;
--typedef struct hdspm_version hdspm_version_t;
--typedef struct hdspm_channelfader snd_hdspm_channelfader_t;
--typedef struct hdspm_mixer hdspm_mixer_t;
--
--
- #endif
---
-2.20.1
-
diff --git a/meta/recipes-multimedia/alsa/alsa-lib/0001-ucm-Use-strncmp-to-avoid-access-out-of-boundary.patch b/meta/recipes-multimedia/alsa/alsa-lib/0001-ucm-Use-strncmp-to-avoid-access-out-of-boundary.patch
deleted file mode 100644
index 96dcd8abac..0000000000
--- a/meta/recipes-multimedia/alsa/alsa-lib/0001-ucm-Use-strncmp-to-avoid-access-out-of-boundary.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 4b6fe372c68d1ff50e7c161cffadeb298734f49c Mon Sep 17 00:00:00 2001
-From: paulhsia <paulhsia@chromium.org>
-Date: Sat, 30 Nov 2019 03:35:30 +0800
-Subject: [PATCH 1/5] ucm: Use strncmp to avoid access-out-of-boundary
-
-If the length of the identifier is less than the length of the prefix,
-access-out-of-boundary will occur in memcmp().
-
-Signed-off-by: paulhsia <paulhsia@chromium.org>
-Signed-off-by: Jaroslav Kysela <perex@perex.cz>
-
-Upstream-Status: Backport
-Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
----
- src/ucm/main.c | 8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/src/ucm/main.c b/src/ucm/main.c
-index b0b6ffb3..252e50d9 100644
---- a/src/ucm/main.c
-+++ b/src/ucm/main.c
-@@ -61,11 +61,13 @@ static int check_identifier(const char *identifier, const char *prefix)
- {
- int len;
-
-- if (strcmp(identifier, prefix) == 0)
-- return 1;
- len = strlen(prefix);
-- if (memcmp(identifier, prefix, len) == 0 && identifier[len] == '/')
-+ if (strncmp(identifier, prefix, len) != 0)
-+ return 0;
-+
-+ if (identifier[len] == 0 || identifier[len] == '/')
- return 1;
-+
- return 0;
- }
-
---
-2.20.1
-
diff --git a/meta/recipes-multimedia/alsa/alsa-lib/0002-ucm-return-always-at-least-NULL-if-no-list-is-availa.patch b/meta/recipes-multimedia/alsa/alsa-lib/0002-ucm-return-always-at-least-NULL-if-no-list-is-availa.patch
deleted file mode 100644
index 42973fb6d0..0000000000
--- a/meta/recipes-multimedia/alsa/alsa-lib/0002-ucm-return-always-at-least-NULL-if-no-list-is-availa.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 58f9dc9bd12a51efa12dbc67e200f4d85cd3da07 Mon Sep 17 00:00:00 2001
-From: Jaroslav Kysela <perex@perex.cz>
-Date: Fri, 29 Nov 2019 22:28:26 +0100
-Subject: [PATCH 2/5] ucm: return always at least NULL if no list is available
- in snd_use_case_get_list()
-
-Signed-off-by: Jaroslav Kysela <perex@perex.cz>
-
-Upstream-Status: Backport
-Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
----
- src/ucm/main.c | 8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/src/ucm/main.c b/src/ucm/main.c
-index 252e50d9..b80db65f 100644
---- a/src/ucm/main.c
-+++ b/src/ucm/main.c
-@@ -1160,8 +1160,10 @@ static int get_supcon_device_list(snd_use_case_mgr_t *uc_mgr,
-
- modifier = find_modifier(uc_mgr, verb, name, 0);
- if (modifier) {
-- if (modifier->dev_list.type != type)
-+ if (modifier->dev_list.type != type) {
-+ *list = NULL;
- return 0;
-+ }
- return get_list(&modifier->dev_list.list, list,
- struct dev_list_node, list,
- name);
-@@ -1169,8 +1171,10 @@ static int get_supcon_device_list(snd_use_case_mgr_t *uc_mgr,
-
- device = find_device(uc_mgr, verb, name, 0);
- if (device) {
-- if (device->dev_list.type != type)
-+ if (device->dev_list.type != type) {
-+ *list = NULL;
- return 0;
-+ }
- return get_list(&device->dev_list.list, list,
- struct dev_list_node, list,
- name);
---
-2.20.1
-
diff --git a/meta/recipes-multimedia/alsa/alsa-lib/0003-namehint-correct-the-args-check.patch b/meta/recipes-multimedia/alsa/alsa-lib/0003-namehint-correct-the-args-check.patch
deleted file mode 100644
index 82f8b2bd2a..0000000000
--- a/meta/recipes-multimedia/alsa/alsa-lib/0003-namehint-correct-the-args-check.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 10f3401ce356a675e2440993457ee7c8c7e9fcf8 Mon Sep 17 00:00:00 2001
-From: Jaroslav Kysela <perex@perex.cz>
-Date: Sun, 1 Dec 2019 14:26:40 +0100
-Subject: [PATCH 3/5] namehint: correct the @args check
-
-BugLink: https://github.com/alsa-project/alsa-plugins/issues/3
-Signed-off-by: Jaroslav Kysela <perex@perex.cz>
-
-Upstream-Status: Backport
-Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
----
- src/control/namehint.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/src/control/namehint.c b/src/control/namehint.c
-index 808df6b5..4927ef97 100644
---- a/src/control/namehint.c
-+++ b/src/control/namehint.c
-@@ -348,6 +348,12 @@ static int try_config(snd_config_t *config,
- goto __cleanup;
- if (snd_config_search(res, "@args", &cfg) >= 0) {
- snd_config_for_each(i, next, cfg) {
-+ /* skip the argument list */
-+ snd_config_get_id(snd_config_iterator_entry(i), &str);
-+ while (*str && *str >= '0' && *str <= '9') str++;
-+ if (*str == '\0')
-+ continue;
-+ /* the argument definition must have the default */
- if (snd_config_search(snd_config_iterator_entry(i),
- "default", NULL) < 0) {
- err = -EINVAL;
---
-2.20.1
-
diff --git a/meta/recipes-multimedia/alsa/alsa-lib/0004-namehint-improve-the-previous-patch-check-the-return.patch b/meta/recipes-multimedia/alsa/alsa-lib/0004-namehint-improve-the-previous-patch-check-the-return.patch
deleted file mode 100644
index 98192f6e53..0000000000
--- a/meta/recipes-multimedia/alsa/alsa-lib/0004-namehint-improve-the-previous-patch-check-the-return.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 1fa6664d5f0cc7d21edceba6695a4c28543c2cab Mon Sep 17 00:00:00 2001
-From: Jaroslav Kysela <perex@perex.cz>
-Date: Sun, 1 Dec 2019 14:30:54 +0100
-Subject: [PATCH 4/5] namehint: improve the previous patch (check the returned
- value)
-
-Signed-off-by: Jaroslav Kysela <perex@perex.cz>
-
-Upstream-Status: Backport
-Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
----
- src/control/namehint.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/control/namehint.c b/src/control/namehint.c
-index 4927ef97..60c48ae3 100644
---- a/src/control/namehint.c
-+++ b/src/control/namehint.c
-@@ -349,7 +349,8 @@ static int try_config(snd_config_t *config,
- if (snd_config_search(res, "@args", &cfg) >= 0) {
- snd_config_for_each(i, next, cfg) {
- /* skip the argument list */
-- snd_config_get_id(snd_config_iterator_entry(i), &str);
-+ if (snd_config_get_id(snd_config_iterator_entry(i), &str) < 0)
-+ continue;
- while (*str && *str >= '0' && *str <= '9') str++;
- if (*str == '\0')
- continue;
---
-2.20.1
-
diff --git a/meta/recipes-multimedia/alsa/alsa-lib/0005-ucm-Do-not-fail-to-parse-configs-on-cards-with-an-em.patch b/meta/recipes-multimedia/alsa/alsa-lib/0005-ucm-Do-not-fail-to-parse-configs-on-cards-with-an-em.patch
deleted file mode 100644
index cbc0a4ceab..0000000000
--- a/meta/recipes-multimedia/alsa/alsa-lib/0005-ucm-Do-not-fail-to-parse-configs-on-cards-with-an-em.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From 976f8f62238f0d837584adc7c31035bdb29b6d6f Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Tue, 3 Dec 2019 18:27:39 +0100
-Subject: [PATCH 5/5] ucm: Do not fail to parse configs on cards with an empty
- CardComponents lists
-
-Since the UCM profiles for all Bay- and Cherry-Trail SST cards have been
-moved over to UCM2, parsing them fails with:
-
-ALSA lib ucm_subs.c:220:(uc_mgr_get_substituted_value) variable '${CardComponents}' is not defined in this context!
-
-This completely breaks audio support on all Bay- and Cherry-Trail devices.
-
-This is caused by these non-SOF ASoC using cards having an empty
-CardComponents list. Which in itself is fine, but is rejected by
-the ucm_subs.c code. This commit changes the ucm_subs code to accept
-an empty string as a valid value for CardComponents restoring audio
-functionality on these boards.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Signed-off-by: Jaroslav Kysela <perex@perex.cz>
-
-Upstream-Status: Backport
-Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
----
- src/ucm/ucm_subs.c | 20 ++++++++++++--------
- 1 file changed, 12 insertions(+), 8 deletions(-)
-
-diff --git a/src/ucm/ucm_subs.c b/src/ucm/ucm_subs.c
-index 00afa9e3..90e395f0 100644
---- a/src/ucm/ucm_subs.c
-+++ b/src/ucm/ucm_subs.c
-@@ -25,6 +25,7 @@
- */
-
- #include "ucm_local.h"
-+#include <stdbool.h>
- #include <sys/stat.h>
- #include <limits.h>
-
-@@ -145,10 +146,11 @@ static char *rval_sysfs(snd_use_case_mgr_t *uc_mgr ATTRIBUTE_UNUSED, const char
- return strdup(path);
- }
-
--#define MATCH_VARIABLE(name, id, fcn) \
-+#define MATCH_VARIABLE(name, id, fcn, empty_ok) \
- if (strncmp((name), (id), sizeof(id) - 1) == 0) { \
- rval = fcn(uc_mgr); \
- idsize = sizeof(id) - 1; \
-+ allow_empty = (empty_ok); \
- goto __rval; \
- }
-
-@@ -189,12 +191,14 @@ int uc_mgr_get_substituted_value(snd_use_case_mgr_t *uc_mgr,
-
- while (*value) {
- if (*value == '$' && *(value+1) == '{') {
-- MATCH_VARIABLE(value, "${ConfName}", rval_conf_name);
-- MATCH_VARIABLE(value, "${CardId}", rval_card_id);
-- MATCH_VARIABLE(value, "${CardDriver}", rval_card_driver);
-- MATCH_VARIABLE(value, "${CardName}", rval_card_name);
-- MATCH_VARIABLE(value, "${CardLongName}", rval_card_longname);
-- MATCH_VARIABLE(value, "${CardComponents}", rval_card_components);
-+ bool allow_empty = false;
-+
-+ MATCH_VARIABLE(value, "${ConfName}", rval_conf_name, false);
-+ MATCH_VARIABLE(value, "${CardId}", rval_card_id, false);
-+ MATCH_VARIABLE(value, "${CardDriver}", rval_card_driver, false);
-+ MATCH_VARIABLE(value, "${CardName}", rval_card_name, false);
-+ MATCH_VARIABLE(value, "${CardLongName}", rval_card_longname, false);
-+ MATCH_VARIABLE(value, "${CardComponents}", rval_card_components, true);
- MATCH_VARIABLE2(value, "${env:", rval_env);
- MATCH_VARIABLE2(value, "${sys:", rval_sysfs);
- err = -EINVAL;
-@@ -208,7 +212,7 @@ int uc_mgr_get_substituted_value(snd_use_case_mgr_t *uc_mgr,
- }
- goto __error;
- __rval:
-- if (rval == NULL || rval[0] == '\0') {
-+ if (rval == NULL || (!allow_empty && rval[0] == '\0')) {
- free(rval);
- strncpy(r, value, idsize);
- r[idsize] = '\0';
---
-2.20.1
-
diff --git a/meta/recipes-multimedia/alsa/alsa-lib_1.2.1.2.bb b/meta/recipes-multimedia/alsa/alsa-lib_1.2.3.2.bb
index e2bc61fbe9..1ed1a7b9a3 100644
--- a/meta/recipes-multimedia/alsa/alsa-lib_1.2.1.2.bb
+++ b/meta/recipes-multimedia/alsa/alsa-lib_1.2.3.2.bb
@@ -7,18 +7,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \
file://src/socket.c;md5=285675b45e83f571c6a957fe4ab79c93;beginline=9;endline=24 \
"
-SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2 \
- file://0001-configure.ac-remove-an-unnecessary-libtool-fix.patch \
- file://0001-ucm-Use-strncmp-to-avoid-access-out-of-boundary.patch \
- file://0002-ucm-return-always-at-least-NULL-if-no-list-is-availa.patch \
- file://0003-namehint-correct-the-args-check.patch \
- file://0004-namehint-improve-the-previous-patch-check-the-return.patch \
- file://0005-ucm-Do-not-fail-to-parse-configs-on-cards-with-an-em.patch \
- file://0001-Fix-alsa-sound-.h-for-external-programs.patch \
- file://0001-uapi-Move-typedefs-from-uapi-to-sound.patch \
- "
-SRC_URI[md5sum] = "82ddd3698469beec147e4f4a67134ea0"
-SRC_URI[sha256sum] = "958e260e3673f1f6ff6b2d2c0df3fc2e469bea5b2957163ce96ce17f23e87943"
+SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2"
+SRC_URI[sha256sum] = "e81fc5b7afcaee8c9fd7f64a1e3043e88d62e9ad2c4cff55f578df6b0a9abe15"
inherit autotools pkgconfig
diff --git a/meta/recipes-multimedia/alsa/alsa-plugins_1.2.1.bb b/meta/recipes-multimedia/alsa/alsa-plugins_1.2.2.bb
index 9882e12763..e8402a6fcb 100644
--- a/meta/recipes-multimedia/alsa/alsa-plugins_1.2.1.bb
+++ b/meta/recipes-multimedia/alsa/alsa-plugins_1.2.2.bb
@@ -13,16 +13,15 @@ SECTION = "multimedia"
# license for libsamplerate, the samplerate plugin may be used under the terms
# of LGPLv2.1 like the rest of the plugins.
LICENSE = "LGPLv2.1 & GPLv2+"
-LIC_FILES_CHKSUM = "\
- file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \
- file://COPYING.GPL;md5=59530bdf33659b29e73d4adb9f9f6552 \
- file://m4/attributes.m4;endline=33;md5=b25958da44c02231e3641f1bccef53eb \
- file://rate/rate_samplerate.c;endline=35;md5=fd77bce85f4a338c0e8ab18430b69fae \
-"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \
+ file://COPYING.GPL;md5=59530bdf33659b29e73d4adb9f9f6552 \
+ file://m4/attributes.m4;endline=33;md5=bb8c6b2a67ac15156961e242fec33e50 \
+ file://rate/rate_samplerate.c;endline=35;md5=fd77bce85f4a338c0e8ab18430b69fae \
+ "
SRC_URI = "https://www.alsa-project.org/files/pub/plugins/${BP}.tar.bz2"
-SRC_URI[md5sum] = "5b11cd3ec92e5f9190ec378565b529e8"
-SRC_URI[sha256sum] = "4d94de7ad41734b8604a652521200bb6554fcf0c2c00fdbd302b1710d76548da"
+SRC_URI[md5sum] = "8455e3c6fbc47f62f070afabc14ba575"
+SRC_URI[sha256sum] = "1c0f06450c928d711719686c9dbece2d480184f36fab11b8f0534cb7b41e337d"
DEPENDS += "alsa-lib"
@@ -52,7 +51,7 @@ FILES_${PN} = ""
ALLOW_EMPTY_${PN} = "1"
do_install_append() {
- rm ${D}${libdir}/alsa-lib/*.la
+ rm -f ${D}${libdir}/alsa-lib/*.la
if [ "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'yes', 'no', d)}" = "yes" ]; then
# We use the example as is. Upstream installs the file under
@@ -167,7 +166,7 @@ FILES_${PN}-pulseaudio-conf += "\
"
RDEPENDS_${PN}-pulseaudio-conf += "\
- libasound-module-conf-pulse \
- libasound-module-ctl-pulse \
- libasound-module-pcm-pulse \
+ ${MLPREFIX}libasound-module-conf-pulse \
+ ${MLPREFIX}libasound-module-ctl-pulse \
+ ${MLPREFIX}libasound-module-pcm-pulse \
"
diff --git a/meta/recipes-multimedia/alsa/alsa-tools_1.1.7.bb b/meta/recipes-multimedia/alsa/alsa-tools_1.2.2.bb
index c1f4acdb03..0838be8798 100644
--- a/meta/recipes-multimedia/alsa/alsa-tools_1.1.7.bb
+++ b/meta/recipes-multimedia/alsa/alsa-tools_1.2.2.bb
@@ -11,8 +11,8 @@ LIC_FILES_CHKSUM = "file://hdsploader/COPYING;md5=59530bdf33659b29e73d4adb9f9f65
SRC_URI = "https://www.alsa-project.org/files/pub/tools/${BP}.tar.bz2"
-SRC_URI[md5sum] = "475bdf6457bcf55c8c895d653ee56a54"
-SRC_URI[sha256sum] = "a0243328a8f6f691a3055c484fd8d3326393096325e93743b246029d327c4ef6"
+SRC_URI[md5sum] = "4e6187d2c3a8c73a9d75d66a72faed27"
+SRC_URI[sha256sum] = "bfd3c7aae1289269605d3da02279159b10e3dabdd31e658cbceaa30170957349"
inherit autotools-brokensep pkgconfig
# brokensep as as10k1 (and probably more) fail out of tree
diff --git a/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.1.bb b/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.3.bb
index add1f309ec..3575c460e4 100644
--- a/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.1.bb
+++ b/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.3.bb
@@ -4,17 +4,14 @@ BUGTRACKER = "https://alsa-project.org/wiki/Bug_Tracking"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=20d74d74db9741697903372ad001d3b4"
-# The tarball doesn't have any toplevel directory. The subdir option tells
-# Bitbake to unpack the archive to the correct place.
-SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2;subdir=${BP}"
-SRC_URI[md5sum] = "7fdf5fff3f1e0603456e719f6033e922"
-SRC_URI[sha256sum] = "354a43f4031c98bef1349ac722d83b2603ef439f81a1ab1eba8814c28243a9b2"
+SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2"
+SRC_URI[sha256sum] = "833f99b2cbda34e0cfef867ef1d2e6a74fe276bb7fc525a573be32077f629dff"
inherit allarch
do_install() {
- install -d ${D}/usr/share/alsa
- cp -r ${S}/topology ${D}/usr/share/alsa
+ install -d "${D}${datadir}/alsa"
+ cp -r "${S}/topology" "${D}${datadir}/alsa"
}
PACKAGES = "${PN}"
diff --git a/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.1.2.bb b/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.1.2.bb
deleted file mode 100644
index 469d1f7a95..0000000000
--- a/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.1.2.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "ALSA Use Case Manager configuration"
-HOMEPAGE = "https://alsa-project.org"
-BUGTRACKER = "https://alsa-project.org/wiki/Bug_Tracking"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=20d74d74db9741697903372ad001d3b4"
-
-# The tarball doesn't have any toplevel directory. The subdir option tells
-# Bitbake to unpack the archive to the correct place.
-SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2;subdir=${BP}"
-SRC_URI[md5sum] = "b7fa43cfd79df978184a6333766d2a50"
-SRC_URI[sha256sum] = "ea8a86875f4cf430d49a662a04a6d6c606c5c9d67e54cb944c4d77b24554062f"
-
-inherit allarch
-
-do_install() {
- install -d ${D}/usr/share/alsa
- cp -r ${S}/ucm ${D}/usr/share/alsa
- cp -r ${S}/ucm2 ${D}/usr/share/alsa
-}
-
-PACKAGES = "${PN}"
-
-FILES_${PN} = "*"
diff --git a/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.3.bb b/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.3.bb
new file mode 100644
index 0000000000..7be0df8856
--- /dev/null
+++ b/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.3.bb
@@ -0,0 +1,20 @@
+SUMMARY = "ALSA Use Case Manager configuration"
+HOMEPAGE = "https://alsa-project.org"
+BUGTRACKER = "https://alsa-project.org/wiki/Bug_Tracking"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=20d74d74db9741697903372ad001d3b4"
+
+SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2"
+SRC_URI[sha256sum] = "1bc24da04bb27a75e323c9f0fb03e44705b6bb8a8baf255b94b41d457d590d00"
+
+inherit allarch
+
+do_install() {
+ install -d "${D}${datadir}/alsa"
+ cp -r "${S}/ucm" "${D}${datadir}/alsa"
+ cp -r "${S}/ucm2" "${D}${datadir}/alsa"
+}
+
+PACKAGES = "${PN}"
+
+FILES_${PN} = "*"
diff --git a/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.1.bb b/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.3.bb
index fef79d9c9c..048fef68a5 100644
--- a/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.1.bb
+++ b/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.3.bb
@@ -1,4 +1,4 @@
-require alsa-utils_${PV}.bb
+require alsa-utils.inc
SUMMARY = "Shell scripts that show help info and create ALSA configuration files"
PROVIDES = "alsa-utils-alsaconf"
diff --git a/meta/recipes-multimedia/alsa/alsa-utils_1.2.1.bb b/meta/recipes-multimedia/alsa/alsa-utils.inc
index 9144af628a..b523a5a832 100644
--- a/meta/recipes-multimedia/alsa/alsa-utils_1.2.1.bb
+++ b/meta/recipes-multimedia/alsa/alsa-utils.inc
@@ -21,8 +21,7 @@ PACKAGECONFIG[manpages] = "--enable-xmlto, --disable-xmlto, xmlto-native docbook
# alsa-utils specified in SRC_URI due to alsa-utils-scripts recipe
SRC_URI = "https://www.alsa-project.org/files/pub/utils/alsa-utils-${PV}.tar.bz2"
-SRC_URI[md5sum] = "c4628bae7632937eac2de4cf2a3de82e"
-SRC_URI[sha256sum] = "0b110ba71ef41d3009db1bc4dcae0cf79efb99cb5426fa19d0312470560a2c0d"
+SRC_URI[sha256sum] = "ff19ae48c22938de7a491bdb39db74a2eee2546013f39bf1a86185e426f921aa"
# On build machines with python-docutils (not python3-docutils !!) installed
# rst2man (not rst2man.py) is detected and compile fails with
diff --git a/meta/recipes-multimedia/alsa/alsa-utils_1.2.3.bb b/meta/recipes-multimedia/alsa/alsa-utils_1.2.3.bb
new file mode 100644
index 0000000000..3430288da4
--- /dev/null
+++ b/meta/recipes-multimedia/alsa/alsa-utils_1.2.3.bb
@@ -0,0 +1,2 @@
+require alsa-utils.inc
+
diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg_4.2.2.bb b/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.1.bb
index 20a8249b02..517dac7f05 100644
--- a/meta/recipes-multimedia/ffmpeg/ffmpeg_4.2.2.bb
+++ b/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.1.bb
@@ -26,8 +26,7 @@ LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz \
file://mips64_cpu_detection.patch \
"
-SRC_URI[md5sum] = "348956fc2faa57a2f79bbb84ded9fbc3"
-SRC_URI[sha256sum] = "cb754255ab0ee2ea5f66f8850e1bd6ad5cac1cd855d0a2f4990fb8c668b0d29c"
+SRC_URI[sha256sum] = "ad009240d46e307b4e03a213a0f49c11b650e445b1f8be0dda2a9212b34d2ffb"
# Build fails when thumb is enabled: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7717
ARM_INSTRUCTION_SET_armv4 = "arm"
@@ -58,7 +57,9 @@ PACKAGECONFIG[avresample] = "--enable-avresample,--disable-avresample"
# features to support
PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
+PACKAGECONFIG[altivec] = "--enable-altivec,--disable-altivec,"
PACKAGECONFIG[bzlib] = "--enable-bzlib,--disable-bzlib,bzip2"
+PACKAGECONFIG[fdk-aac] = "--enable-libfdk-aac --enable-nonfree,--disable-libfdk-aac,fdk-aac"
PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl"
PACKAGECONFIG[gsm] = "--enable-libgsm,--disable-libgsm,libgsm"
PACKAGECONFIG[jack] = "--enable-indev=jack,--disable-indev=jack,jack"
diff --git a/meta/recipes-multimedia/gstreamer/gst-examples_1.16.0.bb b/meta/recipes-multimedia/gstreamer/gst-examples_1.16.0.bb
index cc7a7e78e2..e23d23d9ca 100644
--- a/meta/recipes-multimedia/gstreamer/gst-examples_1.16.0.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-examples_1.16.0.bb
@@ -15,6 +15,7 @@ S = "${WORKDIR}/git"
inherit meson pkgconfig features_check
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)"
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
diff --git a/meta/recipes-multimedia/gstreamer/gst-validate_1.16.1.bb b/meta/recipes-multimedia/gstreamer/gst-validate_1.16.2.bb
index 7d602eabc6..35492fe861 100644
--- a/meta/recipes-multimedia/gstreamer/gst-validate_1.16.1.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-validate_1.16.2.bb
@@ -9,8 +9,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343"
SRC_URI = "https://gstreamer.freedesktop.org/src/${BPN}/${BP}.tar.xz \
file://0001-connect-has-a-different-signature-on-musl.patch \
"
-SRC_URI[md5sum] = "793e75f4717f718ad204c554d577b160"
-SRC_URI[sha256sum] = "7f079b9b2a127604b98e297037dc8847ef50f4ce2b508aa2df0cac5b77562899"
+SRC_URI[md5sum] = "688f42c52d62e8c5e506df911553fb2c"
+SRC_URI[sha256sum] = "4861ccb9326200e74d98007e316b387d48dd49f072e0b78cb9d3303fdecfeeca"
DEPENDS = "json-glib glib-2.0 glib-2.0-native gstreamer1.0 gstreamer1.0-plugins-base"
RRECOMMENDS_${PN} = "git"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.2.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.2.bb
index 7a227fed51..99176b2571 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.2.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.2.bb
@@ -75,6 +75,7 @@ PACKAGECONFIG[srtp] = "-Dsrtp=enabled,-Dsrtp=disabled,libsrtp"
PACKAGECONFIG[tinyalsa] = "-Dtinyalsa=enabled,-Dtinyalsa=disabled,tinyalsa"
PACKAGECONFIG[ttml] = "-Dttml=enabled,-Dttml=disabled,libxml2 pango cairo"
PACKAGECONFIG[uvch264] = "-Duvch264=enabled,-Duvch264=disabled,libusb1 libgudev"
+PACKAGECONFIG[vdpau] = "-Dvdpau=enabled,-Dvdpau=disabled,libvdpau"
PACKAGECONFIG[voaacenc] = "-Dvoaacenc=enabled,-Dvoaacenc=disabled,vo-aacenc"
PACKAGECONFIG[voamrwbenc] = "-Dvoamrwbenc=enabled,-Dvoamrwbenc=disabled,vo-amrwbenc"
PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled,vulkan-loader"
@@ -88,7 +89,7 @@ PACKAGECONFIG[zbar] = "-Dzbar=enabled,-Dzbar=disabled,zbar"
# aom androidmedia applemedia bs2b chromaprint d3dvideosink
# directsound dts fdkaac gme gsm iq kate ladspa lv2 mpeg2enc
# mplex musepack nvdec nvenc ofa openexr openni2 opensles
-# soundtouch spandsp srt teletext vdpau wasapi wildmidi winks
+# soundtouch spandsp srt teletext wasapi wildmidi winks
# winscreencap wpe x265
EXTRA_OEMESON += " \
@@ -127,7 +128,6 @@ EXTRA_OEMESON += " \
-Dspandsp=disabled \
-Dsrt=disabled \
-Dteletext=disabled \
- -Dvdpau=disabled \
-Dwasapi=disabled \
-Dwildmidi=disabled \
-Dwinks=disabled \
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qmlgl-ensure-Qt-defines-GLsync-to-fix-compile-on-som.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qmlgl-ensure-Qt-defines-GLsync-to-fix-compile-on-som.patch
new file mode 100644
index 0000000000..136848763b
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qmlgl-ensure-Qt-defines-GLsync-to-fix-compile-on-som.patch
@@ -0,0 +1,70 @@
+From 3e0d5577444b32579bdf5b69d720a322322ff7bc Mon Sep 17 00:00:00 2001
+From: Milian Wolff <milian.wolff@kdab.com>
+Date: Tue, 26 Nov 2019 15:08:20 +0100
+Subject: [PATCH] qmlgl: ensure Qt defines GLsync to fix compile on some platforms
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+By explictly including QtGui/qopengl.h we force the code path that
+defines GLsync in the Qt-specific way. Without that, some platforms
+failed to compile the qmlgl plugin, since neither Qt nor gstreamer
+defined GLsync then, leading to e.g.:
+
+```
+make[4]: Entering directory '/.../gst-plugins-good-1.16.1/ext/qt'
+ CXX libgstqmlgl_la-qtitem.lo
+In file included from gstqtgl.h:32,
+ from qtitem.h:27,
+ from qtitem.cc:28:
+/.../usr/include/gstreamer-1.0/
+gst/gl/gstglfuncs.h:93:17: error: expected identifier before ‘*’ token
+ ret (GSTGLAPI *name) args;
+ ^
+/.../usr/include/gstreamer-1.0/
+gst/gl/glprototypes/sync.h:27:1: note: in expansion of macro
+‘GST_GL_EXT_FUNCTION’
+ GST_GL_EXT_FUNCTION (GLsync, FenceSync,
+ ^~~~~~~~~~~~~~~~~~~
+```
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Backport [https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/commit/3e0d5577444b32579bdf5b69d720a322322ff7bc]
+---
+ ext/qt/gstqtgl.h | 18 +++++++++++-------
+ 1 file changed, 11 insertions(+), 7 deletions(-)
+
+--- a/ext/qt/gstqtgl.h
++++ b/ext/qt/gstqtgl.h
+@@ -22,14 +22,7 @@
+ #include <QtGui/qtgui-config.h>
+ #endif
+
+-/* qt uses the same trick as us to typedef GLsync on GLES2 but to a different
+- * type which confuses the preprocessor. Instead of trying to reconcile the
+- * two, we instead use the GLsync definition from Qt from above, and ensure
+- * that we don't typedef GLsync in gstglfuncs.h */
+ #include <gst/gl/gstglconfig.h>
+-#undef GST_GL_HAVE_GLSYNC
+-#define GST_GL_HAVE_GLSYNC 1
+-#include <gst/gl/gstglfuncs.h>
+
+ /* The glext.h guard was renamed in 2018, but some software which
+ * includes their own copy of the GL headers (such as qt) might have
+@@ -46,6 +39,17 @@
+ #endif
+ #endif
+
++/* pulls in GLsync, see below */
++#include <QtGui/qopengl.h>
++
++/* qt uses the same trick as us to typedef GLsync on GLES2 but to a different
++ * type which confuses the preprocessor. Instead of trying to reconcile the
++ * two, we instead use the GLsync definition from Qt from above, and ensure
++ * that we don't typedef GLsync in gstglfuncs.h */
++#undef GST_GL_HAVE_GLSYNC
++#define GST_GL_HAVE_GLSYNC 1
++#include <gst/gl/gstglfuncs.h>
++
+ #if defined(QT_OPENGL_ES_2)
+ #include <QtGui/QOpenGLContext>
+ #include <QtGui/QOpenGLFunctions>
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch
new file mode 100644
index 0000000000..3d423154e0
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch
@@ -0,0 +1,56 @@
+From d08234a659bec1fd5c984fedefbeb8192af07839 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 31 Mar 2020 21:23:28 -0700
+Subject: [PATCH] qt: include ext/qt/gstqtgl.h instead of gst/gl/gstglfuncs.h
+
+gst/gl/gstglfuncs.h is included via ext/qt/gstqtgl.h which has logic to
+prefer qt headers definitions for GLsync
+
+This helps in fixing build errors like below
+
+/mnt/b/yoe/build/tmp/work/cortexa7t2hf-neon-vfpv4-yoe-linux-gnueabi/gstreamer1.0-plugins-good/1.16.2-r0/recipe-sysroot/usr/include/QtGui/qopengles2ext.h:24:26: error: conflicting declaration 'typedef struct __GLsync* GLsync'
+ 24 | typedef struct __GLsync *GLsync;
+ | ^~~~~~
+In file included from /mnt/b/yoe/build/tmp/work/cortexa7t2hf-neon-vfpv4-yoe-linux-gnueabi/gstreamer1.0-plugins-good/1.16.2-r0/recipe-sysroot/usr/include/gstreamer-1.0/gst/gl/gstglfuncs.h:84,
+ from ../gst-plugins-good-1.16.2/ext/qt/gstqsgtexture.cc:30:
+/mnt/b/yoe/build/tmp/work/cortexa7t2hf-neon-vfpv4-yoe-linux-gnueabi/gstreamer1.0-plugins-good/1.16.2-r0/recipe-sysroot/usr/include/gstreamer-1.0/gst/gl/glprototypes/gstgl_compat.h:40:18: note: previous declaration as 'typedef void* GLsync
+'
+ 40 | typedef gpointer GLsync;
+ | ^~~~~~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ ext/qt/gstqsgtexture.cc | 2 +-
+ ext/qt/qtwindow.cc | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/ext/qt/gstqsgtexture.cc b/ext/qt/gstqsgtexture.cc
+index 2b314e0..12b15dd 100644
+--- a/ext/qt/gstqsgtexture.cc
++++ b/ext/qt/gstqsgtexture.cc
+@@ -27,7 +27,7 @@
+
+ #include <gst/video/video.h>
+ #include <gst/gl/gl.h>
+-#include <gst/gl/gstglfuncs.h>
++#include <ext/qt/gstqtgl.h>
+ #include "gstqsgtexture.h"
+
+ #define GST_CAT_DEFAULT gst_qsg_texture_debug
+diff --git a/ext/qt/qtwindow.cc b/ext/qt/qtwindow.cc
+index 62d26b6..bf68ebb 100644
+--- a/ext/qt/qtwindow.cc
++++ b/ext/qt/qtwindow.cc
+@@ -25,7 +25,7 @@
+ #include <stdio.h>
+
+ #include <gst/video/video.h>
+-#include <gst/gl/gstglfuncs.h>
++#include <ext/qt/gstqtgl.h>
+ #include "qtwindow.h"
+ #include "gstqsgtexture.h"
+ #include "gstqtglutility.h"
+--
+2.26.0
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.2.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.2.bb
index 8b34111d38..17c9421394 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.2.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.2.bb
@@ -2,6 +2,8 @@ require gstreamer1.0-plugins-common.inc
SRC_URI = " \
https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz \
+ file://0001-qmlgl-ensure-Qt-defines-GLsync-to-fix-compile-on-som.patch \
+ file://0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch \
"
SRC_URI[md5sum] = "bd025f8f14974f94b75ac69a9d1b9c93"
diff --git a/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb b/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb
index 271c2a30a3..2061c280e4 100644
--- a/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb
+++ b/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb
@@ -26,6 +26,8 @@ EXTRA_OECONF += "--disable-doc --disable-Werror"
PROVIDES += "virtual/libomxil"
+CFLAGS += "-fcommon"
+
#
# The .so files under ${libdir}/bellagio are not intended to be versioned and symlinked.
# Make sure they get packaged in the main package.
diff --git a/meta/recipes-multimedia/libpng/libpng_1.6.37.bb b/meta/recipes-multimedia/libpng/libpng_1.6.37.bb
index 8c53d11642..edb2ac6146 100644
--- a/meta/recipes-multimedia/libpng/libpng_1.6.37.bb
+++ b/meta/recipes-multimedia/libpng/libpng_1.6.37.bb
@@ -20,7 +20,7 @@ BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config"
inherit autotools binconfig-disabled pkgconfig
# Work around missing symbols
-EXTRA_OECONF_append_class-target = " ${@bb.utils.contains("TUNE_FEATURES", "neon", "--enable-arm-neon=on", "--enable-arm-neon=off" ,d)}"
+EXTRA_OECONF_append_class-target = " ${@bb.utils.contains("TUNE_FEATURES", "neon", "--enable-arm-neon=on", "--enable-arm-neon=off", d)}"
PACKAGES =+ "${PN}-tools"
diff --git a/meta/recipes-multimedia/libtiff/tiff_4.1.0.bb b/meta/recipes-multimedia/libtiff/tiff_4.1.0.bb
index 1f92c18513..9b907fbc24 100644
--- a/meta/recipes-multimedia/libtiff/tiff_4.1.0.bb
+++ b/meta/recipes-multimedia/libtiff/tiff_4.1.0.bb
@@ -47,4 +47,4 @@ do_install_append() {
oe_multilib_header tiffconf.h
}
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2017-14160.patch b/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2017-14160.patch
deleted file mode 100644
index b7603c3b13..0000000000
--- a/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2017-14160.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 018ca26dece618457dd13585cad52941193c4a25 Mon Sep 17 00:00:00 2001
-From: Thomas Daede <daede003@umn.edu>
-Date: Wed, 9 May 2018 14:56:59 -0700
-Subject: [PATCH] CVE-2017-14160: fix bounds check on very low sample rates.
-
----
-CVE: CVE-2017-14160 CVE-2018-10393
-
-Upstream-Status: Backport [gitlab.com/Xiph.Org/Vorbis/Commits/018ca26d...]
-
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
----
----
- lib/psy.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/lib/psy.c b/lib/psy.c
-index 422c6f1..1310123 100644
---- a/lib/psy.c
-+++ b/lib/psy.c
-@@ -602,8 +602,9 @@ static void bark_noise_hybridmp(int n,const long *b,
- for (i = 0, x = 0.f;; i++, x += 1.f) {
-
- lo = b[i] >> 16;
-- if( lo>=0 ) break;
- hi = b[i] & 0xffff;
-+ if( lo>=0 ) break;
-+ if( hi>=n ) break;
-
- tN = N[hi] + N[-lo];
- tX = X[hi] - X[-lo];
---
-1.7.9.5
-
diff --git a/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2018-10392.patch b/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2018-10392.patch
deleted file mode 100644
index b7936b4b4d..0000000000
--- a/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2018-10392.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 112d3bd0aaacad51305e1464d4b381dabad0e88b Mon Sep 17 00:00:00 2001
-From: Thomas Daede <daede003@umn.edu>
-Date: Thu, 17 May 2018 16:19:19 -0700
-Subject: [PATCH] Sanity check number of channels in setup.
-
-Fixes #2335.
-
----
-CVE: CVE-2018-10392
-
-Upstream-Status: Backport [gitlab.com/Xiph.Org/Vorbis/Commits/112d3bd...]
-
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
----
-
- lib/vorbisenc.c | 1 +
- 1 file changed, 1 insertion(+)
-
-
-diff --git a/lib/vorbisenc.c b/lib/vorbisenc.c
-index 4fc7b62..64a51b5 100644
---- a/lib/vorbisenc.c
-+++ b/lib/vorbisenc.c
-@@ -684,6 +684,7 @@ int vorbis_encode_setup_init(vorbis_info *vi){
- highlevel_encode_setup *hi=&ci->hi;
-
- if(ci==NULL)return(OV_EINVAL);
-+ if(vi->channels<1||vi->channels>255)return(OV_EINVAL);
- if(!hi->impulse_block_p)i0=1;
-
- /* too low/high an ATH floater is nonsensical, but doesn't break anything */
---
-1.7.9.5
-
diff --git a/meta/recipes-multimedia/libvorbis/libvorbis_1.3.6.bb b/meta/recipes-multimedia/libvorbis/libvorbis_1.3.7.bb
index 1a3cdc2269..c5c10348c6 100644
--- a/meta/recipes-multimedia/libvorbis/libvorbis_1.3.6.bb
+++ b/meta/recipes-multimedia/libvorbis/libvorbis_1.3.7.bb
@@ -6,16 +6,14 @@ HOMEPAGE = "http://www.vorbis.com/"
BUGTRACKER = "https://trac.xiph.org"
SECTION = "libs"
LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=70c7063491d2d9f76a098d62ed5134f1 \
- file://include/vorbis/vorbisenc.h;beginline=1;endline=11;md5=d1c1d138863d6315131193d4046d81cb"
+LIC_FILES_CHKSUM = "file://COPYING;md5=73d9c8942c60b846c3bad13cc6c2e520 \
+ file://include/vorbis/vorbisenc.h;beginline=1;endline=11;md5=c95a4ac2b4125f00a9acf61449ebb843"
DEPENDS = "libogg"
SRC_URI = "http://downloads.xiph.org/releases/vorbis/${BP}.tar.xz \
file://0001-configure-Check-for-clang.patch \
- file://CVE-2018-10392.patch \
- file://CVE-2017-14160.patch \
"
-SRC_URI[md5sum] = "b7d1692f275c73e7833ed1cc2697cd65"
-SRC_URI[sha256sum] = "af00bb5a784e7c9e69f56823de4637c350643deedaf333d0fa86ecdba6fcb415"
+SRC_URI[md5sum] = "50902641d358135f06a8392e61c9ac77"
+SRC_URI[sha256sum] = "b33cc4934322bcbf6efcbacf49e3ca01aadbea4114ec9589d1b1e9d20f72954b"
inherit autotools pkgconfig
diff --git a/meta/recipes-multimedia/mpg123/mpg123/sdl2.patch b/meta/recipes-multimedia/mpg123/mpg123/sdl2.patch
deleted file mode 100644
index 9dc9b923df..0000000000
--- a/meta/recipes-multimedia/mpg123/mpg123/sdl2.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Use libsdl2 instead of libsdl 1.2, which is dead upstream.
-
-Luckily the API that mpg123 use didn't change so this is a trivial change.
-
-Upstream-Status: Submitted [https://sourceforge.net/p/mpg123/bugs/268/]
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-diff --git a/configure.ac b/configure.ac
-index 6216d4f..b8d3344 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1694 +1694 @@ do
-- PKG_CHECK_MODULES(SDL, sdl, output_modules="$output_modules sdl" HAVE_SDL="yes", HAVE_SDL="no" check_failed=yes)
-+ PKG_CHECK_MODULES(SDL, sdl2, output_modules="$output_modules sdl" HAVE_SDL="yes", HAVE_SDL="no" check_failed=yes)
diff --git a/meta/recipes-multimedia/mpg123/mpg123_1.25.13.bb b/meta/recipes-multimedia/mpg123/mpg123_1.26.3.bb
index 125574fcfc..0746d8d47d 100644
--- a/meta/recipes-multimedia/mpg123/mpg123_1.25.13.bb
+++ b/meta/recipes-multimedia/mpg123/mpg123_1.26.3.bb
@@ -9,10 +9,10 @@ SECTION = "multimedia"
LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=1e86753638d3cf2512528b99079bc4f3"
-SRC_URI = "https://www.mpg123.de/download/${BP}.tar.bz2 \
- file://sdl2.patch"
-SRC_URI[md5sum] = "294a6c30546504ec3d0deac2b2ea22be"
-SRC_URI[sha256sum] = "90306848359c793fd43b9906e52201df18775742dc3c81c06ab67a806509890a"
+SRC_URI = "https://www.mpg123.de/download/${BP}.tar.bz2"
+SRC_URI[sha256sum] = "30c998785a898f2846deefc4d17d6e4683a5a550b7eacf6ea506e30a7a736c6e"
+
+UPSTREAM_CHECK_REGEX = "mpg123-(?P<pver>\d+(\.\d+)+)\.tar"
inherit autotools pkgconfig
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap-arm-Adjust-inline-asm-constraints.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap-arm-Adjust-inline-asm-constraints.patch
new file mode 100644
index 0000000000..95133fd9d4
--- /dev/null
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap-arm-Adjust-inline-asm-constraints.patch
@@ -0,0 +1,114 @@
+From 3450d1fcfe8a8f84553ab299cd96ae0705ddffbe Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 5 Mar 2020 11:48:28 -0800
+Subject: [PATCH] remap/arm: Adjust inline asm constraints
+
+gcc10 can effectively emit single precision registers if right
+operand modifier constraint is not in use
+
+This results in assembler rejecting the code
+
+/tmp/ccEG4QpI.s:646: Error: VFP/Neon double precision register expected -- `vtbl.8 d3,{d0,d1},s8'
+/tmp/ccEG4QpI.s:678: Error: invalid instruction shape -- `vmul.f32 d0,d0,s8'
+
+Therefore add %P qualifier to request double registers sinece 'w' could
+mean variable could be stored in s0..s14 and GCC defaults to printing out s0..s14.
+Note those registers map to d0..d7 also.
+
+Output generated is exactly same with gcc9, and it also now compiles
+with gcc10
+
+Its not documented well in gcc docs and there is a ticket for that
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84343
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/261]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/pulsecore/remap_neon.c | 22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/src/pulsecore/remap_neon.c b/src/pulsecore/remap_neon.c
+index 41208986d..ca3b95b48 100644
+--- a/src/pulsecore/remap_neon.c
++++ b/src/pulsecore/remap_neon.c
+@@ -189,7 +189,7 @@ static void remap_ch4_to_mono_float32ne_neon(pa_remap_t *m, float *dst, const fl
+ "vadd.f32 d0, d0, d1 \n\t"
+ "vadd.f32 d2, d2, d3 \n\t"
+ "vadd.f32 d0, d0, d2 \n\t"
+- "vmul.f32 d0, d0, %[quart] \n\t"
++ "vmul.f32 d0, d0, %P[quart] \n\t"
+ "vst1.32 {d0}, [%[dst]]! \n\t"
+ : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
+ : [quart] "w" (quart) /* input operands */
+@@ -276,7 +276,7 @@ static void remap_arrange_stereo_s16ne_neon(pa_remap_t *m, int16_t *dst, const i
+ for (; n >= 2; n -= 2) {
+ __asm__ __volatile__ (
+ "vld1.s16 d0, [%[src]]! \n\t"
+- "vtbl.8 d0, {d0}, %[t] \n\t"
++ "vtbl.8 d0, {d0}, %P[t] \n\t"
+ "vst1.s16 d0, [%[dst]]! \n\t"
+ : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
+ : [t] "w" (t) /* input operands */
+@@ -287,7 +287,7 @@ static void remap_arrange_stereo_s16ne_neon(pa_remap_t *m, int16_t *dst, const i
+ if (n > 0) {
+ __asm__ __volatile__ (
+ "vld1.32 d0[0], [%[src]]! \n\t"
+- "vtbl.8 d0, {d0}, %[t] \n\t"
++ "vtbl.8 d0, {d0}, %P[t] \n\t"
+ "vst1.32 d0[0], [%[dst]]! \n\t"
+ : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
+ : [t] "w" (t) /* input operands */
+@@ -302,8 +302,8 @@ static void remap_arrange_ch2_ch4_s16ne_neon(pa_remap_t *m, int16_t *dst, const
+ for (; n > 0; n--) {
+ __asm__ __volatile__ (
+ "vld1.32 d0[0], [%[src]]! \n\t"
+- "vtbl.8 d0, {d0}, %[t] \n\t"
+- "vst1.s16 d0, [%[dst]]! \n\t"
++ "vtbl.8 d0, {d0}, %P[t] \n\t"
++ "vst1.s16 d0, [%[dst]]! \n\t"
+ : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
+ : [t] "w" (t) /* input operands */
+ : "memory", "d0" /* clobber list */
+@@ -317,7 +317,7 @@ static void remap_arrange_ch4_s16ne_neon(pa_remap_t *m, int16_t *dst, const int1
+ for (; n > 0; n--) {
+ __asm__ __volatile__ (
+ "vld1.s16 d0, [%[src]]! \n\t"
+- "vtbl.8 d0, {d0}, %[t] \n\t"
++ "vtbl.8 d0, {d0}, %P[t] \n\t"
+ "vst1.s16 d0, [%[dst]]! \n\t"
+ : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
+ : [t] "w" (t) /* input operands */
+@@ -332,7 +332,7 @@ static void remap_arrange_stereo_float32ne_neon(pa_remap_t *m, float *dst, const
+ for (; n > 0; n--) {
+ __asm__ __volatile__ (
+ "vld1.f32 d0, [%[src]]! \n\t"
+- "vtbl.8 d0, {d0}, %[t] \n\t"
++ "vtbl.8 d0, {d0}, %P[t] \n\t"
+ "vst1.s16 {d0}, [%[dst]]! \n\t"
+ : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
+ : [t] "w" (t) /* input operands */
+@@ -349,8 +349,8 @@ static void remap_arrange_ch2_ch4_any32ne_neon(pa_remap_t *m, float *dst, const
+ for (; n > 0; n--) {
+ __asm__ __volatile__ (
+ "vld1.f32 d0, [%[src]]! \n\t"
+- "vtbl.8 d1, {d0}, %[t0] \n\t"
+- "vtbl.8 d2, {d0}, %[t1] \n\t"
++ "vtbl.8 d1, {d0}, %P[t0] \n\t"
++ "vtbl.8 d2, {d0}, %P[t1] \n\t"
+ "vst1.s16 {d1,d2}, [%[dst]]! \n\t"
+ : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
+ : [t0] "w" (t0), [t1] "w" (t1) /* input operands */
+@@ -366,8 +366,8 @@ static void remap_arrange_ch4_float32ne_neon(pa_remap_t *m, float *dst, const fl
+ for (; n > 0; n--) {
+ __asm__ __volatile__ (
+ "vld1.f32 {d0,d1}, [%[src]]! \n\t"
+- "vtbl.8 d2, {d0,d1}, %[t0] \n\t"
+- "vtbl.8 d3, {d0,d1}, %[t1] \n\t"
++ "vtbl.8 d2, {d0,d1}, %P[t0] \n\t"
++ "vtbl.8 d3, {d0,d1}, %P[t1] \n\t"
+ "vst1.s16 {d2,d3}, [%[dst]]! \n\t"
+ : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
+ : [t0] "w" (t0), [t1] "w" (t1) /* input operands */
+--
+2.25.1
+
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap_neon-use-register-r12-instead-of-r7.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap_neon-use-register-r12-instead-of-r7.patch
new file mode 100644
index 0000000000..aaa162f9b0
--- /dev/null
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap_neon-use-register-r12-instead-of-r7.patch
@@ -0,0 +1,48 @@
+From 4a1668f341f0228904105f77fe5871b9d59b2663 Mon Sep 17 00:00:00 2001
+From: Tanu Kaskinen <tanuk@iki.fi>
+Date: Mon, 13 Jul 2020 12:42:14 +0300
+Subject: [PATCH] remap_neon: use register r12 instead of r7
+
+When the Thumb instructions set is used and frame pointers are enabled
+(-fno-omit-frame-pointer), r7 can't be used, because it's used for the
+frame pointer. Trying to use r7 caused the compilation to fail.
+
+Thanks to Andre McCurdy for suggesting[1] this fix, all I had to do was to
+test that it works. The code builds now, and cpu-remap-test also
+succeeds.
+
+[1] https://lists.openembedded.org/g/openembedded-core/message/136786
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/324]
+
+Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
+---
+ src/pulsecore/remap_neon.c | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/src/pulsecore/remap_neon.c b/src/pulsecore/remap_neon.c
+index ca3b95b48..6f71345f8 100644
+--- a/src/pulsecore/remap_neon.c
++++ b/src/pulsecore/remap_neon.c
+@@ -52,11 +52,15 @@ static void remap_mono_to_stereo_float32ne_generic_arm(pa_remap_t *m, float *dst
+ __asm__ __volatile__ (
+ "ldm %[src]!, {r4,r6} \n\t"
+ "mov r5, r4 \n\t"
+- "mov r7, r6 \n\t"
+- "stm %[dst]!, {r4-r7} \n\t"
++
++ /* We use r12 instead of r7 here, because r7 is reserved for the
++ * frame pointer when using Thumb. */
++ "mov r12, r6 \n\t"
++
++ "stm %[dst]!, {r4-r6,r12} \n\t"
+ : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
+ : /* input operands */
+- : "memory", "r4", "r5", "r6", "r7" /* clobber list */
++ : "memory", "r4", "r5", "r6", "r12" /* clobber list */
+ );
+ }
+
+--
+2.20.1
+
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb b/meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb
index 7f8ebc2090..53e9a2357d 100644
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb
@@ -3,12 +3,10 @@ require pulseaudio.inc
SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/${BP}.tar.xz \
file://0001-client-conf-Add-allow-autospawn-for-root.patch \
file://0002-do-not-display-CLFAGS-to-improve-reproducibility-bui.patch \
+ file://0001-remap-arm-Adjust-inline-asm-constraints.patch \
+ file://0001-remap_neon-use-register-r12-instead-of-r7.patch \
file://volatiles.04_pulse \
"
SRC_URI[md5sum] = "e41d606f90254ed45c90520faf83d95c"
SRC_URI[sha256sum] = "961b23ca1acfd28f2bc87414c27bb40e12436efcf2158d29721b1e89f3f28057"
-
-do_compile_prepend() {
- mkdir -p ${S}/libltdl
- cp ${STAGING_LIBDIR}/libltdl* ${S}/libltdl
-}
+UPSTREAM_CHECK_REGEX = "pulseaudio-(?P<pver>\d+(\.(?!99)\d+)+)\.tar"
diff --git a/meta/recipes-multimedia/x264/x264_git.bb b/meta/recipes-multimedia/x264/x264_git.bb
index 39429a8809..f226fec3c4 100644
--- a/meta/recipes-multimedia/x264/x264_git.bb
+++ b/meta/recipes-multimedia/x264/x264_git.bb
@@ -14,9 +14,9 @@ SRC_URI = "git://github.com/mirror/x264;branch=stable \
"
UPSTREAM_CHECK_COMMITS = "1"
-SRCREV = "1771b556ee45207f8711744ccbd5d42a3949b14c"
+SRCREV = "cde9a93319bea766a92e306d69059c76de970190"
-PV = "r2991+git${SRCPV}"
+PV = "r3011+git${SRCPV}"
S = "${WORKDIR}/git"
diff --git a/meta/recipes-rt/rt-tests/rt-tests-1.1/0001-gzip-with-n-for-build-reproducibilty.patch b/meta/recipes-rt/rt-tests/rt-tests-1.1/0001-gzip-with-n-for-build-reproducibilty.patch
new file mode 100644
index 0000000000..3bafbbe08f
--- /dev/null
+++ b/meta/recipes-rt/rt-tests/rt-tests-1.1/0001-gzip-with-n-for-build-reproducibilty.patch
@@ -0,0 +1,62 @@
+From aabf518e2e61a882b925f9d2ac53dafa7a041a0a Mon Sep 17 00:00:00 2001
+From: Jeremy Puhlman <jpuhlman@mvista.com>
+Date: Tue, 25 Feb 2020 22:58:59 +0000
+Subject: [PATCH] gzip with -n for build reproducibilty
+
+The date can get encoded in the header of the gz file, which
+causes the binary files between two different builds of the
+same data to be different. Add -n for reproducibilty
+
+Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
+
+Upstream-Status: Submitted [mailinglist]
+
+---
+ Makefile | 24 ++++++++++++------------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index a54d82b..e9f0d5a 100644
+--- a/Makefile
++++ b/Makefile
+@@ -168,17 +168,17 @@ install: all install_hwlatdetect
+ cp $(TARGETS) "$(DESTDIR)$(bindir)"
+ install -D -m 644 src/backfire/backfire.c "$(DESTDIR)$(srcdir)/backfire/backfire.c"
+ install -m 644 src/backfire/Makefile "$(DESTDIR)$(srcdir)/backfire/Makefile"
+- gzip -c src/backfire/backfire.4 >"$(DESTDIR)$(mandir)/man4/backfire.4.gz"
+- gzip -c src/cyclictest/cyclictest.8 >"$(DESTDIR)$(mandir)/man8/cyclictest.8.gz"
+- gzip -c src/pi_tests/pi_stress.8 >"$(DESTDIR)$(mandir)/man8/pi_stress.8.gz"
+- gzip -c src/ptsematest/ptsematest.8 >"$(DESTDIR)$(mandir)/man8/ptsematest.8.gz"
+- gzip -c src/rt-migrate-test/rt-migrate-test.8 >"$(DESTDIR)$(mandir)/man8/rt-migrate-test.8.gz"
+- gzip -c src/sigwaittest/sigwaittest.8 >"$(DESTDIR)$(mandir)/man8/sigwaittest.8.gz"
+- gzip -c src/svsematest/svsematest.8 >"$(DESTDIR)$(mandir)/man8/svsematest.8.gz"
+- gzip -c src/pmqtest/pmqtest.8 >"$(DESTDIR)$(mandir)/man8/pmqtest.8.gz"
+- gzip -c src/backfire/sendme.8 >"$(DESTDIR)$(mandir)/man8/sendme.8.gz"
+- gzip -c src/hackbench/hackbench.8 >"$(DESTDIR)$(mandir)/man8/hackbench.8.gz"
+- gzip -c src/signaltest/signaltest.8 >"$(DESTDIR)$(mandir)/man8/signaltest.8.gz"
++ gzip -nc src/backfire/backfire.4 >"$(DESTDIR)$(mandir)/man4/backfire.4.gz"
++ gzip -nc src/cyclictest/cyclictest.8 >"$(DESTDIR)$(mandir)/man8/cyclictest.8.gz"
++ gzip -nc src/pi_tests/pi_stress.8 >"$(DESTDIR)$(mandir)/man8/pi_stress.8.gz"
++ gzip -nc src/ptsematest/ptsematest.8 >"$(DESTDIR)$(mandir)/man8/ptsematest.8.gz"
++ gzip -nc src/rt-migrate-test/rt-migrate-test.8 >"$(DESTDIR)$(mandir)/man8/rt-migrate-test.8.gz"
++ gzip -nc src/sigwaittest/sigwaittest.8 >"$(DESTDIR)$(mandir)/man8/sigwaittest.8.gz"
++ gzip -nc src/svsematest/svsematest.8 >"$(DESTDIR)$(mandir)/man8/svsematest.8.gz"
++ gzip -nc src/pmqtest/pmqtest.8 >"$(DESTDIR)$(mandir)/man8/pmqtest.8.gz"
++ gzip -nc src/backfire/sendme.8 >"$(DESTDIR)$(mandir)/man8/sendme.8.gz"
++ gzip -nc src/hackbench/hackbench.8 >"$(DESTDIR)$(mandir)/man8/hackbench.8.gz"
++ gzip -nc src/signaltest/signaltest.8 >"$(DESTDIR)$(mandir)/man8/signaltest.8.gz"
+
+ .PHONY: install_hwlatdetect
+ install_hwlatdetect: hwlatdetect
+@@ -187,7 +187,7 @@ install_hwlatdetect: hwlatdetect
+ install -D -m 755 src/hwlatdetect/hwlatdetect.py $(DESTDIR)$(PYLIB)/hwlatdetect.py ; \
+ rm -f "$(DESTDIR)$(bindir)/hwlatdetect" ; \
+ ln -s $(PYLIB)/hwlatdetect.py "$(DESTDIR)$(bindir)/hwlatdetect" ; \
+- gzip -c src/hwlatdetect/hwlatdetect.8 >"$(DESTDIR)$(mandir)/man8/hwlatdetect.8.gz" ; \
++ gzip -nc src/hwlatdetect/hwlatdetect.8 >"$(DESTDIR)$(mandir)/man8/hwlatdetect.8.gz" ; \
+ fi
+
+ .PHONY: tarball
+--
+2.23.0
+
diff --git a/meta/recipes-rt/rt-tests/rt-tests.inc b/meta/recipes-rt/rt-tests/rt-tests.inc
index 3ac39d90c3..6e3afafce4 100644
--- a/meta/recipes-rt/rt-tests/rt-tests.inc
+++ b/meta/recipes-rt/rt-tests/rt-tests.inc
@@ -3,8 +3,8 @@ SRCREV = "dff174f994f547a5785d32454865f140daacb0f5"
PE = "1"
SRC_URI = "git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git"
-# 1.2 to 1.5 seem to be development versions
-UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>(?!1\.[2-6])(\d+(\.\d+)+))"
+# 1.2 and up seem to be development versions
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>(?!1\.[2-8])(\d+(\.\d+)+))"
S = "${WORKDIR}/git"
diff --git a/meta/recipes-rt/rt-tests/rt-tests_1.1.bb b/meta/recipes-rt/rt-tests/rt-tests_1.1.bb
index 5aa0aa10c3..dad252b4ed 100644
--- a/meta/recipes-rt/rt-tests/rt-tests_1.1.bb
+++ b/meta/recipes-rt/rt-tests/rt-tests_1.1.bb
@@ -13,6 +13,7 @@ inherit ptest
SRC_URI += " \
file://run-ptest \
file://rt_bmark.py \
+ file://0001-gzip-with-n-for-build-reproducibilty.patch \
"
# rt-tests needs PI mutex support in libc
diff --git a/meta/recipes-sato/images/core-image-sato-ptest-fast.bb b/meta/recipes-sato/images/core-image-sato-ptest-fast.bb
index b794a7dc9e..3641217306 100644
--- a/meta/recipes-sato/images/core-image-sato-ptest-fast.bb
+++ b/meta/recipes-sato/images/core-image-sato-ptest-fast.bb
@@ -14,3 +14,6 @@ IMAGE_ROOTFS_EXTRA_SPACE = "1524288"
# ptests need more memory than standard to avoid the OOM killer
QB_MEM = "-m 1024"
+
+# Sadly at the moment the fast set of ptests is not robust enough and sporadically fails in a couple of places
+PTEST_EXPECT_FAILURE = "1"
diff --git a/meta/recipes-sato/images/core-image-sato-sdk-ptest.bb b/meta/recipes-sato/images/core-image-sato-sdk-ptest.bb
index 58c257c49f..bf749acd79 100644
--- a/meta/recipes-sato/images/core-image-sato-sdk-ptest.bb
+++ b/meta/recipes-sato/images/core-image-sato-sdk-ptest.bb
@@ -18,3 +18,6 @@ IMAGE_ROOTFS_EXTRA_SPACE = "1124288"
# ptests need more memory than standard to avoid the OOM killer
# also lttng-tools needs /tmp that has at least 1G
QB_MEM = "-m 2048"
+
+# Sadly at the moment the full set of ptests is not robust enough and sporadically fails in random places
+PTEST_EXPECT_FAILURE = "1"
diff --git a/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.2.bb b/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.2.bb
index 5c23e85202..e7d8a284bb 100644
--- a/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.2.bb
+++ b/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.2.bb
@@ -13,7 +13,7 @@ SECTION = "x11/wm"
# SRCREV tagged 2.2
SRCREV = "6bc67d09da4147e5552fe30011a05a2c59d2f777"
SRC_URI = "git://git.yoctoproject.org/${BPN}-2 \
- file://vfolders/* \
+ file://vfolders/ \
"
EXTRA_OECONF = "--enable-startup-notification --with-dbus"
diff --git a/meta/recipes-sato/puzzles/puzzles_git.bb b/meta/recipes-sato/puzzles/puzzles_git.bb
index 41b78d6fe1..a0f3b5d9cd 100644
--- a/meta/recipes-sato/puzzles/puzzles_git.bb
+++ b/meta/recipes-sato/puzzles/puzzles_git.bb
@@ -17,7 +17,7 @@ SRC_URI = "git://git.tartarus.org/simon/puzzles.git \
"
UPSTREAM_CHECK_COMMITS = "1"
-SRCREV = "79a5378b5adc46ee33ba34d55738f916fb8adfc9"
+SRCREV = "9aa7b7cdfb2bcd200f45941a58d6ae698882a2d4"
PE = "2"
PV = "0.0+git${SRCPV}"
diff --git a/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc b/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc
index b568f04580..b064a63caa 100644
--- a/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc
+++ b/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc
@@ -30,6 +30,8 @@ EXTRA_OECONF = "--enable-xim \
--enable-combining --disable-perl \
--with-x=${STAGING_DIR_HOST}${prefix}"
+EXTRA_OECONF_append_libc-musl = " --disable-wtmp"
+
PACKAGECONFIG ??= ""
PACKAGECONFIG[startup] = "--enable-startup-notification,--disable-startup-notification,startup-notification,"
diff --git a/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb b/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb
index f6dac2cf88..2b1f513f1c 100644
--- a/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb
+++ b/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb
@@ -21,7 +21,7 @@ inherit autotools pkgconfig features_check
FILES_${PN} += "${libdir}/matchbox-panel/*.so"
do_install_append () {
- rm ${D}${libdir}/matchbox-panel/*.la
+ rm -f ${D}${libdir}/matchbox-panel/*.la
}
# The matchbox-panel-2 requires x11 in DISTRO_FEATURES
diff --git a/meta/recipes-sato/webkit/libwpe_1.4.0.1.bb b/meta/recipes-sato/webkit/libwpe_1.7.1.bb
index 12499ff281..e25d9404a0 100644
--- a/meta/recipes-sato/webkit/libwpe_1.4.0.1.bb
+++ b/meta/recipes-sato/webkit/libwpe_1.7.1.bb
@@ -14,4 +14,4 @@ inherit cmake features_check
REQUIRED_DISTRO_FEATURES = "opengl"
SRC_URI = "https://wpewebkit.org/releases/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "09849dfb34877354f34f318e138971cf22e677b2179e1f0a8ea00ab0b7bd8e9b"
+SRC_URI[sha256sum] = "a784b7fa0c658b28071100f6f6749b0d85bbcddd82de028e07672ce13982d340"
diff --git a/meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-with-musl.patch b/meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-with-musl.patch
index 0c145c7ebd..6dcb52956c 100644
--- a/meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-with-musl.patch
+++ b/meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-with-musl.patch
@@ -1,4 +1,4 @@
-From c4d4d9f1aa74addefdad40294cf16d9e0b3dd6ec Mon Sep 17 00:00:00 2001
+From 828a500d5be62ba6fc94bd4fac3fe4bf1b1d4f6d Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Fri, 6 Oct 2017 17:00:08 +0300
Subject: [PATCH] Fix build with musl
@@ -8,14 +8,14 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
Source/JavaScriptCore/runtime/MachineContext.h | 10 +++++-----
- Source/WTF/wtf/Platform.h | 2 +-
+ Source/WTF/wtf/PlatformHave.h | 2 +-
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/Source/JavaScriptCore/runtime/MachineContext.h b/Source/JavaScriptCore/runtime/MachineContext.h
-index 823964c2..00841146 100644
+index c5052527..95ef98b5 100644
--- a/Source/JavaScriptCore/runtime/MachineContext.h
+++ b/Source/JavaScriptCore/runtime/MachineContext.h
-@@ -188,7 +188,7 @@ static inline void*& stackPointerImpl(mcontext_t& machineContext)
+@@ -196,7 +196,7 @@ static inline void*& stackPointerImpl(mcontext_t& machineContext)
#error Unknown Architecture
#endif
@@ -24,7 +24,7 @@ index 823964c2..00841146 100644
#if CPU(X86)
return reinterpret_cast<void*&>((uintptr_t&) machineContext.gregs[REG_ESP]);
-@@ -335,7 +335,7 @@ static inline void*& framePointerImpl(mcontext_t& machineContext)
+@@ -347,7 +347,7 @@ static inline void*& framePointerImpl(mcontext_t& machineContext)
#error Unknown Architecture
#endif
@@ -33,7 +33,7 @@ index 823964c2..00841146 100644
// The following sequence depends on glibc's sys/ucontext.h.
#if CPU(X86)
-@@ -482,7 +482,7 @@ static inline void*& instructionPointerImpl(mcontext_t& machineContext)
+@@ -498,7 +498,7 @@ static inline void*& instructionPointerImpl(mcontext_t& machineContext)
#error Unknown Architecture
#endif
@@ -42,7 +42,7 @@ index 823964c2..00841146 100644
// The following sequence depends on glibc's sys/ucontext.h.
#if CPU(X86)
-@@ -639,7 +639,7 @@ inline void*& argumentPointer<1>(mcontext_t& machineContext)
+@@ -656,7 +656,7 @@ inline void*& argumentPointer<1>(mcontext_t& machineContext)
#error Unknown Architecture
#endif
@@ -51,7 +51,7 @@ index 823964c2..00841146 100644
// The following sequence depends on glibc's sys/ucontext.h.
#if CPU(X86)
-@@ -756,7 +756,7 @@ inline void*& llintInstructionPointer(mcontext_t& machineContext)
+@@ -773,7 +773,7 @@ inline void*& llintInstructionPointer(mcontext_t& machineContext)
#error Unknown Architecture
#endif
@@ -60,13 +60,13 @@ index 823964c2..00841146 100644
// The following sequence depends on glibc's sys/ucontext.h.
#if CPU(X86)
-diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h
-index 34f7cb14..32ad9150 100644
---- a/Source/WTF/wtf/Platform.h
-+++ b/Source/WTF/wtf/Platform.h
-@@ -714,7 +714,7 @@
-
- #endif /* OS(DARWIN) */
+diff --git a/Source/WTF/wtf/PlatformHave.h b/Source/WTF/wtf/PlatformHave.h
+index daca20fe..53eae6ba 100644
+--- a/Source/WTF/wtf/PlatformHave.h
++++ b/Source/WTF/wtf/PlatformHave.h
+@@ -222,7 +222,7 @@
+ #define HAVE_HOSTED_CORE_ANIMATION 1
+ #endif
-#if OS(DARWIN) || OS(FUCHSIA) || ((OS(FREEBSD) || defined(__GLIBC__) || defined(__BIONIC__)) && (CPU(X86) || CPU(X86_64) || CPU(ARM) || CPU(ARM64) || CPU(MIPS)))
+#if OS(DARWIN) || OS(FUCHSIA) || ((OS(FREEBSD) || defined(__linux__) || defined(__BIONIC__)) && (CPU(X86) || CPU(X86_64) || CPU(ARM) || CPU(ARM64) || CPU(MIPS)))
diff --git a/meta/recipes-sato/webkit/webkitgtk/0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch b/meta/recipes-sato/webkit/webkitgtk/0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch
index e7c668c040..866e9d9d09 100644
--- a/meta/recipes-sato/webkit/webkitgtk/0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch
+++ b/meta/recipes-sato/webkit/webkitgtk/0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch
@@ -1,4 +1,4 @@
-From 4b5e02212a31b82fc9b3becad90542274816fc29 Mon Sep 17 00:00:00 2001
+From 1c7e7a385387d7febf633bbb6d2b99ece523e719 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Thu, 11 Aug 2016 17:13:51 +0300
Subject: [PATCH] Tweak gtkdoc settings so that gtkdoc generation works under
@@ -17,15 +17,15 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/Source/cmake/GtkDoc.cmake b/Source/cmake/GtkDoc.cmake
-index b0fb31ca..6cb6313d 100644
+index 18e86448..102c873a 100644
--- a/Source/cmake/GtkDoc.cmake
+++ b/Source/cmake/GtkDoc.cmake
@@ -4,7 +4,7 @@ macro(ADD_GTKDOC_GENERATOR _stamp_name _extra_args)
add_custom_command(
OUTPUT "${CMAKE_BINARY_DIR}/${_stamp_name}"
DEPENDS ${DocumentationDependencies}
-- COMMAND ${CMAKE_COMMAND} -E env "CC=${CMAKE_C_COMPILER}" "CFLAGS=${CMAKE_C_FLAGS} -Wno-unused-parameter" "LDFLAGS=${CMAKE_EXE_LINKER_FLAGS}" ${CMAKE_SOURCE_DIR}/Tools/gtkdoc/generate-gtkdoc ${_extra_args}
-+ COMMAND ${CMAKE_COMMAND} -E env "CC=${CMAKE_C_COMPILER}" "CFLAGS=${CMAKE_C_FLAGS} -Wno-unused-parameter" "LD=${CMAKE_C_COMPILER}" "LDFLAGS=${CMAKE_C_LINK_FLAGS}" "RUN=${CMAKE_BINARY_DIR}/gtkdoc-qemuwrapper" ${CMAKE_SOURCE_DIR}/Tools/gtkdoc/generate-gtkdoc ${_extra_args}
+- COMMAND ${CMAKE_COMMAND} -E env "CC=${CMAKE_C_COMPILER}" "CFLAGS=${CMAKE_C_FLAGS} -Wno-unused-parameter" "LDFLAGS=${CMAKE_EXE_LINKER_FLAGS}" ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/Tools/gtkdoc/generate-gtkdoc ${_extra_args}
++ COMMAND ${CMAKE_COMMAND} -E env "CC=${CMAKE_C_COMPILER}" "CFLAGS=${CMAKE_C_FLAGS} -Wno-unused-parameter" "LD=${CMAKE_C_COMPILER}" "LDFLAGS=${CMAKE_C_LINK_FLAGS}" "RUN=${CMAKE_BINARY_DIR}/gtkdoc-qemuwrapper" ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/Tools/gtkdoc/generate-gtkdoc ${_extra_args}
COMMAND touch ${_stamp_name}
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
VERBATIM
diff --git a/meta/recipes-sato/webkit/webkitgtk/0001-clang-11-fix-build-errors-due-to-WWc-11-narrowing.patch b/meta/recipes-sato/webkit/webkitgtk/0001-clang-11-fix-build-errors-due-to-WWc-11-narrowing.patch
new file mode 100644
index 0000000000..d8bb8efb88
--- /dev/null
+++ b/meta/recipes-sato/webkit/webkitgtk/0001-clang-11-fix-build-errors-due-to-WWc-11-narrowing.patch
@@ -0,0 +1,66 @@
+From cb929f59b527fe890376e47613dfe1434a320bc0 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 11 Aug 2020 15:44:48 -0700
+Subject: [PATCH] [clang 11] fix build errors due to -WWc++11-narrowing
+
+https://bugs.webkit.org/show_bug.cgi?id=211193
+
+Reviewed by Adrian Perez de Castro.
+
+Fixes the following errors,
+
+Source/WebCore/html/MediaElementSession.cpp:1059:9: error: type 'WebCore::RenderMedia *' cannot be narrowed to 'bool' in initializer list [-Wc++11-narrowing]
+m_element.renderer(),
+^~~~~~~~~~~~~~~~~~~~
+
+Source/WebCore/style/StyleResolver.cpp:106:55: error: type 'const char [4]' cannot be narrowed to 'bool' in initializer list [-Wc++11-narrowing]
+m_mediaQueryEvaluator = MediaQueryEvaluator { "all" };
+ ^~~~~
+Source/WebCore/style/StyleResolver.cpp:106:55: note: insert an explicit cast to silence this issue
+m_mediaQueryEvaluator = MediaQueryEvaluator { "all" };
+ ^~~~~
+ static_cast<bool>( )
+
+* html/HTMLMediaElement.h:
+(WebCore::HTMLMediaElement::hasRenderer const):
+MediaElementSession was implicitly casting a pointer to a bool,
+which is not allowed with modern Clang checks. Add a helper method
+to encapsulate the now required static_cast<bool>.
+* html/MediaElementSession.cpp: Use the new helper method to see
+if the HTMLMediaElement has an associated renderer.
+(WebCore::MediaElementSession::updateMediaUsageIfChanged):
+* style/StyleResolver.cpp: This was calling MediaQueryEvaluator {
+"all" }; and seemingly expecting to cast a const char[] to a bool,
+or maybe String? It's confusing because of the MediaQueryEvaluator
+API. If it was implicitly converting to bool then that could be
+unintentional. Such casts are not allowed either now. The
+MediaQueryEvaluator's default constructor says it returns true for
+"all", which appears to be the original intent of this call, so I
+replaced it with that.
+(WebCore::Style::Resolver::Resolver):
+
+git-svn-id: http://svn.webkit.org/repository/webkit/trunk@260951 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+Upstream-Status: Backport [https://github.com/WebKit/webkit/commit/c3cf651016e4cdcb4350598d4a586821071f91bf.patch]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Source/WebCore/style/StyleResolver.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Source/WebCore/style/StyleResolver.cpp b/Source/WebCore/style/StyleResolver.cpp
+index 8bf371a0..34580ddb 100644
+--- a/Source/WebCore/style/StyleResolver.cpp
++++ b/Source/WebCore/style/StyleResolver.cpp
+@@ -107,7 +107,7 @@ Resolver::Resolver(Document& document)
+ if (view)
+ m_mediaQueryEvaluator = MediaQueryEvaluator { view->mediaType() };
+ else
+- m_mediaQueryEvaluator = MediaQueryEvaluator { "all" };
++ m_mediaQueryEvaluator = MediaQueryEvaluator { };
+
+ if (root) {
+ m_rootDefaultStyle = styleForElement(*root, m_document.renderStyle(), nullptr, RuleMatchingBehavior::MatchOnlyUserAgentRules).renderStyle;
+--
+2.28.0
+
diff --git a/meta/recipes-sato/webkit/webkitgtk/x32_support.patch b/meta/recipes-sato/webkit/webkitgtk/x32_support.patch
deleted file mode 100644
index 85d281e7f4..0000000000
--- a/meta/recipes-sato/webkit/webkitgtk/x32_support.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Signed-off-by: Christopher Larson <chris_larson@mentor.com>
-Upstream-Status: Pending
-
-From 897563a0397266d8ceb058f172e16b06419b2593 Mon Sep 17 00:00:00 2001
-From: Daniel Schepler <dschepler@gmail.com>
-Date: Mon, 26 Mar 2018 17:48:34 +0300
-Subject: [PATCH] Fix FTBFS in x32
-
-===================================================================
-
----
- Source/WTF/wtf/Platform.h | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h
-index 850e298..551c047 100644
---- a/Source/WTF/wtf/Platform.h
-+++ b/Source/WTF/wtf/Platform.h
-@@ -132,7 +132,11 @@
- /* CPU(X86_64) - AMD64 / Intel64 / x86_64 64-bit */
- #if defined(__x86_64__) \
- || defined(_M_X64)
-+#ifdef __ILP32__
-+#define WTF_CPU_X86_64_32 1
-+#else
- #define WTF_CPU_X86_64 1
-+#endif
- #define WTF_CPU_X86_SSE2 1
- #define WTF_CPU_KNOWN 1
- #endif
diff --git a/meta/recipes-sato/webkit/webkitgtk_2.26.4.bb b/meta/recipes-sato/webkit/webkitgtk_2.28.4.bb
index a48a976f94..8ebb3709a8 100644
--- a/meta/recipes-sato/webkit/webkitgtk_2.26.4.bb
+++ b/meta/recipes-sato/webkit/webkitgtk_2.28.4.bb
@@ -16,45 +16,44 @@ SRC_URI = "https://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \
file://0001-Fix-racy-parallel-build-of-WebKit2-4.0.gir.patch \
file://0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch \
file://0001-Enable-THREADS_PREFER_PTHREAD_FLAG.patch \
- file://x32_support.patch \
file://cross-compile.patch \
file://0001-Fix-build-with-musl.patch \
file://include_array.patch \
+ file://0001-clang-11-fix-build-errors-due-to-WWc-11-narrowing.patch \
"
-SRC_URI[md5sum] = "60f881729f3b71244b7f6e58790073e0"
-SRC_URI[sha256sum] = "4386900713dfadf9741177210b32623cab22562a79ffd0d446b66569934b113f"
+SRC_URI[sha256sum] = "821952e8c9303ed752f1fb1d4283f612c25249d00d705d2b79c2db1bc49c9464"
inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gtk-doc
-REQUIRED_DISTRO_FEATURES = "x11 opengl"
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'opengl', '', d)}"
CVE_PRODUCT = "webkitgtk webkitgtk\+"
-DEPENDS = "zlib libsoup-2.4 curl libxml2 cairo libxslt libxt libidn libgcrypt \
+DEPENDS = "zlib libsoup-2.4 curl libxml2 cairo libxslt libgcrypt \
gtk+3 gstreamer1.0 gstreamer1.0-plugins-base flex-native gperf-native sqlite3 \
pango icu bison-native gawk intltool-native libwebp \
- atk udev harfbuzz jpeg libpng pulseaudio librsvg libtheora libvorbis libxcomposite libxtst \
+ atk udev harfbuzz jpeg libpng librsvg libtheora libvorbis \
ruby-native libnotify gstreamer1.0-plugins-bad \
gettext-native glib-2.0 glib-2.0-native libtasn1 \
"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'webgl opengl', '' ,d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'webgl opengl', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', 'webgl gles2', d)} \
enchant \
libsecret \
"
PACKAGECONFIG[wayland] = "-DENABLE_WAYLAND_TARGET=ON,-DENABLE_WAYLAND_TARGET=OFF,wayland libwpe wpebackend-fdo wayland-native"
-PACKAGECONFIG[x11] = "-DENABLE_X11_TARGET=ON,-DENABLE_X11_TARGET=OFF,virtual/libx11"
+PACKAGECONFIG[x11] = "-DENABLE_X11_TARGET=ON,-DENABLE_X11_TARGET=OFF,virtual/libx11 libxcomposite libxdamage libxrender libxt"
PACKAGECONFIG[geoclue] = "-DENABLE_GEOLOCATION=ON,-DENABLE_GEOLOCATION=OFF,geoclue"
PACKAGECONFIG[enchant] = "-DENABLE_SPELLCHECK=ON,-DENABLE_SPELLCHECK=OFF,enchant2"
-PACKAGECONFIG[gtk2] = "-DENABLE_PLUGIN_PROCESS_GTK2=ON,-DENABLE_PLUGIN_PROCESS_GTK2=OFF,gtk+"
PACKAGECONFIG[gles2] = "-DENABLE_GLES2=ON,-DENABLE_GLES2=OFF,virtual/libgles2"
PACKAGECONFIG[webgl] = "-DENABLE_WEBGL=ON,-DENABLE_WEBGL=OFF,virtual/libgl"
PACKAGECONFIG[opengl] = "-DENABLE_OPENGL=ON,-DENABLE_OPENGL=OFF,virtual/libgl"
PACKAGECONFIG[libsecret] = "-DUSE_LIBSECRET=ON,-DUSE_LIBSECRET=OFF,libsecret"
PACKAGECONFIG[libhyphen] = "-DUSE_LIBHYPHEN=ON,-DUSE_LIBHYPHEN=OFF,libhyphen"
-# Source is at https://github.com/google/woff2
PACKAGECONFIG[woff2] = "-DUSE_WOFF2=ON,-DUSE_WOFF2=OFF,woff2"
PACKAGECONFIG[openjpeg] = "-DUSE_OPENJPEG=ON,-DUSE_OPENJPEG=OFF,openjpeg"
@@ -124,5 +123,10 @@ ARM_INSTRUCTION_SET_armv7a = "thumb"
ARM_INSTRUCTION_SET_armv7r = "thumb"
ARM_INSTRUCTION_SET_armv7ve = "thumb"
+# introspection inside qemu-arm hangs forever on musl/arm builds
+# therefore disable GI_DATA
+GI_DATA_ENABLED_libc-musl_armv7a = "False"
+GI_DATA_ENABLED_libc-musl_armv7ve = "False"
+
# Can't be built with ccache
CCACHE_DISABLE = "1"
diff --git a/meta/recipes-sato/webkit/wpebackend-fdo_1.4.1.bb b/meta/recipes-sato/webkit/wpebackend-fdo_1.7.1.bb
index cd2f7fabda..519762d125 100644
--- a/meta/recipes-sato/webkit/wpebackend-fdo_1.4.1.bb
+++ b/meta/recipes-sato/webkit/wpebackend-fdo_1.7.1.bb
@@ -4,14 +4,14 @@ BUGTRACKER = "https://github.com/Igalia/WPEBackend-fdo/issues"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://COPYING;md5=1f62cef2e3645e3e74eb05fd389d7a66"
-DEPENDS = "glib-2.0 libxkbcommon wayland virtual/egl libwpe"
+DEPENDS = "glib-2.0 libxkbcommon wayland virtual/egl libwpe libepoxy"
DEPENDS_append_class-target = " wayland-native"
-inherit cmake features_check
+inherit meson features_check
REQUIRED_DISTRO_FEATURES = "opengl"
SRC_URI = "https://wpewebkit.org/releases/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "6249a0b7cbfa662206a8d2fa24e2c574e75c681ad0e93468091f1dc68ddb299d"
+SRC_URI[sha256sum] = "9b980a73ea4e3762266c48f81ded56d9dcad4acf32bad9bd05d0dffdd454c6f5"
diff --git a/meta/recipes-support/apr/apr-util_1.6.1.bb b/meta/recipes-support/apr/apr-util_1.6.1.bb
index 1f9fea25d8..0dd8f025e8 100644
--- a/meta/recipes-support/apr/apr-util_1.6.1.bb
+++ b/meta/recipes-support/apr/apr-util_1.6.1.bb
@@ -1,7 +1,7 @@
SUMMARY = "Apache Portable Runtime (APR) companion library"
HOMEPAGE = "http://apr.apache.org/"
SECTION = "libs"
-DEPENDS = "apr expat gdbm"
+DEPENDS = "apr expat"
BBCLASSEXTEND = "native nativesdk"
@@ -23,12 +23,13 @@ EXTRA_OECONF = "--with-apr=${STAGING_BINDIR_CROSS}/apr-1-config \
--without-odbc \
--without-pgsql \
--with-dbm=gdbm \
- --with-gdbm=${STAGING_DIR_HOST}${prefix} \
--without-sqlite2 \
--with-expat=${STAGING_DIR_HOST}${prefix}"
-inherit autotools lib_package binconfig
+inherit autotools lib_package binconfig multilib_script
+
+MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/apu-1-config"
OE_BINCONFIG_EXTRA_MANGLE = " -e 's:location=source:location=installed:'"
@@ -64,10 +65,11 @@ do_install_append_class-target() {
-e 's,APU_BUILD_DIR=.*,APR_BUILD_DIR=,g' ${D}${bindir}/apu-1-config
}
-PACKAGECONFIG ??= "crypto"
+PACKAGECONFIG ??= "crypto gdbm"
PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap"
PACKAGECONFIG[crypto] = "--with-openssl=${STAGING_DIR_HOST}${prefix} --with-crypto,--without-crypto,openssl"
PACKAGECONFIG[sqlite3] = "--with-sqlite3=${STAGING_DIR_HOST}${prefix},--without-sqlite3,sqlite3"
+PACKAGECONFIG[gdbm] = "--with-gdbm=${STAGING_DIR_HOST}${prefix},--without-gdbm,gdbm"
#files ${libdir}/apr-util-1/*.so are not symlinks but loadable modules thus they are packaged in ${PN}
FILES_${PN} += "${libdir}/apr-util-1/apr*${SOLIBS} ${libdir}/apr-util-1/apr*${SOLIBSDEV}"
diff --git a/meta/recipes-support/apr/apr/0001-Add-option-to-disable-timed-dependant-tests.patch b/meta/recipes-support/apr/apr/0001-Add-option-to-disable-timed-dependant-tests.patch
new file mode 100644
index 0000000000..abff4e9331
--- /dev/null
+++ b/meta/recipes-support/apr/apr/0001-Add-option-to-disable-timed-dependant-tests.patch
@@ -0,0 +1,69 @@
+From 2bbe20b4f69e84e7a18bc79d382486953f479328 Mon Sep 17 00:00:00 2001
+From: Jeremy Puhlman <jpuhlman@mvista.com>
+Date: Thu, 26 Mar 2020 18:30:36 +0000
+Subject: [PATCH] Add option to disable timed dependant tests
+
+The disabled tests rely on timing to pass correctly. On a virtualized
+system under heavy load, these tests randomly fail because they miss
+a timer or other timing related issues.
+
+Upstream-Status: Pending
+Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
+---
+ configure.in | 6 ++++++
+ include/apr.h.in | 1 +
+ test/testlock.c | 4 ++--
+ 3 files changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index d9f32d6..f0c5661 100644
+--- a/configure.in
++++ b/configure.in
+@@ -2886,6 +2886,12 @@ AC_ARG_ENABLE(timedlocks,
+ )
+ AC_SUBST(apr_has_timedlocks)
+
++AC_ARG_ENABLE(timed-tests,
++ [ --disable-timed-tests Disable timed tests ],
++ [apr_has_timedtests="0"], [apr_has_timedtests="1"]
++)
++AC_SUBST(apr_has_timedtests)
++
+ # hstrerror is only needed if IPv6 is not enabled,
+ # so getaddrinfo/gai_strerror are not used.
+ if test $have_ipv6 = 0; then
+diff --git a/include/apr.h.in b/include/apr.h.in
+index ee99def..c46a5f4 100644
+--- a/include/apr.h.in
++++ b/include/apr.h.in
+@@ -298,6 +298,7 @@ extern "C" {
+ #define APR_HAS_XTHREAD_FILES @apr_has_xthread_files@
+ #define APR_HAS_OS_UUID @osuuid@
+ #define APR_HAS_TIMEDLOCKS @apr_has_timedlocks@
++#define APR_HAVE_TIME_DEPENDANT_TESTS @apr_has_timedtests@
+
+ #define APR_PROCATTR_USER_SET_REQUIRES_PASSWORD @apr_procattr_user_set_requires_password@
+
+diff --git a/test/testlock.c b/test/testlock.c
+index a43f477..6233d0b 100644
+--- a/test/testlock.c
++++ b/test/testlock.c
+@@ -396,13 +396,13 @@ abts_suite *testlock(abts_suite *suite)
+ abts_run_test(suite, threads_not_impl, NULL);
+ #else
+ abts_run_test(suite, test_thread_mutex, NULL);
+-#if APR_HAS_TIMEDLOCKS
++#if APR_HAS_TIMEDLOCKS && APR_HAVE_TIME_DEPENDANT_TESTS
+ abts_run_test(suite, test_thread_timedmutex, NULL);
+ #endif
+ abts_run_test(suite, test_thread_rwlock, NULL);
+ abts_run_test(suite, test_cond, NULL);
+ abts_run_test(suite, test_timeoutcond, NULL);
+-#if APR_HAS_TIMEDLOCKS
++#if APR_HAS_TIMEDLOCKS && APR_HAVE_TIME_DEPENDANT_TESTS
+ abts_run_test(suite, test_timeoutmutex, NULL);
+ #endif
+ #endif
+--
+2.23.0
+
diff --git a/meta/recipes-support/apr/apr_1.7.0.bb b/meta/recipes-support/apr/apr_1.7.0.bb
index eca9cdea48..7073af8c98 100644
--- a/meta/recipes-support/apr/apr_1.7.0.bb
+++ b/meta/recipes-support/apr/apr_1.7.0.bb
@@ -18,12 +18,13 @@ SRC_URI = "${APACHE_MIRROR}/apr/${BPN}-${PV}.tar.bz2 \
file://0006-apr-fix-off_t-size-doesn-t-match-in-glibc-when-cross.patch \
file://0007-explicitly-link-libapr-against-phtread-to-make-gold-.patch \
file://libtoolize_check.patch \
+ file://0001-Add-option-to-disable-timed-dependant-tests.patch \
"
SRC_URI[md5sum] = "7a14a83d664e87599ea25ff4432e48a7"
SRC_URI[sha256sum] = "e2e148f0b2e99b8e5c6caa09f6d4fb4dd3e83f744aa72a952f94f5a14436f7ea"
-inherit autotools-brokensep lib_package binconfig multilib_header ptest
+inherit autotools-brokensep lib_package binconfig multilib_header ptest multilib_script
OE_BINCONFIG_EXTRA_MANGLE = " -e 's:location=source:location=installed:'"
@@ -39,6 +40,7 @@ CACHED_CONFIGUREVARS += "ac_cv_file__dev_zero=yes"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+PACKAGECONFIG[timed-tests] = "--enable-timed-tests,--disable-timed-tests,"
do_configure_prepend() {
# Avoid absolute paths for grep since it causes failures
@@ -51,6 +53,9 @@ do_configure_prepend() {
./buildconf 2
}
+MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/apr-1-config \
+ ${PN}-dev:${datadir}/build-1/apr_rules.mk"
+
FILES_${PN}-dev += "${libdir}/apr.exp ${datadir}/build-1/*"
RDEPENDS_${PN}-dev += "bash"
diff --git a/meta/recipes-support/atk/at-spi2-atk_2.32.0.bb b/meta/recipes-support/atk/at-spi2-atk_2.34.2.bb
index b717a9c7f7..02a4d4712c 100644
--- a/meta/recipes-support/atk/at-spi2-atk_2.32.0.bb
+++ b/meta/recipes-support/atk/at-spi2-atk_2.34.2.bb
@@ -1,15 +1,15 @@
SUMMARY = "AT-SPI 2 Toolkit Bridge"
HOMEPAGE = "https://wiki.linuxfoundation.org/accessibility/d-bus"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e9f288ba982d60518f375b5898283886"
+LICENSE = "LGPL-2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-SRC_URI[archive.md5sum] = "6a4b27bace3b9352721ed462b95f6291"
-SRC_URI[archive.sha256sum] = "0b51e6d339fa2bcca3a3e3159ccea574c67b107f1ac8b00047fa60e34ce7a45c"
+SRC_URI[archive.md5sum] = "58cd278574e101363b18d9a8b7053d67"
+SRC_URI[archive.sha256sum] = "901323cee0eef05c01ec4dee06c701aeeca81a314a7d60216fa363005e27f4f0"
DEPENDS = "dbus glib-2.0 glib-2.0-native atk at-spi2-core libxml2"
GNOMEBASEBUILDCLASS = "meson"
-inherit gnomebase features_check upstream-version-is-even
+inherit gnomebase upstream-version-is-even
PACKAGES =+ "${PN}-gnome ${PN}-gtk2"
@@ -17,5 +17,3 @@ FILES_${PN}-gnome = "${libdir}/gnome-settings-daemon-3.0/gtk-modules"
FILES_${PN}-gtk2 = "${libdir}/gtk-2.0/modules/libatk-bridge.*"
BBCLASSEXTEND = "native nativesdk"
-
-CFLAGS += "-fcommon"
diff --git a/meta/recipes-support/atk/at-spi2-core/0001-Fix-source-reproducibility.patch b/meta/recipes-support/atk/at-spi2-core/0001-Fix-source-reproducibility.patch
deleted file mode 100644
index 7631969cd6..0000000000
--- a/meta/recipes-support/atk/at-spi2-core/0001-Fix-source-reproducibility.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From b7fa0aa00b07e03e338dd02af564431bf2f2b185 Mon Sep 17 00:00:00 2001
-From: Joshua Watt <Joshua.Watt@garmin.com>
-Date: Wed, 20 Nov 2019 15:24:02 -0600
-Subject: [PATCH] Fix source reproducibility
-
-The generated enum type files can be included in source packages meant
-for debugging, and thus need to be reproducible. Replace the absolute
-include of the header with the basename. This is sufficient because the
-target include files are always in the include path anyway.
-
-Upstream-Status: Accepted [https://gitlab.gnome.org/GNOME/at-spi2-core/merge_requests/25]
-Signed-off-by: Joshua Watt <Joshua.Watt@garmin.com>
----
- atspi/atspi-enum-types.c.template | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/atspi/atspi-enum-types.c.template b/atspi/atspi-enum-types.c.template
-index 385d0ee..92e4937 100644
---- a/atspi/atspi-enum-types.c.template
-+++ b/atspi/atspi-enum-types.c.template
-@@ -5,7 +5,7 @@
-
- /*** BEGIN file-production ***/
- /* enumerations from "@basename@" */
--#include "@filename@"
-+#include "@basename@"
-
- /*** END file-production ***/
-
---
-2.23.0
-
diff --git a/meta/recipes-support/atk/at-spi2-core_2.32.1.bb b/meta/recipes-support/atk/at-spi2-core_2.36.1.bb
index 18b5de2d58..218af6afa7 100644
--- a/meta/recipes-support/atk/at-spi2-core_2.32.1.bb
+++ b/meta/recipes-support/atk/at-spi2-core_2.36.1.bb
@@ -1,15 +1,14 @@
SUMMARY = "Assistive Technology Service Provider Interface (dbus core)"
HOMEPAGE = "https://wiki.linuxfoundation.org/accessibility/d-bus"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e9f288ba982d60518f375b5898283886"
+LICENSE = "LGPL-2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
-SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \
- file://0001-Fix-source-reproducibility.patch"
+SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "998fd9d858f8fa22c4c8c15567bf6254"
-SRC_URI[sha256sum] = "3c2aa937ebfaca2c86569bce9b16a34fbe20d69ef0c58846313b1c42f53b0d53"
+SRC_URI[md5sum] = "d01e5326b4eb15ac3c27eed73ecf26f1"
+SRC_URI[sha256sum] = "97417b909dbbf000e7b21062a13b2f1fd52a336f5a53925bb26d27b65ace6c54"
X11DEPENDS = "virtual/libx11 libxi libxtst"
diff --git a/meta/recipes-support/atk/atk/0001-meson.build-enable-introspection-for-cross-compile.patch b/meta/recipes-support/atk/atk/0001-meson.build-enable-introspection-for-cross-compile.patch
deleted file mode 100644
index d1b08bc04b..0000000000
--- a/meta/recipes-support/atk/atk/0001-meson.build-enable-introspection-for-cross-compile.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 44d46baa5e1519c6c3df7e4d34fb333e247b5bc8 Mon Sep 17 00:00:00 2001
-From: Anuj Mittal <anuj.mittal@intel.com>
-Date: Fri, 6 Apr 2018 12:04:00 +0800
-Subject: [PATCH] meson.build: enable introspection for cross-compile
-
-It works fine in OE-core and doesn't need to be disabled. Let the user decide
-if it should be disabled or not.
-
-Upstream-Status: Pending
-
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
-
----
- atk/meson.build | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/atk/meson.build b/atk/meson.build
-index 0ad67e5..1d2a49c 100644
---- a/atk/meson.build
-+++ b/atk/meson.build
-@@ -137,7 +137,7 @@ libatk_dep = declare_dependency(link_with: libatk,
- dependencies: glib_dep,
- sources: atk_enum_h)
-
--if not meson.is_cross_build() and get_option('introspection')
-+if get_option('introspection')
- gnome.generate_gir(libatk,
- sources: atk_sources + atk_headers + [ atk_enum_h ] + [ atk_version_h ],
- namespace: 'Atk',
diff --git a/meta/recipes-support/atk/atk_2.32.0.bb b/meta/recipes-support/atk/atk_2.36.0.bb
index 67223729e9..0786eeebe8 100644
--- a/meta/recipes-support/atk/atk_2.32.0.bb
+++ b/meta/recipes-support/atk/atk_2.36.0.bb
@@ -14,9 +14,8 @@ DEPENDS = "gettext-native glib-2.0"
GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase gtk-doc gettext upstream-version-is-even gobject-introspection
-SRC_URI += " file://0001-meson.build-enable-introspection-for-cross-compile.patch"
-SRC_URI[archive.md5sum] = "c10b0b2af3c199e42caa6275b845c49d"
-SRC_URI[archive.sha256sum] = "cb41feda7fe4ef0daa024471438ea0219592baf7c291347e5a858bb64e4091cc"
+SRC_URI[archive.md5sum] = "01aa5ec5138f5f8c9b3a4e3196ed2900"
+SRC_URI[archive.sha256sum] = "fb76247e369402be23f1f5c65d38a9639c1164d934e40f6a9cf3c9e96b652788"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/attr/attr.inc b/meta/recipes-support/attr/attr.inc
index f13a83a7b4..0c3330a686 100644
--- a/meta/recipes-support/attr/attr.inc
+++ b/meta/recipes-support/attr/attr.inc
@@ -8,6 +8,7 @@ LICENSE = "LGPLv2.1+ & GPLv2+"
LICENSE_${PN} = "GPLv2+"
LICENSE_lib${BPN} = "LGPLv2.1+"
LIC_FILES_CHKSUM = "file://doc/COPYING;md5=2d0aa14b3fce4694e4f615e30186335f \
+ file://doc/COPYING.LGPL;md5=b8d31f339300bc239d73461d68e77b9c \
file://tools/attr.c;endline=17;md5=be0403261f0847e5f43ed5b08d19593c \
file://libattr/libattr.c;endline=17;md5=7970f77049f8fa1199fff62a7ab724fb"
diff --git a/meta/recipes-support/bash-completion/bash-completion_2.10.bb b/meta/recipes-support/bash-completion/bash-completion_2.11.bb
index 041af7490e..da0baa7afc 100644
--- a/meta/recipes-support/bash-completion/bash-completion_2.10.bb
+++ b/meta/recipes-support/bash-completion/bash-completion_2.11.bb
@@ -9,8 +9,8 @@ SECTION = "console/utils"
SRC_URI = "https://github.com/scop/bash-completion/releases/download/${PV}/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "f376ae3266cc70017aa833c39b76f984"
-SRC_URI[sha256sum] = "123c17998e34b937ce57bb1b111cd817bc369309e9a8047c0bcf06ead4a3ec92"
+SRC_URI[md5sum] = "2514c6772d0de6254758b98c53f91861"
+SRC_URI[sha256sum] = "73a8894bad94dee83ab468fa09f628daffd567e8bef1a24277f1e9a0daf911ac"
UPSTREAM_CHECK_REGEX = "bash-completion-(?P<pver>(?!2008).+)\.tar"
UPSTREAM_CHECK_URI = "https://github.com/scop/bash-completion/releases"
diff --git a/meta/recipes-support/bmap-tools/bmap-tools_3.5.bb b/meta/recipes-support/bmap-tools/bmap-tools_3.5.bb
index 7c4db85b32..fd57f8f7f0 100644
--- a/meta/recipes-support/bmap-tools/bmap-tools_3.5.bb
+++ b/meta/recipes-support/bmap-tools/bmap-tools_3.5.bb
@@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "git://github.com/intel/${BPN}"
-SRCREV = "db7087b883bf52cbff063ad17a41cc1cbb85104d"
+SRCREV = "a17f0e3ff8669dd3b1c44a741ae4f8162155faed"
S = "${WORKDIR}/git"
PV .= "+git${SRCPV}"
@@ -22,4 +22,4 @@ RDEPENDS_${PN} = "python3-core python3-compression python3-mmap python3-setuptoo
inherit python3native
inherit setuptools3
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/boost/bjam-native_1.72.0.bb b/meta/recipes-support/boost/bjam-native_1.72.0.bb
deleted file mode 100644
index d843eb038c..0000000000
--- a/meta/recipes-support/boost/bjam-native_1.72.0.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-require boost-${PV}.inc
-
-SUMMARY = "Portable Boost.Jam build tool for boost"
-SECTION = "devel"
-
-inherit native
-
-SRC_URI += "file://0001-Build-debug-version-of-bjam.patch \
- file://0001-build.sh-use-DNDEBUG-also-in-debug-builds.patch \
- "
-
-do_compile() {
- ./bootstrap.sh --with-toolset=gcc
-}
-
-do_install() {
- install -d ${D}${bindir}/
- # install unstripped version for bjam
- install -c -m 755 b2 ${D}${bindir}/bjam
-}
diff --git a/meta/recipes-support/boost/boost-1.72.0.inc b/meta/recipes-support/boost/boost-1.74.0.inc
index 55a095bf1c..b47fdaf099 100644
--- a/meta/recipes-support/boost/boost-1.72.0.inc
+++ b/meta/recipes-support/boost/boost-1.74.0.inc
@@ -12,8 +12,7 @@ BOOST_MAJ = "${@"_".join(d.getVar("PV").split(".")[0:2])}"
BOOST_P = "boost_${BOOST_VER}"
SRC_URI = "https://dl.bintray.com/boostorg/release/${PV}/source/${BOOST_P}.tar.bz2"
-SRC_URI[md5sum] = "cb40943d2a2cb8ce08d42bc48b0f84f0"
-SRC_URI[sha256sum] = "59c9b274bc451cf91a9ba1dd2c7fdcaf5d60b1b3aa83f2c9fa143417cc660722"
+SRC_URI[sha256sum] = "83bfc1507731a0906e387fc28b7ef5417d591429e51e788417fe9ff025e116b1"
UPSTREAM_CHECK_URI = "http://www.boost.org/users/download/"
UPSTREAM_CHECK_REGEX = "boostorg/release/(?P<pver>.*)/source/"
diff --git a/meta/recipes-support/boost/boost-build-native_4.3.0.bb b/meta/recipes-support/boost/boost-build-native_4.3.0.bb
new file mode 100644
index 0000000000..258f8c9cdf
--- /dev/null
+++ b/meta/recipes-support/boost/boost-build-native_4.3.0.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Boost.Build"
+SECTION = "devel"
+
+LICENSE = "BSL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
+
+SRC_URI = "git://github.com/boostorg/build;protocol=https"
+SRCREV = "632ea768f3eb225b4472c5ed6d20afee708724ad"
+
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+){2,}))"
+
+inherit native
+
+S = "${WORKDIR}/git"
+
+do_compile() {
+ ./bootstrap.sh
+}
+
+do_install() {
+ ./b2 install --prefix=${prefix} staging-prefix=${D}${prefix}
+}
+
+# The build is either release mode (pre-stripped) or debug (-O0).
+INSANE_SKIP_${PN} = "already-stripped"
diff --git a/meta/recipes-support/boost/boost.inc b/meta/recipes-support/boost/boost.inc
index e15dce4e1d..cbf9cad707 100644
--- a/meta/recipes-support/boost/boost.inc
+++ b/meta/recipes-support/boost/boost.inc
@@ -1,21 +1,28 @@
SUMMARY = "Free peer-reviewed portable C++ source libraries"
SECTION = "libs"
-DEPENDS = "bjam-native zlib bzip2"
+DEPENDS = "boost-build-native zlib bzip2"
CVE_PRODUCT = "boost:boost"
ARM_INSTRUCTION_SET_armv4 = "arm"
ARM_INSTRUCTION_SET_armv5 = "arm"
+B = "${WORKDIR}/build"
+do_configure[cleandirs] = "${B}"
+
BOOST_LIBS = "\
atomic \
chrono \
container \
+ context \
contract \
+ coroutine \
date_time \
exception \
+ fiber \
filesystem \
graph \
+ headers \
iostreams \
log \
math \
@@ -24,23 +31,13 @@ BOOST_LIBS = "\
regex \
serialization \
system \
- timer \
test \
thread \
+ timer \
+ type_erasure \
wave \
"
-# only supported by x86 and powerpc
-BOOST_LIBS_append_x86 = " context coroutine"
-BOOST_LIBS_append_x86-64 = " context coroutine"
-BOOST_LIBS_append_powerpc = " context coroutine"
-BOOST_LIBS_append_arm = " context coroutine"
-BOOST_LIBS_append_aarch64 = " context coroutine"
-# need consistent settings for native builds (x86 override not applied for native)
-BOOST_LIBS_remove_class-native = " context coroutine"
-# does not compile
-BOOST_LIBS_remove_mips16e = "wave"
-
# optional libraries
PACKAGECONFIG ??= "locale python"
PACKAGECONFIG[locale] = ",,icu"
@@ -62,12 +59,16 @@ PACKAGES = "${PN}-dbg ${BOOST_PACKAGES}"
python __anonymous () {
packages = []
extras = []
+ mlprefix = d.getVar("MLPREFIX")
for lib in d.getVar('BOOST_LIBS').split():
extras.append("--with-%s" % lib)
- pkg = "boost-%s" % lib.replace("_", "-")
- packages.append(pkg)
+ pkg = "boost-%s" % (lib.replace("_", "-"))
+ packages.append(mlprefix + pkg)
if not d.getVar("FILES_%s" % pkg):
- d.setVar("FILES_%s" % pkg, "${libdir}/libboost_%s*.so.*" % lib)
+ d.setVar("FILES_%s%s" % (mlprefix, pkg), "${libdir}/libboost_%s*.so.*" % lib)
+ else:
+ d.setVar("FILES_%s%s" % (mlprefix, pkg), d.getVar("FILES_%s" % pkg))
+
d.setVar("BOOST_PACKAGES", " ".join(packages))
d.setVar("BJAM_EXTRA", " ".join(extras))
}
@@ -142,7 +143,7 @@ BOOST_PARALLEL_MAKE = "${@oe.utils.parallel_make_argument(d, '-j%d')}"
BJAM_OPTS = '${BOOST_PARALLEL_MAKE} -d+2 -q \
${BJAM_TOOLS} \
-sBOOST_BUILD_USER_CONFIG=${WORKDIR}/user-config.jam \
- --build-dir=${S}/${TARGET_SYS} \
+ --build-dir=${B} \
--disable-icu \
${BJAM_EXTRA}'
@@ -157,11 +158,12 @@ BJAM_OPTS_append_arm = " abi=aapcs architecture=arm"
BJAM_OPTS_append_aarch64 = " abi=aapcs address-model=64 architecture=arm"
do_configure() {
+ cd ${S}
cp -f ${S}/boost/config/platform/linux.hpp ${S}/boost/config/platform/linux-gnueabi.hpp
# D2194:Fixing the failure of "error: duplicate initialization of gcc with the following parameters" during compilation.
rm -f ${WORKDIR}/user-config.jam
- echo 'using gcc : 4.3.1 : ${CXX} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;' >> ${WORKDIR}/user-config.jam
+ echo 'using gcc : : ${CXX} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;' >> ${WORKDIR}/user-config.jam
# If we want Python then we need to tell Boost *exactly* where to find it
if ${@bb.utils.contains('BOOST_LIBS', 'python', 'true', 'false', d)}; then
@@ -172,7 +174,7 @@ do_configure() {
echo "using mpi : : <find-shared-library>mpi ;" >> ${WORKDIR}/user-config.jam
fi
- CC="${BUILD_CC}" CFLAGS="${BUILD_CFLAGS}" ./bootstrap.sh --with-bjam=bjam --with-toolset=gcc
+ CC="${BUILD_CC}" CFLAGS="${BUILD_CFLAGS}" ./bootstrap.sh --with-bjam=b2 --with-toolset=gcc
# Boost can't be trusted to find Python on it's own, so remove any mention
# of it from the boost configuration
@@ -180,8 +182,9 @@ do_configure() {
}
do_compile() {
- rm -rf ${S}/${TARGET_SYS}
- bjam ${BJAM_OPTS} --prefix=${prefix} \
+ cd ${S}
+ b2 ${BJAM_OPTS} \
+ --prefix=${prefix} \
--exec-prefix=${exec_prefix} \
--libdir=${libdir} \
--includedir=${includedir} \
@@ -189,7 +192,8 @@ do_compile() {
}
do_install() {
- bjam ${BJAM_OPTS} \
+ cd ${S}
+ b2 ${BJAM_OPTS} \
--libdir=${D}${libdir} \
--includedir=${D}${includedir} \
install
@@ -202,6 +206,11 @@ do_install() {
fi
done
+ # Cmake files reference full paths to image
+ find ${D}${libdir}/cmake -type f | \
+ grep 'cmake$' | \
+ xargs -n 1 sed -e 's,${D}${libdir}/cmake,${libdir}/cmake,' -i
+
}
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch b/meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch
index 68d6e6417f..91ab53efd9 100644
--- a/meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch
+++ b/meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch
@@ -1,21 +1,23 @@
-From f4d3fad43d67808d71325ba0df1457555b9a0086 Mon Sep 17 00:00:00 2001
+From 8e1d30454afde37eaa3c593ec19d108cd5ed10d0 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Tue, 18 Dec 2018 15:42:57 +0100
-Subject: [PATCH] Don't set up arch/instruction-set flags, we do that ourselves
+Subject: [PATCH] Don't set up arch/instruction-set flags, we do that
+
+ourselves
Upstream-Status: Inappropriate
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
- tools/build/src/tools/gcc.jam | 132 ----------------------------------
- 1 file changed, 132 deletions(-)
+ tools/build/src/tools/gcc.jam | 139 ----------------------------------
+ 1 file changed, 139 deletions(-)
diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam
-index b9bb9cf2a..c7e3cf3fe 100644
+index ff3209f7b..70cbc39a5 100644
--- a/tools/build/src/tools/gcc.jam
+++ b/tools/build/src/tools/gcc.jam
-@@ -1180,135 +1180,3 @@ local rule cpu-flags ( toolset variable : architecture : instruction-set + :
+@@ -1217,142 +1217,3 @@ local rule cpu-flags ( toolset variable : architecture : instruction-set + :
<architecture>$(architecture)/<instruction-set>$(instruction-set)
: $(values) ;
}
@@ -65,7 +67,11 @@ index b9bb9cf2a..c7e3cf3fe 100644
-cpu-flags gcc OPTIONS : x86 : skylake : -march=skylake ;
-cpu-flags gcc OPTIONS : x86 : skylake-avx512 : -march=skylake-avx512 ;
-cpu-flags gcc OPTIONS : x86 : cannonlake : -march=skylake-avx512 -mavx512vbmi -mavx512ifma -msha ;
--cpu-flags gcc OPTIONS : x86 : icelake : -march=icelake ;
+-cpu-flags gcc OPTIONS : x86 : icelake-client : -march=icelake-client ;
+-cpu-flags gcc OPTIONS : x86 : icelake-server : -march=icelake-server ;
+-cpu-flags gcc OPTIONS : x86 : cascadelake : -march=skylake-avx512 -mavx512vnni ;
+-cpu-flags gcc OPTIONS : x86 : cooperlake : -march=cooperlake ;
+-cpu-flags gcc OPTIONS : x86 : tigerlake : -march=tigerlake ;
-cpu-flags gcc OPTIONS : x86 : k6 : -march=k6 ;
-cpu-flags gcc OPTIONS : x86 : k6-2 : -march=k6-2 ;
-cpu-flags gcc OPTIONS : x86 : k6-3 : -march=k6-3 ;
@@ -91,10 +97,12 @@ index b9bb9cf2a..c7e3cf3fe 100644
-cpu-flags gcc OPTIONS : x86 : btver1 : -march=btver1 ;
-cpu-flags gcc OPTIONS : x86 : btver2 : -march=btver2 ;
-cpu-flags gcc OPTIONS : x86 : znver1 : -march=znver1 ;
+-cpu-flags gcc OPTIONS : x86 : znver2 : -march=znver2 ;
-cpu-flags gcc OPTIONS : x86 : winchip-c6 : -march=winchip-c6 ;
-cpu-flags gcc OPTIONS : x86 : winchip2 : -march=winchip2 ;
-cpu-flags gcc OPTIONS : x86 : c3 : -march=c3 ;
-cpu-flags gcc OPTIONS : x86 : c3-2 : -march=c3-2 ;
+-cpu-flags gcc OPTIONS : x86 : c7 : -march=c7 ;
-##
-cpu-flags gcc OPTIONS : x86 : atom : -march=atom ;
-# Sparc
@@ -149,5 +157,6 @@ index b9bb9cf2a..c7e3cf3fe 100644
-cpu-flags gcc OPTIONS : s390x : zEC12 : -march=zEC12 ;
-cpu-flags gcc OPTIONS : s390x : z13 : -march=z13 ;
-cpu-flags gcc OPTIONS : s390x : z14 : -march=z14 ;
+-cpu-flags gcc OPTIONS : s390x : z15 : -march=z15 ;
-# AIX variant of RS/6000 & PowerPC
-toolset.flags gcc AROPTIONS <address-model>64/<target-os>aix : "-X64" ;
diff --git a/meta/recipes-support/boost/boost/0001-fiber-libs-Define-SYS_futex-if-it-does-not-exist.patch b/meta/recipes-support/boost/boost/0001-fiber-libs-Define-SYS_futex-if-it-does-not-exist.patch
new file mode 100644
index 0000000000..523568e9bc
--- /dev/null
+++ b/meta/recipes-support/boost/boost/0001-fiber-libs-Define-SYS_futex-if-it-does-not-exist.patch
@@ -0,0 +1,54 @@
+From d6f7b6064dc91d1d5fa18554b40b14822ab7a32b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 16 Oct 2020 11:13:22 -0700
+Subject: [PATCH] fiber,libs: Define SYS_futex if it does not exist
+
+__NR_futex is not defines by newer architectures e.g. arc, riscv32 as
+they only have 64bit variant of time_t. Glibc defines SYS_futex interface based on
+__NR_futex, since this is used in applications, such applications start
+to fail to build for these newer architectures. This patch defines a
+fallback to alias __NR_futex to __NR_futex_tim64 so SYS_futex keeps
+working
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ boost/fiber/detail/futex.hpp | 5 +++++
+ libs/log/src/event.cpp | 4 ++++
+ 2 files changed, 9 insertions(+)
+
+diff --git a/boost/fiber/detail/futex.hpp b/boost/fiber/detail/futex.hpp
+index e64bd5990..16bee64f1 100644
+--- a/boost/fiber/detail/futex.hpp
++++ b/boost/fiber/detail/futex.hpp
+@@ -17,6 +17,11 @@ extern "C" {
+ #include <linux/futex.h>
+ #include <sys/syscall.h>
+ }
++
++#if !defined(SYS_futex) && defined(SYS_futex_time64)
++#define SYS_futex SYS_futex_time64
++#endif
++
+ #elif BOOST_OS_WINDOWS
+ #include <windows.h>
+ #endif
+diff --git a/libs/log/src/event.cpp b/libs/log/src/event.cpp
+index 5485154d7..2c7c0381f 100644
+--- a/libs/log/src/event.cpp
++++ b/libs/log/src/event.cpp
+@@ -31,6 +31,10 @@
+ #include <linux/futex.h>
+ #include <boost/memory_order.hpp>
+
++#if !defined(SYS_futex) && defined(SYS_futex_time64)
++#define SYS_futex SYS_futex_time64
++#endif
++
+ // Some Android NDKs (Google NDK and older Crystax.NET NDK versions) don't define SYS_futex
+ #if defined(SYS_futex)
+ #define BOOST_LOG_SYS_FUTEX SYS_futex
+--
+2.28.0
+
diff --git a/meta/recipes-support/boost/boost_1.72.0.bb b/meta/recipes-support/boost/boost_1.74.0.bb
index 5e9e0d87d7..b01b390a59 100644
--- a/meta/recipes-support/boost/boost_1.72.0.bb
+++ b/meta/recipes-support/boost/boost_1.74.0.bb
@@ -7,4 +7,5 @@ SRC_URI += "file://arm-intrinsics.patch \
file://0001-Apply-boost-1.62.0-no-forced-flags.patch.patch \
file://0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch \
file://0001-dont-setup-compiler-flags-m32-m64.patch \
+ file://0001-fiber-libs-Define-SYS_futex-if-it-does-not-exist.patch \
"
diff --git a/meta/recipes-support/boost/files/0001-Build-debug-version-of-bjam.patch b/meta/recipes-support/boost/files/0001-Build-debug-version-of-bjam.patch
deleted file mode 100644
index c6dcee915e..0000000000
--- a/meta/recipes-support/boost/files/0001-Build-debug-version-of-bjam.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 19c117c3d1388654da484e26afb3fb6c3e4181a9 Mon Sep 17 00:00:00 2001
-From: Daniel Klauer <daniel.klauer@gin.de>
-Date: Tue, 30 Jul 2019 11:39:09 +0200
-Subject: [PATCH] Build debug version of bjam
-
-bjam is stripped by default, this causes QA warning while stripping it
-from do_populate_sysroot():
-
- WARNING: File '.../tmp/sysroots/x86_64-linux/usr/bin/bjam' \
- from bjam-native was already stripped, \
- this will prevent future debugging!
-
-The JAM scripts allow to build unstripped version with '--debug'. Just
-build and install the bjam.debug to stop bjam from being stripped in
-compile step.
-
-Upstream-Status: Inappropriate [configuration]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- bootstrap.sh | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/bootstrap.sh b/bootstrap.sh
-index ca0b08d58..87f38dcf2 100755
---- a/bootstrap.sh
-+++ b/bootstrap.sh
-@@ -223,7 +223,7 @@ rm -f config.log
- if test "x$BJAM" = x; then
- $ECHO -n "Building Boost.Build engine with toolset $TOOLSET... "
- pwd=`pwd`
-- (cd "$my_dir/tools/build/src/engine" && ./build.sh "$TOOLSET") > bootstrap.log 2>&1
-+ (cd "$my_dir/tools/build/src/engine" && ./build.sh "$TOOLSET" --debug) > bootstrap.log 2>&1
- if [ $? -ne 0 ]; then
- echo
- echo "Failed to build Boost.Build build engine"
---
-2.17.1
-
diff --git a/meta/recipes-support/boost/files/0001-build.sh-use-DNDEBUG-also-in-debug-builds.patch b/meta/recipes-support/boost/files/0001-build.sh-use-DNDEBUG-also-in-debug-builds.patch
deleted file mode 100644
index 4c6ef2ed84..0000000000
--- a/meta/recipes-support/boost/files/0001-build.sh-use-DNDEBUG-also-in-debug-builds.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 2afd025997a57794ce24e07e914b461dfea6ba5f Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Mon, 26 Aug 2019 16:04:16 +0200
-Subject: [PATCH] build.sh: use -DNDEBUG also in debug builds
-
-Without it, there is a significant performance regression
-when running 'bjam install'.
-
-Upstream-Status: Inappropriate [configuration]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- tools/build/src/engine/build.sh | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tools/build/src/engine/build.sh b/tools/build/src/engine/build.sh
-index a1e4cd335..64e0a4c80 100755
---- a/tools/build/src/engine/build.sh
-+++ b/tools/build/src/engine/build.sh
-@@ -436,7 +436,7 @@ case $B2_OS in
- ;;
- esac
-
--if check_debug_build "$@" ; then B2_CXXFLAGS="${B2_CXXFLAGS_DEBUG}"
-+if check_debug_build "$@" ; then B2_CXXFLAGS="${B2_CXXFLAGS_DEBUG} -DNDEBUG"
- else B2_CXXFLAGS="${B2_CXXFLAGS_RELEASE} -DNDEBUG"
- fi
- echo_run ${B2_CXX} ${CXXFLAGS} ${B2_CXXFLAGS} ${B2_SOURCES} -o b2
diff --git a/meta/recipes-support/ca-certificates/ca-certificates_20190110.bb b/meta/recipes-support/ca-certificates/ca-certificates_20200601.bb
index ce3cb217a1..6f39df7985 100644
--- a/meta/recipes-support/ca-certificates/ca-certificates_20190110.bb
+++ b/meta/recipes-support/ca-certificates/ca-certificates_20200601.bb
@@ -5,7 +5,7 @@ This derived from Debian's CA Certificates."
HOMEPAGE = "http://packages.debian.org/sid/ca-certificates"
SECTION = "misc"
LICENSE = "GPL-2.0+ & MPL-2.0"
-LIC_FILES_CHKSUM = "file://debian/copyright;md5=aeb420429b1659507e0a5a1b123e8308"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=ae5b36b514e3f12ce1aa8e2ee67f3d7e"
# This is needed to ensure we can run the postinst at image creation time
DEPENDS = ""
@@ -14,7 +14,7 @@ DEPENDS_class-nativesdk = "openssl-native"
# Need rehash from openssl and run-parts from debianutils
PACKAGE_WRITE_DEPS += "openssl-native debianutils-native"
-SRCREV = "c28799b138b044c963d24c4a69659b6e5486e3be"
+SRCREV = "b3a8980b781bc9a370e42714a605cd4191bb6c0b"
SRC_URI = "git://salsa.debian.org/debian/ca-certificates.git;protocol=https \
file://0002-update-ca-certificates-use-SYSROOT.patch \
@@ -25,6 +25,7 @@ SRC_URI = "git://salsa.debian.org/debian/ca-certificates.git;protocol=https \
file://0003-update-ca-certificates-use-relative-symlinks-from-ET.patch \
file://0001-certdata2pem.py-use-python3.patch \
"
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+)"
S = "${WORKDIR}/git"
diff --git a/meta/recipes-support/curl/curl_7.68.0.bb b/meta/recipes-support/curl/curl_7.72.0.bb
index 0a1547c082..7d0268253d 100644
--- a/meta/recipes-support/curl/curl_7.68.0.bb
+++ b/meta/recipes-support/curl/curl_7.72.0.bb
@@ -5,14 +5,15 @@ SECTION = "console/network"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=2e9fb35867314fe31c6a4977ef7dd531"
-SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2 \
+SRC_URI = "https://curl.haxx.se/download/curl-${PV}.tar.bz2 \
file://0001-replace-krb5-config-with-pkg-config.patch \
"
-SRC_URI[md5sum] = "40d6784bd1a86e079d63cc668ba9bd8f"
-SRC_URI[sha256sum] = "207f54917dd6a2dc733065ccf18d61bb5bebeaceb5df49cd9445483e8623eeb9"
+SRC_URI[sha256sum] = "ad91970864102a59765e20ce16216efc9d6ad381471f7accceceab7d905703ef"
+
+# Curl has used many names over the years...
+CVE_PRODUCT = "haxx:curl haxx:libcurl curl:curl curl:libcurl libcurl:libcurl daniel_stenberg:curl"
-CVE_PRODUCT = "curl libcurl"
inherit autotools pkgconfig binconfig multilib_header
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} gnutls libidn proxy threaded-resolver verbose zlib"
@@ -20,7 +21,7 @@ PACKAGECONFIG_class-native = "ipv6 proxy ssl threaded-resolver verbose zlib"
PACKAGECONFIG_class-nativesdk = "ipv6 proxy ssl threaded-resolver verbose zlib"
# 'ares' and 'threaded-resolver' are mutually exclusive
-PACKAGECONFIG[ares] = "--enable-ares,--disable-ares,c-ares"
+PACKAGECONFIG[ares] = "--enable-ares,--disable-ares,c-ares,,,threaded-resolver"
PACKAGECONFIG[brotli] = "--with-brotli,--without-brotli,brotli"
PACKAGECONFIG[builtinmanual] = "--enable-manual,--disable-manual"
PACKAGECONFIG[dict] = "--enable-dict,--disable-dict,"
@@ -34,6 +35,7 @@ PACKAGECONFIG[ldaps] = "--enable-ldaps,--disable-ldaps,"
PACKAGECONFIG[libidn] = "--with-libidn2,--without-libidn2,libidn2"
PACKAGECONFIG[libssh2] = "--with-libssh2,--without-libssh2,libssh2"
PACKAGECONFIG[mbedtls] = "--with-mbedtls=${STAGING_DIR_TARGET},--without-mbedtls,mbedtls"
+PACKAGECONFIG[mqtt] = "--enable-mqtt,--disable-mqtt,"
PACKAGECONFIG[nghttp2] = "--with-nghttp2,--without-nghttp2,nghttp2"
PACKAGECONFIG[pop3] = "--enable-pop3,--disable-pop3,"
PACKAGECONFIG[proxy] = "--enable-proxy,--disable-proxy,"
@@ -45,7 +47,7 @@ PACKAGECONFIG[ssl] = "--with-ssl --with-random=/dev/urandom,--without-ssl,openss
PACKAGECONFIG[nss] = "--with-nss,--without-nss,nss"
PACKAGECONFIG[telnet] = "--enable-telnet,--disable-telnet,"
PACKAGECONFIG[tftp] = "--enable-tftp,--disable-tftp,"
-PACKAGECONFIG[threaded-resolver] = "--enable-threaded-resolver,--disable-threaded-resolver"
+PACKAGECONFIG[threaded-resolver] = "--enable-threaded-resolver,--disable-threaded-resolver,,,,ares"
PACKAGECONFIG[verbose] = "--enable-verbose,--disable-verbose"
PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_LIBDIR}/../,--without-zlib,zlib"
@@ -56,6 +58,9 @@ EXTRA_OECONF = " \
--with-ca-bundle=${sysconfdir}/ssl/certs/ca-certificates.crt \
--without-libmetalink \
--without-libpsl \
+ --enable-debug \
+ --enable-optimize \
+ --disable-curldebug \
"
do_install_append_class-target() {
diff --git a/meta/recipes-support/db/db_5.3.28.bb b/meta/recipes-support/db/db_5.3.28.bb
index badb79f9ea..318efcb61d 100644
--- a/meta/recipes-support/db/db_5.3.28.bb
+++ b/meta/recipes-support/db/db_5.3.28.bb
@@ -61,7 +61,9 @@ DB5_CONFIG ?= "--enable-o_direct --disable-cryptography --disable-queue --disabl
EXTRA_OECONF = "${DB5_CONFIG} --enable-shared --enable-cxx --with-sysroot STRIP=true"
+PACKAGECONFIG ??= ""
PACKAGECONFIG[verify] = "--enable-verify, --disable-verify"
+PACKAGECONFIG[dbm] = "--enable-dbm,--disable-dbm,"
EXTRA_OEMAKE += "LIBTOOL='./${HOST_SYS}-libtool'"
@@ -107,6 +109,9 @@ do_install_append() {
fi
chown -R root:root ${D}
+ if ${@bb.utils.contains('PACKAGECONFIG', 'verify', 'false', 'true', d)}; then
+ rm -f ${D}${bindir}/db_verify
+ fi
}
INSANE_SKIP_${PN} = "dev-so"
diff --git a/meta/recipes-support/debianutils/debianutils_4.9.1.bb b/meta/recipes-support/debianutils/debianutils_4.11.1.bb
index 904c52780f..3b1767e5ed 100644
--- a/meta/recipes-support/debianutils/debianutils_4.9.1.bb
+++ b/meta/recipes-support/debianutils/debianutils_4.11.1.bb
@@ -1,15 +1,14 @@
SUMMARY = "Miscellaneous utilities specific to Debian"
SECTION = "base"
LICENSE = "GPLv2 & SMAIL_GPL"
-LIC_FILES_CHKSUM = "file://debian/copyright;md5=f01a5203d50512fc4830b4332b696a9f"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=9b912cd0cc654134c0ef3424a0705b94"
-SRC_URI = "http://snapshot.debian.org/archive/debian/20191212T145612Z/pool/main/d/${BPN}/${BPN}_${PV}.tar.xz"
+SRC_URI = "http://snapshot.debian.org/archive/debian/20200929T025235Z/pool/main/d/${BPN}/${BPN}_${PV}.tar.xz"
# the package is taken from snapshots.debian.org; that source is static and goes stale
# so we check the latest upstream from a directory that does get updated
UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/${BPN}/"
-SRC_URI[md5sum] = "95633416680bfd249b7cb07d94137048"
-SRC_URI[sha256sum] = "af826685d9c56abfa873e84cd392539cd363cb0ba04a09d21187377e1b764091"
+SRC_URI[sha256sum] = "8be869f19c55c18d53d9f0414b68bb966a068b2154e9fbbfc6193827d6af983c"
inherit autotools update-alternatives
@@ -35,7 +34,7 @@ FILES_${PN}-run-parts = "${base_bindir}/run-parts.debianutils"
RDEPENDS_${PN} += "${PN}-run-parts"
RDEPENDS_${PN}_class-native = ""
-ALTERNATIVE_PRIORITY="30"
+ALTERNATIVE_PRIORITY = "30"
ALTERNATIVE_${PN} = "add-shell installkernel remove-shell savelog tempfile which"
ALTERNATIVE_PRIORITY_${PN}-run-parts = "60"
@@ -44,12 +43,12 @@ ALTERNATIVE_${PN}-run-parts = "run-parts"
ALTERNATIVE_${PN}-doc = "which.1"
ALTERNATIVE_LINK_NAME[which.1] = "${mandir}/man1/which.1"
-ALTERNATIVE_LINK_NAME[add-shell]="${sbindir}/add-shell"
-ALTERNATIVE_LINK_NAME[installkernel]="${sbindir}/installkernel"
-ALTERNATIVE_LINK_NAME[remove-shell]="${sbindir}/remove-shell"
-ALTERNATIVE_LINK_NAME[run-parts]="${base_bindir}/run-parts"
-ALTERNATIVE_LINK_NAME[savelog]="${bindir}/savelog"
-ALTERNATIVE_LINK_NAME[tempfile]="${base_bindir}/tempfile"
-ALTERNATIVE_LINK_NAME[which]="${bindir}/which"
+ALTERNATIVE_LINK_NAME[add-shell] = "${sbindir}/add-shell"
+ALTERNATIVE_LINK_NAME[installkernel] = "${sbindir}/installkernel"
+ALTERNATIVE_LINK_NAME[remove-shell] = "${sbindir}/remove-shell"
+ALTERNATIVE_LINK_NAME[run-parts] = "${base_bindir}/run-parts"
+ALTERNATIVE_LINK_NAME[savelog] = "${bindir}/savelog"
+ALTERNATIVE_LINK_NAME[tempfile] = "${base_bindir}/tempfile"
+ALTERNATIVE_LINK_NAME[which] = "${bindir}/which"
BBCLASSEXTEND = "native"
diff --git a/meta/recipes-support/diffoscope/diffoscope_136.bb b/meta/recipes-support/diffoscope/diffoscope_160.bb
index 3e3e1dfc00..2c3da3bbda 100644
--- a/meta/recipes-support/diffoscope/diffoscope_136.bb
+++ b/meta/recipes-support/diffoscope/diffoscope_160.bb
@@ -7,8 +7,7 @@ PYPI_PACKAGE = "diffoscope"
inherit pypi setuptools3
-SRC_URI[md5sum] = "c84d8d308a40176ba2f5dc4abdbf6f73"
-SRC_URI[sha256sum] = "0d6486d6eb6e0445ba21fee2e8bdd3a366ce786bfac98e00e5a95038b7815f15"
+SRC_URI[sha256sum] = "f164b5e74cc11f6238ad8d62c92d3a819fa4c8b618683fc0533e04f21acae6b2"
RDEPENDS_${PN} += "binutils vim squashfs-tools python3-libarchive-c python3-magic"
diff --git a/meta/recipes-support/enchant/enchant2_2.2.7.bb b/meta/recipes-support/enchant/enchant2_2.2.9.bb
index 03db5c7fae..784fd14ee1 100644
--- a/meta/recipes-support/enchant/enchant2_2.2.7.bb
+++ b/meta/recipes-support/enchant/enchant2_2.2.9.bb
@@ -9,8 +9,7 @@ DEPENDS = "glib-2.0"
inherit autotools pkgconfig
SRC_URI = "https://github.com/AbiWord/enchant/releases/download/v${PV}/enchant-${PV}.tar.gz"
-SRC_URI[md5sum] = "8a6ea1bb143c64e0edf5e49c7e7cb984"
-SRC_URI[sha256sum] = "1b22976135812b35cb5b8d21a53ad11d5e7c1426c93f51e7a314a2a42cab3a09"
+SRC_URI[sha256sum] = "b29a3d2273f5edcbdbbb565e94bfd8ea3f9526886fcb6327b4b0f72f0d722f3c"
UPSTREAM_CHECK_URI = "https://github.com/AbiWord/enchant/releases"
diff --git a/meta/recipes-support/fribidi/fribidi_1.0.8.bb b/meta/recipes-support/fribidi/fribidi_1.0.10.bb
index bab068f3b9..53d78b4270 100644
--- a/meta/recipes-support/fribidi/fribidi_1.0.8.bb
+++ b/meta/recipes-support/fribidi/fribidi_1.0.10.bb
@@ -3,15 +3,15 @@ SECTION = "libs"
LICENSE = "LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7"
-SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.bz2 \
+SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.xz \
"
-SRC_URI[md5sum] = "962c7d8ebaa711d4e306161dbe14aa55"
-SRC_URI[sha256sum] = "94c7b68d86ad2a9613b4dcffe7bbeb03523d63b5b37918bdf2e4ef34195c1e6c"
+SRC_URI[md5sum] = "97c87da9930e8e70fbfc8e2bcd031554"
+SRC_URI[sha256sum] = "7f1c687c7831499bcacae5e8675945a39bacbad16ecaa945e9454a32df653c01"
UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
inherit meson lib_package pkgconfig
-CVE_PRODUCT = "gnu_fribidi"
+CVE_PRODUCT = "gnu_fribidi fribidi"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/gdbm/files/gdbm-fix-link-failure-against-gcc-10.patch b/meta/recipes-support/gdbm/files/gdbm-fix-link-failure-against-gcc-10.patch
new file mode 100644
index 0000000000..c1580418dc
--- /dev/null
+++ b/meta/recipes-support/gdbm/files/gdbm-fix-link-failure-against-gcc-10.patch
@@ -0,0 +1,47 @@
+From f993697af81c37df9c55e0ebedeb1b8b880506ae Mon Sep 17 00:00:00 2001
+From: Richard Leitner <richard.leitner@skidata.com>
+Date: Tue, 5 May 2020 11:59:42 +0200
+Subject: [PATCH] gdbm: fix link failure against gcc-10
+
+Copied from gentoo's solution at https://bugs.gentoo.org/show_bug.cgi?id=705898
+Original patch by Sergei Trofimovich <slyfox@gentoo.org>
+
+Original description:
+
+Before the change on gcc-10 link failed as:
+```
+ CCLD gdbmtool
+ld: ./libgdbmapp.a(parseopt.o):(.bss+0x8): multiple definition of `parseopt_program_args';
+ gdbmtool.o:(.data.rel.local+0x260): first defined here
+ld: ./libgdbmapp.a(parseopt.o):(.bss+0x10): multiple definition of `parseopt_program_doc';
+ gdbmtool.o:(.data.rel.local+0x268): first defined here
+```
+
+gcc-10 will change the default from -fcommon to fno-common:
+ https://gcc.gnu.org/PR85678.
+
+The fix is to avoid multiple definition and rely on
+declarations only.
+
+Upstream-Status: Pending
+Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
+---
+ src/parseopt.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/src/parseopt.c b/src/parseopt.c
+index 268e080..a4c8576 100644
+--- a/src/parseopt.c
++++ b/src/parseopt.c
+@@ -255,8 +255,6 @@ print_option_descr (const char *descr, size_t lmargin, size_t rmargin)
+ }
+
+ char *parseopt_program_name;
+-char *parseopt_program_doc;
+-char *parseopt_program_args;
+ const char *program_bug_address = "<" PACKAGE_BUGREPORT ">";
+ void (*parseopt_help_hook) (FILE *stream);
+
+--
+2.26.2
+
diff --git a/meta/recipes-support/gdbm/gdbm_1.18.1.bb b/meta/recipes-support/gdbm/gdbm_1.18.1.bb
index 7e2efe3c9b..fbb1fe72d7 100644
--- a/meta/recipes-support/gdbm/gdbm_1.18.1.bb
+++ b/meta/recipes-support/gdbm/gdbm_1.18.1.bb
@@ -8,6 +8,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=241da1b9fe42e642cbb2c24d5e0c4d24"
SRC_URI = "${GNU_MIRROR}/gdbm/gdbm-${PV}.tar.gz \
file://run-ptest \
file://ptest.patch \
+ file://gdbm-fix-link-failure-against-gcc-10.patch \
"
SRC_URI[md5sum] = "988dc82182121c7570e0cb8b4fcd5415"
@@ -16,15 +17,13 @@ SRC_URI[sha256sum] = "86e613527e5dba544e73208f42b78b7c022d4fa5a6d5498bf18c8d6f74
inherit autotools gettext texinfo lib_package ptest
# Needed for dbm python module
-EXTRA_OECONF = "-enable-libgdbm-compat"
+EXTRA_OECONF = "--enable-libgdbm-compat --without-readline"
# Stop presence of dbm/nbdm on the host contaminating builds
CACHED_CONFIGUREVARS += "ac_cv_lib_ndbm_main=no ac_cv_lib_dbm_main=no"
BBCLASSEXTEND = "native nativesdk"
-CFLAGS += "-fcommon"
-
do_install_append () {
# Create a symlink to ndbm.h and gdbm.h in include/gdbm to let other packages to find
# these headers
diff --git a/meta/recipes-support/gnupg/gnupg/0001-configure.ac-use-a-custom-value-for-the-location-of-.patch b/meta/recipes-support/gnupg/gnupg/0001-configure.ac-use-a-custom-value-for-the-location-of-.patch
index 2c204e0245..c641a19616 100644
--- a/meta/recipes-support/gnupg/gnupg/0001-configure.ac-use-a-custom-value-for-the-location-of-.patch
+++ b/meta/recipes-support/gnupg/gnupg/0001-configure.ac-use-a-custom-value-for-the-location-of-.patch
@@ -1,4 +1,4 @@
-From e7ad11cf54475e455fdb84d118e4782961698567 Mon Sep 17 00:00:00 2001
+From 56343af532389c31eab32c096c9a989c53c78ce0 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Mon, 22 Jan 2018 18:00:21 +0200
Subject: [PATCH] configure.ac: use a custom value for the location of
@@ -14,10 +14,10 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
-index 919ab31..cd58fdb 100644
+index 1d05d39..eaaf33c 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -1855,7 +1855,7 @@ AC_DEFINE_UNQUOTED(GPGCONF_DISP_NAME, "GPGConf",
+@@ -1858,7 +1858,7 @@ AC_DEFINE_UNQUOTED(GPGCONF_DISP_NAME, "GPGConf",
AC_DEFINE_UNQUOTED(GPGTAR_NAME, "gpgtar", [The name of the gpgtar tool])
diff --git a/meta/recipes-support/gnupg/gnupg/0003-dirmngr-uses-libgpg-error.patch b/meta/recipes-support/gnupg/gnupg/0003-dirmngr-uses-libgpg-error.patch
index 3e798efd06..607a09f188 100644
--- a/meta/recipes-support/gnupg/gnupg/0003-dirmngr-uses-libgpg-error.patch
+++ b/meta/recipes-support/gnupg/gnupg/0003-dirmngr-uses-libgpg-error.patch
@@ -1,7 +1,7 @@
-From 9c3858ffda6246bf9e1e6aeeb920532a56b19408 Mon Sep 17 00:00:00 2001
+From 9a901dbb1c48685f2db6d7b55916c9484e871f16 Mon Sep 17 00:00:00 2001
From: Saul Wold <sgw@linux.intel.com>
Date: Wed, 16 Aug 2017 11:18:01 +0800
-Subject: [PATCH 3/4] dirmngr uses libgpg error
+Subject: [PATCH] dirmngr uses libgpg error
Upstream-Status: Pending
Signed-off-by: Saul Wold <sgw@linux.intel.com>
@@ -9,24 +9,22 @@ Signed-off-by: Saul Wold <sgw@linux.intel.com>
Rebase to 2.1.23
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
---
dirmngr/Makefile.am | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dirmngr/Makefile.am b/dirmngr/Makefile.am
-index b404165..d3f916e 100644
+index 208a813..292c036 100644
--- a/dirmngr/Makefile.am
+++ b/dirmngr/Makefile.am
-@@ -82,7 +82,8 @@ endif
+@@ -90,7 +90,8 @@ endif
dirmngr_LDADD = $(libcommonpth) \
$(DNSLIBS) $(LIBASSUAN_LIBS) \
$(LIBGCRYPT_LIBS) $(KSBA_LIBS) $(NPTH_LIBS) \
-- $(NTBTLS_LIBS) $(LIBGNUTLS_LIBS) $(LIBINTL) $(LIBICONV)
-+ $(NTBTLS_LIBS) $(LIBGNUTLS_LIBS) $(LIBINTL) $(LIBICONV) \
+- $(NTBTLS_LIBS) $(LIBGNUTLS_LIBS) $(LIBINTL) $(LIBICONV) $(NETLIBS)
++ $(NTBTLS_LIBS) $(LIBGNUTLS_LIBS) $(LIBINTL) $(LIBICONV) $(NETLIBS) \
+ $(GPG_ERROR_LIBS)
if USE_LDAP
dirmngr_LDADD += $(ldaplibs)
endif
---
-1.8.3.1
-
diff --git a/meta/recipes-support/gnupg/gnupg/relocate.patch b/meta/recipes-support/gnupg/gnupg/relocate.patch
index e5a82aa76d..aa8d1e3cc2 100644
--- a/meta/recipes-support/gnupg/gnupg/relocate.patch
+++ b/meta/recipes-support/gnupg/gnupg/relocate.patch
@@ -1,4 +1,4 @@
-From 59c077f32e81190955910cae02599c7a3edfa7fb Mon Sep 17 00:00:00 2001
+From 4005b3342db06749453835720b5a5c2392a90810 Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@intel.com>
Date: Wed, 19 Sep 2018 14:44:40 +0100
Subject: [PATCH] Allow the environment to override where gnupg looks for its
@@ -12,10 +12,10 @@ Signed-off-by: Ross Burton <ross.burton@intel.com>
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/common/homedir.c b/common/homedir.c
-index e9e75d0..19140aa 100644
+index 4b6e46e..58989b4 100644
--- a/common/homedir.c
+++ b/common/homedir.c
-@@ -760,7 +760,7 @@ gnupg_socketdir (void)
+@@ -763,7 +763,7 @@ gnupg_socketdir (void)
if (!name)
{
unsigned int dummy;
@@ -24,7 +24,7 @@ index e9e75d0..19140aa 100644
}
return name;
-@@ -786,7 +786,7 @@ gnupg_sysconfdir (void)
+@@ -789,7 +789,7 @@ gnupg_sysconfdir (void)
}
return name;
#else /*!HAVE_W32_SYSTEM*/
@@ -33,7 +33,7 @@ index e9e75d0..19140aa 100644
#endif /*!HAVE_W32_SYSTEM*/
}
-@@ -815,7 +815,7 @@ gnupg_bindir (void)
+@@ -818,7 +818,7 @@ gnupg_bindir (void)
else
return rdir;
#else /*!HAVE_W32_SYSTEM*/
@@ -42,7 +42,7 @@ index e9e75d0..19140aa 100644
#endif /*!HAVE_W32_SYSTEM*/
}
-@@ -828,7 +828,7 @@ gnupg_libexecdir (void)
+@@ -831,7 +831,7 @@ gnupg_libexecdir (void)
#ifdef HAVE_W32_SYSTEM
return gnupg_bindir ();
#else /*!HAVE_W32_SYSTEM*/
@@ -51,7 +51,7 @@ index e9e75d0..19140aa 100644
#endif /*!HAVE_W32_SYSTEM*/
}
-@@ -842,7 +842,7 @@ gnupg_libdir (void)
+@@ -845,7 +845,7 @@ gnupg_libdir (void)
name = xstrconcat (w32_rootdir (), DIRSEP_S "lib" DIRSEP_S "gnupg", NULL);
return name;
#else /*!HAVE_W32_SYSTEM*/
@@ -60,7 +60,7 @@ index e9e75d0..19140aa 100644
#endif /*!HAVE_W32_SYSTEM*/
}
-@@ -856,7 +856,7 @@ gnupg_datadir (void)
+@@ -859,7 +859,7 @@ gnupg_datadir (void)
name = xstrconcat (w32_rootdir (), DIRSEP_S "share" DIRSEP_S "gnupg", NULL);
return name;
#else /*!HAVE_W32_SYSTEM*/
@@ -69,7 +69,7 @@ index e9e75d0..19140aa 100644
#endif /*!HAVE_W32_SYSTEM*/
}
-@@ -872,7 +872,7 @@ gnupg_localedir (void)
+@@ -875,7 +875,7 @@ gnupg_localedir (void)
NULL);
return name;
#else /*!HAVE_W32_SYSTEM*/
@@ -78,7 +78,7 @@ index e9e75d0..19140aa 100644
#endif /*!HAVE_W32_SYSTEM*/
}
-@@ -940,7 +940,7 @@ gnupg_cachedir (void)
+@@ -943,7 +943,7 @@ gnupg_cachedir (void)
}
return dir;
#else /*!HAVE_W32_SYSTEM*/
diff --git a/meta/recipes-support/gnupg/gnupg_2.2.19.bb b/meta/recipes-support/gnupg/gnupg_2.2.23.bb
index c07bff13be..c624b67a0b 100644
--- a/meta/recipes-support/gnupg/gnupg_2.2.19.bb
+++ b/meta/recipes-support/gnupg/gnupg_2.2.23.bb
@@ -20,8 +20,7 @@ SRC_URI_append_class-native = " file://0001-configure.ac-use-a-custom-value-for-
file://relocate.patch"
SRC_URI_append_class-nativesdk = " file://relocate.patch"
-SRC_URI[md5sum] = "cb3b373d08ba078c325299945a7f2818"
-SRC_URI[sha256sum] = "242554c0e06f3a83c420b052f750b65ead711cc3fddddb5e7274fcdbb4e9dec0"
+SRC_URI[sha256sum] = "10b55e49d78b3e49f1edb58d7541ecbdad92ddaeeb885b6f486ed23d1cd1da5c"
EXTRA_OECONF = "--disable-ldap \
--disable-ccid-driver \
diff --git a/meta/recipes-support/gnutls/gnutls/0001-Modied-the-license-to-GPLv2.1-to-keep-with-LICENSE-f.patch b/meta/recipes-support/gnutls/gnutls/0001-Modied-the-license-to-GPLv2.1-to-keep-with-LICENSE-f.patch
new file mode 100644
index 0000000000..a610abf9b5
--- /dev/null
+++ b/meta/recipes-support/gnutls/gnutls/0001-Modied-the-license-to-GPLv2.1-to-keep-with-LICENSE-f.patch
@@ -0,0 +1,90 @@
+From c0ae3f659c6c130d151378ba4d7d861e3b7b970f Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@cn.fujitsu.com>
+Date: Wed, 8 Jul 2020 14:50:27 +0900
+Subject: [PATCH] Modied the license to GPLv2.1+ to keep with LICENSE file.
+
+Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
+Please reference to https://gitlab.com/gnutls/gnutls/-/issues/1018.
+Upstream-Status: Backport [https://gitlab.com/gnutls/gnutls/-/merge_requests/1285].
+---
+ lib/x509/krb5.c | 20 +++++++++++---------
+ lib/x509/krb5.h | 20 +++++++++++---------
+ 2 files changed, 22 insertions(+), 18 deletions(-)
+
+diff --git a/lib/x509/krb5.c b/lib/x509/krb5.c
+index 7fe84e6..d68c737 100644
+--- a/lib/x509/krb5.c
++++ b/lib/x509/krb5.c
+@@ -1,21 +1,23 @@
+ /*
+ * Copyright (C) 2015 Red Hat, Inc.
+ *
++ * Author: Nikos Mavrogiannopoulos
++ *
+ * This file is part of GnuTLS.
+ *
+- * GnuTLS 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
+- * (at your option) any later version.
++ * The GnuTLS 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.
+ *
+- * GnuTLS is distributed in the hope that it will be useful, but
++ * This 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
+- * General Public License for more details.
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program. If not, see <https://www.gnu.org/licenses/>
+ *
+- * You should have received a copy of the GNU General Public License
+- * along with this program. If not, see
+- * <https://www.gnu.org/licenses/>.
+ */
+
+ #include <config.h>
+diff --git a/lib/x509/krb5.h b/lib/x509/krb5.h
+index d8926af..815bb28 100644
+--- a/lib/x509/krb5.h
++++ b/lib/x509/krb5.h
+@@ -1,21 +1,23 @@
+ /*
+ * Copyright (C) 2015 Red Hat, Inc.
+ *
++ * Author: Nikos Mavrogiannopoulos
++ *
+ * This file is part of GnuTLS.
+ *
+- * GnuTLS 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
+- * (at your option) any later version.
++ * The GnuTLS 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.
+ *
+- * GnuTLS is distributed in the hope that it will be useful, but
++ * This 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
+- * General Public License for more details.
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program. If not, see <https://www.gnu.org/licenses/>
+ *
+- * You should have received a copy of the GNU General Public License
+- * along with this program. If not, see
+- * <https://www.gnu.org/licenses/>.
+ */
+
+ #ifndef GNUTLS_LIB_X509_KRB5_H
+--
+2.17.1
+
diff --git a/meta/recipes-support/gnutls/gnutls/CVE-2020-24659.patch b/meta/recipes-support/gnutls/gnutls/CVE-2020-24659.patch
new file mode 100644
index 0000000000..1702325e66
--- /dev/null
+++ b/meta/recipes-support/gnutls/gnutls/CVE-2020-24659.patch
@@ -0,0 +1,117 @@
+From 29ee67c205855e848a0a26e6d0e4f65b6b943e0a Mon Sep 17 00:00:00 2001
+From: Daiki Ueno <ueno@gnu.org>
+Date: Sat, 22 Aug 2020 17:19:39 +0200
+Subject: [PATCH] handshake: reject no_renegotiation alert if handshake is
+ incomplete
+
+If the initial handshake is incomplete and the server sends a
+no_renegotiation alert, the client should treat it as a fatal error
+even if its level is warning. Otherwise the same handshake
+state (e.g., DHE parameters) are reused in the next gnutls_handshake
+call, if it is called in the loop idiom:
+
+ do {
+ ret = gnutls_handshake(session);
+ } while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
+
+Signed-off-by: Daiki Ueno <ueno@gnu.org>
+CVE: CVE-2020-24659
+Upstream-Status: Backport [https://gitlab.com/gnutls/gnutls.git]
+Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
+---
+ lib/gnutls_int.h | 1 +
+ lib/handshake.c | 48 +++++++++++++-----
+ 2 files changed, 36 insertions(+), 13 deletions(-)
+
+diff --git a/lib/gnutls_int.h b/lib/gnutls_int.h
+index bb6c19713..31cec5c0c 100644
+--- a/lib/gnutls_int.h
++++ b/lib/gnutls_int.h
+@@ -1370,6 +1370,7 @@ typedef struct {
+ #define HSK_RECORD_SIZE_LIMIT_RECEIVED (1<<26) /* server: record_size_limit extension was seen but not accepted yet */
+ #define HSK_OCSP_REQUESTED (1<<27) /* server: client requested OCSP stapling */
+ #define HSK_CLIENT_OCSP_REQUESTED (1<<28) /* client: server requested OCSP stapling */
++#define HSK_SERVER_HELLO_RECEIVED (1<<29) /* client: Server Hello message has been received */
+
+ /* The hsk_flags are for use within the ongoing handshake;
+ * they are reset to zero prior to handshake start by gnutls_handshake. */
+diff --git a/lib/handshake.c b/lib/handshake.c
+index b40f84b3d..ce2d160e2 100644
+--- a/lib/handshake.c
++++ b/lib/handshake.c
+@@ -2051,6 +2051,8 @@ read_server_hello(gnutls_session_t session,
+ if (ret < 0)
+ return gnutls_assert_val(ret);
+
++ session->internals.hsk_flags |= HSK_SERVER_HELLO_RECEIVED;
++
+ return 0;
+ }
+
+@@ -2575,16 +2577,42 @@ int gnutls_rehandshake(gnutls_session_t session)
+ return 0;
+ }
+
++/* This function checks whether the error code should be treated fatal
++ * or not, and also does the necessary state transition. In
++ * particular, in the case of a rehandshake abort it resets the
++ * handshake's internal state.
++ */
+ inline static int
+ _gnutls_abort_handshake(gnutls_session_t session, int ret)
+ {
+- if (((ret == GNUTLS_E_WARNING_ALERT_RECEIVED) &&
+- (gnutls_alert_get(session) == GNUTLS_A_NO_RENEGOTIATION))
+- || ret == GNUTLS_E_GOT_APPLICATION_DATA)
+- return 0;
++ switch (ret) {
++ case GNUTLS_E_WARNING_ALERT_RECEIVED:
++ if (gnutls_alert_get(session) == GNUTLS_A_NO_RENEGOTIATION) {
++ /* The server always toleretes a "no_renegotiation" alert. */
++ if (session->security_parameters.entity == GNUTLS_SERVER) {
++ STATE = STATE0;
++ return ret;
++ }
++
++ /* The client should tolerete a "no_renegotiation" alert only if:
++ * - the initial handshake has completed, or
++ * - a Server Hello is not yet received
++ */
++ if (session->internals.initial_negotiation_completed ||
++ !(session->internals.hsk_flags & HSK_SERVER_HELLO_RECEIVED)) {
++ STATE = STATE0;
++ return ret;
++ }
+
+- /* this doesn't matter */
+- return GNUTLS_E_INTERNAL_ERROR;
++ return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET);
++ }
++ return ret;
++ case GNUTLS_E_GOT_APPLICATION_DATA:
++ STATE = STATE0;
++ return ret;
++ default:
++ return ret;
++ }
+ }
+
+
+@@ -2747,13 +2774,7 @@ int gnutls_handshake(gnutls_session_t session)
+ }
+
+ if (ret < 0) {
+- /* In the case of a rehandshake abort
+- * we should reset the handshake's internal state.
+- */
+- if (_gnutls_abort_handshake(session, ret) == 0)
+- STATE = STATE0;
+-
+- return ret;
++ return _gnutls_abort_handshake(session, ret);
+ }
+
+ /* clear handshake buffer */
+--
+2.17.0
+
diff --git a/meta/recipes-support/gnutls/gnutls_3.6.11.1.bb b/meta/recipes-support/gnutls/gnutls_3.6.14.bb
index 5b05364c25..51578b4b3b 100644
--- a/meta/recipes-support/gnutls/gnutls_3.6.11.1.bb
+++ b/meta/recipes-support/gnutls/gnutls_3.6.14.bb
@@ -19,10 +19,11 @@ SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
SRC_URI = "https://www.gnupg.org/ftp/gcrypt/gnutls/v${SHRT_VER}/gnutls-${PV}.tar.xz \
file://arm_eabi.patch \
+ file://0001-Modied-the-license-to-GPLv2.1-to-keep-with-LICENSE-f.patch \
+ file://CVE-2020-24659.patch \
"
-SRC_URI[md5sum] = "3670ee0b0d95b3dee185eff2dc910ee7"
-SRC_URI[sha256sum] = "fbba12f3db9a55dbf027e14111755817ec44b57eabec3e8089aac8ac6f533cf8"
+SRC_URI[sha256sum] = "5630751adec7025b8ef955af4d141d00d252a985769f51b4059e5affa3d39d63"
inherit autotools texinfo pkgconfig gettext lib_package gtk-doc
diff --git a/meta/recipes-support/gnutls/libtasn1_4.16.0.bb b/meta/recipes-support/gnutls/libtasn1_4.16.0.bb
index 8337b70241..18dae6d0c9 100644
--- a/meta/recipes-support/gnutls/libtasn1_4.16.0.bb
+++ b/meta/recipes-support/gnutls/libtasn1_4.16.0.bb
@@ -19,6 +19,4 @@ SRC_URI[sha256sum] = "0e0fb0903839117cb6e3b56e68222771bebf22ad7fc2295a0ed7d576e8
inherit autotools texinfo lib_package gtk-doc
-CFLAGS_append_class-native = " -std=gnu99"
-
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/gpgme/gpgme/0008-do-not-auto-check-var-PYTHON.patch b/meta/recipes-support/gpgme/gpgme/0008-do-not-auto-check-var-PYTHON.patch
index 3afbfc8638..dfea1bf78a 100644
--- a/meta/recipes-support/gpgme/gpgme/0008-do-not-auto-check-var-PYTHON.patch
+++ b/meta/recipes-support/gpgme/gpgme/0008-do-not-auto-check-var-PYTHON.patch
@@ -1,4 +1,4 @@
-From fc3d9cc218e60582fd158d21a1cd537a3dc1b007 Mon Sep 17 00:00:00 2001
+From 5bbf7a048b6d81d23186340e839f9f65b5b514b6 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Fri, 10 May 2019 16:19:54 +0800
Subject: [PATCH] do not auto check var-PYTHON
@@ -12,25 +12,23 @@ only check specific python 2.7 and 3.7
Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
---
configure.ac | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
-index cb2f073..7d74a6d 100644
+index 5ef00c0..bbcff93 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -423,8 +423,8 @@ if test "$found_py" = "1"; then
+@@ -425,8 +425,8 @@ if test "$found_py" = "1"; then
if test "$found_py" = "1" -o "$found_py3" = "1"; then
# Reset everything, so that we can look for another Python.
m4_foreach([mym4pythonver],
-- [[2.7],[3.4],[3.5],[3.6],[3.7],[3.8],[all]],
+- [[2.7],[3.4],[3.5],[3.6],[3.7],[3.8],[3.9],[all]],
- [unset PYTHON
+ [[2.7],[3.7]],
+ [
unset PYTHON_VERSION
unset PYTHON_CPPFLAGS
unset PYTHON_LDFLAGS
---
-2.7.4
-
diff --git a/meta/recipes-support/gpgme/gpgme_1.13.1.bb b/meta/recipes-support/gpgme/gpgme_1.14.0.bb
index 9fc1ae24a4..9fa8212808 100644
--- a/meta/recipes-support/gpgme/gpgme_1.13.1.bb
+++ b/meta/recipes-support/gpgme/gpgme_1.14.0.bb
@@ -22,8 +22,7 @@ SRC_URI = "${GNUPG_MIRROR}/gpgme/${BP}.tar.bz2 \
file://0008-do-not-auto-check-var-PYTHON.patch \
"
-SRC_URI[md5sum] = "198f0a908ec3cd8f0ce9a4f3a4489645"
-SRC_URI[sha256sum] = "c4e30b227682374c23cddc7fdb9324a99694d907e79242a25a4deeedb393be46"
+SRC_URI[sha256sum] = "cef1f710a6b0d28f5b44242713ad373702d1466dcbe512eb4e754d7f35cd4307"
DEPENDS = "libgpg-error libassuan"
RDEPENDS_${PN}-cpp += "libstdc++"
@@ -59,7 +58,7 @@ EXTRA_OECONF += '--enable-languages="${LANGUAGES}" \
--disable-lang-python-test \
'
-inherit autotools texinfo binconfig-disabled pkgconfig distutils-common-base ${PYTHON_INHERIT}
+inherit autotools texinfo binconfig-disabled pkgconfig distutils-common-base ${PYTHON_INHERIT} multilib_header
export PKG_CONFIG='pkg-config'
@@ -83,3 +82,7 @@ do_configure_prepend () {
rm -f ${S}/m4/libassuan.m4
rm -f ${S}/m4/python.m4
}
+
+do_install_append() {
+ oe_multilib_header gpgme.h
+}
diff --git a/meta/recipes-support/icu/icu/0001-Fix-big-endian-build.patch b/meta/recipes-support/icu/icu/0001-Fix-big-endian-build.patch
deleted file mode 100644
index efb27ae4e3..0000000000
--- a/meta/recipes-support/icu/icu/0001-Fix-big-endian-build.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 9be0b489a94b57419202c552022f25cb95bfac51 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Wed, 17 Apr 2019 16:41:58 +0200
-Subject: [PATCH] Fix big-endian build
-
-Bug-report: https://unicode-org.atlassian.net/browse/ICU-20533
-Patch taken from: https://bugs.gentoo.org/682170
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- data/Makefile.in | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/source/data/Makefile.in b/source/data/Makefile.in
-index 778b6c7..67203e7 100644
---- a/data/Makefile.in
-+++ b/data/Makefile.in
-@@ -148,7 +148,8 @@ ICUDATA_ARCHIVE = $(firstword $(wildcard $(srcdir)/in/$(ICUDATA_BASENAME_VERSION
- # and convert it to the current type.
- ifneq ($(ICUDATA_ARCHIVE),)
- ICUDATA_SOURCE_ARCHIVE = $(OUTDIR)/$(ICUDATA_PLATFORM_NAME).dat
--$(ICUDATA_SOURCE_ARCHIVE): $(ICUDATA_ARCHIVE) $(OUTDIR)
-+$(ICUDATA_SOURCE_ARCHIVE): $(ICUDATA_ARCHIVE)
-+ $(MKINSTALLDIRS) $(OUTDIR)
- $(INVOKE) $(TOOLBINDIR)/icupkg -t$(ICUDATA_CHAR) $(ICUDATA_ARCHIVE) $(ICUDATA_SOURCE_ARCHIVE)
- endif
- else
diff --git a/meta/recipes-support/icu/icu/0001-icu-Added-armeb-support.patch b/meta/recipes-support/icu/icu/0001-icu-Added-armeb-support.patch
index 299689d95c..145efc0e01 100644
--- a/meta/recipes-support/icu/icu/0001-icu-Added-armeb-support.patch
+++ b/meta/recipes-support/icu/icu/0001-icu-Added-armeb-support.patch
@@ -13,10 +13,10 @@ Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/i18n/double-conversion-utils.h b/i18n/double-conversion-utils.h
-index 1e44fca..e4f2a8b 100644
+index 8c6a0e1..cf89907 100644
--- a/i18n/double-conversion-utils.h
+++ b/i18n/double-conversion-utils.h
-@@ -92,7 +92,7 @@ int main(int argc, char** argv) {
+@@ -115,7 +115,7 @@ int main(int argc, char** argv) {
//
// If it prints "correct" then the architecture should be here, in the "correct" section.
#if defined(_M_X64) || defined(__x86_64__) || \
@@ -24,7 +24,7 @@ index 1e44fca..e4f2a8b 100644
+ defined(__arm__) || defined(__avr32__) || defined(_M_ARM) || defined(_M_ARM64) || \
defined(__hppa__) || defined(__ia64__) || \
defined(__mips__) || \
- defined(__powerpc__) || defined(__ppc__) || defined(__ppc64__) || \
+ defined(__nios2__) || \
--
2.7.4
diff --git a/meta/recipes-support/icu/icu/filter.json b/meta/recipes-support/icu/icu/filter.json
new file mode 100644
index 0000000000..2c63c08510
--- /dev/null
+++ b/meta/recipes-support/icu/icu/filter.json
@@ -0,0 +1,2 @@
+{
+}
diff --git a/meta/recipes-support/icu/icu/icu-pkgdata-large-cmd.patch b/meta/recipes-support/icu/icu/icu-pkgdata-large-cmd.patch
deleted file mode 100644
index e758a623ef..0000000000
--- a/meta/recipes-support/icu/icu/icu-pkgdata-large-cmd.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-pkgdata.cpp: use LARGE_BUFFER_MAX_SIZE for cmd
-
-Use LARGE_BUFFER_MAX_SIZE for cmd rather than SMALL_BUFFER_MAX_SIZE,
-otherwise there was a Segmentation fault error when the command line is
-long, this should be a misplay since other cmd uses
-LARGE_BUFFER_MAX_SIZE.
-
-Upstream-Status: Pending
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- tools/pkgdata/pkgdata.cpp | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/tools/pkgdata/pkgdata.cpp b/tools/pkgdata/pkgdata.cpp
-index 60167dd..506dd32 100644
---- a/tools/pkgdata/pkgdata.cpp
-+++ b/tools/pkgdata/pkgdata.cpp
-@@ -1084,7 +1084,7 @@ normal_symlink_mode:
-
- static int32_t pkg_installLibrary(const char *installDir, const char *targetDir, UBool noVersion) {
- int32_t result = 0;
-- char cmd[SMALL_BUFFER_MAX_SIZE];
-+ char cmd[LARGE_BUFFER_MAX_SIZE];
-
- sprintf(cmd, "cd %s && %s %s %s%s%s",
- targetDir,
-@@ -1152,7 +1152,7 @@ static int32_t pkg_installLibrary(const char *installDir, const char *targetDir,
-
- static int32_t pkg_installCommonMode(const char *installDir, const char *fileName) {
- int32_t result = 0;
-- char cmd[SMALL_BUFFER_MAX_SIZE] = "";
-+ char cmd[LARGE_BUFFER_MAX_SIZE] = "";
-
- if (!T_FileStream_file_exists(installDir)) {
- UErrorCode status = U_ZERO_ERROR;
-@@ -1184,7 +1184,7 @@ static int32_t pkg_installCommonMode(const char *installDir, const char *fileNam
- #endif
- static int32_t pkg_installFileMode(const char *installDir, const char *srcDir, const char *fileListName) {
- int32_t result = 0;
-- char cmd[SMALL_BUFFER_MAX_SIZE] = "";
-+ char cmd[LARGE_BUFFER_MAX_SIZE] = "";
-
- if (!T_FileStream_file_exists(installDir)) {
- UErrorCode status = U_ZERO_ERROR;
---
-1.9.1
-
diff --git a/meta/recipes-support/icu/icu_65.1.bb b/meta/recipes-support/icu/icu_65.1.bb
deleted file mode 100644
index bd932d7db4..0000000000
--- a/meta/recipes-support/icu/icu_65.1.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-require icu.inc
-
-LIC_FILES_CHKSUM = "file://../LICENSE;md5=8bc5d32052a96f214cbdd1e53dfc935d"
-
-def icu_download_version(d):
- pvsplit = d.getVar('PV').split('.')
- return pvsplit[0] + "_" + pvsplit[1]
-
-def icu_download_folder(d):
- pvsplit = d.getVar('PV').split('.')
- return pvsplit[0] + "-" + pvsplit[1]
-
-ICU_PV = "${@icu_download_version(d)}"
-ICU_FOLDER = "${@icu_download_folder(d)}"
-
-# http://errors.yoctoproject.org/Errors/Details/20486/
-ARM_INSTRUCTION_SET_armv4 = "arm"
-ARM_INSTRUCTION_SET_armv5 = "arm"
-
-BASE_SRC_URI = "https://github.com/unicode-org/icu/releases/download/release-${ICU_FOLDER}/icu4c-${ICU_PV}-src.tgz"
-SRC_URI = "${BASE_SRC_URI} \
- file://icu-pkgdata-large-cmd.patch \
- file://fix-install-manx.patch \
- file://0001-Fix-big-endian-build.patch \
- file://0001-icu-Added-armeb-support.patch \
- "
-
-SRC_URI_append_class-target = "\
- file://0001-Disable-LDFLAGSICUDT-for-Linux.patch \
- "
-SRC_URI[md5sum] = "d1ff436e26cabcb28e6cb383d32d1339"
-SRC_URI[sha256sum] = "53e37466b3d6d6d01ead029e3567d873a43a5d1c668ed2278e253b683136d948"
-
-UPSTREAM_CHECK_REGEX = "icu4c-(?P<pver>\d+(_\d+)+)-src"
-UPSTREAM_CHECK_URI = "https://github.com/unicode-org/icu/releases"
diff --git a/meta/recipes-support/icu/icu.inc b/meta/recipes-support/icu/icu_67.1.bb
index 6d9728903d..9e8091ba01 100644
--- a/meta/recipes-support/icu/icu.inc
+++ b/meta/recipes-support/icu/icu_67.1.bb
@@ -82,3 +82,69 @@ FILES_libicutu = "${libdir}/libicutu.so.*"
FILES_libicuio = "${libdir}/libicuio.so.*"
BBCLASSEXTEND = "native nativesdk"
+
+LIC_FILES_CHKSUM = "file://../LICENSE;md5=a3808a5b70071b07f87ff2205e4d75a0"
+
+def icu_download_version(d):
+ pvsplit = d.getVar('PV').split('.')
+ return pvsplit[0] + "_" + pvsplit[1]
+
+def icu_download_folder(d):
+ pvsplit = d.getVar('PV').split('.')
+ return pvsplit[0] + "-" + pvsplit[1]
+
+ICU_PV = "${@icu_download_version(d)}"
+ICU_FOLDER = "${@icu_download_folder(d)}"
+
+# http://errors.yoctoproject.org/Errors/Details/20486/
+ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
+
+BASE_SRC_URI = "https://github.com/unicode-org/icu/releases/download/release-${ICU_FOLDER}/icu4c-${ICU_PV}-src.tgz"
+DATA_SRC_URI = "https://github.com/unicode-org/icu/releases/download/release-${ICU_FOLDER}/icu4c-${ICU_PV}-data.zip"
+SRC_URI = "${BASE_SRC_URI};name=code \
+ ${DATA_SRC_URI};name=data \
+ file://filter.json \
+ file://fix-install-manx.patch \
+ file://0001-icu-Added-armeb-support.patch \
+ "
+
+SRC_URI_append_class-target = "\
+ file://0001-Disable-LDFLAGSICUDT-for-Linux.patch \
+ "
+SRC_URI[code.sha256sum] = "94a80cd6f251a53bd2a997f6f1b5ac6653fe791dfab66e1eb0227740fb86d5dc"
+SRC_URI[data.sha256sum] = "7c16a59cc8c06128b7ecc1dc4fc056b36b17349312829b17408b9e67b05c4a7e"
+
+UPSTREAM_CHECK_REGEX = "icu4c-(?P<pver>\d+(_\d+)+)-src"
+UPSTREAM_CHECK_URI = "https://github.com/unicode-org/icu/releases"
+
+EXTRA_OECONF_append_libc-musl = " ac_cv_func_strtod_l=no"
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[make-icudata] = ",,,"
+
+do_make_icudata_class-target () {
+ ${@bb.utils.contains('PACKAGECONFIG', 'make-icudata', '', 'exit 0', d)}
+ cd ${S}
+ rm -rf data
+ cp -a ${WORKDIR}/data .
+ AR='${BUILD_AR}' \
+ CC='${BUILD_CC}' \
+ CPP='${BUILD_CPP}' \
+ CXX='${BUILD_CXX}' \
+ RANLIB='${BUILD_RANLIB}' \
+ CFLAGS='${BUILD_CFLAGS}' \
+ CPPFLAGS='${BUILD_CPPFLAGS}' \
+ CXXFLAGS='${BUILD_CXXFLAGS}' \
+ LDFLAGS='${BUILD_LDFLAGS}' \
+ ICU_DATA_FILTER_FILE=${WORKDIR}/filter.json \
+ ./runConfigureICU Linux --with-data-packaging=archive
+ oe_runmake
+ install -Dm644 ${S}/data/out/icudt${ICU_MAJOR_VER}l.dat ${S}/data/in/icudt${ICU_MAJOR_VER}l.dat
+}
+
+do_make_icudata() {
+ :
+}
+
+addtask make_icudata before do_configure after do_patch
diff --git a/meta/recipes-support/iso-codes/iso-codes_4.4.bb b/meta/recipes-support/iso-codes/iso-codes_4.5.0.bb
index 332af025dd..9d02f5c794 100644
--- a/meta/recipes-support/iso-codes/iso-codes_4.4.bb
+++ b/meta/recipes-support/iso-codes/iso-codes_4.5.0.bb
@@ -5,8 +5,8 @@ BUGTRACKER = "https://salsa.debian.org/iso-codes-team/iso-codes/issues"
LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-SRC_URI = "git://salsa.debian.org/iso-codes-team/iso-codes.git;protocol=http"
-SRCREV = "38edb926592954b87eb527124da0ec68d2a748f3"
+SRC_URI = "git://salsa.debian.org/iso-codes-team/iso-codes.git;protocol=http;branch=main;"
+SRCREV = "a36019e5014bff251f83d522ddcfebaecf52afd3"
# inherit gettext cannot be used, because it adds gettext-native to BASEDEPENDS which
# are inhibited by allarch
diff --git a/meta/recipes-support/libcap-ng/libcap-ng-python_0.7.10.bb b/meta/recipes-support/libcap-ng/libcap-ng-python_0.7.11.bb
index 43f76dc561..43f76dc561 100644
--- a/meta/recipes-support/libcap-ng/libcap-ng-python_0.7.10.bb
+++ b/meta/recipes-support/libcap-ng/libcap-ng-python_0.7.11.bb
diff --git a/meta/recipes-support/libcap-ng/libcap-ng.inc b/meta/recipes-support/libcap-ng/libcap-ng.inc
index 002915ad48..6d6fa644aa 100644
--- a/meta/recipes-support/libcap-ng/libcap-ng.inc
+++ b/meta/recipes-support/libcap-ng/libcap-ng.inc
@@ -9,11 +9,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
SRC_URI = "http://people.redhat.com/sgrubb/libcap-ng/libcap-ng-${PV}.tar.gz \
file://python.patch \
- file://0001-configure.ac-add-library-if-header-found.patch \
- file://0002-Wrap-pthread_atfork-usage-in-HAVE_PTHREAD_H.patch \
"
-SRC_URI[md5sum] = "57dc267e2949cdecb651a929f9206572"
-SRC_URI[sha256sum] = "a84ca7b4e0444283ed269b7a29f5b6187f647c82e2b876636b49b9a744f0ffbf"
+SRC_URI[md5sum] = "5883ed10b621c87e29a05cff36d2928e"
+SRC_URI[sha256sum] = "85815c711862d01a440db471f12fba462c9949e923966f5859607e652d9c0ae9"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/libcap-ng/libcap-ng/0001-configure.ac-add-library-if-header-found.patch b/meta/recipes-support/libcap-ng/libcap-ng/0001-configure.ac-add-library-if-header-found.patch
deleted file mode 100644
index 6b155ccea8..0000000000
--- a/meta/recipes-support/libcap-ng/libcap-ng/0001-configure.ac-add-library-if-header-found.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 0230e2e374bb71aed0181ccd9ebd13c0c5125a5d Mon Sep 17 00:00:00 2001
-From: Trevor Woerner <twoerner@gmail.com>
-Date: Fri, 25 Oct 2019 17:01:20 -0400
-Subject: [PATCH] configure.ac: add library if header found
-
-If the pthread.h header is found, make sure library containing
-"pthread_atfork" is added to the list of libraries against which to link.
-On some hosts (e.g. openSUSE 15.1) "-lpthread" needs to be explicitly added
-in order for the code to compile correctly.
-
-Upstream-Status: Submitted [https://github.com/stevegrubb/libcap-ng/pull/10]
-Signed-off-by: Trevor Woerner <twoerner@gmail.com>
----
- configure.ac | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 63088f4..639b464 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -56,7 +56,9 @@ AC_CHECK_HEADERS(sys/xattr.h, [], [
- AC_CHECK_HEADERS(attr/xattr.h, [], [AC_MSG_WARN(attr/xattr.h not found, disabling file system capabilities.)])
- ])
- AC_CHECK_HEADERS(linux/securebits.h, [], [])
--AC_CHECK_HEADERS(pthread.h, [], [AC_MSG_WARN(pthread.h not found, disabling pthread_atfork.)])
-+AC_CHECK_HEADERS(pthread.h,
-+ [AC_SEARCH_LIBS(pthread_atfork, pthread)],
-+ [AC_MSG_WARN(pthread.h not found, disabling pthread_atfork.)])
-
- AC_C_CONST
- AC_C_INLINE
diff --git a/meta/recipes-support/libcap-ng/libcap-ng/0002-Wrap-pthread_atfork-usage-in-HAVE_PTHREAD_H.patch b/meta/recipes-support/libcap-ng/libcap-ng/0002-Wrap-pthread_atfork-usage-in-HAVE_PTHREAD_H.patch
deleted file mode 100644
index c68254ff3d..0000000000
--- a/meta/recipes-support/libcap-ng/libcap-ng/0002-Wrap-pthread_atfork-usage-in-HAVE_PTHREAD_H.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From d95c4018ad57c37f6272dbedfa5217776567c329 Mon Sep 17 00:00:00 2001
-From: Christopher Larson <chris_larson@mentor.com>
-Date: Tue, 26 Nov 2019 22:34:34 +0500
-Subject: [PATCH] Wrap pthread_atfork usage in HAVE_PTHREAD_H
-
-Upstream-Status: Pending
-Signed-off-by: Christopher Larson <chris_larson@mentor.com>
----
- src/cap-ng.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/cap-ng.c b/src/cap-ng.c
-index 35fcd7a..97a3dbd 100644
---- a/src/cap-ng.c
-+++ b/src/cap-ng.c
-@@ -166,7 +166,9 @@ static void deinit(void)
- static void init_lib(void) __attribute__ ((constructor));
- static void init_lib(void)
- {
-+#ifdef HAVE_PTHREAD_H
- pthread_atfork(NULL, NULL, deinit);
-+#endif
- }
-
- static void init(void)
diff --git a/meta/recipes-support/libcap-ng/libcap-ng/python.patch b/meta/recipes-support/libcap-ng/libcap-ng/python.patch
index d60a0a39b6..fcd6f9cd33 100644
--- a/meta/recipes-support/libcap-ng/libcap-ng/python.patch
+++ b/meta/recipes-support/libcap-ng/libcap-ng/python.patch
@@ -1,6 +1,3 @@
-From b4a354ae8d4f7c2ec3ec421c7d8a790cc57e77a9 Mon Sep 17 00:00:00 2001
-From: Li xin <lixin.fnst@cn.fujitsu.com>
-Date: Sat, 18 Jul 2015 23:03:30 +0900
Subject: [PATCH] configure.ac - Avoid an incorrect check for python.
Makefile.am - avoid hard coded host include paths.
@@ -9,6 +6,8 @@ Upstream-Status: pending
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
+
---
bindings/python/Makefile.am | 4 +++-
configure.ac | 17 ++---------------
@@ -30,12 +29,12 @@ index 999b184..c8e49db 100644
SWIG_INCLUDES = ${AM_CPPFLAGS}
pyexec_PYTHON = capng.py
diff --git a/configure.ac b/configure.ac
-index 7f66179..079d026 100644
+index 8b46f51..2d7e00c 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -123,21 +123,8 @@ if test x$use_python = xno ; then
- else
- AC_MSG_RESULT(testing)
+@@ -141,21 +141,8 @@ fi
+
+ # Setup Python2 with the interpreter found previously.
AM_PATH_PYTHON
-PYINCLUDEDIR=`python${am_cv_python_version} -c "from distutils import sysconfig; print(sysconfig.get_config_var('INCLUDEPY'))"`
-if test -f ${PYINCLUDEDIR}/Python.h ; then
@@ -46,7 +45,7 @@ index 7f66179..079d026 100644
- AC_MSG_NOTICE(Python bindings will be built)
-else
- python_found="no"
-- if test x$use_python = xyes ; then
+- if test "x$use_python" = xyes ; then
- AC_MSG_ERROR([Python explicitly requested and python headers were not found])
- else
- AC_MSG_WARN("Python headers not found - python bindings will not be made")
@@ -58,5 +57,4 @@ index 7f66179..079d026 100644
AM_CONDITIONAL(HAVE_PYTHON, test ${python_found} = "yes")
--
-2.7.4
-
+2.25.1
diff --git a/meta/recipes-support/libcap-ng/libcap-ng_0.7.10.bb b/meta/recipes-support/libcap-ng/libcap-ng_0.7.11.bb
index 6e6de45494..6e6de45494 100644
--- a/meta/recipes-support/libcap-ng/libcap-ng_0.7.10.bb
+++ b/meta/recipes-support/libcap-ng/libcap-ng_0.7.11.bb
diff --git a/meta/recipes-support/libcap/files/0001-tests-do-not-statically-link-a-test.patch b/meta/recipes-support/libcap/files/0001-tests-do-not-statically-link-a-test.patch
index e568cc47c5..81fdd2a15c 100644
--- a/meta/recipes-support/libcap/files/0001-tests-do-not-statically-link-a-test.patch
+++ b/meta/recipes-support/libcap/files/0001-tests-do-not-statically-link-a-test.patch
@@ -1,4 +1,4 @@
-From 1179b423cce8d119b42cebfb3daa77c540fdca43 Mon Sep 17 00:00:00 2001
+From e4fe6890e07821d60f01f000a95f7944f3d68139 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Wed, 15 Jan 2020 17:16:28 +0100
Subject: [PATCH] tests: do not statically link a test
@@ -7,20 +7,40 @@ This fails on e.g. centos 7
Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
---
- tests/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+ tests/Makefile | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/tests/Makefile b/tests/Makefile
-index 7162cf0..6af47af 100644
+index 876a8b9..93a0e3a 100644
--- a/tests/Makefile
+++ b/tests/Makefile
-@@ -29,7 +29,7 @@ psx_test_wrap: psx_test.c $(DEPS)
+@@ -26,23 +26,23 @@ psx_test: psx_test.c $(DEPS)
run_libcap_psx_test: libcap_psx_test
libcap_psx_test: libcap_psx_test.c $(DEPS)
- $(CC) $(CFLAGS) $(IPATH) $< -o $@ $(LIBCAPLIB) $(LIBPSXLIB) -Wl,-wrap,pthread_create --static
+ $(CC) $(CFLAGS) $(IPATH) $< -o $@ $(LIBCAPLIB) $(LIBPSXLIB) -Wl,-wrap,pthread_create
+ run_libcap_launch_test: libcap_launch_test libcap_psx_launch_test noop
+ sudo ./libcap_launch_test
+ sudo ./libcap_psx_launch_test
+
+ libcap_launch_test: libcap_launch_test.c $(DEPS)
+- $(CC) $(CFLAGS) $(IPATH) $< -o $@ $(LIBCAPLIB) --static
++ $(CC) $(CFLAGS) $(IPATH) $< -o $@ $(LIBCAPLIB)
+
+ # this varies only slightly from the above insofar as it currently
+ # only links in the pthreads fork support. TODO() we need to change
+ # the source to do something interesting with pthreads.
+ libcap_psx_launch_test: libcap_launch_test.c $(DEPS)
+- $(CC) $(CFLAGS) $(IPATH) -DWITH_PTHREADS $< -o $@ $(LIBCAPLIB) $(LIBPSXLIB) -Wl,-wrap,pthread_create --static
++ $(CC) $(CFLAGS) $(IPATH) -DWITH_PTHREADS $< -o $@ $(LIBCAPLIB) $(LIBPSXLIB) -Wl,-wrap,pthread_create
+
+ noop: noop.c
+- $(CC) $(CFLAGS) $< -o $@ --static
++ $(CC) $(CFLAGS) $< -o $@
+
clean:
- rm -f psx_test psx_test_wrap libcap_psx_test
+ rm -f psx_test libcap_psx_test libcap_launch_test *~
diff --git a/meta/recipes-support/libcap/files/0002-tests-do-not-run-target-executables.patch b/meta/recipes-support/libcap/files/0002-tests-do-not-run-target-executables.patch
index 26d108c209..e8f1df98c1 100644
--- a/meta/recipes-support/libcap/files/0002-tests-do-not-run-target-executables.patch
+++ b/meta/recipes-support/libcap/files/0002-tests-do-not-run-target-executables.patch
@@ -1,4 +1,4 @@
-From 6309554225e05e76167eda4e0df383fb3d1a62c3 Mon Sep 17 00:00:00 2001
+From 5583b48c04d5bf50b56473d88d990c3f0bc45c14 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Fri, 20 Dec 2019 16:54:05 +0100
Subject: [PATCH] tests: do not run target executables
@@ -7,23 +7,20 @@ Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
- tests/Makefile | 3 ---
- 1 file changed, 3 deletions(-)
+ tests/Makefile | 2 --
+ 1 file changed, 2 deletions(-)
diff --git a/tests/Makefile b/tests/Makefile
-index 95e4ca6..7162cf0 100644
+index bfedbc2..876a8b9 100644
--- a/tests/Makefile
+++ b/tests/Makefile
-@@ -19,8 +19,6 @@ sudotest: test
+@@ -19,13 +19,11 @@ sudotest: test run_libcap_launch_test run_libcap_launch_test
install: all
- run_psx_test: psx_test psx_test_wrap
+ run_psx_test: psx_test
- ./psx_test
-- ./psx_test_wrap
psx_test: psx_test.c $(DEPS)
- $(CC) $(CFLAGS) $(IPATH) -DNOWRAP $< -o $@ $(LIBPSXLIB)
-@@ -29,7 +27,6 @@ psx_test_wrap: psx_test.c $(DEPS)
$(CC) $(CFLAGS) $(IPATH) $< -o $@ $(LIBPSXLIB) -Wl,-wrap,pthread_create
run_libcap_psx_test: libcap_psx_test
diff --git a/meta/recipes-support/libcap/libcap_2.31.bb b/meta/recipes-support/libcap/libcap_2.43.bb
index 97959c1025..c712c25947 100644
--- a/meta/recipes-support/libcap/libcap_2.31.bb
+++ b/meta/recipes-support/libcap/libcap_2.43.bb
@@ -12,8 +12,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/libs/security/linux-privs/${BPN}2/${BPN}-${
file://0002-tests-do-not-run-target-executables.patch \
file://0001-tests-do-not-statically-link-a-test.patch \
"
-SRC_URI[md5sum] = "52120c05dc797b01f5a7ae70f4335e96"
-SRC_URI[sha256sum] = "c6088de41e1c97fa8047e2e7de0e4ee0cd13e6cc16538022230ae76727a87c46"
+SRC_URI[sha256sum] = "512a0e5fc4c1e06d472a20da26aa96a9b9bf2a26b23f094f77f1b8da56cc427f"
UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/linux/libs/security/linux-privs/${BPN}2/"
@@ -25,7 +24,7 @@ do_configure() {
# libcap uses := for compilers, fortunately, it gives us a hint
# on what should be replaced with ?=
sed -e 's,:=,?=,g' -i Make.Rules
- sed -e 's,^BUILD_CFLAGS ?= $(.*CFLAGS),BUILD_CFLAGS := $(BUILD_CFLAGS),' -i Make.Rules
+ sed -e 's,^BUILD_CFLAGS ?= ,BUILD_CFLAGS := $(BUILD_CFLAGS) ,' -i Make.Rules
}
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
diff --git a/meta/recipes-support/libcheck/libcheck_0.14.0.bb b/meta/recipes-support/libcheck/libcheck_0.15.2.bb
index a88f009cdb..33e07db93c 100644
--- a/meta/recipes-support/libcheck/libcheck_0.14.0.bb
+++ b/meta/recipes-support/libcheck/libcheck_0.15.2.bb
@@ -7,8 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=2d5025d4aa3495befef8f17206a5b0a1"
SRC_URI = "https://github.com/${BPN}/check/releases/download/${PV}/check-${PV}.tar.gz \
file://not-echo-compiler-info-to-check_stdint.h.patch"
-SRC_URI[md5sum] = "270e82a445be6026040267a5e11cc94b"
-SRC_URI[sha256sum] = "bd0f0ca1be65b70238b32f8e9fe5d36dc2fbf7a759b7edf28e75323a7d74f30b"
+SRC_URI[sha256sum] = "a8de4e0bacfb4d76dd1c618ded263523b53b85d92a146d8835eb1a52932fa20a"
UPSTREAM_CHECK_URI = "https://github.com/libcheck/check/releases/"
S = "${WORKDIR}/check-${PV}"
diff --git a/meta/recipes-support/libevdev/libevdev/determinism.patch b/meta/recipes-support/libevdev/libevdev/determinism.patch
index 33a6076b78..f6b7fc82d3 100644
--- a/meta/recipes-support/libevdev/libevdev/determinism.patch
+++ b/meta/recipes-support/libevdev/libevdev/determinism.patch
@@ -1,3 +1,8 @@
+From 4f196323aba5b0f49979826533c65633b8a9b6a2 Mon Sep 17 00:00:00 2001
+From: Richard Purdie <richard.purdie@linuxfoundation.org>
+Date: Fri, 7 Feb 2020 12:29:56 +0000
+Subject: [PATCH] libevdev: Fix determinism issue
+
The order of dict values is not deterministic leading to differing header file generation.
Sort to remove this inconsistency.
@@ -6,29 +11,33 @@ RP 2020/2/7
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Upstream-Status: Pending
-Index: a/libevdev/make-event-names.py
-===================================================================
+---
+ libevdev/make-event-names.py | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/libevdev/make-event-names.py b/libevdev/make-event-names.py
+index 88addd7..c973e2a 100755
--- a/libevdev/make-event-names.py
+++ b/libevdev/make-event-names.py
-@@ -67,10 +67,10 @@ def print_bits(bits, prefix):
- if not hasattr(bits, prefix):
- return
- print("static const char * const %s_map[%s_MAX + 1] = {" % (prefix, prefix.upper()))
-- for val, name in list(getattr(bits, prefix).items()):
-+ for val, name in sorted(list(getattr(bits, prefix).items())):
- print(" [%s] = \"%s\"," % (name, name))
- if prefix == "key":
-- for val, name in list(getattr(bits, "btn").items()):
-+ for val, name in sorted(list(getattr(bits, "btn").items())):
- print(" [%s] = \"%s\"," % (name, name))
- print("};")
- print("")
-@@ -111,7 +111,7 @@ def print_lookup(bits, prefix):
- if not hasattr(bits, prefix):
- return
+@@ -70,10 +70,10 @@ def print_bits(bits, prefix):
+ if not hasattr(bits, prefix):
+ return
+ print("static const char * const %s_map[%s_MAX + 1] = {" % (prefix, prefix.upper()))
+- for val, name in list(getattr(bits, prefix).items()):
++ for val, name in sorted(list(getattr(bits, prefix).items())):
+ print(" [%s] = \"%s\"," % (name, name))
+ if prefix == "key":
+- for val, name in list(getattr(bits, "btn").items()):
++ for val, name in sorted(list(getattr(bits, "btn").items())):
+ print(" [%s] = \"%s\"," % (name, name))
+ print("};")
+ print("")
+@@ -118,7 +118,7 @@ def print_lookup(bits, prefix):
+ if not hasattr(bits, prefix):
+ return
-- names = list(getattr(bits, prefix).items())
-+ names = sorted(list(getattr(bits, prefix).items()))
- if prefix == "btn":
- names = names + btn_additional;
+- names = list(getattr(bits, prefix).items())
++ names = sorted(list(getattr(bits, prefix).items()))
+ if prefix == "btn":
+ names = names + btn_additional
diff --git a/meta/recipes-support/libevdev/libevdev_1.8.0.bb b/meta/recipes-support/libevdev/libevdev_1.9.1.bb
index 46ed5d786a..633e0af995 100644
--- a/meta/recipes-support/libevdev/libevdev_1.8.0.bb
+++ b/meta/recipes-support/libevdev/libevdev_1.9.1.bb
@@ -8,7 +8,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=75aae0d38feea6fda97ca381cb9132eb \
SRC_URI = "http://www.freedesktop.org/software/libevdev/${BP}.tar.xz \
file://determinism.patch"
-SRC_URI[md5sum] = "879631080be18526737e33b63d848039"
-SRC_URI[sha256sum] = "20d3cae4efd277f485abdf8f2a7c46588e539998b5a08c2c4d368218379d4211"
+SRC_URI[md5sum] = "58286a834ae14536caf9cab8633419cf"
+SRC_URI[sha256sum] = "f5603c48c5afd76b14df7a5124e0a94a102f8da0d45826192325069d1bbc7acb"
inherit autotools pkgconfig
+
+UPSTREAM_CHECK_REGEX = "libevdev-(?P<pver>(\d+\.)+(?!90\d+)\d+)"
diff --git a/meta/recipes-support/libevent/libevent_2.1.11.bb b/meta/recipes-support/libevent/libevent_2.1.12.bb
index fb186eb89f..29e87081d3 100644
--- a/meta/recipes-support/libevent/libevent_2.1.11.bb
+++ b/meta/recipes-support/libevent/libevent_2.1.12.bb
@@ -12,8 +12,7 @@ SRC_URI = "https://github.com/libevent/libevent/releases/download/release-${PV}-
file://0001-test-regress_dns.c-patch-out-tests-that-require-a-wo.patch \
"
-SRC_URI[md5sum] = "7f35cfe69b82d879111ec0d7b7b1c531"
-SRC_URI[sha256sum] = "a65bac6202ea8c5609fd5c7e480e6d25de467ea1917c08290c521752f147283d"
+SRC_URI[sha256sum] = "92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb"
UPSTREAM_CHECK_URI = "http://libevent.org/"
diff --git a/meta/recipes-support/libexif/libexif/CVE-2016-6328.patch b/meta/recipes-support/libexif/libexif/CVE-2016-6328.patch
deleted file mode 100644
index a6f307439b..0000000000
--- a/meta/recipes-support/libexif/libexif/CVE-2016-6328.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-CVE: CVE-2016-6328
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From 41bd04234b104312f54d25822f68738ba8d7133d Mon Sep 17 00:00:00 2001
-From: Marcus Meissner <marcus@jet.franken.de>
-Date: Tue, 25 Jul 2017 23:44:44 +0200
-Subject: [PATCH] fixes some (not all) buffer overreads during decoding pentax
- makernote entries.
-
-This should fix:
-https://sourceforge.net/p/libexif/bugs/125/ CVE-2016-6328
----
- libexif/pentax/mnote-pentax-entry.c | 16 +++++++++++++---
- 1 file changed, 13 insertions(+), 3 deletions(-)
-
-diff --git a/libexif/pentax/mnote-pentax-entry.c b/libexif/pentax/mnote-pentax-entry.c
-index d03d159..ea0429a 100644
---- a/libexif/pentax/mnote-pentax-entry.c
-+++ b/libexif/pentax/mnote-pentax-entry.c
-@@ -425,24 +425,34 @@ mnote_pentax_entry_get_value (MnotePentaxEntry *entry,
- case EXIF_FORMAT_SHORT:
- {
- const unsigned char *data = entry->data;
-- size_t k, len = strlen(val);
-+ size_t k, len = strlen(val), sizeleft;
-+
-+ sizeleft = entry->size;
- for(k=0; k<entry->components; k++) {
-+ if (sizeleft < 2)
-+ break;
- vs = exif_get_short (data, entry->order);
- snprintf (val+len, maxlen-len, "%i ", vs);
- len = strlen(val);
- data += 2;
-+ sizeleft -= 2;
- }
- }
- break;
- case EXIF_FORMAT_LONG:
- {
- const unsigned char *data = entry->data;
-- size_t k, len = strlen(val);
-+ size_t k, len = strlen(val), sizeleft;
-+
-+ sizeleft = entry->size;
- for(k=0; k<entry->components; k++) {
-+ if (sizeleft < 4)
-+ break;
- vl = exif_get_long (data, entry->order);
- snprintf (val+len, maxlen-len, "%li", (long int) vl);
- len = strlen(val);
- data += 4;
-+ sizeleft -= 4;
- }
- }
- break;
-@@ -455,5 +465,5 @@ mnote_pentax_entry_get_value (MnotePentaxEntry *entry,
- break;
- }
-
-- return (val);
-+ return val;
- }
diff --git a/meta/recipes-support/libexif/libexif/CVE-2017-7544.patch b/meta/recipes-support/libexif/libexif/CVE-2017-7544.patch
deleted file mode 100644
index e49481ff84..0000000000
--- a/meta/recipes-support/libexif/libexif/CVE-2017-7544.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 8a92f964a66d476ca8907234359e92a70fc1325b Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Tue, 28 Aug 2018 15:12:10 +0800
-Subject: [PATCH] On saving makernotes, make sure the makernote container tags
- has a type with 1 byte components.
-
-Fixes (at least):
- https://sourceforge.net/p/libexif/bugs/130
- https://sourceforge.net/p/libexif/bugs/129
-
-Upstream-Status: Backport[https://github.com/libexif/libexif/commit/
-c39acd1692023b26290778a02a9232c873f9d71a#diff-830e348923810f00726700b083ec00cd]
-
-CVE: CVE-2017-7544
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- libexif/exif-data.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/libexif/exif-data.c b/libexif/exif-data.c
-index 67df4db..6bf89eb 100644
---- a/libexif/exif-data.c
-+++ b/libexif/exif-data.c
-@@ -255,6 +255,12 @@ exif_data_save_data_entry (ExifData *data, ExifEntry *e,
- exif_mnote_data_set_offset (data->priv->md, *ds - 6);
- exif_mnote_data_save (data->priv->md, &e->data, &e->size);
- e->components = e->size;
-+ if (exif_format_get_size (e->format) != 1) {
-+ /* e->format is taken from input code,
-+ * but we need to make sure it is a 1 byte
-+ * entity due to the multiplication below. */
-+ e->format = EXIF_FORMAT_UNDEFINED;
-+ }
- }
- }
-
---
-2.7.4
-
diff --git a/meta/recipes-support/libexif/libexif/CVE-2018-20030.patch b/meta/recipes-support/libexif/libexif/CVE-2018-20030.patch
deleted file mode 100644
index 76233e6dc9..0000000000
--- a/meta/recipes-support/libexif/libexif/CVE-2018-20030.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-CVE: CVE-2018-20030
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From 6aa11df549114ebda520dde4cdaea2f9357b2c89 Mon Sep 17 00:00:00 2001
-From: Dan Fandrich <dan@coneharvesters.com>
-Date: Fri, 12 Oct 2018 16:01:45 +0200
-Subject: [PATCH] Improve deep recursion detection in
- exif_data_load_data_content.
-
-The existing detection was still vulnerable to pathological cases
-causing DoS by wasting CPU. The new algorithm takes the number of tags
-into account to make it harder to abuse by cases using shallow recursion
-but with a very large number of tags. This improves on commit 5d28011c
-which wasn't sufficient to counter this kind of case.
-
-The limitation in the previous fix was discovered by Laurent Delosieres,
-Secunia Research at Flexera (Secunia Advisory SA84652) and is assigned
-the identifier CVE-2018-20030.
-
-diff --git a/libexif/exif-data.c b/libexif/exif-data.c
-index 67df4db..8d9897e 100644
---- a/libexif/exif-data.c
-+++ b/libexif/exif-data.c
-@@ -35,6 +35,7 @@
- #include <libexif/olympus/exif-mnote-data-olympus.h>
- #include <libexif/pentax/exif-mnote-data-pentax.h>
-
-+#include <math.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
-@@ -344,6 +345,20 @@ if (data->ifd[(i)]->count) { \
- break; \
- }
-
-+/*! Calculate the recursion cost added by one level of IFD loading.
-+ *
-+ * The work performed is related to the cost in the exponential relation
-+ * work=1.1**cost
-+ */
-+static unsigned int
-+level_cost(unsigned int n)
-+{
-+ static const double log_1_1 = 0.09531017980432493;
-+
-+ /* Adding 0.1 protects against the case where n==1 */
-+ return ceil(log(n + 0.1)/log_1_1);
-+}
-+
- /*! Load data for an IFD.
- *
- * \param[in,out] data #ExifData
-@@ -351,13 +366,13 @@ if (data->ifd[(i)]->count) { \
- * \param[in] d pointer to buffer containing raw IFD data
- * \param[in] ds size of raw data in buffer at \c d
- * \param[in] offset offset into buffer at \c d at which IFD starts
-- * \param[in] recursion_depth number of times this function has been
-- * recursively called without returning
-+ * \param[in] recursion_cost factor indicating how expensive this recursive
-+ * call could be
- */
- static void
- exif_data_load_data_content (ExifData *data, ExifIfd ifd,
- const unsigned char *d,
-- unsigned int ds, unsigned int offset, unsigned int recursion_depth)
-+ unsigned int ds, unsigned int offset, unsigned int recursion_cost)
- {
- ExifLong o, thumbnail_offset = 0, thumbnail_length = 0;
- ExifShort n;
-@@ -372,9 +387,20 @@ exif_data_load_data_content (ExifData *data, ExifIfd ifd,
- if ((((int)ifd) < 0) || ( ((int)ifd) >= EXIF_IFD_COUNT))
- return;
-
-- if (recursion_depth > 30) {
-+ if (recursion_cost > 170) {
-+ /*
-+ * recursion_cost is a logarithmic-scale indicator of how expensive this
-+ * recursive call might end up being. It is an indicator of the depth of
-+ * recursion as well as the potential for worst-case future recursive
-+ * calls. Since it's difficult to tell ahead of time how often recursion
-+ * will occur, this assumes the worst by assuming every tag could end up
-+ * causing recursion.
-+ * The value of 170 was chosen to limit typical EXIF structures to a
-+ * recursive depth of about 6, but pathological ones (those with very
-+ * many tags) to only 2.
-+ */
- exif_log (data->priv->log, EXIF_LOG_CODE_CORRUPT_DATA, "ExifData",
-- "Deep recursion detected!");
-+ "Deep/expensive recursion detected!");
- return;
- }
-
-@@ -416,15 +442,18 @@ exif_data_load_data_content (ExifData *data, ExifIfd ifd,
- switch (tag) {
- case EXIF_TAG_EXIF_IFD_POINTER:
- CHECK_REC (EXIF_IFD_EXIF);
-- exif_data_load_data_content (data, EXIF_IFD_EXIF, d, ds, o, recursion_depth + 1);
-+ exif_data_load_data_content (data, EXIF_IFD_EXIF, d, ds, o,
-+ recursion_cost + level_cost(n));
- break;
- case EXIF_TAG_GPS_INFO_IFD_POINTER:
- CHECK_REC (EXIF_IFD_GPS);
-- exif_data_load_data_content (data, EXIF_IFD_GPS, d, ds, o, recursion_depth + 1);
-+ exif_data_load_data_content (data, EXIF_IFD_GPS, d, ds, o,
-+ recursion_cost + level_cost(n));
- break;
- case EXIF_TAG_INTEROPERABILITY_IFD_POINTER:
- CHECK_REC (EXIF_IFD_INTEROPERABILITY);
-- exif_data_load_data_content (data, EXIF_IFD_INTEROPERABILITY, d, ds, o, recursion_depth + 1);
-+ exif_data_load_data_content (data, EXIF_IFD_INTEROPERABILITY, d, ds, o,
-+ recursion_cost + level_cost(n));
- break;
- case EXIF_TAG_JPEG_INTERCHANGE_FORMAT:
- thumbnail_offset = o;
diff --git a/meta/recipes-support/libexif/libexif_0.6.21.bb b/meta/recipes-support/libexif/libexif_0.6.21.bb
deleted file mode 100644
index d847beab18..0000000000
--- a/meta/recipes-support/libexif/libexif_0.6.21.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Library for reading extended image information (EXIF) from JPEG files"
-HOMEPAGE = "http://sourceforge.net/projects/libexif"
-SECTION = "libs"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=243b725d71bb5df4a1e5920b344b86ad"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/libexif/libexif-${PV}.tar.bz2 \
- file://CVE-2017-7544.patch \
- file://CVE-2016-6328.patch \
- file://CVE-2018-20030.patch"
-
-SRC_URI[md5sum] = "27339b89850f28c8f1c237f233e05b27"
-SRC_URI[sha256sum] = "16cdaeb62eb3e6dfab2435f7d7bccd2f37438d21c5218ec4e58efa9157d4d41a"
-
-inherit autotools gettext
-
-EXTRA_OECONF += "--disable-docs"
diff --git a/meta/recipes-support/libexif/libexif_0.6.22.bb b/meta/recipes-support/libexif/libexif_0.6.22.bb
new file mode 100644
index 0000000000..2478ba07d8
--- /dev/null
+++ b/meta/recipes-support/libexif/libexif_0.6.22.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Library for reading extended image information (EXIF) from JPEG files"
+HOMEPAGE = "https://libexif.github.io/"
+SECTION = "libs"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=243b725d71bb5df4a1e5920b344b86ad"
+
+def version_underscore(v):
+ return "_".join(v.split("."))
+
+SRC_URI = "https://github.com/libexif/libexif/releases/download/libexif-${@version_underscore("${PV}")}-release/libexif-${PV}.tar.xz \
+ "
+
+SRC_URI[sha256sum] = "5048f1c8fc509cc636c2f97f4b40c293338b6041a5652082d5ee2cf54b530c56"
+
+UPSTREAM_CHECK_URI = "https://github.com/libexif/libexif/releases/"
+
+inherit autotools gettext
+
+EXTRA_OECONF += "--disable-docs"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/libffi/libffi/0001-ffi_powerpc.h-fix-build-failure-with-powerpc7.patch b/meta/recipes-support/libffi/libffi/0001-ffi_powerpc.h-fix-build-failure-with-powerpc7.patch
new file mode 100644
index 0000000000..52e6e4536b
--- /dev/null
+++ b/meta/recipes-support/libffi/libffi/0001-ffi_powerpc.h-fix-build-failure-with-powerpc7.patch
@@ -0,0 +1,62 @@
+From de93adfb6f48100946bba2c3abad2a77a0cfde0b Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Sun, 24 Nov 2019 09:52:01 +0100
+Subject: [PATCH] ffi_powerpc.h: fix build failure with powerpc7
+
+This is a patch pulled down from the following:
+https://github.com/buildroot/buildroot/blob/78926f610b1411b03464152472fd430012deb9ac/package/libffi/0004-ffi_powerpc.h-fix-build-failure-with-powerpc7.patch
+
+This issue is being hit on OpenBMC code when pulling the latest
+libffi tag and building on a P8 ppc64le machine. I verified this
+patch fixes the issue we are seeing.
+
+Below is the original commit message:
+
+Sicne commit 73dd43afc8a447ba98ea02e9aad4c6898dc77fb0, build on powerpc7
+fails on:
+
+In file included from ../src/powerpc/ffi.c:33:0:
+../src/powerpc/ffi_powerpc.h:61:9: error: '_Float128' is not supported on this target
+ typedef _Float128 float128;
+ ^~~~~~~~~
+
+Fix this build failure by checking for __HAVE_FLOAT128 before using
+_Float128, as _Float128 is enabled only on specific conditions, see
+output/host/powerpc64-buildroot-linux-gnu/sysroot/usr/include/bits/floatn.h:
+
+ /* Defined to 1 if the current compiler invocation provides a
+ floating-point type with the IEEE 754 binary128 format, and this glibc
+ includes corresponding *f128 interfaces for it. */
+ #if defined _ARCH_PWR8 && defined __LITTLE_ENDIAN__ && (_CALL_ELF == 2) \
+ && defined __FLOAT128__ && !defined __NO_LONG_DOUBLE_MATH
+ # define __HAVE_FLOAT128 1
+ #else
+ # define __HAVE_FLOAT128 0
+ #endif
+
+Fixes:
+ - http://autobuild.buildroot.org/results/5c9dd8fb3b6a128882b6250f197c80232d8a3b53
+
+Upstream-Status: Submitted [https://github.com/libffi/libffi/pull/561]
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
+---
+ src/powerpc/ffi_powerpc.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/powerpc/ffi_powerpc.h b/src/powerpc/ffi_powerpc.h
+index 8e2f2f0..960a5c4 100644
+--- a/src/powerpc/ffi_powerpc.h
++++ b/src/powerpc/ffi_powerpc.h
+@@ -57,7 +57,7 @@ typedef union
+ double d;
+ } ffi_dblfl;
+
+-#if defined(__FLOAT128_TYPE__)
++#if defined(__FLOAT128_TYPE__) && defined(__HAVE_FLOAT128)
+ typedef _Float128 float128;
+ #elif defined(__FLOAT128__)
+ typedef __float128 float128;
+--
+2.21.0 (Apple Git-122)
+
diff --git a/meta/recipes-support/libffi/libffi_3.3.bb b/meta/recipes-support/libffi/libffi_3.3.bb
index 803a25fa35..9dfdb9e39b 100644
--- a/meta/recipes-support/libffi/libffi_3.3.bb
+++ b/meta/recipes-support/libffi/libffi_3.3.bb
@@ -16,6 +16,7 @@ SRC_URI = "https://github.com/libffi/libffi/releases/download/v${PV}/${BPN}-${PV
file://0001-powerpc-fix-build-failure-on-power7-and-older-532.patch \
file://0001-Address-platforms-with-no-__int128.patch \
file://0001-Address-platforms-with-no-__int128-part2.patch \
+ file://0001-ffi_powerpc.h-fix-build-failure-with-powerpc7.patch \
"
SRC_URI[md5sum] = "6313289e32f1d38a9df4770b014a2ca7"
SRC_URI[sha256sum] = "72fba7922703ddfa7a028d513ac15a85c8d54c8d67f55fa5a4802885dc652056"
@@ -27,7 +28,7 @@ EXTRA_OEMAKE_class-target = "LIBTOOLFLAGS='--tag=CC'"
inherit autotools texinfo multilib_header
do_install_append() {
- oe_multilib_header ffi.h
+ oe_multilib_header ffi.h ffitarget.h
}
FILES_${PN}-dev += "${libdir}/libffi-${PV}"
diff --git a/meta/recipes-support/libgcrypt/libgcrypt_1.8.5.bb b/meta/recipes-support/libgcrypt/libgcrypt_1.8.6.bb
index 4e0eb0a169..ac09417e89 100644
--- a/meta/recipes-support/libgcrypt/libgcrypt_1.8.5.bb
+++ b/meta/recipes-support/libgcrypt/libgcrypt_1.8.6.bb
@@ -26,8 +26,7 @@ SRC_URI = "${GNUPG_MIRROR}/libgcrypt/libgcrypt-${PV}.tar.bz2 \
file://0003-GCM-move-look-up-table-to-.data-section-and-unshare-.patch \
file://determinism.patch \
"
-SRC_URI[md5sum] = "348cc4601ca34307fc6cd6c945467743"
-SRC_URI[sha256sum] = "3b4a2a94cb637eff5bdebbcaf46f4d95c4f25206f459809339cdada0eb577ac3"
+SRC_URI[sha256sum] = "0cba2700617b99fc33864a0c16b1fa7fdf9781d9ed3509f5d767178e5fd7b975"
BINCONFIG = "${bindir}/libgcrypt-config"
diff --git a/meta/recipes-support/libgpg-error/libgpg-error/0001-Do-not-fail-when-testing-config-scripts.patch b/meta/recipes-support/libgpg-error/libgpg-error/0001-Do-not-fail-when-testing-config-scripts.patch
new file mode 100644
index 0000000000..a0ab4f23ff
--- /dev/null
+++ b/meta/recipes-support/libgpg-error/libgpg-error/0001-Do-not-fail-when-testing-config-scripts.patch
@@ -0,0 +1,27 @@
+From 137805890951b6b585c1d23097e0a51e8c7a8a50 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 28 Feb 2020 09:19:56 +0000
+Subject: [PATCH] Do not fail when testing config scripts
+
+In previous versions this was not a hard a failure, and so went
+unnoticed. The test is unsuitable for building with sysroots anyway as the
+failure is due to that.
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ src/Makefile.am | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 9303954..7630540 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -344,7 +344,6 @@ gpg-error-config: gpgrt-config gpg-error-config-old
+ else \
+ echo "no"; \
+ echo "*** Please report to <https://bugs.gnupg.org> with gpg-error-config-test.log"; \
+- exit 1; \
+ fi
+ cp gpg-error-config-old $@
+
diff --git a/meta/recipes-support/libgpg-error/libgpg-error/libgpg-error-1.36-gawk5-support.patch b/meta/recipes-support/libgpg-error/libgpg-error/libgpg-error-1.36-gawk5-support.patch
deleted file mode 100644
index b936d1143b..0000000000
--- a/meta/recipes-support/libgpg-error/libgpg-error/libgpg-error-1.36-gawk5-support.patch
+++ /dev/null
@@ -1,144 +0,0 @@
-Upstream-Status: Backport [https://dev.gnupg.org/T4459]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-From 7865041c77f4f7005282f10f9b6666b19072fbdf Mon Sep 17 00:00:00 2001
-From: NIIBE Yutaka <gniibe@fsij.org>
-Date: Mon, 15 Apr 2019 15:10:44 +0900
-Subject: [PATCH] awk: Prepare for Gawk 5.0.
-
-* src/Makefile.am: Use pkg_namespace (instead of namespace).
-* src/mkerrnos.awk: Likewise.
-* lang/cl/mkerrcodes.awk: Don't escape # in regexp.
-* src/mkerrcodes.awk, src/mkerrcodes1.awk, src/mkerrcodes2.awk: Ditto.
-
---
-
-In Gawk 5.0, regexp routines are replaced by Gnulib implementation,
-which only allows escaping specific characters.
-
-GnuPG-bug-id: 4459
-Reported-by: Marius Schamschula
-Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
----
- lang/cl/mkerrcodes.awk | 2 +-
- src/Makefile.am | 2 +-
- src/mkerrcodes.awk | 2 +-
- src/mkerrcodes1.awk | 2 +-
- src/mkerrcodes2.awk | 2 +-
- src/mkerrnos.awk | 2 +-
- src/mkstrtable.awk | 10 +++++-----
- 7 files changed, 11 insertions(+), 11 deletions(-)
-
---- a/lang/cl/mkerrcodes.awk
-+++ b/lang/cl/mkerrcodes.awk
-@@ -122,7 +122,7 @@ header {
- }
-
- !header {
-- sub (/\#.+/, "");
-+ sub (/#.+/, "");
- sub (/[ ]+$/, ""); # Strip trailing space and tab characters.
-
- if (/^$/)
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -293,7 +293,7 @@ code-from-errno.h: mkerrcodes$(EXEEXT_FO
-
- errnos-sym.h: Makefile mkstrtable.awk errnos.in
- $(AWK) -f $(srcdir)/mkstrtable.awk -v textidx=2 -v nogettext=1 \
-- -v prefix=GPG_ERR_ -v namespace=errnos_ \
-+ -v prefix=GPG_ERR_ -v pkg_namespace=errnos_ \
- $(srcdir)/errnos.in >$@
-
-
---- a/src/mkerrcodes.awk
-+++ b/src/mkerrcodes.awk
-@@ -85,7 +85,7 @@ header {
- }
-
- !header {
-- sub (/\#.+/, "");
-+ sub (/#.+/, "");
- sub (/[ ]+$/, ""); # Strip trailing space and tab characters.
-
- if (/^$/)
---- a/src/mkerrcodes1.awk
-+++ b/src/mkerrcodes1.awk
-@@ -81,7 +81,7 @@ header {
- }
-
- !header {
-- sub (/\#.+/, "");
-+ sub (/#.+/, "");
- sub (/[ ]+$/, ""); # Strip trailing space and tab characters.
-
- if (/^$/)
---- a/src/mkerrcodes2.awk
-+++ b/src/mkerrcodes2.awk
-@@ -91,7 +91,7 @@ header {
- }
-
- !header {
-- sub (/\#.+/, "");
-+ sub (/#.+/, "");
- sub (/[ ]+$/, ""); # Strip trailing space and tab characters.
-
- if (/^$/)
---- a/src/mkerrnos.awk
-+++ b/src/mkerrnos.awk
-@@ -83,7 +83,7 @@ header {
- }
-
- !header {
-- sub (/\#.+/, "");
-+ sub (/#.+/, "");
- sub (/[ ]+$/, ""); # Strip trailing space and tab characters.
-
- if (/^$/)
---- a/src/mkstrtable.awk
-+++ b/src/mkstrtable.awk
-@@ -77,7 +77,7 @@
- #
- # The variable prefix can be used to prepend a string to each message.
- #
--# The variable namespace can be used to prepend a string to each
-+# The variable pkg_namespace can be used to prepend a string to each
- # variable and macro name.
-
- BEGIN {
-@@ -102,7 +102,7 @@ header {
- print "/* The purpose of this complex string table is to produce";
- print " optimal code with a minimum of relocations. */";
- print "";
-- print "static const char " namespace "msgstr[] = ";
-+ print "static const char " pkg_namespace "msgstr[] = ";
- header = 0;
- }
- else
-@@ -110,7 +110,7 @@ header {
- }
-
- !header {
-- sub (/\#.+/, "");
-+ sub (/#.+/, "");
- sub (/[ ]+$/, ""); # Strip trailing space and tab characters.
-
- if (/^$/)
-@@ -150,7 +150,7 @@ END {
- else
- print " gettext_noop (\"" last_msgstr "\");";
- print "";
-- print "static const int " namespace "msgidx[] =";
-+ print "static const int " pkg_namespace "msgidx[] =";
- print " {";
- for (i = 0; i < coded_msgs; i++)
- print " " pos[i] ",";
-@@ -158,7 +158,7 @@ END {
- print " };";
- print "";
- print "static GPG_ERR_INLINE int";
-- print namespace "msgidxof (int code)";
-+ print pkg_namespace "msgidxof (int code)";
- print "{";
- print " return (0 ? 0";
-
diff --git a/meta/recipes-support/libgpg-error/libgpg-error_1.36.bb b/meta/recipes-support/libgpg-error/libgpg-error_1.36.bb
deleted file mode 100644
index b11ab0548d..0000000000
--- a/meta/recipes-support/libgpg-error/libgpg-error_1.36.bb
+++ /dev/null
@@ -1,72 +0,0 @@
-SUMMARY = "Small library that defines common error values for all GnuPG components"
-HOMEPAGE = "http://www.gnupg.org/related_software/libgpg-error/"
-BUGTRACKER = "https://bugs.g10code.com/gnupg/index"
-
-LICENSE = "GPLv2+ & LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
- file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
- file://src/gpg-error.h.in;beginline=2;endline=18;md5=cd91e3ad1265a0c268efad541a39345e \
- file://src/init.c;beginline=2;endline=17;md5=f01cdfcf747af5380590cfd9bbfeaaf7"
-
-
-SECTION = "libs"
-
-UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
-SRC_URI = "${GNUPG_MIRROR}/libgpg-error/libgpg-error-${PV}.tar.bz2 \
- file://pkgconfig.patch \
- file://libgpg-error-1.36-gawk5-support.patch \
- "
-
-SRC_URI[md5sum] = "eff437f397e858a9127b76c0d87fa5ed"
-SRC_URI[sha256sum] = "babd98437208c163175c29453f8681094bcaf92968a15cafb1a276076b33c97c"
-
-BINCONFIG = "${bindir}/gpg-error-config"
-
-inherit autotools binconfig-disabled pkgconfig gettext multilib_header multilib_script
-
-MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/gpgrt-config"
-
-CPPFLAGS += "-P"
-do_compile_prepend() {
- TARGET_FILE=linux-gnu
- if [ ${TARGET_OS} = "mingw32" ]; then
- # There are no arch specific syscfg files for mingw32
- TARGET_FILE=
- elif [ ${TARGET_ARCH} = "arc" ]; then
- # ARC syscfg file is automatically aliased to i686-pc-linux-gnu
- TARGET_FILE=
- elif [ ${TARGET_OS} != "linux" ]; then
- TARGET_FILE=${TARGET_OS}
- fi
-
- case ${TARGET_ARCH} in
- aarch64_be) TUPLE=aarch64-unknown-linux-gnu ;;
- arm) TUPLE=arm-unknown-linux-gnueabi ;;
- armeb) TUPLE=arm-unknown-linux-gnueabi ;;
- i586|i686) TUPLE=i686-unknown-linux-gnu;;
- mips64*) TUPLE=mips64el-unknown-linux-gnuabi64 ;;
- mips*el) TUPLE=mipsel-unknown-linux-gnu ;;
- mips*) TUPLE=mips-unknown-linux-gnu ;;
- x86_64) TUPLE=x86_64-unknown-linux-gnu ;;
- ppc) TUPLE=powerpc-unknown-linux-gnu ;;
- ppc64) TUPLE=powerpc64-unknown-linux-gnu ;;
- ppc64le) TUPLE=powerpc64le-unknown-linux-gnu ;;
- *) TUPLE=${TARGET_ARCH}-unknown-linux-gnu ;;
- esac
-
- if [ -n "$TARGET_FILE" ]; then
- cp ${S}/src/syscfg/lock-obj-pub.$TUPLE.h \
- ${S}/src/syscfg/lock-obj-pub.$TARGET_FILE.h
- fi
-}
-
-do_install_append() {
- # we don't have common lisp in OE
- rm -rf "${D}${datadir}/common-lisp/"
- oe_multilib_header gpg-error.h gpgrt.h
-}
-
-FILES_${PN}-dev += "${bindir}/gpg-error"
-FILES_${PN}-doc += "${datadir}/libgpg-error/errorref.txt"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/libgpg-error/libgpg-error_1.39.bb b/meta/recipes-support/libgpg-error/libgpg-error_1.39.bb
new file mode 100644
index 0000000000..f53056f5c9
--- /dev/null
+++ b/meta/recipes-support/libgpg-error/libgpg-error_1.39.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Small library that defines common error values for all GnuPG components"
+HOMEPAGE = "http://www.gnupg.org/related_software/libgpg-error/"
+BUGTRACKER = "https://bugs.g10code.com/gnupg/index"
+
+LICENSE = "GPLv2+ & LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
+ file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+ file://src/gpg-error.h.in;beginline=2;endline=18;md5=d82591bc81561f617da71e00ff4a9d79 \
+ file://src/init.c;beginline=2;endline=17;md5=f01cdfcf747af5380590cfd9bbfeaaf7 \
+ "
+
+
+SECTION = "libs"
+
+UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
+SRC_URI = "${GNUPG_MIRROR}/libgpg-error/libgpg-error-${PV}.tar.bz2 \
+ file://pkgconfig.patch \
+ file://0001-Do-not-fail-when-testing-config-scripts.patch \
+ "
+
+SRC_URI[sha256sum] = "4a836edcae592094ef1c5a4834908f44986ab2b82e0824a0344b49df8cdb298f"
+
+BINCONFIG = "${bindir}/gpg-error-config"
+
+inherit autotools binconfig-disabled pkgconfig gettext multilib_header multilib_script
+
+MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/gpgrt-config"
+
+CPPFLAGS += "-P"
+
+do_install_append() {
+ # we don't have common lisp in OE
+ rm -rf "${D}${datadir}/common-lisp/"
+ oe_multilib_header gpg-error.h gpgrt.h
+}
+
+FILES_${PN}-dev += "${bindir}/gpg-error"
+FILES_${PN}-doc += "${datadir}/libgpg-error/errorref.txt"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/libical/libical_3.0.7.bb b/meta/recipes-support/libical/libical_3.0.8.bb
index a50473e9ec..efb9433412 100644
--- a/meta/recipes-support/libical/libical_3.0.7.bb
+++ b/meta/recipes-support/libical/libical_3.0.8.bb
@@ -12,8 +12,8 @@ SRC_URI = " \
https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.gz \
file://0001-Use-our-hand-build-native-src-generator.patch \
"
-SRC_URI[md5sum] = "8a5d07a7fba9e73a85e67f76258bf042"
-SRC_URI[sha256sum] = "0abe66df1ea826e57db7f281c704ede834c84139012e6c686ea7adafd4e763fc"
+SRC_URI[md5sum] = "41bd1f1fcdcb4779cea478bb55cf07bf"
+SRC_URI[sha256sum] = "09fecacaf75ba5a242159e3a9758a5446b5ce4d0ab684f98a7040864e1d1286f"
UPSTREAM_CHECK_URI = "https://github.com/libical/libical/releases"
inherit cmake pkgconfig
diff --git a/meta/recipes-support/libjitterentropy/files/0001-Make-man-pages-reproducible.patch b/meta/recipes-support/libjitterentropy/files/0001-Make-man-pages-reproducible.patch
index 886fd26db1..57b336c0c0 100644
--- a/meta/recipes-support/libjitterentropy/files/0001-Make-man-pages-reproducible.patch
+++ b/meta/recipes-support/libjitterentropy/files/0001-Make-man-pages-reproducible.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Make man pages reproducible
Instructs the man page to be gzip'ed without the file name or timestamp
so that it builds reproducibly.
-Upstream-Status: Accepted [https://github.com/smuellerDD/jitterentropy-library/pull/14]
+Upstream-Status: Backport [https://github.com/smuellerDD/jitterentropy-library/pull/14]
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
---
Makefile | 2 +-
diff --git a/meta/recipes-support/libjitterentropy/files/0001-Makefile-cleanup-install-for-rebuilds.patch b/meta/recipes-support/libjitterentropy/files/0001-Makefile-cleanup-install-for-rebuilds.patch
index a19b252293..9af334ce2c 100644
--- a/meta/recipes-support/libjitterentropy/files/0001-Makefile-cleanup-install-for-rebuilds.patch
+++ b/meta/recipes-support/libjitterentropy/files/0001-Makefile-cleanup-install-for-rebuilds.patch
@@ -10,7 +10,7 @@ Provide the ability to override the stripping of the shared lib for
cases where a embedded target build may want to control stripping
or provide cross arch tools.
-Upstream-Status: Accepted [060b9b4147f6e5ff386a8b017796118d783e59fa]
+Upstream-Status: Backport [060b9b4147f6e5ff386a8b017796118d783e59fa]
Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com>
Signed-off-by: Stephan Mueller <smueller@chronox.de>
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
diff --git a/meta/recipes-support/libksba/libksba/ksba-add-pkgconfig-support.patch b/meta/recipes-support/libksba/libksba/ksba-add-pkgconfig-support.patch
index 5afe6de923..ebb7fa588a 100644
--- a/meta/recipes-support/libksba/libksba/ksba-add-pkgconfig-support.patch
+++ b/meta/recipes-support/libksba/libksba/ksba-add-pkgconfig-support.patch
@@ -1,3 +1,8 @@
+From 7bd2b060e9ea3e2ff11e67d1e98ab882819b28b7 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Mon, 3 Dec 2012 18:17:31 +0800
+Subject: [PATCH] libksba: add pkgconfig support
+
Upstream-Status: Denied
Add pkgconfig support to libksba.
@@ -6,78 +11,49 @@ They think pkgconfig adds no portability and maintaining them is not worthwhile.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-Index: libksba-1.3.5/Makefile.am
-===================================================================
---- libksba-1.3.5.orig/Makefile.am
-+++ libksba-1.3.5/Makefile.am
-@@ -20,6 +20,9 @@
-
- ACLOCAL_AMFLAGS = -I m4 -I gl/m4
-
-+pkgconfigdir = ${libdir}/pkgconfig
-+pkgconfig_DATA = ksba.pc
-+
- # (A suitable gitlog-to-changelog script can be found in GnuPG master.)
- GITLOG_TO_CHANGELOG=gitlog-to-changelog
-
-Index: libksba-1.3.5/configure.ac
-===================================================================
---- libksba-1.3.5.orig/configure.ac
-+++ libksba-1.3.5/configure.ac
-@@ -414,6 +414,7 @@ gl/Makefile
- src/Makefile
- src/ksba-config
- src/versioninfo.rc
-+ksba.pc
- tests/Makefile
- doc/Makefile
- ])
-Index: libksba-1.3.5/ksba.pc.in
-===================================================================
---- /dev/null
-+++ libksba-1.3.5/ksba.pc.in
-@@ -0,0 +1,17 @@
-+prefix=@prefix@
-+exec_prefix=@exec_prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+# API info
-+api_version=@KSBA_CONFIG_API_VERSION@
-+host=@KSBA_CONFIG_HOST@
-+
-+Name: ksba
-+Description: Libksba provides an easy API to create and parse X.509 and CMS related objects
-+Requires:
-+Version: @VERSION@
-+Libs: -L${libdir} -lksba
-+Libs.private: -L${libdir} -lgpg-error
-+Cflags: -I${includedir}
-+
-Index: libksba-1.3.5/src/ksba.m4
-===================================================================
---- libksba-1.3.5.orig/src/ksba.m4
-+++ libksba-1.3.5/src/ksba.m4
-@@ -22,18 +22,7 @@ dnl with a changed API.
+diff --git a/src/ksba.m4 b/src/ksba.m4
+index ad8de4f..af903ad 100644
+--- a/src/ksba.m4
++++ b/src/ksba.m4
+@@ -22,37 +22,6 @@ dnl with a changed API.
dnl
AC_DEFUN([AM_PATH_KSBA],
- [AC_REQUIRE([AC_CANONICAL_HOST])
-- AC_ARG_WITH(ksba-prefix,
-- AC_HELP_STRING([--with-ksba-prefix=PFX],
-- [prefix where KSBA is installed (optional)]),
+ [ AC_REQUIRE([AC_CANONICAL_HOST])
+- dnl --with-libksba-prefix=PFX is the preferred name for this option,
+- dnl since that is consistent with how our three siblings use the directory/
+- dnl package name in --with-$dir_name-prefix=PFX.
+- AC_ARG_WITH(libksba-prefix,
+- AC_HELP_STRING([--with-libksba-prefix=PFX],
+- [prefix where KSBA is installed (optional)]),
+- ksba_config_prefix="$withval", ksba_config_prefix="")
+-
+- dnl Accept --with-ksba-prefix and make it work the same as
+- dnl --with-libksba-prefix above, for backwards compatibility,
+- dnl but do not document this old, inconsistently-named option.
+- AC_ARG_WITH(ksba-prefix,,
- ksba_config_prefix="$withval", ksba_config_prefix="")
+-
- if test x$ksba_config_prefix != x ; then
-- ksba_config_args="$ksba_config_args --prefix=$ksba_config_prefix"
-- if test x${KSBA_CONFIG+set} != xset ; then
-- KSBA_CONFIG=$ksba_config_prefix/bin/ksba-config
-- fi
+- if test x${KSBA_CONFIG+set} != xset ; then
+- KSBA_CONFIG=$ksba_config_prefix/bin/ksba-config
+- fi
+- fi
+-
+- use_gpgrt_config=""
+- if test x"$KSBA_CONFIG" = x -a x"$GPGRT_CONFIG" != x -a "$GPGRT_CONFIG" != "no"; then
+- if $GPGRT_CONFIG ksba --exists; then
+- KSBA_CONFIG="$GPGRT_CONFIG ksba"
+- AC_MSG_NOTICE([Use gpgrt-config as ksba-config])
+- use_gpgrt_config=yes
+- fi
+- fi
+- if test -z "$use_gpgrt_config"; then
+- AC_PATH_PROG(KSBA_CONFIG, ksba-config, no)
- fi
-- AC_PATH_PROG(KSBA_CONFIG, ksba-config, no)
tmp=ifelse([$1], ,1:1.0.0,$1)
if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then
- req_ksba_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'`
-@@ -43,48 +32,13 @@ AC_DEFUN([AM_PATH_KSBA],
+@@ -63,56 +32,13 @@ AC_DEFUN([AM_PATH_KSBA],
min_ksba_version="$tmp"
fi
@@ -90,7 +66,11 @@ Index: libksba-1.3.5/src/ksba.m4
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
- req_micro=`echo $min_ksba_version | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
-- ksba_config_version=`$KSBA_CONFIG $ksba_config_args --version`
+- if test -z "$use_gpgrt_config"; then
+- ksba_config_version=`$KSBA_CONFIG --version`
+- else
+- ksba_config_version=`$KSBA_CONFIG --modversion`
+- fi
- major=`echo $ksba_config_version | \
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
- minor=`echo $ksba_config_version | \
@@ -124,24 +104,32 @@ Index: libksba-1.3.5/src/ksba.m4
# Even if we have a recent libksba, we should check that the
# API is compatible.
if test "$req_ksba_api" -gt 0 ; then
-- tmp=`$KSBA_CONFIG --api-version 2>/dev/null || echo 0`
+- if test -z "$use_gpgrt_config"; then
+- tmp=`$KSBA_CONFIG --api-version 2>/dev/null || echo 0`
+- else
+- tmp=`$KSBA_CONFIG --variable=api_version 2>/dev/null || echo 0`
+- fi
+ tmp=`$PKG_CONFIG --variable=api_version ksba`
if test "$tmp" -gt 0 ; then
AC_MSG_CHECKING([KSBA API version])
if test "$req_ksba_api" -eq "$tmp" ; then
-@@ -97,10 +51,8 @@ AC_DEFUN([AM_PATH_KSBA],
+@@ -125,14 +51,8 @@ AC_DEFUN([AM_PATH_KSBA],
fi
fi
if test $ok = yes; then
-- KSBA_CFLAGS=`$KSBA_CONFIG $ksba_config_args --cflags`
-- KSBA_LIBS=`$KSBA_CONFIG $ksba_config_args --libs`
+- KSBA_CFLAGS=`$KSBA_CONFIG --cflags`
+- KSBA_LIBS=`$KSBA_CONFIG --libs`
ifelse([$2], , :, [$2])
-- libksba_config_host=`$LIBKSBA_CONFIG $ksba_config_args --host 2>/dev/null || echo none`
+- if test -z "$use_gpgrt_config"; then
+- libksba_config_host=`$KSBA_CONFIG --host 2>/dev/null || echo none`
+- else
+- libksba_config_host=`$KSBA_CONFIG --variable=host 2>/dev/null || echo none`
+- fi
+ libksba_config_host=`$PKG_CONFIG --variable=host ksba`
if test x"$libksba_config_host" != xnone ; then
if test x"$libksba_config_host" != x"$host" ; then
AC_MSG_WARN([[
-@@ -114,8 +66,6 @@ AC_DEFUN([AM_PATH_KSBA],
+@@ -146,8 +66,6 @@ AC_DEFUN([AM_PATH_KSBA],
fi
fi
else
diff --git a/meta/recipes-support/libksba/libksba_1.3.5.bb b/meta/recipes-support/libksba/libksba_1.4.0.bb
index 336d7f8177..a9daf22d77 100644
--- a/meta/recipes-support/libksba/libksba_1.3.5.bb
+++ b/meta/recipes-support/libksba/libksba_1.4.0.bb
@@ -19,8 +19,7 @@ UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \
file://ksba-add-pkgconfig-support.patch"
-SRC_URI[md5sum] = "8302a3e263a7c630aa7dea7d341f07a2"
-SRC_URI[sha256sum] = "41444fd7a6ff73a79ad9728f985e71c9ba8cd3e5e53358e70d5f066d35c1a340"
+SRC_URI[sha256sum] = "bfe6a8e91ff0f54d8a329514db406667000cb207238eded49b599761bfca41b6"
do_configure_prepend () {
# Else these could be used in preference to those in aclocal-copy
diff --git a/meta/recipes-support/libmpc/libmpc_1.1.0.bb b/meta/recipes-support/libmpc/libmpc_1.2.0.bb
index bbc673ff38..b51ec6ad14 100644
--- a/meta/recipes-support/libmpc/libmpc_1.1.0.bb
+++ b/meta/recipes-support/libmpc/libmpc_1.2.0.bb
@@ -5,8 +5,7 @@ DEPENDS = "gmp mpfr"
LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02"
SRC_URI = "${GNU_MIRROR}/mpc/mpc-${PV}.tar.gz"
-SRC_URI[md5sum] = "4125404e41e482ec68282a2e687f6c73"
-SRC_URI[sha256sum] = "6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e"
+SRC_URI[sha256sum] = "e90f2d99553a9c19911abdb4305bf8217106a957e3994436428572c8dfe8fda6"
S = "${WORKDIR}/mpc-${PV}"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/libnl/libnl_3.5.0.bb b/meta/recipes-support/libnl/libnl_3.5.0.bb
index c0609c4d90..9d0e1441a9 100644
--- a/meta/recipes-support/libnl/libnl_3.5.0.bb
+++ b/meta/recipes-support/libnl/libnl_3.5.0.bb
@@ -40,3 +40,5 @@ FILES_${PN}-route = "${libdir}/libnl-route-3.so.*"
FILES_${PN}-xfrm = "${libdir}/libnl-xfrm-3.so.*"
RREPLACES_${PN}-genl = "libnl-genl2"
RCONFLICTS_${PN}-genl = "libnl-genl2"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/libpcre/libpcre/out-of-tree.patch b/meta/recipes-support/libpcre/libpcre/out-of-tree.patch
deleted file mode 100644
index d56789615f..0000000000
--- a/meta/recipes-support/libpcre/libpcre/out-of-tree.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-In out-of-tree builds the #include fails because $srcdir isn't in the include path. Set CPPFLAGS so that it is.
-
-Upstream-Status: Backport [r1750]
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-Index: configure.ac
-===================================================================
---- a/configure.ac (revision 1749)
-+++ b/configure.ac (working copy)
-@@ -159,6 +159,8 @@
-
- if test "$enable_jit" = "auto"; then
- AC_LANG(C)
-+ SAVE_CPPFLAGS=$CPPFLAGS
-+ CPPFLAGS=-I$srcdir
- AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
- #define SLJIT_CONFIG_AUTO 1
- #include "sljit/sljitConfigInternal.h"
-@@ -165,6 +167,7 @@
- #if (defined SLJIT_CONFIG_UNSUPPORTED && SLJIT_CONFIG_UNSUPPORTED)
- #error unsupported
- #endif]])], enable_jit=yes, enable_jit=no)
-+ CPPFLAGS=$SAVE_CPPFLAGS
- fi
-
- # Handle --disable-pcregrep-jit (enabled by default)
diff --git a/meta/recipes-support/libpcre/libpcre2/pcre-cross.patch b/meta/recipes-support/libpcre/libpcre2/pcre-cross.patch
deleted file mode 100644
index 871cdfcb7d..0000000000
--- a/meta/recipes-support/libpcre/libpcre2/pcre-cross.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-Fix for cross compiling
-
-Fixed:
-| ./dftables src/pcre2_chartables.c
-| make: ./dftables: Command not found
-| make: *** [src/pcre2_chartables.c] Error 127
-
-Upstream-Status: Pending
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-
-Index: pcre2-10.30/Makefile.am
-===================================================================
---- pcre2-10.30.orig/Makefile.am
-+++ pcre2-10.30/Makefile.am
-@@ -325,9 +325,21 @@ bin_SCRIPTS = pcre2-config
- ## to copy a distributed set of tables that are defined for ASCII code. In this
- ## case, dftables is not needed.
-
-+CC_FOR_BUILD = @CC_FOR_BUILD@
-+CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
-+CCLD_FOR_BUILD = @CCLD_FOR_BUILD@
-+LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
-+
- if WITH_REBUILD_CHARTABLES
- noinst_PROGRAMS += dftables
- dftables_SOURCES = src/dftables.c
-+
-+dftables_LINK = $(CCLD_FOR_BUILD) -o $@
-+dftables_LDFLAGS = $(LDFLAGS_FOR_BUILD)
-+
-+src/dftables.o: $(srcdir)/src/dftables.c
-+ $(CC_FOR_BUILD) -c $(CFLAGS_FOR_BUILD) -o $@ $(srcdir)/src/dftables.c
-+
- src/pcre2_chartables.c: dftables$(EXEEXT)
- rm -f $@
- ./dftables$(EXEEXT) $@
-Index: pcre2-10.30/configure.ac
-===================================================================
---- pcre2-10.30.orig/configure.ac
-+++ pcre2-10.30/configure.ac
-@@ -60,6 +60,23 @@ fi
- # This is a new thing required to stop a warning from automake 1.12
- m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
-
-+if test x"$cross_compiling" = xyes; then
-+ CC_FOR_BUILD="${CC_FOR_BUILD-gcc}"
-+ CCLD_FOR_BUILD="${CCLD_FOR_BUILD-gcc}"
-+ CFLAGS_FOR_BUILD="${CFLAGS_FOR_BUILD}"
-+ LDFLAGS_FOR_BUILD="${LDFLAGS_FOR_BUILD}"
-+else
-+ CC_FOR_BUILD="${CC_FOR_BUILD-\$(CC)}"
-+ CCLD_FOR_BUILD="${CCLD_FOR_BUILD-\$(CCLD)}"
-+ CFLAGS_FOR_BUILD="${CFLAGS_FOR_BUILD-\$(CFLAGS)}"
-+ LDFLAGS_FOR_BUILD="${LDFLAGS_FOR_BUILD-\$(LDFLAGS)}"
-+fi
-+AC_ARG_VAR(CC_FOR_BUILD, [build system C compiler])
-+AC_ARG_VAR(CCLD_FOR_BUILD, [build system C linker frontend])
-+AC_ARG_VAR(CFLAGS_FOR_BUILD, [build system C compiler arguments])
-+AC_ARG_VAR(LDFLAGS_FOR_BUILD, [build system C linker frontend arguments])
-+
-+
- # Check for a 64-bit integer type
- AC_TYPE_INT64_T
-
diff --git a/meta/recipes-support/libpcre/libpcre2_10.34.bb b/meta/recipes-support/libpcre/libpcre2_10.35.bb
index fa8655e027..35c019c100 100644
--- a/meta/recipes-support/libpcre/libpcre2_10.34.bb
+++ b/meta/recipes-support/libpcre/libpcre2_10.35.bb
@@ -8,14 +8,11 @@ SUMMARY = "Perl Compatible Regular Expressions version 2"
HOMEPAGE = "http://www.pcre.org"
SECTION = "devel"
LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=b1588d3bb4cb0e1f5a597d908f8c5b37"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=a06590e9bd4c229532364727aaeaf084"
-SRC_URI = "https://ftp.pcre.org/pub/pcre/pcre2-${PV}.tar.bz2 \
- file://pcre-cross.patch \
-"
+SRC_URI = "https://ftp.pcre.org/pub/pcre/pcre2-${PV}.tar.bz2"
-SRC_URI[md5sum] = "d280b62ded13f9ccf2fac16ee5286366"
-SRC_URI[sha256sum] = "74c473ffaba9e13db6951fd146e0143fe9887852ce73406a03277af1d9b798ca"
+SRC_URI[sha256sum] = "9ccba8e02b0ce78046cdfb52e5c177f0f445e421059e43becca4359c669d4613"
CVE_PRODUCT = "pcre2"
@@ -30,20 +27,14 @@ inherit autotools binconfig-disabled
EXTRA_OECONF = "\
--enable-newline-is-lf \
- --enable-rebuild-chartables \
--with-link-size=2 \
--with-match-limit=10000000 \
--enable-pcre2-16 \
--enable-pcre2-32 \
"
-# Set LINK_SIZE in BUILD_CFLAGS given that the autotools bbclass use it to
-# set CFLAGS_FOR_BUILD, required for the libpcre build.
-BUILD_CFLAGS =+ "-DLINK_SIZE=2 -I${B}/src"
CFLAGS += "-D_REENTRANT"
CXXFLAGS_append_powerpc = " -lstdc++"
-export CCLD_FOR_BUILD ="${BUILD_CCLD}"
-
PACKAGES =+ "libpcre2-16 libpcre2-32 pcre2grep pcre2grep-doc pcre2test pcre2test-doc"
SUMMARY_pcre2grep = "grep utility that uses perl 5 compatible regexes"
diff --git a/meta/recipes-support/libpcre/libpcre_8.43.bb b/meta/recipes-support/libpcre/libpcre_8.44.bb
index f9a22fee9d..e5471e81da 100644
--- a/meta/recipes-support/libpcre/libpcre_8.43.bb
+++ b/meta/recipes-support/libpcre/libpcre_8.44.bb
@@ -6,16 +6,15 @@ SUMMARY = "Perl Compatible Regular Expressions"
HOMEPAGE = "http://www.pcre.org"
SECTION = "devel"
LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=91bee59d1b327eb1599b4c673e2fb3d1"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=3bb381a66a5385b246d4877922e7511e"
SRC_URI = "https://ftp.pcre.org/pub/pcre/pcre-${PV}.tar.bz2 \
file://fix-pcre-name-collision.patch \
- file://out-of-tree.patch \
file://run-ptest \
file://Makefile \
-"
+ "
-SRC_URI[md5sum] = "636222e79e392c3d95dcc545f24f98c4"
-SRC_URI[sha256sum] = "91e762520003013834ac1adb4a938d53b22a216341c061b0cf05603b290faf6b"
+SRC_URI[md5sum] = "cf7326204cc46c755b5b2608033d9d24"
+SRC_URI[sha256sum] = "19108658b23b3ec5058edc9f66ac545ea19f9537234be1ec62b714c84399366d"
CVE_PRODUCT = "pcre"
diff --git a/meta/recipes-support/libproxy/libproxy/CVE-2020-25219.patch b/meta/recipes-support/libproxy/libproxy/CVE-2020-25219.patch
new file mode 100644
index 0000000000..3ef7f85451
--- /dev/null
+++ b/meta/recipes-support/libproxy/libproxy/CVE-2020-25219.patch
@@ -0,0 +1,61 @@
+From a83dae404feac517695c23ff43ce1e116e2bfbe0 Mon Sep 17 00:00:00 2001
+From: Michael Catanzaro <mcatanzaro@gnome.org>
+Date: Wed, 9 Sep 2020 11:12:02 -0500
+Subject: [PATCH] Rewrite url::recvline to be nonrecursive
+
+This function processes network input. It's semi-trusted, because the
+PAC ought to be trusted. But we still shouldn't allow it to control how
+far we recurse. A malicious PAC can cause us to overflow the stack by
+sending a sufficiently-long line without any '\n' character.
+
+Also, this function failed to properly handle EINTR, so let's fix that
+too, for good measure.
+
+Fixes #134
+
+Upstream-Status: Backport [https://github.com/libproxy/libproxy/commit/836c10b60c65e947ff1e10eb02fbcc676d909ffa]
+CVE: CVE-2020-25219
+Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
+---
+ libproxy/url.cpp | 28 ++++++++++++++++++----------
+ 1 file changed, 18 insertions(+), 10 deletions(-)
+
+diff --git a/libproxy/url.cpp b/libproxy/url.cpp
+index ee776b2..68d69cd 100644
+--- a/libproxy/url.cpp
++++ b/libproxy/url.cpp
+@@ -388,16 +388,24 @@ string url::to_string() const {
+ return m_orig;
+ }
+
+-static inline string recvline(int fd) {
+- // Read a character.
+- // If we don't get a character, return empty string.
+- // If we are at the end of the line, return empty string.
+- char c = '\0';
+-
+- if (recv(fd, &c, 1, 0) != 1 || c == '\n')
+- return "";
+-
+- return string(1, c) + recvline(fd);
++static string recvline(int fd) {
++ string line;
++ int ret;
++
++ // Reserve arbitrary amount of space to avoid small memory reallocations.
++ line.reserve(128);
++
++ do {
++ char c;
++ ret = recv(fd, &c, 1, 0);
++ if (ret == 1) {
++ if (c == '\n')
++ return line;
++ line += c;
++ }
++ } while (ret == 1 || (ret == -1 && errno == EINTR));
++
++ return line;
+ }
+
+ char* url::get_pac() {
diff --git a/meta/recipes-support/libproxy/libproxy_0.4.15.bb b/meta/recipes-support/libproxy/libproxy_0.4.15.bb
index 19dddebd44..a14c358cc2 100644
--- a/meta/recipes-support/libproxy/libproxy_0.4.15.bb
+++ b/meta/recipes-support/libproxy/libproxy_0.4.15.bb
@@ -10,6 +10,7 @@ DEPENDS = "glib-2.0"
SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz \
file://0001-get-pac-test-Fix-build-with-clang-libc.patch \
+ file://CVE-2020-25219.patch \
"
SRC_URI[md5sum] = "f6b1d2a1e17a99cd3debaae6d04ab152"
SRC_URI[sha256sum] = "654db464120c9534654590b6683c7fa3887b3dad0ca1c4cd412af24fbfca6d4f"
diff --git a/meta/recipes-support/libpsl/libpsl/0001-Makefile.am-use-PYTHON-when-invoking-psl-make-dafsa.patch b/meta/recipes-support/libpsl/libpsl/0001-Makefile.am-use-PYTHON-when-invoking-psl-make-dafsa.patch
deleted file mode 100644
index 6d6ccf4d25..0000000000
--- a/meta/recipes-support/libpsl/libpsl/0001-Makefile.am-use-PYTHON-when-invoking-psl-make-dafsa.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From a0e6f0ec9dc6dd1db1c03f7f273cc16cb3af5561 Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@intel.com>
-Date: Thu, 11 Jul 2019 17:47:11 +0100
-Subject: [PATCH] Makefile.am: use PYTHON when invoking psl-make-dafsa
-
-In an environment where only Python 3 is installed, configure.ac finds and sets
-PYTHON=python3 correctly but src/psl-make-dafsa is called directly, so the hashbang of
-`#!/usr/bin/env python` is used which doesn't exist.
-
-Fix this by explicitly running $(PYTHON) when using the tool.
-
-Upstream-Status: Backport [https://github.com/rockdaboot/libpsl/commit/b4fec5d0ddb70fc4f5360eb14f2f5c5e91194333]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- src/Makefile.am | 2 +-
- tests/Makefile.am | 4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/Makefile.am b/src/Makefile.am
-index f9c0a3d..a05ea05 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -19,7 +19,7 @@ libpsl_la_LDFLAGS = -no-undefined -version-info $(LIBPSL_SO_VERSION)
- # Build rule for suffix_dafsa.c
- # PSL_FILE can be set by ./configure --with-psl-file=[PATH]
- suffixes_dafsa.h: $(PSL_FILE) $(srcdir)/psl-make-dafsa
-- $(srcdir)/psl-make-dafsa --output-format=cxx+ "$(PSL_FILE)" suffixes_dafsa.h
-+ $(PYTHON) $(srcdir)/psl-make-dafsa --output-format=cxx+ "$(PSL_FILE)" suffixes_dafsa.h
-
- EXTRA_DIST = psl-make-dafsa LICENSE.chromium
-
-diff --git a/tests/Makefile.am b/tests/Makefile.am
-index 8b29b61..28a9a0b 100644
---- a/tests/Makefile.am
-+++ b/tests/Makefile.am
-@@ -34,9 +34,9 @@ TESTS = $(PSL_TESTS)
- # check-local target works in parallel to the tests, so the test suite will likely fail
- BUILT_SOURCES = psl.dafsa psl_ascii.dafsa
- psl.dafsa: $(top_srcdir)/list/public_suffix_list.dat
-- $(top_srcdir)/src/psl-make-dafsa --output-format=binary "$(PSL_FILE)" psl.dafsa
-+ $(PYTHON) $(top_srcdir)/src/psl-make-dafsa --output-format=binary "$(PSL_FILE)" psl.dafsa
- psl_ascii.dafsa: $(top_srcdir)/list/public_suffix_list.dat
-- $(top_srcdir)/src/psl-make-dafsa --output-format=binary --encoding=ascii "$(PSL_FILE)" psl_ascii.dafsa
-+ $(PYTHON) $(top_srcdir)/src/psl-make-dafsa --output-format=binary --encoding=ascii "$(PSL_FILE)" psl_ascii.dafsa
-
- clean-local:
- rm -f psl.dafsa psl_ascii.dafsa
---
-2.17.1
-
diff --git a/meta/recipes-support/libpsl/libpsl/0001-gtk-doc-do-not-include-tree_index.sgml.patch b/meta/recipes-support/libpsl/libpsl/0001-gtk-doc-do-not-include-tree_index.sgml.patch
deleted file mode 100644
index c78d6fd981..0000000000
--- a/meta/recipes-support/libpsl/libpsl/0001-gtk-doc-do-not-include-tree_index.sgml.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 8691105e1808ec9b031b6c25f70204a0908ae9c1 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Sat, 1 Jun 2019 13:09:41 +0200
-Subject: [PATCH] gtk-doc: do not include tree_index.sgml
-
-gtk-doc 1.30 no longer generates the file if the object tree is empty
-
-Upstream-Status: Backport [87d1add318b5e5d09977f7f374e923577b6ff3be]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- docs/libpsl/libpsl-docs.sgml | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/docs/libpsl/libpsl-docs.sgml b/docs/libpsl/libpsl-docs.sgml
-index 1eca9a2..1c38dbc 100644
---- a/docs/libpsl/libpsl-docs.sgml
-+++ b/docs/libpsl/libpsl-docs.sgml
-@@ -22,10 +22,6 @@
- </para>
- <xi:include href="xml/libpsl.xml"/>
- </chapter>
-- <chapter id="object-tree">
-- <title>Object Hierarchy</title>
-- <xi:include href="xml/tree_index.sgml"/>
-- </chapter>
- <index id="api-index-full">
- <title>API Index</title>
- <xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
diff --git a/meta/recipes-support/libpsl/libpsl_0.21.0.bb b/meta/recipes-support/libpsl/libpsl_0.21.1.bb
index 9831b4b94f..0a48db65c3 100644
--- a/meta/recipes-support/libpsl/libpsl_0.21.0.bb
+++ b/meta/recipes-support/libpsl/libpsl_0.21.1.bb
@@ -4,12 +4,9 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5437030d9e4fbe7267ced058ddb8a7f5 \
file://COPYING;md5=f41d10997a12da5ee3c24ceeb0148d18"
-SRC_URI = "https://github.com/rockdaboot/${BPN}/releases/download/${BP}/${BP}.tar.gz \
- file://0001-gtk-doc-do-not-include-tree_index.sgml.patch \
- file://0001-Makefile.am-use-PYTHON-when-invoking-psl-make-dafsa.patch \
+SRC_URI = "https://github.com/rockdaboot/${BPN}/releases/download/${PV}/${BP}.tar.gz \
"
-SRC_URI[md5sum] = "171e96d887709e36a57f4ee627bf82d2"
-SRC_URI[sha256sum] = "41bd1c75a375b85c337b59783f5deb93dbb443fb0a52d257f403df7bd653ee12"
+SRC_URI[sha256sum] = "ac6ce1e1fbd4d0254c4ddb9d37f1fa99dec83619c1253328155206b896210d4c"
UPSTREAM_CHECK_URI = "https://github.com/rockdaboot/libpsl/releases"
diff --git a/meta/recipes-support/libsoup/libsoup-2.4_2.68.3.bb b/meta/recipes-support/libsoup/libsoup-2.4_2.70.0.bb
index e8bc7d6470..d6425bd941 100644
--- a/meta/recipes-support/libsoup/libsoup-2.4_2.68.3.bb
+++ b/meta/recipes-support/libsoup/libsoup-2.4_2.70.0.bb
@@ -10,8 +10,8 @@ DEPENDS = "glib-2.0 glib-2.0-native libxml2 sqlite3 intltool-native libpsl"
SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
SRC_URI = "${GNOME_MIRROR}/libsoup/${SHRT_VER}/libsoup-${PV}.tar.xz"
-SRC_URI[md5sum] = "29ee2ee7017945b64ede063b1396011c"
-SRC_URI[sha256sum] = "534bb08e35b0ff3702f3adfde87d3441e27c12f9f5ec351f056fe04cba02bafb"
+SRC_URI[md5sum] = "c539f5b5ab534f024dc4e6a14e6d3f54"
+SRC_URI[sha256sum] = "54b020f74aefa438918d8e53cff62e2b1e59efe2de53e06b19a4b07b1f4d5342"
CVE_PRODUCT = "libsoup"
@@ -40,4 +40,4 @@ DEBIAN_NOAUTONAME_${PN} = "1"
# glib-networking is needed for SSL, proxies, etc.
RRECOMMENDS_${PN} = "glib-networking"
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/libunwind/libunwind/0001-Fix-compilation-with-fno-common.patch b/meta/recipes-support/libunwind/libunwind/0001-Fix-compilation-with-fno-common.patch
new file mode 100644
index 0000000000..e11487fe97
--- /dev/null
+++ b/meta/recipes-support/libunwind/libunwind/0001-Fix-compilation-with-fno-common.patch
@@ -0,0 +1,448 @@
+From 00d18b21dcb9723c4f13889a39a760a654782370 Mon Sep 17 00:00:00 2001
+From: Yichao Yu <yyc1992@gmail.com>
+Date: Tue, 31 Mar 2020 00:43:32 -0400
+Subject: [PATCH] Fix compilation with -fno-common.
+
+Making all other archs consistent with IA64 which should not have this problem.
+Also move the FIXME to the correct place.
+
+Also add some minimum comments about this...
+
+Upstream-Status: Backport [https://github.com/libunwind/libunwind/pull/166]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/aarch64/Ginit.c | 15 +++++++--------
+ src/arm/Ginit.c | 15 +++++++--------
+ src/coredump/_UPT_get_dyn_info_list_addr.c | 5 +++++
+ src/hppa/Ginit.c | 15 +++++++--------
+ src/ia64/Ginit.c | 1 +
+ src/mi/Gfind_dynamic_proc_info.c | 1 +
+ src/mips/Ginit.c | 15 +++++++--------
+ src/ppc32/Ginit.c | 11 +++++++----
+ src/ppc64/Ginit.c | 11 +++++++----
+ src/ptrace/_UPT_get_dyn_info_list_addr.c | 5 +++++
+ src/s390x/Ginit.c | 15 +++++++--------
+ src/sh/Ginit.c | 15 +++++++--------
+ src/tilegx/Ginit.c | 15 +++++++--------
+ src/x86/Ginit.c | 15 +++++++--------
+ src/x86_64/Ginit.c | 15 +++++++--------
+ 15 files changed, 89 insertions(+), 80 deletions(-)
+
+diff --git a/src/aarch64/Ginit.c b/src/aarch64/Ginit.c
+index dec235c..3538976 100644
+--- a/src/aarch64/Ginit.c
++++ b/src/aarch64/Ginit.c
+@@ -61,13 +61,6 @@ tdep_uc_addr (unw_tdep_context_t *uc, int reg)
+
+ # endif /* UNW_LOCAL_ONLY */
+
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+- by a remote unwinder. On ia64, this is done via a special
+- unwind-table entry. Perhaps something similar can be done with
+- DWARF2 unwind info. */
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -78,7 +71,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+ void *arg)
+ {
+- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++ if (!_U_dyn_info_list_addr)
++ return -UNW_ENOINFO;
++#endif
++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++ *dyn_info_list_addr = _U_dyn_info_list_addr ();
+ return 0;
+ }
+
+diff --git a/src/arm/Ginit.c b/src/arm/Ginit.c
+index 2720d06..0bac0d7 100644
+--- a/src/arm/Ginit.c
++++ b/src/arm/Ginit.c
+@@ -57,18 +57,17 @@ tdep_uc_addr (unw_tdep_context_t *uc, int reg)
+
+ # endif /* UNW_LOCAL_ONLY */
+
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+- by a remote unwinder. On ia64, this is done via a special
+- unwind-table entry. Perhaps something similar can be done with
+- DWARF2 unwind info. */
+-
+ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+ void *arg)
+ {
+- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++ if (!_U_dyn_info_list_addr)
++ return -UNW_ENOINFO;
++#endif
++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++ *dyn_info_list_addr = _U_dyn_info_list_addr ();
+ return 0;
+ }
+
+diff --git a/src/coredump/_UPT_get_dyn_info_list_addr.c b/src/coredump/_UPT_get_dyn_info_list_addr.c
+index 0d11905..739ed05 100644
+--- a/src/coredump/_UPT_get_dyn_info_list_addr.c
++++ b/src/coredump/_UPT_get_dyn_info_list_addr.c
+@@ -74,6 +74,11 @@ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
+
+ #else
+
++/* XXX fix me: there is currently no way to locate the dyn-info list
++ by a remote unwinder. On ia64, this is done via a special
++ unwind-table entry. Perhaps something similar can be done with
++ DWARF2 unwind info. */
++
+ static inline int
+ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
+ int *countp)
+diff --git a/src/hppa/Ginit.c b/src/hppa/Ginit.c
+index 461e4b9..265455a 100644
+--- a/src/hppa/Ginit.c
++++ b/src/hppa/Ginit.c
+@@ -64,13 +64,6 @@ _Uhppa_uc_addr (ucontext_t *uc, int reg)
+
+ # endif /* UNW_LOCAL_ONLY */
+
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+- by a remote unwinder. On ia64, this is done via a special
+- unwind-table entry. Perhaps something similar can be done with
+- DWARF2 unwind info. */
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -81,7 +74,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+ void *arg)
+ {
+- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++ if (!_U_dyn_info_list_addr)
++ return -UNW_ENOINFO;
++#endif
++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++ *dyn_info_list_addr = _U_dyn_info_list_addr ();
+ return 0;
+ }
+
+diff --git a/src/ia64/Ginit.c b/src/ia64/Ginit.c
+index b09a2ad..8601bb3 100644
+--- a/src/ia64/Ginit.c
++++ b/src/ia64/Ginit.c
+@@ -68,6 +68,7 @@ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+ if (!_U_dyn_info_list_addr)
+ return -UNW_ENOINFO;
+ #endif
++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
+ *dyn_info_list_addr = _U_dyn_info_list_addr ();
+ return 0;
+ }
+diff --git a/src/mi/Gfind_dynamic_proc_info.c b/src/mi/Gfind_dynamic_proc_info.c
+index 98d3501..2e7c62e 100644
+--- a/src/mi/Gfind_dynamic_proc_info.c
++++ b/src/mi/Gfind_dynamic_proc_info.c
+@@ -49,6 +49,7 @@ local_find_proc_info (unw_addr_space_t as, unw_word_t ip, unw_proc_info_t *pi,
+ return -UNW_ENOINFO;
+ #endif
+
++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
+ list = (unw_dyn_info_list_t *) (uintptr_t) _U_dyn_info_list_addr ();
+ for (di = list->first; di; di = di->next)
+ if (ip >= di->start_ip && ip < di->end_ip)
+diff --git a/src/mips/Ginit.c b/src/mips/Ginit.c
+index 3df170c..bf7a8f5 100644
+--- a/src/mips/Ginit.c
++++ b/src/mips/Ginit.c
+@@ -69,13 +69,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
+
+ # endif /* UNW_LOCAL_ONLY */
+
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+- by a remote unwinder. On ia64, this is done via a special
+- unwind-table entry. Perhaps something similar can be done with
+- DWARF2 unwind info. */
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -86,7 +79,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+ void *arg)
+ {
+- *dyn_info_list_addr = (unw_word_t) (intptr_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++ if (!_U_dyn_info_list_addr)
++ return -UNW_ENOINFO;
++#endif
++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++ *dyn_info_list_addr = _U_dyn_info_list_addr ();
+ return 0;
+ }
+
+diff --git a/src/ppc32/Ginit.c b/src/ppc32/Ginit.c
+index c5312d9..f8d6886 100644
+--- a/src/ppc32/Ginit.c
++++ b/src/ppc32/Ginit.c
+@@ -91,9 +91,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
+
+ # endif /* UNW_LOCAL_ONLY */
+
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -104,7 +101,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+ void *arg)
+ {
+- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++ if (!_U_dyn_info_list_addr)
++ return -UNW_ENOINFO;
++#endif
++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++ *dyn_info_list_addr = _U_dyn_info_list_addr ();
+ return 0;
+ }
+
+diff --git a/src/ppc64/Ginit.c b/src/ppc64/Ginit.c
+index 4c88cd6..7bfb395 100644
+--- a/src/ppc64/Ginit.c
++++ b/src/ppc64/Ginit.c
+@@ -95,9 +95,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
+
+ # endif /* UNW_LOCAL_ONLY */
+
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -108,7 +105,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+ void *arg)
+ {
+- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++ if (!_U_dyn_info_list_addr)
++ return -UNW_ENOINFO;
++#endif
++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++ *dyn_info_list_addr = _U_dyn_info_list_addr ();
+ return 0;
+ }
+
+diff --git a/src/ptrace/_UPT_get_dyn_info_list_addr.c b/src/ptrace/_UPT_get_dyn_info_list_addr.c
+index cc5ed04..16671d4 100644
+--- a/src/ptrace/_UPT_get_dyn_info_list_addr.c
++++ b/src/ptrace/_UPT_get_dyn_info_list_addr.c
+@@ -71,6 +71,11 @@ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
+
+ #else
+
++/* XXX fix me: there is currently no way to locate the dyn-info list
++ by a remote unwinder. On ia64, this is done via a special
++ unwind-table entry. Perhaps something similar can be done with
++ DWARF2 unwind info. */
++
+ static inline int
+ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
+ int *countp)
+diff --git a/src/s390x/Ginit.c b/src/s390x/Ginit.c
+index f0886ac..db01743 100644
+--- a/src/s390x/Ginit.c
++++ b/src/s390x/Ginit.c
+@@ -50,8 +50,6 @@ static struct unw_addr_space local_addr_space;
+
+ unw_addr_space_t unw_local_addr_space = &local_addr_space;
+
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+ static inline void *
+ uc_addr (ucontext_t *uc, int reg)
+ {
+@@ -75,11 +73,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
+
+ # endif /* UNW_LOCAL_ONLY */
+
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+- by a remote unwinder. On ia64, this is done via a special
+- unwind-table entry. Perhaps something similar can be done with
+- DWARF2 unwind info. */
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -90,7 +83,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+ void *arg)
+ {
+- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++ if (!_U_dyn_info_list_addr)
++ return -UNW_ENOINFO;
++#endif
++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++ *dyn_info_list_addr = _U_dyn_info_list_addr ();
+ return 0;
+ }
+
+diff --git a/src/sh/Ginit.c b/src/sh/Ginit.c
+index 52988a7..9fe96d2 100644
+--- a/src/sh/Ginit.c
++++ b/src/sh/Ginit.c
+@@ -58,13 +58,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
+
+ # endif /* UNW_LOCAL_ONLY */
+
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+- by a remote unwinder. On ia64, this is done via a special
+- unwind-table entry. Perhaps something similar can be done with
+- DWARF2 unwind info. */
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -75,7 +68,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+ void *arg)
+ {
+- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++ if (!_U_dyn_info_list_addr)
++ return -UNW_ENOINFO;
++#endif
++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++ *dyn_info_list_addr = _U_dyn_info_list_addr ();
+ return 0;
+ }
+
+diff --git a/src/tilegx/Ginit.c b/src/tilegx/Ginit.c
+index 7564a55..925e641 100644
+--- a/src/tilegx/Ginit.c
++++ b/src/tilegx/Ginit.c
+@@ -64,13 +64,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
+
+ # endif /* UNW_LOCAL_ONLY */
+
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+- by a remote unwinder. On ia64, this is done via a special
+- unwind-table entry. Perhaps something similar can be done with
+- DWARF2 unwind info. */
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -81,7 +74,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+ void *arg)
+ {
+- *dyn_info_list_addr = (unw_word_t) (intptr_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++ if (!_U_dyn_info_list_addr)
++ return -UNW_ENOINFO;
++#endif
++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++ *dyn_info_list_addr = _U_dyn_info_list_addr ();
+ return 0;
+ }
+
+diff --git a/src/x86/Ginit.c b/src/x86/Ginit.c
+index f6b8dc2..3cec74a 100644
+--- a/src/x86/Ginit.c
++++ b/src/x86/Ginit.c
+@@ -54,13 +54,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
+
+ # endif /* UNW_LOCAL_ONLY */
+
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+- by a remote unwinder. On ia64, this is done via a special
+- unwind-table entry. Perhaps something similar can be done with
+- DWARF2 unwind info. */
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -71,7 +64,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+ void *arg)
+ {
+- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++ if (!_U_dyn_info_list_addr)
++ return -UNW_ENOINFO;
++#endif
++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++ *dyn_info_list_addr = _U_dyn_info_list_addr ();
+ return 0;
+ }
+
+diff --git a/src/x86_64/Ginit.c b/src/x86_64/Ginit.c
+index 6161da6..5c4e426 100644
+--- a/src/x86_64/Ginit.c
++++ b/src/x86_64/Ginit.c
+@@ -49,13 +49,6 @@ static struct unw_addr_space local_addr_space;
+
+ unw_addr_space_t unw_local_addr_space = &local_addr_space;
+
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+- by a remote unwinder. On ia64, this is done via a special
+- unwind-table entry. Perhaps something similar can be done with
+- DWARF2 unwind info. */
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -66,7 +59,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+ void *arg)
+ {
+- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++ if (!_U_dyn_info_list_addr)
++ return -UNW_ENOINFO;
++#endif
++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++ *dyn_info_list_addr = _U_dyn_info_list_addr ();
+ return 0;
+ }
+
+--
+2.28.0
+
diff --git a/meta/recipes-support/libunwind/libunwind/musl-header-conflict.patch b/meta/recipes-support/libunwind/libunwind/musl-header-conflict.patch
index 79f63fd84e..63b78a8a30 100644
--- a/meta/recipes-support/libunwind/libunwind/musl-header-conflict.patch
+++ b/meta/recipes-support/libunwind/libunwind/musl-header-conflict.patch
@@ -1,4 +1,7 @@
-If you:
+From 49b21f0fe5fb93b30b94cc449429fd33de0652a7 Mon Sep 17 00:00:00 2001
+From: Richard Purdie <richard.purdie@linuxfoundation.org>
+Date: Thu, 18 Aug 2016 14:46:32 +0100
+Subject: [PATCH] If you:
TCLIBC=musl bitbake unwind
TCLIBC=musl bitbake gcc-runtime -c cleansstate
@@ -6,12 +9,12 @@ TCLIBC=musl bitbake gcc-runtime
you will see libstdc++ fail to build due to finding libunwind's header file.
-Khem: "When we build any of gcc components they expect to use internal version
-and that works with glibc based gcc since the search headers first look into gcc
-headers, however with musl the gcc headers are searched after the standard
+Khem: "When we build any of gcc components they expect to use internal version
+and that works with glibc based gcc since the search headers first look into gcc
+headers, however with musl the gcc headers are searched after the standard
headers ( which is by design the right thing )."
-This patch hacks around the issue by looking for a define used during gcc-runtime's
+This patch hacks around the issue by looking for a define used during gcc-runtime's
build and skipping to the internal header in that case.
[YOCTO #10129]
@@ -20,11 +23,15 @@ RP 2016/8/18
Upstream-Status: Inappropriate [really need to fix gcc]
-Index: git/include/unwind.h
-===================================================================
---- git.orig/include/unwind.h
-+++ git/include/unwind.h
-@@ -23,6 +23,10 @@ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER L
+---
+ include/unwind.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/include/unwind.h b/include/unwind.h
+index 7cf128d..31c2871 100644
+--- a/include/unwind.h
++++ b/include/unwind.h
+@@ -23,6 +23,10 @@ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
diff --git a/meta/recipes-support/libunwind/libunwind/sigset_t.patch b/meta/recipes-support/libunwind/libunwind/sigset_t.patch
new file mode 100644
index 0000000000..6baaa77db5
--- /dev/null
+++ b/meta/recipes-support/libunwind/libunwind/sigset_t.patch
@@ -0,0 +1,28 @@
+From 5df1555828add4e256cb4bba49fffffc22127c34 Mon Sep 17 00:00:00 2001
+From: Dave Watson <dade.watson@gmail.com>
+Date: Wed, 27 May 2020 08:21:04 -0700
+Subject: [PATCH] aarch64: Fix __sigset build issue on muslC
+
+Described in issue #176. Taken from Alpine Linux project.
+
+Change __sigset_t to sigset_t
+
+Upstream-Status: Backport [https://github.com/libunwind/libunwind/commit/5df1555828]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ include/libunwind-aarch64.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/libunwind-aarch64.h b/include/libunwind-aarch64.h
+index db01a9f69..d1bd8708f 100644
+--- a/include/libunwind-aarch64.h
++++ b/include/libunwind-aarch64.h
+@@ -202,7 +202,7 @@ typedef struct
+ unsigned long uc_flags;
+ struct ucontext *uc_link;
+ stack_t uc_stack;
+- __sigset_t uc_sigmask;
++ sigset_t uc_sigmask;
+ struct unw_sigcontext uc_mcontext;
+ } unw_tdep_context_t;
+
diff --git a/meta/recipes-support/libunwind/libunwind_1.3.1.bb b/meta/recipes-support/libunwind/libunwind_1.4.0.bb
index 037e04c3c0..2193bd8315 100644
--- a/meta/recipes-support/libunwind/libunwind_1.3.1.bb
+++ b/meta/recipes-support/libunwind/libunwind_1.4.0.bb
@@ -7,11 +7,13 @@ SRC_URI = "http://download.savannah.nongnu.org/releases/libunwind/libunwind-${PV
file://0004-Fix-build-on-mips-musl.patch \
file://0005-ppc32-Consider-ucontext-mismatches-between-glibc-and.patch \
file://0006-Fix-for-X32.patch \
+ file://sigset_t.patch \
+ file://0001-Fix-compilation-with-fno-common.patch \
"
SRC_URI_append_libc-musl = " file://musl-header-conflict.patch"
-SRC_URI[md5sum] = "a04f69d66d8e16f8bf3ab72a69112cd6"
-SRC_URI[sha256sum] = "43997a3939b6ccdf2f669b50fdb8a4d3205374728c2923ddc2354c65260214f8"
+SRC_URI[md5sum] = "5114504c74ac3992ac06aa551cd55678"
+SRC_URI[sha256sum] = "df59c931bd4d7ebfd83ee481c943edf015138089b8e50abed8d9c57ba9338435"
EXTRA_OECONF_append_libc-musl = " --disable-documentation --disable-tests --enable-static"
diff --git a/meta/recipes-support/liburcu/liburcu_0.11.1.bb b/meta/recipes-support/liburcu/liburcu_0.12.1.bb
index 6a517e6f29..3a5ecbcc2d 100644
--- a/meta/recipes-support/liburcu/liburcu_0.11.1.bb
+++ b/meta/recipes-support/liburcu/liburcu_0.12.1.bb
@@ -9,8 +9,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=e548d28737289d75a8f1e01ba2fd7825 \
SRC_URI = "http://lttng.org/files/urcu/userspace-rcu-${PV}.tar.bz2"
-SRC_URI[md5sum] = "91c75d5902127f94ab556ce039b369ca"
-SRC_URI[sha256sum] = "92b9971bf3f1c443edd6c09e7bf5ff3b43531e778841f16377a812c8feeb3350"
+SRC_URI[md5sum] = "5e419d7b30d0d98bffe0014c704ae936"
+SRC_URI[sha256sum] = "bbfaead0345642b97e0de90f889dfbab4b2643a6a5e5c6bb59cd0d26fc0bcd0e"
S = "${WORKDIR}/userspace-rcu-${PV}"
inherit autotools multilib_header
diff --git a/meta/recipes-support/libusb/libusb1/no-dll.patch b/meta/recipes-support/libusb/libusb1/no-dll.patch
deleted file mode 100644
index 6e6bb83d1f..0000000000
--- a/meta/recipes-support/libusb/libusb1/no-dll.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-As all invokes all-recursive which uses sub-makes to invoke all-am, the
-resulting makefile wants to build libusb-1.0.la twice. In non-parallel builds
-the second attempt is skipped as the target already exists, but in highly
-parallel builds it's likely that two makes will be building libusb-1.0.la at the
-same time.
-
-Solve this by removing the explicit all target, which as libusb-1.0.dll isn't
-built under Linux is redundant anyway.
-
-Upstream-Status: Pending
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-diff --git a/libusb/Makefile.am b/libusb/Makefile.am
-index 0cab0a0..c880213 100644
---- a/libusb/Makefile.am
-+++ b/libusb/Makefile.am
-@@ -1,2 +0,0 @@
--all: libusb-1.0.la libusb-1.0.dll
--
diff --git a/meta/recipes-support/libusb/libusb1_1.0.22.bb b/meta/recipes-support/libusb/libusb1_1.0.23.bb
index 1d9d772575..2fd658b4ef 100644
--- a/meta/recipes-support/libusb/libusb1_1.0.22.bb
+++ b/meta/recipes-support/libusb/libusb1_1.0.23.bb
@@ -9,12 +9,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
BBCLASSEXTEND = "native nativesdk"
SRC_URI = "${SOURCEFORGE_MIRROR}/libusb/libusb-${PV}.tar.bz2 \
- file://no-dll.patch \
file://run-ptest \
"
-SRC_URI[md5sum] = "466267889daead47674df933cea9cacb"
-SRC_URI[sha256sum] = "75aeb9d59a4fdb800d329a545c2e6799f732362193b465ea198f2aa275518157"
+SRC_URI[md5sum] = "be79ed4a4a440169deec8beaac6aae33"
+SRC_URI[sha256sum] = "4fc17b2ef3502757641bf8fe2c14ad86ec86302a2b785abcb0806fd03aa1201f"
S = "${WORKDIR}/libusb-${PV}"
diff --git a/meta/recipes-support/libyaml/libyaml_0.2.2.bb b/meta/recipes-support/libyaml/libyaml_0.2.5.bb
index 5105ce69db..e39a7b9083 100644
--- a/meta/recipes-support/libyaml/libyaml_0.2.2.bb
+++ b/meta/recipes-support/libyaml/libyaml_0.2.5.bb
@@ -5,11 +5,11 @@ HOMEPAGE = "https://pyyaml.org/wiki/LibYAML"
SECTION = "libs/devel"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a76b4c69bfcf82313bbdc0393b04438a"
+LIC_FILES_CHKSUM = "file://License;md5=7bbd28caa69f81f5cd5f48647236663d"
SRC_URI = "https://pyyaml.org/download/libyaml/yaml-${PV}.tar.gz"
-SRC_URI[md5sum] = "54bf11ccb8bc488b5b3bec931f5b70dc"
-SRC_URI[sha256sum] = "4a9100ab61047fd9bd395bcef3ce5403365cafd55c1e0d0299cde14958e47be9"
+SRC_URI[md5sum] = "bb15429d8fb787e7d3f1c83ae129a999"
+SRC_URI[sha256sum] = "c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4"
S = "${WORKDIR}/yaml-${PV}"
diff --git a/meta/recipes-support/lz4/lz4_1.9.2.bb b/meta/recipes-support/lz4/lz4_1.9.2.bb
index ed4452c82e..6510156ed0 100644
--- a/meta/recipes-support/lz4/lz4_1.9.2.bb
+++ b/meta/recipes-support/lz4/lz4_1.9.2.bb
@@ -21,7 +21,7 @@ S = "${WORKDIR}/git"
# Fixed in r118, which is larger than the current version.
CVE_CHECK_WHITELIST += "CVE-2014-4715"
-EXTRA_OEMAKE = "PREFIX=${prefix} CC='${CC}' DESTDIR=${D} LIBDIR=${libdir} INCLUDEDIR=${includedir}"
+EXTRA_OEMAKE = "PREFIX=${prefix} CC='${CC}' DESTDIR=${D} LIBDIR=${libdir} INCLUDEDIR=${includedir} BUILD_STATIC=no"
do_install() {
oe_runmake install
diff --git a/meta/recipes-support/mpfr/mpfr_4.0.2.bb b/meta/recipes-support/mpfr/mpfr_4.1.0.bb
index 00c2dc2fe9..82b5516f26 100644
--- a/meta/recipes-support/mpfr/mpfr_4.0.2.bb
+++ b/meta/recipes-support/mpfr/mpfr_4.1.0.bb
@@ -11,8 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464 \
DEPENDS = "gmp autoconf-archive"
SRC_URI = "https://www.mpfr.org/mpfr-${PV}/mpfr-${PV}.tar.xz"
-SRC_URI[md5sum] = "320fbc4463d4c8cb1e566929d8adc4f8"
-SRC_URI[sha256sum] = "1d3be708604eae0e42d578ba93b390c2a145f17743a744d8f3f8c2ad5855a38a"
+SRC_URI[sha256sum] = "0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f"
UPSTREAM_CHECK_URI = "http://www.mpfr.org/mpfr-current/"
diff --git a/meta/recipes-support/nettle/nettle-3.5.1/Add-target-to-only-build-tests-not-run-them.patch b/meta/recipes-support/nettle/nettle-3.6/Add-target-to-only-build-tests-not-run-them.patch
index c007060ee6..e3f5c6de7d 100644
--- a/meta/recipes-support/nettle/nettle-3.5.1/Add-target-to-only-build-tests-not-run-them.patch
+++ b/meta/recipes-support/nettle/nettle-3.6/Add-target-to-only-build-tests-not-run-them.patch
@@ -8,12 +8,16 @@ Upstream-Status: Inappropriate [not a complete solution]
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Refactored for 3.4
Signed-off-by: Armin Kuster <akuster@mvista.com>
+---
+ Makefile.in | 3 +++
+ testsuite/Makefile.in | 2 ++
+ 2 files changed, 5 insertions(+)
-Index: nettle-3.4/Makefile.in
-===================================================================
---- nettle-3.4.orig/Makefile.in
-+++ nettle-3.4/Makefile.in
-@@ -55,6 +55,9 @@ clean distclean mostlyclean maintainer-c
+diff --git a/Makefile.in b/Makefile.in
+index e5ccfc7..15c9275 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -52,6 +52,9 @@ clean distclean mostlyclean maintainer-clean tags:
echo "Making $@ in $$d" ; (cd $$d && $(MAKE) $@); done
$(MAKE) $@-here
@@ -23,16 +27,19 @@ Index: nettle-3.4/Makefile.in
check-here:
true
-Index: nettle-3.4/testsuite/Makefile.in
-===================================================================
---- nettle-3.4.orig/testsuite/Makefile.in
-+++ nettle-3.4/testsuite/Makefile.in
-@@ -131,6 +131,8 @@ $(TARGETS) $(EXTRA_TARGETS): testutils.$
+diff --git a/testsuite/Makefile.in b/testsuite/Makefile.in
+index 3f5e5f6..8fd68a3 100644
+--- a/testsuite/Makefile.in
++++ b/testsuite/Makefile.in
+@@ -122,6 +122,8 @@ $(TARGETS) $(EXTRA_TARGETS): testutils.$(OBJEXT) ../nettle-internal.$(OBJEXT) \
# data.
VALGRIND = valgrind --error-exitcode=1 --leak-check=full --show-reachable=yes @IF_ASM@ --partial-loads-ok=yes
+buildtest: $(TS_ALL)
+
- # The PATH update is for windows dlls, DYLD_LIBRARY_PATH is for OSX.
check: $(TS_ALL)
- LD_LIBRARY_PATH=../.lib PATH="../.lib:$$PATH" DYLD_LIBRARY_PATH=../.lib \
+ TEST_SHLIB_DIR="$(TEST_SHLIB_DIR)" \
+ srcdir="$(srcdir)" \
+--
+2.17.1
+
diff --git a/meta/recipes-support/nettle/nettle-3.5.1/check-header-files-of-openssl-only-if-enable_.patch b/meta/recipes-support/nettle/nettle-3.6/check-header-files-of-openssl-only-if-enable_.patch
index d5f266681e..d5f266681e 100644
--- a/meta/recipes-support/nettle/nettle-3.5.1/check-header-files-of-openssl-only-if-enable_.patch
+++ b/meta/recipes-support/nettle/nettle-3.6/check-header-files-of-openssl-only-if-enable_.patch
diff --git a/meta/recipes-support/nettle/nettle-3.5.1/dlopen-test.patch b/meta/recipes-support/nettle/nettle-3.6/dlopen-test.patch
index fea5774206..ab9b91f88b 100644
--- a/meta/recipes-support/nettle/nettle-3.5.1/dlopen-test.patch
+++ b/meta/recipes-support/nettle/nettle-3.6/dlopen-test.patch
@@ -7,15 +7,23 @@ Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ testsuite/dlopen-test.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
---- a/testsuite/dlopen-test.c 2016-10-01 00:28:38.000000000 -0700
-+++ b/testsuite/dlopen-test.c 2017-10-13 11:08:57.227572860 -0700
-@@ -9,7 +9,7 @@
+diff --git a/testsuite/dlopen-test.c b/testsuite/dlopen-test.c
+index 4265bf7..1a25d17 100644
+--- a/testsuite/dlopen-test.c
++++ b/testsuite/dlopen-test.c
+@@ -15,7 +15,7 @@ int
main (int argc UNUSED, char **argv UNUSED)
{
#if HAVE_LIBDL
-- void *handle = dlopen ("../libnettle.so", RTLD_NOW);
+- void *handle = dlopen ("../libnettle." SO_EXT, RTLD_NOW);
+ void *handle = dlopen ("libnettle.so", RTLD_NOW);
int (*get_version)(void);
if (!handle)
{
+--
+2.17.1
+
diff --git a/meta/recipes-support/nettle/nettle-3.5.1/run-ptest b/meta/recipes-support/nettle/nettle-3.6/run-ptest
index b90bed66d2..b90bed66d2 100644
--- a/meta/recipes-support/nettle/nettle-3.5.1/run-ptest
+++ b/meta/recipes-support/nettle/nettle-3.6/run-ptest
diff --git a/meta/recipes-support/nettle/nettle_3.5.1.bb b/meta/recipes-support/nettle/nettle_3.6.bb
index d92db0ef95..90f8625ae5 100644
--- a/meta/recipes-support/nettle/nettle_3.5.1.bb
+++ b/meta/recipes-support/nettle/nettle_3.6.bb
@@ -20,8 +20,8 @@ SRC_URI_append_class-target = "\
file://dlopen-test.patch \
"
-SRC_URI[md5sum] = "0e5707b418c3826768d41130fbe4ee86"
-SRC_URI[sha256sum] = "75cca1998761b02e16f2db56da52992aef622bf55a3b45ec538bc2eedadc9419"
+SRC_URI[md5sum] = "c45ee24ed7361dcda152a035d396fe8a"
+SRC_URI[sha256sum] = "d24c0d0f2abffbc8f4f34dcf114b0f131ec3774895f3555922fe2f40f3d5e3f1"
UPSTREAM_CHECK_REGEX = "nettle-(?P<pver>\d+(\.\d+)+)\.tar"
@@ -30,7 +30,6 @@ inherit autotools ptest multilib_header
EXTRA_AUTORECONF += "--exclude=aclocal"
EXTRA_OECONF = "--disable-openssl"
-CFLAGS_append = " -std=gnu99"
do_compile_ptest() {
oe_runmake buildtest
diff --git a/meta/recipes-support/nspr/nspr/0001-md-Fix-build-with-musl.patch b/meta/recipes-support/nspr/nspr/0001-md-Fix-build-with-musl.patch
deleted file mode 100644
index f3cd670026..0000000000
--- a/meta/recipes-support/nspr/nspr/0001-md-Fix-build-with-musl.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 147f3c2acbd96d44025cec11800ded0282327764 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 18 Sep 2017 17:22:43 -0700
-Subject: [PATCH] md: Fix build with musl
-
-The MIPS specific header <sgidefs.h> is not provided by musl
-linux kernel headers provide <asm/sgidefs.h> which has same definitions
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- pr/include/md/_linux.cfg | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pr/include/md/_linux.cfg b/pr/include/md/_linux.cfg
-index 640b19c..31296a8 100644
---- a/pr/include/md/_linux.cfg
-+++ b/pr/include/md/_linux.cfg
-@@ -499,7 +499,7 @@
- #elif defined(__mips__)
-
- /* For _ABI64 */
--#include <sgidefs.h>
-+#include <asm/sgidefs.h>
-
- #ifdef __MIPSEB__
- #define IS_BIG_ENDIAN 1
---
-2.14.1
-
diff --git a/meta/recipes-support/nspr/nspr/0002-Add-nios2-support.patch b/meta/recipes-support/nspr/nspr/0002-Add-nios2-support.patch
deleted file mode 100644
index 3a04d426a8..0000000000
--- a/meta/recipes-support/nspr/nspr/0002-Add-nios2-support.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-From 95bda64fb4cf1825fea745e918cfe8202843f0ba Mon Sep 17 00:00:00 2001
-From: Marek Vasut <marex@denx.de>
-Date: Sat, 30 Jan 2016 07:18:02 +0100
-Subject: [PATCH] Add nios2 support
-
-Add support for the nios2 CPU.
-
-Signed-off-by: Marek Vasut <marex@denx.de>
-Upstream-Status: Submitted [ https://bugzilla.mozilla.org/show_bug.cgi?id=1244421 ]
----
- nspr/pr/include/md/_linux.cfg | 45 +++++++++++++++++++++++++++++++++++++++++++
- nspr/pr/include/md/_linux.h | 14 ++++++++++++++
- 2 files changed, 59 insertions(+)
-
-Index: nspr/pr/include/md/_linux.cfg
-===================================================================
---- nspr.orig/pr/include/md/_linux.cfg
-+++ nspr/pr/include/md/_linux.cfg
-@@ -975,6 +975,51 @@
- #define PR_BYTES_PER_WORD_LOG2 2
- #define PR_BYTES_PER_DWORD_LOG2 3
-
-+#elif defined(__nios2__)
-+
-+#define IS_LITTLE_ENDIAN 1
-+#undef IS_BIG_ENDIAN
-+
-+#define PR_BYTES_PER_BYTE 1
-+#define PR_BYTES_PER_SHORT 2
-+#define PR_BYTES_PER_INT 4
-+#define PR_BYTES_PER_INT64 8
-+#define PR_BYTES_PER_LONG 4
-+#define PR_BYTES_PER_FLOAT 4
-+#define PR_BYTES_PER_DOUBLE 8
-+#define PR_BYTES_PER_WORD 4
-+#define PR_BYTES_PER_DWORD 8
-+
-+#define PR_BITS_PER_BYTE 8
-+#define PR_BITS_PER_SHORT 16
-+#define PR_BITS_PER_INT 32
-+#define PR_BITS_PER_INT64 64
-+#define PR_BITS_PER_LONG 32
-+#define PR_BITS_PER_FLOAT 32
-+#define PR_BITS_PER_DOUBLE 64
-+#define PR_BITS_PER_WORD 32
-+
-+#define PR_BITS_PER_BYTE_LOG2 3
-+#define PR_BITS_PER_SHORT_LOG2 4
-+#define PR_BITS_PER_INT_LOG2 5
-+#define PR_BITS_PER_INT64_LOG2 6
-+#define PR_BITS_PER_LONG_LOG2 5
-+#define PR_BITS_PER_FLOAT_LOG2 5
-+#define PR_BITS_PER_DOUBLE_LOG2 6
-+#define PR_BITS_PER_WORD_LOG2 5
-+
-+#define PR_ALIGN_OF_SHORT 2
-+#define PR_ALIGN_OF_INT 4
-+#define PR_ALIGN_OF_LONG 4
-+#define PR_ALIGN_OF_INT64 4
-+#define PR_ALIGN_OF_FLOAT 4
-+#define PR_ALIGN_OF_DOUBLE 4
-+#define PR_ALIGN_OF_POINTER 4
-+#define PR_ALIGN_OF_WORD 4
-+
-+#define PR_BYTES_PER_WORD_LOG2 2
-+#define PR_BYTES_PER_DWORD_LOG2 3
-+
- #elif defined(__or1k__)
-
- #undef IS_LITTLE_ENDIAN
-Index: nspr/pr/include/md/_linux.h
-===================================================================
---- nspr.orig/pr/include/md/_linux.h
-+++ nspr/pr/include/md/_linux.h
-@@ -55,6 +55,8 @@
- #define _PR_SI_ARCHITECTURE "avr32"
- #elif defined(__m32r__)
- #define _PR_SI_ARCHITECTURE "m32r"
-+#elif defined(__nios2__)
-+#define _PR_SI_ARCHITECTURE "nios2"
- #elif defined(__or1k__)
- #define _PR_SI_ARCHITECTURE "or1k"
- #elif defined(__riscv) && (__riscv_xlen == 32)
-@@ -129,6 +131,18 @@ extern PRInt32 _PR_x86_64_AtomicSet(PRIn
- #define _MD_ATOMIC_SET _PR_x86_64_AtomicSet
- #endif
-
-+#if defined(__nios2__)
-+#if defined(__GNUC__)
-+/* Use GCC built-in functions */
-+#define _PR_HAVE_ATOMIC_OPS
-+#define _MD_INIT_ATOMIC()
-+#define _MD_ATOMIC_INCREMENT(ptr) __sync_add_and_fetch(ptr, 1)
-+#define _MD_ATOMIC_DECREMENT(ptr) __sync_sub_and_fetch(ptr, 1)
-+#define _MD_ATOMIC_ADD(ptr, i) __sync_add_and_fetch(ptr, i)
-+#define _MD_ATOMIC_SET(ptr, nv) __sync_lock_test_and_set(ptr, nv)
-+#endif
-+#endif
-+
- #if defined(__or1k__)
- #if defined(__GNUC__)
- /* Use GCC built-in functions */
diff --git a/meta/recipes-support/nspr/nspr/Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch b/meta/recipes-support/nspr/nspr/Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch
deleted file mode 100644
index 90fe45f34d..0000000000
--- a/meta/recipes-support/nspr/nspr/Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From 8a592e4ead4ed6befe6044da3dd2dc7523c33905 Mon Sep 17 00:00:00 2001
-From: Mingli Yu <Mingli.Yu@windriver.com>
-Date: Fri, 16 Nov 2018 13:52:49 +0800
-Subject: [PATCH] Makefile.in: remove _BUILD_STRING and _BUILD_TIME
-
-Remove _BUILD_STRING and _BUILD_TIME to avoid
-adding timestamp to _pl_bld.h which can result
-in adding timestamp in library file such as
-libnspr4.so.
- $ readelf --wide --decompress --hex-dump=.rodata libnspr4.so
- [snip]
- 0x00004000 32303138 2d31312d 31352030 353a3439 2018-11-15 05:49
- [snip]
-
-Upstream-Status: Pending
-
-Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
----
- lib/ds/Makefile.in | 8 +-------
- lib/libc/src/Makefile.in | 8 +-------
- lib/prstreams/Makefile.in | 8 +-------
- pr/src/Makefile.in | 8 +-------
- 4 files changed, 4 insertions(+), 28 deletions(-)
-
-diff --git a/lib/ds/Makefile.in b/lib/ds/Makefile.in
-index e737791..b578476 100644
---- a/lib/ds/Makefile.in
-+++ b/lib/ds/Makefile.in
-@@ -114,13 +114,7 @@ GARBAGE += $(TINC)
-
- $(TINC):
- @$(MAKE_OBJDIR)
-- @$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
-- @if test ! -z "$(SH_NOW)"; then \
-- $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
-- else \
-- true; \
-- fi
-- @$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
-+ @$(ECHO) '#define _PRODUCTION "$(PROD)"' > $(TINC)
-
-
- $(OBJDIR)/plvrsion.$(OBJ_SUFFIX): plvrsion.c $(TINC)
-diff --git a/lib/libc/src/Makefile.in b/lib/libc/src/Makefile.in
-index e8a6d9f..978ed28 100644
---- a/lib/libc/src/Makefile.in
-+++ b/lib/libc/src/Makefile.in
-@@ -116,13 +116,7 @@ GARBAGE += $(TINC)
-
- $(TINC):
- @$(MAKE_OBJDIR)
-- @$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
-- @if test ! -z "$(SH_NOW)"; then \
-- $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
-- else \
-- true; \
-- fi
-- @$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
-+ @$(ECHO) '#define _PRODUCTION "$(PROD)"' > $(TINC)
-
-
- $(OBJDIR)/plvrsion.$(OBJ_SUFFIX): plvrsion.c $(TINC)
-diff --git a/lib/prstreams/Makefile.in b/lib/prstreams/Makefile.in
-index aeb2944..f318097 100644
---- a/lib/prstreams/Makefile.in
-+++ b/lib/prstreams/Makefile.in
-@@ -116,13 +116,7 @@ endif
-
- $(TINC):
- @$(MAKE_OBJDIR)
-- @$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
-- @if test ! -z "$(SH_NOW)"; then \
-- $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
-- else \
-- true; \
-- fi
-- @$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
-+ @$(ECHO) '#define _PRODUCTION "$(PROD)"' > $(TINC)
-
-
- $(OBJDIR)/plvrsion.$(OBJ_SUFFIX): plvrsion.c $(TINC)
-diff --git a/pr/src/Makefile.in b/pr/src/Makefile.in
-index 19c5a69..b4ac31c 100644
---- a/pr/src/Makefile.in
-+++ b/pr/src/Makefile.in
-@@ -326,13 +326,7 @@ GARBAGE += $(TINC)
-
- $(TINC):
- @$(MAKE_OBJDIR)
-- @$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
-- @if test ! -z "$(SH_NOW)"; then \
-- $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
-- else \
-- true; \
-- fi
-- @$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
-+ @$(ECHO) '#define _PRODUCTION "$(PROD)"' > $(TINC)
-
-
- $(OBJDIR)/prvrsion.$(OBJ_SUFFIX): prvrsion.c $(TINC)
---
-2.7.4
-
diff --git a/meta/recipes-support/nspr/nspr/fix-build-on-x86_64.patch b/meta/recipes-support/nspr/nspr/fix-build-on-x86_64.patch
deleted file mode 100644
index f12acc8548..0000000000
--- a/meta/recipes-support/nspr/nspr/fix-build-on-x86_64.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-Fix build failure on x86_64
-
-When the target_cpu is x86_64, we should assume that the pkg uses 64bit,
-only if USE_N32 is set, we can assume that the pkg uses 32bit. It used a
-opposite logic before.
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-
-Upstream-Status: Pending
----
- configure.in | 12 ++++++------
- 1 files changed, 6 insertions(+), 6 deletions(-)
-
-Index: nspr/configure.in
-===================================================================
---- nspr.orig/configure.in
-+++ nspr/configure.in
-@@ -1875,28 +1875,24 @@ tools are selected during the Xcode/Deve
- PR_MD_ASFILES=os_Linux_ia64.s
- ;;
- x86_64)
-- if test -n "$USE_64"; then
-- PR_MD_ASFILES=os_Linux_x86_64.s
-- elif test -n "$USE_X32"; then
-+ if test -n "$USE_X32"; then
-+ AC_DEFINE(i386)
- PR_MD_ASFILES=os_Linux_x86_64.s
- CC="$CC -mx32"
- CXX="$CXX -mx32"
- else
-- AC_DEFINE(i386)
-- PR_MD_ASFILES=os_Linux_x86.s
-- CC="$CC -m32"
-- CXX="$CXX -m32"
-+ PR_MD_ASFILES=os_Linux_x86_64.s
- fi
- ;;
- ppc|powerpc)
- PR_MD_ASFILES=os_Linux_ppc.s
- ;;
- powerpc64)
-- if test -n "$USE_64"; then
-+ if test -n "$USE_N32"; then
-+ PR_MD_ASFILES=os_Linux_ppc.s
-+ else
- CC="$CC -m64"
- CXX="$CXX -m64"
-- else
-- PR_MD_ASFILES=os_Linux_ppc.s
- fi
- ;;
- esac
diff --git a/meta/recipes-support/nspr/nspr/nspr.pc.in b/meta/recipes-support/nspr/nspr/nspr.pc.in
deleted file mode 100644
index 1f15d19cfa..0000000000
--- a/meta/recipes-support/nspr/nspr/nspr.pc.in
+++ /dev/null
@@ -1,11 +0,0 @@
-os_libs=-lpthread -ldl
-prefix=OEPREFIX
-exec_prefix=OEEXECPREFIX
-libdir=OELIBDIR
-includedir=OEINCDIR
-
-Name: NSPR
-Description: The Netscape Portable Runtime
-Version: NSPRVERSION
-Libs: -L${libdir} -lplds4 -lplc4 -lnspr4 -lpthread -ldl
-Cflags: -I${includedir}/nspr
diff --git a/meta/recipes-support/nspr/nspr/remove-rpath-from-tests.patch b/meta/recipes-support/nspr/nspr/remove-rpath-from-tests.patch
deleted file mode 100644
index 7ba59ed644..0000000000
--- a/meta/recipes-support/nspr/nspr/remove-rpath-from-tests.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Author: Andrei Gherzan <andrei@gherzan.ro>
-Date: Thu Feb 9 00:03:38 2012 +0200
-
-Avoid QA warnings by removing hardcoded rpath from binaries.
-
-[...]
-WARNING: QA Issue: package nspr contains bad RPATH {builddir}/tmp/work/armv5te-poky-linux-gnueabi/nspr-4.8.9-r1/nspr-4.8.9/mozilla/nsprpub/pr/tests/../../dist/lib
-in file {builddir}/tmp/work/armv5te-poky-linux-gnueabi/nspr-4.8.9-r1/packages-split/nspr/usr/lib/nspr/tests/multiwait
-[...]
-
-Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
-Upstream-Status: Pending
-
-Index: nspr/pr/tests/Makefile.in
-===================================================================
---- nspr.orig/pr/tests/Makefile.in
-+++ nspr/pr/tests/Makefile.in
-@@ -316,7 +316,7 @@ ifeq ($(OS_ARCH), SunOS)
- endif # SunOS
-
- ifeq (,$(filter-out Linux GNU GNU_%,$(OS_ARCH)))
-- LDOPTS += -Xlinker -rpath $(ABSOLUTE_LIB_DIR)
-+ LDOPTS += -Xlinker
- ifeq ($(USE_PTHREADS),1)
- EXTRA_LIBS = -lpthread
- endif
diff --git a/meta/recipes-support/nspr/nspr/remove-srcdir-from-configure-in.patch b/meta/recipes-support/nspr/nspr/remove-srcdir-from-configure-in.patch
deleted file mode 100644
index bde715c5dc..0000000000
--- a/meta/recipes-support/nspr/nspr/remove-srcdir-from-configure-in.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-the $srcdir is not defined at the time of gnu-configurize.
-
-Upstream-Status: Inappropriate [OE-Core specific]
-
-Signed-off-by: Saul Wold <sgw@linux.intel.com>
-
-Index: nspr/configure.in
-===================================================================
---- nspr.orig/configure.in
-+++ nspr/configure.in
-@@ -8,7 +8,7 @@ AC_PREREQ(2.61)
- AC_INIT
- AC_CONFIG_SRCDIR([pr/include/nspr.h])
-
--AC_CONFIG_AUX_DIR(${srcdir}/build/autoconf)
-+AC_CONFIG_AUX_DIR(build/autoconf)
- AC_CANONICAL_TARGET
-
- dnl ========================================================
diff --git a/meta/recipes-support/nspr/nspr_4.25.bb b/meta/recipes-support/nspr/nspr_4.25.bb
deleted file mode 100644
index 1de26e1eed..0000000000
--- a/meta/recipes-support/nspr/nspr_4.25.bb
+++ /dev/null
@@ -1,197 +0,0 @@
-SUMMARY = "Netscape Portable Runtime Library"
-HOMEPAGE = "http://www.mozilla.org/projects/nspr/"
-LICENSE = "GPL-2.0 | MPL-2.0 | LGPL-2.1"
-LIC_FILES_CHKSUM = "file://configure.in;beginline=3;endline=6;md5=90c2fdee38e45d6302abcfe475c8b5c5 \
- file://Makefile.in;beginline=4;endline=38;md5=beda1dbb98a515f557d3e58ef06bca99"
-SECTION = "libs/network"
-
-SRC_URI = "http://ftp.mozilla.org/pub/nspr/releases/v${PV}/src/nspr-${PV}.tar.gz \
- file://remove-rpath-from-tests.patch \
- file://fix-build-on-x86_64.patch \
- file://remove-srcdir-from-configure-in.patch \
- file://0002-Add-nios2-support.patch \
- file://0001-md-Fix-build-with-musl.patch \
- file://Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch \
- file://nspr.pc.in \
-"
-
-CACHED_CONFIGUREVARS_append_libc-musl = " CFLAGS='${CFLAGS} -D_PR_POLL_AVAILABLE \
- -D_PR_HAVE_OFF64_T -D_PR_INET6 -D_PR_HAVE_INET_NTOP \
- -D_PR_HAVE_GETHOSTBYNAME2 -D_PR_HAVE_GETADDRINFO \
- -D_PR_INET6_PROBE -DNO_DLOPEN_NULL'"
-
-UPSTREAM_CHECK_URI = "http://ftp.mozilla.org/pub/nspr/releases/"
-UPSTREAM_CHECK_REGEX = "v(?P<pver>\d+(\.\d+)+)/"
-
-SRC_URI[md5sum] = "4ca4d75a424f30fcdc766296bb103d17"
-SRC_URI[sha256sum] = "0bc309be21f91da4474c56df90415101c7f0c7c7cab2943cd943cd7896985256"
-
-CVE_PRODUCT = "netscape_portable_runtime"
-
-S = "${WORKDIR}/nspr-${PV}/nspr"
-
-RDEPENDS_${PN}-dev += "perl"
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-TESTS = " \
- accept \
- acceptread \
- acceptreademu \
- affinity \
- alarm \
- anonfm \
- atomic \
- attach \
- bigfile \
- cleanup \
- cltsrv \
- concur \
- cvar \
- cvar2 \
- dlltest \
- dtoa \
- errcodes \
- exit \
- fdcach \
- fileio \
- foreign \
- formattm \
- fsync \
- gethost \
- getproto \
- i2l \
- initclk \
- inrval \
- instrumt \
- intrio \
- intrupt \
- io_timeout \
- ioconthr \
- join \
- joinkk \
- joinku \
- joinuk \
- joinuu \
- layer \
- lazyinit \
- libfilename \
- lltest \
- lock \
- lockfile \
- logfile \
- logger \
- many_cv \
- multiwait \
- nameshm1 \
- nblayer \
- nonblock \
- ntioto \
- ntoh \
- op_2long \
- op_excl \
- op_filnf \
- op_filok \
- op_nofil \
- parent \
- parsetm \
- peek \
- perf \
- pipeping \
- pipeping2 \
- pipeself \
- poll_nm \
- poll_to \
- pollable \
- prftest \
- primblok \
- provider \
- prpollml \
- ranfile \
- randseed \
- reinit \
- rwlocktest \
- sel_spd \
- selct_er \
- selct_nm \
- selct_to \
- selintr \
- sema \
- semaerr \
- semaping \
- sendzlf \
- server_test \
- servr_kk \
- servr_uk \
- servr_ku \
- servr_uu \
- short_thread \
- sigpipe \
- socket \
- sockopt \
- sockping \
- sprintf \
- stack \
- stdio \
- str2addr \
- strod \
- switch \
- system \
- testbit \
- testfile \
- threads \
- timemac \
- timetest \
- tpd \
- udpsrv \
- vercheck \
- version \
- writev \
- xnotify \
- zerolen"
-
-inherit autotools multilib_script
-
-MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/nspr-config"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
-
-# Do not install nspr in usr/include, but in usr/include/nspr, the
-# preferred path upstream.
-EXTRA_OECONF += "--includedir=${includedir}/nspr"
-
-do_compile_prepend() {
- oe_runmake CROSS_COMPILE=1 CFLAGS="-DXP_UNIX ${BUILD_CFLAGS}" LDFLAGS="" CC="${BUILD_CC}" -C config export
-}
-
-do_compile_append() {
- oe_runmake -C pr/tests
-}
-
-do_install_append() {
- install -D ${WORKDIR}/nspr.pc.in ${D}${libdir}/pkgconfig/nspr.pc
- sed -i \
- -e 's:NSPRVERSION:${PV}:g' \
- -e 's:OEPREFIX:${prefix}:g' \
- -e 's:OELIBDIR:${libdir}:g' \
- -e 's:OEINCDIR:${includedir}:g' \
- -e 's:OEEXECPREFIX:${exec_prefix}:g' \
- ${D}${libdir}/pkgconfig/nspr.pc
-
- mkdir -p ${D}${libdir}/nspr/tests
- install -m 0755 ${S}/pr/tests/runtests.pl ${D}${libdir}/nspr/tests
- install -m 0755 ${S}/pr/tests/runtests.sh ${D}${libdir}/nspr/tests
- cd ${B}/pr/tests
- install -m 0755 ${TESTS} ${D}${libdir}/nspr/tests
-
- # delete compile-et.pl and perr.properties from ${bindir} because these are
- # only used to generate prerr.c and prerr.h files from prerr.et at compile
- # time
- rm ${D}${bindir}/compile-et.pl ${D}${bindir}/prerr.properties
-}
-
-FILES_${PN} = "${libdir}/lib*.so"
-FILES_${PN}-dev = "${bindir}/* ${libdir}/nspr/tests/* ${libdir}/pkgconfig \
- ${includedir}/* ${datadir}/aclocal/* "
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch b/meta/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch
deleted file mode 100644
index c380c14491..0000000000
--- a/meta/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 5595e9651aca39af945931c73eb524a0f8bd130d Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Wed, 18 Dec 2019 12:29:50 +0100
-Subject: [PATCH] freebl: add a configure option to disable ARM HW crypto
-
-Not all current hardware supports it, particularly anything
-prior to armv8 does not.
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- nss/lib/freebl/Makefile | 3 +++
- 1 file changed, 3 insertions(+)
-
---- a/nss/lib/freebl/Makefile
-+++ b/nss/lib/freebl/Makefile
-@@ -125,6 +125,9 @@ else
- DEFINES += -DNSS_X86
- endif
- endif
-+
-+ifdef NSS_USE_ARM_HW_CRYPTO
-+ DEFINES += -DNSS_USE_ARM_HW_CRYPTO
- ifeq ($(CPU_ARCH),aarch64)
- DEFINES += -DUSE_HW_AES
- EXTRA_SRCS += aes-armv8.c gcm-aarch64.c
-@@ -146,6 +149,7 @@ ifeq ($(CPU_ARCH),arm)
- endif
- endif
- endif
-+endif
-
- ifeq ($(OS_TARGET),OSF1)
- DEFINES += -DMP_ASSEMBLY_MULTIPLY -DMP_NO_MP_WORD
---- a/nss/lib/freebl/gcm.c
-+++ b/nss/lib/freebl/gcm.c
-@@ -17,6 +17,7 @@
-
- #include <limits.h>
-
-+#ifdef NSS_USE_ARM_HW_CRYPTO
- /* old gcc doesn't support some poly64x2_t intrinsic */
- #if defined(__aarch64__) && defined(IS_LITTLE_ENDIAN) && \
- (defined(__clang__) || defined(__GNUC__) && __GNUC__ > 6)
-@@ -25,6 +26,7 @@
- /* We don't test on big endian platform, so disable this on big endian. */
- #define USE_ARM_GCM
- #endif
-+#endif
-
- /* Forward declarations */
- SECStatus gcm_HashInit_hw(gcmHashContext *ghash);
diff --git a/meta/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch b/meta/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch
deleted file mode 100644
index d5403397e7..0000000000
--- a/meta/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 0cf47ee432cc26a706864fcc09b2c3adc342a679 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Wed, 22 Feb 2017 11:36:11 +0200
-Subject: [PATCH] nss: fix support cross compiling
-
-Let some make variables be assigned from outside makefile.
-
-Upstream-Status: Inappropriate [configuration]
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- nss/coreconf/arch.mk | 2 +-
- nss/lib/freebl/Makefile | 6 ++++++
- 2 files changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/nss/coreconf/arch.mk b/nss/coreconf/arch.mk
-index 06c276f..9c1eb51 100644
---- a/nss/coreconf/arch.mk
-+++ b/nss/coreconf/arch.mk
-@@ -30,7 +30,7 @@ OS_TEST := $(shell uname -m)
- ifeq ($(OS_TEST),i86pc)
- OS_RELEASE := $(shell uname -r)_$(OS_TEST)
- else
-- OS_RELEASE := $(shell uname -r)
-+ OS_RELEASE ?= $(shell uname -r)
- endif
-
- #
-diff --git a/nss/lib/freebl/Makefile b/nss/lib/freebl/Makefile
-index 0ce1425..ebeb411 100644
---- a/nss/lib/freebl/Makefile
-+++ b/nss/lib/freebl/Makefile
-@@ -36,6 +36,12 @@ ifdef USE_64
- DEFINES += -DNSS_USE_64
- endif
-
-+ifeq ($(OS_TEST),mips)
-+ifndef USE_64
-+ DEFINES += -DNS_PTR_LE_32
-+endif
-+endif
-+
- ifdef USE_ABI32_FPU
- DEFINES += -DNSS_USE_ABI32_FPU
- endif
---
-2.11.0
-
diff --git a/meta/recipes-support/nss/nss/blank-cert9.db b/meta/recipes-support/nss/nss/blank-cert9.db
deleted file mode 100644
index 7d4bcf2582..0000000000
--- a/meta/recipes-support/nss/nss/blank-cert9.db
+++ /dev/null
Binary files differ
diff --git a/meta/recipes-support/nss/nss/blank-key4.db b/meta/recipes-support/nss/nss/blank-key4.db
deleted file mode 100644
index d47f08d04f..0000000000
--- a/meta/recipes-support/nss/nss/blank-key4.db
+++ /dev/null
Binary files differ
diff --git a/meta/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch b/meta/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch
deleted file mode 100644
index de812d27ba..0000000000
--- a/meta/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-clang 3.9 add this warning to rightly flag undefined
-behavior, we relegate this to be just a warning instead
-of error and keep the behavior as it was. Right fix would
-be to not pass enum to the function with variadic arguments
-as last named argument
-
-Fixes errors like
-ocsp.c:2220:22: error: passing an object that undergoes default argument promotion to 'va_start' has undefined behavior [-Werror,-Wvarargs]
- va_start(ap, responseType0);
- ^
-ocsp.c:2200:43: note: parameter of type 'SECOidTag' is declared here
- SECOidTag responseType0, ...)
-
-see
-https://www.securecoding.cert.org/confluence/display/cplusplus/EXP58-CPP.+Pass+an+object+of+the+correct+type+to+va_start
-for more details
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-
-Index: nss-3.37.1/nss/coreconf/Werror.mk
-===================================================================
---- nss-3.37.1.orig/nss/coreconf/Werror.mk
-+++ nss-3.37.1/nss/coreconf/Werror.mk
-@@ -56,7 +56,7 @@ ifndef WARNING_CFLAGS
- ifdef CC_IS_CLANG
- # -Qunused-arguments : clang objects to arguments that it doesn't understand
- # and fixing this would require rearchitecture
-- WARNING_CFLAGS += -Qunused-arguments
-+ WARNING_CFLAGS += -Qunused-arguments -Wno-error=varargs
- # -Wno-parentheses-equality : because clang warns about macro expansions
- WARNING_CFLAGS += $(call disable_warning,parentheses-equality)
- ifdef BUILD_OPT
diff --git a/meta/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch b/meta/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch
deleted file mode 100644
index 547594d5b6..0000000000
--- a/meta/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-nss: fix incorrect shebang of perl
-
-Replace incorrect shebang of perl with `#!/usr/bin/env perl'.
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-Upstream-Status: Pending
----
- nss/cmd/smimetools/smime | 2 +-
- nss/coreconf/cpdist.pl | 2 +-
- nss/coreconf/import.pl | 2 +-
- nss/coreconf/jniregen.pl | 2 +-
- nss/coreconf/outofdate.pl | 2 +-
- nss/coreconf/release.pl | 2 +-
- nss/coreconf/version.pl | 2 +-
- nss/tests/clean_tbx | 2 +-
- nss/tests/path_uniq | 2 +-
- 9 files changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/nss/cmd/smimetools/smime b/nss/cmd/smimetools/smime
---- a/nss/cmd/smimetools/smime
-+++ b/nss/cmd/smimetools/smime
-@@ -1,4 +1,4 @@
--#!/usr/local/bin/perl
-+#!/usr/bin/env perl
-
- # This Source Code Form is subject to the terms of the Mozilla Public
- # License, v. 2.0. If a copy of the MPL was not distributed with this
-diff --git a/nss/coreconf/cpdist.pl b/nss/coreconf/cpdist.pl
-index 800edfb..652187f 100755
---- a/nss/coreconf/cpdist.pl
-+++ b/nss/coreconf/cpdist.pl
-@@ -1,4 +1,4 @@
--#! /usr/local/bin/perl
-+#!/usr/bin/env perl
- #
- # This Source Code Form is subject to the terms of the Mozilla Public
- # License, v. 2.0. If a copy of the MPL was not distributed with this
-diff --git a/nss/coreconf/import.pl b/nss/coreconf/import.pl
-index dd2d177..428eaa5 100755
---- a/nss/coreconf/import.pl
-+++ b/nss/coreconf/import.pl
-@@ -1,4 +1,4 @@
--#! /usr/local/bin/perl
-+#!/usr/bin/env perl
- #
- # This Source Code Form is subject to the terms of the Mozilla Public
- # License, v. 2.0. If a copy of the MPL was not distributed with this
-diff --git a/nss/coreconf/jniregen.pl b/nss/coreconf/jniregen.pl
-index 2039180..5f4f69c 100755
---- a/nss/coreconf/jniregen.pl
-+++ b/nss/coreconf/jniregen.pl
-@@ -1,4 +1,4 @@
--#!/usr/local/bin/perl
-+#!/usr/bin/env perl
- #
- # This Source Code Form is subject to the terms of the Mozilla Public
- # License, v. 2.0. If a copy of the MPL was not distributed with this
-diff --git a/nss/coreconf/outofdate.pl b/nss/coreconf/outofdate.pl
-index 33d80bb..01fc097 100755
---- a/nss/coreconf/outofdate.pl
-+++ b/nss/coreconf/outofdate.pl
-@@ -1,4 +1,4 @@
--#!/usr/local/bin/perl
-+#!/usr/bin/env perl
- #
- # This Source Code Form is subject to the terms of the Mozilla Public
- # License, v. 2.0. If a copy of the MPL was not distributed with this
-diff --git a/nss/coreconf/release.pl b/nss/coreconf/release.pl
-index 7cde19d..b5df2f6 100755
---- a/nss/coreconf/release.pl
-+++ b/nss/coreconf/release.pl
-@@ -1,4 +1,4 @@
--#! /usr/local/bin/perl
-+#!/usr/bin/env perl
- #
- # This Source Code Form is subject to the terms of the Mozilla Public
- # License, v. 2.0. If a copy of the MPL was not distributed with this
-diff --git a/nss/coreconf/version.pl b/nss/coreconf/version.pl
-index d2a4942..79359fe 100644
---- a/nss/coreconf/version.pl
-+++ b/nss/coreconf/version.pl
-@@ -1,4 +1,4 @@
--#!/usr/sbin/perl
-+#!/usr/bin/env perl
- #
- # This Source Code Form is subject to the terms of the Mozilla Public
- # License, v. 2.0. If a copy of the MPL was not distributed with this
-diff --git a/nss/tests/clean_tbx b/nss/tests/clean_tbx
-index 4de9555..a7def9f 100755
---- a/nss/tests/clean_tbx
-+++ b/nss/tests/clean_tbx
-@@ -1,4 +1,4 @@
--#! /bin/perl
-+#!/usr/bin/env perl
-
- #######################################################################
- #
-diff --git a/nss/tests/path_uniq b/nss/tests/path_uniq
-index f29f60a..08fbffa 100755
---- a/nss/tests/path_uniq
-+++ b/nss/tests/path_uniq
-@@ -1,4 +1,4 @@
--#! /bin/perl
-+#!/usr/bin/env perl
-
- ########################################################################
- #
---
-1.8.1.2
-
diff --git a/meta/recipes-support/nss/nss/nss-fix-nsinstall-build.patch b/meta/recipes-support/nss/nss/nss-fix-nsinstall-build.patch
deleted file mode 100644
index 43c09d13ea..0000000000
--- a/meta/recipes-support/nss/nss/nss-fix-nsinstall-build.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Fix nss multilib build on openSUSE 11.x 32bit
-
-While building lib64-nss on openSUSE 11.x 32bit, the nsinstall will
-fail with error:
-
-* nsinstall.c:1:0: sorry, unimplemented: 64-bit mode not compiled
-
-It caused by the '-m64' option which passed to host gcc.
-
-The nsinstall was built first while nss starting to build, it only runs
-on host to install built files, it doesn't need any cross-compling or
-multilib build options. Just clean the ARCHFLAG and LDFLAGS to fix this
-error.
-
-Upstream-Status: Pending
-
-Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
-===================================================
-Index: nss-3.24/nss/coreconf/nsinstall/Makefile
-===================================================================
---- nss-3.24.orig/nss/coreconf/nsinstall/Makefile
-+++ nss-3.24/nss/coreconf/nsinstall/Makefile
-@@ -18,6 +18,13 @@ INTERNAL_TOOLS = 1
-
- include $(DEPTH)/coreconf/config.mk
-
-+# nsinstall is unfit for cross-compiling/multilib-build since it was
-+# always run on local host to install built files. This change intends
-+# to clean the '-m64' from ARCHFLAG and LDFLAGS.
-+ARCHFLAG =
-+LDFLAGS =
-+# CFLAGS =
-+
- ifeq (,$(filter-out OS2 WIN%,$(OS_TARGET)))
- PROGRAM =
- else
diff --git a/meta/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch b/meta/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch
deleted file mode 100644
index 7661dc93a0..0000000000
--- a/meta/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-nss:no rpath for cross compiling
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-Upstream-Status: Inappropriate [configuration]
----
- nss/cmd/platlibs.mk | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/nss/cmd/platlibs.mk b/nss/cmd/platlibs.mk
---- a/nss/cmd/platlibs.mk
-+++ b/nss/cmd/platlibs.mk
-@@ -18,9 +18,9 @@ endif
-
- ifeq ($(OS_ARCH), Linux)
- ifeq ($(USE_64), 1)
--EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib64:/opt/sun/private/lib64:$$ORIGIN/../lib'
-+#EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib64:/opt/sun/private/lib64:$$ORIGIN/../lib'
- else
--EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib:/opt/sun/private/lib'
-+#EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib:/opt/sun/private/lib'
- endif
- endif
-
---
-1.8.1.2
-
diff --git a/meta/recipes-support/nss/nss/nss.pc.in b/meta/recipes-support/nss/nss/nss.pc.in
deleted file mode 100644
index 402b4ecb33..0000000000
--- a/meta/recipes-support/nss/nss/nss.pc.in
+++ /dev/null
@@ -1,11 +0,0 @@
-prefix=OEPREFIX
-exec_prefix=OEEXECPREFIX
-libdir=OELIBDIR
-includedir=OEINCDIR
-
-Name: NSS
-Description: Network Security Services
-Version: %NSS_VERSION%
-Requires: nspr >= %NSPR_VERSION%
-Libs: -L${libdir} -lssl3 -lsmime3 -lnss3 -lsoftokn3 -lnssutil3
-Cflags: -IOEINCDIR
diff --git a/meta/recipes-support/nss/nss/pqg.c-ULL_addend.patch b/meta/recipes-support/nss/nss/pqg.c-ULL_addend.patch
deleted file mode 100644
index 3a817faaa6..0000000000
--- a/meta/recipes-support/nss/nss/pqg.c-ULL_addend.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-nss does not build on mips with clang because wrong types are used?
-
-pqg.c:339:16: error: comparison of constant 18446744073709551615 with expression of type 'unsigned long' is always true [-Werror,-Wtautological-constant-out-of-range-compare]
- if (addend < MP_DIGIT_MAX) {
- ~~~~~~ ^ ~~~~~~~~~~~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-Index: nss-3.37.1/nss/lib/freebl/pqg.c
-===================================================================
---- nss-3.37.1.orig/nss/lib/freebl/pqg.c
-+++ nss-3.37.1/nss/lib/freebl/pqg.c
-@@ -326,8 +326,8 @@ generate_h_candidate(SECItem *hit, mp_in
-
- static SECStatus
- addToSeed(const SECItem *seed,
-- unsigned long addend,
-- int seedlen, /* g in 186-1 */
-+ unsigned long long addend,
-+ int seedlen, /* g in 186-1 */
- SECItem *seedout)
- {
- mp_int s, sum, modulus, tmp;
diff --git a/meta/recipes-support/nss/nss/signlibs.sh b/meta/recipes-support/nss/nss/signlibs.sh
deleted file mode 100644
index a74e499f8c..0000000000
--- a/meta/recipes-support/nss/nss/signlibs.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-
-# signlibs.sh
-#
-# (c)2010 Wind River Systems, Inc.
-#
-# regenerates the .chk files for the NSS libraries that require it
-# since the ones that are built have incorrect checksums that were
-# calculated on the host where they really need to be done on the
-# target
-
-CHK_FILES=`ls /lib*/*.chk /usr/lib*/*.chk 2>/dev/null`
-SIGN_BINARY=`which shlibsign`
-for I in $CHK_FILES
-do
- DN=`dirname $I`
- BN=`basename $I .chk`
- FN=$DN/$BN.so
- $SIGN_BINARY -i $FN
-done
diff --git a/meta/recipes-support/nss/nss/system-pkcs11.txt b/meta/recipes-support/nss/nss/system-pkcs11.txt
deleted file mode 100644
index 1a264e9cc4..0000000000
--- a/meta/recipes-support/nss/nss/system-pkcs11.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-library=
-name=NSS Internal PKCS #11 Module
-parameters=configdir='sql:/etc/pki/nssdb' certPrefix='' keyPrefix='' secmod='secmod.db' flags= updatedir='' updateCertPrefix='' updateKeyPrefix='' updateid='' updateTokenDescription=''
-NSS=Flags=internal,critical trustOrder=75 cipherOrder=100 slotParams=(1={slotFlags=[ECC,RSA,DSA,DH,RC2,RC4,DES,RANDOM,SHA1,MD5,MD2,SSL,TLS,AES,Camellia,SEED,SHA256,SHA512] askpw=any timeout=30})
-
diff --git a/meta/recipes-support/nss/nss_3.50.bb b/meta/recipes-support/nss/nss_3.50.bb
deleted file mode 100644
index e9855d7a7e..0000000000
--- a/meta/recipes-support/nss/nss_3.50.bb
+++ /dev/null
@@ -1,273 +0,0 @@
-SUMMARY = "Mozilla's SSL and TLS implementation"
-DESCRIPTION = "Network Security Services (NSS) is a set of libraries \
-designed to support cross-platform development of \
-security-enabled client and server applications. \
-Applications built with NSS can support SSL v2 and v3, \
-TLS, PKCS 5, PKCS 7, PKCS 11, PKCS 12, S/MIME, X.509 \
-v3 certificates, and other security standards."
-HOMEPAGE = "http://www.mozilla.org/projects/security/pki/nss/"
-SECTION = "libs"
-
-DEPENDS = "sqlite3 nspr zlib nss-native"
-DEPENDS_class-native = "sqlite3-native nspr-native zlib-native"
-
-LICENSE = "MPL-2.0 | (MPL-2.0 & GPL-2.0+) | (MPL-2.0 & LGPL-2.1+)"
-
-LIC_FILES_CHKSUM = "file://nss/COPYING;md5=3b1e88e1b9c0b5a4b2881d46cce06a18 \
- file://nss/lib/freebl/mpi/doc/LICENSE;md5=491f158d09d948466afce85d6f1fe18f \
- file://nss/lib/freebl/mpi/doc/LICENSE-MPL;md5=5d425c8f3157dbf212db2ec53d9e5132"
-
-VERSION_DIR = "${@d.getVar('BP').upper().replace('-', '_').replace('.', '_') + '_RTM'}"
-
-SRC_URI = "http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/${VERSION_DIR}/src/${BP}.tar.gz \
- file://nss.pc.in \
- file://signlibs.sh \
- file://0001-nss-fix-support-cross-compiling.patch \
- file://nss-no-rpath-for-cross-compiling.patch \
- file://nss-fix-incorrect-shebang-of-perl.patch \
- file://disable-Wvarargs-with-clang.patch \
- file://pqg.c-ULL_addend.patch \
- file://blank-cert9.db \
- file://blank-key4.db \
- file://system-pkcs11.txt \
- file://nss-fix-nsinstall-build.patch \
- file://0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch \
- "
-
-SRC_URI[md5sum] = "e0366615e12b147cebc136c915baea37"
-SRC_URI[sha256sum] = "185df319775243f5f5daa9d49b7f9cc5f2b389435be3247c3376579bee063ba7"
-
-UPSTREAM_CHECK_URI = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_Releases"
-UPSTREAM_CHECK_REGEX = "NSS_(?P<pver>.+)_release_notes"
-
-inherit siteinfo
-
-TD = "${S}/tentative-dist"
-TDS = "${S}/tentative-dist-staging"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-do_configure_prepend_libc-musl () {
- sed -i -e '/-DHAVE_SYS_CDEFS_H/d' ${S}/nss/lib/dbm/config/config.mk
-}
-
-do_compile_prepend_class-native() {
- export NSPR_INCLUDE_DIR=${STAGING_INCDIR_NATIVE}/nspr
- export NSPR_LIB_DIR=${STAGING_LIBDIR_NATIVE}
- export NSS_ENABLE_WERROR=0
-}
-
-do_compile_prepend_class-nativesdk() {
- export LDFLAGS=""
-}
-
-do_compile_prepend_class-native() {
- # Need to set RPATH so that chrpath will do its job correctly
- RPATH="-Wl,-rpath-link,${STAGING_LIBDIR_NATIVE} -Wl,-rpath-link,${STAGING_BASE_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_BASE_LIBDIR_NATIVE}"
-}
-
-do_compile() {
- export NSPR_INCLUDE_DIR=${STAGING_INCDIR}/nspr
-
- export CROSS_COMPILE=1
- export NATIVE_CC="${BUILD_CC}"
- # Additional defines needed on Centos 7
- export NATIVE_FLAGS="${BUILD_CFLAGS} -DLINUX -Dlinux"
- export BUILD_OPT=1
-
- export FREEBL_NO_DEPEND=1
- export FREEBL_LOWHASH=1
-
- export LIBDIR=${libdir}
- export MOZILLA_CLIENT=1
- export NS_USE_GCC=1
- export NSS_USE_SYSTEM_SQLITE=1
- export NSS_ENABLE_ECC=1
-
- ${@bb.utils.contains("TUNE_FEATURES", "crypto", "export NSS_USE_ARM_HW_CRYPTO=1", "", d)}
-
- export OS_RELEASE=3.4
- export OS_TARGET=Linux
- export OS_ARCH=Linux
-
- if [ "${TARGET_ARCH}" = "powerpc" ]; then
- OS_TEST=ppc
- elif [ "${TARGET_ARCH}" = "powerpc64" ]; then
- OS_TEST=ppc64
- elif [ "${TARGET_ARCH}" = "mips" -o "${TARGET_ARCH}" = "mipsel" -o "${TARGET_ARCH}" = "mips64" -o "${TARGET_ARCH}" = "mips64el" ]; then
- OS_TEST=mips
- elif [ "${TARGET_ARCH}" = "aarch64_be" ]; then
- OS_TEST="aarch64"
- else
- OS_TEST="${TARGET_ARCH}"
- fi
-
- if [ "${SITEINFO_BITS}" = "64" ]; then
- export USE_64=1
- elif [ "${TARGET_ARCH}" = "x86_64" -a "${SITEINFO_BITS}" = "32" ]; then
- export USE_X32=1
- fi
-
- export NSS_DISABLE_GTESTS=1
-
- # We can modify CC in the environment, but if we set it via an
- # argument to make, nsinstall, a host program, will also build with it!
- #
- # nss pretty much does its own thing with CFLAGS, so we put them into CC.
- # Optimization will get clobbered, but most of the stuff will survive.
- # The motivation for this is to point to the correct place for debug
- # source files and CFLAGS does that. Nothing uses CCC.
- #
- export CC="${CC} ${CFLAGS}"
- make -C ./nss CCC="${CXX} -g" \
- OS_TEST=${OS_TEST} \
- RPATH="${RPATH}"
-}
-
-do_compile[vardepsexclude] += "SITEINFO_BITS"
-
-do_install_prepend_class-nativesdk() {
- export LDFLAGS=""
-}
-
-do_install() {
- export CROSS_COMPILE=1
- export NATIVE_CC="${BUILD_CC}"
- export BUILD_OPT=1
-
- export FREEBL_NO_DEPEND=1
-
- export LIBDIR=${libdir}
- export MOZILLA_CLIENT=1
- export NS_USE_GCC=1
- export NSS_USE_SYSTEM_SQLITE=1
- export NSS_ENABLE_ECC=1
-
- export OS_RELEASE=3.4
- export OS_TARGET=Linux
- export OS_ARCH=Linux
-
- if [ "${TARGET_ARCH}" = "powerpc" ]; then
- OS_TEST=ppc
- elif [ "${TARGET_ARCH}" = "powerpc64" ]; then
- OS_TEST=ppc64
- elif [ "${TARGET_ARCH}" = "mips" -o "${TARGET_ARCH}" = "mipsel" -o "${TARGET_ARCH}" = "mips64" -o "${TARGET_ARCH}" = "mips64el" ]; then
- OS_TEST=mips
- elif [ "${TARGET_ARCH}" = "aarch64_be" ]; then
- CPU_ARCH=aarch64
- OS_TEST="aarch64"
- else
- OS_TEST="${TARGET_ARCH}"
- fi
- if [ "${SITEINFO_BITS}" = "64" ]; then
- export USE_64=1
- elif [ "${TARGET_ARCH}" = "x86_64" -a "${SITEINFO_BITS}" = "32" ]; then
- export USE_X32=1
- fi
-
- export NSS_DISABLE_GTESTS=1
-
- make -C ./nss \
- CCC="${CXX}" \
- OS_TEST=${OS_TEST} \
- SOURCE_LIB_DIR="${TD}/${libdir}" \
- SOURCE_BIN_DIR="${TD}/${bindir}" \
- install
-
- install -d ${D}/${libdir}/
- for file in ${S}/dist/*.OBJ/lib/*.so; do
- echo "Installing `basename $file`..."
- cp $file ${D}/${libdir}/
- done
-
- for shared_lib in ${TD}/${libdir}/*.so.*; do
- if [ -f $shared_lib ]; then
- cp $shared_lib ${D}/${libdir}
- ln -sf $(basename $shared_lib) ${D}/${libdir}/$(basename $shared_lib .1oe)
- fi
- done
- for shared_lib in ${TD}/${libdir}/*.so; do
- if [ -f $shared_lib -a ! -e ${D}/${libdir}/$shared_lib ]; then
- cp $shared_lib ${D}/${libdir}
- fi
- done
-
- install -d ${D}/${includedir}/nss3
- install -m 644 -t ${D}/${includedir}/nss3 dist/public/nss/*
-
- install -d ${D}/${bindir}
- for binary in ${TD}/${bindir}/*; do
- install -m 755 -t ${D}/${bindir} $binary
- done
-}
-
-do_install[vardepsexclude] += "SITEINFO_BITS"
-
-do_install_append() {
- # Create empty .chk files for the NSS libraries at build time. They could
- # be regenerated at target's boot time.
- for file in libsoftokn3.chk libfreebl3.chk libnssdbm3.chk; do
- touch ${D}/${libdir}/$file
- chmod 755 ${D}/${libdir}/$file
- done
- install -D -m 755 ${WORKDIR}/signlibs.sh ${D}/${bindir}/signlibs.sh
-
- install -d ${D}${libdir}/pkgconfig/
- sed 's/%NSS_VERSION%/${PV}/' ${WORKDIR}/nss.pc.in | sed 's/%NSPR_VERSION%/4.9.2/' > ${D}${libdir}/pkgconfig/nss.pc
- sed -i s:OEPREFIX:${prefix}:g ${D}${libdir}/pkgconfig/nss.pc
- sed -i s:OEEXECPREFIX:${exec_prefix}:g ${D}${libdir}/pkgconfig/nss.pc
- sed -i s:OELIBDIR:${libdir}:g ${D}${libdir}/pkgconfig/nss.pc
- sed -i s:OEINCDIR:${includedir}/nss3:g ${D}${libdir}/pkgconfig/nss.pc
-}
-
-do_install_append_class-target() {
- # It used to call certutil to create a blank certificate with empty password at
- # build time, but the checksum of key4.db changes every time when certutil is called.
- # It causes non-determinism issue, so provide databases with a blank certificate
- # which are originally from output of nss in qemux86-64 build. You can get these
- # databases by:
- # certutil -N -d sql:/database/path/ --empty-password
- install -d ${D}${sysconfdir}/pki/nssdb/
- install -m 0644 ${WORKDIR}/blank-cert9.db ${D}${sysconfdir}/pki/nssdb/cert9.db
- install -m 0644 ${WORKDIR}/blank-key4.db ${D}${sysconfdir}/pki/nssdb/key4.db
- install -m 0644 ${WORKDIR}/system-pkcs11.txt ${D}${sysconfdir}/pki/nssdb/pkcs11.txt
-}
-
-PACKAGE_WRITE_DEPS += "nss-native"
-pkg_postinst_${PN} () {
- if [ -n "$D" ]; then
- for I in $D${libdir}/lib*.chk; do
- DN=`dirname $I`
- BN=`basename $I .chk`
- FN=$DN/$BN.so
- shlibsign -i $FN
- if [ $? -ne 0 ]; then
- exit 1
- fi
- done
- else
- signlibs.sh
- fi
-}
-
-PACKAGES =+ "${PN}-smime"
-FILES_${PN}-smime = "\
- ${bindir}/smime \
-"
-
-FILES_${PN} = "\
- ${sysconfdir} \
- ${bindir} \
- ${libdir}/lib*.chk \
- ${libdir}/lib*.so \
- "
-
-FILES_${PN}-dev = "\
- ${libdir}/nss \
- ${libdir}/pkgconfig/* \
- ${includedir}/* \
- "
-
-RDEPENDS_${PN}-smime = "perl"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/p11-kit/p11-kit_0.23.20.bb b/meta/recipes-support/p11-kit/p11-kit_0.23.21.bb
index 54b8cc6a70..b1fd2334b2 100644
--- a/meta/recipes-support/p11-kit/p11-kit_0.23.20.bb
+++ b/meta/recipes-support/p11-kit/p11-kit_0.23.21.bb
@@ -9,7 +9,7 @@ DEPENDS = "libtasn1 libtasn1-native libffi"
DEPENDS_append = "${@' glib-2.0' if d.getVar('GTKDOC_ENABLED') == 'True' else ''}"
SRC_URI = "git://github.com/p11-glue/p11-kit"
-SRCREV = "762cdaa2cd5c5ec09cc844f9a6bdc551c7f6c8ed"
+SRCREV = "fd8b56f3ee971f94dc6fc95411fc01e1c12153ab"
S = "${WORKDIR}/git"
PACKAGECONFIG ??= ""
@@ -25,3 +25,5 @@ FILES_${PN} += " \
# PN contains p11-kit-proxy.so, a symlink to a loadable module
INSANE_SKIP_${PN} = "dev-so"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/meta/recipes-support/pinentry/pinentry_1.1.0.bb b/meta/recipes-support/pinentry/pinentry_1.1.0.bb
index 8c500dcadc..d9ca0732f7 100644
--- a/meta/recipes-support/pinentry/pinentry_1.1.0.bb
+++ b/meta/recipes-support/pinentry/pinentry_1.1.0.bb
@@ -28,7 +28,6 @@ PACKAGECONFIG[libcap] = "--with-libcap, --without-libcap, libcap"
PACKAGECONFIG[qt] = "--enable-pinentry-qt, --disable-pinentry-qt, qtbase-native qtbase"
PACKAGECONFIG[gtk2] = "--enable-pinentry-gtk2, --disable-pinentry-gtk2, gtk+ glib-2.0"
-#To use libsecret, add meta-gnome
PACKAGECONFIG[secret] = "--enable-libsecret, --disable-libsecret, libsecret"
EXTRA_OECONF = " \
diff --git a/meta/recipes-support/popt/popt/disable_tests.patch b/meta/recipes-support/popt/popt/disable_tests.patch
deleted file mode 100644
index 016cf66a27..0000000000
--- a/meta/recipes-support/popt/popt/disable_tests.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Use of $(top_srcdir) in TESTS is an error which causes
-automake-1.13 to abort. Just remove tests.
-
-Upstream-Status: Inappropriate [disable feature]
-
-Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
-diff -Nurd popt-1.16/Makefile.am popt-1.16/Makefile.am
---- popt-1.16/Makefile.am 2010-05-04 23:55:54.000000000 +0300
-+++ popt-1.16/Makefile.am 2013-01-02 13:34:29.540361391 +0200
-@@ -34,11 +34,6 @@
-
- noinst_SCRIPTS = testit.sh
-
--TESTS_ENVIRONMENT = \
--test1="$(top_builddir)/test1"
--
--TESTS = $(top_srcdir)/testit.sh
--
- include_HEADERS = popt.h
-
- usrlibdir = $(libdir)
diff --git a/meta/recipes-support/popt/popt/pkgconfig_fix.patch b/meta/recipes-support/popt/popt/pkgconfig_fix.patch
deleted file mode 100644
index 0bddbf8c94..0000000000
--- a/meta/recipes-support/popt/popt/pkgconfig_fix.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Upstream-Status: Pending
-
-Install the pkgconfig file into libdir.
-
---- popt-1.16.orig/Makefile.am 2012-04-26 13:42:54.021139813 +0800
-+++ popt-1.16/Makefile.am 2012-04-26 13:36:03.552096912 +0800
-@@ -47,7 +47,7 @@
- libpopt_la_SOURCES = popt.c poptparse.c poptconfig.c popthelp.c poptint.c
- libpopt_la_LDFLAGS = -no-undefined @LTLIBINTL@ @LTLIBICONV@
-
--pkgconfigdir = $(prefix)/lib/pkgconfig
-+pkgconfigdir = $(libdir)/pkgconfig
- pkgconfig_DATA = popt.pc
-
- if HAVE_LD_VERSION_SCRIPT
diff --git a/meta/recipes-support/popt/popt/popt_fix_for_automake-1.12.patch b/meta/recipes-support/popt/popt/popt_fix_for_automake-1.12.patch
deleted file mode 100644
index 7d74aadffe..0000000000
--- a/meta/recipes-support/popt/popt/popt_fix_for_automake-1.12.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Upstream-Status: pending
-
-This patch avoids this error with automake 1.12:
-
-| configure.ac:49: error: automatic de-ANSI-fication support has been removed
-
-Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
-2012/05/02
-
-Index: popt-1.16/configure.ac
-===================================================================
---- popt-1.16.orig/configure.ac
-+++ popt-1.16/configure.ac
-@@ -46,7 +46,6 @@ AC_GCC_TRADITIONAL
- AC_SYS_LARGEFILE
-
- AC_ISC_POSIX
--AM_C_PROTOTYPES
-
- AC_CHECK_HEADERS(float.h fnmatch.h glob.h langinfo.h libintl.h mcheck.h unistd.h)
-
diff --git a/meta/recipes-support/popt/popt_1.16.bb b/meta/recipes-support/popt/popt_1.16.bb
deleted file mode 100644
index 27e49c2ca2..0000000000
--- a/meta/recipes-support/popt/popt_1.16.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Library for parsing command line options"
-HOMEPAGE = "http://rpm5.org/"
-SECTION = "libs"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=cb0613c30af2a8249b8dcc67d3edb06d"
-PR = "r3"
-
-DEPENDS = "virtual/libiconv"
-
-SRC_URI = "http://anduin.linuxfromscratch.org/BLFS/popt/popt-${PV}.tar.gz \
- file://pkgconfig_fix.patch \
- file://popt_fix_for_automake-1.12.patch \
- file://disable_tests.patch \
- "
-
-SRC_URI[md5sum] = "3743beefa3dd6247a73f8f7a32c14c33"
-SRC_URI[sha256sum] = "e728ed296fe9f069a0e005003c3d6b2dde3d9cad453422a10d6558616d304cc8"
-
-inherit autotools gettext
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/popt/popt_1.18.bb b/meta/recipes-support/popt/popt_1.18.bb
new file mode 100644
index 0000000000..022ece5f47
--- /dev/null
+++ b/meta/recipes-support/popt/popt_1.18.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Library for parsing command line options"
+HOMEPAGE = "https://www.rpm.org/"
+SECTION = "libs"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=cb0613c30af2a8249b8dcc67d3edb06d"
+
+DEPENDS = "virtual/libiconv"
+
+SRC_URI = "http://ftp.rpm.org/popt/releases/popt-1.x/${BP}.tar.gz"
+SRC_URI[sha256sum] = "5159bc03a20b28ce363aa96765f37df99ea4d8850b1ece17d1e6ad5c24fdc5d1"
+
+inherit autotools gettext
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/ptest-runner/ptest-runner_2.3.2.bb b/meta/recipes-support/ptest-runner/ptest-runner_2.4.0.bb
index 187f22df04..10b4c5b6a4 100644
--- a/meta/recipes-support/ptest-runner/ptest-runner_2.3.2.bb
+++ b/meta/recipes-support/ptest-runner/ptest-runner_2.4.0.bb
@@ -7,11 +7,12 @@ HOMEPAGE = "http://git.yoctoproject.org/cgit/cgit.cgi/ptest-runner2/about/"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe"
-SRCREV = "7015e9199ce748c0717addeebe7a8c47448bab03"
-PV = "2.3.2+git${SRCPV}"
+SRCREV = "834670317bd3f6e427e1ac461c07ada6b8936dfd"
+PV .= "+git${SRCPV}"
SRC_URI = "git://git.yoctoproject.org/ptest-runner2 \
"
+UPSTREAM_VERSION_UNKNOWN = "1"
S = "${WORKDIR}/git"
diff --git a/meta/recipes-support/re2c/re2c_1.0.1.bb b/meta/recipes-support/re2c/re2c_1.0.1.bb
deleted file mode 100644
index 4ed8d257ac..0000000000
--- a/meta/recipes-support/re2c/re2c_1.0.1.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Tool for writing very fast and very flexible scanners"
-HOMEPAGE = "http://re2c.sourceforge.net/"
-AUTHOR = "Marcus Börger <helly@users.sourceforge.net>"
-SECTION = "devel"
-LICENSE = "PD"
-LIC_FILES_CHKSUM = "file://README;beginline=146;md5=881056c9add17f8019ccd8c382ba963a"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz"
-SRC_URI[md5sum] = "e2c6cf52fc6a21595f21bc82db5324f8"
-SRC_URI[sha256sum] = "605058d18a00e01bfc32aebf83af35ed5b13180b4e9f279c90843afab2c66c7c"
-
-BBCLASSEXTEND = "native"
-
-inherit autotools
diff --git a/meta/recipes-support/re2c/re2c_2.0.3.bb b/meta/recipes-support/re2c/re2c_2.0.3.bb
new file mode 100644
index 0000000000..a0b521ce56
--- /dev/null
+++ b/meta/recipes-support/re2c/re2c_2.0.3.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Tool for writing very fast and very flexible scanners"
+HOMEPAGE = "http://re2c.sourceforge.net/"
+AUTHOR = "Marcus Börger <helly@users.sourceforge.net>"
+SECTION = "devel"
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=64eca4d8a3b67f9dc7656094731a2c8d"
+
+SRC_URI = "https://github.com/skvadrik/re2c/releases/download/${PV}/${BPN}-${PV}.tar.xz"
+SRC_URI[sha256sum] = "b2bc1eb8aaaa21ff2fcd26507b7e6e72c5e3d887e58aa515c2155fb17d744278"
+UPSTREAM_CHECK_URI = "https://github.com/skvadrik/re2c/releases"
+
+BBCLASSEXTEND = "native nativesdk"
+
+inherit autotools
diff --git a/meta/recipes-support/rng-tools/rng-tools/0001-rngd-fix-debug-to-also-filter-syslog-calls.patch b/meta/recipes-support/rng-tools/rng-tools/0001-rngd-fix-debug-to-also-filter-syslog-calls.patch
new file mode 100644
index 0000000000..0733378668
--- /dev/null
+++ b/meta/recipes-support/rng-tools/rng-tools/0001-rngd-fix-debug-to-also-filter-syslog-calls.patch
@@ -0,0 +1,46 @@
+From 213a869e8315ead2c739acfcbde712358a842dee Mon Sep 17 00:00:00 2001
+From: Yann Dirson <yann@blade-group.com>
+Date: Fri, 9 Oct 2020 15:12:26 +0200
+Subject: [PATCH] rngd: fix --debug to also filter syslog() calls
+
+Debug logs were only controlled by --debug flag while in --foreground
+mode. In --daemon mode /var/log/message got stuffed with details of
+entropy pool refilling, which is useless in production, and hamful
+when log rotation then gets rid of the more useful logs. This is
+especially true for embedded systems.
+
+This change makes the two modes consistently only produce debug logs when
+--debug is specified.
+
+Upstream-Status: Backport [213a869e8315ead2c739acfcbde712358a842dee]
+
+Signed-off-by: Yann Dirson <yann@blade-group.com>
+---
+ rngd.h | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/rngd.h b/rngd.h
+index 901b6f1..a79ea0f 100644
+--- a/rngd.h
++++ b/rngd.h
+@@ -166,13 +166,13 @@ extern bool quiet;
+ #define message(priority,fmt,args...) do { \
+ if (quiet) \
+ break;\
++ if (arguments->debug == false && LOG_PRI(priority) == LOG_DEBUG) \
++ break;\
+ if (am_daemon) { \
+ syslog((priority), fmt, ##args); \
+ } else if (!msg_squash) { \
+- if ((LOG_PRI(priority) != LOG_DEBUG) || (arguments->debug == true)) {\
+- fprintf(stderr, fmt, ##args); \
+- fflush(stderr); \
+- } \
++ fprintf(stderr, fmt, ##args); \
++ fflush(stderr); \
+ } \
+ } while (0)
+
+--
+2.28.0
+
diff --git a/meta/recipes-support/rng-tools/rng-tools/a4b6d9ce64f132e463b9091d0536913ddaf11516.patch b/meta/recipes-support/rng-tools/rng-tools/a4b6d9ce64f132e463b9091d0536913ddaf11516.patch
new file mode 100644
index 0000000000..96301617b2
--- /dev/null
+++ b/meta/recipes-support/rng-tools/rng-tools/a4b6d9ce64f132e463b9091d0536913ddaf11516.patch
@@ -0,0 +1,42 @@
+From a4b6d9ce64f132e463b9091d0536913ddaf11516 Mon Sep 17 00:00:00 2001
+From: Neil Horman <nhorman@tuxdriver.com>
+Date: Thu, 30 Apr 2020 16:57:35 -0400
+Subject: [PATCH] Remove name conflict with libc encrypt
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Forgot to fixup the funciton name conflict with libcs encrypt() function
+on power systems
+
+Upstream-Status: Backport [https://github.com/nhorman/rng-tools/commit/a4b6d9ce64f132e463b9091d0536913ddaf11516]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
+Reported-by: Natanael Copa <ncopa@alpinelinux.org>
+Reported-by: "Milan P. Stanić" <mps@arvanta.net>
+---
+ rngd_darn.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/rngd_darn.c b/rngd_darn.c
+index 35df7a1..9345895 100644
+--- a/rngd_darn.c
++++ b/rngd_darn.c
+@@ -109,7 +109,7 @@ static int init_openssl(struct rng *ent_src)
+ return 0;
+ }
+
+-int encrypt(unsigned char *plaintext, int plaintext_len, unsigned char *key,
++static int osslencrypt(unsigned char *plaintext, int plaintext_len, unsigned char *key,
+ unsigned char *iv, unsigned char *ciphertext)
+ {
+ int len;
+@@ -150,7 +150,7 @@ static inline int openssl_mangle(unsigned char *tmp, struct rng *ent_src)
+ unsigned char ciphertext[CHUNK_SIZE * RDRAND_ROUNDS];
+
+ /* Encrypt the plaintext */
+- ciphertext_len = encrypt (tmp, strlen(tmp), key, iv_buf,
++ ciphertext_len = osslencrypt (tmp, strlen(tmp), key, iv_buf,
+ ciphertext);
+ printf("Calling mangle with len %d\n", ciphertext_len);
+ if (!ciphertext_len)
diff --git a/meta/recipes-support/rng-tools/rng-tools/dab16a5fd4efde8ef569b358e19b1fcbc7d0d938.patch b/meta/recipes-support/rng-tools/rng-tools/dab16a5fd4efde8ef569b358e19b1fcbc7d0d938.patch
new file mode 100644
index 0000000000..93103ef79f
--- /dev/null
+++ b/meta/recipes-support/rng-tools/rng-tools/dab16a5fd4efde8ef569b358e19b1fcbc7d0d938.patch
@@ -0,0 +1,51 @@
+From dab16a5fd4efde8ef569b358e19b1fcbc7d0d938 Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Mon, 30 Mar 2020 00:10:46 +0200
+Subject: [PATCH] rngd_jitter: disambiguate call to encrypt
+
+Commit 0f184ea7e792427fb20afe81d471b565aee96f0b disambiguate the call to
+encrypt in rngd_rdrand.c but did not update rngd_jitter.c.
+
+This raise the following build failure:
+
+rngd_jitter.c:75:12: error: conflicting types for 'encrypt'
+ static int encrypt(unsigned char *plaintext, int plaintext_len, unsigned char *key,
+ ^~~~~~~
+In file included from rngd_jitter.c:27:
+/home/dawncrow/buildroot-test/scripts/instance-0/output-1/host/powerpc-buildroot-linux-uclibc/sysroot/usr/include/unistd.h:1132:13: note: previous declaration of 'encrypt' was here
+ extern void encrypt (char *__block, int __edflag) __THROW __nonnull ((1));
+ ^~~~~~~
+Makefile:770: recipe for target 'rngd-rngd_jitter.o' failed
+
+Fixes:
+ - http://autobuild.buildroot.org/results/0ca6bf16e3acbc94065b88c4442d6595424b77cb
+
+Upstream-Status: Backport [https://github.com/nhorman/rng-tools/commit/dab16a5fd4efde8ef569b358e19b1fcbc7d0d938]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+---
+ rngd_jitter.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/rngd_jitter.c b/rngd_jitter.c
+index c1b1aca..49a3825 100644
+--- a/rngd_jitter.c
++++ b/rngd_jitter.c
+@@ -72,7 +72,7 @@ unsigned char *aes_buf;
+ char key[AES_BLOCK];
+ static unsigned char iv_buf[CHUNK_SIZE] __attribute__((aligned(128)));
+
+-static int encrypt(unsigned char *plaintext, int plaintext_len, unsigned char *key,
++static int osslencrypt(unsigned char *plaintext, int plaintext_len, unsigned char *key,
+ unsigned char *iv, unsigned char *ciphertext)
+ {
+ EVP_CIPHER_CTX *ctx;
+@@ -122,7 +122,7 @@ static inline int openssl_mangle(unsigned char *tmp, struct rng *ent_src)
+ unsigned char ciphertext[CHUNK_SIZE * RDRAND_ROUNDS];
+
+ /* Encrypt the plaintext */
+- ciphertext_len = encrypt (tmp, strlen(tmp), key, iv_buf,
++ ciphertext_len = osslencrypt (tmp, strlen(tmp), key, iv_buf,
+ ciphertext);
+ if (!ciphertext_len)
+ return -1;
diff --git a/meta/recipes-support/rng-tools/rng-tools/rngd.service b/meta/recipes-support/rng-tools/rng-tools/rngd.service
index aaaaa29074..0559b97991 100644
--- a/meta/recipes-support/rng-tools/rng-tools/rngd.service
+++ b/meta/recipes-support/rng-tools/rng-tools/rngd.service
@@ -8,6 +8,25 @@ Conflicts=shutdown.target
[Service]
EnvironmentFile=-@SYSCONFDIR@/default/rng-tools
ExecStart=@SBINDIR@/rngd -f $EXTRA_ARGS
+CapabilityBoundingSet=CAP_SYS_ADMIN
+IPAddressDeny=any
+LockPersonality=yes
+MemoryDenyWriteExecute=yes
+NoNewPrivileges=yes
+PrivateTmp=yes
+ProtectControlGroups=yes
+ProtectHome=yes
+ProtectHostname=yes
+ProtectKernelModules=yes
+ProtectKernelLogs=yes
+ProtectSystem=strict
+RestrictAddressFamilies=AF_UNIX
+RestrictNamespaces=yes
+RestrictRealtime=yes
+RestrictSUIDSGID=yes
+SystemCallArchitectures=native
+SystemCallErrorNumber=EPERM
+SystemCallFilter=@system-service
[Install]
-WantedBy=multi-user.target
+WantedBy=sysinit.target
diff --git a/meta/recipes-support/rng-tools/rng-tools_6.9.bb b/meta/recipes-support/rng-tools/rng-tools_6.10.bb
index 913342c315..40ec5ad671 100644
--- a/meta/recipes-support/rng-tools/rng-tools_6.9.bb
+++ b/meta/recipes-support/rng-tools/rng-tools_6.10.bb
@@ -6,25 +6,29 @@ HOMEPAGE = "https://github.com/nhorman/rng-tools"
BUGTRACKER = "https://github.com/nhorman/rng-tools/issues"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "sysfsutils"
+DEPENDS = "sysfsutils openssl"
SRC_URI = "\
git://github.com/nhorman/rng-tools.git \
+ file://a4b6d9ce64f132e463b9091d0536913ddaf11516.patch \
+ file://dab16a5fd4efde8ef569b358e19b1fcbc7d0d938.patch \
+ file://0001-rngd-fix-debug-to-also-filter-syslog-calls.patch \
file://init \
file://default \
file://rngd.service \
"
-SRCREV = "4a865797a69dd38c64a86aa32884ecc9ba7b4d08"
+SRCREV = "0be82200a66d9321451e0a0785bfae350b9cffdc"
S = "${WORKDIR}/git"
inherit autotools update-rc.d systemd pkgconfig
-PACKAGECONFIG ??= "libgcrypt libjitterentropy"
+EXTRA_OECONF = "--without-rtlsdr"
+
+PACKAGECONFIG ??= "libjitterentropy"
PACKAGECONFIG_libc-musl = "libargp libjitterentropy"
PACKAGECONFIG[libargp] = "--with-libargp,--without-libargp,argp-standalone,"
-PACKAGECONFIG[libgcrypt] = "--with-libgcrypt,--without-libgcrypt,libgcrypt,"
PACKAGECONFIG[libjitterentropy] = "--enable-jitterentropy,--disable-jitterentropy,libjitterentropy"
PACKAGECONFIG[libp11] = "--with-pkcs11,--without-pkcs11,libp11 openssl"
PACKAGECONFIG[nistbeacon] = "--with-nistbeacon,--without-nistbeacon,curl libxml2 openssl"
@@ -49,4 +53,11 @@ do_install_append() {
-e 's,@SBINDIR@,${sbindir},g' \
${D}${sysconfdir}/init.d/rng-tools \
${D}${systemd_system_unitdir}/rngd.service
+
+ if [ "${@bb.utils.contains('PACKAGECONFIG', 'nistbeacon', 'yes', 'no', d)}" = "yes" ]; then
+ sed -i \
+ -e '/^IPAddressDeny=any/d' \
+ -e '/^RestrictAddressFamilies=/ s/$/ AF_INET AF_INET6/' \
+ ${D}${systemd_system_unitdir}/rngd.service
+ fi
}
diff --git a/meta/recipes-support/serf/serf_1.3.9.bb b/meta/recipes-support/serf/serf_1.3.9.bb
index dd4133a45c..6a27f12102 100644
--- a/meta/recipes-support/serf/serf_1.3.9.bb
+++ b/meta/recipes-support/serf/serf_1.3.9.bb
@@ -30,4 +30,4 @@ EXTRA_OESCONS = " \
OPENSSL="${STAGING_EXECPREFIXDIR}" \
"
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/shared-mime-info/shared-mime-info_git.bb b/meta/recipes-support/shared-mime-info/shared-mime-info_git.bb
index 7a060b09ad..e82c818e5c 100644
--- a/meta/recipes-support/shared-mime-info/shared-mime-info_git.bb
+++ b/meta/recipes-support/shared-mime-info/shared-mime-info_git.bb
@@ -5,22 +5,19 @@ SECTION = "base"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "libxml2 itstool-native glib-2.0 shared-mime-info-native"
+DEPENDS = "libxml2 itstool-native glib-2.0 shared-mime-info-native xmlto-native"
SRC_URI = "git://gitlab.freedesktop.org/xdg/shared-mime-info.git;protocol=https"
-SRCREV = "829b26d85e7d89a0caee03046c3bce373f04c80a"
-PV = "1.15"
+SRCREV = "ef58b2b2f7ad4070171c6e45e3b3764daa3ff2c1"
+PV = "2.0"
S = "${WORKDIR}/git"
-UPSTREAM_CHECK_GITTAGREGEX = "Release-(?P<pver>(\d+(\-\d+)+))"
-UPSTREAM_VERSION_UNKNOWN = "1"
+inherit meson pkgconfig gettext python3native mime
-inherit autotools pkgconfig gettext python3native mime
-
-EXTRA_OECONF = "--disable-update-mimedb"
+EXTRA_OEMESON = "-Dupdate-mimedb=true"
FILES_${PN} += "${datadir}/mime"
-FILES_${PN}-dev += "${datadir}/pkgconfig/shared-mime-info.pc"
+FILES_${PN}-dev += "${datadir}/pkgconfig/shared-mime-info.pc ${datadir}/gettext/its"
# freedesktop.org.xml is only required when updating the mime database,
# package it separately
@@ -28,16 +25,4 @@ PACKAGES =+ "shared-mime-info-data"
FILES_shared-mime-info-data = "${datadir}/mime/packages/freedesktop.org.xml"
RDEPENDS_shared-mime-info-data = "shared-mime-info"
-do_install () {
- autotools_do_install
-
- update-mime-database ${D}${datadir}/mime
-}
-
-do_install_class-native () {
- autotools_do_install
-
- ${B}/update-mime-database ${D}${datadir}/mime
-}
-
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/sqlite/sqlite3_3.31.1.bb b/meta/recipes-support/sqlite/sqlite3_3.33.0.bb
index 903d66ab29..611a1bd923 100644
--- a/meta/recipes-support/sqlite/sqlite3_3.31.1.bb
+++ b/meta/recipes-support/sqlite/sqlite3_3.33.0.bb
@@ -3,10 +3,8 @@ require sqlite3.inc
LICENSE = "PD"
LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=786d3dc581eff03f4fd9e4a77ed00c66"
-SRC_URI = "http://www.sqlite.org/2020/sqlite-autoconf-${SQLITE_PV}.tar.gz \
- "
-SRC_URI[md5sum] = "2d0a553534c521504e3ac3ad3b90f125"
-SRC_URI[sha256sum] = "62284efebc05a76f909c580ffa5c008a7d22a1287285d68b7825a2b6b51949ae"
+SRC_URI = "http://www.sqlite.org/2020/sqlite-autoconf-${SQLITE_PV}.tar.gz"
+SRC_URI[sha256sum] = "106a2c48c7f75a298a7557bcc0d5f4f454e5b43811cc738b7ca294d6956bbb15"
# -19242 is only an issue in specific development branch commits
CVE_CHECK_WHITELIST += "CVE-2019-19242"
diff --git a/meta/recipes-support/vim/files/no-path-adjust.patch b/meta/recipes-support/vim/files/no-path-adjust.patch
new file mode 100644
index 0000000000..05c2d803f6
--- /dev/null
+++ b/meta/recipes-support/vim/files/no-path-adjust.patch
@@ -0,0 +1,27 @@
+vim: do not adjust script pathnames
+
+When cross-compiling, we do not want to reference the host versions of
+things like perl and awk.
+
+Upstream-Status: Pending
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -2507,11 +2507,14 @@ installtools: $(TOOLS) $(DESTDIR)$(exec_
+ rm -rf $$cvs; \
+ fi
+ -chmod $(FILEMOD) $(DEST_TOOLS)/*
+-# replace the path in some tools
++
++# replace the path in some tools, but not when cross-compiling
++ifneq ($(CROSS_COMPILING),1)
+ perlpath=`./which.sh perl` && sed -e "s+/usr/bin/perl+$$perlpath+" $(TOOLSSOURCE)/efm_perl.pl >$(DEST_TOOLS)/efm_perl.pl
+ awkpath=`./which.sh nawk` && sed -e "s+/usr/bin/nawk+$$awkpath+" $(TOOLSSOURCE)/mve.awk >$(DEST_TOOLS)/mve.awk; if test -z "$$awkpath"; then \
+ awkpath=`./which.sh gawk` && sed -e "s+/usr/bin/nawk+$$awkpath+" $(TOOLSSOURCE)/mve.awk >$(DEST_TOOLS)/mve.awk; if test -z "$$awkpath"; then \
+ awkpath=`./which.sh awk` && sed -e "s+/usr/bin/nawk+$$awkpath+" $(TOOLSSOURCE)/mve.awk >$(DEST_TOOLS)/mve.awk; fi; fi
++endif
+ -chmod $(SCRIPTMOD) `grep -l "^#!" $(DEST_TOOLS)/*`
+
+ # install the language specific files for tools, if they were unpacked
diff --git a/meta/recipes-support/vim/vim.inc b/meta/recipes-support/vim/vim.inc
index 78e3f9528d..4d2886c19e 100644
--- a/meta/recipes-support/vim/vim.inc
+++ b/meta/recipes-support/vim/vim.inc
@@ -11,6 +11,7 @@ SRC_URI = "git://github.com/vim/vim.git \
file://disable_acl_header_check.patch \
file://vim-add-knob-whether-elf.h-are-checked.patch \
file://0001-src-Makefile-improve-reproducibility.patch \
+ file://no-path-adjust.patch \
"
SRCREV = "98056533b96b6b5d8849641de93185dd7bcadc44"
@@ -87,7 +88,7 @@ do_install() {
chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/mve.awk
chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/*.pl
chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/*.py
-
+
# Install example vimrc from runtime files
install -m 0644 runtime/vimrc_example.vim ${D}/${datadir}/${BPN}/vimrc
@@ -110,7 +111,12 @@ FILES_${PN}-help = "${datadir}/${BPN}/${VIMDIR}/doc"
FILES_${PN}-tutor = "${datadir}/${BPN}/${VIMDIR}/tutor ${bindir}/${BPN}tutor"
FILES_${PN}-vimrc = "${datadir}/${BPN}/vimrc"
FILES_${PN}-data = "${datadir}/${BPN}"
+
+# We do not want to complain if perl or gawk are not on the target.
+#
FILES_${PN}-tools = "${datadir}/${BPN}/${VIMDIR}/tools"
+INSANE_SKIP_${PN}-tools = "file-rdeps"
+
FILES_${PN}-common = " \
${datadir}/${BPN}/${VIMDIR}/*.vim \
${datadir}/${BPN}/${VIMDIR}/autoload \
diff --git a/meta/recipes-support/vim/vim_8.2.bb b/meta/recipes-support/vim/vim_8.2.bb
index 60946a181f..709b6ddb55 100644
--- a/meta/recipes-support/vim/vim_8.2.bb
+++ b/meta/recipes-support/vim/vim_8.2.bb
@@ -8,3 +8,8 @@ BBCLASSEXTEND = "native"
ALTERNATIVE_${PN}_append = " xxd"
ALTERNATIVE_TARGET[xxd] = "${bindir}/xxd"
ALTERNATIVE_LINK_NAME[xxd] = "${bindir}/xxd"
+
+# We override the default in security_flags.inc because vim (not vim-tiny!) will abort
+# in many places for _FORTIFY_SOURCE=2. Security flags become part of CC.
+#
+lcl_maybe_fortify = "${@oe.utils.conditional('DEBUG_BUILD','1','','-D_FORTIFY_SOURCE=1',d)}"
diff --git a/meta/recipes-support/vte/vte/0002-Add-W_EXITCODE-macro-for-non-glibc-systems.patch b/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch
index 0ffd92b4ba..0ffd92b4ba 100644
--- a/meta/recipes-support/vte/vte/0002-Add-W_EXITCODE-macro-for-non-glibc-systems.patch
+++ b/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch
diff --git a/meta/recipes-support/vte/vte/0001-app.cc-use-old-school-asignment-to-avoid-gcc-4.8-err.patch b/meta/recipes-support/vte/vte/0001-app.cc-use-old-school-asignment-to-avoid-gcc-4.8-err.patch
deleted file mode 100644
index 9c3f98fa61..0000000000
--- a/meta/recipes-support/vte/vte/0001-app.cc-use-old-school-asignment-to-avoid-gcc-4.8-err.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 442da9076b52003743ffc6fd7b9d647de6d7aa8f Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Thu, 17 Jan 2019 16:37:54 +0100
-Subject: [PATCH] app.cc: use old school asignment to avoid gcc 4.8 error
-
-This is needed to build vte-native on Centos 7,
-and can be dropped once that OS is no longer supported.
-
-Upstream-Status: Inappropriate [ancient compiler fix]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- src/app/app.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/app/app.cc b/src/app/app.cc
-index d424064..675d789 100644
---- a/src/app/app.cc
-+++ b/src/app/app.cc
-@@ -306,7 +306,7 @@ public:
- else
- alpha = get_alpha();
-
-- GdkRGBA color{bg_color};
-+ GdkRGBA color = bg_color;
- color.alpha = alpha;
- return color;
- }
diff --git a/meta/recipes-support/vte/vte_0.58.3.bb b/meta/recipes-support/vte/vte_0.60.3.bb
index 41dc2e77c9..02a886bce0 100644
--- a/meta/recipes-support/vte/vte_0.58.3.bb
+++ b/meta/recipes-support/vte/vte_0.60.3.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = " \
file://COPYING.LGPL3;md5=b52f2d57d10c4f7ee67a7eb9615d5d24 \
"
-DEPENDS = "glib-2.0 gtk+3 libpcre2 libxml2-native gperf-native"
+DEPENDS = "glib-2.0 gtk+3 libpcre2 libxml2-native gperf-native icu"
GNOMEBASEBUILDCLASS = "meson"
GIR_MESON_OPTION = 'gir'
@@ -17,11 +17,9 @@ GIR_MESON_OPTION = 'gir'
inherit gnomebase gtk-doc features_check upstream-version-is-even gobject-introspection
# vapigen.m4 is required when vala is not present (but the one from vala should be used normally)
-SRC_URI += "file://0001-app.cc-use-old-school-asignment-to-avoid-gcc-4.8-err.patch \
- file://0002-Add-W_EXITCODE-macro-for-non-glibc-systems.patch \
- "
-SRC_URI[archive.md5sum] = "f59eb0784a361c0939c03d4566255916"
-SRC_URI[archive.sha256sum] = "22dcb54ac2ad1a56ab0a745e16ccfeb383f0b5860b5bfa1784561216f98d4975"
+SRC_URI += "file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch"
+SRC_URI[archive.md5sum] = "4214712ecab2d50e2a3a07897c3ada49"
+SRC_URI[archive.sha256sum] = "feb76e1181a357d86112d447a08d127e2081438df76ece83243b18609dd9822a"
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
@@ -44,6 +42,7 @@ FILES_${PN}-dev += "${datadir}/vala/vapi/*"
PACKAGECONFIG ??= "gnutls"
PACKAGECONFIG[vala] = "-Dvapi=true,-Dvapi=false,vala-native vala"
PACKAGECONFIG[gnutls] = "-Dgnutls=true,-Dgnutls=false,gnutls"
+PACKAGECONFIG[systemd] = "-D_systemd=true,-D_systemd=false,systemd"
# vala requires gir
PACKAGECONFIG_remove_class-native = "vala"
@@ -51,6 +50,9 @@ CFLAGS += "-D_GNU_SOURCE"
PACKAGES =+ "libvte ${PN}-prompt"
FILES_libvte = "${libdir}/*.so.* ${libdir}/girepository-1.0/*"
-FILES_${PN}-prompt = "${sysconfdir}/profile.d"
+FILES_${PN}-prompt = " \
+ ${sysconfdir}/profile.d \
+ ${libexecdir}/vte-urlencode-cwd \
+"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/site/common b/meta/site/common
index ff552329bd..62907274d7 100644
--- a/meta/site/common
+++ b/meta/site/common
@@ -19,3 +19,10 @@ shadow_cv_passwd_dir=${bindir}
ac_cv_buggy_getaddrinfo=no
ac_cv_path_SED=${ac_cv_path_SED=sed}
+
+# General
+ac_cv_have_decl_sys_siglist=${ac_cv_have_decl_sys_siglist=no}
+
+# bash
+bash_cv_under_sys_siglist=${bash_cv_under_sys_siglist=no}
+bash_cv_sys_siglist=${bash_cv_sys_siglist=no}
diff --git a/meta/site/common-glibc b/meta/site/common-glibc
index a0680bc44c..0a665658fb 100644
--- a/meta/site/common-glibc
+++ b/meta/site/common-glibc
@@ -1,5 +1,4 @@
# general
-ac_cv_have_decl_sys_siglist=${ac_cv_have_decl_sys_siglist=yes}
ac_cv_func_calloc_0_nonnull=${ac_cv_func_calloc_0_nonnull=yes}
ac_cv_func_realloc_works=${ac_cv_func_realloc_works=yes}
ac_cv_func_realloc_0_nonnull=${ac_cv_func_realloc_0_nonnull=yes}
@@ -18,8 +17,6 @@ ac_cv_func_getaddrinfo=${ac_cv_func_getaddrinfo=yes}
ac_cv_func_strtod=${ac_cv_func_strtod=yes}
# bash
-bash_cv_under_sys_siglist=${bash_cv_under_sys_siglist=yes}
-bash_cv_sys_siglist=${bash_cv_sys_siglist=yes}
bash_cv_getcwd_malloc=${bash_cv_getcwd_malloc=yes}
# clamav
diff --git a/meta/site/common-musl b/meta/site/common-musl
index 4be8d002d6..44a7a1aea9 100644
--- a/meta/site/common-musl
+++ b/meta/site/common-musl
@@ -1,5 +1,4 @@
# general
-ac_cv_have_decl_sys_siglist=${ac_cv_have_decl_sys_siglist=no}
ac_cv_func_calloc_0_nonnull=${ac_cv_func_calloc_0_nonnull=yes}
ac_cv_func_realloc_works=${ac_cv_func_realloc_works=yes}
ac_cv_func_realloc_0_nonnull=${ac_cv_func_realloc_0_nonnull=yes}
@@ -29,10 +28,6 @@ glib_cv_have_qsort_r=${glib_cv_have_qsort_r=no}
#dbus-glib
ac_cv_have_abstract_sockets=${ac_cv_have_abstract_sockets=yes}
-# bash
-bash_cv_under_sys_siglist=${bash_cv_under_sys_siglist=no}
-bash_cv_sys_siglist=${bash_cv_sys_siglist=no}
-
# coreutils
fu_cv_sys_stat_statfs2_bsize=${fu_cv_sys_stat_statfs2_bsize=yes}
gl_cv_func_getcwd_abort_bug=${gl_cv_func_getcwd_abort_bug=no}
diff --git a/scripts/buildall-qemu b/scripts/buildall-qemu
new file mode 100755
index 0000000000..ca9aafadf7
--- /dev/null
+++ b/scripts/buildall-qemu
@@ -0,0 +1,120 @@
+#!/bin/sh
+# Copyright (c) 2020 Wind River Systems, Inc.
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# buildall-qemu: a tool for automating build testing of recipes
+# TODO: Add support for selecting which qemu architectures to build
+# TODO: Add support for queueing up multiple recipe builds
+# TODO: Add more logging options (e.g. local.conf info, bitbake env info)
+
+usage ()
+{
+ base=$(basename "$0")
+ echo "Usage: $base [options] [recipename/target]"
+ echo "Executes a build of a given target for selected LIBCs. With no options, default to both libc and musl."
+ echo "Options:"
+ echo "-l, --libc Specify one of \"glibc\" or \"musl\""
+}
+
+
+buildall ()
+{
+ # Get path to oe-core directory. Since oe-init-build-env prepends $PATH with
+ # the path to the scripts directory, get it from there
+ SCRIPTS_PATH="$(echo "$PATH" | cut -d ":" -f 1)"
+ OE_CORE_PATH=$(echo "$SCRIPTS_PATH" | sed 's|\(.*\)/.*|\1|')
+
+ # Get target list and host machine information
+ TARGET_LIST=$(find "$OE_CORE_PATH"/meta/conf/machine -maxdepth 1 -type f | grep qemu | sed 's|.*/||' | sed -e 's/\.conf//')
+
+ # Set LIBC value to use for the builds based on options provided by the user
+ if [ -n "$2" ]
+ then
+ LIBC_LIST="$2"
+ echo "$LIBC_LIST"
+ else
+ LIBC_LIST="glibc musl"
+ echo "$LIBC_LIST"
+ fi
+
+ START_TIME=$(date "+%Y-%m-%d_%H:%M:%S")
+ LOG_FILE="$1-buildall.log"
+ OS_INFO=$(grep "PRETTY_NAME=" /etc/os-release | awk -F "=" '{print $2}' | sed -e 's/^"//' -e 's/"$//')
+
+ # Append an existing log file for this build with .old if one exists
+ if [ -f "${LOG_FILE}" ]
+ then
+ mv "${LOG_FILE}" "${LOG_FILE}.old"
+ else
+ touch "${LOG_FILE}"
+ fi
+
+ # Fill the log file with build and host info
+ echo "BUILDALL-QEMU LOG FOR $1" >> "${LOG_FILE}"
+ echo "START TIME: ${START_TIME}" >> "${LOG_FILE}"
+ echo "HOSTNAME: $(uname -n)" >> "${LOG_FILE}"
+ echo "HOST OS: ${OS_INFO}" >> "${LOG_FILE}"
+ echo "HOST KERNEL: $(uname -r)" >> "${LOG_FILE}"
+ echo "===============" >> "${LOG_FILE}"
+ echo "BUILD RESULTS:" >> "${LOG_FILE}"
+
+ # start the builds for each MACHINE and TCLIBC
+ for j in ${LIBC_LIST}
+ do
+ echo "[$j]" >> "${LOG_FILE}"
+ for i in ${TARGET_LIST}
+ do
+ echo "$i" "$j"; \
+ TCLIBC=$j MACHINE=$i bitbake "$1" && echo "PASS: $i" >> "${LOG_FILE}" || echo "FAIL: $i" >> "${LOG_FILE}"
+ done
+ done
+
+ # Get pass/fail totals and add them to the end of the log
+ PASSED=$(grep "PASS:" "${LOG_FILE}" | wc -l)
+ FAILED=$(grep "FAIL:" "${LOG_FILE}" | wc -l)
+
+ echo "===============" >> "${LOG_FILE}"
+ echo "PASSED: ${PASSED}" >> "${LOG_FILE}"
+ echo "FAILED: ${FAILED}" >> "${LOG_FILE}"
+}
+
+
+# fail entire script if any command fails
+set -e
+
+# print usage and exit if not enough args given
+[ $# -eq 0 ] && usage && exit 1
+
+# handle arguments
+RECIPE=
+while [ $# -gt 0 ]
+do
+ arg=$1
+ case $arg in
+ -l|--libc)
+ if [ "$2" = "glibc" ] || [ "$2" = "musl" ]
+ then
+ LIBC_LIST="$2"
+ else
+ echo "Unrecognized libc option."
+ usage && exit 1
+ fi
+ shift
+ shift
+ ;;
+ *)
+ RECIPE="$1"
+ shift
+ ;;
+ esac
+done
+
+set -- "$RECIPE"
+
+# run buildall for the given recipe and LIBC
+if [ -n "$1" ]
+then
+ buildall "$1" "$LIBC_LIST"
+fi
+
diff --git a/scripts/buildhistory-collect-srcrevs b/scripts/buildhistory-collect-srcrevs
index c4d203ff4d..340bee78bb 100755
--- a/scripts/buildhistory-collect-srcrevs
+++ b/scripts/buildhistory-collect-srcrevs
@@ -59,6 +59,7 @@ def main():
all_srcrevs = collections.defaultdict(list)
for root, dirs, files in os.walk(options.buildhistory_dir):
+ dirs.sort()
if '.git' in dirs:
dirs.remove('.git')
for fn in files:
diff --git a/scripts/buildhistory-diff b/scripts/buildhistory-diff
index 833f7c33a5..3bd40a2a1e 100755
--- a/scripts/buildhistory-diff
+++ b/scripts/buildhistory-diff
@@ -28,10 +28,12 @@ def get_args_parser():
%(prog)s [options] [from-revision [to-revision]]
(if not specified, from-revision defaults to build-minus-1, and to-revision defaults to HEAD)""")
+ default_dir = os.path.join(os.environ.get('BUILDDIR', '.'), 'buildhistory')
+
parser.add_argument('-p', '--buildhistory-dir',
action='store',
dest='buildhistory_dir',
- default='buildhistory/',
+ default=default_dir,
help="Specify path to buildhistory directory (defaults to buildhistory/ under cwd)")
parser.add_argument('-v', '--report-version',
action='store_true',
@@ -80,11 +82,6 @@ def main():
parser.print_help()
sys.exit(1)
- if not os.path.exists(args.buildhistory_dir):
- if args.buildhistory_dir == 'buildhistory/':
- cwd = os.getcwd()
- if os.path.basename(cwd) == 'buildhistory':
- args.buildhistory_dir = cwd
if not os.path.exists(args.buildhistory_dir):
sys.stderr.write('Buildhistory directory "%s" does not exist\n\n' % args.buildhistory_dir)
diff --git a/scripts/contrib/bb-perf/buildstats-plot.sh b/scripts/contrib/bb-perf/buildstats-plot.sh
index 898834e5ac..45c27d0b97 100755
--- a/scripts/contrib/bb-perf/buildstats-plot.sh
+++ b/scripts/contrib/bb-perf/buildstats-plot.sh
@@ -39,7 +39,10 @@ set -o errexit
BS_DIR="tmp/buildstats"
N=10
+RECIPE=""
+TASKS="compile:configure:fetch:install:patch:populate_lic:populate_sysroot:unpack"
STATS="utime"
+ACCUMULATE=""
SUM=""
OUTDATA_FILE="$PWD/buildstats-plot.out"
@@ -51,11 +54,15 @@ Usage: $CMD [-b buildstats_dir] [-t do_task]
(default: "$BS_DIR")
-n N Top N recipes to display. Ignored if -S is present
(default: "$N")
+ -r recipe The recipe mask to be searched
+ -t tasks The tasks to be computed
+ (default: "$TASKS")
-s stats The stats to be matched. If more that one stat, units
should be the same because data is plot as histogram.
(see buildstats.sh -h for all options) or any other defined
(build)stat separated by colons, i.e. stime:utime
(default: "$STATS")
+ -a Accumulate all stats values for found recipes
-S Sum values for a particular stat for found recipes
-o Output data file.
(default: "$OUTDATA_FILE")
@@ -64,32 +71,41 @@ EOM
}
# Parse and validate arguments
-while getopts "b:n:s:o:Sh" OPT; do
- case $OPT in
- b)
- BS_DIR="$OPTARG"
- ;;
- n)
- N="$OPTARG"
- ;;
- s)
- STATS="$OPTARG"
- ;;
- S)
- SUM="y"
- ;;
- o)
- OUTDATA_FILE="$OPTARG"
- ;;
- h)
- usage
- exit 0
- ;;
- *)
- usage
- exit 1
- ;;
- esac
+while getopts "b:n:r:t:s:o:aSh" OPT; do
+ case $OPT in
+ b)
+ BS_DIR="$OPTARG"
+ ;;
+ n)
+ N="$OPTARG"
+ ;;
+ r)
+ RECIPE="-r $OPTARG"
+ ;;
+ t)
+ TASKS="$OPTARG"
+ ;;
+ s)
+ STATS="$OPTARG"
+ ;;
+ a)
+ ACCUMULATE="-a"
+ ;;
+ S)
+ SUM="y"
+ ;;
+ o)
+ OUTDATA_FILE="$OPTARG"
+ ;;
+ h)
+ usage
+ exit 0
+ ;;
+ *)
+ usage
+ exit 1
+ ;;
+ esac
done
# Get number of stats
@@ -101,10 +117,10 @@ CD=$(dirname $0)
# Parse buildstats recipes to produce a single table
OUTBUILDSTATS="$PWD/buildstats.log"
-$CD/buildstats.sh -H -s "$STATS" -H > $OUTBUILDSTATS
+$CD/buildstats.sh -b "$BS_DIR" -s "$STATS" -t "$TASKS" $RECIPE $ACCUMULATE -H > $OUTBUILDSTATS
# Get headers
-HEADERS=$(cat $OUTBUILDSTATS | sed -n -e '1s/ /-/g' -e '1s/:/ /gp')
+HEADERS=$(cat $OUTBUILDSTATS | sed -n -e 's/\(.*\)/"\1"/' -e '1s/ /\\\\\\\\ /g' -e 's/_/\\\\\\\\_/g' -e '1s/:/" "/gp')
echo -e "set boxwidth 0.9 relative"
echo -e "set style data histograms"
@@ -113,7 +129,7 @@ echo -e "set xtics rotate by 45 right"
# Get output data
if [ -z "$SUM" ]; then
- cat $OUTBUILDSTATS | sed -e '1d' | sort -k3 -n -r | head -$N > $OUTDATA_FILE
+ cat $OUTBUILDSTATS | sed -e '1d' -e 's/_/\\\\_/g' | sort -k3 -n -r | head -$N > $OUTDATA_FILE
# include task at recipe column
sed -i -e "1i\
${HEADERS}" $OUTDATA_FILE
@@ -125,8 +141,8 @@ else
declare -a sumargs
j=0
for i in `seq $nstats`; do
- sumargs[j]=sum; j=$(( $j + 1 ))
- sumargs[j]=`expr 3 + $i - 1`; j=$(( $j + 1 ))
+ sumargs[j]=sum; j=$(( $j + 1 ))
+ sumargs[j]=`expr 3 + $i - 1`; j=$(( $j + 1 ))
done
# Do the processing with datamash
diff --git a/scripts/contrib/bb-perf/buildstats.sh b/scripts/contrib/bb-perf/buildstats.sh
index e9ec2d476a..e45cfc146d 100755
--- a/scripts/contrib/bb-perf/buildstats.sh
+++ b/scripts/contrib/bb-perf/buildstats.sh
@@ -36,8 +36,10 @@ Child rusage ru_majflt:Child rusage ru_inblock:Child rusage ru_oublock:Child rus
Child rusage ru_nivcsw"
BS_DIR="tmp/buildstats"
+RECIPE=""
TASKS="compile:configure:fetch:install:patch:populate_lic:populate_sysroot:unpack"
STATS="$TIME"
+ACCUMULATE=""
HEADER="" # No header by default
function usage {
@@ -46,6 +48,7 @@ cat <<EOM
Usage: $CMD [-b buildstats_dir] [-t do_task]
-b buildstats The path where the folder resides
(default: "$BS_DIR")
+ -r recipe The recipe to be computed
-t tasks The tasks to be computed
(default: "$TASKS")
-s stats The stats to be matched. Options: TIME, IO, RUSAGE, CHILD_RUSAGE
@@ -56,87 +59,109 @@ Usage: $CMD [-b buildstats_dir] [-t do_task]
IO=$IO
RUSAGE=$RUSAGE
CHILD_RUSAGE=$CHILD_RUSAGE
+ -a Accumulate all stats values for found recipes
-h Display this help message
EOM
}
# Parse and validate arguments
-while getopts "b:t:s:Hh" OPT; do
- case $OPT in
- b)
- BS_DIR="$OPTARG"
- ;;
- t)
- TASKS="$OPTARG"
- ;;
- s)
- STATS="$OPTARG"
- ;;
- H)
- HEADER="y"
- ;;
- h)
- usage
- exit 0
- ;;
- *)
- usage
- exit 1
- ;;
- esac
+while getopts "b:r:t:s:aHh" OPT; do
+ case $OPT in
+ b)
+ BS_DIR="$OPTARG"
+ ;;
+ r)
+ RECIPE="$OPTARG"
+ ;;
+ t)
+ TASKS="$OPTARG"
+ ;;
+ s)
+ STATS="$OPTARG"
+ ;;
+ a)
+ ACCUMULATE="y"
+ ;;
+ H)
+ HEADER="y"
+ ;;
+ h)
+ usage
+ exit 0
+ ;;
+ *)
+ usage
+ exit 1
+ ;;
+ esac
done
# Ensure the buildstats folder exists
if [ ! -d "$BS_DIR" ]; then
- echo "ERROR: $BS_DIR does not exist"
- usage
- exit 1
+ echo "ERROR: $BS_DIR does not exist"
+ usage
+ exit 1
fi
stats=""
IFS=":"
for stat in ${STATS}; do
- case $stat in
- TIME)
- stats="${stats}:${TIME}"
- ;;
- IO)
- stats="${stats}:${IO}"
- ;;
- RUSAGE)
- stats="${stats}:${RUSAGE}"
- ;;
- CHILD_RUSAGE)
- stats="${stats}:${CHILD_RUSAGE}"
- ;;
- *)
- stats="${STATS}"
- esac
+ case $stat in
+ TIME)
+ stats="${stats}:${TIME}"
+ ;;
+ IO)
+ stats="${stats}:${IO}"
+ ;;
+ RUSAGE)
+ stats="${stats}:${RUSAGE}"
+ ;;
+ CHILD_RUSAGE)
+ stats="${stats}:${CHILD_RUSAGE}"
+ ;;
+ *)
+ stats="${STATS}"
+ ;;
+ esac
done
# remove possible colon at the beginning
stats="$(echo "$stats" | sed -e 's/^://1')"
# Provide a header if required by the user
-[ -n "$HEADER" ] && { echo "task:recipe:$stats"; }
+if [ -n "$HEADER" ] ; then
+ if [ -n "$ACCUMULATE" ]; then
+ echo "task:recipe:accumulated(${stats//:/;})"
+ else
+ echo "task:recipe:$stats"
+ fi
+fi
for task in ${TASKS}; do
task="do_${task}"
- for file in $(find ${BS_DIR} -type f -name ${task} | awk 'BEGIN{ ORS=""; OFS=":" } { print $0,"" }'); do
+ for file in $(find ${BS_DIR} -type f -path *${RECIPE}*/${task} | awk 'BEGIN{ ORS=""; OFS=":" } { print $0,"" }'); do
recipe="$(basename $(dirname $file))"
- times=""
- for stat in ${stats}; do
- [ -z "$stat" ] && { echo "empty stats"; }
- time=$(sed -n -e "s/^\($stat\): \\(.*\\)/\\2/p" $file)
- # in case the stat is not present, set the value as NA
- [ -z "$time" ] && { time="NA"; }
- # Append it to times
- if [ -z "$times" ]; then
- times="${time}"
- else
- times="${times} ${time}"
- fi
- done
+ times=""
+ for stat in ${stats}; do
+ [ -z "$stat" ] && { echo "empty stats"; }
+ time=$(sed -n -e "s/^\($stat\): \\(.*\\)/\\2/p" $file)
+ # in case the stat is not present, set the value as NA
+ [ -z "$time" ] && { time="NA"; }
+ # Append it to times
+ if [ -z "$times" ]; then
+ times="${time}"
+ else
+ times="${times} ${time}"
+ fi
+ done
+ if [ -n "$ACCUMULATE" ]; then
+ IFS=' '; valuesarray=(${times}); IFS=':'
+ times=0
+ for value in "${valuesarray[@]}"; do
+ [ "$value" == "NA" ] && { echo "ERROR: stat is not present."; usage; exit 1; }
+ times=$(( $times + $value ))
+ done
+ fi
echo "${task} ${recipe} ${times}"
done
done
diff --git a/scripts/contrib/graph-tool b/scripts/contrib/graph-tool
index 6d2e68b82e..26488930e0 100755
--- a/scripts/contrib/graph-tool
+++ b/scripts/contrib/graph-tool
@@ -11,6 +11,13 @@
#
import sys
+import os
+import argparse
+
+scripts_lib_path = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', 'lib'))
+sys.path.insert(0, scripts_lib_path)
+import argparse_oe
+
def get_path_networkx(dotfile, fromnode, tonode):
try:
@@ -34,47 +41,78 @@ def get_path_networkx(dotfile, fromnode, tonode):
return networkx.all_simple_paths(graph, source=fromnode, target=tonode)
-def find_paths(args, usage):
- if len(args) < 3:
- usage()
- sys.exit(1)
-
- fromnode = args[1]
- tonode = args[2]
-
+def find_paths(args):
path = None
- for path in get_path_networkx(args[0], fromnode, tonode):
+ for path in get_path_networkx(args.dotfile, args.fromnode, args.tonode):
print(" -> ".join(map(str, path)))
if not path:
- print("ERROR: no path from %s to %s in graph" % (fromnode, tonode))
- sys.exit(1)
+ print("ERROR: no path from %s to %s in graph" % (args.fromnode, args.tonode))
+ return 1
+
+
+def filter_graph(args):
+ import fnmatch
+
+ exclude_tasks = []
+ if args.exclude_tasks:
+ for task in args.exclude_tasks.split(','):
+ if not task.startswith('do_'):
+ task = 'do_%s' % task
+ exclude_tasks.append(task)
+
+ def checkref(strval):
+ strval = strval.strip().strip('"')
+ target, taskname = strval.rsplit('.', 1)
+ if exclude_tasks:
+ for extask in exclude_tasks:
+ if fnmatch.fnmatch(taskname, extask):
+ return False
+ if strval in args.ref or target in args.ref:
+ return True
+ return False
+
+ with open(args.infile, 'r') as f:
+ for line in f:
+ line = line.rstrip()
+ if line.startswith(('digraph', '}')):
+ print(line)
+ elif '->' in line:
+ linesplit = line.split('->')
+ if checkref(linesplit[0]) and checkref(linesplit[1]):
+ print(line)
+ elif (not args.no_nodes) and checkref(line.split()[0]):
+ print(line)
+
def main():
- import optparse
- parser = optparse.OptionParser(
- usage = '''%prog [options] <command> <arguments>
+ parser = argparse_oe.ArgumentParser(description='Small utility for working with .dot graph files')
-Available commands:
- find-paths <dotfile> <from> <to>
- Find all of the paths between two nodes in a dot graph''')
+ subparsers = parser.add_subparsers(title='subcommands', metavar='<subcommand>')
+ subparsers.required = True
- #parser.add_option("-d", "--debug",
- # help = "Report all SRCREV values, not just ones where AUTOREV has been used",
- # action="store_true", dest="debug", default=False)
+ parser_find_paths = subparsers.add_parser('find-paths',
+ help='Find all of the paths between two nodes in a dot graph',
+ description='Finds all of the paths between two nodes in a dot graph')
+ parser_find_paths.add_argument('dotfile', help='.dot graph to search in')
+ parser_find_paths.add_argument('fromnode', help='starting node name')
+ parser_find_paths.add_argument('tonode', help='ending node name')
+ parser_find_paths.set_defaults(func=find_paths)
- options, args = parser.parse_args(sys.argv)
- args = args[1:]
+ parser_filter = subparsers.add_parser('filter',
+ help='Pare down a task graph to contain only the specified references',
+ description='Pares down a task-depends.dot graph produced by bitbake -g to contain only the specified references')
+ parser_filter.add_argument('infile', help='Input file')
+ parser_filter.add_argument('ref', nargs='+', help='Reference to include (either recipe/target name or full target.taskname specification)')
+ parser_filter.add_argument('-n', '--no-nodes', action='store_true', help='Skip node formatting lines')
+ parser_filter.add_argument('-x', '--exclude-tasks', help='Comma-separated list of tasks to exclude (do_ prefix optional, wildcards allowed)')
+ parser_filter.set_defaults(func=filter_graph)
- if len(args) < 1:
- parser.print_help()
- sys.exit(1)
+ args = parser.parse_args()
- if args[0] == "find-paths":
- find_paths(args[1:], parser.print_help)
- else:
- parser.print_help()
- sys.exit(1)
+ ret = args.func(args)
+ return ret
if __name__ == "__main__":
- main()
+ ret = main()
+ sys.exit(ret)
diff --git a/scripts/install-buildtools b/scripts/install-buildtools
new file mode 100755
index 0000000000..8554a5db67
--- /dev/null
+++ b/scripts/install-buildtools
@@ -0,0 +1,345 @@
+#!/usr/bin/env python3
+
+# Buildtools and buildtools extended installer helper script
+#
+# Copyright (C) 2017-2020 Intel Corporation
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# NOTE: --with-extended-buildtools is on by default
+#
+# Example usage (extended buildtools from milestone):
+# (1) using --url and --filename
+# $ install-buildtools \
+# --url http://downloads.yoctoproject.org/releases/yocto/milestones/yocto-3.1_M3/buildtools \
+# --filename x86_64-buildtools-extended-nativesdk-standalone-3.0+snapshot-20200315.sh
+# (2) using --base-url, --release, --installer-version and --build-date
+# $ install-buildtools \
+# --base-url http://downloads.yoctoproject.org/releases/yocto \
+# --release yocto-3.1_M3 \
+# --installer-version 3.0+snapshot
+# --build-date 202000315
+#
+# Example usage (standard buildtools from release):
+# (3) using --url and --filename
+# $ install-buildtools --without-extended-buildtools \
+# --url http://downloads.yoctoproject.org/releases/yocto/yocto-3.0.2/buildtools \
+# --filename x86_64-buildtools-nativesdk-standalone-3.0.2.sh
+# (4) using --base-url, --release and --installer-version
+# $ install-buildtools --without-extended-buildtools \
+# --base-url http://downloads.yoctoproject.org/releases/yocto \
+# --release yocto-3.0.2 \
+# --installer-version 3.0.2
+#
+
+import argparse
+import logging
+import os
+import platform
+import re
+import shutil
+import shlex
+import stat
+import subprocess
+import sys
+import tempfile
+from urllib.parse import quote
+
+scripts_path = os.path.dirname(os.path.realpath(__file__))
+lib_path = scripts_path + '/lib'
+sys.path = sys.path + [lib_path]
+import scriptutils
+import scriptpath
+
+
+PROGNAME = 'install-buildtools'
+logger = scriptutils.logger_create(PROGNAME, stream=sys.stdout)
+
+DEFAULT_INSTALL_DIR = os.path.join(os.path.split(scripts_path)[0],'buildtools')
+DEFAULT_BASE_URL = 'http://downloads.yoctoproject.org/releases/yocto'
+DEFAULT_RELEASE = 'yocto-3.2_M3'
+DEFAULT_INSTALLER_VERSION = '3.1+snapshot'
+DEFAULT_BUILDDATE = '20200923'
+
+# Python version sanity check
+if not (sys.version_info.major == 3 and sys.version_info.minor >= 4):
+ logger.error("This script requires Python 3.4 or greater")
+ logger.error("You have Python %s.%s" %
+ (sys.version_info.major, sys.version_info.minor))
+ sys.exit(1)
+
+# The following three functions are copied directly from
+# bitbake/lib/bb/utils.py, in order to allow this script
+# to run on versions of python earlier than what bitbake
+# supports (e.g. less than Python 3.5 for YP 3.1 release)
+
+def _hasher(method, filename):
+ import mmap
+
+ with open(filename, "rb") as f:
+ try:
+ with mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ) as mm:
+ for chunk in iter(lambda: mm.read(8192), b''):
+ method.update(chunk)
+ except ValueError:
+ # You can't mmap() an empty file so silence this exception
+ pass
+ return method.hexdigest()
+
+
+def md5_file(filename):
+ """
+ Return the hex string representation of the MD5 checksum of filename.
+ """
+ import hashlib
+ return _hasher(hashlib.md5(), filename)
+
+def sha256_file(filename):
+ """
+ Return the hex string representation of the 256-bit SHA checksum of
+ filename.
+ """
+ import hashlib
+ return _hasher(hashlib.sha256(), filename)
+
+
+def main():
+ global DEFAULT_INSTALL_DIR
+ global DEFAULT_BASE_URL
+ global DEFAULT_RELEASE
+ global DEFAULT_INSTALLER_VERSION
+ global DEFAULT_BUILDDATE
+ filename = ""
+ release = ""
+ buildtools_url = ""
+ install_dir = ""
+ arch = platform.machine()
+
+ parser = argparse.ArgumentParser(
+ description="Buildtools installation helper",
+ add_help=False)
+ parser.add_argument('-u', '--url',
+ help='URL from where to fetch buildtools SDK installer, not '
+ 'including filename (optional)\n'
+ 'Requires --filename.',
+ action='store')
+ parser.add_argument('-f', '--filename',
+ help='filename for the buildtools SDK installer to be installed '
+ '(optional)\nRequires --url',
+ action='store')
+ parser.add_argument('-d', '--directory',
+ default=DEFAULT_INSTALL_DIR,
+ help='directory where buildtools SDK will be installed (optional)',
+ action='store')
+ parser.add_argument('-r', '--release',
+ default=DEFAULT_RELEASE,
+ help='Yocto Project release string for SDK which will be '
+ 'installed (optional)',
+ action='store')
+ parser.add_argument('-V', '--installer-version',
+ default=DEFAULT_INSTALLER_VERSION,
+ help='version string for the SDK to be installed (optional)',
+ action='store')
+ parser.add_argument('-b', '--base-url',
+ default=DEFAULT_BASE_URL,
+ help='base URL from which to fetch SDK (optional)', action='store')
+ parser.add_argument('-t', '--build-date',
+ default=DEFAULT_BUILDDATE,
+ help='Build date of pre-release SDK (optional)', action='store')
+ group = parser.add_mutually_exclusive_group()
+ group.add_argument('--with-extended-buildtools', action='store_true',
+ dest='with_extended_buildtools',
+ default=True,
+ help='enable extended buildtools tarball (on by default)')
+ group.add_argument('--without-extended-buildtools', action='store_false',
+ dest='with_extended_buildtools',
+ help='disable extended buildtools (traditional buildtools tarball)')
+ group = parser.add_mutually_exclusive_group()
+ group.add_argument('-c', '--check', help='enable checksum validation',
+ default=True, action='store_true')
+ group.add_argument('-n', '--no-check', help='disable checksum validation',
+ dest="check", action='store_false')
+ parser.add_argument('-D', '--debug', help='enable debug output',
+ action='store_true')
+ parser.add_argument('-q', '--quiet', help='print only errors',
+ action='store_true')
+
+ parser.add_argument('-h', '--help', action='help',
+ default=argparse.SUPPRESS,
+ help='show this help message and exit')
+
+ args = parser.parse_args()
+
+ if args.debug:
+ logger.setLevel(logging.DEBUG)
+ elif args.quiet:
+ logger.setLevel(logging.ERROR)
+
+ if args.url and args.filename:
+ logger.debug("--url and --filename detected. Ignoring --base-url "
+ "--release --installer-version arguments.")
+ filename = args.filename
+ buildtools_url = "%s/%s" % (args.url, filename)
+ else:
+ if args.base_url:
+ base_url = args.base_url
+ else:
+ base_url = DEFAULT_BASE_URL
+ if args.release:
+ # check if this is a pre-release "milestone" SDK
+ m = re.search(r"^(?P<distro>[a-zA-Z\-]+)(?P<version>[0-9.]+)(?P<milestone>_M[1-9])$",
+ args.release)
+ logger.debug("milestone regex: %s" % m)
+ if m and m.group('milestone'):
+ logger.debug("release[distro]: %s" % m.group('distro'))
+ logger.debug("release[version]: %s" % m.group('version'))
+ logger.debug("release[milestone]: %s" % m.group('milestone'))
+ if not args.build_date:
+ logger.error("Milestone installers require --build-date")
+ else:
+ if args.with_extended_buildtools:
+ filename = "%s-buildtools-extended-nativesdk-standalone-%s-%s.sh" % (
+ arch, args.installer_version, args.build_date)
+ else:
+ filename = "%s-buildtools-nativesdk-standalone-%s-%s.sh" % (
+ arch, args.installer_version, args.build_date)
+ safe_filename = quote(filename)
+ buildtools_url = "%s/milestones/%s/buildtools/%s" % (base_url, args.release, safe_filename)
+ # regular release SDK
+ else:
+ if args.with_extended_buildtools:
+ filename = "%s-buildtools-extended-nativesdk-standalone-%s.sh" % (arch, args.installer_version)
+ else:
+ filename = "%s-buildtools-nativesdk-standalone-%s.sh" % (arch, args.installer_version)
+ safe_filename = quote(filename)
+ buildtools_url = "%s/%s/buildtools/%s" % (base_url, args.release, safe_filename)
+
+ tmpsdk_dir = tempfile.mkdtemp()
+ try:
+ # Fetch installer
+ logger.info("Fetching buildtools installer")
+ tmpbuildtools = os.path.join(tmpsdk_dir, filename)
+ ret = subprocess.call("wget -q -O %s %s" %
+ (tmpbuildtools, buildtools_url), shell=True)
+ if ret != 0:
+ logger.error("Could not download file from %s" % buildtools_url)
+ return ret
+
+ # Verify checksum
+ if args.check:
+ logger.info("Fetching buildtools installer checksum")
+ checksum_type = ""
+ for checksum_type in ["md5sum", "sha256sum"]:
+ check_url = "{}.{}".format(buildtools_url, checksum_type)
+ checksum_filename = "{}.{}".format(filename, checksum_type)
+ tmpbuildtools_checksum = os.path.join(tmpsdk_dir, checksum_filename)
+ ret = subprocess.call("wget -q -O %s %s" %
+ (tmpbuildtools_checksum, check_url), shell=True)
+ if ret == 0:
+ break
+ else:
+ if ret != 0:
+ logger.error("Could not download file from %s" % check_url)
+ return ret
+ regex = re.compile(r"^(?P<checksum>[0-9a-f]+)\s+(?P<path>.*/)?(?P<filename>.*)$")
+ with open(tmpbuildtools_checksum, 'rb') as f:
+ original = f.read()
+ m = re.search(regex, original.decode("utf-8"))
+ logger.debug("checksum regex match: %s" % m)
+ logger.debug("checksum: %s" % m.group('checksum'))
+ logger.debug("path: %s" % m.group('path'))
+ logger.debug("filename: %s" % m.group('filename'))
+ if filename != m.group('filename'):
+ logger.error("Filename does not match name in checksum")
+ return 1
+ checksum = m.group('checksum')
+ if checksum_type == "md5sum":
+ checksum_value = md5_file(tmpbuildtools)
+ else:
+ checksum_value = sha256_file(tmpbuildtools)
+ if checksum == checksum_value:
+ logger.info("Checksum success")
+ else:
+ logger.error("Checksum %s expected. Actual checksum is %s." %
+ (checksum, checksum_value))
+ return 1
+
+ # Make installer executable
+ logger.info("Making installer executable")
+ st = os.stat(tmpbuildtools)
+ os.chmod(tmpbuildtools, st.st_mode | stat.S_IEXEC)
+ logger.debug(os.stat(tmpbuildtools))
+ if args.directory:
+ install_dir = args.directory
+ ret = subprocess.call("%s -d %s -y" %
+ (tmpbuildtools, install_dir), shell=True)
+ else:
+ install_dir = "/opt/poky/%s" % args.installer_version
+ ret = subprocess.call("%s -y" % tmpbuildtools, shell=True)
+ if ret != 0:
+ logger.error("Could not run buildtools installer")
+ return ret
+
+ # Setup the environment
+ logger.info("Setting up the environment")
+ regex = re.compile(r'^(?P<export>export )?(?P<env_var>[A-Z_]+)=(?P<env_val>.+)$')
+ with open("%s/environment-setup-%s-pokysdk-linux" %
+ (install_dir, arch), 'rb') as f:
+ for line in f:
+ match = regex.search(line.decode('utf-8'))
+ logger.debug("export regex: %s" % match)
+ if match:
+ env_var = match.group('env_var')
+ logger.debug("env_var: %s" % env_var)
+ env_val = match.group('env_val')
+ logger.debug("env_val: %s" % env_val)
+ os.environ[env_var] = env_val
+
+ # Test installation
+ logger.info("Testing installation")
+ tool = ""
+ m = re.search("extended", tmpbuildtools)
+ logger.debug("extended regex: %s" % m)
+ if args.with_extended_buildtools and not m:
+ logger.info("Ignoring --with-extended-buildtools as filename "
+ "does not contain 'extended'")
+ if args.with_extended_buildtools and m:
+ tool = 'gcc'
+ else:
+ tool = 'tar'
+ logger.debug("install_dir: %s" % install_dir)
+ cmd = shlex.split("/usr/bin/which %s" % tool)
+ logger.debug("cmd: %s" % cmd)
+ logger.debug("tool: %s" % tool)
+ proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
+ output, errors = proc.communicate()
+ logger.debug("proc.args: %s" % proc.args)
+ logger.debug("proc.communicate(): output %s" % output)
+ logger.debug("proc.communicate(): errors %s" % errors)
+ which_tool = output.decode('utf-8')
+ logger.debug("which %s: %s" % (tool, which_tool))
+ ret = proc.returncode
+ if not which_tool.startswith(install_dir):
+ logger.error("Something went wrong: %s not found in %s" %
+ (tool, install_dir))
+ if ret != 0:
+ logger.error("Something went wrong: installation failed")
+ else:
+ logger.info("Installation successful. Remember to source the "
+ "environment setup script now and in any new session.")
+ return ret
+
+ finally:
+ # cleanup tmp directory
+ shutil.rmtree(tmpsdk_dir)
+
+
+if __name__ == '__main__':
+ try:
+ ret = main()
+ except Exception:
+ ret = 1
+ import traceback
+
+ traceback.print_exc()
+ sys.exit(ret)
diff --git a/scripts/lib/checklayer/__init__.py b/scripts/lib/checklayer/__init__.py
index 5aeec2f00f..fe545607bb 100644
--- a/scripts/lib/checklayer/__init__.py
+++ b/scripts/lib/checklayer/__init__.py
@@ -59,9 +59,14 @@ def _get_layer_collections(layer_path, lconf=None, data=None):
pattern = ldata.getVar('BBFILE_PATTERN_%s' % name)
depends = ldata.getVar('LAYERDEPENDS_%s' % name)
compat = ldata.getVar('LAYERSERIES_COMPAT_%s' % name)
+ try:
+ depDict = bb.utils.explode_dep_versions2(depends or "")
+ except bb.utils.VersionStringException as vse:
+ bb.fatal('Error parsing LAYERDEPENDS_%s: %s' % (name, str(vse)))
+
collections[name]['priority'] = priority
collections[name]['pattern'] = pattern
- collections[name]['depends'] = depends
+ collections[name]['depends'] = ' '.join(depDict.keys())
collections[name]['compat'] = compat
return collections
@@ -143,6 +148,9 @@ def detect_layers(layer_directories, no_auto):
def _find_layer_depends(depend, layers):
for layer in layers:
+ if 'collections' not in layer:
+ continue
+
for collection in layer['collections']:
if depend == collection:
return layer
@@ -221,6 +229,20 @@ def add_layers(bblayersconf, layers, logger):
f.write("\nBBLAYERS += \"%s\"\n" % path)
return True
+def check_bblayers(bblayersconf, layer_path, logger):
+ '''
+ If layer_path found in BBLAYERS return True
+ '''
+ import bb.parse
+ import bb.data
+
+ ldata = bb.parse.handle(bblayersconf, bb.data.init(), include=True)
+ for bblayer in (ldata.getVar('BBLAYERS') or '').split():
+ if os.path.normpath(bblayer) == os.path.normpath(layer_path):
+ return True
+
+ return False
+
def check_command(error_msg, cmd, cwd=None):
'''
Run a command under a shell, capture stdout and stderr in a single stream,
diff --git a/scripts/lib/devtool/__init__.py b/scripts/lib/devtool/__init__.py
index d39c474fbd..702db669de 100644
--- a/scripts/lib/devtool/__init__.py
+++ b/scripts/lib/devtool/__init__.py
@@ -196,7 +196,7 @@ def setup_git_repo(repodir, version, devbranch, basetag='devtool-base', d=None):
if not os.path.exists(os.path.join(repodir, '.git')):
bb.process.run('git init', cwd=repodir)
bb.process.run('git config --local gc.autodetach 0', cwd=repodir)
- bb.process.run('git add .', cwd=repodir)
+ bb.process.run('git add -f -A .', cwd=repodir)
commit_cmd = ['git']
oe.patch.GitApplyTree.gitCommandUserOptions(commit_cmd, d=d)
commit_cmd += ['commit', '-q']
@@ -212,8 +212,13 @@ def setup_git_repo(repodir, version, devbranch, basetag='devtool-base', d=None):
bb.process.run(commit_cmd, cwd=repodir)
# Ensure singletask.lock (as used by externalsrc.bbclass) is ignored by git
+ gitinfodir = os.path.join(repodir, '.git', 'info')
+ try:
+ os.mkdir(gitinfodir)
+ except FileExistsError:
+ pass
excludes = []
- excludefile = os.path.join(repodir, '.git', 'info', 'exclude')
+ excludefile = os.path.join(gitinfodir, 'exclude')
try:
with open(excludefile, 'r') as f:
excludes = f.readlines()
diff --git a/scripts/lib/devtool/deploy.py b/scripts/lib/devtool/deploy.py
index 6a997735fc..e5af2c95ae 100644
--- a/scripts/lib/devtool/deploy.py
+++ b/scripts/lib/devtool/deploy.py
@@ -177,13 +177,19 @@ def deploy(args, config, basepath, workspace):
rd.getVar('base_libdir'), rd)
filelist = []
+ inodes = set({})
ftotalsize = 0
for root, _, files in os.walk(recipe_outdir):
for fn in files:
+ fstat = os.lstat(os.path.join(root, fn))
# Get the size in kiB (since we'll be comparing it to the output of du -k)
# MUST use lstat() here not stat() or getfilesize() since we don't want to
# dereference symlinks
- fsize = int(math.ceil(float(os.lstat(os.path.join(root, fn)).st_size)/1024))
+ if fstat.st_ino in inodes:
+ fsize = 0
+ else:
+ fsize = int(math.ceil(float(fstat.st_size)/1024))
+ inodes.add(fstat.st_ino)
ftotalsize += fsize
# The path as it would appear on the target
fpath = os.path.join(destdir, os.path.relpath(root, recipe_outdir), fn)
@@ -330,7 +336,7 @@ def register_commands(subparsers, context):
parser_deploy.add_argument('-e', '--ssh-exec', help='Executable to use in place of ssh')
parser_deploy.add_argument('-P', '--port', help='Specify port to use for connection to the target')
parser_deploy.add_argument('-I', '--key',
- help='Specifiy ssh private key for connection to the target')
+ help='Specify ssh private key for connection to the target')
strip_opts = parser_deploy.add_mutually_exclusive_group(required=False)
strip_opts.add_argument('-S', '--strip',
@@ -355,6 +361,6 @@ def register_commands(subparsers, context):
parser_undeploy.add_argument('-e', '--ssh-exec', help='Executable to use in place of ssh')
parser_undeploy.add_argument('-P', '--port', help='Specify port to use for connection to the target')
parser_undeploy.add_argument('-I', '--key',
- help='Specifiy ssh private key for connection to the target')
+ help='Specify ssh private key for connection to the target')
parser_undeploy.set_defaults(func=undeploy)
diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py
index bab644b83a..261d642d4a 100644
--- a/scripts/lib/devtool/standard.py
+++ b/scripts/lib/devtool/standard.py
@@ -531,7 +531,6 @@ def _extract_source(srctree, keep_temp, devbranch, sync, config, basepath, works
initial_rev = None
- appendexisted = False
recipefile = d.getVar('FILE')
appendfile = recipe_to_append(recipefile, config)
is_kernel_yocto = bb.data.inherits_class('kernel-yocto', d)
@@ -1711,7 +1710,7 @@ def _update_recipe_patch(recipename, workspace, srctree, rd, appendlayerdir, wil
def _guess_recipe_update_mode(srctree, rdata):
"""Guess the recipe update mode to use"""
- src_uri = (rdata.getVar('SRC_URI', False) or '').split()
+ src_uri = (rdata.getVar('SRC_URI') or '').split()
git_uris = [uri for uri in src_uri if uri.startswith('git://')]
if not git_uris:
return 'patch'
diff --git a/scripts/lib/devtool/upgrade.py b/scripts/lib/devtool/upgrade.py
index cb6dce378a..0c1de8cdc7 100644
--- a/scripts/lib/devtool/upgrade.py
+++ b/scripts/lib/devtool/upgrade.py
@@ -235,14 +235,14 @@ def _extract_new_source(newpv, srctree, no_patch, srcrev, srcbranch, branch, kee
# Copy in new ones
_copy_source_code(tmpsrctree, srctree)
- (stdout,_) = __run('git ls-files --modified --others --exclude-standard')
+ (stdout,_) = __run('git ls-files --modified --others')
filelist = stdout.splitlines()
pbar = bb.ui.knotty.BBProgress('Adding changed files', len(filelist))
pbar.start()
batchsize = 100
for i in range(0, len(filelist), batchsize):
batch = filelist[i:i+batchsize]
- __run('git add -A %s' % ' '.join(['"%s"' % item for item in batch]))
+ __run('git add -f -A %s' % ' '.join(['"%s"' % item for item in batch]))
pbar.update(i)
pbar.finish()
@@ -391,12 +391,12 @@ def _create_new_recipe(newpv, md5, sha256, srcrev, srcbranch, srcsubdir_old, src
newvalues['SRC_URI[%s.md5sum]' % name] = None
newvalues['SRC_URI[%s.sha256sum]' % name] = None
- if md5 and sha256:
+ if sha256:
if addnames:
nameprefix = '%s.' % addnames[0]
else:
nameprefix = ''
- newvalues['SRC_URI[%smd5sum]' % nameprefix] = md5
+ newvalues['SRC_URI[%smd5sum]' % nameprefix] = None
newvalues['SRC_URI[%ssha256sum]' % nameprefix] = sha256
if srcsubdir_new != srcsubdir_old:
@@ -550,12 +550,12 @@ def upgrade(args, config, basepath, workspace):
try:
logger.info('Extracting current version source...')
rev1, srcsubdir1 = standard._extract_source(srctree, False, 'devtool-orig', False, config, basepath, workspace, args.fixed_setup, rd, tinfoil, no_overrides=args.no_overrides)
- old_licenses = _extract_licenses(srctree, rd.getVar('LIC_FILES_CHKSUM'))
+ old_licenses = _extract_licenses(srctree, (rd.getVar('LIC_FILES_CHKSUM') or ""))
logger.info('Extracting upgraded version source...')
rev2, md5, sha256, srcbranch, srcsubdir2 = _extract_new_source(args.version, srctree, args.no_patch,
args.srcrev, args.srcbranch, args.branch, args.keep_temp,
tinfoil, rd)
- new_licenses = _extract_licenses(srctree, rd.getVar('LIC_FILES_CHKSUM'))
+ new_licenses = _extract_licenses(srctree, (rd.getVar('LIC_FILES_CHKSUM') or ""))
license_diff = _generate_license_diff(old_licenses, new_licenses)
rf, copied = _create_new_recipe(args.version, md5, sha256, args.srcrev, srcbranch, srcsubdir1, srcsubdir2, config.workspace_path, tinfoil, rd, license_diff, new_licenses, srctree, args.keep_failure)
except bb.process.CmdError as e:
diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py
index 6cbf4de674..566c75369a 100644
--- a/scripts/lib/recipetool/create.py
+++ b/scripts/lib/recipetool/create.py
@@ -66,7 +66,7 @@ class RecipeHandler(object):
libdir = d.getVar('libdir')
base_libdir = d.getVar('base_libdir')
libpaths = list(set([base_libdir, libdir]))
- libname_re = re.compile('^lib(.+)\.so.*$')
+ libname_re = re.compile(r'^lib(.+)\.so.*$')
pkglibmap = {}
for lib, item in shlib_providers.items():
for path, pkg in item.items():
@@ -428,7 +428,7 @@ def create_recipe(args):
if scriptutils.is_src_url(source):
# Warn about github archive URLs
- if re.match('https?://github.com/[^/]+/[^/]+/archive/.+(\.tar\..*|\.zip)$', source):
+ if re.match(r'https?://github.com/[^/]+/[^/]+/archive/.+(\.tar\..*|\.zip)$', source):
logger.warning('github archive files are not guaranteed to be stable and may be re-generated over time. If the latter occurs, the checksums will likely change and the recipe will fail at do_fetch. It is recommended that you point to an actual commit or tag in the repository instead (using the repository URL in conjunction with the -S/--srcrev option).')
# Fetch a URL
fetchuri = reformat_git_uri(urldefrag(source)[0])
@@ -460,6 +460,7 @@ def create_recipe(args):
logger.error('branch= parameter and -B/--srcbranch option cannot both be specified - use one or the other')
sys.exit(1)
srcbranch = args.srcbranch
+ params['branch'] = srcbranch
nobranch = params.get('nobranch')
if nobranch and srcbranch:
logger.error('nobranch= cannot be used if you specify a branch')
@@ -829,7 +830,7 @@ def create_recipe(args):
elif line.startswith('PV = '):
if realpv:
# Replace the first part of the PV value
- line = re.sub('"[^+]*\+', '"%s+' % realpv, line)
+ line = re.sub(r'"[^+]*\+', '"%s+' % realpv, line)
lines_before.append(line)
if args.also_native:
@@ -1065,8 +1066,8 @@ def crunch_license(licfile):
import oe.utils
# Note: these are carefully constructed!
- license_title_re = re.compile('^\(?(#+ *)?(The )?.{1,10} [Ll]icen[sc]e( \(.{1,10}\))?\)?:?$')
- license_statement_re = re.compile('^(This (project|software) is( free software)? (released|licen[sc]ed)|(Released|Licen[cs]ed)) under the .{1,10} [Ll]icen[sc]e:?$')
+ license_title_re = re.compile(r'^\(?(#+ *)?(The )?.{1,10} [Ll]icen[sc]e( \(.{1,10}\))?\)?:?$')
+ license_statement_re = re.compile(r'^(This (project|software) is( free software)? (released|licen[sc]ed)|(Released|Licen[cs]ed)) under the .{1,10} [Ll]icen[sc]e:?$')
copyright_re = re.compile('^(#+)? *Copyright .*$')
crunched_md5sums = {}
diff --git a/scripts/lib/recipetool/edit.py b/scripts/lib/recipetool/edit.py
index 94bdf7bca4..d5b980a1c0 100644
--- a/scripts/lib/recipetool/edit.py
+++ b/scripts/lib/recipetool/edit.py
@@ -34,7 +34,7 @@ def edit(args):
recipe_path = tinfoil.get_recipe_file(args.target)
appends = tinfoil.get_file_appends(recipe_path)
- return scriptutils.run_editor([recipe_path] + appends, logger)
+ return scriptutils.run_editor([recipe_path] + list(appends), logger)
def register_commands(subparsers):
diff --git a/scripts/lib/resulttool/log.py b/scripts/lib/resulttool/log.py
index f1bfd99500..eb3927ec82 100644
--- a/scripts/lib/resulttool/log.py
+++ b/scripts/lib/resulttool/log.py
@@ -34,13 +34,17 @@ def log(args, logger):
return 1
for _, run_name, _, r in resultutils.test_run_results(results):
- if args.dump_ptest and 'ptestresult.sections' in r:
- for name, ptest in r['ptestresult.sections'].items():
- logdata = resultutils.ptestresult_get_log(r, name)
+ if args.dump_ptest:
+ for sectname in ['ptestresult.sections', 'ltpposixresult.sections', 'ltpresult.sections']:
+ if sectname in r:
+ for name, ptest in r[sectname].items():
+ logdata = resultutils.generic_get_log(sectname, r, name)
if logdata is not None:
dest_dir = args.dump_ptest
if args.prepend_run:
dest_dir = os.path.join(dest_dir, run_name)
+ if not sectname.startswith("ptest"):
+ dest_dir = os.path.join(dest_dir, sectname.split(".")[0])
os.makedirs(dest_dir, exist_ok=True)
dest = os.path.join(dest_dir, '%s.log' % name)
@@ -49,10 +53,13 @@ def log(args, logger):
f.write(logdata)
if args.raw_ptest:
- rawlog = resultutils.ptestresult_get_rawlogs(r)
- if rawlog is not None:
- print(rawlog)
- else:
+ found = False
+ for sectname in ['ptestresult.rawlogs', 'ltpposixresult.rawlogs', 'ltpresult.rawlogs']:
+ rawlog = resultutils.generic_get_rawlogs(sectname, r)
+ if rawlog is not None:
+ print(rawlog)
+ found = True
+ if not found:
print('Raw ptest logs not found')
return 1
diff --git a/scripts/lib/resulttool/report.py b/scripts/lib/resulttool/report.py
index 7ceceac802..f0ca50ebe2 100644
--- a/scripts/lib/resulttool/report.py
+++ b/scripts/lib/resulttool/report.py
@@ -96,7 +96,6 @@ class ResultsTextReport(object):
if 'ltpresult.sections' in result and suite not in result['ltpresult.sections']:
try:
_, suite, suite1, test = k.split(".", 3)
- print("split2: %s %s %s" % (suite, suite1, test))
if suite + "." + suite1 in result['ltpresult.sections']:
suite = suite + "." + suite1
except ValueError:
diff --git a/scripts/lib/resulttool/resultutils.py b/scripts/lib/resulttool/resultutils.py
index 5fec01f6f3..8917022d36 100644
--- a/scripts/lib/resulttool/resultutils.py
+++ b/scripts/lib/resulttool/resultutils.py
@@ -130,23 +130,29 @@ def decode_log(logdata):
return data.decode("utf-8", errors='ignore')
return None
-def ptestresult_get_log(results, section):
- if 'ptestresult.sections' not in results:
+def generic_get_log(sectionname, results, section):
+ if sectionname not in results:
return None
- if section not in results['ptestresult.sections']:
+ if section not in results[sectionname]:
return None
- ptest = results['ptestresult.sections'][section]
+ ptest = results[sectionname][section]
if 'log' not in ptest:
return None
return decode_log(ptest['log'])
-def ptestresult_get_rawlogs(results):
- if 'ptestresult.rawlogs' not in results:
+def ptestresult_get_log(results, section):
+ return generic_get_log('ptestresuls.sections', results, section)
+
+def generic_get_rawlogs(sectname, results):
+ if sectname not in results:
return None
- if 'log' not in results['ptestresult.rawlogs']:
+ if 'log' not in results[sectname]:
return None
- return decode_log(results['ptestresult.rawlogs']['log'])
+ return decode_log(results[sectname]['log'])
+
+def ptestresult_get_rawlogs(results):
+ return generic_get_rawlogs('ptestresult.rawlogs', results)
def save_resultsdata(results, destdir, fn="testresults.json", ptestjson=False, ptestlogs=False):
for res in results:
diff --git a/scripts/lib/wic/engine.py b/scripts/lib/wic/engine.py
index 24797511e5..018815b966 100644
--- a/scripts/lib/wic/engine.py
+++ b/scripts/lib/wic/engine.py
@@ -280,7 +280,7 @@ class Disk:
def __getattr__(self, name):
"""Get path to the executable in a lazy way."""
if name in ("mdir", "mcopy", "mdel", "mdeltree", "sfdisk", "e2fsck",
- "resize2fs", "mkswap", "mkdosfs", "debugfs"):
+ "resize2fs", "mkswap", "mkdosfs", "debugfs","blkid"):
aname = "_%s" % name
if aname not in self.__dict__:
setattr(self, aname, find_executable(name, self.paths))
@@ -291,7 +291,7 @@ class Disk:
def _get_part_image(self, pnum):
if pnum not in self.partitions:
- raise WicError("Partition %s is not in the image")
+ raise WicError("Partition %s is not in the image" % pnum)
part = self.partitions[pnum]
# check if fstype is supported
for fstype in self.fstypes:
@@ -314,6 +314,9 @@ class Disk:
seek=self.partitions[pnum].start)
def dir(self, pnum, path):
+ if pnum not in self.partitions:
+ raise WicError("Partition %s is not in the image" % pnum)
+
if self.partitions[pnum].fstype.startswith('ext'):
return exec_cmd("{} {} -R 'ls -l {}'".format(self.debugfs,
self._get_part_image(pnum),
@@ -439,7 +442,7 @@ class Disk:
outf.flush()
def read_ptable(path):
- out = exec_cmd("{} -dJ {}".format(self.sfdisk, path))
+ out = exec_cmd("{} -J {}".format(self.sfdisk, path))
return json.loads(out)
def write_ptable(parts, target):
@@ -540,7 +543,8 @@ class Disk:
logger.info("creating swap partition {}".format(pnum))
label = part.get("name")
label_str = "-L {}".format(label) if label else ''
- uuid = part.get("uuid")
+ out = exec_cmd("{} --probe {}".format(self.blkid, self._get_part_image(pnum)))
+ uuid = out[out.index("UUID=\"")+6:out.index("UUID=\"")+42]
uuid_str = "-U {}".format(uuid) if uuid else ''
with open(partfname, 'w') as sparse:
os.ftruncate(sparse.fileno(), part['size'] * self._lsector_size)
diff --git a/scripts/lib/wic/filemap.py b/scripts/lib/wic/filemap.py
index c53147c2f1..4d9da28172 100644
--- a/scripts/lib/wic/filemap.py
+++ b/scripts/lib/wic/filemap.py
@@ -142,15 +142,6 @@ class _FilemapBase(object):
raise Error("the method is not implemented")
- def block_is_unmapped(self, block): # pylint: disable=W0613,R0201
- """
- This method has has to be implemented by child classes. It returns
- 'True' if block number 'block' of the image file is not mapped (hole)
- and 'False' otherwise.
- """
-
- raise Error("the method is not implemented")
-
def get_mapped_ranges(self, start, count): # pylint: disable=W0613,R0201
"""
This method has has to be implemented by child classes. This is a
@@ -164,15 +155,6 @@ class _FilemapBase(object):
raise Error("the method is not implemented")
- def get_unmapped_ranges(self, start, count): # pylint: disable=W0613,R0201
- """
- This method has has to be implemented by child classes. Just like
- 'get_mapped_ranges()', but yields unmapped block ranges instead
- (holes).
- """
-
- raise Error("the method is not implemented")
-
# The 'SEEK_HOLE' and 'SEEK_DATA' options of the file seek system call
_SEEK_DATA = 3
@@ -265,15 +247,10 @@ class FilemapSeek(_FilemapBase):
% (block, result))
return result
- def block_is_unmapped(self, block):
- """Refer the '_FilemapBase' class for the documentation."""
- return not self.block_is_mapped(block)
-
def _get_ranges(self, start, count, whence1, whence2):
"""
- This function implements 'get_mapped_ranges()' and
- 'get_unmapped_ranges()' depending on what is passed in the 'whence1'
- and 'whence2' arguments.
+ This function implements 'get_mapped_ranges()' depending
+ on what is passed in the 'whence1' and 'whence2' arguments.
"""
assert whence1 != whence2
@@ -303,12 +280,6 @@ class FilemapSeek(_FilemapBase):
% (start, count, start + count - 1))
return self._get_ranges(start, count, _SEEK_DATA, _SEEK_HOLE)
- def get_unmapped_ranges(self, start, count):
- """Refer the '_FilemapBase' class for the documentation."""
- self._log.debug("FilemapSeek: get_unmapped_ranges(%d, %d(%d))"
- % (start, count, start + count - 1))
- return self._get_ranges(start, count, _SEEK_HOLE, _SEEK_DATA)
-
# Below goes the FIEMAP ioctl implementation, which is not very readable
# because it deals with the rather complex FIEMAP ioctl. To understand the
@@ -422,10 +393,6 @@ class FilemapFiemap(_FilemapBase):
% (block, result))
return result
- def block_is_unmapped(self, block):
- """Refer the '_FilemapBase' class for the documentation."""
- return not self.block_is_mapped(block)
-
def _unpack_fiemap_extent(self, index):
"""
Unpack a 'struct fiemap_extent' structure object number 'index' from
@@ -502,23 +469,28 @@ class FilemapFiemap(_FilemapBase):
% (first_prev, last_prev))
yield (first_prev, last_prev)
- def get_unmapped_ranges(self, start, count):
+class FilemapNobmap(_FilemapBase):
+ """
+ This class is used when both the 'SEEK_DATA/HOLE' and FIEMAP are not
+ supported by the filesystem or kernel.
+ """
+
+ def __init__(self, image, log=None):
"""Refer the '_FilemapBase' class for the documentation."""
- self._log.debug("FilemapFiemap: get_unmapped_ranges(%d, %d(%d))"
- % (start, count, start + count - 1))
- hole_first = start
- for first, last in self._do_get_mapped_ranges(start, count):
- if first > hole_first:
- self._log.debug("FilemapFiemap: yielding range (%d, %d)"
- % (hole_first, first - 1))
- yield (hole_first, first - 1)
- hole_first = last + 1
+ # Call the base class constructor first
+ _FilemapBase.__init__(self, image, log)
+ self._log.debug("FilemapNobmap: initializing")
+
+ def block_is_mapped(self, block):
+ """Refer the '_FilemapBase' class for the documentation."""
+ return True
- if hole_first < start + count:
- self._log.debug("FilemapFiemap: yielding range (%d, %d)"
- % (hole_first, start + count - 1))
- yield (hole_first, start + count - 1)
+ def get_mapped_ranges(self, start, count):
+ """Refer the '_FilemapBase' class for the documentation."""
+ self._log.debug("FilemapNobmap: get_mapped_ranges(%d, %d(%d))"
+ % (start, count, start + count - 1))
+ yield (start, start + count -1)
def filemap(image, log=None):
"""
@@ -533,7 +505,10 @@ def filemap(image, log=None):
try:
return FilemapFiemap(image, log)
except ErrorNotSupp:
- return FilemapSeek(image, log)
+ try:
+ return FilemapSeek(image, log)
+ except ErrorNotSupp:
+ return FilemapNobmap(image, log)
def sparse_copy(src_fname, dst_fname, skip=0, seek=0,
length=0, api=None):
diff --git a/scripts/lib/wic/help.py b/scripts/lib/wic/help.py
index 4d342fcf05..bd3a2b97df 100644
--- a/scripts/lib/wic/help.py
+++ b/scripts/lib/wic/help.py
@@ -536,7 +536,8 @@ DESCRIPTION
Source plugins can also be implemented and added by external
layers - any plugins found in a scripts/lib/wic/plugins/source/
- directory in an external layer will also be made available.
+ or lib/wic/plugins/source/ directory in an external layer will
+ also be made available.
When the wic implementation needs to invoke a partition-specific
implementation, it looks for the plugin that has the same name as
@@ -970,14 +971,24 @@ DESCRIPTION
has an effect with the rootfs source plugin.
--include-path: This option is specific to wic. It adds the contents
- of the given path to the resulting image. The path is
- relative to the directory in which wic is running not
- the rootfs itself so use of an absolute path is
- recommended. This option is most useful when multiple
- copies of the rootfs are added to an image and it is
- required to add extra content to only one of these
- copies. This option only has an effect with the rootfs
- source plugin.
+ of the given path or a rootfs to the resulting image.
+ The option contains two fields, the origin and the
+ destination. When the origin is a rootfs, it follows
+ the same logic as the rootfs-dir argument and the
+ permissions and owners are kept. When the origin is a
+ path, it is relative to the directory in which wic is
+ running not the rootfs itself so use of an absolute
+ path is recommended, and the owner and group is set to
+ root:root. If no destination is given it is
+ automatically set to the root of the rootfs. This
+ option only has an effect with the rootfs source
+ plugin.
+
+ --change-directory: This option is specific to wic. It changes to the
+ given directory before copying the files. This
+ option is useful when we want to split a rootfs in
+ multiple partitions and we want to keep the right
+ permissions and usernames in all the partitions.
--extra-space: This option is specific to wic. It adds extra
space after the space filled by the content
diff --git a/scripts/lib/wic/ksparser.py b/scripts/lib/wic/ksparser.py
index 650b976223..913e3283dc 100644
--- a/scripts/lib/wic/ksparser.py
+++ b/scripts/lib/wic/ksparser.py
@@ -51,26 +51,39 @@ class KickStartParser(ArgumentParser):
def error(self, message):
raise ArgumentError(None, message)
-def sizetype(arg):
- """
- Custom type for ArgumentParser
- Converts size string in <num>[K|k|M|G] format into the integer value
- """
- if arg.isdigit():
- return int(arg) * 1024
+def sizetype(default, size_in_bytes=False):
+ def f(arg):
+ """
+ Custom type for ArgumentParser
+ Converts size string in <num>[S|s|K|k|M|G] format into the integer value
+ """
+ try:
+ suffix = default
+ size = int(arg)
+ except ValueError:
+ try:
+ suffix = arg[-1:]
+ size = int(arg[:-1])
+ except ValueError:
+ raise ArgumentTypeError("Invalid size: %r" % arg)
+
+
+ if size_in_bytes:
+ if suffix == 's' or suffix == 'S':
+ return size * 512
+ mult = 1024
+ else:
+ mult = 1
+
+ if suffix == "k" or suffix == "K":
+ return size * mult
+ if suffix == "M":
+ return size * mult * 1024
+ if suffix == "G":
+ return size * mult * 1024 * 1024
- if not arg[:-1].isdigit():
raise ArgumentTypeError("Invalid size: %r" % arg)
-
- size = int(arg[:-1])
- if arg.endswith("k") or arg.endswith("K"):
- return size
- if arg.endswith("M"):
- return size * 1024
- if arg.endswith("G"):
- return size * 1024 * 1024
-
- raise ArgumentTypeError("Invalid size: %r" % arg)
+ return f
def overheadtype(arg):
"""
@@ -136,9 +149,11 @@ class KickStart():
part.add_argument('mountpoint', nargs='?')
part.add_argument('--active', action='store_true')
part.add_argument('--align', type=int)
+ part.add_argument('--offset', type=sizetype("K", True))
part.add_argument('--exclude-path', nargs='+')
- part.add_argument('--include-path', nargs='+')
- part.add_argument("--extra-space", type=sizetype)
+ part.add_argument('--include-path', nargs='+', action='append')
+ part.add_argument('--change-directory')
+ part.add_argument("--extra-space", type=sizetype("M"))
part.add_argument('--fsoptions', dest='fsopts')
part.add_argument('--fstype', default='vfat',
choices=('ext2', 'ext3', 'ext4', 'btrfs',
@@ -160,8 +175,8 @@ class KickStart():
# --error, but since nesting mutually exclusive groups does not work,
# ----extra-space/--overhead-factor are handled later
sizeexcl = part.add_mutually_exclusive_group()
- sizeexcl.add_argument('--size', type=sizetype, default=0)
- sizeexcl.add_argument('--fixed-size', type=sizetype, default=0)
+ sizeexcl.add_argument('--size', type=sizetype("M"), default=0)
+ sizeexcl.add_argument('--fixed-size', type=sizetype("M"), default=0)
part.add_argument('--source')
part.add_argument('--sourceparams')
diff --git a/scripts/lib/wic/misc.py b/scripts/lib/wic/misc.py
index 1f199b9f23..4b08d649c6 100644
--- a/scripts/lib/wic/misc.py
+++ b/scripts/lib/wic/misc.py
@@ -45,7 +45,8 @@ NATIVE_RECIPES = {"bmaptool": "bmap-tools",
"parted": "parted",
"sfdisk": "util-linux",
"sgdisk": "gptfdisk",
- "syslinux": "syslinux"
+ "syslinux": "syslinux",
+ "tar": "tar"
}
def runtool(cmdln_or_args):
@@ -112,6 +113,15 @@ def exec_cmd(cmd_and_args, as_shell=False):
"""
return _exec_cmd(cmd_and_args, as_shell)[1]
+def find_executable(cmd, paths):
+ recipe = cmd
+ if recipe in NATIVE_RECIPES:
+ recipe = NATIVE_RECIPES[recipe]
+ provided = get_bitbake_var("ASSUME_PROVIDED")
+ if provided and "%s-native" % recipe in provided:
+ return True
+
+ return spawn.find_executable(cmd, paths)
def exec_native_cmd(cmd_and_args, native_sysroot, pseudo=""):
"""
@@ -128,15 +138,16 @@ def exec_native_cmd(cmd_and_args, native_sysroot, pseudo=""):
if pseudo:
cmd_and_args = pseudo + cmd_and_args
- native_paths = "%s/sbin:%s/usr/sbin:%s/usr/bin" % \
- (native_sysroot, native_sysroot, native_sysroot)
+ native_paths = "%s/sbin:%s/usr/sbin:%s/usr/bin:%s/bin" % \
+ (native_sysroot, native_sysroot,
+ native_sysroot, native_sysroot)
native_cmd_and_args = "export PATH=%s:$PATH;%s" % \
(native_paths, cmd_and_args)
logger.debug("exec_native_cmd: %s", native_cmd_and_args)
# If the command isn't in the native sysroot say we failed.
- if spawn.find_executable(args[0], native_paths):
+ if find_executable(args[0], native_paths):
ret, out = _exec_cmd(native_cmd_and_args, True)
else:
ret = 127
diff --git a/scripts/lib/wic/partition.py b/scripts/lib/wic/partition.py
index 2d95f78439..ebe250b00d 100644
--- a/scripts/lib/wic/partition.py
+++ b/scripts/lib/wic/partition.py
@@ -31,6 +31,7 @@ class Partition():
self.extra_space = args.extra_space
self.exclude_path = args.exclude_path
self.include_path = args.include_path
+ self.change_directory = args.change_directory
self.fsopts = args.fsopts
self.fstype = args.fstype
self.label = args.label
@@ -39,6 +40,7 @@ class Partition():
self.mountpoint = args.mountpoint
self.no_table = args.no_table
self.num = None
+ self.offset = args.offset
self.overhead_factor = args.overhead_factor
self.part_name = args.part_name
self.part_type = args.part_type
@@ -190,29 +192,30 @@ class Partition():
(self.mountpoint, self.size, self.fixed_size))
def prepare_rootfs(self, cr_workdir, oe_builddir, rootfs_dir,
- native_sysroot, real_rootfs = True):
+ native_sysroot, real_rootfs = True, pseudo_dir = None):
"""
Prepare content for a rootfs partition i.e. create a partition
and fill it from a /rootfs dir.
Currently handles ext2/3/4, btrfs, vfat and squashfs.
"""
- p_prefix = os.environ.get("PSEUDO_PREFIX", "%s/usr" % native_sysroot)
- p_localstatedir = os.environ.get("PSEUDO_LOCALSTATEDIR",
- "%s/../pseudo" % rootfs_dir)
- p_passwd = os.environ.get("PSEUDO_PASSWD", rootfs_dir)
- p_nosymlinkexp = os.environ.get("PSEUDO_NOSYMLINKEXP", "1")
- pseudo = "export PSEUDO_PREFIX=%s;" % p_prefix
- pseudo += "export PSEUDO_LOCALSTATEDIR=%s;" % p_localstatedir
- pseudo += "export PSEUDO_PASSWD=%s;" % p_passwd
- pseudo += "export PSEUDO_NOSYMLINKEXP=%s;" % p_nosymlinkexp
- pseudo += "%s " % get_bitbake_var("FAKEROOTCMD")
rootfs = "%s/rootfs_%s.%s.%s" % (cr_workdir, self.label,
self.lineno, self.fstype)
if os.path.isfile(rootfs):
os.remove(rootfs)
+ p_prefix = os.environ.get("PSEUDO_PREFIX", "%s/usr" % native_sysroot)
+ if (pseudo_dir):
+ pseudo = "export PSEUDO_PREFIX=%s;" % p_prefix
+ pseudo += "export PSEUDO_LOCALSTATEDIR=%s;" % pseudo_dir
+ pseudo += "export PSEUDO_PASSWD=%s;" % rootfs_dir
+ pseudo += "export PSEUDO_NOSYMLINKEXP=1;"
+ pseudo += "export PSEUDO_IGNORE_PATHS=%s;" % (rootfs + "," + (get_bitbake_var("PSEUDO_IGNORE_PATHS") or ""))
+ pseudo += "%s " % get_bitbake_var("FAKEROOTCMD")
+ else:
+ pseudo = None
+
if not self.size and real_rootfs:
# The rootfs size is not set in .ks file so try to get it
# from bitbake variable
diff --git a/scripts/lib/wic/pluginbase.py b/scripts/lib/wic/pluginbase.py
index f74d6430fd..d9b4e57747 100644
--- a/scripts/lib/wic/pluginbase.py
+++ b/scripts/lib/wic/pluginbase.py
@@ -18,7 +18,7 @@ from wic.misc import get_bitbake_var
PLUGIN_TYPES = ["imager", "source"]
-SCRIPTS_PLUGIN_DIR = "scripts/lib/wic/plugins"
+SCRIPTS_PLUGIN_DIR = ["scripts/lib/wic/plugins", "lib/wic/plugins"]
logger = logging.getLogger('wic')
@@ -38,10 +38,11 @@ class PluginMgr:
cls._plugin_dirs = [os.path.join(os.path.dirname(__file__), 'plugins')]
layers = get_bitbake_var("BBLAYERS") or ''
for layer_path in layers.split():
- path = os.path.join(layer_path, SCRIPTS_PLUGIN_DIR)
- path = os.path.abspath(os.path.expanduser(path))
- if path not in cls._plugin_dirs and os.path.isdir(path):
- cls._plugin_dirs.insert(0, path)
+ for script_plugin_dir in SCRIPTS_PLUGIN_DIR:
+ path = os.path.join(layer_path, script_plugin_dir)
+ path = os.path.abspath(os.path.expanduser(path))
+ if path not in cls._plugin_dirs and os.path.isdir(path):
+ cls._plugin_dirs.insert(0, path)
if ptype not in PLUGINS:
# load all ptype plugins
diff --git a/scripts/lib/wic/plugins/imager/direct.py b/scripts/lib/wic/plugins/imager/direct.py
index c50645ff76..55db826e93 100644
--- a/scripts/lib/wic/plugins/imager/direct.py
+++ b/scripts/lib/wic/plugins/imager/direct.py
@@ -403,7 +403,7 @@ class PartitionedImage():
# Reserve a sector for EBR for every logical partition
# before alignment is performed.
if part.type == 'logical':
- self.offset += 1
+ self.offset += 2
align_sectors = 0
if part.align:
@@ -428,6 +428,21 @@ class PartitionedImage():
# increase the offset so we actually start the partition on right alignment
self.offset += align_sectors
+ if part.offset is not None:
+ offset = part.offset // self.sector_size
+
+ if offset * self.sector_size != part.offset:
+ raise WicError("Could not place %s%s at offset %d with sector size %d" % (part.disk, self.numpart, part.offset, self.sector_size))
+
+ delta = offset - self.offset
+ if delta < 0:
+ raise WicError("Could not place %s%s at offset %d: next free sector is %d (delta: %d)" % (part.disk, self.numpart, part.offset, self.offset, delta))
+
+ logger.debug("Skipping %d sectors to place %s%s at offset %dK",
+ delta, part.disk, self.numpart, part.offset)
+
+ self.offset = offset
+
part.start = self.offset
self.offset += part.size_sec
@@ -446,7 +461,7 @@ class PartitionedImage():
self.extendedpart = part.num
else:
self.extended_size_sec += align_sectors
- self.extended_size_sec += part.size_sec + 1
+ self.extended_size_sec += part.size_sec + 2
else:
self.primary_part_num += 1
part.num = self.primary_part_num
@@ -512,7 +527,7 @@ class PartitionedImage():
# add a sector at the back, so that there is enough
# room for all logical partitions.
self._create_partition(self.path, "extended",
- None, part.start - 1,
+ None, part.start - 2,
self.extended_size_sec)
if part.fstype == "swap":
diff --git a/scripts/lib/wic/plugins/source/bootimg-efi.py b/scripts/lib/wic/plugins/source/bootimg-efi.py
index 2cfdc10ecd..cdc72543c2 100644
--- a/scripts/lib/wic/plugins/source/bootimg-efi.py
+++ b/scripts/lib/wic/plugins/source/bootimg-efi.py
@@ -13,6 +13,9 @@
import logging
import os
import shutil
+import re
+
+from glob import glob
from wic import WicError
from wic.engine import get_custom_config
@@ -209,6 +212,57 @@ class BootimgEFIPlugin(SourcePlugin):
except KeyError:
raise WicError("bootimg-efi requires a loader, none specified")
+ if get_bitbake_var("IMAGE_EFI_BOOT_FILES") is None:
+ logger.debug('No boot files defined in IMAGE_EFI_BOOT_FILES')
+ else:
+ boot_files = None
+ for (fmt, id) in (("_uuid-%s", part.uuid), ("_label-%s", part.label), (None, None)):
+ if fmt:
+ var = fmt % id
+ else:
+ var = ""
+
+ boot_files = get_bitbake_var("IMAGE_EFI_BOOT_FILES" + var)
+ if boot_files:
+ break
+
+ logger.debug('Boot files: %s', boot_files)
+
+ # list of tuples (src_name, dst_name)
+ deploy_files = []
+ for src_entry in re.findall(r'[\w;\-\./\*]+', boot_files):
+ if ';' in src_entry:
+ dst_entry = tuple(src_entry.split(';'))
+ if not dst_entry[0] or not dst_entry[1]:
+ raise WicError('Malformed boot file entry: %s' % src_entry)
+ else:
+ dst_entry = (src_entry, src_entry)
+
+ logger.debug('Destination entry: %r', dst_entry)
+ deploy_files.append(dst_entry)
+
+ cls.install_task = [];
+ for deploy_entry in deploy_files:
+ src, dst = deploy_entry
+ if '*' in src:
+ # by default install files under their basename
+ entry_name_fn = os.path.basename
+ if dst != src:
+ # unless a target name was given, then treat name
+ # as a directory and append a basename
+ entry_name_fn = lambda name: \
+ os.path.join(dst,
+ os.path.basename(name))
+
+ srcs = glob(os.path.join(kernel_dir, src))
+
+ logger.debug('Globbed sources: %s', ', '.join(srcs))
+ for entry in srcs:
+ src = os.path.relpath(entry, kernel_dir)
+ entry_dst_name = entry_name_fn(entry)
+ cls.install_task.append((src, entry_dst_name))
+ else:
+ cls.install_task.append((src, dst))
@classmethod
def do_prepare_partition(cls, part, source_params, creator, cr_workdir,
@@ -238,6 +292,12 @@ class BootimgEFIPlugin(SourcePlugin):
(staging_kernel_dir, kernel, hdddir, kernel)
exec_cmd(install_cmd)
+ if get_bitbake_var("IMAGE_EFI_BOOT_FILES"):
+ for src_path, dst_path in cls.install_task:
+ install_cmd = "install -m 0644 -D %s %s" \
+ % (os.path.join(kernel_dir, src_path),
+ os.path.join(hdddir, dst_path))
+ exec_cmd(install_cmd)
try:
if source_params['loader'] == 'grub-efi':
diff --git a/scripts/lib/wic/plugins/source/bootimg-partition.py b/scripts/lib/wic/plugins/source/bootimg-partition.py
index 138986a71e..5dbe2558d2 100644
--- a/scripts/lib/wic/plugins/source/bootimg-partition.py
+++ b/scripts/lib/wic/plugins/source/bootimg-partition.py
@@ -141,7 +141,7 @@ class BootimgPartitionPlugin(SourcePlugin):
break
if not kernel_name:
- raise WicError('No kernel file founded')
+ raise WicError('No kernel file found')
# Compose the extlinux.conf
extlinux_conf = "default Yocto\n"
diff --git a/scripts/lib/wic/plugins/source/rootfs.py b/scripts/lib/wic/plugins/source/rootfs.py
index 705aeb5563..f1db83f8a1 100644
--- a/scripts/lib/wic/plugins/source/rootfs.py
+++ b/scripts/lib/wic/plugins/source/rootfs.py
@@ -17,10 +17,11 @@ import shutil
import sys
from oe.path import copyhardlinktree
+from pathlib import Path
from wic import WicError
from wic.pluginbase import SourcePlugin
-from wic.misc import get_bitbake_var
+from wic.misc import get_bitbake_var, exec_native_cmd
logger = logging.getLogger('wic')
@@ -32,6 +33,22 @@ class RootfsPlugin(SourcePlugin):
name = 'rootfs'
@staticmethod
+ def __validate_path(cmd, rootfs_dir, path):
+ if os.path.isabs(path):
+ logger.error("%s: Must be relative: %s" % (cmd, orig_path))
+ sys.exit(1)
+
+ # Disallow climbing outside of parent directory using '..',
+ # because doing so could be quite disastrous (we will delete the
+ # directory, or modify a directory outside OpenEmbedded).
+ full_path = os.path.realpath(os.path.join(rootfs_dir, path))
+ if not full_path.startswith(os.path.realpath(rootfs_dir)):
+ logger.error("%s: Must point inside the rootfs:" % (cmd, path))
+ sys.exit(1)
+
+ return full_path
+
+ @staticmethod
def __get_rootfs_dir(rootfs_dir):
if os.path.isdir(rootfs_dir):
return os.path.realpath(rootfs_dir)
@@ -44,6 +61,15 @@ class RootfsPlugin(SourcePlugin):
return os.path.realpath(image_rootfs_dir)
+ @staticmethod
+ def __get_pseudo(native_sysroot, rootfs, pseudo_dir):
+ pseudo = "export PSEUDO_PREFIX=%s/usr;" % native_sysroot
+ pseudo += "export PSEUDO_LOCALSTATEDIR=%s;" % pseudo_dir
+ pseudo += "export PSEUDO_PASSWD=%s;" % rootfs
+ pseudo += "export PSEUDO_NOSYMLINKEXP=1;"
+ pseudo += "%s " % get_bitbake_var("FAKEROOTCMD")
+ return pseudo
+
@classmethod
def do_prepare_partition(cls, part, source_params, cr, cr_workdir,
oe_builddir, bootimg_dir, kernel_dir,
@@ -68,10 +94,16 @@ class RootfsPlugin(SourcePlugin):
"it is not a valid path, exiting" % part.rootfs_dir)
part.rootfs_dir = cls.__get_rootfs_dir(rootfs_dir)
+ pseudo_dir = os.path.join(part.rootfs_dir, "../pseudo")
+ if not os.path.lexists(pseudo_dir):
+ logger.warn("%s folder does not exist. "
+ "Usernames and permissions will be invalid " % pseudo_dir)
+ pseudo_dir = None
new_rootfs = None
+ new_pseudo = None
# Handle excluded paths.
- if part.exclude_path or part.include_path:
+ if part.exclude_path or part.include_path or part.change_directory:
# We need a new rootfs directory we can delete files from. Copy to
# workdir.
new_rootfs = os.path.realpath(os.path.join(cr_workdir, "rootfs%d" % part.lineno))
@@ -79,25 +111,93 @@ class RootfsPlugin(SourcePlugin):
if os.path.lexists(new_rootfs):
shutil.rmtree(os.path.join(new_rootfs))
- copyhardlinktree(part.rootfs_dir, new_rootfs)
+ if part.change_directory:
+ cd = part.change_directory
+ if cd[-1] == '/':
+ cd = cd[:-1]
+ orig_dir = cls.__validate_path("--change-directory", part.rootfs_dir, cd)
+ else:
+ orig_dir = part.rootfs_dir
+ copyhardlinktree(orig_dir, new_rootfs)
+
+ # Convert the pseudo directory to its new location
+ if (pseudo_dir):
+ new_pseudo = os.path.realpath(
+ os.path.join(cr_workdir, "pseudo%d" % part.lineno))
+ if os.path.lexists(new_pseudo):
+ shutil.rmtree(new_pseudo)
+ os.mkdir(new_pseudo)
+ shutil.copy(os.path.join(pseudo_dir, "files.db"),
+ os.path.join(new_pseudo, "files.db"))
+
+ pseudo_cmd = "%s -B -m %s -M %s" % (cls.__get_pseudo(native_sysroot,
+ new_rootfs,
+ new_pseudo),
+ orig_dir, new_rootfs)
+ exec_native_cmd(pseudo_cmd, native_sysroot)
+
+ for in_path in part.include_path or []:
+ #parse arguments
+ include_path = in_path[0]
+ if len(in_path) > 2:
+ logger.error("'Invalid number of arguments for include-path")
+ sys.exit(1)
+ if len(in_path) == 2:
+ path = in_path[1]
+ else:
+ path = None
+
+ # Pack files to be included into a tar file.
+ # We need to create a tar file, because that way we can keep the
+ # permissions from the files even when they belong to different
+ # pseudo enviroments.
+ # If we simply copy files using copyhardlinktree/copytree... the
+ # copied files will belong to the user running wic.
+ tar_file = os.path.realpath(
+ os.path.join(cr_workdir, "include-path%d.tar" % part.lineno))
+ if os.path.isfile(include_path):
+ parent = os.path.dirname(os.path.realpath(include_path))
+ tar_cmd = "tar c --owner=root --group=root -f %s -C %s %s" % (
+ tar_file, parent, os.path.relpath(include_path, parent))
+ exec_native_cmd(tar_cmd, native_sysroot)
+ else:
+ if include_path in krootfs_dir:
+ include_path = krootfs_dir[include_path]
+ include_path = cls.__get_rootfs_dir(include_path)
+ include_pseudo = os.path.join(include_path, "../pseudo")
+ if os.path.lexists(include_pseudo):
+ pseudo = cls.__get_pseudo(native_sysroot, include_path,
+ include_pseudo)
+ tar_cmd = "tar cf %s -C %s ." % (tar_file, include_path)
+ else:
+ pseudo = None
+ tar_cmd = "tar c --owner=root --group=root -f %s -C %s ." % (
+ tar_file, include_path)
+ exec_native_cmd(tar_cmd, native_sysroot, pseudo)
+
+ #create destination
+ if path:
+ destination = cls.__validate_path("--include-path", new_rootfs, path)
+ Path(destination).mkdir(parents=True, exist_ok=True)
+ else:
+ destination = new_rootfs
- for path in part.include_path or []:
- copyhardlinktree(path, new_rootfs)
+ #extract destination
+ untar_cmd = "tar xf %s -C %s" % (tar_file, destination)
+ if new_pseudo:
+ pseudo = cls.__get_pseudo(native_sysroot, new_rootfs, new_pseudo)
+ else:
+ pseudo = None
+ exec_native_cmd(untar_cmd, native_sysroot, pseudo)
+ os.remove(tar_file)
for orig_path in part.exclude_path or []:
path = orig_path
- if os.path.isabs(path):
- logger.error("Must be relative: --exclude-path=%s" % orig_path)
- sys.exit(1)
- full_path = os.path.realpath(os.path.join(new_rootfs, path))
+ full_path = cls.__validate_path("--exclude-path", new_rootfs, path)
- # Disallow climbing outside of parent directory using '..',
- # because doing so could be quite disastrous (we will delete the
- # directory).
- if not full_path.startswith(new_rootfs):
- logger.error("'%s' points to a path outside the rootfs" % orig_path)
- sys.exit(1)
+ if not os.path.lexists(full_path):
+ continue
if path.endswith(os.sep):
# Delete content only.
@@ -112,4 +212,5 @@ class RootfsPlugin(SourcePlugin):
shutil.rmtree(full_path)
part.prepare_rootfs(cr_workdir, oe_builddir,
- new_rootfs or part.rootfs_dir, native_sysroot)
+ new_rootfs or part.rootfs_dir, native_sysroot,
+ pseudo_dir = new_pseudo or pseudo_dir)
diff --git a/scripts/multilib_header_wrapper.h b/scripts/multilib_header_wrapper.h
index c81e7ee5e8..88f3193812 100644
--- a/scripts/multilib_header_wrapper.h
+++ b/scripts/multilib_header_wrapper.h
@@ -5,26 +5,9 @@
*
*/
-#pragma once
-
-#if defined (__bpf__)
-#define __MHWORDSIZE 64
-#elif defined (__arm__)
-#define __MHWORDSIZE 32
-#elif defined (__aarch64__) && defined ( __LP64__)
-#define __MHWORDSIZE 64
-#elif defined (__aarch64__)
-#define __MHWORDSIZE 32
-#else
#include <bits/wordsize.h>
-#if defined (__WORDSIZE)
-#define __MHWORDSIZE __WORDSIZE
-#else
-#error "__WORDSIZE is not defined"
-#endif
-#endif
-#if __MHWORDSIZE == 32
+#if __WORDSIZE == 32
#ifdef _MIPS_SIM
@@ -40,7 +23,7 @@
#include <ENTER_HEADER_FILENAME_HERE-32.h>
#endif
-#elif __MHWORDSIZE == 64
+#elif __WORDSIZE == 64
#include <ENTER_HEADER_FILENAME_HERE-64.h>
#else
#error "Unknown __WORDSIZE detected"
diff --git a/scripts/oe-build-perf-report b/scripts/oe-build-perf-report
index e781f4f03f..7812ea4540 100755
--- a/scripts/oe-build-perf-report
+++ b/scripts/oe-build-perf-report
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
#
# Examine build performance test results
#
@@ -353,7 +353,7 @@ def print_html_report(data, id_comp, buildstats):
bs_key = test + '.' + meas
rev = str(metadata['commit_num']['value'])
comp_rev = str(metadata['commit_num']['value_old'])
- if (rev in buildstats and bs_key in buildstats[rev] and
+ if (buildstats and rev in buildstats and bs_key in buildstats[rev] and
comp_rev in buildstats and bs_key in buildstats[comp_rev]):
new_meas['buildstats'] = BSSummary(buildstats[comp_rev][bs_key],
buildstats[rev][bs_key])
@@ -509,7 +509,7 @@ def main(argv=None):
revs = gitarchive.get_test_revs(log, repo, args.tag_name, hostname=args.hostname,
branch=args.branch, machine=args.machine)
- if args.branch2:
+ if args.branch2 and args.branch2 != args.branch:
revs2 = gitarchive.get_test_revs(log, repo, args.tag_name, hostname=args.hostname,
branch=args.branch2, machine=args.machine)
if not len(revs2):
@@ -533,7 +533,7 @@ def main(argv=None):
else:
index1 = len(revs) - 1
- if args.branch2:
+ if args.branch2 and args.branch2 != args.branch:
revs2.append(revs[index1])
index1 = len(revs2) - 1
revs = revs2
diff --git a/scripts/oe-buildenv-internal b/scripts/oe-buildenv-internal
index c17cf4da71..ba0a9b44d6 100755
--- a/scripts/oe-buildenv-internal
+++ b/scripts/oe-buildenv-internal
@@ -32,12 +32,12 @@ fi
# We potentially have code that doesn't parse correctly with older versions
# of Python, and rather than fixing that and being eternally vigilant for
# any other new feature use, just check the version here.
-py_v34_check=$(python3 -c 'import sys; print(sys.version_info >= (3,4,0))')
-if [ "$py_v34_check" != "True" ]; then
- echo >&2 "BitBake requires Python 3.4.0 or later as 'python3'"
+py_v35_check=$(python3 -c 'import sys; print(sys.version_info >= (3,5,0))')
+if [ "$py_v35_check" != "True" ]; then
+ echo >&2 "BitBake requires Python 3.5.0 or later as 'python3 (scripts/install-buildtools can be used if needed)'"
return 1
fi
-unset py_v34_check
+unset py_v35_check
if [ -z "$BDIR" ]; then
if [ -z "$1" ]; then
@@ -106,7 +106,8 @@ BB_ENV_EXTRAWHITE_OE="MACHINE DISTRO TCMODE TCLIBC HTTP_PROXY http_proxy \
HTTPS_PROXY https_proxy FTP_PROXY ftp_proxy FTPS_PROXY ftps_proxy ALL_PROXY \
all_proxy NO_PROXY no_proxy SSH_AGENT_PID SSH_AUTH_SOCK BB_SRCREV_POLICY \
SDKMACHINE BB_NUMBER_THREADS BB_NO_NETWORK PARALLEL_MAKE GIT_PROXY_COMMAND \
-SOCKS5_PASSWD SOCKS5_USER SCREENDIR STAMPS_DIR BBPATH_EXTRA BB_SETSCENE_ENFORCE"
+SOCKS5_PASSWD SOCKS5_USER SCREENDIR STAMPS_DIR BBPATH_EXTRA BB_SETSCENE_ENFORCE \
+BB_LOGCONFIG"
BB_ENV_EXTRAWHITE="$(echo $BB_ENV_EXTRAWHITE $BB_ENV_EXTRAWHITE_OE | tr ' ' '\n' | LC_ALL=C sort --unique | tr '\n' ' ')"
diff --git a/scripts/oe-publish-sdk b/scripts/oe-publish-sdk
index 4b70f436b1..deb8ae1807 100755
--- a/scripts/oe-publish-sdk
+++ b/scripts/oe-publish-sdk
@@ -94,7 +94,10 @@ def publish(args):
logger.error('Failed to unpack %s to %s' % (dest_sdk, destination))
return ret
else:
- cmd = "ssh %s 'sh %s -p -y -d %s && rm -f %s'" % (host, dest_sdk, destdir, dest_sdk)
+ rm_or_not = " && rm -f %s" % dest_sdk
+ if args.keep_orig:
+ rm_or_not = ""
+ cmd = "ssh %s 'sh %s -p -y -d %s%s'" % (host, dest_sdk, destdir, rm_or_not)
ret = subprocess.call(cmd, shell=True)
if ret == 0:
logger.info('Successfully unpacked %s to %s' % (dest_sdk, destdir))
@@ -106,7 +109,7 @@ def publish(args):
if not is_remote:
cmd = 'set -e; mkdir -p %s/layers; cd %s/layers; if [ ! -e .git ]; then git init .; cp .git/hooks/post-update.sample .git/hooks/post-commit; echo "*.pyc\n*.pyo\npyshtables.py" > .gitignore; fi; git add -A .; git config user.email "oe@oe.oe" && git config user.name "OE" && git commit -q -m "init repo" || true' % (destination, destination)
else:
- cmd = "ssh %s 'set -e; mkdir -p %s/layers; cd %s/layers; if [ ! -e .git ]; then git init .; cp .git/hooks/post-update.sample .git/hooks/post-commit; echo '*.pyc\n*.pyo\npyshtables.py' > .gitignore; fi; git add -A .; git config user.email 'oe@oe.oe' && git config user.name 'OE' && git commit -q -m \"init repo\" || true'" % (host, destdir, destdir)
+ cmd = "ssh %s 'set -e; mkdir -p %s/layers; cd %s/layers; if [ ! -e .git ]; then git init .; cp .git/hooks/post-update.sample .git/hooks/post-commit; echo '*.pyc' > .gitignore; echo '*.pyo' >> .gitignore; echo 'pyshtables.py' >> .gitignore; fi; git add -A .; git config user.email 'oe@oe.oe' && git config user.name 'OE' && git commit -q -m \"init repo\" || true'" % (host, destdir, destdir)
ret = subprocess.call(cmd, shell=True)
if ret == 0:
logger.info('SDK published successfully')
@@ -119,6 +122,7 @@ def main():
parser = argparse_oe.ArgumentParser(description="OpenEmbedded extensible SDK publishing tool - writes server-side data to support the extensible SDK update process to a specified location")
parser.add_argument('-d', '--debug', help='Enable debug output', action='store_true')
parser.add_argument('-q', '--quiet', help='Print only errors', action='store_true')
+ parser.add_argument('-k', '--keep-orig', help='When published to a remote host, the eSDK installer gets deleted by default.', action='store_true')
parser.add_argument('sdk', help='Extensible SDK to publish (path to .sh installer file)')
parser.add_argument('dest', help='Destination to publish SDK to; can be local path or remote in the form of user@host:/path (in the latter case ssh/scp will be used).')
diff --git a/scripts/postinst-intercepts/update_font_cache b/scripts/postinst-intercepts/update_font_cache
index 46bdb8c572..900db042d6 100644
--- a/scripts/postinst-intercepts/update_font_cache
+++ b/scripts/postinst-intercepts/update_font_cache
@@ -5,6 +5,8 @@
set -e
+rm -f $D${fontconfigcachedir}/CACHEDIR.TAG
+
PSEUDO_UNLOAD=1 ${binprefix}qemuwrapper -L $D -E ${fontconfigcacheenv} $D${libexecdir}/${binprefix}fc-cache --sysroot=$D --system-only ${fontconfigcacheparams}
chown -R root:root $D${fontconfigcachedir}
diff --git a/scripts/postinst-intercepts/update_udev_hwdb b/scripts/postinst-intercepts/update_udev_hwdb
index c4fb2bffcb..102e99b947 100644
--- a/scripts/postinst-intercepts/update_udev_hwdb
+++ b/scripts/postinst-intercepts/update_udev_hwdb
@@ -5,5 +5,17 @@
set -e
-PSEUDO_UNLOAD=1 ${binprefix}qemuwrapper -L $D $D${libexecdir}/${binprefix}udevadm hwdb --update --root $D
-chown root:root $D${sysconfdir}/udev/hwdb.bin
+case "${PREFERRED_PROVIDER_udev}" in
+ systemd)
+ UDEV_EXTRA_ARGS="--usr"
+ UDEVLIBDIR="${rootlibexecdir}"
+ ;;
+
+ *)
+ UDEV_EXTRA_ARGS=""
+ UDEVLIBDIR="${sysconfdir}"
+ ;;
+esac
+
+PSEUDO_UNLOAD=1 ${binprefix}qemuwrapper -L $D $D${libexecdir}/${binprefix}udevadm hwdb --update --root $D ${UDEV_EXTRA_ARGS}
+chown root:root $D${UDEVLIBDIR}/udev/hwdb.bin
diff --git a/scripts/pybootchartgui/pybootchartgui/parsing.py b/scripts/pybootchartgui/pybootchartgui/parsing.py
index ef2d3d309c..b42dac6b88 100644
--- a/scripts/pybootchartgui/pybootchartgui/parsing.py
+++ b/scripts/pybootchartgui/pybootchartgui/parsing.py
@@ -18,7 +18,7 @@ import string
import re
import sys
import tarfile
-from time import clock
+import time
from collections import defaultdict
from functools import reduce
@@ -723,7 +723,7 @@ def get_num_cpus(headers):
def _do_parse(writer, state, filename, file):
writer.info("parsing '%s'" % filename)
- t1 = clock()
+ t1 = time.process_time()
name = os.path.basename(filename)
if name == "proc_diskstats.log":
state.disk_stats = _parse_proc_disk_stat_log(file)
@@ -743,7 +743,7 @@ def _do_parse(writer, state, filename, file):
state.monitor_disk = _parse_monitor_disk_log(file)
elif not filename.endswith('.log'):
_parse_bitbake_buildstats(writer, state, filename, file)
- t2 = clock()
+ t2 = time.process_time()
writer.info(" %s seconds" % str(t2-t1))
return state
diff --git a/scripts/runqemu b/scripts/runqemu
index dd0aa4b28f..e5e66f3453 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -185,6 +185,8 @@ class BaseConfig(object):
self.vmtypes = ('hddimg', 'iso')
self.fsinfo = {}
self.network_device = "-device e1000,netdev=net0,mac=@MAC@"
+ self.cmdline_ip_slirp = "ip=dhcp"
+ self.cmdline_ip_tap = "ip=192.168.7.@CLIENT@::192.168.7.@GATEWAY@:255.255.255.0"
# Use different mac section for tap and slirp to avoid
# conflicts, e.g., when one is running with tap, the other is
# running with slirp.
@@ -418,6 +420,23 @@ class BaseConfig(object):
logger.error("%s not a directory valid DEPLOY_DIR_IMAGE" % deploy_dir_image)
self.set("MACHINE", arg)
+ def set_dri_path(self):
+ # As runqemu can be run within bitbake (when using testimage, for example),
+ # we need to ensure that we run host pkg-config, and that it does not
+ # get mis-directed to native build paths set by bitbake.
+ try:
+ del os.environ['PKG_CONFIG_PATH']
+ del os.environ['PKG_CONFIG_DIR']
+ del os.environ['PKG_CONFIG_LIBDIR']
+ del os.environ['PKG_CONFIG_SYSROOT_DIR']
+ except KeyError:
+ pass
+ try:
+ dripath = subprocess.check_output("PATH=/bin:/usr/bin:$PATH pkg-config --variable=dridriverdir dri", shell=True)
+ except subprocess.CalledProcessError as e:
+ raise RunQemuError("Could not determine the path to dri drivers on the host via pkg-config.\nPlease install Mesa development files (particularly, dri.pc) on the host machine.")
+ os.environ['LIBGL_DRIVERS_PATH'] = dripath.decode('utf-8').strip()
+
def check_args(self):
for debug in ("-d", "--debug"):
if debug in sys.argv:
@@ -429,47 +448,45 @@ class BaseConfig(object):
logger.setLevel(logging.ERROR)
sys.argv.remove(quiet)
+ if 'gl' not in sys.argv[1:] and 'gl-es' not in sys.argv[1:]:
+ os.environ['SDL_RENDER_DRIVER'] = 'software'
+
unknown_arg = ""
for arg in sys.argv[1:]:
if arg in self.fstypes + self.vmtypes + self.wictypes:
self.check_arg_fstype(arg)
elif arg == 'nographic':
+ if ('sdl' in sys.argv):
+ raise RunQemuError('Option nographic makes no sense alongside the sdl option.' % (arg))
+ if ('gtk' in sys.argv):
+ raise RunQemuError('Option nographic makes no sense alongside the gtk option.' % (arg))
self.qemu_opt_script += ' -nographic'
self.kernel_cmdline_script += ' console=ttyS0'
elif arg == 'sdl':
if 'gl' in sys.argv[1:]:
- self.qemu_opt_script += ' -vga virtio -display sdl,gl=on'
+ self.set_dri_path()
+ self.qemu_opt_script += ' -vga virtio -display sdl,gl=on,show-cursor=on'
elif 'gl-es' in sys.argv[1:]:
- self.qemu_opt_script += ' -vga virtio -display sdl,gl=es'
+ self.set_dri_path()
+ self.qemu_opt_script += ' -vga virtio -display sdl,gl=es,show-cursor=on'
else:
- self.qemu_opt_script += ' -display sdl'
+ self.qemu_opt_script += ' -display sdl,show-cursor=on'
elif arg == 'gtk':
if 'gl' in sys.argv[1:]:
- self.qemu_opt_script += ' -vga virtio -display gtk,gl=on'
+ self.set_dri_path()
+ self.qemu_opt_script += ' -vga virtio -display gtk,gl=on,show-cursor=on'
elif 'gl-es' in sys.argv[1:]:
- self.qemu_opt_script += ' -vga virtio -display gtk,gl=es'
+ self.set_dri_path()
+ self.qemu_opt_script += ' -vga virtio -display gtk,gl=es,show-cursor=on'
else:
- self.qemu_opt_script += ' -display gtk'
+ self.qemu_opt_script += ' -display gtk,show-cursor=on'
elif arg == 'gl' or arg == 'gl-es':
# These args are handled inside sdl or gtk blocks above
- pass
+ if ('gtk' not in sys.argv) and ('sdl' not in sys.argv):
+ raise RunQemuError('Option %s also needs gtk or sdl option.' % (arg))
elif arg == 'egl-headless':
- self.qemu_opt_script += ' -vga virtio -display egl-headless'
- # As runqemu can be run within bitbake (when using testimage, for example),
- # we need to ensure that we run host pkg-config, and that it does not
- # get mis-directed to native build paths set by bitbake.
- try:
- del os.environ['PKG_CONFIG_PATH']
- del os.environ['PKG_CONFIG_DIR']
- del os.environ['PKG_CONFIG_LIBDIR']
- del os.environ['PKG_CONFIG_SYSROOT_DIR']
- except KeyError:
- pass
- try:
- dripath = subprocess.check_output("PATH=/bin:/usr/bin:$PATH pkg-config --variable=dridriverdir dri", shell=True)
- except subprocess.CalledProcessError as e:
- raise RunQemuError("Could not determine the path to dri drivers on the host via pkg-config.\nPlease install Mesa development files (particularly, dri.pc) on the host machine.")
- os.environ['LIBGL_DRIVERS_PATH'] = dripath.decode('utf-8').strip()
+ self.set_dri_path()
+ self.qemu_opt_script += ' -vga virtio -display egl-headless,show-cursor=on'
elif arg == 'serial':
self.kernel_cmdline_script += ' console=ttyS0'
self.serialconsole = True
@@ -573,10 +590,10 @@ class BaseConfig(object):
logger.error("For further help see:")
raise RunQemuError(yocto_paravirt_kvm_wiki)
- if not os.access(dev_kvm, os.W_OK|os.R_OK):
+ if not os.access(dev_vhost, os.W_OK|os.R_OK):
logger.error("You have no read or write permission on /dev/vhost-net.")
logger.error("Please change the ownership of this file as described at:")
- raise RunQemuError(yocto_kvm_wiki)
+ raise RunQemuError(yocto_paravirt_kvm_wiki)
def check_fstype(self):
"""Check and setup FSTYPE"""
@@ -988,7 +1005,7 @@ class BaseConfig(object):
# Use '%s' since they are integers
os.putenv(k, '%s' % v)
- self.unfs_opts="nfsvers=3,port=%s,udp,mountport=%s" % (nfsd_port, mountd_port)
+ self.unfs_opts="nfsvers=3,port=%s,tcp,mountport=%s" % (nfsd_port, mountd_port)
# Extract .tar.bz2 or .tar.bz if no nfs dir
if not (self.rootfs and os.path.isdir(self.rootfs)):
@@ -1032,7 +1049,9 @@ class BaseConfig(object):
if self.fstype == 'nfs':
self.setup_nfs()
- self.kernel_cmdline_script += ' ip=dhcp'
+ netconf = " " + self.cmdline_ip_slirp
+ logger.info("Network configuration:%s", netconf)
+ self.kernel_cmdline_script += netconf
# Port mapping
hostfwd = ",hostfwd=tcp::2222-:22,hostfwd=tcp::2323-:23"
qb_slirp_opt_default = "-netdev user,id=net0%s,tftp=%s" % (hostfwd, self.get('DEPLOY_DIR_IMAGE'))
@@ -1147,9 +1166,11 @@ class BaseConfig(object):
client = gateway + 1
if self.fstype == 'nfs':
self.setup_nfs()
- netconf = "192.168.7.%s::192.168.7.%s:255.255.255.0" % (client, gateway)
- logger.info("Network configuration: %s", netconf)
- self.kernel_cmdline_script += " ip=%s" % netconf
+ netconf = " " + self.cmdline_ip_tap
+ netconf = netconf.replace('@CLIENT@', str(client))
+ netconf = netconf.replace('@GATEWAY@', str(gateway))
+ logger.info("Network configuration:%s", netconf)
+ self.kernel_cmdline_script += netconf
mac = "%s%02x" % (self.mac_tap, client)
qb_tap_opt = self.get('QB_TAP_OPT')
if qb_tap_opt:
@@ -1171,8 +1192,10 @@ class BaseConfig(object):
if self.net_bridge:
self.setup_net_bridge()
elif self.slirp_enabled:
+ self.cmdline_ip_slirp = self.get('QB_CMDLINE_IP_SLIRP') or self.cmdline_ip_slirp
self.setup_slirp()
else:
+ self.cmdline_ip_tap = self.get('QB_CMDLINE_IP_TAP') or self.cmdline_ip_tap
self.setup_tap()
def setup_rootfs(self):
@@ -1188,6 +1211,10 @@ class BaseConfig(object):
else:
self.rootfs_options = '-drive file=%s,if=virtio,format=%s' % (self.rootfs, rootfs_format)
+ qb_rootfs_extra_opt = self.get("QB_ROOTFS_EXTRA_OPT")
+ if qb_rootfs_extra_opt and not qb_rootfs_extra_opt.startswith(","):
+ qb_rootfs_extra_opt = "," + qb_rootfs_extra_opt
+
if self.fstype in ('cpio.gz', 'cpio'):
self.kernel_cmdline = 'root=/dev/ram0 rw debugshell'
self.rootfs_options = '-initrd %s' % self.rootfs
@@ -1200,14 +1227,15 @@ class BaseConfig(object):
drive_type = self.get('QB_DRIVE_TYPE')
if drive_type.startswith("/dev/sd"):
logger.info('Using scsi drive')
- vm_drive = '-drive if=none,id=hd,file=%s,format=%s -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=hd' \
- % (self.rootfs, rootfs_format)
+ vm_drive = '-drive if=none,id=hd,file=%s,format=%s -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=hd%s' \
+ % (self.rootfs, rootfs_format, qb_rootfs_extra_opt)
elif drive_type.startswith("/dev/hd"):
logger.info('Using ide drive')
vm_drive = "-drive file=%s,format=%s" % (self.rootfs, rootfs_format)
elif drive_type.startswith("/dev/vdb"):
logger.info('Using block virtio drive');
- vm_drive = '-drive id=disk0,file=%s,if=none,format=%s -device virtio-blk-device,drive=disk0' % (self.rootfs, rootfs_format)
+ vm_drive = '-drive id=disk0,file=%s,if=none,format=%s -device virtio-blk-device,drive=disk0%s' \
+ % (self.rootfs, rootfs_format,qb_rootfs_extra_opt)
else:
# virtio might have been selected explicitly (just use it), or
# is used as fallback (then warn about that).
@@ -1218,7 +1246,9 @@ class BaseConfig(object):
vm_drive = '-drive if=virtio,file=%s,format=%s' % (self.rootfs, rootfs_format)
# All branches above set vm_drive.
- self.rootfs_options = '%s -no-reboot' % vm_drive
+ self.rootfs_options = vm_drive
+ if not self.fstype in self.vmtypes:
+ self.rootfs_options += ' -no-reboot'
self.kernel_cmdline = 'root=%s rw' % (self.get('QB_KERNEL_ROOT'))
if self.fstype == 'nfs':
@@ -1306,7 +1336,7 @@ class BaseConfig(object):
if not os.access(qemu_bin, os.X_OK):
raise OEPathError("No QEMU binary '%s' could be found" % qemu_bin)
- self.qemu_opt = "%s %s %s %s" % (qemu_bin, self.get('NETWORK_CMD'), self.get('ROOTFS_OPTIONS'), self.get('QB_OPT_APPEND'))
+ self.qemu_opt = "%s %s %s %s %s" % (qemu_bin, self.get('NETWORK_CMD'), self.get('QB_RNG'), self.get('ROOTFS_OPTIONS'), self.get('QB_OPT_APPEND'))
for ovmf in self.ovmf_bios:
format = ovmf.rsplit('.', 1)[-1]
@@ -1489,6 +1519,11 @@ def main():
try:
config = BaseConfig()
+ renice = os.path.expanduser("~/bin/runqemu-renice")
+ if os.path.exists(renice):
+ logger.info('Using %s to renice' % renice)
+ subprocess.check_call([renice, str(os.getpid())])
+
def sigterm_handler(signum, frame):
logger.info("SIGTERM received")
os.kill(config.qemupid, signal.SIGTERM)
diff --git a/scripts/runqemu-extract-sdk b/scripts/runqemu-extract-sdk
index 8a4ee90a1d..9bc0c07fb8 100755
--- a/scripts/runqemu-extract-sdk
+++ b/scripts/runqemu-extract-sdk
@@ -69,7 +69,7 @@ fi
pseudo_state_dir="$SDK_ROOTFS_DIR/../$(basename "$SDK_ROOTFS_DIR").pseudo_state"
pseudo_state_dir="$(readlink -f $pseudo_state_dir)"
-debug_image="`echo $ROOTFS_TARBALL | grep '\-dbg\.tar\.'`"
+debug_image="`echo $ROOTFS_TARBALL | grep '\-dbg\.rootfs\.tar'`"
if [ -e "$pseudo_state_dir" -a -z "$debug_image" ]; then
echo "Error: $pseudo_state_dir already exists!"
diff --git a/scripts/tiny/ksize.py b/scripts/tiny/ksize.py
index bc11919f4b..db2b9ec39f 100755
--- a/scripts/tiny/ksize.py
+++ b/scripts/tiny/ksize.py
@@ -4,7 +4,7 @@
#
# SPDX-License-Identifier: GPL-2.0-or-later
#
-# Display details of the kernel build size, broken up by built-in.o. Sort
+# Display details of the kernel build size, broken up by built-in.[o,a]. Sort
# the objects by size. Run from the top level kernel build directory.
#
# Author: Darren Hart <dvhart@linux.intel.com>
@@ -27,7 +27,7 @@ def usage():
class Sizes:
def __init__(self, glob):
self.title = glob
- p = Popen("size -t " + str(glob), shell=True, stdout=PIPE, stderr=PIPE)
+ p = Popen("size -t " + str(glob), shell=True, stdout=PIPE, stderr=PIPE, universal_newlines=True)
output = p.communicate()[0].splitlines()
if len(output) > 2:
sizes = output[-1].split()[0:4]
@@ -49,17 +49,17 @@ class Report:
path = os.path.dirname(filename)
p = Popen("ls " + str(path) + "/*.o | grep -v built-in.o",
- shell=True, stdout=PIPE, stderr=PIPE)
+ shell=True, stdout=PIPE, stderr=PIPE, universal_newlines=True)
glob = ' '.join(p.communicate()[0].splitlines())
oreport = Report(glob, str(path) + "/*.o")
oreport.sizes.title = str(path) + "/*.o"
r.parts.append(oreport)
if subglob:
- p = Popen("ls " + subglob, shell=True, stdout=PIPE, stderr=PIPE)
+ p = Popen("ls " + subglob, shell=True, stdout=PIPE, stderr=PIPE, universal_newlines=True)
for f in p.communicate()[0].splitlines():
path = os.path.dirname(f)
- r.parts.append(Report.create(f, path, str(path) + "/*/built-in.o"))
+ r.parts.append(Report.create(f, path, str(path) + "/*/built-in.[o,a]"))
r.parts.sort(reverse=True)
for b in r.parts:
@@ -139,7 +139,7 @@ def main():
else:
assert False, "unhandled option"
- glob = "arch/*/built-in.o */built-in.o"
+ glob = "arch/*/built-in.[o,a] */built-in.[o,a]"
vmlinux = Report.create("vmlinux", "Linux Kernel", glob)
vmlinux.show()
diff --git a/scripts/yocto-check-layer b/scripts/yocto-check-layer
index 010830f842..b7c83c8b54 100755
--- a/scripts/yocto-check-layer
+++ b/scripts/yocto-check-layer
@@ -24,7 +24,7 @@ import scriptpath
scriptpath.add_oe_lib_path()
scriptpath.add_bitbake_lib_path()
-from checklayer import LayerType, detect_layers, add_layers, add_layer_dependencies, get_signatures
+from checklayer import LayerType, detect_layers, add_layers, add_layer_dependencies, get_signatures, check_bblayers
from oeqa.utils.commands import get_bb_vars
PROGNAME = 'yocto-check-layer'
@@ -84,7 +84,7 @@ def main():
logger.setLevel(logging.ERROR)
if not 'BUILDDIR' in os.environ:
- logger.error("You must source the environment before run this script.")
+ logger.error("You must source the environment before running this script.")
logger.error("$ source oe-init-build-env")
return 1
builddir = os.environ['BUILDDIR']
@@ -92,7 +92,7 @@ def main():
layers = detect_layers(args.layers, args.no_auto)
if not layers:
- logger.error("Fail to detect layers")
+ logger.error("Failed to detect layers")
return 1
if args.additional_layers:
additional_layers = detect_layers(args.additional_layers, args.no_auto)
@@ -108,7 +108,7 @@ def main():
for layer in layers:
if layer['type'] == LayerType.ERROR_BSP_DISTRO:
logger.error("%s: Can't be DISTRO and BSP type at the same time."\
- " The conf/distro and conf/machine folders was found."\
+ " Both conf/distro and conf/machine folders were found."\
% layer['name'])
layers.remove(layer)
elif layer['type'] == LayerType.ERROR_NO_LAYER_CONF:
@@ -138,6 +138,13 @@ def main():
layer['type'] == LayerType.ERROR_BSP_DISTRO:
continue
+ if check_bblayers(bblayersconf, layer['path'], logger):
+ logger.info("%s already in %s. To capture initial signatures, layer under test should not present "
+ "in BBLAYERS. Please remove %s from BBLAYERS." % (layer['name'], bblayersconf, layer['name']))
+ results[layer['name']] = None
+ results_status[layer['name']] = 'SKIPPED (Layer under test should not present in BBLAYERS)'
+ continue
+
logger.info('')
logger.info("Setting up for %s(%s), %s" % (layer['name'], layer['type'],
layer['path']))